DELETED freshlib/GUI/GUI.asm Index: freshlib/GUI/GUI.asm ================================================================== --- freshlib/GUI/GUI.asm +++ /dev/null @@ -1,20 +0,0 @@ -; includes OS specific utility procedures, data, etc. -include 'progutils.asm' - - -; OS independent template engine. -include 'ObjTemplates.asm' - -; OS independent components -include 'objects.asm' - -include 'TObject.asm' -include 'TWindow.asm' - -include 'TApplication.asm' -include 'TForm.asm' -include 'TButton.asm' -include 'TEdit.asm' - -; OS independent main procedures. -include 'Main.asm' DELETED freshlib/GUI/Linux/Main.asm Index: freshlib/GUI/Linux/Main.asm ================================================================== --- freshlib/GUI/Linux/Main.asm +++ /dev/null @@ -1,235 +0,0 @@ -uglobal - _globalevent XEvent -endg - - - -proc ProcessSystemEvents -begin - -.event_loop: - cinvoke XPending, [hApplicationDisplay] - test eax, eax - jz .noevents - - cinvoke XNextEvent, [hApplicationDisplay], _globalevent - stdcall __ProcessOneSystemEvent, _globalevent - -; check for quit - cmp [_globalevent.type], DestroyNotify - jne .event_loop - - mov eax, [_globalevent.window] - mov ecx, [Application] - cmp [ecx+TApplication.MainWindow], eax - jne .event_loop - -; main window destroyed, so terminate whole application. - xor eax, eax - stc - return - -.noevents: - clc - return -endp - - - -proc WaitForSystemEvent -.event XEvent -begin - lea eax, [.event] - cinvoke XPeekEvent, [hApplicationDisplay], eax - return -endp - - - - -ExitApplication: - push eax - FinalizeAll - pop eax - cinvoke exit, eax - int3 - - - -proc __ProcessOneSystemEvent, .linux_event -.event rb 32 -begin - push eax ebx ecx edx esi edi - - mov ebx, [.linux_event] - - stdcall _GetWindowStruct, [ebx+XEvent.window] - test eax, eax - jz .notprocessed - - mov esi, eax - lea edi, [.event] - - - cmp [ebx+XEvent.type], MotionNotify - je .mousemove - - cmp [ebx+XEvent.type], EnterNotify - je .mouseenter - - cmp [ebx+XEvent.type], LeaveNotify - je .mouseleave - - cmp [ebx+XEvent.type], KeyPress - je .mouse_btn_press - cmp [ebx+XEvent.type], ButtonPress - je .mouse_btn_press - - cmp [ebx+XEvent.type], KeyRelease - je .mouse_btn_release - cmp [ebx+XEvent.type], ButtonRelease - je .mouse_btn_release - - cmp [ebx+XEvent.type], Expose - je .paint_window - - -.notprocessed: - pop edi esi edx ecx ebx eax - stc - return - -.finish: - pop edi esi edx ecx ebx eax - clc - return - -.mouseleave: - mov [edi+TMouseEnterEvent.event], seMouseLeave - stdcall ExecEvent, esi, edi - jmp .finish - -.mouseenter: - mov [edi+TMouseEnterEvent.event], seMouseEnter - stdcall ExecEvent, esi, edi - jmp .finish - -.mousemove: - mov [edi+TMouseMoveEvent.event], seMouseMove - mov eax, [ebx+XMotionEvent.x] - mov ecx, [ebx+XMotionEvent.y] - mov [edi+TMouseMoveEvent.x], eax - mov [edi+TMouseMoveEvent.y], ecx - stdcall ExecEvent, esi, edi - jmp .finish - - -.paint_window: - mov [edi+TPaintEvent.event], sePaint - - mov eax, [esi+TWindow.handle] - mov [edi+TPaintEvent.raster], eax - - mov eax, [ebx+XExposeEvent.x] - mov ecx, [ebx+XExposeEvent.y] - - mov [edi+TPaintEvent.rect.left], eax - mov [edi+TPaintEvent.rect.top], ecx - - mov eax, [ebx+XExposeEvent.width] - mov ecx, [ebx+XExposeEvent.height] - - mov [edi+TPaintEvent.rect.right], eax - mov [edi+TPaintEvent.rect.bottom], ecx - - pushad - stdcall ExecEvent, esi, edi - popad - - jmp .finish - -.mouse_btn_press: -.mouse_btn_release: - - mov eax, [ebx+XButtonEvent.type] - mov [edi+TMouseButtonEvent.event], eax ; seMouseBtnPress=ButtonPress and seMouseBtnRelease = ButtonRelease - - mov eax, [ebx+XButtonEvent.button] - dec eax - mov [edi+TMouseButtonEvent.Button], eax - - mov eax, [ebx+XButtonEvent.state] - mov [edi+TMouseButtonEvent.kbdStatus], eax - - stdcall ExecEvent, esi, edi - jmp .finish - -.keyboard_events: - - jmp .finish -endp - - - - - - -;proc _CommonWindowEventHandler, .ptrevent -;begin -; push esi edi ebx eax -; -; mov esi, [.ptrevent] -; mov ecx, [esi+XEvent.type] -; mov eax, [esi+XEvent.window] -; -; stdcall _GetWindowStruct, [esi+XEvent.window] -; test eax, eax -; jz .finish -; -; mov edi, eax -; mov ebx, [edi+TObject.ptrClass] -; -; mov eax, [ebx+TObjectClass.procSysEventHandler] -; cmp eax, 0 -; je .go_further -; -; push [.ptrevent] -; call eax -; jc .go_further -; -;.finish: -; pop eax ebx edi esi -; return -; -;.go_further: -; mov eax, [esi+XEvent.type] -; cmp eax, CreateNotify -; je .create -; cmp eax, DestroyNotify -; je .destroy -; -; stc -; pop eax ebx edi esi -; return -; -;.create: -; mov eax, [edi+TWindow.OnCreate] -; cmp eax, 0 -; je @f -; call eax -;@@: -; clc -; pop eax ebx edi esi -; return -; -;.destroy: -; mov eax, [edi+TWindow.OnDestroy] -; cmp eax, 0 -; je @f -; call eax -;@@: -; clc -; pop eax ebx edi esi -; return -;endp -; DELETED freshlib/GUI/Linux/TApplication.asm Index: freshlib/GUI/Linux/TApplication.asm ================================================================== --- freshlib/GUI/Linux/TApplication.asm +++ /dev/null @@ -1,67 +0,0 @@ -uglobal - hApplicationDisplay dd ? - hRootWindow dd ? - wmdelete_atom dd ? - _SystemFont dd ? -endg - -iglobal - _cWinDeleteName db 'WM_DELETE_WINDOW', 0 -endg - - -win_structure_context = 1 - - -proc TApplication.Create, .obj, .parent -begin - cinvoke XOpenDisplay, 0 - test eax, eax - jz .exit_error - - mov [hApplicationDisplay], eax - - cinvoke XDefaultRootWindow, eax - mov [hRootWindow], eax - - cinvoke XInternAtom, [hApplicationDisplay], _cWinDeleteName, 0 - mov [wmdelete_atom], eax - -;cDefaultFont text 'DejaVu Sans-9:antialias=false:weight=medium' -cDefaultFont text 'Liberation sans-9' - - cinvoke XftFontOpenName, [hApplicationDisplay], 0, cDefaultFont - mov [_SystemFont], eax - - clc - return - -.exit_error: - stc - return -endp - - - - -proc TApplication.Get, .obj, .paramID -begin - stc - return -endp - - - -proc TApplication.Set, .obj, .paramID, .value -begin - stc - return -endp - - - -proc TApplication.SysEventHandler -begin - clc - return -endp DELETED freshlib/GUI/Linux/TWindow.asm Index: freshlib/GUI/Linux/TWindow.asm ================================================================== --- freshlib/GUI/Linux/TWindow.asm +++ /dev/null @@ -1,253 +0,0 @@ -proc TWindow.Create, .obj, .parent -begin - push eax ecx edx esi edi - - mov ebx, [.obj] - - mov eax, [.parent] - test eax, eax - jz .root - mov eax, [eax+TWindow.handle] - jmp .parentok - -.root: - mov eax, [hRootWindow] - -.parentok: - cinvoke XCreateSimpleWindow, [hApplicationDisplay], eax, 0, 0, 1, 1, 0, 0, $d4d0c8 - mov [ebx+TWindow.handle], eax - - stdcall _SetWindowStruct, eax, ebx - - cinvoke XSetWMProtocols, [hApplicationDisplay], [ebx+TForm.handle], wmdelete_atom, 1 - cinvoke XSelectInput, [hApplicationDisplay], [ebx+TWindow.handle], ExposureMask or KeyPressMask or KeyReleaseMask or SubstructureNotifyMask or ButtonPressMask or ButtonReleaseMask or EnterWindowMask or LeaveWindowMask - - clc - pop edi esi edx ecx eax - return -endp - - - - -proc TWindow.Destroy, .obj -begin - push eax - stdcall IsObject, [.obj], CWindow - jc .exit - mov eax, [.obj] - cinvoke XDestroyWindow, [hApplicationDisplay], [eax+TWindow.handle] -.exit: - pop eax - return -endp - - - -proc TWindow.Get, .obj, .paramID -.rect RECT -begin - stdcall IsObject, [.obj], CWindow - jc .fault - - push ecx edx esi ebx - - mov esi, [.obj] - mov eax, [.paramID] - - test eax, maskParameter - jz .field - - cmp eax, 4 or maskParameter - jb .getrect - - cmp eax, TWindow.visible - je .getvisible - - cmp eax, TWindow.caption - je .getcaption - -.fault: - stc -.finish: - pop ebx esi edx ecx - return - -.field: - mov ebx, [.paramID] - mov eax, [esi+ebx] - clc - jmp .finish - - -.getcaption: - stdcall StrDup, [esi+TWindow.Fcaption] - clc - jmp .finish - - -.getvisible: - clc - jmp .finish - - -.getrect: -locals - .attr XWindowAttributes -endl - lea ecx, [.attr] - cinvoke XGetWindowAttributes, [hApplicationDisplay], [esi+TWindow.handle], ecx - - mov eax, [.paramID] - sub eax, TWindow.x - mov eax, [.attr+4*eax] - jmp .finish -endp - - - - -proc TWindow.Set, .obj, .idparam, .value - .wch XWindowChanges -begin - stdcall IsObject, [.obj], CWindow - jc .fault - - push esi eax - - mov esi, [.obj] - mov eax, [.idparam] - - test eax, maskParameter - jz .field - - cmp eax, 4 or maskParameter - jb .configure - - cmp eax, TWindow.visible - je .setvisible - - cmp eax, TWindow.caption - je .setcaption - - pop eax esi -.fault: - stc - return - - -.field: - stc - pop eax esi - return - - -.setcaption: - lea eax, [esi+TWindow.Fcaption] - stdcall SetString, eax, [.value] - stdcall StrPtr, [eax] - - cinvoke XStoreName, [hApplicationDisplay], [esi+TWindow.handle], eax - clc - pop eax esi - return - -.setvisible: - cmp [.value], 0 - je .hide - - cinvoke XMapWindow, [hApplicationDisplay], [esi+TWindow.handle] - clc - pop eax esi - return - -.hide: - cinvoke XUnmapWindow, [hApplicationDisplay], [esi+TWindow.handle] - clc - pop eax esi - return - -.configure: - mov cl, al - mov edx, 1 - shl edx, cl - - pushd [.value] - popd [.wch+ 4*eax] - - lea eax, [.wch] - cinvoke XConfigureWindow, [hApplicationDisplay], [esi+TWindow.handle], edx, eax - clc - pop eax esi - return -endp - - - -proc _GetWindowStruct, .hwin - .user_data dd ? -begin - lea eax, [.user_data] - cinvoke XFindContext, [hApplicationDisplay], [.hwin], win_structure_context, eax - test eax, eax - jnz .error - - mov eax, [.user_data] - clc - return - -.error: - DebugMsg 'FreshLib: Error find context.' - int3 -endp - - - - -proc _SetWindowStruct, .hwin, .value -begin - cinvoke XSaveContext, [hApplicationDisplay], [.hwin], win_structure_context, [.value] - return -endp - - - - - - -proc RefreshWindow, .ptrobj -.event XExposeEvent -begin - push eax ebx ecx edx esi edi - mov ebx, [.ptrobj] - - lea eax, [.event] - mov ecx, [hApplicationDisplay] - mov edx, [ebx+TWindow.handle] - mov [eax+XExposeEvent.type], Expose - mov [eax+XExposeEvent.display], ecx - mov [eax+XExposeEvent.window], edx - - cinvoke XSendEvent, ecx, edx, FALSE, ExposureMask, eax - - pop edi esi edx ecx ebx eax eax - return -endp - - -proc GetRaster, .pObj -begin - stdcall IsObject, [.pObj], CWindow - jc .exit - - mov eax, [.pObj] - mov eax, [eax+TWindow.handle] - clc -.exit: - return -endp - -proc FreeRaster, .raster -begin - return -endp DELETED freshlib/GUI/Main.asm Index: freshlib/GUI/Main.asm ================================================================== --- freshlib/GUI/Main.asm +++ /dev/null @@ -1,36 +0,0 @@ -uglobal - Application dd ? -endg - - -proc Run -begin - -.mainloop: - stdcall ProcessSystemEvents - jc .terminate - - mov eax, [Application] - test eax, eax - jz .eventok - - cmp [eax+TApplication.OnIdle], 0 - je .eventok - - pushad - stdcall [eax+TApplication.OnIdle], eax - popad - -.eventok: - stdcall WaitForSystemEvent - jmp .mainloop - -.terminate: - return -endp - - - - - -include '%TargetOS%/Main.asm' DELETED freshlib/GUI/ObjTemplates.asm Index: freshlib/GUI/ObjTemplates.asm ================================================================== --- freshlib/GUI/ObjTemplates.asm +++ /dev/null @@ -1,112 +0,0 @@ -tfChild = 0 -tfParent = 1 -tfEnd = 2 - - -struct TObjTemplate - .flags dd ? ; tfParent; tfEnd - .class dd ? - .ptrVar dd ? ; can be NULL - .paramsize dd ? - .params: -ends - - -macro ObjTemplate flags, class, name, [id, param] { -common -local ..paramsize, ..prms - dd flags - dd C#class - dd name - dd ..paramsize -..prms: -forward -local ..value - dd T#class#.#id - dd ..value -common - dd -1 -forward - if param eqtype 2 - ..value = param - else - ..value db param, 0 - end if -common - name dd ? - ..paramsize = $ - ..prms -} - - -; returns the last created window in ebx. - -proc CreateFromTemplate, .ptrTemplate, .parent -begin - push esi - - mov esi, [.ptrTemplate] - stdcall _DoCreateFromTemplate, [.parent] - - pop esi - return -endp - - -proc _DoCreateFromTemplate, .parent -begin - push eax ecx edx - -.createloop: - - stdcall Create, [esi+TObjTemplate.class], [.parent] - - lea ecx, [esi+TObjTemplate.params] - -.paramloop: - cmp dword [ecx], -1 - je .paramsok - - push ebx ecx edx esi edi - stdcall Set, ebx, [ecx], [ecx+4] - pop edi esi edx ecx ebx - add ecx, 8 - jmp .paramloop - -.paramsok: - mov eax, [esi+TObjTemplate.ptrVar] - test eax, eax - jz .oncreate - - mov [eax], ebx ; returned pointer/handle to the object. - -.oncreate: - cmp [ebx+TObject.OnCreate], 0 - je .gonext - -; execute user OnCreate event. - pushad - stdcall [ebx+TObject.OnCreate], ebx - popad - -.gonext: - mov edx, [esi+TObjTemplate.flags] - - mov eax, sizeof.TObjTemplate - add eax, [esi+TObjTemplate.paramsize] - add esi, eax - - test edx, tfParent - jz .childrenok - - push ebx - stdcall _DoCreateFromTemplate, ebx - pop ebx - -.childrenok: - test edx, tfEnd - jz .createloop - -.exit: - pop edx ecx eax - return -endp DELETED freshlib/GUI/TApplication.asm Index: freshlib/GUI/TApplication.asm ================================================================== --- freshlib/GUI/TApplication.asm +++ /dev/null @@ -1,20 +0,0 @@ - ObjectClass Application, \ - Object, \ - TApplication.Create, \ - 0, \ - TApplication.Get, \ - TApplication.Set, \ - TApplication.SysEventHandler - -; The root object in the application. -; every other object will be child on the TApplication.MainWindow. -; only one instance of TApplication should be created. -; -object TApplication, TObject - .MainWindow dd ? - .Accelerators dd ? ; table of application wide hot keys. - .OnIdle dd ? ; user event handler for idle state. -endobj - - -include '%TargetOS%/TApplication.asm' DELETED freshlib/GUI/TButton.asm Index: freshlib/GUI/TButton.asm ================================================================== --- freshlib/GUI/TButton.asm +++ /dev/null @@ -1,198 +0,0 @@ -ObjectClass Button, \ - Window, \ - 0, \ - 0, \ - TButton.Get, \ - TButton.Set, \ - TButton.SysEventHandler - - -; Button states for the field TButton.state -btnNormal = 0 -btnPressed = 1 -btnPointed = 2 -btnChecked = 3 - - - -object TButton, TWindow - .state dd ? - .icon dd ? - .Ftextalign dd ? - - .OnClick dd ? - - param .TextAlign -endobj - - - -proc TButton.Get, .obj, .paramID -begin - stdcall IsObject, [.obj], CButton - jc .exit - - cmp [.paramID], TButton.OnClick - je .getonclick - - cmp [.paramID], TButton.TextAlign - je .gettextalign - - stc -.exit: - return - -.gettextalign: - mov eax, [.obj] - mov eax, [eax+TButton.Ftextalign] - clc - return - -.getonclick: - mov eax, [.obj] - mov eax, [eax+TButton.OnClick] - clc - return -endp - - - - -proc TButton.Set, .obj, .paramID, .value -begin - push eax - cmp [.paramID], TButton.OnClick - je .setonclick - - cmp [.paramID], TButton.TextAlign - je .settextalign - - stc - pop eax - return - -.settextalign: - mov eax, [.obj] - push [.value] - pop [eax+TButton.Ftextalign] - stdcall RefreshWindow, [.obj] - clc - pop eax - return - -.setonclick: - stdcall IsObject, [.obj], CButton - jc .exit - - mov eax, [.obj] - - push [.value] - pop [eax+TButton.OnClick] - clc - -.exit: - pop eax - return -endp - - - -proc TButton.SysEventHandler, .pObj, .pEvent -begin - push eax ebx ecx edx esi edi - - mov esi, [.pObj] - mov ebx, [.pEvent] - mov eax, [ebx+TSysEvent.event] - cmp eax, sePaint - je .onpaint - - cmp eax, seMouseEnter - je .enter - cmp eax, seMouseLeave - je .leave - - cmp eax, seMouseBtnPress - je .pressed - cmp eax, seMouseBtnRelease - je .released - -.finish: - stc - pop edi esi edx ecx ebx eax - return - -.pressed: - mov [esi+TButton.state], btnPressed - stdcall RefreshWindow, esi - jmp .finish - -.released: - test [ebx+TMouseButtonEvent.kbdStatus], maskBtnLeft or maskBtnMiddle or maskBtnRight - jnz .finish - - cmp [esi+TButton.state], btnPressed - jne .finish - - mov [esi+TButton.state], btnPointed - stdcall RefreshWindow, esi - - cmp [esi+TButton.OnClick], 0 - je .finish - - pushad - stdcall [esi+TButton.OnClick], esi, [ebx+TMouseButtonEvent.Button] - popad - jmp .finish - -.enter: - mov [esi+TButton.state], btnPointed - stdcall RefreshWindow, esi - jmp .finish - -.leave: - mov [esi+TButton.state], btnNormal - stdcall RefreshWindow, esi - jmp .finish - -.onpaint: - stdcall Get, esi, TButton.width - mov ecx, eax - stdcall Get, esi, TButton.height - - mov edx, bxFlat - cmp [esi+TButton.state], btnNormal - je .drawit - mov edx, bxRaised - cmp [esi+TButton.state], btnPointed - je .drawit - mov edx, bxSunken - cmp [esi+TButton.state], btnPressed - je .drawit - - mov edx, bxFlat - -.drawit: -locals - .bounds TBounds -endl - stdcall DrawBox, [ebx+TPaintEvent.raster], 0, 0, ecx, eax, $c0c0c0, edx - - mov [.bounds.x], 2 - mov [.bounds.y], 2 - mov [.bounds.width], ecx - mov [.bounds.height], eax - sub [.bounds.width], 4 - sub [.bounds.height], 4 - - stdcall Get, esi, TWindow.caption - push eax eax - stdcall StrLen, eax - mov ecx, eax - pop eax - lea edx, [.bounds] - stdcall DrawTextBox, [ebx+TPaintEvent.raster], eax, edx, [esi+TButton.Ftextalign], 0 - stdcall StrDel ; from the stack - jmp .finish -endp - DELETED freshlib/GUI/TEdit.asm Index: freshlib/GUI/TEdit.asm ================================================================== --- freshlib/GUI/TEdit.asm +++ /dev/null @@ -1,127 +0,0 @@ -; it is single line text edit widget for FreshLib - -ObjectClass Edit, \ - Window, \ - TEdit.Create, \ - TEdit.Destroy, \ - TEdit.Get, \ - TEdit.Set, \ - TEdit.SysEventHandler - - -object TEdit, TWindow - .Ftext dd ? - - param .Text -endobj - - -proc TEdit.Create, .obj, .parent -begin - push ecx eax - stdcall StrNew - mov ecx, [.obj] - mov [ecx+TEdit.Ftext], eax - - mov [ecx+TEdit.Fcursor], mcText - pop eax ecx - clc - return -endp - - -proc TEdit.Destroy, .obj -begin - mov eax, [.obj] - stdcall StrDel, [eax+TEdit.Ftext] - return -endp - - -proc TEdit.Get, .obj, .paramID -begin - stdcall IsObject, [.obj], CEdit - jc .exit - - cmp [.paramID], TEdit.Text - je .gettext - - stc -.exit: - return - -.gettext: - mov eax, [.obj] - stdcall StrDup, [eax+TEdit.Ftext] - clc - return -endp - - - - -proc TEdit.Set, .obj, .paramID, .value -begin - cmp [.paramID], TEdit.Text - je .settext - - stc - return - -.settext: - push eax - mov eax, [.obj] - lea eax, [eax+TEdit.Ftext] - stdcall SetString, eax, [.value] - stdcall RefreshWindow, [.obj] - pop eax - clc - return -endp - - - -proc TEdit.SysEventHandler, .pObj, .pEvent -begin - push eax ebx ecx edx esi edi - - mov esi, [.pObj] - mov ebx, [.pEvent] - mov eax, [ebx+TSysEvent.event] - - cmp eax, sePaint - je .onpaint - -.finish: - stc - pop edi esi edx ecx ebx eax - return - - -.onpaint: - stdcall Get, esi, TEdit.width - mov ecx, eax - stdcall Get, esi, TEdit.height - -locals - .bounds TBounds -endl - stdcall DrawBox, [ebx+TPaintEvent.raster], 0, 0, ecx, eax, $ffffff, bxSunken - - mov [.bounds.x], 2 - mov [.bounds.y], 2 - mov [.bounds.width], ecx - mov [.bounds.height], eax - sub [.bounds.width], 4 - sub [.bounds.height], 4 - - stdcall Get, esi, TEdit.Text - push eax eax - stdcall StrLen, eax - mov ecx, eax - pop eax - lea edx, [.bounds] - stdcall DrawTextBox, [ebx+TPaintEvent.raster], eax, edx, dtfAlignLeft or dtfAlignTop, 0 - stdcall StrDel ; from the stack - jmp .finish -endp DELETED freshlib/GUI/TForm.asm Index: freshlib/GUI/TForm.asm ================================================================== --- freshlib/GUI/TForm.asm +++ /dev/null @@ -1,60 +0,0 @@ -ObjectClass Form, \ - Window, \ - 0, \ - 0, \ - TForm.Get, \ - TForm.Set, \ - TForm.SysEventHandler - - -borderNone = 0 -borderFull = 1 -borderModal = 2 -borderToolbox = 3 - - -object TForm, TWindow - param .type -endobj - - - -; OS independent code. - -proc TForm.Get, .obj, .paramID -begin - stc - return -endp - - - -proc TForm.Set, .obj, .paramID, .value -begin - stc - return -endp - - - -proc TForm.SysEventHandler, .pObj, .pEvent -begin - push ebx esi - mov ebx, [.pEvent] - cmp [ebx+TSysEvent.event], sePaint - je .onpaint - -.finish: - stc - pop esi ebx - return - -.onpaint: - mov esi, [.pObj] - stdcall Get, esi, TForm.width - mov ecx, eax - stdcall Get, esi, TForm.height - - stdcall DrawFillRect, [ebx+TPaintEvent.raster], 0, 0, ecx, eax, $c0c0c0 - jmp .finish -endp DELETED freshlib/GUI/TLabel.asm Index: freshlib/GUI/TLabel.asm ================================================================== --- freshlib/GUI/TLabel.asm +++ /dev/null @@ -1,16 +0,0 @@ -ObjectClass TextLabel, \ - Window, \ - Create, \ - 0, \ - TLabel.Get, \ - TLabel.Set, \ - TLabel.SysEventHandler - - -object TLabel, TWindow - .border dd ? ; border flags. - .TextAline dd ? ; text align flags. - .control dd ? ; pointer of some control, that to get focus if the labels hot key is pressed. -endobj - - DELETED freshlib/GUI/TObject.asm Index: freshlib/GUI/TObject.asm ================================================================== --- freshlib/GUI/TObject.asm +++ /dev/null @@ -1,41 +0,0 @@ - -ObjectClass Object, \ - Root, \ - 0, \ - TObject.Destroy, \ - 0, \ - 0, \ - 0 - - - - -object TObject - .ptrClass dd ? ; pointer to the object class structure. - - .OnCreate dd ? ; user event handlers. - .OnDestroy dd ? -endobj - - - - -proc TObject.Destroy, .obj -begin - push eax - mov eax, [.obj] - - cmp [eax+TObject.OnDestroy], 0 - je .freeit - - pushad - stdcall [eax+TObject.OnDestroy], eax - popad - -.freeit: - stdcall FreeMem, eax - pop eax - return -endp - - DELETED freshlib/GUI/TWindow.asm Index: freshlib/GUI/TWindow.asm ================================================================== --- freshlib/GUI/TWindow.asm +++ /dev/null @@ -1,73 +0,0 @@ -ObjectClass Window, \ - Object, \ - TWindow.Create, \ - TWindow.Destroy, \ - TWindow.Get, \ - TWindow.Set, \ - TWindow.SysEventHandler - - -object TWindow, TObject - - .handle dd ? ; it is handle to the system provided window. - .ChildIndex dd ? ; index of the one children. Used for reading particular children from Child parameter. - - .Fcaption dd ? ; string handle with window caption. - .Fcursor dd ? ; it is a handle to the mouse cursor. - -; parameters - param .x - param .y - param .width - param .height - param .visible - param .caption - param .parent - param .cursor - param .ChildrenCount ; read only. Returns the count of the children windows. - param .SelectedChild ; read only. Returns pointer to the TObject that is selected in .ChildIndex - -endobj - - -; OS dependend code -include '%TargetOS%/TWindow.asm' - - - -; OS independent code. - -proc TWindow.SysEventHandler, .pObj, .pEvent -begin - push eax ebx ecx edx esi edi - - mov esi, [.pObj] - mov ebx, [.pEvent] - mov eax, [ebx+TSysEvent.event] - - cmp eax, seMouseEnter - je .mouseenter - - -.finish: - stc - pop edi esi edx ecx ebx eax - return - -.mouseenter: - mov eax, [esi+TWindow.Fcursor] - test eax, $ffffff00 - jnz .customcursor - - stdcall GetStockCursor, eax - -.customcursor: - stdcall SetMouseCursor, eax - jmp .finish -endp - - - - - - DELETED freshlib/GUI/Win32/Main.asm Index: freshlib/GUI/Win32/Main.asm ================================================================== --- freshlib/GUI/Win32/Main.asm +++ /dev/null @@ -1,236 +0,0 @@ -proc ProcessSystemEvents -.msg MSG -begin - push eax ecx edx esi - -.msgloop: - lea esi, [.msg] - xor eax, eax - - invoke PeekMessage, esi, eax, eax, eax, PM_REMOVE - test eax, eax - jz .exitok - - cmp [.msg.message], WM_QUIT - je .terminate - - stdcall __ProcessOneSystemEvent, [esi+MSG.hwnd], [esi+MSG.message], [esi+MSG.wParam], [esi+MSG.lParam] - jnc .msgloop ; the message is translated to system event and the event is executed by the object SysEvent handler. - -; the message is for window that is not an FreshLib object, so process with standard windows behaviour. - invoke TranslateMessage, esi - invoke DispatchMessage, esi - jmp .msgloop - - -.exitok: - clc - pop esi edx ecx eax - return - - -.terminate: - mov eax, [.msg.wParam] - stc - pop esi edx ecx eax - return -endp - - - -proc WaitForSystemEvent -begin - push eax ecx edx - invoke WaitMessage - pop edx ecx eax - return -endp - - - -ExitApplication: - push eax - FinalizeAll - invoke ExitProcess ; from the stack. - int3 - - - - -;---------------------------------------------------------------------------------------------------------- -; This procedure makes following: -; 1. Takes as arguments one windows message -; 2. Converts this message to FreshLib system event (or not, depending on the message) -; 3. Calls SysEventHandler procedures for the given object (if any) with the created event structure. -; 4. returns CF=0 if the event was properly processed. -; 5. returns CF=1 if the event was not processed. -; -; The event can be not processed in the following cases: -; 1. The window that receives the message is not FreshLib object. -; 2. TObjectClass.procSysEventHandler = 0 for the given class and all parents. -; 3. All procSysEventHandler procedures refuse to process the event (CF=1) -;---------------------------------------------------------------------------------------------------------- -uglobal - __LatestPointedObj dd ? -endg - - -winproc __ProcessOneSystemEvent -.event rb 32 -begin - push eax ebx ecx esi edi - - stdcall _GetWindowStruct, [.hwnd] - test eax, eax - jz .ondefault - - mov esi, eax - mov ebx, [.wmsg] - lea edi, [.event] - -ondefault - pop edi esi ecx ebx eax - stc - return - -.finish: - pop edi esi ecx ebx eax - clc - return - -onmessage WM_SETCURSOR - - movzx eax, word [.lparam] - cmp eax, HTCLIENT - jne .ondefault - - mov eax, [esi+TWindow.Fcursor] - test eax, $ffffff00 - jnz .customcursor - - stdcall GetStockCursor, eax - -.customcursor: - stdcall SetMouseCursor, eax - jmp .finish - - -onmessage WM_MOUSEMOVE - cmp esi, [__LatestPointedObj] - je .normal_mouse_move - - mov [edi+TMouseEnterEvent.event], seMouseLeave - xchg esi, [__LatestPointedObj] - test esi, esi - jz .leaveok - stdcall ExecEvent, esi, edi - -.leaveok: - mov esi, [__LatestPointedObj] - mov [edi+TMouseEnterEvent.event], seMouseEnter - stdcall ExecEvent, esi, edi - -.normal_mouse_move: - mov [edi+TMouseMoveEvent.event], seMouseMove - movsx eax, word [.lparam] - movsx ecx, word [.lparam+2] - mov [edi+TMouseMoveEvent.x], eax - mov [edi+TMouseMoveEvent.y], ecx - stdcall ExecEvent, esi, edi - jmp .finish - - -onmessage WM_PAINT -locals - .ps PAINTSTRUCT -endl - lea eax, [.ps] - invoke BeginPaint, [.hwnd], eax - - mov [edi+TPaintEvent.event], sePaint - push [.ps.hdc] - pop [edi+TPaintEvent.raster] - push [.ps.rcPaint.left] [.ps.rcPaint.top] - pop [edi+TPaintEvent.rect.top] [edi+TPaintEvent.rect.left] - push [.ps.rcPaint.right] [.ps.rcPaint.bottom] - pop [edi+TPaintEvent.rect.bottom] [edi+TPaintEvent.rect.right] - - stdcall ExecEvent, esi, edi - - lea eax, [.ps] - invoke EndPaint, [.hwnd], eax - pop edi esi ecx ebx eax - clc - return - -onmessage WM_LBUTTONUP -onmessage WM_RBUTTONUP -onmessage WM_MBUTTONUP -onmessage WM_LBUTTONDOWN -onmessage WM_RBUTTONDOWN -onmessage WM_MBUTTONDOWN -onmessage WM_LBUTTONDBLCLK -onmessage WM_RBUTTONDBLCLK -onmessage WM_MBUTTONDBLCLK - - stdcall __MouseButton, [.wmsg] - mov [edi+TMouseButtonEvent.event], ecx - mov [edi+TMouseButtonEvent.Button], eax - stdcall __KeyStatus, [.wparam] - mov [edi+TMouseButtonEvent.kbdStatus], eax - - stdcall ExecEvent, esi, edi - jmp .finish - -onmessage WM_CHAR -onmessage WM_SYSCHAR - - jmp .finish -endwp - - -proc __MouseButton, .msg -begin - mov eax, [.msg] - sub eax, WM_LBUTTONDOWN - movzx ecx, byte [__mouse_event_table+eax] - movzx eax, byte [__mouse_button_table+eax] - return -endp - - -iglobal - __mouse_button_table db mbLeft, mbLeft, mbLeft - db mbRight, mbRight, mbRight - db mbMiddle, mbMiddle, mbMiddle - - __mouse_event_table db seMouseBtnPress, seMouseBtnRelease, seMouseBtnDblClick - db seMouseBtnPress, seMouseBtnRelease, seMouseBtnDblClick - db seMouseBtnPress, seMouseBtnRelease, seMouseBtnDblClick -endg - -proc __KeyStatus, .status -begin - xor eax, eax - test [.status], MK_LBUTTON - jz @f - or eax, maskBtnLeft -@@: - test [.status], MK_RBUTTON - jz @f - or eax, maskBtnRight -@@: - test [.status], MK_MBUTTON - jz @f - or eax, maskBtnMiddle -@@: - test [.status], MK_SHIFT - jz @f - or eax, maskCtrl -@@: - test [.status], MK_CONTROL - jz @f - or eax, maskCtrl -@@: - return -endp DELETED freshlib/GUI/Win32/SysEvents.asm Index: freshlib/GUI/Win32/SysEvents.asm ================================================================== --- freshlib/GUI/Win32/SysEvents.asm +++ /dev/null DELETED freshlib/GUI/Win32/TApplication.asm Index: freshlib/GUI/Win32/TApplication.asm ================================================================== --- freshlib/GUI/Win32/TApplication.asm +++ /dev/null @@ -1,39 +0,0 @@ -uglobal - hInstance dd ? -endg - -initialize InitApplication -begin - invoke GetModuleHandle, 0 - mov [hInstance], eax - return -endp - - -proc TApplication.Create, .obj, .parent -begin - clc - return -endp - - -proc TApplication.Get, .obj, .paramID -begin - clc - return -endp - - -proc TApplication.Set, .obj, .paramID, .value -begin - clc - return -endp - - - -proc TApplication.SysEventHandler, .obj, .event -begin - clc - return -endp DELETED freshlib/GUI/Win32/TLabel.asm Index: freshlib/GUI/Win32/TLabel.asm ================================================================== --- freshlib/GUI/Win32/TLabel.asm +++ /dev/null DELETED freshlib/GUI/Win32/TWindow.asm Index: freshlib/GUI/Win32/TWindow.asm ================================================================== --- freshlib/GUI/Win32/TWindow.asm +++ /dev/null @@ -1,380 +0,0 @@ -cWindowClassName text 'FreshWin' - -nWindowExtraBytes = 32 -ofsWindowStruct = nWindowExtraBytes - 4 - -;********************************************************************************************* -; Registers common window class -; Call only once -;********************************************************************************************* -initialize RegisterWindowClass - -.wc WNDCLASS - -begin - xor eax, eax - lea edi, [.wc] - mov ecx, sizeof.WNDCLASS / 4 - rep stosd - - mov [.wc.style], CS_OWNDC or CS_DBLCLKS; or CS_VREDRAW or CS_HREDRAW - mov [.wc.lpfnWndProc], CommonWindowProc - mov [.wc.cbWndExtra], nWindowExtraBytes - - mov eax,[hInstance] - mov [.wc.hInstance],eax - mov [.wc.lpszClassName], cWindowClassName - - lea eax, [.wc] - invoke RegisterClass, eax - - return -endp - - - - -proc TWindow.Create, .obj, .parent -begin - push eax ebx - mov ebx, [.obj] - mov eax, [.parent] - test eax, eax - jz .parentok - - mov eax, [eax+TWindow.handle] - -.parentok: - mov ecx, WS_OVERLAPPEDWINDOW or WS_CLIPSIBLINGS or WS_CLIPCHILDREN - test eax, eax - jz .createit - mov ecx, WS_CHILDWINDOW or WS_CLIPSIBLINGS or WS_CLIPCHILDREN -.createit: - invoke CreateWindowEx, 0, cWindowClassName, 0, ecx, 0, 0, 0, 0, eax, 0, 0, 0 - mov [ebx+TForm.handle], eax - - stdcall _SetWindowStruct, eax, ebx - - pop ebx eax - clc - return -endp - - - - - -proc TWindow.Destroy, .obj -begin - push eax - stdcall IsObject, [.obj], CWindow - jc .exit - mov eax, [.obj] - invoke DestroyWindow, [eax+TWindow.handle] -.exit: - pop eax - return -endp - - - -proc TWindow.Get, .obj, .paramID -.rect RECT -begin - stdcall IsObject, [.obj], CWindow - jc .fault - - push ecx edx esi ebx - - mov esi, [.obj] - mov eax, [.paramID] - - test eax, maskParameter - jz .field - - cmp eax, TWindow.x - je .getrect - cmp eax, TWindow.y - je .getrect - cmp eax, TWindow.width - je .getrect - cmp eax, TWindow.height - je .getrect - - cmp eax, TWindow.visible - je .getvisible - - cmp eax, TWindow.caption - je .getcaption - - cmp eax, TWindow.ChildrenCount - je .childrencount - - cmp eax, TWindow.SelectedChild - je .getchild - -.fault: - stc - return - -.field: - mov ebx, [.paramID] - mov eax, [esi+ebx] - -.finish: - clc - pop ebx esi edx ecx - return - - -.childrencount: - push ecx edx - xor ebx, ebx - invoke GetWindow, [esi+TWindow.handle], GW_CHILD - -.loopchild: - test eax, eax - jz .endchild - - inc ebx - - invoke GetWindow, eax, GW_HWNDNEXT - jmp .loopchild - -.endchild: - mov eax, ebx - jmp .finish - -.getchild: - mov ebx, [esi+TWindow.ChildIndex] - - invoke GetWindow, [esi+TWindow.handle], GW_CHILD - -.loopchild2: - test eax, eax - jz .endchild2 - dec ebx - jz .endchild2 - - invoke GetWindow, eax, GW_HWNDNEXT - jmp .loopchild2 - -.endchild2: - stdcall _GetWindowStruct, eax - jmp .finish - - -.getcaption: - stdcall StrDup, [esi+TWindow.Fcaption] - jmp .finish - -.getvisible: - invoke IsWindowVisible, [esi+TWindow.handle] - jmp .finish - - -.getrect: - lea ebx, [.rect] - invoke GetWindowRect, [esi+TWindow.handle], ebx - invoke GetParent, [esi+TWindow.handle] - invoke MapWindowPoints, NULL, eax, ebx, 2 - - mov eax, [.rect.right] - mov ebx, [.rect.bottom] - sub eax, [.rect.left] - sub ebx, [.rect.top] - mov [.rect.right],eax - mov [.rect.bottom], ebx - - mov eax, [.paramID] - sub eax, TWindow.x - mov eax, [.rect+4*eax] - - jmp .finish -endp - - - -proc TWindow.Set, .obj, .paramID, .value - .rect RECT -begin - stdcall IsObject, [.obj], CWindow - jc .fault - - mov esi, [.obj] - mov eax, [.paramID] - - test eax, maskParameter - jz .field - - cmp eax, TWindow.x - je .setrect - cmp eax, TWindow.y - je .setrect - cmp eax, TWindow.width - je .setrect - cmp eax, TWindow.height - je .setrect - - cmp eax, TWindow.visible - je .setvisible - - cmp eax, TWindow.caption - je .setcaption - -.fault: - stc - return - -.field: - pushd [.value] - popd [esi+eax] - clc - return - - -.setcaption: - lea eax, [esi+TWindow.Fcaption] - stdcall SetString, eax, [.value] - stdcall StrPtr, [eax] - - invoke SendMessage, [esi+TWindow.handle], WM_SETTEXT, 0, [.value] - clc - return - -.setvisible: - invoke ShowWindow, [esi+TWindow.handle], [.value] - clc - return - -.setrect: - push ebx - - lea ebx, [.rect] - invoke GetClientRect, [esi+TWindow.handle], ebx - - invoke GetParent, [esi+TWindow.handle] - invoke MapWindowPoints, [esi+TWindow.handle], eax, ebx, 2 - - invoke GetWindowLong, [esi+TWindow.handle], GWL_EXSTYLE - push eax - push FALSE - invoke GetWindowLong, [esi+TWindow.handle], GWL_STYLE - push eax - - mov eax, [.rect.right] - mov ecx, [.rect.bottom] - sub eax, [.rect.left] - sub ecx, [.rect.top] - mov [.rect.right], eax - mov [.rect.bottom], ecx - - mov eax, [.paramID] - sub eax, TWindow.x - push [.value] - popd [.rect+4*eax] - - mov eax, [.rect.left] - mov ecx, [.rect.top] - add [.rect.right], eax - add [.rect.bottom], ecx - - invoke AdjustWindowRectEx, ebx ; and from the stack - - mov eax, [.rect.right] - mov ecx, [.rect.bottom] - sub eax, [.rect.left] - sub ecx, [.rect.top] - - invoke MoveWindow, [esi+TWindow.handle], [.rect.left], [.rect.top], eax, ecx, TRUE - - pop ebx - clc - return -endp - - - - - - - - - -; Common utility procedures. - - -;--------------------------------------------------------------- -; Returns the window TObject structure, from the window handle. -;--------------------------------------------------------------- -proc _GetWindowStruct, .hwin -begin - push ecx edx - invoke GetWindowLong, [.hwin], ofsWindowStruct - pop edx ecx - return -endp - - - - -proc _SetWindowStruct, .hwin, .value -begin - push eax ecx edx - invoke SetWindowLong, [.hwin], ofsWindowStruct, [.value] - pop edx ecx eax - return -endp - - - - - -proc CommonWindowProc, .hwnd, .wmsg, .wparam, .lparam -begin - stdcall __ProcessOneSystemEvent, [.hwnd], [.wmsg], [.wparam], [.lparam] ; sometimes windows calls winproc directly instead of using postmessage. - jnc .finish - - invoke DefWindowProc, [.hwnd], [.wmsg], [.wparam], [.lparam] - -.finish: - return -endp - - - - -proc RefreshWindow, .ptrobj -begin - push eax - mov eax, [.ptrobj] - - invoke RedrawWindow, [eax+TWindow.handle], 0, 0, RDW_INVALIDATE - - pop eax - return -endp - - - -proc GetRaster, .pObj -begin - push ecx edx - stdcall IsObject, [.pObj], CWindow - jc .exit - - mov eax, [.pObj] - invoke GetDC, [eax+TWindow.handle] - clc -.exit: - pop edx ecx - return -endp - -proc FreeRaster, .raster -begin - push eax ecx edx - invoke ReleaseDC, [.raster] - pop edx ecx eax - return -endp DELETED freshlib/GUI/objects.asm Index: freshlib/GUI/objects.asm ================================================================== --- freshlib/GUI/objects.asm +++ /dev/null @@ -1,335 +0,0 @@ -struct TObjectClass - .ptrParent dd 0 ; pointer to the parent TObjectClass - .dataSize dd 0 ; size of TObject structure. - .procCreate dd 0 - .procDestroy dd 0 - .procGetParam dd 0 - .procSetParam dd 0 - .procSysEventHandler dd 0 -ends - - - -macro ObjectClass name*, parent*, procCreate*, procDestroy*, procGetParam*, procSetParam*, procSysEvents* { - if used C#name - C#name TObjectClass - store dword C#parent at C#name#.ptrParent - store dword sizeof.T#name at C#name#.dataSize - store dword procCreate at C#name#.procCreate - store dword procDestroy at C#name#.procDestroy - store dword procGetParam at C#name#.procGetParam - store dword procSetParam at C#name#.procSetParam - store dword procSysEvents at C#name#.procSysEventHandler - end if -} - - - -CRoot = 0 - -maskParameter = $80000000 -Sequence param, maskParameter - - -macro object name*, parent { - macro name@object \{ name name \} - macro size@object \{ sizeof.#name = $ \} - struc name \{ - param.current = maskParameter - if ~parent eq - . parent - end if -} - - -endobj fix } obj_helper - -macro obj_helper { - virtual at 0 - name@object - size@object - end virtual - purge name@object - purge size@object -} - - -; common object procedures -; These procedures work with every TObject descendent object type. - -;----------------------------------------------------------------------- -; proc Get, .obj, .paramID - returns the value of given parameter -; -; Arguments: -; .obj - pointer to TObject descendent object. -; .paramID - ID number of the parameter being read. -; Returns: -; CF=0; eax = parameter value. -; CF=1; the parameter is unknown and can not be retrived. -; -; This procedure calls procGet for the given object class and -; if the procedure returns CF=1; tries to call the parents procedure -; procGet, until the value is retrived, or the root level of inheritance -; is reached. -;----------------------------------------------------------------------- - -proc Get, .obj, .paramID -begin - push ebx - - mov ebx, [.obj] - test ebx, ebx - jz .error - - mov ebx, [ebx+TObject.ptrClass] - -.loop: - cmp [ebx+TObjectClass.procGetParam], 0 ; get GetParam procedure pointer - je .parent - - push ebx - stdcall [ebx+TObjectClass.procGetParam], [.obj], [.paramID] - pop ebx - jnc .exit - -.parent: - mov ebx, [ebx+TObjectClass.ptrParent] - test ebx, ebx - jnz .loop - -.error: - stc -.exit: - pop ebx - return -endp - - - - -;----------------------------------------------------------------------- -; proc Set, .obj, .paramID - sets the value of given parameter -; -; Arguments: -; .obj - pointer to TObject descendent object. -; .paramID - ID number of the parameter being read. -; .value - value of the parameter that should be set. -; Returns: -; CF=0 - the value is successfully set. -; CF=1; the value is not set, because the parameter is unknown. -; -; This procedure calls procSet for the given object class and -; if the procedure returns CF=1; tries to call the parents procedures -; procSet, until the value is set, or the root level of inheritance -; is reached. -;----------------------------------------------------------------------- -proc Set, .obj, .paramID, .value -begin - push ebx - - mov ebx, [.obj] - test ebx, ebx - jz .error - - mov ebx, [ebx+TObject.ptrClass] - -.loop: - cmp [ebx+TObjectClass.procSetParam], 0 ; get SetParam procedure pointer - je .parent - - push ebx - stdcall [ebx+TObjectClass.procSetParam], [.obj], [.paramID], [.value] - pop ebx - jnc .exit - -.parent: - mov ebx, [ebx+TObjectClass.ptrParent] - test ebx, ebx - jnz .loop - -.error: - stc -.exit: - pop ebx - return -endp - - -;----------------------------------------------------------------------- -; proc Destroy, .obj - destroys the object instance. -; -; Arguments: -; .obj - pointer to TObject descendent object. -; -; Returns: -; nothing. -; -; This procedure calls procDestroy for the given object class and all -; parent classes. Note that the memory is freed only by the last -; destroy handled from CObject class. -;----------------------------------------------------------------------- -proc Destroy, .obj -begin - push ebx - - mov ebx, [.obj] - test ebx, ebx - jz .error - - mov ebx, [ebx+TObject.ptrClass] - -.loop: - cmp [ebx+TObjectClass.procDestroy], 0 - je .parent - - push ebx - stdcall [ebx+TObjectClass.procDestroy], [.obj] - pop ebx - -.parent: - mov ebx, [ebx+TObjectClass.ptrParent] - test ebx, ebx - jnz .loop - - clc - pop ebx - return - -.error: - stc - pop ebx - return -endp - - - -;----------------------------------------------------------------------- -; proc Create, .class, .lparam - creates an instance from the given class. -; -; Arguments: -; .class - pointer to TObjectClass structure for needed object. -; .lparam - additional parameter. For the object created from templates -; it is the parent object from the template tree. -; -; Returns: -; ebx = pointer to the instance of the object. -; -; This procedure calls procCreate for the given object class and all -; parent classes in reverce order. -;----------------------------------------------------------------------- -proc Create, .class, .lparam -begin - push eax ecx - - mov ecx, [.class] - stdcall GetMem, [ecx+TObjectClass.dataSize] - mov ebx, eax - mov [eax+TObject.ptrClass], ecx - - push 0 - -.loop: - cmp [ecx+TObjectClass.procCreate], 0 - je .parent - - push [ecx+TObjectClass.procCreate] - -.parent: - mov ecx, [ecx+TObjectClass.ptrParent] - test ecx, ecx - jnz .loop - -.loop2: - pop ecx - jecxz .endcreate - - push ebx - stdcall ecx, ebx, [.lparam] - pop ebx - jmp .loop2 - -.endcreate: - pop ecx eax - return -endp - - - - -;----------------------------------------------------------------------- -; proc ExecEvent, .obj, .event, .inherited -; Arguments: -; .obj - pointer to the TObject descendent object. -; .class - pointer to TObjectClass structure that to be used for -; event handler. if NULL, the native class of .obj is used. -; this argument is used when there is a need to be called -; some of the inherited event handlers. -; .event - pointer to TSysEvent descendent structure. -;----------------------------------------------------------------------- -proc ExecEvent, .obj, .event -begin - push ebx - - mov ebx, [.obj] - test ebx, ebx - jz .error - - mov ebx, [ebx+TObject.ptrClass] - -.loop: - cmp [ebx+TObjectClass.procSysEventHandler], 0 ; get SetParam procedure pointer - je .parent - - push ebx - stdcall [ebx+TObjectClass.procSysEventHandler], [.obj], [.event] - pop ebx - jnc .exit - -.parent: - mov ebx, [ebx+TObjectClass.ptrParent] - test ebx, ebx - jnz .loop - -.error: - stc - -.exit: - pop ebx - return -endp - - - - -;----------------------------------------------------------------------- -; proc IsObject, .class - returns TRUE if the given object belongs to -; the given class. -;----------------------------------------------------------------------- -proc IsObject, .obj, .class -begin - push edx - - mov edx, [.obj] - test ebx, ebx - jz .error - - mov edx, [edx+TObject.ptrClass] - -.loop: - cmp edx, [.class] - je .found - - mov edx, [edx+TObjectClass.ptrParent] - test edx, edx - jnz .loop - -.error: - stc - pop edx - return - -.found: - clc - pop edx - return -endp DELETED freshlib/GUI/progutils.asm Index: freshlib/GUI/progutils.asm ================================================================== --- freshlib/GUI/progutils.asm +++ /dev/null @@ -1,45 +0,0 @@ -macro JumpList [id, target] { - forward - dw id, target - $ - 2 - common - dd 0 -} - -macro JumpTable [id, target] { -if ~ msg eq - call JumpTo - JumpList msg, target -end if -} - - -;------------------------------------------------------ -; proc JumpTo -; Searches for the message in the message table. -; Arguments: -; ebx - message number to search in the table. -; Returns: -; This procedure doesn't returns. It simply -; jumps to the address from table or imediately -; after the table if the message is not found. -; in both cases esi = eip -; Changes: -; eax, ecx -;------------------------------------------------------ -proc JumpTo -begin - pop ecx ; get table address, remove return address from the stack and save the value of esi. -.loop: - mov eax, [ecx] - lea ecx, [ecx+4] - test eax,eax - jz .exit - - cmp bx, ax - jne .loop - - sar eax, 16 - add ecx, eax -.exit: - jmp ecx -endp DELETED freshlib/GUI/sysevents.asm Index: freshlib/GUI/sysevents.asm ================================================================== --- freshlib/GUI/sysevents.asm +++ /dev/null @@ -1,67 +0,0 @@ -seMouseMove = $0001 -seMouseEnter = $0002 -seMouseLeave = $0003 -seMouseBtnPress = $0004 -seMouseBtnRelease = $0005 -seMouseBtnClick = $0006 -seMouseBtnDblClick = $0007 -seTimer = $0008 -seKbdKeyPress = $0009 -seKbdKeyRelease = $000a -seKbdStatusChanged = $000b -seKbdChar = $000c -sePaint = $0100 - - -struct TSysEvent - .event dd ? -ends - - -struct TMouseMoveEvent - . TSysEvent - .x dd ? - .y dd ? -ends - -mbLeft = 0 -mbMiddle = 1 -mbRight = 2 - -maskBtnLeft = $01 -maskBtnMiddle = $02 -maskBtnRight = $04 -maskCtrl = $08 -maskShift = $10 - - -struct TMouseButtonEvent - . TSysEvent - .Button dd ? - .kbdStatus dd ? -ends - - -struct TMouseEnterEvent - . TSysEvent -ends - - -struct TKeyboardEvent - . TSysEvent - .key dd ? - .kbdStatus dd ? -ends - - -struct TTimerEvent - . TSysEvent -ends - - -struct TPaintEvent - . TSysEvent - - .raster dd ? ; ID of the raster where you should paint. - .rect RECT -ends ADDED freshlib/License.txt Index: freshlib/License.txt ================================================================== --- /dev/null +++ freshlib/License.txt @@ -0,0 +1,24 @@ +FreshLib library project is (c) 2003..2013, John Found, Fresh development team; +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + Index: freshlib/TestFreshLib.fpr ================================================================== --- freshlib/TestFreshLib.fpr +++ freshlib/TestFreshLib.fpr cannot compute difference between binary files DELETED freshlib/TestLib.asm Index: freshlib/TestLib.asm ================================================================== --- freshlib/TestLib.asm +++ /dev/null @@ -1,210 +0,0 @@ -include 'compiler/executable.inc' - -include 'macros/allmacros.inc' -include 'equates/allequates.inc' - - -_BinaryType GUI - - -_CodeSection - - -include 'simpledebug/debug.asm' - -include 'GUI/SysEvents.asm' - -include 'system/memory.asm' -include 'system/files.asm' -include 'data/arrays.asm' -include 'data/strlib.asm' - -include 'graphics/text.asm' -include 'graphics/draw.asm' -include 'graphics/images.asm' -include 'graphics/giflib.asm' -include 'mouse/mouse.asm' - -include 'GUI/GUI.asm' - - -options.FastEnter = 0 -options.ShowSkipped = 0 -options.CheckArguments = 0 -options.ShowSizes = 1 - - -iglobal - -; This is a form template. -; It will be created by the visual editor. -; This template engine can contains any count of properties for every -; component of the template. Also it can contains non visual components -; such as action lists, image lists, etc. - -frmMainForm: - ObjTemplate tfParent or tfEnd, Form, frmMain, \ - visible, TRUE, \ - x, 100, \ - y, 50, \ - width, 640, \ - height, 480, \ - caption, 'Fresh portable Win32/Linux application test.' - - ObjTemplate tfChild, Button, btnChild1, \ - visible, TRUE, \ - x, 64, \ - y, 48, \ - width, 64, \ - height, 24, \ - TextAlign, dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ - caption, 'Button1', \ - OnClick, Button1Click - - ObjTemplate tfChild, Button, btnChild3, \ - visible, TRUE, \ - x, 64, \ - y, 80, \ - width, 64, \ - height, 48, \ - TextAlign, dtfAlignCenter or dtfAlignMiddle or dtfWordWrap,\ - caption, 'Destroy the edit', \ - OnClick, Button3Click - - ObjTemplate tfChild, Edit, editChild1, \ - visible, TRUE, \ - x, 32, \ - y, 8, \ - width, 220, \ - height, 19, \ - caption, 'Edit1', \ - Text, 'This is example edit' - - ObjTemplate tfChild or tfEnd, Button, btnChild2, \ - x, 136, \ - y, 48, \ - width, 202, \ - height, 202, \ - TextAlign, dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ - caption, <'Facer percipit eam at, quod deterruisset mel te! Integre complectitur concludaturque an pri, te congue', \ - ' albucius dissentias ius, mel erat exerci contentiones ut. Congue aeterno aliquando mea ea. Brute tritani an', \ - ' eos, ea cum urbanitas adolescens! Ei pro fuisset accusamus, ad ludus tractatos erroribus per, esse exerci', \ - ' persecuti eos et. Ea eam tempor intellegebat, vitae semper pri no! Eam ea iisque eruditi detracto, velit', \ - ' commodo similique pri cu. Eam wisi augue dolore no, cum ut habemus voluptua abhorreant, vis feugiat saperet ex.',\ - ' Cum ne modo dicunt, quo ad malis pericula urbanitas. Et eum saperet accusata, pro simul tamquam salutandi ea'>,\ - visible, TRUE, \ - OnClick, Button2Click -endg - - - -; Sample event handlers. They work with other objects on the form. - - -proc Button3Click, .self, .button -begin - DebugMsg 'Button3 clicked' - stdcall Destroy, [editChild1] ; it is safe to call it with [.obj]=0 - mov [editChild1], 0 - return -endp - - - - -proc Button1Click, .self, .button -begin - DebugMsg 'Button1 clicked' - -; stdcall Get, [btnChild2], TButton.TextAlign -; mov ecx, eax -; and ecx, not $03 -; inc eax -; and eax, 3 -; or eax, ecx -; stdcall Set, [btnChild2], TButton.TextAlign, eax -; -; stdcall Get, [btnChild1], TButton.caption -; stdcall Set, [editChild1], TEdit.Text, eax -; stdcall StrDel, eax - -iglobal - cGifFile file '_test_images/test.gif' - sizeof.cGifFile = $ - cGifFile -endg - - stdcall CreateImageGIF, cGifFile, sizeof.cGifFile - mov esi, eax - - stdcall OutputRegister, regEAX, 16 - - stdcall GetRaster, [btnChild2] - push eax - - stdcall DrawImage, eax, esi, 1, 1 - - stdcall FreeRaster ; from the stack - stdcall DestroyImage, esi - return -endp - - - -proc Button2Click, .self, .button -begin - DebugMsg 'Button2 clicked' - - stdcall Get, [btnChild1], TButton.TextAlign - mov ecx, eax - and ecx, not $0c - add eax, 4 - and eax, $0c - or eax, ecx - - stdcall Set, [btnChild1], TButton.TextAlign, eax - - stdcall Get, [btnChild2], TButton.caption - stdcall Set, [editChild1], TEdit.Text, eax - stdcall StrDel, eax - - return -endp - - - - - - -; Main Program -start: - InitializeAll - - stdcall Create, CApplication, 0 - jc .start_error - - mov [Application], ebx - - stdcall CreateFromTemplate, frmMainForm, 0 - mov ecx, [Application] - mov [ecx+TApplication.MainWindow], ebx - - -DebugMsg 'After initializing.' - - stdcall Run -DebugMsg 'Just before end.' - jmp ExitApplication - -.start_error: - mov eax, 1 - jmp ExitApplication -; end of main program - - -_ImportSection - -GlobalAPI equ ascii -include 'imports/allimports.asm' - -_DataSection -IncludeAllGlobals ADDED freshlib/_doc/CheckListFresh3.txt Index: freshlib/_doc/CheckListFresh3.txt ================================================================== --- /dev/null +++ freshlib/_doc/CheckListFresh3.txt @@ -0,0 +1,30 @@ +Legend: + +[+] - Fully implemented (more or less). +[?] - Partially implemented/work in progress. +[ ] - Not even started. + +Needed GUI controls in order to start work on Fresh IDE 3.0: + + [+] TForm + [+] TSplitGrid + [+] TAction (and Action lists) + [+] TButton + [+] TCheckbox + [?] TTreeView + [ ] TabControl + [?] TSourceEditor + [ ] TToolbar + [?] TMenu + [ ] TMenuBar + [ ] TStatusbar + [+] TProgressbar + [ ] TListView, TListbox or other kind of table/grid control with columns. + [+] TEdit - line editor + [ ] THint + + [+] General message dialog. + [ ] Open/Save dialogs. + [ ] Color selection dialog. (not so important). + [ ] Font select dialog. (not so important). + Index: freshlib/_doc/FreshLibRefMan.odt ================================================================== --- freshlib/_doc/FreshLibRefMan.odt +++ freshlib/_doc/FreshLibRefMan.odt cannot compute difference between binary files ADDED freshlib/_doc/Fresh_IDE.wiki Index: freshlib/_doc/Fresh_IDE.wiki ================================================================== --- /dev/null +++ freshlib/_doc/Fresh_IDE.wiki @@ -0,0 +1,39 @@ + + +
+Index
+[http://fresh.flatassembler.net | Fresh home]
+[FreshLib reference | FreshLib reference]
+[Fresh user guide | Fresh tips&tricks]
+
+ +Fresh is a visual assembly language IDE with built-in FASM assembler. + +The main goal of Fresh is to make programming in assembly as fast and +efficient as in other visual languages, without sacrificing the small +application size and the raw power of assembly language. + +Because Fresh is the logical continuation of the FASM project in the +area of visual programming, it is perfectly compatible with FASM and you +can use all your knowledge about FASM to program in Fresh. + +Of course, you can use Fresh not only for Windows programming, but also +to create programs for any OS that FASM supports - DOS, Linux, FreeBSD, +BeOS, MenuetOS - the same way as you do this in FASM. + +Now, the main direction of Fresh development is towards creating FreshLib - freely portable library, that to +provide portability for Fresh and programs created with Fresh to number of different OSes. +Initially for Win32 and Linux. + +This site is [http://www.fossil-scm.org|fossil] repository of Fresh sources. +You can clone the repository with following fossil command: +
fossil clone http://chiselapp.com/user/johnfound/repository/FreshIDE/ Fresh.fossil
+ +In order to use more functionality in this site, please [/login|login] as "anonimous" user. +Particularly you will be able to follow the links in the source tree, to download code and to fill bug reports and feature requests. + +If you want to contribute to the project, please contact me (johnfound) on [http://board.flatassembler.net|FASM message board] + +In order to download compiled FreshIDE, visit [http://fresh.flatassembler.net|Fresh IDE home page.] + +You can report bugs, or make some feature requests here, in the [/reportlist|Tickets system] ADDED freshlib/_doc/Fresh_and_Linux.wiki Index: freshlib/_doc/Fresh_and_Linux.wiki ================================================================== --- /dev/null +++ freshlib/_doc/Fresh_and_Linux.wiki @@ -0,0 +1,93 @@ +

Running and debugging Linux applications in Windows with Fresh IDE

+ +Fresh can compile applications for Linux. But how to run and debug these applications? + +There are different approaches, including virtual machines, second computer, running Linux, or rebooting every time you want to test compiled project. + +Fresh provides one very simple way of testing Linux applications. This method is to use [http://andlinux.org|andLinux]. andLinux is complete Ubuntu distribution, that uses coLinux kernel in order to allow running of Linux inside Windows OS. + +How to setup andLinux to work with Fresh? + + Step 1. Download andLinux package from [http://andlinux.org/downloads.php|andLinux download page]. + + There are two packages: "KDE version" and "minimal/XFCE version" available. For using with Fresh IDE, it is not important what version you will choose. + + KDE package is very big and very slow distribution that contains many bundled programs and tools, but in general you will not need them. The size of KDE package is 500MB download and 5GB installed. + + The XFCE package is relatively smaller and faster. Relatively means 200MB downloaded file and 2GB installed on the disk. + + It is obvious that the right choice is to use XFCE package. + + Step 2. Run the downloaded setup file and answer to the different questions of the setup wizard. + + The important features that we need are: + + * coLinux version - choose the stable version (0.7.4 in my case) instead of latest (0.8.0) - we shall work with andLinux, not to play. + + * Memory size - 256MB RAM (or maybe more - if you can afford it). + + * Install XMing server on your primary screen. + + * Sound - you can enable or disable sound in Linux option - it is harmless although it is one more running server. + + * Startup type + Panel - select "run andLinux automatically as a NT service + use Windows shortcuts"; It is not very important, but can save you a little manual work and troubles later. + + * andLinux login - just select your user name and password for Linux root. + + * Windows File Access - it is important! - select "using CoFS", no matter it is not recommended. + + * File Access Using CoFS - important! - create one new directory somewhere and select it to be mount via CoFS. This will be the shared directory, visible from Windows and from Linux in the same time. + + All other features you can choose freely or simply leave them to default state. + + When you start installation, the installer will try to install network driver. It is possible Windows will protest and will atempt to mislead you by asking to not install not certified driver. You must ignore these attempts and firmly click "install". + + After installation of andLinux you have to restart Windows and probably andLinux will not run. :D It is because of the Windows firewall. All new network adapters are firewalled by default. As long as installed adapter (named TAP-Colinux) is virtual and local, you will not need any firewall so, go to control panel/Windows firewall/Advanced and uncheck "TAP-Colinux" adapter from the list of adapters. + + Then you can run some Linux program - in the Windows tray, there is a andLinux menu icon that have shortcuts to several Linux programs. + + Step 3. Install several additional Linux tools. You will need additionally debugger and come decent terminal emulator. I choose xterm for terminal, because it is small and white by default. ;) You can choose to use the built-in terminal named in the simple Linux manner: "xfce4-terminal" and console debugger "gdb". In this case you have skip this step. + + Start "Synaptic" - package manager for Ubuntu from the tray menu. You have to enter root password you choose on install. + + When Synaptic is started, click "Reload" to refresh the package list from the network and then use search to locate needed programs. I personally recommend "xterm" as terminal and "ddd" as a GUI front end to "gdb". + + Well, I recommend "ddd" only because it is only Linux debugger that I was able to run under andLinux and able to show disassembled code of the program. + + Mark selected programs for install, click on Apply button and wait until downloading and installation. + + Here you can encounter only one problem - your computer is behind a proxy server. + + If the proxy is normal proxy, you simply have to set its address and port in the Synaptic preferences and it should work. + + Completely another story is when the proxy is MS ISA server configured with NTLM user authorization. + + Most Linux programs can't work with such authorization and Synaptic is not an exception. + + Fortunately, there is a workaround of this situation. You need [http://ntlmaps.sourceforge.net/|ntlmaps] authorization proxy server. + + Setting up of this server is out of the scope of this article. On the ntlmaps home page you can read complete documentation and explanations. + + OK, we are ready with andLinux. Now you have working copy of Ubuntu inside your Windows box. + + It's time to configure Fresh to run Linux applications inside andLinux. Continue with: + + Step 4. Fresh IDE configuration. + + Run Fresh and open "Options|IDE options" dialog. Select "Debuggers and Emulators" page. + + Then select following directories and commands: + + * "andLinux directory" - the directory where you installed andLinux. + + * "andLinux shared directory" - shared directory you selected during andLinux installation. + + * "Linux debugger" - Enter "ddd" (or whatever debugger you choose). + + * "Linux terminal" - Enter "xterm -hold +mesg -e" - note the options. + +

And voila! You finished the configuration!

+ + Now you can load the source of some Linux program (look at Fresh examples) and run it with shift+F9 or load it in the debugger with shift+F8. + + Fresh will detect when you compiled ELF executable and will run it in andLinux instead of Windows. ADDED freshlib/_doc/GUI.wiki Index: freshlib/_doc/GUI.wiki ================================================================== --- /dev/null +++ freshlib/_doc/GUI.wiki @@ -0,0 +1,433 @@ + + +

FreshLib directory: GUI

+ +

GUI library defines many data structures and procedures that together form +something that conditionally can be called "OOP". It is object oriented, as +long as it deals with GUI "objects" - forms, controls, menus etc. +All these objects are in fact structures of data. For every created object, +the library allocates some memory and fills this memory with object parameters +data.

+ +

There are two types of data structures that describe GUI objects - classes +and instances.

+ +

The class is a structure that contains data commonly used by all objects of given type - for example all buttons use one class structure CButton.

+ +

The instance is data structure that describes the properties and behavior of particular GUI object - for example button with icon "open file" that opens a file when the user click on it.

+ +

Classes

+ +

"Class" in FreshLib is a data structure, that have the following definition:

+ +
+struct TObjectClass
+  .ptrParent           dd 0   
+  .dataSize            dd 0   
+  .procCreate          dd 0
+  .procDestroy         dd 0
+  .procGetParam        dd 0
+  .procSetParam        dd 0
+  .procExecCmd         dd 0
+  .procSysEventHandler dd 0
+ends
+
+ +

.ptrParent is a pointer to other TObjectClass structure, that appears as a parent class for the given class.

+

.dataSize contains the size of the object instance structure.

+ +

The following fields are the pointers to procedures that provides the "work" of the object. All of these pointers as a rule can be NULL, if there is no need for such processing.

+ +

Create

+

.procCreate is a procedure that creates instance object of the given class. This +field can be NULL. It has the following definition:

+
+proc Create, .obj
+
+

This procedure sets needed values in the object instance data structure.

+ +

Destroy

+

.procDestroy is a procedure that destroys an instance of the given class.

+
+proc Destroy, .obj
+
+

Destroys the object passed in [.obj] and frees all memory allocated for this object.

+ +

GetParam

+

.procGetParam is a pointer to the procedure that retrieves and returns the properties of the object.

+
+proc GetParam, .obj, .paramID
+
+

Returns the value of the object [.obj] parameter with ID=[.paramID]

+ +

Set

+

.procSetParam is a pointer to the procedure that set the properties of the object.

+
+proc Set, .obj, .paramID, .value
+
+

For object [.obj], set the value of the parameter with ID=[.paramID]

+ +

ExecCmd

+

.procExecCmd is a pointer to the procedure that executes object method.

+
+proc ExecCmd, .obj, .method
+
+

For the object [.obj] this procedure executes the method with method ID in [.method].

+

The methods can have arbitrary number of arguments, that are defined in the "object" definition (see below). +When the method is executed, the procedure [.procExecCmd] accepts pointer to the arguments array in [ebx]

+

The user is supposed to call methods of the object with the macro "execute" +The macro is defined following way:

+
+macro execute obj*, meth*, [arg]
+
+ + +

SysEventHandler

+

.procSysEventHandler is a pointer to the procedure that process the system events that are send to the object, i.e. mouse events, keyboard events etc.

+
+proc SysEventHandler, .obj, .pEvent
+
+

Process one system event for object [.obj]. [.pEvent] contains pointer to the system event.

+ +

All of these procedures are called internally and should not be used by the user of the library. +How these procedure are called will be described later.

+ +

TObjectClass structure is defined statically in memory in compile time, only once for every object class. Its definition is located in the library for the respective GUI element. For example CButton class structure is defined in the file TButton.asm that contains the code and data of the object class Button.

+ +

In order to make construction of such structures easy, macro with name ObjectClass is defined in objects.asm

+ +

ObjectClass Macro

+
+macro ObjectClass name*, parent*, procCreate*, procDestroy*, procGetParam*, procSetParam*, procExecCmd*, procSysEvents*
+
+ +

Every defined ObjectClass have a label that points to the begin of the structure. The name of this label is the name of the class, prefixed with "C".

+ +

One example of ObjectClass definition is the definition of Window object class:

+
+ObjectClass Window,             \
+            Object,             \
+            TWindow.Create,     \
+            TWindow.Destroy,    \
+            TWindow.Get,        \
+            TWindow.Set,        \
+            TWindow.ExecCmd,    \
+            TWindow.SysEventHandler
+
+ +

This definition creates following data structure:

+
+CWindow:
+            dd  CObject         
+            dd  sizeof.TWindow             
+            dd  TWindow.Create
+            dd  TWindow.Destroy    
+            dd  TWindow.Get      
+            dd  TWindow.Set,        
+            dd  TWindow.ExecCmd
+            dd  TWindow.SysEventHandler
+
+ + + +

Object structure

+

Object instance is data structure that contains different fields. By that it is very similar to the normal FASM structures. As structures, the object is only description of the data but not the data itself.

+

Objects can inherit field definitions by its parent objects. +The memory instance of the object is allocated dynamically in runtime, when the object is created by call to the respective FreshLib functions.

+

The definition of the object looks like following:

+ +
+object TObject
+  .ptrClass     dd ? 
+
+  .OnCreate     dd ? 
+  .OnDestroy    dd ?
+
+  method .AddChild, .objchild
+endobj
+
+
+object TWindow, TObject
+  .handle       dd ?   
+  .Fcaption     dd ?    
+  .Fcursor      dd ?    
+
+  param .x
+  param .y
+  param .width
+  param .height
+  param .visible
+  param .caption
+  param .parent
+  param .cursor
+
+  method .Refresh
+endobj
+
+
+object TButton, TWindow
+  .state      dd ?
+  .Ficon      dd ?
+  .FiconAlign dd ?
+  .Ftextalign dd ?
+
+  .OnClick dd ?
+
+  param .TextAlign
+  param .Icon
+  param .IconPosition
+endobj
+
+ +

By convention the names of the objects begin with "T".

+

You can see that the object TWindow contains data fields, parameters and methods. +The parameters defined by "param" macro are compile time constants which values are assigned automatically. +There constants are local labels for the object structure. They are also inherited from the parent structure.

+

The methods are very similar to parameters, in that they are constants, defined in compile time. +But besides the constant, the method also have list of arguments, passed to the method, when executed.

+ + +

In the above example, TButton.width parameter is inherited from TWindow and have the same value as TWindow.width parameter.

+

Also, TWindow have all fields of TObject defined as well.

+

If we have to translate TWindow definition in plain FASM syntax it will looks like this:

+ +
+struc TWindow {
+  .ptrClass     dd ? 
+
+  .OnCreate     dd ? 
+  .OnDestroy    dd ?
+
+  .handle       dd ?   
+  .Fcaption     dd ?    
+  .Fcursor      dd ?    
+
+  .x       = $80000000
+  .y       = $80000001
+  .width   = $80000002
+  .height  = $80000003
+  .visible = $80000004
+  .caption = $80000005
+  .parent  = $80000006
+  .cursor  = $80000007
+}
+virtual at 0
+  TWindow TWindow
+  sizeof.TWindow = $
+end virtual
+
+ +

This directory contains the libraries providing portable GUI for assembly programming.

+

Note that this libraries are in very early stage of development, so the description in this chapter is preliminary and probably will be changed in one or another way in the near future.

+

Later in this text, the whole GUI subsystem of FreshLib will be called FreshGUI

+ +

FreshGUI structure

+

The main idea behind the FreshGUI is to make one small OS dependent layer of functions, that to serve as an interface between the OS and the OS independent layer of the library.

+

The first will translate OS events, such as mouse, keyboard, timers etc to one common standard of OS independent event handlers of the user interface objects – windows, buttons and other widgets.

+

The biggest advantage of this approach is that the portability of the library is very easy – most of the code is OS independent and only little part of it have to be write in order to port the whole library to a new OS.

+

The biggest drawback of this approach is the bigger size of the library, because, with this architecture, all controls in the library have to be created from scratch. It is impossible to use graphic controls that the OS provides – particularly Win32 controls - buttons, simple text editors, labels, combo boxes list and tree view controls etc.

+

FreshGUI is not aimed to use all complex GUI system of the target OS. At first time, the goal of FreshGUI is to provide minimal but decent functionality that will do the job – writing portable applications in assembly language.

+

Graphics library

+

The graphics library provides procedures that draw graphics images and text on the screen. The library is OS dependent and is placed in the directory "graphics" in the root directory of FreshLib. The main conception of this library is ".raster" - represented by handle, object where the drawing happens. The exact meaning for this object is different for the different OS – in Win32 it is named "device context", in Linux it is "drawable" - window or pixmap.

+ +

Event translation layer

+ +

Library "sysevents.asm"

+

This library contains event codes and data structures for FreshGUI OS independent events. For now only several events are defined:

+
+seMouseMove        
+seMouseEnter       
+seMouseLeave       
+seMouseBtnPress    
+seMouseBtnRelease  
+seMouseBtnClick    
+seMouseBtnDblClick 
+
+seTimer            
+
+seKbdKeyPress      
+seKbdKeyRelease    
+seKbdStatusChanged 
+seKbdChar          
+
+sePaint 
+
+

These events cover mouse, keyboard, timers and paint events.

+

Every event have some arguments that have to be sent to the recipient event handler. The event code and the event arguments are contained in data structure, defined for every kind of events.

+

The first dword of the event structure is the field .event that contains the event code.

+

Here are the structures defined in sysevents.asm

+
+struct TSysEvent
+  .event  dd  ?
+ends
+
+

The base event structure.

+ +
+struct TMouseMoveEvent
+  . TSysEvent
+  .x         dd ?
+  .y         dd ?
+ends
+
+

The event is generated when the mouse cursor moves over some window or control. .x and .y contains the coordinates of the mouse cursor relative to the control this message is sent to.

+ +
+ struct TMouseButtonEvent
+  . TSysEvent
+  .Button    dd ?
+  .kbdStatus dd ?
+ends
+
+

This event is generated when some of the mouse buttons changes its state. The button that changes its state is specified in the field .Button

+

This field can accept following values:

+ + + + +
mbLeft = 0
mbMiddle = 1
mbRight = 2
+

The field .kbdStatus contains the status of remaining mouse buttons and keyboard modifying buttons. These buttons are represented by bits in the field:

+ + + + + + +
maskBtnLeft = $01
maskBtnMiddle = $02
maskBtnRight = $04
maskCtrl = $08
maskShift = $10
+
+struct TMouseEnterEvent
+  . TSysEvent
+ends
+
+

This event is generated when the mouse cursor enters or leaves some control. There is no additional parameters besides the event code.

+ +
+struct TKeyboardEvent
+  . TSysEvent
+  .key       dd  ?
+  .kbdStatus dd  ?
+ends
+
+

This event is generated on keyboard button press/release. The field .key contains the code of the pressed button. .kbdStatus have the same meaning and the same values as in TMouseButtonEvent.

+ +
+struct TTimerEvent
+  . TSysEvent
+ends
+
+

TTimerEvent is generated on timer events. :)

+ +
+struct TPaintEvent
+  . TSysEvent
+  .raster dd ?  ; ID of the raster where you should paint.
+  .rect   RECT
+ends  
+
+

TPaintEvent is generated when given control have to be repainted. The field .raster contains the handle to the graphic surface where the program have to draw. This handle have different meanings in the different target OS, but it simply need to be understandable by the graphics procedures from the OS dependent library graphics.asm.

+

The field .rect is the rectangle of the control that needs to be repainted.

+ +

Library "main.asm"

+ +

proc Run

+

This procedure is the main program loop of the GUI application.

+

The procedure Run process all pending system events, then calls once the OnIdle event handler of the application object and then sleeps until new events are sent by the OS.

+

When the OS terminates the application – the procedure returns an exit code.

+

The user uses this procedure following way:

+
+        stdcall Run
+        jmp     ExitApplication
+
+ +

proc ProcessSystemEvents

+

This procedure process the events generated by the OS. If there are waiting events in the queue, the procedure reads them, translates them to FreshGUI event data structures and calls the event handlers of the respective controls.

+

If there is no pending events in the queue, ProcessSystemEvents ends with CF=0

+

The second task this procedure serves is to detect the end of the application. In this case it ends with CF=1.

+

This procedure is call from the main event loop of the application. Also, the user can periodically call this procedure in order to not allow hanging of the user interface during long processing of some data.

+ +

proc WaitForSystemEvent

+

This procedure waits until some system message is posted to the application event queue. Then it exits. During the wait, very low CPU power is consumed by the application.

+ +

proc Terminate

+

It provides all finalization tasks and ends the application. The exit code is provided in EAX.

+ +

Template engine

+

The template engine provides creation of complex window structures with tree layout from memory data structure, called template. The templates makes creation of dialog windows containing children windows and non visual objects.

+

Templates can be visually created and edited. The template format used by FreshLib is flexible and allows all parameters and fields of the objects to be set to needed values during creation of the window.

+

The template engine is located in the file ObjTemplates.asm

+ +

Template data structure

+

The template is consisted from one or more data structures of type TObjTemplate, defined following way:

+
+struct TObjTemplate
+  .flags     dd  ?     
+  .class     dd  ?
+  .ptrVar    dd  ?     
+  .paramsize dd  ?
+  .params:
+ends
+
+

.flags – controls what is the place of the object in the whole tree structure.

+

Can accept one or both of the following values, combined with OR:

+ + + + +
tfChild =0 means the object is child of the last object with tfParent set.
tfParent =1 means the given object is parent and there will be next TObjTemplate structure that will be a child object.
tfEnd =2 means the given object is the last child of its parent. Note, that one object can be parent and child in the same time. If the current template is at root level – the processing of template stops, after creating the current element and all its children.
+ +

.class – pointer to TObjectClass data structure for the created object.

+

.ptrVar – pointer to dword variable that to accept the pointer to the created object.

+

.paramsize – the size of the additional data to the end of the template. Note, that TObjTemplate is variable length structure, not fixed. sizeof.TObjTemplate contains the size of the header part of the structure.

+

.params: after the header fields there can be arbitrary count of dword pairs: (paramID, Value) that to be set the the object during creation. This sequence ends with dword $FFFFFF (-1) value for paramID.

+ +

Easy creation of templates is provided with macro ObjTemplate:

+
+macro ObjTemplate  flags, class, name, [id, param]
+
+

This macro allows use of string values for params and computes automatically the values for TObjTemplate.paramsize

+

flags – set of (tfParent, tfEnd) constants.

+

class – the base name of the object class (without prefix C) – i.e. Form, Window, Button, etc.

+

name – label of the variable to receive the pointer to the created object.

+

id – parameter ID or offset in the object structure.

+

param – value of the parameter. Can be dword number or string constant. In the case the parameter value is string, it will be automatically created in the memory and the pointer to this string will be placed as a param value.

+

One simple example of template structure:

+
+ObjTemplate  tfParent or tfEnd, Form, frmMain, \
+			 visible, TRUE, \
+			 x, 100,        \
+			 y, 50,         \
+			 width, 640,    \
+			 height, 480,   \
+			 caption, 'Fresh portable Win32/Linux application test.'
+
+  ObjTemplate  tfChild, Button, btnChild1,          \
+			 visible, TRUE, \
+			 x, 64,         \
+			 y, 48,         \
+			 width, 64,     \
+			 height, 24,    \
+			 caption, 'Button1',        \
+			 OnClick, Button1Click
+
+  ObjTemplate  tfChild or tfEnd, Button, btnChild2,          \
+			 x, 136,         \
+			 y, 48,         \
+			 width, 64,     \
+			 height, 24,        \
+			 caption, 'Button2' ,\
+			 visible, TRUE
+
+ +

Template engine procedures

+

Actually the procedure is one:

+
+proc CreateFromTemplate, .ptrTemplate, .parent
+
+ +

This procedure creates all objects from the template, pointed by [.ptrTemplate] as a parent of [.parent] argument.

+

.ptrTemplate points to TObjTemplate structure.

+

.parent points to TObject descendant structure. In most cases it will be actually descendant of TWindow or NULL if the created object is not a child of any window.

+

Returns: EBX contains a pointer to the topmost of the created object (it is first of the created objects)

+

All pointers of the objects are stored in the specified in the template variables ( i.e. [TObjTemplate.ptrVar])

+
+ ADDED freshlib/_doc/RFC/rfc1950.txt Index: freshlib/_doc/RFC/rfc1950.txt ================================================================== --- /dev/null +++ freshlib/_doc/RFC/rfc1950.txt @@ -0,0 +1,619 @@ + + + + + + +Network Working Group P. Deutsch +Request for Comments: 1950 Aladdin Enterprises +Category: Informational J-L. Gailly + Info-ZIP + May 1996 + + + ZLIB Compressed Data Format Specification version 3.3 + +Status of This Memo + + This memo provides information for the Internet community. This memo + does not specify an Internet standard of any kind. Distribution of + this memo is unlimited. + +IESG Note: + + The IESG takes no position on the validity of any Intellectual + Property Rights statements contained in this document. + +Notices + + Copyright (c) 1996 L. Peter Deutsch and Jean-Loup Gailly + + Permission is granted to copy and distribute this document for any + purpose and without charge, including translations into other + languages and incorporation into compilations, provided that the + copyright notice and this notice are preserved, and that any + substantive changes or deletions from the original are clearly + marked. + + A pointer to the latest version of this and related documentation in + HTML format can be found at the URL + . + +Abstract + + This specification defines a lossless compressed data format. The + data can be produced or consumed, even for an arbitrarily long + sequentially presented input data stream, using only an a priori + bounded amount of intermediate storage. The format presently uses + the DEFLATE compression method but can be easily extended to use + other compression methods. It can be implemented readily in a manner + not covered by patents. This specification also defines the ADLER-32 + checksum (an extension and improvement of the Fletcher checksum), + used for detection of data corruption, and provides an algorithm for + computing it. + + + + +Deutsch & Gailly Informational [Page 1] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + +Table of Contents + + 1. Introduction ................................................... 2 + 1.1. Purpose ................................................... 2 + 1.2. Intended audience ......................................... 3 + 1.3. Scope ..................................................... 3 + 1.4. Compliance ................................................ 3 + 1.5. Definitions of terms and conventions used ................ 3 + 1.6. Changes from previous versions ............................ 3 + 2. Detailed specification ......................................... 3 + 2.1. Overall conventions ....................................... 3 + 2.2. Data format ............................................... 4 + 2.3. Compliance ................................................ 7 + 3. References ..................................................... 7 + 4. Source code .................................................... 8 + 5. Security Considerations ........................................ 8 + 6. Acknowledgements ............................................... 8 + 7. Authors' Addresses ............................................. 8 + 8. Appendix: Rationale ............................................ 9 + 9. Appendix: Sample code ..........................................10 + +1. Introduction + + 1.1. Purpose + + The purpose of this specification is to define a lossless + compressed data format that: + + * Is independent of CPU type, operating system, file system, + and character set, and hence can be used for interchange; + + * Can be produced or consumed, even for an arbitrarily long + sequentially presented input data stream, using only an a + priori bounded amount of intermediate storage, and hence can + be used in data communications or similar structures such as + Unix filters; + + * Can use a number of different compression methods; + + * Can be implemented readily in a manner not covered by + patents, and hence can be practiced freely. + + The data format defined by this specification does not attempt to + allow random access to compressed data. + + + + + + + +Deutsch & Gailly Informational [Page 2] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + + 1.2. Intended audience + + This specification is intended for use by implementors of software + to compress data into zlib format and/or decompress data from zlib + format. + + The text of the specification assumes a basic background in + programming at the level of bits and other primitive data + representations. + + 1.3. Scope + + The specification specifies a compressed data format that can be + used for in-memory compression of a sequence of arbitrary bytes. + + 1.4. Compliance + + Unless otherwise indicated below, a compliant decompressor must be + able to accept and decompress any data set that conforms to all + the specifications presented here; a compliant compressor must + produce data sets that conform to all the specifications presented + here. + + 1.5. Definitions of terms and conventions used + + byte: 8 bits stored or transmitted as a unit (same as an octet). + (For this specification, a byte is exactly 8 bits, even on + machines which store a character on a number of bits different + from 8.) See below, for the numbering of bits within a byte. + + 1.6. Changes from previous versions + + Version 3.1 was the first public release of this specification. + In version 3.2, some terminology was changed and the Adler-32 + sample code was rewritten for clarity. In version 3.3, the + support for a preset dictionary was introduced, and the + specification was converted to RFC style. + +2. Detailed specification + + 2.1. Overall conventions + + In the diagrams below, a box like this: + + +---+ + | | <-- the vertical bars might be missing + +---+ + + + + +Deutsch & Gailly Informational [Page 3] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + + represents one byte; a box like this: + + +==============+ + | | + +==============+ + + represents a variable number of bytes. + + Bytes stored within a computer do not have a "bit order", since + they are always treated as a unit. However, a byte considered as + an integer between 0 and 255 does have a most- and least- + significant bit, and since we write numbers with the most- + significant digit on the left, we also write bytes with the most- + significant bit on the left. In the diagrams below, we number the + bits of a byte so that bit 0 is the least-significant bit, i.e., + the bits are numbered: + + +--------+ + |76543210| + +--------+ + + Within a computer, a number may occupy multiple bytes. All + multi-byte numbers in the format described here are stored with + the MOST-significant byte first (at the lower memory address). + For example, the decimal number 520 is stored as: + + 0 1 + +--------+--------+ + |00000010|00001000| + +--------+--------+ + ^ ^ + | | + | + less significant byte = 8 + + more significant byte = 2 x 256 + + 2.2. Data format + + A zlib stream has the following structure: + + 0 1 + +---+---+ + |CMF|FLG| (more-->) + +---+---+ + + + + + + + + +Deutsch & Gailly Informational [Page 4] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + + (if FLG.FDICT set) + + 0 1 2 3 + +---+---+---+---+ + | DICTID | (more-->) + +---+---+---+---+ + + +=====================+---+---+---+---+ + |...compressed data...| ADLER32 | + +=====================+---+---+---+---+ + + Any data which may appear after ADLER32 are not part of the zlib + stream. + + CMF (Compression Method and flags) + This byte is divided into a 4-bit compression method and a 4- + bit information field depending on the compression method. + + bits 0 to 3 CM Compression method + bits 4 to 7 CINFO Compression info + + CM (Compression method) + This identifies the compression method used in the file. CM = 8 + denotes the "deflate" compression method with a window size up + to 32K. This is the method used by gzip and PNG (see + references [1] and [2] in Chapter 3, below, for the reference + documents). CM = 15 is reserved. It might be used in a future + version of this specification to indicate the presence of an + extra field before the compressed data. + + CINFO (Compression info) + For CM = 8, CINFO is the base-2 logarithm of the LZ77 window + size, minus eight (CINFO=7 indicates a 32K window size). Values + of CINFO above 7 are not allowed in this version of the + specification. CINFO is not defined in this specification for + CM not equal to 8. + + FLG (FLaGs) + This flag byte is divided as follows: + + bits 0 to 4 FCHECK (check bits for CMF and FLG) + bit 5 FDICT (preset dictionary) + bits 6 to 7 FLEVEL (compression level) + + The FCHECK value must be such that CMF and FLG, when viewed as + a 16-bit unsigned integer stored in MSB order (CMF*256 + FLG), + is a multiple of 31. + + + + +Deutsch & Gailly Informational [Page 5] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + + FDICT (Preset dictionary) + If FDICT is set, a DICT dictionary identifier is present + immediately after the FLG byte. The dictionary is a sequence of + bytes which are initially fed to the compressor without + producing any compressed output. DICT is the Adler-32 checksum + of this sequence of bytes (see the definition of ADLER32 + below). The decompressor can use this identifier to determine + which dictionary has been used by the compressor. + + FLEVEL (Compression level) + These flags are available for use by specific compression + methods. The "deflate" method (CM = 8) sets these flags as + follows: + + 0 - compressor used fastest algorithm + 1 - compressor used fast algorithm + 2 - compressor used default algorithm + 3 - compressor used maximum compression, slowest algorithm + + The information in FLEVEL is not needed for decompression; it + is there to indicate if recompression might be worthwhile. + + compressed data + For compression method 8, the compressed data is stored in the + deflate compressed data format as described in the document + "DEFLATE Compressed Data Format Specification" by L. Peter + Deutsch. (See reference [3] in Chapter 3, below) + + Other compressed data formats are not specified in this version + of the zlib specification. + + ADLER32 (Adler-32 checksum) + This contains a checksum value of the uncompressed data + (excluding any dictionary data) computed according to Adler-32 + algorithm. This algorithm is a 32-bit extension and improvement + of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + standard. See references [4] and [5] in Chapter 3, below) + + Adler-32 is composed of two sums accumulated per byte: s1 is + the sum of all bytes, s2 is the sum of all s1 values. Both sums + are done modulo 65521. s1 is initialized to 1, s2 to zero. The + Adler-32 checksum is stored as s2*65536 + s1 in most- + significant-byte first (network) order. + + + + + + + + +Deutsch & Gailly Informational [Page 6] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + + 2.3. Compliance + + A compliant compressor must produce streams with correct CMF, FLG + and ADLER32, but need not support preset dictionaries. When the + zlib data format is used as part of another standard data format, + the compressor may use only preset dictionaries that are specified + by this other data format. If this other format does not use the + preset dictionary feature, the compressor must not set the FDICT + flag. + + A compliant decompressor must check CMF, FLG, and ADLER32, and + provide an error indication if any of these have incorrect values. + A compliant decompressor must give an error indication if CM is + not one of the values defined in this specification (only the + value 8 is permitted in this version), since another value could + indicate the presence of new features that would cause subsequent + data to be interpreted incorrectly. A compliant decompressor must + give an error indication if FDICT is set and DICTID is not the + identifier of a known preset dictionary. A decompressor may + ignore FLEVEL and still be compliant. When the zlib data format + is being used as a part of another standard format, a compliant + decompressor must support all the preset dictionaries specified by + the other format. When the other format does not use the preset + dictionary feature, a compliant decompressor must reject any + stream in which the FDICT flag is set. + +3. References + + [1] Deutsch, L.P.,"GZIP Compressed Data Format Specification", + available in ftp://ftp.uu.net/pub/archiving/zip/doc/ + + [2] Thomas Boutell, "PNG (Portable Network Graphics) specification", + available in ftp://ftp.uu.net/graphics/png/documents/ + + [3] Deutsch, L.P.,"DEFLATE Compressed Data Format Specification", + available in ftp://ftp.uu.net/pub/archiving/zip/doc/ + + [4] Fletcher, J. G., "An Arithmetic Checksum for Serial + Transmissions," IEEE Transactions on Communications, Vol. COM-30, + No. 1, January 1982, pp. 247-252. + + [5] ITU-T Recommendation X.224, Annex D, "Checksum Algorithms," + November, 1993, pp. 144, 145. (Available from + gopher://info.itu.ch). ITU-T X.244 is also the same as ISO 8073. + + + + + + + +Deutsch & Gailly Informational [Page 7] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + +4. Source code + + Source code for a C language implementation of a "zlib" compliant + library is available at ftp://ftp.uu.net/pub/archiving/zip/zlib/. + +5. Security Considerations + + A decoder that fails to check the ADLER32 checksum value may be + subject to undetected data corruption. + +6. Acknowledgements + + Trademarks cited in this document are the property of their + respective owners. + + Jean-Loup Gailly and Mark Adler designed the zlib format and wrote + the related software described in this specification. Glenn + Randers-Pehrson converted this document to RFC and HTML format. + +7. Authors' Addresses + + L. Peter Deutsch + Aladdin Enterprises + 203 Santa Margarita Ave. + Menlo Park, CA 94025 + + Phone: (415) 322-0103 (AM only) + FAX: (415) 322-1734 + EMail: + + + Jean-Loup Gailly + + EMail: + + Questions about the technical content of this specification can be + sent by email to + + Jean-Loup Gailly and + Mark Adler + + Editorial comments on this specification can be sent by email to + + L. Peter Deutsch and + Glenn Randers-Pehrson + + + + + + +Deutsch & Gailly Informational [Page 8] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + +8. Appendix: Rationale + + 8.1. Preset dictionaries + + A preset dictionary is specially useful to compress short input + sequences. The compressor can take advantage of the dictionary + context to encode the input in a more compact manner. The + decompressor can be initialized with the appropriate context by + virtually decompressing a compressed version of the dictionary + without producing any output. However for certain compression + algorithms such as the deflate algorithm this operation can be + achieved without actually performing any decompression. + + The compressor and the decompressor must use exactly the same + dictionary. The dictionary may be fixed or may be chosen among a + certain number of predefined dictionaries, according to the kind + of input data. The decompressor can determine which dictionary has + been chosen by the compressor by checking the dictionary + identifier. This document does not specify the contents of + predefined dictionaries, since the optimal dictionaries are + application specific. Standard data formats using this feature of + the zlib specification must precisely define the allowed + dictionaries. + + 8.2. The Adler-32 algorithm + + The Adler-32 algorithm is much faster than the CRC32 algorithm yet + still provides an extremely low probability of undetected errors. + + The modulo on unsigned long accumulators can be delayed for 5552 + bytes, so the modulo operation time is negligible. If the bytes + are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + and order sensitive, unlike the first sum, which is just a + checksum. That 65521 is prime is important to avoid a possible + large class of two-byte errors that leave the check unchanged. + (The Fletcher checksum uses 255, which is not prime and which also + makes the Fletcher check insensitive to single byte changes 0 <-> + 255.) + + The sum s1 is initialized to 1 instead of zero to make the length + of the sequence part of s2, so that the length does not have to be + checked separately. (Any sequence of zeroes has a Fletcher + checksum of zero.) + + + + + + + + +Deutsch & Gailly Informational [Page 9] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + +9. Appendix: Sample code + + The following C code computes the Adler-32 checksum of a data buffer. + It is written for clarity, not for speed. The sample code is in the + ANSI C programming language. Non C users may find it easier to read + with these hints: + + & Bitwise AND operator. + >> Bitwise right shift operator. When applied to an + unsigned quantity, as here, right shift inserts zero bit(s) + at the left. + << Bitwise left shift operator. Left shift inserts zero + bit(s) at the right. + ++ "n++" increments the variable n. + % modulo operator: a % b is the remainder of a divided by b. + + #define BASE 65521 /* largest prime smaller than 65536 */ + + /* + Update a running Adler-32 checksum with the bytes buf[0..len-1] + and return the updated checksum. The Adler-32 checksum should be + initialized to 1. + + Usage example: + + unsigned long adler = 1L; + + while (read_buffer(buffer, length) != EOF) { + adler = update_adler32(adler, buffer, length); + } + if (adler != original_adler) error(); + */ + unsigned long update_adler32(unsigned long adler, + unsigned char *buf, int len) + { + unsigned long s1 = adler & 0xffff; + unsigned long s2 = (adler >> 16) & 0xffff; + int n; + + for (n = 0; n < len; n++) { + s1 = (s1 + buf[n]) % BASE; + s2 = (s2 + s1) % BASE; + } + return (s2 << 16) + s1; + } + + /* Return the adler32 of the bytes buf[0..len-1] */ + + + + +Deutsch & Gailly Informational [Page 10] + +RFC 1950 ZLIB Compressed Data Format Specification May 1996 + + + unsigned long adler32(unsigned char *buf, int len) + { + return update_adler32(1L, buf, len); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Deutsch & Gailly Informational [Page 11] + ADDED freshlib/_doc/RFC/rfc1951.txt Index: freshlib/_doc/RFC/rfc1951.txt ================================================================== --- /dev/null +++ freshlib/_doc/RFC/rfc1951.txt @@ -0,0 +1,955 @@ + + + + + + +Network Working Group P. Deutsch +Request for Comments: 1951 Aladdin Enterprises +Category: Informational May 1996 + + + DEFLATE Compressed Data Format Specification version 1.3 + +Status of This Memo + + This memo provides information for the Internet community. This memo + does not specify an Internet standard of any kind. Distribution of + this memo is unlimited. + +IESG Note: + + The IESG takes no position on the validity of any Intellectual + Property Rights statements contained in this document. + +Notices + + Copyright (c) 1996 L. Peter Deutsch + + Permission is granted to copy and distribute this document for any + purpose and without charge, including translations into other + languages and incorporation into compilations, provided that the + copyright notice and this notice are preserved, and that any + substantive changes or deletions from the original are clearly + marked. + + A pointer to the latest version of this and related documentation in + HTML format can be found at the URL + . + +Abstract + + This specification defines a lossless compressed data format that + compresses data using a combination of the LZ77 algorithm and Huffman + coding, with efficiency comparable to the best currently available + general-purpose compression methods. The data can be produced or + consumed, even for an arbitrarily long sequentially presented input + data stream, using only an a priori bounded amount of intermediate + storage. The format can be implemented readily in a manner not + covered by patents. + + + + + + + + +Deutsch Informational [Page 1] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + +Table of Contents + + 1. Introduction ................................................... 2 + 1.1. Purpose ................................................... 2 + 1.2. Intended audience ......................................... 3 + 1.3. Scope ..................................................... 3 + 1.4. Compliance ................................................ 3 + 1.5. Definitions of terms and conventions used ................ 3 + 1.6. Changes from previous versions ............................ 4 + 2. Compressed representation overview ............................. 4 + 3. Detailed specification ......................................... 5 + 3.1. Overall conventions ....................................... 5 + 3.1.1. Packing into bytes .................................. 5 + 3.2. Compressed block format ................................... 6 + 3.2.1. Synopsis of prefix and Huffman coding ............... 6 + 3.2.2. Use of Huffman coding in the "deflate" format ....... 7 + 3.2.3. Details of block format ............................. 9 + 3.2.4. Non-compressed blocks (BTYPE=00) ................... 11 + 3.2.5. Compressed blocks (length and distance codes) ...... 11 + 3.2.6. Compression with fixed Huffman codes (BTYPE=01) .... 12 + 3.2.7. Compression with dynamic Huffman codes (BTYPE=10) .. 13 + 3.3. Compliance ............................................... 14 + 4. Compression algorithm details ................................. 14 + 5. References .................................................... 16 + 6. Security Considerations ....................................... 16 + 7. Source code ................................................... 16 + 8. Acknowledgements .............................................. 16 + 9. Author's Address .............................................. 17 + +1. Introduction + + 1.1. Purpose + + The purpose of this specification is to define a lossless + compressed data format that: + * Is independent of CPU type, operating system, file system, + and character set, and hence can be used for interchange; + * Can be produced or consumed, even for an arbitrarily long + sequentially presented input data stream, using only an a + priori bounded amount of intermediate storage, and hence + can be used in data communications or similar structures + such as Unix filters; + * Compresses data with efficiency comparable to the best + currently available general-purpose compression methods, + and in particular considerably better than the "compress" + program; + * Can be implemented readily in a manner not covered by + patents, and hence can be practiced freely; + + + +Deutsch Informational [Page 2] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + * Is compatible with the file format produced by the current + widely used gzip utility, in that conforming decompressors + will be able to read data produced by the existing gzip + compressor. + + The data format defined by this specification does not attempt to: + + * Allow random access to compressed data; + * Compress specialized data (e.g., raster graphics) as well + as the best currently available specialized algorithms. + + A simple counting argument shows that no lossless compression + algorithm can compress every possible input data set. For the + format defined here, the worst case expansion is 5 bytes per 32K- + byte block, i.e., a size increase of 0.015% for large data sets. + English text usually compresses by a factor of 2.5 to 3; + executable files usually compress somewhat less; graphical data + such as raster images may compress much more. + + 1.2. Intended audience + + This specification is intended for use by implementors of software + to compress data into "deflate" format and/or decompress data from + "deflate" format. + + The text of the specification assumes a basic background in + programming at the level of bits and other primitive data + representations. Familiarity with the technique of Huffman coding + is helpful but not required. + + 1.3. Scope + + The specification specifies a method for representing a sequence + of bytes as a (usually shorter) sequence of bits, and a method for + packing the latter bit sequence into bytes. + + 1.4. Compliance + + Unless otherwise indicated below, a compliant decompressor must be + able to accept and decompress any data set that conforms to all + the specifications presented here; a compliant compressor must + produce data sets that conform to all the specifications presented + here. + + 1.5. Definitions of terms and conventions used + + Byte: 8 bits stored or transmitted as a unit (same as an octet). + For this specification, a byte is exactly 8 bits, even on machines + + + +Deutsch Informational [Page 3] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + which store a character on a number of bits different from eight. + See below, for the numbering of bits within a byte. + + String: a sequence of arbitrary bytes. + + 1.6. Changes from previous versions + + There have been no technical changes to the deflate format since + version 1.1 of this specification. In version 1.2, some + terminology was changed. Version 1.3 is a conversion of the + specification to RFC style. + +2. Compressed representation overview + + A compressed data set consists of a series of blocks, corresponding + to successive blocks of input data. The block sizes are arbitrary, + except that non-compressible blocks are limited to 65,535 bytes. + + Each block is compressed using a combination of the LZ77 algorithm + and Huffman coding. The Huffman trees for each block are independent + of those for previous or subsequent blocks; the LZ77 algorithm may + use a reference to a duplicated string occurring in a previous block, + up to 32K input bytes before. + + Each block consists of two parts: a pair of Huffman code trees that + describe the representation of the compressed data part, and a + compressed data part. (The Huffman trees themselves are compressed + using Huffman encoding.) The compressed data consists of a series of + elements of two types: literal bytes (of strings that have not been + detected as duplicated within the previous 32K input bytes), and + pointers to duplicated strings, where a pointer is represented as a + pair . The representation used in the + "deflate" format limits distances to 32K bytes and lengths to 258 + bytes, but does not limit the size of a block, except for + uncompressible blocks, which are limited as noted above. + + Each type of value (literals, distances, and lengths) in the + compressed data is represented using a Huffman code, using one code + tree for literals and lengths and a separate code tree for distances. + The code trees for each block appear in a compact form just before + the compressed data for that block. + + + + + + + + + + +Deutsch Informational [Page 4] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + +3. Detailed specification + + 3.1. Overall conventions In the diagrams below, a box like this: + + +---+ + | | <-- the vertical bars might be missing + +---+ + + represents one byte; a box like this: + + +==============+ + | | + +==============+ + + represents a variable number of bytes. + + Bytes stored within a computer do not have a "bit order", since + they are always treated as a unit. However, a byte considered as + an integer between 0 and 255 does have a most- and least- + significant bit, and since we write numbers with the most- + significant digit on the left, we also write bytes with the most- + significant bit on the left. In the diagrams below, we number the + bits of a byte so that bit 0 is the least-significant bit, i.e., + the bits are numbered: + + +--------+ + |76543210| + +--------+ + + Within a computer, a number may occupy multiple bytes. All + multi-byte numbers in the format described here are stored with + the least-significant byte first (at the lower memory address). + For example, the decimal number 520 is stored as: + + 0 1 + +--------+--------+ + |00001000|00000010| + +--------+--------+ + ^ ^ + | | + | + more significant byte = 2 x 256 + + less significant byte = 8 + + 3.1.1. Packing into bytes + + This document does not address the issue of the order in which + bits of a byte are transmitted on a bit-sequential medium, + since the final data format described here is byte- rather than + + + +Deutsch Informational [Page 5] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + bit-oriented. However, we describe the compressed block format + in below, as a sequence of data elements of various bit + lengths, not a sequence of bytes. We must therefore specify + how to pack these data elements into bytes to form the final + compressed byte sequence: + + * Data elements are packed into bytes in order of + increasing bit number within the byte, i.e., starting + with the least-significant bit of the byte. + * Data elements other than Huffman codes are packed + starting with the least-significant bit of the data + element. + * Huffman codes are packed starting with the most- + significant bit of the code. + + In other words, if one were to print out the compressed data as + a sequence of bytes, starting with the first byte at the + *right* margin and proceeding to the *left*, with the most- + significant bit of each byte on the left as usual, one would be + able to parse the result from right to left, with fixed-width + elements in the correct MSB-to-LSB order and Huffman codes in + bit-reversed order (i.e., with the first bit of the code in the + relative LSB position). + + 3.2. Compressed block format + + 3.2.1. Synopsis of prefix and Huffman coding + + Prefix coding represents symbols from an a priori known + alphabet by bit sequences (codes), one code for each symbol, in + a manner such that different symbols may be represented by bit + sequences of different lengths, but a parser can always parse + an encoded string unambiguously symbol-by-symbol. + + We define a prefix code in terms of a binary tree in which the + two edges descending from each non-leaf node are labeled 0 and + 1 and in which the leaf nodes correspond one-for-one with (are + labeled with) the symbols of the alphabet; then the code for a + symbol is the sequence of 0's and 1's on the edges leading from + the root to the leaf labeled with that symbol. For example: + + + + + + + + + + + +Deutsch Informational [Page 6] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + /\ Symbol Code + 0 1 ------ ---- + / \ A 00 + /\ B B 1 + 0 1 C 011 + / \ D 010 + A /\ + 0 1 + / \ + D C + + A parser can decode the next symbol from an encoded input + stream by walking down the tree from the root, at each step + choosing the edge corresponding to the next input bit. + + Given an alphabet with known symbol frequencies, the Huffman + algorithm allows the construction of an optimal prefix code + (one which represents strings with those symbol frequencies + using the fewest bits of any possible prefix codes for that + alphabet). Such a code is called a Huffman code. (See + reference [1] in Chapter 5, references for additional + information on Huffman codes.) + + Note that in the "deflate" format, the Huffman codes for the + various alphabets must not exceed certain maximum code lengths. + This constraint complicates the algorithm for computing code + lengths from symbol frequencies. Again, see Chapter 5, + references for details. + + 3.2.2. Use of Huffman coding in the "deflate" format + + The Huffman codes used for each alphabet in the "deflate" + format have two additional rules: + + * All codes of a given bit length have lexicographically + consecutive values, in the same order as the symbols + they represent; + + * Shorter codes lexicographically precede longer codes. + + + + + + + + + + + + +Deutsch Informational [Page 7] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + We could recode the example above to follow this rule as + follows, assuming that the order of the alphabet is ABCD: + + Symbol Code + ------ ---- + A 10 + B 0 + C 110 + D 111 + + I.e., 0 precedes 10 which precedes 11x, and 110 and 111 are + lexicographically consecutive. + + Given this rule, we can define the Huffman code for an alphabet + just by giving the bit lengths of the codes for each symbol of + the alphabet in order; this is sufficient to determine the + actual codes. In our example, the code is completely defined + by the sequence of bit lengths (2, 1, 3, 3). The following + algorithm generates the codes as integers, intended to be read + from most- to least-significant bit. The code lengths are + initially in tree[I].Len; the codes are produced in + tree[I].Code. + + 1) Count the number of codes for each code length. Let + bl_count[N] be the number of codes of length N, N >= 1. + + 2) Find the numerical value of the smallest code for each + code length: + + code = 0; + bl_count[0] = 0; + for (bits = 1; bits <= MAX_BITS; bits++) { + code = (code + bl_count[bits-1]) << 1; + next_code[bits] = code; + } + + 3) Assign numerical values to all codes, using consecutive + values for all codes of the same length with the base + values determined at step 2. Codes that are never used + (which have a bit length of zero) must not be assigned a + value. + + for (n = 0; n <= max_code; n++) { + len = tree[n].Len; + if (len != 0) { + tree[n].Code = next_code[len]; + next_code[len]++; + } + + + +Deutsch Informational [Page 8] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + } + + Example: + + Consider the alphabet ABCDEFGH, with bit lengths (3, 3, 3, 3, + 3, 2, 4, 4). After step 1, we have: + + N bl_count[N] + - ----------- + 2 1 + 3 5 + 4 2 + + Step 2 computes the following next_code values: + + N next_code[N] + - ------------ + 1 0 + 2 0 + 3 2 + 4 14 + + Step 3 produces the following code values: + + Symbol Length Code + ------ ------ ---- + A 3 010 + B 3 011 + C 3 100 + D 3 101 + E 3 110 + F 2 00 + G 4 1110 + H 4 1111 + + 3.2.3. Details of block format + + Each block of compressed data begins with 3 header bits + containing the following data: + + first bit BFINAL + next 2 bits BTYPE + + Note that the header bits do not necessarily begin on a byte + boundary, since a block does not necessarily occupy an integral + number of bytes. + + + + + +Deutsch Informational [Page 9] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + BFINAL is set if and only if this is the last block of the data + set. + + BTYPE specifies how the data are compressed, as follows: + + 00 - no compression + 01 - compressed with fixed Huffman codes + 10 - compressed with dynamic Huffman codes + 11 - reserved (error) + + The only difference between the two compressed cases is how the + Huffman codes for the literal/length and distance alphabets are + defined. + + In all cases, the decoding algorithm for the actual data is as + follows: + + do + read block header from input stream. + if stored with no compression + skip any remaining bits in current partially + processed byte + read LEN and NLEN (see next section) + copy LEN bytes of data to output + otherwise + if compressed with dynamic Huffman codes + read representation of code trees (see + subsection below) + loop (until end of block code recognized) + decode literal/length value from input stream + if value < 256 + copy value (literal byte) to output stream + otherwise + if value = end of block (256) + break from loop + otherwise (value = 257..285) + decode distance from input stream + + move backwards distance bytes in the output + stream, and copy length bytes from this + position to the output stream. + end loop + while not last block + + Note that a duplicated string reference may refer to a string + in a previous block; i.e., the backward distance may cross one + or more block boundaries. However a distance cannot refer past + the beginning of the output stream. (An application using a + + + +Deutsch Informational [Page 10] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + preset dictionary might discard part of the output stream; a + distance can refer to that part of the output stream anyway) + Note also that the referenced string may overlap the current + position; for example, if the last 2 bytes decoded have values + X and Y, a string reference with + adds X,Y,X,Y,X to the output stream. + + We now specify each compression method in turn. + + 3.2.4. Non-compressed blocks (BTYPE=00) + + Any bits of input up to the next byte boundary are ignored. + The rest of the block consists of the following information: + + 0 1 2 3 4... + +---+---+---+---+================================+ + | LEN | NLEN |... LEN bytes of literal data...| + +---+---+---+---+================================+ + + LEN is the number of data bytes in the block. NLEN is the + one's complement of LEN. + + 3.2.5. Compressed blocks (length and distance codes) + + As noted above, encoded data blocks in the "deflate" format + consist of sequences of symbols drawn from three conceptually + distinct alphabets: either literal bytes, from the alphabet of + byte values (0..255), or pairs, + where the length is drawn from (3..258) and the distance is + drawn from (1..32,768). In fact, the literal and length + alphabets are merged into a single alphabet (0..285), where + values 0..255 represent literal bytes, the value 256 indicates + end-of-block, and values 257..285 represent length codes + (possibly in conjunction with extra bits following the symbol + code) as follows: + + + + + + + + + + + + + + + + +Deutsch Informational [Page 11] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + Extra Extra Extra + Code Bits Length(s) Code Bits Lengths Code Bits Length(s) + ---- ---- ------ ---- ---- ------- ---- ---- ------- + 257 0 3 267 1 15,16 277 4 67-82 + 258 0 4 268 1 17,18 278 4 83-98 + 259 0 5 269 2 19-22 279 4 99-114 + 260 0 6 270 2 23-26 280 4 115-130 + 261 0 7 271 2 27-30 281 5 131-162 + 262 0 8 272 2 31-34 282 5 163-194 + 263 0 9 273 3 35-42 283 5 195-226 + 264 0 10 274 3 43-50 284 5 227-257 + 265 1 11,12 275 3 51-58 285 0 258 + 266 1 13,14 276 3 59-66 + + The extra bits should be interpreted as a machine integer + stored with the most-significant bit first, e.g., bits 1110 + represent the value 14. + + Extra Extra Extra + Code Bits Dist Code Bits Dist Code Bits Distance + ---- ---- ---- ---- ---- ------ ---- ---- -------- + 0 0 1 10 4 33-48 20 9 1025-1536 + 1 0 2 11 4 49-64 21 9 1537-2048 + 2 0 3 12 5 65-96 22 10 2049-3072 + 3 0 4 13 5 97-128 23 10 3073-4096 + 4 1 5,6 14 6 129-192 24 11 4097-6144 + 5 1 7,8 15 6 193-256 25 11 6145-8192 + 6 2 9-12 16 7 257-384 26 12 8193-12288 + 7 2 13-16 17 7 385-512 27 12 12289-16384 + 8 3 17-24 18 8 513-768 28 13 16385-24576 + 9 3 25-32 19 8 769-1024 29 13 24577-32768 + + 3.2.6. Compression with fixed Huffman codes (BTYPE=01) + + The Huffman codes for the two alphabets are fixed, and are not + represented explicitly in the data. The Huffman code lengths + for the literal/length alphabet are: + + Lit Value Bits Codes + --------- ---- ----- + 0 - 143 8 00110000 through + 10111111 + 144 - 255 9 110010000 through + 111111111 + 256 - 279 7 0000000 through + 0010111 + 280 - 287 8 11000000 through + 11000111 + + + +Deutsch Informational [Page 12] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + The code lengths are sufficient to generate the actual codes, + as described above; we show the codes in the table for added + clarity. Literal/length values 286-287 will never actually + occur in the compressed data, but participate in the code + construction. + + Distance codes 0-31 are represented by (fixed-length) 5-bit + codes, with possible additional bits as shown in the table + shown in Paragraph 3.2.5, above. Note that distance codes 30- + 31 will never actually occur in the compressed data. + + 3.2.7. Compression with dynamic Huffman codes (BTYPE=10) + + The Huffman codes for the two alphabets appear in the block + immediately after the header bits and before the actual + compressed data, first the literal/length code and then the + distance code. Each code is defined by a sequence of code + lengths, as discussed in Paragraph 3.2.2, above. For even + greater compactness, the code length sequences themselves are + compressed using a Huffman code. The alphabet for code lengths + is as follows: + + 0 - 15: Represent code lengths of 0 - 15 + 16: Copy the previous code length 3 - 6 times. + The next 2 bits indicate repeat length + (0 = 3, ... , 3 = 6) + Example: Codes 8, 16 (+2 bits 11), + 16 (+2 bits 10) will expand to + 12 code lengths of 8 (1 + 6 + 5) + 17: Repeat a code length of 0 for 3 - 10 times. + (3 bits of length) + 18: Repeat a code length of 0 for 11 - 138 times + (7 bits of length) + + A code length of 0 indicates that the corresponding symbol in + the literal/length or distance alphabet will not occur in the + block, and should not participate in the Huffman code + construction algorithm given earlier. If only one distance + code is used, it is encoded using one bit, not zero bits; in + this case there is a single code length of one, with one unused + code. One distance code of zero bits means that there are no + distance codes used at all (the data is all literals). + + We can now define the format of the block: + + 5 Bits: HLIT, # of Literal/Length codes - 257 (257 - 286) + 5 Bits: HDIST, # of Distance codes - 1 (1 - 32) + 4 Bits: HCLEN, # of Code Length codes - 4 (4 - 19) + + + +Deutsch Informational [Page 13] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + (HCLEN + 4) x 3 bits: code lengths for the code length + alphabet given just above, in the order: 16, 17, 18, + 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 + + These code lengths are interpreted as 3-bit integers + (0-7); as above, a code length of 0 means the + corresponding symbol (literal/length or distance code + length) is not used. + + HLIT + 257 code lengths for the literal/length alphabet, + encoded using the code length Huffman code + + HDIST + 1 code lengths for the distance alphabet, + encoded using the code length Huffman code + + The actual compressed data of the block, + encoded using the literal/length and distance Huffman + codes + + The literal/length symbol 256 (end of data), + encoded using the literal/length Huffman code + + The code length repeat codes can cross from HLIT + 257 to the + HDIST + 1 code lengths. In other words, all code lengths form + a single sequence of HLIT + HDIST + 258 values. + + 3.3. Compliance + + A compressor may limit further the ranges of values specified in + the previous section and still be compliant; for example, it may + limit the range of backward pointers to some value smaller than + 32K. Similarly, a compressor may limit the size of blocks so that + a compressible block fits in memory. + + A compliant decompressor must accept the full range of possible + values defined in the previous section, and must accept blocks of + arbitrary size. + +4. Compression algorithm details + + While it is the intent of this document to define the "deflate" + compressed data format without reference to any particular + compression algorithm, the format is related to the compressed + formats produced by LZ77 (Lempel-Ziv 1977, see reference [2] below); + since many variations of LZ77 are patented, it is strongly + recommended that the implementor of a compressor follow the general + algorithm presented here, which is known not to be patented per se. + The material in this section is not part of the definition of the + + + +Deutsch Informational [Page 14] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + + specification per se, and a compressor need not follow it in order to + be compliant. + + The compressor terminates a block when it determines that starting a + new block with fresh trees would be useful, or when the block size + fills up the compressor's block buffer. + + The compressor uses a chained hash table to find duplicated strings, + using a hash function that operates on 3-byte sequences. At any + given point during compression, let XYZ be the next 3 input bytes to + be examined (not necessarily all different, of course). First, the + compressor examines the hash chain for XYZ. If the chain is empty, + the compressor simply writes out X as a literal byte and advances one + byte in the input. If the hash chain is not empty, indicating that + the sequence XYZ (or, if we are unlucky, some other 3 bytes with the + same hash function value) has occurred recently, the compressor + compares all strings on the XYZ hash chain with the actual input data + sequence starting at the current point, and selects the longest + match. + + The compressor searches the hash chains starting with the most recent + strings, to favor small distances and thus take advantage of the + Huffman encoding. The hash chains are singly linked. There are no + deletions from the hash chains; the algorithm simply discards matches + that are too old. To avoid a worst-case situation, very long hash + chains are arbitrarily truncated at a certain length, determined by a + run-time parameter. + + To improve overall compression, the compressor optionally defers the + selection of matches ("lazy matching"): after a match of length N has + been found, the compressor searches for a longer match starting at + the next input byte. If it finds a longer match, it truncates the + previous match to a length of one (thus producing a single literal + byte) and then emits the longer match. Otherwise, it emits the + original match, and, as described above, advances N bytes before + continuing. + + Run-time parameters also control this "lazy match" procedure. If + compression ratio is most important, the compressor attempts a + complete second search regardless of the length of the first match. + In the normal case, if the current match is "long enough", the + compressor reduces the search for a longer match, thus speeding up + the process. If speed is most important, the compressor inserts new + strings in the hash table only when no match was found, or when the + match is not "too long". This degrades the compression ratio but + saves time since there are both fewer insertions and fewer searches. + + + + + +Deutsch Informational [Page 15] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + +5. References + + [1] Huffman, D. A., "A Method for the Construction of Minimum + Redundancy Codes", Proceedings of the Institute of Radio + Engineers, September 1952, Volume 40, Number 9, pp. 1098-1101. + + [2] Ziv J., Lempel A., "A Universal Algorithm for Sequential Data + Compression", IEEE Transactions on Information Theory, Vol. 23, + No. 3, pp. 337-343. + + [3] Gailly, J.-L., and Adler, M., ZLIB documentation and sources, + available in ftp://ftp.uu.net/pub/archiving/zip/doc/ + + [4] Gailly, J.-L., and Adler, M., GZIP documentation and sources, + available as gzip-*.tar in ftp://prep.ai.mit.edu/pub/gnu/ + + [5] Schwartz, E. S., and Kallick, B. "Generating a canonical prefix + encoding." Comm. ACM, 7,3 (Mar. 1964), pp. 166-169. + + [6] Hirschberg and Lelewer, "Efficient decoding of prefix codes," + Comm. ACM, 33,4, April 1990, pp. 449-459. + +6. Security Considerations + + Any data compression method involves the reduction of redundancy in + the data. Consequently, any corruption of the data is likely to have + severe effects and be difficult to correct. Uncompressed text, on + the other hand, will probably still be readable despite the presence + of some corrupted bytes. + + It is recommended that systems using this data format provide some + means of validating the integrity of the compressed data. See + reference [3], for example. + +7. Source code + + Source code for a C language implementation of a "deflate" compliant + compressor and decompressor is available within the zlib package at + ftp://ftp.uu.net/pub/archiving/zip/zlib/. + +8. Acknowledgements + + Trademarks cited in this document are the property of their + respective owners. + + Phil Katz designed the deflate format. Jean-Loup Gailly and Mark + Adler wrote the related software described in this specification. + Glenn Randers-Pehrson converted this document to RFC and HTML format. + + + +Deutsch Informational [Page 16] + +RFC 1951 DEFLATE Compressed Data Format Specification May 1996 + + +9. Author's Address + + L. Peter Deutsch + Aladdin Enterprises + 203 Santa Margarita Ave. + Menlo Park, CA 94025 + + Phone: (415) 322-0103 (AM only) + FAX: (415) 322-1734 + EMail: + + Questions about the technical content of this specification can be + sent by email to: + + Jean-Loup Gailly and + Mark Adler + + Editorial comments on this specification can be sent by email to: + + L. Peter Deutsch and + Glenn Randers-Pehrson + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Deutsch Informational [Page 17] + ADDED freshlib/_doc/RFC/rfc2083.txt Index: freshlib/_doc/RFC/rfc2083.txt ================================================================== --- /dev/null +++ freshlib/_doc/RFC/rfc2083.txt @@ -0,0 +1,5709 @@ +Network Working Group T. Boutell, et. al. +Request for Comments: 2083 Boutell.Com, Inc. +Category: Informational March 1997 + + + PNG (Portable Network Graphics) Specification + Version 1.0 + +Status of this Memo + + This memo provides information for the Internet community. This memo + does not specify an Internet standard of any kind. Distribution of + this memo is unlimited. + +IESG Note: + + The IESG takes no position on the validity of any Intellectual + Property Rights statements contained in this document. + +Abstract + + This document describes PNG (Portable Network Graphics), an + extensible file format for the lossless, portable, well-compressed + storage of raster images. PNG provides a patent-free replacement for + GIF and can also replace many common uses of TIFF. Indexed-color, + grayscale, and truecolor images are supported, plus an optional alpha + channel. Sample depths range from 1 to 16 bits. + + PNG is designed to work well in online viewing applications, such as + the World Wide Web, so it is fully streamable with a progressive + display option. PNG is robust, providing both full file integrity + checking and simple detection of common transmission errors. Also, + PNG can store gamma and chromaticity data for improved color matching + on heterogeneous platforms. + + This specification defines the Internet Media Type image/png. + +Table of Contents + + 1. Introduction .................................................. 4 + 2. Data Representation ........................................... 5 + 2.1. Integers and byte order .................................. 5 + 2.2. Color values ............................................. 6 + 2.3. Image layout ............................................. 6 + 2.4. Alpha channel ............................................ 7 + 2.5. Filtering ................................................ 8 + 2.6. Interlaced data order .................................... 8 + 2.7. Gamma correction ......................................... 10 + + + +Boutell, et. al. Informational [Page 1] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 2.8. Text strings ............................................. 10 + 3. File Structure ................................................ 11 + 3.1. PNG file signature ....................................... 11 + 3.2. Chunk layout ............................................. 11 + 3.3. Chunk naming conventions ................................. 12 + 3.4. CRC algorithm ............................................ 15 + 4. Chunk Specifications .......................................... 15 + 4.1. Critical chunks .......................................... 15 + 4.1.1. IHDR Image header .................................. 15 + 4.1.2. PLTE Palette ....................................... 17 + 4.1.3. IDAT Image data .................................... 18 + 4.1.4. IEND Image trailer ................................. 19 + 4.2. Ancillary chunks ......................................... 19 + 4.2.1. bKGD Background color .............................. 19 + 4.2.2. cHRM Primary chromaticities and white point ........ 20 + 4.2.3. gAMA Image gamma ................................... 21 + 4.2.4. hIST Image histogram ............................... 21 + 4.2.5. pHYs Physical pixel dimensions ..................... 22 + 4.2.6. sBIT Significant bits .............................. 22 + 4.2.7. tEXt Textual data .................................. 24 + 4.2.8. tIME Image last-modification time .................. 25 + 4.2.9. tRNS Transparency .................................. 26 + 4.2.10. zTXt Compressed textual data ...................... 27 + 4.3. Summary of standard chunks ............................... 28 + 4.4. Additional chunk types ................................... 29 + 5. Deflate/Inflate Compression ................................... 29 + 6. Filter Algorithms ............................................. 31 + 6.1. Filter types ............................................. 31 + 6.2. Filter type 0: None ...................................... 32 + 6.3. Filter type 1: Sub ....................................... 33 + 6.4. Filter type 2: Up ........................................ 33 + 6.5. Filter type 3: Average ................................... 34 + 6.6. Filter type 4: Paeth...................................... 35 + 7. Chunk Ordering Rules .......................................... 36 + 7.1. Behavior of PNG editors .................................. 37 + 7.2. Ordering of ancillary chunks ............................. 38 + 7.3. Ordering of critical chunks .............................. 38 + 8. Miscellaneous Topics .......................................... 39 + 8.1. File name extension ...................................... 39 + 8.2. Internet media type ...................................... 39 + 8.3. Macintosh file layout .................................... 39 + 8.4. Multiple-image extension ................................. 39 + 8.5. Security considerations .................................. 40 + 9. Recommendations for Encoders .................................. 41 + 9.1. Sample depth scaling ..................................... 41 + 9.2. Encoder gamma handling ................................... 42 + 9.3. Encoder color handling ................................... 45 + 9.4. Alpha channel creation ................................... 47 + + + +Boutell, et. al. Informational [Page 2] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 9.5. Suggested palettes ....................................... 48 + 9.6. Filter selection ......................................... 49 + 9.7. Text chunk processing .................................... 49 + 9.8. Use of private chunks .................................... 50 + 9.9. Private type and method codes ............................ 51 + 10. Recommendations for Decoders ................................. 51 + 10.1. Error checking .......................................... 52 + 10.2. Pixel dimensions ........................................ 52 + 10.3. Truecolor image handling ................................ 52 + 10.4. Sample depth rescaling .................................. 53 + 10.5. Decoder gamma handling .................................. 54 + 10.6. Decoder color handling .................................. 56 + 10.7. Background color ........................................ 57 + 10.8. Alpha channel processing ................................ 58 + 10.9. Progressive display ..................................... 62 + 10.10. Suggested-palette and histogram usage .................. 63 + 10.11. Text chunk processing .................................. 64 + 11. Glossary ..................................................... 65 + 12. Appendix: Rationale .......................................... 69 + 12.1. Why a new file format? .................................. 69 + 12.2. Why these features? ..................................... 70 + 12.3. Why not these features? ................................. 70 + 12.4. Why not use format X? ................................... 72 + 12.5. Byte order .............................................. 73 + 12.6. Interlacing ............................................. 73 + 12.7. Why gamma? .............................................. 73 + 12.8. Non-premultiplied alpha ................................. 75 + 12.9. Filtering ............................................... 75 + 12.10. Text strings ........................................... 76 + 12.11. PNG file signature ..................................... 77 + 12.12. Chunk layout ........................................... 77 + 12.13. Chunk naming conventions ............................... 78 + 12.14. Palette histograms ..................................... 80 + 13. Appendix: Gamma Tutorial ..................................... 81 + 14. Appendix: Color Tutorial ..................................... 89 + 15. Appendix: Sample CRC Code .................................... 94 + 16. Appendix: Online Resources ................................... 96 + 17. Appendix: Revision History ................................... 96 + 18. References ................................................... 97 + 19. Credits ......................................................100 + + + + + + + + + + + +Boutell, et. al. Informational [Page 3] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +1. Introduction + + The PNG format provides a portable, legally unencumbered, well- + compressed, well-specified standard for lossless bitmapped image + files. + + Although the initial motivation for developing PNG was to replace + GIF, the design provides some useful new features not available in + GIF, with minimal cost to developers. + + GIF features retained in PNG include: + + * Indexed-color images of up to 256 colors. + * Streamability: files can be read and written serially, thus + allowing the file format to be used as a communications + protocol for on-the-fly generation and display of images. + * Progressive display: a suitably prepared image file can be + displayed as it is received over a communications link, + yielding a low-resolution image very quickly followed by + gradual improvement of detail. + * Transparency: portions of the image can be marked as + transparent, creating the effect of a non-rectangular image. + * Ancillary information: textual comments and other data can be + stored within the image file. + * Complete hardware and platform independence. + * Effective, 100% lossless compression. + + Important new features of PNG, not available in GIF, include: + + * Truecolor images of up to 48 bits per pixel. + * Grayscale images of up to 16 bits per pixel. + * Full alpha channel (general transparency masks). + * Image gamma information, which supports automatic display of + images with correct brightness/contrast regardless of the + machines used to originate and display the image. + * Reliable, straightforward detection of file corruption. + * Faster initial presentation in progressive display mode. + + PNG is designed to be: + + * Simple and portable: developers should be able to implement PNG + easily. + * Legally unencumbered: to the best knowledge of the PNG authors, + no algorithms under legal challenge are used. (Some + considerable effort has been spent to verify this.) + * Well compressed: both indexed-color and truecolor images are + compressed as effectively as in any other widely used lossless + format, and in most cases more effectively. + + + +Boutell, et. al. Informational [Page 4] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + * Interchangeable: any standard-conforming PNG decoder must read + all conforming PNG files. + * Flexible: the format allows for future extensions and private + add-ons, without compromising interchangeability of basic PNG. + * Robust: the design supports full file integrity checking as + well as simple, quick detection of common transmission errors. + + The main part of this specification gives the definition of the file + format and recommendations for encoder and decoder behavior. An + appendix gives the rationale for many design decisions. Although the + rationale is not part of the formal specification, reading it can + help implementors understand the design. Cross-references in the + main text point to relevant parts of the rationale. Additional + appendixes, also not part of the formal specification, provide + tutorials on gamma and color theory as well as other supporting + material. + + In this specification, the word "must" indicates a mandatory + requirement, while "should" indicates recommended behavior. + + See Rationale: Why a new file format? (Section 12.1), Why these + features? (Section 12.2), Why not these features? (Section 12.3), Why + not use format X? (Section 12.4). + + Pronunciation + + PNG is pronounced "ping". + +2. Data Representation + + This chapter discusses basic data representations used in PNG files, + as well as the expected representation of the image data. + + 2.1. Integers and byte order + + All integers that require more than one byte must be in network + byte order: the most significant byte comes first, then the less + significant bytes in descending order of significance (MSB LSB for + two-byte integers, B3 B2 B1 B0 for four-byte integers). The + highest bit (value 128) of a byte is numbered bit 7; the lowest + bit (value 1) is numbered bit 0. Values are unsigned unless + otherwise noted. Values explicitly noted as signed are represented + in two's complement notation. + + See Rationale: Byte order (Section 12.5). + + + + + + +Boutell, et. al. Informational [Page 5] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 2.2. Color values + + Colors can be represented by either grayscale or RGB (red, green, + blue) sample data. Grayscale data represents luminance; RGB data + represents calibrated color information (if the cHRM chunk is + present) or uncalibrated device-dependent color (if cHRM is + absent). All color values range from zero (representing black) to + most intense at the maximum value for the sample depth. Note that + the maximum value at a given sample depth is (2^sampledepth)-1, + not 2^sampledepth. + + Sample values are not necessarily linear; the gAMA chunk specifies + the gamma characteristic of the source device, and viewers are + strongly encouraged to compensate properly. See Gamma correction + (Section 2.7). + + Source data with a precision not directly supported in PNG (for + example, 5 bit/sample truecolor) must be scaled up to the next + higher supported bit depth. This scaling is reversible with no + loss of data, and it reduces the number of cases that decoders + have to cope with. See Recommendations for Encoders: Sample depth + scaling (Section 9.1) and Recommendations for Decoders: Sample + depth rescaling (Section 10.4). + + 2.3. Image layout + + Conceptually, a PNG image is a rectangular pixel array, with + pixels appearing left-to-right within each scanline, and scanlines + appearing top-to-bottom. (For progressive display purposes, the + data may actually be transmitted in a different order; see + Interlaced data order, Section 2.6.) The size of each pixel is + determined by the bit depth, which is the number of bits per + sample in the image data. + + Three types of pixel are supported: + + * An indexed-color pixel is represented by a single sample + that is an index into a supplied palette. The image bit + depth determines the maximum number of palette entries, but + not the color precision within the palette. + * A grayscale pixel is represented by a single sample that is + a grayscale level, where zero is black and the largest value + for the bit depth is white. + * A truecolor pixel is represented by three samples: red (zero + = black, max = red) appears first, then green (zero = black, + max = green), then blue (zero = black, max = blue). The bit + depth specifies the size of each sample, not the total pixel + size. + + + +Boutell, et. al. Informational [Page 6] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Optionally, grayscale and truecolor pixels can also include an + alpha sample, as described in the next section. + + Pixels are always packed into scanlines with no wasted bits + between pixels. Pixels smaller than a byte never cross byte + boundaries; they are packed into bytes with the leftmost pixel in + the high-order bits of a byte, the rightmost in the low-order + bits. Permitted bit depths and pixel types are restricted so that + in all cases the packing is simple and efficient. + + PNG permits multi-sample pixels only with 8- and 16-bit samples, + so multiple samples of a single pixel are never packed into one + byte. 16-bit samples are stored in network byte order (MSB + first). + + Scanlines always begin on byte boundaries. When pixels have fewer + than 8 bits and the scanline width is not evenly divisible by the + number of pixels per byte, the low-order bits in the last byte of + each scanline are wasted. The contents of these wasted bits are + unspecified. + + An additional "filter type" byte is added to the beginning of + every scanline (see Filtering, Section 2.5). The filter type byte + is not considered part of the image data, but it is included in + the datastream sent to the compression step. + + 2.4. Alpha channel + + An alpha channel, representing transparency information on a per- + pixel basis, can be included in grayscale and truecolor PNG + images. + + An alpha value of zero represents full transparency, and a value + of (2^bitdepth)-1 represents a fully opaque pixel. Intermediate + values indicate partially transparent pixels that can be combined + with a background image to yield a composite image. (Thus, alpha + is really the degree of opacity of the pixel. But most people + refer to alpha as providing transparency information, not opacity + information, and we continue that custom here.) + + Alpha channels can be included with images that have either 8 or + 16 bits per sample, but not with images that have fewer than 8 + bits per sample. Alpha samples are represented with the same bit + depth used for the image samples. The alpha sample for each pixel + is stored immediately following the grayscale or RGB samples of + the pixel. + + + + + +Boutell, et. al. Informational [Page 7] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The color values stored for a pixel are not affected by the alpha + value assigned to the pixel. This rule is sometimes called + "unassociated" or "non-premultiplied" alpha. (Another common + technique is to store sample values premultiplied by the alpha + fraction; in effect, such an image is already composited against a + black background. PNG does not use premultiplied alpha.) + + Transparency control is also possible without the storage cost of + a full alpha channel. In an indexed-color image, an alpha value + can be defined for each palette entry. In grayscale and truecolor + images, a single pixel value can be identified as being + "transparent". These techniques are controlled by the tRNS + ancillary chunk type. + + If no alpha channel nor tRNS chunk is present, all pixels in the + image are to be treated as fully opaque. + + Viewers can support transparency control partially, or not at all. + + See Rationale: Non-premultiplied alpha (Section 12.8), + Recommendations for Encoders: Alpha channel creation (Section + 9.4), and Recommendations for Decoders: Alpha channel processing + (Section 10.8). + + 2.5. Filtering + + PNG allows the image data to be filtered before it is compressed. + Filtering can improve the compressibility of the data. The filter + step itself does not reduce the size of the data. All PNG filters + are strictly lossless. + + PNG defines several different filter algorithms, including "None" + which indicates no filtering. The filter algorithm is specified + for each scanline by a filter type byte that precedes the filtered + scanline in the precompression datastream. An intelligent encoder + can switch filters from one scanline to the next. The method for + choosing which filter to employ is up to the encoder. + + See Filter Algorithms (Chapter 6) and Rationale: Filtering + (Section 12.9). + + 2.6. Interlaced data order + + A PNG image can be stored in interlaced order to allow progressive + display. The purpose of this feature is to allow images to "fade + in" when they are being displayed on-the-fly. Interlacing + slightly expands the file size on average, but it gives the user a + meaningful display much more rapidly. Note that decoders are + + + +Boutell, et. al. Informational [Page 8] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + required to be able to read interlaced images, whether or not they + actually perform progressive display. + + With interlace method 0, pixels are stored sequentially from left + to right, and scanlines sequentially from top to bottom (no + interlacing). + + Interlace method 1, known as Adam7 after its author, Adam M. + Costello, consists of seven distinct passes over the image. Each + pass transmits a subset of the pixels in the image. The pass in + which each pixel is transmitted is defined by replicating the + following 8-by-8 pattern over the entire image, starting at the + upper left corner: + + 1 6 4 6 2 6 4 6 + 7 7 7 7 7 7 7 7 + 5 6 5 6 5 6 5 6 + 7 7 7 7 7 7 7 7 + 3 6 4 6 3 6 4 6 + 7 7 7 7 7 7 7 7 + 5 6 5 6 5 6 5 6 + 7 7 7 7 7 7 7 7 + + Within each pass, the selected pixels are transmitted left to + right within a scanline, and selected scanlines sequentially from + top to bottom. For example, pass 2 contains pixels 4, 12, 20, + etc. of scanlines 0, 8, 16, etc. (numbering from 0,0 at the upper + left corner). The last pass contains the entirety of scanlines 1, + 3, 5, etc. + + The data within each pass is laid out as though it were a complete + image of the appropriate dimensions. For example, if the complete + image is 16 by 16 pixels, then pass 3 will contain two scanlines, + each containing four pixels. When pixels have fewer than 8 bits, + each such scanline is padded as needed to fill an integral number + of bytes (see Image layout, Section 2.3). Filtering is done on + this reduced image in the usual way, and a filter type byte is + transmitted before each of its scanlines (see Filter Algorithms, + Chapter 6). Notice that the transmission order is defined so that + all the scanlines transmitted in a pass will have the same number + of pixels; this is necessary for proper application of some of the + filters. + + Caution: If the image contains fewer than five columns or fewer + than five rows, some passes will be entirely empty. Encoders and + decoders must handle this case correctly. In particular, filter + type bytes are only associated with nonempty scanlines; no filter + type bytes are present in an empty pass. + + + +Boutell, et. al. Informational [Page 9] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + See Rationale: Interlacing (Section 12.6) and Recommendations for + Decoders: Progressive display (Section 10.9). + + 2.7. Gamma correction + + PNG images can specify, via the gAMA chunk, the gamma + characteristic of the image with respect to the original scene. + Display programs are strongly encouraged to use this information, + plus information about the display device they are using and room + lighting, to present the image to the viewer in a way that + reproduces what the image's original author saw as closely as + possible. See Gamma Tutorial (Chapter 13) if you aren't already + familiar with gamma issues. + + Gamma correction is not applied to the alpha channel, if any. + Alpha samples always represent a linear fraction of full opacity. + + For high-precision applications, the exact chromaticity of the RGB + data in a PNG image can be specified via the cHRM chunk, allowing + more accurate color matching than gamma correction alone will + provide. See Color Tutorial (Chapter 14) if you aren't already + familiar with color representation issues. + + See Rationale: Why gamma? (Section 12.7), Recommendations for + Encoders: Encoder gamma handling (Section 9.2), and + Recommendations for Decoders: Decoder gamma handling (Section + 10.5). + + 2.8. Text strings + + A PNG file can store text associated with the image, such as an + image description or copyright notice. Keywords are used to + indicate what each text string represents. + + ISO 8859-1 (Latin-1) is the character set recommended for use in + text strings [ISO-8859]. This character set is a superset of 7- + bit ASCII. + + Character codes not defined in Latin-1 should not be used, because + they have no platform-independent meaning. If a non-Latin-1 code + does appear in a PNG text string, its interpretation will vary + across platforms and decoders. Some systems might not even be + able to display all the characters in Latin-1, but most modern + systems can. + + Provision is also made for the storage of compressed text. + + See Rationale: Text strings (Section 12.10). + + + +Boutell, et. al. Informational [Page 10] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +3. File Structure + + A PNG file consists of a PNG signature followed by a series of + chunks. This chapter defines the signature and the basic properties + of chunks. Individual chunk types are discussed in the next chapter. + + 3.1. PNG file signature + + The first eight bytes of a PNG file always contain the following + (decimal) values: + + 137 80 78 71 13 10 26 10 + + This signature indicates that the remainder of the file contains a + single PNG image, consisting of a series of chunks beginning with + an IHDR chunk and ending with an IEND chunk. + + See Rationale: PNG file signature (Section 12.11). + + 3.2. Chunk layout + + Each chunk consists of four parts: + + Length + A 4-byte unsigned integer giving the number of bytes in the + chunk's data field. The length counts only the data field, not + itself, the chunk type code, or the CRC. Zero is a valid + length. Although encoders and decoders should treat the length + as unsigned, its value must not exceed (2^31)-1 bytes. + + Chunk Type + A 4-byte chunk type code. For convenience in description and + in examining PNG files, type codes are restricted to consist of + uppercase and lowercase ASCII letters (A-Z and a-z, or 65-90 + and 97-122 decimal). However, encoders and decoders must treat + the codes as fixed binary values, not character strings. For + example, it would not be correct to represent the type code + IDAT by the EBCDIC equivalents of those letters. Additional + naming conventions for chunk types are discussed in the next + section. + + Chunk Data + The data bytes appropriate to the chunk type, if any. This + field can be of zero length. + + + + + + + +Boutell, et. al. Informational [Page 11] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + CRC + A 4-byte CRC (Cyclic Redundancy Check) calculated on the + preceding bytes in the chunk, including the chunk type code and + chunk data fields, but not including the length field. The CRC + is always present, even for chunks containing no data. See CRC + algorithm (Section 3.4). + + The chunk data length can be any number of bytes up to the + maximum; therefore, implementors cannot assume that chunks are + aligned on any boundaries larger than bytes. + + Chunks can appear in any order, subject to the restrictions placed + on each chunk type. (One notable restriction is that IHDR must + appear first and IEND must appear last; thus the IEND chunk serves + as an end-of-file marker.) Multiple chunks of the same type can + appear, but only if specifically permitted for that type. + + See Rationale: Chunk layout (Section 12.12). + + 3.3. Chunk naming conventions + + Chunk type codes are assigned so that a decoder can determine some + properties of a chunk even when it does not recognize the type + code. These rules are intended to allow safe, flexible extension + of the PNG format, by allowing a decoder to decide what to do when + it encounters an unknown chunk. The naming rules are not normally + of interest when the decoder does recognize the chunk's type. + + Four bits of the type code, namely bit 5 (value 32) of each byte, + are used to convey chunk properties. This choice means that a + human can read off the assigned properties according to whether + each letter of the type code is uppercase (bit 5 is 0) or + lowercase (bit 5 is 1). However, decoders should test the + properties of an unknown chunk by numerically testing the + specified bits; testing whether a character is uppercase or + lowercase is inefficient, and even incorrect if a locale-specific + case definition is used. + + It is worth noting that the property bits are an inherent part of + the chunk name, and hence are fixed for any chunk type. Thus, + TEXT and Text would be unrelated chunk type codes, not the same + chunk with different properties. Decoders must recognize type + codes by a simple four-byte literal comparison; it is incorrect to + perform case conversion on type codes. + + + + + + + +Boutell, et. al. Informational [Page 12] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The semantics of the property bits are: + + Ancillary bit: bit 5 of first byte + 0 (uppercase) = critical, 1 (lowercase) = ancillary. + + Chunks that are not strictly necessary in order to meaningfully + display the contents of the file are known as "ancillary" + chunks. A decoder encountering an unknown chunk in which the + ancillary bit is 1 can safely ignore the chunk and proceed to + display the image. The time chunk (tIME) is an example of an + ancillary chunk. + + Chunks that are necessary for successful display of the file's + contents are called "critical" chunks. A decoder encountering + an unknown chunk in which the ancillary bit is 0 must indicate + to the user that the image contains information it cannot + safely interpret. The image header chunk (IHDR) is an example + of a critical chunk. + + Private bit: bit 5 of second byte + 0 (uppercase) = public, 1 (lowercase) = private. + + A public chunk is one that is part of the PNG specification or + is registered in the list of PNG special-purpose public chunk + types. Applications can also define private (unregistered) + chunks for their own purposes. The names of private chunks + must have a lowercase second letter, while public chunks will + always be assigned names with uppercase second letters. Note + that decoders do not need to test the private-chunk property + bit, since it has no functional significance; it is simply an + administrative convenience to ensure that public and private + chunk names will not conflict. See Additional chunk types + (Section 4.4) and Recommendations for Encoders: Use of private + chunks (Section 9.8). + + Reserved bit: bit 5 of third byte + Must be 0 (uppercase) in files conforming to this version of + PNG. + + The significance of the case of the third letter of the chunk + name is reserved for possible future expansion. At the present + time all chunk names must have uppercase third letters. + (Decoders should not complain about a lowercase third letter, + however, as some future version of the PNG specification could + define a meaning for this bit. It is sufficient to treat a + chunk with a lowercase third letter in the same way as any + other unknown chunk type.) + + + + +Boutell, et. al. Informational [Page 13] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Safe-to-copy bit: bit 5 of fourth byte + 0 (uppercase) = unsafe to copy, 1 (lowercase) = safe to copy. + + This property bit is not of interest to pure decoders, but it + is needed by PNG editors (programs that modify PNG files). + This bit defines the proper handling of unrecognized chunks in + a file that is being modified. + + If a chunk's safe-to-copy bit is 1, the chunk may be copied to + a modified PNG file whether or not the software recognizes the + chunk type, and regardless of the extent of the file + modifications. + + If a chunk's safe-to-copy bit is 0, it indicates that the chunk + depends on the image data. If the program has made any changes + to critical chunks, including addition, modification, deletion, + or reordering of critical chunks, then unrecognized unsafe + chunks must not be copied to the output PNG file. (Of course, + if the program does recognize the chunk, it can choose to + output an appropriately modified version.) + + A PNG editor is always allowed to copy all unrecognized chunks + if it has only added, deleted, modified, or reordered ancillary + chunks. This implies that it is not permissible for ancillary + chunks to depend on other ancillary chunks. + + PNG editors that do not recognize a critical chunk must report + an error and refuse to process that PNG file at all. The + safe/unsafe mechanism is intended for use with ancillary + chunks. The safe-to-copy bit will always be 0 for critical + chunks. + + Rules for PNG editors are discussed further in Chunk Ordering + Rules (Chapter 7). + + For example, the hypothetical chunk type name "bLOb" has the + property bits: + + bLOb <-- 32 bit chunk type code represented in text form + |||| + |||+- Safe-to-copy bit is 1 (lower case letter; bit 5 is 1) + ||+-- Reserved bit is 0 (upper case letter; bit 5 is 0) + |+--- Private bit is 0 (upper case letter; bit 5 is 0) + +---- Ancillary bit is 1 (lower case letter; bit 5 is 1) + + Therefore, this name represents an ancillary, public, safe-to-copy + chunk. + + + + +Boutell, et. al. Informational [Page 14] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + See Rationale: Chunk naming conventions (Section 12.13). + + 3.4. CRC algorithm + + Chunk CRCs are calculated using standard CRC methods with pre and + post conditioning, as defined by ISO 3309 [ISO-3309] or ITU-T V.42 + [ITU-V42]. The CRC polynomial employed is + + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 + + The 32-bit CRC register is initialized to all 1's, and then the + data from each byte is processed from the least significant bit + (1) to the most significant bit (128). After all the data bytes + are processed, the CRC register is inverted (its ones complement + is taken). This value is transmitted (stored in the file) MSB + first. For the purpose of separating into bytes and ordering, the + least significant bit of the 32-bit CRC is defined to be the + coefficient of the x^31 term. + + Practical calculation of the CRC always employs a precalculated + table to greatly accelerate the computation. See Sample CRC Code + (Chapter 15). + +4. Chunk Specifications + + This chapter defines the standard types of PNG chunks. + + 4.1. Critical chunks + + All implementations must understand and successfully render the + standard critical chunks. A valid PNG image must contain an IHDR + chunk, one or more IDAT chunks, and an IEND chunk. + + 4.1.1. IHDR Image header + + The IHDR chunk must appear FIRST. It contains: + + Width: 4 bytes + Height: 4 bytes + Bit depth: 1 byte + Color type: 1 byte + Compression method: 1 byte + Filter method: 1 byte + Interlace method: 1 byte + + + + + + + +Boutell, et. al. Informational [Page 15] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Width and height give the image dimensions in pixels. They are + 4-byte integers. Zero is an invalid value. The maximum for each + is (2^31)-1 in order to accommodate languages that have + difficulty with unsigned 4-byte values. + + Bit depth is a single-byte integer giving the number of bits + per sample or per palette index (not per pixel). Valid values + are 1, 2, 4, 8, and 16, although not all values are allowed for + all color types. + + Color type is a single-byte integer that describes the + interpretation of the image data. Color type codes represent + sums of the following values: 1 (palette used), 2 (color used), + and 4 (alpha channel used). Valid values are 0, 2, 3, 4, and 6. + + Bit depth restrictions for each color type are imposed to + simplify implementations and to prohibit combinations that do + not compress well. Decoders must support all legal + combinations of bit depth and color type. The allowed + combinations are: + + Color Allowed Interpretation + Type Bit Depths + + 0 1,2,4,8,16 Each pixel is a grayscale sample. + + 2 8,16 Each pixel is an R,G,B triple. + + 3 1,2,4,8 Each pixel is a palette index; + a PLTE chunk must appear. + + 4 8,16 Each pixel is a grayscale sample, + followed by an alpha sample. + + 6 8,16 Each pixel is an R,G,B triple, + followed by an alpha sample. + + The sample depth is the same as the bit depth except in the + case of color type 3, in which the sample depth is always 8 + bits. + + Compression method is a single-byte integer that indicates the + method used to compress the image data. At present, only + compression method 0 (deflate/inflate compression with a 32K + sliding window) is defined. All standard PNG images must be + compressed with this scheme. The compression method field is + provided for possible future expansion or proprietary variants. + Decoders must check this byte and report an error if it holds + + + +Boutell, et. al. Informational [Page 16] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + an unrecognized code. See Deflate/Inflate Compression (Chapter + 5) for details. + + Filter method is a single-byte integer that indicates the + preprocessing method applied to the image data before + compression. At present, only filter method 0 (adaptive + filtering with five basic filter types) is defined. As with + the compression method field, decoders must check this byte and + report an error if it holds an unrecognized code. See Filter + Algorithms (Chapter 6) for details. + + Interlace method is a single-byte integer that indicates the + transmission order of the image data. Two values are currently + defined: 0 (no interlace) or 1 (Adam7 interlace). See + Interlaced data order (Section 2.6) for details. + + 4.1.2. PLTE Palette + + The PLTE chunk contains from 1 to 256 palette entries, each a + three-byte series of the form: + + Red: 1 byte (0 = black, 255 = red) + Green: 1 byte (0 = black, 255 = green) + Blue: 1 byte (0 = black, 255 = blue) + + The number of entries is determined from the chunk length. A + chunk length not divisible by 3 is an error. + + This chunk must appear for color type 3, and can appear for + color types 2 and 6; it must not appear for color types 0 and + 4. If this chunk does appear, it must precede the first IDAT + chunk. There must not be more than one PLTE chunk. + + For color type 3 (indexed color), the PLTE chunk is required. + The first entry in PLTE is referenced by pixel value 0, the + second by pixel value 1, etc. The number of palette entries + must not exceed the range that can be represented in the image + bit depth (for example, 2^4 = 16 for a bit depth of 4). It is + permissible to have fewer entries than the bit depth would + allow. In that case, any out-of-range pixel value found in the + image data is an error. + + For color types 2 and 6 (truecolor and truecolor with alpha), + the PLTE chunk is optional. If present, it provides a + suggested set of from 1 to 256 colors to which the truecolor + image can be quantized if the viewer cannot display truecolor + directly. If PLTE is not present, such a viewer will need to + select colors on its own, but it is often preferable for this + + + +Boutell, et. al. Informational [Page 17] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + to be done once by the encoder. (See Recommendations for + Encoders: Suggested palettes, Section 9.5.) + + Note that the palette uses 8 bits (1 byte) per sample + regardless of the image bit depth specification. In + particular, the palette is 8 bits deep even when it is a + suggested quantization of a 16-bit truecolor image. + + There is no requirement that the palette entries all be used by + the image, nor that they all be different. + + 4.1.3. IDAT Image data + + The IDAT chunk contains the actual image data. To create this + data: + + * Begin with image scanlines represented as described in + Image layout (Section 2.3); the layout and total size of + this raw data are determined by the fields of IHDR. + * Filter the image data according to the filtering method + specified by the IHDR chunk. (Note that with filter + method 0, the only one currently defined, this implies + prepending a filter type byte to each scanline.) + * Compress the filtered data using the compression method + specified by the IHDR chunk. + + The IDAT chunk contains the output datastream of the + compression algorithm. + + To read the image data, reverse this process. + + There can be multiple IDAT chunks; if so, they must appear + consecutively with no other intervening chunks. The compressed + datastream is then the concatenation of the contents of all the + IDAT chunks. The encoder can divide the compressed datastream + into IDAT chunks however it wishes. (Multiple IDAT chunks are + allowed so that encoders can work in a fixed amount of memory; + typically the chunk size will correspond to the encoder's + buffer size.) It is important to emphasize that IDAT chunk + boundaries have no semantic significance and can occur at any + point in the compressed datastream. A PNG file in which each + IDAT chunk contains only one data byte is legal, though + remarkably wasteful of space. (For that matter, zero-length + IDAT chunks are legal, though even more wasteful.) + + See Filter Algorithms (Chapter 6) and Deflate/Inflate + Compression (Chapter 5) for details. + + + + +Boutell, et. al. Informational [Page 18] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 4.1.4. IEND Image trailer + + The IEND chunk must appear LAST. It marks the end of the PNG + datastream. The chunk's data field is empty. + + 4.2. Ancillary chunks + + All ancillary chunks are optional, in the sense that encoders need + not write them and decoders can ignore them. However, encoders + are encouraged to write the standard ancillary chunks when the + information is available, and decoders are encouraged to interpret + these chunks when appropriate and feasible. + + The standard ancillary chunks are listed in alphabetical order. + This is not necessarily the order in which they would appear in a + file. + + 4.2.1. bKGD Background color + + The bKGD chunk specifies a default background color to present + the image against. Note that viewers are not bound to honor + this chunk; a viewer can choose to use a different background. + + For color type 3 (indexed color), the bKGD chunk contains: + + Palette index: 1 byte + + The value is the palette index of the color to be used as + background. + + For color types 0 and 4 (grayscale, with or without alpha), + bKGD contains: + + Gray: 2 bytes, range 0 .. (2^bitdepth)-1 + + (For consistency, 2 bytes are used regardless of the image bit + depth.) The value is the gray level to be used as background. + + For color types 2 and 6 (truecolor, with or without alpha), + bKGD contains: + + Red: 2 bytes, range 0 .. (2^bitdepth)-1 + Green: 2 bytes, range 0 .. (2^bitdepth)-1 + Blue: 2 bytes, range 0 .. (2^bitdepth)-1 + + (For consistency, 2 bytes per sample are used regardless of the + image bit depth.) This is the RGB color to be used as + background. + + + +Boutell, et. al. Informational [Page 19] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + When present, the bKGD chunk must precede the first IDAT chunk, + and must follow the PLTE chunk, if any. + + See Recommendations for Decoders: Background color (Section + 10.7). + + 4.2.2. cHRM Primary chromaticities and white point + + Applications that need device-independent specification of + colors in a PNG file can use the cHRM chunk to specify the 1931 + CIE x,y chromaticities of the red, green, and blue primaries + used in the image, and the referenced white point. See Color + Tutorial (Chapter 14) for more information. + + The cHRM chunk contains: + + White Point x: 4 bytes + White Point y: 4 bytes + Red x: 4 bytes + Red y: 4 bytes + Green x: 4 bytes + Green y: 4 bytes + Blue x: 4 bytes + Blue y: 4 bytes + + Each value is encoded as a 4-byte unsigned integer, + representing the x or y value times 100000. For example, a + value of 0.3127 would be stored as the integer 31270. + + cHRM is allowed in all PNG files, although it is of little + value for grayscale images. + + If the encoder does not know the chromaticity values, it should + not write a cHRM chunk; the absence of a cHRM chunk indicates + that the image's primary colors are device-dependent. + + If the cHRM chunk appears, it must precede the first IDAT + chunk, and it must also precede the PLTE chunk if present. + + See Recommendations for Encoders: Encoder color handling + (Section 9.3), and Recommendations for Decoders: Decoder color + handling (Section 10.6). + + + + + + + + + +Boutell, et. al. Informational [Page 20] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 4.2.3. gAMA Image gamma + + The gAMA chunk specifies the gamma of the camera (or simulated + camera) that produced the image, and thus the gamma of the + image with respect to the original scene. More precisely, the + gAMA chunk encodes the file_gamma value, as defined in Gamma + Tutorial (Chapter 13). + + The gAMA chunk contains: + + Image gamma: 4 bytes + + The value is encoded as a 4-byte unsigned integer, representing + gamma times 100000. For example, a gamma of 0.45 would be + stored as the integer 45000. + + If the encoder does not know the image's gamma value, it should + not write a gAMA chunk; the absence of a gAMA chunk indicates + that the gamma is unknown. + + If the gAMA chunk appears, it must precede the first IDAT + chunk, and it must also precede the PLTE chunk if present. + + See Gamma correction (Section 2.7), Recommendations for + Encoders: Encoder gamma handling (Section 9.2), and + Recommendations for Decoders: Decoder gamma handling (Section + 10.5). + + 4.2.4. hIST Image histogram + + The hIST chunk gives the approximate usage frequency of each + color in the color palette. A histogram chunk can appear only + when a palette chunk appears. If a viewer is unable to provide + all the colors listed in the palette, the histogram may help it + decide how to choose a subset of the colors for display. + + The hIST chunk contains a series of 2-byte (16 bit) unsigned + integers. There must be exactly one entry for each entry in + the PLTE chunk. Each entry is proportional to the fraction of + pixels in the image that have that palette index; the exact + scale factor is chosen by the encoder. + + Histogram entries are approximate, with the exception that a + zero entry specifies that the corresponding palette entry is + not used at all in the image. It is required that a histogram + entry be nonzero if there are any pixels of that color. + + + + + +Boutell, et. al. Informational [Page 21] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + When the palette is a suggested quantization of a truecolor + image, the histogram is necessarily approximate, since a + decoder may map pixels to palette entries differently than the + encoder did. In this situation, zero entries should not + appear. + + The hIST chunk, if it appears, must follow the PLTE chunk, and + must precede the first IDAT chunk. + + See Rationale: Palette histograms (Section 12.14), and + Recommendations for Decoders: Suggested-palette and histogram + usage (Section 10.10). + + 4.2.5. pHYs Physical pixel dimensions + + The pHYs chunk specifies the intended pixel size or aspect + ratio for display of the image. It contains: + + Pixels per unit, X axis: 4 bytes (unsigned integer) + Pixels per unit, Y axis: 4 bytes (unsigned integer) + Unit specifier: 1 byte + + The following values are legal for the unit specifier: + + 0: unit is unknown + 1: unit is the meter + + When the unit specifier is 0, the pHYs chunk defines pixel + aspect ratio only; the actual size of the pixels remains + unspecified. + + Conversion note: one inch is equal to exactly 0.0254 meters. + + If this ancillary chunk is not present, pixels are assumed to + be square, and the physical size of each pixel is unknown. + + If present, this chunk must precede the first IDAT chunk. + + See Recommendations for Decoders: Pixel dimensions (Section + 10.2). + + 4.2.6. sBIT Significant bits + + To simplify decoders, PNG specifies that only certain sample + depths can be used, and further specifies that sample values + should be scaled to the full range of possible values at the + sample depth. However, the sBIT chunk is provided in order to + store the original number of significant bits. This allows + + + +Boutell, et. al. Informational [Page 22] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + decoders to recover the original data losslessly even if the + data had a sample depth not directly supported by PNG. We + recommend that an encoder emit an sBIT chunk if it has + converted the data from a lower sample depth. + + For color type 0 (grayscale), the sBIT chunk contains a single + byte, indicating the number of bits that were significant in + the source data. + + For color type 2 (truecolor), the sBIT chunk contains three + bytes, indicating the number of bits that were significant in + the source data for the red, green, and blue channels, + respectively. + + For color type 3 (indexed color), the sBIT chunk contains three + bytes, indicating the number of bits that were significant in + the source data for the red, green, and blue components of the + palette entries, respectively. + + For color type 4 (grayscale with alpha channel), the sBIT chunk + contains two bytes, indicating the number of bits that were + significant in the source grayscale data and the source alpha + data, respectively. + + For color type 6 (truecolor with alpha channel), the sBIT chunk + contains four bytes, indicating the number of bits that were + significant in the source data for the red, green, blue and + alpha channels, respectively. + + Each depth specified in sBIT must be greater than zero and less + than or equal to the sample depth (which is 8 for indexed-color + images, and the bit depth given in IHDR for other color types). + + A decoder need not pay attention to sBIT: the stored image is a + valid PNG file of the sample depth indicated by IHDR. However, + if the decoder wishes to recover the original data at its + original precision, this can be done by right-shifting the + stored samples (the stored palette entries, for an indexed- + color image). The encoder must scale the data in such a way + that the high-order bits match the original data. + + If the sBIT chunk appears, it must precede the first IDAT + chunk, and it must also precede the PLTE chunk if present. + + See Recommendations for Encoders: Sample depth scaling (Section + 9.1) and Recommendations for Decoders: Sample depth rescaling + (Section 10.4). + + + + +Boutell, et. al. Informational [Page 23] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 4.2.7. tEXt Textual data + + Textual information that the encoder wishes to record with the + image can be stored in tEXt chunks. Each tEXt chunk contains a + keyword and a text string, in the format: + + Keyword: 1-79 bytes (character string) + Null separator: 1 byte + Text: n bytes (character string) + + The keyword and text string are separated by a zero byte (null + character). Neither the keyword nor the text string can + contain a null character. Note that the text string is not + null-terminated (the length of the chunk is sufficient + information to locate the ending). The keyword must be at + least one character and less than 80 characters long. The text + string can be of any length from zero bytes up to the maximum + permissible chunk size less the length of the keyword and + separator. + + Any number of tEXt chunks can appear, and more than one with + the same keyword is permissible. + + The keyword indicates the type of information represented by + the text string. The following keywords are predefined and + should be used where appropriate: + + Title Short (one line) title or caption for image + Author Name of image's creator + Description Description of image (possibly long) + Copyright Copyright notice + Creation Time Time of original image creation + Software Software used to create the image + Disclaimer Legal disclaimer + Warning Warning of nature of content + Source Device used to create the image + Comment Miscellaneous comment; conversion from + GIF comment + + For the Creation Time keyword, the date format defined in + section 5.2.14 of RFC 1123 is suggested, but not required + [RFC-1123]. Decoders should allow for free-format text + associated with this or any other keyword. + + Other keywords may be invented for other purposes. Keywords of + general interest can be registered with the maintainers of the + PNG specification. However, it is also permitted to use + private unregistered keywords. (Private keywords should be + + + +Boutell, et. al. Informational [Page 24] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + reasonably self-explanatory, in order to minimize the chance + that the same keyword will be used for incompatible purposes by + different people.) + + Both keyword and text are interpreted according to the ISO + 8859-1 (Latin-1) character set [ISO-8859]. The text string can + contain any Latin-1 character. Newlines in the text string + should be represented by a single linefeed character (decimal + 10); use of other control characters in the text is + discouraged. + + Keywords must contain only printable Latin-1 characters and + spaces; that is, only character codes 32-126 and 161-255 + decimal are allowed. To reduce the chances for human + misreading of a keyword, leading and trailing spaces are + forbidden, as are consecutive spaces. Note also that the non- + breaking space (code 160) is not permitted in keywords, since + it is visually indistinguishable from an ordinary space. + + Keywords must be spelled exactly as registered, so that + decoders can use simple literal comparisons when looking for + particular keywords. In particular, keywords are considered + case-sensitive. + + See Recommendations for Encoders: Text chunk processing + (Section 9.7) and Recommendations for Decoders: Text chunk + processing (Section 10.11). + + 4.2.8. tIME Image last-modification time + + The tIME chunk gives the time of the last image modification + (not the time of initial image creation). It contains: + + Year: 2 bytes (complete; for example, 1995, not 95) + Month: 1 byte (1-12) + Day: 1 byte (1-31) + Hour: 1 byte (0-23) + Minute: 1 byte (0-59) + Second: 1 byte (0-60) (yes, 60, for leap seconds; not 61, + a common error) + + Universal Time (UTC, also called GMT) should be specified + rather than local time. + + + + + + + + +Boutell, et. al. Informational [Page 25] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The tIME chunk is intended for use as an automatically-applied + time stamp that is updated whenever the image data is changed. + It is recommended that tIME not be changed by PNG editors that + do not change the image data. See also the Creation Time tEXt + keyword, which can be used for a user-supplied time. + + 4.2.9. tRNS Transparency + + The tRNS chunk specifies that the image uses simple + transparency: either alpha values associated with palette + entries (for indexed-color images) or a single transparent + color (for grayscale and truecolor images). Although simple + transparency is not as elegant as the full alpha channel, it + requires less storage space and is sufficient for many common + cases. + + For color type 3 (indexed color), the tRNS chunk contains a + series of one-byte alpha values, corresponding to entries in + the PLTE chunk: + + Alpha for palette index 0: 1 byte + Alpha for palette index 1: 1 byte + ... etc ... + + Each entry indicates that pixels of the corresponding palette + index must be treated as having the specified alpha value. + Alpha values have the same interpretation as in an 8-bit full + alpha channel: 0 is fully transparent, 255 is fully opaque, + regardless of image bit depth. The tRNS chunk must not contain + more alpha values than there are palette entries, but tRNS can + contain fewer values than there are palette entries. In this + case, the alpha value for all remaining palette entries is + assumed to be 255. In the common case in which only palette + index 0 need be made transparent, only a one-byte tRNS chunk is + needed. + + For color type 0 (grayscale), the tRNS chunk contains a single + gray level value, stored in the format: + + Gray: 2 bytes, range 0 .. (2^bitdepth)-1 + + (For consistency, 2 bytes are used regardless of the image bit + depth.) Pixels of the specified gray level are to be treated as + transparent (equivalent to alpha value 0); all other pixels are + to be treated as fully opaque (alpha value (2^bitdepth)-1). + + + + + + +Boutell, et. al. Informational [Page 26] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + For color type 2 (truecolor), the tRNS chunk contains a single + RGB color value, stored in the format: + + Red: 2 bytes, range 0 .. (2^bitdepth)-1 + Green: 2 bytes, range 0 .. (2^bitdepth)-1 + Blue: 2 bytes, range 0 .. (2^bitdepth)-1 + + (For consistency, 2 bytes per sample are used regardless of the + image bit depth.) Pixels of the specified color value are to be + treated as transparent (equivalent to alpha value 0); all other + pixels are to be treated as fully opaque (alpha value + (2^bitdepth)-1). + + tRNS is prohibited for color types 4 and 6, since a full alpha + channel is already present in those cases. + + Note: when dealing with 16-bit grayscale or truecolor data, it + is important to compare both bytes of the sample values to + determine whether a pixel is transparent. Although decoders + may drop the low-order byte of the samples for display, this + must not occur until after the data has been tested for + transparency. For example, if the grayscale level 0x0001 is + specified to be transparent, it would be incorrect to compare + only the high-order byte and decide that 0x0002 is also + transparent. + + When present, the tRNS chunk must precede the first IDAT chunk, + and must follow the PLTE chunk, if any. + + 4.2.10. zTXt Compressed textual data + + The zTXt chunk contains textual data, just as tEXt does; + however, zTXt takes advantage of compression. zTXt and tEXt + chunks are semantically equivalent, but zTXt is recommended for + storing large blocks of text. + + A zTXt chunk contains: + + Keyword: 1-79 bytes (character string) + Null separator: 1 byte + Compression method: 1 byte + Compressed text: n bytes + + The keyword and null separator are exactly the same as in the + tEXt chunk. Note that the keyword is not compressed. The + compression method byte identifies the compression method used + in this zTXt chunk. The only value presently defined for it is + 0 (deflate/inflate compression). The compression method byte is + + + +Boutell, et. al. Informational [Page 27] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + followed by a compressed datastream that makes up the remainder + of the chunk. For compression method 0, this datastream + adheres to the zlib datastream format (see Deflate/Inflate + Compression, Chapter 5). Decompression of this datastream + yields Latin-1 text that is identical to the text that would be + stored in an equivalent tEXt chunk. + + Any number of zTXt and tEXt chunks can appear in the same file. + See the preceding definition of the tEXt chunk for the + predefined keywords and the recommended format of the text. + + See Recommendations for Encoders: Text chunk processing + (Section 9.7), and Recommendations for Decoders: Text chunk + processing (Section 10.11). + + 4.3. Summary of standard chunks + + This table summarizes some properties of the standard chunk types. + + Critical chunks (must appear in this order, except PLTE + is optional): + + Name Multiple Ordering constraints + OK? + + IHDR No Must be first + PLTE No Before IDAT + IDAT Yes Multiple IDATs must be consecutive + IEND No Must be last + + Ancillary chunks (need not appear in this order): + + Name Multiple Ordering constraints + OK? + + cHRM No Before PLTE and IDAT + gAMA No Before PLTE and IDAT + sBIT No Before PLTE and IDAT + bKGD No After PLTE; before IDAT + hIST No After PLTE; before IDAT + tRNS No After PLTE; before IDAT + pHYs No Before IDAT + tIME No None + tEXt Yes None + zTXt Yes None + + + + + + +Boutell, et. al. Informational [Page 28] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Standard keywords for tEXt and zTXt chunks: + + Title Short (one line) title or caption for image + Author Name of image's creator + Description Description of image (possibly long) + Copyright Copyright notice + Creation Time Time of original image creation + Software Software used to create the image + Disclaimer Legal disclaimer + Warning Warning of nature of content + Source Device used to create the image + Comment Miscellaneous comment; conversion from + GIF comment + + 4.4. Additional chunk types + + Additional public PNG chunk types are defined in the document "PNG + Special-Purpose Public Chunks" [PNG-EXTENSIONS]. Chunks described + there are expected to be less widely supported than those defined + in this specification. However, application authors are + encouraged to use those chunk types whenever appropriate for their + applications. Additional chunk types can be proposed for + inclusion in that list by contacting the PNG specification + maintainers at png-info@uunet.uu.net or at png-group@w3.org. + + New public chunks will only be registered if they are of use to + others and do not violate the design philosophy of PNG. Chunk + registration is not automatic, although it is the intent of the + authors that it be straightforward when a new chunk of potentially + wide application is needed. Note that the creation of new + critical chunk types is discouraged unless absolutely necessary. + + Applications can also use private chunk types to carry data that + is not of interest to other applications. See Recommendations for + Encoders: Use of private chunks (Section 9.8). + + Decoders must be prepared to encounter unrecognized public or + private chunk type codes. Unrecognized chunk types must be + handled as described in Chunk naming conventions (Section 3.3). + +5. Deflate/Inflate Compression + + PNG compression method 0 (the only compression method presently + defined for PNG) specifies deflate/inflate compression with a 32K + sliding window. Deflate compression is an LZ77 derivative used in + zip, gzip, pkzip and related programs. Extensive research has been + done supporting its patent-free status. Portable C implementations + are freely available. + + + +Boutell, et. al. Informational [Page 29] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Deflate-compressed datastreams within PNG are stored in the "zlib" + format, which has the structure: + + Compression method/flags code: 1 byte + Additional flags/check bits: 1 byte + Compressed data blocks: n bytes + Check value: 4 bytes + + Further details on this format are given in the zlib specification + [RFC-1950]. + + For PNG compression method 0, the zlib compression method/flags code + must specify method code 8 ("deflate" compression) and an LZ77 window + size of not more than 32K. Note that the zlib compression method + number is not the same as the PNG compression method number. The + additional flags must not specify a preset dictionary. + + The compressed data within the zlib datastream is stored as a series + of blocks, each of which can represent raw (uncompressed) data, + LZ77-compressed data encoded with fixed Huffman codes, or LZ77- + compressed data encoded with custom Huffman codes. A marker bit in + the final block identifies it as the last block, allowing the decoder + to recognize the end of the compressed datastream. Further details + on the compression algorithm and the encoding are given in the + deflate specification [RFC-1951]. + + The check value stored at the end of the zlib datastream is + calculated on the uncompressed data represented by the datastream. + Note that the algorithm used is not the same as the CRC calculation + used for PNG chunk check values. The zlib check value is useful + mainly as a cross-check that the deflate and inflate algorithms are + implemented correctly. Verifying the chunk CRCs provides adequate + confidence that the PNG file has been transmitted undamaged. + + In a PNG file, the concatenation of the contents of all the IDAT + chunks makes up a zlib datastream as specified above. This + datastream decompresses to filtered image data as described elsewhere + in this document. + + It is important to emphasize that the boundaries between IDAT chunks + are arbitrary and can fall anywhere in the zlib datastream. There is + not necessarily any correlation between IDAT chunk boundaries and + deflate block boundaries or any other feature of the zlib data. For + example, it is entirely possible for the terminating zlib check value + to be split across IDAT chunks. + + + + + + +Boutell, et. al. Informational [Page 30] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + In the same vein, there is no required correlation between the + structure of the image data (i.e., scanline boundaries) and deflate + block boundaries or IDAT chunk boundaries. The complete image data + is represented by a single zlib datastream that is stored in some + number of IDAT chunks; a decoder that assumes any more than this is + incorrect. (Of course, some encoder implementations may emit files + in which some of these structures are indeed related. But decoders + cannot rely on this.) + + PNG also uses zlib datastreams in zTXt chunks. In a zTXt chunk, the + remainder of the chunk following the compression method byte is a + zlib datastream as specified above. This datastream decompresses to + the user-readable text described by the chunk's keyword. Unlike the + image data, such datastreams are not split across chunks; each zTXt + chunk contains an independent zlib datastream. + + Additional documentation and portable C code for deflate and inflate + are available from the Info-ZIP archives at + . + +6. Filter Algorithms + + This chapter describes the filter algorithms that can be applied + before compression. The purpose of these filters is to prepare the + image data for optimum compression. + + 6.1. Filter types + + PNG filter method 0 defines five basic filter types: + + Type Name + + 0 None + 1 Sub + 2 Up + 3 Average + 4 Paeth + + (Note that filter method 0 in IHDR specifies exactly this set of + five filter types. If the set of filter types is ever extended, a + different filter method number will be assigned to the extended + set, so that decoders need not decompress the data to discover + that it contains unsupported filter types.) + + The encoder can choose which of these filter algorithms to apply + on a scanline-by-scanline basis. In the image data sent to the + compression step, each scanline is preceded by a filter type byte + that specifies the filter algorithm used for that scanline. + + + +Boutell, et. al. Informational [Page 31] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Filtering algorithms are applied to bytes, not to pixels, + regardless of the bit depth or color type of the image. The + filtering algorithms work on the byte sequence formed by a + scanline that has been represented as described in Image layout + (Section 2.3). If the image includes an alpha channel, the alpha + data is filtered in the same way as the image data. + + When the image is interlaced, each pass of the interlace pattern + is treated as an independent image for filtering purposes. The + filters work on the byte sequences formed by the pixels actually + transmitted during a pass, and the "previous scanline" is the one + previously transmitted in the same pass, not the one adjacent in + the complete image. Note that the subimage transmitted in any one + pass is always rectangular, but is of smaller width and/or height + than the complete image. Filtering is not applied when this + subimage is empty. + + For all filters, the bytes "to the left of" the first pixel in a + scanline must be treated as being zero. For filters that refer to + the prior scanline, the entire prior scanline must be treated as + being zeroes for the first scanline of an image (or of a pass of + an interlaced image). + + To reverse the effect of a filter, the decoder must use the + decoded values of the prior pixel on the same line, the pixel + immediately above the current pixel on the prior line, and the + pixel just to the left of the pixel above. This implies that at + least one scanline's worth of image data will have to be stored by + the decoder at all times. Even though some filter types do not + refer to the prior scanline, the decoder will always need to store + each scanline as it is decoded, since the next scanline might use + a filter that refers to it. + + PNG imposes no restriction on which filter types can be applied to + an image. However, the filters are not equally effective on all + types of data. See Recommendations for Encoders: Filter selection + (Section 9.6). + + See also Rationale: Filtering (Section 12.9). + + 6.2. Filter type 0: None + + With the None filter, the scanline is transmitted unmodified; it + is only necessary to insert a filter type byte before the data. + + + + + + + +Boutell, et. al. Informational [Page 32] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 6.3. Filter type 1: Sub + + The Sub filter transmits the difference between each byte and the + value of the corresponding byte of the prior pixel. + + To compute the Sub filter, apply the following formula to each + byte of the scanline: + + Sub(x) = Raw(x) - Raw(x-bpp) + + where x ranges from zero to the number of bytes representing the + scanline minus one, Raw(x) refers to the raw data byte at that + byte position in the scanline, and bpp is defined as the number of + bytes per complete pixel, rounding up to one. For example, for + color type 2 with a bit depth of 16, bpp is equal to 6 (three + samples, two bytes per sample); for color type 0 with a bit depth + of 2, bpp is equal to 1 (rounding up); for color type 4 with a bit + depth of 16, bpp is equal to 4 (two-byte grayscale sample, plus + two-byte alpha sample). + + Note this computation is done for each byte, regardless of bit + depth. In a 16-bit image, each MSB is predicted from the + preceding MSB and each LSB from the preceding LSB, because of the + way that bpp is defined. + + Unsigned arithmetic modulo 256 is used, so that both the inputs + and outputs fit into bytes. The sequence of Sub values is + transmitted as the filtered scanline. + + For all x < 0, assume Raw(x) = 0. + + To reverse the effect of the Sub filter after decompression, + output the following value: + + Sub(x) + Raw(x-bpp) + + (computed mod 256), where Raw refers to the bytes already decoded. + + 6.4. Filter type 2: Up + + The Up filter is just like the Sub filter except that the pixel + immediately above the current pixel, rather than just to its left, + is used as the predictor. + + To compute the Up filter, apply the following formula to each byte + of the scanline: + + Up(x) = Raw(x) - Prior(x) + + + +Boutell, et. al. Informational [Page 33] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + where x ranges from zero to the number of bytes representing the + scanline minus one, Raw(x) refers to the raw data byte at that + byte position in the scanline, and Prior(x) refers to the + unfiltered bytes of the prior scanline. + + Note this is done for each byte, regardless of bit depth. + Unsigned arithmetic modulo 256 is used, so that both the inputs + and outputs fit into bytes. The sequence of Up values is + transmitted as the filtered scanline. + + On the first scanline of an image (or of a pass of an interlaced + image), assume Prior(x) = 0 for all x. + + To reverse the effect of the Up filter after decompression, output + the following value: + + Up(x) + Prior(x) + + (computed mod 256), where Prior refers to the decoded bytes of the + prior scanline. + + 6.5. Filter type 3: Average + + The Average filter uses the average of the two neighboring pixels + (left and above) to predict the value of a pixel. + + To compute the Average filter, apply the following formula to each + byte of the scanline: + + Average(x) = Raw(x) - floor((Raw(x-bpp)+Prior(x))/2) + + where x ranges from zero to the number of bytes representing the + scanline minus one, Raw(x) refers to the raw data byte at that + byte position in the scanline, Prior(x) refers to the unfiltered + bytes of the prior scanline, and bpp is defined as for the Sub + filter. + + Note this is done for each byte, regardless of bit depth. The + sequence of Average values is transmitted as the filtered + scanline. + + The subtraction of the predicted value from the raw byte must be + done modulo 256, so that both the inputs and outputs fit into + bytes. However, the sum Raw(x-bpp)+Prior(x) must be formed + without overflow (using at least nine-bit arithmetic). floor() + indicates that the result of the division is rounded to the next + lower integer if fractional; in other words, it is an integer + division or right shift operation. + + + +Boutell, et. al. Informational [Page 34] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + For all x < 0, assume Raw(x) = 0. On the first scanline of an + image (or of a pass of an interlaced image), assume Prior(x) = 0 + for all x. + + To reverse the effect of the Average filter after decompression, + output the following value: + + Average(x) + floor((Raw(x-bpp)+Prior(x))/2) + + where the result is computed mod 256, but the prediction is + calculated in the same way as for encoding. Raw refers to the + bytes already decoded, and Prior refers to the decoded bytes of + the prior scanline. + + 6.6. Filter type 4: Paeth + + The Paeth filter computes a simple linear function of the three + neighboring pixels (left, above, upper left), then chooses as + predictor the neighboring pixel closest to the computed value. + This technique is due to Alan W. Paeth [PAETH]. + + To compute the Paeth filter, apply the following formula to each + byte of the scanline: + + Paeth(x) = Raw(x) - PaethPredictor(Raw(x-bpp), Prior(x), + Prior(x-bpp)) + + where x ranges from zero to the number of bytes representing the + scanline minus one, Raw(x) refers to the raw data byte at that + byte position in the scanline, Prior(x) refers to the unfiltered + bytes of the prior scanline, and bpp is defined as for the Sub + filter. + + Note this is done for each byte, regardless of bit depth. + Unsigned arithmetic modulo 256 is used, so that both the inputs + and outputs fit into bytes. The sequence of Paeth values is + transmitted as the filtered scanline. + + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 35] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The PaethPredictor function is defined by the following + pseudocode: + + function PaethPredictor (a, b, c) + begin + ; a = left, b = above, c = upper left + p := a + b - c ; initial estimate + pa := abs(p - a) ; distances to a, b, c + pb := abs(p - b) + pc := abs(p - c) + ; return nearest of a,b,c, + ; breaking ties in order a,b,c. + if pa <= pb AND pa <= pc then return a + else if pb <= pc then return b + else return c + end + + The calculations within the PaethPredictor function must be + performed exactly, without overflow. Arithmetic modulo 256 is to + be used only for the final step of subtracting the function result + from the target byte value. + + Note that the order in which ties are broken is critical and must + not be altered. The tie break order is: pixel to the left, pixel + above, pixel to the upper left. (This order differs from that + given in Paeth's article.) + + For all x < 0, assume Raw(x) = 0 and Prior(x) = 0. On the first + scanline of an image (or of a pass of an interlaced image), assume + Prior(x) = 0 for all x. + + To reverse the effect of the Paeth filter after decompression, + output the following value: + + Paeth(x) + PaethPredictor(Raw(x-bpp), Prior(x), Prior(x-bpp)) + + (computed mod 256), where Raw and Prior refer to bytes already + decoded. Exactly the same PaethPredictor function is used by both + encoder and decoder. + +7. Chunk Ordering Rules + + To allow new chunk types to be added to PNG, it is necessary to + establish rules about the ordering requirements for all chunk types. + Otherwise a PNG editing program cannot know what to do when it + encounters an unknown chunk. + + + + + +Boutell, et. al. Informational [Page 36] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + We define a "PNG editor" as a program that modifies a PNG file and + wishes to preserve as much as possible of the ancillary information + in the file. Two examples of PNG editors are a program that adds or + modifies text chunks, and a program that adds a suggested palette to + a truecolor PNG file. Ordinary image editors are not PNG editors in + this sense, because they usually discard all unrecognized information + while reading in an image. (Note: we strongly encourage programs + handling PNG files to preserve ancillary information whenever + possible.) + + As an example of possible problems, consider a hypothetical new + ancillary chunk type that is safe-to-copy and is required to appear + after PLTE if PLTE is present. If our program to add a suggested + PLTE does not recognize this new chunk, it may insert PLTE in the + wrong place, namely after the new chunk. We could prevent such + problems by requiring PNG editors to discard all unknown chunks, but + that is a very unattractive solution. Instead, PNG requires + ancillary chunks not to have ordering restrictions like this. + + To prevent this type of problem while allowing for future extension, + we put some constraints on both the behavior of PNG editors and the + allowed ordering requirements for chunks. + + 7.1. Behavior of PNG editors + + The rules for PNG editors are: + + * When copying an unknown unsafe-to-copy ancillary chunk, a + PNG editor must not move the chunk relative to any critical + chunk. It can relocate the chunk freely relative to other + ancillary chunks that occur between the same pair of + critical chunks. (This is well defined since the editor + must not add, delete, modify, or reorder critical chunks if + it is preserving unknown unsafe-to-copy chunks.) + * When copying an unknown safe-to-copy ancillary chunk, a PNG + editor must not move the chunk from before IDAT to after + IDAT or vice versa. (This is well defined because IDAT is + always present.) Any other reordering is permitted. + * When copying a known ancillary chunk type, an editor need + only honor the specific chunk ordering rules that exist for + that chunk type. However, it can always choose to apply the + above general rules instead. + * PNG editors must give up on encountering an unknown critical + chunk type, because there is no way to be certain that a + valid file will result from modifying a file containing such + a chunk. (Note that simply discarding the chunk is not good + enough, because it might have unknown implications for the + interpretation of other chunks.) + + + +Boutell, et. al. Informational [Page 37] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + These rules are expressed in terms of copying chunks from an input + file to an output file, but they apply in the obvious way if a PNG + file is modified in place. + + See also Chunk naming conventions (Section 3.3). + + 7.2. Ordering of ancillary chunks + + The ordering rules for an ancillary chunk type cannot be any + stricter than this: + + * Unsafe-to-copy chunks can have ordering requirements + relative to critical chunks. + * Safe-to-copy chunks can have ordering requirements relative + to IDAT. + + The actual ordering rules for any particular ancillary chunk type + may be weaker. See for example the ordering rules for the + standard ancillary chunk types (Summary of standard chunks, + Section 4.3). + + Decoders must not assume more about the positioning of any + ancillary chunk than is specified by the chunk ordering rules. In + particular, it is never valid to assume that a specific ancillary + chunk type occurs with any particular positioning relative to + other ancillary chunks. (For example, it is unsafe to assume that + your private ancillary chunk occurs immediately before IEND. Even + if your application always writes it there, a PNG editor might + have inserted some other ancillary chunk after it. But you can + safely assume that your chunk will remain somewhere between IDAT + and IEND.) + + 7.3. Ordering of critical chunks + + Critical chunks can have arbitrary ordering requirements, because + PNG editors are required to give up if they encounter unknown + critical chunks. For example, IHDR has the special ordering rule + that it must always appear first. A PNG editor, or indeed any + PNG-writing program, must know and follow the ordering rules for + any critical chunk type that it can emit. + + + + + + + + + + + +Boutell, et. al. Informational [Page 38] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +8. Miscellaneous Topics + + 8.1. File name extension + + On systems where file names customarily include an extension + signifying file type, the extension ".png" is recommended for PNG + files. Lower case ".png" is preferred if file names are case- + sensitive. + + 8.2. Internet media type + + The Internet Assigned Numbers Authority (IANA) has registered + "image/png" as the Internet Media Type for PNG [RFC-2045, RFC- + 2048]. For robustness, decoders may choose to also support the + interim media type "image/x-png" which was in use before + registration was complete. + + 8.3. Macintosh file layout + + In the Apple Macintosh system, the following conventions are + recommended: + + * The four-byte file type code for PNG files is "PNGf". (This + code has been registered with Apple for PNG files.) The + creator code will vary depending on the creating + application. + * The contents of the data fork must be a PNG file exactly as + described in the rest of this specification. + * The contents of the resource fork are unspecified. It may + be empty or may contain application-dependent resources. + * When transferring a Macintosh PNG file to a non-Macintosh + system, only the data fork should be transferred. + + 8.4. Multiple-image extension + + PNG itself is strictly a single-image format. However, it may be + necessary to store multiple images within one file; for example, + this is needed to convert some GIF files. In the future, a + multiple-image format based on PNG may be defined. Such a format + will be considered a separate file format and will have a + different signature. PNG-supporting applications may or may not + choose to support the multiple-image format. + + See Rationale: Why not these features? (Section 12.3). + + + + + + + +Boutell, et. al. Informational [Page 39] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 8.5. Security considerations + + A PNG file or datastream is composed of a collection of explicitly + typed "chunks". Chunks whose contents are defined by the + specification could actually contain anything, including malicious + code. But there is no known risk that such malicious code could + be executed on the recipient's computer as a result of decoding + the PNG image. + + The possible security risks associated with future chunk types + cannot be specified at this time. Security issues will be + considered when evaluating chunks proposed for registration as + public chunks. There is no additional security risk associated + with unknown or unimplemented chunk types, because such chunks + will be ignored, or at most be copied into another PNG file. + + The tEXt and zTXt chunks contain data that is meant to be + displayed as plain text. It is possible that if the decoder + displays such text without filtering out control characters, + especially the ESC (escape) character, certain systems or + terminals could behave in undesirable and insecure ways. We + recommend that decoders filter out control characters to avoid + this risk; see Recommendations for Decoders: Text chunk processing + (Section 10.11). + + Because every chunk's length is available at its beginning, and + because every chunk has a CRC trailer, there is a very robust + defense against corrupted data and against fraudulent chunks that + attempt to overflow the decoder's buffers. Also, the PNG + signature bytes provide early detection of common file + transmission errors. + + A decoder that fails to check CRCs could be subject to data + corruption. The only likely consequence of such corruption is + incorrectly displayed pixels within the image. Worse things might + happen if the CRC of the IHDR chunk is not checked and the width + or height fields are corrupted. See Recommendations for Decoders: + Error checking (Section 10.1). + + A poorly written decoder might be subject to buffer overflow, + because chunks can be extremely large, up to (2^31)-1 bytes long. + But properly written decoders will handle large chunks without + difficulty. + + + + + + + + +Boutell, et. al. Informational [Page 40] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +9. Recommendations for Encoders + + This chapter gives some recommendations for encoder behavior. The + only absolute requirement on a PNG encoder is that it produce files + that conform to the format specified in the preceding chapters. + However, best results will usually be achieved by following these + recommendations. + + 9.1. Sample depth scaling + + When encoding input samples that have a sample depth that cannot + be directly represented in PNG, the encoder must scale the samples + up to a sample depth that is allowed by PNG. The most accurate + scaling method is the linear equation + + output = ROUND(input * MAXOUTSAMPLE / MAXINSAMPLE) + + where the input samples range from 0 to MAXINSAMPLE and the + outputs range from 0 to MAXOUTSAMPLE (which is (2^sampledepth)-1). + + A close approximation to the linear scaling method can be achieved + by "left bit replication", which is shifting the valid bits to + begin in the most significant bit and repeating the most + significant bits into the open bits. This method is often faster + to compute than linear scaling. As an example, assume that 5-bit + samples are being scaled up to 8 bits. If the source sample value + is 27 (in the range from 0-31), then the original bits are: + + 4 3 2 1 0 + --------- + 1 1 0 1 1 + + Left bit replication gives a value of 222: + + 7 6 5 4 3 2 1 0 + ---------------- + 1 1 0 1 1 1 1 0 + |=======| |===| + | Leftmost Bits Repeated to Fill Open Bits + | + Original Bits + + which matches the value computed by the linear equation. Left bit + replication usually gives the same value as linear scaling, and is + never off by more than one. + + + + + + +Boutell, et. al. Informational [Page 41] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + A distinctly less accurate approximation is obtained by simply + left-shifting the input value and filling the low order bits with + zeroes. This scheme cannot reproduce white exactly, since it does + not generate an all-ones maximum value; the net effect is to + darken the image slightly. This method is not recommended in + general, but it does have the effect of improving compression, + particularly when dealing with greater-than-eight-bit sample + depths. Since the relative error introduced by zero-fill scaling + is small at high sample depths, some encoders may choose to use + it. Zero-fill must not be used for alpha channel data, however, + since many decoders will special-case alpha values of all zeroes + and all ones. It is important to represent both those values + exactly in the scaled data. + + When the encoder writes an sBIT chunk, it is required to do the + scaling in such a way that the high-order bits of the stored + samples match the original data. That is, if the sBIT chunk + specifies a sample depth of S, the high-order S bits of the stored + data must agree with the original S-bit data values. This allows + decoders to recover the original data by shifting right. The + added low-order bits are not constrained. Note that all the above + scaling methods meet this restriction. + + When scaling up source data, it is recommended that the low-order + bits be filled consistently for all samples; that is, the same + source value should generate the same sample value at any pixel + position. This improves compression by reducing the number of + distinct sample values. However, this is not a requirement, and + some encoders may choose not to follow it. For example, an + encoder might instead dither the low-order bits, improving + displayed image quality at the price of increasing file size. + + In some applications the original source data may have a range + that is not a power of 2. The linear scaling equation still works + for this case, although the shifting methods do not. It is + recommended that an sBIT chunk not be written for such images, + since sBIT suggests that the original data range was exactly + 0..2^S-1. + + 9.2. Encoder gamma handling + + See Gamma Tutorial (Chapter 13) if you aren't already familiar + with gamma issues. + + Proper handling of gamma encoding and the gAMA chunk in an encoder + depends on the prior history of the sample values and on whether + these values have already been quantized to integers. + + + + +Boutell, et. al. Informational [Page 42] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + If the encoder has access to sample intensity values in floating- + point or high-precision integer form (perhaps from a computer + image renderer), then it is recommended that the encoder perform + its own gamma encoding before quantizing the data to integer + values for storage in the file. Applying gamma encoding at this + stage results in images with fewer banding artifacts at a given + sample depth, or allows smaller samples while retaining the same + visual quality. + + A linear intensity level, expressed as a floating-point value in + the range 0 to 1, can be converted to a gamma-encoded sample value + by + + sample = ROUND((intensity ^ encoder_gamma) * MAXSAMPLE) + + The file_gamma value to be written in the PNG gAMA chunk is the + same as encoder_gamma in this equation, since we are assuming the + initial intensity value is linear (in effect, camera_gamma is + 1.0). + + If the image is being written to a file only, the encoder_gamma + value can be selected somewhat arbitrarily. Values of 0.45 or 0.5 + are generally good choices because they are common in video + systems, and so most PNG decoders should do a good job displaying + such images. + + Some image renderers may simultaneously write the image to a PNG + file and display it on-screen. The displayed pixels should be + gamma corrected for the display system and viewing conditions in + use, so that the user sees a proper representation of the intended + scene. An appropriate gamma correction value is + + screen_gc = viewing_gamma / display_gamma + + If the renderer wants to write the same gamma-corrected sample + values to the PNG file, avoiding a separate gamma-encoding step + for file output, then this screen_gc value should be written in + the gAMA chunk. This will allow a PNG decoder to reproduce what + the file's originator saw on screen during rendering (provided the + decoder properly supports arbitrary values in a gAMA chunk). + + However, it is equally reasonable for a renderer to apply gamma + correction for screen display using a gamma appropriate to the + viewing conditions, and to separately gamma-encode the sample + values for file storage using a standard value of gamma such as + 0.5. In fact, this is preferable, since some PNG decoders may not + accurately display images with unusual gAMA values. + + + + +Boutell, et. al. Informational [Page 43] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Computer graphics renderers often do not perform gamma encoding, + instead making sample values directly proportional to scene light + intensity. If the PNG encoder receives sample values that have + already been quantized into linear-light integer values, there is + no point in doing gamma encoding on them; that would just result + in further loss of information. The encoder should just write the + sample values to the PNG file. This "linear" sample encoding is + equivalent to gamma encoding with a gamma of 1.0, so graphics + programs that produce linear samples should always emit a gAMA + chunk specifying a gamma of 1.0. + + When the sample values come directly from a piece of hardware, the + correct gAMA value is determined by the gamma characteristic of + the hardware. In the case of video digitizers ("frame grabbers"), + gAMA should be 0.45 or 0.5 for NTSC (possibly less for PAL or + SECAM) since video camera transfer functions are standardized. + Image scanners are less predictable. Their output samples may be + linear (gamma 1.0) since CCD sensors themselves are linear, or the + scanner hardware may have already applied gamma correction + designed to compensate for dot gain in subsequent printing (gamma + of about 0.57), or the scanner may have corrected the samples for + display on a CRT (gamma of 0.4-0.5). You will need to refer to + the scanner's manual, or even scan a calibrated gray wedge, to + determine what a particular scanner does. + + File format converters generally should not attempt to convert + supplied images to a different gamma. Store the data in the PNG + file without conversion, and record the source gamma if it is + known. Gamma alteration at file conversion time causes re- + quantization of the set of intensity levels that are represented, + introducing further roundoff error with little benefit. It's + almost always better to just copy the sample values intact from + the input to the output file. + + In some cases, the supplied image may be in an image format (e.g., + TIFF) that can describe the gamma characteristic of the image. In + such cases, a file format converter is strongly encouraged to + write a PNG gAMA chunk that corresponds to the known gamma of the + source image. Note that some file formats specify the gamma of + the display system, not the camera. If the input file's gamma + value is greater than 1.0, it is almost certainly a display system + gamma, and you should use its reciprocal for the PNG gAMA. + + + + + + + + + +Boutell, et. al. Informational [Page 44] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + If the encoder or file format converter does not know how an image + was originally created, but does know that the image has been + displayed satisfactorily on a display with gamma display_gamma + under lighting conditions where a particular viewing_gamma is + appropriate, then the image can be marked as having the + file_gamma: + + file_gamma = viewing_gamma / display_gamma + + This will allow viewers of the PNG file to see the same image that + the person running the file format converter saw. Although this + may not be precisely the correct value of the image gamma, it's + better to write a gAMA chunk with an approximately right value + than to omit the chunk and force PNG decoders to guess at an + appropriate gamma. + + On the other hand, if the image file is being converted as part of + a "bulk" conversion, with no one looking at each image, then it is + better to omit the gAMA chunk entirely. If the image gamma has to + be guessed at, leave it to the decoder to do the guessing. + + Gamma does not apply to alpha samples; alpha is always represented + linearly. + + See also Recommendations for Decoders: Decoder gamma handling + (Section 10.5). + + 9.3. Encoder color handling + + See Color Tutorial (Chapter 14) if you aren't already familiar + with color issues. + + If it is possible for the encoder to determine the chromaticities + of the source display primaries, or to make a strong guess based + on the origin of the image or the hardware running it, then the + encoder is strongly encouraged to output the cHRM chunk. If it + does so, the gAMA chunk should also be written; decoders can do + little with cHRM if gAMA is missing. + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 45] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Video created with recent video equipment probably uses the CCIR + 709 primaries and D65 white point [ITU-BT709], which are: + + R G B White + x 0.640 0.300 0.150 0.3127 + y 0.330 0.600 0.060 0.3290 + + An older but still very popular video standard is SMPTE-C [SMPTE- + 170M]: + + R G B White + x 0.630 0.310 0.155 0.3127 + y 0.340 0.595 0.070 0.3290 + + The original NTSC color primaries have not been used in decades. + Although you may still find the NTSC numbers listed in standards + documents, you won't find any images that actually use them. + + Scanners that produce PNG files as output should insert the filter + chromaticities into a cHRM chunk and the camera_gamma into a gAMA + chunk. + + In the case of hand-drawn or digitally edited images, you have to + determine what monitor they were viewed on when being produced. + Many image editing programs allow you to specify what type of + monitor you are using. This is often because they are working in + some device-independent space internally. Such programs have + enough information to write valid cHRM and gAMA chunks, and should + do so automatically. + + If the encoder is compiled as a portion of a computer image + renderer that performs full-spectral rendering, the monitor values + that were used to convert from the internal device-independent + color space to RGB should be written into the cHRM chunk. Any + colors that are outside the gamut of the chosen RGB device should + be clipped or otherwise constrained to be within the gamut; PNG + does not store out of gamut colors. + + If the computer image renderer performs calculations directly in + device-dependent RGB space, a cHRM chunk should not be written + unless the scene description and rendering parameters have been + adjusted to look good on a particular monitor. In that case, the + data for that monitor (if known) should be used to construct a + cHRM chunk. + + + + + + + +Boutell, et. al. Informational [Page 46] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + There are often cases where an image's exact origins are unknown, + particularly if it began life in some other format. A few image + formats store calibration information, which can be used to fill + in the cHRM chunk. For example, all PhotoCD images use the CCIR + 709 primaries and D65 whitepoint, so these values can be written + into the cHRM chunk when converting a PhotoCD file. PhotoCD also + uses the SMPTE-170M transfer function, which is closely + approximated by a gAMA of 0.5. (PhotoCD can store colors outside + the RGB gamut, so the image data will require gamut mapping before + writing to PNG format.) TIFF 6.0 files can optionally store + calibration information, which if present should be used to + construct the cHRM chunk. GIF and most other formats do not store + any calibration information. + + It is not recommended that file format converters attempt to + convert supplied images to a different RGB color space. Store the + data in the PNG file without conversion, and record the source + primary chromaticities if they are known. Color space + transformation at file conversion time is a bad idea because of + gamut mismatches and rounding errors. As with gamma conversions, + it's better to store the data losslessly and incur at most one + conversion when the image is finally displayed. + + See also Recommendations for Decoders: Decoder color handling + (Section 10.6). + + 9.4. Alpha channel creation + + The alpha channel can be regarded either as a mask that + temporarily hides transparent parts of the image, or as a means + for constructing a non-rectangular image. In the first case, the + color values of fully transparent pixels should be preserved for + future use. In the second case, the transparent pixels carry no + useful data and are simply there to fill out the rectangular image + area required by PNG. In this case, fully transparent pixels + should all be assigned the same color value for best compression. + + Image authors should keep in mind the possibility that a decoder + will ignore transparency control. Hence, the colors assigned to + transparent pixels should be reasonable background colors whenever + feasible. + + For applications that do not require a full alpha channel, or + cannot afford the price in compression efficiency, the tRNS + transparency chunk is also available. + + + + + + +Boutell, et. al. Informational [Page 47] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + If the image has a known background color, this color should be + written in the bKGD chunk. Even decoders that ignore transparency + may use the bKGD color to fill unused screen area. + + If the original image has premultiplied (also called "associated") + alpha data, convert it to PNG's non-premultiplied format by + dividing each sample value by the corresponding alpha value, then + multiplying by the maximum value for the image bit depth, and + rounding to the nearest integer. In valid premultiplied data, the + sample values never exceed their corresponding alpha values, so + the result of the division should always be in the range 0 to 1. + If the alpha value is zero, output black (zeroes). + + 9.5. Suggested palettes + + A PLTE chunk can appear in truecolor PNG files. In such files, + the chunk is not an essential part of the image data, but simply + represents a suggested palette that viewers may use to present the + image on indexed-color display hardware. A suggested palette is + of no interest to viewers running on truecolor hardware. + + If an encoder chooses to provide a suggested palette, it is + recommended that a hIST chunk also be written to indicate the + relative importance of the palette entries. The histogram values + are most easily computed as "nearest neighbor" counts, that is, + the approximate usage of each palette entry if no dithering is + applied. (These counts will often be available for free as a + consequence of developing the suggested palette.) + + For images of color type 2 (truecolor without alpha channel), it + is recommended that the palette and histogram be computed with + reference to the RGB data only, ignoring any transparent-color + specification. If the file uses transparency (has a tRNS chunk), + viewers can easily adapt the resulting palette for use with their + intended background color. They need only replace the palette + entry closest to the tRNS color with their background color (which + may or may not match the file's bKGD color, if any). + + For images of color type 6 (truecolor with alpha channel), it is + recommended that a bKGD chunk appear and that the palette and + histogram be computed with reference to the image as it would + appear after compositing against the specified background color. + This definition is necessary to ensure that useful palette entries + are generated for pixels having fractional alpha values. The + resulting palette will probably only be useful to viewers that + present the image against the same background color. It is + recommended that PNG editors delete or recompute the palette if + they alter or remove the bKGD chunk in an image of color type 6. + + + +Boutell, et. al. Informational [Page 48] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + If PLTE appears without bKGD in an image of color type 6, the + circumstances under which the palette was computed are + unspecified. + + 9.6. Filter selection + + For images of color type 3 (indexed color), filter type 0 (None) + is usually the most effective. Note that color images with 256 or + fewer colors should almost always be stored in indexed color + format; truecolor format is likely to be much larger. + + Filter type 0 is also recommended for images of bit depths less + than 8. For low-bit-depth grayscale images, it may be a net win + to expand the image to 8-bit representation and apply filtering, + but this is rare. + + For truecolor and grayscale images, any of the five filters may + prove the most effective. If an encoder uses a fixed filter, the + Paeth filter is most likely to be the best. + + For best compression of truecolor and grayscale images, we + recommend an adaptive filtering approach in which a filter is + chosen for each scanline. The following simple heuristic has + performed well in early tests: compute the output scanline using + all five filters, and select the filter that gives the smallest + sum of absolute values of outputs. (Consider the output bytes as + signed differences for this test.) This method usually + outperforms any single fixed filter choice. However, it is likely + that much better heuristics will be found as more experience is + gained with PNG. + + Filtering according to these recommendations is effective on + interlaced as well as noninterlaced images. + + 9.7. Text chunk processing + + A nonempty keyword must be provided for each text chunk. The + generic keyword "Comment" can be used if no better description of + the text is available. If a user-supplied keyword is used, be + sure to check that it meets the restrictions on keywords. + + PNG text strings are expected to use the Latin-1 character set. + Encoders should avoid storing characters that are not defined in + Latin-1, and should provide character code remapping if the local + system's character set is not Latin-1. + + Encoders should discourage the creation of single lines of text + longer than 79 characters, in order to facilitate easy reading. + + + +Boutell, et. al. Informational [Page 49] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + It is recommended that text items less than 1K (1024 bytes) in + size should be output using uncompressed tEXt chunks. In + particular, it is recommended that the basic title and author + keywords should always be output using uncompressed tEXt chunks. + Lengthy disclaimers, on the other hand, are ideal candidates for + zTXt. + + Placing large tEXt and zTXt chunks after the image data (after + IDAT) can speed up image display in some situations, since the + decoder won't have to read over the text to get to the image data. + But it is recommended that small text chunks, such as the image + title, appear before IDAT. + + 9.8. Use of private chunks + + Applications can use PNG private chunks to carry information that + need not be understood by other applications. Such chunks must be + given names with lowercase second letters, to ensure that they can + never conflict with any future public chunk definition. Note, + however, that there is no guarantee that some other application + will not use the same private chunk name. If you use a private + chunk type, it is prudent to store additional identifying + information at the beginning of the chunk data. + + Use an ancillary chunk type (lowercase first letter), not a + critical chunk type, for all private chunks that store information + that is not absolutely essential to view the image. Creation of + private critical chunks is discouraged because they render PNG + files unportable. Such chunks should not be used in publicly + available software or files. If private critical chunks are + essential for your application, it is recommended that one appear + near the start of the file, so that a standard decoder need not + read very far before discovering that it cannot handle the file. + + If you want others outside your organization to understand a chunk + type that you invent, contact the maintainers of the PNG + specification to submit a proposed chunk name and definition for + addition to the list of special-purpose public chunks (see + Additional chunk types, Section 4.4). Note that a proposed public + chunk name (with uppercase second letter) must not be used in + publicly available software or files until registration has been + approved. + + If an ancillary chunk contains textual information that might be + of interest to a human user, you should not create a special chunk + type for it. Instead use a tEXt chunk and define a suitable + keyword. That way, the information will be available to users not + using your software. + + + +Boutell, et. al. Informational [Page 50] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Keywords in tEXt chunks should be reasonably self-explanatory, + since the idea is to let other users figure out what the chunk + contains. If of general usefulness, new keywords can be + registered with the maintainers of the PNG specification. But it + is permissible to use keywords without registering them first. + + 9.9. Private type and method codes + + This specification defines the meaning of only some of the + possible values of some fields. For example, only compression + method 0 and filter types 0 through 4 are defined. Numbers + greater than 127 must be used when inventing experimental or + private definitions of values for any of these fields. Numbers + below 128 are reserved for possible future public extensions of + this specification. Note that use of private type codes may + render a file unreadable by standard decoders. Such codes are + strongly discouraged except for experimental purposes, and should + not appear in publicly available software or files. + +10. Recommendations for Decoders + + This chapter gives some recommendations for decoder behavior. The + only absolute requirement on a PNG decoder is that it successfully + read any file conforming to the format specified in the preceding + chapters. However, best results will usually be achieved by + following these recommendations. + + 10.1. Error checking + + To ensure early detection of common file-transfer problems, + decoders should verify that all eight bytes of the PNG file + signature are correct. (See Rationale: PNG file signature, + Section 12.11.) A decoder can have additional confidence in the + file's integrity if the next eight bytes are an IHDR chunk header + with the correct chunk length. + + Unknown chunk types must be handled as described in Chunk naming + conventions (Section 3.3). An unknown chunk type is not to be + treated as an error unless it is a critical chunk. + + It is strongly recommended that decoders should verify the CRC on + each chunk. + + In some situations it is desirable to check chunk headers (length + and type code) before reading the chunk data and CRC. The chunk + type can be checked for plausibility by seeing whether all four + bytes are ASCII letters (codes 65-90 and 97-122); note that this + need only be done for unrecognized type codes. If the total file + + + +Boutell, et. al. Informational [Page 51] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + size is known (from file system information, HTTP protocol, etc), + the chunk length can be checked for plausibility as well. + + If CRCs are not checked, dropped/added data bytes or an erroneous + chunk length can cause the decoder to get out of step and + misinterpret subsequent data as a chunk header. Verifying that + the chunk type contains letters is an inexpensive way of providing + early error detection in this situation. + + For known-length chunks such as IHDR, decoders should treat an + unexpected chunk length as an error. Future extensions to this + specification will not add new fields to existing chunks; instead, + new chunk types will be added to carry new information. + + Unexpected values in fields of known chunks (for example, an + unexpected compression method in the IHDR chunk) must be checked + for and treated as errors. However, it is recommended that + unexpected field values be treated as fatal errors only in + critical chunks. An unexpected value in an ancillary chunk can be + handled by ignoring the whole chunk as though it were an unknown + chunk type. (This recommendation assumes that the chunk's CRC has + been verified. In decoders that do not check CRCs, it is safer to + treat any unexpected value as indicating a corrupted file.) + + 10.2. Pixel dimensions + + Non-square pixels can be represented (see the pHYs chunk), but + viewers are not required to account for them; a viewer can present + any PNG file as though its pixels are square. + + Conversely, viewers running on display hardware with non-square + pixels are strongly encouraged to rescale images for proper + display. + + 10.3. Truecolor image handling + + To achieve PNG's goal of universal interchangeability, decoders + are required to accept all types of PNG image: indexed-color, + truecolor, and grayscale. Viewers running on indexed-color + display hardware need to be able to reduce truecolor images to + indexed format for viewing. This process is usually called "color + quantization". + + + + + + + + + +Boutell, et. al. Informational [Page 52] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + A simple, fast way of doing this is to reduce the image to a fixed + palette. Palettes with uniform color spacing ("color cubes") are + usually used to minimize the per-pixel computation. For + photograph-like images, dithering is recommended to avoid ugly + contours in what should be smooth gradients; however, dithering + introduces graininess that can be objectionable. + + The quality of rendering can be improved substantially by using a + palette chosen specifically for the image, since a color cube + usually has numerous entries that are unused in any particular + image. This approach requires more work, first in choosing the + palette, and second in mapping individual pixels to the closest + available color. PNG allows the encoder to supply a suggested + palette in a PLTE chunk, but not all encoders will do so, and the + suggested palette may be unsuitable in any case (it may have too + many or too few colors). High-quality viewers will therefore need + to have a palette selection routine at hand. A large lookup table + is usually the most feasible way of mapping individual pixels to + palette entries with adequate speed. + + Numerous implementations of color quantization are available. The + PNG reference implementation, libpng, includes code for the + purpose. + + 10.4. Sample depth rescaling + + Decoders may wish to scale PNG data to a lesser sample depth (data + precision) for display. For example, 16-bit data will need to be + reduced to 8-bit depth for use on most present-day display + hardware. Reduction of 8-bit data to 5-bit depth is also common. + + The most accurate scaling is achieved by the linear equation + + output = ROUND(input * MAXOUTSAMPLE / MAXINSAMPLE) + + where + + MAXINSAMPLE = (2^sampledepth)-1 + MAXOUTSAMPLE = (2^desired_sampledepth)-1 + + A slightly less accurate conversion is achieved by simply shifting + right by sampledepth-desired_sampledepth places. For example, to + reduce 16-bit samples to 8-bit, one need only discard the low- + order byte. In many situations the shift method is sufficiently + accurate for display purposes, and it is certainly much faster. + (But if gamma correction is being done, sample rescaling can be + merged into the gamma correction lookup table, as is illustrated + in Decoder gamma handling, Section 10.5.) + + + +Boutell, et. al. Informational [Page 53] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + When an sBIT chunk is present, the original pre-PNG data can be + recovered by shifting right to the sample depth specified by sBIT. + Note that linear scaling will not necessarily reproduce the + original data, because the encoder is not required to have used + linear scaling to scale the data up. However, the encoder is + required to have used a method that preserves the high-order bits, + so shifting always works. This is the only case in which shifting + might be said to be more accurate than linear scaling. + + When comparing pixel values to tRNS chunk values to detect + transparent pixels, it is necessary to do the comparison exactly. + Therefore, transparent pixel detection must be done before + reducing sample precision. + + 10.5. Decoder gamma handling + + See Gamma Tutorial (Chapter 13) if you aren't already familiar + with gamma issues. + + To produce correct tone reproduction, a good image display program + should take into account the gammas of the image file and the + display device, as well as the viewing_gamma appropriate to the + lighting conditions near the display. This can be done by + calculating + + gbright = insample / MAXINSAMPLE + bright = gbright ^ (1.0 / file_gamma) + vbright = bright ^ viewing_gamma + gcvideo = vbright ^ (1.0 / display_gamma) + fbval = ROUND(gcvideo * MAXFBVAL) + + where MAXINSAMPLE is the maximum sample value in the file (255 for + 8-bit, 65535 for 16-bit, etc), MAXFBVAL is the maximum value of a + frame buffer sample (255 for 8-bit, 31 for 5-bit, etc), insample + is the value of the sample in the PNG file, and fbval is the value + to write into the frame buffer. The first line converts from + integer samples into a normalized 0 to 1 floating point value, the + second undoes the gamma encoding of the image file to produce a + linear intensity value, the third adjusts for the viewing + conditions, the fourth corrects for the display system's gamma + value, and the fifth converts to an integer frame buffer sample. + In practice, the second through fourth lines can be merged into + + gcvideo = gbright^(viewing_gamma / (file_gamma*display_gamma)) + + so as to perform only one power calculation. For color images, the + entire calculation is performed separately for R, G, and B values. + + + + +Boutell, et. al. Informational [Page 54] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + It is not necessary to perform transcendental math for every + pixel. Instead, compute a lookup table that gives the correct + output value for every possible sample value. This requires only + 256 calculations per image (for 8-bit accuracy), not one or three + calculations per pixel. For an indexed-color image, a one-time + correction of the palette is sufficient, unless the image uses + transparency and is being displayed against a nonuniform + background. + + In some cases even the cost of computing a gamma lookup table may + be a concern. In these cases, viewers are encouraged to have + precomputed gamma correction tables for file_gamma values of 1.0 + and 0.5 with some reasonable choice of viewing_gamma and + display_gamma, and to use the table closest to the gamma indicated + in the file. This will produce acceptable results for the majority + of real files. + + When the incoming image has unknown gamma (no gAMA chunk), choose + a likely default file_gamma value, but allow the user to select a + new one if the result proves too dark or too light. + + In practice, it is often difficult to determine what value of + display_gamma should be used. In systems with no built-in gamma + correction, the display_gamma is determined entirely by the CRT. + Assuming a CRT_gamma of 2.5 is recommended, unless you have + detailed calibration measurements of this particular CRT + available. + + However, many modern frame buffers have lookup tables that are + used to perform gamma correction, and on these systems the + display_gamma value should be the gamma of the lookup table and + CRT combined. You may not be able to find out what the lookup + table contains from within an image viewer application, so you may + have to ask the user what the system's gamma value is. + Unfortunately, different manufacturers use different ways of + specifying what should go into the lookup table, so interpretation + of the system gamma value is system-dependent. Gamma Tutorial + (Chapter 13) gives some examples. + + The response of real displays is actually more complex than can be + described by a single number (display_gamma). If actual + measurements of the monitor's light output as a function of + voltage input are available, the fourth and fifth lines of the + computation above can be replaced by a lookup in these + measurements, to find the actual frame buffer value that most + nearly gives the desired brightness. + + + + + +Boutell, et. al. Informational [Page 55] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The value of viewing_gamma depends on lighting conditions; see + Gamma Tutorial (Chapter 13) for more detail. Ideally, a viewer + would allow the user to specify viewing_gamma, either directly + numerically, or via selecting from "bright surround", "dim + surround", and "dark surround" conditions. Viewers that don't + want to do this should just assume a value for viewing_gamma of + 1.0, since most computer displays live in brightly-lit rooms. + + When viewing images that are digitized from video, or that are + destined to become video frames, the user might want to set the + viewing_gamma to about 1.25 regardless of the actual level of room + lighting. This value of viewing_gamma is "built into" NTSC video + practice, and displaying an image with that viewing_gamma allows + the user to see what a TV set would show under the current room + lighting conditions. (This is not the same thing as trying to + obtain the most accurate rendition of the content of the scene, + which would require adjusting viewing_gamma to correspond to the + room lighting level.) This is another reason viewers might want + to allow users to adjust viewing_gamma directly. + + 10.6. Decoder color handling + + See Color Tutorial (Chapter 14) if you aren't already familiar + with color issues. + + In many cases, decoders will treat image data in PNG files as + device-dependent RGB data and display it without modification + (except for appropriate gamma correction). This provides the + fastest display of PNG images. But unless the viewer uses exactly + the same display hardware as the original image author used, the + colors will not be exactly the same as the original author saw, + particularly for darker or near-neutral colors. The cHRM chunk + provides information that allows closer color matching than that + provided by gamma correction alone. + + Decoders can use the cHRM data to transform the image data from + RGB to XYZ and thence into a perceptually linear color space such + as CIE LAB. They can then partition the colors to generate an + optimal palette, because the geometric distance between two colors + in CIE LAB is strongly related to how different those colors + appear (unlike, for example, RGB or XYZ spaces). The resulting + palette of colors, once transformed back into RGB color space, + could be used for display or written into a PLTE chunk. + + Decoders that are part of image processing applications might also + transform image data into CIE LAB space for analysis. + + + + + +Boutell, et. al. Informational [Page 56] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + In applications where color fidelity is critical, such as product + design, scientific visualization, medicine, architecture, or + advertising, decoders can transform the image data from source_RGB + to the display_RGB space of the monitor used to view the image. + This involves calculating the matrix to go from source_RGB to XYZ + and the matrix to go from XYZ to display_RGB, then combining them + to produce the overall transformation. The decoder is responsible + for implementing gamut mapping. + + Decoders running on platforms that have a Color Management System + (CMS) can pass the image data, gAMA and cHRM values to the CMS for + display or further processing. + + Decoders that provide color printing facilities can use the + facilities in Level 2 PostScript to specify image data in + calibrated RGB space or in a device-independent color space such + as XYZ. This will provide better color fidelity than a simple RGB + to CMYK conversion. The PostScript Language Reference manual + gives examples of this process [POSTSCRIPT]. Such decoders are + responsible for implementing gamut mapping between source_RGB + (specified in the cHRM chunk) and the target printer. The + PostScript interpreter is then responsible for producing the + required colors. + + Decoders can use the cHRM data to calculate an accurate grayscale + representation of a color image. Conversion from RGB to gray is + simply a case of calculating the Y (luminance) component of XYZ, + which is a weighted sum of the R G and B values. The weights + depend on the monitor type, i.e., the values in the cHRM chunk. + Decoders may wish to do this for PNG files with no cHRM chunk. In + that case, a reasonable default would be the CCIR 709 primaries + [ITU-BT709]. Do not use the original NTSC primaries, unless you + really do have an image color-balanced for such a monitor. Few + monitors ever used the NTSC primaries, so such images are probably + nonexistent these days. + + 10.7. Background color + + The background color given by bKGD will typically be used to fill + unused screen space around the image, as well as any transparent + pixels within the image. (Thus, bKGD is valid and useful even + when the image does not use transparency.) If no bKGD chunk is + present, the viewer will need to make its own decision about a + suitable background color. + + + + + + + +Boutell, et. al. Informational [Page 57] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Viewers that have a specific background against which to present + the image (such as Web browsers) should ignore the bKGD chunk, in + effect overriding bKGD with their preferred background color or + background image. + + The background color given by bKGD is not to be considered + transparent, even if it happens to match the color given by tRNS + (or, in the case of an indexed-color image, refers to a palette + index that is marked as transparent by tRNS). Otherwise one would + have to imagine something "behind the background" to composite + against. The background color is either used as background or + ignored; it is not an intermediate layer between the PNG image and + some other background. + + Indeed, it will be common that bKGD and tRNS specify the same + color, since then a decoder that does not implement transparency + processing will give the intended display, at least when no + partially-transparent pixels are present. + + 10.8. Alpha channel processing + + In the most general case, the alpha channel can be used to + composite a foreground image against a background image; the PNG + file defines the foreground image and the transparency mask, but + not the background image. Decoders are not required to support + this most general case. It is expected that most will be able to + support compositing against a single background color, however. + + The equation for computing a composited sample value is + + output = alpha * foreground + (1-alpha) * background + + where alpha and the input and output sample values are expressed + as fractions in the range 0 to 1. This computation should be + performed with linear (non-gamma-encoded) sample values. For + color images, the computation is done separately for R, G, and B + samples. + + The following code illustrates the general case of compositing a + foreground image over a background image. It assumes that you + have the original pixel data available for the background image, + and that output is to a frame buffer for display. Other variants + are possible; see the comments below the code. The code allows + the sample depths and gamma values of foreground image, background + image, and frame buffer/CRT all to be different. Don't assume + they are the same without checking. + + + + + +Boutell, et. al. Informational [Page 58] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + This code is standard C, with line numbers added for reference in + the comments below. + + 01 int foreground[4]; /* image pixel: R, G, B, A */ + 02 int background[3]; /* background pixel: R, G, B */ + 03 int fbpix[3]; /* frame buffer pixel */ + 04 int fg_maxsample; /* foreground max sample */ + 05 int bg_maxsample; /* background max sample */ + 06 int fb_maxsample; /* frame buffer max sample */ + 07 int ialpha; + 08 float alpha, compalpha; + 09 float gamfg, linfg, gambg, linbg, comppix, gcvideo; + + /* Get max sample values in data and frame buffer */ + 10 fg_maxsample = (1 << fg_sample_depth) - 1; + 11 bg_maxsample = (1 << bg_sample_depth) - 1; + 12 fb_maxsample = (1 << frame_buffer_sample_depth) - 1; + /* + * Get integer version of alpha. + * Check for opaque and transparent special cases; + * no compositing needed if so. + * + * We show the whole gamma decode/correct process in + * floating point, but it would more likely be done + * with lookup tables. + */ + 13 ialpha = foreground[3]; + + 14 if (ialpha == 0) { + /* + * Foreground image is transparent here. + * If the background image is already in the frame + * buffer, there is nothing to do. + */ + 15 ; + 16 } else if (ialpha == fg_maxsample) { + /* + * Copy foreground pixel to frame buffer. + */ + 17 for (i = 0; i < 3; i++) { + 18 gamfg = (float) foreground[i] / fg_maxsample; + 19 linfg = pow(gamfg, 1.0/fg_gamma); + 20 comppix = linfg; + 21 gcvideo = pow(comppix,viewing_gamma/display_gamma); + 22 fbpix[i] = (int) (gcvideo * fb_maxsample + 0.5); + 23 } + + + + + +Boutell, et. al. Informational [Page 59] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 24 } else { + /* + * Compositing is necessary. + * Get floating-point alpha and its complement. + * Note: alpha is always linear; gamma does not + * affect it. + */ + 25 alpha = (float) ialpha / fg_maxsample; + 26 compalpha = 1.0 - alpha; + 27 for (i = 0; i < 3; i++) { + /* + * Convert foreground and background to floating + * point, then linearize (undo gamma encoding). + */ + 28 gamfg = (float) foreground[i] / fg_maxsample; + 29 linfg = pow(gamfg, 1.0/fg_gamma); + 30 gambg = (float) background[i] / bg_maxsample; + 31 linbg = pow(gambg, 1.0/bg_gamma); + /* + * Composite. + */ + 32 comppix = linfg * alpha + linbg * compalpha; + /* + * Gamma correct for display. + * Convert to integer frame buffer pixel. + */ + 33 gcvideo = pow(comppix,viewing_gamma/display_gamma); + 34 fbpix[i] = (int) (gcvideo * fb_maxsample + 0.5); + 35 } + 36 } + + Variations: + + * If output is to another PNG image file instead of a frame + buffer, lines 21, 22, 33, and 34 should be changed to be + something like + + /* + * Gamma encode for storage in output file. + * Convert to integer sample value. + */ + gamout = pow(comppix, outfile_gamma); + outpix[i] = (int) (gamout * out_maxsample + 0.5); + + Also, it becomes necessary to process background pixels when + alpha is zero, rather than just skipping pixels. Thus, line + 15 will need to be replaced by copies of lines 17-23, but + processing background instead of foreground pixel values. + + + +Boutell, et. al. Informational [Page 60] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + * If the sample depths of the output file, foreground file, + and background file are all the same, and the three gamma + values also match, then the no-compositing code in lines + 14-23 reduces to nothing more than copying pixel values from + the input file to the output file if alpha is one, or + copying pixel values from background to output file if alpha + is zero. Since alpha is typically either zero or one for + the vast majority of pixels in an image, this is a great + savings. No gamma computations are needed for most pixels. + * When the sample depths and gamma values all match, it may + appear attractive to skip the gamma decoding and encoding + (lines 28-31, 33-34) and just perform line 32 using gamma- + encoded sample values. Although this doesn't hurt image + quality too badly, the time savings are small if alpha + values of zero and one are special-cased as recommended + here. + * If the original pixel values of the background image are no + longer available, only processed frame buffer pixels left by + display of the background image, then lines 30 and 31 need + to extract intensity from the frame buffer pixel values + using code like + + /* + * Decode frame buffer value back into linear space. + */ + gcvideo = (float) fbpix[i] / fb_maxsample; + linbg = pow(gcvideo, display_gamma / viewing_gamma); + + However, some roundoff error can result, so it is better to + have the original background pixels available if at all + possible. + * Note that lines 18-22 are performing exactly the same gamma + computation that is done when no alpha channel is present. + So, if you handle the no-alpha case with a lookup table, you + can use the same lookup table here. Lines 28-31 and 33-34 + can also be done with (different) lookup tables. + * Of course, everything here can be done in integer + arithmetic. Just be careful to maintain sufficient + precision all the way through. + + Note: in floating point, no overflow or underflow checks are + needed, because the input sample values are guaranteed to be + between 0 and 1, and compositing always yields a result that is in + between the input values (inclusive). With integer arithmetic, + some roundoff-error analysis might be needed to guarantee no + overflow or underflow. + + + + + +Boutell, et. al. Informational [Page 61] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + When displaying a PNG image with full alpha channel, it is + important to be able to composite the image against some + background, even if it's only black. Ignoring the alpha channel + will cause PNG images that have been converted from an + associated-alpha representation to look wrong. (Of course, if the + alpha channel is a separate transparency mask, then ignoring alpha + is a useful option: it allows the hidden parts of the image to be + recovered.) + + Even if the decoder author does not wish to implement true + compositing logic, it is simple to deal with images that contain + only zero and one alpha values. (This is implicitly true for + grayscale and truecolor PNG files that use a tRNS chunk; for + indexed-color PNG files, it is easy to check whether tRNS contains + any values other than 0 and 255.) In this simple case, + transparent pixels are replaced by the background color, while + others are unchanged. If a decoder contains only this much + transparency capability, it should deal with a full alpha channel + by treating all nonzero alpha values as fully opaque; that is, do + not replace partially transparent pixels by the background. This + approach will not yield very good results for images converted + from associated-alpha formats, but it's better than doing nothing. + + 10.9. Progressive display + + When receiving images over slow transmission links, decoders can + improve perceived performance by displaying interlaced images + progressively. This means that as each pass is received, an + approximation to the complete image is displayed based on the data + received so far. One simple yet pleasing effect can be obtained + by expanding each received pixel to fill a rectangle covering the + yet-to-be-transmitted pixel positions below and to the right of + the received pixel. This process can be described by the + following pseudocode: + + Starting_Row [1..7] = { 0, 0, 4, 0, 2, 0, 1 } + Starting_Col [1..7] = { 0, 4, 0, 2, 0, 1, 0 } + Row_Increment [1..7] = { 8, 8, 8, 4, 4, 2, 2 } + Col_Increment [1..7] = { 8, 8, 4, 4, 2, 2, 1 } + Block_Height [1..7] = { 8, 8, 4, 4, 2, 2, 1 } + Block_Width [1..7] = { 8, 4, 4, 2, 2, 1, 1 } + + pass := 1 + while pass <= 7 + begin + row := Starting_Row[pass] + + while row < height + + + +Boutell, et. al. Informational [Page 62] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + begin + col := Starting_Col[pass] + + while col < width + begin + visit (row, col, + min (Block_Height[pass], height - row), + min (Block_Width[pass], width - col)) + col := col + Col_Increment[pass] + end + row := row + Row_Increment[pass] + end + + pass := pass + 1 + end + + Here, the function "visit(row,column,height,width)" obtains the + next transmitted pixel and paints a rectangle of the specified + height and width, whose upper-left corner is at the specified row + and column, using the color indicated by the pixel. Note that row + and column are measured from 0,0 at the upper left corner. + + If the decoder is merging the received image with a background + image, it may be more convenient just to paint the received pixel + positions; that is, the "visit()" function sets only the pixel at + the specified row and column, not the whole rectangle. This + produces a "fade-in" effect as the new image gradually replaces + the old. An advantage of this approach is that proper alpha or + transparency processing can be done as each pixel is replaced. + Painting a rectangle as described above will overwrite + background-image pixels that may be needed later, if the pixels + eventually received for those positions turn out to be wholly or + partially transparent. Of course, this is only a problem if the + background image is not stored anywhere offscreen. + + 10.10. Suggested-palette and histogram usage + + In truecolor PNG files, the encoder may have provided a suggested + PLTE chunk for use by viewers running on indexed-color hardware. + + If the image has a tRNS chunk, the viewer will need to adapt the + suggested palette for use with its desired background color. To + do this, replace the palette entry closest to the tRNS color with + the desired background color; or just add a palette entry for the + background color, if the viewer can handle more colors than there + are PLTE entries. + + + + + +Boutell, et. al. Informational [Page 63] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + For images of color type 6 (truecolor with alpha channel), any + suggested palette should have been designed for display of the + image against a uniform background of the color specified by bKGD. + Viewers should probably ignore the palette if they intend to use a + different background, or if the bKGD chunk is missing. Viewers + can use a suggested palette for display against a different + background than it was intended for, but the results may not be + very good. + + If the viewer presents a transparent truecolor image against a + background that is more complex than a single color, it is + unlikely that the suggested palette will be optimal for the + composite image. In this case it is best to perform a truecolor + compositing step on the truecolor PNG image and background image, + then color-quantize the resulting image. + + The histogram chunk is useful when the viewer cannot provide as + many colors as are used in the image's palette. If the viewer is + only short a few colors, it is usually adequate to drop the + least-used colors from the palette. To reduce the number of + colors substantially, it's best to choose entirely new + representative colors, rather than trying to use a subset of the + existing palette. This amounts to performing a new color + quantization step; however, the existing palette and histogram can + be used as the input data, thus avoiding a scan of the image data. + + If no palette or histogram chunk is provided, a decoder can + develop its own, at the cost of an extra pass over the image data. + Alternatively, a default palette (probably a color cube) can be + used. + + See also Recommendations for Encoders: Suggested palettes (Section + 9.5). + + 10.11. Text chunk processing + + If practical, decoders should have a way to display to the user + all tEXt and zTXt chunks found in the file. Even if the decoder + does not recognize a particular text keyword, the user might be + able to understand it. + + PNG text is not supposed to contain any characters outside the ISO + 8859-1 "Latin-1" character set (that is, no codes 0-31 or 127- + 159), except for the newline character (decimal 10). But decoders + might encounter such characters anyway. Some of these characters + can be safely displayed (e.g., TAB, FF, and CR, decimal 9, 12, and + 13, respectively), but others, especially the ESC character + (decimal 27), could pose a security hazard because unexpected + + + +Boutell, et. al. Informational [Page 64] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + actions may be taken by display hardware or software. To prevent + such hazards, decoders should not attempt to directly display any + non-Latin-1 characters (except for newline and perhaps TAB, FF, + CR) encountered in a tEXt or zTXt chunk. Instead, ignore them or + display them in a visible notation such as "\nnn". See Security + considerations (Section 8.5). + + Even though encoders are supposed to represent newlines as LF, it + is recommended that decoders not rely on this; it's best to + recognize all the common newline combinations (CR, LF, and CR-LF) + and display each as a single newline. TAB can be expanded to the + proper number of spaces needed to arrive at a column multiple of + 8. + + Decoders running on systems with non-Latin-1 character set + encoding should provide character code remapping so that Latin-1 + characters are displayed correctly. Some systems may not provide + all the characters defined in Latin-1. Mapping unavailable + characters to a visible notation such as "\nnn" is a good + fallback. In particular, character codes 127-255 should be + displayed only if they are printable characters on the decoding + system. Some systems may interpret such codes as control + characters; for security, decoders running on such systems should + not display such characters literally. + + Decoders should be prepared to display text chunks that contain + any number of printing characters between newline characters, even + though encoders are encouraged to avoid creating lines in excess + of 79 characters. + +11. Glossary + + a^b + Exponentiation; a raised to the power b. C programmers should be + careful not to misread this notation as exclusive-or. Note that + in gamma-related calculations, zero raised to any power is valid + and must give a zero result. + + Alpha + A value representing a pixel's degree of transparency. The more + transparent a pixel, the less it hides the background against + which the image is presented. In PNG, alpha is really the degree + of opacity: zero alpha represents a completely transparent pixel, + maximum alpha represents a completely opaque pixel. But most + people refer to alpha as providing transparency information, not + opacity information, and we continue that custom here. + + + + + +Boutell, et. al. Informational [Page 65] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Ancillary chunk + A chunk that provides additional information. A decoder can still + produce a meaningful image, though not necessarily the best + possible image, without processing the chunk. + + Bit depth + The number of bits per palette index (in indexed-color PNGs) or + per sample (in other color types). This is the same value that + appears in IHDR. + + Byte + Eight bits; also called an octet. + + Channel + The set of all samples of the same kind within an image; for + example, all the blue samples in a truecolor image. (The term + "component" is also used, but not in this specification.) A + sample is the intersection of a channel and a pixel. + + Chromaticity + A pair of values x,y that precisely specify the hue, though not + the absolute brightness, of a perceived color. + + Chunk + A section of a PNG file. Each chunk has a type indicated by its + chunk type name. Most types of chunks also include some data. + The format and meaning of the data within the chunk are determined + by the type name. + + Composite + As a verb, to form an image by merging a foreground image and a + background image, using transparency information to determine + where the background should be visible. The foreground image is + said to be "composited against" the background. + + CRC + Cyclic Redundancy Check. A CRC is a type of check value designed + to catch most transmission errors. A decoder calculates the CRC + for the received data and compares it to the CRC that the encoder + calculated, which is appended to the data. A mismatch indicates + that the data was corrupted in transit. + + Critical chunk + A chunk that must be understood and processed by the decoder in + order to produce a meaningful image from a PNG file. + + CRT + Cathode Ray Tube: a common type of computer display hardware. + + + +Boutell, et. al. Informational [Page 66] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Datastream + A sequence of bytes. This term is used rather than "file" to + describe a byte sequence that is only a portion of a file. We + also use it to emphasize that a PNG image might be generated and + consumed "on the fly", never appearing in a stored file at all. + + Deflate + The name of the compression algorithm used in standard PNG files, + as well as in zip, gzip, pkzip, and other compression programs. + Deflate is a member of the LZ77 family of compression methods. + + Filter + A transformation applied to image data in hopes of improving its + compressibility. PNG uses only lossless (reversible) filter + algorithms. + + Frame buffer + The final digital storage area for the image shown by a computer + display. Software causes an image to appear onscreen by loading + it into the frame buffer. + + Gamma + The brightness of mid-level tones in an image. More precisely, a + parameter that describes the shape of the transfer function for + one or more stages in an imaging pipeline. The transfer function + is given by the expression + + output = input ^ gamma + + where both input and output are scaled to the range 0 to 1. + + Grayscale + An image representation in which each pixel is represented by a + single sample value representing overall luminance (on a scale + from black to white). PNG also permits an alpha sample to be + stored for each pixel of a grayscale image. + + Indexed color + An image representation in which each pixel is represented by a + single sample that is an index into a palette or lookup table. + The selected palette entry defines the actual color of the pixel. + + Lossless compression + Any method of data compression that guarantees the original data + can be reconstructed exactly, bit-for-bit. + + + + + + +Boutell, et. al. Informational [Page 67] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Lossy compression + Any method of data compression that reconstructs the original data + approximately, rather than exactly. + + LSB + Least Significant Byte of a multi-byte value. + + Luminance + Perceived brightness, or grayscale level, of a color. Luminance + and chromaticity together fully define a perceived color. + + LUT + Look Up Table. In general, a table used to transform data. In + frame buffer hardware, a LUT can be used to map indexed-color + pixels into a selected set of truecolor values, or to perform + gamma correction. In software, a LUT can be used as a fast way of + implementing any one-variable mathematical function. + + MSB + Most Significant Byte of a multi-byte value. + + Palette + The set of colors available in an indexed-color image. In PNG, a + palette is an array of colors defined by red, green, and blue + samples. (Alpha values can also be defined for palette entries, + via the tRNS chunk.) + + Pixel + The information stored for a single grid point in the image. The + complete image is a rectangular array of pixels. + + PNG editor + A program that modifies a PNG file and preserves ancillary + information, including chunks that it does not recognize. Such a + program must obey the rules given in Chunk Ordering Rules (Chapter + 7). + + Sample + A single number in the image data; for example, the red value of a + pixel. A pixel is composed of one or more samples. When + discussing physical data layout (in particular, in Image layout, + Section 2.3), we use "sample" to mean a number stored in the image + array. It would be more precise but much less readable to say + "sample or palette index" in that context. Elsewhere in the + specification, "sample" means a color value or alpha value. In + the indexed-color case, these are palette entries not palette + indexes. + + + + +Boutell, et. al. Informational [Page 68] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Sample depth + The precision, in bits, of color values and alpha values. In + indexed-color PNGs the sample depth is always 8 by definition of + the PLTE chunk. In other color types it is the same as the bit + depth. + + Scanline + One horizontal row of pixels within an image. + + Truecolor + An image representation in which pixel colors are defined by + storing three samples for each pixel, representing red, green, and + blue intensities respectively. PNG also permits an alpha sample + to be stored for each pixel of a truecolor image. + + White point + The chromaticity of a computer display's nominal white value. + + zlib + A particular format for data that has been compressed using + deflate-style compression. Also the name of a library + implementing this method. PNG implementations need not use the + zlib library, but they must conform to its format for compressed + data. + +12. Appendix: Rationale + + (This appendix is not part of the formal PNG specification.) + + This appendix gives the reasoning behind some of the design decisions + in PNG. Many of these decisions were the subject of considerable + debate. The authors freely admit that another group might have made + different decisions; however, we believe that our choices are + defensible and consistent. + + 12.1. Why a new file format? + + Does the world really need yet another graphics format? We + believe so. GIF is no longer freely usable, but no other commonly + used format can directly replace it, as is discussed in more + detail below. We might have used an adaptation of an existing + format, for example GIF with an unpatented compression scheme. + But this would require new code anyway; it would not be all that + much easier to implement than a whole new file format. (PNG is + designed to be simple to implement, with the exception of the + compression engine, which would be needed in any case.) We feel + that this is an excellent opportunity to design a new format that + fixes some of the known limitations of GIF. + + + +Boutell, et. al. Informational [Page 69] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 12.2. Why these features? + + The features chosen for PNG are intended to address the needs of + applications that previously used the special strengths of GIF. + In particular, GIF is well adapted for online communications + because of its streamability and progressive display capability. + PNG shares those attributes. + + We have also addressed some of the widely known shortcomings of + GIF. In particular, PNG supports truecolor images. We know of no + widely used image format that losslessly compresses truecolor + images as effectively as PNG does. We hope that PNG will make use + of truecolor images more practical and widespread. + + Some form of transparency control is desirable for applications in + which images are displayed against a background or together with + other images. GIF provided a simple transparent-color + specification for this purpose. PNG supports a full alpha channel + as well as transparent-color specifications. This allows both + highly flexible transparency and compression efficiency. + + Robustness against transmission errors has been an important + consideration. For example, images transferred across Internet + are often mistakenly processed as text, leading to file + corruption. PNG is designed so that such errors can be detected + quickly and reliably. + + PNG has been expressly designed not to be completely dependent on + a single compression technique. Although deflate/inflate + compression is mentioned in this document, PNG would still exist + without it. + + 12.3. Why not these features? + + Some features have been deliberately omitted from PNG. These + choices were made to simplify implementation of PNG, promote + portability and interchangeability, and make the format as simple + and foolproof as possible for users. In particular: + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 70] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + * There is no uncompressed variant of PNG. It is possible to + store uncompressed data by using only uncompressed deflate + blocks (a feature normally used to guarantee that deflate + does not make incompressible data much larger). However, + PNG software must support full deflate/inflate; any software + that does not is not compliant with the PNG standard. The + two most important features of PNG---portability and + compression---are absolute requirements for online + applications, and users demand them. Failure to support full + deflate/inflate compromises both of these objectives. + * There is no lossy compression in PNG. Existing formats such + as JFIF already handle lossy compression well. Furthermore, + available lossy compression methods (e.g., JPEG) are far + from foolproof --- a poor choice of quality level can ruin + an image. To avoid user confusion and unintentional loss of + information, we feel it is best to keep lossy and lossless + formats strictly separate. Also, lossy compression is + complex to implement. Adding JPEG support to a PNG decoder + might increase its size by an order of magnitude. This + would certainly cause some decoders to omit support for the + feature, which would destroy our goal of interchangeability. + * There is no support for CMYK or other unusual color spaces. + Again, this is in the name of promoting portability. CMYK, + in particular, is far too device-dependent to be useful as a + portable image representation. + * There is no standard chunk for thumbnail views of images. + In discussions with software vendors who use thumbnails in + their products, it has become clear that most would not use + a "standard" thumbnail chunk. For one thing, every vendor + has a different idea of what the dimensions and + characteristics of a thumbnail ought to be. Also, some + vendors keep thumbnails in separate files to accommodate + varied image formats; they are not going to stop doing that + simply because of a thumbnail chunk in one new format. + Proprietary chunks containing vendor-specific thumbnails + appear to be more practical than a common thumbnail format. + + It is worth noting that private extensions to PNG could easily add + these features. We will not, however, include them as part of the + basic PNG standard. + + + + + + + + + + + +Boutell, et. al. Informational [Page 71] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + PNG also does not support multiple images in one file. This + restriction is a reflection of the reality that many applications + do not need and will not support multiple images per file. In any + case, single images are a fundamentally different sort of object + from sequences of images. Rather than make false promises of + interchangeability, we have drawn a clear distinction between + single-image and multi-image formats. PNG is a single-image + format. (But see Multiple-image extension, Section 8.4.) + + 12.4. Why not use format X? + + Numerous existing formats were considered before deciding to + develop PNG. None could meet the requirements we felt were + important for PNG. + + GIF is no longer suitable as a universal standard because of legal + entanglements. Although just replacing GIF's compression method + would avoid that problem, GIF does not support truecolor images, + alpha channels, or gamma correction. The spec has more subtle + problems too. Only a small subset of the GIF89 spec is actually + portable across a variety of implementations, but there is no + codification of the most portable part of the spec. + + TIFF is far too complex to meet our goals of simplicity and + interchangeability. Defining a TIFF subset would meet that + objection, but would frustrate users making the reasonable + assumption that a file saved as TIFF from their existing software + would load into a program supporting our flavor of TIFF. + Furthermore, TIFF is not designed for stream processing, has no + provision for progressive display, and does not currently provide + any good, legally unencumbered, lossless compression method. + + IFF has also been suggested, but is not suitable in detail: + available image representations are too machine-specific or not + adequately compressed. The overall chunk structure of IFF is a + useful concept that PNG has liberally borrowed from, but we did + not attempt to be bit-for-bit compatible with IFF chunk structure. + Again this is due to detailed issues, notably the fact that IFF + FORMs are not designed to be serially writable. + + Lossless JPEG is not suitable because it does not provide for the + storage of indexed-color images. Furthermore, its lossless + truecolor compression is often inferior to that of PNG. + + + + + + + + +Boutell, et. al. Informational [Page 72] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 12.5. Byte order + + It has been asked why PNG uses network byte order. We have + selected one byte ordering and used it consistently. Which order + in particular is of little relevance, but network byte order has + the advantage that routines to convert to and from it are already + available on any platform that supports TCP/IP networking, + including all PC platforms. The functions are trivial and will be + included in the reference implementation. + + 12.6. Interlacing + + PNG's two-dimensional interlacing scheme is more complex to + implement than GIF's line-wise interlacing. It also costs a + little more in file size. However, it yields an initial image + eight times faster than GIF (the first pass transmits only 1/64th + of the pixels, compared to 1/8th for GIF). Although this initial + image is coarse, it is useful in many situations. For example, if + the image is a World Wide Web imagemap that the user has seen + before, PNG's first pass is often enough to determine where to + click. The PNG scheme also looks better than GIF's, because + horizontal and vertical resolution never differ by more than a + factor of two; this avoids the odd "stretched" look seen when + interlaced GIFs are filled in by replicating scanlines. + Preliminary results show that small text in an interlaced PNG + image is typically readable about twice as fast as in an + equivalent GIF, i.e., after PNG's fifth pass or 25% of the image + data, instead of after GIF's third pass or 50%. This is again due + to PNG's more balanced increase in resolution. + + 12.7. Why gamma? + + It might seem natural to standardize on storing sample values that + are linearly proportional to light intensity (that is, have gamma + of 1.0). But in fact, it is common for images to have a gamma of + less than 1. There are three good reasons for this: + + * For reasons detailed in Gamma Tutorial (Chapter 13), all + video cameras apply a "gamma correction" function to the + intensity information. This causes the video signal to have + a gamma of about 0.5 relative to the light intensity in the + original scene. Thus, images obtained by frame-grabbing + video already have a gamma of about 0.5. + * The human eye has a nonlinear response to intensity, so + linear encoding of samples either wastes sample codes in + bright areas of the image, or provides too few sample codes + to avoid banding artifacts in dark areas of the image, or + both. At least 12 bits per sample are needed to avoid + + + +Boutell, et. al. Informational [Page 73] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + visible artifacts in linear encoding with a 100:1 image + intensity range. An image gamma in the range 0.3 to 0.5 + allocates sample values in a way that roughly corresponds to + the eye's response, so that 8 bits/sample are enough to + avoid artifacts caused by insufficient sample precision in + almost all images. This makes "gamma encoding" a much + better way of storing digital images than the simpler linear + encoding. + * Many images are created on PCs or workstations with no gamma + correction hardware and no software willing to provide gamma + correction either. In these cases, the images have had + their lighting and color chosen to look best on this + platform --- they can be thought of as having "manual" gamma + correction built in. To see what the image author intended, + it is necessary to treat such images as having a file_gamma + value in the range 0.4-0.6, depending on the room lighting + level that the author was working in. + + In practice, image gamma values around 1.0 and around 0.5 are both + widely found. Older image standards such as GIF often do not + account for this fact. The JFIF standard specifies that images in + that format should use linear samples, but many JFIF images found + on the Internet actually have a gamma somewhere near 0.4 or 0.5. + The variety of images found and the variety of systems that people + display them on have led to widespread problems with images + appearing "too dark" or "too light". + + PNG expects viewers to compensate for image gamma at the time that + the image is displayed. Another possible approach is to expect + encoders to convert all images to a uniform gamma at encoding + time. While that method would speed viewers slightly, it has + fundamental flaws: + + * Gamma correction is inherently lossy due to quantization and + roundoff error. Requiring conversion at encoding time thus + causes irreversible loss. Since PNG is intended to be a + lossless storage format, this is undesirable; we should + store unmodified source data. + * The encoder might not know the source gamma value. If the + decoder does gamma correction at viewing time, it can adjust + the gamma (change the displayed brightness) in response to + feedback from a human user. The encoder has no such + recourse. + * Whatever "standard" gamma we settled on would be wrong for + some displays. Hence viewers would still need gamma + correction capability. + + + + + +Boutell, et. al. Informational [Page 74] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Since there will always be images with no gamma or an incorrect + recorded gamma, good viewers will need to incorporate gamma + adjustment code anyway. Gamma correction at viewing time is thus + the right way to go. + + See Gamma Tutorial (Chapter 13) for more information. + + 12.8. Non-premultiplied alpha + + PNG uses "unassociated" or "non-premultiplied" alpha so that + images with separate transparency masks can be stored losslessly. + Another common technique, "premultiplied alpha", stores pixel + values premultiplied by the alpha fraction; in effect, the image + is already composited against a black background. Any image data + hidden by the transparency mask is irretrievably lost by that + method, since multiplying by a zero alpha value always produces + zero. + + Some image rendering techniques generate images with premultiplied + alpha (the alpha value actually represents how much of the pixel + is covered by the image). This representation can be converted to + PNG by dividing the sample values by alpha, except where alpha is + zero. The result will look good if displayed by a viewer that + handles alpha properly, but will not look very good if the viewer + ignores the alpha channel. + + Although each form of alpha storage has its advantages, we did not + want to require all PNG viewers to handle both forms. We + standardized on non-premultiplied alpha as being the lossless and + more general case. + + 12.9. Filtering + + PNG includes filtering capability because filtering can + significantly reduce the compressed size of truecolor and + grayscale images. Filtering is also sometimes of value on + indexed-color images, although this is less common. + + The filter algorithms are defined to operate on bytes, rather than + pixels; this gains simplicity and speed with very little cost in + compression performance. Tests have shown that filtering is + usually ineffective for images with fewer than 8 bits per sample, + so providing pixelwise filtering for such images would be + pointless. For 16 bit/sample data, bytewise filtering is nearly + as effective as pixelwise filtering, because MSBs are predicted + from adjacent MSBs, and LSBs are predicted from adjacent LSBs. + + + + + +Boutell, et. al. Informational [Page 75] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The encoder is allowed to change filters for each new scanline. + This creates no additional complexity for decoders, since a + decoder is required to contain defiltering logic for every filter + type anyway. The only cost is an extra byte per scanline in the + pre-compression datastream. Our tests showed that when the same + filter is selected for all scanlines, this extra byte compresses + away to almost nothing, so there is little storage cost compared + to a fixed filter specified for the whole image. And the + potential benefits of adaptive filtering are too great to ignore. + Even with the simplistic filter-choice heuristics so far + discovered, adaptive filtering usually outperforms fixed filters. + In particular, an adaptive filter can change behavior for + successive passes of an interlaced image; a fixed filter cannot. + + 12.10. Text strings + + Most graphics file formats include the ability to store some + textual information along with the image. But many applications + need more than that: they want to be able to store several + identifiable pieces of text. For example, a database using PNG + files to store medical X-rays would likely want to include + patient's name, doctor's name, etc. A simple way to do this in + PNG would be to invent new private chunks holding text. The + disadvantage of such an approach is that other applications would + have no idea what was in those chunks, and would simply ignore + them. Instead, we recommend that textual information be stored in + standard tEXt chunks with suitable keywords. Use of tEXt tells + any PNG viewer that the chunk contains text that might be of + interest to a human user. Thus, a person looking at the file with + another viewer will still be able to see the text, and even + understand what it is if the keywords are reasonably self- + explanatory. (To this end, we recommend spelled-out keywords, not + abbreviations that will be hard for a person to understand. + Saving a few bytes on a keyword is false economy.) + + The ISO 8859-1 (Latin-1) character set was chosen as a compromise + between functionality and portability. Some platforms cannot + display anything more than 7-bit ASCII characters, while others + can handle characters beyond the Latin-1 set. We felt that + Latin-1 represents a widely useful and reasonably portable + character set. Latin-1 is a direct subset of character sets + commonly used on popular platforms such as Microsoft Windows and X + Windows. It can also be handled on Macintosh systems with a + simple remapping of characters. + + There is presently no provision for text employing character sets + other than Latin-1. We recognize that the need for other character + sets will increase. However, PNG already requires that + + + +Boutell, et. al. Informational [Page 76] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + programmers implement a number of new and unfamiliar features, and + text representation is not PNG's primary purpose. Since PNG + provides for the creation and public registration of new ancillary + chunks of general interest, we expect that text chunks for other + character sets, such as Unicode, eventually will be registered and + increase gradually in popularity. + + 12.11. PNG file signature + + The first eight bytes of a PNG file always contain the following + values: + + (decimal) 137 80 78 71 13 10 26 10 + (hexadecimal) 89 50 4e 47 0d 0a 1a 0a + (ASCII C notation) \211 P N G \r \n \032 \n + + This signature both identifies the file as a PNG file and provides + for immediate detection of common file-transfer problems. The + first two bytes distinguish PNG files on systems that expect the + first two bytes to identify the file type uniquely. The first + byte is chosen as a non-ASCII value to reduce the probability that + a text file may be misrecognized as a PNG file; also, it catches + bad file transfers that clear bit 7. Bytes two through four name + the format. The CR-LF sequence catches bad file transfers that + alter newline sequences. The control-Z character stops file + display under MS-DOS. The final line feed checks for the inverse + of the CR-LF translation problem. + + A decoder may further verify that the next eight bytes contain an + IHDR chunk header with the correct chunk length; this will catch + bad transfers that drop or alter null (zero) bytes. + + Note that there is no version number in the signature, nor indeed + anywhere in the file. This is intentional: the chunk mechanism + provides a better, more flexible way to handle format extensions, + as explained in Chunk naming conventions (Section 12.13). + + 12.12. Chunk layout + + The chunk design allows decoders to skip unrecognized or + uninteresting chunks: it is simply necessary to skip the + appropriate number of bytes, as determined from the length field. + + Limiting chunk length to (2^31)-1 bytes avoids possible problems + for implementations that cannot conveniently handle 4-byte + unsigned values. In practice, chunks will usually be much shorter + than that anyway. + + + + +Boutell, et. al. Informational [Page 77] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + A separate CRC is provided for each chunk in order to detect + badly-transferred images as quickly as possible. In particular, + critical data such as the image dimensions can be validated before + being used. + + The chunk length is excluded from the CRC so that the CRC can be + calculated as the data is generated; this avoids a second pass + over the data in cases where the chunk length is not known in + advance. Excluding the length from the CRC does not create any + extra risk of failing to discover file corruption, since if the + length is wrong, the CRC check will fail: the CRC will be computed + on the wrong set of bytes and then be tested against the wrong + value from the file. + + 12.13. Chunk naming conventions + + The chunk naming conventions allow safe, flexible extension of the + PNG format. This mechanism is much better than a format version + number, because it works on a feature-by-feature basis rather than + being an overall indicator. Decoders can process newer files if + and only if the files use no unknown critical features (as + indicated by finding unknown critical chunks). Unknown ancillary + chunks can be safely ignored. We decided against having an + overall format version number because experience has shown that + format version numbers hurt portability as much as they help. + Version numbers tend to be set unnecessarily high, leading to + older decoders rejecting files that they could have processed + (this was a serious problem for several years after the GIF89 spec + came out, for example). Furthermore, private extensions can be + made either critical or ancillary, and standard decoders should + react appropriately; overall version numbers are no help for + private extensions. + + A hypothetical chunk for vector graphics would be a critical + chunk, since if ignored, important parts of the intended image + would be missing. A chunk carrying the Mandelbrot set coordinates + for a fractal image would be ancillary, since other applications + could display the image without understanding what the image + represents. In general, a chunk type should be made critical only + if it is impossible to display a reasonable representation of the + intended image without interpreting that chunk. + + + + + + + + + + +Boutell, et. al. Informational [Page 78] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The public/private property bit ensures that any newly defined + public chunk type name cannot conflict with proprietary chunks + that could be in use somewhere. However, this does not protect + users of private chunk names from the possibility that someone + else may use the same chunk name for a different purpose. It is a + good idea to put additional identifying information at the start + of the data for any private chunk type. + + When a PNG file is modified, certain ancillary chunks may need to + be changed to reflect changes in other chunks. For example, a + histogram chunk needs to be changed if the image data changes. If + the file editor does not recognize histogram chunks, copying them + blindly to a new output file is incorrect; such chunks should be + dropped. The safe/unsafe property bit allows ancillary chunks to + be marked appropriately. + + Not all possible modification scenarios are covered by the + safe/unsafe semantics. In particular, chunks that are dependent + on the total file contents are not supported. (An example of such + a chunk is an index of IDAT chunk locations within the file: + adding a comment chunk would inadvertently break the index.) + Definition of such chunks is discouraged. If absolutely necessary + for a particular application, such chunks can be made critical + chunks, with consequent loss of portability to other applications. + In general, ancillary chunks can depend on critical chunks but not + on other ancillary chunks. It is expected that mutually dependent + information should be put into a single chunk. + + In some situations it may be unavoidable to make one ancillary + chunk dependent on another. Although the chunk property bits are + insufficient to represent this case, a simple solution is + available: in the dependent chunk, record the CRC of the chunk + depended on. It can then be determined whether that chunk has + been changed by some other program. + + The same technique can be useful for other purposes. For example, + if a program relies on the palette being in a particular order, it + can store a private chunk containing the CRC of the PLTE chunk. + If this value matches when the file is again read in, then it + provides high confidence that the palette has not been tampered + with. Note that it is not necessary to mark the private chunk + unsafe-to-copy when this technique is used; thus, such a private + chunk can survive other editing of the file. + + + + + + + + +Boutell, et. al. Informational [Page 79] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + 12.14. Palette histograms + + A viewer may not be able to provide as many colors as are listed + in the image's palette. (For example, some colors could be + reserved by a window system.) To produce the best results in this + situation, it is helpful to have information about the frequency + with which each palette index actually appears, in order to choose + the best palette for dithering or to drop the least-used colors. + Since images are often created once and viewed many times, it + makes sense to calculate this information in the encoder, although + it is not mandatory for the encoder to provide it. + + Other image formats have usually addressed this problem by + specifying that the palette entries should appear in order of + frequency of use. That is an inferior solution, because it + doesn't give the viewer nearly as much information: the viewer + can't determine how much damage will be done by dropping the last + few colors. Nor does a sorted palette give enough information to + choose a target palette for dithering, in the case that the viewer + needs to reduce the number of colors substantially. A palette + histogram provides the information needed to choose such a target + palette without making a pass over the image data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 80] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +13. Appendix: Gamma Tutorial + + (This appendix is not part of the formal PNG specification.) + + It would be convenient for graphics programmers if all of the + components of an imaging system were linear. The voltage coming from + an electronic camera would be directly proportional to the intensity + (power) of light in the scene, the light emitted by a CRT would be + directly proportional to its input voltage, and so on. However, + real-world devices do not behave in this way. All CRT displays, + almost all photographic film, and many electronic cameras have + nonlinear signal-to-light-intensity or intensity-to-signal + characteristics. + + Fortunately, all of these nonlinear devices have a transfer function + that is approximated fairly well by a single type of mathematical + function: a power function. This power function has the general + equation + + output = input ^ gamma + + where ^ denotes exponentiation, and "gamma" (often printed using the + Greek letter gamma, thus the name) is simply the exponent of the + power function. + + By convention, "input" and "output" are both scaled to the range + 0..1, with 0 representing black and 1 representing maximum white (or + red, etc). Normalized in this way, the power function is completely + described by a single number, the exponent "gamma". + + So, given a particular device, we can measure its output as a + function of its input, fit a power function to this measured transfer + function, extract the exponent, and call it gamma. We often say + "this device has a gamma of 2.5" as a shorthand for "this device has + a power-law response with an exponent of 2.5". We can also talk + about the gamma of a mathematical transform, or of a lookup table in + a frame buffer, so long as the input and output of the thing are + related by the power-law expression above. + + How do gammas combine? + + Real imaging systems will have several components, and more than + one of these can be nonlinear. If all of the components have + transfer characteristics that are power functions, then the + transfer function of the entire system is also a power function. + The exponent (gamma) of the whole system's transfer function is + just the product of all of the individual exponents (gammas) of + the separate stages in the system. + + + +Boutell, et. al. Informational [Page 81] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Also, stages that are linear pose no problem, since a power + function with an exponent of 1.0 is really a linear function. So + a linear transfer function is just a special case of a power + function, with a gamma of 1.0. + + Thus, as long as our imaging system contains only stages with + linear and power-law transfer functions, we can meaningfully talk + about the gamma of the entire system. This is indeed the case + with most real imaging systems. + + What should overall gamma be? + + If the overall gamma of an imaging system is 1.0, its output is + linearly proportional to its input. This means that the ratio + between the intensities of any two areas in the reproduced image + will be the same as it was in the original scene. It might seem + that this should always be the goal of an imaging system: to + accurately reproduce the tones of the original scene. Alas, that + is not the case. + + When the reproduced image is to be viewed in "bright surround" + conditions, where other white objects nearby in the room have + about the same brightness as white in the image, then an overall + gamma of 1.0 does indeed give real-looking reproduction of a + natural scene. Photographic prints viewed under room light and + computer displays in bright room light are typical "bright + surround" viewing conditions. + + However, sometimes images are intended to be viewed in "dark + surround" conditions, where the room is substantially black except + for the image. This is typical of the way movies and slides + (transparencies) are viewed by projection. Under these + circumstances, an accurate reproduction of the original scene + results in an image that human viewers judge as "flat" and lacking + in contrast. It turns out that the projected image needs to have + a gamma of about 1.5 relative to the original scene for viewers to + judge it "natural". Thus, slide film is designed to have a gamma + of about 1.5, not 1.0. + + There is also an intermediate condition called "dim surround", + where the rest of the room is still visible to the viewer, but is + noticeably darker than the reproduced image itself. This is + typical of television viewing, at least in the evening, as well as + subdued-light computer work areas. In dim surround conditions, + the reproduced image needs to have a gamma of about 1.25 relative + to the original scene in order to look natural. + + + + + +Boutell, et. al. Informational [Page 82] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The requirement for boosted contrast (gamma) in dark surround + conditions is due to the way the human visual system works, and + applies equally well to computer monitors. Thus, a PNG viewer + trying to achieve the maximum realism for the images it displays + really needs to know what the room lighting conditions are, and + adjust the gamma of the displayed image accordingly. + + If asking the user about room lighting conditions is inappropriate + or too difficult, just assume that the overall gamma + (viewing_gamma as defined below) should be 1.0 or 1.25. That's + all that most systems that implement gamma correction do. + + What is a CRT's gamma? + + All CRT displays have a power-law transfer characteristic with a + gamma of about 2.5. This is due to the physical processes + involved in controlling the electron beam in the electron gun, and + has nothing to do with the phosphor. + + An exception to this rule is fancy "calibrated" CRTs that have + internal electronics to alter their transfer function. If you + have one of these, you probably should believe what the + manufacturer tells you its gamma is. But in all other cases, + assuming 2.5 is likely to be pretty accurate. + + There are various images around that purport to measure gamma, + usually by comparing the intensity of an area containing + alternating white and black with a series of areas of continuous + gray of different intensity. These are usually not reliable. + Test images that use a "checkerboard" pattern of black and white + are the worst, because a single white pixel will be reproduced + considerably darker than a large area of white. An image that + uses alternating black and white horizontal lines (such as the + "gamma.png" test image at + ftp://ftp.uu.net/graphics/png/images/suite/gamma.png) is much + better, but even it may be inaccurate at high "picture" settings + on some CRTs. + + If you have a good photometer, you can measure the actual light + output of a CRT as a function of input voltage and fit a power + function to the measurements. However, note that this procedure + is very sensitive to the CRT's black level adjustment, somewhat + sensitive to its picture adjustment, and also affected by ambient + light. Furthermore, CRTs spread some light from bright areas of + an image into nearby darker areas; a single bright spot against a + black background may be seen to have a "halo". Your measuring + technique will need to minimize the effects of this. + + + + +Boutell, et. al. Informational [Page 83] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Because of the difficulty of measuring gamma, using either test + images or measuring equipment, you're usually better off just + assuming gamma is 2.5 rather than trying to measure it. + + What is gamma correction? + + A CRT has a gamma of 2.5, and we can't change that. To get an + overall gamma of 1.0 (or somewhere near that) for an imaging + system, we need to have at least one other component of the "image + pipeline" that is nonlinear. If, in fact, there is only one + nonlinear stage in addition to the CRT, then it's traditional to + say that the CRT has a certain gamma, and that the other nonlinear + stage provides "gamma correction" to compensate for the CRT. + However, exactly where the "correction" is done depends on + circumstance. + + In all broadcast video systems, gamma correction is done in the + camera. This choice was made in the days when television + electronics were all analog, and a good gamma-correction circuit + was expensive to build. The original NTSC video standard required + cameras to have a transfer function with a gamma of 1/2.2, or + about 0.45. Recently, a more complex two-part transfer function + has been adopted [SMPTE-170M], but its behavior can be well + approximated by a power function with a gamma of 0.5. When the + resulting image is displayed on a CRT with a gamma of 2.5, the + image on screen ends up with a gamma of about 1.25 relative to the + original scene, which is appropriate for "dim surround" viewing. + + These days, video signals are often digitized and stored in + computer frame buffers. This works fine, but remember that gamma + correction is "built into" the video signal, and so the digitized + video has a gamma of about 0.5 relative to the original scene. + + Computer rendering programs often produce linear samples. To + display these correctly, intensity on the CRT needs to be directly + proportional to the sample values in the frame buffer. This can + be done with a special hardware lookup table between the frame + buffer and the CRT hardware. The lookup table (often called LUT) + is loaded with a mapping that implements a power function with a + gamma of 0.4, thus providing "gamma correction" for the CRT gamma. + + Thus, gamma correction sometimes happens before the frame buffer, + sometimes after. As long as images created in a particular + environment are always displayed in that environment, everything + is fine. But when people try to exchange images, differences in + gamma correction conventions often result in images that seem far + too bright and washed out, or far too dark and contrasty. + + + + +Boutell, et. al. Informational [Page 84] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Gamma-encoded samples are good + + So, is it better to do gamma correction before or after the frame + buffer? + + In an ideal world, sample values would be stored in floating + point, there would be lots of precision, and it wouldn't really + matter much. But in reality, we're always trying to store images + in as few bits as we can. + + If we decide to use samples that are linearly proportional to + intensity, and do the gamma correction in the frame buffer LUT, it + turns out that we need to use at least 12 bits for each of red, + green, and blue to have enough precision in intensity. With any + less than that, we will sometimes see "contour bands" or "Mach + bands" in the darker areas of the image, where two adjacent sample + values are still far enough apart in intensity for the difference + to be visible. + + However, through an interesting coincidence, the human eye's + subjective perception of brightness is related to the physical + stimulation of light intensity in a manner that is very much like + the power function used for gamma correction. If we apply gamma + correction to measured (or calculated) light intensity before + quantizing to an integer for storage in a frame buffer, we can get + away with using many fewer bits to store the image. In fact, 8 + bits per color is almost always sufficient to avoid contouring + artifacts. This is because, since gamma correction is so closely + related to human perception, we are assigning our 256 available + sample codes to intensity values in a manner that approximates how + visible those intensity changes are to the eye. Compared to a + linear-sample image, we allocate fewer sample values to brighter + parts of the tonal range and more sample values to the darker + portions of the tonal range. + + Thus, for the same apparent image quality, images using gamma- + encoded sample values need only about two-thirds as many bits of + storage as images using linear samples. + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 85] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + General gamma handling + + When more than two nonlinear transfer functions are involved in + the image pipeline, the term "gamma correction" becomes too vague. + If we consider a pipeline that involves capturing (or calculating) + an image, storing it in an image file, reading the file, and + displaying the image on some sort of display screen, there are at + least 5 places in the pipeline that could have nonlinear transfer + functions. Let's give each a specific name for their + characteristic gamma: + + camera_gamma + the characteristic of the image sensor + + encoding_gamma + the gamma of any transformation performed by the software + writing the image file + + decoding_gamma + the gamma of any transformation performed by the software + reading the image file + + LUT_gamma + the gamma of the frame buffer LUT, if present + + CRT_gamma + the gamma of the CRT, generally 2.5 + + In addition, let's add a few other names: + + file_gamma + the gamma of the image in the file, relative to the original + scene. This is + + file_gamma = camera_gamma * encoding_gamma + + display_gamma + the gamma of the "display system" downstream of the frame + buffer. This is + + display_gamma = LUT_gamma * CRT_gamma + + viewing_gamma + the overall gamma that we want to obtain to produce pleasing + images --- generally 1.0 to 1.5. + + + + + + +Boutell, et. al. Informational [Page 86] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The file_gamma value, as defined above, is what goes in the gAMA + chunk in a PNG file. If file_gamma is not 1.0, we know that gamma + correction has been done on the sample values in the file, and we + could call them "gamma corrected" samples. However, since there + can be so many different values of gamma in the image display + chain, and some of them are not known at the time the image is + written, the samples are not really being "corrected" for a + specific display condition. We are really using a power function + in the process of encoding an intensity range into a small integer + field, and so it is more correct to say "gamma encoded" samples + instead of "gamma corrected" samples. + + When displaying an image file, the image decoding program is + responsible for making the overall gamma of the system equal to + the desired viewing_gamma, by selecting the decoding_gamma + appropriately. When displaying a PNG file, the gAMA chunk + provides the file_gamma value. The display_gamma may be known for + this machine, or it might be obtained from the system software, or + the user might have to be asked what it is. The correct + viewing_gamma depends on lighting conditions, and that will + generally have to come from the user. + + Ultimately, you should have + + file_gamma * decoding_gamma * display_gamma = viewing_gamma + + Some specific examples + + In digital video systems, camera_gamma is about 0.5 by declaration + of the various video standards documents. CRT_gamma is 2.5 as + usual, while encoding_gamma, decoding_gamma, and LUT_gamma are all + 1.0. As a result, viewing_gamma ends up being about 1.25. + + On frame buffers that have hardware gamma correction tables, and + that are calibrated to display linear samples correctly, + display_gamma is 1.0. + + Many workstations and X terminals and PC displays lack gamma + correction lookup tables. Here, LUT_gamma is always 1.0, so + display_gamma is 2.5. + + + + + + + + + + + +Boutell, et. al. Informational [Page 87] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + On the Macintosh, there is a LUT. By default, it is loaded with a + table whose gamma is about 0.72, giving a display_gamma (LUT and + CRT combined) of about 1.8. Some Macs have a "Gamma" control + panel that allows gamma to be changed to 1.0, 1.2, 1.4, 1.8, or + 2.2. These settings load alternate LUTs that are designed to give + a display_gamma that is equal to the label on the selected button. + Thus, the "Gamma" control panel setting can be used directly as + display_gamma in decoder calculations. + + On recent SGI systems, there is a hardware gamma-correction table + whose contents are controlled by the (privileged) "gamma" program. + The gamma of the table is actually the reciprocal of the number + that "gamma" prints, and it does not include the CRT gamma. To + obtain the display_gamma, you need to find the SGI system gamma + (either by looking in a file, or asking the user) and then + calculating + + display_gamma = 2.5 / SGI_system_gamma + + You will find SGI systems with the system gamma set to 1.0 and 2.2 + (or higher), but the default when machines are shipped is 1.7. + + A note about video gamma + + The original NTSC video standards specified a simple power-law + camera transfer function with a gamma of 1/2.2 or 0.45. This is + not possible to implement exactly in analog hardware because the + function has infinite slope at x=0, so all cameras deviated to + some degree from this ideal. More recently, a new camera transfer + function that is physically realizable has been accepted as a + standard [SMPTE-170M]. It is + + Vout = 4.5 * Vin if Vin < 0.018 + Vout = 1.099 * (Vin^0.45) - 0.099 if Vin >= 0.018 + + where Vin and Vout are measured on a scale of 0 to 1. Although + the exponent remains 0.45, the multiplication and subtraction + change the shape of the transfer function, so it is no longer a + pure power function. If you want to perform extremely precise + calculations on video signals, you should use the expression above + (or its inverse, as required). + + However, PNG does not provide a way to specify that an image uses + this exact transfer function; the gAMA chunk always assumes a pure + power-law function. If we plot the two-part transfer function + above along with the family of pure power functions, we find that + a power function with a gamma of about 0.5 to 0.52 (not 0.45) most + closely approximates the transfer function. Thus, when writing a + + + +Boutell, et. al. Informational [Page 88] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + PNG file with data obtained from digitizing the output of a modern + video camera, the gAMA chunk should contain 0.5 or 0.52, not 0.45. + The remaining difference between the true transfer function and + the power function is insignificant for almost all purposes. (In + fact, the alignment errors in most cameras are likely to be larger + than the difference between these functions.) The designers of + PNG deemed the simplicity and flexibility of a power-law + definition of gAMA to be more important than being able to + describe the SMPTE-170M transfer curve exactly. + + The PAL and SECAM video standards specify a power-law camera + transfer function with a gamma of 1/2.8 or 0.36 --- not the 1/2.2 + of NTSC. However, this is too low in practice, so real cameras + are likely to have their gamma set close to NTSC practice. Just + guessing 0.45 or 0.5 is likely to give you viewable results, but + if you want precise values you'll probably have to measure the + particular camera. + + Further reading + + If you have access to the World Wide Web, read Charles Poynton's + excellent "Gamma FAQ" [GAMMA-FAQ] for more information about + gamma. + +14. Appendix: Color Tutorial + + (This appendix is not part of the formal PNG specification.) + + About chromaticity + + The cHRM chunk is used, together with the gAMA chunk, to convey + precise color information so that a PNG image can be displayed or + printed with better color fidelity than is possible without this + information. The preceding chapters state how this information is + encoded in a PNG image. This tutorial briefly outlines the + underlying color theory for those who might not be familiar with + it. + + Note that displaying an image with incorrect gamma will produce + much larger color errors than failing to use the chromaticity + data. First be sure the monitor set-up and gamma correction are + right, then worry about chromaticity. + + The problem + + The color of an object depends not only on the precise spectrum of + light emitted or reflected from it, but also on the observer --- + their species, what else they can see at the same time, even what + + + +Boutell, et. al. Informational [Page 89] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + they have recently looked at! Furthermore, two very different + spectra can produce exactly the same color sensation. Color is + not an objective property of real-world objects; it is a + subjective, biological sensation. However, by making some + simplifying assumptions (such as: we are talking about human + vision) it is possible to produce a mathematical model of color + and thereby obtain good color accuracy. + + Device-dependent color + + Display the same RGB data on three different monitors, side by + side, and you will get a noticeably different color balance on + each display. This is because each monitor emits a slightly + different shade and intensity of red, green, and blue light. RGB + is an example of a device-dependent color model --- the color you + get depends on the device. This also means that a particular + color --- represented as say RGB 87, 146, 116 on one monitor --- + might have to be specified as RGB 98, 123, 104 on another to + produce the same color. + + Device-independent color + + A full physical description of a color would require specifying + the exact spectral power distribution of the light source. + Fortunately, the human eye and brain are not so sensitive as to + require exact reproduction of a spectrum. Mathematical, device- + independent color models exist that describe fairly well how a + particular color will be seen by humans. The most important + device-independent color model, to which all others can be + related, was developed by the International Lighting Committee + (CIE, in French) and is called XYZ. + + In XYZ, X is the sum of a weighted power distribution over the + whole visible spectrum. So are Y and Z, each with different + weights. Thus any arbitrary spectral power distribution is + condensed down to just three floating point numbers. The weights + were derived from color matching experiments done on human + subjects in the 1920s. CIE XYZ has been an International Standard + since 1931, and it has a number of useful properties: + + * two colors with the same XYZ values will look the same to + humans + * two colors with different XYZ values will not look the same + * the Y value represents all the brightness information + (luminance) + * the XYZ color of any object can be objectively measured + + + + + +Boutell, et. al. Informational [Page 90] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Color models based on XYZ have been used for many years by people + who need accurate control of color --- lighting engineers for film + and TV, paint and dyestuffs manufacturers, and so on. They are + thus proven in industrial use. Accurate, device-independent color + started to spread from high-end, specialized areas into the + mainstream during the late 1980s and early 1990s, and PNG takes + notice of that trend. + + Calibrated, device-dependent color + + Traditionally, image file formats have used uncalibrated, device- + dependent color. If the precise details of the original display + device are known, it becomes possible to convert the device- + dependent colors of a particular image to device-independent ones. + Making simplifying assumptions, such as working with CRTs (which + are much easier than printers), all we need to know are the XYZ + values of each primary color and the CRT_gamma. + + So why does PNG not store images in XYZ instead of RGB? Well, two + reasons. First, storing images in XYZ would require more bits of + precision, which would make the files bigger. Second, all + programs would have to convert the image data before viewing it. + Whether calibrated or not, all variants of RGB are close enough + that undemanding viewers can get by with simply displaying the + data without color correction. By storing calibrated RGB, PNG + retains compatibility with existing programs that expect RGB data, + yet provides enough information for conversion to XYZ in + applications that need precise colors. Thus, we get the best of + both worlds. + + What are chromaticity and luminance? + + Chromaticity is an objective measurement of the color of an + object, leaving aside the brightness information. Chromaticity + uses two parameters x and y, which are readily calculated from + XYZ: + + x = X / (X + Y + Z) + y = Y / (X + Y + Z) + + XYZ colors having the same chromaticity values will appear to have + the same hue but can vary in absolute brightness. Notice that x,y + are dimensionless ratios, so they have the same values no matter + what units we've used for X,Y,Z. + + + + + + + +Boutell, et. al. Informational [Page 91] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The Y value of an XYZ color is directly proportional to its + absolute brightness and is called the luminance of the color. We + can describe a color either by XYZ coordinates or by chromaticity + x,y plus luminance Y. The XYZ form has the advantage that it is + linearly related to (linear, gamma=1.0) RGB color spaces. + + How are computer monitor colors described? + + The "white point" of a monitor is the chromaticity x,y of the + monitor's nominal white, that is, the color produced when + R=G=B=maximum. + + It's customary to specify monitor colors by giving the + chromaticities of the individual phosphors R, G, and B, plus the + white point. The white point allows one to infer the relative + brightnesses of the three phosphors, which isn't determined by + their chromaticities alone. + + Note that the absolute brightness of the monitor is not specified. + For computer graphics work, we generally don't care very much + about absolute brightness levels. Instead of dealing with + absolute XYZ values (in which X,Y,Z are expressed in physical + units of radiated power, such as candelas per square meter), it is + convenient to work in "relative XYZ" units, where the monitor's + nominal white is taken to have a luminance (Y) of 1.0. Given this + assumption, it's simple to compute XYZ coordinates for the + monitor's white, red, green, and blue from their chromaticity + values. + + Why does cHRM use x,y rather than XYZ? Simply because that is how + manufacturers print the information in their spec sheets! + Usually, the first thing a program will do is convert the cHRM + chromaticities into relative XYZ space. + + What can I do with it? + + If a PNG file has the gAMA and cHRM chunks, the source_RGB values + can be converted to XYZ. This lets you: + + * do accurate grayscale conversion (just use the Y component) + * convert to RGB for your own monitor (to see the original + colors) + * print the image in Level 2 PostScript with better color + fidelity than a simple RGB to CMYK conversion could provide + * calculate an optimal color palette + * pass the image data to a color management system + * etc. + + + + +Boutell, et. al. Informational [Page 92] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + How do I convert from source_RGB to XYZ? + + Make a few simplifying assumptions first, like the monitor really + is jet black with no input and the guns don't interfere with one + another. Then, given that you know the CIE XYZ values for each of + red, green, and blue for a particular monitor, you put them into a + matrix m: + + Xr Xg Xb + m = Yr Yg Yb + Zr Zg Zb + + Here we assume we are working with linear RGB floating point data + in the range 0..1. If the gamma is not 1.0, make it so on the + floating point data. Then convert source_RGB to XYZ by matrix + multiplication: + + X R + Y = m G + Z B + + In other words, X = Xr*R + Xg*G + Xb*B, and similarly for Y and Z. + You can go the other way too: + + R X + G = im Y + B Z + + where im is the inverse of the matrix m. + + What is a gamut? + + The gamut of a device is the subset of visible colors which that + device can display. (It has nothing to do with gamma.) The gamut + of an RGB device can be visualized as a polyhedron in XYZ space; + the vertices correspond to the device's black, blue, red, green, + magenta, cyan, yellow and white. + + Different devices have different gamuts, in other words one device + will be able to display certain colors (usually highly saturated + ones) that another device cannot. The gamut of a particular RGB + device can be determined from its R, G, and B chromaticities and + white point (the same values given in the cHRM chunk). The gamut + of a color printer is more complex and can only be determined by + measurement. However, printer gamuts are typically smaller than + monitor gamuts, meaning that there can be many colors in a + displayable image that cannot physically be printed. + + + + +Boutell, et. al. Informational [Page 93] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Converting image data from one device to another generally results + in gamut mismatches --- colors that cannot be represented exactly + on the destination device. The process of making the colors fit, + which can range from a simple clip to elaborate nonlinear scaling + transformations, is termed gamut mapping. The aim is to produce a + reasonable visual representation of the original image. + + Further reading + + References [COLOR-1] through [COLOR-5] provide more detail about + color theory. + +15. Appendix: Sample CRC Code + + The following sample code represents a practical implementation of + the CRC (Cyclic Redundancy Check) employed in PNG chunks. (See also + ISO 3309 [ISO-3309] or ITU-T V.42 [ITU-V42] for a formal + specification.) + + The sample code is in the ANSI C programming language. Non C users + may find it easier to read with these hints: + + & + Bitwise AND operator. + + ^ + Bitwise exclusive-OR operator. (Caution: elsewhere in this + document, ^ represents exponentiation.) + + >> + Bitwise right shift operator. When applied to an unsigned + quantity, as here, right shift inserts zeroes at the left. + + ! + Logical NOT operator. + + ++ + "n++" increments the variable n. + + 0xNNN + 0x introduces a hexadecimal (base 16) constant. Suffix L + indicates a long value (at least 32 bits). + + /* Table of CRCs of all 8-bit messages. */ + unsigned long crc_table[256]; + + /* Flag: has the table been computed? Initially false. */ + int crc_table_computed = 0; + + + +Boutell, et. al. Informational [Page 94] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + /* Make the table for a fast CRC. */ + void make_crc_table(void) + { + unsigned long c; + int n, k; + for (n = 0; n < 256; n++) { + c = (unsigned long) n; + for (k = 0; k < 8; k++) { + if (c & 1) + c = 0xedb88320L ^ (c >> 1); + else + c = c >> 1; + } + crc_table[n] = c; + } + crc_table_computed = 1; + } + + /* Update a running CRC with the bytes buf[0..len-1]--the CRC + should be initialized to all 1's, and the transmitted value + is the 1's complement of the final running CRC (see the + crc() routine below)). */ + + unsigned long update_crc(unsigned long crc, unsigned char *buf, + int len) + { + unsigned long c = crc; + int n; + + if (!crc_table_computed) + make_crc_table(); + for (n = 0; n < len; n++) { + c = crc_table[(c ^ buf[n]) & 0xff] ^ (c >> 8); + } + return c; + } + + /* Return the CRC of the bytes buf[0..len-1]. */ + unsigned long crc(unsigned char *buf, int len) + { + return update_crc(0xffffffffL, buf, len) ^ 0xffffffffL; + } + + + + + + + + + +Boutell, et. al. Informational [Page 95] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +16. Appendix: Online Resources + + (This appendix is not part of the formal PNG specification.) + + This appendix gives the locations of some Internet resources for PNG + software developers. By the nature of the Internet, the list is + incomplete and subject to change. + + Archive sites + + The latest released versions of this document and related + information can always be found at the PNG FTP archive site, + ftp://ftp.uu.net/graphics/png/. The PNG specification is + available in several formats, including HTML, plain text, and + PostScript. + + Reference implementation and test images + + A reference implementation in portable C is available from the PNG + FTP archive site, ftp://ftp.uu.net/graphics/png/src/. The + reference implementation is freely usable in all applications, + including commercial applications. + + Test images are available from + ftp://ftp.uu.net/graphics/png/images/. + + Electronic mail + + The maintainers of the PNG specification can be contacted by e- + mail at png-info@uunet.uu.net or at png-group@w3.org. + + PNG home page + + There is a World Wide Web home page for PNG at + http://quest.jpl.nasa.gov/PNG/. This page is a central location + for current information about PNG and PNG-related tools. + +17. Appendix: Revision History + + (This appendix is not part of the formal PNG specification.) + + The PNG format has been frozen since the Ninth Draft of March 7, + 1995, and all future changes are intended to be backwards compatible. + The revisions since the Ninth Draft are simply clarifications, + improvements in presentation, and additions of supporting material. + + On 1 October 1996, the PNG specification was approved as a W3C (World + Wide Web Consortium) Recommendation. + + + +Boutell, et. al. Informational [Page 96] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + Changes since the Tenth Draft of 5 May, 1995 + + * Clarified meaning of a suggested-palette PLTE chunk in a + truecolor image that uses transparency + * Clarified exact semantics of sBIT and allowed sample depth + scaling procedures + * Clarified status of spaces in tEXt chunk keywords + * Distinguished private and public extension values in type + and method fields + * Added a "Creation Time" tEXt keyword + * Macintosh representation of PNG specified + * Added discussion of security issues + * Added more extensive discussion of gamma and chromaticity + handling, including tutorial appendixes + * Clarified terminology, notably sample depth vs. bit depth + * Added a glossary + * Editing and reformatting + +18. References + + [COLOR-1] + Hall, Roy, Illumination and Color in Computer Generated Imagery. + Springer-Verlag, New York, 1989. ISBN 0-387-96774-5. + + [COLOR-2] + Kasson, J., and W. Plouffe, "An Analysis of Selected Computer + Interchange Color Spaces", ACM Transactions on Graphics, vol 11 no + 4 (1992), pp 373-405. + + [COLOR-3] + Lilley, C., F. Lin, W.T. Hewitt, and T.L.J. Howard, Colour in + Computer Graphics. CVCP, Sheffield, 1993. ISBN 1-85889-022-5. + Also available from + + + [COLOR-4] + Stone, M.C., W.B. Cowan, and J.C. Beatty, "Color gamut mapping and + the printing of digital images", ACM Transactions on Graphics, vol + 7 no 3 (1988), pp 249-292. + + [COLOR-5] + Travis, David, Effective Color Displays --- Theory and Practice. + Academic Press, London, 1991. ISBN 0-12-697690-2. + + [GAMMA-FAQ] + Poynton, C., "Gamma FAQ". + + + + + +Boutell, et. al. Informational [Page 97] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + [ISO-3309] + International Organization for Standardization, "Information + Processing Systems --- Data Communication High-Level Data Link + Control Procedure --- Frame Structure", IS 3309, October 1984, 3rd + Edition. + + [ISO-8859] + International Organization for Standardization, "Information + Processing --- 8-bit Single-Byte Coded Graphic Character Sets --- + Part 1: Latin Alphabet No. 1", IS 8859-1, 1987. + Also see sample files at + ftp://ftp.uu.net/graphics/png/documents/iso_8859-1.* + + [ITU-BT709] + International Telecommunications Union, "Basic Parameter Values + for the HDTV Standard for the Studio and for International + Programme Exchange", ITU-R Recommendation BT.709 (formerly CCIR + Rec. 709), 1990. + + [ITU-V42] + International Telecommunications Union, "Error-correcting + Procedures for DCEs Using Asynchronous-to-Synchronous Conversion", + ITU-T Recommendation V.42, 1994, Rev. 1. + + [PAETH] + Paeth, A.W., "Image File Compression Made Easy", in Graphics Gems + II, James Arvo, editor. Academic Press, San Diego, 1991. ISBN + 0-12-064480-0. + + [POSTSCRIPT] + Adobe Systems Incorporated, PostScript Language Reference Manual, + 2nd edition. Addison-Wesley, Reading, 1990. ISBN 0-201-18127-4. + + [PNG-EXTENSIONS] + PNG Group, "PNG Special-Purpose Public Chunks". Available in + several formats from + ftp://ftp.uu.net/graphics/png/documents/pngextensions.* + + [RFC-1123] + Braden, R., Editor, "Requirements for Internet Hosts --- + Application and Support", STD 3, RFC 1123, USC/Information + Sciences Institute, October 1989. + + + + + + + + + +Boutell, et. al. Informational [Page 98] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + [RFC-2045] + Freed, N., and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message Bodies", + RFC 2045, Innosoft, First Virtual, November 1996. + + + [RFC-2048] + Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet Mail + Extensions (MIME) Part Four: Registration Procedures", RFC 2048, + Innosoft, MCI, USC/Information Sciences Institute, November 1996. + + + [RFC-1950] + Deutsch, P. and J-L. Gailly, "ZLIB Compressed Data Format + Specification version 3.3", RFC 1950, Aladdin Enterprises, May + 1996. + + + [RFC-1951] + Deutsch, P., "DEFLATE Compressed Data Format Specification version + 1.3", RFC 1951, Aladdin Enterprises, May 1996. + + + [SMPTE-170M] + Society of Motion Picture and Television Engineers, "Television + --- Composite Analog Video Signal --- NTSC for Studio + Applications", SMPTE-170M, 1994. + + + + + + + + + + + + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 99] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + +19. Credits + + Editor + + Thomas Boutell, boutell@boutell.com + + Contributing Editor + + Tom Lane, tgl@sss.pgh.pa.us + + Authors + + Authors' names are presented in alphabetical order. + + * Mark Adler, madler@alumni.caltech.edu + * Thomas Boutell, boutell@boutell.com + * Christian Brunschen, cb@df.lth.se + * Adam M. Costello, amc@cs.berkeley.edu + * Lee Daniel Crocker, lee@piclab.com + * Andreas Dilger, adilger@enel.ucalgary.ca + * Oliver Fromme, fromme@rz.tu-clausthal.de + * Jean-loup Gailly, gzip@prep.ai.mit.edu + * Chris Herborth, chrish@qnx.com + * Alex Jakulin, Aleks.Jakulin@snet.fri.uni-lj.si + * Neal Kettler, kettler@cs.colostate.edu + * Tom Lane, tgl@sss.pgh.pa.us + * Alexander Lehmann, alex@hal.rhein-main.de + * Chris Lilley, chris@w3.org + * Dave Martindale, davem@cs.ubc.ca + * Owen Mortensen, 104707.650@compuserve.com + * Keith S. Pickens, ksp@swri.edu + * Robert P. Poole, lionboy@primenet.com + * Glenn Randers-Pehrson, glennrp@arl.mil or + randeg@alumni.rpi.edu + * Greg Roelofs, newt@pobox.com + * Willem van Schaik, willem@gintic.gov.sg + * Guy Schalnat + * Paul Schmidt, pschmidt@photodex.com + * Tim Wegner, 71320.675@compuserve.com + * Jeremy Wohl, jeremyw@anders.com + + The authors wish to acknowledge the contributions of the Portable + Network Graphics mailing list, the readers of comp.graphics, and + the members of the World Wide Web Consortium (W3C). + + + + + + + +Boutell, et. al. Informational [Page 100] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The Adam7 interlacing scheme is not patented and it is not the + intention of the originator of that scheme to patent it. The + scheme may be freely used by all PNG implementations. The name + "Adam7" may be freely used to describe interlace method 1 of the + PNG specification. + + Trademarks + + GIF is a service mark of CompuServe Incorporated. IBM PC is a + trademark of International Business Machines Corporation. + Macintosh is a trademark of Apple Computer, Inc. Microsoft and + MS-DOS are trademarks of Microsoft Corporation. PhotoCD is a + trademark of Eastman Kodak Company. PostScript and TIFF are + trademarks of Adobe Systems Incorporated. SGI is a trademark of + Silicon Graphics, Inc. X Window System is a trademark of the + Massachusetts Institute of Technology. + +COPYRIGHT NOTICE + + Copyright (c) 1996 by: Massachusetts Institute of Technology (MIT) + + This W3C specification is being provided by the copyright holders + under the following license. By obtaining, using and/or copying this + specification, you agree that you have read, understood, and will + comply with the following terms and conditions: + + Permission to use, copy, and distribute this specification for any + purpose and without fee or royalty is hereby granted, provided that + the full text of this NOTICE appears on ALL copies of the + specification or portions thereof, including modifications, that you + make. + + THIS SPECIFICATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO + REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF + EXAMPLE, BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO + REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY + PARTICULAR PURPOSE OR THAT THE USE OF THE SPECIFICATION WILL NOT + INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + RIGHTS. COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS + SPECIFICATION. + + + + + + + + + + + +Boutell, et. al. Informational [Page 101] + +RFC 2083 PNG: Portable Network Graphics March 1997 + + + The name and trademarks of copyright holders may NOT be used in + advertising or publicity pertaining to the specification without + specific, written prior permission. Title to copyright in this + specification and any associated documentation will at all times + remain with copyright holders. + +Security Considerations + + Security issues are discussed in Security considerations (Section + 8.5). + +Author's Address + + Thomas Boutell + PO Box 20837 + Seattle, WA 98102 + + Phone: (206) 329-4969 + EMail: boutell@boutell.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Boutell, et. al. Informational [Page 102] + ADDED freshlib/_doc/RectanglesListProcessing.ods Index: freshlib/_doc/RectanglesListProcessing.ods ================================================================== --- /dev/null +++ freshlib/_doc/RectanglesListProcessing.ods cannot compute difference between binary files ADDED freshlib/_doc/compiler.wiki Index: freshlib/_doc/compiler.wiki ================================================================== --- /dev/null +++ freshlib/_doc/compiler.wiki @@ -0,0 +1,34 @@ + +

FreshLib directory: compiler

+

This directory contains only one macro library: "executable.inc"

+

This library defines the macros that are going to be used for creating the main structure of the program. These macros are OS dependent as long as the type of the executable file is OS dependent: PE for Win32 and ELF for Linux.

+

Every one of the macros from this library should be used only once in the program.

+ +

FreshLib Executable macros

+

This macro library contains:

+

_BinaryType

+
macro _BinaryType type
+

This macro sets the type of the executable. The argument type can accept one of the following values: GUI, console or DLL.

+

This macro defines also the entry label of the program. This label is fixed to start:

+

For example, following code will tell the compiler to compile the program as a GUI application:

+
+include 'compiler/executable.inc'
+_BinaryType GUI
+
+ +

_CodeSection

+
macro _CodeSection
+

This macro defines the section where the code of the program to be placed.

+

Actually this section is the main section of the project. Here should be included all used libraries and other project files.

+ +

_DataSection

+
macro _DataSection
+ +

This macro defines the section where the data of the program to be placed. The common way to use this section is to use inside the macro IncludeAllGlobals that will allow you to use data defining macros from every place inside the source and leave the compiler to order this data properly for you.

+

For details on using global data definition macros see: _globals.inc

+ +

_ImportSection

+
macro _ImportSection
+

This macro defines the section where to be inserted the list with functions dynamically imported from external libraries.

+

Usually you only have to include here the library "allimports.asm" and the compiler will import for you only those functions that are used in the project.

+
ADDED freshlib/_doc/data.wiki Index: freshlib/_doc/data.wiki ================================================================== --- /dev/null +++ freshlib/_doc/data.wiki @@ -0,0 +1,286 @@ + + + +

+ FreshLib:Data:
+ Arrays
+ Strings
+

+

FreshLib directory: data

+

This directory contains data handling routines and useful data structures. Actually it contains two abstract data structures: Arrays and Strings.

+

Current implementation is fully portable: it does not contain any OS dependent code.

+

FreshLib Arrays

+

The FreshLib Arrays data structure handles dynamic arrays that contain elements of arbitrary size.

+

Structure

+

The following structure represents the header of the array. The actual array will have arbitrary size, depending on the element count and size.

+
+struct TArray
+  .count     dd ?
+  .capacity  dd ?
+  .itemsize  dd ?
+  .lparam    dd ?
+  label .array dword
+ends
+
+ +

The first element of the array begins on offset TArray.array from the begining of the memory block.

+

The field TArray.count contains the current element count of the array.

+

The field TArray.capacity contains the current capacity of the array. It is because the library usually allocates more memory than is needed for the array element count. This approach reduces memory allocations and reallocations and thus increases the speed of inserting and deleting elements in the array. How many memory will be allocated depends on the user setting of the variable ResizeIt (defined in memory.asm). This variable contains a pointer to the procedure that simply increases the value of ECX to the next suitable value.

+

The field TArray.itemsize contains the size in bytes of one array element. Changing of this value is not recommended.

+

The field TArray.lparam is for user defined parameter, associated with the array.

+ +

Procedures

+ +

CreateArray

+
+proc CreateArray, .itemSize
+
+

This procedure creates new array with item size [.ItemSize]

+

The procedure returns CF=0 if the array is properly created and pointer to the array is placed in EAX.

+

In case the memory cannot be allocated, the procedure returns CF=1.

+

The array must be freed after use. There is no special procedure for array free. Use FreeMem procedure to free array memory after use.

+ +

AddArrayItems

+
+proc AddArrayItems, .ptrArray, .count
+
+

This procedure adds new array items at the end of the array pointed by [.ptrArray]

+

The procedure returns two values:

+

EAX contains pointer to the first of the new appended elements.

+

EDX contains pointer to the array (in the process of appending of the new element, it is possible the whole array to be moved to the new address in memory, so the programmer should store the value of EDX for the future reference to the array.

+

In case, the new memory can not be allocated, the procedure returns CF=1 and EDX contains the proper pointer to the original array.

+ +

InsertArrayItems

+
+proc InsertArrayItems, .ptrArray, .iElement, .count
+
+

This procedure inserts [.count] new elements at the [.iElement] position of the array pointed by [.ptrArray]

+

If [.iElement] is larger or equal to [TArray.count] the elements are appended at the end of the array. (Just like AddArrayItems) Otherwise, all elements are moved to make room for the new elements.

+

The procedure returns exactly the same results as AddArrayItems procedure EDX points to the array and EAX points to the first of the new inserted elements.

+

CF is error flag.

+ +

DeleteArrayItems

+
+proc DeleteArrayItems, .ptrArray, .iElement, .count
+
+

This procedure deletes [.count] items with begin index [.iElement] the [.ptrArray] dynamic array. If the capacity of the array is bigger than the recommended for the new count, then the array is resized. The recommended size is calculated using ResizeIt procedure from memory library.

+

Returns EDX - pointer to the TArray. In the most cases this pointer will not be changed, but this also depends on the current OS memory allocation API, so it is safer to store the pointer for future use, instead of one passed to the procedure.

+

This procedure can not fail, because deleting element is always possible. In some rare cases it can fail to reallocate smaller memory block, but this is not a problem for the array consistency.

+ +

VacuumArray

+
+proc VacuumArray, .ptrArray
+
+

This procedure removes the reserved memory from the array in order to make it as small as possible. This operation should be executed only if there will be no more inserts in the array. The memory economized this way depends on reallocation strategy and can be from 25 to 100% in some cases.

+ +

ListIndexOf

+
+proc ListIndexOf, .ptrList, .Item
+
+

The list is a special case of array with item size equal to 4 bytes (dword). This procedure searches the list [.ptrList] for item equal to [.Item] and returns the index of the element in EAX. In case of error CF=1.

+ +

ListFree

+
+proc ListFree, .ptrList, .FreeProc
+
+

Frees all elements of the list [.ptrList], calling [.FreeProc] for every element of the list.

+

FreeProc callback procedure have one argument of type dword that is the value of the current list element. The definition of the callback procedure is similar to following:

+
+proc FreeMyListItem, .ptrItem
+begin
+	;do something with the item being freed
+	return
+endp
+
+ +

FreshLib Strings

+

Using strings in assembler was often problematic for programmers - static strings can't be resized, so they had to reserve as many bytes as they thought user could need, and it still could be not enough. Thus we created StrLib - a library that operates on dynamic strings, that are automatically resized when needed. Also, StrLib contains many functions that perform string comparison, inserting one string into another, and more. And most of this functions can operate on static strings too. StrLib uses "memory.asm" library for memory allocations and does not contains any OS dependent code.

+

FreshLib Strings uses FreshLib Arrays to handle the list with pointers to allocated string memory.

+ +

StrLib string format

+

The strings used in StrLib are implemented using a specific structure, compatible but not equal to AsciiZ, used by Windows API. The string structure is defined in the following way:

+
+struc string {
+  .capacity dd ?
+  .len      dd ?
+  label .data byte
+}
+
+virtual at -(sizeof.string)
+  string string
+  sizeof.string = $-string
+end virtual
+
+ +

The string data is placed on offset 0 to the pointer of the string. Its label is "string.data". The string data always is terminated by at least one zero byte and the length of the memory buffer is always dword aligned. +It is safe to process the string data by dword instructions.

+

On offset [string-4] is located a dword field, that contains the length of the string data, not including the terminating zero bytes.

+

On offset [string-8] is located a dword with the capacity of the memory allocated for the string.

+

These fields are accessible by its symbolic names: string.len and string.capacity; This fields are for internal use only it is not safe for the user to change the values of these fields.

+

Using special field that to keep the length of the string makes some of the string operations extremely fast, because searching for the terminating zero is very slow operation.

+

All procedures in StrLib compute the proper value for [.len] field and never search for the terminating zeros, except for the AsciiZ strings that are external towards StrLib those returned from the OS API functions or by string constants in memory.

+ +

StrLib string handles

+

The string in StrLib is identified not with its pointer, but by a handle. While the pointer can be changed when the string memory is reallocated, the handle is always a constant for the whole life cycle of the string.

+

There is a procedure that extracts the current pointer of the string by its handle.

+

Because handle values never collides with memory addresses, almost all StrLib procedures can work with handles and with memory pointers at the same time.

+

For the strings passed to the procedures with memory pointer, StrLib assumes they are static strings from memory, or returned from the OS.

+

Because of this assumption, StrLib process these strings safely and slowly scans the string to determine the length, assumes it is byte aligned etc. In other words it process it as a standard AsciiZ string.

+ +

StrLib procedures

+

StrNew

+
proc StrNew
+

Creates new string and returns handle in EAX.

+ +

StrPtr

+
proc StrPtr, .hString
+

Returns the current pointer to the string with handle [.hString].

+

If [.hString] looks like a valid handle, but it is not found in the strings table, the procedure returns CF=1.

+ +

StrDel

+
proc StrDel, .hString
+

Deletes the string with handle [.hString] and frees all allocated memory. If [.hString] is a pointer, it tries to search the strings table for the given handle and deletes it.

+

If a string is not found, the procedure does not return an error.

+ +

StrDup

+
proc StrDup, .hSource
+

Creates a duplicate of the string .hSource. Returns a handle to the new created string in EAX.

+ +

StrLen

+
proc StrLen, .hString
+

Returns the length of the string [.hString]. If the handle is valid, it returns the value of the field [string.len]. If [.hString] is a pointer, it computes the length by scanning the string up to the zero terminator.

+ +

StrFixLen

+
proc StrFixLen, .hString
+

This procedure scans the length of zero terminated string and "fixes" [string.len] field. StrFixLen should be call when the content of the string is created by an external call, for example a Win32 API function.

+ +

StrSetCapacity

+
proc StrSetCapacity, .hString, .capacity
+

If the capacity of [.hString] is larger than the requested capacity it does nothing.

+

If the capacity of [.hString] is smaller than the requested capacity, it sets the capacity of the string to the requested value.

+

Returns a pointer to the string after reallocation in EAX.

+

.hString is a handle to the string that have to be resized. Pointers are not acceptable here.

+

.capacity contains requested capacity for the string.

+

If returns CF=1 the reallocation failed. EAX still contains the pointer to the string, but the string was not resized.

+ +

StrCopy

+
proc StrCopy, .dest, .source
+

Copies the content of [.source] string to [.destination] string.

+ +

StrCompCase

+
proc StrCompCase, .str1, .str2
+

Compares the content of two strings [.str1] and [.str2] case sensitive.

+

Returns:

+

CF=1 if the strings are EQUAL.

+

CF=0 if the strings are NOT equal.

+ +

StrCompNoCase

+
proc StrCompNoCase, .str1, .str2
+

Compares the content of two strings [.str1] and [.str2] case NOT sensitive.

+

Returns:

+

CF=1 if the strings are EQUAL

+

CF=0 if the strings are NOT equal.

+ +

SetString

+
proc SetString, .ptrHString, .ptrSource
+

Creates string and assigns it to variable. If the variable already contains string handle, the old string will be reused. Copies the content of [.ptrSource] to the string variable.

+

Arguments:

+

.ptrHString pointer to the variable that contains string handle.

+

.ptrSource pointer to the source for string.

+ +

StrCat

+
proc StrCat, .dest, .source
+

Concatenates two strings. The operation is: destination = destination + source.

+

The destination string [.dest] can be only handle. [.source] can be handle or pointer.

+ +

StrCharPos

+
proc StrCharPos, .hString, .char
+

StrCharPos returns a pointer to the first occurrence of a given char in specified string.

+

Arguments:

+

.hString - string to search

+

.char - char to look for

+

Returns:

+

A pointer to the char in source, or NULL if char doesn't occur in the given string.

+ +

StrPos

+
proc StrPos, .hString, .hPattern
+

StrPos returns a pointer to the first occurrence of a .hPattern string in .hString. +

Arguments:

+

hPattern - 'pattern' string

+

hString - string to search

+

Returns:

+

Pointer to the pattern string in source, or NULL if pattern string doesn't occur in the string to search.

+ +

StrCopyPart

+
proc StrCopyPart, .dest, .source, .pos, .len
+

Copies part of the source string to the destination string.

+

Arguments:

+

.dest handle to destination string.

+

.source handle or pointer to the source string.

+

.pos Source part start position.

+

.len length of the copied part.

+

Returns nothing.

+ +

StrExtract

+
proc StrExtract, .string, .pos, .len
+

The same as StrCopyPart, but creates and returns new string with extracted part of the source [.string]

+

Returns the new created string in EAX.

+ +

StrSplit

+
proc StrSplit, .hString, .pos
+

Splits the string on two strings, at position [.pos]

+

Arguments: +

.hString handle of the string to be split.

+

.pos - position where to split the string.

+

Returns: +

EAX - handle to the new created string with second part of the string. The original string does not reallocate memory and it's capacity and the pointer will remains the same.

+ +

StrInsert

+
proc StrInsert, .dest, .source, .pos
+

Inserts the string [.source] into the string [.dest] at position [.pos]

+ +

StrLCase

+
proc StrLCase, .hString
+

Converts [.hString] to lower case.

+ + +

StrUCase

+
proc StrUCase, .hString
+

Converts [.hString] to upper case.

+ +

NumToStr

+
proc NumToStr, .num, .flags
+

Converts the given number to a string representing it.

+

[.flags] controls how the number to be converted.

+

The procedure returns a handle to the string in EAX and direct pointer to the string in EAX.

+

The [.flags] is a dword with following format:

+

The LSB contains the number of digits, the number must have, if ntsFixedWidth flag is specified.

+

Second byte of [.flags] contains the radix that to be used for conversion.

+

The third and the fourth bytes are reserved for bit flags.

+

Following constants are predefined in StrLib in order to set the value for [.flags]:

+ + + + + + + + + +
ntsSignedconverts number in signed format.$00000
ntsUnsignedconverts number in unsigned format.$10000
ntsFixedWidththe count of the digits is fixed.$20000
ntsBinfor binary number$0200
ntsQuadfor quad number$0400
ntsOctfor octal number$0800
ntsDecfor decimal number$0a00
ntsHexfor hexadecimal number$1000
+

Example:

+
stdcall NumToStr,EAX,	ntsDec or ntsFixedWidth or 8
+

This example will convert the number in EAX to a signed decimal number with exactly 8 digits. If EAX contains $00000080, the result string will be '00000128'.

+ +

StrCharCat

+
proc StrCharCat, .hString, .char
+

This procedure appends up to 4 characters at the end of the string [.hString]. The characters are contained in the dword argument [.char]

+ +

StrCharInsert

+
proc StrCharInsert, .hString, .char, .pos
+

Inserts up to 4 characters [.char] at position [.pos] in the string [.hString]

+ +

StrHash

+
proc StrHash, .hString
+

Computes 32 bit hash value from the string [.hString]. This procedure implements the hash algorithm FNV-1b. Returns the result in EAX.

+
ADDED freshlib/_doc/equates.wiki Index: freshlib/_doc/equates.wiki ================================================================== --- /dev/null +++ freshlib/_doc/equates.wiki @@ -0,0 +1,5 @@ + +

FreshLib directory: equates

+

This directory contains the equates library "allequates.inc". This library defines all constants and structures needed for OS dependent parts of FreshLib.

+

The user should never use these constants and structures in the portable program.

+
ADDED freshlib/_doc/freshlib.css Index: freshlib/_doc/freshlib.css ================================================================== --- /dev/null +++ freshlib/_doc/freshlib.css @@ -0,0 +1,218 @@ +body { + margin: 0px auto 0px auto; + padding: 2px; + text-align: justify; +} + +p { + padding-left: 20px; +} + +td { + padding: 2px 8px 2px 8px; +} + +span.register { + margin: 0px; + padding: 2px; +} + +span.variable { + margin: 0px; + padding: 2px; +} + +span.flag { + margin: 0px; + padding: 2px 2px 2px 2px; +} + +span.constant { + margin: 0px; + padding: 2px 2px 2px 2px; +} + +span.procedure { + margin: 0px; + padding: 2px 2px 2px 2px; + font-weight: bold; +} + +p.note { + margin: 0px; + padding: 2px 2px 2px 26px; +} + +p.todo { + margin: 0px; + padding: 2px 2px 2px 26px; +} + +pre.fasm-code { + margin: 4px 4px 4px 20px; + padding: 2px 6px 2px 6px; +} + +@media screen { + body { + background-color: #ffffe8; + max-width: 1024px; + font: "fresh"; + font-family: FreeSans, Verdana, sans-serif; + font-size: 10pt; + } + + /* The project logo in the upper left-hand corner of each page */ + div.logo { + display: table-cell; + text-align: center; + vertical-align: bottom; + font-weight: bold; + color: #000000; + min-width: 100px; + } + + /* The page title centered at the top of each page */ + div.title { + display: table-cell; + font-size: 20px; + font-weight: bold; + text-align: left; + padding: 0 0 0 1em; + color: black; + vertical-align: middle; + width: 100% ; + } + + /* The main menu bar that appears at the top of the page beneath + ** the header */ + div.mainmenu { + padding: 5px 10px 5px 10px; + font-size: 12px; + font-weight: bold; + text-align: center; + letter-spacing: 1px; + background-color: #ff7000; + border: 1px solid red; + color: white; + } + + /* The submenu bar that *sometimes* appears below the main menu */ + div.submenu { + padding: 2px 10px 2px 10px; + margin: 3px 0px 3px 0px; + font-size: 12px; + text-align: center; + background-color: #ffff70; + color: #000080; + border: 1px solid red; + } + div.mainmenu a, div.mainmenu a:visited { + padding: 3px 10px 3px 10px; + color: white; + text-decoration: none; + } + + div.submenu a, div.submenu a:visited { + padding: 1px 10px 1px 10px; + color: black; + text-decoration: none; + } + + + div.mainmenu a:hover { + color: #558195; + background-color: white; + } + + + div.submenu a:hover { + color: black; + background-color: #40ffa0; + } + + /* All page content from the bottom of the menu or submenu down to + ** the footer */ + div.content { + padding: 8px 8px 8px 8px; + font-size: 12px; + max-width: 800px; + margin: 4px auto 4px auto; + background-color: white; + border: 1px #a0a0a0 solid; + } + + /* The footer at the very bottom of the page */ + div.footer { + font-size: 12px; + margin-top: 2px; + padding: 5px 10px 5px 10px; + text-align: right; + background-color: #ff7000; + border: 1px solid red; + color: white; + } + + td { + font: "fresh"; + font-family: "helvetica"; + font-size: 10pt; + } + + span.register { + background-color: #FFCCFF; + } + + span.variable { + background-color: #CCFFFF; + } + + span.flag { + background-color: #FFFFCC; + } + + span.constant { + background-color: #CCFFCC; + } + + span.procedure { + font-weight: bold; + } + + p.note { + background-color: #FFFFCC; + border: 1px solid #FFCCCC; + } + + p.todo { + background-color: #FFCCCC; + border: 1px solid #FF9999; + } + + pre.fasm-code { + max-width: 700px; + background-color: #F3F3F3; + border: 1px dashed #C0C0C0; + font-size: 9pt; + } + +} + +@media print { + body { + background-color: none; + font-family: FreeSans, Verdana, sans-serif; + } + div.mainmenu { + visibility: hidden; + } + + div.submenu { + visibility: hidden; + } + + a { + text-decoration: none; + } + +} ADDED freshlib/_doc/freshlib_reference.wiki Index: freshlib/_doc/freshlib_reference.wiki ================================================================== --- /dev/null +++ freshlib/_doc/freshlib_reference.wiki @@ -0,0 +1,61 @@ + + + +

+ Home:FreshLib:
+ compiler
+ data
+ equates
+ graphics
+ GUI
+ imports
+ macros
+ simpledebug
+ system
+

+

Overview

+ +

FreshLib is an assembly library aimed to ease the development of rapid assembly language applications, freely portable between different platforms, such as Win32 or Linux.

+

The library is coded in flat assembler syntax (fasm) and is intended to be easily used within Fresh IDE although it could be used for plain fasm development.

+ +

The library consists of two layers: one that is OS dependent and a second one that is OS independent. The OS dependent layer is very small, in order to help porting it for different OS. This layer only makes interface to the core OS functions, such as memory allocations, file access, drawing functions, simple window management etc.

+ +

The OS independent layer is responsible for the main application functionality allowing creation of different kind of windows and controls, user interaction with the program and interaction between particular windows and other GUI elements.

+

FreshLib is mainly intended for developing GUI applications, as they are the most challenging to be ported across different platforms. FreshLib is also created with visual programming in mind, so it contains a flexible, event driven and OS independent template engine allowing visual creation of application user interfaces.

+

FreshLib is in early development stage and probably will be changed many times in order to reach their objectives: to be small, fast and easy to use.

+ +

The main intention is to keep the bloat off the library, but containing all necessary accessories for comfortable programming of a very wide range of applications.

+ +

The architecture of FreshLib is open and it can be freely expanded with other libraries without increasing the size of applications. In other words, only those parts of the library that are effectively used will be compiled on the final executable.

+ +

About this manual

+ +

This manual is a "work in progress". Any part of it can be changed at any time.

+

Of course, some of the libraries described in this document are more stable and finished like the macro, system and data libraries. Therefore, the chapters about these libraries are less likely to be changed. Other libraries (like graphics and GUI), will be heavily modified so the manual will be changed accordingly.

+ +

Structure of the library

+

FreshLib contains many code and macros libraries, structured hierarchically and depending on each other. Here is the directory tree of the library:

+ +

The library is structured to support different platforms transparently. The platform dependient code is contained in a subdirectory of each library component. For example, "system" subdirectory contains libraries for accessing system resources such as memory, files, etc. Inside "system" there several subdirectories that contain OS dependent code these directories are named after the platform they serve.

+

Currently, only Win32 and Linux platforms are supported.

+

Getting started

+

FreshLib main scope is to provide a fast and easy framework to start programming multiplatform assembly applications. Now, what is needed to start writing applications?

+

Tutorials

+ +
ADDED freshlib/_doc/imports.wiki Index: freshlib/_doc/imports.wiki ================================================================== --- /dev/null +++ freshlib/_doc/imports.wiki @@ -0,0 +1,6 @@ + +

FreshLib directory: imports

+

Another directory that contains only OS dependent definitions is "imports" with a library file to be included in the project: "allimports.asm"

+

This file have to be included in the _IncludeSection of the application. Then it will generate the proper import section, depending on the target platform and functions used by the OS dependent parts of FreshLib.

+

The user should never call directly imported functions from inside the portable application.

+
ADDED freshlib/_doc/index.wiki Index: freshlib/_doc/index.wiki ================================================================== --- /dev/null +++ freshlib/_doc/index.wiki @@ -0,0 +1,46 @@ + + + +
+

Index
+Fresh home
+FreshLib reference
+Fresh tips&tricks
+

+ +

Fresh is a visual assembly language IDE with built-in FASM assembler. +

+ +

The main goal of Fresh is to make programming in assembly as fast and +efficient as in other visual languages, without sacrificing the small +application size and the raw power of assembly language. +

+ +

Because Fresh is the logical continuation of the FASM project in the +area of visual programming, it is perfectly compatible with FASM and you +can use all your knowledge about FASM to program in Fresh. +

+ +

Of course, you can use Fresh not only for Windows programming, but also +to create programs for any OS that FASM supports - DOS, Linux, FreeBSD, +BeOS, MenuetOS - the same way as you do this in FASM. +

+ +

This site is fossil repository of Fresh sources. +You can clone the repository with following fossil command: +

fossil clone http://chiselapp.com/user/johnfound/repository/FreshIDE/ Fresh.fossil
+

+ +

In order to use more functionality in this site, please login as "anonimous" user. +Particularly you will be able to follow the links in the source tree, to download code and to fill bug reports and feature requests. +

+ +

If you want to contribute to the project, please contact me (johnfound) on FASM message board +

+ +

In order to download compiled FreshIDE, visit Fresh IDE home page. +

+ +

You can report bugs, or make some feature requests here, in the Tickets system +

+
ADDED freshlib/_doc/macros.wiki Index: freshlib/_doc/macros.wiki ================================================================== --- /dev/null +++ freshlib/_doc/macros.wiki @@ -0,0 +1,217 @@ + + + +

+ FreshLib:Macros:
+ _stdcall.inc
+ _globals.inc
+ _struct.inc
+ _display.inc
+

+

FreshLib directory: macros

+

This directory contains several libraries that provides common convenience functions to be used with big assembly projects. All libraries can be included in the project at once from the file "allmacros.inc".

+

There is no overhead at including all those libraries because there is no code to be generated, just macros. There is a little delay in compile time but thanks to fasm's speed, it is barely noticeable.

+

Lets examine each one of these libraries.

+

FreshLib _stdcall.inc

+

In general this library provides ways of definition and invoking of the procedures with argument passing through the stack. It supports STDCALL and CCALL calling conventions.

+
+macro proc name, [arg]
+macro begin
+macro endp
+macro return
+macro cret
+macro locals
+macro endl
+
+

These macros define a procedure, creates a stack frame for the local variables and defines symbolic names for the arguments. The macro "proc" defines the global label "name" as a name for the procedure. All arguments and local variables are defined as a local labels with regard to the name of the procedure. That is why all arguments and local variables must have names beginning with dot.

+

Between the line with "proc" and "begin", any number of local variables can be defined. The macro "begin" marks the begining of the procedural code.

+

The macro "endp" marks the end of the procedural code.

+

The return from procedure instruction is provided by macros "return" or "cret" depending on the calling convention we want to use: "return" clears the arguments from the stack and "cret" do not.

+

Inside the procedure, a secondary stack frame can be allocated with the pair "locals" and "endl". All data definitions, enclosed between these macros will define a secondary stack frame that is a continuation of the stack frame defined between "proc" and "begin".

+ +

Any number of "locals" and "endl" pairs can be used, but all of these secondary stack frames will overlap between each other. This feature is specially intended to provide savings of stack space and at the same time, to provide talking variable names for the different parts of more complex procedures.

+

For example (in Win32) if we have complex window procedure that have to process multiple messages: One of the message handlers may need one variable .rect. Another message handler may need two variables called .point1 and .point2. But the procedure as a whole is never going to need all those variables at the same time, because it process only one message at a time. On the other hand it may need the variable .ctrldata for every message processed. The optimal solution is to define the variables in the following way:

+
+proc CtrlWinProc,.hwnd,.wmsg,.wparam,.lparam
+.ctrldata dd ?
+begin
+    invoke GetWindowLong, [.hwnd], GWL_USERDATA
+    mov    [.ctrldata], eax
+
+    cmp    [.wmsg], WM_MESSAGE1
+    je     .message1
+    cmp    [.wmsg], WM_MESSAGE2
+    je     .message2
+    return
+
+.message1:
+locals
+  .rect RECT
+endl
+    return
+
+.message2:
+locals
+  .point1 POINT
+  .point2 POINT
+endl
+    return
+endp
+
+

In the above example, .ctrldata is defined on [EBP-4]; .rect is defined on [EBP-20]; .point1 is also defined on [EBP-20] and .point2 is defined on [EBP-12].

+ + + + + + +
[EBP-04].ctrldata
[EBP-08].rect.bottom.point2.y
[EBP-12].rect.right.point2.x
[EBP-16].rect.top.point1.y
[EBP-20].rect.left.point1.x
+

As you can see, .rect occupies the same memory as .point1 and .point2, but .ctrldata is never overlapped and exists independently.

+

As a general rule, you have to use the definitions between "proc" and "begin" for local variables that are used in every call of the procedure and separate locals/endl definitions for variables needed for the particular branches inside the procedure.

+

This approach will always provide the optimal size for the locals stack frame.

+ +
+macro initialize
+macro finalize
+
+

The macros "initialize" and "finalize" defines one special type of procedures that during compilation are registered in a two separate lists - one for "initialize" and one for "finalize" procedures.

+

After that using the macros "InitializeAll" and "FinalizeAll", all these procedures can be call at once. "initialize" procedures are call in the order of their definition and "finalize" procedures in reverse order.

+

These macros provides standard and consistent way to process the initialization and the finalization of the libraries and modules of the application.

+

Procedures defined with "initialize" and "finalize" must have no any arguments.

+

FreshLib uses this mechanism and the user is free to use it also. +

+macro stdcall proc, [arg]
+macro ccall proc, [arg]
+macro invoke proc, [arg]
+macro cinvoke proc, [arg]
+
+

This macros call the procedures with STDCALL and CCALL calling convention.

+

"stdcall" macro pushes the arguments to the stack in reverse order and then call the procedure with label "proc". As long as the macro "stdcall" does not provide any stack cleanup (this duty is assigned to the procedure) the arguments can be pushed in free manner using, for example, separate push instructions for part of the arguments and arguments in the stdcall line for the remaining arguments. This can be very convenient in some cases. For example see the following source:

+
+    stdcall CreateSomeObject   
+    push	    eax   			
+    stdcall DoSomething
+    stdcall DeleteSomeObject
+
+

Here, the procedure DoSomething changes the value of eax, so the handle is saved in the stack. The procedure DeleteSomeObject needs one argument - a handle of the object. But as long as the proper value is already in the stack, it is mindless to pop the value and then to push it again. So the source calls DeleteSomeObject without any arguments. The procedure knows the proper number of arguments (one in this example) and clean the stack properly.

+

The standard (and wrong) approach is to pop the argument from the stack and then to pass it to the procedure explicitly is the stdcall statement:

+
+    stdcall	CreateSomeObject
+    push	     eax   ; save the handle.
+    stdcall  DoSomething
+    pop      eax             ; ??? Why ???
+    stdcall  DeleteSomeObject, eax
+
+

This source will generate the meaningless instructions sequence:

+
+    pop      eax       
+    push     eax       	
+
+

"invoke" macro is the same as "stdcall" with the only difference - it calls the procedure indirectly (call [proc] instead of call proc).

+

This mechanism is used to call the functions imported from external dynamic linked libraries.

+

"ccall" macro calls a procedure with CCALL convention. This means that the procedure returns with simple "retn", without cleaning the parameters from the stack. Then "ccall" macro provides instructions that remove the arguments from the stack.

+

Because ccall have to know the exact count of passed arguments, all arguments have to be passed explicitly as a values in the ccall statement.

+

Tricks as described above will not work properly and leads to stack not properly cleaned after the call.

+

"cinvoke" is the same as ccall, but using indirect call. The reason is the same as with "invoke" macro.

+

About the calling conventions: While all Win32 dynamic linked libraries uses STDCALL convention, most (if not all) of Linux libraries uses CCALL convention.
+All code libraries of Fresh use STDCALL calling convention and it is platform independient.

+ +

FreshLib _globals.inc

+

This library defines several macros intended to deal with data definitions.

+

Usually all data definitions have to be placed in special section of the executable file. This is not very convenient, because the code that process this data and the data definitions must reside in separate places of the source code, and in most cases even in different files.

+

The idea of globals.inc macro library is to allow the data definition to be described anywhere in the source code, but these definitions to be defined at once, at the place the programmer wants - usually in the data section of the program.

+
+macro uglobal
+macro iglobal
+macro endg
+macro IncludeAllGlobals
+
+

"uglobal" begins block for undefined data definition. The block ends with "endg" macro. Between "uglobal" and "endg" macro any count of data definitions can be inserted.

+

Note that because uglobal block defines undefined data, it is only the labels and the size of data that have meaning inside this block. Any data defined with data definition directive will not be included in the binary file.

+

The undefined data will be defined later at the place where "IncludeAllGlobals" macro resides.

+

The undefined data is always placed at the end of all data definitions, so it will never increase the size of the executable file.

+ +

"iglobal" macro, again combined with "endg" defines initialized data. The data defined in the block will be created at "IncludeAllGlobals" statement.

+

This block increases the size of the executable file, because it contains sensible data, that have to be included in the file.

+

Actually, neither uglobal, nor iglobal blocks defines any data immediately.

+

Instead, the data definitions are stored in a list. The real definition occurs later, when IncludeAllGlobals macro is invoked.

+

For this reason, IncludeAllGlobals must be placed in the source after all used global data blocks.

+ +
struc text [val]
+ +

The macro "text" is actually a structure. It needs to be preceded by some label name.

+

This macro defines a zero terminated string constant, and also a local label for this string in the "sizeof" global label.

+

The "text" macro, similar to iglobal and uglobal simply stores string data for defer definition.

+

This definition, as for all global data macros, occur in IncludeAllGlobals invocation.

+

Why to define separate macro for the strings and not to use the normal iglobal block? The thing is that the macro "text" was planned to check the strings and to not define any string more than once. In the case of repetitive strings, this macro should return the pointer to the already defined string constant.

+

In that case, it would be very convenient and harmless to use string constants in the function calling macros - stdcall, ccall etc.

+

Unfortunately, regardless of the power of fasm macro language, this functionality cannot be implemented. Or, more precisely, it can be implemented, but the implementation is too slow for any real project use.
+This ineffective implementation is still leaved inside the file _globals.inc - commented block that defines macro with name "InitStringList". If someone have ideas about fixing this problem, please send it to me!

+ +

FreshLib _struct.inc

+

This library contains only one simple macro:

+

+
+macro struct name
+ends
+
+

This macro is aimed to provide easy creation of data structures. The "struc" directive in FASM is known to not create actual labels, but only the template for the label definitions. So, we need to create an instance of the data structure in order to have addresses and offsets of its fields.

+

But very often we don't have static data structure of the given type, but data structure, pointed by some of the registers. In this case in order to use offsets to the fields of the data structure, we need to define at least one virtual instance of the structure at address 0. Then we can use the values of the fields as an offsets in the instructions - for example: mov eax, [esi+RECT.right].

+

So, this is exactly what "struct" macro does. Besides it defines the "struc" structure with the given fields, it creates a single virtual instance of this structure, in order to be used later for register addressing. In all remaining functionality it behaves exactly as the struc directive.

+

The syntax of struct macro is the following:

+
+struct StructureName
+  .field1 dd ?
+  .field2 RECT
+  .fieldN:
+ends
+
+

The definition begins with "struct" followed by the structure name. The definition ends with "ends" directive. Between both, any local label definition becomes a member of the structure.

+ +

FreshLib _display.inc

+

This library contains macros that enhance the functionality of standard FASM "display" directive.

+

+
macro disp [arg]
+

The macro "disp" displays the strings given in the arguments, just as "display" FASM directive does

+
disp <number, radix>
+

The macro here is used to display numbers in any radix.

+ +
macro DispSize Text, Sz
+

"DispSize" macro is very specialized macro, that displays the text and number in the following form:

+ +
Size of [Text] is: Sz bytes
+ +

The size number is automatically scaled to bytes or kbytes, depending on the value of Sz.

+

This macro allows easy display and control of the sizes of particular areas of the program - data structures, subroutines etc.

+ +

How Fresh implements "display" directive

+

There are some specifics in Fresh, concerning message displaying. The "display" directive in Fresh works in a different way than original FASM directive. It outputs text in Fresh message window. Each message can have one of six icons, or it can have no icon at all. And because message window is implemented as a TreeView control, you can organize your messages into groups (directories). Implementation is a bit "tricky" - when you display a character whose code is less than 16, it is interpreted in a special way. Characters from 1 to 6 set an icon of current message. It sounds complicated, but it is quite simple. Try:

+
+    display 2, "some message"
+
+

It will display "some message" with an error icon. Another codes are used for controlling directory structure. Try to type following lines and see what would happen:

+
+    display 3, "message at root", 0x09
+    display 3, "child message1", 0x0a
+    display 3, "child message2", 0x0d
+    display 3, "again at root", 0x0a
+
+

Of course you don't have to put each message in separate display directive, you can, with the same result write:

+
+display 3, "at root",$09,3,"child1",$0a,3,"child2", $0d,3,"again at root",$0a 
+
+

Here is the complete list of all special characters and their meanings:

+ + + + + + + + + + + +
$01set current icon to "warning"
$02set current icon to "error"
$03set current icon to "info"
$04set current icon to "find"
$05set current icon to "none"
$06set current icon to "debug"
$08end current row and set one level back.
$09end current row and set it as new directory.
$0aend current row and keep current level
$0dend current row and set current level to root level
+
+ ADDED freshlib/_doc/porting.wiki Index: freshlib/_doc/porting.wiki ================================================================== --- /dev/null +++ freshlib/_doc/porting.wiki @@ -0,0 +1,37 @@ +

Porting FreshLib to other platforms.

+ +

Minimal system requirements

+ + * Some kind of heap management. Currently FreshLib uses heap functions in Win32 and libc functions +in Linux. + +Although, if it is impossible for the OS to provide dynamic memory allocation, it can be implemented +using some other heap manager - for example vid's one from FASMLIB. In this case, the OS should provide only +one big memory block. + +However, this solution can greatly complicate the porting process. + + * Some kind of process management. Threads. + + * Timer - FreshLib needs one timer that to be able to interrupt the main program loop. + + * Graphics - FreshLib needs basic graphics functions in order to work. Lines, Rectangles and text drawing +should be enough. + + * Graphics Text rendering - FreshLib needs UTF-8 support at least on level of conversion of UTF-8 to +the OS internal format (as is with Win32). As long as ASCII (0..$7f) is valid UTF-8 code, if the OS uses +only plain ASCII it is possible for text rendering to provide only ASCII text drawing. + +In Win32 FreshLib uses Windows unicode support with conversion. In Linux it uses XFT library, that supports +direct use of UTF-8 strings. + + * Console text output - FreshLib needs output to the console window - (native or emulated) for debuging +purposes. + + * Windows - FreshLib uses only one base type of window, able to accept the system events and to be displayed +on the screen. This window should be able to appear on the screen and to be able to have children of the same type. + +In Win32 FreshLib uses its own window class "FreshWin". In Linux (XLib) uses usual XLib window. + + + ADDED freshlib/_doc/real_objects.md Index: freshlib/_doc/real_objects.md ================================================================== --- /dev/null +++ freshlib/_doc/real_objects.md @@ -0,0 +1,293 @@ +# Object oriented programming with FreshLib + +## Objects definition + +The objects are defined using macro pair "object" and "endobj". + +The syntax of these macros is following: + + object OBJ_NAME [, PARENT_NAME] + ; here object members are to be defined. + endobj + +The object can contain three types of members: + +* Fields. They are simply some local labels with data definition, very similar to +the structure fields. The fields are defined the same way as the structure fields: + + object TAnimal + .length dd ? + .height dd ? + .weight dd ? + endobj + +The fields are aimed to provide storage of private for the object data. Of course, it is +assembly language and the fields are not hidden from the user, but a good practice is to +not use them as an interface. (There are other members that are to be used as an interface). + +* Methods. The methods are procedures that provide an object engine - the code that to +be executed on the object data. They are defined following way: + + + object TAnimal + .length dd ? + .height dd ? + .weight dd ? + + method .Jump, .height + endobj + + +Here we defined a method TAnimal.Jump that will make our animal to jump. :) +The methods can have any number of arguments. Besides the user defined arguments, +the method always contain one implicitly defined argument, named .self, containing +a pointer to the object itself. + +The user should not define this argument, neither set it during the method invocation. +The object engine itself handle it. Of course the user can use this argument +on the method implementation code. + +Once defined, the method needs to be implemented. +The method implementation is similar to the procedures, but uses a macro "method" instead of +"proc". Also, no arguments need to be defined in the method implementation, because they are +already known from the object type definition: + + method TAnimal.Jump + begin + push eax ecx + + mov eax, [.self] + mov ecx, [eax+TAnimal.height] + add ecx, [.height] + + pop ecx eax + return + endp + +Sometimes so called "abstract" methods need to be defined. These are methods, that has no +implementation. They are used in order to provide a method that to be implemented only in +the objects that have a common parent class. + +The abstract methods are defined the same way as the normal, but by the macro "abstract" +instead of "method". And of course they does not need implementation. + + +* Parameters. The parameters are, similar to the fields, data members. But unlike the fields, +they can contain a code, that to generate the data value. The definition of the parameter is +by the macro "param": + + param .ParamName, GET_METHOD, SET_METHOD + +The GET_METHOD and SET_METHOD define how the value of the parameter is to be get or set by +the user. These arguments can have one of the following values: + +* Name of a field - it means that the value of the parameter is to be get and/or set directly +from the object field member. + +* Name of a method - instead of read or write the value of the parameter from the memory, some +object method is called. + +The GET method should have none arguments (but there is always implicitly defined .self argument). +It should return the computed value in EAX register. + +The SET method should have one argument for the value that have to be set in the parameter. +(and .self) + +* NONE keyword - it means the parameter does not support reading or writing. This way, the +user can define read-only or write-only parameters. (And also, parameters that can't be neither +read nor write). + + + object TAnimal + .length dd ? + .height dd ? + .weight dd ? + .speed dd ? + + param .Energy, .ComputeEnergy, NONE + + method .GetEnergy + abstract .Jump, .height + endobj + + + method TAnimal.GetEnergy + begin + push ecx + mov ecx, [.self] + mov eax, [ecx+TAnimal.speed] + imul eax, eax + imul eax, [ecx+TAnimal.weight] + sar eax, 1 ; E = m.v^2/2 + pop ecx + return + endp + + +## Object inheritance + +All objects can be inherited by other method definition. The child object contains all members of +the parent object and allows adding new members as well. + +The methods of the child object can be inherited in the child object. This happens when the user +defines a method with the same name as already existing method: + + + object TCat, TAnimal + method .Jump, .height + endobj + + + method TCat.Jump + begin + ; code that makes the cat jump not as other animals. + + return + endp + +## Object use + +Once defined, the object can be created and destroyed, a values can be set or get and +methods call. This functionality is provided by several macros. Notice that they are +made to have syntax very similar to CPU instructions and this way to not affect the "look&feel" +of the assembly language program. + +### Creating object instance. + +Once defined, the user can create any number of object instances using the macro "create": + + create TARGET, OBJECT_TYPE + +This macro creates an object of type OBJECT_TYPE and put it into TARGET. TARGET can be +register or memory location + + create eax, TCat ; put in EAX a pointer to the object instance. + + create [MyCat], TCat ; put the pointer in [MyCat] + +The macro create allocates memory for the instance, sets the proper pointer to the methods +table and (if defined) executes the method .Create of the object. + +Create does not change any registers, unles one is set as TARGET. + +### Destroying objects + +If the object instance is no longer needed, it have to be destroyed by using "destroy" macro. + + destroy OBJECT + +For example: + + destroy [MyCat] + +If the object is descendent of TObject, the method .Destroy is to be called. TObject is some +special name that is aimed to be the root type for all objects in FreshLib. Hardcoding this +name is because "destroy" method can't know the type of the destroyed object and this way +can't check existing of the method .Destroy; + +### Object method execution + +The method of a object can be executed by using "exec" macro: + + exec OBJECT, TYPE:METHOD, [ARGUMENTS] + +For example: + + exec [MyCat], TCat:Jump, 100 + +There is another macro "pexec" that acts exactly as "exec", but calls not the object +method, but the same method from the parent object type (of course if defined). + + pexec [MyCat], TCat:Jump, 100 ; it will call TAnimal.Jump, instead of + ; the re-defined TCat.Jump + + +### Object parameter get and set: + +The parameter getting or setting values is by the macros "get" and "set": + + get TARGET, OBJECT, TYPE:PARAMETER + + set OBJECT, TYPE:PARAMETER, NEW_VALUE + +The TARGET and NEW_VALUE can be register or memory variable (as in mov instruction): + + get ecx, [MyCat], TAnimal:Energy + +This line will compute the current energy (see the definition of .Energy above) +of [MyCat] and will return it in ECX register. + +Notice, that the code, generated by this macro is optimal. For example if the parameter +is associated with a field and the object is passed by register, the whole line will generate +single "mov" instruction. + +"get" and "set" macros will preserve all registers, except TARGET of course. + + +### Check object type + +The user can check whether the object belongs to some type by using "istype" macro: + + istype OBJECT, TYPE + +This macro returns ZF flag set if the object belongs to the type or ZF cleared if not. +It will not change any registers. + +For example, see following code: + + ; object types definitions + + object TAnimal + endobj + + object TCat, TAnimal + endobj + + object TDog, TAnimal + endobj + + ; instance creation + + create eax, TCat + + istype eax, TCat + je .yes_cat ; ZF=1 It is a TCat + + int3 + +.yes_cat: + istype eax, TAnimal + je .yes_animal ; ZF=1 Also, it is TAnimal + + int3 + +.yes_animal: + istype eax, TDog + je .yes_dog ; ZF=0 but is it NOT TDog. + + int3 ; will stop here + +.yes_dog: + + +## Objects polymorphism. + +Polymorphism is one of the main properties of the OOP. It is the ability of the object to +execute different code on the same method call, depending on its type. + +In the context of our library, as long as the types inherit all the methods of its parents and +can redefine it, it means, that in the above example, TCat and TDog both have method .Jump, +inherited from TAnimal. (In this mean, they are both of type TAnimal), but the implementation of +TCat.Jump and TDog.Jump differs. + +This way, we can use only one code to process both types. + + + create eax, TCat + create ebx, TDog + + exec eax, TAnimal:Jump, 100 + exec ebx, TAnimal:Jump, 100 + +You can see, that the same code will call in the first case TCat.Jump and in the second case +TDog.Jump; ADDED freshlib/_doc/simpledebug.wiki Index: freshlib/_doc/simpledebug.wiki ================================================================== --- /dev/null +++ freshlib/_doc/simpledebug.wiki @@ -0,0 +1,6 @@ + + +

FreshLib directory: simpledebug

+

This directory contains debugging utilities.

+
+ ADDED freshlib/_doc/starting.wiki Index: freshlib/_doc/starting.wiki ================================================================== --- /dev/null +++ freshlib/_doc/starting.wiki @@ -0,0 +1,144 @@ + +

Setting Up

+ +

The first thing to do is to download fasm in your platform of choice. + Fasm does not require installation nor do you need special administrative privileges or a root account in order to start using it.

+

The second thing is to get a copy of FreshLib. FreshLib is just fasm source code, simply save it in a directory of choice.

+

FreshLib needs an environment variable called TargetOS +in order to know the target platform of the generated application. + Currently, the allowed values are: Win32 and Linux.

+

A second environment variable is suggested called lib having the full path to FreshLib. The library does not need this, but it will make your own sources more portable.

+

From Linux:

+
+export TargetOS=Linux
+export lib=/home/test/freshlib
+
+

From Windows:

+
+set TargetOS=Win32
+set lib=c:\projects\freshlib
+
+ +

That's all. Now it is time to produce the first FreshLib application using just Fasm.

+ +

Hello World

+ +
+include '%lib%/compiler/executable.inc'
+include '%lib%/macros/allmacros.inc'
+include '%lib%/equates/allequates.inc'
+
+_BinaryType console
+
+include '%lib%/system/process.asm'
+include '%lib%/simpledebug/debug.asm'
+
+_CodeSection
+
+start:
+
+        InitializeAll
+
+        DebugMsg 'Hello world!'
+
+        FinalizeAll
+        call    Terminate
+
+_ImportSection
+
+include '%lib%/imports/allimports.asm'
+
+_DataSection
+
+IncludeAllGlobals
+
+ +

The most important thing to note is that regardless the platform you have chosen, the code is exactly the same. +In other words, if you change the value of your environment variable TargetOS, +the same code will produce a different executable file targeting that platform. +This is the main characteristic of the FreshLib and this is the first design criteria that you will +want to follow to have a truly platform independent application.

+ +

This is a highly portable development environment, perhaps the most portable +among non interpreted languages. The entire development process could run from removable media +and the same set of source code files could be used from Win32 and Linux to produce binaries for either of them.

+ +

Creating Files

+ +
+include '%lib%/compiler/executable.inc'
+include '%lib%/macros/allmacros.inc'
+include '%lib%/equates/allequates.inc'
+
+_BinaryType console
+
+include '%lib%/simpledebug/debug.asm'
+include '%lib%/system/files.asm'
+include '%lib%/system/process.asm'
+
+_CodeSection
+
+start:
+
+        InitializeAll
+
+        DebugMsg 'FreshLib Tutorials - Module: Files'
+
+iglobal
+        filename        db './tut01.txt',0
+        sizeof.filename = $-filename
+endg
+
+uglobal
+        hFile   dd ?
+endg
+
+        stdcall FileCreate, filename
+        jc      .error
+        mov     [hFile], eax
+        DebugMsg "A new file was created:"
+        stdcall OutputNumber, [hFile], 16, 2
+        DebugMsg " is the handle of the file"
+
+        stdcall FileWrite, [hFile], filename, sizeof.filename
+        jc      .error
+        stdcall OutputNumber, eax, 10, 2
+        DebugMsg " bytes were written into the file"
+
+        stdcall FileClose, [hFile]
+        jc      .error
+        DebugMsg "The file was properly closed"
+
+        stdcall FileDelete, filename
+        jc      .error
+        DebugMsg "The file was finally deleted"
+        jmp     .exit
+
+.error:
+        DebugMsg "Sorry, an error occurred"
+
+.exit:
+        FinalizeAll
+        stdcall Terminate, 0
+
+_ImportSection
+
+include '%lib%/imports/allimports.asm'
+
+_DataSection
+
+IncludeAllGlobals
+
+ +

Simple Console

+ +
+
+ +

Basic GUI

+ +
+
+ +
+ ADDED freshlib/_doc/system.wiki Index: freshlib/_doc/system.wiki ================================================================== --- /dev/null +++ freshlib/_doc/system.wiki @@ -0,0 +1,121 @@ + +

FreshLib directory: system

+

This directory contains two libraries: "memory.asm" and "files.asm". They constitute the interface to the overlaying system for the rest of the FreshLib modules.

+

FreshLib Memory

+

This library contains simple but pretty complete functions for dynamic memory allocation, reallocation and release.

+

The Win32 implementation of the library uses the process heap, returned by GetProcessHeap to manage the memory allocations. Linux implementation uses libc functions: "malloc", "free" and "realloc".

+ +

GetMem

+
+proc GetMem, .size
+
+

This procedure allocates dynamic memory block with size in bytes in the argument [.size]

+

If there is no error the procedure returns CF=0 and pointer to the requested memory in EAX. If the memory cannot be allocated, the procedure returns CF=1

+ +

FreeMem

+
+proc FreeMem, .ptr
+
+

This procedure frees the memory block pointed by [.ptr] argument.

+ +

ResizeMem

+
+proc ResizeMem, .ptr, .newsize
+
+

This procedure tries to resize the memory block pointed by [.ptr] to the new size, given by [.newsize] argument.

+ + +

FreshLib Files

+

This library provides simple file access procedures.

+ +

FileOpen

+
+proc FileOpen, .filename
+
+

This procedure opens the file with a filename in the string pointed by [.filename] argument.

+

On success (CF=0) FileOpen returns a handle of the open file. On error (CF=1) returns error code.

+ +

FileCreate

+
+proc FileCreate, .filename
+
+

This procedure creates new empty file with a filename in the string pointed by [.filename] argument.

+

On success (CF=0) FileCreate returns a handle of the open file. On error (CF=1) returns error code in EAX.

+ +

FileClose

+
+proc FileClose, .handle
+
+

This procedure closes the open file with a handle in [.handle] argument.

+

On success (CF=0) does not return any value and preserves EAX.

+

On error (CF=1) returns error code in EAX.

+ +

FileRead

+
+proc FileRead, .handle, .buffer, .count
+
+

This procedure reads [.count] bytes from the file [.handle] in the buffer pointed by [.buffer] arguments.

+

On success (CF=0) returns the count of actually read bytes in EAX.

+

On error (CF=1) returns error code in EAX.

+ +

FileWrite

+
+proc FileWrite, .handle, .buffer, .count
+
+

This procedure writes [.count] bytes from the buffer pointed by [.buffer] argument to the file [.handle] that have to be open for write.

+

On success (CF=0) returns the count of actually read bytes in EAX.

+

On error (CF=1) returns error code in EAX.

+ +

FileSeek

+
+proc FileSeek, .handle, .dist, .direction
+
+

This procedure moves the file pointer to the some position. The handle of the file is in [.handle], the target position is in [.dist] and the direction of the move is in [.direction] arguments.

+

[.direction] accept one of the following values: fsFromBegin, fsFromEnd and fsFromCurrent.

+

The exact values of these constants may vary between different OSes, so the programmer have to use the symbolic names, predefined in "files.asm" library.

+

On success (CF=0) returns the new position of the file in EAX.

+

On error (CF=1) returns error code in EAX.

+ +

FileDelete

+
+proc FileDelete, .filename
+
+

This procedure deletes a file with name in pointed by [.filename] argument.

+

On success (CF=0) no value.

+

On error (CF=1) returns error code in EAX.

+ +

GetErrorString

+
+proc GetErrorString, .code
+
+

This procedure returns in EAX a pointer to a human readable error string for the error code passed in [.code]. The string is dynamically allocated by the OS and should be released after use with the procedure FreeErrorString.

+ +

FreeErrorString

+
+proc FreeErrorString, .ptrString
+
+

This procedure frees the memory allocated for error string from the procedure GetErrorString.

+ +

LoadBinaryFile

+
+proc LoadBinaryFile, .ptrFileName
+
+

This procedure allocates needed memory and loads the whole file with filename pointed by [.ptrFileName] to the allocated buffer.

+

The memory is allocated with the library memory.asm, so the user have to free the memory after use with the procedure FreeMem. +

On success (CF=0) the procedure returns a pointer to the allocated memory in EAX and the count of bytes read in ECX.

+

On error (CF=1) the procedure returns nothing.

+ +

SaveBinaryFile

+
+proc SaveBinaryFile, .ptrFileName, .aptr, .size
+
+

This procedure creates new file with the name pointed by [.ptrFileName] and saves [.size] bytes from the buffer pointed by [.aptr].

+

The procedure returns error flag in CF.

+ +

FileExists

+
+proc FileExists, .ptrFileName
+
+

This procedure checks whether the file with name pointed by [.ptrFileName] exists on disk.

+

The procedure returns CF=0 if the file exists, otherwise it returnsCF=1.

+
ADDED freshlib/_doc/utf8/CaseFolding.txt Index: freshlib/_doc/utf8/CaseFolding.txt ================================================================== --- /dev/null +++ freshlib/_doc/utf8/CaseFolding.txt @@ -0,0 +1,1226 @@ +# CaseFolding-6.2.0.txt +# Date: 2012-08-14, 17:54:49 GMT [MD] +# +# Unicode Character Database +# Copyright (c) 1991-2012 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ +# +# Case Folding Properties +# +# This file is a supplement to the UnicodeData file. +# It provides a case folding mapping generated from the Unicode Character Database. +# If all characters are mapped according to the full mapping below, then +# case differences (according to UnicodeData.txt and SpecialCasing.txt) +# are eliminated. +# +# The data supports both implementations that require simple case foldings +# (where string lengths don't change), and implementations that allow full case folding +# (where string lengths may grow). Note that where they can be supported, the +# full case foldings are superior: for example, they allow "MASSE" and "Maße" to match. +# +# All code points not listed in this file map to themselves. +# +# NOTE: case folding does not preserve normalization formats! +# +# For information on case folding, including how to have case folding +# preserve normalization formats, see Section 3.13 Default Case Algorithms in +# The Unicode Standard, Version 5.0. +# +# ================================================================================ +# Format +# ================================================================================ +# The entries in this file are in the following machine-readable format: +# +# ; ; ; # +# +# The status field is: +# C: common case folding, common mappings shared by both simple and full mappings. +# F: full case folding, mappings that cause strings to grow in length. Multiple characters are separated by spaces. +# S: simple case folding, mappings to single characters where different from F. +# T: special case for uppercase I and dotted uppercase I +# - For non-Turkic languages, this mapping is normally not used. +# - For Turkic languages (tr, az), this mapping can be used instead of the normal mapping for these characters. +# Note that the Turkic mappings do not maintain canonical equivalence without additional processing. +# See the discussions of case mapping in the Unicode Standard for more information. +# +# Usage: +# A. To do a simple case folding, use the mappings with status C + S. +# B. To do a full case folding, use the mappings with status C + F. +# +# The mappings with status T can be used or omitted depending on the desired case-folding +# behavior. (The default option is to exclude them.) +# +# ================================================================= + +# Property: Case_Folding + +# All code points not explicitly listed for Case_Folding +# have the value C for the status field, and the code point itself for the mapping field. + +# @missing: 0000..10FFFF; C; + +# ================================================================= +0041; C; 0061; # LATIN CAPITAL LETTER A +0042; C; 0062; # LATIN CAPITAL LETTER B +0043; C; 0063; # LATIN CAPITAL LETTER C +0044; C; 0064; # LATIN CAPITAL LETTER D +0045; C; 0065; # LATIN CAPITAL LETTER E +0046; C; 0066; # LATIN CAPITAL LETTER F +0047; C; 0067; # LATIN CAPITAL LETTER G +0048; C; 0068; # LATIN CAPITAL LETTER H +0049; C; 0069; # LATIN CAPITAL LETTER I +0049; T; 0131; # LATIN CAPITAL LETTER I +004A; C; 006A; # LATIN CAPITAL LETTER J +004B; C; 006B; # LATIN CAPITAL LETTER K +004C; C; 006C; # LATIN CAPITAL LETTER L +004D; C; 006D; # LATIN CAPITAL LETTER M +004E; C; 006E; # LATIN CAPITAL LETTER N +004F; C; 006F; # LATIN CAPITAL LETTER O +0050; C; 0070; # LATIN CAPITAL LETTER P +0051; C; 0071; # LATIN CAPITAL LETTER Q +0052; C; 0072; # LATIN CAPITAL LETTER R +0053; C; 0073; # LATIN CAPITAL LETTER S +0054; C; 0074; # LATIN CAPITAL LETTER T +0055; C; 0075; # LATIN CAPITAL LETTER U +0056; C; 0076; # LATIN CAPITAL LETTER V +0057; C; 0077; # LATIN CAPITAL LETTER W +0058; C; 0078; # LATIN CAPITAL LETTER X +0059; C; 0079; # LATIN CAPITAL LETTER Y +005A; C; 007A; # LATIN CAPITAL LETTER Z +00B5; C; 03BC; # MICRO SIGN +00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE +00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE +00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE +00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS +00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE +00C6; C; 00E6; # LATIN CAPITAL LETTER AE +00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA +00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE +00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE +00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS +00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE +00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE +00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS +00D0; C; 00F0; # LATIN CAPITAL LETTER ETH +00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE +00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE +00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE +00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE +00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS +00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE +00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE +00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE +00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS +00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE +00DE; C; 00FE; # LATIN CAPITAL LETTER THORN +00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S +0100; C; 0101; # LATIN CAPITAL LETTER A WITH MACRON +0102; C; 0103; # LATIN CAPITAL LETTER A WITH BREVE +0104; C; 0105; # LATIN CAPITAL LETTER A WITH OGONEK +0106; C; 0107; # LATIN CAPITAL LETTER C WITH ACUTE +0108; C; 0109; # LATIN CAPITAL LETTER C WITH CIRCUMFLEX +010A; C; 010B; # LATIN CAPITAL LETTER C WITH DOT ABOVE +010C; C; 010D; # LATIN CAPITAL LETTER C WITH CARON +010E; C; 010F; # LATIN CAPITAL LETTER D WITH CARON +0110; C; 0111; # LATIN CAPITAL LETTER D WITH STROKE +0112; C; 0113; # LATIN CAPITAL LETTER E WITH MACRON +0114; C; 0115; # LATIN CAPITAL LETTER E WITH BREVE +0116; C; 0117; # LATIN CAPITAL LETTER E WITH DOT ABOVE +0118; C; 0119; # LATIN CAPITAL LETTER E WITH OGONEK +011A; C; 011B; # LATIN CAPITAL LETTER E WITH CARON +011C; C; 011D; # LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011E; C; 011F; # LATIN CAPITAL LETTER G WITH BREVE +0120; C; 0121; # LATIN CAPITAL LETTER G WITH DOT ABOVE +0122; C; 0123; # LATIN CAPITAL LETTER G WITH CEDILLA +0124; C; 0125; # LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0126; C; 0127; # LATIN CAPITAL LETTER H WITH STROKE +0128; C; 0129; # LATIN CAPITAL LETTER I WITH TILDE +012A; C; 012B; # LATIN CAPITAL LETTER I WITH MACRON +012C; C; 012D; # LATIN CAPITAL LETTER I WITH BREVE +012E; C; 012F; # LATIN CAPITAL LETTER I WITH OGONEK +0130; F; 0069 0307; # LATIN CAPITAL LETTER I WITH DOT ABOVE +0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE +0132; C; 0133; # LATIN CAPITAL LIGATURE IJ +0134; C; 0135; # LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0136; C; 0137; # LATIN CAPITAL LETTER K WITH CEDILLA +0139; C; 013A; # LATIN CAPITAL LETTER L WITH ACUTE +013B; C; 013C; # LATIN CAPITAL LETTER L WITH CEDILLA +013D; C; 013E; # LATIN CAPITAL LETTER L WITH CARON +013F; C; 0140; # LATIN CAPITAL LETTER L WITH MIDDLE DOT +0141; C; 0142; # LATIN CAPITAL LETTER L WITH STROKE +0143; C; 0144; # LATIN CAPITAL LETTER N WITH ACUTE +0145; C; 0146; # LATIN CAPITAL LETTER N WITH CEDILLA +0147; C; 0148; # LATIN CAPITAL LETTER N WITH CARON +0149; F; 02BC 006E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014A; C; 014B; # LATIN CAPITAL LETTER ENG +014C; C; 014D; # LATIN CAPITAL LETTER O WITH MACRON +014E; C; 014F; # LATIN CAPITAL LETTER O WITH BREVE +0150; C; 0151; # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0152; C; 0153; # LATIN CAPITAL LIGATURE OE +0154; C; 0155; # LATIN CAPITAL LETTER R WITH ACUTE +0156; C; 0157; # LATIN CAPITAL LETTER R WITH CEDILLA +0158; C; 0159; # LATIN CAPITAL LETTER R WITH CARON +015A; C; 015B; # LATIN CAPITAL LETTER S WITH ACUTE +015C; C; 015D; # LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015E; C; 015F; # LATIN CAPITAL LETTER S WITH CEDILLA +0160; C; 0161; # LATIN CAPITAL LETTER S WITH CARON +0162; C; 0163; # LATIN CAPITAL LETTER T WITH CEDILLA +0164; C; 0165; # LATIN CAPITAL LETTER T WITH CARON +0166; C; 0167; # LATIN CAPITAL LETTER T WITH STROKE +0168; C; 0169; # LATIN CAPITAL LETTER U WITH TILDE +016A; C; 016B; # LATIN CAPITAL LETTER U WITH MACRON +016C; C; 016D; # LATIN CAPITAL LETTER U WITH BREVE +016E; C; 016F; # LATIN CAPITAL LETTER U WITH RING ABOVE +0170; C; 0171; # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0172; C; 0173; # LATIN CAPITAL LETTER U WITH OGONEK +0174; C; 0175; # LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0176; C; 0177; # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0178; C; 00FF; # LATIN CAPITAL LETTER Y WITH DIAERESIS +0179; C; 017A; # LATIN CAPITAL LETTER Z WITH ACUTE +017B; C; 017C; # LATIN CAPITAL LETTER Z WITH DOT ABOVE +017D; C; 017E; # LATIN CAPITAL LETTER Z WITH CARON +017F; C; 0073; # LATIN SMALL LETTER LONG S +0181; C; 0253; # LATIN CAPITAL LETTER B WITH HOOK +0182; C; 0183; # LATIN CAPITAL LETTER B WITH TOPBAR +0184; C; 0185; # LATIN CAPITAL LETTER TONE SIX +0186; C; 0254; # LATIN CAPITAL LETTER OPEN O +0187; C; 0188; # LATIN CAPITAL LETTER C WITH HOOK +0189; C; 0256; # LATIN CAPITAL LETTER AFRICAN D +018A; C; 0257; # LATIN CAPITAL LETTER D WITH HOOK +018B; C; 018C; # LATIN CAPITAL LETTER D WITH TOPBAR +018E; C; 01DD; # LATIN CAPITAL LETTER REVERSED E +018F; C; 0259; # LATIN CAPITAL LETTER SCHWA +0190; C; 025B; # LATIN CAPITAL LETTER OPEN E +0191; C; 0192; # LATIN CAPITAL LETTER F WITH HOOK +0193; C; 0260; # LATIN CAPITAL LETTER G WITH HOOK +0194; C; 0263; # LATIN CAPITAL LETTER GAMMA +0196; C; 0269; # LATIN CAPITAL LETTER IOTA +0197; C; 0268; # LATIN CAPITAL LETTER I WITH STROKE +0198; C; 0199; # LATIN CAPITAL LETTER K WITH HOOK +019C; C; 026F; # LATIN CAPITAL LETTER TURNED M +019D; C; 0272; # LATIN CAPITAL LETTER N WITH LEFT HOOK +019F; C; 0275; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE +01A0; C; 01A1; # LATIN CAPITAL LETTER O WITH HORN +01A2; C; 01A3; # LATIN CAPITAL LETTER OI +01A4; C; 01A5; # LATIN CAPITAL LETTER P WITH HOOK +01A6; C; 0280; # LATIN LETTER YR +01A7; C; 01A8; # LATIN CAPITAL LETTER TONE TWO +01A9; C; 0283; # LATIN CAPITAL LETTER ESH +01AC; C; 01AD; # LATIN CAPITAL LETTER T WITH HOOK +01AE; C; 0288; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK +01AF; C; 01B0; # LATIN CAPITAL LETTER U WITH HORN +01B1; C; 028A; # LATIN CAPITAL LETTER UPSILON +01B2; C; 028B; # LATIN CAPITAL LETTER V WITH HOOK +01B3; C; 01B4; # LATIN CAPITAL LETTER Y WITH HOOK +01B5; C; 01B6; # LATIN CAPITAL LETTER Z WITH STROKE +01B7; C; 0292; # LATIN CAPITAL LETTER EZH +01B8; C; 01B9; # LATIN CAPITAL LETTER EZH REVERSED +01BC; C; 01BD; # LATIN CAPITAL LETTER TONE FIVE +01C4; C; 01C6; # LATIN CAPITAL LETTER DZ WITH CARON +01C5; C; 01C6; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON +01C7; C; 01C9; # LATIN CAPITAL LETTER LJ +01C8; C; 01C9; # LATIN CAPITAL LETTER L WITH SMALL LETTER J +01CA; C; 01CC; # LATIN CAPITAL LETTER NJ +01CB; C; 01CC; # LATIN CAPITAL LETTER N WITH SMALL LETTER J +01CD; C; 01CE; # LATIN CAPITAL LETTER A WITH CARON +01CF; C; 01D0; # LATIN CAPITAL LETTER I WITH CARON +01D1; C; 01D2; # LATIN CAPITAL LETTER O WITH CARON +01D3; C; 01D4; # LATIN CAPITAL LETTER U WITH CARON +01D5; C; 01D6; # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01D7; C; 01D8; # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D9; C; 01DA; # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +01DB; C; 01DC; # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01DE; C; 01DF; # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +01E0; C; 01E1; # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +01E2; C; 01E3; # LATIN CAPITAL LETTER AE WITH MACRON +01E4; C; 01E5; # LATIN CAPITAL LETTER G WITH STROKE +01E6; C; 01E7; # LATIN CAPITAL LETTER G WITH CARON +01E8; C; 01E9; # LATIN CAPITAL LETTER K WITH CARON +01EA; C; 01EB; # LATIN CAPITAL LETTER O WITH OGONEK +01EC; C; 01ED; # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +01EE; C; 01EF; # LATIN CAPITAL LETTER EZH WITH CARON +01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON +01F1; C; 01F3; # LATIN CAPITAL LETTER DZ +01F2; C; 01F3; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z +01F4; C; 01F5; # LATIN CAPITAL LETTER G WITH ACUTE +01F6; C; 0195; # LATIN CAPITAL LETTER HWAIR +01F7; C; 01BF; # LATIN CAPITAL LETTER WYNN +01F8; C; 01F9; # LATIN CAPITAL LETTER N WITH GRAVE +01FA; C; 01FB; # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +01FC; C; 01FD; # LATIN CAPITAL LETTER AE WITH ACUTE +01FE; C; 01FF; # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +0200; C; 0201; # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE +0202; C; 0203; # LATIN CAPITAL LETTER A WITH INVERTED BREVE +0204; C; 0205; # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE +0206; C; 0207; # LATIN CAPITAL LETTER E WITH INVERTED BREVE +0208; C; 0209; # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE +020A; C; 020B; # LATIN CAPITAL LETTER I WITH INVERTED BREVE +020C; C; 020D; # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE +020E; C; 020F; # LATIN CAPITAL LETTER O WITH INVERTED BREVE +0210; C; 0211; # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE +0212; C; 0213; # LATIN CAPITAL LETTER R WITH INVERTED BREVE +0214; C; 0215; # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE +0216; C; 0217; # LATIN CAPITAL LETTER U WITH INVERTED BREVE +0218; C; 0219; # LATIN CAPITAL LETTER S WITH COMMA BELOW +021A; C; 021B; # LATIN CAPITAL LETTER T WITH COMMA BELOW +021C; C; 021D; # LATIN CAPITAL LETTER YOGH +021E; C; 021F; # LATIN CAPITAL LETTER H WITH CARON +0220; C; 019E; # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0222; C; 0223; # LATIN CAPITAL LETTER OU +0224; C; 0225; # LATIN CAPITAL LETTER Z WITH HOOK +0226; C; 0227; # LATIN CAPITAL LETTER A WITH DOT ABOVE +0228; C; 0229; # LATIN CAPITAL LETTER E WITH CEDILLA +022A; C; 022B; # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +022C; C; 022D; # LATIN CAPITAL LETTER O WITH TILDE AND MACRON +022E; C; 022F; # LATIN CAPITAL LETTER O WITH DOT ABOVE +0230; C; 0231; # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON +0232; C; 0233; # LATIN CAPITAL LETTER Y WITH MACRON +023A; C; 2C65; # LATIN CAPITAL LETTER A WITH STROKE +023B; C; 023C; # LATIN CAPITAL LETTER C WITH STROKE +023D; C; 019A; # LATIN CAPITAL LETTER L WITH BAR +023E; C; 2C66; # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE +0241; C; 0242; # LATIN CAPITAL LETTER GLOTTAL STOP +0243; C; 0180; # LATIN CAPITAL LETTER B WITH STROKE +0244; C; 0289; # LATIN CAPITAL LETTER U BAR +0245; C; 028C; # LATIN CAPITAL LETTER TURNED V +0246; C; 0247; # LATIN CAPITAL LETTER E WITH STROKE +0248; C; 0249; # LATIN CAPITAL LETTER J WITH STROKE +024A; C; 024B; # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL +024C; C; 024D; # LATIN CAPITAL LETTER R WITH STROKE +024E; C; 024F; # LATIN CAPITAL LETTER Y WITH STROKE +0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI +0370; C; 0371; # GREEK CAPITAL LETTER HETA +0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI +0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS +0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS +0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS +038A; C; 03AF; # GREEK CAPITAL LETTER IOTA WITH TONOS +038C; C; 03CC; # GREEK CAPITAL LETTER OMICRON WITH TONOS +038E; C; 03CD; # GREEK CAPITAL LETTER UPSILON WITH TONOS +038F; C; 03CE; # GREEK CAPITAL LETTER OMEGA WITH TONOS +0390; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0391; C; 03B1; # GREEK CAPITAL LETTER ALPHA +0392; C; 03B2; # GREEK CAPITAL LETTER BETA +0393; C; 03B3; # GREEK CAPITAL LETTER GAMMA +0394; C; 03B4; # GREEK CAPITAL LETTER DELTA +0395; C; 03B5; # GREEK CAPITAL LETTER EPSILON +0396; C; 03B6; # GREEK CAPITAL LETTER ZETA +0397; C; 03B7; # GREEK CAPITAL LETTER ETA +0398; C; 03B8; # GREEK CAPITAL LETTER THETA +0399; C; 03B9; # GREEK CAPITAL LETTER IOTA +039A; C; 03BA; # GREEK CAPITAL LETTER KAPPA +039B; C; 03BB; # GREEK CAPITAL LETTER LAMDA +039C; C; 03BC; # GREEK CAPITAL LETTER MU +039D; C; 03BD; # GREEK CAPITAL LETTER NU +039E; C; 03BE; # GREEK CAPITAL LETTER XI +039F; C; 03BF; # GREEK CAPITAL LETTER OMICRON +03A0; C; 03C0; # GREEK CAPITAL LETTER PI +03A1; C; 03C1; # GREEK CAPITAL LETTER RHO +03A3; C; 03C3; # GREEK CAPITAL LETTER SIGMA +03A4; C; 03C4; # GREEK CAPITAL LETTER TAU +03A5; C; 03C5; # GREEK CAPITAL LETTER UPSILON +03A6; C; 03C6; # GREEK CAPITAL LETTER PHI +03A7; C; 03C7; # GREEK CAPITAL LETTER CHI +03A8; C; 03C8; # GREEK CAPITAL LETTER PSI +03A9; C; 03C9; # GREEK CAPITAL LETTER OMEGA +03AA; C; 03CA; # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +03AB; C; 03CB; # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03B0; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +03C2; C; 03C3; # GREEK SMALL LETTER FINAL SIGMA +03CF; C; 03D7; # GREEK CAPITAL KAI SYMBOL +03D0; C; 03B2; # GREEK BETA SYMBOL +03D1; C; 03B8; # GREEK THETA SYMBOL +03D5; C; 03C6; # GREEK PHI SYMBOL +03D6; C; 03C0; # GREEK PI SYMBOL +03D8; C; 03D9; # GREEK LETTER ARCHAIC KOPPA +03DA; C; 03DB; # GREEK LETTER STIGMA +03DC; C; 03DD; # GREEK LETTER DIGAMMA +03DE; C; 03DF; # GREEK LETTER KOPPA +03E0; C; 03E1; # GREEK LETTER SAMPI +03E2; C; 03E3; # COPTIC CAPITAL LETTER SHEI +03E4; C; 03E5; # COPTIC CAPITAL LETTER FEI +03E6; C; 03E7; # COPTIC CAPITAL LETTER KHEI +03E8; C; 03E9; # COPTIC CAPITAL LETTER HORI +03EA; C; 03EB; # COPTIC CAPITAL LETTER GANGIA +03EC; C; 03ED; # COPTIC CAPITAL LETTER SHIMA +03EE; C; 03EF; # COPTIC CAPITAL LETTER DEI +03F0; C; 03BA; # GREEK KAPPA SYMBOL +03F1; C; 03C1; # GREEK RHO SYMBOL +03F4; C; 03B8; # GREEK CAPITAL THETA SYMBOL +03F5; C; 03B5; # GREEK LUNATE EPSILON SYMBOL +03F7; C; 03F8; # GREEK CAPITAL LETTER SHO +03F9; C; 03F2; # GREEK CAPITAL LUNATE SIGMA SYMBOL +03FA; C; 03FB; # GREEK CAPITAL LETTER SAN +03FD; C; 037B; # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL +03FE; C; 037C; # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL +03FF; C; 037D; # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL +0400; C; 0450; # CYRILLIC CAPITAL LETTER IE WITH GRAVE +0401; C; 0451; # CYRILLIC CAPITAL LETTER IO +0402; C; 0452; # CYRILLIC CAPITAL LETTER DJE +0403; C; 0453; # CYRILLIC CAPITAL LETTER GJE +0404; C; 0454; # CYRILLIC CAPITAL LETTER UKRAINIAN IE +0405; C; 0455; # CYRILLIC CAPITAL LETTER DZE +0406; C; 0456; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0407; C; 0457; # CYRILLIC CAPITAL LETTER YI +0408; C; 0458; # CYRILLIC CAPITAL LETTER JE +0409; C; 0459; # CYRILLIC CAPITAL LETTER LJE +040A; C; 045A; # CYRILLIC CAPITAL LETTER NJE +040B; C; 045B; # CYRILLIC CAPITAL LETTER TSHE +040C; C; 045C; # CYRILLIC CAPITAL LETTER KJE +040D; C; 045D; # CYRILLIC CAPITAL LETTER I WITH GRAVE +040E; C; 045E; # CYRILLIC CAPITAL LETTER SHORT U +040F; C; 045F; # CYRILLIC CAPITAL LETTER DZHE +0410; C; 0430; # CYRILLIC CAPITAL LETTER A +0411; C; 0431; # CYRILLIC CAPITAL LETTER BE +0412; C; 0432; # CYRILLIC CAPITAL LETTER VE +0413; C; 0433; # CYRILLIC CAPITAL LETTER GHE +0414; C; 0434; # CYRILLIC CAPITAL LETTER DE +0415; C; 0435; # CYRILLIC CAPITAL LETTER IE +0416; C; 0436; # CYRILLIC CAPITAL LETTER ZHE +0417; C; 0437; # CYRILLIC CAPITAL LETTER ZE +0418; C; 0438; # CYRILLIC CAPITAL LETTER I +0419; C; 0439; # CYRILLIC CAPITAL LETTER SHORT I +041A; C; 043A; # CYRILLIC CAPITAL LETTER KA +041B; C; 043B; # CYRILLIC CAPITAL LETTER EL +041C; C; 043C; # CYRILLIC CAPITAL LETTER EM +041D; C; 043D; # CYRILLIC CAPITAL LETTER EN +041E; C; 043E; # CYRILLIC CAPITAL LETTER O +041F; C; 043F; # CYRILLIC CAPITAL LETTER PE +0420; C; 0440; # CYRILLIC CAPITAL LETTER ER +0421; C; 0441; # CYRILLIC CAPITAL LETTER ES +0422; C; 0442; # CYRILLIC CAPITAL LETTER TE +0423; C; 0443; # CYRILLIC CAPITAL LETTER U +0424; C; 0444; # CYRILLIC CAPITAL LETTER EF +0425; C; 0445; # CYRILLIC CAPITAL LETTER HA +0426; C; 0446; # CYRILLIC CAPITAL LETTER TSE +0427; C; 0447; # CYRILLIC CAPITAL LETTER CHE +0428; C; 0448; # CYRILLIC CAPITAL LETTER SHA +0429; C; 0449; # CYRILLIC CAPITAL LETTER SHCHA +042A; C; 044A; # CYRILLIC CAPITAL LETTER HARD SIGN +042B; C; 044B; # CYRILLIC CAPITAL LETTER YERU +042C; C; 044C; # CYRILLIC CAPITAL LETTER SOFT SIGN +042D; C; 044D; # CYRILLIC CAPITAL LETTER E +042E; C; 044E; # CYRILLIC CAPITAL LETTER YU +042F; C; 044F; # CYRILLIC CAPITAL LETTER YA +0460; C; 0461; # CYRILLIC CAPITAL LETTER OMEGA +0462; C; 0463; # CYRILLIC CAPITAL LETTER YAT +0464; C; 0465; # CYRILLIC CAPITAL LETTER IOTIFIED E +0466; C; 0467; # CYRILLIC CAPITAL LETTER LITTLE YUS +0468; C; 0469; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS +046A; C; 046B; # CYRILLIC CAPITAL LETTER BIG YUS +046C; C; 046D; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS +046E; C; 046F; # CYRILLIC CAPITAL LETTER KSI +0470; C; 0471; # CYRILLIC CAPITAL LETTER PSI +0472; C; 0473; # CYRILLIC CAPITAL LETTER FITA +0474; C; 0475; # CYRILLIC CAPITAL LETTER IZHITSA +0476; C; 0477; # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0478; C; 0479; # CYRILLIC CAPITAL LETTER UK +047A; C; 047B; # CYRILLIC CAPITAL LETTER ROUND OMEGA +047C; C; 047D; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO +047E; C; 047F; # CYRILLIC CAPITAL LETTER OT +0480; C; 0481; # CYRILLIC CAPITAL LETTER KOPPA +048A; C; 048B; # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +048C; C; 048D; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN +048E; C; 048F; # CYRILLIC CAPITAL LETTER ER WITH TICK +0490; C; 0491; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0492; C; 0493; # CYRILLIC CAPITAL LETTER GHE WITH STROKE +0494; C; 0495; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +0496; C; 0497; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +0498; C; 0499; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +049A; C; 049B; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER +049C; C; 049D; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +049E; C; 049F; # CYRILLIC CAPITAL LETTER KA WITH STROKE +04A0; C; 04A1; # CYRILLIC CAPITAL LETTER BASHKIR KA +04A2; C; 04A3; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER +04A4; C; 04A5; # CYRILLIC CAPITAL LIGATURE EN GHE +04A6; C; 04A7; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +04A8; C; 04A9; # CYRILLIC CAPITAL LETTER ABKHASIAN HA +04AA; C; 04AB; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER +04AC; C; 04AD; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER +04AE; C; 04AF; # CYRILLIC CAPITAL LETTER STRAIGHT U +04B0; C; 04B1; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +04B2; C; 04B3; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER +04B4; C; 04B5; # CYRILLIC CAPITAL LIGATURE TE TSE +04B6; C; 04B7; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +04B8; C; 04B9; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +04BA; C; 04BB; # CYRILLIC CAPITAL LETTER SHHA +04BC; C; 04BD; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE +04BE; C; 04BF; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +04C0; C; 04CF; # CYRILLIC LETTER PALOCHKA +04C1; C; 04C2; # CYRILLIC CAPITAL LETTER ZHE WITH BREVE +04C3; C; 04C4; # CYRILLIC CAPITAL LETTER KA WITH HOOK +04C5; C; 04C6; # CYRILLIC CAPITAL LETTER EL WITH TAIL +04C7; C; 04C8; # CYRILLIC CAPITAL LETTER EN WITH HOOK +04C9; C; 04CA; # CYRILLIC CAPITAL LETTER EN WITH TAIL +04CB; C; 04CC; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +04CD; C; 04CE; # CYRILLIC CAPITAL LETTER EM WITH TAIL +04D0; C; 04D1; # CYRILLIC CAPITAL LETTER A WITH BREVE +04D2; C; 04D3; # CYRILLIC CAPITAL LETTER A WITH DIAERESIS +04D4; C; 04D5; # CYRILLIC CAPITAL LIGATURE A IE +04D6; C; 04D7; # CYRILLIC CAPITAL LETTER IE WITH BREVE +04D8; C; 04D9; # CYRILLIC CAPITAL LETTER SCHWA +04DA; C; 04DB; # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS +04DC; C; 04DD; # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DE; C; 04DF; # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04E0; C; 04E1; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE +04E2; C; 04E3; # CYRILLIC CAPITAL LETTER I WITH MACRON +04E4; C; 04E5; # CYRILLIC CAPITAL LETTER I WITH DIAERESIS +04E6; C; 04E7; # CYRILLIC CAPITAL LETTER O WITH DIAERESIS +04E8; C; 04E9; # CYRILLIC CAPITAL LETTER BARRED O +04EA; C; 04EB; # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS +04EC; C; 04ED; # CYRILLIC CAPITAL LETTER E WITH DIAERESIS +04EE; C; 04EF; # CYRILLIC CAPITAL LETTER U WITH MACRON +04F0; C; 04F1; # CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F2; C; 04F3; # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F4; C; 04F5; # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F6; C; 04F7; # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +04F8; C; 04F9; # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04FA; C; 04FB; # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK +04FC; C; 04FD; # CYRILLIC CAPITAL LETTER HA WITH HOOK +04FE; C; 04FF; # CYRILLIC CAPITAL LETTER HA WITH STROKE +0500; C; 0501; # CYRILLIC CAPITAL LETTER KOMI DE +0502; C; 0503; # CYRILLIC CAPITAL LETTER KOMI DJE +0504; C; 0505; # CYRILLIC CAPITAL LETTER KOMI ZJE +0506; C; 0507; # CYRILLIC CAPITAL LETTER KOMI DZJE +0508; C; 0509; # CYRILLIC CAPITAL LETTER KOMI LJE +050A; C; 050B; # CYRILLIC CAPITAL LETTER KOMI NJE +050C; C; 050D; # CYRILLIC CAPITAL LETTER KOMI SJE +050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE +0510; C; 0511; # CYRILLIC CAPITAL LETTER REVERSED ZE +0512; C; 0513; # CYRILLIC CAPITAL LETTER EL WITH HOOK +0514; C; 0515; # CYRILLIC CAPITAL LETTER LHA +0516; C; 0517; # CYRILLIC CAPITAL LETTER RHA +0518; C; 0519; # CYRILLIC CAPITAL LETTER YAE +051A; C; 051B; # CYRILLIC CAPITAL LETTER QA +051C; C; 051D; # CYRILLIC CAPITAL LETTER WE +051E; C; 051F; # CYRILLIC CAPITAL LETTER ALEUT KA +0520; C; 0521; # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB +0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN +0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM +0534; C; 0564; # ARMENIAN CAPITAL LETTER DA +0535; C; 0565; # ARMENIAN CAPITAL LETTER ECH +0536; C; 0566; # ARMENIAN CAPITAL LETTER ZA +0537; C; 0567; # ARMENIAN CAPITAL LETTER EH +0538; C; 0568; # ARMENIAN CAPITAL LETTER ET +0539; C; 0569; # ARMENIAN CAPITAL LETTER TO +053A; C; 056A; # ARMENIAN CAPITAL LETTER ZHE +053B; C; 056B; # ARMENIAN CAPITAL LETTER INI +053C; C; 056C; # ARMENIAN CAPITAL LETTER LIWN +053D; C; 056D; # ARMENIAN CAPITAL LETTER XEH +053E; C; 056E; # ARMENIAN CAPITAL LETTER CA +053F; C; 056F; # ARMENIAN CAPITAL LETTER KEN +0540; C; 0570; # ARMENIAN CAPITAL LETTER HO +0541; C; 0571; # ARMENIAN CAPITAL LETTER JA +0542; C; 0572; # ARMENIAN CAPITAL LETTER GHAD +0543; C; 0573; # ARMENIAN CAPITAL LETTER CHEH +0544; C; 0574; # ARMENIAN CAPITAL LETTER MEN +0545; C; 0575; # ARMENIAN CAPITAL LETTER YI +0546; C; 0576; # ARMENIAN CAPITAL LETTER NOW +0547; C; 0577; # ARMENIAN CAPITAL LETTER SHA +0548; C; 0578; # ARMENIAN CAPITAL LETTER VO +0549; C; 0579; # ARMENIAN CAPITAL LETTER CHA +054A; C; 057A; # ARMENIAN CAPITAL LETTER PEH +054B; C; 057B; # ARMENIAN CAPITAL LETTER JHEH +054C; C; 057C; # ARMENIAN CAPITAL LETTER RA +054D; C; 057D; # ARMENIAN CAPITAL LETTER SEH +054E; C; 057E; # ARMENIAN CAPITAL LETTER VEW +054F; C; 057F; # ARMENIAN CAPITAL LETTER TIWN +0550; C; 0580; # ARMENIAN CAPITAL LETTER REH +0551; C; 0581; # ARMENIAN CAPITAL LETTER CO +0552; C; 0582; # ARMENIAN CAPITAL LETTER YIWN +0553; C; 0583; # ARMENIAN CAPITAL LETTER PIWR +0554; C; 0584; # ARMENIAN CAPITAL LETTER KEH +0555; C; 0585; # ARMENIAN CAPITAL LETTER OH +0556; C; 0586; # ARMENIAN CAPITAL LETTER FEH +0587; F; 0565 0582; # ARMENIAN SMALL LIGATURE ECH YIWN +10A0; C; 2D00; # GEORGIAN CAPITAL LETTER AN +10A1; C; 2D01; # GEORGIAN CAPITAL LETTER BAN +10A2; C; 2D02; # GEORGIAN CAPITAL LETTER GAN +10A3; C; 2D03; # GEORGIAN CAPITAL LETTER DON +10A4; C; 2D04; # GEORGIAN CAPITAL LETTER EN +10A5; C; 2D05; # GEORGIAN CAPITAL LETTER VIN +10A6; C; 2D06; # GEORGIAN CAPITAL LETTER ZEN +10A7; C; 2D07; # GEORGIAN CAPITAL LETTER TAN +10A8; C; 2D08; # GEORGIAN CAPITAL LETTER IN +10A9; C; 2D09; # GEORGIAN CAPITAL LETTER KAN +10AA; C; 2D0A; # GEORGIAN CAPITAL LETTER LAS +10AB; C; 2D0B; # GEORGIAN CAPITAL LETTER MAN +10AC; C; 2D0C; # GEORGIAN CAPITAL LETTER NAR +10AD; C; 2D0D; # GEORGIAN CAPITAL LETTER ON +10AE; C; 2D0E; # GEORGIAN CAPITAL LETTER PAR +10AF; C; 2D0F; # GEORGIAN CAPITAL LETTER ZHAR +10B0; C; 2D10; # GEORGIAN CAPITAL LETTER RAE +10B1; C; 2D11; # GEORGIAN CAPITAL LETTER SAN +10B2; C; 2D12; # GEORGIAN CAPITAL LETTER TAR +10B3; C; 2D13; # GEORGIAN CAPITAL LETTER UN +10B4; C; 2D14; # GEORGIAN CAPITAL LETTER PHAR +10B5; C; 2D15; # GEORGIAN CAPITAL LETTER KHAR +10B6; C; 2D16; # GEORGIAN CAPITAL LETTER GHAN +10B7; C; 2D17; # GEORGIAN CAPITAL LETTER QAR +10B8; C; 2D18; # GEORGIAN CAPITAL LETTER SHIN +10B9; C; 2D19; # GEORGIAN CAPITAL LETTER CHIN +10BA; C; 2D1A; # GEORGIAN CAPITAL LETTER CAN +10BB; C; 2D1B; # GEORGIAN CAPITAL LETTER JIL +10BC; C; 2D1C; # GEORGIAN CAPITAL LETTER CIL +10BD; C; 2D1D; # GEORGIAN CAPITAL LETTER CHAR +10BE; C; 2D1E; # GEORGIAN CAPITAL LETTER XAN +10BF; C; 2D1F; # GEORGIAN CAPITAL LETTER JHAN +10C0; C; 2D20; # GEORGIAN CAPITAL LETTER HAE +10C1; C; 2D21; # GEORGIAN CAPITAL LETTER HE +10C2; C; 2D22; # GEORGIAN CAPITAL LETTER HIE +10C3; C; 2D23; # GEORGIAN CAPITAL LETTER WE +10C4; C; 2D24; # GEORGIAN CAPITAL LETTER HAR +10C5; C; 2D25; # GEORGIAN CAPITAL LETTER HOE +10C7; C; 2D27; # GEORGIAN CAPITAL LETTER YN +10CD; C; 2D2D; # GEORGIAN CAPITAL LETTER AEN +1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW +1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE +1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW +1E06; C; 1E07; # LATIN CAPITAL LETTER B WITH LINE BELOW +1E08; C; 1E09; # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +1E0A; C; 1E0B; # LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0C; C; 1E0D; # LATIN CAPITAL LETTER D WITH DOT BELOW +1E0E; C; 1E0F; # LATIN CAPITAL LETTER D WITH LINE BELOW +1E10; C; 1E11; # LATIN CAPITAL LETTER D WITH CEDILLA +1E12; C; 1E13; # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +1E14; C; 1E15; # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +1E16; C; 1E17; # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +1E18; C; 1E19; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +1E1A; C; 1E1B; # LATIN CAPITAL LETTER E WITH TILDE BELOW +1E1C; C; 1E1D; # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +1E1E; C; 1E1F; # LATIN CAPITAL LETTER F WITH DOT ABOVE +1E20; C; 1E21; # LATIN CAPITAL LETTER G WITH MACRON +1E22; C; 1E23; # LATIN CAPITAL LETTER H WITH DOT ABOVE +1E24; C; 1E25; # LATIN CAPITAL LETTER H WITH DOT BELOW +1E26; C; 1E27; # LATIN CAPITAL LETTER H WITH DIAERESIS +1E28; C; 1E29; # LATIN CAPITAL LETTER H WITH CEDILLA +1E2A; C; 1E2B; # LATIN CAPITAL LETTER H WITH BREVE BELOW +1E2C; C; 1E2D; # LATIN CAPITAL LETTER I WITH TILDE BELOW +1E2E; C; 1E2F; # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +1E30; C; 1E31; # LATIN CAPITAL LETTER K WITH ACUTE +1E32; C; 1E33; # LATIN CAPITAL LETTER K WITH DOT BELOW +1E34; C; 1E35; # LATIN CAPITAL LETTER K WITH LINE BELOW +1E36; C; 1E37; # LATIN CAPITAL LETTER L WITH DOT BELOW +1E38; C; 1E39; # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +1E3A; C; 1E3B; # LATIN CAPITAL LETTER L WITH LINE BELOW +1E3C; C; 1E3D; # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +1E3E; C; 1E3F; # LATIN CAPITAL LETTER M WITH ACUTE +1E40; C; 1E41; # LATIN CAPITAL LETTER M WITH DOT ABOVE +1E42; C; 1E43; # LATIN CAPITAL LETTER M WITH DOT BELOW +1E44; C; 1E45; # LATIN CAPITAL LETTER N WITH DOT ABOVE +1E46; C; 1E47; # LATIN CAPITAL LETTER N WITH DOT BELOW +1E48; C; 1E49; # LATIN CAPITAL LETTER N WITH LINE BELOW +1E4A; C; 1E4B; # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +1E4C; C; 1E4D; # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +1E4E; C; 1E4F; # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +1E50; C; 1E51; # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +1E52; C; 1E53; # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +1E54; C; 1E55; # LATIN CAPITAL LETTER P WITH ACUTE +1E56; C; 1E57; # LATIN CAPITAL LETTER P WITH DOT ABOVE +1E58; C; 1E59; # LATIN CAPITAL LETTER R WITH DOT ABOVE +1E5A; C; 1E5B; # LATIN CAPITAL LETTER R WITH DOT BELOW +1E5C; C; 1E5D; # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +1E5E; C; 1E5F; # LATIN CAPITAL LETTER R WITH LINE BELOW +1E60; C; 1E61; # LATIN CAPITAL LETTER S WITH DOT ABOVE +1E62; C; 1E63; # LATIN CAPITAL LETTER S WITH DOT BELOW +1E64; C; 1E65; # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +1E66; C; 1E67; # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +1E68; C; 1E69; # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6A; C; 1E6B; # LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6C; C; 1E6D; # LATIN CAPITAL LETTER T WITH DOT BELOW +1E6E; C; 1E6F; # LATIN CAPITAL LETTER T WITH LINE BELOW +1E70; C; 1E71; # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +1E72; C; 1E73; # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +1E74; C; 1E75; # LATIN CAPITAL LETTER U WITH TILDE BELOW +1E76; C; 1E77; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +1E78; C; 1E79; # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +1E7A; C; 1E7B; # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +1E7C; C; 1E7D; # LATIN CAPITAL LETTER V WITH TILDE +1E7E; C; 1E7F; # LATIN CAPITAL LETTER V WITH DOT BELOW +1E80; C; 1E81; # LATIN CAPITAL LETTER W WITH GRAVE +1E82; C; 1E83; # LATIN CAPITAL LETTER W WITH ACUTE +1E84; C; 1E85; # LATIN CAPITAL LETTER W WITH DIAERESIS +1E86; C; 1E87; # LATIN CAPITAL LETTER W WITH DOT ABOVE +1E88; C; 1E89; # LATIN CAPITAL LETTER W WITH DOT BELOW +1E8A; C; 1E8B; # LATIN CAPITAL LETTER X WITH DOT ABOVE +1E8C; C; 1E8D; # LATIN CAPITAL LETTER X WITH DIAERESIS +1E8E; C; 1E8F; # LATIN CAPITAL LETTER Y WITH DOT ABOVE +1E90; C; 1E91; # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +1E92; C; 1E93; # LATIN CAPITAL LETTER Z WITH DOT BELOW +1E94; C; 1E95; # LATIN CAPITAL LETTER Z WITH LINE BELOW +1E96; F; 0068 0331; # LATIN SMALL LETTER H WITH LINE BELOW +1E97; F; 0074 0308; # LATIN SMALL LETTER T WITH DIAERESIS +1E98; F; 0077 030A; # LATIN SMALL LETTER W WITH RING ABOVE +1E99; F; 0079 030A; # LATIN SMALL LETTER Y WITH RING ABOVE +1E9A; F; 0061 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING +1E9B; C; 1E61; # LATIN SMALL LETTER LONG S WITH DOT ABOVE +1E9E; F; 0073 0073; # LATIN CAPITAL LETTER SHARP S +1E9E; S; 00DF; # LATIN CAPITAL LETTER SHARP S +1EA0; C; 1EA1; # LATIN CAPITAL LETTER A WITH DOT BELOW +1EA2; C; 1EA3; # LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EA4; C; 1EA5; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA6; C; 1EA7; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA8; C; 1EA9; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAA; C; 1EAB; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EAC; C; 1EAD; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAE; C; 1EAF; # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB0; C; 1EB1; # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EB2; C; 1EB3; # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB4; C; 1EB5; # LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB6; C; 1EB7; # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +1EB8; C; 1EB9; # LATIN CAPITAL LETTER E WITH DOT BELOW +1EBA; C; 1EBB; # LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EBC; C; 1EBD; # LATIN CAPITAL LETTER E WITH TILDE +1EBE; C; 1EBF; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC0; C; 1EC1; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC2; C; 1EC3; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC4; C; 1EC5; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC6; C; 1EC7; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC8; C; 1EC9; # LATIN CAPITAL LETTER I WITH HOOK ABOVE +1ECA; C; 1ECB; # LATIN CAPITAL LETTER I WITH DOT BELOW +1ECC; C; 1ECD; # LATIN CAPITAL LETTER O WITH DOT BELOW +1ECE; C; 1ECF; # LATIN CAPITAL LETTER O WITH HOOK ABOVE +1ED0; C; 1ED1; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED2; C; 1ED3; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED4; C; 1ED5; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED6; C; 1ED7; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED8; C; 1ED9; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDA; C; 1EDB; # LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EDC; C; 1EDD; # LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDE; C; 1EDF; # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EE0; C; 1EE1; # LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EE2; C; 1EE3; # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +1EE4; C; 1EE5; # LATIN CAPITAL LETTER U WITH DOT BELOW +1EE6; C; 1EE7; # LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EE8; C; 1EE9; # LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EEA; C; 1EEB; # LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EEC; C; 1EED; # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EEE; C; 1EEF; # LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EF0; C; 1EF1; # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF2; C; 1EF3; # LATIN CAPITAL LETTER Y WITH GRAVE +1EF4; C; 1EF5; # LATIN CAPITAL LETTER Y WITH DOT BELOW +1EF6; C; 1EF7; # LATIN CAPITAL LETTER Y WITH HOOK ABOVE +1EF8; C; 1EF9; # LATIN CAPITAL LETTER Y WITH TILDE +1EFA; C; 1EFB; # LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFC; C; 1EFD; # LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFE; C; 1EFF; # LATIN CAPITAL LETTER Y WITH LOOP +1F08; C; 1F00; # GREEK CAPITAL LETTER ALPHA WITH PSILI +1F09; C; 1F01; # GREEK CAPITAL LETTER ALPHA WITH DASIA +1F0A; C; 1F02; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA +1F0B; C; 1F03; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA +1F0C; C; 1F04; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA +1F0D; C; 1F05; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA +1F0E; C; 1F06; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI +1F0F; C; 1F07; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F18; C; 1F10; # GREEK CAPITAL LETTER EPSILON WITH PSILI +1F19; C; 1F11; # GREEK CAPITAL LETTER EPSILON WITH DASIA +1F1A; C; 1F12; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA +1F1B; C; 1F13; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA +1F1C; C; 1F14; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA +1F1D; C; 1F15; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F28; C; 1F20; # GREEK CAPITAL LETTER ETA WITH PSILI +1F29; C; 1F21; # GREEK CAPITAL LETTER ETA WITH DASIA +1F2A; C; 1F22; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA +1F2B; C; 1F23; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA +1F2C; C; 1F24; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA +1F2D; C; 1F25; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA +1F2E; C; 1F26; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI +1F2F; C; 1F27; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI +1F38; C; 1F30; # GREEK CAPITAL LETTER IOTA WITH PSILI +1F39; C; 1F31; # GREEK CAPITAL LETTER IOTA WITH DASIA +1F3A; C; 1F32; # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA +1F3B; C; 1F33; # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA +1F3C; C; 1F34; # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA +1F3D; C; 1F35; # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA +1F3E; C; 1F36; # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI +1F3F; C; 1F37; # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI +1F48; C; 1F40; # GREEK CAPITAL LETTER OMICRON WITH PSILI +1F49; C; 1F41; # GREEK CAPITAL LETTER OMICRON WITH DASIA +1F4A; C; 1F42; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA +1F4B; C; 1F43; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA +1F4C; C; 1F44; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA +1F4D; C; 1F45; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50; F; 03C5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI +1F52; F; 03C5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA +1F54; F; 03C5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA +1F56; F; 03C5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI +1F59; C; 1F51; # GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B; C; 1F53; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D; C; 1F55; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F; C; 1F57; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F68; C; 1F60; # GREEK CAPITAL LETTER OMEGA WITH PSILI +1F69; C; 1F61; # GREEK CAPITAL LETTER OMEGA WITH DASIA +1F6A; C; 1F62; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA +1F6B; C; 1F63; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA +1F6C; C; 1F64; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA +1F6D; C; 1F65; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA +1F6E; C; 1F66; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI +1F6F; C; 1F67; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F80; F; 1F00 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI +1F81; F; 1F01 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI +1F82; F; 1F02 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F83; F; 1F03 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F84; F; 1F04 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F85; F; 1F05 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F86; F; 1F06 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F87; F; 1F07 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F88; F; 1F00 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI +1F88; S; 1F80; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI +1F89; F; 1F01 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI +1F89; S; 1F81; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI +1F8A; F; 1F02 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F8A; S; 1F82; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F8B; F; 1F03 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F8B; S; 1F83; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F8C; F; 1F04 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F8C; S; 1F84; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F8D; F; 1F05 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F8D; S; 1F85; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F8E; F; 1F06 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F8E; S; 1F86; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F8F; F; 1F07 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F8F; S; 1F87; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F90; F; 1F20 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI +1F91; F; 1F21 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI +1F92; F; 1F22 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F93; F; 1F23 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F94; F; 1F24 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F95; F; 1F25 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F96; F; 1F26 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F97; F; 1F27 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F98; F; 1F20 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI +1F98; S; 1F90; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI +1F99; F; 1F21 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI +1F99; S; 1F91; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI +1F9A; F; 1F22 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F9A; S; 1F92; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F9B; F; 1F23 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F9B; S; 1F93; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F9C; F; 1F24 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F9C; S; 1F94; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F9D; F; 1F25 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F9D; S; 1F95; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F9E; F; 1F26 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F9E; S; 1F96; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F9F; F; 1F27 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F9F; S; 1F97; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FA0; F; 1F60 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI +1FA1; F; 1F61 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI +1FA2; F; 1F62 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1FA3; F; 1F63 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1FA4; F; 1F64 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1FA5; F; 1F65 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1FA6; F; 1F66 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1FA7; F; 1F67 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FA8; F; 1F60 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI +1FA8; S; 1FA0; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI +1FA9; F; 1F61 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI +1FA9; S; 1FA1; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI +1FAA; F; 1F62 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1FAA; S; 1FA2; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1FAB; F; 1F63 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1FAB; S; 1FA3; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1FAC; F; 1F64 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1FAC; S; 1FA4; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1FAD; F; 1F65 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1FAD; S; 1FA5; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1FAE; F; 1F66 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1FAE; S; 1FA6; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1FAF; F; 1F67 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FAF; S; 1FA7; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FB2; F; 1F70 03B9; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI +1FB3; F; 03B1 03B9; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI +1FB4; F; 03AC 03B9; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6; F; 03B1 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI +1FB7; F; 03B1 0342 03B9; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FB8; C; 1FB0; # GREEK CAPITAL LETTER ALPHA WITH VRACHY +1FB9; C; 1FB1; # GREEK CAPITAL LETTER ALPHA WITH MACRON +1FBA; C; 1F70; # GREEK CAPITAL LETTER ALPHA WITH VARIA +1FBB; C; 1F71; # GREEK CAPITAL LETTER ALPHA WITH OXIA +1FBC; F; 03B1 03B9; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBC; S; 1FB3; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE; C; 03B9; # GREEK PROSGEGRAMMENI +1FC2; F; 1F74 03B9; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI +1FC3; F; 03B7 03B9; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI +1FC4; F; 03AE 03B9; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6; F; 03B7 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI +1FC7; F; 03B7 0342 03B9; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FC8; C; 1F72; # GREEK CAPITAL LETTER EPSILON WITH VARIA +1FC9; C; 1F73; # GREEK CAPITAL LETTER EPSILON WITH OXIA +1FCA; C; 1F74; # GREEK CAPITAL LETTER ETA WITH VARIA +1FCB; C; 1F75; # GREEK CAPITAL LETTER ETA WITH OXIA +1FCC; F; 03B7 03B9; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA +1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI +1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY +1FD9; C; 1FD1; # GREEK CAPITAL LETTER IOTA WITH MACRON +1FDA; C; 1F76; # GREEK CAPITAL LETTER IOTA WITH VARIA +1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA +1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA +1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA +1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI +1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI +1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FE8; C; 1FE0; # GREEK CAPITAL LETTER UPSILON WITH VRACHY +1FE9; C; 1FE1; # GREEK CAPITAL LETTER UPSILON WITH MACRON +1FEA; C; 1F7A; # GREEK CAPITAL LETTER UPSILON WITH VARIA +1FEB; C; 1F7B; # GREEK CAPITAL LETTER UPSILON WITH OXIA +1FEC; C; 1FE5; # GREEK CAPITAL LETTER RHO WITH DASIA +1FF2; F; 1F7C 03B9; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI +1FF3; F; 03C9 03B9; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI +1FF4; F; 03CE 03B9; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6; F; 03C9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI +1FF7; F; 03C9 0342 03B9; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI +1FF8; C; 1F78; # GREEK CAPITAL LETTER OMICRON WITH VARIA +1FF9; C; 1F79; # GREEK CAPITAL LETTER OMICRON WITH OXIA +1FFA; C; 1F7C; # GREEK CAPITAL LETTER OMEGA WITH VARIA +1FFB; C; 1F7D; # GREEK CAPITAL LETTER OMEGA WITH OXIA +1FFC; F; 03C9 03B9; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +1FFC; S; 1FF3; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2126; C; 03C9; # OHM SIGN +212A; C; 006B; # KELVIN SIGN +212B; C; 00E5; # ANGSTROM SIGN +2132; C; 214E; # TURNED CAPITAL F +2160; C; 2170; # ROMAN NUMERAL ONE +2161; C; 2171; # ROMAN NUMERAL TWO +2162; C; 2172; # ROMAN NUMERAL THREE +2163; C; 2173; # ROMAN NUMERAL FOUR +2164; C; 2174; # ROMAN NUMERAL FIVE +2165; C; 2175; # ROMAN NUMERAL SIX +2166; C; 2176; # ROMAN NUMERAL SEVEN +2167; C; 2177; # ROMAN NUMERAL EIGHT +2168; C; 2178; # ROMAN NUMERAL NINE +2169; C; 2179; # ROMAN NUMERAL TEN +216A; C; 217A; # ROMAN NUMERAL ELEVEN +216B; C; 217B; # ROMAN NUMERAL TWELVE +216C; C; 217C; # ROMAN NUMERAL FIFTY +216D; C; 217D; # ROMAN NUMERAL ONE HUNDRED +216E; C; 217E; # ROMAN NUMERAL FIVE HUNDRED +216F; C; 217F; # ROMAN NUMERAL ONE THOUSAND +2183; C; 2184; # ROMAN NUMERAL REVERSED ONE HUNDRED +24B6; C; 24D0; # CIRCLED LATIN CAPITAL LETTER A +24B7; C; 24D1; # CIRCLED LATIN CAPITAL LETTER B +24B8; C; 24D2; # CIRCLED LATIN CAPITAL LETTER C +24B9; C; 24D3; # CIRCLED LATIN CAPITAL LETTER D +24BA; C; 24D4; # CIRCLED LATIN CAPITAL LETTER E +24BB; C; 24D5; # CIRCLED LATIN CAPITAL LETTER F +24BC; C; 24D6; # CIRCLED LATIN CAPITAL LETTER G +24BD; C; 24D7; # CIRCLED LATIN CAPITAL LETTER H +24BE; C; 24D8; # CIRCLED LATIN CAPITAL LETTER I +24BF; C; 24D9; # CIRCLED LATIN CAPITAL LETTER J +24C0; C; 24DA; # CIRCLED LATIN CAPITAL LETTER K +24C1; C; 24DB; # CIRCLED LATIN CAPITAL LETTER L +24C2; C; 24DC; # CIRCLED LATIN CAPITAL LETTER M +24C3; C; 24DD; # CIRCLED LATIN CAPITAL LETTER N +24C4; C; 24DE; # CIRCLED LATIN CAPITAL LETTER O +24C5; C; 24DF; # CIRCLED LATIN CAPITAL LETTER P +24C6; C; 24E0; # CIRCLED LATIN CAPITAL LETTER Q +24C7; C; 24E1; # CIRCLED LATIN CAPITAL LETTER R +24C8; C; 24E2; # CIRCLED LATIN CAPITAL LETTER S +24C9; C; 24E3; # CIRCLED LATIN CAPITAL LETTER T +24CA; C; 24E4; # CIRCLED LATIN CAPITAL LETTER U +24CB; C; 24E5; # CIRCLED LATIN CAPITAL LETTER V +24CC; C; 24E6; # CIRCLED LATIN CAPITAL LETTER W +24CD; C; 24E7; # CIRCLED LATIN CAPITAL LETTER X +24CE; C; 24E8; # CIRCLED LATIN CAPITAL LETTER Y +24CF; C; 24E9; # CIRCLED LATIN CAPITAL LETTER Z +2C00; C; 2C30; # GLAGOLITIC CAPITAL LETTER AZU +2C01; C; 2C31; # GLAGOLITIC CAPITAL LETTER BUKY +2C02; C; 2C32; # GLAGOLITIC CAPITAL LETTER VEDE +2C03; C; 2C33; # GLAGOLITIC CAPITAL LETTER GLAGOLI +2C04; C; 2C34; # GLAGOLITIC CAPITAL LETTER DOBRO +2C05; C; 2C35; # GLAGOLITIC CAPITAL LETTER YESTU +2C06; C; 2C36; # GLAGOLITIC CAPITAL LETTER ZHIVETE +2C07; C; 2C37; # GLAGOLITIC CAPITAL LETTER DZELO +2C08; C; 2C38; # GLAGOLITIC CAPITAL LETTER ZEMLJA +2C09; C; 2C39; # GLAGOLITIC CAPITAL LETTER IZHE +2C0A; C; 2C3A; # GLAGOLITIC CAPITAL LETTER INITIAL IZHE +2C0B; C; 2C3B; # GLAGOLITIC CAPITAL LETTER I +2C0C; C; 2C3C; # GLAGOLITIC CAPITAL LETTER DJERVI +2C0D; C; 2C3D; # GLAGOLITIC CAPITAL LETTER KAKO +2C0E; C; 2C3E; # GLAGOLITIC CAPITAL LETTER LJUDIJE +2C0F; C; 2C3F; # GLAGOLITIC CAPITAL LETTER MYSLITE +2C10; C; 2C40; # GLAGOLITIC CAPITAL LETTER NASHI +2C11; C; 2C41; # GLAGOLITIC CAPITAL LETTER ONU +2C12; C; 2C42; # GLAGOLITIC CAPITAL LETTER POKOJI +2C13; C; 2C43; # GLAGOLITIC CAPITAL LETTER RITSI +2C14; C; 2C44; # GLAGOLITIC CAPITAL LETTER SLOVO +2C15; C; 2C45; # GLAGOLITIC CAPITAL LETTER TVRIDO +2C16; C; 2C46; # GLAGOLITIC CAPITAL LETTER UKU +2C17; C; 2C47; # GLAGOLITIC CAPITAL LETTER FRITU +2C18; C; 2C48; # GLAGOLITIC CAPITAL LETTER HERU +2C19; C; 2C49; # GLAGOLITIC CAPITAL LETTER OTU +2C1A; C; 2C4A; # GLAGOLITIC CAPITAL LETTER PE +2C1B; C; 2C4B; # GLAGOLITIC CAPITAL LETTER SHTA +2C1C; C; 2C4C; # GLAGOLITIC CAPITAL LETTER TSI +2C1D; C; 2C4D; # GLAGOLITIC CAPITAL LETTER CHRIVI +2C1E; C; 2C4E; # GLAGOLITIC CAPITAL LETTER SHA +2C1F; C; 2C4F; # GLAGOLITIC CAPITAL LETTER YERU +2C20; C; 2C50; # GLAGOLITIC CAPITAL LETTER YERI +2C21; C; 2C51; # GLAGOLITIC CAPITAL LETTER YATI +2C22; C; 2C52; # GLAGOLITIC CAPITAL LETTER SPIDERY HA +2C23; C; 2C53; # GLAGOLITIC CAPITAL LETTER YU +2C24; C; 2C54; # GLAGOLITIC CAPITAL LETTER SMALL YUS +2C25; C; 2C55; # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL +2C26; C; 2C56; # GLAGOLITIC CAPITAL LETTER YO +2C27; C; 2C57; # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS +2C28; C; 2C58; # GLAGOLITIC CAPITAL LETTER BIG YUS +2C29; C; 2C59; # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS +2C2A; C; 2C5A; # GLAGOLITIC CAPITAL LETTER FITA +2C2B; C; 2C5B; # GLAGOLITIC CAPITAL LETTER IZHITSA +2C2C; C; 2C5C; # GLAGOLITIC CAPITAL LETTER SHTAPIC +2C2D; C; 2C5D; # GLAGOLITIC CAPITAL LETTER TROKUTASTI A +2C2E; C; 2C5E; # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C60; C; 2C61; # LATIN CAPITAL LETTER L WITH DOUBLE BAR +2C62; C; 026B; # LATIN CAPITAL LETTER L WITH MIDDLE TILDE +2C63; C; 1D7D; # LATIN CAPITAL LETTER P WITH STROKE +2C64; C; 027D; # LATIN CAPITAL LETTER R WITH TAIL +2C67; C; 2C68; # LATIN CAPITAL LETTER H WITH DESCENDER +2C69; C; 2C6A; # LATIN CAPITAL LETTER K WITH DESCENDER +2C6B; C; 2C6C; # LATIN CAPITAL LETTER Z WITH DESCENDER +2C6D; C; 0251; # LATIN CAPITAL LETTER ALPHA +2C6E; C; 0271; # LATIN CAPITAL LETTER M WITH HOOK +2C6F; C; 0250; # LATIN CAPITAL LETTER TURNED A +2C70; C; 0252; # LATIN CAPITAL LETTER TURNED ALPHA +2C72; C; 2C73; # LATIN CAPITAL LETTER W WITH HOOK +2C75; C; 2C76; # LATIN CAPITAL LETTER HALF H +2C7E; C; 023F; # LATIN CAPITAL LETTER S WITH SWASH TAIL +2C7F; C; 0240; # LATIN CAPITAL LETTER Z WITH SWASH TAIL +2C80; C; 2C81; # COPTIC CAPITAL LETTER ALFA +2C82; C; 2C83; # COPTIC CAPITAL LETTER VIDA +2C84; C; 2C85; # COPTIC CAPITAL LETTER GAMMA +2C86; C; 2C87; # COPTIC CAPITAL LETTER DALDA +2C88; C; 2C89; # COPTIC CAPITAL LETTER EIE +2C8A; C; 2C8B; # COPTIC CAPITAL LETTER SOU +2C8C; C; 2C8D; # COPTIC CAPITAL LETTER ZATA +2C8E; C; 2C8F; # COPTIC CAPITAL LETTER HATE +2C90; C; 2C91; # COPTIC CAPITAL LETTER THETHE +2C92; C; 2C93; # COPTIC CAPITAL LETTER IAUDA +2C94; C; 2C95; # COPTIC CAPITAL LETTER KAPA +2C96; C; 2C97; # COPTIC CAPITAL LETTER LAULA +2C98; C; 2C99; # COPTIC CAPITAL LETTER MI +2C9A; C; 2C9B; # COPTIC CAPITAL LETTER NI +2C9C; C; 2C9D; # COPTIC CAPITAL LETTER KSI +2C9E; C; 2C9F; # COPTIC CAPITAL LETTER O +2CA0; C; 2CA1; # COPTIC CAPITAL LETTER PI +2CA2; C; 2CA3; # COPTIC CAPITAL LETTER RO +2CA4; C; 2CA5; # COPTIC CAPITAL LETTER SIMA +2CA6; C; 2CA7; # COPTIC CAPITAL LETTER TAU +2CA8; C; 2CA9; # COPTIC CAPITAL LETTER UA +2CAA; C; 2CAB; # COPTIC CAPITAL LETTER FI +2CAC; C; 2CAD; # COPTIC CAPITAL LETTER KHI +2CAE; C; 2CAF; # COPTIC CAPITAL LETTER PSI +2CB0; C; 2CB1; # COPTIC CAPITAL LETTER OOU +2CB2; C; 2CB3; # COPTIC CAPITAL LETTER DIALECT-P ALEF +2CB4; C; 2CB5; # COPTIC CAPITAL LETTER OLD COPTIC AIN +2CB6; C; 2CB7; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE +2CB8; C; 2CB9; # COPTIC CAPITAL LETTER DIALECT-P KAPA +2CBA; C; 2CBB; # COPTIC CAPITAL LETTER DIALECT-P NI +2CBC; C; 2CBD; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI +2CBE; C; 2CBF; # COPTIC CAPITAL LETTER OLD COPTIC OOU +2CC0; C; 2CC1; # COPTIC CAPITAL LETTER SAMPI +2CC2; C; 2CC3; # COPTIC CAPITAL LETTER CROSSED SHEI +2CC4; C; 2CC5; # COPTIC CAPITAL LETTER OLD COPTIC SHEI +2CC6; C; 2CC7; # COPTIC CAPITAL LETTER OLD COPTIC ESH +2CC8; C; 2CC9; # COPTIC CAPITAL LETTER AKHMIMIC KHEI +2CCA; C; 2CCB; # COPTIC CAPITAL LETTER DIALECT-P HORI +2CCC; C; 2CCD; # COPTIC CAPITAL LETTER OLD COPTIC HORI +2CCE; C; 2CCF; # COPTIC CAPITAL LETTER OLD COPTIC HA +2CD0; C; 2CD1; # COPTIC CAPITAL LETTER L-SHAPED HA +2CD2; C; 2CD3; # COPTIC CAPITAL LETTER OLD COPTIC HEI +2CD4; C; 2CD5; # COPTIC CAPITAL LETTER OLD COPTIC HAT +2CD6; C; 2CD7; # COPTIC CAPITAL LETTER OLD COPTIC GANGIA +2CD8; C; 2CD9; # COPTIC CAPITAL LETTER OLD COPTIC DJA +2CDA; C; 2CDB; # COPTIC CAPITAL LETTER OLD COPTIC SHIMA +2CDC; C; 2CDD; # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA +2CDE; C; 2CDF; # COPTIC CAPITAL LETTER OLD NUBIAN NGI +2CE0; C; 2CE1; # COPTIC CAPITAL LETTER OLD NUBIAN NYI +2CE2; C; 2CE3; # COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CEB; C; 2CEC; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CED; C; 2CEE; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CF2; C; 2CF3; # COPTIC CAPITAL LETTER BOHAIRIC KHEI +A640; C; A641; # CYRILLIC CAPITAL LETTER ZEMLYA +A642; C; A643; # CYRILLIC CAPITAL LETTER DZELO +A644; C; A645; # CYRILLIC CAPITAL LETTER REVERSED DZE +A646; C; A647; # CYRILLIC CAPITAL LETTER IOTA +A648; C; A649; # CYRILLIC CAPITAL LETTER DJERV +A64A; C; A64B; # CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64C; C; A64D; # CYRILLIC CAPITAL LETTER BROAD OMEGA +A64E; C; A64F; # CYRILLIC CAPITAL LETTER NEUTRAL YER +A650; C; A651; # CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A652; C; A653; # CYRILLIC CAPITAL LETTER IOTIFIED YAT +A654; C; A655; # CYRILLIC CAPITAL LETTER REVERSED YU +A656; C; A657; # CYRILLIC CAPITAL LETTER IOTIFIED A +A658; C; A659; # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A65A; C; A65B; # CYRILLIC CAPITAL LETTER BLENDED YUS +A65C; C; A65D; # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65E; C; A65F; # CYRILLIC CAPITAL LETTER YN +A660; C; A661; # CYRILLIC CAPITAL LETTER REVERSED TSE +A662; C; A663; # CYRILLIC CAPITAL LETTER SOFT DE +A664; C; A665; # CYRILLIC CAPITAL LETTER SOFT EL +A666; C; A667; # CYRILLIC CAPITAL LETTER SOFT EM +A668; C; A669; # CYRILLIC CAPITAL LETTER MONOCULAR O +A66A; C; A66B; # CYRILLIC CAPITAL LETTER BINOCULAR O +A66C; C; A66D; # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A680; C; A681; # CYRILLIC CAPITAL LETTER DWE +A682; C; A683; # CYRILLIC CAPITAL LETTER DZWE +A684; C; A685; # CYRILLIC CAPITAL LETTER ZHWE +A686; C; A687; # CYRILLIC CAPITAL LETTER CCHE +A688; C; A689; # CYRILLIC CAPITAL LETTER DZZE +A68A; C; A68B; # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68C; C; A68D; # CYRILLIC CAPITAL LETTER TWE +A68E; C; A68F; # CYRILLIC CAPITAL LETTER TSWE +A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE +A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE +A694; C; A695; # CYRILLIC CAPITAL LETTER HWE +A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE +A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A726; C; A727; # LATIN CAPITAL LETTER HENG +A728; C; A729; # LATIN CAPITAL LETTER TZ +A72A; C; A72B; # LATIN CAPITAL LETTER TRESILLO +A72C; C; A72D; # LATIN CAPITAL LETTER CUATRILLO +A72E; C; A72F; # LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A732; C; A733; # LATIN CAPITAL LETTER AA +A734; C; A735; # LATIN CAPITAL LETTER AO +A736; C; A737; # LATIN CAPITAL LETTER AU +A738; C; A739; # LATIN CAPITAL LETTER AV +A73A; C; A73B; # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73C; C; A73D; # LATIN CAPITAL LETTER AY +A73E; C; A73F; # LATIN CAPITAL LETTER REVERSED C WITH DOT +A740; C; A741; # LATIN CAPITAL LETTER K WITH STROKE +A742; C; A743; # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A744; C; A745; # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A746; C; A747; # LATIN CAPITAL LETTER BROKEN L +A748; C; A749; # LATIN CAPITAL LETTER L WITH HIGH STROKE +A74A; C; A74B; # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74C; C; A74D; # LATIN CAPITAL LETTER O WITH LOOP +A74E; C; A74F; # LATIN CAPITAL LETTER OO +A750; C; A751; # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A752; C; A753; # LATIN CAPITAL LETTER P WITH FLOURISH +A754; C; A755; # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A756; C; A757; # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A758; C; A759; # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A75A; C; A75B; # LATIN CAPITAL LETTER R ROTUNDA +A75C; C; A75D; # LATIN CAPITAL LETTER RUM ROTUNDA +A75E; C; A75F; # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A760; C; A761; # LATIN CAPITAL LETTER VY +A762; C; A763; # LATIN CAPITAL LETTER VISIGOTHIC Z +A764; C; A765; # LATIN CAPITAL LETTER THORN WITH STROKE +A766; C; A767; # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A768; C; A769; # LATIN CAPITAL LETTER VEND +A76A; C; A76B; # LATIN CAPITAL LETTER ET +A76C; C; A76D; # LATIN CAPITAL LETTER IS +A76E; C; A76F; # LATIN CAPITAL LETTER CON +A779; C; A77A; # LATIN CAPITAL LETTER INSULAR D +A77B; C; A77C; # LATIN CAPITAL LETTER INSULAR F +A77D; C; 1D79; # LATIN CAPITAL LETTER INSULAR G +A77E; C; A77F; # LATIN CAPITAL LETTER TURNED INSULAR G +A780; C; A781; # LATIN CAPITAL LETTER TURNED L +A782; C; A783; # LATIN CAPITAL LETTER INSULAR R +A784; C; A785; # LATIN CAPITAL LETTER INSULAR S +A786; C; A787; # LATIN CAPITAL LETTER INSULAR T +A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO +A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H +A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER +A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR +A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK +FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF +FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI +FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL +FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI +FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL +FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T +FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST +FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW +FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH +FB15; F; 0574 056B; # ARMENIAN SMALL LIGATURE MEN INI +FB16; F; 057E 0576; # ARMENIAN SMALL LIGATURE VEW NOW +FB17; F; 0574 056D; # ARMENIAN SMALL LIGATURE MEN XEH +FF21; C; FF41; # FULLWIDTH LATIN CAPITAL LETTER A +FF22; C; FF42; # FULLWIDTH LATIN CAPITAL LETTER B +FF23; C; FF43; # FULLWIDTH LATIN CAPITAL LETTER C +FF24; C; FF44; # FULLWIDTH LATIN CAPITAL LETTER D +FF25; C; FF45; # FULLWIDTH LATIN CAPITAL LETTER E +FF26; C; FF46; # FULLWIDTH LATIN CAPITAL LETTER F +FF27; C; FF47; # FULLWIDTH LATIN CAPITAL LETTER G +FF28; C; FF48; # FULLWIDTH LATIN CAPITAL LETTER H +FF29; C; FF49; # FULLWIDTH LATIN CAPITAL LETTER I +FF2A; C; FF4A; # FULLWIDTH LATIN CAPITAL LETTER J +FF2B; C; FF4B; # FULLWIDTH LATIN CAPITAL LETTER K +FF2C; C; FF4C; # FULLWIDTH LATIN CAPITAL LETTER L +FF2D; C; FF4D; # FULLWIDTH LATIN CAPITAL LETTER M +FF2E; C; FF4E; # FULLWIDTH LATIN CAPITAL LETTER N +FF2F; C; FF4F; # FULLWIDTH LATIN CAPITAL LETTER O +FF30; C; FF50; # FULLWIDTH LATIN CAPITAL LETTER P +FF31; C; FF51; # FULLWIDTH LATIN CAPITAL LETTER Q +FF32; C; FF52; # FULLWIDTH LATIN CAPITAL LETTER R +FF33; C; FF53; # FULLWIDTH LATIN CAPITAL LETTER S +FF34; C; FF54; # FULLWIDTH LATIN CAPITAL LETTER T +FF35; C; FF55; # FULLWIDTH LATIN CAPITAL LETTER U +FF36; C; FF56; # FULLWIDTH LATIN CAPITAL LETTER V +FF37; C; FF57; # FULLWIDTH LATIN CAPITAL LETTER W +FF38; C; FF58; # FULLWIDTH LATIN CAPITAL LETTER X +FF39; C; FF59; # FULLWIDTH LATIN CAPITAL LETTER Y +FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z +10400; C; 10428; # DESERET CAPITAL LETTER LONG I +10401; C; 10429; # DESERET CAPITAL LETTER LONG E +10402; C; 1042A; # DESERET CAPITAL LETTER LONG A +10403; C; 1042B; # DESERET CAPITAL LETTER LONG AH +10404; C; 1042C; # DESERET CAPITAL LETTER LONG O +10405; C; 1042D; # DESERET CAPITAL LETTER LONG OO +10406; C; 1042E; # DESERET CAPITAL LETTER SHORT I +10407; C; 1042F; # DESERET CAPITAL LETTER SHORT E +10408; C; 10430; # DESERET CAPITAL LETTER SHORT A +10409; C; 10431; # DESERET CAPITAL LETTER SHORT AH +1040A; C; 10432; # DESERET CAPITAL LETTER SHORT O +1040B; C; 10433; # DESERET CAPITAL LETTER SHORT OO +1040C; C; 10434; # DESERET CAPITAL LETTER AY +1040D; C; 10435; # DESERET CAPITAL LETTER OW +1040E; C; 10436; # DESERET CAPITAL LETTER WU +1040F; C; 10437; # DESERET CAPITAL LETTER YEE +10410; C; 10438; # DESERET CAPITAL LETTER H +10411; C; 10439; # DESERET CAPITAL LETTER PEE +10412; C; 1043A; # DESERET CAPITAL LETTER BEE +10413; C; 1043B; # DESERET CAPITAL LETTER TEE +10414; C; 1043C; # DESERET CAPITAL LETTER DEE +10415; C; 1043D; # DESERET CAPITAL LETTER CHEE +10416; C; 1043E; # DESERET CAPITAL LETTER JEE +10417; C; 1043F; # DESERET CAPITAL LETTER KAY +10418; C; 10440; # DESERET CAPITAL LETTER GAY +10419; C; 10441; # DESERET CAPITAL LETTER EF +1041A; C; 10442; # DESERET CAPITAL LETTER VEE +1041B; C; 10443; # DESERET CAPITAL LETTER ETH +1041C; C; 10444; # DESERET CAPITAL LETTER THEE +1041D; C; 10445; # DESERET CAPITAL LETTER ES +1041E; C; 10446; # DESERET CAPITAL LETTER ZEE +1041F; C; 10447; # DESERET CAPITAL LETTER ESH +10420; C; 10448; # DESERET CAPITAL LETTER ZHEE +10421; C; 10449; # DESERET CAPITAL LETTER ER +10422; C; 1044A; # DESERET CAPITAL LETTER EL +10423; C; 1044B; # DESERET CAPITAL LETTER EM +10424; C; 1044C; # DESERET CAPITAL LETTER EN +10425; C; 1044D; # DESERET CAPITAL LETTER ENG +10426; C; 1044E; # DESERET CAPITAL LETTER OI +10427; C; 1044F; # DESERET CAPITAL LETTER EW +# +# EOF ADDED freshlib/_doc/utf8/DerivedCoreProperties.txt Index: freshlib/_doc/utf8/DerivedCoreProperties.txt ================================================================== --- /dev/null +++ freshlib/_doc/utf8/DerivedCoreProperties.txt @@ -0,0 +1,10028 @@ +# DerivedCoreProperties-6.2.0.txt +# Date: 2012-05-20, 00:42:31 GMT [MD] +# +# Unicode Character Database +# Copyright (c) 1991-2012 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ + +# ================================================ + +# Derived Property: Math +# Generated from: Sm + Other_Math + +002B ; Math # Sm PLUS SIGN +003C..003E ; Math # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN +005E ; Math # Sk CIRCUMFLEX ACCENT +007C ; Math # Sm VERTICAL LINE +007E ; Math # Sm TILDE +00AC ; Math # Sm NOT SIGN +00B1 ; Math # Sm PLUS-MINUS SIGN +00D7 ; Math # Sm MULTIPLICATION SIGN +00F7 ; Math # Sm DIVISION SIGN +03D0..03D2 ; Math # L& [3] GREEK BETA SYMBOL..GREEK UPSILON WITH HOOK SYMBOL +03D5 ; Math # L& GREEK PHI SYMBOL +03F0..03F1 ; Math # L& [2] GREEK KAPPA SYMBOL..GREEK RHO SYMBOL +03F4..03F5 ; Math # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL +03F6 ; Math # Sm GREEK REVERSED LUNATE EPSILON SYMBOL +0606..0608 ; Math # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY +2016 ; Math # Po DOUBLE VERTICAL LINE +2032..2034 ; Math # Po [3] PRIME..TRIPLE PRIME +2040 ; Math # Pc CHARACTER TIE +2044 ; Math # Sm FRACTION SLASH +2052 ; Math # Sm COMMERCIAL MINUS SIGN +2061..2064 ; Math # Cf [4] FUNCTION APPLICATION..INVISIBLE PLUS +207A..207C ; Math # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN +207D ; Math # Ps SUPERSCRIPT LEFT PARENTHESIS +207E ; Math # Pe SUPERSCRIPT RIGHT PARENTHESIS +208A..208C ; Math # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN +208D ; Math # Ps SUBSCRIPT LEFT PARENTHESIS +208E ; Math # Pe SUBSCRIPT RIGHT PARENTHESIS +20D0..20DC ; Math # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20E1 ; Math # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E5..20E6 ; Math # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING DOUBLE VERTICAL STROKE OVERLAY +20EB..20EF ; Math # Mn [5] COMBINING LONG DOUBLE SOLIDUS OVERLAY..COMBINING RIGHT ARROW BELOW +2102 ; Math # L& DOUBLE-STRUCK CAPITAL C +2107 ; Math # L& EULER CONSTANT +210A..2113 ; Math # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; Math # L& DOUBLE-STRUCK CAPITAL N +2118 ; Math # Sm SCRIPT CAPITAL P +2119..211D ; Math # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; Math # L& DOUBLE-STRUCK CAPITAL Z +2128 ; Math # L& BLACK-LETTER CAPITAL Z +2129 ; Math # So TURNED GREEK SMALL LETTER IOTA +212C..212D ; Math # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C +212F..2131 ; Math # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F +2133..2134 ; Math # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O +2135..2138 ; Math # Lo [4] ALEF SYMBOL..DALET SYMBOL +213C..213F ; Math # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2140..2144 ; Math # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y +2145..2149 ; Math # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214B ; Math # Sm TURNED AMPERSAND +2190..2194 ; Math # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW +2195..2199 ; Math # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219A..219B ; Math # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE +219C..219F ; Math # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A0 ; Math # Sm RIGHTWARDS TWO HEADED ARROW +21A1..21A2 ; Math # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A3 ; Math # Sm RIGHTWARDS ARROW WITH TAIL +21A4..21A5 ; Math # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A6 ; Math # Sm RIGHTWARDS ARROW FROM BAR +21A7 ; Math # So DOWNWARDS ARROW FROM BAR +21A9..21AD ; Math # So [5] LEFTWARDS ARROW WITH HOOK..LEFT RIGHT WAVE ARROW +21AE ; Math # Sm LEFT RIGHT ARROW WITH STROKE +21B0..21B1 ; Math # So [2] UPWARDS ARROW WITH TIP LEFTWARDS..UPWARDS ARROW WITH TIP RIGHTWARDS +21B6..21B7 ; Math # So [2] ANTICLOCKWISE TOP SEMICIRCLE ARROW..CLOCKWISE TOP SEMICIRCLE ARROW +21BC..21CD ; Math # So [18] LEFTWARDS HARPOON WITH BARB UPWARDS..LEFTWARDS DOUBLE ARROW WITH STROKE +21CE..21CF ; Math # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Math # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D2 ; Math # Sm RIGHTWARDS DOUBLE ARROW +21D3 ; Math # So DOWNWARDS DOUBLE ARROW +21D4 ; Math # Sm LEFT RIGHT DOUBLE ARROW +21D5..21DB ; Math # So [7] UP DOWN DOUBLE ARROW..RIGHTWARDS TRIPLE ARROW +21DD ; Math # So RIGHTWARDS SQUIGGLE ARROW +21E4..21E5 ; Math # So [2] LEFTWARDS ARROW TO BAR..RIGHTWARDS ARROW TO BAR +21F4..22FF ; Math # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP +2308..230B ; Math # Sm [4] LEFT CEILING..RIGHT FLOOR +2320..2321 ; Math # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL +237C ; Math # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +239B..23B3 ; Math # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM +23B4..23B5 ; Math # So [2] TOP SQUARE BRACKET..BOTTOM SQUARE BRACKET +23B7 ; Math # So RADICAL SYMBOL BOTTOM +23D0 ; Math # So VERTICAL LINE EXTENSION +23DC..23E1 ; Math # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET +23E2 ; Math # So WHITE TRAPEZIUM +25A0..25A1 ; Math # So [2] BLACK SQUARE..WHITE SQUARE +25AE..25B6 ; Math # So [9] BLACK VERTICAL RECTANGLE..BLACK RIGHT-POINTING TRIANGLE +25B7 ; Math # Sm WHITE RIGHT-POINTING TRIANGLE +25BC..25C0 ; Math # So [5] BLACK DOWN-POINTING TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C1 ; Math # Sm WHITE LEFT-POINTING TRIANGLE +25C6..25C7 ; Math # So [2] BLACK DIAMOND..WHITE DIAMOND +25CA..25CB ; Math # So [2] LOZENGE..WHITE CIRCLE +25CF..25D3 ; Math # So [5] BLACK CIRCLE..CIRCLE WITH UPPER HALF BLACK +25E2 ; Math # So BLACK LOWER RIGHT TRIANGLE +25E4 ; Math # So BLACK UPPER LEFT TRIANGLE +25E7..25EC ; Math # So [6] SQUARE WITH LEFT HALF BLACK..WHITE UP-POINTING TRIANGLE WITH DOT +25F8..25FF ; Math # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE +2605..2606 ; Math # So [2] BLACK STAR..WHITE STAR +2640 ; Math # So FEMALE SIGN +2642 ; Math # So MALE SIGN +2660..2663 ; Math # So [4] BLACK SPADE SUIT..BLACK CLUB SUIT +266D..266E ; Math # So [2] MUSIC FLAT SIGN..MUSIC NATURAL SIGN +266F ; Math # Sm MUSIC SHARP SIGN +27C0..27C4 ; Math # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET +27C5 ; Math # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Math # Pe RIGHT S-SHAPED BAG DELIMITER +27C7..27E5 ; Math # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK +27E6 ; Math # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Math # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Math # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Math # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Math # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Math # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Math # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Math # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Math # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Math # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +27F0..27FF ; Math # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW +2900..2982 ; Math # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON +2983 ; Math # Ps LEFT WHITE CURLY BRACKET +2984 ; Math # Pe RIGHT WHITE CURLY BRACKET +2985 ; Math # Ps LEFT WHITE PARENTHESIS +2986 ; Math # Pe RIGHT WHITE PARENTHESIS +2987 ; Math # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Math # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Math # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Math # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Math # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Math # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Math # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Math # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Math # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Math # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Math # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Math # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Math # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Math # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Math # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Math # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Math # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Math # Pe RIGHT BLACK TORTOISE SHELL BRACKET +2999..29D7 ; Math # Sm [63] DOTTED FENCE..BLACK HOURGLASS +29D8 ; Math # Ps LEFT WIGGLY FENCE +29D9 ; Math # Pe RIGHT WIGGLY FENCE +29DA ; Math # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Math # Pe RIGHT DOUBLE WIGGLY FENCE +29DC..29FB ; Math # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS +29FC ; Math # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Math # Pe RIGHT-POINTING CURVED ANGLE BRACKET +29FE..2AFF ; Math # Sm [258] TINY..N-ARY WHITE VERTICAL BAR +2B30..2B44 ; Math # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET +2B47..2B4C ; Math # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR +FB29 ; Math # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN +FE61 ; Math # Po SMALL ASTERISK +FE62 ; Math # Sm SMALL PLUS SIGN +FE63 ; Math # Pd SMALL HYPHEN-MINUS +FE64..FE66 ; Math # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN +FE68 ; Math # Po SMALL REVERSE SOLIDUS +FF0B ; Math # Sm FULLWIDTH PLUS SIGN +FF1C..FF1E ; Math # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN +FF3C ; Math # Po FULLWIDTH REVERSE SOLIDUS +FF3E ; Math # Sk FULLWIDTH CIRCUMFLEX ACCENT +FF5C ; Math # Sm FULLWIDTH VERTICAL LINE +FF5E ; Math # Sm FULLWIDTH TILDE +FFE2 ; Math # Sm FULLWIDTH NOT SIGN +FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW +1D400..1D454 ; Math # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Math # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Math # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Math # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Math # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Math # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Math # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Math # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Math # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Math # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Math # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Math # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Math # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Math # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Math # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Math # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Math # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Math # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Math # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Math # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C1 ; Math # Sm MATHEMATICAL BOLD NABLA +1D6C2..1D6DA ; Math # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DB ; Math # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL +1D6DC..1D6FA ; Math # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FB ; Math # Sm MATHEMATICAL ITALIC NABLA +1D6FC..1D714 ; Math # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D715 ; Math # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL +1D716..1D734 ; Math # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D735 ; Math # Sm MATHEMATICAL BOLD ITALIC NABLA +1D736..1D74E ; Math # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D74F ; Math # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL +1D750..1D76E ; Math # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D76F ; Math # Sm MATHEMATICAL SANS-SERIF BOLD NABLA +1D770..1D788 ; Math # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D789 ; Math # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL +1D78A..1D7A8 ; Math # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7A9 ; Math # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA +1D7AA..1D7C2 ; Math # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C3 ; Math # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL +1D7C4..1D7CB ; Math # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; Math # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE +1EE00..1EE03 ; Math # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; Math # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; Math # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; Math # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; Math # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; Math # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; Math # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; Math # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; Math # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; Math # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; Math # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; Math # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; Math # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; Math # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; Math # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; Math # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; Math # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; Math # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; Math # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; Math # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; Math # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; Math # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; Math # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; Math # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; Math # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; Math # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; Math # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; Math # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; Math # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; Math # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; Math # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; Math # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; Math # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +1EEF0..1EEF1 ; Math # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL + +# Total code points: 2310 + +# ================================================ + +# Derived Property: Alphabetic +# Generated from: Lu+Ll+Lt+Lm+Lo+Nl + Other_Alphabetic + +0041..005A ; Alphabetic # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; Alphabetic # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; Alphabetic # Lo FEMININE ORDINAL INDICATOR +00B5 ; Alphabetic # L& MICRO SIGN +00BA ; Alphabetic # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; Alphabetic # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; Alphabetic # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; Alphabetic # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; Alphabetic # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; Alphabetic # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; Alphabetic # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; Alphabetic # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; Alphabetic # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; Alphabetic # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02C1 ; Alphabetic # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C6..02D1 ; Alphabetic # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02E0..02E4 ; Alphabetic # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02EC ; Alphabetic # Lm MODIFIER LETTER VOICING +02EE ; Alphabetic # Lm MODIFIER LETTER DOUBLE APOSTROPHE +0345 ; Alphabetic # Mn COMBINING GREEK YPOGEGRAMMENI +0370..0373 ; Alphabetic # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; Alphabetic # Lm GREEK NUMERAL SIGN +0376..0377 ; Alphabetic # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; Alphabetic # Lm GREEK YPOGEGRAMMENI +037B..037D ; Alphabetic # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; Alphabetic # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Alphabetic # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Alphabetic # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; Alphabetic # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; Alphabetic # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F7..0481 ; Alphabetic # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +048A..0527 ; Alphabetic # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; Alphabetic # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; Alphabetic # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0561..0587 ; Alphabetic # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +05B0..05BD ; Alphabetic # Mn [14] HEBREW POINT SHEVA..HEBREW POINT METEG +05BF ; Alphabetic # Mn HEBREW POINT RAFE +05C1..05C2 ; Alphabetic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; Alphabetic # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; Alphabetic # Mn HEBREW POINT QAMATS QATAN +05D0..05EA ; Alphabetic # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; Alphabetic # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +0610..061A ; Alphabetic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +0620..063F ; Alphabetic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; Alphabetic # Lm ARABIC TATWEEL +0641..064A ; Alphabetic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +064B..0657 ; Alphabetic # Mn [13] ARABIC FATHATAN..ARABIC INVERTED DAMMA +0659..065F ; Alphabetic # Mn [7] ARABIC ZWARAKAY..ARABIC WAVY HAMZA BELOW +066E..066F ; Alphabetic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0670 ; Alphabetic # Mn ARABIC LETTER SUPERSCRIPT ALEF +0671..06D3 ; Alphabetic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D5 ; Alphabetic # Lo ARABIC LETTER AE +06D6..06DC ; Alphabetic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06E1..06E4 ; Alphabetic # Mn [4] ARABIC SMALL HIGH DOTLESS HEAD OF KHAH..ARABIC SMALL HIGH MADDA +06E5..06E6 ; Alphabetic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06E7..06E8 ; Alphabetic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06ED ; Alphabetic # Mn ARABIC SMALL LOW MEEM +06EE..06EF ; Alphabetic # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06FA..06FC ; Alphabetic # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FF ; Alphabetic # Lo ARABIC LETTER HEH WITH INVERTED V +0710 ; Alphabetic # Lo SYRIAC LETTER ALAPH +0711 ; Alphabetic # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0712..072F ; Alphabetic # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +0730..073F ; Alphabetic # Mn [16] SYRIAC PTHAHA ABOVE..SYRIAC RWAHA +074D..07A5 ; Alphabetic # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU +07A6..07B0 ; Alphabetic # Mn [11] THAANA ABAFILI..THAANA SUKUN +07B1 ; Alphabetic # Lo THAANA LETTER NAA +07CA..07EA ; Alphabetic # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07F4..07F5 ; Alphabetic # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07FA ; Alphabetic # Lm NKO LAJANYALAN +0800..0815 ; Alphabetic # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +0816..0817 ; Alphabetic # Mn [2] SAMARITAN MARK IN..SAMARITAN MARK IN-ALAF +081A ; Alphabetic # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +081B..0823 ; Alphabetic # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0824 ; Alphabetic # Lm SAMARITAN MODIFIER LETTER SHORT A +0825..0827 ; Alphabetic # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0828 ; Alphabetic # Lm SAMARITAN MODIFIER LETTER I +0829..082C ; Alphabetic # Mn [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN +0840..0858 ; Alphabetic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +08A0 ; Alphabetic # Lo ARABIC LETTER BEH WITH SMALL V BELOW +08A2..08AC ; Alphabetic # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +08E4..08E9 ; Alphabetic # Mn [6] ARABIC CURLY FATHA..ARABIC CURLY KASRATAN +08F0..08FE ; Alphabetic # Mn [15] ARABIC OPEN FATHATAN..ARABIC DAMMA WITH DOT +0900..0902 ; Alphabetic # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0903 ; Alphabetic # Mc DEVANAGARI SIGN VISARGA +0904..0939 ; Alphabetic # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093A ; Alphabetic # Mn DEVANAGARI VOWEL SIGN OE +093B ; Alphabetic # Mc DEVANAGARI VOWEL SIGN OOE +093D ; Alphabetic # Lo DEVANAGARI SIGN AVAGRAHA +093E..0940 ; Alphabetic # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; Alphabetic # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; Alphabetic # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094E..094F ; Alphabetic # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0950 ; Alphabetic # Lo DEVANAGARI OM +0955..0957 ; Alphabetic # Mn [3] DEVANAGARI VOWEL SIGN CANDRA LONG E..DEVANAGARI VOWEL SIGN UUE +0958..0961 ; Alphabetic # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0962..0963 ; Alphabetic # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0971 ; Alphabetic # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..0977 ; Alphabetic # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0979..097F ; Alphabetic # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA +0981 ; Alphabetic # Mn BENGALI SIGN CANDRABINDU +0982..0983 ; Alphabetic # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +0985..098C ; Alphabetic # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; Alphabetic # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; Alphabetic # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; Alphabetic # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; Alphabetic # Lo BENGALI LETTER LA +09B6..09B9 ; Alphabetic # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BD ; Alphabetic # Lo BENGALI SIGN AVAGRAHA +09BE..09C0 ; Alphabetic # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; Alphabetic # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; Alphabetic # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; Alphabetic # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09CE ; Alphabetic # Lo BENGALI LETTER KHANDA TA +09D7 ; Alphabetic # Mc BENGALI AU LENGTH MARK +09DC..09DD ; Alphabetic # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; Alphabetic # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09E2..09E3 ; Alphabetic # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +09F0..09F1 ; Alphabetic # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +0A01..0A02 ; Alphabetic # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A03 ; Alphabetic # Mc GURMUKHI SIGN VISARGA +0A05..0A0A ; Alphabetic # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; Alphabetic # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; Alphabetic # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; Alphabetic # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; Alphabetic # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; Alphabetic # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; Alphabetic # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3E..0A40 ; Alphabetic # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; Alphabetic # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Alphabetic # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4C ; Alphabetic # Mn [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU +0A51 ; Alphabetic # Mn GURMUKHI SIGN UDAAT +0A59..0A5C ; Alphabetic # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; Alphabetic # Lo GURMUKHI LETTER FA +0A70..0A71 ; Alphabetic # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A72..0A74 ; Alphabetic # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A75 ; Alphabetic # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; Alphabetic # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0A83 ; Alphabetic # Mc GUJARATI SIGN VISARGA +0A85..0A8D ; Alphabetic # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; Alphabetic # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; Alphabetic # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; Alphabetic # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; Alphabetic # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; Alphabetic # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABD ; Alphabetic # Lo GUJARATI SIGN AVAGRAHA +0ABE..0AC0 ; Alphabetic # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; Alphabetic # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Alphabetic # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; Alphabetic # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; Alphabetic # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0AD0 ; Alphabetic # Lo GUJARATI OM +0AE0..0AE1 ; Alphabetic # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0AE2..0AE3 ; Alphabetic # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0B01 ; Alphabetic # Mn ORIYA SIGN CANDRABINDU +0B02..0B03 ; Alphabetic # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B05..0B0C ; Alphabetic # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; Alphabetic # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; Alphabetic # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; Alphabetic # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; Alphabetic # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; Alphabetic # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3D ; Alphabetic # Lo ORIYA SIGN AVAGRAHA +0B3E ; Alphabetic # Mc ORIYA VOWEL SIGN AA +0B3F ; Alphabetic # Mn ORIYA VOWEL SIGN I +0B40 ; Alphabetic # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; Alphabetic # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; Alphabetic # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; Alphabetic # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B56 ; Alphabetic # Mn ORIYA AI LENGTH MARK +0B57 ; Alphabetic # Mc ORIYA AU LENGTH MARK +0B5C..0B5D ; Alphabetic # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; Alphabetic # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B62..0B63 ; Alphabetic # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B71 ; Alphabetic # Lo ORIYA LETTER WA +0B82 ; Alphabetic # Mn TAMIL SIGN ANUSVARA +0B83 ; Alphabetic # Lo TAMIL SIGN VISARGA +0B85..0B8A ; Alphabetic # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; Alphabetic # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; Alphabetic # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; Alphabetic # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; Alphabetic # Lo TAMIL LETTER JA +0B9E..0B9F ; Alphabetic # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; Alphabetic # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; Alphabetic # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; Alphabetic # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BBE..0BBF ; Alphabetic # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; Alphabetic # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; Alphabetic # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; Alphabetic # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; Alphabetic # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BD0 ; Alphabetic # Lo TAMIL OM +0BD7 ; Alphabetic # Mc TAMIL AU LENGTH MARK +0C01..0C03 ; Alphabetic # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C05..0C0C ; Alphabetic # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; Alphabetic # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; Alphabetic # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; Alphabetic # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; Alphabetic # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA +0C3D ; Alphabetic # Lo TELUGU SIGN AVAGRAHA +0C3E..0C40 ; Alphabetic # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; Alphabetic # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; Alphabetic # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4C ; Alphabetic # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU +0C55..0C56 ; Alphabetic # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C58..0C59 ; Alphabetic # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA +0C60..0C61 ; Alphabetic # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C62..0C63 ; Alphabetic # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C82..0C83 ; Alphabetic # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C85..0C8C ; Alphabetic # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; Alphabetic # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; Alphabetic # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; Alphabetic # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; Alphabetic # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBD ; Alphabetic # Lo KANNADA SIGN AVAGRAHA +0CBE ; Alphabetic # Mc KANNADA VOWEL SIGN AA +0CBF ; Alphabetic # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; Alphabetic # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; Alphabetic # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; Alphabetic # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; Alphabetic # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC ; Alphabetic # Mn KANNADA VOWEL SIGN AU +0CD5..0CD6 ; Alphabetic # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CDE ; Alphabetic # Lo KANNADA LETTER FA +0CE0..0CE1 ; Alphabetic # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE2..0CE3 ; Alphabetic # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0CF1..0CF2 ; Alphabetic # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0D02..0D03 ; Alphabetic # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D05..0D0C ; Alphabetic # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; Alphabetic # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; Alphabetic # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3D ; Alphabetic # Lo MALAYALAM SIGN AVAGRAHA +0D3E..0D40 ; Alphabetic # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; Alphabetic # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; Alphabetic # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; Alphabetic # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D4E ; Alphabetic # Lo MALAYALAM LETTER DOT REPH +0D57 ; Alphabetic # Mc MALAYALAM AU LENGTH MARK +0D60..0D61 ; Alphabetic # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D62..0D63 ; Alphabetic # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D7A..0D7F ; Alphabetic # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D82..0D83 ; Alphabetic # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D85..0D96 ; Alphabetic # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; Alphabetic # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; Alphabetic # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; Alphabetic # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; Alphabetic # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DCF..0DD1 ; Alphabetic # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; Alphabetic # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Alphabetic # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; Alphabetic # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; Alphabetic # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E01..0E30 ; Alphabetic # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E31 ; Alphabetic # Mn THAI CHARACTER MAI HAN-AKAT +0E32..0E33 ; Alphabetic # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E34..0E3A ; Alphabetic # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E40..0E45 ; Alphabetic # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; Alphabetic # Lm THAI CHARACTER MAIYAMOK +0E4D ; Alphabetic # Mn THAI CHARACTER NIKHAHIT +0E81..0E82 ; Alphabetic # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; Alphabetic # Lo LAO LETTER KHO TAM +0E87..0E88 ; Alphabetic # Lo [2] LAO LETTER NGO..LAO LETTER CO +0E8A ; Alphabetic # Lo LAO LETTER SO TAM +0E8D ; Alphabetic # Lo LAO LETTER NYO +0E94..0E97 ; Alphabetic # Lo [4] LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; Alphabetic # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; Alphabetic # Lo [3] LAO LETTER MO..LAO LETTER LO LING +0EA5 ; Alphabetic # Lo LAO LETTER LO LOOT +0EA7 ; Alphabetic # Lo LAO LETTER WO +0EAA..0EAB ; Alphabetic # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB0 ; Alphabetic # Lo [4] LAO LETTER O..LAO VOWEL SIGN A +0EB1 ; Alphabetic # Mn LAO VOWEL SIGN MAI KAN +0EB2..0EB3 ; Alphabetic # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EB4..0EB9 ; Alphabetic # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; Alphabetic # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0EBD ; Alphabetic # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; Alphabetic # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; Alphabetic # Lm LAO KO LA +0ECD ; Alphabetic # Mn LAO NIGGAHITA +0EDC..0EDF ; Alphabetic # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F00 ; Alphabetic # Lo TIBETAN SYLLABLE OM +0F40..0F47 ; Alphabetic # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; Alphabetic # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F71..0F7E ; Alphabetic # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F7F ; Alphabetic # Mc TIBETAN SIGN RNAM BCAD +0F80..0F81 ; Alphabetic # Mn [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II +0F88..0F8C ; Alphabetic # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +0F8D..0F97 ; Alphabetic # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Alphabetic # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +1000..102A ; Alphabetic # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +102B..102C ; Alphabetic # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; Alphabetic # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; Alphabetic # Mc MYANMAR VOWEL SIGN E +1032..1036 ; Alphabetic # Mn [5] MYANMAR VOWEL SIGN AI..MYANMAR SIGN ANUSVARA +1038 ; Alphabetic # Mc MYANMAR SIGN VISARGA +103B..103C ; Alphabetic # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; Alphabetic # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +103F ; Alphabetic # Lo MYANMAR LETTER GREAT SA +1050..1055 ; Alphabetic # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +1056..1057 ; Alphabetic # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; Alphabetic # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105A..105D ; Alphabetic # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +105E..1060 ; Alphabetic # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1061 ; Alphabetic # Lo MYANMAR LETTER SGAW KAREN SHA +1062 ; Alphabetic # Mc MYANMAR VOWEL SIGN SGAW KAREN EU +1065..1066 ; Alphabetic # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +1067..1068 ; Alphabetic # Mc [2] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR VOWEL SIGN WESTERN PWO KAREN UE +106E..1070 ; Alphabetic # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1071..1074 ; Alphabetic # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1075..1081 ; Alphabetic # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +1082 ; Alphabetic # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1083..1084 ; Alphabetic # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; Alphabetic # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +108E ; Alphabetic # Lo MYANMAR LETTER RUMAI PALAUNG FA +109C ; Alphabetic # Mc MYANMAR VOWEL SIGN AITON A +109D ; Alphabetic # Mn MYANMAR VOWEL SIGN AITON AI +10A0..10C5 ; Alphabetic # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Alphabetic # L& GEORGIAN CAPITAL LETTER YN +10CD ; Alphabetic # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; Alphabetic # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FC ; Alphabetic # Lm MODIFIER LETTER GEORGIAN NAR +10FD..1248 ; Alphabetic # Lo [332] GEORGIAN LETTER AEN..ETHIOPIC SYLLABLE QWA +124A..124D ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; Alphabetic # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; Alphabetic # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; Alphabetic # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; Alphabetic # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; Alphabetic # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; Alphabetic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; Alphabetic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +135F ; Alphabetic # Mn ETHIOPIC COMBINING GEMINATION MARK +1380..138F ; Alphabetic # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +13A0..13F4 ; Alphabetic # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV +1401..166C ; Alphabetic # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166F..167F ; Alphabetic # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +1681..169A ; Alphabetic # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +16A0..16EA ; Alphabetic # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EE..16F0 ; Alphabetic # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +1700..170C ; Alphabetic # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA +170E..1711 ; Alphabetic # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA +1712..1713 ; Alphabetic # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U +1720..1731 ; Alphabetic # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1732..1733 ; Alphabetic # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U +1740..1751 ; Alphabetic # Lo [18] BUHID LETTER A..BUHID LETTER HA +1752..1753 ; Alphabetic # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1760..176C ; Alphabetic # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; Alphabetic # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1772..1773 ; Alphabetic # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +1780..17B3 ; Alphabetic # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17B6 ; Alphabetic # Mc KHMER VOWEL SIGN AA +17B7..17BD ; Alphabetic # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; Alphabetic # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C6 ; Alphabetic # Mn KHMER SIGN NIKAHIT +17C7..17C8 ; Alphabetic # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +17D7 ; Alphabetic # Lm KHMER SIGN LEK TOO +17DC ; Alphabetic # Lo KHMER SIGN AVAKRAHASANYA +1820..1842 ; Alphabetic # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; Alphabetic # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1877 ; Alphabetic # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +1880..18A8 ; Alphabetic # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA +18A9 ; Alphabetic # Mn MONGOLIAN LETTER ALI GALI DAGALGA +18AA ; Alphabetic # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +18B0..18F5 ; Alphabetic # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +1900..191C ; Alphabetic # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +1920..1922 ; Alphabetic # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; Alphabetic # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; Alphabetic # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1929..192B ; Alphabetic # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; Alphabetic # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1932 ; Alphabetic # Mn LIMBU SMALL LETTER ANUSVARA +1933..1938 ; Alphabetic # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +1950..196D ; Alphabetic # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; Alphabetic # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1980..19AB ; Alphabetic # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19B0..19C0 ; Alphabetic # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +19C1..19C7 ; Alphabetic # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +19C8..19C9 ; Alphabetic # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +1A00..1A16 ; Alphabetic # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A17..1A18 ; Alphabetic # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1B ; Alphabetic # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE +1A20..1A54 ; Alphabetic # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1A55 ; Alphabetic # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; Alphabetic # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A57 ; Alphabetic # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A58..1A5E ; Alphabetic # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A61 ; Alphabetic # Mc TAI THAM VOWEL SIGN A +1A62 ; Alphabetic # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; Alphabetic # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; Alphabetic # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; Alphabetic # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73..1A74 ; Alphabetic # Mn [2] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN MAI KANG +1AA7 ; Alphabetic # Lm TAI THAM SIGN MAI YAMOK +1B00..1B03 ; Alphabetic # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B04 ; Alphabetic # Mc BALINESE SIGN BISAH +1B05..1B33 ; Alphabetic # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B35 ; Alphabetic # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; Alphabetic # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; Alphabetic # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; Alphabetic # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; Alphabetic # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; Alphabetic # Mn BALINESE VOWEL SIGN PEPET +1B43 ; Alphabetic # Mc BALINESE VOWEL SIGN PEPET TEDUNG +1B45..1B4B ; Alphabetic # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK +1B80..1B81 ; Alphabetic # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1B82 ; Alphabetic # Mc SUNDANESE SIGN PANGWISAD +1B83..1BA0 ; Alphabetic # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BA1 ; Alphabetic # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA5 ; Alphabetic # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; Alphabetic # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; Alphabetic # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BAC..1BAD ; Alphabetic # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA +1BAE..1BAF ; Alphabetic # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BBA..1BE5 ; Alphabetic # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U +1BE7 ; Alphabetic # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; Alphabetic # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; Alphabetic # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; Alphabetic # Mn BATAK VOWEL SIGN KARO O +1BEE ; Alphabetic # Mc BATAK VOWEL SIGN U +1BEF..1BF1 ; Alphabetic # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1C00..1C23 ; Alphabetic # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C24..1C2B ; Alphabetic # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C2C..1C33 ; Alphabetic # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C34..1C35 ; Alphabetic # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1C4D..1C4F ; Alphabetic # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +1C5A..1C77 ; Alphabetic # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; Alphabetic # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CE9..1CEC ; Alphabetic # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CEE..1CF1 ; Alphabetic # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA +1CF2..1CF3 ; Alphabetic # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA +1CF5..1CF6 ; Alphabetic # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1D00..1D2B ; Alphabetic # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; Alphabetic # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; Alphabetic # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; Alphabetic # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; Alphabetic # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; Alphabetic # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1E00..1F15 ; Alphabetic # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; Alphabetic # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; Alphabetic # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; Alphabetic # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Alphabetic # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; Alphabetic # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Alphabetic # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Alphabetic # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; Alphabetic # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; Alphabetic # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; Alphabetic # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; Alphabetic # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; Alphabetic # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; Alphabetic # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; Alphabetic # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; Alphabetic # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; Alphabetic # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; Alphabetic # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; Alphabetic # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2071 ; Alphabetic # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; Alphabetic # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; Alphabetic # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +2102 ; Alphabetic # L& DOUBLE-STRUCK CAPITAL C +2107 ; Alphabetic # L& EULER CONSTANT +210A..2113 ; Alphabetic # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; Alphabetic # L& DOUBLE-STRUCK CAPITAL N +2119..211D ; Alphabetic # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; Alphabetic # L& DOUBLE-STRUCK CAPITAL Z +2126 ; Alphabetic # L& OHM SIGN +2128 ; Alphabetic # L& BLACK-LETTER CAPITAL Z +212A..212D ; Alphabetic # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212F..2134 ; Alphabetic # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2135..2138 ; Alphabetic # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; Alphabetic # L& INFORMATION SOURCE +213C..213F ; Alphabetic # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; Alphabetic # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; Alphabetic # L& TURNED SMALL F +2160..2182 ; Alphabetic # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; Alphabetic # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; Alphabetic # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +24B6..24E9 ; Alphabetic # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C00..2C2E ; Alphabetic # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; Alphabetic # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; Alphabetic # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; Alphabetic # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; Alphabetic # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CEB..2CEE ; Alphabetic # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF2..2CF3 ; Alphabetic # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; Alphabetic # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Alphabetic # L& GEORGIAN SMALL LETTER YN +2D2D ; Alphabetic # L& GEORGIAN SMALL LETTER AEN +2D30..2D67 ; Alphabetic # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; Alphabetic # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D80..2D96 ; Alphabetic # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +2DE0..2DFF ; Alphabetic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +2E2F ; Alphabetic # Lm VERTICAL TILDE +3005 ; Alphabetic # Lm IDEOGRAPHIC ITERATION MARK +3006 ; Alphabetic # Lo IDEOGRAPHIC CLOSING MARK +3007 ; Alphabetic # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; Alphabetic # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3031..3035 ; Alphabetic # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3038..303A ; Alphabetic # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; Alphabetic # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; Alphabetic # Lo MASU MARK +3041..3096 ; Alphabetic # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +309D..309E ; Alphabetic # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; Alphabetic # Lo HIRAGANA DIGRAPH YORI +30A1..30FA ; Alphabetic # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FC..30FE ; Alphabetic # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +30FF ; Alphabetic # Lo KATAKANA DIGRAPH KOTO +3105..312D ; Alphabetic # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH +3131..318E ; Alphabetic # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +31A0..31BA ; Alphabetic # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY +31F0..31FF ; Alphabetic # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3400..4DB5 ; Alphabetic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCC ; Alphabetic # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC +A000..A014 ; Alphabetic # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; Alphabetic # Lm YI SYLLABLE WU +A016..A48C ; Alphabetic # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A4D0..A4F7 ; Alphabetic # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; Alphabetic # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A500..A60B ; Alphabetic # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; Alphabetic # Lm VAI SYLLABLE LENGTHENER +A610..A61F ; Alphabetic # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A62A..A62B ; Alphabetic # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO +A640..A66D ; Alphabetic # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; Alphabetic # Lo CYRILLIC LETTER MULTIOCULAR O +A674..A67B ; Alphabetic # Mn [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA +A67F ; Alphabetic # Lm CYRILLIC PAYEROK +A680..A697 ; Alphabetic # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A69F ; Alphabetic # Mn COMBINING CYRILLIC LETTER IOTIFIED E +A6A0..A6E5 ; Alphabetic # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; Alphabetic # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A717..A71F ; Alphabetic # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A722..A76F ; Alphabetic # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; Alphabetic # Lm MODIFIER LETTER US +A771..A787 ; Alphabetic # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A788 ; Alphabetic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A78B..A78E ; Alphabetic # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; Alphabetic # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; Alphabetic # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; Alphabetic # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; Alphabetic # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A801 ; Alphabetic # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I +A803..A805 ; Alphabetic # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A807..A80A ; Alphabetic # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80C..A822 ; Alphabetic # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A823..A824 ; Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; Alphabetic # Mc SYLOTI NAGRI VOWEL SIGN OO +A840..A873 ; Alphabetic # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A880..A881 ; Alphabetic # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A882..A8B3 ; Alphabetic # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8B4..A8C3 ; Alphabetic # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A8F2..A8F7 ; Alphabetic # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8FB ; Alphabetic # Lo DEVANAGARI HEADSTROKE +A90A..A925 ; Alphabetic # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A926..A92A ; Alphabetic # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O +A930..A946 ; Alphabetic # Lo [23] REJANG LETTER KA..REJANG LETTER A +A947..A951 ; Alphabetic # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A952 ; Alphabetic # Mc REJANG CONSONANT SIGN H +A960..A97C ; Alphabetic # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A980..A982 ; Alphabetic # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A983 ; Alphabetic # Mc JAVANESE SIGN WIGNYAN +A984..A9B2 ; Alphabetic # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9B4..A9B5 ; Alphabetic # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; Alphabetic # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; Alphabetic # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC ; Alphabetic # Mn JAVANESE VOWEL SIGN PEPET +A9BD..A9BF ; Alphabetic # Mc [3] JAVANESE CONSONANT SIGN KERET..JAVANESE CONSONANT SIGN CAKRA +A9CF ; Alphabetic # Lm JAVANESE PANGRANGKEP +AA00..AA28 ; Alphabetic # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA29..AA2E ; Alphabetic # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; Alphabetic # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; Alphabetic # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA33..AA34 ; Alphabetic # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; Alphabetic # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA40..AA42 ; Alphabetic # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA43 ; Alphabetic # Mn CHAM CONSONANT SIGN FINAL NG +AA44..AA4B ; Alphabetic # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA4C ; Alphabetic # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; Alphabetic # Mc CHAM CONSONANT SIGN FINAL H +AA60..AA6F ; Alphabetic # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; Alphabetic # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; Alphabetic # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA7A ; Alphabetic # Lo MYANMAR LETTER AITON RA +AA80..AAAF ; Alphabetic # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB0 ; Alphabetic # Mn TAI VIET MAI KANG +AAB1 ; Alphabetic # Lo TAI VIET VOWEL AA +AAB2..AAB4 ; Alphabetic # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB5..AAB6 ; Alphabetic # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB7..AAB8 ; Alphabetic # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AAB9..AABD ; Alphabetic # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AABE ; Alphabetic # Mn TAI VIET VOWEL AM +AAC0 ; Alphabetic # Lo TAI VIET TONE MAI NUENG +AAC2 ; Alphabetic # Lo TAI VIET TONE MAI SONG +AADB..AADC ; Alphabetic # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; Alphabetic # Lm TAI VIET SYMBOL SAM +AAE0..AAEA ; Alphabetic # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAEB ; Alphabetic # Mc MEETEI MAYEK VOWEL SIGN II +AAEC..AAED ; Alphabetic # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAEE..AAEF ; Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU +AAF2 ; Alphabetic # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; Alphabetic # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AAF5 ; Alphabetic # Mc MEETEI MAYEK VOWEL SIGN VISARGA +AB01..AB06 ; Alphabetic # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; Alphabetic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; Alphabetic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +ABC0..ABE2 ; Alphabetic # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +ABE3..ABE4 ; Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; Alphabetic # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; Alphabetic # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +AC00..D7A3 ; Alphabetic # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; Alphabetic # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; Alphabetic # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +F900..FA6D ; Alphabetic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; Alphabetic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +FB00..FB06 ; Alphabetic # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Alphabetic # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FB1D ; Alphabetic # Lo HEBREW LETTER YOD WITH HIRIQ +FB1E ; Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FB1F..FB28 ; Alphabetic # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB2A..FB36 ; Alphabetic # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; Alphabetic # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; Alphabetic # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; Alphabetic # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; Alphabetic # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FBB1 ; Alphabetic # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBD3..FD3D ; Alphabetic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD50..FD8F ; Alphabetic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; Alphabetic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDF0..FDFB ; Alphabetic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU +FE70..FE74 ; Alphabetic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM +FE76..FEFC ; Alphabetic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FF21..FF3A ; Alphabetic # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF41..FF5A ; Alphabetic # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +FF66..FF6F ; Alphabetic # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; Alphabetic # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71..FF9D ; Alphabetic # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +FF9E..FF9F ; Alphabetic # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFA0..FFBE ; Alphabetic # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; Alphabetic # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; Alphabetic # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; Alphabetic # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I +10000..1000B ; Alphabetic # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; Alphabetic # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; Alphabetic # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; Alphabetic # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; Alphabetic # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; Alphabetic # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; Alphabetic # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +10140..10174 ; Alphabetic # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +10280..1029C ; Alphabetic # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X +102A0..102D0 ; Alphabetic # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 +10300..1031E ; Alphabetic # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU +10330..10340 ; Alphabetic # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; Alphabetic # Nl GOTHIC LETTER NINETY +10342..10349 ; Alphabetic # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; Alphabetic # Nl GOTHIC LETTER NINE HUNDRED +10380..1039D ; Alphabetic # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +103A0..103C3 ; Alphabetic # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; Alphabetic # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D1..103D5 ; Alphabetic # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED +10400..1044F ; Alphabetic # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +10450..1049D ; Alphabetic # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO +10800..10805 ; Alphabetic # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; Alphabetic # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; Alphabetic # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; Alphabetic # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; Alphabetic # Lo CYPRIOT SYLLABLE ZA +1083F..10855 ; Alphabetic # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW +10900..10915 ; Alphabetic # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10920..10939 ; Alphabetic # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10980..109B7 ; Alphabetic # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109BE..109BF ; Alphabetic # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +10A00 ; Alphabetic # Lo KHAROSHTHI LETTER A +10A01..10A03 ; Alphabetic # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Alphabetic # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; Alphabetic # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +10A10..10A13 ; Alphabetic # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; Alphabetic # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A33 ; Alphabetic # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A60..10A7C ; Alphabetic # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10B00..10B35 ; Alphabetic # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B40..10B55 ; Alphabetic # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B60..10B72 ; Alphabetic # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10C00..10C48 ; Alphabetic # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +11000 ; Alphabetic # Mc BRAHMI SIGN CANDRABINDU +11001 ; Alphabetic # Mn BRAHMI SIGN ANUSVARA +11002 ; Alphabetic # Mc BRAHMI SIGN VISARGA +11003..11037 ; Alphabetic # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11038..11045 ; Alphabetic # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU +11082 ; Alphabetic # Mc KAITHI SIGN VISARGA +11083..110AF ; Alphabetic # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110B0..110B2 ; Alphabetic # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; Alphabetic # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; Alphabetic # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU +110D0..110E8 ; Alphabetic # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +11100..11102 ; Alphabetic # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA +11103..11126 ; Alphabetic # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +11127..1112B ; Alphabetic # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112C ; Alphabetic # Mc CHAKMA VOWEL SIGN E +1112D..11132 ; Alphabetic # Mn [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK +11180..11181 ; Alphabetic # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +11182 ; Alphabetic # Mc SHARADA SIGN VISARGA +11183..111B2 ; Alphabetic # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111B3..111B5 ; Alphabetic # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II +111B6..111BE ; Alphabetic # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +111BF ; Alphabetic # Mc SHARADA VOWEL SIGN AU +111C1..111C4 ; Alphabetic # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +11680..116AA ; Alphabetic # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +116AB ; Alphabetic # Mn TAKRI SIGN ANUSVARA +116AC ; Alphabetic # Mc TAKRI SIGN VISARGA +116AD ; Alphabetic # Mn TAKRI VOWEL SIGN AA +116AE..116AF ; Alphabetic # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II +116B0..116B5 ; Alphabetic # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +12000..1236E ; Alphabetic # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +12400..12462 ; Alphabetic # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +13000..1342E ; Alphabetic # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +16800..16A38 ; Alphabetic # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16F00..16F44 ; Alphabetic # Lo [69] MIAO LETTER PA..MIAO LETTER HHA +16F50 ; Alphabetic # Lo MIAO LETTER NASALIZATION +16F51..16F7E ; Alphabetic # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG +16F93..16F9F ; Alphabetic # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1B000..1B001 ; Alphabetic # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1D400..1D454 ; Alphabetic # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Alphabetic # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Alphabetic # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Alphabetic # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Alphabetic # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Alphabetic # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Alphabetic # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Alphabetic # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Alphabetic # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Alphabetic # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Alphabetic # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Alphabetic # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Alphabetic # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Alphabetic # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Alphabetic # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Alphabetic # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Alphabetic # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Alphabetic # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Alphabetic # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Alphabetic # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; Alphabetic # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; Alphabetic # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; Alphabetic # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; Alphabetic # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; Alphabetic # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; Alphabetic # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; Alphabetic # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; Alphabetic # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; Alphabetic # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; Alphabetic # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1EE00..1EE03 ; Alphabetic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; Alphabetic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; Alphabetic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; Alphabetic # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; Alphabetic # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; Alphabetic # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; Alphabetic # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; Alphabetic # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; Alphabetic # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; Alphabetic # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; Alphabetic # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; Alphabetic # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; Alphabetic # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; Alphabetic # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; Alphabetic # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; Alphabetic # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; Alphabetic # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; Alphabetic # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; Alphabetic # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; Alphabetic # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; Alphabetic # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; Alphabetic # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; Alphabetic # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; Alphabetic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +20000..2A6D6 ; Alphabetic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; Alphabetic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +# Total code points: 102159 + +# ================================================ + +# Derived Property: Lowercase +# Generated from: Ll + Other_Lowercase + +0061..007A ; Lowercase # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; Lowercase # Lo FEMININE ORDINAL INDICATOR +00B5 ; Lowercase # L& MICRO SIGN +00BA ; Lowercase # Lo MASCULINE ORDINAL INDICATOR +00DF..00F6 ; Lowercase # L& [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS +00F8..00FF ; Lowercase # L& [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS +0101 ; Lowercase # L& LATIN SMALL LETTER A WITH MACRON +0103 ; Lowercase # L& LATIN SMALL LETTER A WITH BREVE +0105 ; Lowercase # L& LATIN SMALL LETTER A WITH OGONEK +0107 ; Lowercase # L& LATIN SMALL LETTER C WITH ACUTE +0109 ; Lowercase # L& LATIN SMALL LETTER C WITH CIRCUMFLEX +010B ; Lowercase # L& LATIN SMALL LETTER C WITH DOT ABOVE +010D ; Lowercase # L& LATIN SMALL LETTER C WITH CARON +010F ; Lowercase # L& LATIN SMALL LETTER D WITH CARON +0111 ; Lowercase # L& LATIN SMALL LETTER D WITH STROKE +0113 ; Lowercase # L& LATIN SMALL LETTER E WITH MACRON +0115 ; Lowercase # L& LATIN SMALL LETTER E WITH BREVE +0117 ; Lowercase # L& LATIN SMALL LETTER E WITH DOT ABOVE +0119 ; Lowercase # L& LATIN SMALL LETTER E WITH OGONEK +011B ; Lowercase # L& LATIN SMALL LETTER E WITH CARON +011D ; Lowercase # L& LATIN SMALL LETTER G WITH CIRCUMFLEX +011F ; Lowercase # L& LATIN SMALL LETTER G WITH BREVE +0121 ; Lowercase # L& LATIN SMALL LETTER G WITH DOT ABOVE +0123 ; Lowercase # L& LATIN SMALL LETTER G WITH CEDILLA +0125 ; Lowercase # L& LATIN SMALL LETTER H WITH CIRCUMFLEX +0127 ; Lowercase # L& LATIN SMALL LETTER H WITH STROKE +0129 ; Lowercase # L& LATIN SMALL LETTER I WITH TILDE +012B ; Lowercase # L& LATIN SMALL LETTER I WITH MACRON +012D ; Lowercase # L& LATIN SMALL LETTER I WITH BREVE +012F ; Lowercase # L& LATIN SMALL LETTER I WITH OGONEK +0131 ; Lowercase # L& LATIN SMALL LETTER DOTLESS I +0133 ; Lowercase # L& LATIN SMALL LIGATURE IJ +0135 ; Lowercase # L& LATIN SMALL LETTER J WITH CIRCUMFLEX +0137..0138 ; Lowercase # L& [2] LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA +013A ; Lowercase # L& LATIN SMALL LETTER L WITH ACUTE +013C ; Lowercase # L& LATIN SMALL LETTER L WITH CEDILLA +013E ; Lowercase # L& LATIN SMALL LETTER L WITH CARON +0140 ; Lowercase # L& LATIN SMALL LETTER L WITH MIDDLE DOT +0142 ; Lowercase # L& LATIN SMALL LETTER L WITH STROKE +0144 ; Lowercase # L& LATIN SMALL LETTER N WITH ACUTE +0146 ; Lowercase # L& LATIN SMALL LETTER N WITH CEDILLA +0148..0149 ; Lowercase # L& [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014B ; Lowercase # L& LATIN SMALL LETTER ENG +014D ; Lowercase # L& LATIN SMALL LETTER O WITH MACRON +014F ; Lowercase # L& LATIN SMALL LETTER O WITH BREVE +0151 ; Lowercase # L& LATIN SMALL LETTER O WITH DOUBLE ACUTE +0153 ; Lowercase # L& LATIN SMALL LIGATURE OE +0155 ; Lowercase # L& LATIN SMALL LETTER R WITH ACUTE +0157 ; Lowercase # L& LATIN SMALL LETTER R WITH CEDILLA +0159 ; Lowercase # L& LATIN SMALL LETTER R WITH CARON +015B ; Lowercase # L& LATIN SMALL LETTER S WITH ACUTE +015D ; Lowercase # L& LATIN SMALL LETTER S WITH CIRCUMFLEX +015F ; Lowercase # L& LATIN SMALL LETTER S WITH CEDILLA +0161 ; Lowercase # L& LATIN SMALL LETTER S WITH CARON +0163 ; Lowercase # L& LATIN SMALL LETTER T WITH CEDILLA +0165 ; Lowercase # L& LATIN SMALL LETTER T WITH CARON +0167 ; Lowercase # L& LATIN SMALL LETTER T WITH STROKE +0169 ; Lowercase # L& LATIN SMALL LETTER U WITH TILDE +016B ; Lowercase # L& LATIN SMALL LETTER U WITH MACRON +016D ; Lowercase # L& LATIN SMALL LETTER U WITH BREVE +016F ; Lowercase # L& LATIN SMALL LETTER U WITH RING ABOVE +0171 ; Lowercase # L& LATIN SMALL LETTER U WITH DOUBLE ACUTE +0173 ; Lowercase # L& LATIN SMALL LETTER U WITH OGONEK +0175 ; Lowercase # L& LATIN SMALL LETTER W WITH CIRCUMFLEX +0177 ; Lowercase # L& LATIN SMALL LETTER Y WITH CIRCUMFLEX +017A ; Lowercase # L& LATIN SMALL LETTER Z WITH ACUTE +017C ; Lowercase # L& LATIN SMALL LETTER Z WITH DOT ABOVE +017E..0180 ; Lowercase # L& [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE +0183 ; Lowercase # L& LATIN SMALL LETTER B WITH TOPBAR +0185 ; Lowercase # L& LATIN SMALL LETTER TONE SIX +0188 ; Lowercase # L& LATIN SMALL LETTER C WITH HOOK +018C..018D ; Lowercase # L& [2] LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA +0192 ; Lowercase # L& LATIN SMALL LETTER F WITH HOOK +0195 ; Lowercase # L& LATIN SMALL LETTER HV +0199..019B ; Lowercase # L& [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE +019E ; Lowercase # L& LATIN SMALL LETTER N WITH LONG RIGHT LEG +01A1 ; Lowercase # L& LATIN SMALL LETTER O WITH HORN +01A3 ; Lowercase # L& LATIN SMALL LETTER OI +01A5 ; Lowercase # L& LATIN SMALL LETTER P WITH HOOK +01A8 ; Lowercase # L& LATIN SMALL LETTER TONE TWO +01AA..01AB ; Lowercase # L& [2] LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK +01AD ; Lowercase # L& LATIN SMALL LETTER T WITH HOOK +01B0 ; Lowercase # L& LATIN SMALL LETTER U WITH HORN +01B4 ; Lowercase # L& LATIN SMALL LETTER Y WITH HOOK +01B6 ; Lowercase # L& LATIN SMALL LETTER Z WITH STROKE +01B9..01BA ; Lowercase # L& [2] LATIN SMALL LETTER EZH REVERSED..LATIN SMALL LETTER EZH WITH TAIL +01BD..01BF ; Lowercase # L& [3] LATIN SMALL LETTER TONE FIVE..LATIN LETTER WYNN +01C6 ; Lowercase # L& LATIN SMALL LETTER DZ WITH CARON +01C9 ; Lowercase # L& LATIN SMALL LETTER LJ +01CC ; Lowercase # L& LATIN SMALL LETTER NJ +01CE ; Lowercase # L& LATIN SMALL LETTER A WITH CARON +01D0 ; Lowercase # L& LATIN SMALL LETTER I WITH CARON +01D2 ; Lowercase # L& LATIN SMALL LETTER O WITH CARON +01D4 ; Lowercase # L& LATIN SMALL LETTER U WITH CARON +01D6 ; Lowercase # L& LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D8 ; Lowercase # L& LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01DA ; Lowercase # L& LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01DC..01DD ; Lowercase # L& [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E +01DF ; Lowercase # L& LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01E1 ; Lowercase # L& LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON +01E3 ; Lowercase # L& LATIN SMALL LETTER AE WITH MACRON +01E5 ; Lowercase # L& LATIN SMALL LETTER G WITH STROKE +01E7 ; Lowercase # L& LATIN SMALL LETTER G WITH CARON +01E9 ; Lowercase # L& LATIN SMALL LETTER K WITH CARON +01EB ; Lowercase # L& LATIN SMALL LETTER O WITH OGONEK +01ED ; Lowercase # L& LATIN SMALL LETTER O WITH OGONEK AND MACRON +01EF..01F0 ; Lowercase # L& [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON +01F3 ; Lowercase # L& LATIN SMALL LETTER DZ +01F5 ; Lowercase # L& LATIN SMALL LETTER G WITH ACUTE +01F9 ; Lowercase # L& LATIN SMALL LETTER N WITH GRAVE +01FB ; Lowercase # L& LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +01FD ; Lowercase # L& LATIN SMALL LETTER AE WITH ACUTE +01FF ; Lowercase # L& LATIN SMALL LETTER O WITH STROKE AND ACUTE +0201 ; Lowercase # L& LATIN SMALL LETTER A WITH DOUBLE GRAVE +0203 ; Lowercase # L& LATIN SMALL LETTER A WITH INVERTED BREVE +0205 ; Lowercase # L& LATIN SMALL LETTER E WITH DOUBLE GRAVE +0207 ; Lowercase # L& LATIN SMALL LETTER E WITH INVERTED BREVE +0209 ; Lowercase # L& LATIN SMALL LETTER I WITH DOUBLE GRAVE +020B ; Lowercase # L& LATIN SMALL LETTER I WITH INVERTED BREVE +020D ; Lowercase # L& LATIN SMALL LETTER O WITH DOUBLE GRAVE +020F ; Lowercase # L& LATIN SMALL LETTER O WITH INVERTED BREVE +0211 ; Lowercase # L& LATIN SMALL LETTER R WITH DOUBLE GRAVE +0213 ; Lowercase # L& LATIN SMALL LETTER R WITH INVERTED BREVE +0215 ; Lowercase # L& LATIN SMALL LETTER U WITH DOUBLE GRAVE +0217 ; Lowercase # L& LATIN SMALL LETTER U WITH INVERTED BREVE +0219 ; Lowercase # L& LATIN SMALL LETTER S WITH COMMA BELOW +021B ; Lowercase # L& LATIN SMALL LETTER T WITH COMMA BELOW +021D ; Lowercase # L& LATIN SMALL LETTER YOGH +021F ; Lowercase # L& LATIN SMALL LETTER H WITH CARON +0221 ; Lowercase # L& LATIN SMALL LETTER D WITH CURL +0223 ; Lowercase # L& LATIN SMALL LETTER OU +0225 ; Lowercase # L& LATIN SMALL LETTER Z WITH HOOK +0227 ; Lowercase # L& LATIN SMALL LETTER A WITH DOT ABOVE +0229 ; Lowercase # L& LATIN SMALL LETTER E WITH CEDILLA +022B ; Lowercase # L& LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022D ; Lowercase # L& LATIN SMALL LETTER O WITH TILDE AND MACRON +022F ; Lowercase # L& LATIN SMALL LETTER O WITH DOT ABOVE +0231 ; Lowercase # L& LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON +0233..0239 ; Lowercase # L& [7] LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH +023C ; Lowercase # L& LATIN SMALL LETTER C WITH STROKE +023F..0240 ; Lowercase # L& [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL +0242 ; Lowercase # L& LATIN SMALL LETTER GLOTTAL STOP +0247 ; Lowercase # L& LATIN SMALL LETTER E WITH STROKE +0249 ; Lowercase # L& LATIN SMALL LETTER J WITH STROKE +024B ; Lowercase # L& LATIN SMALL LETTER Q WITH HOOK TAIL +024D ; Lowercase # L& LATIN SMALL LETTER R WITH STROKE +024F..0293 ; Lowercase # L& [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL +0295..02AF ; Lowercase # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02B8 ; Lowercase # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y +02C0..02C1 ; Lowercase # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP +02E0..02E4 ; Lowercase # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +0345 ; Lowercase # Mn COMBINING GREEK YPOGEGRAMMENI +0371 ; Lowercase # L& GREEK SMALL LETTER HETA +0373 ; Lowercase # L& GREEK SMALL LETTER ARCHAIC SAMPI +0377 ; Lowercase # L& GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; Lowercase # Lm GREEK YPOGEGRAMMENI +037B..037D ; Lowercase # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0390 ; Lowercase # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +03AC..03CE ; Lowercase # L& [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS +03D0..03D1 ; Lowercase # L& [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL +03D5..03D7 ; Lowercase # L& [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL +03D9 ; Lowercase # L& GREEK SMALL LETTER ARCHAIC KOPPA +03DB ; Lowercase # L& GREEK SMALL LETTER STIGMA +03DD ; Lowercase # L& GREEK SMALL LETTER DIGAMMA +03DF ; Lowercase # L& GREEK SMALL LETTER KOPPA +03E1 ; Lowercase # L& GREEK SMALL LETTER SAMPI +03E3 ; Lowercase # L& COPTIC SMALL LETTER SHEI +03E5 ; Lowercase # L& COPTIC SMALL LETTER FEI +03E7 ; Lowercase # L& COPTIC SMALL LETTER KHEI +03E9 ; Lowercase # L& COPTIC SMALL LETTER HORI +03EB ; Lowercase # L& COPTIC SMALL LETTER GANGIA +03ED ; Lowercase # L& COPTIC SMALL LETTER SHIMA +03EF..03F3 ; Lowercase # L& [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT +03F5 ; Lowercase # L& GREEK LUNATE EPSILON SYMBOL +03F8 ; Lowercase # L& GREEK SMALL LETTER SHO +03FB..03FC ; Lowercase # L& [2] GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL +0430..045F ; Lowercase # L& [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE +0461 ; Lowercase # L& CYRILLIC SMALL LETTER OMEGA +0463 ; Lowercase # L& CYRILLIC SMALL LETTER YAT +0465 ; Lowercase # L& CYRILLIC SMALL LETTER IOTIFIED E +0467 ; Lowercase # L& CYRILLIC SMALL LETTER LITTLE YUS +0469 ; Lowercase # L& CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS +046B ; Lowercase # L& CYRILLIC SMALL LETTER BIG YUS +046D ; Lowercase # L& CYRILLIC SMALL LETTER IOTIFIED BIG YUS +046F ; Lowercase # L& CYRILLIC SMALL LETTER KSI +0471 ; Lowercase # L& CYRILLIC SMALL LETTER PSI +0473 ; Lowercase # L& CYRILLIC SMALL LETTER FITA +0475 ; Lowercase # L& CYRILLIC SMALL LETTER IZHITSA +0477 ; Lowercase # L& CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0479 ; Lowercase # L& CYRILLIC SMALL LETTER UK +047B ; Lowercase # L& CYRILLIC SMALL LETTER ROUND OMEGA +047D ; Lowercase # L& CYRILLIC SMALL LETTER OMEGA WITH TITLO +047F ; Lowercase # L& CYRILLIC SMALL LETTER OT +0481 ; Lowercase # L& CYRILLIC SMALL LETTER KOPPA +048B ; Lowercase # L& CYRILLIC SMALL LETTER SHORT I WITH TAIL +048D ; Lowercase # L& CYRILLIC SMALL LETTER SEMISOFT SIGN +048F ; Lowercase # L& CYRILLIC SMALL LETTER ER WITH TICK +0491 ; Lowercase # L& CYRILLIC SMALL LETTER GHE WITH UPTURN +0493 ; Lowercase # L& CYRILLIC SMALL LETTER GHE WITH STROKE +0495 ; Lowercase # L& CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK +0497 ; Lowercase # L& CYRILLIC SMALL LETTER ZHE WITH DESCENDER +0499 ; Lowercase # L& CYRILLIC SMALL LETTER ZE WITH DESCENDER +049B ; Lowercase # L& CYRILLIC SMALL LETTER KA WITH DESCENDER +049D ; Lowercase # L& CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE +049F ; Lowercase # L& CYRILLIC SMALL LETTER KA WITH STROKE +04A1 ; Lowercase # L& CYRILLIC SMALL LETTER BASHKIR KA +04A3 ; Lowercase # L& CYRILLIC SMALL LETTER EN WITH DESCENDER +04A5 ; Lowercase # L& CYRILLIC SMALL LIGATURE EN GHE +04A7 ; Lowercase # L& CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK +04A9 ; Lowercase # L& CYRILLIC SMALL LETTER ABKHASIAN HA +04AB ; Lowercase # L& CYRILLIC SMALL LETTER ES WITH DESCENDER +04AD ; Lowercase # L& CYRILLIC SMALL LETTER TE WITH DESCENDER +04AF ; Lowercase # L& CYRILLIC SMALL LETTER STRAIGHT U +04B1 ; Lowercase # L& CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +04B3 ; Lowercase # L& CYRILLIC SMALL LETTER HA WITH DESCENDER +04B5 ; Lowercase # L& CYRILLIC SMALL LIGATURE TE TSE +04B7 ; Lowercase # L& CYRILLIC SMALL LETTER CHE WITH DESCENDER +04B9 ; Lowercase # L& CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE +04BB ; Lowercase # L& CYRILLIC SMALL LETTER SHHA +04BD ; Lowercase # L& CYRILLIC SMALL LETTER ABKHASIAN CHE +04BF ; Lowercase # L& CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER +04C2 ; Lowercase # L& CYRILLIC SMALL LETTER ZHE WITH BREVE +04C4 ; Lowercase # L& CYRILLIC SMALL LETTER KA WITH HOOK +04C6 ; Lowercase # L& CYRILLIC SMALL LETTER EL WITH TAIL +04C8 ; Lowercase # L& CYRILLIC SMALL LETTER EN WITH HOOK +04CA ; Lowercase # L& CYRILLIC SMALL LETTER EN WITH TAIL +04CC ; Lowercase # L& CYRILLIC SMALL LETTER KHAKASSIAN CHE +04CE..04CF ; Lowercase # L& [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA +04D1 ; Lowercase # L& CYRILLIC SMALL LETTER A WITH BREVE +04D3 ; Lowercase # L& CYRILLIC SMALL LETTER A WITH DIAERESIS +04D5 ; Lowercase # L& CYRILLIC SMALL LIGATURE A IE +04D7 ; Lowercase # L& CYRILLIC SMALL LETTER IE WITH BREVE +04D9 ; Lowercase # L& CYRILLIC SMALL LETTER SCHWA +04DB ; Lowercase # L& CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS +04DD ; Lowercase # L& CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DF ; Lowercase # L& CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04E1 ; Lowercase # L& CYRILLIC SMALL LETTER ABKHASIAN DZE +04E3 ; Lowercase # L& CYRILLIC SMALL LETTER I WITH MACRON +04E5 ; Lowercase # L& CYRILLIC SMALL LETTER I WITH DIAERESIS +04E7 ; Lowercase # L& CYRILLIC SMALL LETTER O WITH DIAERESIS +04E9 ; Lowercase # L& CYRILLIC SMALL LETTER BARRED O +04EB ; Lowercase # L& CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS +04ED ; Lowercase # L& CYRILLIC SMALL LETTER E WITH DIAERESIS +04EF ; Lowercase # L& CYRILLIC SMALL LETTER U WITH MACRON +04F1 ; Lowercase # L& CYRILLIC SMALL LETTER U WITH DIAERESIS +04F3 ; Lowercase # L& CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F5 ; Lowercase # L& CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F7 ; Lowercase # L& CYRILLIC SMALL LETTER GHE WITH DESCENDER +04F9 ; Lowercase # L& CYRILLIC SMALL LETTER YERU WITH DIAERESIS +04FB ; Lowercase # L& CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK +04FD ; Lowercase # L& CYRILLIC SMALL LETTER HA WITH HOOK +04FF ; Lowercase # L& CYRILLIC SMALL LETTER HA WITH STROKE +0501 ; Lowercase # L& CYRILLIC SMALL LETTER KOMI DE +0503 ; Lowercase # L& CYRILLIC SMALL LETTER KOMI DJE +0505 ; Lowercase # L& CYRILLIC SMALL LETTER KOMI ZJE +0507 ; Lowercase # L& CYRILLIC SMALL LETTER KOMI DZJE +0509 ; Lowercase # L& CYRILLIC SMALL LETTER KOMI LJE +050B ; Lowercase # L& CYRILLIC SMALL LETTER KOMI NJE +050D ; Lowercase # L& CYRILLIC SMALL LETTER KOMI SJE +050F ; Lowercase # L& CYRILLIC SMALL LETTER KOMI TJE +0511 ; Lowercase # L& CYRILLIC SMALL LETTER REVERSED ZE +0513 ; Lowercase # L& CYRILLIC SMALL LETTER EL WITH HOOK +0515 ; Lowercase # L& CYRILLIC SMALL LETTER LHA +0517 ; Lowercase # L& CYRILLIC SMALL LETTER RHA +0519 ; Lowercase # L& CYRILLIC SMALL LETTER YAE +051B ; Lowercase # L& CYRILLIC SMALL LETTER QA +051D ; Lowercase # L& CYRILLIC SMALL LETTER WE +051F ; Lowercase # L& CYRILLIC SMALL LETTER ALEUT KA +0521 ; Lowercase # L& CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK +0523 ; Lowercase # L& CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK +0525 ; Lowercase # L& CYRILLIC SMALL LETTER PE WITH DESCENDER +0527 ; Lowercase # L& CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0561..0587 ; Lowercase # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +1D00..1D2B ; Lowercase # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; Lowercase # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; Lowercase # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; Lowercase # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; Lowercase # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; Lowercase # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1E01 ; Lowercase # L& LATIN SMALL LETTER A WITH RING BELOW +1E03 ; Lowercase # L& LATIN SMALL LETTER B WITH DOT ABOVE +1E05 ; Lowercase # L& LATIN SMALL LETTER B WITH DOT BELOW +1E07 ; Lowercase # L& LATIN SMALL LETTER B WITH LINE BELOW +1E09 ; Lowercase # L& LATIN SMALL LETTER C WITH CEDILLA AND ACUTE +1E0B ; Lowercase # L& LATIN SMALL LETTER D WITH DOT ABOVE +1E0D ; Lowercase # L& LATIN SMALL LETTER D WITH DOT BELOW +1E0F ; Lowercase # L& LATIN SMALL LETTER D WITH LINE BELOW +1E11 ; Lowercase # L& LATIN SMALL LETTER D WITH CEDILLA +1E13 ; Lowercase # L& LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW +1E15 ; Lowercase # L& LATIN SMALL LETTER E WITH MACRON AND GRAVE +1E17 ; Lowercase # L& LATIN SMALL LETTER E WITH MACRON AND ACUTE +1E19 ; Lowercase # L& LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW +1E1B ; Lowercase # L& LATIN SMALL LETTER E WITH TILDE BELOW +1E1D ; Lowercase # L& LATIN SMALL LETTER E WITH CEDILLA AND BREVE +1E1F ; Lowercase # L& LATIN SMALL LETTER F WITH DOT ABOVE +1E21 ; Lowercase # L& LATIN SMALL LETTER G WITH MACRON +1E23 ; Lowercase # L& LATIN SMALL LETTER H WITH DOT ABOVE +1E25 ; Lowercase # L& LATIN SMALL LETTER H WITH DOT BELOW +1E27 ; Lowercase # L& LATIN SMALL LETTER H WITH DIAERESIS +1E29 ; Lowercase # L& LATIN SMALL LETTER H WITH CEDILLA +1E2B ; Lowercase # L& LATIN SMALL LETTER H WITH BREVE BELOW +1E2D ; Lowercase # L& LATIN SMALL LETTER I WITH TILDE BELOW +1E2F ; Lowercase # L& LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE +1E31 ; Lowercase # L& LATIN SMALL LETTER K WITH ACUTE +1E33 ; Lowercase # L& LATIN SMALL LETTER K WITH DOT BELOW +1E35 ; Lowercase # L& LATIN SMALL LETTER K WITH LINE BELOW +1E37 ; Lowercase # L& LATIN SMALL LETTER L WITH DOT BELOW +1E39 ; Lowercase # L& LATIN SMALL LETTER L WITH DOT BELOW AND MACRON +1E3B ; Lowercase # L& LATIN SMALL LETTER L WITH LINE BELOW +1E3D ; Lowercase # L& LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW +1E3F ; Lowercase # L& LATIN SMALL LETTER M WITH ACUTE +1E41 ; Lowercase # L& LATIN SMALL LETTER M WITH DOT ABOVE +1E43 ; Lowercase # L& LATIN SMALL LETTER M WITH DOT BELOW +1E45 ; Lowercase # L& LATIN SMALL LETTER N WITH DOT ABOVE +1E47 ; Lowercase # L& LATIN SMALL LETTER N WITH DOT BELOW +1E49 ; Lowercase # L& LATIN SMALL LETTER N WITH LINE BELOW +1E4B ; Lowercase # L& LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW +1E4D ; Lowercase # L& LATIN SMALL LETTER O WITH TILDE AND ACUTE +1E4F ; Lowercase # L& LATIN SMALL LETTER O WITH TILDE AND DIAERESIS +1E51 ; Lowercase # L& LATIN SMALL LETTER O WITH MACRON AND GRAVE +1E53 ; Lowercase # L& LATIN SMALL LETTER O WITH MACRON AND ACUTE +1E55 ; Lowercase # L& LATIN SMALL LETTER P WITH ACUTE +1E57 ; Lowercase # L& LATIN SMALL LETTER P WITH DOT ABOVE +1E59 ; Lowercase # L& LATIN SMALL LETTER R WITH DOT ABOVE +1E5B ; Lowercase # L& LATIN SMALL LETTER R WITH DOT BELOW +1E5D ; Lowercase # L& LATIN SMALL LETTER R WITH DOT BELOW AND MACRON +1E5F ; Lowercase # L& LATIN SMALL LETTER R WITH LINE BELOW +1E61 ; Lowercase # L& LATIN SMALL LETTER S WITH DOT ABOVE +1E63 ; Lowercase # L& LATIN SMALL LETTER S WITH DOT BELOW +1E65 ; Lowercase # L& LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE +1E67 ; Lowercase # L& LATIN SMALL LETTER S WITH CARON AND DOT ABOVE +1E69 ; Lowercase # L& LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6B ; Lowercase # L& LATIN SMALL LETTER T WITH DOT ABOVE +1E6D ; Lowercase # L& LATIN SMALL LETTER T WITH DOT BELOW +1E6F ; Lowercase # L& LATIN SMALL LETTER T WITH LINE BELOW +1E71 ; Lowercase # L& LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW +1E73 ; Lowercase # L& LATIN SMALL LETTER U WITH DIAERESIS BELOW +1E75 ; Lowercase # L& LATIN SMALL LETTER U WITH TILDE BELOW +1E77 ; Lowercase # L& LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW +1E79 ; Lowercase # L& LATIN SMALL LETTER U WITH TILDE AND ACUTE +1E7B ; Lowercase # L& LATIN SMALL LETTER U WITH MACRON AND DIAERESIS +1E7D ; Lowercase # L& LATIN SMALL LETTER V WITH TILDE +1E7F ; Lowercase # L& LATIN SMALL LETTER V WITH DOT BELOW +1E81 ; Lowercase # L& LATIN SMALL LETTER W WITH GRAVE +1E83 ; Lowercase # L& LATIN SMALL LETTER W WITH ACUTE +1E85 ; Lowercase # L& LATIN SMALL LETTER W WITH DIAERESIS +1E87 ; Lowercase # L& LATIN SMALL LETTER W WITH DOT ABOVE +1E89 ; Lowercase # L& LATIN SMALL LETTER W WITH DOT BELOW +1E8B ; Lowercase # L& LATIN SMALL LETTER X WITH DOT ABOVE +1E8D ; Lowercase # L& LATIN SMALL LETTER X WITH DIAERESIS +1E8F ; Lowercase # L& LATIN SMALL LETTER Y WITH DOT ABOVE +1E91 ; Lowercase # L& LATIN SMALL LETTER Z WITH CIRCUMFLEX +1E93 ; Lowercase # L& LATIN SMALL LETTER Z WITH DOT BELOW +1E95..1E9D ; Lowercase # L& [9] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH HIGH STROKE +1E9F ; Lowercase # L& LATIN SMALL LETTER DELTA +1EA1 ; Lowercase # L& LATIN SMALL LETTER A WITH DOT BELOW +1EA3 ; Lowercase # L& LATIN SMALL LETTER A WITH HOOK ABOVE +1EA5 ; Lowercase # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA7 ; Lowercase # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA9 ; Lowercase # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAB ; Lowercase # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAD ; Lowercase # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAF ; Lowercase # L& LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EB1 ; Lowercase # L& LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB3 ; Lowercase # L& LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB5 ; Lowercase # L& LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB7 ; Lowercase # L& LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB9 ; Lowercase # L& LATIN SMALL LETTER E WITH DOT BELOW +1EBB ; Lowercase # L& LATIN SMALL LETTER E WITH HOOK ABOVE +1EBD ; Lowercase # L& LATIN SMALL LETTER E WITH TILDE +1EBF ; Lowercase # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC1 ; Lowercase # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC3 ; Lowercase # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC5 ; Lowercase # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC7 ; Lowercase # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC9 ; Lowercase # L& LATIN SMALL LETTER I WITH HOOK ABOVE +1ECB ; Lowercase # L& LATIN SMALL LETTER I WITH DOT BELOW +1ECD ; Lowercase # L& LATIN SMALL LETTER O WITH DOT BELOW +1ECF ; Lowercase # L& LATIN SMALL LETTER O WITH HOOK ABOVE +1ED1 ; Lowercase # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED3 ; Lowercase # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED5 ; Lowercase # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED7 ; Lowercase # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED9 ; Lowercase # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDB ; Lowercase # L& LATIN SMALL LETTER O WITH HORN AND ACUTE +1EDD ; Lowercase # L& LATIN SMALL LETTER O WITH HORN AND GRAVE +1EDF ; Lowercase # L& LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +1EE1 ; Lowercase # L& LATIN SMALL LETTER O WITH HORN AND TILDE +1EE3 ; Lowercase # L& LATIN SMALL LETTER O WITH HORN AND DOT BELOW +1EE5 ; Lowercase # L& LATIN SMALL LETTER U WITH DOT BELOW +1EE7 ; Lowercase # L& LATIN SMALL LETTER U WITH HOOK ABOVE +1EE9 ; Lowercase # L& LATIN SMALL LETTER U WITH HORN AND ACUTE +1EEB ; Lowercase # L& LATIN SMALL LETTER U WITH HORN AND GRAVE +1EED ; Lowercase # L& LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +1EEF ; Lowercase # L& LATIN SMALL LETTER U WITH HORN AND TILDE +1EF1 ; Lowercase # L& LATIN SMALL LETTER U WITH HORN AND DOT BELOW +1EF3 ; Lowercase # L& LATIN SMALL LETTER Y WITH GRAVE +1EF5 ; Lowercase # L& LATIN SMALL LETTER Y WITH DOT BELOW +1EF7 ; Lowercase # L& LATIN SMALL LETTER Y WITH HOOK ABOVE +1EF9 ; Lowercase # L& LATIN SMALL LETTER Y WITH TILDE +1EFB ; Lowercase # L& LATIN SMALL LETTER MIDDLE-WELSH LL +1EFD ; Lowercase # L& LATIN SMALL LETTER MIDDLE-WELSH V +1EFF..1F07 ; Lowercase # L& [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F10..1F15 ; Lowercase # L& [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F27 ; Lowercase # L& [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI +1F30..1F37 ; Lowercase # L& [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI +1F40..1F45 ; Lowercase # L& [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Lowercase # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F60..1F67 ; Lowercase # L& [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F70..1F7D ; Lowercase # L& [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1F87 ; Lowercase # L& [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F90..1F97 ; Lowercase # L& [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FA0..1FA7 ; Lowercase # L& [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FB0..1FB4 ; Lowercase # L& [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FB7 ; Lowercase # L& [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FBE ; Lowercase # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; Lowercase # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FC7 ; Lowercase # L& [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FD0..1FD3 ; Lowercase # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FD7 ; Lowercase # L& [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FE0..1FE7 ; Lowercase # L& [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FF2..1FF4 ; Lowercase # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FF7 ; Lowercase # L& [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI +2071 ; Lowercase # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; Lowercase # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; Lowercase # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +210A ; Lowercase # L& SCRIPT SMALL G +210E..210F ; Lowercase # L& [2] PLANCK CONSTANT..PLANCK CONSTANT OVER TWO PI +2113 ; Lowercase # L& SCRIPT SMALL L +212F ; Lowercase # L& SCRIPT SMALL E +2134 ; Lowercase # L& SCRIPT SMALL O +2139 ; Lowercase # L& INFORMATION SOURCE +213C..213D ; Lowercase # L& [2] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK SMALL GAMMA +2146..2149 ; Lowercase # L& [4] DOUBLE-STRUCK ITALIC SMALL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; Lowercase # L& TURNED SMALL F +2170..217F ; Lowercase # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +2184 ; Lowercase # L& LATIN SMALL LETTER REVERSED C +24D0..24E9 ; Lowercase # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C30..2C5E ; Lowercase # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C61 ; Lowercase # L& LATIN SMALL LETTER L WITH DOUBLE BAR +2C65..2C66 ; Lowercase # L& [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE +2C68 ; Lowercase # L& LATIN SMALL LETTER H WITH DESCENDER +2C6A ; Lowercase # L& LATIN SMALL LETTER K WITH DESCENDER +2C6C ; Lowercase # L& LATIN SMALL LETTER Z WITH DESCENDER +2C71 ; Lowercase # L& LATIN SMALL LETTER V WITH RIGHT HOOK +2C73..2C74 ; Lowercase # L& [2] LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL +2C76..2C7B ; Lowercase # L& [6] LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; Lowercase # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C81 ; Lowercase # L& COPTIC SMALL LETTER ALFA +2C83 ; Lowercase # L& COPTIC SMALL LETTER VIDA +2C85 ; Lowercase # L& COPTIC SMALL LETTER GAMMA +2C87 ; Lowercase # L& COPTIC SMALL LETTER DALDA +2C89 ; Lowercase # L& COPTIC SMALL LETTER EIE +2C8B ; Lowercase # L& COPTIC SMALL LETTER SOU +2C8D ; Lowercase # L& COPTIC SMALL LETTER ZATA +2C8F ; Lowercase # L& COPTIC SMALL LETTER HATE +2C91 ; Lowercase # L& COPTIC SMALL LETTER THETHE +2C93 ; Lowercase # L& COPTIC SMALL LETTER IAUDA +2C95 ; Lowercase # L& COPTIC SMALL LETTER KAPA +2C97 ; Lowercase # L& COPTIC SMALL LETTER LAULA +2C99 ; Lowercase # L& COPTIC SMALL LETTER MI +2C9B ; Lowercase # L& COPTIC SMALL LETTER NI +2C9D ; Lowercase # L& COPTIC SMALL LETTER KSI +2C9F ; Lowercase # L& COPTIC SMALL LETTER O +2CA1 ; Lowercase # L& COPTIC SMALL LETTER PI +2CA3 ; Lowercase # L& COPTIC SMALL LETTER RO +2CA5 ; Lowercase # L& COPTIC SMALL LETTER SIMA +2CA7 ; Lowercase # L& COPTIC SMALL LETTER TAU +2CA9 ; Lowercase # L& COPTIC SMALL LETTER UA +2CAB ; Lowercase # L& COPTIC SMALL LETTER FI +2CAD ; Lowercase # L& COPTIC SMALL LETTER KHI +2CAF ; Lowercase # L& COPTIC SMALL LETTER PSI +2CB1 ; Lowercase # L& COPTIC SMALL LETTER OOU +2CB3 ; Lowercase # L& COPTIC SMALL LETTER DIALECT-P ALEF +2CB5 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC AIN +2CB7 ; Lowercase # L& COPTIC SMALL LETTER CRYPTOGRAMMIC EIE +2CB9 ; Lowercase # L& COPTIC SMALL LETTER DIALECT-P KAPA +2CBB ; Lowercase # L& COPTIC SMALL LETTER DIALECT-P NI +2CBD ; Lowercase # L& COPTIC SMALL LETTER CRYPTOGRAMMIC NI +2CBF ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC OOU +2CC1 ; Lowercase # L& COPTIC SMALL LETTER SAMPI +2CC3 ; Lowercase # L& COPTIC SMALL LETTER CROSSED SHEI +2CC5 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC SHEI +2CC7 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC ESH +2CC9 ; Lowercase # L& COPTIC SMALL LETTER AKHMIMIC KHEI +2CCB ; Lowercase # L& COPTIC SMALL LETTER DIALECT-P HORI +2CCD ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC HORI +2CCF ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC HA +2CD1 ; Lowercase # L& COPTIC SMALL LETTER L-SHAPED HA +2CD3 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC HEI +2CD5 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC HAT +2CD7 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC GANGIA +2CD9 ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC DJA +2CDB ; Lowercase # L& COPTIC SMALL LETTER OLD COPTIC SHIMA +2CDD ; Lowercase # L& COPTIC SMALL LETTER OLD NUBIAN SHIMA +2CDF ; Lowercase # L& COPTIC SMALL LETTER OLD NUBIAN NGI +2CE1 ; Lowercase # L& COPTIC SMALL LETTER OLD NUBIAN NYI +2CE3..2CE4 ; Lowercase # L& [2] COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI +2CEC ; Lowercase # L& COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI +2CEE ; Lowercase # L& COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF3 ; Lowercase # L& COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; Lowercase # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Lowercase # L& GEORGIAN SMALL LETTER YN +2D2D ; Lowercase # L& GEORGIAN SMALL LETTER AEN +A641 ; Lowercase # L& CYRILLIC SMALL LETTER ZEMLYA +A643 ; Lowercase # L& CYRILLIC SMALL LETTER DZELO +A645 ; Lowercase # L& CYRILLIC SMALL LETTER REVERSED DZE +A647 ; Lowercase # L& CYRILLIC SMALL LETTER IOTA +A649 ; Lowercase # L& CYRILLIC SMALL LETTER DJERV +A64B ; Lowercase # L& CYRILLIC SMALL LETTER MONOGRAPH UK +A64D ; Lowercase # L& CYRILLIC SMALL LETTER BROAD OMEGA +A64F ; Lowercase # L& CYRILLIC SMALL LETTER NEUTRAL YER +A651 ; Lowercase # L& CYRILLIC SMALL LETTER YERU WITH BACK YER +A653 ; Lowercase # L& CYRILLIC SMALL LETTER IOTIFIED YAT +A655 ; Lowercase # L& CYRILLIC SMALL LETTER REVERSED YU +A657 ; Lowercase # L& CYRILLIC SMALL LETTER IOTIFIED A +A659 ; Lowercase # L& CYRILLIC SMALL LETTER CLOSED LITTLE YUS +A65B ; Lowercase # L& CYRILLIC SMALL LETTER BLENDED YUS +A65D ; Lowercase # L& CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS +A65F ; Lowercase # L& CYRILLIC SMALL LETTER YN +A661 ; Lowercase # L& CYRILLIC SMALL LETTER REVERSED TSE +A663 ; Lowercase # L& CYRILLIC SMALL LETTER SOFT DE +A665 ; Lowercase # L& CYRILLIC SMALL LETTER SOFT EL +A667 ; Lowercase # L& CYRILLIC SMALL LETTER SOFT EM +A669 ; Lowercase # L& CYRILLIC SMALL LETTER MONOCULAR O +A66B ; Lowercase # L& CYRILLIC SMALL LETTER BINOCULAR O +A66D ; Lowercase # L& CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A681 ; Lowercase # L& CYRILLIC SMALL LETTER DWE +A683 ; Lowercase # L& CYRILLIC SMALL LETTER DZWE +A685 ; Lowercase # L& CYRILLIC SMALL LETTER ZHWE +A687 ; Lowercase # L& CYRILLIC SMALL LETTER CCHE +A689 ; Lowercase # L& CYRILLIC SMALL LETTER DZZE +A68B ; Lowercase # L& CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK +A68D ; Lowercase # L& CYRILLIC SMALL LETTER TWE +A68F ; Lowercase # L& CYRILLIC SMALL LETTER TSWE +A691 ; Lowercase # L& CYRILLIC SMALL LETTER TSSE +A693 ; Lowercase # L& CYRILLIC SMALL LETTER TCHE +A695 ; Lowercase # L& CYRILLIC SMALL LETTER HWE +A697 ; Lowercase # L& CYRILLIC SMALL LETTER SHWE +A723 ; Lowercase # L& LATIN SMALL LETTER EGYPTOLOGICAL ALEF +A725 ; Lowercase # L& LATIN SMALL LETTER EGYPTOLOGICAL AIN +A727 ; Lowercase # L& LATIN SMALL LETTER HENG +A729 ; Lowercase # L& LATIN SMALL LETTER TZ +A72B ; Lowercase # L& LATIN SMALL LETTER TRESILLO +A72D ; Lowercase # L& LATIN SMALL LETTER CUATRILLO +A72F..A731 ; Lowercase # L& [3] LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S +A733 ; Lowercase # L& LATIN SMALL LETTER AA +A735 ; Lowercase # L& LATIN SMALL LETTER AO +A737 ; Lowercase # L& LATIN SMALL LETTER AU +A739 ; Lowercase # L& LATIN SMALL LETTER AV +A73B ; Lowercase # L& LATIN SMALL LETTER AV WITH HORIZONTAL BAR +A73D ; Lowercase # L& LATIN SMALL LETTER AY +A73F ; Lowercase # L& LATIN SMALL LETTER REVERSED C WITH DOT +A741 ; Lowercase # L& LATIN SMALL LETTER K WITH STROKE +A743 ; Lowercase # L& LATIN SMALL LETTER K WITH DIAGONAL STROKE +A745 ; Lowercase # L& LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE +A747 ; Lowercase # L& LATIN SMALL LETTER BROKEN L +A749 ; Lowercase # L& LATIN SMALL LETTER L WITH HIGH STROKE +A74B ; Lowercase # L& LATIN SMALL LETTER O WITH LONG STROKE OVERLAY +A74D ; Lowercase # L& LATIN SMALL LETTER O WITH LOOP +A74F ; Lowercase # L& LATIN SMALL LETTER OO +A751 ; Lowercase # L& LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER +A753 ; Lowercase # L& LATIN SMALL LETTER P WITH FLOURISH +A755 ; Lowercase # L& LATIN SMALL LETTER P WITH SQUIRREL TAIL +A757 ; Lowercase # L& LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER +A759 ; Lowercase # L& LATIN SMALL LETTER Q WITH DIAGONAL STROKE +A75B ; Lowercase # L& LATIN SMALL LETTER R ROTUNDA +A75D ; Lowercase # L& LATIN SMALL LETTER RUM ROTUNDA +A75F ; Lowercase # L& LATIN SMALL LETTER V WITH DIAGONAL STROKE +A761 ; Lowercase # L& LATIN SMALL LETTER VY +A763 ; Lowercase # L& LATIN SMALL LETTER VISIGOTHIC Z +A765 ; Lowercase # L& LATIN SMALL LETTER THORN WITH STROKE +A767 ; Lowercase # L& LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER +A769 ; Lowercase # L& LATIN SMALL LETTER VEND +A76B ; Lowercase # L& LATIN SMALL LETTER ET +A76D ; Lowercase # L& LATIN SMALL LETTER IS +A76F ; Lowercase # L& LATIN SMALL LETTER CON +A770 ; Lowercase # Lm MODIFIER LETTER US +A771..A778 ; Lowercase # L& [8] LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM +A77A ; Lowercase # L& LATIN SMALL LETTER INSULAR D +A77C ; Lowercase # L& LATIN SMALL LETTER INSULAR F +A77F ; Lowercase # L& LATIN SMALL LETTER TURNED INSULAR G +A781 ; Lowercase # L& LATIN SMALL LETTER TURNED L +A783 ; Lowercase # L& LATIN SMALL LETTER INSULAR R +A785 ; Lowercase # L& LATIN SMALL LETTER INSULAR S +A787 ; Lowercase # L& LATIN SMALL LETTER INSULAR T +A78C ; Lowercase # L& LATIN SMALL LETTER SALTILLO +A78E ; Lowercase # L& LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A791 ; Lowercase # L& LATIN SMALL LETTER N WITH DESCENDER +A793 ; Lowercase # L& LATIN SMALL LETTER C WITH BAR +A7A1 ; Lowercase # L& LATIN SMALL LETTER G WITH OBLIQUE STROKE +A7A3 ; Lowercase # L& LATIN SMALL LETTER K WITH OBLIQUE STROKE +A7A5 ; Lowercase # L& LATIN SMALL LETTER N WITH OBLIQUE STROKE +A7A7 ; Lowercase # L& LATIN SMALL LETTER R WITH OBLIQUE STROKE +A7A9 ; Lowercase # L& LATIN SMALL LETTER S WITH OBLIQUE STROKE +A7F8..A7F9 ; Lowercase # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; Lowercase # L& LATIN LETTER SMALL CAPITAL TURNED M +FB00..FB06 ; Lowercase # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Lowercase # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FF41..FF5A ; Lowercase # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +10428..1044F ; Lowercase # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW +1D41A..1D433 ; Lowercase # L& [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z +1D44E..1D454 ; Lowercase # L& [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G +1D456..1D467 ; Lowercase # L& [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z +1D482..1D49B ; Lowercase # L& [26] MATHEMATICAL BOLD ITALIC SMALL A..MATHEMATICAL BOLD ITALIC SMALL Z +1D4B6..1D4B9 ; Lowercase # L& [4] MATHEMATICAL SCRIPT SMALL A..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Lowercase # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Lowercase # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D4CF ; Lowercase # L& [11] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL SCRIPT SMALL Z +1D4EA..1D503 ; Lowercase # L& [26] MATHEMATICAL BOLD SCRIPT SMALL A..MATHEMATICAL BOLD SCRIPT SMALL Z +1D51E..1D537 ; Lowercase # L& [26] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL FRAKTUR SMALL Z +1D552..1D56B ; Lowercase # L& [26] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL DOUBLE-STRUCK SMALL Z +1D586..1D59F ; Lowercase # L& [26] MATHEMATICAL BOLD FRAKTUR SMALL A..MATHEMATICAL BOLD FRAKTUR SMALL Z +1D5BA..1D5D3 ; Lowercase # L& [26] MATHEMATICAL SANS-SERIF SMALL A..MATHEMATICAL SANS-SERIF SMALL Z +1D5EE..1D607 ; Lowercase # L& [26] MATHEMATICAL SANS-SERIF BOLD SMALL A..MATHEMATICAL SANS-SERIF BOLD SMALL Z +1D622..1D63B ; Lowercase # L& [26] MATHEMATICAL SANS-SERIF ITALIC SMALL A..MATHEMATICAL SANS-SERIF ITALIC SMALL Z +1D656..1D66F ; Lowercase # L& [26] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z +1D68A..1D6A5 ; Lowercase # L& [28] MATHEMATICAL MONOSPACE SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6C2..1D6DA ; Lowercase # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6E1 ; Lowercase # L& [6] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL BOLD PI SYMBOL +1D6FC..1D714 ; Lowercase # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D71B ; Lowercase # L& [6] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL ITALIC PI SYMBOL +1D736..1D74E ; Lowercase # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D755 ; Lowercase # L& [6] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC PI SYMBOL +1D770..1D788 ; Lowercase # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D78F ; Lowercase # L& [6] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD PI SYMBOL +1D7AA..1D7C2 ; Lowercase # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7C9 ; Lowercase # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL +1D7CB ; Lowercase # L& MATHEMATICAL BOLD SMALL DIGAMMA + +# Total code points: 1934 + +# ================================================ + +# Derived Property: Uppercase +# Generated from: Lu + Other_Uppercase + +0041..005A ; Uppercase # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +00C0..00D6 ; Uppercase # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00DE ; Uppercase # L& [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN +0100 ; Uppercase # L& LATIN CAPITAL LETTER A WITH MACRON +0102 ; Uppercase # L& LATIN CAPITAL LETTER A WITH BREVE +0104 ; Uppercase # L& LATIN CAPITAL LETTER A WITH OGONEK +0106 ; Uppercase # L& LATIN CAPITAL LETTER C WITH ACUTE +0108 ; Uppercase # L& LATIN CAPITAL LETTER C WITH CIRCUMFLEX +010A ; Uppercase # L& LATIN CAPITAL LETTER C WITH DOT ABOVE +010C ; Uppercase # L& LATIN CAPITAL LETTER C WITH CARON +010E ; Uppercase # L& LATIN CAPITAL LETTER D WITH CARON +0110 ; Uppercase # L& LATIN CAPITAL LETTER D WITH STROKE +0112 ; Uppercase # L& LATIN CAPITAL LETTER E WITH MACRON +0114 ; Uppercase # L& LATIN CAPITAL LETTER E WITH BREVE +0116 ; Uppercase # L& LATIN CAPITAL LETTER E WITH DOT ABOVE +0118 ; Uppercase # L& LATIN CAPITAL LETTER E WITH OGONEK +011A ; Uppercase # L& LATIN CAPITAL LETTER E WITH CARON +011C ; Uppercase # L& LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011E ; Uppercase # L& LATIN CAPITAL LETTER G WITH BREVE +0120 ; Uppercase # L& LATIN CAPITAL LETTER G WITH DOT ABOVE +0122 ; Uppercase # L& LATIN CAPITAL LETTER G WITH CEDILLA +0124 ; Uppercase # L& LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0126 ; Uppercase # L& LATIN CAPITAL LETTER H WITH STROKE +0128 ; Uppercase # L& LATIN CAPITAL LETTER I WITH TILDE +012A ; Uppercase # L& LATIN CAPITAL LETTER I WITH MACRON +012C ; Uppercase # L& LATIN CAPITAL LETTER I WITH BREVE +012E ; Uppercase # L& LATIN CAPITAL LETTER I WITH OGONEK +0130 ; Uppercase # L& LATIN CAPITAL LETTER I WITH DOT ABOVE +0132 ; Uppercase # L& LATIN CAPITAL LIGATURE IJ +0134 ; Uppercase # L& LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0136 ; Uppercase # L& LATIN CAPITAL LETTER K WITH CEDILLA +0139 ; Uppercase # L& LATIN CAPITAL LETTER L WITH ACUTE +013B ; Uppercase # L& LATIN CAPITAL LETTER L WITH CEDILLA +013D ; Uppercase # L& LATIN CAPITAL LETTER L WITH CARON +013F ; Uppercase # L& LATIN CAPITAL LETTER L WITH MIDDLE DOT +0141 ; Uppercase # L& LATIN CAPITAL LETTER L WITH STROKE +0143 ; Uppercase # L& LATIN CAPITAL LETTER N WITH ACUTE +0145 ; Uppercase # L& LATIN CAPITAL LETTER N WITH CEDILLA +0147 ; Uppercase # L& LATIN CAPITAL LETTER N WITH CARON +014A ; Uppercase # L& LATIN CAPITAL LETTER ENG +014C ; Uppercase # L& LATIN CAPITAL LETTER O WITH MACRON +014E ; Uppercase # L& LATIN CAPITAL LETTER O WITH BREVE +0150 ; Uppercase # L& LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0152 ; Uppercase # L& LATIN CAPITAL LIGATURE OE +0154 ; Uppercase # L& LATIN CAPITAL LETTER R WITH ACUTE +0156 ; Uppercase # L& LATIN CAPITAL LETTER R WITH CEDILLA +0158 ; Uppercase # L& LATIN CAPITAL LETTER R WITH CARON +015A ; Uppercase # L& LATIN CAPITAL LETTER S WITH ACUTE +015C ; Uppercase # L& LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015E ; Uppercase # L& LATIN CAPITAL LETTER S WITH CEDILLA +0160 ; Uppercase # L& LATIN CAPITAL LETTER S WITH CARON +0162 ; Uppercase # L& LATIN CAPITAL LETTER T WITH CEDILLA +0164 ; Uppercase # L& LATIN CAPITAL LETTER T WITH CARON +0166 ; Uppercase # L& LATIN CAPITAL LETTER T WITH STROKE +0168 ; Uppercase # L& LATIN CAPITAL LETTER U WITH TILDE +016A ; Uppercase # L& LATIN CAPITAL LETTER U WITH MACRON +016C ; Uppercase # L& LATIN CAPITAL LETTER U WITH BREVE +016E ; Uppercase # L& LATIN CAPITAL LETTER U WITH RING ABOVE +0170 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0172 ; Uppercase # L& LATIN CAPITAL LETTER U WITH OGONEK +0174 ; Uppercase # L& LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0176 ; Uppercase # L& LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0178..0179 ; Uppercase # L& [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE +017B ; Uppercase # L& LATIN CAPITAL LETTER Z WITH DOT ABOVE +017D ; Uppercase # L& LATIN CAPITAL LETTER Z WITH CARON +0181..0182 ; Uppercase # L& [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR +0184 ; Uppercase # L& LATIN CAPITAL LETTER TONE SIX +0186..0187 ; Uppercase # L& [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK +0189..018B ; Uppercase # L& [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR +018E..0191 ; Uppercase # L& [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK +0193..0194 ; Uppercase # L& [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA +0196..0198 ; Uppercase # L& [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK +019C..019D ; Uppercase # L& [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK +019F..01A0 ; Uppercase # L& [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN +01A2 ; Uppercase # L& LATIN CAPITAL LETTER OI +01A4 ; Uppercase # L& LATIN CAPITAL LETTER P WITH HOOK +01A6..01A7 ; Uppercase # L& [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO +01A9 ; Uppercase # L& LATIN CAPITAL LETTER ESH +01AC ; Uppercase # L& LATIN CAPITAL LETTER T WITH HOOK +01AE..01AF ; Uppercase # L& [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN +01B1..01B3 ; Uppercase # L& [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK +01B5 ; Uppercase # L& LATIN CAPITAL LETTER Z WITH STROKE +01B7..01B8 ; Uppercase # L& [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED +01BC ; Uppercase # L& LATIN CAPITAL LETTER TONE FIVE +01C4 ; Uppercase # L& LATIN CAPITAL LETTER DZ WITH CARON +01C7 ; Uppercase # L& LATIN CAPITAL LETTER LJ +01CA ; Uppercase # L& LATIN CAPITAL LETTER NJ +01CD ; Uppercase # L& LATIN CAPITAL LETTER A WITH CARON +01CF ; Uppercase # L& LATIN CAPITAL LETTER I WITH CARON +01D1 ; Uppercase # L& LATIN CAPITAL LETTER O WITH CARON +01D3 ; Uppercase # L& LATIN CAPITAL LETTER U WITH CARON +01D5 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01D7 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D9 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +01DB ; Uppercase # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01DE ; Uppercase # L& LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +01E0 ; Uppercase # L& LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +01E2 ; Uppercase # L& LATIN CAPITAL LETTER AE WITH MACRON +01E4 ; Uppercase # L& LATIN CAPITAL LETTER G WITH STROKE +01E6 ; Uppercase # L& LATIN CAPITAL LETTER G WITH CARON +01E8 ; Uppercase # L& LATIN CAPITAL LETTER K WITH CARON +01EA ; Uppercase # L& LATIN CAPITAL LETTER O WITH OGONEK +01EC ; Uppercase # L& LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +01EE ; Uppercase # L& LATIN CAPITAL LETTER EZH WITH CARON +01F1 ; Uppercase # L& LATIN CAPITAL LETTER DZ +01F4 ; Uppercase # L& LATIN CAPITAL LETTER G WITH ACUTE +01F6..01F8 ; Uppercase # L& [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE +01FA ; Uppercase # L& LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +01FC ; Uppercase # L& LATIN CAPITAL LETTER AE WITH ACUTE +01FE ; Uppercase # L& LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +0200 ; Uppercase # L& LATIN CAPITAL LETTER A WITH DOUBLE GRAVE +0202 ; Uppercase # L& LATIN CAPITAL LETTER A WITH INVERTED BREVE +0204 ; Uppercase # L& LATIN CAPITAL LETTER E WITH DOUBLE GRAVE +0206 ; Uppercase # L& LATIN CAPITAL LETTER E WITH INVERTED BREVE +0208 ; Uppercase # L& LATIN CAPITAL LETTER I WITH DOUBLE GRAVE +020A ; Uppercase # L& LATIN CAPITAL LETTER I WITH INVERTED BREVE +020C ; Uppercase # L& LATIN CAPITAL LETTER O WITH DOUBLE GRAVE +020E ; Uppercase # L& LATIN CAPITAL LETTER O WITH INVERTED BREVE +0210 ; Uppercase # L& LATIN CAPITAL LETTER R WITH DOUBLE GRAVE +0212 ; Uppercase # L& LATIN CAPITAL LETTER R WITH INVERTED BREVE +0214 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DOUBLE GRAVE +0216 ; Uppercase # L& LATIN CAPITAL LETTER U WITH INVERTED BREVE +0218 ; Uppercase # L& LATIN CAPITAL LETTER S WITH COMMA BELOW +021A ; Uppercase # L& LATIN CAPITAL LETTER T WITH COMMA BELOW +021C ; Uppercase # L& LATIN CAPITAL LETTER YOGH +021E ; Uppercase # L& LATIN CAPITAL LETTER H WITH CARON +0220 ; Uppercase # L& LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0222 ; Uppercase # L& LATIN CAPITAL LETTER OU +0224 ; Uppercase # L& LATIN CAPITAL LETTER Z WITH HOOK +0226 ; Uppercase # L& LATIN CAPITAL LETTER A WITH DOT ABOVE +0228 ; Uppercase # L& LATIN CAPITAL LETTER E WITH CEDILLA +022A ; Uppercase # L& LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +022C ; Uppercase # L& LATIN CAPITAL LETTER O WITH TILDE AND MACRON +022E ; Uppercase # L& LATIN CAPITAL LETTER O WITH DOT ABOVE +0230 ; Uppercase # L& LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON +0232 ; Uppercase # L& LATIN CAPITAL LETTER Y WITH MACRON +023A..023B ; Uppercase # L& [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE +023D..023E ; Uppercase # L& [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE +0241 ; Uppercase # L& LATIN CAPITAL LETTER GLOTTAL STOP +0243..0246 ; Uppercase # L& [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE +0248 ; Uppercase # L& LATIN CAPITAL LETTER J WITH STROKE +024A ; Uppercase # L& LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL +024C ; Uppercase # L& LATIN CAPITAL LETTER R WITH STROKE +024E ; Uppercase # L& LATIN CAPITAL LETTER Y WITH STROKE +0370 ; Uppercase # L& GREEK CAPITAL LETTER HETA +0372 ; Uppercase # L& GREEK CAPITAL LETTER ARCHAIC SAMPI +0376 ; Uppercase # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +0386 ; Uppercase # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Uppercase # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Uppercase # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..038F ; Uppercase # L& [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS +0391..03A1 ; Uppercase # L& [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO +03A3..03AB ; Uppercase # L& [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03CF ; Uppercase # L& GREEK CAPITAL KAI SYMBOL +03D2..03D4 ; Uppercase # L& [3] GREEK UPSILON WITH HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL +03D8 ; Uppercase # L& GREEK LETTER ARCHAIC KOPPA +03DA ; Uppercase # L& GREEK LETTER STIGMA +03DC ; Uppercase # L& GREEK LETTER DIGAMMA +03DE ; Uppercase # L& GREEK LETTER KOPPA +03E0 ; Uppercase # L& GREEK LETTER SAMPI +03E2 ; Uppercase # L& COPTIC CAPITAL LETTER SHEI +03E4 ; Uppercase # L& COPTIC CAPITAL LETTER FEI +03E6 ; Uppercase # L& COPTIC CAPITAL LETTER KHEI +03E8 ; Uppercase # L& COPTIC CAPITAL LETTER HORI +03EA ; Uppercase # L& COPTIC CAPITAL LETTER GANGIA +03EC ; Uppercase # L& COPTIC CAPITAL LETTER SHIMA +03EE ; Uppercase # L& COPTIC CAPITAL LETTER DEI +03F4 ; Uppercase # L& GREEK CAPITAL THETA SYMBOL +03F7 ; Uppercase # L& GREEK CAPITAL LETTER SHO +03F9..03FA ; Uppercase # L& [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN +03FD..042F ; Uppercase # L& [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA +0460 ; Uppercase # L& CYRILLIC CAPITAL LETTER OMEGA +0462 ; Uppercase # L& CYRILLIC CAPITAL LETTER YAT +0464 ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTIFIED E +0466 ; Uppercase # L& CYRILLIC CAPITAL LETTER LITTLE YUS +0468 ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS +046A ; Uppercase # L& CYRILLIC CAPITAL LETTER BIG YUS +046C ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS +046E ; Uppercase # L& CYRILLIC CAPITAL LETTER KSI +0470 ; Uppercase # L& CYRILLIC CAPITAL LETTER PSI +0472 ; Uppercase # L& CYRILLIC CAPITAL LETTER FITA +0474 ; Uppercase # L& CYRILLIC CAPITAL LETTER IZHITSA +0476 ; Uppercase # L& CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0478 ; Uppercase # L& CYRILLIC CAPITAL LETTER UK +047A ; Uppercase # L& CYRILLIC CAPITAL LETTER ROUND OMEGA +047C ; Uppercase # L& CYRILLIC CAPITAL LETTER OMEGA WITH TITLO +047E ; Uppercase # L& CYRILLIC CAPITAL LETTER OT +0480 ; Uppercase # L& CYRILLIC CAPITAL LETTER KOPPA +048A ; Uppercase # L& CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +048C ; Uppercase # L& CYRILLIC CAPITAL LETTER SEMISOFT SIGN +048E ; Uppercase # L& CYRILLIC CAPITAL LETTER ER WITH TICK +0490 ; Uppercase # L& CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0492 ; Uppercase # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE +0494 ; Uppercase # L& CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +0496 ; Uppercase # L& CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +0498 ; Uppercase # L& CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +049A ; Uppercase # L& CYRILLIC CAPITAL LETTER KA WITH DESCENDER +049C ; Uppercase # L& CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +049E ; Uppercase # L& CYRILLIC CAPITAL LETTER KA WITH STROKE +04A0 ; Uppercase # L& CYRILLIC CAPITAL LETTER BASHKIR KA +04A2 ; Uppercase # L& CYRILLIC CAPITAL LETTER EN WITH DESCENDER +04A4 ; Uppercase # L& CYRILLIC CAPITAL LIGATURE EN GHE +04A6 ; Uppercase # L& CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +04A8 ; Uppercase # L& CYRILLIC CAPITAL LETTER ABKHASIAN HA +04AA ; Uppercase # L& CYRILLIC CAPITAL LETTER ES WITH DESCENDER +04AC ; Uppercase # L& CYRILLIC CAPITAL LETTER TE WITH DESCENDER +04AE ; Uppercase # L& CYRILLIC CAPITAL LETTER STRAIGHT U +04B0 ; Uppercase # L& CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +04B2 ; Uppercase # L& CYRILLIC CAPITAL LETTER HA WITH DESCENDER +04B4 ; Uppercase # L& CYRILLIC CAPITAL LIGATURE TE TSE +04B6 ; Uppercase # L& CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +04B8 ; Uppercase # L& CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +04BA ; Uppercase # L& CYRILLIC CAPITAL LETTER SHHA +04BC ; Uppercase # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE +04BE ; Uppercase # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +04C0..04C1 ; Uppercase # L& [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE +04C3 ; Uppercase # L& CYRILLIC CAPITAL LETTER KA WITH HOOK +04C5 ; Uppercase # L& CYRILLIC CAPITAL LETTER EL WITH TAIL +04C7 ; Uppercase # L& CYRILLIC CAPITAL LETTER EN WITH HOOK +04C9 ; Uppercase # L& CYRILLIC CAPITAL LETTER EN WITH TAIL +04CB ; Uppercase # L& CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +04CD ; Uppercase # L& CYRILLIC CAPITAL LETTER EM WITH TAIL +04D0 ; Uppercase # L& CYRILLIC CAPITAL LETTER A WITH BREVE +04D2 ; Uppercase # L& CYRILLIC CAPITAL LETTER A WITH DIAERESIS +04D4 ; Uppercase # L& CYRILLIC CAPITAL LIGATURE A IE +04D6 ; Uppercase # L& CYRILLIC CAPITAL LETTER IE WITH BREVE +04D8 ; Uppercase # L& CYRILLIC CAPITAL LETTER SCHWA +04DA ; Uppercase # L& CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS +04DC ; Uppercase # L& CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DE ; Uppercase # L& CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04E0 ; Uppercase # L& CYRILLIC CAPITAL LETTER ABKHASIAN DZE +04E2 ; Uppercase # L& CYRILLIC CAPITAL LETTER I WITH MACRON +04E4 ; Uppercase # L& CYRILLIC CAPITAL LETTER I WITH DIAERESIS +04E6 ; Uppercase # L& CYRILLIC CAPITAL LETTER O WITH DIAERESIS +04E8 ; Uppercase # L& CYRILLIC CAPITAL LETTER BARRED O +04EA ; Uppercase # L& CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS +04EC ; Uppercase # L& CYRILLIC CAPITAL LETTER E WITH DIAERESIS +04EE ; Uppercase # L& CYRILLIC CAPITAL LETTER U WITH MACRON +04F0 ; Uppercase # L& CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F2 ; Uppercase # L& CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F4 ; Uppercase # L& CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F6 ; Uppercase # L& CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +04F8 ; Uppercase # L& CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04FA ; Uppercase # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK +04FC ; Uppercase # L& CYRILLIC CAPITAL LETTER HA WITH HOOK +04FE ; Uppercase # L& CYRILLIC CAPITAL LETTER HA WITH STROKE +0500 ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI DE +0502 ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI DJE +0504 ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI ZJE +0506 ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI DZJE +0508 ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI LJE +050A ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI NJE +050C ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI SJE +050E ; Uppercase # L& CYRILLIC CAPITAL LETTER KOMI TJE +0510 ; Uppercase # L& CYRILLIC CAPITAL LETTER REVERSED ZE +0512 ; Uppercase # L& CYRILLIC CAPITAL LETTER EL WITH HOOK +0514 ; Uppercase # L& CYRILLIC CAPITAL LETTER LHA +0516 ; Uppercase # L& CYRILLIC CAPITAL LETTER RHA +0518 ; Uppercase # L& CYRILLIC CAPITAL LETTER YAE +051A ; Uppercase # L& CYRILLIC CAPITAL LETTER QA +051C ; Uppercase # L& CYRILLIC CAPITAL LETTER WE +051E ; Uppercase # L& CYRILLIC CAPITAL LETTER ALEUT KA +0520 ; Uppercase # L& CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0522 ; Uppercase # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0524 ; Uppercase # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0526 ; Uppercase # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0531..0556 ; Uppercase # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +10A0..10C5 ; Uppercase # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Uppercase # L& GEORGIAN CAPITAL LETTER YN +10CD ; Uppercase # L& GEORGIAN CAPITAL LETTER AEN +1E00 ; Uppercase # L& LATIN CAPITAL LETTER A WITH RING BELOW +1E02 ; Uppercase # L& LATIN CAPITAL LETTER B WITH DOT ABOVE +1E04 ; Uppercase # L& LATIN CAPITAL LETTER B WITH DOT BELOW +1E06 ; Uppercase # L& LATIN CAPITAL LETTER B WITH LINE BELOW +1E08 ; Uppercase # L& LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +1E0A ; Uppercase # L& LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0C ; Uppercase # L& LATIN CAPITAL LETTER D WITH DOT BELOW +1E0E ; Uppercase # L& LATIN CAPITAL LETTER D WITH LINE BELOW +1E10 ; Uppercase # L& LATIN CAPITAL LETTER D WITH CEDILLA +1E12 ; Uppercase # L& LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +1E14 ; Uppercase # L& LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +1E16 ; Uppercase # L& LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +1E18 ; Uppercase # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +1E1A ; Uppercase # L& LATIN CAPITAL LETTER E WITH TILDE BELOW +1E1C ; Uppercase # L& LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +1E1E ; Uppercase # L& LATIN CAPITAL LETTER F WITH DOT ABOVE +1E20 ; Uppercase # L& LATIN CAPITAL LETTER G WITH MACRON +1E22 ; Uppercase # L& LATIN CAPITAL LETTER H WITH DOT ABOVE +1E24 ; Uppercase # L& LATIN CAPITAL LETTER H WITH DOT BELOW +1E26 ; Uppercase # L& LATIN CAPITAL LETTER H WITH DIAERESIS +1E28 ; Uppercase # L& LATIN CAPITAL LETTER H WITH CEDILLA +1E2A ; Uppercase # L& LATIN CAPITAL LETTER H WITH BREVE BELOW +1E2C ; Uppercase # L& LATIN CAPITAL LETTER I WITH TILDE BELOW +1E2E ; Uppercase # L& LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +1E30 ; Uppercase # L& LATIN CAPITAL LETTER K WITH ACUTE +1E32 ; Uppercase # L& LATIN CAPITAL LETTER K WITH DOT BELOW +1E34 ; Uppercase # L& LATIN CAPITAL LETTER K WITH LINE BELOW +1E36 ; Uppercase # L& LATIN CAPITAL LETTER L WITH DOT BELOW +1E38 ; Uppercase # L& LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +1E3A ; Uppercase # L& LATIN CAPITAL LETTER L WITH LINE BELOW +1E3C ; Uppercase # L& LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +1E3E ; Uppercase # L& LATIN CAPITAL LETTER M WITH ACUTE +1E40 ; Uppercase # L& LATIN CAPITAL LETTER M WITH DOT ABOVE +1E42 ; Uppercase # L& LATIN CAPITAL LETTER M WITH DOT BELOW +1E44 ; Uppercase # L& LATIN CAPITAL LETTER N WITH DOT ABOVE +1E46 ; Uppercase # L& LATIN CAPITAL LETTER N WITH DOT BELOW +1E48 ; Uppercase # L& LATIN CAPITAL LETTER N WITH LINE BELOW +1E4A ; Uppercase # L& LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +1E4C ; Uppercase # L& LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +1E4E ; Uppercase # L& LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +1E50 ; Uppercase # L& LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +1E52 ; Uppercase # L& LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +1E54 ; Uppercase # L& LATIN CAPITAL LETTER P WITH ACUTE +1E56 ; Uppercase # L& LATIN CAPITAL LETTER P WITH DOT ABOVE +1E58 ; Uppercase # L& LATIN CAPITAL LETTER R WITH DOT ABOVE +1E5A ; Uppercase # L& LATIN CAPITAL LETTER R WITH DOT BELOW +1E5C ; Uppercase # L& LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +1E5E ; Uppercase # L& LATIN CAPITAL LETTER R WITH LINE BELOW +1E60 ; Uppercase # L& LATIN CAPITAL LETTER S WITH DOT ABOVE +1E62 ; Uppercase # L& LATIN CAPITAL LETTER S WITH DOT BELOW +1E64 ; Uppercase # L& LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +1E66 ; Uppercase # L& LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +1E68 ; Uppercase # L& LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6A ; Uppercase # L& LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6C ; Uppercase # L& LATIN CAPITAL LETTER T WITH DOT BELOW +1E6E ; Uppercase # L& LATIN CAPITAL LETTER T WITH LINE BELOW +1E70 ; Uppercase # L& LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +1E72 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +1E74 ; Uppercase # L& LATIN CAPITAL LETTER U WITH TILDE BELOW +1E76 ; Uppercase # L& LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +1E78 ; Uppercase # L& LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +1E7A ; Uppercase # L& LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +1E7C ; Uppercase # L& LATIN CAPITAL LETTER V WITH TILDE +1E7E ; Uppercase # L& LATIN CAPITAL LETTER V WITH DOT BELOW +1E80 ; Uppercase # L& LATIN CAPITAL LETTER W WITH GRAVE +1E82 ; Uppercase # L& LATIN CAPITAL LETTER W WITH ACUTE +1E84 ; Uppercase # L& LATIN CAPITAL LETTER W WITH DIAERESIS +1E86 ; Uppercase # L& LATIN CAPITAL LETTER W WITH DOT ABOVE +1E88 ; Uppercase # L& LATIN CAPITAL LETTER W WITH DOT BELOW +1E8A ; Uppercase # L& LATIN CAPITAL LETTER X WITH DOT ABOVE +1E8C ; Uppercase # L& LATIN CAPITAL LETTER X WITH DIAERESIS +1E8E ; Uppercase # L& LATIN CAPITAL LETTER Y WITH DOT ABOVE +1E90 ; Uppercase # L& LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +1E92 ; Uppercase # L& LATIN CAPITAL LETTER Z WITH DOT BELOW +1E94 ; Uppercase # L& LATIN CAPITAL LETTER Z WITH LINE BELOW +1E9E ; Uppercase # L& LATIN CAPITAL LETTER SHARP S +1EA0 ; Uppercase # L& LATIN CAPITAL LETTER A WITH DOT BELOW +1EA2 ; Uppercase # L& LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EA4 ; Uppercase # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA6 ; Uppercase # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA8 ; Uppercase # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAA ; Uppercase # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EAC ; Uppercase # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAE ; Uppercase # L& LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB0 ; Uppercase # L& LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EB2 ; Uppercase # L& LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB4 ; Uppercase # L& LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB6 ; Uppercase # L& LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +1EB8 ; Uppercase # L& LATIN CAPITAL LETTER E WITH DOT BELOW +1EBA ; Uppercase # L& LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EBC ; Uppercase # L& LATIN CAPITAL LETTER E WITH TILDE +1EBE ; Uppercase # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC0 ; Uppercase # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC2 ; Uppercase # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC4 ; Uppercase # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC6 ; Uppercase # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC8 ; Uppercase # L& LATIN CAPITAL LETTER I WITH HOOK ABOVE +1ECA ; Uppercase # L& LATIN CAPITAL LETTER I WITH DOT BELOW +1ECC ; Uppercase # L& LATIN CAPITAL LETTER O WITH DOT BELOW +1ECE ; Uppercase # L& LATIN CAPITAL LETTER O WITH HOOK ABOVE +1ED0 ; Uppercase # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED2 ; Uppercase # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED4 ; Uppercase # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED6 ; Uppercase # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED8 ; Uppercase # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDA ; Uppercase # L& LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EDC ; Uppercase # L& LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDE ; Uppercase # L& LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EE0 ; Uppercase # L& LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EE2 ; Uppercase # L& LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +1EE4 ; Uppercase # L& LATIN CAPITAL LETTER U WITH DOT BELOW +1EE6 ; Uppercase # L& LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EE8 ; Uppercase # L& LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EEA ; Uppercase # L& LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EEC ; Uppercase # L& LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EEE ; Uppercase # L& LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EF0 ; Uppercase # L& LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF2 ; Uppercase # L& LATIN CAPITAL LETTER Y WITH GRAVE +1EF4 ; Uppercase # L& LATIN CAPITAL LETTER Y WITH DOT BELOW +1EF6 ; Uppercase # L& LATIN CAPITAL LETTER Y WITH HOOK ABOVE +1EF8 ; Uppercase # L& LATIN CAPITAL LETTER Y WITH TILDE +1EFA ; Uppercase # L& LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFC ; Uppercase # L& LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFE ; Uppercase # L& LATIN CAPITAL LETTER Y WITH LOOP +1F08..1F0F ; Uppercase # L& [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F18..1F1D ; Uppercase # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F28..1F2F ; Uppercase # L& [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI +1F38..1F3F ; Uppercase # L& [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI +1F48..1F4D ; Uppercase # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F59 ; Uppercase # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Uppercase # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Uppercase # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F ; Uppercase # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F68..1F6F ; Uppercase # L& [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI +1FB8..1FBB ; Uppercase # L& [4] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH OXIA +1FC8..1FCB ; Uppercase # L& [4] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH OXIA +1FD8..1FDB ; Uppercase # L& [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE8..1FEC ; Uppercase # L& [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF8..1FFB ; Uppercase # L& [4] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH OXIA +2102 ; Uppercase # L& DOUBLE-STRUCK CAPITAL C +2107 ; Uppercase # L& EULER CONSTANT +210B..210D ; Uppercase # L& [3] SCRIPT CAPITAL H..DOUBLE-STRUCK CAPITAL H +2110..2112 ; Uppercase # L& [3] SCRIPT CAPITAL I..SCRIPT CAPITAL L +2115 ; Uppercase # L& DOUBLE-STRUCK CAPITAL N +2119..211D ; Uppercase # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; Uppercase # L& DOUBLE-STRUCK CAPITAL Z +2126 ; Uppercase # L& OHM SIGN +2128 ; Uppercase # L& BLACK-LETTER CAPITAL Z +212A..212D ; Uppercase # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +2130..2133 ; Uppercase # L& [4] SCRIPT CAPITAL E..SCRIPT CAPITAL M +213E..213F ; Uppercase # L& [2] DOUBLE-STRUCK CAPITAL GAMMA..DOUBLE-STRUCK CAPITAL PI +2145 ; Uppercase # L& DOUBLE-STRUCK ITALIC CAPITAL D +2160..216F ; Uppercase # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND +2183 ; Uppercase # L& ROMAN NUMERAL REVERSED ONE HUNDRED +24B6..24CF ; Uppercase # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z +2C00..2C2E ; Uppercase # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C60 ; Uppercase # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR +2C62..2C64 ; Uppercase # L& [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL +2C67 ; Uppercase # L& LATIN CAPITAL LETTER H WITH DESCENDER +2C69 ; Uppercase # L& LATIN CAPITAL LETTER K WITH DESCENDER +2C6B ; Uppercase # L& LATIN CAPITAL LETTER Z WITH DESCENDER +2C6D..2C70 ; Uppercase # L& [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA +2C72 ; Uppercase # L& LATIN CAPITAL LETTER W WITH HOOK +2C75 ; Uppercase # L& LATIN CAPITAL LETTER HALF H +2C7E..2C80 ; Uppercase # L& [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA +2C82 ; Uppercase # L& COPTIC CAPITAL LETTER VIDA +2C84 ; Uppercase # L& COPTIC CAPITAL LETTER GAMMA +2C86 ; Uppercase # L& COPTIC CAPITAL LETTER DALDA +2C88 ; Uppercase # L& COPTIC CAPITAL LETTER EIE +2C8A ; Uppercase # L& COPTIC CAPITAL LETTER SOU +2C8C ; Uppercase # L& COPTIC CAPITAL LETTER ZATA +2C8E ; Uppercase # L& COPTIC CAPITAL LETTER HATE +2C90 ; Uppercase # L& COPTIC CAPITAL LETTER THETHE +2C92 ; Uppercase # L& COPTIC CAPITAL LETTER IAUDA +2C94 ; Uppercase # L& COPTIC CAPITAL LETTER KAPA +2C96 ; Uppercase # L& COPTIC CAPITAL LETTER LAULA +2C98 ; Uppercase # L& COPTIC CAPITAL LETTER MI +2C9A ; Uppercase # L& COPTIC CAPITAL LETTER NI +2C9C ; Uppercase # L& COPTIC CAPITAL LETTER KSI +2C9E ; Uppercase # L& COPTIC CAPITAL LETTER O +2CA0 ; Uppercase # L& COPTIC CAPITAL LETTER PI +2CA2 ; Uppercase # L& COPTIC CAPITAL LETTER RO +2CA4 ; Uppercase # L& COPTIC CAPITAL LETTER SIMA +2CA6 ; Uppercase # L& COPTIC CAPITAL LETTER TAU +2CA8 ; Uppercase # L& COPTIC CAPITAL LETTER UA +2CAA ; Uppercase # L& COPTIC CAPITAL LETTER FI +2CAC ; Uppercase # L& COPTIC CAPITAL LETTER KHI +2CAE ; Uppercase # L& COPTIC CAPITAL LETTER PSI +2CB0 ; Uppercase # L& COPTIC CAPITAL LETTER OOU +2CB2 ; Uppercase # L& COPTIC CAPITAL LETTER DIALECT-P ALEF +2CB4 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC AIN +2CB6 ; Uppercase # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE +2CB8 ; Uppercase # L& COPTIC CAPITAL LETTER DIALECT-P KAPA +2CBA ; Uppercase # L& COPTIC CAPITAL LETTER DIALECT-P NI +2CBC ; Uppercase # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI +2CBE ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC OOU +2CC0 ; Uppercase # L& COPTIC CAPITAL LETTER SAMPI +2CC2 ; Uppercase # L& COPTIC CAPITAL LETTER CROSSED SHEI +2CC4 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC SHEI +2CC6 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC ESH +2CC8 ; Uppercase # L& COPTIC CAPITAL LETTER AKHMIMIC KHEI +2CCA ; Uppercase # L& COPTIC CAPITAL LETTER DIALECT-P HORI +2CCC ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC HORI +2CCE ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC HA +2CD0 ; Uppercase # L& COPTIC CAPITAL LETTER L-SHAPED HA +2CD2 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC HEI +2CD4 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC HAT +2CD6 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC GANGIA +2CD8 ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC DJA +2CDA ; Uppercase # L& COPTIC CAPITAL LETTER OLD COPTIC SHIMA +2CDC ; Uppercase # L& COPTIC CAPITAL LETTER OLD NUBIAN SHIMA +2CDE ; Uppercase # L& COPTIC CAPITAL LETTER OLD NUBIAN NGI +2CE0 ; Uppercase # L& COPTIC CAPITAL LETTER OLD NUBIAN NYI +2CE2 ; Uppercase # L& COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CEB ; Uppercase # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CED ; Uppercase # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CF2 ; Uppercase # L& COPTIC CAPITAL LETTER BOHAIRIC KHEI +A640 ; Uppercase # L& CYRILLIC CAPITAL LETTER ZEMLYA +A642 ; Uppercase # L& CYRILLIC CAPITAL LETTER DZELO +A644 ; Uppercase # L& CYRILLIC CAPITAL LETTER REVERSED DZE +A646 ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTA +A648 ; Uppercase # L& CYRILLIC CAPITAL LETTER DJERV +A64A ; Uppercase # L& CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64C ; Uppercase # L& CYRILLIC CAPITAL LETTER BROAD OMEGA +A64E ; Uppercase # L& CYRILLIC CAPITAL LETTER NEUTRAL YER +A650 ; Uppercase # L& CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A652 ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTIFIED YAT +A654 ; Uppercase # L& CYRILLIC CAPITAL LETTER REVERSED YU +A656 ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTIFIED A +A658 ; Uppercase # L& CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A65A ; Uppercase # L& CYRILLIC CAPITAL LETTER BLENDED YUS +A65C ; Uppercase # L& CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65E ; Uppercase # L& CYRILLIC CAPITAL LETTER YN +A660 ; Uppercase # L& CYRILLIC CAPITAL LETTER REVERSED TSE +A662 ; Uppercase # L& CYRILLIC CAPITAL LETTER SOFT DE +A664 ; Uppercase # L& CYRILLIC CAPITAL LETTER SOFT EL +A666 ; Uppercase # L& CYRILLIC CAPITAL LETTER SOFT EM +A668 ; Uppercase # L& CYRILLIC CAPITAL LETTER MONOCULAR O +A66A ; Uppercase # L& CYRILLIC CAPITAL LETTER BINOCULAR O +A66C ; Uppercase # L& CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A680 ; Uppercase # L& CYRILLIC CAPITAL LETTER DWE +A682 ; Uppercase # L& CYRILLIC CAPITAL LETTER DZWE +A684 ; Uppercase # L& CYRILLIC CAPITAL LETTER ZHWE +A686 ; Uppercase # L& CYRILLIC CAPITAL LETTER CCHE +A688 ; Uppercase # L& CYRILLIC CAPITAL LETTER DZZE +A68A ; Uppercase # L& CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68C ; Uppercase # L& CYRILLIC CAPITAL LETTER TWE +A68E ; Uppercase # L& CYRILLIC CAPITAL LETTER TSWE +A690 ; Uppercase # L& CYRILLIC CAPITAL LETTER TSSE +A692 ; Uppercase # L& CYRILLIC CAPITAL LETTER TCHE +A694 ; Uppercase # L& CYRILLIC CAPITAL LETTER HWE +A696 ; Uppercase # L& CYRILLIC CAPITAL LETTER SHWE +A722 ; Uppercase # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A724 ; Uppercase # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A726 ; Uppercase # L& LATIN CAPITAL LETTER HENG +A728 ; Uppercase # L& LATIN CAPITAL LETTER TZ +A72A ; Uppercase # L& LATIN CAPITAL LETTER TRESILLO +A72C ; Uppercase # L& LATIN CAPITAL LETTER CUATRILLO +A72E ; Uppercase # L& LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A732 ; Uppercase # L& LATIN CAPITAL LETTER AA +A734 ; Uppercase # L& LATIN CAPITAL LETTER AO +A736 ; Uppercase # L& LATIN CAPITAL LETTER AU +A738 ; Uppercase # L& LATIN CAPITAL LETTER AV +A73A ; Uppercase # L& LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73C ; Uppercase # L& LATIN CAPITAL LETTER AY +A73E ; Uppercase # L& LATIN CAPITAL LETTER REVERSED C WITH DOT +A740 ; Uppercase # L& LATIN CAPITAL LETTER K WITH STROKE +A742 ; Uppercase # L& LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A744 ; Uppercase # L& LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A746 ; Uppercase # L& LATIN CAPITAL LETTER BROKEN L +A748 ; Uppercase # L& LATIN CAPITAL LETTER L WITH HIGH STROKE +A74A ; Uppercase # L& LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74C ; Uppercase # L& LATIN CAPITAL LETTER O WITH LOOP +A74E ; Uppercase # L& LATIN CAPITAL LETTER OO +A750 ; Uppercase # L& LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A752 ; Uppercase # L& LATIN CAPITAL LETTER P WITH FLOURISH +A754 ; Uppercase # L& LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A756 ; Uppercase # L& LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A758 ; Uppercase # L& LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A75A ; Uppercase # L& LATIN CAPITAL LETTER R ROTUNDA +A75C ; Uppercase # L& LATIN CAPITAL LETTER RUM ROTUNDA +A75E ; Uppercase # L& LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A760 ; Uppercase # L& LATIN CAPITAL LETTER VY +A762 ; Uppercase # L& LATIN CAPITAL LETTER VISIGOTHIC Z +A764 ; Uppercase # L& LATIN CAPITAL LETTER THORN WITH STROKE +A766 ; Uppercase # L& LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A768 ; Uppercase # L& LATIN CAPITAL LETTER VEND +A76A ; Uppercase # L& LATIN CAPITAL LETTER ET +A76C ; Uppercase # L& LATIN CAPITAL LETTER IS +A76E ; Uppercase # L& LATIN CAPITAL LETTER CON +A779 ; Uppercase # L& LATIN CAPITAL LETTER INSULAR D +A77B ; Uppercase # L& LATIN CAPITAL LETTER INSULAR F +A77D..A77E ; Uppercase # L& [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G +A780 ; Uppercase # L& LATIN CAPITAL LETTER TURNED L +A782 ; Uppercase # L& LATIN CAPITAL LETTER INSULAR R +A784 ; Uppercase # L& LATIN CAPITAL LETTER INSULAR S +A786 ; Uppercase # L& LATIN CAPITAL LETTER INSULAR T +A78B ; Uppercase # L& LATIN CAPITAL LETTER SALTILLO +A78D ; Uppercase # L& LATIN CAPITAL LETTER TURNED H +A790 ; Uppercase # L& LATIN CAPITAL LETTER N WITH DESCENDER +A792 ; Uppercase # L& LATIN CAPITAL LETTER C WITH BAR +A7A0 ; Uppercase # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A2 ; Uppercase # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A4 ; Uppercase # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A6 ; Uppercase # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A8 ; Uppercase # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7AA ; Uppercase # L& LATIN CAPITAL LETTER H WITH HOOK +FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +10400..10427 ; Uppercase # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW +1D400..1D419 ; Uppercase # L& [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z +1D434..1D44D ; Uppercase # L& [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z +1D468..1D481 ; Uppercase # L& [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z +1D49C ; Uppercase # L& MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Uppercase # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Uppercase # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Uppercase # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Uppercase # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B5 ; Uppercase # L& [8] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT CAPITAL Z +1D4D0..1D4E9 ; Uppercase # L& [26] MATHEMATICAL BOLD SCRIPT CAPITAL A..MATHEMATICAL BOLD SCRIPT CAPITAL Z +1D504..1D505 ; Uppercase # L& [2] MATHEMATICAL FRAKTUR CAPITAL A..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Uppercase # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Uppercase # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Uppercase # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D538..1D539 ; Uppercase # L& [2] MATHEMATICAL DOUBLE-STRUCK CAPITAL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Uppercase # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Uppercase # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Uppercase # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Uppercase # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D56C..1D585 ; Uppercase # L& [26] MATHEMATICAL BOLD FRAKTUR CAPITAL A..MATHEMATICAL BOLD FRAKTUR CAPITAL Z +1D5A0..1D5B9 ; Uppercase # L& [26] MATHEMATICAL SANS-SERIF CAPITAL A..MATHEMATICAL SANS-SERIF CAPITAL Z +1D5D4..1D5ED ; Uppercase # L& [26] MATHEMATICAL SANS-SERIF BOLD CAPITAL A..MATHEMATICAL SANS-SERIF BOLD CAPITAL Z +1D608..1D621 ; Uppercase # L& [26] MATHEMATICAL SANS-SERIF ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z +1D63C..1D655 ; Uppercase # L& [26] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z +1D670..1D689 ; Uppercase # L& [26] MATHEMATICAL MONOSPACE CAPITAL A..MATHEMATICAL MONOSPACE CAPITAL Z +1D6A8..1D6C0 ; Uppercase # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6E2..1D6FA ; Uppercase # L& [25] MATHEMATICAL ITALIC CAPITAL ALPHA..MATHEMATICAL ITALIC CAPITAL OMEGA +1D71C..1D734 ; Uppercase # L& [25] MATHEMATICAL BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D756..1D76E ; Uppercase # L& [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D790..1D7A8 ; Uppercase # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7CA ; Uppercase # L& MATHEMATICAL BOLD CAPITAL DIGAMMA + +# Total code points: 1483 + +# ================================================ + +# Derived Property: Cased (Cased) +# As defined by Unicode Standard Definition D120 +# C has the Lowercase or Uppercase property or has a General_Category value of Titlecase_Letter. + +0041..005A ; Cased # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; Cased # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; Cased # Lo FEMININE ORDINAL INDICATOR +00B5 ; Cased # L& MICRO SIGN +00BA ; Cased # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; Cased # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; Cased # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; Cased # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BC..01BF ; Cased # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C4..0293 ; Cased # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0295..02AF ; Cased # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02B8 ; Cased # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y +02C0..02C1 ; Cased # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP +02E0..02E4 ; Cased # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +0345 ; Cased # Mn COMBINING GREEK YPOGEGRAMMENI +0370..0373 ; Cased # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0376..0377 ; Cased # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; Cased # Lm GREEK YPOGEGRAMMENI +037B..037D ; Cased # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; Cased # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Cased # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Cased # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; Cased # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; Cased # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F7..0481 ; Cased # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +048A..0527 ; Cased # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; Cased # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0561..0587 ; Cased # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +10A0..10C5 ; Cased # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Cased # L& GEORGIAN CAPITAL LETTER YN +10CD ; Cased # L& GEORGIAN CAPITAL LETTER AEN +1D00..1D2B ; Cased # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; Cased # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; Cased # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; Cased # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; Cased # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; Cased # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1E00..1F15 ; Cased # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; Cased # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; Cased # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; Cased # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Cased # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; Cased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Cased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Cased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; Cased # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; Cased # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; Cased # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; Cased # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; Cased # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; Cased # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; Cased # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; Cased # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; Cased # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; Cased # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; Cased # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2071 ; Cased # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; Cased # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; Cased # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +2102 ; Cased # L& DOUBLE-STRUCK CAPITAL C +2107 ; Cased # L& EULER CONSTANT +210A..2113 ; Cased # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; Cased # L& DOUBLE-STRUCK CAPITAL N +2119..211D ; Cased # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; Cased # L& DOUBLE-STRUCK CAPITAL Z +2126 ; Cased # L& OHM SIGN +2128 ; Cased # L& BLACK-LETTER CAPITAL Z +212A..212D ; Cased # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212F..2134 ; Cased # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2139 ; Cased # L& INFORMATION SOURCE +213C..213F ; Cased # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; Cased # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; Cased # L& TURNED SMALL F +2160..217F ; Cased # Nl [32] ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +2183..2184 ; Cased # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +24B6..24E9 ; Cased # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C00..2C2E ; Cased # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; Cased # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; Cased # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; Cased # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; Cased # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CEB..2CEE ; Cased # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF2..2CF3 ; Cased # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; Cased # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Cased # L& GEORGIAN SMALL LETTER YN +2D2D ; Cased # L& GEORGIAN SMALL LETTER AEN +A640..A66D ; Cased # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A680..A697 ; Cased # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A722..A76F ; Cased # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; Cased # Lm MODIFIER LETTER US +A771..A787 ; Cased # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A78B..A78E ; Cased # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; Cased # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; Cased # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; Cased # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; Cased # L& LATIN LETTER SMALL CAPITAL TURNED M +FB00..FB06 ; Cased # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Cased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FF21..FF3A ; Cased # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +10400..1044F ; Cased # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +1D400..1D454 ; Cased # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Cased # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Cased # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Cased # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Cased # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Cased # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Cased # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Cased # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Cased # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Cased # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Cased # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Cased # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Cased # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Cased # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Cased # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Cased # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Cased # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Cased # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Cased # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Cased # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; Cased # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; Cased # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; Cased # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; Cased # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; Cased # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; Cased # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; Cased # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; Cased # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; Cased # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; Cased # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA + +# Total code points: 3448 + +# ================================================ + +# Derived Property: Case_Ignorable (CI) +# As defined by Unicode Standard Definition D121 +# C is defined to be case-ignorable if +# Word_Break(C) = MidLetter or MidNumLet, or +# General_Category(C) = Nonspacing_Mark (Mn), Enclosing_Mark (Me), Format (Cf), Modifier_Letter (Lm), or Modifier_Symbol (Sk). + +0027 ; Case_Ignorable # Po APOSTROPHE +002E ; Case_Ignorable # Po FULL STOP +003A ; Case_Ignorable # Po COLON +005E ; Case_Ignorable # Sk CIRCUMFLEX ACCENT +0060 ; Case_Ignorable # Sk GRAVE ACCENT +00A8 ; Case_Ignorable # Sk DIAERESIS +00AD ; Case_Ignorable # Cf SOFT HYPHEN +00AF ; Case_Ignorable # Sk MACRON +00B4 ; Case_Ignorable # Sk ACUTE ACCENT +00B7 ; Case_Ignorable # Po MIDDLE DOT +00B8 ; Case_Ignorable # Sk CEDILLA +02B0..02C1 ; Case_Ignorable # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C2..02C5 ; Case_Ignorable # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD +02C6..02D1 ; Case_Ignorable # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02D2..02DF ; Case_Ignorable # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT +02E0..02E4 ; Case_Ignorable # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02E5..02EB ; Case_Ignorable # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK +02EC ; Case_Ignorable # Lm MODIFIER LETTER VOICING +02ED ; Case_Ignorable # Sk MODIFIER LETTER UNASPIRATED +02EE ; Case_Ignorable # Lm MODIFIER LETTER DOUBLE APOSTROPHE +02EF..02FF ; Case_Ignorable # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW +0300..036F ; Case_Ignorable # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X +0374 ; Case_Ignorable # Lm GREEK NUMERAL SIGN +0375 ; Case_Ignorable # Sk GREEK LOWER NUMERAL SIGN +037A ; Case_Ignorable # Lm GREEK YPOGEGRAMMENI +0384..0385 ; Case_Ignorable # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS +0387 ; Case_Ignorable # Po GREEK ANO TELEIA +0483..0487 ; Case_Ignorable # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE +0488..0489 ; Case_Ignorable # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN +0559 ; Case_Ignorable # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0591..05BD ; Case_Ignorable # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG +05BF ; Case_Ignorable # Mn HEBREW POINT RAFE +05C1..05C2 ; Case_Ignorable # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; Case_Ignorable # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; Case_Ignorable # Mn HEBREW POINT QAMATS QATAN +05F4 ; Case_Ignorable # Po HEBREW PUNCTUATION GERSHAYIM +0600..0604 ; Case_Ignorable # Cf [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT +0610..061A ; Case_Ignorable # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +0640 ; Case_Ignorable # Lm ARABIC TATWEEL +064B..065F ; Case_Ignorable # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW +0670 ; Case_Ignorable # Mn ARABIC LETTER SUPERSCRIPT ALEF +06D6..06DC ; Case_Ignorable # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06DD ; Case_Ignorable # Cf ARABIC END OF AYAH +06DF..06E4 ; Case_Ignorable # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA +06E5..06E6 ; Case_Ignorable # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06E7..06E8 ; Case_Ignorable # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06EA..06ED ; Case_Ignorable # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +070F ; Case_Ignorable # Cf SYRIAC ABBREVIATION MARK +0711 ; Case_Ignorable # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0730..074A ; Case_Ignorable # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +07A6..07B0 ; Case_Ignorable # Mn [11] THAANA ABAFILI..THAANA SUKUN +07EB..07F3 ; Case_Ignorable # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +07F4..07F5 ; Case_Ignorable # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07FA ; Case_Ignorable # Lm NKO LAJANYALAN +0816..0819 ; Case_Ignorable # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH +081A ; Case_Ignorable # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +081B..0823 ; Case_Ignorable # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0824 ; Case_Ignorable # Lm SAMARITAN MODIFIER LETTER SHORT A +0825..0827 ; Case_Ignorable # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0828 ; Case_Ignorable # Lm SAMARITAN MODIFIER LETTER I +0829..082D ; Case_Ignorable # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA +0859..085B ; Case_Ignorable # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK +08E4..08FE ; Case_Ignorable # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT +0900..0902 ; Case_Ignorable # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +093A ; Case_Ignorable # Mn DEVANAGARI VOWEL SIGN OE +093C ; Case_Ignorable # Mn DEVANAGARI SIGN NUKTA +0941..0948 ; Case_Ignorable # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +094D ; Case_Ignorable # Mn DEVANAGARI SIGN VIRAMA +0951..0957 ; Case_Ignorable # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE +0962..0963 ; Case_Ignorable # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0971 ; Case_Ignorable # Lm DEVANAGARI SIGN HIGH SPACING DOT +0981 ; Case_Ignorable # Mn BENGALI SIGN CANDRABINDU +09BC ; Case_Ignorable # Mn BENGALI SIGN NUKTA +09C1..09C4 ; Case_Ignorable # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09CD ; Case_Ignorable # Mn BENGALI SIGN VIRAMA +09E2..09E3 ; Case_Ignorable # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +0A01..0A02 ; Case_Ignorable # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A3C ; Case_Ignorable # Mn GURMUKHI SIGN NUKTA +0A41..0A42 ; Case_Ignorable # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Case_Ignorable # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; Case_Ignorable # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A51 ; Case_Ignorable # Mn GURMUKHI SIGN UDAAT +0A70..0A71 ; Case_Ignorable # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A75 ; Case_Ignorable # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; Case_Ignorable # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0ABC ; Case_Ignorable # Mn GUJARATI SIGN NUKTA +0AC1..0AC5 ; Case_Ignorable # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Case_Ignorable # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0ACD ; Case_Ignorable # Mn GUJARATI SIGN VIRAMA +0AE2..0AE3 ; Case_Ignorable # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0B01 ; Case_Ignorable # Mn ORIYA SIGN CANDRABINDU +0B3C ; Case_Ignorable # Mn ORIYA SIGN NUKTA +0B3F ; Case_Ignorable # Mn ORIYA VOWEL SIGN I +0B41..0B44 ; Case_Ignorable # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B4D ; Case_Ignorable # Mn ORIYA SIGN VIRAMA +0B56 ; Case_Ignorable # Mn ORIYA AI LENGTH MARK +0B62..0B63 ; Case_Ignorable # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B82 ; Case_Ignorable # Mn TAMIL SIGN ANUSVARA +0BC0 ; Case_Ignorable # Mn TAMIL VOWEL SIGN II +0BCD ; Case_Ignorable # Mn TAMIL SIGN VIRAMA +0C3E..0C40 ; Case_Ignorable # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C46..0C48 ; Case_Ignorable # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; Case_Ignorable # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; Case_Ignorable # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C62..0C63 ; Case_Ignorable # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0CBC ; Case_Ignorable # Mn KANNADA SIGN NUKTA +0CBF ; Case_Ignorable # Mn KANNADA VOWEL SIGN I +0CC6 ; Case_Ignorable # Mn KANNADA VOWEL SIGN E +0CCC..0CCD ; Case_Ignorable # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA +0CE2..0CE3 ; Case_Ignorable # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0D41..0D44 ; Case_Ignorable # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D4D ; Case_Ignorable # Mn MALAYALAM SIGN VIRAMA +0D62..0D63 ; Case_Ignorable # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0DCA ; Case_Ignorable # Mn SINHALA SIGN AL-LAKUNA +0DD2..0DD4 ; Case_Ignorable # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Case_Ignorable # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0E31 ; Case_Ignorable # Mn THAI CHARACTER MAI HAN-AKAT +0E34..0E3A ; Case_Ignorable # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E46 ; Case_Ignorable # Lm THAI CHARACTER MAIYAMOK +0E47..0E4E ; Case_Ignorable # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN +0EB1 ; Case_Ignorable # Mn LAO VOWEL SIGN MAI KAN +0EB4..0EB9 ; Case_Ignorable # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; Case_Ignorable # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0EC6 ; Case_Ignorable # Lm LAO KO LA +0EC8..0ECD ; Case_Ignorable # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA +0F18..0F19 ; Case_Ignorable # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F35 ; Case_Ignorable # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; Case_Ignorable # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; Case_Ignorable # Mn TIBETAN MARK TSA -PHRU +0F71..0F7E ; Case_Ignorable # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F80..0F84 ; Case_Ignorable # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA +0F86..0F87 ; Case_Ignorable # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0F8D..0F97 ; Case_Ignorable # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Case_Ignorable # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FC6 ; Case_Ignorable # Mn TIBETAN SYMBOL PADMA GDAN +102D..1030 ; Case_Ignorable # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1032..1037 ; Case_Ignorable # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW +1039..103A ; Case_Ignorable # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +103D..103E ; Case_Ignorable # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +1058..1059 ; Case_Ignorable # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105E..1060 ; Case_Ignorable # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1071..1074 ; Case_Ignorable # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1082 ; Case_Ignorable # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1085..1086 ; Case_Ignorable # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +108D ; Case_Ignorable # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +109D ; Case_Ignorable # Mn MYANMAR VOWEL SIGN AITON AI +10FC ; Case_Ignorable # Lm MODIFIER LETTER GEORGIAN NAR +135D..135F ; Case_Ignorable # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK +1712..1714 ; Case_Ignorable # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA +1732..1734 ; Case_Ignorable # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD +1752..1753 ; Case_Ignorable # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1772..1773 ; Case_Ignorable # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +17B4..17B5 ; Case_Ignorable # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +17B7..17BD ; Case_Ignorable # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17C6 ; Case_Ignorable # Mn KHMER SIGN NIKAHIT +17C9..17D3 ; Case_Ignorable # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17D7 ; Case_Ignorable # Lm KHMER SIGN LEK TOO +17DD ; Case_Ignorable # Mn KHMER SIGN ATTHACAN +180B..180D ; Case_Ignorable # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +1843 ; Case_Ignorable # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +18A9 ; Case_Ignorable # Mn MONGOLIAN LETTER ALI GALI DAGALGA +1920..1922 ; Case_Ignorable # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1927..1928 ; Case_Ignorable # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1932 ; Case_Ignorable # Mn LIMBU SMALL LETTER ANUSVARA +1939..193B ; Case_Ignorable # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1A17..1A18 ; Case_Ignorable # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A56 ; Case_Ignorable # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A58..1A5E ; Case_Ignorable # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A60 ; Case_Ignorable # Mn TAI THAM SIGN SAKOT +1A62 ; Case_Ignorable # Mn TAI THAM VOWEL SIGN MAI SAT +1A65..1A6C ; Case_Ignorable # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A73..1A7C ; Case_Ignorable # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; Case_Ignorable # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1AA7 ; Case_Ignorable # Lm TAI THAM SIGN MAI YAMOK +1B00..1B03 ; Case_Ignorable # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B34 ; Case_Ignorable # Mn BALINESE SIGN REREKAN +1B36..1B3A ; Case_Ignorable # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3C ; Case_Ignorable # Mn BALINESE VOWEL SIGN LA LENGA +1B42 ; Case_Ignorable # Mn BALINESE VOWEL SIGN PEPET +1B6B..1B73 ; Case_Ignorable # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1B80..1B81 ; Case_Ignorable # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1BA2..1BA5 ; Case_Ignorable # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA8..1BA9 ; Case_Ignorable # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BAB ; Case_Ignorable # Mn SUNDANESE SIGN VIRAMA +1BE6 ; Case_Ignorable # Mn BATAK SIGN TOMPI +1BE8..1BE9 ; Case_Ignorable # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BED ; Case_Ignorable # Mn BATAK VOWEL SIGN KARO O +1BEF..1BF1 ; Case_Ignorable # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1C2C..1C33 ; Case_Ignorable # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C36..1C37 ; Case_Ignorable # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1C78..1C7D ; Case_Ignorable # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CD0..1CD2 ; Case_Ignorable # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD4..1CE0 ; Case_Ignorable # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE2..1CE8 ; Case_Ignorable # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CED ; Case_Ignorable # Mn VEDIC SIGN TIRYAK +1CF4 ; Case_Ignorable # Mn VEDIC TONE CANDRA ABOVE +1D2C..1D6A ; Case_Ignorable # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D78 ; Case_Ignorable # Lm MODIFIER LETTER CYRILLIC EN +1D9B..1DBF ; Case_Ignorable # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1DC0..1DE6 ; Case_Ignorable # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z +1DFC..1DFF ; Case_Ignorable # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +1FBD ; Case_Ignorable # Sk GREEK KORONIS +1FBF..1FC1 ; Case_Ignorable # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI +1FCD..1FCF ; Case_Ignorable # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI +1FDD..1FDF ; Case_Ignorable # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI +1FED..1FEF ; Case_Ignorable # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA +1FFD..1FFE ; Case_Ignorable # Sk [2] GREEK OXIA..GREEK DASIA +200B..200F ; Case_Ignorable # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK +2018 ; Case_Ignorable # Pi LEFT SINGLE QUOTATION MARK +2019 ; Case_Ignorable # Pf RIGHT SINGLE QUOTATION MARK +2024 ; Case_Ignorable # Po ONE DOT LEADER +2027 ; Case_Ignorable # Po HYPHENATION POINT +202A..202E ; Case_Ignorable # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE +2060..2064 ; Case_Ignorable # Cf [5] WORD JOINER..INVISIBLE PLUS +206A..206F ; Case_Ignorable # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES +2071 ; Case_Ignorable # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; Case_Ignorable # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; Case_Ignorable # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +20D0..20DC ; Case_Ignorable # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20DD..20E0 ; Case_Ignorable # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH +20E1 ; Case_Ignorable # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E2..20E4 ; Case_Ignorable # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE +20E5..20F0 ; Case_Ignorable # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE +2C7C..2C7D ; Case_Ignorable # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2CEF..2CF1 ; Case_Ignorable # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2D6F ; Case_Ignorable # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D7F ; Case_Ignorable # Mn TIFINAGH CONSONANT JOINER +2DE0..2DFF ; Case_Ignorable # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +2E2F ; Case_Ignorable # Lm VERTICAL TILDE +3005 ; Case_Ignorable # Lm IDEOGRAPHIC ITERATION MARK +302A..302D ; Case_Ignorable # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK +3031..3035 ; Case_Ignorable # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +303B ; Case_Ignorable # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +3099..309A ; Case_Ignorable # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309B..309C ; Case_Ignorable # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; Case_Ignorable # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +30FC..30FE ; Case_Ignorable # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +A015 ; Case_Ignorable # Lm YI SYLLABLE WU +A4F8..A4FD ; Case_Ignorable # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A60C ; Case_Ignorable # Lm VAI SYLLABLE LENGTHENER +A66F ; Case_Ignorable # Mn COMBINING CYRILLIC VZMET +A670..A672 ; Case_Ignorable # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN +A674..A67D ; Case_Ignorable # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK +A67F ; Case_Ignorable # Lm CYRILLIC PAYEROK +A69F ; Case_Ignorable # Mn COMBINING CYRILLIC LETTER IOTIFIED E +A6F0..A6F1 ; Case_Ignorable # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A700..A716 ; Case_Ignorable # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR +A717..A71F ; Case_Ignorable # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A720..A721 ; Case_Ignorable # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE +A770 ; Case_Ignorable # Lm MODIFIER LETTER US +A788 ; Case_Ignorable # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A789..A78A ; Case_Ignorable # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN +A7F8..A7F9 ; Case_Ignorable # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A802 ; Case_Ignorable # Mn SYLOTI NAGRI SIGN DVISVARA +A806 ; Case_Ignorable # Mn SYLOTI NAGRI SIGN HASANTA +A80B ; Case_Ignorable # Mn SYLOTI NAGRI SIGN ANUSVARA +A825..A826 ; Case_Ignorable # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A8C4 ; Case_Ignorable # Mn SAURASHTRA SIGN VIRAMA +A8E0..A8F1 ; Case_Ignorable # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A926..A92D ; Case_Ignorable # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU +A947..A951 ; Case_Ignorable # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A980..A982 ; Case_Ignorable # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A9B3 ; Case_Ignorable # Mn JAVANESE SIGN CECAK TELU +A9B6..A9B9 ; Case_Ignorable # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BC ; Case_Ignorable # Mn JAVANESE VOWEL SIGN PEPET +A9CF ; Case_Ignorable # Lm JAVANESE PANGRANGKEP +AA29..AA2E ; Case_Ignorable # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA31..AA32 ; Case_Ignorable # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA35..AA36 ; Case_Ignorable # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA43 ; Case_Ignorable # Mn CHAM CONSONANT SIGN FINAL NG +AA4C ; Case_Ignorable # Mn CHAM CONSONANT SIGN FINAL M +AA70 ; Case_Ignorable # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AAB0 ; Case_Ignorable # Mn TAI VIET MAI KANG +AAB2..AAB4 ; Case_Ignorable # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB7..AAB8 ; Case_Ignorable # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AABE..AABF ; Case_Ignorable # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK +AAC1 ; Case_Ignorable # Mn TAI VIET TONE MAI THO +AADD ; Case_Ignorable # Lm TAI VIET SYMBOL SAM +AAEC..AAED ; Case_Ignorable # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAF3..AAF4 ; Case_Ignorable # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AAF6 ; Case_Ignorable # Mn MEETEI MAYEK VIRAMA +ABE5 ; Case_Ignorable # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE8 ; Case_Ignorable # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABED ; Case_Ignorable # Mn MEETEI MAYEK APUN IYEK +FB1E ; Case_Ignorable # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FBB2..FBC1 ; Case_Ignorable # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW +FE00..FE0F ; Case_Ignorable # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FE13 ; Case_Ignorable # Po PRESENTATION FORM FOR VERTICAL COLON +FE20..FE26 ; Case_Ignorable # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON +FE52 ; Case_Ignorable # Po SMALL FULL STOP +FE55 ; Case_Ignorable # Po SMALL COLON +FEFF ; Case_Ignorable # Cf ZERO WIDTH NO-BREAK SPACE +FF07 ; Case_Ignorable # Po FULLWIDTH APOSTROPHE +FF0E ; Case_Ignorable # Po FULLWIDTH FULL STOP +FF1A ; Case_Ignorable # Po FULLWIDTH COLON +FF3E ; Case_Ignorable # Sk FULLWIDTH CIRCUMFLEX ACCENT +FF40 ; Case_Ignorable # Sk FULLWIDTH GRAVE ACCENT +FF70 ; Case_Ignorable # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF9E..FF9F ; Case_Ignorable # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFE3 ; Case_Ignorable # Sk FULLWIDTH MACRON +FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR +101FD ; Case_Ignorable # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE +10A01..10A03 ; Case_Ignorable # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Case_Ignorable # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; Case_Ignorable # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +10A38..10A3A ; Case_Ignorable # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +10A3F ; Case_Ignorable # Mn KHAROSHTHI VIRAMA +11001 ; Case_Ignorable # Mn BRAHMI SIGN ANUSVARA +11038..11046 ; Case_Ignorable # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA +11080..11081 ; Case_Ignorable # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA +110B3..110B6 ; Case_Ignorable # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B9..110BA ; Case_Ignorable # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +110BD ; Case_Ignorable # Cf KAITHI NUMBER SIGN +11100..11102 ; Case_Ignorable # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA +11127..1112B ; Case_Ignorable # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112D..11134 ; Case_Ignorable # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA +11180..11181 ; Case_Ignorable # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +111B6..111BE ; Case_Ignorable # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +116AB ; Case_Ignorable # Mn TAKRI SIGN ANUSVARA +116AD ; Case_Ignorable # Mn TAKRI VOWEL SIGN AA +116B0..116B5 ; Case_Ignorable # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +116B7 ; Case_Ignorable # Mn TAKRI SIGN NUKTA +16F8F..16F92 ; Case_Ignorable # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW +16F93..16F9F ; Case_Ignorable # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1D167..1D169 ; Case_Ignorable # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D173..1D17A ; Case_Ignorable # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE +1D17B..1D182 ; Case_Ignorable # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; Case_Ignorable # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; Case_Ignorable # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO +1D242..1D244 ; Case_Ignorable # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME +E0001 ; Case_Ignorable # Cf LANGUAGE TAG +E0020..E007F ; Case_Ignorable # Cf [96] TAG SPACE..CANCEL TAG +E0100..E01EF ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 1799 + +# ================================================ + +# Derived Property: Changes_When_Lowercased (CWL) +# Characters whose normalized forms are not stable under a toLowercase mapping. +# For more information, see D124 in Section 3.13, "Default Case Algorithms". +# Changes_When_Lowercased(X) is true when toLowercase(toNFD(X)) != toNFD(X) + +0041..005A ; Changes_When_Lowercased # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +00C0..00D6 ; Changes_When_Lowercased # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00DE ; Changes_When_Lowercased # L& [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN +0100 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH MACRON +0102 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH BREVE +0104 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH OGONEK +0106 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER C WITH ACUTE +0108 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER C WITH CIRCUMFLEX +010A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER C WITH DOT ABOVE +010C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER C WITH CARON +010E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH CARON +0110 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH STROKE +0112 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH MACRON +0114 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH BREVE +0116 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH DOT ABOVE +0118 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH OGONEK +011A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CARON +011C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH BREVE +0120 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH DOT ABOVE +0122 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH CEDILLA +0124 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0126 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH STROKE +0128 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH TILDE +012A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH MACRON +012C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH BREVE +012E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH OGONEK +0130 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH DOT ABOVE +0132 ; Changes_When_Lowercased # L& LATIN CAPITAL LIGATURE IJ +0134 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0136 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH CEDILLA +0139 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH ACUTE +013B ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH CEDILLA +013D ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH CARON +013F ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH MIDDLE DOT +0141 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH STROKE +0143 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH ACUTE +0145 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH CEDILLA +0147 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH CARON +014A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER ENG +014C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH MACRON +014E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH BREVE +0150 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0152 ; Changes_When_Lowercased # L& LATIN CAPITAL LIGATURE OE +0154 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH ACUTE +0156 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH CEDILLA +0158 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH CARON +015A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH ACUTE +015C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH CEDILLA +0160 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH CARON +0162 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH CEDILLA +0164 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH CARON +0166 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH STROKE +0168 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH TILDE +016A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH MACRON +016C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH BREVE +016E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH RING ABOVE +0170 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0172 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH OGONEK +0174 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0176 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0178..0179 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE +017B ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH DOT ABOVE +017D ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH CARON +0181..0182 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR +0184 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER TONE SIX +0186..0187 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK +0189..018B ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR +018E..0191 ; Changes_When_Lowercased # L& [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK +0193..0194 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA +0196..0198 ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK +019C..019D ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK +019F..01A0 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN +01A2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER OI +01A4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER P WITH HOOK +01A6..01A7 ; Changes_When_Lowercased # L& [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO +01A9 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER ESH +01AC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH HOOK +01AE..01AF ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN +01B1..01B3 ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK +01B5 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH STROKE +01B7..01B8 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED +01BC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER TONE FIVE +01C4..01C5 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON +01C7..01C8 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER LJ..LATIN CAPITAL LETTER L WITH SMALL LETTER J +01CA..01CB ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER NJ..LATIN CAPITAL LETTER N WITH SMALL LETTER J +01CD ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH CARON +01CF ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH CARON +01D1 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH CARON +01D3 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH CARON +01D5 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01D7 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D9 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +01DB ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01DE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +01E0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +01E2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AE WITH MACRON +01E4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH STROKE +01E6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH CARON +01E8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH CARON +01EA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH OGONEK +01EC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +01EE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER EZH WITH CARON +01F1..01F2 ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER D WITH SMALL LETTER Z +01F4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH ACUTE +01F6..01F8 ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE +01FA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +01FC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AE WITH ACUTE +01FE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +0200 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH DOUBLE GRAVE +0202 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH INVERTED BREVE +0204 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH DOUBLE GRAVE +0206 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH INVERTED BREVE +0208 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH DOUBLE GRAVE +020A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH INVERTED BREVE +020C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH DOUBLE GRAVE +020E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH INVERTED BREVE +0210 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH DOUBLE GRAVE +0212 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH INVERTED BREVE +0214 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DOUBLE GRAVE +0216 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH INVERTED BREVE +0218 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH COMMA BELOW +021A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH COMMA BELOW +021C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER YOGH +021E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH CARON +0220 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0222 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER OU +0224 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH HOOK +0226 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH DOT ABOVE +0228 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CEDILLA +022A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +022C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH TILDE AND MACRON +022E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH DOT ABOVE +0230 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON +0232 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH MACRON +023A..023B ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE +023D..023E ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE +0241 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER GLOTTAL STOP +0243..0246 ; Changes_When_Lowercased # L& [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE +0248 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER J WITH STROKE +024A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL +024C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH STROKE +024E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH STROKE +0370 ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER HETA +0372 ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER ARCHAIC SAMPI +0376 ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +0386 ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Changes_When_Lowercased # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..038F ; Changes_When_Lowercased # L& [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS +0391..03A1 ; Changes_When_Lowercased # L& [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO +03A3..03AB ; Changes_When_Lowercased # L& [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03CF ; Changes_When_Lowercased # L& GREEK CAPITAL KAI SYMBOL +03D8 ; Changes_When_Lowercased # L& GREEK LETTER ARCHAIC KOPPA +03DA ; Changes_When_Lowercased # L& GREEK LETTER STIGMA +03DC ; Changes_When_Lowercased # L& GREEK LETTER DIGAMMA +03DE ; Changes_When_Lowercased # L& GREEK LETTER KOPPA +03E0 ; Changes_When_Lowercased # L& GREEK LETTER SAMPI +03E2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER SHEI +03E4 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER FEI +03E6 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER KHEI +03E8 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER HORI +03EA ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER GANGIA +03EC ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER SHIMA +03EE ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER DEI +03F4 ; Changes_When_Lowercased # L& GREEK CAPITAL THETA SYMBOL +03F7 ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER SHO +03F9..03FA ; Changes_When_Lowercased # L& [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN +03FD..042F ; Changes_When_Lowercased # L& [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA +0460 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER OMEGA +0462 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER YAT +0464 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTIFIED E +0466 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER LITTLE YUS +0468 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS +046A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BIG YUS +046C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS +046E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KSI +0470 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER PSI +0472 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER FITA +0474 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IZHITSA +0476 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0478 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER UK +047A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ROUND OMEGA +047C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER OMEGA WITH TITLO +047E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER OT +0480 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOPPA +048A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +048C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SEMISOFT SIGN +048E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ER WITH TICK +0490 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0492 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE +0494 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +0496 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +0498 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +049A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KA WITH DESCENDER +049C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +049E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KA WITH STROKE +04A0 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BASHKIR KA +04A2 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EN WITH DESCENDER +04A4 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LIGATURE EN GHE +04A6 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +04A8 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ABKHASIAN HA +04AA ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ES WITH DESCENDER +04AC ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER TE WITH DESCENDER +04AE ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER STRAIGHT U +04B0 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +04B2 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER HA WITH DESCENDER +04B4 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LIGATURE TE TSE +04B6 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +04B8 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +04BA ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SHHA +04BC ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE +04BE ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +04C0..04C1 ; Changes_When_Lowercased # L& [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE +04C3 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KA WITH HOOK +04C5 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EL WITH TAIL +04C7 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EN WITH HOOK +04C9 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EN WITH TAIL +04CB ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +04CD ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EM WITH TAIL +04D0 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER A WITH BREVE +04D2 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER A WITH DIAERESIS +04D4 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LIGATURE A IE +04D6 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IE WITH BREVE +04D8 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SCHWA +04DA ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS +04DC ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DE ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04E0 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ABKHASIAN DZE +04E2 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER I WITH MACRON +04E4 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER I WITH DIAERESIS +04E6 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER O WITH DIAERESIS +04E8 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BARRED O +04EA ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS +04EC ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER E WITH DIAERESIS +04EE ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER U WITH MACRON +04F0 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F2 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F4 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F6 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +04F8 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04FA ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK +04FC ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER HA WITH HOOK +04FE ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER HA WITH STROKE +0500 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI DE +0502 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI DJE +0504 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI ZJE +0506 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI DZJE +0508 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI LJE +050A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI NJE +050C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI SJE +050E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER KOMI TJE +0510 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER REVERSED ZE +0512 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EL WITH HOOK +0514 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER LHA +0516 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER RHA +0518 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER YAE +051A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER QA +051C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER WE +051E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ALEUT KA +0520 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0522 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0524 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0526 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0531..0556 ; Changes_When_Lowercased # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +10A0..10C5 ; Changes_When_Lowercased # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Changes_When_Lowercased # L& GEORGIAN CAPITAL LETTER YN +10CD ; Changes_When_Lowercased # L& GEORGIAN CAPITAL LETTER AEN +1E00 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH RING BELOW +1E02 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER B WITH DOT ABOVE +1E04 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER B WITH DOT BELOW +1E06 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER B WITH LINE BELOW +1E08 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +1E0A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH DOT BELOW +1E0E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH LINE BELOW +1E10 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH CEDILLA +1E12 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +1E14 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +1E16 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +1E18 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +1E1A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH TILDE BELOW +1E1C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +1E1E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER F WITH DOT ABOVE +1E20 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH MACRON +1E22 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH DOT ABOVE +1E24 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH DOT BELOW +1E26 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH DIAERESIS +1E28 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH CEDILLA +1E2A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH BREVE BELOW +1E2C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH TILDE BELOW +1E2E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +1E30 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH ACUTE +1E32 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH DOT BELOW +1E34 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH LINE BELOW +1E36 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH DOT BELOW +1E38 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +1E3A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH LINE BELOW +1E3C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +1E3E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER M WITH ACUTE +1E40 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER M WITH DOT ABOVE +1E42 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER M WITH DOT BELOW +1E44 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH DOT ABOVE +1E46 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH DOT BELOW +1E48 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH LINE BELOW +1E4A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +1E4C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +1E4E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +1E50 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +1E52 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +1E54 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER P WITH ACUTE +1E56 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER P WITH DOT ABOVE +1E58 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH DOT ABOVE +1E5A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH DOT BELOW +1E5C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +1E5E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH LINE BELOW +1E60 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH DOT ABOVE +1E62 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH DOT BELOW +1E64 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +1E66 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +1E68 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH DOT BELOW +1E6E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH LINE BELOW +1E70 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +1E72 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +1E74 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH TILDE BELOW +1E76 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +1E78 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +1E7A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +1E7C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER V WITH TILDE +1E7E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER V WITH DOT BELOW +1E80 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH GRAVE +1E82 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH ACUTE +1E84 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH DIAERESIS +1E86 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH DOT ABOVE +1E88 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH DOT BELOW +1E8A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER X WITH DOT ABOVE +1E8C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER X WITH DIAERESIS +1E8E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH DOT ABOVE +1E90 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +1E92 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH DOT BELOW +1E94 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH LINE BELOW +1E9E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER SHARP S +1EA0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH DOT BELOW +1EA2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EA4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EAC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EB2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +1EB8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH DOT BELOW +1EBA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EBC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH TILDE +1EBE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH HOOK ABOVE +1ECA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER I WITH DOT BELOW +1ECC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH DOT BELOW +1ECE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH HOOK ABOVE +1ED0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EDC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EE0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EE2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +1EE4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH DOT BELOW +1EE6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EE8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EEA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EEC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EEE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EF0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH GRAVE +1EF4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH DOT BELOW +1EF6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH HOOK ABOVE +1EF8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH TILDE +1EFA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Y WITH LOOP +1F08..1F0F ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F18..1F1D ; Changes_When_Lowercased # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F28..1F2F ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI +1F38..1F3F ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI +1F48..1F4D ; Changes_When_Lowercased # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F59 ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F ; Changes_When_Lowercased # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F68..1F6F ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F88..1F8F ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F98..1F9F ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FA8..1FAF ; Changes_When_Lowercased # L& [8] GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FB8..1FBC ; Changes_When_Lowercased # L& [5] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FC8..1FCC ; Changes_When_Lowercased # L& [5] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD8..1FDB ; Changes_When_Lowercased # L& [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE8..1FEC ; Changes_When_Lowercased # L& [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF8..1FFC ; Changes_When_Lowercased # L& [5] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2126 ; Changes_When_Lowercased # L& OHM SIGN +212A..212B ; Changes_When_Lowercased # L& [2] KELVIN SIGN..ANGSTROM SIGN +2132 ; Changes_When_Lowercased # L& TURNED CAPITAL F +2160..216F ; Changes_When_Lowercased # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND +2183 ; Changes_When_Lowercased # L& ROMAN NUMERAL REVERSED ONE HUNDRED +24B6..24CF ; Changes_When_Lowercased # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z +2C00..2C2E ; Changes_When_Lowercased # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C60 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR +2C62..2C64 ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL +2C67 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH DESCENDER +2C69 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH DESCENDER +2C6B ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Z WITH DESCENDER +2C6D..2C70 ; Changes_When_Lowercased # L& [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA +2C72 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER W WITH HOOK +2C75 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER HALF H +2C7E..2C80 ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA +2C82 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER VIDA +2C84 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER GAMMA +2C86 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER DALDA +2C88 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER EIE +2C8A ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER SOU +2C8C ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER ZATA +2C8E ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER HATE +2C90 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER THETHE +2C92 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER IAUDA +2C94 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER KAPA +2C96 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER LAULA +2C98 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER MI +2C9A ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER NI +2C9C ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER KSI +2C9E ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER O +2CA0 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER PI +2CA2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER RO +2CA4 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER SIMA +2CA6 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER TAU +2CA8 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER UA +2CAA ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER FI +2CAC ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER KHI +2CAE ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER PSI +2CB0 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OOU +2CB2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER DIALECT-P ALEF +2CB4 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC AIN +2CB6 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE +2CB8 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER DIALECT-P KAPA +2CBA ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER DIALECT-P NI +2CBC ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI +2CBE ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC OOU +2CC0 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER SAMPI +2CC2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER CROSSED SHEI +2CC4 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC SHEI +2CC6 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC ESH +2CC8 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER AKHMIMIC KHEI +2CCA ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER DIALECT-P HORI +2CCC ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC HORI +2CCE ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC HA +2CD0 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER L-SHAPED HA +2CD2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC HEI +2CD4 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC HAT +2CD6 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC GANGIA +2CD8 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC DJA +2CDA ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD COPTIC SHIMA +2CDC ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD NUBIAN SHIMA +2CDE ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD NUBIAN NGI +2CE0 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD NUBIAN NYI +2CE2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CEB ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CED ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CF2 ; Changes_When_Lowercased # L& COPTIC CAPITAL LETTER BOHAIRIC KHEI +A640 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ZEMLYA +A642 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER DZELO +A644 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER REVERSED DZE +A646 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTA +A648 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER DJERV +A64A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BROAD OMEGA +A64E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER NEUTRAL YER +A650 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A652 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTIFIED YAT +A654 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER REVERSED YU +A656 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTIFIED A +A658 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A65A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BLENDED YUS +A65C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER YN +A660 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER REVERSED TSE +A662 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SOFT DE +A664 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SOFT EL +A666 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SOFT EM +A668 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER MONOCULAR O +A66A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER BINOCULAR O +A66C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A680 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER DWE +A682 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER DZWE +A684 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER ZHWE +A686 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER CCHE +A688 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER DZZE +A68A ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68C ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER TWE +A68E ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER TSWE +A690 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER TSSE +A692 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER TCHE +A694 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER HWE +A696 ; Changes_When_Lowercased # L& CYRILLIC CAPITAL LETTER SHWE +A722 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A724 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A726 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER HENG +A728 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER TZ +A72A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER TRESILLO +A72C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER CUATRILLO +A72E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A732 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AA +A734 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AO +A736 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AU +A738 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AV +A73A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER AY +A73E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER REVERSED C WITH DOT +A740 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH STROKE +A742 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A744 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A746 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER BROKEN L +A748 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER L WITH HIGH STROKE +A74A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER O WITH LOOP +A74E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER OO +A750 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A752 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER P WITH FLOURISH +A754 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A756 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A758 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A75A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R ROTUNDA +A75C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER RUM ROTUNDA +A75E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A760 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER VY +A762 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER VISIGOTHIC Z +A764 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER THORN WITH STROKE +A766 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A768 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER VEND +A76A ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER ET +A76C ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER IS +A76E ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER CON +A779 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER INSULAR D +A77B ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER INSULAR F +A77D..A77E ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G +A780 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER TURNED L +A782 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER INSULAR R +A784 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER INSULAR S +A786 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER INSULAR T +A78B ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER SALTILLO +A78D ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER TURNED H +A790 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH DESCENDER +A792 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER C WITH BAR +A7A0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7AA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER H WITH HOOK +FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +10400..10427 ; Changes_When_Lowercased # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW + +# Total code points: 1043 + +# ================================================ + +# Derived Property: Changes_When_Uppercased (CWU) +# Characters whose normalized forms are not stable under a toUppercase mapping. +# For more information, see D125 in Section 3.13, "Default Case Algorithms". +# Changes_When_Uppercased(X) is true when toUppercase(toNFD(X)) != toNFD(X) + +0061..007A ; Changes_When_Uppercased # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00B5 ; Changes_When_Uppercased # L& MICRO SIGN +00DF..00F6 ; Changes_When_Uppercased # L& [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS +00F8..00FF ; Changes_When_Uppercased # L& [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS +0101 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH MACRON +0103 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH BREVE +0105 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH OGONEK +0107 ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH ACUTE +0109 ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH CIRCUMFLEX +010B ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH DOT ABOVE +010D ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH CARON +010F ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH CARON +0111 ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH STROKE +0113 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH MACRON +0115 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH BREVE +0117 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH DOT ABOVE +0119 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH OGONEK +011B ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CARON +011D ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH CIRCUMFLEX +011F ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH BREVE +0121 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH DOT ABOVE +0123 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH CEDILLA +0125 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH CIRCUMFLEX +0127 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH STROKE +0129 ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH TILDE +012B ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH MACRON +012D ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH BREVE +012F ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH OGONEK +0131 ; Changes_When_Uppercased # L& LATIN SMALL LETTER DOTLESS I +0133 ; Changes_When_Uppercased # L& LATIN SMALL LIGATURE IJ +0135 ; Changes_When_Uppercased # L& LATIN SMALL LETTER J WITH CIRCUMFLEX +0137 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH CEDILLA +013A ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH ACUTE +013C ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH CEDILLA +013E ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH CARON +0140 ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH MIDDLE DOT +0142 ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH STROKE +0144 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH ACUTE +0146 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH CEDILLA +0148..0149 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014B ; Changes_When_Uppercased # L& LATIN SMALL LETTER ENG +014D ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH MACRON +014F ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH BREVE +0151 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH DOUBLE ACUTE +0153 ; Changes_When_Uppercased # L& LATIN SMALL LIGATURE OE +0155 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH ACUTE +0157 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH CEDILLA +0159 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH CARON +015B ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH ACUTE +015D ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH CIRCUMFLEX +015F ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH CEDILLA +0161 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH CARON +0163 ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH CEDILLA +0165 ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH CARON +0167 ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH STROKE +0169 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH TILDE +016B ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH MACRON +016D ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH BREVE +016F ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH RING ABOVE +0171 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DOUBLE ACUTE +0173 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH OGONEK +0175 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH CIRCUMFLEX +0177 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH CIRCUMFLEX +017A ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH ACUTE +017C ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH DOT ABOVE +017E..0180 ; Changes_When_Uppercased # L& [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE +0183 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH TOPBAR +0185 ; Changes_When_Uppercased # L& LATIN SMALL LETTER TONE SIX +0188 ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH HOOK +018C ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH TOPBAR +0192 ; Changes_When_Uppercased # L& LATIN SMALL LETTER F WITH HOOK +0195 ; Changes_When_Uppercased # L& LATIN SMALL LETTER HV +0199..019A ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER L WITH BAR +019E ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH LONG RIGHT LEG +01A1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HORN +01A3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER OI +01A5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH HOOK +01A8 ; Changes_When_Uppercased # L& LATIN SMALL LETTER TONE TWO +01AD ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH HOOK +01B0 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HORN +01B4 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH HOOK +01B6 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH STROKE +01B9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER EZH REVERSED +01BD ; Changes_When_Uppercased # L& LATIN SMALL LETTER TONE FIVE +01BF ; Changes_When_Uppercased # L& LATIN LETTER WYNN +01C5..01C6 ; Changes_When_Uppercased # L& [2] LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON..LATIN SMALL LETTER DZ WITH CARON +01C8..01C9 ; Changes_When_Uppercased # L& [2] LATIN CAPITAL LETTER L WITH SMALL LETTER J..LATIN SMALL LETTER LJ +01CB..01CC ; Changes_When_Uppercased # L& [2] LATIN CAPITAL LETTER N WITH SMALL LETTER J..LATIN SMALL LETTER NJ +01CE ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH CARON +01D0 ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH CARON +01D2 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH CARON +01D4 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH CARON +01D6 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D8 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01DA ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01DC..01DD ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E +01DF ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01E1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON +01E3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER AE WITH MACRON +01E5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH STROKE +01E7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH CARON +01E9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH CARON +01EB ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH OGONEK +01ED ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH OGONEK AND MACRON +01EF..01F0 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON +01F2..01F3 ; Changes_When_Uppercased # L& [2] LATIN CAPITAL LETTER D WITH SMALL LETTER Z..LATIN SMALL LETTER DZ +01F5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH ACUTE +01F9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH GRAVE +01FB ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +01FD ; Changes_When_Uppercased # L& LATIN SMALL LETTER AE WITH ACUTE +01FF ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH STROKE AND ACUTE +0201 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH DOUBLE GRAVE +0203 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH INVERTED BREVE +0205 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH DOUBLE GRAVE +0207 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH INVERTED BREVE +0209 ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH DOUBLE GRAVE +020B ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH INVERTED BREVE +020D ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH DOUBLE GRAVE +020F ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH INVERTED BREVE +0211 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH DOUBLE GRAVE +0213 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH INVERTED BREVE +0215 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DOUBLE GRAVE +0217 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH INVERTED BREVE +0219 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH COMMA BELOW +021B ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH COMMA BELOW +021D ; Changes_When_Uppercased # L& LATIN SMALL LETTER YOGH +021F ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH CARON +0223 ; Changes_When_Uppercased # L& LATIN SMALL LETTER OU +0225 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH HOOK +0227 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH DOT ABOVE +0229 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CEDILLA +022B ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022D ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH TILDE AND MACRON +022F ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH DOT ABOVE +0231 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON +0233 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH MACRON +023C ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH STROKE +023F..0240 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL +0242 ; Changes_When_Uppercased # L& LATIN SMALL LETTER GLOTTAL STOP +0247 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH STROKE +0249 ; Changes_When_Uppercased # L& LATIN SMALL LETTER J WITH STROKE +024B ; Changes_When_Uppercased # L& LATIN SMALL LETTER Q WITH HOOK TAIL +024D ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH STROKE +024F..0254 ; Changes_When_Uppercased # L& [6] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER OPEN O +0256..0257 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK +0259 ; Changes_When_Uppercased # L& LATIN SMALL LETTER SCHWA +025B ; Changes_When_Uppercased # L& LATIN SMALL LETTER OPEN E +0260 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH HOOK +0263 ; Changes_When_Uppercased # L& LATIN SMALL LETTER GAMMA +0265..0266 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK +0268..0269 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +026B ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH MIDDLE TILDE +026F ; Changes_When_Uppercased # L& LATIN SMALL LETTER TURNED M +0271..0272 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK +0275 ; Changes_When_Uppercased # L& LATIN SMALL LETTER BARRED O +027D ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH TAIL +0280 ; Changes_When_Uppercased # L& LATIN LETTER SMALL CAPITAL R +0283 ; Changes_When_Uppercased # L& LATIN SMALL LETTER ESH +0288..028C ; Changes_When_Uppercased # L& [5] LATIN SMALL LETTER T WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED V +0292 ; Changes_When_Uppercased # L& LATIN SMALL LETTER EZH +0345 ; Changes_When_Uppercased # Mn COMBINING GREEK YPOGEGRAMMENI +0371 ; Changes_When_Uppercased # L& GREEK SMALL LETTER HETA +0373 ; Changes_When_Uppercased # L& GREEK SMALL LETTER ARCHAIC SAMPI +0377 ; Changes_When_Uppercased # L& GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037B..037D ; Changes_When_Uppercased # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0390 ; Changes_When_Uppercased # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +03AC..03CE ; Changes_When_Uppercased # L& [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS +03D0..03D1 ; Changes_When_Uppercased # L& [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL +03D5..03D7 ; Changes_When_Uppercased # L& [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL +03D9 ; Changes_When_Uppercased # L& GREEK SMALL LETTER ARCHAIC KOPPA +03DB ; Changes_When_Uppercased # L& GREEK SMALL LETTER STIGMA +03DD ; Changes_When_Uppercased # L& GREEK SMALL LETTER DIGAMMA +03DF ; Changes_When_Uppercased # L& GREEK SMALL LETTER KOPPA +03E1 ; Changes_When_Uppercased # L& GREEK SMALL LETTER SAMPI +03E3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER SHEI +03E5 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER FEI +03E7 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER KHEI +03E9 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER HORI +03EB ; Changes_When_Uppercased # L& COPTIC SMALL LETTER GANGIA +03ED ; Changes_When_Uppercased # L& COPTIC SMALL LETTER SHIMA +03EF..03F2 ; Changes_When_Uppercased # L& [4] COPTIC SMALL LETTER DEI..GREEK LUNATE SIGMA SYMBOL +03F5 ; Changes_When_Uppercased # L& GREEK LUNATE EPSILON SYMBOL +03F8 ; Changes_When_Uppercased # L& GREEK SMALL LETTER SHO +03FB ; Changes_When_Uppercased # L& GREEK SMALL LETTER SAN +0430..045F ; Changes_When_Uppercased # L& [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE +0461 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER OMEGA +0463 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER YAT +0465 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTIFIED E +0467 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER LITTLE YUS +0469 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS +046B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BIG YUS +046D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTIFIED BIG YUS +046F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KSI +0471 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER PSI +0473 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER FITA +0475 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IZHITSA +0477 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0479 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER UK +047B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ROUND OMEGA +047D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER OMEGA WITH TITLO +047F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER OT +0481 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOPPA +048B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SHORT I WITH TAIL +048D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SEMISOFT SIGN +048F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ER WITH TICK +0491 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER GHE WITH UPTURN +0493 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER GHE WITH STROKE +0495 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK +0497 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZHE WITH DESCENDER +0499 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZE WITH DESCENDER +049B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KA WITH DESCENDER +049D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE +049F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KA WITH STROKE +04A1 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BASHKIR KA +04A3 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EN WITH DESCENDER +04A5 ; Changes_When_Uppercased # L& CYRILLIC SMALL LIGATURE EN GHE +04A7 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK +04A9 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ABKHASIAN HA +04AB ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ES WITH DESCENDER +04AD ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER TE WITH DESCENDER +04AF ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER STRAIGHT U +04B1 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +04B3 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER HA WITH DESCENDER +04B5 ; Changes_When_Uppercased # L& CYRILLIC SMALL LIGATURE TE TSE +04B7 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER CHE WITH DESCENDER +04B9 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE +04BB ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SHHA +04BD ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ABKHASIAN CHE +04BF ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER +04C2 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZHE WITH BREVE +04C4 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KA WITH HOOK +04C6 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EL WITH TAIL +04C8 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EN WITH HOOK +04CA ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EN WITH TAIL +04CC ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KHAKASSIAN CHE +04CE..04CF ; Changes_When_Uppercased # L& [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA +04D1 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER A WITH BREVE +04D3 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER A WITH DIAERESIS +04D5 ; Changes_When_Uppercased # L& CYRILLIC SMALL LIGATURE A IE +04D7 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IE WITH BREVE +04D9 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SCHWA +04DB ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS +04DD ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DF ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04E1 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ABKHASIAN DZE +04E3 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER I WITH MACRON +04E5 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER I WITH DIAERESIS +04E7 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER O WITH DIAERESIS +04E9 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BARRED O +04EB ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS +04ED ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER E WITH DIAERESIS +04EF ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER U WITH MACRON +04F1 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER U WITH DIAERESIS +04F3 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F5 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F7 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER GHE WITH DESCENDER +04F9 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER YERU WITH DIAERESIS +04FB ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK +04FD ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER HA WITH HOOK +04FF ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER HA WITH STROKE +0501 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI DE +0503 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI DJE +0505 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI ZJE +0507 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI DZJE +0509 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI LJE +050B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI NJE +050D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI SJE +050F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER KOMI TJE +0511 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER REVERSED ZE +0513 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EL WITH HOOK +0515 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER LHA +0517 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER RHA +0519 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER YAE +051B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER QA +051D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER WE +051F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ALEUT KA +0521 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK +0523 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK +0525 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER PE WITH DESCENDER +0527 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0561..0587 ; Changes_When_Uppercased # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +1D79 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR G +1D7D ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH STROKE +1E01 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH RING BELOW +1E03 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH DOT ABOVE +1E05 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH DOT BELOW +1E07 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH LINE BELOW +1E09 ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH CEDILLA AND ACUTE +1E0B ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH DOT ABOVE +1E0D ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH DOT BELOW +1E0F ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH LINE BELOW +1E11 ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH CEDILLA +1E13 ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW +1E15 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH MACRON AND GRAVE +1E17 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH MACRON AND ACUTE +1E19 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW +1E1B ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH TILDE BELOW +1E1D ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CEDILLA AND BREVE +1E1F ; Changes_When_Uppercased # L& LATIN SMALL LETTER F WITH DOT ABOVE +1E21 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH MACRON +1E23 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH DOT ABOVE +1E25 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH DOT BELOW +1E27 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH DIAERESIS +1E29 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH CEDILLA +1E2B ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH BREVE BELOW +1E2D ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH TILDE BELOW +1E2F ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE +1E31 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH ACUTE +1E33 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH DOT BELOW +1E35 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH LINE BELOW +1E37 ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH DOT BELOW +1E39 ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH DOT BELOW AND MACRON +1E3B ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH LINE BELOW +1E3D ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW +1E3F ; Changes_When_Uppercased # L& LATIN SMALL LETTER M WITH ACUTE +1E41 ; Changes_When_Uppercased # L& LATIN SMALL LETTER M WITH DOT ABOVE +1E43 ; Changes_When_Uppercased # L& LATIN SMALL LETTER M WITH DOT BELOW +1E45 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH DOT ABOVE +1E47 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH DOT BELOW +1E49 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH LINE BELOW +1E4B ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW +1E4D ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH TILDE AND ACUTE +1E4F ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH TILDE AND DIAERESIS +1E51 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH MACRON AND GRAVE +1E53 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH MACRON AND ACUTE +1E55 ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH ACUTE +1E57 ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH DOT ABOVE +1E59 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH DOT ABOVE +1E5B ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH DOT BELOW +1E5D ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH DOT BELOW AND MACRON +1E5F ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH LINE BELOW +1E61 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH DOT ABOVE +1E63 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH DOT BELOW +1E65 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE +1E67 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH CARON AND DOT ABOVE +1E69 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6B ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH DOT ABOVE +1E6D ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH DOT BELOW +1E6F ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH LINE BELOW +1E71 ; Changes_When_Uppercased # L& LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW +1E73 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DIAERESIS BELOW +1E75 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH TILDE BELOW +1E77 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW +1E79 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH TILDE AND ACUTE +1E7B ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH MACRON AND DIAERESIS +1E7D ; Changes_When_Uppercased # L& LATIN SMALL LETTER V WITH TILDE +1E7F ; Changes_When_Uppercased # L& LATIN SMALL LETTER V WITH DOT BELOW +1E81 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH GRAVE +1E83 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH ACUTE +1E85 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH DIAERESIS +1E87 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH DOT ABOVE +1E89 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH DOT BELOW +1E8B ; Changes_When_Uppercased # L& LATIN SMALL LETTER X WITH DOT ABOVE +1E8D ; Changes_When_Uppercased # L& LATIN SMALL LETTER X WITH DIAERESIS +1E8F ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH DOT ABOVE +1E91 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH CIRCUMFLEX +1E93 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH DOT BELOW +1E95..1E9B ; Changes_When_Uppercased # L& [7] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE +1EA1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH DOT BELOW +1EA3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH HOOK ABOVE +1EA5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAB ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAD ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAF ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EB1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH DOT BELOW +1EBB ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH HOOK ABOVE +1EBD ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH TILDE +1EBF ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH HOOK ABOVE +1ECB ; Changes_When_Uppercased # L& LATIN SMALL LETTER I WITH DOT BELOW +1ECD ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH DOT BELOW +1ECF ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HOOK ABOVE +1ED1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDB ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HORN AND ACUTE +1EDD ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HORN AND GRAVE +1EDF ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +1EE1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HORN AND TILDE +1EE3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH HORN AND DOT BELOW +1EE5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH DOT BELOW +1EE7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HOOK ABOVE +1EE9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HORN AND ACUTE +1EEB ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HORN AND GRAVE +1EED ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +1EEF ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HORN AND TILDE +1EF1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH HORN AND DOT BELOW +1EF3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH GRAVE +1EF5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH DOT BELOW +1EF7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH HOOK ABOVE +1EF9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Y WITH TILDE +1EFB ; Changes_When_Uppercased # L& LATIN SMALL LETTER MIDDLE-WELSH LL +1EFD ; Changes_When_Uppercased # L& LATIN SMALL LETTER MIDDLE-WELSH V +1EFF..1F07 ; Changes_When_Uppercased # L& [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F10..1F15 ; Changes_When_Uppercased # L& [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F27 ; Changes_When_Uppercased # L& [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI +1F30..1F37 ; Changes_When_Uppercased # L& [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI +1F40..1F45 ; Changes_When_Uppercased # L& [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Changes_When_Uppercased # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F60..1F67 ; Changes_When_Uppercased # L& [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F70..1F7D ; Changes_When_Uppercased # L& [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; Changes_When_Uppercased # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FB7 ; Changes_When_Uppercased # L& [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FBC ; Changes_When_Uppercased # L& GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; Changes_When_Uppercased # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; Changes_When_Uppercased # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FC7 ; Changes_When_Uppercased # L& [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FCC ; Changes_When_Uppercased # L& GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; Changes_When_Uppercased # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FD7 ; Changes_When_Uppercased # L& [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FE0..1FE7 ; Changes_When_Uppercased # L& [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FF2..1FF4 ; Changes_When_Uppercased # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FF7 ; Changes_When_Uppercased # L& [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI +1FFC ; Changes_When_Uppercased # L& GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +214E ; Changes_When_Uppercased # L& TURNED SMALL F +2170..217F ; Changes_When_Uppercased # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +2184 ; Changes_When_Uppercased # L& LATIN SMALL LETTER REVERSED C +24D0..24E9 ; Changes_When_Uppercased # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C30..2C5E ; Changes_When_Uppercased # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C61 ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH DOUBLE BAR +2C65..2C66 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE +2C68 ; Changes_When_Uppercased # L& LATIN SMALL LETTER H WITH DESCENDER +2C6A ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH DESCENDER +2C6C ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH DESCENDER +2C73 ; Changes_When_Uppercased # L& LATIN SMALL LETTER W WITH HOOK +2C76 ; Changes_When_Uppercased # L& LATIN SMALL LETTER HALF H +2C81 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER ALFA +2C83 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER VIDA +2C85 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER GAMMA +2C87 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER DALDA +2C89 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER EIE +2C8B ; Changes_When_Uppercased # L& COPTIC SMALL LETTER SOU +2C8D ; Changes_When_Uppercased # L& COPTIC SMALL LETTER ZATA +2C8F ; Changes_When_Uppercased # L& COPTIC SMALL LETTER HATE +2C91 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER THETHE +2C93 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER IAUDA +2C95 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER KAPA +2C97 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER LAULA +2C99 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER MI +2C9B ; Changes_When_Uppercased # L& COPTIC SMALL LETTER NI +2C9D ; Changes_When_Uppercased # L& COPTIC SMALL LETTER KSI +2C9F ; Changes_When_Uppercased # L& COPTIC SMALL LETTER O +2CA1 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER PI +2CA3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER RO +2CA5 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER SIMA +2CA7 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER TAU +2CA9 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER UA +2CAB ; Changes_When_Uppercased # L& COPTIC SMALL LETTER FI +2CAD ; Changes_When_Uppercased # L& COPTIC SMALL LETTER KHI +2CAF ; Changes_When_Uppercased # L& COPTIC SMALL LETTER PSI +2CB1 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OOU +2CB3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER DIALECT-P ALEF +2CB5 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC AIN +2CB7 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC EIE +2CB9 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER DIALECT-P KAPA +2CBB ; Changes_When_Uppercased # L& COPTIC SMALL LETTER DIALECT-P NI +2CBD ; Changes_When_Uppercased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC NI +2CBF ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC OOU +2CC1 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER SAMPI +2CC3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER CROSSED SHEI +2CC5 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC SHEI +2CC7 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC ESH +2CC9 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER AKHMIMIC KHEI +2CCB ; Changes_When_Uppercased # L& COPTIC SMALL LETTER DIALECT-P HORI +2CCD ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC HORI +2CCF ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC HA +2CD1 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER L-SHAPED HA +2CD3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC HEI +2CD5 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC HAT +2CD7 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC GANGIA +2CD9 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC DJA +2CDB ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD COPTIC SHIMA +2CDD ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD NUBIAN SHIMA +2CDF ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD NUBIAN NGI +2CE1 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD NUBIAN NYI +2CE3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER OLD NUBIAN WAU +2CEC ; Changes_When_Uppercased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI +2CEE ; Changes_When_Uppercased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF3 ; Changes_When_Uppercased # L& COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; Changes_When_Uppercased # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Changes_When_Uppercased # L& GEORGIAN SMALL LETTER YN +2D2D ; Changes_When_Uppercased # L& GEORGIAN SMALL LETTER AEN +A641 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZEMLYA +A643 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER DZELO +A645 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER REVERSED DZE +A647 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTA +A649 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER DJERV +A64B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER MONOGRAPH UK +A64D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BROAD OMEGA +A64F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER NEUTRAL YER +A651 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER YERU WITH BACK YER +A653 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTIFIED YAT +A655 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER REVERSED YU +A657 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTIFIED A +A659 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER CLOSED LITTLE YUS +A65B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BLENDED YUS +A65D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS +A65F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER YN +A661 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER REVERSED TSE +A663 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SOFT DE +A665 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SOFT EL +A667 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SOFT EM +A669 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER MONOCULAR O +A66B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER BINOCULAR O +A66D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A681 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER DWE +A683 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER DZWE +A685 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER ZHWE +A687 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER CCHE +A689 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER DZZE +A68B ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK +A68D ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER TWE +A68F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER TSWE +A691 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER TSSE +A693 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER TCHE +A695 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER HWE +A697 ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER SHWE +A723 ; Changes_When_Uppercased # L& LATIN SMALL LETTER EGYPTOLOGICAL ALEF +A725 ; Changes_When_Uppercased # L& LATIN SMALL LETTER EGYPTOLOGICAL AIN +A727 ; Changes_When_Uppercased # L& LATIN SMALL LETTER HENG +A729 ; Changes_When_Uppercased # L& LATIN SMALL LETTER TZ +A72B ; Changes_When_Uppercased # L& LATIN SMALL LETTER TRESILLO +A72D ; Changes_When_Uppercased # L& LATIN SMALL LETTER CUATRILLO +A72F ; Changes_When_Uppercased # L& LATIN SMALL LETTER CUATRILLO WITH COMMA +A733 ; Changes_When_Uppercased # L& LATIN SMALL LETTER AA +A735 ; Changes_When_Uppercased # L& LATIN SMALL LETTER AO +A737 ; Changes_When_Uppercased # L& LATIN SMALL LETTER AU +A739 ; Changes_When_Uppercased # L& LATIN SMALL LETTER AV +A73B ; Changes_When_Uppercased # L& LATIN SMALL LETTER AV WITH HORIZONTAL BAR +A73D ; Changes_When_Uppercased # L& LATIN SMALL LETTER AY +A73F ; Changes_When_Uppercased # L& LATIN SMALL LETTER REVERSED C WITH DOT +A741 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH STROKE +A743 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH DIAGONAL STROKE +A745 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE +A747 ; Changes_When_Uppercased # L& LATIN SMALL LETTER BROKEN L +A749 ; Changes_When_Uppercased # L& LATIN SMALL LETTER L WITH HIGH STROKE +A74B ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH LONG STROKE OVERLAY +A74D ; Changes_When_Uppercased # L& LATIN SMALL LETTER O WITH LOOP +A74F ; Changes_When_Uppercased # L& LATIN SMALL LETTER OO +A751 ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER +A753 ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH FLOURISH +A755 ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH SQUIRREL TAIL +A757 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER +A759 ; Changes_When_Uppercased # L& LATIN SMALL LETTER Q WITH DIAGONAL STROKE +A75B ; Changes_When_Uppercased # L& LATIN SMALL LETTER R ROTUNDA +A75D ; Changes_When_Uppercased # L& LATIN SMALL LETTER RUM ROTUNDA +A75F ; Changes_When_Uppercased # L& LATIN SMALL LETTER V WITH DIAGONAL STROKE +A761 ; Changes_When_Uppercased # L& LATIN SMALL LETTER VY +A763 ; Changes_When_Uppercased # L& LATIN SMALL LETTER VISIGOTHIC Z +A765 ; Changes_When_Uppercased # L& LATIN SMALL LETTER THORN WITH STROKE +A767 ; Changes_When_Uppercased # L& LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER +A769 ; Changes_When_Uppercased # L& LATIN SMALL LETTER VEND +A76B ; Changes_When_Uppercased # L& LATIN SMALL LETTER ET +A76D ; Changes_When_Uppercased # L& LATIN SMALL LETTER IS +A76F ; Changes_When_Uppercased # L& LATIN SMALL LETTER CON +A77A ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR D +A77C ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR F +A77F ; Changes_When_Uppercased # L& LATIN SMALL LETTER TURNED INSULAR G +A781 ; Changes_When_Uppercased # L& LATIN SMALL LETTER TURNED L +A783 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR R +A785 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR S +A787 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR T +A78C ; Changes_When_Uppercased # L& LATIN SMALL LETTER SALTILLO +A791 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH DESCENDER +A793 ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH BAR +A7A1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER G WITH OBLIQUE STROKE +A7A3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER K WITH OBLIQUE STROKE +A7A5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH OBLIQUE STROKE +A7A7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH OBLIQUE STROKE +A7A9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH OBLIQUE STROKE +FB00..FB06 ; Changes_When_Uppercased # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Changes_When_Uppercased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +10428..1044F ; Changes_When_Uppercased # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW + +# Total code points: 1126 + +# ================================================ + +# Derived Property: Changes_When_Titlecased (CWT) +# Characters whose normalized forms are not stable under a toTitlecase mapping. +# For more information, see D126 in Section 3.13, "Default Case Algorithms". +# Changes_When_Titlecased(X) is true when toTitlecase(toNFD(X)) != toNFD(X) + +0061..007A ; Changes_When_Titlecased # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00B5 ; Changes_When_Titlecased # L& MICRO SIGN +00DF..00F6 ; Changes_When_Titlecased # L& [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS +00F8..00FF ; Changes_When_Titlecased # L& [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS +0101 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH MACRON +0103 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH BREVE +0105 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH OGONEK +0107 ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH ACUTE +0109 ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH CIRCUMFLEX +010B ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH DOT ABOVE +010D ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH CARON +010F ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH CARON +0111 ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH STROKE +0113 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH MACRON +0115 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH BREVE +0117 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH DOT ABOVE +0119 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH OGONEK +011B ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CARON +011D ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH CIRCUMFLEX +011F ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH BREVE +0121 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH DOT ABOVE +0123 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH CEDILLA +0125 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH CIRCUMFLEX +0127 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH STROKE +0129 ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH TILDE +012B ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH MACRON +012D ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH BREVE +012F ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH OGONEK +0131 ; Changes_When_Titlecased # L& LATIN SMALL LETTER DOTLESS I +0133 ; Changes_When_Titlecased # L& LATIN SMALL LIGATURE IJ +0135 ; Changes_When_Titlecased # L& LATIN SMALL LETTER J WITH CIRCUMFLEX +0137 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH CEDILLA +013A ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH ACUTE +013C ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH CEDILLA +013E ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH CARON +0140 ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH MIDDLE DOT +0142 ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH STROKE +0144 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH ACUTE +0146 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH CEDILLA +0148..0149 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014B ; Changes_When_Titlecased # L& LATIN SMALL LETTER ENG +014D ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH MACRON +014F ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH BREVE +0151 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH DOUBLE ACUTE +0153 ; Changes_When_Titlecased # L& LATIN SMALL LIGATURE OE +0155 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH ACUTE +0157 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH CEDILLA +0159 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH CARON +015B ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH ACUTE +015D ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH CIRCUMFLEX +015F ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH CEDILLA +0161 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH CARON +0163 ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH CEDILLA +0165 ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH CARON +0167 ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH STROKE +0169 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH TILDE +016B ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH MACRON +016D ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH BREVE +016F ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH RING ABOVE +0171 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DOUBLE ACUTE +0173 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH OGONEK +0175 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH CIRCUMFLEX +0177 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH CIRCUMFLEX +017A ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH ACUTE +017C ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH DOT ABOVE +017E..0180 ; Changes_When_Titlecased # L& [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE +0183 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH TOPBAR +0185 ; Changes_When_Titlecased # L& LATIN SMALL LETTER TONE SIX +0188 ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH HOOK +018C ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH TOPBAR +0192 ; Changes_When_Titlecased # L& LATIN SMALL LETTER F WITH HOOK +0195 ; Changes_When_Titlecased # L& LATIN SMALL LETTER HV +0199..019A ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER L WITH BAR +019E ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH LONG RIGHT LEG +01A1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HORN +01A3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER OI +01A5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH HOOK +01A8 ; Changes_When_Titlecased # L& LATIN SMALL LETTER TONE TWO +01AD ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH HOOK +01B0 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HORN +01B4 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH HOOK +01B6 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH STROKE +01B9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER EZH REVERSED +01BD ; Changes_When_Titlecased # L& LATIN SMALL LETTER TONE FIVE +01BF ; Changes_When_Titlecased # L& LATIN LETTER WYNN +01C4 ; Changes_When_Titlecased # L& LATIN CAPITAL LETTER DZ WITH CARON +01C6..01C7 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER DZ WITH CARON..LATIN CAPITAL LETTER LJ +01C9..01CA ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER LJ..LATIN CAPITAL LETTER NJ +01CC ; Changes_When_Titlecased # L& LATIN SMALL LETTER NJ +01CE ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH CARON +01D0 ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH CARON +01D2 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH CARON +01D4 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH CARON +01D6 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D8 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01DA ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01DC..01DD ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E +01DF ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01E1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON +01E3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER AE WITH MACRON +01E5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH STROKE +01E7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH CARON +01E9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH CARON +01EB ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH OGONEK +01ED ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH OGONEK AND MACRON +01EF..01F1 ; Changes_When_Titlecased # L& [3] LATIN SMALL LETTER EZH WITH CARON..LATIN CAPITAL LETTER DZ +01F3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER DZ +01F5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH ACUTE +01F9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH GRAVE +01FB ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +01FD ; Changes_When_Titlecased # L& LATIN SMALL LETTER AE WITH ACUTE +01FF ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH STROKE AND ACUTE +0201 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH DOUBLE GRAVE +0203 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH INVERTED BREVE +0205 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH DOUBLE GRAVE +0207 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH INVERTED BREVE +0209 ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH DOUBLE GRAVE +020B ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH INVERTED BREVE +020D ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH DOUBLE GRAVE +020F ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH INVERTED BREVE +0211 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH DOUBLE GRAVE +0213 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH INVERTED BREVE +0215 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DOUBLE GRAVE +0217 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH INVERTED BREVE +0219 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH COMMA BELOW +021B ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH COMMA BELOW +021D ; Changes_When_Titlecased # L& LATIN SMALL LETTER YOGH +021F ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH CARON +0223 ; Changes_When_Titlecased # L& LATIN SMALL LETTER OU +0225 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH HOOK +0227 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH DOT ABOVE +0229 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CEDILLA +022B ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022D ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH TILDE AND MACRON +022F ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH DOT ABOVE +0231 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON +0233 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH MACRON +023C ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH STROKE +023F..0240 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL +0242 ; Changes_When_Titlecased # L& LATIN SMALL LETTER GLOTTAL STOP +0247 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH STROKE +0249 ; Changes_When_Titlecased # L& LATIN SMALL LETTER J WITH STROKE +024B ; Changes_When_Titlecased # L& LATIN SMALL LETTER Q WITH HOOK TAIL +024D ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH STROKE +024F..0254 ; Changes_When_Titlecased # L& [6] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER OPEN O +0256..0257 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK +0259 ; Changes_When_Titlecased # L& LATIN SMALL LETTER SCHWA +025B ; Changes_When_Titlecased # L& LATIN SMALL LETTER OPEN E +0260 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH HOOK +0263 ; Changes_When_Titlecased # L& LATIN SMALL LETTER GAMMA +0265..0266 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK +0268..0269 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +026B ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH MIDDLE TILDE +026F ; Changes_When_Titlecased # L& LATIN SMALL LETTER TURNED M +0271..0272 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK +0275 ; Changes_When_Titlecased # L& LATIN SMALL LETTER BARRED O +027D ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH TAIL +0280 ; Changes_When_Titlecased # L& LATIN LETTER SMALL CAPITAL R +0283 ; Changes_When_Titlecased # L& LATIN SMALL LETTER ESH +0288..028C ; Changes_When_Titlecased # L& [5] LATIN SMALL LETTER T WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED V +0292 ; Changes_When_Titlecased # L& LATIN SMALL LETTER EZH +0345 ; Changes_When_Titlecased # Mn COMBINING GREEK YPOGEGRAMMENI +0371 ; Changes_When_Titlecased # L& GREEK SMALL LETTER HETA +0373 ; Changes_When_Titlecased # L& GREEK SMALL LETTER ARCHAIC SAMPI +0377 ; Changes_When_Titlecased # L& GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037B..037D ; Changes_When_Titlecased # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0390 ; Changes_When_Titlecased # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +03AC..03CE ; Changes_When_Titlecased # L& [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS +03D0..03D1 ; Changes_When_Titlecased # L& [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL +03D5..03D7 ; Changes_When_Titlecased # L& [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL +03D9 ; Changes_When_Titlecased # L& GREEK SMALL LETTER ARCHAIC KOPPA +03DB ; Changes_When_Titlecased # L& GREEK SMALL LETTER STIGMA +03DD ; Changes_When_Titlecased # L& GREEK SMALL LETTER DIGAMMA +03DF ; Changes_When_Titlecased # L& GREEK SMALL LETTER KOPPA +03E1 ; Changes_When_Titlecased # L& GREEK SMALL LETTER SAMPI +03E3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER SHEI +03E5 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER FEI +03E7 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER KHEI +03E9 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER HORI +03EB ; Changes_When_Titlecased # L& COPTIC SMALL LETTER GANGIA +03ED ; Changes_When_Titlecased # L& COPTIC SMALL LETTER SHIMA +03EF..03F2 ; Changes_When_Titlecased # L& [4] COPTIC SMALL LETTER DEI..GREEK LUNATE SIGMA SYMBOL +03F5 ; Changes_When_Titlecased # L& GREEK LUNATE EPSILON SYMBOL +03F8 ; Changes_When_Titlecased # L& GREEK SMALL LETTER SHO +03FB ; Changes_When_Titlecased # L& GREEK SMALL LETTER SAN +0430..045F ; Changes_When_Titlecased # L& [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE +0461 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER OMEGA +0463 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER YAT +0465 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTIFIED E +0467 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER LITTLE YUS +0469 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS +046B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BIG YUS +046D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTIFIED BIG YUS +046F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KSI +0471 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER PSI +0473 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER FITA +0475 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IZHITSA +0477 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0479 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER UK +047B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ROUND OMEGA +047D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER OMEGA WITH TITLO +047F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER OT +0481 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOPPA +048B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SHORT I WITH TAIL +048D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SEMISOFT SIGN +048F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ER WITH TICK +0491 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER GHE WITH UPTURN +0493 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER GHE WITH STROKE +0495 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK +0497 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZHE WITH DESCENDER +0499 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZE WITH DESCENDER +049B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KA WITH DESCENDER +049D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE +049F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KA WITH STROKE +04A1 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BASHKIR KA +04A3 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EN WITH DESCENDER +04A5 ; Changes_When_Titlecased # L& CYRILLIC SMALL LIGATURE EN GHE +04A7 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK +04A9 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ABKHASIAN HA +04AB ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ES WITH DESCENDER +04AD ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER TE WITH DESCENDER +04AF ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER STRAIGHT U +04B1 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +04B3 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER HA WITH DESCENDER +04B5 ; Changes_When_Titlecased # L& CYRILLIC SMALL LIGATURE TE TSE +04B7 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER CHE WITH DESCENDER +04B9 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE +04BB ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SHHA +04BD ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ABKHASIAN CHE +04BF ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER +04C2 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZHE WITH BREVE +04C4 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KA WITH HOOK +04C6 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EL WITH TAIL +04C8 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EN WITH HOOK +04CA ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EN WITH TAIL +04CC ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KHAKASSIAN CHE +04CE..04CF ; Changes_When_Titlecased # L& [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA +04D1 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER A WITH BREVE +04D3 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER A WITH DIAERESIS +04D5 ; Changes_When_Titlecased # L& CYRILLIC SMALL LIGATURE A IE +04D7 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IE WITH BREVE +04D9 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SCHWA +04DB ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS +04DD ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DF ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04E1 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ABKHASIAN DZE +04E3 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER I WITH MACRON +04E5 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER I WITH DIAERESIS +04E7 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER O WITH DIAERESIS +04E9 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BARRED O +04EB ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS +04ED ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER E WITH DIAERESIS +04EF ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER U WITH MACRON +04F1 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER U WITH DIAERESIS +04F3 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F5 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F7 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER GHE WITH DESCENDER +04F9 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER YERU WITH DIAERESIS +04FB ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK +04FD ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER HA WITH HOOK +04FF ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER HA WITH STROKE +0501 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI DE +0503 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI DJE +0505 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI ZJE +0507 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI DZJE +0509 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI LJE +050B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI NJE +050D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI SJE +050F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER KOMI TJE +0511 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER REVERSED ZE +0513 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EL WITH HOOK +0515 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER LHA +0517 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER RHA +0519 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER YAE +051B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER QA +051D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER WE +051F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ALEUT KA +0521 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK +0523 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK +0525 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER PE WITH DESCENDER +0527 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0561..0587 ; Changes_When_Titlecased # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +1D79 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR G +1D7D ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH STROKE +1E01 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH RING BELOW +1E03 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH DOT ABOVE +1E05 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH DOT BELOW +1E07 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH LINE BELOW +1E09 ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH CEDILLA AND ACUTE +1E0B ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH DOT ABOVE +1E0D ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH DOT BELOW +1E0F ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH LINE BELOW +1E11 ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH CEDILLA +1E13 ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW +1E15 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH MACRON AND GRAVE +1E17 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH MACRON AND ACUTE +1E19 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW +1E1B ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH TILDE BELOW +1E1D ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CEDILLA AND BREVE +1E1F ; Changes_When_Titlecased # L& LATIN SMALL LETTER F WITH DOT ABOVE +1E21 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH MACRON +1E23 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH DOT ABOVE +1E25 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH DOT BELOW +1E27 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH DIAERESIS +1E29 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH CEDILLA +1E2B ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH BREVE BELOW +1E2D ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH TILDE BELOW +1E2F ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE +1E31 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH ACUTE +1E33 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH DOT BELOW +1E35 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH LINE BELOW +1E37 ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH DOT BELOW +1E39 ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH DOT BELOW AND MACRON +1E3B ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH LINE BELOW +1E3D ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW +1E3F ; Changes_When_Titlecased # L& LATIN SMALL LETTER M WITH ACUTE +1E41 ; Changes_When_Titlecased # L& LATIN SMALL LETTER M WITH DOT ABOVE +1E43 ; Changes_When_Titlecased # L& LATIN SMALL LETTER M WITH DOT BELOW +1E45 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH DOT ABOVE +1E47 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH DOT BELOW +1E49 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH LINE BELOW +1E4B ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW +1E4D ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH TILDE AND ACUTE +1E4F ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH TILDE AND DIAERESIS +1E51 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH MACRON AND GRAVE +1E53 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH MACRON AND ACUTE +1E55 ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH ACUTE +1E57 ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH DOT ABOVE +1E59 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH DOT ABOVE +1E5B ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH DOT BELOW +1E5D ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH DOT BELOW AND MACRON +1E5F ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH LINE BELOW +1E61 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH DOT ABOVE +1E63 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH DOT BELOW +1E65 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE +1E67 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH CARON AND DOT ABOVE +1E69 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6B ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH DOT ABOVE +1E6D ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH DOT BELOW +1E6F ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH LINE BELOW +1E71 ; Changes_When_Titlecased # L& LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW +1E73 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DIAERESIS BELOW +1E75 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH TILDE BELOW +1E77 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW +1E79 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH TILDE AND ACUTE +1E7B ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH MACRON AND DIAERESIS +1E7D ; Changes_When_Titlecased # L& LATIN SMALL LETTER V WITH TILDE +1E7F ; Changes_When_Titlecased # L& LATIN SMALL LETTER V WITH DOT BELOW +1E81 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH GRAVE +1E83 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH ACUTE +1E85 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH DIAERESIS +1E87 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH DOT ABOVE +1E89 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH DOT BELOW +1E8B ; Changes_When_Titlecased # L& LATIN SMALL LETTER X WITH DOT ABOVE +1E8D ; Changes_When_Titlecased # L& LATIN SMALL LETTER X WITH DIAERESIS +1E8F ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH DOT ABOVE +1E91 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH CIRCUMFLEX +1E93 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH DOT BELOW +1E95..1E9B ; Changes_When_Titlecased # L& [7] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE +1EA1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH DOT BELOW +1EA3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH HOOK ABOVE +1EA5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAB ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAD ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAF ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EB1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH DOT BELOW +1EBB ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH HOOK ABOVE +1EBD ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH TILDE +1EBF ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH HOOK ABOVE +1ECB ; Changes_When_Titlecased # L& LATIN SMALL LETTER I WITH DOT BELOW +1ECD ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH DOT BELOW +1ECF ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HOOK ABOVE +1ED1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDB ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HORN AND ACUTE +1EDD ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HORN AND GRAVE +1EDF ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +1EE1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HORN AND TILDE +1EE3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH HORN AND DOT BELOW +1EE5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH DOT BELOW +1EE7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HOOK ABOVE +1EE9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HORN AND ACUTE +1EEB ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HORN AND GRAVE +1EED ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +1EEF ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HORN AND TILDE +1EF1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH HORN AND DOT BELOW +1EF3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH GRAVE +1EF5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH DOT BELOW +1EF7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH HOOK ABOVE +1EF9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Y WITH TILDE +1EFB ; Changes_When_Titlecased # L& LATIN SMALL LETTER MIDDLE-WELSH LL +1EFD ; Changes_When_Titlecased # L& LATIN SMALL LETTER MIDDLE-WELSH V +1EFF..1F07 ; Changes_When_Titlecased # L& [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F10..1F15 ; Changes_When_Titlecased # L& [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F27 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI +1F30..1F37 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI +1F40..1F45 ; Changes_When_Titlecased # L& [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F60..1F67 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F70..1F7D ; Changes_When_Titlecased # L& [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1F87 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F90..1F97 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FA0..1FA7 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FB0..1FB4 ; Changes_When_Titlecased # L& [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FB7 ; Changes_When_Titlecased # L& [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FBE ; Changes_When_Titlecased # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; Changes_When_Titlecased # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FC7 ; Changes_When_Titlecased # L& [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FD0..1FD3 ; Changes_When_Titlecased # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FD7 ; Changes_When_Titlecased # L& [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FE0..1FE7 ; Changes_When_Titlecased # L& [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FF2..1FF4 ; Changes_When_Titlecased # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FF7 ; Changes_When_Titlecased # L& [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI +214E ; Changes_When_Titlecased # L& TURNED SMALL F +2170..217F ; Changes_When_Titlecased # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +2184 ; Changes_When_Titlecased # L& LATIN SMALL LETTER REVERSED C +24D0..24E9 ; Changes_When_Titlecased # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C30..2C5E ; Changes_When_Titlecased # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C61 ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH DOUBLE BAR +2C65..2C66 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE +2C68 ; Changes_When_Titlecased # L& LATIN SMALL LETTER H WITH DESCENDER +2C6A ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH DESCENDER +2C6C ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH DESCENDER +2C73 ; Changes_When_Titlecased # L& LATIN SMALL LETTER W WITH HOOK +2C76 ; Changes_When_Titlecased # L& LATIN SMALL LETTER HALF H +2C81 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER ALFA +2C83 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER VIDA +2C85 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER GAMMA +2C87 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER DALDA +2C89 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER EIE +2C8B ; Changes_When_Titlecased # L& COPTIC SMALL LETTER SOU +2C8D ; Changes_When_Titlecased # L& COPTIC SMALL LETTER ZATA +2C8F ; Changes_When_Titlecased # L& COPTIC SMALL LETTER HATE +2C91 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER THETHE +2C93 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER IAUDA +2C95 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER KAPA +2C97 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER LAULA +2C99 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER MI +2C9B ; Changes_When_Titlecased # L& COPTIC SMALL LETTER NI +2C9D ; Changes_When_Titlecased # L& COPTIC SMALL LETTER KSI +2C9F ; Changes_When_Titlecased # L& COPTIC SMALL LETTER O +2CA1 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER PI +2CA3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER RO +2CA5 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER SIMA +2CA7 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER TAU +2CA9 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER UA +2CAB ; Changes_When_Titlecased # L& COPTIC SMALL LETTER FI +2CAD ; Changes_When_Titlecased # L& COPTIC SMALL LETTER KHI +2CAF ; Changes_When_Titlecased # L& COPTIC SMALL LETTER PSI +2CB1 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OOU +2CB3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER DIALECT-P ALEF +2CB5 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC AIN +2CB7 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC EIE +2CB9 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER DIALECT-P KAPA +2CBB ; Changes_When_Titlecased # L& COPTIC SMALL LETTER DIALECT-P NI +2CBD ; Changes_When_Titlecased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC NI +2CBF ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC OOU +2CC1 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER SAMPI +2CC3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER CROSSED SHEI +2CC5 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC SHEI +2CC7 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC ESH +2CC9 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER AKHMIMIC KHEI +2CCB ; Changes_When_Titlecased # L& COPTIC SMALL LETTER DIALECT-P HORI +2CCD ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC HORI +2CCF ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC HA +2CD1 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER L-SHAPED HA +2CD3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC HEI +2CD5 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC HAT +2CD7 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC GANGIA +2CD9 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC DJA +2CDB ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD COPTIC SHIMA +2CDD ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD NUBIAN SHIMA +2CDF ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD NUBIAN NGI +2CE1 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD NUBIAN NYI +2CE3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER OLD NUBIAN WAU +2CEC ; Changes_When_Titlecased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI +2CEE ; Changes_When_Titlecased # L& COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF3 ; Changes_When_Titlecased # L& COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; Changes_When_Titlecased # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Changes_When_Titlecased # L& GEORGIAN SMALL LETTER YN +2D2D ; Changes_When_Titlecased # L& GEORGIAN SMALL LETTER AEN +A641 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZEMLYA +A643 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER DZELO +A645 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER REVERSED DZE +A647 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTA +A649 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER DJERV +A64B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER MONOGRAPH UK +A64D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BROAD OMEGA +A64F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER NEUTRAL YER +A651 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER YERU WITH BACK YER +A653 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTIFIED YAT +A655 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER REVERSED YU +A657 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTIFIED A +A659 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER CLOSED LITTLE YUS +A65B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BLENDED YUS +A65D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS +A65F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER YN +A661 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER REVERSED TSE +A663 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SOFT DE +A665 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SOFT EL +A667 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SOFT EM +A669 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER MONOCULAR O +A66B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER BINOCULAR O +A66D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A681 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER DWE +A683 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER DZWE +A685 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER ZHWE +A687 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER CCHE +A689 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER DZZE +A68B ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK +A68D ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER TWE +A68F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER TSWE +A691 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER TSSE +A693 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER TCHE +A695 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER HWE +A697 ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER SHWE +A723 ; Changes_When_Titlecased # L& LATIN SMALL LETTER EGYPTOLOGICAL ALEF +A725 ; Changes_When_Titlecased # L& LATIN SMALL LETTER EGYPTOLOGICAL AIN +A727 ; Changes_When_Titlecased # L& LATIN SMALL LETTER HENG +A729 ; Changes_When_Titlecased # L& LATIN SMALL LETTER TZ +A72B ; Changes_When_Titlecased # L& LATIN SMALL LETTER TRESILLO +A72D ; Changes_When_Titlecased # L& LATIN SMALL LETTER CUATRILLO +A72F ; Changes_When_Titlecased # L& LATIN SMALL LETTER CUATRILLO WITH COMMA +A733 ; Changes_When_Titlecased # L& LATIN SMALL LETTER AA +A735 ; Changes_When_Titlecased # L& LATIN SMALL LETTER AO +A737 ; Changes_When_Titlecased # L& LATIN SMALL LETTER AU +A739 ; Changes_When_Titlecased # L& LATIN SMALL LETTER AV +A73B ; Changes_When_Titlecased # L& LATIN SMALL LETTER AV WITH HORIZONTAL BAR +A73D ; Changes_When_Titlecased # L& LATIN SMALL LETTER AY +A73F ; Changes_When_Titlecased # L& LATIN SMALL LETTER REVERSED C WITH DOT +A741 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH STROKE +A743 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH DIAGONAL STROKE +A745 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE +A747 ; Changes_When_Titlecased # L& LATIN SMALL LETTER BROKEN L +A749 ; Changes_When_Titlecased # L& LATIN SMALL LETTER L WITH HIGH STROKE +A74B ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH LONG STROKE OVERLAY +A74D ; Changes_When_Titlecased # L& LATIN SMALL LETTER O WITH LOOP +A74F ; Changes_When_Titlecased # L& LATIN SMALL LETTER OO +A751 ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER +A753 ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH FLOURISH +A755 ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH SQUIRREL TAIL +A757 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER +A759 ; Changes_When_Titlecased # L& LATIN SMALL LETTER Q WITH DIAGONAL STROKE +A75B ; Changes_When_Titlecased # L& LATIN SMALL LETTER R ROTUNDA +A75D ; Changes_When_Titlecased # L& LATIN SMALL LETTER RUM ROTUNDA +A75F ; Changes_When_Titlecased # L& LATIN SMALL LETTER V WITH DIAGONAL STROKE +A761 ; Changes_When_Titlecased # L& LATIN SMALL LETTER VY +A763 ; Changes_When_Titlecased # L& LATIN SMALL LETTER VISIGOTHIC Z +A765 ; Changes_When_Titlecased # L& LATIN SMALL LETTER THORN WITH STROKE +A767 ; Changes_When_Titlecased # L& LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER +A769 ; Changes_When_Titlecased # L& LATIN SMALL LETTER VEND +A76B ; Changes_When_Titlecased # L& LATIN SMALL LETTER ET +A76D ; Changes_When_Titlecased # L& LATIN SMALL LETTER IS +A76F ; Changes_When_Titlecased # L& LATIN SMALL LETTER CON +A77A ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR D +A77C ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR F +A77F ; Changes_When_Titlecased # L& LATIN SMALL LETTER TURNED INSULAR G +A781 ; Changes_When_Titlecased # L& LATIN SMALL LETTER TURNED L +A783 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR R +A785 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR S +A787 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR T +A78C ; Changes_When_Titlecased # L& LATIN SMALL LETTER SALTILLO +A791 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH DESCENDER +A793 ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH BAR +A7A1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER G WITH OBLIQUE STROKE +A7A3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER K WITH OBLIQUE STROKE +A7A5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH OBLIQUE STROKE +A7A7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH OBLIQUE STROKE +A7A9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH OBLIQUE STROKE +FB00..FB06 ; Changes_When_Titlecased # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Changes_When_Titlecased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FF41..FF5A ; Changes_When_Titlecased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +10428..1044F ; Changes_When_Titlecased # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW + +# Total code points: 1099 + +# ================================================ + +# Derived Property: Changes_When_Casefolded (CWCF) +# Characters whose normalized forms are not stable under case folding. +# For more information, see D127 in Section 3.13, "Default Case Algorithms". +# Changes_When_Casefolded(X) is true when toCasefold(toNFD(X)) != toNFD(X) + +0041..005A ; Changes_When_Casefolded # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +00B5 ; Changes_When_Casefolded # L& MICRO SIGN +00C0..00D6 ; Changes_When_Casefolded # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00DF ; Changes_When_Casefolded # L& [8] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER SHARP S +0100 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH MACRON +0102 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH BREVE +0104 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH OGONEK +0106 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER C WITH ACUTE +0108 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER C WITH CIRCUMFLEX +010A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER C WITH DOT ABOVE +010C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER C WITH CARON +010E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH CARON +0110 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH STROKE +0112 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH MACRON +0114 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH BREVE +0116 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH DOT ABOVE +0118 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH OGONEK +011A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CARON +011C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH BREVE +0120 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH DOT ABOVE +0122 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH CEDILLA +0124 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0126 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH STROKE +0128 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH TILDE +012A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH MACRON +012C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH BREVE +012E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH OGONEK +0130 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH DOT ABOVE +0132 ; Changes_When_Casefolded # L& LATIN CAPITAL LIGATURE IJ +0134 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0136 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH CEDILLA +0139 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH ACUTE +013B ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH CEDILLA +013D ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH CARON +013F ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH MIDDLE DOT +0141 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH STROKE +0143 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH ACUTE +0145 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH CEDILLA +0147 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH CARON +0149..014A ; Changes_When_Casefolded # L& [2] LATIN SMALL LETTER N PRECEDED BY APOSTROPHE..LATIN CAPITAL LETTER ENG +014C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH MACRON +014E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH BREVE +0150 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0152 ; Changes_When_Casefolded # L& LATIN CAPITAL LIGATURE OE +0154 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH ACUTE +0156 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH CEDILLA +0158 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH CARON +015A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH ACUTE +015C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH CEDILLA +0160 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH CARON +0162 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH CEDILLA +0164 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH CARON +0166 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH STROKE +0168 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH TILDE +016A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH MACRON +016C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH BREVE +016E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH RING ABOVE +0170 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0172 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH OGONEK +0174 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0176 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0178..0179 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE +017B ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH DOT ABOVE +017D ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH CARON +017F ; Changes_When_Casefolded # L& LATIN SMALL LETTER LONG S +0181..0182 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR +0184 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER TONE SIX +0186..0187 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK +0189..018B ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR +018E..0191 ; Changes_When_Casefolded # L& [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK +0193..0194 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA +0196..0198 ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK +019C..019D ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK +019F..01A0 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN +01A2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER OI +01A4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER P WITH HOOK +01A6..01A7 ; Changes_When_Casefolded # L& [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO +01A9 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER ESH +01AC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH HOOK +01AE..01AF ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN +01B1..01B3 ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK +01B5 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH STROKE +01B7..01B8 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED +01BC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER TONE FIVE +01C4..01C5 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON +01C7..01C8 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER LJ..LATIN CAPITAL LETTER L WITH SMALL LETTER J +01CA..01CB ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER NJ..LATIN CAPITAL LETTER N WITH SMALL LETTER J +01CD ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH CARON +01CF ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH CARON +01D1 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH CARON +01D3 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH CARON +01D5 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01D7 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D9 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +01DB ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01DE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +01E0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +01E2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AE WITH MACRON +01E4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH STROKE +01E6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH CARON +01E8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH CARON +01EA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH OGONEK +01EC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +01EE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER EZH WITH CARON +01F1..01F2 ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER D WITH SMALL LETTER Z +01F4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH ACUTE +01F6..01F8 ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE +01FA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +01FC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AE WITH ACUTE +01FE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +0200 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH DOUBLE GRAVE +0202 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH INVERTED BREVE +0204 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH DOUBLE GRAVE +0206 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH INVERTED BREVE +0208 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH DOUBLE GRAVE +020A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH INVERTED BREVE +020C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH DOUBLE GRAVE +020E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH INVERTED BREVE +0210 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH DOUBLE GRAVE +0212 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH INVERTED BREVE +0214 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DOUBLE GRAVE +0216 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH INVERTED BREVE +0218 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH COMMA BELOW +021A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH COMMA BELOW +021C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER YOGH +021E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH CARON +0220 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0222 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER OU +0224 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH HOOK +0226 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH DOT ABOVE +0228 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CEDILLA +022A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +022C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH TILDE AND MACRON +022E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH DOT ABOVE +0230 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON +0232 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH MACRON +023A..023B ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE +023D..023E ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE +0241 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL STOP +0243..0246 ; Changes_When_Casefolded # L& [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE +0248 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER J WITH STROKE +024A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL +024C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH STROKE +024E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH STROKE +0345 ; Changes_When_Casefolded # Mn COMBINING GREEK YPOGEGRAMMENI +0370 ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER HETA +0372 ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER ARCHAIC SAMPI +0376 ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +0386 ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Changes_When_Casefolded # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..038F ; Changes_When_Casefolded # L& [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS +0391..03A1 ; Changes_When_Casefolded # L& [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO +03A3..03AB ; Changes_When_Casefolded # L& [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03C2 ; Changes_When_Casefolded # L& GREEK SMALL LETTER FINAL SIGMA +03CF..03D1 ; Changes_When_Casefolded # L& [3] GREEK CAPITAL KAI SYMBOL..GREEK THETA SYMBOL +03D5..03D6 ; Changes_When_Casefolded # L& [2] GREEK PHI SYMBOL..GREEK PI SYMBOL +03D8 ; Changes_When_Casefolded # L& GREEK LETTER ARCHAIC KOPPA +03DA ; Changes_When_Casefolded # L& GREEK LETTER STIGMA +03DC ; Changes_When_Casefolded # L& GREEK LETTER DIGAMMA +03DE ; Changes_When_Casefolded # L& GREEK LETTER KOPPA +03E0 ; Changes_When_Casefolded # L& GREEK LETTER SAMPI +03E2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER SHEI +03E4 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER FEI +03E6 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER KHEI +03E8 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER HORI +03EA ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER GANGIA +03EC ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER SHIMA +03EE ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER DEI +03F0..03F1 ; Changes_When_Casefolded # L& [2] GREEK KAPPA SYMBOL..GREEK RHO SYMBOL +03F4..03F5 ; Changes_When_Casefolded # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL +03F7 ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER SHO +03F9..03FA ; Changes_When_Casefolded # L& [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN +03FD..042F ; Changes_When_Casefolded # L& [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA +0460 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER OMEGA +0462 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER YAT +0464 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTIFIED E +0466 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER LITTLE YUS +0468 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS +046A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BIG YUS +046C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS +046E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KSI +0470 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER PSI +0472 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER FITA +0474 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IZHITSA +0476 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0478 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER UK +047A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ROUND OMEGA +047C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER OMEGA WITH TITLO +047E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER OT +0480 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOPPA +048A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +048C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SEMISOFT SIGN +048E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ER WITH TICK +0490 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0492 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE +0494 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +0496 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +0498 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +049A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KA WITH DESCENDER +049C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +049E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KA WITH STROKE +04A0 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BASHKIR KA +04A2 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EN WITH DESCENDER +04A4 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LIGATURE EN GHE +04A6 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +04A8 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ABKHASIAN HA +04AA ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ES WITH DESCENDER +04AC ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER TE WITH DESCENDER +04AE ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER STRAIGHT U +04B0 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +04B2 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER HA WITH DESCENDER +04B4 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LIGATURE TE TSE +04B6 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +04B8 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +04BA ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SHHA +04BC ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE +04BE ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +04C0..04C1 ; Changes_When_Casefolded # L& [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE +04C3 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KA WITH HOOK +04C5 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EL WITH TAIL +04C7 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EN WITH HOOK +04C9 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EN WITH TAIL +04CB ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +04CD ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EM WITH TAIL +04D0 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER A WITH BREVE +04D2 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER A WITH DIAERESIS +04D4 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LIGATURE A IE +04D6 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IE WITH BREVE +04D8 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SCHWA +04DA ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS +04DC ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DE ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04E0 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ABKHASIAN DZE +04E2 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER I WITH MACRON +04E4 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER I WITH DIAERESIS +04E6 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER O WITH DIAERESIS +04E8 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BARRED O +04EA ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS +04EC ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER E WITH DIAERESIS +04EE ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER U WITH MACRON +04F0 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F2 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F4 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F6 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +04F8 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04FA ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK +04FC ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER HA WITH HOOK +04FE ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER HA WITH STROKE +0500 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI DE +0502 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI DJE +0504 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI ZJE +0506 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI DZJE +0508 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI LJE +050A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI NJE +050C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI SJE +050E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER KOMI TJE +0510 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER REVERSED ZE +0512 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EL WITH HOOK +0514 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER LHA +0516 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER RHA +0518 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER YAE +051A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER QA +051C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER WE +051E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ALEUT KA +0520 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0522 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0524 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0526 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0531..0556 ; Changes_When_Casefolded # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0587 ; Changes_When_Casefolded # L& ARMENIAN SMALL LIGATURE ECH YIWN +10A0..10C5 ; Changes_When_Casefolded # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Changes_When_Casefolded # L& GEORGIAN CAPITAL LETTER YN +10CD ; Changes_When_Casefolded # L& GEORGIAN CAPITAL LETTER AEN +1E00 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH RING BELOW +1E02 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER B WITH DOT ABOVE +1E04 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER B WITH DOT BELOW +1E06 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER B WITH LINE BELOW +1E08 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +1E0A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH DOT BELOW +1E0E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH LINE BELOW +1E10 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH CEDILLA +1E12 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +1E14 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +1E16 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +1E18 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +1E1A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH TILDE BELOW +1E1C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +1E1E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER F WITH DOT ABOVE +1E20 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH MACRON +1E22 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH DOT ABOVE +1E24 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH DOT BELOW +1E26 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH DIAERESIS +1E28 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH CEDILLA +1E2A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH BREVE BELOW +1E2C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH TILDE BELOW +1E2E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +1E30 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH ACUTE +1E32 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH DOT BELOW +1E34 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH LINE BELOW +1E36 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH DOT BELOW +1E38 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +1E3A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH LINE BELOW +1E3C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +1E3E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER M WITH ACUTE +1E40 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER M WITH DOT ABOVE +1E42 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER M WITH DOT BELOW +1E44 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH DOT ABOVE +1E46 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH DOT BELOW +1E48 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH LINE BELOW +1E4A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +1E4C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +1E4E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +1E50 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +1E52 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +1E54 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER P WITH ACUTE +1E56 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER P WITH DOT ABOVE +1E58 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH DOT ABOVE +1E5A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH DOT BELOW +1E5C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +1E5E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH LINE BELOW +1E60 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH DOT ABOVE +1E62 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH DOT BELOW +1E64 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +1E66 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +1E68 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH DOT BELOW +1E6E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH LINE BELOW +1E70 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +1E72 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +1E74 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH TILDE BELOW +1E76 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +1E78 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +1E7A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +1E7C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER V WITH TILDE +1E7E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER V WITH DOT BELOW +1E80 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH GRAVE +1E82 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH ACUTE +1E84 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH DIAERESIS +1E86 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH DOT ABOVE +1E88 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH DOT BELOW +1E8A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER X WITH DOT ABOVE +1E8C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER X WITH DIAERESIS +1E8E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH DOT ABOVE +1E90 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +1E92 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH DOT BELOW +1E94 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH LINE BELOW +1E9A..1E9B ; Changes_When_Casefolded # L& [2] LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE +1E9E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER SHARP S +1EA0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH DOT BELOW +1EA2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EA4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EAC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EB2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +1EB8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH DOT BELOW +1EBA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EBC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH TILDE +1EBE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH HOOK ABOVE +1ECA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER I WITH DOT BELOW +1ECC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH DOT BELOW +1ECE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH HOOK ABOVE +1ED0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EDC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EE0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EE2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +1EE4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH DOT BELOW +1EE6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EE8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EEA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EEC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EEE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EF0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH GRAVE +1EF4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH DOT BELOW +1EF6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH HOOK ABOVE +1EF8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH TILDE +1EFA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Y WITH LOOP +1F08..1F0F ; Changes_When_Casefolded # L& [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F18..1F1D ; Changes_When_Casefolded # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F28..1F2F ; Changes_When_Casefolded # L& [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI +1F38..1F3F ; Changes_When_Casefolded # L& [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI +1F48..1F4D ; Changes_When_Casefolded # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F59 ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F ; Changes_When_Casefolded # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F68..1F6F ; Changes_When_Casefolded # L& [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F80..1FAF ; Changes_When_Casefolded # L& [48] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FB2..1FB4 ; Changes_When_Casefolded # L& [3] GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB7..1FBC ; Changes_When_Casefolded # L& [6] GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FC2..1FC4 ; Changes_When_Casefolded # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC7..1FCC ; Changes_When_Casefolded # L& [6] GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD8..1FDB ; Changes_When_Casefolded # L& [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE8..1FEC ; Changes_When_Casefolded # L& [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; Changes_When_Casefolded # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF7..1FFC ; Changes_When_Casefolded # L& [6] GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2126 ; Changes_When_Casefolded # L& OHM SIGN +212A..212B ; Changes_When_Casefolded # L& [2] KELVIN SIGN..ANGSTROM SIGN +2132 ; Changes_When_Casefolded # L& TURNED CAPITAL F +2160..216F ; Changes_When_Casefolded # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND +2183 ; Changes_When_Casefolded # L& ROMAN NUMERAL REVERSED ONE HUNDRED +24B6..24CF ; Changes_When_Casefolded # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z +2C00..2C2E ; Changes_When_Casefolded # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C60 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR +2C62..2C64 ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL +2C67 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH DESCENDER +2C69 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH DESCENDER +2C6B ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Z WITH DESCENDER +2C6D..2C70 ; Changes_When_Casefolded # L& [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA +2C72 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER W WITH HOOK +2C75 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER HALF H +2C7E..2C80 ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA +2C82 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER VIDA +2C84 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER GAMMA +2C86 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER DALDA +2C88 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER EIE +2C8A ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER SOU +2C8C ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER ZATA +2C8E ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER HATE +2C90 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER THETHE +2C92 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER IAUDA +2C94 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER KAPA +2C96 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER LAULA +2C98 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER MI +2C9A ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER NI +2C9C ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER KSI +2C9E ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER O +2CA0 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER PI +2CA2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER RO +2CA4 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER SIMA +2CA6 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER TAU +2CA8 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER UA +2CAA ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER FI +2CAC ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER KHI +2CAE ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER PSI +2CB0 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OOU +2CB2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER DIALECT-P ALEF +2CB4 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC AIN +2CB6 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE +2CB8 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER DIALECT-P KAPA +2CBA ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER DIALECT-P NI +2CBC ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI +2CBE ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC OOU +2CC0 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER SAMPI +2CC2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER CROSSED SHEI +2CC4 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC SHEI +2CC6 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC ESH +2CC8 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER AKHMIMIC KHEI +2CCA ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER DIALECT-P HORI +2CCC ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC HORI +2CCE ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC HA +2CD0 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER L-SHAPED HA +2CD2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC HEI +2CD4 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC HAT +2CD6 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC GANGIA +2CD8 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC DJA +2CDA ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD COPTIC SHIMA +2CDC ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD NUBIAN SHIMA +2CDE ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD NUBIAN NGI +2CE0 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD NUBIAN NYI +2CE2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CEB ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CED ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CF2 ; Changes_When_Casefolded # L& COPTIC CAPITAL LETTER BOHAIRIC KHEI +A640 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ZEMLYA +A642 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER DZELO +A644 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER REVERSED DZE +A646 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTA +A648 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER DJERV +A64A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BROAD OMEGA +A64E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER NEUTRAL YER +A650 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A652 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTIFIED YAT +A654 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER REVERSED YU +A656 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTIFIED A +A658 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A65A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BLENDED YUS +A65C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER YN +A660 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER REVERSED TSE +A662 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SOFT DE +A664 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SOFT EL +A666 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SOFT EM +A668 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER MONOCULAR O +A66A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER BINOCULAR O +A66C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A680 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER DWE +A682 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER DZWE +A684 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER ZHWE +A686 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER CCHE +A688 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER DZZE +A68A ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68C ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER TWE +A68E ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER TSWE +A690 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER TSSE +A692 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER TCHE +A694 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER HWE +A696 ; Changes_When_Casefolded # L& CYRILLIC CAPITAL LETTER SHWE +A722 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A724 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A726 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER HENG +A728 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER TZ +A72A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER TRESILLO +A72C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER CUATRILLO +A72E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A732 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AA +A734 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AO +A736 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AU +A738 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AV +A73A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER AY +A73E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER REVERSED C WITH DOT +A740 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH STROKE +A742 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A744 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A746 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER BROKEN L +A748 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER L WITH HIGH STROKE +A74A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER O WITH LOOP +A74E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER OO +A750 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A752 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER P WITH FLOURISH +A754 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A756 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A758 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A75A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R ROTUNDA +A75C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER RUM ROTUNDA +A75E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A760 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER VY +A762 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER VISIGOTHIC Z +A764 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER THORN WITH STROKE +A766 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A768 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER VEND +A76A ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER ET +A76C ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER IS +A76E ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER CON +A779 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER INSULAR D +A77B ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER INSULAR F +A77D..A77E ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G +A780 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER TURNED L +A782 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER INSULAR R +A784 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER INSULAR S +A786 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER INSULAR T +A78B ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER SALTILLO +A78D ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER TURNED H +A790 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH DESCENDER +A792 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER C WITH BAR +A7A0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7AA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER H WITH HOOK +FB00..FB06 ; Changes_When_Casefolded # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Changes_When_Casefolded # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +10400..10427 ; Changes_When_Casefolded # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW + +# Total code points: 1107 + +# ================================================ + +# Derived Property: Changes_When_Casemapped (CWCM) +# Characters whose normalized forms are not stable under case mapping. +# For more information, see D128 in Section 3.13, "Default Case Algorithms". +# Changes_When_Casemapped(X) is true when CWL(X), or CWT(X), or CWU(X) + +0041..005A ; Changes_When_Casemapped # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; Changes_When_Casemapped # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00B5 ; Changes_When_Casemapped # L& MICRO SIGN +00C0..00D6 ; Changes_When_Casemapped # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; Changes_When_Casemapped # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..0137 ; Changes_When_Casemapped # L& [64] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER K WITH CEDILLA +0139..018C ; Changes_When_Casemapped # L& [84] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER D WITH TOPBAR +018E..019A ; Changes_When_Casemapped # L& [13] LATIN CAPITAL LETTER REVERSED E..LATIN SMALL LETTER L WITH BAR +019C..01A9 ; Changes_When_Casemapped # L& [14] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER ESH +01AC..01B9 ; Changes_When_Casemapped # L& [14] LATIN CAPITAL LETTER T WITH HOOK..LATIN SMALL LETTER EZH REVERSED +01BC..01BD ; Changes_When_Casemapped # L& [2] LATIN CAPITAL LETTER TONE FIVE..LATIN SMALL LETTER TONE FIVE +01BF ; Changes_When_Casemapped # L& LATIN LETTER WYNN +01C4..0220 ; Changes_When_Casemapped # L& [93] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0222..0233 ; Changes_When_Casemapped # L& [18] LATIN CAPITAL LETTER OU..LATIN SMALL LETTER Y WITH MACRON +023A..0254 ; Changes_When_Casemapped # L& [27] LATIN CAPITAL LETTER A WITH STROKE..LATIN SMALL LETTER OPEN O +0256..0257 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK +0259 ; Changes_When_Casemapped # L& LATIN SMALL LETTER SCHWA +025B ; Changes_When_Casemapped # L& LATIN SMALL LETTER OPEN E +0260 ; Changes_When_Casemapped # L& LATIN SMALL LETTER G WITH HOOK +0263 ; Changes_When_Casemapped # L& LATIN SMALL LETTER GAMMA +0265..0266 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK +0268..0269 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +026B ; Changes_When_Casemapped # L& LATIN SMALL LETTER L WITH MIDDLE TILDE +026F ; Changes_When_Casemapped # L& LATIN SMALL LETTER TURNED M +0271..0272 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK +0275 ; Changes_When_Casemapped # L& LATIN SMALL LETTER BARRED O +027D ; Changes_When_Casemapped # L& LATIN SMALL LETTER R WITH TAIL +0280 ; Changes_When_Casemapped # L& LATIN LETTER SMALL CAPITAL R +0283 ; Changes_When_Casemapped # L& LATIN SMALL LETTER ESH +0288..028C ; Changes_When_Casemapped # L& [5] LATIN SMALL LETTER T WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED V +0292 ; Changes_When_Casemapped # L& LATIN SMALL LETTER EZH +0345 ; Changes_When_Casemapped # Mn COMBINING GREEK YPOGEGRAMMENI +0370..0373 ; Changes_When_Casemapped # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0376..0377 ; Changes_When_Casemapped # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037B..037D ; Changes_When_Casemapped # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; Changes_When_Casemapped # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Changes_When_Casemapped # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Changes_When_Casemapped # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; Changes_When_Casemapped # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03D1 ; Changes_When_Casemapped # L& [47] GREEK CAPITAL LETTER SIGMA..GREEK THETA SYMBOL +03D5..03F2 ; Changes_When_Casemapped # L& [30] GREEK PHI SYMBOL..GREEK LUNATE SIGMA SYMBOL +03F4..03F5 ; Changes_When_Casemapped # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL +03F7..03FB ; Changes_When_Casemapped # L& [5] GREEK CAPITAL LETTER SHO..GREEK SMALL LETTER SAN +03FD..0481 ; Changes_When_Casemapped # L& [133] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC SMALL LETTER KOPPA +048A..0527 ; Changes_When_Casemapped # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; Changes_When_Casemapped # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0561..0587 ; Changes_When_Casemapped # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +10A0..10C5 ; Changes_When_Casemapped # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Changes_When_Casemapped # L& GEORGIAN CAPITAL LETTER YN +10CD ; Changes_When_Casemapped # L& GEORGIAN CAPITAL LETTER AEN +1D79 ; Changes_When_Casemapped # L& LATIN SMALL LETTER INSULAR G +1D7D ; Changes_When_Casemapped # L& LATIN SMALL LETTER P WITH STROKE +1E00..1E9B ; Changes_When_Casemapped # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE +1E9E ; Changes_When_Casemapped # L& LATIN CAPITAL LETTER SHARP S +1EA0..1F15 ; Changes_When_Casemapped # L& [118] LATIN CAPITAL LETTER A WITH DOT BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; Changes_When_Casemapped # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; Changes_When_Casemapped # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; Changes_When_Casemapped # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Changes_When_Casemapped # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; Changes_When_Casemapped # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Changes_When_Casemapped # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Changes_When_Casemapped # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; Changes_When_Casemapped # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; Changes_When_Casemapped # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; Changes_When_Casemapped # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; Changes_When_Casemapped # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; Changes_When_Casemapped # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; Changes_When_Casemapped # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; Changes_When_Casemapped # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; Changes_When_Casemapped # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; Changes_When_Casemapped # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; Changes_When_Casemapped # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; Changes_When_Casemapped # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2126 ; Changes_When_Casemapped # L& OHM SIGN +212A..212B ; Changes_When_Casemapped # L& [2] KELVIN SIGN..ANGSTROM SIGN +2132 ; Changes_When_Casemapped # L& TURNED CAPITAL F +214E ; Changes_When_Casemapped # L& TURNED SMALL F +2160..217F ; Changes_When_Casemapped # Nl [32] ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +2183..2184 ; Changes_When_Casemapped # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +24B6..24E9 ; Changes_When_Casemapped # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C00..2C2E ; Changes_When_Casemapped # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; Changes_When_Casemapped # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C70 ; Changes_When_Casemapped # L& [17] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN CAPITAL LETTER TURNED ALPHA +2C72..2C73 ; Changes_When_Casemapped # L& [2] LATIN CAPITAL LETTER W WITH HOOK..LATIN SMALL LETTER W WITH HOOK +2C75..2C76 ; Changes_When_Casemapped # L& [2] LATIN CAPITAL LETTER HALF H..LATIN SMALL LETTER HALF H +2C7E..2CE3 ; Changes_When_Casemapped # L& [102] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SMALL LETTER OLD NUBIAN WAU +2CEB..2CEE ; Changes_When_Casemapped # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF2..2CF3 ; Changes_When_Casemapped # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; Changes_When_Casemapped # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Changes_When_Casemapped # L& GEORGIAN SMALL LETTER YN +2D2D ; Changes_When_Casemapped # L& GEORGIAN SMALL LETTER AEN +A640..A66D ; Changes_When_Casemapped # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A680..A697 ; Changes_When_Casemapped # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A722..A72F ; Changes_When_Casemapped # L& [14] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CUATRILLO WITH COMMA +A732..A76F ; Changes_When_Casemapped # L& [62] LATIN CAPITAL LETTER AA..LATIN SMALL LETTER CON +A779..A787 ; Changes_When_Casemapped # L& [15] LATIN CAPITAL LETTER INSULAR D..LATIN SMALL LETTER INSULAR T +A78B..A78D ; Changes_When_Casemapped # L& [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H +A790..A793 ; Changes_When_Casemapped # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; Changes_When_Casemapped # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +FB00..FB06 ; Changes_When_Casemapped # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Changes_When_Casemapped # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FF21..FF3A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +10400..1044F ; Changes_When_Casemapped # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + +# Total code points: 2138 + +# ================================================ + +# Derived Property: ID_Start +# Characters that can start an identifier. +# Generated from: +# Lu + Ll + Lt + Lm + Lo + Nl +# + Other_ID_Start +# - Pattern_Syntax +# - Pattern_White_Space +# NOTE: See UAX #31 for more information + +0041..005A ; ID_Start # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; ID_Start # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; ID_Start # Lo FEMININE ORDINAL INDICATOR +00B5 ; ID_Start # L& MICRO SIGN +00BA ; ID_Start # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; ID_Start # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; ID_Start # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; ID_Start # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; ID_Start # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; ID_Start # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; ID_Start # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; ID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; ID_Start # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; ID_Start # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02C1 ; ID_Start # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C6..02D1 ; ID_Start # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02E0..02E4 ; ID_Start # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02EC ; ID_Start # Lm MODIFIER LETTER VOICING +02EE ; ID_Start # Lm MODIFIER LETTER DOUBLE APOSTROPHE +0370..0373 ; ID_Start # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; ID_Start # Lm GREEK NUMERAL SIGN +0376..0377 ; ID_Start # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; ID_Start # Lm GREEK YPOGEGRAMMENI +037B..037D ; ID_Start # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; ID_Start # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; ID_Start # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; ID_Start # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; ID_Start # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; ID_Start # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F7..0481 ; ID_Start # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +048A..0527 ; ID_Start # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; ID_Start # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; ID_Start # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0561..0587 ; ID_Start # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +05D0..05EA ; ID_Start # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; ID_Start # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +0620..063F ; ID_Start # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; ID_Start # Lm ARABIC TATWEEL +0641..064A ; ID_Start # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +066E..066F ; ID_Start # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0671..06D3 ; ID_Start # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D5 ; ID_Start # Lo ARABIC LETTER AE +06E5..06E6 ; ID_Start # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06EE..06EF ; ID_Start # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06FA..06FC ; ID_Start # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FF ; ID_Start # Lo ARABIC LETTER HEH WITH INVERTED V +0710 ; ID_Start # Lo SYRIAC LETTER ALAPH +0712..072F ; ID_Start # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +074D..07A5 ; ID_Start # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU +07B1 ; ID_Start # Lo THAANA LETTER NAA +07CA..07EA ; ID_Start # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07F4..07F5 ; ID_Start # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07FA ; ID_Start # Lm NKO LAJANYALAN +0800..0815 ; ID_Start # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +081A ; ID_Start # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +0824 ; ID_Start # Lm SAMARITAN MODIFIER LETTER SHORT A +0828 ; ID_Start # Lm SAMARITAN MODIFIER LETTER I +0840..0858 ; ID_Start # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +08A0 ; ID_Start # Lo ARABIC LETTER BEH WITH SMALL V BELOW +08A2..08AC ; ID_Start # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +0904..0939 ; ID_Start # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093D ; ID_Start # Lo DEVANAGARI SIGN AVAGRAHA +0950 ; ID_Start # Lo DEVANAGARI OM +0958..0961 ; ID_Start # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0971 ; ID_Start # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..0977 ; ID_Start # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0979..097F ; ID_Start # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA +0985..098C ; ID_Start # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; ID_Start # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; ID_Start # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; ID_Start # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; ID_Start # Lo BENGALI LETTER LA +09B6..09B9 ; ID_Start # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BD ; ID_Start # Lo BENGALI SIGN AVAGRAHA +09CE ; ID_Start # Lo BENGALI LETTER KHANDA TA +09DC..09DD ; ID_Start # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; ID_Start # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09F0..09F1 ; ID_Start # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +0A05..0A0A ; ID_Start # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; ID_Start # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; ID_Start # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; ID_Start # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; ID_Start # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; ID_Start # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; ID_Start # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A59..0A5C ; ID_Start # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; ID_Start # Lo GURMUKHI LETTER FA +0A72..0A74 ; ID_Start # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A85..0A8D ; ID_Start # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; ID_Start # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; ID_Start # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; ID_Start # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; ID_Start # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; ID_Start # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABD ; ID_Start # Lo GUJARATI SIGN AVAGRAHA +0AD0 ; ID_Start # Lo GUJARATI OM +0AE0..0AE1 ; ID_Start # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0B05..0B0C ; ID_Start # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; ID_Start # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; ID_Start # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; ID_Start # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; ID_Start # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; ID_Start # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3D ; ID_Start # Lo ORIYA SIGN AVAGRAHA +0B5C..0B5D ; ID_Start # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; ID_Start # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B71 ; ID_Start # Lo ORIYA LETTER WA +0B83 ; ID_Start # Lo TAMIL SIGN VISARGA +0B85..0B8A ; ID_Start # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; ID_Start # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; ID_Start # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; ID_Start # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; ID_Start # Lo TAMIL LETTER JA +0B9E..0B9F ; ID_Start # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; ID_Start # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; ID_Start # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; ID_Start # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BD0 ; ID_Start # Lo TAMIL OM +0C05..0C0C ; ID_Start # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; ID_Start # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; ID_Start # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; ID_Start # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; ID_Start # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA +0C3D ; ID_Start # Lo TELUGU SIGN AVAGRAHA +0C58..0C59 ; ID_Start # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA +0C60..0C61 ; ID_Start # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C85..0C8C ; ID_Start # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; ID_Start # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; ID_Start # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; ID_Start # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; ID_Start # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBD ; ID_Start # Lo KANNADA SIGN AVAGRAHA +0CDE ; ID_Start # Lo KANNADA LETTER FA +0CE0..0CE1 ; ID_Start # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CF1..0CF2 ; ID_Start # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0D05..0D0C ; ID_Start # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; ID_Start # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; ID_Start # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3D ; ID_Start # Lo MALAYALAM SIGN AVAGRAHA +0D4E ; ID_Start # Lo MALAYALAM LETTER DOT REPH +0D60..0D61 ; ID_Start # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D7A..0D7F ; ID_Start # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D85..0D96 ; ID_Start # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; ID_Start # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; ID_Start # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; ID_Start # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; ID_Start # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0E01..0E30 ; ID_Start # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E32..0E33 ; ID_Start # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E40..0E45 ; ID_Start # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; ID_Start # Lm THAI CHARACTER MAIYAMOK +0E81..0E82 ; ID_Start # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; ID_Start # Lo LAO LETTER KHO TAM +0E87..0E88 ; ID_Start # Lo [2] LAO LETTER NGO..LAO LETTER CO +0E8A ; ID_Start # Lo LAO LETTER SO TAM +0E8D ; ID_Start # Lo LAO LETTER NYO +0E94..0E97 ; ID_Start # Lo [4] LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; ID_Start # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; ID_Start # Lo [3] LAO LETTER MO..LAO LETTER LO LING +0EA5 ; ID_Start # Lo LAO LETTER LO LOOT +0EA7 ; ID_Start # Lo LAO LETTER WO +0EAA..0EAB ; ID_Start # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB0 ; ID_Start # Lo [4] LAO LETTER O..LAO VOWEL SIGN A +0EB2..0EB3 ; ID_Start # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EBD ; ID_Start # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; ID_Start # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; ID_Start # Lm LAO KO LA +0EDC..0EDF ; ID_Start # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F00 ; ID_Start # Lo TIBETAN SYLLABLE OM +0F40..0F47 ; ID_Start # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; ID_Start # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F88..0F8C ; ID_Start # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +1000..102A ; ID_Start # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +103F ; ID_Start # Lo MYANMAR LETTER GREAT SA +1050..1055 ; ID_Start # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +105A..105D ; ID_Start # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +1061 ; ID_Start # Lo MYANMAR LETTER SGAW KAREN SHA +1065..1066 ; ID_Start # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +106E..1070 ; ID_Start # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1075..1081 ; ID_Start # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +108E ; ID_Start # Lo MYANMAR LETTER RUMAI PALAUNG FA +10A0..10C5 ; ID_Start # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; ID_Start # L& GEORGIAN CAPITAL LETTER YN +10CD ; ID_Start # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; ID_Start # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FC ; ID_Start # Lm MODIFIER LETTER GEORGIAN NAR +10FD..1248 ; ID_Start # Lo [332] GEORGIAN LETTER AEN..ETHIOPIC SYLLABLE QWA +124A..124D ; ID_Start # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; ID_Start # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; ID_Start # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; ID_Start # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; ID_Start # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; ID_Start # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; ID_Start # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; ID_Start # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; ID_Start # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; ID_Start # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; ID_Start # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; ID_Start # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; ID_Start # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; ID_Start # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +1380..138F ; ID_Start # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +13A0..13F4 ; ID_Start # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV +1401..166C ; ID_Start # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166F..167F ; ID_Start # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +1681..169A ; ID_Start # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +16A0..16EA ; ID_Start # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EE..16F0 ; ID_Start # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +1700..170C ; ID_Start # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA +170E..1711 ; ID_Start # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA +1720..1731 ; ID_Start # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1740..1751 ; ID_Start # Lo [18] BUHID LETTER A..BUHID LETTER HA +1760..176C ; ID_Start # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; ID_Start # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1780..17B3 ; ID_Start # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17D7 ; ID_Start # Lm KHMER SIGN LEK TOO +17DC ; ID_Start # Lo KHMER SIGN AVAKRAHASANYA +1820..1842 ; ID_Start # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; ID_Start # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1877 ; ID_Start # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +1880..18A8 ; ID_Start # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA +18AA ; ID_Start # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +18B0..18F5 ; ID_Start # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +1900..191C ; ID_Start # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +1950..196D ; ID_Start # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; ID_Start # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1980..19AB ; ID_Start # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19C1..19C7 ; ID_Start # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +1A00..1A16 ; ID_Start # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A20..1A54 ; ID_Start # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1AA7 ; ID_Start # Lm TAI THAM SIGN MAI YAMOK +1B05..1B33 ; ID_Start # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B45..1B4B ; ID_Start # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK +1B83..1BA0 ; ID_Start # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BAE..1BAF ; ID_Start # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BBA..1BE5 ; ID_Start # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U +1C00..1C23 ; ID_Start # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C4D..1C4F ; ID_Start # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +1C5A..1C77 ; ID_Start # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; ID_Start # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CE9..1CEC ; ID_Start # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CEE..1CF1 ; ID_Start # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA +1CF5..1CF6 ; ID_Start # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1D00..1D2B ; ID_Start # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; ID_Start # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; ID_Start # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; ID_Start # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; ID_Start # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; ID_Start # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1E00..1F15 ; ID_Start # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; ID_Start # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; ID_Start # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; ID_Start # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; ID_Start # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; ID_Start # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; ID_Start # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; ID_Start # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; ID_Start # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; ID_Start # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; ID_Start # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; ID_Start # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; ID_Start # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; ID_Start # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; ID_Start # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; ID_Start # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; ID_Start # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; ID_Start # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; ID_Start # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2071 ; ID_Start # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; ID_Start # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; ID_Start # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +2102 ; ID_Start # L& DOUBLE-STRUCK CAPITAL C +2107 ; ID_Start # L& EULER CONSTANT +210A..2113 ; ID_Start # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; ID_Start # L& DOUBLE-STRUCK CAPITAL N +2118 ; ID_Start # Sm SCRIPT CAPITAL P +2119..211D ; ID_Start # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; ID_Start # L& DOUBLE-STRUCK CAPITAL Z +2126 ; ID_Start # L& OHM SIGN +2128 ; ID_Start # L& BLACK-LETTER CAPITAL Z +212A..212D ; ID_Start # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212E ; ID_Start # So ESTIMATED SYMBOL +212F..2134 ; ID_Start # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2135..2138 ; ID_Start # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; ID_Start # L& INFORMATION SOURCE +213C..213F ; ID_Start # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; ID_Start # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; ID_Start # L& TURNED SMALL F +2160..2182 ; ID_Start # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; ID_Start # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; ID_Start # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2C00..2C2E ; ID_Start # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; ID_Start # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; ID_Start # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; ID_Start # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; ID_Start # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CEB..2CEE ; ID_Start # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF2..2CF3 ; ID_Start # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; ID_Start # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; ID_Start # L& GEORGIAN SMALL LETTER YN +2D2D ; ID_Start # L& GEORGIAN SMALL LETTER AEN +2D30..2D67 ; ID_Start # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; ID_Start # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D80..2D96 ; ID_Start # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; ID_Start # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; ID_Start # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; ID_Start # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; ID_Start # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +3005 ; ID_Start # Lm IDEOGRAPHIC ITERATION MARK +3006 ; ID_Start # Lo IDEOGRAPHIC CLOSING MARK +3007 ; ID_Start # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; ID_Start # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3031..3035 ; ID_Start # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3038..303A ; ID_Start # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; ID_Start # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; ID_Start # Lo MASU MARK +3041..3096 ; ID_Start # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +309B..309C ; ID_Start # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; ID_Start # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; ID_Start # Lo HIRAGANA DIGRAPH YORI +30A1..30FA ; ID_Start # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FC..30FE ; ID_Start # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +30FF ; ID_Start # Lo KATAKANA DIGRAPH KOTO +3105..312D ; ID_Start # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH +3131..318E ; ID_Start # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +31A0..31BA ; ID_Start # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY +31F0..31FF ; ID_Start # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3400..4DB5 ; ID_Start # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCC ; ID_Start # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC +A000..A014 ; ID_Start # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; ID_Start # Lm YI SYLLABLE WU +A016..A48C ; ID_Start # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A4D0..A4F7 ; ID_Start # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; ID_Start # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A500..A60B ; ID_Start # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; ID_Start # Lm VAI SYLLABLE LENGTHENER +A610..A61F ; ID_Start # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A62A..A62B ; ID_Start # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO +A640..A66D ; ID_Start # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; ID_Start # Lo CYRILLIC LETTER MULTIOCULAR O +A67F ; ID_Start # Lm CYRILLIC PAYEROK +A680..A697 ; ID_Start # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A6A0..A6E5 ; ID_Start # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; ID_Start # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A717..A71F ; ID_Start # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A722..A76F ; ID_Start # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; ID_Start # Lm MODIFIER LETTER US +A771..A787 ; ID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A788 ; ID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A78B..A78E ; ID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; ID_Start # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; ID_Start # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; ID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; ID_Start # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A801 ; ID_Start # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I +A803..A805 ; ID_Start # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A807..A80A ; ID_Start # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80C..A822 ; ID_Start # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A840..A873 ; ID_Start # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A882..A8B3 ; ID_Start # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8F2..A8F7 ; ID_Start # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8FB ; ID_Start # Lo DEVANAGARI HEADSTROKE +A90A..A925 ; ID_Start # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A930..A946 ; ID_Start # Lo [23] REJANG LETTER KA..REJANG LETTER A +A960..A97C ; ID_Start # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A984..A9B2 ; ID_Start # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9CF ; ID_Start # Lm JAVANESE PANGRANGKEP +AA00..AA28 ; ID_Start # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA40..AA42 ; ID_Start # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA44..AA4B ; ID_Start # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA60..AA6F ; ID_Start # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; ID_Start # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; ID_Start # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA7A ; ID_Start # Lo MYANMAR LETTER AITON RA +AA80..AAAF ; ID_Start # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB1 ; ID_Start # Lo TAI VIET VOWEL AA +AAB5..AAB6 ; ID_Start # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB9..AABD ; ID_Start # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AAC0 ; ID_Start # Lo TAI VIET TONE MAI NUENG +AAC2 ; ID_Start # Lo TAI VIET TONE MAI SONG +AADB..AADC ; ID_Start # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; ID_Start # Lm TAI VIET SYMBOL SAM +AAE0..AAEA ; ID_Start # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAF2 ; ID_Start # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; ID_Start # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AB01..AB06 ; ID_Start # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; ID_Start # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; ID_Start # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; ID_Start # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +ABC0..ABE2 ; ID_Start # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +AC00..D7A3 ; ID_Start # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; ID_Start # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; ID_Start # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +F900..FA6D ; ID_Start # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; ID_Start # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +FB00..FB06 ; ID_Start # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; ID_Start # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FB1D ; ID_Start # Lo HEBREW LETTER YOD WITH HIRIQ +FB1F..FB28 ; ID_Start # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB2A..FB36 ; ID_Start # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; ID_Start # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; ID_Start # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; ID_Start # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; ID_Start # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FBB1 ; ID_Start # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBD3..FD3D ; ID_Start # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD50..FD8F ; ID_Start # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; ID_Start # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDF0..FDFB ; ID_Start # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU +FE70..FE74 ; ID_Start # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM +FE76..FEFC ; ID_Start # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FF21..FF3A ; ID_Start # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF41..FF5A ; ID_Start # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +FF66..FF6F ; ID_Start # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; ID_Start # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71..FF9D ; ID_Start # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +FF9E..FF9F ; ID_Start # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFA0..FFBE ; ID_Start # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; ID_Start # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; ID_Start # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; ID_Start # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I +10000..1000B ; ID_Start # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; ID_Start # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; ID_Start # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; ID_Start # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; ID_Start # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; ID_Start # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; ID_Start # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +10140..10174 ; ID_Start # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +10280..1029C ; ID_Start # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X +102A0..102D0 ; ID_Start # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 +10300..1031E ; ID_Start # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU +10330..10340 ; ID_Start # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; ID_Start # Nl GOTHIC LETTER NINETY +10342..10349 ; ID_Start # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; ID_Start # Nl GOTHIC LETTER NINE HUNDRED +10380..1039D ; ID_Start # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +103A0..103C3 ; ID_Start # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; ID_Start # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D1..103D5 ; ID_Start # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED +10400..1044F ; ID_Start # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +10450..1049D ; ID_Start # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO +10800..10805 ; ID_Start # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; ID_Start # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; ID_Start # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; ID_Start # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; ID_Start # Lo CYPRIOT SYLLABLE ZA +1083F..10855 ; ID_Start # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW +10900..10915 ; ID_Start # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10920..10939 ; ID_Start # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10980..109B7 ; ID_Start # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109BE..109BF ; ID_Start # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +10A00 ; ID_Start # Lo KHAROSHTHI LETTER A +10A10..10A13 ; ID_Start # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; ID_Start # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A33 ; ID_Start # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A60..10A7C ; ID_Start # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10B00..10B35 ; ID_Start # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B40..10B55 ; ID_Start # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B60..10B72 ; ID_Start # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10C00..10C48 ; ID_Start # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +11003..11037 ; ID_Start # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11083..110AF ; ID_Start # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110D0..110E8 ; ID_Start # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +11103..11126 ; ID_Start # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +11183..111B2 ; ID_Start # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111C1..111C4 ; ID_Start # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +11680..116AA ; ID_Start # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +12000..1236E ; ID_Start # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +12400..12462 ; ID_Start # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +13000..1342E ; ID_Start # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +16800..16A38 ; ID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16F00..16F44 ; ID_Start # Lo [69] MIAO LETTER PA..MIAO LETTER HHA +16F50 ; ID_Start # Lo MIAO LETTER NASALIZATION +16F93..16F9F ; ID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1B000..1B001 ; ID_Start # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1D400..1D454 ; ID_Start # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; ID_Start # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; ID_Start # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; ID_Start # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; ID_Start # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; ID_Start # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; ID_Start # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; ID_Start # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; ID_Start # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; ID_Start # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; ID_Start # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; ID_Start # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; ID_Start # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; ID_Start # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; ID_Start # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; ID_Start # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; ID_Start # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; ID_Start # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; ID_Start # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; ID_Start # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; ID_Start # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; ID_Start # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; ID_Start # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; ID_Start # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; ID_Start # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; ID_Start # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; ID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; ID_Start # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; ID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; ID_Start # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1EE00..1EE03 ; ID_Start # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; ID_Start # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; ID_Start # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; ID_Start # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; ID_Start # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; ID_Start # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; ID_Start # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; ID_Start # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; ID_Start # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; ID_Start # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; ID_Start # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; ID_Start # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; ID_Start # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; ID_Start # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; ID_Start # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; ID_Start # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; ID_Start # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; ID_Start # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; ID_Start # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; ID_Start # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; ID_Start # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; ID_Start # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; ID_Start # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; ID_Start # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; ID_Start # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; ID_Start # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; ID_Start # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; ID_Start # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; ID_Start # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; ID_Start # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; ID_Start # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; ID_Start # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; ID_Start # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +20000..2A6D6 ; ID_Start # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; ID_Start # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +# Total code points: 101240 + +# ================================================ + +# Derived Property: ID_Continue +# Characters that can continue an identifier. +# Generated from: +# ID_Start +# + Mn + Mc + Nd + Pc +# + Other_ID_Continue +# - Pattern_Syntax +# - Pattern_White_Space +# NOTE: See UAX #31 for more information + +0030..0039 ; ID_Continue # Nd [10] DIGIT ZERO..DIGIT NINE +0041..005A ; ID_Continue # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +005F ; ID_Continue # Pc LOW LINE +0061..007A ; ID_Continue # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; ID_Continue # Lo FEMININE ORDINAL INDICATOR +00B5 ; ID_Continue # L& MICRO SIGN +00B7 ; ID_Continue # Po MIDDLE DOT +00BA ; ID_Continue # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; ID_Continue # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; ID_Continue # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; ID_Continue # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; ID_Continue # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; ID_Continue # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; ID_Continue # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; ID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; ID_Continue # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; ID_Continue # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02C1 ; ID_Continue # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C6..02D1 ; ID_Continue # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02E0..02E4 ; ID_Continue # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02EC ; ID_Continue # Lm MODIFIER LETTER VOICING +02EE ; ID_Continue # Lm MODIFIER LETTER DOUBLE APOSTROPHE +0300..036F ; ID_Continue # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X +0370..0373 ; ID_Continue # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; ID_Continue # Lm GREEK NUMERAL SIGN +0376..0377 ; ID_Continue # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; ID_Continue # Lm GREEK YPOGEGRAMMENI +037B..037D ; ID_Continue # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; ID_Continue # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0387 ; ID_Continue # Po GREEK ANO TELEIA +0388..038A ; ID_Continue # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; ID_Continue # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; ID_Continue # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; ID_Continue # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F7..0481 ; ID_Continue # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +0483..0487 ; ID_Continue # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE +048A..0527 ; ID_Continue # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; ID_Continue # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; ID_Continue # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0561..0587 ; ID_Continue # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +0591..05BD ; ID_Continue # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG +05BF ; ID_Continue # Mn HEBREW POINT RAFE +05C1..05C2 ; ID_Continue # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; ID_Continue # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; ID_Continue # Mn HEBREW POINT QAMATS QATAN +05D0..05EA ; ID_Continue # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; ID_Continue # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +0610..061A ; ID_Continue # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +0620..063F ; ID_Continue # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; ID_Continue # Lm ARABIC TATWEEL +0641..064A ; ID_Continue # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +064B..065F ; ID_Continue # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW +0660..0669 ; ID_Continue # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE +066E..066F ; ID_Continue # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0670 ; ID_Continue # Mn ARABIC LETTER SUPERSCRIPT ALEF +0671..06D3 ; ID_Continue # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D5 ; ID_Continue # Lo ARABIC LETTER AE +06D6..06DC ; ID_Continue # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06DF..06E4 ; ID_Continue # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA +06E5..06E6 ; ID_Continue # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06E7..06E8 ; ID_Continue # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06EA..06ED ; ID_Continue # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +06EE..06EF ; ID_Continue # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06F0..06F9 ; ID_Continue # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE +06FA..06FC ; ID_Continue # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FF ; ID_Continue # Lo ARABIC LETTER HEH WITH INVERTED V +0710 ; ID_Continue # Lo SYRIAC LETTER ALAPH +0711 ; ID_Continue # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0712..072F ; ID_Continue # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +0730..074A ; ID_Continue # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +074D..07A5 ; ID_Continue # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU +07A6..07B0 ; ID_Continue # Mn [11] THAANA ABAFILI..THAANA SUKUN +07B1 ; ID_Continue # Lo THAANA LETTER NAA +07C0..07C9 ; ID_Continue # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE +07CA..07EA ; ID_Continue # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07EB..07F3 ; ID_Continue # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +07F4..07F5 ; ID_Continue # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07FA ; ID_Continue # Lm NKO LAJANYALAN +0800..0815 ; ID_Continue # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +0816..0819 ; ID_Continue # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH +081A ; ID_Continue # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +081B..0823 ; ID_Continue # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0824 ; ID_Continue # Lm SAMARITAN MODIFIER LETTER SHORT A +0825..0827 ; ID_Continue # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0828 ; ID_Continue # Lm SAMARITAN MODIFIER LETTER I +0829..082D ; ID_Continue # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA +0840..0858 ; ID_Continue # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +0859..085B ; ID_Continue # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK +08A0 ; ID_Continue # Lo ARABIC LETTER BEH WITH SMALL V BELOW +08A2..08AC ; ID_Continue # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +08E4..08FE ; ID_Continue # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT +0900..0902 ; ID_Continue # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0903 ; ID_Continue # Mc DEVANAGARI SIGN VISARGA +0904..0939 ; ID_Continue # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093A ; ID_Continue # Mn DEVANAGARI VOWEL SIGN OE +093B ; ID_Continue # Mc DEVANAGARI VOWEL SIGN OOE +093C ; ID_Continue # Mn DEVANAGARI SIGN NUKTA +093D ; ID_Continue # Lo DEVANAGARI SIGN AVAGRAHA +093E..0940 ; ID_Continue # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; ID_Continue # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; ID_Continue # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094D ; ID_Continue # Mn DEVANAGARI SIGN VIRAMA +094E..094F ; ID_Continue # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0950 ; ID_Continue # Lo DEVANAGARI OM +0951..0957 ; ID_Continue # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE +0958..0961 ; ID_Continue # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0962..0963 ; ID_Continue # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0966..096F ; ID_Continue # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +0971 ; ID_Continue # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..0977 ; ID_Continue # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0979..097F ; ID_Continue # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA +0981 ; ID_Continue # Mn BENGALI SIGN CANDRABINDU +0982..0983 ; ID_Continue # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +0985..098C ; ID_Continue # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; ID_Continue # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; ID_Continue # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; ID_Continue # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; ID_Continue # Lo BENGALI LETTER LA +09B6..09B9 ; ID_Continue # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BC ; ID_Continue # Mn BENGALI SIGN NUKTA +09BD ; ID_Continue # Lo BENGALI SIGN AVAGRAHA +09BE..09C0 ; ID_Continue # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; ID_Continue # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; ID_Continue # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; ID_Continue # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09CD ; ID_Continue # Mn BENGALI SIGN VIRAMA +09CE ; ID_Continue # Lo BENGALI LETTER KHANDA TA +09D7 ; ID_Continue # Mc BENGALI AU LENGTH MARK +09DC..09DD ; ID_Continue # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; ID_Continue # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09E2..09E3 ; ID_Continue # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +09E6..09EF ; ID_Continue # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE +09F0..09F1 ; ID_Continue # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +0A01..0A02 ; ID_Continue # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A03 ; ID_Continue # Mc GURMUKHI SIGN VISARGA +0A05..0A0A ; ID_Continue # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; ID_Continue # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; ID_Continue # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; ID_Continue # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; ID_Continue # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; ID_Continue # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; ID_Continue # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3C ; ID_Continue # Mn GURMUKHI SIGN NUKTA +0A3E..0A40 ; ID_Continue # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; ID_Continue # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; ID_Continue # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; ID_Continue # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A51 ; ID_Continue # Mn GURMUKHI SIGN UDAAT +0A59..0A5C ; ID_Continue # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; ID_Continue # Lo GURMUKHI LETTER FA +0A66..0A6F ; ID_Continue # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE +0A70..0A71 ; ID_Continue # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A72..0A74 ; ID_Continue # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A75 ; ID_Continue # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; ID_Continue # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0A83 ; ID_Continue # Mc GUJARATI SIGN VISARGA +0A85..0A8D ; ID_Continue # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; ID_Continue # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; ID_Continue # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; ID_Continue # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; ID_Continue # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; ID_Continue # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABC ; ID_Continue # Mn GUJARATI SIGN NUKTA +0ABD ; ID_Continue # Lo GUJARATI SIGN AVAGRAHA +0ABE..0AC0 ; ID_Continue # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; ID_Continue # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; ID_Continue # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; ID_Continue # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; ID_Continue # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0ACD ; ID_Continue # Mn GUJARATI SIGN VIRAMA +0AD0 ; ID_Continue # Lo GUJARATI OM +0AE0..0AE1 ; ID_Continue # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0AE2..0AE3 ; ID_Continue # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0AE6..0AEF ; ID_Continue # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0B01 ; ID_Continue # Mn ORIYA SIGN CANDRABINDU +0B02..0B03 ; ID_Continue # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B05..0B0C ; ID_Continue # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; ID_Continue # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; ID_Continue # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; ID_Continue # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; ID_Continue # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; ID_Continue # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3C ; ID_Continue # Mn ORIYA SIGN NUKTA +0B3D ; ID_Continue # Lo ORIYA SIGN AVAGRAHA +0B3E ; ID_Continue # Mc ORIYA VOWEL SIGN AA +0B3F ; ID_Continue # Mn ORIYA VOWEL SIGN I +0B40 ; ID_Continue # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; ID_Continue # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; ID_Continue # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; ID_Continue # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B4D ; ID_Continue # Mn ORIYA SIGN VIRAMA +0B56 ; ID_Continue # Mn ORIYA AI LENGTH MARK +0B57 ; ID_Continue # Mc ORIYA AU LENGTH MARK +0B5C..0B5D ; ID_Continue # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; ID_Continue # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B62..0B63 ; ID_Continue # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B66..0B6F ; ID_Continue # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0B71 ; ID_Continue # Lo ORIYA LETTER WA +0B82 ; ID_Continue # Mn TAMIL SIGN ANUSVARA +0B83 ; ID_Continue # Lo TAMIL SIGN VISARGA +0B85..0B8A ; ID_Continue # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; ID_Continue # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; ID_Continue # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; ID_Continue # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; ID_Continue # Lo TAMIL LETTER JA +0B9E..0B9F ; ID_Continue # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; ID_Continue # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; ID_Continue # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; ID_Continue # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BBE..0BBF ; ID_Continue # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; ID_Continue # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; ID_Continue # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; ID_Continue # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; ID_Continue # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BCD ; ID_Continue # Mn TAMIL SIGN VIRAMA +0BD0 ; ID_Continue # Lo TAMIL OM +0BD7 ; ID_Continue # Mc TAMIL AU LENGTH MARK +0BE6..0BEF ; ID_Continue # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE +0C01..0C03 ; ID_Continue # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C05..0C0C ; ID_Continue # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; ID_Continue # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; ID_Continue # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; ID_Continue # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; ID_Continue # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA +0C3D ; ID_Continue # Lo TELUGU SIGN AVAGRAHA +0C3E..0C40 ; ID_Continue # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; ID_Continue # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; ID_Continue # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; ID_Continue # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; ID_Continue # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C58..0C59 ; ID_Continue # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA +0C60..0C61 ; ID_Continue # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C62..0C63 ; ID_Continue # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C66..0C6F ; ID_Continue # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0C82..0C83 ; ID_Continue # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C85..0C8C ; ID_Continue # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; ID_Continue # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; ID_Continue # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; ID_Continue # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; ID_Continue # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBC ; ID_Continue # Mn KANNADA SIGN NUKTA +0CBD ; ID_Continue # Lo KANNADA SIGN AVAGRAHA +0CBE ; ID_Continue # Mc KANNADA VOWEL SIGN AA +0CBF ; ID_Continue # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; ID_Continue # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; ID_Continue # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; ID_Continue # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; ID_Continue # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC..0CCD ; ID_Continue # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA +0CD5..0CD6 ; ID_Continue # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CDE ; ID_Continue # Lo KANNADA LETTER FA +0CE0..0CE1 ; ID_Continue # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE2..0CE3 ; ID_Continue # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0CE6..0CEF ; ID_Continue # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0CF1..0CF2 ; ID_Continue # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0D02..0D03 ; ID_Continue # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D05..0D0C ; ID_Continue # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; ID_Continue # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; ID_Continue # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3D ; ID_Continue # Lo MALAYALAM SIGN AVAGRAHA +0D3E..0D40 ; ID_Continue # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; ID_Continue # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; ID_Continue # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; ID_Continue # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D4D ; ID_Continue # Mn MALAYALAM SIGN VIRAMA +0D4E ; ID_Continue # Lo MALAYALAM LETTER DOT REPH +0D57 ; ID_Continue # Mc MALAYALAM AU LENGTH MARK +0D60..0D61 ; ID_Continue # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D62..0D63 ; ID_Continue # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D66..0D6F ; ID_Continue # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0D7A..0D7F ; ID_Continue # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D82..0D83 ; ID_Continue # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D85..0D96 ; ID_Continue # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; ID_Continue # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; ID_Continue # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; ID_Continue # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; ID_Continue # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DCA ; ID_Continue # Mn SINHALA SIGN AL-LAKUNA +0DCF..0DD1 ; ID_Continue # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; ID_Continue # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; ID_Continue # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; ID_Continue # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; ID_Continue # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E01..0E30 ; ID_Continue # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E31 ; ID_Continue # Mn THAI CHARACTER MAI HAN-AKAT +0E32..0E33 ; ID_Continue # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E34..0E3A ; ID_Continue # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E40..0E45 ; ID_Continue # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; ID_Continue # Lm THAI CHARACTER MAIYAMOK +0E47..0E4E ; ID_Continue # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN +0E50..0E59 ; ID_Continue # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE +0E81..0E82 ; ID_Continue # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; ID_Continue # Lo LAO LETTER KHO TAM +0E87..0E88 ; ID_Continue # Lo [2] LAO LETTER NGO..LAO LETTER CO +0E8A ; ID_Continue # Lo LAO LETTER SO TAM +0E8D ; ID_Continue # Lo LAO LETTER NYO +0E94..0E97 ; ID_Continue # Lo [4] LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; ID_Continue # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; ID_Continue # Lo [3] LAO LETTER MO..LAO LETTER LO LING +0EA5 ; ID_Continue # Lo LAO LETTER LO LOOT +0EA7 ; ID_Continue # Lo LAO LETTER WO +0EAA..0EAB ; ID_Continue # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB0 ; ID_Continue # Lo [4] LAO LETTER O..LAO VOWEL SIGN A +0EB1 ; ID_Continue # Mn LAO VOWEL SIGN MAI KAN +0EB2..0EB3 ; ID_Continue # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EB4..0EB9 ; ID_Continue # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; ID_Continue # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0EBD ; ID_Continue # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; ID_Continue # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; ID_Continue # Lm LAO KO LA +0EC8..0ECD ; ID_Continue # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA +0ED0..0ED9 ; ID_Continue # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE +0EDC..0EDF ; ID_Continue # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F00 ; ID_Continue # Lo TIBETAN SYLLABLE OM +0F18..0F19 ; ID_Continue # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F20..0F29 ; ID_Continue # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F35 ; ID_Continue # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; ID_Continue # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; ID_Continue # Mn TIBETAN MARK TSA -PHRU +0F3E..0F3F ; ID_Continue # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F40..0F47 ; ID_Continue # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; ID_Continue # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F71..0F7E ; ID_Continue # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F7F ; ID_Continue # Mc TIBETAN SIGN RNAM BCAD +0F80..0F84 ; ID_Continue # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA +0F86..0F87 ; ID_Continue # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0F88..0F8C ; ID_Continue # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +0F8D..0F97 ; ID_Continue # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; ID_Continue # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FC6 ; ID_Continue # Mn TIBETAN SYMBOL PADMA GDAN +1000..102A ; ID_Continue # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +102B..102C ; ID_Continue # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; ID_Continue # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; ID_Continue # Mc MYANMAR VOWEL SIGN E +1032..1037 ; ID_Continue # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW +1038 ; ID_Continue # Mc MYANMAR SIGN VISARGA +1039..103A ; ID_Continue # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +103B..103C ; ID_Continue # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; ID_Continue # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +103F ; ID_Continue # Lo MYANMAR LETTER GREAT SA +1040..1049 ; ID_Continue # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +1050..1055 ; ID_Continue # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +1056..1057 ; ID_Continue # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; ID_Continue # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105A..105D ; ID_Continue # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +105E..1060 ; ID_Continue # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1061 ; ID_Continue # Lo MYANMAR LETTER SGAW KAREN SHA +1062..1064 ; ID_Continue # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO +1065..1066 ; ID_Continue # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +1067..106D ; ID_Continue # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 +106E..1070 ; ID_Continue # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1071..1074 ; ID_Continue # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1075..1081 ; ID_Continue # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +1082 ; ID_Continue # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1083..1084 ; ID_Continue # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; ID_Continue # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +1087..108C ; ID_Continue # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108D ; ID_Continue # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +108E ; ID_Continue # Lo MYANMAR LETTER RUMAI PALAUNG FA +108F ; ID_Continue # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +1090..1099 ; ID_Continue # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE +109A..109C ; ID_Continue # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A +109D ; ID_Continue # Mn MYANMAR VOWEL SIGN AITON AI +10A0..10C5 ; ID_Continue # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; ID_Continue # L& GEORGIAN CAPITAL LETTER YN +10CD ; ID_Continue # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; ID_Continue # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FC ; ID_Continue # Lm MODIFIER LETTER GEORGIAN NAR +10FD..1248 ; ID_Continue # Lo [332] GEORGIAN LETTER AEN..ETHIOPIC SYLLABLE QWA +124A..124D ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; ID_Continue # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; ID_Continue # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; ID_Continue # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; ID_Continue # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; ID_Continue # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; ID_Continue # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; ID_Continue # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +135D..135F ; ID_Continue # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK +1369..1371 ; ID_Continue # No [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE +1380..138F ; ID_Continue # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +13A0..13F4 ; ID_Continue # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV +1401..166C ; ID_Continue # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166F..167F ; ID_Continue # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +1681..169A ; ID_Continue # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +16A0..16EA ; ID_Continue # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EE..16F0 ; ID_Continue # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +1700..170C ; ID_Continue # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA +170E..1711 ; ID_Continue # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA +1712..1714 ; ID_Continue # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA +1720..1731 ; ID_Continue # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1732..1734 ; ID_Continue # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD +1740..1751 ; ID_Continue # Lo [18] BUHID LETTER A..BUHID LETTER HA +1752..1753 ; ID_Continue # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1760..176C ; ID_Continue # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; ID_Continue # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1772..1773 ; ID_Continue # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +1780..17B3 ; ID_Continue # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17B4..17B5 ; ID_Continue # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +17B6 ; ID_Continue # Mc KHMER VOWEL SIGN AA +17B7..17BD ; ID_Continue # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; ID_Continue # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C6 ; ID_Continue # Mn KHMER SIGN NIKAHIT +17C7..17C8 ; ID_Continue # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +17C9..17D3 ; ID_Continue # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17D7 ; ID_Continue # Lm KHMER SIGN LEK TOO +17DC ; ID_Continue # Lo KHMER SIGN AVAKRAHASANYA +17DD ; ID_Continue # Mn KHMER SIGN ATTHACAN +17E0..17E9 ; ID_Continue # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE +180B..180D ; ID_Continue # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +1810..1819 ; ID_Continue # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE +1820..1842 ; ID_Continue # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; ID_Continue # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1877 ; ID_Continue # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +1880..18A8 ; ID_Continue # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA +18A9 ; ID_Continue # Mn MONGOLIAN LETTER ALI GALI DAGALGA +18AA ; ID_Continue # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +18B0..18F5 ; ID_Continue # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +1900..191C ; ID_Continue # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +1920..1922 ; ID_Continue # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; ID_Continue # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; ID_Continue # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1929..192B ; ID_Continue # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; ID_Continue # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1932 ; ID_Continue # Mn LIMBU SMALL LETTER ANUSVARA +1933..1938 ; ID_Continue # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +1939..193B ; ID_Continue # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1946..194F ; ID_Continue # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE +1950..196D ; ID_Continue # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; ID_Continue # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1980..19AB ; ID_Continue # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19B0..19C0 ; ID_Continue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +19C1..19C7 ; ID_Continue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +19C8..19C9 ; ID_Continue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +19D0..19D9 ; ID_Continue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE +19DA ; ID_Continue # No NEW TAI LUE THAM DIGIT ONE +1A00..1A16 ; ID_Continue # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A17..1A18 ; ID_Continue # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1B ; ID_Continue # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE +1A20..1A54 ; ID_Continue # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1A55 ; ID_Continue # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; ID_Continue # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A57 ; ID_Continue # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A58..1A5E ; ID_Continue # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A60 ; ID_Continue # Mn TAI THAM SIGN SAKOT +1A61 ; ID_Continue # Mc TAI THAM VOWEL SIGN A +1A62 ; ID_Continue # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; ID_Continue # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; ID_Continue # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; ID_Continue # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73..1A7C ; ID_Continue # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; ID_Continue # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1A80..1A89 ; ID_Continue # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE +1A90..1A99 ; ID_Continue # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE +1AA7 ; ID_Continue # Lm TAI THAM SIGN MAI YAMOK +1B00..1B03 ; ID_Continue # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B04 ; ID_Continue # Mc BALINESE SIGN BISAH +1B05..1B33 ; ID_Continue # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B34 ; ID_Continue # Mn BALINESE SIGN REREKAN +1B35 ; ID_Continue # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; ID_Continue # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; ID_Continue # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; ID_Continue # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; ID_Continue # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; ID_Continue # Mn BALINESE VOWEL SIGN PEPET +1B43..1B44 ; ID_Continue # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG +1B45..1B4B ; ID_Continue # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK +1B50..1B59 ; ID_Continue # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE +1B6B..1B73 ; ID_Continue # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1B80..1B81 ; ID_Continue # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1B82 ; ID_Continue # Mc SUNDANESE SIGN PANGWISAD +1B83..1BA0 ; ID_Continue # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BA1 ; ID_Continue # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA5 ; ID_Continue # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; ID_Continue # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; ID_Continue # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BAA ; ID_Continue # Mc SUNDANESE SIGN PAMAAEH +1BAB ; ID_Continue # Mn SUNDANESE SIGN VIRAMA +1BAC..1BAD ; ID_Continue # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA +1BAE..1BAF ; ID_Continue # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BB0..1BB9 ; ID_Continue # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE +1BBA..1BE5 ; ID_Continue # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U +1BE6 ; ID_Continue # Mn BATAK SIGN TOMPI +1BE7 ; ID_Continue # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; ID_Continue # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; ID_Continue # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; ID_Continue # Mn BATAK VOWEL SIGN KARO O +1BEE ; ID_Continue # Mc BATAK VOWEL SIGN U +1BEF..1BF1 ; ID_Continue # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1BF2..1BF3 ; ID_Continue # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN +1C00..1C23 ; ID_Continue # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C24..1C2B ; ID_Continue # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C2C..1C33 ; ID_Continue # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C34..1C35 ; ID_Continue # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1C36..1C37 ; ID_Continue # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1C40..1C49 ; ID_Continue # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE +1C4D..1C4F ; ID_Continue # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +1C50..1C59 ; ID_Continue # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE +1C5A..1C77 ; ID_Continue # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; ID_Continue # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CD0..1CD2 ; ID_Continue # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD4..1CE0 ; ID_Continue # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE1 ; ID_Continue # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CE2..1CE8 ; ID_Continue # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CE9..1CEC ; ID_Continue # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CED ; ID_Continue # Mn VEDIC SIGN TIRYAK +1CEE..1CF1 ; ID_Continue # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA +1CF2..1CF3 ; ID_Continue # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA +1CF4 ; ID_Continue # Mn VEDIC TONE CANDRA ABOVE +1CF5..1CF6 ; ID_Continue # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1D00..1D2B ; ID_Continue # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; ID_Continue # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; ID_Continue # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; ID_Continue # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; ID_Continue # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; ID_Continue # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1DC0..1DE6 ; ID_Continue # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z +1DFC..1DFF ; ID_Continue # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +1E00..1F15 ; ID_Continue # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; ID_Continue # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; ID_Continue # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; ID_Continue # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; ID_Continue # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; ID_Continue # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; ID_Continue # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; ID_Continue # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; ID_Continue # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; ID_Continue # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; ID_Continue # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; ID_Continue # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; ID_Continue # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; ID_Continue # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; ID_Continue # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; ID_Continue # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; ID_Continue # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; ID_Continue # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; ID_Continue # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +203F..2040 ; ID_Continue # Pc [2] UNDERTIE..CHARACTER TIE +2054 ; ID_Continue # Pc INVERTED UNDERTIE +2071 ; ID_Continue # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; ID_Continue # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; ID_Continue # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +20D0..20DC ; ID_Continue # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20E1 ; ID_Continue # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E5..20F0 ; ID_Continue # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE +2102 ; ID_Continue # L& DOUBLE-STRUCK CAPITAL C +2107 ; ID_Continue # L& EULER CONSTANT +210A..2113 ; ID_Continue # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; ID_Continue # L& DOUBLE-STRUCK CAPITAL N +2118 ; ID_Continue # Sm SCRIPT CAPITAL P +2119..211D ; ID_Continue # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; ID_Continue # L& DOUBLE-STRUCK CAPITAL Z +2126 ; ID_Continue # L& OHM SIGN +2128 ; ID_Continue # L& BLACK-LETTER CAPITAL Z +212A..212D ; ID_Continue # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212E ; ID_Continue # So ESTIMATED SYMBOL +212F..2134 ; ID_Continue # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2135..2138 ; ID_Continue # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; ID_Continue # L& INFORMATION SOURCE +213C..213F ; ID_Continue # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; ID_Continue # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; ID_Continue # L& TURNED SMALL F +2160..2182 ; ID_Continue # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; ID_Continue # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; ID_Continue # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2C00..2C2E ; ID_Continue # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; ID_Continue # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; ID_Continue # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; ID_Continue # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; ID_Continue # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CEB..2CEE ; ID_Continue # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CEF..2CF1 ; ID_Continue # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2CF2..2CF3 ; ID_Continue # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; ID_Continue # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; ID_Continue # L& GEORGIAN SMALL LETTER YN +2D2D ; ID_Continue # L& GEORGIAN SMALL LETTER AEN +2D30..2D67 ; ID_Continue # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; ID_Continue # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D7F ; ID_Continue # Mn TIFINAGH CONSONANT JOINER +2D80..2D96 ; ID_Continue # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +2DE0..2DFF ; ID_Continue # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +3005 ; ID_Continue # Lm IDEOGRAPHIC ITERATION MARK +3006 ; ID_Continue # Lo IDEOGRAPHIC CLOSING MARK +3007 ; ID_Continue # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; ID_Continue # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +302A..302D ; ID_Continue # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK +302E..302F ; ID_Continue # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK +3031..3035 ; ID_Continue # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3038..303A ; ID_Continue # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; ID_Continue # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; ID_Continue # Lo MASU MARK +3041..3096 ; ID_Continue # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +3099..309A ; ID_Continue # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309B..309C ; ID_Continue # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; ID_Continue # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; ID_Continue # Lo HIRAGANA DIGRAPH YORI +30A1..30FA ; ID_Continue # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FC..30FE ; ID_Continue # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +30FF ; ID_Continue # Lo KATAKANA DIGRAPH KOTO +3105..312D ; ID_Continue # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH +3131..318E ; ID_Continue # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +31A0..31BA ; ID_Continue # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY +31F0..31FF ; ID_Continue # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3400..4DB5 ; ID_Continue # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCC ; ID_Continue # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC +A000..A014 ; ID_Continue # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; ID_Continue # Lm YI SYLLABLE WU +A016..A48C ; ID_Continue # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A4D0..A4F7 ; ID_Continue # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; ID_Continue # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A500..A60B ; ID_Continue # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; ID_Continue # Lm VAI SYLLABLE LENGTHENER +A610..A61F ; ID_Continue # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A620..A629 ; ID_Continue # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE +A62A..A62B ; ID_Continue # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO +A640..A66D ; ID_Continue # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; ID_Continue # Lo CYRILLIC LETTER MULTIOCULAR O +A66F ; ID_Continue # Mn COMBINING CYRILLIC VZMET +A674..A67D ; ID_Continue # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK +A67F ; ID_Continue # Lm CYRILLIC PAYEROK +A680..A697 ; ID_Continue # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A69F ; ID_Continue # Mn COMBINING CYRILLIC LETTER IOTIFIED E +A6A0..A6E5 ; ID_Continue # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; ID_Continue # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A6F0..A6F1 ; ID_Continue # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A717..A71F ; ID_Continue # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A722..A76F ; ID_Continue # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; ID_Continue # Lm MODIFIER LETTER US +A771..A787 ; ID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A788 ; ID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A78B..A78E ; ID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; ID_Continue # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; ID_Continue # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; ID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; ID_Continue # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A801 ; ID_Continue # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I +A802 ; ID_Continue # Mn SYLOTI NAGRI SIGN DVISVARA +A803..A805 ; ID_Continue # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A806 ; ID_Continue # Mn SYLOTI NAGRI SIGN HASANTA +A807..A80A ; ID_Continue # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80B ; ID_Continue # Mn SYLOTI NAGRI SIGN ANUSVARA +A80C..A822 ; ID_Continue # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A823..A824 ; ID_Continue # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; ID_Continue # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; ID_Continue # Mc SYLOTI NAGRI VOWEL SIGN OO +A840..A873 ; ID_Continue # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A880..A881 ; ID_Continue # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A882..A8B3 ; ID_Continue # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8B4..A8C3 ; ID_Continue # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A8C4 ; ID_Continue # Mn SAURASHTRA SIGN VIRAMA +A8D0..A8D9 ; ID_Continue # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE +A8E0..A8F1 ; ID_Continue # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A8F2..A8F7 ; ID_Continue # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8FB ; ID_Continue # Lo DEVANAGARI HEADSTROKE +A900..A909 ; ID_Continue # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE +A90A..A925 ; ID_Continue # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A926..A92D ; ID_Continue # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU +A930..A946 ; ID_Continue # Lo [23] REJANG LETTER KA..REJANG LETTER A +A947..A951 ; ID_Continue # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A952..A953 ; ID_Continue # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA +A960..A97C ; ID_Continue # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A980..A982 ; ID_Continue # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A983 ; ID_Continue # Mc JAVANESE SIGN WIGNYAN +A984..A9B2 ; ID_Continue # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9B3 ; ID_Continue # Mn JAVANESE SIGN CECAK TELU +A9B4..A9B5 ; ID_Continue # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; ID_Continue # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; ID_Continue # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC ; ID_Continue # Mn JAVANESE VOWEL SIGN PEPET +A9BD..A9C0 ; ID_Continue # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON +A9CF ; ID_Continue # Lm JAVANESE PANGRANGKEP +A9D0..A9D9 ; ID_Continue # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE +AA00..AA28 ; ID_Continue # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA29..AA2E ; ID_Continue # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; ID_Continue # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; ID_Continue # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA33..AA34 ; ID_Continue # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; ID_Continue # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA40..AA42 ; ID_Continue # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA43 ; ID_Continue # Mn CHAM CONSONANT SIGN FINAL NG +AA44..AA4B ; ID_Continue # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA4C ; ID_Continue # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; ID_Continue # Mc CHAM CONSONANT SIGN FINAL H +AA50..AA59 ; ID_Continue # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE +AA60..AA6F ; ID_Continue # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; ID_Continue # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; ID_Continue # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA7A ; ID_Continue # Lo MYANMAR LETTER AITON RA +AA7B ; ID_Continue # Mc MYANMAR SIGN PAO KAREN TONE +AA80..AAAF ; ID_Continue # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB0 ; ID_Continue # Mn TAI VIET MAI KANG +AAB1 ; ID_Continue # Lo TAI VIET VOWEL AA +AAB2..AAB4 ; ID_Continue # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB5..AAB6 ; ID_Continue # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB7..AAB8 ; ID_Continue # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AAB9..AABD ; ID_Continue # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AABE..AABF ; ID_Continue # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK +AAC0 ; ID_Continue # Lo TAI VIET TONE MAI NUENG +AAC1 ; ID_Continue # Mn TAI VIET TONE MAI THO +AAC2 ; ID_Continue # Lo TAI VIET TONE MAI SONG +AADB..AADC ; ID_Continue # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; ID_Continue # Lm TAI VIET SYMBOL SAM +AAE0..AAEA ; ID_Continue # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAEB ; ID_Continue # Mc MEETEI MAYEK VOWEL SIGN II +AAEC..AAED ; ID_Continue # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAEE..AAEF ; ID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU +AAF2 ; ID_Continue # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; ID_Continue # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AAF5 ; ID_Continue # Mc MEETEI MAYEK VOWEL SIGN VISARGA +AAF6 ; ID_Continue # Mn MEETEI MAYEK VIRAMA +AB01..AB06 ; ID_Continue # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; ID_Continue # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; ID_Continue # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +ABC0..ABE2 ; ID_Continue # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +ABE3..ABE4 ; ID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; ID_Continue # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; ID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; ID_Continue # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; ID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +ABEC ; ID_Continue # Mc MEETEI MAYEK LUM IYEK +ABED ; ID_Continue # Mn MEETEI MAYEK APUN IYEK +ABF0..ABF9 ; ID_Continue # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE +AC00..D7A3 ; ID_Continue # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; ID_Continue # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; ID_Continue # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +F900..FA6D ; ID_Continue # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; ID_Continue # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +FB00..FB06 ; ID_Continue # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; ID_Continue # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FB1D ; ID_Continue # Lo HEBREW LETTER YOD WITH HIRIQ +FB1E ; ID_Continue # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FB1F..FB28 ; ID_Continue # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB2A..FB36 ; ID_Continue # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; ID_Continue # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; ID_Continue # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; ID_Continue # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; ID_Continue # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FBB1 ; ID_Continue # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBD3..FD3D ; ID_Continue # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD50..FD8F ; ID_Continue # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; ID_Continue # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDF0..FDFB ; ID_Continue # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU +FE00..FE0F ; ID_Continue # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FE20..FE26 ; ID_Continue # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON +FE33..FE34 ; ID_Continue # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE +FE4D..FE4F ; ID_Continue # Pc [3] DASHED LOW LINE..WAVY LOW LINE +FE70..FE74 ; ID_Continue # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM +FE76..FEFC ; ID_Continue # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FF10..FF19 ; ID_Continue # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE +FF21..FF3A ; ID_Continue # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF3F ; ID_Continue # Pc FULLWIDTH LOW LINE +FF41..FF5A ; ID_Continue # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +FF66..FF6F ; ID_Continue # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; ID_Continue # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71..FF9D ; ID_Continue # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +FF9E..FF9F ; ID_Continue # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFA0..FFBE ; ID_Continue # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; ID_Continue # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; ID_Continue # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; ID_Continue # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I +10000..1000B ; ID_Continue # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; ID_Continue # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; ID_Continue # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; ID_Continue # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; ID_Continue # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; ID_Continue # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; ID_Continue # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +10140..10174 ; ID_Continue # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +101FD ; ID_Continue # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE +10280..1029C ; ID_Continue # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X +102A0..102D0 ; ID_Continue # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 +10300..1031E ; ID_Continue # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU +10330..10340 ; ID_Continue # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; ID_Continue # Nl GOTHIC LETTER NINETY +10342..10349 ; ID_Continue # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; ID_Continue # Nl GOTHIC LETTER NINE HUNDRED +10380..1039D ; ID_Continue # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +103A0..103C3 ; ID_Continue # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; ID_Continue # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D1..103D5 ; ID_Continue # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED +10400..1044F ; ID_Continue # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +10450..1049D ; ID_Continue # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO +104A0..104A9 ; ID_Continue # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE +10800..10805 ; ID_Continue # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; ID_Continue # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; ID_Continue # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; ID_Continue # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; ID_Continue # Lo CYPRIOT SYLLABLE ZA +1083F..10855 ; ID_Continue # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW +10900..10915 ; ID_Continue # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10920..10939 ; ID_Continue # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10980..109B7 ; ID_Continue # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109BE..109BF ; ID_Continue # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +10A00 ; ID_Continue # Lo KHAROSHTHI LETTER A +10A01..10A03 ; ID_Continue # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; ID_Continue # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; ID_Continue # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +10A10..10A13 ; ID_Continue # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; ID_Continue # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A33 ; ID_Continue # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A38..10A3A ; ID_Continue # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +10A3F ; ID_Continue # Mn KHAROSHTHI VIRAMA +10A60..10A7C ; ID_Continue # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10B00..10B35 ; ID_Continue # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B40..10B55 ; ID_Continue # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B60..10B72 ; ID_Continue # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10C00..10C48 ; ID_Continue # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +11000 ; ID_Continue # Mc BRAHMI SIGN CANDRABINDU +11001 ; ID_Continue # Mn BRAHMI SIGN ANUSVARA +11002 ; ID_Continue # Mc BRAHMI SIGN VISARGA +11003..11037 ; ID_Continue # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11038..11046 ; ID_Continue # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA +11066..1106F ; ID_Continue # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE +11080..11081 ; ID_Continue # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA +11082 ; ID_Continue # Mc KAITHI SIGN VISARGA +11083..110AF ; ID_Continue # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110B0..110B2 ; ID_Continue # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; ID_Continue # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; ID_Continue # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU +110B9..110BA ; ID_Continue # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +110D0..110E8 ; ID_Continue # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +110F0..110F9 ; ID_Continue # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE +11100..11102 ; ID_Continue # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA +11103..11126 ; ID_Continue # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +11127..1112B ; ID_Continue # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112C ; ID_Continue # Mc CHAKMA VOWEL SIGN E +1112D..11134 ; ID_Continue # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA +11136..1113F ; ID_Continue # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE +11180..11181 ; ID_Continue # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +11182 ; ID_Continue # Mc SHARADA SIGN VISARGA +11183..111B2 ; ID_Continue # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111B3..111B5 ; ID_Continue # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II +111B6..111BE ; ID_Continue # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +111BF..111C0 ; ID_Continue # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA +111C1..111C4 ; ID_Continue # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +111D0..111D9 ; ID_Continue # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE +11680..116AA ; ID_Continue # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +116AB ; ID_Continue # Mn TAKRI SIGN ANUSVARA +116AC ; ID_Continue # Mc TAKRI SIGN VISARGA +116AD ; ID_Continue # Mn TAKRI VOWEL SIGN AA +116AE..116AF ; ID_Continue # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II +116B0..116B5 ; ID_Continue # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +116B6 ; ID_Continue # Mc TAKRI SIGN VIRAMA +116B7 ; ID_Continue # Mn TAKRI SIGN NUKTA +116C0..116C9 ; ID_Continue # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE +12000..1236E ; ID_Continue # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +12400..12462 ; ID_Continue # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +13000..1342E ; ID_Continue # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +16800..16A38 ; ID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16F00..16F44 ; ID_Continue # Lo [69] MIAO LETTER PA..MIAO LETTER HHA +16F50 ; ID_Continue # Lo MIAO LETTER NASALIZATION +16F51..16F7E ; ID_Continue # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG +16F8F..16F92 ; ID_Continue # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW +16F93..16F9F ; ID_Continue # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1B000..1B001 ; ID_Continue # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1D165..1D166 ; ID_Continue # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM +1D167..1D169 ; ID_Continue # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D16D..1D172 ; ID_Continue # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 +1D17B..1D182 ; ID_Continue # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; ID_Continue # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; ID_Continue # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO +1D242..1D244 ; ID_Continue # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME +1D400..1D454 ; ID_Continue # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; ID_Continue # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; ID_Continue # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; ID_Continue # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; ID_Continue # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; ID_Continue # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; ID_Continue # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; ID_Continue # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; ID_Continue # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; ID_Continue # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; ID_Continue # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; ID_Continue # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; ID_Continue # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; ID_Continue # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; ID_Continue # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; ID_Continue # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; ID_Continue # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; ID_Continue # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; ID_Continue # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; ID_Continue # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; ID_Continue # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; ID_Continue # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; ID_Continue # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; ID_Continue # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; ID_Continue # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; ID_Continue # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; ID_Continue # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; ID_Continue # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; ID_Continue # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; ID_Continue # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; ID_Continue # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE +1EE00..1EE03 ; ID_Continue # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; ID_Continue # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; ID_Continue # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; ID_Continue # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; ID_Continue # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; ID_Continue # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; ID_Continue # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; ID_Continue # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; ID_Continue # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; ID_Continue # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; ID_Continue # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; ID_Continue # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; ID_Continue # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; ID_Continue # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; ID_Continue # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; ID_Continue # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; ID_Continue # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; ID_Continue # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; ID_Continue # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; ID_Continue # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; ID_Continue # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; ID_Continue # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; ID_Continue # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; ID_Continue # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +20000..2A6D6 ; ID_Continue # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; ID_Continue # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; ID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D +E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 103355 + +# ================================================ + +# Derived Property: XID_Start +# ID_Start modified for closure under NFKx +# Modified as described in UAX #15 +# NOTE: Does NOT remove the non-NFKx characters. +# Merely ensures that if isIdentifer(string) then isIdentifier(NFKx(string)) +# NOTE: See UAX #31 for more information + +0041..005A ; XID_Start # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; XID_Start # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; XID_Start # Lo FEMININE ORDINAL INDICATOR +00B5 ; XID_Start # L& MICRO SIGN +00BA ; XID_Start # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; XID_Start # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; XID_Start # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; XID_Start # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; XID_Start # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; XID_Start # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; XID_Start # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; XID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; XID_Start # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; XID_Start # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02C1 ; XID_Start # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C6..02D1 ; XID_Start # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02E0..02E4 ; XID_Start # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02EC ; XID_Start # Lm MODIFIER LETTER VOICING +02EE ; XID_Start # Lm MODIFIER LETTER DOUBLE APOSTROPHE +0370..0373 ; XID_Start # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; XID_Start # Lm GREEK NUMERAL SIGN +0376..0377 ; XID_Start # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037B..037D ; XID_Start # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; XID_Start # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; XID_Start # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; XID_Start # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; XID_Start # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; XID_Start # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F7..0481 ; XID_Start # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +048A..0527 ; XID_Start # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; XID_Start # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; XID_Start # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0561..0587 ; XID_Start # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +05D0..05EA ; XID_Start # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; XID_Start # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +0620..063F ; XID_Start # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; XID_Start # Lm ARABIC TATWEEL +0641..064A ; XID_Start # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +066E..066F ; XID_Start # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0671..06D3 ; XID_Start # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D5 ; XID_Start # Lo ARABIC LETTER AE +06E5..06E6 ; XID_Start # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06EE..06EF ; XID_Start # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06FA..06FC ; XID_Start # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FF ; XID_Start # Lo ARABIC LETTER HEH WITH INVERTED V +0710 ; XID_Start # Lo SYRIAC LETTER ALAPH +0712..072F ; XID_Start # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +074D..07A5 ; XID_Start # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU +07B1 ; XID_Start # Lo THAANA LETTER NAA +07CA..07EA ; XID_Start # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07F4..07F5 ; XID_Start # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07FA ; XID_Start # Lm NKO LAJANYALAN +0800..0815 ; XID_Start # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +081A ; XID_Start # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +0824 ; XID_Start # Lm SAMARITAN MODIFIER LETTER SHORT A +0828 ; XID_Start # Lm SAMARITAN MODIFIER LETTER I +0840..0858 ; XID_Start # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +08A0 ; XID_Start # Lo ARABIC LETTER BEH WITH SMALL V BELOW +08A2..08AC ; XID_Start # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +0904..0939 ; XID_Start # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093D ; XID_Start # Lo DEVANAGARI SIGN AVAGRAHA +0950 ; XID_Start # Lo DEVANAGARI OM +0958..0961 ; XID_Start # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0971 ; XID_Start # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..0977 ; XID_Start # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0979..097F ; XID_Start # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA +0985..098C ; XID_Start # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; XID_Start # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; XID_Start # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; XID_Start # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; XID_Start # Lo BENGALI LETTER LA +09B6..09B9 ; XID_Start # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BD ; XID_Start # Lo BENGALI SIGN AVAGRAHA +09CE ; XID_Start # Lo BENGALI LETTER KHANDA TA +09DC..09DD ; XID_Start # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; XID_Start # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09F0..09F1 ; XID_Start # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +0A05..0A0A ; XID_Start # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; XID_Start # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; XID_Start # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; XID_Start # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; XID_Start # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; XID_Start # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; XID_Start # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A59..0A5C ; XID_Start # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; XID_Start # Lo GURMUKHI LETTER FA +0A72..0A74 ; XID_Start # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A85..0A8D ; XID_Start # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; XID_Start # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; XID_Start # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; XID_Start # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; XID_Start # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; XID_Start # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABD ; XID_Start # Lo GUJARATI SIGN AVAGRAHA +0AD0 ; XID_Start # Lo GUJARATI OM +0AE0..0AE1 ; XID_Start # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0B05..0B0C ; XID_Start # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; XID_Start # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; XID_Start # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; XID_Start # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; XID_Start # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; XID_Start # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3D ; XID_Start # Lo ORIYA SIGN AVAGRAHA +0B5C..0B5D ; XID_Start # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; XID_Start # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B71 ; XID_Start # Lo ORIYA LETTER WA +0B83 ; XID_Start # Lo TAMIL SIGN VISARGA +0B85..0B8A ; XID_Start # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; XID_Start # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; XID_Start # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; XID_Start # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; XID_Start # Lo TAMIL LETTER JA +0B9E..0B9F ; XID_Start # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; XID_Start # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; XID_Start # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; XID_Start # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BD0 ; XID_Start # Lo TAMIL OM +0C05..0C0C ; XID_Start # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; XID_Start # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; XID_Start # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; XID_Start # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; XID_Start # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA +0C3D ; XID_Start # Lo TELUGU SIGN AVAGRAHA +0C58..0C59 ; XID_Start # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA +0C60..0C61 ; XID_Start # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C85..0C8C ; XID_Start # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; XID_Start # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; XID_Start # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; XID_Start # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; XID_Start # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBD ; XID_Start # Lo KANNADA SIGN AVAGRAHA +0CDE ; XID_Start # Lo KANNADA LETTER FA +0CE0..0CE1 ; XID_Start # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CF1..0CF2 ; XID_Start # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0D05..0D0C ; XID_Start # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; XID_Start # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; XID_Start # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3D ; XID_Start # Lo MALAYALAM SIGN AVAGRAHA +0D4E ; XID_Start # Lo MALAYALAM LETTER DOT REPH +0D60..0D61 ; XID_Start # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D7A..0D7F ; XID_Start # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D85..0D96 ; XID_Start # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; XID_Start # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; XID_Start # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; XID_Start # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; XID_Start # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0E01..0E30 ; XID_Start # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E32 ; XID_Start # Lo THAI CHARACTER SARA AA +0E40..0E45 ; XID_Start # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; XID_Start # Lm THAI CHARACTER MAIYAMOK +0E81..0E82 ; XID_Start # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; XID_Start # Lo LAO LETTER KHO TAM +0E87..0E88 ; XID_Start # Lo [2] LAO LETTER NGO..LAO LETTER CO +0E8A ; XID_Start # Lo LAO LETTER SO TAM +0E8D ; XID_Start # Lo LAO LETTER NYO +0E94..0E97 ; XID_Start # Lo [4] LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; XID_Start # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; XID_Start # Lo [3] LAO LETTER MO..LAO LETTER LO LING +0EA5 ; XID_Start # Lo LAO LETTER LO LOOT +0EA7 ; XID_Start # Lo LAO LETTER WO +0EAA..0EAB ; XID_Start # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB0 ; XID_Start # Lo [4] LAO LETTER O..LAO VOWEL SIGN A +0EB2 ; XID_Start # Lo LAO VOWEL SIGN AA +0EBD ; XID_Start # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; XID_Start # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; XID_Start # Lm LAO KO LA +0EDC..0EDF ; XID_Start # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F00 ; XID_Start # Lo TIBETAN SYLLABLE OM +0F40..0F47 ; XID_Start # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; XID_Start # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F88..0F8C ; XID_Start # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +1000..102A ; XID_Start # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +103F ; XID_Start # Lo MYANMAR LETTER GREAT SA +1050..1055 ; XID_Start # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +105A..105D ; XID_Start # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +1061 ; XID_Start # Lo MYANMAR LETTER SGAW KAREN SHA +1065..1066 ; XID_Start # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +106E..1070 ; XID_Start # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1075..1081 ; XID_Start # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +108E ; XID_Start # Lo MYANMAR LETTER RUMAI PALAUNG FA +10A0..10C5 ; XID_Start # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; XID_Start # L& GEORGIAN CAPITAL LETTER YN +10CD ; XID_Start # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; XID_Start # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FC ; XID_Start # Lm MODIFIER LETTER GEORGIAN NAR +10FD..1248 ; XID_Start # Lo [332] GEORGIAN LETTER AEN..ETHIOPIC SYLLABLE QWA +124A..124D ; XID_Start # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; XID_Start # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; XID_Start # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; XID_Start # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; XID_Start # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; XID_Start # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; XID_Start # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; XID_Start # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; XID_Start # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; XID_Start # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; XID_Start # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; XID_Start # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; XID_Start # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; XID_Start # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +1380..138F ; XID_Start # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +13A0..13F4 ; XID_Start # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV +1401..166C ; XID_Start # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166F..167F ; XID_Start # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +1681..169A ; XID_Start # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +16A0..16EA ; XID_Start # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EE..16F0 ; XID_Start # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +1700..170C ; XID_Start # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA +170E..1711 ; XID_Start # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA +1720..1731 ; XID_Start # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1740..1751 ; XID_Start # Lo [18] BUHID LETTER A..BUHID LETTER HA +1760..176C ; XID_Start # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; XID_Start # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1780..17B3 ; XID_Start # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17D7 ; XID_Start # Lm KHMER SIGN LEK TOO +17DC ; XID_Start # Lo KHMER SIGN AVAKRAHASANYA +1820..1842 ; XID_Start # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; XID_Start # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1877 ; XID_Start # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +1880..18A8 ; XID_Start # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA +18AA ; XID_Start # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +18B0..18F5 ; XID_Start # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +1900..191C ; XID_Start # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +1950..196D ; XID_Start # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; XID_Start # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1980..19AB ; XID_Start # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19C1..19C7 ; XID_Start # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +1A00..1A16 ; XID_Start # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A20..1A54 ; XID_Start # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1AA7 ; XID_Start # Lm TAI THAM SIGN MAI YAMOK +1B05..1B33 ; XID_Start # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B45..1B4B ; XID_Start # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK +1B83..1BA0 ; XID_Start # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BAE..1BAF ; XID_Start # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BBA..1BE5 ; XID_Start # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U +1C00..1C23 ; XID_Start # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C4D..1C4F ; XID_Start # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +1C5A..1C77 ; XID_Start # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; XID_Start # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CE9..1CEC ; XID_Start # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CEE..1CF1 ; XID_Start # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA +1CF5..1CF6 ; XID_Start # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1D00..1D2B ; XID_Start # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; XID_Start # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; XID_Start # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; XID_Start # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; XID_Start # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; XID_Start # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1E00..1F15 ; XID_Start # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; XID_Start # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; XID_Start # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; XID_Start # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; XID_Start # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; XID_Start # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; XID_Start # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; XID_Start # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; XID_Start # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; XID_Start # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; XID_Start # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; XID_Start # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; XID_Start # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; XID_Start # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; XID_Start # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; XID_Start # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; XID_Start # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; XID_Start # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; XID_Start # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2071 ; XID_Start # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; XID_Start # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; XID_Start # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +2102 ; XID_Start # L& DOUBLE-STRUCK CAPITAL C +2107 ; XID_Start # L& EULER CONSTANT +210A..2113 ; XID_Start # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; XID_Start # L& DOUBLE-STRUCK CAPITAL N +2118 ; XID_Start # Sm SCRIPT CAPITAL P +2119..211D ; XID_Start # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; XID_Start # L& DOUBLE-STRUCK CAPITAL Z +2126 ; XID_Start # L& OHM SIGN +2128 ; XID_Start # L& BLACK-LETTER CAPITAL Z +212A..212D ; XID_Start # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212E ; XID_Start # So ESTIMATED SYMBOL +212F..2134 ; XID_Start # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2135..2138 ; XID_Start # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; XID_Start # L& INFORMATION SOURCE +213C..213F ; XID_Start # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; XID_Start # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; XID_Start # L& TURNED SMALL F +2160..2182 ; XID_Start # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; XID_Start # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; XID_Start # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2C00..2C2E ; XID_Start # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; XID_Start # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; XID_Start # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; XID_Start # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; XID_Start # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CEB..2CEE ; XID_Start # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF2..2CF3 ; XID_Start # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; XID_Start # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; XID_Start # L& GEORGIAN SMALL LETTER YN +2D2D ; XID_Start # L& GEORGIAN SMALL LETTER AEN +2D30..2D67 ; XID_Start # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; XID_Start # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D80..2D96 ; XID_Start # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; XID_Start # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; XID_Start # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; XID_Start # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; XID_Start # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +3005 ; XID_Start # Lm IDEOGRAPHIC ITERATION MARK +3006 ; XID_Start # Lo IDEOGRAPHIC CLOSING MARK +3007 ; XID_Start # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; XID_Start # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3031..3035 ; XID_Start # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3038..303A ; XID_Start # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; XID_Start # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; XID_Start # Lo MASU MARK +3041..3096 ; XID_Start # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +309D..309E ; XID_Start # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; XID_Start # Lo HIRAGANA DIGRAPH YORI +30A1..30FA ; XID_Start # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FC..30FE ; XID_Start # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +30FF ; XID_Start # Lo KATAKANA DIGRAPH KOTO +3105..312D ; XID_Start # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH +3131..318E ; XID_Start # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +31A0..31BA ; XID_Start # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY +31F0..31FF ; XID_Start # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3400..4DB5 ; XID_Start # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCC ; XID_Start # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC +A000..A014 ; XID_Start # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; XID_Start # Lm YI SYLLABLE WU +A016..A48C ; XID_Start # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A4D0..A4F7 ; XID_Start # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; XID_Start # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A500..A60B ; XID_Start # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; XID_Start # Lm VAI SYLLABLE LENGTHENER +A610..A61F ; XID_Start # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A62A..A62B ; XID_Start # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO +A640..A66D ; XID_Start # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; XID_Start # Lo CYRILLIC LETTER MULTIOCULAR O +A67F ; XID_Start # Lm CYRILLIC PAYEROK +A680..A697 ; XID_Start # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A6A0..A6E5 ; XID_Start # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; XID_Start # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A717..A71F ; XID_Start # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A722..A76F ; XID_Start # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; XID_Start # Lm MODIFIER LETTER US +A771..A787 ; XID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A788 ; XID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A78B..A78E ; XID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; XID_Start # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; XID_Start # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; XID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; XID_Start # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A801 ; XID_Start # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I +A803..A805 ; XID_Start # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A807..A80A ; XID_Start # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80C..A822 ; XID_Start # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A840..A873 ; XID_Start # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A882..A8B3 ; XID_Start # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8F2..A8F7 ; XID_Start # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8FB ; XID_Start # Lo DEVANAGARI HEADSTROKE +A90A..A925 ; XID_Start # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A930..A946 ; XID_Start # Lo [23] REJANG LETTER KA..REJANG LETTER A +A960..A97C ; XID_Start # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A984..A9B2 ; XID_Start # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9CF ; XID_Start # Lm JAVANESE PANGRANGKEP +AA00..AA28 ; XID_Start # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA40..AA42 ; XID_Start # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA44..AA4B ; XID_Start # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA60..AA6F ; XID_Start # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; XID_Start # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; XID_Start # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA7A ; XID_Start # Lo MYANMAR LETTER AITON RA +AA80..AAAF ; XID_Start # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB1 ; XID_Start # Lo TAI VIET VOWEL AA +AAB5..AAB6 ; XID_Start # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB9..AABD ; XID_Start # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AAC0 ; XID_Start # Lo TAI VIET TONE MAI NUENG +AAC2 ; XID_Start # Lo TAI VIET TONE MAI SONG +AADB..AADC ; XID_Start # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; XID_Start # Lm TAI VIET SYMBOL SAM +AAE0..AAEA ; XID_Start # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAF2 ; XID_Start # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; XID_Start # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AB01..AB06 ; XID_Start # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; XID_Start # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; XID_Start # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; XID_Start # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +ABC0..ABE2 ; XID_Start # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +AC00..D7A3 ; XID_Start # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; XID_Start # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; XID_Start # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +F900..FA6D ; XID_Start # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; XID_Start # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +FB00..FB06 ; XID_Start # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; XID_Start # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FB1D ; XID_Start # Lo HEBREW LETTER YOD WITH HIRIQ +FB1F..FB28 ; XID_Start # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB2A..FB36 ; XID_Start # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; XID_Start # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; XID_Start # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; XID_Start # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; XID_Start # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FBB1 ; XID_Start # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBD3..FC5D ; XID_Start # Lo [139] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM +FC64..FD3D ; XID_Start # Lo [218] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD50..FD8F ; XID_Start # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; XID_Start # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDF0..FDF9 ; XID_Start # Lo [10] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE SALLA ISOLATED FORM +FE71 ; XID_Start # Lo ARABIC TATWEEL WITH FATHATAN ABOVE +FE73 ; XID_Start # Lo ARABIC TAIL FRAGMENT +FE77 ; XID_Start # Lo ARABIC FATHA MEDIAL FORM +FE79 ; XID_Start # Lo ARABIC DAMMA MEDIAL FORM +FE7B ; XID_Start # Lo ARABIC KASRA MEDIAL FORM +FE7D ; XID_Start # Lo ARABIC SHADDA MEDIAL FORM +FE7F..FEFC ; XID_Start # Lo [126] ARABIC SUKUN MEDIAL FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FF21..FF3A ; XID_Start # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF41..FF5A ; XID_Start # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +FF66..FF6F ; XID_Start # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; XID_Start # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71..FF9D ; XID_Start # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +FFA0..FFBE ; XID_Start # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; XID_Start # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; XID_Start # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; XID_Start # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I +10000..1000B ; XID_Start # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; XID_Start # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; XID_Start # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; XID_Start # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; XID_Start # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; XID_Start # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; XID_Start # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +10140..10174 ; XID_Start # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +10280..1029C ; XID_Start # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X +102A0..102D0 ; XID_Start # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 +10300..1031E ; XID_Start # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU +10330..10340 ; XID_Start # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; XID_Start # Nl GOTHIC LETTER NINETY +10342..10349 ; XID_Start # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; XID_Start # Nl GOTHIC LETTER NINE HUNDRED +10380..1039D ; XID_Start # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +103A0..103C3 ; XID_Start # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; XID_Start # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D1..103D5 ; XID_Start # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED +10400..1044F ; XID_Start # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +10450..1049D ; XID_Start # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO +10800..10805 ; XID_Start # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; XID_Start # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; XID_Start # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; XID_Start # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; XID_Start # Lo CYPRIOT SYLLABLE ZA +1083F..10855 ; XID_Start # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW +10900..10915 ; XID_Start # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10920..10939 ; XID_Start # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10980..109B7 ; XID_Start # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109BE..109BF ; XID_Start # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +10A00 ; XID_Start # Lo KHAROSHTHI LETTER A +10A10..10A13 ; XID_Start # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; XID_Start # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A33 ; XID_Start # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A60..10A7C ; XID_Start # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10B00..10B35 ; XID_Start # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B40..10B55 ; XID_Start # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B60..10B72 ; XID_Start # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10C00..10C48 ; XID_Start # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +11003..11037 ; XID_Start # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11083..110AF ; XID_Start # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110D0..110E8 ; XID_Start # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +11103..11126 ; XID_Start # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +11183..111B2 ; XID_Start # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111C1..111C4 ; XID_Start # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +11680..116AA ; XID_Start # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +12000..1236E ; XID_Start # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +12400..12462 ; XID_Start # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +13000..1342E ; XID_Start # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +16800..16A38 ; XID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16F00..16F44 ; XID_Start # Lo [69] MIAO LETTER PA..MIAO LETTER HHA +16F50 ; XID_Start # Lo MIAO LETTER NASALIZATION +16F93..16F9F ; XID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1B000..1B001 ; XID_Start # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1D400..1D454 ; XID_Start # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; XID_Start # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; XID_Start # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; XID_Start # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; XID_Start # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; XID_Start # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; XID_Start # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; XID_Start # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; XID_Start # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; XID_Start # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; XID_Start # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; XID_Start # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; XID_Start # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; XID_Start # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; XID_Start # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; XID_Start # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; XID_Start # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; XID_Start # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; XID_Start # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; XID_Start # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; XID_Start # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; XID_Start # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; XID_Start # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; XID_Start # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; XID_Start # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; XID_Start # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; XID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; XID_Start # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; XID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; XID_Start # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1EE00..1EE03 ; XID_Start # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; XID_Start # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; XID_Start # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; XID_Start # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; XID_Start # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; XID_Start # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; XID_Start # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; XID_Start # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; XID_Start # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; XID_Start # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; XID_Start # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; XID_Start # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; XID_Start # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; XID_Start # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; XID_Start # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; XID_Start # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; XID_Start # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; XID_Start # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; XID_Start # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; XID_Start # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; XID_Start # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; XID_Start # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; XID_Start # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; XID_Start # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; XID_Start # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; XID_Start # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; XID_Start # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; XID_Start # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; XID_Start # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; XID_Start # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; XID_Start # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; XID_Start # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; XID_Start # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +20000..2A6D6 ; XID_Start # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; XID_Start # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +# Total code points: 101217 + +# ================================================ + +# Derived Property: XID_Continue +# Mod_ID_Continue modified for closure under NFKx +# Modified as described in UAX #15 +# NOTE: Does NOT remove the non-NFKx characters. +# Merely ensures that if isIdentifer(string) then isIdentifier(NFKx(string)) +# NOTE: See UAX #31 for more information + +0030..0039 ; XID_Continue # Nd [10] DIGIT ZERO..DIGIT NINE +0041..005A ; XID_Continue # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +005F ; XID_Continue # Pc LOW LINE +0061..007A ; XID_Continue # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; XID_Continue # Lo FEMININE ORDINAL INDICATOR +00B5 ; XID_Continue # L& MICRO SIGN +00B7 ; XID_Continue # Po MIDDLE DOT +00BA ; XID_Continue # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; XID_Continue # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; XID_Continue # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; XID_Continue # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; XID_Continue # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; XID_Continue # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; XID_Continue # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; XID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; XID_Continue # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; XID_Continue # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02C1 ; XID_Continue # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C6..02D1 ; XID_Continue # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02E0..02E4 ; XID_Continue # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02EC ; XID_Continue # Lm MODIFIER LETTER VOICING +02EE ; XID_Continue # Lm MODIFIER LETTER DOUBLE APOSTROPHE +0300..036F ; XID_Continue # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X +0370..0373 ; XID_Continue # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; XID_Continue # Lm GREEK NUMERAL SIGN +0376..0377 ; XID_Continue # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037B..037D ; XID_Continue # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +0386 ; XID_Continue # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0387 ; XID_Continue # Po GREEK ANO TELEIA +0388..038A ; XID_Continue # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; XID_Continue # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; XID_Continue # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; XID_Continue # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F7..0481 ; XID_Continue # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +0483..0487 ; XID_Continue # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE +048A..0527 ; XID_Continue # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; XID_Continue # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; XID_Continue # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0561..0587 ; XID_Continue # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +0591..05BD ; XID_Continue # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG +05BF ; XID_Continue # Mn HEBREW POINT RAFE +05C1..05C2 ; XID_Continue # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; XID_Continue # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; XID_Continue # Mn HEBREW POINT QAMATS QATAN +05D0..05EA ; XID_Continue # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; XID_Continue # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +0610..061A ; XID_Continue # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +0620..063F ; XID_Continue # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; XID_Continue # Lm ARABIC TATWEEL +0641..064A ; XID_Continue # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +064B..065F ; XID_Continue # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW +0660..0669 ; XID_Continue # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE +066E..066F ; XID_Continue # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0670 ; XID_Continue # Mn ARABIC LETTER SUPERSCRIPT ALEF +0671..06D3 ; XID_Continue # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D5 ; XID_Continue # Lo ARABIC LETTER AE +06D6..06DC ; XID_Continue # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06DF..06E4 ; XID_Continue # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA +06E5..06E6 ; XID_Continue # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06E7..06E8 ; XID_Continue # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06EA..06ED ; XID_Continue # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +06EE..06EF ; XID_Continue # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06F0..06F9 ; XID_Continue # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE +06FA..06FC ; XID_Continue # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FF ; XID_Continue # Lo ARABIC LETTER HEH WITH INVERTED V +0710 ; XID_Continue # Lo SYRIAC LETTER ALAPH +0711 ; XID_Continue # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0712..072F ; XID_Continue # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +0730..074A ; XID_Continue # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +074D..07A5 ; XID_Continue # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU +07A6..07B0 ; XID_Continue # Mn [11] THAANA ABAFILI..THAANA SUKUN +07B1 ; XID_Continue # Lo THAANA LETTER NAA +07C0..07C9 ; XID_Continue # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE +07CA..07EA ; XID_Continue # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07EB..07F3 ; XID_Continue # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +07F4..07F5 ; XID_Continue # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07FA ; XID_Continue # Lm NKO LAJANYALAN +0800..0815 ; XID_Continue # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +0816..0819 ; XID_Continue # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH +081A ; XID_Continue # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +081B..0823 ; XID_Continue # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0824 ; XID_Continue # Lm SAMARITAN MODIFIER LETTER SHORT A +0825..0827 ; XID_Continue # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0828 ; XID_Continue # Lm SAMARITAN MODIFIER LETTER I +0829..082D ; XID_Continue # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA +0840..0858 ; XID_Continue # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +0859..085B ; XID_Continue # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK +08A0 ; XID_Continue # Lo ARABIC LETTER BEH WITH SMALL V BELOW +08A2..08AC ; XID_Continue # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +08E4..08FE ; XID_Continue # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT +0900..0902 ; XID_Continue # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0903 ; XID_Continue # Mc DEVANAGARI SIGN VISARGA +0904..0939 ; XID_Continue # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093A ; XID_Continue # Mn DEVANAGARI VOWEL SIGN OE +093B ; XID_Continue # Mc DEVANAGARI VOWEL SIGN OOE +093C ; XID_Continue # Mn DEVANAGARI SIGN NUKTA +093D ; XID_Continue # Lo DEVANAGARI SIGN AVAGRAHA +093E..0940 ; XID_Continue # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; XID_Continue # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; XID_Continue # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094D ; XID_Continue # Mn DEVANAGARI SIGN VIRAMA +094E..094F ; XID_Continue # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0950 ; XID_Continue # Lo DEVANAGARI OM +0951..0957 ; XID_Continue # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE +0958..0961 ; XID_Continue # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0962..0963 ; XID_Continue # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0966..096F ; XID_Continue # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +0971 ; XID_Continue # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..0977 ; XID_Continue # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0979..097F ; XID_Continue # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA +0981 ; XID_Continue # Mn BENGALI SIGN CANDRABINDU +0982..0983 ; XID_Continue # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +0985..098C ; XID_Continue # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; XID_Continue # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; XID_Continue # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; XID_Continue # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; XID_Continue # Lo BENGALI LETTER LA +09B6..09B9 ; XID_Continue # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BC ; XID_Continue # Mn BENGALI SIGN NUKTA +09BD ; XID_Continue # Lo BENGALI SIGN AVAGRAHA +09BE..09C0 ; XID_Continue # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; XID_Continue # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; XID_Continue # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; XID_Continue # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09CD ; XID_Continue # Mn BENGALI SIGN VIRAMA +09CE ; XID_Continue # Lo BENGALI LETTER KHANDA TA +09D7 ; XID_Continue # Mc BENGALI AU LENGTH MARK +09DC..09DD ; XID_Continue # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; XID_Continue # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09E2..09E3 ; XID_Continue # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +09E6..09EF ; XID_Continue # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE +09F0..09F1 ; XID_Continue # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +0A01..0A02 ; XID_Continue # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A03 ; XID_Continue # Mc GURMUKHI SIGN VISARGA +0A05..0A0A ; XID_Continue # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; XID_Continue # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; XID_Continue # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; XID_Continue # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; XID_Continue # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; XID_Continue # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; XID_Continue # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3C ; XID_Continue # Mn GURMUKHI SIGN NUKTA +0A3E..0A40 ; XID_Continue # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; XID_Continue # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; XID_Continue # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; XID_Continue # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A51 ; XID_Continue # Mn GURMUKHI SIGN UDAAT +0A59..0A5C ; XID_Continue # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; XID_Continue # Lo GURMUKHI LETTER FA +0A66..0A6F ; XID_Continue # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE +0A70..0A71 ; XID_Continue # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A72..0A74 ; XID_Continue # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A75 ; XID_Continue # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; XID_Continue # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0A83 ; XID_Continue # Mc GUJARATI SIGN VISARGA +0A85..0A8D ; XID_Continue # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; XID_Continue # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; XID_Continue # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; XID_Continue # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; XID_Continue # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; XID_Continue # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABC ; XID_Continue # Mn GUJARATI SIGN NUKTA +0ABD ; XID_Continue # Lo GUJARATI SIGN AVAGRAHA +0ABE..0AC0 ; XID_Continue # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; XID_Continue # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; XID_Continue # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; XID_Continue # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; XID_Continue # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0ACD ; XID_Continue # Mn GUJARATI SIGN VIRAMA +0AD0 ; XID_Continue # Lo GUJARATI OM +0AE0..0AE1 ; XID_Continue # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0AE2..0AE3 ; XID_Continue # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0AE6..0AEF ; XID_Continue # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0B01 ; XID_Continue # Mn ORIYA SIGN CANDRABINDU +0B02..0B03 ; XID_Continue # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B05..0B0C ; XID_Continue # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; XID_Continue # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; XID_Continue # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; XID_Continue # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; XID_Continue # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; XID_Continue # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3C ; XID_Continue # Mn ORIYA SIGN NUKTA +0B3D ; XID_Continue # Lo ORIYA SIGN AVAGRAHA +0B3E ; XID_Continue # Mc ORIYA VOWEL SIGN AA +0B3F ; XID_Continue # Mn ORIYA VOWEL SIGN I +0B40 ; XID_Continue # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; XID_Continue # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; XID_Continue # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; XID_Continue # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B4D ; XID_Continue # Mn ORIYA SIGN VIRAMA +0B56 ; XID_Continue # Mn ORIYA AI LENGTH MARK +0B57 ; XID_Continue # Mc ORIYA AU LENGTH MARK +0B5C..0B5D ; XID_Continue # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; XID_Continue # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B62..0B63 ; XID_Continue # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B66..0B6F ; XID_Continue # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0B71 ; XID_Continue # Lo ORIYA LETTER WA +0B82 ; XID_Continue # Mn TAMIL SIGN ANUSVARA +0B83 ; XID_Continue # Lo TAMIL SIGN VISARGA +0B85..0B8A ; XID_Continue # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; XID_Continue # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; XID_Continue # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; XID_Continue # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; XID_Continue # Lo TAMIL LETTER JA +0B9E..0B9F ; XID_Continue # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; XID_Continue # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; XID_Continue # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; XID_Continue # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BBE..0BBF ; XID_Continue # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; XID_Continue # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; XID_Continue # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; XID_Continue # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; XID_Continue # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BCD ; XID_Continue # Mn TAMIL SIGN VIRAMA +0BD0 ; XID_Continue # Lo TAMIL OM +0BD7 ; XID_Continue # Mc TAMIL AU LENGTH MARK +0BE6..0BEF ; XID_Continue # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE +0C01..0C03 ; XID_Continue # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C05..0C0C ; XID_Continue # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; XID_Continue # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; XID_Continue # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; XID_Continue # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; XID_Continue # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA +0C3D ; XID_Continue # Lo TELUGU SIGN AVAGRAHA +0C3E..0C40 ; XID_Continue # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; XID_Continue # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; XID_Continue # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; XID_Continue # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; XID_Continue # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C58..0C59 ; XID_Continue # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA +0C60..0C61 ; XID_Continue # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C62..0C63 ; XID_Continue # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C66..0C6F ; XID_Continue # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0C82..0C83 ; XID_Continue # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C85..0C8C ; XID_Continue # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; XID_Continue # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; XID_Continue # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; XID_Continue # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; XID_Continue # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBC ; XID_Continue # Mn KANNADA SIGN NUKTA +0CBD ; XID_Continue # Lo KANNADA SIGN AVAGRAHA +0CBE ; XID_Continue # Mc KANNADA VOWEL SIGN AA +0CBF ; XID_Continue # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; XID_Continue # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; XID_Continue # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; XID_Continue # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; XID_Continue # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC..0CCD ; XID_Continue # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA +0CD5..0CD6 ; XID_Continue # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CDE ; XID_Continue # Lo KANNADA LETTER FA +0CE0..0CE1 ; XID_Continue # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE2..0CE3 ; XID_Continue # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0CE6..0CEF ; XID_Continue # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0CF1..0CF2 ; XID_Continue # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0D02..0D03 ; XID_Continue # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D05..0D0C ; XID_Continue # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; XID_Continue # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; XID_Continue # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3D ; XID_Continue # Lo MALAYALAM SIGN AVAGRAHA +0D3E..0D40 ; XID_Continue # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; XID_Continue # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; XID_Continue # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; XID_Continue # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D4D ; XID_Continue # Mn MALAYALAM SIGN VIRAMA +0D4E ; XID_Continue # Lo MALAYALAM LETTER DOT REPH +0D57 ; XID_Continue # Mc MALAYALAM AU LENGTH MARK +0D60..0D61 ; XID_Continue # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D62..0D63 ; XID_Continue # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D66..0D6F ; XID_Continue # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0D7A..0D7F ; XID_Continue # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D82..0D83 ; XID_Continue # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D85..0D96 ; XID_Continue # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; XID_Continue # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; XID_Continue # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; XID_Continue # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; XID_Continue # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DCA ; XID_Continue # Mn SINHALA SIGN AL-LAKUNA +0DCF..0DD1 ; XID_Continue # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; XID_Continue # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; XID_Continue # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; XID_Continue # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; XID_Continue # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E01..0E30 ; XID_Continue # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E31 ; XID_Continue # Mn THAI CHARACTER MAI HAN-AKAT +0E32..0E33 ; XID_Continue # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E34..0E3A ; XID_Continue # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E40..0E45 ; XID_Continue # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; XID_Continue # Lm THAI CHARACTER MAIYAMOK +0E47..0E4E ; XID_Continue # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN +0E50..0E59 ; XID_Continue # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE +0E81..0E82 ; XID_Continue # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; XID_Continue # Lo LAO LETTER KHO TAM +0E87..0E88 ; XID_Continue # Lo [2] LAO LETTER NGO..LAO LETTER CO +0E8A ; XID_Continue # Lo LAO LETTER SO TAM +0E8D ; XID_Continue # Lo LAO LETTER NYO +0E94..0E97 ; XID_Continue # Lo [4] LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; XID_Continue # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; XID_Continue # Lo [3] LAO LETTER MO..LAO LETTER LO LING +0EA5 ; XID_Continue # Lo LAO LETTER LO LOOT +0EA7 ; XID_Continue # Lo LAO LETTER WO +0EAA..0EAB ; XID_Continue # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB0 ; XID_Continue # Lo [4] LAO LETTER O..LAO VOWEL SIGN A +0EB1 ; XID_Continue # Mn LAO VOWEL SIGN MAI KAN +0EB2..0EB3 ; XID_Continue # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EB4..0EB9 ; XID_Continue # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; XID_Continue # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0EBD ; XID_Continue # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; XID_Continue # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; XID_Continue # Lm LAO KO LA +0EC8..0ECD ; XID_Continue # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA +0ED0..0ED9 ; XID_Continue # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE +0EDC..0EDF ; XID_Continue # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F00 ; XID_Continue # Lo TIBETAN SYLLABLE OM +0F18..0F19 ; XID_Continue # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F20..0F29 ; XID_Continue # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F35 ; XID_Continue # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; XID_Continue # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; XID_Continue # Mn TIBETAN MARK TSA -PHRU +0F3E..0F3F ; XID_Continue # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F40..0F47 ; XID_Continue # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; XID_Continue # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F71..0F7E ; XID_Continue # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F7F ; XID_Continue # Mc TIBETAN SIGN RNAM BCAD +0F80..0F84 ; XID_Continue # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA +0F86..0F87 ; XID_Continue # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0F88..0F8C ; XID_Continue # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +0F8D..0F97 ; XID_Continue # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; XID_Continue # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FC6 ; XID_Continue # Mn TIBETAN SYMBOL PADMA GDAN +1000..102A ; XID_Continue # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +102B..102C ; XID_Continue # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; XID_Continue # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; XID_Continue # Mc MYANMAR VOWEL SIGN E +1032..1037 ; XID_Continue # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW +1038 ; XID_Continue # Mc MYANMAR SIGN VISARGA +1039..103A ; XID_Continue # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +103B..103C ; XID_Continue # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; XID_Continue # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +103F ; XID_Continue # Lo MYANMAR LETTER GREAT SA +1040..1049 ; XID_Continue # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +1050..1055 ; XID_Continue # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +1056..1057 ; XID_Continue # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; XID_Continue # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105A..105D ; XID_Continue # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +105E..1060 ; XID_Continue # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1061 ; XID_Continue # Lo MYANMAR LETTER SGAW KAREN SHA +1062..1064 ; XID_Continue # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO +1065..1066 ; XID_Continue # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +1067..106D ; XID_Continue # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 +106E..1070 ; XID_Continue # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1071..1074 ; XID_Continue # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1075..1081 ; XID_Continue # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +1082 ; XID_Continue # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1083..1084 ; XID_Continue # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; XID_Continue # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +1087..108C ; XID_Continue # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108D ; XID_Continue # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +108E ; XID_Continue # Lo MYANMAR LETTER RUMAI PALAUNG FA +108F ; XID_Continue # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +1090..1099 ; XID_Continue # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE +109A..109C ; XID_Continue # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A +109D ; XID_Continue # Mn MYANMAR VOWEL SIGN AITON AI +10A0..10C5 ; XID_Continue # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; XID_Continue # L& GEORGIAN CAPITAL LETTER YN +10CD ; XID_Continue # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; XID_Continue # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FC ; XID_Continue # Lm MODIFIER LETTER GEORGIAN NAR +10FD..1248 ; XID_Continue # Lo [332] GEORGIAN LETTER AEN..ETHIOPIC SYLLABLE QWA +124A..124D ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; XID_Continue # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; XID_Continue # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; XID_Continue # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; XID_Continue # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; XID_Continue # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; XID_Continue # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; XID_Continue # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +135D..135F ; XID_Continue # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK +1369..1371 ; XID_Continue # No [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE +1380..138F ; XID_Continue # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +13A0..13F4 ; XID_Continue # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV +1401..166C ; XID_Continue # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166F..167F ; XID_Continue # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +1681..169A ; XID_Continue # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +16A0..16EA ; XID_Continue # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EE..16F0 ; XID_Continue # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +1700..170C ; XID_Continue # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA +170E..1711 ; XID_Continue # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA +1712..1714 ; XID_Continue # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA +1720..1731 ; XID_Continue # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1732..1734 ; XID_Continue # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD +1740..1751 ; XID_Continue # Lo [18] BUHID LETTER A..BUHID LETTER HA +1752..1753 ; XID_Continue # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1760..176C ; XID_Continue # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; XID_Continue # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1772..1773 ; XID_Continue # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +1780..17B3 ; XID_Continue # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17B4..17B5 ; XID_Continue # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +17B6 ; XID_Continue # Mc KHMER VOWEL SIGN AA +17B7..17BD ; XID_Continue # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; XID_Continue # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C6 ; XID_Continue # Mn KHMER SIGN NIKAHIT +17C7..17C8 ; XID_Continue # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +17C9..17D3 ; XID_Continue # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17D7 ; XID_Continue # Lm KHMER SIGN LEK TOO +17DC ; XID_Continue # Lo KHMER SIGN AVAKRAHASANYA +17DD ; XID_Continue # Mn KHMER SIGN ATTHACAN +17E0..17E9 ; XID_Continue # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE +180B..180D ; XID_Continue # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +1810..1819 ; XID_Continue # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE +1820..1842 ; XID_Continue # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; XID_Continue # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1877 ; XID_Continue # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +1880..18A8 ; XID_Continue # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA +18A9 ; XID_Continue # Mn MONGOLIAN LETTER ALI GALI DAGALGA +18AA ; XID_Continue # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +18B0..18F5 ; XID_Continue # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +1900..191C ; XID_Continue # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +1920..1922 ; XID_Continue # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; XID_Continue # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; XID_Continue # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1929..192B ; XID_Continue # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; XID_Continue # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1932 ; XID_Continue # Mn LIMBU SMALL LETTER ANUSVARA +1933..1938 ; XID_Continue # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +1939..193B ; XID_Continue # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1946..194F ; XID_Continue # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE +1950..196D ; XID_Continue # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; XID_Continue # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1980..19AB ; XID_Continue # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19B0..19C0 ; XID_Continue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +19C1..19C7 ; XID_Continue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +19C8..19C9 ; XID_Continue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +19D0..19D9 ; XID_Continue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE +19DA ; XID_Continue # No NEW TAI LUE THAM DIGIT ONE +1A00..1A16 ; XID_Continue # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A17..1A18 ; XID_Continue # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1B ; XID_Continue # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE +1A20..1A54 ; XID_Continue # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1A55 ; XID_Continue # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; XID_Continue # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A57 ; XID_Continue # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A58..1A5E ; XID_Continue # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A60 ; XID_Continue # Mn TAI THAM SIGN SAKOT +1A61 ; XID_Continue # Mc TAI THAM VOWEL SIGN A +1A62 ; XID_Continue # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; XID_Continue # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; XID_Continue # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; XID_Continue # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73..1A7C ; XID_Continue # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; XID_Continue # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1A80..1A89 ; XID_Continue # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE +1A90..1A99 ; XID_Continue # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE +1AA7 ; XID_Continue # Lm TAI THAM SIGN MAI YAMOK +1B00..1B03 ; XID_Continue # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B04 ; XID_Continue # Mc BALINESE SIGN BISAH +1B05..1B33 ; XID_Continue # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B34 ; XID_Continue # Mn BALINESE SIGN REREKAN +1B35 ; XID_Continue # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; XID_Continue # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; XID_Continue # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; XID_Continue # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; XID_Continue # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; XID_Continue # Mn BALINESE VOWEL SIGN PEPET +1B43..1B44 ; XID_Continue # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG +1B45..1B4B ; XID_Continue # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK +1B50..1B59 ; XID_Continue # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE +1B6B..1B73 ; XID_Continue # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1B80..1B81 ; XID_Continue # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1B82 ; XID_Continue # Mc SUNDANESE SIGN PANGWISAD +1B83..1BA0 ; XID_Continue # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BA1 ; XID_Continue # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA5 ; XID_Continue # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; XID_Continue # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; XID_Continue # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BAA ; XID_Continue # Mc SUNDANESE SIGN PAMAAEH +1BAB ; XID_Continue # Mn SUNDANESE SIGN VIRAMA +1BAC..1BAD ; XID_Continue # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA +1BAE..1BAF ; XID_Continue # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BB0..1BB9 ; XID_Continue # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE +1BBA..1BE5 ; XID_Continue # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U +1BE6 ; XID_Continue # Mn BATAK SIGN TOMPI +1BE7 ; XID_Continue # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; XID_Continue # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; XID_Continue # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; XID_Continue # Mn BATAK VOWEL SIGN KARO O +1BEE ; XID_Continue # Mc BATAK VOWEL SIGN U +1BEF..1BF1 ; XID_Continue # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1BF2..1BF3 ; XID_Continue # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN +1C00..1C23 ; XID_Continue # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C24..1C2B ; XID_Continue # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C2C..1C33 ; XID_Continue # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C34..1C35 ; XID_Continue # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1C36..1C37 ; XID_Continue # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1C40..1C49 ; XID_Continue # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE +1C4D..1C4F ; XID_Continue # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +1C50..1C59 ; XID_Continue # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE +1C5A..1C77 ; XID_Continue # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; XID_Continue # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CD0..1CD2 ; XID_Continue # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD4..1CE0 ; XID_Continue # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE1 ; XID_Continue # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CE2..1CE8 ; XID_Continue # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CE9..1CEC ; XID_Continue # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CED ; XID_Continue # Mn VEDIC SIGN TIRYAK +1CEE..1CF1 ; XID_Continue # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA +1CF2..1CF3 ; XID_Continue # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA +1CF4 ; XID_Continue # Mn VEDIC TONE CANDRA ABOVE +1CF5..1CF6 ; XID_Continue # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1D00..1D2B ; XID_Continue # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; XID_Continue # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; XID_Continue # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; XID_Continue # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; XID_Continue # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; XID_Continue # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1DC0..1DE6 ; XID_Continue # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z +1DFC..1DFF ; XID_Continue # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +1E00..1F15 ; XID_Continue # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; XID_Continue # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; XID_Continue # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; XID_Continue # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; XID_Continue # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; XID_Continue # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; XID_Continue # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; XID_Continue # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; XID_Continue # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; XID_Continue # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; XID_Continue # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE ; XID_Continue # L& GREEK PROSGEGRAMMENI +1FC2..1FC4 ; XID_Continue # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; XID_Continue # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD0..1FD3 ; XID_Continue # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; XID_Continue # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FE0..1FEC ; XID_Continue # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FF2..1FF4 ; XID_Continue # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; XID_Continue # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +203F..2040 ; XID_Continue # Pc [2] UNDERTIE..CHARACTER TIE +2054 ; XID_Continue # Pc INVERTED UNDERTIE +2071 ; XID_Continue # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; XID_Continue # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; XID_Continue # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +20D0..20DC ; XID_Continue # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20E1 ; XID_Continue # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E5..20F0 ; XID_Continue # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE +2102 ; XID_Continue # L& DOUBLE-STRUCK CAPITAL C +2107 ; XID_Continue # L& EULER CONSTANT +210A..2113 ; XID_Continue # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; XID_Continue # L& DOUBLE-STRUCK CAPITAL N +2118 ; XID_Continue # Sm SCRIPT CAPITAL P +2119..211D ; XID_Continue # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; XID_Continue # L& DOUBLE-STRUCK CAPITAL Z +2126 ; XID_Continue # L& OHM SIGN +2128 ; XID_Continue # L& BLACK-LETTER CAPITAL Z +212A..212D ; XID_Continue # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212E ; XID_Continue # So ESTIMATED SYMBOL +212F..2134 ; XID_Continue # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2135..2138 ; XID_Continue # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; XID_Continue # L& INFORMATION SOURCE +213C..213F ; XID_Continue # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; XID_Continue # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214E ; XID_Continue # L& TURNED SMALL F +2160..2182 ; XID_Continue # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; XID_Continue # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; XID_Continue # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2C00..2C2E ; XID_Continue # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; XID_Continue # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; XID_Continue # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; XID_Continue # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; XID_Continue # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CEB..2CEE ; XID_Continue # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CEF..2CF1 ; XID_Continue # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2CF2..2CF3 ; XID_Continue # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2D00..2D25 ; XID_Continue # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; XID_Continue # L& GEORGIAN SMALL LETTER YN +2D2D ; XID_Continue # L& GEORGIAN SMALL LETTER AEN +2D30..2D67 ; XID_Continue # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; XID_Continue # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D7F ; XID_Continue # Mn TIFINAGH CONSONANT JOINER +2D80..2D96 ; XID_Continue # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +2DE0..2DFF ; XID_Continue # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +3005 ; XID_Continue # Lm IDEOGRAPHIC ITERATION MARK +3006 ; XID_Continue # Lo IDEOGRAPHIC CLOSING MARK +3007 ; XID_Continue # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; XID_Continue # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +302A..302D ; XID_Continue # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK +302E..302F ; XID_Continue # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK +3031..3035 ; XID_Continue # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3038..303A ; XID_Continue # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; XID_Continue # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; XID_Continue # Lo MASU MARK +3041..3096 ; XID_Continue # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +3099..309A ; XID_Continue # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; XID_Continue # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; XID_Continue # Lo HIRAGANA DIGRAPH YORI +30A1..30FA ; XID_Continue # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FC..30FE ; XID_Continue # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +30FF ; XID_Continue # Lo KATAKANA DIGRAPH KOTO +3105..312D ; XID_Continue # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH +3131..318E ; XID_Continue # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +31A0..31BA ; XID_Continue # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY +31F0..31FF ; XID_Continue # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3400..4DB5 ; XID_Continue # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCC ; XID_Continue # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC +A000..A014 ; XID_Continue # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; XID_Continue # Lm YI SYLLABLE WU +A016..A48C ; XID_Continue # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A4D0..A4F7 ; XID_Continue # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; XID_Continue # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A500..A60B ; XID_Continue # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; XID_Continue # Lm VAI SYLLABLE LENGTHENER +A610..A61F ; XID_Continue # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A620..A629 ; XID_Continue # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE +A62A..A62B ; XID_Continue # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO +A640..A66D ; XID_Continue # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; XID_Continue # Lo CYRILLIC LETTER MULTIOCULAR O +A66F ; XID_Continue # Mn COMBINING CYRILLIC VZMET +A674..A67D ; XID_Continue # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK +A67F ; XID_Continue # Lm CYRILLIC PAYEROK +A680..A697 ; XID_Continue # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A69F ; XID_Continue # Mn COMBINING CYRILLIC LETTER IOTIFIED E +A6A0..A6E5 ; XID_Continue # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; XID_Continue # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A6F0..A6F1 ; XID_Continue # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A717..A71F ; XID_Continue # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A722..A76F ; XID_Continue # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; XID_Continue # Lm MODIFIER LETTER US +A771..A787 ; XID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A788 ; XID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A78B..A78E ; XID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; XID_Continue # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; XID_Continue # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; XID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; XID_Continue # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A801 ; XID_Continue # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I +A802 ; XID_Continue # Mn SYLOTI NAGRI SIGN DVISVARA +A803..A805 ; XID_Continue # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A806 ; XID_Continue # Mn SYLOTI NAGRI SIGN HASANTA +A807..A80A ; XID_Continue # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80B ; XID_Continue # Mn SYLOTI NAGRI SIGN ANUSVARA +A80C..A822 ; XID_Continue # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A823..A824 ; XID_Continue # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; XID_Continue # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; XID_Continue # Mc SYLOTI NAGRI VOWEL SIGN OO +A840..A873 ; XID_Continue # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A880..A881 ; XID_Continue # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A882..A8B3 ; XID_Continue # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8B4..A8C3 ; XID_Continue # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A8C4 ; XID_Continue # Mn SAURASHTRA SIGN VIRAMA +A8D0..A8D9 ; XID_Continue # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE +A8E0..A8F1 ; XID_Continue # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A8F2..A8F7 ; XID_Continue # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8FB ; XID_Continue # Lo DEVANAGARI HEADSTROKE +A900..A909 ; XID_Continue # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE +A90A..A925 ; XID_Continue # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A926..A92D ; XID_Continue # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU +A930..A946 ; XID_Continue # Lo [23] REJANG LETTER KA..REJANG LETTER A +A947..A951 ; XID_Continue # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A952..A953 ; XID_Continue # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA +A960..A97C ; XID_Continue # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A980..A982 ; XID_Continue # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A983 ; XID_Continue # Mc JAVANESE SIGN WIGNYAN +A984..A9B2 ; XID_Continue # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9B3 ; XID_Continue # Mn JAVANESE SIGN CECAK TELU +A9B4..A9B5 ; XID_Continue # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; XID_Continue # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; XID_Continue # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC ; XID_Continue # Mn JAVANESE VOWEL SIGN PEPET +A9BD..A9C0 ; XID_Continue # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON +A9CF ; XID_Continue # Lm JAVANESE PANGRANGKEP +A9D0..A9D9 ; XID_Continue # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE +AA00..AA28 ; XID_Continue # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA29..AA2E ; XID_Continue # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; XID_Continue # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; XID_Continue # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA33..AA34 ; XID_Continue # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; XID_Continue # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA40..AA42 ; XID_Continue # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA43 ; XID_Continue # Mn CHAM CONSONANT SIGN FINAL NG +AA44..AA4B ; XID_Continue # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA4C ; XID_Continue # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; XID_Continue # Mc CHAM CONSONANT SIGN FINAL H +AA50..AA59 ; XID_Continue # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE +AA60..AA6F ; XID_Continue # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; XID_Continue # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; XID_Continue # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA7A ; XID_Continue # Lo MYANMAR LETTER AITON RA +AA7B ; XID_Continue # Mc MYANMAR SIGN PAO KAREN TONE +AA80..AAAF ; XID_Continue # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB0 ; XID_Continue # Mn TAI VIET MAI KANG +AAB1 ; XID_Continue # Lo TAI VIET VOWEL AA +AAB2..AAB4 ; XID_Continue # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB5..AAB6 ; XID_Continue # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB7..AAB8 ; XID_Continue # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AAB9..AABD ; XID_Continue # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AABE..AABF ; XID_Continue # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK +AAC0 ; XID_Continue # Lo TAI VIET TONE MAI NUENG +AAC1 ; XID_Continue # Mn TAI VIET TONE MAI THO +AAC2 ; XID_Continue # Lo TAI VIET TONE MAI SONG +AADB..AADC ; XID_Continue # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; XID_Continue # Lm TAI VIET SYMBOL SAM +AAE0..AAEA ; XID_Continue # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAEB ; XID_Continue # Mc MEETEI MAYEK VOWEL SIGN II +AAEC..AAED ; XID_Continue # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAEE..AAEF ; XID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU +AAF2 ; XID_Continue # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; XID_Continue # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AAF5 ; XID_Continue # Mc MEETEI MAYEK VOWEL SIGN VISARGA +AAF6 ; XID_Continue # Mn MEETEI MAYEK VIRAMA +AB01..AB06 ; XID_Continue # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; XID_Continue # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; XID_Continue # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +ABC0..ABE2 ; XID_Continue # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +ABE3..ABE4 ; XID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; XID_Continue # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; XID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; XID_Continue # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; XID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +ABEC ; XID_Continue # Mc MEETEI MAYEK LUM IYEK +ABED ; XID_Continue # Mn MEETEI MAYEK APUN IYEK +ABF0..ABF9 ; XID_Continue # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE +AC00..D7A3 ; XID_Continue # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; XID_Continue # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; XID_Continue # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +F900..FA6D ; XID_Continue # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; XID_Continue # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +FB00..FB06 ; XID_Continue # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; XID_Continue # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FB1D ; XID_Continue # Lo HEBREW LETTER YOD WITH HIRIQ +FB1E ; XID_Continue # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FB1F..FB28 ; XID_Continue # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB2A..FB36 ; XID_Continue # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; XID_Continue # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; XID_Continue # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; XID_Continue # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; XID_Continue # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FBB1 ; XID_Continue # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBD3..FC5D ; XID_Continue # Lo [139] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM +FC64..FD3D ; XID_Continue # Lo [218] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD50..FD8F ; XID_Continue # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; XID_Continue # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDF0..FDF9 ; XID_Continue # Lo [10] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE SALLA ISOLATED FORM +FE00..FE0F ; XID_Continue # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FE20..FE26 ; XID_Continue # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON +FE33..FE34 ; XID_Continue # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE +FE4D..FE4F ; XID_Continue # Pc [3] DASHED LOW LINE..WAVY LOW LINE +FE71 ; XID_Continue # Lo ARABIC TATWEEL WITH FATHATAN ABOVE +FE73 ; XID_Continue # Lo ARABIC TAIL FRAGMENT +FE77 ; XID_Continue # Lo ARABIC FATHA MEDIAL FORM +FE79 ; XID_Continue # Lo ARABIC DAMMA MEDIAL FORM +FE7B ; XID_Continue # Lo ARABIC KASRA MEDIAL FORM +FE7D ; XID_Continue # Lo ARABIC SHADDA MEDIAL FORM +FE7F..FEFC ; XID_Continue # Lo [126] ARABIC SUKUN MEDIAL FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FF10..FF19 ; XID_Continue # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE +FF21..FF3A ; XID_Continue # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF3F ; XID_Continue # Pc FULLWIDTH LOW LINE +FF41..FF5A ; XID_Continue # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +FF66..FF6F ; XID_Continue # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; XID_Continue # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71..FF9D ; XID_Continue # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +FF9E..FF9F ; XID_Continue # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFA0..FFBE ; XID_Continue # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; XID_Continue # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; XID_Continue # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; XID_Continue # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I +10000..1000B ; XID_Continue # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; XID_Continue # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; XID_Continue # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; XID_Continue # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; XID_Continue # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; XID_Continue # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; XID_Continue # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +10140..10174 ; XID_Continue # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +101FD ; XID_Continue # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE +10280..1029C ; XID_Continue # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X +102A0..102D0 ; XID_Continue # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 +10300..1031E ; XID_Continue # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU +10330..10340 ; XID_Continue # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; XID_Continue # Nl GOTHIC LETTER NINETY +10342..10349 ; XID_Continue # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; XID_Continue # Nl GOTHIC LETTER NINE HUNDRED +10380..1039D ; XID_Continue # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +103A0..103C3 ; XID_Continue # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; XID_Continue # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D1..103D5 ; XID_Continue # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED +10400..1044F ; XID_Continue # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +10450..1049D ; XID_Continue # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO +104A0..104A9 ; XID_Continue # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE +10800..10805 ; XID_Continue # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; XID_Continue # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; XID_Continue # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; XID_Continue # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; XID_Continue # Lo CYPRIOT SYLLABLE ZA +1083F..10855 ; XID_Continue # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW +10900..10915 ; XID_Continue # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10920..10939 ; XID_Continue # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10980..109B7 ; XID_Continue # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109BE..109BF ; XID_Continue # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +10A00 ; XID_Continue # Lo KHAROSHTHI LETTER A +10A01..10A03 ; XID_Continue # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; XID_Continue # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; XID_Continue # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +10A10..10A13 ; XID_Continue # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; XID_Continue # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A33 ; XID_Continue # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A38..10A3A ; XID_Continue # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +10A3F ; XID_Continue # Mn KHAROSHTHI VIRAMA +10A60..10A7C ; XID_Continue # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10B00..10B35 ; XID_Continue # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B40..10B55 ; XID_Continue # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B60..10B72 ; XID_Continue # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10C00..10C48 ; XID_Continue # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +11000 ; XID_Continue # Mc BRAHMI SIGN CANDRABINDU +11001 ; XID_Continue # Mn BRAHMI SIGN ANUSVARA +11002 ; XID_Continue # Mc BRAHMI SIGN VISARGA +11003..11037 ; XID_Continue # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11038..11046 ; XID_Continue # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA +11066..1106F ; XID_Continue # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE +11080..11081 ; XID_Continue # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA +11082 ; XID_Continue # Mc KAITHI SIGN VISARGA +11083..110AF ; XID_Continue # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110B0..110B2 ; XID_Continue # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; XID_Continue # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; XID_Continue # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU +110B9..110BA ; XID_Continue # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +110D0..110E8 ; XID_Continue # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +110F0..110F9 ; XID_Continue # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE +11100..11102 ; XID_Continue # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA +11103..11126 ; XID_Continue # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +11127..1112B ; XID_Continue # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112C ; XID_Continue # Mc CHAKMA VOWEL SIGN E +1112D..11134 ; XID_Continue # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA +11136..1113F ; XID_Continue # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE +11180..11181 ; XID_Continue # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +11182 ; XID_Continue # Mc SHARADA SIGN VISARGA +11183..111B2 ; XID_Continue # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111B3..111B5 ; XID_Continue # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II +111B6..111BE ; XID_Continue # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +111BF..111C0 ; XID_Continue # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA +111C1..111C4 ; XID_Continue # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +111D0..111D9 ; XID_Continue # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE +11680..116AA ; XID_Continue # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +116AB ; XID_Continue # Mn TAKRI SIGN ANUSVARA +116AC ; XID_Continue # Mc TAKRI SIGN VISARGA +116AD ; XID_Continue # Mn TAKRI VOWEL SIGN AA +116AE..116AF ; XID_Continue # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II +116B0..116B5 ; XID_Continue # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +116B6 ; XID_Continue # Mc TAKRI SIGN VIRAMA +116B7 ; XID_Continue # Mn TAKRI SIGN NUKTA +116C0..116C9 ; XID_Continue # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE +12000..1236E ; XID_Continue # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +12400..12462 ; XID_Continue # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +13000..1342E ; XID_Continue # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +16800..16A38 ; XID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16F00..16F44 ; XID_Continue # Lo [69] MIAO LETTER PA..MIAO LETTER HHA +16F50 ; XID_Continue # Lo MIAO LETTER NASALIZATION +16F51..16F7E ; XID_Continue # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG +16F8F..16F92 ; XID_Continue # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW +16F93..16F9F ; XID_Continue # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1B000..1B001 ; XID_Continue # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1D165..1D166 ; XID_Continue # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM +1D167..1D169 ; XID_Continue # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D16D..1D172 ; XID_Continue # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 +1D17B..1D182 ; XID_Continue # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; XID_Continue # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; XID_Continue # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO +1D242..1D244 ; XID_Continue # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME +1D400..1D454 ; XID_Continue # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; XID_Continue # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; XID_Continue # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; XID_Continue # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; XID_Continue # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; XID_Continue # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; XID_Continue # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; XID_Continue # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; XID_Continue # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; XID_Continue # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; XID_Continue # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; XID_Continue # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; XID_Continue # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; XID_Continue # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; XID_Continue # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; XID_Continue # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; XID_Continue # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; XID_Continue # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; XID_Continue # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; XID_Continue # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; XID_Continue # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; XID_Continue # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; XID_Continue # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; XID_Continue # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; XID_Continue # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; XID_Continue # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; XID_Continue # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; XID_Continue # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; XID_Continue # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; XID_Continue # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; XID_Continue # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE +1EE00..1EE03 ; XID_Continue # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; XID_Continue # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; XID_Continue # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; XID_Continue # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; XID_Continue # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; XID_Continue # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; XID_Continue # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; XID_Continue # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; XID_Continue # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; XID_Continue # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; XID_Continue # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; XID_Continue # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; XID_Continue # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; XID_Continue # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; XID_Continue # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; XID_Continue # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; XID_Continue # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; XID_Continue # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; XID_Continue # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; XID_Continue # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; XID_Continue # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; XID_Continue # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; XID_Continue # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; XID_Continue # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +20000..2A6D6 ; XID_Continue # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; XID_Continue # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; XID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D +E0100..E01EF ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 103336 + +# ================================================ + +# Derived Property: Default_Ignorable_Code_Point +# Generated from +# Other_Default_Ignorable_Code_Point +# + Cf (Format characters) +# + Variation_Selector +# - White_Space +# - FFF9..FFFB (Annotation Characters) +# - 0600..0604, 06DD, 070F, 110BD (exceptional Cf characters that should be visible) + +00AD ; Default_Ignorable_Code_Point # Cf SOFT HYPHEN +034F ; Default_Ignorable_Code_Point # Mn COMBINING GRAPHEME JOINER +115F..1160 ; Default_Ignorable_Code_Point # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER +17B4..17B5 ; Default_Ignorable_Code_Point # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +180B..180D ; Default_Ignorable_Code_Point # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +200B..200F ; Default_Ignorable_Code_Point # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK +202A..202E ; Default_Ignorable_Code_Point # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE +2060..2064 ; Default_Ignorable_Code_Point # Cf [5] WORD JOINER..INVISIBLE PLUS +2065..2069 ; Default_Ignorable_Code_Point # Cn [5] .. +206A..206F ; Default_Ignorable_Code_Point # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES +3164 ; Default_Ignorable_Code_Point # Lo HANGUL FILLER +FE00..FE0F ; Default_Ignorable_Code_Point # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FEFF ; Default_Ignorable_Code_Point # Cf ZERO WIDTH NO-BREAK SPACE +FFA0 ; Default_Ignorable_Code_Point # Lo HALFWIDTH HANGUL FILLER +FFF0..FFF8 ; Default_Ignorable_Code_Point # Cn [9] .. +1D173..1D17A ; Default_Ignorable_Code_Point # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE +E0000 ; Default_Ignorable_Code_Point # Cn +E0001 ; Default_Ignorable_Code_Point # Cf LANGUAGE TAG +E0002..E001F ; Default_Ignorable_Code_Point # Cn [30] .. +E0020..E007F ; Default_Ignorable_Code_Point # Cf [96] TAG SPACE..CANCEL TAG +E0080..E00FF ; Default_Ignorable_Code_Point # Cn [128] .. +E0100..E01EF ; Default_Ignorable_Code_Point # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 +E01F0..E0FFF ; Default_Ignorable_Code_Point # Cn [3600] .. + +# Total code points: 4167 + +# ================================================ + +# Derived Property: Grapheme_Extend +# Generated from: Me + Mn + Other_Grapheme_Extend +# Note: depending on an application's interpretation of Co (private use), +# they may be either in Grapheme_Base, or in Grapheme_Extend, or in neither. + +0300..036F ; Grapheme_Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X +0483..0487 ; Grapheme_Extend # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE +0488..0489 ; Grapheme_Extend # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN +0591..05BD ; Grapheme_Extend # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG +05BF ; Grapheme_Extend # Mn HEBREW POINT RAFE +05C1..05C2 ; Grapheme_Extend # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; Grapheme_Extend # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; Grapheme_Extend # Mn HEBREW POINT QAMATS QATAN +0610..061A ; Grapheme_Extend # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +064B..065F ; Grapheme_Extend # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW +0670 ; Grapheme_Extend # Mn ARABIC LETTER SUPERSCRIPT ALEF +06D6..06DC ; Grapheme_Extend # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06DF..06E4 ; Grapheme_Extend # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA +06E7..06E8 ; Grapheme_Extend # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06EA..06ED ; Grapheme_Extend # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +0711 ; Grapheme_Extend # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0730..074A ; Grapheme_Extend # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +07A6..07B0 ; Grapheme_Extend # Mn [11] THAANA ABAFILI..THAANA SUKUN +07EB..07F3 ; Grapheme_Extend # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +0816..0819 ; Grapheme_Extend # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH +081B..0823 ; Grapheme_Extend # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0825..0827 ; Grapheme_Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0829..082D ; Grapheme_Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA +0859..085B ; Grapheme_Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK +08E4..08FE ; Grapheme_Extend # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT +0900..0902 ; Grapheme_Extend # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +093A ; Grapheme_Extend # Mn DEVANAGARI VOWEL SIGN OE +093C ; Grapheme_Extend # Mn DEVANAGARI SIGN NUKTA +0941..0948 ; Grapheme_Extend # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +094D ; Grapheme_Extend # Mn DEVANAGARI SIGN VIRAMA +0951..0957 ; Grapheme_Extend # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE +0962..0963 ; Grapheme_Extend # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0981 ; Grapheme_Extend # Mn BENGALI SIGN CANDRABINDU +09BC ; Grapheme_Extend # Mn BENGALI SIGN NUKTA +09BE ; Grapheme_Extend # Mc BENGALI VOWEL SIGN AA +09C1..09C4 ; Grapheme_Extend # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09CD ; Grapheme_Extend # Mn BENGALI SIGN VIRAMA +09D7 ; Grapheme_Extend # Mc BENGALI AU LENGTH MARK +09E2..09E3 ; Grapheme_Extend # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +0A01..0A02 ; Grapheme_Extend # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A3C ; Grapheme_Extend # Mn GURMUKHI SIGN NUKTA +0A41..0A42 ; Grapheme_Extend # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Grapheme_Extend # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; Grapheme_Extend # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A51 ; Grapheme_Extend # Mn GURMUKHI SIGN UDAAT +0A70..0A71 ; Grapheme_Extend # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A75 ; Grapheme_Extend # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; Grapheme_Extend # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0ABC ; Grapheme_Extend # Mn GUJARATI SIGN NUKTA +0AC1..0AC5 ; Grapheme_Extend # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Grapheme_Extend # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0ACD ; Grapheme_Extend # Mn GUJARATI SIGN VIRAMA +0AE2..0AE3 ; Grapheme_Extend # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0B01 ; Grapheme_Extend # Mn ORIYA SIGN CANDRABINDU +0B3C ; Grapheme_Extend # Mn ORIYA SIGN NUKTA +0B3E ; Grapheme_Extend # Mc ORIYA VOWEL SIGN AA +0B3F ; Grapheme_Extend # Mn ORIYA VOWEL SIGN I +0B41..0B44 ; Grapheme_Extend # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B4D ; Grapheme_Extend # Mn ORIYA SIGN VIRAMA +0B56 ; Grapheme_Extend # Mn ORIYA AI LENGTH MARK +0B57 ; Grapheme_Extend # Mc ORIYA AU LENGTH MARK +0B62..0B63 ; Grapheme_Extend # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B82 ; Grapheme_Extend # Mn TAMIL SIGN ANUSVARA +0BBE ; Grapheme_Extend # Mc TAMIL VOWEL SIGN AA +0BC0 ; Grapheme_Extend # Mn TAMIL VOWEL SIGN II +0BCD ; Grapheme_Extend # Mn TAMIL SIGN VIRAMA +0BD7 ; Grapheme_Extend # Mc TAMIL AU LENGTH MARK +0C3E..0C40 ; Grapheme_Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C46..0C48 ; Grapheme_Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; Grapheme_Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; Grapheme_Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C62..0C63 ; Grapheme_Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0CBC ; Grapheme_Extend # Mn KANNADA SIGN NUKTA +0CBF ; Grapheme_Extend # Mn KANNADA VOWEL SIGN I +0CC2 ; Grapheme_Extend # Mc KANNADA VOWEL SIGN UU +0CC6 ; Grapheme_Extend # Mn KANNADA VOWEL SIGN E +0CCC..0CCD ; Grapheme_Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA +0CD5..0CD6 ; Grapheme_Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CE2..0CE3 ; Grapheme_Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0D3E ; Grapheme_Extend # Mc MALAYALAM VOWEL SIGN AA +0D41..0D44 ; Grapheme_Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D4D ; Grapheme_Extend # Mn MALAYALAM SIGN VIRAMA +0D57 ; Grapheme_Extend # Mc MALAYALAM AU LENGTH MARK +0D62..0D63 ; Grapheme_Extend # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0DCA ; Grapheme_Extend # Mn SINHALA SIGN AL-LAKUNA +0DCF ; Grapheme_Extend # Mc SINHALA VOWEL SIGN AELA-PILLA +0DD2..0DD4 ; Grapheme_Extend # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Grapheme_Extend # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DDF ; Grapheme_Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA +0E31 ; Grapheme_Extend # Mn THAI CHARACTER MAI HAN-AKAT +0E34..0E3A ; Grapheme_Extend # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E47..0E4E ; Grapheme_Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN +0EB1 ; Grapheme_Extend # Mn LAO VOWEL SIGN MAI KAN +0EB4..0EB9 ; Grapheme_Extend # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; Grapheme_Extend # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0EC8..0ECD ; Grapheme_Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA +0F18..0F19 ; Grapheme_Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F35 ; Grapheme_Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; Grapheme_Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; Grapheme_Extend # Mn TIBETAN MARK TSA -PHRU +0F71..0F7E ; Grapheme_Extend # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F80..0F84 ; Grapheme_Extend # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA +0F86..0F87 ; Grapheme_Extend # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0F8D..0F97 ; Grapheme_Extend # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Grapheme_Extend # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FC6 ; Grapheme_Extend # Mn TIBETAN SYMBOL PADMA GDAN +102D..1030 ; Grapheme_Extend # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1032..1037 ; Grapheme_Extend # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW +1039..103A ; Grapheme_Extend # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +103D..103E ; Grapheme_Extend # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +1058..1059 ; Grapheme_Extend # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105E..1060 ; Grapheme_Extend # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1071..1074 ; Grapheme_Extend # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1082 ; Grapheme_Extend # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1085..1086 ; Grapheme_Extend # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +108D ; Grapheme_Extend # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +109D ; Grapheme_Extend # Mn MYANMAR VOWEL SIGN AITON AI +135D..135F ; Grapheme_Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK +1712..1714 ; Grapheme_Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA +1732..1734 ; Grapheme_Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD +1752..1753 ; Grapheme_Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1772..1773 ; Grapheme_Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +17B4..17B5 ; Grapheme_Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +17B7..17BD ; Grapheme_Extend # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17C6 ; Grapheme_Extend # Mn KHMER SIGN NIKAHIT +17C9..17D3 ; Grapheme_Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17DD ; Grapheme_Extend # Mn KHMER SIGN ATTHACAN +180B..180D ; Grapheme_Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +18A9 ; Grapheme_Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA +1920..1922 ; Grapheme_Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1927..1928 ; Grapheme_Extend # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1932 ; Grapheme_Extend # Mn LIMBU SMALL LETTER ANUSVARA +1939..193B ; Grapheme_Extend # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1A17..1A18 ; Grapheme_Extend # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A56 ; Grapheme_Extend # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A58..1A5E ; Grapheme_Extend # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A60 ; Grapheme_Extend # Mn TAI THAM SIGN SAKOT +1A62 ; Grapheme_Extend # Mn TAI THAM VOWEL SIGN MAI SAT +1A65..1A6C ; Grapheme_Extend # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A73..1A7C ; Grapheme_Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; Grapheme_Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1B00..1B03 ; Grapheme_Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B34 ; Grapheme_Extend # Mn BALINESE SIGN REREKAN +1B36..1B3A ; Grapheme_Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3C ; Grapheme_Extend # Mn BALINESE VOWEL SIGN LA LENGA +1B42 ; Grapheme_Extend # Mn BALINESE VOWEL SIGN PEPET +1B6B..1B73 ; Grapheme_Extend # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1B80..1B81 ; Grapheme_Extend # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1BA2..1BA5 ; Grapheme_Extend # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA8..1BA9 ; Grapheme_Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BAB ; Grapheme_Extend # Mn SUNDANESE SIGN VIRAMA +1BE6 ; Grapheme_Extend # Mn BATAK SIGN TOMPI +1BE8..1BE9 ; Grapheme_Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BED ; Grapheme_Extend # Mn BATAK VOWEL SIGN KARO O +1BEF..1BF1 ; Grapheme_Extend # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1C2C..1C33 ; Grapheme_Extend # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C36..1C37 ; Grapheme_Extend # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1CD0..1CD2 ; Grapheme_Extend # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD4..1CE0 ; Grapheme_Extend # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE2..1CE8 ; Grapheme_Extend # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CED ; Grapheme_Extend # Mn VEDIC SIGN TIRYAK +1CF4 ; Grapheme_Extend # Mn VEDIC TONE CANDRA ABOVE +1DC0..1DE6 ; Grapheme_Extend # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z +1DFC..1DFF ; Grapheme_Extend # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +200C..200D ; Grapheme_Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER +20D0..20DC ; Grapheme_Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20DD..20E0 ; Grapheme_Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH +20E1 ; Grapheme_Extend # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E2..20E4 ; Grapheme_Extend # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE +20E5..20F0 ; Grapheme_Extend # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE +2CEF..2CF1 ; Grapheme_Extend # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2D7F ; Grapheme_Extend # Mn TIFINAGH CONSONANT JOINER +2DE0..2DFF ; Grapheme_Extend # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +302A..302D ; Grapheme_Extend # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK +302E..302F ; Grapheme_Extend # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK +3099..309A ; Grapheme_Extend # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +A66F ; Grapheme_Extend # Mn COMBINING CYRILLIC VZMET +A670..A672 ; Grapheme_Extend # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN +A674..A67D ; Grapheme_Extend # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK +A69F ; Grapheme_Extend # Mn COMBINING CYRILLIC LETTER IOTIFIED E +A6F0..A6F1 ; Grapheme_Extend # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A802 ; Grapheme_Extend # Mn SYLOTI NAGRI SIGN DVISVARA +A806 ; Grapheme_Extend # Mn SYLOTI NAGRI SIGN HASANTA +A80B ; Grapheme_Extend # Mn SYLOTI NAGRI SIGN ANUSVARA +A825..A826 ; Grapheme_Extend # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A8C4 ; Grapheme_Extend # Mn SAURASHTRA SIGN VIRAMA +A8E0..A8F1 ; Grapheme_Extend # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A926..A92D ; Grapheme_Extend # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU +A947..A951 ; Grapheme_Extend # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A980..A982 ; Grapheme_Extend # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A9B3 ; Grapheme_Extend # Mn JAVANESE SIGN CECAK TELU +A9B6..A9B9 ; Grapheme_Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BC ; Grapheme_Extend # Mn JAVANESE VOWEL SIGN PEPET +AA29..AA2E ; Grapheme_Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA31..AA32 ; Grapheme_Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA35..AA36 ; Grapheme_Extend # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA43 ; Grapheme_Extend # Mn CHAM CONSONANT SIGN FINAL NG +AA4C ; Grapheme_Extend # Mn CHAM CONSONANT SIGN FINAL M +AAB0 ; Grapheme_Extend # Mn TAI VIET MAI KANG +AAB2..AAB4 ; Grapheme_Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB7..AAB8 ; Grapheme_Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AABE..AABF ; Grapheme_Extend # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK +AAC1 ; Grapheme_Extend # Mn TAI VIET TONE MAI THO +AAEC..AAED ; Grapheme_Extend # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAF6 ; Grapheme_Extend # Mn MEETEI MAYEK VIRAMA +ABE5 ; Grapheme_Extend # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE8 ; Grapheme_Extend # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABED ; Grapheme_Extend # Mn MEETEI MAYEK APUN IYEK +FB1E ; Grapheme_Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FE00..FE0F ; Grapheme_Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FE20..FE26 ; Grapheme_Extend # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON +FF9E..FF9F ; Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +101FD ; Grapheme_Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE +10A01..10A03 ; Grapheme_Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Grapheme_Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; Grapheme_Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +10A38..10A3A ; Grapheme_Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +10A3F ; Grapheme_Extend # Mn KHAROSHTHI VIRAMA +11001 ; Grapheme_Extend # Mn BRAHMI SIGN ANUSVARA +11038..11046 ; Grapheme_Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA +11080..11081 ; Grapheme_Extend # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA +110B3..110B6 ; Grapheme_Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B9..110BA ; Grapheme_Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +11100..11102 ; Grapheme_Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA +11127..1112B ; Grapheme_Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112D..11134 ; Grapheme_Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA +11180..11181 ; Grapheme_Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +111B6..111BE ; Grapheme_Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +116AB ; Grapheme_Extend # Mn TAKRI SIGN ANUSVARA +116AD ; Grapheme_Extend # Mn TAKRI VOWEL SIGN AA +116B0..116B5 ; Grapheme_Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +116B7 ; Grapheme_Extend # Mn TAKRI SIGN NUKTA +16F8F..16F92 ; Grapheme_Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW +1D165 ; Grapheme_Extend # Mc MUSICAL SYMBOL COMBINING STEM +1D167..1D169 ; Grapheme_Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D16E..1D172 ; Grapheme_Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 +1D17B..1D182 ; Grapheme_Extend # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; Grapheme_Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; Grapheme_Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO +1D242..1D244 ; Grapheme_Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME +E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 1317 + +# ================================================ + +# Derived Property: Grapheme_Base +# Generated from: [0..10FFFF] - Cc - Cf - Cs - Co - Cn - Zl - Zp - Grapheme_Extend +# Note: depending on an application's interpretation of Co (private use), +# they may be either in Grapheme_Base, or in Grapheme_Extend, or in neither. + +0020 ; Grapheme_Base # Zs SPACE +0021..0023 ; Grapheme_Base # Po [3] EXCLAMATION MARK..NUMBER SIGN +0024 ; Grapheme_Base # Sc DOLLAR SIGN +0025..0027 ; Grapheme_Base # Po [3] PERCENT SIGN..APOSTROPHE +0028 ; Grapheme_Base # Ps LEFT PARENTHESIS +0029 ; Grapheme_Base # Pe RIGHT PARENTHESIS +002A ; Grapheme_Base # Po ASTERISK +002B ; Grapheme_Base # Sm PLUS SIGN +002C ; Grapheme_Base # Po COMMA +002D ; Grapheme_Base # Pd HYPHEN-MINUS +002E..002F ; Grapheme_Base # Po [2] FULL STOP..SOLIDUS +0030..0039 ; Grapheme_Base # Nd [10] DIGIT ZERO..DIGIT NINE +003A..003B ; Grapheme_Base # Po [2] COLON..SEMICOLON +003C..003E ; Grapheme_Base # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN +003F..0040 ; Grapheme_Base # Po [2] QUESTION MARK..COMMERCIAL AT +0041..005A ; Grapheme_Base # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +005B ; Grapheme_Base # Ps LEFT SQUARE BRACKET +005C ; Grapheme_Base # Po REVERSE SOLIDUS +005D ; Grapheme_Base # Pe RIGHT SQUARE BRACKET +005E ; Grapheme_Base # Sk CIRCUMFLEX ACCENT +005F ; Grapheme_Base # Pc LOW LINE +0060 ; Grapheme_Base # Sk GRAVE ACCENT +0061..007A ; Grapheme_Base # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +007B ; Grapheme_Base # Ps LEFT CURLY BRACKET +007C ; Grapheme_Base # Sm VERTICAL LINE +007D ; Grapheme_Base # Pe RIGHT CURLY BRACKET +007E ; Grapheme_Base # Sm TILDE +00A0 ; Grapheme_Base # Zs NO-BREAK SPACE +00A1 ; Grapheme_Base # Po INVERTED EXCLAMATION MARK +00A2..00A5 ; Grapheme_Base # Sc [4] CENT SIGN..YEN SIGN +00A6 ; Grapheme_Base # So BROKEN BAR +00A7 ; Grapheme_Base # Po SECTION SIGN +00A8 ; Grapheme_Base # Sk DIAERESIS +00A9 ; Grapheme_Base # So COPYRIGHT SIGN +00AA ; Grapheme_Base # Lo FEMININE ORDINAL INDICATOR +00AB ; Grapheme_Base # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00AC ; Grapheme_Base # Sm NOT SIGN +00AE ; Grapheme_Base # So REGISTERED SIGN +00AF ; Grapheme_Base # Sk MACRON +00B0 ; Grapheme_Base # So DEGREE SIGN +00B1 ; Grapheme_Base # Sm PLUS-MINUS SIGN +00B2..00B3 ; Grapheme_Base # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE +00B4 ; Grapheme_Base # Sk ACUTE ACCENT +00B5 ; Grapheme_Base # L& MICRO SIGN +00B6..00B7 ; Grapheme_Base # Po [2] PILCROW SIGN..MIDDLE DOT +00B8 ; Grapheme_Base # Sk CEDILLA +00B9 ; Grapheme_Base # No SUPERSCRIPT ONE +00BA ; Grapheme_Base # Lo MASCULINE ORDINAL INDICATOR +00BB ; Grapheme_Base # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +00BC..00BE ; Grapheme_Base # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS +00BF ; Grapheme_Base # Po INVERTED QUESTION MARK +00C0..00D6 ; Grapheme_Base # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D7 ; Grapheme_Base # Sm MULTIPLICATION SIGN +00D8..00F6 ; Grapheme_Base # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F7 ; Grapheme_Base # Sm DIVISION SIGN +00F8..01BA ; Grapheme_Base # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; Grapheme_Base # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; Grapheme_Base # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; Grapheme_Base # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; Grapheme_Base # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; Grapheme_Base # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; Grapheme_Base # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02C1 ; Grapheme_Base # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C2..02C5 ; Grapheme_Base # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD +02C6..02D1 ; Grapheme_Base # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02D2..02DF ; Grapheme_Base # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT +02E0..02E4 ; Grapheme_Base # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02E5..02EB ; Grapheme_Base # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK +02EC ; Grapheme_Base # Lm MODIFIER LETTER VOICING +02ED ; Grapheme_Base # Sk MODIFIER LETTER UNASPIRATED +02EE ; Grapheme_Base # Lm MODIFIER LETTER DOUBLE APOSTROPHE +02EF..02FF ; Grapheme_Base # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW +0370..0373 ; Grapheme_Base # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; Grapheme_Base # Lm GREEK NUMERAL SIGN +0375 ; Grapheme_Base # Sk GREEK LOWER NUMERAL SIGN +0376..0377 ; Grapheme_Base # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; Grapheme_Base # Lm GREEK YPOGEGRAMMENI +037B..037D ; Grapheme_Base # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +037E ; Grapheme_Base # Po GREEK QUESTION MARK +0384..0385 ; Grapheme_Base # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS +0386 ; Grapheme_Base # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0387 ; Grapheme_Base # Po GREEK ANO TELEIA +0388..038A ; Grapheme_Base # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Grapheme_Base # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; Grapheme_Base # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03F5 ; Grapheme_Base # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL +03F6 ; Grapheme_Base # Sm GREEK REVERSED LUNATE EPSILON SYMBOL +03F7..0481 ; Grapheme_Base # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA +0482 ; Grapheme_Base # So CYRILLIC THOUSANDS SIGN +048A..0527 ; Grapheme_Base # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0531..0556 ; Grapheme_Base # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; Grapheme_Base # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +055A..055F ; Grapheme_Base # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK +0561..0587 ; Grapheme_Base # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN +0589 ; Grapheme_Base # Po ARMENIAN FULL STOP +058A ; Grapheme_Base # Pd ARMENIAN HYPHEN +058F ; Grapheme_Base # Sc ARMENIAN DRAM SIGN +05BE ; Grapheme_Base # Pd HEBREW PUNCTUATION MAQAF +05C0 ; Grapheme_Base # Po HEBREW PUNCTUATION PASEQ +05C3 ; Grapheme_Base # Po HEBREW PUNCTUATION SOF PASUQ +05C6 ; Grapheme_Base # Po HEBREW PUNCTUATION NUN HAFUKHA +05D0..05EA ; Grapheme_Base # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; Grapheme_Base # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +05F3..05F4 ; Grapheme_Base # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM +0606..0608 ; Grapheme_Base # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY +0609..060A ; Grapheme_Base # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN +060B ; Grapheme_Base # Sc AFGHANI SIGN +060C..060D ; Grapheme_Base # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR +060E..060F ; Grapheme_Base # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA +061B ; Grapheme_Base # Po ARABIC SEMICOLON +061E..061F ; Grapheme_Base # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK +0620..063F ; Grapheme_Base # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; Grapheme_Base # Lm ARABIC TATWEEL +0641..064A ; Grapheme_Base # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +0660..0669 ; Grapheme_Base # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE +066A..066D ; Grapheme_Base # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR +066E..066F ; Grapheme_Base # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0671..06D3 ; Grapheme_Base # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D4 ; Grapheme_Base # Po ARABIC FULL STOP +06D5 ; Grapheme_Base # Lo ARABIC LETTER AE +06DE ; Grapheme_Base # So ARABIC START OF RUB EL HIZB +06E5..06E6 ; Grapheme_Base # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06E9 ; Grapheme_Base # So ARABIC PLACE OF SAJDAH +06EE..06EF ; Grapheme_Base # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06F0..06F9 ; Grapheme_Base # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE +06FA..06FC ; Grapheme_Base # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FD..06FE ; Grapheme_Base # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN +06FF ; Grapheme_Base # Lo ARABIC LETTER HEH WITH INVERTED V +0700..070D ; Grapheme_Base # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS +0710 ; Grapheme_Base # Lo SYRIAC LETTER ALAPH +0712..072F ; Grapheme_Base # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +074D..07A5 ; Grapheme_Base # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU +07B1 ; Grapheme_Base # Lo THAANA LETTER NAA +07C0..07C9 ; Grapheme_Base # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE +07CA..07EA ; Grapheme_Base # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07F4..07F5 ; Grapheme_Base # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07F6 ; Grapheme_Base # So NKO SYMBOL OO DENNEN +07F7..07F9 ; Grapheme_Base # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK +07FA ; Grapheme_Base # Lm NKO LAJANYALAN +0800..0815 ; Grapheme_Base # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +081A ; Grapheme_Base # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +0824 ; Grapheme_Base # Lm SAMARITAN MODIFIER LETTER SHORT A +0828 ; Grapheme_Base # Lm SAMARITAN MODIFIER LETTER I +0830..083E ; Grapheme_Base # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU +0840..0858 ; Grapheme_Base # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +085E ; Grapheme_Base # Po MANDAIC PUNCTUATION +08A0 ; Grapheme_Base # Lo ARABIC LETTER BEH WITH SMALL V BELOW +08A2..08AC ; Grapheme_Base # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +0903 ; Grapheme_Base # Mc DEVANAGARI SIGN VISARGA +0904..0939 ; Grapheme_Base # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093B ; Grapheme_Base # Mc DEVANAGARI VOWEL SIGN OOE +093D ; Grapheme_Base # Lo DEVANAGARI SIGN AVAGRAHA +093E..0940 ; Grapheme_Base # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0949..094C ; Grapheme_Base # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094E..094F ; Grapheme_Base # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0950 ; Grapheme_Base # Lo DEVANAGARI OM +0958..0961 ; Grapheme_Base # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0964..0965 ; Grapheme_Base # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +0966..096F ; Grapheme_Base # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +0970 ; Grapheme_Base # Po DEVANAGARI ABBREVIATION SIGN +0971 ; Grapheme_Base # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..0977 ; Grapheme_Base # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0979..097F ; Grapheme_Base # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA +0982..0983 ; Grapheme_Base # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +0985..098C ; Grapheme_Base # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; Grapheme_Base # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; Grapheme_Base # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; Grapheme_Base # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; Grapheme_Base # Lo BENGALI LETTER LA +09B6..09B9 ; Grapheme_Base # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BD ; Grapheme_Base # Lo BENGALI SIGN AVAGRAHA +09BF..09C0 ; Grapheme_Base # Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II +09C7..09C8 ; Grapheme_Base # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; Grapheme_Base # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09CE ; Grapheme_Base # Lo BENGALI LETTER KHANDA TA +09DC..09DD ; Grapheme_Base # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; Grapheme_Base # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09E6..09EF ; Grapheme_Base # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE +09F0..09F1 ; Grapheme_Base # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +09F2..09F3 ; Grapheme_Base # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN +09F4..09F9 ; Grapheme_Base # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN +09FA ; Grapheme_Base # So BENGALI ISSHAR +09FB ; Grapheme_Base # Sc BENGALI GANDA MARK +0A03 ; Grapheme_Base # Mc GURMUKHI SIGN VISARGA +0A05..0A0A ; Grapheme_Base # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; Grapheme_Base # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; Grapheme_Base # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; Grapheme_Base # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; Grapheme_Base # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; Grapheme_Base # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; Grapheme_Base # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3E..0A40 ; Grapheme_Base # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A59..0A5C ; Grapheme_Base # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; Grapheme_Base # Lo GURMUKHI LETTER FA +0A66..0A6F ; Grapheme_Base # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE +0A72..0A74 ; Grapheme_Base # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A83 ; Grapheme_Base # Mc GUJARATI SIGN VISARGA +0A85..0A8D ; Grapheme_Base # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; Grapheme_Base # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; Grapheme_Base # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; Grapheme_Base # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; Grapheme_Base # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; Grapheme_Base # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABD ; Grapheme_Base # Lo GUJARATI SIGN AVAGRAHA +0ABE..0AC0 ; Grapheme_Base # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC9 ; Grapheme_Base # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; Grapheme_Base # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0AD0 ; Grapheme_Base # Lo GUJARATI OM +0AE0..0AE1 ; Grapheme_Base # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0AE6..0AEF ; Grapheme_Base # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0AF0 ; Grapheme_Base # Po GUJARATI ABBREVIATION SIGN +0AF1 ; Grapheme_Base # Sc GUJARATI RUPEE SIGN +0B02..0B03 ; Grapheme_Base # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B05..0B0C ; Grapheme_Base # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; Grapheme_Base # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; Grapheme_Base # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; Grapheme_Base # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; Grapheme_Base # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; Grapheme_Base # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3D ; Grapheme_Base # Lo ORIYA SIGN AVAGRAHA +0B40 ; Grapheme_Base # Mc ORIYA VOWEL SIGN II +0B47..0B48 ; Grapheme_Base # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; Grapheme_Base # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B5C..0B5D ; Grapheme_Base # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; Grapheme_Base # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B66..0B6F ; Grapheme_Base # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0B70 ; Grapheme_Base # So ORIYA ISSHAR +0B71 ; Grapheme_Base # Lo ORIYA LETTER WA +0B72..0B77 ; Grapheme_Base # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS +0B83 ; Grapheme_Base # Lo TAMIL SIGN VISARGA +0B85..0B8A ; Grapheme_Base # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; Grapheme_Base # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; Grapheme_Base # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; Grapheme_Base # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; Grapheme_Base # Lo TAMIL LETTER JA +0B9E..0B9F ; Grapheme_Base # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; Grapheme_Base # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; Grapheme_Base # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; Grapheme_Base # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BBF ; Grapheme_Base # Mc TAMIL VOWEL SIGN I +0BC1..0BC2 ; Grapheme_Base # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; Grapheme_Base # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; Grapheme_Base # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BD0 ; Grapheme_Base # Lo TAMIL OM +0BE6..0BEF ; Grapheme_Base # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE +0BF0..0BF2 ; Grapheme_Base # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND +0BF3..0BF8 ; Grapheme_Base # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN +0BF9 ; Grapheme_Base # Sc TAMIL RUPEE SIGN +0BFA ; Grapheme_Base # So TAMIL NUMBER SIGN +0C01..0C03 ; Grapheme_Base # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C05..0C0C ; Grapheme_Base # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; Grapheme_Base # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; Grapheme_Base # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; Grapheme_Base # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; Grapheme_Base # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA +0C3D ; Grapheme_Base # Lo TELUGU SIGN AVAGRAHA +0C41..0C44 ; Grapheme_Base # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C58..0C59 ; Grapheme_Base # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA +0C60..0C61 ; Grapheme_Base # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C66..0C6F ; Grapheme_Base # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0C78..0C7E ; Grapheme_Base # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR +0C7F ; Grapheme_Base # So TELUGU SIGN TUUMU +0C82..0C83 ; Grapheme_Base # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C85..0C8C ; Grapheme_Base # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; Grapheme_Base # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; Grapheme_Base # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; Grapheme_Base # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; Grapheme_Base # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBD ; Grapheme_Base # Lo KANNADA SIGN AVAGRAHA +0CBE ; Grapheme_Base # Mc KANNADA VOWEL SIGN AA +0CC0..0CC1 ; Grapheme_Base # Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U +0CC3..0CC4 ; Grapheme_Base # Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR +0CC7..0CC8 ; Grapheme_Base # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; Grapheme_Base # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CDE ; Grapheme_Base # Lo KANNADA LETTER FA +0CE0..0CE1 ; Grapheme_Base # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE6..0CEF ; Grapheme_Base # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0CF1..0CF2 ; Grapheme_Base # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0D02..0D03 ; Grapheme_Base # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D05..0D0C ; Grapheme_Base # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; Grapheme_Base # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; Grapheme_Base # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3D ; Grapheme_Base # Lo MALAYALAM SIGN AVAGRAHA +0D3F..0D40 ; Grapheme_Base # Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II +0D46..0D48 ; Grapheme_Base # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; Grapheme_Base # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D4E ; Grapheme_Base # Lo MALAYALAM LETTER DOT REPH +0D60..0D61 ; Grapheme_Base # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D66..0D6F ; Grapheme_Base # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0D70..0D75 ; Grapheme_Base # No [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS +0D79 ; Grapheme_Base # So MALAYALAM DATE MARK +0D7A..0D7F ; Grapheme_Base # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D82..0D83 ; Grapheme_Base # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D85..0D96 ; Grapheme_Base # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; Grapheme_Base # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; Grapheme_Base # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; Grapheme_Base # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; Grapheme_Base # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DD0..0DD1 ; Grapheme_Base # Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD8..0DDE ; Grapheme_Base # Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA +0DF2..0DF3 ; Grapheme_Base # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0DF4 ; Grapheme_Base # Po SINHALA PUNCTUATION KUNDDALIYA +0E01..0E30 ; Grapheme_Base # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E32..0E33 ; Grapheme_Base # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E3F ; Grapheme_Base # Sc THAI CURRENCY SYMBOL BAHT +0E40..0E45 ; Grapheme_Base # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; Grapheme_Base # Lm THAI CHARACTER MAIYAMOK +0E4F ; Grapheme_Base # Po THAI CHARACTER FONGMAN +0E50..0E59 ; Grapheme_Base # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE +0E5A..0E5B ; Grapheme_Base # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT +0E81..0E82 ; Grapheme_Base # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; Grapheme_Base # Lo LAO LETTER KHO TAM +0E87..0E88 ; Grapheme_Base # Lo [2] LAO LETTER NGO..LAO LETTER CO +0E8A ; Grapheme_Base # Lo LAO LETTER SO TAM +0E8D ; Grapheme_Base # Lo LAO LETTER NYO +0E94..0E97 ; Grapheme_Base # Lo [4] LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; Grapheme_Base # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; Grapheme_Base # Lo [3] LAO LETTER MO..LAO LETTER LO LING +0EA5 ; Grapheme_Base # Lo LAO LETTER LO LOOT +0EA7 ; Grapheme_Base # Lo LAO LETTER WO +0EAA..0EAB ; Grapheme_Base # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB0 ; Grapheme_Base # Lo [4] LAO LETTER O..LAO VOWEL SIGN A +0EB2..0EB3 ; Grapheme_Base # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EBD ; Grapheme_Base # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; Grapheme_Base # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; Grapheme_Base # Lm LAO KO LA +0ED0..0ED9 ; Grapheme_Base # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE +0EDC..0EDF ; Grapheme_Base # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F00 ; Grapheme_Base # Lo TIBETAN SYLLABLE OM +0F01..0F03 ; Grapheme_Base # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA +0F04..0F12 ; Grapheme_Base # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD +0F13 ; Grapheme_Base # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN +0F14 ; Grapheme_Base # Po TIBETAN MARK GTER TSHEG +0F15..0F17 ; Grapheme_Base # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS +0F1A..0F1F ; Grapheme_Base # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG +0F20..0F29 ; Grapheme_Base # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F2A..0F33 ; Grapheme_Base # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO +0F34 ; Grapheme_Base # So TIBETAN MARK BSDUS RTAGS +0F36 ; Grapheme_Base # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN +0F38 ; Grapheme_Base # So TIBETAN MARK CHE MGO +0F3A ; Grapheme_Base # Ps TIBETAN MARK GUG RTAGS GYON +0F3B ; Grapheme_Base # Pe TIBETAN MARK GUG RTAGS GYAS +0F3C ; Grapheme_Base # Ps TIBETAN MARK ANG KHANG GYON +0F3D ; Grapheme_Base # Pe TIBETAN MARK ANG KHANG GYAS +0F3E..0F3F ; Grapheme_Base # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F40..0F47 ; Grapheme_Base # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; Grapheme_Base # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F7F ; Grapheme_Base # Mc TIBETAN SIGN RNAM BCAD +0F85 ; Grapheme_Base # Po TIBETAN MARK PALUTA +0F88..0F8C ; Grapheme_Base # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +0FBE..0FC5 ; Grapheme_Base # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE +0FC7..0FCC ; Grapheme_Base # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL +0FCE..0FCF ; Grapheme_Base # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM +0FD0..0FD4 ; Grapheme_Base # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA +0FD5..0FD8 ; Grapheme_Base # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS +0FD9..0FDA ; Grapheme_Base # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS +1000..102A ; Grapheme_Base # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +102B..102C ; Grapheme_Base # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +1031 ; Grapheme_Base # Mc MYANMAR VOWEL SIGN E +1038 ; Grapheme_Base # Mc MYANMAR SIGN VISARGA +103B..103C ; Grapheme_Base # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103F ; Grapheme_Base # Lo MYANMAR LETTER GREAT SA +1040..1049 ; Grapheme_Base # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +104A..104F ; Grapheme_Base # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE +1050..1055 ; Grapheme_Base # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +1056..1057 ; Grapheme_Base # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +105A..105D ; Grapheme_Base # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +1061 ; Grapheme_Base # Lo MYANMAR LETTER SGAW KAREN SHA +1062..1064 ; Grapheme_Base # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO +1065..1066 ; Grapheme_Base # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +1067..106D ; Grapheme_Base # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 +106E..1070 ; Grapheme_Base # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1075..1081 ; Grapheme_Base # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +1083..1084 ; Grapheme_Base # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1087..108C ; Grapheme_Base # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108E ; Grapheme_Base # Lo MYANMAR LETTER RUMAI PALAUNG FA +108F ; Grapheme_Base # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +1090..1099 ; Grapheme_Base # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE +109A..109C ; Grapheme_Base # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A +109E..109F ; Grapheme_Base # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION +10A0..10C5 ; Grapheme_Base # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Grapheme_Base # L& GEORGIAN CAPITAL LETTER YN +10CD ; Grapheme_Base # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; Grapheme_Base # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FB ; Grapheme_Base # Po GEORGIAN PARAGRAPH SEPARATOR +10FC ; Grapheme_Base # Lm MODIFIER LETTER GEORGIAN NAR +10FD..1248 ; Grapheme_Base # Lo [332] GEORGIAN LETTER AEN..ETHIOPIC SYLLABLE QWA +124A..124D ; Grapheme_Base # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; Grapheme_Base # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; Grapheme_Base # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; Grapheme_Base # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; Grapheme_Base # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; Grapheme_Base # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; Grapheme_Base # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; Grapheme_Base # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; Grapheme_Base # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; Grapheme_Base # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; Grapheme_Base # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; Grapheme_Base # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; Grapheme_Base # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +1360..1368 ; Grapheme_Base # Po [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR +1369..137C ; Grapheme_Base # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND +1380..138F ; Grapheme_Base # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +1390..1399 ; Grapheme_Base # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT +13A0..13F4 ; Grapheme_Base # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV +1400 ; Grapheme_Base # Pd CANADIAN SYLLABICS HYPHEN +1401..166C ; Grapheme_Base # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166D..166E ; Grapheme_Base # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP +166F..167F ; Grapheme_Base # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +1680 ; Grapheme_Base # Zs OGHAM SPACE MARK +1681..169A ; Grapheme_Base # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +169B ; Grapheme_Base # Ps OGHAM FEATHER MARK +169C ; Grapheme_Base # Pe OGHAM REVERSED FEATHER MARK +16A0..16EA ; Grapheme_Base # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EB..16ED ; Grapheme_Base # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION +16EE..16F0 ; Grapheme_Base # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +1700..170C ; Grapheme_Base # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA +170E..1711 ; Grapheme_Base # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA +1720..1731 ; Grapheme_Base # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1735..1736 ; Grapheme_Base # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION +1740..1751 ; Grapheme_Base # Lo [18] BUHID LETTER A..BUHID LETTER HA +1760..176C ; Grapheme_Base # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; Grapheme_Base # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1780..17B3 ; Grapheme_Base # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17B6 ; Grapheme_Base # Mc KHMER VOWEL SIGN AA +17BE..17C5 ; Grapheme_Base # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C7..17C8 ; Grapheme_Base # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +17D4..17D6 ; Grapheme_Base # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH +17D7 ; Grapheme_Base # Lm KHMER SIGN LEK TOO +17D8..17DA ; Grapheme_Base # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT +17DB ; Grapheme_Base # Sc KHMER CURRENCY SYMBOL RIEL +17DC ; Grapheme_Base # Lo KHMER SIGN AVAKRAHASANYA +17E0..17E9 ; Grapheme_Base # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE +17F0..17F9 ; Grapheme_Base # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON +1800..1805 ; Grapheme_Base # Po [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS +1806 ; Grapheme_Base # Pd MONGOLIAN TODO SOFT HYPHEN +1807..180A ; Grapheme_Base # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU +180E ; Grapheme_Base # Zs MONGOLIAN VOWEL SEPARATOR +1810..1819 ; Grapheme_Base # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE +1820..1842 ; Grapheme_Base # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; Grapheme_Base # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1877 ; Grapheme_Base # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +1880..18A8 ; Grapheme_Base # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA +18AA ; Grapheme_Base # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +18B0..18F5 ; Grapheme_Base # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +1900..191C ; Grapheme_Base # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +1923..1926 ; Grapheme_Base # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1929..192B ; Grapheme_Base # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; Grapheme_Base # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1933..1938 ; Grapheme_Base # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +1940 ; Grapheme_Base # So LIMBU SIGN LOO +1944..1945 ; Grapheme_Base # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1946..194F ; Grapheme_Base # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE +1950..196D ; Grapheme_Base # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; Grapheme_Base # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1980..19AB ; Grapheme_Base # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19B0..19C0 ; Grapheme_Base # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +19C1..19C7 ; Grapheme_Base # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +19C8..19C9 ; Grapheme_Base # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +19D0..19D9 ; Grapheme_Base # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE +19DA ; Grapheme_Base # No NEW TAI LUE THAM DIGIT ONE +19DE..19FF ; Grapheme_Base # So [34] NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC +1A00..1A16 ; Grapheme_Base # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A19..1A1B ; Grapheme_Base # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE +1A1E..1A1F ; Grapheme_Base # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION +1A20..1A54 ; Grapheme_Base # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1A55 ; Grapheme_Base # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A57 ; Grapheme_Base # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A61 ; Grapheme_Base # Mc TAI THAM VOWEL SIGN A +1A63..1A64 ; Grapheme_Base # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A6D..1A72 ; Grapheme_Base # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A80..1A89 ; Grapheme_Base # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE +1A90..1A99 ; Grapheme_Base # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE +1AA0..1AA6 ; Grapheme_Base # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA +1AA7 ; Grapheme_Base # Lm TAI THAM SIGN MAI YAMOK +1AA8..1AAD ; Grapheme_Base # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG +1B04 ; Grapheme_Base # Mc BALINESE SIGN BISAH +1B05..1B33 ; Grapheme_Base # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B35 ; Grapheme_Base # Mc BALINESE VOWEL SIGN TEDUNG +1B3B ; Grapheme_Base # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3D..1B41 ; Grapheme_Base # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B43..1B44 ; Grapheme_Base # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG +1B45..1B4B ; Grapheme_Base # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK +1B50..1B59 ; Grapheme_Base # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE +1B5A..1B60 ; Grapheme_Base # Po [7] BALINESE PANTI..BALINESE PAMENENG +1B61..1B6A ; Grapheme_Base # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE +1B74..1B7C ; Grapheme_Base # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING +1B82 ; Grapheme_Base # Mc SUNDANESE SIGN PANGWISAD +1B83..1BA0 ; Grapheme_Base # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BA1 ; Grapheme_Base # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA6..1BA7 ; Grapheme_Base # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BAA ; Grapheme_Base # Mc SUNDANESE SIGN PAMAAEH +1BAC..1BAD ; Grapheme_Base # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA +1BAE..1BAF ; Grapheme_Base # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BB0..1BB9 ; Grapheme_Base # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE +1BBA..1BE5 ; Grapheme_Base # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U +1BE7 ; Grapheme_Base # Mc BATAK VOWEL SIGN E +1BEA..1BEC ; Grapheme_Base # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BEE ; Grapheme_Base # Mc BATAK VOWEL SIGN U +1BF2..1BF3 ; Grapheme_Base # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN +1BFC..1BFF ; Grapheme_Base # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT +1C00..1C23 ; Grapheme_Base # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C24..1C2B ; Grapheme_Base # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C34..1C35 ; Grapheme_Base # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1C3B..1C3F ; Grapheme_Base # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK +1C40..1C49 ; Grapheme_Base # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE +1C4D..1C4F ; Grapheme_Base # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +1C50..1C59 ; Grapheme_Base # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE +1C5A..1C77 ; Grapheme_Base # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; Grapheme_Base # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1C7E..1C7F ; Grapheme_Base # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD +1CC0..1CC7 ; Grapheme_Base # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA +1CD3 ; Grapheme_Base # Po VEDIC SIGN NIHSHVASA +1CE1 ; Grapheme_Base # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CE9..1CEC ; Grapheme_Base # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CEE..1CF1 ; Grapheme_Base # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA +1CF2..1CF3 ; Grapheme_Base # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA +1CF5..1CF6 ; Grapheme_Base # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1D00..1D2B ; Grapheme_Base # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C..1D6A ; Grapheme_Base # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D6B..1D77 ; Grapheme_Base # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D78 ; Grapheme_Base # Lm MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; Grapheme_Base # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBF ; Grapheme_Base # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +1E00..1F15 ; Grapheme_Base # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; Grapheme_Base # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; Grapheme_Base # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; Grapheme_Base # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Grapheme_Base # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; Grapheme_Base # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Grapheme_Base # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Grapheme_Base # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; Grapheme_Base # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; Grapheme_Base # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; Grapheme_Base # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBD ; Grapheme_Base # Sk GREEK KORONIS +1FBE ; Grapheme_Base # L& GREEK PROSGEGRAMMENI +1FBF..1FC1 ; Grapheme_Base # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI +1FC2..1FC4 ; Grapheme_Base # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; Grapheme_Base # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FCD..1FCF ; Grapheme_Base # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI +1FD0..1FD3 ; Grapheme_Base # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; Grapheme_Base # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FDD..1FDF ; Grapheme_Base # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI +1FE0..1FEC ; Grapheme_Base # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FED..1FEF ; Grapheme_Base # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA +1FF2..1FF4 ; Grapheme_Base # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; Grapheme_Base # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +1FFD..1FFE ; Grapheme_Base # Sk [2] GREEK OXIA..GREEK DASIA +2000..200A ; Grapheme_Base # Zs [11] EN QUAD..HAIR SPACE +2010..2015 ; Grapheme_Base # Pd [6] HYPHEN..HORIZONTAL BAR +2016..2017 ; Grapheme_Base # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE +2018 ; Grapheme_Base # Pi LEFT SINGLE QUOTATION MARK +2019 ; Grapheme_Base # Pf RIGHT SINGLE QUOTATION MARK +201A ; Grapheme_Base # Ps SINGLE LOW-9 QUOTATION MARK +201B..201C ; Grapheme_Base # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK +201D ; Grapheme_Base # Pf RIGHT DOUBLE QUOTATION MARK +201E ; Grapheme_Base # Ps DOUBLE LOW-9 QUOTATION MARK +201F ; Grapheme_Base # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2020..2027 ; Grapheme_Base # Po [8] DAGGER..HYPHENATION POINT +202F ; Grapheme_Base # Zs NARROW NO-BREAK SPACE +2030..2038 ; Grapheme_Base # Po [9] PER MILLE SIGN..CARET +2039 ; Grapheme_Base # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A ; Grapheme_Base # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +203B..203E ; Grapheme_Base # Po [4] REFERENCE MARK..OVERLINE +203F..2040 ; Grapheme_Base # Pc [2] UNDERTIE..CHARACTER TIE +2041..2043 ; Grapheme_Base # Po [3] CARET INSERTION POINT..HYPHEN BULLET +2044 ; Grapheme_Base # Sm FRACTION SLASH +2045 ; Grapheme_Base # Ps LEFT SQUARE BRACKET WITH QUILL +2046 ; Grapheme_Base # Pe RIGHT SQUARE BRACKET WITH QUILL +2047..2051 ; Grapheme_Base # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY +2052 ; Grapheme_Base # Sm COMMERCIAL MINUS SIGN +2053 ; Grapheme_Base # Po SWUNG DASH +2054 ; Grapheme_Base # Pc INVERTED UNDERTIE +2055..205E ; Grapheme_Base # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS +205F ; Grapheme_Base # Zs MEDIUM MATHEMATICAL SPACE +2070 ; Grapheme_Base # No SUPERSCRIPT ZERO +2071 ; Grapheme_Base # Lm SUPERSCRIPT LATIN SMALL LETTER I +2074..2079 ; Grapheme_Base # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE +207A..207C ; Grapheme_Base # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN +207D ; Grapheme_Base # Ps SUPERSCRIPT LEFT PARENTHESIS +207E ; Grapheme_Base # Pe SUPERSCRIPT RIGHT PARENTHESIS +207F ; Grapheme_Base # Lm SUPERSCRIPT LATIN SMALL LETTER N +2080..2089 ; Grapheme_Base # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE +208A..208C ; Grapheme_Base # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN +208D ; Grapheme_Base # Ps SUBSCRIPT LEFT PARENTHESIS +208E ; Grapheme_Base # Pe SUBSCRIPT RIGHT PARENTHESIS +2090..209C ; Grapheme_Base # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +20A0..20BA ; Grapheme_Base # Sc [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN +2100..2101 ; Grapheme_Base # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT +2102 ; Grapheme_Base # L& DOUBLE-STRUCK CAPITAL C +2103..2106 ; Grapheme_Base # So [4] DEGREE CELSIUS..CADA UNA +2107 ; Grapheme_Base # L& EULER CONSTANT +2108..2109 ; Grapheme_Base # So [2] SCRUPLE..DEGREE FAHRENHEIT +210A..2113 ; Grapheme_Base # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2114 ; Grapheme_Base # So L B BAR SYMBOL +2115 ; Grapheme_Base # L& DOUBLE-STRUCK CAPITAL N +2116..2117 ; Grapheme_Base # So [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT +2118 ; Grapheme_Base # Sm SCRIPT CAPITAL P +2119..211D ; Grapheme_Base # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +211E..2123 ; Grapheme_Base # So [6] PRESCRIPTION TAKE..VERSICLE +2124 ; Grapheme_Base # L& DOUBLE-STRUCK CAPITAL Z +2125 ; Grapheme_Base # So OUNCE SIGN +2126 ; Grapheme_Base # L& OHM SIGN +2127 ; Grapheme_Base # So INVERTED OHM SIGN +2128 ; Grapheme_Base # L& BLACK-LETTER CAPITAL Z +2129 ; Grapheme_Base # So TURNED GREEK SMALL LETTER IOTA +212A..212D ; Grapheme_Base # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C +212E ; Grapheme_Base # So ESTIMATED SYMBOL +212F..2134 ; Grapheme_Base # L& [6] SCRIPT SMALL E..SCRIPT SMALL O +2135..2138 ; Grapheme_Base # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; Grapheme_Base # L& INFORMATION SOURCE +213A..213B ; Grapheme_Base # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN +213C..213F ; Grapheme_Base # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2140..2144 ; Grapheme_Base # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y +2145..2149 ; Grapheme_Base # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214A ; Grapheme_Base # So PROPERTY LINE +214B ; Grapheme_Base # Sm TURNED AMPERSAND +214C..214D ; Grapheme_Base # So [2] PER SIGN..AKTIESELSKAB +214E ; Grapheme_Base # L& TURNED SMALL F +214F ; Grapheme_Base # So SYMBOL FOR SAMARITAN SOURCE +2150..215F ; Grapheme_Base # No [16] VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE +2160..2182 ; Grapheme_Base # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; Grapheme_Base # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; Grapheme_Base # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2189 ; Grapheme_Base # No VULGAR FRACTION ZERO THIRDS +2190..2194 ; Grapheme_Base # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW +2195..2199 ; Grapheme_Base # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219A..219B ; Grapheme_Base # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE +219C..219F ; Grapheme_Base # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A0 ; Grapheme_Base # Sm RIGHTWARDS TWO HEADED ARROW +21A1..21A2 ; Grapheme_Base # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A3 ; Grapheme_Base # Sm RIGHTWARDS ARROW WITH TAIL +21A4..21A5 ; Grapheme_Base # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A6 ; Grapheme_Base # Sm RIGHTWARDS ARROW FROM BAR +21A7..21AD ; Grapheme_Base # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW +21AE ; Grapheme_Base # Sm LEFT RIGHT ARROW WITH STROKE +21AF..21CD ; Grapheme_Base # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE +21CE..21CF ; Grapheme_Base # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Grapheme_Base # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D2 ; Grapheme_Base # Sm RIGHTWARDS DOUBLE ARROW +21D3 ; Grapheme_Base # So DOWNWARDS DOUBLE ARROW +21D4 ; Grapheme_Base # Sm LEFT RIGHT DOUBLE ARROW +21D5..21F3 ; Grapheme_Base # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW +21F4..22FF ; Grapheme_Base # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP +2300..2307 ; Grapheme_Base # So [8] DIAMETER SIGN..WAVY LINE +2308..230B ; Grapheme_Base # Sm [4] LEFT CEILING..RIGHT FLOOR +230C..231F ; Grapheme_Base # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER +2320..2321 ; Grapheme_Base # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL +2322..2328 ; Grapheme_Base # So [7] FROWN..KEYBOARD +2329 ; Grapheme_Base # Ps LEFT-POINTING ANGLE BRACKET +232A ; Grapheme_Base # Pe RIGHT-POINTING ANGLE BRACKET +232B..237B ; Grapheme_Base # So [81] ERASE TO THE LEFT..NOT CHECK MARK +237C ; Grapheme_Base # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +237D..239A ; Grapheme_Base # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL +239B..23B3 ; Grapheme_Base # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM +23B4..23DB ; Grapheme_Base # So [40] TOP SQUARE BRACKET..FUSE +23DC..23E1 ; Grapheme_Base # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET +23E2..23F3 ; Grapheme_Base # So [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND +2400..2426 ; Grapheme_Base # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO +2440..244A ; Grapheme_Base # So [11] OCR HOOK..OCR DOUBLE BACKSLASH +2460..249B ; Grapheme_Base # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP +249C..24E9 ; Grapheme_Base # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +24EA..24FF ; Grapheme_Base # No [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO +2500..25B6 ; Grapheme_Base # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE +25B7 ; Grapheme_Base # Sm WHITE RIGHT-POINTING TRIANGLE +25B8..25C0 ; Grapheme_Base # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C1 ; Grapheme_Base # Sm WHITE LEFT-POINTING TRIANGLE +25C2..25F7 ; Grapheme_Base # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT +25F8..25FF ; Grapheme_Base # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE +2600..266E ; Grapheme_Base # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN +266F ; Grapheme_Base # Sm MUSIC SHARP SIGN +2670..26FF ; Grapheme_Base # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE +2701..2767 ; Grapheme_Base # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET +2768 ; Grapheme_Base # Ps MEDIUM LEFT PARENTHESIS ORNAMENT +2769 ; Grapheme_Base # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT +276A ; Grapheme_Base # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT +276B ; Grapheme_Base # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT +276C ; Grapheme_Base # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT +276D ; Grapheme_Base # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +276E ; Grapheme_Base # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT +276F ; Grapheme_Base # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT +2770 ; Grapheme_Base # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT +2771 ; Grapheme_Base # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT +2772 ; Grapheme_Base # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +2773 ; Grapheme_Base # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +2774 ; Grapheme_Base # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT +2775 ; Grapheme_Base # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT +2776..2793 ; Grapheme_Base # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN +2794..27BF ; Grapheme_Base # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP +27C0..27C4 ; Grapheme_Base # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET +27C5 ; Grapheme_Base # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Grapheme_Base # Pe RIGHT S-SHAPED BAG DELIMITER +27C7..27E5 ; Grapheme_Base # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK +27E6 ; Grapheme_Base # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Grapheme_Base # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Grapheme_Base # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Grapheme_Base # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Grapheme_Base # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Grapheme_Base # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Grapheme_Base # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Grapheme_Base # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Grapheme_Base # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Grapheme_Base # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +27F0..27FF ; Grapheme_Base # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW +2800..28FF ; Grapheme_Base # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 +2900..2982 ; Grapheme_Base # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON +2983 ; Grapheme_Base # Ps LEFT WHITE CURLY BRACKET +2984 ; Grapheme_Base # Pe RIGHT WHITE CURLY BRACKET +2985 ; Grapheme_Base # Ps LEFT WHITE PARENTHESIS +2986 ; Grapheme_Base # Pe RIGHT WHITE PARENTHESIS +2987 ; Grapheme_Base # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Grapheme_Base # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Grapheme_Base # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Grapheme_Base # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Grapheme_Base # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Grapheme_Base # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Grapheme_Base # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Grapheme_Base # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Grapheme_Base # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Grapheme_Base # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Grapheme_Base # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Grapheme_Base # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Grapheme_Base # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Grapheme_Base # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Grapheme_Base # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Grapheme_Base # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Grapheme_Base # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Grapheme_Base # Pe RIGHT BLACK TORTOISE SHELL BRACKET +2999..29D7 ; Grapheme_Base # Sm [63] DOTTED FENCE..BLACK HOURGLASS +29D8 ; Grapheme_Base # Ps LEFT WIGGLY FENCE +29D9 ; Grapheme_Base # Pe RIGHT WIGGLY FENCE +29DA ; Grapheme_Base # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Grapheme_Base # Pe RIGHT DOUBLE WIGGLY FENCE +29DC..29FB ; Grapheme_Base # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS +29FC ; Grapheme_Base # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Grapheme_Base # Pe RIGHT-POINTING CURVED ANGLE BRACKET +29FE..2AFF ; Grapheme_Base # Sm [258] TINY..N-ARY WHITE VERTICAL BAR +2B00..2B2F ; Grapheme_Base # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE +2B30..2B44 ; Grapheme_Base # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET +2B45..2B46 ; Grapheme_Base # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW +2B47..2B4C ; Grapheme_Base # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR +2B50..2B59 ; Grapheme_Base # So [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE +2C00..2C2E ; Grapheme_Base # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C30..2C5E ; Grapheme_Base # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C60..2C7B ; Grapheme_Base # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; Grapheme_Base # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2CE4 ; Grapheme_Base # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI +2CE5..2CEA ; Grapheme_Base # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA +2CEB..2CEE ; Grapheme_Base # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CF2..2CF3 ; Grapheme_Base # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2CF9..2CFC ; Grapheme_Base # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER +2CFD ; Grapheme_Base # No COPTIC FRACTION ONE HALF +2CFE..2CFF ; Grapheme_Base # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER +2D00..2D25 ; Grapheme_Base # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Grapheme_Base # L& GEORGIAN SMALL LETTER YN +2D2D ; Grapheme_Base # L& GEORGIAN SMALL LETTER AEN +2D30..2D67 ; Grapheme_Base # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; Grapheme_Base # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D70 ; Grapheme_Base # Po TIFINAGH SEPARATOR MARK +2D80..2D96 ; Grapheme_Base # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +2E00..2E01 ; Grapheme_Base # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER +2E02 ; Grapheme_Base # Pi LEFT SUBSTITUTION BRACKET +2E03 ; Grapheme_Base # Pf RIGHT SUBSTITUTION BRACKET +2E04 ; Grapheme_Base # Pi LEFT DOTTED SUBSTITUTION BRACKET +2E05 ; Grapheme_Base # Pf RIGHT DOTTED SUBSTITUTION BRACKET +2E06..2E08 ; Grapheme_Base # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER +2E09 ; Grapheme_Base # Pi LEFT TRANSPOSITION BRACKET +2E0A ; Grapheme_Base # Pf RIGHT TRANSPOSITION BRACKET +2E0B ; Grapheme_Base # Po RAISED SQUARE +2E0C ; Grapheme_Base # Pi LEFT RAISED OMISSION BRACKET +2E0D ; Grapheme_Base # Pf RIGHT RAISED OMISSION BRACKET +2E0E..2E16 ; Grapheme_Base # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE +2E17 ; Grapheme_Base # Pd DOUBLE OBLIQUE HYPHEN +2E18..2E19 ; Grapheme_Base # Po [2] INVERTED INTERROBANG..PALM BRANCH +2E1A ; Grapheme_Base # Pd HYPHEN WITH DIAERESIS +2E1B ; Grapheme_Base # Po TILDE WITH RING ABOVE +2E1C ; Grapheme_Base # Pi LEFT LOW PARAPHRASE BRACKET +2E1D ; Grapheme_Base # Pf RIGHT LOW PARAPHRASE BRACKET +2E1E..2E1F ; Grapheme_Base # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW +2E20 ; Grapheme_Base # Pi LEFT VERTICAL BAR WITH QUILL +2E21 ; Grapheme_Base # Pf RIGHT VERTICAL BAR WITH QUILL +2E22 ; Grapheme_Base # Ps TOP LEFT HALF BRACKET +2E23 ; Grapheme_Base # Pe TOP RIGHT HALF BRACKET +2E24 ; Grapheme_Base # Ps BOTTOM LEFT HALF BRACKET +2E25 ; Grapheme_Base # Pe BOTTOM RIGHT HALF BRACKET +2E26 ; Grapheme_Base # Ps LEFT SIDEWAYS U BRACKET +2E27 ; Grapheme_Base # Pe RIGHT SIDEWAYS U BRACKET +2E28 ; Grapheme_Base # Ps LEFT DOUBLE PARENTHESIS +2E29 ; Grapheme_Base # Pe RIGHT DOUBLE PARENTHESIS +2E2A..2E2E ; Grapheme_Base # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK +2E2F ; Grapheme_Base # Lm VERTICAL TILDE +2E30..2E39 ; Grapheme_Base # Po [10] RING POINT..TOP HALF SECTION SIGN +2E3A..2E3B ; Grapheme_Base # Pd [2] TWO-EM DASH..THREE-EM DASH +2E80..2E99 ; Grapheme_Base # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP +2E9B..2EF3 ; Grapheme_Base # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE +2F00..2FD5 ; Grapheme_Base # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE +2FF0..2FFB ; Grapheme_Base # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID +3000 ; Grapheme_Base # Zs IDEOGRAPHIC SPACE +3001..3003 ; Grapheme_Base # Po [3] IDEOGRAPHIC COMMA..DITTO MARK +3004 ; Grapheme_Base # So JAPANESE INDUSTRIAL STANDARD SYMBOL +3005 ; Grapheme_Base # Lm IDEOGRAPHIC ITERATION MARK +3006 ; Grapheme_Base # Lo IDEOGRAPHIC CLOSING MARK +3007 ; Grapheme_Base # Nl IDEOGRAPHIC NUMBER ZERO +3008 ; Grapheme_Base # Ps LEFT ANGLE BRACKET +3009 ; Grapheme_Base # Pe RIGHT ANGLE BRACKET +300A ; Grapheme_Base # Ps LEFT DOUBLE ANGLE BRACKET +300B ; Grapheme_Base # Pe RIGHT DOUBLE ANGLE BRACKET +300C ; Grapheme_Base # Ps LEFT CORNER BRACKET +300D ; Grapheme_Base # Pe RIGHT CORNER BRACKET +300E ; Grapheme_Base # Ps LEFT WHITE CORNER BRACKET +300F ; Grapheme_Base # Pe RIGHT WHITE CORNER BRACKET +3010 ; Grapheme_Base # Ps LEFT BLACK LENTICULAR BRACKET +3011 ; Grapheme_Base # Pe RIGHT BLACK LENTICULAR BRACKET +3012..3013 ; Grapheme_Base # So [2] POSTAL MARK..GETA MARK +3014 ; Grapheme_Base # Ps LEFT TORTOISE SHELL BRACKET +3015 ; Grapheme_Base # Pe RIGHT TORTOISE SHELL BRACKET +3016 ; Grapheme_Base # Ps LEFT WHITE LENTICULAR BRACKET +3017 ; Grapheme_Base # Pe RIGHT WHITE LENTICULAR BRACKET +3018 ; Grapheme_Base # Ps LEFT WHITE TORTOISE SHELL BRACKET +3019 ; Grapheme_Base # Pe RIGHT WHITE TORTOISE SHELL BRACKET +301A ; Grapheme_Base # Ps LEFT WHITE SQUARE BRACKET +301B ; Grapheme_Base # Pe RIGHT WHITE SQUARE BRACKET +301C ; Grapheme_Base # Pd WAVE DASH +301D ; Grapheme_Base # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Grapheme_Base # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +3020 ; Grapheme_Base # So POSTAL MARK FACE +3021..3029 ; Grapheme_Base # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3030 ; Grapheme_Base # Pd WAVY DASH +3031..3035 ; Grapheme_Base # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3036..3037 ; Grapheme_Base # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL +3038..303A ; Grapheme_Base # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; Grapheme_Base # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; Grapheme_Base # Lo MASU MARK +303D ; Grapheme_Base # Po PART ALTERNATION MARK +303E..303F ; Grapheme_Base # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE +3041..3096 ; Grapheme_Base # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +309B..309C ; Grapheme_Base # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; Grapheme_Base # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; Grapheme_Base # Lo HIRAGANA DIGRAPH YORI +30A0 ; Grapheme_Base # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN +30A1..30FA ; Grapheme_Base # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FB ; Grapheme_Base # Po KATAKANA MIDDLE DOT +30FC..30FE ; Grapheme_Base # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +30FF ; Grapheme_Base # Lo KATAKANA DIGRAPH KOTO +3105..312D ; Grapheme_Base # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH +3131..318E ; Grapheme_Base # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +3190..3191 ; Grapheme_Base # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK +3192..3195 ; Grapheme_Base # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK +3196..319F ; Grapheme_Base # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK +31A0..31BA ; Grapheme_Base # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY +31C0..31E3 ; Grapheme_Base # So [36] CJK STROKE T..CJK STROKE Q +31F0..31FF ; Grapheme_Base # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3200..321E ; Grapheme_Base # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU +3220..3229 ; Grapheme_Base # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN +322A..3247 ; Grapheme_Base # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO +3248..324F ; Grapheme_Base # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE +3250 ; Grapheme_Base # So PARTNERSHIP SIGN +3251..325F ; Grapheme_Base # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE +3260..327F ; Grapheme_Base # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL +3280..3289 ; Grapheme_Base # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN +328A..32B0 ; Grapheme_Base # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT +32B1..32BF ; Grapheme_Base # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY +32C0..32FE ; Grapheme_Base # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO +3300..33FF ; Grapheme_Base # So [256] SQUARE APAATO..SQUARE GAL +3400..4DB5 ; Grapheme_Base # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4DC0..4DFF ; Grapheme_Base # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION +4E00..9FCC ; Grapheme_Base # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC +A000..A014 ; Grapheme_Base # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; Grapheme_Base # Lm YI SYLLABLE WU +A016..A48C ; Grapheme_Base # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A490..A4C6 ; Grapheme_Base # So [55] YI RADICAL QOT..YI RADICAL KE +A4D0..A4F7 ; Grapheme_Base # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; Grapheme_Base # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A4FE..A4FF ; Grapheme_Base # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP +A500..A60B ; Grapheme_Base # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; Grapheme_Base # Lm VAI SYLLABLE LENGTHENER +A60D..A60F ; Grapheme_Base # Po [3] VAI COMMA..VAI QUESTION MARK +A610..A61F ; Grapheme_Base # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A620..A629 ; Grapheme_Base # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE +A62A..A62B ; Grapheme_Base # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO +A640..A66D ; Grapheme_Base # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; Grapheme_Base # Lo CYRILLIC LETTER MULTIOCULAR O +A673 ; Grapheme_Base # Po SLAVONIC ASTERISK +A67E ; Grapheme_Base # Po CYRILLIC KAVYKA +A67F ; Grapheme_Base # Lm CYRILLIC PAYEROK +A680..A697 ; Grapheme_Base # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE +A6A0..A6E5 ; Grapheme_Base # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; Grapheme_Base # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A6F2..A6F7 ; Grapheme_Base # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK +A700..A716 ; Grapheme_Base # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR +A717..A71F ; Grapheme_Base # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A720..A721 ; Grapheme_Base # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE +A722..A76F ; Grapheme_Base # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; Grapheme_Base # Lm MODIFIER LETTER US +A771..A787 ; Grapheme_Base # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A788 ; Grapheme_Base # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A789..A78A ; Grapheme_Base # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN +A78B..A78E ; Grapheme_Base # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A790..A793 ; Grapheme_Base # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +A7A0..A7AA ; Grapheme_Base # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK +A7F8..A7F9 ; Grapheme_Base # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; Grapheme_Base # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A801 ; Grapheme_Base # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I +A803..A805 ; Grapheme_Base # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A807..A80A ; Grapheme_Base # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80C..A822 ; Grapheme_Base # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A823..A824 ; Grapheme_Base # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A827 ; Grapheme_Base # Mc SYLOTI NAGRI VOWEL SIGN OO +A828..A82B ; Grapheme_Base # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4 +A830..A835 ; Grapheme_Base # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS +A836..A837 ; Grapheme_Base # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK +A838 ; Grapheme_Base # Sc NORTH INDIC RUPEE MARK +A839 ; Grapheme_Base # So NORTH INDIC QUANTITY MARK +A840..A873 ; Grapheme_Base # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A874..A877 ; Grapheme_Base # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD +A880..A881 ; Grapheme_Base # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A882..A8B3 ; Grapheme_Base # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8B4..A8C3 ; Grapheme_Base # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A8CE..A8CF ; Grapheme_Base # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A8D0..A8D9 ; Grapheme_Base # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE +A8F2..A8F7 ; Grapheme_Base # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8F8..A8FA ; Grapheme_Base # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET +A8FB ; Grapheme_Base # Lo DEVANAGARI HEADSTROKE +A900..A909 ; Grapheme_Base # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE +A90A..A925 ; Grapheme_Base # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A92E..A92F ; Grapheme_Base # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA +A930..A946 ; Grapheme_Base # Lo [23] REJANG LETTER KA..REJANG LETTER A +A952..A953 ; Grapheme_Base # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA +A95F ; Grapheme_Base # Po REJANG SECTION MARK +A960..A97C ; Grapheme_Base # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A983 ; Grapheme_Base # Mc JAVANESE SIGN WIGNYAN +A984..A9B2 ; Grapheme_Base # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9B4..A9B5 ; Grapheme_Base # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9BA..A9BB ; Grapheme_Base # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BD..A9C0 ; Grapheme_Base # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON +A9C1..A9CD ; Grapheme_Base # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH +A9CF ; Grapheme_Base # Lm JAVANESE PANGRANGKEP +A9D0..A9D9 ; Grapheme_Base # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE +A9DE..A9DF ; Grapheme_Base # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN +AA00..AA28 ; Grapheme_Base # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA2F..AA30 ; Grapheme_Base # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA33..AA34 ; Grapheme_Base # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA40..AA42 ; Grapheme_Base # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA44..AA4B ; Grapheme_Base # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA4D ; Grapheme_Base # Mc CHAM CONSONANT SIGN FINAL H +AA50..AA59 ; Grapheme_Base # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE +AA5C..AA5F ; Grapheme_Base # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA +AA60..AA6F ; Grapheme_Base # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; Grapheme_Base # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; Grapheme_Base # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA77..AA79 ; Grapheme_Base # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO +AA7A ; Grapheme_Base # Lo MYANMAR LETTER AITON RA +AA7B ; Grapheme_Base # Mc MYANMAR SIGN PAO KAREN TONE +AA80..AAAF ; Grapheme_Base # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB1 ; Grapheme_Base # Lo TAI VIET VOWEL AA +AAB5..AAB6 ; Grapheme_Base # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB9..AABD ; Grapheme_Base # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AAC0 ; Grapheme_Base # Lo TAI VIET TONE MAI NUENG +AAC2 ; Grapheme_Base # Lo TAI VIET TONE MAI SONG +AADB..AADC ; Grapheme_Base # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; Grapheme_Base # Lm TAI VIET SYMBOL SAM +AADE..AADF ; Grapheme_Base # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI +AAE0..AAEA ; Grapheme_Base # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAEB ; Grapheme_Base # Mc MEETEI MAYEK VOWEL SIGN II +AAEE..AAEF ; Grapheme_Base # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU +AAF0..AAF1 ; Grapheme_Base # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM +AAF2 ; Grapheme_Base # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; Grapheme_Base # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AAF5 ; Grapheme_Base # Mc MEETEI MAYEK VOWEL SIGN VISARGA +AB01..AB06 ; Grapheme_Base # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; Grapheme_Base # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; Grapheme_Base # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +ABC0..ABE2 ; Grapheme_Base # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +ABE3..ABE4 ; Grapheme_Base # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE6..ABE7 ; Grapheme_Base # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE9..ABEA ; Grapheme_Base # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +ABEB ; Grapheme_Base # Po MEETEI MAYEK CHEIKHEI +ABEC ; Grapheme_Base # Mc MEETEI MAYEK LUM IYEK +ABF0..ABF9 ; Grapheme_Base # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE +AC00..D7A3 ; Grapheme_Base # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; Grapheme_Base # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; Grapheme_Base # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +F900..FA6D ; Grapheme_Base # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; Grapheme_Base # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +FB00..FB06 ; Grapheme_Base # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FB13..FB17 ; Grapheme_Base # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH +FB1D ; Grapheme_Base # Lo HEBREW LETTER YOD WITH HIRIQ +FB1F..FB28 ; Grapheme_Base # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB29 ; Grapheme_Base # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN +FB2A..FB36 ; Grapheme_Base # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; Grapheme_Base # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; Grapheme_Base # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; Grapheme_Base # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; Grapheme_Base # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FBB1 ; Grapheme_Base # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBB2..FBC1 ; Grapheme_Base # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW +FBD3..FD3D ; Grapheme_Base # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD3E ; Grapheme_Base # Ps ORNATE LEFT PARENTHESIS +FD3F ; Grapheme_Base # Pe ORNATE RIGHT PARENTHESIS +FD50..FD8F ; Grapheme_Base # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; Grapheme_Base # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDF0..FDFB ; Grapheme_Base # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU +FDFC ; Grapheme_Base # Sc RIAL SIGN +FDFD ; Grapheme_Base # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM +FE10..FE16 ; Grapheme_Base # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK +FE17 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET +FE18 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET +FE19 ; Grapheme_Base # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS +FE30 ; Grapheme_Base # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER +FE31..FE32 ; Grapheme_Base # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH +FE33..FE34 ; Grapheme_Base # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE +FE35 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS +FE36 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS +FE37 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET +FE38 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET +FE39 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET +FE3A ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET +FE3B ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET +FE3C ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET +FE3D ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET +FE3E ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET +FE3F ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET +FE40 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET +FE41 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +FE42 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +FE43 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +FE44 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +FE45..FE46 ; Grapheme_Base # Po [2] SESAME DOT..WHITE SESAME DOT +FE47 ; Grapheme_Base # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET +FE48 ; Grapheme_Base # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET +FE49..FE4C ; Grapheme_Base # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE +FE4D..FE4F ; Grapheme_Base # Pc [3] DASHED LOW LINE..WAVY LOW LINE +FE50..FE52 ; Grapheme_Base # Po [3] SMALL COMMA..SMALL FULL STOP +FE54..FE57 ; Grapheme_Base # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK +FE58 ; Grapheme_Base # Pd SMALL EM DASH +FE59 ; Grapheme_Base # Ps SMALL LEFT PARENTHESIS +FE5A ; Grapheme_Base # Pe SMALL RIGHT PARENTHESIS +FE5B ; Grapheme_Base # Ps SMALL LEFT CURLY BRACKET +FE5C ; Grapheme_Base # Pe SMALL RIGHT CURLY BRACKET +FE5D ; Grapheme_Base # Ps SMALL LEFT TORTOISE SHELL BRACKET +FE5E ; Grapheme_Base # Pe SMALL RIGHT TORTOISE SHELL BRACKET +FE5F..FE61 ; Grapheme_Base # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK +FE62 ; Grapheme_Base # Sm SMALL PLUS SIGN +FE63 ; Grapheme_Base # Pd SMALL HYPHEN-MINUS +FE64..FE66 ; Grapheme_Base # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN +FE68 ; Grapheme_Base # Po SMALL REVERSE SOLIDUS +FE69 ; Grapheme_Base # Sc SMALL DOLLAR SIGN +FE6A..FE6B ; Grapheme_Base # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT +FE70..FE74 ; Grapheme_Base # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM +FE76..FEFC ; Grapheme_Base # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FF01..FF03 ; Grapheme_Base # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN +FF04 ; Grapheme_Base # Sc FULLWIDTH DOLLAR SIGN +FF05..FF07 ; Grapheme_Base # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE +FF08 ; Grapheme_Base # Ps FULLWIDTH LEFT PARENTHESIS +FF09 ; Grapheme_Base # Pe FULLWIDTH RIGHT PARENTHESIS +FF0A ; Grapheme_Base # Po FULLWIDTH ASTERISK +FF0B ; Grapheme_Base # Sm FULLWIDTH PLUS SIGN +FF0C ; Grapheme_Base # Po FULLWIDTH COMMA +FF0D ; Grapheme_Base # Pd FULLWIDTH HYPHEN-MINUS +FF0E..FF0F ; Grapheme_Base # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS +FF10..FF19 ; Grapheme_Base # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE +FF1A..FF1B ; Grapheme_Base # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON +FF1C..FF1E ; Grapheme_Base # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN +FF1F..FF20 ; Grapheme_Base # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT +FF21..FF3A ; Grapheme_Base # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF3B ; Grapheme_Base # Ps FULLWIDTH LEFT SQUARE BRACKET +FF3C ; Grapheme_Base # Po FULLWIDTH REVERSE SOLIDUS +FF3D ; Grapheme_Base # Pe FULLWIDTH RIGHT SQUARE BRACKET +FF3E ; Grapheme_Base # Sk FULLWIDTH CIRCUMFLEX ACCENT +FF3F ; Grapheme_Base # Pc FULLWIDTH LOW LINE +FF40 ; Grapheme_Base # Sk FULLWIDTH GRAVE ACCENT +FF41..FF5A ; Grapheme_Base # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +FF5B ; Grapheme_Base # Ps FULLWIDTH LEFT CURLY BRACKET +FF5C ; Grapheme_Base # Sm FULLWIDTH VERTICAL LINE +FF5D ; Grapheme_Base # Pe FULLWIDTH RIGHT CURLY BRACKET +FF5E ; Grapheme_Base # Sm FULLWIDTH TILDE +FF5F ; Grapheme_Base # Ps FULLWIDTH LEFT WHITE PARENTHESIS +FF60 ; Grapheme_Base # Pe FULLWIDTH RIGHT WHITE PARENTHESIS +FF61 ; Grapheme_Base # Po HALFWIDTH IDEOGRAPHIC FULL STOP +FF62 ; Grapheme_Base # Ps HALFWIDTH LEFT CORNER BRACKET +FF63 ; Grapheme_Base # Pe HALFWIDTH RIGHT CORNER BRACKET +FF64..FF65 ; Grapheme_Base # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT +FF66..FF6F ; Grapheme_Base # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; Grapheme_Base # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71..FF9D ; Grapheme_Base # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +FFA0..FFBE ; Grapheme_Base # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; Grapheme_Base # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; Grapheme_Base # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; Grapheme_Base # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; Grapheme_Base # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I +FFE0..FFE1 ; Grapheme_Base # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN +FFE2 ; Grapheme_Base # Sm FULLWIDTH NOT SIGN +FFE3 ; Grapheme_Base # Sk FULLWIDTH MACRON +FFE4 ; Grapheme_Base # So FULLWIDTH BROKEN BAR +FFE5..FFE6 ; Grapheme_Base # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN +FFE8 ; Grapheme_Base # So HALFWIDTH FORMS LIGHT VERTICAL +FFE9..FFEC ; Grapheme_Base # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW +FFED..FFEE ; Grapheme_Base # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE +FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER +10000..1000B ; Grapheme_Base # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; Grapheme_Base # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; Grapheme_Base # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; Grapheme_Base # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; Grapheme_Base # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; Grapheme_Base # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; Grapheme_Base # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +10100..10102 ; Grapheme_Base # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK +10107..10133 ; Grapheme_Base # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND +10137..1013F ; Grapheme_Base # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT +10140..10174 ; Grapheme_Base # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +10175..10178 ; Grapheme_Base # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN +10179..10189 ; Grapheme_Base # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN +1018A ; Grapheme_Base # No GREEK ZERO SIGN +10190..1019B ; Grapheme_Base # So [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN +101D0..101FC ; Grapheme_Base # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND +10280..1029C ; Grapheme_Base # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X +102A0..102D0 ; Grapheme_Base # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 +10300..1031E ; Grapheme_Base # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU +10320..10323 ; Grapheme_Base # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY +10330..10340 ; Grapheme_Base # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; Grapheme_Base # Nl GOTHIC LETTER NINETY +10342..10349 ; Grapheme_Base # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; Grapheme_Base # Nl GOTHIC LETTER NINE HUNDRED +10380..1039D ; Grapheme_Base # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +1039F ; Grapheme_Base # Po UGARITIC WORD DIVIDER +103A0..103C3 ; Grapheme_Base # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; Grapheme_Base # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D0 ; Grapheme_Base # Po OLD PERSIAN WORD DIVIDER +103D1..103D5 ; Grapheme_Base # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED +10400..1044F ; Grapheme_Base # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW +10450..1049D ; Grapheme_Base # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO +104A0..104A9 ; Grapheme_Base # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE +10800..10805 ; Grapheme_Base # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; Grapheme_Base # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; Grapheme_Base # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; Grapheme_Base # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; Grapheme_Base # Lo CYPRIOT SYLLABLE ZA +1083F..10855 ; Grapheme_Base # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW +10857 ; Grapheme_Base # Po IMPERIAL ARAMAIC SECTION SIGN +10858..1085F ; Grapheme_Base # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND +10900..10915 ; Grapheme_Base # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10916..1091B ; Grapheme_Base # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE +1091F ; Grapheme_Base # Po PHOENICIAN WORD SEPARATOR +10920..10939 ; Grapheme_Base # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +1093F ; Grapheme_Base # Po LYDIAN TRIANGULAR MARK +10980..109B7 ; Grapheme_Base # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109BE..109BF ; Grapheme_Base # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +10A00 ; Grapheme_Base # Lo KHAROSHTHI LETTER A +10A10..10A13 ; Grapheme_Base # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; Grapheme_Base # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A33 ; Grapheme_Base # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A40..10A47 ; Grapheme_Base # No [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND +10A50..10A58 ; Grapheme_Base # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES +10A60..10A7C ; Grapheme_Base # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10A7D..10A7E ; Grapheme_Base # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY +10A7F ; Grapheme_Base # Po OLD SOUTH ARABIAN NUMERIC INDICATOR +10B00..10B35 ; Grapheme_Base # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B39..10B3F ; Grapheme_Base # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION +10B40..10B55 ; Grapheme_Base # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B58..10B5F ; Grapheme_Base # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND +10B60..10B72 ; Grapheme_Base # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10B78..10B7F ; Grapheme_Base # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND +10C00..10C48 ; Grapheme_Base # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +10E60..10E7E ; Grapheme_Base # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS +11000 ; Grapheme_Base # Mc BRAHMI SIGN CANDRABINDU +11002 ; Grapheme_Base # Mc BRAHMI SIGN VISARGA +11003..11037 ; Grapheme_Base # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11047..1104D ; Grapheme_Base # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS +11052..11065 ; Grapheme_Base # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND +11066..1106F ; Grapheme_Base # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE +11082 ; Grapheme_Base # Mc KAITHI SIGN VISARGA +11083..110AF ; Grapheme_Base # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110B0..110B2 ; Grapheme_Base # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B7..110B8 ; Grapheme_Base # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU +110BB..110BC ; Grapheme_Base # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN +110BE..110C1 ; Grapheme_Base # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA +110D0..110E8 ; Grapheme_Base # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +110F0..110F9 ; Grapheme_Base # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE +11103..11126 ; Grapheme_Base # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +1112C ; Grapheme_Base # Mc CHAKMA VOWEL SIGN E +11136..1113F ; Grapheme_Base # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE +11140..11143 ; Grapheme_Base # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK +11182 ; Grapheme_Base # Mc SHARADA SIGN VISARGA +11183..111B2 ; Grapheme_Base # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111B3..111B5 ; Grapheme_Base # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II +111BF..111C0 ; Grapheme_Base # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA +111C1..111C4 ; Grapheme_Base # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +111C5..111C8 ; Grapheme_Base # Po [4] SHARADA DANDA..SHARADA SEPARATOR +111D0..111D9 ; Grapheme_Base # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE +11680..116AA ; Grapheme_Base # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +116AC ; Grapheme_Base # Mc TAKRI SIGN VISARGA +116AE..116AF ; Grapheme_Base # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II +116B6 ; Grapheme_Base # Mc TAKRI SIGN VIRAMA +116C0..116C9 ; Grapheme_Base # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE +12000..1236E ; Grapheme_Base # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +12400..12462 ; Grapheme_Base # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +12470..12473 ; Grapheme_Base # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON +13000..1342E ; Grapheme_Base # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +16800..16A38 ; Grapheme_Base # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16F00..16F44 ; Grapheme_Base # Lo [69] MIAO LETTER PA..MIAO LETTER HHA +16F50 ; Grapheme_Base # Lo MIAO LETTER NASALIZATION +16F51..16F7E ; Grapheme_Base # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG +16F93..16F9F ; Grapheme_Base # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 +1B000..1B001 ; Grapheme_Base # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1D000..1D0F5 ; Grapheme_Base # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO +1D100..1D126 ; Grapheme_Base # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2 +1D129..1D164 ; Grapheme_Base # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE +1D166 ; Grapheme_Base # Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM +1D16A..1D16C ; Grapheme_Base # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3 +1D16D ; Grapheme_Base # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT +1D183..1D184 ; Grapheme_Base # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN +1D18C..1D1A9 ; Grapheme_Base # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH +1D1AE..1D1DD ; Grapheme_Base # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS +1D200..1D241 ; Grapheme_Base # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54 +1D245 ; Grapheme_Base # So GREEK MUSICAL LEIMMA +1D300..1D356 ; Grapheme_Base # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING +1D360..1D371 ; Grapheme_Base # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE +1D400..1D454 ; Grapheme_Base # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Grapheme_Base # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Grapheme_Base # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Grapheme_Base # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Grapheme_Base # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Grapheme_Base # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Grapheme_Base # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Grapheme_Base # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Grapheme_Base # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Grapheme_Base # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Grapheme_Base # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Grapheme_Base # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Grapheme_Base # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Grapheme_Base # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Grapheme_Base # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Grapheme_Base # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Grapheme_Base # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Grapheme_Base # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Grapheme_Base # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Grapheme_Base # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C1 ; Grapheme_Base # Sm MATHEMATICAL BOLD NABLA +1D6C2..1D6DA ; Grapheme_Base # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DB ; Grapheme_Base # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL +1D6DC..1D6FA ; Grapheme_Base # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FB ; Grapheme_Base # Sm MATHEMATICAL ITALIC NABLA +1D6FC..1D714 ; Grapheme_Base # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D715 ; Grapheme_Base # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL +1D716..1D734 ; Grapheme_Base # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D735 ; Grapheme_Base # Sm MATHEMATICAL BOLD ITALIC NABLA +1D736..1D74E ; Grapheme_Base # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D74F ; Grapheme_Base # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL +1D750..1D76E ; Grapheme_Base # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D76F ; Grapheme_Base # Sm MATHEMATICAL SANS-SERIF BOLD NABLA +1D770..1D788 ; Grapheme_Base # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D789 ; Grapheme_Base # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL +1D78A..1D7A8 ; Grapheme_Base # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7A9 ; Grapheme_Base # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA +1D7AA..1D7C2 ; Grapheme_Base # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C3 ; Grapheme_Base # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL +1D7C4..1D7CB ; Grapheme_Base # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; Grapheme_Base # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE +1EE00..1EE03 ; Grapheme_Base # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; Grapheme_Base # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; Grapheme_Base # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; Grapheme_Base # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; Grapheme_Base # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; Grapheme_Base # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; Grapheme_Base # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; Grapheme_Base # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; Grapheme_Base # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; Grapheme_Base # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; Grapheme_Base # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; Grapheme_Base # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; Grapheme_Base # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; Grapheme_Base # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; Grapheme_Base # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; Grapheme_Base # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; Grapheme_Base # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; Grapheme_Base # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; Grapheme_Base # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; Grapheme_Base # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; Grapheme_Base # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; Grapheme_Base # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; Grapheme_Base # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; Grapheme_Base # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +1EEF0..1EEF1 ; Grapheme_Base # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL +1F000..1F02B ; Grapheme_Base # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK +1F030..1F093 ; Grapheme_Base # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06 +1F0A0..1F0AE ; Grapheme_Base # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES +1F0B1..1F0BE ; Grapheme_Base # So [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS +1F0C1..1F0CF ; Grapheme_Base # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER +1F0D1..1F0DF ; Grapheme_Base # So [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER +1F100..1F10A ; Grapheme_Base # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA +1F110..1F12E ; Grapheme_Base # So [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ +1F130..1F16B ; Grapheme_Base # So [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN +1F170..1F19A ; Grapheme_Base # So [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS +1F1E6..1F202 ; Grapheme_Base # So [29] REGIONAL INDICATOR SYMBOL LETTER A..SQUARED KATAKANA SA +1F210..1F23A ; Grapheme_Base # So [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6 +1F240..1F248 ; Grapheme_Base # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 +1F250..1F251 ; Grapheme_Base # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT +1F300..1F320 ; Grapheme_Base # So [33] CYCLONE..SHOOTING STAR +1F330..1F335 ; Grapheme_Base # So [6] CHESTNUT..CACTUS +1F337..1F37C ; Grapheme_Base # So [70] TULIP..BABY BOTTLE +1F380..1F393 ; Grapheme_Base # So [20] RIBBON..GRADUATION CAP +1F3A0..1F3C4 ; Grapheme_Base # So [37] CAROUSEL HORSE..SURFER +1F3C6..1F3CA ; Grapheme_Base # So [5] TROPHY..SWIMMER +1F3E0..1F3F0 ; Grapheme_Base # So [17] HOUSE BUILDING..EUROPEAN CASTLE +1F400..1F43E ; Grapheme_Base # So [63] RAT..PAW PRINTS +1F440 ; Grapheme_Base # So EYES +1F442..1F4F7 ; Grapheme_Base # So [182] EAR..CAMERA +1F4F9..1F4FC ; Grapheme_Base # So [4] VIDEO CAMERA..VIDEOCASSETTE +1F500..1F53D ; Grapheme_Base # So [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE +1F540..1F543 ; Grapheme_Base # So [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS +1F550..1F567 ; Grapheme_Base # So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY +1F5FB..1F640 ; Grapheme_Base # So [70] MOUNT FUJI..WEARY CAT FACE +1F645..1F64F ; Grapheme_Base # So [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS +1F680..1F6C5 ; Grapheme_Base # So [70] ROCKET..LEFT LUGGAGE +1F700..1F773 ; Grapheme_Base # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE +20000..2A6D6 ; Grapheme_Base # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; Grapheme_Base # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +# Total code points: 108661 + +# ================================================ + +# Derived Property: Grapheme_Link (deprecated) +# Generated from: Canonical_Combining_Class=Virama +# Use Canonical_Combining_Class=Virama directly instead + +094D ; Grapheme_Link # Mn DEVANAGARI SIGN VIRAMA +09CD ; Grapheme_Link # Mn BENGALI SIGN VIRAMA +0A4D ; Grapheme_Link # Mn GURMUKHI SIGN VIRAMA +0ACD ; Grapheme_Link # Mn GUJARATI SIGN VIRAMA +0B4D ; Grapheme_Link # Mn ORIYA SIGN VIRAMA +0BCD ; Grapheme_Link # Mn TAMIL SIGN VIRAMA +0C4D ; Grapheme_Link # Mn TELUGU SIGN VIRAMA +0CCD ; Grapheme_Link # Mn KANNADA SIGN VIRAMA +0D4D ; Grapheme_Link # Mn MALAYALAM SIGN VIRAMA +0DCA ; Grapheme_Link # Mn SINHALA SIGN AL-LAKUNA +0E3A ; Grapheme_Link # Mn THAI CHARACTER PHINTHU +0F84 ; Grapheme_Link # Mn TIBETAN MARK HALANTA +1039..103A ; Grapheme_Link # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +1714 ; Grapheme_Link # Mn TAGALOG SIGN VIRAMA +1734 ; Grapheme_Link # Mn HANUNOO SIGN PAMUDPOD +17D2 ; Grapheme_Link # Mn KHMER SIGN COENG +1A60 ; Grapheme_Link # Mn TAI THAM SIGN SAKOT +1B44 ; Grapheme_Link # Mc BALINESE ADEG ADEG +1BAA ; Grapheme_Link # Mc SUNDANESE SIGN PAMAAEH +1BAB ; Grapheme_Link # Mn SUNDANESE SIGN VIRAMA +1BF2..1BF3 ; Grapheme_Link # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN +2D7F ; Grapheme_Link # Mn TIFINAGH CONSONANT JOINER +A806 ; Grapheme_Link # Mn SYLOTI NAGRI SIGN HASANTA +A8C4 ; Grapheme_Link # Mn SAURASHTRA SIGN VIRAMA +A953 ; Grapheme_Link # Mc REJANG VIRAMA +A9C0 ; Grapheme_Link # Mc JAVANESE PANGKON +AAF6 ; Grapheme_Link # Mn MEETEI MAYEK VIRAMA +ABED ; Grapheme_Link # Mn MEETEI MAYEK APUN IYEK +10A3F ; Grapheme_Link # Mn KHAROSHTHI VIRAMA +11046 ; Grapheme_Link # Mn BRAHMI VIRAMA +110B9 ; Grapheme_Link # Mn KAITHI SIGN VIRAMA +11133..11134 ; Grapheme_Link # Mn [2] CHAKMA VIRAMA..CHAKMA MAAYYAA +111C0 ; Grapheme_Link # Mc SHARADA SIGN VIRAMA +116B6 ; Grapheme_Link # Mc TAKRI SIGN VIRAMA + +# Total code points: 37 + +# EOF ADDED freshlib/_doc/utf8/SpecialCasing.txt Index: freshlib/_doc/utf8/SpecialCasing.txt ================================================================== --- /dev/null +++ freshlib/_doc/utf8/SpecialCasing.txt @@ -0,0 +1,276 @@ +# SpecialCasing-6.2.0.txt +# Date: 2012-05-23, 20:35:15 GMT [MD] +# +# Unicode Character Database +# Copyright (c) 1991-2012 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ +# +# Special Casing Properties +# +# This file is a supplement to the UnicodeData file. +# It contains additional information about the casing of Unicode characters. +# (For compatibility, the UnicodeData.txt file only contains case mappings for +# characters where they are 1-1, and independent of context and language. +# For more information, see the discussion of Case Mappings in the Unicode Standard. +# +# All code points not listed in this file that do not have a simple case mappings +# in UnicodeData.txt map to themselves. +# ================================================================================ +# Format +# ================================================================================ +# The entries in this file are in the following machine-readable format: +# +# ; ; ; <upper> ; (<condition_list> ;)? # <comment> +# +# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more +# than one character, they are separated by spaces. Other than as used to separate +# elements, spaces are to be ignored. +# +# The <condition_list> is optional. Where present, it consists of one or more language IDs +# or contexts, separated by spaces. In these conditions: +# - A condition list overrides the normal behavior if all of the listed conditions are true. +# - The context is always the context of the characters in the original string, +# NOT in the resulting string. +# - Case distinctions in the condition list are not significant. +# - Conditions preceded by "Not_" represent the negation of the condition. +# The condition list is not represented in the UCD as a formal property. +# +# A language ID is defined by BCP 47, with '-' and '_' treated equivalently. +# +# A context for a character C is defined by Section 3.13 Default Case +# Operations, of The Unicode Standard, Version 5.0. +# (This is identical to the context defined by Unicode 4.1.0, +# as specified in http://www.unicode.org/versions/Unicode4.1.0/) +# +# Parsers of this file must be prepared to deal with future additions to this format: +# * Additional contexts +# * Additional fields +# ================================================================================ + +# @missing: 0000..10FFFF; <slc>; <stc>; <suc>; + +# ================================================================================ +# Unconditional mappings +# ================================================================================ + +# The German es-zed is special--the normal mapping is to SS. +# Note: the titlecase should never occur in practice. It is equal to titlecase(uppercase(<es-zed>)) + +00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S + +# Preserve canonical equivalence for I with dot. Turkic is handled below. + +0130; 0069 0307; 0130; 0130; # LATIN CAPITAL LETTER I WITH DOT ABOVE + +# Ligatures + +FB00; FB00; 0046 0066; 0046 0046; # LATIN SMALL LIGATURE FF +FB01; FB01; 0046 0069; 0046 0049; # LATIN SMALL LIGATURE FI +FB02; FB02; 0046 006C; 0046 004C; # LATIN SMALL LIGATURE FL +FB03; FB03; 0046 0066 0069; 0046 0046 0049; # LATIN SMALL LIGATURE FFI +FB04; FB04; 0046 0066 006C; 0046 0046 004C; # LATIN SMALL LIGATURE FFL +FB05; FB05; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE LONG S T +FB06; FB06; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE ST + +0587; 0587; 0535 0582; 0535 0552; # ARMENIAN SMALL LIGATURE ECH YIWN +FB13; FB13; 0544 0576; 0544 0546; # ARMENIAN SMALL LIGATURE MEN NOW +FB14; FB14; 0544 0565; 0544 0535; # ARMENIAN SMALL LIGATURE MEN ECH +FB15; FB15; 0544 056B; 0544 053B; # ARMENIAN SMALL LIGATURE MEN INI +FB16; FB16; 054E 0576; 054E 0546; # ARMENIAN SMALL LIGATURE VEW NOW +FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH + +# No corresponding uppercase precomposed character + +0149; 0149; 02BC 004E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON +1E96; 1E96; 0048 0331; 0048 0331; # LATIN SMALL LETTER H WITH LINE BELOW +1E97; 1E97; 0054 0308; 0054 0308; # LATIN SMALL LETTER T WITH DIAERESIS +1E98; 1E98; 0057 030A; 0057 030A; # LATIN SMALL LETTER W WITH RING ABOVE +1E99; 1E99; 0059 030A; 0059 030A; # LATIN SMALL LETTER Y WITH RING ABOVE +1E9A; 1E9A; 0041 02BE; 0041 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING +1F50; 1F50; 03A5 0313; 03A5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI +1F52; 1F52; 03A5 0313 0300; 03A5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA +1F54; 1F54; 03A5 0313 0301; 03A5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA +1F56; 1F56; 03A5 0313 0342; 03A5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI +1FB6; 1FB6; 0391 0342; 0391 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI +1FC6; 1FC6; 0397 0342; 0397 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI +1FD2; 1FD2; 0399 0308 0300; 0399 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA +1FD3; 1FD3; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6; 1FD6; 0399 0342; 0399 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI +1FD7; 1FD7; 0399 0308 0342; 0399 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FE2; 1FE2; 03A5 0308 0300; 03A5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA +1FE3; 1FE3; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA +1FE4; 1FE4; 03A1 0313; 03A1 0313; # GREEK SMALL LETTER RHO WITH PSILI +1FE6; 1FE6; 03A5 0342; 03A5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI +1FE7; 1FE7; 03A5 0308 0342; 03A5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FF6; 1FF6; 03A9 0342; 03A9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI + +# IMPORTANT-when iota-subscript (0345) is uppercased or titlecased, +# the result will be incorrect unless the iota-subscript is moved to the end +# of any sequence of combining marks. Otherwise, the accents will go on the capital iota. +# This process can be achieved by first transforming the text to NFC before casing. +# E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA> + +# The following cases are already in the UnicodeData file, so are only commented here. + +# 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI + +# All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript) +# have special uppercases. +# Note: characters with PROSGEGRAMMENI are actually titlecase, not uppercase! + +1F80; 1F80; 1F88; 1F08 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI +1F81; 1F81; 1F89; 1F09 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI +1F82; 1F82; 1F8A; 1F0A 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F83; 1F83; 1F8B; 1F0B 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F84; 1F84; 1F8C; 1F0C 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F85; 1F85; 1F8D; 1F0D 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F86; 1F86; 1F8E; 1F0E 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F87; 1F87; 1F8F; 1F0F 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F88; 1F80; 1F88; 1F08 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI +1F89; 1F81; 1F89; 1F09 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI +1F8A; 1F82; 1F8A; 1F0A 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F8B; 1F83; 1F8B; 1F0B 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F8C; 1F84; 1F8C; 1F0C 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F8D; 1F85; 1F8D; 1F0D 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F8E; 1F86; 1F8E; 1F0E 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F8F; 1F87; 1F8F; 1F0F 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F90; 1F90; 1F98; 1F28 0399; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI +1F91; 1F91; 1F99; 1F29 0399; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI +1F92; 1F92; 1F9A; 1F2A 0399; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F93; 1F93; 1F9B; 1F2B 0399; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F94; 1F94; 1F9C; 1F2C 0399; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F95; 1F95; 1F9D; 1F2D 0399; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F96; 1F96; 1F9E; 1F2E 0399; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F97; 1F97; 1F9F; 1F2F 0399; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F98; 1F90; 1F98; 1F28 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI +1F99; 1F91; 1F99; 1F29 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI +1F9A; 1F92; 1F9A; 1F2A 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F9B; 1F93; 1F9B; 1F2B 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F9C; 1F94; 1F9C; 1F2C 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F9D; 1F95; 1F9D; 1F2D 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F9E; 1F96; 1F9E; 1F2E 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F9F; 1F97; 1F9F; 1F2F 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FA0; 1FA0; 1FA8; 1F68 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI +1FA1; 1FA1; 1FA9; 1F69 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI +1FA2; 1FA2; 1FAA; 1F6A 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1FA3; 1FA3; 1FAB; 1F6B 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1FA4; 1FA4; 1FAC; 1F6C 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1FA5; 1FA5; 1FAD; 1F6D 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1FA6; 1FA6; 1FAE; 1F6E 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1FA7; 1FA7; 1FAF; 1F6F 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FA8; 1FA0; 1FA8; 1F68 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI +1FA9; 1FA1; 1FA9; 1F69 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI +1FAA; 1FA2; 1FAA; 1F6A 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1FAB; 1FA3; 1FAB; 1F6B 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1FAC; 1FA4; 1FAC; 1F6C 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1FAD; 1FA5; 1FAD; 1F6D 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1FAE; 1FA6; 1FAE; 1F6E 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1FAF; 1FA7; 1FAF; 1F6F 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FB3; 1FB3; 1FBC; 0391 0399; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI +1FBC; 1FB3; 1FBC; 0391 0399; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FC3; 1FC3; 1FCC; 0397 0399; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI +1FCC; 1FC3; 1FCC; 0397 0399; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI +1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI + +# Some characters with YPOGEGRAMMENI also have no corresponding titlecases + +1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI +1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FC2; 1FC2; 1FCA 0345; 1FCA 0399; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI +1FC4; 1FC4; 0389 0345; 0389 0399; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FF2; 1FF2; 1FFA 0345; 1FFA 0399; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI +1FF4; 1FF4; 038F 0345; 038F 0399; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI + +1FB7; 1FB7; 0391 0342 0345; 0391 0342 0399; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FC7; 1FC7; 0397 0342 0345; 0397 0342 0399; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI + +# ================================================================================ +# Conditional Mappings +# The remainder of this file provides conditional casing data used to produce +# full case mappings. +# ================================================================================ +# Language-Insensitive Mappings +# These are characters whose full case mappings do not depend on language, but do +# depend on context (which characters come before or after). For more information +# see the header of this file and the Unicode Standard. +# ================================================================================ + +# Special case for final form of sigma + +03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA + +# Note: the following cases for non-final are already in the UnicodeData file. + +# 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA +# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA +# 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA + +# Note: the following cases are not included, since they would case-fold in lowercasing + +# 03C3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK SMALL LETTER SIGMA +# 03C2; 03C3; 03A3; 03A3; Not_Final_Sigma; # GREEK SMALL LETTER FINAL SIGMA + +# ================================================================================ +# Language-Sensitive Mappings +# These are characters whose full case mappings depend on language and perhaps also +# context (which characters come before or after). For more information +# see the header of this file and the Unicode Standard. +# ================================================================================ + +# Lithuanian + +# Lithuanian retains the dot in a lowercase i when followed by accents. + +# Remove DOT ABOVE after "i" with upper or titlecase + +0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE + +# Introduce an explicit dot above when lowercasing capital I's and J's +# whenever there are more accents above. +# (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) + +0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I +004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J +012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK +00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE +00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE +0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE + +# ================================================================================ + +# Turkish and Azeri + +# I and i-dotless; I-dot and i are case pairs in Turkish and Azeri +# The following rules handle those cases. + +0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE +0130; 0069; 0130; 0130; az; # LATIN CAPITAL LETTER I WITH DOT ABOVE + +# When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. +# This matches the behavior of the canonically equivalent I-dot_above + +0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE +0307; ; 0307; 0307; az After_I; # COMBINING DOT ABOVE + +# When lowercasing, unless an I is before a dot_above, it turns into a dotless i. + +0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I +0049; 0131; 0049; 0049; az Not_Before_Dot; # LATIN CAPITAL LETTER I + +# When uppercasing, i turns into a dotted capital I + +0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I +0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I + +# Note: the following case is already in the UnicodeData file. + +# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I + +# EOF + ADDED freshlib/_doc/utf8/UnicodeData.txt Index: freshlib/_doc/utf8/UnicodeData.txt ================================================================== --- /dev/null +++ freshlib/_doc/utf8/UnicodeData.txt @@ -0,0 +1,24429 @@ +0000;<control>;Cc;0;BN;;;;;N;NULL;;;; +0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;; +0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; +0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; +0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; +0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; +0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; +0007;<control>;Cc;0;BN;;;;;N;BELL;;;; +0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;; +0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATION;;;; +000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;; +000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;; +000C;<control>;Cc;0;WS;;;;;N;FORM FEED (FF);;;; +000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;; +000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;; +000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;; +0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;; +0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;; +0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;; +0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;; +0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;; +0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;; +0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;; +0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;; +0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;; +0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;; +001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;; +001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;; +001C;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;; +001D;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;; +001E;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;; +001F;<control>;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;; +0020;SPACE;Zs;0;WS;;;;;N;;;;; +0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; +0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;; +0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;; +0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;; +0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;; +0026;AMPERSAND;Po;0;ON;;;;;N;;;;; +0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;; +0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;; +0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;; +002A;ASTERISK;Po;0;ON;;;;;N;;;;; +002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;; +002C;COMMA;Po;0;CS;;;;;N;;;;; +002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;; +002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;; +002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;; +0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;; +0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;; +0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;; +0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;; +0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;; +0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;; +0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;; +0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;; +0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;; +0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;; +003A;COLON;Po;0;CS;;;;;N;;;;; +003B;SEMICOLON;Po;0;ON;;;;;N;;;;; +003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;; +003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;; +003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;; +003F;QUESTION MARK;Po;0;ON;;;;;N;;;;; +0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;; +0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061; +0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062; +0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063; +0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064; +0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065; +0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066; +0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067; +0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068; +0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069; +004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A; +004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B; +004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C; +004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D; +004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E; +004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F; +0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070; +0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071; +0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072; +0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073; +0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074; +0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075; +0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076; +0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077; +0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078; +0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079; +005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A; +005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;; +005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;; +005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;; +005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;; +005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;; +0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;; +0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041 +0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042 +0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043 +0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044 +0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045 +0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046 +0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047 +0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048 +0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049 +006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A +006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B +006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C +006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D +006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E +006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F +0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050 +0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051 +0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052 +0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053 +0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054 +0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055 +0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056 +0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057 +0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058 +0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059 +007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A +007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;; +007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;; +007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;; +007E;TILDE;Sm;0;ON;;;;;N;;;;; +007F;<control>;Cc;0;BN;;;;;N;DELETE;;;; +0080;<control>;Cc;0;BN;;;;;N;;;;; +0081;<control>;Cc;0;BN;;;;;N;;;;; +0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;; +0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;; +0084;<control>;Cc;0;BN;;;;;N;;;;; +0085;<control>;Cc;0;B;;;;;N;NEXT LINE (NEL);;;; +0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;; +0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;; +0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;; +0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;; +008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;; +008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;; +008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;; +008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;; +008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;; +008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;; +0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;; +0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;; +0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;; +0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;; +0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;; +0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;; +0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;; +0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;; +0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;; +0099;<control>;Cc;0;BN;;;;;N;;;;; +009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;; +009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;; +009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;; +009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;; +009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;; +009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;; +00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;; +00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; +00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;; +00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;; +00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; +00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;; +00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;; +00A7;SECTION SIGN;Po;0;ON;;;;;N;;;;; +00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;; +00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;; +00AA;FEMININE ORDINAL INDICATOR;Lo;0;L;<super> 0061;;;;N;;;;; +00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;;;; +00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;; +00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;; +00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;; +00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;; +00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;; +00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;; +00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;; +00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;; +00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;; +00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C +00B6;PILCROW SIGN;Po;0;ON;;;;;N;PARAGRAPH SIGN;;;; +00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;; +00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;; +00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;; +00BA;MASCULINE ORDINAL INDICATOR;Lo;0;L;<super> 006F;;;;N;;;;; +00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;; +00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;; +00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;; +00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;; +00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;; +00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0; +00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1; +00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2; +00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3; +00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4; +00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5; +00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;;;00E6; +00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7; +00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8; +00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9; +00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA; +00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB; +00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC; +00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED; +00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE; +00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF; +00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;00F0; +00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1; +00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2; +00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3; +00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4; +00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5; +00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6; +00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;; +00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8; +00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9; +00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA; +00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB; +00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC; +00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD; +00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;;;00FE; +00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;;;; +00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0 +00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1 +00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2 +00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3 +00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4 +00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5 +00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;;00C6;;00C6 +00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7 +00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8 +00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9 +00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA +00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB +00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC +00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD +00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE +00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF +00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;;00D0;;00D0 +00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1 +00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2 +00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3 +00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4 +00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5 +00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6 +00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;; +00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8 +00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9 +00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA +00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB +00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC +00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD +00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;;00DE;;00DE +00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178 +0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101; +0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100 +0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103; +0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102 +0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105; +0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104 +0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107; +0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106 +0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109; +0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108 +010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B; +010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A +010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D; +010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C +010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F; +010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E +0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111; +0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110 +0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113; +0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112 +0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115; +0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114 +0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117; +0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116 +0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119; +0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118 +011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B; +011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A +011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D; +011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C +011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F; +011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E +0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121; +0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120 +0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123; +0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122 +0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125; +0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124 +0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127; +0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126 +0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129; +0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128 +012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B; +012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A +012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D; +012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C +012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F; +012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E +0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069; +0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049 +0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133; +0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132 +0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135; +0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134 +0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137; +0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136 +0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;;;; +0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A; +013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139 +013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C; +013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B +013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E; +013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D +013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140; +0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F +0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142; +0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141 +0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144; +0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143 +0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146; +0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145 +0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148; +0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147 +0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;; +014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;014B; +014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;;014A;;014A +014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D; +014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C +014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F; +014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E +0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151; +0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150 +0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153; +0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152 +0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155; +0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154 +0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157; +0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156 +0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159; +0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158 +015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B; +015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A +015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D; +015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C +015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;;;015F; +015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;;015E;;015E +0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161; +0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160 +0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;;;0163; +0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;;0162;;0162 +0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165; +0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164 +0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167; +0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166 +0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169; +0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168 +016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B; +016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A +016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D; +016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C +016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F; +016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E +0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171; +0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170 +0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173; +0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172 +0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175; +0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174 +0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177; +0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176 +0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF; +0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A; +017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179 +017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C; +017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B +017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E; +017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D +017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053 +0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243 +0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253; +0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183; +0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182 +0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185; +0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184 +0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254; +0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188; +0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187 +0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;;;0256; +018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257; +018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C; +018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B +018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;; +018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD; +018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259; +0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B; +0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192; +0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191 +0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260; +0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263; +0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;;01F6;;01F6 +0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269; +0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268; +0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199; +0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198 +019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D +019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;; +019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F; +019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272; +019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220 +019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;;;0275; +01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1; +01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0 +01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;;;01A3; +01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;;01A2;;01A2 +01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5; +01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4 +01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;;;0280; +01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8; +01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7 +01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283; +01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;; +01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;; +01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD; +01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC +01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288; +01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0; +01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF +01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A; +01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B; +01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4; +01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3 +01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6; +01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5 +01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292; +01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9; +01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8 +01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;; +01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;; +01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD; +01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC +01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;; +01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7 +01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;; +01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;; +01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;; +01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;; +01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5 +01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5 +01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5 +01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8 +01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8 +01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8 +01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB +01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB +01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB +01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE; +01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD +01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0; +01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF +01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2; +01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1 +01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4; +01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3 +01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6; +01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5 +01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8; +01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7 +01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA; +01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9 +01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC; +01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB +01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E +01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF; +01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE +01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1; +01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0 +01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;;;01E3; +01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;;01E2;;01E2 +01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5; +01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4 +01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7; +01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6 +01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9; +01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8 +01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB; +01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA +01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED; +01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC +01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF; +01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE +01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;; +01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2 +01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;01F2 +01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2 +01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5; +01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4 +01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195; +01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF; +01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9; +01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8 +01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB; +01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA +01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;;;01FD; +01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;;01FC;;01FC +01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF; +01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE +0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201; +0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200 +0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203; +0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202 +0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205; +0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204 +0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207; +0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206 +0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209; +0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208 +020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B; +020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A +020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D; +020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C +020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F; +020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E +0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211; +0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210 +0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213; +0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212 +0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215; +0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214 +0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217; +0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216 +0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;;;0219; +0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;;0218;;0218 +021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;;;021B; +021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;;021A;;021A +021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D; +021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C +021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F; +021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E +0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E; +0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;; +0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223; +0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222 +0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225; +0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224 +0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227; +0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226 +0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229; +0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228 +022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B; +022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A +022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D; +022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C +022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F; +022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E +0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231; +0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230 +0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233; +0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232 +0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;; +0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;; +0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;; +0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;; +0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;; +0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;; +023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65; +023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C; +023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B +023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A; +023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66; +023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;2C7E;;2C7E +0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;2C7F;;2C7F +0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242; +0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241 +0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180; +0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289; +0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C; +0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247; +0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246 +0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249; +0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248 +024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B; +024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A +024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D; +024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C +024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F; +024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E +0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;2C6F;;2C6F +0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;2C6D;;2C6D +0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;2C70;;2C70 +0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181 +0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186 +0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;; +0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189 +0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A +0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;; +0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F +025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;; +025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190 +025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;; +025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;; +025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;; +025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;; +0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193 +0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;; +0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;; +0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194 +0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;; +0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;A78D;;A78D +0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;A7AA;;A7AA +0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;; +0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197 +0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196 +026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;; +026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62 +026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;; +026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;; +026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;; +026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C +0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;; +0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;2C6E;;2C6E +0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D +0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;; +0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;; +0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F +0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;; +0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;; +0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;; +0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;; +027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;; +027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;; +027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;; +027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64 +027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;; +027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;; +0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;;01A6;;01A6 +0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;; +0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;; +0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9 +0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;; +0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;; +0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;; +0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;; +0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE +0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244 +028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1 +028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2 +028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245 +028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;; +028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;; +028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;; +0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;; +0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;; +0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7 +0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;; +0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;; +0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;; +0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;; +0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;; +0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;; +0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;; +029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;; +029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;; +029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;; +029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;; +029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;; +029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;; +02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;; +02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;; +02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;; +02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;; +02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;; +02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;; +02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;; +02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;; +02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;; +02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;; +02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;; +02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;; +02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; +02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; +02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;; +02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;; +02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;; +02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;; +02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;; +02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;; +02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;; +02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;; +02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;; +02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;; +02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;; +02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;; +02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;; +02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;; +02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;; +02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;; +02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;; +02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; +02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;; +02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;; +02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;; +02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;;;; +02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;; +02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;;;; +02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;;;; +02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;;;; +02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;; +02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;; +02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;; +02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;; +02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; +02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; +02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;; +02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;; +02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;; +02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;; +02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;; +02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;; +02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;; +02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;;;; +02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;; +02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;; +02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;; +02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;; +02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;; +02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;; +02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;; +02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;; +02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;; +02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;; +02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;; +02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; +02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; +02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;; +02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;; +02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;; +02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; +02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; +02EC;MODIFIER LETTER VOICING;Lm;0;ON;;;;;N;;;;; +02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;; +02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;; +02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;; +02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;; +02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;; +02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;; +02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;; +02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;; +02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;; +02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;; +02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;; +02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;; +02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;; +02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;; +02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;; +02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;; +0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;;;; +0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;;;; +0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;; +0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;; +0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;; +0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;; +0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;;;; +0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;; +0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;;;; +0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;; +030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;; +030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;; +030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;; +030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;; +030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;; +030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;; +0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;; +0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;; +0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;; +0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;;;; +0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;;;; +0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;; +0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;; +0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;; +0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;; +0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;; +031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;; +031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;; +031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;; +031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;; +031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;; +031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;; +0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;; +0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;; +0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;; +0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;; +0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;; +0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;; +0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;; +0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;; +0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;; +0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;; +032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;; +032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;; +032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;; +032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;; +032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;; +032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;; +0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;; +0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;; +0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;; +0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;; +0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;; +0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;; +0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;; +0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;; +0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;; +0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;; +033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;; +033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;; +033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;; +033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;; +033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;; +033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;; +0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;;;; +0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;;;; +0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;; +0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;; +0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;; +0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399 +0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; +0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;; +0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;; +0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;; +034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;; +034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;; +034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;; +034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; +034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;; +034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;; +0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; +0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;; +0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;; +0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;; +0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; +0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; +0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; +0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;; +0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;; +0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;; +035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;; +035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;; +035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;; +035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;; +035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;; +035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;; +0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;; +0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;; +0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;; +0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;; +0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;; +0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;; +0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;; +0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;; +0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;; +0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;; +036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;; +036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;; +036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;; +036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;; +036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;; +036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;; +0370;GREEK CAPITAL LETTER HETA;Lu;0;L;;;;;N;;;;0371; +0371;GREEK SMALL LETTER HETA;Ll;0;L;;;;;N;;;0370;;0370 +0372;GREEK CAPITAL LETTER ARCHAIC SAMPI;Lu;0;L;;;;;N;;;;0373; +0373;GREEK SMALL LETTER ARCHAIC SAMPI;Ll;0;L;;;;;N;;;0372;;0372 +0374;GREEK NUMERAL SIGN;Lm;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;;;; +0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;;;; +0376;GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA;Lu;0;L;;;;;N;;;;0377; +0377;GREEK SMALL LETTER PAMPHYLIAN DIGAMMA;Ll;0;L;;;;;N;;;0376;;0376 +037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;; +037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD +037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE +037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF +037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;;;; +0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;; +0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;; +0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC; +0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;; +0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD; +0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE; +038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF; +038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC; +038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD; +038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE; +0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;; +0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1; +0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2; +0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3; +0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4; +0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5; +0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6; +0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7; +0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8; +0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9; +039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA; +039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB; +039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC; +039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD; +039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE; +039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF; +03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0; +03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1; +03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3; +03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4; +03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5; +03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6; +03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7; +03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8; +03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9; +03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA; +03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB; +03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386 +03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388 +03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389 +03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A +03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;; +03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391 +03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392 +03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393 +03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394 +03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395 +03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396 +03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397 +03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398 +03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399 +03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A +03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B +03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C +03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D +03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E +03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F +03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0 +03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1 +03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 +03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 +03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4 +03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5 +03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6 +03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7 +03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8 +03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9 +03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA +03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB +03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C +03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E +03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F +03CF;GREEK CAPITAL KAI SYMBOL;Lu;0;L;;;;;N;;;;03D7; +03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392 +03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398 +03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;; +03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;; +03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;; +03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6 +03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0 +03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;03CF;;03CF +03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;;;03D9; +03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;;03D8;;03D8 +03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB; +03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA +03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD; +03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC +03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF; +03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE +03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1; +03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0 +03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3; +03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2 +03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5; +03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4 +03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7; +03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6 +03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9; +03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8 +03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB; +03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA +03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED; +03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC +03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF; +03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE +03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A +03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1 +03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9 +03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;; +03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8; +03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395 +03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;; +03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8; +03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7 +03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L;<compat> 03A3;;;;N;;;;03F2; +03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB; +03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA +03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;; +03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B; +03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C; +03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D; +0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450; +0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451; +0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;;;0452; +0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453; +0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454; +0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455; +0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456; +0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;;;0457; +0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458; +0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459; +040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A; +040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;;;045B; +040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C; +040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D; +040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;;;045E; +040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F; +0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430; +0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431; +0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432; +0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433; +0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434; +0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435; +0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436; +0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437; +0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438; +0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439; +041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A; +041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B; +041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C; +041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D; +041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E; +041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F; +0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440; +0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441; +0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442; +0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443; +0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444; +0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445; +0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446; +0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447; +0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448; +0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449; +042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A; +042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B; +042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C; +042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D; +042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E; +042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F; +0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410 +0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411 +0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412 +0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413 +0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414 +0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415 +0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416 +0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417 +0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418 +0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419 +043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A +043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B +043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C +043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D +043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E +043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F +0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420 +0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421 +0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422 +0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423 +0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424 +0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425 +0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426 +0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427 +0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428 +0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429 +044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A +044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B +044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C +044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D +044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E +044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F +0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400 +0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401 +0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;;0402;;0402 +0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403 +0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404 +0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405 +0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406 +0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;;0407;;0407 +0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408 +0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409 +045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A +045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;;040B;;040B +045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C +045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D +045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;;040E;;040E +045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F +0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461; +0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460 +0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463; +0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462 +0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465; +0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464 +0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467; +0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466 +0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469; +0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468 +046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B; +046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A +046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D; +046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C +046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F; +046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E +0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471; +0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470 +0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473; +0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472 +0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475; +0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474 +0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477; +0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476 +0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479; +0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478 +047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B; +047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A +047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D; +047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C +047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F; +047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E +0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481; +0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480 +0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;; +0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;; +0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;; +0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;; +0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;; +0487;COMBINING CYRILLIC POKRYTIE;Mn;230;NSM;;;;;N;;;;; +0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;; +0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; +048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B; +048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A +048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D; +048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C +048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F; +048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E +0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491; +0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490 +0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493; +0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492 +0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495; +0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494 +0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497; +0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496 +0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499; +0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498 +049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B; +049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A +049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D; +049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C +049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F; +049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E +04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1; +04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0 +04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3; +04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2 +04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5; +04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4 +04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;;;04A7; +04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;;04A6;;04A6 +04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9; +04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8 +04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB; +04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA +04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD; +04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC +04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF; +04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE +04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1; +04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0 +04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3; +04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2 +04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;;;04B5; +04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;;04B4;;04B4 +04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7; +04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6 +04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9; +04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8 +04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB; +04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA +04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD; +04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC +04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF; +04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE +04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF; +04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2; +04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1 +04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4; +04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3 +04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6; +04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5 +04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8; +04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7 +04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA; +04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9 +04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC; +04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB +04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE; +04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD +04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0 +04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1; +04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0 +04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3; +04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2 +04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5; +04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4 +04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7; +04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6 +04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9; +04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8 +04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB; +04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA +04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD; +04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC +04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF; +04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE +04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1; +04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0 +04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3; +04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2 +04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5; +04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4 +04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7; +04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6 +04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9; +04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8 +04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB; +04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA +04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED; +04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC +04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF; +04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE +04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1; +04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0 +04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3; +04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2 +04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5; +04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4 +04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7; +04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6 +04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9; +04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8 +04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB; +04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA +04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD; +04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC +04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF; +04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE +0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501; +0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500 +0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503; +0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502 +0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505; +0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504 +0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507; +0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506 +0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509; +0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508 +050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B; +050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A +050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D; +050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C +050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F; +050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E +0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511; +0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510 +0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513; +0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512 +0514;CYRILLIC CAPITAL LETTER LHA;Lu;0;L;;;;;N;;;;0515; +0515;CYRILLIC SMALL LETTER LHA;Ll;0;L;;;;;N;;;0514;;0514 +0516;CYRILLIC CAPITAL LETTER RHA;Lu;0;L;;;;;N;;;;0517; +0517;CYRILLIC SMALL LETTER RHA;Ll;0;L;;;;;N;;;0516;;0516 +0518;CYRILLIC CAPITAL LETTER YAE;Lu;0;L;;;;;N;;;;0519; +0519;CYRILLIC SMALL LETTER YAE;Ll;0;L;;;;;N;;;0518;;0518 +051A;CYRILLIC CAPITAL LETTER QA;Lu;0;L;;;;;N;;;;051B; +051B;CYRILLIC SMALL LETTER QA;Ll;0;L;;;;;N;;;051A;;051A +051C;CYRILLIC CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;051D; +051D;CYRILLIC SMALL LETTER WE;Ll;0;L;;;;;N;;;051C;;051C +051E;CYRILLIC CAPITAL LETTER ALEUT KA;Lu;0;L;;;;;N;;;;051F; +051F;CYRILLIC SMALL LETTER ALEUT KA;Ll;0;L;;;;;N;;;051E;;051E +0520;CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0521; +0521;CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0520;;0520 +0522;CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0523; +0523;CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0522;;0522 +0524;CYRILLIC CAPITAL LETTER PE WITH DESCENDER;Lu;0;L;;;;;N;;;;0525; +0525;CYRILLIC SMALL LETTER PE WITH DESCENDER;Ll;0;L;;;;;N;;;0524;;0524 +0526;CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER;Lu;0;L;;;;;N;;;;0527; +0527;CYRILLIC SMALL LETTER SHHA WITH DESCENDER;Ll;0;L;;;;;N;;;0526;;0526 +0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561; +0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562; +0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563; +0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564; +0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565; +0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566; +0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567; +0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568; +0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569; +053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A; +053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B; +053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C; +053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D; +053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E; +053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F; +0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570; +0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571; +0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572; +0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573; +0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574; +0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575; +0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576; +0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577; +0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578; +0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579; +054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A; +054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B; +054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C; +054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D; +054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E; +054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F; +0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580; +0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581; +0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582; +0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583; +0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584; +0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585; +0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586; +0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; +055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;; +055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;; +055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;; +055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;; +055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;; +055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;; +0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531 +0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532 +0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533 +0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534 +0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535 +0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536 +0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537 +0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538 +0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539 +056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A +056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B +056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C +056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D +056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E +056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F +0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540 +0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541 +0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542 +0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543 +0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544 +0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545 +0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546 +0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547 +0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548 +0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549 +057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A +057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B +057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C +057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D +057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E +057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F +0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550 +0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551 +0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552 +0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553 +0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554 +0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555 +0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556 +0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;; +0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;; +058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;; +058F;ARMENIAN DRAM SIGN;Sc;0;ET;;;;;N;;;;; +0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;; +0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;; +0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;; +0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;; +0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;; +0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;;;; +0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;; +0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;;;; +0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;; +059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;; +059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;; +059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;; +059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;; +059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;; +059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;; +05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;; +05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;; +05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;; +05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;; +05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;; +05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;;;; +05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;; +05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;; +05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;;;; +05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;; +05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;;;; +05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;; +05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;; +05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;; +05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;; +05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;; +05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;; +05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;; +05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;; +05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;; +05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;; +05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;; +05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;; +05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;; +05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;; +05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;; +05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;; +05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;; +05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;;;; +05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;;;; +05BE;HEBREW PUNCTUATION MAQAF;Pd;0;R;;;;;N;;;;; +05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;; +05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;;;; +05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;; +05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;; +05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;;;; +05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;; +05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;; +05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;; +05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;; +05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;; +05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;; +05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;; +05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;; +05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;; +05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;; +05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;; +05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;; +05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;; +05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;; +05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;; +05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;; +05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;; +05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;; +05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;; +05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;; +05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;; +05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;; +05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;; +05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;; +05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;; +05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;; +05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;; +05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;; +05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;; +05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;; +05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;; +05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;; +05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;; +05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;; +05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;; +05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;; +0600;ARABIC NUMBER SIGN;Cf;0;AN;;;;;N;;;;; +0601;ARABIC SIGN SANAH;Cf;0;AN;;;;;N;;;;; +0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;; +0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;; +0604;ARABIC SIGN SAMVAT;Cf;0;AN;;;;;N;;;;; +0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;; +0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;; +0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;; +0609;ARABIC-INDIC PER MILLE SIGN;Po;0;ET;;;;;N;;;;; +060A;ARABIC-INDIC PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;; +060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;; +060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;; +060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;; +060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;; +060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;; +0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;; +0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;; +0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;; +0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;; +0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;; +0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;; +0616;ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH;Mn;230;NSM;;;;;N;;;;; +0617;ARABIC SMALL HIGH ZAIN;Mn;230;NSM;;;;;N;;;;; +0618;ARABIC SMALL FATHA;Mn;30;NSM;;;;;N;;;;; +0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;; +061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;; +061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; +061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;; +061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; +0620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;; +0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;; +0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;; +0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;; +0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;; +0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;; +0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;; +0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;; +0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;; +0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;; +062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;; +062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;; +062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;; +062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;; +062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;; +062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;; +0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;; +0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;; +0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; +0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;; +0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;; +0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;; +0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;; +0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;; +0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;; +0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;; +063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;; +063B;ARABIC LETTER KEHEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +063C;ARABIC LETTER KEHEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; +063D;ARABIC LETTER FARSI YEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;; +063E;ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +063F;ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;; +0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;; +0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;; +0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;; +0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;; +0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;; +0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;; +0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;; +0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;; +0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;; +064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;; +064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;; +064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;; +064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;; +064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;; +064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;; +0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;; +0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;; +0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;; +0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;; +0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;; +0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;; +0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;; +0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;; +0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;; +0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;; +065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;; +065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;; +065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;; +065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;; +065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;; +065F;ARABIC WAVY HAMZA BELOW;Mn;220;NSM;;;;;N;;;;; +0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;; +0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;; +0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;; +0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;; +0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;; +0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;; +0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;; +0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;; +0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;; +0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;; +066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;; +066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;; +066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;; +066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;; +066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;; +066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;; +0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;; +0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;; +0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;; +0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;; +0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;; +0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;; +0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;; +0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;; +0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;; +0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;; +067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;; +067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;; +067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;; +067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;; +067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;; +067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;; +0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;; +0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;; +0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;; +0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;; +0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;; +0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;; +0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;; +0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;; +0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;; +0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;; +068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;; +068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;; +068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;; +068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;; +068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;; +0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;; +0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;; +0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;; +0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;; +0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;; +0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;; +0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;; +0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;; +0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;; +069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; +069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; +069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; +069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;; +06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;; +06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;; +06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;; +06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;; +06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;; +06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; +06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;; +06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;; +06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;; +06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;; +06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;; +06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;; +06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;;;; +06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;; +06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;; +06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; +06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;; +06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;; +06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; +06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; +06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;; +06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;; +06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;; +06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;; +06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; +06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;; +06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;; +06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;; +06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;; +06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;; +06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;; +06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;; +06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;; +06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;; +06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;; +06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;; +06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;; +06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;; +06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;; +06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; +06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;;;; +06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;; +06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;; +06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;; +06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;; +06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;; +06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; +06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; +06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;; +06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;; +06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;; +06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;; +06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;; +06DD;ARABIC END OF AYAH;Cf;0;AN;;;;;N;;;;; +06DE;ARABIC START OF RUB EL HIZB;So;0;ON;;;;;N;;;;; +06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;; +06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;; +06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;; +06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;; +06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;; +06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;; +06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;; +06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;; +06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;; +06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;; +06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;; +06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;; +06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;; +06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;; +06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;; +06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;; +06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;; +06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;; +06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;; +06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;; +06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;; +06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;; +06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;; +06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;; +06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;; +06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;; +06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;; +06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;; +06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;; +06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;; +0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;; +0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;; +0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;; +0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;; +0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;; +0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;; +0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; +0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; +0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; +0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; +070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;; +070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;; +070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;; +070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;; +070F;SYRIAC ABBREVIATION MARK;Cf;0;AL;;;;;N;;;;; +0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;; +0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;; +0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;; +0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;; +0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;; +0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;; +0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;; +0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;; +0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;; +0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; +071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;; +071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;; +071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;; +071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;; +071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;; +071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;; +0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;; +0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;; +0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;; +0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;; +0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;; +0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;; +0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;; +0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;; +0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;; +0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;; +072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;; +072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;; +072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;; +072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;; +072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;; +072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;; +0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;; +0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;; +0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;; +0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;; +0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;; +0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;; +0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;; +0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;; +0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;; +0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;; +073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;; +073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;; +073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;; +073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;; +073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;; +073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;; +0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;; +0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;; +0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;; +0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; +0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;; +0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; +0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;; +0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;; +0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;; +0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;; +074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;; +074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;; +074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;; +074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;; +0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;; +0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; +0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; +0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;; +0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;; +0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; +0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;; +075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;; +075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;; +075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;; +075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;; +0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; +0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; +0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; +0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; +0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; +0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; +0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;; +0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;; +076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;; +076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;; +076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;; +076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;; +076E;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW;Lo;0;AL;;;;;N;;;;; +076F;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;; +0770;ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;; +0771;ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;; +0772;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE;Lo;0;AL;;;;;N;;;;; +0773;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; +0774;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; +0775;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; +0776;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; +0777;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;; +0778;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; +0779;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; +077A;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; +077B;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; +077C;ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;; +077D;ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE;Lo;0;AL;;;;;N;;;;; +077E;ARABIC LETTER SEEN WITH INVERTED V;Lo;0;AL;;;;;N;;;;; +077F;ARABIC LETTER KAF WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;; +0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;; +0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;; +0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;; +0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;; +0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;; +0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;; +0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;; +0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;; +0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;; +078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;; +078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;; +078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;; +078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;; +078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;; +078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;; +0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;; +0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;; +0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;; +0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;; +0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;; +0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;; +0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;; +0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;; +0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;; +0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;; +079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;; +079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;; +079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;; +079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;; +079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;; +079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;; +07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;; +07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;; +07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;; +07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;; +07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;; +07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;; +07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;; +07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;; +07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;; +07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;; +07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;; +07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;; +07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;; +07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;; +07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;; +07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;; +07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;; +07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;; +07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;; +07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;; +07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;; +07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;; +07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;; +07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;; +07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;; +07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;; +07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;; +07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;; +07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;; +07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;; +07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;; +07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;; +07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;; +07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;; +07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;; +07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;; +07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;; +07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;; +07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;; +07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;; +07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;; +07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;; +07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;; +07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;; +07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;; +07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;; +07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;; +07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;; +07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;; +07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;; +07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;; +07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;; +07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;; +07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;; +07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;; +07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;; +07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;; +07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;; +07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;; +07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;; +07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;; +07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;; +07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;; +07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;; +07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;; +07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;; +07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;; +07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;; +07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;; +07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;; +07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;; +07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;; +07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;; +07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;; +07F8;NKO COMMA;Po;0;ON;;;;;N;;;;; +07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; +07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;; +0800;SAMARITAN LETTER ALAF;Lo;0;R;;;;;N;;;;; +0801;SAMARITAN LETTER BIT;Lo;0;R;;;;;N;;;;; +0802;SAMARITAN LETTER GAMAN;Lo;0;R;;;;;N;;;;; +0803;SAMARITAN LETTER DALAT;Lo;0;R;;;;;N;;;;; +0804;SAMARITAN LETTER IY;Lo;0;R;;;;;N;;;;; +0805;SAMARITAN LETTER BAA;Lo;0;R;;;;;N;;;;; +0806;SAMARITAN LETTER ZEN;Lo;0;R;;;;;N;;;;; +0807;SAMARITAN LETTER IT;Lo;0;R;;;;;N;;;;; +0808;SAMARITAN LETTER TIT;Lo;0;R;;;;;N;;;;; +0809;SAMARITAN LETTER YUT;Lo;0;R;;;;;N;;;;; +080A;SAMARITAN LETTER KAAF;Lo;0;R;;;;;N;;;;; +080B;SAMARITAN LETTER LABAT;Lo;0;R;;;;;N;;;;; +080C;SAMARITAN LETTER MIM;Lo;0;R;;;;;N;;;;; +080D;SAMARITAN LETTER NUN;Lo;0;R;;;;;N;;;;; +080E;SAMARITAN LETTER SINGAAT;Lo;0;R;;;;;N;;;;; +080F;SAMARITAN LETTER IN;Lo;0;R;;;;;N;;;;; +0810;SAMARITAN LETTER FI;Lo;0;R;;;;;N;;;;; +0811;SAMARITAN LETTER TSAADIY;Lo;0;R;;;;;N;;;;; +0812;SAMARITAN LETTER QUF;Lo;0;R;;;;;N;;;;; +0813;SAMARITAN LETTER RISH;Lo;0;R;;;;;N;;;;; +0814;SAMARITAN LETTER SHAN;Lo;0;R;;;;;N;;;;; +0815;SAMARITAN LETTER TAAF;Lo;0;R;;;;;N;;;;; +0816;SAMARITAN MARK IN;Mn;230;NSM;;;;;N;;;;; +0817;SAMARITAN MARK IN-ALAF;Mn;230;NSM;;;;;N;;;;; +0818;SAMARITAN MARK OCCLUSION;Mn;230;NSM;;;;;N;;;;; +0819;SAMARITAN MARK DAGESH;Mn;230;NSM;;;;;N;;;;; +081A;SAMARITAN MODIFIER LETTER EPENTHETIC YUT;Lm;0;R;;;;;N;;;;; +081B;SAMARITAN MARK EPENTHETIC YUT;Mn;230;NSM;;;;;N;;;;; +081C;SAMARITAN VOWEL SIGN LONG E;Mn;230;NSM;;;;;N;;;;; +081D;SAMARITAN VOWEL SIGN E;Mn;230;NSM;;;;;N;;;;; +081E;SAMARITAN VOWEL SIGN OVERLONG AA;Mn;230;NSM;;;;;N;;;;; +081F;SAMARITAN VOWEL SIGN LONG AA;Mn;230;NSM;;;;;N;;;;; +0820;SAMARITAN VOWEL SIGN AA;Mn;230;NSM;;;;;N;;;;; +0821;SAMARITAN VOWEL SIGN OVERLONG A;Mn;230;NSM;;;;;N;;;;; +0822;SAMARITAN VOWEL SIGN LONG A;Mn;230;NSM;;;;;N;;;;; +0823;SAMARITAN VOWEL SIGN A;Mn;230;NSM;;;;;N;;;;; +0824;SAMARITAN MODIFIER LETTER SHORT A;Lm;0;R;;;;;N;;;;; +0825;SAMARITAN VOWEL SIGN SHORT A;Mn;230;NSM;;;;;N;;;;; +0826;SAMARITAN VOWEL SIGN LONG U;Mn;230;NSM;;;;;N;;;;; +0827;SAMARITAN VOWEL SIGN U;Mn;230;NSM;;;;;N;;;;; +0828;SAMARITAN MODIFIER LETTER I;Lm;0;R;;;;;N;;;;; +0829;SAMARITAN VOWEL SIGN LONG I;Mn;230;NSM;;;;;N;;;;; +082A;SAMARITAN VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;; +082B;SAMARITAN VOWEL SIGN O;Mn;230;NSM;;;;;N;;;;; +082C;SAMARITAN VOWEL SIGN SUKUN;Mn;230;NSM;;;;;N;;;;; +082D;SAMARITAN MARK NEQUDAA;Mn;230;NSM;;;;;N;;;;; +0830;SAMARITAN PUNCTUATION NEQUDAA;Po;0;R;;;;;N;;;;; +0831;SAMARITAN PUNCTUATION AFSAAQ;Po;0;R;;;;;N;;;;; +0832;SAMARITAN PUNCTUATION ANGED;Po;0;R;;;;;N;;;;; +0833;SAMARITAN PUNCTUATION BAU;Po;0;R;;;;;N;;;;; +0834;SAMARITAN PUNCTUATION ATMAAU;Po;0;R;;;;;N;;;;; +0835;SAMARITAN PUNCTUATION SHIYYAALAA;Po;0;R;;;;;N;;;;; +0836;SAMARITAN ABBREVIATION MARK;Po;0;R;;;;;N;;;;; +0837;SAMARITAN PUNCTUATION MELODIC QITSA;Po;0;R;;;;;N;;;;; +0838;SAMARITAN PUNCTUATION ZIQAA;Po;0;R;;;;;N;;;;; +0839;SAMARITAN PUNCTUATION QITSA;Po;0;R;;;;;N;;;;; +083A;SAMARITAN PUNCTUATION ZAEF;Po;0;R;;;;;N;;;;; +083B;SAMARITAN PUNCTUATION TURU;Po;0;R;;;;;N;;;;; +083C;SAMARITAN PUNCTUATION ARKAANU;Po;0;R;;;;;N;;;;; +083D;SAMARITAN PUNCTUATION SOF MASHFAAT;Po;0;R;;;;;N;;;;; +083E;SAMARITAN PUNCTUATION ANNAAU;Po;0;R;;;;;N;;;;; +0840;MANDAIC LETTER HALQA;Lo;0;R;;;;;N;;;;; +0841;MANDAIC LETTER AB;Lo;0;R;;;;;N;;;;; +0842;MANDAIC LETTER AG;Lo;0;R;;;;;N;;;;; +0843;MANDAIC LETTER AD;Lo;0;R;;;;;N;;;;; +0844;MANDAIC LETTER AH;Lo;0;R;;;;;N;;;;; +0845;MANDAIC LETTER USHENNA;Lo;0;R;;;;;N;;;;; +0846;MANDAIC LETTER AZ;Lo;0;R;;;;;N;;;;; +0847;MANDAIC LETTER IT;Lo;0;R;;;;;N;;;;; +0848;MANDAIC LETTER ATT;Lo;0;R;;;;;N;;;;; +0849;MANDAIC LETTER AKSA;Lo;0;R;;;;;N;;;;; +084A;MANDAIC LETTER AK;Lo;0;R;;;;;N;;;;; +084B;MANDAIC LETTER AL;Lo;0;R;;;;;N;;;;; +084C;MANDAIC LETTER AM;Lo;0;R;;;;;N;;;;; +084D;MANDAIC LETTER AN;Lo;0;R;;;;;N;;;;; +084E;MANDAIC LETTER AS;Lo;0;R;;;;;N;;;;; +084F;MANDAIC LETTER IN;Lo;0;R;;;;;N;;;;; +0850;MANDAIC LETTER AP;Lo;0;R;;;;;N;;;;; +0851;MANDAIC LETTER ASZ;Lo;0;R;;;;;N;;;;; +0852;MANDAIC LETTER AQ;Lo;0;R;;;;;N;;;;; +0853;MANDAIC LETTER AR;Lo;0;R;;;;;N;;;;; +0854;MANDAIC LETTER ASH;Lo;0;R;;;;;N;;;;; +0855;MANDAIC LETTER AT;Lo;0;R;;;;;N;;;;; +0856;MANDAIC LETTER DUSHENNA;Lo;0;R;;;;;N;;;;; +0857;MANDAIC LETTER KAD;Lo;0;R;;;;;N;;;;; +0858;MANDAIC LETTER AIN;Lo;0;R;;;;;N;;;;; +0859;MANDAIC AFFRICATION MARK;Mn;220;NSM;;;;;N;;;;; +085A;MANDAIC VOCALIZATION MARK;Mn;220;NSM;;;;;N;;;;; +085B;MANDAIC GEMINATION MARK;Mn;220;NSM;;;;;N;;;;; +085E;MANDAIC PUNCTUATION;Po;0;R;;;;;N;;;;; +08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;; +08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +08A3;ARABIC LETTER TAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +08A4;ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +08A5;ARABIC LETTER QAF WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; +08A6;ARABIC LETTER LAM WITH DOUBLE BAR;Lo;0;AL;;;;;N;;;;; +08A7;ARABIC LETTER MEEM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; +08A8;ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE;Lo;0;AL;;;;;N;;;;; +08A9;ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; +08AA;ARABIC LETTER REH WITH LOOP;Lo;0;AL;;;;;N;;;;; +08AB;ARABIC LETTER WAW WITH DOT WITHIN;Lo;0;AL;;;;;N;;;;; +08AC;ARABIC LETTER ROHINGYA YEH;Lo;0;AL;;;;;N;;;;; +08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;; +08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;; +08E6;ARABIC CURLY KASRA;Mn;220;NSM;;;;;N;;;;; +08E7;ARABIC CURLY FATHATAN;Mn;230;NSM;;;;;N;;;;; +08E8;ARABIC CURLY DAMMATAN;Mn;230;NSM;;;;;N;;;;; +08E9;ARABIC CURLY KASRATAN;Mn;220;NSM;;;;;N;;;;; +08EA;ARABIC TONE ONE DOT ABOVE;Mn;230;NSM;;;;;N;;;;; +08EB;ARABIC TONE TWO DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; +08EC;ARABIC TONE LOOP ABOVE;Mn;230;NSM;;;;;N;;;;; +08ED;ARABIC TONE ONE DOT BELOW;Mn;220;NSM;;;;;N;;;;; +08EE;ARABIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;; +08EF;ARABIC TONE LOOP BELOW;Mn;220;NSM;;;;;N;;;;; +08F0;ARABIC OPEN FATHATAN;Mn;27;NSM;;;;;N;;;;; +08F1;ARABIC OPEN DAMMATAN;Mn;28;NSM;;;;;N;;;;; +08F2;ARABIC OPEN KASRATAN;Mn;29;NSM;;;;;N;;;;; +08F3;ARABIC SMALL HIGH WAW;Mn;230;NSM;;;;;N;;;;; +08F4;ARABIC FATHA WITH RING;Mn;230;NSM;;;;;N;;;;; +08F5;ARABIC FATHA WITH DOT ABOVE;Mn;230;NSM;;;;;N;;;;; +08F6;ARABIC KASRA WITH DOT BELOW;Mn;220;NSM;;;;;N;;;;; +08F7;ARABIC LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; +08F8;ARABIC RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; +08F9;ARABIC LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; +08FA;ARABIC RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; +08FB;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; +08FC;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;; +08FD;ARABIC RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;; +08FE;ARABIC DAMMA WITH DOT;Mn;230;NSM;;;;;N;;;;; +0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;; +0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;; +0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;; +0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;; +0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;; +0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;; +090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;; +090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;; +090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;; +090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;; +0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;; +0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;; +0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;; +0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;; +0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;; +0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;; +0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;; +0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;; +0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;; +0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;; +091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;; +091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;; +091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;; +091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;; +091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;; +091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;; +0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;; +0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;; +0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;; +0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;; +0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;; +0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;; +0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;; +0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;; +0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;; +0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;; +092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;; +092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;; +092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;; +092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;; +092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;; +092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;; +0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;; +0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;; +0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;; +0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;; +0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;; +0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;; +0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;; +0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;; +0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;; +0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;; +093A;DEVANAGARI VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;; +093B;DEVANAGARI VOWEL SIGN OOE;Mc;0;L;;;;;N;;;;; +093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; +0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;; +0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; +094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;; +094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +094E;DEVANAGARI VOWEL SIGN PRISHTHAMATRA E;Mc;0;L;;;;;N;;;;; +094F;DEVANAGARI VOWEL SIGN AW;Mc;0;L;;;;;N;;;;; +0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;; +0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;; +0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;; +0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;; +0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;; +0955;DEVANAGARI VOWEL SIGN CANDRA LONG E;Mn;0;NSM;;;;;N;;;;; +0956;DEVANAGARI VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;; +0957;DEVANAGARI VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;; +0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;; +0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;; +095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;; +095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;; +095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;; +095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;; +095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;; +095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;; +0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;; +0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;; +0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; +0971;DEVANAGARI SIGN HIGH SPACING DOT;Lm;0;L;;;;;N;;;;; +0972;DEVANAGARI LETTER CANDRA A;Lo;0;L;;;;;N;;;;; +0973;DEVANAGARI LETTER OE;Lo;0;L;;;;;N;;;;; +0974;DEVANAGARI LETTER OOE;Lo;0;L;;;;;N;;;;; +0975;DEVANAGARI LETTER AW;Lo;0;L;;;;;N;;;;; +0976;DEVANAGARI LETTER UE;Lo;0;L;;;;;N;;;;; +0977;DEVANAGARI LETTER UUE;Lo;0;L;;;;;N;;;;; +0979;DEVANAGARI LETTER ZHA;Lo;0;L;;;;;N;;;;; +097A;DEVANAGARI LETTER HEAVY YA;Lo;0;L;;;;;N;;;;; +097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;; +097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;; +097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;; +097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;; +097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;; +0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; +0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;; +0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;; +0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;; +0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;; +0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;; +098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;; +098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;; +0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;; +0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;; +0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;; +0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;; +0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;; +0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;; +0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;; +0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;; +099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;; +099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;; +099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;; +099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;; +099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;; +099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;; +09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;; +09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;; +09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;; +09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;; +09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;; +09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;; +09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;; +09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;; +09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;; +09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;; +09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;; +09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;; +09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;; +09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;; +09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;; +09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;; +09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;; +09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;; +09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;; +09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;; +09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;; +09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;; +09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;; +09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;; +09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;; +09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;; +09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;; +09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;; +09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;;;; +09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;;;; +09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;; +09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;; +09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1/16;N;;;;; +09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;1/8;N;;;;; +09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3/16;N;;;;; +09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;1/4;N;;;;; +09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;3/4;N;;;;; +09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;; +09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;; +09FB;BENGALI GANDA MARK;Sc;0;ET;;;;;N;;;;; +0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;; +0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;; +0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;; +0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;; +0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;; +0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;; +0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;; +0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;; +0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;; +0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;; +0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;; +0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;; +0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;; +0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;; +0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;; +0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;; +0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;; +0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;; +0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;; +0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;; +0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;; +0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;; +0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;; +0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;; +0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;; +0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;; +0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;; +0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;; +0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;; +0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;; +0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;; +0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;; +0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;; +0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;; +0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;; +0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;; +0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;; +0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;; +0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;; +0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;; +0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;; +0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;; +0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;; +0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;; +0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;; +0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; +0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; +0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0A51;GURMUKHI SIGN UDAAT;Mn;0;NSM;;;;;N;;;;; +0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;; +0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;; +0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;; +0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;; +0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;; +0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;; +0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;; +0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;; +0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;; +0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;; +0A75;GURMUKHI SIGN YAKASH;Mn;0;NSM;;;;;N;;;;; +0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;; +0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;; +0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;; +0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;; +0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;; +0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;; +0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;; +0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;; +0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;; +0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;; +0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;; +0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;; +0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;; +0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;; +0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;; +0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;; +0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;; +0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;; +0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;; +0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;; +0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;; +0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;; +0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;; +0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;; +0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;; +0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;; +0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;; +0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;; +0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;; +0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;; +0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;; +0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;; +0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;; +0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;; +0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;; +0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;; +0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;; +0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;; +0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;; +0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;; +0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;; +0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;; +0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;; +0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;; +0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;; +0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;; +0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; +0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; +0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;; +0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0AF0;GUJARATI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; +0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;; +0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; +0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;; +0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;; +0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;; +0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;; +0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;; +0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;; +0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;; +0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;; +0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;; +0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;; +0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;; +0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;; +0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;; +0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;; +0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;; +0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;; +0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;; +0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;; +0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;; +0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;; +0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;; +0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;; +0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;; +0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;; +0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;; +0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;; +0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;; +0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;; +0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;; +0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;; +0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;; +0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;; +0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;; +0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;; +0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;; +0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;; +0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;; +0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;; +0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;; +0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;; +0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;; +0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;; +0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;; +0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;; +0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +0B44;ORIYA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;; +0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;; +0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;; +0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;; +0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;; +0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;; +0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;; +0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;; +0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +0B62;ORIYA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +0B63;ORIYA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;; +0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;; +0B72;ORIYA FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;; +0B73;ORIYA FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;; +0B74;ORIYA FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;; +0B75;ORIYA FRACTION ONE SIXTEENTH;No;0;L;;;;1/16;N;;;;; +0B76;ORIYA FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;; +0B77;ORIYA FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;; +0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;; +0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;; +0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;; +0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;; +0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;; +0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;; +0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;; +0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;; +0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;; +0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;; +0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;; +0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;; +0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;; +0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;; +0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;; +0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;; +0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;; +0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;; +0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;; +0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;; +0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;; +0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;; +0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;; +0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;; +0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;; +0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;; +0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;; +0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;; +0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;; +0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;; +0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;; +0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;; +0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;; +0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;; +0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;; +0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;; +0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; +0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;; +0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;; +0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;; +0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0BD0;TAMIL OM;Lo;0;L;;;;;N;;;;; +0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;; +0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;; +0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; +0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; +0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;;;; +0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;;;; +0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;;;; +0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;;;; +0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;;;; +0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;;;; +0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;;;; +0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;;;; +0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;; +0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; +0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;; +0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;; +0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;; +0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;; +0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;; +0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;; +0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;; +0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;; +0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;; +0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;; +0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;; +0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;; +0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;; +0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;; +0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;; +0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;; +0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;; +0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;; +0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;; +0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;; +0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;; +0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;; +0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;; +0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;; +0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;; +0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;; +0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;; +0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;; +0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;; +0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;; +0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;; +0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;; +0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;; +0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;; +0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;; +0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;; +0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;; +0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;; +0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;; +0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;; +0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;; +0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;; +0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;; +0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;; +0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;; +0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;; +0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;; +0C3D;TELUGU SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; +0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; +0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; +0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; +0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;; +0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; +0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;; +0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;; +0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;; +0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;; +0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +0C62;TELUGU VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +0C63;TELUGU VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0C78;TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR;No;0;ON;;;;0;N;;;;; +0C79;TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR;No;0;ON;;;;1;N;;;;; +0C7A;TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR;No;0;ON;;;;2;N;;;;; +0C7B;TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR;No;0;ON;;;;3;N;;;;; +0C7C;TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR;No;0;ON;;;;1;N;;;;; +0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;; +0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;; +0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;; +0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; +0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;; +0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;; +0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;; +0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;; +0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;; +0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;; +0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;; +0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;; +0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;; +0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;; +0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;; +0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;; +0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;; +0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;; +0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;; +0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;; +0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;; +0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;; +0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;; +0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;; +0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;; +0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;; +0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;; +0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;; +0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;; +0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;; +0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;; +0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;; +0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;; +0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;; +0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;; +0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;; +0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;; +0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;; +0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;; +0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;; +0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;; +0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;; +0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;; +0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;; +0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;; +0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;; +0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;; +0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;; +0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;; +0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;; +0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;; +0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;; +0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;; +0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; +0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; +0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;; +0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;; +0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;; +0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;; +0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;; +0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;; +0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;; +0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;; +0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;; +0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;; +0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; +0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;; +0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;; +0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;; +0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;; +0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;; +0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;; +0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;; +0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;; +0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;; +0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;; +0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;; +0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;; +0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;; +0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;; +0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;; +0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;; +0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;; +0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;; +0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;; +0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;; +0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;; +0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;; +0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;; +0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;; +0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;; +0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;; +0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;; +0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;; +0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;; +0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;; +0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;; +0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;; +0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;; +0D29;MALAYALAM LETTER NNNA;Lo;0;L;;;;;N;;;;; +0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;; +0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;; +0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;; +0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;; +0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;; +0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;; +0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;; +0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;; +0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;; +0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;; +0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;; +0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;; +0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;; +0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;; +0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;; +0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;; +0D3A;MALAYALAM LETTER TTTA;Lo;0;L;;;;;N;;;;; +0D3D;MALAYALAM SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +0D44;MALAYALAM VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; +0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; +0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;; +0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;; +0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +0D4E;MALAYALAM LETTER DOT REPH;Lo;0;L;;;;;N;;;;; +0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;; +0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +0D62;MALAYALAM VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +0D63;MALAYALAM VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0D70;MALAYALAM NUMBER TEN;No;0;L;;;;10;N;;;;; +0D71;MALAYALAM NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; +0D72;MALAYALAM NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; +0D73;MALAYALAM FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;; +0D74;MALAYALAM FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;; +0D75;MALAYALAM FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;; +0D79;MALAYALAM DATE MARK;So;0;L;;;;;N;;;;; +0D7A;MALAYALAM LETTER CHILLU NN;Lo;0;L;;;;;N;;;;; +0D7B;MALAYALAM LETTER CHILLU N;Lo;0;L;;;;;N;;;;; +0D7C;MALAYALAM LETTER CHILLU RR;Lo;0;L;;;;;N;;;;; +0D7D;MALAYALAM LETTER CHILLU L;Lo;0;L;;;;;N;;;;; +0D7E;MALAYALAM LETTER CHILLU LL;Lo;0;L;;;;;N;;;;; +0D7F;MALAYALAM LETTER CHILLU K;Lo;0;L;;;;;N;;;;; +0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;; +0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;; +0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;; +0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;; +0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;; +0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;; +0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;; +0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;; +0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;; +0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;; +0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;; +0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;; +0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;; +0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;; +0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;; +0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;; +0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;; +0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;; +0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;; +0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;; +0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; +0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; +0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; +0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; +0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; +0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;; +0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; +0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; +0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; +0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; +0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; +0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;; +0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;; +0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; +0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; +0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; +0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; +0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;; +0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;; +0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; +0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; +0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; +0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; +0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;; +0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;; +0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; +0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; +0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; +0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; +0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;; +0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;; +0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;; +0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;; +0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;; +0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;; +0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;; +0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;; +0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;; +0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;; +0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;; +0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;; +0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;; +0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;; +0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;; +0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;; +0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;; +0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;; +0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;; +0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;; +0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;; +0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;; +0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;; +0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;; +0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;; +0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;; +0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;; +0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;; +0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;; +0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;; +0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;; +0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;; +0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;; +0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;; +0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;; +0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;; +0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;; +0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;; +0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;; +0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;; +0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;; +0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;; +0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;; +0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;; +0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;; +0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;; +0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;; +0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;; +0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;; +0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;; +0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;; +0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;; +0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;; +0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;; +0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;; +0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;; +0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;; +0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;; +0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;; +0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;; +0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;; +0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;; +0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;; +0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;; +0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;; +0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;; +0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;; +0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;; +0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;; +0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;; +0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;; +0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;; +0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;; +0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;; +0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;; +0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;; +0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;; +0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;;;; +0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;; +0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;; +0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;; +0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;; +0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;; +0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;; +0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;; +0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;;;; +0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;; +0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;; +0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;; +0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;; +0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;; +0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;; +0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;; +0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;;;; +0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;;;; +0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;;;; +0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;;;; +0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;;;; +0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;; +0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;; +0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;; +0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;; +0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;; +0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;;;; +0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;; +0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;; +0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;; +0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;; +0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;; +0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;; +0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;; +0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;; +0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;; +0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;; +0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;; +0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;; +0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;; +0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;; +0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;; +0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;; +0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;; +0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;; +0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;; +0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;; +0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;; +0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;; +0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;; +0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;; +0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;; +0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;; +0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;; +0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;; +0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;; +0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;; +0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;; +0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;; +0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;; +0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;; +0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;; +0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;; +0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; +0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; +0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;; +0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;; +0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;; +0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;; +0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;; +0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;; +0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;; +0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;; +0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;; +0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;; +0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;; +0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;; +0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;; +0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;; +0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;; +0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;; +0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;; +0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;; +0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;; +0EDE;LAO LETTER KHMU GO;Lo;0;L;;;;;N;;;;; +0EDF;LAO LETTER KHMU NYO;Lo;0;L;;;;;N;;;;; +0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;; +0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;;;; +0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;;;; +0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;;;; +0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;;;; +0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;;;; +0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;;;; +0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;;;; +0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;;;; +0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;;;; +0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;;;; +0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;;;; +0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;;;; +0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;;;; +0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;;;; +0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;;;; +0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;;;; +0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;;;; +0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;;;; +0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;;;; +0F14;TIBETAN MARK GTER TSHEG;Po;0;L;;;;;N;TIBETAN COMMA;;;; +0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;;;; +0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;;;; +0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;;;; +0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;;;; +0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;;;; +0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;;;; +0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;;;; +0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;;;; +0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;;;; +0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;;;; +0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;;;; +0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;; +0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;; +0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;; +0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;; +0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;; +0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;; +0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;; +0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;; +0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;; +0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;; +0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;;;; +0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;;;; +0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;;;; +0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;;;; +0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;;;; +0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;;;; +0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;;;; +0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;;;; +0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;;;; +0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;;;; +0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;;;; +0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;;;; +0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;; +0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;; +0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;; +0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;; +0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;; +0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;; +0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;; +0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;; +0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;; +0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;; +0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;; +0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;; +0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;; +0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;; +0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;; +0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;; +0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;; +0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;; +0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;; +0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;; +0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;; +0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;; +0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;; +0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;; +0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;; +0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;; +0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;; +0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;; +0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;; +0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;; +0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;; +0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;; +0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;; +0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;;;; +0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;; +0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;; +0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;; +0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;; +0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;; +0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;; +0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;; +0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;;;; +0F6B;TIBETAN LETTER KKA;Lo;0;L;;;;;N;;;;; +0F6C;TIBETAN LETTER RRA;Lo;0;L;;;;;N;;;;; +0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;; +0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;; +0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;; +0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;; +0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;; +0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;; +0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;; +0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;; +0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;; +0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;; +0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;; +0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;; +0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;; +0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;;;; +0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;;;; +0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;; +0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;; +0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;;;; +0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;;;; +0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;; +0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;; +0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;;;; +0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;;;; +0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;;;; +0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;;;; +0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;;;; +0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;;;; +0F8C;TIBETAN SIGN INVERTED MCHU CAN;Lo;0;L;;;;;N;;;;; +0F8D;TIBETAN SUBJOINED SIGN LCE TSA CAN;Mn;0;NSM;;;;;N;;;;; +0F8E;TIBETAN SUBJOINED SIGN MCHU CAN;Mn;0;NSM;;;;;N;;;;; +0F8F;TIBETAN SUBJOINED SIGN INVERTED MCHU CAN;Mn;0;NSM;;;;;N;;;;; +0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;; +0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;; +0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;; +0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;; +0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;; +0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;; +0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;; +0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;; +0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;; +0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;; +0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;; +0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;; +0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;; +0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;; +0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;; +0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;; +0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;; +0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;; +0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;; +0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;; +0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;; +0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;; +0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;; +0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;; +0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;; +0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;; +0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;; +0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;; +0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;;;; +0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;; +0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;; +0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;; +0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;;;; +0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;;;; +0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;; +0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;; +0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;; +0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;; +0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;; +0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;; +0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;; +0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;;;; +0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;;;; +0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;;;; +0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;;;; +0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;;;; +0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;; +0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;; +0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;;;; +0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;;;; +0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;;;; +0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;;;; +0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;;;; +0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;;;; +0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;;;; +0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;;;; +0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;;;; +0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;;;; +0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;;;; +0FCE;TIBETAN SIGN RDEL NAG RDEL DKAR;So;0;L;;;;;N;;;;; +0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;;;; +0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;;;; +0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;;;; +0FD2;TIBETAN MARK NYIS TSHEG;Po;0;L;;;;;N;;;;; +0FD3;TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA;Po;0;L;;;;;N;;;;; +0FD4;TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA;Po;0;L;;;;;N;;;;; +0FD5;RIGHT-FACING SVASTI SIGN;So;0;L;;;;;N;;;;; +0FD6;LEFT-FACING SVASTI SIGN;So;0;L;;;;;N;;;;; +0FD7;RIGHT-FACING SVASTI SIGN WITH DOTS;So;0;L;;;;;N;;;;; +0FD8;LEFT-FACING SVASTI SIGN WITH DOTS;So;0;L;;;;;N;;;;; +0FD9;TIBETAN MARK LEADING MCHAN RTAGS;Po;0;L;;;;;N;;;;; +0FDA;TIBETAN MARK TRAILING MCHAN RTAGS;Po;0;L;;;;;N;;;;; +1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;; +1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;; +1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;; +1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;; +1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;; +1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;; +1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;; +1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;; +1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;; +1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;; +100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;; +100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;; +100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;; +100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;; +100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;; +100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;; +1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;; +1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;; +1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;; +1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;; +1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;; +1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;; +1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;; +1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;; +1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;; +1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;; +101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;; +101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;; +101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;; +101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;; +101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;; +101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;; +1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;; +1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;; +1022;MYANMAR LETTER SHAN A;Lo;0;L;;;;;N;;;;; +1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;; +1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;; +1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;; +1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;; +1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;; +1028;MYANMAR LETTER MON E;Lo;0;L;;;;;N;;;;; +1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;; +102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;; +102B;MYANMAR VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;; +102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +1033;MYANMAR VOWEL SIGN MON II;Mn;0;NSM;;;;;N;;;;; +1034;MYANMAR VOWEL SIGN MON O;Mn;0;NSM;;;;;N;;;;; +1035;MYANMAR VOWEL SIGN E ABOVE;Mn;0;NSM;;;;;N;;;;; +1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;; +1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;; +1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +103A;MYANMAR SIGN ASAT;Mn;9;NSM;;;;;N;;;;; +103B;MYANMAR CONSONANT SIGN MEDIAL YA;Mc;0;L;;;;;N;;;;; +103C;MYANMAR CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;; +103D;MYANMAR CONSONANT SIGN MEDIAL WA;Mn;0;NSM;;;;;N;;;;; +103E;MYANMAR CONSONANT SIGN MEDIAL HA;Mn;0;NSM;;;;;N;;;;; +103F;MYANMAR LETTER GREAT SA;Lo;0;L;;;;;N;;;;; +1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;; +104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;; +104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;; +104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;; +104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;; +104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;; +1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;; +1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;; +1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; +1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; +1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +105A;MYANMAR LETTER MON NGA;Lo;0;L;;;;;N;;;;; +105B;MYANMAR LETTER MON JHA;Lo;0;L;;;;;N;;;;; +105C;MYANMAR LETTER MON BBA;Lo;0;L;;;;;N;;;;; +105D;MYANMAR LETTER MON BBE;Lo;0;L;;;;;N;;;;; +105E;MYANMAR CONSONANT SIGN MON MEDIAL NA;Mn;0;NSM;;;;;N;;;;; +105F;MYANMAR CONSONANT SIGN MON MEDIAL MA;Mn;0;NSM;;;;;N;;;;; +1060;MYANMAR CONSONANT SIGN MON MEDIAL LA;Mn;0;NSM;;;;;N;;;;; +1061;MYANMAR LETTER SGAW KAREN SHA;Lo;0;L;;;;;N;;;;; +1062;MYANMAR VOWEL SIGN SGAW KAREN EU;Mc;0;L;;;;;N;;;;; +1063;MYANMAR TONE MARK SGAW KAREN HATHI;Mc;0;L;;;;;N;;;;; +1064;MYANMAR TONE MARK SGAW KAREN KE PHO;Mc;0;L;;;;;N;;;;; +1065;MYANMAR LETTER WESTERN PWO KAREN THA;Lo;0;L;;;;;N;;;;; +1066;MYANMAR LETTER WESTERN PWO KAREN PWA;Lo;0;L;;;;;N;;;;; +1067;MYANMAR VOWEL SIGN WESTERN PWO KAREN EU;Mc;0;L;;;;;N;;;;; +1068;MYANMAR VOWEL SIGN WESTERN PWO KAREN UE;Mc;0;L;;;;;N;;;;; +1069;MYANMAR SIGN WESTERN PWO KAREN TONE-1;Mc;0;L;;;;;N;;;;; +106A;MYANMAR SIGN WESTERN PWO KAREN TONE-2;Mc;0;L;;;;;N;;;;; +106B;MYANMAR SIGN WESTERN PWO KAREN TONE-3;Mc;0;L;;;;;N;;;;; +106C;MYANMAR SIGN WESTERN PWO KAREN TONE-4;Mc;0;L;;;;;N;;;;; +106D;MYANMAR SIGN WESTERN PWO KAREN TONE-5;Mc;0;L;;;;;N;;;;; +106E;MYANMAR LETTER EASTERN PWO KAREN NNA;Lo;0;L;;;;;N;;;;; +106F;MYANMAR LETTER EASTERN PWO KAREN YWA;Lo;0;L;;;;;N;;;;; +1070;MYANMAR LETTER EASTERN PWO KAREN GHWA;Lo;0;L;;;;;N;;;;; +1071;MYANMAR VOWEL SIGN GEBA KAREN I;Mn;0;NSM;;;;;N;;;;; +1072;MYANMAR VOWEL SIGN KAYAH OE;Mn;0;NSM;;;;;N;;;;; +1073;MYANMAR VOWEL SIGN KAYAH U;Mn;0;NSM;;;;;N;;;;; +1074;MYANMAR VOWEL SIGN KAYAH EE;Mn;0;NSM;;;;;N;;;;; +1075;MYANMAR LETTER SHAN KA;Lo;0;L;;;;;N;;;;; +1076;MYANMAR LETTER SHAN KHA;Lo;0;L;;;;;N;;;;; +1077;MYANMAR LETTER SHAN GA;Lo;0;L;;;;;N;;;;; +1078;MYANMAR LETTER SHAN CA;Lo;0;L;;;;;N;;;;; +1079;MYANMAR LETTER SHAN ZA;Lo;0;L;;;;;N;;;;; +107A;MYANMAR LETTER SHAN NYA;Lo;0;L;;;;;N;;;;; +107B;MYANMAR LETTER SHAN DA;Lo;0;L;;;;;N;;;;; +107C;MYANMAR LETTER SHAN NA;Lo;0;L;;;;;N;;;;; +107D;MYANMAR LETTER SHAN PHA;Lo;0;L;;;;;N;;;;; +107E;MYANMAR LETTER SHAN FA;Lo;0;L;;;;;N;;;;; +107F;MYANMAR LETTER SHAN BA;Lo;0;L;;;;;N;;;;; +1080;MYANMAR LETTER SHAN THA;Lo;0;L;;;;;N;;;;; +1081;MYANMAR LETTER SHAN HA;Lo;0;L;;;;;N;;;;; +1082;MYANMAR CONSONANT SIGN SHAN MEDIAL WA;Mn;0;NSM;;;;;N;;;;; +1083;MYANMAR VOWEL SIGN SHAN AA;Mc;0;L;;;;;N;;;;; +1084;MYANMAR VOWEL SIGN SHAN E;Mc;0;L;;;;;N;;;;; +1085;MYANMAR VOWEL SIGN SHAN E ABOVE;Mn;0;NSM;;;;;N;;;;; +1086;MYANMAR VOWEL SIGN SHAN FINAL Y;Mn;0;NSM;;;;;N;;;;; +1087;MYANMAR SIGN SHAN TONE-2;Mc;0;L;;;;;N;;;;; +1088;MYANMAR SIGN SHAN TONE-3;Mc;0;L;;;;;N;;;;; +1089;MYANMAR SIGN SHAN TONE-5;Mc;0;L;;;;;N;;;;; +108A;MYANMAR SIGN SHAN TONE-6;Mc;0;L;;;;;N;;;;; +108B;MYANMAR SIGN SHAN COUNCIL TONE-2;Mc;0;L;;;;;N;;;;; +108C;MYANMAR SIGN SHAN COUNCIL TONE-3;Mc;0;L;;;;;N;;;;; +108D;MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE;Mn;220;NSM;;;;;N;;;;; +108E;MYANMAR LETTER RUMAI PALAUNG FA;Lo;0;L;;;;;N;;;;; +108F;MYANMAR SIGN RUMAI PALAUNG TONE-5;Mc;0;L;;;;;N;;;;; +1090;MYANMAR SHAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1091;MYANMAR SHAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1092;MYANMAR SHAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1093;MYANMAR SHAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1094;MYANMAR SHAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1095;MYANMAR SHAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1096;MYANMAR SHAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1097;MYANMAR SHAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1098;MYANMAR SHAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1099;MYANMAR SHAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +109A;MYANMAR SIGN KHAMTI TONE-1;Mc;0;L;;;;;N;;;;; +109B;MYANMAR SIGN KHAMTI TONE-3;Mc;0;L;;;;;N;;;;; +109C;MYANMAR VOWEL SIGN AITON A;Mc;0;L;;;;;N;;;;; +109D;MYANMAR VOWEL SIGN AITON AI;Mn;0;NSM;;;;;N;;;;; +109E;MYANMAR SYMBOL SHAN ONE;So;0;L;;;;;N;;;;; +109F;MYANMAR SYMBOL SHAN EXCLAMATION;So;0;L;;;;;N;;;;; +10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;;;2D00; +10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;;;2D01; +10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;;;2D02; +10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;;;2D03; +10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;2D04; +10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;;;2D05; +10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;;;2D06; +10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;;;2D07; +10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;;;2D08; +10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;;;2D09; +10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;;;2D0A; +10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;;;2D0B; +10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;;;2D0C; +10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;;;2D0D; +10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;;;2D0E; +10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;;;2D0F; +10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;;;2D10; +10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;2D11; +10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;;;2D12; +10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;;;2D13; +10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;;;2D14; +10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;;;2D15; +10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;;;2D16; +10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;;;2D17; +10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;;;2D18; +10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;;;2D19; +10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;;;2D1A; +10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;;;2D1B; +10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;;;2D1C; +10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;;;2D1D; +10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;;;2D1E; +10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;;;2D1F; +10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;;;2D20; +10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;;;2D21; +10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;;;2D22; +10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;2D23; +10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;2D24; +10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;2D25; +10C7;GEORGIAN CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;2D27; +10CD;GEORGIAN CAPITAL LETTER AEN;Lu;0;L;;;;;N;;;;2D2D; +10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;; +10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;; +10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;; +10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;; +10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;; +10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;; +10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;; +10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;; +10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;; +10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;; +10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;; +10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;; +10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;; +10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;; +10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;; +10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;; +10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;; +10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;; +10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;; +10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;; +10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;; +10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;; +10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;; +10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;; +10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;; +10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;; +10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;; +10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;; +10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;; +10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;; +10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;; +10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;; +10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;; +10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;; +10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;; +10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;; +10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;; +10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;; +10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;; +10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;; +10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;; +10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;; +10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;; +10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; +10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;; +10FD;GEORGIAN LETTER AEN;Lo;0;L;;;;;N;;;;; +10FE;GEORGIAN LETTER HARD SIGN;Lo;0;L;;;;;N;;;;; +10FF;GEORGIAN LETTER LABIAL SIGN;Lo;0;L;;;;;N;;;;; +1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;; +1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;; +1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;;;; +1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;;;; +1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;;;; +1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;;;; +1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;;;; +1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;;;; +1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;;;; +1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;;;; +110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;;;; +110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;; +110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;;;; +110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;;;; +110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;;;; +110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;;;; +1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;;;; +1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;;;; +1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;;;; +1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; +1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;; +1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; +1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;; +1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; +1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; +1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; +111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;; +111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;; +111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; +111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; +111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; +111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;; +1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; +1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;; +1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; +1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; +1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;; +1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;; +1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;; +1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;; +1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;; +1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;; +112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; +112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; +112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;; +112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; +112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;; +112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; +1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; +1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;; +1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; +1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; +1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;; +1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;; +1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;; +1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;; +1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;; +1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; +113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;; +113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;; +113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;; +113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; +113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;; +113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; +1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;; +1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; +1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;; +1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;; +1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;; +1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;; +1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; +1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; +1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;; +1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;; +114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;; +114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;; +114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; +114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;; +114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;; +114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; +1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;; +1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; +1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;; +1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;; +1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;; +1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;; +1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; +1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; +1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;; +1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; +115A;HANGUL CHOSEONG KIYEOK-TIKEUT;Lo;0;L;;;;;N;;;;; +115B;HANGUL CHOSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;; +115C;HANGUL CHOSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;;;; +115D;HANGUL CHOSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;;;; +115E;HANGUL CHOSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;; +115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;; +1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;; +1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;; +1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;; +1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;; +1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;; +1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;; +1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;; +1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;; +1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;; +1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;; +116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;; +116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;; +116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;; +116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;; +116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;; +116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;; +1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;; +1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;; +1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;; +1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;; +1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;; +1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;; +1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;; +1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;; +1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;; +1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;; +117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;; +117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;; +117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;; +117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;; +117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;; +117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;; +1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;; +1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;; +1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;; +1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;; +1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;; +1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;; +1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;; +1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;; +1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;; +1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;; +118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;; +118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;; +118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;; +118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;; +118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;; +118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;; +1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;; +1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;; +1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;; +1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;; +1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;; +1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;; +1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;; +1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;; +1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;; +1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;; +119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;; +119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;; +119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;; +119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;; +119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;; +119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;; +11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;; +11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;; +11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;; +11A3;HANGUL JUNGSEONG A-EU;Lo;0;L;;;;;N;;;;; +11A4;HANGUL JUNGSEONG YA-U;Lo;0;L;;;;;N;;;;; +11A5;HANGUL JUNGSEONG YEO-YA;Lo;0;L;;;;;N;;;;; +11A6;HANGUL JUNGSEONG O-YA;Lo;0;L;;;;;N;;;;; +11A7;HANGUL JUNGSEONG O-YAE;Lo;0;L;;;;;N;;;;; +11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;;;; +11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;; +11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;;;; +11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;;;; +11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;;;; +11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;;;; +11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;;;; +11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;;;; +11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;;;; +11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;;;; +11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;;;; +11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;;;; +11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;;;; +11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;;;; +11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;; +11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;;;; +11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;;;; +11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;; +11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;;;; +11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;;;; +11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;;;; +11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;;;; +11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;;;; +11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;;;; +11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;;;; +11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;;;; +11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;;;; +11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;; +11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; +11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; +11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; +11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;; +11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;; +11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;; +11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; +11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;; +11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;; +11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; +11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;; +11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;; +11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; +11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; +11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;; +11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;; +11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; +11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; +11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;; +11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;; +11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; +11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;; +11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; +11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;; +11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; +11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;; +11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;; +11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;; +11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;; +11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;; +11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; +11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;; +11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; +11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; +11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; +11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; +11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; +11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; +11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; +11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;; +11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; +11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; +11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; +11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;; +11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; +11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;; +11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; +11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; +11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; +11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;; +11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;; +11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;; +11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;; +11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; +11FA;HANGUL JONGSEONG KIYEOK-NIEUN;Lo;0;L;;;;;N;;;;; +11FB;HANGUL JONGSEONG KIYEOK-PIEUP;Lo;0;L;;;;;N;;;;; +11FC;HANGUL JONGSEONG KIYEOK-CHIEUCH;Lo;0;L;;;;;N;;;;; +11FD;HANGUL JONGSEONG KIYEOK-KHIEUKH;Lo;0;L;;;;;N;;;;; +11FE;HANGUL JONGSEONG KIYEOK-HIEUH;Lo;0;L;;;;;N;;;;; +11FF;HANGUL JONGSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;; +1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;; +1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;; +1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;; +1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;; +1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;; +1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;; +1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;; +1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;; +1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;; +1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;; +120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;; +120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;; +120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;; +120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;; +120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;; +120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;; +1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;; +1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;; +1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;; +1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;; +1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;; +1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;; +1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;; +1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;; +1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;; +1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;; +121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;; +121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;; +121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;; +121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;; +121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;; +121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;; +1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;; +1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;; +1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;; +1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;; +1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;; +1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;; +1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;; +1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;; +1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;; +1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;; +122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;; +122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;; +122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;; +122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;; +122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;; +122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;; +1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;; +1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;; +1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;; +1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;; +1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;; +1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;; +1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;; +1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;; +1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;; +1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;; +123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;; +123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;; +123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;; +123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;; +123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;; +123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;; +1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;; +1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;; +1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;; +1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;; +1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;; +1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;; +1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;; +1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;; +1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;; +124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;; +124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;; +124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;; +124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;; +1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;; +1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;; +1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;; +1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;; +1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;; +1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;; +1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;; +1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;; +125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;; +125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;; +125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;; +125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;; +1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;; +1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;; +1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;; +1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;; +1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;; +1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;; +1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;; +1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;; +1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;; +1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;; +126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;; +126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;; +126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;; +126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;; +126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;; +126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;; +1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;; +1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;; +1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;; +1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;; +1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;; +1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;; +1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;; +1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;; +1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;; +1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;; +127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;; +127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;; +127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;; +127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;; +127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;; +127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;; +1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;; +1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;; +1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;; +1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;; +1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;; +1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;; +1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;; +1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;; +1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;; +128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;; +128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;; +128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;; +128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;; +1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;; +1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;; +1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;; +1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;; +1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;; +1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;; +1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;; +1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;; +1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;; +1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;; +129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;; +129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;; +129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;; +129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;; +129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;; +129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;; +12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;; +12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;; +12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;; +12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;; +12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;; +12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;; +12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;; +12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;; +12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;; +12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;; +12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;; +12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;; +12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;; +12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;; +12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;; +12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;; +12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;; +12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;; +12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;; +12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;; +12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;; +12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;; +12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;; +12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;; +12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;; +12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;; +12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;; +12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;; +12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;; +12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;; +12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;; +12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;; +12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;; +12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;; +12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;; +12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;; +12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;; +12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;; +12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;; +12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;; +12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;; +12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;; +12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;; +12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;; +12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;; +12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;; +12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;; +12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;; +12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;; +12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;; +12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;; +12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;; +12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;; +12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;; +12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;; +12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;; +12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; +12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; +12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;; +12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;; +12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;; +12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; +12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; +12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;; +12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;; +12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;; +12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;; +12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;; +12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;; +12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;; +12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;; +12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;; +12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;; +12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;; +12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;; +12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;; +12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;; +12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;; +12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;; +12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;; +12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;; +12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;; +12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;; +12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;; +12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;; +12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;; +12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;; +12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;; +1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;; +1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;; +1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;; +1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;; +1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;; +1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;; +1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;; +1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;; +1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;; +1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;; +130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;; +130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;; +130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;; +130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;; +130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;; +130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;; +1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;; +1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;; +1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;; +1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;; +1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;; +1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;; +1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;; +131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;; +131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;; +131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;; +131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;; +131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;; +131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;; +1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;; +1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;; +1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;; +1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;; +1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;; +1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;; +1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;; +1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;; +1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;; +1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;; +132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;; +132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;; +132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;; +132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;; +132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;; +132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;; +1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;; +1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;; +1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;; +1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;; +1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;; +1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;; +1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;; +1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;; +1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;; +1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;; +133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;; +133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;; +133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;; +133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;; +133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;; +133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;; +1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;; +1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;; +1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;; +1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;; +1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;; +1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;; +1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;; +1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;; +1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;; +1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;; +134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;; +134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;; +134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;; +134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;; +134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;; +134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;; +1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;; +1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;; +1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;; +1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;; +1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;; +1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;; +1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;; +1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;; +1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;; +1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;; +135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;; +135D;ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;; +135E;ETHIOPIC COMBINING VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;; +135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;; +1360;ETHIOPIC SECTION MARK;Po;0;L;;;;;N;;;;; +1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;; +1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;; +1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;; +1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;; +1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;; +1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;; +1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;; +1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; +1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;; +136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;; +136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;; +136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;; +136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;; +136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;; +136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;; +1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;; +1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;; +1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;; +1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;; +1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;; +1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;; +1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;; +1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;; +1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;; +1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;; +137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;; +137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;; +137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;; +1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;; +1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;; +1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;; +1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;; +1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;; +1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;; +1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;; +1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;; +1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;; +1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;; +138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;; +138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;; +138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;; +138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;; +138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;; +138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;; +1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;; +1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;; +1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;; +1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;; +1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;; +1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;; +1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;; +1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;; +1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;; +1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;; +13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;; +13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;; +13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;; +13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;; +13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;; +13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;; +13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;; +13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;; +13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;; +13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;; +13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;; +13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;; +13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;; +13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;; +13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;; +13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;; +13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;; +13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;; +13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;; +13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;; +13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;; +13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;; +13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;; +13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;; +13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;; +13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;; +13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;; +13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;; +13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;; +13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;; +13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;; +13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;; +13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;; +13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;; +13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;; +13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;; +13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;; +13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;; +13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;; +13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;; +13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;; +13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;; +13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;; +13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;; +13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;; +13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;; +13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;; +13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;; +13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;; +13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;; +13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;; +13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;; +13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;; +13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;; +13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;; +13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;; +13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;; +13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;; +13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;; +13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;; +13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;; +13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;; +13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;; +13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;; +13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;; +13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;; +13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;; +13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;; +13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;; +13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;; +13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;; +13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;; +13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;; +13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;; +13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;; +13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;; +13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;; +13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;; +13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;; +13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;; +13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;; +13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;; +13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;; +13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;; +13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;; +1400;CANADIAN SYLLABICS HYPHEN;Pd;0;ON;;;;;N;;;;; +1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;; +1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;; +1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;; +1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;; +1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;; +1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;; +1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;; +1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;; +1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;; +140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;; +140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;; +140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;; +140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;; +140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;; +140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;; +1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;; +1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;; +1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;; +1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;; +1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;; +1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;; +1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;; +1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;; +1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;; +1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;; +141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;; +141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;; +141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;; +141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;; +141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;; +141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;; +1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;; +1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;; +1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;; +1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;; +1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;; +1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;; +1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;; +1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;; +1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;; +1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;; +142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;; +142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;; +142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;; +142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;; +142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;; +142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;; +1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;; +1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;; +1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;; +1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;; +1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;; +1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;; +1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;; +1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;; +1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;; +1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;; +143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;; +143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;; +143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;; +143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;; +143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;; +143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;; +1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;; +1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;; +1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;; +1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;; +1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;; +1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;; +1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;; +1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;; +1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;; +1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;; +144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;; +144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;; +144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;; +144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;; +144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;; +144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;; +1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;; +1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;; +1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;; +1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;; +1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;; +1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;; +1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;; +1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;; +1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;; +1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;; +145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;; +145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;; +145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;; +145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;; +145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;; +145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;; +1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;; +1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;; +1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;; +1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;; +1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;; +1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;; +1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;; +1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;; +1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;; +1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;; +146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;; +146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;; +146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;; +146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;; +146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;; +146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;; +1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;; +1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;; +1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;; +1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;; +1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;; +1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;; +1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;; +1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;; +1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;; +1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;; +147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;; +147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;; +147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;; +147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;; +147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;; +147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;; +1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;; +1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;; +1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;; +1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;; +1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;; +1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;; +1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;; +1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;; +1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;; +1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;; +148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;; +148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;; +148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;; +148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;; +148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;; +148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;; +1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;; +1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;; +1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;; +1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;; +1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;; +1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;; +1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;; +1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;; +1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;; +1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;; +149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;; +149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;; +149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;; +149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;; +149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;; +149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;; +14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;; +14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;; +14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;; +14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;; +14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;; +14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;; +14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;; +14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;; +14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;; +14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;; +14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;; +14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;; +14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;; +14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;; +14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;; +14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;; +14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;; +14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;; +14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;; +14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;; +14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;; +14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;; +14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;; +14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;; +14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;; +14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;; +14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;; +14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;; +14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;; +14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;; +14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;; +14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;; +14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;; +14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;; +14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;; +14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;; +14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;; +14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;; +14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;; +14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;; +14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;; +14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;; +14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;; +14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;; +14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;; +14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;; +14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;; +14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;; +14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;; +14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;; +14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;; +14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;; +14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;; +14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;; +14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;; +14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;; +14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;; +14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;; +14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;; +14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;; +14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;; +14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;; +14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;; +14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;; +14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;; +14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;; +14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;; +14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;; +14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;; +14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;; +14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;; +14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;; +14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;; +14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;; +14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;; +14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;; +14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;; +14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;; +14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;; +14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;; +14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;; +14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;; +14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;; +14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;; +14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;; +14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;; +14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;; +14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;; +14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;; +14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;; +14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;; +14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;; +14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;; +14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;; +14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;; +14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;; +1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;; +1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;; +1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;; +1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;; +1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;; +1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;; +1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;; +1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;; +1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;; +1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;; +150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;; +150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;; +150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;; +150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;; +150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;; +150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;; +1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;; +1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;; +1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;; +1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;; +1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;; +1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;; +1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;; +1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;; +1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;; +1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;; +151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;; +151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;; +151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;; +151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;; +151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;; +151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;; +1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;; +1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;; +1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;; +1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;; +1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;; +1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;; +1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;; +1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;; +1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;; +1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;; +152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;; +152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;; +152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;; +152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;; +152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;; +152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;; +1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;; +1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;; +1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;; +1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;; +1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;; +1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;; +1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;; +1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;; +1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;; +1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;; +153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;; +153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;; +153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;; +153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;; +153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;; +153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;; +1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;; +1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;; +1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;; +1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;; +1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;; +1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;; +1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;; +1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;; +1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;; +1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;; +154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;; +154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;; +154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;; +154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;; +154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;; +154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;; +1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;; +1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;; +1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;; +1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;; +1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;; +1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;; +1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;; +1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;; +1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;; +1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;; +155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;; +155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;; +155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;; +155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;; +155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;; +155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;; +1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;; +1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;; +1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;; +1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;; +1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;; +1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;; +1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;; +1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;; +1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;; +1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;; +156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;; +156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;; +156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;; +156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;; +156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;; +156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;; +1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;; +1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;; +1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;; +1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;; +1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;; +1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;; +1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;; +1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;; +1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;; +1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;; +157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;; +157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;; +157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;; +157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;; +157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;; +157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;; +1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;; +1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;; +1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;; +1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;; +1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;; +1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;; +1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;; +1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;; +1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;; +1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;; +158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;; +158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;; +158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;; +158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;; +158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;; +158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;; +1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;; +1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;; +1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;; +1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;; +1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;; +1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;; +1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;; +1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;; +1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;; +1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;; +159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;; +159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;; +159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;; +159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;; +159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;; +159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;; +15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;; +15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;; +15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;; +15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;; +15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;; +15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;; +15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;; +15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;; +15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;; +15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;; +15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;; +15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;; +15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;; +15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;; +15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;; +15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;; +15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;; +15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;; +15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;; +15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;; +15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;; +15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;; +15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;; +15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;; +15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;; +15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;; +15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;; +15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;; +15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;; +15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;; +15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;; +15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;; +15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;; +15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;; +15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;; +15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;; +15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;; +15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;; +15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;; +15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;; +15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;; +15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;; +15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;; +15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;; +15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;; +15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;; +15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;; +15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;; +15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;; +15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;; +15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;; +15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;; +15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;; +15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;; +15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;; +15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;; +15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;; +15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;; +15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;; +15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;; +15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;; +15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;; +15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;; +15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;; +15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;; +15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;; +15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;; +15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;; +15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;; +15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;; +15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;; +15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;; +15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;; +15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;; +15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;; +15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;; +15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;; +15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;; +15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;; +15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;; +15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;; +15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;; +15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;; +15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;; +15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;; +15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;; +15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;; +15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;; +15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;; +15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;; +15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;; +15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;; +15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;; +15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;; +15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;; +15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;; +1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;; +1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;; +1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;; +1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;; +1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;; +1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;; +1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;; +1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;; +1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;; +1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;; +160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;; +160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;; +160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;; +160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;; +160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;; +160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;; +1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;; +1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;; +1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;; +1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;; +1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;; +1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;; +1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;; +1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;; +1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;; +1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;; +161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;; +161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;; +161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;; +161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;; +161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;; +161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;; +1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;; +1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;; +1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;; +1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;; +1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;; +1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;; +1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;; +1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;; +1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;; +1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;; +162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;; +162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;; +162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;; +162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;; +162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;; +162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;; +1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;; +1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;; +1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;; +1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;; +1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;; +1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;; +1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;; +1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;; +1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;; +1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;; +163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;; +163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;; +163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;; +163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;; +163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;; +163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;; +1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;; +1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;; +1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;; +1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;; +1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;; +1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;; +1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;; +1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;; +1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;; +1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;; +164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;; +164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;; +164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;; +164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;; +164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;; +164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;; +1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;; +1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;; +1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;; +1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;; +1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;; +1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;; +1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;; +1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;; +1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;; +1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;; +165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;; +165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;; +165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;; +165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;; +165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;; +165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;; +1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;; +1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;; +1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;; +1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;; +1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;; +1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;; +1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;; +1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;; +1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;; +1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;; +166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;; +166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;; +166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;; +166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;; +166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;; +166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;; +1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;; +1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;; +1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;; +1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;; +1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;; +1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;; +1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;; +1677;CANADIAN SYLLABICS WOODS-CREE THWEE;Lo;0;L;;;;;N;;;;; +1678;CANADIAN SYLLABICS WOODS-CREE THWI;Lo;0;L;;;;;N;;;;; +1679;CANADIAN SYLLABICS WOODS-CREE THWII;Lo;0;L;;;;;N;;;;; +167A;CANADIAN SYLLABICS WOODS-CREE THWO;Lo;0;L;;;;;N;;;;; +167B;CANADIAN SYLLABICS WOODS-CREE THWOO;Lo;0;L;;;;;N;;;;; +167C;CANADIAN SYLLABICS WOODS-CREE THWA;Lo;0;L;;;;;N;;;;; +167D;CANADIAN SYLLABICS WOODS-CREE THWAA;Lo;0;L;;;;;N;;;;; +167E;CANADIAN SYLLABICS WOODS-CREE FINAL TH;Lo;0;L;;;;;N;;;;; +167F;CANADIAN SYLLABICS BLACKFOOT W;Lo;0;L;;;;;N;;;;; +1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;; +1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;; +1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;; +1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;; +1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;; +1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;; +1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;; +1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;; +1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;; +1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;; +168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;; +168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;; +168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;; +168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;; +168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;; +168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;; +1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;; +1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;; +1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;; +1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;; +1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;; +1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;; +1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;; +1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;; +1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;; +1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;; +169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;; +169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;; +169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;; +16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;; +16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;; +16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;; +16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;; +16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;; +16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;; +16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;; +16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;; +16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;; +16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;; +16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;; +16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;; +16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;; +16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;; +16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;; +16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;; +16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;; +16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;; +16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;; +16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;; +16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;; +16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;; +16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;; +16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;; +16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;; +16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;; +16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;; +16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;; +16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;; +16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;; +16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;; +16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;; +16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;; +16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;; +16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;; +16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;; +16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;; +16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;; +16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;; +16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;; +16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;; +16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;; +16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;; +16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;; +16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;; +16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;; +16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;; +16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;; +16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;; +16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;; +16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;; +16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;; +16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;; +16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;; +16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;; +16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;; +16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;; +16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;; +16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;; +16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;; +16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;; +16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;; +16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;; +16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;; +16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;; +16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;; +16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;; +16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;; +16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;; +16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;; +16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;; +16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;; +16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;; +16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;; +16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;; +16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; +16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;; +16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;; +16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;;;; +16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;;;; +16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;;;; +1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;; +1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;; +1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;; +1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;; +1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;; +1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;; +1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;; +1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;; +1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;; +1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;; +170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;; +170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;; +170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;; +170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;; +170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;; +1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;; +1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;; +1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;; +1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;; +1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;; +1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;; +1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;; +1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;; +1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;; +1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;; +1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;; +1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;; +172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;; +172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;; +172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;; +172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;; +172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;; +172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;; +1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;; +1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;; +1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;; +1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; +1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;; +1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;; +1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;; +1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;; +1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;; +1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;; +1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;; +1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;; +1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;; +1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;; +1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;; +174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;; +174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;; +174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;; +174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;; +174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;; +174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;; +1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;; +1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;; +1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;; +1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;; +1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;; +1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;; +1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;; +1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;; +1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;; +1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;; +1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;; +1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;; +176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;; +176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;; +176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;; +176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;; +176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;; +1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;; +1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;; +1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;; +1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;; +1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;; +1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;; +1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;; +1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;; +1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;; +1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;; +1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;; +178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;; +178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;; +178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;; +178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;; +178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;; +178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;; +1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;; +1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;; +1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;; +1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;; +1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;; +1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;; +1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;; +1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;; +1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;; +1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;; +179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;; +179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;; +179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;; +179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;; +179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;; +179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;; +17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;; +17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;; +17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;; +17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;; +17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;; +17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;; +17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;; +17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;; +17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;; +17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;; +17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;; +17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;; +17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;; +17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;; +17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;; +17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;; +17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;; +17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;; +17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;; +17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;; +17B4;KHMER VOWEL INHERENT AQ;Mn;0;NSM;;;;;N;;;;; +17B5;KHMER VOWEL INHERENT AA;Mn;0;NSM;;;;;N;;;;; +17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; +17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; +17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;; +17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;; +17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;; +17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;; +17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; +17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;; +17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;; +17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;; +17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;; +17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;; +17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;; +17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;; +17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;; +17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;; +17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;; +17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;; +17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;; +17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;; +17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;; +17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;; +17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;; +17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;; +17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;; +17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;; +17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;; +17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;; +17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;; +17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;; +17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;; +17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;; +17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;; +17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;; +17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;; +17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;; +17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;; +17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;; +17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;; +17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;; +17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;; +1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;; +1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;; +1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;; +1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;; +1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;; +1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;; +1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; +1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;; +1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;; +1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;; +180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;; +180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; +180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; +180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; +180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;; +1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;; +1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;; +1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;; +1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;; +1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;; +1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;; +1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;; +1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;; +1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;; +1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;; +182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;; +182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;; +182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;; +182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;; +182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;; +182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;; +1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;; +1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;; +1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;; +1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;; +1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;; +1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;; +1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;; +1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;; +1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;; +1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;; +183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;; +183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;; +183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;; +183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;; +183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;; +183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;; +1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;; +1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;; +1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;; +1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;; +1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;; +1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;; +1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;; +1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;; +1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;; +1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;; +184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;; +184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;; +184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;; +184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;; +184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;; +184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;; +1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;; +1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;; +1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;; +1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;; +1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;; +1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;; +1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;; +1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;; +1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;; +1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;; +185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;; +185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;; +185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;; +185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;; +185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;; +185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;; +1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;; +1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;; +1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;; +1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;; +1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;; +1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;; +1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;; +1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;; +1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;; +1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;; +186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;; +186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;; +186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;; +186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;; +186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;; +186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;; +1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;; +1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;; +1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;; +1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;; +1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;; +1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;; +1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;; +1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;; +1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;; +1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;; +1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;; +1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;; +1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;; +1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;; +1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;; +1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;; +1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;; +1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;; +188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;; +188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;; +188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;; +188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;; +188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;; +188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;; +1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;; +1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;; +1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;; +1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;; +1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;; +1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;; +1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;; +1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;; +1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;; +1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;; +189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;; +189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;; +189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;; +189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;; +189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;; +189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;; +18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;; +18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;; +18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;; +18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;; +18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;; +18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;; +18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;; +18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;; +18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;; +18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;; +18AA;MONGOLIAN LETTER MANCHU ALI GALI LHA;Lo;0;L;;;;;N;;;;; +18B0;CANADIAN SYLLABICS OY;Lo;0;L;;;;;N;;;;; +18B1;CANADIAN SYLLABICS AY;Lo;0;L;;;;;N;;;;; +18B2;CANADIAN SYLLABICS AAY;Lo;0;L;;;;;N;;;;; +18B3;CANADIAN SYLLABICS WAY;Lo;0;L;;;;;N;;;;; +18B4;CANADIAN SYLLABICS POY;Lo;0;L;;;;;N;;;;; +18B5;CANADIAN SYLLABICS PAY;Lo;0;L;;;;;N;;;;; +18B6;CANADIAN SYLLABICS PWOY;Lo;0;L;;;;;N;;;;; +18B7;CANADIAN SYLLABICS TAY;Lo;0;L;;;;;N;;;;; +18B8;CANADIAN SYLLABICS KAY;Lo;0;L;;;;;N;;;;; +18B9;CANADIAN SYLLABICS KWAY;Lo;0;L;;;;;N;;;;; +18BA;CANADIAN SYLLABICS MAY;Lo;0;L;;;;;N;;;;; +18BB;CANADIAN SYLLABICS NOY;Lo;0;L;;;;;N;;;;; +18BC;CANADIAN SYLLABICS NAY;Lo;0;L;;;;;N;;;;; +18BD;CANADIAN SYLLABICS LAY;Lo;0;L;;;;;N;;;;; +18BE;CANADIAN SYLLABICS SOY;Lo;0;L;;;;;N;;;;; +18BF;CANADIAN SYLLABICS SAY;Lo;0;L;;;;;N;;;;; +18C0;CANADIAN SYLLABICS SHOY;Lo;0;L;;;;;N;;;;; +18C1;CANADIAN SYLLABICS SHAY;Lo;0;L;;;;;N;;;;; +18C2;CANADIAN SYLLABICS SHWOY;Lo;0;L;;;;;N;;;;; +18C3;CANADIAN SYLLABICS YOY;Lo;0;L;;;;;N;;;;; +18C4;CANADIAN SYLLABICS YAY;Lo;0;L;;;;;N;;;;; +18C5;CANADIAN SYLLABICS RAY;Lo;0;L;;;;;N;;;;; +18C6;CANADIAN SYLLABICS NWI;Lo;0;L;;;;;N;;;;; +18C7;CANADIAN SYLLABICS OJIBWAY NWI;Lo;0;L;;;;;N;;;;; +18C8;CANADIAN SYLLABICS NWII;Lo;0;L;;;;;N;;;;; +18C9;CANADIAN SYLLABICS OJIBWAY NWII;Lo;0;L;;;;;N;;;;; +18CA;CANADIAN SYLLABICS NWO;Lo;0;L;;;;;N;;;;; +18CB;CANADIAN SYLLABICS OJIBWAY NWO;Lo;0;L;;;;;N;;;;; +18CC;CANADIAN SYLLABICS NWOO;Lo;0;L;;;;;N;;;;; +18CD;CANADIAN SYLLABICS OJIBWAY NWOO;Lo;0;L;;;;;N;;;;; +18CE;CANADIAN SYLLABICS RWEE;Lo;0;L;;;;;N;;;;; +18CF;CANADIAN SYLLABICS RWI;Lo;0;L;;;;;N;;;;; +18D0;CANADIAN SYLLABICS RWII;Lo;0;L;;;;;N;;;;; +18D1;CANADIAN SYLLABICS RWO;Lo;0;L;;;;;N;;;;; +18D2;CANADIAN SYLLABICS RWOO;Lo;0;L;;;;;N;;;;; +18D3;CANADIAN SYLLABICS RWA;Lo;0;L;;;;;N;;;;; +18D4;CANADIAN SYLLABICS OJIBWAY P;Lo;0;L;;;;;N;;;;; +18D5;CANADIAN SYLLABICS OJIBWAY T;Lo;0;L;;;;;N;;;;; +18D6;CANADIAN SYLLABICS OJIBWAY K;Lo;0;L;;;;;N;;;;; +18D7;CANADIAN SYLLABICS OJIBWAY C;Lo;0;L;;;;;N;;;;; +18D8;CANADIAN SYLLABICS OJIBWAY M;Lo;0;L;;;;;N;;;;; +18D9;CANADIAN SYLLABICS OJIBWAY N;Lo;0;L;;;;;N;;;;; +18DA;CANADIAN SYLLABICS OJIBWAY S;Lo;0;L;;;;;N;;;;; +18DB;CANADIAN SYLLABICS OJIBWAY SH;Lo;0;L;;;;;N;;;;; +18DC;CANADIAN SYLLABICS EASTERN W;Lo;0;L;;;;;N;;;;; +18DD;CANADIAN SYLLABICS WESTERN W;Lo;0;L;;;;;N;;;;; +18DE;CANADIAN SYLLABICS FINAL SMALL RING;Lo;0;L;;;;;N;;;;; +18DF;CANADIAN SYLLABICS FINAL RAISED DOT;Lo;0;L;;;;;N;;;;; +18E0;CANADIAN SYLLABICS R-CREE RWE;Lo;0;L;;;;;N;;;;; +18E1;CANADIAN SYLLABICS WEST-CREE LOO;Lo;0;L;;;;;N;;;;; +18E2;CANADIAN SYLLABICS WEST-CREE LAA;Lo;0;L;;;;;N;;;;; +18E3;CANADIAN SYLLABICS THWE;Lo;0;L;;;;;N;;;;; +18E4;CANADIAN SYLLABICS THWA;Lo;0;L;;;;;N;;;;; +18E5;CANADIAN SYLLABICS TTHWE;Lo;0;L;;;;;N;;;;; +18E6;CANADIAN SYLLABICS TTHOO;Lo;0;L;;;;;N;;;;; +18E7;CANADIAN SYLLABICS TTHAA;Lo;0;L;;;;;N;;;;; +18E8;CANADIAN SYLLABICS TLHWE;Lo;0;L;;;;;N;;;;; +18E9;CANADIAN SYLLABICS TLHOO;Lo;0;L;;;;;N;;;;; +18EA;CANADIAN SYLLABICS SAYISI SHWE;Lo;0;L;;;;;N;;;;; +18EB;CANADIAN SYLLABICS SAYISI SHOO;Lo;0;L;;;;;N;;;;; +18EC;CANADIAN SYLLABICS SAYISI HOO;Lo;0;L;;;;;N;;;;; +18ED;CANADIAN SYLLABICS CARRIER GWU;Lo;0;L;;;;;N;;;;; +18EE;CANADIAN SYLLABICS CARRIER DENE GEE;Lo;0;L;;;;;N;;;;; +18EF;CANADIAN SYLLABICS CARRIER GAA;Lo;0;L;;;;;N;;;;; +18F0;CANADIAN SYLLABICS CARRIER GWA;Lo;0;L;;;;;N;;;;; +18F1;CANADIAN SYLLABICS SAYISI JUU;Lo;0;L;;;;;N;;;;; +18F2;CANADIAN SYLLABICS CARRIER JWA;Lo;0;L;;;;;N;;;;; +18F3;CANADIAN SYLLABICS BEAVER DENE L;Lo;0;L;;;;;N;;;;; +18F4;CANADIAN SYLLABICS BEAVER DENE R;Lo;0;L;;;;;N;;;;; +18F5;CANADIAN SYLLABICS CARRIER DENTAL S;Lo;0;L;;;;;N;;;;; +1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;; +1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;; +1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;; +1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;; +1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;; +1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;; +1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;; +1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;; +1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;; +1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;; +190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;; +190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;; +190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;; +190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;; +190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;; +190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;; +1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;; +1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;; +1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;; +1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;; +1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;; +1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;; +1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;; +1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;; +1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;; +1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;; +191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;; +191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;; +191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;; +1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;; +1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; +1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +1929;LIMBU SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;; +192A;LIMBU SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;; +192B;LIMBU SUBJOINED LETTER WA;Mc;0;L;;;;;N;;;;; +1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;; +1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;; +1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;; +1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;; +1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;; +1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;; +1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;; +1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;; +1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;; +1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;; +193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;; +193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;; +1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;; +1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; +1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;; +1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;; +1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;; +1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;; +1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;; +1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;; +1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;; +1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;; +1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;; +1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;; +1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;; +195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;; +195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;; +195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;; +195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;; +195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;; +195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;; +1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;; +1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;; +1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;; +1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;; +1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;; +1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;; +1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;; +1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;; +1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;; +1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;; +196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;; +196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;; +196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;; +196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;; +1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;; +1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;; +1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;; +1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;; +1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;; +1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;; +1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;; +1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;; +1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;; +1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;; +1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;; +1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;; +1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;; +1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;; +1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;; +198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;; +198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;; +198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;; +198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;; +198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;; +198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;; +1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;; +1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;; +1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;; +1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;; +1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;; +1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;; +1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;; +1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;; +1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;; +1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;; +199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;; +199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;; +199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;; +199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;; +199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;; +199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;; +19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;; +19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;; +19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;; +19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;; +19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;; +19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;; +19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;; +19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;; +19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;; +19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;; +19AA;NEW TAI LUE LETTER HIGH SUA;Lo;0;L;;;;;N;;;;; +19AB;NEW TAI LUE LETTER LOW SUA;Lo;0;L;;;;;N;;;;; +19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;; +19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; +19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;; +19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;; +19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;; +19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;; +19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;; +19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;; +19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;; +19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;; +19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;; +19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;; +19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;; +19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;; +19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;; +19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;; +19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;; +19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;; +19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;; +19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;; +19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +19DA;NEW TAI LUE THAM DIGIT ONE;No;0;L;;;1;1;N;;;;; +19DE;NEW TAI LUE SIGN LAE;So;0;ON;;;;;N;;;;; +19DF;NEW TAI LUE SIGN LAEV;So;0;ON;;;;;N;;;;; +19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;; +19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;; +19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;; +19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;; +19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;; +19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;; +19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;; +19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;; +19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;; +19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;; +19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;; +19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;; +19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;; +19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;; +19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;; +19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;; +19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;; +19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;; +19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;; +19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;; +19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;; +19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;; +19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;; +19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;; +19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;; +19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;; +19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;; +19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;; +19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;; +19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;; +19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;; +19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;; +1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;; +1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;; +1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;; +1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;; +1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;; +1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;; +1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;; +1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;; +1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;; +1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;; +1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;; +1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;; +1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;; +1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;; +1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;; +1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;; +1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;; +1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;; +1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;; +1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;; +1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;; +1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;; +1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;; +1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;; +1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;; +1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; +1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;; +1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;; +1A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;; +1A21;TAI THAM LETTER HIGH KHA;Lo;0;L;;;;;N;;;;; +1A22;TAI THAM LETTER HIGH KXA;Lo;0;L;;;;;N;;;;; +1A23;TAI THAM LETTER LOW KA;Lo;0;L;;;;;N;;;;; +1A24;TAI THAM LETTER LOW KXA;Lo;0;L;;;;;N;;;;; +1A25;TAI THAM LETTER LOW KHA;Lo;0;L;;;;;N;;;;; +1A26;TAI THAM LETTER NGA;Lo;0;L;;;;;N;;;;; +1A27;TAI THAM LETTER HIGH CA;Lo;0;L;;;;;N;;;;; +1A28;TAI THAM LETTER HIGH CHA;Lo;0;L;;;;;N;;;;; +1A29;TAI THAM LETTER LOW CA;Lo;0;L;;;;;N;;;;; +1A2A;TAI THAM LETTER LOW SA;Lo;0;L;;;;;N;;;;; +1A2B;TAI THAM LETTER LOW CHA;Lo;0;L;;;;;N;;;;; +1A2C;TAI THAM LETTER NYA;Lo;0;L;;;;;N;;;;; +1A2D;TAI THAM LETTER RATA;Lo;0;L;;;;;N;;;;; +1A2E;TAI THAM LETTER HIGH RATHA;Lo;0;L;;;;;N;;;;; +1A2F;TAI THAM LETTER DA;Lo;0;L;;;;;N;;;;; +1A30;TAI THAM LETTER LOW RATHA;Lo;0;L;;;;;N;;;;; +1A31;TAI THAM LETTER RANA;Lo;0;L;;;;;N;;;;; +1A32;TAI THAM LETTER HIGH TA;Lo;0;L;;;;;N;;;;; +1A33;TAI THAM LETTER HIGH THA;Lo;0;L;;;;;N;;;;; +1A34;TAI THAM LETTER LOW TA;Lo;0;L;;;;;N;;;;; +1A35;TAI THAM LETTER LOW THA;Lo;0;L;;;;;N;;;;; +1A36;TAI THAM LETTER NA;Lo;0;L;;;;;N;;;;; +1A37;TAI THAM LETTER BA;Lo;0;L;;;;;N;;;;; +1A38;TAI THAM LETTER HIGH PA;Lo;0;L;;;;;N;;;;; +1A39;TAI THAM LETTER HIGH PHA;Lo;0;L;;;;;N;;;;; +1A3A;TAI THAM LETTER HIGH FA;Lo;0;L;;;;;N;;;;; +1A3B;TAI THAM LETTER LOW PA;Lo;0;L;;;;;N;;;;; +1A3C;TAI THAM LETTER LOW FA;Lo;0;L;;;;;N;;;;; +1A3D;TAI THAM LETTER LOW PHA;Lo;0;L;;;;;N;;;;; +1A3E;TAI THAM LETTER MA;Lo;0;L;;;;;N;;;;; +1A3F;TAI THAM LETTER LOW YA;Lo;0;L;;;;;N;;;;; +1A40;TAI THAM LETTER HIGH YA;Lo;0;L;;;;;N;;;;; +1A41;TAI THAM LETTER RA;Lo;0;L;;;;;N;;;;; +1A42;TAI THAM LETTER RUE;Lo;0;L;;;;;N;;;;; +1A43;TAI THAM LETTER LA;Lo;0;L;;;;;N;;;;; +1A44;TAI THAM LETTER LUE;Lo;0;L;;;;;N;;;;; +1A45;TAI THAM LETTER WA;Lo;0;L;;;;;N;;;;; +1A46;TAI THAM LETTER HIGH SHA;Lo;0;L;;;;;N;;;;; +1A47;TAI THAM LETTER HIGH SSA;Lo;0;L;;;;;N;;;;; +1A48;TAI THAM LETTER HIGH SA;Lo;0;L;;;;;N;;;;; +1A49;TAI THAM LETTER HIGH HA;Lo;0;L;;;;;N;;;;; +1A4A;TAI THAM LETTER LLA;Lo;0;L;;;;;N;;;;; +1A4B;TAI THAM LETTER A;Lo;0;L;;;;;N;;;;; +1A4C;TAI THAM LETTER LOW HA;Lo;0;L;;;;;N;;;;; +1A4D;TAI THAM LETTER I;Lo;0;L;;;;;N;;;;; +1A4E;TAI THAM LETTER II;Lo;0;L;;;;;N;;;;; +1A4F;TAI THAM LETTER U;Lo;0;L;;;;;N;;;;; +1A50;TAI THAM LETTER UU;Lo;0;L;;;;;N;;;;; +1A51;TAI THAM LETTER EE;Lo;0;L;;;;;N;;;;; +1A52;TAI THAM LETTER OO;Lo;0;L;;;;;N;;;;; +1A53;TAI THAM LETTER LAE;Lo;0;L;;;;;N;;;;; +1A54;TAI THAM LETTER GREAT SA;Lo;0;L;;;;;N;;;;; +1A55;TAI THAM CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;; +1A56;TAI THAM CONSONANT SIGN MEDIAL LA;Mn;0;NSM;;;;;N;;;;; +1A57;TAI THAM CONSONANT SIGN LA TANG LAI;Mc;0;L;;;;;N;;;;; +1A58;TAI THAM SIGN MAI KANG LAI;Mn;0;NSM;;;;;N;;;;; +1A59;TAI THAM CONSONANT SIGN FINAL NGA;Mn;0;NSM;;;;;N;;;;; +1A5A;TAI THAM CONSONANT SIGN LOW PA;Mn;0;NSM;;;;;N;;;;; +1A5B;TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA;Mn;0;NSM;;;;;N;;;;; +1A5C;TAI THAM CONSONANT SIGN MA;Mn;0;NSM;;;;;N;;;;; +1A5D;TAI THAM CONSONANT SIGN BA;Mn;0;NSM;;;;;N;;;;; +1A5E;TAI THAM CONSONANT SIGN SA;Mn;0;NSM;;;;;N;;;;; +1A60;TAI THAM SIGN SAKOT;Mn;9;NSM;;;;;N;;;;; +1A61;TAI THAM VOWEL SIGN A;Mc;0;L;;;;;N;;;;; +1A62;TAI THAM VOWEL SIGN MAI SAT;Mn;0;NSM;;;;;N;;;;; +1A63;TAI THAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +1A64;TAI THAM VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;; +1A65;TAI THAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1A66;TAI THAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +1A67;TAI THAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;; +1A68;TAI THAM VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;; +1A69;TAI THAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1A6A;TAI THAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +1A6B;TAI THAM VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +1A6C;TAI THAM VOWEL SIGN OA BELOW;Mn;0;NSM;;;;;N;;;;; +1A6D;TAI THAM VOWEL SIGN OY;Mc;0;L;;;;;N;;;;; +1A6E;TAI THAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +1A6F;TAI THAM VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; +1A70;TAI THAM VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +1A71;TAI THAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +1A72;TAI THAM VOWEL SIGN THAM AI;Mc;0;L;;;;;N;;;;; +1A73;TAI THAM VOWEL SIGN OA ABOVE;Mn;0;NSM;;;;;N;;;;; +1A74;TAI THAM SIGN MAI KANG;Mn;0;NSM;;;;;N;;;;; +1A75;TAI THAM SIGN TONE-1;Mn;230;NSM;;;;;N;;;;; +1A76;TAI THAM SIGN TONE-2;Mn;230;NSM;;;;;N;;;;; +1A77;TAI THAM SIGN KHUEN TONE-3;Mn;230;NSM;;;;;N;;;;; +1A78;TAI THAM SIGN KHUEN TONE-4;Mn;230;NSM;;;;;N;;;;; +1A79;TAI THAM SIGN KHUEN TONE-5;Mn;230;NSM;;;;;N;;;;; +1A7A;TAI THAM SIGN RA HAAM;Mn;230;NSM;;;;;N;;;;; +1A7B;TAI THAM SIGN MAI SAM;Mn;230;NSM;;;;;N;;;;; +1A7C;TAI THAM SIGN KHUEN-LUE KARAN;Mn;230;NSM;;;;;N;;;;; +1A7F;TAI THAM COMBINING CRYPTOGRAMMIC DOT;Mn;220;NSM;;;;;N;;;;; +1A80;TAI THAM HORA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1A81;TAI THAM HORA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1A82;TAI THAM HORA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1A83;TAI THAM HORA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1A84;TAI THAM HORA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1A85;TAI THAM HORA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1A86;TAI THAM HORA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1A87;TAI THAM HORA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1A88;TAI THAM HORA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1A89;TAI THAM HORA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1A90;TAI THAM THAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1A91;TAI THAM THAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1A92;TAI THAM THAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1A93;TAI THAM THAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1A94;TAI THAM THAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1A95;TAI THAM THAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1A96;TAI THAM THAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1A97;TAI THAM THAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1A98;TAI THAM THAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1A99;TAI THAM THAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1AA0;TAI THAM SIGN WIANG;Po;0;L;;;;;N;;;;; +1AA1;TAI THAM SIGN WIANGWAAK;Po;0;L;;;;;N;;;;; +1AA2;TAI THAM SIGN SAWAN;Po;0;L;;;;;N;;;;; +1AA3;TAI THAM SIGN KEOW;Po;0;L;;;;;N;;;;; +1AA4;TAI THAM SIGN HOY;Po;0;L;;;;;N;;;;; +1AA5;TAI THAM SIGN DOKMAI;Po;0;L;;;;;N;;;;; +1AA6;TAI THAM SIGN REVERSED ROTATED RANA;Po;0;L;;;;;N;;;;; +1AA7;TAI THAM SIGN MAI YAMOK;Lm;0;L;;;;;N;;;;; +1AA8;TAI THAM SIGN KAAN;Po;0;L;;;;;N;;;;; +1AA9;TAI THAM SIGN KAANKUU;Po;0;L;;;;;N;;;;; +1AAA;TAI THAM SIGN SATKAAN;Po;0;L;;;;;N;;;;; +1AAB;TAI THAM SIGN SATKAANKUU;Po;0;L;;;;;N;;;;; +1AAC;TAI THAM SIGN HANG;Po;0;L;;;;;N;;;;; +1AAD;TAI THAM SIGN CAANG;Po;0;L;;;;;N;;;;; +1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;; +1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;; +1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;; +1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;;;; +1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;;;; +1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;;;; +1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;;;; +1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;;;; +1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;;;; +1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;;;; +1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;;;; +1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;;;; +1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;;;; +1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;;;; +1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;;;; +1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;;;; +1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;;;; +1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;;;; +1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;;;; +1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;; +1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;;;; +1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;; +1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;;;; +1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;; +1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;; +1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;;;; +1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;; +1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;;;; +1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;; +1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;;;; +1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;;;; +1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;;;; +1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;;;; +1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;;;; +1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;; +1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;;;; +1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;; +1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;;;; +1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;; +1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;; +1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;;;; +1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;; +1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;;;; +1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;; +1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;; +1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;; +1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;; +1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;; +1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;;;; +1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;;;; +1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;; +1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;; +1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;;;; +1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;;;; +1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;;;; +1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;;;; +1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;;;; +1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;;;; +1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;;;; +1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;;;; +1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;;;; +1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;;;; +1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;; +1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;;;; +1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;;;; +1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;;;; +1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;; +1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;;;; +1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;;;; +1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;; +1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;; +1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;; +1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;; +1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;; +1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;; +1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;; +1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1B5A;BALINESE PANTI;Po;0;L;;;;;N;;;;; +1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;;;; +1B5C;BALINESE WINDU;Po;0;L;;;;;N;;;;; +1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;;;; +1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;;;; +1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;;;; +1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;;;; +1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;; +1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;; +1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;; +1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;; +1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;; +1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;; +1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;; +1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;; +1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;; +1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;; +1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;; +1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;; +1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;; +1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;; +1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;; +1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;; +1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;; +1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;; +1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;; +1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;; +1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;; +1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;; +1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;; +1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;; +1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;; +1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;; +1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;; +1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;; +1B80;SUNDANESE SIGN PANYECEK;Mn;0;NSM;;;;;N;;;;; +1B81;SUNDANESE SIGN PANGLAYAR;Mn;0;NSM;;;;;N;;;;; +1B82;SUNDANESE SIGN PANGWISAD;Mc;0;L;;;;;N;;;;; +1B83;SUNDANESE LETTER A;Lo;0;L;;;;;N;;;;; +1B84;SUNDANESE LETTER I;Lo;0;L;;;;;N;;;;; +1B85;SUNDANESE LETTER U;Lo;0;L;;;;;N;;;;; +1B86;SUNDANESE LETTER AE;Lo;0;L;;;;;N;;;;; +1B87;SUNDANESE LETTER O;Lo;0;L;;;;;N;;;;; +1B88;SUNDANESE LETTER E;Lo;0;L;;;;;N;;;;; +1B89;SUNDANESE LETTER EU;Lo;0;L;;;;;N;;;;; +1B8A;SUNDANESE LETTER KA;Lo;0;L;;;;;N;;;;; +1B8B;SUNDANESE LETTER QA;Lo;0;L;;;;;N;;;;; +1B8C;SUNDANESE LETTER GA;Lo;0;L;;;;;N;;;;; +1B8D;SUNDANESE LETTER NGA;Lo;0;L;;;;;N;;;;; +1B8E;SUNDANESE LETTER CA;Lo;0;L;;;;;N;;;;; +1B8F;SUNDANESE LETTER JA;Lo;0;L;;;;;N;;;;; +1B90;SUNDANESE LETTER ZA;Lo;0;L;;;;;N;;;;; +1B91;SUNDANESE LETTER NYA;Lo;0;L;;;;;N;;;;; +1B92;SUNDANESE LETTER TA;Lo;0;L;;;;;N;;;;; +1B93;SUNDANESE LETTER DA;Lo;0;L;;;;;N;;;;; +1B94;SUNDANESE LETTER NA;Lo;0;L;;;;;N;;;;; +1B95;SUNDANESE LETTER PA;Lo;0;L;;;;;N;;;;; +1B96;SUNDANESE LETTER FA;Lo;0;L;;;;;N;;;;; +1B97;SUNDANESE LETTER VA;Lo;0;L;;;;;N;;;;; +1B98;SUNDANESE LETTER BA;Lo;0;L;;;;;N;;;;; +1B99;SUNDANESE LETTER MA;Lo;0;L;;;;;N;;;;; +1B9A;SUNDANESE LETTER YA;Lo;0;L;;;;;N;;;;; +1B9B;SUNDANESE LETTER RA;Lo;0;L;;;;;N;;;;; +1B9C;SUNDANESE LETTER LA;Lo;0;L;;;;;N;;;;; +1B9D;SUNDANESE LETTER WA;Lo;0;L;;;;;N;;;;; +1B9E;SUNDANESE LETTER SA;Lo;0;L;;;;;N;;;;; +1B9F;SUNDANESE LETTER XA;Lo;0;L;;;;;N;;;;; +1BA0;SUNDANESE LETTER HA;Lo;0;L;;;;;N;;;;; +1BA1;SUNDANESE CONSONANT SIGN PAMINGKAL;Mc;0;L;;;;;N;;;;; +1BA2;SUNDANESE CONSONANT SIGN PANYAKRA;Mn;0;NSM;;;;;N;;;;; +1BA3;SUNDANESE CONSONANT SIGN PANYIKU;Mn;0;NSM;;;;;N;;;;; +1BA4;SUNDANESE VOWEL SIGN PANGHULU;Mn;0;NSM;;;;;N;;;;; +1BA5;SUNDANESE VOWEL SIGN PANYUKU;Mn;0;NSM;;;;;N;;;;; +1BA6;SUNDANESE VOWEL SIGN PANAELAENG;Mc;0;L;;;;;N;;;;; +1BA7;SUNDANESE VOWEL SIGN PANOLONG;Mc;0;L;;;;;N;;;;; +1BA8;SUNDANESE VOWEL SIGN PAMEPET;Mn;0;NSM;;;;;N;;;;; +1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;; +1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;; +1BAB;SUNDANESE SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mc;0;L;;;;;N;;;;; +1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mc;0;L;;;;;N;;;;; +1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;; +1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;; +1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1BB1;SUNDANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1BB2;SUNDANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1BB3;SUNDANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1BB4;SUNDANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1BB5;SUNDANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1BB6;SUNDANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1BB7;SUNDANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1BB8;SUNDANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1BB9;SUNDANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1BBA;SUNDANESE AVAGRAHA;Lo;0;L;;;;;N;;;;; +1BBB;SUNDANESE LETTER REU;Lo;0;L;;;;;N;;;;; +1BBC;SUNDANESE LETTER LEU;Lo;0;L;;;;;N;;;;; +1BBD;SUNDANESE LETTER BHA;Lo;0;L;;;;;N;;;;; +1BBE;SUNDANESE LETTER FINAL K;Lo;0;L;;;;;N;;;;; +1BBF;SUNDANESE LETTER FINAL M;Lo;0;L;;;;;N;;;;; +1BC0;BATAK LETTER A;Lo;0;L;;;;;N;;;;; +1BC1;BATAK LETTER SIMALUNGUN A;Lo;0;L;;;;;N;;;;; +1BC2;BATAK LETTER HA;Lo;0;L;;;;;N;;;;; +1BC3;BATAK LETTER SIMALUNGUN HA;Lo;0;L;;;;;N;;;;; +1BC4;BATAK LETTER MANDAILING HA;Lo;0;L;;;;;N;;;;; +1BC5;BATAK LETTER BA;Lo;0;L;;;;;N;;;;; +1BC6;BATAK LETTER KARO BA;Lo;0;L;;;;;N;;;;; +1BC7;BATAK LETTER PA;Lo;0;L;;;;;N;;;;; +1BC8;BATAK LETTER SIMALUNGUN PA;Lo;0;L;;;;;N;;;;; +1BC9;BATAK LETTER NA;Lo;0;L;;;;;N;;;;; +1BCA;BATAK LETTER MANDAILING NA;Lo;0;L;;;;;N;;;;; +1BCB;BATAK LETTER WA;Lo;0;L;;;;;N;;;;; +1BCC;BATAK LETTER SIMALUNGUN WA;Lo;0;L;;;;;N;;;;; +1BCD;BATAK LETTER PAKPAK WA;Lo;0;L;;;;;N;;;;; +1BCE;BATAK LETTER GA;Lo;0;L;;;;;N;;;;; +1BCF;BATAK LETTER SIMALUNGUN GA;Lo;0;L;;;;;N;;;;; +1BD0;BATAK LETTER JA;Lo;0;L;;;;;N;;;;; +1BD1;BATAK LETTER DA;Lo;0;L;;;;;N;;;;; +1BD2;BATAK LETTER RA;Lo;0;L;;;;;N;;;;; +1BD3;BATAK LETTER SIMALUNGUN RA;Lo;0;L;;;;;N;;;;; +1BD4;BATAK LETTER MA;Lo;0;L;;;;;N;;;;; +1BD5;BATAK LETTER SIMALUNGUN MA;Lo;0;L;;;;;N;;;;; +1BD6;BATAK LETTER SOUTHERN TA;Lo;0;L;;;;;N;;;;; +1BD7;BATAK LETTER NORTHERN TA;Lo;0;L;;;;;N;;;;; +1BD8;BATAK LETTER SA;Lo;0;L;;;;;N;;;;; +1BD9;BATAK LETTER SIMALUNGUN SA;Lo;0;L;;;;;N;;;;; +1BDA;BATAK LETTER MANDAILING SA;Lo;0;L;;;;;N;;;;; +1BDB;BATAK LETTER YA;Lo;0;L;;;;;N;;;;; +1BDC;BATAK LETTER SIMALUNGUN YA;Lo;0;L;;;;;N;;;;; +1BDD;BATAK LETTER NGA;Lo;0;L;;;;;N;;;;; +1BDE;BATAK LETTER LA;Lo;0;L;;;;;N;;;;; +1BDF;BATAK LETTER SIMALUNGUN LA;Lo;0;L;;;;;N;;;;; +1BE0;BATAK LETTER NYA;Lo;0;L;;;;;N;;;;; +1BE1;BATAK LETTER CA;Lo;0;L;;;;;N;;;;; +1BE2;BATAK LETTER NDA;Lo;0;L;;;;;N;;;;; +1BE3;BATAK LETTER MBA;Lo;0;L;;;;;N;;;;; +1BE4;BATAK LETTER I;Lo;0;L;;;;;N;;;;; +1BE5;BATAK LETTER U;Lo;0;L;;;;;N;;;;; +1BE6;BATAK SIGN TOMPI;Mn;7;NSM;;;;;N;;;;; +1BE7;BATAK VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +1BE8;BATAK VOWEL SIGN PAKPAK E;Mn;0;NSM;;;;;N;;;;; +1BE9;BATAK VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; +1BEA;BATAK VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +1BEB;BATAK VOWEL SIGN KARO I;Mc;0;L;;;;;N;;;;; +1BEC;BATAK VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +1BED;BATAK VOWEL SIGN KARO O;Mn;0;NSM;;;;;N;;;;; +1BEE;BATAK VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +1BEF;BATAK VOWEL SIGN U FOR SIMALUNGUN SA;Mn;0;NSM;;;;;N;;;;; +1BF0;BATAK CONSONANT SIGN NG;Mn;0;NSM;;;;;N;;;;; +1BF1;BATAK CONSONANT SIGN H;Mn;0;NSM;;;;;N;;;;; +1BF2;BATAK PANGOLAT;Mc;9;L;;;;;N;;;;; +1BF3;BATAK PANONGONAN;Mc;9;L;;;;;N;;;;; +1BFC;BATAK SYMBOL BINDU NA METEK;Po;0;L;;;;;N;;;;; +1BFD;BATAK SYMBOL BINDU PINARBORAS;Po;0;L;;;;;N;;;;; +1BFE;BATAK SYMBOL BINDU JUDUL;Po;0;L;;;;;N;;;;; +1BFF;BATAK SYMBOL BINDU PANGOLAT;Po;0;L;;;;;N;;;;; +1C00;LEPCHA LETTER KA;Lo;0;L;;;;;N;;;;; +1C01;LEPCHA LETTER KLA;Lo;0;L;;;;;N;;;;; +1C02;LEPCHA LETTER KHA;Lo;0;L;;;;;N;;;;; +1C03;LEPCHA LETTER GA;Lo;0;L;;;;;N;;;;; +1C04;LEPCHA LETTER GLA;Lo;0;L;;;;;N;;;;; +1C05;LEPCHA LETTER NGA;Lo;0;L;;;;;N;;;;; +1C06;LEPCHA LETTER CA;Lo;0;L;;;;;N;;;;; +1C07;LEPCHA LETTER CHA;Lo;0;L;;;;;N;;;;; +1C08;LEPCHA LETTER JA;Lo;0;L;;;;;N;;;;; +1C09;LEPCHA LETTER NYA;Lo;0;L;;;;;N;;;;; +1C0A;LEPCHA LETTER TA;Lo;0;L;;;;;N;;;;; +1C0B;LEPCHA LETTER THA;Lo;0;L;;;;;N;;;;; +1C0C;LEPCHA LETTER DA;Lo;0;L;;;;;N;;;;; +1C0D;LEPCHA LETTER NA;Lo;0;L;;;;;N;;;;; +1C0E;LEPCHA LETTER PA;Lo;0;L;;;;;N;;;;; +1C0F;LEPCHA LETTER PLA;Lo;0;L;;;;;N;;;;; +1C10;LEPCHA LETTER PHA;Lo;0;L;;;;;N;;;;; +1C11;LEPCHA LETTER FA;Lo;0;L;;;;;N;;;;; +1C12;LEPCHA LETTER FLA;Lo;0;L;;;;;N;;;;; +1C13;LEPCHA LETTER BA;Lo;0;L;;;;;N;;;;; +1C14;LEPCHA LETTER BLA;Lo;0;L;;;;;N;;;;; +1C15;LEPCHA LETTER MA;Lo;0;L;;;;;N;;;;; +1C16;LEPCHA LETTER MLA;Lo;0;L;;;;;N;;;;; +1C17;LEPCHA LETTER TSA;Lo;0;L;;;;;N;;;;; +1C18;LEPCHA LETTER TSHA;Lo;0;L;;;;;N;;;;; +1C19;LEPCHA LETTER DZA;Lo;0;L;;;;;N;;;;; +1C1A;LEPCHA LETTER YA;Lo;0;L;;;;;N;;;;; +1C1B;LEPCHA LETTER RA;Lo;0;L;;;;;N;;;;; +1C1C;LEPCHA LETTER LA;Lo;0;L;;;;;N;;;;; +1C1D;LEPCHA LETTER HA;Lo;0;L;;;;;N;;;;; +1C1E;LEPCHA LETTER HLA;Lo;0;L;;;;;N;;;;; +1C1F;LEPCHA LETTER VA;Lo;0;L;;;;;N;;;;; +1C20;LEPCHA LETTER SA;Lo;0;L;;;;;N;;;;; +1C21;LEPCHA LETTER SHA;Lo;0;L;;;;;N;;;;; +1C22;LEPCHA LETTER WA;Lo;0;L;;;;;N;;;;; +1C23;LEPCHA LETTER A;Lo;0;L;;;;;N;;;;; +1C24;LEPCHA SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;; +1C25;LEPCHA SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;; +1C26;LEPCHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +1C27;LEPCHA VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +1C28;LEPCHA VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +1C29;LEPCHA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +1C2A;LEPCHA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +1C2B;LEPCHA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +1C2C;LEPCHA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +1C2D;LEPCHA CONSONANT SIGN K;Mn;0;NSM;;;;;N;;;;; +1C2E;LEPCHA CONSONANT SIGN M;Mn;0;NSM;;;;;N;;;;; +1C2F;LEPCHA CONSONANT SIGN L;Mn;0;NSM;;;;;N;;;;; +1C30;LEPCHA CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;; +1C31;LEPCHA CONSONANT SIGN P;Mn;0;NSM;;;;;N;;;;; +1C32;LEPCHA CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;; +1C33;LEPCHA CONSONANT SIGN T;Mn;0;NSM;;;;;N;;;;; +1C34;LEPCHA CONSONANT SIGN NYIN-DO;Mc;0;L;;;;;N;;;;; +1C35;LEPCHA CONSONANT SIGN KANG;Mc;0;L;;;;;N;;;;; +1C36;LEPCHA SIGN RAN;Mn;0;NSM;;;;;N;;;;; +1C37;LEPCHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +1C3B;LEPCHA PUNCTUATION TA-ROL;Po;0;L;;;;;N;;;;; +1C3C;LEPCHA PUNCTUATION NYET THYOOM TA-ROL;Po;0;L;;;;;N;;;;; +1C3D;LEPCHA PUNCTUATION CER-WA;Po;0;L;;;;;N;;;;; +1C3E;LEPCHA PUNCTUATION TSHOOK CER-WA;Po;0;L;;;;;N;;;;; +1C3F;LEPCHA PUNCTUATION TSHOOK;Po;0;L;;;;;N;;;;; +1C40;LEPCHA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1C41;LEPCHA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1C42;LEPCHA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1C43;LEPCHA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1C44;LEPCHA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1C45;LEPCHA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1C46;LEPCHA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1C47;LEPCHA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1C48;LEPCHA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1C49;LEPCHA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1C4D;LEPCHA LETTER TTA;Lo;0;L;;;;;N;;;;; +1C4E;LEPCHA LETTER TTHA;Lo;0;L;;;;;N;;;;; +1C4F;LEPCHA LETTER DDA;Lo;0;L;;;;;N;;;;; +1C50;OL CHIKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1C51;OL CHIKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1C52;OL CHIKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1C53;OL CHIKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1C54;OL CHIKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1C55;OL CHIKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1C56;OL CHIKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1C57;OL CHIKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1C58;OL CHIKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1C59;OL CHIKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +1C5A;OL CHIKI LETTER LA;Lo;0;L;;;;;N;;;;; +1C5B;OL CHIKI LETTER AT;Lo;0;L;;;;;N;;;;; +1C5C;OL CHIKI LETTER AG;Lo;0;L;;;;;N;;;;; +1C5D;OL CHIKI LETTER ANG;Lo;0;L;;;;;N;;;;; +1C5E;OL CHIKI LETTER AL;Lo;0;L;;;;;N;;;;; +1C5F;OL CHIKI LETTER LAA;Lo;0;L;;;;;N;;;;; +1C60;OL CHIKI LETTER AAK;Lo;0;L;;;;;N;;;;; +1C61;OL CHIKI LETTER AAJ;Lo;0;L;;;;;N;;;;; +1C62;OL CHIKI LETTER AAM;Lo;0;L;;;;;N;;;;; +1C63;OL CHIKI LETTER AAW;Lo;0;L;;;;;N;;;;; +1C64;OL CHIKI LETTER LI;Lo;0;L;;;;;N;;;;; +1C65;OL CHIKI LETTER IS;Lo;0;L;;;;;N;;;;; +1C66;OL CHIKI LETTER IH;Lo;0;L;;;;;N;;;;; +1C67;OL CHIKI LETTER INY;Lo;0;L;;;;;N;;;;; +1C68;OL CHIKI LETTER IR;Lo;0;L;;;;;N;;;;; +1C69;OL CHIKI LETTER LU;Lo;0;L;;;;;N;;;;; +1C6A;OL CHIKI LETTER UC;Lo;0;L;;;;;N;;;;; +1C6B;OL CHIKI LETTER UD;Lo;0;L;;;;;N;;;;; +1C6C;OL CHIKI LETTER UNN;Lo;0;L;;;;;N;;;;; +1C6D;OL CHIKI LETTER UY;Lo;0;L;;;;;N;;;;; +1C6E;OL CHIKI LETTER LE;Lo;0;L;;;;;N;;;;; +1C6F;OL CHIKI LETTER EP;Lo;0;L;;;;;N;;;;; +1C70;OL CHIKI LETTER EDD;Lo;0;L;;;;;N;;;;; +1C71;OL CHIKI LETTER EN;Lo;0;L;;;;;N;;;;; +1C72;OL CHIKI LETTER ERR;Lo;0;L;;;;;N;;;;; +1C73;OL CHIKI LETTER LO;Lo;0;L;;;;;N;;;;; +1C74;OL CHIKI LETTER OTT;Lo;0;L;;;;;N;;;;; +1C75;OL CHIKI LETTER OB;Lo;0;L;;;;;N;;;;; +1C76;OL CHIKI LETTER OV;Lo;0;L;;;;;N;;;;; +1C77;OL CHIKI LETTER OH;Lo;0;L;;;;;N;;;;; +1C78;OL CHIKI MU TTUDDAG;Lm;0;L;;;;;N;;;;; +1C79;OL CHIKI GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;; +1C7A;OL CHIKI MU-GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;; +1C7B;OL CHIKI RELAA;Lm;0;L;;;;;N;;;;; +1C7C;OL CHIKI PHAARKAA;Lm;0;L;;;;;N;;;;; +1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;; +1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;; +1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;; +1CC0;SUNDANESE PUNCTUATION BINDU SURYA;Po;0;L;;;;;N;;;;; +1CC1;SUNDANESE PUNCTUATION BINDU PANGLONG;Po;0;L;;;;;N;;;;; +1CC2;SUNDANESE PUNCTUATION BINDU PURNAMA;Po;0;L;;;;;N;;;;; +1CC3;SUNDANESE PUNCTUATION BINDU CAKRA;Po;0;L;;;;;N;;;;; +1CC4;SUNDANESE PUNCTUATION BINDU LEU SATANGA;Po;0;L;;;;;N;;;;; +1CC5;SUNDANESE PUNCTUATION BINDU KA SATANGA;Po;0;L;;;;;N;;;;; +1CC6;SUNDANESE PUNCTUATION BINDU DA SATANGA;Po;0;L;;;;;N;;;;; +1CC7;SUNDANESE PUNCTUATION BINDU BA SATANGA;Po;0;L;;;;;N;;;;; +1CD0;VEDIC TONE KARSHANA;Mn;230;NSM;;;;;N;;;;; +1CD1;VEDIC TONE SHARA;Mn;230;NSM;;;;;N;;;;; +1CD2;VEDIC TONE PRENKHA;Mn;230;NSM;;;;;N;;;;; +1CD3;VEDIC SIGN NIHSHVASA;Po;0;L;;;;;N;;;;; +1CD4;VEDIC SIGN YAJURVEDIC MIDLINE SVARITA;Mn;1;NSM;;;;;N;;;;; +1CD5;VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;; +1CD6;VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;; +1CD7;VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;; +1CD8;VEDIC TONE CANDRA BELOW;Mn;220;NSM;;;;;N;;;;; +1CD9;VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER;Mn;220;NSM;;;;;N;;;;; +1CDA;VEDIC TONE DOUBLE SVARITA;Mn;230;NSM;;;;;N;;;;; +1CDB;VEDIC TONE TRIPLE SVARITA;Mn;230;NSM;;;;;N;;;;; +1CDC;VEDIC TONE KATHAKA ANUDATTA;Mn;220;NSM;;;;;N;;;;; +1CDD;VEDIC TONE DOT BELOW;Mn;220;NSM;;;;;N;;;;; +1CDE;VEDIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;; +1CDF;VEDIC TONE THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;; +1CE0;VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA;Mn;230;NSM;;;;;N;;;;; +1CE1;VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA;Mc;0;L;;;;;N;;;;; +1CE2;VEDIC SIGN VISARGA SVARITA;Mn;1;NSM;;;;;N;;;;; +1CE3;VEDIC SIGN VISARGA UDATTA;Mn;1;NSM;;;;;N;;;;; +1CE4;VEDIC SIGN REVERSED VISARGA UDATTA;Mn;1;NSM;;;;;N;;;;; +1CE5;VEDIC SIGN VISARGA ANUDATTA;Mn;1;NSM;;;;;N;;;;; +1CE6;VEDIC SIGN REVERSED VISARGA ANUDATTA;Mn;1;NSM;;;;;N;;;;; +1CE7;VEDIC SIGN VISARGA UDATTA WITH TAIL;Mn;1;NSM;;;;;N;;;;; +1CE8;VEDIC SIGN VISARGA ANUDATTA WITH TAIL;Mn;1;NSM;;;;;N;;;;; +1CE9;VEDIC SIGN ANUSVARA ANTARGOMUKHA;Lo;0;L;;;;;N;;;;; +1CEA;VEDIC SIGN ANUSVARA BAHIRGOMUKHA;Lo;0;L;;;;;N;;;;; +1CEB;VEDIC SIGN ANUSVARA VAMAGOMUKHA;Lo;0;L;;;;;N;;;;; +1CEC;VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL;Lo;0;L;;;;;N;;;;; +1CED;VEDIC SIGN TIRYAK;Mn;220;NSM;;;;;N;;;;; +1CEE;VEDIC SIGN HEXIFORM LONG ANUSVARA;Lo;0;L;;;;;N;;;;; +1CEF;VEDIC SIGN LONG ANUSVARA;Lo;0;L;;;;;N;;;;; +1CF0;VEDIC SIGN RTHANG LONG ANUSVARA;Lo;0;L;;;;;N;;;;; +1CF1;VEDIC SIGN ANUSVARA UBHAYATO MUKHA;Lo;0;L;;;;;N;;;;; +1CF2;VEDIC SIGN ARDHAVISARGA;Mc;0;L;;;;;N;;;;; +1CF3;VEDIC SIGN ROTATED ARDHAVISARGA;Mc;0;L;;;;;N;;;;; +1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;; +1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;; +1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;; +1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;; +1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;; +1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;; +1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;; +1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;; +1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;; +1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;; +1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;; +1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;; +1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;; +1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;; +1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;; +1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;; +1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;; +1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;; +1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;; +1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;; +1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;; +1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;; +1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;; +1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;; +1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;; +1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;; +1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;; +1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;; +1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;; +1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;; +1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;; +1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;; +1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;; +1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;; +1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;; +1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;; +1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;; +1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;; +1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;; +1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;; +1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;; +1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;; +1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;; +1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;; +1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;; +1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;; +1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;; +1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L;<super> 0041;;;;N;;;;; +1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L;<super> 00C6;;;;N;;;;; +1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L;<super> 0042;;;;N;;;;; +1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;; +1D30;MODIFIER LETTER CAPITAL D;Lm;0;L;<super> 0044;;;;N;;;;; +1D31;MODIFIER LETTER CAPITAL E;Lm;0;L;<super> 0045;;;;N;;;;; +1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L;<super> 018E;;;;N;;;;; +1D33;MODIFIER LETTER CAPITAL G;Lm;0;L;<super> 0047;;;;N;;;;; +1D34;MODIFIER LETTER CAPITAL H;Lm;0;L;<super> 0048;;;;N;;;;; +1D35;MODIFIER LETTER CAPITAL I;Lm;0;L;<super> 0049;;;;N;;;;; +1D36;MODIFIER LETTER CAPITAL J;Lm;0;L;<super> 004A;;;;N;;;;; +1D37;MODIFIER LETTER CAPITAL K;Lm;0;L;<super> 004B;;;;N;;;;; +1D38;MODIFIER LETTER CAPITAL L;Lm;0;L;<super> 004C;;;;N;;;;; +1D39;MODIFIER LETTER CAPITAL M;Lm;0;L;<super> 004D;;;;N;;;;; +1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L;<super> 004E;;;;N;;;;; +1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;; +1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L;<super> 004F;;;;N;;;;; +1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L;<super> 0222;;;;N;;;;; +1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L;<super> 0050;;;;N;;;;; +1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L;<super> 0052;;;;N;;;;; +1D40;MODIFIER LETTER CAPITAL T;Lm;0;L;<super> 0054;;;;N;;;;; +1D41;MODIFIER LETTER CAPITAL U;Lm;0;L;<super> 0055;;;;N;;;;; +1D42;MODIFIER LETTER CAPITAL W;Lm;0;L;<super> 0057;;;;N;;;;; +1D43;MODIFIER LETTER SMALL A;Lm;0;L;<super> 0061;;;;N;;;;; +1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L;<super> 0250;;;;N;;;;; +1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L;<super> 0251;;;;N;;;;; +1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L;<super> 1D02;;;;N;;;;; +1D47;MODIFIER LETTER SMALL B;Lm;0;L;<super> 0062;;;;N;;;;; +1D48;MODIFIER LETTER SMALL D;Lm;0;L;<super> 0064;;;;N;;;;; +1D49;MODIFIER LETTER SMALL E;Lm;0;L;<super> 0065;;;;N;;;;; +1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L;<super> 0259;;;;N;;;;; +1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L;<super> 025B;;;;N;;;;; +1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;; +1D4D;MODIFIER LETTER SMALL G;Lm;0;L;<super> 0067;;;;N;;;;; +1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;; +1D4F;MODIFIER LETTER SMALL K;Lm;0;L;<super> 006B;;;;N;;;;; +1D50;MODIFIER LETTER SMALL M;Lm;0;L;<super> 006D;;;;N;;;;; +1D51;MODIFIER LETTER SMALL ENG;Lm;0;L;<super> 014B;;;;N;;;;; +1D52;MODIFIER LETTER SMALL O;Lm;0;L;<super> 006F;;;;N;;;;; +1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L;<super> 0254;;;;N;;;;; +1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L;<super> 1D16;;;;N;;;;; +1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L;<super> 1D17;;;;N;;;;; +1D56;MODIFIER LETTER SMALL P;Lm;0;L;<super> 0070;;;;N;;;;; +1D57;MODIFIER LETTER SMALL T;Lm;0;L;<super> 0074;;;;N;;;;; +1D58;MODIFIER LETTER SMALL U;Lm;0;L;<super> 0075;;;;N;;;;; +1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L;<super> 1D1D;;;;N;;;;; +1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L;<super> 026F;;;;N;;;;; +1D5B;MODIFIER LETTER SMALL V;Lm;0;L;<super> 0076;;;;N;;;;; +1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L;<super> 1D25;;;;N;;;;; +1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L;<super> 03B2;;;;N;;;;; +1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L;<super> 03B3;;;;N;;;;; +1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;; +1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;; +1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;; +1D62;LATIN SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0069;;;;N;;;;; +1D63;LATIN SUBSCRIPT SMALL LETTER R;Lm;0;L;<sub> 0072;;;;N;;;;; +1D64;LATIN SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0075;;;;N;;;;; +1D65;LATIN SUBSCRIPT SMALL LETTER V;Lm;0;L;<sub> 0076;;;;N;;;;; +1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Lm;0;L;<sub> 03B2;;;;N;;;;; +1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Lm;0;L;<sub> 03B3;;;;N;;;;; +1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Lm;0;L;<sub> 03C1;;;;N;;;;; +1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Lm;0;L;<sub> 03C6;;;;N;;;;; +1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Lm;0;L;<sub> 03C7;;;;N;;;;; +1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;; +1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; +1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;; +1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L;<super> 043D;;;;N;;;;; +1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;A77D;;A77D +1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;; +1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;; +1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;; +1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63 +1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;; +1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;; +1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; +1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;; +1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; +1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L;<super> 0252;;;;N;;;;; +1D9C;MODIFIER LETTER SMALL C;Lm;0;L;<super> 0063;;;;N;;;;; +1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L;<super> 0255;;;;N;;;;; +1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L;<super> 00F0;;;;N;;;;; +1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;; +1DA0;MODIFIER LETTER SMALL F;Lm;0;L;<super> 0066;;;;N;;;;; +1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L;<super> 025F;;;;N;;;;; +1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L;<super> 0261;;;;N;;;;; +1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L;<super> 0265;;;;N;;;;; +1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L;<super> 0268;;;;N;;;;; +1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L;<super> 0269;;;;N;;;;; +1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L;<super> 026A;;;;N;;;;; +1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L;<super> 1D7B;;;;N;;;;; +1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L;<super> 029D;;;;N;;;;; +1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L;<super> 026D;;;;N;;;;; +1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L;<super> 1D85;;;;N;;;;; +1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L;<super> 029F;;;;N;;;;; +1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L;<super> 0271;;;;N;;;;; +1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L;<super> 0270;;;;N;;;;; +1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L;<super> 0272;;;;N;;;;; +1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L;<super> 0273;;;;N;;;;; +1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L;<super> 0274;;;;N;;;;; +1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L;<super> 0275;;;;N;;;;; +1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L;<super> 0278;;;;N;;;;; +1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L;<super> 0282;;;;N;;;;; +1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L;<super> 0283;;;;N;;;;; +1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L;<super> 01AB;;;;N;;;;; +1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L;<super> 0289;;;;N;;;;; +1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L;<super> 028A;;;;N;;;;; +1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L;<super> 1D1C;;;;N;;;;; +1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L;<super> 028B;;;;N;;;;; +1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L;<super> 028C;;;;N;;;;; +1DBB;MODIFIER LETTER SMALL Z;Lm;0;L;<super> 007A;;;;N;;;;; +1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L;<super> 0290;;;;N;;;;; +1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L;<super> 0291;;;;N;;;;; +1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L;<super> 0292;;;;N;;;;; +1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L;<super> 03B8;;;;N;;;;; +1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;; +1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;; +1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;; +1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;; +1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;; +1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;; +1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;; +1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;; +1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;; +1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;; +1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;; +1DCB;COMBINING BREVE-MACRON;Mn;230;NSM;;;;;N;;;;; +1DCC;COMBINING MACRON-BREVE;Mn;230;NSM;;;;;N;;;;; +1DCD;COMBINING DOUBLE CIRCUMFLEX ABOVE;Mn;234;NSM;;;;;N;;;;; +1DCE;COMBINING OGONEK ABOVE;Mn;214;NSM;;;;;N;;;;; +1DCF;COMBINING ZIGZAG BELOW;Mn;220;NSM;;;;;N;;;;; +1DD0;COMBINING IS BELOW;Mn;202;NSM;;;;;N;;;;; +1DD1;COMBINING UR ABOVE;Mn;230;NSM;;;;;N;;;;; +1DD2;COMBINING US ABOVE;Mn;230;NSM;;;;;N;;;;; +1DD3;COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE;Mn;230;NSM;;;;;N;;;;; +1DD4;COMBINING LATIN SMALL LETTER AE;Mn;230;NSM;;;;;N;;;;; +1DD5;COMBINING LATIN SMALL LETTER AO;Mn;230;NSM;;;;;N;;;;; +1DD6;COMBINING LATIN SMALL LETTER AV;Mn;230;NSM;;;;;N;;;;; +1DD7;COMBINING LATIN SMALL LETTER C CEDILLA;Mn;230;NSM;;;;;N;;;;; +1DD8;COMBINING LATIN SMALL LETTER INSULAR D;Mn;230;NSM;;;;;N;;;;; +1DD9;COMBINING LATIN SMALL LETTER ETH;Mn;230;NSM;;;;;N;;;;; +1DDA;COMBINING LATIN SMALL LETTER G;Mn;230;NSM;;;;;N;;;;; +1DDB;COMBINING LATIN LETTER SMALL CAPITAL G;Mn;230;NSM;;;;;N;;;;; +1DDC;COMBINING LATIN SMALL LETTER K;Mn;230;NSM;;;;;N;;;;; +1DDD;COMBINING LATIN SMALL LETTER L;Mn;230;NSM;;;;;N;;;;; +1DDE;COMBINING LATIN LETTER SMALL CAPITAL L;Mn;230;NSM;;;;;N;;;;; +1DDF;COMBINING LATIN LETTER SMALL CAPITAL M;Mn;230;NSM;;;;;N;;;;; +1DE0;COMBINING LATIN SMALL LETTER N;Mn;230;NSM;;;;;N;;;;; +1DE1;COMBINING LATIN LETTER SMALL CAPITAL N;Mn;230;NSM;;;;;N;;;;; +1DE2;COMBINING LATIN LETTER SMALL CAPITAL R;Mn;230;NSM;;;;;N;;;;; +1DE3;COMBINING LATIN SMALL LETTER R ROTUNDA;Mn;230;NSM;;;;;N;;;;; +1DE4;COMBINING LATIN SMALL LETTER S;Mn;230;NSM;;;;;N;;;;; +1DE5;COMBINING LATIN SMALL LETTER LONG S;Mn;230;NSM;;;;;N;;;;; +1DE6;COMBINING LATIN SMALL LETTER Z;Mn;230;NSM;;;;;N;;;;; +1DFC;COMBINING DOUBLE INVERTED BREVE BELOW;Mn;233;NSM;;;;;N;;;;; +1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;; +1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; +1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; +1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01; +1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00 +1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03; +1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02 +1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05; +1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04 +1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07; +1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06 +1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09; +1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08 +1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B; +1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A +1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D; +1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C +1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F; +1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E +1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11; +1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10 +1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13; +1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12 +1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15; +1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14 +1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17; +1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16 +1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19; +1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18 +1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B; +1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A +1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D; +1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C +1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F; +1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E +1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21; +1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20 +1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23; +1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22 +1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25; +1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24 +1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27; +1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26 +1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29; +1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28 +1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B; +1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A +1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D; +1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C +1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F; +1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E +1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31; +1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30 +1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33; +1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32 +1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35; +1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34 +1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37; +1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36 +1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39; +1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38 +1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B; +1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A +1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D; +1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C +1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F; +1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E +1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41; +1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40 +1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43; +1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42 +1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45; +1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44 +1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47; +1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46 +1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49; +1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48 +1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B; +1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A +1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D; +1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C +1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F; +1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E +1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51; +1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50 +1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53; +1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52 +1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55; +1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54 +1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57; +1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56 +1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59; +1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58 +1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B; +1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A +1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D; +1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C +1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F; +1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E +1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61; +1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60 +1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63; +1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62 +1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65; +1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64 +1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67; +1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66 +1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69; +1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68 +1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B; +1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A +1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D; +1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C +1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F; +1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E +1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71; +1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70 +1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73; +1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72 +1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75; +1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74 +1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77; +1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76 +1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79; +1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78 +1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B; +1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A +1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D; +1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C +1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F; +1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E +1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81; +1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80 +1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83; +1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82 +1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85; +1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84 +1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87; +1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86 +1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89; +1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88 +1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B; +1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A +1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D; +1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C +1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F; +1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E +1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91; +1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90 +1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93; +1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92 +1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95; +1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94 +1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;; +1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;; +1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;; +1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;; +1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;; +1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60 +1E9C;LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;;; +1E9D;LATIN SMALL LETTER LONG S WITH HIGH STROKE;Ll;0;L;;;;;N;;;;; +1E9E;LATIN CAPITAL LETTER SHARP S;Lu;0;L;;;;;N;;;;00DF; +1E9F;LATIN SMALL LETTER DELTA;Ll;0;L;;;;;N;;;;; +1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1; +1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0 +1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3; +1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2 +1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5; +1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4 +1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7; +1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6 +1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9; +1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8 +1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB; +1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA +1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD; +1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC +1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF; +1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE +1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1; +1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0 +1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3; +1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2 +1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5; +1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4 +1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7; +1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6 +1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9; +1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8 +1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB; +1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA +1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD; +1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC +1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF; +1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE +1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1; +1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0 +1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3; +1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2 +1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5; +1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4 +1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7; +1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6 +1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9; +1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8 +1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB; +1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA +1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD; +1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC +1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF; +1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE +1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1; +1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0 +1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3; +1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2 +1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5; +1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4 +1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7; +1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6 +1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9; +1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8 +1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB; +1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA +1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD; +1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC +1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF; +1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE +1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1; +1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0 +1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3; +1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2 +1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5; +1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4 +1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7; +1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6 +1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9; +1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8 +1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB; +1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA +1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED; +1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC +1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF; +1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE +1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1; +1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0 +1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3; +1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2 +1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5; +1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4 +1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7; +1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6 +1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9; +1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8 +1EFA;LATIN CAPITAL LETTER MIDDLE-WELSH LL;Lu;0;L;;;;;N;;;;1EFB; +1EFB;LATIN SMALL LETTER MIDDLE-WELSH LL;Ll;0;L;;;;;N;;;1EFA;;1EFA +1EFC;LATIN CAPITAL LETTER MIDDLE-WELSH V;Lu;0;L;;;;;N;;;;1EFD; +1EFD;LATIN SMALL LETTER MIDDLE-WELSH V;Ll;0;L;;;;;N;;;1EFC;;1EFC +1EFE;LATIN CAPITAL LETTER Y WITH LOOP;Lu;0;L;;;;;N;;;;1EFF; +1EFF;LATIN SMALL LETTER Y WITH LOOP;Ll;0;L;;;;;N;;;1EFE;;1EFE +1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08 +1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09 +1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A +1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B +1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C +1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D +1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E +1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F +1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00; +1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01; +1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02; +1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03; +1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04; +1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05; +1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06; +1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07; +1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18 +1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19 +1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A +1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B +1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C +1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D +1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10; +1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11; +1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12; +1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13; +1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14; +1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15; +1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28 +1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29 +1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A +1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B +1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C +1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D +1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E +1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F +1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20; +1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21; +1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22; +1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23; +1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24; +1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25; +1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26; +1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27; +1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38 +1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39 +1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A +1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B +1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C +1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D +1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E +1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F +1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30; +1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31; +1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32; +1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33; +1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34; +1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35; +1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36; +1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37; +1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48 +1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49 +1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A +1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B +1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C +1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D +1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40; +1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41; +1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42; +1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43; +1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44; +1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45; +1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;; +1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59 +1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;; +1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B +1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;; +1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D +1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;; +1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F +1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51; +1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53; +1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55; +1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57; +1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68 +1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69 +1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A +1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B +1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C +1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D +1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E +1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F +1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60; +1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61; +1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62; +1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63; +1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64; +1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65; +1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66; +1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67; +1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA +1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB +1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8 +1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9 +1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA +1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB +1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA +1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB +1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8 +1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9 +1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA +1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB +1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA +1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB +1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88 +1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89 +1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A +1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B +1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C +1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D +1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E +1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F +1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80; +1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81; +1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82; +1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83; +1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84; +1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85; +1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86; +1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87; +1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98 +1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99 +1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A +1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B +1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C +1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D +1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E +1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F +1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90; +1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91; +1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92; +1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93; +1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94; +1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95; +1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96; +1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97; +1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8 +1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9 +1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA +1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB +1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC +1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD +1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE +1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF +1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0; +1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1; +1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2; +1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3; +1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4; +1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5; +1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6; +1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7; +1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8 +1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9 +1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;; +1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC +1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;; +1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;; +1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;; +1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0; +1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1; +1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70; +1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71; +1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3; +1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;; +1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399 +1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;; +1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;; +1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;; +1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;; +1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC +1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;; +1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;; +1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;; +1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72; +1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73; +1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74; +1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75; +1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3; +1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;; +1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;; +1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;; +1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8 +1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9 +1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;; +1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;; +1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;; +1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;; +1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0; +1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1; +1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76; +1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77; +1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;; +1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;; +1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;; +1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8 +1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9 +1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;; +1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;; +1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;; +1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC +1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;; +1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;; +1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0; +1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1; +1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A; +1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B; +1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5; +1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;; +1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;; +1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;; +1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;; +1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC +1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;; +1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;; +1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;; +1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78; +1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79; +1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C; +1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D; +1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3; +1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;; +1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;; +2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;; +2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;; +2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;; +2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;; +200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;; +200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;; +200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;; +200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;; +2010;HYPHEN;Pd;0;ON;;;;;N;;;;; +2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;; +2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;; +2013;EN DASH;Pd;0;ON;;;;;N;;;;; +2014;EM DASH;Pd;0;ON;;;;;N;;;;; +2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;; +2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;; +2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;; +2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;; +2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;; +201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;; +201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;; +201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;; +201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;; +201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;; +201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;; +2020;DAGGER;Po;0;ON;;;;;N;;;;; +2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;; +2022;BULLET;Po;0;ON;;;;;N;;;;; +2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;; +2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;; +2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;; +2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;; +2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;; +2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;; +2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;; +202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;; +202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;; +202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;; +202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;; +202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;; +202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;; +2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;; +2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;; +2032;PRIME;Po;0;ET;;;;;N;;;;; +2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;; +2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;; +2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;; +2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;; +2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;; +2038;CARET;Po;0;ON;;;;;N;;;;; +2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;; +203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;; +203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;; +203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;; +203D;INTERROBANG;Po;0;ON;;;;;N;;;;; +203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;; +203F;UNDERTIE;Pc;0;ON;;;;;N;;;;; +2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;; +2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;; +2042;ASTERISM;Po;0;ON;;;;;N;;;;; +2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;; +2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;; +2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;; +2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;; +2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;; +2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;; +2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;; +204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;; +204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;; +204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;; +204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;; +204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;; +204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;; +2050;CLOSE UP;Po;0;ON;;;;;N;;;;; +2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;; +2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;; +2053;SWUNG DASH;Po;0;ON;;;;;N;;;;; +2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;; +2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;; +2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;; +2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;; +205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;; +205D;TRICOLON;Po;0;ON;;;;;N;;;;; +205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;; +205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;; +2060;WORD JOINER;Cf;0;BN;;;;;N;;;;; +2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;; +2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; +2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; +2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;; +206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; +206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; +206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; +206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; +206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; +206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; +2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;; +2071;SUPERSCRIPT LATIN SMALL LETTER I;Lm;0;L;<super> 0069;;;;N;;;;; +2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;; +2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;; +2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;; +2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;; +2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;; +2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;; +207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES;<super> 002B;;;;N;;;;; +207B;SUPERSCRIPT MINUS;Sm;0;ES;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;; +207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;; +207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;; +207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;; +207F;SUPERSCRIPT LATIN SMALL LETTER N;Lm;0;L;<super> 006E;;;;N;;;;; +2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;; +2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;; +2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;; +2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;; +2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;; +2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;; +2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;; +2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;; +2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;; +2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;; +208A;SUBSCRIPT PLUS SIGN;Sm;0;ES;<sub> 002B;;;;N;;;;; +208B;SUBSCRIPT MINUS;Sm;0;ES;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;; +208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;; +208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;; +208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;; +2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0061;;;;N;;;;; +2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L;<sub> 0065;;;;N;;;;; +2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 006F;;;;N;;;;; +2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L;<sub> 0078;;;;N;;;;; +2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L;<sub> 0259;;;;N;;;;; +2095;LATIN SUBSCRIPT SMALL LETTER H;Lm;0;L;<sub> 0068;;;;N;;;;; +2096;LATIN SUBSCRIPT SMALL LETTER K;Lm;0;L;<sub> 006B;;;;N;;;;; +2097;LATIN SUBSCRIPT SMALL LETTER L;Lm;0;L;<sub> 006C;;;;N;;;;; +2098;LATIN SUBSCRIPT SMALL LETTER M;Lm;0;L;<sub> 006D;;;;N;;;;; +2099;LATIN SUBSCRIPT SMALL LETTER N;Lm;0;L;<sub> 006E;;;;N;;;;; +209A;LATIN SUBSCRIPT SMALL LETTER P;Lm;0;L;<sub> 0070;;;;N;;;;; +209B;LATIN SUBSCRIPT SMALL LETTER S;Lm;0;L;<sub> 0073;;;;N;;;;; +209C;LATIN SUBSCRIPT SMALL LETTER T;Lm;0;L;<sub> 0074;;;;N;;;;; +20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; +20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;; +20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;; +20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;; +20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;; +20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;; +20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;; +20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;; +20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;; +20A9;WON SIGN;Sc;0;ET;;;;;N;;;;; +20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;; +20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;; +20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;; +20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;; +20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;; +20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;; +20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;; +20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;; +20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;; +20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;; +20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;; +20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;; +20B6;LIVRE TOURNOIS SIGN;Sc;0;ET;;;;;N;;;;; +20B7;SPESMILO SIGN;Sc;0;ET;;;;;N;;;;; +20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;; +20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;; +20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;; +20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;; +20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;; +20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;; +20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;; +20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;; +20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;; +20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;; +20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;; +20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;; +20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;; +20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;; +20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;; +20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;; +20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;; +20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;; +20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;; +20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;; +20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;; +20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;; +20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;; +20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;; +20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;; +20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;; +20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;; +20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;; +20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; +20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;; +20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;; +20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;; +20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;; +20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; +20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; +20F0;COMBINING ASTERISK ABOVE;Mn;230;NSM;;;;;N;;;;; +2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;; +2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;; +2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;; +2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;; +2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;; +2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;; +2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;; +2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;; +2108;SCRUPLE;So;0;ON;;;;;N;;;;; +2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;; +210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;; +210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;; +210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;; +210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;; +210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;; +2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;; +2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;; +2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;; +2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;; +2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;; +2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;; +2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;; +2118;SCRIPT CAPITAL P;Sm;0;ON;;;;;N;SCRIPT P;;;; +2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;; +211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;; +211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;; +211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;; +211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;; +211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;; +211F;RESPONSE;So;0;ON;;;;;N;;;;; +2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;; +2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;; +2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;; +2123;VERSICLE;So;0;ON;;;;;N;;;;; +2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;; +2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;; +2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9; +2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;; +2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;; +2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;; +212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B; +212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5; +212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;; +212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;; +212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;; +212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;; +2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;; +2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E; +2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;; +2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;; +2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;; +2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;; +2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;; +2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;; +213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;; +213B;FACSIMILE SIGN;So;0;ON;<compat> 0046 0041 0058;;;;N;;;;; +213C;DOUBLE-STRUCK SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;; +213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;; +213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;; +213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;; +2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;; +2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;; +2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; +2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; +2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;; +2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +214A;PROPERTY LINE;So;0;ON;;;;;N;;;;; +214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;; +214C;PER SIGN;So;0;ON;;;;;N;;;;; +214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;; +214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132 +214F;SYMBOL FOR SAMARITAN SOURCE;So;0;L;;;;;N;;;;; +2150;VULGAR FRACTION ONE SEVENTH;No;0;ON;<fraction> 0031 2044 0037;;;1/7;N;;;;; +2151;VULGAR FRACTION ONE NINTH;No;0;ON;<fraction> 0031 2044 0039;;;1/9;N;;;;; +2152;VULGAR FRACTION ONE TENTH;No;0;ON;<fraction> 0031 2044 0031 0030;;;1/10;N;;;;; +2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;; +2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;; +2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;; +2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;; +2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;; +2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;; +2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;; +215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;; +215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;; +215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;; +215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;; +215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;; +215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;; +2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170; +2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171; +2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172; +2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173; +2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174; +2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175; +2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176; +2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177; +2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178; +2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179; +216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A; +216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B; +216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C; +216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D; +216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E; +216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F; +2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160 +2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161 +2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162 +2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163 +2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164 +2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165 +2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166 +2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167 +2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168 +2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169 +217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A +217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B +217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C +217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D +217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E +217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F +2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;; +2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;; +2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;; +2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184; +2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183 +2185;ROMAN NUMERAL SIX LATE FORM;Nl;0;L;;;;6;N;;;;; +2186;ROMAN NUMERAL FIFTY EARLY FORM;Nl;0;L;;;;50;N;;;;; +2187;ROMAN NUMERAL FIFTY THOUSAND;Nl;0;L;;;;50000;N;;;;; +2188;ROMAN NUMERAL ONE HUNDRED THOUSAND;Nl;0;L;;;;100000;N;;;;; +2189;VULGAR FRACTION ZERO THIRDS;No;0;ON;<fraction> 0030 2044 0033;;;0;N;;;;; +2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;; +2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;; +2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;; +2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;; +2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; +2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;; +2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;; +2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;; +2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;; +2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;; +219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;; +219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;; +219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;; +219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;; +219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;; +219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;; +21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;; +21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;; +21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;; +21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;; +21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;; +21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;; +21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;; +21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;; +21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;; +21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;; +21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;; +21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;; +21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;; +21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;; +21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;; +21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;; +21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;; +21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;; +21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;; +21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;; +21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;; +21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;; +21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; +21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; +21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;; +21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;; +21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; +21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; +21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;; +21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;; +21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;; +21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;; +21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;; +21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;; +21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;; +21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;; +21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;; +21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;; +21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;; +21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;; +21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;; +21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;; +21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;; +21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;; +21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;; +21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;; +21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;; +21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;; +21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;; +21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;; +21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;; +21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;; +21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; +21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;; +21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;; +21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;; +21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;; +21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;; +21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;; +21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;; +21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;; +21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;; +21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;; +21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;; +21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;; +21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;; +21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;; +21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;; +21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;; +21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;; +21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;; +21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;; +21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;; +21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;; +21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;; +21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; +21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;; +21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;; +21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;; +21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; +21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;; +21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;; +21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;; +21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;; +21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; +21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;; +21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;; +21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; +21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; +21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; +2200;FOR ALL;Sm;0;ON;;;;;N;;;;; +2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;; +2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;; +2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;; +2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;; +2205;EMPTY SET;Sm;0;ON;;;;;N;;;;; +2206;INCREMENT;Sm;0;ON;;;;;N;;;;; +2207;NABLA;Sm;0;ON;;;;;N;;;;; +2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;; +2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;; +220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;; +220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; +220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;; +220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; +220E;END OF PROOF;Sm;0;ON;;;;;N;;;;; +220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;; +2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;; +2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;; +2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;; +2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;; +2214;DOT PLUS;Sm;0;ON;;;;;N;;;;; +2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; +2216;SET MINUS;Sm;0;ON;;;;;Y;;;;; +2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; +2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;; +2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;; +221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;; +221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;; +221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;; +221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;; +221E;INFINITY;Sm;0;ON;;;;;N;;;;; +221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;; +2220;ANGLE;Sm;0;ON;;;;;Y;;;;; +2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;; +2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;; +2223;DIVIDES;Sm;0;ON;;;;;N;;;;; +2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;; +2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;; +2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;; +2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;; +2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;; +2229;INTERSECTION;Sm;0;ON;;;;;N;;;;; +222A;UNION;Sm;0;ON;;;;;N;;;;; +222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;; +222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;; +222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;; +222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; +222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;; +2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;; +2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2234;THEREFORE;Sm;0;ON;;;;;N;;;;; +2235;BECAUSE;Sm;0;ON;;;;;N;;;;; +2236;RATIO;Sm;0;ON;;;;;N;;;;; +2237;PROPORTION;Sm;0;ON;;;;;N;;;;; +2238;DOT MINUS;Sm;0;ON;;;;;N;;;;; +2239;EXCESS;Sm;0;ON;;;;;Y;;;;; +223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;; +223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;; +223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; +223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;;;; +223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;; +223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;; +2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;; +2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;; +2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;; +2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;; +2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;; +2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;; +224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;; +224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;; +224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; +224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; +224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;; +2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;; +2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;; +2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;; +2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;; +2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;; +2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;; +2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;; +2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;; +2259;ESTIMATES;Sm;0;ON;;;;;N;;;;; +225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;; +225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;; +225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;; +225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;; +225E;MEASURED BY;Sm;0;ON;;;;;N;;;;; +225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;; +2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;; +2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;; +2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; +2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;; +2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;; +2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;; +2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;; +2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;; +2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;; +226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;; +226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;; +226C;BETWEEN;Sm;0;ON;;;;;N;;;;; +226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;; +226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;; +226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;; +2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;; +2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;; +2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;; +2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;; +2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;; +2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;; +2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;; +2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;; +2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;; +2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;; +227A;PRECEDES;Sm;0;ON;;;;;Y;;;;; +227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;; +227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; +227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; +2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;; +2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;; +2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;; +2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;; +2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;; +2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;; +2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;; +2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;; +228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;; +228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;; +228C;MULTISET;Sm;0;ON;;;;;Y;;;;; +228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;; +228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;; +228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;; +2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; +2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;; +2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;; +2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; +2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;; +2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;; +2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; +2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; +229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;; +229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; +229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;; +229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;; +229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;; +229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;; +22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;; +22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; +22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;; +22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;; +22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;; +22A5;UP TACK;Sm;0;ON;;;;;N;;;;; +22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;; +22A7;MODELS;Sm;0;ON;;;;;Y;;;;; +22A8;TRUE;Sm;0;ON;;;;;Y;;;;; +22A9;FORCES;Sm;0;ON;;;;;Y;;;;; +22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; +22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; +22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;; +22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;; +22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;; +22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;; +22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;; +22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;; +22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;; +22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;; +22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; +22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;; +22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;; +22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;; +22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;; +22BB;XOR;Sm;0;ON;;;;;N;;;;; +22BC;NAND;Sm;0;ON;;;;;N;;;;; +22BD;NOR;Sm;0;ON;;;;;N;;;;; +22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;; +22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; +22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;; +22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;; +22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;; +22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;; +22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;; +22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;; +22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;; +22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;; +22C8;BOWTIE;Sm;0;ON;;;;;N;;;;; +22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; +22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; +22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; +22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; +22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;; +22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;; +22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;; +22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;; +22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;; +22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;; +22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;; +22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;; +22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;; +22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;; +22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;; +22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;; +22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;; +22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;; +22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;; +22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;; +22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;; +22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;; +22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;; +22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;; +22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;; +22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;; +22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;; +22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;; +22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;; +22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; +22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; +22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;; +22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;; +22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;; +22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;; +22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; +22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; +22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; +22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; +22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; +22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; +22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; +22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;; +22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; +22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; +22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;; +2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;; +2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;; +2302;HOUSE;So;0;ON;;;;;N;;;;; +2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;; +2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;; +2305;PROJECTIVE;So;0;ON;;;;;N;;;;; +2306;PERSPECTIVE;So;0;ON;;;;;N;;;;; +2307;WAVY LINE;So;0;ON;;;;;N;;;;; +2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;; +2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;; +230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;; +230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;; +230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; +230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; +230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; +230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;; +2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;; +2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;; +2312;ARC;So;0;ON;;;;;N;;;;; +2313;SEGMENT;So;0;ON;;;;;N;;;;; +2314;SECTOR;So;0;ON;;;;;N;;;;; +2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;; +2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;; +2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;; +2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;; +2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;; +231A;WATCH;So;0;ON;;;;;N;;;;; +231B;HOURGLASS;So;0;ON;;;;;N;;;;; +231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;; +231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;; +231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;; +231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;; +2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2322;FROWN;So;0;ON;;;;;N;;;;; +2323;SMILE;So;0;ON;;;;;N;;;;; +2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;; +2325;OPTION KEY;So;0;ON;;;;;N;;;;; +2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;; +2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;; +2328;KEYBOARD;So;0;ON;;;;;N;;;;; +2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;; +232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;; +232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;; +232C;BENZENE RING;So;0;ON;;;;;N;;;;; +232D;CYLINDRICITY;So;0;ON;;;;;N;;;;; +232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;; +232F;SYMMETRY;So;0;ON;;;;;N;;;;; +2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;; +2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;; +2332;CONICAL TAPER;So;0;ON;;;;;N;;;;; +2333;SLOPE;So;0;ON;;;;;N;;;;; +2334;COUNTERBORE;So;0;ON;;;;;N;;;;; +2335;COUNTERSINK;So;0;ON;;;;;N;;;;; +2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;; +2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;; +2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;; +2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;; +233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;; +233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;; +233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;; +233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;; +233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;; +233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;; +2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;; +2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;; +2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;; +2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;; +2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;; +2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;; +2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;; +2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;; +2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;; +2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;; +234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;;;; +234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;; +234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;; +234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;; +234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;;;; +234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;; +2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;; +2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;;;; +2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;; +2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;; +2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;; +2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;;;; +2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;; +2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;; +2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;; +2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;; +235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;; +235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;; +235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;; +235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;; +235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;; +235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;; +2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;; +2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;;;; +2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;; +2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;; +2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;; +2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;; +2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;; +2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;; +2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;; +2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;; +236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;; +236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;; +236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;; +236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;; +236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;; +236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;; +2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;; +2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;; +2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;; +2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;; +2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;; +2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;; +2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;; +2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;; +2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;; +2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;; +237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;; +237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;; +237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;; +237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;; +237E;BELL SYMBOL;So;0;ON;;;;;N;;;;; +237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;; +2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;; +2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; +2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; +2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;; +2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;; +2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;; +2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;; +2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;; +2388;HELM SYMBOL;So;0;ON;;;;;N;;;;; +2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;;;; +238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;;;; +238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;;;; +238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;; +238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;; +238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;; +238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;; +2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;; +2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; +2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; +2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;; +2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;; +2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;; +2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;; +2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;; +2398;NEXT PAGE;So;0;ON;;;;;N;;;;; +2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;; +239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;; +239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; +239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; +239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; +239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; +239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; +23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; +23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; +23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; +23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; +23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; +23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; +23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; +23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; +23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; +23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; +23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; +23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; +23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; +23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; +23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;; +23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;; +23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; +23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; +23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;; +23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;; +23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;; +23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;; +23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;; +23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;; +23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; +23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; +23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;; +23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;; +23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;; +23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;; +23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;; +23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;; +23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;; +23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; +23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; +23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; +23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; +23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; +23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;; +23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; +23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; +23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;; +23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;; +23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;; +23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;; +23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;; +23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;; +23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;; +23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;; +23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;; +23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;; +23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;; +23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;; +23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;; +23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;; +23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;; +23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;; +23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;; +23DA;EARTH GROUND;So;0;ON;;;;;N;;;;; +23DB;FUSE;So;0;ON;;;;;N;;;;; +23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;;;; +23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;;;; +23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;;;; +23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;;;; +23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;;;; +23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;;;; +23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;; +23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;; +23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;; +23E5;FLATNESS;So;0;ON;;;;;N;;;;; +23E6;AC CURRENT;So;0;ON;;;;;N;;;;; +23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;; +23E8;DECIMAL EXPONENT SYMBOL;So;0;ON;;;;;N;;;;; +23E9;BLACK RIGHT-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;; +23EA;BLACK LEFT-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;; +23EB;BLACK UP-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;; +23EC;BLACK DOWN-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;; +23ED;BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;So;0;ON;;;;;N;;;;; +23EE;BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;So;0;ON;;;;;N;;;;; +23EF;BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR;So;0;ON;;;;;N;;;;; +23F0;ALARM CLOCK;So;0;ON;;;;;N;;;;; +23F1;STOPWATCH;So;0;ON;;;;;N;;;;; +23F2;TIMER CLOCK;So;0;ON;;;;;N;;;;; +23F3;HOURGLASS WITH FLOWING SAND;So;0;ON;;;;;N;;;;; +2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;; +2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;; +2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;; +2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;; +2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;; +2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;; +2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;; +2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;; +2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;; +2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;; +240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;; +240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;; +240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;; +240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;; +240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;; +240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;; +2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;; +2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;; +2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;; +2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;; +2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;; +2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;; +2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;; +2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;; +2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;; +2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;; +241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;; +241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;; +241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;; +241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;; +241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;; +241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;; +2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;; +2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;; +2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;; +2423;OPEN BOX;So;0;ON;;;;;N;;;;; +2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;; +2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;; +2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;; +2440;OCR HOOK;So;0;ON;;;;;N;;;;; +2441;OCR CHAIR;So;0;ON;;;;;N;;;;; +2442;OCR FORK;So;0;ON;;;;;N;;;;; +2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;; +2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;; +2445;OCR BOW TIE;So;0;ON;;;;;N;;;;; +2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;; +2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;; +2448;OCR DASH;So;0;ON;;;;;N;;;;; +2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;; +244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;; +2460;CIRCLED DIGIT ONE;No;0;ON;<circle> 0031;;1;1;N;;;;; +2461;CIRCLED DIGIT TWO;No;0;ON;<circle> 0032;;2;2;N;;;;; +2462;CIRCLED DIGIT THREE;No;0;ON;<circle> 0033;;3;3;N;;;;; +2463;CIRCLED DIGIT FOUR;No;0;ON;<circle> 0034;;4;4;N;;;;; +2464;CIRCLED DIGIT FIVE;No;0;ON;<circle> 0035;;5;5;N;;;;; +2465;CIRCLED DIGIT SIX;No;0;ON;<circle> 0036;;6;6;N;;;;; +2466;CIRCLED DIGIT SEVEN;No;0;ON;<circle> 0037;;7;7;N;;;;; +2467;CIRCLED DIGIT EIGHT;No;0;ON;<circle> 0038;;8;8;N;;;;; +2468;CIRCLED DIGIT NINE;No;0;ON;<circle> 0039;;9;9;N;;;;; +2469;CIRCLED NUMBER TEN;No;0;ON;<circle> 0031 0030;;;10;N;;;;; +246A;CIRCLED NUMBER ELEVEN;No;0;ON;<circle> 0031 0031;;;11;N;;;;; +246B;CIRCLED NUMBER TWELVE;No;0;ON;<circle> 0031 0032;;;12;N;;;;; +246C;CIRCLED NUMBER THIRTEEN;No;0;ON;<circle> 0031 0033;;;13;N;;;;; +246D;CIRCLED NUMBER FOURTEEN;No;0;ON;<circle> 0031 0034;;;14;N;;;;; +246E;CIRCLED NUMBER FIFTEEN;No;0;ON;<circle> 0031 0035;;;15;N;;;;; +246F;CIRCLED NUMBER SIXTEEN;No;0;ON;<circle> 0031 0036;;;16;N;;;;; +2470;CIRCLED NUMBER SEVENTEEN;No;0;ON;<circle> 0031 0037;;;17;N;;;;; +2471;CIRCLED NUMBER EIGHTEEN;No;0;ON;<circle> 0031 0038;;;18;N;;;;; +2472;CIRCLED NUMBER NINETEEN;No;0;ON;<circle> 0031 0039;;;19;N;;;;; +2473;CIRCLED NUMBER TWENTY;No;0;ON;<circle> 0032 0030;;;20;N;;;;; +2474;PARENTHESIZED DIGIT ONE;No;0;ON;<compat> 0028 0031 0029;;1;1;N;;;;; +2475;PARENTHESIZED DIGIT TWO;No;0;ON;<compat> 0028 0032 0029;;2;2;N;;;;; +2476;PARENTHESIZED DIGIT THREE;No;0;ON;<compat> 0028 0033 0029;;3;3;N;;;;; +2477;PARENTHESIZED DIGIT FOUR;No;0;ON;<compat> 0028 0034 0029;;4;4;N;;;;; +2478;PARENTHESIZED DIGIT FIVE;No;0;ON;<compat> 0028 0035 0029;;5;5;N;;;;; +2479;PARENTHESIZED DIGIT SIX;No;0;ON;<compat> 0028 0036 0029;;6;6;N;;;;; +247A;PARENTHESIZED DIGIT SEVEN;No;0;ON;<compat> 0028 0037 0029;;7;7;N;;;;; +247B;PARENTHESIZED DIGIT EIGHT;No;0;ON;<compat> 0028 0038 0029;;8;8;N;;;;; +247C;PARENTHESIZED DIGIT NINE;No;0;ON;<compat> 0028 0039 0029;;9;9;N;;;;; +247D;PARENTHESIZED NUMBER TEN;No;0;ON;<compat> 0028 0031 0030 0029;;;10;N;;;;; +247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON;<compat> 0028 0031 0031 0029;;;11;N;;;;; +247F;PARENTHESIZED NUMBER TWELVE;No;0;ON;<compat> 0028 0031 0032 0029;;;12;N;;;;; +2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON;<compat> 0028 0031 0033 0029;;;13;N;;;;; +2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON;<compat> 0028 0031 0034 0029;;;14;N;;;;; +2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON;<compat> 0028 0031 0035 0029;;;15;N;;;;; +2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON;<compat> 0028 0031 0036 0029;;;16;N;;;;; +2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON;<compat> 0028 0031 0037 0029;;;17;N;;;;; +2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON;<compat> 0028 0031 0038 0029;;;18;N;;;;; +2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON;<compat> 0028 0031 0039 0029;;;19;N;;;;; +2487;PARENTHESIZED NUMBER TWENTY;No;0;ON;<compat> 0028 0032 0030 0029;;;20;N;;;;; +2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;; +2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;; +248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;; +248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;; +248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;; +248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;; +248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;; +248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;; +2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;; +2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;; +2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;; +2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;; +2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;; +2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;; +2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;; +2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;; +2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;; +2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;; +249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;; +249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;; +249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;; +249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;; +249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;; +249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;; +24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;; +24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;; +24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;; +24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;; +24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;; +24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;; +24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;; +24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;; +24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;; +24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;; +24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;; +24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;; +24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;; +24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;; +24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;; +24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;; +24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;; +24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;; +24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;; +24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;; +24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;; +24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;; +24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0; +24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1; +24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2; +24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3; +24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4; +24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5; +24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6; +24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7; +24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8; +24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9; +24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA; +24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB; +24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC; +24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD; +24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE; +24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF; +24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0; +24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1; +24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2; +24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3; +24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4; +24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5; +24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6; +24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7; +24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8; +24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9; +24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6 +24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7 +24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8 +24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9 +24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA +24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB +24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC +24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD +24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE +24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF +24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0 +24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1 +24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2 +24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3 +24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4 +24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5 +24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6 +24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7 +24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8 +24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9 +24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA +24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB +24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC +24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD +24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE +24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF +24EA;CIRCLED DIGIT ZERO;No;0;ON;<circle> 0030;;0;0;N;;;;; +24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;; +24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;; +24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;; +24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;; +24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;; +24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;; +24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;; +24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;; +24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;; +24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;; +24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;; +24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;; +24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;; +24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;; +24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;; +24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;; +24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;; +24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;; +24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;; +24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;; +24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;; +2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;; +2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;; +2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;; +2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;; +2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;; +2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;; +2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;; +2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;; +2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;; +2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;; +250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;; +250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;; +250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;; +250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;; +250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;; +250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;; +2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;; +2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;; +2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;; +2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;; +2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;; +2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;; +2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;; +2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;; +2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;; +2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;; +251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;; +251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;; +251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;; +251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;; +251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;; +251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;; +2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;; +2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;; +2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;; +2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;; +2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;; +2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;; +2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;; +2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;; +2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;; +2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;; +252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;; +252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;; +252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;; +252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;; +252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;; +252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;; +2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;; +2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;; +2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;; +2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;; +2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;; +2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;; +2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;; +2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;; +2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;; +2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;; +253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;; +253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;; +253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;; +253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;; +253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;; +253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;; +2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;; +2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;; +2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;; +2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;; +2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;; +2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;; +2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;; +2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;; +2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;; +2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;; +254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;; +254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;; +254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;; +254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;; +254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;; +254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;; +2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;; +2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;; +2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;; +2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;; +2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;; +2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;; +2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;; +2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;; +2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;; +2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;; +255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;; +255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;; +255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;; +255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;; +255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;; +255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;; +2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;; +2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;; +2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;; +2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;; +2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;; +2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;; +2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;; +2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;; +2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;; +2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;; +256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;; +256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;; +256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;; +256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;; +256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;; +256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;; +2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;; +2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;; +2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;; +2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;; +2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;; +2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;; +2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;; +2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;; +2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;; +2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;; +257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;; +257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;; +257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;; +257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;; +257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;; +257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;; +2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;; +2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; +2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; +2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;; +2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; +2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;; +2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; +2588;FULL BLOCK;So;0;ON;;;;;N;;;;; +2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; +258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;; +258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; +258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;; +258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; +258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; +2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;; +2591;LIGHT SHADE;So;0;ON;;;;;N;;;;; +2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;; +2593;DARK SHADE;So;0;ON;;;;;N;;;;; +2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; +2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; +2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;; +2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;; +2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;; +2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; +259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; +259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; +259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; +259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;; +259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; +259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; +25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;; +25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;; +25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;; +25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; +25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;; +25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; +25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; +25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;; +25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;; +25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; +25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; +25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;; +25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;; +25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;; +25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; +25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; +25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;; +25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;; +25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;; +25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;; +25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;; +25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;; +25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;; +25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;; +25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;; +25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;; +25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;; +25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;; +25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;; +25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;; +25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;; +25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;; +25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;; +25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;; +25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;; +25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;; +25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;; +25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;; +25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;; +25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;; +25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;; +25C9;FISHEYE;So;0;ON;;;;;N;;;;; +25CA;LOZENGE;So;0;ON;;;;;N;;;;; +25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;; +25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;; +25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; +25CE;BULLSEYE;So;0;ON;;;;;N;;;;; +25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;; +25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; +25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; +25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;; +25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;; +25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;; +25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;; +25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; +25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; +25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;; +25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; +25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; +25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; +25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; +25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; +25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; +25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; +25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;; +25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;; +25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; +25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; +25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; +25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; +25E6;WHITE BULLET;So;0;ON;;;;;N;;;;; +25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; +25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; +25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; +25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; +25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;; +25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;; +25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;; +25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;; +25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;; +25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; +25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; +25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; +25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; +25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; +25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; +25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; +25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; +25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; +25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; +25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; +25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; +25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; +25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; +25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; +25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; +2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;; +2601;CLOUD;So;0;ON;;;;;N;;;;; +2602;UMBRELLA;So;0;ON;;;;;N;;;;; +2603;SNOWMAN;So;0;ON;;;;;N;;;;; +2604;COMET;So;0;ON;;;;;N;;;;; +2605;BLACK STAR;So;0;ON;;;;;N;;;;; +2606;WHITE STAR;So;0;ON;;;;;N;;;;; +2607;LIGHTNING;So;0;ON;;;;;N;;;;; +2608;THUNDERSTORM;So;0;ON;;;;;N;;;;; +2609;SUN;So;0;ON;;;;;N;;;;; +260A;ASCENDING NODE;So;0;ON;;;;;N;;;;; +260B;DESCENDING NODE;So;0;ON;;;;;N;;;;; +260C;CONJUNCTION;So;0;ON;;;;;N;;;;; +260D;OPPOSITION;So;0;ON;;;;;N;;;;; +260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;; +260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;; +2610;BALLOT BOX;So;0;ON;;;;;N;;;;; +2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;; +2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;; +2613;SALTIRE;So;0;ON;;;;;N;;;;; +2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;; +2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;; +2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;; +2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;; +2618;SHAMROCK;So;0;ON;;;;;N;;;;; +2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; +261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; +261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; +261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; +261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;; +261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; +261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;; +2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;; +2621;CAUTION SIGN;So;0;ON;;;;;N;;;;; +2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;; +2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;; +2624;CADUCEUS;So;0;ON;;;;;N;;;;; +2625;ANKH;So;0;ON;;;;;N;;;;; +2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;; +2627;CHI RHO;So;0;ON;;;;;N;;;;; +2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;; +2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;; +262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;; +262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;; +262C;ADI SHAKTI;So;0;ON;;;;;N;;;;; +262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;; +262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;; +262F;YIN YANG;So;0;ON;;;;;N;;;;; +2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;; +2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;; +2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;; +2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;; +2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;; +2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;; +2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;; +2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;; +2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;; +2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;; +263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;; +263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;; +263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;; +263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;; +263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;; +263F;MERCURY;So;0;ON;;;;;N;;;;; +2640;FEMALE SIGN;So;0;ON;;;;;N;;;;; +2641;EARTH;So;0;ON;;;;;N;;;;; +2642;MALE SIGN;So;0;ON;;;;;N;;;;; +2643;JUPITER;So;0;ON;;;;;N;;;;; +2644;SATURN;So;0;ON;;;;;N;;;;; +2645;URANUS;So;0;ON;;;;;N;;;;; +2646;NEPTUNE;So;0;ON;;;;;N;;;;; +2647;PLUTO;So;0;ON;;;;;N;;;;; +2648;ARIES;So;0;ON;;;;;N;;;;; +2649;TAURUS;So;0;ON;;;;;N;;;;; +264A;GEMINI;So;0;ON;;;;;N;;;;; +264B;CANCER;So;0;ON;;;;;N;;;;; +264C;LEO;So;0;ON;;;;;N;;;;; +264D;VIRGO;So;0;ON;;;;;N;;;;; +264E;LIBRA;So;0;ON;;;;;N;;;;; +264F;SCORPIUS;So;0;ON;;;;;N;;;;; +2650;SAGITTARIUS;So;0;ON;;;;;N;;;;; +2651;CAPRICORN;So;0;ON;;;;;N;;;;; +2652;AQUARIUS;So;0;ON;;;;;N;;;;; +2653;PISCES;So;0;ON;;;;;N;;;;; +2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;; +2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;; +2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;; +2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;; +2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;; +2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;; +265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;; +265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;; +265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;; +265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;; +265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;; +265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;; +2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;; +2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;; +2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;; +2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;; +2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;; +2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;; +2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;; +2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;; +2668;HOT SPRINGS;So;0;ON;;;;;N;;;;; +2669;QUARTER NOTE;So;0;ON;;;;;N;;;;; +266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;; +266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;; +266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;; +266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;; +266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;; +266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;; +2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;; +2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;; +2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; +2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;;;; +2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;;;; +2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;;;; +2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;;;; +2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;;;; +2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;;;; +2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;;;; +267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;; +267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; +267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; +267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; +267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;; +267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;; +2680;DIE FACE-1;So;0;ON;;;;;N;;;;; +2681;DIE FACE-2;So;0;ON;;;;;N;;;;; +2682;DIE FACE-3;So;0;ON;;;;;N;;;;; +2683;DIE FACE-4;So;0;ON;;;;;N;;;;; +2684;DIE FACE-5;So;0;ON;;;;;N;;;;; +2685;DIE FACE-6;So;0;ON;;;;;N;;;;; +2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;; +2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;; +2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;; +2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;; +268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;; +268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;; +268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;; +268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;; +268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;; +268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;; +2690;WHITE FLAG;So;0;ON;;;;;N;;;;; +2691;BLACK FLAG;So;0;ON;;;;;N;;;;; +2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;; +2693;ANCHOR;So;0;ON;;;;;N;;;;; +2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;; +2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;; +2696;SCALES;So;0;ON;;;;;N;;;;; +2697;ALEMBIC;So;0;ON;;;;;N;;;;; +2698;FLOWER;So;0;ON;;;;;N;;;;; +2699;GEAR;So;0;ON;;;;;N;;;;; +269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;; +269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;; +269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;; +269D;OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;; +269E;THREE LINES CONVERGING RIGHT;So;0;ON;;;;;N;;;;; +269F;THREE LINES CONVERGING LEFT;So;0;ON;;;;;N;;;;; +26A0;WARNING SIGN;So;0;ON;;;;;N;;;;; +26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;; +26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;; +26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;; +26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;; +26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;; +26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;; +26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;; +26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;; +26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;; +26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;; +26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;; +26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;; +26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;; +26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;; +26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;; +26B0;COFFIN;So;0;ON;;;;;N;;;;; +26B1;FUNERAL URN;So;0;ON;;;;;N;;;;; +26B2;NEUTER;So;0;ON;;;;;N;;;;; +26B3;CERES;So;0;ON;;;;;N;;;;; +26B4;PALLAS;So;0;ON;;;;;N;;;;; +26B5;JUNO;So;0;ON;;;;;N;;;;; +26B6;VESTA;So;0;ON;;;;;N;;;;; +26B7;CHIRON;So;0;ON;;;;;N;;;;; +26B8;BLACK MOON LILITH;So;0;ON;;;;;N;;;;; +26B9;SEXTILE;So;0;ON;;;;;N;;;;; +26BA;SEMISEXTILE;So;0;ON;;;;;N;;;;; +26BB;QUINCUNX;So;0;ON;;;;;N;;;;; +26BC;SESQUIQUADRATE;So;0;ON;;;;;N;;;;; +26BD;SOCCER BALL;So;0;ON;;;;;N;;;;; +26BE;BASEBALL;So;0;ON;;;;;N;;;;; +26BF;SQUARED KEY;So;0;ON;;;;;N;;;;; +26C0;WHITE DRAUGHTS MAN;So;0;ON;;;;;N;;;;; +26C1;WHITE DRAUGHTS KING;So;0;ON;;;;;N;;;;; +26C2;BLACK DRAUGHTS MAN;So;0;ON;;;;;N;;;;; +26C3;BLACK DRAUGHTS KING;So;0;ON;;;;;N;;;;; +26C4;SNOWMAN WITHOUT SNOW;So;0;ON;;;;;N;;;;; +26C5;SUN BEHIND CLOUD;So;0;ON;;;;;N;;;;; +26C6;RAIN;So;0;ON;;;;;N;;;;; +26C7;BLACK SNOWMAN;So;0;ON;;;;;N;;;;; +26C8;THUNDER CLOUD AND RAIN;So;0;ON;;;;;N;;;;; +26C9;TURNED WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;; +26CA;TURNED BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;; +26CB;WHITE DIAMOND IN SQUARE;So;0;ON;;;;;N;;;;; +26CC;CROSSING LANES;So;0;ON;;;;;N;;;;; +26CD;DISABLED CAR;So;0;ON;;;;;N;;;;; +26CE;OPHIUCHUS;So;0;ON;;;;;N;;;;; +26CF;PICK;So;0;ON;;;;;N;;;;; +26D0;CAR SLIDING;So;0;ON;;;;;N;;;;; +26D1;HELMET WITH WHITE CROSS;So;0;ON;;;;;N;;;;; +26D2;CIRCLED CROSSING LANES;So;0;ON;;;;;N;;;;; +26D3;CHAINS;So;0;ON;;;;;N;;;;; +26D4;NO ENTRY;So;0;ON;;;;;N;;;;; +26D5;ALTERNATE ONE-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;; +26D6;BLACK TWO-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;; +26D7;WHITE TWO-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;; +26D8;BLACK LEFT LANE MERGE;So;0;ON;;;;;N;;;;; +26D9;WHITE LEFT LANE MERGE;So;0;ON;;;;;N;;;;; +26DA;DRIVE SLOW SIGN;So;0;ON;;;;;N;;;;; +26DB;HEAVY WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; +26DC;LEFT CLOSED ENTRY;So;0;ON;;;;;N;;;;; +26DD;SQUARED SALTIRE;So;0;ON;;;;;N;;;;; +26DE;FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE;So;0;ON;;;;;N;;;;; +26DF;BLACK TRUCK;So;0;ON;;;;;N;;;;; +26E0;RESTRICTED LEFT ENTRY-1;So;0;ON;;;;;N;;;;; +26E1;RESTRICTED LEFT ENTRY-2;So;0;ON;;;;;N;;;;; +26E2;ASTRONOMICAL SYMBOL FOR URANUS;So;0;ON;;;;;N;;;;; +26E3;HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE;So;0;ON;;;;;N;;;;; +26E4;PENTAGRAM;So;0;ON;;;;;N;;;;; +26E5;RIGHT-HANDED INTERLACED PENTAGRAM;So;0;ON;;;;;N;;;;; +26E6;LEFT-HANDED INTERLACED PENTAGRAM;So;0;ON;;;;;N;;;;; +26E7;INVERTED PENTAGRAM;So;0;ON;;;;;N;;;;; +26E8;BLACK CROSS ON SHIELD;So;0;ON;;;;;N;;;;; +26E9;SHINTO SHRINE;So;0;ON;;;;;N;;;;; +26EA;CHURCH;So;0;ON;;;;;N;;;;; +26EB;CASTLE;So;0;ON;;;;;N;;;;; +26EC;HISTORIC SITE;So;0;ON;;;;;N;;;;; +26ED;GEAR WITHOUT HUB;So;0;ON;;;;;N;;;;; +26EE;GEAR WITH HANDLES;So;0;ON;;;;;N;;;;; +26EF;MAP SYMBOL FOR LIGHTHOUSE;So;0;ON;;;;;N;;;;; +26F0;MOUNTAIN;So;0;ON;;;;;N;;;;; +26F1;UMBRELLA ON GROUND;So;0;ON;;;;;N;;;;; +26F2;FOUNTAIN;So;0;ON;;;;;N;;;;; +26F3;FLAG IN HOLE;So;0;ON;;;;;N;;;;; +26F4;FERRY;So;0;ON;;;;;N;;;;; +26F5;SAILBOAT;So;0;ON;;;;;N;;;;; +26F6;SQUARE FOUR CORNERS;So;0;ON;;;;;N;;;;; +26F7;SKIER;So;0;ON;;;;;N;;;;; +26F8;ICE SKATE;So;0;ON;;;;;N;;;;; +26F9;PERSON WITH BALL;So;0;ON;;;;;N;;;;; +26FA;TENT;So;0;ON;;;;;N;;;;; +26FB;JAPANESE BANK SYMBOL;So;0;ON;;;;;N;;;;; +26FC;HEADSTONE GRAVEYARD SYMBOL;So;0;ON;;;;;N;;;;; +26FD;FUEL PUMP;So;0;ON;;;;;N;;;;; +26FE;CUP ON BLACK SQUARE;So;0;ON;;;;;N;;;;; +26FF;WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE;So;0;ON;;;;;N;;;;; +2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;; +2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;; +2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;; +2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;; +2705;WHITE HEAVY CHECK MARK;So;0;ON;;;;;N;;;;; +2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;; +2707;TAPE DRIVE;So;0;ON;;;;;N;;;;; +2708;AIRPLANE;So;0;ON;;;;;N;;;;; +2709;ENVELOPE;So;0;ON;;;;;N;;;;; +270A;RAISED FIST;So;0;ON;;;;;N;;;;; +270B;RAISED HAND;So;0;ON;;;;;N;;;;; +270C;VICTORY HAND;So;0;ON;;;;;N;;;;; +270D;WRITING HAND;So;0;ON;;;;;N;;;;; +270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;; +270F;PENCIL;So;0;ON;;;;;N;;;;; +2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;; +2711;WHITE NIB;So;0;ON;;;;;N;;;;; +2712;BLACK NIB;So;0;ON;;;;;N;;;;; +2713;CHECK MARK;So;0;ON;;;;;N;;;;; +2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;; +2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;; +2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;; +2717;BALLOT X;So;0;ON;;;;;N;;;;; +2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;; +2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;; +271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;; +271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;; +271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;; +271D;LATIN CROSS;So;0;ON;;;;;N;;;;; +271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;; +271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;; +2720;MALTESE CROSS;So;0;ON;;;;;N;;;;; +2721;STAR OF DAVID;So;0;ON;;;;;N;;;;; +2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;; +2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;; +2728;SPARKLES;So;0;ON;;;;;N;;;;; +2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;; +272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;; +272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;; +272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;; +272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; +272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; +272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;; +2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;; +2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;; +2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;; +2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;; +2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;; +2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;; +2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; +2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; +2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;; +273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;; +273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;; +273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;; +273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;; +2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;; +2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;; +2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;; +2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;; +2744;SNOWFLAKE;So;0;ON;;;;;N;;;;; +2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;; +2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;; +2747;SPARKLE;So;0;ON;;;;;N;;;;; +2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;; +2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; +274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; +274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; +274C;CROSS MARK;So;0;ON;;;;;N;;;;; +274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;; +274E;NEGATIVE SQUARED CROSS MARK;So;0;ON;;;;;N;;;;; +274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; +2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; +2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; +2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; +2753;BLACK QUESTION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2754;WHITE QUESTION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2755;WHITE EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;; +2757;HEAVY EXCLAMATION MARK SYMBOL;So;0;ON;;;;;N;;;;; +2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;; +2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;; +275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;; +275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +275F;HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2760;HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;; +2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; +2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;; +2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;; +2766;FLORAL HEART;So;0;ON;;;;;N;;;;; +2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; +2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; +2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; +276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; +276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; +276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; +276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; +276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;; +276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;; +2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; +2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; +2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; +2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; +2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; +2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; +2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;; +2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;; +2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;; +2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;; +277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;; +277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;; +277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;; +277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;; +277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;; +277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;; +2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;; +2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;; +2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;; +2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;; +2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;; +2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;; +2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;; +2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;; +2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;; +2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;; +278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;; +278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;; +278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;; +278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;; +278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;; +278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;; +2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;; +2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;; +2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;; +2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;; +2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;; +2795;HEAVY PLUS SIGN;So;0;ON;;;;;N;;;;; +2796;HEAVY MINUS SIGN;So;0;ON;;;;;N;;;;; +2797;HEAVY DIVISION SIGN;So;0;ON;;;;;N;;;;; +2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;; +2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;; +279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;; +279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;; +279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;; +279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;; +279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;; +279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;; +27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;; +27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;; +27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;; +27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;; +27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;; +27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;; +27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;; +27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;; +27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;; +27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;; +27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;; +27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;; +27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;; +27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; +27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; +27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; +27B0;CURLY LOOP;So;0;ON;;;;;N;;;;; +27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; +27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;; +27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;; +27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;; +27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;; +27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;; +27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;; +27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;; +27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;; +27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;; +27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;; +27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;; +27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;; +27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;; +27BF;DOUBLE CURLY LOOP;So;0;ON;;;;;N;;;;; +27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;; +27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;; +27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;; +27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;; +27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;; +27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;; +27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;; +27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;; +27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;Y;;;;; +27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;Y;;;;; +27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; +27CB;MATHEMATICAL RISING DIAGONAL;Sm;0;ON;;;;;Y;;;;; +27CC;LONG DIVISION;Sm;0;ON;;;;;Y;;;;; +27CD;MATHEMATICAL FALLING DIAGONAL;Sm;0;ON;;;;;Y;;;;; +27CE;SQUARED LOGICAL AND;Sm;0;ON;;;;;N;;;;; +27CF;SQUARED LOGICAL OR;Sm;0;ON;;;;;N;;;;; +27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;; +27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;; +27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;; +27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; +27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; +27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; +27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; +27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;; +27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;; +27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;; +27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;; +27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;; +27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;; +27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;; +27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;; +27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; +27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;; +27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;; +27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; +27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; +27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; +27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; +27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;; +27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;; +27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; +27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; +27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; +27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; +27EC;MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;; +27ED;MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;; +27EE;MATHEMATICAL LEFT FLATTENED PARENTHESIS;Ps;0;ON;;;;;Y;;;;; +27EF;MATHEMATICAL RIGHT FLATTENED PARENTHESIS;Pe;0;ON;;;;;Y;;;;; +27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; +27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; +27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; +27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; +27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; +27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; +27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; +27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; +27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; +27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;; +2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;; +2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;; +2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;; +2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;; +2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;; +2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;; +2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;; +2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;; +2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;; +2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;; +280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;; +280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;; +280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;; +280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;; +280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;; +280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;; +2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;; +2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;; +2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;; +2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;; +2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;; +2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;; +2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;; +2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;; +2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;; +2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;; +281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;; +281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;; +281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;; +281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;; +281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;; +281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;; +2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;; +2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;; +2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;; +2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;; +2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;; +2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;; +2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;; +2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;; +2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;; +2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;; +282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;; +282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;; +282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;; +282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;; +282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;; +282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;; +2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;; +2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;; +2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;; +2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;; +2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;; +2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;; +2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;; +2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;; +2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;; +2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;; +283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;; +283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;; +283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;; +283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;; +283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;; +283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;; +2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;; +2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;; +2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;; +2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;; +2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;; +2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;; +2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;; +2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;; +2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;; +2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;; +284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;; +284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;; +284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;; +284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;; +284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;; +284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;; +2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;; +2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;; +2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;; +2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;; +2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;; +2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;; +2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;; +2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;; +2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;; +2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;; +285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;; +285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;; +285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;; +285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;; +285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;; +285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;; +2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;; +2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;; +2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;; +2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;; +2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;; +2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;; +2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;; +2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;; +2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;; +2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;; +286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;; +286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;; +286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;; +286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;; +286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;; +286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;; +2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;; +2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;; +2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;; +2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;; +2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;; +2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;; +2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;; +2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;; +2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;; +2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;; +287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;; +287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;; +287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;; +287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;; +287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;; +287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;; +2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;; +2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;; +2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;; +2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;; +2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;; +2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;; +2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;; +2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;; +2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;; +2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;; +288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;; +288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;; +288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;; +288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;; +288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;; +288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;; +2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;; +2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;; +2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;; +2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;; +2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;; +2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;; +2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;; +2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;; +2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;; +2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;; +289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;; +289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;; +289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;; +289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;; +289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;; +289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;; +28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;; +28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;; +28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;; +28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;; +28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;; +28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;; +28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;; +28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;; +28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;; +28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;; +28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;; +28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;; +28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;; +28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;; +28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;; +28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;; +28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;; +28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;; +28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;; +28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;; +28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;; +28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;; +28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;; +28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;; +28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;; +28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;; +28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;; +28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;; +28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;; +28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;; +28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;; +28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;; +28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;; +28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;; +28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;; +28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;; +28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;; +28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;; +28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;; +28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;; +28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;; +28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;; +28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;; +28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;; +28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;; +28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;; +28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;; +28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;; +28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;; +28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;; +28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;; +28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;; +28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;; +28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;; +28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;; +28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;; +28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;; +28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;; +28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;; +28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;; +28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;; +28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;; +28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;; +28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;; +28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;; +28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;; +28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;; +28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;; +28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;; +28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;; +28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;; +28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;; +28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;; +28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;; +28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;; +28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;; +28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;; +28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;; +28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;; +28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;; +28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;; +28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;; +28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;; +28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;; +28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;; +28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;; +28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;; +28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;; +28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;; +28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;; +28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;; +28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;; +28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;; +28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;; +28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;; +28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;; +2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; +2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; +290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; +290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; +290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; +290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; +290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; +290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; +2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; +2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;; +2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; +2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; +2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;; +2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; +291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; +291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; +291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; +291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; +291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; +291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; +2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; +2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; +2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; +2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; +2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; +2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; +2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; +292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; +292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;; +292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;; +292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; +2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; +2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;; +2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;; +2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;; +2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;; +2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;; +2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; +2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; +293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; +293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; +293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;; +293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;; +293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; +293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; +2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; +2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; +2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; +2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; +2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; +2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; +2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; +294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; +294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; +294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; +294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; +294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; +294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; +2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; +2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; +2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; +2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; +2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; +2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; +2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; +2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; +2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; +2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; +295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; +295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; +295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; +295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; +295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; +295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; +2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; +2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; +2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; +2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; +2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; +2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; +2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; +2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; +2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; +2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; +296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; +296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; +296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; +296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; +296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; +296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; +2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;; +2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; +2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; +2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; +2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;; +2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;; +297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;; +297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;; +297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;; +297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;; +2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;; +2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;; +2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;; +2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;; +2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;; +2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;; +2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;; +2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;; +2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;; +2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;; +298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;; +298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;; +298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;; +298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;; +298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;; +298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;; +2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;; +2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;; +2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;; +2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; +2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; +2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; +2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; +2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;; +2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;; +2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;; +299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;; +299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; +299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;; +299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;; +299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;; +299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;; +29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; +29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; +29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;; +29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;; +29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; +29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; +29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; +29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;; +29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;; +29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;; +29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;; +29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;; +29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;; +29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;; +29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;; +29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;; +29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;; +29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;; +29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; +29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; +29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; +29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;; +29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;; +29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;; +29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; +29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;; +29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;; +29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;; +29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; +29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;; +29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;; +29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;; +29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;; +29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; +29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; +29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; +29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; +29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;; +29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; +29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;; +29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;; +29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; +29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; +29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;; +29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;; +29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;; +29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;; +29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; +29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; +29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; +29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;; +29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; +29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; +29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;; +29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;; +29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; +29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; +29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; +29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; +29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;; +29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;; +29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;; +29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;; +29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;; +29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;; +29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;; +29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; +29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; +29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; +29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;; +29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;; +29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; +29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; +29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; +29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;; +29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; +29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; +29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;; +29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;; +29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;; +29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; +29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;; +29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;; +29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;; +29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; +29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; +29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; +29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;; +29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; +29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;; +29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;; +29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; +29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; +29FE;TINY;Sm;0;ON;;;;;N;;;;; +29FF;MINY;Sm;0;ON;;;;;N;;;;; +2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; +2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;; +2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; +2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;; +2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;; +2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;; +2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;; +2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;; +2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;; +2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; +2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;; +2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;; +2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;; +2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;; +2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;; +2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;; +2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;; +2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; +2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; +2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;; +2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;; +2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;; +2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;; +2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;; +2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;; +2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;; +2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; +2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; +2A1D;JOIN;Sm;0;ON;;;;;N;;;;; +2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;; +2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;; +2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;; +2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;; +2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; +2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;; +2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; +2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; +2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;; +2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;; +2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;; +2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;; +2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; +2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;; +2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; +2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; +2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; +2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;; +2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; +2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; +2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;; +2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; +2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; +2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; +2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;; +2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;; +2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; +2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; +2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; +2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; +2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; +2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; +2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;; +2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;; +2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;; +2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;; +2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; +2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; +2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;; +2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;; +2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; +2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;; +2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; +2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;; +2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;; +2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;; +2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;; +2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;; +2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;; +2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;; +2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; +2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; +2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; +2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;; +2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;; +2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;; +2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;; +2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;; +2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;; +2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;; +2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; +2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; +2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; +2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; +2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; +2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; +2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; +2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; +2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; +2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; +2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; +2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; +2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; +2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; +2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; +2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;; +2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;; +2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;; +2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;; +2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;; +2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; +2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;; +2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;; +2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;; +2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;; +2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;; +2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; +2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; +2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; +2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; +2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; +2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; +2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;; +2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;; +2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; +2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; +2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; +2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; +2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; +2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; +2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; +2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; +2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; +2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; +2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; +2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; +2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; +2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;; +2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;; +2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; +2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; +2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; +2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; +2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;; +2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;; +2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;; +2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;; +2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;; +2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;; +2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;; +2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; +2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; +2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; +2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; +2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; +2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; +2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; +2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; +2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; +2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; +2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;; +2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;; +2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; +2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; +2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; +2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; +2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;; +2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;; +2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;; +2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;; +2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;; +2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;;;; +2ADD;NONFORKING;Sm;0;ON;;;;;N;;;;; +2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;; +2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; +2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;; +2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;; +2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; +2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; +2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; +2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; +2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;; +2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;; +2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; +2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; +2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;; +2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;; +2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; +2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; +2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;; +2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; +2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; +2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; +2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; +2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; +2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;; +2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; +2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;; +2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; +2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; +2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; +2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;; +2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;; +2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; +2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; +2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; +2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;; +2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;; +2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;; +2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;; +2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;; +2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; +2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; +2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; +2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;; +2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;; +2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;; +2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;; +2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;; +2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;; +2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;; +2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;; +2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;; +2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;; +2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;; +2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;; +2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; +2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; +2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; +2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; +2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;; +2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;; +2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;; +2B1B;BLACK LARGE SQUARE;So;0;ON;;;;;N;;;;; +2B1C;WHITE LARGE SQUARE;So;0;ON;;;;;N;;;;; +2B1D;BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;; +2B1E;WHITE VERY SMALL SQUARE;So;0;ON;;;;;N;;;;; +2B1F;BLACK PENTAGON;So;0;ON;;;;;N;;;;; +2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;; +2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;; +2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;; +2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;; +2B24;BLACK LARGE CIRCLE;So;0;ON;;;;;N;;;;; +2B25;BLACK MEDIUM DIAMOND;So;0;ON;;;;;N;;;;; +2B26;WHITE MEDIUM DIAMOND;So;0;ON;;;;;N;;;;; +2B27;BLACK MEDIUM LOZENGE;So;0;ON;;;;;N;;;;; +2B28;WHITE MEDIUM LOZENGE;So;0;ON;;;;;N;;;;; +2B29;BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;; +2B2A;BLACK SMALL LOZENGE;So;0;ON;;;;;N;;;;; +2B2B;WHITE SMALL LOZENGE;So;0;ON;;;;;N;;;;; +2B2C;BLACK HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;; +2B2D;WHITE HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;; +2B2E;BLACK VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;; +2B2F;WHITE VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;; +2B30;LEFT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; +2B31;THREE LEFTWARDS ARROWS;Sm;0;ON;;;;;N;;;;; +2B32;LEFT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; +2B33;LONG LEFTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;; +2B34;LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2B35;LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2B36;LEFTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; +2B37;LEFTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; +2B38;LEFTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;; +2B39;LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2B3A;LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2B3B;LEFTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;; +2B3C;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2B3D;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; +2B3E;LEFTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; +2B3F;WAVE ARROW POINTING DIRECTLY LEFT;Sm;0;ON;;;;;N;;;;; +2B40;EQUALS SIGN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2B41;REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2B42;LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; +2B43;RIGHTWARDS ARROW THROUGH GREATER-THAN;Sm;0;ON;;;;;N;;;;; +2B44;RIGHTWARDS ARROW THROUGH SUPERSET;Sm;0;ON;;;;;N;;;;; +2B45;LEFTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;; +2B46;RIGHTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;; +2B47;REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2B48;RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; +2B49;TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +2B4A;LEFTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; +2B4B;LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; +2B4C;RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; +2B50;WHITE MEDIUM STAR;So;0;ON;;;;;N;;;;; +2B51;BLACK SMALL STAR;So;0;ON;;;;;N;;;;; +2B52;WHITE SMALL STAR;So;0;ON;;;;;N;;;;; +2B53;BLACK RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;; +2B54;WHITE RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;; +2B55;HEAVY LARGE CIRCLE;So;0;ON;;;;;N;;;;; +2B56;HEAVY OVAL WITH OVAL INSIDE;So;0;ON;;;;;N;;;;; +2B57;HEAVY CIRCLE WITH CIRCLE INSIDE;So;0;ON;;;;;N;;;;; +2B58;HEAVY CIRCLE;So;0;ON;;;;;N;;;;; +2B59;HEAVY CIRCLED SALTIRE;So;0;ON;;;;;N;;;;; +2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30; +2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31; +2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32; +2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33; +2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34; +2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35; +2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36; +2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37; +2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38; +2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39; +2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A; +2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B; +2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C; +2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D; +2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E; +2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F; +2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40; +2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41; +2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42; +2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43; +2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44; +2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45; +2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46; +2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47; +2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48; +2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49; +2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A; +2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B; +2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C; +2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D; +2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E; +2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F; +2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50; +2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51; +2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52; +2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53; +2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54; +2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55; +2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56; +2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57; +2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58; +2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59; +2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A; +2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B; +2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C; +2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D; +2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E; +2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00 +2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01 +2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02 +2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03 +2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04 +2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05 +2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06 +2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07 +2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08 +2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09 +2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A +2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B +2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C +2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D +2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E +2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F +2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10 +2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11 +2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12 +2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13 +2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14 +2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15 +2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16 +2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17 +2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18 +2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19 +2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A +2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B +2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C +2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D +2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E +2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F +2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20 +2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21 +2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22 +2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23 +2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24 +2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25 +2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26 +2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27 +2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28 +2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29 +2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A +2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B +2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C +2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D +2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E +2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61; +2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60 +2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B; +2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D; +2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D; +2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A +2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E +2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68; +2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67 +2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A; +2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69 +2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C; +2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B +2C6D;LATIN CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;0251; +2C6E;LATIN CAPITAL LETTER M WITH HOOK;Lu;0;L;;;;;N;;;;0271; +2C6F;LATIN CAPITAL LETTER TURNED A;Lu;0;L;;;;;N;;;;0250; +2C70;LATIN CAPITAL LETTER TURNED ALPHA;Lu;0;L;;;;;N;;;;0252; +2C71;LATIN SMALL LETTER V WITH RIGHT HOOK;Ll;0;L;;;;;N;;;;; +2C72;LATIN CAPITAL LETTER W WITH HOOK;Lu;0;L;;;;;N;;;;2C73; +2C73;LATIN SMALL LETTER W WITH HOOK;Ll;0;L;;;;;N;;;2C72;;2C72 +2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;; +2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76; +2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75 +2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;; +2C78;LATIN SMALL LETTER E WITH NOTCH;Ll;0;L;;;;;N;;;;; +2C79;LATIN SMALL LETTER TURNED R WITH TAIL;Ll;0;L;;;;;N;;;;; +2C7A;LATIN SMALL LETTER O WITH LOW RING INSIDE;Ll;0;L;;;;;N;;;;; +2C7B;LATIN LETTER SMALL CAPITAL TURNED E;Ll;0;L;;;;;N;;;;; +2C7C;LATIN SUBSCRIPT SMALL LETTER J;Lm;0;L;<sub> 006A;;;;N;;;;; +2C7D;MODIFIER LETTER CAPITAL V;Lm;0;L;<super> 0056;;;;N;;;;; +2C7E;LATIN CAPITAL LETTER S WITH SWASH TAIL;Lu;0;L;;;;;N;;;;023F; +2C7F;LATIN CAPITAL LETTER Z WITH SWASH TAIL;Lu;0;L;;;;;N;;;;0240; +2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81; +2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80 +2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83; +2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82 +2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85; +2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84 +2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87; +2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86 +2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89; +2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88 +2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B; +2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A +2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D; +2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C +2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F; +2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E +2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91; +2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90 +2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93; +2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92 +2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95; +2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94 +2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97; +2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96 +2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99; +2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98 +2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B; +2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A +2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D; +2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C +2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F; +2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E +2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1; +2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0 +2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3; +2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2 +2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5; +2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4 +2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7; +2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6 +2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9; +2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8 +2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB; +2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA +2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD; +2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC +2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF; +2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE +2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1; +2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0 +2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3; +2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2 +2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5; +2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4 +2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7; +2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6 +2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9; +2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8 +2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB; +2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA +2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD; +2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC +2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF; +2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE +2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1; +2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0 +2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3; +2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2 +2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5; +2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4 +2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7; +2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6 +2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9; +2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8 +2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB; +2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA +2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD; +2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC +2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF; +2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE +2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1; +2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0 +2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3; +2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2 +2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5; +2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4 +2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7; +2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6 +2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9; +2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8 +2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB; +2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA +2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD; +2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC +2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF; +2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE +2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1; +2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0 +2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3; +2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2 +2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;; +2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;; +2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;; +2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;; +2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;; +2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;; +2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;; +2CEB;COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI;Lu;0;L;;;;;N;;;;2CEC; +2CEC;COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI;Ll;0;L;;;;;N;;;2CEB;;2CEB +2CED;COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA;Lu;0;L;;;;;N;;;;2CEE; +2CEE;COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA;Ll;0;L;;;;;N;;;2CED;;2CED +2CEF;COPTIC COMBINING NI ABOVE;Mn;230;NSM;;;;;N;;;;; +2CF0;COPTIC COMBINING SPIRITUS ASPER;Mn;230;NSM;;;;;N;;;;; +2CF1;COPTIC COMBINING SPIRITUS LENIS;Mn;230;NSM;;;;;N;;;;; +2CF2;COPTIC CAPITAL LETTER BOHAIRIC KHEI;Lu;0;L;;;;;N;;;;2CF3; +2CF3;COPTIC SMALL LETTER BOHAIRIC KHEI;Ll;0;L;;;;;N;;;2CF2;;2CF2 +2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;; +2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;; +2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;; +2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;; +2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;; +2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;; +2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;; +2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;;10A0;;10A0 +2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;;10A1;;10A1 +2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;;10A2;;10A2 +2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;;10A3;;10A3 +2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;;10A4;;10A4 +2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;;10A5;;10A5 +2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;;10A6;;10A6 +2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;;10A7;;10A7 +2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;;10A8;;10A8 +2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;;10A9;;10A9 +2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;;10AA;;10AA +2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;;10AB;;10AB +2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;;10AC;;10AC +2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;;10AD;;10AD +2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;;10AE;;10AE +2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;;10AF;;10AF +2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;;10B0;;10B0 +2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;;10B1;;10B1 +2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;;10B2;;10B2 +2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;;10B3;;10B3 +2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;;10B4;;10B4 +2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;;10B5;;10B5 +2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;;10B6;;10B6 +2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;;10B7;;10B7 +2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;;10B8;;10B8 +2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;;10B9;;10B9 +2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;;10BA;;10BA +2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;;10BB;;10BB +2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;;10BC;;10BC +2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;;10BD;;10BD +2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;;10BE;;10BE +2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;;10BF;;10BF +2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;;10C0;;10C0 +2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;;10C1;;10C1 +2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;;10C2;;10C2 +2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;;10C3;;10C3 +2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;;10C4;;10C4 +2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;;10C5;;10C5 +2D27;GEORGIAN SMALL LETTER YN;Ll;0;L;;;;;N;;;10C7;;10C7 +2D2D;GEORGIAN SMALL LETTER AEN;Ll;0;L;;;;;N;;;10CD;;10CD +2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;; +2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;; +2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;; +2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;; +2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;; +2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;; +2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;; +2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;; +2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;; +2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;; +2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;; +2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;; +2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;; +2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;; +2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;; +2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;; +2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;;;; +2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;; +2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;; +2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;; +2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;; +2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;; +2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;; +2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;; +2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;; +2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;; +2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;; +2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;; +2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;; +2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;; +2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;; +2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;; +2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;; +2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;; +2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;; +2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;;;; +2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;; +2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;; +2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;; +2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;; +2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;;;; +2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;; +2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;; +2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;; +2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;; +2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;; +2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;; +2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;; +2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;; +2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;; +2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;; +2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;; +2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;;;; +2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;; +2D66;TIFINAGH LETTER YE;Lo;0;L;;;;;N;;;;; +2D67;TIFINAGH LETTER YO;Lo;0;L;;;;;N;;;;; +2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;;;; +2D70;TIFINAGH SEPARATOR MARK;Po;0;L;;;;;N;;;;; +2D7F;TIFINAGH CONSONANT JOINER;Mn;9;NSM;;;;;N;;;;; +2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;; +2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;; +2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;; +2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;; +2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;; +2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;; +2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;; +2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;; +2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;; +2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;; +2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;; +2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;; +2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;; +2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;; +2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;; +2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;; +2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;; +2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;; +2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;; +2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;; +2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;; +2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;; +2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;; +2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;; +2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;; +2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;; +2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;; +2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;; +2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;; +2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;; +2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;; +2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;; +2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;; +2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;; +2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;; +2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;; +2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;; +2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;; +2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;; +2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;; +2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;; +2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;; +2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;; +2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;; +2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;; +2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;; +2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;; +2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;; +2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;; +2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;; +2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;; +2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;; +2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;; +2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;; +2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;; +2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;; +2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;; +2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;; +2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;; +2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;; +2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;; +2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;; +2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;; +2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;; +2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;; +2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;; +2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;; +2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;; +2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;; +2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;; +2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;; +2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;; +2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;; +2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;; +2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;; +2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;; +2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;; +2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;; +2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;; +2DE0;COMBINING CYRILLIC LETTER BE;Mn;230;NSM;;;;;N;;;;; +2DE1;COMBINING CYRILLIC LETTER VE;Mn;230;NSM;;;;;N;;;;; +2DE2;COMBINING CYRILLIC LETTER GHE;Mn;230;NSM;;;;;N;;;;; +2DE3;COMBINING CYRILLIC LETTER DE;Mn;230;NSM;;;;;N;;;;; +2DE4;COMBINING CYRILLIC LETTER ZHE;Mn;230;NSM;;;;;N;;;;; +2DE5;COMBINING CYRILLIC LETTER ZE;Mn;230;NSM;;;;;N;;;;; +2DE6;COMBINING CYRILLIC LETTER KA;Mn;230;NSM;;;;;N;;;;; +2DE7;COMBINING CYRILLIC LETTER EL;Mn;230;NSM;;;;;N;;;;; +2DE8;COMBINING CYRILLIC LETTER EM;Mn;230;NSM;;;;;N;;;;; +2DE9;COMBINING CYRILLIC LETTER EN;Mn;230;NSM;;;;;N;;;;; +2DEA;COMBINING CYRILLIC LETTER O;Mn;230;NSM;;;;;N;;;;; +2DEB;COMBINING CYRILLIC LETTER PE;Mn;230;NSM;;;;;N;;;;; +2DEC;COMBINING CYRILLIC LETTER ER;Mn;230;NSM;;;;;N;;;;; +2DED;COMBINING CYRILLIC LETTER ES;Mn;230;NSM;;;;;N;;;;; +2DEE;COMBINING CYRILLIC LETTER TE;Mn;230;NSM;;;;;N;;;;; +2DEF;COMBINING CYRILLIC LETTER HA;Mn;230;NSM;;;;;N;;;;; +2DF0;COMBINING CYRILLIC LETTER TSE;Mn;230;NSM;;;;;N;;;;; +2DF1;COMBINING CYRILLIC LETTER CHE;Mn;230;NSM;;;;;N;;;;; +2DF2;COMBINING CYRILLIC LETTER SHA;Mn;230;NSM;;;;;N;;;;; +2DF3;COMBINING CYRILLIC LETTER SHCHA;Mn;230;NSM;;;;;N;;;;; +2DF4;COMBINING CYRILLIC LETTER FITA;Mn;230;NSM;;;;;N;;;;; +2DF5;COMBINING CYRILLIC LETTER ES-TE;Mn;230;NSM;;;;;N;;;;; +2DF6;COMBINING CYRILLIC LETTER A;Mn;230;NSM;;;;;N;;;;; +2DF7;COMBINING CYRILLIC LETTER IE;Mn;230;NSM;;;;;N;;;;; +2DF8;COMBINING CYRILLIC LETTER DJERV;Mn;230;NSM;;;;;N;;;;; +2DF9;COMBINING CYRILLIC LETTER MONOGRAPH UK;Mn;230;NSM;;;;;N;;;;; +2DFA;COMBINING CYRILLIC LETTER YAT;Mn;230;NSM;;;;;N;;;;; +2DFB;COMBINING CYRILLIC LETTER YU;Mn;230;NSM;;;;;N;;;;; +2DFC;COMBINING CYRILLIC LETTER IOTIFIED A;Mn;230;NSM;;;;;N;;;;; +2DFD;COMBINING CYRILLIC LETTER LITTLE YUS;Mn;230;NSM;;;;;N;;;;; +2DFE;COMBINING CYRILLIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;; +2DFF;COMBINING CYRILLIC LETTER IOTIFIED BIG YUS;Mn;230;NSM;;;;;N;;;;; +2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;; +2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;; +2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;; +2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;; +2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;; +2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;; +2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;; +2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;; +2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;; +2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;; +2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;; +2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;; +2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;; +2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;; +2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;; +2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;; +2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;; +2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;; +2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;; +2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;; +2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;; +2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;; +2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;; +2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;; +2E18;INVERTED INTERROBANG;Po;0;ON;;;;;N;;;;; +2E19;PALM BRANCH;Po;0;ON;;;;;N;;;;; +2E1A;HYPHEN WITH DIAERESIS;Pd;0;ON;;;;;N;;;;; +2E1B;TILDE WITH RING ABOVE;Po;0;ON;;;;;N;;;;; +2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;; +2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;; +2E1E;TILDE WITH DOT ABOVE;Po;0;ON;;;;;N;;;;; +2E1F;TILDE WITH DOT BELOW;Po;0;ON;;;;;N;;;;; +2E20;LEFT VERTICAL BAR WITH QUILL;Pi;0;ON;;;;;Y;;;;; +2E21;RIGHT VERTICAL BAR WITH QUILL;Pf;0;ON;;;;;Y;;;;; +2E22;TOP LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;; +2E23;TOP RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;; +2E24;BOTTOM LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;; +2E25;BOTTOM RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;; +2E26;LEFT SIDEWAYS U BRACKET;Ps;0;ON;;;;;Y;;;;; +2E27;RIGHT SIDEWAYS U BRACKET;Pe;0;ON;;;;;Y;;;;; +2E28;LEFT DOUBLE PARENTHESIS;Ps;0;ON;;;;;Y;;;;; +2E29;RIGHT DOUBLE PARENTHESIS;Pe;0;ON;;;;;Y;;;;; +2E2A;TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +2E2B;ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;; +2E2C;SQUARED FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +2E2D;FIVE DOT MARK;Po;0;ON;;;;;N;;;;; +2E2E;REVERSED QUESTION MARK;Po;0;ON;;;;;N;;;;; +2E2F;VERTICAL TILDE;Lm;0;ON;;;;;N;;;;; +2E30;RING POINT;Po;0;ON;;;;;N;;;;; +2E31;WORD SEPARATOR MIDDLE DOT;Po;0;ON;;;;;N;;;;; +2E32;TURNED COMMA;Po;0;ON;;;;;N;;;;; +2E33;RAISED DOT;Po;0;ON;;;;;N;;;;; +2E34;RAISED COMMA;Po;0;ON;;;;;N;;;;; +2E35;TURNED SEMICOLON;Po;0;ON;;;;;N;;;;; +2E36;DAGGER WITH LEFT GUARD;Po;0;ON;;;;;N;;;;; +2E37;DAGGER WITH RIGHT GUARD;Po;0;ON;;;;;N;;;;; +2E38;TURNED DAGGER;Po;0;ON;;;;;N;;;;; +2E39;TOP HALF SECTION SIGN;Po;0;ON;;;;;N;;;;; +2E3A;TWO-EM DASH;Pd;0;ON;;;;;N;;;;; +2E3B;THREE-EM DASH;Pd;0;ON;;;;;N;;;;; +2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;; +2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;; +2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;; +2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;; +2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;; +2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;; +2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;; +2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;; +2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;; +2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;; +2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;; +2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;; +2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;; +2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;; +2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;; +2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;; +2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;; +2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;; +2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;; +2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;; +2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;; +2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;; +2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;; +2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;; +2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;; +2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;; +2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;; +2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;; +2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;; +2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;; +2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;; +2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;; +2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;; +2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;; +2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;; +2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;; +2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;; +2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;; +2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;; +2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;; +2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;; +2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;; +2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;; +2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;; +2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;; +2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;; +2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;; +2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;; +2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;; +2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;; +2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;; +2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;; +2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;; +2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;; +2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;; +2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;; +2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;; +2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;; +2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;; +2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;; +2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;; +2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;; +2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;; +2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;; +2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;; +2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;; +2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;; +2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;; +2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;; +2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;; +2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;; +2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;; +2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;; +2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;; +2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;; +2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;; +2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;; +2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;; +2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;; +2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;; +2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;; +2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;; +2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;; +2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;; +2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;; +2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;; +2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;; +2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;; +2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;; +2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;; +2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;; +2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;; +2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;; +2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;; +2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;; +2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;; +2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;; +2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;; +2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;; +2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;; +2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;; +2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;; +2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;; +2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;; +2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;; +2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;; +2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; +2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; +2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; +2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; +2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; +2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; +2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;; +2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;; +2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;; +2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;; +2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;; +2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;; +2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;; +2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;; +2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;; +2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;; +2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;; +2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;; +2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;; +2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;; +2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;; +2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;; +2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;; +2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;; +2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;; +2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;; +2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;; +2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;; +2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;; +2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;; +2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;; +2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;; +2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;; +2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;; +2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;; +2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;; +2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;; +2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;; +2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;; +2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;; +2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;; +2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;; +2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;; +2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;; +2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;; +2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;; +2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;; +2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;; +2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;; +2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;; +2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;; +2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;; +2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;; +2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;; +2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;; +2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;; +2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;; +2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;; +2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;; +2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;; +2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;; +2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;; +2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;; +2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;; +2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;; +2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;; +2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;; +2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;; +2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;; +2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;; +2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;; +2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;; +2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;; +2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;; +2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;; +2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;; +2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;; +2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;; +2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;; +2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;; +2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;; +2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;; +2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;; +2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;; +2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;; +2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;; +2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;; +2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;; +2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;; +2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;; +2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;; +2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;; +2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;; +2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;; +2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;; +2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;; +2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;; +2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;; +2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;; +2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;; +2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;; +2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;; +2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;; +2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;; +2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;; +2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;; +2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;; +2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;; +2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;; +2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;; +2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;; +2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;; +2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;; +2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;; +2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;; +2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;; +2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;; +2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;; +2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;; +2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;; +2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;; +2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;; +2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;; +2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;; +2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;; +2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;; +2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;; +2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;; +2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;; +2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;; +2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;; +2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;; +2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;; +2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;; +2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;; +2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;; +2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;; +2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;; +2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;; +2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;; +2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;; +2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;; +2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;; +2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;; +2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;; +2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;; +2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;; +2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;; +2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;; +2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;; +2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;; +2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;; +2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;; +2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;; +2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;; +2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;; +2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;; +2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;; +2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;; +2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;; +2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;; +2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;; +2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;; +2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;; +2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;; +2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;; +2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;; +2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;; +2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;; +2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;; +2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;; +2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;; +2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;; +2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;; +2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;; +2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;; +2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;; +2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;; +2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;; +2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;; +2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;; +2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;; +2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;; +2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;; +2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;; +2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;; +2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;; +2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;; +2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;; +2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;; +2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;; +2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;; +2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;; +2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;; +2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;; +2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;; +2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;; +2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;; +2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;; +2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;; +2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;; +2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;; +2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;; +2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;; +2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;; +2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;; +2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;; +2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;; +2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;; +2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;; +2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;; +2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;; +2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;; +2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;; +2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;; +2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;; +2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;; +2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;; +2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;; +2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;; +2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;; +2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;; +2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;; +2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;; +2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;; +2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;; +2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;; +2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;; +2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;; +2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;; +2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;; +2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;; +2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;; +2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;; +2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;; +3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;; +3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;; +3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;; +3003;DITTO MARK;Po;0;ON;;;;;N;;;;; +3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;; +3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; +3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;; +3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;; +3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;; +3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;; +300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;; +300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;; +300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;; +300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;; +300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;; +300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;; +3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;; +3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;; +3012;POSTAL MARK;So;0;ON;;;;;N;;;;; +3013;GETA MARK;So;0;ON;;;;;N;;;;; +3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;; +3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;; +3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;; +3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;; +3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;; +3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;; +301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;; +301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;; +301C;WAVE DASH;Pd;0;ON;;;;;N;;;;; +301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;; +301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; +301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; +3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;; +3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;; +3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;; +3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;; +3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;; +3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;; +3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;; +3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;; +3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;; +3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;; +302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;; +302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;; +302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;; +302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;; +302E;HANGUL SINGLE DOT TONE MARK;Mc;224;L;;;;;N;;;;; +302F;HANGUL DOUBLE DOT TONE MARK;Mc;224;L;;;;;N;;;;; +3030;WAVY DASH;Pd;0;ON;;;;;N;;;;; +3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;; +3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;; +3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;; +3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;; +3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;; +3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;; +3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;; +3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;; +3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;; +303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;; +303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; +303C;MASU MARK;Lo;0;L;;;;;N;;;;; +303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;; +303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;; +303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;; +3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; +3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;; +3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; +3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;; +3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; +3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;; +3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; +3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;; +3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; +304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;; +304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;; +304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;; +304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;; +304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;; +304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;; +3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;; +3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;; +3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;; +3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;; +3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;; +3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;; +3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;; +3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;; +3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;; +3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;; +305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;; +305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;; +305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;; +305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;; +305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;; +305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;; +3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;; +3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;; +3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;; +3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; +3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;; +3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;; +3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;; +3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;; +3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;; +3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;; +306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;; +306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;; +306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;; +306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;; +306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;; +306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;; +3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;; +3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;; +3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;; +3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;; +3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;; +3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;; +3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;; +3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;; +3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;; +3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;; +307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;; +307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;; +307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;; +307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;; +307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;; +307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;; +3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;; +3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;; +3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;; +3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; +3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;; +3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; +3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;; +3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; +3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;; +3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;; +308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;; +308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;; +308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;; +308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;; +308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; +308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;; +3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;; +3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;; +3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;; +3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;; +3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;; +3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; +3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; +3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;; +309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;; +309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;; +309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;; +309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;; +309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;; +309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;; +30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;; +30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; +30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;; +30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; +30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;; +30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; +30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;; +30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; +30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;; +30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; +30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;; +30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;; +30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;; +30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;; +30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;; +30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;; +30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;; +30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;; +30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;; +30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;; +30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;; +30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;; +30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;; +30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;; +30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;; +30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;; +30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;; +30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;; +30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;; +30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;; +30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;; +30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;; +30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;; +30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;; +30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;; +30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; +30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;; +30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;; +30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;; +30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;; +30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;; +30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;; +30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;; +30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;; +30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;; +30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;; +30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;; +30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;; +30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;; +30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;; +30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;; +30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;; +30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;; +30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;; +30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;; +30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;; +30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;; +30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;; +30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;; +30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;; +30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;; +30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;; +30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;; +30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;; +30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;; +30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;; +30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;; +30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; +30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;; +30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; +30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;; +30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; +30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;; +30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;; +30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;; +30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;; +30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;; +30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;; +30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; +30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;; +30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;; +30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;; +30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;; +30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;; +30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;; +30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; +30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; +30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;; +30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;; +30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;; +30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;; +30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;; +30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;; +30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;; +30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;; +30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;; +3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;; +3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;; +3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;; +3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;; +3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;; +310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;; +310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;; +310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;; +310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;; +310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;; +310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;; +3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;; +3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;; +3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;; +3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;; +3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;; +3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;; +3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;; +3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;; +3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;; +3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;; +311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;; +311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;; +311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;; +311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;; +311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;; +311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;; +3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;; +3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;; +3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;; +3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;; +3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;; +3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;; +3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;; +3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;; +3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;; +3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;; +312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;; +312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;; +312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;; +312D;BOPOMOFO LETTER IH;Lo;0;L;;;;;N;;;;; +3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;; +3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;; +3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; +3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;; +3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;; +3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;; +3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;; +3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;; +3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;; +313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;; +313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;; +313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;; +313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;; +313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;; +313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;; +3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;; +3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;; +3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;; +3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;; +3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;; +3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;; +3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;; +3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;; +3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;; +3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;; +314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;; +314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;; +314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;; +314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;; +314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;; +314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;; +3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;; +3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;; +3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;; +3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;; +3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;; +3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;; +3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;; +3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;; +3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;; +3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;; +315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;; +315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;; +315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;; +315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;; +315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;; +315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;; +3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;; +3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;; +3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;; +3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;; +3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;; +3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;; +3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;; +3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;; +3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;; +3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;; +316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;; +316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;; +316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;; +316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;; +316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;; +316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;; +3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;; +3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;; +3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;; +3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;; +3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;; +3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;; +3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;; +3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;; +3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;; +3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;; +317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;; +317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;; +317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;; +317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;; +317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;; +317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;; +3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;; +3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;; +3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;; +3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;; +3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;; +3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;; +3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;; +3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;; +3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;; +3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;; +318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;; +318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;; +318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;; +318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;; +318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;; +3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;;;; +3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;;;; +3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;1;N;KAERITEN ITI;;;; +3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;2;N;KAERITEN NI;;;; +3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;3;N;KAERITEN SAN;;;; +3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;4;N;KAERITEN SI;;;; +3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;;;; +3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;;;; +3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;;;; +3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;;;; +319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;;;; +319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;;;; +319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;;;; +319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;;;; +319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;;;; +319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;;;; +31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;; +31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;; +31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;; +31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;; +31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;; +31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;; +31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;; +31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;; +31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;; +31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;; +31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;; +31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;; +31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;; +31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;; +31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;; +31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;; +31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;; +31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;; +31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;; +31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;; +31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;; +31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;; +31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;; +31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;; +31B8;BOPOMOFO LETTER GH;Lo;0;L;;;;;N;;;;; +31B9;BOPOMOFO LETTER LH;Lo;0;L;;;;;N;;;;; +31BA;BOPOMOFO LETTER ZY;Lo;0;L;;;;;N;;;;; +31C0;CJK STROKE T;So;0;ON;;;;;N;;;;; +31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;; +31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;; +31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;; +31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;; +31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;; +31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;; +31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;; +31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;; +31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;; +31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;; +31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;; +31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;; +31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;; +31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;; +31CF;CJK STROKE N;So;0;ON;;;;;N;;;;; +31D0;CJK STROKE H;So;0;ON;;;;;N;;;;; +31D1;CJK STROKE S;So;0;ON;;;;;N;;;;; +31D2;CJK STROKE P;So;0;ON;;;;;N;;;;; +31D3;CJK STROKE SP;So;0;ON;;;;;N;;;;; +31D4;CJK STROKE D;So;0;ON;;;;;N;;;;; +31D5;CJK STROKE HZ;So;0;ON;;;;;N;;;;; +31D6;CJK STROKE HG;So;0;ON;;;;;N;;;;; +31D7;CJK STROKE SZ;So;0;ON;;;;;N;;;;; +31D8;CJK STROKE SWZ;So;0;ON;;;;;N;;;;; +31D9;CJK STROKE ST;So;0;ON;;;;;N;;;;; +31DA;CJK STROKE SG;So;0;ON;;;;;N;;;;; +31DB;CJK STROKE PD;So;0;ON;;;;;N;;;;; +31DC;CJK STROKE PZ;So;0;ON;;;;;N;;;;; +31DD;CJK STROKE TN;So;0;ON;;;;;N;;;;; +31DE;CJK STROKE SZZ;So;0;ON;;;;;N;;;;; +31DF;CJK STROKE SWG;So;0;ON;;;;;N;;;;; +31E0;CJK STROKE HXWG;So;0;ON;;;;;N;;;;; +31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;; +31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;; +31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;; +31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;; +31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;; +31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;; +31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;; +31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;; +31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;; +31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;; +31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;; +31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;; +31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;; +31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;; +31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;; +31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;; +31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;; +31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;; +31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;; +3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;; +3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;; +3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;; +3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;; +3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;; +3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;; +3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;; +3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;; +3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;; +3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;; +320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;; +320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;; +320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;; +320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;; +320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;; +320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;; +3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;; +3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;; +3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;; +3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;; +3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;; +3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;; +3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;; +3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;; +3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;; +3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;; +321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;; +321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;; +321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;; +321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON;<compat> 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;; +321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON;<compat> 0028 110B 1169 1112 116E 0029;;;;N;;;;; +3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;1;N;;;;; +3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;2;N;;;;; +3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;3;N;;;;; +3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;4;N;;;;; +3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;5;N;;;;; +3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;6;N;;;;; +3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;7;N;;;;; +3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;8;N;;;;; +3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;9;N;;;;; +3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;10;N;;;;; +322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;; +322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;; +322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;; +322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;; +322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;; +322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;; +3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;; +3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;; +3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;; +3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;; +3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;; +3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;; +3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;; +3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;; +3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;; +3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;; +323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;; +323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;; +323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;; +323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;; +323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;; +323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;; +3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;; +3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;; +3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;; +3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;; +3244;CIRCLED IDEOGRAPH QUESTION;So;0;L;<circle> 554F;;;;N;;;;; +3245;CIRCLED IDEOGRAPH KINDERGARTEN;So;0;L;<circle> 5E7C;;;;N;;;;; +3246;CIRCLED IDEOGRAPH SCHOOL;So;0;L;<circle> 6587;;;;N;;;;; +3247;CIRCLED IDEOGRAPH KOTO;So;0;L;<circle> 7B8F;;;;N;;;;; +3248;CIRCLED NUMBER TEN ON BLACK SQUARE;No;0;L;;;;10;N;;;;; +3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;No;0;L;;;;20;N;;;;; +324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;No;0;L;;;;30;N;;;;; +324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;No;0;L;;;;40;N;;;;; +324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;No;0;L;;;;50;N;;;;; +324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;No;0;L;;;;60;N;;;;; +324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;No;0;L;;;;70;N;;;;; +324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;No;0;L;;;;80;N;;;;; +3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;; +3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;; +3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;; +3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;; +3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;; +3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;; +3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;; +3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;; +3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;; +3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;; +325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;; +325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;; +325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;; +325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;; +325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;; +325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;; +3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;; +3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;; +3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;; +3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;; +3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;; +3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;; +3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;; +3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;; +3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;; +3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;; +326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;; +326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;; +326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;; +326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;; +326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;; +326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;; +3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;; +3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;; +3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;; +3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;; +3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;; +3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;; +3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;; +3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;; +3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;; +3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;; +327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;; +327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;; +327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON;<circle> 110E 1161 11B7 1100 1169;;;;N;;;;; +327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON;<circle> 110C 116E 110B 1174;;;;N;;;;; +327E;CIRCLED HANGUL IEUNG U;So;0;ON;<circle> 110B 116E;;;;N;;;;; +327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;; +3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;; +3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;; +3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;; +3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;; +3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;; +3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;; +3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;; +3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;; +3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;; +3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;; +328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;; +328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;; +328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;; +328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;; +328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;; +328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;; +3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;; +3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;; +3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;; +3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;; +3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;; +3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;; +3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;; +3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;; +3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;; +3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;; +329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;; +329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;; +329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;; +329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;; +329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;; +329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;; +32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;; +32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;; +32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;; +32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;; +32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;; +32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;; +32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;; +32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;; +32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;; +32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;; +32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;; +32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;; +32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;; +32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;; +32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;; +32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;; +32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;; +32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;; +32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;; +32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;; +32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;; +32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;; +32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;; +32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;; +32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;; +32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;; +32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;; +32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;; +32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;; +32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;; +32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;; +32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;; +32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;; +32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;; +32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;; +32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;; +32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;; +32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;; +32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;; +32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;; +32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;; +32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;; +32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;; +32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;; +32CC;SQUARE HG;So;0;ON;<square> 0048 0067;;;;N;;;;; +32CD;SQUARE ERG;So;0;ON;<square> 0065 0072 0067;;;;N;;;;; +32CE;SQUARE EV;So;0;ON;<square> 0065 0056;;;;N;;;;; +32CF;LIMITED LIABILITY SIGN;So;0;ON;<square> 004C 0054 0044;;;;N;;;;; +32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;; +32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;; +32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;; +32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;; +32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;; +32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;; +32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;; +32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;; +32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;; +32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;; +32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;; +32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;; +32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;; +32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;; +32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;; +32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;; +32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;; +32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;; +32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;; +32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;; +32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;; +32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;; +32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;; +32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;; +32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;; +32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;; +32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;; +32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;; +32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;; +32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;; +32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;; +32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;; +32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;; +32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;; +32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;; +32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;; +32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;; +32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;; +32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;; +32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;; +32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;; +32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;; +32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;; +32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;; +32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;; +32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;; +32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;; +3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;; +3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;; +3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;; +3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;; +3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;; +3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;; +3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;; +3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;; +3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;; +3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;; +330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;; +330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;; +330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;; +330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;; +330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;; +330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;; +3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;; +3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;; +3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;; +3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;; +3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;; +3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;; +3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;; +3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;; +3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;; +3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;; +331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;; +331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;; +331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;; +331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;; +331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;; +331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;; +3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;; +3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;; +3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;; +3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;; +3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;; +3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;; +3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;; +3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;; +3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;; +3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;; +332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;; +332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;; +332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;; +332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;; +332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;; +332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;; +3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;; +3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;; +3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;; +3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;; +3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;; +3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;; +3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;; +3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;; +3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;; +3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;; +333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;; +333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;; +333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;; +333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;; +333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;; +333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;; +3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;; +3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;; +3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;; +3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;; +3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;; +3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;; +3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;; +3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;; +3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;; +3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;; +334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;; +334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;; +334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;; +334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;; +334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;; +334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;; +3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;; +3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;; +3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;; +3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;; +3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;; +3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;; +3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;; +3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;; +3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;; +3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;; +335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;; +335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;; +335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;; +335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;; +335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;; +335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;; +3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;; +3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;; +3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;; +3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;; +3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;; +3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;; +3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;; +3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;; +3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;; +3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;; +336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;; +336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;; +336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;; +336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;; +336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;; +336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;; +3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;; +3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;; +3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;; +3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;; +3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;; +3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;; +3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;; +3377;SQUARE DM;So;0;ON;<square> 0064 006D;;;;N;;;;; +3378;SQUARE DM SQUARED;So;0;ON;<square> 0064 006D 00B2;;;;N;;;;; +3379;SQUARE DM CUBED;So;0;ON;<square> 0064 006D 00B3;;;;N;;;;; +337A;SQUARE IU;So;0;ON;<square> 0049 0055;;;;N;;;;; +337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;; +337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;; +337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;; +337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;; +337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;; +3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;; +3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;; +3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;; +3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;; +3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;; +3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;; +3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;; +3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;; +3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;; +3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;; +338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;; +338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;; +338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;; +338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;; +338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;; +338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;; +3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;; +3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;; +3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;; +3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;; +3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;; +3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;; +3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;; +3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;; +3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;; +3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;; +339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;; +339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;; +339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;; +339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;; +339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;; +339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;; +33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;; +33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;; +33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;; +33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;; +33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;; +33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;; +33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;; +33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;; +33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;; +33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;; +33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;; +33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;; +33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;; +33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;; +33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;; +33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;; +33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;; +33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;; +33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;; +33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;; +33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;; +33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;; +33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;; +33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;; +33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;; +33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;; +33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;; +33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;; +33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;; +33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;; +33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;; +33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;; +33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;; +33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;; +33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;; +33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;; +33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;; +33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;; +33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;; +33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;; +33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;; +33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;; +33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;; +33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;; +33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;; +33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;; +33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;; +33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;; +33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;; +33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;; +33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;; +33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;; +33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;; +33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;; +33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;; +33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;; +33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;; +33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;; +33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;; +33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;; +33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;; +33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;; +33DE;SQUARE V OVER M;So;0;ON;<square> 0056 2215 006D;;;;N;;;;; +33DF;SQUARE A OVER M;So;0;ON;<square> 0041 2215 006D;;;;N;;;;; +33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;; +33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;; +33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;; +33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;; +33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;; +33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;; +33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;; +33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;; +33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;; +33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;; +33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;; +33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;; +33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;; +33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;; +33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;; +33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;; +33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;; +33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;; +33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;; +33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;; +33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;; +33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;; +33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;; +33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;; +33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;; +33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;; +33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;; +33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;; +33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;; +33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;; +33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;; +33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;; +3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;; +4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;; +4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;; +4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;; +4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;; +4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;; +4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;; +4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;; +4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;; +4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;; +4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;; +4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;; +4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;; +4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;; +4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;; +4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;; +4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;; +4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;; +4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;; +4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;; +4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;; +4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;; +4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;; +4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;; +4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;; +4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;; +4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;; +4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;; +4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;; +4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;; +4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;; +4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;; +4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;; +4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;; +4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;; +4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;; +4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;; +4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;; +4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;; +4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;; +4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;; +4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;; +4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;; +4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;; +4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;; +4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;; +4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;; +4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;; +4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;; +4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;; +4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;; +4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;; +4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;; +4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;; +4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;; +4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;; +4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;; +4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;; +4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;; +4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;; +4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;; +4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;; +4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;; +4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;; +4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;; +4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;; +4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;; +9FCC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;; +A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;; +A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;; +A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;; +A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;; +A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;; +A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;; +A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;; +A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;; +A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;; +A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;; +A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;; +A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;; +A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;; +A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;; +A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;; +A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;; +A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;; +A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;; +A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;; +A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;; +A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;; +A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;; +A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;; +A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;; +A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;; +A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;; +A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;; +A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;; +A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;; +A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;; +A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;; +A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;; +A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;; +A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;; +A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;; +A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;; +A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;; +A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;; +A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;; +A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;; +A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;; +A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;; +A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;; +A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;; +A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;; +A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;; +A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;; +A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;; +A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;; +A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;; +A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;; +A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;; +A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;; +A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;; +A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;; +A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;; +A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;; +A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;; +A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;; +A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;; +A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;; +A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;; +A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;; +A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;; +A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;; +A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;; +A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;; +A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;; +A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;; +A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;; +A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;; +A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;; +A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;; +A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;; +A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;; +A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;; +A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;; +A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;; +A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;; +A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;; +A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;; +A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;; +A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;; +A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;; +A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;; +A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;; +A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;; +A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;; +A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;; +A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;; +A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;; +A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;; +A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;; +A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;; +A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;; +A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;; +A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;; +A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;; +A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;; +A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;; +A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;; +A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;; +A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;; +A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;; +A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;; +A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;; +A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;; +A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;; +A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;; +A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;; +A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;; +A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;; +A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;; +A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;; +A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;; +A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;; +A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;; +A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;; +A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;; +A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;; +A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;; +A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;; +A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;; +A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;; +A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;; +A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;; +A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;; +A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;; +A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;; +A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;; +A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;; +A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;; +A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;; +A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;; +A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;; +A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;; +A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;; +A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;; +A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;; +A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;; +A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;; +A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;; +A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;; +A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;; +A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;; +A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;; +A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;; +A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;; +A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;; +A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;; +A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;; +A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;; +A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;; +A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;; +A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;; +A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;; +A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;; +A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;; +A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;; +A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;; +A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;; +A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;; +A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;; +A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;; +A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;; +A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;; +A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;; +A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;; +A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;; +A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;; +A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;; +A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;; +A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;; +A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;; +A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;; +A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;; +A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;; +A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;; +A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;; +A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;; +A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;; +A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;; +A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;; +A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;; +A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;; +A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;; +A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;; +A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;; +A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;; +A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;; +A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;; +A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;; +A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;; +A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;; +A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;; +A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;; +A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;; +A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;; +A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;; +A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;; +A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;; +A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;; +A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;; +A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;; +A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;; +A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;; +A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;; +A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;; +A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;; +A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;; +A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;; +A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;; +A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;; +A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;; +A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;; +A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;; +A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;; +A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;; +A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;; +A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;; +A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;; +A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;; +A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;; +A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;; +A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;; +A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;; +A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;; +A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;; +A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;; +A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;; +A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;; +A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;; +A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;; +A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;; +A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;; +A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;; +A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;; +A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;; +A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;; +A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;; +A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;; +A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;; +A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;; +A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;; +A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;; +A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;; +A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;; +A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;; +A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;; +A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;; +A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;; +A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;; +A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;; +A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;; +A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;; +A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;; +A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;; +A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;; +A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;; +A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;; +A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;; +A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;; +A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;; +A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;; +A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;; +A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;; +A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;; +A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;; +A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;; +A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;; +A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;; +A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;; +A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;; +A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;; +A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;; +A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;; +A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;; +A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;; +A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;; +A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;; +A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;; +A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;; +A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;; +A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;; +A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;; +A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;; +A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;; +A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;; +A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;; +A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;; +A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;; +A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;; +A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;; +A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;; +A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;; +A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;; +A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;; +A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;; +A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;; +A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;; +A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;; +A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;; +A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;; +A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;; +A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;; +A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;; +A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;; +A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;; +A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;; +A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;; +A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;; +A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;; +A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;; +A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;; +A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;; +A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;; +A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;; +A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;; +A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;; +A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;; +A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;; +A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;; +A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;; +A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;; +A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;; +A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;; +A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;; +A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;; +A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;; +A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;; +A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;; +A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;; +A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;; +A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;; +A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;; +A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;; +A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;; +A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;; +A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;; +A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;; +A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;; +A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;; +A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;; +A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;; +A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;; +A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;; +A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;; +A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;; +A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;; +A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;; +A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;; +A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;; +A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;; +A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;; +A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;; +A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;; +A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;; +A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;; +A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;; +A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;; +A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;; +A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;; +A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;; +A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;; +A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;; +A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;; +A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;; +A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;; +A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;; +A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;; +A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;; +A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;; +A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;; +A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;; +A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;; +A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;; +A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;; +A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;; +A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;; +A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;; +A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;; +A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;; +A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;; +A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;; +A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;; +A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;; +A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;; +A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;; +A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;; +A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;; +A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;; +A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;; +A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;; +A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;; +A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;; +A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;; +A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;; +A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;; +A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;; +A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;; +A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;; +A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;; +A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;; +A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;; +A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;; +A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;; +A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;; +A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;; +A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;; +A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;; +A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;; +A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;; +A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;; +A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;; +A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;; +A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;; +A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;; +A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;; +A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;; +A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;; +A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;; +A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;; +A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;; +A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;; +A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;; +A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;; +A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;; +A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;; +A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;; +A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;; +A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;; +A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;; +A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;; +A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;; +A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;; +A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;; +A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;; +A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;; +A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;; +A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;; +A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;; +A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;; +A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;; +A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;; +A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;; +A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;; +A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;; +A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;; +A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;; +A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;; +A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;; +A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;; +A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;; +A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;; +A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;; +A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;; +A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;; +A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;; +A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;; +A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;; +A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;; +A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;; +A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;; +A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;; +A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;; +A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;; +A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;; +A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;; +A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;; +A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;; +A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;; +A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;; +A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;; +A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;; +A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;; +A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;; +A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;; +A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;; +A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;; +A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;; +A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;; +A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;; +A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;; +A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;; +A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;; +A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;; +A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;; +A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;; +A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;; +A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;; +A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;; +A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;; +A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;; +A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;; +A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;; +A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;; +A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;; +A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;; +A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;; +A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;; +A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;; +A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;; +A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;; +A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;; +A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;; +A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;; +A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;; +A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;; +A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;; +A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;; +A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;; +A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;; +A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;; +A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;; +A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;; +A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;; +A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;; +A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;; +A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;; +A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;; +A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;; +A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;; +A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;; +A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;; +A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;; +A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;; +A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;; +A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;; +A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;; +A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;; +A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;; +A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;; +A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;; +A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;; +A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;; +A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;; +A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;; +A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;; +A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;; +A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;; +A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;; +A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;; +A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;; +A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;; +A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;; +A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;; +A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;; +A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;; +A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;; +A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;; +A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;; +A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;; +A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;; +A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;; +A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;; +A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;; +A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;; +A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;; +A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;; +A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;; +A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;; +A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;; +A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;; +A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;; +A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;; +A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;; +A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;; +A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;; +A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;; +A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;; +A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;; +A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;; +A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;; +A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;; +A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;; +A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;; +A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;; +A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;; +A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;; +A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;; +A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;; +A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;; +A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;; +A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;; +A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;; +A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;; +A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;; +A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;; +A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;; +A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;; +A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;; +A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;; +A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;; +A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;; +A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;; +A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;; +A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;; +A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;; +A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;; +A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;; +A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;; +A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;; +A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;; +A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;; +A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;; +A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;; +A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;; +A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;; +A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;; +A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;; +A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;; +A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;; +A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;; +A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;; +A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;; +A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;; +A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;; +A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;; +A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;; +A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;; +A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;; +A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;; +A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;; +A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;; +A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;; +A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;; +A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;; +A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;; +A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;; +A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;; +A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;; +A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;; +A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;; +A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;; +A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;; +A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;; +A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;; +A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;; +A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;; +A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;; +A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;; +A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;; +A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;; +A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;; +A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;; +A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;; +A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;; +A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;; +A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;; +A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;; +A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;; +A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;; +A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;; +A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;; +A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;; +A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;; +A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;; +A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;; +A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;; +A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;; +A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;; +A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;; +A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;; +A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;; +A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;; +A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;; +A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;; +A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;; +A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;; +A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;; +A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;; +A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;; +A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;; +A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;; +A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;; +A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;; +A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;; +A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;; +A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;; +A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;; +A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;; +A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;; +A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;; +A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;; +A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;; +A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;; +A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;; +A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;; +A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;; +A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;; +A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;; +A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;; +A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;; +A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;; +A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;; +A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;; +A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;; +A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;; +A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;; +A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;; +A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;; +A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;; +A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;; +A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;; +A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;; +A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;; +A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;; +A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;; +A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;; +A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;; +A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;; +A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;; +A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;; +A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;; +A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;; +A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;; +A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;; +A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;; +A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;; +A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;; +A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;; +A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;; +A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;; +A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;; +A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;; +A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;; +A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;; +A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;; +A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;; +A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;; +A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;; +A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;; +A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;; +A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;; +A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;; +A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;; +A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;; +A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;; +A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;; +A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;; +A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;; +A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;; +A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;; +A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;; +A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;; +A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;; +A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;; +A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;; +A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;; +A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;; +A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;; +A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;; +A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;; +A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;; +A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;; +A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;; +A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;; +A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;; +A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;; +A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;; +A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;; +A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;; +A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;; +A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;; +A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;; +A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;; +A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;; +A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;; +A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;; +A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;; +A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;; +A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;; +A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;; +A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;; +A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;; +A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;; +A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;; +A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;; +A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;; +A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;; +A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;; +A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;; +A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;; +A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;; +A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;; +A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;; +A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;; +A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;; +A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;; +A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;; +A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;; +A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;; +A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;; +A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;; +A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;; +A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;; +A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;; +A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;; +A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;; +A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;; +A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;; +A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;; +A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;; +A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;; +A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;; +A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;; +A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;; +A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;; +A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;; +A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;; +A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;; +A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;; +A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;; +A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;; +A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;; +A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;; +A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;; +A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;; +A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;; +A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;; +A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;; +A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;; +A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;; +A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;; +A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;; +A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;; +A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;; +A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;; +A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;; +A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;; +A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;; +A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;; +A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;; +A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;; +A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;; +A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;; +A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;; +A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;; +A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;; +A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;; +A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; +A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;; +A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;; +A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;; +A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;; +A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;; +A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;; +A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; +A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;; +A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;; +A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;; +A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; +A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;; +A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;; +A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;; +A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; +A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;; +A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;; +A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;; +A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;; +A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;; +A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;; +A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;; +A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;; +A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;; +A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;; +A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;; +A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;; +A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;; +A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;; +A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;; +A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;; +A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;; +A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;; +A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;; +A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;; +A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;; +A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;; +A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;; +A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;; +A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;; +A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;; +A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;; +A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;; +A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;; +A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;; +A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;; +A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;; +A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;; +A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;; +A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;; +A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;; +A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;; +A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;; +A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;; +A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;; +A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;; +A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;; +A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;; +A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;; +A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;; +A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;; +A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;; +A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;; +A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;; +A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;; +A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;; +A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;; +A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;; +A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;; +A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;; +A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;; +A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;; +A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;; +A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;; +A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;; +A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;; +A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;; +A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;; +A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;; +A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;; +A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;; +A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;; +A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;; +A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;; +A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;; +A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;; +A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;; +A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;; +A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;; +A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;; +A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;; +A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;; +A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;; +A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;; +A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;; +A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;; +A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;; +A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;; +A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;; +A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;; +A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;; +A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;; +A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;; +A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;; +A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;; +A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;; +A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;; +A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;; +A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;; +A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;; +A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;; +A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;; +A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;; +A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;; +A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;; +A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;; +A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;; +A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;; +A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;; +A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;; +A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;; +A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;; +A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;; +A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;; +A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;; +A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;; +A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;; +A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;; +A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;; +A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;; +A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;; +A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;; +A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;; +A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;; +A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;; +A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;; +A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;; +A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;; +A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;; +A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;; +A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;; +A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;; +A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;; +A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;; +A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;; +A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;; +A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;; +A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;; +A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;; +A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;; +A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;; +A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;; +A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;; +A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;; +A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;; +A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;; +A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;; +A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;; +A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;; +A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;; +A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;; +A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;; +A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;; +A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;; +A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;; +A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;; +A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;; +A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;; +A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;; +A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;; +A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;; +A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;; +A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;; +A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;; +A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;; +A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;; +A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;; +A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;; +A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;; +A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;; +A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;; +A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;; +A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;; +A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;; +A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;; +A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;; +A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;; +A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;; +A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;; +A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;; +A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;; +A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;; +A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;; +A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;; +A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;; +A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;; +A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;; +A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;; +A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;; +A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;; +A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;; +A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;; +A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;; +A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;; +A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;; +A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;; +A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;; +A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;; +A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;; +A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;; +A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;; +A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;; +A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;; +A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;; +A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;; +A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;; +A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;; +A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;; +A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;; +A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;; +A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;; +A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;; +A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;; +A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;; +A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;; +A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;; +A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;; +A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;; +A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;; +A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;; +A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;; +A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;; +A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;; +A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;; +A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;; +A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;; +A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;; +A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;; +A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;; +A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;; +A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;; +A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;; +A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;; +A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;; +A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;; +A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;; +A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;; +A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;; +A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;; +A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;; +A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;; +A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;; +A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;; +A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;; +A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;; +A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;; +A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;; +A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;; +A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;; +A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;; +A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;; +A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;; +A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;; +A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;; +A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;; +A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;; +A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;; +A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;; +A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;; +A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;; +A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;; +A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;; +A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;; +A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;; +A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;; +A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;; +A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;; +A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;; +A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;; +A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;; +A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;; +A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;; +A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;; +A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;; +A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;; +A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;; +A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;; +A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;; +A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;; +A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;; +A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;; +A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;; +A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;; +A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;; +A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;; +A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;; +A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;; +A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;; +A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;; +A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;; +A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;; +A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;; +A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;; +A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;; +A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;; +A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;; +A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;; +A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;; +A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;; +A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;; +A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;; +A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;; +A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;; +A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;; +A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;; +A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;; +A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;; +A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;; +A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;; +A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;; +A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;; +A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;; +A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;; +A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;; +A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;; +A491;YI RADICAL LI;So;0;ON;;;;;N;;;;; +A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;; +A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;; +A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;; +A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;; +A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;; +A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;; +A498;YI RADICAL MI;So;0;ON;;;;;N;;;;; +A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;; +A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;; +A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;; +A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;; +A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;; +A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;; +A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;; +A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;; +A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;; +A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;; +A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;; +A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;; +A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;; +A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;; +A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;; +A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;; +A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;; +A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;; +A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;; +A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;; +A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;; +A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;; +A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;; +A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;; +A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;; +A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;; +A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;; +A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;; +A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;; +A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;; +A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;; +A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;; +A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;; +A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;; +A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;; +A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;; +A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;; +A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;; +A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;; +A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;; +A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;; +A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;; +A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;; +A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;; +A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;; +A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;; +A4D0;LISU LETTER BA;Lo;0;L;;;;;N;;;;; +A4D1;LISU LETTER PA;Lo;0;L;;;;;N;;;;; +A4D2;LISU LETTER PHA;Lo;0;L;;;;;N;;;;; +A4D3;LISU LETTER DA;Lo;0;L;;;;;N;;;;; +A4D4;LISU LETTER TA;Lo;0;L;;;;;N;;;;; +A4D5;LISU LETTER THA;Lo;0;L;;;;;N;;;;; +A4D6;LISU LETTER GA;Lo;0;L;;;;;N;;;;; +A4D7;LISU LETTER KA;Lo;0;L;;;;;N;;;;; +A4D8;LISU LETTER KHA;Lo;0;L;;;;;N;;;;; +A4D9;LISU LETTER JA;Lo;0;L;;;;;N;;;;; +A4DA;LISU LETTER CA;Lo;0;L;;;;;N;;;;; +A4DB;LISU LETTER CHA;Lo;0;L;;;;;N;;;;; +A4DC;LISU LETTER DZA;Lo;0;L;;;;;N;;;;; +A4DD;LISU LETTER TSA;Lo;0;L;;;;;N;;;;; +A4DE;LISU LETTER TSHA;Lo;0;L;;;;;N;;;;; +A4DF;LISU LETTER MA;Lo;0;L;;;;;N;;;;; +A4E0;LISU LETTER NA;Lo;0;L;;;;;N;;;;; +A4E1;LISU LETTER LA;Lo;0;L;;;;;N;;;;; +A4E2;LISU LETTER SA;Lo;0;L;;;;;N;;;;; +A4E3;LISU LETTER ZHA;Lo;0;L;;;;;N;;;;; +A4E4;LISU LETTER ZA;Lo;0;L;;;;;N;;;;; +A4E5;LISU LETTER NGA;Lo;0;L;;;;;N;;;;; +A4E6;LISU LETTER HA;Lo;0;L;;;;;N;;;;; +A4E7;LISU LETTER XA;Lo;0;L;;;;;N;;;;; +A4E8;LISU LETTER HHA;Lo;0;L;;;;;N;;;;; +A4E9;LISU LETTER FA;Lo;0;L;;;;;N;;;;; +A4EA;LISU LETTER WA;Lo;0;L;;;;;N;;;;; +A4EB;LISU LETTER SHA;Lo;0;L;;;;;N;;;;; +A4EC;LISU LETTER YA;Lo;0;L;;;;;N;;;;; +A4ED;LISU LETTER GHA;Lo;0;L;;;;;N;;;;; +A4EE;LISU LETTER A;Lo;0;L;;;;;N;;;;; +A4EF;LISU LETTER AE;Lo;0;L;;;;;N;;;;; +A4F0;LISU LETTER E;Lo;0;L;;;;;N;;;;; +A4F1;LISU LETTER EU;Lo;0;L;;;;;N;;;;; +A4F2;LISU LETTER I;Lo;0;L;;;;;N;;;;; +A4F3;LISU LETTER O;Lo;0;L;;;;;N;;;;; +A4F4;LISU LETTER U;Lo;0;L;;;;;N;;;;; +A4F5;LISU LETTER UE;Lo;0;L;;;;;N;;;;; +A4F6;LISU LETTER UH;Lo;0;L;;;;;N;;;;; +A4F7;LISU LETTER OE;Lo;0;L;;;;;N;;;;; +A4F8;LISU LETTER TONE MYA TI;Lm;0;L;;;;;N;;;;; +A4F9;LISU LETTER TONE NA PO;Lm;0;L;;;;;N;;;;; +A4FA;LISU LETTER TONE MYA CYA;Lm;0;L;;;;;N;;;;; +A4FB;LISU LETTER TONE MYA BO;Lm;0;L;;;;;N;;;;; +A4FC;LISU LETTER TONE MYA NA;Lm;0;L;;;;;N;;;;; +A4FD;LISU LETTER TONE MYA JEU;Lm;0;L;;;;;N;;;;; +A4FE;LISU PUNCTUATION COMMA;Po;0;L;;;;;N;;;;; +A4FF;LISU PUNCTUATION FULL STOP;Po;0;L;;;;;N;;;;; +A500;VAI SYLLABLE EE;Lo;0;L;;;;;N;;;;; +A501;VAI SYLLABLE EEN;Lo;0;L;;;;;N;;;;; +A502;VAI SYLLABLE HEE;Lo;0;L;;;;;N;;;;; +A503;VAI SYLLABLE WEE;Lo;0;L;;;;;N;;;;; +A504;VAI SYLLABLE WEEN;Lo;0;L;;;;;N;;;;; +A505;VAI SYLLABLE PEE;Lo;0;L;;;;;N;;;;; +A506;VAI SYLLABLE BHEE;Lo;0;L;;;;;N;;;;; +A507;VAI SYLLABLE BEE;Lo;0;L;;;;;N;;;;; +A508;VAI SYLLABLE MBEE;Lo;0;L;;;;;N;;;;; +A509;VAI SYLLABLE KPEE;Lo;0;L;;;;;N;;;;; +A50A;VAI SYLLABLE MGBEE;Lo;0;L;;;;;N;;;;; +A50B;VAI SYLLABLE GBEE;Lo;0;L;;;;;N;;;;; +A50C;VAI SYLLABLE FEE;Lo;0;L;;;;;N;;;;; +A50D;VAI SYLLABLE VEE;Lo;0;L;;;;;N;;;;; +A50E;VAI SYLLABLE TEE;Lo;0;L;;;;;N;;;;; +A50F;VAI SYLLABLE THEE;Lo;0;L;;;;;N;;;;; +A510;VAI SYLLABLE DHEE;Lo;0;L;;;;;N;;;;; +A511;VAI SYLLABLE DHHEE;Lo;0;L;;;;;N;;;;; +A512;VAI SYLLABLE LEE;Lo;0;L;;;;;N;;;;; +A513;VAI SYLLABLE REE;Lo;0;L;;;;;N;;;;; +A514;VAI SYLLABLE DEE;Lo;0;L;;;;;N;;;;; +A515;VAI SYLLABLE NDEE;Lo;0;L;;;;;N;;;;; +A516;VAI SYLLABLE SEE;Lo;0;L;;;;;N;;;;; +A517;VAI SYLLABLE SHEE;Lo;0;L;;;;;N;;;;; +A518;VAI SYLLABLE ZEE;Lo;0;L;;;;;N;;;;; +A519;VAI SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;; +A51A;VAI SYLLABLE CEE;Lo;0;L;;;;;N;;;;; +A51B;VAI SYLLABLE JEE;Lo;0;L;;;;;N;;;;; +A51C;VAI SYLLABLE NJEE;Lo;0;L;;;;;N;;;;; +A51D;VAI SYLLABLE YEE;Lo;0;L;;;;;N;;;;; +A51E;VAI SYLLABLE KEE;Lo;0;L;;;;;N;;;;; +A51F;VAI SYLLABLE NGGEE;Lo;0;L;;;;;N;;;;; +A520;VAI SYLLABLE GEE;Lo;0;L;;;;;N;;;;; +A521;VAI SYLLABLE MEE;Lo;0;L;;;;;N;;;;; +A522;VAI SYLLABLE NEE;Lo;0;L;;;;;N;;;;; +A523;VAI SYLLABLE NYEE;Lo;0;L;;;;;N;;;;; +A524;VAI SYLLABLE I;Lo;0;L;;;;;N;;;;; +A525;VAI SYLLABLE IN;Lo;0;L;;;;;N;;;;; +A526;VAI SYLLABLE HI;Lo;0;L;;;;;N;;;;; +A527;VAI SYLLABLE HIN;Lo;0;L;;;;;N;;;;; +A528;VAI SYLLABLE WI;Lo;0;L;;;;;N;;;;; +A529;VAI SYLLABLE WIN;Lo;0;L;;;;;N;;;;; +A52A;VAI SYLLABLE PI;Lo;0;L;;;;;N;;;;; +A52B;VAI SYLLABLE BHI;Lo;0;L;;;;;N;;;;; +A52C;VAI SYLLABLE BI;Lo;0;L;;;;;N;;;;; +A52D;VAI SYLLABLE MBI;Lo;0;L;;;;;N;;;;; +A52E;VAI SYLLABLE KPI;Lo;0;L;;;;;N;;;;; +A52F;VAI SYLLABLE MGBI;Lo;0;L;;;;;N;;;;; +A530;VAI SYLLABLE GBI;Lo;0;L;;;;;N;;;;; +A531;VAI SYLLABLE FI;Lo;0;L;;;;;N;;;;; +A532;VAI SYLLABLE VI;Lo;0;L;;;;;N;;;;; +A533;VAI SYLLABLE TI;Lo;0;L;;;;;N;;;;; +A534;VAI SYLLABLE THI;Lo;0;L;;;;;N;;;;; +A535;VAI SYLLABLE DHI;Lo;0;L;;;;;N;;;;; +A536;VAI SYLLABLE DHHI;Lo;0;L;;;;;N;;;;; +A537;VAI SYLLABLE LI;Lo;0;L;;;;;N;;;;; +A538;VAI SYLLABLE RI;Lo;0;L;;;;;N;;;;; +A539;VAI SYLLABLE DI;Lo;0;L;;;;;N;;;;; +A53A;VAI SYLLABLE NDI;Lo;0;L;;;;;N;;;;; +A53B;VAI SYLLABLE SI;Lo;0;L;;;;;N;;;;; +A53C;VAI SYLLABLE SHI;Lo;0;L;;;;;N;;;;; +A53D;VAI SYLLABLE ZI;Lo;0;L;;;;;N;;;;; +A53E;VAI SYLLABLE ZHI;Lo;0;L;;;;;N;;;;; +A53F;VAI SYLLABLE CI;Lo;0;L;;;;;N;;;;; +A540;VAI SYLLABLE JI;Lo;0;L;;;;;N;;;;; +A541;VAI SYLLABLE NJI;Lo;0;L;;;;;N;;;;; +A542;VAI SYLLABLE YI;Lo;0;L;;;;;N;;;;; +A543;VAI SYLLABLE KI;Lo;0;L;;;;;N;;;;; +A544;VAI SYLLABLE NGGI;Lo;0;L;;;;;N;;;;; +A545;VAI SYLLABLE GI;Lo;0;L;;;;;N;;;;; +A546;VAI SYLLABLE MI;Lo;0;L;;;;;N;;;;; +A547;VAI SYLLABLE NI;Lo;0;L;;;;;N;;;;; +A548;VAI SYLLABLE NYI;Lo;0;L;;;;;N;;;;; +A549;VAI SYLLABLE A;Lo;0;L;;;;;N;;;;; +A54A;VAI SYLLABLE AN;Lo;0;L;;;;;N;;;;; +A54B;VAI SYLLABLE NGAN;Lo;0;L;;;;;N;;;;; +A54C;VAI SYLLABLE HA;Lo;0;L;;;;;N;;;;; +A54D;VAI SYLLABLE HAN;Lo;0;L;;;;;N;;;;; +A54E;VAI SYLLABLE WA;Lo;0;L;;;;;N;;;;; +A54F;VAI SYLLABLE WAN;Lo;0;L;;;;;N;;;;; +A550;VAI SYLLABLE PA;Lo;0;L;;;;;N;;;;; +A551;VAI SYLLABLE BHA;Lo;0;L;;;;;N;;;;; +A552;VAI SYLLABLE BA;Lo;0;L;;;;;N;;;;; +A553;VAI SYLLABLE MBA;Lo;0;L;;;;;N;;;;; +A554;VAI SYLLABLE KPA;Lo;0;L;;;;;N;;;;; +A555;VAI SYLLABLE KPAN;Lo;0;L;;;;;N;;;;; +A556;VAI SYLLABLE MGBA;Lo;0;L;;;;;N;;;;; +A557;VAI SYLLABLE GBA;Lo;0;L;;;;;N;;;;; +A558;VAI SYLLABLE FA;Lo;0;L;;;;;N;;;;; +A559;VAI SYLLABLE VA;Lo;0;L;;;;;N;;;;; +A55A;VAI SYLLABLE TA;Lo;0;L;;;;;N;;;;; +A55B;VAI SYLLABLE THA;Lo;0;L;;;;;N;;;;; +A55C;VAI SYLLABLE DHA;Lo;0;L;;;;;N;;;;; +A55D;VAI SYLLABLE DHHA;Lo;0;L;;;;;N;;;;; +A55E;VAI SYLLABLE LA;Lo;0;L;;;;;N;;;;; +A55F;VAI SYLLABLE RA;Lo;0;L;;;;;N;;;;; +A560;VAI SYLLABLE DA;Lo;0;L;;;;;N;;;;; +A561;VAI SYLLABLE NDA;Lo;0;L;;;;;N;;;;; +A562;VAI SYLLABLE SA;Lo;0;L;;;;;N;;;;; +A563;VAI SYLLABLE SHA;Lo;0;L;;;;;N;;;;; +A564;VAI SYLLABLE ZA;Lo;0;L;;;;;N;;;;; +A565;VAI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; +A566;VAI SYLLABLE CA;Lo;0;L;;;;;N;;;;; +A567;VAI SYLLABLE JA;Lo;0;L;;;;;N;;;;; +A568;VAI SYLLABLE NJA;Lo;0;L;;;;;N;;;;; +A569;VAI SYLLABLE YA;Lo;0;L;;;;;N;;;;; +A56A;VAI SYLLABLE KA;Lo;0;L;;;;;N;;;;; +A56B;VAI SYLLABLE KAN;Lo;0;L;;;;;N;;;;; +A56C;VAI SYLLABLE NGGA;Lo;0;L;;;;;N;;;;; +A56D;VAI SYLLABLE GA;Lo;0;L;;;;;N;;;;; +A56E;VAI SYLLABLE MA;Lo;0;L;;;;;N;;;;; +A56F;VAI SYLLABLE NA;Lo;0;L;;;;;N;;;;; +A570;VAI SYLLABLE NYA;Lo;0;L;;;;;N;;;;; +A571;VAI SYLLABLE OO;Lo;0;L;;;;;N;;;;; +A572;VAI SYLLABLE OON;Lo;0;L;;;;;N;;;;; +A573;VAI SYLLABLE HOO;Lo;0;L;;;;;N;;;;; +A574;VAI SYLLABLE WOO;Lo;0;L;;;;;N;;;;; +A575;VAI SYLLABLE WOON;Lo;0;L;;;;;N;;;;; +A576;VAI SYLLABLE POO;Lo;0;L;;;;;N;;;;; +A577;VAI SYLLABLE BHOO;Lo;0;L;;;;;N;;;;; +A578;VAI SYLLABLE BOO;Lo;0;L;;;;;N;;;;; +A579;VAI SYLLABLE MBOO;Lo;0;L;;;;;N;;;;; +A57A;VAI SYLLABLE KPOO;Lo;0;L;;;;;N;;;;; +A57B;VAI SYLLABLE MGBOO;Lo;0;L;;;;;N;;;;; +A57C;VAI SYLLABLE GBOO;Lo;0;L;;;;;N;;;;; +A57D;VAI SYLLABLE FOO;Lo;0;L;;;;;N;;;;; +A57E;VAI SYLLABLE VOO;Lo;0;L;;;;;N;;;;; +A57F;VAI SYLLABLE TOO;Lo;0;L;;;;;N;;;;; +A580;VAI SYLLABLE THOO;Lo;0;L;;;;;N;;;;; +A581;VAI SYLLABLE DHOO;Lo;0;L;;;;;N;;;;; +A582;VAI SYLLABLE DHHOO;Lo;0;L;;;;;N;;;;; +A583;VAI SYLLABLE LOO;Lo;0;L;;;;;N;;;;; +A584;VAI SYLLABLE ROO;Lo;0;L;;;;;N;;;;; +A585;VAI SYLLABLE DOO;Lo;0;L;;;;;N;;;;; +A586;VAI SYLLABLE NDOO;Lo;0;L;;;;;N;;;;; +A587;VAI SYLLABLE SOO;Lo;0;L;;;;;N;;;;; +A588;VAI SYLLABLE SHOO;Lo;0;L;;;;;N;;;;; +A589;VAI SYLLABLE ZOO;Lo;0;L;;;;;N;;;;; +A58A;VAI SYLLABLE ZHOO;Lo;0;L;;;;;N;;;;; +A58B;VAI SYLLABLE COO;Lo;0;L;;;;;N;;;;; +A58C;VAI SYLLABLE JOO;Lo;0;L;;;;;N;;;;; +A58D;VAI SYLLABLE NJOO;Lo;0;L;;;;;N;;;;; +A58E;VAI SYLLABLE YOO;Lo;0;L;;;;;N;;;;; +A58F;VAI SYLLABLE KOO;Lo;0;L;;;;;N;;;;; +A590;VAI SYLLABLE NGGOO;Lo;0;L;;;;;N;;;;; +A591;VAI SYLLABLE GOO;Lo;0;L;;;;;N;;;;; +A592;VAI SYLLABLE MOO;Lo;0;L;;;;;N;;;;; +A593;VAI SYLLABLE NOO;Lo;0;L;;;;;N;;;;; +A594;VAI SYLLABLE NYOO;Lo;0;L;;;;;N;;;;; +A595;VAI SYLLABLE U;Lo;0;L;;;;;N;;;;; +A596;VAI SYLLABLE UN;Lo;0;L;;;;;N;;;;; +A597;VAI SYLLABLE HU;Lo;0;L;;;;;N;;;;; +A598;VAI SYLLABLE HUN;Lo;0;L;;;;;N;;;;; +A599;VAI SYLLABLE WU;Lo;0;L;;;;;N;;;;; +A59A;VAI SYLLABLE WUN;Lo;0;L;;;;;N;;;;; +A59B;VAI SYLLABLE PU;Lo;0;L;;;;;N;;;;; +A59C;VAI SYLLABLE BHU;Lo;0;L;;;;;N;;;;; +A59D;VAI SYLLABLE BU;Lo;0;L;;;;;N;;;;; +A59E;VAI SYLLABLE MBU;Lo;0;L;;;;;N;;;;; +A59F;VAI SYLLABLE KPU;Lo;0;L;;;;;N;;;;; +A5A0;VAI SYLLABLE MGBU;Lo;0;L;;;;;N;;;;; +A5A1;VAI SYLLABLE GBU;Lo;0;L;;;;;N;;;;; +A5A2;VAI SYLLABLE FU;Lo;0;L;;;;;N;;;;; +A5A3;VAI SYLLABLE VU;Lo;0;L;;;;;N;;;;; +A5A4;VAI SYLLABLE TU;Lo;0;L;;;;;N;;;;; +A5A5;VAI SYLLABLE THU;Lo;0;L;;;;;N;;;;; +A5A6;VAI SYLLABLE DHU;Lo;0;L;;;;;N;;;;; +A5A7;VAI SYLLABLE DHHU;Lo;0;L;;;;;N;;;;; +A5A8;VAI SYLLABLE LU;Lo;0;L;;;;;N;;;;; +A5A9;VAI SYLLABLE RU;Lo;0;L;;;;;N;;;;; +A5AA;VAI SYLLABLE DU;Lo;0;L;;;;;N;;;;; +A5AB;VAI SYLLABLE NDU;Lo;0;L;;;;;N;;;;; +A5AC;VAI SYLLABLE SU;Lo;0;L;;;;;N;;;;; +A5AD;VAI SYLLABLE SHU;Lo;0;L;;;;;N;;;;; +A5AE;VAI SYLLABLE ZU;Lo;0;L;;;;;N;;;;; +A5AF;VAI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; +A5B0;VAI SYLLABLE CU;Lo;0;L;;;;;N;;;;; +A5B1;VAI SYLLABLE JU;Lo;0;L;;;;;N;;;;; +A5B2;VAI SYLLABLE NJU;Lo;0;L;;;;;N;;;;; +A5B3;VAI SYLLABLE YU;Lo;0;L;;;;;N;;;;; +A5B4;VAI SYLLABLE KU;Lo;0;L;;;;;N;;;;; +A5B5;VAI SYLLABLE NGGU;Lo;0;L;;;;;N;;;;; +A5B6;VAI SYLLABLE GU;Lo;0;L;;;;;N;;;;; +A5B7;VAI SYLLABLE MU;Lo;0;L;;;;;N;;;;; +A5B8;VAI SYLLABLE NU;Lo;0;L;;;;;N;;;;; +A5B9;VAI SYLLABLE NYU;Lo;0;L;;;;;N;;;;; +A5BA;VAI SYLLABLE O;Lo;0;L;;;;;N;;;;; +A5BB;VAI SYLLABLE ON;Lo;0;L;;;;;N;;;;; +A5BC;VAI SYLLABLE NGON;Lo;0;L;;;;;N;;;;; +A5BD;VAI SYLLABLE HO;Lo;0;L;;;;;N;;;;; +A5BE;VAI SYLLABLE HON;Lo;0;L;;;;;N;;;;; +A5BF;VAI SYLLABLE WO;Lo;0;L;;;;;N;;;;; +A5C0;VAI SYLLABLE WON;Lo;0;L;;;;;N;;;;; +A5C1;VAI SYLLABLE PO;Lo;0;L;;;;;N;;;;; +A5C2;VAI SYLLABLE BHO;Lo;0;L;;;;;N;;;;; +A5C3;VAI SYLLABLE BO;Lo;0;L;;;;;N;;;;; +A5C4;VAI SYLLABLE MBO;Lo;0;L;;;;;N;;;;; +A5C5;VAI SYLLABLE KPO;Lo;0;L;;;;;N;;;;; +A5C6;VAI SYLLABLE MGBO;Lo;0;L;;;;;N;;;;; +A5C7;VAI SYLLABLE GBO;Lo;0;L;;;;;N;;;;; +A5C8;VAI SYLLABLE GBON;Lo;0;L;;;;;N;;;;; +A5C9;VAI SYLLABLE FO;Lo;0;L;;;;;N;;;;; +A5CA;VAI SYLLABLE VO;Lo;0;L;;;;;N;;;;; +A5CB;VAI SYLLABLE TO;Lo;0;L;;;;;N;;;;; +A5CC;VAI SYLLABLE THO;Lo;0;L;;;;;N;;;;; +A5CD;VAI SYLLABLE DHO;Lo;0;L;;;;;N;;;;; +A5CE;VAI SYLLABLE DHHO;Lo;0;L;;;;;N;;;;; +A5CF;VAI SYLLABLE LO;Lo;0;L;;;;;N;;;;; +A5D0;VAI SYLLABLE RO;Lo;0;L;;;;;N;;;;; +A5D1;VAI SYLLABLE DO;Lo;0;L;;;;;N;;;;; +A5D2;VAI SYLLABLE NDO;Lo;0;L;;;;;N;;;;; +A5D3;VAI SYLLABLE SO;Lo;0;L;;;;;N;;;;; +A5D4;VAI SYLLABLE SHO;Lo;0;L;;;;;N;;;;; +A5D5;VAI SYLLABLE ZO;Lo;0;L;;;;;N;;;;; +A5D6;VAI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; +A5D7;VAI SYLLABLE CO;Lo;0;L;;;;;N;;;;; +A5D8;VAI SYLLABLE JO;Lo;0;L;;;;;N;;;;; +A5D9;VAI SYLLABLE NJO;Lo;0;L;;;;;N;;;;; +A5DA;VAI SYLLABLE YO;Lo;0;L;;;;;N;;;;; +A5DB;VAI SYLLABLE KO;Lo;0;L;;;;;N;;;;; +A5DC;VAI SYLLABLE NGGO;Lo;0;L;;;;;N;;;;; +A5DD;VAI SYLLABLE GO;Lo;0;L;;;;;N;;;;; +A5DE;VAI SYLLABLE MO;Lo;0;L;;;;;N;;;;; +A5DF;VAI SYLLABLE NO;Lo;0;L;;;;;N;;;;; +A5E0;VAI SYLLABLE NYO;Lo;0;L;;;;;N;;;;; +A5E1;VAI SYLLABLE E;Lo;0;L;;;;;N;;;;; +A5E2;VAI SYLLABLE EN;Lo;0;L;;;;;N;;;;; +A5E3;VAI SYLLABLE NGEN;Lo;0;L;;;;;N;;;;; +A5E4;VAI SYLLABLE HE;Lo;0;L;;;;;N;;;;; +A5E5;VAI SYLLABLE HEN;Lo;0;L;;;;;N;;;;; +A5E6;VAI SYLLABLE WE;Lo;0;L;;;;;N;;;;; +A5E7;VAI SYLLABLE WEN;Lo;0;L;;;;;N;;;;; +A5E8;VAI SYLLABLE PE;Lo;0;L;;;;;N;;;;; +A5E9;VAI SYLLABLE BHE;Lo;0;L;;;;;N;;;;; +A5EA;VAI SYLLABLE BE;Lo;0;L;;;;;N;;;;; +A5EB;VAI SYLLABLE MBE;Lo;0;L;;;;;N;;;;; +A5EC;VAI SYLLABLE KPE;Lo;0;L;;;;;N;;;;; +A5ED;VAI SYLLABLE KPEN;Lo;0;L;;;;;N;;;;; +A5EE;VAI SYLLABLE MGBE;Lo;0;L;;;;;N;;;;; +A5EF;VAI SYLLABLE GBE;Lo;0;L;;;;;N;;;;; +A5F0;VAI SYLLABLE GBEN;Lo;0;L;;;;;N;;;;; +A5F1;VAI SYLLABLE FE;Lo;0;L;;;;;N;;;;; +A5F2;VAI SYLLABLE VE;Lo;0;L;;;;;N;;;;; +A5F3;VAI SYLLABLE TE;Lo;0;L;;;;;N;;;;; +A5F4;VAI SYLLABLE THE;Lo;0;L;;;;;N;;;;; +A5F5;VAI SYLLABLE DHE;Lo;0;L;;;;;N;;;;; +A5F6;VAI SYLLABLE DHHE;Lo;0;L;;;;;N;;;;; +A5F7;VAI SYLLABLE LE;Lo;0;L;;;;;N;;;;; +A5F8;VAI SYLLABLE RE;Lo;0;L;;;;;N;;;;; +A5F9;VAI SYLLABLE DE;Lo;0;L;;;;;N;;;;; +A5FA;VAI SYLLABLE NDE;Lo;0;L;;;;;N;;;;; +A5FB;VAI SYLLABLE SE;Lo;0;L;;;;;N;;;;; +A5FC;VAI SYLLABLE SHE;Lo;0;L;;;;;N;;;;; +A5FD;VAI SYLLABLE ZE;Lo;0;L;;;;;N;;;;; +A5FE;VAI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; +A5FF;VAI SYLLABLE CE;Lo;0;L;;;;;N;;;;; +A600;VAI SYLLABLE JE;Lo;0;L;;;;;N;;;;; +A601;VAI SYLLABLE NJE;Lo;0;L;;;;;N;;;;; +A602;VAI SYLLABLE YE;Lo;0;L;;;;;N;;;;; +A603;VAI SYLLABLE KE;Lo;0;L;;;;;N;;;;; +A604;VAI SYLLABLE NGGE;Lo;0;L;;;;;N;;;;; +A605;VAI SYLLABLE NGGEN;Lo;0;L;;;;;N;;;;; +A606;VAI SYLLABLE GE;Lo;0;L;;;;;N;;;;; +A607;VAI SYLLABLE GEN;Lo;0;L;;;;;N;;;;; +A608;VAI SYLLABLE ME;Lo;0;L;;;;;N;;;;; +A609;VAI SYLLABLE NE;Lo;0;L;;;;;N;;;;; +A60A;VAI SYLLABLE NYE;Lo;0;L;;;;;N;;;;; +A60B;VAI SYLLABLE NG;Lo;0;L;;;;;N;;;;; +A60C;VAI SYLLABLE LENGTHENER;Lm;0;L;;;;;N;;;;; +A60D;VAI COMMA;Po;0;ON;;;;;N;;;;; +A60E;VAI FULL STOP;Po;0;ON;;;;;N;;;;; +A60F;VAI QUESTION MARK;Po;0;ON;;;;;N;;;;; +A610;VAI SYLLABLE NDOLE FA;Lo;0;L;;;;;N;;;;; +A611;VAI SYLLABLE NDOLE KA;Lo;0;L;;;;;N;;;;; +A612;VAI SYLLABLE NDOLE SOO;Lo;0;L;;;;;N;;;;; +A613;VAI SYMBOL FEENG;Lo;0;L;;;;;N;;;;; +A614;VAI SYMBOL KEENG;Lo;0;L;;;;;N;;;;; +A615;VAI SYMBOL TING;Lo;0;L;;;;;N;;;;; +A616;VAI SYMBOL NII;Lo;0;L;;;;;N;;;;; +A617;VAI SYMBOL BANG;Lo;0;L;;;;;N;;;;; +A618;VAI SYMBOL FAA;Lo;0;L;;;;;N;;;;; +A619;VAI SYMBOL TAA;Lo;0;L;;;;;N;;;;; +A61A;VAI SYMBOL DANG;Lo;0;L;;;;;N;;;;; +A61B;VAI SYMBOL DOONG;Lo;0;L;;;;;N;;;;; +A61C;VAI SYMBOL KUNG;Lo;0;L;;;;;N;;;;; +A61D;VAI SYMBOL TONG;Lo;0;L;;;;;N;;;;; +A61E;VAI SYMBOL DO-O;Lo;0;L;;;;;N;;;;; +A61F;VAI SYMBOL JONG;Lo;0;L;;;;;N;;;;; +A620;VAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +A621;VAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +A622;VAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +A623;VAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +A624;VAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +A625;VAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +A626;VAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +A627;VAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +A628;VAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +A629;VAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +A62A;VAI SYLLABLE NDOLE MA;Lo;0;L;;;;;N;;;;; +A62B;VAI SYLLABLE NDOLE DO;Lo;0;L;;;;;N;;;;; +A640;CYRILLIC CAPITAL LETTER ZEMLYA;Lu;0;L;;;;;N;;;;A641; +A641;CYRILLIC SMALL LETTER ZEMLYA;Ll;0;L;;;;;N;;;A640;;A640 +A642;CYRILLIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;A643; +A643;CYRILLIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;A642;;A642 +A644;CYRILLIC CAPITAL LETTER REVERSED DZE;Lu;0;L;;;;;N;;;;A645; +A645;CYRILLIC SMALL LETTER REVERSED DZE;Ll;0;L;;;;;N;;;A644;;A644 +A646;CYRILLIC CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;A647; +A647;CYRILLIC SMALL LETTER IOTA;Ll;0;L;;;;;N;;;A646;;A646 +A648;CYRILLIC CAPITAL LETTER DJERV;Lu;0;L;;;;;N;;;;A649; +A649;CYRILLIC SMALL LETTER DJERV;Ll;0;L;;;;;N;;;A648;;A648 +A64A;CYRILLIC CAPITAL LETTER MONOGRAPH UK;Lu;0;L;;;;;N;;;;A64B; +A64B;CYRILLIC SMALL LETTER MONOGRAPH UK;Ll;0;L;;;;;N;;;A64A;;A64A +A64C;CYRILLIC CAPITAL LETTER BROAD OMEGA;Lu;0;L;;;;;N;;;;A64D; +A64D;CYRILLIC SMALL LETTER BROAD OMEGA;Ll;0;L;;;;;N;;;A64C;;A64C +A64E;CYRILLIC CAPITAL LETTER NEUTRAL YER;Lu;0;L;;;;;N;;;;A64F; +A64F;CYRILLIC SMALL LETTER NEUTRAL YER;Ll;0;L;;;;;N;;;A64E;;A64E +A650;CYRILLIC CAPITAL LETTER YERU WITH BACK YER;Lu;0;L;;;;;N;;;;A651; +A651;CYRILLIC SMALL LETTER YERU WITH BACK YER;Ll;0;L;;;;;N;;;A650;;A650 +A652;CYRILLIC CAPITAL LETTER IOTIFIED YAT;Lu;0;L;;;;;N;;;;A653; +A653;CYRILLIC SMALL LETTER IOTIFIED YAT;Ll;0;L;;;;;N;;;A652;;A652 +A654;CYRILLIC CAPITAL LETTER REVERSED YU;Lu;0;L;;;;;N;;;;A655; +A655;CYRILLIC SMALL LETTER REVERSED YU;Ll;0;L;;;;;N;;;A654;;A654 +A656;CYRILLIC CAPITAL LETTER IOTIFIED A;Lu;0;L;;;;;N;;;;A657; +A657;CYRILLIC SMALL LETTER IOTIFIED A;Ll;0;L;;;;;N;;;A656;;A656 +A658;CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A659; +A659;CYRILLIC SMALL LETTER CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A658;;A658 +A65A;CYRILLIC CAPITAL LETTER BLENDED YUS;Lu;0;L;;;;;N;;;;A65B; +A65B;CYRILLIC SMALL LETTER BLENDED YUS;Ll;0;L;;;;;N;;;A65A;;A65A +A65C;CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A65D; +A65D;CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A65C;;A65C +A65E;CYRILLIC CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;A65F; +A65F;CYRILLIC SMALL LETTER YN;Ll;0;L;;;;;N;;;A65E;;A65E +A660;CYRILLIC CAPITAL LETTER REVERSED TSE;Lu;0;L;;;;;N;;;;A661; +A661;CYRILLIC SMALL LETTER REVERSED TSE;Ll;0;L;;;;;N;;;A660;;A660 +A662;CYRILLIC CAPITAL LETTER SOFT DE;Lu;0;L;;;;;N;;;;A663; +A663;CYRILLIC SMALL LETTER SOFT DE;Ll;0;L;;;;;N;;;A662;;A662 +A664;CYRILLIC CAPITAL LETTER SOFT EL;Lu;0;L;;;;;N;;;;A665; +A665;CYRILLIC SMALL LETTER SOFT EL;Ll;0;L;;;;;N;;;A664;;A664 +A666;CYRILLIC CAPITAL LETTER SOFT EM;Lu;0;L;;;;;N;;;;A667; +A667;CYRILLIC SMALL LETTER SOFT EM;Ll;0;L;;;;;N;;;A666;;A666 +A668;CYRILLIC CAPITAL LETTER MONOCULAR O;Lu;0;L;;;;;N;;;;A669; +A669;CYRILLIC SMALL LETTER MONOCULAR O;Ll;0;L;;;;;N;;;A668;;A668 +A66A;CYRILLIC CAPITAL LETTER BINOCULAR O;Lu;0;L;;;;;N;;;;A66B; +A66B;CYRILLIC SMALL LETTER BINOCULAR O;Ll;0;L;;;;;N;;;A66A;;A66A +A66C;CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O;Lu;0;L;;;;;N;;;;A66D; +A66D;CYRILLIC SMALL LETTER DOUBLE MONOCULAR O;Ll;0;L;;;;;N;;;A66C;;A66C +A66E;CYRILLIC LETTER MULTIOCULAR O;Lo;0;L;;;;;N;;;;; +A66F;COMBINING CYRILLIC VZMET;Mn;230;NSM;;;;;N;;;;; +A670;COMBINING CYRILLIC TEN MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; +A671;COMBINING CYRILLIC HUNDRED MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; +A672;COMBINING CYRILLIC THOUSAND MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; +A673;SLAVONIC ASTERISK;Po;0;ON;;;;;N;;;;; +A674;COMBINING CYRILLIC LETTER UKRAINIAN IE;Mn;230;NSM;;;;;N;;;;; +A675;COMBINING CYRILLIC LETTER I;Mn;230;NSM;;;;;N;;;;; +A676;COMBINING CYRILLIC LETTER YI;Mn;230;NSM;;;;;N;;;;; +A677;COMBINING CYRILLIC LETTER U;Mn;230;NSM;;;;;N;;;;; +A678;COMBINING CYRILLIC LETTER HARD SIGN;Mn;230;NSM;;;;;N;;;;; +A679;COMBINING CYRILLIC LETTER YERU;Mn;230;NSM;;;;;N;;;;; +A67A;COMBINING CYRILLIC LETTER SOFT SIGN;Mn;230;NSM;;;;;N;;;;; +A67B;COMBINING CYRILLIC LETTER OMEGA;Mn;230;NSM;;;;;N;;;;; +A67C;COMBINING CYRILLIC KAVYKA;Mn;230;NSM;;;;;N;;;;; +A67D;COMBINING CYRILLIC PAYEROK;Mn;230;NSM;;;;;N;;;;; +A67E;CYRILLIC KAVYKA;Po;0;ON;;;;;N;;;;; +A67F;CYRILLIC PAYEROK;Lm;0;ON;;;;;N;;;;; +A680;CYRILLIC CAPITAL LETTER DWE;Lu;0;L;;;;;N;;;;A681; +A681;CYRILLIC SMALL LETTER DWE;Ll;0;L;;;;;N;;;A680;;A680 +A682;CYRILLIC CAPITAL LETTER DZWE;Lu;0;L;;;;;N;;;;A683; +A683;CYRILLIC SMALL LETTER DZWE;Ll;0;L;;;;;N;;;A682;;A682 +A684;CYRILLIC CAPITAL LETTER ZHWE;Lu;0;L;;;;;N;;;;A685; +A685;CYRILLIC SMALL LETTER ZHWE;Ll;0;L;;;;;N;;;A684;;A684 +A686;CYRILLIC CAPITAL LETTER CCHE;Lu;0;L;;;;;N;;;;A687; +A687;CYRILLIC SMALL LETTER CCHE;Ll;0;L;;;;;N;;;A686;;A686 +A688;CYRILLIC CAPITAL LETTER DZZE;Lu;0;L;;;;;N;;;;A689; +A689;CYRILLIC SMALL LETTER DZZE;Ll;0;L;;;;;N;;;A688;;A688 +A68A;CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;A68B; +A68B;CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;A68A;;A68A +A68C;CYRILLIC CAPITAL LETTER TWE;Lu;0;L;;;;;N;;;;A68D; +A68D;CYRILLIC SMALL LETTER TWE;Ll;0;L;;;;;N;;;A68C;;A68C +A68E;CYRILLIC CAPITAL LETTER TSWE;Lu;0;L;;;;;N;;;;A68F; +A68F;CYRILLIC SMALL LETTER TSWE;Ll;0;L;;;;;N;;;A68E;;A68E +A690;CYRILLIC CAPITAL LETTER TSSE;Lu;0;L;;;;;N;;;;A691; +A691;CYRILLIC SMALL LETTER TSSE;Ll;0;L;;;;;N;;;A690;;A690 +A692;CYRILLIC CAPITAL LETTER TCHE;Lu;0;L;;;;;N;;;;A693; +A693;CYRILLIC SMALL LETTER TCHE;Ll;0;L;;;;;N;;;A692;;A692 +A694;CYRILLIC CAPITAL LETTER HWE;Lu;0;L;;;;;N;;;;A695; +A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694 +A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697; +A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696 +A69F;COMBINING CYRILLIC LETTER IOTIFIED E;Mn;230;NSM;;;;;N;;;;; +A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;; +A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;; +A6A2;BAMUM LETTER U;Lo;0;L;;;;;N;;;;; +A6A3;BAMUM LETTER KU;Lo;0;L;;;;;N;;;;; +A6A4;BAMUM LETTER EE;Lo;0;L;;;;;N;;;;; +A6A5;BAMUM LETTER REE;Lo;0;L;;;;;N;;;;; +A6A6;BAMUM LETTER TAE;Lo;0;L;;;;;N;;;;; +A6A7;BAMUM LETTER O;Lo;0;L;;;;;N;;;;; +A6A8;BAMUM LETTER NYI;Lo;0;L;;;;;N;;;;; +A6A9;BAMUM LETTER I;Lo;0;L;;;;;N;;;;; +A6AA;BAMUM LETTER LA;Lo;0;L;;;;;N;;;;; +A6AB;BAMUM LETTER PA;Lo;0;L;;;;;N;;;;; +A6AC;BAMUM LETTER RII;Lo;0;L;;;;;N;;;;; +A6AD;BAMUM LETTER RIEE;Lo;0;L;;;;;N;;;;; +A6AE;BAMUM LETTER LEEEE;Lo;0;L;;;;;N;;;;; +A6AF;BAMUM LETTER MEEEE;Lo;0;L;;;;;N;;;;; +A6B0;BAMUM LETTER TAA;Lo;0;L;;;;;N;;;;; +A6B1;BAMUM LETTER NDAA;Lo;0;L;;;;;N;;;;; +A6B2;BAMUM LETTER NJAEM;Lo;0;L;;;;;N;;;;; +A6B3;BAMUM LETTER M;Lo;0;L;;;;;N;;;;; +A6B4;BAMUM LETTER SUU;Lo;0;L;;;;;N;;;;; +A6B5;BAMUM LETTER MU;Lo;0;L;;;;;N;;;;; +A6B6;BAMUM LETTER SHII;Lo;0;L;;;;;N;;;;; +A6B7;BAMUM LETTER SI;Lo;0;L;;;;;N;;;;; +A6B8;BAMUM LETTER SHEUX;Lo;0;L;;;;;N;;;;; +A6B9;BAMUM LETTER SEUX;Lo;0;L;;;;;N;;;;; +A6BA;BAMUM LETTER KYEE;Lo;0;L;;;;;N;;;;; +A6BB;BAMUM LETTER KET;Lo;0;L;;;;;N;;;;; +A6BC;BAMUM LETTER NUAE;Lo;0;L;;;;;N;;;;; +A6BD;BAMUM LETTER NU;Lo;0;L;;;;;N;;;;; +A6BE;BAMUM LETTER NJUAE;Lo;0;L;;;;;N;;;;; +A6BF;BAMUM LETTER YOQ;Lo;0;L;;;;;N;;;;; +A6C0;BAMUM LETTER SHU;Lo;0;L;;;;;N;;;;; +A6C1;BAMUM LETTER YUQ;Lo;0;L;;;;;N;;;;; +A6C2;BAMUM LETTER YA;Lo;0;L;;;;;N;;;;; +A6C3;BAMUM LETTER NSHA;Lo;0;L;;;;;N;;;;; +A6C4;BAMUM LETTER KEUX;Lo;0;L;;;;;N;;;;; +A6C5;BAMUM LETTER PEUX;Lo;0;L;;;;;N;;;;; +A6C6;BAMUM LETTER NJEE;Lo;0;L;;;;;N;;;;; +A6C7;BAMUM LETTER NTEE;Lo;0;L;;;;;N;;;;; +A6C8;BAMUM LETTER PUE;Lo;0;L;;;;;N;;;;; +A6C9;BAMUM LETTER WUE;Lo;0;L;;;;;N;;;;; +A6CA;BAMUM LETTER PEE;Lo;0;L;;;;;N;;;;; +A6CB;BAMUM LETTER FEE;Lo;0;L;;;;;N;;;;; +A6CC;BAMUM LETTER RU;Lo;0;L;;;;;N;;;;; +A6CD;BAMUM LETTER LU;Lo;0;L;;;;;N;;;;; +A6CE;BAMUM LETTER MI;Lo;0;L;;;;;N;;;;; +A6CF;BAMUM LETTER NI;Lo;0;L;;;;;N;;;;; +A6D0;BAMUM LETTER REUX;Lo;0;L;;;;;N;;;;; +A6D1;BAMUM LETTER RAE;Lo;0;L;;;;;N;;;;; +A6D2;BAMUM LETTER KEN;Lo;0;L;;;;;N;;;;; +A6D3;BAMUM LETTER NGKWAEN;Lo;0;L;;;;;N;;;;; +A6D4;BAMUM LETTER NGGA;Lo;0;L;;;;;N;;;;; +A6D5;BAMUM LETTER NGA;Lo;0;L;;;;;N;;;;; +A6D6;BAMUM LETTER SHO;Lo;0;L;;;;;N;;;;; +A6D7;BAMUM LETTER PUAE;Lo;0;L;;;;;N;;;;; +A6D8;BAMUM LETTER FU;Lo;0;L;;;;;N;;;;; +A6D9;BAMUM LETTER FOM;Lo;0;L;;;;;N;;;;; +A6DA;BAMUM LETTER WA;Lo;0;L;;;;;N;;;;; +A6DB;BAMUM LETTER NA;Lo;0;L;;;;;N;;;;; +A6DC;BAMUM LETTER LI;Lo;0;L;;;;;N;;;;; +A6DD;BAMUM LETTER PI;Lo;0;L;;;;;N;;;;; +A6DE;BAMUM LETTER LOQ;Lo;0;L;;;;;N;;;;; +A6DF;BAMUM LETTER KO;Lo;0;L;;;;;N;;;;; +A6E0;BAMUM LETTER MBEN;Lo;0;L;;;;;N;;;;; +A6E1;BAMUM LETTER REN;Lo;0;L;;;;;N;;;;; +A6E2;BAMUM LETTER MEN;Lo;0;L;;;;;N;;;;; +A6E3;BAMUM LETTER MA;Lo;0;L;;;;;N;;;;; +A6E4;BAMUM LETTER TI;Lo;0;L;;;;;N;;;;; +A6E5;BAMUM LETTER KI;Lo;0;L;;;;;N;;;;; +A6E6;BAMUM LETTER MO;Nl;0;L;;;;1;N;;;;; +A6E7;BAMUM LETTER MBAA;Nl;0;L;;;;2;N;;;;; +A6E8;BAMUM LETTER TET;Nl;0;L;;;;3;N;;;;; +A6E9;BAMUM LETTER KPA;Nl;0;L;;;;4;N;;;;; +A6EA;BAMUM LETTER TEN;Nl;0;L;;;;5;N;;;;; +A6EB;BAMUM LETTER NTUU;Nl;0;L;;;;6;N;;;;; +A6EC;BAMUM LETTER SAMBA;Nl;0;L;;;;7;N;;;;; +A6ED;BAMUM LETTER FAAMAE;Nl;0;L;;;;8;N;;;;; +A6EE;BAMUM LETTER KOVUU;Nl;0;L;;;;9;N;;;;; +A6EF;BAMUM LETTER KOGHOM;Nl;0;L;;;;0;N;;;;; +A6F0;BAMUM COMBINING MARK KOQNDON;Mn;230;NSM;;;;;N;;;;; +A6F1;BAMUM COMBINING MARK TUKWENTIS;Mn;230;NSM;;;;;N;;;;; +A6F2;BAMUM NJAEMLI;Po;0;L;;;;;N;;;;; +A6F3;BAMUM FULL STOP;Po;0;L;;;;;N;;;;; +A6F4;BAMUM COLON;Po;0;L;;;;;N;;;;; +A6F5;BAMUM COMMA;Po;0;L;;;;;N;;;;; +A6F6;BAMUM SEMICOLON;Po;0;L;;;;;N;;;;; +A6F7;BAMUM QUESTION MARK;Po;0;L;;;;;N;;;;; +A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;; +A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;; +A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;; +A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;; +A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;; +A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;; +A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;; +A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;; +A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; +A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; +A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; +A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; +A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; +A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; +A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;; +A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;; +A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;; +A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;; +A71B;MODIFIER LETTER RAISED UP ARROW;Lm;0;ON;;;;;N;;;;; +A71C;MODIFIER LETTER RAISED DOWN ARROW;Lm;0;ON;;;;;N;;;;; +A71D;MODIFIER LETTER RAISED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;; +A71E;MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;; +A71F;MODIFIER LETTER LOW INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;; +A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;; +A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;; +A722;LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF;Lu;0;L;;;;;N;;;;A723; +A723;LATIN SMALL LETTER EGYPTOLOGICAL ALEF;Ll;0;L;;;;;N;;;A722;;A722 +A724;LATIN CAPITAL LETTER EGYPTOLOGICAL AIN;Lu;0;L;;;;;N;;;;A725; +A725;LATIN SMALL LETTER EGYPTOLOGICAL AIN;Ll;0;L;;;;;N;;;A724;;A724 +A726;LATIN CAPITAL LETTER HENG;Lu;0;L;;;;;N;;;;A727; +A727;LATIN SMALL LETTER HENG;Ll;0;L;;;;;N;;;A726;;A726 +A728;LATIN CAPITAL LETTER TZ;Lu;0;L;;;;;N;;;;A729; +A729;LATIN SMALL LETTER TZ;Ll;0;L;;;;;N;;;A728;;A728 +A72A;LATIN CAPITAL LETTER TRESILLO;Lu;0;L;;;;;N;;;;A72B; +A72B;LATIN SMALL LETTER TRESILLO;Ll;0;L;;;;;N;;;A72A;;A72A +A72C;LATIN CAPITAL LETTER CUATRILLO;Lu;0;L;;;;;N;;;;A72D; +A72D;LATIN SMALL LETTER CUATRILLO;Ll;0;L;;;;;N;;;A72C;;A72C +A72E;LATIN CAPITAL LETTER CUATRILLO WITH COMMA;Lu;0;L;;;;;N;;;;A72F; +A72F;LATIN SMALL LETTER CUATRILLO WITH COMMA;Ll;0;L;;;;;N;;;A72E;;A72E +A730;LATIN LETTER SMALL CAPITAL F;Ll;0;L;;;;;N;;;;; +A731;LATIN LETTER SMALL CAPITAL S;Ll;0;L;;;;;N;;;;; +A732;LATIN CAPITAL LETTER AA;Lu;0;L;;;;;N;;;;A733; +A733;LATIN SMALL LETTER AA;Ll;0;L;;;;;N;;;A732;;A732 +A734;LATIN CAPITAL LETTER AO;Lu;0;L;;;;;N;;;;A735; +A735;LATIN SMALL LETTER AO;Ll;0;L;;;;;N;;;A734;;A734 +A736;LATIN CAPITAL LETTER AU;Lu;0;L;;;;;N;;;;A737; +A737;LATIN SMALL LETTER AU;Ll;0;L;;;;;N;;;A736;;A736 +A738;LATIN CAPITAL LETTER AV;Lu;0;L;;;;;N;;;;A739; +A739;LATIN SMALL LETTER AV;Ll;0;L;;;;;N;;;A738;;A738 +A73A;LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR;Lu;0;L;;;;;N;;;;A73B; +A73B;LATIN SMALL LETTER AV WITH HORIZONTAL BAR;Ll;0;L;;;;;N;;;A73A;;A73A +A73C;LATIN CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;A73D; +A73D;LATIN SMALL LETTER AY;Ll;0;L;;;;;N;;;A73C;;A73C +A73E;LATIN CAPITAL LETTER REVERSED C WITH DOT;Lu;0;L;;;;;N;;;;A73F; +A73F;LATIN SMALL LETTER REVERSED C WITH DOT;Ll;0;L;;;;;N;;;A73E;;A73E +A740;LATIN CAPITAL LETTER K WITH STROKE;Lu;0;L;;;;;N;;;;A741; +A741;LATIN SMALL LETTER K WITH STROKE;Ll;0;L;;;;;N;;;A740;;A740 +A742;LATIN CAPITAL LETTER K WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A743; +A743;LATIN SMALL LETTER K WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A742;;A742 +A744;LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A745; +A745;LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE;Ll;0;L;;;;;N;;;A744;;A744 +A746;LATIN CAPITAL LETTER BROKEN L;Lu;0;L;;;;;N;;;;A747; +A747;LATIN SMALL LETTER BROKEN L;Ll;0;L;;;;;N;;;A746;;A746 +A748;LATIN CAPITAL LETTER L WITH HIGH STROKE;Lu;0;L;;;;;N;;;;A749; +A749;LATIN SMALL LETTER L WITH HIGH STROKE;Ll;0;L;;;;;N;;;A748;;A748 +A74A;LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY;Lu;0;L;;;;;N;;;;A74B; +A74B;LATIN SMALL LETTER O WITH LONG STROKE OVERLAY;Ll;0;L;;;;;N;;;A74A;;A74A +A74C;LATIN CAPITAL LETTER O WITH LOOP;Lu;0;L;;;;;N;;;;A74D; +A74D;LATIN SMALL LETTER O WITH LOOP;Ll;0;L;;;;;N;;;A74C;;A74C +A74E;LATIN CAPITAL LETTER OO;Lu;0;L;;;;;N;;;;A74F; +A74F;LATIN SMALL LETTER OO;Ll;0;L;;;;;N;;;A74E;;A74E +A750;LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A751; +A751;LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A750;;A750 +A752;LATIN CAPITAL LETTER P WITH FLOURISH;Lu;0;L;;;;;N;;;;A753; +A753;LATIN SMALL LETTER P WITH FLOURISH;Ll;0;L;;;;;N;;;A752;;A752 +A754;LATIN CAPITAL LETTER P WITH SQUIRREL TAIL;Lu;0;L;;;;;N;;;;A755; +A755;LATIN SMALL LETTER P WITH SQUIRREL TAIL;Ll;0;L;;;;;N;;;A754;;A754 +A756;LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A757; +A757;LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A756;;A756 +A758;LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A759; +A759;LATIN SMALL LETTER Q WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A758;;A758 +A75A;LATIN CAPITAL LETTER R ROTUNDA;Lu;0;L;;;;;N;;;;A75B; +A75B;LATIN SMALL LETTER R ROTUNDA;Ll;0;L;;;;;N;;;A75A;;A75A +A75C;LATIN CAPITAL LETTER RUM ROTUNDA;Lu;0;L;;;;;N;;;;A75D; +A75D;LATIN SMALL LETTER RUM ROTUNDA;Ll;0;L;;;;;N;;;A75C;;A75C +A75E;LATIN CAPITAL LETTER V WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A75F; +A75F;LATIN SMALL LETTER V WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A75E;;A75E +A760;LATIN CAPITAL LETTER VY;Lu;0;L;;;;;N;;;;A761; +A761;LATIN SMALL LETTER VY;Ll;0;L;;;;;N;;;A760;;A760 +A762;LATIN CAPITAL LETTER VISIGOTHIC Z;Lu;0;L;;;;;N;;;;A763; +A763;LATIN SMALL LETTER VISIGOTHIC Z;Ll;0;L;;;;;N;;;A762;;A762 +A764;LATIN CAPITAL LETTER THORN WITH STROKE;Lu;0;L;;;;;N;;;;A765; +A765;LATIN SMALL LETTER THORN WITH STROKE;Ll;0;L;;;;;N;;;A764;;A764 +A766;LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A767; +A767;LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A766;;A766 +A768;LATIN CAPITAL LETTER VEND;Lu;0;L;;;;;N;;;;A769; +A769;LATIN SMALL LETTER VEND;Ll;0;L;;;;;N;;;A768;;A768 +A76A;LATIN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;A76B; +A76B;LATIN SMALL LETTER ET;Ll;0;L;;;;;N;;;A76A;;A76A +A76C;LATIN CAPITAL LETTER IS;Lu;0;L;;;;;N;;;;A76D; +A76D;LATIN SMALL LETTER IS;Ll;0;L;;;;;N;;;A76C;;A76C +A76E;LATIN CAPITAL LETTER CON;Lu;0;L;;;;;N;;;;A76F; +A76F;LATIN SMALL LETTER CON;Ll;0;L;;;;;N;;;A76E;;A76E +A770;MODIFIER LETTER US;Lm;0;L;<super> A76F;;;;N;;;;; +A771;LATIN SMALL LETTER DUM;Ll;0;L;;;;;N;;;;; +A772;LATIN SMALL LETTER LUM;Ll;0;L;;;;;N;;;;; +A773;LATIN SMALL LETTER MUM;Ll;0;L;;;;;N;;;;; +A774;LATIN SMALL LETTER NUM;Ll;0;L;;;;;N;;;;; +A775;LATIN SMALL LETTER RUM;Ll;0;L;;;;;N;;;;; +A776;LATIN LETTER SMALL CAPITAL RUM;Ll;0;L;;;;;N;;;;; +A777;LATIN SMALL LETTER TUM;Ll;0;L;;;;;N;;;;; +A778;LATIN SMALL LETTER UM;Ll;0;L;;;;;N;;;;; +A779;LATIN CAPITAL LETTER INSULAR D;Lu;0;L;;;;;N;;;;A77A; +A77A;LATIN SMALL LETTER INSULAR D;Ll;0;L;;;;;N;;;A779;;A779 +A77B;LATIN CAPITAL LETTER INSULAR F;Lu;0;L;;;;;N;;;;A77C; +A77C;LATIN SMALL LETTER INSULAR F;Ll;0;L;;;;;N;;;A77B;;A77B +A77D;LATIN CAPITAL LETTER INSULAR G;Lu;0;L;;;;;N;;;;1D79; +A77E;LATIN CAPITAL LETTER TURNED INSULAR G;Lu;0;L;;;;;N;;;;A77F; +A77F;LATIN SMALL LETTER TURNED INSULAR G;Ll;0;L;;;;;N;;;A77E;;A77E +A780;LATIN CAPITAL LETTER TURNED L;Lu;0;L;;;;;N;;;;A781; +A781;LATIN SMALL LETTER TURNED L;Ll;0;L;;;;;N;;;A780;;A780 +A782;LATIN CAPITAL LETTER INSULAR R;Lu;0;L;;;;;N;;;;A783; +A783;LATIN SMALL LETTER INSULAR R;Ll;0;L;;;;;N;;;A782;;A782 +A784;LATIN CAPITAL LETTER INSULAR S;Lu;0;L;;;;;N;;;;A785; +A785;LATIN SMALL LETTER INSULAR S;Ll;0;L;;;;;N;;;A784;;A784 +A786;LATIN CAPITAL LETTER INSULAR T;Lu;0;L;;;;;N;;;;A787; +A787;LATIN SMALL LETTER INSULAR T;Ll;0;L;;;;;N;;;A786;;A786 +A788;MODIFIER LETTER LOW CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;;;;; +A789;MODIFIER LETTER COLON;Sk;0;L;;;;;N;;;;; +A78A;MODIFIER LETTER SHORT EQUALS SIGN;Sk;0;L;;;;;N;;;;; +A78B;LATIN CAPITAL LETTER SALTILLO;Lu;0;L;;;;;N;;;;A78C; +A78C;LATIN SMALL LETTER SALTILLO;Ll;0;L;;;;;N;;;A78B;;A78B +A78D;LATIN CAPITAL LETTER TURNED H;Lu;0;L;;;;;N;;;;0265; +A78E;LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT;Ll;0;L;;;;;N;;;;; +A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791; +A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790 +A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793; +A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792 +A7A0;LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A1; +A7A1;LATIN SMALL LETTER G WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A0;;A7A0 +A7A2;LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A3; +A7A3;LATIN SMALL LETTER K WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A2;;A7A2 +A7A4;LATIN CAPITAL LETTER N WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A5; +A7A5;LATIN SMALL LETTER N WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A4;;A7A4 +A7A6;LATIN CAPITAL LETTER R WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A7; +A7A7;LATIN SMALL LETTER R WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A6;;A7A6 +A7A8;LATIN CAPITAL LETTER S WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A9; +A7A9;LATIN SMALL LETTER S WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A8;;A7A8 +A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266; +A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;; +A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;; +A7FA;LATIN LETTER SMALL CAPITAL TURNED M;Ll;0;L;;;;;N;;;;; +A7FB;LATIN EPIGRAPHIC LETTER REVERSED F;Lo;0;L;;;;;N;;;;; +A7FC;LATIN EPIGRAPHIC LETTER REVERSED P;Lo;0;L;;;;;N;;;;; +A7FD;LATIN EPIGRAPHIC LETTER INVERTED M;Lo;0;L;;;;;N;;;;; +A7FE;LATIN EPIGRAPHIC LETTER I LONGA;Lo;0;L;;;;;N;;;;; +A7FF;LATIN EPIGRAPHIC LETTER ARCHAIC M;Lo;0;L;;;;;N;;;;; +A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;; +A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;; +A802;SYLOTI NAGRI SIGN DVISVARA;Mn;0;NSM;;;;;N;;;;; +A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;; +A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;; +A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;; +A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;; +A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;; +A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;; +A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;; +A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;; +A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;; +A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;; +A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;; +A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;; +A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;; +A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;; +A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;; +A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;; +A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;; +A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;; +A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;; +A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;; +A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;; +A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;; +A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;; +A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;; +A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;; +A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;; +A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;; +A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;; +A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;; +A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;; +A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;; +A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;; +A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;; +A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;; +A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;; +A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;; +A830;NORTH INDIC FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;; +A831;NORTH INDIC FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;; +A832;NORTH INDIC FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;; +A833;NORTH INDIC FRACTION ONE SIXTEENTH;No;0;L;;;;1/16;N;;;;; +A834;NORTH INDIC FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;; +A835;NORTH INDIC FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;; +A836;NORTH INDIC QUARTER MARK;So;0;L;;;;;N;;;;; +A837;NORTH INDIC PLACEHOLDER MARK;So;0;L;;;;;N;;;;; +A838;NORTH INDIC RUPEE MARK;Sc;0;ET;;;;;N;;;;; +A839;NORTH INDIC QUANTITY MARK;So;0;ET;;;;;N;;;;; +A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;; +A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;; +A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;; +A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;; +A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;; +A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;; +A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;; +A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;; +A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;; +A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;; +A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;; +A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;; +A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;; +A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;; +A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;; +A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;; +A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;; +A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;; +A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;; +A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;; +A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;; +A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;; +A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;; +A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;; +A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;; +A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;; +A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;; +A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;; +A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;; +A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;; +A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;; +A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;; +A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;; +A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;; +A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;; +A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;; +A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;; +A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;; +A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;; +A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;; +A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;; +A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;; +A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;; +A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;; +A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;; +A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;; +A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;; +A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;; +A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;; +A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;; +A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;; +A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;; +A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;; +A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;; +A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;; +A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;; +A880;SAURASHTRA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; +A881;SAURASHTRA SIGN VISARGA;Mc;0;L;;;;;N;;;;; +A882;SAURASHTRA LETTER A;Lo;0;L;;;;;N;;;;; +A883;SAURASHTRA LETTER AA;Lo;0;L;;;;;N;;;;; +A884;SAURASHTRA LETTER I;Lo;0;L;;;;;N;;;;; +A885;SAURASHTRA LETTER II;Lo;0;L;;;;;N;;;;; +A886;SAURASHTRA LETTER U;Lo;0;L;;;;;N;;;;; +A887;SAURASHTRA LETTER UU;Lo;0;L;;;;;N;;;;; +A888;SAURASHTRA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +A889;SAURASHTRA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +A88A;SAURASHTRA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +A88B;SAURASHTRA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +A88C;SAURASHTRA LETTER E;Lo;0;L;;;;;N;;;;; +A88D;SAURASHTRA LETTER EE;Lo;0;L;;;;;N;;;;; +A88E;SAURASHTRA LETTER AI;Lo;0;L;;;;;N;;;;; +A88F;SAURASHTRA LETTER O;Lo;0;L;;;;;N;;;;; +A890;SAURASHTRA LETTER OO;Lo;0;L;;;;;N;;;;; +A891;SAURASHTRA LETTER AU;Lo;0;L;;;;;N;;;;; +A892;SAURASHTRA LETTER KA;Lo;0;L;;;;;N;;;;; +A893;SAURASHTRA LETTER KHA;Lo;0;L;;;;;N;;;;; +A894;SAURASHTRA LETTER GA;Lo;0;L;;;;;N;;;;; +A895;SAURASHTRA LETTER GHA;Lo;0;L;;;;;N;;;;; +A896;SAURASHTRA LETTER NGA;Lo;0;L;;;;;N;;;;; +A897;SAURASHTRA LETTER CA;Lo;0;L;;;;;N;;;;; +A898;SAURASHTRA LETTER CHA;Lo;0;L;;;;;N;;;;; +A899;SAURASHTRA LETTER JA;Lo;0;L;;;;;N;;;;; +A89A;SAURASHTRA LETTER JHA;Lo;0;L;;;;;N;;;;; +A89B;SAURASHTRA LETTER NYA;Lo;0;L;;;;;N;;;;; +A89C;SAURASHTRA LETTER TTA;Lo;0;L;;;;;N;;;;; +A89D;SAURASHTRA LETTER TTHA;Lo;0;L;;;;;N;;;;; +A89E;SAURASHTRA LETTER DDA;Lo;0;L;;;;;N;;;;; +A89F;SAURASHTRA LETTER DDHA;Lo;0;L;;;;;N;;;;; +A8A0;SAURASHTRA LETTER NNA;Lo;0;L;;;;;N;;;;; +A8A1;SAURASHTRA LETTER TA;Lo;0;L;;;;;N;;;;; +A8A2;SAURASHTRA LETTER THA;Lo;0;L;;;;;N;;;;; +A8A3;SAURASHTRA LETTER DA;Lo;0;L;;;;;N;;;;; +A8A4;SAURASHTRA LETTER DHA;Lo;0;L;;;;;N;;;;; +A8A5;SAURASHTRA LETTER NA;Lo;0;L;;;;;N;;;;; +A8A6;SAURASHTRA LETTER PA;Lo;0;L;;;;;N;;;;; +A8A7;SAURASHTRA LETTER PHA;Lo;0;L;;;;;N;;;;; +A8A8;SAURASHTRA LETTER BA;Lo;0;L;;;;;N;;;;; +A8A9;SAURASHTRA LETTER BHA;Lo;0;L;;;;;N;;;;; +A8AA;SAURASHTRA LETTER MA;Lo;0;L;;;;;N;;;;; +A8AB;SAURASHTRA LETTER YA;Lo;0;L;;;;;N;;;;; +A8AC;SAURASHTRA LETTER RA;Lo;0;L;;;;;N;;;;; +A8AD;SAURASHTRA LETTER LA;Lo;0;L;;;;;N;;;;; +A8AE;SAURASHTRA LETTER VA;Lo;0;L;;;;;N;;;;; +A8AF;SAURASHTRA LETTER SHA;Lo;0;L;;;;;N;;;;; +A8B0;SAURASHTRA LETTER SSA;Lo;0;L;;;;;N;;;;; +A8B1;SAURASHTRA LETTER SA;Lo;0;L;;;;;N;;;;; +A8B2;SAURASHTRA LETTER HA;Lo;0;L;;;;;N;;;;; +A8B3;SAURASHTRA LETTER LLA;Lo;0;L;;;;;N;;;;; +A8B4;SAURASHTRA CONSONANT SIGN HAARU;Mc;0;L;;;;;N;;;;; +A8B5;SAURASHTRA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +A8B6;SAURASHTRA VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +A8B7;SAURASHTRA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +A8B8;SAURASHTRA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +A8B9;SAURASHTRA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +A8BA;SAURASHTRA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; +A8BB;SAURASHTRA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; +A8BC;SAURASHTRA VOWEL SIGN VOCALIC L;Mc;0;L;;;;;N;;;;; +A8BD;SAURASHTRA VOWEL SIGN VOCALIC LL;Mc;0;L;;;;;N;;;;; +A8BE;SAURASHTRA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +A8BF;SAURASHTRA VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; +A8C0;SAURASHTRA VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +A8C1;SAURASHTRA VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +A8C2;SAURASHTRA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +A8C3;SAURASHTRA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +A8C4;SAURASHTRA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +A8CE;SAURASHTRA DANDA;Po;0;L;;;;;N;;;;; +A8CF;SAURASHTRA DOUBLE DANDA;Po;0;L;;;;;N;;;;; +A8D0;SAURASHTRA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +A8D1;SAURASHTRA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +A8D2;SAURASHTRA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +A8D3;SAURASHTRA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +A8D4;SAURASHTRA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +A8D5;SAURASHTRA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +A8D6;SAURASHTRA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +A8D7;SAURASHTRA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +A8D8;SAURASHTRA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +A8D9;SAURASHTRA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +A8E0;COMBINING DEVANAGARI DIGIT ZERO;Mn;230;NSM;;;;;N;;;;; +A8E1;COMBINING DEVANAGARI DIGIT ONE;Mn;230;NSM;;;;;N;;;;; +A8E2;COMBINING DEVANAGARI DIGIT TWO;Mn;230;NSM;;;;;N;;;;; +A8E3;COMBINING DEVANAGARI DIGIT THREE;Mn;230;NSM;;;;;N;;;;; +A8E4;COMBINING DEVANAGARI DIGIT FOUR;Mn;230;NSM;;;;;N;;;;; +A8E5;COMBINING DEVANAGARI DIGIT FIVE;Mn;230;NSM;;;;;N;;;;; +A8E6;COMBINING DEVANAGARI DIGIT SIX;Mn;230;NSM;;;;;N;;;;; +A8E7;COMBINING DEVANAGARI DIGIT SEVEN;Mn;230;NSM;;;;;N;;;;; +A8E8;COMBINING DEVANAGARI DIGIT EIGHT;Mn;230;NSM;;;;;N;;;;; +A8E9;COMBINING DEVANAGARI DIGIT NINE;Mn;230;NSM;;;;;N;;;;; +A8EA;COMBINING DEVANAGARI LETTER A;Mn;230;NSM;;;;;N;;;;; +A8EB;COMBINING DEVANAGARI LETTER U;Mn;230;NSM;;;;;N;;;;; +A8EC;COMBINING DEVANAGARI LETTER KA;Mn;230;NSM;;;;;N;;;;; +A8ED;COMBINING DEVANAGARI LETTER NA;Mn;230;NSM;;;;;N;;;;; +A8EE;COMBINING DEVANAGARI LETTER PA;Mn;230;NSM;;;;;N;;;;; +A8EF;COMBINING DEVANAGARI LETTER RA;Mn;230;NSM;;;;;N;;;;; +A8F0;COMBINING DEVANAGARI LETTER VI;Mn;230;NSM;;;;;N;;;;; +A8F1;COMBINING DEVANAGARI SIGN AVAGRAHA;Mn;230;NSM;;;;;N;;;;; +A8F2;DEVANAGARI SIGN SPACING CANDRABINDU;Lo;0;L;;;;;N;;;;; +A8F3;DEVANAGARI SIGN CANDRABINDU VIRAMA;Lo;0;L;;;;;N;;;;; +A8F4;DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA;Lo;0;L;;;;;N;;;;; +A8F5;DEVANAGARI SIGN CANDRABINDU TWO;Lo;0;L;;;;;N;;;;; +A8F6;DEVANAGARI SIGN CANDRABINDU THREE;Lo;0;L;;;;;N;;;;; +A8F7;DEVANAGARI SIGN CANDRABINDU AVAGRAHA;Lo;0;L;;;;;N;;;;; +A8F8;DEVANAGARI SIGN PUSHPIKA;Po;0;L;;;;;N;;;;; +A8F9;DEVANAGARI GAP FILLER;Po;0;L;;;;;N;;;;; +A8FA;DEVANAGARI CARET;Po;0;L;;;;;N;;;;; +A8FB;DEVANAGARI HEADSTROKE;Lo;0;L;;;;;N;;;;; +A900;KAYAH LI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +A901;KAYAH LI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +A902;KAYAH LI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +A903;KAYAH LI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +A904;KAYAH LI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +A905;KAYAH LI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +A906;KAYAH LI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +A907;KAYAH LI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +A908;KAYAH LI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +A909;KAYAH LI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +A90A;KAYAH LI LETTER KA;Lo;0;L;;;;;N;;;;; +A90B;KAYAH LI LETTER KHA;Lo;0;L;;;;;N;;;;; +A90C;KAYAH LI LETTER GA;Lo;0;L;;;;;N;;;;; +A90D;KAYAH LI LETTER NGA;Lo;0;L;;;;;N;;;;; +A90E;KAYAH LI LETTER SA;Lo;0;L;;;;;N;;;;; +A90F;KAYAH LI LETTER SHA;Lo;0;L;;;;;N;;;;; +A910;KAYAH LI LETTER ZA;Lo;0;L;;;;;N;;;;; +A911;KAYAH LI LETTER NYA;Lo;0;L;;;;;N;;;;; +A912;KAYAH LI LETTER TA;Lo;0;L;;;;;N;;;;; +A913;KAYAH LI LETTER HTA;Lo;0;L;;;;;N;;;;; +A914;KAYAH LI LETTER NA;Lo;0;L;;;;;N;;;;; +A915;KAYAH LI LETTER PA;Lo;0;L;;;;;N;;;;; +A916;KAYAH LI LETTER PHA;Lo;0;L;;;;;N;;;;; +A917;KAYAH LI LETTER MA;Lo;0;L;;;;;N;;;;; +A918;KAYAH LI LETTER DA;Lo;0;L;;;;;N;;;;; +A919;KAYAH LI LETTER BA;Lo;0;L;;;;;N;;;;; +A91A;KAYAH LI LETTER RA;Lo;0;L;;;;;N;;;;; +A91B;KAYAH LI LETTER YA;Lo;0;L;;;;;N;;;;; +A91C;KAYAH LI LETTER LA;Lo;0;L;;;;;N;;;;; +A91D;KAYAH LI LETTER WA;Lo;0;L;;;;;N;;;;; +A91E;KAYAH LI LETTER THA;Lo;0;L;;;;;N;;;;; +A91F;KAYAH LI LETTER HA;Lo;0;L;;;;;N;;;;; +A920;KAYAH LI LETTER VA;Lo;0;L;;;;;N;;;;; +A921;KAYAH LI LETTER CA;Lo;0;L;;;;;N;;;;; +A922;KAYAH LI LETTER A;Lo;0;L;;;;;N;;;;; +A923;KAYAH LI LETTER OE;Lo;0;L;;;;;N;;;;; +A924;KAYAH LI LETTER I;Lo;0;L;;;;;N;;;;; +A925;KAYAH LI LETTER OO;Lo;0;L;;;;;N;;;;; +A926;KAYAH LI VOWEL UE;Mn;0;NSM;;;;;N;;;;; +A927;KAYAH LI VOWEL E;Mn;0;NSM;;;;;N;;;;; +A928;KAYAH LI VOWEL U;Mn;0;NSM;;;;;N;;;;; +A929;KAYAH LI VOWEL EE;Mn;0;NSM;;;;;N;;;;; +A92A;KAYAH LI VOWEL O;Mn;0;NSM;;;;;N;;;;; +A92B;KAYAH LI TONE PLOPHU;Mn;220;NSM;;;;;N;;;;; +A92C;KAYAH LI TONE CALYA;Mn;220;NSM;;;;;N;;;;; +A92D;KAYAH LI TONE CALYA PLOPHU;Mn;220;NSM;;;;;N;;;;; +A92E;KAYAH LI SIGN CWI;Po;0;L;;;;;N;;;;; +A92F;KAYAH LI SIGN SHYA;Po;0;L;;;;;N;;;;; +A930;REJANG LETTER KA;Lo;0;L;;;;;N;;;;; +A931;REJANG LETTER GA;Lo;0;L;;;;;N;;;;; +A932;REJANG LETTER NGA;Lo;0;L;;;;;N;;;;; +A933;REJANG LETTER TA;Lo;0;L;;;;;N;;;;; +A934;REJANG LETTER DA;Lo;0;L;;;;;N;;;;; +A935;REJANG LETTER NA;Lo;0;L;;;;;N;;;;; +A936;REJANG LETTER PA;Lo;0;L;;;;;N;;;;; +A937;REJANG LETTER BA;Lo;0;L;;;;;N;;;;; +A938;REJANG LETTER MA;Lo;0;L;;;;;N;;;;; +A939;REJANG LETTER CA;Lo;0;L;;;;;N;;;;; +A93A;REJANG LETTER JA;Lo;0;L;;;;;N;;;;; +A93B;REJANG LETTER NYA;Lo;0;L;;;;;N;;;;; +A93C;REJANG LETTER SA;Lo;0;L;;;;;N;;;;; +A93D;REJANG LETTER RA;Lo;0;L;;;;;N;;;;; +A93E;REJANG LETTER LA;Lo;0;L;;;;;N;;;;; +A93F;REJANG LETTER YA;Lo;0;L;;;;;N;;;;; +A940;REJANG LETTER WA;Lo;0;L;;;;;N;;;;; +A941;REJANG LETTER HA;Lo;0;L;;;;;N;;;;; +A942;REJANG LETTER MBA;Lo;0;L;;;;;N;;;;; +A943;REJANG LETTER NGGA;Lo;0;L;;;;;N;;;;; +A944;REJANG LETTER NDA;Lo;0;L;;;;;N;;;;; +A945;REJANG LETTER NYJA;Lo;0;L;;;;;N;;;;; +A946;REJANG LETTER A;Lo;0;L;;;;;N;;;;; +A947;REJANG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +A948;REJANG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +A949;REJANG VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +A94A;REJANG VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +A94B;REJANG VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +A94C;REJANG VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +A94D;REJANG VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;; +A94E;REJANG VOWEL SIGN EA;Mn;0;NSM;;;;;N;;;;; +A94F;REJANG CONSONANT SIGN NG;Mn;0;NSM;;;;;N;;;;; +A950;REJANG CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;; +A951;REJANG CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;; +A952;REJANG CONSONANT SIGN H;Mc;0;L;;;;;N;;;;; +A953;REJANG VIRAMA;Mc;9;L;;;;;N;;;;; +A95F;REJANG SECTION MARK;Po;0;L;;;;;N;;;;; +A960;HANGUL CHOSEONG TIKEUT-MIEUM;Lo;0;L;;;;;N;;;;; +A961;HANGUL CHOSEONG TIKEUT-PIEUP;Lo;0;L;;;;;N;;;;; +A962;HANGUL CHOSEONG TIKEUT-SIOS;Lo;0;L;;;;;N;;;;; +A963;HANGUL CHOSEONG TIKEUT-CIEUC;Lo;0;L;;;;;N;;;;; +A964;HANGUL CHOSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;;;; +A965;HANGUL CHOSEONG RIEUL-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; +A966;HANGUL CHOSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;; +A967;HANGUL CHOSEONG RIEUL-SSANGTIKEUT;Lo;0;L;;;;;N;;;;; +A968;HANGUL CHOSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;;;; +A969;HANGUL CHOSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;;;; +A96A;HANGUL CHOSEONG RIEUL-SSANGPIEUP;Lo;0;L;;;;;N;;;;; +A96B;HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; +A96C;HANGUL CHOSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;;;; +A96D;HANGUL CHOSEONG RIEUL-CIEUC;Lo;0;L;;;;;N;;;;; +A96E;HANGUL CHOSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; +A96F;HANGUL CHOSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; +A970;HANGUL CHOSEONG MIEUM-TIKEUT;Lo;0;L;;;;;N;;;;; +A971;HANGUL CHOSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;; +A972;HANGUL CHOSEONG PIEUP-SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; +A973;HANGUL CHOSEONG PIEUP-KHIEUKH;Lo;0;L;;;;;N;;;;; +A974;HANGUL CHOSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; +A975;HANGUL CHOSEONG SSANGSIOS-PIEUP;Lo;0;L;;;;;N;;;;; +A976;HANGUL CHOSEONG IEUNG-RIEUL;Lo;0;L;;;;;N;;;;; +A977;HANGUL CHOSEONG IEUNG-HIEUH;Lo;0;L;;;;;N;;;;; +A978;HANGUL CHOSEONG SSANGCIEUC-HIEUH;Lo;0;L;;;;;N;;;;; +A979;HANGUL CHOSEONG SSANGTHIEUTH;Lo;0;L;;;;;N;;;;; +A97A;HANGUL CHOSEONG PHIEUPH-HIEUH;Lo;0;L;;;;;N;;;;; +A97B;HANGUL CHOSEONG HIEUH-SIOS;Lo;0;L;;;;;N;;;;; +A97C;HANGUL CHOSEONG SSANGYEORINHIEUH;Lo;0;L;;;;;N;;;;; +A980;JAVANESE SIGN PANYANGGA;Mn;0;NSM;;;;;N;;;;; +A981;JAVANESE SIGN CECAK;Mn;0;NSM;;;;;N;;;;; +A982;JAVANESE SIGN LAYAR;Mn;0;NSM;;;;;N;;;;; +A983;JAVANESE SIGN WIGNYAN;Mc;0;L;;;;;N;;;;; +A984;JAVANESE LETTER A;Lo;0;L;;;;;N;;;;; +A985;JAVANESE LETTER I KAWI;Lo;0;L;;;;;N;;;;; +A986;JAVANESE LETTER I;Lo;0;L;;;;;N;;;;; +A987;JAVANESE LETTER II;Lo;0;L;;;;;N;;;;; +A988;JAVANESE LETTER U;Lo;0;L;;;;;N;;;;; +A989;JAVANESE LETTER PA CEREK;Lo;0;L;;;;;N;;;;; +A98A;JAVANESE LETTER NGA LELET;Lo;0;L;;;;;N;;;;; +A98B;JAVANESE LETTER NGA LELET RASWADI;Lo;0;L;;;;;N;;;;; +A98C;JAVANESE LETTER E;Lo;0;L;;;;;N;;;;; +A98D;JAVANESE LETTER AI;Lo;0;L;;;;;N;;;;; +A98E;JAVANESE LETTER O;Lo;0;L;;;;;N;;;;; +A98F;JAVANESE LETTER KA;Lo;0;L;;;;;N;;;;; +A990;JAVANESE LETTER KA SASAK;Lo;0;L;;;;;N;;;;; +A991;JAVANESE LETTER KA MURDA;Lo;0;L;;;;;N;;;;; +A992;JAVANESE LETTER GA;Lo;0;L;;;;;N;;;;; +A993;JAVANESE LETTER GA MURDA;Lo;0;L;;;;;N;;;;; +A994;JAVANESE LETTER NGA;Lo;0;L;;;;;N;;;;; +A995;JAVANESE LETTER CA;Lo;0;L;;;;;N;;;;; +A996;JAVANESE LETTER CA MURDA;Lo;0;L;;;;;N;;;;; +A997;JAVANESE LETTER JA;Lo;0;L;;;;;N;;;;; +A998;JAVANESE LETTER NYA MURDA;Lo;0;L;;;;;N;;;;; +A999;JAVANESE LETTER JA MAHAPRANA;Lo;0;L;;;;;N;;;;; +A99A;JAVANESE LETTER NYA;Lo;0;L;;;;;N;;;;; +A99B;JAVANESE LETTER TTA;Lo;0;L;;;;;N;;;;; +A99C;JAVANESE LETTER TTA MAHAPRANA;Lo;0;L;;;;;N;;;;; +A99D;JAVANESE LETTER DDA;Lo;0;L;;;;;N;;;;; +A99E;JAVANESE LETTER DDA MAHAPRANA;Lo;0;L;;;;;N;;;;; +A99F;JAVANESE LETTER NA MURDA;Lo;0;L;;;;;N;;;;; +A9A0;JAVANESE LETTER TA;Lo;0;L;;;;;N;;;;; +A9A1;JAVANESE LETTER TA MURDA;Lo;0;L;;;;;N;;;;; +A9A2;JAVANESE LETTER DA;Lo;0;L;;;;;N;;;;; +A9A3;JAVANESE LETTER DA MAHAPRANA;Lo;0;L;;;;;N;;;;; +A9A4;JAVANESE LETTER NA;Lo;0;L;;;;;N;;;;; +A9A5;JAVANESE LETTER PA;Lo;0;L;;;;;N;;;;; +A9A6;JAVANESE LETTER PA MURDA;Lo;0;L;;;;;N;;;;; +A9A7;JAVANESE LETTER BA;Lo;0;L;;;;;N;;;;; +A9A8;JAVANESE LETTER BA MURDA;Lo;0;L;;;;;N;;;;; +A9A9;JAVANESE LETTER MA;Lo;0;L;;;;;N;;;;; +A9AA;JAVANESE LETTER YA;Lo;0;L;;;;;N;;;;; +A9AB;JAVANESE LETTER RA;Lo;0;L;;;;;N;;;;; +A9AC;JAVANESE LETTER RA AGUNG;Lo;0;L;;;;;N;;;;; +A9AD;JAVANESE LETTER LA;Lo;0;L;;;;;N;;;;; +A9AE;JAVANESE LETTER WA;Lo;0;L;;;;;N;;;;; +A9AF;JAVANESE LETTER SA MURDA;Lo;0;L;;;;;N;;;;; +A9B0;JAVANESE LETTER SA MAHAPRANA;Lo;0;L;;;;;N;;;;; +A9B1;JAVANESE LETTER SA;Lo;0;L;;;;;N;;;;; +A9B2;JAVANESE LETTER HA;Lo;0;L;;;;;N;;;;; +A9B3;JAVANESE SIGN CECAK TELU;Mn;7;NSM;;;;;N;;;;; +A9B4;JAVANESE VOWEL SIGN TARUNG;Mc;0;L;;;;;N;;;;; +A9B5;JAVANESE VOWEL SIGN TOLONG;Mc;0;L;;;;;N;;;;; +A9B6;JAVANESE VOWEL SIGN WULU;Mn;0;NSM;;;;;N;;;;; +A9B7;JAVANESE VOWEL SIGN WULU MELIK;Mn;0;NSM;;;;;N;;;;; +A9B8;JAVANESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;;;; +A9B9;JAVANESE VOWEL SIGN SUKU MENDUT;Mn;0;NSM;;;;;N;;;;; +A9BA;JAVANESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;; +A9BB;JAVANESE VOWEL SIGN DIRGA MURE;Mc;0;L;;;;;N;;;;; +A9BC;JAVANESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;; +A9BD;JAVANESE CONSONANT SIGN KERET;Mc;0;L;;;;;N;;;;; +A9BE;JAVANESE CONSONANT SIGN PENGKAL;Mc;0;L;;;;;N;;;;; +A9BF;JAVANESE CONSONANT SIGN CAKRA;Mc;0;L;;;;;N;;;;; +A9C0;JAVANESE PANGKON;Mc;9;L;;;;;N;;;;; +A9C1;JAVANESE LEFT RERENGGAN;Po;0;L;;;;;N;;;;; +A9C2;JAVANESE RIGHT RERENGGAN;Po;0;L;;;;;N;;;;; +A9C3;JAVANESE PADA ANDAP;Po;0;L;;;;;N;;;;; +A9C4;JAVANESE PADA MADYA;Po;0;L;;;;;N;;;;; +A9C5;JAVANESE PADA LUHUR;Po;0;L;;;;;N;;;;; +A9C6;JAVANESE PADA WINDU;Po;0;L;;;;;N;;;;; +A9C7;JAVANESE PADA PANGKAT;Po;0;L;;;;;N;;;;; +A9C8;JAVANESE PADA LINGSA;Po;0;L;;;;;N;;;;; +A9C9;JAVANESE PADA LUNGSI;Po;0;L;;;;;N;;;;; +A9CA;JAVANESE PADA ADEG;Po;0;L;;;;;N;;;;; +A9CB;JAVANESE PADA ADEG ADEG;Po;0;L;;;;;N;;;;; +A9CC;JAVANESE PADA PISELEH;Po;0;L;;;;;N;;;;; +A9CD;JAVANESE TURNED PADA PISELEH;Po;0;L;;;;;N;;;;; +A9CF;JAVANESE PANGRANGKEP;Lm;0;L;;;;;N;;;;; +A9D0;JAVANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +A9D1;JAVANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +A9D2;JAVANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +A9D3;JAVANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +A9D4;JAVANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +A9D5;JAVANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +A9D6;JAVANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +A9D7;JAVANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +A9D8;JAVANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +A9D9;JAVANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +A9DE;JAVANESE PADA TIRTA TUMETES;Po;0;L;;;;;N;;;;; +A9DF;JAVANESE PADA ISEN-ISEN;Po;0;L;;;;;N;;;;; +AA00;CHAM LETTER A;Lo;0;L;;;;;N;;;;; +AA01;CHAM LETTER I;Lo;0;L;;;;;N;;;;; +AA02;CHAM LETTER U;Lo;0;L;;;;;N;;;;; +AA03;CHAM LETTER E;Lo;0;L;;;;;N;;;;; +AA04;CHAM LETTER AI;Lo;0;L;;;;;N;;;;; +AA05;CHAM LETTER O;Lo;0;L;;;;;N;;;;; +AA06;CHAM LETTER KA;Lo;0;L;;;;;N;;;;; +AA07;CHAM LETTER KHA;Lo;0;L;;;;;N;;;;; +AA08;CHAM LETTER GA;Lo;0;L;;;;;N;;;;; +AA09;CHAM LETTER GHA;Lo;0;L;;;;;N;;;;; +AA0A;CHAM LETTER NGUE;Lo;0;L;;;;;N;;;;; +AA0B;CHAM LETTER NGA;Lo;0;L;;;;;N;;;;; +AA0C;CHAM LETTER CHA;Lo;0;L;;;;;N;;;;; +AA0D;CHAM LETTER CHHA;Lo;0;L;;;;;N;;;;; +AA0E;CHAM LETTER JA;Lo;0;L;;;;;N;;;;; +AA0F;CHAM LETTER JHA;Lo;0;L;;;;;N;;;;; +AA10;CHAM LETTER NHUE;Lo;0;L;;;;;N;;;;; +AA11;CHAM LETTER NHA;Lo;0;L;;;;;N;;;;; +AA12;CHAM LETTER NHJA;Lo;0;L;;;;;N;;;;; +AA13;CHAM LETTER TA;Lo;0;L;;;;;N;;;;; +AA14;CHAM LETTER THA;Lo;0;L;;;;;N;;;;; +AA15;CHAM LETTER DA;Lo;0;L;;;;;N;;;;; +AA16;CHAM LETTER DHA;Lo;0;L;;;;;N;;;;; +AA17;CHAM LETTER NUE;Lo;0;L;;;;;N;;;;; +AA18;CHAM LETTER NA;Lo;0;L;;;;;N;;;;; +AA19;CHAM LETTER DDA;Lo;0;L;;;;;N;;;;; +AA1A;CHAM LETTER PA;Lo;0;L;;;;;N;;;;; +AA1B;CHAM LETTER PPA;Lo;0;L;;;;;N;;;;; +AA1C;CHAM LETTER PHA;Lo;0;L;;;;;N;;;;; +AA1D;CHAM LETTER BA;Lo;0;L;;;;;N;;;;; +AA1E;CHAM LETTER BHA;Lo;0;L;;;;;N;;;;; +AA1F;CHAM LETTER MUE;Lo;0;L;;;;;N;;;;; +AA20;CHAM LETTER MA;Lo;0;L;;;;;N;;;;; +AA21;CHAM LETTER BBA;Lo;0;L;;;;;N;;;;; +AA22;CHAM LETTER YA;Lo;0;L;;;;;N;;;;; +AA23;CHAM LETTER RA;Lo;0;L;;;;;N;;;;; +AA24;CHAM LETTER LA;Lo;0;L;;;;;N;;;;; +AA25;CHAM LETTER VA;Lo;0;L;;;;;N;;;;; +AA26;CHAM LETTER SSA;Lo;0;L;;;;;N;;;;; +AA27;CHAM LETTER SA;Lo;0;L;;;;;N;;;;; +AA28;CHAM LETTER HA;Lo;0;L;;;;;N;;;;; +AA29;CHAM VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; +AA2A;CHAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +AA2B;CHAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +AA2C;CHAM VOWEL SIGN EI;Mn;0;NSM;;;;;N;;;;; +AA2D;CHAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +AA2E;CHAM VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;; +AA2F;CHAM VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +AA30;CHAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +AA31;CHAM VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +AA32;CHAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;; +AA33;CHAM CONSONANT SIGN YA;Mc;0;L;;;;;N;;;;; +AA34;CHAM CONSONANT SIGN RA;Mc;0;L;;;;;N;;;;; +AA35;CHAM CONSONANT SIGN LA;Mn;0;NSM;;;;;N;;;;; +AA36;CHAM CONSONANT SIGN WA;Mn;0;NSM;;;;;N;;;;; +AA40;CHAM LETTER FINAL K;Lo;0;L;;;;;N;;;;; +AA41;CHAM LETTER FINAL G;Lo;0;L;;;;;N;;;;; +AA42;CHAM LETTER FINAL NG;Lo;0;L;;;;;N;;;;; +AA43;CHAM CONSONANT SIGN FINAL NG;Mn;0;NSM;;;;;N;;;;; +AA44;CHAM LETTER FINAL CH;Lo;0;L;;;;;N;;;;; +AA45;CHAM LETTER FINAL T;Lo;0;L;;;;;N;;;;; +AA46;CHAM LETTER FINAL N;Lo;0;L;;;;;N;;;;; +AA47;CHAM LETTER FINAL P;Lo;0;L;;;;;N;;;;; +AA48;CHAM LETTER FINAL Y;Lo;0;L;;;;;N;;;;; +AA49;CHAM LETTER FINAL R;Lo;0;L;;;;;N;;;;; +AA4A;CHAM LETTER FINAL L;Lo;0;L;;;;;N;;;;; +AA4B;CHAM LETTER FINAL SS;Lo;0;L;;;;;N;;;;; +AA4C;CHAM CONSONANT SIGN FINAL M;Mn;0;NSM;;;;;N;;;;; +AA4D;CHAM CONSONANT SIGN FINAL H;Mc;0;L;;;;;N;;;;; +AA50;CHAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +AA51;CHAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +AA52;CHAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +AA53;CHAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +AA54;CHAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +AA55;CHAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +AA56;CHAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +AA57;CHAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +AA58;CHAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +AA59;CHAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +AA5C;CHAM PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;; +AA5D;CHAM PUNCTUATION DANDA;Po;0;L;;;;;N;;;;; +AA5E;CHAM PUNCTUATION DOUBLE DANDA;Po;0;L;;;;;N;;;;; +AA5F;CHAM PUNCTUATION TRIPLE DANDA;Po;0;L;;;;;N;;;;; +AA60;MYANMAR LETTER KHAMTI GA;Lo;0;L;;;;;N;;;;; +AA61;MYANMAR LETTER KHAMTI CA;Lo;0;L;;;;;N;;;;; +AA62;MYANMAR LETTER KHAMTI CHA;Lo;0;L;;;;;N;;;;; +AA63;MYANMAR LETTER KHAMTI JA;Lo;0;L;;;;;N;;;;; +AA64;MYANMAR LETTER KHAMTI JHA;Lo;0;L;;;;;N;;;;; +AA65;MYANMAR LETTER KHAMTI NYA;Lo;0;L;;;;;N;;;;; +AA66;MYANMAR LETTER KHAMTI TTA;Lo;0;L;;;;;N;;;;; +AA67;MYANMAR LETTER KHAMTI TTHA;Lo;0;L;;;;;N;;;;; +AA68;MYANMAR LETTER KHAMTI DDA;Lo;0;L;;;;;N;;;;; +AA69;MYANMAR LETTER KHAMTI DDHA;Lo;0;L;;;;;N;;;;; +AA6A;MYANMAR LETTER KHAMTI DHA;Lo;0;L;;;;;N;;;;; +AA6B;MYANMAR LETTER KHAMTI NA;Lo;0;L;;;;;N;;;;; +AA6C;MYANMAR LETTER KHAMTI SA;Lo;0;L;;;;;N;;;;; +AA6D;MYANMAR LETTER KHAMTI HA;Lo;0;L;;;;;N;;;;; +AA6E;MYANMAR LETTER KHAMTI HHA;Lo;0;L;;;;;N;;;;; +AA6F;MYANMAR LETTER KHAMTI FA;Lo;0;L;;;;;N;;;;; +AA70;MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION;Lm;0;L;;;;;N;;;;; +AA71;MYANMAR LETTER KHAMTI XA;Lo;0;L;;;;;N;;;;; +AA72;MYANMAR LETTER KHAMTI ZA;Lo;0;L;;;;;N;;;;; +AA73;MYANMAR LETTER KHAMTI RA;Lo;0;L;;;;;N;;;;; +AA74;MYANMAR LOGOGRAM KHAMTI OAY;Lo;0;L;;;;;N;;;;; +AA75;MYANMAR LOGOGRAM KHAMTI QN;Lo;0;L;;;;;N;;;;; +AA76;MYANMAR LOGOGRAM KHAMTI HM;Lo;0;L;;;;;N;;;;; +AA77;MYANMAR SYMBOL AITON EXCLAMATION;So;0;L;;;;;N;;;;; +AA78;MYANMAR SYMBOL AITON ONE;So;0;L;;;;;N;;;;; +AA79;MYANMAR SYMBOL AITON TWO;So;0;L;;;;;N;;;;; +AA7A;MYANMAR LETTER AITON RA;Lo;0;L;;;;;N;;;;; +AA7B;MYANMAR SIGN PAO KAREN TONE;Mc;0;L;;;;;N;;;;; +AA80;TAI VIET LETTER LOW KO;Lo;0;L;;;;;N;;;;; +AA81;TAI VIET LETTER HIGH KO;Lo;0;L;;;;;N;;;;; +AA82;TAI VIET LETTER LOW KHO;Lo;0;L;;;;;N;;;;; +AA83;TAI VIET LETTER HIGH KHO;Lo;0;L;;;;;N;;;;; +AA84;TAI VIET LETTER LOW KHHO;Lo;0;L;;;;;N;;;;; +AA85;TAI VIET LETTER HIGH KHHO;Lo;0;L;;;;;N;;;;; +AA86;TAI VIET LETTER LOW GO;Lo;0;L;;;;;N;;;;; +AA87;TAI VIET LETTER HIGH GO;Lo;0;L;;;;;N;;;;; +AA88;TAI VIET LETTER LOW NGO;Lo;0;L;;;;;N;;;;; +AA89;TAI VIET LETTER HIGH NGO;Lo;0;L;;;;;N;;;;; +AA8A;TAI VIET LETTER LOW CO;Lo;0;L;;;;;N;;;;; +AA8B;TAI VIET LETTER HIGH CO;Lo;0;L;;;;;N;;;;; +AA8C;TAI VIET LETTER LOW CHO;Lo;0;L;;;;;N;;;;; +AA8D;TAI VIET LETTER HIGH CHO;Lo;0;L;;;;;N;;;;; +AA8E;TAI VIET LETTER LOW SO;Lo;0;L;;;;;N;;;;; +AA8F;TAI VIET LETTER HIGH SO;Lo;0;L;;;;;N;;;;; +AA90;TAI VIET LETTER LOW NYO;Lo;0;L;;;;;N;;;;; +AA91;TAI VIET LETTER HIGH NYO;Lo;0;L;;;;;N;;;;; +AA92;TAI VIET LETTER LOW DO;Lo;0;L;;;;;N;;;;; +AA93;TAI VIET LETTER HIGH DO;Lo;0;L;;;;;N;;;;; +AA94;TAI VIET LETTER LOW TO;Lo;0;L;;;;;N;;;;; +AA95;TAI VIET LETTER HIGH TO;Lo;0;L;;;;;N;;;;; +AA96;TAI VIET LETTER LOW THO;Lo;0;L;;;;;N;;;;; +AA97;TAI VIET LETTER HIGH THO;Lo;0;L;;;;;N;;;;; +AA98;TAI VIET LETTER LOW NO;Lo;0;L;;;;;N;;;;; +AA99;TAI VIET LETTER HIGH NO;Lo;0;L;;;;;N;;;;; +AA9A;TAI VIET LETTER LOW BO;Lo;0;L;;;;;N;;;;; +AA9B;TAI VIET LETTER HIGH BO;Lo;0;L;;;;;N;;;;; +AA9C;TAI VIET LETTER LOW PO;Lo;0;L;;;;;N;;;;; +AA9D;TAI VIET LETTER HIGH PO;Lo;0;L;;;;;N;;;;; +AA9E;TAI VIET LETTER LOW PHO;Lo;0;L;;;;;N;;;;; +AA9F;TAI VIET LETTER HIGH PHO;Lo;0;L;;;;;N;;;;; +AAA0;TAI VIET LETTER LOW FO;Lo;0;L;;;;;N;;;;; +AAA1;TAI VIET LETTER HIGH FO;Lo;0;L;;;;;N;;;;; +AAA2;TAI VIET LETTER LOW MO;Lo;0;L;;;;;N;;;;; +AAA3;TAI VIET LETTER HIGH MO;Lo;0;L;;;;;N;;;;; +AAA4;TAI VIET LETTER LOW YO;Lo;0;L;;;;;N;;;;; +AAA5;TAI VIET LETTER HIGH YO;Lo;0;L;;;;;N;;;;; +AAA6;TAI VIET LETTER LOW RO;Lo;0;L;;;;;N;;;;; +AAA7;TAI VIET LETTER HIGH RO;Lo;0;L;;;;;N;;;;; +AAA8;TAI VIET LETTER LOW LO;Lo;0;L;;;;;N;;;;; +AAA9;TAI VIET LETTER HIGH LO;Lo;0;L;;;;;N;;;;; +AAAA;TAI VIET LETTER LOW VO;Lo;0;L;;;;;N;;;;; +AAAB;TAI VIET LETTER HIGH VO;Lo;0;L;;;;;N;;;;; +AAAC;TAI VIET LETTER LOW HO;Lo;0;L;;;;;N;;;;; +AAAD;TAI VIET LETTER HIGH HO;Lo;0;L;;;;;N;;;;; +AAAE;TAI VIET LETTER LOW O;Lo;0;L;;;;;N;;;;; +AAAF;TAI VIET LETTER HIGH O;Lo;0;L;;;;;N;;;;; +AAB0;TAI VIET MAI KANG;Mn;230;NSM;;;;;N;;;;; +AAB1;TAI VIET VOWEL AA;Lo;0;L;;;;;N;;;;; +AAB2;TAI VIET VOWEL I;Mn;230;NSM;;;;;N;;;;; +AAB3;TAI VIET VOWEL UE;Mn;230;NSM;;;;;N;;;;; +AAB4;TAI VIET VOWEL U;Mn;220;NSM;;;;;N;;;;; +AAB5;TAI VIET VOWEL E;Lo;0;L;;;;;N;;;;; +AAB6;TAI VIET VOWEL O;Lo;0;L;;;;;N;;;;; +AAB7;TAI VIET MAI KHIT;Mn;230;NSM;;;;;N;;;;; +AAB8;TAI VIET VOWEL IA;Mn;230;NSM;;;;;N;;;;; +AAB9;TAI VIET VOWEL UEA;Lo;0;L;;;;;N;;;;; +AABA;TAI VIET VOWEL UA;Lo;0;L;;;;;N;;;;; +AABB;TAI VIET VOWEL AUE;Lo;0;L;;;;;N;;;;; +AABC;TAI VIET VOWEL AY;Lo;0;L;;;;;N;;;;; +AABD;TAI VIET VOWEL AN;Lo;0;L;;;;;N;;;;; +AABE;TAI VIET VOWEL AM;Mn;230;NSM;;;;;N;;;;; +AABF;TAI VIET TONE MAI EK;Mn;230;NSM;;;;;N;;;;; +AAC0;TAI VIET TONE MAI NUENG;Lo;0;L;;;;;N;;;;; +AAC1;TAI VIET TONE MAI THO;Mn;230;NSM;;;;;N;;;;; +AAC2;TAI VIET TONE MAI SONG;Lo;0;L;;;;;N;;;;; +AADB;TAI VIET SYMBOL KON;Lo;0;L;;;;;N;;;;; +AADC;TAI VIET SYMBOL NUENG;Lo;0;L;;;;;N;;;;; +AADD;TAI VIET SYMBOL SAM;Lm;0;L;;;;;N;;;;; +AADE;TAI VIET SYMBOL HO HOI;Po;0;L;;;;;N;;;;; +AADF;TAI VIET SYMBOL KOI KOI;Po;0;L;;;;;N;;;;; +AAE0;MEETEI MAYEK LETTER E;Lo;0;L;;;;;N;;;;; +AAE1;MEETEI MAYEK LETTER O;Lo;0;L;;;;;N;;;;; +AAE2;MEETEI MAYEK LETTER CHA;Lo;0;L;;;;;N;;;;; +AAE3;MEETEI MAYEK LETTER NYA;Lo;0;L;;;;;N;;;;; +AAE4;MEETEI MAYEK LETTER TTA;Lo;0;L;;;;;N;;;;; +AAE5;MEETEI MAYEK LETTER TTHA;Lo;0;L;;;;;N;;;;; +AAE6;MEETEI MAYEK LETTER DDA;Lo;0;L;;;;;N;;;;; +AAE7;MEETEI MAYEK LETTER DDHA;Lo;0;L;;;;;N;;;;; +AAE8;MEETEI MAYEK LETTER NNA;Lo;0;L;;;;;N;;;;; +AAE9;MEETEI MAYEK LETTER SHA;Lo;0;L;;;;;N;;;;; +AAEA;MEETEI MAYEK LETTER SSA;Lo;0;L;;;;;N;;;;; +AAEB;MEETEI MAYEK VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +AAEC;MEETEI MAYEK VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +AAED;MEETEI MAYEK VOWEL SIGN AAI;Mn;0;NSM;;;;;N;;;;; +AAEE;MEETEI MAYEK VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +AAEF;MEETEI MAYEK VOWEL SIGN AAU;Mc;0;L;;;;;N;;;;; +AAF0;MEETEI MAYEK CHEIKHAN;Po;0;L;;;;;N;;;;; +AAF1;MEETEI MAYEK AHANG KHUDAM;Po;0;L;;;;;N;;;;; +AAF2;MEETEI MAYEK ANJI;Lo;0;L;;;;;N;;;;; +AAF3;MEETEI MAYEK SYLLABLE REPETITION MARK;Lm;0;L;;;;;N;;;;; +AAF4;MEETEI MAYEK WORD REPETITION MARK;Lm;0;L;;;;;N;;;;; +AAF5;MEETEI MAYEK VOWEL SIGN VISARGA;Mc;0;L;;;;;N;;;;; +AAF6;MEETEI MAYEK VIRAMA;Mn;9;NSM;;;;;N;;;;; +AB01;ETHIOPIC SYLLABLE TTHU;Lo;0;L;;;;;N;;;;; +AB02;ETHIOPIC SYLLABLE TTHI;Lo;0;L;;;;;N;;;;; +AB03;ETHIOPIC SYLLABLE TTHAA;Lo;0;L;;;;;N;;;;; +AB04;ETHIOPIC SYLLABLE TTHEE;Lo;0;L;;;;;N;;;;; +AB05;ETHIOPIC SYLLABLE TTHE;Lo;0;L;;;;;N;;;;; +AB06;ETHIOPIC SYLLABLE TTHO;Lo;0;L;;;;;N;;;;; +AB09;ETHIOPIC SYLLABLE DDHU;Lo;0;L;;;;;N;;;;; +AB0A;ETHIOPIC SYLLABLE DDHI;Lo;0;L;;;;;N;;;;; +AB0B;ETHIOPIC SYLLABLE DDHAA;Lo;0;L;;;;;N;;;;; +AB0C;ETHIOPIC SYLLABLE DDHEE;Lo;0;L;;;;;N;;;;; +AB0D;ETHIOPIC SYLLABLE DDHE;Lo;0;L;;;;;N;;;;; +AB0E;ETHIOPIC SYLLABLE DDHO;Lo;0;L;;;;;N;;;;; +AB11;ETHIOPIC SYLLABLE DZU;Lo;0;L;;;;;N;;;;; +AB12;ETHIOPIC SYLLABLE DZI;Lo;0;L;;;;;N;;;;; +AB13;ETHIOPIC SYLLABLE DZAA;Lo;0;L;;;;;N;;;;; +AB14;ETHIOPIC SYLLABLE DZEE;Lo;0;L;;;;;N;;;;; +AB15;ETHIOPIC SYLLABLE DZE;Lo;0;L;;;;;N;;;;; +AB16;ETHIOPIC SYLLABLE DZO;Lo;0;L;;;;;N;;;;; +AB20;ETHIOPIC SYLLABLE CCHHA;Lo;0;L;;;;;N;;;;; +AB21;ETHIOPIC SYLLABLE CCHHU;Lo;0;L;;;;;N;;;;; +AB22;ETHIOPIC SYLLABLE CCHHI;Lo;0;L;;;;;N;;;;; +AB23;ETHIOPIC SYLLABLE CCHHAA;Lo;0;L;;;;;N;;;;; +AB24;ETHIOPIC SYLLABLE CCHHEE;Lo;0;L;;;;;N;;;;; +AB25;ETHIOPIC SYLLABLE CCHHE;Lo;0;L;;;;;N;;;;; +AB26;ETHIOPIC SYLLABLE CCHHO;Lo;0;L;;;;;N;;;;; +AB28;ETHIOPIC SYLLABLE BBA;Lo;0;L;;;;;N;;;;; +AB29;ETHIOPIC SYLLABLE BBU;Lo;0;L;;;;;N;;;;; +AB2A;ETHIOPIC SYLLABLE BBI;Lo;0;L;;;;;N;;;;; +AB2B;ETHIOPIC SYLLABLE BBAA;Lo;0;L;;;;;N;;;;; +AB2C;ETHIOPIC SYLLABLE BBEE;Lo;0;L;;;;;N;;;;; +AB2D;ETHIOPIC SYLLABLE BBE;Lo;0;L;;;;;N;;;;; +AB2E;ETHIOPIC SYLLABLE BBO;Lo;0;L;;;;;N;;;;; +ABC0;MEETEI MAYEK LETTER KOK;Lo;0;L;;;;;N;;;;; +ABC1;MEETEI MAYEK LETTER SAM;Lo;0;L;;;;;N;;;;; +ABC2;MEETEI MAYEK LETTER LAI;Lo;0;L;;;;;N;;;;; +ABC3;MEETEI MAYEK LETTER MIT;Lo;0;L;;;;;N;;;;; +ABC4;MEETEI MAYEK LETTER PA;Lo;0;L;;;;;N;;;;; +ABC5;MEETEI MAYEK LETTER NA;Lo;0;L;;;;;N;;;;; +ABC6;MEETEI MAYEK LETTER CHIL;Lo;0;L;;;;;N;;;;; +ABC7;MEETEI MAYEK LETTER TIL;Lo;0;L;;;;;N;;;;; +ABC8;MEETEI MAYEK LETTER KHOU;Lo;0;L;;;;;N;;;;; +ABC9;MEETEI MAYEK LETTER NGOU;Lo;0;L;;;;;N;;;;; +ABCA;MEETEI MAYEK LETTER THOU;Lo;0;L;;;;;N;;;;; +ABCB;MEETEI MAYEK LETTER WAI;Lo;0;L;;;;;N;;;;; +ABCC;MEETEI MAYEK LETTER YANG;Lo;0;L;;;;;N;;;;; +ABCD;MEETEI MAYEK LETTER HUK;Lo;0;L;;;;;N;;;;; +ABCE;MEETEI MAYEK LETTER UN;Lo;0;L;;;;;N;;;;; +ABCF;MEETEI MAYEK LETTER I;Lo;0;L;;;;;N;;;;; +ABD0;MEETEI MAYEK LETTER PHAM;Lo;0;L;;;;;N;;;;; +ABD1;MEETEI MAYEK LETTER ATIYA;Lo;0;L;;;;;N;;;;; +ABD2;MEETEI MAYEK LETTER GOK;Lo;0;L;;;;;N;;;;; +ABD3;MEETEI MAYEK LETTER JHAM;Lo;0;L;;;;;N;;;;; +ABD4;MEETEI MAYEK LETTER RAI;Lo;0;L;;;;;N;;;;; +ABD5;MEETEI MAYEK LETTER BA;Lo;0;L;;;;;N;;;;; +ABD6;MEETEI MAYEK LETTER JIL;Lo;0;L;;;;;N;;;;; +ABD7;MEETEI MAYEK LETTER DIL;Lo;0;L;;;;;N;;;;; +ABD8;MEETEI MAYEK LETTER GHOU;Lo;0;L;;;;;N;;;;; +ABD9;MEETEI MAYEK LETTER DHOU;Lo;0;L;;;;;N;;;;; +ABDA;MEETEI MAYEK LETTER BHAM;Lo;0;L;;;;;N;;;;; +ABDB;MEETEI MAYEK LETTER KOK LONSUM;Lo;0;L;;;;;N;;;;; +ABDC;MEETEI MAYEK LETTER LAI LONSUM;Lo;0;L;;;;;N;;;;; +ABDD;MEETEI MAYEK LETTER MIT LONSUM;Lo;0;L;;;;;N;;;;; +ABDE;MEETEI MAYEK LETTER PA LONSUM;Lo;0;L;;;;;N;;;;; +ABDF;MEETEI MAYEK LETTER NA LONSUM;Lo;0;L;;;;;N;;;;; +ABE0;MEETEI MAYEK LETTER TIL LONSUM;Lo;0;L;;;;;N;;;;; +ABE1;MEETEI MAYEK LETTER NGOU LONSUM;Lo;0;L;;;;;N;;;;; +ABE2;MEETEI MAYEK LETTER I LONSUM;Lo;0;L;;;;;N;;;;; +ABE3;MEETEI MAYEK VOWEL SIGN ONAP;Mc;0;L;;;;;N;;;;; +ABE4;MEETEI MAYEK VOWEL SIGN INAP;Mc;0;L;;;;;N;;;;; +ABE5;MEETEI MAYEK VOWEL SIGN ANAP;Mn;0;NSM;;;;;N;;;;; +ABE6;MEETEI MAYEK VOWEL SIGN YENAP;Mc;0;L;;;;;N;;;;; +ABE7;MEETEI MAYEK VOWEL SIGN SOUNAP;Mc;0;L;;;;;N;;;;; +ABE8;MEETEI MAYEK VOWEL SIGN UNAP;Mn;0;NSM;;;;;N;;;;; +ABE9;MEETEI MAYEK VOWEL SIGN CHEINAP;Mc;0;L;;;;;N;;;;; +ABEA;MEETEI MAYEK VOWEL SIGN NUNG;Mc;0;L;;;;;N;;;;; +ABEB;MEETEI MAYEK CHEIKHEI;Po;0;L;;;;;N;;;;; +ABEC;MEETEI MAYEK LUM IYEK;Mc;0;L;;;;;N;;;;; +ABED;MEETEI MAYEK APUN IYEK;Mn;9;NSM;;;;;N;;;;; +ABF0;MEETEI MAYEK DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +ABF1;MEETEI MAYEK DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +ABF2;MEETEI MAYEK DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +ABF3;MEETEI MAYEK DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +ABF4;MEETEI MAYEK DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +ABF5;MEETEI MAYEK DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +ABF6;MEETEI MAYEK DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +ABF7;MEETEI MAYEK DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +ABF8;MEETEI MAYEK DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +ABF9;MEETEI MAYEK DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;; +D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;; +D7B0;HANGUL JUNGSEONG O-YEO;Lo;0;L;;;;;N;;;;; +D7B1;HANGUL JUNGSEONG O-O-I;Lo;0;L;;;;;N;;;;; +D7B2;HANGUL JUNGSEONG YO-A;Lo;0;L;;;;;N;;;;; +D7B3;HANGUL JUNGSEONG YO-AE;Lo;0;L;;;;;N;;;;; +D7B4;HANGUL JUNGSEONG YO-EO;Lo;0;L;;;;;N;;;;; +D7B5;HANGUL JUNGSEONG U-YEO;Lo;0;L;;;;;N;;;;; +D7B6;HANGUL JUNGSEONG U-I-I;Lo;0;L;;;;;N;;;;; +D7B7;HANGUL JUNGSEONG YU-AE;Lo;0;L;;;;;N;;;;; +D7B8;HANGUL JUNGSEONG YU-O;Lo;0;L;;;;;N;;;;; +D7B9;HANGUL JUNGSEONG EU-A;Lo;0;L;;;;;N;;;;; +D7BA;HANGUL JUNGSEONG EU-EO;Lo;0;L;;;;;N;;;;; +D7BB;HANGUL JUNGSEONG EU-E;Lo;0;L;;;;;N;;;;; +D7BC;HANGUL JUNGSEONG EU-O;Lo;0;L;;;;;N;;;;; +D7BD;HANGUL JUNGSEONG I-YA-O;Lo;0;L;;;;;N;;;;; +D7BE;HANGUL JUNGSEONG I-YAE;Lo;0;L;;;;;N;;;;; +D7BF;HANGUL JUNGSEONG I-YEO;Lo;0;L;;;;;N;;;;; +D7C0;HANGUL JUNGSEONG I-YE;Lo;0;L;;;;;N;;;;; +D7C1;HANGUL JUNGSEONG I-O-I;Lo;0;L;;;;;N;;;;; +D7C2;HANGUL JUNGSEONG I-YO;Lo;0;L;;;;;N;;;;; +D7C3;HANGUL JUNGSEONG I-YU;Lo;0;L;;;;;N;;;;; +D7C4;HANGUL JUNGSEONG I-I;Lo;0;L;;;;;N;;;;; +D7C5;HANGUL JUNGSEONG ARAEA-A;Lo;0;L;;;;;N;;;;; +D7C6;HANGUL JUNGSEONG ARAEA-E;Lo;0;L;;;;;N;;;;; +D7CB;HANGUL JONGSEONG NIEUN-RIEUL;Lo;0;L;;;;;N;;;;; +D7CC;HANGUL JONGSEONG NIEUN-CHIEUCH;Lo;0;L;;;;;N;;;;; +D7CD;HANGUL JONGSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;;;; +D7CE;HANGUL JONGSEONG SSANGTIKEUT-PIEUP;Lo;0;L;;;;;N;;;;; +D7CF;HANGUL JONGSEONG TIKEUT-PIEUP;Lo;0;L;;;;;N;;;;; +D7D0;HANGUL JONGSEONG TIKEUT-SIOS;Lo;0;L;;;;;N;;;;; +D7D1;HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; +D7D2;HANGUL JONGSEONG TIKEUT-CIEUC;Lo;0;L;;;;;N;;;;; +D7D3;HANGUL JONGSEONG TIKEUT-CHIEUCH;Lo;0;L;;;;;N;;;;; +D7D4;HANGUL JONGSEONG TIKEUT-THIEUTH;Lo;0;L;;;;;N;;;;; +D7D5;HANGUL JONGSEONG RIEUL-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; +D7D6;HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH;Lo;0;L;;;;;N;;;;; +D7D7;HANGUL JONGSEONG SSANGRIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; +D7D8;HANGUL JONGSEONG RIEUL-MIEUM-HIEUH;Lo;0;L;;;;;N;;;;; +D7D9;HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; +D7DA;HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; +D7DB;HANGUL JONGSEONG RIEUL-YESIEUNG;Lo;0;L;;;;;N;;;;; +D7DC;HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH;Lo;0;L;;;;;N;;;;; +D7DD;HANGUL JONGSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;; +D7DE;HANGUL JONGSEONG MIEUM-NIEUN;Lo;0;L;;;;;N;;;;; +D7DF;HANGUL JONGSEONG MIEUM-SSANGNIEUN;Lo;0;L;;;;;N;;;;; +D7E0;HANGUL JONGSEONG SSANGMIEUM;Lo;0;L;;;;;N;;;;; +D7E1;HANGUL JONGSEONG MIEUM-PIEUP-SIOS;Lo;0;L;;;;;N;;;;; +D7E2;HANGUL JONGSEONG MIEUM-CIEUC;Lo;0;L;;;;;N;;;;; +D7E3;HANGUL JONGSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; +D7E4;HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH;Lo;0;L;;;;;N;;;;; +D7E5;HANGUL JONGSEONG PIEUP-MIEUM;Lo;0;L;;;;;N;;;;; +D7E6;HANGUL JONGSEONG SSANGPIEUP;Lo;0;L;;;;;N;;;;; +D7E7;HANGUL JONGSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; +D7E8;HANGUL JONGSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;; +D7E9;HANGUL JONGSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;; +D7EA;HANGUL JONGSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;; +D7EB;HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; +D7EC;HANGUL JONGSEONG SSANGSIOS-KIYEOK;Lo;0;L;;;;;N;;;;; +D7ED;HANGUL JONGSEONG SSANGSIOS-TIKEUT;Lo;0;L;;;;;N;;;;; +D7EE;HANGUL JONGSEONG SIOS-PANSIOS;Lo;0;L;;;;;N;;;;; +D7EF;HANGUL JONGSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;; +D7F0;HANGUL JONGSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;; +D7F1;HANGUL JONGSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; +D7F2;HANGUL JONGSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;; +D7F3;HANGUL JONGSEONG PANSIOS-PIEUP;Lo;0;L;;;;;N;;;;; +D7F4;HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; +D7F5;HANGUL JONGSEONG YESIEUNG-MIEUM;Lo;0;L;;;;;N;;;;; +D7F6;HANGUL JONGSEONG YESIEUNG-HIEUH;Lo;0;L;;;;;N;;;;; +D7F7;HANGUL JONGSEONG CIEUC-PIEUP;Lo;0;L;;;;;N;;;;; +D7F8;HANGUL JONGSEONG CIEUC-SSANGPIEUP;Lo;0;L;;;;;N;;;;; +D7F9;HANGUL JONGSEONG SSANGCIEUC;Lo;0;L;;;;;N;;;;; +D7FA;HANGUL JONGSEONG PHIEUPH-SIOS;Lo;0;L;;;;;N;;;;; +D7FB;HANGUL JONGSEONG PHIEUPH-THIEUTH;Lo;0;L;;;;;N;;;;; +D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;; +DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;; +DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;; +DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;; +DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;; +DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;; +E000;<Private Use, First>;Co;0;L;;;;;N;;;;; +F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;; +F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;; +F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;; +F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;; +F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;; +F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;; +F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;; +F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;; +F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;; +F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;; +F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;; +F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;; +F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;; +F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;; +F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;; +F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;; +F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;; +F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;; +F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;; +F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;; +F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;; +F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;; +F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;; +F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;; +F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;; +F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;; +F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;; +F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;; +F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;; +F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;; +F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;; +F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;; +F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;; +F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;; +F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;; +F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;; +F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;; +F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;; +F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;; +F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;; +F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;; +F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;; +F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;; +F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;; +F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;; +F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;; +F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;; +F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;; +F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;; +F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;; +F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;; +F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;; +F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;; +F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;; +F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;; +F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;; +F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;; +F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;; +F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;; +F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;; +F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;; +F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;; +F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;; +F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;; +F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;; +F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;; +F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;; +F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;; +F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;; +F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;; +F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;; +F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;; +F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;; +F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;; +F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;; +F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;; +F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;; +F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;; +F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;; +F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;; +F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;; +F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;; +F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;; +F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;; +F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;; +F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;; +F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;; +F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;; +F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;; +F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;; +F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;; +F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;; +F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;; +F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;; +F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;; +F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;; +F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;; +F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;; +F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;; +F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;; +F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;; +F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;; +F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;; +F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;; +F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;; +F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;; +F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;; +F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;; +F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;3;N;;;;; +F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;; +F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;; +F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;; +F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;; +F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;; +F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;; +F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;; +F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;10;N;;;;; +F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;; +F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;; +F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;; +F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;; +F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;2;N;;;;; +F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;; +F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;; +F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;; +F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;; +F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;; +F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;; +F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;; +F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;; +F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;; +F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;; +F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;; +F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;; +F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;; +F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;; +F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;; +F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;; +F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;; +F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;; +F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;; +F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;; +F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;; +F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;; +F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;; +F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;; +F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;; +F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;; +F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;; +F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;; +F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;; +F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;; +F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;; +F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;; +F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;; +F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;; +F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;; +F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;; +F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;; +F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;; +F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;; +F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;; +F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;; +F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;; +F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;; +F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;; +F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;; +F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;; +F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;; +F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;; +F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;; +F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;; +F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;; +F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;; +F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;; +F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;; +F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;; +F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;; +F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;; +F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;0;N;;;;; +F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;; +F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;; +F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;; +F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;; +F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;; +F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;; +F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;; +F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;; +F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;; +F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;; +F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;; +F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;; +F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;; +F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;; +F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;; +F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;; +F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;; +F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;; +F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;; +F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;; +F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;; +F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;; +F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;; +F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;; +F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;; +F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;; +F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;; +F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;; +F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;; +F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;; +F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;6;N;;;;; +F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;; +F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;6;N;;;;; +F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;; +F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;; +F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;; +F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;; +F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;; +F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;; +F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;; +F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;; +F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;; +F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;; +F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;; +F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;; +F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;; +F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;; +F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;; +F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;; +F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;; +F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;; +F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;; +F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;; +F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;; +F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;; +F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;; +F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;; +F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;; +F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;; +F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;; +F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;; +F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;; +F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;; +F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;; +F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;; +F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;; +F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;; +F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;; +F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;; +F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;; +F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;; +F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;; +F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;; +F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;; +F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;10;N;;;;; +F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;; +F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;; +FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;; +FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;; +FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;; +FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;; +FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;; +FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;; +FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;; +FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;; +FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;; +FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;; +FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;; +FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;; +FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;; +FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;; +FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;; +FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;; +FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;; +FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;; +FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;; +FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;; +FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;; +FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;; +FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;; +FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;; +FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;; +FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;; +FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;; +FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;; +FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;; +FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;; +FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;; +FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;;;; +FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;; +FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;; +FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;; +FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;;;; +FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;; +FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;; +FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;; +FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;; +FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;; +FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;; +FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;; +FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;; +FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;; +FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;; +FA2E;CJK COMPATIBILITY IDEOGRAPH-FA2E;Lo;0;L;90DE;;;;N;;;;; +FA2F;CJK COMPATIBILITY IDEOGRAPH-FA2F;Lo;0;L;96B7;;;;N;;;;; +FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;; +FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;; +FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;; +FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;; +FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;; +FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;; +FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;; +FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;; +FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;; +FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;; +FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;; +FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;; +FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;; +FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;; +FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;; +FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;; +FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;; +FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;; +FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;; +FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;; +FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;; +FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;; +FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;; +FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;; +FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;; +FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;; +FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;; +FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;; +FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;; +FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;; +FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;; +FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;; +FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;; +FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;; +FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;; +FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;; +FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;; +FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;; +FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;; +FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;; +FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;; +FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;; +FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;; +FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;; +FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;; +FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;; +FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;; +FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;; +FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;; +FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;; +FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;; +FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;; +FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;; +FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;; +FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;; +FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;; +FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;; +FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;; +FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;; +FA6B;CJK COMPATIBILITY IDEOGRAPH-FA6B;Lo;0;L;6075;;;;N;;;;; +FA6C;CJK COMPATIBILITY IDEOGRAPH-FA6C;Lo;0;L;242EE;;;;N;;;;; +FA6D;CJK COMPATIBILITY IDEOGRAPH-FA6D;Lo;0;L;8218;;;;N;;;;; +FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;; +FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;; +FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;; +FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;; +FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;; +FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;; +FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;; +FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;; +FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;; +FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;; +FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;; +FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;; +FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;; +FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;; +FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;; +FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;; +FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;; +FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;; +FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;; +FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;; +FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;; +FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;; +FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;; +FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;; +FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;; +FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;; +FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;; +FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;; +FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;; +FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;; +FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;; +FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;; +FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;; +FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;; +FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;; +FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;; +FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;; +FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;; +FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;; +FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;; +FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;; +FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;; +FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;; +FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;; +FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;; +FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;; +FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;; +FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;; +FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;; +FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;; +FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;; +FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;; +FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;; +FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;; +FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;; +FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;; +FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;; +FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;; +FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;; +FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;; +FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;; +FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;; +FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;; +FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;; +FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;; +FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;; +FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;; +FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;; +FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;; +FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;; +FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;; +FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;; +FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;; +FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;; +FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;; +FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;; +FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;; +FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;; +FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;; +FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;; +FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;; +FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;; +FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;; +FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;; +FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;; +FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;; +FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;; +FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;; +FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;; +FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;; +FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;; +FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;; +FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;; +FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;; +FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;; +FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;; +FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;; +FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;; +FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;; +FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;; +FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;; +FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;; +FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;; +FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;; +FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;; +FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;; +FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;; +FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;; +FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;; +FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;; +FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;; +FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;; +FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;; +FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;; +FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;; +FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;; +FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;; +FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;; +FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;; +FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;; +FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;; +FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;; +FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;; +FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;; +FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;; +FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;; +FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;; +FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;; +FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;; +FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;; +FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES;<font> 002B;;;;N;;;;; +FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;; +FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;; +FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;; +FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;; +FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;; +FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;; +FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;; +FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;; +FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;; +FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;; +FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;; +FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;; +FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;; +FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;; +FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;; +FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;; +FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;; +FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;; +FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;; +FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;; +FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;; +FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;; +FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;; +FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;; +FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;; +FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;; +FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;; +FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;; +FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;; +FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;; +FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;; +FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;; +FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;; +FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;; +FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;; +FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;; +FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;; +FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;; +FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;; +FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;; +FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;; +FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;; +FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;; +FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;; +FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;; +FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;; +FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;; +FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;; +FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;; +FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;; +FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;; +FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;; +FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;; +FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;; +FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;; +FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;; +FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;; +FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;; +FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;; +FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;; +FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;; +FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;; +FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;; +FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;; +FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;; +FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;; +FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;; +FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;; +FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;; +FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;; +FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;; +FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;; +FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;; +FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;; +FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;; +FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;; +FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;; +FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;; +FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;; +FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;; +FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;; +FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;; +FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;; +FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;; +FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;; +FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;; +FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;; +FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;; +FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;; +FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;; +FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;; +FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;; +FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;; +FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;; +FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;; +FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;; +FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;; +FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;; +FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;; +FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;; +FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;; +FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;; +FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;; +FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;; +FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;; +FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;; +FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;; +FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;; +FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;; +FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;; +FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;; +FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;; +FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;; +FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;; +FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;; +FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;; +FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;; +FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;; +FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;; +FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;; +FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;; +FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;; +FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;; +FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;; +FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;; +FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;; +FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;; +FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;; +FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;; +FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;; +FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;; +FBB2;ARABIC SYMBOL DOT ABOVE;Sk;0;AL;;;;;N;;;;; +FBB3;ARABIC SYMBOL DOT BELOW;Sk;0;AL;;;;;N;;;;; +FBB4;ARABIC SYMBOL TWO DOTS ABOVE;Sk;0;AL;;;;;N;;;;; +FBB5;ARABIC SYMBOL TWO DOTS BELOW;Sk;0;AL;;;;;N;;;;; +FBB6;ARABIC SYMBOL THREE DOTS ABOVE;Sk;0;AL;;;;;N;;;;; +FBB7;ARABIC SYMBOL THREE DOTS BELOW;Sk;0;AL;;;;;N;;;;; +FBB8;ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE;Sk;0;AL;;;;;N;;;;; +FBB9;ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW;Sk;0;AL;;;;;N;;;;; +FBBA;ARABIC SYMBOL FOUR DOTS ABOVE;Sk;0;AL;;;;;N;;;;; +FBBB;ARABIC SYMBOL FOUR DOTS BELOW;Sk;0;AL;;;;;N;;;;; +FBBC;ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW;Sk;0;AL;;;;;N;;;;; +FBBD;ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE;Sk;0;AL;;;;;N;;;;; +FBBE;ARABIC SYMBOL TWO DOTS VERTICALLY BELOW;Sk;0;AL;;;;;N;;;;; +FBBF;ARABIC SYMBOL RING;Sk;0;AL;;;;;N;;;;; +FBC0;ARABIC SYMBOL SMALL TAH ABOVE;Sk;0;AL;;;;;N;;;;; +FBC1;ARABIC SYMBOL SMALL TAH BELOW;Sk;0;AL;;;;;N;;;;; +FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;; +FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;; +FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;; +FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;; +FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;; +FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;; +FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;; +FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;; +FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;; +FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;; +FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;; +FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;; +FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;; +FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;; +FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;; +FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;; +FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;; +FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;; +FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;; +FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;; +FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;; +FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;; +FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;; +FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;; +FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;; +FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;; +FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;; +FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;; +FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;; +FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;; +FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;; +FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;; +FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;; +FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;; +FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;; +FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;; +FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;; +FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;; +FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;; +FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;; +FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;; +FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;; +FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;; +FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;; +FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;; +FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;; +FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;; +FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;; +FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;; +FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;; +FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;; +FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;; +FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;; +FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;; +FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;; +FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;; +FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;; +FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;; +FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;; +FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;; +FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;; +FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;; +FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;; +FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;; +FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;; +FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;; +FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;; +FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;; +FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;; +FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;; +FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;; +FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;; +FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;; +FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;; +FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;; +FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;; +FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;; +FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;; +FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;; +FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;; +FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;; +FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;; +FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;; +FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;; +FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;; +FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;; +FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;; +FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;; +FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;; +FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;; +FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;; +FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;; +FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;; +FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;; +FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;; +FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;; +FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;; +FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;; +FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;; +FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;; +FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;; +FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;; +FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;; +FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;; +FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;; +FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;; +FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;; +FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;; +FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;; +FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;; +FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;; +FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;; +FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;; +FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;; +FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;; +FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;; +FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;; +FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;; +FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;; +FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;; +FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;; +FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;; +FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;; +FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;; +FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;; +FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;; +FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;; +FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;; +FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;; +FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;; +FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;; +FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;; +FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;; +FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;; +FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;; +FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;; +FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;; +FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;; +FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;; +FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;; +FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;; +FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;; +FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;; +FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;; +FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;; +FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;; +FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;; +FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;; +FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;; +FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;; +FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;; +FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;; +FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;; +FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;; +FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;; +FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;; +FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;; +FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;; +FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;; +FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;; +FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;; +FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;; +FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;; +FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;; +FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;; +FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;; +FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;; +FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;; +FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;; +FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;; +FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;; +FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;; +FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;; +FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;; +FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;; +FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;; +FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;; +FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;; +FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;; +FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;; +FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;; +FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;; +FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;; +FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;; +FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;; +FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;; +FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;; +FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;; +FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;; +FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;; +FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;; +FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;; +FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;; +FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;; +FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;; +FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;; +FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;; +FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;; +FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;; +FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;; +FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;; +FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;; +FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;; +FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;; +FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;; +FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;; +FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;; +FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;; +FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;; +FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;; +FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;; +FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;; +FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;; +FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;; +FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;; +FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;; +FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;; +FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;; +FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;; +FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;; +FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;; +FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;; +FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;; +FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;; +FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;; +FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;; +FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;; +FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;; +FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;; +FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;; +FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;; +FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;; +FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;; +FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;; +FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;; +FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;; +FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;; +FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;; +FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;; +FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;; +FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;; +FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;; +FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;; +FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;; +FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;; +FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;; +FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;; +FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;; +FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;; +FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;; +FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;; +FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;; +FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;; +FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;; +FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;; +FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;; +FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;; +FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;; +FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;; +FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;; +FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;; +FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;; +FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;; +FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;; +FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;; +FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;; +FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;; +FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;; +FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;; +FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;; +FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;; +FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;; +FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;; +FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;; +FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;; +FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;; +FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;; +FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;; +FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;; +FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;; +FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;; +FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;; +FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;; +FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;; +FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;; +FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;; +FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;; +FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;; +FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;; +FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;; +FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;; +FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;; +FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;; +FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;; +FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;; +FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;; +FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;; +FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;; +FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;; +FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;; +FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;; +FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;; +FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;; +FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;; +FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;; +FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;; +FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;; +FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;; +FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;; +FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;; +FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;; +FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;; +FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;; +FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;; +FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;; +FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;; +FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;; +FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;; +FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;; +FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;; +FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;; +FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;; +FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;; +FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;; +FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;; +FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;; +FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;; +FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;; +FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;; +FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;; +FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;; +FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;; +FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;; +FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;; +FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;; +FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;; +FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;; +FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;; +FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;; +FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;; +FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;; +FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;; +FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;; +FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;; +FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;; +FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;; +FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;; +FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;; +FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;; +FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;; +FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;; +FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;; +FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;; +FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;; +FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;; +FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;; +FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;; +FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;; +FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;; +FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;; +FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;; +FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;; +FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;; +FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;; +FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;; +FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;; +FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;; +FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;; +FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;; +FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;; +FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;; +FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;; +FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;; +FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;; +FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;; +FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;; +FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;; +FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;; +FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;; +FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;; +FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;; +FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;; +FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;; +FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;; +FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;; +FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;; +FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;; +FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;; +FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;; +FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;; +FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;; +FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;; +FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;; +FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;; +FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;; +FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;; +FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;; +FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;; +FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;; +FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;; +FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;; +FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;; +FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;; +FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;; +FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;; +FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;; +FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;; +FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;; +FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;; +FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;; +FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;; +FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;; +FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;; +FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;; +FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;; +FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;; +FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;; +FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;; +FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;; +FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;; +FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;; +FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;; +FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;; +FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;; +FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;; +FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;; +FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;; +FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;; +FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;; +FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;; +FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;; +FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;; +FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;; +FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;; +FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;; +FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;; +FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;; +FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;; +FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;; +FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;; +FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;; +FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;; +FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;; +FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;; +FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;; +FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;; +FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;; +FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;; +FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;; +FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;; +FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;; +FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;; +FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;; +FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;; +FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;; +FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;; +FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;; +FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;; +FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;; +FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;; +FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;; +FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;; +FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;; +FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;; +FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;; +FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;; +FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;; +FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;; +FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;; +FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;; +FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;; +FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;; +FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;; +FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;; +FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;; +FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;; +FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;; +FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;; +FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;; +FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;; +FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;; +FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;; +FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;; +FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;; +FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;; +FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;; +FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;; +FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;; +FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;; +FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;; +FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;; +FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;; +FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;; +FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;; +FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;; +FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;; +FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;; +FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;; +FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;; +FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;; +FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;; +FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;; +FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;; +FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;; +FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;; +FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;; +FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;; +FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;; +FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;; +FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;; +FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;; +FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;; +FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;; +FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON;<vertical> 002C;;;;N;;;;; +FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON;<vertical> 3001;;;;N;;;;; +FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON;<vertical> 3002;;;;N;;;;; +FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON;<vertical> 003A;;;;N;;;;; +FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON;<vertical> 003B;;;;N;;;;; +FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON;<vertical> 0021;;;;N;;;;; +FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON;<vertical> 003F;;;;N;;;;; +FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;<vertical> 3016;;;;N;;;;; +FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON;<vertical> 3017;;;;N;;;;; +FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON;<vertical> 2026;;;;N;;;;; +FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;; +FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; +FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;; +FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; +FE24;COMBINING MACRON LEFT HALF;Mn;230;NSM;;;;;N;;;;; +FE25;COMBINING MACRON RIGHT HALF;Mn;230;NSM;;;;;N;;;;; +FE26;COMBINING CONJOINING MACRON;Mn;230;NSM;;;;;N;;;;; +FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;; +FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;; +FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;; +FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;; +FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;; +FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;; +FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;; +FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;; +FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;; +FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;; +FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;; +FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;; +FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;; +FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;; +FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;; +FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;; +FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;; +FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;; +FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;; +FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;; +FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;; +FE45;SESAME DOT;Po;0;ON;;;;;N;;;;; +FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;; +FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;<vertical> 005B;;;;N;;;;; +FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;<vertical> 005D;;;;N;;;;; +FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;; +FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;; +FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;; +FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;; +FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;; +FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;; +FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;; +FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;; +FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;; +FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;; +FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;; +FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;; +FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;; +FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;; +FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;; +FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;; +FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;; +FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;; +FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;; +FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;; +FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;; +FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;; +FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;; +FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;; +FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;; +FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;; +FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;; +FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;; +FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;; +FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;; +FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;; +FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;; +FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;; +FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;; +FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;; +FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;; +FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;; +FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;; +FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;; +FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;; +FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;; +FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;; +FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;; +FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;; +FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;; +FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;; +FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;; +FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;; +FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;; +FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;; +FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;; +FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;; +FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;; +FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;; +FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;; +FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;; +FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;; +FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;; +FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;; +FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;; +FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;; +FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;; +FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;; +FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;; +FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;; +FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;; +FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;; +FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;; +FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;; +FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;; +FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;; +FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;; +FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;; +FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;; +FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;; +FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;; +FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;; +FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;; +FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;; +FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;; +FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;; +FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;; +FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;; +FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;; +FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;; +FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;; +FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;; +FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;; +FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;; +FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;; +FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;; +FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;; +FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;; +FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;; +FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;; +FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;; +FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;; +FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;; +FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;; +FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;; +FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;; +FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;; +FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;; +FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;; +FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;; +FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;; +FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;; +FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;; +FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;; +FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;; +FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;; +FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;; +FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;; +FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;; +FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;; +FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;; +FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;; +FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;; +FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;; +FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;; +FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;; +FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;; +FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;; +FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;; +FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;; +FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;; +FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;; +FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;; +FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;; +FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;; +FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;; +FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;; +FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;; +FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;; +FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;; +FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;; +FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;; +FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;; +FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;; +FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;; +FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;; +FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;; +FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;; +FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;; +FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;; +FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;; +FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;; +FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;; +FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;; +FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;; +FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;; +FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;; +FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;; +FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;; +FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;; +FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;; +FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;; +FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;; +FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;; +FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;; +FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;; +FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;; +FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;; +FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;; +FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;; +FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;; +FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;; +FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; +FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; +FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; +FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; +FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;; +FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;; +FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;; +FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;; +FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;; +FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;; +FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;; +FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;; +FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;; +FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;; +FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;; +FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;; +FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;; +FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES;<wide> 002B;;;;N;;;;; +FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;; +FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES;<wide> 002D;;;;N;;;;; +FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;; +FF0F;FULLWIDTH SOLIDUS;Po;0;CS;<wide> 002F;;;;N;FULLWIDTH SLASH;;;; +FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;; +FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;; +FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;; +FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;; +FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;; +FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;; +FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;; +FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;; +FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;; +FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;; +FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;; +FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;; +FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;; +FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;; +FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;; +FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;; +FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;; +FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41; +FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42; +FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43; +FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44; +FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45; +FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46; +FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47; +FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48; +FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49; +FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A; +FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B; +FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C; +FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D; +FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E; +FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F; +FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50; +FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51; +FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52; +FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53; +FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54; +FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55; +FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56; +FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57; +FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58; +FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59; +FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A; +FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;; +FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;; +FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;; +FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;; +FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;; +FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;; +FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21 +FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22 +FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23 +FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24 +FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25 +FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26 +FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27 +FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28 +FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29 +FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A +FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B +FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C +FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D +FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E +FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F +FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30 +FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31 +FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32 +FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33 +FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34 +FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35 +FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36 +FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37 +FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38 +FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39 +FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A +FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;; +FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;; +FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;; +FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;; +FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;;;; +FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;;;; +FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;; +FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;; +FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;; +FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;; +FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON;<narrow> 30FB;;;;N;;;;; +FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;; +FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;; +FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;; +FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;; +FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;; +FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;; +FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;; +FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;; +FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;; +FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;; +FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;; +FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;; +FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;; +FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;; +FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;; +FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;; +FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;; +FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;; +FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;; +FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;; +FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;; +FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;; +FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;; +FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;; +FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;; +FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;; +FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;; +FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;; +FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;; +FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;; +FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;; +FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;; +FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;; +FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;; +FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;; +FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;; +FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;; +FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;; +FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;; +FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;; +FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;; +FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;; +FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;; +FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;; +FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;; +FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;; +FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;; +FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;; +FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;; +FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;; +FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;; +FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;; +FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;; +FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;; +FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;; +FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;; +FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;;;; +FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;;;; +FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;; +FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;; +FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;; +FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; +FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;; +FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;; +FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;; +FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;; +FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;; +FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;; +FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;; +FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;; +FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;; +FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;; +FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;; +FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;; +FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;; +FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;; +FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;; +FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;; +FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;; +FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;; +FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;; +FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;; +FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;; +FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;; +FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;; +FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;; +FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;; +FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;; +FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;; +FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;; +FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;; +FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;; +FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;; +FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;; +FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;; +FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;; +FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;; +FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;; +FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;; +FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;; +FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;; +FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;; +FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;; +FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;; +FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;; +FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;; +FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;; +FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;; +FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;; +FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;; +FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;; +FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;; +FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;; +FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;;;; +FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;; +FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;; +FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;; +FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;; +FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;; +FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;; +FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;; +FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;; +FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;; +FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;; +FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;; +FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;; +FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;; +FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; +FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; +10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;; +10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;; +10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;; +10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;; +10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;; +10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;; +10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;; +10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;; +10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;; +10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;; +1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;; +1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;; +1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;; +1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;; +1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;; +10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;; +10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;; +10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;; +10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;; +10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;; +10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;; +10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;; +10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;; +10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;; +10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;; +1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;; +1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;; +1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;; +1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;; +1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;; +1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;; +10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;; +10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;; +10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;; +10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;; +10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;; +10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;; +10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;; +10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;; +10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;; +1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;; +1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;; +1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;; +1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;; +1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;; +1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;; +10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;; +10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;; +10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;; +10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;; +10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;; +10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;; +10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;; +10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;; +10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;; +10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;; +1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;; +1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;; +1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;; +1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;; +10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;; +10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;; +10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;; +10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;; +10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;; +10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;; +10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;; +10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;; +10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;; +10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;; +1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;; +1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;; +1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;; +1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;; +10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;; +10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;; +10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;; +10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;; +10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;; +10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;; +10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;; +10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;; +10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;; +10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;; +1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;; +1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;; +1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;; +1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;; +10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;; +10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;; +10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;; +10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;; +10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;; +10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;; +10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;; +10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;; +10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;; +10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;; +1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;; +1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;; +1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;; +1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;; +1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;; +1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;; +10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;; +10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;; +10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;; +10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;; +10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;; +10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;; +10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;; +10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;; +10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;; +10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;; +1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;; +1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;; +1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;; +1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;; +1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;; +1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;; +100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;; +100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;; +100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;; +100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;; +100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;; +100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;; +100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;; +100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;; +100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;; +100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;; +100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;; +100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;; +100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;; +100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;; +100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;; +100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;; +100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;; +100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;; +100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;; +100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;; +100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;; +100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;; +100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;; +100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;; +100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;; +100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;; +100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;; +100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;; +100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;; +100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;; +100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;; +100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;; +100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;; +100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;; +100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;; +100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;; +100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;; +100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;; +100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;; +100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;; +100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;; +100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;;;; +100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;; +100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;;;; +100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;; +100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;; +100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;; +100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;; +100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;; +100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;; +100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;; +100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;; +100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;; +100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;; +100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;; +100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;; +100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;; +100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;; +100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;; +100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;; +100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;; +100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;; +100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;; +100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;; +100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;; +100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;; +100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;; +100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;; +100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;; +100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;; +100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;; +100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;; +100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;; +100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;; +100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;; +100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;; +100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;; +100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;; +100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;; +100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;; +100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;; +100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;; +100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;; +100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;; +100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;; +100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;; +100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;; +100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;; +100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;; +100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;; +100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;; +10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;; +10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;; +10102;AEGEAN CHECK MARK;Po;0;L;;;;;N;;;;; +10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;; +10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;; +10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;; +1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;; +1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;; +1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;; +1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;; +1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;; +1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;; +10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;; +10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;; +10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;; +10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;; +10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;; +10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;; +10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;; +10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;; +10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;; +10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; +1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;; +1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;; +1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;; +1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;; +1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;; +1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;; +10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;; +10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;; +10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; +10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;; +10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;; +10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;; +10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;; +10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;; +10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;; +10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;; +1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;; +1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;; +1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;; +1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;; +1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;; +1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;; +10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;; +10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;; +10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;; +10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;; +10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;; +10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;; +10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;; +1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;; +1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;; +1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;; +1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;; +1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;; +1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;; +10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;; +10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;; +10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;; +10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;; +10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;; +10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; +10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;; +10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;; +10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;; +10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;; +1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;; +1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;; +1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;; +1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;; +1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;; +1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;; +10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;; +10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;; +10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;; +10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;; +10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;; +10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;; +10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;; +10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;; +10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;; +10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;; +1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;; +1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;; +1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;; +1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;; +1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;; +1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;; +10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;; +10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;; +10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;; +10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;; +10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;; +10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;; +10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;; +10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;; +10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;; +10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;; +1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;; +1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;; +1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; +1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; +1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; +1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; +10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; +10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;; +10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;; +10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;; +10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;; +10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;; +10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;; +10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;; +10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;; +10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;; +1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;; +1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;; +1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;; +1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;; +1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;; +1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;; +10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;; +10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;; +10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;; +10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;; +10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;; +10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;; +10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;; +10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;; +10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;; +10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;; +1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;; +10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;; +10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;; +10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;; +10193;ROMAN SEXTULA SIGN;So;0;ON;;;;;N;;;;; +10194;ROMAN DIMIDIA SEXTULA SIGN;So;0;ON;;;;;N;;;;; +10195;ROMAN SILIQUA SIGN;So;0;ON;;;;;N;;;;; +10196;ROMAN DENARIUS SIGN;So;0;ON;;;;;N;;;;; +10197;ROMAN QUINARIUS SIGN;So;0;ON;;;;;N;;;;; +10198;ROMAN SESTERTIUS SIGN;So;0;ON;;;;;N;;;;; +10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;; +1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;; +1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;; +101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;; +101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;; +101D2;PHAISTOS DISC SIGN TATTOOED HEAD;So;0;L;;;;;N;;;;; +101D3;PHAISTOS DISC SIGN CAPTIVE;So;0;L;;;;;N;;;;; +101D4;PHAISTOS DISC SIGN CHILD;So;0;L;;;;;N;;;;; +101D5;PHAISTOS DISC SIGN WOMAN;So;0;L;;;;;N;;;;; +101D6;PHAISTOS DISC SIGN HELMET;So;0;L;;;;;N;;;;; +101D7;PHAISTOS DISC SIGN GAUNTLET;So;0;L;;;;;N;;;;; +101D8;PHAISTOS DISC SIGN TIARA;So;0;L;;;;;N;;;;; +101D9;PHAISTOS DISC SIGN ARROW;So;0;L;;;;;N;;;;; +101DA;PHAISTOS DISC SIGN BOW;So;0;L;;;;;N;;;;; +101DB;PHAISTOS DISC SIGN SHIELD;So;0;L;;;;;N;;;;; +101DC;PHAISTOS DISC SIGN CLUB;So;0;L;;;;;N;;;;; +101DD;PHAISTOS DISC SIGN MANACLES;So;0;L;;;;;N;;;;; +101DE;PHAISTOS DISC SIGN MATTOCK;So;0;L;;;;;N;;;;; +101DF;PHAISTOS DISC SIGN SAW;So;0;L;;;;;N;;;;; +101E0;PHAISTOS DISC SIGN LID;So;0;L;;;;;N;;;;; +101E1;PHAISTOS DISC SIGN BOOMERANG;So;0;L;;;;;N;;;;; +101E2;PHAISTOS DISC SIGN CARPENTRY PLANE;So;0;L;;;;;N;;;;; +101E3;PHAISTOS DISC SIGN DOLIUM;So;0;L;;;;;N;;;;; +101E4;PHAISTOS DISC SIGN COMB;So;0;L;;;;;N;;;;; +101E5;PHAISTOS DISC SIGN SLING;So;0;L;;;;;N;;;;; +101E6;PHAISTOS DISC SIGN COLUMN;So;0;L;;;;;N;;;;; +101E7;PHAISTOS DISC SIGN BEEHIVE;So;0;L;;;;;N;;;;; +101E8;PHAISTOS DISC SIGN SHIP;So;0;L;;;;;N;;;;; +101E9;PHAISTOS DISC SIGN HORN;So;0;L;;;;;N;;;;; +101EA;PHAISTOS DISC SIGN HIDE;So;0;L;;;;;N;;;;; +101EB;PHAISTOS DISC SIGN BULLS LEG;So;0;L;;;;;N;;;;; +101EC;PHAISTOS DISC SIGN CAT;So;0;L;;;;;N;;;;; +101ED;PHAISTOS DISC SIGN RAM;So;0;L;;;;;N;;;;; +101EE;PHAISTOS DISC SIGN EAGLE;So;0;L;;;;;N;;;;; +101EF;PHAISTOS DISC SIGN DOVE;So;0;L;;;;;N;;;;; +101F0;PHAISTOS DISC SIGN TUNNY;So;0;L;;;;;N;;;;; +101F1;PHAISTOS DISC SIGN BEE;So;0;L;;;;;N;;;;; +101F2;PHAISTOS DISC SIGN PLANE TREE;So;0;L;;;;;N;;;;; +101F3;PHAISTOS DISC SIGN VINE;So;0;L;;;;;N;;;;; +101F4;PHAISTOS DISC SIGN PAPYRUS;So;0;L;;;;;N;;;;; +101F5;PHAISTOS DISC SIGN ROSETTE;So;0;L;;;;;N;;;;; +101F6;PHAISTOS DISC SIGN LILY;So;0;L;;;;;N;;;;; +101F7;PHAISTOS DISC SIGN OX BACK;So;0;L;;;;;N;;;;; +101F8;PHAISTOS DISC SIGN FLUTE;So;0;L;;;;;N;;;;; +101F9;PHAISTOS DISC SIGN GRATER;So;0;L;;;;;N;;;;; +101FA;PHAISTOS DISC SIGN STRAINER;So;0;L;;;;;N;;;;; +101FB;PHAISTOS DISC SIGN SMALL AXE;So;0;L;;;;;N;;;;; +101FC;PHAISTOS DISC SIGN WAVY BAND;So;0;L;;;;;N;;;;; +101FD;PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE;Mn;220;NSM;;;;;N;;;;; +10280;LYCIAN LETTER A;Lo;0;L;;;;;N;;;;; +10281;LYCIAN LETTER E;Lo;0;L;;;;;N;;;;; +10282;LYCIAN LETTER B;Lo;0;L;;;;;N;;;;; +10283;LYCIAN LETTER BH;Lo;0;L;;;;;N;;;;; +10284;LYCIAN LETTER G;Lo;0;L;;;;;N;;;;; +10285;LYCIAN LETTER D;Lo;0;L;;;;;N;;;;; +10286;LYCIAN LETTER I;Lo;0;L;;;;;N;;;;; +10287;LYCIAN LETTER W;Lo;0;L;;;;;N;;;;; +10288;LYCIAN LETTER Z;Lo;0;L;;;;;N;;;;; +10289;LYCIAN LETTER TH;Lo;0;L;;;;;N;;;;; +1028A;LYCIAN LETTER J;Lo;0;L;;;;;N;;;;; +1028B;LYCIAN LETTER K;Lo;0;L;;;;;N;;;;; +1028C;LYCIAN LETTER Q;Lo;0;L;;;;;N;;;;; +1028D;LYCIAN LETTER L;Lo;0;L;;;;;N;;;;; +1028E;LYCIAN LETTER M;Lo;0;L;;;;;N;;;;; +1028F;LYCIAN LETTER N;Lo;0;L;;;;;N;;;;; +10290;LYCIAN LETTER MM;Lo;0;L;;;;;N;;;;; +10291;LYCIAN LETTER NN;Lo;0;L;;;;;N;;;;; +10292;LYCIAN LETTER U;Lo;0;L;;;;;N;;;;; +10293;LYCIAN LETTER P;Lo;0;L;;;;;N;;;;; +10294;LYCIAN LETTER KK;Lo;0;L;;;;;N;;;;; +10295;LYCIAN LETTER R;Lo;0;L;;;;;N;;;;; +10296;LYCIAN LETTER S;Lo;0;L;;;;;N;;;;; +10297;LYCIAN LETTER T;Lo;0;L;;;;;N;;;;; +10298;LYCIAN LETTER TT;Lo;0;L;;;;;N;;;;; +10299;LYCIAN LETTER AN;Lo;0;L;;;;;N;;;;; +1029A;LYCIAN LETTER EN;Lo;0;L;;;;;N;;;;; +1029B;LYCIAN LETTER H;Lo;0;L;;;;;N;;;;; +1029C;LYCIAN LETTER X;Lo;0;L;;;;;N;;;;; +102A0;CARIAN LETTER A;Lo;0;L;;;;;N;;;;; +102A1;CARIAN LETTER P2;Lo;0;L;;;;;N;;;;; +102A2;CARIAN LETTER D;Lo;0;L;;;;;N;;;;; +102A3;CARIAN LETTER L;Lo;0;L;;;;;N;;;;; +102A4;CARIAN LETTER UUU;Lo;0;L;;;;;N;;;;; +102A5;CARIAN LETTER R;Lo;0;L;;;;;N;;;;; +102A6;CARIAN LETTER LD;Lo;0;L;;;;;N;;;;; +102A7;CARIAN LETTER A2;Lo;0;L;;;;;N;;;;; +102A8;CARIAN LETTER Q;Lo;0;L;;;;;N;;;;; +102A9;CARIAN LETTER B;Lo;0;L;;;;;N;;;;; +102AA;CARIAN LETTER M;Lo;0;L;;;;;N;;;;; +102AB;CARIAN LETTER O;Lo;0;L;;;;;N;;;;; +102AC;CARIAN LETTER D2;Lo;0;L;;;;;N;;;;; +102AD;CARIAN LETTER T;Lo;0;L;;;;;N;;;;; +102AE;CARIAN LETTER SH;Lo;0;L;;;;;N;;;;; +102AF;CARIAN LETTER SH2;Lo;0;L;;;;;N;;;;; +102B0;CARIAN LETTER S;Lo;0;L;;;;;N;;;;; +102B1;CARIAN LETTER C-18;Lo;0;L;;;;;N;;;;; +102B2;CARIAN LETTER U;Lo;0;L;;;;;N;;;;; +102B3;CARIAN LETTER NN;Lo;0;L;;;;;N;;;;; +102B4;CARIAN LETTER X;Lo;0;L;;;;;N;;;;; +102B5;CARIAN LETTER N;Lo;0;L;;;;;N;;;;; +102B6;CARIAN LETTER TT2;Lo;0;L;;;;;N;;;;; +102B7;CARIAN LETTER P;Lo;0;L;;;;;N;;;;; +102B8;CARIAN LETTER SS;Lo;0;L;;;;;N;;;;; +102B9;CARIAN LETTER I;Lo;0;L;;;;;N;;;;; +102BA;CARIAN LETTER E;Lo;0;L;;;;;N;;;;; +102BB;CARIAN LETTER UUUU;Lo;0;L;;;;;N;;;;; +102BC;CARIAN LETTER K;Lo;0;L;;;;;N;;;;; +102BD;CARIAN LETTER K2;Lo;0;L;;;;;N;;;;; +102BE;CARIAN LETTER ND;Lo;0;L;;;;;N;;;;; +102BF;CARIAN LETTER UU;Lo;0;L;;;;;N;;;;; +102C0;CARIAN LETTER G;Lo;0;L;;;;;N;;;;; +102C1;CARIAN LETTER G2;Lo;0;L;;;;;N;;;;; +102C2;CARIAN LETTER ST;Lo;0;L;;;;;N;;;;; +102C3;CARIAN LETTER ST2;Lo;0;L;;;;;N;;;;; +102C4;CARIAN LETTER NG;Lo;0;L;;;;;N;;;;; +102C5;CARIAN LETTER II;Lo;0;L;;;;;N;;;;; +102C6;CARIAN LETTER C-39;Lo;0;L;;;;;N;;;;; +102C7;CARIAN LETTER TT;Lo;0;L;;;;;N;;;;; +102C8;CARIAN LETTER UUU2;Lo;0;L;;;;;N;;;;; +102C9;CARIAN LETTER RR;Lo;0;L;;;;;N;;;;; +102CA;CARIAN LETTER MB;Lo;0;L;;;;;N;;;;; +102CB;CARIAN LETTER MB2;Lo;0;L;;;;;N;;;;; +102CC;CARIAN LETTER MB3;Lo;0;L;;;;;N;;;;; +102CD;CARIAN LETTER MB4;Lo;0;L;;;;;N;;;;; +102CE;CARIAN LETTER LD2;Lo;0;L;;;;;N;;;;; +102CF;CARIAN LETTER E2;Lo;0;L;;;;;N;;;;; +102D0;CARIAN LETTER UUU3;Lo;0;L;;;;;N;;;;; +10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;; +10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;; +10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;; +10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;; +10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;; +10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;; +10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;; +10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;; +10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;; +10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;; +1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;; +1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;; +1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;; +1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;; +1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;; +1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;;;; +10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;; +10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;; +10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;; +10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;; +10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;; +10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;; +10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;; +10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;;;; +10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;; +10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;; +1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;; +1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;;;; +1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;;;; +1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;;;; +1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;;;; +10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;; +10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;; +10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;; +10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;; +10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;; +10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;; +10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;; +10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;; +10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;; +10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;; +10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;; +10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;; +10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;; +10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;; +1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;; +1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;; +1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;; +1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;; +1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;; +1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;; +10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;; +10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;; +10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;; +10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;; +10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;; +10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;; +10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;; +10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;; +10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;; +10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;; +1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;; +10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;; +10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;; +10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;; +10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;; +10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;; +10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;; +10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;; +10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;; +10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;; +10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;; +1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;; +1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;; +1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;; +1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;; +1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;; +1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;; +10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;; +10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;; +10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;; +10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;; +10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;; +10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;; +10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;; +10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;; +10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;; +10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;; +1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;; +1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;; +1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;; +1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;; +1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;; +103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;; +103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;; +103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;; +103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;; +103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;; +103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;; +103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;; +103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;; +103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;; +103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;; +103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;; +103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;; +103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;; +103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;; +103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;; +103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;; +103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;; +103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;; +103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;; +103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;; +103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;; +103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;; +103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;; +103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;; +103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;; +103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;; +103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;; +103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;; +103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;; +103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;; +103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;; +103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;; +103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;; +103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;; +103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;; +103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;; +103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;; +103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;; +103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;; +103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;; +103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;; +103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;; +103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;; +103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;; +103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;; +103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;; +103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;; +103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;; +103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;; +103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;; +10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428; +10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429; +10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A; +10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B; +10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C; +10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D; +10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E; +10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F; +10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430; +10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431; +1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432; +1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433; +1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434; +1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435; +1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436; +1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437; +10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438; +10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439; +10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A; +10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B; +10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C; +10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D; +10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E; +10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F; +10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440; +10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441; +1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442; +1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443; +1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444; +1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445; +1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446; +1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447; +10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448; +10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449; +10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A; +10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B; +10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C; +10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D; +10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E; +10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F; +10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400 +10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401 +1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402 +1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403 +1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404 +1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405 +1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406 +1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407 +10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408 +10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409 +10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A +10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B +10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C +10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D +10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E +10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F +10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410 +10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411 +1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412 +1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413 +1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414 +1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415 +1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416 +1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417 +10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418 +10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419 +10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A +10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B +10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C +10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D +10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E +10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F +10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420 +10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421 +1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422 +1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423 +1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424 +1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425 +1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426 +1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427 +10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;; +10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;; +10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;; +10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;; +10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;; +10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;; +10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;; +10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;; +10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;; +10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;; +1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;; +1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;; +1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;; +1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;; +1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;; +1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;; +10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;; +10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;; +10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;; +10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;; +10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;; +10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;; +10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;; +10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;; +10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;; +10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;; +1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;; +1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;; +1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;; +1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;; +1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;; +1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;; +10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;; +10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;; +10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;; +10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;; +10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;; +10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;; +10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;; +10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;; +10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;; +10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;; +1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;; +1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;; +1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;; +1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;; +1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;; +1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;; +10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;; +10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;; +10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;; +10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;; +10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;; +10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;; +10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;; +10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;; +10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;; +10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;; +1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;; +1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;; +1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;; +1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;; +1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;; +1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;; +10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;; +10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;; +10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;; +10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;; +10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;; +10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;; +10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;; +10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;; +10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;; +10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;; +1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;; +1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;; +1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;; +1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;; +104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;; +10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;; +10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;; +10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;; +10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;; +10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;; +10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;; +1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;; +1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;; +1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;; +1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;; +1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;; +1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;; +10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;; +10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;; +10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;; +10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;; +10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;; +10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;; +10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;; +10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;; +10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;; +10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;; +1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;; +1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;; +1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;; +1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;; +1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;; +1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;; +10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;; +10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;; +10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;; +10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;; +10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;; +10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;; +10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;; +10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;; +10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;; +10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;; +1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;; +1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;; +1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;; +1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;; +1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;; +1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;; +10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;; +10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;; +10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;; +10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;; +10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;; +10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;; +10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;; +10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;; +1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;; +1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;; +10840;IMPERIAL ARAMAIC LETTER ALEPH;Lo;0;R;;;;;N;;;;; +10841;IMPERIAL ARAMAIC LETTER BETH;Lo;0;R;;;;;N;;;;; +10842;IMPERIAL ARAMAIC LETTER GIMEL;Lo;0;R;;;;;N;;;;; +10843;IMPERIAL ARAMAIC LETTER DALETH;Lo;0;R;;;;;N;;;;; +10844;IMPERIAL ARAMAIC LETTER HE;Lo;0;R;;;;;N;;;;; +10845;IMPERIAL ARAMAIC LETTER WAW;Lo;0;R;;;;;N;;;;; +10846;IMPERIAL ARAMAIC LETTER ZAYIN;Lo;0;R;;;;;N;;;;; +10847;IMPERIAL ARAMAIC LETTER HETH;Lo;0;R;;;;;N;;;;; +10848;IMPERIAL ARAMAIC LETTER TETH;Lo;0;R;;;;;N;;;;; +10849;IMPERIAL ARAMAIC LETTER YODH;Lo;0;R;;;;;N;;;;; +1084A;IMPERIAL ARAMAIC LETTER KAPH;Lo;0;R;;;;;N;;;;; +1084B;IMPERIAL ARAMAIC LETTER LAMEDH;Lo;0;R;;;;;N;;;;; +1084C;IMPERIAL ARAMAIC LETTER MEM;Lo;0;R;;;;;N;;;;; +1084D;IMPERIAL ARAMAIC LETTER NUN;Lo;0;R;;;;;N;;;;; +1084E;IMPERIAL ARAMAIC LETTER SAMEKH;Lo;0;R;;;;;N;;;;; +1084F;IMPERIAL ARAMAIC LETTER AYIN;Lo;0;R;;;;;N;;;;; +10850;IMPERIAL ARAMAIC LETTER PE;Lo;0;R;;;;;N;;;;; +10851;IMPERIAL ARAMAIC LETTER SADHE;Lo;0;R;;;;;N;;;;; +10852;IMPERIAL ARAMAIC LETTER QOPH;Lo;0;R;;;;;N;;;;; +10853;IMPERIAL ARAMAIC LETTER RESH;Lo;0;R;;;;;N;;;;; +10854;IMPERIAL ARAMAIC LETTER SHIN;Lo;0;R;;;;;N;;;;; +10855;IMPERIAL ARAMAIC LETTER TAW;Lo;0;R;;;;;N;;;;; +10857;IMPERIAL ARAMAIC SECTION SIGN;Po;0;R;;;;;N;;;;; +10858;IMPERIAL ARAMAIC NUMBER ONE;No;0;R;;;;1;N;;;;; +10859;IMPERIAL ARAMAIC NUMBER TWO;No;0;R;;;;2;N;;;;; +1085A;IMPERIAL ARAMAIC NUMBER THREE;No;0;R;;;;3;N;;;;; +1085B;IMPERIAL ARAMAIC NUMBER TEN;No;0;R;;;;10;N;;;;; +1085C;IMPERIAL ARAMAIC NUMBER TWENTY;No;0;R;;;;20;N;;;;; +1085D;IMPERIAL ARAMAIC NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; +1085E;IMPERIAL ARAMAIC NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; +1085F;IMPERIAL ARAMAIC NUMBER TEN THOUSAND;No;0;R;;;;10000;N;;;;; +10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;; +10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;; +10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;; +10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;; +10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;; +10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;; +10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;; +10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;; +10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;; +10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;; +1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;; +1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;; +1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;; +1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;; +1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;; +1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;; +10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;; +10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;; +10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;; +10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;; +10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;; +10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;; +10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;; +10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;; +10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;; +10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; +1091A;PHOENICIAN NUMBER TWO;No;0;R;;;;2;N;;;;; +1091B;PHOENICIAN NUMBER THREE;No;0;R;;;;3;N;;;;; +1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;; +10920;LYDIAN LETTER A;Lo;0;R;;;;;N;;;;; +10921;LYDIAN LETTER B;Lo;0;R;;;;;N;;;;; +10922;LYDIAN LETTER G;Lo;0;R;;;;;N;;;;; +10923;LYDIAN LETTER D;Lo;0;R;;;;;N;;;;; +10924;LYDIAN LETTER E;Lo;0;R;;;;;N;;;;; +10925;LYDIAN LETTER V;Lo;0;R;;;;;N;;;;; +10926;LYDIAN LETTER I;Lo;0;R;;;;;N;;;;; +10927;LYDIAN LETTER Y;Lo;0;R;;;;;N;;;;; +10928;LYDIAN LETTER K;Lo;0;R;;;;;N;;;;; +10929;LYDIAN LETTER L;Lo;0;R;;;;;N;;;;; +1092A;LYDIAN LETTER M;Lo;0;R;;;;;N;;;;; +1092B;LYDIAN LETTER N;Lo;0;R;;;;;N;;;;; +1092C;LYDIAN LETTER O;Lo;0;R;;;;;N;;;;; +1092D;LYDIAN LETTER R;Lo;0;R;;;;;N;;;;; +1092E;LYDIAN LETTER SS;Lo;0;R;;;;;N;;;;; +1092F;LYDIAN LETTER T;Lo;0;R;;;;;N;;;;; +10930;LYDIAN LETTER U;Lo;0;R;;;;;N;;;;; +10931;LYDIAN LETTER F;Lo;0;R;;;;;N;;;;; +10932;LYDIAN LETTER Q;Lo;0;R;;;;;N;;;;; +10933;LYDIAN LETTER S;Lo;0;R;;;;;N;;;;; +10934;LYDIAN LETTER TT;Lo;0;R;;;;;N;;;;; +10935;LYDIAN LETTER AN;Lo;0;R;;;;;N;;;;; +10936;LYDIAN LETTER EN;Lo;0;R;;;;;N;;;;; +10937;LYDIAN LETTER LY;Lo;0;R;;;;;N;;;;; +10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;; +10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;; +1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;; +10980;MEROITIC HIEROGLYPHIC LETTER A;Lo;0;R;;;;;N;;;;; +10981;MEROITIC HIEROGLYPHIC LETTER E;Lo;0;R;;;;;N;;;;; +10982;MEROITIC HIEROGLYPHIC LETTER I;Lo;0;R;;;;;N;;;;; +10983;MEROITIC HIEROGLYPHIC LETTER O;Lo;0;R;;;;;N;;;;; +10984;MEROITIC HIEROGLYPHIC LETTER YA;Lo;0;R;;;;;N;;;;; +10985;MEROITIC HIEROGLYPHIC LETTER WA;Lo;0;R;;;;;N;;;;; +10986;MEROITIC HIEROGLYPHIC LETTER BA;Lo;0;R;;;;;N;;;;; +10987;MEROITIC HIEROGLYPHIC LETTER BA-2;Lo;0;R;;;;;N;;;;; +10988;MEROITIC HIEROGLYPHIC LETTER PA;Lo;0;R;;;;;N;;;;; +10989;MEROITIC HIEROGLYPHIC LETTER MA;Lo;0;R;;;;;N;;;;; +1098A;MEROITIC HIEROGLYPHIC LETTER NA;Lo;0;R;;;;;N;;;;; +1098B;MEROITIC HIEROGLYPHIC LETTER NA-2;Lo;0;R;;;;;N;;;;; +1098C;MEROITIC HIEROGLYPHIC LETTER NE;Lo;0;R;;;;;N;;;;; +1098D;MEROITIC HIEROGLYPHIC LETTER NE-2;Lo;0;R;;;;;N;;;;; +1098E;MEROITIC HIEROGLYPHIC LETTER RA;Lo;0;R;;;;;N;;;;; +1098F;MEROITIC HIEROGLYPHIC LETTER RA-2;Lo;0;R;;;;;N;;;;; +10990;MEROITIC HIEROGLYPHIC LETTER LA;Lo;0;R;;;;;N;;;;; +10991;MEROITIC HIEROGLYPHIC LETTER KHA;Lo;0;R;;;;;N;;;;; +10992;MEROITIC HIEROGLYPHIC LETTER HHA;Lo;0;R;;;;;N;;;;; +10993;MEROITIC HIEROGLYPHIC LETTER SA;Lo;0;R;;;;;N;;;;; +10994;MEROITIC HIEROGLYPHIC LETTER SA-2;Lo;0;R;;;;;N;;;;; +10995;MEROITIC HIEROGLYPHIC LETTER SE;Lo;0;R;;;;;N;;;;; +10996;MEROITIC HIEROGLYPHIC LETTER KA;Lo;0;R;;;;;N;;;;; +10997;MEROITIC HIEROGLYPHIC LETTER QA;Lo;0;R;;;;;N;;;;; +10998;MEROITIC HIEROGLYPHIC LETTER TA;Lo;0;R;;;;;N;;;;; +10999;MEROITIC HIEROGLYPHIC LETTER TA-2;Lo;0;R;;;;;N;;;;; +1099A;MEROITIC HIEROGLYPHIC LETTER TE;Lo;0;R;;;;;N;;;;; +1099B;MEROITIC HIEROGLYPHIC LETTER TE-2;Lo;0;R;;;;;N;;;;; +1099C;MEROITIC HIEROGLYPHIC LETTER TO;Lo;0;R;;;;;N;;;;; +1099D;MEROITIC HIEROGLYPHIC LETTER DA;Lo;0;R;;;;;N;;;;; +1099E;MEROITIC HIEROGLYPHIC SYMBOL VIDJ;Lo;0;R;;;;;N;;;;; +1099F;MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2;Lo;0;R;;;;;N;;;;; +109A0;MEROITIC CURSIVE LETTER A;Lo;0;R;;;;;N;;;;; +109A1;MEROITIC CURSIVE LETTER E;Lo;0;R;;;;;N;;;;; +109A2;MEROITIC CURSIVE LETTER I;Lo;0;R;;;;;N;;;;; +109A3;MEROITIC CURSIVE LETTER O;Lo;0;R;;;;;N;;;;; +109A4;MEROITIC CURSIVE LETTER YA;Lo;0;R;;;;;N;;;;; +109A5;MEROITIC CURSIVE LETTER WA;Lo;0;R;;;;;N;;;;; +109A6;MEROITIC CURSIVE LETTER BA;Lo;0;R;;;;;N;;;;; +109A7;MEROITIC CURSIVE LETTER PA;Lo;0;R;;;;;N;;;;; +109A8;MEROITIC CURSIVE LETTER MA;Lo;0;R;;;;;N;;;;; +109A9;MEROITIC CURSIVE LETTER NA;Lo;0;R;;;;;N;;;;; +109AA;MEROITIC CURSIVE LETTER NE;Lo;0;R;;;;;N;;;;; +109AB;MEROITIC CURSIVE LETTER RA;Lo;0;R;;;;;N;;;;; +109AC;MEROITIC CURSIVE LETTER LA;Lo;0;R;;;;;N;;;;; +109AD;MEROITIC CURSIVE LETTER KHA;Lo;0;R;;;;;N;;;;; +109AE;MEROITIC CURSIVE LETTER HHA;Lo;0;R;;;;;N;;;;; +109AF;MEROITIC CURSIVE LETTER SA;Lo;0;R;;;;;N;;;;; +109B0;MEROITIC CURSIVE LETTER ARCHAIC SA;Lo;0;R;;;;;N;;;;; +109B1;MEROITIC CURSIVE LETTER SE;Lo;0;R;;;;;N;;;;; +109B2;MEROITIC CURSIVE LETTER KA;Lo;0;R;;;;;N;;;;; +109B3;MEROITIC CURSIVE LETTER QA;Lo;0;R;;;;;N;;;;; +109B4;MEROITIC CURSIVE LETTER TA;Lo;0;R;;;;;N;;;;; +109B5;MEROITIC CURSIVE LETTER TE;Lo;0;R;;;;;N;;;;; +109B6;MEROITIC CURSIVE LETTER TO;Lo;0;R;;;;;N;;;;; +109B7;MEROITIC CURSIVE LETTER DA;Lo;0;R;;;;;N;;;;; +109BE;MEROITIC CURSIVE LOGOGRAM RMT;Lo;0;R;;;;;N;;;;; +109BF;MEROITIC CURSIVE LOGOGRAM IMN;Lo;0;R;;;;;N;;;;; +10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;; +10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;; +10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;; +10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;; +10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;; +10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;; +10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;; +10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;; +10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;; +10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;; +10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;; +10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;; +10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;; +10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;; +10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;; +10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;; +10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;; +10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;; +10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;; +10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;; +10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;; +10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;; +10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;; +10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;; +10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;; +10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;; +10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;; +10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;; +10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;; +10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;; +10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;; +10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;; +10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;; +10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;; +10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;; +10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;; +10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;; +10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;; +10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;; +10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;; +10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;; +10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;; +10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;; +10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;; +10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;; +10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;; +10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;; +10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;; +10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; +10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; +10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;; +10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;; +10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;; +10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;; +10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;; +10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;; +10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;; +10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;; +10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;; +10A60;OLD SOUTH ARABIAN LETTER HE;Lo;0;R;;;;;N;;;;; +10A61;OLD SOUTH ARABIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;; +10A62;OLD SOUTH ARABIAN LETTER HETH;Lo;0;R;;;;;N;;;;; +10A63;OLD SOUTH ARABIAN LETTER MEM;Lo;0;R;;;;;N;;;;; +10A64;OLD SOUTH ARABIAN LETTER QOPH;Lo;0;R;;;;;N;;;;; +10A65;OLD SOUTH ARABIAN LETTER WAW;Lo;0;R;;;;;N;;;;; +10A66;OLD SOUTH ARABIAN LETTER SHIN;Lo;0;R;;;;;N;;;;; +10A67;OLD SOUTH ARABIAN LETTER RESH;Lo;0;R;;;;;N;;;;; +10A68;OLD SOUTH ARABIAN LETTER BETH;Lo;0;R;;;;;N;;;;; +10A69;OLD SOUTH ARABIAN LETTER TAW;Lo;0;R;;;;;N;;;;; +10A6A;OLD SOUTH ARABIAN LETTER SAT;Lo;0;R;;;;;N;;;;; +10A6B;OLD SOUTH ARABIAN LETTER KAPH;Lo;0;R;;;;;N;;;;; +10A6C;OLD SOUTH ARABIAN LETTER NUN;Lo;0;R;;;;;N;;;;; +10A6D;OLD SOUTH ARABIAN LETTER KHETH;Lo;0;R;;;;;N;;;;; +10A6E;OLD SOUTH ARABIAN LETTER SADHE;Lo;0;R;;;;;N;;;;; +10A6F;OLD SOUTH ARABIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;; +10A70;OLD SOUTH ARABIAN LETTER FE;Lo;0;R;;;;;N;;;;; +10A71;OLD SOUTH ARABIAN LETTER ALEF;Lo;0;R;;;;;N;;;;; +10A72;OLD SOUTH ARABIAN LETTER AYN;Lo;0;R;;;;;N;;;;; +10A73;OLD SOUTH ARABIAN LETTER DHADHE;Lo;0;R;;;;;N;;;;; +10A74;OLD SOUTH ARABIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;; +10A75;OLD SOUTH ARABIAN LETTER DALETH;Lo;0;R;;;;;N;;;;; +10A76;OLD SOUTH ARABIAN LETTER GHAYN;Lo;0;R;;;;;N;;;;; +10A77;OLD SOUTH ARABIAN LETTER TETH;Lo;0;R;;;;;N;;;;; +10A78;OLD SOUTH ARABIAN LETTER ZAYN;Lo;0;R;;;;;N;;;;; +10A79;OLD SOUTH ARABIAN LETTER DHALETH;Lo;0;R;;;;;N;;;;; +10A7A;OLD SOUTH ARABIAN LETTER YODH;Lo;0;R;;;;;N;;;;; +10A7B;OLD SOUTH ARABIAN LETTER THAW;Lo;0;R;;;;;N;;;;; +10A7C;OLD SOUTH ARABIAN LETTER THETH;Lo;0;R;;;;;N;;;;; +10A7D;OLD SOUTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;; +10A7E;OLD SOUTH ARABIAN NUMBER FIFTY;No;0;R;;;;50;N;;;;; +10A7F;OLD SOUTH ARABIAN NUMERIC INDICATOR;Po;0;R;;;;;N;;;;; +10B00;AVESTAN LETTER A;Lo;0;R;;;;;N;;;;; +10B01;AVESTAN LETTER AA;Lo;0;R;;;;;N;;;;; +10B02;AVESTAN LETTER AO;Lo;0;R;;;;;N;;;;; +10B03;AVESTAN LETTER AAO;Lo;0;R;;;;;N;;;;; +10B04;AVESTAN LETTER AN;Lo;0;R;;;;;N;;;;; +10B05;AVESTAN LETTER AAN;Lo;0;R;;;;;N;;;;; +10B06;AVESTAN LETTER AE;Lo;0;R;;;;;N;;;;; +10B07;AVESTAN LETTER AEE;Lo;0;R;;;;;N;;;;; +10B08;AVESTAN LETTER E;Lo;0;R;;;;;N;;;;; +10B09;AVESTAN LETTER EE;Lo;0;R;;;;;N;;;;; +10B0A;AVESTAN LETTER O;Lo;0;R;;;;;N;;;;; +10B0B;AVESTAN LETTER OO;Lo;0;R;;;;;N;;;;; +10B0C;AVESTAN LETTER I;Lo;0;R;;;;;N;;;;; +10B0D;AVESTAN LETTER II;Lo;0;R;;;;;N;;;;; +10B0E;AVESTAN LETTER U;Lo;0;R;;;;;N;;;;; +10B0F;AVESTAN LETTER UU;Lo;0;R;;;;;N;;;;; +10B10;AVESTAN LETTER KE;Lo;0;R;;;;;N;;;;; +10B11;AVESTAN LETTER XE;Lo;0;R;;;;;N;;;;; +10B12;AVESTAN LETTER XYE;Lo;0;R;;;;;N;;;;; +10B13;AVESTAN LETTER XVE;Lo;0;R;;;;;N;;;;; +10B14;AVESTAN LETTER GE;Lo;0;R;;;;;N;;;;; +10B15;AVESTAN LETTER GGE;Lo;0;R;;;;;N;;;;; +10B16;AVESTAN LETTER GHE;Lo;0;R;;;;;N;;;;; +10B17;AVESTAN LETTER CE;Lo;0;R;;;;;N;;;;; +10B18;AVESTAN LETTER JE;Lo;0;R;;;;;N;;;;; +10B19;AVESTAN LETTER TE;Lo;0;R;;;;;N;;;;; +10B1A;AVESTAN LETTER THE;Lo;0;R;;;;;N;;;;; +10B1B;AVESTAN LETTER DE;Lo;0;R;;;;;N;;;;; +10B1C;AVESTAN LETTER DHE;Lo;0;R;;;;;N;;;;; +10B1D;AVESTAN LETTER TTE;Lo;0;R;;;;;N;;;;; +10B1E;AVESTAN LETTER PE;Lo;0;R;;;;;N;;;;; +10B1F;AVESTAN LETTER FE;Lo;0;R;;;;;N;;;;; +10B20;AVESTAN LETTER BE;Lo;0;R;;;;;N;;;;; +10B21;AVESTAN LETTER BHE;Lo;0;R;;;;;N;;;;; +10B22;AVESTAN LETTER NGE;Lo;0;R;;;;;N;;;;; +10B23;AVESTAN LETTER NGYE;Lo;0;R;;;;;N;;;;; +10B24;AVESTAN LETTER NGVE;Lo;0;R;;;;;N;;;;; +10B25;AVESTAN LETTER NE;Lo;0;R;;;;;N;;;;; +10B26;AVESTAN LETTER NYE;Lo;0;R;;;;;N;;;;; +10B27;AVESTAN LETTER NNE;Lo;0;R;;;;;N;;;;; +10B28;AVESTAN LETTER ME;Lo;0;R;;;;;N;;;;; +10B29;AVESTAN LETTER HME;Lo;0;R;;;;;N;;;;; +10B2A;AVESTAN LETTER YYE;Lo;0;R;;;;;N;;;;; +10B2B;AVESTAN LETTER YE;Lo;0;R;;;;;N;;;;; +10B2C;AVESTAN LETTER VE;Lo;0;R;;;;;N;;;;; +10B2D;AVESTAN LETTER RE;Lo;0;R;;;;;N;;;;; +10B2E;AVESTAN LETTER LE;Lo;0;R;;;;;N;;;;; +10B2F;AVESTAN LETTER SE;Lo;0;R;;;;;N;;;;; +10B30;AVESTAN LETTER ZE;Lo;0;R;;;;;N;;;;; +10B31;AVESTAN LETTER SHE;Lo;0;R;;;;;N;;;;; +10B32;AVESTAN LETTER ZHE;Lo;0;R;;;;;N;;;;; +10B33;AVESTAN LETTER SHYE;Lo;0;R;;;;;N;;;;; +10B34;AVESTAN LETTER SSHE;Lo;0;R;;;;;N;;;;; +10B35;AVESTAN LETTER HE;Lo;0;R;;;;;N;;;;; +10B39;AVESTAN ABBREVIATION MARK;Po;0;ON;;;;;N;;;;; +10B3A;TINY TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +10B3B;SMALL TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +10B3C;LARGE TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; +10B3D;LARGE ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;; +10B3E;LARGE TWO RINGS OVER ONE RING PUNCTUATION;Po;0;ON;;;;;N;;;;; +10B3F;LARGE ONE RING OVER TWO RINGS PUNCTUATION;Po;0;ON;;;;;N;;;;; +10B40;INSCRIPTIONAL PARTHIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;; +10B41;INSCRIPTIONAL PARTHIAN LETTER BETH;Lo;0;R;;;;;N;;;;; +10B42;INSCRIPTIONAL PARTHIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;; +10B43;INSCRIPTIONAL PARTHIAN LETTER DALETH;Lo;0;R;;;;;N;;;;; +10B44;INSCRIPTIONAL PARTHIAN LETTER HE;Lo;0;R;;;;;N;;;;; +10B45;INSCRIPTIONAL PARTHIAN LETTER WAW;Lo;0;R;;;;;N;;;;; +10B46;INSCRIPTIONAL PARTHIAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;; +10B47;INSCRIPTIONAL PARTHIAN LETTER HETH;Lo;0;R;;;;;N;;;;; +10B48;INSCRIPTIONAL PARTHIAN LETTER TETH;Lo;0;R;;;;;N;;;;; +10B49;INSCRIPTIONAL PARTHIAN LETTER YODH;Lo;0;R;;;;;N;;;;; +10B4A;INSCRIPTIONAL PARTHIAN LETTER KAPH;Lo;0;R;;;;;N;;;;; +10B4B;INSCRIPTIONAL PARTHIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;; +10B4C;INSCRIPTIONAL PARTHIAN LETTER MEM;Lo;0;R;;;;;N;;;;; +10B4D;INSCRIPTIONAL PARTHIAN LETTER NUN;Lo;0;R;;;;;N;;;;; +10B4E;INSCRIPTIONAL PARTHIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;; +10B4F;INSCRIPTIONAL PARTHIAN LETTER AYIN;Lo;0;R;;;;;N;;;;; +10B50;INSCRIPTIONAL PARTHIAN LETTER PE;Lo;0;R;;;;;N;;;;; +10B51;INSCRIPTIONAL PARTHIAN LETTER SADHE;Lo;0;R;;;;;N;;;;; +10B52;INSCRIPTIONAL PARTHIAN LETTER QOPH;Lo;0;R;;;;;N;;;;; +10B53;INSCRIPTIONAL PARTHIAN LETTER RESH;Lo;0;R;;;;;N;;;;; +10B54;INSCRIPTIONAL PARTHIAN LETTER SHIN;Lo;0;R;;;;;N;;;;; +10B55;INSCRIPTIONAL PARTHIAN LETTER TAW;Lo;0;R;;;;;N;;;;; +10B58;INSCRIPTIONAL PARTHIAN NUMBER ONE;No;0;R;;;;1;N;;;;; +10B59;INSCRIPTIONAL PARTHIAN NUMBER TWO;No;0;R;;;;2;N;;;;; +10B5A;INSCRIPTIONAL PARTHIAN NUMBER THREE;No;0;R;;;;3;N;;;;; +10B5B;INSCRIPTIONAL PARTHIAN NUMBER FOUR;No;0;R;;;;4;N;;;;; +10B5C;INSCRIPTIONAL PARTHIAN NUMBER TEN;No;0;R;;;;10;N;;;;; +10B5D;INSCRIPTIONAL PARTHIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;; +10B5E;INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; +10B5F;INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; +10B60;INSCRIPTIONAL PAHLAVI LETTER ALEPH;Lo;0;R;;;;;N;;;;; +10B61;INSCRIPTIONAL PAHLAVI LETTER BETH;Lo;0;R;;;;;N;;;;; +10B62;INSCRIPTIONAL PAHLAVI LETTER GIMEL;Lo;0;R;;;;;N;;;;; +10B63;INSCRIPTIONAL PAHLAVI LETTER DALETH;Lo;0;R;;;;;N;;;;; +10B64;INSCRIPTIONAL PAHLAVI LETTER HE;Lo;0;R;;;;;N;;;;; +10B65;INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH;Lo;0;R;;;;;N;;;;; +10B66;INSCRIPTIONAL PAHLAVI LETTER ZAYIN;Lo;0;R;;;;;N;;;;; +10B67;INSCRIPTIONAL PAHLAVI LETTER HETH;Lo;0;R;;;;;N;;;;; +10B68;INSCRIPTIONAL PAHLAVI LETTER TETH;Lo;0;R;;;;;N;;;;; +10B69;INSCRIPTIONAL PAHLAVI LETTER YODH;Lo;0;R;;;;;N;;;;; +10B6A;INSCRIPTIONAL PAHLAVI LETTER KAPH;Lo;0;R;;;;;N;;;;; +10B6B;INSCRIPTIONAL PAHLAVI LETTER LAMEDH;Lo;0;R;;;;;N;;;;; +10B6C;INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH;Lo;0;R;;;;;N;;;;; +10B6D;INSCRIPTIONAL PAHLAVI LETTER NUN;Lo;0;R;;;;;N;;;;; +10B6E;INSCRIPTIONAL PAHLAVI LETTER SAMEKH;Lo;0;R;;;;;N;;;;; +10B6F;INSCRIPTIONAL PAHLAVI LETTER PE;Lo;0;R;;;;;N;;;;; +10B70;INSCRIPTIONAL PAHLAVI LETTER SADHE;Lo;0;R;;;;;N;;;;; +10B71;INSCRIPTIONAL PAHLAVI LETTER SHIN;Lo;0;R;;;;;N;;;;; +10B72;INSCRIPTIONAL PAHLAVI LETTER TAW;Lo;0;R;;;;;N;;;;; +10B78;INSCRIPTIONAL PAHLAVI NUMBER ONE;No;0;R;;;;1;N;;;;; +10B79;INSCRIPTIONAL PAHLAVI NUMBER TWO;No;0;R;;;;2;N;;;;; +10B7A;INSCRIPTIONAL PAHLAVI NUMBER THREE;No;0;R;;;;3;N;;;;; +10B7B;INSCRIPTIONAL PAHLAVI NUMBER FOUR;No;0;R;;;;4;N;;;;; +10B7C;INSCRIPTIONAL PAHLAVI NUMBER TEN;No;0;R;;;;10;N;;;;; +10B7D;INSCRIPTIONAL PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;; +10B7E;INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; +10B7F;INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; +10C00;OLD TURKIC LETTER ORKHON A;Lo;0;R;;;;;N;;;;; +10C01;OLD TURKIC LETTER YENISEI A;Lo;0;R;;;;;N;;;;; +10C02;OLD TURKIC LETTER YENISEI AE;Lo;0;R;;;;;N;;;;; +10C03;OLD TURKIC LETTER ORKHON I;Lo;0;R;;;;;N;;;;; +10C04;OLD TURKIC LETTER YENISEI I;Lo;0;R;;;;;N;;;;; +10C05;OLD TURKIC LETTER YENISEI E;Lo;0;R;;;;;N;;;;; +10C06;OLD TURKIC LETTER ORKHON O;Lo;0;R;;;;;N;;;;; +10C07;OLD TURKIC LETTER ORKHON OE;Lo;0;R;;;;;N;;;;; +10C08;OLD TURKIC LETTER YENISEI OE;Lo;0;R;;;;;N;;;;; +10C09;OLD TURKIC LETTER ORKHON AB;Lo;0;R;;;;;N;;;;; +10C0A;OLD TURKIC LETTER YENISEI AB;Lo;0;R;;;;;N;;;;; +10C0B;OLD TURKIC LETTER ORKHON AEB;Lo;0;R;;;;;N;;;;; +10C0C;OLD TURKIC LETTER YENISEI AEB;Lo;0;R;;;;;N;;;;; +10C0D;OLD TURKIC LETTER ORKHON AG;Lo;0;R;;;;;N;;;;; +10C0E;OLD TURKIC LETTER YENISEI AG;Lo;0;R;;;;;N;;;;; +10C0F;OLD TURKIC LETTER ORKHON AEG;Lo;0;R;;;;;N;;;;; +10C10;OLD TURKIC LETTER YENISEI AEG;Lo;0;R;;;;;N;;;;; +10C11;OLD TURKIC LETTER ORKHON AD;Lo;0;R;;;;;N;;;;; +10C12;OLD TURKIC LETTER YENISEI AD;Lo;0;R;;;;;N;;;;; +10C13;OLD TURKIC LETTER ORKHON AED;Lo;0;R;;;;;N;;;;; +10C14;OLD TURKIC LETTER ORKHON EZ;Lo;0;R;;;;;N;;;;; +10C15;OLD TURKIC LETTER YENISEI EZ;Lo;0;R;;;;;N;;;;; +10C16;OLD TURKIC LETTER ORKHON AY;Lo;0;R;;;;;N;;;;; +10C17;OLD TURKIC LETTER YENISEI AY;Lo;0;R;;;;;N;;;;; +10C18;OLD TURKIC LETTER ORKHON AEY;Lo;0;R;;;;;N;;;;; +10C19;OLD TURKIC LETTER YENISEI AEY;Lo;0;R;;;;;N;;;;; +10C1A;OLD TURKIC LETTER ORKHON AEK;Lo;0;R;;;;;N;;;;; +10C1B;OLD TURKIC LETTER YENISEI AEK;Lo;0;R;;;;;N;;;;; +10C1C;OLD TURKIC LETTER ORKHON OEK;Lo;0;R;;;;;N;;;;; +10C1D;OLD TURKIC LETTER YENISEI OEK;Lo;0;R;;;;;N;;;;; +10C1E;OLD TURKIC LETTER ORKHON AL;Lo;0;R;;;;;N;;;;; +10C1F;OLD TURKIC LETTER YENISEI AL;Lo;0;R;;;;;N;;;;; +10C20;OLD TURKIC LETTER ORKHON AEL;Lo;0;R;;;;;N;;;;; +10C21;OLD TURKIC LETTER ORKHON ELT;Lo;0;R;;;;;N;;;;; +10C22;OLD TURKIC LETTER ORKHON EM;Lo;0;R;;;;;N;;;;; +10C23;OLD TURKIC LETTER ORKHON AN;Lo;0;R;;;;;N;;;;; +10C24;OLD TURKIC LETTER ORKHON AEN;Lo;0;R;;;;;N;;;;; +10C25;OLD TURKIC LETTER YENISEI AEN;Lo;0;R;;;;;N;;;;; +10C26;OLD TURKIC LETTER ORKHON ENT;Lo;0;R;;;;;N;;;;; +10C27;OLD TURKIC LETTER YENISEI ENT;Lo;0;R;;;;;N;;;;; +10C28;OLD TURKIC LETTER ORKHON ENC;Lo;0;R;;;;;N;;;;; +10C29;OLD TURKIC LETTER YENISEI ENC;Lo;0;R;;;;;N;;;;; +10C2A;OLD TURKIC LETTER ORKHON ENY;Lo;0;R;;;;;N;;;;; +10C2B;OLD TURKIC LETTER YENISEI ENY;Lo;0;R;;;;;N;;;;; +10C2C;OLD TURKIC LETTER YENISEI ANG;Lo;0;R;;;;;N;;;;; +10C2D;OLD TURKIC LETTER ORKHON ENG;Lo;0;R;;;;;N;;;;; +10C2E;OLD TURKIC LETTER YENISEI AENG;Lo;0;R;;;;;N;;;;; +10C2F;OLD TURKIC LETTER ORKHON EP;Lo;0;R;;;;;N;;;;; +10C30;OLD TURKIC LETTER ORKHON OP;Lo;0;R;;;;;N;;;;; +10C31;OLD TURKIC LETTER ORKHON IC;Lo;0;R;;;;;N;;;;; +10C32;OLD TURKIC LETTER ORKHON EC;Lo;0;R;;;;;N;;;;; +10C33;OLD TURKIC LETTER YENISEI EC;Lo;0;R;;;;;N;;;;; +10C34;OLD TURKIC LETTER ORKHON AQ;Lo;0;R;;;;;N;;;;; +10C35;OLD TURKIC LETTER YENISEI AQ;Lo;0;R;;;;;N;;;;; +10C36;OLD TURKIC LETTER ORKHON IQ;Lo;0;R;;;;;N;;;;; +10C37;OLD TURKIC LETTER YENISEI IQ;Lo;0;R;;;;;N;;;;; +10C38;OLD TURKIC LETTER ORKHON OQ;Lo;0;R;;;;;N;;;;; +10C39;OLD TURKIC LETTER YENISEI OQ;Lo;0;R;;;;;N;;;;; +10C3A;OLD TURKIC LETTER ORKHON AR;Lo;0;R;;;;;N;;;;; +10C3B;OLD TURKIC LETTER YENISEI AR;Lo;0;R;;;;;N;;;;; +10C3C;OLD TURKIC LETTER ORKHON AER;Lo;0;R;;;;;N;;;;; +10C3D;OLD TURKIC LETTER ORKHON AS;Lo;0;R;;;;;N;;;;; +10C3E;OLD TURKIC LETTER ORKHON AES;Lo;0;R;;;;;N;;;;; +10C3F;OLD TURKIC LETTER ORKHON ASH;Lo;0;R;;;;;N;;;;; +10C40;OLD TURKIC LETTER YENISEI ASH;Lo;0;R;;;;;N;;;;; +10C41;OLD TURKIC LETTER ORKHON ESH;Lo;0;R;;;;;N;;;;; +10C42;OLD TURKIC LETTER YENISEI ESH;Lo;0;R;;;;;N;;;;; +10C43;OLD TURKIC LETTER ORKHON AT;Lo;0;R;;;;;N;;;;; +10C44;OLD TURKIC LETTER YENISEI AT;Lo;0;R;;;;;N;;;;; +10C45;OLD TURKIC LETTER ORKHON AET;Lo;0;R;;;;;N;;;;; +10C46;OLD TURKIC LETTER YENISEI AET;Lo;0;R;;;;;N;;;;; +10C47;OLD TURKIC LETTER ORKHON OT;Lo;0;R;;;;;N;;;;; +10C48;OLD TURKIC LETTER ORKHON BASH;Lo;0;R;;;;;N;;;;; +10E60;RUMI DIGIT ONE;No;0;AN;;;1;1;N;;;;; +10E61;RUMI DIGIT TWO;No;0;AN;;;2;2;N;;;;; +10E62;RUMI DIGIT THREE;No;0;AN;;;3;3;N;;;;; +10E63;RUMI DIGIT FOUR;No;0;AN;;;4;4;N;;;;; +10E64;RUMI DIGIT FIVE;No;0;AN;;;5;5;N;;;;; +10E65;RUMI DIGIT SIX;No;0;AN;;;6;6;N;;;;; +10E66;RUMI DIGIT SEVEN;No;0;AN;;;7;7;N;;;;; +10E67;RUMI DIGIT EIGHT;No;0;AN;;;8;8;N;;;;; +10E68;RUMI DIGIT NINE;No;0;AN;;;9;9;N;;;;; +10E69;RUMI NUMBER TEN;No;0;AN;;;;10;N;;;;; +10E6A;RUMI NUMBER TWENTY;No;0;AN;;;;20;N;;;;; +10E6B;RUMI NUMBER THIRTY;No;0;AN;;;;30;N;;;;; +10E6C;RUMI NUMBER FORTY;No;0;AN;;;;40;N;;;;; +10E6D;RUMI NUMBER FIFTY;No;0;AN;;;;50;N;;;;; +10E6E;RUMI NUMBER SIXTY;No;0;AN;;;;60;N;;;;; +10E6F;RUMI NUMBER SEVENTY;No;0;AN;;;;70;N;;;;; +10E70;RUMI NUMBER EIGHTY;No;0;AN;;;;80;N;;;;; +10E71;RUMI NUMBER NINETY;No;0;AN;;;;90;N;;;;; +10E72;RUMI NUMBER ONE HUNDRED;No;0;AN;;;;100;N;;;;; +10E73;RUMI NUMBER TWO HUNDRED;No;0;AN;;;;200;N;;;;; +10E74;RUMI NUMBER THREE HUNDRED;No;0;AN;;;;300;N;;;;; +10E75;RUMI NUMBER FOUR HUNDRED;No;0;AN;;;;400;N;;;;; +10E76;RUMI NUMBER FIVE HUNDRED;No;0;AN;;;;500;N;;;;; +10E77;RUMI NUMBER SIX HUNDRED;No;0;AN;;;;600;N;;;;; +10E78;RUMI NUMBER SEVEN HUNDRED;No;0;AN;;;;700;N;;;;; +10E79;RUMI NUMBER EIGHT HUNDRED;No;0;AN;;;;800;N;;;;; +10E7A;RUMI NUMBER NINE HUNDRED;No;0;AN;;;;900;N;;;;; +10E7B;RUMI FRACTION ONE HALF;No;0;AN;;;;1/2;N;;;;; +10E7C;RUMI FRACTION ONE QUARTER;No;0;AN;;;;1/4;N;;;;; +10E7D;RUMI FRACTION ONE THIRD;No;0;AN;;;;1/3;N;;;;; +10E7E;RUMI FRACTION TWO THIRDS;No;0;AN;;;;2/3;N;;;;; +11000;BRAHMI SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;; +11001;BRAHMI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +11002;BRAHMI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +11003;BRAHMI SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;; +11004;BRAHMI SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;; +11005;BRAHMI LETTER A;Lo;0;L;;;;;N;;;;; +11006;BRAHMI LETTER AA;Lo;0;L;;;;;N;;;;; +11007;BRAHMI LETTER I;Lo;0;L;;;;;N;;;;; +11008;BRAHMI LETTER II;Lo;0;L;;;;;N;;;;; +11009;BRAHMI LETTER U;Lo;0;L;;;;;N;;;;; +1100A;BRAHMI LETTER UU;Lo;0;L;;;;;N;;;;; +1100B;BRAHMI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +1100C;BRAHMI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +1100D;BRAHMI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +1100E;BRAHMI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +1100F;BRAHMI LETTER E;Lo;0;L;;;;;N;;;;; +11010;BRAHMI LETTER AI;Lo;0;L;;;;;N;;;;; +11011;BRAHMI LETTER O;Lo;0;L;;;;;N;;;;; +11012;BRAHMI LETTER AU;Lo;0;L;;;;;N;;;;; +11013;BRAHMI LETTER KA;Lo;0;L;;;;;N;;;;; +11014;BRAHMI LETTER KHA;Lo;0;L;;;;;N;;;;; +11015;BRAHMI LETTER GA;Lo;0;L;;;;;N;;;;; +11016;BRAHMI LETTER GHA;Lo;0;L;;;;;N;;;;; +11017;BRAHMI LETTER NGA;Lo;0;L;;;;;N;;;;; +11018;BRAHMI LETTER CA;Lo;0;L;;;;;N;;;;; +11019;BRAHMI LETTER CHA;Lo;0;L;;;;;N;;;;; +1101A;BRAHMI LETTER JA;Lo;0;L;;;;;N;;;;; +1101B;BRAHMI LETTER JHA;Lo;0;L;;;;;N;;;;; +1101C;BRAHMI LETTER NYA;Lo;0;L;;;;;N;;;;; +1101D;BRAHMI LETTER TTA;Lo;0;L;;;;;N;;;;; +1101E;BRAHMI LETTER TTHA;Lo;0;L;;;;;N;;;;; +1101F;BRAHMI LETTER DDA;Lo;0;L;;;;;N;;;;; +11020;BRAHMI LETTER DDHA;Lo;0;L;;;;;N;;;;; +11021;BRAHMI LETTER NNA;Lo;0;L;;;;;N;;;;; +11022;BRAHMI LETTER TA;Lo;0;L;;;;;N;;;;; +11023;BRAHMI LETTER THA;Lo;0;L;;;;;N;;;;; +11024;BRAHMI LETTER DA;Lo;0;L;;;;;N;;;;; +11025;BRAHMI LETTER DHA;Lo;0;L;;;;;N;;;;; +11026;BRAHMI LETTER NA;Lo;0;L;;;;;N;;;;; +11027;BRAHMI LETTER PA;Lo;0;L;;;;;N;;;;; +11028;BRAHMI LETTER PHA;Lo;0;L;;;;;N;;;;; +11029;BRAHMI LETTER BA;Lo;0;L;;;;;N;;;;; +1102A;BRAHMI LETTER BHA;Lo;0;L;;;;;N;;;;; +1102B;BRAHMI LETTER MA;Lo;0;L;;;;;N;;;;; +1102C;BRAHMI LETTER YA;Lo;0;L;;;;;N;;;;; +1102D;BRAHMI LETTER RA;Lo;0;L;;;;;N;;;;; +1102E;BRAHMI LETTER LA;Lo;0;L;;;;;N;;;;; +1102F;BRAHMI LETTER VA;Lo;0;L;;;;;N;;;;; +11030;BRAHMI LETTER SHA;Lo;0;L;;;;;N;;;;; +11031;BRAHMI LETTER SSA;Lo;0;L;;;;;N;;;;; +11032;BRAHMI LETTER SA;Lo;0;L;;;;;N;;;;; +11033;BRAHMI LETTER HA;Lo;0;L;;;;;N;;;;; +11034;BRAHMI LETTER LLA;Lo;0;L;;;;;N;;;;; +11035;BRAHMI LETTER OLD TAMIL LLLA;Lo;0;L;;;;;N;;;;; +11036;BRAHMI LETTER OLD TAMIL RRA;Lo;0;L;;;;;N;;;;; +11037;BRAHMI LETTER OLD TAMIL NNNA;Lo;0;L;;;;;N;;;;; +11038;BRAHMI VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; +11039;BRAHMI VOWEL SIGN BHATTIPROLU AA;Mn;0;NSM;;;;;N;;;;; +1103A;BRAHMI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +1103B;BRAHMI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +1103C;BRAHMI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1103D;BRAHMI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +1103E;BRAHMI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +1103F;BRAHMI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +11040;BRAHMI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +11041;BRAHMI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +11042;BRAHMI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +11043;BRAHMI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +11044;BRAHMI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +11045;BRAHMI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +11046;BRAHMI VIRAMA;Mn;9;NSM;;;;;N;;;;; +11047;BRAHMI DANDA;Po;0;L;;;;;N;;;;; +11048;BRAHMI DOUBLE DANDA;Po;0;L;;;;;N;;;;; +11049;BRAHMI PUNCTUATION DOT;Po;0;L;;;;;N;;;;; +1104A;BRAHMI PUNCTUATION DOUBLE DOT;Po;0;L;;;;;N;;;;; +1104B;BRAHMI PUNCTUATION LINE;Po;0;L;;;;;N;;;;; +1104C;BRAHMI PUNCTUATION CRESCENT BAR;Po;0;L;;;;;N;;;;; +1104D;BRAHMI PUNCTUATION LOTUS;Po;0;L;;;;;N;;;;; +11052;BRAHMI NUMBER ONE;No;0;ON;;;1;1;N;;;;; +11053;BRAHMI NUMBER TWO;No;0;ON;;;2;2;N;;;;; +11054;BRAHMI NUMBER THREE;No;0;ON;;;3;3;N;;;;; +11055;BRAHMI NUMBER FOUR;No;0;ON;;;4;4;N;;;;; +11056;BRAHMI NUMBER FIVE;No;0;ON;;;5;5;N;;;;; +11057;BRAHMI NUMBER SIX;No;0;ON;;;6;6;N;;;;; +11058;BRAHMI NUMBER SEVEN;No;0;ON;;;7;7;N;;;;; +11059;BRAHMI NUMBER EIGHT;No;0;ON;;;8;8;N;;;;; +1105A;BRAHMI NUMBER NINE;No;0;ON;;;9;9;N;;;;; +1105B;BRAHMI NUMBER TEN;No;0;ON;;;;10;N;;;;; +1105C;BRAHMI NUMBER TWENTY;No;0;ON;;;;20;N;;;;; +1105D;BRAHMI NUMBER THIRTY;No;0;ON;;;;30;N;;;;; +1105E;BRAHMI NUMBER FORTY;No;0;ON;;;;40;N;;;;; +1105F;BRAHMI NUMBER FIFTY;No;0;ON;;;;50;N;;;;; +11060;BRAHMI NUMBER SIXTY;No;0;ON;;;;60;N;;;;; +11061;BRAHMI NUMBER SEVENTY;No;0;ON;;;;70;N;;;;; +11062;BRAHMI NUMBER EIGHTY;No;0;ON;;;;80;N;;;;; +11063;BRAHMI NUMBER NINETY;No;0;ON;;;;90;N;;;;; +11064;BRAHMI NUMBER ONE HUNDRED;No;0;ON;;;;100;N;;;;; +11065;BRAHMI NUMBER ONE THOUSAND;No;0;ON;;;;1000;N;;;;; +11066;BRAHMI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +11067;BRAHMI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +11068;BRAHMI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +11069;BRAHMI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1106A;BRAHMI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1106B;BRAHMI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1106C;BRAHMI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1106D;BRAHMI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1106E;BRAHMI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1106F;BRAHMI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +11080;KAITHI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +11081;KAITHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +11082;KAITHI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +11083;KAITHI LETTER A;Lo;0;L;;;;;N;;;;; +11084;KAITHI LETTER AA;Lo;0;L;;;;;N;;;;; +11085;KAITHI LETTER I;Lo;0;L;;;;;N;;;;; +11086;KAITHI LETTER II;Lo;0;L;;;;;N;;;;; +11087;KAITHI LETTER U;Lo;0;L;;;;;N;;;;; +11088;KAITHI LETTER UU;Lo;0;L;;;;;N;;;;; +11089;KAITHI LETTER E;Lo;0;L;;;;;N;;;;; +1108A;KAITHI LETTER AI;Lo;0;L;;;;;N;;;;; +1108B;KAITHI LETTER O;Lo;0;L;;;;;N;;;;; +1108C;KAITHI LETTER AU;Lo;0;L;;;;;N;;;;; +1108D;KAITHI LETTER KA;Lo;0;L;;;;;N;;;;; +1108E;KAITHI LETTER KHA;Lo;0;L;;;;;N;;;;; +1108F;KAITHI LETTER GA;Lo;0;L;;;;;N;;;;; +11090;KAITHI LETTER GHA;Lo;0;L;;;;;N;;;;; +11091;KAITHI LETTER NGA;Lo;0;L;;;;;N;;;;; +11092;KAITHI LETTER CA;Lo;0;L;;;;;N;;;;; +11093;KAITHI LETTER CHA;Lo;0;L;;;;;N;;;;; +11094;KAITHI LETTER JA;Lo;0;L;;;;;N;;;;; +11095;KAITHI LETTER JHA;Lo;0;L;;;;;N;;;;; +11096;KAITHI LETTER NYA;Lo;0;L;;;;;N;;;;; +11097;KAITHI LETTER TTA;Lo;0;L;;;;;N;;;;; +11098;KAITHI LETTER TTHA;Lo;0;L;;;;;N;;;;; +11099;KAITHI LETTER DDA;Lo;0;L;;;;;N;;;;; +1109A;KAITHI LETTER DDDHA;Lo;0;L;11099 110BA;;;;N;;;;; +1109B;KAITHI LETTER DDHA;Lo;0;L;;;;;N;;;;; +1109C;KAITHI LETTER RHA;Lo;0;L;1109B 110BA;;;;N;;;;; +1109D;KAITHI LETTER NNA;Lo;0;L;;;;;N;;;;; +1109E;KAITHI LETTER TA;Lo;0;L;;;;;N;;;;; +1109F;KAITHI LETTER THA;Lo;0;L;;;;;N;;;;; +110A0;KAITHI LETTER DA;Lo;0;L;;;;;N;;;;; +110A1;KAITHI LETTER DHA;Lo;0;L;;;;;N;;;;; +110A2;KAITHI LETTER NA;Lo;0;L;;;;;N;;;;; +110A3;KAITHI LETTER PA;Lo;0;L;;;;;N;;;;; +110A4;KAITHI LETTER PHA;Lo;0;L;;;;;N;;;;; +110A5;KAITHI LETTER BA;Lo;0;L;;;;;N;;;;; +110A6;KAITHI LETTER BHA;Lo;0;L;;;;;N;;;;; +110A7;KAITHI LETTER MA;Lo;0;L;;;;;N;;;;; +110A8;KAITHI LETTER YA;Lo;0;L;;;;;N;;;;; +110A9;KAITHI LETTER RA;Lo;0;L;;;;;N;;;;; +110AA;KAITHI LETTER LA;Lo;0;L;;;;;N;;;;; +110AB;KAITHI LETTER VA;Lo;0;L;110A5 110BA;;;;N;;;;; +110AC;KAITHI LETTER SHA;Lo;0;L;;;;;N;;;;; +110AD;KAITHI LETTER SSA;Lo;0;L;;;;;N;;;;; +110AE;KAITHI LETTER SA;Lo;0;L;;;;;N;;;;; +110AF;KAITHI LETTER HA;Lo;0;L;;;;;N;;;;; +110B0;KAITHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +110B1;KAITHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +110B2;KAITHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +110B3;KAITHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +110B4;KAITHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +110B5;KAITHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +110B6;KAITHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +110B7;KAITHI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +110B8;KAITHI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +110B9;KAITHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; +110BA;KAITHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +110BB;KAITHI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; +110BC;KAITHI ENUMERATION SIGN;Po;0;L;;;;;N;;;;; +110BD;KAITHI NUMBER SIGN;Cf;0;L;;;;;N;;;;; +110BE;KAITHI SECTION MARK;Po;0;L;;;;;N;;;;; +110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;; +110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;; +110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;; +110D0;SORA SOMPENG LETTER SAH;Lo;0;L;;;;;N;;;;; +110D1;SORA SOMPENG LETTER TAH;Lo;0;L;;;;;N;;;;; +110D2;SORA SOMPENG LETTER BAH;Lo;0;L;;;;;N;;;;; +110D3;SORA SOMPENG LETTER CAH;Lo;0;L;;;;;N;;;;; +110D4;SORA SOMPENG LETTER DAH;Lo;0;L;;;;;N;;;;; +110D5;SORA SOMPENG LETTER GAH;Lo;0;L;;;;;N;;;;; +110D6;SORA SOMPENG LETTER MAH;Lo;0;L;;;;;N;;;;; +110D7;SORA SOMPENG LETTER NGAH;Lo;0;L;;;;;N;;;;; +110D8;SORA SOMPENG LETTER LAH;Lo;0;L;;;;;N;;;;; +110D9;SORA SOMPENG LETTER NAH;Lo;0;L;;;;;N;;;;; +110DA;SORA SOMPENG LETTER VAH;Lo;0;L;;;;;N;;;;; +110DB;SORA SOMPENG LETTER PAH;Lo;0;L;;;;;N;;;;; +110DC;SORA SOMPENG LETTER YAH;Lo;0;L;;;;;N;;;;; +110DD;SORA SOMPENG LETTER RAH;Lo;0;L;;;;;N;;;;; +110DE;SORA SOMPENG LETTER HAH;Lo;0;L;;;;;N;;;;; +110DF;SORA SOMPENG LETTER KAH;Lo;0;L;;;;;N;;;;; +110E0;SORA SOMPENG LETTER JAH;Lo;0;L;;;;;N;;;;; +110E1;SORA SOMPENG LETTER NYAH;Lo;0;L;;;;;N;;;;; +110E2;SORA SOMPENG LETTER AH;Lo;0;L;;;;;N;;;;; +110E3;SORA SOMPENG LETTER EEH;Lo;0;L;;;;;N;;;;; +110E4;SORA SOMPENG LETTER IH;Lo;0;L;;;;;N;;;;; +110E5;SORA SOMPENG LETTER UH;Lo;0;L;;;;;N;;;;; +110E6;SORA SOMPENG LETTER OH;Lo;0;L;;;;;N;;;;; +110E7;SORA SOMPENG LETTER EH;Lo;0;L;;;;;N;;;;; +110E8;SORA SOMPENG LETTER MAE;Lo;0;L;;;;;N;;;;; +110F0;SORA SOMPENG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +110F1;SORA SOMPENG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +110F2;SORA SOMPENG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +110F3;SORA SOMPENG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +110F4;SORA SOMPENG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +110F5;SORA SOMPENG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +110F6;SORA SOMPENG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +110F7;SORA SOMPENG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +110F8;SORA SOMPENG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +110F9;SORA SOMPENG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +11100;CHAKMA SIGN CANDRABINDU;Mn;230;NSM;;;;;N;;;;; +11101;CHAKMA SIGN ANUSVARA;Mn;230;NSM;;;;;N;;;;; +11102;CHAKMA SIGN VISARGA;Mn;230;NSM;;;;;N;;;;; +11103;CHAKMA LETTER AA;Lo;0;L;;;;;N;;;;; +11104;CHAKMA LETTER I;Lo;0;L;;;;;N;;;;; +11105;CHAKMA LETTER U;Lo;0;L;;;;;N;;;;; +11106;CHAKMA LETTER E;Lo;0;L;;;;;N;;;;; +11107;CHAKMA LETTER KAA;Lo;0;L;;;;;N;;;;; +11108;CHAKMA LETTER KHAA;Lo;0;L;;;;;N;;;;; +11109;CHAKMA LETTER GAA;Lo;0;L;;;;;N;;;;; +1110A;CHAKMA LETTER GHAA;Lo;0;L;;;;;N;;;;; +1110B;CHAKMA LETTER NGAA;Lo;0;L;;;;;N;;;;; +1110C;CHAKMA LETTER CAA;Lo;0;L;;;;;N;;;;; +1110D;CHAKMA LETTER CHAA;Lo;0;L;;;;;N;;;;; +1110E;CHAKMA LETTER JAA;Lo;0;L;;;;;N;;;;; +1110F;CHAKMA LETTER JHAA;Lo;0;L;;;;;N;;;;; +11110;CHAKMA LETTER NYAA;Lo;0;L;;;;;N;;;;; +11111;CHAKMA LETTER TTAA;Lo;0;L;;;;;N;;;;; +11112;CHAKMA LETTER TTHAA;Lo;0;L;;;;;N;;;;; +11113;CHAKMA LETTER DDAA;Lo;0;L;;;;;N;;;;; +11114;CHAKMA LETTER DDHAA;Lo;0;L;;;;;N;;;;; +11115;CHAKMA LETTER NNAA;Lo;0;L;;;;;N;;;;; +11116;CHAKMA LETTER TAA;Lo;0;L;;;;;N;;;;; +11117;CHAKMA LETTER THAA;Lo;0;L;;;;;N;;;;; +11118;CHAKMA LETTER DAA;Lo;0;L;;;;;N;;;;; +11119;CHAKMA LETTER DHAA;Lo;0;L;;;;;N;;;;; +1111A;CHAKMA LETTER NAA;Lo;0;L;;;;;N;;;;; +1111B;CHAKMA LETTER PAA;Lo;0;L;;;;;N;;;;; +1111C;CHAKMA LETTER PHAA;Lo;0;L;;;;;N;;;;; +1111D;CHAKMA LETTER BAA;Lo;0;L;;;;;N;;;;; +1111E;CHAKMA LETTER BHAA;Lo;0;L;;;;;N;;;;; +1111F;CHAKMA LETTER MAA;Lo;0;L;;;;;N;;;;; +11120;CHAKMA LETTER YYAA;Lo;0;L;;;;;N;;;;; +11121;CHAKMA LETTER YAA;Lo;0;L;;;;;N;;;;; +11122;CHAKMA LETTER RAA;Lo;0;L;;;;;N;;;;; +11123;CHAKMA LETTER LAA;Lo;0;L;;;;;N;;;;; +11124;CHAKMA LETTER WAA;Lo;0;L;;;;;N;;;;; +11125;CHAKMA LETTER SAA;Lo;0;L;;;;;N;;;;; +11126;CHAKMA LETTER HAA;Lo;0;L;;;;;N;;;;; +11127;CHAKMA VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;; +11128;CHAKMA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +11129;CHAKMA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +1112A;CHAKMA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +1112B;CHAKMA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +1112C;CHAKMA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +1112D;CHAKMA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +1112E;CHAKMA VOWEL SIGN O;Mn;0;NSM;11131 11127;;;;N;;;;; +1112F;CHAKMA VOWEL SIGN AU;Mn;0;NSM;11132 11127;;;;N;;;;; +11130;CHAKMA VOWEL SIGN OI;Mn;0;NSM;;;;;N;;;;; +11131;CHAKMA O MARK;Mn;0;NSM;;;;;N;;;;; +11132;CHAKMA AU MARK;Mn;0;NSM;;;;;N;;;;; +11133;CHAKMA VIRAMA;Mn;9;NSM;;;;;N;;;;; +11134;CHAKMA MAAYYAA;Mn;9;NSM;;;;;N;;;;; +11136;CHAKMA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +11137;CHAKMA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +11138;CHAKMA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +11139;CHAKMA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1113A;CHAKMA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1113B;CHAKMA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1113C;CHAKMA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1113D;CHAKMA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1113E;CHAKMA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1113F;CHAKMA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +11140;CHAKMA SECTION MARK;Po;0;L;;;;;N;;;;; +11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;; +11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;; +11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;; +11180;SHARADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +11181;SHARADA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +11182;SHARADA SIGN VISARGA;Mc;0;L;;;;;N;;;;; +11183;SHARADA LETTER A;Lo;0;L;;;;;N;;;;; +11184;SHARADA LETTER AA;Lo;0;L;;;;;N;;;;; +11185;SHARADA LETTER I;Lo;0;L;;;;;N;;;;; +11186;SHARADA LETTER II;Lo;0;L;;;;;N;;;;; +11187;SHARADA LETTER U;Lo;0;L;;;;;N;;;;; +11188;SHARADA LETTER UU;Lo;0;L;;;;;N;;;;; +11189;SHARADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +1118A;SHARADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +1118B;SHARADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +1118C;SHARADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +1118D;SHARADA LETTER E;Lo;0;L;;;;;N;;;;; +1118E;SHARADA LETTER AI;Lo;0;L;;;;;N;;;;; +1118F;SHARADA LETTER O;Lo;0;L;;;;;N;;;;; +11190;SHARADA LETTER AU;Lo;0;L;;;;;N;;;;; +11191;SHARADA LETTER KA;Lo;0;L;;;;;N;;;;; +11192;SHARADA LETTER KHA;Lo;0;L;;;;;N;;;;; +11193;SHARADA LETTER GA;Lo;0;L;;;;;N;;;;; +11194;SHARADA LETTER GHA;Lo;0;L;;;;;N;;;;; +11195;SHARADA LETTER NGA;Lo;0;L;;;;;N;;;;; +11196;SHARADA LETTER CA;Lo;0;L;;;;;N;;;;; +11197;SHARADA LETTER CHA;Lo;0;L;;;;;N;;;;; +11198;SHARADA LETTER JA;Lo;0;L;;;;;N;;;;; +11199;SHARADA LETTER JHA;Lo;0;L;;;;;N;;;;; +1119A;SHARADA LETTER NYA;Lo;0;L;;;;;N;;;;; +1119B;SHARADA LETTER TTA;Lo;0;L;;;;;N;;;;; +1119C;SHARADA LETTER TTHA;Lo;0;L;;;;;N;;;;; +1119D;SHARADA LETTER DDA;Lo;0;L;;;;;N;;;;; +1119E;SHARADA LETTER DDHA;Lo;0;L;;;;;N;;;;; +1119F;SHARADA LETTER NNA;Lo;0;L;;;;;N;;;;; +111A0;SHARADA LETTER TA;Lo;0;L;;;;;N;;;;; +111A1;SHARADA LETTER THA;Lo;0;L;;;;;N;;;;; +111A2;SHARADA LETTER DA;Lo;0;L;;;;;N;;;;; +111A3;SHARADA LETTER DHA;Lo;0;L;;;;;N;;;;; +111A4;SHARADA LETTER NA;Lo;0;L;;;;;N;;;;; +111A5;SHARADA LETTER PA;Lo;0;L;;;;;N;;;;; +111A6;SHARADA LETTER PHA;Lo;0;L;;;;;N;;;;; +111A7;SHARADA LETTER BA;Lo;0;L;;;;;N;;;;; +111A8;SHARADA LETTER BHA;Lo;0;L;;;;;N;;;;; +111A9;SHARADA LETTER MA;Lo;0;L;;;;;N;;;;; +111AA;SHARADA LETTER YA;Lo;0;L;;;;;N;;;;; +111AB;SHARADA LETTER RA;Lo;0;L;;;;;N;;;;; +111AC;SHARADA LETTER LA;Lo;0;L;;;;;N;;;;; +111AD;SHARADA LETTER LLA;Lo;0;L;;;;;N;;;;; +111AE;SHARADA LETTER VA;Lo;0;L;;;;;N;;;;; +111AF;SHARADA LETTER SHA;Lo;0;L;;;;;N;;;;; +111B0;SHARADA LETTER SSA;Lo;0;L;;;;;N;;;;; +111B1;SHARADA LETTER SA;Lo;0;L;;;;;N;;;;; +111B2;SHARADA LETTER HA;Lo;0;L;;;;;N;;;;; +111B3;SHARADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +111B4;SHARADA VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +111B5;SHARADA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +111B6;SHARADA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +111B7;SHARADA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +111B8;SHARADA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +111B9;SHARADA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; +111BA;SHARADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; +111BB;SHARADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; +111BC;SHARADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +111BD;SHARADA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +111BE;SHARADA VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +111BF;SHARADA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +111C0;SHARADA SIGN VIRAMA;Mc;9;L;;;;;N;;;;; +111C1;SHARADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; +111C2;SHARADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;; +111C3;SHARADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;; +111C4;SHARADA OM;Lo;0;L;;;;;N;;;;; +111C5;SHARADA DANDA;Po;0;L;;;;;N;;;;; +111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;; +111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; +111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;; +111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +111D3;SHARADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +111D4;SHARADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +111D5;SHARADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +111D6;SHARADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +111D7;SHARADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +111D8;SHARADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +111D9;SHARADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;; +11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;; +11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;; +11683;TAKRI LETTER II;Lo;0;L;;;;;N;;;;; +11684;TAKRI LETTER U;Lo;0;L;;;;;N;;;;; +11685;TAKRI LETTER UU;Lo;0;L;;;;;N;;;;; +11686;TAKRI LETTER E;Lo;0;L;;;;;N;;;;; +11687;TAKRI LETTER AI;Lo;0;L;;;;;N;;;;; +11688;TAKRI LETTER O;Lo;0;L;;;;;N;;;;; +11689;TAKRI LETTER AU;Lo;0;L;;;;;N;;;;; +1168A;TAKRI LETTER KA;Lo;0;L;;;;;N;;;;; +1168B;TAKRI LETTER KHA;Lo;0;L;;;;;N;;;;; +1168C;TAKRI LETTER GA;Lo;0;L;;;;;N;;;;; +1168D;TAKRI LETTER GHA;Lo;0;L;;;;;N;;;;; +1168E;TAKRI LETTER NGA;Lo;0;L;;;;;N;;;;; +1168F;TAKRI LETTER CA;Lo;0;L;;;;;N;;;;; +11690;TAKRI LETTER CHA;Lo;0;L;;;;;N;;;;; +11691;TAKRI LETTER JA;Lo;0;L;;;;;N;;;;; +11692;TAKRI LETTER JHA;Lo;0;L;;;;;N;;;;; +11693;TAKRI LETTER NYA;Lo;0;L;;;;;N;;;;; +11694;TAKRI LETTER TTA;Lo;0;L;;;;;N;;;;; +11695;TAKRI LETTER TTHA;Lo;0;L;;;;;N;;;;; +11696;TAKRI LETTER DDA;Lo;0;L;;;;;N;;;;; +11697;TAKRI LETTER DDHA;Lo;0;L;;;;;N;;;;; +11698;TAKRI LETTER NNA;Lo;0;L;;;;;N;;;;; +11699;TAKRI LETTER TA;Lo;0;L;;;;;N;;;;; +1169A;TAKRI LETTER THA;Lo;0;L;;;;;N;;;;; +1169B;TAKRI LETTER DA;Lo;0;L;;;;;N;;;;; +1169C;TAKRI LETTER DHA;Lo;0;L;;;;;N;;;;; +1169D;TAKRI LETTER NA;Lo;0;L;;;;;N;;;;; +1169E;TAKRI LETTER PA;Lo;0;L;;;;;N;;;;; +1169F;TAKRI LETTER PHA;Lo;0;L;;;;;N;;;;; +116A0;TAKRI LETTER BA;Lo;0;L;;;;;N;;;;; +116A1;TAKRI LETTER BHA;Lo;0;L;;;;;N;;;;; +116A2;TAKRI LETTER MA;Lo;0;L;;;;;N;;;;; +116A3;TAKRI LETTER YA;Lo;0;L;;;;;N;;;;; +116A4;TAKRI LETTER RA;Lo;0;L;;;;;N;;;;; +116A5;TAKRI LETTER LA;Lo;0;L;;;;;N;;;;; +116A6;TAKRI LETTER VA;Lo;0;L;;;;;N;;;;; +116A7;TAKRI LETTER SHA;Lo;0;L;;;;;N;;;;; +116A8;TAKRI LETTER SA;Lo;0;L;;;;;N;;;;; +116A9;TAKRI LETTER HA;Lo;0;L;;;;;N;;;;; +116AA;TAKRI LETTER RRA;Lo;0;L;;;;;N;;;;; +116AB;TAKRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +116AC;TAKRI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +116AD;TAKRI VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; +116AE;TAKRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +116AF;TAKRI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +116B0;TAKRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +116B1;TAKRI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +116B2;TAKRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; +116B3;TAKRI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; +116B4;TAKRI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; +116B5;TAKRI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; +116B6;TAKRI SIGN VIRAMA;Mc;9;L;;;;;N;;;;; +116B7;TAKRI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; +116C0;TAKRI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +116C1;TAKRI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +116C2;TAKRI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +116C3;TAKRI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +116C4;TAKRI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +116C5;TAKRI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +116C6;TAKRI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;; +12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;; +12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;; +12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;; +12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;; +12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;; +12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;; +12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;; +12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;; +1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;; +1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;; +1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;; +1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;; +1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;; +12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;; +12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;; +12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;; +12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;; +12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;; +12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;; +12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;; +12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; +1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;; +1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;; +1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;; +1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;; +1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;; +1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;; +12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;; +12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;; +12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;; +12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;; +12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;; +12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;; +12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;; +12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;; +12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;; +12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;; +1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;; +1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;; +1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;; +1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;; +1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;; +1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;; +12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;; +12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;; +12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;; +12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;; +12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;; +12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;; +12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;; +12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;; +12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;; +12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;; +1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;; +1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;; +1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;; +1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;; +1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;; +1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;; +12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;; +12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;; +12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;; +12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;; +12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;; +12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;; +12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;; +12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;; +12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;; +12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;; +1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;; +1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;; +1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;; +1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;; +1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;; +12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;; +12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;; +12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;; +12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;; +12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;; +12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;; +12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;; +12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;; +12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;; +12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;; +1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;; +1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;; +1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;; +1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;; +1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;; +1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;; +12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;; +12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;; +12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;; +12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;; +12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;; +12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;; +12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;; +12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;; +12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;; +12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;; +1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;; +1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;; +1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;; +1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;; +1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;; +1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;; +12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;; +12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;; +12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;; +12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;; +12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;; +12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;; +12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;; +12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;; +12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;; +12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;; +1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;; +1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;; +1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;; +1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;; +1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;; +1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;; +12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;; +12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;; +12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;; +12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;; +12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;; +12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;; +12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;; +12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;; +12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;; +12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;; +1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;; +1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;; +1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;; +1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;; +1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;; +1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;; +12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;; +12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;; +12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;; +12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;; +12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;; +12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;; +12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;; +12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;; +12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;; +12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;; +1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;; +1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;; +1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;; +1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;; +1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;; +120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;; +120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;; +120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;; +120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;; +120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;; +120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;; +120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;; +120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;; +120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;; +120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;; +120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;; +120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;; +120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;; +120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;; +120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;; +120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;; +120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;; +120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;; +120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;; +120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;; +120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;; +120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;; +120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;; +120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;; +120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;; +120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;; +120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;; +120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;; +120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;; +120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;; +120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;; +120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;; +120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;; +120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;; +120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;; +120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;; +120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;; +120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;; +120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;; +120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;; +120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;; +120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;; +120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;; +120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;; +120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;; +120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;; +120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;; +120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;; +120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;; +120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;; +120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;; +120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;; +120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;; +120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;; +120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;; +120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;; +120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;; +120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;; +120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; +120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;; +120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;; +120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;; +120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;; +120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;; +120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;; +120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;; +120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;; +120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;; +120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;; +120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;; +120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;; +120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;; +120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;; +120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;; +120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;; +120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;; +120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;; +120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; +120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;; +120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; +120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;; +120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;; +120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;; +120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;; +120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;; +120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;; +120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;; +120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;; +120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;; +120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;; +120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;; +120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;; +12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;; +12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;; +12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;; +12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;; +12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;; +12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;; +12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;; +12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;; +12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;; +12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;; +1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;; +1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;; +1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;; +1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;; +1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;; +12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;; +12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;; +12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;; +12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;; +12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;; +12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;; +12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;; +12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;; +12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;; +12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;; +1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;; +1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;; +1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;; +1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;; +1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;; +12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;; +12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;; +12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;; +12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;; +12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;; +12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;; +12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;; +12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;; +12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;; +12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;; +1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;; +1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;; +1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;; +1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;; +1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;; +1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;; +12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;; +12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;; +12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;; +12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;; +12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;; +12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;; +12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;; +12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;; +12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;; +12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;; +1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;; +1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;; +1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;; +1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;; +1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;; +1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;; +12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;; +12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;; +12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;; +12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;; +12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;; +12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;; +12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;; +12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;; +12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;; +12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;; +1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;; +1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;; +1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;; +1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;; +1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;; +12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;; +12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;; +12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;; +12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;; +12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;; +12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;; +12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;; +12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;; +12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;; +12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;; +1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;; +1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;; +1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;; +1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;; +1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;; +1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;; +12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;; +12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;; +12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;; +12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;; +12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;; +12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;; +12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;; +12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;; +12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;; +1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;; +1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;; +1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;; +1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;; +1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;; +1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;; +12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;; +12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;; +12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;; +12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;; +12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;; +12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;; +12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;; +12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;; +12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;; +12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;; +1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;; +1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;; +1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;; +1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;; +1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;; +1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;; +12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;; +12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;; +12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;; +12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;; +12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;; +12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;; +12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;; +12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;; +12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;; +12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;; +1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;; +1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;; +1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;; +1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;; +1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;; +1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;; +12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;; +12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;; +12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;; +12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;; +12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;; +12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;; +12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;; +12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;; +12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;; +1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;; +1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;; +1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;; +1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;; +1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;; +1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;; +121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;; +121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;; +121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;; +121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;; +121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;; +121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;; +121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;; +121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;; +121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;; +121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;; +121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;; +121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;; +121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;; +121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;; +121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;; +121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;; +121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;; +121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;; +121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;; +121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;; +121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;; +121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;; +121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;; +121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;; +121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;; +121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;; +121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;; +121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;; +121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;; +121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;; +121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;; +121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;; +121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;; +121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;; +121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;; +121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;; +121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;; +121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;; +121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;; +121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;; +121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;; +121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;; +121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;; +121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;; +121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;; +121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;; +121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;; +121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;; +121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;; +121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;; +121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;; +121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;; +121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;; +121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;; +121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;; +121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;; +121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; +121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;; +121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;; +121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;; +121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;; +121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;; +121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;; +121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;; +121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;; +121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;; +121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;; +121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;; +121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;; +121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;; +121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;; +121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;; +121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;; +121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;; +121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;; +121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;; +121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;; +121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;; +121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;; +121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;; +121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;; +121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;; +121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;; +121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;; +121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;; +121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;; +121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;; +121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;; +121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;; +121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;; +121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;; +121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;; +121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;; +121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;; +121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;; +12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;; +12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;; +12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;; +12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;; +12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;; +12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;; +12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;; +12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;; +12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;; +1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;; +1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; +1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;; +1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;; +1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;; +1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;; +12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;; +12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;; +12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;; +12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;; +12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;; +12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;; +12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;; +12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;; +12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;; +12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;; +1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;; +1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;; +1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;; +1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;; +1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;; +1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;; +12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;; +12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;; +12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;; +12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;; +12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;; +12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;; +12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;; +12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;; +12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;; +12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;; +1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;; +1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;; +1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;; +1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;; +1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;; +1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;; +12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;; +12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;; +12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;; +12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;; +12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;; +12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;; +12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;; +12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;; +12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;; +12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;; +1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;; +1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;; +1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;; +1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;; +1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;; +1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;; +12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;; +12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;; +12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;; +12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;; +12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;; +12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;; +12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;; +12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;; +12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;; +12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;; +1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;; +1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;; +1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;; +1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;; +1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;; +1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;; +12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;; +12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;; +12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;; +12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;; +12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;; +12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;; +12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;; +12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;; +12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;; +1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;; +1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;; +1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;; +1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;; +1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;; +1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;; +12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;; +12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;; +12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;; +12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;; +12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;; +12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;; +12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;; +12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;; +12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;; +12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;; +1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;; +1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;; +1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;; +1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;; +1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;; +1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;; +12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;; +12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;; +12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;; +12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;; +12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;; +12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;; +12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;; +12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;; +12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;; +1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;; +1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;; +1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;; +1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;; +1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;; +1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;; +12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;; +12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;; +12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;; +12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;; +12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;; +12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;; +12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;; +12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;; +12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;; +12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;; +1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;; +1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;; +1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;; +1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;; +1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;; +1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;; +12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;; +12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;; +12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;; +12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;; +12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;; +12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;; +12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;; +12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;; +12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;; +12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;; +1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;; +1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;; +1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;; +1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;; +1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;; +1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;; +122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;; +122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;; +122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;; +122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;; +122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;; +122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;; +122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;; +122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;; +122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;; +122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;; +122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;; +122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;; +122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;; +122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;; +122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;; +122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;; +122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;; +122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;; +122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;; +122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;; +122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;; +122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;; +122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;; +122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;; +122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;; +122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;; +122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;; +122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;; +122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; +122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;; +122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;; +122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;; +122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;; +122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;; +122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;; +122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;; +122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;; +122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;; +122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;; +122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;; +122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;; +122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;; +122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;; +122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;; +122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;; +122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; +122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;; +122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;; +122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;; +122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;; +122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;; +122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;; +122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;; +122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;; +122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;; +122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;; +122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;; +122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;; +122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;; +122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;; +122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;; +122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;; +122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;; +122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;; +122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;; +122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;; +122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;; +122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;; +122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;; +122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;; +122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;; +122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;; +122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;; +122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;; +122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;; +122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;; +122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;; +122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;; +122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;; +122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;; +122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;; +122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;; +122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;; +122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;; +122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;; +122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;; +122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;; +122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;; +122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;; +122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;; +122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;; +122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;; +122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;; +122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;; +122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;; +122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;; +12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;; +12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;; +12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;; +12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;; +12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; +12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;; +12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;; +12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;; +12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;; +12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;; +1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;; +1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;; +1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;; +1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;; +1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;; +1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;; +12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;; +12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;; +12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;; +12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;; +12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;; +12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;; +12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;; +12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;; +12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;; +12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;; +1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;; +1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;; +1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;; +1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;; +1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;; +1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;; +12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;; +12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;; +12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;; +12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;; +12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;; +12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;; +12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;; +12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;; +12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;; +12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;; +1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;; +1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;; +1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;; +1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;; +1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;; +1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;; +12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;; +12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;; +12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;; +12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;; +12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;; +12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;; +12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;; +12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;; +12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;; +12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;; +1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;; +1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;; +1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;; +1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;; +1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; +1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;; +12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;; +12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;; +12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;; +12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;; +12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;; +12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;; +12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;; +12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;; +12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;; +12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;; +1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;; +1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;; +1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;; +1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;; +1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;; +1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;; +12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;; +12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;; +12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;; +12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;; +12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;; +12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;; +12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;; +12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;; +12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;; +12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;; +1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;; +1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;; +1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;; +1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;; +1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;; +1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;; +12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;; +12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;; +12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;; +12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;; +12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;; +12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;; +12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;; +12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;; +12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;; +12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;; +1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;; +1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;; +1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;; +1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;; +1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;; +12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;; +12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;; +12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;; +12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;; +12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;; +12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;; +12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;; +12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;; +12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;; +12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;; +1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;; +1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;; +1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;; +1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;; +1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;; +1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;; +12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;; +12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;; +12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;; +12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;; +12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;; +12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;; +12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;; +12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;; +12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;; +12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;; +1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;; +1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;; +1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;; +1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;; +1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;; +1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;; +12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;; +12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;; +12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;; +12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;; +12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;; +12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;; +12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;; +12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;; +12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;; +12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;; +1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;; +1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;; +1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;; +1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;; +1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;; +1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;; +12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;; +12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;; +12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;216000;N;;;;; +12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;432000;N;;;;; +12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;; +12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;; +12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;; +12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;; +12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;; +12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;; +1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;; +1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;; +1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;; +1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;; +1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;; +1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;; +12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;; +12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;; +12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;; +12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;; +12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;; +12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;; +12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;; +12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;; +12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;; +12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;; +1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;; +1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;; +1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;; +1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;; +1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;; +1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;; +12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;; +12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;; +12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;; +12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;; +12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;; +12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;; +12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;; +12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;; +12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;; +12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;; +1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;; +1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;; +1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;; +1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;; +1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;; +1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;; +12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;; +12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;; +12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;; +12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;; +12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;; +12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;; +12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;; +13000;EGYPTIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;; +13001;EGYPTIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;; +13002;EGYPTIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;; +13003;EGYPTIAN HIEROGLYPH A004;Lo;0;L;;;;;N;;;;; +13004;EGYPTIAN HIEROGLYPH A005;Lo;0;L;;;;;N;;;;; +13005;EGYPTIAN HIEROGLYPH A005A;Lo;0;L;;;;;N;;;;; +13006;EGYPTIAN HIEROGLYPH A006;Lo;0;L;;;;;N;;;;; +13007;EGYPTIAN HIEROGLYPH A006A;Lo;0;L;;;;;N;;;;; +13008;EGYPTIAN HIEROGLYPH A006B;Lo;0;L;;;;;N;;;;; +13009;EGYPTIAN HIEROGLYPH A007;Lo;0;L;;;;;N;;;;; +1300A;EGYPTIAN HIEROGLYPH A008;Lo;0;L;;;;;N;;;;; +1300B;EGYPTIAN HIEROGLYPH A009;Lo;0;L;;;;;N;;;;; +1300C;EGYPTIAN HIEROGLYPH A010;Lo;0;L;;;;;N;;;;; +1300D;EGYPTIAN HIEROGLYPH A011;Lo;0;L;;;;;N;;;;; +1300E;EGYPTIAN HIEROGLYPH A012;Lo;0;L;;;;;N;;;;; +1300F;EGYPTIAN HIEROGLYPH A013;Lo;0;L;;;;;N;;;;; +13010;EGYPTIAN HIEROGLYPH A014;Lo;0;L;;;;;N;;;;; +13011;EGYPTIAN HIEROGLYPH A014A;Lo;0;L;;;;;N;;;;; +13012;EGYPTIAN HIEROGLYPH A015;Lo;0;L;;;;;N;;;;; +13013;EGYPTIAN HIEROGLYPH A016;Lo;0;L;;;;;N;;;;; +13014;EGYPTIAN HIEROGLYPH A017;Lo;0;L;;;;;N;;;;; +13015;EGYPTIAN HIEROGLYPH A017A;Lo;0;L;;;;;N;;;;; +13016;EGYPTIAN HIEROGLYPH A018;Lo;0;L;;;;;N;;;;; +13017;EGYPTIAN HIEROGLYPH A019;Lo;0;L;;;;;N;;;;; +13018;EGYPTIAN HIEROGLYPH A020;Lo;0;L;;;;;N;;;;; +13019;EGYPTIAN HIEROGLYPH A021;Lo;0;L;;;;;N;;;;; +1301A;EGYPTIAN HIEROGLYPH A022;Lo;0;L;;;;;N;;;;; +1301B;EGYPTIAN HIEROGLYPH A023;Lo;0;L;;;;;N;;;;; +1301C;EGYPTIAN HIEROGLYPH A024;Lo;0;L;;;;;N;;;;; +1301D;EGYPTIAN HIEROGLYPH A025;Lo;0;L;;;;;N;;;;; +1301E;EGYPTIAN HIEROGLYPH A026;Lo;0;L;;;;;N;;;;; +1301F;EGYPTIAN HIEROGLYPH A027;Lo;0;L;;;;;N;;;;; +13020;EGYPTIAN HIEROGLYPH A028;Lo;0;L;;;;;N;;;;; +13021;EGYPTIAN HIEROGLYPH A029;Lo;0;L;;;;;N;;;;; +13022;EGYPTIAN HIEROGLYPH A030;Lo;0;L;;;;;N;;;;; +13023;EGYPTIAN HIEROGLYPH A031;Lo;0;L;;;;;N;;;;; +13024;EGYPTIAN HIEROGLYPH A032;Lo;0;L;;;;;N;;;;; +13025;EGYPTIAN HIEROGLYPH A032A;Lo;0;L;;;;;N;;;;; +13026;EGYPTIAN HIEROGLYPH A033;Lo;0;L;;;;;N;;;;; +13027;EGYPTIAN HIEROGLYPH A034;Lo;0;L;;;;;N;;;;; +13028;EGYPTIAN HIEROGLYPH A035;Lo;0;L;;;;;N;;;;; +13029;EGYPTIAN HIEROGLYPH A036;Lo;0;L;;;;;N;;;;; +1302A;EGYPTIAN HIEROGLYPH A037;Lo;0;L;;;;;N;;;;; +1302B;EGYPTIAN HIEROGLYPH A038;Lo;0;L;;;;;N;;;;; +1302C;EGYPTIAN HIEROGLYPH A039;Lo;0;L;;;;;N;;;;; +1302D;EGYPTIAN HIEROGLYPH A040;Lo;0;L;;;;;N;;;;; +1302E;EGYPTIAN HIEROGLYPH A040A;Lo;0;L;;;;;N;;;;; +1302F;EGYPTIAN HIEROGLYPH A041;Lo;0;L;;;;;N;;;;; +13030;EGYPTIAN HIEROGLYPH A042;Lo;0;L;;;;;N;;;;; +13031;EGYPTIAN HIEROGLYPH A042A;Lo;0;L;;;;;N;;;;; +13032;EGYPTIAN HIEROGLYPH A043;Lo;0;L;;;;;N;;;;; +13033;EGYPTIAN HIEROGLYPH A043A;Lo;0;L;;;;;N;;;;; +13034;EGYPTIAN HIEROGLYPH A044;Lo;0;L;;;;;N;;;;; +13035;EGYPTIAN HIEROGLYPH A045;Lo;0;L;;;;;N;;;;; +13036;EGYPTIAN HIEROGLYPH A045A;Lo;0;L;;;;;N;;;;; +13037;EGYPTIAN HIEROGLYPH A046;Lo;0;L;;;;;N;;;;; +13038;EGYPTIAN HIEROGLYPH A047;Lo;0;L;;;;;N;;;;; +13039;EGYPTIAN HIEROGLYPH A048;Lo;0;L;;;;;N;;;;; +1303A;EGYPTIAN HIEROGLYPH A049;Lo;0;L;;;;;N;;;;; +1303B;EGYPTIAN HIEROGLYPH A050;Lo;0;L;;;;;N;;;;; +1303C;EGYPTIAN HIEROGLYPH A051;Lo;0;L;;;;;N;;;;; +1303D;EGYPTIAN HIEROGLYPH A052;Lo;0;L;;;;;N;;;;; +1303E;EGYPTIAN HIEROGLYPH A053;Lo;0;L;;;;;N;;;;; +1303F;EGYPTIAN HIEROGLYPH A054;Lo;0;L;;;;;N;;;;; +13040;EGYPTIAN HIEROGLYPH A055;Lo;0;L;;;;;N;;;;; +13041;EGYPTIAN HIEROGLYPH A056;Lo;0;L;;;;;N;;;;; +13042;EGYPTIAN HIEROGLYPH A057;Lo;0;L;;;;;N;;;;; +13043;EGYPTIAN HIEROGLYPH A058;Lo;0;L;;;;;N;;;;; +13044;EGYPTIAN HIEROGLYPH A059;Lo;0;L;;;;;N;;;;; +13045;EGYPTIAN HIEROGLYPH A060;Lo;0;L;;;;;N;;;;; +13046;EGYPTIAN HIEROGLYPH A061;Lo;0;L;;;;;N;;;;; +13047;EGYPTIAN HIEROGLYPH A062;Lo;0;L;;;;;N;;;;; +13048;EGYPTIAN HIEROGLYPH A063;Lo;0;L;;;;;N;;;;; +13049;EGYPTIAN HIEROGLYPH A064;Lo;0;L;;;;;N;;;;; +1304A;EGYPTIAN HIEROGLYPH A065;Lo;0;L;;;;;N;;;;; +1304B;EGYPTIAN HIEROGLYPH A066;Lo;0;L;;;;;N;;;;; +1304C;EGYPTIAN HIEROGLYPH A067;Lo;0;L;;;;;N;;;;; +1304D;EGYPTIAN HIEROGLYPH A068;Lo;0;L;;;;;N;;;;; +1304E;EGYPTIAN HIEROGLYPH A069;Lo;0;L;;;;;N;;;;; +1304F;EGYPTIAN HIEROGLYPH A070;Lo;0;L;;;;;N;;;;; +13050;EGYPTIAN HIEROGLYPH B001;Lo;0;L;;;;;N;;;;; +13051;EGYPTIAN HIEROGLYPH B002;Lo;0;L;;;;;N;;;;; +13052;EGYPTIAN HIEROGLYPH B003;Lo;0;L;;;;;N;;;;; +13053;EGYPTIAN HIEROGLYPH B004;Lo;0;L;;;;;N;;;;; +13054;EGYPTIAN HIEROGLYPH B005;Lo;0;L;;;;;N;;;;; +13055;EGYPTIAN HIEROGLYPH B005A;Lo;0;L;;;;;N;;;;; +13056;EGYPTIAN HIEROGLYPH B006;Lo;0;L;;;;;N;;;;; +13057;EGYPTIAN HIEROGLYPH B007;Lo;0;L;;;;;N;;;;; +13058;EGYPTIAN HIEROGLYPH B008;Lo;0;L;;;;;N;;;;; +13059;EGYPTIAN HIEROGLYPH B009;Lo;0;L;;;;;N;;;;; +1305A;EGYPTIAN HIEROGLYPH C001;Lo;0;L;;;;;N;;;;; +1305B;EGYPTIAN HIEROGLYPH C002;Lo;0;L;;;;;N;;;;; +1305C;EGYPTIAN HIEROGLYPH C002A;Lo;0;L;;;;;N;;;;; +1305D;EGYPTIAN HIEROGLYPH C002B;Lo;0;L;;;;;N;;;;; +1305E;EGYPTIAN HIEROGLYPH C002C;Lo;0;L;;;;;N;;;;; +1305F;EGYPTIAN HIEROGLYPH C003;Lo;0;L;;;;;N;;;;; +13060;EGYPTIAN HIEROGLYPH C004;Lo;0;L;;;;;N;;;;; +13061;EGYPTIAN HIEROGLYPH C005;Lo;0;L;;;;;N;;;;; +13062;EGYPTIAN HIEROGLYPH C006;Lo;0;L;;;;;N;;;;; +13063;EGYPTIAN HIEROGLYPH C007;Lo;0;L;;;;;N;;;;; +13064;EGYPTIAN HIEROGLYPH C008;Lo;0;L;;;;;N;;;;; +13065;EGYPTIAN HIEROGLYPH C009;Lo;0;L;;;;;N;;;;; +13066;EGYPTIAN HIEROGLYPH C010;Lo;0;L;;;;;N;;;;; +13067;EGYPTIAN HIEROGLYPH C010A;Lo;0;L;;;;;N;;;;; +13068;EGYPTIAN HIEROGLYPH C011;Lo;0;L;;;;;N;;;;; +13069;EGYPTIAN HIEROGLYPH C012;Lo;0;L;;;;;N;;;;; +1306A;EGYPTIAN HIEROGLYPH C013;Lo;0;L;;;;;N;;;;; +1306B;EGYPTIAN HIEROGLYPH C014;Lo;0;L;;;;;N;;;;; +1306C;EGYPTIAN HIEROGLYPH C015;Lo;0;L;;;;;N;;;;; +1306D;EGYPTIAN HIEROGLYPH C016;Lo;0;L;;;;;N;;;;; +1306E;EGYPTIAN HIEROGLYPH C017;Lo;0;L;;;;;N;;;;; +1306F;EGYPTIAN HIEROGLYPH C018;Lo;0;L;;;;;N;;;;; +13070;EGYPTIAN HIEROGLYPH C019;Lo;0;L;;;;;N;;;;; +13071;EGYPTIAN HIEROGLYPH C020;Lo;0;L;;;;;N;;;;; +13072;EGYPTIAN HIEROGLYPH C021;Lo;0;L;;;;;N;;;;; +13073;EGYPTIAN HIEROGLYPH C022;Lo;0;L;;;;;N;;;;; +13074;EGYPTIAN HIEROGLYPH C023;Lo;0;L;;;;;N;;;;; +13075;EGYPTIAN HIEROGLYPH C024;Lo;0;L;;;;;N;;;;; +13076;EGYPTIAN HIEROGLYPH D001;Lo;0;L;;;;;N;;;;; +13077;EGYPTIAN HIEROGLYPH D002;Lo;0;L;;;;;N;;;;; +13078;EGYPTIAN HIEROGLYPH D003;Lo;0;L;;;;;N;;;;; +13079;EGYPTIAN HIEROGLYPH D004;Lo;0;L;;;;;N;;;;; +1307A;EGYPTIAN HIEROGLYPH D005;Lo;0;L;;;;;N;;;;; +1307B;EGYPTIAN HIEROGLYPH D006;Lo;0;L;;;;;N;;;;; +1307C;EGYPTIAN HIEROGLYPH D007;Lo;0;L;;;;;N;;;;; +1307D;EGYPTIAN HIEROGLYPH D008;Lo;0;L;;;;;N;;;;; +1307E;EGYPTIAN HIEROGLYPH D008A;Lo;0;L;;;;;N;;;;; +1307F;EGYPTIAN HIEROGLYPH D009;Lo;0;L;;;;;N;;;;; +13080;EGYPTIAN HIEROGLYPH D010;Lo;0;L;;;;;N;;;;; +13081;EGYPTIAN HIEROGLYPH D011;Lo;0;L;;;;;N;;;;; +13082;EGYPTIAN HIEROGLYPH D012;Lo;0;L;;;;;N;;;;; +13083;EGYPTIAN HIEROGLYPH D013;Lo;0;L;;;;;N;;;;; +13084;EGYPTIAN HIEROGLYPH D014;Lo;0;L;;;;;N;;;;; +13085;EGYPTIAN HIEROGLYPH D015;Lo;0;L;;;;;N;;;;; +13086;EGYPTIAN HIEROGLYPH D016;Lo;0;L;;;;;N;;;;; +13087;EGYPTIAN HIEROGLYPH D017;Lo;0;L;;;;;N;;;;; +13088;EGYPTIAN HIEROGLYPH D018;Lo;0;L;;;;;N;;;;; +13089;EGYPTIAN HIEROGLYPH D019;Lo;0;L;;;;;N;;;;; +1308A;EGYPTIAN HIEROGLYPH D020;Lo;0;L;;;;;N;;;;; +1308B;EGYPTIAN HIEROGLYPH D021;Lo;0;L;;;;;N;;;;; +1308C;EGYPTIAN HIEROGLYPH D022;Lo;0;L;;;;;N;;;;; +1308D;EGYPTIAN HIEROGLYPH D023;Lo;0;L;;;;;N;;;;; +1308E;EGYPTIAN HIEROGLYPH D024;Lo;0;L;;;;;N;;;;; +1308F;EGYPTIAN HIEROGLYPH D025;Lo;0;L;;;;;N;;;;; +13090;EGYPTIAN HIEROGLYPH D026;Lo;0;L;;;;;N;;;;; +13091;EGYPTIAN HIEROGLYPH D027;Lo;0;L;;;;;N;;;;; +13092;EGYPTIAN HIEROGLYPH D027A;Lo;0;L;;;;;N;;;;; +13093;EGYPTIAN HIEROGLYPH D028;Lo;0;L;;;;;N;;;;; +13094;EGYPTIAN HIEROGLYPH D029;Lo;0;L;;;;;N;;;;; +13095;EGYPTIAN HIEROGLYPH D030;Lo;0;L;;;;;N;;;;; +13096;EGYPTIAN HIEROGLYPH D031;Lo;0;L;;;;;N;;;;; +13097;EGYPTIAN HIEROGLYPH D031A;Lo;0;L;;;;;N;;;;; +13098;EGYPTIAN HIEROGLYPH D032;Lo;0;L;;;;;N;;;;; +13099;EGYPTIAN HIEROGLYPH D033;Lo;0;L;;;;;N;;;;; +1309A;EGYPTIAN HIEROGLYPH D034;Lo;0;L;;;;;N;;;;; +1309B;EGYPTIAN HIEROGLYPH D034A;Lo;0;L;;;;;N;;;;; +1309C;EGYPTIAN HIEROGLYPH D035;Lo;0;L;;;;;N;;;;; +1309D;EGYPTIAN HIEROGLYPH D036;Lo;0;L;;;;;N;;;;; +1309E;EGYPTIAN HIEROGLYPH D037;Lo;0;L;;;;;N;;;;; +1309F;EGYPTIAN HIEROGLYPH D038;Lo;0;L;;;;;N;;;;; +130A0;EGYPTIAN HIEROGLYPH D039;Lo;0;L;;;;;N;;;;; +130A1;EGYPTIAN HIEROGLYPH D040;Lo;0;L;;;;;N;;;;; +130A2;EGYPTIAN HIEROGLYPH D041;Lo;0;L;;;;;N;;;;; +130A3;EGYPTIAN HIEROGLYPH D042;Lo;0;L;;;;;N;;;;; +130A4;EGYPTIAN HIEROGLYPH D043;Lo;0;L;;;;;N;;;;; +130A5;EGYPTIAN HIEROGLYPH D044;Lo;0;L;;;;;N;;;;; +130A6;EGYPTIAN HIEROGLYPH D045;Lo;0;L;;;;;N;;;;; +130A7;EGYPTIAN HIEROGLYPH D046;Lo;0;L;;;;;N;;;;; +130A8;EGYPTIAN HIEROGLYPH D046A;Lo;0;L;;;;;N;;;;; +130A9;EGYPTIAN HIEROGLYPH D047;Lo;0;L;;;;;N;;;;; +130AA;EGYPTIAN HIEROGLYPH D048;Lo;0;L;;;;;N;;;;; +130AB;EGYPTIAN HIEROGLYPH D048A;Lo;0;L;;;;;N;;;;; +130AC;EGYPTIAN HIEROGLYPH D049;Lo;0;L;;;;;N;;;;; +130AD;EGYPTIAN HIEROGLYPH D050;Lo;0;L;;;;;N;;;;; +130AE;EGYPTIAN HIEROGLYPH D050A;Lo;0;L;;;;;N;;;;; +130AF;EGYPTIAN HIEROGLYPH D050B;Lo;0;L;;;;;N;;;;; +130B0;EGYPTIAN HIEROGLYPH D050C;Lo;0;L;;;;;N;;;;; +130B1;EGYPTIAN HIEROGLYPH D050D;Lo;0;L;;;;;N;;;;; +130B2;EGYPTIAN HIEROGLYPH D050E;Lo;0;L;;;;;N;;;;; +130B3;EGYPTIAN HIEROGLYPH D050F;Lo;0;L;;;;;N;;;;; +130B4;EGYPTIAN HIEROGLYPH D050G;Lo;0;L;;;;;N;;;;; +130B5;EGYPTIAN HIEROGLYPH D050H;Lo;0;L;;;;;N;;;;; +130B6;EGYPTIAN HIEROGLYPH D050I;Lo;0;L;;;;;N;;;;; +130B7;EGYPTIAN HIEROGLYPH D051;Lo;0;L;;;;;N;;;;; +130B8;EGYPTIAN HIEROGLYPH D052;Lo;0;L;;;;;N;;;;; +130B9;EGYPTIAN HIEROGLYPH D052A;Lo;0;L;;;;;N;;;;; +130BA;EGYPTIAN HIEROGLYPH D053;Lo;0;L;;;;;N;;;;; +130BB;EGYPTIAN HIEROGLYPH D054;Lo;0;L;;;;;N;;;;; +130BC;EGYPTIAN HIEROGLYPH D054A;Lo;0;L;;;;;N;;;;; +130BD;EGYPTIAN HIEROGLYPH D055;Lo;0;L;;;;;N;;;;; +130BE;EGYPTIAN HIEROGLYPH D056;Lo;0;L;;;;;N;;;;; +130BF;EGYPTIAN HIEROGLYPH D057;Lo;0;L;;;;;N;;;;; +130C0;EGYPTIAN HIEROGLYPH D058;Lo;0;L;;;;;N;;;;; +130C1;EGYPTIAN HIEROGLYPH D059;Lo;0;L;;;;;N;;;;; +130C2;EGYPTIAN HIEROGLYPH D060;Lo;0;L;;;;;N;;;;; +130C3;EGYPTIAN HIEROGLYPH D061;Lo;0;L;;;;;N;;;;; +130C4;EGYPTIAN HIEROGLYPH D062;Lo;0;L;;;;;N;;;;; +130C5;EGYPTIAN HIEROGLYPH D063;Lo;0;L;;;;;N;;;;; +130C6;EGYPTIAN HIEROGLYPH D064;Lo;0;L;;;;;N;;;;; +130C7;EGYPTIAN HIEROGLYPH D065;Lo;0;L;;;;;N;;;;; +130C8;EGYPTIAN HIEROGLYPH D066;Lo;0;L;;;;;N;;;;; +130C9;EGYPTIAN HIEROGLYPH D067;Lo;0;L;;;;;N;;;;; +130CA;EGYPTIAN HIEROGLYPH D067A;Lo;0;L;;;;;N;;;;; +130CB;EGYPTIAN HIEROGLYPH D067B;Lo;0;L;;;;;N;;;;; +130CC;EGYPTIAN HIEROGLYPH D067C;Lo;0;L;;;;;N;;;;; +130CD;EGYPTIAN HIEROGLYPH D067D;Lo;0;L;;;;;N;;;;; +130CE;EGYPTIAN HIEROGLYPH D067E;Lo;0;L;;;;;N;;;;; +130CF;EGYPTIAN HIEROGLYPH D067F;Lo;0;L;;;;;N;;;;; +130D0;EGYPTIAN HIEROGLYPH D067G;Lo;0;L;;;;;N;;;;; +130D1;EGYPTIAN HIEROGLYPH D067H;Lo;0;L;;;;;N;;;;; +130D2;EGYPTIAN HIEROGLYPH E001;Lo;0;L;;;;;N;;;;; +130D3;EGYPTIAN HIEROGLYPH E002;Lo;0;L;;;;;N;;;;; +130D4;EGYPTIAN HIEROGLYPH E003;Lo;0;L;;;;;N;;;;; +130D5;EGYPTIAN HIEROGLYPH E004;Lo;0;L;;;;;N;;;;; +130D6;EGYPTIAN HIEROGLYPH E005;Lo;0;L;;;;;N;;;;; +130D7;EGYPTIAN HIEROGLYPH E006;Lo;0;L;;;;;N;;;;; +130D8;EGYPTIAN HIEROGLYPH E007;Lo;0;L;;;;;N;;;;; +130D9;EGYPTIAN HIEROGLYPH E008;Lo;0;L;;;;;N;;;;; +130DA;EGYPTIAN HIEROGLYPH E008A;Lo;0;L;;;;;N;;;;; +130DB;EGYPTIAN HIEROGLYPH E009;Lo;0;L;;;;;N;;;;; +130DC;EGYPTIAN HIEROGLYPH E009A;Lo;0;L;;;;;N;;;;; +130DD;EGYPTIAN HIEROGLYPH E010;Lo;0;L;;;;;N;;;;; +130DE;EGYPTIAN HIEROGLYPH E011;Lo;0;L;;;;;N;;;;; +130DF;EGYPTIAN HIEROGLYPH E012;Lo;0;L;;;;;N;;;;; +130E0;EGYPTIAN HIEROGLYPH E013;Lo;0;L;;;;;N;;;;; +130E1;EGYPTIAN HIEROGLYPH E014;Lo;0;L;;;;;N;;;;; +130E2;EGYPTIAN HIEROGLYPH E015;Lo;0;L;;;;;N;;;;; +130E3;EGYPTIAN HIEROGLYPH E016;Lo;0;L;;;;;N;;;;; +130E4;EGYPTIAN HIEROGLYPH E016A;Lo;0;L;;;;;N;;;;; +130E5;EGYPTIAN HIEROGLYPH E017;Lo;0;L;;;;;N;;;;; +130E6;EGYPTIAN HIEROGLYPH E017A;Lo;0;L;;;;;N;;;;; +130E7;EGYPTIAN HIEROGLYPH E018;Lo;0;L;;;;;N;;;;; +130E8;EGYPTIAN HIEROGLYPH E019;Lo;0;L;;;;;N;;;;; +130E9;EGYPTIAN HIEROGLYPH E020;Lo;0;L;;;;;N;;;;; +130EA;EGYPTIAN HIEROGLYPH E020A;Lo;0;L;;;;;N;;;;; +130EB;EGYPTIAN HIEROGLYPH E021;Lo;0;L;;;;;N;;;;; +130EC;EGYPTIAN HIEROGLYPH E022;Lo;0;L;;;;;N;;;;; +130ED;EGYPTIAN HIEROGLYPH E023;Lo;0;L;;;;;N;;;;; +130EE;EGYPTIAN HIEROGLYPH E024;Lo;0;L;;;;;N;;;;; +130EF;EGYPTIAN HIEROGLYPH E025;Lo;0;L;;;;;N;;;;; +130F0;EGYPTIAN HIEROGLYPH E026;Lo;0;L;;;;;N;;;;; +130F1;EGYPTIAN HIEROGLYPH E027;Lo;0;L;;;;;N;;;;; +130F2;EGYPTIAN HIEROGLYPH E028;Lo;0;L;;;;;N;;;;; +130F3;EGYPTIAN HIEROGLYPH E028A;Lo;0;L;;;;;N;;;;; +130F4;EGYPTIAN HIEROGLYPH E029;Lo;0;L;;;;;N;;;;; +130F5;EGYPTIAN HIEROGLYPH E030;Lo;0;L;;;;;N;;;;; +130F6;EGYPTIAN HIEROGLYPH E031;Lo;0;L;;;;;N;;;;; +130F7;EGYPTIAN HIEROGLYPH E032;Lo;0;L;;;;;N;;;;; +130F8;EGYPTIAN HIEROGLYPH E033;Lo;0;L;;;;;N;;;;; +130F9;EGYPTIAN HIEROGLYPH E034;Lo;0;L;;;;;N;;;;; +130FA;EGYPTIAN HIEROGLYPH E034A;Lo;0;L;;;;;N;;;;; +130FB;EGYPTIAN HIEROGLYPH E036;Lo;0;L;;;;;N;;;;; +130FC;EGYPTIAN HIEROGLYPH E037;Lo;0;L;;;;;N;;;;; +130FD;EGYPTIAN HIEROGLYPH E038;Lo;0;L;;;;;N;;;;; +130FE;EGYPTIAN HIEROGLYPH F001;Lo;0;L;;;;;N;;;;; +130FF;EGYPTIAN HIEROGLYPH F001A;Lo;0;L;;;;;N;;;;; +13100;EGYPTIAN HIEROGLYPH F002;Lo;0;L;;;;;N;;;;; +13101;EGYPTIAN HIEROGLYPH F003;Lo;0;L;;;;;N;;;;; +13102;EGYPTIAN HIEROGLYPH F004;Lo;0;L;;;;;N;;;;; +13103;EGYPTIAN HIEROGLYPH F005;Lo;0;L;;;;;N;;;;; +13104;EGYPTIAN HIEROGLYPH F006;Lo;0;L;;;;;N;;;;; +13105;EGYPTIAN HIEROGLYPH F007;Lo;0;L;;;;;N;;;;; +13106;EGYPTIAN HIEROGLYPH F008;Lo;0;L;;;;;N;;;;; +13107;EGYPTIAN HIEROGLYPH F009;Lo;0;L;;;;;N;;;;; +13108;EGYPTIAN HIEROGLYPH F010;Lo;0;L;;;;;N;;;;; +13109;EGYPTIAN HIEROGLYPH F011;Lo;0;L;;;;;N;;;;; +1310A;EGYPTIAN HIEROGLYPH F012;Lo;0;L;;;;;N;;;;; +1310B;EGYPTIAN HIEROGLYPH F013;Lo;0;L;;;;;N;;;;; +1310C;EGYPTIAN HIEROGLYPH F013A;Lo;0;L;;;;;N;;;;; +1310D;EGYPTIAN HIEROGLYPH F014;Lo;0;L;;;;;N;;;;; +1310E;EGYPTIAN HIEROGLYPH F015;Lo;0;L;;;;;N;;;;; +1310F;EGYPTIAN HIEROGLYPH F016;Lo;0;L;;;;;N;;;;; +13110;EGYPTIAN HIEROGLYPH F017;Lo;0;L;;;;;N;;;;; +13111;EGYPTIAN HIEROGLYPH F018;Lo;0;L;;;;;N;;;;; +13112;EGYPTIAN HIEROGLYPH F019;Lo;0;L;;;;;N;;;;; +13113;EGYPTIAN HIEROGLYPH F020;Lo;0;L;;;;;N;;;;; +13114;EGYPTIAN HIEROGLYPH F021;Lo;0;L;;;;;N;;;;; +13115;EGYPTIAN HIEROGLYPH F021A;Lo;0;L;;;;;N;;;;; +13116;EGYPTIAN HIEROGLYPH F022;Lo;0;L;;;;;N;;;;; +13117;EGYPTIAN HIEROGLYPH F023;Lo;0;L;;;;;N;;;;; +13118;EGYPTIAN HIEROGLYPH F024;Lo;0;L;;;;;N;;;;; +13119;EGYPTIAN HIEROGLYPH F025;Lo;0;L;;;;;N;;;;; +1311A;EGYPTIAN HIEROGLYPH F026;Lo;0;L;;;;;N;;;;; +1311B;EGYPTIAN HIEROGLYPH F027;Lo;0;L;;;;;N;;;;; +1311C;EGYPTIAN HIEROGLYPH F028;Lo;0;L;;;;;N;;;;; +1311D;EGYPTIAN HIEROGLYPH F029;Lo;0;L;;;;;N;;;;; +1311E;EGYPTIAN HIEROGLYPH F030;Lo;0;L;;;;;N;;;;; +1311F;EGYPTIAN HIEROGLYPH F031;Lo;0;L;;;;;N;;;;; +13120;EGYPTIAN HIEROGLYPH F031A;Lo;0;L;;;;;N;;;;; +13121;EGYPTIAN HIEROGLYPH F032;Lo;0;L;;;;;N;;;;; +13122;EGYPTIAN HIEROGLYPH F033;Lo;0;L;;;;;N;;;;; +13123;EGYPTIAN HIEROGLYPH F034;Lo;0;L;;;;;N;;;;; +13124;EGYPTIAN HIEROGLYPH F035;Lo;0;L;;;;;N;;;;; +13125;EGYPTIAN HIEROGLYPH F036;Lo;0;L;;;;;N;;;;; +13126;EGYPTIAN HIEROGLYPH F037;Lo;0;L;;;;;N;;;;; +13127;EGYPTIAN HIEROGLYPH F037A;Lo;0;L;;;;;N;;;;; +13128;EGYPTIAN HIEROGLYPH F038;Lo;0;L;;;;;N;;;;; +13129;EGYPTIAN HIEROGLYPH F038A;Lo;0;L;;;;;N;;;;; +1312A;EGYPTIAN HIEROGLYPH F039;Lo;0;L;;;;;N;;;;; +1312B;EGYPTIAN HIEROGLYPH F040;Lo;0;L;;;;;N;;;;; +1312C;EGYPTIAN HIEROGLYPH F041;Lo;0;L;;;;;N;;;;; +1312D;EGYPTIAN HIEROGLYPH F042;Lo;0;L;;;;;N;;;;; +1312E;EGYPTIAN HIEROGLYPH F043;Lo;0;L;;;;;N;;;;; +1312F;EGYPTIAN HIEROGLYPH F044;Lo;0;L;;;;;N;;;;; +13130;EGYPTIAN HIEROGLYPH F045;Lo;0;L;;;;;N;;;;; +13131;EGYPTIAN HIEROGLYPH F045A;Lo;0;L;;;;;N;;;;; +13132;EGYPTIAN HIEROGLYPH F046;Lo;0;L;;;;;N;;;;; +13133;EGYPTIAN HIEROGLYPH F046A;Lo;0;L;;;;;N;;;;; +13134;EGYPTIAN HIEROGLYPH F047;Lo;0;L;;;;;N;;;;; +13135;EGYPTIAN HIEROGLYPH F047A;Lo;0;L;;;;;N;;;;; +13136;EGYPTIAN HIEROGLYPH F048;Lo;0;L;;;;;N;;;;; +13137;EGYPTIAN HIEROGLYPH F049;Lo;0;L;;;;;N;;;;; +13138;EGYPTIAN HIEROGLYPH F050;Lo;0;L;;;;;N;;;;; +13139;EGYPTIAN HIEROGLYPH F051;Lo;0;L;;;;;N;;;;; +1313A;EGYPTIAN HIEROGLYPH F051A;Lo;0;L;;;;;N;;;;; +1313B;EGYPTIAN HIEROGLYPH F051B;Lo;0;L;;;;;N;;;;; +1313C;EGYPTIAN HIEROGLYPH F051C;Lo;0;L;;;;;N;;;;; +1313D;EGYPTIAN HIEROGLYPH F052;Lo;0;L;;;;;N;;;;; +1313E;EGYPTIAN HIEROGLYPH F053;Lo;0;L;;;;;N;;;;; +1313F;EGYPTIAN HIEROGLYPH G001;Lo;0;L;;;;;N;;;;; +13140;EGYPTIAN HIEROGLYPH G002;Lo;0;L;;;;;N;;;;; +13141;EGYPTIAN HIEROGLYPH G003;Lo;0;L;;;;;N;;;;; +13142;EGYPTIAN HIEROGLYPH G004;Lo;0;L;;;;;N;;;;; +13143;EGYPTIAN HIEROGLYPH G005;Lo;0;L;;;;;N;;;;; +13144;EGYPTIAN HIEROGLYPH G006;Lo;0;L;;;;;N;;;;; +13145;EGYPTIAN HIEROGLYPH G006A;Lo;0;L;;;;;N;;;;; +13146;EGYPTIAN HIEROGLYPH G007;Lo;0;L;;;;;N;;;;; +13147;EGYPTIAN HIEROGLYPH G007A;Lo;0;L;;;;;N;;;;; +13148;EGYPTIAN HIEROGLYPH G007B;Lo;0;L;;;;;N;;;;; +13149;EGYPTIAN HIEROGLYPH G008;Lo;0;L;;;;;N;;;;; +1314A;EGYPTIAN HIEROGLYPH G009;Lo;0;L;;;;;N;;;;; +1314B;EGYPTIAN HIEROGLYPH G010;Lo;0;L;;;;;N;;;;; +1314C;EGYPTIAN HIEROGLYPH G011;Lo;0;L;;;;;N;;;;; +1314D;EGYPTIAN HIEROGLYPH G011A;Lo;0;L;;;;;N;;;;; +1314E;EGYPTIAN HIEROGLYPH G012;Lo;0;L;;;;;N;;;;; +1314F;EGYPTIAN HIEROGLYPH G013;Lo;0;L;;;;;N;;;;; +13150;EGYPTIAN HIEROGLYPH G014;Lo;0;L;;;;;N;;;;; +13151;EGYPTIAN HIEROGLYPH G015;Lo;0;L;;;;;N;;;;; +13152;EGYPTIAN HIEROGLYPH G016;Lo;0;L;;;;;N;;;;; +13153;EGYPTIAN HIEROGLYPH G017;Lo;0;L;;;;;N;;;;; +13154;EGYPTIAN HIEROGLYPH G018;Lo;0;L;;;;;N;;;;; +13155;EGYPTIAN HIEROGLYPH G019;Lo;0;L;;;;;N;;;;; +13156;EGYPTIAN HIEROGLYPH G020;Lo;0;L;;;;;N;;;;; +13157;EGYPTIAN HIEROGLYPH G020A;Lo;0;L;;;;;N;;;;; +13158;EGYPTIAN HIEROGLYPH G021;Lo;0;L;;;;;N;;;;; +13159;EGYPTIAN HIEROGLYPH G022;Lo;0;L;;;;;N;;;;; +1315A;EGYPTIAN HIEROGLYPH G023;Lo;0;L;;;;;N;;;;; +1315B;EGYPTIAN HIEROGLYPH G024;Lo;0;L;;;;;N;;;;; +1315C;EGYPTIAN HIEROGLYPH G025;Lo;0;L;;;;;N;;;;; +1315D;EGYPTIAN HIEROGLYPH G026;Lo;0;L;;;;;N;;;;; +1315E;EGYPTIAN HIEROGLYPH G026A;Lo;0;L;;;;;N;;;;; +1315F;EGYPTIAN HIEROGLYPH G027;Lo;0;L;;;;;N;;;;; +13160;EGYPTIAN HIEROGLYPH G028;Lo;0;L;;;;;N;;;;; +13161;EGYPTIAN HIEROGLYPH G029;Lo;0;L;;;;;N;;;;; +13162;EGYPTIAN HIEROGLYPH G030;Lo;0;L;;;;;N;;;;; +13163;EGYPTIAN HIEROGLYPH G031;Lo;0;L;;;;;N;;;;; +13164;EGYPTIAN HIEROGLYPH G032;Lo;0;L;;;;;N;;;;; +13165;EGYPTIAN HIEROGLYPH G033;Lo;0;L;;;;;N;;;;; +13166;EGYPTIAN HIEROGLYPH G034;Lo;0;L;;;;;N;;;;; +13167;EGYPTIAN HIEROGLYPH G035;Lo;0;L;;;;;N;;;;; +13168;EGYPTIAN HIEROGLYPH G036;Lo;0;L;;;;;N;;;;; +13169;EGYPTIAN HIEROGLYPH G036A;Lo;0;L;;;;;N;;;;; +1316A;EGYPTIAN HIEROGLYPH G037;Lo;0;L;;;;;N;;;;; +1316B;EGYPTIAN HIEROGLYPH G037A;Lo;0;L;;;;;N;;;;; +1316C;EGYPTIAN HIEROGLYPH G038;Lo;0;L;;;;;N;;;;; +1316D;EGYPTIAN HIEROGLYPH G039;Lo;0;L;;;;;N;;;;; +1316E;EGYPTIAN HIEROGLYPH G040;Lo;0;L;;;;;N;;;;; +1316F;EGYPTIAN HIEROGLYPH G041;Lo;0;L;;;;;N;;;;; +13170;EGYPTIAN HIEROGLYPH G042;Lo;0;L;;;;;N;;;;; +13171;EGYPTIAN HIEROGLYPH G043;Lo;0;L;;;;;N;;;;; +13172;EGYPTIAN HIEROGLYPH G043A;Lo;0;L;;;;;N;;;;; +13173;EGYPTIAN HIEROGLYPH G044;Lo;0;L;;;;;N;;;;; +13174;EGYPTIAN HIEROGLYPH G045;Lo;0;L;;;;;N;;;;; +13175;EGYPTIAN HIEROGLYPH G045A;Lo;0;L;;;;;N;;;;; +13176;EGYPTIAN HIEROGLYPH G046;Lo;0;L;;;;;N;;;;; +13177;EGYPTIAN HIEROGLYPH G047;Lo;0;L;;;;;N;;;;; +13178;EGYPTIAN HIEROGLYPH G048;Lo;0;L;;;;;N;;;;; +13179;EGYPTIAN HIEROGLYPH G049;Lo;0;L;;;;;N;;;;; +1317A;EGYPTIAN HIEROGLYPH G050;Lo;0;L;;;;;N;;;;; +1317B;EGYPTIAN HIEROGLYPH G051;Lo;0;L;;;;;N;;;;; +1317C;EGYPTIAN HIEROGLYPH G052;Lo;0;L;;;;;N;;;;; +1317D;EGYPTIAN HIEROGLYPH G053;Lo;0;L;;;;;N;;;;; +1317E;EGYPTIAN HIEROGLYPH G054;Lo;0;L;;;;;N;;;;; +1317F;EGYPTIAN HIEROGLYPH H001;Lo;0;L;;;;;N;;;;; +13180;EGYPTIAN HIEROGLYPH H002;Lo;0;L;;;;;N;;;;; +13181;EGYPTIAN HIEROGLYPH H003;Lo;0;L;;;;;N;;;;; +13182;EGYPTIAN HIEROGLYPH H004;Lo;0;L;;;;;N;;;;; +13183;EGYPTIAN HIEROGLYPH H005;Lo;0;L;;;;;N;;;;; +13184;EGYPTIAN HIEROGLYPH H006;Lo;0;L;;;;;N;;;;; +13185;EGYPTIAN HIEROGLYPH H006A;Lo;0;L;;;;;N;;;;; +13186;EGYPTIAN HIEROGLYPH H007;Lo;0;L;;;;;N;;;;; +13187;EGYPTIAN HIEROGLYPH H008;Lo;0;L;;;;;N;;;;; +13188;EGYPTIAN HIEROGLYPH I001;Lo;0;L;;;;;N;;;;; +13189;EGYPTIAN HIEROGLYPH I002;Lo;0;L;;;;;N;;;;; +1318A;EGYPTIAN HIEROGLYPH I003;Lo;0;L;;;;;N;;;;; +1318B;EGYPTIAN HIEROGLYPH I004;Lo;0;L;;;;;N;;;;; +1318C;EGYPTIAN HIEROGLYPH I005;Lo;0;L;;;;;N;;;;; +1318D;EGYPTIAN HIEROGLYPH I005A;Lo;0;L;;;;;N;;;;; +1318E;EGYPTIAN HIEROGLYPH I006;Lo;0;L;;;;;N;;;;; +1318F;EGYPTIAN HIEROGLYPH I007;Lo;0;L;;;;;N;;;;; +13190;EGYPTIAN HIEROGLYPH I008;Lo;0;L;;;;;N;;;;; +13191;EGYPTIAN HIEROGLYPH I009;Lo;0;L;;;;;N;;;;; +13192;EGYPTIAN HIEROGLYPH I009A;Lo;0;L;;;;;N;;;;; +13193;EGYPTIAN HIEROGLYPH I010;Lo;0;L;;;;;N;;;;; +13194;EGYPTIAN HIEROGLYPH I010A;Lo;0;L;;;;;N;;;;; +13195;EGYPTIAN HIEROGLYPH I011;Lo;0;L;;;;;N;;;;; +13196;EGYPTIAN HIEROGLYPH I011A;Lo;0;L;;;;;N;;;;; +13197;EGYPTIAN HIEROGLYPH I012;Lo;0;L;;;;;N;;;;; +13198;EGYPTIAN HIEROGLYPH I013;Lo;0;L;;;;;N;;;;; +13199;EGYPTIAN HIEROGLYPH I014;Lo;0;L;;;;;N;;;;; +1319A;EGYPTIAN HIEROGLYPH I015;Lo;0;L;;;;;N;;;;; +1319B;EGYPTIAN HIEROGLYPH K001;Lo;0;L;;;;;N;;;;; +1319C;EGYPTIAN HIEROGLYPH K002;Lo;0;L;;;;;N;;;;; +1319D;EGYPTIAN HIEROGLYPH K003;Lo;0;L;;;;;N;;;;; +1319E;EGYPTIAN HIEROGLYPH K004;Lo;0;L;;;;;N;;;;; +1319F;EGYPTIAN HIEROGLYPH K005;Lo;0;L;;;;;N;;;;; +131A0;EGYPTIAN HIEROGLYPH K006;Lo;0;L;;;;;N;;;;; +131A1;EGYPTIAN HIEROGLYPH K007;Lo;0;L;;;;;N;;;;; +131A2;EGYPTIAN HIEROGLYPH K008;Lo;0;L;;;;;N;;;;; +131A3;EGYPTIAN HIEROGLYPH L001;Lo;0;L;;;;;N;;;;; +131A4;EGYPTIAN HIEROGLYPH L002;Lo;0;L;;;;;N;;;;; +131A5;EGYPTIAN HIEROGLYPH L002A;Lo;0;L;;;;;N;;;;; +131A6;EGYPTIAN HIEROGLYPH L003;Lo;0;L;;;;;N;;;;; +131A7;EGYPTIAN HIEROGLYPH L004;Lo;0;L;;;;;N;;;;; +131A8;EGYPTIAN HIEROGLYPH L005;Lo;0;L;;;;;N;;;;; +131A9;EGYPTIAN HIEROGLYPH L006;Lo;0;L;;;;;N;;;;; +131AA;EGYPTIAN HIEROGLYPH L006A;Lo;0;L;;;;;N;;;;; +131AB;EGYPTIAN HIEROGLYPH L007;Lo;0;L;;;;;N;;;;; +131AC;EGYPTIAN HIEROGLYPH L008;Lo;0;L;;;;;N;;;;; +131AD;EGYPTIAN HIEROGLYPH M001;Lo;0;L;;;;;N;;;;; +131AE;EGYPTIAN HIEROGLYPH M001A;Lo;0;L;;;;;N;;;;; +131AF;EGYPTIAN HIEROGLYPH M001B;Lo;0;L;;;;;N;;;;; +131B0;EGYPTIAN HIEROGLYPH M002;Lo;0;L;;;;;N;;;;; +131B1;EGYPTIAN HIEROGLYPH M003;Lo;0;L;;;;;N;;;;; +131B2;EGYPTIAN HIEROGLYPH M003A;Lo;0;L;;;;;N;;;;; +131B3;EGYPTIAN HIEROGLYPH M004;Lo;0;L;;;;;N;;;;; +131B4;EGYPTIAN HIEROGLYPH M005;Lo;0;L;;;;;N;;;;; +131B5;EGYPTIAN HIEROGLYPH M006;Lo;0;L;;;;;N;;;;; +131B6;EGYPTIAN HIEROGLYPH M007;Lo;0;L;;;;;N;;;;; +131B7;EGYPTIAN HIEROGLYPH M008;Lo;0;L;;;;;N;;;;; +131B8;EGYPTIAN HIEROGLYPH M009;Lo;0;L;;;;;N;;;;; +131B9;EGYPTIAN HIEROGLYPH M010;Lo;0;L;;;;;N;;;;; +131BA;EGYPTIAN HIEROGLYPH M010A;Lo;0;L;;;;;N;;;;; +131BB;EGYPTIAN HIEROGLYPH M011;Lo;0;L;;;;;N;;;;; +131BC;EGYPTIAN HIEROGLYPH M012;Lo;0;L;;;;;N;;;;; +131BD;EGYPTIAN HIEROGLYPH M012A;Lo;0;L;;;;;N;;;;; +131BE;EGYPTIAN HIEROGLYPH M012B;Lo;0;L;;;;;N;;;;; +131BF;EGYPTIAN HIEROGLYPH M012C;Lo;0;L;;;;;N;;;;; +131C0;EGYPTIAN HIEROGLYPH M012D;Lo;0;L;;;;;N;;;;; +131C1;EGYPTIAN HIEROGLYPH M012E;Lo;0;L;;;;;N;;;;; +131C2;EGYPTIAN HIEROGLYPH M012F;Lo;0;L;;;;;N;;;;; +131C3;EGYPTIAN HIEROGLYPH M012G;Lo;0;L;;;;;N;;;;; +131C4;EGYPTIAN HIEROGLYPH M012H;Lo;0;L;;;;;N;;;;; +131C5;EGYPTIAN HIEROGLYPH M013;Lo;0;L;;;;;N;;;;; +131C6;EGYPTIAN HIEROGLYPH M014;Lo;0;L;;;;;N;;;;; +131C7;EGYPTIAN HIEROGLYPH M015;Lo;0;L;;;;;N;;;;; +131C8;EGYPTIAN HIEROGLYPH M015A;Lo;0;L;;;;;N;;;;; +131C9;EGYPTIAN HIEROGLYPH M016;Lo;0;L;;;;;N;;;;; +131CA;EGYPTIAN HIEROGLYPH M016A;Lo;0;L;;;;;N;;;;; +131CB;EGYPTIAN HIEROGLYPH M017;Lo;0;L;;;;;N;;;;; +131CC;EGYPTIAN HIEROGLYPH M017A;Lo;0;L;;;;;N;;;;; +131CD;EGYPTIAN HIEROGLYPH M018;Lo;0;L;;;;;N;;;;; +131CE;EGYPTIAN HIEROGLYPH M019;Lo;0;L;;;;;N;;;;; +131CF;EGYPTIAN HIEROGLYPH M020;Lo;0;L;;;;;N;;;;; +131D0;EGYPTIAN HIEROGLYPH M021;Lo;0;L;;;;;N;;;;; +131D1;EGYPTIAN HIEROGLYPH M022;Lo;0;L;;;;;N;;;;; +131D2;EGYPTIAN HIEROGLYPH M022A;Lo;0;L;;;;;N;;;;; +131D3;EGYPTIAN HIEROGLYPH M023;Lo;0;L;;;;;N;;;;; +131D4;EGYPTIAN HIEROGLYPH M024;Lo;0;L;;;;;N;;;;; +131D5;EGYPTIAN HIEROGLYPH M024A;Lo;0;L;;;;;N;;;;; +131D6;EGYPTIAN HIEROGLYPH M025;Lo;0;L;;;;;N;;;;; +131D7;EGYPTIAN HIEROGLYPH M026;Lo;0;L;;;;;N;;;;; +131D8;EGYPTIAN HIEROGLYPH M027;Lo;0;L;;;;;N;;;;; +131D9;EGYPTIAN HIEROGLYPH M028;Lo;0;L;;;;;N;;;;; +131DA;EGYPTIAN HIEROGLYPH M028A;Lo;0;L;;;;;N;;;;; +131DB;EGYPTIAN HIEROGLYPH M029;Lo;0;L;;;;;N;;;;; +131DC;EGYPTIAN HIEROGLYPH M030;Lo;0;L;;;;;N;;;;; +131DD;EGYPTIAN HIEROGLYPH M031;Lo;0;L;;;;;N;;;;; +131DE;EGYPTIAN HIEROGLYPH M031A;Lo;0;L;;;;;N;;;;; +131DF;EGYPTIAN HIEROGLYPH M032;Lo;0;L;;;;;N;;;;; +131E0;EGYPTIAN HIEROGLYPH M033;Lo;0;L;;;;;N;;;;; +131E1;EGYPTIAN HIEROGLYPH M033A;Lo;0;L;;;;;N;;;;; +131E2;EGYPTIAN HIEROGLYPH M033B;Lo;0;L;;;;;N;;;;; +131E3;EGYPTIAN HIEROGLYPH M034;Lo;0;L;;;;;N;;;;; +131E4;EGYPTIAN HIEROGLYPH M035;Lo;0;L;;;;;N;;;;; +131E5;EGYPTIAN HIEROGLYPH M036;Lo;0;L;;;;;N;;;;; +131E6;EGYPTIAN HIEROGLYPH M037;Lo;0;L;;;;;N;;;;; +131E7;EGYPTIAN HIEROGLYPH M038;Lo;0;L;;;;;N;;;;; +131E8;EGYPTIAN HIEROGLYPH M039;Lo;0;L;;;;;N;;;;; +131E9;EGYPTIAN HIEROGLYPH M040;Lo;0;L;;;;;N;;;;; +131EA;EGYPTIAN HIEROGLYPH M040A;Lo;0;L;;;;;N;;;;; +131EB;EGYPTIAN HIEROGLYPH M041;Lo;0;L;;;;;N;;;;; +131EC;EGYPTIAN HIEROGLYPH M042;Lo;0;L;;;;;N;;;;; +131ED;EGYPTIAN HIEROGLYPH M043;Lo;0;L;;;;;N;;;;; +131EE;EGYPTIAN HIEROGLYPH M044;Lo;0;L;;;;;N;;;;; +131EF;EGYPTIAN HIEROGLYPH N001;Lo;0;L;;;;;N;;;;; +131F0;EGYPTIAN HIEROGLYPH N002;Lo;0;L;;;;;N;;;;; +131F1;EGYPTIAN HIEROGLYPH N003;Lo;0;L;;;;;N;;;;; +131F2;EGYPTIAN HIEROGLYPH N004;Lo;0;L;;;;;N;;;;; +131F3;EGYPTIAN HIEROGLYPH N005;Lo;0;L;;;;;N;;;;; +131F4;EGYPTIAN HIEROGLYPH N006;Lo;0;L;;;;;N;;;;; +131F5;EGYPTIAN HIEROGLYPH N007;Lo;0;L;;;;;N;;;;; +131F6;EGYPTIAN HIEROGLYPH N008;Lo;0;L;;;;;N;;;;; +131F7;EGYPTIAN HIEROGLYPH N009;Lo;0;L;;;;;N;;;;; +131F8;EGYPTIAN HIEROGLYPH N010;Lo;0;L;;;;;N;;;;; +131F9;EGYPTIAN HIEROGLYPH N011;Lo;0;L;;;;;N;;;;; +131FA;EGYPTIAN HIEROGLYPH N012;Lo;0;L;;;;;N;;;;; +131FB;EGYPTIAN HIEROGLYPH N013;Lo;0;L;;;;;N;;;;; +131FC;EGYPTIAN HIEROGLYPH N014;Lo;0;L;;;;;N;;;;; +131FD;EGYPTIAN HIEROGLYPH N015;Lo;0;L;;;;;N;;;;; +131FE;EGYPTIAN HIEROGLYPH N016;Lo;0;L;;;;;N;;;;; +131FF;EGYPTIAN HIEROGLYPH N017;Lo;0;L;;;;;N;;;;; +13200;EGYPTIAN HIEROGLYPH N018;Lo;0;L;;;;;N;;;;; +13201;EGYPTIAN HIEROGLYPH N018A;Lo;0;L;;;;;N;;;;; +13202;EGYPTIAN HIEROGLYPH N018B;Lo;0;L;;;;;N;;;;; +13203;EGYPTIAN HIEROGLYPH N019;Lo;0;L;;;;;N;;;;; +13204;EGYPTIAN HIEROGLYPH N020;Lo;0;L;;;;;N;;;;; +13205;EGYPTIAN HIEROGLYPH N021;Lo;0;L;;;;;N;;;;; +13206;EGYPTIAN HIEROGLYPH N022;Lo;0;L;;;;;N;;;;; +13207;EGYPTIAN HIEROGLYPH N023;Lo;0;L;;;;;N;;;;; +13208;EGYPTIAN HIEROGLYPH N024;Lo;0;L;;;;;N;;;;; +13209;EGYPTIAN HIEROGLYPH N025;Lo;0;L;;;;;N;;;;; +1320A;EGYPTIAN HIEROGLYPH N025A;Lo;0;L;;;;;N;;;;; +1320B;EGYPTIAN HIEROGLYPH N026;Lo;0;L;;;;;N;;;;; +1320C;EGYPTIAN HIEROGLYPH N027;Lo;0;L;;;;;N;;;;; +1320D;EGYPTIAN HIEROGLYPH N028;Lo;0;L;;;;;N;;;;; +1320E;EGYPTIAN HIEROGLYPH N029;Lo;0;L;;;;;N;;;;; +1320F;EGYPTIAN HIEROGLYPH N030;Lo;0;L;;;;;N;;;;; +13210;EGYPTIAN HIEROGLYPH N031;Lo;0;L;;;;;N;;;;; +13211;EGYPTIAN HIEROGLYPH N032;Lo;0;L;;;;;N;;;;; +13212;EGYPTIAN HIEROGLYPH N033;Lo;0;L;;;;;N;;;;; +13213;EGYPTIAN HIEROGLYPH N033A;Lo;0;L;;;;;N;;;;; +13214;EGYPTIAN HIEROGLYPH N034;Lo;0;L;;;;;N;;;;; +13215;EGYPTIAN HIEROGLYPH N034A;Lo;0;L;;;;;N;;;;; +13216;EGYPTIAN HIEROGLYPH N035;Lo;0;L;;;;;N;;;;; +13217;EGYPTIAN HIEROGLYPH N035A;Lo;0;L;;;;;N;;;;; +13218;EGYPTIAN HIEROGLYPH N036;Lo;0;L;;;;;N;;;;; +13219;EGYPTIAN HIEROGLYPH N037;Lo;0;L;;;;;N;;;;; +1321A;EGYPTIAN HIEROGLYPH N037A;Lo;0;L;;;;;N;;;;; +1321B;EGYPTIAN HIEROGLYPH N038;Lo;0;L;;;;;N;;;;; +1321C;EGYPTIAN HIEROGLYPH N039;Lo;0;L;;;;;N;;;;; +1321D;EGYPTIAN HIEROGLYPH N040;Lo;0;L;;;;;N;;;;; +1321E;EGYPTIAN HIEROGLYPH N041;Lo;0;L;;;;;N;;;;; +1321F;EGYPTIAN HIEROGLYPH N042;Lo;0;L;;;;;N;;;;; +13220;EGYPTIAN HIEROGLYPH NL001;Lo;0;L;;;;;N;;;;; +13221;EGYPTIAN HIEROGLYPH NL002;Lo;0;L;;;;;N;;;;; +13222;EGYPTIAN HIEROGLYPH NL003;Lo;0;L;;;;;N;;;;; +13223;EGYPTIAN HIEROGLYPH NL004;Lo;0;L;;;;;N;;;;; +13224;EGYPTIAN HIEROGLYPH NL005;Lo;0;L;;;;;N;;;;; +13225;EGYPTIAN HIEROGLYPH NL005A;Lo;0;L;;;;;N;;;;; +13226;EGYPTIAN HIEROGLYPH NL006;Lo;0;L;;;;;N;;;;; +13227;EGYPTIAN HIEROGLYPH NL007;Lo;0;L;;;;;N;;;;; +13228;EGYPTIAN HIEROGLYPH NL008;Lo;0;L;;;;;N;;;;; +13229;EGYPTIAN HIEROGLYPH NL009;Lo;0;L;;;;;N;;;;; +1322A;EGYPTIAN HIEROGLYPH NL010;Lo;0;L;;;;;N;;;;; +1322B;EGYPTIAN HIEROGLYPH NL011;Lo;0;L;;;;;N;;;;; +1322C;EGYPTIAN HIEROGLYPH NL012;Lo;0;L;;;;;N;;;;; +1322D;EGYPTIAN HIEROGLYPH NL013;Lo;0;L;;;;;N;;;;; +1322E;EGYPTIAN HIEROGLYPH NL014;Lo;0;L;;;;;N;;;;; +1322F;EGYPTIAN HIEROGLYPH NL015;Lo;0;L;;;;;N;;;;; +13230;EGYPTIAN HIEROGLYPH NL016;Lo;0;L;;;;;N;;;;; +13231;EGYPTIAN HIEROGLYPH NL017;Lo;0;L;;;;;N;;;;; +13232;EGYPTIAN HIEROGLYPH NL017A;Lo;0;L;;;;;N;;;;; +13233;EGYPTIAN HIEROGLYPH NL018;Lo;0;L;;;;;N;;;;; +13234;EGYPTIAN HIEROGLYPH NL019;Lo;0;L;;;;;N;;;;; +13235;EGYPTIAN HIEROGLYPH NL020;Lo;0;L;;;;;N;;;;; +13236;EGYPTIAN HIEROGLYPH NU001;Lo;0;L;;;;;N;;;;; +13237;EGYPTIAN HIEROGLYPH NU002;Lo;0;L;;;;;N;;;;; +13238;EGYPTIAN HIEROGLYPH NU003;Lo;0;L;;;;;N;;;;; +13239;EGYPTIAN HIEROGLYPH NU004;Lo;0;L;;;;;N;;;;; +1323A;EGYPTIAN HIEROGLYPH NU005;Lo;0;L;;;;;N;;;;; +1323B;EGYPTIAN HIEROGLYPH NU006;Lo;0;L;;;;;N;;;;; +1323C;EGYPTIAN HIEROGLYPH NU007;Lo;0;L;;;;;N;;;;; +1323D;EGYPTIAN HIEROGLYPH NU008;Lo;0;L;;;;;N;;;;; +1323E;EGYPTIAN HIEROGLYPH NU009;Lo;0;L;;;;;N;;;;; +1323F;EGYPTIAN HIEROGLYPH NU010;Lo;0;L;;;;;N;;;;; +13240;EGYPTIAN HIEROGLYPH NU010A;Lo;0;L;;;;;N;;;;; +13241;EGYPTIAN HIEROGLYPH NU011;Lo;0;L;;;;;N;;;;; +13242;EGYPTIAN HIEROGLYPH NU011A;Lo;0;L;;;;;N;;;;; +13243;EGYPTIAN HIEROGLYPH NU012;Lo;0;L;;;;;N;;;;; +13244;EGYPTIAN HIEROGLYPH NU013;Lo;0;L;;;;;N;;;;; +13245;EGYPTIAN HIEROGLYPH NU014;Lo;0;L;;;;;N;;;;; +13246;EGYPTIAN HIEROGLYPH NU015;Lo;0;L;;;;;N;;;;; +13247;EGYPTIAN HIEROGLYPH NU016;Lo;0;L;;;;;N;;;;; +13248;EGYPTIAN HIEROGLYPH NU017;Lo;0;L;;;;;N;;;;; +13249;EGYPTIAN HIEROGLYPH NU018;Lo;0;L;;;;;N;;;;; +1324A;EGYPTIAN HIEROGLYPH NU018A;Lo;0;L;;;;;N;;;;; +1324B;EGYPTIAN HIEROGLYPH NU019;Lo;0;L;;;;;N;;;;; +1324C;EGYPTIAN HIEROGLYPH NU020;Lo;0;L;;;;;N;;;;; +1324D;EGYPTIAN HIEROGLYPH NU021;Lo;0;L;;;;;N;;;;; +1324E;EGYPTIAN HIEROGLYPH NU022;Lo;0;L;;;;;N;;;;; +1324F;EGYPTIAN HIEROGLYPH NU022A;Lo;0;L;;;;;N;;;;; +13250;EGYPTIAN HIEROGLYPH O001;Lo;0;L;;;;;N;;;;; +13251;EGYPTIAN HIEROGLYPH O001A;Lo;0;L;;;;;N;;;;; +13252;EGYPTIAN HIEROGLYPH O002;Lo;0;L;;;;;N;;;;; +13253;EGYPTIAN HIEROGLYPH O003;Lo;0;L;;;;;N;;;;; +13254;EGYPTIAN HIEROGLYPH O004;Lo;0;L;;;;;N;;;;; +13255;EGYPTIAN HIEROGLYPH O005;Lo;0;L;;;;;N;;;;; +13256;EGYPTIAN HIEROGLYPH O005A;Lo;0;L;;;;;N;;;;; +13257;EGYPTIAN HIEROGLYPH O006;Lo;0;L;;;;;N;;;;; +13258;EGYPTIAN HIEROGLYPH O006A;Lo;0;L;;;;;N;;;;; +13259;EGYPTIAN HIEROGLYPH O006B;Lo;0;L;;;;;N;;;;; +1325A;EGYPTIAN HIEROGLYPH O006C;Lo;0;L;;;;;N;;;;; +1325B;EGYPTIAN HIEROGLYPH O006D;Lo;0;L;;;;;N;;;;; +1325C;EGYPTIAN HIEROGLYPH O006E;Lo;0;L;;;;;N;;;;; +1325D;EGYPTIAN HIEROGLYPH O006F;Lo;0;L;;;;;N;;;;; +1325E;EGYPTIAN HIEROGLYPH O007;Lo;0;L;;;;;N;;;;; +1325F;EGYPTIAN HIEROGLYPH O008;Lo;0;L;;;;;N;;;;; +13260;EGYPTIAN HIEROGLYPH O009;Lo;0;L;;;;;N;;;;; +13261;EGYPTIAN HIEROGLYPH O010;Lo;0;L;;;;;N;;;;; +13262;EGYPTIAN HIEROGLYPH O010A;Lo;0;L;;;;;N;;;;; +13263;EGYPTIAN HIEROGLYPH O010B;Lo;0;L;;;;;N;;;;; +13264;EGYPTIAN HIEROGLYPH O010C;Lo;0;L;;;;;N;;;;; +13265;EGYPTIAN HIEROGLYPH O011;Lo;0;L;;;;;N;;;;; +13266;EGYPTIAN HIEROGLYPH O012;Lo;0;L;;;;;N;;;;; +13267;EGYPTIAN HIEROGLYPH O013;Lo;0;L;;;;;N;;;;; +13268;EGYPTIAN HIEROGLYPH O014;Lo;0;L;;;;;N;;;;; +13269;EGYPTIAN HIEROGLYPH O015;Lo;0;L;;;;;N;;;;; +1326A;EGYPTIAN HIEROGLYPH O016;Lo;0;L;;;;;N;;;;; +1326B;EGYPTIAN HIEROGLYPH O017;Lo;0;L;;;;;N;;;;; +1326C;EGYPTIAN HIEROGLYPH O018;Lo;0;L;;;;;N;;;;; +1326D;EGYPTIAN HIEROGLYPH O019;Lo;0;L;;;;;N;;;;; +1326E;EGYPTIAN HIEROGLYPH O019A;Lo;0;L;;;;;N;;;;; +1326F;EGYPTIAN HIEROGLYPH O020;Lo;0;L;;;;;N;;;;; +13270;EGYPTIAN HIEROGLYPH O020A;Lo;0;L;;;;;N;;;;; +13271;EGYPTIAN HIEROGLYPH O021;Lo;0;L;;;;;N;;;;; +13272;EGYPTIAN HIEROGLYPH O022;Lo;0;L;;;;;N;;;;; +13273;EGYPTIAN HIEROGLYPH O023;Lo;0;L;;;;;N;;;;; +13274;EGYPTIAN HIEROGLYPH O024;Lo;0;L;;;;;N;;;;; +13275;EGYPTIAN HIEROGLYPH O024A;Lo;0;L;;;;;N;;;;; +13276;EGYPTIAN HIEROGLYPH O025;Lo;0;L;;;;;N;;;;; +13277;EGYPTIAN HIEROGLYPH O025A;Lo;0;L;;;;;N;;;;; +13278;EGYPTIAN HIEROGLYPH O026;Lo;0;L;;;;;N;;;;; +13279;EGYPTIAN HIEROGLYPH O027;Lo;0;L;;;;;N;;;;; +1327A;EGYPTIAN HIEROGLYPH O028;Lo;0;L;;;;;N;;;;; +1327B;EGYPTIAN HIEROGLYPH O029;Lo;0;L;;;;;N;;;;; +1327C;EGYPTIAN HIEROGLYPH O029A;Lo;0;L;;;;;N;;;;; +1327D;EGYPTIAN HIEROGLYPH O030;Lo;0;L;;;;;N;;;;; +1327E;EGYPTIAN HIEROGLYPH O030A;Lo;0;L;;;;;N;;;;; +1327F;EGYPTIAN HIEROGLYPH O031;Lo;0;L;;;;;N;;;;; +13280;EGYPTIAN HIEROGLYPH O032;Lo;0;L;;;;;N;;;;; +13281;EGYPTIAN HIEROGLYPH O033;Lo;0;L;;;;;N;;;;; +13282;EGYPTIAN HIEROGLYPH O033A;Lo;0;L;;;;;N;;;;; +13283;EGYPTIAN HIEROGLYPH O034;Lo;0;L;;;;;N;;;;; +13284;EGYPTIAN HIEROGLYPH O035;Lo;0;L;;;;;N;;;;; +13285;EGYPTIAN HIEROGLYPH O036;Lo;0;L;;;;;N;;;;; +13286;EGYPTIAN HIEROGLYPH O036A;Lo;0;L;;;;;N;;;;; +13287;EGYPTIAN HIEROGLYPH O036B;Lo;0;L;;;;;N;;;;; +13288;EGYPTIAN HIEROGLYPH O036C;Lo;0;L;;;;;N;;;;; +13289;EGYPTIAN HIEROGLYPH O036D;Lo;0;L;;;;;N;;;;; +1328A;EGYPTIAN HIEROGLYPH O037;Lo;0;L;;;;;N;;;;; +1328B;EGYPTIAN HIEROGLYPH O038;Lo;0;L;;;;;N;;;;; +1328C;EGYPTIAN HIEROGLYPH O039;Lo;0;L;;;;;N;;;;; +1328D;EGYPTIAN HIEROGLYPH O040;Lo;0;L;;;;;N;;;;; +1328E;EGYPTIAN HIEROGLYPH O041;Lo;0;L;;;;;N;;;;; +1328F;EGYPTIAN HIEROGLYPH O042;Lo;0;L;;;;;N;;;;; +13290;EGYPTIAN HIEROGLYPH O043;Lo;0;L;;;;;N;;;;; +13291;EGYPTIAN HIEROGLYPH O044;Lo;0;L;;;;;N;;;;; +13292;EGYPTIAN HIEROGLYPH O045;Lo;0;L;;;;;N;;;;; +13293;EGYPTIAN HIEROGLYPH O046;Lo;0;L;;;;;N;;;;; +13294;EGYPTIAN HIEROGLYPH O047;Lo;0;L;;;;;N;;;;; +13295;EGYPTIAN HIEROGLYPH O048;Lo;0;L;;;;;N;;;;; +13296;EGYPTIAN HIEROGLYPH O049;Lo;0;L;;;;;N;;;;; +13297;EGYPTIAN HIEROGLYPH O050;Lo;0;L;;;;;N;;;;; +13298;EGYPTIAN HIEROGLYPH O050A;Lo;0;L;;;;;N;;;;; +13299;EGYPTIAN HIEROGLYPH O050B;Lo;0;L;;;;;N;;;;; +1329A;EGYPTIAN HIEROGLYPH O051;Lo;0;L;;;;;N;;;;; +1329B;EGYPTIAN HIEROGLYPH P001;Lo;0;L;;;;;N;;;;; +1329C;EGYPTIAN HIEROGLYPH P001A;Lo;0;L;;;;;N;;;;; +1329D;EGYPTIAN HIEROGLYPH P002;Lo;0;L;;;;;N;;;;; +1329E;EGYPTIAN HIEROGLYPH P003;Lo;0;L;;;;;N;;;;; +1329F;EGYPTIAN HIEROGLYPH P003A;Lo;0;L;;;;;N;;;;; +132A0;EGYPTIAN HIEROGLYPH P004;Lo;0;L;;;;;N;;;;; +132A1;EGYPTIAN HIEROGLYPH P005;Lo;0;L;;;;;N;;;;; +132A2;EGYPTIAN HIEROGLYPH P006;Lo;0;L;;;;;N;;;;; +132A3;EGYPTIAN HIEROGLYPH P007;Lo;0;L;;;;;N;;;;; +132A4;EGYPTIAN HIEROGLYPH P008;Lo;0;L;;;;;N;;;;; +132A5;EGYPTIAN HIEROGLYPH P009;Lo;0;L;;;;;N;;;;; +132A6;EGYPTIAN HIEROGLYPH P010;Lo;0;L;;;;;N;;;;; +132A7;EGYPTIAN HIEROGLYPH P011;Lo;0;L;;;;;N;;;;; +132A8;EGYPTIAN HIEROGLYPH Q001;Lo;0;L;;;;;N;;;;; +132A9;EGYPTIAN HIEROGLYPH Q002;Lo;0;L;;;;;N;;;;; +132AA;EGYPTIAN HIEROGLYPH Q003;Lo;0;L;;;;;N;;;;; +132AB;EGYPTIAN HIEROGLYPH Q004;Lo;0;L;;;;;N;;;;; +132AC;EGYPTIAN HIEROGLYPH Q005;Lo;0;L;;;;;N;;;;; +132AD;EGYPTIAN HIEROGLYPH Q006;Lo;0;L;;;;;N;;;;; +132AE;EGYPTIAN HIEROGLYPH Q007;Lo;0;L;;;;;N;;;;; +132AF;EGYPTIAN HIEROGLYPH R001;Lo;0;L;;;;;N;;;;; +132B0;EGYPTIAN HIEROGLYPH R002;Lo;0;L;;;;;N;;;;; +132B1;EGYPTIAN HIEROGLYPH R002A;Lo;0;L;;;;;N;;;;; +132B2;EGYPTIAN HIEROGLYPH R003;Lo;0;L;;;;;N;;;;; +132B3;EGYPTIAN HIEROGLYPH R003A;Lo;0;L;;;;;N;;;;; +132B4;EGYPTIAN HIEROGLYPH R003B;Lo;0;L;;;;;N;;;;; +132B5;EGYPTIAN HIEROGLYPH R004;Lo;0;L;;;;;N;;;;; +132B6;EGYPTIAN HIEROGLYPH R005;Lo;0;L;;;;;N;;;;; +132B7;EGYPTIAN HIEROGLYPH R006;Lo;0;L;;;;;N;;;;; +132B8;EGYPTIAN HIEROGLYPH R007;Lo;0;L;;;;;N;;;;; +132B9;EGYPTIAN HIEROGLYPH R008;Lo;0;L;;;;;N;;;;; +132BA;EGYPTIAN HIEROGLYPH R009;Lo;0;L;;;;;N;;;;; +132BB;EGYPTIAN HIEROGLYPH R010;Lo;0;L;;;;;N;;;;; +132BC;EGYPTIAN HIEROGLYPH R010A;Lo;0;L;;;;;N;;;;; +132BD;EGYPTIAN HIEROGLYPH R011;Lo;0;L;;;;;N;;;;; +132BE;EGYPTIAN HIEROGLYPH R012;Lo;0;L;;;;;N;;;;; +132BF;EGYPTIAN HIEROGLYPH R013;Lo;0;L;;;;;N;;;;; +132C0;EGYPTIAN HIEROGLYPH R014;Lo;0;L;;;;;N;;;;; +132C1;EGYPTIAN HIEROGLYPH R015;Lo;0;L;;;;;N;;;;; +132C2;EGYPTIAN HIEROGLYPH R016;Lo;0;L;;;;;N;;;;; +132C3;EGYPTIAN HIEROGLYPH R016A;Lo;0;L;;;;;N;;;;; +132C4;EGYPTIAN HIEROGLYPH R017;Lo;0;L;;;;;N;;;;; +132C5;EGYPTIAN HIEROGLYPH R018;Lo;0;L;;;;;N;;;;; +132C6;EGYPTIAN HIEROGLYPH R019;Lo;0;L;;;;;N;;;;; +132C7;EGYPTIAN HIEROGLYPH R020;Lo;0;L;;;;;N;;;;; +132C8;EGYPTIAN HIEROGLYPH R021;Lo;0;L;;;;;N;;;;; +132C9;EGYPTIAN HIEROGLYPH R022;Lo;0;L;;;;;N;;;;; +132CA;EGYPTIAN HIEROGLYPH R023;Lo;0;L;;;;;N;;;;; +132CB;EGYPTIAN HIEROGLYPH R024;Lo;0;L;;;;;N;;;;; +132CC;EGYPTIAN HIEROGLYPH R025;Lo;0;L;;;;;N;;;;; +132CD;EGYPTIAN HIEROGLYPH R026;Lo;0;L;;;;;N;;;;; +132CE;EGYPTIAN HIEROGLYPH R027;Lo;0;L;;;;;N;;;;; +132CF;EGYPTIAN HIEROGLYPH R028;Lo;0;L;;;;;N;;;;; +132D0;EGYPTIAN HIEROGLYPH R029;Lo;0;L;;;;;N;;;;; +132D1;EGYPTIAN HIEROGLYPH S001;Lo;0;L;;;;;N;;;;; +132D2;EGYPTIAN HIEROGLYPH S002;Lo;0;L;;;;;N;;;;; +132D3;EGYPTIAN HIEROGLYPH S002A;Lo;0;L;;;;;N;;;;; +132D4;EGYPTIAN HIEROGLYPH S003;Lo;0;L;;;;;N;;;;; +132D5;EGYPTIAN HIEROGLYPH S004;Lo;0;L;;;;;N;;;;; +132D6;EGYPTIAN HIEROGLYPH S005;Lo;0;L;;;;;N;;;;; +132D7;EGYPTIAN HIEROGLYPH S006;Lo;0;L;;;;;N;;;;; +132D8;EGYPTIAN HIEROGLYPH S006A;Lo;0;L;;;;;N;;;;; +132D9;EGYPTIAN HIEROGLYPH S007;Lo;0;L;;;;;N;;;;; +132DA;EGYPTIAN HIEROGLYPH S008;Lo;0;L;;;;;N;;;;; +132DB;EGYPTIAN HIEROGLYPH S009;Lo;0;L;;;;;N;;;;; +132DC;EGYPTIAN HIEROGLYPH S010;Lo;0;L;;;;;N;;;;; +132DD;EGYPTIAN HIEROGLYPH S011;Lo;0;L;;;;;N;;;;; +132DE;EGYPTIAN HIEROGLYPH S012;Lo;0;L;;;;;N;;;;; +132DF;EGYPTIAN HIEROGLYPH S013;Lo;0;L;;;;;N;;;;; +132E0;EGYPTIAN HIEROGLYPH S014;Lo;0;L;;;;;N;;;;; +132E1;EGYPTIAN HIEROGLYPH S014A;Lo;0;L;;;;;N;;;;; +132E2;EGYPTIAN HIEROGLYPH S014B;Lo;0;L;;;;;N;;;;; +132E3;EGYPTIAN HIEROGLYPH S015;Lo;0;L;;;;;N;;;;; +132E4;EGYPTIAN HIEROGLYPH S016;Lo;0;L;;;;;N;;;;; +132E5;EGYPTIAN HIEROGLYPH S017;Lo;0;L;;;;;N;;;;; +132E6;EGYPTIAN HIEROGLYPH S017A;Lo;0;L;;;;;N;;;;; +132E7;EGYPTIAN HIEROGLYPH S018;Lo;0;L;;;;;N;;;;; +132E8;EGYPTIAN HIEROGLYPH S019;Lo;0;L;;;;;N;;;;; +132E9;EGYPTIAN HIEROGLYPH S020;Lo;0;L;;;;;N;;;;; +132EA;EGYPTIAN HIEROGLYPH S021;Lo;0;L;;;;;N;;;;; +132EB;EGYPTIAN HIEROGLYPH S022;Lo;0;L;;;;;N;;;;; +132EC;EGYPTIAN HIEROGLYPH S023;Lo;0;L;;;;;N;;;;; +132ED;EGYPTIAN HIEROGLYPH S024;Lo;0;L;;;;;N;;;;; +132EE;EGYPTIAN HIEROGLYPH S025;Lo;0;L;;;;;N;;;;; +132EF;EGYPTIAN HIEROGLYPH S026;Lo;0;L;;;;;N;;;;; +132F0;EGYPTIAN HIEROGLYPH S026A;Lo;0;L;;;;;N;;;;; +132F1;EGYPTIAN HIEROGLYPH S026B;Lo;0;L;;;;;N;;;;; +132F2;EGYPTIAN HIEROGLYPH S027;Lo;0;L;;;;;N;;;;; +132F3;EGYPTIAN HIEROGLYPH S028;Lo;0;L;;;;;N;;;;; +132F4;EGYPTIAN HIEROGLYPH S029;Lo;0;L;;;;;N;;;;; +132F5;EGYPTIAN HIEROGLYPH S030;Lo;0;L;;;;;N;;;;; +132F6;EGYPTIAN HIEROGLYPH S031;Lo;0;L;;;;;N;;;;; +132F7;EGYPTIAN HIEROGLYPH S032;Lo;0;L;;;;;N;;;;; +132F8;EGYPTIAN HIEROGLYPH S033;Lo;0;L;;;;;N;;;;; +132F9;EGYPTIAN HIEROGLYPH S034;Lo;0;L;;;;;N;;;;; +132FA;EGYPTIAN HIEROGLYPH S035;Lo;0;L;;;;;N;;;;; +132FB;EGYPTIAN HIEROGLYPH S035A;Lo;0;L;;;;;N;;;;; +132FC;EGYPTIAN HIEROGLYPH S036;Lo;0;L;;;;;N;;;;; +132FD;EGYPTIAN HIEROGLYPH S037;Lo;0;L;;;;;N;;;;; +132FE;EGYPTIAN HIEROGLYPH S038;Lo;0;L;;;;;N;;;;; +132FF;EGYPTIAN HIEROGLYPH S039;Lo;0;L;;;;;N;;;;; +13300;EGYPTIAN HIEROGLYPH S040;Lo;0;L;;;;;N;;;;; +13301;EGYPTIAN HIEROGLYPH S041;Lo;0;L;;;;;N;;;;; +13302;EGYPTIAN HIEROGLYPH S042;Lo;0;L;;;;;N;;;;; +13303;EGYPTIAN HIEROGLYPH S043;Lo;0;L;;;;;N;;;;; +13304;EGYPTIAN HIEROGLYPH S044;Lo;0;L;;;;;N;;;;; +13305;EGYPTIAN HIEROGLYPH S045;Lo;0;L;;;;;N;;;;; +13306;EGYPTIAN HIEROGLYPH S046;Lo;0;L;;;;;N;;;;; +13307;EGYPTIAN HIEROGLYPH T001;Lo;0;L;;;;;N;;;;; +13308;EGYPTIAN HIEROGLYPH T002;Lo;0;L;;;;;N;;;;; +13309;EGYPTIAN HIEROGLYPH T003;Lo;0;L;;;;;N;;;;; +1330A;EGYPTIAN HIEROGLYPH T003A;Lo;0;L;;;;;N;;;;; +1330B;EGYPTIAN HIEROGLYPH T004;Lo;0;L;;;;;N;;;;; +1330C;EGYPTIAN HIEROGLYPH T005;Lo;0;L;;;;;N;;;;; +1330D;EGYPTIAN HIEROGLYPH T006;Lo;0;L;;;;;N;;;;; +1330E;EGYPTIAN HIEROGLYPH T007;Lo;0;L;;;;;N;;;;; +1330F;EGYPTIAN HIEROGLYPH T007A;Lo;0;L;;;;;N;;;;; +13310;EGYPTIAN HIEROGLYPH T008;Lo;0;L;;;;;N;;;;; +13311;EGYPTIAN HIEROGLYPH T008A;Lo;0;L;;;;;N;;;;; +13312;EGYPTIAN HIEROGLYPH T009;Lo;0;L;;;;;N;;;;; +13313;EGYPTIAN HIEROGLYPH T009A;Lo;0;L;;;;;N;;;;; +13314;EGYPTIAN HIEROGLYPH T010;Lo;0;L;;;;;N;;;;; +13315;EGYPTIAN HIEROGLYPH T011;Lo;0;L;;;;;N;;;;; +13316;EGYPTIAN HIEROGLYPH T011A;Lo;0;L;;;;;N;;;;; +13317;EGYPTIAN HIEROGLYPH T012;Lo;0;L;;;;;N;;;;; +13318;EGYPTIAN HIEROGLYPH T013;Lo;0;L;;;;;N;;;;; +13319;EGYPTIAN HIEROGLYPH T014;Lo;0;L;;;;;N;;;;; +1331A;EGYPTIAN HIEROGLYPH T015;Lo;0;L;;;;;N;;;;; +1331B;EGYPTIAN HIEROGLYPH T016;Lo;0;L;;;;;N;;;;; +1331C;EGYPTIAN HIEROGLYPH T016A;Lo;0;L;;;;;N;;;;; +1331D;EGYPTIAN HIEROGLYPH T017;Lo;0;L;;;;;N;;;;; +1331E;EGYPTIAN HIEROGLYPH T018;Lo;0;L;;;;;N;;;;; +1331F;EGYPTIAN HIEROGLYPH T019;Lo;0;L;;;;;N;;;;; +13320;EGYPTIAN HIEROGLYPH T020;Lo;0;L;;;;;N;;;;; +13321;EGYPTIAN HIEROGLYPH T021;Lo;0;L;;;;;N;;;;; +13322;EGYPTIAN HIEROGLYPH T022;Lo;0;L;;;;;N;;;;; +13323;EGYPTIAN HIEROGLYPH T023;Lo;0;L;;;;;N;;;;; +13324;EGYPTIAN HIEROGLYPH T024;Lo;0;L;;;;;N;;;;; +13325;EGYPTIAN HIEROGLYPH T025;Lo;0;L;;;;;N;;;;; +13326;EGYPTIAN HIEROGLYPH T026;Lo;0;L;;;;;N;;;;; +13327;EGYPTIAN HIEROGLYPH T027;Lo;0;L;;;;;N;;;;; +13328;EGYPTIAN HIEROGLYPH T028;Lo;0;L;;;;;N;;;;; +13329;EGYPTIAN HIEROGLYPH T029;Lo;0;L;;;;;N;;;;; +1332A;EGYPTIAN HIEROGLYPH T030;Lo;0;L;;;;;N;;;;; +1332B;EGYPTIAN HIEROGLYPH T031;Lo;0;L;;;;;N;;;;; +1332C;EGYPTIAN HIEROGLYPH T032;Lo;0;L;;;;;N;;;;; +1332D;EGYPTIAN HIEROGLYPH T032A;Lo;0;L;;;;;N;;;;; +1332E;EGYPTIAN HIEROGLYPH T033;Lo;0;L;;;;;N;;;;; +1332F;EGYPTIAN HIEROGLYPH T033A;Lo;0;L;;;;;N;;;;; +13330;EGYPTIAN HIEROGLYPH T034;Lo;0;L;;;;;N;;;;; +13331;EGYPTIAN HIEROGLYPH T035;Lo;0;L;;;;;N;;;;; +13332;EGYPTIAN HIEROGLYPH T036;Lo;0;L;;;;;N;;;;; +13333;EGYPTIAN HIEROGLYPH U001;Lo;0;L;;;;;N;;;;; +13334;EGYPTIAN HIEROGLYPH U002;Lo;0;L;;;;;N;;;;; +13335;EGYPTIAN HIEROGLYPH U003;Lo;0;L;;;;;N;;;;; +13336;EGYPTIAN HIEROGLYPH U004;Lo;0;L;;;;;N;;;;; +13337;EGYPTIAN HIEROGLYPH U005;Lo;0;L;;;;;N;;;;; +13338;EGYPTIAN HIEROGLYPH U006;Lo;0;L;;;;;N;;;;; +13339;EGYPTIAN HIEROGLYPH U006A;Lo;0;L;;;;;N;;;;; +1333A;EGYPTIAN HIEROGLYPH U006B;Lo;0;L;;;;;N;;;;; +1333B;EGYPTIAN HIEROGLYPH U007;Lo;0;L;;;;;N;;;;; +1333C;EGYPTIAN HIEROGLYPH U008;Lo;0;L;;;;;N;;;;; +1333D;EGYPTIAN HIEROGLYPH U009;Lo;0;L;;;;;N;;;;; +1333E;EGYPTIAN HIEROGLYPH U010;Lo;0;L;;;;;N;;;;; +1333F;EGYPTIAN HIEROGLYPH U011;Lo;0;L;;;;;N;;;;; +13340;EGYPTIAN HIEROGLYPH U012;Lo;0;L;;;;;N;;;;; +13341;EGYPTIAN HIEROGLYPH U013;Lo;0;L;;;;;N;;;;; +13342;EGYPTIAN HIEROGLYPH U014;Lo;0;L;;;;;N;;;;; +13343;EGYPTIAN HIEROGLYPH U015;Lo;0;L;;;;;N;;;;; +13344;EGYPTIAN HIEROGLYPH U016;Lo;0;L;;;;;N;;;;; +13345;EGYPTIAN HIEROGLYPH U017;Lo;0;L;;;;;N;;;;; +13346;EGYPTIAN HIEROGLYPH U018;Lo;0;L;;;;;N;;;;; +13347;EGYPTIAN HIEROGLYPH U019;Lo;0;L;;;;;N;;;;; +13348;EGYPTIAN HIEROGLYPH U020;Lo;0;L;;;;;N;;;;; +13349;EGYPTIAN HIEROGLYPH U021;Lo;0;L;;;;;N;;;;; +1334A;EGYPTIAN HIEROGLYPH U022;Lo;0;L;;;;;N;;;;; +1334B;EGYPTIAN HIEROGLYPH U023;Lo;0;L;;;;;N;;;;; +1334C;EGYPTIAN HIEROGLYPH U023A;Lo;0;L;;;;;N;;;;; +1334D;EGYPTIAN HIEROGLYPH U024;Lo;0;L;;;;;N;;;;; +1334E;EGYPTIAN HIEROGLYPH U025;Lo;0;L;;;;;N;;;;; +1334F;EGYPTIAN HIEROGLYPH U026;Lo;0;L;;;;;N;;;;; +13350;EGYPTIAN HIEROGLYPH U027;Lo;0;L;;;;;N;;;;; +13351;EGYPTIAN HIEROGLYPH U028;Lo;0;L;;;;;N;;;;; +13352;EGYPTIAN HIEROGLYPH U029;Lo;0;L;;;;;N;;;;; +13353;EGYPTIAN HIEROGLYPH U029A;Lo;0;L;;;;;N;;;;; +13354;EGYPTIAN HIEROGLYPH U030;Lo;0;L;;;;;N;;;;; +13355;EGYPTIAN HIEROGLYPH U031;Lo;0;L;;;;;N;;;;; +13356;EGYPTIAN HIEROGLYPH U032;Lo;0;L;;;;;N;;;;; +13357;EGYPTIAN HIEROGLYPH U032A;Lo;0;L;;;;;N;;;;; +13358;EGYPTIAN HIEROGLYPH U033;Lo;0;L;;;;;N;;;;; +13359;EGYPTIAN HIEROGLYPH U034;Lo;0;L;;;;;N;;;;; +1335A;EGYPTIAN HIEROGLYPH U035;Lo;0;L;;;;;N;;;;; +1335B;EGYPTIAN HIEROGLYPH U036;Lo;0;L;;;;;N;;;;; +1335C;EGYPTIAN HIEROGLYPH U037;Lo;0;L;;;;;N;;;;; +1335D;EGYPTIAN HIEROGLYPH U038;Lo;0;L;;;;;N;;;;; +1335E;EGYPTIAN HIEROGLYPH U039;Lo;0;L;;;;;N;;;;; +1335F;EGYPTIAN HIEROGLYPH U040;Lo;0;L;;;;;N;;;;; +13360;EGYPTIAN HIEROGLYPH U041;Lo;0;L;;;;;N;;;;; +13361;EGYPTIAN HIEROGLYPH U042;Lo;0;L;;;;;N;;;;; +13362;EGYPTIAN HIEROGLYPH V001;Lo;0;L;;;;;N;;;;; +13363;EGYPTIAN HIEROGLYPH V001A;Lo;0;L;;;;;N;;;;; +13364;EGYPTIAN HIEROGLYPH V001B;Lo;0;L;;;;;N;;;;; +13365;EGYPTIAN HIEROGLYPH V001C;Lo;0;L;;;;;N;;;;; +13366;EGYPTIAN HIEROGLYPH V001D;Lo;0;L;;;;;N;;;;; +13367;EGYPTIAN HIEROGLYPH V001E;Lo;0;L;;;;;N;;;;; +13368;EGYPTIAN HIEROGLYPH V001F;Lo;0;L;;;;;N;;;;; +13369;EGYPTIAN HIEROGLYPH V001G;Lo;0;L;;;;;N;;;;; +1336A;EGYPTIAN HIEROGLYPH V001H;Lo;0;L;;;;;N;;;;; +1336B;EGYPTIAN HIEROGLYPH V001I;Lo;0;L;;;;;N;;;;; +1336C;EGYPTIAN HIEROGLYPH V002;Lo;0;L;;;;;N;;;;; +1336D;EGYPTIAN HIEROGLYPH V002A;Lo;0;L;;;;;N;;;;; +1336E;EGYPTIAN HIEROGLYPH V003;Lo;0;L;;;;;N;;;;; +1336F;EGYPTIAN HIEROGLYPH V004;Lo;0;L;;;;;N;;;;; +13370;EGYPTIAN HIEROGLYPH V005;Lo;0;L;;;;;N;;;;; +13371;EGYPTIAN HIEROGLYPH V006;Lo;0;L;;;;;N;;;;; +13372;EGYPTIAN HIEROGLYPH V007;Lo;0;L;;;;;N;;;;; +13373;EGYPTIAN HIEROGLYPH V007A;Lo;0;L;;;;;N;;;;; +13374;EGYPTIAN HIEROGLYPH V007B;Lo;0;L;;;;;N;;;;; +13375;EGYPTIAN HIEROGLYPH V008;Lo;0;L;;;;;N;;;;; +13376;EGYPTIAN HIEROGLYPH V009;Lo;0;L;;;;;N;;;;; +13377;EGYPTIAN HIEROGLYPH V010;Lo;0;L;;;;;N;;;;; +13378;EGYPTIAN HIEROGLYPH V011;Lo;0;L;;;;;N;;;;; +13379;EGYPTIAN HIEROGLYPH V011A;Lo;0;L;;;;;N;;;;; +1337A;EGYPTIAN HIEROGLYPH V011B;Lo;0;L;;;;;N;;;;; +1337B;EGYPTIAN HIEROGLYPH V011C;Lo;0;L;;;;;N;;;;; +1337C;EGYPTIAN HIEROGLYPH V012;Lo;0;L;;;;;N;;;;; +1337D;EGYPTIAN HIEROGLYPH V012A;Lo;0;L;;;;;N;;;;; +1337E;EGYPTIAN HIEROGLYPH V012B;Lo;0;L;;;;;N;;;;; +1337F;EGYPTIAN HIEROGLYPH V013;Lo;0;L;;;;;N;;;;; +13380;EGYPTIAN HIEROGLYPH V014;Lo;0;L;;;;;N;;;;; +13381;EGYPTIAN HIEROGLYPH V015;Lo;0;L;;;;;N;;;;; +13382;EGYPTIAN HIEROGLYPH V016;Lo;0;L;;;;;N;;;;; +13383;EGYPTIAN HIEROGLYPH V017;Lo;0;L;;;;;N;;;;; +13384;EGYPTIAN HIEROGLYPH V018;Lo;0;L;;;;;N;;;;; +13385;EGYPTIAN HIEROGLYPH V019;Lo;0;L;;;;;N;;;;; +13386;EGYPTIAN HIEROGLYPH V020;Lo;0;L;;;;;N;;;;; +13387;EGYPTIAN HIEROGLYPH V020A;Lo;0;L;;;;;N;;;;; +13388;EGYPTIAN HIEROGLYPH V020B;Lo;0;L;;;;;N;;;;; +13389;EGYPTIAN HIEROGLYPH V020C;Lo;0;L;;;;;N;;;;; +1338A;EGYPTIAN HIEROGLYPH V020D;Lo;0;L;;;;;N;;;;; +1338B;EGYPTIAN HIEROGLYPH V020E;Lo;0;L;;;;;N;;;;; +1338C;EGYPTIAN HIEROGLYPH V020F;Lo;0;L;;;;;N;;;;; +1338D;EGYPTIAN HIEROGLYPH V020G;Lo;0;L;;;;;N;;;;; +1338E;EGYPTIAN HIEROGLYPH V020H;Lo;0;L;;;;;N;;;;; +1338F;EGYPTIAN HIEROGLYPH V020I;Lo;0;L;;;;;N;;;;; +13390;EGYPTIAN HIEROGLYPH V020J;Lo;0;L;;;;;N;;;;; +13391;EGYPTIAN HIEROGLYPH V020K;Lo;0;L;;;;;N;;;;; +13392;EGYPTIAN HIEROGLYPH V020L;Lo;0;L;;;;;N;;;;; +13393;EGYPTIAN HIEROGLYPH V021;Lo;0;L;;;;;N;;;;; +13394;EGYPTIAN HIEROGLYPH V022;Lo;0;L;;;;;N;;;;; +13395;EGYPTIAN HIEROGLYPH V023;Lo;0;L;;;;;N;;;;; +13396;EGYPTIAN HIEROGLYPH V023A;Lo;0;L;;;;;N;;;;; +13397;EGYPTIAN HIEROGLYPH V024;Lo;0;L;;;;;N;;;;; +13398;EGYPTIAN HIEROGLYPH V025;Lo;0;L;;;;;N;;;;; +13399;EGYPTIAN HIEROGLYPH V026;Lo;0;L;;;;;N;;;;; +1339A;EGYPTIAN HIEROGLYPH V027;Lo;0;L;;;;;N;;;;; +1339B;EGYPTIAN HIEROGLYPH V028;Lo;0;L;;;;;N;;;;; +1339C;EGYPTIAN HIEROGLYPH V028A;Lo;0;L;;;;;N;;;;; +1339D;EGYPTIAN HIEROGLYPH V029;Lo;0;L;;;;;N;;;;; +1339E;EGYPTIAN HIEROGLYPH V029A;Lo;0;L;;;;;N;;;;; +1339F;EGYPTIAN HIEROGLYPH V030;Lo;0;L;;;;;N;;;;; +133A0;EGYPTIAN HIEROGLYPH V030A;Lo;0;L;;;;;N;;;;; +133A1;EGYPTIAN HIEROGLYPH V031;Lo;0;L;;;;;N;;;;; +133A2;EGYPTIAN HIEROGLYPH V031A;Lo;0;L;;;;;N;;;;; +133A3;EGYPTIAN HIEROGLYPH V032;Lo;0;L;;;;;N;;;;; +133A4;EGYPTIAN HIEROGLYPH V033;Lo;0;L;;;;;N;;;;; +133A5;EGYPTIAN HIEROGLYPH V033A;Lo;0;L;;;;;N;;;;; +133A6;EGYPTIAN HIEROGLYPH V034;Lo;0;L;;;;;N;;;;; +133A7;EGYPTIAN HIEROGLYPH V035;Lo;0;L;;;;;N;;;;; +133A8;EGYPTIAN HIEROGLYPH V036;Lo;0;L;;;;;N;;;;; +133A9;EGYPTIAN HIEROGLYPH V037;Lo;0;L;;;;;N;;;;; +133AA;EGYPTIAN HIEROGLYPH V037A;Lo;0;L;;;;;N;;;;; +133AB;EGYPTIAN HIEROGLYPH V038;Lo;0;L;;;;;N;;;;; +133AC;EGYPTIAN HIEROGLYPH V039;Lo;0;L;;;;;N;;;;; +133AD;EGYPTIAN HIEROGLYPH V040;Lo;0;L;;;;;N;;;;; +133AE;EGYPTIAN HIEROGLYPH V040A;Lo;0;L;;;;;N;;;;; +133AF;EGYPTIAN HIEROGLYPH W001;Lo;0;L;;;;;N;;;;; +133B0;EGYPTIAN HIEROGLYPH W002;Lo;0;L;;;;;N;;;;; +133B1;EGYPTIAN HIEROGLYPH W003;Lo;0;L;;;;;N;;;;; +133B2;EGYPTIAN HIEROGLYPH W003A;Lo;0;L;;;;;N;;;;; +133B3;EGYPTIAN HIEROGLYPH W004;Lo;0;L;;;;;N;;;;; +133B4;EGYPTIAN HIEROGLYPH W005;Lo;0;L;;;;;N;;;;; +133B5;EGYPTIAN HIEROGLYPH W006;Lo;0;L;;;;;N;;;;; +133B6;EGYPTIAN HIEROGLYPH W007;Lo;0;L;;;;;N;;;;; +133B7;EGYPTIAN HIEROGLYPH W008;Lo;0;L;;;;;N;;;;; +133B8;EGYPTIAN HIEROGLYPH W009;Lo;0;L;;;;;N;;;;; +133B9;EGYPTIAN HIEROGLYPH W009A;Lo;0;L;;;;;N;;;;; +133BA;EGYPTIAN HIEROGLYPH W010;Lo;0;L;;;;;N;;;;; +133BB;EGYPTIAN HIEROGLYPH W010A;Lo;0;L;;;;;N;;;;; +133BC;EGYPTIAN HIEROGLYPH W011;Lo;0;L;;;;;N;;;;; +133BD;EGYPTIAN HIEROGLYPH W012;Lo;0;L;;;;;N;;;;; +133BE;EGYPTIAN HIEROGLYPH W013;Lo;0;L;;;;;N;;;;; +133BF;EGYPTIAN HIEROGLYPH W014;Lo;0;L;;;;;N;;;;; +133C0;EGYPTIAN HIEROGLYPH W014A;Lo;0;L;;;;;N;;;;; +133C1;EGYPTIAN HIEROGLYPH W015;Lo;0;L;;;;;N;;;;; +133C2;EGYPTIAN HIEROGLYPH W016;Lo;0;L;;;;;N;;;;; +133C3;EGYPTIAN HIEROGLYPH W017;Lo;0;L;;;;;N;;;;; +133C4;EGYPTIAN HIEROGLYPH W017A;Lo;0;L;;;;;N;;;;; +133C5;EGYPTIAN HIEROGLYPH W018;Lo;0;L;;;;;N;;;;; +133C6;EGYPTIAN HIEROGLYPH W018A;Lo;0;L;;;;;N;;;;; +133C7;EGYPTIAN HIEROGLYPH W019;Lo;0;L;;;;;N;;;;; +133C8;EGYPTIAN HIEROGLYPH W020;Lo;0;L;;;;;N;;;;; +133C9;EGYPTIAN HIEROGLYPH W021;Lo;0;L;;;;;N;;;;; +133CA;EGYPTIAN HIEROGLYPH W022;Lo;0;L;;;;;N;;;;; +133CB;EGYPTIAN HIEROGLYPH W023;Lo;0;L;;;;;N;;;;; +133CC;EGYPTIAN HIEROGLYPH W024;Lo;0;L;;;;;N;;;;; +133CD;EGYPTIAN HIEROGLYPH W024A;Lo;0;L;;;;;N;;;;; +133CE;EGYPTIAN HIEROGLYPH W025;Lo;0;L;;;;;N;;;;; +133CF;EGYPTIAN HIEROGLYPH X001;Lo;0;L;;;;;N;;;;; +133D0;EGYPTIAN HIEROGLYPH X002;Lo;0;L;;;;;N;;;;; +133D1;EGYPTIAN HIEROGLYPH X003;Lo;0;L;;;;;N;;;;; +133D2;EGYPTIAN HIEROGLYPH X004;Lo;0;L;;;;;N;;;;; +133D3;EGYPTIAN HIEROGLYPH X004A;Lo;0;L;;;;;N;;;;; +133D4;EGYPTIAN HIEROGLYPH X004B;Lo;0;L;;;;;N;;;;; +133D5;EGYPTIAN HIEROGLYPH X005;Lo;0;L;;;;;N;;;;; +133D6;EGYPTIAN HIEROGLYPH X006;Lo;0;L;;;;;N;;;;; +133D7;EGYPTIAN HIEROGLYPH X006A;Lo;0;L;;;;;N;;;;; +133D8;EGYPTIAN HIEROGLYPH X007;Lo;0;L;;;;;N;;;;; +133D9;EGYPTIAN HIEROGLYPH X008;Lo;0;L;;;;;N;;;;; +133DA;EGYPTIAN HIEROGLYPH X008A;Lo;0;L;;;;;N;;;;; +133DB;EGYPTIAN HIEROGLYPH Y001;Lo;0;L;;;;;N;;;;; +133DC;EGYPTIAN HIEROGLYPH Y001A;Lo;0;L;;;;;N;;;;; +133DD;EGYPTIAN HIEROGLYPH Y002;Lo;0;L;;;;;N;;;;; +133DE;EGYPTIAN HIEROGLYPH Y003;Lo;0;L;;;;;N;;;;; +133DF;EGYPTIAN HIEROGLYPH Y004;Lo;0;L;;;;;N;;;;; +133E0;EGYPTIAN HIEROGLYPH Y005;Lo;0;L;;;;;N;;;;; +133E1;EGYPTIAN HIEROGLYPH Y006;Lo;0;L;;;;;N;;;;; +133E2;EGYPTIAN HIEROGLYPH Y007;Lo;0;L;;;;;N;;;;; +133E3;EGYPTIAN HIEROGLYPH Y008;Lo;0;L;;;;;N;;;;; +133E4;EGYPTIAN HIEROGLYPH Z001;Lo;0;L;;;;;N;;;;; +133E5;EGYPTIAN HIEROGLYPH Z002;Lo;0;L;;;;;N;;;;; +133E6;EGYPTIAN HIEROGLYPH Z002A;Lo;0;L;;;;;N;;;;; +133E7;EGYPTIAN HIEROGLYPH Z002B;Lo;0;L;;;;;N;;;;; +133E8;EGYPTIAN HIEROGLYPH Z002C;Lo;0;L;;;;;N;;;;; +133E9;EGYPTIAN HIEROGLYPH Z002D;Lo;0;L;;;;;N;;;;; +133EA;EGYPTIAN HIEROGLYPH Z003;Lo;0;L;;;;;N;;;;; +133EB;EGYPTIAN HIEROGLYPH Z003A;Lo;0;L;;;;;N;;;;; +133EC;EGYPTIAN HIEROGLYPH Z003B;Lo;0;L;;;;;N;;;;; +133ED;EGYPTIAN HIEROGLYPH Z004;Lo;0;L;;;;;N;;;;; +133EE;EGYPTIAN HIEROGLYPH Z004A;Lo;0;L;;;;;N;;;;; +133EF;EGYPTIAN HIEROGLYPH Z005;Lo;0;L;;;;;N;;;;; +133F0;EGYPTIAN HIEROGLYPH Z005A;Lo;0;L;;;;;N;;;;; +133F1;EGYPTIAN HIEROGLYPH Z006;Lo;0;L;;;;;N;;;;; +133F2;EGYPTIAN HIEROGLYPH Z007;Lo;0;L;;;;;N;;;;; +133F3;EGYPTIAN HIEROGLYPH Z008;Lo;0;L;;;;;N;;;;; +133F4;EGYPTIAN HIEROGLYPH Z009;Lo;0;L;;;;;N;;;;; +133F5;EGYPTIAN HIEROGLYPH Z010;Lo;0;L;;;;;N;;;;; +133F6;EGYPTIAN HIEROGLYPH Z011;Lo;0;L;;;;;N;;;;; +133F7;EGYPTIAN HIEROGLYPH Z012;Lo;0;L;;;;;N;;;;; +133F8;EGYPTIAN HIEROGLYPH Z013;Lo;0;L;;;;;N;;;;; +133F9;EGYPTIAN HIEROGLYPH Z014;Lo;0;L;;;;;N;;;;; +133FA;EGYPTIAN HIEROGLYPH Z015;Lo;0;L;;;;;N;;;;; +133FB;EGYPTIAN HIEROGLYPH Z015A;Lo;0;L;;;;;N;;;;; +133FC;EGYPTIAN HIEROGLYPH Z015B;Lo;0;L;;;;;N;;;;; +133FD;EGYPTIAN HIEROGLYPH Z015C;Lo;0;L;;;;;N;;;;; +133FE;EGYPTIAN HIEROGLYPH Z015D;Lo;0;L;;;;;N;;;;; +133FF;EGYPTIAN HIEROGLYPH Z015E;Lo;0;L;;;;;N;;;;; +13400;EGYPTIAN HIEROGLYPH Z015F;Lo;0;L;;;;;N;;;;; +13401;EGYPTIAN HIEROGLYPH Z015G;Lo;0;L;;;;;N;;;;; +13402;EGYPTIAN HIEROGLYPH Z015H;Lo;0;L;;;;;N;;;;; +13403;EGYPTIAN HIEROGLYPH Z015I;Lo;0;L;;;;;N;;;;; +13404;EGYPTIAN HIEROGLYPH Z016;Lo;0;L;;;;;N;;;;; +13405;EGYPTIAN HIEROGLYPH Z016A;Lo;0;L;;;;;N;;;;; +13406;EGYPTIAN HIEROGLYPH Z016B;Lo;0;L;;;;;N;;;;; +13407;EGYPTIAN HIEROGLYPH Z016C;Lo;0;L;;;;;N;;;;; +13408;EGYPTIAN HIEROGLYPH Z016D;Lo;0;L;;;;;N;;;;; +13409;EGYPTIAN HIEROGLYPH Z016E;Lo;0;L;;;;;N;;;;; +1340A;EGYPTIAN HIEROGLYPH Z016F;Lo;0;L;;;;;N;;;;; +1340B;EGYPTIAN HIEROGLYPH Z016G;Lo;0;L;;;;;N;;;;; +1340C;EGYPTIAN HIEROGLYPH Z016H;Lo;0;L;;;;;N;;;;; +1340D;EGYPTIAN HIEROGLYPH AA001;Lo;0;L;;;;;N;;;;; +1340E;EGYPTIAN HIEROGLYPH AA002;Lo;0;L;;;;;N;;;;; +1340F;EGYPTIAN HIEROGLYPH AA003;Lo;0;L;;;;;N;;;;; +13410;EGYPTIAN HIEROGLYPH AA004;Lo;0;L;;;;;N;;;;; +13411;EGYPTIAN HIEROGLYPH AA005;Lo;0;L;;;;;N;;;;; +13412;EGYPTIAN HIEROGLYPH AA006;Lo;0;L;;;;;N;;;;; +13413;EGYPTIAN HIEROGLYPH AA007;Lo;0;L;;;;;N;;;;; +13414;EGYPTIAN HIEROGLYPH AA007A;Lo;0;L;;;;;N;;;;; +13415;EGYPTIAN HIEROGLYPH AA007B;Lo;0;L;;;;;N;;;;; +13416;EGYPTIAN HIEROGLYPH AA008;Lo;0;L;;;;;N;;;;; +13417;EGYPTIAN HIEROGLYPH AA009;Lo;0;L;;;;;N;;;;; +13418;EGYPTIAN HIEROGLYPH AA010;Lo;0;L;;;;;N;;;;; +13419;EGYPTIAN HIEROGLYPH AA011;Lo;0;L;;;;;N;;;;; +1341A;EGYPTIAN HIEROGLYPH AA012;Lo;0;L;;;;;N;;;;; +1341B;EGYPTIAN HIEROGLYPH AA013;Lo;0;L;;;;;N;;;;; +1341C;EGYPTIAN HIEROGLYPH AA014;Lo;0;L;;;;;N;;;;; +1341D;EGYPTIAN HIEROGLYPH AA015;Lo;0;L;;;;;N;;;;; +1341E;EGYPTIAN HIEROGLYPH AA016;Lo;0;L;;;;;N;;;;; +1341F;EGYPTIAN HIEROGLYPH AA017;Lo;0;L;;;;;N;;;;; +13420;EGYPTIAN HIEROGLYPH AA018;Lo;0;L;;;;;N;;;;; +13421;EGYPTIAN HIEROGLYPH AA019;Lo;0;L;;;;;N;;;;; +13422;EGYPTIAN HIEROGLYPH AA020;Lo;0;L;;;;;N;;;;; +13423;EGYPTIAN HIEROGLYPH AA021;Lo;0;L;;;;;N;;;;; +13424;EGYPTIAN HIEROGLYPH AA022;Lo;0;L;;;;;N;;;;; +13425;EGYPTIAN HIEROGLYPH AA023;Lo;0;L;;;;;N;;;;; +13426;EGYPTIAN HIEROGLYPH AA024;Lo;0;L;;;;;N;;;;; +13427;EGYPTIAN HIEROGLYPH AA025;Lo;0;L;;;;;N;;;;; +13428;EGYPTIAN HIEROGLYPH AA026;Lo;0;L;;;;;N;;;;; +13429;EGYPTIAN HIEROGLYPH AA027;Lo;0;L;;;;;N;;;;; +1342A;EGYPTIAN HIEROGLYPH AA028;Lo;0;L;;;;;N;;;;; +1342B;EGYPTIAN HIEROGLYPH AA029;Lo;0;L;;;;;N;;;;; +1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;; +1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;; +1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;; +16800;BAMUM LETTER PHASE-A NGKUE MFON;Lo;0;L;;;;;N;;;;; +16801;BAMUM LETTER PHASE-A GBIEE FON;Lo;0;L;;;;;N;;;;; +16802;BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE;Lo;0;L;;;;;N;;;;; +16803;BAMUM LETTER PHASE-A PON MFON PIPAEMBA;Lo;0;L;;;;;N;;;;; +16804;BAMUM LETTER PHASE-A NAA MFON;Lo;0;L;;;;;N;;;;; +16805;BAMUM LETTER PHASE-A SHUENSHUET;Lo;0;L;;;;;N;;;;; +16806;BAMUM LETTER PHASE-A TITA MFON;Lo;0;L;;;;;N;;;;; +16807;BAMUM LETTER PHASE-A NZA MFON;Lo;0;L;;;;;N;;;;; +16808;BAMUM LETTER PHASE-A SHINDA PA NJI;Lo;0;L;;;;;N;;;;; +16809;BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE;Lo;0;L;;;;;N;;;;; +1680A;BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA;Lo;0;L;;;;;N;;;;; +1680B;BAMUM LETTER PHASE-A MAEMBGBIEE;Lo;0;L;;;;;N;;;;; +1680C;BAMUM LETTER PHASE-A TU MAEMBA;Lo;0;L;;;;;N;;;;; +1680D;BAMUM LETTER PHASE-A NGANGU;Lo;0;L;;;;;N;;;;; +1680E;BAMUM LETTER PHASE-A MAEMVEUX;Lo;0;L;;;;;N;;;;; +1680F;BAMUM LETTER PHASE-A MANSUAE;Lo;0;L;;;;;N;;;;; +16810;BAMUM LETTER PHASE-A MVEUAENGAM;Lo;0;L;;;;;N;;;;; +16811;BAMUM LETTER PHASE-A SEUNYAM;Lo;0;L;;;;;N;;;;; +16812;BAMUM LETTER PHASE-A NTOQPEN;Lo;0;L;;;;;N;;;;; +16813;BAMUM LETTER PHASE-A KEUKEUTNDA;Lo;0;L;;;;;N;;;;; +16814;BAMUM LETTER PHASE-A NKINDI;Lo;0;L;;;;;N;;;;; +16815;BAMUM LETTER PHASE-A SUU;Lo;0;L;;;;;N;;;;; +16816;BAMUM LETTER PHASE-A NGKUENZEUM;Lo;0;L;;;;;N;;;;; +16817;BAMUM LETTER PHASE-A LAPAQ;Lo;0;L;;;;;N;;;;; +16818;BAMUM LETTER PHASE-A LET KUT;Lo;0;L;;;;;N;;;;; +16819;BAMUM LETTER PHASE-A NTAP MFAA;Lo;0;L;;;;;N;;;;; +1681A;BAMUM LETTER PHASE-A MAEKEUP;Lo;0;L;;;;;N;;;;; +1681B;BAMUM LETTER PHASE-A PASHAE;Lo;0;L;;;;;N;;;;; +1681C;BAMUM LETTER PHASE-A GHEUAERAE;Lo;0;L;;;;;N;;;;; +1681D;BAMUM LETTER PHASE-A PAMSHAE;Lo;0;L;;;;;N;;;;; +1681E;BAMUM LETTER PHASE-A MON NGGEUAET;Lo;0;L;;;;;N;;;;; +1681F;BAMUM LETTER PHASE-A NZUN MEUT;Lo;0;L;;;;;N;;;;; +16820;BAMUM LETTER PHASE-A U YUQ NAE;Lo;0;L;;;;;N;;;;; +16821;BAMUM LETTER PHASE-A GHEUAEGHEUAE;Lo;0;L;;;;;N;;;;; +16822;BAMUM LETTER PHASE-A NTAP NTAA;Lo;0;L;;;;;N;;;;; +16823;BAMUM LETTER PHASE-A SISA;Lo;0;L;;;;;N;;;;; +16824;BAMUM LETTER PHASE-A MGBASA;Lo;0;L;;;;;N;;;;; +16825;BAMUM LETTER PHASE-A MEUNJOMNDEUQ;Lo;0;L;;;;;N;;;;; +16826;BAMUM LETTER PHASE-A MOOMPUQ;Lo;0;L;;;;;N;;;;; +16827;BAMUM LETTER PHASE-A KAFA;Lo;0;L;;;;;N;;;;; +16828;BAMUM LETTER PHASE-A PA LEERAEWA;Lo;0;L;;;;;N;;;;; +16829;BAMUM LETTER PHASE-A NDA LEERAEWA;Lo;0;L;;;;;N;;;;; +1682A;BAMUM LETTER PHASE-A PET;Lo;0;L;;;;;N;;;;; +1682B;BAMUM LETTER PHASE-A MAEMKPEN;Lo;0;L;;;;;N;;;;; +1682C;BAMUM LETTER PHASE-A NIKA;Lo;0;L;;;;;N;;;;; +1682D;BAMUM LETTER PHASE-A PUP;Lo;0;L;;;;;N;;;;; +1682E;BAMUM LETTER PHASE-A TUAEP;Lo;0;L;;;;;N;;;;; +1682F;BAMUM LETTER PHASE-A LUAEP;Lo;0;L;;;;;N;;;;; +16830;BAMUM LETTER PHASE-A SONJAM;Lo;0;L;;;;;N;;;;; +16831;BAMUM LETTER PHASE-A TEUTEUWEN;Lo;0;L;;;;;N;;;;; +16832;BAMUM LETTER PHASE-A MAENYI;Lo;0;L;;;;;N;;;;; +16833;BAMUM LETTER PHASE-A KET;Lo;0;L;;;;;N;;;;; +16834;BAMUM LETTER PHASE-A NDAANGGEUAET;Lo;0;L;;;;;N;;;;; +16835;BAMUM LETTER PHASE-A KUOQ;Lo;0;L;;;;;N;;;;; +16836;BAMUM LETTER PHASE-A MOOMEUT;Lo;0;L;;;;;N;;;;; +16837;BAMUM LETTER PHASE-A SHUM;Lo;0;L;;;;;N;;;;; +16838;BAMUM LETTER PHASE-A LOMMAE;Lo;0;L;;;;;N;;;;; +16839;BAMUM LETTER PHASE-A FIRI;Lo;0;L;;;;;N;;;;; +1683A;BAMUM LETTER PHASE-A ROM;Lo;0;L;;;;;N;;;;; +1683B;BAMUM LETTER PHASE-A KPOQ;Lo;0;L;;;;;N;;;;; +1683C;BAMUM LETTER PHASE-A SOQ;Lo;0;L;;;;;N;;;;; +1683D;BAMUM LETTER PHASE-A MAP PIEET;Lo;0;L;;;;;N;;;;; +1683E;BAMUM LETTER PHASE-A SHIRAE;Lo;0;L;;;;;N;;;;; +1683F;BAMUM LETTER PHASE-A NTAP;Lo;0;L;;;;;N;;;;; +16840;BAMUM LETTER PHASE-A SHOQ NSHUT YUM;Lo;0;L;;;;;N;;;;; +16841;BAMUM LETTER PHASE-A NYIT MONGKEUAEQ;Lo;0;L;;;;;N;;;;; +16842;BAMUM LETTER PHASE-A PAARAE;Lo;0;L;;;;;N;;;;; +16843;BAMUM LETTER PHASE-A NKAARAE;Lo;0;L;;;;;N;;;;; +16844;BAMUM LETTER PHASE-A UNKNOWN;Lo;0;L;;;;;N;;;;; +16845;BAMUM LETTER PHASE-A NGGEN;Lo;0;L;;;;;N;;;;; +16846;BAMUM LETTER PHASE-A MAESI;Lo;0;L;;;;;N;;;;; +16847;BAMUM LETTER PHASE-A NJAM;Lo;0;L;;;;;N;;;;; +16848;BAMUM LETTER PHASE-A MBANYI;Lo;0;L;;;;;N;;;;; +16849;BAMUM LETTER PHASE-A NYET;Lo;0;L;;;;;N;;;;; +1684A;BAMUM LETTER PHASE-A TEUAEN;Lo;0;L;;;;;N;;;;; +1684B;BAMUM LETTER PHASE-A SOT;Lo;0;L;;;;;N;;;;; +1684C;BAMUM LETTER PHASE-A PAAM;Lo;0;L;;;;;N;;;;; +1684D;BAMUM LETTER PHASE-A NSHIEE;Lo;0;L;;;;;N;;;;; +1684E;BAMUM LETTER PHASE-A MAEM;Lo;0;L;;;;;N;;;;; +1684F;BAMUM LETTER PHASE-A NYI;Lo;0;L;;;;;N;;;;; +16850;BAMUM LETTER PHASE-A KAQ;Lo;0;L;;;;;N;;;;; +16851;BAMUM LETTER PHASE-A NSHA;Lo;0;L;;;;;N;;;;; +16852;BAMUM LETTER PHASE-A VEE;Lo;0;L;;;;;N;;;;; +16853;BAMUM LETTER PHASE-A LU;Lo;0;L;;;;;N;;;;; +16854;BAMUM LETTER PHASE-A NEN;Lo;0;L;;;;;N;;;;; +16855;BAMUM LETTER PHASE-A NAQ;Lo;0;L;;;;;N;;;;; +16856;BAMUM LETTER PHASE-A MBAQ;Lo;0;L;;;;;N;;;;; +16857;BAMUM LETTER PHASE-B NSHUET;Lo;0;L;;;;;N;;;;; +16858;BAMUM LETTER PHASE-B TU MAEMGBIEE;Lo;0;L;;;;;N;;;;; +16859;BAMUM LETTER PHASE-B SIEE;Lo;0;L;;;;;N;;;;; +1685A;BAMUM LETTER PHASE-B SET TU;Lo;0;L;;;;;N;;;;; +1685B;BAMUM LETTER PHASE-B LOM NTEUM;Lo;0;L;;;;;N;;;;; +1685C;BAMUM LETTER PHASE-B MBA MAELEE;Lo;0;L;;;;;N;;;;; +1685D;BAMUM LETTER PHASE-B KIEEM;Lo;0;L;;;;;N;;;;; +1685E;BAMUM LETTER PHASE-B YEURAE;Lo;0;L;;;;;N;;;;; +1685F;BAMUM LETTER PHASE-B MBAARAE;Lo;0;L;;;;;N;;;;; +16860;BAMUM LETTER PHASE-B KAM;Lo;0;L;;;;;N;;;;; +16861;BAMUM LETTER PHASE-B PEESHI;Lo;0;L;;;;;N;;;;; +16862;BAMUM LETTER PHASE-B YAFU LEERAEWA;Lo;0;L;;;;;N;;;;; +16863;BAMUM LETTER PHASE-B LAM NSHUT NYAM;Lo;0;L;;;;;N;;;;; +16864;BAMUM LETTER PHASE-B NTIEE SHEUOQ;Lo;0;L;;;;;N;;;;; +16865;BAMUM LETTER PHASE-B NDU NJAA;Lo;0;L;;;;;N;;;;; +16866;BAMUM LETTER PHASE-B GHEUGHEUAEM;Lo;0;L;;;;;N;;;;; +16867;BAMUM LETTER PHASE-B PIT;Lo;0;L;;;;;N;;;;; +16868;BAMUM LETTER PHASE-B TU NSIEE;Lo;0;L;;;;;N;;;;; +16869;BAMUM LETTER PHASE-B SHET NJAQ;Lo;0;L;;;;;N;;;;; +1686A;BAMUM LETTER PHASE-B SHEUAEQTU;Lo;0;L;;;;;N;;;;; +1686B;BAMUM LETTER PHASE-B MFON TEUAEQ;Lo;0;L;;;;;N;;;;; +1686C;BAMUM LETTER PHASE-B MBIT MBAAKET;Lo;0;L;;;;;N;;;;; +1686D;BAMUM LETTER PHASE-B NYI NTEUM;Lo;0;L;;;;;N;;;;; +1686E;BAMUM LETTER PHASE-B KEUPUQ;Lo;0;L;;;;;N;;;;; +1686F;BAMUM LETTER PHASE-B GHEUGHEN;Lo;0;L;;;;;N;;;;; +16870;BAMUM LETTER PHASE-B KEUYEUX;Lo;0;L;;;;;N;;;;; +16871;BAMUM LETTER PHASE-B LAANAE;Lo;0;L;;;;;N;;;;; +16872;BAMUM LETTER PHASE-B PARUM;Lo;0;L;;;;;N;;;;; +16873;BAMUM LETTER PHASE-B VEUM;Lo;0;L;;;;;N;;;;; +16874;BAMUM LETTER PHASE-B NGKINDI MVOP;Lo;0;L;;;;;N;;;;; +16875;BAMUM LETTER PHASE-B NGGEU MBU;Lo;0;L;;;;;N;;;;; +16876;BAMUM LETTER PHASE-B WUAET;Lo;0;L;;;;;N;;;;; +16877;BAMUM LETTER PHASE-B SAKEUAE;Lo;0;L;;;;;N;;;;; +16878;BAMUM LETTER PHASE-B TAAM;Lo;0;L;;;;;N;;;;; +16879;BAMUM LETTER PHASE-B MEUQ;Lo;0;L;;;;;N;;;;; +1687A;BAMUM LETTER PHASE-B NGGUOQ;Lo;0;L;;;;;N;;;;; +1687B;BAMUM LETTER PHASE-B NGGUOQ LARGE;Lo;0;L;;;;;N;;;;; +1687C;BAMUM LETTER PHASE-B MFIYAQ;Lo;0;L;;;;;N;;;;; +1687D;BAMUM LETTER PHASE-B SUE;Lo;0;L;;;;;N;;;;; +1687E;BAMUM LETTER PHASE-B MBEURI;Lo;0;L;;;;;N;;;;; +1687F;BAMUM LETTER PHASE-B MONTIEEN;Lo;0;L;;;;;N;;;;; +16880;BAMUM LETTER PHASE-B NYAEMAE;Lo;0;L;;;;;N;;;;; +16881;BAMUM LETTER PHASE-B PUNGAAM;Lo;0;L;;;;;N;;;;; +16882;BAMUM LETTER PHASE-B MEUT NGGEET;Lo;0;L;;;;;N;;;;; +16883;BAMUM LETTER PHASE-B FEUX;Lo;0;L;;;;;N;;;;; +16884;BAMUM LETTER PHASE-B MBUOQ;Lo;0;L;;;;;N;;;;; +16885;BAMUM LETTER PHASE-B FEE;Lo;0;L;;;;;N;;;;; +16886;BAMUM LETTER PHASE-B KEUAEM;Lo;0;L;;;;;N;;;;; +16887;BAMUM LETTER PHASE-B MA NJEUAENA;Lo;0;L;;;;;N;;;;; +16888;BAMUM LETTER PHASE-B MA NJUQA;Lo;0;L;;;;;N;;;;; +16889;BAMUM LETTER PHASE-B LET;Lo;0;L;;;;;N;;;;; +1688A;BAMUM LETTER PHASE-B NGGAAM;Lo;0;L;;;;;N;;;;; +1688B;BAMUM LETTER PHASE-B NSEN;Lo;0;L;;;;;N;;;;; +1688C;BAMUM LETTER PHASE-B MA;Lo;0;L;;;;;N;;;;; +1688D;BAMUM LETTER PHASE-B KIQ;Lo;0;L;;;;;N;;;;; +1688E;BAMUM LETTER PHASE-B NGOM;Lo;0;L;;;;;N;;;;; +1688F;BAMUM LETTER PHASE-C NGKUE MAEMBA;Lo;0;L;;;;;N;;;;; +16890;BAMUM LETTER PHASE-C NZA;Lo;0;L;;;;;N;;;;; +16891;BAMUM LETTER PHASE-C YUM;Lo;0;L;;;;;N;;;;; +16892;BAMUM LETTER PHASE-C WANGKUOQ;Lo;0;L;;;;;N;;;;; +16893;BAMUM LETTER PHASE-C NGGEN;Lo;0;L;;;;;N;;;;; +16894;BAMUM LETTER PHASE-C NDEUAEREE;Lo;0;L;;;;;N;;;;; +16895;BAMUM LETTER PHASE-C NGKAQ;Lo;0;L;;;;;N;;;;; +16896;BAMUM LETTER PHASE-C GHARAE;Lo;0;L;;;;;N;;;;; +16897;BAMUM LETTER PHASE-C MBEEKEET;Lo;0;L;;;;;N;;;;; +16898;BAMUM LETTER PHASE-C GBAYI;Lo;0;L;;;;;N;;;;; +16899;BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN;Lo;0;L;;;;;N;;;;; +1689A;BAMUM LETTER PHASE-C NTU MBIT;Lo;0;L;;;;;N;;;;; +1689B;BAMUM LETTER PHASE-C MBEUM;Lo;0;L;;;;;N;;;;; +1689C;BAMUM LETTER PHASE-C PIRIEEN;Lo;0;L;;;;;N;;;;; +1689D;BAMUM LETTER PHASE-C NDOMBU;Lo;0;L;;;;;N;;;;; +1689E;BAMUM LETTER PHASE-C MBAA CABBAGE-TREE;Lo;0;L;;;;;N;;;;; +1689F;BAMUM LETTER PHASE-C KEUSHEUAEP;Lo;0;L;;;;;N;;;;; +168A0;BAMUM LETTER PHASE-C GHAP;Lo;0;L;;;;;N;;;;; +168A1;BAMUM LETTER PHASE-C KEUKAQ;Lo;0;L;;;;;N;;;;; +168A2;BAMUM LETTER PHASE-C YU MUOMAE;Lo;0;L;;;;;N;;;;; +168A3;BAMUM LETTER PHASE-C NZEUM;Lo;0;L;;;;;N;;;;; +168A4;BAMUM LETTER PHASE-C MBUE;Lo;0;L;;;;;N;;;;; +168A5;BAMUM LETTER PHASE-C NSEUAEN;Lo;0;L;;;;;N;;;;; +168A6;BAMUM LETTER PHASE-C MBIT;Lo;0;L;;;;;N;;;;; +168A7;BAMUM LETTER PHASE-C YEUQ;Lo;0;L;;;;;N;;;;; +168A8;BAMUM LETTER PHASE-C KPARAQ;Lo;0;L;;;;;N;;;;; +168A9;BAMUM LETTER PHASE-C KAA;Lo;0;L;;;;;N;;;;; +168AA;BAMUM LETTER PHASE-C SEUX;Lo;0;L;;;;;N;;;;; +168AB;BAMUM LETTER PHASE-C NDIDA;Lo;0;L;;;;;N;;;;; +168AC;BAMUM LETTER PHASE-C TAASHAE;Lo;0;L;;;;;N;;;;; +168AD;BAMUM LETTER PHASE-C NJUEQ;Lo;0;L;;;;;N;;;;; +168AE;BAMUM LETTER PHASE-C TITA YUE;Lo;0;L;;;;;N;;;;; +168AF;BAMUM LETTER PHASE-C SUAET;Lo;0;L;;;;;N;;;;; +168B0;BAMUM LETTER PHASE-C NGGUAEN NYAM;Lo;0;L;;;;;N;;;;; +168B1;BAMUM LETTER PHASE-C VEUX;Lo;0;L;;;;;N;;;;; +168B2;BAMUM LETTER PHASE-C NANSANAQ;Lo;0;L;;;;;N;;;;; +168B3;BAMUM LETTER PHASE-C MA KEUAERI;Lo;0;L;;;;;N;;;;; +168B4;BAMUM LETTER PHASE-C NTAA;Lo;0;L;;;;;N;;;;; +168B5;BAMUM LETTER PHASE-C NGGUON;Lo;0;L;;;;;N;;;;; +168B6;BAMUM LETTER PHASE-C LAP;Lo;0;L;;;;;N;;;;; +168B7;BAMUM LETTER PHASE-C MBIRIEEN;Lo;0;L;;;;;N;;;;; +168B8;BAMUM LETTER PHASE-C MGBASAQ;Lo;0;L;;;;;N;;;;; +168B9;BAMUM LETTER PHASE-C NTEUNGBA;Lo;0;L;;;;;N;;;;; +168BA;BAMUM LETTER PHASE-C TEUTEUX;Lo;0;L;;;;;N;;;;; +168BB;BAMUM LETTER PHASE-C NGGUM;Lo;0;L;;;;;N;;;;; +168BC;BAMUM LETTER PHASE-C FUE;Lo;0;L;;;;;N;;;;; +168BD;BAMUM LETTER PHASE-C NDEUT;Lo;0;L;;;;;N;;;;; +168BE;BAMUM LETTER PHASE-C NSA;Lo;0;L;;;;;N;;;;; +168BF;BAMUM LETTER PHASE-C NSHAQ;Lo;0;L;;;;;N;;;;; +168C0;BAMUM LETTER PHASE-C BUNG;Lo;0;L;;;;;N;;;;; +168C1;BAMUM LETTER PHASE-C VEUAEPEN;Lo;0;L;;;;;N;;;;; +168C2;BAMUM LETTER PHASE-C MBERAE;Lo;0;L;;;;;N;;;;; +168C3;BAMUM LETTER PHASE-C RU;Lo;0;L;;;;;N;;;;; +168C4;BAMUM LETTER PHASE-C NJAEM;Lo;0;L;;;;;N;;;;; +168C5;BAMUM LETTER PHASE-C LAM;Lo;0;L;;;;;N;;;;; +168C6;BAMUM LETTER PHASE-C TITUAEP;Lo;0;L;;;;;N;;;;; +168C7;BAMUM LETTER PHASE-C NSUOT NGOM;Lo;0;L;;;;;N;;;;; +168C8;BAMUM LETTER PHASE-C NJEEEE;Lo;0;L;;;;;N;;;;; +168C9;BAMUM LETTER PHASE-C KET;Lo;0;L;;;;;N;;;;; +168CA;BAMUM LETTER PHASE-C NGGU;Lo;0;L;;;;;N;;;;; +168CB;BAMUM LETTER PHASE-C MAESI;Lo;0;L;;;;;N;;;;; +168CC;BAMUM LETTER PHASE-C MBUAEM;Lo;0;L;;;;;N;;;;; +168CD;BAMUM LETTER PHASE-C LU;Lo;0;L;;;;;N;;;;; +168CE;BAMUM LETTER PHASE-C KUT;Lo;0;L;;;;;N;;;;; +168CF;BAMUM LETTER PHASE-C NJAM;Lo;0;L;;;;;N;;;;; +168D0;BAMUM LETTER PHASE-C NGOM;Lo;0;L;;;;;N;;;;; +168D1;BAMUM LETTER PHASE-C WUP;Lo;0;L;;;;;N;;;;; +168D2;BAMUM LETTER PHASE-C NGGUEET;Lo;0;L;;;;;N;;;;; +168D3;BAMUM LETTER PHASE-C NSOM;Lo;0;L;;;;;N;;;;; +168D4;BAMUM LETTER PHASE-C NTEN;Lo;0;L;;;;;N;;;;; +168D5;BAMUM LETTER PHASE-C KUOP NKAARAE;Lo;0;L;;;;;N;;;;; +168D6;BAMUM LETTER PHASE-C NSUN;Lo;0;L;;;;;N;;;;; +168D7;BAMUM LETTER PHASE-C NDAM;Lo;0;L;;;;;N;;;;; +168D8;BAMUM LETTER PHASE-C MA NSIEE;Lo;0;L;;;;;N;;;;; +168D9;BAMUM LETTER PHASE-C YAA;Lo;0;L;;;;;N;;;;; +168DA;BAMUM LETTER PHASE-C NDAP;Lo;0;L;;;;;N;;;;; +168DB;BAMUM LETTER PHASE-C SHUEQ;Lo;0;L;;;;;N;;;;; +168DC;BAMUM LETTER PHASE-C SETFON;Lo;0;L;;;;;N;;;;; +168DD;BAMUM LETTER PHASE-C MBI;Lo;0;L;;;;;N;;;;; +168DE;BAMUM LETTER PHASE-C MAEMBA;Lo;0;L;;;;;N;;;;; +168DF;BAMUM LETTER PHASE-C MBANYI;Lo;0;L;;;;;N;;;;; +168E0;BAMUM LETTER PHASE-C KEUSEUX;Lo;0;L;;;;;N;;;;; +168E1;BAMUM LETTER PHASE-C MBEUX;Lo;0;L;;;;;N;;;;; +168E2;BAMUM LETTER PHASE-C KEUM;Lo;0;L;;;;;N;;;;; +168E3;BAMUM LETTER PHASE-C MBAA PICKET;Lo;0;L;;;;;N;;;;; +168E4;BAMUM LETTER PHASE-C YUWOQ;Lo;0;L;;;;;N;;;;; +168E5;BAMUM LETTER PHASE-C NJEUX;Lo;0;L;;;;;N;;;;; +168E6;BAMUM LETTER PHASE-C MIEE;Lo;0;L;;;;;N;;;;; +168E7;BAMUM LETTER PHASE-C MUAE;Lo;0;L;;;;;N;;;;; +168E8;BAMUM LETTER PHASE-C SHIQ;Lo;0;L;;;;;N;;;;; +168E9;BAMUM LETTER PHASE-C KEN LAW;Lo;0;L;;;;;N;;;;; +168EA;BAMUM LETTER PHASE-C KEN FATIGUE;Lo;0;L;;;;;N;;;;; +168EB;BAMUM LETTER PHASE-C NGAQ;Lo;0;L;;;;;N;;;;; +168EC;BAMUM LETTER PHASE-C NAQ;Lo;0;L;;;;;N;;;;; +168ED;BAMUM LETTER PHASE-C LIQ;Lo;0;L;;;;;N;;;;; +168EE;BAMUM LETTER PHASE-C PIN;Lo;0;L;;;;;N;;;;; +168EF;BAMUM LETTER PHASE-C PEN;Lo;0;L;;;;;N;;;;; +168F0;BAMUM LETTER PHASE-C TET;Lo;0;L;;;;;N;;;;; +168F1;BAMUM LETTER PHASE-D MBUO;Lo;0;L;;;;;N;;;;; +168F2;BAMUM LETTER PHASE-D WAP;Lo;0;L;;;;;N;;;;; +168F3;BAMUM LETTER PHASE-D NJI;Lo;0;L;;;;;N;;;;; +168F4;BAMUM LETTER PHASE-D MFON;Lo;0;L;;;;;N;;;;; +168F5;BAMUM LETTER PHASE-D NJIEE;Lo;0;L;;;;;N;;;;; +168F6;BAMUM LETTER PHASE-D LIEE;Lo;0;L;;;;;N;;;;; +168F7;BAMUM LETTER PHASE-D NJEUT;Lo;0;L;;;;;N;;;;; +168F8;BAMUM LETTER PHASE-D NSHEE;Lo;0;L;;;;;N;;;;; +168F9;BAMUM LETTER PHASE-D NGGAAMAE;Lo;0;L;;;;;N;;;;; +168FA;BAMUM LETTER PHASE-D NYAM;Lo;0;L;;;;;N;;;;; +168FB;BAMUM LETTER PHASE-D WUAEN;Lo;0;L;;;;;N;;;;; +168FC;BAMUM LETTER PHASE-D NGKUN;Lo;0;L;;;;;N;;;;; +168FD;BAMUM LETTER PHASE-D SHEE;Lo;0;L;;;;;N;;;;; +168FE;BAMUM LETTER PHASE-D NGKAP;Lo;0;L;;;;;N;;;;; +168FF;BAMUM LETTER PHASE-D KEUAETMEUN;Lo;0;L;;;;;N;;;;; +16900;BAMUM LETTER PHASE-D TEUT;Lo;0;L;;;;;N;;;;; +16901;BAMUM LETTER PHASE-D SHEUAE;Lo;0;L;;;;;N;;;;; +16902;BAMUM LETTER PHASE-D NJAP;Lo;0;L;;;;;N;;;;; +16903;BAMUM LETTER PHASE-D SUE;Lo;0;L;;;;;N;;;;; +16904;BAMUM LETTER PHASE-D KET;Lo;0;L;;;;;N;;;;; +16905;BAMUM LETTER PHASE-D YAEMMAE;Lo;0;L;;;;;N;;;;; +16906;BAMUM LETTER PHASE-D KUOM;Lo;0;L;;;;;N;;;;; +16907;BAMUM LETTER PHASE-D SAP;Lo;0;L;;;;;N;;;;; +16908;BAMUM LETTER PHASE-D MFEUT;Lo;0;L;;;;;N;;;;; +16909;BAMUM LETTER PHASE-D NDEUX;Lo;0;L;;;;;N;;;;; +1690A;BAMUM LETTER PHASE-D MALEERI;Lo;0;L;;;;;N;;;;; +1690B;BAMUM LETTER PHASE-D MEUT;Lo;0;L;;;;;N;;;;; +1690C;BAMUM LETTER PHASE-D SEUAEQ;Lo;0;L;;;;;N;;;;; +1690D;BAMUM LETTER PHASE-D YEN;Lo;0;L;;;;;N;;;;; +1690E;BAMUM LETTER PHASE-D NJEUAEM;Lo;0;L;;;;;N;;;;; +1690F;BAMUM LETTER PHASE-D KEUOT MBUAE;Lo;0;L;;;;;N;;;;; +16910;BAMUM LETTER PHASE-D NGKEURI;Lo;0;L;;;;;N;;;;; +16911;BAMUM LETTER PHASE-D TU;Lo;0;L;;;;;N;;;;; +16912;BAMUM LETTER PHASE-D GHAA;Lo;0;L;;;;;N;;;;; +16913;BAMUM LETTER PHASE-D NGKYEE;Lo;0;L;;;;;N;;;;; +16914;BAMUM LETTER PHASE-D FEUFEUAET;Lo;0;L;;;;;N;;;;; +16915;BAMUM LETTER PHASE-D NDEE;Lo;0;L;;;;;N;;;;; +16916;BAMUM LETTER PHASE-D MGBOFUM;Lo;0;L;;;;;N;;;;; +16917;BAMUM LETTER PHASE-D LEUAEP;Lo;0;L;;;;;N;;;;; +16918;BAMUM LETTER PHASE-D NDON;Lo;0;L;;;;;N;;;;; +16919;BAMUM LETTER PHASE-D MONI;Lo;0;L;;;;;N;;;;; +1691A;BAMUM LETTER PHASE-D MGBEUN;Lo;0;L;;;;;N;;;;; +1691B;BAMUM LETTER PHASE-D PUUT;Lo;0;L;;;;;N;;;;; +1691C;BAMUM LETTER PHASE-D MGBIEE;Lo;0;L;;;;;N;;;;; +1691D;BAMUM LETTER PHASE-D MFO;Lo;0;L;;;;;N;;;;; +1691E;BAMUM LETTER PHASE-D LUM;Lo;0;L;;;;;N;;;;; +1691F;BAMUM LETTER PHASE-D NSIEEP;Lo;0;L;;;;;N;;;;; +16920;BAMUM LETTER PHASE-D MBAA;Lo;0;L;;;;;N;;;;; +16921;BAMUM LETTER PHASE-D KWAET;Lo;0;L;;;;;N;;;;; +16922;BAMUM LETTER PHASE-D NYET;Lo;0;L;;;;;N;;;;; +16923;BAMUM LETTER PHASE-D TEUAEN;Lo;0;L;;;;;N;;;;; +16924;BAMUM LETTER PHASE-D SOT;Lo;0;L;;;;;N;;;;; +16925;BAMUM LETTER PHASE-D YUWOQ;Lo;0;L;;;;;N;;;;; +16926;BAMUM LETTER PHASE-D KEUM;Lo;0;L;;;;;N;;;;; +16927;BAMUM LETTER PHASE-D RAEM;Lo;0;L;;;;;N;;;;; +16928;BAMUM LETTER PHASE-D TEEEE;Lo;0;L;;;;;N;;;;; +16929;BAMUM LETTER PHASE-D NGKEUAEQ;Lo;0;L;;;;;N;;;;; +1692A;BAMUM LETTER PHASE-D MFEUAE;Lo;0;L;;;;;N;;;;; +1692B;BAMUM LETTER PHASE-D NSIEET;Lo;0;L;;;;;N;;;;; +1692C;BAMUM LETTER PHASE-D KEUP;Lo;0;L;;;;;N;;;;; +1692D;BAMUM LETTER PHASE-D PIP;Lo;0;L;;;;;N;;;;; +1692E;BAMUM LETTER PHASE-D PEUTAE;Lo;0;L;;;;;N;;;;; +1692F;BAMUM LETTER PHASE-D NYUE;Lo;0;L;;;;;N;;;;; +16930;BAMUM LETTER PHASE-D LET;Lo;0;L;;;;;N;;;;; +16931;BAMUM LETTER PHASE-D NGGAAM;Lo;0;L;;;;;N;;;;; +16932;BAMUM LETTER PHASE-D MFIEE;Lo;0;L;;;;;N;;;;; +16933;BAMUM LETTER PHASE-D NGGWAEN;Lo;0;L;;;;;N;;;;; +16934;BAMUM LETTER PHASE-D YUOM;Lo;0;L;;;;;N;;;;; +16935;BAMUM LETTER PHASE-D PAP;Lo;0;L;;;;;N;;;;; +16936;BAMUM LETTER PHASE-D YUOP;Lo;0;L;;;;;N;;;;; +16937;BAMUM LETTER PHASE-D NDAM;Lo;0;L;;;;;N;;;;; +16938;BAMUM LETTER PHASE-D NTEUM;Lo;0;L;;;;;N;;;;; +16939;BAMUM LETTER PHASE-D SUAE;Lo;0;L;;;;;N;;;;; +1693A;BAMUM LETTER PHASE-D KUN;Lo;0;L;;;;;N;;;;; +1693B;BAMUM LETTER PHASE-D NGGEUX;Lo;0;L;;;;;N;;;;; +1693C;BAMUM LETTER PHASE-D NGKIEE;Lo;0;L;;;;;N;;;;; +1693D;BAMUM LETTER PHASE-D TUOT;Lo;0;L;;;;;N;;;;; +1693E;BAMUM LETTER PHASE-D MEUN;Lo;0;L;;;;;N;;;;; +1693F;BAMUM LETTER PHASE-D KUQ;Lo;0;L;;;;;N;;;;; +16940;BAMUM LETTER PHASE-D NSUM;Lo;0;L;;;;;N;;;;; +16941;BAMUM LETTER PHASE-D TEUN;Lo;0;L;;;;;N;;;;; +16942;BAMUM LETTER PHASE-D MAENJET;Lo;0;L;;;;;N;;;;; +16943;BAMUM LETTER PHASE-D NGGAP;Lo;0;L;;;;;N;;;;; +16944;BAMUM LETTER PHASE-D LEUM;Lo;0;L;;;;;N;;;;; +16945;BAMUM LETTER PHASE-D NGGUOM;Lo;0;L;;;;;N;;;;; +16946;BAMUM LETTER PHASE-D NSHUT;Lo;0;L;;;;;N;;;;; +16947;BAMUM LETTER PHASE-D NJUEQ;Lo;0;L;;;;;N;;;;; +16948;BAMUM LETTER PHASE-D GHEUAE;Lo;0;L;;;;;N;;;;; +16949;BAMUM LETTER PHASE-D KU;Lo;0;L;;;;;N;;;;; +1694A;BAMUM LETTER PHASE-D REN OLD;Lo;0;L;;;;;N;;;;; +1694B;BAMUM LETTER PHASE-D TAE;Lo;0;L;;;;;N;;;;; +1694C;BAMUM LETTER PHASE-D TOQ;Lo;0;L;;;;;N;;;;; +1694D;BAMUM LETTER PHASE-D NYI;Lo;0;L;;;;;N;;;;; +1694E;BAMUM LETTER PHASE-D RII;Lo;0;L;;;;;N;;;;; +1694F;BAMUM LETTER PHASE-D LEEEE;Lo;0;L;;;;;N;;;;; +16950;BAMUM LETTER PHASE-D MEEEE;Lo;0;L;;;;;N;;;;; +16951;BAMUM LETTER PHASE-D M;Lo;0;L;;;;;N;;;;; +16952;BAMUM LETTER PHASE-D SUU;Lo;0;L;;;;;N;;;;; +16953;BAMUM LETTER PHASE-D MU;Lo;0;L;;;;;N;;;;; +16954;BAMUM LETTER PHASE-D SHII;Lo;0;L;;;;;N;;;;; +16955;BAMUM LETTER PHASE-D SHEUX;Lo;0;L;;;;;N;;;;; +16956;BAMUM LETTER PHASE-D KYEE;Lo;0;L;;;;;N;;;;; +16957;BAMUM LETTER PHASE-D NU;Lo;0;L;;;;;N;;;;; +16958;BAMUM LETTER PHASE-D SHU;Lo;0;L;;;;;N;;;;; +16959;BAMUM LETTER PHASE-D NTEE;Lo;0;L;;;;;N;;;;; +1695A;BAMUM LETTER PHASE-D PEE;Lo;0;L;;;;;N;;;;; +1695B;BAMUM LETTER PHASE-D NI;Lo;0;L;;;;;N;;;;; +1695C;BAMUM LETTER PHASE-D SHOQ;Lo;0;L;;;;;N;;;;; +1695D;BAMUM LETTER PHASE-D PUQ;Lo;0;L;;;;;N;;;;; +1695E;BAMUM LETTER PHASE-D MVOP;Lo;0;L;;;;;N;;;;; +1695F;BAMUM LETTER PHASE-D LOQ;Lo;0;L;;;;;N;;;;; +16960;BAMUM LETTER PHASE-D REN MUCH;Lo;0;L;;;;;N;;;;; +16961;BAMUM LETTER PHASE-D TI;Lo;0;L;;;;;N;;;;; +16962;BAMUM LETTER PHASE-D NTUU;Lo;0;L;;;;;N;;;;; +16963;BAMUM LETTER PHASE-D MBAA SEVEN;Lo;0;L;;;;;N;;;;; +16964;BAMUM LETTER PHASE-D SAQ;Lo;0;L;;;;;N;;;;; +16965;BAMUM LETTER PHASE-D FAA;Lo;0;L;;;;;N;;;;; +16966;BAMUM LETTER PHASE-E NDAP;Lo;0;L;;;;;N;;;;; +16967;BAMUM LETTER PHASE-E TOON;Lo;0;L;;;;;N;;;;; +16968;BAMUM LETTER PHASE-E MBEUM;Lo;0;L;;;;;N;;;;; +16969;BAMUM LETTER PHASE-E LAP;Lo;0;L;;;;;N;;;;; +1696A;BAMUM LETTER PHASE-E VOM;Lo;0;L;;;;;N;;;;; +1696B;BAMUM LETTER PHASE-E LOON;Lo;0;L;;;;;N;;;;; +1696C;BAMUM LETTER PHASE-E PAA;Lo;0;L;;;;;N;;;;; +1696D;BAMUM LETTER PHASE-E SOM;Lo;0;L;;;;;N;;;;; +1696E;BAMUM LETTER PHASE-E RAQ;Lo;0;L;;;;;N;;;;; +1696F;BAMUM LETTER PHASE-E NSHUOP;Lo;0;L;;;;;N;;;;; +16970;BAMUM LETTER PHASE-E NDUN;Lo;0;L;;;;;N;;;;; +16971;BAMUM LETTER PHASE-E PUAE;Lo;0;L;;;;;N;;;;; +16972;BAMUM LETTER PHASE-E TAM;Lo;0;L;;;;;N;;;;; +16973;BAMUM LETTER PHASE-E NGKA;Lo;0;L;;;;;N;;;;; +16974;BAMUM LETTER PHASE-E KPEUX;Lo;0;L;;;;;N;;;;; +16975;BAMUM LETTER PHASE-E WUO;Lo;0;L;;;;;N;;;;; +16976;BAMUM LETTER PHASE-E SEE;Lo;0;L;;;;;N;;;;; +16977;BAMUM LETTER PHASE-E NGGEUAET;Lo;0;L;;;;;N;;;;; +16978;BAMUM LETTER PHASE-E PAAM;Lo;0;L;;;;;N;;;;; +16979;BAMUM LETTER PHASE-E TOO;Lo;0;L;;;;;N;;;;; +1697A;BAMUM LETTER PHASE-E KUOP;Lo;0;L;;;;;N;;;;; +1697B;BAMUM LETTER PHASE-E LOM;Lo;0;L;;;;;N;;;;; +1697C;BAMUM LETTER PHASE-E NSHIEE;Lo;0;L;;;;;N;;;;; +1697D;BAMUM LETTER PHASE-E NGOP;Lo;0;L;;;;;N;;;;; +1697E;BAMUM LETTER PHASE-E MAEM;Lo;0;L;;;;;N;;;;; +1697F;BAMUM LETTER PHASE-E NGKEUX;Lo;0;L;;;;;N;;;;; +16980;BAMUM LETTER PHASE-E NGOQ;Lo;0;L;;;;;N;;;;; +16981;BAMUM LETTER PHASE-E NSHUE;Lo;0;L;;;;;N;;;;; +16982;BAMUM LETTER PHASE-E RIMGBA;Lo;0;L;;;;;N;;;;; +16983;BAMUM LETTER PHASE-E NJEUX;Lo;0;L;;;;;N;;;;; +16984;BAMUM LETTER PHASE-E PEEM;Lo;0;L;;;;;N;;;;; +16985;BAMUM LETTER PHASE-E SAA;Lo;0;L;;;;;N;;;;; +16986;BAMUM LETTER PHASE-E NGGURAE;Lo;0;L;;;;;N;;;;; +16987;BAMUM LETTER PHASE-E MGBA;Lo;0;L;;;;;N;;;;; +16988;BAMUM LETTER PHASE-E GHEUX;Lo;0;L;;;;;N;;;;; +16989;BAMUM LETTER PHASE-E NGKEUAEM;Lo;0;L;;;;;N;;;;; +1698A;BAMUM LETTER PHASE-E NJAEMLI;Lo;0;L;;;;;N;;;;; +1698B;BAMUM LETTER PHASE-E MAP;Lo;0;L;;;;;N;;;;; +1698C;BAMUM LETTER PHASE-E LOOT;Lo;0;L;;;;;N;;;;; +1698D;BAMUM LETTER PHASE-E NGGEEEE;Lo;0;L;;;;;N;;;;; +1698E;BAMUM LETTER PHASE-E NDIQ;Lo;0;L;;;;;N;;;;; +1698F;BAMUM LETTER PHASE-E TAEN NTEUM;Lo;0;L;;;;;N;;;;; +16990;BAMUM LETTER PHASE-E SET;Lo;0;L;;;;;N;;;;; +16991;BAMUM LETTER PHASE-E PUM;Lo;0;L;;;;;N;;;;; +16992;BAMUM LETTER PHASE-E NDAA SOFTNESS;Lo;0;L;;;;;N;;;;; +16993;BAMUM LETTER PHASE-E NGGUAESHAE NYAM;Lo;0;L;;;;;N;;;;; +16994;BAMUM LETTER PHASE-E YIEE;Lo;0;L;;;;;N;;;;; +16995;BAMUM LETTER PHASE-E GHEUN;Lo;0;L;;;;;N;;;;; +16996;BAMUM LETTER PHASE-E TUAE;Lo;0;L;;;;;N;;;;; +16997;BAMUM LETTER PHASE-E YEUAE;Lo;0;L;;;;;N;;;;; +16998;BAMUM LETTER PHASE-E PO;Lo;0;L;;;;;N;;;;; +16999;BAMUM LETTER PHASE-E TUMAE;Lo;0;L;;;;;N;;;;; +1699A;BAMUM LETTER PHASE-E KEUAE;Lo;0;L;;;;;N;;;;; +1699B;BAMUM LETTER PHASE-E SUAEN;Lo;0;L;;;;;N;;;;; +1699C;BAMUM LETTER PHASE-E TEUAEQ;Lo;0;L;;;;;N;;;;; +1699D;BAMUM LETTER PHASE-E VEUAE;Lo;0;L;;;;;N;;;;; +1699E;BAMUM LETTER PHASE-E WEUX;Lo;0;L;;;;;N;;;;; +1699F;BAMUM LETTER PHASE-E LAAM;Lo;0;L;;;;;N;;;;; +169A0;BAMUM LETTER PHASE-E PU;Lo;0;L;;;;;N;;;;; +169A1;BAMUM LETTER PHASE-E TAAQ;Lo;0;L;;;;;N;;;;; +169A2;BAMUM LETTER PHASE-E GHAAMAE;Lo;0;L;;;;;N;;;;; +169A3;BAMUM LETTER PHASE-E NGEUREUT;Lo;0;L;;;;;N;;;;; +169A4;BAMUM LETTER PHASE-E SHEUAEQ;Lo;0;L;;;;;N;;;;; +169A5;BAMUM LETTER PHASE-E MGBEN;Lo;0;L;;;;;N;;;;; +169A6;BAMUM LETTER PHASE-E MBEE;Lo;0;L;;;;;N;;;;; +169A7;BAMUM LETTER PHASE-E NZAQ;Lo;0;L;;;;;N;;;;; +169A8;BAMUM LETTER PHASE-E NKOM;Lo;0;L;;;;;N;;;;; +169A9;BAMUM LETTER PHASE-E GBET;Lo;0;L;;;;;N;;;;; +169AA;BAMUM LETTER PHASE-E TUM;Lo;0;L;;;;;N;;;;; +169AB;BAMUM LETTER PHASE-E KUET;Lo;0;L;;;;;N;;;;; +169AC;BAMUM LETTER PHASE-E YAP;Lo;0;L;;;;;N;;;;; +169AD;BAMUM LETTER PHASE-E NYI CLEAVER;Lo;0;L;;;;;N;;;;; +169AE;BAMUM LETTER PHASE-E YIT;Lo;0;L;;;;;N;;;;; +169AF;BAMUM LETTER PHASE-E MFEUQ;Lo;0;L;;;;;N;;;;; +169B0;BAMUM LETTER PHASE-E NDIAQ;Lo;0;L;;;;;N;;;;; +169B1;BAMUM LETTER PHASE-E PIEEQ;Lo;0;L;;;;;N;;;;; +169B2;BAMUM LETTER PHASE-E YUEQ;Lo;0;L;;;;;N;;;;; +169B3;BAMUM LETTER PHASE-E LEUAEM;Lo;0;L;;;;;N;;;;; +169B4;BAMUM LETTER PHASE-E FUE;Lo;0;L;;;;;N;;;;; +169B5;BAMUM LETTER PHASE-E GBEUX;Lo;0;L;;;;;N;;;;; +169B6;BAMUM LETTER PHASE-E NGKUP;Lo;0;L;;;;;N;;;;; +169B7;BAMUM LETTER PHASE-E KET;Lo;0;L;;;;;N;;;;; +169B8;BAMUM LETTER PHASE-E MAE;Lo;0;L;;;;;N;;;;; +169B9;BAMUM LETTER PHASE-E NGKAAMI;Lo;0;L;;;;;N;;;;; +169BA;BAMUM LETTER PHASE-E GHET;Lo;0;L;;;;;N;;;;; +169BB;BAMUM LETTER PHASE-E FA;Lo;0;L;;;;;N;;;;; +169BC;BAMUM LETTER PHASE-E NTUM;Lo;0;L;;;;;N;;;;; +169BD;BAMUM LETTER PHASE-E PEUT;Lo;0;L;;;;;N;;;;; +169BE;BAMUM LETTER PHASE-E YEUM;Lo;0;L;;;;;N;;;;; +169BF;BAMUM LETTER PHASE-E NGGEUAE;Lo;0;L;;;;;N;;;;; +169C0;BAMUM LETTER PHASE-E NYI BETWEEN;Lo;0;L;;;;;N;;;;; +169C1;BAMUM LETTER PHASE-E NZUQ;Lo;0;L;;;;;N;;;;; +169C2;BAMUM LETTER PHASE-E POON;Lo;0;L;;;;;N;;;;; +169C3;BAMUM LETTER PHASE-E MIEE;Lo;0;L;;;;;N;;;;; +169C4;BAMUM LETTER PHASE-E FUET;Lo;0;L;;;;;N;;;;; +169C5;BAMUM LETTER PHASE-E NAE;Lo;0;L;;;;;N;;;;; +169C6;BAMUM LETTER PHASE-E MUAE;Lo;0;L;;;;;N;;;;; +169C7;BAMUM LETTER PHASE-E GHEUAE;Lo;0;L;;;;;N;;;;; +169C8;BAMUM LETTER PHASE-E FU I;Lo;0;L;;;;;N;;;;; +169C9;BAMUM LETTER PHASE-E MVI;Lo;0;L;;;;;N;;;;; +169CA;BAMUM LETTER PHASE-E PUAQ;Lo;0;L;;;;;N;;;;; +169CB;BAMUM LETTER PHASE-E NGKUM;Lo;0;L;;;;;N;;;;; +169CC;BAMUM LETTER PHASE-E KUT;Lo;0;L;;;;;N;;;;; +169CD;BAMUM LETTER PHASE-E PIET;Lo;0;L;;;;;N;;;;; +169CE;BAMUM LETTER PHASE-E NTAP;Lo;0;L;;;;;N;;;;; +169CF;BAMUM LETTER PHASE-E YEUAET;Lo;0;L;;;;;N;;;;; +169D0;BAMUM LETTER PHASE-E NGGUP;Lo;0;L;;;;;N;;;;; +169D1;BAMUM LETTER PHASE-E PA PEOPLE;Lo;0;L;;;;;N;;;;; +169D2;BAMUM LETTER PHASE-E FU CALL;Lo;0;L;;;;;N;;;;; +169D3;BAMUM LETTER PHASE-E FOM;Lo;0;L;;;;;N;;;;; +169D4;BAMUM LETTER PHASE-E NJEE;Lo;0;L;;;;;N;;;;; +169D5;BAMUM LETTER PHASE-E A;Lo;0;L;;;;;N;;;;; +169D6;BAMUM LETTER PHASE-E TOQ;Lo;0;L;;;;;N;;;;; +169D7;BAMUM LETTER PHASE-E O;Lo;0;L;;;;;N;;;;; +169D8;BAMUM LETTER PHASE-E I;Lo;0;L;;;;;N;;;;; +169D9;BAMUM LETTER PHASE-E LAQ;Lo;0;L;;;;;N;;;;; +169DA;BAMUM LETTER PHASE-E PA PLURAL;Lo;0;L;;;;;N;;;;; +169DB;BAMUM LETTER PHASE-E TAA;Lo;0;L;;;;;N;;;;; +169DC;BAMUM LETTER PHASE-E TAQ;Lo;0;L;;;;;N;;;;; +169DD;BAMUM LETTER PHASE-E NDAA MY HOUSE;Lo;0;L;;;;;N;;;;; +169DE;BAMUM LETTER PHASE-E SHIQ;Lo;0;L;;;;;N;;;;; +169DF;BAMUM LETTER PHASE-E YEUX;Lo;0;L;;;;;N;;;;; +169E0;BAMUM LETTER PHASE-E NGUAE;Lo;0;L;;;;;N;;;;; +169E1;BAMUM LETTER PHASE-E YUAEN;Lo;0;L;;;;;N;;;;; +169E2;BAMUM LETTER PHASE-E YOQ SWIMMING;Lo;0;L;;;;;N;;;;; +169E3;BAMUM LETTER PHASE-E YOQ COVER;Lo;0;L;;;;;N;;;;; +169E4;BAMUM LETTER PHASE-E YUQ;Lo;0;L;;;;;N;;;;; +169E5;BAMUM LETTER PHASE-E YUN;Lo;0;L;;;;;N;;;;; +169E6;BAMUM LETTER PHASE-E KEUX;Lo;0;L;;;;;N;;;;; +169E7;BAMUM LETTER PHASE-E PEUX;Lo;0;L;;;;;N;;;;; +169E8;BAMUM LETTER PHASE-E NJEE EPOCH;Lo;0;L;;;;;N;;;;; +169E9;BAMUM LETTER PHASE-E PUE;Lo;0;L;;;;;N;;;;; +169EA;BAMUM LETTER PHASE-E WUE;Lo;0;L;;;;;N;;;;; +169EB;BAMUM LETTER PHASE-E FEE;Lo;0;L;;;;;N;;;;; +169EC;BAMUM LETTER PHASE-E VEE;Lo;0;L;;;;;N;;;;; +169ED;BAMUM LETTER PHASE-E LU;Lo;0;L;;;;;N;;;;; +169EE;BAMUM LETTER PHASE-E MI;Lo;0;L;;;;;N;;;;; +169EF;BAMUM LETTER PHASE-E REUX;Lo;0;L;;;;;N;;;;; +169F0;BAMUM LETTER PHASE-E RAE;Lo;0;L;;;;;N;;;;; +169F1;BAMUM LETTER PHASE-E NGUAET;Lo;0;L;;;;;N;;;;; +169F2;BAMUM LETTER PHASE-E NGA;Lo;0;L;;;;;N;;;;; +169F3;BAMUM LETTER PHASE-E SHO;Lo;0;L;;;;;N;;;;; +169F4;BAMUM LETTER PHASE-E SHOQ;Lo;0;L;;;;;N;;;;; +169F5;BAMUM LETTER PHASE-E FU REMEDY;Lo;0;L;;;;;N;;;;; +169F6;BAMUM LETTER PHASE-E NA;Lo;0;L;;;;;N;;;;; +169F7;BAMUM LETTER PHASE-E PI;Lo;0;L;;;;;N;;;;; +169F8;BAMUM LETTER PHASE-E LOQ;Lo;0;L;;;;;N;;;;; +169F9;BAMUM LETTER PHASE-E KO;Lo;0;L;;;;;N;;;;; +169FA;BAMUM LETTER PHASE-E MEN;Lo;0;L;;;;;N;;;;; +169FB;BAMUM LETTER PHASE-E MA;Lo;0;L;;;;;N;;;;; +169FC;BAMUM LETTER PHASE-E MAQ;Lo;0;L;;;;;N;;;;; +169FD;BAMUM LETTER PHASE-E TEU;Lo;0;L;;;;;N;;;;; +169FE;BAMUM LETTER PHASE-E KI;Lo;0;L;;;;;N;;;;; +169FF;BAMUM LETTER PHASE-E MON;Lo;0;L;;;;;N;;;;; +16A00;BAMUM LETTER PHASE-E TEN;Lo;0;L;;;;;N;;;;; +16A01;BAMUM LETTER PHASE-E FAQ;Lo;0;L;;;;;N;;;;; +16A02;BAMUM LETTER PHASE-E GHOM;Lo;0;L;;;;;N;;;;; +16A03;BAMUM LETTER PHASE-F KA;Lo;0;L;;;;;N;;;;; +16A04;BAMUM LETTER PHASE-F U;Lo;0;L;;;;;N;;;;; +16A05;BAMUM LETTER PHASE-F KU;Lo;0;L;;;;;N;;;;; +16A06;BAMUM LETTER PHASE-F EE;Lo;0;L;;;;;N;;;;; +16A07;BAMUM LETTER PHASE-F REE;Lo;0;L;;;;;N;;;;; +16A08;BAMUM LETTER PHASE-F TAE;Lo;0;L;;;;;N;;;;; +16A09;BAMUM LETTER PHASE-F NYI;Lo;0;L;;;;;N;;;;; +16A0A;BAMUM LETTER PHASE-F LA;Lo;0;L;;;;;N;;;;; +16A0B;BAMUM LETTER PHASE-F RII;Lo;0;L;;;;;N;;;;; +16A0C;BAMUM LETTER PHASE-F RIEE;Lo;0;L;;;;;N;;;;; +16A0D;BAMUM LETTER PHASE-F MEEEE;Lo;0;L;;;;;N;;;;; +16A0E;BAMUM LETTER PHASE-F TAA;Lo;0;L;;;;;N;;;;; +16A0F;BAMUM LETTER PHASE-F NDAA;Lo;0;L;;;;;N;;;;; +16A10;BAMUM LETTER PHASE-F NJAEM;Lo;0;L;;;;;N;;;;; +16A11;BAMUM LETTER PHASE-F M;Lo;0;L;;;;;N;;;;; +16A12;BAMUM LETTER PHASE-F SUU;Lo;0;L;;;;;N;;;;; +16A13;BAMUM LETTER PHASE-F SHII;Lo;0;L;;;;;N;;;;; +16A14;BAMUM LETTER PHASE-F SI;Lo;0;L;;;;;N;;;;; +16A15;BAMUM LETTER PHASE-F SEUX;Lo;0;L;;;;;N;;;;; +16A16;BAMUM LETTER PHASE-F KYEE;Lo;0;L;;;;;N;;;;; +16A17;BAMUM LETTER PHASE-F KET;Lo;0;L;;;;;N;;;;; +16A18;BAMUM LETTER PHASE-F NUAE;Lo;0;L;;;;;N;;;;; +16A19;BAMUM LETTER PHASE-F NU;Lo;0;L;;;;;N;;;;; +16A1A;BAMUM LETTER PHASE-F NJUAE;Lo;0;L;;;;;N;;;;; +16A1B;BAMUM LETTER PHASE-F YOQ;Lo;0;L;;;;;N;;;;; +16A1C;BAMUM LETTER PHASE-F SHU;Lo;0;L;;;;;N;;;;; +16A1D;BAMUM LETTER PHASE-F YA;Lo;0;L;;;;;N;;;;; +16A1E;BAMUM LETTER PHASE-F NSHA;Lo;0;L;;;;;N;;;;; +16A1F;BAMUM LETTER PHASE-F PEUX;Lo;0;L;;;;;N;;;;; +16A20;BAMUM LETTER PHASE-F NTEE;Lo;0;L;;;;;N;;;;; +16A21;BAMUM LETTER PHASE-F WUE;Lo;0;L;;;;;N;;;;; +16A22;BAMUM LETTER PHASE-F PEE;Lo;0;L;;;;;N;;;;; +16A23;BAMUM LETTER PHASE-F RU;Lo;0;L;;;;;N;;;;; +16A24;BAMUM LETTER PHASE-F NI;Lo;0;L;;;;;N;;;;; +16A25;BAMUM LETTER PHASE-F REUX;Lo;0;L;;;;;N;;;;; +16A26;BAMUM LETTER PHASE-F KEN;Lo;0;L;;;;;N;;;;; +16A27;BAMUM LETTER PHASE-F NGKWAEN;Lo;0;L;;;;;N;;;;; +16A28;BAMUM LETTER PHASE-F NGGA;Lo;0;L;;;;;N;;;;; +16A29;BAMUM LETTER PHASE-F SHO;Lo;0;L;;;;;N;;;;; +16A2A;BAMUM LETTER PHASE-F PUAE;Lo;0;L;;;;;N;;;;; +16A2B;BAMUM LETTER PHASE-F FOM;Lo;0;L;;;;;N;;;;; +16A2C;BAMUM LETTER PHASE-F WA;Lo;0;L;;;;;N;;;;; +16A2D;BAMUM LETTER PHASE-F LI;Lo;0;L;;;;;N;;;;; +16A2E;BAMUM LETTER PHASE-F LOQ;Lo;0;L;;;;;N;;;;; +16A2F;BAMUM LETTER PHASE-F KO;Lo;0;L;;;;;N;;;;; +16A30;BAMUM LETTER PHASE-F MBEN;Lo;0;L;;;;;N;;;;; +16A31;BAMUM LETTER PHASE-F REN;Lo;0;L;;;;;N;;;;; +16A32;BAMUM LETTER PHASE-F MA;Lo;0;L;;;;;N;;;;; +16A33;BAMUM LETTER PHASE-F MO;Lo;0;L;;;;;N;;;;; +16A34;BAMUM LETTER PHASE-F MBAA;Lo;0;L;;;;;N;;;;; +16A35;BAMUM LETTER PHASE-F TET;Lo;0;L;;;;;N;;;;; +16A36;BAMUM LETTER PHASE-F KPA;Lo;0;L;;;;;N;;;;; +16A37;BAMUM LETTER PHASE-F SAMBA;Lo;0;L;;;;;N;;;;; +16A38;BAMUM LETTER PHASE-F VUEQ;Lo;0;L;;;;;N;;;;; +16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;; +16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;; +16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;; +16F03;MIAO LETTER PLA;Lo;0;L;;;;;N;;;;; +16F04;MIAO LETTER MA;Lo;0;L;;;;;N;;;;; +16F05;MIAO LETTER MHA;Lo;0;L;;;;;N;;;;; +16F06;MIAO LETTER ARCHAIC MA;Lo;0;L;;;;;N;;;;; +16F07;MIAO LETTER FA;Lo;0;L;;;;;N;;;;; +16F08;MIAO LETTER VA;Lo;0;L;;;;;N;;;;; +16F09;MIAO LETTER VFA;Lo;0;L;;;;;N;;;;; +16F0A;MIAO LETTER TA;Lo;0;L;;;;;N;;;;; +16F0B;MIAO LETTER DA;Lo;0;L;;;;;N;;;;; +16F0C;MIAO LETTER YI TTA;Lo;0;L;;;;;N;;;;; +16F0D;MIAO LETTER YI TA;Lo;0;L;;;;;N;;;;; +16F0E;MIAO LETTER TTA;Lo;0;L;;;;;N;;;;; +16F0F;MIAO LETTER DDA;Lo;0;L;;;;;N;;;;; +16F10;MIAO LETTER NA;Lo;0;L;;;;;N;;;;; +16F11;MIAO LETTER NHA;Lo;0;L;;;;;N;;;;; +16F12;MIAO LETTER YI NNA;Lo;0;L;;;;;N;;;;; +16F13;MIAO LETTER ARCHAIC NA;Lo;0;L;;;;;N;;;;; +16F14;MIAO LETTER NNA;Lo;0;L;;;;;N;;;;; +16F15;MIAO LETTER NNHA;Lo;0;L;;;;;N;;;;; +16F16;MIAO LETTER LA;Lo;0;L;;;;;N;;;;; +16F17;MIAO LETTER LYA;Lo;0;L;;;;;N;;;;; +16F18;MIAO LETTER LHA;Lo;0;L;;;;;N;;;;; +16F19;MIAO LETTER LHYA;Lo;0;L;;;;;N;;;;; +16F1A;MIAO LETTER TLHA;Lo;0;L;;;;;N;;;;; +16F1B;MIAO LETTER DLHA;Lo;0;L;;;;;N;;;;; +16F1C;MIAO LETTER TLHYA;Lo;0;L;;;;;N;;;;; +16F1D;MIAO LETTER DLHYA;Lo;0;L;;;;;N;;;;; +16F1E;MIAO LETTER KA;Lo;0;L;;;;;N;;;;; +16F1F;MIAO LETTER GA;Lo;0;L;;;;;N;;;;; +16F20;MIAO LETTER YI KA;Lo;0;L;;;;;N;;;;; +16F21;MIAO LETTER QA;Lo;0;L;;;;;N;;;;; +16F22;MIAO LETTER QGA;Lo;0;L;;;;;N;;;;; +16F23;MIAO LETTER NGA;Lo;0;L;;;;;N;;;;; +16F24;MIAO LETTER NGHA;Lo;0;L;;;;;N;;;;; +16F25;MIAO LETTER ARCHAIC NGA;Lo;0;L;;;;;N;;;;; +16F26;MIAO LETTER HA;Lo;0;L;;;;;N;;;;; +16F27;MIAO LETTER XA;Lo;0;L;;;;;N;;;;; +16F28;MIAO LETTER GHA;Lo;0;L;;;;;N;;;;; +16F29;MIAO LETTER GHHA;Lo;0;L;;;;;N;;;;; +16F2A;MIAO LETTER TSSA;Lo;0;L;;;;;N;;;;; +16F2B;MIAO LETTER DZZA;Lo;0;L;;;;;N;;;;; +16F2C;MIAO LETTER NYA;Lo;0;L;;;;;N;;;;; +16F2D;MIAO LETTER NYHA;Lo;0;L;;;;;N;;;;; +16F2E;MIAO LETTER TSHA;Lo;0;L;;;;;N;;;;; +16F2F;MIAO LETTER DZHA;Lo;0;L;;;;;N;;;;; +16F30;MIAO LETTER YI TSHA;Lo;0;L;;;;;N;;;;; +16F31;MIAO LETTER YI DZHA;Lo;0;L;;;;;N;;;;; +16F32;MIAO LETTER REFORMED TSHA;Lo;0;L;;;;;N;;;;; +16F33;MIAO LETTER SHA;Lo;0;L;;;;;N;;;;; +16F34;MIAO LETTER SSA;Lo;0;L;;;;;N;;;;; +16F35;MIAO LETTER ZHA;Lo;0;L;;;;;N;;;;; +16F36;MIAO LETTER ZSHA;Lo;0;L;;;;;N;;;;; +16F37;MIAO LETTER TSA;Lo;0;L;;;;;N;;;;; +16F38;MIAO LETTER DZA;Lo;0;L;;;;;N;;;;; +16F39;MIAO LETTER YI TSA;Lo;0;L;;;;;N;;;;; +16F3A;MIAO LETTER SA;Lo;0;L;;;;;N;;;;; +16F3B;MIAO LETTER ZA;Lo;0;L;;;;;N;;;;; +16F3C;MIAO LETTER ZSA;Lo;0;L;;;;;N;;;;; +16F3D;MIAO LETTER ZZA;Lo;0;L;;;;;N;;;;; +16F3E;MIAO LETTER ZZSA;Lo;0;L;;;;;N;;;;; +16F3F;MIAO LETTER ARCHAIC ZZA;Lo;0;L;;;;;N;;;;; +16F40;MIAO LETTER ZZYA;Lo;0;L;;;;;N;;;;; +16F41;MIAO LETTER ZZSYA;Lo;0;L;;;;;N;;;;; +16F42;MIAO LETTER WA;Lo;0;L;;;;;N;;;;; +16F43;MIAO LETTER AH;Lo;0;L;;;;;N;;;;; +16F44;MIAO LETTER HHA;Lo;0;L;;;;;N;;;;; +16F50;MIAO LETTER NASALIZATION;Lo;0;L;;;;;N;;;;; +16F51;MIAO SIGN ASPIRATION;Mc;0;L;;;;;N;;;;; +16F52;MIAO SIGN REFORMED VOICING;Mc;0;L;;;;;N;;;;; +16F53;MIAO SIGN REFORMED ASPIRATION;Mc;0;L;;;;;N;;;;; +16F54;MIAO VOWEL SIGN A;Mc;0;L;;;;;N;;;;; +16F55;MIAO VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +16F56;MIAO VOWEL SIGN AHH;Mc;0;L;;;;;N;;;;; +16F57;MIAO VOWEL SIGN AN;Mc;0;L;;;;;N;;;;; +16F58;MIAO VOWEL SIGN ANG;Mc;0;L;;;;;N;;;;; +16F59;MIAO VOWEL SIGN O;Mc;0;L;;;;;N;;;;; +16F5A;MIAO VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; +16F5B;MIAO VOWEL SIGN WO;Mc;0;L;;;;;N;;;;; +16F5C;MIAO VOWEL SIGN W;Mc;0;L;;;;;N;;;;; +16F5D;MIAO VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +16F5E;MIAO VOWEL SIGN EN;Mc;0;L;;;;;N;;;;; +16F5F;MIAO VOWEL SIGN ENG;Mc;0;L;;;;;N;;;;; +16F60;MIAO VOWEL SIGN OEY;Mc;0;L;;;;;N;;;;; +16F61;MIAO VOWEL SIGN I;Mc;0;L;;;;;N;;;;; +16F62;MIAO VOWEL SIGN IA;Mc;0;L;;;;;N;;;;; +16F63;MIAO VOWEL SIGN IAN;Mc;0;L;;;;;N;;;;; +16F64;MIAO VOWEL SIGN IANG;Mc;0;L;;;;;N;;;;; +16F65;MIAO VOWEL SIGN IO;Mc;0;L;;;;;N;;;;; +16F66;MIAO VOWEL SIGN IE;Mc;0;L;;;;;N;;;;; +16F67;MIAO VOWEL SIGN II;Mc;0;L;;;;;N;;;;; +16F68;MIAO VOWEL SIGN IU;Mc;0;L;;;;;N;;;;; +16F69;MIAO VOWEL SIGN ING;Mc;0;L;;;;;N;;;;; +16F6A;MIAO VOWEL SIGN U;Mc;0;L;;;;;N;;;;; +16F6B;MIAO VOWEL SIGN UA;Mc;0;L;;;;;N;;;;; +16F6C;MIAO VOWEL SIGN UAN;Mc;0;L;;;;;N;;;;; +16F6D;MIAO VOWEL SIGN UANG;Mc;0;L;;;;;N;;;;; +16F6E;MIAO VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; +16F6F;MIAO VOWEL SIGN UEI;Mc;0;L;;;;;N;;;;; +16F70;MIAO VOWEL SIGN UNG;Mc;0;L;;;;;N;;;;; +16F71;MIAO VOWEL SIGN Y;Mc;0;L;;;;;N;;;;; +16F72;MIAO VOWEL SIGN YI;Mc;0;L;;;;;N;;;;; +16F73;MIAO VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; +16F74;MIAO VOWEL SIGN AEE;Mc;0;L;;;;;N;;;;; +16F75;MIAO VOWEL SIGN ERR;Mc;0;L;;;;;N;;;;; +16F76;MIAO VOWEL SIGN ROUNDED ERR;Mc;0;L;;;;;N;;;;; +16F77;MIAO VOWEL SIGN ER;Mc;0;L;;;;;N;;;;; +16F78;MIAO VOWEL SIGN ROUNDED ER;Mc;0;L;;;;;N;;;;; +16F79;MIAO VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +16F7A;MIAO VOWEL SIGN EI;Mc;0;L;;;;;N;;;;; +16F7B;MIAO VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; +16F7C;MIAO VOWEL SIGN OU;Mc;0;L;;;;;N;;;;; +16F7D;MIAO VOWEL SIGN N;Mc;0;L;;;;;N;;;;; +16F7E;MIAO VOWEL SIGN NG;Mc;0;L;;;;;N;;;;; +16F8F;MIAO TONE RIGHT;Mn;0;NSM;;;;;N;;;;; +16F90;MIAO TONE TOP RIGHT;Mn;0;NSM;;;;;N;;;;; +16F91;MIAO TONE ABOVE;Mn;0;NSM;;;;;N;;;;; +16F92;MIAO TONE BELOW;Mn;0;NSM;;;;;N;;;;; +16F93;MIAO LETTER TONE-2;Lm;0;L;;;;;N;;;;; +16F94;MIAO LETTER TONE-3;Lm;0;L;;;;;N;;;;; +16F95;MIAO LETTER TONE-4;Lm;0;L;;;;;N;;;;; +16F96;MIAO LETTER TONE-5;Lm;0;L;;;;;N;;;;; +16F97;MIAO LETTER TONE-6;Lm;0;L;;;;;N;;;;; +16F98;MIAO LETTER TONE-7;Lm;0;L;;;;;N;;;;; +16F99;MIAO LETTER TONE-8;Lm;0;L;;;;;N;;;;; +16F9A;MIAO LETTER REFORMED TONE-1;Lm;0;L;;;;;N;;;;; +16F9B;MIAO LETTER REFORMED TONE-2;Lm;0;L;;;;;N;;;;; +16F9C;MIAO LETTER REFORMED TONE-4;Lm;0;L;;;;;N;;;;; +16F9D;MIAO LETTER REFORMED TONE-5;Lm;0;L;;;;;N;;;;; +16F9E;MIAO LETTER REFORMED TONE-6;Lm;0;L;;;;;N;;;;; +16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;; +1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;; +1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;; +1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;; +1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;; +1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;; +1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;; +1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;; +1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;; +1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;; +1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;; +1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;; +1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;; +1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;; +1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;; +1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;; +1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;; +1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;; +1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;; +1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;; +1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;; +1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;; +1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;; +1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;; +1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;; +1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;; +1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;; +1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;; +1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;; +1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;; +1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;; +1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;; +1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;; +1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;; +1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;; +1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;; +1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;; +1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;; +1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;; +1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;; +1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;; +1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;; +1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;; +1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;; +1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;; +1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;; +1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;; +1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;; +1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;; +1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;; +1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;; +1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;; +1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;; +1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;; +1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;; +1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;; +1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;; +1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;; +1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;; +1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;; +1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;; +1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;; +1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;; +1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;; +1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;; +1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;; +1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;; +1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;; +1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;; +1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;; +1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;; +1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;; +1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;; +1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;; +1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;; +1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;; +1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;; +1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;; +1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;; +1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;; +1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;; +1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;; +1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;; +1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;; +1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;; +1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;; +1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;; +1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;; +1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;; +1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;; +1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;; +1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;; +1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;; +1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;; +1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;; +1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;; +1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;; +1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;; +1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;; +1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;; +1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;; +1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;; +1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;; +1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;; +1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;; +1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;; +1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;; +1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;; +1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;; +1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;; +1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;; +1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;; +1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;; +1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;; +1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;; +1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;; +1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;; +1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;; +1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;; +1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;; +1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;; +1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;; +1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;; +1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;; +1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;; +1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;; +1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;; +1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;; +1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;; +1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;; +1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;; +1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;; +1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;; +1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;; +1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;; +1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;; +1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;; +1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;; +1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;; +1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;; +1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;; +1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;; +1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;; +1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;; +1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;; +1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;; +1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;; +1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;; +1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; +1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;; +1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;; +1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;; +1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; +1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;; +1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;; +1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;; +1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;; +1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;; +1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;; +1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;; +1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;; +1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;; +1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;; +1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;; +1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;; +1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;; +1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;; +1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;; +1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;; +1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;; +1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;; +1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;; +1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;; +1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;; +1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;; +1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; +1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; +1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;; +1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;; +1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;; +1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;; +1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;; +1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;; +1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;; +1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;; +1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;; +1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;; +1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;; +1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;; +1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;; +1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;; +1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;; +1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;; +1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;; +1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;; +1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;; +1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;; +1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;; +1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;; +1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;; +1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;; +1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;; +1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;; +1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;; +1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;; +1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;; +1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;; +1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;; +1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;; +1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;; +1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;; +1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; +1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; +1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; +1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; +1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; +1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; +1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; +1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; +1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;; +1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;; +1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;; +1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;; +1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;; +1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;; +1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;; +1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;; +1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;; +1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;; +1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;; +1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;; +1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;; +1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;; +1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;; +1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;; +1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;; +1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;; +1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;; +1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;; +1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;; +1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;; +1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;; +1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;; +1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;; +1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;; +1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;; +1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;; +1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;; +1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;; +1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;; +1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;; +1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;; +1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;; +1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;; +1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;; +1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;; +1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;; +1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;; +1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;; +1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;; +1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;; +1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;; +1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;; +1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;; +1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;; +1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;; +1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;; +1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;; +1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;; +1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;; +1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;; +1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;; +1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;; +1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;; +1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;; +1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;; +1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;; +1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;; +1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;; +1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;; +1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; +1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; +1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;; +1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;; +1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; +1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; +1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;; +1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;; +1D129;MUSICAL SYMBOL MULTIPLE MEASURE REST;So;0;L;;;;;N;;;;; +1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;; +1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;; +1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;; +1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;; +1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;; +1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;; +1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;; +1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;; +1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;; +1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;; +1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;; +1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;; +1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;; +1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;; +1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;; +1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;; +1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;; +1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;; +1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;; +1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;; +1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;; +1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;; +1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;; +1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;; +1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;; +1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;; +1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;; +1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;; +1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;; +1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;; +1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;; +1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;; +1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;; +1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;; +1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;; +1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;; +1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; +1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; +1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;; +1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;; +1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;; +1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;; +1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; +1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; +1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;; +1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;; +1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;; +1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;; +1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;; +1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;; +1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;; +1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;; +1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;; +1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;; +1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;; +1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;; +1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;; +1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;; +1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;; +1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;; +1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;; +1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;; +1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;; +1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;; +1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;; +1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;; +1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;; +1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;; +1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;; +1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;; +1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;; +1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;; +1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;; +1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;; +1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;; +1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;; +1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;; +1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;; +1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;; +1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;; +1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;; +1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;; +1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;; +1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;; +1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;; +1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;; +1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;; +1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;; +1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;; +1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;; +1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;; +1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;; +1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;; +1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;; +1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;; +1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;; +1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;; +1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;; +1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;; +1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;; +1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;; +1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;; +1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;; +1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;; +1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;; +1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;; +1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;; +1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;; +1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;; +1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;; +1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;; +1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;; +1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;; +1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;; +1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;; +1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;; +1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;; +1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;; +1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;; +1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;; +1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;; +1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;; +1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;; +1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;; +1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;; +1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;; +1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;; +1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;; +1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;; +1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;; +1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;; +1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;; +1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;; +1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;; +1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;; +1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;; +1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;; +1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;; +1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;; +1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;; +1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;; +1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;; +1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;; +1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;; +1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;; +1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;; +1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;; +1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;; +1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;; +1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;; +1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;; +1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;; +1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;; +1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;; +1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;; +1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;; +1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;; +1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; +1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; +1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; +1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; +1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; +1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; +1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;; +1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;; +1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;; +1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;; +1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;; +1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;; +1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;; +1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;; +1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;; +1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;; +1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;; +1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;; +1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;; +1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;; +1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;; +1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;; +1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;; +1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;; +1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;; +1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;; +1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;; +1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;; +1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;; +1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;; +1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;; +1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;; +1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;; +1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;; +1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;; +1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;; +1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;; +1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;; +1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;; +1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;; +1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;; +1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;; +1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;; +1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;; +1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;; +1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;; +1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;; +1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;; +1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;; +1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;; +1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;; +1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;; +1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;; +1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;; +1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;; +1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;; +1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;; +1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;; +1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;; +1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;; +1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;; +1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;; +1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;; +1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;; +1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;; +1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;; +1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;; +1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;; +1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;; +1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;; +1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;; +1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;; +1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;; +1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;; +1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;; +1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;; +1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;; +1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;; +1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;; +1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;; +1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;; +1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;; +1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;; +1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;; +1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;; +1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;; +1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;; +1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;; +1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;; +1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;; +1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;; +1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;; +1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;; +1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;;;; +1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;;;; +1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;;;; +1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;;;; +1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;;;; +1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;;;; +1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;; +1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;; +1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;; +1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;; +1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;; +1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;; +1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;; +1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;; +1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;; +1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;; +1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;; +1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;; +1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;; +1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;; +1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;; +1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;; +1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;; +1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;; +1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;; +1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;; +1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;; +1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;; +1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;; +1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;; +1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;; +1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;; +1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;; +1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;; +1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;; +1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;; +1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;; +1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;; +1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;; +1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;; +1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;; +1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;; +1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;; +1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;; +1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;; +1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;; +1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;; +1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;; +1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;; +1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;; +1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;; +1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;; +1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;; +1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;; +1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;; +1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;; +1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;; +1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;; +1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;; +1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;; +1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;; +1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;; +1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;; +1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;; +1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;; +1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;; +1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;; +1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;; +1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;; +1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;; +1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;; +1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;; +1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;; +1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;; +1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;; +1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;; +1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;; +1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;; +1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;; +1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;; +1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;; +1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;; +1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;; +1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;; +1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;; +1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;; +1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;; +1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;; +1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;; +1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;; +1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;; +1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;; +1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;; +1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;; +1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;; +1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;; +1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;; +1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;; +1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;; +1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;; +1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;; +1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;; +1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;; +1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;; +1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;; +1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;; +1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;; +1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;; +1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;; +1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;; +1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;; +1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;; +1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;; +1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;; +1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;; +1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;; +1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;; +1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;; +1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;; +1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;; +1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;; +1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;; +1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;; +1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;; +1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;; +1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;; +1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;; +1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;; +1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;; +1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;; +1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;; +1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L;<font> 0061;;;;N;;;;; +1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L;<font> 0062;;;;N;;;;; +1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L;<font> 0063;;;;N;;;;; +1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L;<font> 0064;;;;N;;;;; +1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L;<font> 0065;;;;N;;;;; +1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L;<font> 0066;;;;N;;;;; +1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L;<font> 0067;;;;N;;;;; +1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L;<font> 0068;;;;N;;;;; +1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L;<font> 0069;;;;N;;;;; +1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L;<font> 006A;;;;N;;;;; +1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L;<font> 006B;;;;N;;;;; +1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L;<font> 006C;;;;N;;;;; +1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L;<font> 006D;;;;N;;;;; +1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L;<font> 006E;;;;N;;;;; +1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L;<font> 006F;;;;N;;;;; +1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L;<font> 0070;;;;N;;;;; +1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;; +1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L;<font> 0072;;;;N;;;;; +1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L;<font> 0073;;;;N;;;;; +1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L;<font> 0074;;;;N;;;;; +1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L;<font> 0075;;;;N;;;;; +1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L;<font> 0076;;;;N;;;;; +1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L;<font> 0077;;;;N;;;;; +1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L;<font> 0078;;;;N;;;;; +1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;; +1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;; +1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L;<font> 0131;;;;N;;;;; +1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L;<font> 0237;;;;N;;;;; +1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;; +1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;; +1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;; +1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;; +1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;; +1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;; +1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;; +1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;; +1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;; +1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;; +1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;; +1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;; +1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;; +1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;; +1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;; +1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;; +1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;; +1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;; +1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;; +1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;; +1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;; +1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;; +1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;; +1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;; +1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;; +1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;; +1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;; +1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;; +1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;; +1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;; +1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;; +1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;; +1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;; +1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;; +1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;; +1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;; +1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;; +1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;; +1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;; +1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;; +1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;; +1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;; +1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;; +1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;; +1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;; +1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;; +1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;; +1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;; +1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;; +1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;; +1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;; +1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;; +1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;; +1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;; +1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;; +1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;; +1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;; +1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;; +1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;; +1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;; +1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;; +1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;; +1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;; +1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;; +1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;; +1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;; +1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;; +1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;; +1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;; +1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;; +1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;; +1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;; +1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;; +1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;; +1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;; +1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;; +1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;; +1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;; +1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;; +1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;; +1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;; +1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;; +1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;; +1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;; +1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;; +1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;; +1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;; +1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;; +1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;; +1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;; +1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;; +1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;; +1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;; +1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;; +1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;; +1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;; +1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;; +1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;; +1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;; +1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;; +1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;; +1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;; +1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;; +1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;; +1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;; +1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;; +1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;; +1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;; +1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;; +1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;; +1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;; +1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;; +1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;; +1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;; +1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;; +1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;; +1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;; +1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;; +1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;; +1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;; +1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;; +1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;; +1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;; +1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;; +1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;; +1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;; +1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;; +1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;; +1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;; +1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;; +1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;; +1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;; +1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;; +1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;; +1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;; +1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;; +1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;; +1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;; +1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;; +1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;; +1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;; +1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;; +1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;; +1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;; +1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;; +1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;; +1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;; +1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;; +1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;; +1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;; +1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;; +1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;; +1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;; +1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;; +1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;; +1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;; +1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;; +1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;; +1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;; +1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;; +1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;; +1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;; +1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;; +1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;; +1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;; +1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;; +1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;; +1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;; +1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;; +1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;; +1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;; +1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;; +1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;; +1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;; +1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;; +1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;; +1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;; +1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;; +1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;; +1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;; +1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;; +1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;; +1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;; +1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;; +1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;; +1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;; +1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;; +1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;; +1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;; +1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;; +1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;; +1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;; +1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;; +1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;; +1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;; +1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;; +1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;; +1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;; +1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;; +1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;; +1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;; +1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;; +1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;; +1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;; +1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;; +1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;; +1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;; +1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;; +1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;; +1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;; +1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;; +1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;; +1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;; +1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;; +1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;; +1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;; +1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;; +1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;; +1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;; +1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;; +1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;; +1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;; +1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;; +1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;; +1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;; +1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;; +1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;; +1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;; +1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;; +1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;; +1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;; +1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;; +1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;; +1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;; +1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;; +1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;; +1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;; +1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;; +1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;; +1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;; +1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;; +1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;; +1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;; +1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;; +1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;; +1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;; +1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;; +1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;; +1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;; +1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;; +1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;; +1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;; +1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;; +1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;; +1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;; +1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;; +1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;; +1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;; +1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;; +1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;; +1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;; +1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;; +1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;; +1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;; +1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;; +1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;; +1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;; +1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;; +1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;; +1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;; +1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;; +1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;; +1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;; +1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;; +1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;; +1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;; +1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;; +1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;; +1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;; +1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;; +1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;; +1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;; +1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;; +1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;; +1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;; +1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;; +1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;; +1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;; +1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;; +1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;; +1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;; +1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;; +1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;; +1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;; +1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;; +1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;; +1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;; +1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;; +1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;; +1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;; +1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;; +1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;; +1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;; +1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;; +1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;; +1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;; +1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;; +1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;; +1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;; +1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;; +1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;; +1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;; +1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;; +1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;; +1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;; +1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;; +1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;; +1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;; +1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;; +1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;; +1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;; +1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;; +1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;; +1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;; +1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;; +1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;; +1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;; +1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;; +1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;; +1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;; +1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;; +1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;; +1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;; +1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;; +1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;; +1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;; +1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;; +1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;; +1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;; +1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;; +1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;; +1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;; +1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;; +1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;; +1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;; +1EE03;ARABIC MATHEMATICAL DAL;Lo;0;AL;<font> 062F;;;;N;;;;; +1EE05;ARABIC MATHEMATICAL WAW;Lo;0;AL;<font> 0648;;;;N;;;;; +1EE06;ARABIC MATHEMATICAL ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;; +1EE07;ARABIC MATHEMATICAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;; +1EE08;ARABIC MATHEMATICAL TAH;Lo;0;AL;<font> 0637;;;;N;;;;; +1EE09;ARABIC MATHEMATICAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;; +1EE0A;ARABIC MATHEMATICAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;; +1EE0B;ARABIC MATHEMATICAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;; +1EE0C;ARABIC MATHEMATICAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;; +1EE0D;ARABIC MATHEMATICAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;; +1EE0E;ARABIC MATHEMATICAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;; +1EE0F;ARABIC MATHEMATICAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;; +1EE10;ARABIC MATHEMATICAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;; +1EE11;ARABIC MATHEMATICAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;; +1EE12;ARABIC MATHEMATICAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;; +1EE13;ARABIC MATHEMATICAL REH;Lo;0;AL;<font> 0631;;;;N;;;;; +1EE14;ARABIC MATHEMATICAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;; +1EE15;ARABIC MATHEMATICAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;; +1EE16;ARABIC MATHEMATICAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;; +1EE17;ARABIC MATHEMATICAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;; +1EE18;ARABIC MATHEMATICAL THAL;Lo;0;AL;<font> 0630;;;;N;;;;; +1EE19;ARABIC MATHEMATICAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;; +1EE1A;ARABIC MATHEMATICAL ZAH;Lo;0;AL;<font> 0638;;;;N;;;;; +1EE1B;ARABIC MATHEMATICAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;; +1EE1C;ARABIC MATHEMATICAL DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;; +1EE1D;ARABIC MATHEMATICAL DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;; +1EE1E;ARABIC MATHEMATICAL DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;; +1EE1F;ARABIC MATHEMATICAL DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;; +1EE21;ARABIC MATHEMATICAL INITIAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;; +1EE22;ARABIC MATHEMATICAL INITIAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;; +1EE24;ARABIC MATHEMATICAL INITIAL HEH;Lo;0;AL;<font> 0647;;;;N;;;;; +1EE27;ARABIC MATHEMATICAL INITIAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;; +1EE29;ARABIC MATHEMATICAL INITIAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;; +1EE2A;ARABIC MATHEMATICAL INITIAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;; +1EE2B;ARABIC MATHEMATICAL INITIAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;; +1EE2C;ARABIC MATHEMATICAL INITIAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;; +1EE2D;ARABIC MATHEMATICAL INITIAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;; +1EE2E;ARABIC MATHEMATICAL INITIAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;; +1EE2F;ARABIC MATHEMATICAL INITIAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;; +1EE30;ARABIC MATHEMATICAL INITIAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;; +1EE31;ARABIC MATHEMATICAL INITIAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;; +1EE32;ARABIC MATHEMATICAL INITIAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;; +1EE34;ARABIC MATHEMATICAL INITIAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;; +1EE35;ARABIC MATHEMATICAL INITIAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;; +1EE36;ARABIC MATHEMATICAL INITIAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;; +1EE37;ARABIC MATHEMATICAL INITIAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;; +1EE39;ARABIC MATHEMATICAL INITIAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;; +1EE3B;ARABIC MATHEMATICAL INITIAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;; +1EE42;ARABIC MATHEMATICAL TAILED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;; +1EE47;ARABIC MATHEMATICAL TAILED HAH;Lo;0;AL;<font> 062D;;;;N;;;;; +1EE49;ARABIC MATHEMATICAL TAILED YEH;Lo;0;AL;<font> 064A;;;;N;;;;; +1EE4B;ARABIC MATHEMATICAL TAILED LAM;Lo;0;AL;<font> 0644;;;;N;;;;; +1EE4D;ARABIC MATHEMATICAL TAILED NOON;Lo;0;AL;<font> 0646;;;;N;;;;; +1EE4E;ARABIC MATHEMATICAL TAILED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;; +1EE4F;ARABIC MATHEMATICAL TAILED AIN;Lo;0;AL;<font> 0639;;;;N;;;;; +1EE51;ARABIC MATHEMATICAL TAILED SAD;Lo;0;AL;<font> 0635;;;;N;;;;; +1EE52;ARABIC MATHEMATICAL TAILED QAF;Lo;0;AL;<font> 0642;;;;N;;;;; +1EE54;ARABIC MATHEMATICAL TAILED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;; +1EE57;ARABIC MATHEMATICAL TAILED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;; +1EE59;ARABIC MATHEMATICAL TAILED DAD;Lo;0;AL;<font> 0636;;;;N;;;;; +1EE5B;ARABIC MATHEMATICAL TAILED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;; +1EE5D;ARABIC MATHEMATICAL TAILED DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;; +1EE5F;ARABIC MATHEMATICAL TAILED DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;; +1EE61;ARABIC MATHEMATICAL STRETCHED BEH;Lo;0;AL;<font> 0628;;;;N;;;;; +1EE62;ARABIC MATHEMATICAL STRETCHED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;; +1EE64;ARABIC MATHEMATICAL STRETCHED HEH;Lo;0;AL;<font> 0647;;;;N;;;;; +1EE67;ARABIC MATHEMATICAL STRETCHED HAH;Lo;0;AL;<font> 062D;;;;N;;;;; +1EE68;ARABIC MATHEMATICAL STRETCHED TAH;Lo;0;AL;<font> 0637;;;;N;;;;; +1EE69;ARABIC MATHEMATICAL STRETCHED YEH;Lo;0;AL;<font> 064A;;;;N;;;;; +1EE6A;ARABIC MATHEMATICAL STRETCHED KAF;Lo;0;AL;<font> 0643;;;;N;;;;; +1EE6C;ARABIC MATHEMATICAL STRETCHED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;; +1EE6D;ARABIC MATHEMATICAL STRETCHED NOON;Lo;0;AL;<font> 0646;;;;N;;;;; +1EE6E;ARABIC MATHEMATICAL STRETCHED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;; +1EE6F;ARABIC MATHEMATICAL STRETCHED AIN;Lo;0;AL;<font> 0639;;;;N;;;;; +1EE70;ARABIC MATHEMATICAL STRETCHED FEH;Lo;0;AL;<font> 0641;;;;N;;;;; +1EE71;ARABIC MATHEMATICAL STRETCHED SAD;Lo;0;AL;<font> 0635;;;;N;;;;; +1EE72;ARABIC MATHEMATICAL STRETCHED QAF;Lo;0;AL;<font> 0642;;;;N;;;;; +1EE74;ARABIC MATHEMATICAL STRETCHED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;; +1EE75;ARABIC MATHEMATICAL STRETCHED TEH;Lo;0;AL;<font> 062A;;;;N;;;;; +1EE76;ARABIC MATHEMATICAL STRETCHED THEH;Lo;0;AL;<font> 062B;;;;N;;;;; +1EE77;ARABIC MATHEMATICAL STRETCHED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;; +1EE79;ARABIC MATHEMATICAL STRETCHED DAD;Lo;0;AL;<font> 0636;;;;N;;;;; +1EE7A;ARABIC MATHEMATICAL STRETCHED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;; +1EE7B;ARABIC MATHEMATICAL STRETCHED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;; +1EE7C;ARABIC MATHEMATICAL STRETCHED DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;; +1EE7E;ARABIC MATHEMATICAL STRETCHED DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;; +1EE80;ARABIC MATHEMATICAL LOOPED ALEF;Lo;0;AL;<font> 0627;;;;N;;;;; +1EE81;ARABIC MATHEMATICAL LOOPED BEH;Lo;0;AL;<font> 0628;;;;N;;;;; +1EE82;ARABIC MATHEMATICAL LOOPED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;; +1EE83;ARABIC MATHEMATICAL LOOPED DAL;Lo;0;AL;<font> 062F;;;;N;;;;; +1EE84;ARABIC MATHEMATICAL LOOPED HEH;Lo;0;AL;<font> 0647;;;;N;;;;; +1EE85;ARABIC MATHEMATICAL LOOPED WAW;Lo;0;AL;<font> 0648;;;;N;;;;; +1EE86;ARABIC MATHEMATICAL LOOPED ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;; +1EE87;ARABIC MATHEMATICAL LOOPED HAH;Lo;0;AL;<font> 062D;;;;N;;;;; +1EE88;ARABIC MATHEMATICAL LOOPED TAH;Lo;0;AL;<font> 0637;;;;N;;;;; +1EE89;ARABIC MATHEMATICAL LOOPED YEH;Lo;0;AL;<font> 064A;;;;N;;;;; +1EE8B;ARABIC MATHEMATICAL LOOPED LAM;Lo;0;AL;<font> 0644;;;;N;;;;; +1EE8C;ARABIC MATHEMATICAL LOOPED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;; +1EE8D;ARABIC MATHEMATICAL LOOPED NOON;Lo;0;AL;<font> 0646;;;;N;;;;; +1EE8E;ARABIC MATHEMATICAL LOOPED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;; +1EE8F;ARABIC MATHEMATICAL LOOPED AIN;Lo;0;AL;<font> 0639;;;;N;;;;; +1EE90;ARABIC MATHEMATICAL LOOPED FEH;Lo;0;AL;<font> 0641;;;;N;;;;; +1EE91;ARABIC MATHEMATICAL LOOPED SAD;Lo;0;AL;<font> 0635;;;;N;;;;; +1EE92;ARABIC MATHEMATICAL LOOPED QAF;Lo;0;AL;<font> 0642;;;;N;;;;; +1EE93;ARABIC MATHEMATICAL LOOPED REH;Lo;0;AL;<font> 0631;;;;N;;;;; +1EE94;ARABIC MATHEMATICAL LOOPED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;; +1EE95;ARABIC MATHEMATICAL LOOPED TEH;Lo;0;AL;<font> 062A;;;;N;;;;; +1EE96;ARABIC MATHEMATICAL LOOPED THEH;Lo;0;AL;<font> 062B;;;;N;;;;; +1EE97;ARABIC MATHEMATICAL LOOPED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;; +1EE98;ARABIC MATHEMATICAL LOOPED THAL;Lo;0;AL;<font> 0630;;;;N;;;;; +1EE99;ARABIC MATHEMATICAL LOOPED DAD;Lo;0;AL;<font> 0636;;;;N;;;;; +1EE9A;ARABIC MATHEMATICAL LOOPED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;; +1EE9B;ARABIC MATHEMATICAL LOOPED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;; +1EEA1;ARABIC MATHEMATICAL DOUBLE-STRUCK BEH;Lo;0;AL;<font> 0628;;;;N;;;;; +1EEA2;ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM;Lo;0;AL;<font> 062C;;;;N;;;;; +1EEA3;ARABIC MATHEMATICAL DOUBLE-STRUCK DAL;Lo;0;AL;<font> 062F;;;;N;;;;; +1EEA5;ARABIC MATHEMATICAL DOUBLE-STRUCK WAW;Lo;0;AL;<font> 0648;;;;N;;;;; +1EEA6;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;; +1EEA7;ARABIC MATHEMATICAL DOUBLE-STRUCK HAH;Lo;0;AL;<font> 062D;;;;N;;;;; +1EEA8;ARABIC MATHEMATICAL DOUBLE-STRUCK TAH;Lo;0;AL;<font> 0637;;;;N;;;;; +1EEA9;ARABIC MATHEMATICAL DOUBLE-STRUCK YEH;Lo;0;AL;<font> 064A;;;;N;;;;; +1EEAB;ARABIC MATHEMATICAL DOUBLE-STRUCK LAM;Lo;0;AL;<font> 0644;;;;N;;;;; +1EEAC;ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM;Lo;0;AL;<font> 0645;;;;N;;;;; +1EEAD;ARABIC MATHEMATICAL DOUBLE-STRUCK NOON;Lo;0;AL;<font> 0646;;;;N;;;;; +1EEAE;ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN;Lo;0;AL;<font> 0633;;;;N;;;;; +1EEAF;ARABIC MATHEMATICAL DOUBLE-STRUCK AIN;Lo;0;AL;<font> 0639;;;;N;;;;; +1EEB0;ARABIC MATHEMATICAL DOUBLE-STRUCK FEH;Lo;0;AL;<font> 0641;;;;N;;;;; +1EEB1;ARABIC MATHEMATICAL DOUBLE-STRUCK SAD;Lo;0;AL;<font> 0635;;;;N;;;;; +1EEB2;ARABIC MATHEMATICAL DOUBLE-STRUCK QAF;Lo;0;AL;<font> 0642;;;;N;;;;; +1EEB3;ARABIC MATHEMATICAL DOUBLE-STRUCK REH;Lo;0;AL;<font> 0631;;;;N;;;;; +1EEB4;ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;; +1EEB5;ARABIC MATHEMATICAL DOUBLE-STRUCK TEH;Lo;0;AL;<font> 062A;;;;N;;;;; +1EEB6;ARABIC MATHEMATICAL DOUBLE-STRUCK THEH;Lo;0;AL;<font> 062B;;;;N;;;;; +1EEB7;ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH;Lo;0;AL;<font> 062E;;;;N;;;;; +1EEB8;ARABIC MATHEMATICAL DOUBLE-STRUCK THAL;Lo;0;AL;<font> 0630;;;;N;;;;; +1EEB9;ARABIC MATHEMATICAL DOUBLE-STRUCK DAD;Lo;0;AL;<font> 0636;;;;N;;;;; +1EEBA;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH;Lo;0;AL;<font> 0638;;;;N;;;;; +1EEBB;ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;; +1EEF0;ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL;Sm;0;ON;;;;;N;;;;; +1EEF1;ARABIC MATHEMATICAL OPERATOR HAH WITH DAL;Sm;0;ON;;;;;N;;;;; +1F000;MAHJONG TILE EAST WIND;So;0;ON;;;;;N;;;;; +1F001;MAHJONG TILE SOUTH WIND;So;0;ON;;;;;N;;;;; +1F002;MAHJONG TILE WEST WIND;So;0;ON;;;;;N;;;;; +1F003;MAHJONG TILE NORTH WIND;So;0;ON;;;;;N;;;;; +1F004;MAHJONG TILE RED DRAGON;So;0;ON;;;;;N;;;;; +1F005;MAHJONG TILE GREEN DRAGON;So;0;ON;;;;;N;;;;; +1F006;MAHJONG TILE WHITE DRAGON;So;0;ON;;;;;N;;;;; +1F007;MAHJONG TILE ONE OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F008;MAHJONG TILE TWO OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F009;MAHJONG TILE THREE OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F00A;MAHJONG TILE FOUR OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F00B;MAHJONG TILE FIVE OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F00C;MAHJONG TILE SIX OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F00D;MAHJONG TILE SEVEN OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F00E;MAHJONG TILE EIGHT OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F00F;MAHJONG TILE NINE OF CHARACTERS;So;0;ON;;;;;N;;;;; +1F010;MAHJONG TILE ONE OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F011;MAHJONG TILE TWO OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F012;MAHJONG TILE THREE OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F013;MAHJONG TILE FOUR OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F014;MAHJONG TILE FIVE OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F015;MAHJONG TILE SIX OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F016;MAHJONG TILE SEVEN OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F017;MAHJONG TILE EIGHT OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F018;MAHJONG TILE NINE OF BAMBOOS;So;0;ON;;;;;N;;;;; +1F019;MAHJONG TILE ONE OF CIRCLES;So;0;ON;;;;;N;;;;; +1F01A;MAHJONG TILE TWO OF CIRCLES;So;0;ON;;;;;N;;;;; +1F01B;MAHJONG TILE THREE OF CIRCLES;So;0;ON;;;;;N;;;;; +1F01C;MAHJONG TILE FOUR OF CIRCLES;So;0;ON;;;;;N;;;;; +1F01D;MAHJONG TILE FIVE OF CIRCLES;So;0;ON;;;;;N;;;;; +1F01E;MAHJONG TILE SIX OF CIRCLES;So;0;ON;;;;;N;;;;; +1F01F;MAHJONG TILE SEVEN OF CIRCLES;So;0;ON;;;;;N;;;;; +1F020;MAHJONG TILE EIGHT OF CIRCLES;So;0;ON;;;;;N;;;;; +1F021;MAHJONG TILE NINE OF CIRCLES;So;0;ON;;;;;N;;;;; +1F022;MAHJONG TILE PLUM;So;0;ON;;;;;N;;;;; +1F023;MAHJONG TILE ORCHID;So;0;ON;;;;;N;;;;; +1F024;MAHJONG TILE BAMBOO;So;0;ON;;;;;N;;;;; +1F025;MAHJONG TILE CHRYSANTHEMUM;So;0;ON;;;;;N;;;;; +1F026;MAHJONG TILE SPRING;So;0;ON;;;;;N;;;;; +1F027;MAHJONG TILE SUMMER;So;0;ON;;;;;N;;;;; +1F028;MAHJONG TILE AUTUMN;So;0;ON;;;;;N;;;;; +1F029;MAHJONG TILE WINTER;So;0;ON;;;;;N;;;;; +1F02A;MAHJONG TILE JOKER;So;0;ON;;;;;N;;;;; +1F02B;MAHJONG TILE BACK;So;0;ON;;;;;N;;;;; +1F030;DOMINO TILE HORIZONTAL BACK;So;0;ON;;;;;N;;;;; +1F031;DOMINO TILE HORIZONTAL-00-00;So;0;ON;;;;;N;;;;; +1F032;DOMINO TILE HORIZONTAL-00-01;So;0;ON;;;;;N;;;;; +1F033;DOMINO TILE HORIZONTAL-00-02;So;0;ON;;;;;N;;;;; +1F034;DOMINO TILE HORIZONTAL-00-03;So;0;ON;;;;;N;;;;; +1F035;DOMINO TILE HORIZONTAL-00-04;So;0;ON;;;;;N;;;;; +1F036;DOMINO TILE HORIZONTAL-00-05;So;0;ON;;;;;N;;;;; +1F037;DOMINO TILE HORIZONTAL-00-06;So;0;ON;;;;;N;;;;; +1F038;DOMINO TILE HORIZONTAL-01-00;So;0;ON;;;;;N;;;;; +1F039;DOMINO TILE HORIZONTAL-01-01;So;0;ON;;;;;N;;;;; +1F03A;DOMINO TILE HORIZONTAL-01-02;So;0;ON;;;;;N;;;;; +1F03B;DOMINO TILE HORIZONTAL-01-03;So;0;ON;;;;;N;;;;; +1F03C;DOMINO TILE HORIZONTAL-01-04;So;0;ON;;;;;N;;;;; +1F03D;DOMINO TILE HORIZONTAL-01-05;So;0;ON;;;;;N;;;;; +1F03E;DOMINO TILE HORIZONTAL-01-06;So;0;ON;;;;;N;;;;; +1F03F;DOMINO TILE HORIZONTAL-02-00;So;0;ON;;;;;N;;;;; +1F040;DOMINO TILE HORIZONTAL-02-01;So;0;ON;;;;;N;;;;; +1F041;DOMINO TILE HORIZONTAL-02-02;So;0;ON;;;;;N;;;;; +1F042;DOMINO TILE HORIZONTAL-02-03;So;0;ON;;;;;N;;;;; +1F043;DOMINO TILE HORIZONTAL-02-04;So;0;ON;;;;;N;;;;; +1F044;DOMINO TILE HORIZONTAL-02-05;So;0;ON;;;;;N;;;;; +1F045;DOMINO TILE HORIZONTAL-02-06;So;0;ON;;;;;N;;;;; +1F046;DOMINO TILE HORIZONTAL-03-00;So;0;ON;;;;;N;;;;; +1F047;DOMINO TILE HORIZONTAL-03-01;So;0;ON;;;;;N;;;;; +1F048;DOMINO TILE HORIZONTAL-03-02;So;0;ON;;;;;N;;;;; +1F049;DOMINO TILE HORIZONTAL-03-03;So;0;ON;;;;;N;;;;; +1F04A;DOMINO TILE HORIZONTAL-03-04;So;0;ON;;;;;N;;;;; +1F04B;DOMINO TILE HORIZONTAL-03-05;So;0;ON;;;;;N;;;;; +1F04C;DOMINO TILE HORIZONTAL-03-06;So;0;ON;;;;;N;;;;; +1F04D;DOMINO TILE HORIZONTAL-04-00;So;0;ON;;;;;N;;;;; +1F04E;DOMINO TILE HORIZONTAL-04-01;So;0;ON;;;;;N;;;;; +1F04F;DOMINO TILE HORIZONTAL-04-02;So;0;ON;;;;;N;;;;; +1F050;DOMINO TILE HORIZONTAL-04-03;So;0;ON;;;;;N;;;;; +1F051;DOMINO TILE HORIZONTAL-04-04;So;0;ON;;;;;N;;;;; +1F052;DOMINO TILE HORIZONTAL-04-05;So;0;ON;;;;;N;;;;; +1F053;DOMINO TILE HORIZONTAL-04-06;So;0;ON;;;;;N;;;;; +1F054;DOMINO TILE HORIZONTAL-05-00;So;0;ON;;;;;N;;;;; +1F055;DOMINO TILE HORIZONTAL-05-01;So;0;ON;;;;;N;;;;; +1F056;DOMINO TILE HORIZONTAL-05-02;So;0;ON;;;;;N;;;;; +1F057;DOMINO TILE HORIZONTAL-05-03;So;0;ON;;;;;N;;;;; +1F058;DOMINO TILE HORIZONTAL-05-04;So;0;ON;;;;;N;;;;; +1F059;DOMINO TILE HORIZONTAL-05-05;So;0;ON;;;;;N;;;;; +1F05A;DOMINO TILE HORIZONTAL-05-06;So;0;ON;;;;;N;;;;; +1F05B;DOMINO TILE HORIZONTAL-06-00;So;0;ON;;;;;N;;;;; +1F05C;DOMINO TILE HORIZONTAL-06-01;So;0;ON;;;;;N;;;;; +1F05D;DOMINO TILE HORIZONTAL-06-02;So;0;ON;;;;;N;;;;; +1F05E;DOMINO TILE HORIZONTAL-06-03;So;0;ON;;;;;N;;;;; +1F05F;DOMINO TILE HORIZONTAL-06-04;So;0;ON;;;;;N;;;;; +1F060;DOMINO TILE HORIZONTAL-06-05;So;0;ON;;;;;N;;;;; +1F061;DOMINO TILE HORIZONTAL-06-06;So;0;ON;;;;;N;;;;; +1F062;DOMINO TILE VERTICAL BACK;So;0;ON;;;;;N;;;;; +1F063;DOMINO TILE VERTICAL-00-00;So;0;ON;;;;;N;;;;; +1F064;DOMINO TILE VERTICAL-00-01;So;0;ON;;;;;N;;;;; +1F065;DOMINO TILE VERTICAL-00-02;So;0;ON;;;;;N;;;;; +1F066;DOMINO TILE VERTICAL-00-03;So;0;ON;;;;;N;;;;; +1F067;DOMINO TILE VERTICAL-00-04;So;0;ON;;;;;N;;;;; +1F068;DOMINO TILE VERTICAL-00-05;So;0;ON;;;;;N;;;;; +1F069;DOMINO TILE VERTICAL-00-06;So;0;ON;;;;;N;;;;; +1F06A;DOMINO TILE VERTICAL-01-00;So;0;ON;;;;;N;;;;; +1F06B;DOMINO TILE VERTICAL-01-01;So;0;ON;;;;;N;;;;; +1F06C;DOMINO TILE VERTICAL-01-02;So;0;ON;;;;;N;;;;; +1F06D;DOMINO TILE VERTICAL-01-03;So;0;ON;;;;;N;;;;; +1F06E;DOMINO TILE VERTICAL-01-04;So;0;ON;;;;;N;;;;; +1F06F;DOMINO TILE VERTICAL-01-05;So;0;ON;;;;;N;;;;; +1F070;DOMINO TILE VERTICAL-01-06;So;0;ON;;;;;N;;;;; +1F071;DOMINO TILE VERTICAL-02-00;So;0;ON;;;;;N;;;;; +1F072;DOMINO TILE VERTICAL-02-01;So;0;ON;;;;;N;;;;; +1F073;DOMINO TILE VERTICAL-02-02;So;0;ON;;;;;N;;;;; +1F074;DOMINO TILE VERTICAL-02-03;So;0;ON;;;;;N;;;;; +1F075;DOMINO TILE VERTICAL-02-04;So;0;ON;;;;;N;;;;; +1F076;DOMINO TILE VERTICAL-02-05;So;0;ON;;;;;N;;;;; +1F077;DOMINO TILE VERTICAL-02-06;So;0;ON;;;;;N;;;;; +1F078;DOMINO TILE VERTICAL-03-00;So;0;ON;;;;;N;;;;; +1F079;DOMINO TILE VERTICAL-03-01;So;0;ON;;;;;N;;;;; +1F07A;DOMINO TILE VERTICAL-03-02;So;0;ON;;;;;N;;;;; +1F07B;DOMINO TILE VERTICAL-03-03;So;0;ON;;;;;N;;;;; +1F07C;DOMINO TILE VERTICAL-03-04;So;0;ON;;;;;N;;;;; +1F07D;DOMINO TILE VERTICAL-03-05;So;0;ON;;;;;N;;;;; +1F07E;DOMINO TILE VERTICAL-03-06;So;0;ON;;;;;N;;;;; +1F07F;DOMINO TILE VERTICAL-04-00;So;0;ON;;;;;N;;;;; +1F080;DOMINO TILE VERTICAL-04-01;So;0;ON;;;;;N;;;;; +1F081;DOMINO TILE VERTICAL-04-02;So;0;ON;;;;;N;;;;; +1F082;DOMINO TILE VERTICAL-04-03;So;0;ON;;;;;N;;;;; +1F083;DOMINO TILE VERTICAL-04-04;So;0;ON;;;;;N;;;;; +1F084;DOMINO TILE VERTICAL-04-05;So;0;ON;;;;;N;;;;; +1F085;DOMINO TILE VERTICAL-04-06;So;0;ON;;;;;N;;;;; +1F086;DOMINO TILE VERTICAL-05-00;So;0;ON;;;;;N;;;;; +1F087;DOMINO TILE VERTICAL-05-01;So;0;ON;;;;;N;;;;; +1F088;DOMINO TILE VERTICAL-05-02;So;0;ON;;;;;N;;;;; +1F089;DOMINO TILE VERTICAL-05-03;So;0;ON;;;;;N;;;;; +1F08A;DOMINO TILE VERTICAL-05-04;So;0;ON;;;;;N;;;;; +1F08B;DOMINO TILE VERTICAL-05-05;So;0;ON;;;;;N;;;;; +1F08C;DOMINO TILE VERTICAL-05-06;So;0;ON;;;;;N;;;;; +1F08D;DOMINO TILE VERTICAL-06-00;So;0;ON;;;;;N;;;;; +1F08E;DOMINO TILE VERTICAL-06-01;So;0;ON;;;;;N;;;;; +1F08F;DOMINO TILE VERTICAL-06-02;So;0;ON;;;;;N;;;;; +1F090;DOMINO TILE VERTICAL-06-03;So;0;ON;;;;;N;;;;; +1F091;DOMINO TILE VERTICAL-06-04;So;0;ON;;;;;N;;;;; +1F092;DOMINO TILE VERTICAL-06-05;So;0;ON;;;;;N;;;;; +1F093;DOMINO TILE VERTICAL-06-06;So;0;ON;;;;;N;;;;; +1F0A0;PLAYING CARD BACK;So;0;ON;;;;;N;;;;; +1F0A1;PLAYING CARD ACE OF SPADES;So;0;ON;;;;;N;;;;; +1F0A2;PLAYING CARD TWO OF SPADES;So;0;ON;;;;;N;;;;; +1F0A3;PLAYING CARD THREE OF SPADES;So;0;ON;;;;;N;;;;; +1F0A4;PLAYING CARD FOUR OF SPADES;So;0;ON;;;;;N;;;;; +1F0A5;PLAYING CARD FIVE OF SPADES;So;0;ON;;;;;N;;;;; +1F0A6;PLAYING CARD SIX OF SPADES;So;0;ON;;;;;N;;;;; +1F0A7;PLAYING CARD SEVEN OF SPADES;So;0;ON;;;;;N;;;;; +1F0A8;PLAYING CARD EIGHT OF SPADES;So;0;ON;;;;;N;;;;; +1F0A9;PLAYING CARD NINE OF SPADES;So;0;ON;;;;;N;;;;; +1F0AA;PLAYING CARD TEN OF SPADES;So;0;ON;;;;;N;;;;; +1F0AB;PLAYING CARD JACK OF SPADES;So;0;ON;;;;;N;;;;; +1F0AC;PLAYING CARD KNIGHT OF SPADES;So;0;ON;;;;;N;;;;; +1F0AD;PLAYING CARD QUEEN OF SPADES;So;0;ON;;;;;N;;;;; +1F0AE;PLAYING CARD KING OF SPADES;So;0;ON;;;;;N;;;;; +1F0B1;PLAYING CARD ACE OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B2;PLAYING CARD TWO OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B3;PLAYING CARD THREE OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B4;PLAYING CARD FOUR OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B5;PLAYING CARD FIVE OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B6;PLAYING CARD SIX OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B7;PLAYING CARD SEVEN OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B8;PLAYING CARD EIGHT OF HEARTS;So;0;ON;;;;;N;;;;; +1F0B9;PLAYING CARD NINE OF HEARTS;So;0;ON;;;;;N;;;;; +1F0BA;PLAYING CARD TEN OF HEARTS;So;0;ON;;;;;N;;;;; +1F0BB;PLAYING CARD JACK OF HEARTS;So;0;ON;;;;;N;;;;; +1F0BC;PLAYING CARD KNIGHT OF HEARTS;So;0;ON;;;;;N;;;;; +1F0BD;PLAYING CARD QUEEN OF HEARTS;So;0;ON;;;;;N;;;;; +1F0BE;PLAYING CARD KING OF HEARTS;So;0;ON;;;;;N;;;;; +1F0C1;PLAYING CARD ACE OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C2;PLAYING CARD TWO OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C3;PLAYING CARD THREE OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C4;PLAYING CARD FOUR OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C5;PLAYING CARD FIVE OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C6;PLAYING CARD SIX OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C7;PLAYING CARD SEVEN OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C8;PLAYING CARD EIGHT OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0C9;PLAYING CARD NINE OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0CA;PLAYING CARD TEN OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0CB;PLAYING CARD JACK OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0CC;PLAYING CARD KNIGHT OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0CD;PLAYING CARD QUEEN OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0CE;PLAYING CARD KING OF DIAMONDS;So;0;ON;;;;;N;;;;; +1F0CF;PLAYING CARD BLACK JOKER;So;0;ON;;;;;N;;;;; +1F0D1;PLAYING CARD ACE OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D2;PLAYING CARD TWO OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D3;PLAYING CARD THREE OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D4;PLAYING CARD FOUR OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D5;PLAYING CARD FIVE OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D6;PLAYING CARD SIX OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D7;PLAYING CARD SEVEN OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D8;PLAYING CARD EIGHT OF CLUBS;So;0;ON;;;;;N;;;;; +1F0D9;PLAYING CARD NINE OF CLUBS;So;0;ON;;;;;N;;;;; +1F0DA;PLAYING CARD TEN OF CLUBS;So;0;ON;;;;;N;;;;; +1F0DB;PLAYING CARD JACK OF CLUBS;So;0;ON;;;;;N;;;;; +1F0DC;PLAYING CARD KNIGHT OF CLUBS;So;0;ON;;;;;N;;;;; +1F0DD;PLAYING CARD QUEEN OF CLUBS;So;0;ON;;;;;N;;;;; +1F0DE;PLAYING CARD KING OF CLUBS;So;0;ON;;;;;N;;;;; +1F0DF;PLAYING CARD WHITE JOKER;So;0;ON;;;;;N;;;;; +1F100;DIGIT ZERO FULL STOP;No;0;EN;<compat> 0030 002E;;0;0;N;;;;; +1F101;DIGIT ZERO COMMA;No;0;EN;<compat> 0030 002C;;0;0;N;;;;; +1F102;DIGIT ONE COMMA;No;0;EN;<compat> 0031 002C;;1;1;N;;;;; +1F103;DIGIT TWO COMMA;No;0;EN;<compat> 0032 002C;;2;2;N;;;;; +1F104;DIGIT THREE COMMA;No;0;EN;<compat> 0033 002C;;3;3;N;;;;; +1F105;DIGIT FOUR COMMA;No;0;EN;<compat> 0034 002C;;4;4;N;;;;; +1F106;DIGIT FIVE COMMA;No;0;EN;<compat> 0035 002C;;5;5;N;;;;; +1F107;DIGIT SIX COMMA;No;0;EN;<compat> 0036 002C;;6;6;N;;;;; +1F108;DIGIT SEVEN COMMA;No;0;EN;<compat> 0037 002C;;7;7;N;;;;; +1F109;DIGIT EIGHT COMMA;No;0;EN;<compat> 0038 002C;;8;8;N;;;;; +1F10A;DIGIT NINE COMMA;No;0;EN;<compat> 0039 002C;;9;9;N;;;;; +1F110;PARENTHESIZED LATIN CAPITAL LETTER A;So;0;L;<compat> 0028 0041 0029;;;;N;;;;; +1F111;PARENTHESIZED LATIN CAPITAL LETTER B;So;0;L;<compat> 0028 0042 0029;;;;N;;;;; +1F112;PARENTHESIZED LATIN CAPITAL LETTER C;So;0;L;<compat> 0028 0043 0029;;;;N;;;;; +1F113;PARENTHESIZED LATIN CAPITAL LETTER D;So;0;L;<compat> 0028 0044 0029;;;;N;;;;; +1F114;PARENTHESIZED LATIN CAPITAL LETTER E;So;0;L;<compat> 0028 0045 0029;;;;N;;;;; +1F115;PARENTHESIZED LATIN CAPITAL LETTER F;So;0;L;<compat> 0028 0046 0029;;;;N;;;;; +1F116;PARENTHESIZED LATIN CAPITAL LETTER G;So;0;L;<compat> 0028 0047 0029;;;;N;;;;; +1F117;PARENTHESIZED LATIN CAPITAL LETTER H;So;0;L;<compat> 0028 0048 0029;;;;N;;;;; +1F118;PARENTHESIZED LATIN CAPITAL LETTER I;So;0;L;<compat> 0028 0049 0029;;;;N;;;;; +1F119;PARENTHESIZED LATIN CAPITAL LETTER J;So;0;L;<compat> 0028 004A 0029;;;;N;;;;; +1F11A;PARENTHESIZED LATIN CAPITAL LETTER K;So;0;L;<compat> 0028 004B 0029;;;;N;;;;; +1F11B;PARENTHESIZED LATIN CAPITAL LETTER L;So;0;L;<compat> 0028 004C 0029;;;;N;;;;; +1F11C;PARENTHESIZED LATIN CAPITAL LETTER M;So;0;L;<compat> 0028 004D 0029;;;;N;;;;; +1F11D;PARENTHESIZED LATIN CAPITAL LETTER N;So;0;L;<compat> 0028 004E 0029;;;;N;;;;; +1F11E;PARENTHESIZED LATIN CAPITAL LETTER O;So;0;L;<compat> 0028 004F 0029;;;;N;;;;; +1F11F;PARENTHESIZED LATIN CAPITAL LETTER P;So;0;L;<compat> 0028 0050 0029;;;;N;;;;; +1F120;PARENTHESIZED LATIN CAPITAL LETTER Q;So;0;L;<compat> 0028 0051 0029;;;;N;;;;; +1F121;PARENTHESIZED LATIN CAPITAL LETTER R;So;0;L;<compat> 0028 0052 0029;;;;N;;;;; +1F122;PARENTHESIZED LATIN CAPITAL LETTER S;So;0;L;<compat> 0028 0053 0029;;;;N;;;;; +1F123;PARENTHESIZED LATIN CAPITAL LETTER T;So;0;L;<compat> 0028 0054 0029;;;;N;;;;; +1F124;PARENTHESIZED LATIN CAPITAL LETTER U;So;0;L;<compat> 0028 0055 0029;;;;N;;;;; +1F125;PARENTHESIZED LATIN CAPITAL LETTER V;So;0;L;<compat> 0028 0056 0029;;;;N;;;;; +1F126;PARENTHESIZED LATIN CAPITAL LETTER W;So;0;L;<compat> 0028 0057 0029;;;;N;;;;; +1F127;PARENTHESIZED LATIN CAPITAL LETTER X;So;0;L;<compat> 0028 0058 0029;;;;N;;;;; +1F128;PARENTHESIZED LATIN CAPITAL LETTER Y;So;0;L;<compat> 0028 0059 0029;;;;N;;;;; +1F129;PARENTHESIZED LATIN CAPITAL LETTER Z;So;0;L;<compat> 0028 005A 0029;;;;N;;;;; +1F12A;TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S;So;0;L;<compat> 3014 0053 3015;;;;N;;;;; +1F12B;CIRCLED ITALIC LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;; +1F12C;CIRCLED ITALIC LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;; +1F12D;CIRCLED CD;So;0;L;<circle> 0043 0044;;;;N;;;;; +1F12E;CIRCLED WZ;So;0;L;<circle> 0057 005A;;;;N;;;;; +1F130;SQUARED LATIN CAPITAL LETTER A;So;0;L;<square> 0041;;;;N;;;;; +1F131;SQUARED LATIN CAPITAL LETTER B;So;0;L;<square> 0042;;;;N;;;;; +1F132;SQUARED LATIN CAPITAL LETTER C;So;0;L;<square> 0043;;;;N;;;;; +1F133;SQUARED LATIN CAPITAL LETTER D;So;0;L;<square> 0044;;;;N;;;;; +1F134;SQUARED LATIN CAPITAL LETTER E;So;0;L;<square> 0045;;;;N;;;;; +1F135;SQUARED LATIN CAPITAL LETTER F;So;0;L;<square> 0046;;;;N;;;;; +1F136;SQUARED LATIN CAPITAL LETTER G;So;0;L;<square> 0047;;;;N;;;;; +1F137;SQUARED LATIN CAPITAL LETTER H;So;0;L;<square> 0048;;;;N;;;;; +1F138;SQUARED LATIN CAPITAL LETTER I;So;0;L;<square> 0049;;;;N;;;;; +1F139;SQUARED LATIN CAPITAL LETTER J;So;0;L;<square> 004A;;;;N;;;;; +1F13A;SQUARED LATIN CAPITAL LETTER K;So;0;L;<square> 004B;;;;N;;;;; +1F13B;SQUARED LATIN CAPITAL LETTER L;So;0;L;<square> 004C;;;;N;;;;; +1F13C;SQUARED LATIN CAPITAL LETTER M;So;0;L;<square> 004D;;;;N;;;;; +1F13D;SQUARED LATIN CAPITAL LETTER N;So;0;L;<square> 004E;;;;N;;;;; +1F13E;SQUARED LATIN CAPITAL LETTER O;So;0;L;<square> 004F;;;;N;;;;; +1F13F;SQUARED LATIN CAPITAL LETTER P;So;0;L;<square> 0050;;;;N;;;;; +1F140;SQUARED LATIN CAPITAL LETTER Q;So;0;L;<square> 0051;;;;N;;;;; +1F141;SQUARED LATIN CAPITAL LETTER R;So;0;L;<square> 0052;;;;N;;;;; +1F142;SQUARED LATIN CAPITAL LETTER S;So;0;L;<square> 0053;;;;N;;;;; +1F143;SQUARED LATIN CAPITAL LETTER T;So;0;L;<square> 0054;;;;N;;;;; +1F144;SQUARED LATIN CAPITAL LETTER U;So;0;L;<square> 0055;;;;N;;;;; +1F145;SQUARED LATIN CAPITAL LETTER V;So;0;L;<square> 0056;;;;N;;;;; +1F146;SQUARED LATIN CAPITAL LETTER W;So;0;L;<square> 0057;;;;N;;;;; +1F147;SQUARED LATIN CAPITAL LETTER X;So;0;L;<square> 0058;;;;N;;;;; +1F148;SQUARED LATIN CAPITAL LETTER Y;So;0;L;<square> 0059;;;;N;;;;; +1F149;SQUARED LATIN CAPITAL LETTER Z;So;0;L;<square> 005A;;;;N;;;;; +1F14A;SQUARED HV;So;0;L;<square> 0048 0056;;;;N;;;;; +1F14B;SQUARED MV;So;0;L;<square> 004D 0056;;;;N;;;;; +1F14C;SQUARED SD;So;0;L;<square> 0053 0044;;;;N;;;;; +1F14D;SQUARED SS;So;0;L;<square> 0053 0053;;;;N;;;;; +1F14E;SQUARED PPV;So;0;L;<square> 0050 0050 0056;;;;N;;;;; +1F14F;SQUARED WC;So;0;L;<square> 0057 0043;;;;N;;;;; +1F150;NEGATIVE CIRCLED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;; +1F151;NEGATIVE CIRCLED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;; +1F152;NEGATIVE CIRCLED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;; +1F153;NEGATIVE CIRCLED LATIN CAPITAL LETTER D;So;0;L;;;;;N;;;;; +1F154;NEGATIVE CIRCLED LATIN CAPITAL LETTER E;So;0;L;;;;;N;;;;; +1F155;NEGATIVE CIRCLED LATIN CAPITAL LETTER F;So;0;L;;;;;N;;;;; +1F156;NEGATIVE CIRCLED LATIN CAPITAL LETTER G;So;0;L;;;;;N;;;;; +1F157;NEGATIVE CIRCLED LATIN CAPITAL LETTER H;So;0;L;;;;;N;;;;; +1F158;NEGATIVE CIRCLED LATIN CAPITAL LETTER I;So;0;L;;;;;N;;;;; +1F159;NEGATIVE CIRCLED LATIN CAPITAL LETTER J;So;0;L;;;;;N;;;;; +1F15A;NEGATIVE CIRCLED LATIN CAPITAL LETTER K;So;0;L;;;;;N;;;;; +1F15B;NEGATIVE CIRCLED LATIN CAPITAL LETTER L;So;0;L;;;;;N;;;;; +1F15C;NEGATIVE CIRCLED LATIN CAPITAL LETTER M;So;0;L;;;;;N;;;;; +1F15D;NEGATIVE CIRCLED LATIN CAPITAL LETTER N;So;0;L;;;;;N;;;;; +1F15E;NEGATIVE CIRCLED LATIN CAPITAL LETTER O;So;0;L;;;;;N;;;;; +1F15F;NEGATIVE CIRCLED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;; +1F160;NEGATIVE CIRCLED LATIN CAPITAL LETTER Q;So;0;L;;;;;N;;;;; +1F161;NEGATIVE CIRCLED LATIN CAPITAL LETTER R;So;0;L;;;;;N;;;;; +1F162;NEGATIVE CIRCLED LATIN CAPITAL LETTER S;So;0;L;;;;;N;;;;; +1F163;NEGATIVE CIRCLED LATIN CAPITAL LETTER T;So;0;L;;;;;N;;;;; +1F164;NEGATIVE CIRCLED LATIN CAPITAL LETTER U;So;0;L;;;;;N;;;;; +1F165;NEGATIVE CIRCLED LATIN CAPITAL LETTER V;So;0;L;;;;;N;;;;; +1F166;NEGATIVE CIRCLED LATIN CAPITAL LETTER W;So;0;L;;;;;N;;;;; +1F167;NEGATIVE CIRCLED LATIN CAPITAL LETTER X;So;0;L;;;;;N;;;;; +1F168;NEGATIVE CIRCLED LATIN CAPITAL LETTER Y;So;0;L;;;;;N;;;;; +1F169;NEGATIVE CIRCLED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;; +1F16A;RAISED MC SIGN;So;0;ON;<super> 004D 0043;;;;N;;;;; +1F16B;RAISED MD SIGN;So;0;ON;<super> 004D 0044;;;;N;;;;; +1F170;NEGATIVE SQUARED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;; +1F171;NEGATIVE SQUARED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;; +1F172;NEGATIVE SQUARED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;; +1F173;NEGATIVE SQUARED LATIN CAPITAL LETTER D;So;0;L;;;;;N;;;;; +1F174;NEGATIVE SQUARED LATIN CAPITAL LETTER E;So;0;L;;;;;N;;;;; +1F175;NEGATIVE SQUARED LATIN CAPITAL LETTER F;So;0;L;;;;;N;;;;; +1F176;NEGATIVE SQUARED LATIN CAPITAL LETTER G;So;0;L;;;;;N;;;;; +1F177;NEGATIVE SQUARED LATIN CAPITAL LETTER H;So;0;L;;;;;N;;;;; +1F178;NEGATIVE SQUARED LATIN CAPITAL LETTER I;So;0;L;;;;;N;;;;; +1F179;NEGATIVE SQUARED LATIN CAPITAL LETTER J;So;0;L;;;;;N;;;;; +1F17A;NEGATIVE SQUARED LATIN CAPITAL LETTER K;So;0;L;;;;;N;;;;; +1F17B;NEGATIVE SQUARED LATIN CAPITAL LETTER L;So;0;L;;;;;N;;;;; +1F17C;NEGATIVE SQUARED LATIN CAPITAL LETTER M;So;0;L;;;;;N;;;;; +1F17D;NEGATIVE SQUARED LATIN CAPITAL LETTER N;So;0;L;;;;;N;;;;; +1F17E;NEGATIVE SQUARED LATIN CAPITAL LETTER O;So;0;L;;;;;N;;;;; +1F17F;NEGATIVE SQUARED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;; +1F180;NEGATIVE SQUARED LATIN CAPITAL LETTER Q;So;0;L;;;;;N;;;;; +1F181;NEGATIVE SQUARED LATIN CAPITAL LETTER R;So;0;L;;;;;N;;;;; +1F182;NEGATIVE SQUARED LATIN CAPITAL LETTER S;So;0;L;;;;;N;;;;; +1F183;NEGATIVE SQUARED LATIN CAPITAL LETTER T;So;0;L;;;;;N;;;;; +1F184;NEGATIVE SQUARED LATIN CAPITAL LETTER U;So;0;L;;;;;N;;;;; +1F185;NEGATIVE SQUARED LATIN CAPITAL LETTER V;So;0;L;;;;;N;;;;; +1F186;NEGATIVE SQUARED LATIN CAPITAL LETTER W;So;0;L;;;;;N;;;;; +1F187;NEGATIVE SQUARED LATIN CAPITAL LETTER X;So;0;L;;;;;N;;;;; +1F188;NEGATIVE SQUARED LATIN CAPITAL LETTER Y;So;0;L;;;;;N;;;;; +1F189;NEGATIVE SQUARED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;; +1F18A;CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;; +1F18B;NEGATIVE SQUARED IC;So;0;L;;;;;N;;;;; +1F18C;NEGATIVE SQUARED PA;So;0;L;;;;;N;;;;; +1F18D;NEGATIVE SQUARED SA;So;0;L;;;;;N;;;;; +1F18E;NEGATIVE SQUARED AB;So;0;L;;;;;N;;;;; +1F18F;NEGATIVE SQUARED WC;So;0;L;;;;;N;;;;; +1F190;SQUARE DJ;So;0;L;<square> 0044 004A;;;;N;;;;; +1F191;SQUARED CL;So;0;L;;;;;N;;;;; +1F192;SQUARED COOL;So;0;L;;;;;N;;;;; +1F193;SQUARED FREE;So;0;L;;;;;N;;;;; +1F194;SQUARED ID;So;0;L;;;;;N;;;;; +1F195;SQUARED NEW;So;0;L;;;;;N;;;;; +1F196;SQUARED NG;So;0;L;;;;;N;;;;; +1F197;SQUARED OK;So;0;L;;;;;N;;;;; +1F198;SQUARED SOS;So;0;L;;;;;N;;;;; +1F199;SQUARED UP WITH EXCLAMATION MARK;So;0;L;;;;;N;;;;; +1F19A;SQUARED VS;So;0;L;;;;;N;;;;; +1F1E6;REGIONAL INDICATOR SYMBOL LETTER A;So;0;L;;;;;N;;;;; +1F1E7;REGIONAL INDICATOR SYMBOL LETTER B;So;0;L;;;;;N;;;;; +1F1E8;REGIONAL INDICATOR SYMBOL LETTER C;So;0;L;;;;;N;;;;; +1F1E9;REGIONAL INDICATOR SYMBOL LETTER D;So;0;L;;;;;N;;;;; +1F1EA;REGIONAL INDICATOR SYMBOL LETTER E;So;0;L;;;;;N;;;;; +1F1EB;REGIONAL INDICATOR SYMBOL LETTER F;So;0;L;;;;;N;;;;; +1F1EC;REGIONAL INDICATOR SYMBOL LETTER G;So;0;L;;;;;N;;;;; +1F1ED;REGIONAL INDICATOR SYMBOL LETTER H;So;0;L;;;;;N;;;;; +1F1EE;REGIONAL INDICATOR SYMBOL LETTER I;So;0;L;;;;;N;;;;; +1F1EF;REGIONAL INDICATOR SYMBOL LETTER J;So;0;L;;;;;N;;;;; +1F1F0;REGIONAL INDICATOR SYMBOL LETTER K;So;0;L;;;;;N;;;;; +1F1F1;REGIONAL INDICATOR SYMBOL LETTER L;So;0;L;;;;;N;;;;; +1F1F2;REGIONAL INDICATOR SYMBOL LETTER M;So;0;L;;;;;N;;;;; +1F1F3;REGIONAL INDICATOR SYMBOL LETTER N;So;0;L;;;;;N;;;;; +1F1F4;REGIONAL INDICATOR SYMBOL LETTER O;So;0;L;;;;;N;;;;; +1F1F5;REGIONAL INDICATOR SYMBOL LETTER P;So;0;L;;;;;N;;;;; +1F1F6;REGIONAL INDICATOR SYMBOL LETTER Q;So;0;L;;;;;N;;;;; +1F1F7;REGIONAL INDICATOR SYMBOL LETTER R;So;0;L;;;;;N;;;;; +1F1F8;REGIONAL INDICATOR SYMBOL LETTER S;So;0;L;;;;;N;;;;; +1F1F9;REGIONAL INDICATOR SYMBOL LETTER T;So;0;L;;;;;N;;;;; +1F1FA;REGIONAL INDICATOR SYMBOL LETTER U;So;0;L;;;;;N;;;;; +1F1FB;REGIONAL INDICATOR SYMBOL LETTER V;So;0;L;;;;;N;;;;; +1F1FC;REGIONAL INDICATOR SYMBOL LETTER W;So;0;L;;;;;N;;;;; +1F1FD;REGIONAL INDICATOR SYMBOL LETTER X;So;0;L;;;;;N;;;;; +1F1FE;REGIONAL INDICATOR SYMBOL LETTER Y;So;0;L;;;;;N;;;;; +1F1FF;REGIONAL INDICATOR SYMBOL LETTER Z;So;0;L;;;;;N;;;;; +1F200;SQUARE HIRAGANA HOKA;So;0;L;<square> 307B 304B;;;;N;;;;; +1F201;SQUARED KATAKANA KOKO;So;0;L;<square> 30B3 30B3;;;;N;;;;; +1F202;SQUARED KATAKANA SA;So;0;L;<square> 30B5;;;;N;;;;; +1F210;SQUARED CJK UNIFIED IDEOGRAPH-624B;So;0;L;<square> 624B;;;;N;;;;; +1F211;SQUARED CJK UNIFIED IDEOGRAPH-5B57;So;0;L;<square> 5B57;;;;N;;;;; +1F212;SQUARED CJK UNIFIED IDEOGRAPH-53CC;So;0;L;<square> 53CC;;;;N;;;;; +1F213;SQUARED KATAKANA DE;So;0;L;<square> 30C7;;;;N;;;;; +1F214;SQUARED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L;<square> 4E8C;;;;N;;;;; +1F215;SQUARED CJK UNIFIED IDEOGRAPH-591A;So;0;L;<square> 591A;;;;N;;;;; +1F216;SQUARED CJK UNIFIED IDEOGRAPH-89E3;So;0;L;<square> 89E3;;;;N;;;;; +1F217;SQUARED CJK UNIFIED IDEOGRAPH-5929;So;0;L;<square> 5929;;;;N;;;;; +1F218;SQUARED CJK UNIFIED IDEOGRAPH-4EA4;So;0;L;<square> 4EA4;;;;N;;;;; +1F219;SQUARED CJK UNIFIED IDEOGRAPH-6620;So;0;L;<square> 6620;;;;N;;;;; +1F21A;SQUARED CJK UNIFIED IDEOGRAPH-7121;So;0;L;<square> 7121;;;;N;;;;; +1F21B;SQUARED CJK UNIFIED IDEOGRAPH-6599;So;0;L;<square> 6599;;;;N;;;;; +1F21C;SQUARED CJK UNIFIED IDEOGRAPH-524D;So;0;L;<square> 524D;;;;N;;;;; +1F21D;SQUARED CJK UNIFIED IDEOGRAPH-5F8C;So;0;L;<square> 5F8C;;;;N;;;;; +1F21E;SQUARED CJK UNIFIED IDEOGRAPH-518D;So;0;L;<square> 518D;;;;N;;;;; +1F21F;SQUARED CJK UNIFIED IDEOGRAPH-65B0;So;0;L;<square> 65B0;;;;N;;;;; +1F220;SQUARED CJK UNIFIED IDEOGRAPH-521D;So;0;L;<square> 521D;;;;N;;;;; +1F221;SQUARED CJK UNIFIED IDEOGRAPH-7D42;So;0;L;<square> 7D42;;;;N;;;;; +1F222;SQUARED CJK UNIFIED IDEOGRAPH-751F;So;0;L;<square> 751F;;;;N;;;;; +1F223;SQUARED CJK UNIFIED IDEOGRAPH-8CA9;So;0;L;<square> 8CA9;;;;N;;;;; +1F224;SQUARED CJK UNIFIED IDEOGRAPH-58F0;So;0;L;<square> 58F0;;;;N;;;;; +1F225;SQUARED CJK UNIFIED IDEOGRAPH-5439;So;0;L;<square> 5439;;;;N;;;;; +1F226;SQUARED CJK UNIFIED IDEOGRAPH-6F14;So;0;L;<square> 6F14;;;;N;;;;; +1F227;SQUARED CJK UNIFIED IDEOGRAPH-6295;So;0;L;<square> 6295;;;;N;;;;; +1F228;SQUARED CJK UNIFIED IDEOGRAPH-6355;So;0;L;<square> 6355;;;;N;;;;; +1F229;SQUARED CJK UNIFIED IDEOGRAPH-4E00;So;0;L;<square> 4E00;;;;N;;;;; +1F22A;SQUARED CJK UNIFIED IDEOGRAPH-4E09;So;0;L;<square> 4E09;;;;N;;;;; +1F22B;SQUARED CJK UNIFIED IDEOGRAPH-904A;So;0;L;<square> 904A;;;;N;;;;; +1F22C;SQUARED CJK UNIFIED IDEOGRAPH-5DE6;So;0;L;<square> 5DE6;;;;N;;;;; +1F22D;SQUARED CJK UNIFIED IDEOGRAPH-4E2D;So;0;L;<square> 4E2D;;;;N;;;;; +1F22E;SQUARED CJK UNIFIED IDEOGRAPH-53F3;So;0;L;<square> 53F3;;;;N;;;;; +1F22F;SQUARED CJK UNIFIED IDEOGRAPH-6307;So;0;L;<square> 6307;;;;N;;;;; +1F230;SQUARED CJK UNIFIED IDEOGRAPH-8D70;So;0;L;<square> 8D70;;;;N;;;;; +1F231;SQUARED CJK UNIFIED IDEOGRAPH-6253;So;0;L;<square> 6253;;;;N;;;;; +1F232;SQUARED CJK UNIFIED IDEOGRAPH-7981;So;0;L;<square> 7981;;;;N;;;;; +1F233;SQUARED CJK UNIFIED IDEOGRAPH-7A7A;So;0;L;<square> 7A7A;;;;N;;;;; +1F234;SQUARED CJK UNIFIED IDEOGRAPH-5408;So;0;L;<square> 5408;;;;N;;;;; +1F235;SQUARED CJK UNIFIED IDEOGRAPH-6E80;So;0;L;<square> 6E80;;;;N;;;;; +1F236;SQUARED CJK UNIFIED IDEOGRAPH-6709;So;0;L;<square> 6709;;;;N;;;;; +1F237;SQUARED CJK UNIFIED IDEOGRAPH-6708;So;0;L;<square> 6708;;;;N;;;;; +1F238;SQUARED CJK UNIFIED IDEOGRAPH-7533;So;0;L;<square> 7533;;;;N;;;;; +1F239;SQUARED CJK UNIFIED IDEOGRAPH-5272;So;0;L;<square> 5272;;;;N;;;;; +1F23A;SQUARED CJK UNIFIED IDEOGRAPH-55B6;So;0;L;<square> 55B6;;;;N;;;;; +1F240;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C;So;0;L;<compat> 3014 672C 3015;;;;N;;;;; +1F241;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09;So;0;L;<compat> 3014 4E09 3015;;;;N;;;;; +1F242;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L;<compat> 3014 4E8C 3015;;;;N;;;;; +1F243;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89;So;0;L;<compat> 3014 5B89 3015;;;;N;;;;; +1F244;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9;So;0;L;<compat> 3014 70B9 3015;;;;N;;;;; +1F245;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253;So;0;L;<compat> 3014 6253 3015;;;;N;;;;; +1F246;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7;So;0;L;<compat> 3014 76D7 3015;;;;N;;;;; +1F247;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD;So;0;L;<compat> 3014 52DD 3015;;;;N;;;;; +1F248;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557;So;0;L;<compat> 3014 6557 3015;;;;N;;;;; +1F250;CIRCLED IDEOGRAPH ADVANTAGE;So;0;L;<circle> 5F97;;;;N;;;;; +1F251;CIRCLED IDEOGRAPH ACCEPT;So;0;L;<circle> 53EF;;;;N;;;;; +1F300;CYCLONE;So;0;ON;;;;;N;;;;; +1F301;FOGGY;So;0;ON;;;;;N;;;;; +1F302;CLOSED UMBRELLA;So;0;ON;;;;;N;;;;; +1F303;NIGHT WITH STARS;So;0;ON;;;;;N;;;;; +1F304;SUNRISE OVER MOUNTAINS;So;0;ON;;;;;N;;;;; +1F305;SUNRISE;So;0;ON;;;;;N;;;;; +1F306;CITYSCAPE AT DUSK;So;0;ON;;;;;N;;;;; +1F307;SUNSET OVER BUILDINGS;So;0;ON;;;;;N;;;;; +1F308;RAINBOW;So;0;ON;;;;;N;;;;; +1F309;BRIDGE AT NIGHT;So;0;ON;;;;;N;;;;; +1F30A;WATER WAVE;So;0;ON;;;;;N;;;;; +1F30B;VOLCANO;So;0;ON;;;;;N;;;;; +1F30C;MILKY WAY;So;0;ON;;;;;N;;;;; +1F30D;EARTH GLOBE EUROPE-AFRICA;So;0;ON;;;;;N;;;;; +1F30E;EARTH GLOBE AMERICAS;So;0;ON;;;;;N;;;;; +1F30F;EARTH GLOBE ASIA-AUSTRALIA;So;0;ON;;;;;N;;;;; +1F310;GLOBE WITH MERIDIANS;So;0;ON;;;;;N;;;;; +1F311;NEW MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F312;WAXING CRESCENT MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F313;FIRST QUARTER MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F314;WAXING GIBBOUS MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F315;FULL MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F316;WANING GIBBOUS MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F317;LAST QUARTER MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F318;WANING CRESCENT MOON SYMBOL;So;0;ON;;;;;N;;;;; +1F319;CRESCENT MOON;So;0;ON;;;;;N;;;;; +1F31A;NEW MOON WITH FACE;So;0;ON;;;;;N;;;;; +1F31B;FIRST QUARTER MOON WITH FACE;So;0;ON;;;;;N;;;;; +1F31C;LAST QUARTER MOON WITH FACE;So;0;ON;;;;;N;;;;; +1F31D;FULL MOON WITH FACE;So;0;ON;;;;;N;;;;; +1F31E;SUN WITH FACE;So;0;ON;;;;;N;;;;; +1F31F;GLOWING STAR;So;0;ON;;;;;N;;;;; +1F320;SHOOTING STAR;So;0;ON;;;;;N;;;;; +1F330;CHESTNUT;So;0;ON;;;;;N;;;;; +1F331;SEEDLING;So;0;ON;;;;;N;;;;; +1F332;EVERGREEN TREE;So;0;ON;;;;;N;;;;; +1F333;DECIDUOUS TREE;So;0;ON;;;;;N;;;;; +1F334;PALM TREE;So;0;ON;;;;;N;;;;; +1F335;CACTUS;So;0;ON;;;;;N;;;;; +1F337;TULIP;So;0;ON;;;;;N;;;;; +1F338;CHERRY BLOSSOM;So;0;ON;;;;;N;;;;; +1F339;ROSE;So;0;ON;;;;;N;;;;; +1F33A;HIBISCUS;So;0;ON;;;;;N;;;;; +1F33B;SUNFLOWER;So;0;ON;;;;;N;;;;; +1F33C;BLOSSOM;So;0;ON;;;;;N;;;;; +1F33D;EAR OF MAIZE;So;0;ON;;;;;N;;;;; +1F33E;EAR OF RICE;So;0;ON;;;;;N;;;;; +1F33F;HERB;So;0;ON;;;;;N;;;;; +1F340;FOUR LEAF CLOVER;So;0;ON;;;;;N;;;;; +1F341;MAPLE LEAF;So;0;ON;;;;;N;;;;; +1F342;FALLEN LEAF;So;0;ON;;;;;N;;;;; +1F343;LEAF FLUTTERING IN WIND;So;0;ON;;;;;N;;;;; +1F344;MUSHROOM;So;0;ON;;;;;N;;;;; +1F345;TOMATO;So;0;ON;;;;;N;;;;; +1F346;AUBERGINE;So;0;ON;;;;;N;;;;; +1F347;GRAPES;So;0;ON;;;;;N;;;;; +1F348;MELON;So;0;ON;;;;;N;;;;; +1F349;WATERMELON;So;0;ON;;;;;N;;;;; +1F34A;TANGERINE;So;0;ON;;;;;N;;;;; +1F34B;LEMON;So;0;ON;;;;;N;;;;; +1F34C;BANANA;So;0;ON;;;;;N;;;;; +1F34D;PINEAPPLE;So;0;ON;;;;;N;;;;; +1F34E;RED APPLE;So;0;ON;;;;;N;;;;; +1F34F;GREEN APPLE;So;0;ON;;;;;N;;;;; +1F350;PEAR;So;0;ON;;;;;N;;;;; +1F351;PEACH;So;0;ON;;;;;N;;;;; +1F352;CHERRIES;So;0;ON;;;;;N;;;;; +1F353;STRAWBERRY;So;0;ON;;;;;N;;;;; +1F354;HAMBURGER;So;0;ON;;;;;N;;;;; +1F355;SLICE OF PIZZA;So;0;ON;;;;;N;;;;; +1F356;MEAT ON BONE;So;0;ON;;;;;N;;;;; +1F357;POULTRY LEG;So;0;ON;;;;;N;;;;; +1F358;RICE CRACKER;So;0;ON;;;;;N;;;;; +1F359;RICE BALL;So;0;ON;;;;;N;;;;; +1F35A;COOKED RICE;So;0;ON;;;;;N;;;;; +1F35B;CURRY AND RICE;So;0;ON;;;;;N;;;;; +1F35C;STEAMING BOWL;So;0;ON;;;;;N;;;;; +1F35D;SPAGHETTI;So;0;ON;;;;;N;;;;; +1F35E;BREAD;So;0;ON;;;;;N;;;;; +1F35F;FRENCH FRIES;So;0;ON;;;;;N;;;;; +1F360;ROASTED SWEET POTATO;So;0;ON;;;;;N;;;;; +1F361;DANGO;So;0;ON;;;;;N;;;;; +1F362;ODEN;So;0;ON;;;;;N;;;;; +1F363;SUSHI;So;0;ON;;;;;N;;;;; +1F364;FRIED SHRIMP;So;0;ON;;;;;N;;;;; +1F365;FISH CAKE WITH SWIRL DESIGN;So;0;ON;;;;;N;;;;; +1F366;SOFT ICE CREAM;So;0;ON;;;;;N;;;;; +1F367;SHAVED ICE;So;0;ON;;;;;N;;;;; +1F368;ICE CREAM;So;0;ON;;;;;N;;;;; +1F369;DOUGHNUT;So;0;ON;;;;;N;;;;; +1F36A;COOKIE;So;0;ON;;;;;N;;;;; +1F36B;CHOCOLATE BAR;So;0;ON;;;;;N;;;;; +1F36C;CANDY;So;0;ON;;;;;N;;;;; +1F36D;LOLLIPOP;So;0;ON;;;;;N;;;;; +1F36E;CUSTARD;So;0;ON;;;;;N;;;;; +1F36F;HONEY POT;So;0;ON;;;;;N;;;;; +1F370;SHORTCAKE;So;0;ON;;;;;N;;;;; +1F371;BENTO BOX;So;0;ON;;;;;N;;;;; +1F372;POT OF FOOD;So;0;ON;;;;;N;;;;; +1F373;COOKING;So;0;ON;;;;;N;;;;; +1F374;FORK AND KNIFE;So;0;ON;;;;;N;;;;; +1F375;TEACUP WITHOUT HANDLE;So;0;ON;;;;;N;;;;; +1F376;SAKE BOTTLE AND CUP;So;0;ON;;;;;N;;;;; +1F377;WINE GLASS;So;0;ON;;;;;N;;;;; +1F378;COCKTAIL GLASS;So;0;ON;;;;;N;;;;; +1F379;TROPICAL DRINK;So;0;ON;;;;;N;;;;; +1F37A;BEER MUG;So;0;ON;;;;;N;;;;; +1F37B;CLINKING BEER MUGS;So;0;ON;;;;;N;;;;; +1F37C;BABY BOTTLE;So;0;ON;;;;;N;;;;; +1F380;RIBBON;So;0;ON;;;;;N;;;;; +1F381;WRAPPED PRESENT;So;0;ON;;;;;N;;;;; +1F382;BIRTHDAY CAKE;So;0;ON;;;;;N;;;;; +1F383;JACK-O-LANTERN;So;0;ON;;;;;N;;;;; +1F384;CHRISTMAS TREE;So;0;ON;;;;;N;;;;; +1F385;FATHER CHRISTMAS;So;0;ON;;;;;N;;;;; +1F386;FIREWORKS;So;0;ON;;;;;N;;;;; +1F387;FIREWORK SPARKLER;So;0;ON;;;;;N;;;;; +1F388;BALLOON;So;0;ON;;;;;N;;;;; +1F389;PARTY POPPER;So;0;ON;;;;;N;;;;; +1F38A;CONFETTI BALL;So;0;ON;;;;;N;;;;; +1F38B;TANABATA TREE;So;0;ON;;;;;N;;;;; +1F38C;CROSSED FLAGS;So;0;ON;;;;;N;;;;; +1F38D;PINE DECORATION;So;0;ON;;;;;N;;;;; +1F38E;JAPANESE DOLLS;So;0;ON;;;;;N;;;;; +1F38F;CARP STREAMER;So;0;ON;;;;;N;;;;; +1F390;WIND CHIME;So;0;ON;;;;;N;;;;; +1F391;MOON VIEWING CEREMONY;So;0;ON;;;;;N;;;;; +1F392;SCHOOL SATCHEL;So;0;ON;;;;;N;;;;; +1F393;GRADUATION CAP;So;0;ON;;;;;N;;;;; +1F3A0;CAROUSEL HORSE;So;0;ON;;;;;N;;;;; +1F3A1;FERRIS WHEEL;So;0;ON;;;;;N;;;;; +1F3A2;ROLLER COASTER;So;0;ON;;;;;N;;;;; +1F3A3;FISHING POLE AND FISH;So;0;ON;;;;;N;;;;; +1F3A4;MICROPHONE;So;0;ON;;;;;N;;;;; +1F3A5;MOVIE CAMERA;So;0;ON;;;;;N;;;;; +1F3A6;CINEMA;So;0;ON;;;;;N;;;;; +1F3A7;HEADPHONE;So;0;ON;;;;;N;;;;; +1F3A8;ARTIST PALETTE;So;0;ON;;;;;N;;;;; +1F3A9;TOP HAT;So;0;ON;;;;;N;;;;; +1F3AA;CIRCUS TENT;So;0;ON;;;;;N;;;;; +1F3AB;TICKET;So;0;ON;;;;;N;;;;; +1F3AC;CLAPPER BOARD;So;0;ON;;;;;N;;;;; +1F3AD;PERFORMING ARTS;So;0;ON;;;;;N;;;;; +1F3AE;VIDEO GAME;So;0;ON;;;;;N;;;;; +1F3AF;DIRECT HIT;So;0;ON;;;;;N;;;;; +1F3B0;SLOT MACHINE;So;0;ON;;;;;N;;;;; +1F3B1;BILLIARDS;So;0;ON;;;;;N;;;;; +1F3B2;GAME DIE;So;0;ON;;;;;N;;;;; +1F3B3;BOWLING;So;0;ON;;;;;N;;;;; +1F3B4;FLOWER PLAYING CARDS;So;0;ON;;;;;N;;;;; +1F3B5;MUSICAL NOTE;So;0;ON;;;;;N;;;;; +1F3B6;MULTIPLE MUSICAL NOTES;So;0;ON;;;;;N;;;;; +1F3B7;SAXOPHONE;So;0;ON;;;;;N;;;;; +1F3B8;GUITAR;So;0;ON;;;;;N;;;;; +1F3B9;MUSICAL KEYBOARD;So;0;ON;;;;;N;;;;; +1F3BA;TRUMPET;So;0;ON;;;;;N;;;;; +1F3BB;VIOLIN;So;0;ON;;;;;N;;;;; +1F3BC;MUSICAL SCORE;So;0;ON;;;;;N;;;;; +1F3BD;RUNNING SHIRT WITH SASH;So;0;ON;;;;;N;;;;; +1F3BE;TENNIS RACQUET AND BALL;So;0;ON;;;;;N;;;;; +1F3BF;SKI AND SKI BOOT;So;0;ON;;;;;N;;;;; +1F3C0;BASKETBALL AND HOOP;So;0;ON;;;;;N;;;;; +1F3C1;CHEQUERED FLAG;So;0;ON;;;;;N;;;;; +1F3C2;SNOWBOARDER;So;0;ON;;;;;N;;;;; +1F3C3;RUNNER;So;0;ON;;;;;N;;;;; +1F3C4;SURFER;So;0;ON;;;;;N;;;;; +1F3C6;TROPHY;So;0;ON;;;;;N;;;;; +1F3C7;HORSE RACING;So;0;ON;;;;;N;;;;; +1F3C8;AMERICAN FOOTBALL;So;0;ON;;;;;N;;;;; +1F3C9;RUGBY FOOTBALL;So;0;ON;;;;;N;;;;; +1F3CA;SWIMMER;So;0;ON;;;;;N;;;;; +1F3E0;HOUSE BUILDING;So;0;ON;;;;;N;;;;; +1F3E1;HOUSE WITH GARDEN;So;0;ON;;;;;N;;;;; +1F3E2;OFFICE BUILDING;So;0;ON;;;;;N;;;;; +1F3E3;JAPANESE POST OFFICE;So;0;ON;;;;;N;;;;; +1F3E4;EUROPEAN POST OFFICE;So;0;ON;;;;;N;;;;; +1F3E5;HOSPITAL;So;0;ON;;;;;N;;;;; +1F3E6;BANK;So;0;ON;;;;;N;;;;; +1F3E7;AUTOMATED TELLER MACHINE;So;0;ON;;;;;N;;;;; +1F3E8;HOTEL;So;0;ON;;;;;N;;;;; +1F3E9;LOVE HOTEL;So;0;ON;;;;;N;;;;; +1F3EA;CONVENIENCE STORE;So;0;ON;;;;;N;;;;; +1F3EB;SCHOOL;So;0;ON;;;;;N;;;;; +1F3EC;DEPARTMENT STORE;So;0;ON;;;;;N;;;;; +1F3ED;FACTORY;So;0;ON;;;;;N;;;;; +1F3EE;IZAKAYA LANTERN;So;0;ON;;;;;N;;;;; +1F3EF;JAPANESE CASTLE;So;0;ON;;;;;N;;;;; +1F3F0;EUROPEAN CASTLE;So;0;ON;;;;;N;;;;; +1F400;RAT;So;0;ON;;;;;N;;;;; +1F401;MOUSE;So;0;ON;;;;;N;;;;; +1F402;OX;So;0;ON;;;;;N;;;;; +1F403;WATER BUFFALO;So;0;ON;;;;;N;;;;; +1F404;COW;So;0;ON;;;;;N;;;;; +1F405;TIGER;So;0;ON;;;;;N;;;;; +1F406;LEOPARD;So;0;ON;;;;;N;;;;; +1F407;RABBIT;So;0;ON;;;;;N;;;;; +1F408;CAT;So;0;ON;;;;;N;;;;; +1F409;DRAGON;So;0;ON;;;;;N;;;;; +1F40A;CROCODILE;So;0;ON;;;;;N;;;;; +1F40B;WHALE;So;0;ON;;;;;N;;;;; +1F40C;SNAIL;So;0;ON;;;;;N;;;;; +1F40D;SNAKE;So;0;ON;;;;;N;;;;; +1F40E;HORSE;So;0;ON;;;;;N;;;;; +1F40F;RAM;So;0;ON;;;;;N;;;;; +1F410;GOAT;So;0;ON;;;;;N;;;;; +1F411;SHEEP;So;0;ON;;;;;N;;;;; +1F412;MONKEY;So;0;ON;;;;;N;;;;; +1F413;ROOSTER;So;0;ON;;;;;N;;;;; +1F414;CHICKEN;So;0;ON;;;;;N;;;;; +1F415;DOG;So;0;ON;;;;;N;;;;; +1F416;PIG;So;0;ON;;;;;N;;;;; +1F417;BOAR;So;0;ON;;;;;N;;;;; +1F418;ELEPHANT;So;0;ON;;;;;N;;;;; +1F419;OCTOPUS;So;0;ON;;;;;N;;;;; +1F41A;SPIRAL SHELL;So;0;ON;;;;;N;;;;; +1F41B;BUG;So;0;ON;;;;;N;;;;; +1F41C;ANT;So;0;ON;;;;;N;;;;; +1F41D;HONEYBEE;So;0;ON;;;;;N;;;;; +1F41E;LADY BEETLE;So;0;ON;;;;;N;;;;; +1F41F;FISH;So;0;ON;;;;;N;;;;; +1F420;TROPICAL FISH;So;0;ON;;;;;N;;;;; +1F421;BLOWFISH;So;0;ON;;;;;N;;;;; +1F422;TURTLE;So;0;ON;;;;;N;;;;; +1F423;HATCHING CHICK;So;0;ON;;;;;N;;;;; +1F424;BABY CHICK;So;0;ON;;;;;N;;;;; +1F425;FRONT-FACING BABY CHICK;So;0;ON;;;;;N;;;;; +1F426;BIRD;So;0;ON;;;;;N;;;;; +1F427;PENGUIN;So;0;ON;;;;;N;;;;; +1F428;KOALA;So;0;ON;;;;;N;;;;; +1F429;POODLE;So;0;ON;;;;;N;;;;; +1F42A;DROMEDARY CAMEL;So;0;ON;;;;;N;;;;; +1F42B;BACTRIAN CAMEL;So;0;ON;;;;;N;;;;; +1F42C;DOLPHIN;So;0;ON;;;;;N;;;;; +1F42D;MOUSE FACE;So;0;ON;;;;;N;;;;; +1F42E;COW FACE;So;0;ON;;;;;N;;;;; +1F42F;TIGER FACE;So;0;ON;;;;;N;;;;; +1F430;RABBIT FACE;So;0;ON;;;;;N;;;;; +1F431;CAT FACE;So;0;ON;;;;;N;;;;; +1F432;DRAGON FACE;So;0;ON;;;;;N;;;;; +1F433;SPOUTING WHALE;So;0;ON;;;;;N;;;;; +1F434;HORSE FACE;So;0;ON;;;;;N;;;;; +1F435;MONKEY FACE;So;0;ON;;;;;N;;;;; +1F436;DOG FACE;So;0;ON;;;;;N;;;;; +1F437;PIG FACE;So;0;ON;;;;;N;;;;; +1F438;FROG FACE;So;0;ON;;;;;N;;;;; +1F439;HAMSTER FACE;So;0;ON;;;;;N;;;;; +1F43A;WOLF FACE;So;0;ON;;;;;N;;;;; +1F43B;BEAR FACE;So;0;ON;;;;;N;;;;; +1F43C;PANDA FACE;So;0;ON;;;;;N;;;;; +1F43D;PIG NOSE;So;0;ON;;;;;N;;;;; +1F43E;PAW PRINTS;So;0;ON;;;;;N;;;;; +1F440;EYES;So;0;ON;;;;;N;;;;; +1F442;EAR;So;0;ON;;;;;N;;;;; +1F443;NOSE;So;0;ON;;;;;N;;;;; +1F444;MOUTH;So;0;ON;;;;;N;;;;; +1F445;TONGUE;So;0;ON;;;;;N;;;;; +1F446;WHITE UP POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;; +1F447;WHITE DOWN POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;; +1F448;WHITE LEFT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;; +1F449;WHITE RIGHT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;; +1F44A;FISTED HAND SIGN;So;0;ON;;;;;N;;;;; +1F44B;WAVING HAND SIGN;So;0;ON;;;;;N;;;;; +1F44C;OK HAND SIGN;So;0;ON;;;;;N;;;;; +1F44D;THUMBS UP SIGN;So;0;ON;;;;;N;;;;; +1F44E;THUMBS DOWN SIGN;So;0;ON;;;;;N;;;;; +1F44F;CLAPPING HANDS SIGN;So;0;ON;;;;;N;;;;; +1F450;OPEN HANDS SIGN;So;0;ON;;;;;N;;;;; +1F451;CROWN;So;0;ON;;;;;N;;;;; +1F452;WOMANS HAT;So;0;ON;;;;;N;;;;; +1F453;EYEGLASSES;So;0;ON;;;;;N;;;;; +1F454;NECKTIE;So;0;ON;;;;;N;;;;; +1F455;T-SHIRT;So;0;ON;;;;;N;;;;; +1F456;JEANS;So;0;ON;;;;;N;;;;; +1F457;DRESS;So;0;ON;;;;;N;;;;; +1F458;KIMONO;So;0;ON;;;;;N;;;;; +1F459;BIKINI;So;0;ON;;;;;N;;;;; +1F45A;WOMANS CLOTHES;So;0;ON;;;;;N;;;;; +1F45B;PURSE;So;0;ON;;;;;N;;;;; +1F45C;HANDBAG;So;0;ON;;;;;N;;;;; +1F45D;POUCH;So;0;ON;;;;;N;;;;; +1F45E;MANS SHOE;So;0;ON;;;;;N;;;;; +1F45F;ATHLETIC SHOE;So;0;ON;;;;;N;;;;; +1F460;HIGH-HEELED SHOE;So;0;ON;;;;;N;;;;; +1F461;WOMANS SANDAL;So;0;ON;;;;;N;;;;; +1F462;WOMANS BOOTS;So;0;ON;;;;;N;;;;; +1F463;FOOTPRINTS;So;0;ON;;;;;N;;;;; +1F464;BUST IN SILHOUETTE;So;0;ON;;;;;N;;;;; +1F465;BUSTS IN SILHOUETTE;So;0;ON;;;;;N;;;;; +1F466;BOY;So;0;ON;;;;;N;;;;; +1F467;GIRL;So;0;ON;;;;;N;;;;; +1F468;MAN;So;0;ON;;;;;N;;;;; +1F469;WOMAN;So;0;ON;;;;;N;;;;; +1F46A;FAMILY;So;0;ON;;;;;N;;;;; +1F46B;MAN AND WOMAN HOLDING HANDS;So;0;ON;;;;;N;;;;; +1F46C;TWO MEN HOLDING HANDS;So;0;ON;;;;;N;;;;; +1F46D;TWO WOMEN HOLDING HANDS;So;0;ON;;;;;N;;;;; +1F46E;POLICE OFFICER;So;0;ON;;;;;N;;;;; +1F46F;WOMAN WITH BUNNY EARS;So;0;ON;;;;;N;;;;; +1F470;BRIDE WITH VEIL;So;0;ON;;;;;N;;;;; +1F471;PERSON WITH BLOND HAIR;So;0;ON;;;;;N;;;;; +1F472;MAN WITH GUA PI MAO;So;0;ON;;;;;N;;;;; +1F473;MAN WITH TURBAN;So;0;ON;;;;;N;;;;; +1F474;OLDER MAN;So;0;ON;;;;;N;;;;; +1F475;OLDER WOMAN;So;0;ON;;;;;N;;;;; +1F476;BABY;So;0;ON;;;;;N;;;;; +1F477;CONSTRUCTION WORKER;So;0;ON;;;;;N;;;;; +1F478;PRINCESS;So;0;ON;;;;;N;;;;; +1F479;JAPANESE OGRE;So;0;ON;;;;;N;;;;; +1F47A;JAPANESE GOBLIN;So;0;ON;;;;;N;;;;; +1F47B;GHOST;So;0;ON;;;;;N;;;;; +1F47C;BABY ANGEL;So;0;ON;;;;;N;;;;; +1F47D;EXTRATERRESTRIAL ALIEN;So;0;ON;;;;;N;;;;; +1F47E;ALIEN MONSTER;So;0;ON;;;;;N;;;;; +1F47F;IMP;So;0;ON;;;;;N;;;;; +1F480;SKULL;So;0;ON;;;;;N;;;;; +1F481;INFORMATION DESK PERSON;So;0;ON;;;;;N;;;;; +1F482;GUARDSMAN;So;0;ON;;;;;N;;;;; +1F483;DANCER;So;0;ON;;;;;N;;;;; +1F484;LIPSTICK;So;0;ON;;;;;N;;;;; +1F485;NAIL POLISH;So;0;ON;;;;;N;;;;; +1F486;FACE MASSAGE;So;0;ON;;;;;N;;;;; +1F487;HAIRCUT;So;0;ON;;;;;N;;;;; +1F488;BARBER POLE;So;0;ON;;;;;N;;;;; +1F489;SYRINGE;So;0;ON;;;;;N;;;;; +1F48A;PILL;So;0;ON;;;;;N;;;;; +1F48B;KISS MARK;So;0;ON;;;;;N;;;;; +1F48C;LOVE LETTER;So;0;ON;;;;;N;;;;; +1F48D;RING;So;0;ON;;;;;N;;;;; +1F48E;GEM STONE;So;0;ON;;;;;N;;;;; +1F48F;KISS;So;0;ON;;;;;N;;;;; +1F490;BOUQUET;So;0;ON;;;;;N;;;;; +1F491;COUPLE WITH HEART;So;0;ON;;;;;N;;;;; +1F492;WEDDING;So;0;ON;;;;;N;;;;; +1F493;BEATING HEART;So;0;ON;;;;;N;;;;; +1F494;BROKEN HEART;So;0;ON;;;;;N;;;;; +1F495;TWO HEARTS;So;0;ON;;;;;N;;;;; +1F496;SPARKLING HEART;So;0;ON;;;;;N;;;;; +1F497;GROWING HEART;So;0;ON;;;;;N;;;;; +1F498;HEART WITH ARROW;So;0;ON;;;;;N;;;;; +1F499;BLUE HEART;So;0;ON;;;;;N;;;;; +1F49A;GREEN HEART;So;0;ON;;;;;N;;;;; +1F49B;YELLOW HEART;So;0;ON;;;;;N;;;;; +1F49C;PURPLE HEART;So;0;ON;;;;;N;;;;; +1F49D;HEART WITH RIBBON;So;0;ON;;;;;N;;;;; +1F49E;REVOLVING HEARTS;So;0;ON;;;;;N;;;;; +1F49F;HEART DECORATION;So;0;ON;;;;;N;;;;; +1F4A0;DIAMOND SHAPE WITH A DOT INSIDE;So;0;ON;;;;;N;;;;; +1F4A1;ELECTRIC LIGHT BULB;So;0;ON;;;;;N;;;;; +1F4A2;ANGER SYMBOL;So;0;ON;;;;;N;;;;; +1F4A3;BOMB;So;0;ON;;;;;N;;;;; +1F4A4;SLEEPING SYMBOL;So;0;ON;;;;;N;;;;; +1F4A5;COLLISION SYMBOL;So;0;ON;;;;;N;;;;; +1F4A6;SPLASHING SWEAT SYMBOL;So;0;ON;;;;;N;;;;; +1F4A7;DROPLET;So;0;ON;;;;;N;;;;; +1F4A8;DASH SYMBOL;So;0;ON;;;;;N;;;;; +1F4A9;PILE OF POO;So;0;ON;;;;;N;;;;; +1F4AA;FLEXED BICEPS;So;0;ON;;;;;N;;;;; +1F4AB;DIZZY SYMBOL;So;0;ON;;;;;N;;;;; +1F4AC;SPEECH BALLOON;So;0;ON;;;;;N;;;;; +1F4AD;THOUGHT BALLOON;So;0;ON;;;;;N;;;;; +1F4AE;WHITE FLOWER;So;0;ON;;;;;N;;;;; +1F4AF;HUNDRED POINTS SYMBOL;So;0;ON;;;;;N;;;;; +1F4B0;MONEY BAG;So;0;ON;;;;;N;;;;; +1F4B1;CURRENCY EXCHANGE;So;0;ON;;;;;N;;;;; +1F4B2;HEAVY DOLLAR SIGN;So;0;ON;;;;;N;;;;; +1F4B3;CREDIT CARD;So;0;ON;;;;;N;;;;; +1F4B4;BANKNOTE WITH YEN SIGN;So;0;ON;;;;;N;;;;; +1F4B5;BANKNOTE WITH DOLLAR SIGN;So;0;ON;;;;;N;;;;; +1F4B6;BANKNOTE WITH EURO SIGN;So;0;ON;;;;;N;;;;; +1F4B7;BANKNOTE WITH POUND SIGN;So;0;ON;;;;;N;;;;; +1F4B8;MONEY WITH WINGS;So;0;ON;;;;;N;;;;; +1F4B9;CHART WITH UPWARDS TREND AND YEN SIGN;So;0;ON;;;;;N;;;;; +1F4BA;SEAT;So;0;ON;;;;;N;;;;; +1F4BB;PERSONAL COMPUTER;So;0;ON;;;;;N;;;;; +1F4BC;BRIEFCASE;So;0;ON;;;;;N;;;;; +1F4BD;MINIDISC;So;0;ON;;;;;N;;;;; +1F4BE;FLOPPY DISK;So;0;ON;;;;;N;;;;; +1F4BF;OPTICAL DISC;So;0;ON;;;;;N;;;;; +1F4C0;DVD;So;0;ON;;;;;N;;;;; +1F4C1;FILE FOLDER;So;0;ON;;;;;N;;;;; +1F4C2;OPEN FILE FOLDER;So;0;ON;;;;;N;;;;; +1F4C3;PAGE WITH CURL;So;0;ON;;;;;N;;;;; +1F4C4;PAGE FACING UP;So;0;ON;;;;;N;;;;; +1F4C5;CALENDAR;So;0;ON;;;;;N;;;;; +1F4C6;TEAR-OFF CALENDAR;So;0;ON;;;;;N;;;;; +1F4C7;CARD INDEX;So;0;ON;;;;;N;;;;; +1F4C8;CHART WITH UPWARDS TREND;So;0;ON;;;;;N;;;;; +1F4C9;CHART WITH DOWNWARDS TREND;So;0;ON;;;;;N;;;;; +1F4CA;BAR CHART;So;0;ON;;;;;N;;;;; +1F4CB;CLIPBOARD;So;0;ON;;;;;N;;;;; +1F4CC;PUSHPIN;So;0;ON;;;;;N;;;;; +1F4CD;ROUND PUSHPIN;So;0;ON;;;;;N;;;;; +1F4CE;PAPERCLIP;So;0;ON;;;;;N;;;;; +1F4CF;STRAIGHT RULER;So;0;ON;;;;;N;;;;; +1F4D0;TRIANGULAR RULER;So;0;ON;;;;;N;;;;; +1F4D1;BOOKMARK TABS;So;0;ON;;;;;N;;;;; +1F4D2;LEDGER;So;0;ON;;;;;N;;;;; +1F4D3;NOTEBOOK;So;0;ON;;;;;N;;;;; +1F4D4;NOTEBOOK WITH DECORATIVE COVER;So;0;ON;;;;;N;;;;; +1F4D5;CLOSED BOOK;So;0;ON;;;;;N;;;;; +1F4D6;OPEN BOOK;So;0;ON;;;;;N;;;;; +1F4D7;GREEN BOOK;So;0;ON;;;;;N;;;;; +1F4D8;BLUE BOOK;So;0;ON;;;;;N;;;;; +1F4D9;ORANGE BOOK;So;0;ON;;;;;N;;;;; +1F4DA;BOOKS;So;0;ON;;;;;N;;;;; +1F4DB;NAME BADGE;So;0;ON;;;;;N;;;;; +1F4DC;SCROLL;So;0;ON;;;;;N;;;;; +1F4DD;MEMO;So;0;ON;;;;;N;;;;; +1F4DE;TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;; +1F4DF;PAGER;So;0;ON;;;;;N;;;;; +1F4E0;FAX MACHINE;So;0;ON;;;;;N;;;;; +1F4E1;SATELLITE ANTENNA;So;0;ON;;;;;N;;;;; +1F4E2;PUBLIC ADDRESS LOUDSPEAKER;So;0;ON;;;;;N;;;;; +1F4E3;CHEERING MEGAPHONE;So;0;ON;;;;;N;;;;; +1F4E4;OUTBOX TRAY;So;0;ON;;;;;N;;;;; +1F4E5;INBOX TRAY;So;0;ON;;;;;N;;;;; +1F4E6;PACKAGE;So;0;ON;;;;;N;;;;; +1F4E7;E-MAIL SYMBOL;So;0;ON;;;;;N;;;;; +1F4E8;INCOMING ENVELOPE;So;0;ON;;;;;N;;;;; +1F4E9;ENVELOPE WITH DOWNWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;; +1F4EA;CLOSED MAILBOX WITH LOWERED FLAG;So;0;ON;;;;;N;;;;; +1F4EB;CLOSED MAILBOX WITH RAISED FLAG;So;0;ON;;;;;N;;;;; +1F4EC;OPEN MAILBOX WITH RAISED FLAG;So;0;ON;;;;;N;;;;; +1F4ED;OPEN MAILBOX WITH LOWERED FLAG;So;0;ON;;;;;N;;;;; +1F4EE;POSTBOX;So;0;ON;;;;;N;;;;; +1F4EF;POSTAL HORN;So;0;ON;;;;;N;;;;; +1F4F0;NEWSPAPER;So;0;ON;;;;;N;;;;; +1F4F1;MOBILE PHONE;So;0;ON;;;;;N;;;;; +1F4F2;MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT;So;0;ON;;;;;N;;;;; +1F4F3;VIBRATION MODE;So;0;ON;;;;;N;;;;; +1F4F4;MOBILE PHONE OFF;So;0;ON;;;;;N;;;;; +1F4F5;NO MOBILE PHONES;So;0;ON;;;;;N;;;;; +1F4F6;ANTENNA WITH BARS;So;0;ON;;;;;N;;;;; +1F4F7;CAMERA;So;0;ON;;;;;N;;;;; +1F4F9;VIDEO CAMERA;So;0;ON;;;;;N;;;;; +1F4FA;TELEVISION;So;0;ON;;;;;N;;;;; +1F4FB;RADIO;So;0;ON;;;;;N;;;;; +1F4FC;VIDEOCASSETTE;So;0;ON;;;;;N;;;;; +1F500;TWISTED RIGHTWARDS ARROWS;So;0;ON;;;;;N;;;;; +1F501;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;; +1F502;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY;So;0;ON;;;;;N;;;;; +1F503;CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;; +1F504;ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;; +1F505;LOW BRIGHTNESS SYMBOL;So;0;ON;;;;;N;;;;; +1F506;HIGH BRIGHTNESS SYMBOL;So;0;ON;;;;;N;;;;; +1F507;SPEAKER WITH CANCELLATION STROKE;So;0;ON;;;;;N;;;;; +1F508;SPEAKER;So;0;ON;;;;;N;;;;; +1F509;SPEAKER WITH ONE SOUND WAVE;So;0;ON;;;;;N;;;;; +1F50A;SPEAKER WITH THREE SOUND WAVES;So;0;ON;;;;;N;;;;; +1F50B;BATTERY;So;0;ON;;;;;N;;;;; +1F50C;ELECTRIC PLUG;So;0;ON;;;;;N;;;;; +1F50D;LEFT-POINTING MAGNIFYING GLASS;So;0;ON;;;;;N;;;;; +1F50E;RIGHT-POINTING MAGNIFYING GLASS;So;0;ON;;;;;N;;;;; +1F50F;LOCK WITH INK PEN;So;0;ON;;;;;N;;;;; +1F510;CLOSED LOCK WITH KEY;So;0;ON;;;;;N;;;;; +1F511;KEY;So;0;ON;;;;;N;;;;; +1F512;LOCK;So;0;ON;;;;;N;;;;; +1F513;OPEN LOCK;So;0;ON;;;;;N;;;;; +1F514;BELL;So;0;ON;;;;;N;;;;; +1F515;BELL WITH CANCELLATION STROKE;So;0;ON;;;;;N;;;;; +1F516;BOOKMARK;So;0;ON;;;;;N;;;;; +1F517;LINK SYMBOL;So;0;ON;;;;;N;;;;; +1F518;RADIO BUTTON;So;0;ON;;;;;N;;;;; +1F519;BACK WITH LEFTWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;; +1F51A;END WITH LEFTWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;; +1F51B;ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE;So;0;ON;;;;;N;;;;; +1F51C;SOON WITH RIGHTWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;; +1F51D;TOP WITH UPWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;; +1F51E;NO ONE UNDER EIGHTEEN SYMBOL;So;0;ON;;;;;N;;;;; +1F51F;KEYCAP TEN;So;0;ON;;;;;N;;;;; +1F520;INPUT SYMBOL FOR LATIN CAPITAL LETTERS;So;0;ON;;;;;N;;;;; +1F521;INPUT SYMBOL FOR LATIN SMALL LETTERS;So;0;ON;;;;;N;;;;; +1F522;INPUT SYMBOL FOR NUMBERS;So;0;ON;;;;;N;;;;; +1F523;INPUT SYMBOL FOR SYMBOLS;So;0;ON;;;;;N;;;;; +1F524;INPUT SYMBOL FOR LATIN LETTERS;So;0;ON;;;;;N;;;;; +1F525;FIRE;So;0;ON;;;;;N;;;;; +1F526;ELECTRIC TORCH;So;0;ON;;;;;N;;;;; +1F527;WRENCH;So;0;ON;;;;;N;;;;; +1F528;HAMMER;So;0;ON;;;;;N;;;;; +1F529;NUT AND BOLT;So;0;ON;;;;;N;;;;; +1F52A;HOCHO;So;0;ON;;;;;N;;;;; +1F52B;PISTOL;So;0;ON;;;;;N;;;;; +1F52C;MICROSCOPE;So;0;ON;;;;;N;;;;; +1F52D;TELESCOPE;So;0;ON;;;;;N;;;;; +1F52E;CRYSTAL BALL;So;0;ON;;;;;N;;;;; +1F52F;SIX POINTED STAR WITH MIDDLE DOT;So;0;ON;;;;;N;;;;; +1F530;JAPANESE SYMBOL FOR BEGINNER;So;0;ON;;;;;N;;;;; +1F531;TRIDENT EMBLEM;So;0;ON;;;;;N;;;;; +1F532;BLACK SQUARE BUTTON;So;0;ON;;;;;N;;;;; +1F533;WHITE SQUARE BUTTON;So;0;ON;;;;;N;;;;; +1F534;LARGE RED CIRCLE;So;0;ON;;;;;N;;;;; +1F535;LARGE BLUE CIRCLE;So;0;ON;;;;;N;;;;; +1F536;LARGE ORANGE DIAMOND;So;0;ON;;;;;N;;;;; +1F537;LARGE BLUE DIAMOND;So;0;ON;;;;;N;;;;; +1F538;SMALL ORANGE DIAMOND;So;0;ON;;;;;N;;;;; +1F539;SMALL BLUE DIAMOND;So;0;ON;;;;;N;;;;; +1F53A;UP-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;; +1F53B;DOWN-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;; +1F53C;UP-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;; +1F53D;DOWN-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;; +1F540;CIRCLED CROSS POMMEE;So;0;ON;;;;;N;;;;; +1F541;CROSS POMMEE WITH HALF-CIRCLE BELOW;So;0;ON;;;;;N;;;;; +1F542;CROSS POMMEE;So;0;ON;;;;;N;;;;; +1F543;NOTCHED LEFT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;; +1F550;CLOCK FACE ONE OCLOCK;So;0;ON;;;;;N;;;;; +1F551;CLOCK FACE TWO OCLOCK;So;0;ON;;;;;N;;;;; +1F552;CLOCK FACE THREE OCLOCK;So;0;ON;;;;;N;;;;; +1F553;CLOCK FACE FOUR OCLOCK;So;0;ON;;;;;N;;;;; +1F554;CLOCK FACE FIVE OCLOCK;So;0;ON;;;;;N;;;;; +1F555;CLOCK FACE SIX OCLOCK;So;0;ON;;;;;N;;;;; +1F556;CLOCK FACE SEVEN OCLOCK;So;0;ON;;;;;N;;;;; +1F557;CLOCK FACE EIGHT OCLOCK;So;0;ON;;;;;N;;;;; +1F558;CLOCK FACE NINE OCLOCK;So;0;ON;;;;;N;;;;; +1F559;CLOCK FACE TEN OCLOCK;So;0;ON;;;;;N;;;;; +1F55A;CLOCK FACE ELEVEN OCLOCK;So;0;ON;;;;;N;;;;; +1F55B;CLOCK FACE TWELVE OCLOCK;So;0;ON;;;;;N;;;;; +1F55C;CLOCK FACE ONE-THIRTY;So;0;ON;;;;;N;;;;; +1F55D;CLOCK FACE TWO-THIRTY;So;0;ON;;;;;N;;;;; +1F55E;CLOCK FACE THREE-THIRTY;So;0;ON;;;;;N;;;;; +1F55F;CLOCK FACE FOUR-THIRTY;So;0;ON;;;;;N;;;;; +1F560;CLOCK FACE FIVE-THIRTY;So;0;ON;;;;;N;;;;; +1F561;CLOCK FACE SIX-THIRTY;So;0;ON;;;;;N;;;;; +1F562;CLOCK FACE SEVEN-THIRTY;So;0;ON;;;;;N;;;;; +1F563;CLOCK FACE EIGHT-THIRTY;So;0;ON;;;;;N;;;;; +1F564;CLOCK FACE NINE-THIRTY;So;0;ON;;;;;N;;;;; +1F565;CLOCK FACE TEN-THIRTY;So;0;ON;;;;;N;;;;; +1F566;CLOCK FACE ELEVEN-THIRTY;So;0;ON;;;;;N;;;;; +1F567;CLOCK FACE TWELVE-THIRTY;So;0;ON;;;;;N;;;;; +1F5FB;MOUNT FUJI;So;0;ON;;;;;N;;;;; +1F5FC;TOKYO TOWER;So;0;ON;;;;;N;;;;; +1F5FD;STATUE OF LIBERTY;So;0;ON;;;;;N;;;;; +1F5FE;SILHOUETTE OF JAPAN;So;0;ON;;;;;N;;;;; +1F5FF;MOYAI;So;0;ON;;;;;N;;;;; +1F600;GRINNING FACE;So;0;ON;;;;;N;;;;; +1F601;GRINNING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;; +1F602;FACE WITH TEARS OF JOY;So;0;ON;;;;;N;;;;; +1F603;SMILING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1F604;SMILING FACE WITH OPEN MOUTH AND SMILING EYES;So;0;ON;;;;;N;;;;; +1F605;SMILING FACE WITH OPEN MOUTH AND COLD SWEAT;So;0;ON;;;;;N;;;;; +1F606;SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES;So;0;ON;;;;;N;;;;; +1F607;SMILING FACE WITH HALO;So;0;ON;;;;;N;;;;; +1F608;SMILING FACE WITH HORNS;So;0;ON;;;;;N;;;;; +1F609;WINKING FACE;So;0;ON;;;;;N;;;;; +1F60A;SMILING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;; +1F60B;FACE SAVOURING DELICIOUS FOOD;So;0;ON;;;;;N;;;;; +1F60C;RELIEVED FACE;So;0;ON;;;;;N;;;;; +1F60D;SMILING FACE WITH HEART-SHAPED EYES;So;0;ON;;;;;N;;;;; +1F60E;SMILING FACE WITH SUNGLASSES;So;0;ON;;;;;N;;;;; +1F60F;SMIRKING FACE;So;0;ON;;;;;N;;;;; +1F610;NEUTRAL FACE;So;0;ON;;;;;N;;;;; +1F611;EXPRESSIONLESS FACE;So;0;ON;;;;;N;;;;; +1F612;UNAMUSED FACE;So;0;ON;;;;;N;;;;; +1F613;FACE WITH COLD SWEAT;So;0;ON;;;;;N;;;;; +1F614;PENSIVE FACE;So;0;ON;;;;;N;;;;; +1F615;CONFUSED FACE;So;0;ON;;;;;N;;;;; +1F616;CONFOUNDED FACE;So;0;ON;;;;;N;;;;; +1F617;KISSING FACE;So;0;ON;;;;;N;;;;; +1F618;FACE THROWING A KISS;So;0;ON;;;;;N;;;;; +1F619;KISSING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;; +1F61A;KISSING FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;; +1F61B;FACE WITH STUCK-OUT TONGUE;So;0;ON;;;;;N;;;;; +1F61C;FACE WITH STUCK-OUT TONGUE AND WINKING EYE;So;0;ON;;;;;N;;;;; +1F61D;FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES;So;0;ON;;;;;N;;;;; +1F61E;DISAPPOINTED FACE;So;0;ON;;;;;N;;;;; +1F61F;WORRIED FACE;So;0;ON;;;;;N;;;;; +1F620;ANGRY FACE;So;0;ON;;;;;N;;;;; +1F621;POUTING FACE;So;0;ON;;;;;N;;;;; +1F622;CRYING FACE;So;0;ON;;;;;N;;;;; +1F623;PERSEVERING FACE;So;0;ON;;;;;N;;;;; +1F624;FACE WITH LOOK OF TRIUMPH;So;0;ON;;;;;N;;;;; +1F625;DISAPPOINTED BUT RELIEVED FACE;So;0;ON;;;;;N;;;;; +1F626;FROWNING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1F627;ANGUISHED FACE;So;0;ON;;;;;N;;;;; +1F628;FEARFUL FACE;So;0;ON;;;;;N;;;;; +1F629;WEARY FACE;So;0;ON;;;;;N;;;;; +1F62A;SLEEPY FACE;So;0;ON;;;;;N;;;;; +1F62B;TIRED FACE;So;0;ON;;;;;N;;;;; +1F62C;GRIMACING FACE;So;0;ON;;;;;N;;;;; +1F62D;LOUDLY CRYING FACE;So;0;ON;;;;;N;;;;; +1F62E;FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1F62F;HUSHED FACE;So;0;ON;;;;;N;;;;; +1F630;FACE WITH OPEN MOUTH AND COLD SWEAT;So;0;ON;;;;;N;;;;; +1F631;FACE SCREAMING IN FEAR;So;0;ON;;;;;N;;;;; +1F632;ASTONISHED FACE;So;0;ON;;;;;N;;;;; +1F633;FLUSHED FACE;So;0;ON;;;;;N;;;;; +1F634;SLEEPING FACE;So;0;ON;;;;;N;;;;; +1F635;DIZZY FACE;So;0;ON;;;;;N;;;;; +1F636;FACE WITHOUT MOUTH;So;0;ON;;;;;N;;;;; +1F637;FACE WITH MEDICAL MASK;So;0;ON;;;;;N;;;;; +1F638;GRINNING CAT FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;; +1F639;CAT FACE WITH TEARS OF JOY;So;0;ON;;;;;N;;;;; +1F63A;SMILING CAT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1F63B;SMILING CAT FACE WITH HEART-SHAPED EYES;So;0;ON;;;;;N;;;;; +1F63C;CAT FACE WITH WRY SMILE;So;0;ON;;;;;N;;;;; +1F63D;KISSING CAT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;; +1F63E;POUTING CAT FACE;So;0;ON;;;;;N;;;;; +1F63F;CRYING CAT FACE;So;0;ON;;;;;N;;;;; +1F640;WEARY CAT FACE;So;0;ON;;;;;N;;;;; +1F645;FACE WITH NO GOOD GESTURE;So;0;ON;;;;;N;;;;; +1F646;FACE WITH OK GESTURE;So;0;ON;;;;;N;;;;; +1F647;PERSON BOWING DEEPLY;So;0;ON;;;;;N;;;;; +1F648;SEE-NO-EVIL MONKEY;So;0;ON;;;;;N;;;;; +1F649;HEAR-NO-EVIL MONKEY;So;0;ON;;;;;N;;;;; +1F64A;SPEAK-NO-EVIL MONKEY;So;0;ON;;;;;N;;;;; +1F64B;HAPPY PERSON RAISING ONE HAND;So;0;ON;;;;;N;;;;; +1F64C;PERSON RAISING BOTH HANDS IN CELEBRATION;So;0;ON;;;;;N;;;;; +1F64D;PERSON FROWNING;So;0;ON;;;;;N;;;;; +1F64E;PERSON WITH POUTING FACE;So;0;ON;;;;;N;;;;; +1F64F;PERSON WITH FOLDED HANDS;So;0;ON;;;;;N;;;;; +1F680;ROCKET;So;0;ON;;;;;N;;;;; +1F681;HELICOPTER;So;0;ON;;;;;N;;;;; +1F682;STEAM LOCOMOTIVE;So;0;ON;;;;;N;;;;; +1F683;RAILWAY CAR;So;0;ON;;;;;N;;;;; +1F684;HIGH-SPEED TRAIN;So;0;ON;;;;;N;;;;; +1F685;HIGH-SPEED TRAIN WITH BULLET NOSE;So;0;ON;;;;;N;;;;; +1F686;TRAIN;So;0;ON;;;;;N;;;;; +1F687;METRO;So;0;ON;;;;;N;;;;; +1F688;LIGHT RAIL;So;0;ON;;;;;N;;;;; +1F689;STATION;So;0;ON;;;;;N;;;;; +1F68A;TRAM;So;0;ON;;;;;N;;;;; +1F68B;TRAM CAR;So;0;ON;;;;;N;;;;; +1F68C;BUS;So;0;ON;;;;;N;;;;; +1F68D;ONCOMING BUS;So;0;ON;;;;;N;;;;; +1F68E;TROLLEYBUS;So;0;ON;;;;;N;;;;; +1F68F;BUS STOP;So;0;ON;;;;;N;;;;; +1F690;MINIBUS;So;0;ON;;;;;N;;;;; +1F691;AMBULANCE;So;0;ON;;;;;N;;;;; +1F692;FIRE ENGINE;So;0;ON;;;;;N;;;;; +1F693;POLICE CAR;So;0;ON;;;;;N;;;;; +1F694;ONCOMING POLICE CAR;So;0;ON;;;;;N;;;;; +1F695;TAXI;So;0;ON;;;;;N;;;;; +1F696;ONCOMING TAXI;So;0;ON;;;;;N;;;;; +1F697;AUTOMOBILE;So;0;ON;;;;;N;;;;; +1F698;ONCOMING AUTOMOBILE;So;0;ON;;;;;N;;;;; +1F699;RECREATIONAL VEHICLE;So;0;ON;;;;;N;;;;; +1F69A;DELIVERY TRUCK;So;0;ON;;;;;N;;;;; +1F69B;ARTICULATED LORRY;So;0;ON;;;;;N;;;;; +1F69C;TRACTOR;So;0;ON;;;;;N;;;;; +1F69D;MONORAIL;So;0;ON;;;;;N;;;;; +1F69E;MOUNTAIN RAILWAY;So;0;ON;;;;;N;;;;; +1F69F;SUSPENSION RAILWAY;So;0;ON;;;;;N;;;;; +1F6A0;MOUNTAIN CABLEWAY;So;0;ON;;;;;N;;;;; +1F6A1;AERIAL TRAMWAY;So;0;ON;;;;;N;;;;; +1F6A2;SHIP;So;0;ON;;;;;N;;;;; +1F6A3;ROWBOAT;So;0;ON;;;;;N;;;;; +1F6A4;SPEEDBOAT;So;0;ON;;;;;N;;;;; +1F6A5;HORIZONTAL TRAFFIC LIGHT;So;0;ON;;;;;N;;;;; +1F6A6;VERTICAL TRAFFIC LIGHT;So;0;ON;;;;;N;;;;; +1F6A7;CONSTRUCTION SIGN;So;0;ON;;;;;N;;;;; +1F6A8;POLICE CARS REVOLVING LIGHT;So;0;ON;;;;;N;;;;; +1F6A9;TRIANGULAR FLAG ON POST;So;0;ON;;;;;N;;;;; +1F6AA;DOOR;So;0;ON;;;;;N;;;;; +1F6AB;NO ENTRY SIGN;So;0;ON;;;;;N;;;;; +1F6AC;SMOKING SYMBOL;So;0;ON;;;;;N;;;;; +1F6AD;NO SMOKING SYMBOL;So;0;ON;;;;;N;;;;; +1F6AE;PUT LITTER IN ITS PLACE SYMBOL;So;0;ON;;;;;N;;;;; +1F6AF;DO NOT LITTER SYMBOL;So;0;ON;;;;;N;;;;; +1F6B0;POTABLE WATER SYMBOL;So;0;ON;;;;;N;;;;; +1F6B1;NON-POTABLE WATER SYMBOL;So;0;ON;;;;;N;;;;; +1F6B2;BICYCLE;So;0;ON;;;;;N;;;;; +1F6B3;NO BICYCLES;So;0;ON;;;;;N;;;;; +1F6B4;BICYCLIST;So;0;ON;;;;;N;;;;; +1F6B5;MOUNTAIN BICYCLIST;So;0;ON;;;;;N;;;;; +1F6B6;PEDESTRIAN;So;0;ON;;;;;N;;;;; +1F6B7;NO PEDESTRIANS;So;0;ON;;;;;N;;;;; +1F6B8;CHILDREN CROSSING;So;0;ON;;;;;N;;;;; +1F6B9;MENS SYMBOL;So;0;ON;;;;;N;;;;; +1F6BA;WOMENS SYMBOL;So;0;ON;;;;;N;;;;; +1F6BB;RESTROOM;So;0;ON;;;;;N;;;;; +1F6BC;BABY SYMBOL;So;0;ON;;;;;N;;;;; +1F6BD;TOILET;So;0;ON;;;;;N;;;;; +1F6BE;WATER CLOSET;So;0;ON;;;;;N;;;;; +1F6BF;SHOWER;So;0;ON;;;;;N;;;;; +1F6C0;BATH;So;0;ON;;;;;N;;;;; +1F6C1;BATHTUB;So;0;ON;;;;;N;;;;; +1F6C2;PASSPORT CONTROL;So;0;ON;;;;;N;;;;; +1F6C3;CUSTOMS;So;0;ON;;;;;N;;;;; +1F6C4;BAGGAGE CLAIM;So;0;ON;;;;;N;;;;; +1F6C5;LEFT LUGGAGE;So;0;ON;;;;;N;;;;; +1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;; +1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;; +1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;; +1F703;ALCHEMICAL SYMBOL FOR EARTH;So;0;ON;;;;;N;;;;; +1F704;ALCHEMICAL SYMBOL FOR WATER;So;0;ON;;;;;N;;;;; +1F705;ALCHEMICAL SYMBOL FOR AQUAFORTIS;So;0;ON;;;;;N;;;;; +1F706;ALCHEMICAL SYMBOL FOR AQUA REGIA;So;0;ON;;;;;N;;;;; +1F707;ALCHEMICAL SYMBOL FOR AQUA REGIA-2;So;0;ON;;;;;N;;;;; +1F708;ALCHEMICAL SYMBOL FOR AQUA VITAE;So;0;ON;;;;;N;;;;; +1F709;ALCHEMICAL SYMBOL FOR AQUA VITAE-2;So;0;ON;;;;;N;;;;; +1F70A;ALCHEMICAL SYMBOL FOR VINEGAR;So;0;ON;;;;;N;;;;; +1F70B;ALCHEMICAL SYMBOL FOR VINEGAR-2;So;0;ON;;;;;N;;;;; +1F70C;ALCHEMICAL SYMBOL FOR VINEGAR-3;So;0;ON;;;;;N;;;;; +1F70D;ALCHEMICAL SYMBOL FOR SULFUR;So;0;ON;;;;;N;;;;; +1F70E;ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR;So;0;ON;;;;;N;;;;; +1F70F;ALCHEMICAL SYMBOL FOR BLACK SULFUR;So;0;ON;;;;;N;;;;; +1F710;ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE;So;0;ON;;;;;N;;;;; +1F711;ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2;So;0;ON;;;;;N;;;;; +1F712;ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3;So;0;ON;;;;;N;;;;; +1F713;ALCHEMICAL SYMBOL FOR CINNABAR;So;0;ON;;;;;N;;;;; +1F714;ALCHEMICAL SYMBOL FOR SALT;So;0;ON;;;;;N;;;;; +1F715;ALCHEMICAL SYMBOL FOR NITRE;So;0;ON;;;;;N;;;;; +1F716;ALCHEMICAL SYMBOL FOR VITRIOL;So;0;ON;;;;;N;;;;; +1F717;ALCHEMICAL SYMBOL FOR VITRIOL-2;So;0;ON;;;;;N;;;;; +1F718;ALCHEMICAL SYMBOL FOR ROCK SALT;So;0;ON;;;;;N;;;;; +1F719;ALCHEMICAL SYMBOL FOR ROCK SALT-2;So;0;ON;;;;;N;;;;; +1F71A;ALCHEMICAL SYMBOL FOR GOLD;So;0;ON;;;;;N;;;;; +1F71B;ALCHEMICAL SYMBOL FOR SILVER;So;0;ON;;;;;N;;;;; +1F71C;ALCHEMICAL SYMBOL FOR IRON ORE;So;0;ON;;;;;N;;;;; +1F71D;ALCHEMICAL SYMBOL FOR IRON ORE-2;So;0;ON;;;;;N;;;;; +1F71E;ALCHEMICAL SYMBOL FOR CROCUS OF IRON;So;0;ON;;;;;N;;;;; +1F71F;ALCHEMICAL SYMBOL FOR REGULUS OF IRON;So;0;ON;;;;;N;;;;; +1F720;ALCHEMICAL SYMBOL FOR COPPER ORE;So;0;ON;;;;;N;;;;; +1F721;ALCHEMICAL SYMBOL FOR IRON-COPPER ORE;So;0;ON;;;;;N;;;;; +1F722;ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER;So;0;ON;;;;;N;;;;; +1F723;ALCHEMICAL SYMBOL FOR CROCUS OF COPPER;So;0;ON;;;;;N;;;;; +1F724;ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2;So;0;ON;;;;;N;;;;; +1F725;ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE;So;0;ON;;;;;N;;;;; +1F726;ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE;So;0;ON;;;;;N;;;;; +1F727;ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER;So;0;ON;;;;;N;;;;; +1F728;ALCHEMICAL SYMBOL FOR VERDIGRIS;So;0;ON;;;;;N;;;;; +1F729;ALCHEMICAL SYMBOL FOR TIN ORE;So;0;ON;;;;;N;;;;; +1F72A;ALCHEMICAL SYMBOL FOR LEAD ORE;So;0;ON;;;;;N;;;;; +1F72B;ALCHEMICAL SYMBOL FOR ANTIMONY ORE;So;0;ON;;;;;N;;;;; +1F72C;ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY;So;0;ON;;;;;N;;;;; +1F72D;ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY;So;0;ON;;;;;N;;;;; +1F72E;ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY;So;0;ON;;;;;N;;;;; +1F72F;ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY;So;0;ON;;;;;N;;;;; +1F730;ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY;So;0;ON;;;;;N;;;;; +1F731;ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2;So;0;ON;;;;;N;;;;; +1F732;ALCHEMICAL SYMBOL FOR REGULUS;So;0;ON;;;;;N;;;;; +1F733;ALCHEMICAL SYMBOL FOR REGULUS-2;So;0;ON;;;;;N;;;;; +1F734;ALCHEMICAL SYMBOL FOR REGULUS-3;So;0;ON;;;;;N;;;;; +1F735;ALCHEMICAL SYMBOL FOR REGULUS-4;So;0;ON;;;;;N;;;;; +1F736;ALCHEMICAL SYMBOL FOR ALKALI;So;0;ON;;;;;N;;;;; +1F737;ALCHEMICAL SYMBOL FOR ALKALI-2;So;0;ON;;;;;N;;;;; +1F738;ALCHEMICAL SYMBOL FOR MARCASITE;So;0;ON;;;;;N;;;;; +1F739;ALCHEMICAL SYMBOL FOR SAL-AMMONIAC;So;0;ON;;;;;N;;;;; +1F73A;ALCHEMICAL SYMBOL FOR ARSENIC;So;0;ON;;;;;N;;;;; +1F73B;ALCHEMICAL SYMBOL FOR REALGAR;So;0;ON;;;;;N;;;;; +1F73C;ALCHEMICAL SYMBOL FOR REALGAR-2;So;0;ON;;;;;N;;;;; +1F73D;ALCHEMICAL SYMBOL FOR AURIPIGMENT;So;0;ON;;;;;N;;;;; +1F73E;ALCHEMICAL SYMBOL FOR BISMUTH ORE;So;0;ON;;;;;N;;;;; +1F73F;ALCHEMICAL SYMBOL FOR TARTAR;So;0;ON;;;;;N;;;;; +1F740;ALCHEMICAL SYMBOL FOR TARTAR-2;So;0;ON;;;;;N;;;;; +1F741;ALCHEMICAL SYMBOL FOR QUICK LIME;So;0;ON;;;;;N;;;;; +1F742;ALCHEMICAL SYMBOL FOR BORAX;So;0;ON;;;;;N;;;;; +1F743;ALCHEMICAL SYMBOL FOR BORAX-2;So;0;ON;;;;;N;;;;; +1F744;ALCHEMICAL SYMBOL FOR BORAX-3;So;0;ON;;;;;N;;;;; +1F745;ALCHEMICAL SYMBOL FOR ALUM;So;0;ON;;;;;N;;;;; +1F746;ALCHEMICAL SYMBOL FOR OIL;So;0;ON;;;;;N;;;;; +1F747;ALCHEMICAL SYMBOL FOR SPIRIT;So;0;ON;;;;;N;;;;; +1F748;ALCHEMICAL SYMBOL FOR TINCTURE;So;0;ON;;;;;N;;;;; +1F749;ALCHEMICAL SYMBOL FOR GUM;So;0;ON;;;;;N;;;;; +1F74A;ALCHEMICAL SYMBOL FOR WAX;So;0;ON;;;;;N;;;;; +1F74B;ALCHEMICAL SYMBOL FOR POWDER;So;0;ON;;;;;N;;;;; +1F74C;ALCHEMICAL SYMBOL FOR CALX;So;0;ON;;;;;N;;;;; +1F74D;ALCHEMICAL SYMBOL FOR TUTTY;So;0;ON;;;;;N;;;;; +1F74E;ALCHEMICAL SYMBOL FOR CAPUT MORTUUM;So;0;ON;;;;;N;;;;; +1F74F;ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE;So;0;ON;;;;;N;;;;; +1F750;ALCHEMICAL SYMBOL FOR CADUCEUS;So;0;ON;;;;;N;;;;; +1F751;ALCHEMICAL SYMBOL FOR TRIDENT;So;0;ON;;;;;N;;;;; +1F752;ALCHEMICAL SYMBOL FOR STARRED TRIDENT;So;0;ON;;;;;N;;;;; +1F753;ALCHEMICAL SYMBOL FOR LODESTONE;So;0;ON;;;;;N;;;;; +1F754;ALCHEMICAL SYMBOL FOR SOAP;So;0;ON;;;;;N;;;;; +1F755;ALCHEMICAL SYMBOL FOR URINE;So;0;ON;;;;;N;;;;; +1F756;ALCHEMICAL SYMBOL FOR HORSE DUNG;So;0;ON;;;;;N;;;;; +1F757;ALCHEMICAL SYMBOL FOR ASHES;So;0;ON;;;;;N;;;;; +1F758;ALCHEMICAL SYMBOL FOR POT ASHES;So;0;ON;;;;;N;;;;; +1F759;ALCHEMICAL SYMBOL FOR BRICK;So;0;ON;;;;;N;;;;; +1F75A;ALCHEMICAL SYMBOL FOR POWDERED BRICK;So;0;ON;;;;;N;;;;; +1F75B;ALCHEMICAL SYMBOL FOR AMALGAM;So;0;ON;;;;;N;;;;; +1F75C;ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM;So;0;ON;;;;;N;;;;; +1F75D;ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2;So;0;ON;;;;;N;;;;; +1F75E;ALCHEMICAL SYMBOL FOR SUBLIMATION;So;0;ON;;;;;N;;;;; +1F75F;ALCHEMICAL SYMBOL FOR PRECIPITATE;So;0;ON;;;;;N;;;;; +1F760;ALCHEMICAL SYMBOL FOR DISTILL;So;0;ON;;;;;N;;;;; +1F761;ALCHEMICAL SYMBOL FOR DISSOLVE;So;0;ON;;;;;N;;;;; +1F762;ALCHEMICAL SYMBOL FOR DISSOLVE-2;So;0;ON;;;;;N;;;;; +1F763;ALCHEMICAL SYMBOL FOR PURIFY;So;0;ON;;;;;N;;;;; +1F764;ALCHEMICAL SYMBOL FOR PUTREFACTION;So;0;ON;;;;;N;;;;; +1F765;ALCHEMICAL SYMBOL FOR CRUCIBLE;So;0;ON;;;;;N;;;;; +1F766;ALCHEMICAL SYMBOL FOR CRUCIBLE-2;So;0;ON;;;;;N;;;;; +1F767;ALCHEMICAL SYMBOL FOR CRUCIBLE-3;So;0;ON;;;;;N;;;;; +1F768;ALCHEMICAL SYMBOL FOR CRUCIBLE-4;So;0;ON;;;;;N;;;;; +1F769;ALCHEMICAL SYMBOL FOR CRUCIBLE-5;So;0;ON;;;;;N;;;;; +1F76A;ALCHEMICAL SYMBOL FOR ALEMBIC;So;0;ON;;;;;N;;;;; +1F76B;ALCHEMICAL SYMBOL FOR BATH OF MARY;So;0;ON;;;;;N;;;;; +1F76C;ALCHEMICAL SYMBOL FOR BATH OF VAPOURS;So;0;ON;;;;;N;;;;; +1F76D;ALCHEMICAL SYMBOL FOR RETORT;So;0;ON;;;;;N;;;;; +1F76E;ALCHEMICAL SYMBOL FOR HOUR;So;0;ON;;;;;N;;;;; +1F76F;ALCHEMICAL SYMBOL FOR NIGHT;So;0;ON;;;;;N;;;;; +1F770;ALCHEMICAL SYMBOL FOR DAY-NIGHT;So;0;ON;;;;;N;;;;; +1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;; +1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;; +1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;; +20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;; +2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;; +2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;; +2B734;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;; +2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;; +2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;; +2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;; +2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;; +2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;; +2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;; +2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;; +2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;; +2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;; +2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;; +2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;; +2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;; +2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;; +2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;; +2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;; +2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;; +2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;; +2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;; +2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;; +2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;; +2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;; +2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;; +2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;; +2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;; +2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;; +2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;; +2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;; +2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;; +2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;; +2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;; +2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;; +2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;; +2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;; +2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;; +2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;; +2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;; +2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;; +2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;; +2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;; +2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;; +2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;; +2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;; +2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;; +2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;; +2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;; +2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;; +2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;; +2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;; +2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;; +2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;; +2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;; +2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;; +2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;; +2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;; +2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;; +2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;; +2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;; +2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;; +2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;; +2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;; +2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;; +2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;; +2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;; +2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;; +2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;; +2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;; +2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;; +2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;; +2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;; +2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;; +2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;; +2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;; +2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;; +2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;; +2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;; +2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;; +2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;; +2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;; +2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;; +2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;; +2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;; +2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;; +2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;; +2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;; +2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;; +2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;; +2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;; +2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;; +2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;; +2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;; +2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;; +2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;; +2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;; +2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;; +2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;; +2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;; +2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;; +2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;; +2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;; +2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;; +2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;; +2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;; +2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;; +2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;; +2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;; +2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;; +2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;; +2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;; +2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;; +2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;; +2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;; +2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;; +2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;; +2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;; +2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;; +2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;; +2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;; +2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;; +2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;; +2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;; +2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;; +2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;; +2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;; +2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;; +2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;; +2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;; +2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;; +2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;; +2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;; +2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;; +2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;; +2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;; +2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;; +2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;; +2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;; +2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;; +2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;; +2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;; +2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;; +2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;; +2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;; +2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;; +2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;; +2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;; +2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;; +2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;; +2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;9;N;;;;; +2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;; +2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;; +2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;; +2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;; +2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;; +2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;; +2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;; +2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;; +2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;; +2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;; +2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;; +2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;; +2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;; +2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;; +2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;; +2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;; +2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;; +2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;; +2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;; +2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;; +2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;; +2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;; +2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;; +2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;; +2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;; +2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;; +2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;; +2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;; +2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;; +2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;; +2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;; +2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;; +2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;; +2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;; +2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;; +2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;; +2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;; +2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;; +2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;; +2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;; +2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;; +2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;; +2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;; +2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;; +2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;; +2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;; +2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;; +2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;; +2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;; +2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;; +2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;; +2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;; +2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;; +2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;; +2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;; +2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;; +2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;; +2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;; +2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;; +2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;; +2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;; +2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;; +2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;; +2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;; +2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;; +2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;; +2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;; +2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;; +2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;; +2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;; +2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;; +2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;; +2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;; +2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;; +2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;; +2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;; +2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;; +2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;; +2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;; +2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;; +2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;; +2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;; +2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;; +2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;; +2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;; +2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;; +2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;; +2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;; +2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;; +2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;; +2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;; +2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;; +2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;; +2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;; +2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;; +2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;; +2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;; +2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;; +2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;; +2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;; +2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;; +2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;; +2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;; +2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;; +2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;; +2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;; +2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;; +2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;; +2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;; +2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;; +2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;; +2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;; +2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;; +2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;; +2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;; +2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;; +2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;; +2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;; +2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;; +2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;; +2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;; +2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;; +2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;; +2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;; +2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;; +2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;; +2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;; +2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;; +2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;; +2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;; +2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;; +2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;; +2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;; +2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;; +2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;; +2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;; +2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;; +2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;; +2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;; +2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;; +2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;; +2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;; +2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;; +2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;; +2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;; +2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;; +2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;; +2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;; +2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;; +2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;; +2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;; +2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;; +2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;; +2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;; +2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;; +2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;; +2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;; +2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;; +2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;; +2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;; +2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;; +2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;; +2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;; +2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;; +2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;; +2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;; +2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;; +2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;; +2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;; +2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;; +2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;; +2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;; +2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;; +2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;; +2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;; +2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;; +2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;; +2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;; +2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;; +2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;; +2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;; +2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;; +2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;; +2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;; +2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;; +2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;; +2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;; +2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;; +2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;; +2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;; +2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;; +2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;; +2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;; +2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;; +2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;; +2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;; +2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;; +2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;; +2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;; +2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;; +2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;; +2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;; +2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;; +2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;; +2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;; +2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;; +2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;; +2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;; +2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;; +2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;; +2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;; +2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;; +2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;; +2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;; +2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;; +2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;; +2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;; +2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;; +2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;; +2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;; +2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;; +2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;; +2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;; +2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;; +2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;; +2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;; +2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;; +2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;; +2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;; +2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;; +2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;; +2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;; +2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;; +2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;; +2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;; +2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;; +2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;; +2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;; +2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;; +2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;; +2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;; +2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;; +2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;; +2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;; +2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;; +2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;; +2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;; +2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;; +2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;; +2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;; +2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;; +2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;; +2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;; +2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;; +2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;; +2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;; +2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;; +2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;; +2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;; +2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;; +2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;; +2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;; +2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;; +2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;; +2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;; +2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;; +2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;; +2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;; +2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;; +2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;; +2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;; +2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;; +2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;; +2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;; +2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;; +2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;; +2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;; +2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;; +2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;; +2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;; +2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;; +2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;; +2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;; +2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;; +2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;; +2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;; +2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;; +2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;; +2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;; +2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;; +2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;; +2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;; +2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;; +2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;; +2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;; +2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;; +2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;; +2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;; +2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;; +2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;; +2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;; +2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;; +2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;; +2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;; +2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;; +2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;; +2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;; +2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;; +2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;; +2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;; +2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;; +2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;; +2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;; +2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;; +2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;; +2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;; +2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;; +2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;; +2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;; +2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;; +2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;; +2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;; +2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;; +2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;; +2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;; +2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;; +2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;; +2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;; +2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;; +2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;; +2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;; +2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;; +2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;; +2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;; +2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;; +2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;; +2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;; +2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;; +2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;; +2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;; +2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;; +2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;; +2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;; +2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;; +2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;; +2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;; +2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;; +2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;; +2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;; +2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;; +2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;; +2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;; +2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;; +2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;; +2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;; +2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;; +2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;; +2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;; +2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;; +2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;; +2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;; +2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;; +2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;; +2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;; +2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;; +2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;; +2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;; +2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;; +2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;; +2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;; +2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;; +2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;; +2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;; +2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;; +2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;; +2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;; +2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;; +2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;; +2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;; +2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;; +2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;; +2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;; +2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;; +2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;; +2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;; +2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;; +2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;; +2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;; +2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;; +2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;; +2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;; +2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;; +2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;; +2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;; +2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;; +2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;; +2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;; +E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;; +E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;; +E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;; +E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;; +E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;; +E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;; +E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;; +E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;; +E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;; +E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;; +E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;; +E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;; +E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;; +E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;; +E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;; +E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;; +E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;; +E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;; +E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;; +E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;; +E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;; +E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;; +E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;; +E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;; +E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;; +E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;; +E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;; +E003A;TAG COLON;Cf;0;BN;;;;;N;;;;; +E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;; +E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;; +E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;; +E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;; +E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;; +E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;; +E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;; +E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;; +E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;; +E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;; +E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;; +E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;; +E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;; +E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;; +E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;; +E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;; +E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;; +E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;; +E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;; +E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;; +E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;; +E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;; +E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;; +E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;; +E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;; +E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;; +E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;; +E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;; +E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;; +E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;; +E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;; +E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;; +E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;; +E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;; +E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;; +E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;; +E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;; +E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;; +E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;; +E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;; +E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;; +E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;; +E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;; +E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;; +E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;; +E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;; +E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;; +E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;; +E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;; +E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;; +E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;; +E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;; +E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;; +E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;; +E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;; +E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;; +E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;; +E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;; +E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;; +E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;; +E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;; +E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;; +E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;; +E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;; +E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;; +E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;; +E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;; +E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;; +E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;; +E0100;VARIATION SELECTOR-17;Mn;0;NSM;;;;;N;;;;; +E0101;VARIATION SELECTOR-18;Mn;0;NSM;;;;;N;;;;; +E0102;VARIATION SELECTOR-19;Mn;0;NSM;;;;;N;;;;; +E0103;VARIATION SELECTOR-20;Mn;0;NSM;;;;;N;;;;; +E0104;VARIATION SELECTOR-21;Mn;0;NSM;;;;;N;;;;; +E0105;VARIATION SELECTOR-22;Mn;0;NSM;;;;;N;;;;; +E0106;VARIATION SELECTOR-23;Mn;0;NSM;;;;;N;;;;; +E0107;VARIATION SELECTOR-24;Mn;0;NSM;;;;;N;;;;; +E0108;VARIATION SELECTOR-25;Mn;0;NSM;;;;;N;;;;; +E0109;VARIATION SELECTOR-26;Mn;0;NSM;;;;;N;;;;; +E010A;VARIATION SELECTOR-27;Mn;0;NSM;;;;;N;;;;; +E010B;VARIATION SELECTOR-28;Mn;0;NSM;;;;;N;;;;; +E010C;VARIATION SELECTOR-29;Mn;0;NSM;;;;;N;;;;; +E010D;VARIATION SELECTOR-30;Mn;0;NSM;;;;;N;;;;; +E010E;VARIATION SELECTOR-31;Mn;0;NSM;;;;;N;;;;; +E010F;VARIATION SELECTOR-32;Mn;0;NSM;;;;;N;;;;; +E0110;VARIATION SELECTOR-33;Mn;0;NSM;;;;;N;;;;; +E0111;VARIATION SELECTOR-34;Mn;0;NSM;;;;;N;;;;; +E0112;VARIATION SELECTOR-35;Mn;0;NSM;;;;;N;;;;; +E0113;VARIATION SELECTOR-36;Mn;0;NSM;;;;;N;;;;; +E0114;VARIATION SELECTOR-37;Mn;0;NSM;;;;;N;;;;; +E0115;VARIATION SELECTOR-38;Mn;0;NSM;;;;;N;;;;; +E0116;VARIATION SELECTOR-39;Mn;0;NSM;;;;;N;;;;; +E0117;VARIATION SELECTOR-40;Mn;0;NSM;;;;;N;;;;; +E0118;VARIATION SELECTOR-41;Mn;0;NSM;;;;;N;;;;; +E0119;VARIATION SELECTOR-42;Mn;0;NSM;;;;;N;;;;; +E011A;VARIATION SELECTOR-43;Mn;0;NSM;;;;;N;;;;; +E011B;VARIATION SELECTOR-44;Mn;0;NSM;;;;;N;;;;; +E011C;VARIATION SELECTOR-45;Mn;0;NSM;;;;;N;;;;; +E011D;VARIATION SELECTOR-46;Mn;0;NSM;;;;;N;;;;; +E011E;VARIATION SELECTOR-47;Mn;0;NSM;;;;;N;;;;; +E011F;VARIATION SELECTOR-48;Mn;0;NSM;;;;;N;;;;; +E0120;VARIATION SELECTOR-49;Mn;0;NSM;;;;;N;;;;; +E0121;VARIATION SELECTOR-50;Mn;0;NSM;;;;;N;;;;; +E0122;VARIATION SELECTOR-51;Mn;0;NSM;;;;;N;;;;; +E0123;VARIATION SELECTOR-52;Mn;0;NSM;;;;;N;;;;; +E0124;VARIATION SELECTOR-53;Mn;0;NSM;;;;;N;;;;; +E0125;VARIATION SELECTOR-54;Mn;0;NSM;;;;;N;;;;; +E0126;VARIATION SELECTOR-55;Mn;0;NSM;;;;;N;;;;; +E0127;VARIATION SELECTOR-56;Mn;0;NSM;;;;;N;;;;; +E0128;VARIATION SELECTOR-57;Mn;0;NSM;;;;;N;;;;; +E0129;VARIATION SELECTOR-58;Mn;0;NSM;;;;;N;;;;; +E012A;VARIATION SELECTOR-59;Mn;0;NSM;;;;;N;;;;; +E012B;VARIATION SELECTOR-60;Mn;0;NSM;;;;;N;;;;; +E012C;VARIATION SELECTOR-61;Mn;0;NSM;;;;;N;;;;; +E012D;VARIATION SELECTOR-62;Mn;0;NSM;;;;;N;;;;; +E012E;VARIATION SELECTOR-63;Mn;0;NSM;;;;;N;;;;; +E012F;VARIATION SELECTOR-64;Mn;0;NSM;;;;;N;;;;; +E0130;VARIATION SELECTOR-65;Mn;0;NSM;;;;;N;;;;; +E0131;VARIATION SELECTOR-66;Mn;0;NSM;;;;;N;;;;; +E0132;VARIATION SELECTOR-67;Mn;0;NSM;;;;;N;;;;; +E0133;VARIATION SELECTOR-68;Mn;0;NSM;;;;;N;;;;; +E0134;VARIATION SELECTOR-69;Mn;0;NSM;;;;;N;;;;; +E0135;VARIATION SELECTOR-70;Mn;0;NSM;;;;;N;;;;; +E0136;VARIATION SELECTOR-71;Mn;0;NSM;;;;;N;;;;; +E0137;VARIATION SELECTOR-72;Mn;0;NSM;;;;;N;;;;; +E0138;VARIATION SELECTOR-73;Mn;0;NSM;;;;;N;;;;; +E0139;VARIATION SELECTOR-74;Mn;0;NSM;;;;;N;;;;; +E013A;VARIATION SELECTOR-75;Mn;0;NSM;;;;;N;;;;; +E013B;VARIATION SELECTOR-76;Mn;0;NSM;;;;;N;;;;; +E013C;VARIATION SELECTOR-77;Mn;0;NSM;;;;;N;;;;; +E013D;VARIATION SELECTOR-78;Mn;0;NSM;;;;;N;;;;; +E013E;VARIATION SELECTOR-79;Mn;0;NSM;;;;;N;;;;; +E013F;VARIATION SELECTOR-80;Mn;0;NSM;;;;;N;;;;; +E0140;VARIATION SELECTOR-81;Mn;0;NSM;;;;;N;;;;; +E0141;VARIATION SELECTOR-82;Mn;0;NSM;;;;;N;;;;; +E0142;VARIATION SELECTOR-83;Mn;0;NSM;;;;;N;;;;; +E0143;VARIATION SELECTOR-84;Mn;0;NSM;;;;;N;;;;; +E0144;VARIATION SELECTOR-85;Mn;0;NSM;;;;;N;;;;; +E0145;VARIATION SELECTOR-86;Mn;0;NSM;;;;;N;;;;; +E0146;VARIATION SELECTOR-87;Mn;0;NSM;;;;;N;;;;; +E0147;VARIATION SELECTOR-88;Mn;0;NSM;;;;;N;;;;; +E0148;VARIATION SELECTOR-89;Mn;0;NSM;;;;;N;;;;; +E0149;VARIATION SELECTOR-90;Mn;0;NSM;;;;;N;;;;; +E014A;VARIATION SELECTOR-91;Mn;0;NSM;;;;;N;;;;; +E014B;VARIATION SELECTOR-92;Mn;0;NSM;;;;;N;;;;; +E014C;VARIATION SELECTOR-93;Mn;0;NSM;;;;;N;;;;; +E014D;VARIATION SELECTOR-94;Mn;0;NSM;;;;;N;;;;; +E014E;VARIATION SELECTOR-95;Mn;0;NSM;;;;;N;;;;; +E014F;VARIATION SELECTOR-96;Mn;0;NSM;;;;;N;;;;; +E0150;VARIATION SELECTOR-97;Mn;0;NSM;;;;;N;;;;; +E0151;VARIATION SELECTOR-98;Mn;0;NSM;;;;;N;;;;; +E0152;VARIATION SELECTOR-99;Mn;0;NSM;;;;;N;;;;; +E0153;VARIATION SELECTOR-100;Mn;0;NSM;;;;;N;;;;; +E0154;VARIATION SELECTOR-101;Mn;0;NSM;;;;;N;;;;; +E0155;VARIATION SELECTOR-102;Mn;0;NSM;;;;;N;;;;; +E0156;VARIATION SELECTOR-103;Mn;0;NSM;;;;;N;;;;; +E0157;VARIATION SELECTOR-104;Mn;0;NSM;;;;;N;;;;; +E0158;VARIATION SELECTOR-105;Mn;0;NSM;;;;;N;;;;; +E0159;VARIATION SELECTOR-106;Mn;0;NSM;;;;;N;;;;; +E015A;VARIATION SELECTOR-107;Mn;0;NSM;;;;;N;;;;; +E015B;VARIATION SELECTOR-108;Mn;0;NSM;;;;;N;;;;; +E015C;VARIATION SELECTOR-109;Mn;0;NSM;;;;;N;;;;; +E015D;VARIATION SELECTOR-110;Mn;0;NSM;;;;;N;;;;; +E015E;VARIATION SELECTOR-111;Mn;0;NSM;;;;;N;;;;; +E015F;VARIATION SELECTOR-112;Mn;0;NSM;;;;;N;;;;; +E0160;VARIATION SELECTOR-113;Mn;0;NSM;;;;;N;;;;; +E0161;VARIATION SELECTOR-114;Mn;0;NSM;;;;;N;;;;; +E0162;VARIATION SELECTOR-115;Mn;0;NSM;;;;;N;;;;; +E0163;VARIATION SELECTOR-116;Mn;0;NSM;;;;;N;;;;; +E0164;VARIATION SELECTOR-117;Mn;0;NSM;;;;;N;;;;; +E0165;VARIATION SELECTOR-118;Mn;0;NSM;;;;;N;;;;; +E0166;VARIATION SELECTOR-119;Mn;0;NSM;;;;;N;;;;; +E0167;VARIATION SELECTOR-120;Mn;0;NSM;;;;;N;;;;; +E0168;VARIATION SELECTOR-121;Mn;0;NSM;;;;;N;;;;; +E0169;VARIATION SELECTOR-122;Mn;0;NSM;;;;;N;;;;; +E016A;VARIATION SELECTOR-123;Mn;0;NSM;;;;;N;;;;; +E016B;VARIATION SELECTOR-124;Mn;0;NSM;;;;;N;;;;; +E016C;VARIATION SELECTOR-125;Mn;0;NSM;;;;;N;;;;; +E016D;VARIATION SELECTOR-126;Mn;0;NSM;;;;;N;;;;; +E016E;VARIATION SELECTOR-127;Mn;0;NSM;;;;;N;;;;; +E016F;VARIATION SELECTOR-128;Mn;0;NSM;;;;;N;;;;; +E0170;VARIATION SELECTOR-129;Mn;0;NSM;;;;;N;;;;; +E0171;VARIATION SELECTOR-130;Mn;0;NSM;;;;;N;;;;; +E0172;VARIATION SELECTOR-131;Mn;0;NSM;;;;;N;;;;; +E0173;VARIATION SELECTOR-132;Mn;0;NSM;;;;;N;;;;; +E0174;VARIATION SELECTOR-133;Mn;0;NSM;;;;;N;;;;; +E0175;VARIATION SELECTOR-134;Mn;0;NSM;;;;;N;;;;; +E0176;VARIATION SELECTOR-135;Mn;0;NSM;;;;;N;;;;; +E0177;VARIATION SELECTOR-136;Mn;0;NSM;;;;;N;;;;; +E0178;VARIATION SELECTOR-137;Mn;0;NSM;;;;;N;;;;; +E0179;VARIATION SELECTOR-138;Mn;0;NSM;;;;;N;;;;; +E017A;VARIATION SELECTOR-139;Mn;0;NSM;;;;;N;;;;; +E017B;VARIATION SELECTOR-140;Mn;0;NSM;;;;;N;;;;; +E017C;VARIATION SELECTOR-141;Mn;0;NSM;;;;;N;;;;; +E017D;VARIATION SELECTOR-142;Mn;0;NSM;;;;;N;;;;; +E017E;VARIATION SELECTOR-143;Mn;0;NSM;;;;;N;;;;; +E017F;VARIATION SELECTOR-144;Mn;0;NSM;;;;;N;;;;; +E0180;VARIATION SELECTOR-145;Mn;0;NSM;;;;;N;;;;; +E0181;VARIATION SELECTOR-146;Mn;0;NSM;;;;;N;;;;; +E0182;VARIATION SELECTOR-147;Mn;0;NSM;;;;;N;;;;; +E0183;VARIATION SELECTOR-148;Mn;0;NSM;;;;;N;;;;; +E0184;VARIATION SELECTOR-149;Mn;0;NSM;;;;;N;;;;; +E0185;VARIATION SELECTOR-150;Mn;0;NSM;;;;;N;;;;; +E0186;VARIATION SELECTOR-151;Mn;0;NSM;;;;;N;;;;; +E0187;VARIATION SELECTOR-152;Mn;0;NSM;;;;;N;;;;; +E0188;VARIATION SELECTOR-153;Mn;0;NSM;;;;;N;;;;; +E0189;VARIATION SELECTOR-154;Mn;0;NSM;;;;;N;;;;; +E018A;VARIATION SELECTOR-155;Mn;0;NSM;;;;;N;;;;; +E018B;VARIATION SELECTOR-156;Mn;0;NSM;;;;;N;;;;; +E018C;VARIATION SELECTOR-157;Mn;0;NSM;;;;;N;;;;; +E018D;VARIATION SELECTOR-158;Mn;0;NSM;;;;;N;;;;; +E018E;VARIATION SELECTOR-159;Mn;0;NSM;;;;;N;;;;; +E018F;VARIATION SELECTOR-160;Mn;0;NSM;;;;;N;;;;; +E0190;VARIATION SELECTOR-161;Mn;0;NSM;;;;;N;;;;; +E0191;VARIATION SELECTOR-162;Mn;0;NSM;;;;;N;;;;; +E0192;VARIATION SELECTOR-163;Mn;0;NSM;;;;;N;;;;; +E0193;VARIATION SELECTOR-164;Mn;0;NSM;;;;;N;;;;; +E0194;VARIATION SELECTOR-165;Mn;0;NSM;;;;;N;;;;; +E0195;VARIATION SELECTOR-166;Mn;0;NSM;;;;;N;;;;; +E0196;VARIATION SELECTOR-167;Mn;0;NSM;;;;;N;;;;; +E0197;VARIATION SELECTOR-168;Mn;0;NSM;;;;;N;;;;; +E0198;VARIATION SELECTOR-169;Mn;0;NSM;;;;;N;;;;; +E0199;VARIATION SELECTOR-170;Mn;0;NSM;;;;;N;;;;; +E019A;VARIATION SELECTOR-171;Mn;0;NSM;;;;;N;;;;; +E019B;VARIATION SELECTOR-172;Mn;0;NSM;;;;;N;;;;; +E019C;VARIATION SELECTOR-173;Mn;0;NSM;;;;;N;;;;; +E019D;VARIATION SELECTOR-174;Mn;0;NSM;;;;;N;;;;; +E019E;VARIATION SELECTOR-175;Mn;0;NSM;;;;;N;;;;; +E019F;VARIATION SELECTOR-176;Mn;0;NSM;;;;;N;;;;; +E01A0;VARIATION SELECTOR-177;Mn;0;NSM;;;;;N;;;;; +E01A1;VARIATION SELECTOR-178;Mn;0;NSM;;;;;N;;;;; +E01A2;VARIATION SELECTOR-179;Mn;0;NSM;;;;;N;;;;; +E01A3;VARIATION SELECTOR-180;Mn;0;NSM;;;;;N;;;;; +E01A4;VARIATION SELECTOR-181;Mn;0;NSM;;;;;N;;;;; +E01A5;VARIATION SELECTOR-182;Mn;0;NSM;;;;;N;;;;; +E01A6;VARIATION SELECTOR-183;Mn;0;NSM;;;;;N;;;;; +E01A7;VARIATION SELECTOR-184;Mn;0;NSM;;;;;N;;;;; +E01A8;VARIATION SELECTOR-185;Mn;0;NSM;;;;;N;;;;; +E01A9;VARIATION SELECTOR-186;Mn;0;NSM;;;;;N;;;;; +E01AA;VARIATION SELECTOR-187;Mn;0;NSM;;;;;N;;;;; +E01AB;VARIATION SELECTOR-188;Mn;0;NSM;;;;;N;;;;; +E01AC;VARIATION SELECTOR-189;Mn;0;NSM;;;;;N;;;;; +E01AD;VARIATION SELECTOR-190;Mn;0;NSM;;;;;N;;;;; +E01AE;VARIATION SELECTOR-191;Mn;0;NSM;;;;;N;;;;; +E01AF;VARIATION SELECTOR-192;Mn;0;NSM;;;;;N;;;;; +E01B0;VARIATION SELECTOR-193;Mn;0;NSM;;;;;N;;;;; +E01B1;VARIATION SELECTOR-194;Mn;0;NSM;;;;;N;;;;; +E01B2;VARIATION SELECTOR-195;Mn;0;NSM;;;;;N;;;;; +E01B3;VARIATION SELECTOR-196;Mn;0;NSM;;;;;N;;;;; +E01B4;VARIATION SELECTOR-197;Mn;0;NSM;;;;;N;;;;; +E01B5;VARIATION SELECTOR-198;Mn;0;NSM;;;;;N;;;;; +E01B6;VARIATION SELECTOR-199;Mn;0;NSM;;;;;N;;;;; +E01B7;VARIATION SELECTOR-200;Mn;0;NSM;;;;;N;;;;; +E01B8;VARIATION SELECTOR-201;Mn;0;NSM;;;;;N;;;;; +E01B9;VARIATION SELECTOR-202;Mn;0;NSM;;;;;N;;;;; +E01BA;VARIATION SELECTOR-203;Mn;0;NSM;;;;;N;;;;; +E01BB;VARIATION SELECTOR-204;Mn;0;NSM;;;;;N;;;;; +E01BC;VARIATION SELECTOR-205;Mn;0;NSM;;;;;N;;;;; +E01BD;VARIATION SELECTOR-206;Mn;0;NSM;;;;;N;;;;; +E01BE;VARIATION SELECTOR-207;Mn;0;NSM;;;;;N;;;;; +E01BF;VARIATION SELECTOR-208;Mn;0;NSM;;;;;N;;;;; +E01C0;VARIATION SELECTOR-209;Mn;0;NSM;;;;;N;;;;; +E01C1;VARIATION SELECTOR-210;Mn;0;NSM;;;;;N;;;;; +E01C2;VARIATION SELECTOR-211;Mn;0;NSM;;;;;N;;;;; +E01C3;VARIATION SELECTOR-212;Mn;0;NSM;;;;;N;;;;; +E01C4;VARIATION SELECTOR-213;Mn;0;NSM;;;;;N;;;;; +E01C5;VARIATION SELECTOR-214;Mn;0;NSM;;;;;N;;;;; +E01C6;VARIATION SELECTOR-215;Mn;0;NSM;;;;;N;;;;; +E01C7;VARIATION SELECTOR-216;Mn;0;NSM;;;;;N;;;;; +E01C8;VARIATION SELECTOR-217;Mn;0;NSM;;;;;N;;;;; +E01C9;VARIATION SELECTOR-218;Mn;0;NSM;;;;;N;;;;; +E01CA;VARIATION SELECTOR-219;Mn;0;NSM;;;;;N;;;;; +E01CB;VARIATION SELECTOR-220;Mn;0;NSM;;;;;N;;;;; +E01CC;VARIATION SELECTOR-221;Mn;0;NSM;;;;;N;;;;; +E01CD;VARIATION SELECTOR-222;Mn;0;NSM;;;;;N;;;;; +E01CE;VARIATION SELECTOR-223;Mn;0;NSM;;;;;N;;;;; +E01CF;VARIATION SELECTOR-224;Mn;0;NSM;;;;;N;;;;; +E01D0;VARIATION SELECTOR-225;Mn;0;NSM;;;;;N;;;;; +E01D1;VARIATION SELECTOR-226;Mn;0;NSM;;;;;N;;;;; +E01D2;VARIATION SELECTOR-227;Mn;0;NSM;;;;;N;;;;; +E01D3;VARIATION SELECTOR-228;Mn;0;NSM;;;;;N;;;;; +E01D4;VARIATION SELECTOR-229;Mn;0;NSM;;;;;N;;;;; +E01D5;VARIATION SELECTOR-230;Mn;0;NSM;;;;;N;;;;; +E01D6;VARIATION SELECTOR-231;Mn;0;NSM;;;;;N;;;;; +E01D7;VARIATION SELECTOR-232;Mn;0;NSM;;;;;N;;;;; +E01D8;VARIATION SELECTOR-233;Mn;0;NSM;;;;;N;;;;; +E01D9;VARIATION SELECTOR-234;Mn;0;NSM;;;;;N;;;;; +E01DA;VARIATION SELECTOR-235;Mn;0;NSM;;;;;N;;;;; +E01DB;VARIATION SELECTOR-236;Mn;0;NSM;;;;;N;;;;; +E01DC;VARIATION SELECTOR-237;Mn;0;NSM;;;;;N;;;;; +E01DD;VARIATION SELECTOR-238;Mn;0;NSM;;;;;N;;;;; +E01DE;VARIATION SELECTOR-239;Mn;0;NSM;;;;;N;;;;; +E01DF;VARIATION SELECTOR-240;Mn;0;NSM;;;;;N;;;;; +E01E0;VARIATION SELECTOR-241;Mn;0;NSM;;;;;N;;;;; +E01E1;VARIATION SELECTOR-242;Mn;0;NSM;;;;;N;;;;; +E01E2;VARIATION SELECTOR-243;Mn;0;NSM;;;;;N;;;;; +E01E3;VARIATION SELECTOR-244;Mn;0;NSM;;;;;N;;;;; +E01E4;VARIATION SELECTOR-245;Mn;0;NSM;;;;;N;;;;; +E01E5;VARIATION SELECTOR-246;Mn;0;NSM;;;;;N;;;;; +E01E6;VARIATION SELECTOR-247;Mn;0;NSM;;;;;N;;;;; +E01E7;VARIATION SELECTOR-248;Mn;0;NSM;;;;;N;;;;; +E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;; +E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;; +E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;; +E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;; +E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;; +E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;; +E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;; +E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;; +F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;N;;;;; +FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N;;;;; +100000;<Plane 16 Private Use, First>;Co;0;L;;;;;N;;;;; +10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;N;;;;; DELETED freshlib/_pending/lzss/readme.txt Index: freshlib/_pending/lzss/readme.txt ================================================================== --- freshlib/_pending/lzss/readme.txt +++ /dev/null @@ -1,63 +0,0 @@ -LZSS compression library for Flat Assembler -by Mateusz Tymek - -1. Introduction -LZSS is a library that provides you with simple routines for data compression. The -algorithm is based on oryginal idea of Lempel and Ziv, with the modyfications suggeted by -Storer and Szymanski (that's why its name is LZSS). You can search the Web for "LZSS -compression" if you need any further information. This implementation uses binary search -trees to speed up compression. It is based on the code of the Allegro Library -(http://alleg.sourceforge.net), and it have similar (a bit better actually) compression -ratio. All source code is included. The library is written in FASM, and it uses Fresh -macro library. -It is distributed under the terms of Fresh Artistic License -(see http://www.decard.net/license.php). - -2. Using LZSS library -To use LZSS library, first you have to include its files in your source. You have to -include "lzss.inc" file somewhere in the beginning (it contains some definitions, not -the code), and then "lzss.asm" (anywhere in the code section). See "lzsspack.asm" file. -Now you can use the library functions. They can compress/decompress the data, and save -or load it from file. -In next part those functions are covered with more details. - -2.1. LZSS Function Reference - -proc lzssFreeData, lzss_data -Frees memory occupied by given lzss data. As lzss_data parameter you should use value -returned by lzssPackData. - -proc lzssLoadFile, file_name, ptr_size -Loads packed file of given name, decompresses it and returns pointer to unpacked data. -Usually you will want to obtain size of the data after decompression, in such case you -have to pass a pointer to dword variable as "ptr_size" parameter. If you pass NULL, -its also OK but then you won't know unpacked data size. - -proc lzssPackData, data_to_pack,data_size -Compresses given data of given size. Returns pointer to LZSSData in eax. - - -proc lzssSaveFile, file_name, buffer, size -Compresses given data of given size and stores it in specified file. If given file -already exists, it will be overwritten. Function returns zero on fail, and non-zero value -on success. - -proc lzssUnpackData, lzss_data -Decompresses packed data. lzss_data should be the value returned by lzssPackData. - - -3. lzsspack.exe -lzsspack is a simple utility that preforms file compression. It is a command line utility. -To pack some file just type: - >lzsspack source_file output_file -source is your file with data to be packed, and output is a name of file to be generated. -To unpack, type: - >lzsspack -u packed_file output_file -and it will decompress given file. - -lzsspack's source code is included in the package. - -4. Changelog - -26.10.2004 - fixed serious bug that was causing data loss. -27.10.2004 - optimizations to bitstream library. DELETED freshlib/_pending/lzss/source/bits.asm Index: freshlib/_pending/lzss/source/bits.asm ================================================================== --- freshlib/_pending/lzss/source/bits.asm +++ /dev/null @@ -1,169 +0,0 @@ -; creates bits stream and returns pointer -proc BitsCreateNew, .buf_size - begin - push ebx edi - invoke GetProcessHeap - mov edi,eax - invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,sizeof.BitStream - or eax,eax - jz .finish - mov ebx,eax - invoke HeapAlloc,edi,HEAP_ZERO_MEMORY,[.buf_size] - or eax,eax - jz .finish - mov [ebx+BitStream.buf],eax - mov [ebx+BitStream.ptr],eax - mov [ebx+BitStream.bit_ptr],0 - mov eax,ebx - pop edi ebx - .finish: - return -endp - -; create bitstream over existing buffer -proc BitsCreateFrom, .bitbuf - begin - push ebx edi - invoke GetProcessHeap - mov edi,eax - invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,sizeof.BitStream - or eax,eax - jz .finish - mov ebx,eax - mov eax,[.bitbuf] - mov [ebx+BitStream.buf],eax - mov [ebx+BitStream.ptr],eax - mov [ebx+BitStream.bit_ptr],0 - mov eax,ebx - pop edi ebx - .finish: - return -endp - -; destroys given bitstream, but not the buffer (!) -proc BitsDestroy, .stream - begin - push eax - invoke GetProcessHeap - invoke HeapFree,eax,0,[.stream] - pop eax - return -endp - -; destroys given bitstream with buffer -proc BitsDestroyBuf, .stream - begin - push eax ebx - invoke GetProcessHeap - mov ebx,eax - mov eax,[.stream] - mov eax,[eax+BitStream.buf] - invoke HeapFree,ebx,0,eax - invoke HeapFree,ebx,0,[.stream] - pop ebx eax - return -endp - - -; sets given stream to position 0 -proc BitsReset, .stream - begin - push eax ebx - mov ebx,[.stream] - mov [ebx+BitStream.bit_ptr],0 - mov eax,[ebx+BitStream.buf] - mov [ebx+BitStream.ptr],eax - pop ebx eax - return -endp - -; puts given number of bits into stream -proc BitsPut, .stream,.bits,.bit_count - begin - push eax ebx ecx edx esi edi - ; generate mask in edi:esi - xor eax,eax - dec eax - mov esi,eax - mov edi,eax - mov ebx,[.stream] - mov ecx,[.bit_count] - shl esi,cl - mov ecx,[ebx+BitStream.bit_ptr] - shld edi,esi,cl - shld esi,eax,cl - ; load new bits into edx:ecx; at this point ecx==[ebx+BitStream.bit_ptr] - xor edx,edx - mov eax,[.bits] - shld edx,eax,cl - shl eax,cl - mov ecx,eax - ; finally, store new bits using - mov ebx,[ebx+BitStream.ptr] - and [ebx],esi - or [ebx],ecx - add ebx,4 - and [ebx],edi - or [ebx],edx - ; and fix the pointers - mov ebx,[.stream] - mov eax,[.bit_count] - add [ebx+BitStream.bit_ptr],eax - cmp [ebx+BitStream.bit_ptr],32 - jb .finish - sub [ebx+BitStream.bit_ptr],32 - add [ebx+BitStream.ptr],4 - .finish: - pop edi esi edx ecx ebx eax - return -endp - -; reads given number of bits form the stream -proc BitsGet, .stream,.bit_count - begin - push ebx ecx edx esi - ; generate mask (in esi) - xor esi,esi - dec esi - mov ecx,[.bit_count] - shl esi,cl - not esi - mov ebx,[.stream] - mov eax,[ebx+BitStream.ptr] - mov edx,[eax+4] - mov eax,[eax] - mov ecx,[ebx+BitStream.bit_ptr] - shrd eax,edx,cl - and eax,esi - ; fix the pointers - mov ebx,[.stream] - mov edx,[.bit_count] - add [ebx+BitStream.bit_ptr],edx - cmp [ebx+BitStream.bit_ptr],32 - jb .finish - sub [ebx+BitStream.bit_ptr],32 - add [ebx+BitStream.ptr],4 - .finish: - pop esi edx ecx ebx - return -endp - -; returns size (in bytes) of given stream -proc BitsGetSize, .stream - begin - push ebx edx - mov ebx,[.stream] - xor edx,edx ; get number of bytes in additional bits - mov eax,[ebx+BitStream.bit_ptr] - or eax,eax - jz .no_extra_bits - shr eax,3 - inc eax - mov edx,eax - .no_extra_bits: - mov eax,[ebx+BitStream.ptr] - sub eax,[ebx+BitStream.buf] - add eax,edx - pop edx ebx - return -endp DELETED freshlib/_pending/lzss/source/bits.inc Index: freshlib/_pending/lzss/source/bits.inc ================================================================== --- freshlib/_pending/lzss/source/bits.inc +++ /dev/null @@ -1,5 +0,0 @@ -struct BitStream - .buf dd ? - .ptr dd ? - .bit_ptr dd ? -ends DELETED freshlib/_pending/lzss/source/cmdln.asm Index: freshlib/_pending/lzss/source/cmdln.asm ================================================================== --- freshlib/_pending/lzss/source/cmdln.asm +++ /dev/null @@ -1,273 +0,0 @@ -; ------------------------------ -; Base64 encoding program v1.0 -; by Mateusz Tymek (c) 2004 -; -; ------------------------------ -; cmdln.asm -; command line parsing -; ------------------------------ - - -iglobal -; command line variables -cmdln: - .argc dd ? - .argv rd 0x10 ; 16 parameters limit - .params rb 0x100 - - .input_fname dd ? - .output_fname dd ? - .switches rd 8 - .out_buf rb 0x50 -endg - - -; strlen - returns length of given string -; from Fresh Standard Library -proc strlen, .str - begin - push ebx - mov eax,[.str] - mov ebx,eax - .scan: - cmp byte[eax],0 - lea eax,[eax+1] - jne .scan - sub eax,ebx - dec eax ; return value in eax - pop ebx - return -endp - -; strlen - returns length of given string -; from Fresh Standard Library -proc strcpy, .dest, .source - begin - push esi edi eax ecx - mov edi,[.dest] - mov esi,[.source] - stdcall strlen, esi - mov ecx,eax - cld - rep movsb ; copy strings -.finish: - pop ecx eax edi esi - return -endp - - -; splits command line into single parameters -; (argv table) -proc parse_command_line, .cmdline - begin - push eax ebx esi edi - mov [cmdln.argc],0 - mov ebx,cmdln.argv - mov edi,cmdln.params - mov esi,[.cmdline] - .load: - mov al,[esi] - inc esi - .scan: - cmp al,0x20 - je .load - or al,al - jz .finish - inc [cmdln.argc] - mov [ebx],edi - add ebx,4 - cmp al,'"' - je .copy_quoted - .copy_param: - mov [edi],al - inc edi - mov al,[esi] - inc esi - cmp al,0x20 - je .param_copied - or al,al - jz .param_copied - jmp .copy_param - .param_copied: - mov byte[edi],0 - inc edi - jmp .scan - .copy_quoted: - mov al,[esi] - inc esi - cmp al,'"' - je .end_quoted - or al,al - jz .param_copied - mov [edi],al - inc edi - jmp .copy_quoted - .end_quoted: - mov al,[esi] - inc esi - jmp .param_copied - .finish: - pop edi esi ebx eax - return -endp - - -proc arrange_cmdline, .cmdline,.def_output_ext - begin - stdcall parse_command_line, [.cmdline] - mov esi,cmdln.switches - xor edx,edx - xor ecx,ecx - - .scan_param: - inc ecx - cmp ecx,[cmdln.argc] - jae .params_scanned - mov eax,[cmdln.argv+ecx*4] - cmp byte[eax],'-' - je .switch - or edx,edx - jnz .output_name - mov [cmdln.input_fname],eax - inc edx - jmp .scan_param - .output_name: - mov [cmdln.output_fname],eax - inc edx - jmp .scan_param - .switch: - mov [esi],eax - add esi,4 - jmp .scan_param - - .params_scanned: - cmp [cmdln.argc],1 - je .got_output_fname - mov dword[esi],0 - - cmp edx,2 - jae .got_output_fname - stdcall strcpy, cmdln.out_buf,[cmdln.input_fname] - stdcall replace_ext, cmdln.out_buf,[.def_output_ext] - mov [cmdln.output_fname],cmdln.out_buf - .got_output_fname: - return -endp - - -; replaces extension of given filename to specified one. -; if ext is NULL, then the extension is removed -proc replace_ext, .filename,.ext - begin - mov edi,[.filename] - stdcall strlen, [.filename] - add edi,eax - mov ebx,edi - dec edi - .scan: - mov al,[edi] - cmp al,'.' - je .got_extension - cmp al,'\' - je .append - cmp al,'/' - je .append - cmp al,':' - je .append - or al,al - jz .append - dec edi - jmp .scan - - .append: - mov edi,ebx - mov byte[edi],'.' - inc edi - jmp .get_new_ext - - .got_extension: - inc edi - .get_new_ext: - mov esi,[.ext] - or esi,esi - jz .remove_ext - .copy_ext: - mov al,[esi] - mov [edi],al - inc esi - inc edi - or al,al - jnz .copy_ext - .finish: - return - .remove_ext: - dec edi - xor al,al - mov [edi],al - jmp .finish -endp - - -; replaces filename in given path -; if fname is NULL, then the file name is removed -proc replace_fname, .path,.fname - begin - mov edi,[.path] - stdcall strlen, [.path] - or eax,eax - jz .prepare_copy - add edi,eax - mov ebx,edi - dec edi - .scan: - mov al,[edi] - cmp al,'\' - je .got_fname - cmp al,'/' - je .got_fname - cmp al,':' - je .got_fname - or al,al - jz .got_fname - dec edi - jmp .scan - - .got_fname: - inc edi - .prepare_copy: - mov esi,[.fname] - .copy_fname: - mov al,[esi] - mov [edi],al - inc esi - inc edi - or al,al - jnz .copy_fname - .finish: - return -endp - - -proc get_switch_w - begin - push ebx edx - mov ebx,cmdln.switches - .check: - cmp dword[ebx],0 - je .false - mov edx,[ebx] - - cmp word[edx],ax - je .true - add ebx,4 - jmp .check - .false: - xor eax,eax - pop edx ebx - return - .true: - xor eax,eax - inc eax - pop edx ebx - return -endp DELETED freshlib/_pending/lzss/source/lzss.asm Index: freshlib/_pending/lzss/source/lzss.asm ================================================================== --- freshlib/_pending/lzss/source/lzss.asm +++ /dev/null @@ -1,640 +0,0 @@ -; lzss compression library -; copyright (c) 2004 Mateusz Tymek -; -; 17.03.2004 -; last updated 27.10.2004 -; version 1.01 - - -uglobal - -lzss: - .rnode rd LZSS_DICTIONARY_SIZE + 1 + 0x100 - .lnode rd LZSS_DICTIONARY_SIZE + 1 - .parent rd LZSS_DICTIONARY_SIZE + 1 - sizeof.trees = $-lzss.rnode - - .dictionary rb LZSS_DICTIONARY_SIZE + LZSS_MAX_COUNT - sizeof.dictionary = $-lzss.dictionary - - .best_match_len dd ? - .best_match_pos dd ? -endg - -iglobal - lzss.packer_func dd 0 -endg - -; creates new empty LZSSData structure -proc lzssNewData - begin - invoke GetProcessHeap - invoke HeapAlloc, eax,HEAP_ZERO_MEMORY,sizeof.LZSSData ; alloc mem for LZSSData struc - return -endp - - -; destroys givem LZSSData structure -proc lzssFreeData, .lzss_data - begin - push eax ebx - invoke GetProcessHeap - mov ebx,eax - mov eax,[.lzss_data] - invoke HeapFree, ebx,0,[eax+LZSSData.data] - invoke HeapFree, ebx,0,[.lzss_data] - pop ebx eax - return -endp - -;----------------------------------------------------------------------------------------------- - - -proc lzss_new_tree - begin - push eax ecx esi edi - mov eax,LZSS_NO_TREE - mov ecx,LZSS_DICTIONARY_SIZE + 1 - mov esi,lzss.lnode - mov edi,lzss.parent - .clear: - mov [esi],eax - mov [edi],eax - add edi,4 - add esi,4 - dec ecx - jnz .clear - mov edi,lzss.rnode - mov ecx,LZSS_DICTIONARY_SIZE + 0x101 - .clear_btrees: - mov [edi],eax - add edi,4 - dec ecx - jnz .clear_btrees - pop edi esi ecx eax - return -endp - - -proc lzss_insert_node, .buffer_pos ; inserts string at text_buf+[buf_pos] into the tree - begin - push eax ebx ecx edx esi edi - xor eax,eax - mov [lzss.best_match_len],eax - mov [lzss.best_match_pos],eax - - mov eax,[.buffer_pos] - mov edx,eax - add eax,lzss.dictionary - movzx eax,byte[eax] - lea ebx,[LZSS_DICTIONARY_SIZE+1+eax] - mov edx,1 ; edx will hold comparision result - mov eax,LZSS_NO_TREE - mov [lzss.rnode+edx*4],eax - mov [lzss.lnode+edx*4],eax - - .search_tree: - or edx,edx - js .left_node - .right_node: - cmp [lzss.rnode+ebx*4],LZSS_NO_TREE - je .put_right - - mov ebx,[lzss.rnode+ebx*4] - jmp .node_ok - .put_right: - mov eax,[.buffer_pos] - mov [lzss.rnode+ebx*4],eax - mov [lzss.parent+eax*4],ebx - jmp .finish - .left_node: - cmp [lzss.lnode+ebx*4],LZSS_NO_TREE - je .put_left - - mov ebx,[lzss.lnode+ebx*4] - jmp .node_ok - .put_left: - mov eax,[.buffer_pos] - mov [lzss.lnode+ebx*4],eax - mov [lzss.parent+eax*4],ebx - jmp .finish - .node_ok: - push esi edi - lea edi,[lzss.dictionary+ebx] - mov esi,[.buffer_pos] - lea esi,[lzss.dictionary+esi] - mov ecx,LZSS_MAX_COUNT-1 - inc esi ; we know that first character - inc edi ; already matches - xor edx,edx - xor eax,eax - .compare: - mov dl,[esi] - mov al,byte[edi] - sub edx,eax - or edx,edx - jnz .compared - inc edi - inc esi - dec ecx - jnz .compare - .compared: - pop esi edi - - mov eax,LZSS_MAX_COUNT-1 - dec ecx - sub eax,ecx - cmp eax,[lzss.best_match_len] - jbe .search_tree - mov [lzss.best_match_len],eax - mov [lzss.best_match_pos],ebx - - cmp eax,LZSS_MAX_COUNT - jae .got_max_count - - jmp .search_tree - - .got_max_count: - mov eax,[.buffer_pos] - mov edx,[lzss.parent+ebx*4] - mov [lzss.parent+eax*4],edx - - mov edx,[lzss.lnode+ebx*4] - mov [lzss.lnode+eax*4],edx - mov [lzss.parent+edx*4],eax - - mov edx,[lzss.rnode+ebx*4] - mov [lzss.rnode+eax*4],edx - mov [lzss.parent+edx*4],eax - - mov edx,[lzss.parent+ebx*4] - cmp [lzss.rnode+edx*4],ebx - je .right - .left: - mov [lzss.lnode+edx*4],eax - jmp .ok - .right: - mov [lzss.rnode+edx*4],eax - .ok: - mov eax,LZSS_NO_TREE - mov [lzss.parent+ebx*4],eax - mov [lzss.lnode+ebx*4],eax - mov [lzss.rnode+ebx*4],eax - - .finish: - pop edi esi edx ecx ebx eax - return -endp - - -; removes tree node at [buffer_pos] -proc lzss_delete_node, .buffer_pos - begin - push eax ebx ecx edx - mov eax,[.buffer_pos] - cmp dword[lzss.parent+eax*4],LZSS_NO_TREE ; empty? - je .finish - - cmp dword[lzss.rnode+eax*4],LZSS_NO_TREE - je .empty_right - cmp dword[lzss.lnode+eax*4],LZSS_NO_TREE - je .empty_left - - - ; if we are here then none of children is empty - - mov ebx,[lzss.lnode+eax*4] - cmp [lzss.rnode+ebx*4],LZSS_NO_TREE - je .got_free_rnode - .find_free_rnode: - mov ebx,[lzss.rnode+ebx*4] - cmp [lzss.rnode+ebx*4],LZSS_NO_TREE - jne .find_free_rnode - - mov edx,[lzss.parent+ebx*4] - mov ecx,[lzss.lnode+ebx*4] - mov [lzss.rnode+edx*4],ecx - mov [lzss.parent+ecx*4],edx - - mov edx,[lzss.lnode+eax*4] - mov [lzss.lnode+ebx*4],edx - mov [lzss.parent+edx*4],ebx - - .got_free_rnode: - - mov edx,[lzss.rnode+eax*4] - mov [lzss.rnode+ebx*4],edx - mov [lzss.parent+edx*4],ebx - - jmp .remove - - .empty_left: - mov ebx,[lzss.rnode+eax*4] - jmp .remove - .empty_right: - mov ebx,[lzss.lnode+eax*4] - - .remove: - - mov edx,[lzss.parent+eax*4] ; now edx holds parent of node being removed - mov [lzss.parent+ebx*4],edx - - ; now fix the valid child - cmp [lzss.rnode+edx*4],eax - je .fix_right_child - .fix_left_child: - mov [lzss.lnode+edx*4],ebx - jmp .clear - .fix_right_child: - mov [lzss.rnode+edx*4],ebx - - .clear: ; clear the node that is being removed - mov [lzss.parent+eax*4],LZSS_NO_TREE - mov [lzss.rnode+eax*4],LZSS_NO_TREE - mov [lzss.lnode+eax*4],LZSS_NO_TREE - - .finish: - - pop edx ecx ebx eax - return -endp - - -proc lzssPackData, .buffer,.buffer_size -.lzss_data dd ? -.bitstream dd ? - begin - push ebx ecx edx esi edi - ; fill the dictionary with zeroes - mov edi,lzss.dictionary - mov ecx,(LZSS_DICTIONARY_SIZE + LZSS_MAX_COUNT)/2 - xor eax,eax - .clear_dictionary: - mov [edi],ax - add edi,2 - dec ecx - jnz .clear_dictionary - - stdcall lzssNewData - or eax,eax - jz .finish - mov [.lzss_data],eax - mov edi,eax - invoke GetProcessHeap - mov ebx,eax - mov eax,[.buffer_size] ; calculate maximum memory that can be needed by - shr eax,3 ; compressed data. It is data_size + data_size/8 ... - inc eax ; and one more byte just to be sure :) - add eax,[.buffer_size] ; - invoke HeapAlloc, ebx,HEAP_ZERO_MEMORY,eax - or eax,eax - jz .finish - mov [edi+LZSSData.data],eax - mov ecx,[.buffer_size] - mov [edi+LZSSData.unpacked_size],ecx - mov eax,[.buffer] ; esi will point to input buffer - add eax,ecx ; add eax,[buffer_size] - stdcall BitsCreateFrom, [edi+LZSSData.data] - mov [.bitstream],eax - - ; edi will point to the end of the dictionary... - mov edi,LZSS_DICTIONARY_SIZE-LZSS_MAX_COUNT - ; ... and esi will mark the start - xor esi,esi - stdcall lzss_new_tree - - - xor edx,edx - .read_first_bytes: - mov eax,[.buffer] - mov al,[eax] - inc [.buffer] - mov [lzss.dictionary+edi+edx],al - inc edx - cmp edx,LZSS_MAX_COUNT - jae .got_first_bytes - dec [.buffer_size] - jz .got_first_bytes - jmp .read_first_bytes - .got_first_bytes: - - or edx,edx - jz .packed - - mov ecx,LZSS_MAX_COUNT-1 - mov eax,edi - dec eax - .prepare_tree: - stdcall lzss_insert_node,eax - dec eax - dec ecx - jnz .prepare_tree - stdcall lzss_insert_node,edi ; insert the string just read; best_match_len and best_match_pos are set - - .packer_loop: - cmp [lzss.best_match_len],edx ; best_match_len may be too long near the end - jbe .lzss.best_match_len_ok - mov [lzss.best_match_len],edx - .lzss.best_match_len_ok: - - cmp [lzss.best_match_len],LZSS_THRESHOLD ; send unpacked byte or ofs-length pair? - ja .send_packed - stdcall BitsPut, [.bitstream],0,1 ; send "unpacked data" flag - mov al,[lzss.dictionary+edi] - stdcall BitsPut, [.bitstream],eax,8 ; send byte directly - mov [lzss.best_match_len],1 ; mark that we have processed just one byte - - jmp .item_packed - .send_packed: - stdcall BitsPut, [.bitstream],1,1 ; "packed data" flag - stdcall BitsPut, [.bitstream],[lzss.best_match_pos],LZSS_OFFSET_BITS - mov eax,[lzss.best_match_len] - sub eax,LZSS_THRESHOLD+1 - stdcall BitsPut, [.bitstream],eax,LZSS_COUNT_BITS - - - .item_packed: - xor ecx,ecx - mov ebx,[lzss.best_match_len] ; ebx will hold value of "last match length" - cmp [.buffer_size],0 - je .new_bytes_ok - .get_new_bytes: - cmp ecx,ebx ; compare ecx to [last_match_len] - jae .new_bytes_ok - dec [.buffer_size] - jz .new_bytes_ok - stdcall lzss_delete_node,esi - mov eax,[.buffer] - inc [.buffer] - mov al,[eax] - mov [lzss.dictionary+esi],al ; put new byte in the dictionary - cmp esi,LZSS_MAX_COUNT - jae .no_extra - mov [lzss.dictionary+esi+LZSS_DICTIONARY_SIZE],al - .no_extra: - inc esi - inc edi - mov eax,LZSS_DICTIONARY_SIZE - dec eax - and esi,eax - and edi,eax - - stdcall lzss_insert_node,edi ; insert new string - - inc ecx - jmp .get_new_bytes - .new_bytes_ok: - cmp ecx,ebx - jae .packed - inc ecx - stdcall lzss_delete_node,esi - inc esi - inc edi - mov eax,LZSS_DICTIONARY_SIZE - dec eax - and esi,eax - and edi,eax - dec edx - jz .new_bytes_ok - - stdcall lzss_insert_node,edi - jmp .new_bytes_ok - .packed: - - or edx,edx - jnz .packer_loop - - mov ebx,[.lzss_data] - stdcall BitsGetSize, [.bitstream] - mov [ebx+LZSSData.packed_size],eax - .finish: - - mov eax,[.lzss_data] - pop edi esi edx ecx ebx - return -endp - - -;iglobal -; szOutFile db "out.dat", 0 -; szOutFile2 db "out2.dat", 0 -;endg -; - -;----------------------------------------------------------------------------------------------- - - - -; debug lines -;iglobal -; szDictionary db "ofs: %d, len: %d", 13, 10, 0 -; szDirect db "direct byte: %d ('%c')", 13, 10, 0 -; szEndMarker db "eof", 13, 10, 0 -;endg - - -; unpacks given LZSSData structure and returns pointer -; when you have finished with this data, you should -; free this memory using HeapFree() -proc lzssUnpackData, .lzss_data -.uncompressed dd ? -.size dd ? - begin - push ebx ecx edx esi edi - - ; fill the dictionary with zeroes - mov edi,lzss.dictionary - mov ecx,(LZSS_DICTIONARY_SIZE + LZSS_MAX_COUNT)/2 - xor eax,eax - .clear_dictionary: - mov [edi],ax - add edi,2 - dec ecx - jnz .clear_dictionary - - mov ebx,[.lzss_data] - invoke GetProcessHeap - invoke HeapAlloc, eax,HEAP_ZERO_MEMORY,[ebx+LZSSData.unpacked_size] - mov [.uncompressed],eax - mov edi,eax - stdcall BitsCreateFrom, [ebx+LZSSData.data] - mov esi,eax - mov eax,[ebx+LZSSData.unpacked_size] - mov [.size],eax - mov edx,LZSS_DICTIONARY_SIZE - LZSS_MAX_COUNT - - .unpack: - stdcall BitsGet,esi,1 - or eax,eax - jnz .from_dictionary - stdcall BitsGet,esi,8 - - ; debug lines -; pusha -; cinvoke printf, szDirect, eax,eax -; popa - mov [edi],al - inc edi - - mov [lzss.dictionary+edx],al - inc edx - mov eax,LZSS_DICTIONARY_SIZE - dec eax - and edx,eax - dec [.size] - jz .finish - jmp .unpack - - - .from_dictionary: - stdcall BitsGet, esi,LZSS_OFFSET_BITS ; load position -; push eax ; debug line - mov ebx,eax ; no, unpack portion - stdcall BitsGet, esi,LZSS_COUNT_BITS ; load counter - mov ecx,eax - add ecx,LZSS_THRESHOLD+1 - sub [.size],ecx - -; debug lines -; pop eax -; pusha -; cinvoke printf, szDictionary, eax,ecx -; popa - - .copy: - mov al,[lzss.dictionary+ebx] - mov [edi],al - mov [lzss.dictionary+edx],al - inc ebx - inc edi - inc edx - mov eax,LZSS_DICTIONARY_SIZE - dec eax - and edx,eax - and ebx,eax - - dec ecx - jnz .copy - cmp [.size],0 - - je .finish - jmp .unpack - .finish: - -; debug lines -; pusha -; cinvoke printf, szEndMarker -; popa - - stdcall BitsDestroy, esi - - -; invoke CreateFile, szOutFile2,GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0 -; mov ebx,eax -; invoke WriteFile,eax,lzss.dictionary,sizeof.dictionary,tmp,0 -; invoke CloseHandle,ebx -; - - mov eax,[.uncompressed] - - - pop edi esi edx ecx ebx - return -endp - - - -; file routines - -; compress data and store it in given file; returns 0 on fail -proc lzssSaveFile, .file_name,.buffer,.size -.hdr LZSSFileHeader -.tmp dd ? - begin - push ebx ecx edx esi - mov eax,[lzss.packer_func] - or eax,eax - jnz .packer_func_ok - mov [lzss.packer_func],lzssPackData - .packer_func_ok: - stdcall [lzss.packer_func], [.buffer],[.size] - mov esi,eax - mov [.hdr.id],"LZSS" - mov eax,[.size] - mov [.hdr.unpacked_size],eax - invoke CreateFile, [.file_name],GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0 - cmp eax,INVALID_HANDLE_VALUE - je .error - mov ebx,eax - lea eax,[.hdr] - lea edx,[.tmp] - invoke WriteFile,ebx,eax,sizeof.LZSSFileHeader,edx,0 - mov ecx,[esi+LZSSData.packed_size] - mov eax,[esi+LZSSData.data] - invoke WriteFile,ebx,eax,ecx,tmp,0 - invoke CloseHandle,ebx - stdcall lzssFreeData,esi - xor eax,eax - dec eax - .finish: - pop esi edx ecx ebx - return - .error: - xor eax,eax - jmp .finish -endp - - -; loads packed data from given file, unpacks it and returns pointer -; (0 on fail); ptr_size should be a pointer to dword variable -; that will contain unpacked data size -proc lzssLoadFile, .file_name, .ptr_size -.input_buf dd ? -.input_size dd ? - begin - push ebx ecx edx esi edi - invoke CreateFile, [.file_name],GENERIC_READ,0,0,OPEN_EXISTING,0,0 - cmp eax,INVALID_HANDLE_VALUE - je .error - mov ebx,eax - invoke SetFilePointer,ebx,0,0,FILE_END - mov [.input_size],eax - mov esi,eax - invoke GetProcessHeap - invoke HeapAlloc, eax,HEAP_ZERO_MEMORY,esi - or eax,eax - jz .finish - mov [.input_buf],eax - invoke SetFilePointer, ebx,0,0,FILE_BEGIN - invoke ReadFile, ebx,[.input_buf],esi,tmp,0 - invoke CloseHandle,ebx - stdcall lzssNewData - or eax,eax - jz .finish - mov esi,eax - mov eax,[.input_buf] - add eax,sizeof.LZSSFileHeader - mov [esi+LZSSData.data],eax - mov eax,[.input_buf] - mov eax,[eax+LZSSFileHeader.unpacked_size] - mov [esi+LZSSData.unpacked_size],eax - stdcall lzssUnpackData, esi - or eax,eax - jz .finish - mov ebx, eax - - mov eax,[.ptr_size] - or eax,eax - jz .no_size_ptr - mov edx,[esi+LZSSData.unpacked_size] - mov [eax],edx - .no_size_ptr: - stdcall lzssFreeData,esi - mov eax,ebx - .finish: - pop edi esi edx ecx ebx - return - .error: - xor eax,eax - jmp .finish -endp DELETED freshlib/_pending/lzss/source/lzss.inc Index: freshlib/_pending/lzss/source/lzss.inc ================================================================== --- freshlib/_pending/lzss/source/lzss.inc +++ /dev/null @@ -1,26 +0,0 @@ -; packed data structure -struct LZSSData - .packed_size dd ? - .unpacked_size dd ? - .data dd ? -ends - - -; packed file header -struct LZSSFileHeader - .id dd ? - .unpacked_size dd ? -ends - - -; lzss settings - -LZSS_THRESHOLD = 2 - -LZSS_COUNT_BITS = 4 -LZSS_OFFSET_BITS = 12 - -LZSS_DICTIONARY_SIZE = (2 shl (LZSS_OFFSET_BITS-1)) -LZSS_MAX_COUNT = (2 shl (LZSS_COUNT_BITS-1)) + LZSS_THRESHOLD - -LZSS_NO_TREE = LZSS_DICTIONARY_SIZE DELETED freshlib/_pending/lzss/source/lzsspack.asm Index: freshlib/_pending/lzss/source/lzsspack.asm ================================================================== --- freshlib/_pending/lzss/source/lzsspack.asm +++ /dev/null @@ -1,129 +0,0 @@ -format PE console -entry start -include "%finc%/win32/win32a.inc" -include "%finc%/libs/strlib.inc" -include "bits.inc" -include "lzss.inc" -include "lzssstat.inc" - -..ShowSkipped = 0 - -section '.code' code readable executable - -include "%finc%/libs/strlib.asm" -include "bits.asm" -include "cmdln.asm" -include "lzss.asm" -include "lzssstat.asm" - - - start: - invoke GetCommandLine - stdcall arrange_cmdline, eax,szDefExt - - mov ax,'-u' - call get_switch_w - or eax,eax - jz pack_file - - - unpack_file: - cmp [cmdln.input_fname],0 - je usage - stdcall replace_ext, [cmdln.output_fname],szDefOutExt - stdcall lzssLoadFile,[cmdln.input_fname],unp_size - push eax - invoke CreateFile, [cmdln.output_fname],GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0 - mov ebx,eax - pop eax - invoke WriteFile,ebx,eax,[unp_size],tmp,0 - invoke CloseHandle,ebx - stdcall lzssFreeData, esi - jmp finish - - pack_file: - cmp [cmdln.input_fname],0 - je usage - invoke CreateFile, [cmdln.input_fname],GENERIC_READ,0,0,OPEN_EXISTING,0,0 - cmp eax,INVALID_HANDLE_VALUE - je finish - mov ebx,eax - invoke SetFilePointer, ebx,0,0,FILE_END - mov [input_size],eax - mov esi,eax - invoke GetProcessHeap - invoke HeapAlloc, eax,HEAP_ZERO_MEMORY,esi - or eax,eax - jz finish - mov [input_buf],eax - invoke SetFilePointer, ebx,0,0,FILE_BEGIN - invoke ReadFile, ebx,[input_buf],esi,tmp,0 - invoke CloseHandle, ebx - mov [lzss.packer_func],lzssStatPack - mov ebx,[cmdln.argv] - stdcall lzssSaveFile, [cmdln.output_fname],[input_buf],[input_size] - cinvoke printf, szStatus, [lzss_stat.time],[lzss_stat.kbytes_per_sec],\ - [lzss_stat.size],[lzss_stat.packed_size],[lzss_stat.ratio],\ - [lzss_stat.total_items],[lzss_stat.direct_bytes],\ - [lzss_stat.dictionary_entries] - jmp finish - - usage: - cinvoke printf, szUsage - finish: - invoke ExitProcess, 0 - - - -iglobal - szDefExt db "lzss", 0 - szDefOutExt db "out", 0 - - szUsage db "usage:", 13, 10, " to compress: lzsspack input [output]", 13, 10 - db " to decompress: lzsspack -u input output", 13, 10, 0 - - szStatus db "status: ", 13, 10 - db " total compression time: %d seconds", 13, 10 - db " average speed: %d kbytes/sec", 13, 10 - db " unpacked file size: %d bytes", 13, 10 - db " packed data size: %d bytes", 13, 10 - db " compression ratio: %d percent", 13, 10 - db 13, 10 - db " total items: %d", 13, 10 - db " direct (unpacked) bytes: %d", 13, 10 - db " dictionary entries: %d", 13, 10, 0 - -endg - - -uglobal - input_buf dd ? - input_size dd ? - output_name dd ? - tmp dd ? - unp_size dd ? - argc dd ? - argv dd ? - env dd ? - hdr LZSSFileHeader - name_buf rb 0x100 -endg - -;data fixups -;end data - -section '.data' data readable writeable -IncludeAllGlobals - - -section '.idata' import data readable - -library kernel32,"KERNEL32.DLL",\ - crtdll,"CRTDLL.DLL" - -include "%finc%/win32/apia/kernel32.inc" - -import crtdll,\ - __getmainargs,"__GetMainArgs",\ - printf,"printf",\ - flushall,"_flushall" DELETED freshlib/_pending/lzss/source/lzsspack.fpr Index: freshlib/_pending/lzss/source/lzsspack.fpr ================================================================== --- freshlib/_pending/lzss/source/lzsspack.fpr +++ /dev/null cannot compute difference between binary files DELETED freshlib/_pending/lzss/source/lzssstat.asm Index: freshlib/_pending/lzss/source/lzssstat.asm ================================================================== --- freshlib/_pending/lzss/source/lzssstat.asm +++ /dev/null @@ -1,80 +0,0 @@ -proc lzssStatPack, .buffer, .buffer_size - begin - ; pack the data and count the time of the process - invoke GetTickCount - mov edi,eax - stdcall lzssPackData, [.buffer],[.buffer_size] - mov ebx,eax - invoke GetTickCount - sub eax,edi - xor edx,edx - - mov esi,1000 - div esi - mov [lzss_stat.time],eax - mov esi,eax - mov eax,[.buffer_size] - xor edx,edx - or esi,esi - jz @f - div esi - @@: - shr eax,10 ; divide eax by 1024 - mov [lzss_stat.kbytes_per_sec],eax - - xor eax,eax - mov [lzss_stat.total_items],eax - mov [lzss_stat.direct_bytes],eax - mov [lzss_stat.dictionary_entries],eax - - ; calculate ratio - mov edi,[.buffer_size] - mov [lzss_stat.size],edi - mov eax,[ebx+LZSSData.packed_size] - mov [lzss_stat.packed_size],eax - mov esi,100 - mul esi - div edi - mov [lzss_stat.ratio],eax - mov edi,[ebx+LZSSData.unpacked_size] - ; now scan compressed data - stdcall BitsCreateFrom, [ebx+LZSSData.data] - mov esi,eax - .unpack: - inc [lzss_stat.total_items] - stdcall BitsGet,esi,1 - or eax,eax - jnz .from_dictionary - inc [lzss_stat.direct_bytes] - stdcall BitsGet,esi,8 - dec edi - jz .finish - jmp .unpack - .from_dictionary: - stdcall BitsGet, esi,LZSS_OFFSET_BITS ; load position - inc [lzss_stat.dictionary_entries] - stdcall BitsGet, esi,LZSS_COUNT_BITS ; load counter - sub edi,eax - sub edi,LZSS_THRESHOLD+1 - jz .finish - js .finish - jmp .unpack - .finish: - stdcall BitsDestroy, esi - - mov eax,ebx - return -endp - -uglobal - lzss_stat: - .time dd ? - .kbytes_per_sec dd ? - .size dd ? - .packed_size dd ? - .ratio dd ? - - .total_items dd ? - .direct_bytes dd ? - .dictionary_entries dd ? -endg DELETED freshlib/_pending/lzss/source/lzssstat.inc Index: freshlib/_pending/lzss/source/lzssstat.inc ================================================================== --- freshlib/_pending/lzss/source/lzssstat.inc +++ /dev/null DELETED freshlib/_test_images/test.gif Index: freshlib/_test_images/test.gif ================================================================== --- freshlib/_test_images/test.gif +++ /dev/null cannot compute difference between binary files Index: freshlib/_trash/Common/header.inc ================================================================== --- freshlib/_trash/Common/header.inc +++ freshlib/_trash/Common/header.inc @@ -1,19 +1,13 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshLib::.. - portable, assembler library and GUI toolkit. | -;| __________________________________________________________________ | -;| | -;| This file | -;| ~~~~~~~~~ | -;| Author: | -;| | -;| Title: | -;| | -;| OS: | -;| | -;| Notes and changes: | -;| | -;| | -;|____________________________________________________________________| +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: +; +; Target OS: +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ ADDED freshlib/_trash/SurplusSources/ForthScript/ForthLib.asm Index: freshlib/_trash/SurplusSources/ForthScript/ForthLib.asm ================================================================== --- /dev/null +++ freshlib/_trash/SurplusSources/ForthScript/ForthLib.asm @@ -0,0 +1,390 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: ForthScript standard word library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +macro ForthBlock blockname { + forth@block equ blockname + forth@block@size equ blockname#.size + + label blockname byte + + macro forthword name \{ + \local nnnn + + macro endfw \\{ + \\local ..footer + endp + label ..footer byte + db name + db 16-($-..footer) dup 0 + dd nnnn - blockname + \\purge endfw + \\} + \proc nnnn + \} +} + +macro EndForthBlock { + forth@block@size = $ - forth@block + restore forth@block, forth@block@size + purge forthword +} + + + +ForthBlock ForthStandardLib + +; "->" word. +forthword '->' +begin + or [ebx+TForthContext.Status], forthAssignMode + clc + retn +endfw + + +forthword '+' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 2 + jb .error + + dec ecx + imul ecx, [eax+TArray.itemsize] + lea ecx, [eax+TArray.array+ecx] + + mov edx, [ecx+TFStackCell.value] + sub ecx, [eax+TArray.itemsize] + add [ecx+TFStackCell.value], edx + mov [ecx+TFStackCell.type], ftypeNumber + + mov ecx, [eax+TArray.count] + dec ecx + stdcall DeleteArrayItem, [ebx+TForthContext.pAStack], ecx + mov [ebx+TForthContext.pAStack], edx + clc + return + +.error: + stc + return +endfw + + +forthword '-' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 2 + jb .error + + dec ecx + imul ecx, [eax+TArray.itemsize] + lea ecx, [eax+TArray.array+ecx] + + mov edx, [ecx+TFStackCell.value] + sub ecx, [eax+TArray.itemsize] + sub [ecx+TFStackCell.value], edx + mov [ecx+TFStackCell.type], ftypeNumber + + mov ecx, [eax+TArray.count] + dec ecx + stdcall DeleteArrayItem, [ebx+TForthContext.pAStack], ecx + mov [ebx+TForthContext.pAStack], edx + clc + return + +.error: + stc + return +endfw + + + +forthword '*' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 2 + jb .error + + dec ecx + imul ecx, [eax+TArray.itemsize] + lea ecx, [eax+TArray.array+ecx] + + mov edx, [ecx+TFStackCell.value] + sub ecx, [eax+TArray.itemsize] + imul edx, [ecx+TFStackCell.value] + mov [ecx+TFStackCell.value], edx + mov [ecx+TFStackCell.type], ftypeNumber + + mov ecx, [eax+TArray.count] + dec ecx + stdcall DeleteArrayItem, [ebx+TForthContext.pAStack], ecx + mov [ebx+TForthContext.pAStack], edx + clc + return + +.error: + stc + return +endfw + + + +forthword '/' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 2 + jb .error + + dec ecx + imul ecx, [eax+TArray.itemsize] + lea ecx, [eax+TArray.array+ecx] + + mov edx, [ecx+TFStackCell.value] + sub ecx, [eax+TArray.itemsize] + + push eax + mov eax, edx + cdq + idiv [ecx+TFStackCell.value] + mov [ecx+TFStackCell.value], eax + mov [ecx+TFStackCell.type], ftypeNumber + pop eax + + mov ecx, [eax+TArray.count] + dec ecx + stdcall DeleteArrayItem, [ebx+TForthContext.pAStack], ecx + mov [ebx+TForthContext.pAStack], edx + clc + return + +.error: + stc + return +endfw + + +forthword '%' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 2 + jb .error + + dec ecx + shl ecx, 3 + lea ecx, [eax+TArray.array+ecx] + + mov edx, [ecx+TFStackCell.value] + sub ecx, [eax+TArray.itemsize] + + push eax + mov eax, edx + cdq + idiv [ecx+TFStackCell.value] + mov [ecx+TFStackCell.value], eax + mov [ecx+TFStackCell.type], ftypeNumber + pop eax + + mov ecx, [eax+TArray.count] + dec ecx + stdcall DeleteArrayItem, [ebx+TForthContext.pAStack], ecx + mov [ebx+TForthContext.pAStack], edx + clc + return + +.error: + stc + return +endfw + + + + +forthword 'swap' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 2 + jb .finish ; jb == jc + + shl ecx, 3 + add ecx, [ebx+TForthContext.pAStack] +; lea ecx, [ecx+TArray.array-2*sizeof.TFStackCell] TArray.array = 2*sizeof.TFStackCell + + mov eax, [ecx+TFStackCell.value] + mov edx, dword [ecx+TFStackCell.type] + xchg eax, [ecx+sizeof.TFStackCell+TFStackCell.value] + xchg edx, dword [ecx+sizeof.TFStackCell+TFStackCell.type] + mov [ecx+TFStackCell.value], ecx + mov dword [ecx+TFStackCell.type], edx + + clc +.finish: + return +endfw + + + +forthword 'dup' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + cmp ecx, 1 + jb .finish ; jb == jc + + shl ecx, 3 + add ecx, [ebx+TForthContext.pAStack] + lea ecx, [ecx+TArray.array-sizeof.TFStackCell] + + stdcall AddArrayItem, [ebx+TForthContext.pAStack] + mov [ebx+TForthContext.pAStack], edx + jc .finish + + pushd [ecx+TFStackCell.value] dword [ecx+TFStackCell.type] + popd dword [eax+TFStackCell.type] [eax+TFStackCell.value] + + clc +.finish: + return +endfw + + + +forthword 'label' +begin + + +endfw + + + + +forthword 'jump' +begin + + +endfw + + + + +forthword '?branch' +begin + + +endfw + + + +; : if +1 ?branch ; +forthword 'if' +begin + + +endfw + + + +; : else label not +1 ?branch ; +forthword 'else' +begin + + +endfw + + +; : then label ; +forthword 'then' +begin + + +endfw + + + + + +; : do label ; +forthword 'do' +begin + + +endfw + + +; : loop -1 ?branch ; +forthword 'loop' + + + + +forthword '.' +begin + mov eax, [ebx+TForthContext.pAStack] + mov ecx, [eax+TArray.count] + jecxz .exit + + dec ecx + mov edx, ecx + + imul ecx, [eax+TArray.itemsize] + lea ecx, [eax+TArray.array+ecx] + + cmp [ecx+TFStackCell.type], ftypeNumber + jne .printstring + + stdcall NumToStr, [ecx+TFStackCell.value], ntsSigned or ntsDec + mov [ecx+TFStackCell.value], eax + mov [ecx+TFStackCell.type], ftypeStringFree + +.printstring: + stdcall StrPtr, [ecx+TFStackCell.value] + stdcall Output, eax + + cmp [ecx+TFStackCell.type], ftypeStringFree + jne .popit + + stdcall StrDel, [ecx+TFStackCell.value] + +.popit: + stdcall DeleteArrayItem, [ebx+TForthContext.pAStack], edx + mov [ebx+TForthContext.pAStack], edx + +.exit: + clc + return + +endfw + + + +forthword 'crlf' +begin + stdcall Output, sCRLF + clc + return +endfw + + + +EndForthBlock + + + +sCRLF db 13, 10, 0, 0 + ADDED freshlib/_trash/SurplusSources/ForthScript/ForthScript.asm Index: freshlib/_trash/SurplusSources/ForthScript/ForthScript.asm ================================================================== --- /dev/null +++ freshlib/_trash/SurplusSources/ForthScript/ForthScript.asm @@ -0,0 +1,721 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: ForthScript engine. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ +module "Forth script compiler" + +include 'ForthLib.asm' + +; NOTE: E8 is the opcode for relative call +; B8 is the opcode for mov eax, dword const +; BA is the opcode for mov edx, dword const +; FF D0 is the opcode for call eax +; C3 is the opcode for retn +; e9 is the opcode for jmp long offset + + + +ftypeNumber = 0 +ftypeString = 1 +ftypeStringFree = 2 ; this string should be destroyed after use. + +struct TFStackCell + .value dd ? ; number or handle of the string. + .type db ? ; number/string + align 4 +ends + + +struct TFLoopStackCell +ends + + + +struct TFWordFooter + .name rb 16 ; max 12 bytes name paded with 0 + .entry dd ? ; offset to the code of the word [.entry]-4 points to the footer of the previous word. +ends + + +; values for the Status flags. + +forthCompileMode = 1 ; if set the script is compiled instead of interpreted +forthNextNewName = 2 ; if set the next extracted word should be interpreted as a new name. +forthAssignMode = 4 ; if set the next variable word must pop value from the stack, instead of push. + + + +struct TForthContext + .pAStack dd ? ; pointer to the aritmetic stack TArray. + .pLStack dd ? ; pointer to the loop stack TArray. + .pWords dd ? ; pointer to the words memory. + .iWords dd ? ; offset to the first free byte in the words memory. + .iLastWord dd ? ; offset to the end of the last word defined. + .sizeWords dd ? ; size of the words memory. + + .Status dd ? + + .pUserWords dd ? ; pointer to the user words memory. + .iUserWords dd ? ; offset of the end of the user word memory. + .pUser dd ? ; pointer to the user provided object for example TFreshEdit or other. +ends + + +ForthInitWordsMemory = 1024 + + +proc ForthCreateContext +begin + push edi + + stdcall GetMem, sizeof.TForthContext + mov edi, eax + + stdcall CreateArray, sizeof.TFStackCell + mov [edi+TForthContext.pAStack], eax + + stdcall CreateArray, sizeof.TFLoopStackCell + mov [edi+TForthContext.pLStack], eax + + mov [edi+TForthContext.sizeWords], ForthInitWordsMemory + stdcall GetMem, [edi+TForthContext.sizeWords] + mov [edi+TForthContext.pWords], eax + + mov eax, edi + pop edi + return +endp + + +proc ForthFreeContext, .forth_context +begin + + + return +endp + + + +ferrSyntaxError = 1 +ferrUnknownWord = 2 +ferrOutOfMemory = 3 +ferrInvalidNumber = 4 +ferrInvalidString = 5 +ferrMissingBracket = 6 + +ferrMaxError = 6 + +dmsgEndWithoutBegin db 'Syntax error', 0 +dmsgUnknownWord db 'Unknown word', 0 +dmsgOutOfMemory db 'Out of memory', 0 +dmsgInvalidNumber db 'Invalid number', 0 +dmsgInvalidString db 'Invalid string', 0 +dmsgMissingBracket db 'Missing ")"', 0 +dmsgUnknownError db 'Unknown error. Probably bug.', 0 + + + +ForthErrorMessages dd 0 + dd dmsgEndWithoutBegin + dd dmsgUnknownWord + dd dmsgOutOfMemory + dd dmsgInvalidNumber + dd dmsgInvalidString + dd dmsgMissingBracket +; this should be last. + dd dmsgUnknownError + + +proc GetForthErrorMsg, .errcode +begin + mov eax, [.errcode] + cmp eax, ferrMaxError + jbe @f + mov eax, ferrMaxError+1 +@@: + mov eax, [ForthErrorMessages+4*eax] + return +endp + + + +proc ForthExecScript, .pcontext, .psource +.word rb 16 +.newword rb 16 +.entry dd ? ; the entry point of the currently compiled word. +.ofs_error dd ? +.sign dd ? +begin + push ebx ecx esi edi + + mov ebx, [.pcontext] + mov esi, [.psource] + +.script_loop: + + xor eax, eax + mov dword [.word], eax + mov dword [.word+4], eax + mov dword [.word+8], eax + mov dword [.word+12], eax + xor ecx, ecx + + dec esi + +.start_scan: + + inc esi + mov al, [esi] + +; offset for the error message, if any + mov edx, esi + sub edx, [.psource] + mov [.ofs_error], edx + + test al, al + jz .end_of_script + + cmp al, '+' + je .maybe_number + cmp al, '-' + je .maybe_number + + cmp al, '0' + jb .nan + cmp al, '9' + jbe .extract_number + +.nan: + cmp al, '"' + je .extract_string + cmp al, "'" + je .extract_string + + cmp al, ' ' + jbe .start_scan + + cmp al, ':' + jne @f + + test [ebx+TForthContext.Status], forthCompileMode + jnz .syntax_error + + or [ebx+TForthContext.Status], forthCompileMode or forthNextNewName + mov eax, [ebx+TForthContext.iWords] + mov [.entry], eax + jmp .start_scan + +@@: + cmp al, ';' + jne @f + + test [ebx+TForthContext.Status], forthCompileMode + jz .syntax_error + +; finalize the compilation of a word. + + mov eax, sizeof.TFWordFooter+1 + call .allocate_bytes + jc .err_out_of_memory + + sub eax, sizeof.TFWordFooter + mov byte [eax+edx-1], $c3 ; retn + + pushd dword [.newword] dword [.newword+4] dword [.newword+8] dword [.newword+12] + popd [eax+edx+12] [eax+edx+8] [eax+edx+4] [eax+edx] + + push [.entry] + pop [eax+edx+TFWordFooter.entry] + + push [ebx+TForthContext.iWords] + pop [ebx+TForthContext.iLastWord] + + and [ebx+TForthContext.Status], not forthCompileMode + + jmp .start_scan + +@@: + cmp al, '(' + jne @f + +; comment () +.comment_loop: + inc esi + mov al, [esi] + test al, al + jz .err_missing_bracket + + cmp al, ')' + jne .comment_loop + inc esi + jmp .script_loop + +@@: + cmp al, '\' + jne .extract_word + +; one line comment +.comment_loop2: + inc esi + mov al, [esi] + cmp al, ' ' + jae .comment_loop2 + jmp .script_loop + +.extract_word: + mov [.word+ecx], al + inc ecx + and ecx, $0f + inc esi + mov al, [esi] + cmp al, ' ' + ja .extract_word + +;.word_ok: + test [ebx+TForthContext.Status], forthNextNewName + jz .process_word + +; copy the word as a new word name to be placed at the end of the word definition. + mov eax, dword [.word] + mov ecx, dword [.word+4] + mov dword [.newword], eax + mov dword [.newword+4], ecx + + mov eax, dword [.word+8] + mov ecx, dword [.word+12] + mov dword [.newword+8], eax + mov dword [.newword+12], ecx + + and [ebx+TForthContext.Status], not forthNextNewName + jmp .script_loop + + +.process_word: + call .search_word ; eax offset relative to [TForthContext.pWords] + jc .err_unknown_word + + test [ebx+TForthContext.Status], forthCompileMode + jnz .compile_the_word + + push esi + + mov esi, [ebx+TForthContext.pUser] + add eax, [ebx+TForthContext.pWords] + call eax + + pop esi + jmp .script_loop + +.compile_the_word: + mov ecx, eax ; offset of the word entry + + cmp eax, [ebx+TForthContext.iWords] + jb .internal_call + +;.external_call: + add ecx, [ebx+TForthContext.pWords] ; absolute address + + mov eax, 7 + call .allocate_bytes + jc .err_out_of_memory + + mov byte [edx+eax-7], $b8 ; mov eax, const + mov [edx+eax-6], ecx + mov word [edx+eax-2], $d0ff + + jmp .script_loop + + +.internal_call: + mov eax, 5 + call .allocate_bytes ; return new offset in eax and pointer to the memory block in edx + jc .err_out_of_memory + +; relative call to the word entry point. + sub ecx, eax + mov byte [edx+eax-5], $e8 ; call instruction opcode. + mov [edx+eax-4], ecx + + jmp .script_loop + + +.maybe_number: + cmp byte [esi+1], '0' + jb .extract_word + cmp byte [esi+1], '9' + ja .extract_word + +.extract_number: + xor edx, edx + movzx eax, al + + mov byte [.sign], al + cmp al, '-' + je .next + cmp al, '+' + je .next + +.num_loop: + cmp al, ' ' + jbe .number_ok + + cmp al, '0' + jb .err_invalid_number + cmp al, '9' + ja .err_invalid_number + + sub al, '0' + imul edx, 10 + add edx, eax + +.next: + inc esi + mov al, [esi] + jmp .num_loop + +.number_ok: + cmp byte [.sign], '-' + jne @f + neg edx +@@: + test [ebx+TForthContext.Status], forthCompileMode + jnz .compile_number + + call forth_push_number + jmp .script_loop + + +.compile_number: ; $b8 forth_push_number $ba number $ff $d0 + mov ecx, edx + + mov eax, 12 + call .allocate_bytes + jc .err_out_of_memory + + mov byte [edx+eax-12], $b8 ; mov eax, const + mov dword [edx+eax-11], forth_push_number + mov byte [edx+eax-7], $ba ; mov edx, const + mov dword [edx+eax-6], ecx + mov word [edx+eax-2], $d0ff + + jmp .script_loop + + +.extract_string: + mov ah, al ; end character. + xor ecx, ecx ; length of the string + lea edi, [esi+1] + +.str_loop: + inc esi + mov al, [esi] + test al, al + jz .err_invalid_string + + cmp al, ah + je .string_ok + + inc ecx + jmp .str_loop + +.string_ok: + mov ecx, esi + sub ecx, edi + + inc esi + + test [ebx+TForthContext.Status], forthCompileMode + jnz .compile_string + + stdcall StrNew + mov edx, eax + + stdcall StrCopyPart, edx, edi, 0, ecx + + push edx + stdcall AddArrayItem, [ebx+TForthContext.pAStack] + mov [ebx+TForthContext.pAStack], edx + mov [eax+TFStackCell.type], ftypeStringFree + pop [eax+TFStackCell.value] + + jmp .script_loop + +.compile_string: + push esi + mov esi, edi + mov edi, [ebx+TForthContext.iWords] + + lea eax, [ecx+1+17] + stdcall .allocate_bytes + jc .err_out_of_memory + + lea eax, [edi+17] + add edi, [ebx+TForthContext.pWords] + + mov byte [edi], $ba ; mov edx, offset of string + mov dword [edi+1], eax ; offset of string + mov byte [edi+5], $b8 ; mov eax, forth_push_string + mov dword [edi+6], forth_push_string + mov word [edi+10], $d0ff ; call eax + lea eax, [ecx+1] + mov byte [edi+12], $e9 ; jmp end + mov dword [edi+13], eax ; + + add edi, 17 + + rep movsb + mov al, 0 + stosb + + pop esi + jmp .script_loop + + +.end_of_script: + mov ecx, [ebx+TForthContext.pAStack] + mov eax, [ecx+TArray.count] + test eax, eax + jz @f + + lea eax, [ecx+TArray.array+8*eax-8] + mov eax, [eax+TFStackCell.value] + dec [ecx+TArray.count] + +@@: + clc + jmp .finish + +; error handlers +.err_missing_bracket: + mov eax, ferrMissingBracket + jmp .error + +.err_invalid_string: + mov eax, ferrInvalidString + jmp .error + +.err_invalid_number: + mov eax, ferrInvalidNumber + jmp .error + +.err_out_of_memory: + mov eax, ferrOutOfMemory + jmp .error + +.err_unknown_word: + mov eax, ferrUnknownWord + jmp .error + +.syntax_error: + mov eax, ferrSyntaxError + +.error: + mov edx, [.ofs_error] + stc + +.finish: + pop edi esi ecx ebx + return + + +; internal subroutines + + +; returns: +; CF=0 - word found. +; eax - offset of word entry point in pWords memory. +; +; CF=1 - word not found. +.search_word: + push edx esi + +; search in the compiled words + mov edx, [ebx+TForthContext.pWords] + mov esi, [ebx+TForthContext.iLastWord] + call .search_list + jnc .word_found + +; if not found, search in the user provided words, if any. + mov edx, [ebx+TForthContext.pUserWords] + test edx, edx + jz .check_std + + mov esi, [ebx+TForthContext.iUserWords] + call .search_list + jnc .word_found + +.check_std: + mov edx, ForthStandardLib + mov esi, ForthStandardLib.size + call .search_list + jnc .word_found + + stc + pop esi edx + retn + +.word_found: + clc + pop esi edx + retn + + + +; arguments: +; esi - offset of the end of the word area. +; edx - pointer to the begin of the word area. +; returns: +; CF=0; eax=offset of the word entry in the word area. +; CF=1 - not found +.search_list: + add esi, edx + +.search_loop: + sub esi, sizeof.TFWordFooter + cmp esi, edx + jb .notfound + + mov eax, dword [esi+TFWordFooter.name] + cmp eax, dword [.word] + jne .prev_word + + mov eax, dword [esi+TFWordFooter.name+4] + cmp eax, dword [.word+4] + jne .prev_word + + mov eax, dword [esi+TFWordFooter.name+8] + cmp eax, dword [.word+8] + jne .prev_word + + mov eax, dword [esi+TFWordFooter.name+12] + cmp eax, dword [.word+12] + je .found + +.prev_word: + mov esi, [esi+TFWordFooter.entry] + add esi, edx + jmp .search_loop + +.found: + mov eax, [esi+TFWordFooter.entry] + add eax, edx + sub eax, [ebx+TForthContext.pWords] ; relatively to TForthContext.pWords + clc + retn + +.notfound: + stc + retn + + +; argument: eax - count of bytes to allocate. +; returns: +; eax - offset in pWords of the new end ( iWords ) +; edx - pointer of pWords memory. + +.allocate_bytes: + push ecx + + mov edx, [ebx+TForthContext.iWords] + add edx, eax + cmp edx, [ebx+TForthContext.sizeWords] + jb .sizeok + + mov ecx, [ebx+TForthContext.sizeWords] + call [ResizeIt] + mov [ebx+TForthContext.sizeWords], ecx + + stdcall ResizeMem, [ebx+TForthContext.pWords], ecx + jc .end_alloc + mov [ebx+TForthContext.pWords], eax + +.sizeok: + mov [ebx+TForthContext.iWords], edx + mov eax, edx + mov edx, [ebx+TForthContext.pWords] + clc + +.end_alloc: + pop ecx + retn + +endp + +; arguments: +; ebx - TForthContext +; edx - number to be pushed +; returns +; +forth_push_number: + push edx + stdcall AddArrayItem, [ebx+TForthContext.pAStack] + mov [ebx+TForthContext.pAStack], edx + mov [eax+TFStackCell.type], ftypeNumber + pop [eax+TFStackCell.value] + retn + + +; arguments: +; ebx - TForthContext +; returns +; eax - value from the top of the stack +proc forth_pop_number +begin + mov edx, [ebx+TForthContext.pAStack] + mov eax, [edx+TArray.count] + dec eax + js .empty_stack + + push eax + + imul eax, [edx+TArray.itemsize] + mov eax, [edx+TArray.array+edx+TFStackCell.value] + + stdcall DeleteArrayItem, edx ; from the stack + clc + return + +.empty_stack: + xor eax, eax + stc + return +endp + + + +; arguments: +; ebx - TForthContext +; edx - offset to the string related to pWords memory. +; returns +; +proc forth_push_string +begin + add edx, [ebx+TForthContext.pWords] + push edx + stdcall AddArrayItem, [ebx+TForthContext.pAStack] + mov [ebx+TForthContext.pAStack], edx + mov [eax+TFStackCell.type], ftypeString + pop [eax+TFStackCell.value] + return +endp + + + + + + +endmodule + + + + + ADDED freshlib/_trash/SurplusSources/FreshEdit/forth_link.asm Index: freshlib/_trash/SurplusSources/FreshEdit/forth_link.asm ================================================================== --- /dev/null +++ freshlib/_trash/SurplusSources/FreshEdit/forth_link.asm @@ -0,0 +1,525 @@ +iglobal +FreshEditKeyScript file 'keyboard.forth' + dd 0 +endg + + + +ForthBlock __FreshEditForthWords + + +forthword 'Left' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ecx + + mov ecx, [esi+TFreshEdit._xCaret] + jecxz .exit + + dec ecx + mov [esi+TFreshEdit._xCaret], ecx + + mov ecx, [esi+TFreshEdit._LeftColumn] + cmp [esi+TFreshEdit._xCaret], ecx + ja .exit + + mov ecx, [esi+TFreshEdit._cols] + shr ecx, 2 + test ecx, ecx + jnz @f + inc ecx +@@: + sub [esi+TFreshEdit._LeftColumn], ecx + jns @f + + mov [esi+TFreshEdit._LeftColumn], 0 +@@: + +.exit: + clc + pop ecx + return +endfw + + + +forthword 'Right' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ecx edx + + mov ecx, [esi+TFreshEdit._xCaret] + inc ecx + mov [esi+TFreshEdit._xCaret], ecx + + mov edx, [esi+TFreshEdit._cols] + add edx, [esi+TFreshEdit._LeftColumn] + cmp ecx, edx + jae .scroll_left + +.finish: + clc + pop edx ecx + return + +.scroll_left: + mov ecx, [esi+TFreshEdit._cols] + shr ecx, 2 + test ecx, ecx + jnz @f + inc ecx +@@: + add [esi+TFreshEdit._LeftColumn], ecx + jmp .finish +endfw + + + +forthword 'Up' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ecx + + cmp [esi+TFreshEdit._yCaret], 0 + je .exit + + dec [esi+TFreshEdit._yCaret] + + mov ecx, [esi+TFreshEdit._TopLine] + cmp [esi+TFreshEdit._yCaret], ecx + jl .scrollup + +.exit: + clc + pop ecx + return + +.scrollup: + mov ecx, [esi+TFreshEdit._TopLine] + jecxz .exit + dec [esi+TFreshEdit._TopLine] + jmp .exit +endfw + + + +TFreshEdit.__CommandScrollLockUp: +forthword 'ScrLockUp' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ecx + + cmp [esi+TFreshEdit._yCaret], 0 + je .exit + + dec [esi+TFreshEdit._yCaret] + + mov ecx, [esi+TFreshEdit._TopLine] + jecxz .exit + + dec [esi+TFreshEdit._TopLine] + +.exit: + clc + pop ecx + return +endfw + + + +forthword 'ScrollUp' +begin + push ecx + cmp [esi+TFreshEdit._TopLine], 0 + je .finish + dec [esi+TFreshEdit._TopLine] +.finish: + clc + pop ecx + return +endfw + + + + +TFreshEdit.__CommandDown: +forthword 'Down' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ecx edx + + mov edx, [esi+TFreshEdit._pIndex] + + mov ecx, [esi+TFreshEdit._yCaret] + inc ecx + cmp ecx, [edx+TArray.count] + jae .exit + + mov [esi+TFreshEdit._yCaret], ecx + + mov ecx, [esi+TFreshEdit._TopLine] + add ecx, [esi+TFreshEdit._rows] + cmp [esi+TFreshEdit._yCaret], ecx + jae .scrolldn + +.exit: + clc + pop edx ecx + return + +.scrolldn: + mov ecx, [esi+TFreshEdit._TopLine] + inc ecx + cmp ecx, [edx+TArray.count] + jae .exit + + mov [esi+TFreshEdit._TopLine], ecx + jmp .exit +endfw + + + + +TFreshEdit.__CommandScrollLockDown: +forthword 'ScrLockDown' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ecx edx + + mov edx, [esi+TFreshEdit._pIndex] + + mov ecx, [esi+TFreshEdit._yCaret] + inc ecx + cmp ecx, [edx+TArray.count] + jae .exit + + mov [esi+TFreshEdit._yCaret], ecx + + mov ecx, [esi+TFreshEdit._TopLine] + inc ecx + add ecx, [esi+TFreshEdit._rows] + cmp ecx, [edx+TArray.count] + ja .exit + + inc [esi+TFreshEdit._TopLine] + +.exit: + clc + pop edx ecx + return + +endfw + + + +forthword 'ScrollDown' +begin + push ecx edx + mov edx, [esi+TFreshEdit._pIndex] + + mov ecx, [esi+TFreshEdit._TopLine] + inc ecx + add ecx, [esi+TFreshEdit._rows] + cmp ecx, [edx+TArray.count] + ja .finish + + inc [esi+TFreshEdit._TopLine] + +.finish: + clc + pop edx ecx + return + +endfw + + + + + +forthword 'PgDown' +begin + push ecx + mov ecx, [esi+TFreshEdit._rows] + +@@: + call TFreshEdit.__CommandScrollLockDown + jc .finish + loop @b + +.finish: + pop ecx + return +endfw + + + +forthword 'PgUp' +begin + push ecx + mov ecx, [esi+TFreshEdit._rows] +@@: + call TFreshEdit.__CommandScrollLockUp + jc .finish + loop @b + +.finish: + pop ecx + return +endfw + + + + +forthword 'LineBegin' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + cmp [esi+TFreshEdit._xCaret], 0 + je .end + + mov [esi+TFreshEdit._xCaret], 0 + + cmp [esi+TFreshEdit._LeftColumn], 0 + je .end + + mov [esi+TFreshEdit._LeftColumn], 0 + +.end: + clc + return +endfw + + + + + +forthword 'LineEnd' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + push ebx ecx + + mov ecx, [esi+TFreshEdit._yCaret] + mov ebx, [esi+TFreshEdit._pIndex] + + cmp ecx, [ebx+TArray.count] + jae .end + + mov ecx, [ebx+TArray.array+4*ecx] + + shl ecx, TEditorLine.shift + add ecx, [esi+TFreshEdit._pLines] + add ecx, TArray.array + + stdcall StrLenUtf8, [ecx+TEditorLine.Data], -1 + + cmp [esi+TFreshEdit._xCaret], eax + je .end + + mov [esi+TFreshEdit._xCaret], eax + + mov ecx, [esi+TFreshEdit._cols] + lea ecx, [ecx*3] + shr ecx, 2 + + cmp eax, [esi+TFreshEdit._LeftColumn] + jg .leftok + + sub eax, ecx + jns @f + xor eax, eax +@@: + mov [esi+TFreshEdit._LeftColumn], eax + jmp .end + +.leftok: + add ecx, [esi+TFreshEdit._LeftColumn] + sub ecx, [esi+TFreshEdit._xCaret] + jge .end + + sub [esi+TFreshEdit._LeftColumn], ecx + +.end: + clc + pop ecx ebx + return +endfw + + + +TFreshEdit.__CommandBeginOfScreen: +forthword 'ScreenBegin' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + mov eax, [esi+TFreshEdit._TopLine] + cmp eax, [esi+TFreshEdit._yCaret] + je .end + + mov [esi+TFreshEdit._yCaret], eax +.end: + return +endfw + + +forthword 'ScreenEnd' +begin + call TFreshEdit.__FitCaretInWindow + jz @f + + stc + return + +@@: + call TFreshEdit.__CommandBeginOfScreen + + mov ecx, [esi+TFreshEdit._rows] + jecxz .end + dec ecx + jecxz .end + +@@: + call TFreshEdit.__CommandDown + jc .end + loop @b + +.end: + return +endfw + + +forthword 'FileBegin' +begin + + return +endfw + + +forthword 'FileEnd' +begin + + return +endfw + + +forthword 'WordPrev' +begin + + return +endfw + + +forthword 'WordNext' +begin + + return +endfw + + + +forthword 'GetSelMode' +begin + + return +endfw + + + +forthword 'SetSelMode' +begin + + return +endfw + + + +forthword 'GetInsMode' +begin + + return +endfw + + +forthword 'SetInsMode' +begin + + return +endfw + + +forthword 'GetRowCount' +begin + + return +endfw + + + +forthword 'ToggleSelMode' +begin + mov eax, [esi+TFreshEdit._SelMode] + inc eax + cmp eax, 2 + jbe @f + xor eax, eax +@@: + mov [esi+TFreshEdit._SelMode], eax + return +endfw + + + +EndForthBlock + +;_________________________________________________________________________________________ ADDED freshlib/_trash/SurplusSources/FreshEdit/keyboard.forth Index: freshlib/_trash/SurplusSources/FreshEdit/keyboard.forth ================================================================== --- /dev/null +++ freshlib/_trash/SurplusSources/FreshEdit/keyboard.forth @@ -0,0 +1,32 @@ +( This file contains ForthScript definitions for navigation and control keys in FreshEdit. + The name of the words is actually the name of the pressed key, as returned by CreateKeyName procedure + defined in the library SysEvents.asm + The words can return a value through the stack top value. It is + 1 - means the +) + +: keyUp Up 0 ; +: keyShift+Up Up 1 ; + +: keyDown Down 0 ; +: keyShift+Down Down 1 ; + +: keyLeft Left 0 ; +: keyShift+Left Left 1 ; + +: keyRight Right 0 ; +: keyShift+Right Right 1 ; + +: keyPgUp PgUp 0 ; +: keyShift+PgUp PgUp 1 ; + +: keyPgDn PgDown 0 ; +: keyShift+PgDn PgDown 1 ; + +: keyHome LineBegin 0 ; +: keyShift+Home LineBegin 1 ; + +: keyEnd LineEnd 0 ; +: keyShift+End LineEnd 1 ; + +: keyCtrl+Alt+Ins ToggleSelMode 1 ; ADDED freshlib/_trash/SurplusSources/command_tables.asm Index: freshlib/_trash/SurplusSources/command_tables.asm ================================================================== --- /dev/null +++ freshlib/_trash/SurplusSources/command_tables.asm @@ -0,0 +1,824 @@ +; This file is not needed anymore, but it contains very tiny implementation of Forth-like script engine. +; maybe it worths to keep it some time...... + +__ScriptEngine: + +struct TCommandItem + .name dd ? + .proc dd ? +ends + +macro CommandList lbl, [name, proc] { +common + label lbl dword +forward + local len + dd name, proc +common + dd 0 +} + + +CommandList ScriptCommands, \ + 'l' , TFreshEdit.__CommandLeft, \ ; left + 'r' , TFreshEdit.__CommandRight, \ ; right + 'u' , TFreshEdit.__CommandUp, \ ; up + 'd' , TFreshEdit.__CommandDown, \ ; down + 'ul', TFreshEdit.__CommandScrollLockUp, \ ; up scroll lock + 'dl', TFreshEdit.__CommandScrollLockDown, \ ; down scroll lock + 'su', TFreshEdit.__CommandScrollUp, \ ; scroll up + 'sd', TFreshEdit.__CommandScrollDown, \ ; scroll down + 'pu', TFreshEdit.__CommandPgUp, \ ; page up + 'pd', TFreshEdit.__CommandPgDown, \ ; page down + 'lb', TFreshEdit.__CommandHome, \ ; line begin + 'le', TFreshEdit.__CommandEnd, \ ; line end + 'sb', TFreshEdit.__CommandBeginOfScreen, \ ; begin of screen + 'se', TFreshEdit.__CommandEndOfScreen, \ ; + 'fb', TFreshEdit.__CommandFileBegin, \ ; file begin + 'fe', TFreshEdit.__CommandFileEnd, \ ; file end + 'wp', TFreshEdit.__CommandWordPrev, \ ; word previous + 'wn', TFreshEdit.__CommandWordNext, \ ; word next + 'gsm', TFreshEdit.__CommandGetSelectionMode, \ ; get selection mode (0..2) + 'ssm', TFreshEdit.__CommandSetSelectionMode, \ ; set selection mode (0..2) + 'gim', TFreshEdit.__CommandGetInsertMode, \ ; get insert mode. + 'sim', TFreshEdit.__CommandSetInsertMode, \ ; set insert mode. + 'grc', TFreshEdit.__CommandGetRowCount, \ ; get row count. +\ +\ ; Aritmerics +\ + '+', __ScriptPlus, \ + '-', __ScriptMinus, \ + '*', __ScriptMul, \ + '/', __ScriptDiv, \ + '%', __ScriptMod, \ + 'neg', __ScriptNeg, \ +\ +\ ; Output +\ + '.', __ScriptOutNumber, \ + '?', __ScriptOutString, \ +\ +\ ; Stack operations and variables +\ + 'swap', __ScriptSwap, \ + 'pop', __ScriptPop, \ + '->', ExecScript.__assign, \ +\ +\ ; word logic +\ + 'and', __ScriptAnd, \ + 'or', __ScriptOr, \ + 'xor', __ScriptXor, \ + 'not', __ScriptNot, \ +\ +\ ; Loop +\ + 'rep', __ScriptRepeat, \ + 'loop', __ScriptLoop, \ +\ +\ ; conditional +\ + 'if', ExecScript.__if, \ + 'else', ExecScript.__else, \ + 'then', ExecScript.__then + + + + +macro KeyScripts [scancode, modkeys, script] { +forward +local ptrscr + dd scancode, modkeys + if script eqtype 'A' + dd ptrscr + else + dd script + end if +common + dd 0 +forward + if script eqtype 'A' + ptrscr db script, 0 + align 4 + end if +} + +struc script text { + db text, 0 + align 4 +} + + +KeyScripts \ + keyUp, 0, scrUp, \ + keyUpNumpad, 0, scrUp, \ + keyDown, 0, scrDown, \ + keyDownNumpad, 0, scrDown, \ + keyLeft, 0, scrLeft, \ + keyLeftNumpad, 0, scrLeft, \ + keyRight, 0, scrRight, \ + keyRightNumpad,0, scrRight, \ + keyPgUp, 0, scrPgUp, \ + keyPgUpNumpad, 0, scrPgUp, \ + keyPgDown, 0, scrPgDn, \ + keyPgDnNumpad, 0, scrPgDn, \ + keyHome, 0, scrHome, \ + keyHomeNumpad, 0, scrHome, \ + keyEnd, 0, scrEnd, \ + keyEndNumpad, 0, scrEnd, \ + keyPgDown, maskCtrl, scrEndOfFile, \ + keyPgDnNumpad, maskCtrl, scrEndOfFile, \ + keyPgUp, maskCtrl, scrBegOfFile, \ + keyPgUpNumpad, maskCtrl, scrBegOfFile, \ + keyHome, maskCtrl, scrBegOfScreen, \ + keyHomeNumpad, maskCtrl, scrBegOfScreen, \ + keyEnd, maskCtrl, scrEndOfScreen, \ + keyEndNumpad, maskCtrl, scrEndOfScreen, \ + keyInsert, 0, scrToggleInsMode, \ + keyInsNumpad, 0, scrToggleInsMode, \ + keyInsert, maskAlt, scrToggleSelectionMode + + +scrUp script 'u' +scrDown script 'd' +scrLeft script 'l' +scrRight script 'r' +scrPgUp script 'pu' +scrPgDn script 'pd' +scrHome script 'lb' +scrEnd script 'le' +scrEndOfFile script 'fe' +scrBegOfFile script 'fb' +scrBegOfScreen script 'sb' +scrEndOfScreen script 'se' +scrToggleInsMode script 'gim 1 xor sim' +scrToggleSelectionMode script 'gsm 1 + 3 % ssm' + + + + +proc ExecScript, .editor, .pScript + +.stack rd 16 + +.pvar dd ? +.fassign dd ? + +.changes dd ? + +.errInvalidCommand = -1 +.errInvalidNumber = -2 +.errStackOverflow = -3 +.errMissingQuote = -4 +.errInvalidVar = -5 +.errIfThenElse = -6 + + +begin + push ebx ecx edx esi edi + + stdcall GetMem, 65536 + mov [.pvar], eax + + mov ecx, 16 + lea edi, [.stack] + xor eax, eax + rep stosd + + mov [.changes], eax + mov [.fassign], eax + mov edi, 15 ; intex to the stack bottom + mov esi, [.pScript] + +.scriptloop: + xor ebx, ebx + xor ecx, ecx + xor eax, eax + +.wordloop: + movzx eax, byte [esi] + + cmp al, ' ' + jbe .endofword + + cmp al, '@' + je .variable + + cmp al, "'" + je .string + + cmp al, '"' + je .string + + cmp al, '0' + jb .word + cmp al, '9' + jbe .digit + +.word: + inc esi + shl eax, cl + or ebx, eax ; command + add cl, 8 + cmp cl, 32 + jbe .wordloop + jmp .invalid_command + + +.variable: + test ecx, ecx + jnz .invalid_command + + mov eax, $811C9DC5 ; 2166136261 ; FNV offset basis + +.hashloop: + inc esi + + movzx edx, byte [esi] + + cmp edx, ' ' + jbe .endofvar + + xor eax, edx + imul eax, $01000193 ; 16777619 ; FNV prime + jmp .hashloop + +.endofvar: + mov ebx, eax + and eax, $ffff + shr ebx, 16 + xor ebx, eax + and ebx, $fffc + add ebx, [.pvar] + + cmp [.fassign], 0 + je .pushvar +; pop var + mov [.fassign], 0 + cmp edi, 15 + jae .stack_overflow + + inc edi + mov eax, [.stack+4*edi] + mov [ebx], eax + jmp .nextchar + +.pushvar: + test edi, edi + js .stack_overflow + + mov eax, [ebx] + mov [.stack+4*edi], eax + dec edi + jmp .nextchar + +.string: + test ecx, ecx + jnz .invalid_command + + inc esi + mov ebx, esi + + xor ecx, ecx + +.lenloop: + cmp byte [esi], 0 + je .missing_quote + + cmp byte [esi], al + je .endofstring + + inc esi + inc ecx + jmp .lenloop + +.endofstring: + test edi, edi + js .stack_overflow + + stdcall StrNew + mov [.stack+4*edi], eax + stdcall StrCopyPart, eax, ebx, 0, ecx + stdcall StrPtr, eax + + dec edi + inc esi + jmp .scriptloop + +.digit: + test ecx, ecx + jnz .invalid_command + +.numberloop: + mov al, [esi] + cmp al, ' ' + jbe .endofnumber + inc esi + + cmp al, '0' + jb .invalid_number + cmp al, '9' + ja .invalid_number + + and eax, $0f + imul ebx, 10 + add ebx, eax + jmp .numberloop + +.endofnumber: + test edi, edi + js .stack_overflow + + mov [.stack+4*edi], ebx + dec edi + + test eax, eax + jz .endofscript + + inc esi + jmp .scriptloop + + +.endofword: + jecxz .nextchar + mov eax, ScriptCommands - sizeof.TCommandItem + +.search_command: + add eax, sizeof.TCommandItem + + cmp dword [eax], 0 + je .invalid_command + + cmp [eax], ebx + jne .search_command + +;.found: + push esi + lea ebx, [.stack] + mov esi, [.editor] + call [eax+TCommandItem.proc] + pop esi + + jc .stack_overflow + or [.changes], eax + + cmp edi, 15 + ja .stack_overflow + +.nextchar: + inc esi + cmp byte [esi-1], 0 + jne .scriptloop + +.endofscript: + clc + mov eax, [.changes] + +.finish: + stdcall FreeMem, [.pvar] + pop edi esi edx ecx ebx + return + +; Context dependent control commands + +; "->" (assign) command +.__assign: + mov [.fassign], 1 + xor eax, eax + clc + retn + +.__if: + cmp edi, 15 + jae .ifok + + inc edi + cmp [.stack+4*edi], 0 + jne .ifok + +; search for else of then + mov eax, [esp+4] ; stored pointer to the script text + xor ecx, ecx + +.ifloop: + inc eax + mov edx, [eax] + cmp edx, 'else' + je .else + cmp edx, 'then' + je .then + test edx, $ff000000 + jz .iferror + + and edx, $ffff + cmp edx, 'if' + jne .ifloop + + inc ecx + jmp .ifloop + +.else: + jecxz .elsehere + dec ecx + jmp .ifloop + +.elsehere: + add eax, 4 + cmp byte [eax], ' ' + ja .iferror + + mov [esp+4], eax + jmp .ifok + +.then: + jecxz .thenhere + dec ecx + jmp .ifloop + +.thenhere: + add eax, 4 + cmp byte [eax], ' ' + ja .iferror + mov [esp+4], eax + +.ifok: + xor eax, eax + clc + retn + +.iferror: + stc + mov eax, .errIfThenElse + retn + + +.__else: +; search for "then" + mov eax, [esp+4] ; stored pointer to the script text + xor ecx, ecx + +.elseloop: + inc eax + mov edx, [eax] + cmp edx, 'else' + je .else2 + cmp edx, 'then' + je .then2 + test edx, $ff000000 + jz .iferror + + and edx, $ffff + cmp edx, 'if' + jne .elseloop + + inc ecx + jmp .elseloop + +.else2: + jecxz .iferror + dec ecx + jmp .elseloop + +.then2: + jecxz .thenhere2 + dec ecx + jmp .elseloop + +.thenhere2: + add eax, 4 + cmp byte [eax], ' ' + ja .iferror + mov [esp+4], eax + jmp .ifok + +.__then: + xor eax, eax + clc + retn + + +; errors + +.invalid_command: + stc + mov eax, .errInvalidCommand + jmp .finish + +.invalid_number: + stc + mov eax, .errInvalidNumber + jmp .finish + +.stack_overflow: + stc + mov eax, .errStackOverflow + jmp .finish + +.missing_quote: + stc + mov eax, .errMissingQuote + jmp .finish + +endp + + +call ExecScript + + + +proc __ScriptPlus +begin + cmp edi, 14 + jae .end + + mov eax, [ebx+4*edi+4] + inc edi + add [ebx+4*edi+4], eax + +.end: + xor eax, eax + return +endp + + + +proc __ScriptMinus +begin + cmp edi, 14 + jae .end + + mov eax, [ebx+4*edi+4] + inc edi + sub [ebx+4*edi+4], eax + +.end: + xor eax, eax + clc + return +endp + + + +proc __ScriptMul +begin + cmp edi, 14 + jae .end + + mov eax, [ebx+4*edi+4] + inc edi + imul eax, [ebx+4*edi+4] + mov [ebx+4*edi+4], eax +.end: + xor eax, eax + clc + return +endp + + + +proc __ScriptDiv +begin + cmp edi, 14 + jae .end + + cmp dword [ebx+4*edi+4], 0 + je .err + + inc edi + mov eax, [ebx+4*edi+4] + cdq + div dword [ebx+4*edi] + mov [ebx+4*edi+4], eax + +.end: + xor eax, eax + clc + return + +.err: + stc + return +endp + + + + +proc __ScriptMod +begin + cmp edi, 14 + jae .end + + cmp dword [ebx+4*edi+4], 0 + je .err + + inc edi + mov eax, [ebx+4*edi+4] + cdq + div dword [ebx+4*edi] + mov [ebx+4*edi+4], edx + +.end: + xor eax, eax + clc + return + +.err: + stc + return +endp + + + +proc __ScriptOutNumber +begin + cmp edi, 15 + jae .end + + inc edi + mov eax, [ebx+4*edi] + + stdcall NumToStr, eax, ntsSigned or ntsDec + push eax + + stdcall StrPtr, eax + stdcall Output, eax + stdcall StrDel ; from the stack. + +.end: + xor eax, eax + clc + return +endp + + +proc __ScriptOutString +begin + cmp edi, 15 + jae .end + + inc edi + cmp dword [ebx+4*edi], 0 + je .crlf + + stdcall StrPtr, [ebx+4*edi] + stdcall Output, eax + stdcall StrDel, [ebx+4*edi] + +.end: + xor eax, eax + clc + return + +.crlf: + stdcall Output, .scrlf + jmp .end + +.scrlf db 13, 10, 0 + +endp + + + +proc __ScriptSwap +begin + cmp edi, 14 + jae .end + + pushd [ebx+4*edi+4] + pushd [ebx+4*edi+8] + popd [ebx+4*edi+4] + popd [ebx+4*edi+8] + +.end: + xor eax, eax + clc + return +endp + + +proc __ScriptPop +begin + cmp edi, 15 + jae .end + + inc edi +.end: + xor eax, eax + clc + return +endp + + + +proc __ScriptAnd +begin + cmp edi, 14 + jae .end + + mov eax, [ebx+4*edi+4] + inc edi + and [ebx+4*edi+4], eax + +.end: + xor eax, eax + clc + return +endp + + +proc __ScriptOr +begin + cmp edi, 14 + jae .end + + mov eax, [ebx+4*edi+4] + inc edi + or [ebx+4*edi+4], eax + +.end: + xor eax, eax + clc + return +endp + + +proc __ScriptXor +begin + cmp edi, 14 + jae .end + + mov eax, [ebx+4*edi+4] + inc edi + xor [ebx+4*edi+4], eax + +.end: + xor eax, eax + clc + return +endp + + + + +proc __ScriptNot +begin + cmp edi, 15 + jae .end + + not dword [ebx+4*edi+4] + +.end: + xor eax, eax + clc + return +endp + + + +proc __ScriptNeg +begin + cmp edi, 15 + jae .end + + neg dword [ebx+4*edi+4] + +.end: + xor eax, eax + clc + return +endp + + + +proc __ScriptRepeat +begin + cmp edi, 14 + jae .end + + +.end: + xor eax, eax + clc + return +endp + + +proc __ScriptLoop +begin + cmp edi, 14 + jae .end + +.end: + xor eax, eax + clc + return +endp + + + + + + + +DispSize 'Script engine', $ - __ScriptEngine + DELETED freshlib/compiler/Linux/executable.inc Index: freshlib/compiler/Linux/executable.inc ================================================================== --- freshlib/compiler/Linux/executable.inc +++ /dev/null @@ -1,29 +0,0 @@ -TargetOS equ Linux - -macro _BinaryType type { - if type eq GUI - format ELF executable 3 - entry start - end if - - if type eq console - format ELF executable 3 - entry start - end if - - if type eq DLL - format ELF executable ; is it correct??? - end if -} - -macro _CodeSection { -segment readable executable -} - -macro _DataSection { -segment readable writeable -} - -macro _ImportSection { -segment interpreter readable -} DELETED freshlib/compiler/Win32/executable.inc Index: freshlib/compiler/Win32/executable.inc ================================================================== --- freshlib/compiler/Win32/executable.inc +++ /dev/null @@ -1,20 +0,0 @@ -TargetOS equ Win32 - -macro _BinaryType type { - format PE type 4.0 - entry start -} - -macro _CodeSection { - section '.code' code readable writeable executable -} - - -macro _DataSection { - section '.data' data readable writeable -} - -macro _ImportSection { - section '.idata' import readable -} - DELETED freshlib/compiler/executable.inc Index: freshlib/compiler/executable.inc ================================================================== --- freshlib/compiler/executable.inc +++ /dev/null @@ -1,1 +0,0 @@ -include '%TargetOS%/executable.inc' ADDED freshlib/data/Dummy/utf8.asm Index: freshlib/data/Dummy/utf8.asm ================================================================== --- /dev/null +++ freshlib/data/Dummy/utf8.asm ADDED freshlib/data/KolibriOS/random.asm Index: freshlib/data/KolibriOS/random.asm ================================================================== --- /dev/null +++ freshlib/data/KolibriOS/random.asm @@ -0,0 +1,24 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of different random number generators. +; +; Target OS: Linux +; +; Dependencies: memory.asm +; +; Notes: +; +;_________________________________________________________________________________________ + + + + +body GetRandomBytes +begin + return +endp + + ADDED freshlib/data/KolibriOS/utf8.asm Index: freshlib/data/KolibriOS/utf8.asm ================================================================== --- /dev/null +++ freshlib/data/KolibriOS/utf8.asm @@ -0,0 +1,23 @@ +proc WideCharToUtf8, .ptrWideChar +begin + push edx esi edi + + mov esi, [.ptrWideChar] + stdcall StrNew + mov edi, eax + +.loop: + stdcall DecodeUtf16, [esi] + test eax, eax + jz .end_string + + stdcall EncodeUtf8, eax + + stdcall StrCharCat, edi, eax + jmp .loop + +.end_string: + mov eax, edi + pop edi esi edx + return +endp ADDED freshlib/data/Linux/random.asm Index: freshlib/data/Linux/random.asm ================================================================== --- /dev/null +++ freshlib/data/Linux/random.asm @@ -0,0 +1,70 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of different random number generators. +; +; Target OS: Linux +; +; Dependencies: memory.asm +; +; Notes: +; +;_________________________________________________________________________________________ + + + + +body GetRandomBytes +begin + pushad + + stdcall GetMem, [.count] + mov esi, eax + mov edi, eax + + + mov eax, sys_open + mov ebx, cRandomFile + mov ecx, O_RDONLY + int $80 + test eax, eax + js .error + + mov ebx, eax + +.loop: + mov eax, sys_read + mov ecx, esi + mov edx, [.count] + int $80 + test eax, eax + js .error2 + + add esi, eax + sub [.count], eax + jnz .loop + + mov eax, sys_close + int $80 + + clc + mov [esp+4*regEAX], edi + clc + popad + return + +.error2: + mov eax, sys_close + int $80 + +.error: + stdcall FreeMem, edi + stc + popad + return +endp + + +cRandomFile text "/dev/urandom" ; we will use /dev/urandom, because don't want to block. ADDED freshlib/data/Linux/utf8.asm Index: freshlib/data/Linux/utf8.asm ================================================================== --- /dev/null +++ freshlib/data/Linux/utf8.asm DELETED freshlib/data/ToBeRemoved/StrLibOS.asm Index: freshlib/data/ToBeRemoved/StrLibOS.asm ================================================================== --- freshlib/data/ToBeRemoved/StrLibOS.asm +++ /dev/null @@ -1,53 +0,0 @@ -;******************************************************************************* -; Get the text of the [Control] using WM_GETTEXT and put it to the string with -; handle (only) in [string]. -; -; if [string] = NULL creates new string and returns the handle. -; if [string] <> NULL just copyes the text. -;******************************************************************************* -proc GetControlText, .Control, .string -.len dd ? -begin - push ebx ecx edx - - mov eax, [.string] - test eax,eax - jnz @f - stdcall StrNew -@@: - mov ebx, eax - - invoke SendMessage, [.Control], WM_GETTEXTLENGTH, 0, 0 - mov [.len], eax - stdcall StrSetCapacity, ebx, eax - jc .error - - push eax - add [.len], 1 - invoke SendMessage, [.Control], WM_GETTEXT, [.len], eax - pop ecx - mov [ecx+string.len], eax - mov eax, ebx - clc - -.error: - pop edx ecx ebx - return -endp - - - - - -;******************************************************************************* -; Sets the text in control using WM_SETTEXT from string with handle or pointer -; in [string]. -;******************************************************************************* -proc SetControlText, .Control, .string -begin - push eax ecx edx - stdcall StrPtr, [.string] - invoke SendMessage, [.Control], WM_SETTEXT, 0, eax - pop edx ecx eax - return -endp ADDED freshlib/data/Win32/random.asm Index: freshlib/data/Win32/random.asm ================================================================== --- /dev/null +++ freshlib/data/Win32/random.asm @@ -0,0 +1,82 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of different random number generators. +; +; Target OS: Win32 +; +; Dependencies: memory.asm +; +; Notes: +; +;_________________________________________________________________________________________ + +uses advapi32 + + +; Provider Types +PROV_RSA_FULL = 1 +PROV_RSA_SIG = 2 +PROV_DSS = 3 +PROV_FORTEZZA = 4 +PROV_MS_EXCHANGE = 5 +PROV_SSL = 6 +PROV_RSA_SCHANNEL = 12 +PROV_DSS_DH = 13 +PROV_EC_ECDSA_SIG = 14 +PROV_EC_ECNRA_SIG = 15 +PROV_EC_ECDSA_FULL = 16 +PROV_EC_ECNRA_FULL = 17 +PROV_DH_SCHANNEL = 18 +PROV_SPYRUS_LYNKS = 20 +PROV_RNG = 21 +PROV_INTEL_SEC = 22 +PROV_REPLACE_OWF = 23 +PROV_RSA_AES = 24 + + +; CryptAcquireContext + +CRYPT_VERIFYCONTEXT = 0xF0000000 +CRYPT_NEWKEYSET = 0x00000008 +CRYPT_DELETEKEYSET = 0x00000010 +CRYPT_MACHINE_KEYSET = 0x00000020 +CRYPT_SILENT = 0x00000040 + + + + +body GetRandomBytes +.prov dd ? +begin + pushad + + stdcall GetMem, [.count] + mov esi, eax + + lea eax, [.prov] + invoke CryptAcquireContextW, eax, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT or CRYPT_SILENT + test eax, eax + jz .error + + invoke CryptGenRandom, [.prov], [.count], esi + test eax, eax + jz .error2 + + invoke CryptReleaseContext, [.prov], 0 + + clc + mov [esp+4*regEAX], esi + popad + return + +.error2: + invoke CryptReleaseContext, [.prov], 0 + +.error: + stc + popad + return +endp ADDED freshlib/data/Win32/utf8.asm Index: freshlib/data/Win32/utf8.asm ================================================================== --- /dev/null +++ freshlib/data/Win32/utf8.asm @@ -0,0 +1,72 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Library for converting UTF8 to and from WideChar +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +;----------------------------------------------------------- +; Returns: +; eax - pointer to the widechar string. +; ecx - length of the widechar string in characters. +;----------------------------------------------------------- +proc utf8ToWideChar, .hString +begin + push edx edi + + stdcall StrPtr, [.hString] + invoke MultiByteToWideChar, CP_UTF8, 0, eax, -1, 0, 0 + + lea edx, [2*eax+8] + stdcall GetMem, edx + mov edi, eax + + stdcall StrPtr, [.hString] + + sar edx, 1 + invoke MultiByteToWideChar, CP_UTF8, 0, eax, -1, edi, edx + mov ecx, eax + mov eax, edi + + pop edi edx + return +endp + + + + +proc WideCharToUtf8, .ptrWideChar +begin + push ebx ecx edx edi + invoke WideCharToMultiByte, CP_UTF8, 0, [.ptrWideChar], -1, 0, 0, 0, 0 + test eax, eax + jz .error + + lea ebx, [eax+8] + stdcall GetMem, ebx + mov edi, eax + + invoke WideCharToMultiByte, CP_UTF8, 0, [.ptrWideChar], -1, edi, ebx, 0, 0 + test eax, eax + jz .error + + stdcall StrDup, edi + stdcall FreeMem, edi + + clc +.finish: + pop edi edx ecx ebx + return + +.error: + stc + jmp .finish +endp ADDED freshlib/data/_encodings/8859-1.tbl Index: freshlib/data/_encodings/8859-1.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-1.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-10.tbl Index: freshlib/data/_encodings/8859-10.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-10.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-11.tbl Index: freshlib/data/_encodings/8859-11.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-11.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-13.tbl Index: freshlib/data/_encodings/8859-13.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-13.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-14.tbl Index: freshlib/data/_encodings/8859-14.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-14.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-15.tbl Index: freshlib/data/_encodings/8859-15.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-15.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-16.tbl Index: freshlib/data/_encodings/8859-16.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-16.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-2.tbl Index: freshlib/data/_encodings/8859-2.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-2.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-3.tbl Index: freshlib/data/_encodings/8859-3.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-3.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-4.tbl Index: freshlib/data/_encodings/8859-4.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-4.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-5.tbl Index: freshlib/data/_encodings/8859-5.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-5.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-6.tbl Index: freshlib/data/_encodings/8859-6.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-6.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-7.tbl Index: freshlib/data/_encodings/8859-7.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-7.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-8.tbl Index: freshlib/data/_encodings/8859-8.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-8.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/8859-9.tbl Index: freshlib/data/_encodings/8859-9.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/8859-9.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP037.tbl Index: freshlib/data/_encodings/CP037.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP037.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1006.tbl Index: freshlib/data/_encodings/CP1006.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1006.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1026.tbl Index: freshlib/data/_encodings/CP1026.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1026.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1250.tbl Index: freshlib/data/_encodings/CP1250.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1250.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1251.tbl Index: freshlib/data/_encodings/CP1251.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1251.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1252.tbl Index: freshlib/data/_encodings/CP1252.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1252.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1253.tbl Index: freshlib/data/_encodings/CP1253.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1253.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1254.tbl Index: freshlib/data/_encodings/CP1254.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1254.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1255.tbl Index: freshlib/data/_encodings/CP1255.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1255.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1256.tbl Index: freshlib/data/_encodings/CP1256.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1256.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1257.tbl Index: freshlib/data/_encodings/CP1257.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1257.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP1258.tbl Index: freshlib/data/_encodings/CP1258.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP1258.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP424.tbl Index: freshlib/data/_encodings/CP424.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP424.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP437.tbl Index: freshlib/data/_encodings/CP437.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP437.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP500.tbl Index: freshlib/data/_encodings/CP500.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP500.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP737.tbl Index: freshlib/data/_encodings/CP737.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP737.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP775.tbl Index: freshlib/data/_encodings/CP775.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP775.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP850.tbl Index: freshlib/data/_encodings/CP850.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP850.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP852.tbl Index: freshlib/data/_encodings/CP852.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP852.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP855.tbl Index: freshlib/data/_encodings/CP855.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP855.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP856.tbl Index: freshlib/data/_encodings/CP856.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP856.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP857.tbl Index: freshlib/data/_encodings/CP857.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP857.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP860.tbl Index: freshlib/data/_encodings/CP860.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP860.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP861.tbl Index: freshlib/data/_encodings/CP861.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP861.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP862.tbl Index: freshlib/data/_encodings/CP862.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP862.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP863.tbl Index: freshlib/data/_encodings/CP863.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP863.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP864.tbl Index: freshlib/data/_encodings/CP864.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP864.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP865.tbl Index: freshlib/data/_encodings/CP865.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP865.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP866.tbl Index: freshlib/data/_encodings/CP866.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP866.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP869.tbl Index: freshlib/data/_encodings/CP869.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP869.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP874.tbl Index: freshlib/data/_encodings/CP874.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP874.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP875.tbl Index: freshlib/data/_encodings/CP875.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP875.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/CP932.tbl Index: freshlib/data/_encodings/CP932.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP932.tbl @@ -0,0 +1,1 @@ +abcdefghijklmnopqrstuvwxyz{|}~ࠟ ADDED freshlib/data/_encodings/CP936.tbl Index: freshlib/data/_encodings/CP936.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP936.tbl @@ -0,0 +1,1 @@ + ADDED freshlib/data/_encodings/CP949.tbl Index: freshlib/data/_encodings/CP949.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/CP949.tbl @@ -0,0 +1,1 @@ + ADDED freshlib/data/_encodings/KOI8-R.tbl Index: freshlib/data/_encodings/KOI8-R.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/KOI8-R.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/KOI8-U.tbl Index: freshlib/data/_encodings/KOI8-U.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/KOI8-U.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/KPS9566.tbl Index: freshlib/data/_encodings/KPS9566.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/KPS9566.tbl @@ -0,0 +1,1 @@ + ADDED freshlib/data/_encodings/NEXTSTEP.tbl Index: freshlib/data/_encodings/NEXTSTEP.tbl ================================================================== --- /dev/null +++ freshlib/data/_encodings/NEXTSTEP.tbl cannot compute difference between binary files ADDED freshlib/data/_encodings/_sources/8859-1.TXT Index: freshlib/data/_encodings/_sources/8859-1.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-1.TXT @@ -0,0 +1,292 @@ +# 8859-1.TXT +# Date: 2015-12-02 20:19:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-1:1998 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-1:1998 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-1 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-1 order. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x00A1 # INVERTED EXCLAMATION MARK +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x00A5 # YEN SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x00AA # FEMININE ORDINAL INDICATOR +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x00BA # MASCULINE ORDINAL INDICATOR +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC # VULGAR FRACTION ONE QUARTER +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF # INVERTED QUESTION MARK +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x00D0 # LATIN CAPITAL LETTER ETH (Icelandic) +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x00DE # LATIN CAPITAL LETTER THORN (Icelandic) +0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German) +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x00F0 # LATIN SMALL LETTER ETH (Icelandic) +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic) +0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS ADDED freshlib/data/_encodings/_sources/8859-10.TXT Index: freshlib/data/_encodings/_sources/8859-10.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-10.TXT @@ -0,0 +1,292 @@ +# 8859-10.TXT +# Date: 2015-12-02 21:53:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-10:1998 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 October 11 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-10:1998 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-10 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-10 order. +# +# Version history +# 1.0 version new. +# 1.1 corrected mistake in mapping of 0xA4 +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xA2 0x0112 # LATIN CAPITAL LETTER E WITH MACRON +0xA3 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA +0xA4 0x012A # LATIN CAPITAL LETTER I WITH MACRON +0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE +0xA6 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA +0xA7 0x00A7 # SECTION SIGN +0xA8 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA +0xA9 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0xAA 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xAB 0x0166 # LATIN CAPITAL LETTER T WITH STROKE +0xAC 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x016A # LATIN CAPITAL LETTER U WITH MACRON +0xAF 0x014A # LATIN CAPITAL LETTER ENG +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xB2 0x0113 # LATIN SMALL LETTER E WITH MACRON +0xB3 0x0123 # LATIN SMALL LETTER G WITH CEDILLA +0xB4 0x012B # LATIN SMALL LETTER I WITH MACRON +0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE +0xB6 0x0137 # LATIN SMALL LETTER K WITH CEDILLA +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x013C # LATIN SMALL LETTER L WITH CEDILLA +0xB9 0x0111 # LATIN SMALL LETTER D WITH STROKE +0xBA 0x0161 # LATIN SMALL LETTER S WITH CARON +0xBB 0x0167 # LATIN SMALL LETTER T WITH STROKE +0xBC 0x017E # LATIN SMALL LETTER Z WITH CARON +0xBD 0x2015 # HORIZONTAL BAR +0xBE 0x016B # LATIN SMALL LETTER U WITH MACRON +0xBF 0x014B # LATIN SMALL LETTER ENG +0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK +0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x00D0 # LATIN CAPITAL LETTER ETH (Icelandic) +0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA +0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x0168 # LATIN CAPITAL LETTER U WITH TILDE +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x00DE # LATIN CAPITAL LETTER THORN (Icelandic) +0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German) +0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK +0xE8 0x010D # LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x00F0 # LATIN SMALL LETTER ETH (Icelandic) +0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA +0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x0169 # LATIN SMALL LETTER U WITH TILDE +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic) +0xFF 0x0138 # LATIN SMALL LETTER KRA ADDED freshlib/data/_encodings/_sources/8859-11.TXT Index: freshlib/data/_encodings/_sources/8859-11.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-11.TXT @@ -0,0 +1,286 @@ +# 8859-11.TXT +# Date: 2015-12-02 21:55:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-11:2001 to Unicode +# Unicode version: 3.2 +# Table version: 2.0 +# Table format: Format A +# Date: 2002 October 7 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-11:2001 characters map into Unicode. +# +# ISO/IEC 8859-11:2001 is equivalent to TIS 620-2533 (1990) with +# the addition of 0xA0 NO-BREAK SPACE. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-11 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-11 order. +# +# Version history: +# 2002 October 7 Created +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0E01 # THAI CHARACTER KO KAI +0xA2 0x0E02 # THAI CHARACTER KHO KHAI +0xA3 0x0E03 # THAI CHARACTER KHO KHUAT +0xA4 0x0E04 # THAI CHARACTER KHO KHWAI +0xA5 0x0E05 # THAI CHARACTER KHO KHON +0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG +0xA7 0x0E07 # THAI CHARACTER NGO NGU +0xA8 0x0E08 # THAI CHARACTER CHO CHAN +0xA9 0x0E09 # THAI CHARACTER CHO CHING +0xAA 0x0E0A # THAI CHARACTER CHO CHANG +0xAB 0x0E0B # THAI CHARACTER SO SO +0xAC 0x0E0C # THAI CHARACTER CHO CHOE +0xAD 0x0E0D # THAI CHARACTER YO YING +0xAE 0x0E0E # THAI CHARACTER DO CHADA +0xAF 0x0E0F # THAI CHARACTER TO PATAK +0xB0 0x0E10 # THAI CHARACTER THO THAN +0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO +0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO +0xB3 0x0E13 # THAI CHARACTER NO NEN +0xB4 0x0E14 # THAI CHARACTER DO DEK +0xB5 0x0E15 # THAI CHARACTER TO TAO +0xB6 0x0E16 # THAI CHARACTER THO THUNG +0xB7 0x0E17 # THAI CHARACTER THO THAHAN +0xB8 0x0E18 # THAI CHARACTER THO THONG +0xB9 0x0E19 # THAI CHARACTER NO NU +0xBA 0x0E1A # THAI CHARACTER BO BAIMAI +0xBB 0x0E1B # THAI CHARACTER PO PLA +0xBC 0x0E1C # THAI CHARACTER PHO PHUNG +0xBD 0x0E1D # THAI CHARACTER FO FA +0xBE 0x0E1E # THAI CHARACTER PHO PHAN +0xBF 0x0E1F # THAI CHARACTER FO FAN +0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO +0xC1 0x0E21 # THAI CHARACTER MO MA +0xC2 0x0E22 # THAI CHARACTER YO YAK +0xC3 0x0E23 # THAI CHARACTER RO RUA +0xC4 0x0E24 # THAI CHARACTER RU +0xC5 0x0E25 # THAI CHARACTER LO LING +0xC6 0x0E26 # THAI CHARACTER LU +0xC7 0x0E27 # THAI CHARACTER WO WAEN +0xC8 0x0E28 # THAI CHARACTER SO SALA +0xC9 0x0E29 # THAI CHARACTER SO RUSI +0xCA 0x0E2A # THAI CHARACTER SO SUA +0xCB 0x0E2B # THAI CHARACTER HO HIP +0xCC 0x0E2C # THAI CHARACTER LO CHULA +0xCD 0x0E2D # THAI CHARACTER O ANG +0xCE 0x0E2E # THAI CHARACTER HO NOKHUK +0xCF 0x0E2F # THAI CHARACTER PAIYANNOI +0xD0 0x0E30 # THAI CHARACTER SARA A +0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT +0xD2 0x0E32 # THAI CHARACTER SARA AA +0xD3 0x0E33 # THAI CHARACTER SARA AM +0xD4 0x0E34 # THAI CHARACTER SARA I +0xD5 0x0E35 # THAI CHARACTER SARA II +0xD6 0x0E36 # THAI CHARACTER SARA UE +0xD7 0x0E37 # THAI CHARACTER SARA UEE +0xD8 0x0E38 # THAI CHARACTER SARA U +0xD9 0x0E39 # THAI CHARACTER SARA UU +0xDA 0x0E3A # THAI CHARACTER PHINTHU +0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT +0xE0 0x0E40 # THAI CHARACTER SARA E +0xE1 0x0E41 # THAI CHARACTER SARA AE +0xE2 0x0E42 # THAI CHARACTER SARA O +0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN +0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI +0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO +0xE6 0x0E46 # THAI CHARACTER MAIYAMOK +0xE7 0x0E47 # THAI CHARACTER MAITAIKHU +0xE8 0x0E48 # THAI CHARACTER MAI EK +0xE9 0x0E49 # THAI CHARACTER MAI THO +0xEA 0x0E4A # THAI CHARACTER MAI TRI +0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA +0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT +0xED 0x0E4D # THAI CHARACTER NIKHAHIT +0xEE 0x0E4E # THAI CHARACTER YAMAKKAN +0xEF 0x0E4F # THAI CHARACTER FONGMAN +0xF0 0x0E50 # THAI DIGIT ZERO +0xF1 0x0E51 # THAI DIGIT ONE +0xF2 0x0E52 # THAI DIGIT TWO +0xF3 0x0E53 # THAI DIGIT THREE +0xF4 0x0E54 # THAI DIGIT FOUR +0xF5 0x0E55 # THAI DIGIT FIVE +0xF6 0x0E56 # THAI DIGIT SIX +0xF7 0x0E57 # THAI DIGIT SEVEN +0xF8 0x0E58 # THAI DIGIT EIGHT +0xF9 0x0E59 # THAI DIGIT NINE +0xFA 0x0E5A # THAI CHARACTER ANGKHANKHU +0xFB 0x0E5B # THAI CHARACTER KHOMUT ADDED freshlib/data/_encodings/_sources/8859-13.TXT Index: freshlib/data/_encodings/_sources/8859-13.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-13.TXT @@ -0,0 +1,291 @@ +# 8859-13.TXT +# Date: 2015-12-02 22:03:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-13:1998 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-13:1998 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-13 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-13 order. +# +# Version history +# 1.0 version: created +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x201D # RIGHT DOUBLE QUOTATION MARK +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00C6 # LATIN CAPITAL LETTER AE +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x201C # LEFT DOUBLE QUOTATION MARK +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x0157 # LATIN SMALL LETTER R WITH CEDILLA +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC # VULGAR FRACTION ONE QUARTER +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS +0xBF 0x00E6 # LATIN SMALL LETTER AE +0xC0 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xC1 0x012E # LATIN CAPITAL LETTER I WITH OGONEK +0xC2 0x0100 # LATIN CAPITAL LETTER A WITH MACRON +0xC3 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xC7 0x0112 # LATIN CAPITAL LETTER E WITH MACRON +0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE +0xCB 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE +0xCC 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA +0xCD 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA +0xCE 0x012A # LATIN CAPITAL LETTER I WITH MACRON +0xCF 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA +0xD0 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE +0xD2 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x014C # LATIN CAPITAL LETTER O WITH MACRON +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK +0xD9 0x0141 # LATIN CAPITAL LETTER L WITH STROKE +0xDA 0x015A # LATIN CAPITAL LETTER S WITH ACUTE +0xDB 0x016A # LATIN CAPITAL LETTER U WITH MACRON +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xDE 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German) +0xE0 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xE1 0x012F # LATIN SMALL LETTER I WITH OGONEK +0xE2 0x0101 # LATIN SMALL LETTER A WITH MACRON +0xE3 0x0107 # LATIN SMALL LETTER C WITH ACUTE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xE7 0x0113 # LATIN SMALL LETTER E WITH MACRON +0xE8 0x010D # LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x017A # LATIN SMALL LETTER Z WITH ACUTE +0xEB 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE +0xEC 0x0123 # LATIN SMALL LETTER G WITH CEDILLA +0xED 0x0137 # LATIN SMALL LETTER K WITH CEDILLA +0xEE 0x012B # LATIN SMALL LETTER I WITH MACRON +0xEF 0x013C # LATIN SMALL LETTER L WITH CEDILLA +0xF0 0x0161 # LATIN SMALL LETTER S WITH CARON +0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE +0xF2 0x0146 # LATIN SMALL LETTER N WITH CEDILLA +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x014D # LATIN SMALL LETTER O WITH MACRON +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x0173 # LATIN SMALL LETTER U WITH OGONEK +0xF9 0x0142 # LATIN SMALL LETTER L WITH STROKE +0xFA 0x015B # LATIN SMALL LETTER S WITH ACUTE +0xFB 0x016B # LATIN SMALL LETTER U WITH MACRON +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE +0xFE 0x017E # LATIN SMALL LETTER Z WITH CARON +0xFF 0x2019 # RIGHT SINGLE QUOTATION MARK ADDED freshlib/data/_encodings/_sources/8859-14.TXT Index: freshlib/data/_encodings/_sources/8859-14.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-14.TXT @@ -0,0 +1,293 @@ +# 8859-14.TXT +# Date: 2015-12-02 22:05:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-14:1998 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> +# Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-14:1998 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-14 order. +# +# Version history +# 1.0 version: created +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE +0xA2 0x1E03 # LATIN SMALL LETTER B WITH DOT ABOVE +0xA3 0x00A3 # POUND SIGN +0xA4 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE +0xA5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE +0xA6 0x1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE +0xA7 0x00A7 # SECTION SIGN +0xA8 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE +0xAB 0x1E0B # LATIN SMALL LETTER D WITH DOT ABOVE +0xAC 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS +0xB0 0x1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE +0xB1 0x1E1F # LATIN SMALL LETTER F WITH DOT ABOVE +0xB2 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE +0xB3 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE +0xB4 0x1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE +0xB5 0x1E41 # LATIN SMALL LETTER M WITH DOT ABOVE +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE +0xB8 0x1E81 # LATIN SMALL LETTER W WITH GRAVE +0xB9 0x1E57 # LATIN SMALL LETTER P WITH DOT ABOVE +0xBA 0x1E83 # LATIN SMALL LETTER W WITH ACUTE +0xBB 0x1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE +0xBC 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE +0xBD 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS +0xBE 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS +0xBF 0x1E61 # LATIN SMALL LETTER S WITH DOT ABOVE +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x1E6B # LATIN SMALL LETTER T WITH DOT ABOVE +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX +0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS + ADDED freshlib/data/_encodings/_sources/8859-15.TXT Index: freshlib/data/_encodings/_sources/8859-15.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-15.TXT @@ -0,0 +1,295 @@ +# 8859-15.TXT +# Date: 2015-12-02 22:06:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-15:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> +# Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-15:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-15 order. +# +# Version history +# +# Version history +# 1.0 version: created +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x00A1 # INVERTED EXCLAMATION MARK +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x20AC # EURO SIGN +0xA5 0x00A5 # YEN SIGN +0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xA7 0x00A7 # SECTION SIGN +0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x00AA # FEMININE ORDINAL INDICATOR +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x00BA # MASCULINE ORDINAL INDICATOR +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x0152 # LATIN CAPITAL LIGATURE OE +0xBD 0x0153 # LATIN SMALL LIGATURE OE +0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS +0xBF 0x00BF # INVERTED QUESTION MARK +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x00D0 # LATIN CAPITAL LETTER ETH +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x00DE # LATIN CAPITAL LETTER THORN +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x00F0 # LATIN SMALL LETTER ETH +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x00FE # LATIN SMALL LETTER THORN +0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS + ADDED freshlib/data/_encodings/_sources/8859-16.TXT Index: freshlib/data/_encodings/_sources/8859-16.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-16.TXT @@ -0,0 +1,293 @@ +# 8859-16.TXT +# Date: 2015-12-02 22:08:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-16:2001 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 2001 July 26 (header updated: 2015 December 02) +# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> +# +# Copyright (c) 1999-2001 Unicode, Inc. All Rights reserved. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-16:2001 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-16 order. +# +# Version history +# 1.0 version: created +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xA2 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE +0xA4 0x20AC # EURO SIGN +0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK +0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xA7 0x00A7 # SECTION SIGN +0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x017A # LATIN SMALL LETTER Z WITH ACUTE +0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE +0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xB5 0x201D # RIGHT DOUBLE QUOTATION MARK +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON +0xB9 0x010D # LATIN SMALL LETTER C WITH CARON +0xBA 0x0219 # LATIN SMALL LETTER S WITH COMMA BELOW +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x0152 # LATIN CAPITAL LIGATURE OE +0xBD 0x0153 # LATIN SMALL LIGATURE OE +0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS +0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x015A # LATIN CAPITAL LETTER S WITH ACUTE +0xD8 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xDE 0x021A # LATIN CAPITAL LETTER T WITH COMMA BELOW +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x0107 # LATIN SMALL LETTER C WITH ACUTE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE +0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x015B # LATIN SMALL LETTER S WITH ACUTE +0xF8 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xFE 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW +0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS ADDED freshlib/data/_encodings/_sources/8859-2.TXT Index: freshlib/data/_encodings/_sources/8859-2.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-2.TXT @@ -0,0 +1,292 @@ +# 8859-2.TXT +# Date: 2015-12-02 21:34:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO 8859-2:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-2:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-2 order. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xA2 0x02D8 # BREVE +0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x013D # LATIN CAPITAL LETTER L WITH CARON +0xA6 0x015A # LATIN CAPITAL LETTER S WITH ACUTE +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA +0xAB 0x0164 # LATIN CAPITAL LETTER T WITH CARON +0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xB2 0x02DB # OGONEK +0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x013E # LATIN SMALL LETTER L WITH CARON +0xB6 0x015B # LATIN SMALL LETTER S WITH ACUTE +0xB7 0x02C7 # CARON +0xB8 0x00B8 # CEDILLA +0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON +0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA +0xBB 0x0165 # LATIN SMALL LETTER T WITH CARON +0xBC 0x017A # LATIN SMALL LETTER Z WITH ACUTE +0xBD 0x02DD # DOUBLE ACUTE ACCENT +0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON +0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE +0xC0 0x0154 # LATIN CAPITAL LETTER R WITH ACUTE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x0139 # LATIN CAPITAL LETTER L WITH ACUTE +0xC6 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x011A # LATIN CAPITAL LETTER E WITH CARON +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x010E # LATIN CAPITAL LETTER D WITH CARON +0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE +0xD2 0x0147 # LATIN CAPITAL LETTER N WITH CARON +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x0158 # LATIN CAPITAL LETTER R WITH CARON +0xD9 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x0162 # LATIN CAPITAL LETTER T WITH CEDILLA +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x0155 # LATIN SMALL LETTER R WITH ACUTE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x013A # LATIN SMALL LETTER L WITH ACUTE +0xE6 0x0107 # LATIN SMALL LETTER C WITH ACUTE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x010D # LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x011B # LATIN SMALL LETTER E WITH CARON +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x010F # LATIN SMALL LETTER D WITH CARON +0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE +0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE +0xF2 0x0148 # LATIN SMALL LETTER N WITH CARON +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x0159 # LATIN SMALL LETTER R WITH CARON +0xF9 0x016F # LATIN SMALL LETTER U WITH RING ABOVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x0163 # LATIN SMALL LETTER T WITH CEDILLA +0xFF 0x02D9 # DOT ABOVE ADDED freshlib/data/_encodings/_sources/8859-3.TXT Index: freshlib/data/_encodings/_sources/8859-3.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-3.TXT @@ -0,0 +1,285 @@ +# 8859-3.TXT +# Date: 2015-12-02 21:39:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-3:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-3:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-3 order. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0126 # LATIN CAPITAL LETTER H WITH STROKE +0xA2 0x02D8 # BREVE +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA6 0x0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE +0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA +0xAB 0x011E # LATIN CAPITAL LETTER G WITH BREVE +0xAC 0x0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0xAD 0x00AD # SOFT HYPHEN +0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0127 # LATIN SMALL LETTER H WITH STROKE +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x0131 # LATIN SMALL LETTER DOTLESS I +0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA +0xBB 0x011F # LATIN SMALL LETTER G WITH BREVE +0xBC 0x0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE +0xC6 0x0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x016C # LATIN CAPITAL LETTER U WITH BREVE +0xDE 0x015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE +0xE6 0x0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x011D # LATIN SMALL LETTER G WITH CIRCUMFLEX +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x016D # LATIN SMALL LETTER U WITH BREVE +0xFE 0x015D # LATIN SMALL LETTER S WITH CIRCUMFLEX +0xFF 0x02D9 # DOT ABOVE ADDED freshlib/data/_encodings/_sources/8859-4.TXT Index: freshlib/data/_encodings/_sources/8859-4.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-4.TXT @@ -0,0 +1,292 @@ +# 8859-4.TXT +# Date: 2015-12-02 21:41:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-4:1998 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-4:1998 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-4 order. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xA2 0x0138 # LATIN SMALL LETTER KRA +0xA3 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE +0xA6 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xAA 0x0112 # LATIN CAPITAL LETTER E WITH MACRON +0xAB 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA +0xAC 0x0166 # LATIN CAPITAL LETTER T WITH STROKE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xB2 0x02DB # OGONEK +0xB3 0x0157 # LATIN SMALL LETTER R WITH CEDILLA +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE +0xB6 0x013C # LATIN SMALL LETTER L WITH CEDILLA +0xB7 0x02C7 # CARON +0xB8 0x00B8 # CEDILLA +0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON +0xBA 0x0113 # LATIN SMALL LETTER E WITH MACRON +0xBB 0x0123 # LATIN SMALL LETTER G WITH CEDILLA +0xBC 0x0167 # LATIN SMALL LETTER T WITH STROKE +0xBD 0x014A # LATIN CAPITAL LETTER ENG +0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON +0xBF 0x014B # LATIN SMALL LETTER ENG +0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK +0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x012A # LATIN CAPITAL LETTER I WITH MACRON +0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA +0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON +0xD3 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x0168 # LATIN CAPITAL LETTER U WITH TILDE +0xDE 0x016A # LATIN CAPITAL LETTER U WITH MACRON +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK +0xE8 0x010D # LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x012B # LATIN SMALL LETTER I WITH MACRON +0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE +0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA +0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON +0xF3 0x0137 # LATIN SMALL LETTER K WITH CEDILLA +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x0169 # LATIN SMALL LETTER U WITH TILDE +0xFE 0x016B # LATIN SMALL LETTER U WITH MACRON +0xFF 0x02D9 # DOT ABOVE ADDED freshlib/data/_encodings/_sources/8859-5.TXT Index: freshlib/data/_encodings/_sources/8859-5.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-5.TXT @@ -0,0 +1,292 @@ +# 8859-5.TXT +# Date: 2015-12-02 21:43:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO 8859-5:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-5:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-5 order. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0401 # CYRILLIC CAPITAL LETTER IO +0xA2 0x0402 # CYRILLIC CAPITAL LETTER DJE +0xA3 0x0403 # CYRILLIC CAPITAL LETTER GJE +0xA4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE +0xA5 0x0405 # CYRILLIC CAPITAL LETTER DZE +0xA6 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0xA7 0x0407 # CYRILLIC CAPITAL LETTER YI +0xA8 0x0408 # CYRILLIC CAPITAL LETTER JE +0xA9 0x0409 # CYRILLIC CAPITAL LETTER LJE +0xAA 0x040A # CYRILLIC CAPITAL LETTER NJE +0xAB 0x040B # CYRILLIC CAPITAL LETTER TSHE +0xAC 0x040C # CYRILLIC CAPITAL LETTER KJE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x040E # CYRILLIC CAPITAL LETTER SHORT U +0xAF 0x040F # CYRILLIC CAPITAL LETTER DZHE +0xB0 0x0410 # CYRILLIC CAPITAL LETTER A +0xB1 0x0411 # CYRILLIC CAPITAL LETTER BE +0xB2 0x0412 # CYRILLIC CAPITAL LETTER VE +0xB3 0x0413 # CYRILLIC CAPITAL LETTER GHE +0xB4 0x0414 # CYRILLIC CAPITAL LETTER DE +0xB5 0x0415 # CYRILLIC CAPITAL LETTER IE +0xB6 0x0416 # CYRILLIC CAPITAL LETTER ZHE +0xB7 0x0417 # CYRILLIC CAPITAL LETTER ZE +0xB8 0x0418 # CYRILLIC CAPITAL LETTER I +0xB9 0x0419 # CYRILLIC CAPITAL LETTER SHORT I +0xBA 0x041A # CYRILLIC CAPITAL LETTER KA +0xBB 0x041B # CYRILLIC CAPITAL LETTER EL +0xBC 0x041C # CYRILLIC CAPITAL LETTER EM +0xBD 0x041D # CYRILLIC CAPITAL LETTER EN +0xBE 0x041E # CYRILLIC CAPITAL LETTER O +0xBF 0x041F # CYRILLIC CAPITAL LETTER PE +0xC0 0x0420 # CYRILLIC CAPITAL LETTER ER +0xC1 0x0421 # CYRILLIC CAPITAL LETTER ES +0xC2 0x0422 # CYRILLIC CAPITAL LETTER TE +0xC3 0x0423 # CYRILLIC CAPITAL LETTER U +0xC4 0x0424 # CYRILLIC CAPITAL LETTER EF +0xC5 0x0425 # CYRILLIC CAPITAL LETTER HA +0xC6 0x0426 # CYRILLIC CAPITAL LETTER TSE +0xC7 0x0427 # CYRILLIC CAPITAL LETTER CHE +0xC8 0x0428 # CYRILLIC CAPITAL LETTER SHA +0xC9 0x0429 # CYRILLIC CAPITAL LETTER SHCHA +0xCA 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN +0xCB 0x042B # CYRILLIC CAPITAL LETTER YERU +0xCC 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN +0xCD 0x042D # CYRILLIC CAPITAL LETTER E +0xCE 0x042E # CYRILLIC CAPITAL LETTER YU +0xCF 0x042F # CYRILLIC CAPITAL LETTER YA +0xD0 0x0430 # CYRILLIC SMALL LETTER A +0xD1 0x0431 # CYRILLIC SMALL LETTER BE +0xD2 0x0432 # CYRILLIC SMALL LETTER VE +0xD3 0x0433 # CYRILLIC SMALL LETTER GHE +0xD4 0x0434 # CYRILLIC SMALL LETTER DE +0xD5 0x0435 # CYRILLIC SMALL LETTER IE +0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE +0xD7 0x0437 # CYRILLIC SMALL LETTER ZE +0xD8 0x0438 # CYRILLIC SMALL LETTER I +0xD9 0x0439 # CYRILLIC SMALL LETTER SHORT I +0xDA 0x043A # CYRILLIC SMALL LETTER KA +0xDB 0x043B # CYRILLIC SMALL LETTER EL +0xDC 0x043C # CYRILLIC SMALL LETTER EM +0xDD 0x043D # CYRILLIC SMALL LETTER EN +0xDE 0x043E # CYRILLIC SMALL LETTER O +0xDF 0x043F # CYRILLIC SMALL LETTER PE +0xE0 0x0440 # CYRILLIC SMALL LETTER ER +0xE1 0x0441 # CYRILLIC SMALL LETTER ES +0xE2 0x0442 # CYRILLIC SMALL LETTER TE +0xE3 0x0443 # CYRILLIC SMALL LETTER U +0xE4 0x0444 # CYRILLIC SMALL LETTER EF +0xE5 0x0445 # CYRILLIC SMALL LETTER HA +0xE6 0x0446 # CYRILLIC SMALL LETTER TSE +0xE7 0x0447 # CYRILLIC SMALL LETTER CHE +0xE8 0x0448 # CYRILLIC SMALL LETTER SHA +0xE9 0x0449 # CYRILLIC SMALL LETTER SHCHA +0xEA 0x044A # CYRILLIC SMALL LETTER HARD SIGN +0xEB 0x044B # CYRILLIC SMALL LETTER YERU +0xEC 0x044C # CYRILLIC SMALL LETTER SOFT SIGN +0xED 0x044D # CYRILLIC SMALL LETTER E +0xEE 0x044E # CYRILLIC SMALL LETTER YU +0xEF 0x044F # CYRILLIC SMALL LETTER YA +0xF0 0x2116 # NUMERO SIGN +0xF1 0x0451 # CYRILLIC SMALL LETTER IO +0xF2 0x0452 # CYRILLIC SMALL LETTER DJE +0xF3 0x0453 # CYRILLIC SMALL LETTER GJE +0xF4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE +0xF5 0x0455 # CYRILLIC SMALL LETTER DZE +0xF6 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0xF7 0x0457 # CYRILLIC SMALL LETTER YI +0xF8 0x0458 # CYRILLIC SMALL LETTER JE +0xF9 0x0459 # CYRILLIC SMALL LETTER LJE +0xFA 0x045A # CYRILLIC SMALL LETTER NJE +0xFB 0x045B # CYRILLIC SMALL LETTER TSHE +0xFC 0x045C # CYRILLIC SMALL LETTER KJE +0xFD 0x00A7 # SECTION SIGN +0xFE 0x045E # CYRILLIC SMALL LETTER SHORT U +0xFF 0x045F # CYRILLIC SMALL LETTER DZHE ADDED freshlib/data/_encodings/_sources/8859-6.TXT Index: freshlib/data/_encodings/_sources/8859-6.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-6.TXT @@ -0,0 +1,249 @@ +# 8859-6.TXT +# Date: 2015-12-02 21:44:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO 8859-6:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-6:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-6 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-6 order. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead +# of the Arabic digits (U+0660..U+0669). +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA4 0x00A4 # CURRENCY SIGN +0xAC 0x060C # ARABIC COMMA +0xAD 0x00AD # SOFT HYPHEN +0xBB 0x061B # ARABIC SEMICOLON +0xBF 0x061F # ARABIC QUESTION MARK +0xC1 0x0621 # ARABIC LETTER HAMZA +0xC2 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE +0xC3 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE +0xC4 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE +0xC5 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW +0xC6 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE +0xC7 0x0627 # ARABIC LETTER ALEF +0xC8 0x0628 # ARABIC LETTER BEH +0xC9 0x0629 # ARABIC LETTER TEH MARBUTA +0xCA 0x062A # ARABIC LETTER TEH +0xCB 0x062B # ARABIC LETTER THEH +0xCC 0x062C # ARABIC LETTER JEEM +0xCD 0x062D # ARABIC LETTER HAH +0xCE 0x062E # ARABIC LETTER KHAH +0xCF 0x062F # ARABIC LETTER DAL +0xD0 0x0630 # ARABIC LETTER THAL +0xD1 0x0631 # ARABIC LETTER REH +0xD2 0x0632 # ARABIC LETTER ZAIN +0xD3 0x0633 # ARABIC LETTER SEEN +0xD4 0x0634 # ARABIC LETTER SHEEN +0xD5 0x0635 # ARABIC LETTER SAD +0xD6 0x0636 # ARABIC LETTER DAD +0xD7 0x0637 # ARABIC LETTER TAH +0xD8 0x0638 # ARABIC LETTER ZAH +0xD9 0x0639 # ARABIC LETTER AIN +0xDA 0x063A # ARABIC LETTER GHAIN +0xE0 0x0640 # ARABIC TATWEEL +0xE1 0x0641 # ARABIC LETTER FEH +0xE2 0x0642 # ARABIC LETTER QAF +0xE3 0x0643 # ARABIC LETTER KAF +0xE4 0x0644 # ARABIC LETTER LAM +0xE5 0x0645 # ARABIC LETTER MEEM +0xE6 0x0646 # ARABIC LETTER NOON +0xE7 0x0647 # ARABIC LETTER HEH +0xE8 0x0648 # ARABIC LETTER WAW +0xE9 0x0649 # ARABIC LETTER ALEF MAKSURA +0xEA 0x064A # ARABIC LETTER YEH +0xEB 0x064B # ARABIC FATHATAN +0xEC 0x064C # ARABIC DAMMATAN +0xED 0x064D # ARABIC KASRATAN +0xEE 0x064E # ARABIC FATHA +0xEF 0x064F # ARABIC DAMMA +0xF0 0x0650 # ARABIC KASRA +0xF1 0x0651 # ARABIC SHADDA +0xF2 0x0652 # ARABIC SUKUN ADDED freshlib/data/_encodings/_sources/8859-7.TXT Index: freshlib/data/_encodings/_sources/8859-7.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-7.TXT @@ -0,0 +1,299 @@ +# 8859-7.TXT +# Date: 2015-12-02 21:47:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO 8859-7:2003 to Unicode +# Unicode version: 4.0 +# Table version: 3.0 +# Table format: Format A +# Date: 2003-Nov-12 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO 8859-7:2003 characters map into Unicode. +# +# ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928, +# and ECMA 118. ISO 8859-7:2003 adds two currency signs +# and one other character not in the earlier standard. +# +# Format: Three tab-separated columns +# Column #1 is the ISO 8859-7 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO 8859-7 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7 +# Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7 +# +# 2.0 version updates 1.0 version by adding mappings for the +# three newly added characters 0xA4, 0xA5, 0xAA. +# +# 3.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x2018 # LEFT SINGLE QUOTATION MARK +0xA2 0x2019 # RIGHT SINGLE QUOTATION MARK +0xA3 0x00A3 # POUND SIGN +0xA4 0x20AC # EURO SIGN +0xA5 0x20AF # DRACHMA SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x037A # GREEK YPOGEGRAMMENI +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAF 0x2015 # HORIZONTAL BAR +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x0384 # GREEK TONOS +0xB5 0x0385 # GREEK DIALYTIKA TONOS +0xB6 0x0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS +0xB9 0x0389 # GREEK CAPITAL LETTER ETA WITH TONOS +0xBA 0x038A # GREEK CAPITAL LETTER IOTA WITH TONOS +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x038C # GREEK CAPITAL LETTER OMICRON WITH TONOS +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x038E # GREEK CAPITAL LETTER UPSILON WITH TONOS +0xBF 0x038F # GREEK CAPITAL LETTER OMEGA WITH TONOS +0xC0 0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0xC1 0x0391 # GREEK CAPITAL LETTER ALPHA +0xC2 0x0392 # GREEK CAPITAL LETTER BETA +0xC3 0x0393 # GREEK CAPITAL LETTER GAMMA +0xC4 0x0394 # GREEK CAPITAL LETTER DELTA +0xC5 0x0395 # GREEK CAPITAL LETTER EPSILON +0xC6 0x0396 # GREEK CAPITAL LETTER ZETA +0xC7 0x0397 # GREEK CAPITAL LETTER ETA +0xC8 0x0398 # GREEK CAPITAL LETTER THETA +0xC9 0x0399 # GREEK CAPITAL LETTER IOTA +0xCA 0x039A # GREEK CAPITAL LETTER KAPPA +0xCB 0x039B # GREEK CAPITAL LETTER LAMDA +0xCC 0x039C # GREEK CAPITAL LETTER MU +0xCD 0x039D # GREEK CAPITAL LETTER NU +0xCE 0x039E # GREEK CAPITAL LETTER XI +0xCF 0x039F # GREEK CAPITAL LETTER OMICRON +0xD0 0x03A0 # GREEK CAPITAL LETTER PI +0xD1 0x03A1 # GREEK CAPITAL LETTER RHO +0xD3 0x03A3 # GREEK CAPITAL LETTER SIGMA +0xD4 0x03A4 # GREEK CAPITAL LETTER TAU +0xD5 0x03A5 # GREEK CAPITAL LETTER UPSILON +0xD6 0x03A6 # GREEK CAPITAL LETTER PHI +0xD7 0x03A7 # GREEK CAPITAL LETTER CHI +0xD8 0x03A8 # GREEK CAPITAL LETTER PSI +0xD9 0x03A9 # GREEK CAPITAL LETTER OMEGA +0xDA 0x03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0xDB 0x03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0xDC 0x03AC # GREEK SMALL LETTER ALPHA WITH TONOS +0xDD 0x03AD # GREEK SMALL LETTER EPSILON WITH TONOS +0xDE 0x03AE # GREEK SMALL LETTER ETA WITH TONOS +0xDF 0x03AF # GREEK SMALL LETTER IOTA WITH TONOS +0xE0 0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0xE1 0x03B1 # GREEK SMALL LETTER ALPHA +0xE2 0x03B2 # GREEK SMALL LETTER BETA +0xE3 0x03B3 # GREEK SMALL LETTER GAMMA +0xE4 0x03B4 # GREEK SMALL LETTER DELTA +0xE5 0x03B5 # GREEK SMALL LETTER EPSILON +0xE6 0x03B6 # GREEK SMALL LETTER ZETA +0xE7 0x03B7 # GREEK SMALL LETTER ETA +0xE8 0x03B8 # GREEK SMALL LETTER THETA +0xE9 0x03B9 # GREEK SMALL LETTER IOTA +0xEA 0x03BA # GREEK SMALL LETTER KAPPA +0xEB 0x03BB # GREEK SMALL LETTER LAMDA +0xEC 0x03BC # GREEK SMALL LETTER MU +0xED 0x03BD # GREEK SMALL LETTER NU +0xEE 0x03BE # GREEK SMALL LETTER XI +0xEF 0x03BF # GREEK SMALL LETTER OMICRON +0xF0 0x03C0 # GREEK SMALL LETTER PI +0xF1 0x03C1 # GREEK SMALL LETTER RHO +0xF2 0x03C2 # GREEK SMALL LETTER FINAL SIGMA +0xF3 0x03C3 # GREEK SMALL LETTER SIGMA +0xF4 0x03C4 # GREEK SMALL LETTER TAU +0xF5 0x03C5 # GREEK SMALL LETTER UPSILON +0xF6 0x03C6 # GREEK SMALL LETTER PHI +0xF7 0x03C7 # GREEK SMALL LETTER CHI +0xF8 0x03C8 # GREEK SMALL LETTER PSI +0xF9 0x03C9 # GREEK SMALL LETTER OMEGA +0xFA 0x03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA +0xFB 0x03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0xFC 0x03CC # GREEK SMALL LETTER OMICRON WITH TONOS +0xFD 0x03CD # GREEK SMALL LETTER UPSILON WITH TONOS +0xFE 0x03CE # GREEK SMALL LETTER OMEGA WITH TONOS ADDED freshlib/data/_encodings/_sources/8859-8.TXT Index: freshlib/data/_encodings/_sources/8859-8.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-8.TXT @@ -0,0 +1,259 @@ +# 8859-8.TXT +# Date: 2015-12-02 21:50:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-8:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 2000-Jan-03 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-8:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-8 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# 1.1 version updates to the published 8859-8:1999, correcting +# the mapping of 0xAF and adding mappings for LRM and RLM. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x00A5 # YEN SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x00D7 # MULTIPLICATION SIGN +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x00F7 # DIVISION SIGN +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC # VULGAR FRACTION ONE QUARTER +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS +0xDF 0x2017 # DOUBLE LOW LINE +0xE0 0x05D0 # HEBREW LETTER ALEF +0xE1 0x05D1 # HEBREW LETTER BET +0xE2 0x05D2 # HEBREW LETTER GIMEL +0xE3 0x05D3 # HEBREW LETTER DALET +0xE4 0x05D4 # HEBREW LETTER HE +0xE5 0x05D5 # HEBREW LETTER VAV +0xE6 0x05D6 # HEBREW LETTER ZAYIN +0xE7 0x05D7 # HEBREW LETTER HET +0xE8 0x05D8 # HEBREW LETTER TET +0xE9 0x05D9 # HEBREW LETTER YOD +0xEA 0x05DA # HEBREW LETTER FINAL KAF +0xEB 0x05DB # HEBREW LETTER KAF +0xEC 0x05DC # HEBREW LETTER LAMED +0xED 0x05DD # HEBREW LETTER FINAL MEM +0xEE 0x05DE # HEBREW LETTER MEM +0xEF 0x05DF # HEBREW LETTER FINAL NUN +0xF0 0x05E0 # HEBREW LETTER NUN +0xF1 0x05E1 # HEBREW LETTER SAMEKH +0xF2 0x05E2 # HEBREW LETTER AYIN +0xF3 0x05E3 # HEBREW LETTER FINAL PE +0xF4 0x05E4 # HEBREW LETTER PE +0xF5 0x05E5 # HEBREW LETTER FINAL TSADI +0xF6 0x05E6 # HEBREW LETTER TSADI +0xF7 0x05E7 # HEBREW LETTER QOF +0xF8 0x05E8 # HEBREW LETTER RESH +0xF9 0x05E9 # HEBREW LETTER SHIN +0xFA 0x05EA # HEBREW LETTER TAV +0xFD 0x200E # LEFT-TO-RIGHT MARK +0xFE 0x200F # RIGHT-TO-LEFT MARK + ADDED freshlib/data/_encodings/_sources/8859-9.TXT Index: freshlib/data/_encodings/_sources/8859-9.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/8859-9.TXT @@ -0,0 +1,296 @@ +# 8859-9.TXT +# Date: 2015-12-02 21:51:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: ISO/IEC 8859-9:1999 to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 1999 July 27 (header updated: 2015 December 02) +# Authors: Ken Whistler <ken@unicode.org> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-9:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-9 order. +# +# ISO/IEC 8859-9 is also equivalent to ISO-IR-148. +# +# Version history +# 1.0 version: updates 0.1 version by adding mappings for all +# control characters. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x00A1 # INVERTED EXCLAMATION MARK +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x00A5 # YEN SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x00AA # FEMININE ORDINAL INDICATOR +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x00BA # MASCULINE ORDINAL INDICATOR +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC # VULGAR FRACTION ONE QUARTER +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF # INVERTED QUESTION MARK +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x011E # LATIN CAPITAL LETTER G WITH BREVE +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE +0xDE 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x011F # LATIN SMALL LETTER G WITH BREVE +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x0131 # LATIN SMALL LETTER DOTLESS I +0xFE 0x015F # LATIN SMALL LETTER S WITH CEDILLA +0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS + + ADDED freshlib/data/_encodings/_sources/CP037.TXT Index: freshlib/data/_encodings/_sources/CP037.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP037.TXT @@ -0,0 +1,275 @@ +# +# Name: cp037_IBMUSCanada to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp037_IBMUSCanada code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp037_IBMUSCanada order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x009C #CONTROL +0x05 0x0009 #HORIZONTAL TABULATION +0x06 0x0086 #CONTROL +0x07 0x007F #DELETE +0x08 0x0097 #CONTROL +0x09 0x008D #CONTROL +0x0A 0x008E #CONTROL +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x009D #CONTROL +0x15 0x0085 #CONTROL +0x16 0x0008 #BACKSPACE +0x17 0x0087 #CONTROL +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x0092 #CONTROL +0x1B 0x008F #CONTROL +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0080 #CONTROL +0x21 0x0081 #CONTROL +0x22 0x0082 #CONTROL +0x23 0x0083 #CONTROL +0x24 0x0084 #CONTROL +0x25 0x000A #LINE FEED +0x26 0x0017 #END OF TRANSMISSION BLOCK +0x27 0x001B #ESCAPE +0x28 0x0088 #CONTROL +0x29 0x0089 #CONTROL +0x2A 0x008A #CONTROL +0x2B 0x008B #CONTROL +0x2C 0x008C #CONTROL +0x2D 0x0005 #ENQUIRY +0x2E 0x0006 #ACKNOWLEDGE +0x2F 0x0007 #BELL +0x30 0x0090 #CONTROL +0x31 0x0091 #CONTROL +0x32 0x0016 #SYNCHRONOUS IDLE +0x33 0x0093 #CONTROL +0x34 0x0094 #CONTROL +0x35 0x0095 #CONTROL +0x36 0x0096 #CONTROL +0x37 0x0004 #END OF TRANSMISSION +0x38 0x0098 #CONTROL +0x39 0x0099 #CONTROL +0x3A 0x009A #CONTROL +0x3B 0x009B #CONTROL +0x3C 0x0014 #DEVICE CONTROL FOUR +0x3D 0x0015 #NEGATIVE ACKNOWLEDGE +0x3E 0x009E #CONTROL +0x3F 0x001A #SUBSTITUTE +0x40 0x0020 #SPACE +0x41 0x00A0 #NO-BREAK SPACE +0x42 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x43 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0x44 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0x45 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0x46 0x00E3 #LATIN SMALL LETTER A WITH TILDE +0x47 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0x48 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0x49 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0x4A 0x00A2 #CENT SIGN +0x4B 0x002E #FULL STOP +0x4C 0x003C #LESS-THAN SIGN +0x4D 0x0028 #LEFT PARENTHESIS +0x4E 0x002B #PLUS SIGN +0x4F 0x007C #VERTICAL LINE +0x50 0x0026 #AMPERSAND +0x51 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0x52 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x53 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0x54 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0x55 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0x56 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x57 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0x58 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0x59 0x00DF #LATIN SMALL LETTER SHARP S (GERMAN) +0x5A 0x0021 #EXCLAMATION MARK +0x5B 0x0024 #DOLLAR SIGN +0x5C 0x002A #ASTERISK +0x5D 0x0029 #RIGHT PARENTHESIS +0x5E 0x003B #SEMICOLON +0x5F 0x00AC #NOT SIGN +0x60 0x002D #HYPHEN-MINUS +0x61 0x002F #SOLIDUS +0x62 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0x63 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x64 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0x65 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0x66 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE +0x67 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x68 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x69 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0x6A 0x00A6 #BROKEN BAR +0x6B 0x002C #COMMA +0x6C 0x0025 #PERCENT SIGN +0x6D 0x005F #LOW LINE +0x6E 0x003E #GREATER-THAN SIGN +0x6F 0x003F #QUESTION MARK +0x70 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0x71 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0x72 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0x73 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0x74 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0x75 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0x76 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0x77 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0x78 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE +0x79 0x0060 #GRAVE ACCENT +0x7A 0x003A #COLON +0x7B 0x0023 #NUMBER SIGN +0x7C 0x0040 #COMMERCIAL AT +0x7D 0x0027 #APOSTROPHE +0x7E 0x003D #EQUALS SIGN +0x7F 0x0022 #QUOTATION MARK +0x80 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0x81 0x0061 #LATIN SMALL LETTER A +0x82 0x0062 #LATIN SMALL LETTER B +0x83 0x0063 #LATIN SMALL LETTER C +0x84 0x0064 #LATIN SMALL LETTER D +0x85 0x0065 #LATIN SMALL LETTER E +0x86 0x0066 #LATIN SMALL LETTER F +0x87 0x0067 #LATIN SMALL LETTER G +0x88 0x0068 #LATIN SMALL LETTER H +0x89 0x0069 #LATIN SMALL LETTER I +0x8A 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8B 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8C 0x00F0 #LATIN SMALL LETTER ETH (ICELANDIC) +0x8D 0x00FD #LATIN SMALL LETTER Y WITH ACUTE +0x8E 0x00FE #LATIN SMALL LETTER THORN (ICELANDIC) +0x8F 0x00B1 #PLUS-MINUS SIGN +0x90 0x00B0 #DEGREE SIGN +0x91 0x006A #LATIN SMALL LETTER J +0x92 0x006B #LATIN SMALL LETTER K +0x93 0x006C #LATIN SMALL LETTER L +0x94 0x006D #LATIN SMALL LETTER M +0x95 0x006E #LATIN SMALL LETTER N +0x96 0x006F #LATIN SMALL LETTER O +0x97 0x0070 #LATIN SMALL LETTER P +0x98 0x0071 #LATIN SMALL LETTER Q +0x99 0x0072 #LATIN SMALL LETTER R +0x9A 0x00AA #FEMININE ORDINAL INDICATOR +0x9B 0x00BA #MASCULINE ORDINAL INDICATOR +0x9C 0x00E6 #LATIN SMALL LIGATURE AE +0x9D 0x00B8 #CEDILLA +0x9E 0x00C6 #LATIN CAPITAL LIGATURE AE +0x9F 0x00A4 #CURRENCY SIGN +0xA0 0x00B5 #MICRO SIGN +0xA1 0x007E #TILDE +0xA2 0x0073 #LATIN SMALL LETTER S +0xA3 0x0074 #LATIN SMALL LETTER T +0xA4 0x0075 #LATIN SMALL LETTER U +0xA5 0x0076 #LATIN SMALL LETTER V +0xA6 0x0077 #LATIN SMALL LETTER W +0xA7 0x0078 #LATIN SMALL LETTER X +0xA8 0x0079 #LATIN SMALL LETTER Y +0xA9 0x007A #LATIN SMALL LETTER Z +0xAA 0x00A1 #INVERTED EXCLAMATION MARK +0xAB 0x00BF #INVERTED QUESTION MARK +0xAC 0x00D0 #LATIN CAPITAL LETTER ETH (ICELANDIC) +0xAD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE +0xAE 0x00DE #LATIN CAPITAL LETTER THORN (ICELANDIC) +0xAF 0x00AE #REGISTERED SIGN +0xB0 0x005E #CIRCUMFLEX ACCENT +0xB1 0x00A3 #POUND SIGN +0xB2 0x00A5 #YEN SIGN +0xB3 0x00B7 #MIDDLE DOT +0xB4 0x00A9 #COPYRIGHT SIGN +0xB5 0x00A7 #SECTION SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00BC #VULGAR FRACTION ONE QUARTER +0xB8 0x00BD #VULGAR FRACTION ONE HALF +0xB9 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBA 0x005B #LEFT SQUARE BRACKET +0xBB 0x005D #RIGHT SQUARE BRACKET +0xBC 0x00AF #MACRON +0xBD 0x00A8 #DIAERESIS +0xBE 0x00B4 #ACUTE ACCENT +0xBF 0x00D7 #MULTIPLICATION SIGN +0xC0 0x007B #LEFT CURLY BRACKET +0xC1 0x0041 #LATIN CAPITAL LETTER A +0xC2 0x0042 #LATIN CAPITAL LETTER B +0xC3 0x0043 #LATIN CAPITAL LETTER C +0xC4 0x0044 #LATIN CAPITAL LETTER D +0xC5 0x0045 #LATIN CAPITAL LETTER E +0xC6 0x0046 #LATIN CAPITAL LETTER F +0xC7 0x0047 #LATIN CAPITAL LETTER G +0xC8 0x0048 #LATIN CAPITAL LETTER H +0xC9 0x0049 #LATIN CAPITAL LETTER I +0xCA 0x00AD #SOFT HYPHEN +0xCB 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xCC 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xCD 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xCE 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xCF 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xD0 0x007D #RIGHT CURLY BRACKET +0xD1 0x004A #LATIN CAPITAL LETTER J +0xD2 0x004B #LATIN CAPITAL LETTER K +0xD3 0x004C #LATIN CAPITAL LETTER L +0xD4 0x004D #LATIN CAPITAL LETTER M +0xD5 0x004E #LATIN CAPITAL LETTER N +0xD6 0x004F #LATIN CAPITAL LETTER O +0xD7 0x0050 #LATIN CAPITAL LETTER P +0xD8 0x0051 #LATIN CAPITAL LETTER Q +0xD9 0x0052 #LATIN CAPITAL LETTER R +0xDA 0x00B9 #SUPERSCRIPT ONE +0xDB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xDC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xDD 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xDE 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xDF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS +0xE0 0x005C #REVERSE SOLIDUS +0xE1 0x00F7 #DIVISION SIGN +0xE2 0x0053 #LATIN CAPITAL LETTER S +0xE3 0x0054 #LATIN CAPITAL LETTER T +0xE4 0x0055 #LATIN CAPITAL LETTER U +0xE5 0x0056 #LATIN CAPITAL LETTER V +0xE6 0x0057 #LATIN CAPITAL LETTER W +0xE7 0x0058 #LATIN CAPITAL LETTER X +0xE8 0x0059 #LATIN CAPITAL LETTER Y +0xE9 0x005A #LATIN CAPITAL LETTER Z +0xEA 0x00B2 #SUPERSCRIPT TWO +0xEB 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xEC 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xED 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE +0xEE 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xEF 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xF0 0x0030 #DIGIT ZERO +0xF1 0x0031 #DIGIT ONE +0xF2 0x0032 #DIGIT TWO +0xF3 0x0033 #DIGIT THREE +0xF4 0x0034 #DIGIT FOUR +0xF5 0x0035 #DIGIT FIVE +0xF6 0x0036 #DIGIT SIX +0xF7 0x0037 #DIGIT SEVEN +0xF8 0x0038 #DIGIT EIGHT +0xF9 0x0039 #DIGIT NINE +0xFA 0x00B3 #SUPERSCRIPT THREE +0xFB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xFC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xFD 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xFE 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xFF 0x009F #CONTROL + + ADDED freshlib/data/_encodings/_sources/CP1006.TXT Index: freshlib/data/_encodings/_sources/CP1006.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1006.TXT @@ -0,0 +1,302 @@ +# +# Name: IBM CP1006 to Unicode +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler <kenw@sybase.com> +# +# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# IBM CP1006 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the CP1006 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in IBM CP1006 order. +# +# Version history +# 1.0 version new. +# +# Updated versions of this file may be found in: +# <ftp://ftp.unicode.org/Public/MAPPINGS/> +# +# Any comments or problems, contact <errata@unicode.org> +# Please note that <errata@unicode.org> is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # <control> +0x81 0x0081 # <control> +0x82 0x0082 # <control> +0x83 0x0083 # <control> +0x84 0x0084 # <control> +0x85 0x0085 # <control> +0x86 0x0086 # <control> +0x87 0x0087 # <control> +0x88 0x0088 # <control> +0x89 0x0089 # <control> +0x8A 0x008A # <control> +0x8B 0x008B # <control> +0x8C 0x008C # <control> +0x8D 0x008D # <control> +0x8E 0x008E # <control> +0x8F 0x008F # <control> +0x90 0x0090 # <control> +0x91 0x0091 # <control> +0x92 0x0092 # <control> +0x93 0x0093 # <control> +0x94 0x0094 # <control> +0x95 0x0095 # <control> +0x96 0x0096 # <control> +0x97 0x0097 # <control> +0x98 0x0098 # <control> +0x99 0x0099 # <control> +0x9A 0x009A # <control> +0x9B 0x009B # <control> +0x9C 0x009C # <control> +0x9D 0x009D # <control> +0x9E 0x009E # <control> +0x9F 0x009F # <control> +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x06F0 # EXTENDED ARABIC-INDIC DIGIT ZERO +0xA2 0x06F1 # EXTENDED ARABIC-INDIC DIGIT ONE +0xA3 0x06F2 # EXTENDED ARABIC-INDIC DIGIT TWO +0xA4 0x06F3 # EXTENDED ARABIC-INDIC DIGIT THREE +0xA5 0x06F4 # EXTENDED ARABIC-INDIC DIGIT FOUR +0xA6 0x06F5 # EXTENDED ARABIC-INDIC DIGIT FIVE +0xA7 0x06F6 # EXTENDED ARABIC-INDIC DIGIT SIX +0xA8 0x06F7 # EXTENDED ARABIC-INDIC DIGIT SEVEN +0xA9 0x06F8 # EXTENDED ARABIC-INDIC DIGIT EIGHT +0xAA 0x06F9 # EXTENDED ARABIC-INDIC DIGIT NINE +0xAB 0x060C # ARABIC COMMA +0xAC 0x061B # ARABIC SEMICOLON +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x061F # ARABIC QUESTION MARK +0xAF 0xFE81 # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM +0xB0 0xFE8D # ARABIC LETTER ALEF ISOLATED FORM +0xB1 0xFE8E # ARABIC LETTER ALEF FINAL FORM +0xB2 0xFE8E # ARABIC LETTER ALEF FINAL FORM +0xB3 0xFE8F # ARABIC LETTER BEH ISOLATED FORM +0xB4 0xFE91 # ARABIC LETTER BEH INITIAL FORM +0xB5 0xFB56 # ARABIC LETTER PEH ISOLATED FORM +0xB6 0xFB58 # ARABIC LETTER PEH INITIAL FORM +0xB7 0xFE93 # ARABIC LETTER TEH MARBUTA ISOLATED FORM +0xB8 0xFE95 # ARABIC LETTER TEH ISOLATED FORM +0xB9 0xFE97 # ARABIC LETTER TEH INITIAL FORM +0xBA 0xFB66 # ARABIC LETTER TTEH ISOLATED FORM +0xBB 0xFB68 # ARABIC LETTER TTEH INITIAL FORM +0xBC 0xFE99 # ARABIC LETTER THEH ISOLATED FORM +0xBD 0xFE9B # ARABIC LETTER THEH INITIAL FORM +0xBE 0xFE9D # ARABIC LETTER JEEM ISOLATED FORM +0xBF 0xFE9F # ARABIC LETTER JEEM INITIAL FORM +0xC0 0xFB7A # ARABIC LETTER TCHEH ISOLATED FORM +0xC1 0xFB7C # ARABIC LETTER TCHEH INITIAL FORM +0xC2 0xFEA1 # ARABIC LETTER HAH ISOLATED FORM +0xC3 0xFEA3 # ARABIC LETTER HAH INITIAL FORM +0xC4 0xFEA5 # ARABIC LETTER KHAH ISOLATED FORM +0xC5 0xFEA7 # ARABIC LETTER KHAH INITIAL FORM +0xC6 0xFEA9 # ARABIC LETTER DAL ISOLATED FORM +0xC7 0xFB84 # ARABIC LETTER DAHAL ISOLATED FORMN +0xC8 0xFEAB # ARABIC LETTER THAL ISOLATED FORM +0xC9 0xFEAD # ARABIC LETTER REH ISOLATED FORM +0xCA 0xFB8C # ARABIC LETTER RREH ISOLATED FORM +0xCB 0xFEAF # ARABIC LETTER ZAIN ISOLATED FORM +0xCC 0xFB8A # ARABIC LETTER JEH ISOLATED FORM +0xCD 0xFEB1 # ARABIC LETTER SEEN ISOLATED FORM +0xCE 0xFEB3 # ARABIC LETTER SEEN INITIAL FORM +0xCF 0xFEB5 # ARABIC LETTER SHEEN ISOLATED FORM +0xD0 0xFEB7 # ARABIC LETTER SHEEN INITIAL FORM +0xD1 0xFEB9 # ARABIC LETTER SAD ISOLATED FORM +0xD2 0xFEBB # ARABIC LETTER SAD INITIAL FORM +0xD3 0xFEBD # ARABIC LETTER DAD ISOLATED FORM +0xD4 0xFEBF # ARABIC LETTER DAD INITIAL FORM +0xD5 0xFEC1 # ARABIC LETTER TAH ISOLATED FORM +0xD6 0xFEC5 # ARABIC LETTER ZAH ISOLATED FORM +0xD7 0xFEC9 # ARABIC LETTER AIN ISOLATED FORM +0xD8 0xFECA # ARABIC LETTER AIN FINAL FORM +0xD9 0xFECB # ARABIC LETTER AIN INITIAL FORM +0xDA 0xFECC # ARABIC LETTER AIN MEDIAL FORM +0xDB 0xFECD # ARABIC LETTER GHAIN ISOLATED FORM +0xDC 0xFECE # ARABIC LETTER GHAIN FINAL FORM +0xDD 0xFECF # ARABIC LETTER GHAIN INITIAL FORM +0xDE 0xFED0 # ARABIC LETTER GHAIN MEDIAL FORM +0xDF 0xFED1 # ARABIC LETTER FEH ISOLATED FORM +0xE0 0xFED3 # ARABIC LETTER FEH INITIAL FORM +0xE1 0xFED5 # ARABIC LETTER QAF ISOLATED FORM +0xE2 0xFED7 # ARABIC LETTER QAF INITIAL FORM +0xE3 0xFED9 # ARABIC LETTER KAF ISOLATED FORM +0xE4 0xFEDB # ARABIC LETTER KAF INITIAL FORM +0xE5 0xFB92 # ARABIC LETTER GAF ISOLATED FORM +0xE6 0xFB94 # ARABIC LETTER GAF INITIAL FORM +0xE7 0xFEDD # ARABIC LETTER LAM ISOLATED FORM +0xE8 0xFEDF # ARABIC LETTER LAM INITIAL FORM +0xE9 0xFEE0 # ARABIC LETTER LAM MEDIAL FORM +0xEA 0xFEE1 # ARABIC LETTER MEEM ISOLATED FORM +0xEB 0xFEE3 # ARABIC LETTER MEEM INITIAL FORM +0xEC 0xFB9E # ARABIC LETTER NOON GHUNNA ISOLATED FORM +0xED 0xFEE5 # ARABIC LETTER NOON ISOLATED FORM +0xEE 0xFEE7 # ARABIC LETTER NOON INITIAL FORM +0xEF 0xFE85 # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM +0xF0 0xFEED # ARABIC LETTER WAW ISOLATED FORM +0xF1 0xFBA6 # ARABIC LETTER HEH GOAL ISOLATED FORM +0xF2 0xFBA8 # ARABIC LETTER HEH GOAL INITIAL FORM +0xF3 0xFBA9 # ARABIC LETTER HEH GOAL MEDIAL FORM +0xF4 0xFBAA # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM +0xF5 0xFE80 # ARABIC LETTER HAMZA ISOLATED FORM +0xF6 0xFE89 # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM +0xF7 0xFE8A # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM +0xF8 0xFE8B # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM +0xF9 0xFEF1 # ARABIC LETTER YEH ISOLATED FORM +0xFA 0xFEF2 # ARABIC LETTER YEH FINAL FORM +0xFB 0xFEF3 # ARABIC LETTER YEH INITIAL FORM +0xFC 0xFBB0 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM +0xFD 0xFBAE # ARABIC LETTER YEH BARREE ISOLATED FORM +0xFE 0xFE7C # ARABIC SHADDA ISOLATED FORM +0xFF 0xFE7D # ARABIC SHADDA MEDIAL FORM ADDED freshlib/data/_encodings/_sources/CP1026.TXT Index: freshlib/data/_encodings/_sources/CP1026.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1026.TXT @@ -0,0 +1,275 @@ +# +# Name: cp1026_IBMLatin5Turkish to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1026_IBMLatin5Turkish code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1026_IBMLatin5Turkish order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x009C #CONTROL +0x05 0x0009 #HORIZONTAL TABULATION +0x06 0x0086 #CONTROL +0x07 0x007F #DELETE +0x08 0x0097 #CONTROL +0x09 0x008D #CONTROL +0x0A 0x008E #CONTROL +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x009D #CONTROL +0x15 0x0085 #CONTROL +0x16 0x0008 #BACKSPACE +0x17 0x0087 #CONTROL +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x0092 #CONTROL +0x1B 0x008F #CONTROL +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0080 #CONTROL +0x21 0x0081 #CONTROL +0x22 0x0082 #CONTROL +0x23 0x0083 #CONTROL +0x24 0x0084 #CONTROL +0x25 0x000A #LINE FEED +0x26 0x0017 #END OF TRANSMISSION BLOCK +0x27 0x001B #ESCAPE +0x28 0x0088 #CONTROL +0x29 0x0089 #CONTROL +0x2A 0x008A #CONTROL +0x2B 0x008B #CONTROL +0x2C 0x008C #CONTROL +0x2D 0x0005 #ENQUIRY +0x2E 0x0006 #ACKNOWLEDGE +0x2F 0x0007 #BELL +0x30 0x0090 #CONTROL +0x31 0x0091 #CONTROL +0x32 0x0016 #SYNCHRONOUS IDLE +0x33 0x0093 #CONTROL +0x34 0x0094 #CONTROL +0x35 0x0095 #CONTROL +0x36 0x0096 #CONTROL +0x37 0x0004 #END OF TRANSMISSION +0x38 0x0098 #CONTROL +0x39 0x0099 #CONTROL +0x3A 0x009A #CONTROL +0x3B 0x009B #CONTROL +0x3C 0x0014 #DEVICE CONTROL FOUR +0x3D 0x0015 #NEGATIVE ACKNOWLEDGE +0x3E 0x009E #CONTROL +0x3F 0x001A #SUBSTITUTE +0x40 0x0020 #SPACE +0x41 0x00A0 #NO-BREAK SPACE +0x42 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x43 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0x44 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0x45 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0x46 0x00E3 #LATIN SMALL LETTER A WITH TILDE +0x47 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0x48 0x007B #LEFT CURLY BRACKET +0x49 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0x4A 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x4B 0x002E #FULL STOP +0x4C 0x003C #LESS-THAN SIGN +0x4D 0x0028 #LEFT PARENTHESIS +0x4E 0x002B #PLUS SIGN +0x4F 0x0021 #EXCLAMATION MARK +0x50 0x0026 #AMPERSAND +0x51 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0x52 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x53 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0x54 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0x55 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0x56 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x57 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0x58 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0x59 0x00DF #LATIN SMALL LETTER SHARP S (GERMAN) +0x5A 0x011E #LATIN CAPITAL LETTER G WITH BREVE +0x5B 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE +0x5C 0x002A #ASTERISK +0x5D 0x0029 #RIGHT PARENTHESIS +0x5E 0x003B #SEMICOLON +0x5F 0x005E #CIRCUMFLEX ACCENT +0x60 0x002D #HYPHEN-MINUS +0x61 0x002F #SOLIDUS +0x62 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0x63 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x64 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0x65 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0x66 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE +0x67 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x68 0x005B #LEFT SQUARE BRACKET +0x69 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0x6A 0x015F #LATIN SMALL LETTER S WITH CEDILLA +0x6B 0x002C #COMMA +0x6C 0x0025 #PERCENT SIGN +0x6D 0x005F #LOW LINE +0x6E 0x003E #GREATER-THAN SIGN +0x6F 0x003F #QUESTION MARK +0x70 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0x71 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0x72 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0x73 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0x74 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0x75 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0x76 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0x77 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0x78 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE +0x79 0x0131 #LATIN SMALL LETTER DOTLESS I +0x7A 0x003A #COLON +0x7B 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x7C 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA +0x7D 0x0027 #APOSTROPHE +0x7E 0x003D #EQUALS SIGN +0x7F 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0x80 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0x81 0x0061 #LATIN SMALL LETTER A +0x82 0x0062 #LATIN SMALL LETTER B +0x83 0x0063 #LATIN SMALL LETTER C +0x84 0x0064 #LATIN SMALL LETTER D +0x85 0x0065 #LATIN SMALL LETTER E +0x86 0x0066 #LATIN SMALL LETTER F +0x87 0x0067 #LATIN SMALL LETTER G +0x88 0x0068 #LATIN SMALL LETTER H +0x89 0x0069 #LATIN SMALL LETTER I +0x8A 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8B 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8C 0x007D #RIGHT CURLY BRACKET +0x8D 0x0060 #GRAVE ACCENT +0x8E 0x00A6 #BROKEN BAR +0x8F 0x00B1 #PLUS-MINUS SIGN +0x90 0x00B0 #DEGREE SIGN +0x91 0x006A #LATIN SMALL LETTER J +0x92 0x006B #LATIN SMALL LETTER K +0x93 0x006C #LATIN SMALL LETTER L +0x94 0x006D #LATIN SMALL LETTER M +0x95 0x006E #LATIN SMALL LETTER N +0x96 0x006F #LATIN SMALL LETTER O +0x97 0x0070 #LATIN SMALL LETTER P +0x98 0x0071 #LATIN SMALL LETTER Q +0x99 0x0072 #LATIN SMALL LETTER R +0x9A 0x00AA #FEMININE ORDINAL INDICATOR +0x9B 0x00BA #MASCULINE ORDINAL INDICATOR +0x9C 0x00E6 #LATIN SMALL LIGATURE AE +0x9D 0x00B8 #CEDILLA +0x9E 0x00C6 #LATIN CAPITAL LIGATURE AE +0x9F 0x00A4 #CURRENCY SIGN +0xA0 0x00B5 #MICRO SIGN +0xA1 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xA2 0x0073 #LATIN SMALL LETTER S +0xA3 0x0074 #LATIN SMALL LETTER T +0xA4 0x0075 #LATIN SMALL LETTER U +0xA5 0x0076 #LATIN SMALL LETTER V +0xA6 0x0077 #LATIN SMALL LETTER W +0xA7 0x0078 #LATIN SMALL LETTER X +0xA8 0x0079 #LATIN SMALL LETTER Y +0xA9 0x007A #LATIN SMALL LETTER Z +0xAA 0x00A1 #INVERTED EXCLAMATION MARK +0xAB 0x00BF #INVERTED QUESTION MARK +0xAC 0x005D #RIGHT SQUARE BRACKET +0xAD 0x0024 #DOLLAR SIGN +0xAE 0x0040 #COMMERCIAL AT +0xAF 0x00AE #REGISTERED SIGN +0xB0 0x00A2 #CENT SIGN +0xB1 0x00A3 #POUND SIGN +0xB2 0x00A5 #YEN SIGN +0xB3 0x00B7 #MIDDLE DOT +0xB4 0x00A9 #COPYRIGHT SIGN +0xB5 0x00A7 #SECTION SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00BC #VULGAR FRACTION ONE QUARTER +0xB8 0x00BD #VULGAR FRACTION ONE HALF +0xB9 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBA 0x00AC #NOT SIGN +0xBB 0x007C #VERTICAL LINE +0xBC 0x00AF #MACRON +0xBD 0x00A8 #DIAERESIS +0xBE 0x00B4 #ACUTE ACCENT +0xBF 0x00D7 #MULTIPLICATION SIGN +0xC0 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xC1 0x0041 #LATIN CAPITAL LETTER A +0xC2 0x0042 #LATIN CAPITAL LETTER B +0xC3 0x0043 #LATIN CAPITAL LETTER C +0xC4 0x0044 #LATIN CAPITAL LETTER D +0xC5 0x0045 #LATIN CAPITAL LETTER E +0xC6 0x0046 #LATIN CAPITAL LETTER F +0xC7 0x0047 #LATIN CAPITAL LETTER G +0xC8 0x0048 #LATIN CAPITAL LETTER H +0xC9 0x0049 #LATIN CAPITAL LETTER I +0xCA 0x00AD #SOFT HYPHEN +0xCB 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xCC 0x007E #TILDE +0xCD 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xCE 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xCF 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xD0 0x011F #LATIN SMALL LETTER G WITH BREVE +0xD1 0x004A #LATIN CAPITAL LETTER J +0xD2 0x004B #LATIN CAPITAL LETTER K +0xD3 0x004C #LATIN CAPITAL LETTER L +0xD4 0x004D #LATIN CAPITAL LETTER M +0xD5 0x004E #LATIN CAPITAL LETTER N +0xD6 0x004F #LATIN CAPITAL LETTER O +0xD7 0x0050 #LATIN CAPITAL LETTER P +0xD8 0x0051 #LATIN CAPITAL LETTER Q +0xD9 0x0052 #LATIN CAPITAL LETTER R +0xDA 0x00B9 #SUPERSCRIPT ONE +0xDB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xDC 0x005C #REVERSE SOLIDUS +0xDD 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xDE 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xDF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS +0xE0 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xE1 0x00F7 #DIVISION SIGN +0xE2 0x0053 #LATIN CAPITAL LETTER S +0xE3 0x0054 #LATIN CAPITAL LETTER T +0xE4 0x0055 #LATIN CAPITAL LETTER U +0xE5 0x0056 #LATIN CAPITAL LETTER V +0xE6 0x0057 #LATIN CAPITAL LETTER W +0xE7 0x0058 #LATIN CAPITAL LETTER X +0xE8 0x0059 #LATIN CAPITAL LETTER Y +0xE9 0x005A #LATIN CAPITAL LETTER Z +0xEA 0x00B2 #SUPERSCRIPT TWO +0xEB 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xEC 0x0023 #NUMBER SIGN +0xED 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE +0xEE 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xEF 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xF0 0x0030 #DIGIT ZERO +0xF1 0x0031 #DIGIT ONE +0xF2 0x0032 #DIGIT TWO +0xF3 0x0033 #DIGIT THREE +0xF4 0x0034 #DIGIT FOUR +0xF5 0x0035 #DIGIT FIVE +0xF6 0x0036 #DIGIT SIX +0xF7 0x0037 #DIGIT SEVEN +0xF8 0x0038 #DIGIT EIGHT +0xF9 0x0039 #DIGIT NINE +0xFA 0x00B3 #SUPERSCRIPT THREE +0xFB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xFC 0x0022 #QUOTATION MARK +0xFD 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xFE 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xFF 0x009F #CONTROL + + ADDED freshlib/data/_encodings/_sources/CP1250.TXT Index: freshlib/data/_encodings/_sources/CP1250.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1250.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1250 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1250 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1250 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 #UNDEFINED +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 #UNDEFINED +0x89 0x2030 #PER MILLE SIGN +0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C 0x015A #LATIN CAPITAL LETTER S WITH ACUTE +0x8D 0x0164 #LATIN CAPITAL LETTER T WITH CARON +0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON +0x8F 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 #UNDEFINED +0x99 0x2122 #TRADE MARK SIGN +0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C 0x015B #LATIN SMALL LETTER S WITH ACUTE +0x9D 0x0165 #LATIN SMALL LETTER T WITH CARON +0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON +0x9F 0x017A #LATIN SMALL LETTER Z WITH ACUTE +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x02C7 #CARON +0xA2 0x02D8 #BREVE +0xA3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x02DB #OGONEK +0xB3 0x0142 #LATIN SMALL LETTER L WITH STROKE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00B8 #CEDILLA +0xB9 0x0105 #LATIN SMALL LETTER A WITH OGONEK +0xBA 0x015F #LATIN SMALL LETTER S WITH CEDILLA +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x013D #LATIN CAPITAL LETTER L WITH CARON +0xBD 0x02DD #DOUBLE ACUTE ACCENT +0xBE 0x013E #LATIN SMALL LETTER L WITH CARON +0xBF 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE +0xC0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE +0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE +0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE +0xC6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE +0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x010C #LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK +0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x011A #LATIN CAPITAL LETTER E WITH CARON +0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x010E #LATIN CAPITAL LETTER D WITH CARON +0xD0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE +0xD2 0x0147 #LATIN CAPITAL LETTER N WITH CARON +0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 #MULTIPLICATION SIGN +0xD8 0x0158 #LATIN CAPITAL LETTER R WITH CARON +0xD9 0x016E #LATIN CAPITAL LETTER U WITH RING ABOVE +0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA +0xDF 0x00DF #LATIN SMALL LETTER SHARP S +0xE0 0x0155 #LATIN SMALL LETTER R WITH ACUTE +0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x0103 #LATIN SMALL LETTER A WITH BREVE +0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x013A #LATIN SMALL LETTER L WITH ACUTE +0xE6 0x0107 #LATIN SMALL LETTER C WITH ACUTE +0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x010D #LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xEA 0x0119 #LATIN SMALL LETTER E WITH OGONEK +0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x011B #LATIN SMALL LETTER E WITH CARON +0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x010F #LATIN SMALL LETTER D WITH CARON +0xF0 0x0111 #LATIN SMALL LETTER D WITH STROKE +0xF1 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0xF2 0x0148 #LATIN SMALL LETTER N WITH CARON +0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE +0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 #DIVISION SIGN +0xF8 0x0159 #LATIN SMALL LETTER R WITH CARON +0xF9 0x016F #LATIN SMALL LETTER U WITH RING ABOVE +0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xFB 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE +0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x0163 #LATIN SMALL LETTER T WITH CEDILLA +0xFF 0x02D9 #DOT ABOVE ADDED freshlib/data/_encodings/_sources/CP1251.TXT Index: freshlib/data/_encodings/_sources/CP1251.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1251.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1251 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1251 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1251 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x0402 #CYRILLIC CAPITAL LETTER DJE +0x81 0x0403 #CYRILLIC CAPITAL LETTER GJE +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0453 #CYRILLIC SMALL LETTER GJE +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 0x20AC #EURO SIGN +0x89 0x2030 #PER MILLE SIGN +0x8A 0x0409 #CYRILLIC CAPITAL LETTER LJE +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C 0x040A #CYRILLIC CAPITAL LETTER NJE +0x8D 0x040C #CYRILLIC CAPITAL LETTER KJE +0x8E 0x040B #CYRILLIC CAPITAL LETTER TSHE +0x8F 0x040F #CYRILLIC CAPITAL LETTER DZHE +0x90 0x0452 #CYRILLIC SMALL LETTER DJE +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 #UNDEFINED +0x99 0x2122 #TRADE MARK SIGN +0x9A 0x0459 #CYRILLIC SMALL LETTER LJE +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C 0x045A #CYRILLIC SMALL LETTER NJE +0x9D 0x045C #CYRILLIC SMALL LETTER KJE +0x9E 0x045B #CYRILLIC SMALL LETTER TSHE +0x9F 0x045F #CYRILLIC SMALL LETTER DZHE +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x040E #CYRILLIC CAPITAL LETTER SHORT U +0xA2 0x045E #CYRILLIC SMALL LETTER SHORT U +0xA3 0x0408 #CYRILLIC CAPITAL LETTER JE +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x0401 #CYRILLIC CAPITAL LETTER IO +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x0407 #CYRILLIC CAPITAL LETTER YI +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0xB3 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0xB4 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x0451 #CYRILLIC SMALL LETTER IO +0xB9 0x2116 #NUMERO SIGN +0xBA 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x0458 #CYRILLIC SMALL LETTER JE +0xBD 0x0405 #CYRILLIC CAPITAL LETTER DZE +0xBE 0x0455 #CYRILLIC SMALL LETTER DZE +0xBF 0x0457 #CYRILLIC SMALL LETTER YI +0xC0 0x0410 #CYRILLIC CAPITAL LETTER A +0xC1 0x0411 #CYRILLIC CAPITAL LETTER BE +0xC2 0x0412 #CYRILLIC CAPITAL LETTER VE +0xC3 0x0413 #CYRILLIC CAPITAL LETTER GHE +0xC4 0x0414 #CYRILLIC CAPITAL LETTER DE +0xC5 0x0415 #CYRILLIC CAPITAL LETTER IE +0xC6 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0xC7 0x0417 #CYRILLIC CAPITAL LETTER ZE +0xC8 0x0418 #CYRILLIC CAPITAL LETTER I +0xC9 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0xCA 0x041A #CYRILLIC CAPITAL LETTER KA +0xCB 0x041B #CYRILLIC CAPITAL LETTER EL +0xCC 0x041C #CYRILLIC CAPITAL LETTER EM +0xCD 0x041D #CYRILLIC CAPITAL LETTER EN +0xCE 0x041E #CYRILLIC CAPITAL LETTER O +0xCF 0x041F #CYRILLIC CAPITAL LETTER PE +0xD0 0x0420 #CYRILLIC CAPITAL LETTER ER +0xD1 0x0421 #CYRILLIC CAPITAL LETTER ES +0xD2 0x0422 #CYRILLIC CAPITAL LETTER TE +0xD3 0x0423 #CYRILLIC CAPITAL LETTER U +0xD4 0x0424 #CYRILLIC CAPITAL LETTER EF +0xD5 0x0425 #CYRILLIC CAPITAL LETTER HA +0xD6 0x0426 #CYRILLIC CAPITAL LETTER TSE +0xD7 0x0427 #CYRILLIC CAPITAL LETTER CHE +0xD8 0x0428 #CYRILLIC CAPITAL LETTER SHA +0xD9 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0xDA 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN +0xDB 0x042B #CYRILLIC CAPITAL LETTER YERU +0xDC 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0xDD 0x042D #CYRILLIC CAPITAL LETTER E +0xDE 0x042E #CYRILLIC CAPITAL LETTER YU +0xDF 0x042F #CYRILLIC CAPITAL LETTER YA +0xE0 0x0430 #CYRILLIC SMALL LETTER A +0xE1 0x0431 #CYRILLIC SMALL LETTER BE +0xE2 0x0432 #CYRILLIC SMALL LETTER VE +0xE3 0x0433 #CYRILLIC SMALL LETTER GHE +0xE4 0x0434 #CYRILLIC SMALL LETTER DE +0xE5 0x0435 #CYRILLIC SMALL LETTER IE +0xE6 0x0436 #CYRILLIC SMALL LETTER ZHE +0xE7 0x0437 #CYRILLIC SMALL LETTER ZE +0xE8 0x0438 #CYRILLIC SMALL LETTER I +0xE9 0x0439 #CYRILLIC SMALL LETTER SHORT I +0xEA 0x043A #CYRILLIC SMALL LETTER KA +0xEB 0x043B #CYRILLIC SMALL LETTER EL +0xEC 0x043C #CYRILLIC SMALL LETTER EM +0xED 0x043D #CYRILLIC SMALL LETTER EN +0xEE 0x043E #CYRILLIC SMALL LETTER O +0xEF 0x043F #CYRILLIC SMALL LETTER PE +0xF0 0x0440 #CYRILLIC SMALL LETTER ER +0xF1 0x0441 #CYRILLIC SMALL LETTER ES +0xF2 0x0442 #CYRILLIC SMALL LETTER TE +0xF3 0x0443 #CYRILLIC SMALL LETTER U +0xF4 0x0444 #CYRILLIC SMALL LETTER EF +0xF5 0x0445 #CYRILLIC SMALL LETTER HA +0xF6 0x0446 #CYRILLIC SMALL LETTER TSE +0xF7 0x0447 #CYRILLIC SMALL LETTER CHE +0xF8 0x0448 #CYRILLIC SMALL LETTER SHA +0xF9 0x0449 #CYRILLIC SMALL LETTER SHCHA +0xFA 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0xFB 0x044B #CYRILLIC SMALL LETTER YERU +0xFC 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0xFD 0x044D #CYRILLIC SMALL LETTER E +0xFE 0x044E #CYRILLIC SMALL LETTER YU +0xFF 0x044F #CYRILLIC SMALL LETTER YA ADDED freshlib/data/_encodings/_sources/CP1252.TXT Index: freshlib/data/_encodings/_sources/CP1252.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1252.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1252 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1252 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1252 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT +0x89 0x2030 #PER MILLE SIGN +0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C 0x0152 #LATIN CAPITAL LIGATURE OE +0x8D #UNDEFINED +0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON +0x8F #UNDEFINED +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 0x02DC #SMALL TILDE +0x99 0x2122 #TRADE MARK SIGN +0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C 0x0153 #LATIN SMALL LIGATURE OE +0x9D #UNDEFINED +0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON +0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x00A1 #INVERTED EXCLAMATION MARK +0xA2 0x00A2 #CENT SIGN +0xA3 0x00A3 #POUND SIGN +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x00A5 #YEN SIGN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x00AA #FEMININE ORDINAL INDICATOR +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x00AF #MACRON +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00B8 #CEDILLA +0xB9 0x00B9 #SUPERSCRIPT ONE +0xBA 0x00BA #MASCULINE ORDINAL INDICATOR +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC #VULGAR FRACTION ONE QUARTER +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF #INVERTED QUESTION MARK +0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 #LATIN CAPITAL LETTER AE +0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x00D0 #LATIN CAPITAL LETTER ETH +0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 #MULTIPLICATION SIGN +0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x00DE #LATIN CAPITAL LETTER THORN +0xDF 0x00DF #LATIN SMALL LETTER SHARP S +0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 #LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 #LATIN SMALL LETTER AE +0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x00F0 #LATIN SMALL LETTER ETH +0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 #DIVISION SIGN +0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x00FE #LATIN SMALL LETTER THORN +0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS ADDED freshlib/data/_encodings/_sources/CP1253.TXT Index: freshlib/data/_encodings/_sources/CP1253.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1253.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1253 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1253 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1253 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 #UNDEFINED +0x89 0x2030 #PER MILLE SIGN +0x8A #UNDEFINED +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C #UNDEFINED +0x8D #UNDEFINED +0x8E #UNDEFINED +0x8F #UNDEFINED +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 #UNDEFINED +0x99 0x2122 #TRADE MARK SIGN +0x9A #UNDEFINED +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C #UNDEFINED +0x9D #UNDEFINED +0x9E #UNDEFINED +0x9F #UNDEFINED +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x0385 #GREEK DIALYTIKA TONOS +0xA2 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS +0xA3 0x00A3 #POUND SIGN +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x00A5 #YEN SIGN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA #UNDEFINED +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x2015 #HORIZONTAL BAR +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x0384 #GREEK TONOS +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS +0xB9 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS +0xBA 0x038A #GREEK CAPITAL LETTER IOTA WITH TONOS +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x038C #GREEK CAPITAL LETTER OMICRON WITH TONOS +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x038E #GREEK CAPITAL LETTER UPSILON WITH TONOS +0xBF 0x038F #GREEK CAPITAL LETTER OMEGA WITH TONOS +0xC0 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0xC1 0x0391 #GREEK CAPITAL LETTER ALPHA +0xC2 0x0392 #GREEK CAPITAL LETTER BETA +0xC3 0x0393 #GREEK CAPITAL LETTER GAMMA +0xC4 0x0394 #GREEK CAPITAL LETTER DELTA +0xC5 0x0395 #GREEK CAPITAL LETTER EPSILON +0xC6 0x0396 #GREEK CAPITAL LETTER ZETA +0xC7 0x0397 #GREEK CAPITAL LETTER ETA +0xC8 0x0398 #GREEK CAPITAL LETTER THETA +0xC9 0x0399 #GREEK CAPITAL LETTER IOTA +0xCA 0x039A #GREEK CAPITAL LETTER KAPPA +0xCB 0x039B #GREEK CAPITAL LETTER LAMDA +0xCC 0x039C #GREEK CAPITAL LETTER MU +0xCD 0x039D #GREEK CAPITAL LETTER NU +0xCE 0x039E #GREEK CAPITAL LETTER XI +0xCF 0x039F #GREEK CAPITAL LETTER OMICRON +0xD0 0x03A0 #GREEK CAPITAL LETTER PI +0xD1 0x03A1 #GREEK CAPITAL LETTER RHO +0xD2 #UNDEFINED +0xD3 0x03A3 #GREEK CAPITAL LETTER SIGMA +0xD4 0x03A4 #GREEK CAPITAL LETTER TAU +0xD5 0x03A5 #GREEK CAPITAL LETTER UPSILON +0xD6 0x03A6 #GREEK CAPITAL LETTER PHI +0xD7 0x03A7 #GREEK CAPITAL LETTER CHI +0xD8 0x03A8 #GREEK CAPITAL LETTER PSI +0xD9 0x03A9 #GREEK CAPITAL LETTER OMEGA +0xDA 0x03AA #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0xDB 0x03AB #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0xDC 0x03AC #GREEK SMALL LETTER ALPHA WITH TONOS +0xDD 0x03AD #GREEK SMALL LETTER EPSILON WITH TONOS +0xDE 0x03AE #GREEK SMALL LETTER ETA WITH TONOS +0xDF 0x03AF #GREEK SMALL LETTER IOTA WITH TONOS +0xE0 0x03B0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0xE1 0x03B1 #GREEK SMALL LETTER ALPHA +0xE2 0x03B2 #GREEK SMALL LETTER BETA +0xE3 0x03B3 #GREEK SMALL LETTER GAMMA +0xE4 0x03B4 #GREEK SMALL LETTER DELTA +0xE5 0x03B5 #GREEK SMALL LETTER EPSILON +0xE6 0x03B6 #GREEK SMALL LETTER ZETA +0xE7 0x03B7 #GREEK SMALL LETTER ETA +0xE8 0x03B8 #GREEK SMALL LETTER THETA +0xE9 0x03B9 #GREEK SMALL LETTER IOTA +0xEA 0x03BA #GREEK SMALL LETTER KAPPA +0xEB 0x03BB #GREEK SMALL LETTER LAMDA +0xEC 0x03BC #GREEK SMALL LETTER MU +0xED 0x03BD #GREEK SMALL LETTER NU +0xEE 0x03BE #GREEK SMALL LETTER XI +0xEF 0x03BF #GREEK SMALL LETTER OMICRON +0xF0 0x03C0 #GREEK SMALL LETTER PI +0xF1 0x03C1 #GREEK SMALL LETTER RHO +0xF2 0x03C2 #GREEK SMALL LETTER FINAL SIGMA +0xF3 0x03C3 #GREEK SMALL LETTER SIGMA +0xF4 0x03C4 #GREEK SMALL LETTER TAU +0xF5 0x03C5 #GREEK SMALL LETTER UPSILON +0xF6 0x03C6 #GREEK SMALL LETTER PHI +0xF7 0x03C7 #GREEK SMALL LETTER CHI +0xF8 0x03C8 #GREEK SMALL LETTER PSI +0xF9 0x03C9 #GREEK SMALL LETTER OMEGA +0xFA 0x03CA #GREEK SMALL LETTER IOTA WITH DIALYTIKA +0xFB 0x03CB #GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0xFC 0x03CC #GREEK SMALL LETTER OMICRON WITH TONOS +0xFD 0x03CD #GREEK SMALL LETTER UPSILON WITH TONOS +0xFE 0x03CE #GREEK SMALL LETTER OMEGA WITH TONOS +0xFF #UNDEFINED ADDED freshlib/data/_encodings/_sources/CP1254.TXT Index: freshlib/data/_encodings/_sources/CP1254.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1254.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1254 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1254 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1254 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT +0x89 0x2030 #PER MILLE SIGN +0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C 0x0152 #LATIN CAPITAL LIGATURE OE +0x8D #UNDEFINED +0x8E #UNDEFINED +0x8F #UNDEFINED +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 0x02DC #SMALL TILDE +0x99 0x2122 #TRADE MARK SIGN +0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C 0x0153 #LATIN SMALL LIGATURE OE +0x9D #UNDEFINED +0x9E #UNDEFINED +0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x00A1 #INVERTED EXCLAMATION MARK +0xA2 0x00A2 #CENT SIGN +0xA3 0x00A3 #POUND SIGN +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x00A5 #YEN SIGN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x00AA #FEMININE ORDINAL INDICATOR +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x00AF #MACRON +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00B8 #CEDILLA +0xB9 0x00B9 #SUPERSCRIPT ONE +0xBA 0x00BA #MASCULINE ORDINAL INDICATOR +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC #VULGAR FRACTION ONE QUARTER +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF #INVERTED QUESTION MARK +0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 #LATIN CAPITAL LETTER AE +0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x011E #LATIN CAPITAL LETTER G WITH BREVE +0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 #MULTIPLICATION SIGN +0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE +0xDE 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA +0xDF 0x00DF #LATIN SMALL LETTER SHARP S +0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 #LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 #LATIN SMALL LETTER AE +0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x011F #LATIN SMALL LETTER G WITH BREVE +0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 #DIVISION SIGN +0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x0131 #LATIN SMALL LETTER DOTLESS I +0xFE 0x015F #LATIN SMALL LETTER S WITH CEDILLA +0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS ADDED freshlib/data/_encodings/_sources/CP1255.TXT Index: freshlib/data/_encodings/_sources/CP1255.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1255.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1255 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 1/7/2000 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1255 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1255 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT +0x89 0x2030 #PER MILLE SIGN +0x8A #UNDEFINED +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C #UNDEFINED +0x8D #UNDEFINED +0x8E #UNDEFINED +0x8F #UNDEFINED +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 0x02DC #SMALL TILDE +0x99 0x2122 #TRADE MARK SIGN +0x9A #UNDEFINED +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C #UNDEFINED +0x9D #UNDEFINED +0x9E #UNDEFINED +0x9F #UNDEFINED +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x00A1 #INVERTED EXCLAMATION MARK +0xA2 0x00A2 #CENT SIGN +0xA3 0x00A3 #POUND SIGN +0xA4 0x20AA #NEW SHEQEL SIGN +0xA5 0x00A5 #YEN SIGN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x00D7 #MULTIPLICATION SIGN +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x00AF #MACRON +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00B8 #CEDILLA +0xB9 0x00B9 #SUPERSCRIPT ONE +0xBA 0x00F7 #DIVISION SIGN +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC #VULGAR FRACTION ONE QUARTER +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF #INVERTED QUESTION MARK +0xC0 0x05B0 #HEBREW POINT SHEVA +0xC1 0x05B1 #HEBREW POINT HATAF SEGOL +0xC2 0x05B2 #HEBREW POINT HATAF PATAH +0xC3 0x05B3 #HEBREW POINT HATAF QAMATS +0xC4 0x05B4 #HEBREW POINT HIRIQ +0xC5 0x05B5 #HEBREW POINT TSERE +0xC6 0x05B6 #HEBREW POINT SEGOL +0xC7 0x05B7 #HEBREW POINT PATAH +0xC8 0x05B8 #HEBREW POINT QAMATS +0xC9 0x05B9 #HEBREW POINT HOLAM +0xCA #UNDEFINED +0xCB 0x05BB #HEBREW POINT QUBUTS +0xCC 0x05BC #HEBREW POINT DAGESH OR MAPIQ +0xCD 0x05BD #HEBREW POINT METEG +0xCE 0x05BE #HEBREW PUNCTUATION MAQAF +0xCF 0x05BF #HEBREW POINT RAFE +0xD0 0x05C0 #HEBREW PUNCTUATION PASEQ +0xD1 0x05C1 #HEBREW POINT SHIN DOT +0xD2 0x05C2 #HEBREW POINT SIN DOT +0xD3 0x05C3 #HEBREW PUNCTUATION SOF PASUQ +0xD4 0x05F0 #HEBREW LIGATURE YIDDISH DOUBLE VAV +0xD5 0x05F1 #HEBREW LIGATURE YIDDISH VAV YOD +0xD6 0x05F2 #HEBREW LIGATURE YIDDISH DOUBLE YOD +0xD7 0x05F3 #HEBREW PUNCTUATION GERESH +0xD8 0x05F4 #HEBREW PUNCTUATION GERSHAYIM +0xD9 #UNDEFINED +0xDA #UNDEFINED +0xDB #UNDEFINED +0xDC #UNDEFINED +0xDD #UNDEFINED +0xDE #UNDEFINED +0xDF #UNDEFINED +0xE0 0x05D0 #HEBREW LETTER ALEF +0xE1 0x05D1 #HEBREW LETTER BET +0xE2 0x05D2 #HEBREW LETTER GIMEL +0xE3 0x05D3 #HEBREW LETTER DALET +0xE4 0x05D4 #HEBREW LETTER HE +0xE5 0x05D5 #HEBREW LETTER VAV +0xE6 0x05D6 #HEBREW LETTER ZAYIN +0xE7 0x05D7 #HEBREW LETTER HET +0xE8 0x05D8 #HEBREW LETTER TET +0xE9 0x05D9 #HEBREW LETTER YOD +0xEA 0x05DA #HEBREW LETTER FINAL KAF +0xEB 0x05DB #HEBREW LETTER KAF +0xEC 0x05DC #HEBREW LETTER LAMED +0xED 0x05DD #HEBREW LETTER FINAL MEM +0xEE 0x05DE #HEBREW LETTER MEM +0xEF 0x05DF #HEBREW LETTER FINAL NUN +0xF0 0x05E0 #HEBREW LETTER NUN +0xF1 0x05E1 #HEBREW LETTER SAMEKH +0xF2 0x05E2 #HEBREW LETTER AYIN +0xF3 0x05E3 #HEBREW LETTER FINAL PE +0xF4 0x05E4 #HEBREW LETTER PE +0xF5 0x05E5 #HEBREW LETTER FINAL TSADI +0xF6 0x05E6 #HEBREW LETTER TSADI +0xF7 0x05E7 #HEBREW LETTER QOF +0xF8 0x05E8 #HEBREW LETTER RESH +0xF9 0x05E9 #HEBREW LETTER SHIN +0xFA 0x05EA #HEBREW LETTER TAV +0xFB #UNDEFINED +0xFC #UNDEFINED +0xFD 0x200E #LEFT-TO-RIGHT MARK +0xFE 0x200F #RIGHT-TO-LEFT MARK +0xFF #UNDEFINED ADDED freshlib/data/_encodings/_sources/CP1256.TXT Index: freshlib/data/_encodings/_sources/CP1256.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1256.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1256 to Unicode table +# Unicode version: 2.1 +# Table version: 2.01 +# Table format: Format A +# Date: 01/5/99 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1256 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1256 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 0x067E #ARABIC LETTER PEH +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT +0x89 0x2030 #PER MILLE SIGN +0x8A 0x0679 #ARABIC LETTER TTEH +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C 0x0152 #LATIN CAPITAL LIGATURE OE +0x8D 0x0686 #ARABIC LETTER TCHEH +0x8E 0x0698 #ARABIC LETTER JEH +0x8F 0x0688 #ARABIC LETTER DDAL +0x90 0x06AF #ARABIC LETTER GAF +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 0x06A9 #ARABIC LETTER KEHEH +0x99 0x2122 #TRADE MARK SIGN +0x9A 0x0691 #ARABIC LETTER RREH +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C 0x0153 #LATIN SMALL LIGATURE OE +0x9D 0x200C #ZERO WIDTH NON-JOINER +0x9E 0x200D #ZERO WIDTH JOINER +0x9F 0x06BA #ARABIC LETTER NOON GHUNNA +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x060C #ARABIC COMMA +0xA2 0x00A2 #CENT SIGN +0xA3 0x00A3 #POUND SIGN +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x00A5 #YEN SIGN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x06BE #ARABIC LETTER HEH DOACHASHMEE +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x00AF #MACRON +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00B8 #CEDILLA +0xB9 0x00B9 #SUPERSCRIPT ONE +0xBA 0x061B #ARABIC SEMICOLON +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC #VULGAR FRACTION ONE QUARTER +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBF 0x061F #ARABIC QUESTION MARK +0xC0 0x06C1 #ARABIC LETTER HEH GOAL +0xC1 0x0621 #ARABIC LETTER HAMZA +0xC2 0x0622 #ARABIC LETTER ALEF WITH MADDA ABOVE +0xC3 0x0623 #ARABIC LETTER ALEF WITH HAMZA ABOVE +0xC4 0x0624 #ARABIC LETTER WAW WITH HAMZA ABOVE +0xC5 0x0625 #ARABIC LETTER ALEF WITH HAMZA BELOW +0xC6 0x0626 #ARABIC LETTER YEH WITH HAMZA ABOVE +0xC7 0x0627 #ARABIC LETTER ALEF +0xC8 0x0628 #ARABIC LETTER BEH +0xC9 0x0629 #ARABIC LETTER TEH MARBUTA +0xCA 0x062A #ARABIC LETTER TEH +0xCB 0x062B #ARABIC LETTER THEH +0xCC 0x062C #ARABIC LETTER JEEM +0xCD 0x062D #ARABIC LETTER HAH +0xCE 0x062E #ARABIC LETTER KHAH +0xCF 0x062F #ARABIC LETTER DAL +0xD0 0x0630 #ARABIC LETTER THAL +0xD1 0x0631 #ARABIC LETTER REH +0xD2 0x0632 #ARABIC LETTER ZAIN +0xD3 0x0633 #ARABIC LETTER SEEN +0xD4 0x0634 #ARABIC LETTER SHEEN +0xD5 0x0635 #ARABIC LETTER SAD +0xD6 0x0636 #ARABIC LETTER DAD +0xD7 0x00D7 #MULTIPLICATION SIGN +0xD8 0x0637 #ARABIC LETTER TAH +0xD9 0x0638 #ARABIC LETTER ZAH +0xDA 0x0639 #ARABIC LETTER AIN +0xDB 0x063A #ARABIC LETTER GHAIN +0xDC 0x0640 #ARABIC TATWEEL +0xDD 0x0641 #ARABIC LETTER FEH +0xDE 0x0642 #ARABIC LETTER QAF +0xDF 0x0643 #ARABIC LETTER KAF +0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0xE1 0x0644 #ARABIC LETTER LAM +0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x0645 #ARABIC LETTER MEEM +0xE4 0x0646 #ARABIC LETTER NOON +0xE5 0x0647 #ARABIC LETTER HEH +0xE6 0x0648 #ARABIC LETTER WAW +0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x0649 #ARABIC LETTER ALEF MAKSURA +0xED 0x064A #ARABIC LETTER YEH +0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x064B #ARABIC FATHATAN +0xF1 0x064C #ARABIC DAMMATAN +0xF2 0x064D #ARABIC KASRATAN +0xF3 0x064E #ARABIC FATHA +0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x064F #ARABIC DAMMA +0xF6 0x0650 #ARABIC KASRA +0xF7 0x00F7 #DIVISION SIGN +0xF8 0x0651 #ARABIC SHADDA +0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xFA 0x0652 #ARABIC SUKUN +0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x200E #LEFT-TO-RIGHT MARK +0xFE 0x200F #RIGHT-TO-LEFT MARK +0xFF 0x06D2 #ARABIC LETTER YEH BARREE ADDED freshlib/data/_encodings/_sources/CP1257.TXT Index: freshlib/data/_encodings/_sources/CP1257.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1257.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1257 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1257 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1257 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 #UNDEFINED +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 #UNDEFINED +0x89 0x2030 #PER MILLE SIGN +0x8A #UNDEFINED +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C #UNDEFINED +0x8D 0x00A8 #DIAERESIS +0x8E 0x02C7 #CARON +0x8F 0x00B8 #CEDILLA +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 #UNDEFINED +0x99 0x2122 #TRADE MARK SIGN +0x9A #UNDEFINED +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C #UNDEFINED +0x9D 0x00AF #MACRON +0x9E 0x02DB #OGONEK +0x9F #UNDEFINED +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 #UNDEFINED +0xA2 0x00A2 #CENT SIGN +0xA3 0x00A3 #POUND SIGN +0xA4 0x00A4 #CURRENCY SIGN +0xA5 #UNDEFINED +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x00C6 #LATIN CAPITAL LETTER AE +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0xB9 0x00B9 #SUPERSCRIPT ONE +0xBA 0x0157 #LATIN SMALL LETTER R WITH CEDILLA +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC #VULGAR FRACTION ONE QUARTER +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBF 0x00E6 #LATIN SMALL LETTER AE +0xC0 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK +0xC1 0x012E #LATIN CAPITAL LETTER I WITH OGONEK +0xC2 0x0100 #LATIN CAPITAL LETTER A WITH MACRON +0xC3 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE +0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK +0xC7 0x0112 #LATIN CAPITAL LETTER E WITH MACRON +0xC8 0x010C #LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE +0xCB 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE +0xCC 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA +0xCD 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA +0xCE 0x012A #LATIN CAPITAL LETTER I WITH MACRON +0xCF 0x013B #LATIN CAPITAL LETTER L WITH CEDILLA +0xD0 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0xD1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE +0xD2 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA +0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x014C #LATIN CAPITAL LETTER O WITH MACRON +0xD5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 #MULTIPLICATION SIGN +0xD8 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK +0xD9 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0xDA 0x015A #LATIN CAPITAL LETTER S WITH ACUTE +0xDB 0x016A #LATIN CAPITAL LETTER U WITH MACRON +0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xDE 0x017D #LATIN CAPITAL LETTER Z WITH CARON +0xDF 0x00DF #LATIN SMALL LETTER SHARP S +0xE0 0x0105 #LATIN SMALL LETTER A WITH OGONEK +0xE1 0x012F #LATIN SMALL LETTER I WITH OGONEK +0xE2 0x0101 #LATIN SMALL LETTER A WITH MACRON +0xE3 0x0107 #LATIN SMALL LETTER C WITH ACUTE +0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x0119 #LATIN SMALL LETTER E WITH OGONEK +0xE7 0x0113 #LATIN SMALL LETTER E WITH MACRON +0xE8 0x010D #LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xEA 0x017A #LATIN SMALL LETTER Z WITH ACUTE +0xEB 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE +0xEC 0x0123 #LATIN SMALL LETTER G WITH CEDILLA +0xED 0x0137 #LATIN SMALL LETTER K WITH CEDILLA +0xEE 0x012B #LATIN SMALL LETTER I WITH MACRON +0xEF 0x013C #LATIN SMALL LETTER L WITH CEDILLA +0xF0 0x0161 #LATIN SMALL LETTER S WITH CARON +0xF1 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0xF2 0x0146 #LATIN SMALL LETTER N WITH CEDILLA +0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xF4 0x014D #LATIN SMALL LETTER O WITH MACRON +0xF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 #DIVISION SIGN +0xF8 0x0173 #LATIN SMALL LETTER U WITH OGONEK +0xF9 0x0142 #LATIN SMALL LETTER L WITH STROKE +0xFA 0x015B #LATIN SMALL LETTER S WITH ACUTE +0xFB 0x016B #LATIN SMALL LETTER U WITH MACRON +0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE +0xFE 0x017E #LATIN SMALL LETTER Z WITH CARON +0xFF 0x02D9 #DOT ABOVE ADDED freshlib/data/_encodings/_sources/CP1258.TXT Index: freshlib/data/_encodings/_sources/CP1258.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP1258.TXT @@ -0,0 +1,274 @@ +# +# Name: cp1258 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp1258 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp1258 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 0x201A #SINGLE LOW-9 QUOTATION MARK +0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK +0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 0x2020 #DAGGER +0x87 0x2021 #DOUBLE DAGGER +0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT +0x89 0x2030 #PER MILLE SIGN +0x8A #UNDEFINED +0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0x8C 0x0152 #LATIN CAPITAL LIGATURE OE +0x8D #UNDEFINED +0x8E #UNDEFINED +0x8F #UNDEFINED +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 0x02DC #SMALL TILDE +0x99 0x2122 #TRADE MARK SIGN +0x9A #UNDEFINED +0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0x9C 0x0153 #LATIN SMALL LIGATURE OE +0x9D #UNDEFINED +0x9E #UNDEFINED +0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x00A1 #INVERTED EXCLAMATION MARK +0xA2 0x00A2 #CENT SIGN +0xA3 0x00A3 #POUND SIGN +0xA4 0x00A4 #CURRENCY SIGN +0xA5 0x00A5 #YEN SIGN +0xA6 0x00A6 #BROKEN BAR +0xA7 0x00A7 #SECTION SIGN +0xA8 0x00A8 #DIAERESIS +0xA9 0x00A9 #COPYRIGHT SIGN +0xAA 0x00AA #FEMININE ORDINAL INDICATOR +0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC #NOT SIGN +0xAD 0x00AD #SOFT HYPHEN +0xAE 0x00AE #REGISTERED SIGN +0xAF 0x00AF #MACRON +0xB0 0x00B0 #DEGREE SIGN +0xB1 0x00B1 #PLUS-MINUS SIGN +0xB2 0x00B2 #SUPERSCRIPT TWO +0xB3 0x00B3 #SUPERSCRIPT THREE +0xB4 0x00B4 #ACUTE ACCENT +0xB5 0x00B5 #MICRO SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00B7 #MIDDLE DOT +0xB8 0x00B8 #CEDILLA +0xB9 0x00B9 #SUPERSCRIPT ONE +0xBA 0x00BA #MASCULINE ORDINAL INDICATOR +0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC #VULGAR FRACTION ONE QUARTER +0xBD 0x00BD #VULGAR FRACTION ONE HALF +0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF #INVERTED QUESTION MARK +0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE +0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 #LATIN CAPITAL LETTER AE +0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x0300 #COMBINING GRAVE ACCENT +0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x0309 #COMBINING HOOK ABOVE +0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x01A0 #LATIN CAPITAL LETTER O WITH HORN +0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 #MULTIPLICATION SIGN +0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x01AF #LATIN CAPITAL LETTER U WITH HORN +0xDE 0x0303 #COMBINING TILDE +0xDF 0x00DF #LATIN SMALL LETTER SHARP S +0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x0103 #LATIN SMALL LETTER A WITH BREVE +0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 #LATIN SMALL LETTER AE +0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x0301 #COMBINING ACUTE ACCENT +0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x0111 #LATIN SMALL LETTER D WITH STROKE +0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0xF2 0x0323 #COMBINING DOT BELOW +0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x01A1 #LATIN SMALL LETTER O WITH HORN +0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 #DIVISION SIGN +0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x01B0 #LATIN SMALL LETTER U WITH HORN +0xFE 0x20AB #DONG SIGN +0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS ADDED freshlib/data/_encodings/_sources/CP424.TXT Index: freshlib/data/_encodings/_sources/CP424.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP424.TXT @@ -0,0 +1,304 @@ +# +# Name: IBM EBCDIC CP424 (Hebrew) to Unicode table +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler <kenw@sybase.com> +# +# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# CP424 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the CP424 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# (or for EBCDIC controls, the EBCDIC name in C1 space) +# +# The entries are in CP424 order +# +# Version history +# 1.0 version new. +# +# Updated versions of this file may be found in: +# <ftp://ftp.unicode.org/Public/MAPPINGS/> +# +# Any comments or problems, contact <errata@unicode.org> +# Please note that <errata@unicode.org> is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x009C #SELECT +0x05 0x0009 #HORIZONTAL TABULATION +0x06 0x0086 #REQUIRED NEW LINE +0x07 0x007F #DELETE +0x08 0x0097 #GRAPHIC ESCAPE +0x09 0x008D #SUPERSCRIPT +0x0A 0x008E #REPEAT +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x009D #RESTORE/ENABLE PRESENTATION +0x15 0x0085 #NEW LINE +0x16 0x0008 #BACKSPACE +0x17 0x0087 #PROGRAM OPERATOR COMMUNICATION +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x0092 #UNIT BACK SPACE +0x1B 0x008F #CUSTOMER USE ONE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0080 #DIGIT SELECT +0x21 0x0081 #START OF SIGNIFICANCE +0x22 0x0082 #FIELD SEPARATOR +0x23 0x0083 #WORD UNDERSCORE +0x24 0x0084 #BYPASS OR INHIBIT PRESENTATION +0x25 0x000A #LINE FEED +0x26 0x0017 #END OF TRANSMISSION BLOCK +0x27 0x001B #ESCAPE +0x28 0x0088 #SET ATTRIBUTE +0x29 0x0089 #START FIELD EXTENDED +0x2A 0x008A #SET MODE OR SWITCH +0x2B 0x008B #CONTROL SEQUENCE PREFIX +0x2C 0x008C #MODIFY FIELD ATTRIBUTE +0x2D 0x0005 #ENQUIRY +0x2E 0x0006 #ACKNOWLEDGE +0x2F 0x0007 #BELL +0x30 0x0090 #<reserved> +0x31 0x0091 #<reserved> +0x32 0x0016 #SYNCHRONOUS IDLE +0x33 0x0093 #INDEX RETURN +0x34 0x0094 #PRESENTATION POSITION +0x35 0x0095 #TRANSPARENT +0x36 0x0096 #NUMERIC BACKSPACE +0x37 0x0004 #END OF TRANSMISSION +0x38 0x0098 #SUBSCRIPT +0x39 0x0099 #INDENT TABULATION +0x3A 0x009A #REVERSE FORM FEED +0x3B 0x009B #CUSTOMER USE THREE +0x3C 0x0014 #DEVICE CONTROL FOUR +0x3D 0x0015 #NEGATIVE ACKNOWLEDGE +0x3E 0x009E #<reserved> +0x3F 0x001A #SUBSTITUTE + +0x40 0x0020 #SPACE +0x41 0x05D0 #HEBREW LETTER ALEF +0x42 0x05D1 #HEBREW LETTER BET +0x43 0x05D2 #HEBREW LETTER GIMEL +0x44 0x05D3 #HEBREW LETTER DALET +0x45 0x05D4 #HEBREW LETTER HE +0x46 0x05D5 #HEBREW LETTER VAV +0x47 0x05D6 #HEBREW LETTER ZAYIN +0x48 0x05D7 #HEBREW LETTER HET +0x49 0x05D8 #HEBREW LETTER TET +0x4A 0x00A2 #CENT SIGN +0x4B 0x002E #FULL STOP +0x4C 0x003C #LESS-THAN SIGN +0x4D 0x0028 #LEFT PARENTHESIS +0x4E 0x002B #PLUS SIGN +0x4F 0x007C #VERTICAL LINE +0x50 0x0026 #AMPERSAND +0x51 0x05D9 #HEBREW LETTER YOD +0x52 0x05DA #HEBREW LETTER FINAL KAF +0x53 0x05DB #HEBREW LETTER KAF +0x54 0x05DC #HEBREW LETTER LAMED +0x55 0x05DD #HEBREW LETTER FINAL MEM +0x56 0x05DE #HEBREW LETTER MEM +0x57 0x05DF #HEBREW LETTER FINAL NUN +0x58 0x05E0 #HEBREW LETTER NUN +0x59 0x05E1 #HEBREW LETTER SAMEKH +0x5A 0x0021 #EXCLAMATION MARK +0x5B 0x0024 #DOLLAR SIGN +0x5C 0x002A #ASTERISK +0x5D 0x0029 #RIGHT PARENTHESIS +0x5E 0x003B #SEMICOLON +0x5F 0x00AC #NOT SIGN +0x60 0x002D #HYPHEN-MINUS +0x61 0x002F #SOLIDUS +0x62 0x05E2 #HEBREW LETTER AYIN +0x63 0x05E3 #HEBREW LETTER FINAL PE +0x64 0x05E4 #HEBREW LETTER PE +0x65 0x05E5 #HEBREW LETTER FINAL TSADI +0x66 0x05E6 #HEBREW LETTER TSADI +0x67 0x05E7 #HEBREW LETTER QOF +0x68 0x05E8 #HEBREW LETTER RESH +0x69 0x05E9 #HEBREW LETTER SHIN +0x6A 0x00A6 #BROKEN BAR +0x6B 0x002C #COMMA +0x6C 0x0025 #PERCENT SIGN +0x6D 0x005F #LOW LINE +0x6E 0x003E #GREATER-THAN SIGN +0x6F 0x003F #QUESTION MARK +0x70 #UNDEFINED +0x71 0x05EA #HEBREW LETTER TAV +0x72 #UNDEFINED +0x73 #UNDEFINED +0x74 0x00A0 #NO-BREAK SPACE +0x75 #UNDEFINED +0x76 #UNDEFINED +0x77 #UNDEFINED +0x78 0x2017 #DOUBLE LOW LINE +0x79 0x0060 #GRAVE ACCENT +0x7A 0x003A #COLON +0x7B 0x0023 #NUMBER SIGN +0x7C 0x0040 #COMMERCIAL AT +0x7D 0x0027 #APOSTROPHE +0x7E 0x003D #EQUALS SIGN +0x7F 0x0022 #QUOTATION MARK +0x80 #UNDEFINED +0x81 0x0061 #LATIN SMALL LETTER A +0x82 0x0062 #LATIN SMALL LETTER B +0x83 0x0063 #LATIN SMALL LETTER C +0x84 0x0064 #LATIN SMALL LETTER D +0x85 0x0065 #LATIN SMALL LETTER E +0x86 0x0066 #LATIN SMALL LETTER F +0x87 0x0067 #LATIN SMALL LETTER G +0x88 0x0068 #LATIN SMALL LETTER H +0x89 0x0069 #LATIN SMALL LETTER I +0x8A 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8B 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8C #UNDEFINED +0x8D #UNDEFINED +0x8E #UNDEFINED +0x8F 0x00B1 #PLUS-MINUS SIGN +0x90 0x00B0 #DEGREE SIGN +0x91 0x006A #LATIN SMALL LETTER J +0x92 0x006B #LATIN SMALL LETTER K +0x93 0x006C #LATIN SMALL LETTER L +0x94 0x006D #LATIN SMALL LETTER M +0x95 0x006E #LATIN SMALL LETTER N +0x96 0x006F #LATIN SMALL LETTER O +0x97 0x0070 #LATIN SMALL LETTER P +0x98 0x0071 #LATIN SMALL LETTER Q +0x99 0x0072 #LATIN SMALL LETTER R +0x9A #UNDEFINED +0x9B #UNDEFINED +0x9C #UNDEFINED +0x9D 0x00B8 #CEDILLA +0x9E #UNDEFINED +0x9F 0x00A4 #CURRENCY SIGN +0xA0 0x00B5 #MICRO SIGN +0xA1 0x007E #TILDE +0xA2 0x0073 #LATIN SMALL LETTER S +0xA3 0x0074 #LATIN SMALL LETTER T +0xA4 0x0075 #LATIN SMALL LETTER U +0xA5 0x0076 #LATIN SMALL LETTER V +0xA6 0x0077 #LATIN SMALL LETTER W +0xA7 0x0078 #LATIN SMALL LETTER X +0xA8 0x0079 #LATIN SMALL LETTER Y +0xA9 0x007A #LATIN SMALL LETTER Z +0xAA #UNDEFINED +0xAB #UNDEFINED +0xAC #UNDEFINED +0xAD #UNDEFINED +0xAE #UNDEFINED +0xAF 0x00AE #REGISTERED SIGN +0xB0 0x005E #CIRCUMFLEX ACCENT +0xB1 0x00A3 #POUND SIGN +0xB2 0x00A5 #YEN SIGN +0xB3 0x00B7 #MIDDLE DOT +0xB4 0x00A9 #COPYRIGHT SIGN +0xB5 0x00A7 #SECTION SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00BC #VULGAR FRACTION ONE QUARTER +0xB8 0x00BD #VULGAR FRACTION ONE HALF +0xB9 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBA 0x005B #LEFT SQUARE BRACKET +0xBB 0x005D #RIGHT SQUARE BRACKET +0xBC 0x00AF #MACRON +0xBD 0x00A8 #DIAERESIS +0xBE 0x00B4 #ACUTE ACCENT +0xBF 0x00D7 #MULTIPLICATION SIGN +0xC0 0x007B #LEFT CURLY BRACKET +0xC1 0x0041 #LATIN CAPITAL LETTER A +0xC2 0x0042 #LATIN CAPITAL LETTER B +0xC3 0x0043 #LATIN CAPITAL LETTER C +0xC4 0x0044 #LATIN CAPITAL LETTER D +0xC5 0x0045 #LATIN CAPITAL LETTER E +0xC6 0x0046 #LATIN CAPITAL LETTER F +0xC7 0x0047 #LATIN CAPITAL LETTER G +0xC8 0x0048 #LATIN CAPITAL LETTER H +0xC9 0x0049 #LATIN CAPITAL LETTER I +0xCA 0x00AD #SOFT HYPHEN +0xCB #UNDEFINED +0xCC #UNDEFINED +0xCD #UNDEFINED +0xCE #UNDEFINED +0xCF #UNDEFINED +0xD0 0x007D #RIGHT CURLY BRACKET +0xD1 0x004A #LATIN CAPITAL LETTER J +0xD2 0x004B #LATIN CAPITAL LETTER K +0xD3 0x004C #LATIN CAPITAL LETTER L +0xD4 0x004D #LATIN CAPITAL LETTER M +0xD5 0x004E #LATIN CAPITAL LETTER N +0xD6 0x004F #LATIN CAPITAL LETTER O +0xD7 0x0050 #LATIN CAPITAL LETTER P +0xD8 0x0051 #LATIN CAPITAL LETTER Q +0xD9 0x0052 #LATIN CAPITAL LETTER R +0xDA 0x00B9 #SUPERSCRIPT ONE +0xDB #UNDEFINED +0xDC #UNDEFINED +0xDD #UNDEFINED +0xDE #UNDEFINED +0xDF #UNDEFINED +0xE0 0x005C #REVERSE SOLIDUS +0xE1 0x00F7 #DIVISION SIGN +0xE2 0x0053 #LATIN CAPITAL LETTER S +0xE3 0x0054 #LATIN CAPITAL LETTER T +0xE4 0x0055 #LATIN CAPITAL LETTER U +0xE5 0x0056 #LATIN CAPITAL LETTER V +0xE6 0x0057 #LATIN CAPITAL LETTER W +0xE7 0x0058 #LATIN CAPITAL LETTER X +0xE8 0x0059 #LATIN CAPITAL LETTER Y +0xE9 0x005A #LATIN CAPITAL LETTER Z +0xEA 0x00B2 #SUPERSCRIPT TWO +0xEB #UNDEFINED +0xEC #UNDEFINED +0xED #UNDEFINED +0xEE #UNDEFINED +0xEF #UNDEFINED +0xF0 0x0030 #DIGIT ZERO +0xF1 0x0031 #DIGIT ONE +0xF2 0x0032 #DIGIT TWO +0xF3 0x0033 #DIGIT THREE +0xF4 0x0034 #DIGIT FOUR +0xF5 0x0035 #DIGIT FIVE +0xF6 0x0036 #DIGIT SIX +0xF7 0x0037 #DIGIT SEVEN +0xF8 0x0038 #DIGIT EIGHT +0xF9 0x0039 #DIGIT NINE +0xFA 0x00B3 #SUPERSCRIPT THREE +0xFB #UNDEFINED +0xFC #UNDEFINED +0xFD #UNDEFINED +0xFE #UNDEFINED +0xFF 0x009F #EIGHT ONES ADDED freshlib/data/_encodings/_sources/CP437.TXT Index: freshlib/data/_encodings/_sources/CP437.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP437.TXT @@ -0,0 +1,274 @@ +# +# Name: cp437_DOSLatinUS to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp437_DOSLatinUS code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp437_DOSLatinUS order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS +0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00e6 #LATIN SMALL LIGATURE AE +0x92 0x00c6 #LATIN CAPITAL LIGATURE AE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE +0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX +0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE +0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00a2 #CENT SIGN +0x9c 0x00a3 #POUND SIGN +0x9d 0x00a5 #YEN SIGN +0x9e 0x20a7 #PESETA SIGN +0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE +0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE +0xa6 0x00aa #FEMININE ORDINAL INDICATOR +0xa7 0x00ba #MASCULINE ORDINAL INDICATOR +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x2310 #REVERSED NOT SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b1 #GREEK SMALL LETTER ALPHA +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA +0xe3 0x03c0 #GREEK SMALL LETTER PI +0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xe5 0x03c3 #GREEK SMALL LETTER SIGMA +0xe6 0x00b5 #MICRO SIGN +0xe7 0x03c4 #GREEK SMALL LETTER TAU +0xe8 0x03a6 #GREEK CAPITAL LETTER PHI +0xe9 0x0398 #GREEK CAPITAL LETTER THETA +0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xeb 0x03b4 #GREEK SMALL LETTER DELTA +0xec 0x221e #INFINITY +0xed 0x03c6 #GREEK SMALL LETTER PHI +0xee 0x03b5 #GREEK SMALL LETTER EPSILON +0xef 0x2229 #INTERSECTION +0xf0 0x2261 #IDENTICAL TO +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x2320 #TOP HALF INTEGRAL +0xf5 0x2321 #BOTTOM HALF INTEGRAL +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + ADDED freshlib/data/_encodings/_sources/CP500.TXT Index: freshlib/data/_encodings/_sources/CP500.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP500.TXT @@ -0,0 +1,275 @@ +# +# Name: cp500_IBMInternational to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp500_IBMInternational code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp500_IBMInternational order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x009C #CONTROL +0x05 0x0009 #HORIZONTAL TABULATION +0x06 0x0086 #CONTROL +0x07 0x007F #DELETE +0x08 0x0097 #CONTROL +0x09 0x008D #CONTROL +0x0A 0x008E #CONTROL +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x009D #CONTROL +0x15 0x0085 #CONTROL +0x16 0x0008 #BACKSPACE +0x17 0x0087 #CONTROL +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x0092 #CONTROL +0x1B 0x008F #CONTROL +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0080 #CONTROL +0x21 0x0081 #CONTROL +0x22 0x0082 #CONTROL +0x23 0x0083 #CONTROL +0x24 0x0084 #CONTROL +0x25 0x000A #LINE FEED +0x26 0x0017 #END OF TRANSMISSION BLOCK +0x27 0x001B #ESCAPE +0x28 0x0088 #CONTROL +0x29 0x0089 #CONTROL +0x2A 0x008A #CONTROL +0x2B 0x008B #CONTROL +0x2C 0x008C #CONTROL +0x2D 0x0005 #ENQUIRY +0x2E 0x0006 #ACKNOWLEDGE +0x2F 0x0007 #BELL +0x30 0x0090 #CONTROL +0x31 0x0091 #CONTROL +0x32 0x0016 #SYNCHRONOUS IDLE +0x33 0x0093 #CONTROL +0x34 0x0094 #CONTROL +0x35 0x0095 #CONTROL +0x36 0x0096 #CONTROL +0x37 0x0004 #END OF TRANSMISSION +0x38 0x0098 #CONTROL +0x39 0x0099 #CONTROL +0x3A 0x009A #CONTROL +0x3B 0x009B #CONTROL +0x3C 0x0014 #DEVICE CONTROL FOUR +0x3D 0x0015 #NEGATIVE ACKNOWLEDGE +0x3E 0x009E #CONTROL +0x3F 0x001A #SUBSTITUTE +0x40 0x0020 #SPACE +0x41 0x00A0 #NO-BREAK SPACE +0x42 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x43 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0x44 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0x45 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0x46 0x00E3 #LATIN SMALL LETTER A WITH TILDE +0x47 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0x48 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0x49 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0x4A 0x005B #LEFT SQUARE BRACKET +0x4B 0x002E #FULL STOP +0x4C 0x003C #LESS-THAN SIGN +0x4D 0x0028 #LEFT PARENTHESIS +0x4E 0x002B #PLUS SIGN +0x4F 0x0021 #EXCLAMATION MARK +0x50 0x0026 #AMPERSAND +0x51 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0x52 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x53 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0x54 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0x55 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0x56 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x57 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0x58 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0x59 0x00DF #LATIN SMALL LETTER SHARP S (GERMAN) +0x5A 0x005D #RIGHT SQUARE BRACKET +0x5B 0x0024 #DOLLAR SIGN +0x5C 0x002A #ASTERISK +0x5D 0x0029 #RIGHT PARENTHESIS +0x5E 0x003B #SEMICOLON +0x5F 0x005E #CIRCUMFLEX ACCENT +0x60 0x002D #HYPHEN-MINUS +0x61 0x002F #SOLIDUS +0x62 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0x63 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x64 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0x65 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0x66 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE +0x67 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x68 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x69 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0x6A 0x00A6 #BROKEN BAR +0x6B 0x002C #COMMA +0x6C 0x0025 #PERCENT SIGN +0x6D 0x005F #LOW LINE +0x6E 0x003E #GREATER-THAN SIGN +0x6F 0x003F #QUESTION MARK +0x70 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0x71 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0x72 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0x73 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0x74 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0x75 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0x76 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0x77 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0x78 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE +0x79 0x0060 #GRAVE ACCENT +0x7A 0x003A #COLON +0x7B 0x0023 #NUMBER SIGN +0x7C 0x0040 #COMMERCIAL AT +0x7D 0x0027 #APOSTROPHE +0x7E 0x003D #EQUALS SIGN +0x7F 0x0022 #QUOTATION MARK +0x80 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0x81 0x0061 #LATIN SMALL LETTER A +0x82 0x0062 #LATIN SMALL LETTER B +0x83 0x0063 #LATIN SMALL LETTER C +0x84 0x0064 #LATIN SMALL LETTER D +0x85 0x0065 #LATIN SMALL LETTER E +0x86 0x0066 #LATIN SMALL LETTER F +0x87 0x0067 #LATIN SMALL LETTER G +0x88 0x0068 #LATIN SMALL LETTER H +0x89 0x0069 #LATIN SMALL LETTER I +0x8A 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8B 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0x8C 0x00F0 #LATIN SMALL LETTER ETH (ICELANDIC) +0x8D 0x00FD #LATIN SMALL LETTER Y WITH ACUTE +0x8E 0x00FE #LATIN SMALL LETTER THORN (ICELANDIC) +0x8F 0x00B1 #PLUS-MINUS SIGN +0x90 0x00B0 #DEGREE SIGN +0x91 0x006A #LATIN SMALL LETTER J +0x92 0x006B #LATIN SMALL LETTER K +0x93 0x006C #LATIN SMALL LETTER L +0x94 0x006D #LATIN SMALL LETTER M +0x95 0x006E #LATIN SMALL LETTER N +0x96 0x006F #LATIN SMALL LETTER O +0x97 0x0070 #LATIN SMALL LETTER P +0x98 0x0071 #LATIN SMALL LETTER Q +0x99 0x0072 #LATIN SMALL LETTER R +0x9A 0x00AA #FEMININE ORDINAL INDICATOR +0x9B 0x00BA #MASCULINE ORDINAL INDICATOR +0x9C 0x00E6 #LATIN SMALL LIGATURE AE +0x9D 0x00B8 #CEDILLA +0x9E 0x00C6 #LATIN CAPITAL LIGATURE AE +0x9F 0x00A4 #CURRENCY SIGN +0xA0 0x00B5 #MICRO SIGN +0xA1 0x007E #TILDE +0xA2 0x0073 #LATIN SMALL LETTER S +0xA3 0x0074 #LATIN SMALL LETTER T +0xA4 0x0075 #LATIN SMALL LETTER U +0xA5 0x0076 #LATIN SMALL LETTER V +0xA6 0x0077 #LATIN SMALL LETTER W +0xA7 0x0078 #LATIN SMALL LETTER X +0xA8 0x0079 #LATIN SMALL LETTER Y +0xA9 0x007A #LATIN SMALL LETTER Z +0xAA 0x00A1 #INVERTED EXCLAMATION MARK +0xAB 0x00BF #INVERTED QUESTION MARK +0xAC 0x00D0 #LATIN CAPITAL LETTER ETH (ICELANDIC) +0xAD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE +0xAE 0x00DE #LATIN CAPITAL LETTER THORN (ICELANDIC) +0xAF 0x00AE #REGISTERED SIGN +0xB0 0x00A2 #CENT SIGN +0xB1 0x00A3 #POUND SIGN +0xB2 0x00A5 #YEN SIGN +0xB3 0x00B7 #MIDDLE DOT +0xB4 0x00A9 #COPYRIGHT SIGN +0xB5 0x00A7 #SECTION SIGN +0xB6 0x00B6 #PILCROW SIGN +0xB7 0x00BC #VULGAR FRACTION ONE QUARTER +0xB8 0x00BD #VULGAR FRACTION ONE HALF +0xB9 0x00BE #VULGAR FRACTION THREE QUARTERS +0xBA 0x00AC #NOT SIGN +0xBB 0x007C #VERTICAL LINE +0xBC 0x00AF #MACRON +0xBD 0x00A8 #DIAERESIS +0xBE 0x00B4 #ACUTE ACCENT +0xBF 0x00D7 #MULTIPLICATION SIGN +0xC0 0x007B #LEFT CURLY BRACKET +0xC1 0x0041 #LATIN CAPITAL LETTER A +0xC2 0x0042 #LATIN CAPITAL LETTER B +0xC3 0x0043 #LATIN CAPITAL LETTER C +0xC4 0x0044 #LATIN CAPITAL LETTER D +0xC5 0x0045 #LATIN CAPITAL LETTER E +0xC6 0x0046 #LATIN CAPITAL LETTER F +0xC7 0x0047 #LATIN CAPITAL LETTER G +0xC8 0x0048 #LATIN CAPITAL LETTER H +0xC9 0x0049 #LATIN CAPITAL LETTER I +0xCA 0x00AD #SOFT HYPHEN +0xCB 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xCC 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xCD 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xCE 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xCF 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xD0 0x007D #RIGHT CURLY BRACKET +0xD1 0x004A #LATIN CAPITAL LETTER J +0xD2 0x004B #LATIN CAPITAL LETTER K +0xD3 0x004C #LATIN CAPITAL LETTER L +0xD4 0x004D #LATIN CAPITAL LETTER M +0xD5 0x004E #LATIN CAPITAL LETTER N +0xD6 0x004F #LATIN CAPITAL LETTER O +0xD7 0x0050 #LATIN CAPITAL LETTER P +0xD8 0x0051 #LATIN CAPITAL LETTER Q +0xD9 0x0052 #LATIN CAPITAL LETTER R +0xDA 0x00B9 #SUPERSCRIPT ONE +0xDB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xDC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xDD 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xDE 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xDF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS +0xE0 0x005C #REVERSE SOLIDUS +0xE1 0x00F7 #DIVISION SIGN +0xE2 0x0053 #LATIN CAPITAL LETTER S +0xE3 0x0054 #LATIN CAPITAL LETTER T +0xE4 0x0055 #LATIN CAPITAL LETTER U +0xE5 0x0056 #LATIN CAPITAL LETTER V +0xE6 0x0057 #LATIN CAPITAL LETTER W +0xE7 0x0058 #LATIN CAPITAL LETTER X +0xE8 0x0059 #LATIN CAPITAL LETTER Y +0xE9 0x005A #LATIN CAPITAL LETTER Z +0xEA 0x00B2 #SUPERSCRIPT TWO +0xEB 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xEC 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xED 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE +0xEE 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xEF 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xF0 0x0030 #DIGIT ZERO +0xF1 0x0031 #DIGIT ONE +0xF2 0x0032 #DIGIT TWO +0xF3 0x0033 #DIGIT THREE +0xF4 0x0034 #DIGIT FOUR +0xF5 0x0035 #DIGIT FIVE +0xF6 0x0036 #DIGIT SIX +0xF7 0x0037 #DIGIT SEVEN +0xF8 0x0038 #DIGIT EIGHT +0xF9 0x0039 #DIGIT NINE +0xFA 0x00B3 #SUPERSCRIPT THREE +0xFB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xFC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xFD 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xFE 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xFF 0x009F #CONTROL + + ADDED freshlib/data/_encodings/_sources/CP737.TXT Index: freshlib/data/_encodings/_sources/CP737.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP737.TXT @@ -0,0 +1,274 @@ +# +# Name: cp737_DOSGreek to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp737_DOSGreek code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp737_DOSGreek order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x0391 #GREEK CAPITAL LETTER ALPHA +0x81 0x0392 #GREEK CAPITAL LETTER BETA +0x82 0x0393 #GREEK CAPITAL LETTER GAMMA +0x83 0x0394 #GREEK CAPITAL LETTER DELTA +0x84 0x0395 #GREEK CAPITAL LETTER EPSILON +0x85 0x0396 #GREEK CAPITAL LETTER ZETA +0x86 0x0397 #GREEK CAPITAL LETTER ETA +0x87 0x0398 #GREEK CAPITAL LETTER THETA +0x88 0x0399 #GREEK CAPITAL LETTER IOTA +0x89 0x039a #GREEK CAPITAL LETTER KAPPA +0x8a 0x039b #GREEK CAPITAL LETTER LAMDA +0x8b 0x039c #GREEK CAPITAL LETTER MU +0x8c 0x039d #GREEK CAPITAL LETTER NU +0x8d 0x039e #GREEK CAPITAL LETTER XI +0x8e 0x039f #GREEK CAPITAL LETTER OMICRON +0x8f 0x03a0 #GREEK CAPITAL LETTER PI +0x90 0x03a1 #GREEK CAPITAL LETTER RHO +0x91 0x03a3 #GREEK CAPITAL LETTER SIGMA +0x92 0x03a4 #GREEK CAPITAL LETTER TAU +0x93 0x03a5 #GREEK CAPITAL LETTER UPSILON +0x94 0x03a6 #GREEK CAPITAL LETTER PHI +0x95 0x03a7 #GREEK CAPITAL LETTER CHI +0x96 0x03a8 #GREEK CAPITAL LETTER PSI +0x97 0x03a9 #GREEK CAPITAL LETTER OMEGA +0x98 0x03b1 #GREEK SMALL LETTER ALPHA +0x99 0x03b2 #GREEK SMALL LETTER BETA +0x9a 0x03b3 #GREEK SMALL LETTER GAMMA +0x9b 0x03b4 #GREEK SMALL LETTER DELTA +0x9c 0x03b5 #GREEK SMALL LETTER EPSILON +0x9d 0x03b6 #GREEK SMALL LETTER ZETA +0x9e 0x03b7 #GREEK SMALL LETTER ETA +0x9f 0x03b8 #GREEK SMALL LETTER THETA +0xa0 0x03b9 #GREEK SMALL LETTER IOTA +0xa1 0x03ba #GREEK SMALL LETTER KAPPA +0xa2 0x03bb #GREEK SMALL LETTER LAMDA +0xa3 0x03bc #GREEK SMALL LETTER MU +0xa4 0x03bd #GREEK SMALL LETTER NU +0xa5 0x03be #GREEK SMALL LETTER XI +0xa6 0x03bf #GREEK SMALL LETTER OMICRON +0xa7 0x03c0 #GREEK SMALL LETTER PI +0xa8 0x03c1 #GREEK SMALL LETTER RHO +0xa9 0x03c3 #GREEK SMALL LETTER SIGMA +0xaa 0x03c2 #GREEK SMALL LETTER FINAL SIGMA +0xab 0x03c4 #GREEK SMALL LETTER TAU +0xac 0x03c5 #GREEK SMALL LETTER UPSILON +0xad 0x03c6 #GREEK SMALL LETTER PHI +0xae 0x03c7 #GREEK SMALL LETTER CHI +0xaf 0x03c8 #GREEK SMALL LETTER PSI +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03c9 #GREEK SMALL LETTER OMEGA +0xe1 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS +0xe2 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS +0xe3 0x03ae #GREEK SMALL LETTER ETA WITH TONOS +0xe4 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA +0xe5 0x03af #GREEK SMALL LETTER IOTA WITH TONOS +0xe6 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS +0xe7 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS +0xe8 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0xe9 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS +0xea 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS +0xeb 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS +0xec 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS +0xed 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS +0xee 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS +0xef 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS +0xf0 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0xf5 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + ADDED freshlib/data/_encodings/_sources/CP775.TXT Index: freshlib/data/_encodings/_sources/CP775.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP775.TXT @@ -0,0 +1,275 @@ +# +# Name: cp775_DOSBaltRim to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp775_DOSBaltRim code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp775_DOSBaltRim order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x0101 #LATIN SMALL LETTER A WITH MACRON +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x0123 #LATIN SMALL LETTER G WITH CEDILLA +0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE +0x87 0x0107 #LATIN SMALL LETTER C WITH ACUTE +0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE +0x89 0x0113 #LATIN SMALL LETTER E WITH MACRON +0x8a 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA +0x8b 0x0157 #LATIN SMALL LETTER R WITH CEDILLA +0x8c 0x012b #LATIN SMALL LETTER I WITH MACRON +0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00e6 #LATIN SMALL LIGATURE AE +0x92 0x00c6 #LATIN CAPITAL LIGATURE AE +0x93 0x014d #LATIN SMALL LETTER O WITH MACRON +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA +0x96 0x00a2 #CENT SIGN +0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE +0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE +0x9e 0x00d7 #MULTIPLICATION SIGN +0x9f 0x00a4 #CURRENCY SIGN +0xa0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON +0xa1 0x012a #LATIN CAPITAL LETTER I WITH MACRON +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xa4 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE +0xa5 0x017a #LATIN SMALL LETTER Z WITH ACUTE +0xa6 0x201d #RIGHT DOUBLE QUOTATION MARK +0xa7 0x00a6 #BROKEN BAR +0xa8 0x00a9 #COPYRIGHT SIGN +0xa9 0x00ae #REGISTERED SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK +0xb6 0x010c #LATIN CAPITAL LETTER C WITH CARON +0xb7 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK +0xb8 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x012e #LATIN CAPITAL LETTER I WITH OGONEK +0xbe 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK +0xc7 0x016a #LATIN CAPITAL LETTER U WITH MACRON +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x017d #LATIN CAPITAL LETTER Z WITH CARON +0xd0 0x0105 #LATIN SMALL LETTER A WITH OGONEK +0xd1 0x010d #LATIN SMALL LETTER C WITH CARON +0xd2 0x0119 #LATIN SMALL LETTER E WITH OGONEK +0xd3 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE +0xd4 0x012f #LATIN SMALL LETTER I WITH OGONEK +0xd5 0x0161 #LATIN SMALL LETTER S WITH CARON +0xd6 0x0173 #LATIN SMALL LETTER U WITH OGONEK +0xd7 0x016b #LATIN SMALL LETTER U WITH MACRON +0xd8 0x017e #LATIN SMALL LETTER Z WITH CARON +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE +0xe1 0x00df #LATIN SMALL LETTER SHARP S (GERMAN) +0xe2 0x014c #LATIN CAPITAL LETTER O WITH MACRON +0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE +0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE +0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE +0xe6 0x00b5 #MICRO SIGN +0xe7 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0xe8 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA +0xe9 0x0137 #LATIN SMALL LETTER K WITH CEDILLA +0xea 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA +0xeb 0x013c #LATIN SMALL LETTER L WITH CEDILLA +0xec 0x0146 #LATIN SMALL LETTER N WITH CEDILLA +0xed 0x0112 #LATIN CAPITAL LETTER E WITH MACRON +0xee 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA +0xef 0x2019 #RIGHT SINGLE QUOTATION MARK +0xf0 0x00ad #SOFT HYPHEN +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x201c #LEFT DOUBLE QUOTATION MARK +0xf3 0x00be #VULGAR FRACTION THREE QUARTERS +0xf4 0x00b6 #PILCROW SIGN +0xf5 0x00a7 #SECTION SIGN +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x201e #DOUBLE LOW-9 QUOTATION MARK +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x00b9 #SUPERSCRIPT ONE +0xfc 0x00b3 #SUPERSCRIPT THREE +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP850.TXT Index: freshlib/data/_encodings/_sources/CP850.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP850.TXT @@ -0,0 +1,274 @@ +# +# Name: cp850_DOSLatin1 to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp850_DOSLatin1 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp850_DOSLatin1 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS +0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00e6 #LATIN SMALL LIGATURE AE +0x92 0x00c6 #LATIN CAPITAL LIGATURE AE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE +0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX +0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE +0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE +0x9e 0x00d7 #MULTIPLICATION SIGN +0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE +0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE +0xa6 0x00aa #FEMININE ORDINAL INDICATOR +0xa7 0x00ba #MASCULINE ORDINAL INDICATOR +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x00ae #REGISTERED SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE +0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE +0xb8 0x00a9 #COPYRIGHT SIGN +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x00a2 #CENT SIGN +0xbe 0x00a5 #YEN SIGN +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE +0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x00a4 #CURRENCY SIGN +0xd0 0x00f0 #LATIN SMALL LETTER ETH +0xd1 0x00d0 #LATIN CAPITAL LETTER ETH +0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS +0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE +0xd5 0x0131 #LATIN SMALL LETTER DOTLESS I +0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE +0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x00a6 #BROKEN BAR +0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE +0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE +0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE +0xe6 0x00b5 #MICRO SIGN +0xe7 0x00fe #LATIN SMALL LETTER THORN +0xe8 0x00de #LATIN CAPITAL LETTER THORN +0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE +0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE +0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE +0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE +0xee 0x00af #MACRON +0xef 0x00b4 #ACUTE ACCENT +0xf0 0x00ad #SOFT HYPHEN +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2017 #DOUBLE LOW LINE +0xf3 0x00be #VULGAR FRACTION THREE QUARTERS +0xf4 0x00b6 #PILCROW SIGN +0xf5 0x00a7 #SECTION SIGN +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x00b8 #CEDILLA +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x00a8 #DIAERESIS +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x00b9 #SUPERSCRIPT ONE +0xfc 0x00b3 #SUPERSCRIPT THREE +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + ADDED freshlib/data/_encodings/_sources/CP852.TXT Index: freshlib/data/_encodings/_sources/CP852.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP852.TXT @@ -0,0 +1,274 @@ +# +# Name: cp852_DOSLatin2 to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp852_DOSLatin2 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp852_DOSLatin2 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x016f #LATIN SMALL LETTER U WITH RING ABOVE +0x86 0x0107 #LATIN SMALL LETTER C WITH ACUTE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0x8b 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE +0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE +0x92 0x013a #LATIN SMALL LETTER L WITH ACUTE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x013d #LATIN CAPITAL LETTER L WITH CARON +0x96 0x013e #LATIN SMALL LETTER L WITH CARON +0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE +0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x0164 #LATIN CAPITAL LETTER T WITH CARON +0x9c 0x0165 #LATIN SMALL LETTER T WITH CARON +0x9d 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0x9e 0x00d7 #MULTIPLICATION SIGN +0x9f 0x010d #LATIN SMALL LETTER C WITH CARON +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK +0xa5 0x0105 #LATIN SMALL LETTER A WITH OGONEK +0xa6 0x017d #LATIN CAPITAL LETTER Z WITH CARON +0xa7 0x017e #LATIN SMALL LETTER Z WITH CARON +0xa8 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK +0xa9 0x0119 #LATIN SMALL LETTER E WITH OGONEK +0xaa 0x00ac #NOT SIGN +0xab 0x017a #LATIN SMALL LETTER Z WITH ACUTE +0xac 0x010c #LATIN CAPITAL LETTER C WITH CARON +0xad 0x015f #LATIN SMALL LETTER S WITH CEDILLA +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE +0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xb7 0x011a #LATIN CAPITAL LETTER E WITH CARON +0xb8 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xbe 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x0102 #LATIN CAPITAL LETTER A WITH BREVE +0xc7 0x0103 #LATIN SMALL LETTER A WITH BREVE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x00a4 #CURRENCY SIGN +0xd0 0x0111 #LATIN SMALL LETTER D WITH STROKE +0xd1 0x0110 #LATIN CAPITAL LETTER D WITH STROKE +0xd2 0x010e #LATIN CAPITAL LETTER D WITH CARON +0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS +0xd4 0x010f #LATIN SMALL LETTER D WITH CARON +0xd5 0x0147 #LATIN CAPITAL LETTER N WITH CARON +0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE +0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xd8 0x011b #LATIN SMALL LETTER E WITH CARON +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA +0xde 0x016e #LATIN CAPITAL LETTER U WITH RING ABOVE +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE +0xe4 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0xe5 0x0148 #LATIN SMALL LETTER N WITH CARON +0xe6 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0xe7 0x0161 #LATIN SMALL LETTER S WITH CARON +0xe8 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE +0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE +0xea 0x0155 #LATIN SMALL LETTER R WITH ACUTE +0xeb 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE +0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE +0xee 0x0163 #LATIN SMALL LETTER T WITH CEDILLA +0xef 0x00b4 #ACUTE ACCENT +0xf0 0x00ad #SOFT HYPHEN +0xf1 0x02dd #DOUBLE ACUTE ACCENT +0xf2 0x02db #OGONEK +0xf3 0x02c7 #CARON +0xf4 0x02d8 #BREVE +0xf5 0x00a7 #SECTION SIGN +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x00b8 #CEDILLA +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x00a8 #DIAERESIS +0xfa 0x02d9 #DOT ABOVE +0xfb 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE +0xfc 0x0158 #LATIN CAPITAL LETTER R WITH CARON +0xfd 0x0159 #LATIN SMALL LETTER R WITH CARON +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + ADDED freshlib/data/_encodings/_sources/CP855.TXT Index: freshlib/data/_encodings/_sources/CP855.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP855.TXT @@ -0,0 +1,275 @@ +# +# Name: cp855_DOSCyrillic to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp855_DOSCyrillic code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp855_DOSCyrillic order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x0452 #CYRILLIC SMALL LETTER DJE +0x81 0x0402 #CYRILLIC CAPITAL LETTER DJE +0x82 0x0453 #CYRILLIC SMALL LETTER GJE +0x83 0x0403 #CYRILLIC CAPITAL LETTER GJE +0x84 0x0451 #CYRILLIC SMALL LETTER IO +0x85 0x0401 #CYRILLIC CAPITAL LETTER IO +0x86 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE +0x87 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE +0x88 0x0455 #CYRILLIC SMALL LETTER DZE +0x89 0x0405 #CYRILLIC CAPITAL LETTER DZE +0x8a 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0x8b 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0x8c 0x0457 #CYRILLIC SMALL LETTER YI +0x8d 0x0407 #CYRILLIC CAPITAL LETTER YI +0x8e 0x0458 #CYRILLIC SMALL LETTER JE +0x8f 0x0408 #CYRILLIC CAPITAL LETTER JE +0x90 0x0459 #CYRILLIC SMALL LETTER LJE +0x91 0x0409 #CYRILLIC CAPITAL LETTER LJE +0x92 0x045a #CYRILLIC SMALL LETTER NJE +0x93 0x040a #CYRILLIC CAPITAL LETTER NJE +0x94 0x045b #CYRILLIC SMALL LETTER TSHE +0x95 0x040b #CYRILLIC CAPITAL LETTER TSHE +0x96 0x045c #CYRILLIC SMALL LETTER KJE +0x97 0x040c #CYRILLIC CAPITAL LETTER KJE +0x98 0x045e #CYRILLIC SMALL LETTER SHORT U +0x99 0x040e #CYRILLIC CAPITAL LETTER SHORT U +0x9a 0x045f #CYRILLIC SMALL LETTER DZHE +0x9b 0x040f #CYRILLIC CAPITAL LETTER DZHE +0x9c 0x044e #CYRILLIC SMALL LETTER YU +0x9d 0x042e #CYRILLIC CAPITAL LETTER YU +0x9e 0x044a #CYRILLIC SMALL LETTER HARD SIGN +0x9f 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN +0xa0 0x0430 #CYRILLIC SMALL LETTER A +0xa1 0x0410 #CYRILLIC CAPITAL LETTER A +0xa2 0x0431 #CYRILLIC SMALL LETTER BE +0xa3 0x0411 #CYRILLIC CAPITAL LETTER BE +0xa4 0x0446 #CYRILLIC SMALL LETTER TSE +0xa5 0x0426 #CYRILLIC CAPITAL LETTER TSE +0xa6 0x0434 #CYRILLIC SMALL LETTER DE +0xa7 0x0414 #CYRILLIC CAPITAL LETTER DE +0xa8 0x0435 #CYRILLIC SMALL LETTER IE +0xa9 0x0415 #CYRILLIC CAPITAL LETTER IE +0xaa 0x0444 #CYRILLIC SMALL LETTER EF +0xab 0x0424 #CYRILLIC CAPITAL LETTER EF +0xac 0x0433 #CYRILLIC SMALL LETTER GHE +0xad 0x0413 #CYRILLIC CAPITAL LETTER GHE +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x0445 #CYRILLIC SMALL LETTER HA +0xb6 0x0425 #CYRILLIC CAPITAL LETTER HA +0xb7 0x0438 #CYRILLIC SMALL LETTER I +0xb8 0x0418 #CYRILLIC CAPITAL LETTER I +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x0439 #CYRILLIC SMALL LETTER SHORT I +0xbe 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x043a #CYRILLIC SMALL LETTER KA +0xc7 0x041a #CYRILLIC CAPITAL LETTER KA +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x00a4 #CURRENCY SIGN +0xd0 0x043b #CYRILLIC SMALL LETTER EL +0xd1 0x041b #CYRILLIC CAPITAL LETTER EL +0xd2 0x043c #CYRILLIC SMALL LETTER EM +0xd3 0x041c #CYRILLIC CAPITAL LETTER EM +0xd4 0x043d #CYRILLIC SMALL LETTER EN +0xd5 0x041d #CYRILLIC CAPITAL LETTER EN +0xd6 0x043e #CYRILLIC SMALL LETTER O +0xd7 0x041e #CYRILLIC CAPITAL LETTER O +0xd8 0x043f #CYRILLIC SMALL LETTER PE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x041f #CYRILLIC CAPITAL LETTER PE +0xde 0x044f #CYRILLIC SMALL LETTER YA +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x042f #CYRILLIC CAPITAL LETTER YA +0xe1 0x0440 #CYRILLIC SMALL LETTER ER +0xe2 0x0420 #CYRILLIC CAPITAL LETTER ER +0xe3 0x0441 #CYRILLIC SMALL LETTER ES +0xe4 0x0421 #CYRILLIC CAPITAL LETTER ES +0xe5 0x0442 #CYRILLIC SMALL LETTER TE +0xe6 0x0422 #CYRILLIC CAPITAL LETTER TE +0xe7 0x0443 #CYRILLIC SMALL LETTER U +0xe8 0x0423 #CYRILLIC CAPITAL LETTER U +0xe9 0x0436 #CYRILLIC SMALL LETTER ZHE +0xea 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0xeb 0x0432 #CYRILLIC SMALL LETTER VE +0xec 0x0412 #CYRILLIC CAPITAL LETTER VE +0xed 0x044c #CYRILLIC SMALL LETTER SOFT SIGN +0xee 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN +0xef 0x2116 #NUMERO SIGN +0xf0 0x00ad #SOFT HYPHEN +0xf1 0x044b #CYRILLIC SMALL LETTER YERU +0xf2 0x042b #CYRILLIC CAPITAL LETTER YERU +0xf3 0x0437 #CYRILLIC SMALL LETTER ZE +0xf4 0x0417 #CYRILLIC CAPITAL LETTER ZE +0xf5 0x0448 #CYRILLIC SMALL LETTER SHA +0xf6 0x0428 #CYRILLIC CAPITAL LETTER SHA +0xf7 0x044d #CYRILLIC SMALL LETTER E +0xf8 0x042d #CYRILLIC CAPITAL LETTER E +0xf9 0x0449 #CYRILLIC SMALL LETTER SHCHA +0xfa 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0xfb 0x0447 #CYRILLIC SMALL LETTER CHE +0xfc 0x0427 #CYRILLIC CAPITAL LETTER CHE +0xfd 0x00a7 #SECTION SIGN +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP856.TXT Index: freshlib/data/_encodings/_sources/CP856.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP856.TXT @@ -0,0 +1,303 @@ +# +# Name: cp856_Hebrew_PC to Unicode table +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler (kenw@sybase.com) +# +# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# CP424 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the cp856_Hebrew_PC code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp856_Hebrew_PC order +# +# Version history +# 1.0 version new. +# +# Updated versions of this file may be found in: +# <ftp://ftp.unicode.org/Public/MAPPINGS/> +# +# Any comments or problems, contact <errata@unicode.org> +# Please note that <errata@unicode.org> is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x05D0 #HEBREW LETTER ALEF +0x81 0x05D1 #HEBREW LETTER BET +0x82 0x05D2 #HEBREW LETTER GIMEL +0x83 0x05D3 #HEBREW LETTER DALET +0x84 0x05D4 #HEBREW LETTER HE +0x85 0x05D5 #HEBREW LETTER VAV +0x86 0x05D6 #HEBREW LETTER ZAYIN +0x87 0x05D7 #HEBREW LETTER HET +0x88 0x05D8 #HEBREW LETTER TET +0x89 0x05D9 #HEBREW LETTER YOD +0x8A 0x05DA #HEBREW LETTER FINAL KAF +0x8B 0x05DB #HEBREW LETTER KAF +0x8C 0x05DC #HEBREW LETTER LAMED +0x8D 0x05DD #HEBREW LETTER FINAL MEM +0x8E 0x05DE #HEBREW LETTER MEM +0x8F 0x05DF #HEBREW LETTER FINAL NUN +0x90 0x05E0 #HEBREW LETTER NUN +0x91 0x05E1 #HEBREW LETTER SAMEKH +0x92 0x05E2 #HEBREW LETTER AYIN +0x93 0x05E3 #HEBREW LETTER FINAL PE +0x94 0x05E4 #HEBREW LETTER PE +0x95 0x05E5 #HEBREW LETTER FINAL TSADI +0x96 0x05E6 #HEBREW LETTER TSADI +0x97 0x05E7 #HEBREW LETTER QOF +0x98 0x05E8 #HEBREW LETTER RESH +0x99 0x05E9 #HEBREW LETTER SHIN +0x9A 0x05EA #HEBREW LETTER TAV +0x9B #UNDEFINED +0x9C 0x00A3 #POUND SIGN +0x9D #UNDEFINED +0x9E 0x00D7 #MULTIPLICATION SIGN +0x9F #UNDEFINED +0xA0 #UNDEFINED +0xA1 #UNDEFINED +0xA2 #UNDEFINED +0xA3 #UNDEFINED +0xA4 #UNDEFINED +0xA5 #UNDEFINED +0xA6 #UNDEFINED +0xA7 #UNDEFINED +0xA8 #UNDEFINED +0xA9 0x00AE #REGISTERED SIGN +0xAA 0x00AC #NOT SIGN +0xAB 0x00BD #VULGAR FRACTION ONE HALF +0xAC 0x00BC #VULGAR FRACTION ONE QUARTER +0xAD #UNDEFINED +0xAE 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAF 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xB0 0x2591 #LIGHT SHADE +0xB1 0x2592 #MEDIUM SHADE +0xB2 0x2593 #DARK SHADE +0xB3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xB4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xB5 #UNDEFINED +0xB6 #UNDEFINED +0xB7 #UNDEFINED +0xB8 0x00A9 #COPYRIGHT SIGN +0xB9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xBA 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xBB 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xBC 0x255D #BOX DRAWINGS DOUBLE UP AND LEFT +0xBD 0x00A2 #CENT SIGN +0xBE 0x00A5 #YEN SIGN +0xBF 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xC0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xC1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xC2 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xC3 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xC4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xC5 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xC6 #UNDEFINED +0xC7 #UNDEFINED +0xC8 0x255A #BOX DRAWINGS DOUBLE UP AND RIGHT +0xC9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xCA 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xCB 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xCC 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xCD 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xCE 0x256C #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xCF 0x00A4 #CURRENCY SIGN +0xD0 #UNDEFINED +0xD1 #UNDEFINED +0xD2 #UNDEFINED +0xD3 #UNDEFINEDS +0xD4 #UNDEFINED +0xD5 #UNDEFINED +0xD6 #UNDEFINEDE +0xD7 #UNDEFINED +0xD8 #UNDEFINED +0xD9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xDA 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xDB 0x2588 #FULL BLOCK +0xDC 0x2584 #LOWER HALF BLOCK +0xDD 0x00A6 #BROKEN BAR +0xDE #UNDEFINED +0xDF 0x2580 #UPPER HALF BLOCK +0xE0 #UNDEFINED +0xE1 #UNDEFINED +0xE2 #UNDEFINED +0xE3 #UNDEFINED +0xE4 #UNDEFINED +0xE5 #UNDEFINED +0xE6 0x00B5 #MICRO SIGN +0xE7 #UNDEFINED +0xE8 #UNDEFINED +0xE9 #UNDEFINED +0xEA #UNDEFINED +0xEB #UNDEFINED +0xEC #UNDEFINED +0xED #UNDEFINED +0xEE 0x00AF #MACRON +0xEF 0x00B4 #ACUTE ACCENT +0xF0 0x00AD #SOFT HYPHEN +0xF1 0x00B1 #PLUS-MINUS SIGN +0xF2 0x2017 #DOUBLE LOW LINE +0xF3 0x00BE #VULGAR FRACTION THREE QUARTERS +0xF4 0x00B6 #PILCROW SIGN +0xF5 0x00A7 #SECTION SIGN +0xF6 0x00F7 #DIVISION SIGN +0xF7 0x00B8 #CEDILLA +0xF8 0x00B0 #DEGREE SIGN +0xF9 0x00A8 #DIAERESIS +0xFA 0x00B7 #MIDDLE DOT +0xFB 0x00B9 #SUPERSCRIPT ONE +0xFC 0x00B3 #SUPERSCRIPT THREE +0xFD 0x00B2 #SUPERSCRIPT TWO +0xFE 0x25A0 #BLACK SQUARE +0xFF 0x00A0 #NO-BREAK SPACE + ADDED freshlib/data/_encodings/_sources/CP857.TXT Index: freshlib/data/_encodings/_sources/CP857.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP857.TXT @@ -0,0 +1,275 @@ +# +# Name: cp857_DOSTurkish to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp857_DOSTurkish code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp857_DOSTurkish order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS +0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x8d 0x0131 #LATIN SMALL LETTER DOTLESS I +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00e6 #LATIN SMALL LIGATURE AE +0x92 0x00c6 #LATIN CAPITAL LIGATURE AE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE +0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX +0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE +0x98 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE +0x9e 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA +0x9f 0x015f #LATIN SMALL LETTER S WITH CEDILLA +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE +0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE +0xa6 0x011e #LATIN CAPITAL LETTER G WITH BREVE +0xa7 0x011f #LATIN SMALL LETTER G WITH BREVE +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x00ae #REGISTERED SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE +0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE +0xb8 0x00a9 #COPYRIGHT SIGN +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x00a2 #CENT SIGN +0xbe 0x00a5 #YEN SIGN +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE +0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x00a4 #CURRENCY SIGN +0xd0 0x00ba #MASCULINE ORDINAL INDICATOR +0xd1 0x00aa #FEMININE ORDINAL INDICATOR +0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS +0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE +0xd5 #UNDEFINED +0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE +0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x00a6 #BROKEN BAR +0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE +0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE +0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE +0xe6 0x00b5 #MICRO SIGN +0xe7 #UNDEFINED +0xe8 0x00d7 #MULTIPLICATION SIGN +0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE +0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE +0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE +0xed 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS +0xee 0x00af #MACRON +0xef 0x00b4 #ACUTE ACCENT +0xf0 0x00ad #SOFT HYPHEN +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 #UNDEFINED +0xf3 0x00be #VULGAR FRACTION THREE QUARTERS +0xf4 0x00b6 #PILCROW SIGN +0xf5 0x00a7 #SECTION SIGN +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x00b8 #CEDILLA +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x00a8 #DIAERESIS +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x00b9 #SUPERSCRIPT ONE +0xfc 0x00b3 #SUPERSCRIPT THREE +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP860.TXT Index: freshlib/data/_encodings/_sources/CP860.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP860.TXT @@ -0,0 +1,275 @@ +# +# Name: cp860_DOSPortuguese to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp860_DOSPortuguese code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp860_DOSPortuguese order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e3 #LATIN SMALL LETTER A WITH TILDE +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE +0x8c 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE +0x8e 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE +0x8f 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE +0x92 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f5 #LATIN SMALL LETTER O WITH TILDE +0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE +0x96 0x00da #LATIN CAPITAL LETTER U WITH ACUTE +0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE +0x98 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE +0x99 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00a2 #CENT SIGN +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE +0x9e 0x20a7 #PESETA SIGN +0x9f 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE +0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE +0xa6 0x00aa #FEMININE ORDINAL INDICATOR +0xa7 0x00ba #MASCULINE ORDINAL INDICATOR +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b1 #GREEK SMALL LETTER ALPHA +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA +0xe3 0x03c0 #GREEK SMALL LETTER PI +0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xe5 0x03c3 #GREEK SMALL LETTER SIGMA +0xe6 0x00b5 #MICRO SIGN +0xe7 0x03c4 #GREEK SMALL LETTER TAU +0xe8 0x03a6 #GREEK CAPITAL LETTER PHI +0xe9 0x0398 #GREEK CAPITAL LETTER THETA +0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xeb 0x03b4 #GREEK SMALL LETTER DELTA +0xec 0x221e #INFINITY +0xed 0x03c6 #GREEK SMALL LETTER PHI +0xee 0x03b5 #GREEK SMALL LETTER EPSILON +0xef 0x2229 #INTERSECTION +0xf0 0x2261 #IDENTICAL TO +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x2320 #TOP HALF INTEGRAL +0xf5 0x2321 #BOTTOM HALF INTEGRAL +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP861.TXT Index: freshlib/data/_encodings/_sources/CP861.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP861.TXT @@ -0,0 +1,275 @@ +# +# Name: cp861_DOSIcelandic to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp861_DOSIcelandic code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp861_DOSIcelandic order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00d0 #LATIN CAPITAL LETTER ETH +0x8c 0x00f0 #LATIN SMALL LETTER ETH +0x8d 0x00de #LATIN CAPITAL LETTER THORN +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00e6 #LATIN SMALL LIGATURE AE +0x92 0x00c6 #LATIN CAPITAL LIGATURE AE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x00fe #LATIN SMALL LETTER THORN +0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX +0x97 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE +0x98 0x00fd #LATIN SMALL LETTER Y WITH ACUTE +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE +0x9e 0x20a7 #PESETA SIGN +0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE +0xa5 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE +0xa6 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE +0xa7 0x00da #LATIN CAPITAL LETTER U WITH ACUTE +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x2310 #REVERSED NOT SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b1 #GREEK SMALL LETTER ALPHA +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA +0xe3 0x03c0 #GREEK SMALL LETTER PI +0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xe5 0x03c3 #GREEK SMALL LETTER SIGMA +0xe6 0x00b5 #MICRO SIGN +0xe7 0x03c4 #GREEK SMALL LETTER TAU +0xe8 0x03a6 #GREEK CAPITAL LETTER PHI +0xe9 0x0398 #GREEK CAPITAL LETTER THETA +0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xeb 0x03b4 #GREEK SMALL LETTER DELTA +0xec 0x221e #INFINITY +0xed 0x03c6 #GREEK SMALL LETTER PHI +0xee 0x03b5 #GREEK SMALL LETTER EPSILON +0xef 0x2229 #INTERSECTION +0xf0 0x2261 #IDENTICAL TO +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x2320 #TOP HALF INTEGRAL +0xf5 0x2321 #BOTTOM HALF INTEGRAL +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP862.TXT Index: freshlib/data/_encodings/_sources/CP862.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP862.TXT @@ -0,0 +1,275 @@ +# +# Name: cp862_DOSHebrew to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp862_DOSHebrew code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp862_DOSHebrew order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x05d0 #HEBREW LETTER ALEF +0x81 0x05d1 #HEBREW LETTER BET +0x82 0x05d2 #HEBREW LETTER GIMEL +0x83 0x05d3 #HEBREW LETTER DALET +0x84 0x05d4 #HEBREW LETTER HE +0x85 0x05d5 #HEBREW LETTER VAV +0x86 0x05d6 #HEBREW LETTER ZAYIN +0x87 0x05d7 #HEBREW LETTER HET +0x88 0x05d8 #HEBREW LETTER TET +0x89 0x05d9 #HEBREW LETTER YOD +0x8a 0x05da #HEBREW LETTER FINAL KAF +0x8b 0x05db #HEBREW LETTER KAF +0x8c 0x05dc #HEBREW LETTER LAMED +0x8d 0x05dd #HEBREW LETTER FINAL MEM +0x8e 0x05de #HEBREW LETTER MEM +0x8f 0x05df #HEBREW LETTER FINAL NUN +0x90 0x05e0 #HEBREW LETTER NUN +0x91 0x05e1 #HEBREW LETTER SAMEKH +0x92 0x05e2 #HEBREW LETTER AYIN +0x93 0x05e3 #HEBREW LETTER FINAL PE +0x94 0x05e4 #HEBREW LETTER PE +0x95 0x05e5 #HEBREW LETTER FINAL TSADI +0x96 0x05e6 #HEBREW LETTER TSADI +0x97 0x05e7 #HEBREW LETTER QOF +0x98 0x05e8 #HEBREW LETTER RESH +0x99 0x05e9 #HEBREW LETTER SHIN +0x9a 0x05ea #HEBREW LETTER TAV +0x9b 0x00a2 #CENT SIGN +0x9c 0x00a3 #POUND SIGN +0x9d 0x00a5 #YEN SIGN +0x9e 0x20a7 #PESETA SIGN +0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE +0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE +0xa6 0x00aa #FEMININE ORDINAL INDICATOR +0xa7 0x00ba #MASCULINE ORDINAL INDICATOR +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x2310 #REVERSED NOT SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b1 #GREEK SMALL LETTER ALPHA +0xe1 0x00df #LATIN SMALL LETTER SHARP S (GERMAN) +0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA +0xe3 0x03c0 #GREEK SMALL LETTER PI +0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xe5 0x03c3 #GREEK SMALL LETTER SIGMA +0xe6 0x00b5 #MICRO SIGN +0xe7 0x03c4 #GREEK SMALL LETTER TAU +0xe8 0x03a6 #GREEK CAPITAL LETTER PHI +0xe9 0x0398 #GREEK CAPITAL LETTER THETA +0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xeb 0x03b4 #GREEK SMALL LETTER DELTA +0xec 0x221e #INFINITY +0xed 0x03c6 #GREEK SMALL LETTER PHI +0xee 0x03b5 #GREEK SMALL LETTER EPSILON +0xef 0x2229 #INTERSECTION +0xf0 0x2261 #IDENTICAL TO +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x2320 #TOP HALF INTEGRAL +0xf5 0x2321 #BOTTOM HALF INTEGRAL +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP863.TXT Index: freshlib/data/_encodings/_sources/CP863.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP863.TXT @@ -0,0 +1,275 @@ +# +# Name: cp863_DOSCanadaF to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp863_DOSCanadaF code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp863_DOSCanadaF order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00b6 #PILCROW SIGN +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS +0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x8d 0x2017 #DOUBLE LOW LINE +0x8e 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE +0x8f 0x00a7 #SECTION SIGN +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE +0x92 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS +0x95 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS +0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX +0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE +0x98 0x00a4 #CURRENCY SIGN +0x99 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00a2 #CENT SIGN +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE +0x9e 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK +0xa0 0x00a6 #BROKEN BAR +0xa1 0x00b4 #ACUTE ACCENT +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00a8 #DIAERESIS +0xa5 0x00b8 #CEDILLA +0xa6 0x00b3 #SUPERSCRIPT THREE +0xa7 0x00af #MACRON +0xa8 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xa9 0x2310 #REVERSED NOT SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00be #VULGAR FRACTION THREE QUARTERS +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b1 #GREEK SMALL LETTER ALPHA +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA +0xe3 0x03c0 #GREEK SMALL LETTER PI +0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xe5 0x03c3 #GREEK SMALL LETTER SIGMA +0xe6 0x00b5 #MICRO SIGN +0xe7 0x03c4 #GREEK SMALL LETTER TAU +0xe8 0x03a6 #GREEK CAPITAL LETTER PHI +0xe9 0x0398 #GREEK CAPITAL LETTER THETA +0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xeb 0x03b4 #GREEK SMALL LETTER DELTA +0xec 0x221e #INFINITY +0xed 0x03c6 #GREEK SMALL LETTER PHI +0xee 0x03b5 #GREEK SMALL LETTER EPSILON +0xef 0x2229 #INTERSECTION +0xf0 0x2261 #IDENTICAL TO +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x2320 #TOP HALF INTEGRAL +0xf5 0x2321 #BOTTOM HALF INTEGRAL +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP864.TXT Index: freshlib/data/_encodings/_sources/CP864.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP864.TXT @@ -0,0 +1,275 @@ +# +# Name: cp864_DOSArabic to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp864_DOSArabic code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp864_DOSArabic order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x066a #ARABIC PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00b0 #DEGREE SIGN +0x81 0x00b7 #MIDDLE DOT +0x82 0x2219 #BULLET OPERATOR +0x83 0x221a #SQUARE ROOT +0x84 0x2592 #MEDIUM SHADE +0x85 0x2500 #FORMS LIGHT HORIZONTAL +0x86 0x2502 #FORMS LIGHT VERTICAL +0x87 0x253c #FORMS LIGHT VERTICAL AND HORIZONTAL +0x88 0x2524 #FORMS LIGHT VERTICAL AND LEFT +0x89 0x252c #FORMS LIGHT DOWN AND HORIZONTAL +0x8a 0x251c #FORMS LIGHT VERTICAL AND RIGHT +0x8b 0x2534 #FORMS LIGHT UP AND HORIZONTAL +0x8c 0x2510 #FORMS LIGHT DOWN AND LEFT +0x8d 0x250c #FORMS LIGHT DOWN AND RIGHT +0x8e 0x2514 #FORMS LIGHT UP AND RIGHT +0x8f 0x2518 #FORMS LIGHT UP AND LEFT +0x90 0x03b2 #GREEK SMALL BETA +0x91 0x221e #INFINITY +0x92 0x03c6 #GREEK SMALL PHI +0x93 0x00b1 #PLUS-OR-MINUS SIGN +0x94 0x00bd #FRACTION 1/2 +0x95 0x00bc #FRACTION 1/4 +0x96 0x2248 #ALMOST EQUAL TO +0x97 0x00ab #LEFT POINTING GUILLEMET +0x98 0x00bb #RIGHT POINTING GUILLEMET +0x99 0xfef7 #ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM +0x9a 0xfef8 #ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM +0x9b #UNDEFINED +0x9c #UNDEFINED +0x9d 0xfefb #ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM +0x9e 0xfefc #ARABIC LIGATURE LAM WITH ALEF FINAL FORM +0x9f #UNDEFINED +0xa0 0x00a0 #NON-BREAKING SPACE +0xa1 0x00ad #SOFT HYPHEN +0xa2 0xfe82 #ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM +0xa3 0x00a3 #POUND SIGN +0xa4 0x00a4 #CURRENCY SIGN +0xa5 0xfe84 #ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM +0xa6 #UNDEFINED +0xa7 #UNDEFINED +0xa8 0xfe8e #ARABIC LETTER ALEF FINAL FORM +0xa9 0xfe8f #ARABIC LETTER BEH ISOLATED FORM +0xaa 0xfe95 #ARABIC LETTER TEH ISOLATED FORM +0xab 0xfe99 #ARABIC LETTER THEH ISOLATED FORM +0xac 0x060c #ARABIC COMMA +0xad 0xfe9d #ARABIC LETTER JEEM ISOLATED FORM +0xae 0xfea1 #ARABIC LETTER HAH ISOLATED FORM +0xaf 0xfea5 #ARABIC LETTER KHAH ISOLATED FORM +0xb0 0x0660 #ARABIC-INDIC DIGIT ZERO +0xb1 0x0661 #ARABIC-INDIC DIGIT ONE +0xb2 0x0662 #ARABIC-INDIC DIGIT TWO +0xb3 0x0663 #ARABIC-INDIC DIGIT THREE +0xb4 0x0664 #ARABIC-INDIC DIGIT FOUR +0xb5 0x0665 #ARABIC-INDIC DIGIT FIVE +0xb6 0x0666 #ARABIC-INDIC DIGIT SIX +0xb7 0x0667 #ARABIC-INDIC DIGIT SEVEN +0xb8 0x0668 #ARABIC-INDIC DIGIT EIGHT +0xb9 0x0669 #ARABIC-INDIC DIGIT NINE +0xba 0xfed1 #ARABIC LETTER FEH ISOLATED FORM +0xbb 0x061b #ARABIC SEMICOLON +0xbc 0xfeb1 #ARABIC LETTER SEEN ISOLATED FORM +0xbd 0xfeb5 #ARABIC LETTER SHEEN ISOLATED FORM +0xbe 0xfeb9 #ARABIC LETTER SAD ISOLATED FORM +0xbf 0x061f #ARABIC QUESTION MARK +0xc0 0x00a2 #CENT SIGN +0xc1 0xfe80 #ARABIC LETTER HAMZA ISOLATED FORM +0xc2 0xfe81 #ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM +0xc3 0xfe83 #ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM +0xc4 0xfe85 #ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM +0xc5 0xfeca #ARABIC LETTER AIN FINAL FORM +0xc6 0xfe8b #ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM +0xc7 0xfe8d #ARABIC LETTER ALEF ISOLATED FORM +0xc8 0xfe91 #ARABIC LETTER BEH INITIAL FORM +0xc9 0xfe93 #ARABIC LETTER TEH MARBUTA ISOLATED FORM +0xca 0xfe97 #ARABIC LETTER TEH INITIAL FORM +0xcb 0xfe9b #ARABIC LETTER THEH INITIAL FORM +0xcc 0xfe9f #ARABIC LETTER JEEM INITIAL FORM +0xcd 0xfea3 #ARABIC LETTER HAH INITIAL FORM +0xce 0xfea7 #ARABIC LETTER KHAH INITIAL FORM +0xcf 0xfea9 #ARABIC LETTER DAL ISOLATED FORM +0xd0 0xfeab #ARABIC LETTER THAL ISOLATED FORM +0xd1 0xfead #ARABIC LETTER REH ISOLATED FORM +0xd2 0xfeaf #ARABIC LETTER ZAIN ISOLATED FORM +0xd3 0xfeb3 #ARABIC LETTER SEEN INITIAL FORM +0xd4 0xfeb7 #ARABIC LETTER SHEEN INITIAL FORM +0xd5 0xfebb #ARABIC LETTER SAD INITIAL FORM +0xd6 0xfebf #ARABIC LETTER DAD INITIAL FORM +0xd7 0xfec1 #ARABIC LETTER TAH ISOLATED FORM +0xd8 0xfec5 #ARABIC LETTER ZAH ISOLATED FORM +0xd9 0xfecb #ARABIC LETTER AIN INITIAL FORM +0xda 0xfecf #ARABIC LETTER GHAIN INITIAL FORM +0xdb 0x00a6 #BROKEN VERTICAL BAR +0xdc 0x00ac #NOT SIGN +0xdd 0x00f7 #DIVISION SIGN +0xde 0x00d7 #MULTIPLICATION SIGN +0xdf 0xfec9 #ARABIC LETTER AIN ISOLATED FORM +0xe0 0x0640 #ARABIC TATWEEL +0xe1 0xfed3 #ARABIC LETTER FEH INITIAL FORM +0xe2 0xfed7 #ARABIC LETTER QAF INITIAL FORM +0xe3 0xfedb #ARABIC LETTER KAF INITIAL FORM +0xe4 0xfedf #ARABIC LETTER LAM INITIAL FORM +0xe5 0xfee3 #ARABIC LETTER MEEM INITIAL FORM +0xe6 0xfee7 #ARABIC LETTER NOON INITIAL FORM +0xe7 0xfeeb #ARABIC LETTER HEH INITIAL FORM +0xe8 0xfeed #ARABIC LETTER WAW ISOLATED FORM +0xe9 0xfeef #ARABIC LETTER ALEF MAKSURA ISOLATED FORM +0xea 0xfef3 #ARABIC LETTER YEH INITIAL FORM +0xeb 0xfebd #ARABIC LETTER DAD ISOLATED FORM +0xec 0xfecc #ARABIC LETTER AIN MEDIAL FORM +0xed 0xfece #ARABIC LETTER GHAIN FINAL FORM +0xee 0xfecd #ARABIC LETTER GHAIN ISOLATED FORM +0xef 0xfee1 #ARABIC LETTER MEEM ISOLATED FORM +0xf0 0xfe7d #ARABIC SHADDA MEDIAL FORM +0xf1 0x0651 #ARABIC SHADDAH +0xf2 0xfee5 #ARABIC LETTER NOON ISOLATED FORM +0xf3 0xfee9 #ARABIC LETTER HEH ISOLATED FORM +0xf4 0xfeec #ARABIC LETTER HEH MEDIAL FORM +0xf5 0xfef0 #ARABIC LETTER ALEF MAKSURA FINAL FORM +0xf6 0xfef2 #ARABIC LETTER YEH FINAL FORM +0xf7 0xfed0 #ARABIC LETTER GHAIN MEDIAL FORM +0xf8 0xfed5 #ARABIC LETTER QAF ISOLATED FORM +0xf9 0xfef5 #ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM +0xfa 0xfef6 #ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM +0xfb 0xfedd #ARABIC LETTER LAM ISOLATED FORM +0xfc 0xfed9 #ARABIC LETTER KAF ISOLATED FORM +0xfd 0xfef1 #ARABIC LETTER YEH ISOLATED FORM +0xfe 0x25a0 #BLACK SQUARE +0xff #UNDEFINED + + ADDED freshlib/data/_encodings/_sources/CP865.TXT Index: freshlib/data/_encodings/_sources/CP865.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP865.TXT @@ -0,0 +1,275 @@ +# +# Name: cp865_DOSNordic to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp865_DOSNordic code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp865_DOSNordic order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA +0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS +0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE +0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS +0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE +0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE +0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA +0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX +0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS +0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE +0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS +0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX +0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE +0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE +0x91 0x00e6 #LATIN SMALL LIGATURE AE +0x92 0x00c6 #LATIN CAPITAL LIGATURE AE +0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS +0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE +0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX +0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE +0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS +0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE +0x9c 0x00a3 #POUND SIGN +0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE +0x9e 0x20a7 #PESETA SIGN +0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK +0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE +0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE +0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE +0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE +0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE +0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE +0xa6 0x00aa #FEMININE ORDINAL INDICATOR +0xa7 0x00ba #MASCULINE ORDINAL INDICATOR +0xa8 0x00bf #INVERTED QUESTION MARK +0xa9 0x2310 #REVERSED NOT SIGN +0xaa 0x00ac #NOT SIGN +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x00bc #VULGAR FRACTION ONE QUARTER +0xad 0x00a1 #INVERTED EXCLAMATION MARK +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00a4 #CURRENCY SIGN +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b1 #GREEK SMALL LETTER ALPHA +0xe1 0x00df #LATIN SMALL LETTER SHARP S +0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA +0xe3 0x03c0 #GREEK SMALL LETTER PI +0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xe5 0x03c3 #GREEK SMALL LETTER SIGMA +0xe6 0x00b5 #MICRO SIGN +0xe7 0x03c4 #GREEK SMALL LETTER TAU +0xe8 0x03a6 #GREEK CAPITAL LETTER PHI +0xe9 0x0398 #GREEK CAPITAL LETTER THETA +0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xeb 0x03b4 #GREEK SMALL LETTER DELTA +0xec 0x221e #INFINITY +0xed 0x03c6 #GREEK SMALL LETTER PHI +0xee 0x03b5 #GREEK SMALL LETTER EPSILON +0xef 0x2229 #INTERSECTION +0xf0 0x2261 #IDENTICAL TO +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x2265 #GREATER-THAN OR EQUAL TO +0xf3 0x2264 #LESS-THAN OR EQUAL TO +0xf4 0x2320 #TOP HALF INTEGRAL +0xf5 0x2321 #BOTTOM HALF INTEGRAL +0xf6 0x00f7 #DIVISION SIGN +0xf7 0x2248 #ALMOST EQUAL TO +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N +0xfd 0x00b2 #SUPERSCRIPT TWO +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP866.TXT Index: freshlib/data/_encodings/_sources/CP866.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP866.TXT @@ -0,0 +1,275 @@ +# +# Name: cp866_DOSCyrillicRussian to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp866_DOSCyrillicRussian code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp866_DOSCyrillicRussian order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 0x0410 #CYRILLIC CAPITAL LETTER A +0x81 0x0411 #CYRILLIC CAPITAL LETTER BE +0x82 0x0412 #CYRILLIC CAPITAL LETTER VE +0x83 0x0413 #CYRILLIC CAPITAL LETTER GHE +0x84 0x0414 #CYRILLIC CAPITAL LETTER DE +0x85 0x0415 #CYRILLIC CAPITAL LETTER IE +0x86 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0x87 0x0417 #CYRILLIC CAPITAL LETTER ZE +0x88 0x0418 #CYRILLIC CAPITAL LETTER I +0x89 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0x8a 0x041a #CYRILLIC CAPITAL LETTER KA +0x8b 0x041b #CYRILLIC CAPITAL LETTER EL +0x8c 0x041c #CYRILLIC CAPITAL LETTER EM +0x8d 0x041d #CYRILLIC CAPITAL LETTER EN +0x8e 0x041e #CYRILLIC CAPITAL LETTER O +0x8f 0x041f #CYRILLIC CAPITAL LETTER PE +0x90 0x0420 #CYRILLIC CAPITAL LETTER ER +0x91 0x0421 #CYRILLIC CAPITAL LETTER ES +0x92 0x0422 #CYRILLIC CAPITAL LETTER TE +0x93 0x0423 #CYRILLIC CAPITAL LETTER U +0x94 0x0424 #CYRILLIC CAPITAL LETTER EF +0x95 0x0425 #CYRILLIC CAPITAL LETTER HA +0x96 0x0426 #CYRILLIC CAPITAL LETTER TSE +0x97 0x0427 #CYRILLIC CAPITAL LETTER CHE +0x98 0x0428 #CYRILLIC CAPITAL LETTER SHA +0x99 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0x9a 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN +0x9b 0x042b #CYRILLIC CAPITAL LETTER YERU +0x9c 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN +0x9d 0x042d #CYRILLIC CAPITAL LETTER E +0x9e 0x042e #CYRILLIC CAPITAL LETTER YU +0x9f 0x042f #CYRILLIC CAPITAL LETTER YA +0xa0 0x0430 #CYRILLIC SMALL LETTER A +0xa1 0x0431 #CYRILLIC SMALL LETTER BE +0xa2 0x0432 #CYRILLIC SMALL LETTER VE +0xa3 0x0433 #CYRILLIC SMALL LETTER GHE +0xa4 0x0434 #CYRILLIC SMALL LETTER DE +0xa5 0x0435 #CYRILLIC SMALL LETTER IE +0xa6 0x0436 #CYRILLIC SMALL LETTER ZHE +0xa7 0x0437 #CYRILLIC SMALL LETTER ZE +0xa8 0x0438 #CYRILLIC SMALL LETTER I +0xa9 0x0439 #CYRILLIC SMALL LETTER SHORT I +0xaa 0x043a #CYRILLIC SMALL LETTER KA +0xab 0x043b #CYRILLIC SMALL LETTER EL +0xac 0x043c #CYRILLIC SMALL LETTER EM +0xad 0x043d #CYRILLIC SMALL LETTER EN +0xae 0x043e #CYRILLIC SMALL LETTER O +0xaf 0x043f #CYRILLIC SMALL LETTER PE +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x258c #LEFT HALF BLOCK +0xde 0x2590 #RIGHT HALF BLOCK +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x0440 #CYRILLIC SMALL LETTER ER +0xe1 0x0441 #CYRILLIC SMALL LETTER ES +0xe2 0x0442 #CYRILLIC SMALL LETTER TE +0xe3 0x0443 #CYRILLIC SMALL LETTER U +0xe4 0x0444 #CYRILLIC SMALL LETTER EF +0xe5 0x0445 #CYRILLIC SMALL LETTER HA +0xe6 0x0446 #CYRILLIC SMALL LETTER TSE +0xe7 0x0447 #CYRILLIC SMALL LETTER CHE +0xe8 0x0448 #CYRILLIC SMALL LETTER SHA +0xe9 0x0449 #CYRILLIC SMALL LETTER SHCHA +0xea 0x044a #CYRILLIC SMALL LETTER HARD SIGN +0xeb 0x044b #CYRILLIC SMALL LETTER YERU +0xec 0x044c #CYRILLIC SMALL LETTER SOFT SIGN +0xed 0x044d #CYRILLIC SMALL LETTER E +0xee 0x044e #CYRILLIC SMALL LETTER YU +0xef 0x044f #CYRILLIC SMALL LETTER YA +0xf0 0x0401 #CYRILLIC CAPITAL LETTER IO +0xf1 0x0451 #CYRILLIC SMALL LETTER IO +0xf2 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE +0xf3 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE +0xf4 0x0407 #CYRILLIC CAPITAL LETTER YI +0xf5 0x0457 #CYRILLIC SMALL LETTER YI +0xf6 0x040e #CYRILLIC CAPITAL LETTER SHORT U +0xf7 0x045e #CYRILLIC SMALL LETTER SHORT U +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x2219 #BULLET OPERATOR +0xfa 0x00b7 #MIDDLE DOT +0xfb 0x221a #SQUARE ROOT +0xfc 0x2116 #NUMERO SIGN +0xfd 0x00a4 #CURRENCY SIGN +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP869.TXT Index: freshlib/data/_encodings/_sources/CP869.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP869.TXT @@ -0,0 +1,275 @@ +# +# Name: cp869_DOSGreek2 to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp869_DOSGreek2 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp869_DOSGreek2 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0a 0x000a #LINE FEED +0x0b 0x000b #VERTICAL TABULATION +0x0c 0x000c #FORM FEED +0x0d 0x000d #CARRIAGE RETURN +0x0e 0x000e #SHIFT OUT +0x0f 0x000f #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1a 0x001a #SUBSTITUTE +0x1b 0x001b #ESCAPE +0x1c 0x001c #FILE SEPARATOR +0x1d 0x001d #GROUP SEPARATOR +0x1e 0x001e #RECORD SEPARATOR +0x1f 0x001f #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2a 0x002a #ASTERISK +0x2b 0x002b #PLUS SIGN +0x2c 0x002c #COMMA +0x2d 0x002d #HYPHEN-MINUS +0x2e 0x002e #FULL STOP +0x2f 0x002f #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3a 0x003a #COLON +0x3b 0x003b #SEMICOLON +0x3c 0x003c #LESS-THAN SIGN +0x3d 0x003d #EQUALS SIGN +0x3e 0x003e #GREATER-THAN SIGN +0x3f 0x003f #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4a 0x004a #LATIN CAPITAL LETTER J +0x4b 0x004b #LATIN CAPITAL LETTER K +0x4c 0x004c #LATIN CAPITAL LETTER L +0x4d 0x004d #LATIN CAPITAL LETTER M +0x4e 0x004e #LATIN CAPITAL LETTER N +0x4f 0x004f #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5a 0x005a #LATIN CAPITAL LETTER Z +0x5b 0x005b #LEFT SQUARE BRACKET +0x5c 0x005c #REVERSE SOLIDUS +0x5d 0x005d #RIGHT SQUARE BRACKET +0x5e 0x005e #CIRCUMFLEX ACCENT +0x5f 0x005f #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6a 0x006a #LATIN SMALL LETTER J +0x6b 0x006b #LATIN SMALL LETTER K +0x6c 0x006c #LATIN SMALL LETTER L +0x6d 0x006d #LATIN SMALL LETTER M +0x6e 0x006e #LATIN SMALL LETTER N +0x6f 0x006f #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7a 0x007a #LATIN SMALL LETTER Z +0x7b 0x007b #LEFT CURLY BRACKET +0x7c 0x007c #VERTICAL LINE +0x7d 0x007d #RIGHT CURLY BRACKET +0x7e 0x007e #TILDE +0x7f 0x007f #DELETE +0x80 #UNDEFINED +0x81 #UNDEFINED +0x82 #UNDEFINED +0x83 #UNDEFINED +0x84 #UNDEFINED +0x85 #UNDEFINED +0x86 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS +0x87 #UNDEFINED +0x88 0x00b7 #MIDDLE DOT +0x89 0x00ac #NOT SIGN +0x8a 0x00a6 #BROKEN BAR +0x8b 0x2018 #LEFT SINGLE QUOTATION MARK +0x8c 0x2019 #RIGHT SINGLE QUOTATION MARK +0x8d 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS +0x8e 0x2015 #HORIZONTAL BAR +0x8f 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS +0x90 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS +0x91 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0x92 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS +0x93 #UNDEFINED +0x94 #UNDEFINED +0x95 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS +0x96 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0x97 0x00a9 #COPYRIGHT SIGN +0x98 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS +0x99 0x00b2 #SUPERSCRIPT TWO +0x9a 0x00b3 #SUPERSCRIPT THREE +0x9b 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS +0x9c 0x00a3 #POUND SIGN +0x9d 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS +0x9e 0x03ae #GREEK SMALL LETTER ETA WITH TONOS +0x9f 0x03af #GREEK SMALL LETTER IOTA WITH TONOS +0xa0 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA +0xa1 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0xa2 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS +0xa3 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS +0xa4 0x0391 #GREEK CAPITAL LETTER ALPHA +0xa5 0x0392 #GREEK CAPITAL LETTER BETA +0xa6 0x0393 #GREEK CAPITAL LETTER GAMMA +0xa7 0x0394 #GREEK CAPITAL LETTER DELTA +0xa8 0x0395 #GREEK CAPITAL LETTER EPSILON +0xa9 0x0396 #GREEK CAPITAL LETTER ZETA +0xaa 0x0397 #GREEK CAPITAL LETTER ETA +0xab 0x00bd #VULGAR FRACTION ONE HALF +0xac 0x0398 #GREEK CAPITAL LETTER THETA +0xad 0x0399 #GREEK CAPITAL LETTER IOTA +0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xb0 0x2591 #LIGHT SHADE +0xb1 0x2592 #MEDIUM SHADE +0xb2 0x2593 #DARK SHADE +0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xb5 0x039a #GREEK CAPITAL LETTER KAPPA +0xb6 0x039b #GREEK CAPITAL LETTER LAMDA +0xb7 0x039c #GREEK CAPITAL LETTER MU +0xb8 0x039d #GREEK CAPITAL LETTER NU +0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT +0xbd 0x039e #GREEK CAPITAL LETTER XI +0xbe 0x039f #GREEK CAPITAL LETTER OMICRON +0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xc6 0x03a0 #GREEK CAPITAL LETTER PI +0xc7 0x03a1 #GREEK CAPITAL LETTER RHO +0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT +0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xcf 0x03a3 #GREEK CAPITAL LETTER SIGMA +0xd0 0x03a4 #GREEK CAPITAL LETTER TAU +0xd1 0x03a5 #GREEK CAPITAL LETTER UPSILON +0xd2 0x03a6 #GREEK CAPITAL LETTER PHI +0xd3 0x03a7 #GREEK CAPITAL LETTER CHI +0xd4 0x03a8 #GREEK CAPITAL LETTER PSI +0xd5 0x03a9 #GREEK CAPITAL LETTER OMEGA +0xd6 0x03b1 #GREEK SMALL LETTER ALPHA +0xd7 0x03b2 #GREEK SMALL LETTER BETA +0xd8 0x03b3 #GREEK SMALL LETTER GAMMA +0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xdb 0x2588 #FULL BLOCK +0xdc 0x2584 #LOWER HALF BLOCK +0xdd 0x03b4 #GREEK SMALL LETTER DELTA +0xde 0x03b5 #GREEK SMALL LETTER EPSILON +0xdf 0x2580 #UPPER HALF BLOCK +0xe0 0x03b6 #GREEK SMALL LETTER ZETA +0xe1 0x03b7 #GREEK SMALL LETTER ETA +0xe2 0x03b8 #GREEK SMALL LETTER THETA +0xe3 0x03b9 #GREEK SMALL LETTER IOTA +0xe4 0x03ba #GREEK SMALL LETTER KAPPA +0xe5 0x03bb #GREEK SMALL LETTER LAMDA +0xe6 0x03bc #GREEK SMALL LETTER MU +0xe7 0x03bd #GREEK SMALL LETTER NU +0xe8 0x03be #GREEK SMALL LETTER XI +0xe9 0x03bf #GREEK SMALL LETTER OMICRON +0xea 0x03c0 #GREEK SMALL LETTER PI +0xeb 0x03c1 #GREEK SMALL LETTER RHO +0xec 0x03c3 #GREEK SMALL LETTER SIGMA +0xed 0x03c2 #GREEK SMALL LETTER FINAL SIGMA +0xee 0x03c4 #GREEK SMALL LETTER TAU +0xef 0x0384 #GREEK TONOS +0xf0 0x00ad #SOFT HYPHEN +0xf1 0x00b1 #PLUS-MINUS SIGN +0xf2 0x03c5 #GREEK SMALL LETTER UPSILON +0xf3 0x03c6 #GREEK SMALL LETTER PHI +0xf4 0x03c7 #GREEK SMALL LETTER CHI +0xf5 0x00a7 #SECTION SIGN +0xf6 0x03c8 #GREEK SMALL LETTER PSI +0xf7 0x0385 #GREEK DIALYTIKA TONOS +0xf8 0x00b0 #DEGREE SIGN +0xf9 0x00a8 #DIAERESIS +0xfa 0x03c9 #GREEK SMALL LETTER OMEGA +0xfb 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0xfc 0x03b0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0xfd 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS +0xfe 0x25a0 #BLACK SQUARE +0xff 0x00a0 #NO-BREAK SPACE + + ADDED freshlib/data/_encodings/_sources/CP874.TXT Index: freshlib/data/_encodings/_sources/CP874.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP874.TXT @@ -0,0 +1,274 @@ +# +# Name: cp874 to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp874 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp874 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #UNDEFINED +0x82 #UNDEFINED +0x83 #UNDEFINED +0x84 #UNDEFINED +0x85 0x2026 #HORIZONTAL ELLIPSIS +0x86 #UNDEFINED +0x87 #UNDEFINED +0x88 #UNDEFINED +0x89 #UNDEFINED +0x8A #UNDEFINED +0x8B #UNDEFINED +0x8C #UNDEFINED +0x8D #UNDEFINED +0x8E #UNDEFINED +0x8F #UNDEFINED +0x90 #UNDEFINED +0x91 0x2018 #LEFT SINGLE QUOTATION MARK +0x92 0x2019 #RIGHT SINGLE QUOTATION MARK +0x93 0x201C #LEFT DOUBLE QUOTATION MARK +0x94 0x201D #RIGHT DOUBLE QUOTATION MARK +0x95 0x2022 #BULLET +0x96 0x2013 #EN DASH +0x97 0x2014 #EM DASH +0x98 #UNDEFINED +0x99 #UNDEFINED +0x9A #UNDEFINED +0x9B #UNDEFINED +0x9C #UNDEFINED +0x9D #UNDEFINED +0x9E #UNDEFINED +0x9F #UNDEFINED +0xA0 0x00A0 #NO-BREAK SPACE +0xA1 0x0E01 #THAI CHARACTER KO KAI +0xA2 0x0E02 #THAI CHARACTER KHO KHAI +0xA3 0x0E03 #THAI CHARACTER KHO KHUAT +0xA4 0x0E04 #THAI CHARACTER KHO KHWAI +0xA5 0x0E05 #THAI CHARACTER KHO KHON +0xA6 0x0E06 #THAI CHARACTER KHO RAKHANG +0xA7 0x0E07 #THAI CHARACTER NGO NGU +0xA8 0x0E08 #THAI CHARACTER CHO CHAN +0xA9 0x0E09 #THAI CHARACTER CHO CHING +0xAA 0x0E0A #THAI CHARACTER CHO CHANG +0xAB 0x0E0B #THAI CHARACTER SO SO +0xAC 0x0E0C #THAI CHARACTER CHO CHOE +0xAD 0x0E0D #THAI CHARACTER YO YING +0xAE 0x0E0E #THAI CHARACTER DO CHADA +0xAF 0x0E0F #THAI CHARACTER TO PATAK +0xB0 0x0E10 #THAI CHARACTER THO THAN +0xB1 0x0E11 #THAI CHARACTER THO NANGMONTHO +0xB2 0x0E12 #THAI CHARACTER THO PHUTHAO +0xB3 0x0E13 #THAI CHARACTER NO NEN +0xB4 0x0E14 #THAI CHARACTER DO DEK +0xB5 0x0E15 #THAI CHARACTER TO TAO +0xB6 0x0E16 #THAI CHARACTER THO THUNG +0xB7 0x0E17 #THAI CHARACTER THO THAHAN +0xB8 0x0E18 #THAI CHARACTER THO THONG +0xB9 0x0E19 #THAI CHARACTER NO NU +0xBA 0x0E1A #THAI CHARACTER BO BAIMAI +0xBB 0x0E1B #THAI CHARACTER PO PLA +0xBC 0x0E1C #THAI CHARACTER PHO PHUNG +0xBD 0x0E1D #THAI CHARACTER FO FA +0xBE 0x0E1E #THAI CHARACTER PHO PHAN +0xBF 0x0E1F #THAI CHARACTER FO FAN +0xC0 0x0E20 #THAI CHARACTER PHO SAMPHAO +0xC1 0x0E21 #THAI CHARACTER MO MA +0xC2 0x0E22 #THAI CHARACTER YO YAK +0xC3 0x0E23 #THAI CHARACTER RO RUA +0xC4 0x0E24 #THAI CHARACTER RU +0xC5 0x0E25 #THAI CHARACTER LO LING +0xC6 0x0E26 #THAI CHARACTER LU +0xC7 0x0E27 #THAI CHARACTER WO WAEN +0xC8 0x0E28 #THAI CHARACTER SO SALA +0xC9 0x0E29 #THAI CHARACTER SO RUSI +0xCA 0x0E2A #THAI CHARACTER SO SUA +0xCB 0x0E2B #THAI CHARACTER HO HIP +0xCC 0x0E2C #THAI CHARACTER LO CHULA +0xCD 0x0E2D #THAI CHARACTER O ANG +0xCE 0x0E2E #THAI CHARACTER HO NOKHUK +0xCF 0x0E2F #THAI CHARACTER PAIYANNOI +0xD0 0x0E30 #THAI CHARACTER SARA A +0xD1 0x0E31 #THAI CHARACTER MAI HAN-AKAT +0xD2 0x0E32 #THAI CHARACTER SARA AA +0xD3 0x0E33 #THAI CHARACTER SARA AM +0xD4 0x0E34 #THAI CHARACTER SARA I +0xD5 0x0E35 #THAI CHARACTER SARA II +0xD6 0x0E36 #THAI CHARACTER SARA UE +0xD7 0x0E37 #THAI CHARACTER SARA UEE +0xD8 0x0E38 #THAI CHARACTER SARA U +0xD9 0x0E39 #THAI CHARACTER SARA UU +0xDA 0x0E3A #THAI CHARACTER PHINTHU +0xDB #UNDEFINED +0xDC #UNDEFINED +0xDD #UNDEFINED +0xDE #UNDEFINED +0xDF 0x0E3F #THAI CURRENCY SYMBOL BAHT +0xE0 0x0E40 #THAI CHARACTER SARA E +0xE1 0x0E41 #THAI CHARACTER SARA AE +0xE2 0x0E42 #THAI CHARACTER SARA O +0xE3 0x0E43 #THAI CHARACTER SARA AI MAIMUAN +0xE4 0x0E44 #THAI CHARACTER SARA AI MAIMALAI +0xE5 0x0E45 #THAI CHARACTER LAKKHANGYAO +0xE6 0x0E46 #THAI CHARACTER MAIYAMOK +0xE7 0x0E47 #THAI CHARACTER MAITAIKHU +0xE8 0x0E48 #THAI CHARACTER MAI EK +0xE9 0x0E49 #THAI CHARACTER MAI THO +0xEA 0x0E4A #THAI CHARACTER MAI TRI +0xEB 0x0E4B #THAI CHARACTER MAI CHATTAWA +0xEC 0x0E4C #THAI CHARACTER THANTHAKHAT +0xED 0x0E4D #THAI CHARACTER NIKHAHIT +0xEE 0x0E4E #THAI CHARACTER YAMAKKAN +0xEF 0x0E4F #THAI CHARACTER FONGMAN +0xF0 0x0E50 #THAI DIGIT ZERO +0xF1 0x0E51 #THAI DIGIT ONE +0xF2 0x0E52 #THAI DIGIT TWO +0xF3 0x0E53 #THAI DIGIT THREE +0xF4 0x0E54 #THAI DIGIT FOUR +0xF5 0x0E55 #THAI DIGIT FIVE +0xF6 0x0E56 #THAI DIGIT SIX +0xF7 0x0E57 #THAI DIGIT SEVEN +0xF8 0x0E58 #THAI DIGIT EIGHT +0xF9 0x0E59 #THAI DIGIT NINE +0xFA 0x0E5A #THAI CHARACTER ANGKHANKHU +0xFB 0x0E5B #THAI CHARACTER KHOMUT +0xFC #UNDEFINED +0xFD #UNDEFINED +0xFE #UNDEFINED +0xFF #UNDEFINED ADDED freshlib/data/_encodings/_sources/CP875.TXT Index: freshlib/data/_encodings/_sources/CP875.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP875.TXT @@ -0,0 +1,275 @@ +# +# Name: cp875_IBMGreek to Unicode table +# Unicode version: 2.0 +# Table version: 2.00 +# Table format: Format A +# Date: 04/24/96 +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp875_IBMGreek code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp875_IBMGreek order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x009C #CONTROL +0x05 0x0009 #HORIZONTAL TABULATION +0x06 0x0086 #CONTROL +0x07 0x007F #DELETE +0x08 0x0097 #CONTROL +0x09 0x008D #CONTROL +0x0A 0x008E #CONTROL +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x009D #CONTROL +0x15 0x0085 #CONTROL +0x16 0x0008 #BACKSPACE +0x17 0x0087 #CONTROL +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x0092 #CONTROL +0x1B 0x008F #CONTROL +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0080 #CONTROL +0x21 0x0081 #CONTROL +0x22 0x0082 #CONTROL +0x23 0x0083 #CONTROL +0x24 0x0084 #CONTROL +0x25 0x000A #LINE FEED +0x26 0x0017 #END OF TRANSMISSION BLOCK +0x27 0x001B #ESCAPE +0x28 0x0088 #CONTROL +0x29 0x0089 #CONTROL +0x2A 0x008A #CONTROL +0x2B 0x008B #CONTROL +0x2C 0x008C #CONTROL +0x2D 0x0005 #ENQUIRY +0x2E 0x0006 #ACKNOWLEDGE +0x2F 0x0007 #BELL +0x30 0x0090 #CONTROL +0x31 0x0091 #CONTROL +0x32 0x0016 #SYNCHRONOUS IDLE +0x33 0x0093 #CONTROL +0x34 0x0094 #CONTROL +0x35 0x0095 #CONTROL +0x36 0x0096 #CONTROL +0x37 0x0004 #END OF TRANSMISSION +0x38 0x0098 #CONTROL +0x39 0x0099 #CONTROL +0x3A 0x009A #CONTROL +0x3B 0x009B #CONTROL +0x3C 0x0014 #DEVICE CONTROL FOUR +0x3D 0x0015 #NEGATIVE ACKNOWLEDGE +0x3E 0x009E #CONTROL +0x3F 0x001A #SUBSTITUTE +0x40 0x0020 #SPACE +0x41 0x0391 #GREEK CAPITAL LETTER ALPHA +0x42 0x0392 #GREEK CAPITAL LETTER BETA +0x43 0x0393 #GREEK CAPITAL LETTER GAMMA +0x44 0x0394 #GREEK CAPITAL LETTER DELTA +0x45 0x0395 #GREEK CAPITAL LETTER EPSILON +0x46 0x0396 #GREEK CAPITAL LETTER ZETA +0x47 0x0397 #GREEK CAPITAL LETTER ETA +0x48 0x0398 #GREEK CAPITAL LETTER THETA +0x49 0x0399 #GREEK CAPITAL LETTER IOTA +0x4A 0x005B #LEFT SQUARE BRACKET +0x4B 0x002E #FULL STOP +0x4C 0x003C #LESS-THAN SIGN +0x4D 0x0028 #LEFT PARENTHESIS +0x4E 0x002B #PLUS SIGN +0x4F 0x0021 #EXCLAMATION MARK +0x50 0x0026 #AMPERSAND +0x51 0x039A #GREEK CAPITAL LETTER KAPPA +0x52 0x039B #GREEK CAPITAL LETTER LAMDA +0x53 0x039C #GREEK CAPITAL LETTER MU +0x54 0x039D #GREEK CAPITAL LETTER NU +0x55 0x039E #GREEK CAPITAL LETTER XI +0x56 0x039F #GREEK CAPITAL LETTER OMICRON +0x57 0x03A0 #GREEK CAPITAL LETTER PI +0x58 0x03A1 #GREEK CAPITAL LETTER RHO +0x59 0x03A3 #GREEK CAPITAL LETTER SIGMA +0x5A 0x005D #RIGHT SQUARE BRACKET +0x5B 0x0024 #DOLLAR SIGN +0x5C 0x002A #ASTERISK +0x5D 0x0029 #RIGHT PARENTHESIS +0x5E 0x003B #SEMICOLON +0x5F 0x005E #CIRCUMFLEX ACCENT +0x60 0x002D #HYPHEN-MINUS +0x61 0x002F #SOLIDUS +0x62 0x03A4 #GREEK CAPITAL LETTER TAU +0x63 0x03A5 #GREEK CAPITAL LETTER UPSILON +0x64 0x03A6 #GREEK CAPITAL LETTER PHI +0x65 0x03A7 #GREEK CAPITAL LETTER CHI +0x66 0x03A8 #GREEK CAPITAL LETTER PSI +0x67 0x03A9 #GREEK CAPITAL LETTER OMEGA +0x68 0x03AA #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0x69 0x03AB #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0x6A 0x007C #VERTICAL LINE +0x6B 0x002C #COMMA +0x6C 0x0025 #PERCENT SIGN +0x6D 0x005F #LOW LINE +0x6E 0x003E #GREATER-THAN SIGN +0x6F 0x003F #QUESTION MARK +0x70 0x00A8 #DIAERESIS +0x71 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS +0x72 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS +0x73 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS +0x74 0x00A0 #NO-BREAK SPACE +0x75 0x038A #GREEK CAPITAL LETTER IOTA WITH TONOS +0x76 0x038C #GREEK CAPITAL LETTER OMICRON WITH TONOS +0x77 0x038E #GREEK CAPITAL LETTER UPSILON WITH TONOS +0x78 0x038F #GREEK CAPITAL LETTER OMEGA WITH TONOS +0x79 0x0060 #GRAVE ACCENT +0x7A 0x003A #COLON +0x7B 0x0023 #NUMBER SIGN +0x7C 0x0040 #COMMERCIAL AT +0x7D 0x0027 #APOSTROPHE +0x7E 0x003D #EQUALS SIGN +0x7F 0x0022 #QUOTATION MARK +0x80 0x0385 #GREEK DIALYTIKA TONOS +0x81 0x0061 #LATIN SMALL LETTER A +0x82 0x0062 #LATIN SMALL LETTER B +0x83 0x0063 #LATIN SMALL LETTER C +0x84 0x0064 #LATIN SMALL LETTER D +0x85 0x0065 #LATIN SMALL LETTER E +0x86 0x0066 #LATIN SMALL LETTER F +0x87 0x0067 #LATIN SMALL LETTER G +0x88 0x0068 #LATIN SMALL LETTER H +0x89 0x0069 #LATIN SMALL LETTER I +0x8A 0x03B1 #GREEK SMALL LETTER ALPHA +0x8B 0x03B2 #GREEK SMALL LETTER BETA +0x8C 0x03B3 #GREEK SMALL LETTER GAMMA +0x8D 0x03B4 #GREEK SMALL LETTER DELTA +0x8E 0x03B5 #GREEK SMALL LETTER EPSILON +0x8F 0x03B6 #GREEK SMALL LETTER ZETA +0x90 0x00B0 #DEGREE SIGN +0x91 0x006A #LATIN SMALL LETTER J +0x92 0x006B #LATIN SMALL LETTER K +0x93 0x006C #LATIN SMALL LETTER L +0x94 0x006D #LATIN SMALL LETTER M +0x95 0x006E #LATIN SMALL LETTER N +0x96 0x006F #LATIN SMALL LETTER O +0x97 0x0070 #LATIN SMALL LETTER P +0x98 0x0071 #LATIN SMALL LETTER Q +0x99 0x0072 #LATIN SMALL LETTER R +0x9A 0x03B7 #GREEK SMALL LETTER ETA +0x9B 0x03B8 #GREEK SMALL LETTER THETA +0x9C 0x03B9 #GREEK SMALL LETTER IOTA +0x9D 0x03BA #GREEK SMALL LETTER KAPPA +0x9E 0x03BB #GREEK SMALL LETTER LAMDA +0x9F 0x03BC #GREEK SMALL LETTER MU +0xA0 0x00B4 #ACUTE ACCENT +0xA1 0x007E #TILDE +0xA2 0x0073 #LATIN SMALL LETTER S +0xA3 0x0074 #LATIN SMALL LETTER T +0xA4 0x0075 #LATIN SMALL LETTER U +0xA5 0x0076 #LATIN SMALL LETTER V +0xA6 0x0077 #LATIN SMALL LETTER W +0xA7 0x0078 #LATIN SMALL LETTER X +0xA8 0x0079 #LATIN SMALL LETTER Y +0xA9 0x007A #LATIN SMALL LETTER Z +0xAA 0x03BD #GREEK SMALL LETTER NU +0xAB 0x03BE #GREEK SMALL LETTER XI +0xAC 0x03BF #GREEK SMALL LETTER OMICRON +0xAD 0x03C0 #GREEK SMALL LETTER PI +0xAE 0x03C1 #GREEK SMALL LETTER RHO +0xAF 0x03C3 #GREEK SMALL LETTER SIGMA +0xB0 0x00A3 #POUND SIGN +0xB1 0x03AC #GREEK SMALL LETTER ALPHA WITH TONOS +0xB2 0x03AD #GREEK SMALL LETTER EPSILON WITH TONOS +0xB3 0x03AE #GREEK SMALL LETTER ETA WITH TONOS +0xB4 0x03CA #GREEK SMALL LETTER IOTA WITH DIALYTIKA +0xB5 0x03AF #GREEK SMALL LETTER IOTA WITH TONOS +0xB6 0x03CC #GREEK SMALL LETTER OMICRON WITH TONOS +0xB7 0x03CD #GREEK SMALL LETTER UPSILON WITH TONOS +0xB8 0x03CB #GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0xB9 0x03CE #GREEK SMALL LETTER OMEGA WITH TONOS +0xBA 0x03C2 #GREEK SMALL LETTER FINAL SIGMA +0xBB 0x03C4 #GREEK SMALL LETTER TAU +0xBC 0x03C5 #GREEK SMALL LETTER UPSILON +0xBD 0x03C6 #GREEK SMALL LETTER PHI +0xBE 0x03C7 #GREEK SMALL LETTER CHI +0xBF 0x03C8 #GREEK SMALL LETTER PSI +0xC0 0x007B #LEFT CURLY BRACKET +0xC1 0x0041 #LATIN CAPITAL LETTER A +0xC2 0x0042 #LATIN CAPITAL LETTER B +0xC3 0x0043 #LATIN CAPITAL LETTER C +0xC4 0x0044 #LATIN CAPITAL LETTER D +0xC5 0x0045 #LATIN CAPITAL LETTER E +0xC6 0x0046 #LATIN CAPITAL LETTER F +0xC7 0x0047 #LATIN CAPITAL LETTER G +0xC8 0x0048 #LATIN CAPITAL LETTER H +0xC9 0x0049 #LATIN CAPITAL LETTER I +0xCA 0x00AD #SOFT HYPHEN +0xCB 0x03C9 #GREEK SMALL LETTER OMEGA +0xCC 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0xCD 0x03B0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0xCE 0x2018 #LEFT SINGLE QUOTATION MARK +0xCF 0x2015 #HORIZONTAL BAR +0xD0 0x007D #RIGHT CURLY BRACKET +0xD1 0x004A #LATIN CAPITAL LETTER J +0xD2 0x004B #LATIN CAPITAL LETTER K +0xD3 0x004C #LATIN CAPITAL LETTER L +0xD4 0x004D #LATIN CAPITAL LETTER M +0xD5 0x004E #LATIN CAPITAL LETTER N +0xD6 0x004F #LATIN CAPITAL LETTER O +0xD7 0x0050 #LATIN CAPITAL LETTER P +0xD8 0x0051 #LATIN CAPITAL LETTER Q +0xD9 0x0052 #LATIN CAPITAL LETTER R +0xDA 0x00B1 #PLUS-MINUS SIGN +0xDB 0x00BD #VULGAR FRACTION ONE HALF +0xDC 0x001A #SUBSTITUTE +0xDD 0x0387 #GREEK ANO TELEIA +0xDE 0x2019 #RIGHT SINGLE QUOTATION MARK +0xDF 0x00A6 #BROKEN BAR +0xE0 0x005C #REVERSE SOLIDUS +0xE1 0x001A #SUBSTITUTE +0xE2 0x0053 #LATIN CAPITAL LETTER S +0xE3 0x0054 #LATIN CAPITAL LETTER T +0xE4 0x0055 #LATIN CAPITAL LETTER U +0xE5 0x0056 #LATIN CAPITAL LETTER V +0xE6 0x0057 #LATIN CAPITAL LETTER W +0xE7 0x0058 #LATIN CAPITAL LETTER X +0xE8 0x0059 #LATIN CAPITAL LETTER Y +0xE9 0x005A #LATIN CAPITAL LETTER Z +0xEA 0x00B2 #SUPERSCRIPT TWO +0xEB 0x00A7 #SECTION SIGN +0xEC 0x001A #SUBSTITUTE +0xED 0x001A #SUBSTITUTE +0xEE 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xEF 0x00AC #NOT SIGN +0xF0 0x0030 #DIGIT ZERO +0xF1 0x0031 #DIGIT ONE +0xF2 0x0032 #DIGIT TWO +0xF3 0x0033 #DIGIT THREE +0xF4 0x0034 #DIGIT FOUR +0xF5 0x0035 #DIGIT FIVE +0xF6 0x0036 #DIGIT SIX +0xF7 0x0037 #DIGIT SEVEN +0xF8 0x0038 #DIGIT EIGHT +0xF9 0x0039 #DIGIT NINE +0xFA 0x00B3 #SUPERSCRIPT THREE +0xFB 0x00A9 #COPYRIGHT SIGN +0xFC 0x001A #SUBSTITUTE +0xFD 0x001A #SUBSTITUTE +0xFE 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xFF 0x009F #CONTROL + + ADDED freshlib/data/_encodings/_sources/CP932.TXT Index: freshlib/data/_encodings/_sources/CP932.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP932.TXT @@ -0,0 +1,7998 @@ +# +# Name: cp932 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 04/15/98 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp932 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp932 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 #UNDEFINED +0x81 #DBCS LEAD BYTE +0x82 #DBCS LEAD BYTE +0x83 #DBCS LEAD BYTE +0x84 #DBCS LEAD BYTE +0x85 #DBCS LEAD BYTE +0x86 #DBCS LEAD BYTE +0x87 #DBCS LEAD BYTE +0x88 #DBCS LEAD BYTE +0x89 #DBCS LEAD BYTE +0x8A #DBCS LEAD BYTE +0x8B #DBCS LEAD BYTE +0x8C #DBCS LEAD BYTE +0x8D #DBCS LEAD BYTE +0x8E #DBCS LEAD BYTE +0x8F #DBCS LEAD BYTE +0x90 #DBCS LEAD BYTE +0x91 #DBCS LEAD BYTE +0x92 #DBCS LEAD BYTE +0x93 #DBCS LEAD BYTE +0x94 #DBCS LEAD BYTE +0x95 #DBCS LEAD BYTE +0x96 #DBCS LEAD BYTE +0x97 #DBCS LEAD BYTE +0x98 #DBCS LEAD BYTE +0x99 #DBCS LEAD BYTE +0x9A #DBCS LEAD BYTE +0x9B #DBCS LEAD BYTE +0x9C #DBCS LEAD BYTE +0x9D #DBCS LEAD BYTE +0x9E #DBCS LEAD BYTE +0x9F #DBCS LEAD BYTE +0xA0 #UNDEFINED +0xA1 0xFF61 #HALFWIDTH IDEOGRAPHIC FULL STOP +0xA2 0xFF62 #HALFWIDTH LEFT CORNER BRACKET +0xA3 0xFF63 #HALFWIDTH RIGHT CORNER BRACKET +0xA4 0xFF64 #HALFWIDTH IDEOGRAPHIC COMMA +0xA5 0xFF65 #HALFWIDTH KATAKANA MIDDLE DOT +0xA6 0xFF66 #HALFWIDTH KATAKANA LETTER WO +0xA7 0xFF67 #HALFWIDTH KATAKANA LETTER SMALL A +0xA8 0xFF68 #HALFWIDTH KATAKANA LETTER SMALL I +0xA9 0xFF69 #HALFWIDTH KATAKANA LETTER SMALL U +0xAA 0xFF6A #HALFWIDTH KATAKANA LETTER SMALL E +0xAB 0xFF6B #HALFWIDTH KATAKANA LETTER SMALL O +0xAC 0xFF6C #HALFWIDTH KATAKANA LETTER SMALL YA +0xAD 0xFF6D #HALFWIDTH KATAKANA LETTER SMALL YU +0xAE 0xFF6E #HALFWIDTH KATAKANA LETTER SMALL YO +0xAF 0xFF6F #HALFWIDTH KATAKANA LETTER SMALL TU +0xB0 0xFF70 #HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +0xB1 0xFF71 #HALFWIDTH KATAKANA LETTER A +0xB2 0xFF72 #HALFWIDTH KATAKANA LETTER I +0xB3 0xFF73 #HALFWIDTH KATAKANA LETTER U +0xB4 0xFF74 #HALFWIDTH KATAKANA LETTER E +0xB5 0xFF75 #HALFWIDTH KATAKANA LETTER O +0xB6 0xFF76 #HALFWIDTH KATAKANA LETTER KA +0xB7 0xFF77 #HALFWIDTH KATAKANA LETTER KI +0xB8 0xFF78 #HALFWIDTH KATAKANA LETTER KU +0xB9 0xFF79 #HALFWIDTH KATAKANA LETTER KE +0xBA 0xFF7A #HALFWIDTH KATAKANA LETTER KO +0xBB 0xFF7B #HALFWIDTH KATAKANA LETTER SA +0xBC 0xFF7C #HALFWIDTH KATAKANA LETTER SI +0xBD 0xFF7D #HALFWIDTH KATAKANA LETTER SU +0xBE 0xFF7E #HALFWIDTH KATAKANA LETTER SE +0xBF 0xFF7F #HALFWIDTH KATAKANA LETTER SO +0xC0 0xFF80 #HALFWIDTH KATAKANA LETTER TA +0xC1 0xFF81 #HALFWIDTH KATAKANA LETTER TI +0xC2 0xFF82 #HALFWIDTH KATAKANA LETTER TU +0xC3 0xFF83 #HALFWIDTH KATAKANA LETTER TE +0xC4 0xFF84 #HALFWIDTH KATAKANA LETTER TO +0xC5 0xFF85 #HALFWIDTH KATAKANA LETTER NA +0xC6 0xFF86 #HALFWIDTH KATAKANA LETTER NI +0xC7 0xFF87 #HALFWIDTH KATAKANA LETTER NU +0xC8 0xFF88 #HALFWIDTH KATAKANA LETTER NE +0xC9 0xFF89 #HALFWIDTH KATAKANA LETTER NO +0xCA 0xFF8A #HALFWIDTH KATAKANA LETTER HA +0xCB 0xFF8B #HALFWIDTH KATAKANA LETTER HI +0xCC 0xFF8C #HALFWIDTH KATAKANA LETTER HU +0xCD 0xFF8D #HALFWIDTH KATAKANA LETTER HE +0xCE 0xFF8E #HALFWIDTH KATAKANA LETTER HO +0xCF 0xFF8F #HALFWIDTH KATAKANA LETTER MA +0xD0 0xFF90 #HALFWIDTH KATAKANA LETTER MI +0xD1 0xFF91 #HALFWIDTH KATAKANA LETTER MU +0xD2 0xFF92 #HALFWIDTH KATAKANA LETTER ME +0xD3 0xFF93 #HALFWIDTH KATAKANA LETTER MO +0xD4 0xFF94 #HALFWIDTH KATAKANA LETTER YA +0xD5 0xFF95 #HALFWIDTH KATAKANA LETTER YU +0xD6 0xFF96 #HALFWIDTH KATAKANA LETTER YO +0xD7 0xFF97 #HALFWIDTH KATAKANA LETTER RA +0xD8 0xFF98 #HALFWIDTH KATAKANA LETTER RI +0xD9 0xFF99 #HALFWIDTH KATAKANA LETTER RU +0xDA 0xFF9A #HALFWIDTH KATAKANA LETTER RE +0xDB 0xFF9B #HALFWIDTH KATAKANA LETTER RO +0xDC 0xFF9C #HALFWIDTH KATAKANA LETTER WA +0xDD 0xFF9D #HALFWIDTH KATAKANA LETTER N +0xDE 0xFF9E #HALFWIDTH KATAKANA VOICED SOUND MARK +0xDF 0xFF9F #HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +0xE0 #DBCS LEAD BYTE +0xE1 #DBCS LEAD BYTE +0xE2 #DBCS LEAD BYTE +0xE3 #DBCS LEAD BYTE +0xE4 #DBCS LEAD BYTE +0xE5 #DBCS LEAD BYTE +0xE6 #DBCS LEAD BYTE +0xE7 #DBCS LEAD BYTE +0xE8 #DBCS LEAD BYTE +0xE9 #DBCS LEAD BYTE +0xEA #DBCS LEAD BYTE +0xEB #DBCS LEAD BYTE +0xEC #DBCS LEAD BYTE +0xED #DBCS LEAD BYTE +0xEE #DBCS LEAD BYTE +0xEF #DBCS LEAD BYTE +0xF0 #DBCS LEAD BYTE +0xF1 #DBCS LEAD BYTE +0xF2 #DBCS LEAD BYTE +0xF3 #DBCS LEAD BYTE +0xF4 #DBCS LEAD BYTE +0xF5 #DBCS LEAD BYTE +0xF6 #DBCS LEAD BYTE +0xF7 #DBCS LEAD BYTE +0xF8 #DBCS LEAD BYTE +0xF9 #DBCS LEAD BYTE +0xFA #DBCS LEAD BYTE +0xFB #DBCS LEAD BYTE +0xFC #DBCS LEAD BYTE +0xFD #UNDEFINED +0xFE #UNDEFINED +0xFF #UNDEFINED +0x8140 0x3000 #IDEOGRAPHIC SPACE +0x8141 0x3001 #IDEOGRAPHIC COMMA +0x8142 0x3002 #IDEOGRAPHIC FULL STOP +0x8143 0xFF0C #FULLWIDTH COMMA +0x8144 0xFF0E #FULLWIDTH FULL STOP +0x8145 0x30FB #KATAKANA MIDDLE DOT +0x8146 0xFF1A #FULLWIDTH COLON +0x8147 0xFF1B #FULLWIDTH SEMICOLON +0x8148 0xFF1F #FULLWIDTH QUESTION MARK +0x8149 0xFF01 #FULLWIDTH EXCLAMATION MARK +0x814A 0x309B #KATAKANA-HIRAGANA VOICED SOUND MARK +0x814B 0x309C #KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +0x814C 0x00B4 #ACUTE ACCENT +0x814D 0xFF40 #FULLWIDTH GRAVE ACCENT +0x814E 0x00A8 #DIAERESIS +0x814F 0xFF3E #FULLWIDTH CIRCUMFLEX ACCENT +0x8150 0xFFE3 #FULLWIDTH MACRON +0x8151 0xFF3F #FULLWIDTH LOW LINE +0x8152 0x30FD #KATAKANA ITERATION MARK +0x8153 0x30FE #KATAKANA VOICED ITERATION MARK +0x8154 0x309D #HIRAGANA ITERATION MARK +0x8155 0x309E #HIRAGANA VOICED ITERATION MARK +0x8156 0x3003 #DITTO MARK +0x8157 0x4EDD #CJK UNIFIED IDEOGRAPH +0x8158 0x3005 #IDEOGRAPHIC ITERATION MARK +0x8159 0x3006 #IDEOGRAPHIC CLOSING MARK +0x815A 0x3007 #IDEOGRAPHIC NUMBER ZERO +0x815B 0x30FC #KATAKANA-HIRAGANA PROLONGED SOUND MARK +0x815C 0x2015 #HORIZONTAL BAR +0x815D 0x2010 #HYPHEN +0x815E 0xFF0F #FULLWIDTH SOLIDUS +0x815F 0xFF3C #FULLWIDTH REVERSE SOLIDUS +0x8160 0xFF5E #FULLWIDTH TILDE +0x8161 0x2225 #PARALLEL TO +0x8162 0xFF5C #FULLWIDTH VERTICAL LINE +0x8163 0x2026 #HORIZONTAL ELLIPSIS +0x8164 0x2025 #TWO DOT LEADER +0x8165 0x2018 #LEFT SINGLE QUOTATION MARK +0x8166 0x2019 #RIGHT SINGLE QUOTATION MARK +0x8167 0x201C #LEFT DOUBLE QUOTATION MARK +0x8168 0x201D #RIGHT DOUBLE QUOTATION MARK +0x8169 0xFF08 #FULLWIDTH LEFT PARENTHESIS +0x816A 0xFF09 #FULLWIDTH RIGHT PARENTHESIS +0x816B 0x3014 #LEFT TORTOISE SHELL BRACKET +0x816C 0x3015 #RIGHT TORTOISE SHELL BRACKET +0x816D 0xFF3B #FULLWIDTH LEFT SQUARE BRACKET +0x816E 0xFF3D #FULLWIDTH RIGHT SQUARE BRACKET +0x816F 0xFF5B #FULLWIDTH LEFT CURLY BRACKET +0x8170 0xFF5D #FULLWIDTH RIGHT CURLY BRACKET +0x8171 0x3008 #LEFT ANGLE BRACKET +0x8172 0x3009 #RIGHT ANGLE BRACKET +0x8173 0x300A #LEFT DOUBLE ANGLE BRACKET +0x8174 0x300B #RIGHT DOUBLE ANGLE BRACKET +0x8175 0x300C #LEFT CORNER BRACKET +0x8176 0x300D #RIGHT CORNER BRACKET +0x8177 0x300E #LEFT WHITE CORNER BRACKET +0x8178 0x300F #RIGHT WHITE CORNER BRACKET +0x8179 0x3010 #LEFT BLACK LENTICULAR BRACKET +0x817A 0x3011 #RIGHT BLACK LENTICULAR BRACKET +0x817B 0xFF0B #FULLWIDTH PLUS SIGN +0x817C 0xFF0D #FULLWIDTH HYPHEN-MINUS +0x817D 0x00B1 #PLUS-MINUS SIGN +0x817E 0x00D7 #MULTIPLICATION SIGN +0x8180 0x00F7 #DIVISION SIGN +0x8181 0xFF1D #FULLWIDTH EQUALS SIGN +0x8182 0x2260 #NOT EQUAL TO +0x8183 0xFF1C #FULLWIDTH LESS-THAN SIGN +0x8184 0xFF1E #FULLWIDTH GREATER-THAN SIGN +0x8185 0x2266 #LESS-THAN OVER EQUAL TO +0x8186 0x2267 #GREATER-THAN OVER EQUAL TO +0x8187 0x221E #INFINITY +0x8188 0x2234 #THEREFORE +0x8189 0x2642 #MALE SIGN +0x818A 0x2640 #FEMALE SIGN +0x818B 0x00B0 #DEGREE SIGN +0x818C 0x2032 #PRIME +0x818D 0x2033 #DOUBLE PRIME +0x818E 0x2103 #DEGREE CELSIUS +0x818F 0xFFE5 #FULLWIDTH YEN SIGN +0x8190 0xFF04 #FULLWIDTH DOLLAR SIGN +0x8191 0xFFE0 #FULLWIDTH CENT SIGN +0x8192 0xFFE1 #FULLWIDTH POUND SIGN +0x8193 0xFF05 #FULLWIDTH PERCENT SIGN +0x8194 0xFF03 #FULLWIDTH NUMBER SIGN +0x8195 0xFF06 #FULLWIDTH AMPERSAND +0x8196 0xFF0A #FULLWIDTH ASTERISK +0x8197 0xFF20 #FULLWIDTH COMMERCIAL AT +0x8198 0x00A7 #SECTION SIGN +0x8199 0x2606 #WHITE STAR +0x819A 0x2605 #BLACK STAR +0x819B 0x25CB #WHITE CIRCLE +0x819C 0x25CF #BLACK CIRCLE +0x819D 0x25CE #BULLSEYE +0x819E 0x25C7 #WHITE DIAMOND +0x819F 0x25C6 #BLACK DIAMOND +0x81A0 0x25A1 #WHITE SQUARE +0x81A1 0x25A0 #BLACK SQUARE +0x81A2 0x25B3 #WHITE UP-POINTING TRIANGLE +0x81A3 0x25B2 #BLACK UP-POINTING TRIANGLE +0x81A4 0x25BD #WHITE DOWN-POINTING TRIANGLE +0x81A5 0x25BC #BLACK DOWN-POINTING TRIANGLE +0x81A6 0x203B #REFERENCE MARK +0x81A7 0x3012 #POSTAL MARK +0x81A8 0x2192 #RIGHTWARDS ARROW +0x81A9 0x2190 #LEFTWARDS ARROW +0x81AA 0x2191 #UPWARDS ARROW +0x81AB 0x2193 #DOWNWARDS ARROW +0x81AC 0x3013 #GETA MARK +0x81B8 0x2208 #ELEMENT OF +0x81B9 0x220B #CONTAINS AS MEMBER +0x81BA 0x2286 #SUBSET OF OR EQUAL TO +0x81BB 0x2287 #SUPERSET OF OR EQUAL TO +0x81BC 0x2282 #SUBSET OF +0x81BD 0x2283 #SUPERSET OF +0x81BE 0x222A #UNION +0x81BF 0x2229 #INTERSECTION +0x81C8 0x2227 #LOGICAL AND +0x81C9 0x2228 #LOGICAL OR +0x81CA 0xFFE2 #FULLWIDTH NOT SIGN +0x81CB 0x21D2 #RIGHTWARDS DOUBLE ARROW +0x81CC 0x21D4 #LEFT RIGHT DOUBLE ARROW +0x81CD 0x2200 #FOR ALL +0x81CE 0x2203 #THERE EXISTS +0x81DA 0x2220 #ANGLE +0x81DB 0x22A5 #UP TACK +0x81DC 0x2312 #ARC +0x81DD 0x2202 #PARTIAL DIFFERENTIAL +0x81DE 0x2207 #NABLA +0x81DF 0x2261 #IDENTICAL TO +0x81E0 0x2252 #APPROXIMATELY EQUAL TO OR THE IMAGE OF +0x81E1 0x226A #MUCH LESS-THAN +0x81E2 0x226B #MUCH GREATER-THAN +0x81E3 0x221A #SQUARE ROOT +0x81E4 0x223D #REVERSED TILDE +0x81E5 0x221D #PROPORTIONAL TO +0x81E6 0x2235 #BECAUSE +0x81E7 0x222B #INTEGRAL +0x81E8 0x222C #DOUBLE INTEGRAL +0x81F0 0x212B #ANGSTROM SIGN +0x81F1 0x2030 #PER MILLE SIGN +0x81F2 0x266F #MUSIC SHARP SIGN +0x81F3 0x266D #MUSIC FLAT SIGN +0x81F4 0x266A #EIGHTH NOTE +0x81F5 0x2020 #DAGGER +0x81F6 0x2021 #DOUBLE DAGGER +0x81F7 0x00B6 #PILCROW SIGN +0x81FC 0x25EF #LARGE CIRCLE +0x824F 0xFF10 #FULLWIDTH DIGIT ZERO +0x8250 0xFF11 #FULLWIDTH DIGIT ONE +0x8251 0xFF12 #FULLWIDTH DIGIT TWO +0x8252 0xFF13 #FULLWIDTH DIGIT THREE +0x8253 0xFF14 #FULLWIDTH DIGIT FOUR +0x8254 0xFF15 #FULLWIDTH DIGIT FIVE +0x8255 0xFF16 #FULLWIDTH DIGIT SIX +0x8256 0xFF17 #FULLWIDTH DIGIT SEVEN +0x8257 0xFF18 #FULLWIDTH DIGIT EIGHT +0x8258 0xFF19 #FULLWIDTH DIGIT NINE +0x8260 0xFF21 #FULLWIDTH LATIN CAPITAL LETTER A +0x8261 0xFF22 #FULLWIDTH LATIN CAPITAL LETTER B +0x8262 0xFF23 #FULLWIDTH LATIN CAPITAL LETTER C +0x8263 0xFF24 #FULLWIDTH LATIN CAPITAL LETTER D +0x8264 0xFF25 #FULLWIDTH LATIN CAPITAL LETTER E +0x8265 0xFF26 #FULLWIDTH LATIN CAPITAL LETTER F +0x8266 0xFF27 #FULLWIDTH LATIN CAPITAL LETTER G +0x8267 0xFF28 #FULLWIDTH LATIN CAPITAL LETTER H +0x8268 0xFF29 #FULLWIDTH LATIN CAPITAL LETTER I +0x8269 0xFF2A #FULLWIDTH LATIN CAPITAL LETTER J +0x826A 0xFF2B #FULLWIDTH LATIN CAPITAL LETTER K +0x826B 0xFF2C #FULLWIDTH LATIN CAPITAL LETTER L +0x826C 0xFF2D #FULLWIDTH LATIN CAPITAL LETTER M +0x826D 0xFF2E #FULLWIDTH LATIN CAPITAL LETTER N +0x826E 0xFF2F #FULLWIDTH LATIN CAPITAL LETTER O +0x826F 0xFF30 #FULLWIDTH LATIN CAPITAL LETTER P +0x8270 0xFF31 #FULLWIDTH LATIN CAPITAL LETTER Q +0x8271 0xFF32 #FULLWIDTH LATIN CAPITAL LETTER R +0x8272 0xFF33 #FULLWIDTH LATIN CAPITAL LETTER S +0x8273 0xFF34 #FULLWIDTH LATIN CAPITAL LETTER T +0x8274 0xFF35 #FULLWIDTH LATIN CAPITAL LETTER U +0x8275 0xFF36 #FULLWIDTH LATIN CAPITAL LETTER V +0x8276 0xFF37 #FULLWIDTH LATIN CAPITAL LETTER W +0x8277 0xFF38 #FULLWIDTH LATIN CAPITAL LETTER X +0x8278 0xFF39 #FULLWIDTH LATIN CAPITAL LETTER Y +0x8279 0xFF3A #FULLWIDTH LATIN CAPITAL LETTER Z +0x8281 0xFF41 #FULLWIDTH LATIN SMALL LETTER A +0x8282 0xFF42 #FULLWIDTH LATIN SMALL LETTER B +0x8283 0xFF43 #FULLWIDTH LATIN SMALL LETTER C +0x8284 0xFF44 #FULLWIDTH LATIN SMALL LETTER D +0x8285 0xFF45 #FULLWIDTH LATIN SMALL LETTER E +0x8286 0xFF46 #FULLWIDTH LATIN SMALL LETTER F +0x8287 0xFF47 #FULLWIDTH LATIN SMALL LETTER G +0x8288 0xFF48 #FULLWIDTH LATIN SMALL LETTER H +0x8289 0xFF49 #FULLWIDTH LATIN SMALL LETTER I +0x828A 0xFF4A #FULLWIDTH LATIN SMALL LETTER J +0x828B 0xFF4B #FULLWIDTH LATIN SMALL LETTER K +0x828C 0xFF4C #FULLWIDTH LATIN SMALL LETTER L +0x828D 0xFF4D #FULLWIDTH LATIN SMALL LETTER M +0x828E 0xFF4E #FULLWIDTH LATIN SMALL LETTER N +0x828F 0xFF4F #FULLWIDTH LATIN SMALL LETTER O +0x8290 0xFF50 #FULLWIDTH LATIN SMALL LETTER P +0x8291 0xFF51 #FULLWIDTH LATIN SMALL LETTER Q +0x8292 0xFF52 #FULLWIDTH LATIN SMALL LETTER R +0x8293 0xFF53 #FULLWIDTH LATIN SMALL LETTER S +0x8294 0xFF54 #FULLWIDTH LATIN SMALL LETTER T +0x8295 0xFF55 #FULLWIDTH LATIN SMALL LETTER U +0x8296 0xFF56 #FULLWIDTH LATIN SMALL LETTER V +0x8297 0xFF57 #FULLWIDTH LATIN SMALL LETTER W +0x8298 0xFF58 #FULLWIDTH LATIN SMALL LETTER X +0x8299 0xFF59 #FULLWIDTH LATIN SMALL LETTER Y +0x829A 0xFF5A #FULLWIDTH LATIN SMALL LETTER Z +0x829F 0x3041 #HIRAGANA LETTER SMALL A +0x82A0 0x3042 #HIRAGANA LETTER A +0x82A1 0x3043 #HIRAGANA LETTER SMALL I +0x82A2 0x3044 #HIRAGANA LETTER I +0x82A3 0x3045 #HIRAGANA LETTER SMALL U +0x82A4 0x3046 #HIRAGANA LETTER U +0x82A5 0x3047 #HIRAGANA LETTER SMALL E +0x82A6 0x3048 #HIRAGANA LETTER E +0x82A7 0x3049 #HIRAGANA LETTER SMALL O +0x82A8 0x304A #HIRAGANA LETTER O +0x82A9 0x304B #HIRAGANA LETTER KA +0x82AA 0x304C #HIRAGANA LETTER GA +0x82AB 0x304D #HIRAGANA LETTER KI +0x82AC 0x304E #HIRAGANA LETTER GI +0x82AD 0x304F #HIRAGANA LETTER KU +0x82AE 0x3050 #HIRAGANA LETTER GU +0x82AF 0x3051 #HIRAGANA LETTER KE +0x82B0 0x3052 #HIRAGANA LETTER GE +0x82B1 0x3053 #HIRAGANA LETTER KO +0x82B2 0x3054 #HIRAGANA LETTER GO +0x82B3 0x3055 #HIRAGANA LETTER SA +0x82B4 0x3056 #HIRAGANA LETTER ZA +0x82B5 0x3057 #HIRAGANA LETTER SI +0x82B6 0x3058 #HIRAGANA LETTER ZI +0x82B7 0x3059 #HIRAGANA LETTER SU +0x82B8 0x305A #HIRAGANA LETTER ZU +0x82B9 0x305B #HIRAGANA LETTER SE +0x82BA 0x305C #HIRAGANA LETTER ZE +0x82BB 0x305D #HIRAGANA LETTER SO +0x82BC 0x305E #HIRAGANA LETTER ZO +0x82BD 0x305F #HIRAGANA LETTER TA +0x82BE 0x3060 #HIRAGANA LETTER DA +0x82BF 0x3061 #HIRAGANA LETTER TI +0x82C0 0x3062 #HIRAGANA LETTER DI +0x82C1 0x3063 #HIRAGANA LETTER SMALL TU +0x82C2 0x3064 #HIRAGANA LETTER TU +0x82C3 0x3065 #HIRAGANA LETTER DU +0x82C4 0x3066 #HIRAGANA LETTER TE +0x82C5 0x3067 #HIRAGANA LETTER DE +0x82C6 0x3068 #HIRAGANA LETTER TO +0x82C7 0x3069 #HIRAGANA LETTER DO +0x82C8 0x306A #HIRAGANA LETTER NA +0x82C9 0x306B #HIRAGANA LETTER NI +0x82CA 0x306C #HIRAGANA LETTER NU +0x82CB 0x306D #HIRAGANA LETTER NE +0x82CC 0x306E #HIRAGANA LETTER NO +0x82CD 0x306F #HIRAGANA LETTER HA +0x82CE 0x3070 #HIRAGANA LETTER BA +0x82CF 0x3071 #HIRAGANA LETTER PA +0x82D0 0x3072 #HIRAGANA LETTER HI +0x82D1 0x3073 #HIRAGANA LETTER BI +0x82D2 0x3074 #HIRAGANA LETTER PI +0x82D3 0x3075 #HIRAGANA LETTER HU +0x82D4 0x3076 #HIRAGANA LETTER BU +0x82D5 0x3077 #HIRAGANA LETTER PU +0x82D6 0x3078 #HIRAGANA LETTER HE +0x82D7 0x3079 #HIRAGANA LETTER BE +0x82D8 0x307A #HIRAGANA LETTER PE +0x82D9 0x307B #HIRAGANA LETTER HO +0x82DA 0x307C #HIRAGANA LETTER BO +0x82DB 0x307D #HIRAGANA LETTER PO +0x82DC 0x307E #HIRAGANA LETTER MA +0x82DD 0x307F #HIRAGANA LETTER MI +0x82DE 0x3080 #HIRAGANA LETTER MU +0x82DF 0x3081 #HIRAGANA LETTER ME +0x82E0 0x3082 #HIRAGANA LETTER MO +0x82E1 0x3083 #HIRAGANA LETTER SMALL YA +0x82E2 0x3084 #HIRAGANA LETTER YA +0x82E3 0x3085 #HIRAGANA LETTER SMALL YU +0x82E4 0x3086 #HIRAGANA LETTER YU +0x82E5 0x3087 #HIRAGANA LETTER SMALL YO +0x82E6 0x3088 #HIRAGANA LETTER YO +0x82E7 0x3089 #HIRAGANA LETTER RA +0x82E8 0x308A #HIRAGANA LETTER RI +0x82E9 0x308B #HIRAGANA LETTER RU +0x82EA 0x308C #HIRAGANA LETTER RE +0x82EB 0x308D #HIRAGANA LETTER RO +0x82EC 0x308E #HIRAGANA LETTER SMALL WA +0x82ED 0x308F #HIRAGANA LETTER WA +0x82EE 0x3090 #HIRAGANA LETTER WI +0x82EF 0x3091 #HIRAGANA LETTER WE +0x82F0 0x3092 #HIRAGANA LETTER WO +0x82F1 0x3093 #HIRAGANA LETTER N +0x8340 0x30A1 #KATAKANA LETTER SMALL A +0x8341 0x30A2 #KATAKANA LETTER A +0x8342 0x30A3 #KATAKANA LETTER SMALL I +0x8343 0x30A4 #KATAKANA LETTER I +0x8344 0x30A5 #KATAKANA LETTER SMALL U +0x8345 0x30A6 #KATAKANA LETTER U +0x8346 0x30A7 #KATAKANA LETTER SMALL E +0x8347 0x30A8 #KATAKANA LETTER E +0x8348 0x30A9 #KATAKANA LETTER SMALL O +0x8349 0x30AA #KATAKANA LETTER O +0x834A 0x30AB #KATAKANA LETTER KA +0x834B 0x30AC #KATAKANA LETTER GA +0x834C 0x30AD #KATAKANA LETTER KI +0x834D 0x30AE #KATAKANA LETTER GI +0x834E 0x30AF #KATAKANA LETTER KU +0x834F 0x30B0 #KATAKANA LETTER GU +0x8350 0x30B1 #KATAKANA LETTER KE +0x8351 0x30B2 #KATAKANA LETTER GE +0x8352 0x30B3 #KATAKANA LETTER KO +0x8353 0x30B4 #KATAKANA LETTER GO +0x8354 0x30B5 #KATAKANA LETTER SA +0x8355 0x30B6 #KATAKANA LETTER ZA +0x8356 0x30B7 #KATAKANA LETTER SI +0x8357 0x30B8 #KATAKANA LETTER ZI +0x8358 0x30B9 #KATAKANA LETTER SU +0x8359 0x30BA #KATAKANA LETTER ZU +0x835A 0x30BB #KATAKANA LETTER SE +0x835B 0x30BC #KATAKANA LETTER ZE +0x835C 0x30BD #KATAKANA LETTER SO +0x835D 0x30BE #KATAKANA LETTER ZO +0x835E 0x30BF #KATAKANA LETTER TA +0x835F 0x30C0 #KATAKANA LETTER DA +0x8360 0x30C1 #KATAKANA LETTER TI +0x8361 0x30C2 #KATAKANA LETTER DI +0x8362 0x30C3 #KATAKANA LETTER SMALL TU +0x8363 0x30C4 #KATAKANA LETTER TU +0x8364 0x30C5 #KATAKANA LETTER DU +0x8365 0x30C6 #KATAKANA LETTER TE +0x8366 0x30C7 #KATAKANA LETTER DE +0x8367 0x30C8 #KATAKANA LETTER TO +0x8368 0x30C9 #KATAKANA LETTER DO +0x8369 0x30CA #KATAKANA LETTER NA +0x836A 0x30CB #KATAKANA LETTER NI +0x836B 0x30CC #KATAKANA LETTER NU +0x836C 0x30CD #KATAKANA LETTER NE +0x836D 0x30CE #KATAKANA LETTER NO +0x836E 0x30CF #KATAKANA LETTER HA +0x836F 0x30D0 #KATAKANA LETTER BA +0x8370 0x30D1 #KATAKANA LETTER PA +0x8371 0x30D2 #KATAKANA LETTER HI +0x8372 0x30D3 #KATAKANA LETTER BI +0x8373 0x30D4 #KATAKANA LETTER PI +0x8374 0x30D5 #KATAKANA LETTER HU +0x8375 0x30D6 #KATAKANA LETTER BU +0x8376 0x30D7 #KATAKANA LETTER PU +0x8377 0x30D8 #KATAKANA LETTER HE +0x8378 0x30D9 #KATAKANA LETTER BE +0x8379 0x30DA #KATAKANA LETTER PE +0x837A 0x30DB #KATAKANA LETTER HO +0x837B 0x30DC #KATAKANA LETTER BO +0x837C 0x30DD #KATAKANA LETTER PO +0x837D 0x30DE #KATAKANA LETTER MA +0x837E 0x30DF #KATAKANA LETTER MI +0x8380 0x30E0 #KATAKANA LETTER MU +0x8381 0x30E1 #KATAKANA LETTER ME +0x8382 0x30E2 #KATAKANA LETTER MO +0x8383 0x30E3 #KATAKANA LETTER SMALL YA +0x8384 0x30E4 #KATAKANA LETTER YA +0x8385 0x30E5 #KATAKANA LETTER SMALL YU +0x8386 0x30E6 #KATAKANA LETTER YU +0x8387 0x30E7 #KATAKANA LETTER SMALL YO +0x8388 0x30E8 #KATAKANA LETTER YO +0x8389 0x30E9 #KATAKANA LETTER RA +0x838A 0x30EA #KATAKANA LETTER RI +0x838B 0x30EB #KATAKANA LETTER RU +0x838C 0x30EC #KATAKANA LETTER RE +0x838D 0x30ED #KATAKANA LETTER RO +0x838E 0x30EE #KATAKANA LETTER SMALL WA +0x838F 0x30EF #KATAKANA LETTER WA +0x8390 0x30F0 #KATAKANA LETTER WI +0x8391 0x30F1 #KATAKANA LETTER WE +0x8392 0x30F2 #KATAKANA LETTER WO +0x8393 0x30F3 #KATAKANA LETTER N +0x8394 0x30F4 #KATAKANA LETTER VU +0x8395 0x30F5 #KATAKANA LETTER SMALL KA +0x8396 0x30F6 #KATAKANA LETTER SMALL KE +0x839F 0x0391 #GREEK CAPITAL LETTER ALPHA +0x83A0 0x0392 #GREEK CAPITAL LETTER BETA +0x83A1 0x0393 #GREEK CAPITAL LETTER GAMMA +0x83A2 0x0394 #GREEK CAPITAL LETTER DELTA +0x83A3 0x0395 #GREEK CAPITAL LETTER EPSILON +0x83A4 0x0396 #GREEK CAPITAL LETTER ZETA +0x83A5 0x0397 #GREEK CAPITAL LETTER ETA +0x83A6 0x0398 #GREEK CAPITAL LETTER THETA +0x83A7 0x0399 #GREEK CAPITAL LETTER IOTA +0x83A8 0x039A #GREEK CAPITAL LETTER KAPPA +0x83A9 0x039B #GREEK CAPITAL LETTER LAMDA +0x83AA 0x039C #GREEK CAPITAL LETTER MU +0x83AB 0x039D #GREEK CAPITAL LETTER NU +0x83AC 0x039E #GREEK CAPITAL LETTER XI +0x83AD 0x039F #GREEK CAPITAL LETTER OMICRON +0x83AE 0x03A0 #GREEK CAPITAL LETTER PI +0x83AF 0x03A1 #GREEK CAPITAL LETTER RHO +0x83B0 0x03A3 #GREEK CAPITAL LETTER SIGMA +0x83B1 0x03A4 #GREEK CAPITAL LETTER TAU +0x83B2 0x03A5 #GREEK CAPITAL LETTER UPSILON +0x83B3 0x03A6 #GREEK CAPITAL LETTER PHI +0x83B4 0x03A7 #GREEK CAPITAL LETTER CHI +0x83B5 0x03A8 #GREEK CAPITAL LETTER PSI +0x83B6 0x03A9 #GREEK CAPITAL LETTER OMEGA +0x83BF 0x03B1 #GREEK SMALL LETTER ALPHA +0x83C0 0x03B2 #GREEK SMALL LETTER BETA +0x83C1 0x03B3 #GREEK SMALL LETTER GAMMA +0x83C2 0x03B4 #GREEK SMALL LETTER DELTA +0x83C3 0x03B5 #GREEK SMALL LETTER EPSILON +0x83C4 0x03B6 #GREEK SMALL LETTER ZETA +0x83C5 0x03B7 #GREEK SMALL LETTER ETA +0x83C6 0x03B8 #GREEK SMALL LETTER THETA +0x83C7 0x03B9 #GREEK SMALL LETTER IOTA +0x83C8 0x03BA #GREEK SMALL LETTER KAPPA +0x83C9 0x03BB #GREEK SMALL LETTER LAMDA +0x83CA 0x03BC #GREEK SMALL LETTER MU +0x83CB 0x03BD #GREEK SMALL LETTER NU +0x83CC 0x03BE #GREEK SMALL LETTER XI +0x83CD 0x03BF #GREEK SMALL LETTER OMICRON +0x83CE 0x03C0 #GREEK SMALL LETTER PI +0x83CF 0x03C1 #GREEK SMALL LETTER RHO +0x83D0 0x03C3 #GREEK SMALL LETTER SIGMA +0x83D1 0x03C4 #GREEK SMALL LETTER TAU +0x83D2 0x03C5 #GREEK SMALL LETTER UPSILON +0x83D3 0x03C6 #GREEK SMALL LETTER PHI +0x83D4 0x03C7 #GREEK SMALL LETTER CHI +0x83D5 0x03C8 #GREEK SMALL LETTER PSI +0x83D6 0x03C9 #GREEK SMALL LETTER OMEGA +0x8440 0x0410 #CYRILLIC CAPITAL LETTER A +0x8441 0x0411 #CYRILLIC CAPITAL LETTER BE +0x8442 0x0412 #CYRILLIC CAPITAL LETTER VE +0x8443 0x0413 #CYRILLIC CAPITAL LETTER GHE +0x8444 0x0414 #CYRILLIC CAPITAL LETTER DE +0x8445 0x0415 #CYRILLIC CAPITAL LETTER IE +0x8446 0x0401 #CYRILLIC CAPITAL LETTER IO +0x8447 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0x8448 0x0417 #CYRILLIC CAPITAL LETTER ZE +0x8449 0x0418 #CYRILLIC CAPITAL LETTER I +0x844A 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0x844B 0x041A #CYRILLIC CAPITAL LETTER KA +0x844C 0x041B #CYRILLIC CAPITAL LETTER EL +0x844D 0x041C #CYRILLIC CAPITAL LETTER EM +0x844E 0x041D #CYRILLIC CAPITAL LETTER EN +0x844F 0x041E #CYRILLIC CAPITAL LETTER O +0x8450 0x041F #CYRILLIC CAPITAL LETTER PE +0x8451 0x0420 #CYRILLIC CAPITAL LETTER ER +0x8452 0x0421 #CYRILLIC CAPITAL LETTER ES +0x8453 0x0422 #CYRILLIC CAPITAL LETTER TE +0x8454 0x0423 #CYRILLIC CAPITAL LETTER U +0x8455 0x0424 #CYRILLIC CAPITAL LETTER EF +0x8456 0x0425 #CYRILLIC CAPITAL LETTER HA +0x8457 0x0426 #CYRILLIC CAPITAL LETTER TSE +0x8458 0x0427 #CYRILLIC CAPITAL LETTER CHE +0x8459 0x0428 #CYRILLIC CAPITAL LETTER SHA +0x845A 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0x845B 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN +0x845C 0x042B #CYRILLIC CAPITAL LETTER YERU +0x845D 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0x845E 0x042D #CYRILLIC CAPITAL LETTER E +0x845F 0x042E #CYRILLIC CAPITAL LETTER YU +0x8460 0x042F #CYRILLIC CAPITAL LETTER YA +0x8470 0x0430 #CYRILLIC SMALL LETTER A +0x8471 0x0431 #CYRILLIC SMALL LETTER BE +0x8472 0x0432 #CYRILLIC SMALL LETTER VE +0x8473 0x0433 #CYRILLIC SMALL LETTER GHE +0x8474 0x0434 #CYRILLIC SMALL LETTER DE +0x8475 0x0435 #CYRILLIC SMALL LETTER IE +0x8476 0x0451 #CYRILLIC SMALL LETTER IO +0x8477 0x0436 #CYRILLIC SMALL LETTER ZHE +0x8478 0x0437 #CYRILLIC SMALL LETTER ZE +0x8479 0x0438 #CYRILLIC SMALL LETTER I +0x847A 0x0439 #CYRILLIC SMALL LETTER SHORT I +0x847B 0x043A #CYRILLIC SMALL LETTER KA +0x847C 0x043B #CYRILLIC SMALL LETTER EL +0x847D 0x043C #CYRILLIC SMALL LETTER EM +0x847E 0x043D #CYRILLIC SMALL LETTER EN +0x8480 0x043E #CYRILLIC SMALL LETTER O +0x8481 0x043F #CYRILLIC SMALL LETTER PE +0x8482 0x0440 #CYRILLIC SMALL LETTER ER +0x8483 0x0441 #CYRILLIC SMALL LETTER ES +0x8484 0x0442 #CYRILLIC SMALL LETTER TE +0x8485 0x0443 #CYRILLIC SMALL LETTER U +0x8486 0x0444 #CYRILLIC SMALL LETTER EF +0x8487 0x0445 #CYRILLIC SMALL LETTER HA +0x8488 0x0446 #CYRILLIC SMALL LETTER TSE +0x8489 0x0447 #CYRILLIC SMALL LETTER CHE +0x848A 0x0448 #CYRILLIC SMALL LETTER SHA +0x848B 0x0449 #CYRILLIC SMALL LETTER SHCHA +0x848C 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0x848D 0x044B #CYRILLIC SMALL LETTER YERU +0x848E 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0x848F 0x044D #CYRILLIC SMALL LETTER E +0x8490 0x044E #CYRILLIC SMALL LETTER YU +0x8491 0x044F #CYRILLIC SMALL LETTER YA +0x849F 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0x84A0 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0x84A1 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT +0x84A2 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0x84A3 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0x84A4 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0x84A5 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0x84A6 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0x84A7 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0x84A8 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0x84A9 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0x84AA 0x2501 #BOX DRAWINGS HEAVY HORIZONTAL +0x84AB 0x2503 #BOX DRAWINGS HEAVY VERTICAL +0x84AC 0x250F #BOX DRAWINGS HEAVY DOWN AND RIGHT +0x84AD 0x2513 #BOX DRAWINGS HEAVY DOWN AND LEFT +0x84AE 0x251B #BOX DRAWINGS HEAVY UP AND LEFT +0x84AF 0x2517 #BOX DRAWINGS HEAVY UP AND RIGHT +0x84B0 0x2523 #BOX DRAWINGS HEAVY VERTICAL AND RIGHT +0x84B1 0x2533 #BOX DRAWINGS HEAVY DOWN AND HORIZONTAL +0x84B2 0x252B #BOX DRAWINGS HEAVY VERTICAL AND LEFT +0x84B3 0x253B #BOX DRAWINGS HEAVY UP AND HORIZONTAL +0x84B4 0x254B #BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL +0x84B5 0x2520 #BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT +0x84B6 0x252F #BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY +0x84B7 0x2528 #BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT +0x84B8 0x2537 #BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY +0x84B9 0x253F #BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY +0x84BA 0x251D #BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY +0x84BB 0x2530 #BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT +0x84BC 0x2525 #BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY +0x84BD 0x2538 #BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT +0x84BE 0x2542 #BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT +0x8740 0x2460 #CIRCLED DIGIT ONE +0x8741 0x2461 #CIRCLED DIGIT TWO +0x8742 0x2462 #CIRCLED DIGIT THREE +0x8743 0x2463 #CIRCLED DIGIT FOUR +0x8744 0x2464 #CIRCLED DIGIT FIVE +0x8745 0x2465 #CIRCLED DIGIT SIX +0x8746 0x2466 #CIRCLED DIGIT SEVEN +0x8747 0x2467 #CIRCLED DIGIT EIGHT +0x8748 0x2468 #CIRCLED DIGIT NINE +0x8749 0x2469 #CIRCLED NUMBER TEN +0x874A 0x246A #CIRCLED NUMBER ELEVEN +0x874B 0x246B #CIRCLED NUMBER TWELVE +0x874C 0x246C #CIRCLED NUMBER THIRTEEN +0x874D 0x246D #CIRCLED NUMBER FOURTEEN +0x874E 0x246E #CIRCLED NUMBER FIFTEEN +0x874F 0x246F #CIRCLED NUMBER SIXTEEN +0x8750 0x2470 #CIRCLED NUMBER SEVENTEEN +0x8751 0x2471 #CIRCLED NUMBER EIGHTEEN +0x8752 0x2472 #CIRCLED NUMBER NINETEEN +0x8753 0x2473 #CIRCLED NUMBER TWENTY +0x8754 0x2160 #ROMAN NUMERAL ONE +0x8755 0x2161 #ROMAN NUMERAL TWO +0x8756 0x2162 #ROMAN NUMERAL THREE +0x8757 0x2163 #ROMAN NUMERAL FOUR +0x8758 0x2164 #ROMAN NUMERAL FIVE +0x8759 0x2165 #ROMAN NUMERAL SIX +0x875A 0x2166 #ROMAN NUMERAL SEVEN +0x875B 0x2167 #ROMAN NUMERAL EIGHT +0x875C 0x2168 #ROMAN NUMERAL NINE +0x875D 0x2169 #ROMAN NUMERAL TEN +0x875F 0x3349 #SQUARE MIRI +0x8760 0x3314 #SQUARE KIRO +0x8761 0x3322 #SQUARE SENTI +0x8762 0x334D #SQUARE MEETORU +0x8763 0x3318 #SQUARE GURAMU +0x8764 0x3327 #SQUARE TON +0x8765 0x3303 #SQUARE AARU +0x8766 0x3336 #SQUARE HEKUTAARU +0x8767 0x3351 #SQUARE RITTORU +0x8768 0x3357 #SQUARE WATTO +0x8769 0x330D #SQUARE KARORII +0x876A 0x3326 #SQUARE DORU +0x876B 0x3323 #SQUARE SENTO +0x876C 0x332B #SQUARE PAASENTO +0x876D 0x334A #SQUARE MIRIBAARU +0x876E 0x333B #SQUARE PEEZI +0x876F 0x339C #SQUARE MM +0x8770 0x339D #SQUARE CM +0x8771 0x339E #SQUARE KM +0x8772 0x338E #SQUARE MG +0x8773 0x338F #SQUARE KG +0x8774 0x33C4 #SQUARE CC +0x8775 0x33A1 #SQUARE M SQUARED +0x877E 0x337B #SQUARE ERA NAME HEISEI +0x8780 0x301D #REVERSED DOUBLE PRIME QUOTATION MARK +0x8781 0x301F #LOW DOUBLE PRIME QUOTATION MARK +0x8782 0x2116 #NUMERO SIGN +0x8783 0x33CD #SQUARE KK +0x8784 0x2121 #TELEPHONE SIGN +0x8785 0x32A4 #CIRCLED IDEOGRAPH HIGH +0x8786 0x32A5 #CIRCLED IDEOGRAPH CENTRE +0x8787 0x32A6 #CIRCLED IDEOGRAPH LOW +0x8788 0x32A7 #CIRCLED IDEOGRAPH LEFT +0x8789 0x32A8 #CIRCLED IDEOGRAPH RIGHT +0x878A 0x3231 #PARENTHESIZED IDEOGRAPH STOCK +0x878B 0x3232 #PARENTHESIZED IDEOGRAPH HAVE +0x878C 0x3239 #PARENTHESIZED IDEOGRAPH REPRESENT +0x878D 0x337E #SQUARE ERA NAME MEIZI +0x878E 0x337D #SQUARE ERA NAME TAISYOU +0x878F 0x337C #SQUARE ERA NAME SYOUWA +0x8790 0x2252 #APPROXIMATELY EQUAL TO OR THE IMAGE OF +0x8791 0x2261 #IDENTICAL TO +0x8792 0x222B #INTEGRAL +0x8793 0x222E #CONTOUR INTEGRAL +0x8794 0x2211 #N-ARY SUMMATION +0x8795 0x221A #SQUARE ROOT +0x8796 0x22A5 #UP TACK +0x8797 0x2220 #ANGLE +0x8798 0x221F #RIGHT ANGLE +0x8799 0x22BF #RIGHT TRIANGLE +0x879A 0x2235 #BECAUSE +0x879B 0x2229 #INTERSECTION +0x879C 0x222A #UNION +0x889F 0x4E9C #CJK UNIFIED IDEOGRAPH +0x88A0 0x5516 #CJK UNIFIED IDEOGRAPH +0x88A1 0x5A03 #CJK UNIFIED IDEOGRAPH +0x88A2 0x963F #CJK UNIFIED IDEOGRAPH +0x88A3 0x54C0 #CJK UNIFIED IDEOGRAPH +0x88A4 0x611B #CJK UNIFIED IDEOGRAPH +0x88A5 0x6328 #CJK UNIFIED IDEOGRAPH +0x88A6 0x59F6 #CJK UNIFIED IDEOGRAPH +0x88A7 0x9022 #CJK UNIFIED IDEOGRAPH +0x88A8 0x8475 #CJK UNIFIED IDEOGRAPH +0x88A9 0x831C #CJK UNIFIED IDEOGRAPH +0x88AA 0x7A50 #CJK UNIFIED IDEOGRAPH +0x88AB 0x60AA #CJK UNIFIED IDEOGRAPH +0x88AC 0x63E1 #CJK UNIFIED IDEOGRAPH +0x88AD 0x6E25 #CJK UNIFIED IDEOGRAPH +0x88AE 0x65ED #CJK UNIFIED IDEOGRAPH +0x88AF 0x8466 #CJK UNIFIED IDEOGRAPH +0x88B0 0x82A6 #CJK UNIFIED IDEOGRAPH +0x88B1 0x9BF5 #CJK UNIFIED IDEOGRAPH +0x88B2 0x6893 #CJK UNIFIED IDEOGRAPH +0x88B3 0x5727 #CJK UNIFIED IDEOGRAPH +0x88B4 0x65A1 #CJK UNIFIED IDEOGRAPH +0x88B5 0x6271 #CJK UNIFIED IDEOGRAPH +0x88B6 0x5B9B #CJK UNIFIED IDEOGRAPH +0x88B7 0x59D0 #CJK UNIFIED IDEOGRAPH +0x88B8 0x867B #CJK UNIFIED IDEOGRAPH +0x88B9 0x98F4 #CJK UNIFIED IDEOGRAPH +0x88BA 0x7D62 #CJK UNIFIED IDEOGRAPH +0x88BB 0x7DBE #CJK UNIFIED IDEOGRAPH +0x88BC 0x9B8E #CJK UNIFIED IDEOGRAPH +0x88BD 0x6216 #CJK UNIFIED IDEOGRAPH +0x88BE 0x7C9F #CJK UNIFIED IDEOGRAPH +0x88BF 0x88B7 #CJK UNIFIED IDEOGRAPH +0x88C0 0x5B89 #CJK UNIFIED IDEOGRAPH +0x88C1 0x5EB5 #CJK UNIFIED IDEOGRAPH +0x88C2 0x6309 #CJK UNIFIED IDEOGRAPH +0x88C3 0x6697 #CJK UNIFIED IDEOGRAPH +0x88C4 0x6848 #CJK UNIFIED IDEOGRAPH +0x88C5 0x95C7 #CJK UNIFIED IDEOGRAPH +0x88C6 0x978D #CJK UNIFIED IDEOGRAPH +0x88C7 0x674F #CJK UNIFIED IDEOGRAPH +0x88C8 0x4EE5 #CJK UNIFIED IDEOGRAPH +0x88C9 0x4F0A #CJK UNIFIED IDEOGRAPH +0x88CA 0x4F4D #CJK UNIFIED IDEOGRAPH +0x88CB 0x4F9D #CJK UNIFIED IDEOGRAPH +0x88CC 0x5049 #CJK UNIFIED IDEOGRAPH +0x88CD 0x56F2 #CJK UNIFIED IDEOGRAPH +0x88CE 0x5937 #CJK UNIFIED IDEOGRAPH +0x88CF 0x59D4 #CJK UNIFIED IDEOGRAPH +0x88D0 0x5A01 #CJK UNIFIED IDEOGRAPH +0x88D1 0x5C09 #CJK UNIFIED IDEOGRAPH +0x88D2 0x60DF #CJK UNIFIED IDEOGRAPH +0x88D3 0x610F #CJK UNIFIED IDEOGRAPH +0x88D4 0x6170 #CJK UNIFIED IDEOGRAPH +0x88D5 0x6613 #CJK UNIFIED IDEOGRAPH +0x88D6 0x6905 #CJK UNIFIED IDEOGRAPH +0x88D7 0x70BA #CJK UNIFIED IDEOGRAPH +0x88D8 0x754F #CJK UNIFIED IDEOGRAPH +0x88D9 0x7570 #CJK UNIFIED IDEOGRAPH +0x88DA 0x79FB #CJK UNIFIED IDEOGRAPH +0x88DB 0x7DAD #CJK UNIFIED IDEOGRAPH +0x88DC 0x7DEF #CJK UNIFIED IDEOGRAPH +0x88DD 0x80C3 #CJK UNIFIED IDEOGRAPH +0x88DE 0x840E #CJK UNIFIED IDEOGRAPH +0x88DF 0x8863 #CJK UNIFIED IDEOGRAPH +0x88E0 0x8B02 #CJK UNIFIED IDEOGRAPH +0x88E1 0x9055 #CJK UNIFIED IDEOGRAPH +0x88E2 0x907A #CJK UNIFIED IDEOGRAPH +0x88E3 0x533B #CJK UNIFIED IDEOGRAPH +0x88E4 0x4E95 #CJK UNIFIED IDEOGRAPH +0x88E5 0x4EA5 #CJK UNIFIED IDEOGRAPH +0x88E6 0x57DF #CJK UNIFIED IDEOGRAPH +0x88E7 0x80B2 #CJK UNIFIED IDEOGRAPH +0x88E8 0x90C1 #CJK UNIFIED IDEOGRAPH +0x88E9 0x78EF #CJK UNIFIED IDEOGRAPH +0x88EA 0x4E00 #CJK UNIFIED IDEOGRAPH +0x88EB 0x58F1 #CJK UNIFIED IDEOGRAPH +0x88EC 0x6EA2 #CJK UNIFIED IDEOGRAPH +0x88ED 0x9038 #CJK UNIFIED IDEOGRAPH +0x88EE 0x7A32 #CJK UNIFIED IDEOGRAPH +0x88EF 0x8328 #CJK UNIFIED IDEOGRAPH +0x88F0 0x828B #CJK UNIFIED IDEOGRAPH +0x88F1 0x9C2F #CJK UNIFIED IDEOGRAPH +0x88F2 0x5141 #CJK UNIFIED IDEOGRAPH +0x88F3 0x5370 #CJK UNIFIED IDEOGRAPH +0x88F4 0x54BD #CJK UNIFIED IDEOGRAPH +0x88F5 0x54E1 #CJK UNIFIED IDEOGRAPH +0x88F6 0x56E0 #CJK UNIFIED IDEOGRAPH +0x88F7 0x59FB #CJK UNIFIED IDEOGRAPH +0x88F8 0x5F15 #CJK UNIFIED IDEOGRAPH +0x88F9 0x98F2 #CJK UNIFIED IDEOGRAPH +0x88FA 0x6DEB #CJK UNIFIED IDEOGRAPH +0x88FB 0x80E4 #CJK UNIFIED IDEOGRAPH +0x88FC 0x852D #CJK UNIFIED IDEOGRAPH +0x8940 0x9662 #CJK UNIFIED IDEOGRAPH +0x8941 0x9670 #CJK UNIFIED IDEOGRAPH +0x8942 0x96A0 #CJK UNIFIED IDEOGRAPH +0x8943 0x97FB #CJK UNIFIED IDEOGRAPH +0x8944 0x540B #CJK UNIFIED IDEOGRAPH +0x8945 0x53F3 #CJK UNIFIED IDEOGRAPH +0x8946 0x5B87 #CJK UNIFIED IDEOGRAPH +0x8947 0x70CF #CJK UNIFIED IDEOGRAPH +0x8948 0x7FBD #CJK UNIFIED IDEOGRAPH +0x8949 0x8FC2 #CJK UNIFIED IDEOGRAPH +0x894A 0x96E8 #CJK UNIFIED IDEOGRAPH +0x894B 0x536F #CJK UNIFIED IDEOGRAPH +0x894C 0x9D5C #CJK UNIFIED IDEOGRAPH +0x894D 0x7ABA #CJK UNIFIED IDEOGRAPH +0x894E 0x4E11 #CJK UNIFIED IDEOGRAPH +0x894F 0x7893 #CJK UNIFIED IDEOGRAPH +0x8950 0x81FC #CJK UNIFIED IDEOGRAPH +0x8951 0x6E26 #CJK UNIFIED IDEOGRAPH +0x8952 0x5618 #CJK UNIFIED IDEOGRAPH +0x8953 0x5504 #CJK UNIFIED IDEOGRAPH +0x8954 0x6B1D #CJK UNIFIED IDEOGRAPH +0x8955 0x851A #CJK UNIFIED IDEOGRAPH +0x8956 0x9C3B #CJK UNIFIED IDEOGRAPH +0x8957 0x59E5 #CJK UNIFIED IDEOGRAPH +0x8958 0x53A9 #CJK UNIFIED IDEOGRAPH +0x8959 0x6D66 #CJK UNIFIED IDEOGRAPH +0x895A 0x74DC #CJK UNIFIED IDEOGRAPH +0x895B 0x958F #CJK UNIFIED IDEOGRAPH +0x895C 0x5642 #CJK UNIFIED IDEOGRAPH +0x895D 0x4E91 #CJK UNIFIED IDEOGRAPH +0x895E 0x904B #CJK UNIFIED IDEOGRAPH +0x895F 0x96F2 #CJK UNIFIED IDEOGRAPH +0x8960 0x834F #CJK UNIFIED IDEOGRAPH +0x8961 0x990C #CJK UNIFIED IDEOGRAPH +0x8962 0x53E1 #CJK UNIFIED IDEOGRAPH +0x8963 0x55B6 #CJK UNIFIED IDEOGRAPH +0x8964 0x5B30 #CJK UNIFIED IDEOGRAPH +0x8965 0x5F71 #CJK UNIFIED IDEOGRAPH +0x8966 0x6620 #CJK UNIFIED IDEOGRAPH +0x8967 0x66F3 #CJK UNIFIED IDEOGRAPH +0x8968 0x6804 #CJK UNIFIED IDEOGRAPH +0x8969 0x6C38 #CJK UNIFIED IDEOGRAPH +0x896A 0x6CF3 #CJK UNIFIED IDEOGRAPH +0x896B 0x6D29 #CJK UNIFIED IDEOGRAPH +0x896C 0x745B #CJK UNIFIED IDEOGRAPH +0x896D 0x76C8 #CJK UNIFIED IDEOGRAPH +0x896E 0x7A4E #CJK UNIFIED IDEOGRAPH +0x896F 0x9834 #CJK UNIFIED IDEOGRAPH +0x8970 0x82F1 #CJK UNIFIED IDEOGRAPH +0x8971 0x885B #CJK UNIFIED IDEOGRAPH +0x8972 0x8A60 #CJK UNIFIED IDEOGRAPH +0x8973 0x92ED #CJK UNIFIED IDEOGRAPH +0x8974 0x6DB2 #CJK UNIFIED IDEOGRAPH +0x8975 0x75AB #CJK UNIFIED IDEOGRAPH +0x8976 0x76CA #CJK UNIFIED IDEOGRAPH +0x8977 0x99C5 #CJK UNIFIED IDEOGRAPH +0x8978 0x60A6 #CJK UNIFIED IDEOGRAPH +0x8979 0x8B01 #CJK UNIFIED IDEOGRAPH +0x897A 0x8D8A #CJK UNIFIED IDEOGRAPH +0x897B 0x95B2 #CJK UNIFIED IDEOGRAPH +0x897C 0x698E #CJK UNIFIED IDEOGRAPH +0x897D 0x53AD #CJK UNIFIED IDEOGRAPH +0x897E 0x5186 #CJK UNIFIED IDEOGRAPH +0x8980 0x5712 #CJK UNIFIED IDEOGRAPH +0x8981 0x5830 #CJK UNIFIED IDEOGRAPH +0x8982 0x5944 #CJK UNIFIED IDEOGRAPH +0x8983 0x5BB4 #CJK UNIFIED IDEOGRAPH +0x8984 0x5EF6 #CJK UNIFIED IDEOGRAPH +0x8985 0x6028 #CJK UNIFIED IDEOGRAPH +0x8986 0x63A9 #CJK UNIFIED IDEOGRAPH +0x8987 0x63F4 #CJK UNIFIED IDEOGRAPH +0x8988 0x6CBF #CJK UNIFIED IDEOGRAPH +0x8989 0x6F14 #CJK UNIFIED IDEOGRAPH +0x898A 0x708E #CJK UNIFIED IDEOGRAPH +0x898B 0x7114 #CJK UNIFIED IDEOGRAPH +0x898C 0x7159 #CJK UNIFIED IDEOGRAPH +0x898D 0x71D5 #CJK UNIFIED IDEOGRAPH +0x898E 0x733F #CJK UNIFIED IDEOGRAPH +0x898F 0x7E01 #CJK UNIFIED IDEOGRAPH +0x8990 0x8276 #CJK UNIFIED IDEOGRAPH +0x8991 0x82D1 #CJK UNIFIED IDEOGRAPH +0x8992 0x8597 #CJK UNIFIED IDEOGRAPH +0x8993 0x9060 #CJK UNIFIED IDEOGRAPH +0x8994 0x925B #CJK UNIFIED IDEOGRAPH +0x8995 0x9D1B #CJK UNIFIED IDEOGRAPH +0x8996 0x5869 #CJK UNIFIED IDEOGRAPH +0x8997 0x65BC #CJK UNIFIED IDEOGRAPH +0x8998 0x6C5A #CJK UNIFIED IDEOGRAPH +0x8999 0x7525 #CJK UNIFIED IDEOGRAPH +0x899A 0x51F9 #CJK UNIFIED IDEOGRAPH +0x899B 0x592E #CJK UNIFIED IDEOGRAPH +0x899C 0x5965 #CJK UNIFIED IDEOGRAPH +0x899D 0x5F80 #CJK UNIFIED IDEOGRAPH +0x899E 0x5FDC #CJK UNIFIED IDEOGRAPH +0x899F 0x62BC #CJK UNIFIED IDEOGRAPH +0x89A0 0x65FA #CJK UNIFIED IDEOGRAPH +0x89A1 0x6A2A #CJK UNIFIED IDEOGRAPH +0x89A2 0x6B27 #CJK UNIFIED IDEOGRAPH +0x89A3 0x6BB4 #CJK UNIFIED IDEOGRAPH +0x89A4 0x738B #CJK UNIFIED IDEOGRAPH +0x89A5 0x7FC1 #CJK UNIFIED IDEOGRAPH +0x89A6 0x8956 #CJK UNIFIED IDEOGRAPH +0x89A7 0x9D2C #CJK UNIFIED IDEOGRAPH +0x89A8 0x9D0E #CJK UNIFIED IDEOGRAPH +0x89A9 0x9EC4 #CJK UNIFIED IDEOGRAPH +0x89AA 0x5CA1 #CJK UNIFIED IDEOGRAPH +0x89AB 0x6C96 #CJK UNIFIED IDEOGRAPH +0x89AC 0x837B #CJK UNIFIED IDEOGRAPH +0x89AD 0x5104 #CJK UNIFIED IDEOGRAPH +0x89AE 0x5C4B #CJK UNIFIED IDEOGRAPH +0x89AF 0x61B6 #CJK UNIFIED IDEOGRAPH +0x89B0 0x81C6 #CJK UNIFIED IDEOGRAPH +0x89B1 0x6876 #CJK UNIFIED IDEOGRAPH +0x89B2 0x7261 #CJK UNIFIED IDEOGRAPH +0x89B3 0x4E59 #CJK UNIFIED IDEOGRAPH +0x89B4 0x4FFA #CJK UNIFIED IDEOGRAPH +0x89B5 0x5378 #CJK UNIFIED IDEOGRAPH +0x89B6 0x6069 #CJK UNIFIED IDEOGRAPH +0x89B7 0x6E29 #CJK UNIFIED IDEOGRAPH +0x89B8 0x7A4F #CJK UNIFIED IDEOGRAPH +0x89B9 0x97F3 #CJK UNIFIED IDEOGRAPH +0x89BA 0x4E0B #CJK UNIFIED IDEOGRAPH +0x89BB 0x5316 #CJK UNIFIED IDEOGRAPH +0x89BC 0x4EEE #CJK UNIFIED IDEOGRAPH +0x89BD 0x4F55 #CJK UNIFIED IDEOGRAPH +0x89BE 0x4F3D #CJK UNIFIED IDEOGRAPH +0x89BF 0x4FA1 #CJK UNIFIED IDEOGRAPH +0x89C0 0x4F73 #CJK UNIFIED IDEOGRAPH +0x89C1 0x52A0 #CJK UNIFIED IDEOGRAPH +0x89C2 0x53EF #CJK UNIFIED IDEOGRAPH +0x89C3 0x5609 #CJK UNIFIED IDEOGRAPH +0x89C4 0x590F #CJK UNIFIED IDEOGRAPH +0x89C5 0x5AC1 #CJK UNIFIED IDEOGRAPH +0x89C6 0x5BB6 #CJK UNIFIED IDEOGRAPH +0x89C7 0x5BE1 #CJK UNIFIED IDEOGRAPH +0x89C8 0x79D1 #CJK UNIFIED IDEOGRAPH +0x89C9 0x6687 #CJK UNIFIED IDEOGRAPH +0x89CA 0x679C #CJK UNIFIED IDEOGRAPH +0x89CB 0x67B6 #CJK UNIFIED IDEOGRAPH +0x89CC 0x6B4C #CJK UNIFIED IDEOGRAPH +0x89CD 0x6CB3 #CJK UNIFIED IDEOGRAPH +0x89CE 0x706B #CJK UNIFIED IDEOGRAPH +0x89CF 0x73C2 #CJK UNIFIED IDEOGRAPH +0x89D0 0x798D #CJK UNIFIED IDEOGRAPH +0x89D1 0x79BE #CJK UNIFIED IDEOGRAPH +0x89D2 0x7A3C #CJK UNIFIED IDEOGRAPH +0x89D3 0x7B87 #CJK UNIFIED IDEOGRAPH +0x89D4 0x82B1 #CJK UNIFIED IDEOGRAPH +0x89D5 0x82DB #CJK UNIFIED IDEOGRAPH +0x89D6 0x8304 #CJK UNIFIED IDEOGRAPH +0x89D7 0x8377 #CJK UNIFIED IDEOGRAPH +0x89D8 0x83EF #CJK UNIFIED IDEOGRAPH +0x89D9 0x83D3 #CJK UNIFIED IDEOGRAPH +0x89DA 0x8766 #CJK UNIFIED IDEOGRAPH +0x89DB 0x8AB2 #CJK UNIFIED IDEOGRAPH +0x89DC 0x5629 #CJK UNIFIED IDEOGRAPH +0x89DD 0x8CA8 #CJK UNIFIED IDEOGRAPH +0x89DE 0x8FE6 #CJK UNIFIED IDEOGRAPH +0x89DF 0x904E #CJK UNIFIED IDEOGRAPH +0x89E0 0x971E #CJK UNIFIED IDEOGRAPH +0x89E1 0x868A #CJK UNIFIED IDEOGRAPH +0x89E2 0x4FC4 #CJK UNIFIED IDEOGRAPH +0x89E3 0x5CE8 #CJK UNIFIED IDEOGRAPH +0x89E4 0x6211 #CJK UNIFIED IDEOGRAPH +0x89E5 0x7259 #CJK UNIFIED IDEOGRAPH +0x89E6 0x753B #CJK UNIFIED IDEOGRAPH +0x89E7 0x81E5 #CJK UNIFIED IDEOGRAPH +0x89E8 0x82BD #CJK UNIFIED IDEOGRAPH +0x89E9 0x86FE #CJK UNIFIED IDEOGRAPH +0x89EA 0x8CC0 #CJK UNIFIED IDEOGRAPH +0x89EB 0x96C5 #CJK UNIFIED IDEOGRAPH +0x89EC 0x9913 #CJK UNIFIED IDEOGRAPH +0x89ED 0x99D5 #CJK UNIFIED IDEOGRAPH +0x89EE 0x4ECB #CJK UNIFIED IDEOGRAPH +0x89EF 0x4F1A #CJK UNIFIED IDEOGRAPH +0x89F0 0x89E3 #CJK UNIFIED IDEOGRAPH +0x89F1 0x56DE #CJK UNIFIED IDEOGRAPH +0x89F2 0x584A #CJK UNIFIED IDEOGRAPH +0x89F3 0x58CA #CJK UNIFIED IDEOGRAPH +0x89F4 0x5EFB #CJK UNIFIED IDEOGRAPH +0x89F5 0x5FEB #CJK UNIFIED IDEOGRAPH +0x89F6 0x602A #CJK UNIFIED IDEOGRAPH +0x89F7 0x6094 #CJK UNIFIED IDEOGRAPH +0x89F8 0x6062 #CJK UNIFIED IDEOGRAPH +0x89F9 0x61D0 #CJK UNIFIED IDEOGRAPH +0x89FA 0x6212 #CJK UNIFIED IDEOGRAPH +0x89FB 0x62D0 #CJK UNIFIED IDEOGRAPH +0x89FC 0x6539 #CJK UNIFIED IDEOGRAPH +0x8A40 0x9B41 #CJK UNIFIED IDEOGRAPH +0x8A41 0x6666 #CJK UNIFIED IDEOGRAPH +0x8A42 0x68B0 #CJK UNIFIED IDEOGRAPH +0x8A43 0x6D77 #CJK UNIFIED IDEOGRAPH +0x8A44 0x7070 #CJK UNIFIED IDEOGRAPH +0x8A45 0x754C #CJK UNIFIED IDEOGRAPH +0x8A46 0x7686 #CJK UNIFIED IDEOGRAPH +0x8A47 0x7D75 #CJK UNIFIED IDEOGRAPH +0x8A48 0x82A5 #CJK UNIFIED IDEOGRAPH +0x8A49 0x87F9 #CJK UNIFIED IDEOGRAPH +0x8A4A 0x958B #CJK UNIFIED IDEOGRAPH +0x8A4B 0x968E #CJK UNIFIED IDEOGRAPH +0x8A4C 0x8C9D #CJK UNIFIED IDEOGRAPH +0x8A4D 0x51F1 #CJK UNIFIED IDEOGRAPH +0x8A4E 0x52BE #CJK UNIFIED IDEOGRAPH +0x8A4F 0x5916 #CJK UNIFIED IDEOGRAPH +0x8A50 0x54B3 #CJK UNIFIED IDEOGRAPH +0x8A51 0x5BB3 #CJK UNIFIED IDEOGRAPH +0x8A52 0x5D16 #CJK UNIFIED IDEOGRAPH +0x8A53 0x6168 #CJK UNIFIED IDEOGRAPH +0x8A54 0x6982 #CJK UNIFIED IDEOGRAPH +0x8A55 0x6DAF #CJK UNIFIED IDEOGRAPH +0x8A56 0x788D #CJK UNIFIED IDEOGRAPH +0x8A57 0x84CB #CJK UNIFIED IDEOGRAPH +0x8A58 0x8857 #CJK UNIFIED IDEOGRAPH +0x8A59 0x8A72 #CJK UNIFIED IDEOGRAPH +0x8A5A 0x93A7 #CJK UNIFIED IDEOGRAPH +0x8A5B 0x9AB8 #CJK UNIFIED IDEOGRAPH +0x8A5C 0x6D6C #CJK UNIFIED IDEOGRAPH +0x8A5D 0x99A8 #CJK UNIFIED IDEOGRAPH +0x8A5E 0x86D9 #CJK UNIFIED IDEOGRAPH +0x8A5F 0x57A3 #CJK UNIFIED IDEOGRAPH +0x8A60 0x67FF #CJK UNIFIED IDEOGRAPH +0x8A61 0x86CE #CJK UNIFIED IDEOGRAPH +0x8A62 0x920E #CJK UNIFIED IDEOGRAPH +0x8A63 0x5283 #CJK UNIFIED IDEOGRAPH +0x8A64 0x5687 #CJK UNIFIED IDEOGRAPH +0x8A65 0x5404 #CJK UNIFIED IDEOGRAPH +0x8A66 0x5ED3 #CJK UNIFIED IDEOGRAPH +0x8A67 0x62E1 #CJK UNIFIED IDEOGRAPH +0x8A68 0x64B9 #CJK UNIFIED IDEOGRAPH +0x8A69 0x683C #CJK UNIFIED IDEOGRAPH +0x8A6A 0x6838 #CJK UNIFIED IDEOGRAPH +0x8A6B 0x6BBB #CJK UNIFIED IDEOGRAPH +0x8A6C 0x7372 #CJK UNIFIED IDEOGRAPH +0x8A6D 0x78BA #CJK UNIFIED IDEOGRAPH +0x8A6E 0x7A6B #CJK UNIFIED IDEOGRAPH +0x8A6F 0x899A #CJK UNIFIED IDEOGRAPH +0x8A70 0x89D2 #CJK UNIFIED IDEOGRAPH +0x8A71 0x8D6B #CJK UNIFIED IDEOGRAPH +0x8A72 0x8F03 #CJK UNIFIED IDEOGRAPH +0x8A73 0x90ED #CJK UNIFIED IDEOGRAPH +0x8A74 0x95A3 #CJK UNIFIED IDEOGRAPH +0x8A75 0x9694 #CJK UNIFIED IDEOGRAPH +0x8A76 0x9769 #CJK UNIFIED IDEOGRAPH +0x8A77 0x5B66 #CJK UNIFIED IDEOGRAPH +0x8A78 0x5CB3 #CJK UNIFIED IDEOGRAPH +0x8A79 0x697D #CJK UNIFIED IDEOGRAPH +0x8A7A 0x984D #CJK UNIFIED IDEOGRAPH +0x8A7B 0x984E #CJK UNIFIED IDEOGRAPH +0x8A7C 0x639B #CJK UNIFIED IDEOGRAPH +0x8A7D 0x7B20 #CJK UNIFIED IDEOGRAPH +0x8A7E 0x6A2B #CJK UNIFIED IDEOGRAPH +0x8A80 0x6A7F #CJK UNIFIED IDEOGRAPH +0x8A81 0x68B6 #CJK UNIFIED IDEOGRAPH +0x8A82 0x9C0D #CJK UNIFIED IDEOGRAPH +0x8A83 0x6F5F #CJK UNIFIED IDEOGRAPH +0x8A84 0x5272 #CJK UNIFIED IDEOGRAPH +0x8A85 0x559D #CJK UNIFIED IDEOGRAPH +0x8A86 0x6070 #CJK UNIFIED IDEOGRAPH +0x8A87 0x62EC #CJK UNIFIED IDEOGRAPH +0x8A88 0x6D3B #CJK UNIFIED IDEOGRAPH +0x8A89 0x6E07 #CJK UNIFIED IDEOGRAPH +0x8A8A 0x6ED1 #CJK UNIFIED IDEOGRAPH +0x8A8B 0x845B #CJK UNIFIED IDEOGRAPH +0x8A8C 0x8910 #CJK UNIFIED IDEOGRAPH +0x8A8D 0x8F44 #CJK UNIFIED IDEOGRAPH +0x8A8E 0x4E14 #CJK UNIFIED IDEOGRAPH +0x8A8F 0x9C39 #CJK UNIFIED IDEOGRAPH +0x8A90 0x53F6 #CJK UNIFIED IDEOGRAPH +0x8A91 0x691B #CJK UNIFIED IDEOGRAPH +0x8A92 0x6A3A #CJK UNIFIED IDEOGRAPH +0x8A93 0x9784 #CJK UNIFIED IDEOGRAPH +0x8A94 0x682A #CJK UNIFIED IDEOGRAPH +0x8A95 0x515C #CJK UNIFIED IDEOGRAPH +0x8A96 0x7AC3 #CJK UNIFIED IDEOGRAPH +0x8A97 0x84B2 #CJK UNIFIED IDEOGRAPH +0x8A98 0x91DC #CJK UNIFIED IDEOGRAPH +0x8A99 0x938C #CJK UNIFIED IDEOGRAPH +0x8A9A 0x565B #CJK UNIFIED IDEOGRAPH +0x8A9B 0x9D28 #CJK UNIFIED IDEOGRAPH +0x8A9C 0x6822 #CJK UNIFIED IDEOGRAPH +0x8A9D 0x8305 #CJK UNIFIED IDEOGRAPH +0x8A9E 0x8431 #CJK UNIFIED IDEOGRAPH +0x8A9F 0x7CA5 #CJK UNIFIED IDEOGRAPH +0x8AA0 0x5208 #CJK UNIFIED IDEOGRAPH +0x8AA1 0x82C5 #CJK UNIFIED IDEOGRAPH +0x8AA2 0x74E6 #CJK UNIFIED IDEOGRAPH +0x8AA3 0x4E7E #CJK UNIFIED IDEOGRAPH +0x8AA4 0x4F83 #CJK UNIFIED IDEOGRAPH +0x8AA5 0x51A0 #CJK UNIFIED IDEOGRAPH +0x8AA6 0x5BD2 #CJK UNIFIED IDEOGRAPH +0x8AA7 0x520A #CJK UNIFIED IDEOGRAPH +0x8AA8 0x52D8 #CJK UNIFIED IDEOGRAPH +0x8AA9 0x52E7 #CJK UNIFIED IDEOGRAPH +0x8AAA 0x5DFB #CJK UNIFIED IDEOGRAPH +0x8AAB 0x559A #CJK UNIFIED IDEOGRAPH +0x8AAC 0x582A #CJK UNIFIED IDEOGRAPH +0x8AAD 0x59E6 #CJK UNIFIED IDEOGRAPH +0x8AAE 0x5B8C #CJK UNIFIED IDEOGRAPH +0x8AAF 0x5B98 #CJK UNIFIED IDEOGRAPH +0x8AB0 0x5BDB #CJK UNIFIED IDEOGRAPH +0x8AB1 0x5E72 #CJK UNIFIED IDEOGRAPH +0x8AB2 0x5E79 #CJK UNIFIED IDEOGRAPH +0x8AB3 0x60A3 #CJK UNIFIED IDEOGRAPH +0x8AB4 0x611F #CJK UNIFIED IDEOGRAPH +0x8AB5 0x6163 #CJK UNIFIED IDEOGRAPH +0x8AB6 0x61BE #CJK UNIFIED IDEOGRAPH +0x8AB7 0x63DB #CJK UNIFIED IDEOGRAPH +0x8AB8 0x6562 #CJK UNIFIED IDEOGRAPH +0x8AB9 0x67D1 #CJK UNIFIED IDEOGRAPH +0x8ABA 0x6853 #CJK UNIFIED IDEOGRAPH +0x8ABB 0x68FA #CJK UNIFIED IDEOGRAPH +0x8ABC 0x6B3E #CJK UNIFIED IDEOGRAPH +0x8ABD 0x6B53 #CJK UNIFIED IDEOGRAPH +0x8ABE 0x6C57 #CJK UNIFIED IDEOGRAPH +0x8ABF 0x6F22 #CJK UNIFIED IDEOGRAPH +0x8AC0 0x6F97 #CJK UNIFIED IDEOGRAPH +0x8AC1 0x6F45 #CJK UNIFIED IDEOGRAPH +0x8AC2 0x74B0 #CJK UNIFIED IDEOGRAPH +0x8AC3 0x7518 #CJK UNIFIED IDEOGRAPH +0x8AC4 0x76E3 #CJK UNIFIED IDEOGRAPH +0x8AC5 0x770B #CJK UNIFIED IDEOGRAPH +0x8AC6 0x7AFF #CJK UNIFIED IDEOGRAPH +0x8AC7 0x7BA1 #CJK UNIFIED IDEOGRAPH +0x8AC8 0x7C21 #CJK UNIFIED IDEOGRAPH +0x8AC9 0x7DE9 #CJK UNIFIED IDEOGRAPH +0x8ACA 0x7F36 #CJK UNIFIED IDEOGRAPH +0x8ACB 0x7FF0 #CJK UNIFIED IDEOGRAPH +0x8ACC 0x809D #CJK UNIFIED IDEOGRAPH +0x8ACD 0x8266 #CJK UNIFIED IDEOGRAPH +0x8ACE 0x839E #CJK UNIFIED IDEOGRAPH +0x8ACF 0x89B3 #CJK UNIFIED IDEOGRAPH +0x8AD0 0x8ACC #CJK UNIFIED IDEOGRAPH +0x8AD1 0x8CAB #CJK UNIFIED IDEOGRAPH +0x8AD2 0x9084 #CJK UNIFIED IDEOGRAPH +0x8AD3 0x9451 #CJK UNIFIED IDEOGRAPH +0x8AD4 0x9593 #CJK UNIFIED IDEOGRAPH +0x8AD5 0x9591 #CJK UNIFIED IDEOGRAPH +0x8AD6 0x95A2 #CJK UNIFIED IDEOGRAPH +0x8AD7 0x9665 #CJK UNIFIED IDEOGRAPH +0x8AD8 0x97D3 #CJK UNIFIED IDEOGRAPH +0x8AD9 0x9928 #CJK UNIFIED IDEOGRAPH +0x8ADA 0x8218 #CJK UNIFIED IDEOGRAPH +0x8ADB 0x4E38 #CJK UNIFIED IDEOGRAPH +0x8ADC 0x542B #CJK UNIFIED IDEOGRAPH +0x8ADD 0x5CB8 #CJK UNIFIED IDEOGRAPH +0x8ADE 0x5DCC #CJK UNIFIED IDEOGRAPH +0x8ADF 0x73A9 #CJK UNIFIED IDEOGRAPH +0x8AE0 0x764C #CJK UNIFIED IDEOGRAPH +0x8AE1 0x773C #CJK UNIFIED IDEOGRAPH +0x8AE2 0x5CA9 #CJK UNIFIED IDEOGRAPH +0x8AE3 0x7FEB #CJK UNIFIED IDEOGRAPH +0x8AE4 0x8D0B #CJK UNIFIED IDEOGRAPH +0x8AE5 0x96C1 #CJK UNIFIED IDEOGRAPH +0x8AE6 0x9811 #CJK UNIFIED IDEOGRAPH +0x8AE7 0x9854 #CJK UNIFIED IDEOGRAPH +0x8AE8 0x9858 #CJK UNIFIED IDEOGRAPH +0x8AE9 0x4F01 #CJK UNIFIED IDEOGRAPH +0x8AEA 0x4F0E #CJK UNIFIED IDEOGRAPH +0x8AEB 0x5371 #CJK UNIFIED IDEOGRAPH +0x8AEC 0x559C #CJK UNIFIED IDEOGRAPH +0x8AED 0x5668 #CJK UNIFIED IDEOGRAPH +0x8AEE 0x57FA #CJK UNIFIED IDEOGRAPH +0x8AEF 0x5947 #CJK UNIFIED IDEOGRAPH +0x8AF0 0x5B09 #CJK UNIFIED IDEOGRAPH +0x8AF1 0x5BC4 #CJK UNIFIED IDEOGRAPH +0x8AF2 0x5C90 #CJK UNIFIED IDEOGRAPH +0x8AF3 0x5E0C #CJK UNIFIED IDEOGRAPH +0x8AF4 0x5E7E #CJK UNIFIED IDEOGRAPH +0x8AF5 0x5FCC #CJK UNIFIED IDEOGRAPH +0x8AF6 0x63EE #CJK UNIFIED IDEOGRAPH +0x8AF7 0x673A #CJK UNIFIED IDEOGRAPH +0x8AF8 0x65D7 #CJK UNIFIED IDEOGRAPH +0x8AF9 0x65E2 #CJK UNIFIED IDEOGRAPH +0x8AFA 0x671F #CJK UNIFIED IDEOGRAPH +0x8AFB 0x68CB #CJK UNIFIED IDEOGRAPH +0x8AFC 0x68C4 #CJK UNIFIED IDEOGRAPH +0x8B40 0x6A5F #CJK UNIFIED IDEOGRAPH +0x8B41 0x5E30 #CJK UNIFIED IDEOGRAPH +0x8B42 0x6BC5 #CJK UNIFIED IDEOGRAPH +0x8B43 0x6C17 #CJK UNIFIED IDEOGRAPH +0x8B44 0x6C7D #CJK UNIFIED IDEOGRAPH +0x8B45 0x757F #CJK UNIFIED IDEOGRAPH +0x8B46 0x7948 #CJK UNIFIED IDEOGRAPH +0x8B47 0x5B63 #CJK UNIFIED IDEOGRAPH +0x8B48 0x7A00 #CJK UNIFIED IDEOGRAPH +0x8B49 0x7D00 #CJK UNIFIED IDEOGRAPH +0x8B4A 0x5FBD #CJK UNIFIED IDEOGRAPH +0x8B4B 0x898F #CJK UNIFIED IDEOGRAPH +0x8B4C 0x8A18 #CJK UNIFIED IDEOGRAPH +0x8B4D 0x8CB4 #CJK UNIFIED IDEOGRAPH +0x8B4E 0x8D77 #CJK UNIFIED IDEOGRAPH +0x8B4F 0x8ECC #CJK UNIFIED IDEOGRAPH +0x8B50 0x8F1D #CJK UNIFIED IDEOGRAPH +0x8B51 0x98E2 #CJK UNIFIED IDEOGRAPH +0x8B52 0x9A0E #CJK UNIFIED IDEOGRAPH +0x8B53 0x9B3C #CJK UNIFIED IDEOGRAPH +0x8B54 0x4E80 #CJK UNIFIED IDEOGRAPH +0x8B55 0x507D #CJK UNIFIED IDEOGRAPH +0x8B56 0x5100 #CJK UNIFIED IDEOGRAPH +0x8B57 0x5993 #CJK UNIFIED IDEOGRAPH +0x8B58 0x5B9C #CJK UNIFIED IDEOGRAPH +0x8B59 0x622F #CJK UNIFIED IDEOGRAPH +0x8B5A 0x6280 #CJK UNIFIED IDEOGRAPH +0x8B5B 0x64EC #CJK UNIFIED IDEOGRAPH +0x8B5C 0x6B3A #CJK UNIFIED IDEOGRAPH +0x8B5D 0x72A0 #CJK UNIFIED IDEOGRAPH +0x8B5E 0x7591 #CJK UNIFIED IDEOGRAPH +0x8B5F 0x7947 #CJK UNIFIED IDEOGRAPH +0x8B60 0x7FA9 #CJK UNIFIED IDEOGRAPH +0x8B61 0x87FB #CJK UNIFIED IDEOGRAPH +0x8B62 0x8ABC #CJK UNIFIED IDEOGRAPH +0x8B63 0x8B70 #CJK UNIFIED IDEOGRAPH +0x8B64 0x63AC #CJK UNIFIED IDEOGRAPH +0x8B65 0x83CA #CJK UNIFIED IDEOGRAPH +0x8B66 0x97A0 #CJK UNIFIED IDEOGRAPH +0x8B67 0x5409 #CJK UNIFIED IDEOGRAPH +0x8B68 0x5403 #CJK UNIFIED IDEOGRAPH +0x8B69 0x55AB #CJK UNIFIED IDEOGRAPH +0x8B6A 0x6854 #CJK UNIFIED IDEOGRAPH +0x8B6B 0x6A58 #CJK UNIFIED IDEOGRAPH +0x8B6C 0x8A70 #CJK UNIFIED IDEOGRAPH +0x8B6D 0x7827 #CJK UNIFIED IDEOGRAPH +0x8B6E 0x6775 #CJK UNIFIED IDEOGRAPH +0x8B6F 0x9ECD #CJK UNIFIED IDEOGRAPH +0x8B70 0x5374 #CJK UNIFIED IDEOGRAPH +0x8B71 0x5BA2 #CJK UNIFIED IDEOGRAPH +0x8B72 0x811A #CJK UNIFIED IDEOGRAPH +0x8B73 0x8650 #CJK UNIFIED IDEOGRAPH +0x8B74 0x9006 #CJK UNIFIED IDEOGRAPH +0x8B75 0x4E18 #CJK UNIFIED IDEOGRAPH +0x8B76 0x4E45 #CJK UNIFIED IDEOGRAPH +0x8B77 0x4EC7 #CJK UNIFIED IDEOGRAPH +0x8B78 0x4F11 #CJK UNIFIED IDEOGRAPH +0x8B79 0x53CA #CJK UNIFIED IDEOGRAPH +0x8B7A 0x5438 #CJK UNIFIED IDEOGRAPH +0x8B7B 0x5BAE #CJK UNIFIED IDEOGRAPH +0x8B7C 0x5F13 #CJK UNIFIED IDEOGRAPH +0x8B7D 0x6025 #CJK UNIFIED IDEOGRAPH +0x8B7E 0x6551 #CJK UNIFIED IDEOGRAPH +0x8B80 0x673D #CJK UNIFIED IDEOGRAPH +0x8B81 0x6C42 #CJK UNIFIED IDEOGRAPH +0x8B82 0x6C72 #CJK UNIFIED IDEOGRAPH +0x8B83 0x6CE3 #CJK UNIFIED IDEOGRAPH +0x8B84 0x7078 #CJK UNIFIED IDEOGRAPH +0x8B85 0x7403 #CJK UNIFIED IDEOGRAPH +0x8B86 0x7A76 #CJK UNIFIED IDEOGRAPH +0x8B87 0x7AAE #CJK UNIFIED IDEOGRAPH +0x8B88 0x7B08 #CJK UNIFIED IDEOGRAPH +0x8B89 0x7D1A #CJK UNIFIED IDEOGRAPH +0x8B8A 0x7CFE #CJK UNIFIED IDEOGRAPH +0x8B8B 0x7D66 #CJK UNIFIED IDEOGRAPH +0x8B8C 0x65E7 #CJK UNIFIED IDEOGRAPH +0x8B8D 0x725B #CJK UNIFIED IDEOGRAPH +0x8B8E 0x53BB #CJK UNIFIED IDEOGRAPH +0x8B8F 0x5C45 #CJK UNIFIED IDEOGRAPH +0x8B90 0x5DE8 #CJK UNIFIED IDEOGRAPH +0x8B91 0x62D2 #CJK UNIFIED IDEOGRAPH +0x8B92 0x62E0 #CJK UNIFIED IDEOGRAPH +0x8B93 0x6319 #CJK UNIFIED IDEOGRAPH +0x8B94 0x6E20 #CJK UNIFIED IDEOGRAPH +0x8B95 0x865A #CJK UNIFIED IDEOGRAPH +0x8B96 0x8A31 #CJK UNIFIED IDEOGRAPH +0x8B97 0x8DDD #CJK UNIFIED IDEOGRAPH +0x8B98 0x92F8 #CJK UNIFIED IDEOGRAPH +0x8B99 0x6F01 #CJK UNIFIED IDEOGRAPH +0x8B9A 0x79A6 #CJK UNIFIED IDEOGRAPH +0x8B9B 0x9B5A #CJK UNIFIED IDEOGRAPH +0x8B9C 0x4EA8 #CJK UNIFIED IDEOGRAPH +0x8B9D 0x4EAB #CJK UNIFIED IDEOGRAPH +0x8B9E 0x4EAC #CJK UNIFIED IDEOGRAPH +0x8B9F 0x4F9B #CJK UNIFIED IDEOGRAPH +0x8BA0 0x4FA0 #CJK UNIFIED IDEOGRAPH +0x8BA1 0x50D1 #CJK UNIFIED IDEOGRAPH +0x8BA2 0x5147 #CJK UNIFIED IDEOGRAPH +0x8BA3 0x7AF6 #CJK UNIFIED IDEOGRAPH +0x8BA4 0x5171 #CJK UNIFIED IDEOGRAPH +0x8BA5 0x51F6 #CJK UNIFIED IDEOGRAPH +0x8BA6 0x5354 #CJK UNIFIED IDEOGRAPH +0x8BA7 0x5321 #CJK UNIFIED IDEOGRAPH +0x8BA8 0x537F #CJK UNIFIED IDEOGRAPH +0x8BA9 0x53EB #CJK UNIFIED IDEOGRAPH +0x8BAA 0x55AC #CJK UNIFIED IDEOGRAPH +0x8BAB 0x5883 #CJK UNIFIED IDEOGRAPH +0x8BAC 0x5CE1 #CJK UNIFIED IDEOGRAPH +0x8BAD 0x5F37 #CJK UNIFIED IDEOGRAPH +0x8BAE 0x5F4A #CJK UNIFIED IDEOGRAPH +0x8BAF 0x602F #CJK UNIFIED IDEOGRAPH +0x8BB0 0x6050 #CJK UNIFIED IDEOGRAPH +0x8BB1 0x606D #CJK UNIFIED IDEOGRAPH +0x8BB2 0x631F #CJK UNIFIED IDEOGRAPH +0x8BB3 0x6559 #CJK UNIFIED IDEOGRAPH +0x8BB4 0x6A4B #CJK UNIFIED IDEOGRAPH +0x8BB5 0x6CC1 #CJK UNIFIED IDEOGRAPH +0x8BB6 0x72C2 #CJK UNIFIED IDEOGRAPH +0x8BB7 0x72ED #CJK UNIFIED IDEOGRAPH +0x8BB8 0x77EF #CJK UNIFIED IDEOGRAPH +0x8BB9 0x80F8 #CJK UNIFIED IDEOGRAPH +0x8BBA 0x8105 #CJK UNIFIED IDEOGRAPH +0x8BBB 0x8208 #CJK UNIFIED IDEOGRAPH +0x8BBC 0x854E #CJK UNIFIED IDEOGRAPH +0x8BBD 0x90F7 #CJK UNIFIED IDEOGRAPH +0x8BBE 0x93E1 #CJK UNIFIED IDEOGRAPH +0x8BBF 0x97FF #CJK UNIFIED IDEOGRAPH +0x8BC0 0x9957 #CJK UNIFIED IDEOGRAPH +0x8BC1 0x9A5A #CJK UNIFIED IDEOGRAPH +0x8BC2 0x4EF0 #CJK UNIFIED IDEOGRAPH +0x8BC3 0x51DD #CJK UNIFIED IDEOGRAPH +0x8BC4 0x5C2D #CJK UNIFIED IDEOGRAPH +0x8BC5 0x6681 #CJK UNIFIED IDEOGRAPH +0x8BC6 0x696D #CJK UNIFIED IDEOGRAPH +0x8BC7 0x5C40 #CJK UNIFIED IDEOGRAPH +0x8BC8 0x66F2 #CJK UNIFIED IDEOGRAPH +0x8BC9 0x6975 #CJK UNIFIED IDEOGRAPH +0x8BCA 0x7389 #CJK UNIFIED IDEOGRAPH +0x8BCB 0x6850 #CJK UNIFIED IDEOGRAPH +0x8BCC 0x7C81 #CJK UNIFIED IDEOGRAPH +0x8BCD 0x50C5 #CJK UNIFIED IDEOGRAPH +0x8BCE 0x52E4 #CJK UNIFIED IDEOGRAPH +0x8BCF 0x5747 #CJK UNIFIED IDEOGRAPH +0x8BD0 0x5DFE #CJK UNIFIED IDEOGRAPH +0x8BD1 0x9326 #CJK UNIFIED IDEOGRAPH +0x8BD2 0x65A4 #CJK UNIFIED IDEOGRAPH +0x8BD3 0x6B23 #CJK UNIFIED IDEOGRAPH +0x8BD4 0x6B3D #CJK UNIFIED IDEOGRAPH +0x8BD5 0x7434 #CJK UNIFIED IDEOGRAPH +0x8BD6 0x7981 #CJK UNIFIED IDEOGRAPH +0x8BD7 0x79BD #CJK UNIFIED IDEOGRAPH +0x8BD8 0x7B4B #CJK UNIFIED IDEOGRAPH +0x8BD9 0x7DCA #CJK UNIFIED IDEOGRAPH +0x8BDA 0x82B9 #CJK UNIFIED IDEOGRAPH +0x8BDB 0x83CC #CJK UNIFIED IDEOGRAPH +0x8BDC 0x887F #CJK UNIFIED IDEOGRAPH +0x8BDD 0x895F #CJK UNIFIED IDEOGRAPH +0x8BDE 0x8B39 #CJK UNIFIED IDEOGRAPH +0x8BDF 0x8FD1 #CJK UNIFIED IDEOGRAPH +0x8BE0 0x91D1 #CJK UNIFIED IDEOGRAPH +0x8BE1 0x541F #CJK UNIFIED IDEOGRAPH +0x8BE2 0x9280 #CJK UNIFIED IDEOGRAPH +0x8BE3 0x4E5D #CJK UNIFIED IDEOGRAPH +0x8BE4 0x5036 #CJK UNIFIED IDEOGRAPH +0x8BE5 0x53E5 #CJK UNIFIED IDEOGRAPH +0x8BE6 0x533A #CJK UNIFIED IDEOGRAPH +0x8BE7 0x72D7 #CJK UNIFIED IDEOGRAPH +0x8BE8 0x7396 #CJK UNIFIED IDEOGRAPH +0x8BE9 0x77E9 #CJK UNIFIED IDEOGRAPH +0x8BEA 0x82E6 #CJK UNIFIED IDEOGRAPH +0x8BEB 0x8EAF #CJK UNIFIED IDEOGRAPH +0x8BEC 0x99C6 #CJK UNIFIED IDEOGRAPH +0x8BED 0x99C8 #CJK UNIFIED IDEOGRAPH +0x8BEE 0x99D2 #CJK UNIFIED IDEOGRAPH +0x8BEF 0x5177 #CJK UNIFIED IDEOGRAPH +0x8BF0 0x611A #CJK UNIFIED IDEOGRAPH +0x8BF1 0x865E #CJK UNIFIED IDEOGRAPH +0x8BF2 0x55B0 #CJK UNIFIED IDEOGRAPH +0x8BF3 0x7A7A #CJK UNIFIED IDEOGRAPH +0x8BF4 0x5076 #CJK UNIFIED IDEOGRAPH +0x8BF5 0x5BD3 #CJK UNIFIED IDEOGRAPH +0x8BF6 0x9047 #CJK UNIFIED IDEOGRAPH +0x8BF7 0x9685 #CJK UNIFIED IDEOGRAPH +0x8BF8 0x4E32 #CJK UNIFIED IDEOGRAPH +0x8BF9 0x6ADB #CJK UNIFIED IDEOGRAPH +0x8BFA 0x91E7 #CJK UNIFIED IDEOGRAPH +0x8BFB 0x5C51 #CJK UNIFIED IDEOGRAPH +0x8BFC 0x5C48 #CJK UNIFIED IDEOGRAPH +0x8C40 0x6398 #CJK UNIFIED IDEOGRAPH +0x8C41 0x7A9F #CJK UNIFIED IDEOGRAPH +0x8C42 0x6C93 #CJK UNIFIED IDEOGRAPH +0x8C43 0x9774 #CJK UNIFIED IDEOGRAPH +0x8C44 0x8F61 #CJK UNIFIED IDEOGRAPH +0x8C45 0x7AAA #CJK UNIFIED IDEOGRAPH +0x8C46 0x718A #CJK UNIFIED IDEOGRAPH +0x8C47 0x9688 #CJK UNIFIED IDEOGRAPH +0x8C48 0x7C82 #CJK UNIFIED IDEOGRAPH +0x8C49 0x6817 #CJK UNIFIED IDEOGRAPH +0x8C4A 0x7E70 #CJK UNIFIED IDEOGRAPH +0x8C4B 0x6851 #CJK UNIFIED IDEOGRAPH +0x8C4C 0x936C #CJK UNIFIED IDEOGRAPH +0x8C4D 0x52F2 #CJK UNIFIED IDEOGRAPH +0x8C4E 0x541B #CJK UNIFIED IDEOGRAPH +0x8C4F 0x85AB #CJK UNIFIED IDEOGRAPH +0x8C50 0x8A13 #CJK UNIFIED IDEOGRAPH +0x8C51 0x7FA4 #CJK UNIFIED IDEOGRAPH +0x8C52 0x8ECD #CJK UNIFIED IDEOGRAPH +0x8C53 0x90E1 #CJK UNIFIED IDEOGRAPH +0x8C54 0x5366 #CJK UNIFIED IDEOGRAPH +0x8C55 0x8888 #CJK UNIFIED IDEOGRAPH +0x8C56 0x7941 #CJK UNIFIED IDEOGRAPH +0x8C57 0x4FC2 #CJK UNIFIED IDEOGRAPH +0x8C58 0x50BE #CJK UNIFIED IDEOGRAPH +0x8C59 0x5211 #CJK UNIFIED IDEOGRAPH +0x8C5A 0x5144 #CJK UNIFIED IDEOGRAPH +0x8C5B 0x5553 #CJK UNIFIED IDEOGRAPH +0x8C5C 0x572D #CJK UNIFIED IDEOGRAPH +0x8C5D 0x73EA #CJK UNIFIED IDEOGRAPH +0x8C5E 0x578B #CJK UNIFIED IDEOGRAPH +0x8C5F 0x5951 #CJK UNIFIED IDEOGRAPH +0x8C60 0x5F62 #CJK UNIFIED IDEOGRAPH +0x8C61 0x5F84 #CJK UNIFIED IDEOGRAPH +0x8C62 0x6075 #CJK UNIFIED IDEOGRAPH +0x8C63 0x6176 #CJK UNIFIED IDEOGRAPH +0x8C64 0x6167 #CJK UNIFIED IDEOGRAPH +0x8C65 0x61A9 #CJK UNIFIED IDEOGRAPH +0x8C66 0x63B2 #CJK UNIFIED IDEOGRAPH +0x8C67 0x643A #CJK UNIFIED IDEOGRAPH +0x8C68 0x656C #CJK UNIFIED IDEOGRAPH +0x8C69 0x666F #CJK UNIFIED IDEOGRAPH +0x8C6A 0x6842 #CJK UNIFIED IDEOGRAPH +0x8C6B 0x6E13 #CJK UNIFIED IDEOGRAPH +0x8C6C 0x7566 #CJK UNIFIED IDEOGRAPH +0x8C6D 0x7A3D #CJK UNIFIED IDEOGRAPH +0x8C6E 0x7CFB #CJK UNIFIED IDEOGRAPH +0x8C6F 0x7D4C #CJK UNIFIED IDEOGRAPH +0x8C70 0x7D99 #CJK UNIFIED IDEOGRAPH +0x8C71 0x7E4B #CJK UNIFIED IDEOGRAPH +0x8C72 0x7F6B #CJK UNIFIED IDEOGRAPH +0x8C73 0x830E #CJK UNIFIED IDEOGRAPH +0x8C74 0x834A #CJK UNIFIED IDEOGRAPH +0x8C75 0x86CD #CJK UNIFIED IDEOGRAPH +0x8C76 0x8A08 #CJK UNIFIED IDEOGRAPH +0x8C77 0x8A63 #CJK UNIFIED IDEOGRAPH +0x8C78 0x8B66 #CJK UNIFIED IDEOGRAPH +0x8C79 0x8EFD #CJK UNIFIED IDEOGRAPH +0x8C7A 0x981A #CJK UNIFIED IDEOGRAPH +0x8C7B 0x9D8F #CJK UNIFIED IDEOGRAPH +0x8C7C 0x82B8 #CJK UNIFIED IDEOGRAPH +0x8C7D 0x8FCE #CJK UNIFIED IDEOGRAPH +0x8C7E 0x9BE8 #CJK UNIFIED IDEOGRAPH +0x8C80 0x5287 #CJK UNIFIED IDEOGRAPH +0x8C81 0x621F #CJK UNIFIED IDEOGRAPH +0x8C82 0x6483 #CJK UNIFIED IDEOGRAPH +0x8C83 0x6FC0 #CJK UNIFIED IDEOGRAPH +0x8C84 0x9699 #CJK UNIFIED IDEOGRAPH +0x8C85 0x6841 #CJK UNIFIED IDEOGRAPH +0x8C86 0x5091 #CJK UNIFIED IDEOGRAPH +0x8C87 0x6B20 #CJK UNIFIED IDEOGRAPH +0x8C88 0x6C7A #CJK UNIFIED IDEOGRAPH +0x8C89 0x6F54 #CJK UNIFIED IDEOGRAPH +0x8C8A 0x7A74 #CJK UNIFIED IDEOGRAPH +0x8C8B 0x7D50 #CJK UNIFIED IDEOGRAPH +0x8C8C 0x8840 #CJK UNIFIED IDEOGRAPH +0x8C8D 0x8A23 #CJK UNIFIED IDEOGRAPH +0x8C8E 0x6708 #CJK UNIFIED IDEOGRAPH +0x8C8F 0x4EF6 #CJK UNIFIED IDEOGRAPH +0x8C90 0x5039 #CJK UNIFIED IDEOGRAPH +0x8C91 0x5026 #CJK UNIFIED IDEOGRAPH +0x8C92 0x5065 #CJK UNIFIED IDEOGRAPH +0x8C93 0x517C #CJK UNIFIED IDEOGRAPH +0x8C94 0x5238 #CJK UNIFIED IDEOGRAPH +0x8C95 0x5263 #CJK UNIFIED IDEOGRAPH +0x8C96 0x55A7 #CJK UNIFIED IDEOGRAPH +0x8C97 0x570F #CJK UNIFIED IDEOGRAPH +0x8C98 0x5805 #CJK UNIFIED IDEOGRAPH +0x8C99 0x5ACC #CJK UNIFIED IDEOGRAPH +0x8C9A 0x5EFA #CJK UNIFIED IDEOGRAPH +0x8C9B 0x61B2 #CJK UNIFIED IDEOGRAPH +0x8C9C 0x61F8 #CJK UNIFIED IDEOGRAPH +0x8C9D 0x62F3 #CJK UNIFIED IDEOGRAPH +0x8C9E 0x6372 #CJK UNIFIED IDEOGRAPH +0x8C9F 0x691C #CJK UNIFIED IDEOGRAPH +0x8CA0 0x6A29 #CJK UNIFIED IDEOGRAPH +0x8CA1 0x727D #CJK UNIFIED IDEOGRAPH +0x8CA2 0x72AC #CJK UNIFIED IDEOGRAPH +0x8CA3 0x732E #CJK UNIFIED IDEOGRAPH +0x8CA4 0x7814 #CJK UNIFIED IDEOGRAPH +0x8CA5 0x786F #CJK UNIFIED IDEOGRAPH +0x8CA6 0x7D79 #CJK UNIFIED IDEOGRAPH +0x8CA7 0x770C #CJK UNIFIED IDEOGRAPH +0x8CA8 0x80A9 #CJK UNIFIED IDEOGRAPH +0x8CA9 0x898B #CJK UNIFIED IDEOGRAPH +0x8CAA 0x8B19 #CJK UNIFIED IDEOGRAPH +0x8CAB 0x8CE2 #CJK UNIFIED IDEOGRAPH +0x8CAC 0x8ED2 #CJK UNIFIED IDEOGRAPH +0x8CAD 0x9063 #CJK UNIFIED IDEOGRAPH +0x8CAE 0x9375 #CJK UNIFIED IDEOGRAPH +0x8CAF 0x967A #CJK UNIFIED IDEOGRAPH +0x8CB0 0x9855 #CJK UNIFIED IDEOGRAPH +0x8CB1 0x9A13 #CJK UNIFIED IDEOGRAPH +0x8CB2 0x9E78 #CJK UNIFIED IDEOGRAPH +0x8CB3 0x5143 #CJK UNIFIED IDEOGRAPH +0x8CB4 0x539F #CJK UNIFIED IDEOGRAPH +0x8CB5 0x53B3 #CJK UNIFIED IDEOGRAPH +0x8CB6 0x5E7B #CJK UNIFIED IDEOGRAPH +0x8CB7 0x5F26 #CJK UNIFIED IDEOGRAPH +0x8CB8 0x6E1B #CJK UNIFIED IDEOGRAPH +0x8CB9 0x6E90 #CJK UNIFIED IDEOGRAPH +0x8CBA 0x7384 #CJK UNIFIED IDEOGRAPH +0x8CBB 0x73FE #CJK UNIFIED IDEOGRAPH +0x8CBC 0x7D43 #CJK UNIFIED IDEOGRAPH +0x8CBD 0x8237 #CJK UNIFIED IDEOGRAPH +0x8CBE 0x8A00 #CJK UNIFIED IDEOGRAPH +0x8CBF 0x8AFA #CJK UNIFIED IDEOGRAPH +0x8CC0 0x9650 #CJK UNIFIED IDEOGRAPH +0x8CC1 0x4E4E #CJK UNIFIED IDEOGRAPH +0x8CC2 0x500B #CJK UNIFIED IDEOGRAPH +0x8CC3 0x53E4 #CJK UNIFIED IDEOGRAPH +0x8CC4 0x547C #CJK UNIFIED IDEOGRAPH +0x8CC5 0x56FA #CJK UNIFIED IDEOGRAPH +0x8CC6 0x59D1 #CJK UNIFIED IDEOGRAPH +0x8CC7 0x5B64 #CJK UNIFIED IDEOGRAPH +0x8CC8 0x5DF1 #CJK UNIFIED IDEOGRAPH +0x8CC9 0x5EAB #CJK UNIFIED IDEOGRAPH +0x8CCA 0x5F27 #CJK UNIFIED IDEOGRAPH +0x8CCB 0x6238 #CJK UNIFIED IDEOGRAPH +0x8CCC 0x6545 #CJK UNIFIED IDEOGRAPH +0x8CCD 0x67AF #CJK UNIFIED IDEOGRAPH +0x8CCE 0x6E56 #CJK UNIFIED IDEOGRAPH +0x8CCF 0x72D0 #CJK UNIFIED IDEOGRAPH +0x8CD0 0x7CCA #CJK UNIFIED IDEOGRAPH +0x8CD1 0x88B4 #CJK UNIFIED IDEOGRAPH +0x8CD2 0x80A1 #CJK UNIFIED IDEOGRAPH +0x8CD3 0x80E1 #CJK UNIFIED IDEOGRAPH +0x8CD4 0x83F0 #CJK UNIFIED IDEOGRAPH +0x8CD5 0x864E #CJK UNIFIED IDEOGRAPH +0x8CD6 0x8A87 #CJK UNIFIED IDEOGRAPH +0x8CD7 0x8DE8 #CJK UNIFIED IDEOGRAPH +0x8CD8 0x9237 #CJK UNIFIED IDEOGRAPH +0x8CD9 0x96C7 #CJK UNIFIED IDEOGRAPH +0x8CDA 0x9867 #CJK UNIFIED IDEOGRAPH +0x8CDB 0x9F13 #CJK UNIFIED IDEOGRAPH +0x8CDC 0x4E94 #CJK UNIFIED IDEOGRAPH +0x8CDD 0x4E92 #CJK UNIFIED IDEOGRAPH +0x8CDE 0x4F0D #CJK UNIFIED IDEOGRAPH +0x8CDF 0x5348 #CJK UNIFIED IDEOGRAPH +0x8CE0 0x5449 #CJK UNIFIED IDEOGRAPH +0x8CE1 0x543E #CJK UNIFIED IDEOGRAPH +0x8CE2 0x5A2F #CJK UNIFIED IDEOGRAPH +0x8CE3 0x5F8C #CJK UNIFIED IDEOGRAPH +0x8CE4 0x5FA1 #CJK UNIFIED IDEOGRAPH +0x8CE5 0x609F #CJK UNIFIED IDEOGRAPH +0x8CE6 0x68A7 #CJK UNIFIED IDEOGRAPH +0x8CE7 0x6A8E #CJK UNIFIED IDEOGRAPH +0x8CE8 0x745A #CJK UNIFIED IDEOGRAPH +0x8CE9 0x7881 #CJK UNIFIED IDEOGRAPH +0x8CEA 0x8A9E #CJK UNIFIED IDEOGRAPH +0x8CEB 0x8AA4 #CJK UNIFIED IDEOGRAPH +0x8CEC 0x8B77 #CJK UNIFIED IDEOGRAPH +0x8CED 0x9190 #CJK UNIFIED IDEOGRAPH +0x8CEE 0x4E5E #CJK UNIFIED IDEOGRAPH +0x8CEF 0x9BC9 #CJK UNIFIED IDEOGRAPH +0x8CF0 0x4EA4 #CJK UNIFIED IDEOGRAPH +0x8CF1 0x4F7C #CJK UNIFIED IDEOGRAPH +0x8CF2 0x4FAF #CJK UNIFIED IDEOGRAPH +0x8CF3 0x5019 #CJK UNIFIED IDEOGRAPH +0x8CF4 0x5016 #CJK UNIFIED IDEOGRAPH +0x8CF5 0x5149 #CJK UNIFIED IDEOGRAPH +0x8CF6 0x516C #CJK UNIFIED IDEOGRAPH +0x8CF7 0x529F #CJK UNIFIED IDEOGRAPH +0x8CF8 0x52B9 #CJK UNIFIED IDEOGRAPH +0x8CF9 0x52FE #CJK UNIFIED IDEOGRAPH +0x8CFA 0x539A #CJK UNIFIED IDEOGRAPH +0x8CFB 0x53E3 #CJK UNIFIED IDEOGRAPH +0x8CFC 0x5411 #CJK UNIFIED IDEOGRAPH +0x8D40 0x540E #CJK UNIFIED IDEOGRAPH +0x8D41 0x5589 #CJK UNIFIED IDEOGRAPH +0x8D42 0x5751 #CJK UNIFIED IDEOGRAPH +0x8D43 0x57A2 #CJK UNIFIED IDEOGRAPH +0x8D44 0x597D #CJK UNIFIED IDEOGRAPH +0x8D45 0x5B54 #CJK UNIFIED IDEOGRAPH +0x8D46 0x5B5D #CJK UNIFIED IDEOGRAPH +0x8D47 0x5B8F #CJK UNIFIED IDEOGRAPH +0x8D48 0x5DE5 #CJK UNIFIED IDEOGRAPH +0x8D49 0x5DE7 #CJK UNIFIED IDEOGRAPH +0x8D4A 0x5DF7 #CJK UNIFIED IDEOGRAPH +0x8D4B 0x5E78 #CJK UNIFIED IDEOGRAPH +0x8D4C 0x5E83 #CJK UNIFIED IDEOGRAPH +0x8D4D 0x5E9A #CJK UNIFIED IDEOGRAPH +0x8D4E 0x5EB7 #CJK UNIFIED IDEOGRAPH +0x8D4F 0x5F18 #CJK UNIFIED IDEOGRAPH +0x8D50 0x6052 #CJK UNIFIED IDEOGRAPH +0x8D51 0x614C #CJK UNIFIED IDEOGRAPH +0x8D52 0x6297 #CJK UNIFIED IDEOGRAPH +0x8D53 0x62D8 #CJK UNIFIED IDEOGRAPH +0x8D54 0x63A7 #CJK UNIFIED IDEOGRAPH +0x8D55 0x653B #CJK UNIFIED IDEOGRAPH +0x8D56 0x6602 #CJK UNIFIED IDEOGRAPH +0x8D57 0x6643 #CJK UNIFIED IDEOGRAPH +0x8D58 0x66F4 #CJK UNIFIED IDEOGRAPH +0x8D59 0x676D #CJK UNIFIED IDEOGRAPH +0x8D5A 0x6821 #CJK UNIFIED IDEOGRAPH +0x8D5B 0x6897 #CJK UNIFIED IDEOGRAPH +0x8D5C 0x69CB #CJK UNIFIED IDEOGRAPH +0x8D5D 0x6C5F #CJK UNIFIED IDEOGRAPH +0x8D5E 0x6D2A #CJK UNIFIED IDEOGRAPH +0x8D5F 0x6D69 #CJK UNIFIED IDEOGRAPH +0x8D60 0x6E2F #CJK UNIFIED IDEOGRAPH +0x8D61 0x6E9D #CJK UNIFIED IDEOGRAPH +0x8D62 0x7532 #CJK UNIFIED IDEOGRAPH +0x8D63 0x7687 #CJK UNIFIED IDEOGRAPH +0x8D64 0x786C #CJK UNIFIED IDEOGRAPH +0x8D65 0x7A3F #CJK UNIFIED IDEOGRAPH +0x8D66 0x7CE0 #CJK UNIFIED IDEOGRAPH +0x8D67 0x7D05 #CJK UNIFIED IDEOGRAPH +0x8D68 0x7D18 #CJK UNIFIED IDEOGRAPH +0x8D69 0x7D5E #CJK UNIFIED IDEOGRAPH +0x8D6A 0x7DB1 #CJK UNIFIED IDEOGRAPH +0x8D6B 0x8015 #CJK UNIFIED IDEOGRAPH +0x8D6C 0x8003 #CJK UNIFIED IDEOGRAPH +0x8D6D 0x80AF #CJK UNIFIED IDEOGRAPH +0x8D6E 0x80B1 #CJK UNIFIED IDEOGRAPH +0x8D6F 0x8154 #CJK UNIFIED IDEOGRAPH +0x8D70 0x818F #CJK UNIFIED IDEOGRAPH +0x8D71 0x822A #CJK UNIFIED IDEOGRAPH +0x8D72 0x8352 #CJK UNIFIED IDEOGRAPH +0x8D73 0x884C #CJK UNIFIED IDEOGRAPH +0x8D74 0x8861 #CJK UNIFIED IDEOGRAPH +0x8D75 0x8B1B #CJK UNIFIED IDEOGRAPH +0x8D76 0x8CA2 #CJK UNIFIED IDEOGRAPH +0x8D77 0x8CFC #CJK UNIFIED IDEOGRAPH +0x8D78 0x90CA #CJK UNIFIED IDEOGRAPH +0x8D79 0x9175 #CJK UNIFIED IDEOGRAPH +0x8D7A 0x9271 #CJK UNIFIED IDEOGRAPH +0x8D7B 0x783F #CJK UNIFIED IDEOGRAPH +0x8D7C 0x92FC #CJK UNIFIED IDEOGRAPH +0x8D7D 0x95A4 #CJK UNIFIED IDEOGRAPH +0x8D7E 0x964D #CJK UNIFIED IDEOGRAPH +0x8D80 0x9805 #CJK UNIFIED IDEOGRAPH +0x8D81 0x9999 #CJK UNIFIED IDEOGRAPH +0x8D82 0x9AD8 #CJK UNIFIED IDEOGRAPH +0x8D83 0x9D3B #CJK UNIFIED IDEOGRAPH +0x8D84 0x525B #CJK UNIFIED IDEOGRAPH +0x8D85 0x52AB #CJK UNIFIED IDEOGRAPH +0x8D86 0x53F7 #CJK UNIFIED IDEOGRAPH +0x8D87 0x5408 #CJK UNIFIED IDEOGRAPH +0x8D88 0x58D5 #CJK UNIFIED IDEOGRAPH +0x8D89 0x62F7 #CJK UNIFIED IDEOGRAPH +0x8D8A 0x6FE0 #CJK UNIFIED IDEOGRAPH +0x8D8B 0x8C6A #CJK UNIFIED IDEOGRAPH +0x8D8C 0x8F5F #CJK UNIFIED IDEOGRAPH +0x8D8D 0x9EB9 #CJK UNIFIED IDEOGRAPH +0x8D8E 0x514B #CJK UNIFIED IDEOGRAPH +0x8D8F 0x523B #CJK UNIFIED IDEOGRAPH +0x8D90 0x544A #CJK UNIFIED IDEOGRAPH +0x8D91 0x56FD #CJK UNIFIED IDEOGRAPH +0x8D92 0x7A40 #CJK UNIFIED IDEOGRAPH +0x8D93 0x9177 #CJK UNIFIED IDEOGRAPH +0x8D94 0x9D60 #CJK UNIFIED IDEOGRAPH +0x8D95 0x9ED2 #CJK UNIFIED IDEOGRAPH +0x8D96 0x7344 #CJK UNIFIED IDEOGRAPH +0x8D97 0x6F09 #CJK UNIFIED IDEOGRAPH +0x8D98 0x8170 #CJK UNIFIED IDEOGRAPH +0x8D99 0x7511 #CJK UNIFIED IDEOGRAPH +0x8D9A 0x5FFD #CJK UNIFIED IDEOGRAPH +0x8D9B 0x60DA #CJK UNIFIED IDEOGRAPH +0x8D9C 0x9AA8 #CJK UNIFIED IDEOGRAPH +0x8D9D 0x72DB #CJK UNIFIED IDEOGRAPH +0x8D9E 0x8FBC #CJK UNIFIED IDEOGRAPH +0x8D9F 0x6B64 #CJK UNIFIED IDEOGRAPH +0x8DA0 0x9803 #CJK UNIFIED IDEOGRAPH +0x8DA1 0x4ECA #CJK UNIFIED IDEOGRAPH +0x8DA2 0x56F0 #CJK UNIFIED IDEOGRAPH +0x8DA3 0x5764 #CJK UNIFIED IDEOGRAPH +0x8DA4 0x58BE #CJK UNIFIED IDEOGRAPH +0x8DA5 0x5A5A #CJK UNIFIED IDEOGRAPH +0x8DA6 0x6068 #CJK UNIFIED IDEOGRAPH +0x8DA7 0x61C7 #CJK UNIFIED IDEOGRAPH +0x8DA8 0x660F #CJK UNIFIED IDEOGRAPH +0x8DA9 0x6606 #CJK UNIFIED IDEOGRAPH +0x8DAA 0x6839 #CJK UNIFIED IDEOGRAPH +0x8DAB 0x68B1 #CJK UNIFIED IDEOGRAPH +0x8DAC 0x6DF7 #CJK UNIFIED IDEOGRAPH +0x8DAD 0x75D5 #CJK UNIFIED IDEOGRAPH +0x8DAE 0x7D3A #CJK UNIFIED IDEOGRAPH +0x8DAF 0x826E #CJK UNIFIED IDEOGRAPH +0x8DB0 0x9B42 #CJK UNIFIED IDEOGRAPH +0x8DB1 0x4E9B #CJK UNIFIED IDEOGRAPH +0x8DB2 0x4F50 #CJK UNIFIED IDEOGRAPH +0x8DB3 0x53C9 #CJK UNIFIED IDEOGRAPH +0x8DB4 0x5506 #CJK UNIFIED IDEOGRAPH +0x8DB5 0x5D6F #CJK UNIFIED IDEOGRAPH +0x8DB6 0x5DE6 #CJK UNIFIED IDEOGRAPH +0x8DB7 0x5DEE #CJK UNIFIED IDEOGRAPH +0x8DB8 0x67FB #CJK UNIFIED IDEOGRAPH +0x8DB9 0x6C99 #CJK UNIFIED IDEOGRAPH +0x8DBA 0x7473 #CJK UNIFIED IDEOGRAPH +0x8DBB 0x7802 #CJK UNIFIED IDEOGRAPH +0x8DBC 0x8A50 #CJK UNIFIED IDEOGRAPH +0x8DBD 0x9396 #CJK UNIFIED IDEOGRAPH +0x8DBE 0x88DF #CJK UNIFIED IDEOGRAPH +0x8DBF 0x5750 #CJK UNIFIED IDEOGRAPH +0x8DC0 0x5EA7 #CJK UNIFIED IDEOGRAPH +0x8DC1 0x632B #CJK UNIFIED IDEOGRAPH +0x8DC2 0x50B5 #CJK UNIFIED IDEOGRAPH +0x8DC3 0x50AC #CJK UNIFIED IDEOGRAPH +0x8DC4 0x518D #CJK UNIFIED IDEOGRAPH +0x8DC5 0x6700 #CJK UNIFIED IDEOGRAPH +0x8DC6 0x54C9 #CJK UNIFIED IDEOGRAPH +0x8DC7 0x585E #CJK UNIFIED IDEOGRAPH +0x8DC8 0x59BB #CJK UNIFIED IDEOGRAPH +0x8DC9 0x5BB0 #CJK UNIFIED IDEOGRAPH +0x8DCA 0x5F69 #CJK UNIFIED IDEOGRAPH +0x8DCB 0x624D #CJK UNIFIED IDEOGRAPH +0x8DCC 0x63A1 #CJK UNIFIED IDEOGRAPH +0x8DCD 0x683D #CJK UNIFIED IDEOGRAPH +0x8DCE 0x6B73 #CJK UNIFIED IDEOGRAPH +0x8DCF 0x6E08 #CJK UNIFIED IDEOGRAPH +0x8DD0 0x707D #CJK UNIFIED IDEOGRAPH +0x8DD1 0x91C7 #CJK UNIFIED IDEOGRAPH +0x8DD2 0x7280 #CJK UNIFIED IDEOGRAPH +0x8DD3 0x7815 #CJK UNIFIED IDEOGRAPH +0x8DD4 0x7826 #CJK UNIFIED IDEOGRAPH +0x8DD5 0x796D #CJK UNIFIED IDEOGRAPH +0x8DD6 0x658E #CJK UNIFIED IDEOGRAPH +0x8DD7 0x7D30 #CJK UNIFIED IDEOGRAPH +0x8DD8 0x83DC #CJK UNIFIED IDEOGRAPH +0x8DD9 0x88C1 #CJK UNIFIED IDEOGRAPH +0x8DDA 0x8F09 #CJK UNIFIED IDEOGRAPH +0x8DDB 0x969B #CJK UNIFIED IDEOGRAPH +0x8DDC 0x5264 #CJK UNIFIED IDEOGRAPH +0x8DDD 0x5728 #CJK UNIFIED IDEOGRAPH +0x8DDE 0x6750 #CJK UNIFIED IDEOGRAPH +0x8DDF 0x7F6A #CJK UNIFIED IDEOGRAPH +0x8DE0 0x8CA1 #CJK UNIFIED IDEOGRAPH +0x8DE1 0x51B4 #CJK UNIFIED IDEOGRAPH +0x8DE2 0x5742 #CJK UNIFIED IDEOGRAPH +0x8DE3 0x962A #CJK UNIFIED IDEOGRAPH +0x8DE4 0x583A #CJK UNIFIED IDEOGRAPH +0x8DE5 0x698A #CJK UNIFIED IDEOGRAPH +0x8DE6 0x80B4 #CJK UNIFIED IDEOGRAPH +0x8DE7 0x54B2 #CJK UNIFIED IDEOGRAPH +0x8DE8 0x5D0E #CJK UNIFIED IDEOGRAPH +0x8DE9 0x57FC #CJK UNIFIED IDEOGRAPH +0x8DEA 0x7895 #CJK UNIFIED IDEOGRAPH +0x8DEB 0x9DFA #CJK UNIFIED IDEOGRAPH +0x8DEC 0x4F5C #CJK UNIFIED IDEOGRAPH +0x8DED 0x524A #CJK UNIFIED IDEOGRAPH +0x8DEE 0x548B #CJK UNIFIED IDEOGRAPH +0x8DEF 0x643E #CJK UNIFIED IDEOGRAPH +0x8DF0 0x6628 #CJK UNIFIED IDEOGRAPH +0x8DF1 0x6714 #CJK UNIFIED IDEOGRAPH +0x8DF2 0x67F5 #CJK UNIFIED IDEOGRAPH +0x8DF3 0x7A84 #CJK UNIFIED IDEOGRAPH +0x8DF4 0x7B56 #CJK UNIFIED IDEOGRAPH +0x8DF5 0x7D22 #CJK UNIFIED IDEOGRAPH +0x8DF6 0x932F #CJK UNIFIED IDEOGRAPH +0x8DF7 0x685C #CJK UNIFIED IDEOGRAPH +0x8DF8 0x9BAD #CJK UNIFIED IDEOGRAPH +0x8DF9 0x7B39 #CJK UNIFIED IDEOGRAPH +0x8DFA 0x5319 #CJK UNIFIED IDEOGRAPH +0x8DFB 0x518A #CJK UNIFIED IDEOGRAPH +0x8DFC 0x5237 #CJK UNIFIED IDEOGRAPH +0x8E40 0x5BDF #CJK UNIFIED IDEOGRAPH +0x8E41 0x62F6 #CJK UNIFIED IDEOGRAPH +0x8E42 0x64AE #CJK UNIFIED IDEOGRAPH +0x8E43 0x64E6 #CJK UNIFIED IDEOGRAPH +0x8E44 0x672D #CJK UNIFIED IDEOGRAPH +0x8E45 0x6BBA #CJK UNIFIED IDEOGRAPH +0x8E46 0x85A9 #CJK UNIFIED IDEOGRAPH +0x8E47 0x96D1 #CJK UNIFIED IDEOGRAPH +0x8E48 0x7690 #CJK UNIFIED IDEOGRAPH +0x8E49 0x9BD6 #CJK UNIFIED IDEOGRAPH +0x8E4A 0x634C #CJK UNIFIED IDEOGRAPH +0x8E4B 0x9306 #CJK UNIFIED IDEOGRAPH +0x8E4C 0x9BAB #CJK UNIFIED IDEOGRAPH +0x8E4D 0x76BF #CJK UNIFIED IDEOGRAPH +0x8E4E 0x6652 #CJK UNIFIED IDEOGRAPH +0x8E4F 0x4E09 #CJK UNIFIED IDEOGRAPH +0x8E50 0x5098 #CJK UNIFIED IDEOGRAPH +0x8E51 0x53C2 #CJK UNIFIED IDEOGRAPH +0x8E52 0x5C71 #CJK UNIFIED IDEOGRAPH +0x8E53 0x60E8 #CJK UNIFIED IDEOGRAPH +0x8E54 0x6492 #CJK UNIFIED IDEOGRAPH +0x8E55 0x6563 #CJK UNIFIED IDEOGRAPH +0x8E56 0x685F #CJK UNIFIED IDEOGRAPH +0x8E57 0x71E6 #CJK UNIFIED IDEOGRAPH +0x8E58 0x73CA #CJK UNIFIED IDEOGRAPH +0x8E59 0x7523 #CJK UNIFIED IDEOGRAPH +0x8E5A 0x7B97 #CJK UNIFIED IDEOGRAPH +0x8E5B 0x7E82 #CJK UNIFIED IDEOGRAPH +0x8E5C 0x8695 #CJK UNIFIED IDEOGRAPH +0x8E5D 0x8B83 #CJK UNIFIED IDEOGRAPH +0x8E5E 0x8CDB #CJK UNIFIED IDEOGRAPH +0x8E5F 0x9178 #CJK UNIFIED IDEOGRAPH +0x8E60 0x9910 #CJK UNIFIED IDEOGRAPH +0x8E61 0x65AC #CJK UNIFIED IDEOGRAPH +0x8E62 0x66AB #CJK UNIFIED IDEOGRAPH +0x8E63 0x6B8B #CJK UNIFIED IDEOGRAPH +0x8E64 0x4ED5 #CJK UNIFIED IDEOGRAPH +0x8E65 0x4ED4 #CJK UNIFIED IDEOGRAPH +0x8E66 0x4F3A #CJK UNIFIED IDEOGRAPH +0x8E67 0x4F7F #CJK UNIFIED IDEOGRAPH +0x8E68 0x523A #CJK UNIFIED IDEOGRAPH +0x8E69 0x53F8 #CJK UNIFIED IDEOGRAPH +0x8E6A 0x53F2 #CJK UNIFIED IDEOGRAPH +0x8E6B 0x55E3 #CJK UNIFIED IDEOGRAPH +0x8E6C 0x56DB #CJK UNIFIED IDEOGRAPH +0x8E6D 0x58EB #CJK UNIFIED IDEOGRAPH +0x8E6E 0x59CB #CJK UNIFIED IDEOGRAPH +0x8E6F 0x59C9 #CJK UNIFIED IDEOGRAPH +0x8E70 0x59FF #CJK UNIFIED IDEOGRAPH +0x8E71 0x5B50 #CJK UNIFIED IDEOGRAPH +0x8E72 0x5C4D #CJK UNIFIED IDEOGRAPH +0x8E73 0x5E02 #CJK UNIFIED IDEOGRAPH +0x8E74 0x5E2B #CJK UNIFIED IDEOGRAPH +0x8E75 0x5FD7 #CJK UNIFIED IDEOGRAPH +0x8E76 0x601D #CJK UNIFIED IDEOGRAPH +0x8E77 0x6307 #CJK UNIFIED IDEOGRAPH +0x8E78 0x652F #CJK UNIFIED IDEOGRAPH +0x8E79 0x5B5C #CJK UNIFIED IDEOGRAPH +0x8E7A 0x65AF #CJK UNIFIED IDEOGRAPH +0x8E7B 0x65BD #CJK UNIFIED IDEOGRAPH +0x8E7C 0x65E8 #CJK UNIFIED IDEOGRAPH +0x8E7D 0x679D #CJK UNIFIED IDEOGRAPH +0x8E7E 0x6B62 #CJK UNIFIED IDEOGRAPH +0x8E80 0x6B7B #CJK UNIFIED IDEOGRAPH +0x8E81 0x6C0F #CJK UNIFIED IDEOGRAPH +0x8E82 0x7345 #CJK UNIFIED IDEOGRAPH +0x8E83 0x7949 #CJK UNIFIED IDEOGRAPH +0x8E84 0x79C1 #CJK UNIFIED IDEOGRAPH +0x8E85 0x7CF8 #CJK UNIFIED IDEOGRAPH +0x8E86 0x7D19 #CJK UNIFIED IDEOGRAPH +0x8E87 0x7D2B #CJK UNIFIED IDEOGRAPH +0x8E88 0x80A2 #CJK UNIFIED IDEOGRAPH +0x8E89 0x8102 #CJK UNIFIED IDEOGRAPH +0x8E8A 0x81F3 #CJK UNIFIED IDEOGRAPH +0x8E8B 0x8996 #CJK UNIFIED IDEOGRAPH +0x8E8C 0x8A5E #CJK UNIFIED IDEOGRAPH +0x8E8D 0x8A69 #CJK UNIFIED IDEOGRAPH +0x8E8E 0x8A66 #CJK UNIFIED IDEOGRAPH +0x8E8F 0x8A8C #CJK UNIFIED IDEOGRAPH +0x8E90 0x8AEE #CJK UNIFIED IDEOGRAPH +0x8E91 0x8CC7 #CJK UNIFIED IDEOGRAPH +0x8E92 0x8CDC #CJK UNIFIED IDEOGRAPH +0x8E93 0x96CC #CJK UNIFIED IDEOGRAPH +0x8E94 0x98FC #CJK UNIFIED IDEOGRAPH +0x8E95 0x6B6F #CJK UNIFIED IDEOGRAPH +0x8E96 0x4E8B #CJK UNIFIED IDEOGRAPH +0x8E97 0x4F3C #CJK UNIFIED IDEOGRAPH +0x8E98 0x4F8D #CJK UNIFIED IDEOGRAPH +0x8E99 0x5150 #CJK UNIFIED IDEOGRAPH +0x8E9A 0x5B57 #CJK UNIFIED IDEOGRAPH +0x8E9B 0x5BFA #CJK UNIFIED IDEOGRAPH +0x8E9C 0x6148 #CJK UNIFIED IDEOGRAPH +0x8E9D 0x6301 #CJK UNIFIED IDEOGRAPH +0x8E9E 0x6642 #CJK UNIFIED IDEOGRAPH +0x8E9F 0x6B21 #CJK UNIFIED IDEOGRAPH +0x8EA0 0x6ECB #CJK UNIFIED IDEOGRAPH +0x8EA1 0x6CBB #CJK UNIFIED IDEOGRAPH +0x8EA2 0x723E #CJK UNIFIED IDEOGRAPH +0x8EA3 0x74BD #CJK UNIFIED IDEOGRAPH +0x8EA4 0x75D4 #CJK UNIFIED IDEOGRAPH +0x8EA5 0x78C1 #CJK UNIFIED IDEOGRAPH +0x8EA6 0x793A #CJK UNIFIED IDEOGRAPH +0x8EA7 0x800C #CJK UNIFIED IDEOGRAPH +0x8EA8 0x8033 #CJK UNIFIED IDEOGRAPH +0x8EA9 0x81EA #CJK UNIFIED IDEOGRAPH +0x8EAA 0x8494 #CJK UNIFIED IDEOGRAPH +0x8EAB 0x8F9E #CJK UNIFIED IDEOGRAPH +0x8EAC 0x6C50 #CJK UNIFIED IDEOGRAPH +0x8EAD 0x9E7F #CJK UNIFIED IDEOGRAPH +0x8EAE 0x5F0F #CJK UNIFIED IDEOGRAPH +0x8EAF 0x8B58 #CJK UNIFIED IDEOGRAPH +0x8EB0 0x9D2B #CJK UNIFIED IDEOGRAPH +0x8EB1 0x7AFA #CJK UNIFIED IDEOGRAPH +0x8EB2 0x8EF8 #CJK UNIFIED IDEOGRAPH +0x8EB3 0x5B8D #CJK UNIFIED IDEOGRAPH +0x8EB4 0x96EB #CJK UNIFIED IDEOGRAPH +0x8EB5 0x4E03 #CJK UNIFIED IDEOGRAPH +0x8EB6 0x53F1 #CJK UNIFIED IDEOGRAPH +0x8EB7 0x57F7 #CJK UNIFIED IDEOGRAPH +0x8EB8 0x5931 #CJK UNIFIED IDEOGRAPH +0x8EB9 0x5AC9 #CJK UNIFIED IDEOGRAPH +0x8EBA 0x5BA4 #CJK UNIFIED IDEOGRAPH +0x8EBB 0x6089 #CJK UNIFIED IDEOGRAPH +0x8EBC 0x6E7F #CJK UNIFIED IDEOGRAPH +0x8EBD 0x6F06 #CJK UNIFIED IDEOGRAPH +0x8EBE 0x75BE #CJK UNIFIED IDEOGRAPH +0x8EBF 0x8CEA #CJK UNIFIED IDEOGRAPH +0x8EC0 0x5B9F #CJK UNIFIED IDEOGRAPH +0x8EC1 0x8500 #CJK UNIFIED IDEOGRAPH +0x8EC2 0x7BE0 #CJK UNIFIED IDEOGRAPH +0x8EC3 0x5072 #CJK UNIFIED IDEOGRAPH +0x8EC4 0x67F4 #CJK UNIFIED IDEOGRAPH +0x8EC5 0x829D #CJK UNIFIED IDEOGRAPH +0x8EC6 0x5C61 #CJK UNIFIED IDEOGRAPH +0x8EC7 0x854A #CJK UNIFIED IDEOGRAPH +0x8EC8 0x7E1E #CJK UNIFIED IDEOGRAPH +0x8EC9 0x820E #CJK UNIFIED IDEOGRAPH +0x8ECA 0x5199 #CJK UNIFIED IDEOGRAPH +0x8ECB 0x5C04 #CJK UNIFIED IDEOGRAPH +0x8ECC 0x6368 #CJK UNIFIED IDEOGRAPH +0x8ECD 0x8D66 #CJK UNIFIED IDEOGRAPH +0x8ECE 0x659C #CJK UNIFIED IDEOGRAPH +0x8ECF 0x716E #CJK UNIFIED IDEOGRAPH +0x8ED0 0x793E #CJK UNIFIED IDEOGRAPH +0x8ED1 0x7D17 #CJK UNIFIED IDEOGRAPH +0x8ED2 0x8005 #CJK UNIFIED IDEOGRAPH +0x8ED3 0x8B1D #CJK UNIFIED IDEOGRAPH +0x8ED4 0x8ECA #CJK UNIFIED IDEOGRAPH +0x8ED5 0x906E #CJK UNIFIED IDEOGRAPH +0x8ED6 0x86C7 #CJK UNIFIED IDEOGRAPH +0x8ED7 0x90AA #CJK UNIFIED IDEOGRAPH +0x8ED8 0x501F #CJK UNIFIED IDEOGRAPH +0x8ED9 0x52FA #CJK UNIFIED IDEOGRAPH +0x8EDA 0x5C3A #CJK UNIFIED IDEOGRAPH +0x8EDB 0x6753 #CJK UNIFIED IDEOGRAPH +0x8EDC 0x707C #CJK UNIFIED IDEOGRAPH +0x8EDD 0x7235 #CJK UNIFIED IDEOGRAPH +0x8EDE 0x914C #CJK UNIFIED IDEOGRAPH +0x8EDF 0x91C8 #CJK UNIFIED IDEOGRAPH +0x8EE0 0x932B #CJK UNIFIED IDEOGRAPH +0x8EE1 0x82E5 #CJK UNIFIED IDEOGRAPH +0x8EE2 0x5BC2 #CJK UNIFIED IDEOGRAPH +0x8EE3 0x5F31 #CJK UNIFIED IDEOGRAPH +0x8EE4 0x60F9 #CJK UNIFIED IDEOGRAPH +0x8EE5 0x4E3B #CJK UNIFIED IDEOGRAPH +0x8EE6 0x53D6 #CJK UNIFIED IDEOGRAPH +0x8EE7 0x5B88 #CJK UNIFIED IDEOGRAPH +0x8EE8 0x624B #CJK UNIFIED IDEOGRAPH +0x8EE9 0x6731 #CJK UNIFIED IDEOGRAPH +0x8EEA 0x6B8A #CJK UNIFIED IDEOGRAPH +0x8EEB 0x72E9 #CJK UNIFIED IDEOGRAPH +0x8EEC 0x73E0 #CJK UNIFIED IDEOGRAPH +0x8EED 0x7A2E #CJK UNIFIED IDEOGRAPH +0x8EEE 0x816B #CJK UNIFIED IDEOGRAPH +0x8EEF 0x8DA3 #CJK UNIFIED IDEOGRAPH +0x8EF0 0x9152 #CJK UNIFIED IDEOGRAPH +0x8EF1 0x9996 #CJK UNIFIED IDEOGRAPH +0x8EF2 0x5112 #CJK UNIFIED IDEOGRAPH +0x8EF3 0x53D7 #CJK UNIFIED IDEOGRAPH +0x8EF4 0x546A #CJK UNIFIED IDEOGRAPH +0x8EF5 0x5BFF #CJK UNIFIED IDEOGRAPH +0x8EF6 0x6388 #CJK UNIFIED IDEOGRAPH +0x8EF7 0x6A39 #CJK UNIFIED IDEOGRAPH +0x8EF8 0x7DAC #CJK UNIFIED IDEOGRAPH +0x8EF9 0x9700 #CJK UNIFIED IDEOGRAPH +0x8EFA 0x56DA #CJK UNIFIED IDEOGRAPH +0x8EFB 0x53CE #CJK UNIFIED IDEOGRAPH +0x8EFC 0x5468 #CJK UNIFIED IDEOGRAPH +0x8F40 0x5B97 #CJK UNIFIED IDEOGRAPH +0x8F41 0x5C31 #CJK UNIFIED IDEOGRAPH +0x8F42 0x5DDE #CJK UNIFIED IDEOGRAPH +0x8F43 0x4FEE #CJK UNIFIED IDEOGRAPH +0x8F44 0x6101 #CJK UNIFIED IDEOGRAPH +0x8F45 0x62FE #CJK UNIFIED IDEOGRAPH +0x8F46 0x6D32 #CJK UNIFIED IDEOGRAPH +0x8F47 0x79C0 #CJK UNIFIED IDEOGRAPH +0x8F48 0x79CB #CJK UNIFIED IDEOGRAPH +0x8F49 0x7D42 #CJK UNIFIED IDEOGRAPH +0x8F4A 0x7E4D #CJK UNIFIED IDEOGRAPH +0x8F4B 0x7FD2 #CJK UNIFIED IDEOGRAPH +0x8F4C 0x81ED #CJK UNIFIED IDEOGRAPH +0x8F4D 0x821F #CJK UNIFIED IDEOGRAPH +0x8F4E 0x8490 #CJK UNIFIED IDEOGRAPH +0x8F4F 0x8846 #CJK UNIFIED IDEOGRAPH +0x8F50 0x8972 #CJK UNIFIED IDEOGRAPH +0x8F51 0x8B90 #CJK UNIFIED IDEOGRAPH +0x8F52 0x8E74 #CJK UNIFIED IDEOGRAPH +0x8F53 0x8F2F #CJK UNIFIED IDEOGRAPH +0x8F54 0x9031 #CJK UNIFIED IDEOGRAPH +0x8F55 0x914B #CJK UNIFIED IDEOGRAPH +0x8F56 0x916C #CJK UNIFIED IDEOGRAPH +0x8F57 0x96C6 #CJK UNIFIED IDEOGRAPH +0x8F58 0x919C #CJK UNIFIED IDEOGRAPH +0x8F59 0x4EC0 #CJK UNIFIED IDEOGRAPH +0x8F5A 0x4F4F #CJK UNIFIED IDEOGRAPH +0x8F5B 0x5145 #CJK UNIFIED IDEOGRAPH +0x8F5C 0x5341 #CJK UNIFIED IDEOGRAPH +0x8F5D 0x5F93 #CJK UNIFIED IDEOGRAPH +0x8F5E 0x620E #CJK UNIFIED IDEOGRAPH +0x8F5F 0x67D4 #CJK UNIFIED IDEOGRAPH +0x8F60 0x6C41 #CJK UNIFIED IDEOGRAPH +0x8F61 0x6E0B #CJK UNIFIED IDEOGRAPH +0x8F62 0x7363 #CJK UNIFIED IDEOGRAPH +0x8F63 0x7E26 #CJK UNIFIED IDEOGRAPH +0x8F64 0x91CD #CJK UNIFIED IDEOGRAPH +0x8F65 0x9283 #CJK UNIFIED IDEOGRAPH +0x8F66 0x53D4 #CJK UNIFIED IDEOGRAPH +0x8F67 0x5919 #CJK UNIFIED IDEOGRAPH +0x8F68 0x5BBF #CJK UNIFIED IDEOGRAPH +0x8F69 0x6DD1 #CJK UNIFIED IDEOGRAPH +0x8F6A 0x795D #CJK UNIFIED IDEOGRAPH +0x8F6B 0x7E2E #CJK UNIFIED IDEOGRAPH +0x8F6C 0x7C9B #CJK UNIFIED IDEOGRAPH +0x8F6D 0x587E #CJK UNIFIED IDEOGRAPH +0x8F6E 0x719F #CJK UNIFIED IDEOGRAPH +0x8F6F 0x51FA #CJK UNIFIED IDEOGRAPH +0x8F70 0x8853 #CJK UNIFIED IDEOGRAPH +0x8F71 0x8FF0 #CJK UNIFIED IDEOGRAPH +0x8F72 0x4FCA #CJK UNIFIED IDEOGRAPH +0x8F73 0x5CFB #CJK UNIFIED IDEOGRAPH +0x8F74 0x6625 #CJK UNIFIED IDEOGRAPH +0x8F75 0x77AC #CJK UNIFIED IDEOGRAPH +0x8F76 0x7AE3 #CJK UNIFIED IDEOGRAPH +0x8F77 0x821C #CJK UNIFIED IDEOGRAPH +0x8F78 0x99FF #CJK UNIFIED IDEOGRAPH +0x8F79 0x51C6 #CJK UNIFIED IDEOGRAPH +0x8F7A 0x5FAA #CJK UNIFIED IDEOGRAPH +0x8F7B 0x65EC #CJK UNIFIED IDEOGRAPH +0x8F7C 0x696F #CJK UNIFIED IDEOGRAPH +0x8F7D 0x6B89 #CJK UNIFIED IDEOGRAPH +0x8F7E 0x6DF3 #CJK UNIFIED IDEOGRAPH +0x8F80 0x6E96 #CJK UNIFIED IDEOGRAPH +0x8F81 0x6F64 #CJK UNIFIED IDEOGRAPH +0x8F82 0x76FE #CJK UNIFIED IDEOGRAPH +0x8F83 0x7D14 #CJK UNIFIED IDEOGRAPH +0x8F84 0x5DE1 #CJK UNIFIED IDEOGRAPH +0x8F85 0x9075 #CJK UNIFIED IDEOGRAPH +0x8F86 0x9187 #CJK UNIFIED IDEOGRAPH +0x8F87 0x9806 #CJK UNIFIED IDEOGRAPH +0x8F88 0x51E6 #CJK UNIFIED IDEOGRAPH +0x8F89 0x521D #CJK UNIFIED IDEOGRAPH +0x8F8A 0x6240 #CJK UNIFIED IDEOGRAPH +0x8F8B 0x6691 #CJK UNIFIED IDEOGRAPH +0x8F8C 0x66D9 #CJK UNIFIED IDEOGRAPH +0x8F8D 0x6E1A #CJK UNIFIED IDEOGRAPH +0x8F8E 0x5EB6 #CJK UNIFIED IDEOGRAPH +0x8F8F 0x7DD2 #CJK UNIFIED IDEOGRAPH +0x8F90 0x7F72 #CJK UNIFIED IDEOGRAPH +0x8F91 0x66F8 #CJK UNIFIED IDEOGRAPH +0x8F92 0x85AF #CJK UNIFIED IDEOGRAPH +0x8F93 0x85F7 #CJK UNIFIED IDEOGRAPH +0x8F94 0x8AF8 #CJK UNIFIED IDEOGRAPH +0x8F95 0x52A9 #CJK UNIFIED IDEOGRAPH +0x8F96 0x53D9 #CJK UNIFIED IDEOGRAPH +0x8F97 0x5973 #CJK UNIFIED IDEOGRAPH +0x8F98 0x5E8F #CJK UNIFIED IDEOGRAPH +0x8F99 0x5F90 #CJK UNIFIED IDEOGRAPH +0x8F9A 0x6055 #CJK UNIFIED IDEOGRAPH +0x8F9B 0x92E4 #CJK UNIFIED IDEOGRAPH +0x8F9C 0x9664 #CJK UNIFIED IDEOGRAPH +0x8F9D 0x50B7 #CJK UNIFIED IDEOGRAPH +0x8F9E 0x511F #CJK UNIFIED IDEOGRAPH +0x8F9F 0x52DD #CJK UNIFIED IDEOGRAPH +0x8FA0 0x5320 #CJK UNIFIED IDEOGRAPH +0x8FA1 0x5347 #CJK UNIFIED IDEOGRAPH +0x8FA2 0x53EC #CJK UNIFIED IDEOGRAPH +0x8FA3 0x54E8 #CJK UNIFIED IDEOGRAPH +0x8FA4 0x5546 #CJK UNIFIED IDEOGRAPH +0x8FA5 0x5531 #CJK UNIFIED IDEOGRAPH +0x8FA6 0x5617 #CJK UNIFIED IDEOGRAPH +0x8FA7 0x5968 #CJK UNIFIED IDEOGRAPH +0x8FA8 0x59BE #CJK UNIFIED IDEOGRAPH +0x8FA9 0x5A3C #CJK UNIFIED IDEOGRAPH +0x8FAA 0x5BB5 #CJK UNIFIED IDEOGRAPH +0x8FAB 0x5C06 #CJK UNIFIED IDEOGRAPH +0x8FAC 0x5C0F #CJK UNIFIED IDEOGRAPH +0x8FAD 0x5C11 #CJK UNIFIED IDEOGRAPH +0x8FAE 0x5C1A #CJK UNIFIED IDEOGRAPH +0x8FAF 0x5E84 #CJK UNIFIED IDEOGRAPH +0x8FB0 0x5E8A #CJK UNIFIED IDEOGRAPH +0x8FB1 0x5EE0 #CJK UNIFIED IDEOGRAPH +0x8FB2 0x5F70 #CJK UNIFIED IDEOGRAPH +0x8FB3 0x627F #CJK UNIFIED IDEOGRAPH +0x8FB4 0x6284 #CJK UNIFIED IDEOGRAPH +0x8FB5 0x62DB #CJK UNIFIED IDEOGRAPH +0x8FB6 0x638C #CJK UNIFIED IDEOGRAPH +0x8FB7 0x6377 #CJK UNIFIED IDEOGRAPH +0x8FB8 0x6607 #CJK UNIFIED IDEOGRAPH +0x8FB9 0x660C #CJK UNIFIED IDEOGRAPH +0x8FBA 0x662D #CJK UNIFIED IDEOGRAPH +0x8FBB 0x6676 #CJK UNIFIED IDEOGRAPH +0x8FBC 0x677E #CJK UNIFIED IDEOGRAPH +0x8FBD 0x68A2 #CJK UNIFIED IDEOGRAPH +0x8FBE 0x6A1F #CJK UNIFIED IDEOGRAPH +0x8FBF 0x6A35 #CJK UNIFIED IDEOGRAPH +0x8FC0 0x6CBC #CJK UNIFIED IDEOGRAPH +0x8FC1 0x6D88 #CJK UNIFIED IDEOGRAPH +0x8FC2 0x6E09 #CJK UNIFIED IDEOGRAPH +0x8FC3 0x6E58 #CJK UNIFIED IDEOGRAPH +0x8FC4 0x713C #CJK UNIFIED IDEOGRAPH +0x8FC5 0x7126 #CJK UNIFIED IDEOGRAPH +0x8FC6 0x7167 #CJK UNIFIED IDEOGRAPH +0x8FC7 0x75C7 #CJK UNIFIED IDEOGRAPH +0x8FC8 0x7701 #CJK UNIFIED IDEOGRAPH +0x8FC9 0x785D #CJK UNIFIED IDEOGRAPH +0x8FCA 0x7901 #CJK UNIFIED IDEOGRAPH +0x8FCB 0x7965 #CJK UNIFIED IDEOGRAPH +0x8FCC 0x79F0 #CJK UNIFIED IDEOGRAPH +0x8FCD 0x7AE0 #CJK UNIFIED IDEOGRAPH +0x8FCE 0x7B11 #CJK UNIFIED IDEOGRAPH +0x8FCF 0x7CA7 #CJK UNIFIED IDEOGRAPH +0x8FD0 0x7D39 #CJK UNIFIED IDEOGRAPH +0x8FD1 0x8096 #CJK UNIFIED IDEOGRAPH +0x8FD2 0x83D6 #CJK UNIFIED IDEOGRAPH +0x8FD3 0x848B #CJK UNIFIED IDEOGRAPH +0x8FD4 0x8549 #CJK UNIFIED IDEOGRAPH +0x8FD5 0x885D #CJK UNIFIED IDEOGRAPH +0x8FD6 0x88F3 #CJK UNIFIED IDEOGRAPH +0x8FD7 0x8A1F #CJK UNIFIED IDEOGRAPH +0x8FD8 0x8A3C #CJK UNIFIED IDEOGRAPH +0x8FD9 0x8A54 #CJK UNIFIED IDEOGRAPH +0x8FDA 0x8A73 #CJK UNIFIED IDEOGRAPH +0x8FDB 0x8C61 #CJK UNIFIED IDEOGRAPH +0x8FDC 0x8CDE #CJK UNIFIED IDEOGRAPH +0x8FDD 0x91A4 #CJK UNIFIED IDEOGRAPH +0x8FDE 0x9266 #CJK UNIFIED IDEOGRAPH +0x8FDF 0x937E #CJK UNIFIED IDEOGRAPH +0x8FE0 0x9418 #CJK UNIFIED IDEOGRAPH +0x8FE1 0x969C #CJK UNIFIED IDEOGRAPH +0x8FE2 0x9798 #CJK UNIFIED IDEOGRAPH +0x8FE3 0x4E0A #CJK UNIFIED IDEOGRAPH +0x8FE4 0x4E08 #CJK UNIFIED IDEOGRAPH +0x8FE5 0x4E1E #CJK UNIFIED IDEOGRAPH +0x8FE6 0x4E57 #CJK UNIFIED IDEOGRAPH +0x8FE7 0x5197 #CJK UNIFIED IDEOGRAPH +0x8FE8 0x5270 #CJK UNIFIED IDEOGRAPH +0x8FE9 0x57CE #CJK UNIFIED IDEOGRAPH +0x8FEA 0x5834 #CJK UNIFIED IDEOGRAPH +0x8FEB 0x58CC #CJK UNIFIED IDEOGRAPH +0x8FEC 0x5B22 #CJK UNIFIED IDEOGRAPH +0x8FED 0x5E38 #CJK UNIFIED IDEOGRAPH +0x8FEE 0x60C5 #CJK UNIFIED IDEOGRAPH +0x8FEF 0x64FE #CJK UNIFIED IDEOGRAPH +0x8FF0 0x6761 #CJK UNIFIED IDEOGRAPH +0x8FF1 0x6756 #CJK UNIFIED IDEOGRAPH +0x8FF2 0x6D44 #CJK UNIFIED IDEOGRAPH +0x8FF3 0x72B6 #CJK UNIFIED IDEOGRAPH +0x8FF4 0x7573 #CJK UNIFIED IDEOGRAPH +0x8FF5 0x7A63 #CJK UNIFIED IDEOGRAPH +0x8FF6 0x84B8 #CJK UNIFIED IDEOGRAPH +0x8FF7 0x8B72 #CJK UNIFIED IDEOGRAPH +0x8FF8 0x91B8 #CJK UNIFIED IDEOGRAPH +0x8FF9 0x9320 #CJK UNIFIED IDEOGRAPH +0x8FFA 0x5631 #CJK UNIFIED IDEOGRAPH +0x8FFB 0x57F4 #CJK UNIFIED IDEOGRAPH +0x8FFC 0x98FE #CJK UNIFIED IDEOGRAPH +0x9040 0x62ED #CJK UNIFIED IDEOGRAPH +0x9041 0x690D #CJK UNIFIED IDEOGRAPH +0x9042 0x6B96 #CJK UNIFIED IDEOGRAPH +0x9043 0x71ED #CJK UNIFIED IDEOGRAPH +0x9044 0x7E54 #CJK UNIFIED IDEOGRAPH +0x9045 0x8077 #CJK UNIFIED IDEOGRAPH +0x9046 0x8272 #CJK UNIFIED IDEOGRAPH +0x9047 0x89E6 #CJK UNIFIED IDEOGRAPH +0x9048 0x98DF #CJK UNIFIED IDEOGRAPH +0x9049 0x8755 #CJK UNIFIED IDEOGRAPH +0x904A 0x8FB1 #CJK UNIFIED IDEOGRAPH +0x904B 0x5C3B #CJK UNIFIED IDEOGRAPH +0x904C 0x4F38 #CJK UNIFIED IDEOGRAPH +0x904D 0x4FE1 #CJK UNIFIED IDEOGRAPH +0x904E 0x4FB5 #CJK UNIFIED IDEOGRAPH +0x904F 0x5507 #CJK UNIFIED IDEOGRAPH +0x9050 0x5A20 #CJK UNIFIED IDEOGRAPH +0x9051 0x5BDD #CJK UNIFIED IDEOGRAPH +0x9052 0x5BE9 #CJK UNIFIED IDEOGRAPH +0x9053 0x5FC3 #CJK UNIFIED IDEOGRAPH +0x9054 0x614E #CJK UNIFIED IDEOGRAPH +0x9055 0x632F #CJK UNIFIED IDEOGRAPH +0x9056 0x65B0 #CJK UNIFIED IDEOGRAPH +0x9057 0x664B #CJK UNIFIED IDEOGRAPH +0x9058 0x68EE #CJK UNIFIED IDEOGRAPH +0x9059 0x699B #CJK UNIFIED IDEOGRAPH +0x905A 0x6D78 #CJK UNIFIED IDEOGRAPH +0x905B 0x6DF1 #CJK UNIFIED IDEOGRAPH +0x905C 0x7533 #CJK UNIFIED IDEOGRAPH +0x905D 0x75B9 #CJK UNIFIED IDEOGRAPH +0x905E 0x771F #CJK UNIFIED IDEOGRAPH +0x905F 0x795E #CJK UNIFIED IDEOGRAPH +0x9060 0x79E6 #CJK UNIFIED IDEOGRAPH +0x9061 0x7D33 #CJK UNIFIED IDEOGRAPH +0x9062 0x81E3 #CJK UNIFIED IDEOGRAPH +0x9063 0x82AF #CJK UNIFIED IDEOGRAPH +0x9064 0x85AA #CJK UNIFIED IDEOGRAPH +0x9065 0x89AA #CJK UNIFIED IDEOGRAPH +0x9066 0x8A3A #CJK UNIFIED IDEOGRAPH +0x9067 0x8EAB #CJK UNIFIED IDEOGRAPH +0x9068 0x8F9B #CJK UNIFIED IDEOGRAPH +0x9069 0x9032 #CJK UNIFIED IDEOGRAPH +0x906A 0x91DD #CJK UNIFIED IDEOGRAPH +0x906B 0x9707 #CJK UNIFIED IDEOGRAPH +0x906C 0x4EBA #CJK UNIFIED IDEOGRAPH +0x906D 0x4EC1 #CJK UNIFIED IDEOGRAPH +0x906E 0x5203 #CJK UNIFIED IDEOGRAPH +0x906F 0x5875 #CJK UNIFIED IDEOGRAPH +0x9070 0x58EC #CJK UNIFIED IDEOGRAPH +0x9071 0x5C0B #CJK UNIFIED IDEOGRAPH +0x9072 0x751A #CJK UNIFIED IDEOGRAPH +0x9073 0x5C3D #CJK UNIFIED IDEOGRAPH +0x9074 0x814E #CJK UNIFIED IDEOGRAPH +0x9075 0x8A0A #CJK UNIFIED IDEOGRAPH +0x9076 0x8FC5 #CJK UNIFIED IDEOGRAPH +0x9077 0x9663 #CJK UNIFIED IDEOGRAPH +0x9078 0x976D #CJK UNIFIED IDEOGRAPH +0x9079 0x7B25 #CJK UNIFIED IDEOGRAPH +0x907A 0x8ACF #CJK UNIFIED IDEOGRAPH +0x907B 0x9808 #CJK UNIFIED IDEOGRAPH +0x907C 0x9162 #CJK UNIFIED IDEOGRAPH +0x907D 0x56F3 #CJK UNIFIED IDEOGRAPH +0x907E 0x53A8 #CJK UNIFIED IDEOGRAPH +0x9080 0x9017 #CJK UNIFIED IDEOGRAPH +0x9081 0x5439 #CJK UNIFIED IDEOGRAPH +0x9082 0x5782 #CJK UNIFIED IDEOGRAPH +0x9083 0x5E25 #CJK UNIFIED IDEOGRAPH +0x9084 0x63A8 #CJK UNIFIED IDEOGRAPH +0x9085 0x6C34 #CJK UNIFIED IDEOGRAPH +0x9086 0x708A #CJK UNIFIED IDEOGRAPH +0x9087 0x7761 #CJK UNIFIED IDEOGRAPH +0x9088 0x7C8B #CJK UNIFIED IDEOGRAPH +0x9089 0x7FE0 #CJK UNIFIED IDEOGRAPH +0x908A 0x8870 #CJK UNIFIED IDEOGRAPH +0x908B 0x9042 #CJK UNIFIED IDEOGRAPH +0x908C 0x9154 #CJK UNIFIED IDEOGRAPH +0x908D 0x9310 #CJK UNIFIED IDEOGRAPH +0x908E 0x9318 #CJK UNIFIED IDEOGRAPH +0x908F 0x968F #CJK UNIFIED IDEOGRAPH +0x9090 0x745E #CJK UNIFIED IDEOGRAPH +0x9091 0x9AC4 #CJK UNIFIED IDEOGRAPH +0x9092 0x5D07 #CJK UNIFIED IDEOGRAPH +0x9093 0x5D69 #CJK UNIFIED IDEOGRAPH +0x9094 0x6570 #CJK UNIFIED IDEOGRAPH +0x9095 0x67A2 #CJK UNIFIED IDEOGRAPH +0x9096 0x8DA8 #CJK UNIFIED IDEOGRAPH +0x9097 0x96DB #CJK UNIFIED IDEOGRAPH +0x9098 0x636E #CJK UNIFIED IDEOGRAPH +0x9099 0x6749 #CJK UNIFIED IDEOGRAPH +0x909A 0x6919 #CJK UNIFIED IDEOGRAPH +0x909B 0x83C5 #CJK UNIFIED IDEOGRAPH +0x909C 0x9817 #CJK UNIFIED IDEOGRAPH +0x909D 0x96C0 #CJK UNIFIED IDEOGRAPH +0x909E 0x88FE #CJK UNIFIED IDEOGRAPH +0x909F 0x6F84 #CJK UNIFIED IDEOGRAPH +0x90A0 0x647A #CJK UNIFIED IDEOGRAPH +0x90A1 0x5BF8 #CJK UNIFIED IDEOGRAPH +0x90A2 0x4E16 #CJK UNIFIED IDEOGRAPH +0x90A3 0x702C #CJK UNIFIED IDEOGRAPH +0x90A4 0x755D #CJK UNIFIED IDEOGRAPH +0x90A5 0x662F #CJK UNIFIED IDEOGRAPH +0x90A6 0x51C4 #CJK UNIFIED IDEOGRAPH +0x90A7 0x5236 #CJK UNIFIED IDEOGRAPH +0x90A8 0x52E2 #CJK UNIFIED IDEOGRAPH +0x90A9 0x59D3 #CJK UNIFIED IDEOGRAPH +0x90AA 0x5F81 #CJK UNIFIED IDEOGRAPH +0x90AB 0x6027 #CJK UNIFIED IDEOGRAPH +0x90AC 0x6210 #CJK UNIFIED IDEOGRAPH +0x90AD 0x653F #CJK UNIFIED IDEOGRAPH +0x90AE 0x6574 #CJK UNIFIED IDEOGRAPH +0x90AF 0x661F #CJK UNIFIED IDEOGRAPH +0x90B0 0x6674 #CJK UNIFIED IDEOGRAPH +0x90B1 0x68F2 #CJK UNIFIED IDEOGRAPH +0x90B2 0x6816 #CJK UNIFIED IDEOGRAPH +0x90B3 0x6B63 #CJK UNIFIED IDEOGRAPH +0x90B4 0x6E05 #CJK UNIFIED IDEOGRAPH +0x90B5 0x7272 #CJK UNIFIED IDEOGRAPH +0x90B6 0x751F #CJK UNIFIED IDEOGRAPH +0x90B7 0x76DB #CJK UNIFIED IDEOGRAPH +0x90B8 0x7CBE #CJK UNIFIED IDEOGRAPH +0x90B9 0x8056 #CJK UNIFIED IDEOGRAPH +0x90BA 0x58F0 #CJK UNIFIED IDEOGRAPH +0x90BB 0x88FD #CJK UNIFIED IDEOGRAPH +0x90BC 0x897F #CJK UNIFIED IDEOGRAPH +0x90BD 0x8AA0 #CJK UNIFIED IDEOGRAPH +0x90BE 0x8A93 #CJK UNIFIED IDEOGRAPH +0x90BF 0x8ACB #CJK UNIFIED IDEOGRAPH +0x90C0 0x901D #CJK UNIFIED IDEOGRAPH +0x90C1 0x9192 #CJK UNIFIED IDEOGRAPH +0x90C2 0x9752 #CJK UNIFIED IDEOGRAPH +0x90C3 0x9759 #CJK UNIFIED IDEOGRAPH +0x90C4 0x6589 #CJK UNIFIED IDEOGRAPH +0x90C5 0x7A0E #CJK UNIFIED IDEOGRAPH +0x90C6 0x8106 #CJK UNIFIED IDEOGRAPH +0x90C7 0x96BB #CJK UNIFIED IDEOGRAPH +0x90C8 0x5E2D #CJK UNIFIED IDEOGRAPH +0x90C9 0x60DC #CJK UNIFIED IDEOGRAPH +0x90CA 0x621A #CJK UNIFIED IDEOGRAPH +0x90CB 0x65A5 #CJK UNIFIED IDEOGRAPH +0x90CC 0x6614 #CJK UNIFIED IDEOGRAPH +0x90CD 0x6790 #CJK UNIFIED IDEOGRAPH +0x90CE 0x77F3 #CJK UNIFIED IDEOGRAPH +0x90CF 0x7A4D #CJK UNIFIED IDEOGRAPH +0x90D0 0x7C4D #CJK UNIFIED IDEOGRAPH +0x90D1 0x7E3E #CJK UNIFIED IDEOGRAPH +0x90D2 0x810A #CJK UNIFIED IDEOGRAPH +0x90D3 0x8CAC #CJK UNIFIED IDEOGRAPH +0x90D4 0x8D64 #CJK UNIFIED IDEOGRAPH +0x90D5 0x8DE1 #CJK UNIFIED IDEOGRAPH +0x90D6 0x8E5F #CJK UNIFIED IDEOGRAPH +0x90D7 0x78A9 #CJK UNIFIED IDEOGRAPH +0x90D8 0x5207 #CJK UNIFIED IDEOGRAPH +0x90D9 0x62D9 #CJK UNIFIED IDEOGRAPH +0x90DA 0x63A5 #CJK UNIFIED IDEOGRAPH +0x90DB 0x6442 #CJK UNIFIED IDEOGRAPH +0x90DC 0x6298 #CJK UNIFIED IDEOGRAPH +0x90DD 0x8A2D #CJK UNIFIED IDEOGRAPH +0x90DE 0x7A83 #CJK UNIFIED IDEOGRAPH +0x90DF 0x7BC0 #CJK UNIFIED IDEOGRAPH +0x90E0 0x8AAC #CJK UNIFIED IDEOGRAPH +0x90E1 0x96EA #CJK UNIFIED IDEOGRAPH +0x90E2 0x7D76 #CJK UNIFIED IDEOGRAPH +0x90E3 0x820C #CJK UNIFIED IDEOGRAPH +0x90E4 0x8749 #CJK UNIFIED IDEOGRAPH +0x90E5 0x4ED9 #CJK UNIFIED IDEOGRAPH +0x90E6 0x5148 #CJK UNIFIED IDEOGRAPH +0x90E7 0x5343 #CJK UNIFIED IDEOGRAPH +0x90E8 0x5360 #CJK UNIFIED IDEOGRAPH +0x90E9 0x5BA3 #CJK UNIFIED IDEOGRAPH +0x90EA 0x5C02 #CJK UNIFIED IDEOGRAPH +0x90EB 0x5C16 #CJK UNIFIED IDEOGRAPH +0x90EC 0x5DDD #CJK UNIFIED IDEOGRAPH +0x90ED 0x6226 #CJK UNIFIED IDEOGRAPH +0x90EE 0x6247 #CJK UNIFIED IDEOGRAPH +0x90EF 0x64B0 #CJK UNIFIED IDEOGRAPH +0x90F0 0x6813 #CJK UNIFIED IDEOGRAPH +0x90F1 0x6834 #CJK UNIFIED IDEOGRAPH +0x90F2 0x6CC9 #CJK UNIFIED IDEOGRAPH +0x90F3 0x6D45 #CJK UNIFIED IDEOGRAPH +0x90F4 0x6D17 #CJK UNIFIED IDEOGRAPH +0x90F5 0x67D3 #CJK UNIFIED IDEOGRAPH +0x90F6 0x6F5C #CJK UNIFIED IDEOGRAPH +0x90F7 0x714E #CJK UNIFIED IDEOGRAPH +0x90F8 0x717D #CJK UNIFIED IDEOGRAPH +0x90F9 0x65CB #CJK UNIFIED IDEOGRAPH +0x90FA 0x7A7F #CJK UNIFIED IDEOGRAPH +0x90FB 0x7BAD #CJK UNIFIED IDEOGRAPH +0x90FC 0x7DDA #CJK UNIFIED IDEOGRAPH +0x9140 0x7E4A #CJK UNIFIED IDEOGRAPH +0x9141 0x7FA8 #CJK UNIFIED IDEOGRAPH +0x9142 0x817A #CJK UNIFIED IDEOGRAPH +0x9143 0x821B #CJK UNIFIED IDEOGRAPH +0x9144 0x8239 #CJK UNIFIED IDEOGRAPH +0x9145 0x85A6 #CJK UNIFIED IDEOGRAPH +0x9146 0x8A6E #CJK UNIFIED IDEOGRAPH +0x9147 0x8CCE #CJK UNIFIED IDEOGRAPH +0x9148 0x8DF5 #CJK UNIFIED IDEOGRAPH +0x9149 0x9078 #CJK UNIFIED IDEOGRAPH +0x914A 0x9077 #CJK UNIFIED IDEOGRAPH +0x914B 0x92AD #CJK UNIFIED IDEOGRAPH +0x914C 0x9291 #CJK UNIFIED IDEOGRAPH +0x914D 0x9583 #CJK UNIFIED IDEOGRAPH +0x914E 0x9BAE #CJK UNIFIED IDEOGRAPH +0x914F 0x524D #CJK UNIFIED IDEOGRAPH +0x9150 0x5584 #CJK UNIFIED IDEOGRAPH +0x9151 0x6F38 #CJK UNIFIED IDEOGRAPH +0x9152 0x7136 #CJK UNIFIED IDEOGRAPH +0x9153 0x5168 #CJK UNIFIED IDEOGRAPH +0x9154 0x7985 #CJK UNIFIED IDEOGRAPH +0x9155 0x7E55 #CJK UNIFIED IDEOGRAPH +0x9156 0x81B3 #CJK UNIFIED IDEOGRAPH +0x9157 0x7CCE #CJK UNIFIED IDEOGRAPH +0x9158 0x564C #CJK UNIFIED IDEOGRAPH +0x9159 0x5851 #CJK UNIFIED IDEOGRAPH +0x915A 0x5CA8 #CJK UNIFIED IDEOGRAPH +0x915B 0x63AA #CJK UNIFIED IDEOGRAPH +0x915C 0x66FE #CJK UNIFIED IDEOGRAPH +0x915D 0x66FD #CJK UNIFIED IDEOGRAPH +0x915E 0x695A #CJK UNIFIED IDEOGRAPH +0x915F 0x72D9 #CJK UNIFIED IDEOGRAPH +0x9160 0x758F #CJK UNIFIED IDEOGRAPH +0x9161 0x758E #CJK UNIFIED IDEOGRAPH +0x9162 0x790E #CJK UNIFIED IDEOGRAPH +0x9163 0x7956 #CJK UNIFIED IDEOGRAPH +0x9164 0x79DF #CJK UNIFIED IDEOGRAPH +0x9165 0x7C97 #CJK UNIFIED IDEOGRAPH +0x9166 0x7D20 #CJK UNIFIED IDEOGRAPH +0x9167 0x7D44 #CJK UNIFIED IDEOGRAPH +0x9168 0x8607 #CJK UNIFIED IDEOGRAPH +0x9169 0x8A34 #CJK UNIFIED IDEOGRAPH +0x916A 0x963B #CJK UNIFIED IDEOGRAPH +0x916B 0x9061 #CJK UNIFIED IDEOGRAPH +0x916C 0x9F20 #CJK UNIFIED IDEOGRAPH +0x916D 0x50E7 #CJK UNIFIED IDEOGRAPH +0x916E 0x5275 #CJK UNIFIED IDEOGRAPH +0x916F 0x53CC #CJK UNIFIED IDEOGRAPH +0x9170 0x53E2 #CJK UNIFIED IDEOGRAPH +0x9171 0x5009 #CJK UNIFIED IDEOGRAPH +0x9172 0x55AA #CJK UNIFIED IDEOGRAPH +0x9173 0x58EE #CJK UNIFIED IDEOGRAPH +0x9174 0x594F #CJK UNIFIED IDEOGRAPH +0x9175 0x723D #CJK UNIFIED IDEOGRAPH +0x9176 0x5B8B #CJK UNIFIED IDEOGRAPH +0x9177 0x5C64 #CJK UNIFIED IDEOGRAPH +0x9178 0x531D #CJK UNIFIED IDEOGRAPH +0x9179 0x60E3 #CJK UNIFIED IDEOGRAPH +0x917A 0x60F3 #CJK UNIFIED IDEOGRAPH +0x917B 0x635C #CJK UNIFIED IDEOGRAPH +0x917C 0x6383 #CJK UNIFIED IDEOGRAPH +0x917D 0x633F #CJK UNIFIED IDEOGRAPH +0x917E 0x63BB #CJK UNIFIED IDEOGRAPH +0x9180 0x64CD #CJK UNIFIED IDEOGRAPH +0x9181 0x65E9 #CJK UNIFIED IDEOGRAPH +0x9182 0x66F9 #CJK UNIFIED IDEOGRAPH +0x9183 0x5DE3 #CJK UNIFIED IDEOGRAPH +0x9184 0x69CD #CJK UNIFIED IDEOGRAPH +0x9185 0x69FD #CJK UNIFIED IDEOGRAPH +0x9186 0x6F15 #CJK UNIFIED IDEOGRAPH +0x9187 0x71E5 #CJK UNIFIED IDEOGRAPH +0x9188 0x4E89 #CJK UNIFIED IDEOGRAPH +0x9189 0x75E9 #CJK UNIFIED IDEOGRAPH +0x918A 0x76F8 #CJK UNIFIED IDEOGRAPH +0x918B 0x7A93 #CJK UNIFIED IDEOGRAPH +0x918C 0x7CDF #CJK UNIFIED IDEOGRAPH +0x918D 0x7DCF #CJK UNIFIED IDEOGRAPH +0x918E 0x7D9C #CJK UNIFIED IDEOGRAPH +0x918F 0x8061 #CJK UNIFIED IDEOGRAPH +0x9190 0x8349 #CJK UNIFIED IDEOGRAPH +0x9191 0x8358 #CJK UNIFIED IDEOGRAPH +0x9192 0x846C #CJK UNIFIED IDEOGRAPH +0x9193 0x84BC #CJK UNIFIED IDEOGRAPH +0x9194 0x85FB #CJK UNIFIED IDEOGRAPH +0x9195 0x88C5 #CJK UNIFIED IDEOGRAPH +0x9196 0x8D70 #CJK UNIFIED IDEOGRAPH +0x9197 0x9001 #CJK UNIFIED IDEOGRAPH +0x9198 0x906D #CJK UNIFIED IDEOGRAPH +0x9199 0x9397 #CJK UNIFIED IDEOGRAPH +0x919A 0x971C #CJK UNIFIED IDEOGRAPH +0x919B 0x9A12 #CJK UNIFIED IDEOGRAPH +0x919C 0x50CF #CJK UNIFIED IDEOGRAPH +0x919D 0x5897 #CJK UNIFIED IDEOGRAPH +0x919E 0x618E #CJK UNIFIED IDEOGRAPH +0x919F 0x81D3 #CJK UNIFIED IDEOGRAPH +0x91A0 0x8535 #CJK UNIFIED IDEOGRAPH +0x91A1 0x8D08 #CJK UNIFIED IDEOGRAPH +0x91A2 0x9020 #CJK UNIFIED IDEOGRAPH +0x91A3 0x4FC3 #CJK UNIFIED IDEOGRAPH +0x91A4 0x5074 #CJK UNIFIED IDEOGRAPH +0x91A5 0x5247 #CJK UNIFIED IDEOGRAPH +0x91A6 0x5373 #CJK UNIFIED IDEOGRAPH +0x91A7 0x606F #CJK UNIFIED IDEOGRAPH +0x91A8 0x6349 #CJK UNIFIED IDEOGRAPH +0x91A9 0x675F #CJK UNIFIED IDEOGRAPH +0x91AA 0x6E2C #CJK UNIFIED IDEOGRAPH +0x91AB 0x8DB3 #CJK UNIFIED IDEOGRAPH +0x91AC 0x901F #CJK UNIFIED IDEOGRAPH +0x91AD 0x4FD7 #CJK UNIFIED IDEOGRAPH +0x91AE 0x5C5E #CJK UNIFIED IDEOGRAPH +0x91AF 0x8CCA #CJK UNIFIED IDEOGRAPH +0x91B0 0x65CF #CJK UNIFIED IDEOGRAPH +0x91B1 0x7D9A #CJK UNIFIED IDEOGRAPH +0x91B2 0x5352 #CJK UNIFIED IDEOGRAPH +0x91B3 0x8896 #CJK UNIFIED IDEOGRAPH +0x91B4 0x5176 #CJK UNIFIED IDEOGRAPH +0x91B5 0x63C3 #CJK UNIFIED IDEOGRAPH +0x91B6 0x5B58 #CJK UNIFIED IDEOGRAPH +0x91B7 0x5B6B #CJK UNIFIED IDEOGRAPH +0x91B8 0x5C0A #CJK UNIFIED IDEOGRAPH +0x91B9 0x640D #CJK UNIFIED IDEOGRAPH +0x91BA 0x6751 #CJK UNIFIED IDEOGRAPH +0x91BB 0x905C #CJK UNIFIED IDEOGRAPH +0x91BC 0x4ED6 #CJK UNIFIED IDEOGRAPH +0x91BD 0x591A #CJK UNIFIED IDEOGRAPH +0x91BE 0x592A #CJK UNIFIED IDEOGRAPH +0x91BF 0x6C70 #CJK UNIFIED IDEOGRAPH +0x91C0 0x8A51 #CJK UNIFIED IDEOGRAPH +0x91C1 0x553E #CJK UNIFIED IDEOGRAPH +0x91C2 0x5815 #CJK UNIFIED IDEOGRAPH +0x91C3 0x59A5 #CJK UNIFIED IDEOGRAPH +0x91C4 0x60F0 #CJK UNIFIED IDEOGRAPH +0x91C5 0x6253 #CJK UNIFIED IDEOGRAPH +0x91C6 0x67C1 #CJK UNIFIED IDEOGRAPH +0x91C7 0x8235 #CJK UNIFIED IDEOGRAPH +0x91C8 0x6955 #CJK UNIFIED IDEOGRAPH +0x91C9 0x9640 #CJK UNIFIED IDEOGRAPH +0x91CA 0x99C4 #CJK UNIFIED IDEOGRAPH +0x91CB 0x9A28 #CJK UNIFIED IDEOGRAPH +0x91CC 0x4F53 #CJK UNIFIED IDEOGRAPH +0x91CD 0x5806 #CJK UNIFIED IDEOGRAPH +0x91CE 0x5BFE #CJK UNIFIED IDEOGRAPH +0x91CF 0x8010 #CJK UNIFIED IDEOGRAPH +0x91D0 0x5CB1 #CJK UNIFIED IDEOGRAPH +0x91D1 0x5E2F #CJK UNIFIED IDEOGRAPH +0x91D2 0x5F85 #CJK UNIFIED IDEOGRAPH +0x91D3 0x6020 #CJK UNIFIED IDEOGRAPH +0x91D4 0x614B #CJK UNIFIED IDEOGRAPH +0x91D5 0x6234 #CJK UNIFIED IDEOGRAPH +0x91D6 0x66FF #CJK UNIFIED IDEOGRAPH +0x91D7 0x6CF0 #CJK UNIFIED IDEOGRAPH +0x91D8 0x6EDE #CJK UNIFIED IDEOGRAPH +0x91D9 0x80CE #CJK UNIFIED IDEOGRAPH +0x91DA 0x817F #CJK UNIFIED IDEOGRAPH +0x91DB 0x82D4 #CJK UNIFIED IDEOGRAPH +0x91DC 0x888B #CJK UNIFIED IDEOGRAPH +0x91DD 0x8CB8 #CJK UNIFIED IDEOGRAPH +0x91DE 0x9000 #CJK UNIFIED IDEOGRAPH +0x91DF 0x902E #CJK UNIFIED IDEOGRAPH +0x91E0 0x968A #CJK UNIFIED IDEOGRAPH +0x91E1 0x9EDB #CJK UNIFIED IDEOGRAPH +0x91E2 0x9BDB #CJK UNIFIED IDEOGRAPH +0x91E3 0x4EE3 #CJK UNIFIED IDEOGRAPH +0x91E4 0x53F0 #CJK UNIFIED IDEOGRAPH +0x91E5 0x5927 #CJK UNIFIED IDEOGRAPH +0x91E6 0x7B2C #CJK UNIFIED IDEOGRAPH +0x91E7 0x918D #CJK UNIFIED IDEOGRAPH +0x91E8 0x984C #CJK UNIFIED IDEOGRAPH +0x91E9 0x9DF9 #CJK UNIFIED IDEOGRAPH +0x91EA 0x6EDD #CJK UNIFIED IDEOGRAPH +0x91EB 0x7027 #CJK UNIFIED IDEOGRAPH +0x91EC 0x5353 #CJK UNIFIED IDEOGRAPH +0x91ED 0x5544 #CJK UNIFIED IDEOGRAPH +0x91EE 0x5B85 #CJK UNIFIED IDEOGRAPH +0x91EF 0x6258 #CJK UNIFIED IDEOGRAPH +0x91F0 0x629E #CJK UNIFIED IDEOGRAPH +0x91F1 0x62D3 #CJK UNIFIED IDEOGRAPH +0x91F2 0x6CA2 #CJK UNIFIED IDEOGRAPH +0x91F3 0x6FEF #CJK UNIFIED IDEOGRAPH +0x91F4 0x7422 #CJK UNIFIED IDEOGRAPH +0x91F5 0x8A17 #CJK UNIFIED IDEOGRAPH +0x91F6 0x9438 #CJK UNIFIED IDEOGRAPH +0x91F7 0x6FC1 #CJK UNIFIED IDEOGRAPH +0x91F8 0x8AFE #CJK UNIFIED IDEOGRAPH +0x91F9 0x8338 #CJK UNIFIED IDEOGRAPH +0x91FA 0x51E7 #CJK UNIFIED IDEOGRAPH +0x91FB 0x86F8 #CJK UNIFIED IDEOGRAPH +0x91FC 0x53EA #CJK UNIFIED IDEOGRAPH +0x9240 0x53E9 #CJK UNIFIED IDEOGRAPH +0x9241 0x4F46 #CJK UNIFIED IDEOGRAPH +0x9242 0x9054 #CJK UNIFIED IDEOGRAPH +0x9243 0x8FB0 #CJK UNIFIED IDEOGRAPH +0x9244 0x596A #CJK UNIFIED IDEOGRAPH +0x9245 0x8131 #CJK UNIFIED IDEOGRAPH +0x9246 0x5DFD #CJK UNIFIED IDEOGRAPH +0x9247 0x7AEA #CJK UNIFIED IDEOGRAPH +0x9248 0x8FBF #CJK UNIFIED IDEOGRAPH +0x9249 0x68DA #CJK UNIFIED IDEOGRAPH +0x924A 0x8C37 #CJK UNIFIED IDEOGRAPH +0x924B 0x72F8 #CJK UNIFIED IDEOGRAPH +0x924C 0x9C48 #CJK UNIFIED IDEOGRAPH +0x924D 0x6A3D #CJK UNIFIED IDEOGRAPH +0x924E 0x8AB0 #CJK UNIFIED IDEOGRAPH +0x924F 0x4E39 #CJK UNIFIED IDEOGRAPH +0x9250 0x5358 #CJK UNIFIED IDEOGRAPH +0x9251 0x5606 #CJK UNIFIED IDEOGRAPH +0x9252 0x5766 #CJK UNIFIED IDEOGRAPH +0x9253 0x62C5 #CJK UNIFIED IDEOGRAPH +0x9254 0x63A2 #CJK UNIFIED IDEOGRAPH +0x9255 0x65E6 #CJK UNIFIED IDEOGRAPH +0x9256 0x6B4E #CJK UNIFIED IDEOGRAPH +0x9257 0x6DE1 #CJK UNIFIED IDEOGRAPH +0x9258 0x6E5B #CJK UNIFIED IDEOGRAPH +0x9259 0x70AD #CJK UNIFIED IDEOGRAPH +0x925A 0x77ED #CJK UNIFIED IDEOGRAPH +0x925B 0x7AEF #CJK UNIFIED IDEOGRAPH +0x925C 0x7BAA #CJK UNIFIED IDEOGRAPH +0x925D 0x7DBB #CJK UNIFIED IDEOGRAPH +0x925E 0x803D #CJK UNIFIED IDEOGRAPH +0x925F 0x80C6 #CJK UNIFIED IDEOGRAPH +0x9260 0x86CB #CJK UNIFIED IDEOGRAPH +0x9261 0x8A95 #CJK UNIFIED IDEOGRAPH +0x9262 0x935B #CJK UNIFIED IDEOGRAPH +0x9263 0x56E3 #CJK UNIFIED IDEOGRAPH +0x9264 0x58C7 #CJK UNIFIED IDEOGRAPH +0x9265 0x5F3E #CJK UNIFIED IDEOGRAPH +0x9266 0x65AD #CJK UNIFIED IDEOGRAPH +0x9267 0x6696 #CJK UNIFIED IDEOGRAPH +0x9268 0x6A80 #CJK UNIFIED IDEOGRAPH +0x9269 0x6BB5 #CJK UNIFIED IDEOGRAPH +0x926A 0x7537 #CJK UNIFIED IDEOGRAPH +0x926B 0x8AC7 #CJK UNIFIED IDEOGRAPH +0x926C 0x5024 #CJK UNIFIED IDEOGRAPH +0x926D 0x77E5 #CJK UNIFIED IDEOGRAPH +0x926E 0x5730 #CJK UNIFIED IDEOGRAPH +0x926F 0x5F1B #CJK UNIFIED IDEOGRAPH +0x9270 0x6065 #CJK UNIFIED IDEOGRAPH +0x9271 0x667A #CJK UNIFIED IDEOGRAPH +0x9272 0x6C60 #CJK UNIFIED IDEOGRAPH +0x9273 0x75F4 #CJK UNIFIED IDEOGRAPH +0x9274 0x7A1A #CJK UNIFIED IDEOGRAPH +0x9275 0x7F6E #CJK UNIFIED IDEOGRAPH +0x9276 0x81F4 #CJK UNIFIED IDEOGRAPH +0x9277 0x8718 #CJK UNIFIED IDEOGRAPH +0x9278 0x9045 #CJK UNIFIED IDEOGRAPH +0x9279 0x99B3 #CJK UNIFIED IDEOGRAPH +0x927A 0x7BC9 #CJK UNIFIED IDEOGRAPH +0x927B 0x755C #CJK UNIFIED IDEOGRAPH +0x927C 0x7AF9 #CJK UNIFIED IDEOGRAPH +0x927D 0x7B51 #CJK UNIFIED IDEOGRAPH +0x927E 0x84C4 #CJK UNIFIED IDEOGRAPH +0x9280 0x9010 #CJK UNIFIED IDEOGRAPH +0x9281 0x79E9 #CJK UNIFIED IDEOGRAPH +0x9282 0x7A92 #CJK UNIFIED IDEOGRAPH +0x9283 0x8336 #CJK UNIFIED IDEOGRAPH +0x9284 0x5AE1 #CJK UNIFIED IDEOGRAPH +0x9285 0x7740 #CJK UNIFIED IDEOGRAPH +0x9286 0x4E2D #CJK UNIFIED IDEOGRAPH +0x9287 0x4EF2 #CJK UNIFIED IDEOGRAPH +0x9288 0x5B99 #CJK UNIFIED IDEOGRAPH +0x9289 0x5FE0 #CJK UNIFIED IDEOGRAPH +0x928A 0x62BD #CJK UNIFIED IDEOGRAPH +0x928B 0x663C #CJK UNIFIED IDEOGRAPH +0x928C 0x67F1 #CJK UNIFIED IDEOGRAPH +0x928D 0x6CE8 #CJK UNIFIED IDEOGRAPH +0x928E 0x866B #CJK UNIFIED IDEOGRAPH +0x928F 0x8877 #CJK UNIFIED IDEOGRAPH +0x9290 0x8A3B #CJK UNIFIED IDEOGRAPH +0x9291 0x914E #CJK UNIFIED IDEOGRAPH +0x9292 0x92F3 #CJK UNIFIED IDEOGRAPH +0x9293 0x99D0 #CJK UNIFIED IDEOGRAPH +0x9294 0x6A17 #CJK UNIFIED IDEOGRAPH +0x9295 0x7026 #CJK UNIFIED IDEOGRAPH +0x9296 0x732A #CJK UNIFIED IDEOGRAPH +0x9297 0x82E7 #CJK UNIFIED IDEOGRAPH +0x9298 0x8457 #CJK UNIFIED IDEOGRAPH +0x9299 0x8CAF #CJK UNIFIED IDEOGRAPH +0x929A 0x4E01 #CJK UNIFIED IDEOGRAPH +0x929B 0x5146 #CJK UNIFIED IDEOGRAPH +0x929C 0x51CB #CJK UNIFIED IDEOGRAPH +0x929D 0x558B #CJK UNIFIED IDEOGRAPH +0x929E 0x5BF5 #CJK UNIFIED IDEOGRAPH +0x929F 0x5E16 #CJK UNIFIED IDEOGRAPH +0x92A0 0x5E33 #CJK UNIFIED IDEOGRAPH +0x92A1 0x5E81 #CJK UNIFIED IDEOGRAPH +0x92A2 0x5F14 #CJK UNIFIED IDEOGRAPH +0x92A3 0x5F35 #CJK UNIFIED IDEOGRAPH +0x92A4 0x5F6B #CJK UNIFIED IDEOGRAPH +0x92A5 0x5FB4 #CJK UNIFIED IDEOGRAPH +0x92A6 0x61F2 #CJK UNIFIED IDEOGRAPH +0x92A7 0x6311 #CJK UNIFIED IDEOGRAPH +0x92A8 0x66A2 #CJK UNIFIED IDEOGRAPH +0x92A9 0x671D #CJK UNIFIED IDEOGRAPH +0x92AA 0x6F6E #CJK UNIFIED IDEOGRAPH +0x92AB 0x7252 #CJK UNIFIED IDEOGRAPH +0x92AC 0x753A #CJK UNIFIED IDEOGRAPH +0x92AD 0x773A #CJK UNIFIED IDEOGRAPH +0x92AE 0x8074 #CJK UNIFIED IDEOGRAPH +0x92AF 0x8139 #CJK UNIFIED IDEOGRAPH +0x92B0 0x8178 #CJK UNIFIED IDEOGRAPH +0x92B1 0x8776 #CJK UNIFIED IDEOGRAPH +0x92B2 0x8ABF #CJK UNIFIED IDEOGRAPH +0x92B3 0x8ADC #CJK UNIFIED IDEOGRAPH +0x92B4 0x8D85 #CJK UNIFIED IDEOGRAPH +0x92B5 0x8DF3 #CJK UNIFIED IDEOGRAPH +0x92B6 0x929A #CJK UNIFIED IDEOGRAPH +0x92B7 0x9577 #CJK UNIFIED IDEOGRAPH +0x92B8 0x9802 #CJK UNIFIED IDEOGRAPH +0x92B9 0x9CE5 #CJK UNIFIED IDEOGRAPH +0x92BA 0x52C5 #CJK UNIFIED IDEOGRAPH +0x92BB 0x6357 #CJK UNIFIED IDEOGRAPH +0x92BC 0x76F4 #CJK UNIFIED IDEOGRAPH +0x92BD 0x6715 #CJK UNIFIED IDEOGRAPH +0x92BE 0x6C88 #CJK UNIFIED IDEOGRAPH +0x92BF 0x73CD #CJK UNIFIED IDEOGRAPH +0x92C0 0x8CC3 #CJK UNIFIED IDEOGRAPH +0x92C1 0x93AE #CJK UNIFIED IDEOGRAPH +0x92C2 0x9673 #CJK UNIFIED IDEOGRAPH +0x92C3 0x6D25 #CJK UNIFIED IDEOGRAPH +0x92C4 0x589C #CJK UNIFIED IDEOGRAPH +0x92C5 0x690E #CJK UNIFIED IDEOGRAPH +0x92C6 0x69CC #CJK UNIFIED IDEOGRAPH +0x92C7 0x8FFD #CJK UNIFIED IDEOGRAPH +0x92C8 0x939A #CJK UNIFIED IDEOGRAPH +0x92C9 0x75DB #CJK UNIFIED IDEOGRAPH +0x92CA 0x901A #CJK UNIFIED IDEOGRAPH +0x92CB 0x585A #CJK UNIFIED IDEOGRAPH +0x92CC 0x6802 #CJK UNIFIED IDEOGRAPH +0x92CD 0x63B4 #CJK UNIFIED IDEOGRAPH +0x92CE 0x69FB #CJK UNIFIED IDEOGRAPH +0x92CF 0x4F43 #CJK UNIFIED IDEOGRAPH +0x92D0 0x6F2C #CJK UNIFIED IDEOGRAPH +0x92D1 0x67D8 #CJK UNIFIED IDEOGRAPH +0x92D2 0x8FBB #CJK UNIFIED IDEOGRAPH +0x92D3 0x8526 #CJK UNIFIED IDEOGRAPH +0x92D4 0x7DB4 #CJK UNIFIED IDEOGRAPH +0x92D5 0x9354 #CJK UNIFIED IDEOGRAPH +0x92D6 0x693F #CJK UNIFIED IDEOGRAPH +0x92D7 0x6F70 #CJK UNIFIED IDEOGRAPH +0x92D8 0x576A #CJK UNIFIED IDEOGRAPH +0x92D9 0x58F7 #CJK UNIFIED IDEOGRAPH +0x92DA 0x5B2C #CJK UNIFIED IDEOGRAPH +0x92DB 0x7D2C #CJK UNIFIED IDEOGRAPH +0x92DC 0x722A #CJK UNIFIED IDEOGRAPH +0x92DD 0x540A #CJK UNIFIED IDEOGRAPH +0x92DE 0x91E3 #CJK UNIFIED IDEOGRAPH +0x92DF 0x9DB4 #CJK UNIFIED IDEOGRAPH +0x92E0 0x4EAD #CJK UNIFIED IDEOGRAPH +0x92E1 0x4F4E #CJK UNIFIED IDEOGRAPH +0x92E2 0x505C #CJK UNIFIED IDEOGRAPH +0x92E3 0x5075 #CJK UNIFIED IDEOGRAPH +0x92E4 0x5243 #CJK UNIFIED IDEOGRAPH +0x92E5 0x8C9E #CJK UNIFIED IDEOGRAPH +0x92E6 0x5448 #CJK UNIFIED IDEOGRAPH +0x92E7 0x5824 #CJK UNIFIED IDEOGRAPH +0x92E8 0x5B9A #CJK UNIFIED IDEOGRAPH +0x92E9 0x5E1D #CJK UNIFIED IDEOGRAPH +0x92EA 0x5E95 #CJK UNIFIED IDEOGRAPH +0x92EB 0x5EAD #CJK UNIFIED IDEOGRAPH +0x92EC 0x5EF7 #CJK UNIFIED IDEOGRAPH +0x92ED 0x5F1F #CJK UNIFIED IDEOGRAPH +0x92EE 0x608C #CJK UNIFIED IDEOGRAPH +0x92EF 0x62B5 #CJK UNIFIED IDEOGRAPH +0x92F0 0x633A #CJK UNIFIED IDEOGRAPH +0x92F1 0x63D0 #CJK UNIFIED IDEOGRAPH +0x92F2 0x68AF #CJK UNIFIED IDEOGRAPH +0x92F3 0x6C40 #CJK UNIFIED IDEOGRAPH +0x92F4 0x7887 #CJK UNIFIED IDEOGRAPH +0x92F5 0x798E #CJK UNIFIED IDEOGRAPH +0x92F6 0x7A0B #CJK UNIFIED IDEOGRAPH +0x92F7 0x7DE0 #CJK UNIFIED IDEOGRAPH +0x92F8 0x8247 #CJK UNIFIED IDEOGRAPH +0x92F9 0x8A02 #CJK UNIFIED IDEOGRAPH +0x92FA 0x8AE6 #CJK UNIFIED IDEOGRAPH +0x92FB 0x8E44 #CJK UNIFIED IDEOGRAPH +0x92FC 0x9013 #CJK UNIFIED IDEOGRAPH +0x9340 0x90B8 #CJK UNIFIED IDEOGRAPH +0x9341 0x912D #CJK UNIFIED IDEOGRAPH +0x9342 0x91D8 #CJK UNIFIED IDEOGRAPH +0x9343 0x9F0E #CJK UNIFIED IDEOGRAPH +0x9344 0x6CE5 #CJK UNIFIED IDEOGRAPH +0x9345 0x6458 #CJK UNIFIED IDEOGRAPH +0x9346 0x64E2 #CJK UNIFIED IDEOGRAPH +0x9347 0x6575 #CJK UNIFIED IDEOGRAPH +0x9348 0x6EF4 #CJK UNIFIED IDEOGRAPH +0x9349 0x7684 #CJK UNIFIED IDEOGRAPH +0x934A 0x7B1B #CJK UNIFIED IDEOGRAPH +0x934B 0x9069 #CJK UNIFIED IDEOGRAPH +0x934C 0x93D1 #CJK UNIFIED IDEOGRAPH +0x934D 0x6EBA #CJK UNIFIED IDEOGRAPH +0x934E 0x54F2 #CJK UNIFIED IDEOGRAPH +0x934F 0x5FB9 #CJK UNIFIED IDEOGRAPH +0x9350 0x64A4 #CJK UNIFIED IDEOGRAPH +0x9351 0x8F4D #CJK UNIFIED IDEOGRAPH +0x9352 0x8FED #CJK UNIFIED IDEOGRAPH +0x9353 0x9244 #CJK UNIFIED IDEOGRAPH +0x9354 0x5178 #CJK UNIFIED IDEOGRAPH +0x9355 0x586B #CJK UNIFIED IDEOGRAPH +0x9356 0x5929 #CJK UNIFIED IDEOGRAPH +0x9357 0x5C55 #CJK UNIFIED IDEOGRAPH +0x9358 0x5E97 #CJK UNIFIED IDEOGRAPH +0x9359 0x6DFB #CJK UNIFIED IDEOGRAPH +0x935A 0x7E8F #CJK UNIFIED IDEOGRAPH +0x935B 0x751C #CJK UNIFIED IDEOGRAPH +0x935C 0x8CBC #CJK UNIFIED IDEOGRAPH +0x935D 0x8EE2 #CJK UNIFIED IDEOGRAPH +0x935E 0x985B #CJK UNIFIED IDEOGRAPH +0x935F 0x70B9 #CJK UNIFIED IDEOGRAPH +0x9360 0x4F1D #CJK UNIFIED IDEOGRAPH +0x9361 0x6BBF #CJK UNIFIED IDEOGRAPH +0x9362 0x6FB1 #CJK UNIFIED IDEOGRAPH +0x9363 0x7530 #CJK UNIFIED IDEOGRAPH +0x9364 0x96FB #CJK UNIFIED IDEOGRAPH +0x9365 0x514E #CJK UNIFIED IDEOGRAPH +0x9366 0x5410 #CJK UNIFIED IDEOGRAPH +0x9367 0x5835 #CJK UNIFIED IDEOGRAPH +0x9368 0x5857 #CJK UNIFIED IDEOGRAPH +0x9369 0x59AC #CJK UNIFIED IDEOGRAPH +0x936A 0x5C60 #CJK UNIFIED IDEOGRAPH +0x936B 0x5F92 #CJK UNIFIED IDEOGRAPH +0x936C 0x6597 #CJK UNIFIED IDEOGRAPH +0x936D 0x675C #CJK UNIFIED IDEOGRAPH +0x936E 0x6E21 #CJK UNIFIED IDEOGRAPH +0x936F 0x767B #CJK UNIFIED IDEOGRAPH +0x9370 0x83DF #CJK UNIFIED IDEOGRAPH +0x9371 0x8CED #CJK UNIFIED IDEOGRAPH +0x9372 0x9014 #CJK UNIFIED IDEOGRAPH +0x9373 0x90FD #CJK UNIFIED IDEOGRAPH +0x9374 0x934D #CJK UNIFIED IDEOGRAPH +0x9375 0x7825 #CJK UNIFIED IDEOGRAPH +0x9376 0x783A #CJK UNIFIED IDEOGRAPH +0x9377 0x52AA #CJK UNIFIED IDEOGRAPH +0x9378 0x5EA6 #CJK UNIFIED IDEOGRAPH +0x9379 0x571F #CJK UNIFIED IDEOGRAPH +0x937A 0x5974 #CJK UNIFIED IDEOGRAPH +0x937B 0x6012 #CJK UNIFIED IDEOGRAPH +0x937C 0x5012 #CJK UNIFIED IDEOGRAPH +0x937D 0x515A #CJK UNIFIED IDEOGRAPH +0x937E 0x51AC #CJK UNIFIED IDEOGRAPH +0x9380 0x51CD #CJK UNIFIED IDEOGRAPH +0x9381 0x5200 #CJK UNIFIED IDEOGRAPH +0x9382 0x5510 #CJK UNIFIED IDEOGRAPH +0x9383 0x5854 #CJK UNIFIED IDEOGRAPH +0x9384 0x5858 #CJK UNIFIED IDEOGRAPH +0x9385 0x5957 #CJK UNIFIED IDEOGRAPH +0x9386 0x5B95 #CJK UNIFIED IDEOGRAPH +0x9387 0x5CF6 #CJK UNIFIED IDEOGRAPH +0x9388 0x5D8B #CJK UNIFIED IDEOGRAPH +0x9389 0x60BC #CJK UNIFIED IDEOGRAPH +0x938A 0x6295 #CJK UNIFIED IDEOGRAPH +0x938B 0x642D #CJK UNIFIED IDEOGRAPH +0x938C 0x6771 #CJK UNIFIED IDEOGRAPH +0x938D 0x6843 #CJK UNIFIED IDEOGRAPH +0x938E 0x68BC #CJK UNIFIED IDEOGRAPH +0x938F 0x68DF #CJK UNIFIED IDEOGRAPH +0x9390 0x76D7 #CJK UNIFIED IDEOGRAPH +0x9391 0x6DD8 #CJK UNIFIED IDEOGRAPH +0x9392 0x6E6F #CJK UNIFIED IDEOGRAPH +0x9393 0x6D9B #CJK UNIFIED IDEOGRAPH +0x9394 0x706F #CJK UNIFIED IDEOGRAPH +0x9395 0x71C8 #CJK UNIFIED IDEOGRAPH +0x9396 0x5F53 #CJK UNIFIED IDEOGRAPH +0x9397 0x75D8 #CJK UNIFIED IDEOGRAPH +0x9398 0x7977 #CJK UNIFIED IDEOGRAPH +0x9399 0x7B49 #CJK UNIFIED IDEOGRAPH +0x939A 0x7B54 #CJK UNIFIED IDEOGRAPH +0x939B 0x7B52 #CJK UNIFIED IDEOGRAPH +0x939C 0x7CD6 #CJK UNIFIED IDEOGRAPH +0x939D 0x7D71 #CJK UNIFIED IDEOGRAPH +0x939E 0x5230 #CJK UNIFIED IDEOGRAPH +0x939F 0x8463 #CJK UNIFIED IDEOGRAPH +0x93A0 0x8569 #CJK UNIFIED IDEOGRAPH +0x93A1 0x85E4 #CJK UNIFIED IDEOGRAPH +0x93A2 0x8A0E #CJK UNIFIED IDEOGRAPH +0x93A3 0x8B04 #CJK UNIFIED IDEOGRAPH +0x93A4 0x8C46 #CJK UNIFIED IDEOGRAPH +0x93A5 0x8E0F #CJK UNIFIED IDEOGRAPH +0x93A6 0x9003 #CJK UNIFIED IDEOGRAPH +0x93A7 0x900F #CJK UNIFIED IDEOGRAPH +0x93A8 0x9419 #CJK UNIFIED IDEOGRAPH +0x93A9 0x9676 #CJK UNIFIED IDEOGRAPH +0x93AA 0x982D #CJK UNIFIED IDEOGRAPH +0x93AB 0x9A30 #CJK UNIFIED IDEOGRAPH +0x93AC 0x95D8 #CJK UNIFIED IDEOGRAPH +0x93AD 0x50CD #CJK UNIFIED IDEOGRAPH +0x93AE 0x52D5 #CJK UNIFIED IDEOGRAPH +0x93AF 0x540C #CJK UNIFIED IDEOGRAPH +0x93B0 0x5802 #CJK UNIFIED IDEOGRAPH +0x93B1 0x5C0E #CJK UNIFIED IDEOGRAPH +0x93B2 0x61A7 #CJK UNIFIED IDEOGRAPH +0x93B3 0x649E #CJK UNIFIED IDEOGRAPH +0x93B4 0x6D1E #CJK UNIFIED IDEOGRAPH +0x93B5 0x77B3 #CJK UNIFIED IDEOGRAPH +0x93B6 0x7AE5 #CJK UNIFIED IDEOGRAPH +0x93B7 0x80F4 #CJK UNIFIED IDEOGRAPH +0x93B8 0x8404 #CJK UNIFIED IDEOGRAPH +0x93B9 0x9053 #CJK UNIFIED IDEOGRAPH +0x93BA 0x9285 #CJK UNIFIED IDEOGRAPH +0x93BB 0x5CE0 #CJK UNIFIED IDEOGRAPH +0x93BC 0x9D07 #CJK UNIFIED IDEOGRAPH +0x93BD 0x533F #CJK UNIFIED IDEOGRAPH +0x93BE 0x5F97 #CJK UNIFIED IDEOGRAPH +0x93BF 0x5FB3 #CJK UNIFIED IDEOGRAPH +0x93C0 0x6D9C #CJK UNIFIED IDEOGRAPH +0x93C1 0x7279 #CJK UNIFIED IDEOGRAPH +0x93C2 0x7763 #CJK UNIFIED IDEOGRAPH +0x93C3 0x79BF #CJK UNIFIED IDEOGRAPH +0x93C4 0x7BE4 #CJK UNIFIED IDEOGRAPH +0x93C5 0x6BD2 #CJK UNIFIED IDEOGRAPH +0x93C6 0x72EC #CJK UNIFIED IDEOGRAPH +0x93C7 0x8AAD #CJK UNIFIED IDEOGRAPH +0x93C8 0x6803 #CJK UNIFIED IDEOGRAPH +0x93C9 0x6A61 #CJK UNIFIED IDEOGRAPH +0x93CA 0x51F8 #CJK UNIFIED IDEOGRAPH +0x93CB 0x7A81 #CJK UNIFIED IDEOGRAPH +0x93CC 0x6934 #CJK UNIFIED IDEOGRAPH +0x93CD 0x5C4A #CJK UNIFIED IDEOGRAPH +0x93CE 0x9CF6 #CJK UNIFIED IDEOGRAPH +0x93CF 0x82EB #CJK UNIFIED IDEOGRAPH +0x93D0 0x5BC5 #CJK UNIFIED IDEOGRAPH +0x93D1 0x9149 #CJK UNIFIED IDEOGRAPH +0x93D2 0x701E #CJK UNIFIED IDEOGRAPH +0x93D3 0x5678 #CJK UNIFIED IDEOGRAPH +0x93D4 0x5C6F #CJK UNIFIED IDEOGRAPH +0x93D5 0x60C7 #CJK UNIFIED IDEOGRAPH +0x93D6 0x6566 #CJK UNIFIED IDEOGRAPH +0x93D7 0x6C8C #CJK UNIFIED IDEOGRAPH +0x93D8 0x8C5A #CJK UNIFIED IDEOGRAPH +0x93D9 0x9041 #CJK UNIFIED IDEOGRAPH +0x93DA 0x9813 #CJK UNIFIED IDEOGRAPH +0x93DB 0x5451 #CJK UNIFIED IDEOGRAPH +0x93DC 0x66C7 #CJK UNIFIED IDEOGRAPH +0x93DD 0x920D #CJK UNIFIED IDEOGRAPH +0x93DE 0x5948 #CJK UNIFIED IDEOGRAPH +0x93DF 0x90A3 #CJK UNIFIED IDEOGRAPH +0x93E0 0x5185 #CJK UNIFIED IDEOGRAPH +0x93E1 0x4E4D #CJK UNIFIED IDEOGRAPH +0x93E2 0x51EA #CJK UNIFIED IDEOGRAPH +0x93E3 0x8599 #CJK UNIFIED IDEOGRAPH +0x93E4 0x8B0E #CJK UNIFIED IDEOGRAPH +0x93E5 0x7058 #CJK UNIFIED IDEOGRAPH +0x93E6 0x637A #CJK UNIFIED IDEOGRAPH +0x93E7 0x934B #CJK UNIFIED IDEOGRAPH +0x93E8 0x6962 #CJK UNIFIED IDEOGRAPH +0x93E9 0x99B4 #CJK UNIFIED IDEOGRAPH +0x93EA 0x7E04 #CJK UNIFIED IDEOGRAPH +0x93EB 0x7577 #CJK UNIFIED IDEOGRAPH +0x93EC 0x5357 #CJK UNIFIED IDEOGRAPH +0x93ED 0x6960 #CJK UNIFIED IDEOGRAPH +0x93EE 0x8EDF #CJK UNIFIED IDEOGRAPH +0x93EF 0x96E3 #CJK UNIFIED IDEOGRAPH +0x93F0 0x6C5D #CJK UNIFIED IDEOGRAPH +0x93F1 0x4E8C #CJK UNIFIED IDEOGRAPH +0x93F2 0x5C3C #CJK UNIFIED IDEOGRAPH +0x93F3 0x5F10 #CJK UNIFIED IDEOGRAPH +0x93F4 0x8FE9 #CJK UNIFIED IDEOGRAPH +0x93F5 0x5302 #CJK UNIFIED IDEOGRAPH +0x93F6 0x8CD1 #CJK UNIFIED IDEOGRAPH +0x93F7 0x8089 #CJK UNIFIED IDEOGRAPH +0x93F8 0x8679 #CJK UNIFIED IDEOGRAPH +0x93F9 0x5EFF #CJK UNIFIED IDEOGRAPH +0x93FA 0x65E5 #CJK UNIFIED IDEOGRAPH +0x93FB 0x4E73 #CJK UNIFIED IDEOGRAPH +0x93FC 0x5165 #CJK UNIFIED IDEOGRAPH +0x9440 0x5982 #CJK UNIFIED IDEOGRAPH +0x9441 0x5C3F #CJK UNIFIED IDEOGRAPH +0x9442 0x97EE #CJK UNIFIED IDEOGRAPH +0x9443 0x4EFB #CJK UNIFIED IDEOGRAPH +0x9444 0x598A #CJK UNIFIED IDEOGRAPH +0x9445 0x5FCD #CJK UNIFIED IDEOGRAPH +0x9446 0x8A8D #CJK UNIFIED IDEOGRAPH +0x9447 0x6FE1 #CJK UNIFIED IDEOGRAPH +0x9448 0x79B0 #CJK UNIFIED IDEOGRAPH +0x9449 0x7962 #CJK UNIFIED IDEOGRAPH +0x944A 0x5BE7 #CJK UNIFIED IDEOGRAPH +0x944B 0x8471 #CJK UNIFIED IDEOGRAPH +0x944C 0x732B #CJK UNIFIED IDEOGRAPH +0x944D 0x71B1 #CJK UNIFIED IDEOGRAPH +0x944E 0x5E74 #CJK UNIFIED IDEOGRAPH +0x944F 0x5FF5 #CJK UNIFIED IDEOGRAPH +0x9450 0x637B #CJK UNIFIED IDEOGRAPH +0x9451 0x649A #CJK UNIFIED IDEOGRAPH +0x9452 0x71C3 #CJK UNIFIED IDEOGRAPH +0x9453 0x7C98 #CJK UNIFIED IDEOGRAPH +0x9454 0x4E43 #CJK UNIFIED IDEOGRAPH +0x9455 0x5EFC #CJK UNIFIED IDEOGRAPH +0x9456 0x4E4B #CJK UNIFIED IDEOGRAPH +0x9457 0x57DC #CJK UNIFIED IDEOGRAPH +0x9458 0x56A2 #CJK UNIFIED IDEOGRAPH +0x9459 0x60A9 #CJK UNIFIED IDEOGRAPH +0x945A 0x6FC3 #CJK UNIFIED IDEOGRAPH +0x945B 0x7D0D #CJK UNIFIED IDEOGRAPH +0x945C 0x80FD #CJK UNIFIED IDEOGRAPH +0x945D 0x8133 #CJK UNIFIED IDEOGRAPH +0x945E 0x81BF #CJK UNIFIED IDEOGRAPH +0x945F 0x8FB2 #CJK UNIFIED IDEOGRAPH +0x9460 0x8997 #CJK UNIFIED IDEOGRAPH +0x9461 0x86A4 #CJK UNIFIED IDEOGRAPH +0x9462 0x5DF4 #CJK UNIFIED IDEOGRAPH +0x9463 0x628A #CJK UNIFIED IDEOGRAPH +0x9464 0x64AD #CJK UNIFIED IDEOGRAPH +0x9465 0x8987 #CJK UNIFIED IDEOGRAPH +0x9466 0x6777 #CJK UNIFIED IDEOGRAPH +0x9467 0x6CE2 #CJK UNIFIED IDEOGRAPH +0x9468 0x6D3E #CJK UNIFIED IDEOGRAPH +0x9469 0x7436 #CJK UNIFIED IDEOGRAPH +0x946A 0x7834 #CJK UNIFIED IDEOGRAPH +0x946B 0x5A46 #CJK UNIFIED IDEOGRAPH +0x946C 0x7F75 #CJK UNIFIED IDEOGRAPH +0x946D 0x82AD #CJK UNIFIED IDEOGRAPH +0x946E 0x99AC #CJK UNIFIED IDEOGRAPH +0x946F 0x4FF3 #CJK UNIFIED IDEOGRAPH +0x9470 0x5EC3 #CJK UNIFIED IDEOGRAPH +0x9471 0x62DD #CJK UNIFIED IDEOGRAPH +0x9472 0x6392 #CJK UNIFIED IDEOGRAPH +0x9473 0x6557 #CJK UNIFIED IDEOGRAPH +0x9474 0x676F #CJK UNIFIED IDEOGRAPH +0x9475 0x76C3 #CJK UNIFIED IDEOGRAPH +0x9476 0x724C #CJK UNIFIED IDEOGRAPH +0x9477 0x80CC #CJK UNIFIED IDEOGRAPH +0x9478 0x80BA #CJK UNIFIED IDEOGRAPH +0x9479 0x8F29 #CJK UNIFIED IDEOGRAPH +0x947A 0x914D #CJK UNIFIED IDEOGRAPH +0x947B 0x500D #CJK UNIFIED IDEOGRAPH +0x947C 0x57F9 #CJK UNIFIED IDEOGRAPH +0x947D 0x5A92 #CJK UNIFIED IDEOGRAPH +0x947E 0x6885 #CJK UNIFIED IDEOGRAPH +0x9480 0x6973 #CJK UNIFIED IDEOGRAPH +0x9481 0x7164 #CJK UNIFIED IDEOGRAPH +0x9482 0x72FD #CJK UNIFIED IDEOGRAPH +0x9483 0x8CB7 #CJK UNIFIED IDEOGRAPH +0x9484 0x58F2 #CJK UNIFIED IDEOGRAPH +0x9485 0x8CE0 #CJK UNIFIED IDEOGRAPH +0x9486 0x966A #CJK UNIFIED IDEOGRAPH +0x9487 0x9019 #CJK UNIFIED IDEOGRAPH +0x9488 0x877F #CJK UNIFIED IDEOGRAPH +0x9489 0x79E4 #CJK UNIFIED IDEOGRAPH +0x948A 0x77E7 #CJK UNIFIED IDEOGRAPH +0x948B 0x8429 #CJK UNIFIED IDEOGRAPH +0x948C 0x4F2F #CJK UNIFIED IDEOGRAPH +0x948D 0x5265 #CJK UNIFIED IDEOGRAPH +0x948E 0x535A #CJK UNIFIED IDEOGRAPH +0x948F 0x62CD #CJK UNIFIED IDEOGRAPH +0x9490 0x67CF #CJK UNIFIED IDEOGRAPH +0x9491 0x6CCA #CJK UNIFIED IDEOGRAPH +0x9492 0x767D #CJK UNIFIED IDEOGRAPH +0x9493 0x7B94 #CJK UNIFIED IDEOGRAPH +0x9494 0x7C95 #CJK UNIFIED IDEOGRAPH +0x9495 0x8236 #CJK UNIFIED IDEOGRAPH +0x9496 0x8584 #CJK UNIFIED IDEOGRAPH +0x9497 0x8FEB #CJK UNIFIED IDEOGRAPH +0x9498 0x66DD #CJK UNIFIED IDEOGRAPH +0x9499 0x6F20 #CJK UNIFIED IDEOGRAPH +0x949A 0x7206 #CJK UNIFIED IDEOGRAPH +0x949B 0x7E1B #CJK UNIFIED IDEOGRAPH +0x949C 0x83AB #CJK UNIFIED IDEOGRAPH +0x949D 0x99C1 #CJK UNIFIED IDEOGRAPH +0x949E 0x9EA6 #CJK UNIFIED IDEOGRAPH +0x949F 0x51FD #CJK UNIFIED IDEOGRAPH +0x94A0 0x7BB1 #CJK UNIFIED IDEOGRAPH +0x94A1 0x7872 #CJK UNIFIED IDEOGRAPH +0x94A2 0x7BB8 #CJK UNIFIED IDEOGRAPH +0x94A3 0x8087 #CJK UNIFIED IDEOGRAPH +0x94A4 0x7B48 #CJK UNIFIED IDEOGRAPH +0x94A5 0x6AE8 #CJK UNIFIED IDEOGRAPH +0x94A6 0x5E61 #CJK UNIFIED IDEOGRAPH +0x94A7 0x808C #CJK UNIFIED IDEOGRAPH +0x94A8 0x7551 #CJK UNIFIED IDEOGRAPH +0x94A9 0x7560 #CJK UNIFIED IDEOGRAPH +0x94AA 0x516B #CJK UNIFIED IDEOGRAPH +0x94AB 0x9262 #CJK UNIFIED IDEOGRAPH +0x94AC 0x6E8C #CJK UNIFIED IDEOGRAPH +0x94AD 0x767A #CJK UNIFIED IDEOGRAPH +0x94AE 0x9197 #CJK UNIFIED IDEOGRAPH +0x94AF 0x9AEA #CJK UNIFIED IDEOGRAPH +0x94B0 0x4F10 #CJK UNIFIED IDEOGRAPH +0x94B1 0x7F70 #CJK UNIFIED IDEOGRAPH +0x94B2 0x629C #CJK UNIFIED IDEOGRAPH +0x94B3 0x7B4F #CJK UNIFIED IDEOGRAPH +0x94B4 0x95A5 #CJK UNIFIED IDEOGRAPH +0x94B5 0x9CE9 #CJK UNIFIED IDEOGRAPH +0x94B6 0x567A #CJK UNIFIED IDEOGRAPH +0x94B7 0x5859 #CJK UNIFIED IDEOGRAPH +0x94B8 0x86E4 #CJK UNIFIED IDEOGRAPH +0x94B9 0x96BC #CJK UNIFIED IDEOGRAPH +0x94BA 0x4F34 #CJK UNIFIED IDEOGRAPH +0x94BB 0x5224 #CJK UNIFIED IDEOGRAPH +0x94BC 0x534A #CJK UNIFIED IDEOGRAPH +0x94BD 0x53CD #CJK UNIFIED IDEOGRAPH +0x94BE 0x53DB #CJK UNIFIED IDEOGRAPH +0x94BF 0x5E06 #CJK UNIFIED IDEOGRAPH +0x94C0 0x642C #CJK UNIFIED IDEOGRAPH +0x94C1 0x6591 #CJK UNIFIED IDEOGRAPH +0x94C2 0x677F #CJK UNIFIED IDEOGRAPH +0x94C3 0x6C3E #CJK UNIFIED IDEOGRAPH +0x94C4 0x6C4E #CJK UNIFIED IDEOGRAPH +0x94C5 0x7248 #CJK UNIFIED IDEOGRAPH +0x94C6 0x72AF #CJK UNIFIED IDEOGRAPH +0x94C7 0x73ED #CJK UNIFIED IDEOGRAPH +0x94C8 0x7554 #CJK UNIFIED IDEOGRAPH +0x94C9 0x7E41 #CJK UNIFIED IDEOGRAPH +0x94CA 0x822C #CJK UNIFIED IDEOGRAPH +0x94CB 0x85E9 #CJK UNIFIED IDEOGRAPH +0x94CC 0x8CA9 #CJK UNIFIED IDEOGRAPH +0x94CD 0x7BC4 #CJK UNIFIED IDEOGRAPH +0x94CE 0x91C6 #CJK UNIFIED IDEOGRAPH +0x94CF 0x7169 #CJK UNIFIED IDEOGRAPH +0x94D0 0x9812 #CJK UNIFIED IDEOGRAPH +0x94D1 0x98EF #CJK UNIFIED IDEOGRAPH +0x94D2 0x633D #CJK UNIFIED IDEOGRAPH +0x94D3 0x6669 #CJK UNIFIED IDEOGRAPH +0x94D4 0x756A #CJK UNIFIED IDEOGRAPH +0x94D5 0x76E4 #CJK UNIFIED IDEOGRAPH +0x94D6 0x78D0 #CJK UNIFIED IDEOGRAPH +0x94D7 0x8543 #CJK UNIFIED IDEOGRAPH +0x94D8 0x86EE #CJK UNIFIED IDEOGRAPH +0x94D9 0x532A #CJK UNIFIED IDEOGRAPH +0x94DA 0x5351 #CJK UNIFIED IDEOGRAPH +0x94DB 0x5426 #CJK UNIFIED IDEOGRAPH +0x94DC 0x5983 #CJK UNIFIED IDEOGRAPH +0x94DD 0x5E87 #CJK UNIFIED IDEOGRAPH +0x94DE 0x5F7C #CJK UNIFIED IDEOGRAPH +0x94DF 0x60B2 #CJK UNIFIED IDEOGRAPH +0x94E0 0x6249 #CJK UNIFIED IDEOGRAPH +0x94E1 0x6279 #CJK UNIFIED IDEOGRAPH +0x94E2 0x62AB #CJK UNIFIED IDEOGRAPH +0x94E3 0x6590 #CJK UNIFIED IDEOGRAPH +0x94E4 0x6BD4 #CJK UNIFIED IDEOGRAPH +0x94E5 0x6CCC #CJK UNIFIED IDEOGRAPH +0x94E6 0x75B2 #CJK UNIFIED IDEOGRAPH +0x94E7 0x76AE #CJK UNIFIED IDEOGRAPH +0x94E8 0x7891 #CJK UNIFIED IDEOGRAPH +0x94E9 0x79D8 #CJK UNIFIED IDEOGRAPH +0x94EA 0x7DCB #CJK UNIFIED IDEOGRAPH +0x94EB 0x7F77 #CJK UNIFIED IDEOGRAPH +0x94EC 0x80A5 #CJK UNIFIED IDEOGRAPH +0x94ED 0x88AB #CJK UNIFIED IDEOGRAPH +0x94EE 0x8AB9 #CJK UNIFIED IDEOGRAPH +0x94EF 0x8CBB #CJK UNIFIED IDEOGRAPH +0x94F0 0x907F #CJK UNIFIED IDEOGRAPH +0x94F1 0x975E #CJK UNIFIED IDEOGRAPH +0x94F2 0x98DB #CJK UNIFIED IDEOGRAPH +0x94F3 0x6A0B #CJK UNIFIED IDEOGRAPH +0x94F4 0x7C38 #CJK UNIFIED IDEOGRAPH +0x94F5 0x5099 #CJK UNIFIED IDEOGRAPH +0x94F6 0x5C3E #CJK UNIFIED IDEOGRAPH +0x94F7 0x5FAE #CJK UNIFIED IDEOGRAPH +0x94F8 0x6787 #CJK UNIFIED IDEOGRAPH +0x94F9 0x6BD8 #CJK UNIFIED IDEOGRAPH +0x94FA 0x7435 #CJK UNIFIED IDEOGRAPH +0x94FB 0x7709 #CJK UNIFIED IDEOGRAPH +0x94FC 0x7F8E #CJK UNIFIED IDEOGRAPH +0x9540 0x9F3B #CJK UNIFIED IDEOGRAPH +0x9541 0x67CA #CJK UNIFIED IDEOGRAPH +0x9542 0x7A17 #CJK UNIFIED IDEOGRAPH +0x9543 0x5339 #CJK UNIFIED IDEOGRAPH +0x9544 0x758B #CJK UNIFIED IDEOGRAPH +0x9545 0x9AED #CJK UNIFIED IDEOGRAPH +0x9546 0x5F66 #CJK UNIFIED IDEOGRAPH +0x9547 0x819D #CJK UNIFIED IDEOGRAPH +0x9548 0x83F1 #CJK UNIFIED IDEOGRAPH +0x9549 0x8098 #CJK UNIFIED IDEOGRAPH +0x954A 0x5F3C #CJK UNIFIED IDEOGRAPH +0x954B 0x5FC5 #CJK UNIFIED IDEOGRAPH +0x954C 0x7562 #CJK UNIFIED IDEOGRAPH +0x954D 0x7B46 #CJK UNIFIED IDEOGRAPH +0x954E 0x903C #CJK UNIFIED IDEOGRAPH +0x954F 0x6867 #CJK UNIFIED IDEOGRAPH +0x9550 0x59EB #CJK UNIFIED IDEOGRAPH +0x9551 0x5A9B #CJK UNIFIED IDEOGRAPH +0x9552 0x7D10 #CJK UNIFIED IDEOGRAPH +0x9553 0x767E #CJK UNIFIED IDEOGRAPH +0x9554 0x8B2C #CJK UNIFIED IDEOGRAPH +0x9555 0x4FF5 #CJK UNIFIED IDEOGRAPH +0x9556 0x5F6A #CJK UNIFIED IDEOGRAPH +0x9557 0x6A19 #CJK UNIFIED IDEOGRAPH +0x9558 0x6C37 #CJK UNIFIED IDEOGRAPH +0x9559 0x6F02 #CJK UNIFIED IDEOGRAPH +0x955A 0x74E2 #CJK UNIFIED IDEOGRAPH +0x955B 0x7968 #CJK UNIFIED IDEOGRAPH +0x955C 0x8868 #CJK UNIFIED IDEOGRAPH +0x955D 0x8A55 #CJK UNIFIED IDEOGRAPH +0x955E 0x8C79 #CJK UNIFIED IDEOGRAPH +0x955F 0x5EDF #CJK UNIFIED IDEOGRAPH +0x9560 0x63CF #CJK UNIFIED IDEOGRAPH +0x9561 0x75C5 #CJK UNIFIED IDEOGRAPH +0x9562 0x79D2 #CJK UNIFIED IDEOGRAPH +0x9563 0x82D7 #CJK UNIFIED IDEOGRAPH +0x9564 0x9328 #CJK UNIFIED IDEOGRAPH +0x9565 0x92F2 #CJK UNIFIED IDEOGRAPH +0x9566 0x849C #CJK UNIFIED IDEOGRAPH +0x9567 0x86ED #CJK UNIFIED IDEOGRAPH +0x9568 0x9C2D #CJK UNIFIED IDEOGRAPH +0x9569 0x54C1 #CJK UNIFIED IDEOGRAPH +0x956A 0x5F6C #CJK UNIFIED IDEOGRAPH +0x956B 0x658C #CJK UNIFIED IDEOGRAPH +0x956C 0x6D5C #CJK UNIFIED IDEOGRAPH +0x956D 0x7015 #CJK UNIFIED IDEOGRAPH +0x956E 0x8CA7 #CJK UNIFIED IDEOGRAPH +0x956F 0x8CD3 #CJK UNIFIED IDEOGRAPH +0x9570 0x983B #CJK UNIFIED IDEOGRAPH +0x9571 0x654F #CJK UNIFIED IDEOGRAPH +0x9572 0x74F6 #CJK UNIFIED IDEOGRAPH +0x9573 0x4E0D #CJK UNIFIED IDEOGRAPH +0x9574 0x4ED8 #CJK UNIFIED IDEOGRAPH +0x9575 0x57E0 #CJK UNIFIED IDEOGRAPH +0x9576 0x592B #CJK UNIFIED IDEOGRAPH +0x9577 0x5A66 #CJK UNIFIED IDEOGRAPH +0x9578 0x5BCC #CJK UNIFIED IDEOGRAPH +0x9579 0x51A8 #CJK UNIFIED IDEOGRAPH +0x957A 0x5E03 #CJK UNIFIED IDEOGRAPH +0x957B 0x5E9C #CJK UNIFIED IDEOGRAPH +0x957C 0x6016 #CJK UNIFIED IDEOGRAPH +0x957D 0x6276 #CJK UNIFIED IDEOGRAPH +0x957E 0x6577 #CJK UNIFIED IDEOGRAPH +0x9580 0x65A7 #CJK UNIFIED IDEOGRAPH +0x9581 0x666E #CJK UNIFIED IDEOGRAPH +0x9582 0x6D6E #CJK UNIFIED IDEOGRAPH +0x9583 0x7236 #CJK UNIFIED IDEOGRAPH +0x9584 0x7B26 #CJK UNIFIED IDEOGRAPH +0x9585 0x8150 #CJK UNIFIED IDEOGRAPH +0x9586 0x819A #CJK UNIFIED IDEOGRAPH +0x9587 0x8299 #CJK UNIFIED IDEOGRAPH +0x9588 0x8B5C #CJK UNIFIED IDEOGRAPH +0x9589 0x8CA0 #CJK UNIFIED IDEOGRAPH +0x958A 0x8CE6 #CJK UNIFIED IDEOGRAPH +0x958B 0x8D74 #CJK UNIFIED IDEOGRAPH +0x958C 0x961C #CJK UNIFIED IDEOGRAPH +0x958D 0x9644 #CJK UNIFIED IDEOGRAPH +0x958E 0x4FAE #CJK UNIFIED IDEOGRAPH +0x958F 0x64AB #CJK UNIFIED IDEOGRAPH +0x9590 0x6B66 #CJK UNIFIED IDEOGRAPH +0x9591 0x821E #CJK UNIFIED IDEOGRAPH +0x9592 0x8461 #CJK UNIFIED IDEOGRAPH +0x9593 0x856A #CJK UNIFIED IDEOGRAPH +0x9594 0x90E8 #CJK UNIFIED IDEOGRAPH +0x9595 0x5C01 #CJK UNIFIED IDEOGRAPH +0x9596 0x6953 #CJK UNIFIED IDEOGRAPH +0x9597 0x98A8 #CJK UNIFIED IDEOGRAPH +0x9598 0x847A #CJK UNIFIED IDEOGRAPH +0x9599 0x8557 #CJK UNIFIED IDEOGRAPH +0x959A 0x4F0F #CJK UNIFIED IDEOGRAPH +0x959B 0x526F #CJK UNIFIED IDEOGRAPH +0x959C 0x5FA9 #CJK UNIFIED IDEOGRAPH +0x959D 0x5E45 #CJK UNIFIED IDEOGRAPH +0x959E 0x670D #CJK UNIFIED IDEOGRAPH +0x959F 0x798F #CJK UNIFIED IDEOGRAPH +0x95A0 0x8179 #CJK UNIFIED IDEOGRAPH +0x95A1 0x8907 #CJK UNIFIED IDEOGRAPH +0x95A2 0x8986 #CJK UNIFIED IDEOGRAPH +0x95A3 0x6DF5 #CJK UNIFIED IDEOGRAPH +0x95A4 0x5F17 #CJK UNIFIED IDEOGRAPH +0x95A5 0x6255 #CJK UNIFIED IDEOGRAPH +0x95A6 0x6CB8 #CJK UNIFIED IDEOGRAPH +0x95A7 0x4ECF #CJK UNIFIED IDEOGRAPH +0x95A8 0x7269 #CJK UNIFIED IDEOGRAPH +0x95A9 0x9B92 #CJK UNIFIED IDEOGRAPH +0x95AA 0x5206 #CJK UNIFIED IDEOGRAPH +0x95AB 0x543B #CJK UNIFIED IDEOGRAPH +0x95AC 0x5674 #CJK UNIFIED IDEOGRAPH +0x95AD 0x58B3 #CJK UNIFIED IDEOGRAPH +0x95AE 0x61A4 #CJK UNIFIED IDEOGRAPH +0x95AF 0x626E #CJK UNIFIED IDEOGRAPH +0x95B0 0x711A #CJK UNIFIED IDEOGRAPH +0x95B1 0x596E #CJK UNIFIED IDEOGRAPH +0x95B2 0x7C89 #CJK UNIFIED IDEOGRAPH +0x95B3 0x7CDE #CJK UNIFIED IDEOGRAPH +0x95B4 0x7D1B #CJK UNIFIED IDEOGRAPH +0x95B5 0x96F0 #CJK UNIFIED IDEOGRAPH +0x95B6 0x6587 #CJK UNIFIED IDEOGRAPH +0x95B7 0x805E #CJK UNIFIED IDEOGRAPH +0x95B8 0x4E19 #CJK UNIFIED IDEOGRAPH +0x95B9 0x4F75 #CJK UNIFIED IDEOGRAPH +0x95BA 0x5175 #CJK UNIFIED IDEOGRAPH +0x95BB 0x5840 #CJK UNIFIED IDEOGRAPH +0x95BC 0x5E63 #CJK UNIFIED IDEOGRAPH +0x95BD 0x5E73 #CJK UNIFIED IDEOGRAPH +0x95BE 0x5F0A #CJK UNIFIED IDEOGRAPH +0x95BF 0x67C4 #CJK UNIFIED IDEOGRAPH +0x95C0 0x4E26 #CJK UNIFIED IDEOGRAPH +0x95C1 0x853D #CJK UNIFIED IDEOGRAPH +0x95C2 0x9589 #CJK UNIFIED IDEOGRAPH +0x95C3 0x965B #CJK UNIFIED IDEOGRAPH +0x95C4 0x7C73 #CJK UNIFIED IDEOGRAPH +0x95C5 0x9801 #CJK UNIFIED IDEOGRAPH +0x95C6 0x50FB #CJK UNIFIED IDEOGRAPH +0x95C7 0x58C1 #CJK UNIFIED IDEOGRAPH +0x95C8 0x7656 #CJK UNIFIED IDEOGRAPH +0x95C9 0x78A7 #CJK UNIFIED IDEOGRAPH +0x95CA 0x5225 #CJK UNIFIED IDEOGRAPH +0x95CB 0x77A5 #CJK UNIFIED IDEOGRAPH +0x95CC 0x8511 #CJK UNIFIED IDEOGRAPH +0x95CD 0x7B86 #CJK UNIFIED IDEOGRAPH +0x95CE 0x504F #CJK UNIFIED IDEOGRAPH +0x95CF 0x5909 #CJK UNIFIED IDEOGRAPH +0x95D0 0x7247 #CJK UNIFIED IDEOGRAPH +0x95D1 0x7BC7 #CJK UNIFIED IDEOGRAPH +0x95D2 0x7DE8 #CJK UNIFIED IDEOGRAPH +0x95D3 0x8FBA #CJK UNIFIED IDEOGRAPH +0x95D4 0x8FD4 #CJK UNIFIED IDEOGRAPH +0x95D5 0x904D #CJK UNIFIED IDEOGRAPH +0x95D6 0x4FBF #CJK UNIFIED IDEOGRAPH +0x95D7 0x52C9 #CJK UNIFIED IDEOGRAPH +0x95D8 0x5A29 #CJK UNIFIED IDEOGRAPH +0x95D9 0x5F01 #CJK UNIFIED IDEOGRAPH +0x95DA 0x97AD #CJK UNIFIED IDEOGRAPH +0x95DB 0x4FDD #CJK UNIFIED IDEOGRAPH +0x95DC 0x8217 #CJK UNIFIED IDEOGRAPH +0x95DD 0x92EA #CJK UNIFIED IDEOGRAPH +0x95DE 0x5703 #CJK UNIFIED IDEOGRAPH +0x95DF 0x6355 #CJK UNIFIED IDEOGRAPH +0x95E0 0x6B69 #CJK UNIFIED IDEOGRAPH +0x95E1 0x752B #CJK UNIFIED IDEOGRAPH +0x95E2 0x88DC #CJK UNIFIED IDEOGRAPH +0x95E3 0x8F14 #CJK UNIFIED IDEOGRAPH +0x95E4 0x7A42 #CJK UNIFIED IDEOGRAPH +0x95E5 0x52DF #CJK UNIFIED IDEOGRAPH +0x95E6 0x5893 #CJK UNIFIED IDEOGRAPH +0x95E7 0x6155 #CJK UNIFIED IDEOGRAPH +0x95E8 0x620A #CJK UNIFIED IDEOGRAPH +0x95E9 0x66AE #CJK UNIFIED IDEOGRAPH +0x95EA 0x6BCD #CJK UNIFIED IDEOGRAPH +0x95EB 0x7C3F #CJK UNIFIED IDEOGRAPH +0x95EC 0x83E9 #CJK UNIFIED IDEOGRAPH +0x95ED 0x5023 #CJK UNIFIED IDEOGRAPH +0x95EE 0x4FF8 #CJK UNIFIED IDEOGRAPH +0x95EF 0x5305 #CJK UNIFIED IDEOGRAPH +0x95F0 0x5446 #CJK UNIFIED IDEOGRAPH +0x95F1 0x5831 #CJK UNIFIED IDEOGRAPH +0x95F2 0x5949 #CJK UNIFIED IDEOGRAPH +0x95F3 0x5B9D #CJK UNIFIED IDEOGRAPH +0x95F4 0x5CF0 #CJK UNIFIED IDEOGRAPH +0x95F5 0x5CEF #CJK UNIFIED IDEOGRAPH +0x95F6 0x5D29 #CJK UNIFIED IDEOGRAPH +0x95F7 0x5E96 #CJK UNIFIED IDEOGRAPH +0x95F8 0x62B1 #CJK UNIFIED IDEOGRAPH +0x95F9 0x6367 #CJK UNIFIED IDEOGRAPH +0x95FA 0x653E #CJK UNIFIED IDEOGRAPH +0x95FB 0x65B9 #CJK UNIFIED IDEOGRAPH +0x95FC 0x670B #CJK UNIFIED IDEOGRAPH +0x9640 0x6CD5 #CJK UNIFIED IDEOGRAPH +0x9641 0x6CE1 #CJK UNIFIED IDEOGRAPH +0x9642 0x70F9 #CJK UNIFIED IDEOGRAPH +0x9643 0x7832 #CJK UNIFIED IDEOGRAPH +0x9644 0x7E2B #CJK UNIFIED IDEOGRAPH +0x9645 0x80DE #CJK UNIFIED IDEOGRAPH +0x9646 0x82B3 #CJK UNIFIED IDEOGRAPH +0x9647 0x840C #CJK UNIFIED IDEOGRAPH +0x9648 0x84EC #CJK UNIFIED IDEOGRAPH +0x9649 0x8702 #CJK UNIFIED IDEOGRAPH +0x964A 0x8912 #CJK UNIFIED IDEOGRAPH +0x964B 0x8A2A #CJK UNIFIED IDEOGRAPH +0x964C 0x8C4A #CJK UNIFIED IDEOGRAPH +0x964D 0x90A6 #CJK UNIFIED IDEOGRAPH +0x964E 0x92D2 #CJK UNIFIED IDEOGRAPH +0x964F 0x98FD #CJK UNIFIED IDEOGRAPH +0x9650 0x9CF3 #CJK UNIFIED IDEOGRAPH +0x9651 0x9D6C #CJK UNIFIED IDEOGRAPH +0x9652 0x4E4F #CJK UNIFIED IDEOGRAPH +0x9653 0x4EA1 #CJK UNIFIED IDEOGRAPH +0x9654 0x508D #CJK UNIFIED IDEOGRAPH +0x9655 0x5256 #CJK UNIFIED IDEOGRAPH +0x9656 0x574A #CJK UNIFIED IDEOGRAPH +0x9657 0x59A8 #CJK UNIFIED IDEOGRAPH +0x9658 0x5E3D #CJK UNIFIED IDEOGRAPH +0x9659 0x5FD8 #CJK UNIFIED IDEOGRAPH +0x965A 0x5FD9 #CJK UNIFIED IDEOGRAPH +0x965B 0x623F #CJK UNIFIED IDEOGRAPH +0x965C 0x66B4 #CJK UNIFIED IDEOGRAPH +0x965D 0x671B #CJK UNIFIED IDEOGRAPH +0x965E 0x67D0 #CJK UNIFIED IDEOGRAPH +0x965F 0x68D2 #CJK UNIFIED IDEOGRAPH +0x9660 0x5192 #CJK UNIFIED IDEOGRAPH +0x9661 0x7D21 #CJK UNIFIED IDEOGRAPH +0x9662 0x80AA #CJK UNIFIED IDEOGRAPH +0x9663 0x81A8 #CJK UNIFIED IDEOGRAPH +0x9664 0x8B00 #CJK UNIFIED IDEOGRAPH +0x9665 0x8C8C #CJK UNIFIED IDEOGRAPH +0x9666 0x8CBF #CJK UNIFIED IDEOGRAPH +0x9667 0x927E #CJK UNIFIED IDEOGRAPH +0x9668 0x9632 #CJK UNIFIED IDEOGRAPH +0x9669 0x5420 #CJK UNIFIED IDEOGRAPH +0x966A 0x982C #CJK UNIFIED IDEOGRAPH +0x966B 0x5317 #CJK UNIFIED IDEOGRAPH +0x966C 0x50D5 #CJK UNIFIED IDEOGRAPH +0x966D 0x535C #CJK UNIFIED IDEOGRAPH +0x966E 0x58A8 #CJK UNIFIED IDEOGRAPH +0x966F 0x64B2 #CJK UNIFIED IDEOGRAPH +0x9670 0x6734 #CJK UNIFIED IDEOGRAPH +0x9671 0x7267 #CJK UNIFIED IDEOGRAPH +0x9672 0x7766 #CJK UNIFIED IDEOGRAPH +0x9673 0x7A46 #CJK UNIFIED IDEOGRAPH +0x9674 0x91E6 #CJK UNIFIED IDEOGRAPH +0x9675 0x52C3 #CJK UNIFIED IDEOGRAPH +0x9676 0x6CA1 #CJK UNIFIED IDEOGRAPH +0x9677 0x6B86 #CJK UNIFIED IDEOGRAPH +0x9678 0x5800 #CJK UNIFIED IDEOGRAPH +0x9679 0x5E4C #CJK UNIFIED IDEOGRAPH +0x967A 0x5954 #CJK UNIFIED IDEOGRAPH +0x967B 0x672C #CJK UNIFIED IDEOGRAPH +0x967C 0x7FFB #CJK UNIFIED IDEOGRAPH +0x967D 0x51E1 #CJK UNIFIED IDEOGRAPH +0x967E 0x76C6 #CJK UNIFIED IDEOGRAPH +0x9680 0x6469 #CJK UNIFIED IDEOGRAPH +0x9681 0x78E8 #CJK UNIFIED IDEOGRAPH +0x9682 0x9B54 #CJK UNIFIED IDEOGRAPH +0x9683 0x9EBB #CJK UNIFIED IDEOGRAPH +0x9684 0x57CB #CJK UNIFIED IDEOGRAPH +0x9685 0x59B9 #CJK UNIFIED IDEOGRAPH +0x9686 0x6627 #CJK UNIFIED IDEOGRAPH +0x9687 0x679A #CJK UNIFIED IDEOGRAPH +0x9688 0x6BCE #CJK UNIFIED IDEOGRAPH +0x9689 0x54E9 #CJK UNIFIED IDEOGRAPH +0x968A 0x69D9 #CJK UNIFIED IDEOGRAPH +0x968B 0x5E55 #CJK UNIFIED IDEOGRAPH +0x968C 0x819C #CJK UNIFIED IDEOGRAPH +0x968D 0x6795 #CJK UNIFIED IDEOGRAPH +0x968E 0x9BAA #CJK UNIFIED IDEOGRAPH +0x968F 0x67FE #CJK UNIFIED IDEOGRAPH +0x9690 0x9C52 #CJK UNIFIED IDEOGRAPH +0x9691 0x685D #CJK UNIFIED IDEOGRAPH +0x9692 0x4EA6 #CJK UNIFIED IDEOGRAPH +0x9693 0x4FE3 #CJK UNIFIED IDEOGRAPH +0x9694 0x53C8 #CJK UNIFIED IDEOGRAPH +0x9695 0x62B9 #CJK UNIFIED IDEOGRAPH +0x9696 0x672B #CJK UNIFIED IDEOGRAPH +0x9697 0x6CAB #CJK UNIFIED IDEOGRAPH +0x9698 0x8FC4 #CJK UNIFIED IDEOGRAPH +0x9699 0x4FAD #CJK UNIFIED IDEOGRAPH +0x969A 0x7E6D #CJK UNIFIED IDEOGRAPH +0x969B 0x9EBF #CJK UNIFIED IDEOGRAPH +0x969C 0x4E07 #CJK UNIFIED IDEOGRAPH +0x969D 0x6162 #CJK UNIFIED IDEOGRAPH +0x969E 0x6E80 #CJK UNIFIED IDEOGRAPH +0x969F 0x6F2B #CJK UNIFIED IDEOGRAPH +0x96A0 0x8513 #CJK UNIFIED IDEOGRAPH +0x96A1 0x5473 #CJK UNIFIED IDEOGRAPH +0x96A2 0x672A #CJK UNIFIED IDEOGRAPH +0x96A3 0x9B45 #CJK UNIFIED IDEOGRAPH +0x96A4 0x5DF3 #CJK UNIFIED IDEOGRAPH +0x96A5 0x7B95 #CJK UNIFIED IDEOGRAPH +0x96A6 0x5CAC #CJK UNIFIED IDEOGRAPH +0x96A7 0x5BC6 #CJK UNIFIED IDEOGRAPH +0x96A8 0x871C #CJK UNIFIED IDEOGRAPH +0x96A9 0x6E4A #CJK UNIFIED IDEOGRAPH +0x96AA 0x84D1 #CJK UNIFIED IDEOGRAPH +0x96AB 0x7A14 #CJK UNIFIED IDEOGRAPH +0x96AC 0x8108 #CJK UNIFIED IDEOGRAPH +0x96AD 0x5999 #CJK UNIFIED IDEOGRAPH +0x96AE 0x7C8D #CJK UNIFIED IDEOGRAPH +0x96AF 0x6C11 #CJK UNIFIED IDEOGRAPH +0x96B0 0x7720 #CJK UNIFIED IDEOGRAPH +0x96B1 0x52D9 #CJK UNIFIED IDEOGRAPH +0x96B2 0x5922 #CJK UNIFIED IDEOGRAPH +0x96B3 0x7121 #CJK UNIFIED IDEOGRAPH +0x96B4 0x725F #CJK UNIFIED IDEOGRAPH +0x96B5 0x77DB #CJK UNIFIED IDEOGRAPH +0x96B6 0x9727 #CJK UNIFIED IDEOGRAPH +0x96B7 0x9D61 #CJK UNIFIED IDEOGRAPH +0x96B8 0x690B #CJK UNIFIED IDEOGRAPH +0x96B9 0x5A7F #CJK UNIFIED IDEOGRAPH +0x96BA 0x5A18 #CJK UNIFIED IDEOGRAPH +0x96BB 0x51A5 #CJK UNIFIED IDEOGRAPH +0x96BC 0x540D #CJK UNIFIED IDEOGRAPH +0x96BD 0x547D #CJK UNIFIED IDEOGRAPH +0x96BE 0x660E #CJK UNIFIED IDEOGRAPH +0x96BF 0x76DF #CJK UNIFIED IDEOGRAPH +0x96C0 0x8FF7 #CJK UNIFIED IDEOGRAPH +0x96C1 0x9298 #CJK UNIFIED IDEOGRAPH +0x96C2 0x9CF4 #CJK UNIFIED IDEOGRAPH +0x96C3 0x59EA #CJK UNIFIED IDEOGRAPH +0x96C4 0x725D #CJK UNIFIED IDEOGRAPH +0x96C5 0x6EC5 #CJK UNIFIED IDEOGRAPH +0x96C6 0x514D #CJK UNIFIED IDEOGRAPH +0x96C7 0x68C9 #CJK UNIFIED IDEOGRAPH +0x96C8 0x7DBF #CJK UNIFIED IDEOGRAPH +0x96C9 0x7DEC #CJK UNIFIED IDEOGRAPH +0x96CA 0x9762 #CJK UNIFIED IDEOGRAPH +0x96CB 0x9EBA #CJK UNIFIED IDEOGRAPH +0x96CC 0x6478 #CJK UNIFIED IDEOGRAPH +0x96CD 0x6A21 #CJK UNIFIED IDEOGRAPH +0x96CE 0x8302 #CJK UNIFIED IDEOGRAPH +0x96CF 0x5984 #CJK UNIFIED IDEOGRAPH +0x96D0 0x5B5F #CJK UNIFIED IDEOGRAPH +0x96D1 0x6BDB #CJK UNIFIED IDEOGRAPH +0x96D2 0x731B #CJK UNIFIED IDEOGRAPH +0x96D3 0x76F2 #CJK UNIFIED IDEOGRAPH +0x96D4 0x7DB2 #CJK UNIFIED IDEOGRAPH +0x96D5 0x8017 #CJK UNIFIED IDEOGRAPH +0x96D6 0x8499 #CJK UNIFIED IDEOGRAPH +0x96D7 0x5132 #CJK UNIFIED IDEOGRAPH +0x96D8 0x6728 #CJK UNIFIED IDEOGRAPH +0x96D9 0x9ED9 #CJK UNIFIED IDEOGRAPH +0x96DA 0x76EE #CJK UNIFIED IDEOGRAPH +0x96DB 0x6762 #CJK UNIFIED IDEOGRAPH +0x96DC 0x52FF #CJK UNIFIED IDEOGRAPH +0x96DD 0x9905 #CJK UNIFIED IDEOGRAPH +0x96DE 0x5C24 #CJK UNIFIED IDEOGRAPH +0x96DF 0x623B #CJK UNIFIED IDEOGRAPH +0x96E0 0x7C7E #CJK UNIFIED IDEOGRAPH +0x96E1 0x8CB0 #CJK UNIFIED IDEOGRAPH +0x96E2 0x554F #CJK UNIFIED IDEOGRAPH +0x96E3 0x60B6 #CJK UNIFIED IDEOGRAPH +0x96E4 0x7D0B #CJK UNIFIED IDEOGRAPH +0x96E5 0x9580 #CJK UNIFIED IDEOGRAPH +0x96E6 0x5301 #CJK UNIFIED IDEOGRAPH +0x96E7 0x4E5F #CJK UNIFIED IDEOGRAPH +0x96E8 0x51B6 #CJK UNIFIED IDEOGRAPH +0x96E9 0x591C #CJK UNIFIED IDEOGRAPH +0x96EA 0x723A #CJK UNIFIED IDEOGRAPH +0x96EB 0x8036 #CJK UNIFIED IDEOGRAPH +0x96EC 0x91CE #CJK UNIFIED IDEOGRAPH +0x96ED 0x5F25 #CJK UNIFIED IDEOGRAPH +0x96EE 0x77E2 #CJK UNIFIED IDEOGRAPH +0x96EF 0x5384 #CJK UNIFIED IDEOGRAPH +0x96F0 0x5F79 #CJK UNIFIED IDEOGRAPH +0x96F1 0x7D04 #CJK UNIFIED IDEOGRAPH +0x96F2 0x85AC #CJK UNIFIED IDEOGRAPH +0x96F3 0x8A33 #CJK UNIFIED IDEOGRAPH +0x96F4 0x8E8D #CJK UNIFIED IDEOGRAPH +0x96F5 0x9756 #CJK UNIFIED IDEOGRAPH +0x96F6 0x67F3 #CJK UNIFIED IDEOGRAPH +0x96F7 0x85AE #CJK UNIFIED IDEOGRAPH +0x96F8 0x9453 #CJK UNIFIED IDEOGRAPH +0x96F9 0x6109 #CJK UNIFIED IDEOGRAPH +0x96FA 0x6108 #CJK UNIFIED IDEOGRAPH +0x96FB 0x6CB9 #CJK UNIFIED IDEOGRAPH +0x96FC 0x7652 #CJK UNIFIED IDEOGRAPH +0x9740 0x8AED #CJK UNIFIED IDEOGRAPH +0x9741 0x8F38 #CJK UNIFIED IDEOGRAPH +0x9742 0x552F #CJK UNIFIED IDEOGRAPH +0x9743 0x4F51 #CJK UNIFIED IDEOGRAPH +0x9744 0x512A #CJK UNIFIED IDEOGRAPH +0x9745 0x52C7 #CJK UNIFIED IDEOGRAPH +0x9746 0x53CB #CJK UNIFIED IDEOGRAPH +0x9747 0x5BA5 #CJK UNIFIED IDEOGRAPH +0x9748 0x5E7D #CJK UNIFIED IDEOGRAPH +0x9749 0x60A0 #CJK UNIFIED IDEOGRAPH +0x974A 0x6182 #CJK UNIFIED IDEOGRAPH +0x974B 0x63D6 #CJK UNIFIED IDEOGRAPH +0x974C 0x6709 #CJK UNIFIED IDEOGRAPH +0x974D 0x67DA #CJK UNIFIED IDEOGRAPH +0x974E 0x6E67 #CJK UNIFIED IDEOGRAPH +0x974F 0x6D8C #CJK UNIFIED IDEOGRAPH +0x9750 0x7336 #CJK UNIFIED IDEOGRAPH +0x9751 0x7337 #CJK UNIFIED IDEOGRAPH +0x9752 0x7531 #CJK UNIFIED IDEOGRAPH +0x9753 0x7950 #CJK UNIFIED IDEOGRAPH +0x9754 0x88D5 #CJK UNIFIED IDEOGRAPH +0x9755 0x8A98 #CJK UNIFIED IDEOGRAPH +0x9756 0x904A #CJK UNIFIED IDEOGRAPH +0x9757 0x9091 #CJK UNIFIED IDEOGRAPH +0x9758 0x90F5 #CJK UNIFIED IDEOGRAPH +0x9759 0x96C4 #CJK UNIFIED IDEOGRAPH +0x975A 0x878D #CJK UNIFIED IDEOGRAPH +0x975B 0x5915 #CJK UNIFIED IDEOGRAPH +0x975C 0x4E88 #CJK UNIFIED IDEOGRAPH +0x975D 0x4F59 #CJK UNIFIED IDEOGRAPH +0x975E 0x4E0E #CJK UNIFIED IDEOGRAPH +0x975F 0x8A89 #CJK UNIFIED IDEOGRAPH +0x9760 0x8F3F #CJK UNIFIED IDEOGRAPH +0x9761 0x9810 #CJK UNIFIED IDEOGRAPH +0x9762 0x50AD #CJK UNIFIED IDEOGRAPH +0x9763 0x5E7C #CJK UNIFIED IDEOGRAPH +0x9764 0x5996 #CJK UNIFIED IDEOGRAPH +0x9765 0x5BB9 #CJK UNIFIED IDEOGRAPH +0x9766 0x5EB8 #CJK UNIFIED IDEOGRAPH +0x9767 0x63DA #CJK UNIFIED IDEOGRAPH +0x9768 0x63FA #CJK UNIFIED IDEOGRAPH +0x9769 0x64C1 #CJK UNIFIED IDEOGRAPH +0x976A 0x66DC #CJK UNIFIED IDEOGRAPH +0x976B 0x694A #CJK UNIFIED IDEOGRAPH +0x976C 0x69D8 #CJK UNIFIED IDEOGRAPH +0x976D 0x6D0B #CJK UNIFIED IDEOGRAPH +0x976E 0x6EB6 #CJK UNIFIED IDEOGRAPH +0x976F 0x7194 #CJK UNIFIED IDEOGRAPH +0x9770 0x7528 #CJK UNIFIED IDEOGRAPH +0x9771 0x7AAF #CJK UNIFIED IDEOGRAPH +0x9772 0x7F8A #CJK UNIFIED IDEOGRAPH +0x9773 0x8000 #CJK UNIFIED IDEOGRAPH +0x9774 0x8449 #CJK UNIFIED IDEOGRAPH +0x9775 0x84C9 #CJK UNIFIED IDEOGRAPH +0x9776 0x8981 #CJK UNIFIED IDEOGRAPH +0x9777 0x8B21 #CJK UNIFIED IDEOGRAPH +0x9778 0x8E0A #CJK UNIFIED IDEOGRAPH +0x9779 0x9065 #CJK UNIFIED IDEOGRAPH +0x977A 0x967D #CJK UNIFIED IDEOGRAPH +0x977B 0x990A #CJK UNIFIED IDEOGRAPH +0x977C 0x617E #CJK UNIFIED IDEOGRAPH +0x977D 0x6291 #CJK UNIFIED IDEOGRAPH +0x977E 0x6B32 #CJK UNIFIED IDEOGRAPH +0x9780 0x6C83 #CJK UNIFIED IDEOGRAPH +0x9781 0x6D74 #CJK UNIFIED IDEOGRAPH +0x9782 0x7FCC #CJK UNIFIED IDEOGRAPH +0x9783 0x7FFC #CJK UNIFIED IDEOGRAPH +0x9784 0x6DC0 #CJK UNIFIED IDEOGRAPH +0x9785 0x7F85 #CJK UNIFIED IDEOGRAPH +0x9786 0x87BA #CJK UNIFIED IDEOGRAPH +0x9787 0x88F8 #CJK UNIFIED IDEOGRAPH +0x9788 0x6765 #CJK UNIFIED IDEOGRAPH +0x9789 0x83B1 #CJK UNIFIED IDEOGRAPH +0x978A 0x983C #CJK UNIFIED IDEOGRAPH +0x978B 0x96F7 #CJK UNIFIED IDEOGRAPH +0x978C 0x6D1B #CJK UNIFIED IDEOGRAPH +0x978D 0x7D61 #CJK UNIFIED IDEOGRAPH +0x978E 0x843D #CJK UNIFIED IDEOGRAPH +0x978F 0x916A #CJK UNIFIED IDEOGRAPH +0x9790 0x4E71 #CJK UNIFIED IDEOGRAPH +0x9791 0x5375 #CJK UNIFIED IDEOGRAPH +0x9792 0x5D50 #CJK UNIFIED IDEOGRAPH +0x9793 0x6B04 #CJK UNIFIED IDEOGRAPH +0x9794 0x6FEB #CJK UNIFIED IDEOGRAPH +0x9795 0x85CD #CJK UNIFIED IDEOGRAPH +0x9796 0x862D #CJK UNIFIED IDEOGRAPH +0x9797 0x89A7 #CJK UNIFIED IDEOGRAPH +0x9798 0x5229 #CJK UNIFIED IDEOGRAPH +0x9799 0x540F #CJK UNIFIED IDEOGRAPH +0x979A 0x5C65 #CJK UNIFIED IDEOGRAPH +0x979B 0x674E #CJK UNIFIED IDEOGRAPH +0x979C 0x68A8 #CJK UNIFIED IDEOGRAPH +0x979D 0x7406 #CJK UNIFIED IDEOGRAPH +0x979E 0x7483 #CJK UNIFIED IDEOGRAPH +0x979F 0x75E2 #CJK UNIFIED IDEOGRAPH +0x97A0 0x88CF #CJK UNIFIED IDEOGRAPH +0x97A1 0x88E1 #CJK UNIFIED IDEOGRAPH +0x97A2 0x91CC #CJK UNIFIED IDEOGRAPH +0x97A3 0x96E2 #CJK UNIFIED IDEOGRAPH +0x97A4 0x9678 #CJK UNIFIED IDEOGRAPH +0x97A5 0x5F8B #CJK UNIFIED IDEOGRAPH +0x97A6 0x7387 #CJK UNIFIED IDEOGRAPH +0x97A7 0x7ACB #CJK UNIFIED IDEOGRAPH +0x97A8 0x844E #CJK UNIFIED IDEOGRAPH +0x97A9 0x63A0 #CJK UNIFIED IDEOGRAPH +0x97AA 0x7565 #CJK UNIFIED IDEOGRAPH +0x97AB 0x5289 #CJK UNIFIED IDEOGRAPH +0x97AC 0x6D41 #CJK UNIFIED IDEOGRAPH +0x97AD 0x6E9C #CJK UNIFIED IDEOGRAPH +0x97AE 0x7409 #CJK UNIFIED IDEOGRAPH +0x97AF 0x7559 #CJK UNIFIED IDEOGRAPH +0x97B0 0x786B #CJK UNIFIED IDEOGRAPH +0x97B1 0x7C92 #CJK UNIFIED IDEOGRAPH +0x97B2 0x9686 #CJK UNIFIED IDEOGRAPH +0x97B3 0x7ADC #CJK UNIFIED IDEOGRAPH +0x97B4 0x9F8D #CJK UNIFIED IDEOGRAPH +0x97B5 0x4FB6 #CJK UNIFIED IDEOGRAPH +0x97B6 0x616E #CJK UNIFIED IDEOGRAPH +0x97B7 0x65C5 #CJK UNIFIED IDEOGRAPH +0x97B8 0x865C #CJK UNIFIED IDEOGRAPH +0x97B9 0x4E86 #CJK UNIFIED IDEOGRAPH +0x97BA 0x4EAE #CJK UNIFIED IDEOGRAPH +0x97BB 0x50DA #CJK UNIFIED IDEOGRAPH +0x97BC 0x4E21 #CJK UNIFIED IDEOGRAPH +0x97BD 0x51CC #CJK UNIFIED IDEOGRAPH +0x97BE 0x5BEE #CJK UNIFIED IDEOGRAPH +0x97BF 0x6599 #CJK UNIFIED IDEOGRAPH +0x97C0 0x6881 #CJK UNIFIED IDEOGRAPH +0x97C1 0x6DBC #CJK UNIFIED IDEOGRAPH +0x97C2 0x731F #CJK UNIFIED IDEOGRAPH +0x97C3 0x7642 #CJK UNIFIED IDEOGRAPH +0x97C4 0x77AD #CJK UNIFIED IDEOGRAPH +0x97C5 0x7A1C #CJK UNIFIED IDEOGRAPH +0x97C6 0x7CE7 #CJK UNIFIED IDEOGRAPH +0x97C7 0x826F #CJK UNIFIED IDEOGRAPH +0x97C8 0x8AD2 #CJK UNIFIED IDEOGRAPH +0x97C9 0x907C #CJK UNIFIED IDEOGRAPH +0x97CA 0x91CF #CJK UNIFIED IDEOGRAPH +0x97CB 0x9675 #CJK UNIFIED IDEOGRAPH +0x97CC 0x9818 #CJK UNIFIED IDEOGRAPH +0x97CD 0x529B #CJK UNIFIED IDEOGRAPH +0x97CE 0x7DD1 #CJK UNIFIED IDEOGRAPH +0x97CF 0x502B #CJK UNIFIED IDEOGRAPH +0x97D0 0x5398 #CJK UNIFIED IDEOGRAPH +0x97D1 0x6797 #CJK UNIFIED IDEOGRAPH +0x97D2 0x6DCB #CJK UNIFIED IDEOGRAPH +0x97D3 0x71D0 #CJK UNIFIED IDEOGRAPH +0x97D4 0x7433 #CJK UNIFIED IDEOGRAPH +0x97D5 0x81E8 #CJK UNIFIED IDEOGRAPH +0x97D6 0x8F2A #CJK UNIFIED IDEOGRAPH +0x97D7 0x96A3 #CJK UNIFIED IDEOGRAPH +0x97D8 0x9C57 #CJK UNIFIED IDEOGRAPH +0x97D9 0x9E9F #CJK UNIFIED IDEOGRAPH +0x97DA 0x7460 #CJK UNIFIED IDEOGRAPH +0x97DB 0x5841 #CJK UNIFIED IDEOGRAPH +0x97DC 0x6D99 #CJK UNIFIED IDEOGRAPH +0x97DD 0x7D2F #CJK UNIFIED IDEOGRAPH +0x97DE 0x985E #CJK UNIFIED IDEOGRAPH +0x97DF 0x4EE4 #CJK UNIFIED IDEOGRAPH +0x97E0 0x4F36 #CJK UNIFIED IDEOGRAPH +0x97E1 0x4F8B #CJK UNIFIED IDEOGRAPH +0x97E2 0x51B7 #CJK UNIFIED IDEOGRAPH +0x97E3 0x52B1 #CJK UNIFIED IDEOGRAPH +0x97E4 0x5DBA #CJK UNIFIED IDEOGRAPH +0x97E5 0x601C #CJK UNIFIED IDEOGRAPH +0x97E6 0x73B2 #CJK UNIFIED IDEOGRAPH +0x97E7 0x793C #CJK UNIFIED IDEOGRAPH +0x97E8 0x82D3 #CJK UNIFIED IDEOGRAPH +0x97E9 0x9234 #CJK UNIFIED IDEOGRAPH +0x97EA 0x96B7 #CJK UNIFIED IDEOGRAPH +0x97EB 0x96F6 #CJK UNIFIED IDEOGRAPH +0x97EC 0x970A #CJK UNIFIED IDEOGRAPH +0x97ED 0x9E97 #CJK UNIFIED IDEOGRAPH +0x97EE 0x9F62 #CJK UNIFIED IDEOGRAPH +0x97EF 0x66A6 #CJK UNIFIED IDEOGRAPH +0x97F0 0x6B74 #CJK UNIFIED IDEOGRAPH +0x97F1 0x5217 #CJK UNIFIED IDEOGRAPH +0x97F2 0x52A3 #CJK UNIFIED IDEOGRAPH +0x97F3 0x70C8 #CJK UNIFIED IDEOGRAPH +0x97F4 0x88C2 #CJK UNIFIED IDEOGRAPH +0x97F5 0x5EC9 #CJK UNIFIED IDEOGRAPH +0x97F6 0x604B #CJK UNIFIED IDEOGRAPH +0x97F7 0x6190 #CJK UNIFIED IDEOGRAPH +0x97F8 0x6F23 #CJK UNIFIED IDEOGRAPH +0x97F9 0x7149 #CJK UNIFIED IDEOGRAPH +0x97FA 0x7C3E #CJK UNIFIED IDEOGRAPH +0x97FB 0x7DF4 #CJK UNIFIED IDEOGRAPH +0x97FC 0x806F #CJK UNIFIED IDEOGRAPH +0x9840 0x84EE #CJK UNIFIED IDEOGRAPH +0x9841 0x9023 #CJK UNIFIED IDEOGRAPH +0x9842 0x932C #CJK UNIFIED IDEOGRAPH +0x9843 0x5442 #CJK UNIFIED IDEOGRAPH +0x9844 0x9B6F #CJK UNIFIED IDEOGRAPH +0x9845 0x6AD3 #CJK UNIFIED IDEOGRAPH +0x9846 0x7089 #CJK UNIFIED IDEOGRAPH +0x9847 0x8CC2 #CJK UNIFIED IDEOGRAPH +0x9848 0x8DEF #CJK UNIFIED IDEOGRAPH +0x9849 0x9732 #CJK UNIFIED IDEOGRAPH +0x984A 0x52B4 #CJK UNIFIED IDEOGRAPH +0x984B 0x5A41 #CJK UNIFIED IDEOGRAPH +0x984C 0x5ECA #CJK UNIFIED IDEOGRAPH +0x984D 0x5F04 #CJK UNIFIED IDEOGRAPH +0x984E 0x6717 #CJK UNIFIED IDEOGRAPH +0x984F 0x697C #CJK UNIFIED IDEOGRAPH +0x9850 0x6994 #CJK UNIFIED IDEOGRAPH +0x9851 0x6D6A #CJK UNIFIED IDEOGRAPH +0x9852 0x6F0F #CJK UNIFIED IDEOGRAPH +0x9853 0x7262 #CJK UNIFIED IDEOGRAPH +0x9854 0x72FC #CJK UNIFIED IDEOGRAPH +0x9855 0x7BED #CJK UNIFIED IDEOGRAPH +0x9856 0x8001 #CJK UNIFIED IDEOGRAPH +0x9857 0x807E #CJK UNIFIED IDEOGRAPH +0x9858 0x874B #CJK UNIFIED IDEOGRAPH +0x9859 0x90CE #CJK UNIFIED IDEOGRAPH +0x985A 0x516D #CJK UNIFIED IDEOGRAPH +0x985B 0x9E93 #CJK UNIFIED IDEOGRAPH +0x985C 0x7984 #CJK UNIFIED IDEOGRAPH +0x985D 0x808B #CJK UNIFIED IDEOGRAPH +0x985E 0x9332 #CJK UNIFIED IDEOGRAPH +0x985F 0x8AD6 #CJK UNIFIED IDEOGRAPH +0x9860 0x502D #CJK UNIFIED IDEOGRAPH +0x9861 0x548C #CJK UNIFIED IDEOGRAPH +0x9862 0x8A71 #CJK UNIFIED IDEOGRAPH +0x9863 0x6B6A #CJK UNIFIED IDEOGRAPH +0x9864 0x8CC4 #CJK UNIFIED IDEOGRAPH +0x9865 0x8107 #CJK UNIFIED IDEOGRAPH +0x9866 0x60D1 #CJK UNIFIED IDEOGRAPH +0x9867 0x67A0 #CJK UNIFIED IDEOGRAPH +0x9868 0x9DF2 #CJK UNIFIED IDEOGRAPH +0x9869 0x4E99 #CJK UNIFIED IDEOGRAPH +0x986A 0x4E98 #CJK UNIFIED IDEOGRAPH +0x986B 0x9C10 #CJK UNIFIED IDEOGRAPH +0x986C 0x8A6B #CJK UNIFIED IDEOGRAPH +0x986D 0x85C1 #CJK UNIFIED IDEOGRAPH +0x986E 0x8568 #CJK UNIFIED IDEOGRAPH +0x986F 0x6900 #CJK UNIFIED IDEOGRAPH +0x9870 0x6E7E #CJK UNIFIED IDEOGRAPH +0x9871 0x7897 #CJK UNIFIED IDEOGRAPH +0x9872 0x8155 #CJK UNIFIED IDEOGRAPH +0x989F 0x5F0C #CJK UNIFIED IDEOGRAPH +0x98A0 0x4E10 #CJK UNIFIED IDEOGRAPH +0x98A1 0x4E15 #CJK UNIFIED IDEOGRAPH +0x98A2 0x4E2A #CJK UNIFIED IDEOGRAPH +0x98A3 0x4E31 #CJK UNIFIED IDEOGRAPH +0x98A4 0x4E36 #CJK UNIFIED IDEOGRAPH +0x98A5 0x4E3C #CJK UNIFIED IDEOGRAPH +0x98A6 0x4E3F #CJK UNIFIED IDEOGRAPH +0x98A7 0x4E42 #CJK UNIFIED IDEOGRAPH +0x98A8 0x4E56 #CJK UNIFIED IDEOGRAPH +0x98A9 0x4E58 #CJK UNIFIED IDEOGRAPH +0x98AA 0x4E82 #CJK UNIFIED IDEOGRAPH +0x98AB 0x4E85 #CJK UNIFIED IDEOGRAPH +0x98AC 0x8C6B #CJK UNIFIED IDEOGRAPH +0x98AD 0x4E8A #CJK UNIFIED IDEOGRAPH +0x98AE 0x8212 #CJK UNIFIED IDEOGRAPH +0x98AF 0x5F0D #CJK UNIFIED IDEOGRAPH +0x98B0 0x4E8E #CJK UNIFIED IDEOGRAPH +0x98B1 0x4E9E #CJK UNIFIED IDEOGRAPH +0x98B2 0x4E9F #CJK UNIFIED IDEOGRAPH +0x98B3 0x4EA0 #CJK UNIFIED IDEOGRAPH +0x98B4 0x4EA2 #CJK UNIFIED IDEOGRAPH +0x98B5 0x4EB0 #CJK UNIFIED IDEOGRAPH +0x98B6 0x4EB3 #CJK UNIFIED IDEOGRAPH +0x98B7 0x4EB6 #CJK UNIFIED IDEOGRAPH +0x98B8 0x4ECE #CJK UNIFIED IDEOGRAPH +0x98B9 0x4ECD #CJK UNIFIED IDEOGRAPH +0x98BA 0x4EC4 #CJK UNIFIED IDEOGRAPH +0x98BB 0x4EC6 #CJK UNIFIED IDEOGRAPH +0x98BC 0x4EC2 #CJK UNIFIED IDEOGRAPH +0x98BD 0x4ED7 #CJK UNIFIED IDEOGRAPH +0x98BE 0x4EDE #CJK UNIFIED IDEOGRAPH +0x98BF 0x4EED #CJK UNIFIED IDEOGRAPH +0x98C0 0x4EDF #CJK UNIFIED IDEOGRAPH +0x98C1 0x4EF7 #CJK UNIFIED IDEOGRAPH +0x98C2 0x4F09 #CJK UNIFIED IDEOGRAPH +0x98C3 0x4F5A #CJK UNIFIED IDEOGRAPH +0x98C4 0x4F30 #CJK UNIFIED IDEOGRAPH +0x98C5 0x4F5B #CJK UNIFIED IDEOGRAPH +0x98C6 0x4F5D #CJK UNIFIED IDEOGRAPH +0x98C7 0x4F57 #CJK UNIFIED IDEOGRAPH +0x98C8 0x4F47 #CJK UNIFIED IDEOGRAPH +0x98C9 0x4F76 #CJK UNIFIED IDEOGRAPH +0x98CA 0x4F88 #CJK UNIFIED IDEOGRAPH +0x98CB 0x4F8F #CJK UNIFIED IDEOGRAPH +0x98CC 0x4F98 #CJK UNIFIED IDEOGRAPH +0x98CD 0x4F7B #CJK UNIFIED IDEOGRAPH +0x98CE 0x4F69 #CJK UNIFIED IDEOGRAPH +0x98CF 0x4F70 #CJK UNIFIED IDEOGRAPH +0x98D0 0x4F91 #CJK UNIFIED IDEOGRAPH +0x98D1 0x4F6F #CJK UNIFIED IDEOGRAPH +0x98D2 0x4F86 #CJK UNIFIED IDEOGRAPH +0x98D3 0x4F96 #CJK UNIFIED IDEOGRAPH +0x98D4 0x5118 #CJK UNIFIED IDEOGRAPH +0x98D5 0x4FD4 #CJK UNIFIED IDEOGRAPH +0x98D6 0x4FDF #CJK UNIFIED IDEOGRAPH +0x98D7 0x4FCE #CJK UNIFIED IDEOGRAPH +0x98D8 0x4FD8 #CJK UNIFIED IDEOGRAPH +0x98D9 0x4FDB #CJK UNIFIED IDEOGRAPH +0x98DA 0x4FD1 #CJK UNIFIED IDEOGRAPH +0x98DB 0x4FDA #CJK UNIFIED IDEOGRAPH +0x98DC 0x4FD0 #CJK UNIFIED IDEOGRAPH +0x98DD 0x4FE4 #CJK UNIFIED IDEOGRAPH +0x98DE 0x4FE5 #CJK UNIFIED IDEOGRAPH +0x98DF 0x501A #CJK UNIFIED IDEOGRAPH +0x98E0 0x5028 #CJK UNIFIED IDEOGRAPH +0x98E1 0x5014 #CJK UNIFIED IDEOGRAPH +0x98E2 0x502A #CJK UNIFIED IDEOGRAPH +0x98E3 0x5025 #CJK UNIFIED IDEOGRAPH +0x98E4 0x5005 #CJK UNIFIED IDEOGRAPH +0x98E5 0x4F1C #CJK UNIFIED IDEOGRAPH +0x98E6 0x4FF6 #CJK UNIFIED IDEOGRAPH +0x98E7 0x5021 #CJK UNIFIED IDEOGRAPH +0x98E8 0x5029 #CJK UNIFIED IDEOGRAPH +0x98E9 0x502C #CJK UNIFIED IDEOGRAPH +0x98EA 0x4FFE #CJK UNIFIED IDEOGRAPH +0x98EB 0x4FEF #CJK UNIFIED IDEOGRAPH +0x98EC 0x5011 #CJK UNIFIED IDEOGRAPH +0x98ED 0x5006 #CJK UNIFIED IDEOGRAPH +0x98EE 0x5043 #CJK UNIFIED IDEOGRAPH +0x98EF 0x5047 #CJK UNIFIED IDEOGRAPH +0x98F0 0x6703 #CJK UNIFIED IDEOGRAPH +0x98F1 0x5055 #CJK UNIFIED IDEOGRAPH +0x98F2 0x5050 #CJK UNIFIED IDEOGRAPH +0x98F3 0x5048 #CJK UNIFIED IDEOGRAPH +0x98F4 0x505A #CJK UNIFIED IDEOGRAPH +0x98F5 0x5056 #CJK UNIFIED IDEOGRAPH +0x98F6 0x506C #CJK UNIFIED IDEOGRAPH +0x98F7 0x5078 #CJK UNIFIED IDEOGRAPH +0x98F8 0x5080 #CJK UNIFIED IDEOGRAPH +0x98F9 0x509A #CJK UNIFIED IDEOGRAPH +0x98FA 0x5085 #CJK UNIFIED IDEOGRAPH +0x98FB 0x50B4 #CJK UNIFIED IDEOGRAPH +0x98FC 0x50B2 #CJK UNIFIED IDEOGRAPH +0x9940 0x50C9 #CJK UNIFIED IDEOGRAPH +0x9941 0x50CA #CJK UNIFIED IDEOGRAPH +0x9942 0x50B3 #CJK UNIFIED IDEOGRAPH +0x9943 0x50C2 #CJK UNIFIED IDEOGRAPH +0x9944 0x50D6 #CJK UNIFIED IDEOGRAPH +0x9945 0x50DE #CJK UNIFIED IDEOGRAPH +0x9946 0x50E5 #CJK UNIFIED IDEOGRAPH +0x9947 0x50ED #CJK UNIFIED IDEOGRAPH +0x9948 0x50E3 #CJK UNIFIED IDEOGRAPH +0x9949 0x50EE #CJK UNIFIED IDEOGRAPH +0x994A 0x50F9 #CJK UNIFIED IDEOGRAPH +0x994B 0x50F5 #CJK UNIFIED IDEOGRAPH +0x994C 0x5109 #CJK UNIFIED IDEOGRAPH +0x994D 0x5101 #CJK UNIFIED IDEOGRAPH +0x994E 0x5102 #CJK UNIFIED IDEOGRAPH +0x994F 0x5116 #CJK UNIFIED IDEOGRAPH +0x9950 0x5115 #CJK UNIFIED IDEOGRAPH +0x9951 0x5114 #CJK UNIFIED IDEOGRAPH +0x9952 0x511A #CJK UNIFIED IDEOGRAPH +0x9953 0x5121 #CJK UNIFIED IDEOGRAPH +0x9954 0x513A #CJK UNIFIED IDEOGRAPH +0x9955 0x5137 #CJK UNIFIED IDEOGRAPH +0x9956 0x513C #CJK UNIFIED IDEOGRAPH +0x9957 0x513B #CJK UNIFIED IDEOGRAPH +0x9958 0x513F #CJK UNIFIED IDEOGRAPH +0x9959 0x5140 #CJK UNIFIED IDEOGRAPH +0x995A 0x5152 #CJK UNIFIED IDEOGRAPH +0x995B 0x514C #CJK UNIFIED IDEOGRAPH +0x995C 0x5154 #CJK UNIFIED IDEOGRAPH +0x995D 0x5162 #CJK UNIFIED IDEOGRAPH +0x995E 0x7AF8 #CJK UNIFIED IDEOGRAPH +0x995F 0x5169 #CJK UNIFIED IDEOGRAPH +0x9960 0x516A #CJK UNIFIED IDEOGRAPH +0x9961 0x516E #CJK UNIFIED IDEOGRAPH +0x9962 0x5180 #CJK UNIFIED IDEOGRAPH +0x9963 0x5182 #CJK UNIFIED IDEOGRAPH +0x9964 0x56D8 #CJK UNIFIED IDEOGRAPH +0x9965 0x518C #CJK UNIFIED IDEOGRAPH +0x9966 0x5189 #CJK UNIFIED IDEOGRAPH +0x9967 0x518F #CJK UNIFIED IDEOGRAPH +0x9968 0x5191 #CJK UNIFIED IDEOGRAPH +0x9969 0x5193 #CJK UNIFIED IDEOGRAPH +0x996A 0x5195 #CJK UNIFIED IDEOGRAPH +0x996B 0x5196 #CJK UNIFIED IDEOGRAPH +0x996C 0x51A4 #CJK UNIFIED IDEOGRAPH +0x996D 0x51A6 #CJK UNIFIED IDEOGRAPH +0x996E 0x51A2 #CJK UNIFIED IDEOGRAPH +0x996F 0x51A9 #CJK UNIFIED IDEOGRAPH +0x9970 0x51AA #CJK UNIFIED IDEOGRAPH +0x9971 0x51AB #CJK UNIFIED IDEOGRAPH +0x9972 0x51B3 #CJK UNIFIED IDEOGRAPH +0x9973 0x51B1 #CJK UNIFIED IDEOGRAPH +0x9974 0x51B2 #CJK UNIFIED IDEOGRAPH +0x9975 0x51B0 #CJK UNIFIED IDEOGRAPH +0x9976 0x51B5 #CJK UNIFIED IDEOGRAPH +0x9977 0x51BD #CJK UNIFIED IDEOGRAPH +0x9978 0x51C5 #CJK UNIFIED IDEOGRAPH +0x9979 0x51C9 #CJK UNIFIED IDEOGRAPH +0x997A 0x51DB #CJK UNIFIED IDEOGRAPH +0x997B 0x51E0 #CJK UNIFIED IDEOGRAPH +0x997C 0x8655 #CJK UNIFIED IDEOGRAPH +0x997D 0x51E9 #CJK UNIFIED IDEOGRAPH +0x997E 0x51ED #CJK UNIFIED IDEOGRAPH +0x9980 0x51F0 #CJK UNIFIED IDEOGRAPH +0x9981 0x51F5 #CJK UNIFIED IDEOGRAPH +0x9982 0x51FE #CJK UNIFIED IDEOGRAPH +0x9983 0x5204 #CJK UNIFIED IDEOGRAPH +0x9984 0x520B #CJK UNIFIED IDEOGRAPH +0x9985 0x5214 #CJK UNIFIED IDEOGRAPH +0x9986 0x520E #CJK UNIFIED IDEOGRAPH +0x9987 0x5227 #CJK UNIFIED IDEOGRAPH +0x9988 0x522A #CJK UNIFIED IDEOGRAPH +0x9989 0x522E #CJK UNIFIED IDEOGRAPH +0x998A 0x5233 #CJK UNIFIED IDEOGRAPH +0x998B 0x5239 #CJK UNIFIED IDEOGRAPH +0x998C 0x524F #CJK UNIFIED IDEOGRAPH +0x998D 0x5244 #CJK UNIFIED IDEOGRAPH +0x998E 0x524B #CJK UNIFIED IDEOGRAPH +0x998F 0x524C #CJK UNIFIED IDEOGRAPH +0x9990 0x525E #CJK UNIFIED IDEOGRAPH +0x9991 0x5254 #CJK UNIFIED IDEOGRAPH +0x9992 0x526A #CJK UNIFIED IDEOGRAPH +0x9993 0x5274 #CJK UNIFIED IDEOGRAPH +0x9994 0x5269 #CJK UNIFIED IDEOGRAPH +0x9995 0x5273 #CJK UNIFIED IDEOGRAPH +0x9996 0x527F #CJK UNIFIED IDEOGRAPH +0x9997 0x527D #CJK UNIFIED IDEOGRAPH +0x9998 0x528D #CJK UNIFIED IDEOGRAPH +0x9999 0x5294 #CJK UNIFIED IDEOGRAPH +0x999A 0x5292 #CJK UNIFIED IDEOGRAPH +0x999B 0x5271 #CJK UNIFIED IDEOGRAPH +0x999C 0x5288 #CJK UNIFIED IDEOGRAPH +0x999D 0x5291 #CJK UNIFIED IDEOGRAPH +0x999E 0x8FA8 #CJK UNIFIED IDEOGRAPH +0x999F 0x8FA7 #CJK UNIFIED IDEOGRAPH +0x99A0 0x52AC #CJK UNIFIED IDEOGRAPH +0x99A1 0x52AD #CJK UNIFIED IDEOGRAPH +0x99A2 0x52BC #CJK UNIFIED IDEOGRAPH +0x99A3 0x52B5 #CJK UNIFIED IDEOGRAPH +0x99A4 0x52C1 #CJK UNIFIED IDEOGRAPH +0x99A5 0x52CD #CJK UNIFIED IDEOGRAPH +0x99A6 0x52D7 #CJK UNIFIED IDEOGRAPH +0x99A7 0x52DE #CJK UNIFIED IDEOGRAPH +0x99A8 0x52E3 #CJK UNIFIED IDEOGRAPH +0x99A9 0x52E6 #CJK UNIFIED IDEOGRAPH +0x99AA 0x98ED #CJK UNIFIED IDEOGRAPH +0x99AB 0x52E0 #CJK UNIFIED IDEOGRAPH +0x99AC 0x52F3 #CJK UNIFIED IDEOGRAPH +0x99AD 0x52F5 #CJK UNIFIED IDEOGRAPH +0x99AE 0x52F8 #CJK UNIFIED IDEOGRAPH +0x99AF 0x52F9 #CJK UNIFIED IDEOGRAPH +0x99B0 0x5306 #CJK UNIFIED IDEOGRAPH +0x99B1 0x5308 #CJK UNIFIED IDEOGRAPH +0x99B2 0x7538 #CJK UNIFIED IDEOGRAPH +0x99B3 0x530D #CJK UNIFIED IDEOGRAPH +0x99B4 0x5310 #CJK UNIFIED IDEOGRAPH +0x99B5 0x530F #CJK UNIFIED IDEOGRAPH +0x99B6 0x5315 #CJK UNIFIED IDEOGRAPH +0x99B7 0x531A #CJK UNIFIED IDEOGRAPH +0x99B8 0x5323 #CJK UNIFIED IDEOGRAPH +0x99B9 0x532F #CJK UNIFIED IDEOGRAPH +0x99BA 0x5331 #CJK UNIFIED IDEOGRAPH +0x99BB 0x5333 #CJK UNIFIED IDEOGRAPH +0x99BC 0x5338 #CJK UNIFIED IDEOGRAPH +0x99BD 0x5340 #CJK UNIFIED IDEOGRAPH +0x99BE 0x5346 #CJK UNIFIED IDEOGRAPH +0x99BF 0x5345 #CJK UNIFIED IDEOGRAPH +0x99C0 0x4E17 #CJK UNIFIED IDEOGRAPH +0x99C1 0x5349 #CJK UNIFIED IDEOGRAPH +0x99C2 0x534D #CJK UNIFIED IDEOGRAPH +0x99C3 0x51D6 #CJK UNIFIED IDEOGRAPH +0x99C4 0x535E #CJK UNIFIED IDEOGRAPH +0x99C5 0x5369 #CJK UNIFIED IDEOGRAPH +0x99C6 0x536E #CJK UNIFIED IDEOGRAPH +0x99C7 0x5918 #CJK UNIFIED IDEOGRAPH +0x99C8 0x537B #CJK UNIFIED IDEOGRAPH +0x99C9 0x5377 #CJK UNIFIED IDEOGRAPH +0x99CA 0x5382 #CJK UNIFIED IDEOGRAPH +0x99CB 0x5396 #CJK UNIFIED IDEOGRAPH +0x99CC 0x53A0 #CJK UNIFIED IDEOGRAPH +0x99CD 0x53A6 #CJK UNIFIED IDEOGRAPH +0x99CE 0x53A5 #CJK UNIFIED IDEOGRAPH +0x99CF 0x53AE #CJK UNIFIED IDEOGRAPH +0x99D0 0x53B0 #CJK UNIFIED IDEOGRAPH +0x99D1 0x53B6 #CJK UNIFIED IDEOGRAPH +0x99D2 0x53C3 #CJK UNIFIED IDEOGRAPH +0x99D3 0x7C12 #CJK UNIFIED IDEOGRAPH +0x99D4 0x96D9 #CJK UNIFIED IDEOGRAPH +0x99D5 0x53DF #CJK UNIFIED IDEOGRAPH +0x99D6 0x66FC #CJK UNIFIED IDEOGRAPH +0x99D7 0x71EE #CJK UNIFIED IDEOGRAPH +0x99D8 0x53EE #CJK UNIFIED IDEOGRAPH +0x99D9 0x53E8 #CJK UNIFIED IDEOGRAPH +0x99DA 0x53ED #CJK UNIFIED IDEOGRAPH +0x99DB 0x53FA #CJK UNIFIED IDEOGRAPH +0x99DC 0x5401 #CJK UNIFIED IDEOGRAPH +0x99DD 0x543D #CJK UNIFIED IDEOGRAPH +0x99DE 0x5440 #CJK UNIFIED IDEOGRAPH +0x99DF 0x542C #CJK UNIFIED IDEOGRAPH +0x99E0 0x542D #CJK UNIFIED IDEOGRAPH +0x99E1 0x543C #CJK UNIFIED IDEOGRAPH +0x99E2 0x542E #CJK UNIFIED IDEOGRAPH +0x99E3 0x5436 #CJK UNIFIED IDEOGRAPH +0x99E4 0x5429 #CJK UNIFIED IDEOGRAPH +0x99E5 0x541D #CJK UNIFIED IDEOGRAPH +0x99E6 0x544E #CJK UNIFIED IDEOGRAPH +0x99E7 0x548F #CJK UNIFIED IDEOGRAPH +0x99E8 0x5475 #CJK UNIFIED IDEOGRAPH +0x99E9 0x548E #CJK UNIFIED IDEOGRAPH +0x99EA 0x545F #CJK UNIFIED IDEOGRAPH +0x99EB 0x5471 #CJK UNIFIED IDEOGRAPH +0x99EC 0x5477 #CJK UNIFIED IDEOGRAPH +0x99ED 0x5470 #CJK UNIFIED IDEOGRAPH +0x99EE 0x5492 #CJK UNIFIED IDEOGRAPH +0x99EF 0x547B #CJK UNIFIED IDEOGRAPH +0x99F0 0x5480 #CJK UNIFIED IDEOGRAPH +0x99F1 0x5476 #CJK UNIFIED IDEOGRAPH +0x99F2 0x5484 #CJK UNIFIED IDEOGRAPH +0x99F3 0x5490 #CJK UNIFIED IDEOGRAPH +0x99F4 0x5486 #CJK UNIFIED IDEOGRAPH +0x99F5 0x54C7 #CJK UNIFIED IDEOGRAPH +0x99F6 0x54A2 #CJK UNIFIED IDEOGRAPH +0x99F7 0x54B8 #CJK UNIFIED IDEOGRAPH +0x99F8 0x54A5 #CJK UNIFIED IDEOGRAPH +0x99F9 0x54AC #CJK UNIFIED IDEOGRAPH +0x99FA 0x54C4 #CJK UNIFIED IDEOGRAPH +0x99FB 0x54C8 #CJK UNIFIED IDEOGRAPH +0x99FC 0x54A8 #CJK UNIFIED IDEOGRAPH +0x9A40 0x54AB #CJK UNIFIED IDEOGRAPH +0x9A41 0x54C2 #CJK UNIFIED IDEOGRAPH +0x9A42 0x54A4 #CJK UNIFIED IDEOGRAPH +0x9A43 0x54BE #CJK UNIFIED IDEOGRAPH +0x9A44 0x54BC #CJK UNIFIED IDEOGRAPH +0x9A45 0x54D8 #CJK UNIFIED IDEOGRAPH +0x9A46 0x54E5 #CJK UNIFIED IDEOGRAPH +0x9A47 0x54E6 #CJK UNIFIED IDEOGRAPH +0x9A48 0x550F #CJK UNIFIED IDEOGRAPH +0x9A49 0x5514 #CJK UNIFIED IDEOGRAPH +0x9A4A 0x54FD #CJK UNIFIED IDEOGRAPH +0x9A4B 0x54EE #CJK UNIFIED IDEOGRAPH +0x9A4C 0x54ED #CJK UNIFIED IDEOGRAPH +0x9A4D 0x54FA #CJK UNIFIED IDEOGRAPH +0x9A4E 0x54E2 #CJK UNIFIED IDEOGRAPH +0x9A4F 0x5539 #CJK UNIFIED IDEOGRAPH +0x9A50 0x5540 #CJK UNIFIED IDEOGRAPH +0x9A51 0x5563 #CJK UNIFIED IDEOGRAPH +0x9A52 0x554C #CJK UNIFIED IDEOGRAPH +0x9A53 0x552E #CJK UNIFIED IDEOGRAPH +0x9A54 0x555C #CJK UNIFIED IDEOGRAPH +0x9A55 0x5545 #CJK UNIFIED IDEOGRAPH +0x9A56 0x5556 #CJK UNIFIED IDEOGRAPH +0x9A57 0x5557 #CJK UNIFIED IDEOGRAPH +0x9A58 0x5538 #CJK UNIFIED IDEOGRAPH +0x9A59 0x5533 #CJK UNIFIED IDEOGRAPH +0x9A5A 0x555D #CJK UNIFIED IDEOGRAPH +0x9A5B 0x5599 #CJK UNIFIED IDEOGRAPH +0x9A5C 0x5580 #CJK UNIFIED IDEOGRAPH +0x9A5D 0x54AF #CJK UNIFIED IDEOGRAPH +0x9A5E 0x558A #CJK UNIFIED IDEOGRAPH +0x9A5F 0x559F #CJK UNIFIED IDEOGRAPH +0x9A60 0x557B #CJK UNIFIED IDEOGRAPH +0x9A61 0x557E #CJK UNIFIED IDEOGRAPH +0x9A62 0x5598 #CJK UNIFIED IDEOGRAPH +0x9A63 0x559E #CJK UNIFIED IDEOGRAPH +0x9A64 0x55AE #CJK UNIFIED IDEOGRAPH +0x9A65 0x557C #CJK UNIFIED IDEOGRAPH +0x9A66 0x5583 #CJK UNIFIED IDEOGRAPH +0x9A67 0x55A9 #CJK UNIFIED IDEOGRAPH +0x9A68 0x5587 #CJK UNIFIED IDEOGRAPH +0x9A69 0x55A8 #CJK UNIFIED IDEOGRAPH +0x9A6A 0x55DA #CJK UNIFIED IDEOGRAPH +0x9A6B 0x55C5 #CJK UNIFIED IDEOGRAPH +0x9A6C 0x55DF #CJK UNIFIED IDEOGRAPH +0x9A6D 0x55C4 #CJK UNIFIED IDEOGRAPH +0x9A6E 0x55DC #CJK UNIFIED IDEOGRAPH +0x9A6F 0x55E4 #CJK UNIFIED IDEOGRAPH +0x9A70 0x55D4 #CJK UNIFIED IDEOGRAPH +0x9A71 0x5614 #CJK UNIFIED IDEOGRAPH +0x9A72 0x55F7 #CJK UNIFIED IDEOGRAPH +0x9A73 0x5616 #CJK UNIFIED IDEOGRAPH +0x9A74 0x55FE #CJK UNIFIED IDEOGRAPH +0x9A75 0x55FD #CJK UNIFIED IDEOGRAPH +0x9A76 0x561B #CJK UNIFIED IDEOGRAPH +0x9A77 0x55F9 #CJK UNIFIED IDEOGRAPH +0x9A78 0x564E #CJK UNIFIED IDEOGRAPH +0x9A79 0x5650 #CJK UNIFIED IDEOGRAPH +0x9A7A 0x71DF #CJK UNIFIED IDEOGRAPH +0x9A7B 0x5634 #CJK UNIFIED IDEOGRAPH +0x9A7C 0x5636 #CJK UNIFIED IDEOGRAPH +0x9A7D 0x5632 #CJK UNIFIED IDEOGRAPH +0x9A7E 0x5638 #CJK UNIFIED IDEOGRAPH +0x9A80 0x566B #CJK UNIFIED IDEOGRAPH +0x9A81 0x5664 #CJK UNIFIED IDEOGRAPH +0x9A82 0x562F #CJK UNIFIED IDEOGRAPH +0x9A83 0x566C #CJK UNIFIED IDEOGRAPH +0x9A84 0x566A #CJK UNIFIED IDEOGRAPH +0x9A85 0x5686 #CJK UNIFIED IDEOGRAPH +0x9A86 0x5680 #CJK UNIFIED IDEOGRAPH +0x9A87 0x568A #CJK UNIFIED IDEOGRAPH +0x9A88 0x56A0 #CJK UNIFIED IDEOGRAPH +0x9A89 0x5694 #CJK UNIFIED IDEOGRAPH +0x9A8A 0x568F #CJK UNIFIED IDEOGRAPH +0x9A8B 0x56A5 #CJK UNIFIED IDEOGRAPH +0x9A8C 0x56AE #CJK UNIFIED IDEOGRAPH +0x9A8D 0x56B6 #CJK UNIFIED IDEOGRAPH +0x9A8E 0x56B4 #CJK UNIFIED IDEOGRAPH +0x9A8F 0x56C2 #CJK UNIFIED IDEOGRAPH +0x9A90 0x56BC #CJK UNIFIED IDEOGRAPH +0x9A91 0x56C1 #CJK UNIFIED IDEOGRAPH +0x9A92 0x56C3 #CJK UNIFIED IDEOGRAPH +0x9A93 0x56C0 #CJK UNIFIED IDEOGRAPH +0x9A94 0x56C8 #CJK UNIFIED IDEOGRAPH +0x9A95 0x56CE #CJK UNIFIED IDEOGRAPH +0x9A96 0x56D1 #CJK UNIFIED IDEOGRAPH +0x9A97 0x56D3 #CJK UNIFIED IDEOGRAPH +0x9A98 0x56D7 #CJK UNIFIED IDEOGRAPH +0x9A99 0x56EE #CJK UNIFIED IDEOGRAPH +0x9A9A 0x56F9 #CJK UNIFIED IDEOGRAPH +0x9A9B 0x5700 #CJK UNIFIED IDEOGRAPH +0x9A9C 0x56FF #CJK UNIFIED IDEOGRAPH +0x9A9D 0x5704 #CJK UNIFIED IDEOGRAPH +0x9A9E 0x5709 #CJK UNIFIED IDEOGRAPH +0x9A9F 0x5708 #CJK UNIFIED IDEOGRAPH +0x9AA0 0x570B #CJK UNIFIED IDEOGRAPH +0x9AA1 0x570D #CJK UNIFIED IDEOGRAPH +0x9AA2 0x5713 #CJK UNIFIED IDEOGRAPH +0x9AA3 0x5718 #CJK UNIFIED IDEOGRAPH +0x9AA4 0x5716 #CJK UNIFIED IDEOGRAPH +0x9AA5 0x55C7 #CJK UNIFIED IDEOGRAPH +0x9AA6 0x571C #CJK UNIFIED IDEOGRAPH +0x9AA7 0x5726 #CJK UNIFIED IDEOGRAPH +0x9AA8 0x5737 #CJK UNIFIED IDEOGRAPH +0x9AA9 0x5738 #CJK UNIFIED IDEOGRAPH +0x9AAA 0x574E #CJK UNIFIED IDEOGRAPH +0x9AAB 0x573B #CJK UNIFIED IDEOGRAPH +0x9AAC 0x5740 #CJK UNIFIED IDEOGRAPH +0x9AAD 0x574F #CJK UNIFIED IDEOGRAPH +0x9AAE 0x5769 #CJK UNIFIED IDEOGRAPH +0x9AAF 0x57C0 #CJK UNIFIED IDEOGRAPH +0x9AB0 0x5788 #CJK UNIFIED IDEOGRAPH +0x9AB1 0x5761 #CJK UNIFIED IDEOGRAPH +0x9AB2 0x577F #CJK UNIFIED IDEOGRAPH +0x9AB3 0x5789 #CJK UNIFIED IDEOGRAPH +0x9AB4 0x5793 #CJK UNIFIED IDEOGRAPH +0x9AB5 0x57A0 #CJK UNIFIED IDEOGRAPH +0x9AB6 0x57B3 #CJK UNIFIED IDEOGRAPH +0x9AB7 0x57A4 #CJK UNIFIED IDEOGRAPH +0x9AB8 0x57AA #CJK UNIFIED IDEOGRAPH +0x9AB9 0x57B0 #CJK UNIFIED IDEOGRAPH +0x9ABA 0x57C3 #CJK UNIFIED IDEOGRAPH +0x9ABB 0x57C6 #CJK UNIFIED IDEOGRAPH +0x9ABC 0x57D4 #CJK UNIFIED IDEOGRAPH +0x9ABD 0x57D2 #CJK UNIFIED IDEOGRAPH +0x9ABE 0x57D3 #CJK UNIFIED IDEOGRAPH +0x9ABF 0x580A #CJK UNIFIED IDEOGRAPH +0x9AC0 0x57D6 #CJK UNIFIED IDEOGRAPH +0x9AC1 0x57E3 #CJK UNIFIED IDEOGRAPH +0x9AC2 0x580B #CJK UNIFIED IDEOGRAPH +0x9AC3 0x5819 #CJK UNIFIED IDEOGRAPH +0x9AC4 0x581D #CJK UNIFIED IDEOGRAPH +0x9AC5 0x5872 #CJK UNIFIED IDEOGRAPH +0x9AC6 0x5821 #CJK UNIFIED IDEOGRAPH +0x9AC7 0x5862 #CJK UNIFIED IDEOGRAPH +0x9AC8 0x584B #CJK UNIFIED IDEOGRAPH +0x9AC9 0x5870 #CJK UNIFIED IDEOGRAPH +0x9ACA 0x6BC0 #CJK UNIFIED IDEOGRAPH +0x9ACB 0x5852 #CJK UNIFIED IDEOGRAPH +0x9ACC 0x583D #CJK UNIFIED IDEOGRAPH +0x9ACD 0x5879 #CJK UNIFIED IDEOGRAPH +0x9ACE 0x5885 #CJK UNIFIED IDEOGRAPH +0x9ACF 0x58B9 #CJK UNIFIED IDEOGRAPH +0x9AD0 0x589F #CJK UNIFIED IDEOGRAPH +0x9AD1 0x58AB #CJK UNIFIED IDEOGRAPH +0x9AD2 0x58BA #CJK UNIFIED IDEOGRAPH +0x9AD3 0x58DE #CJK UNIFIED IDEOGRAPH +0x9AD4 0x58BB #CJK UNIFIED IDEOGRAPH +0x9AD5 0x58B8 #CJK UNIFIED IDEOGRAPH +0x9AD6 0x58AE #CJK UNIFIED IDEOGRAPH +0x9AD7 0x58C5 #CJK UNIFIED IDEOGRAPH +0x9AD8 0x58D3 #CJK UNIFIED IDEOGRAPH +0x9AD9 0x58D1 #CJK UNIFIED IDEOGRAPH +0x9ADA 0x58D7 #CJK UNIFIED IDEOGRAPH +0x9ADB 0x58D9 #CJK UNIFIED IDEOGRAPH +0x9ADC 0x58D8 #CJK UNIFIED IDEOGRAPH +0x9ADD 0x58E5 #CJK UNIFIED IDEOGRAPH +0x9ADE 0x58DC #CJK UNIFIED IDEOGRAPH +0x9ADF 0x58E4 #CJK UNIFIED IDEOGRAPH +0x9AE0 0x58DF #CJK UNIFIED IDEOGRAPH +0x9AE1 0x58EF #CJK UNIFIED IDEOGRAPH +0x9AE2 0x58FA #CJK UNIFIED IDEOGRAPH +0x9AE3 0x58F9 #CJK UNIFIED IDEOGRAPH +0x9AE4 0x58FB #CJK UNIFIED IDEOGRAPH +0x9AE5 0x58FC #CJK UNIFIED IDEOGRAPH +0x9AE6 0x58FD #CJK UNIFIED IDEOGRAPH +0x9AE7 0x5902 #CJK UNIFIED IDEOGRAPH +0x9AE8 0x590A #CJK UNIFIED IDEOGRAPH +0x9AE9 0x5910 #CJK UNIFIED IDEOGRAPH +0x9AEA 0x591B #CJK UNIFIED IDEOGRAPH +0x9AEB 0x68A6 #CJK UNIFIED IDEOGRAPH +0x9AEC 0x5925 #CJK UNIFIED IDEOGRAPH +0x9AED 0x592C #CJK UNIFIED IDEOGRAPH +0x9AEE 0x592D #CJK UNIFIED IDEOGRAPH +0x9AEF 0x5932 #CJK UNIFIED IDEOGRAPH +0x9AF0 0x5938 #CJK UNIFIED IDEOGRAPH +0x9AF1 0x593E #CJK UNIFIED IDEOGRAPH +0x9AF2 0x7AD2 #CJK UNIFIED IDEOGRAPH +0x9AF3 0x5955 #CJK UNIFIED IDEOGRAPH +0x9AF4 0x5950 #CJK UNIFIED IDEOGRAPH +0x9AF5 0x594E #CJK UNIFIED IDEOGRAPH +0x9AF6 0x595A #CJK UNIFIED IDEOGRAPH +0x9AF7 0x5958 #CJK UNIFIED IDEOGRAPH +0x9AF8 0x5962 #CJK UNIFIED IDEOGRAPH +0x9AF9 0x5960 #CJK UNIFIED IDEOGRAPH +0x9AFA 0x5967 #CJK UNIFIED IDEOGRAPH +0x9AFB 0x596C #CJK UNIFIED IDEOGRAPH +0x9AFC 0x5969 #CJK UNIFIED IDEOGRAPH +0x9B40 0x5978 #CJK UNIFIED IDEOGRAPH +0x9B41 0x5981 #CJK UNIFIED IDEOGRAPH +0x9B42 0x599D #CJK UNIFIED IDEOGRAPH +0x9B43 0x4F5E #CJK UNIFIED IDEOGRAPH +0x9B44 0x4FAB #CJK UNIFIED IDEOGRAPH +0x9B45 0x59A3 #CJK UNIFIED IDEOGRAPH +0x9B46 0x59B2 #CJK UNIFIED IDEOGRAPH +0x9B47 0x59C6 #CJK UNIFIED IDEOGRAPH +0x9B48 0x59E8 #CJK UNIFIED IDEOGRAPH +0x9B49 0x59DC #CJK UNIFIED IDEOGRAPH +0x9B4A 0x598D #CJK UNIFIED IDEOGRAPH +0x9B4B 0x59D9 #CJK UNIFIED IDEOGRAPH +0x9B4C 0x59DA #CJK UNIFIED IDEOGRAPH +0x9B4D 0x5A25 #CJK UNIFIED IDEOGRAPH +0x9B4E 0x5A1F #CJK UNIFIED IDEOGRAPH +0x9B4F 0x5A11 #CJK UNIFIED IDEOGRAPH +0x9B50 0x5A1C #CJK UNIFIED IDEOGRAPH +0x9B51 0x5A09 #CJK UNIFIED IDEOGRAPH +0x9B52 0x5A1A #CJK UNIFIED IDEOGRAPH +0x9B53 0x5A40 #CJK UNIFIED IDEOGRAPH +0x9B54 0x5A6C #CJK UNIFIED IDEOGRAPH +0x9B55 0x5A49 #CJK UNIFIED IDEOGRAPH +0x9B56 0x5A35 #CJK UNIFIED IDEOGRAPH +0x9B57 0x5A36 #CJK UNIFIED IDEOGRAPH +0x9B58 0x5A62 #CJK UNIFIED IDEOGRAPH +0x9B59 0x5A6A #CJK UNIFIED IDEOGRAPH +0x9B5A 0x5A9A #CJK UNIFIED IDEOGRAPH +0x9B5B 0x5ABC #CJK UNIFIED IDEOGRAPH +0x9B5C 0x5ABE #CJK UNIFIED IDEOGRAPH +0x9B5D 0x5ACB #CJK UNIFIED IDEOGRAPH +0x9B5E 0x5AC2 #CJK UNIFIED IDEOGRAPH +0x9B5F 0x5ABD #CJK UNIFIED IDEOGRAPH +0x9B60 0x5AE3 #CJK UNIFIED IDEOGRAPH +0x9B61 0x5AD7 #CJK UNIFIED IDEOGRAPH +0x9B62 0x5AE6 #CJK UNIFIED IDEOGRAPH +0x9B63 0x5AE9 #CJK UNIFIED IDEOGRAPH +0x9B64 0x5AD6 #CJK UNIFIED IDEOGRAPH +0x9B65 0x5AFA #CJK UNIFIED IDEOGRAPH +0x9B66 0x5AFB #CJK UNIFIED IDEOGRAPH +0x9B67 0x5B0C #CJK UNIFIED IDEOGRAPH +0x9B68 0x5B0B #CJK UNIFIED IDEOGRAPH +0x9B69 0x5B16 #CJK UNIFIED IDEOGRAPH +0x9B6A 0x5B32 #CJK UNIFIED IDEOGRAPH +0x9B6B 0x5AD0 #CJK UNIFIED IDEOGRAPH +0x9B6C 0x5B2A #CJK UNIFIED IDEOGRAPH +0x9B6D 0x5B36 #CJK UNIFIED IDEOGRAPH +0x9B6E 0x5B3E #CJK UNIFIED IDEOGRAPH +0x9B6F 0x5B43 #CJK UNIFIED IDEOGRAPH +0x9B70 0x5B45 #CJK UNIFIED IDEOGRAPH +0x9B71 0x5B40 #CJK UNIFIED IDEOGRAPH +0x9B72 0x5B51 #CJK UNIFIED IDEOGRAPH +0x9B73 0x5B55 #CJK UNIFIED IDEOGRAPH +0x9B74 0x5B5A #CJK UNIFIED IDEOGRAPH +0x9B75 0x5B5B #CJK UNIFIED IDEOGRAPH +0x9B76 0x5B65 #CJK UNIFIED IDEOGRAPH +0x9B77 0x5B69 #CJK UNIFIED IDEOGRAPH +0x9B78 0x5B70 #CJK UNIFIED IDEOGRAPH +0x9B79 0x5B73 #CJK UNIFIED IDEOGRAPH +0x9B7A 0x5B75 #CJK UNIFIED IDEOGRAPH +0x9B7B 0x5B78 #CJK UNIFIED IDEOGRAPH +0x9B7C 0x6588 #CJK UNIFIED IDEOGRAPH +0x9B7D 0x5B7A #CJK UNIFIED IDEOGRAPH +0x9B7E 0x5B80 #CJK UNIFIED IDEOGRAPH +0x9B80 0x5B83 #CJK UNIFIED IDEOGRAPH +0x9B81 0x5BA6 #CJK UNIFIED IDEOGRAPH +0x9B82 0x5BB8 #CJK UNIFIED IDEOGRAPH +0x9B83 0x5BC3 #CJK UNIFIED IDEOGRAPH +0x9B84 0x5BC7 #CJK UNIFIED IDEOGRAPH +0x9B85 0x5BC9 #CJK UNIFIED IDEOGRAPH +0x9B86 0x5BD4 #CJK UNIFIED IDEOGRAPH +0x9B87 0x5BD0 #CJK UNIFIED IDEOGRAPH +0x9B88 0x5BE4 #CJK UNIFIED IDEOGRAPH +0x9B89 0x5BE6 #CJK UNIFIED IDEOGRAPH +0x9B8A 0x5BE2 #CJK UNIFIED IDEOGRAPH +0x9B8B 0x5BDE #CJK UNIFIED IDEOGRAPH +0x9B8C 0x5BE5 #CJK UNIFIED IDEOGRAPH +0x9B8D 0x5BEB #CJK UNIFIED IDEOGRAPH +0x9B8E 0x5BF0 #CJK UNIFIED IDEOGRAPH +0x9B8F 0x5BF6 #CJK UNIFIED IDEOGRAPH +0x9B90 0x5BF3 #CJK UNIFIED IDEOGRAPH +0x9B91 0x5C05 #CJK UNIFIED IDEOGRAPH +0x9B92 0x5C07 #CJK UNIFIED IDEOGRAPH +0x9B93 0x5C08 #CJK UNIFIED IDEOGRAPH +0x9B94 0x5C0D #CJK UNIFIED IDEOGRAPH +0x9B95 0x5C13 #CJK UNIFIED IDEOGRAPH +0x9B96 0x5C20 #CJK UNIFIED IDEOGRAPH +0x9B97 0x5C22 #CJK UNIFIED IDEOGRAPH +0x9B98 0x5C28 #CJK UNIFIED IDEOGRAPH +0x9B99 0x5C38 #CJK UNIFIED IDEOGRAPH +0x9B9A 0x5C39 #CJK UNIFIED IDEOGRAPH +0x9B9B 0x5C41 #CJK UNIFIED IDEOGRAPH +0x9B9C 0x5C46 #CJK UNIFIED IDEOGRAPH +0x9B9D 0x5C4E #CJK UNIFIED IDEOGRAPH +0x9B9E 0x5C53 #CJK UNIFIED IDEOGRAPH +0x9B9F 0x5C50 #CJK UNIFIED IDEOGRAPH +0x9BA0 0x5C4F #CJK UNIFIED IDEOGRAPH +0x9BA1 0x5B71 #CJK UNIFIED IDEOGRAPH +0x9BA2 0x5C6C #CJK UNIFIED IDEOGRAPH +0x9BA3 0x5C6E #CJK UNIFIED IDEOGRAPH +0x9BA4 0x4E62 #CJK UNIFIED IDEOGRAPH +0x9BA5 0x5C76 #CJK UNIFIED IDEOGRAPH +0x9BA6 0x5C79 #CJK UNIFIED IDEOGRAPH +0x9BA7 0x5C8C #CJK UNIFIED IDEOGRAPH +0x9BA8 0x5C91 #CJK UNIFIED IDEOGRAPH +0x9BA9 0x5C94 #CJK UNIFIED IDEOGRAPH +0x9BAA 0x599B #CJK UNIFIED IDEOGRAPH +0x9BAB 0x5CAB #CJK UNIFIED IDEOGRAPH +0x9BAC 0x5CBB #CJK UNIFIED IDEOGRAPH +0x9BAD 0x5CB6 #CJK UNIFIED IDEOGRAPH +0x9BAE 0x5CBC #CJK UNIFIED IDEOGRAPH +0x9BAF 0x5CB7 #CJK UNIFIED IDEOGRAPH +0x9BB0 0x5CC5 #CJK UNIFIED IDEOGRAPH +0x9BB1 0x5CBE #CJK UNIFIED IDEOGRAPH +0x9BB2 0x5CC7 #CJK UNIFIED IDEOGRAPH +0x9BB3 0x5CD9 #CJK UNIFIED IDEOGRAPH +0x9BB4 0x5CE9 #CJK UNIFIED IDEOGRAPH +0x9BB5 0x5CFD #CJK UNIFIED IDEOGRAPH +0x9BB6 0x5CFA #CJK UNIFIED IDEOGRAPH +0x9BB7 0x5CED #CJK UNIFIED IDEOGRAPH +0x9BB8 0x5D8C #CJK UNIFIED IDEOGRAPH +0x9BB9 0x5CEA #CJK UNIFIED IDEOGRAPH +0x9BBA 0x5D0B #CJK UNIFIED IDEOGRAPH +0x9BBB 0x5D15 #CJK UNIFIED IDEOGRAPH +0x9BBC 0x5D17 #CJK UNIFIED IDEOGRAPH +0x9BBD 0x5D5C #CJK UNIFIED IDEOGRAPH +0x9BBE 0x5D1F #CJK UNIFIED IDEOGRAPH +0x9BBF 0x5D1B #CJK UNIFIED IDEOGRAPH +0x9BC0 0x5D11 #CJK UNIFIED IDEOGRAPH +0x9BC1 0x5D14 #CJK UNIFIED IDEOGRAPH +0x9BC2 0x5D22 #CJK UNIFIED IDEOGRAPH +0x9BC3 0x5D1A #CJK UNIFIED IDEOGRAPH +0x9BC4 0x5D19 #CJK UNIFIED IDEOGRAPH +0x9BC5 0x5D18 #CJK UNIFIED IDEOGRAPH +0x9BC6 0x5D4C #CJK UNIFIED IDEOGRAPH +0x9BC7 0x5D52 #CJK UNIFIED IDEOGRAPH +0x9BC8 0x5D4E #CJK UNIFIED IDEOGRAPH +0x9BC9 0x5D4B #CJK UNIFIED IDEOGRAPH +0x9BCA 0x5D6C #CJK UNIFIED IDEOGRAPH +0x9BCB 0x5D73 #CJK UNIFIED IDEOGRAPH +0x9BCC 0x5D76 #CJK UNIFIED IDEOGRAPH +0x9BCD 0x5D87 #CJK UNIFIED IDEOGRAPH +0x9BCE 0x5D84 #CJK UNIFIED IDEOGRAPH +0x9BCF 0x5D82 #CJK UNIFIED IDEOGRAPH +0x9BD0 0x5DA2 #CJK UNIFIED IDEOGRAPH +0x9BD1 0x5D9D #CJK UNIFIED IDEOGRAPH +0x9BD2 0x5DAC #CJK UNIFIED IDEOGRAPH +0x9BD3 0x5DAE #CJK UNIFIED IDEOGRAPH +0x9BD4 0x5DBD #CJK UNIFIED IDEOGRAPH +0x9BD5 0x5D90 #CJK UNIFIED IDEOGRAPH +0x9BD6 0x5DB7 #CJK UNIFIED IDEOGRAPH +0x9BD7 0x5DBC #CJK UNIFIED IDEOGRAPH +0x9BD8 0x5DC9 #CJK UNIFIED IDEOGRAPH +0x9BD9 0x5DCD #CJK UNIFIED IDEOGRAPH +0x9BDA 0x5DD3 #CJK UNIFIED IDEOGRAPH +0x9BDB 0x5DD2 #CJK UNIFIED IDEOGRAPH +0x9BDC 0x5DD6 #CJK UNIFIED IDEOGRAPH +0x9BDD 0x5DDB #CJK UNIFIED IDEOGRAPH +0x9BDE 0x5DEB #CJK UNIFIED IDEOGRAPH +0x9BDF 0x5DF2 #CJK UNIFIED IDEOGRAPH +0x9BE0 0x5DF5 #CJK UNIFIED IDEOGRAPH +0x9BE1 0x5E0B #CJK UNIFIED IDEOGRAPH +0x9BE2 0x5E1A #CJK UNIFIED IDEOGRAPH +0x9BE3 0x5E19 #CJK UNIFIED IDEOGRAPH +0x9BE4 0x5E11 #CJK UNIFIED IDEOGRAPH +0x9BE5 0x5E1B #CJK UNIFIED IDEOGRAPH +0x9BE6 0x5E36 #CJK UNIFIED IDEOGRAPH +0x9BE7 0x5E37 #CJK UNIFIED IDEOGRAPH +0x9BE8 0x5E44 #CJK UNIFIED IDEOGRAPH +0x9BE9 0x5E43 #CJK UNIFIED IDEOGRAPH +0x9BEA 0x5E40 #CJK UNIFIED IDEOGRAPH +0x9BEB 0x5E4E #CJK UNIFIED IDEOGRAPH +0x9BEC 0x5E57 #CJK UNIFIED IDEOGRAPH +0x9BED 0x5E54 #CJK UNIFIED IDEOGRAPH +0x9BEE 0x5E5F #CJK UNIFIED IDEOGRAPH +0x9BEF 0x5E62 #CJK UNIFIED IDEOGRAPH +0x9BF0 0x5E64 #CJK UNIFIED IDEOGRAPH +0x9BF1 0x5E47 #CJK UNIFIED IDEOGRAPH +0x9BF2 0x5E75 #CJK UNIFIED IDEOGRAPH +0x9BF3 0x5E76 #CJK UNIFIED IDEOGRAPH +0x9BF4 0x5E7A #CJK UNIFIED IDEOGRAPH +0x9BF5 0x9EBC #CJK UNIFIED IDEOGRAPH +0x9BF6 0x5E7F #CJK UNIFIED IDEOGRAPH +0x9BF7 0x5EA0 #CJK UNIFIED IDEOGRAPH +0x9BF8 0x5EC1 #CJK UNIFIED IDEOGRAPH +0x9BF9 0x5EC2 #CJK UNIFIED IDEOGRAPH +0x9BFA 0x5EC8 #CJK UNIFIED IDEOGRAPH +0x9BFB 0x5ED0 #CJK UNIFIED IDEOGRAPH +0x9BFC 0x5ECF #CJK UNIFIED IDEOGRAPH +0x9C40 0x5ED6 #CJK UNIFIED IDEOGRAPH +0x9C41 0x5EE3 #CJK UNIFIED IDEOGRAPH +0x9C42 0x5EDD #CJK UNIFIED IDEOGRAPH +0x9C43 0x5EDA #CJK UNIFIED IDEOGRAPH +0x9C44 0x5EDB #CJK UNIFIED IDEOGRAPH +0x9C45 0x5EE2 #CJK UNIFIED IDEOGRAPH +0x9C46 0x5EE1 #CJK UNIFIED IDEOGRAPH +0x9C47 0x5EE8 #CJK UNIFIED IDEOGRAPH +0x9C48 0x5EE9 #CJK UNIFIED IDEOGRAPH +0x9C49 0x5EEC #CJK UNIFIED IDEOGRAPH +0x9C4A 0x5EF1 #CJK UNIFIED IDEOGRAPH +0x9C4B 0x5EF3 #CJK UNIFIED IDEOGRAPH +0x9C4C 0x5EF0 #CJK UNIFIED IDEOGRAPH +0x9C4D 0x5EF4 #CJK UNIFIED IDEOGRAPH +0x9C4E 0x5EF8 #CJK UNIFIED IDEOGRAPH +0x9C4F 0x5EFE #CJK UNIFIED IDEOGRAPH +0x9C50 0x5F03 #CJK UNIFIED IDEOGRAPH +0x9C51 0x5F09 #CJK UNIFIED IDEOGRAPH +0x9C52 0x5F5D #CJK UNIFIED IDEOGRAPH +0x9C53 0x5F5C #CJK UNIFIED IDEOGRAPH +0x9C54 0x5F0B #CJK UNIFIED IDEOGRAPH +0x9C55 0x5F11 #CJK UNIFIED IDEOGRAPH +0x9C56 0x5F16 #CJK UNIFIED IDEOGRAPH +0x9C57 0x5F29 #CJK UNIFIED IDEOGRAPH +0x9C58 0x5F2D #CJK UNIFIED IDEOGRAPH +0x9C59 0x5F38 #CJK UNIFIED IDEOGRAPH +0x9C5A 0x5F41 #CJK UNIFIED IDEOGRAPH +0x9C5B 0x5F48 #CJK UNIFIED IDEOGRAPH +0x9C5C 0x5F4C #CJK UNIFIED IDEOGRAPH +0x9C5D 0x5F4E #CJK UNIFIED IDEOGRAPH +0x9C5E 0x5F2F #CJK UNIFIED IDEOGRAPH +0x9C5F 0x5F51 #CJK UNIFIED IDEOGRAPH +0x9C60 0x5F56 #CJK UNIFIED IDEOGRAPH +0x9C61 0x5F57 #CJK UNIFIED IDEOGRAPH +0x9C62 0x5F59 #CJK UNIFIED IDEOGRAPH +0x9C63 0x5F61 #CJK UNIFIED IDEOGRAPH +0x9C64 0x5F6D #CJK UNIFIED IDEOGRAPH +0x9C65 0x5F73 #CJK UNIFIED IDEOGRAPH +0x9C66 0x5F77 #CJK UNIFIED IDEOGRAPH +0x9C67 0x5F83 #CJK UNIFIED IDEOGRAPH +0x9C68 0x5F82 #CJK UNIFIED IDEOGRAPH +0x9C69 0x5F7F #CJK UNIFIED IDEOGRAPH +0x9C6A 0x5F8A #CJK UNIFIED IDEOGRAPH +0x9C6B 0x5F88 #CJK UNIFIED IDEOGRAPH +0x9C6C 0x5F91 #CJK UNIFIED IDEOGRAPH +0x9C6D 0x5F87 #CJK UNIFIED IDEOGRAPH +0x9C6E 0x5F9E #CJK UNIFIED IDEOGRAPH +0x9C6F 0x5F99 #CJK UNIFIED IDEOGRAPH +0x9C70 0x5F98 #CJK UNIFIED IDEOGRAPH +0x9C71 0x5FA0 #CJK UNIFIED IDEOGRAPH +0x9C72 0x5FA8 #CJK UNIFIED IDEOGRAPH +0x9C73 0x5FAD #CJK UNIFIED IDEOGRAPH +0x9C74 0x5FBC #CJK UNIFIED IDEOGRAPH +0x9C75 0x5FD6 #CJK UNIFIED IDEOGRAPH +0x9C76 0x5FFB #CJK UNIFIED IDEOGRAPH +0x9C77 0x5FE4 #CJK UNIFIED IDEOGRAPH +0x9C78 0x5FF8 #CJK UNIFIED IDEOGRAPH +0x9C79 0x5FF1 #CJK UNIFIED IDEOGRAPH +0x9C7A 0x5FDD #CJK UNIFIED IDEOGRAPH +0x9C7B 0x60B3 #CJK UNIFIED IDEOGRAPH +0x9C7C 0x5FFF #CJK UNIFIED IDEOGRAPH +0x9C7D 0x6021 #CJK UNIFIED IDEOGRAPH +0x9C7E 0x6060 #CJK UNIFIED IDEOGRAPH +0x9C80 0x6019 #CJK UNIFIED IDEOGRAPH +0x9C81 0x6010 #CJK UNIFIED IDEOGRAPH +0x9C82 0x6029 #CJK UNIFIED IDEOGRAPH +0x9C83 0x600E #CJK UNIFIED IDEOGRAPH +0x9C84 0x6031 #CJK UNIFIED IDEOGRAPH +0x9C85 0x601B #CJK UNIFIED IDEOGRAPH +0x9C86 0x6015 #CJK UNIFIED IDEOGRAPH +0x9C87 0x602B #CJK UNIFIED IDEOGRAPH +0x9C88 0x6026 #CJK UNIFIED IDEOGRAPH +0x9C89 0x600F #CJK UNIFIED IDEOGRAPH +0x9C8A 0x603A #CJK UNIFIED IDEOGRAPH +0x9C8B 0x605A #CJK UNIFIED IDEOGRAPH +0x9C8C 0x6041 #CJK UNIFIED IDEOGRAPH +0x9C8D 0x606A #CJK UNIFIED IDEOGRAPH +0x9C8E 0x6077 #CJK UNIFIED IDEOGRAPH +0x9C8F 0x605F #CJK UNIFIED IDEOGRAPH +0x9C90 0x604A #CJK UNIFIED IDEOGRAPH +0x9C91 0x6046 #CJK UNIFIED IDEOGRAPH +0x9C92 0x604D #CJK UNIFIED IDEOGRAPH +0x9C93 0x6063 #CJK UNIFIED IDEOGRAPH +0x9C94 0x6043 #CJK UNIFIED IDEOGRAPH +0x9C95 0x6064 #CJK UNIFIED IDEOGRAPH +0x9C96 0x6042 #CJK UNIFIED IDEOGRAPH +0x9C97 0x606C #CJK UNIFIED IDEOGRAPH +0x9C98 0x606B #CJK UNIFIED IDEOGRAPH +0x9C99 0x6059 #CJK UNIFIED IDEOGRAPH +0x9C9A 0x6081 #CJK UNIFIED IDEOGRAPH +0x9C9B 0x608D #CJK UNIFIED IDEOGRAPH +0x9C9C 0x60E7 #CJK UNIFIED IDEOGRAPH +0x9C9D 0x6083 #CJK UNIFIED IDEOGRAPH +0x9C9E 0x609A #CJK UNIFIED IDEOGRAPH +0x9C9F 0x6084 #CJK UNIFIED IDEOGRAPH +0x9CA0 0x609B #CJK UNIFIED IDEOGRAPH +0x9CA1 0x6096 #CJK UNIFIED IDEOGRAPH +0x9CA2 0x6097 #CJK UNIFIED IDEOGRAPH +0x9CA3 0x6092 #CJK UNIFIED IDEOGRAPH +0x9CA4 0x60A7 #CJK UNIFIED IDEOGRAPH +0x9CA5 0x608B #CJK UNIFIED IDEOGRAPH +0x9CA6 0x60E1 #CJK UNIFIED IDEOGRAPH +0x9CA7 0x60B8 #CJK UNIFIED IDEOGRAPH +0x9CA8 0x60E0 #CJK UNIFIED IDEOGRAPH +0x9CA9 0x60D3 #CJK UNIFIED IDEOGRAPH +0x9CAA 0x60B4 #CJK UNIFIED IDEOGRAPH +0x9CAB 0x5FF0 #CJK UNIFIED IDEOGRAPH +0x9CAC 0x60BD #CJK UNIFIED IDEOGRAPH +0x9CAD 0x60C6 #CJK UNIFIED IDEOGRAPH +0x9CAE 0x60B5 #CJK UNIFIED IDEOGRAPH +0x9CAF 0x60D8 #CJK UNIFIED IDEOGRAPH +0x9CB0 0x614D #CJK UNIFIED IDEOGRAPH +0x9CB1 0x6115 #CJK UNIFIED IDEOGRAPH +0x9CB2 0x6106 #CJK UNIFIED IDEOGRAPH +0x9CB3 0x60F6 #CJK UNIFIED IDEOGRAPH +0x9CB4 0x60F7 #CJK UNIFIED IDEOGRAPH +0x9CB5 0x6100 #CJK UNIFIED IDEOGRAPH +0x9CB6 0x60F4 #CJK UNIFIED IDEOGRAPH +0x9CB7 0x60FA #CJK UNIFIED IDEOGRAPH +0x9CB8 0x6103 #CJK UNIFIED IDEOGRAPH +0x9CB9 0x6121 #CJK UNIFIED IDEOGRAPH +0x9CBA 0x60FB #CJK UNIFIED IDEOGRAPH +0x9CBB 0x60F1 #CJK UNIFIED IDEOGRAPH +0x9CBC 0x610D #CJK UNIFIED IDEOGRAPH +0x9CBD 0x610E #CJK UNIFIED IDEOGRAPH +0x9CBE 0x6147 #CJK UNIFIED IDEOGRAPH +0x9CBF 0x613E #CJK UNIFIED IDEOGRAPH +0x9CC0 0x6128 #CJK UNIFIED IDEOGRAPH +0x9CC1 0x6127 #CJK UNIFIED IDEOGRAPH +0x9CC2 0x614A #CJK UNIFIED IDEOGRAPH +0x9CC3 0x613F #CJK UNIFIED IDEOGRAPH +0x9CC4 0x613C #CJK UNIFIED IDEOGRAPH +0x9CC5 0x612C #CJK UNIFIED IDEOGRAPH +0x9CC6 0x6134 #CJK UNIFIED IDEOGRAPH +0x9CC7 0x613D #CJK UNIFIED IDEOGRAPH +0x9CC8 0x6142 #CJK UNIFIED IDEOGRAPH +0x9CC9 0x6144 #CJK UNIFIED IDEOGRAPH +0x9CCA 0x6173 #CJK UNIFIED IDEOGRAPH +0x9CCB 0x6177 #CJK UNIFIED IDEOGRAPH +0x9CCC 0x6158 #CJK UNIFIED IDEOGRAPH +0x9CCD 0x6159 #CJK UNIFIED IDEOGRAPH +0x9CCE 0x615A #CJK UNIFIED IDEOGRAPH +0x9CCF 0x616B #CJK UNIFIED IDEOGRAPH +0x9CD0 0x6174 #CJK UNIFIED IDEOGRAPH +0x9CD1 0x616F #CJK UNIFIED IDEOGRAPH +0x9CD2 0x6165 #CJK UNIFIED IDEOGRAPH +0x9CD3 0x6171 #CJK UNIFIED IDEOGRAPH +0x9CD4 0x615F #CJK UNIFIED IDEOGRAPH +0x9CD5 0x615D #CJK UNIFIED IDEOGRAPH +0x9CD6 0x6153 #CJK UNIFIED IDEOGRAPH +0x9CD7 0x6175 #CJK UNIFIED IDEOGRAPH +0x9CD8 0x6199 #CJK UNIFIED IDEOGRAPH +0x9CD9 0x6196 #CJK UNIFIED IDEOGRAPH +0x9CDA 0x6187 #CJK UNIFIED IDEOGRAPH +0x9CDB 0x61AC #CJK UNIFIED IDEOGRAPH +0x9CDC 0x6194 #CJK UNIFIED IDEOGRAPH +0x9CDD 0x619A #CJK UNIFIED IDEOGRAPH +0x9CDE 0x618A #CJK UNIFIED IDEOGRAPH +0x9CDF 0x6191 #CJK UNIFIED IDEOGRAPH +0x9CE0 0x61AB #CJK UNIFIED IDEOGRAPH +0x9CE1 0x61AE #CJK UNIFIED IDEOGRAPH +0x9CE2 0x61CC #CJK UNIFIED IDEOGRAPH +0x9CE3 0x61CA #CJK UNIFIED IDEOGRAPH +0x9CE4 0x61C9 #CJK UNIFIED IDEOGRAPH +0x9CE5 0x61F7 #CJK UNIFIED IDEOGRAPH +0x9CE6 0x61C8 #CJK UNIFIED IDEOGRAPH +0x9CE7 0x61C3 #CJK UNIFIED IDEOGRAPH +0x9CE8 0x61C6 #CJK UNIFIED IDEOGRAPH +0x9CE9 0x61BA #CJK UNIFIED IDEOGRAPH +0x9CEA 0x61CB #CJK UNIFIED IDEOGRAPH +0x9CEB 0x7F79 #CJK UNIFIED IDEOGRAPH +0x9CEC 0x61CD #CJK UNIFIED IDEOGRAPH +0x9CED 0x61E6 #CJK UNIFIED IDEOGRAPH +0x9CEE 0x61E3 #CJK UNIFIED IDEOGRAPH +0x9CEF 0x61F6 #CJK UNIFIED IDEOGRAPH +0x9CF0 0x61FA #CJK UNIFIED IDEOGRAPH +0x9CF1 0x61F4 #CJK UNIFIED IDEOGRAPH +0x9CF2 0x61FF #CJK UNIFIED IDEOGRAPH +0x9CF3 0x61FD #CJK UNIFIED IDEOGRAPH +0x9CF4 0x61FC #CJK UNIFIED IDEOGRAPH +0x9CF5 0x61FE #CJK UNIFIED IDEOGRAPH +0x9CF6 0x6200 #CJK UNIFIED IDEOGRAPH +0x9CF7 0x6208 #CJK UNIFIED IDEOGRAPH +0x9CF8 0x6209 #CJK UNIFIED IDEOGRAPH +0x9CF9 0x620D #CJK UNIFIED IDEOGRAPH +0x9CFA 0x620C #CJK UNIFIED IDEOGRAPH +0x9CFB 0x6214 #CJK UNIFIED IDEOGRAPH +0x9CFC 0x621B #CJK UNIFIED IDEOGRAPH +0x9D40 0x621E #CJK UNIFIED IDEOGRAPH +0x9D41 0x6221 #CJK UNIFIED IDEOGRAPH +0x9D42 0x622A #CJK UNIFIED IDEOGRAPH +0x9D43 0x622E #CJK UNIFIED IDEOGRAPH +0x9D44 0x6230 #CJK UNIFIED IDEOGRAPH +0x9D45 0x6232 #CJK UNIFIED IDEOGRAPH +0x9D46 0x6233 #CJK UNIFIED IDEOGRAPH +0x9D47 0x6241 #CJK UNIFIED IDEOGRAPH +0x9D48 0x624E #CJK UNIFIED IDEOGRAPH +0x9D49 0x625E #CJK UNIFIED IDEOGRAPH +0x9D4A 0x6263 #CJK UNIFIED IDEOGRAPH +0x9D4B 0x625B #CJK UNIFIED IDEOGRAPH +0x9D4C 0x6260 #CJK UNIFIED IDEOGRAPH +0x9D4D 0x6268 #CJK UNIFIED IDEOGRAPH +0x9D4E 0x627C #CJK UNIFIED IDEOGRAPH +0x9D4F 0x6282 #CJK UNIFIED IDEOGRAPH +0x9D50 0x6289 #CJK UNIFIED IDEOGRAPH +0x9D51 0x627E #CJK UNIFIED IDEOGRAPH +0x9D52 0x6292 #CJK UNIFIED IDEOGRAPH +0x9D53 0x6293 #CJK UNIFIED IDEOGRAPH +0x9D54 0x6296 #CJK UNIFIED IDEOGRAPH +0x9D55 0x62D4 #CJK UNIFIED IDEOGRAPH +0x9D56 0x6283 #CJK UNIFIED IDEOGRAPH +0x9D57 0x6294 #CJK UNIFIED IDEOGRAPH +0x9D58 0x62D7 #CJK UNIFIED IDEOGRAPH +0x9D59 0x62D1 #CJK UNIFIED IDEOGRAPH +0x9D5A 0x62BB #CJK UNIFIED IDEOGRAPH +0x9D5B 0x62CF #CJK UNIFIED IDEOGRAPH +0x9D5C 0x62FF #CJK UNIFIED IDEOGRAPH +0x9D5D 0x62C6 #CJK UNIFIED IDEOGRAPH +0x9D5E 0x64D4 #CJK UNIFIED IDEOGRAPH +0x9D5F 0x62C8 #CJK UNIFIED IDEOGRAPH +0x9D60 0x62DC #CJK UNIFIED IDEOGRAPH +0x9D61 0x62CC #CJK UNIFIED IDEOGRAPH +0x9D62 0x62CA #CJK UNIFIED IDEOGRAPH +0x9D63 0x62C2 #CJK UNIFIED IDEOGRAPH +0x9D64 0x62C7 #CJK UNIFIED IDEOGRAPH +0x9D65 0x629B #CJK UNIFIED IDEOGRAPH +0x9D66 0x62C9 #CJK UNIFIED IDEOGRAPH +0x9D67 0x630C #CJK UNIFIED IDEOGRAPH +0x9D68 0x62EE #CJK UNIFIED IDEOGRAPH +0x9D69 0x62F1 #CJK UNIFIED IDEOGRAPH +0x9D6A 0x6327 #CJK UNIFIED IDEOGRAPH +0x9D6B 0x6302 #CJK UNIFIED IDEOGRAPH +0x9D6C 0x6308 #CJK UNIFIED IDEOGRAPH +0x9D6D 0x62EF #CJK UNIFIED IDEOGRAPH +0x9D6E 0x62F5 #CJK UNIFIED IDEOGRAPH +0x9D6F 0x6350 #CJK UNIFIED IDEOGRAPH +0x9D70 0x633E #CJK UNIFIED IDEOGRAPH +0x9D71 0x634D #CJK UNIFIED IDEOGRAPH +0x9D72 0x641C #CJK UNIFIED IDEOGRAPH +0x9D73 0x634F #CJK UNIFIED IDEOGRAPH +0x9D74 0x6396 #CJK UNIFIED IDEOGRAPH +0x9D75 0x638E #CJK UNIFIED IDEOGRAPH +0x9D76 0x6380 #CJK UNIFIED IDEOGRAPH +0x9D77 0x63AB #CJK UNIFIED IDEOGRAPH +0x9D78 0x6376 #CJK UNIFIED IDEOGRAPH +0x9D79 0x63A3 #CJK UNIFIED IDEOGRAPH +0x9D7A 0x638F #CJK UNIFIED IDEOGRAPH +0x9D7B 0x6389 #CJK UNIFIED IDEOGRAPH +0x9D7C 0x639F #CJK UNIFIED IDEOGRAPH +0x9D7D 0x63B5 #CJK UNIFIED IDEOGRAPH +0x9D7E 0x636B #CJK UNIFIED IDEOGRAPH +0x9D80 0x6369 #CJK UNIFIED IDEOGRAPH +0x9D81 0x63BE #CJK UNIFIED IDEOGRAPH +0x9D82 0x63E9 #CJK UNIFIED IDEOGRAPH +0x9D83 0x63C0 #CJK UNIFIED IDEOGRAPH +0x9D84 0x63C6 #CJK UNIFIED IDEOGRAPH +0x9D85 0x63E3 #CJK UNIFIED IDEOGRAPH +0x9D86 0x63C9 #CJK UNIFIED IDEOGRAPH +0x9D87 0x63D2 #CJK UNIFIED IDEOGRAPH +0x9D88 0x63F6 #CJK UNIFIED IDEOGRAPH +0x9D89 0x63C4 #CJK UNIFIED IDEOGRAPH +0x9D8A 0x6416 #CJK UNIFIED IDEOGRAPH +0x9D8B 0x6434 #CJK UNIFIED IDEOGRAPH +0x9D8C 0x6406 #CJK UNIFIED IDEOGRAPH +0x9D8D 0x6413 #CJK UNIFIED IDEOGRAPH +0x9D8E 0x6426 #CJK UNIFIED IDEOGRAPH +0x9D8F 0x6436 #CJK UNIFIED IDEOGRAPH +0x9D90 0x651D #CJK UNIFIED IDEOGRAPH +0x9D91 0x6417 #CJK UNIFIED IDEOGRAPH +0x9D92 0x6428 #CJK UNIFIED IDEOGRAPH +0x9D93 0x640F #CJK UNIFIED IDEOGRAPH +0x9D94 0x6467 #CJK UNIFIED IDEOGRAPH +0x9D95 0x646F #CJK UNIFIED IDEOGRAPH +0x9D96 0x6476 #CJK UNIFIED IDEOGRAPH +0x9D97 0x644E #CJK UNIFIED IDEOGRAPH +0x9D98 0x652A #CJK UNIFIED IDEOGRAPH +0x9D99 0x6495 #CJK UNIFIED IDEOGRAPH +0x9D9A 0x6493 #CJK UNIFIED IDEOGRAPH +0x9D9B 0x64A5 #CJK UNIFIED IDEOGRAPH +0x9D9C 0x64A9 #CJK UNIFIED IDEOGRAPH +0x9D9D 0x6488 #CJK UNIFIED IDEOGRAPH +0x9D9E 0x64BC #CJK UNIFIED IDEOGRAPH +0x9D9F 0x64DA #CJK UNIFIED IDEOGRAPH +0x9DA0 0x64D2 #CJK UNIFIED IDEOGRAPH +0x9DA1 0x64C5 #CJK UNIFIED IDEOGRAPH +0x9DA2 0x64C7 #CJK UNIFIED IDEOGRAPH +0x9DA3 0x64BB #CJK UNIFIED IDEOGRAPH +0x9DA4 0x64D8 #CJK UNIFIED IDEOGRAPH +0x9DA5 0x64C2 #CJK UNIFIED IDEOGRAPH +0x9DA6 0x64F1 #CJK UNIFIED IDEOGRAPH +0x9DA7 0x64E7 #CJK UNIFIED IDEOGRAPH +0x9DA8 0x8209 #CJK UNIFIED IDEOGRAPH +0x9DA9 0x64E0 #CJK UNIFIED IDEOGRAPH +0x9DAA 0x64E1 #CJK UNIFIED IDEOGRAPH +0x9DAB 0x62AC #CJK UNIFIED IDEOGRAPH +0x9DAC 0x64E3 #CJK UNIFIED IDEOGRAPH +0x9DAD 0x64EF #CJK UNIFIED IDEOGRAPH +0x9DAE 0x652C #CJK UNIFIED IDEOGRAPH +0x9DAF 0x64F6 #CJK UNIFIED IDEOGRAPH +0x9DB0 0x64F4 #CJK UNIFIED IDEOGRAPH +0x9DB1 0x64F2 #CJK UNIFIED IDEOGRAPH +0x9DB2 0x64FA #CJK UNIFIED IDEOGRAPH +0x9DB3 0x6500 #CJK UNIFIED IDEOGRAPH +0x9DB4 0x64FD #CJK UNIFIED IDEOGRAPH +0x9DB5 0x6518 #CJK UNIFIED IDEOGRAPH +0x9DB6 0x651C #CJK UNIFIED IDEOGRAPH +0x9DB7 0x6505 #CJK UNIFIED IDEOGRAPH +0x9DB8 0x6524 #CJK UNIFIED IDEOGRAPH +0x9DB9 0x6523 #CJK UNIFIED IDEOGRAPH +0x9DBA 0x652B #CJK UNIFIED IDEOGRAPH +0x9DBB 0x6534 #CJK UNIFIED IDEOGRAPH +0x9DBC 0x6535 #CJK UNIFIED IDEOGRAPH +0x9DBD 0x6537 #CJK UNIFIED IDEOGRAPH +0x9DBE 0x6536 #CJK UNIFIED IDEOGRAPH +0x9DBF 0x6538 #CJK UNIFIED IDEOGRAPH +0x9DC0 0x754B #CJK UNIFIED IDEOGRAPH +0x9DC1 0x6548 #CJK UNIFIED IDEOGRAPH +0x9DC2 0x6556 #CJK UNIFIED IDEOGRAPH +0x9DC3 0x6555 #CJK UNIFIED IDEOGRAPH +0x9DC4 0x654D #CJK UNIFIED IDEOGRAPH +0x9DC5 0x6558 #CJK UNIFIED IDEOGRAPH +0x9DC6 0x655E #CJK UNIFIED IDEOGRAPH +0x9DC7 0x655D #CJK UNIFIED IDEOGRAPH +0x9DC8 0x6572 #CJK UNIFIED IDEOGRAPH +0x9DC9 0x6578 #CJK UNIFIED IDEOGRAPH +0x9DCA 0x6582 #CJK UNIFIED IDEOGRAPH +0x9DCB 0x6583 #CJK UNIFIED IDEOGRAPH +0x9DCC 0x8B8A #CJK UNIFIED IDEOGRAPH +0x9DCD 0x659B #CJK UNIFIED IDEOGRAPH +0x9DCE 0x659F #CJK UNIFIED IDEOGRAPH +0x9DCF 0x65AB #CJK UNIFIED IDEOGRAPH +0x9DD0 0x65B7 #CJK UNIFIED IDEOGRAPH +0x9DD1 0x65C3 #CJK UNIFIED IDEOGRAPH +0x9DD2 0x65C6 #CJK UNIFIED IDEOGRAPH +0x9DD3 0x65C1 #CJK UNIFIED IDEOGRAPH +0x9DD4 0x65C4 #CJK UNIFIED IDEOGRAPH +0x9DD5 0x65CC #CJK UNIFIED IDEOGRAPH +0x9DD6 0x65D2 #CJK UNIFIED IDEOGRAPH +0x9DD7 0x65DB #CJK UNIFIED IDEOGRAPH +0x9DD8 0x65D9 #CJK UNIFIED IDEOGRAPH +0x9DD9 0x65E0 #CJK UNIFIED IDEOGRAPH +0x9DDA 0x65E1 #CJK UNIFIED IDEOGRAPH +0x9DDB 0x65F1 #CJK UNIFIED IDEOGRAPH +0x9DDC 0x6772 #CJK UNIFIED IDEOGRAPH +0x9DDD 0x660A #CJK UNIFIED IDEOGRAPH +0x9DDE 0x6603 #CJK UNIFIED IDEOGRAPH +0x9DDF 0x65FB #CJK UNIFIED IDEOGRAPH +0x9DE0 0x6773 #CJK UNIFIED IDEOGRAPH +0x9DE1 0x6635 #CJK UNIFIED IDEOGRAPH +0x9DE2 0x6636 #CJK UNIFIED IDEOGRAPH +0x9DE3 0x6634 #CJK UNIFIED IDEOGRAPH +0x9DE4 0x661C #CJK UNIFIED IDEOGRAPH +0x9DE5 0x664F #CJK UNIFIED IDEOGRAPH +0x9DE6 0x6644 #CJK UNIFIED IDEOGRAPH +0x9DE7 0x6649 #CJK UNIFIED IDEOGRAPH +0x9DE8 0x6641 #CJK UNIFIED IDEOGRAPH +0x9DE9 0x665E #CJK UNIFIED IDEOGRAPH +0x9DEA 0x665D #CJK UNIFIED IDEOGRAPH +0x9DEB 0x6664 #CJK UNIFIED IDEOGRAPH +0x9DEC 0x6667 #CJK UNIFIED IDEOGRAPH +0x9DED 0x6668 #CJK UNIFIED IDEOGRAPH +0x9DEE 0x665F #CJK UNIFIED IDEOGRAPH +0x9DEF 0x6662 #CJK UNIFIED IDEOGRAPH +0x9DF0 0x6670 #CJK UNIFIED IDEOGRAPH +0x9DF1 0x6683 #CJK UNIFIED IDEOGRAPH +0x9DF2 0x6688 #CJK UNIFIED IDEOGRAPH +0x9DF3 0x668E #CJK UNIFIED IDEOGRAPH +0x9DF4 0x6689 #CJK UNIFIED IDEOGRAPH +0x9DF5 0x6684 #CJK UNIFIED IDEOGRAPH +0x9DF6 0x6698 #CJK UNIFIED IDEOGRAPH +0x9DF7 0x669D #CJK UNIFIED IDEOGRAPH +0x9DF8 0x66C1 #CJK UNIFIED IDEOGRAPH +0x9DF9 0x66B9 #CJK UNIFIED IDEOGRAPH +0x9DFA 0x66C9 #CJK UNIFIED IDEOGRAPH +0x9DFB 0x66BE #CJK UNIFIED IDEOGRAPH +0x9DFC 0x66BC #CJK UNIFIED IDEOGRAPH +0x9E40 0x66C4 #CJK UNIFIED IDEOGRAPH +0x9E41 0x66B8 #CJK UNIFIED IDEOGRAPH +0x9E42 0x66D6 #CJK UNIFIED IDEOGRAPH +0x9E43 0x66DA #CJK UNIFIED IDEOGRAPH +0x9E44 0x66E0 #CJK UNIFIED IDEOGRAPH +0x9E45 0x663F #CJK UNIFIED IDEOGRAPH +0x9E46 0x66E6 #CJK UNIFIED IDEOGRAPH +0x9E47 0x66E9 #CJK UNIFIED IDEOGRAPH +0x9E48 0x66F0 #CJK UNIFIED IDEOGRAPH +0x9E49 0x66F5 #CJK UNIFIED IDEOGRAPH +0x9E4A 0x66F7 #CJK UNIFIED IDEOGRAPH +0x9E4B 0x670F #CJK UNIFIED IDEOGRAPH +0x9E4C 0x6716 #CJK UNIFIED IDEOGRAPH +0x9E4D 0x671E #CJK UNIFIED IDEOGRAPH +0x9E4E 0x6726 #CJK UNIFIED IDEOGRAPH +0x9E4F 0x6727 #CJK UNIFIED IDEOGRAPH +0x9E50 0x9738 #CJK UNIFIED IDEOGRAPH +0x9E51 0x672E #CJK UNIFIED IDEOGRAPH +0x9E52 0x673F #CJK UNIFIED IDEOGRAPH +0x9E53 0x6736 #CJK UNIFIED IDEOGRAPH +0x9E54 0x6741 #CJK UNIFIED IDEOGRAPH +0x9E55 0x6738 #CJK UNIFIED IDEOGRAPH +0x9E56 0x6737 #CJK UNIFIED IDEOGRAPH +0x9E57 0x6746 #CJK UNIFIED IDEOGRAPH +0x9E58 0x675E #CJK UNIFIED IDEOGRAPH +0x9E59 0x6760 #CJK UNIFIED IDEOGRAPH +0x9E5A 0x6759 #CJK UNIFIED IDEOGRAPH +0x9E5B 0x6763 #CJK UNIFIED IDEOGRAPH +0x9E5C 0x6764 #CJK UNIFIED IDEOGRAPH +0x9E5D 0x6789 #CJK UNIFIED IDEOGRAPH +0x9E5E 0x6770 #CJK UNIFIED IDEOGRAPH +0x9E5F 0x67A9 #CJK UNIFIED IDEOGRAPH +0x9E60 0x677C #CJK UNIFIED IDEOGRAPH +0x9E61 0x676A #CJK UNIFIED IDEOGRAPH +0x9E62 0x678C #CJK UNIFIED IDEOGRAPH +0x9E63 0x678B #CJK UNIFIED IDEOGRAPH +0x9E64 0x67A6 #CJK UNIFIED IDEOGRAPH +0x9E65 0x67A1 #CJK UNIFIED IDEOGRAPH +0x9E66 0x6785 #CJK UNIFIED IDEOGRAPH +0x9E67 0x67B7 #CJK UNIFIED IDEOGRAPH +0x9E68 0x67EF #CJK UNIFIED IDEOGRAPH +0x9E69 0x67B4 #CJK UNIFIED IDEOGRAPH +0x9E6A 0x67EC #CJK UNIFIED IDEOGRAPH +0x9E6B 0x67B3 #CJK UNIFIED IDEOGRAPH +0x9E6C 0x67E9 #CJK UNIFIED IDEOGRAPH +0x9E6D 0x67B8 #CJK UNIFIED IDEOGRAPH +0x9E6E 0x67E4 #CJK UNIFIED IDEOGRAPH +0x9E6F 0x67DE #CJK UNIFIED IDEOGRAPH +0x9E70 0x67DD #CJK UNIFIED IDEOGRAPH +0x9E71 0x67E2 #CJK UNIFIED IDEOGRAPH +0x9E72 0x67EE #CJK UNIFIED IDEOGRAPH +0x9E73 0x67B9 #CJK UNIFIED IDEOGRAPH +0x9E74 0x67CE #CJK UNIFIED IDEOGRAPH +0x9E75 0x67C6 #CJK UNIFIED IDEOGRAPH +0x9E76 0x67E7 #CJK UNIFIED IDEOGRAPH +0x9E77 0x6A9C #CJK UNIFIED IDEOGRAPH +0x9E78 0x681E #CJK UNIFIED IDEOGRAPH +0x9E79 0x6846 #CJK UNIFIED IDEOGRAPH +0x9E7A 0x6829 #CJK UNIFIED IDEOGRAPH +0x9E7B 0x6840 #CJK UNIFIED IDEOGRAPH +0x9E7C 0x684D #CJK UNIFIED IDEOGRAPH +0x9E7D 0x6832 #CJK UNIFIED IDEOGRAPH +0x9E7E 0x684E #CJK UNIFIED IDEOGRAPH +0x9E80 0x68B3 #CJK UNIFIED IDEOGRAPH +0x9E81 0x682B #CJK UNIFIED IDEOGRAPH +0x9E82 0x6859 #CJK UNIFIED IDEOGRAPH +0x9E83 0x6863 #CJK UNIFIED IDEOGRAPH +0x9E84 0x6877 #CJK UNIFIED IDEOGRAPH +0x9E85 0x687F #CJK UNIFIED IDEOGRAPH +0x9E86 0x689F #CJK UNIFIED IDEOGRAPH +0x9E87 0x688F #CJK UNIFIED IDEOGRAPH +0x9E88 0x68AD #CJK UNIFIED IDEOGRAPH +0x9E89 0x6894 #CJK UNIFIED IDEOGRAPH +0x9E8A 0x689D #CJK UNIFIED IDEOGRAPH +0x9E8B 0x689B #CJK UNIFIED IDEOGRAPH +0x9E8C 0x6883 #CJK UNIFIED IDEOGRAPH +0x9E8D 0x6AAE #CJK UNIFIED IDEOGRAPH +0x9E8E 0x68B9 #CJK UNIFIED IDEOGRAPH +0x9E8F 0x6874 #CJK UNIFIED IDEOGRAPH +0x9E90 0x68B5 #CJK UNIFIED IDEOGRAPH +0x9E91 0x68A0 #CJK UNIFIED IDEOGRAPH +0x9E92 0x68BA #CJK UNIFIED IDEOGRAPH +0x9E93 0x690F #CJK UNIFIED IDEOGRAPH +0x9E94 0x688D #CJK UNIFIED IDEOGRAPH +0x9E95 0x687E #CJK UNIFIED IDEOGRAPH +0x9E96 0x6901 #CJK UNIFIED IDEOGRAPH +0x9E97 0x68CA #CJK UNIFIED IDEOGRAPH +0x9E98 0x6908 #CJK UNIFIED IDEOGRAPH +0x9E99 0x68D8 #CJK UNIFIED IDEOGRAPH +0x9E9A 0x6922 #CJK UNIFIED IDEOGRAPH +0x9E9B 0x6926 #CJK UNIFIED IDEOGRAPH +0x9E9C 0x68E1 #CJK UNIFIED IDEOGRAPH +0x9E9D 0x690C #CJK UNIFIED IDEOGRAPH +0x9E9E 0x68CD #CJK UNIFIED IDEOGRAPH +0x9E9F 0x68D4 #CJK UNIFIED IDEOGRAPH +0x9EA0 0x68E7 #CJK UNIFIED IDEOGRAPH +0x9EA1 0x68D5 #CJK UNIFIED IDEOGRAPH +0x9EA2 0x6936 #CJK UNIFIED IDEOGRAPH +0x9EA3 0x6912 #CJK UNIFIED IDEOGRAPH +0x9EA4 0x6904 #CJK UNIFIED IDEOGRAPH +0x9EA5 0x68D7 #CJK UNIFIED IDEOGRAPH +0x9EA6 0x68E3 #CJK UNIFIED IDEOGRAPH +0x9EA7 0x6925 #CJK UNIFIED IDEOGRAPH +0x9EA8 0x68F9 #CJK UNIFIED IDEOGRAPH +0x9EA9 0x68E0 #CJK UNIFIED IDEOGRAPH +0x9EAA 0x68EF #CJK UNIFIED IDEOGRAPH +0x9EAB 0x6928 #CJK UNIFIED IDEOGRAPH +0x9EAC 0x692A #CJK UNIFIED IDEOGRAPH +0x9EAD 0x691A #CJK UNIFIED IDEOGRAPH +0x9EAE 0x6923 #CJK UNIFIED IDEOGRAPH +0x9EAF 0x6921 #CJK UNIFIED IDEOGRAPH +0x9EB0 0x68C6 #CJK UNIFIED IDEOGRAPH +0x9EB1 0x6979 #CJK UNIFIED IDEOGRAPH +0x9EB2 0x6977 #CJK UNIFIED IDEOGRAPH +0x9EB3 0x695C #CJK UNIFIED IDEOGRAPH +0x9EB4 0x6978 #CJK UNIFIED IDEOGRAPH +0x9EB5 0x696B #CJK UNIFIED IDEOGRAPH +0x9EB6 0x6954 #CJK UNIFIED IDEOGRAPH +0x9EB7 0x697E #CJK UNIFIED IDEOGRAPH +0x9EB8 0x696E #CJK UNIFIED IDEOGRAPH +0x9EB9 0x6939 #CJK UNIFIED IDEOGRAPH +0x9EBA 0x6974 #CJK UNIFIED IDEOGRAPH +0x9EBB 0x693D #CJK UNIFIED IDEOGRAPH +0x9EBC 0x6959 #CJK UNIFIED IDEOGRAPH +0x9EBD 0x6930 #CJK UNIFIED IDEOGRAPH +0x9EBE 0x6961 #CJK UNIFIED IDEOGRAPH +0x9EBF 0x695E #CJK UNIFIED IDEOGRAPH +0x9EC0 0x695D #CJK UNIFIED IDEOGRAPH +0x9EC1 0x6981 #CJK UNIFIED IDEOGRAPH +0x9EC2 0x696A #CJK UNIFIED IDEOGRAPH +0x9EC3 0x69B2 #CJK UNIFIED IDEOGRAPH +0x9EC4 0x69AE #CJK UNIFIED IDEOGRAPH +0x9EC5 0x69D0 #CJK UNIFIED IDEOGRAPH +0x9EC6 0x69BF #CJK UNIFIED IDEOGRAPH +0x9EC7 0x69C1 #CJK UNIFIED IDEOGRAPH +0x9EC8 0x69D3 #CJK UNIFIED IDEOGRAPH +0x9EC9 0x69BE #CJK UNIFIED IDEOGRAPH +0x9ECA 0x69CE #CJK UNIFIED IDEOGRAPH +0x9ECB 0x5BE8 #CJK UNIFIED IDEOGRAPH +0x9ECC 0x69CA #CJK UNIFIED IDEOGRAPH +0x9ECD 0x69DD #CJK UNIFIED IDEOGRAPH +0x9ECE 0x69BB #CJK UNIFIED IDEOGRAPH +0x9ECF 0x69C3 #CJK UNIFIED IDEOGRAPH +0x9ED0 0x69A7 #CJK UNIFIED IDEOGRAPH +0x9ED1 0x6A2E #CJK UNIFIED IDEOGRAPH +0x9ED2 0x6991 #CJK UNIFIED IDEOGRAPH +0x9ED3 0x69A0 #CJK UNIFIED IDEOGRAPH +0x9ED4 0x699C #CJK UNIFIED IDEOGRAPH +0x9ED5 0x6995 #CJK UNIFIED IDEOGRAPH +0x9ED6 0x69B4 #CJK UNIFIED IDEOGRAPH +0x9ED7 0x69DE #CJK UNIFIED IDEOGRAPH +0x9ED8 0x69E8 #CJK UNIFIED IDEOGRAPH +0x9ED9 0x6A02 #CJK UNIFIED IDEOGRAPH +0x9EDA 0x6A1B #CJK UNIFIED IDEOGRAPH +0x9EDB 0x69FF #CJK UNIFIED IDEOGRAPH +0x9EDC 0x6B0A #CJK UNIFIED IDEOGRAPH +0x9EDD 0x69F9 #CJK UNIFIED IDEOGRAPH +0x9EDE 0x69F2 #CJK UNIFIED IDEOGRAPH +0x9EDF 0x69E7 #CJK UNIFIED IDEOGRAPH +0x9EE0 0x6A05 #CJK UNIFIED IDEOGRAPH +0x9EE1 0x69B1 #CJK UNIFIED IDEOGRAPH +0x9EE2 0x6A1E #CJK UNIFIED IDEOGRAPH +0x9EE3 0x69ED #CJK UNIFIED IDEOGRAPH +0x9EE4 0x6A14 #CJK UNIFIED IDEOGRAPH +0x9EE5 0x69EB #CJK UNIFIED IDEOGRAPH +0x9EE6 0x6A0A #CJK UNIFIED IDEOGRAPH +0x9EE7 0x6A12 #CJK UNIFIED IDEOGRAPH +0x9EE8 0x6AC1 #CJK UNIFIED IDEOGRAPH +0x9EE9 0x6A23 #CJK UNIFIED IDEOGRAPH +0x9EEA 0x6A13 #CJK UNIFIED IDEOGRAPH +0x9EEB 0x6A44 #CJK UNIFIED IDEOGRAPH +0x9EEC 0x6A0C #CJK UNIFIED IDEOGRAPH +0x9EED 0x6A72 #CJK UNIFIED IDEOGRAPH +0x9EEE 0x6A36 #CJK UNIFIED IDEOGRAPH +0x9EEF 0x6A78 #CJK UNIFIED IDEOGRAPH +0x9EF0 0x6A47 #CJK UNIFIED IDEOGRAPH +0x9EF1 0x6A62 #CJK UNIFIED IDEOGRAPH +0x9EF2 0x6A59 #CJK UNIFIED IDEOGRAPH +0x9EF3 0x6A66 #CJK UNIFIED IDEOGRAPH +0x9EF4 0x6A48 #CJK UNIFIED IDEOGRAPH +0x9EF5 0x6A38 #CJK UNIFIED IDEOGRAPH +0x9EF6 0x6A22 #CJK UNIFIED IDEOGRAPH +0x9EF7 0x6A90 #CJK UNIFIED IDEOGRAPH +0x9EF8 0x6A8D #CJK UNIFIED IDEOGRAPH +0x9EF9 0x6AA0 #CJK UNIFIED IDEOGRAPH +0x9EFA 0x6A84 #CJK UNIFIED IDEOGRAPH +0x9EFB 0x6AA2 #CJK UNIFIED IDEOGRAPH +0x9EFC 0x6AA3 #CJK UNIFIED IDEOGRAPH +0x9F40 0x6A97 #CJK UNIFIED IDEOGRAPH +0x9F41 0x8617 #CJK UNIFIED IDEOGRAPH +0x9F42 0x6ABB #CJK UNIFIED IDEOGRAPH +0x9F43 0x6AC3 #CJK UNIFIED IDEOGRAPH +0x9F44 0x6AC2 #CJK UNIFIED IDEOGRAPH +0x9F45 0x6AB8 #CJK UNIFIED IDEOGRAPH +0x9F46 0x6AB3 #CJK UNIFIED IDEOGRAPH +0x9F47 0x6AAC #CJK UNIFIED IDEOGRAPH +0x9F48 0x6ADE #CJK UNIFIED IDEOGRAPH +0x9F49 0x6AD1 #CJK UNIFIED IDEOGRAPH +0x9F4A 0x6ADF #CJK UNIFIED IDEOGRAPH +0x9F4B 0x6AAA #CJK UNIFIED IDEOGRAPH +0x9F4C 0x6ADA #CJK UNIFIED IDEOGRAPH +0x9F4D 0x6AEA #CJK UNIFIED IDEOGRAPH +0x9F4E 0x6AFB #CJK UNIFIED IDEOGRAPH +0x9F4F 0x6B05 #CJK UNIFIED IDEOGRAPH +0x9F50 0x8616 #CJK UNIFIED IDEOGRAPH +0x9F51 0x6AFA #CJK UNIFIED IDEOGRAPH +0x9F52 0x6B12 #CJK UNIFIED IDEOGRAPH +0x9F53 0x6B16 #CJK UNIFIED IDEOGRAPH +0x9F54 0x9B31 #CJK UNIFIED IDEOGRAPH +0x9F55 0x6B1F #CJK UNIFIED IDEOGRAPH +0x9F56 0x6B38 #CJK UNIFIED IDEOGRAPH +0x9F57 0x6B37 #CJK UNIFIED IDEOGRAPH +0x9F58 0x76DC #CJK UNIFIED IDEOGRAPH +0x9F59 0x6B39 #CJK UNIFIED IDEOGRAPH +0x9F5A 0x98EE #CJK UNIFIED IDEOGRAPH +0x9F5B 0x6B47 #CJK UNIFIED IDEOGRAPH +0x9F5C 0x6B43 #CJK UNIFIED IDEOGRAPH +0x9F5D 0x6B49 #CJK UNIFIED IDEOGRAPH +0x9F5E 0x6B50 #CJK UNIFIED IDEOGRAPH +0x9F5F 0x6B59 #CJK UNIFIED IDEOGRAPH +0x9F60 0x6B54 #CJK UNIFIED IDEOGRAPH +0x9F61 0x6B5B #CJK UNIFIED IDEOGRAPH +0x9F62 0x6B5F #CJK UNIFIED IDEOGRAPH +0x9F63 0x6B61 #CJK UNIFIED IDEOGRAPH +0x9F64 0x6B78 #CJK UNIFIED IDEOGRAPH +0x9F65 0x6B79 #CJK UNIFIED IDEOGRAPH +0x9F66 0x6B7F #CJK UNIFIED IDEOGRAPH +0x9F67 0x6B80 #CJK UNIFIED IDEOGRAPH +0x9F68 0x6B84 #CJK UNIFIED IDEOGRAPH +0x9F69 0x6B83 #CJK UNIFIED IDEOGRAPH +0x9F6A 0x6B8D #CJK UNIFIED IDEOGRAPH +0x9F6B 0x6B98 #CJK UNIFIED IDEOGRAPH +0x9F6C 0x6B95 #CJK UNIFIED IDEOGRAPH +0x9F6D 0x6B9E #CJK UNIFIED IDEOGRAPH +0x9F6E 0x6BA4 #CJK UNIFIED IDEOGRAPH +0x9F6F 0x6BAA #CJK UNIFIED IDEOGRAPH +0x9F70 0x6BAB #CJK UNIFIED IDEOGRAPH +0x9F71 0x6BAF #CJK UNIFIED IDEOGRAPH +0x9F72 0x6BB2 #CJK UNIFIED IDEOGRAPH +0x9F73 0x6BB1 #CJK UNIFIED IDEOGRAPH +0x9F74 0x6BB3 #CJK UNIFIED IDEOGRAPH +0x9F75 0x6BB7 #CJK UNIFIED IDEOGRAPH +0x9F76 0x6BBC #CJK UNIFIED IDEOGRAPH +0x9F77 0x6BC6 #CJK UNIFIED IDEOGRAPH +0x9F78 0x6BCB #CJK UNIFIED IDEOGRAPH +0x9F79 0x6BD3 #CJK UNIFIED IDEOGRAPH +0x9F7A 0x6BDF #CJK UNIFIED IDEOGRAPH +0x9F7B 0x6BEC #CJK UNIFIED IDEOGRAPH +0x9F7C 0x6BEB #CJK UNIFIED IDEOGRAPH +0x9F7D 0x6BF3 #CJK UNIFIED IDEOGRAPH +0x9F7E 0x6BEF #CJK UNIFIED IDEOGRAPH +0x9F80 0x9EBE #CJK UNIFIED IDEOGRAPH +0x9F81 0x6C08 #CJK UNIFIED IDEOGRAPH +0x9F82 0x6C13 #CJK UNIFIED IDEOGRAPH +0x9F83 0x6C14 #CJK UNIFIED IDEOGRAPH +0x9F84 0x6C1B #CJK UNIFIED IDEOGRAPH +0x9F85 0x6C24 #CJK UNIFIED IDEOGRAPH +0x9F86 0x6C23 #CJK UNIFIED IDEOGRAPH +0x9F87 0x6C5E #CJK UNIFIED IDEOGRAPH +0x9F88 0x6C55 #CJK UNIFIED IDEOGRAPH +0x9F89 0x6C62 #CJK UNIFIED IDEOGRAPH +0x9F8A 0x6C6A #CJK UNIFIED IDEOGRAPH +0x9F8B 0x6C82 #CJK UNIFIED IDEOGRAPH +0x9F8C 0x6C8D #CJK UNIFIED IDEOGRAPH +0x9F8D 0x6C9A #CJK UNIFIED IDEOGRAPH +0x9F8E 0x6C81 #CJK UNIFIED IDEOGRAPH +0x9F8F 0x6C9B #CJK UNIFIED IDEOGRAPH +0x9F90 0x6C7E #CJK UNIFIED IDEOGRAPH +0x9F91 0x6C68 #CJK UNIFIED IDEOGRAPH +0x9F92 0x6C73 #CJK UNIFIED IDEOGRAPH +0x9F93 0x6C92 #CJK UNIFIED IDEOGRAPH +0x9F94 0x6C90 #CJK UNIFIED IDEOGRAPH +0x9F95 0x6CC4 #CJK UNIFIED IDEOGRAPH +0x9F96 0x6CF1 #CJK UNIFIED IDEOGRAPH +0x9F97 0x6CD3 #CJK UNIFIED IDEOGRAPH +0x9F98 0x6CBD #CJK UNIFIED IDEOGRAPH +0x9F99 0x6CD7 #CJK UNIFIED IDEOGRAPH +0x9F9A 0x6CC5 #CJK UNIFIED IDEOGRAPH +0x9F9B 0x6CDD #CJK UNIFIED IDEOGRAPH +0x9F9C 0x6CAE #CJK UNIFIED IDEOGRAPH +0x9F9D 0x6CB1 #CJK UNIFIED IDEOGRAPH +0x9F9E 0x6CBE #CJK UNIFIED IDEOGRAPH +0x9F9F 0x6CBA #CJK UNIFIED IDEOGRAPH +0x9FA0 0x6CDB #CJK UNIFIED IDEOGRAPH +0x9FA1 0x6CEF #CJK UNIFIED IDEOGRAPH +0x9FA2 0x6CD9 #CJK UNIFIED IDEOGRAPH +0x9FA3 0x6CEA #CJK UNIFIED IDEOGRAPH +0x9FA4 0x6D1F #CJK UNIFIED IDEOGRAPH +0x9FA5 0x884D #CJK UNIFIED IDEOGRAPH +0x9FA6 0x6D36 #CJK UNIFIED IDEOGRAPH +0x9FA7 0x6D2B #CJK UNIFIED IDEOGRAPH +0x9FA8 0x6D3D #CJK UNIFIED IDEOGRAPH +0x9FA9 0x6D38 #CJK UNIFIED IDEOGRAPH +0x9FAA 0x6D19 #CJK UNIFIED IDEOGRAPH +0x9FAB 0x6D35 #CJK UNIFIED IDEOGRAPH +0x9FAC 0x6D33 #CJK UNIFIED IDEOGRAPH +0x9FAD 0x6D12 #CJK UNIFIED IDEOGRAPH +0x9FAE 0x6D0C #CJK UNIFIED IDEOGRAPH +0x9FAF 0x6D63 #CJK UNIFIED IDEOGRAPH +0x9FB0 0x6D93 #CJK UNIFIED IDEOGRAPH +0x9FB1 0x6D64 #CJK UNIFIED IDEOGRAPH +0x9FB2 0x6D5A #CJK UNIFIED IDEOGRAPH +0x9FB3 0x6D79 #CJK UNIFIED IDEOGRAPH +0x9FB4 0x6D59 #CJK UNIFIED IDEOGRAPH +0x9FB5 0x6D8E #CJK UNIFIED IDEOGRAPH +0x9FB6 0x6D95 #CJK UNIFIED IDEOGRAPH +0x9FB7 0x6FE4 #CJK UNIFIED IDEOGRAPH +0x9FB8 0x6D85 #CJK UNIFIED IDEOGRAPH +0x9FB9 0x6DF9 #CJK UNIFIED IDEOGRAPH +0x9FBA 0x6E15 #CJK UNIFIED IDEOGRAPH +0x9FBB 0x6E0A #CJK UNIFIED IDEOGRAPH +0x9FBC 0x6DB5 #CJK UNIFIED IDEOGRAPH +0x9FBD 0x6DC7 #CJK UNIFIED IDEOGRAPH +0x9FBE 0x6DE6 #CJK UNIFIED IDEOGRAPH +0x9FBF 0x6DB8 #CJK UNIFIED IDEOGRAPH +0x9FC0 0x6DC6 #CJK UNIFIED IDEOGRAPH +0x9FC1 0x6DEC #CJK UNIFIED IDEOGRAPH +0x9FC2 0x6DDE #CJK UNIFIED IDEOGRAPH +0x9FC3 0x6DCC #CJK UNIFIED IDEOGRAPH +0x9FC4 0x6DE8 #CJK UNIFIED IDEOGRAPH +0x9FC5 0x6DD2 #CJK UNIFIED IDEOGRAPH +0x9FC6 0x6DC5 #CJK UNIFIED IDEOGRAPH +0x9FC7 0x6DFA #CJK UNIFIED IDEOGRAPH +0x9FC8 0x6DD9 #CJK UNIFIED IDEOGRAPH +0x9FC9 0x6DE4 #CJK UNIFIED IDEOGRAPH +0x9FCA 0x6DD5 #CJK UNIFIED IDEOGRAPH +0x9FCB 0x6DEA #CJK UNIFIED IDEOGRAPH +0x9FCC 0x6DEE #CJK UNIFIED IDEOGRAPH +0x9FCD 0x6E2D #CJK UNIFIED IDEOGRAPH +0x9FCE 0x6E6E #CJK UNIFIED IDEOGRAPH +0x9FCF 0x6E2E #CJK UNIFIED IDEOGRAPH +0x9FD0 0x6E19 #CJK UNIFIED IDEOGRAPH +0x9FD1 0x6E72 #CJK UNIFIED IDEOGRAPH +0x9FD2 0x6E5F #CJK UNIFIED IDEOGRAPH +0x9FD3 0x6E3E #CJK UNIFIED IDEOGRAPH +0x9FD4 0x6E23 #CJK UNIFIED IDEOGRAPH +0x9FD5 0x6E6B #CJK UNIFIED IDEOGRAPH +0x9FD6 0x6E2B #CJK UNIFIED IDEOGRAPH +0x9FD7 0x6E76 #CJK UNIFIED IDEOGRAPH +0x9FD8 0x6E4D #CJK UNIFIED IDEOGRAPH +0x9FD9 0x6E1F #CJK UNIFIED IDEOGRAPH +0x9FDA 0x6E43 #CJK UNIFIED IDEOGRAPH +0x9FDB 0x6E3A #CJK UNIFIED IDEOGRAPH +0x9FDC 0x6E4E #CJK UNIFIED IDEOGRAPH +0x9FDD 0x6E24 #CJK UNIFIED IDEOGRAPH +0x9FDE 0x6EFF #CJK UNIFIED IDEOGRAPH +0x9FDF 0x6E1D #CJK UNIFIED IDEOGRAPH +0x9FE0 0x6E38 #CJK UNIFIED IDEOGRAPH +0x9FE1 0x6E82 #CJK UNIFIED IDEOGRAPH +0x9FE2 0x6EAA #CJK UNIFIED IDEOGRAPH +0x9FE3 0x6E98 #CJK UNIFIED IDEOGRAPH +0x9FE4 0x6EC9 #CJK UNIFIED IDEOGRAPH +0x9FE5 0x6EB7 #CJK UNIFIED IDEOGRAPH +0x9FE6 0x6ED3 #CJK UNIFIED IDEOGRAPH +0x9FE7 0x6EBD #CJK UNIFIED IDEOGRAPH +0x9FE8 0x6EAF #CJK UNIFIED IDEOGRAPH +0x9FE9 0x6EC4 #CJK UNIFIED IDEOGRAPH +0x9FEA 0x6EB2 #CJK UNIFIED IDEOGRAPH +0x9FEB 0x6ED4 #CJK UNIFIED IDEOGRAPH +0x9FEC 0x6ED5 #CJK UNIFIED IDEOGRAPH +0x9FED 0x6E8F #CJK UNIFIED IDEOGRAPH +0x9FEE 0x6EA5 #CJK UNIFIED IDEOGRAPH +0x9FEF 0x6EC2 #CJK UNIFIED IDEOGRAPH +0x9FF0 0x6E9F #CJK UNIFIED IDEOGRAPH +0x9FF1 0x6F41 #CJK UNIFIED IDEOGRAPH +0x9FF2 0x6F11 #CJK UNIFIED IDEOGRAPH +0x9FF3 0x704C #CJK UNIFIED IDEOGRAPH +0x9FF4 0x6EEC #CJK UNIFIED IDEOGRAPH +0x9FF5 0x6EF8 #CJK UNIFIED IDEOGRAPH +0x9FF6 0x6EFE #CJK UNIFIED IDEOGRAPH +0x9FF7 0x6F3F #CJK UNIFIED IDEOGRAPH +0x9FF8 0x6EF2 #CJK UNIFIED IDEOGRAPH +0x9FF9 0x6F31 #CJK UNIFIED IDEOGRAPH +0x9FFA 0x6EEF #CJK UNIFIED IDEOGRAPH +0x9FFB 0x6F32 #CJK UNIFIED IDEOGRAPH +0x9FFC 0x6ECC #CJK UNIFIED IDEOGRAPH +0xE040 0x6F3E #CJK UNIFIED IDEOGRAPH +0xE041 0x6F13 #CJK UNIFIED IDEOGRAPH +0xE042 0x6EF7 #CJK UNIFIED IDEOGRAPH +0xE043 0x6F86 #CJK UNIFIED IDEOGRAPH +0xE044 0x6F7A #CJK UNIFIED IDEOGRAPH +0xE045 0x6F78 #CJK UNIFIED IDEOGRAPH +0xE046 0x6F81 #CJK UNIFIED IDEOGRAPH +0xE047 0x6F80 #CJK UNIFIED IDEOGRAPH +0xE048 0x6F6F #CJK UNIFIED IDEOGRAPH +0xE049 0x6F5B #CJK UNIFIED IDEOGRAPH +0xE04A 0x6FF3 #CJK UNIFIED IDEOGRAPH +0xE04B 0x6F6D #CJK UNIFIED IDEOGRAPH +0xE04C 0x6F82 #CJK UNIFIED IDEOGRAPH +0xE04D 0x6F7C #CJK UNIFIED IDEOGRAPH +0xE04E 0x6F58 #CJK UNIFIED IDEOGRAPH +0xE04F 0x6F8E #CJK UNIFIED IDEOGRAPH +0xE050 0x6F91 #CJK UNIFIED IDEOGRAPH +0xE051 0x6FC2 #CJK UNIFIED IDEOGRAPH +0xE052 0x6F66 #CJK UNIFIED IDEOGRAPH +0xE053 0x6FB3 #CJK UNIFIED IDEOGRAPH +0xE054 0x6FA3 #CJK UNIFIED IDEOGRAPH +0xE055 0x6FA1 #CJK UNIFIED IDEOGRAPH +0xE056 0x6FA4 #CJK UNIFIED IDEOGRAPH +0xE057 0x6FB9 #CJK UNIFIED IDEOGRAPH +0xE058 0x6FC6 #CJK UNIFIED IDEOGRAPH +0xE059 0x6FAA #CJK UNIFIED IDEOGRAPH +0xE05A 0x6FDF #CJK UNIFIED IDEOGRAPH +0xE05B 0x6FD5 #CJK UNIFIED IDEOGRAPH +0xE05C 0x6FEC #CJK UNIFIED IDEOGRAPH +0xE05D 0x6FD4 #CJK UNIFIED IDEOGRAPH +0xE05E 0x6FD8 #CJK UNIFIED IDEOGRAPH +0xE05F 0x6FF1 #CJK UNIFIED IDEOGRAPH +0xE060 0x6FEE #CJK UNIFIED IDEOGRAPH +0xE061 0x6FDB #CJK UNIFIED IDEOGRAPH +0xE062 0x7009 #CJK UNIFIED IDEOGRAPH +0xE063 0x700B #CJK UNIFIED IDEOGRAPH +0xE064 0x6FFA #CJK UNIFIED IDEOGRAPH +0xE065 0x7011 #CJK UNIFIED IDEOGRAPH +0xE066 0x7001 #CJK UNIFIED IDEOGRAPH +0xE067 0x700F #CJK UNIFIED IDEOGRAPH +0xE068 0x6FFE #CJK UNIFIED IDEOGRAPH +0xE069 0x701B #CJK UNIFIED IDEOGRAPH +0xE06A 0x701A #CJK UNIFIED IDEOGRAPH +0xE06B 0x6F74 #CJK UNIFIED IDEOGRAPH +0xE06C 0x701D #CJK UNIFIED IDEOGRAPH +0xE06D 0x7018 #CJK UNIFIED IDEOGRAPH +0xE06E 0x701F #CJK UNIFIED IDEOGRAPH +0xE06F 0x7030 #CJK UNIFIED IDEOGRAPH +0xE070 0x703E #CJK UNIFIED IDEOGRAPH +0xE071 0x7032 #CJK UNIFIED IDEOGRAPH +0xE072 0x7051 #CJK UNIFIED IDEOGRAPH +0xE073 0x7063 #CJK UNIFIED IDEOGRAPH +0xE074 0x7099 #CJK UNIFIED IDEOGRAPH +0xE075 0x7092 #CJK UNIFIED IDEOGRAPH +0xE076 0x70AF #CJK UNIFIED IDEOGRAPH +0xE077 0x70F1 #CJK UNIFIED IDEOGRAPH +0xE078 0x70AC #CJK UNIFIED IDEOGRAPH +0xE079 0x70B8 #CJK UNIFIED IDEOGRAPH +0xE07A 0x70B3 #CJK UNIFIED IDEOGRAPH +0xE07B 0x70AE #CJK UNIFIED IDEOGRAPH +0xE07C 0x70DF #CJK UNIFIED IDEOGRAPH +0xE07D 0x70CB #CJK UNIFIED IDEOGRAPH +0xE07E 0x70DD #CJK UNIFIED IDEOGRAPH +0xE080 0x70D9 #CJK UNIFIED IDEOGRAPH +0xE081 0x7109 #CJK UNIFIED IDEOGRAPH +0xE082 0x70FD #CJK UNIFIED IDEOGRAPH +0xE083 0x711C #CJK UNIFIED IDEOGRAPH +0xE084 0x7119 #CJK UNIFIED IDEOGRAPH +0xE085 0x7165 #CJK UNIFIED IDEOGRAPH +0xE086 0x7155 #CJK UNIFIED IDEOGRAPH +0xE087 0x7188 #CJK UNIFIED IDEOGRAPH +0xE088 0x7166 #CJK UNIFIED IDEOGRAPH +0xE089 0x7162 #CJK UNIFIED IDEOGRAPH +0xE08A 0x714C #CJK UNIFIED IDEOGRAPH +0xE08B 0x7156 #CJK UNIFIED IDEOGRAPH +0xE08C 0x716C #CJK UNIFIED IDEOGRAPH +0xE08D 0x718F #CJK UNIFIED IDEOGRAPH +0xE08E 0x71FB #CJK UNIFIED IDEOGRAPH +0xE08F 0x7184 #CJK UNIFIED IDEOGRAPH +0xE090 0x7195 #CJK UNIFIED IDEOGRAPH +0xE091 0x71A8 #CJK UNIFIED IDEOGRAPH +0xE092 0x71AC #CJK UNIFIED IDEOGRAPH +0xE093 0x71D7 #CJK UNIFIED IDEOGRAPH +0xE094 0x71B9 #CJK UNIFIED IDEOGRAPH +0xE095 0x71BE #CJK UNIFIED IDEOGRAPH +0xE096 0x71D2 #CJK UNIFIED IDEOGRAPH +0xE097 0x71C9 #CJK UNIFIED IDEOGRAPH +0xE098 0x71D4 #CJK UNIFIED IDEOGRAPH +0xE099 0x71CE #CJK UNIFIED IDEOGRAPH +0xE09A 0x71E0 #CJK UNIFIED IDEOGRAPH +0xE09B 0x71EC #CJK UNIFIED IDEOGRAPH +0xE09C 0x71E7 #CJK UNIFIED IDEOGRAPH +0xE09D 0x71F5 #CJK UNIFIED IDEOGRAPH +0xE09E 0x71FC #CJK UNIFIED IDEOGRAPH +0xE09F 0x71F9 #CJK UNIFIED IDEOGRAPH +0xE0A0 0x71FF #CJK UNIFIED IDEOGRAPH +0xE0A1 0x720D #CJK UNIFIED IDEOGRAPH +0xE0A2 0x7210 #CJK UNIFIED IDEOGRAPH +0xE0A3 0x721B #CJK UNIFIED IDEOGRAPH +0xE0A4 0x7228 #CJK UNIFIED IDEOGRAPH +0xE0A5 0x722D #CJK UNIFIED IDEOGRAPH +0xE0A6 0x722C #CJK UNIFIED IDEOGRAPH +0xE0A7 0x7230 #CJK UNIFIED IDEOGRAPH +0xE0A8 0x7232 #CJK UNIFIED IDEOGRAPH +0xE0A9 0x723B #CJK UNIFIED IDEOGRAPH +0xE0AA 0x723C #CJK UNIFIED IDEOGRAPH +0xE0AB 0x723F #CJK UNIFIED IDEOGRAPH +0xE0AC 0x7240 #CJK UNIFIED IDEOGRAPH +0xE0AD 0x7246 #CJK UNIFIED IDEOGRAPH +0xE0AE 0x724B #CJK UNIFIED IDEOGRAPH +0xE0AF 0x7258 #CJK UNIFIED IDEOGRAPH +0xE0B0 0x7274 #CJK UNIFIED IDEOGRAPH +0xE0B1 0x727E #CJK UNIFIED IDEOGRAPH +0xE0B2 0x7282 #CJK UNIFIED IDEOGRAPH +0xE0B3 0x7281 #CJK UNIFIED IDEOGRAPH +0xE0B4 0x7287 #CJK UNIFIED IDEOGRAPH +0xE0B5 0x7292 #CJK UNIFIED IDEOGRAPH +0xE0B6 0x7296 #CJK UNIFIED IDEOGRAPH +0xE0B7 0x72A2 #CJK UNIFIED IDEOGRAPH +0xE0B8 0x72A7 #CJK UNIFIED IDEOGRAPH +0xE0B9 0x72B9 #CJK UNIFIED IDEOGRAPH +0xE0BA 0x72B2 #CJK UNIFIED IDEOGRAPH +0xE0BB 0x72C3 #CJK UNIFIED IDEOGRAPH +0xE0BC 0x72C6 #CJK UNIFIED IDEOGRAPH +0xE0BD 0x72C4 #CJK UNIFIED IDEOGRAPH +0xE0BE 0x72CE #CJK UNIFIED IDEOGRAPH +0xE0BF 0x72D2 #CJK UNIFIED IDEOGRAPH +0xE0C0 0x72E2 #CJK UNIFIED IDEOGRAPH +0xE0C1 0x72E0 #CJK UNIFIED IDEOGRAPH +0xE0C2 0x72E1 #CJK UNIFIED IDEOGRAPH +0xE0C3 0x72F9 #CJK UNIFIED IDEOGRAPH +0xE0C4 0x72F7 #CJK UNIFIED IDEOGRAPH +0xE0C5 0x500F #CJK UNIFIED IDEOGRAPH +0xE0C6 0x7317 #CJK UNIFIED IDEOGRAPH +0xE0C7 0x730A #CJK UNIFIED IDEOGRAPH +0xE0C8 0x731C #CJK UNIFIED IDEOGRAPH +0xE0C9 0x7316 #CJK UNIFIED IDEOGRAPH +0xE0CA 0x731D #CJK UNIFIED IDEOGRAPH +0xE0CB 0x7334 #CJK UNIFIED IDEOGRAPH +0xE0CC 0x732F #CJK UNIFIED IDEOGRAPH +0xE0CD 0x7329 #CJK UNIFIED IDEOGRAPH +0xE0CE 0x7325 #CJK UNIFIED IDEOGRAPH +0xE0CF 0x733E #CJK UNIFIED IDEOGRAPH +0xE0D0 0x734E #CJK UNIFIED IDEOGRAPH +0xE0D1 0x734F #CJK UNIFIED IDEOGRAPH +0xE0D2 0x9ED8 #CJK UNIFIED IDEOGRAPH +0xE0D3 0x7357 #CJK UNIFIED IDEOGRAPH +0xE0D4 0x736A #CJK UNIFIED IDEOGRAPH +0xE0D5 0x7368 #CJK UNIFIED IDEOGRAPH +0xE0D6 0x7370 #CJK UNIFIED IDEOGRAPH +0xE0D7 0x7378 #CJK UNIFIED IDEOGRAPH +0xE0D8 0x7375 #CJK UNIFIED IDEOGRAPH +0xE0D9 0x737B #CJK UNIFIED IDEOGRAPH +0xE0DA 0x737A #CJK UNIFIED IDEOGRAPH +0xE0DB 0x73C8 #CJK UNIFIED IDEOGRAPH +0xE0DC 0x73B3 #CJK UNIFIED IDEOGRAPH +0xE0DD 0x73CE #CJK UNIFIED IDEOGRAPH +0xE0DE 0x73BB #CJK UNIFIED IDEOGRAPH +0xE0DF 0x73C0 #CJK UNIFIED IDEOGRAPH +0xE0E0 0x73E5 #CJK UNIFIED IDEOGRAPH +0xE0E1 0x73EE #CJK UNIFIED IDEOGRAPH +0xE0E2 0x73DE #CJK UNIFIED IDEOGRAPH +0xE0E3 0x74A2 #CJK UNIFIED IDEOGRAPH +0xE0E4 0x7405 #CJK UNIFIED IDEOGRAPH +0xE0E5 0x746F #CJK UNIFIED IDEOGRAPH +0xE0E6 0x7425 #CJK UNIFIED IDEOGRAPH +0xE0E7 0x73F8 #CJK UNIFIED IDEOGRAPH +0xE0E8 0x7432 #CJK UNIFIED IDEOGRAPH +0xE0E9 0x743A #CJK UNIFIED IDEOGRAPH +0xE0EA 0x7455 #CJK UNIFIED IDEOGRAPH +0xE0EB 0x743F #CJK UNIFIED IDEOGRAPH +0xE0EC 0x745F #CJK UNIFIED IDEOGRAPH +0xE0ED 0x7459 #CJK UNIFIED IDEOGRAPH +0xE0EE 0x7441 #CJK UNIFIED IDEOGRAPH +0xE0EF 0x745C #CJK UNIFIED IDEOGRAPH +0xE0F0 0x7469 #CJK UNIFIED IDEOGRAPH +0xE0F1 0x7470 #CJK UNIFIED IDEOGRAPH +0xE0F2 0x7463 #CJK UNIFIED IDEOGRAPH +0xE0F3 0x746A #CJK UNIFIED IDEOGRAPH +0xE0F4 0x7476 #CJK UNIFIED IDEOGRAPH +0xE0F5 0x747E #CJK UNIFIED IDEOGRAPH +0xE0F6 0x748B #CJK UNIFIED IDEOGRAPH +0xE0F7 0x749E #CJK UNIFIED IDEOGRAPH +0xE0F8 0x74A7 #CJK UNIFIED IDEOGRAPH +0xE0F9 0x74CA #CJK UNIFIED IDEOGRAPH +0xE0FA 0x74CF #CJK UNIFIED IDEOGRAPH +0xE0FB 0x74D4 #CJK UNIFIED IDEOGRAPH +0xE0FC 0x73F1 #CJK UNIFIED IDEOGRAPH +0xE140 0x74E0 #CJK UNIFIED IDEOGRAPH +0xE141 0x74E3 #CJK UNIFIED IDEOGRAPH +0xE142 0x74E7 #CJK UNIFIED IDEOGRAPH +0xE143 0x74E9 #CJK UNIFIED IDEOGRAPH +0xE144 0x74EE #CJK UNIFIED IDEOGRAPH +0xE145 0x74F2 #CJK UNIFIED IDEOGRAPH +0xE146 0x74F0 #CJK UNIFIED IDEOGRAPH +0xE147 0x74F1 #CJK UNIFIED IDEOGRAPH +0xE148 0x74F8 #CJK UNIFIED IDEOGRAPH +0xE149 0x74F7 #CJK UNIFIED IDEOGRAPH +0xE14A 0x7504 #CJK UNIFIED IDEOGRAPH +0xE14B 0x7503 #CJK UNIFIED IDEOGRAPH +0xE14C 0x7505 #CJK UNIFIED IDEOGRAPH +0xE14D 0x750C #CJK UNIFIED IDEOGRAPH +0xE14E 0x750E #CJK UNIFIED IDEOGRAPH +0xE14F 0x750D #CJK UNIFIED IDEOGRAPH +0xE150 0x7515 #CJK UNIFIED IDEOGRAPH +0xE151 0x7513 #CJK UNIFIED IDEOGRAPH +0xE152 0x751E #CJK UNIFIED IDEOGRAPH +0xE153 0x7526 #CJK UNIFIED IDEOGRAPH +0xE154 0x752C #CJK UNIFIED IDEOGRAPH +0xE155 0x753C #CJK UNIFIED IDEOGRAPH +0xE156 0x7544 #CJK UNIFIED IDEOGRAPH +0xE157 0x754D #CJK UNIFIED IDEOGRAPH +0xE158 0x754A #CJK UNIFIED IDEOGRAPH +0xE159 0x7549 #CJK UNIFIED IDEOGRAPH +0xE15A 0x755B #CJK UNIFIED IDEOGRAPH +0xE15B 0x7546 #CJK UNIFIED IDEOGRAPH +0xE15C 0x755A #CJK UNIFIED IDEOGRAPH +0xE15D 0x7569 #CJK UNIFIED IDEOGRAPH +0xE15E 0x7564 #CJK UNIFIED IDEOGRAPH +0xE15F 0x7567 #CJK UNIFIED IDEOGRAPH +0xE160 0x756B #CJK UNIFIED IDEOGRAPH +0xE161 0x756D #CJK UNIFIED IDEOGRAPH +0xE162 0x7578 #CJK UNIFIED IDEOGRAPH +0xE163 0x7576 #CJK UNIFIED IDEOGRAPH +0xE164 0x7586 #CJK UNIFIED IDEOGRAPH +0xE165 0x7587 #CJK UNIFIED IDEOGRAPH +0xE166 0x7574 #CJK UNIFIED IDEOGRAPH +0xE167 0x758A #CJK UNIFIED IDEOGRAPH +0xE168 0x7589 #CJK UNIFIED IDEOGRAPH +0xE169 0x7582 #CJK UNIFIED IDEOGRAPH +0xE16A 0x7594 #CJK UNIFIED IDEOGRAPH +0xE16B 0x759A #CJK UNIFIED IDEOGRAPH +0xE16C 0x759D #CJK UNIFIED IDEOGRAPH +0xE16D 0x75A5 #CJK UNIFIED IDEOGRAPH +0xE16E 0x75A3 #CJK UNIFIED IDEOGRAPH +0xE16F 0x75C2 #CJK UNIFIED IDEOGRAPH +0xE170 0x75B3 #CJK UNIFIED IDEOGRAPH +0xE171 0x75C3 #CJK UNIFIED IDEOGRAPH +0xE172 0x75B5 #CJK UNIFIED IDEOGRAPH +0xE173 0x75BD #CJK UNIFIED IDEOGRAPH +0xE174 0x75B8 #CJK UNIFIED IDEOGRAPH +0xE175 0x75BC #CJK UNIFIED IDEOGRAPH +0xE176 0x75B1 #CJK UNIFIED IDEOGRAPH +0xE177 0x75CD #CJK UNIFIED IDEOGRAPH +0xE178 0x75CA #CJK UNIFIED IDEOGRAPH +0xE179 0x75D2 #CJK UNIFIED IDEOGRAPH +0xE17A 0x75D9 #CJK UNIFIED IDEOGRAPH +0xE17B 0x75E3 #CJK UNIFIED IDEOGRAPH +0xE17C 0x75DE #CJK UNIFIED IDEOGRAPH +0xE17D 0x75FE #CJK UNIFIED IDEOGRAPH +0xE17E 0x75FF #CJK UNIFIED IDEOGRAPH +0xE180 0x75FC #CJK UNIFIED IDEOGRAPH +0xE181 0x7601 #CJK UNIFIED IDEOGRAPH +0xE182 0x75F0 #CJK UNIFIED IDEOGRAPH +0xE183 0x75FA #CJK UNIFIED IDEOGRAPH +0xE184 0x75F2 #CJK UNIFIED IDEOGRAPH +0xE185 0x75F3 #CJK UNIFIED IDEOGRAPH +0xE186 0x760B #CJK UNIFIED IDEOGRAPH +0xE187 0x760D #CJK UNIFIED IDEOGRAPH +0xE188 0x7609 #CJK UNIFIED IDEOGRAPH +0xE189 0x761F #CJK UNIFIED IDEOGRAPH +0xE18A 0x7627 #CJK UNIFIED IDEOGRAPH +0xE18B 0x7620 #CJK UNIFIED IDEOGRAPH +0xE18C 0x7621 #CJK UNIFIED IDEOGRAPH +0xE18D 0x7622 #CJK UNIFIED IDEOGRAPH +0xE18E 0x7624 #CJK UNIFIED IDEOGRAPH +0xE18F 0x7634 #CJK UNIFIED IDEOGRAPH +0xE190 0x7630 #CJK UNIFIED IDEOGRAPH +0xE191 0x763B #CJK UNIFIED IDEOGRAPH +0xE192 0x7647 #CJK UNIFIED IDEOGRAPH +0xE193 0x7648 #CJK UNIFIED IDEOGRAPH +0xE194 0x7646 #CJK UNIFIED IDEOGRAPH +0xE195 0x765C #CJK UNIFIED IDEOGRAPH +0xE196 0x7658 #CJK UNIFIED IDEOGRAPH +0xE197 0x7661 #CJK UNIFIED IDEOGRAPH +0xE198 0x7662 #CJK UNIFIED IDEOGRAPH +0xE199 0x7668 #CJK UNIFIED IDEOGRAPH +0xE19A 0x7669 #CJK UNIFIED IDEOGRAPH +0xE19B 0x766A #CJK UNIFIED IDEOGRAPH +0xE19C 0x7667 #CJK UNIFIED IDEOGRAPH +0xE19D 0x766C #CJK UNIFIED IDEOGRAPH +0xE19E 0x7670 #CJK UNIFIED IDEOGRAPH +0xE19F 0x7672 #CJK UNIFIED IDEOGRAPH +0xE1A0 0x7676 #CJK UNIFIED IDEOGRAPH +0xE1A1 0x7678 #CJK UNIFIED IDEOGRAPH +0xE1A2 0x767C #CJK UNIFIED IDEOGRAPH +0xE1A3 0x7680 #CJK UNIFIED IDEOGRAPH +0xE1A4 0x7683 #CJK UNIFIED IDEOGRAPH +0xE1A5 0x7688 #CJK UNIFIED IDEOGRAPH +0xE1A6 0x768B #CJK UNIFIED IDEOGRAPH +0xE1A7 0x768E #CJK UNIFIED IDEOGRAPH +0xE1A8 0x7696 #CJK UNIFIED IDEOGRAPH +0xE1A9 0x7693 #CJK UNIFIED IDEOGRAPH +0xE1AA 0x7699 #CJK UNIFIED IDEOGRAPH +0xE1AB 0x769A #CJK UNIFIED IDEOGRAPH +0xE1AC 0x76B0 #CJK UNIFIED IDEOGRAPH +0xE1AD 0x76B4 #CJK UNIFIED IDEOGRAPH +0xE1AE 0x76B8 #CJK UNIFIED IDEOGRAPH +0xE1AF 0x76B9 #CJK UNIFIED IDEOGRAPH +0xE1B0 0x76BA #CJK UNIFIED IDEOGRAPH +0xE1B1 0x76C2 #CJK UNIFIED IDEOGRAPH +0xE1B2 0x76CD #CJK UNIFIED IDEOGRAPH +0xE1B3 0x76D6 #CJK UNIFIED IDEOGRAPH +0xE1B4 0x76D2 #CJK UNIFIED IDEOGRAPH +0xE1B5 0x76DE #CJK UNIFIED IDEOGRAPH +0xE1B6 0x76E1 #CJK UNIFIED IDEOGRAPH +0xE1B7 0x76E5 #CJK UNIFIED IDEOGRAPH +0xE1B8 0x76E7 #CJK UNIFIED IDEOGRAPH +0xE1B9 0x76EA #CJK UNIFIED IDEOGRAPH +0xE1BA 0x862F #CJK UNIFIED IDEOGRAPH +0xE1BB 0x76FB #CJK UNIFIED IDEOGRAPH +0xE1BC 0x7708 #CJK UNIFIED IDEOGRAPH +0xE1BD 0x7707 #CJK UNIFIED IDEOGRAPH +0xE1BE 0x7704 #CJK UNIFIED IDEOGRAPH +0xE1BF 0x7729 #CJK UNIFIED IDEOGRAPH +0xE1C0 0x7724 #CJK UNIFIED IDEOGRAPH +0xE1C1 0x771E #CJK UNIFIED IDEOGRAPH +0xE1C2 0x7725 #CJK UNIFIED IDEOGRAPH +0xE1C3 0x7726 #CJK UNIFIED IDEOGRAPH +0xE1C4 0x771B #CJK UNIFIED IDEOGRAPH +0xE1C5 0x7737 #CJK UNIFIED IDEOGRAPH +0xE1C6 0x7738 #CJK UNIFIED IDEOGRAPH +0xE1C7 0x7747 #CJK UNIFIED IDEOGRAPH +0xE1C8 0x775A #CJK UNIFIED IDEOGRAPH +0xE1C9 0x7768 #CJK UNIFIED IDEOGRAPH +0xE1CA 0x776B #CJK UNIFIED IDEOGRAPH +0xE1CB 0x775B #CJK UNIFIED IDEOGRAPH +0xE1CC 0x7765 #CJK UNIFIED IDEOGRAPH +0xE1CD 0x777F #CJK UNIFIED IDEOGRAPH +0xE1CE 0x777E #CJK UNIFIED IDEOGRAPH +0xE1CF 0x7779 #CJK UNIFIED IDEOGRAPH +0xE1D0 0x778E #CJK UNIFIED IDEOGRAPH +0xE1D1 0x778B #CJK UNIFIED IDEOGRAPH +0xE1D2 0x7791 #CJK UNIFIED IDEOGRAPH +0xE1D3 0x77A0 #CJK UNIFIED IDEOGRAPH +0xE1D4 0x779E #CJK UNIFIED IDEOGRAPH +0xE1D5 0x77B0 #CJK UNIFIED IDEOGRAPH +0xE1D6 0x77B6 #CJK UNIFIED IDEOGRAPH +0xE1D7 0x77B9 #CJK UNIFIED IDEOGRAPH +0xE1D8 0x77BF #CJK UNIFIED IDEOGRAPH +0xE1D9 0x77BC #CJK UNIFIED IDEOGRAPH +0xE1DA 0x77BD #CJK UNIFIED IDEOGRAPH +0xE1DB 0x77BB #CJK UNIFIED IDEOGRAPH +0xE1DC 0x77C7 #CJK UNIFIED IDEOGRAPH +0xE1DD 0x77CD #CJK UNIFIED IDEOGRAPH +0xE1DE 0x77D7 #CJK UNIFIED IDEOGRAPH +0xE1DF 0x77DA #CJK UNIFIED IDEOGRAPH +0xE1E0 0x77DC #CJK UNIFIED IDEOGRAPH +0xE1E1 0x77E3 #CJK UNIFIED IDEOGRAPH +0xE1E2 0x77EE #CJK UNIFIED IDEOGRAPH +0xE1E3 0x77FC #CJK UNIFIED IDEOGRAPH +0xE1E4 0x780C #CJK UNIFIED IDEOGRAPH +0xE1E5 0x7812 #CJK UNIFIED IDEOGRAPH +0xE1E6 0x7926 #CJK UNIFIED IDEOGRAPH +0xE1E7 0x7820 #CJK UNIFIED IDEOGRAPH +0xE1E8 0x792A #CJK UNIFIED IDEOGRAPH +0xE1E9 0x7845 #CJK UNIFIED IDEOGRAPH +0xE1EA 0x788E #CJK UNIFIED IDEOGRAPH +0xE1EB 0x7874 #CJK UNIFIED IDEOGRAPH +0xE1EC 0x7886 #CJK UNIFIED IDEOGRAPH +0xE1ED 0x787C #CJK UNIFIED IDEOGRAPH +0xE1EE 0x789A #CJK UNIFIED IDEOGRAPH +0xE1EF 0x788C #CJK UNIFIED IDEOGRAPH +0xE1F0 0x78A3 #CJK UNIFIED IDEOGRAPH +0xE1F1 0x78B5 #CJK UNIFIED IDEOGRAPH +0xE1F2 0x78AA #CJK UNIFIED IDEOGRAPH +0xE1F3 0x78AF #CJK UNIFIED IDEOGRAPH +0xE1F4 0x78D1 #CJK UNIFIED IDEOGRAPH +0xE1F5 0x78C6 #CJK UNIFIED IDEOGRAPH +0xE1F6 0x78CB #CJK UNIFIED IDEOGRAPH +0xE1F7 0x78D4 #CJK UNIFIED IDEOGRAPH +0xE1F8 0x78BE #CJK UNIFIED IDEOGRAPH +0xE1F9 0x78BC #CJK UNIFIED IDEOGRAPH +0xE1FA 0x78C5 #CJK UNIFIED IDEOGRAPH +0xE1FB 0x78CA #CJK UNIFIED IDEOGRAPH +0xE1FC 0x78EC #CJK UNIFIED IDEOGRAPH +0xE240 0x78E7 #CJK UNIFIED IDEOGRAPH +0xE241 0x78DA #CJK UNIFIED IDEOGRAPH +0xE242 0x78FD #CJK UNIFIED IDEOGRAPH +0xE243 0x78F4 #CJK UNIFIED IDEOGRAPH +0xE244 0x7907 #CJK UNIFIED IDEOGRAPH +0xE245 0x7912 #CJK UNIFIED IDEOGRAPH +0xE246 0x7911 #CJK UNIFIED IDEOGRAPH +0xE247 0x7919 #CJK UNIFIED IDEOGRAPH +0xE248 0x792C #CJK UNIFIED IDEOGRAPH +0xE249 0x792B #CJK UNIFIED IDEOGRAPH +0xE24A 0x7940 #CJK UNIFIED IDEOGRAPH +0xE24B 0x7960 #CJK UNIFIED IDEOGRAPH +0xE24C 0x7957 #CJK UNIFIED IDEOGRAPH +0xE24D 0x795F #CJK UNIFIED IDEOGRAPH +0xE24E 0x795A #CJK UNIFIED IDEOGRAPH +0xE24F 0x7955 #CJK UNIFIED IDEOGRAPH +0xE250 0x7953 #CJK UNIFIED IDEOGRAPH +0xE251 0x797A #CJK UNIFIED IDEOGRAPH +0xE252 0x797F #CJK UNIFIED IDEOGRAPH +0xE253 0x798A #CJK UNIFIED IDEOGRAPH +0xE254 0x799D #CJK UNIFIED IDEOGRAPH +0xE255 0x79A7 #CJK UNIFIED IDEOGRAPH +0xE256 0x9F4B #CJK UNIFIED IDEOGRAPH +0xE257 0x79AA #CJK UNIFIED IDEOGRAPH +0xE258 0x79AE #CJK UNIFIED IDEOGRAPH +0xE259 0x79B3 #CJK UNIFIED IDEOGRAPH +0xE25A 0x79B9 #CJK UNIFIED IDEOGRAPH +0xE25B 0x79BA #CJK UNIFIED IDEOGRAPH +0xE25C 0x79C9 #CJK UNIFIED IDEOGRAPH +0xE25D 0x79D5 #CJK UNIFIED IDEOGRAPH +0xE25E 0x79E7 #CJK UNIFIED IDEOGRAPH +0xE25F 0x79EC #CJK UNIFIED IDEOGRAPH +0xE260 0x79E1 #CJK UNIFIED IDEOGRAPH +0xE261 0x79E3 #CJK UNIFIED IDEOGRAPH +0xE262 0x7A08 #CJK UNIFIED IDEOGRAPH +0xE263 0x7A0D #CJK UNIFIED IDEOGRAPH +0xE264 0x7A18 #CJK UNIFIED IDEOGRAPH +0xE265 0x7A19 #CJK UNIFIED IDEOGRAPH +0xE266 0x7A20 #CJK UNIFIED IDEOGRAPH +0xE267 0x7A1F #CJK UNIFIED IDEOGRAPH +0xE268 0x7980 #CJK UNIFIED IDEOGRAPH +0xE269 0x7A31 #CJK UNIFIED IDEOGRAPH +0xE26A 0x7A3B #CJK UNIFIED IDEOGRAPH +0xE26B 0x7A3E #CJK UNIFIED IDEOGRAPH +0xE26C 0x7A37 #CJK UNIFIED IDEOGRAPH +0xE26D 0x7A43 #CJK UNIFIED IDEOGRAPH +0xE26E 0x7A57 #CJK UNIFIED IDEOGRAPH +0xE26F 0x7A49 #CJK UNIFIED IDEOGRAPH +0xE270 0x7A61 #CJK UNIFIED IDEOGRAPH +0xE271 0x7A62 #CJK UNIFIED IDEOGRAPH +0xE272 0x7A69 #CJK UNIFIED IDEOGRAPH +0xE273 0x9F9D #CJK UNIFIED IDEOGRAPH +0xE274 0x7A70 #CJK UNIFIED IDEOGRAPH +0xE275 0x7A79 #CJK UNIFIED IDEOGRAPH +0xE276 0x7A7D #CJK UNIFIED IDEOGRAPH +0xE277 0x7A88 #CJK UNIFIED IDEOGRAPH +0xE278 0x7A97 #CJK UNIFIED IDEOGRAPH +0xE279 0x7A95 #CJK UNIFIED IDEOGRAPH +0xE27A 0x7A98 #CJK UNIFIED IDEOGRAPH +0xE27B 0x7A96 #CJK UNIFIED IDEOGRAPH +0xE27C 0x7AA9 #CJK UNIFIED IDEOGRAPH +0xE27D 0x7AC8 #CJK UNIFIED IDEOGRAPH +0xE27E 0x7AB0 #CJK UNIFIED IDEOGRAPH +0xE280 0x7AB6 #CJK UNIFIED IDEOGRAPH +0xE281 0x7AC5 #CJK UNIFIED IDEOGRAPH +0xE282 0x7AC4 #CJK UNIFIED IDEOGRAPH +0xE283 0x7ABF #CJK UNIFIED IDEOGRAPH +0xE284 0x9083 #CJK UNIFIED IDEOGRAPH +0xE285 0x7AC7 #CJK UNIFIED IDEOGRAPH +0xE286 0x7ACA #CJK UNIFIED IDEOGRAPH +0xE287 0x7ACD #CJK UNIFIED IDEOGRAPH +0xE288 0x7ACF #CJK UNIFIED IDEOGRAPH +0xE289 0x7AD5 #CJK UNIFIED IDEOGRAPH +0xE28A 0x7AD3 #CJK UNIFIED IDEOGRAPH +0xE28B 0x7AD9 #CJK UNIFIED IDEOGRAPH +0xE28C 0x7ADA #CJK UNIFIED IDEOGRAPH +0xE28D 0x7ADD #CJK UNIFIED IDEOGRAPH +0xE28E 0x7AE1 #CJK UNIFIED IDEOGRAPH +0xE28F 0x7AE2 #CJK UNIFIED IDEOGRAPH +0xE290 0x7AE6 #CJK UNIFIED IDEOGRAPH +0xE291 0x7AED #CJK UNIFIED IDEOGRAPH +0xE292 0x7AF0 #CJK UNIFIED IDEOGRAPH +0xE293 0x7B02 #CJK UNIFIED IDEOGRAPH +0xE294 0x7B0F #CJK UNIFIED IDEOGRAPH +0xE295 0x7B0A #CJK UNIFIED IDEOGRAPH +0xE296 0x7B06 #CJK UNIFIED IDEOGRAPH +0xE297 0x7B33 #CJK UNIFIED IDEOGRAPH +0xE298 0x7B18 #CJK UNIFIED IDEOGRAPH +0xE299 0x7B19 #CJK UNIFIED IDEOGRAPH +0xE29A 0x7B1E #CJK UNIFIED IDEOGRAPH +0xE29B 0x7B35 #CJK UNIFIED IDEOGRAPH +0xE29C 0x7B28 #CJK UNIFIED IDEOGRAPH +0xE29D 0x7B36 #CJK UNIFIED IDEOGRAPH +0xE29E 0x7B50 #CJK UNIFIED IDEOGRAPH +0xE29F 0x7B7A #CJK UNIFIED IDEOGRAPH +0xE2A0 0x7B04 #CJK UNIFIED IDEOGRAPH +0xE2A1 0x7B4D #CJK UNIFIED IDEOGRAPH +0xE2A2 0x7B0B #CJK UNIFIED IDEOGRAPH +0xE2A3 0x7B4C #CJK UNIFIED IDEOGRAPH +0xE2A4 0x7B45 #CJK UNIFIED IDEOGRAPH +0xE2A5 0x7B75 #CJK UNIFIED IDEOGRAPH +0xE2A6 0x7B65 #CJK UNIFIED IDEOGRAPH +0xE2A7 0x7B74 #CJK UNIFIED IDEOGRAPH +0xE2A8 0x7B67 #CJK UNIFIED IDEOGRAPH +0xE2A9 0x7B70 #CJK UNIFIED IDEOGRAPH +0xE2AA 0x7B71 #CJK UNIFIED IDEOGRAPH +0xE2AB 0x7B6C #CJK UNIFIED IDEOGRAPH +0xE2AC 0x7B6E #CJK UNIFIED IDEOGRAPH +0xE2AD 0x7B9D #CJK UNIFIED IDEOGRAPH +0xE2AE 0x7B98 #CJK UNIFIED IDEOGRAPH +0xE2AF 0x7B9F #CJK UNIFIED IDEOGRAPH +0xE2B0 0x7B8D #CJK UNIFIED IDEOGRAPH +0xE2B1 0x7B9C #CJK UNIFIED IDEOGRAPH +0xE2B2 0x7B9A #CJK UNIFIED IDEOGRAPH +0xE2B3 0x7B8B #CJK UNIFIED IDEOGRAPH +0xE2B4 0x7B92 #CJK UNIFIED IDEOGRAPH +0xE2B5 0x7B8F #CJK UNIFIED IDEOGRAPH +0xE2B6 0x7B5D #CJK UNIFIED IDEOGRAPH +0xE2B7 0x7B99 #CJK UNIFIED IDEOGRAPH +0xE2B8 0x7BCB #CJK UNIFIED IDEOGRAPH +0xE2B9 0x7BC1 #CJK UNIFIED IDEOGRAPH +0xE2BA 0x7BCC #CJK UNIFIED IDEOGRAPH +0xE2BB 0x7BCF #CJK UNIFIED IDEOGRAPH +0xE2BC 0x7BB4 #CJK UNIFIED IDEOGRAPH +0xE2BD 0x7BC6 #CJK UNIFIED IDEOGRAPH +0xE2BE 0x7BDD #CJK UNIFIED IDEOGRAPH +0xE2BF 0x7BE9 #CJK UNIFIED IDEOGRAPH +0xE2C0 0x7C11 #CJK UNIFIED IDEOGRAPH +0xE2C1 0x7C14 #CJK UNIFIED IDEOGRAPH +0xE2C2 0x7BE6 #CJK UNIFIED IDEOGRAPH +0xE2C3 0x7BE5 #CJK UNIFIED IDEOGRAPH +0xE2C4 0x7C60 #CJK UNIFIED IDEOGRAPH +0xE2C5 0x7C00 #CJK UNIFIED IDEOGRAPH +0xE2C6 0x7C07 #CJK UNIFIED IDEOGRAPH +0xE2C7 0x7C13 #CJK UNIFIED IDEOGRAPH +0xE2C8 0x7BF3 #CJK UNIFIED IDEOGRAPH +0xE2C9 0x7BF7 #CJK UNIFIED IDEOGRAPH +0xE2CA 0x7C17 #CJK UNIFIED IDEOGRAPH +0xE2CB 0x7C0D #CJK UNIFIED IDEOGRAPH +0xE2CC 0x7BF6 #CJK UNIFIED IDEOGRAPH +0xE2CD 0x7C23 #CJK UNIFIED IDEOGRAPH +0xE2CE 0x7C27 #CJK UNIFIED IDEOGRAPH +0xE2CF 0x7C2A #CJK UNIFIED IDEOGRAPH +0xE2D0 0x7C1F #CJK UNIFIED IDEOGRAPH +0xE2D1 0x7C37 #CJK UNIFIED IDEOGRAPH +0xE2D2 0x7C2B #CJK UNIFIED IDEOGRAPH +0xE2D3 0x7C3D #CJK UNIFIED IDEOGRAPH +0xE2D4 0x7C4C #CJK UNIFIED IDEOGRAPH +0xE2D5 0x7C43 #CJK UNIFIED IDEOGRAPH +0xE2D6 0x7C54 #CJK UNIFIED IDEOGRAPH +0xE2D7 0x7C4F #CJK UNIFIED IDEOGRAPH +0xE2D8 0x7C40 #CJK UNIFIED IDEOGRAPH +0xE2D9 0x7C50 #CJK UNIFIED IDEOGRAPH +0xE2DA 0x7C58 #CJK UNIFIED IDEOGRAPH +0xE2DB 0x7C5F #CJK UNIFIED IDEOGRAPH +0xE2DC 0x7C64 #CJK UNIFIED IDEOGRAPH +0xE2DD 0x7C56 #CJK UNIFIED IDEOGRAPH +0xE2DE 0x7C65 #CJK UNIFIED IDEOGRAPH +0xE2DF 0x7C6C #CJK UNIFIED IDEOGRAPH +0xE2E0 0x7C75 #CJK UNIFIED IDEOGRAPH +0xE2E1 0x7C83 #CJK UNIFIED IDEOGRAPH +0xE2E2 0x7C90 #CJK UNIFIED IDEOGRAPH +0xE2E3 0x7CA4 #CJK UNIFIED IDEOGRAPH +0xE2E4 0x7CAD #CJK UNIFIED IDEOGRAPH +0xE2E5 0x7CA2 #CJK UNIFIED IDEOGRAPH +0xE2E6 0x7CAB #CJK UNIFIED IDEOGRAPH +0xE2E7 0x7CA1 #CJK UNIFIED IDEOGRAPH +0xE2E8 0x7CA8 #CJK UNIFIED IDEOGRAPH +0xE2E9 0x7CB3 #CJK UNIFIED IDEOGRAPH +0xE2EA 0x7CB2 #CJK UNIFIED IDEOGRAPH +0xE2EB 0x7CB1 #CJK UNIFIED IDEOGRAPH +0xE2EC 0x7CAE #CJK UNIFIED IDEOGRAPH +0xE2ED 0x7CB9 #CJK UNIFIED IDEOGRAPH +0xE2EE 0x7CBD #CJK UNIFIED IDEOGRAPH +0xE2EF 0x7CC0 #CJK UNIFIED IDEOGRAPH +0xE2F0 0x7CC5 #CJK UNIFIED IDEOGRAPH +0xE2F1 0x7CC2 #CJK UNIFIED IDEOGRAPH +0xE2F2 0x7CD8 #CJK UNIFIED IDEOGRAPH +0xE2F3 0x7CD2 #CJK UNIFIED IDEOGRAPH +0xE2F4 0x7CDC #CJK UNIFIED IDEOGRAPH +0xE2F5 0x7CE2 #CJK UNIFIED IDEOGRAPH +0xE2F6 0x9B3B #CJK UNIFIED IDEOGRAPH +0xE2F7 0x7CEF #CJK UNIFIED IDEOGRAPH +0xE2F8 0x7CF2 #CJK UNIFIED IDEOGRAPH +0xE2F9 0x7CF4 #CJK UNIFIED IDEOGRAPH +0xE2FA 0x7CF6 #CJK UNIFIED IDEOGRAPH +0xE2FB 0x7CFA #CJK UNIFIED IDEOGRAPH +0xE2FC 0x7D06 #CJK UNIFIED IDEOGRAPH +0xE340 0x7D02 #CJK UNIFIED IDEOGRAPH +0xE341 0x7D1C #CJK UNIFIED IDEOGRAPH +0xE342 0x7D15 #CJK UNIFIED IDEOGRAPH +0xE343 0x7D0A #CJK UNIFIED IDEOGRAPH +0xE344 0x7D45 #CJK UNIFIED IDEOGRAPH +0xE345 0x7D4B #CJK UNIFIED IDEOGRAPH +0xE346 0x7D2E #CJK UNIFIED IDEOGRAPH +0xE347 0x7D32 #CJK UNIFIED IDEOGRAPH +0xE348 0x7D3F #CJK UNIFIED IDEOGRAPH +0xE349 0x7D35 #CJK UNIFIED IDEOGRAPH +0xE34A 0x7D46 #CJK UNIFIED IDEOGRAPH +0xE34B 0x7D73 #CJK UNIFIED IDEOGRAPH +0xE34C 0x7D56 #CJK UNIFIED IDEOGRAPH +0xE34D 0x7D4E #CJK UNIFIED IDEOGRAPH +0xE34E 0x7D72 #CJK UNIFIED IDEOGRAPH +0xE34F 0x7D68 #CJK UNIFIED IDEOGRAPH +0xE350 0x7D6E #CJK UNIFIED IDEOGRAPH +0xE351 0x7D4F #CJK UNIFIED IDEOGRAPH +0xE352 0x7D63 #CJK UNIFIED IDEOGRAPH +0xE353 0x7D93 #CJK UNIFIED IDEOGRAPH +0xE354 0x7D89 #CJK UNIFIED IDEOGRAPH +0xE355 0x7D5B #CJK UNIFIED IDEOGRAPH +0xE356 0x7D8F #CJK UNIFIED IDEOGRAPH +0xE357 0x7D7D #CJK UNIFIED IDEOGRAPH +0xE358 0x7D9B #CJK UNIFIED IDEOGRAPH +0xE359 0x7DBA #CJK UNIFIED IDEOGRAPH +0xE35A 0x7DAE #CJK UNIFIED IDEOGRAPH +0xE35B 0x7DA3 #CJK UNIFIED IDEOGRAPH +0xE35C 0x7DB5 #CJK UNIFIED IDEOGRAPH +0xE35D 0x7DC7 #CJK UNIFIED IDEOGRAPH +0xE35E 0x7DBD #CJK UNIFIED IDEOGRAPH +0xE35F 0x7DAB #CJK UNIFIED IDEOGRAPH +0xE360 0x7E3D #CJK UNIFIED IDEOGRAPH +0xE361 0x7DA2 #CJK UNIFIED IDEOGRAPH +0xE362 0x7DAF #CJK UNIFIED IDEOGRAPH +0xE363 0x7DDC #CJK UNIFIED IDEOGRAPH +0xE364 0x7DB8 #CJK UNIFIED IDEOGRAPH +0xE365 0x7D9F #CJK UNIFIED IDEOGRAPH +0xE366 0x7DB0 #CJK UNIFIED IDEOGRAPH +0xE367 0x7DD8 #CJK UNIFIED IDEOGRAPH +0xE368 0x7DDD #CJK UNIFIED IDEOGRAPH +0xE369 0x7DE4 #CJK UNIFIED IDEOGRAPH +0xE36A 0x7DDE #CJK UNIFIED IDEOGRAPH +0xE36B 0x7DFB #CJK UNIFIED IDEOGRAPH +0xE36C 0x7DF2 #CJK UNIFIED IDEOGRAPH +0xE36D 0x7DE1 #CJK UNIFIED IDEOGRAPH +0xE36E 0x7E05 #CJK UNIFIED IDEOGRAPH +0xE36F 0x7E0A #CJK UNIFIED IDEOGRAPH +0xE370 0x7E23 #CJK UNIFIED IDEOGRAPH +0xE371 0x7E21 #CJK UNIFIED IDEOGRAPH +0xE372 0x7E12 #CJK UNIFIED IDEOGRAPH +0xE373 0x7E31 #CJK UNIFIED IDEOGRAPH +0xE374 0x7E1F #CJK UNIFIED IDEOGRAPH +0xE375 0x7E09 #CJK UNIFIED IDEOGRAPH +0xE376 0x7E0B #CJK UNIFIED IDEOGRAPH +0xE377 0x7E22 #CJK UNIFIED IDEOGRAPH +0xE378 0x7E46 #CJK UNIFIED IDEOGRAPH +0xE379 0x7E66 #CJK UNIFIED IDEOGRAPH +0xE37A 0x7E3B #CJK UNIFIED IDEOGRAPH +0xE37B 0x7E35 #CJK UNIFIED IDEOGRAPH +0xE37C 0x7E39 #CJK UNIFIED IDEOGRAPH +0xE37D 0x7E43 #CJK UNIFIED IDEOGRAPH +0xE37E 0x7E37 #CJK UNIFIED IDEOGRAPH +0xE380 0x7E32 #CJK UNIFIED IDEOGRAPH +0xE381 0x7E3A #CJK UNIFIED IDEOGRAPH +0xE382 0x7E67 #CJK UNIFIED IDEOGRAPH +0xE383 0x7E5D #CJK UNIFIED IDEOGRAPH +0xE384 0x7E56 #CJK UNIFIED IDEOGRAPH +0xE385 0x7E5E #CJK UNIFIED IDEOGRAPH +0xE386 0x7E59 #CJK UNIFIED IDEOGRAPH +0xE387 0x7E5A #CJK UNIFIED IDEOGRAPH +0xE388 0x7E79 #CJK UNIFIED IDEOGRAPH +0xE389 0x7E6A #CJK UNIFIED IDEOGRAPH +0xE38A 0x7E69 #CJK UNIFIED IDEOGRAPH +0xE38B 0x7E7C #CJK UNIFIED IDEOGRAPH +0xE38C 0x7E7B #CJK UNIFIED IDEOGRAPH +0xE38D 0x7E83 #CJK UNIFIED IDEOGRAPH +0xE38E 0x7DD5 #CJK UNIFIED IDEOGRAPH +0xE38F 0x7E7D #CJK UNIFIED IDEOGRAPH +0xE390 0x8FAE #CJK UNIFIED IDEOGRAPH +0xE391 0x7E7F #CJK UNIFIED IDEOGRAPH +0xE392 0x7E88 #CJK UNIFIED IDEOGRAPH +0xE393 0x7E89 #CJK UNIFIED IDEOGRAPH +0xE394 0x7E8C #CJK UNIFIED IDEOGRAPH +0xE395 0x7E92 #CJK UNIFIED IDEOGRAPH +0xE396 0x7E90 #CJK UNIFIED IDEOGRAPH +0xE397 0x7E93 #CJK UNIFIED IDEOGRAPH +0xE398 0x7E94 #CJK UNIFIED IDEOGRAPH +0xE399 0x7E96 #CJK UNIFIED IDEOGRAPH +0xE39A 0x7E8E #CJK UNIFIED IDEOGRAPH +0xE39B 0x7E9B #CJK UNIFIED IDEOGRAPH +0xE39C 0x7E9C #CJK UNIFIED IDEOGRAPH +0xE39D 0x7F38 #CJK UNIFIED IDEOGRAPH +0xE39E 0x7F3A #CJK UNIFIED IDEOGRAPH +0xE39F 0x7F45 #CJK UNIFIED IDEOGRAPH +0xE3A0 0x7F4C #CJK UNIFIED IDEOGRAPH +0xE3A1 0x7F4D #CJK UNIFIED IDEOGRAPH +0xE3A2 0x7F4E #CJK UNIFIED IDEOGRAPH +0xE3A3 0x7F50 #CJK UNIFIED IDEOGRAPH +0xE3A4 0x7F51 #CJK UNIFIED IDEOGRAPH +0xE3A5 0x7F55 #CJK UNIFIED IDEOGRAPH +0xE3A6 0x7F54 #CJK UNIFIED IDEOGRAPH +0xE3A7 0x7F58 #CJK UNIFIED IDEOGRAPH +0xE3A8 0x7F5F #CJK UNIFIED IDEOGRAPH +0xE3A9 0x7F60 #CJK UNIFIED IDEOGRAPH +0xE3AA 0x7F68 #CJK UNIFIED IDEOGRAPH +0xE3AB 0x7F69 #CJK UNIFIED IDEOGRAPH +0xE3AC 0x7F67 #CJK UNIFIED IDEOGRAPH +0xE3AD 0x7F78 #CJK UNIFIED IDEOGRAPH +0xE3AE 0x7F82 #CJK UNIFIED IDEOGRAPH +0xE3AF 0x7F86 #CJK UNIFIED IDEOGRAPH +0xE3B0 0x7F83 #CJK UNIFIED IDEOGRAPH +0xE3B1 0x7F88 #CJK UNIFIED IDEOGRAPH +0xE3B2 0x7F87 #CJK UNIFIED IDEOGRAPH +0xE3B3 0x7F8C #CJK UNIFIED IDEOGRAPH +0xE3B4 0x7F94 #CJK UNIFIED IDEOGRAPH +0xE3B5 0x7F9E #CJK UNIFIED IDEOGRAPH +0xE3B6 0x7F9D #CJK UNIFIED IDEOGRAPH +0xE3B7 0x7F9A #CJK UNIFIED IDEOGRAPH +0xE3B8 0x7FA3 #CJK UNIFIED IDEOGRAPH +0xE3B9 0x7FAF #CJK UNIFIED IDEOGRAPH +0xE3BA 0x7FB2 #CJK UNIFIED IDEOGRAPH +0xE3BB 0x7FB9 #CJK UNIFIED IDEOGRAPH +0xE3BC 0x7FAE #CJK UNIFIED IDEOGRAPH +0xE3BD 0x7FB6 #CJK UNIFIED IDEOGRAPH +0xE3BE 0x7FB8 #CJK UNIFIED IDEOGRAPH +0xE3BF 0x8B71 #CJK UNIFIED IDEOGRAPH +0xE3C0 0x7FC5 #CJK UNIFIED IDEOGRAPH +0xE3C1 0x7FC6 #CJK UNIFIED IDEOGRAPH +0xE3C2 0x7FCA #CJK UNIFIED IDEOGRAPH +0xE3C3 0x7FD5 #CJK UNIFIED IDEOGRAPH +0xE3C4 0x7FD4 #CJK UNIFIED IDEOGRAPH +0xE3C5 0x7FE1 #CJK UNIFIED IDEOGRAPH +0xE3C6 0x7FE6 #CJK UNIFIED IDEOGRAPH +0xE3C7 0x7FE9 #CJK UNIFIED IDEOGRAPH +0xE3C8 0x7FF3 #CJK UNIFIED IDEOGRAPH +0xE3C9 0x7FF9 #CJK UNIFIED IDEOGRAPH +0xE3CA 0x98DC #CJK UNIFIED IDEOGRAPH +0xE3CB 0x8006 #CJK UNIFIED IDEOGRAPH +0xE3CC 0x8004 #CJK UNIFIED IDEOGRAPH +0xE3CD 0x800B #CJK UNIFIED IDEOGRAPH +0xE3CE 0x8012 #CJK UNIFIED IDEOGRAPH +0xE3CF 0x8018 #CJK UNIFIED IDEOGRAPH +0xE3D0 0x8019 #CJK UNIFIED IDEOGRAPH +0xE3D1 0x801C #CJK UNIFIED IDEOGRAPH +0xE3D2 0x8021 #CJK UNIFIED IDEOGRAPH +0xE3D3 0x8028 #CJK UNIFIED IDEOGRAPH +0xE3D4 0x803F #CJK UNIFIED IDEOGRAPH +0xE3D5 0x803B #CJK UNIFIED IDEOGRAPH +0xE3D6 0x804A #CJK UNIFIED IDEOGRAPH +0xE3D7 0x8046 #CJK UNIFIED IDEOGRAPH +0xE3D8 0x8052 #CJK UNIFIED IDEOGRAPH +0xE3D9 0x8058 #CJK UNIFIED IDEOGRAPH +0xE3DA 0x805A #CJK UNIFIED IDEOGRAPH +0xE3DB 0x805F #CJK UNIFIED IDEOGRAPH +0xE3DC 0x8062 #CJK UNIFIED IDEOGRAPH +0xE3DD 0x8068 #CJK UNIFIED IDEOGRAPH +0xE3DE 0x8073 #CJK UNIFIED IDEOGRAPH +0xE3DF 0x8072 #CJK UNIFIED IDEOGRAPH +0xE3E0 0x8070 #CJK UNIFIED IDEOGRAPH +0xE3E1 0x8076 #CJK UNIFIED IDEOGRAPH +0xE3E2 0x8079 #CJK UNIFIED IDEOGRAPH +0xE3E3 0x807D #CJK UNIFIED IDEOGRAPH +0xE3E4 0x807F #CJK UNIFIED IDEOGRAPH +0xE3E5 0x8084 #CJK UNIFIED IDEOGRAPH +0xE3E6 0x8086 #CJK UNIFIED IDEOGRAPH +0xE3E7 0x8085 #CJK UNIFIED IDEOGRAPH +0xE3E8 0x809B #CJK UNIFIED IDEOGRAPH +0xE3E9 0x8093 #CJK UNIFIED IDEOGRAPH +0xE3EA 0x809A #CJK UNIFIED IDEOGRAPH +0xE3EB 0x80AD #CJK UNIFIED IDEOGRAPH +0xE3EC 0x5190 #CJK UNIFIED IDEOGRAPH +0xE3ED 0x80AC #CJK UNIFIED IDEOGRAPH +0xE3EE 0x80DB #CJK UNIFIED IDEOGRAPH +0xE3EF 0x80E5 #CJK UNIFIED IDEOGRAPH +0xE3F0 0x80D9 #CJK UNIFIED IDEOGRAPH +0xE3F1 0x80DD #CJK UNIFIED IDEOGRAPH +0xE3F2 0x80C4 #CJK UNIFIED IDEOGRAPH +0xE3F3 0x80DA #CJK UNIFIED IDEOGRAPH +0xE3F4 0x80D6 #CJK UNIFIED IDEOGRAPH +0xE3F5 0x8109 #CJK UNIFIED IDEOGRAPH +0xE3F6 0x80EF #CJK UNIFIED IDEOGRAPH +0xE3F7 0x80F1 #CJK UNIFIED IDEOGRAPH +0xE3F8 0x811B #CJK UNIFIED IDEOGRAPH +0xE3F9 0x8129 #CJK UNIFIED IDEOGRAPH +0xE3FA 0x8123 #CJK UNIFIED IDEOGRAPH +0xE3FB 0x812F #CJK UNIFIED IDEOGRAPH +0xE3FC 0x814B #CJK UNIFIED IDEOGRAPH +0xE440 0x968B #CJK UNIFIED IDEOGRAPH +0xE441 0x8146 #CJK UNIFIED IDEOGRAPH +0xE442 0x813E #CJK UNIFIED IDEOGRAPH +0xE443 0x8153 #CJK UNIFIED IDEOGRAPH +0xE444 0x8151 #CJK UNIFIED IDEOGRAPH +0xE445 0x80FC #CJK UNIFIED IDEOGRAPH +0xE446 0x8171 #CJK UNIFIED IDEOGRAPH +0xE447 0x816E #CJK UNIFIED IDEOGRAPH +0xE448 0x8165 #CJK UNIFIED IDEOGRAPH +0xE449 0x8166 #CJK UNIFIED IDEOGRAPH +0xE44A 0x8174 #CJK UNIFIED IDEOGRAPH +0xE44B 0x8183 #CJK UNIFIED IDEOGRAPH +0xE44C 0x8188 #CJK UNIFIED IDEOGRAPH +0xE44D 0x818A #CJK UNIFIED IDEOGRAPH +0xE44E 0x8180 #CJK UNIFIED IDEOGRAPH +0xE44F 0x8182 #CJK UNIFIED IDEOGRAPH +0xE450 0x81A0 #CJK UNIFIED IDEOGRAPH +0xE451 0x8195 #CJK UNIFIED IDEOGRAPH +0xE452 0x81A4 #CJK UNIFIED IDEOGRAPH +0xE453 0x81A3 #CJK UNIFIED IDEOGRAPH +0xE454 0x815F #CJK UNIFIED IDEOGRAPH +0xE455 0x8193 #CJK UNIFIED IDEOGRAPH +0xE456 0x81A9 #CJK UNIFIED IDEOGRAPH +0xE457 0x81B0 #CJK UNIFIED IDEOGRAPH +0xE458 0x81B5 #CJK UNIFIED IDEOGRAPH +0xE459 0x81BE #CJK UNIFIED IDEOGRAPH +0xE45A 0x81B8 #CJK UNIFIED IDEOGRAPH +0xE45B 0x81BD #CJK UNIFIED IDEOGRAPH +0xE45C 0x81C0 #CJK UNIFIED IDEOGRAPH +0xE45D 0x81C2 #CJK UNIFIED IDEOGRAPH +0xE45E 0x81BA #CJK UNIFIED IDEOGRAPH +0xE45F 0x81C9 #CJK UNIFIED IDEOGRAPH +0xE460 0x81CD #CJK UNIFIED IDEOGRAPH +0xE461 0x81D1 #CJK UNIFIED IDEOGRAPH +0xE462 0x81D9 #CJK UNIFIED IDEOGRAPH +0xE463 0x81D8 #CJK UNIFIED IDEOGRAPH +0xE464 0x81C8 #CJK UNIFIED IDEOGRAPH +0xE465 0x81DA #CJK UNIFIED IDEOGRAPH +0xE466 0x81DF #CJK UNIFIED IDEOGRAPH +0xE467 0x81E0 #CJK UNIFIED IDEOGRAPH +0xE468 0x81E7 #CJK UNIFIED IDEOGRAPH +0xE469 0x81FA #CJK UNIFIED IDEOGRAPH +0xE46A 0x81FB #CJK UNIFIED IDEOGRAPH +0xE46B 0x81FE #CJK UNIFIED IDEOGRAPH +0xE46C 0x8201 #CJK UNIFIED IDEOGRAPH +0xE46D 0x8202 #CJK UNIFIED IDEOGRAPH +0xE46E 0x8205 #CJK UNIFIED IDEOGRAPH +0xE46F 0x8207 #CJK UNIFIED IDEOGRAPH +0xE470 0x820A #CJK UNIFIED IDEOGRAPH +0xE471 0x820D #CJK UNIFIED IDEOGRAPH +0xE472 0x8210 #CJK UNIFIED IDEOGRAPH +0xE473 0x8216 #CJK UNIFIED IDEOGRAPH +0xE474 0x8229 #CJK UNIFIED IDEOGRAPH +0xE475 0x822B #CJK UNIFIED IDEOGRAPH +0xE476 0x8238 #CJK UNIFIED IDEOGRAPH +0xE477 0x8233 #CJK UNIFIED IDEOGRAPH +0xE478 0x8240 #CJK UNIFIED IDEOGRAPH +0xE479 0x8259 #CJK UNIFIED IDEOGRAPH +0xE47A 0x8258 #CJK UNIFIED IDEOGRAPH +0xE47B 0x825D #CJK UNIFIED IDEOGRAPH +0xE47C 0x825A #CJK UNIFIED IDEOGRAPH +0xE47D 0x825F #CJK UNIFIED IDEOGRAPH +0xE47E 0x8264 #CJK UNIFIED IDEOGRAPH +0xE480 0x8262 #CJK UNIFIED IDEOGRAPH +0xE481 0x8268 #CJK UNIFIED IDEOGRAPH +0xE482 0x826A #CJK UNIFIED IDEOGRAPH +0xE483 0x826B #CJK UNIFIED IDEOGRAPH +0xE484 0x822E #CJK UNIFIED IDEOGRAPH +0xE485 0x8271 #CJK UNIFIED IDEOGRAPH +0xE486 0x8277 #CJK UNIFIED IDEOGRAPH +0xE487 0x8278 #CJK UNIFIED IDEOGRAPH +0xE488 0x827E #CJK UNIFIED IDEOGRAPH +0xE489 0x828D #CJK UNIFIED IDEOGRAPH +0xE48A 0x8292 #CJK UNIFIED IDEOGRAPH +0xE48B 0x82AB #CJK UNIFIED IDEOGRAPH +0xE48C 0x829F #CJK UNIFIED IDEOGRAPH +0xE48D 0x82BB #CJK UNIFIED IDEOGRAPH +0xE48E 0x82AC #CJK UNIFIED IDEOGRAPH +0xE48F 0x82E1 #CJK UNIFIED IDEOGRAPH +0xE490 0x82E3 #CJK UNIFIED IDEOGRAPH +0xE491 0x82DF #CJK UNIFIED IDEOGRAPH +0xE492 0x82D2 #CJK UNIFIED IDEOGRAPH +0xE493 0x82F4 #CJK UNIFIED IDEOGRAPH +0xE494 0x82F3 #CJK UNIFIED IDEOGRAPH +0xE495 0x82FA #CJK UNIFIED IDEOGRAPH +0xE496 0x8393 #CJK UNIFIED IDEOGRAPH +0xE497 0x8303 #CJK UNIFIED IDEOGRAPH +0xE498 0x82FB #CJK UNIFIED IDEOGRAPH +0xE499 0x82F9 #CJK UNIFIED IDEOGRAPH +0xE49A 0x82DE #CJK UNIFIED IDEOGRAPH +0xE49B 0x8306 #CJK UNIFIED IDEOGRAPH +0xE49C 0x82DC #CJK UNIFIED IDEOGRAPH +0xE49D 0x8309 #CJK UNIFIED IDEOGRAPH +0xE49E 0x82D9 #CJK UNIFIED IDEOGRAPH +0xE49F 0x8335 #CJK UNIFIED IDEOGRAPH +0xE4A0 0x8334 #CJK UNIFIED IDEOGRAPH +0xE4A1 0x8316 #CJK UNIFIED IDEOGRAPH +0xE4A2 0x8332 #CJK UNIFIED IDEOGRAPH +0xE4A3 0x8331 #CJK UNIFIED IDEOGRAPH +0xE4A4 0x8340 #CJK UNIFIED IDEOGRAPH +0xE4A5 0x8339 #CJK UNIFIED IDEOGRAPH +0xE4A6 0x8350 #CJK UNIFIED IDEOGRAPH +0xE4A7 0x8345 #CJK UNIFIED IDEOGRAPH +0xE4A8 0x832F #CJK UNIFIED IDEOGRAPH +0xE4A9 0x832B #CJK UNIFIED IDEOGRAPH +0xE4AA 0x8317 #CJK UNIFIED IDEOGRAPH +0xE4AB 0x8318 #CJK UNIFIED IDEOGRAPH +0xE4AC 0x8385 #CJK UNIFIED IDEOGRAPH +0xE4AD 0x839A #CJK UNIFIED IDEOGRAPH +0xE4AE 0x83AA #CJK UNIFIED IDEOGRAPH +0xE4AF 0x839F #CJK UNIFIED IDEOGRAPH +0xE4B0 0x83A2 #CJK UNIFIED IDEOGRAPH +0xE4B1 0x8396 #CJK UNIFIED IDEOGRAPH +0xE4B2 0x8323 #CJK UNIFIED IDEOGRAPH +0xE4B3 0x838E #CJK UNIFIED IDEOGRAPH +0xE4B4 0x8387 #CJK UNIFIED IDEOGRAPH +0xE4B5 0x838A #CJK UNIFIED IDEOGRAPH +0xE4B6 0x837C #CJK UNIFIED IDEOGRAPH +0xE4B7 0x83B5 #CJK UNIFIED IDEOGRAPH +0xE4B8 0x8373 #CJK UNIFIED IDEOGRAPH +0xE4B9 0x8375 #CJK UNIFIED IDEOGRAPH +0xE4BA 0x83A0 #CJK UNIFIED IDEOGRAPH +0xE4BB 0x8389 #CJK UNIFIED IDEOGRAPH +0xE4BC 0x83A8 #CJK UNIFIED IDEOGRAPH +0xE4BD 0x83F4 #CJK UNIFIED IDEOGRAPH +0xE4BE 0x8413 #CJK UNIFIED IDEOGRAPH +0xE4BF 0x83EB #CJK UNIFIED IDEOGRAPH +0xE4C0 0x83CE #CJK UNIFIED IDEOGRAPH +0xE4C1 0x83FD #CJK UNIFIED IDEOGRAPH +0xE4C2 0x8403 #CJK UNIFIED IDEOGRAPH +0xE4C3 0x83D8 #CJK UNIFIED IDEOGRAPH +0xE4C4 0x840B #CJK UNIFIED IDEOGRAPH +0xE4C5 0x83C1 #CJK UNIFIED IDEOGRAPH +0xE4C6 0x83F7 #CJK UNIFIED IDEOGRAPH +0xE4C7 0x8407 #CJK UNIFIED IDEOGRAPH +0xE4C8 0x83E0 #CJK UNIFIED IDEOGRAPH +0xE4C9 0x83F2 #CJK UNIFIED IDEOGRAPH +0xE4CA 0x840D #CJK UNIFIED IDEOGRAPH +0xE4CB 0x8422 #CJK UNIFIED IDEOGRAPH +0xE4CC 0x8420 #CJK UNIFIED IDEOGRAPH +0xE4CD 0x83BD #CJK UNIFIED IDEOGRAPH +0xE4CE 0x8438 #CJK UNIFIED IDEOGRAPH +0xE4CF 0x8506 #CJK UNIFIED IDEOGRAPH +0xE4D0 0x83FB #CJK UNIFIED IDEOGRAPH +0xE4D1 0x846D #CJK UNIFIED IDEOGRAPH +0xE4D2 0x842A #CJK UNIFIED IDEOGRAPH +0xE4D3 0x843C #CJK UNIFIED IDEOGRAPH +0xE4D4 0x855A #CJK UNIFIED IDEOGRAPH +0xE4D5 0x8484 #CJK UNIFIED IDEOGRAPH +0xE4D6 0x8477 #CJK UNIFIED IDEOGRAPH +0xE4D7 0x846B #CJK UNIFIED IDEOGRAPH +0xE4D8 0x84AD #CJK UNIFIED IDEOGRAPH +0xE4D9 0x846E #CJK UNIFIED IDEOGRAPH +0xE4DA 0x8482 #CJK UNIFIED IDEOGRAPH +0xE4DB 0x8469 #CJK UNIFIED IDEOGRAPH +0xE4DC 0x8446 #CJK UNIFIED IDEOGRAPH +0xE4DD 0x842C #CJK UNIFIED IDEOGRAPH +0xE4DE 0x846F #CJK UNIFIED IDEOGRAPH +0xE4DF 0x8479 #CJK UNIFIED IDEOGRAPH +0xE4E0 0x8435 #CJK UNIFIED IDEOGRAPH +0xE4E1 0x84CA #CJK UNIFIED IDEOGRAPH +0xE4E2 0x8462 #CJK UNIFIED IDEOGRAPH +0xE4E3 0x84B9 #CJK UNIFIED IDEOGRAPH +0xE4E4 0x84BF #CJK UNIFIED IDEOGRAPH +0xE4E5 0x849F #CJK UNIFIED IDEOGRAPH +0xE4E6 0x84D9 #CJK UNIFIED IDEOGRAPH +0xE4E7 0x84CD #CJK UNIFIED IDEOGRAPH +0xE4E8 0x84BB #CJK UNIFIED IDEOGRAPH +0xE4E9 0x84DA #CJK UNIFIED IDEOGRAPH +0xE4EA 0x84D0 #CJK UNIFIED IDEOGRAPH +0xE4EB 0x84C1 #CJK UNIFIED IDEOGRAPH +0xE4EC 0x84C6 #CJK UNIFIED IDEOGRAPH +0xE4ED 0x84D6 #CJK UNIFIED IDEOGRAPH +0xE4EE 0x84A1 #CJK UNIFIED IDEOGRAPH +0xE4EF 0x8521 #CJK UNIFIED IDEOGRAPH +0xE4F0 0x84FF #CJK UNIFIED IDEOGRAPH +0xE4F1 0x84F4 #CJK UNIFIED IDEOGRAPH +0xE4F2 0x8517 #CJK UNIFIED IDEOGRAPH +0xE4F3 0x8518 #CJK UNIFIED IDEOGRAPH +0xE4F4 0x852C #CJK UNIFIED IDEOGRAPH +0xE4F5 0x851F #CJK UNIFIED IDEOGRAPH +0xE4F6 0x8515 #CJK UNIFIED IDEOGRAPH +0xE4F7 0x8514 #CJK UNIFIED IDEOGRAPH +0xE4F8 0x84FC #CJK UNIFIED IDEOGRAPH +0xE4F9 0x8540 #CJK UNIFIED IDEOGRAPH +0xE4FA 0x8563 #CJK UNIFIED IDEOGRAPH +0xE4FB 0x8558 #CJK UNIFIED IDEOGRAPH +0xE4FC 0x8548 #CJK UNIFIED IDEOGRAPH +0xE540 0x8541 #CJK UNIFIED IDEOGRAPH +0xE541 0x8602 #CJK UNIFIED IDEOGRAPH +0xE542 0x854B #CJK UNIFIED IDEOGRAPH +0xE543 0x8555 #CJK UNIFIED IDEOGRAPH +0xE544 0x8580 #CJK UNIFIED IDEOGRAPH +0xE545 0x85A4 #CJK UNIFIED IDEOGRAPH +0xE546 0x8588 #CJK UNIFIED IDEOGRAPH +0xE547 0x8591 #CJK UNIFIED IDEOGRAPH +0xE548 0x858A #CJK UNIFIED IDEOGRAPH +0xE549 0x85A8 #CJK UNIFIED IDEOGRAPH +0xE54A 0x856D #CJK UNIFIED IDEOGRAPH +0xE54B 0x8594 #CJK UNIFIED IDEOGRAPH +0xE54C 0x859B #CJK UNIFIED IDEOGRAPH +0xE54D 0x85EA #CJK UNIFIED IDEOGRAPH +0xE54E 0x8587 #CJK UNIFIED IDEOGRAPH +0xE54F 0x859C #CJK UNIFIED IDEOGRAPH +0xE550 0x8577 #CJK UNIFIED IDEOGRAPH +0xE551 0x857E #CJK UNIFIED IDEOGRAPH +0xE552 0x8590 #CJK UNIFIED IDEOGRAPH +0xE553 0x85C9 #CJK UNIFIED IDEOGRAPH +0xE554 0x85BA #CJK UNIFIED IDEOGRAPH +0xE555 0x85CF #CJK UNIFIED IDEOGRAPH +0xE556 0x85B9 #CJK UNIFIED IDEOGRAPH +0xE557 0x85D0 #CJK UNIFIED IDEOGRAPH +0xE558 0x85D5 #CJK UNIFIED IDEOGRAPH +0xE559 0x85DD #CJK UNIFIED IDEOGRAPH +0xE55A 0x85E5 #CJK UNIFIED IDEOGRAPH +0xE55B 0x85DC #CJK UNIFIED IDEOGRAPH +0xE55C 0x85F9 #CJK UNIFIED IDEOGRAPH +0xE55D 0x860A #CJK UNIFIED IDEOGRAPH +0xE55E 0x8613 #CJK UNIFIED IDEOGRAPH +0xE55F 0x860B #CJK UNIFIED IDEOGRAPH +0xE560 0x85FE #CJK UNIFIED IDEOGRAPH +0xE561 0x85FA #CJK UNIFIED IDEOGRAPH +0xE562 0x8606 #CJK UNIFIED IDEOGRAPH +0xE563 0x8622 #CJK UNIFIED IDEOGRAPH +0xE564 0x861A #CJK UNIFIED IDEOGRAPH +0xE565 0x8630 #CJK UNIFIED IDEOGRAPH +0xE566 0x863F #CJK UNIFIED IDEOGRAPH +0xE567 0x864D #CJK UNIFIED IDEOGRAPH +0xE568 0x4E55 #CJK UNIFIED IDEOGRAPH +0xE569 0x8654 #CJK UNIFIED IDEOGRAPH +0xE56A 0x865F #CJK UNIFIED IDEOGRAPH +0xE56B 0x8667 #CJK UNIFIED IDEOGRAPH +0xE56C 0x8671 #CJK UNIFIED IDEOGRAPH +0xE56D 0x8693 #CJK UNIFIED IDEOGRAPH +0xE56E 0x86A3 #CJK UNIFIED IDEOGRAPH +0xE56F 0x86A9 #CJK UNIFIED IDEOGRAPH +0xE570 0x86AA #CJK UNIFIED IDEOGRAPH +0xE571 0x868B #CJK UNIFIED IDEOGRAPH +0xE572 0x868C #CJK UNIFIED IDEOGRAPH +0xE573 0x86B6 #CJK UNIFIED IDEOGRAPH +0xE574 0x86AF #CJK UNIFIED IDEOGRAPH +0xE575 0x86C4 #CJK UNIFIED IDEOGRAPH +0xE576 0x86C6 #CJK UNIFIED IDEOGRAPH +0xE577 0x86B0 #CJK UNIFIED IDEOGRAPH +0xE578 0x86C9 #CJK UNIFIED IDEOGRAPH +0xE579 0x8823 #CJK UNIFIED IDEOGRAPH +0xE57A 0x86AB #CJK UNIFIED IDEOGRAPH +0xE57B 0x86D4 #CJK UNIFIED IDEOGRAPH +0xE57C 0x86DE #CJK UNIFIED IDEOGRAPH +0xE57D 0x86E9 #CJK UNIFIED IDEOGRAPH +0xE57E 0x86EC #CJK UNIFIED IDEOGRAPH +0xE580 0x86DF #CJK UNIFIED IDEOGRAPH +0xE581 0x86DB #CJK UNIFIED IDEOGRAPH +0xE582 0x86EF #CJK UNIFIED IDEOGRAPH +0xE583 0x8712 #CJK UNIFIED IDEOGRAPH +0xE584 0x8706 #CJK UNIFIED IDEOGRAPH +0xE585 0x8708 #CJK UNIFIED IDEOGRAPH +0xE586 0x8700 #CJK UNIFIED IDEOGRAPH +0xE587 0x8703 #CJK UNIFIED IDEOGRAPH +0xE588 0x86FB #CJK UNIFIED IDEOGRAPH +0xE589 0x8711 #CJK UNIFIED IDEOGRAPH +0xE58A 0x8709 #CJK UNIFIED IDEOGRAPH +0xE58B 0x870D #CJK UNIFIED IDEOGRAPH +0xE58C 0x86F9 #CJK UNIFIED IDEOGRAPH +0xE58D 0x870A #CJK UNIFIED IDEOGRAPH +0xE58E 0x8734 #CJK UNIFIED IDEOGRAPH +0xE58F 0x873F #CJK UNIFIED IDEOGRAPH +0xE590 0x8737 #CJK UNIFIED IDEOGRAPH +0xE591 0x873B #CJK UNIFIED IDEOGRAPH +0xE592 0x8725 #CJK UNIFIED IDEOGRAPH +0xE593 0x8729 #CJK UNIFIED IDEOGRAPH +0xE594 0x871A #CJK UNIFIED IDEOGRAPH +0xE595 0x8760 #CJK UNIFIED IDEOGRAPH +0xE596 0x875F #CJK UNIFIED IDEOGRAPH +0xE597 0x8778 #CJK UNIFIED IDEOGRAPH +0xE598 0x874C #CJK UNIFIED IDEOGRAPH +0xE599 0x874E #CJK UNIFIED IDEOGRAPH +0xE59A 0x8774 #CJK UNIFIED IDEOGRAPH +0xE59B 0x8757 #CJK UNIFIED IDEOGRAPH +0xE59C 0x8768 #CJK UNIFIED IDEOGRAPH +0xE59D 0x876E #CJK UNIFIED IDEOGRAPH +0xE59E 0x8759 #CJK UNIFIED IDEOGRAPH +0xE59F 0x8753 #CJK UNIFIED IDEOGRAPH +0xE5A0 0x8763 #CJK UNIFIED IDEOGRAPH +0xE5A1 0x876A #CJK UNIFIED IDEOGRAPH +0xE5A2 0x8805 #CJK UNIFIED IDEOGRAPH +0xE5A3 0x87A2 #CJK UNIFIED IDEOGRAPH +0xE5A4 0x879F #CJK UNIFIED IDEOGRAPH +0xE5A5 0x8782 #CJK UNIFIED IDEOGRAPH +0xE5A6 0x87AF #CJK UNIFIED IDEOGRAPH +0xE5A7 0x87CB #CJK UNIFIED IDEOGRAPH +0xE5A8 0x87BD #CJK UNIFIED IDEOGRAPH +0xE5A9 0x87C0 #CJK UNIFIED IDEOGRAPH +0xE5AA 0x87D0 #CJK UNIFIED IDEOGRAPH +0xE5AB 0x96D6 #CJK UNIFIED IDEOGRAPH +0xE5AC 0x87AB #CJK UNIFIED IDEOGRAPH +0xE5AD 0x87C4 #CJK UNIFIED IDEOGRAPH +0xE5AE 0x87B3 #CJK UNIFIED IDEOGRAPH +0xE5AF 0x87C7 #CJK UNIFIED IDEOGRAPH +0xE5B0 0x87C6 #CJK UNIFIED IDEOGRAPH +0xE5B1 0x87BB #CJK UNIFIED IDEOGRAPH +0xE5B2 0x87EF #CJK UNIFIED IDEOGRAPH +0xE5B3 0x87F2 #CJK UNIFIED IDEOGRAPH +0xE5B4 0x87E0 #CJK UNIFIED IDEOGRAPH +0xE5B5 0x880F #CJK UNIFIED IDEOGRAPH +0xE5B6 0x880D #CJK UNIFIED IDEOGRAPH +0xE5B7 0x87FE #CJK UNIFIED IDEOGRAPH +0xE5B8 0x87F6 #CJK UNIFIED IDEOGRAPH +0xE5B9 0x87F7 #CJK UNIFIED IDEOGRAPH +0xE5BA 0x880E #CJK UNIFIED IDEOGRAPH +0xE5BB 0x87D2 #CJK UNIFIED IDEOGRAPH +0xE5BC 0x8811 #CJK UNIFIED IDEOGRAPH +0xE5BD 0x8816 #CJK UNIFIED IDEOGRAPH +0xE5BE 0x8815 #CJK UNIFIED IDEOGRAPH +0xE5BF 0x8822 #CJK UNIFIED IDEOGRAPH +0xE5C0 0x8821 #CJK UNIFIED IDEOGRAPH +0xE5C1 0x8831 #CJK UNIFIED IDEOGRAPH +0xE5C2 0x8836 #CJK UNIFIED IDEOGRAPH +0xE5C3 0x8839 #CJK UNIFIED IDEOGRAPH +0xE5C4 0x8827 #CJK UNIFIED IDEOGRAPH +0xE5C5 0x883B #CJK UNIFIED IDEOGRAPH +0xE5C6 0x8844 #CJK UNIFIED IDEOGRAPH +0xE5C7 0x8842 #CJK UNIFIED IDEOGRAPH +0xE5C8 0x8852 #CJK UNIFIED IDEOGRAPH +0xE5C9 0x8859 #CJK UNIFIED IDEOGRAPH +0xE5CA 0x885E #CJK UNIFIED IDEOGRAPH +0xE5CB 0x8862 #CJK UNIFIED IDEOGRAPH +0xE5CC 0x886B #CJK UNIFIED IDEOGRAPH +0xE5CD 0x8881 #CJK UNIFIED IDEOGRAPH +0xE5CE 0x887E #CJK UNIFIED IDEOGRAPH +0xE5CF 0x889E #CJK UNIFIED IDEOGRAPH +0xE5D0 0x8875 #CJK UNIFIED IDEOGRAPH +0xE5D1 0x887D #CJK UNIFIED IDEOGRAPH +0xE5D2 0x88B5 #CJK UNIFIED IDEOGRAPH +0xE5D3 0x8872 #CJK UNIFIED IDEOGRAPH +0xE5D4 0x8882 #CJK UNIFIED IDEOGRAPH +0xE5D5 0x8897 #CJK UNIFIED IDEOGRAPH +0xE5D6 0x8892 #CJK UNIFIED IDEOGRAPH +0xE5D7 0x88AE #CJK UNIFIED IDEOGRAPH +0xE5D8 0x8899 #CJK UNIFIED IDEOGRAPH +0xE5D9 0x88A2 #CJK UNIFIED IDEOGRAPH +0xE5DA 0x888D #CJK UNIFIED IDEOGRAPH +0xE5DB 0x88A4 #CJK UNIFIED IDEOGRAPH +0xE5DC 0x88B0 #CJK UNIFIED IDEOGRAPH +0xE5DD 0x88BF #CJK UNIFIED IDEOGRAPH +0xE5DE 0x88B1 #CJK UNIFIED IDEOGRAPH +0xE5DF 0x88C3 #CJK UNIFIED IDEOGRAPH +0xE5E0 0x88C4 #CJK UNIFIED IDEOGRAPH +0xE5E1 0x88D4 #CJK UNIFIED IDEOGRAPH +0xE5E2 0x88D8 #CJK UNIFIED IDEOGRAPH +0xE5E3 0x88D9 #CJK UNIFIED IDEOGRAPH +0xE5E4 0x88DD #CJK UNIFIED IDEOGRAPH +0xE5E5 0x88F9 #CJK UNIFIED IDEOGRAPH +0xE5E6 0x8902 #CJK UNIFIED IDEOGRAPH +0xE5E7 0x88FC #CJK UNIFIED IDEOGRAPH +0xE5E8 0x88F4 #CJK UNIFIED IDEOGRAPH +0xE5E9 0x88E8 #CJK UNIFIED IDEOGRAPH +0xE5EA 0x88F2 #CJK UNIFIED IDEOGRAPH +0xE5EB 0x8904 #CJK UNIFIED IDEOGRAPH +0xE5EC 0x890C #CJK UNIFIED IDEOGRAPH +0xE5ED 0x890A #CJK UNIFIED IDEOGRAPH +0xE5EE 0x8913 #CJK UNIFIED IDEOGRAPH +0xE5EF 0x8943 #CJK UNIFIED IDEOGRAPH +0xE5F0 0x891E #CJK UNIFIED IDEOGRAPH +0xE5F1 0x8925 #CJK UNIFIED IDEOGRAPH +0xE5F2 0x892A #CJK UNIFIED IDEOGRAPH +0xE5F3 0x892B #CJK UNIFIED IDEOGRAPH +0xE5F4 0x8941 #CJK UNIFIED IDEOGRAPH +0xE5F5 0x8944 #CJK UNIFIED IDEOGRAPH +0xE5F6 0x893B #CJK UNIFIED IDEOGRAPH +0xE5F7 0x8936 #CJK UNIFIED IDEOGRAPH +0xE5F8 0x8938 #CJK UNIFIED IDEOGRAPH +0xE5F9 0x894C #CJK UNIFIED IDEOGRAPH +0xE5FA 0x891D #CJK UNIFIED IDEOGRAPH +0xE5FB 0x8960 #CJK UNIFIED IDEOGRAPH +0xE5FC 0x895E #CJK UNIFIED IDEOGRAPH +0xE640 0x8966 #CJK UNIFIED IDEOGRAPH +0xE641 0x8964 #CJK UNIFIED IDEOGRAPH +0xE642 0x896D #CJK UNIFIED IDEOGRAPH +0xE643 0x896A #CJK UNIFIED IDEOGRAPH +0xE644 0x896F #CJK UNIFIED IDEOGRAPH +0xE645 0x8974 #CJK UNIFIED IDEOGRAPH +0xE646 0x8977 #CJK UNIFIED IDEOGRAPH +0xE647 0x897E #CJK UNIFIED IDEOGRAPH +0xE648 0x8983 #CJK UNIFIED IDEOGRAPH +0xE649 0x8988 #CJK UNIFIED IDEOGRAPH +0xE64A 0x898A #CJK UNIFIED IDEOGRAPH +0xE64B 0x8993 #CJK UNIFIED IDEOGRAPH +0xE64C 0x8998 #CJK UNIFIED IDEOGRAPH +0xE64D 0x89A1 #CJK UNIFIED IDEOGRAPH +0xE64E 0x89A9 #CJK UNIFIED IDEOGRAPH +0xE64F 0x89A6 #CJK UNIFIED IDEOGRAPH +0xE650 0x89AC #CJK UNIFIED IDEOGRAPH +0xE651 0x89AF #CJK UNIFIED IDEOGRAPH +0xE652 0x89B2 #CJK UNIFIED IDEOGRAPH +0xE653 0x89BA #CJK UNIFIED IDEOGRAPH +0xE654 0x89BD #CJK UNIFIED IDEOGRAPH +0xE655 0x89BF #CJK UNIFIED IDEOGRAPH +0xE656 0x89C0 #CJK UNIFIED IDEOGRAPH +0xE657 0x89DA #CJK UNIFIED IDEOGRAPH +0xE658 0x89DC #CJK UNIFIED IDEOGRAPH +0xE659 0x89DD #CJK UNIFIED IDEOGRAPH +0xE65A 0x89E7 #CJK UNIFIED IDEOGRAPH +0xE65B 0x89F4 #CJK UNIFIED IDEOGRAPH +0xE65C 0x89F8 #CJK UNIFIED IDEOGRAPH +0xE65D 0x8A03 #CJK UNIFIED IDEOGRAPH +0xE65E 0x8A16 #CJK UNIFIED IDEOGRAPH +0xE65F 0x8A10 #CJK UNIFIED IDEOGRAPH +0xE660 0x8A0C #CJK UNIFIED IDEOGRAPH +0xE661 0x8A1B #CJK UNIFIED IDEOGRAPH +0xE662 0x8A1D #CJK UNIFIED IDEOGRAPH +0xE663 0x8A25 #CJK UNIFIED IDEOGRAPH +0xE664 0x8A36 #CJK UNIFIED IDEOGRAPH +0xE665 0x8A41 #CJK UNIFIED IDEOGRAPH +0xE666 0x8A5B #CJK UNIFIED IDEOGRAPH +0xE667 0x8A52 #CJK UNIFIED IDEOGRAPH +0xE668 0x8A46 #CJK UNIFIED IDEOGRAPH +0xE669 0x8A48 #CJK UNIFIED IDEOGRAPH +0xE66A 0x8A7C #CJK UNIFIED IDEOGRAPH +0xE66B 0x8A6D #CJK UNIFIED IDEOGRAPH +0xE66C 0x8A6C #CJK UNIFIED IDEOGRAPH +0xE66D 0x8A62 #CJK UNIFIED IDEOGRAPH +0xE66E 0x8A85 #CJK UNIFIED IDEOGRAPH +0xE66F 0x8A82 #CJK UNIFIED IDEOGRAPH +0xE670 0x8A84 #CJK UNIFIED IDEOGRAPH +0xE671 0x8AA8 #CJK UNIFIED IDEOGRAPH +0xE672 0x8AA1 #CJK UNIFIED IDEOGRAPH +0xE673 0x8A91 #CJK UNIFIED IDEOGRAPH +0xE674 0x8AA5 #CJK UNIFIED IDEOGRAPH +0xE675 0x8AA6 #CJK UNIFIED IDEOGRAPH +0xE676 0x8A9A #CJK UNIFIED IDEOGRAPH +0xE677 0x8AA3 #CJK UNIFIED IDEOGRAPH +0xE678 0x8AC4 #CJK UNIFIED IDEOGRAPH +0xE679 0x8ACD #CJK UNIFIED IDEOGRAPH +0xE67A 0x8AC2 #CJK UNIFIED IDEOGRAPH +0xE67B 0x8ADA #CJK UNIFIED IDEOGRAPH +0xE67C 0x8AEB #CJK UNIFIED IDEOGRAPH +0xE67D 0x8AF3 #CJK UNIFIED IDEOGRAPH +0xE67E 0x8AE7 #CJK UNIFIED IDEOGRAPH +0xE680 0x8AE4 #CJK UNIFIED IDEOGRAPH +0xE681 0x8AF1 #CJK UNIFIED IDEOGRAPH +0xE682 0x8B14 #CJK UNIFIED IDEOGRAPH +0xE683 0x8AE0 #CJK UNIFIED IDEOGRAPH +0xE684 0x8AE2 #CJK UNIFIED IDEOGRAPH +0xE685 0x8AF7 #CJK UNIFIED IDEOGRAPH +0xE686 0x8ADE #CJK UNIFIED IDEOGRAPH +0xE687 0x8ADB #CJK UNIFIED IDEOGRAPH +0xE688 0x8B0C #CJK UNIFIED IDEOGRAPH +0xE689 0x8B07 #CJK UNIFIED IDEOGRAPH +0xE68A 0x8B1A #CJK UNIFIED IDEOGRAPH +0xE68B 0x8AE1 #CJK UNIFIED IDEOGRAPH +0xE68C 0x8B16 #CJK UNIFIED IDEOGRAPH +0xE68D 0x8B10 #CJK UNIFIED IDEOGRAPH +0xE68E 0x8B17 #CJK UNIFIED IDEOGRAPH +0xE68F 0x8B20 #CJK UNIFIED IDEOGRAPH +0xE690 0x8B33 #CJK UNIFIED IDEOGRAPH +0xE691 0x97AB #CJK UNIFIED IDEOGRAPH +0xE692 0x8B26 #CJK UNIFIED IDEOGRAPH +0xE693 0x8B2B #CJK UNIFIED IDEOGRAPH +0xE694 0x8B3E #CJK UNIFIED IDEOGRAPH +0xE695 0x8B28 #CJK UNIFIED IDEOGRAPH +0xE696 0x8B41 #CJK UNIFIED IDEOGRAPH +0xE697 0x8B4C #CJK UNIFIED IDEOGRAPH +0xE698 0x8B4F #CJK UNIFIED IDEOGRAPH +0xE699 0x8B4E #CJK UNIFIED IDEOGRAPH +0xE69A 0x8B49 #CJK UNIFIED IDEOGRAPH +0xE69B 0x8B56 #CJK UNIFIED IDEOGRAPH +0xE69C 0x8B5B #CJK UNIFIED IDEOGRAPH +0xE69D 0x8B5A #CJK UNIFIED IDEOGRAPH +0xE69E 0x8B6B #CJK UNIFIED IDEOGRAPH +0xE69F 0x8B5F #CJK UNIFIED IDEOGRAPH +0xE6A0 0x8B6C #CJK UNIFIED IDEOGRAPH +0xE6A1 0x8B6F #CJK UNIFIED IDEOGRAPH +0xE6A2 0x8B74 #CJK UNIFIED IDEOGRAPH +0xE6A3 0x8B7D #CJK UNIFIED IDEOGRAPH +0xE6A4 0x8B80 #CJK UNIFIED IDEOGRAPH +0xE6A5 0x8B8C #CJK UNIFIED IDEOGRAPH +0xE6A6 0x8B8E #CJK UNIFIED IDEOGRAPH +0xE6A7 0x8B92 #CJK UNIFIED IDEOGRAPH +0xE6A8 0x8B93 #CJK UNIFIED IDEOGRAPH +0xE6A9 0x8B96 #CJK UNIFIED IDEOGRAPH +0xE6AA 0x8B99 #CJK UNIFIED IDEOGRAPH +0xE6AB 0x8B9A #CJK UNIFIED IDEOGRAPH +0xE6AC 0x8C3A #CJK UNIFIED IDEOGRAPH +0xE6AD 0x8C41 #CJK UNIFIED IDEOGRAPH +0xE6AE 0x8C3F #CJK UNIFIED IDEOGRAPH +0xE6AF 0x8C48 #CJK UNIFIED IDEOGRAPH +0xE6B0 0x8C4C #CJK UNIFIED IDEOGRAPH +0xE6B1 0x8C4E #CJK UNIFIED IDEOGRAPH +0xE6B2 0x8C50 #CJK UNIFIED IDEOGRAPH +0xE6B3 0x8C55 #CJK UNIFIED IDEOGRAPH +0xE6B4 0x8C62 #CJK UNIFIED IDEOGRAPH +0xE6B5 0x8C6C #CJK UNIFIED IDEOGRAPH +0xE6B6 0x8C78 #CJK UNIFIED IDEOGRAPH +0xE6B7 0x8C7A #CJK UNIFIED IDEOGRAPH +0xE6B8 0x8C82 #CJK UNIFIED IDEOGRAPH +0xE6B9 0x8C89 #CJK UNIFIED IDEOGRAPH +0xE6BA 0x8C85 #CJK UNIFIED IDEOGRAPH +0xE6BB 0x8C8A #CJK UNIFIED IDEOGRAPH +0xE6BC 0x8C8D #CJK UNIFIED IDEOGRAPH +0xE6BD 0x8C8E #CJK UNIFIED IDEOGRAPH +0xE6BE 0x8C94 #CJK UNIFIED IDEOGRAPH +0xE6BF 0x8C7C #CJK UNIFIED IDEOGRAPH +0xE6C0 0x8C98 #CJK UNIFIED IDEOGRAPH +0xE6C1 0x621D #CJK UNIFIED IDEOGRAPH +0xE6C2 0x8CAD #CJK UNIFIED IDEOGRAPH +0xE6C3 0x8CAA #CJK UNIFIED IDEOGRAPH +0xE6C4 0x8CBD #CJK UNIFIED IDEOGRAPH +0xE6C5 0x8CB2 #CJK UNIFIED IDEOGRAPH +0xE6C6 0x8CB3 #CJK UNIFIED IDEOGRAPH +0xE6C7 0x8CAE #CJK UNIFIED IDEOGRAPH +0xE6C8 0x8CB6 #CJK UNIFIED IDEOGRAPH +0xE6C9 0x8CC8 #CJK UNIFIED IDEOGRAPH +0xE6CA 0x8CC1 #CJK UNIFIED IDEOGRAPH +0xE6CB 0x8CE4 #CJK UNIFIED IDEOGRAPH +0xE6CC 0x8CE3 #CJK UNIFIED IDEOGRAPH +0xE6CD 0x8CDA #CJK UNIFIED IDEOGRAPH +0xE6CE 0x8CFD #CJK UNIFIED IDEOGRAPH +0xE6CF 0x8CFA #CJK UNIFIED IDEOGRAPH +0xE6D0 0x8CFB #CJK UNIFIED IDEOGRAPH +0xE6D1 0x8D04 #CJK UNIFIED IDEOGRAPH +0xE6D2 0x8D05 #CJK UNIFIED IDEOGRAPH +0xE6D3 0x8D0A #CJK UNIFIED IDEOGRAPH +0xE6D4 0x8D07 #CJK UNIFIED IDEOGRAPH +0xE6D5 0x8D0F #CJK UNIFIED IDEOGRAPH +0xE6D6 0x8D0D #CJK UNIFIED IDEOGRAPH +0xE6D7 0x8D10 #CJK UNIFIED IDEOGRAPH +0xE6D8 0x9F4E #CJK UNIFIED IDEOGRAPH +0xE6D9 0x8D13 #CJK UNIFIED IDEOGRAPH +0xE6DA 0x8CCD #CJK UNIFIED IDEOGRAPH +0xE6DB 0x8D14 #CJK UNIFIED IDEOGRAPH +0xE6DC 0x8D16 #CJK UNIFIED IDEOGRAPH +0xE6DD 0x8D67 #CJK UNIFIED IDEOGRAPH +0xE6DE 0x8D6D #CJK UNIFIED IDEOGRAPH +0xE6DF 0x8D71 #CJK UNIFIED IDEOGRAPH +0xE6E0 0x8D73 #CJK UNIFIED IDEOGRAPH +0xE6E1 0x8D81 #CJK UNIFIED IDEOGRAPH +0xE6E2 0x8D99 #CJK UNIFIED IDEOGRAPH +0xE6E3 0x8DC2 #CJK UNIFIED IDEOGRAPH +0xE6E4 0x8DBE #CJK UNIFIED IDEOGRAPH +0xE6E5 0x8DBA #CJK UNIFIED IDEOGRAPH +0xE6E6 0x8DCF #CJK UNIFIED IDEOGRAPH +0xE6E7 0x8DDA #CJK UNIFIED IDEOGRAPH +0xE6E8 0x8DD6 #CJK UNIFIED IDEOGRAPH +0xE6E9 0x8DCC #CJK UNIFIED IDEOGRAPH +0xE6EA 0x8DDB #CJK UNIFIED IDEOGRAPH +0xE6EB 0x8DCB #CJK UNIFIED IDEOGRAPH +0xE6EC 0x8DEA #CJK UNIFIED IDEOGRAPH +0xE6ED 0x8DEB #CJK UNIFIED IDEOGRAPH +0xE6EE 0x8DDF #CJK UNIFIED IDEOGRAPH +0xE6EF 0x8DE3 #CJK UNIFIED IDEOGRAPH +0xE6F0 0x8DFC #CJK UNIFIED IDEOGRAPH +0xE6F1 0x8E08 #CJK UNIFIED IDEOGRAPH +0xE6F2 0x8E09 #CJK UNIFIED IDEOGRAPH +0xE6F3 0x8DFF #CJK UNIFIED IDEOGRAPH +0xE6F4 0x8E1D #CJK UNIFIED IDEOGRAPH +0xE6F5 0x8E1E #CJK UNIFIED IDEOGRAPH +0xE6F6 0x8E10 #CJK UNIFIED IDEOGRAPH +0xE6F7 0x8E1F #CJK UNIFIED IDEOGRAPH +0xE6F8 0x8E42 #CJK UNIFIED IDEOGRAPH +0xE6F9 0x8E35 #CJK UNIFIED IDEOGRAPH +0xE6FA 0x8E30 #CJK UNIFIED IDEOGRAPH +0xE6FB 0x8E34 #CJK UNIFIED IDEOGRAPH +0xE6FC 0x8E4A #CJK UNIFIED IDEOGRAPH +0xE740 0x8E47 #CJK UNIFIED IDEOGRAPH +0xE741 0x8E49 #CJK UNIFIED IDEOGRAPH +0xE742 0x8E4C #CJK UNIFIED IDEOGRAPH +0xE743 0x8E50 #CJK UNIFIED IDEOGRAPH +0xE744 0x8E48 #CJK UNIFIED IDEOGRAPH +0xE745 0x8E59 #CJK UNIFIED IDEOGRAPH +0xE746 0x8E64 #CJK UNIFIED IDEOGRAPH +0xE747 0x8E60 #CJK UNIFIED IDEOGRAPH +0xE748 0x8E2A #CJK UNIFIED IDEOGRAPH +0xE749 0x8E63 #CJK UNIFIED IDEOGRAPH +0xE74A 0x8E55 #CJK UNIFIED IDEOGRAPH +0xE74B 0x8E76 #CJK UNIFIED IDEOGRAPH +0xE74C 0x8E72 #CJK UNIFIED IDEOGRAPH +0xE74D 0x8E7C #CJK UNIFIED IDEOGRAPH +0xE74E 0x8E81 #CJK UNIFIED IDEOGRAPH +0xE74F 0x8E87 #CJK UNIFIED IDEOGRAPH +0xE750 0x8E85 #CJK UNIFIED IDEOGRAPH +0xE751 0x8E84 #CJK UNIFIED IDEOGRAPH +0xE752 0x8E8B #CJK UNIFIED IDEOGRAPH +0xE753 0x8E8A #CJK UNIFIED IDEOGRAPH +0xE754 0x8E93 #CJK UNIFIED IDEOGRAPH +0xE755 0x8E91 #CJK UNIFIED IDEOGRAPH +0xE756 0x8E94 #CJK UNIFIED IDEOGRAPH +0xE757 0x8E99 #CJK UNIFIED IDEOGRAPH +0xE758 0x8EAA #CJK UNIFIED IDEOGRAPH +0xE759 0x8EA1 #CJK UNIFIED IDEOGRAPH +0xE75A 0x8EAC #CJK UNIFIED IDEOGRAPH +0xE75B 0x8EB0 #CJK UNIFIED IDEOGRAPH +0xE75C 0x8EC6 #CJK UNIFIED IDEOGRAPH +0xE75D 0x8EB1 #CJK UNIFIED IDEOGRAPH +0xE75E 0x8EBE #CJK UNIFIED IDEOGRAPH +0xE75F 0x8EC5 #CJK UNIFIED IDEOGRAPH +0xE760 0x8EC8 #CJK UNIFIED IDEOGRAPH +0xE761 0x8ECB #CJK UNIFIED IDEOGRAPH +0xE762 0x8EDB #CJK UNIFIED IDEOGRAPH +0xE763 0x8EE3 #CJK UNIFIED IDEOGRAPH +0xE764 0x8EFC #CJK UNIFIED IDEOGRAPH +0xE765 0x8EFB #CJK UNIFIED IDEOGRAPH +0xE766 0x8EEB #CJK UNIFIED IDEOGRAPH +0xE767 0x8EFE #CJK UNIFIED IDEOGRAPH +0xE768 0x8F0A #CJK UNIFIED IDEOGRAPH +0xE769 0x8F05 #CJK UNIFIED IDEOGRAPH +0xE76A 0x8F15 #CJK UNIFIED IDEOGRAPH +0xE76B 0x8F12 #CJK UNIFIED IDEOGRAPH +0xE76C 0x8F19 #CJK UNIFIED IDEOGRAPH +0xE76D 0x8F13 #CJK UNIFIED IDEOGRAPH +0xE76E 0x8F1C #CJK UNIFIED IDEOGRAPH +0xE76F 0x8F1F #CJK UNIFIED IDEOGRAPH +0xE770 0x8F1B #CJK UNIFIED IDEOGRAPH +0xE771 0x8F0C #CJK UNIFIED IDEOGRAPH +0xE772 0x8F26 #CJK UNIFIED IDEOGRAPH +0xE773 0x8F33 #CJK UNIFIED IDEOGRAPH +0xE774 0x8F3B #CJK UNIFIED IDEOGRAPH +0xE775 0x8F39 #CJK UNIFIED IDEOGRAPH +0xE776 0x8F45 #CJK UNIFIED IDEOGRAPH +0xE777 0x8F42 #CJK UNIFIED IDEOGRAPH +0xE778 0x8F3E #CJK UNIFIED IDEOGRAPH +0xE779 0x8F4C #CJK UNIFIED IDEOGRAPH +0xE77A 0x8F49 #CJK UNIFIED IDEOGRAPH +0xE77B 0x8F46 #CJK UNIFIED IDEOGRAPH +0xE77C 0x8F4E #CJK UNIFIED IDEOGRAPH +0xE77D 0x8F57 #CJK UNIFIED IDEOGRAPH +0xE77E 0x8F5C #CJK UNIFIED IDEOGRAPH +0xE780 0x8F62 #CJK UNIFIED IDEOGRAPH +0xE781 0x8F63 #CJK UNIFIED IDEOGRAPH +0xE782 0x8F64 #CJK UNIFIED IDEOGRAPH +0xE783 0x8F9C #CJK UNIFIED IDEOGRAPH +0xE784 0x8F9F #CJK UNIFIED IDEOGRAPH +0xE785 0x8FA3 #CJK UNIFIED IDEOGRAPH +0xE786 0x8FAD #CJK UNIFIED IDEOGRAPH +0xE787 0x8FAF #CJK UNIFIED IDEOGRAPH +0xE788 0x8FB7 #CJK UNIFIED IDEOGRAPH +0xE789 0x8FDA #CJK UNIFIED IDEOGRAPH +0xE78A 0x8FE5 #CJK UNIFIED IDEOGRAPH +0xE78B 0x8FE2 #CJK UNIFIED IDEOGRAPH +0xE78C 0x8FEA #CJK UNIFIED IDEOGRAPH +0xE78D 0x8FEF #CJK UNIFIED IDEOGRAPH +0xE78E 0x9087 #CJK UNIFIED IDEOGRAPH +0xE78F 0x8FF4 #CJK UNIFIED IDEOGRAPH +0xE790 0x9005 #CJK UNIFIED IDEOGRAPH +0xE791 0x8FF9 #CJK UNIFIED IDEOGRAPH +0xE792 0x8FFA #CJK UNIFIED IDEOGRAPH +0xE793 0x9011 #CJK UNIFIED IDEOGRAPH +0xE794 0x9015 #CJK UNIFIED IDEOGRAPH +0xE795 0x9021 #CJK UNIFIED IDEOGRAPH +0xE796 0x900D #CJK UNIFIED IDEOGRAPH +0xE797 0x901E #CJK UNIFIED IDEOGRAPH +0xE798 0x9016 #CJK UNIFIED IDEOGRAPH +0xE799 0x900B #CJK UNIFIED IDEOGRAPH +0xE79A 0x9027 #CJK UNIFIED IDEOGRAPH +0xE79B 0x9036 #CJK UNIFIED IDEOGRAPH +0xE79C 0x9035 #CJK UNIFIED IDEOGRAPH +0xE79D 0x9039 #CJK UNIFIED IDEOGRAPH +0xE79E 0x8FF8 #CJK UNIFIED IDEOGRAPH +0xE79F 0x904F #CJK UNIFIED IDEOGRAPH +0xE7A0 0x9050 #CJK UNIFIED IDEOGRAPH +0xE7A1 0x9051 #CJK UNIFIED IDEOGRAPH +0xE7A2 0x9052 #CJK UNIFIED IDEOGRAPH +0xE7A3 0x900E #CJK UNIFIED IDEOGRAPH +0xE7A4 0x9049 #CJK UNIFIED IDEOGRAPH +0xE7A5 0x903E #CJK UNIFIED IDEOGRAPH +0xE7A6 0x9056 #CJK UNIFIED IDEOGRAPH +0xE7A7 0x9058 #CJK UNIFIED IDEOGRAPH +0xE7A8 0x905E #CJK UNIFIED IDEOGRAPH +0xE7A9 0x9068 #CJK UNIFIED IDEOGRAPH +0xE7AA 0x906F #CJK UNIFIED IDEOGRAPH +0xE7AB 0x9076 #CJK UNIFIED IDEOGRAPH +0xE7AC 0x96A8 #CJK UNIFIED IDEOGRAPH +0xE7AD 0x9072 #CJK UNIFIED IDEOGRAPH +0xE7AE 0x9082 #CJK UNIFIED IDEOGRAPH +0xE7AF 0x907D #CJK UNIFIED IDEOGRAPH +0xE7B0 0x9081 #CJK UNIFIED IDEOGRAPH +0xE7B1 0x9080 #CJK UNIFIED IDEOGRAPH +0xE7B2 0x908A #CJK UNIFIED IDEOGRAPH +0xE7B3 0x9089 #CJK UNIFIED IDEOGRAPH +0xE7B4 0x908F #CJK UNIFIED IDEOGRAPH +0xE7B5 0x90A8 #CJK UNIFIED IDEOGRAPH +0xE7B6 0x90AF #CJK UNIFIED IDEOGRAPH +0xE7B7 0x90B1 #CJK UNIFIED IDEOGRAPH +0xE7B8 0x90B5 #CJK UNIFIED IDEOGRAPH +0xE7B9 0x90E2 #CJK UNIFIED IDEOGRAPH +0xE7BA 0x90E4 #CJK UNIFIED IDEOGRAPH +0xE7BB 0x6248 #CJK UNIFIED IDEOGRAPH +0xE7BC 0x90DB #CJK UNIFIED IDEOGRAPH +0xE7BD 0x9102 #CJK UNIFIED IDEOGRAPH +0xE7BE 0x9112 #CJK UNIFIED IDEOGRAPH +0xE7BF 0x9119 #CJK UNIFIED IDEOGRAPH +0xE7C0 0x9132 #CJK UNIFIED IDEOGRAPH +0xE7C1 0x9130 #CJK UNIFIED IDEOGRAPH +0xE7C2 0x914A #CJK UNIFIED IDEOGRAPH +0xE7C3 0x9156 #CJK UNIFIED IDEOGRAPH +0xE7C4 0x9158 #CJK UNIFIED IDEOGRAPH +0xE7C5 0x9163 #CJK UNIFIED IDEOGRAPH +0xE7C6 0x9165 #CJK UNIFIED IDEOGRAPH +0xE7C7 0x9169 #CJK UNIFIED IDEOGRAPH +0xE7C8 0x9173 #CJK UNIFIED IDEOGRAPH +0xE7C9 0x9172 #CJK UNIFIED IDEOGRAPH +0xE7CA 0x918B #CJK UNIFIED IDEOGRAPH +0xE7CB 0x9189 #CJK UNIFIED IDEOGRAPH +0xE7CC 0x9182 #CJK UNIFIED IDEOGRAPH +0xE7CD 0x91A2 #CJK UNIFIED IDEOGRAPH +0xE7CE 0x91AB #CJK UNIFIED IDEOGRAPH +0xE7CF 0x91AF #CJK UNIFIED IDEOGRAPH +0xE7D0 0x91AA #CJK UNIFIED IDEOGRAPH +0xE7D1 0x91B5 #CJK UNIFIED IDEOGRAPH +0xE7D2 0x91B4 #CJK UNIFIED IDEOGRAPH +0xE7D3 0x91BA #CJK UNIFIED IDEOGRAPH +0xE7D4 0x91C0 #CJK UNIFIED IDEOGRAPH +0xE7D5 0x91C1 #CJK UNIFIED IDEOGRAPH +0xE7D6 0x91C9 #CJK UNIFIED IDEOGRAPH +0xE7D7 0x91CB #CJK UNIFIED IDEOGRAPH +0xE7D8 0x91D0 #CJK UNIFIED IDEOGRAPH +0xE7D9 0x91D6 #CJK UNIFIED IDEOGRAPH +0xE7DA 0x91DF #CJK UNIFIED IDEOGRAPH +0xE7DB 0x91E1 #CJK UNIFIED IDEOGRAPH +0xE7DC 0x91DB #CJK UNIFIED IDEOGRAPH +0xE7DD 0x91FC #CJK UNIFIED IDEOGRAPH +0xE7DE 0x91F5 #CJK UNIFIED IDEOGRAPH +0xE7DF 0x91F6 #CJK UNIFIED IDEOGRAPH +0xE7E0 0x921E #CJK UNIFIED IDEOGRAPH +0xE7E1 0x91FF #CJK UNIFIED IDEOGRAPH +0xE7E2 0x9214 #CJK UNIFIED IDEOGRAPH +0xE7E3 0x922C #CJK UNIFIED IDEOGRAPH +0xE7E4 0x9215 #CJK UNIFIED IDEOGRAPH +0xE7E5 0x9211 #CJK UNIFIED IDEOGRAPH +0xE7E6 0x925E #CJK UNIFIED IDEOGRAPH +0xE7E7 0x9257 #CJK UNIFIED IDEOGRAPH +0xE7E8 0x9245 #CJK UNIFIED IDEOGRAPH +0xE7E9 0x9249 #CJK UNIFIED IDEOGRAPH +0xE7EA 0x9264 #CJK UNIFIED IDEOGRAPH +0xE7EB 0x9248 #CJK UNIFIED IDEOGRAPH +0xE7EC 0x9295 #CJK UNIFIED IDEOGRAPH +0xE7ED 0x923F #CJK UNIFIED IDEOGRAPH +0xE7EE 0x924B #CJK UNIFIED IDEOGRAPH +0xE7EF 0x9250 #CJK UNIFIED IDEOGRAPH +0xE7F0 0x929C #CJK UNIFIED IDEOGRAPH +0xE7F1 0x9296 #CJK UNIFIED IDEOGRAPH +0xE7F2 0x9293 #CJK UNIFIED IDEOGRAPH +0xE7F3 0x929B #CJK UNIFIED IDEOGRAPH +0xE7F4 0x925A #CJK UNIFIED IDEOGRAPH +0xE7F5 0x92CF #CJK UNIFIED IDEOGRAPH +0xE7F6 0x92B9 #CJK UNIFIED IDEOGRAPH +0xE7F7 0x92B7 #CJK UNIFIED IDEOGRAPH +0xE7F8 0x92E9 #CJK UNIFIED IDEOGRAPH +0xE7F9 0x930F #CJK UNIFIED IDEOGRAPH +0xE7FA 0x92FA #CJK UNIFIED IDEOGRAPH +0xE7FB 0x9344 #CJK UNIFIED IDEOGRAPH +0xE7FC 0x932E #CJK UNIFIED IDEOGRAPH +0xE840 0x9319 #CJK UNIFIED IDEOGRAPH +0xE841 0x9322 #CJK UNIFIED IDEOGRAPH +0xE842 0x931A #CJK UNIFIED IDEOGRAPH +0xE843 0x9323 #CJK UNIFIED IDEOGRAPH +0xE844 0x933A #CJK UNIFIED IDEOGRAPH +0xE845 0x9335 #CJK UNIFIED IDEOGRAPH +0xE846 0x933B #CJK UNIFIED IDEOGRAPH +0xE847 0x935C #CJK UNIFIED IDEOGRAPH +0xE848 0x9360 #CJK UNIFIED IDEOGRAPH +0xE849 0x937C #CJK UNIFIED IDEOGRAPH +0xE84A 0x936E #CJK UNIFIED IDEOGRAPH +0xE84B 0x9356 #CJK UNIFIED IDEOGRAPH +0xE84C 0x93B0 #CJK UNIFIED IDEOGRAPH +0xE84D 0x93AC #CJK UNIFIED IDEOGRAPH +0xE84E 0x93AD #CJK UNIFIED IDEOGRAPH +0xE84F 0x9394 #CJK UNIFIED IDEOGRAPH +0xE850 0x93B9 #CJK UNIFIED IDEOGRAPH +0xE851 0x93D6 #CJK UNIFIED IDEOGRAPH +0xE852 0x93D7 #CJK UNIFIED IDEOGRAPH +0xE853 0x93E8 #CJK UNIFIED IDEOGRAPH +0xE854 0x93E5 #CJK UNIFIED IDEOGRAPH +0xE855 0x93D8 #CJK UNIFIED IDEOGRAPH +0xE856 0x93C3 #CJK UNIFIED IDEOGRAPH +0xE857 0x93DD #CJK UNIFIED IDEOGRAPH +0xE858 0x93D0 #CJK UNIFIED IDEOGRAPH +0xE859 0x93C8 #CJK UNIFIED IDEOGRAPH +0xE85A 0x93E4 #CJK UNIFIED IDEOGRAPH +0xE85B 0x941A #CJK UNIFIED IDEOGRAPH +0xE85C 0x9414 #CJK UNIFIED IDEOGRAPH +0xE85D 0x9413 #CJK UNIFIED IDEOGRAPH +0xE85E 0x9403 #CJK UNIFIED IDEOGRAPH +0xE85F 0x9407 #CJK UNIFIED IDEOGRAPH +0xE860 0x9410 #CJK UNIFIED IDEOGRAPH +0xE861 0x9436 #CJK UNIFIED IDEOGRAPH +0xE862 0x942B #CJK UNIFIED IDEOGRAPH +0xE863 0x9435 #CJK UNIFIED IDEOGRAPH +0xE864 0x9421 #CJK UNIFIED IDEOGRAPH +0xE865 0x943A #CJK UNIFIED IDEOGRAPH +0xE866 0x9441 #CJK UNIFIED IDEOGRAPH +0xE867 0x9452 #CJK UNIFIED IDEOGRAPH +0xE868 0x9444 #CJK UNIFIED IDEOGRAPH +0xE869 0x945B #CJK UNIFIED IDEOGRAPH +0xE86A 0x9460 #CJK UNIFIED IDEOGRAPH +0xE86B 0x9462 #CJK UNIFIED IDEOGRAPH +0xE86C 0x945E #CJK UNIFIED IDEOGRAPH +0xE86D 0x946A #CJK UNIFIED IDEOGRAPH +0xE86E 0x9229 #CJK UNIFIED IDEOGRAPH +0xE86F 0x9470 #CJK UNIFIED IDEOGRAPH +0xE870 0x9475 #CJK UNIFIED IDEOGRAPH +0xE871 0x9477 #CJK UNIFIED IDEOGRAPH +0xE872 0x947D #CJK UNIFIED IDEOGRAPH +0xE873 0x945A #CJK UNIFIED IDEOGRAPH +0xE874 0x947C #CJK UNIFIED IDEOGRAPH +0xE875 0x947E #CJK UNIFIED IDEOGRAPH +0xE876 0x9481 #CJK UNIFIED IDEOGRAPH +0xE877 0x947F #CJK UNIFIED IDEOGRAPH +0xE878 0x9582 #CJK UNIFIED IDEOGRAPH +0xE879 0x9587 #CJK UNIFIED IDEOGRAPH +0xE87A 0x958A #CJK UNIFIED IDEOGRAPH +0xE87B 0x9594 #CJK UNIFIED IDEOGRAPH +0xE87C 0x9596 #CJK UNIFIED IDEOGRAPH +0xE87D 0x9598 #CJK UNIFIED IDEOGRAPH +0xE87E 0x9599 #CJK UNIFIED IDEOGRAPH +0xE880 0x95A0 #CJK UNIFIED IDEOGRAPH +0xE881 0x95A8 #CJK UNIFIED IDEOGRAPH +0xE882 0x95A7 #CJK UNIFIED IDEOGRAPH +0xE883 0x95AD #CJK UNIFIED IDEOGRAPH +0xE884 0x95BC #CJK UNIFIED IDEOGRAPH +0xE885 0x95BB #CJK UNIFIED IDEOGRAPH +0xE886 0x95B9 #CJK UNIFIED IDEOGRAPH +0xE887 0x95BE #CJK UNIFIED IDEOGRAPH +0xE888 0x95CA #CJK UNIFIED IDEOGRAPH +0xE889 0x6FF6 #CJK UNIFIED IDEOGRAPH +0xE88A 0x95C3 #CJK UNIFIED IDEOGRAPH +0xE88B 0x95CD #CJK UNIFIED IDEOGRAPH +0xE88C 0x95CC #CJK UNIFIED IDEOGRAPH +0xE88D 0x95D5 #CJK UNIFIED IDEOGRAPH +0xE88E 0x95D4 #CJK UNIFIED IDEOGRAPH +0xE88F 0x95D6 #CJK UNIFIED IDEOGRAPH +0xE890 0x95DC #CJK UNIFIED IDEOGRAPH +0xE891 0x95E1 #CJK UNIFIED IDEOGRAPH +0xE892 0x95E5 #CJK UNIFIED IDEOGRAPH +0xE893 0x95E2 #CJK UNIFIED IDEOGRAPH +0xE894 0x9621 #CJK UNIFIED IDEOGRAPH +0xE895 0x9628 #CJK UNIFIED IDEOGRAPH +0xE896 0x962E #CJK UNIFIED IDEOGRAPH +0xE897 0x962F #CJK UNIFIED IDEOGRAPH +0xE898 0x9642 #CJK UNIFIED IDEOGRAPH +0xE899 0x964C #CJK UNIFIED IDEOGRAPH +0xE89A 0x964F #CJK UNIFIED IDEOGRAPH +0xE89B 0x964B #CJK UNIFIED IDEOGRAPH +0xE89C 0x9677 #CJK UNIFIED IDEOGRAPH +0xE89D 0x965C #CJK UNIFIED IDEOGRAPH +0xE89E 0x965E #CJK UNIFIED IDEOGRAPH +0xE89F 0x965D #CJK UNIFIED IDEOGRAPH +0xE8A0 0x965F #CJK UNIFIED IDEOGRAPH +0xE8A1 0x9666 #CJK UNIFIED IDEOGRAPH +0xE8A2 0x9672 #CJK UNIFIED IDEOGRAPH +0xE8A3 0x966C #CJK UNIFIED IDEOGRAPH +0xE8A4 0x968D #CJK UNIFIED IDEOGRAPH +0xE8A5 0x9698 #CJK UNIFIED IDEOGRAPH +0xE8A6 0x9695 #CJK UNIFIED IDEOGRAPH +0xE8A7 0x9697 #CJK UNIFIED IDEOGRAPH +0xE8A8 0x96AA #CJK UNIFIED IDEOGRAPH +0xE8A9 0x96A7 #CJK UNIFIED IDEOGRAPH +0xE8AA 0x96B1 #CJK UNIFIED IDEOGRAPH +0xE8AB 0x96B2 #CJK UNIFIED IDEOGRAPH +0xE8AC 0x96B0 #CJK UNIFIED IDEOGRAPH +0xE8AD 0x96B4 #CJK UNIFIED IDEOGRAPH +0xE8AE 0x96B6 #CJK UNIFIED IDEOGRAPH +0xE8AF 0x96B8 #CJK UNIFIED IDEOGRAPH +0xE8B0 0x96B9 #CJK UNIFIED IDEOGRAPH +0xE8B1 0x96CE #CJK UNIFIED IDEOGRAPH +0xE8B2 0x96CB #CJK UNIFIED IDEOGRAPH +0xE8B3 0x96C9 #CJK UNIFIED IDEOGRAPH +0xE8B4 0x96CD #CJK UNIFIED IDEOGRAPH +0xE8B5 0x894D #CJK UNIFIED IDEOGRAPH +0xE8B6 0x96DC #CJK UNIFIED IDEOGRAPH +0xE8B7 0x970D #CJK UNIFIED IDEOGRAPH +0xE8B8 0x96D5 #CJK UNIFIED IDEOGRAPH +0xE8B9 0x96F9 #CJK UNIFIED IDEOGRAPH +0xE8BA 0x9704 #CJK UNIFIED IDEOGRAPH +0xE8BB 0x9706 #CJK UNIFIED IDEOGRAPH +0xE8BC 0x9708 #CJK UNIFIED IDEOGRAPH +0xE8BD 0x9713 #CJK UNIFIED IDEOGRAPH +0xE8BE 0x970E #CJK UNIFIED IDEOGRAPH +0xE8BF 0x9711 #CJK UNIFIED IDEOGRAPH +0xE8C0 0x970F #CJK UNIFIED IDEOGRAPH +0xE8C1 0x9716 #CJK UNIFIED IDEOGRAPH +0xE8C2 0x9719 #CJK UNIFIED IDEOGRAPH +0xE8C3 0x9724 #CJK UNIFIED IDEOGRAPH +0xE8C4 0x972A #CJK UNIFIED IDEOGRAPH +0xE8C5 0x9730 #CJK UNIFIED IDEOGRAPH +0xE8C6 0x9739 #CJK UNIFIED IDEOGRAPH +0xE8C7 0x973D #CJK UNIFIED IDEOGRAPH +0xE8C8 0x973E #CJK UNIFIED IDEOGRAPH +0xE8C9 0x9744 #CJK UNIFIED IDEOGRAPH +0xE8CA 0x9746 #CJK UNIFIED IDEOGRAPH +0xE8CB 0x9748 #CJK UNIFIED IDEOGRAPH +0xE8CC 0x9742 #CJK UNIFIED IDEOGRAPH +0xE8CD 0x9749 #CJK UNIFIED IDEOGRAPH +0xE8CE 0x975C #CJK UNIFIED IDEOGRAPH +0xE8CF 0x9760 #CJK UNIFIED IDEOGRAPH +0xE8D0 0x9764 #CJK UNIFIED IDEOGRAPH +0xE8D1 0x9766 #CJK UNIFIED IDEOGRAPH +0xE8D2 0x9768 #CJK UNIFIED IDEOGRAPH +0xE8D3 0x52D2 #CJK UNIFIED IDEOGRAPH +0xE8D4 0x976B #CJK UNIFIED IDEOGRAPH +0xE8D5 0x9771 #CJK UNIFIED IDEOGRAPH +0xE8D6 0x9779 #CJK UNIFIED IDEOGRAPH +0xE8D7 0x9785 #CJK UNIFIED IDEOGRAPH +0xE8D8 0x977C #CJK UNIFIED IDEOGRAPH +0xE8D9 0x9781 #CJK UNIFIED IDEOGRAPH +0xE8DA 0x977A #CJK UNIFIED IDEOGRAPH +0xE8DB 0x9786 #CJK UNIFIED IDEOGRAPH +0xE8DC 0x978B #CJK UNIFIED IDEOGRAPH +0xE8DD 0x978F #CJK UNIFIED IDEOGRAPH +0xE8DE 0x9790 #CJK UNIFIED IDEOGRAPH +0xE8DF 0x979C #CJK UNIFIED IDEOGRAPH +0xE8E0 0x97A8 #CJK UNIFIED IDEOGRAPH +0xE8E1 0x97A6 #CJK UNIFIED IDEOGRAPH +0xE8E2 0x97A3 #CJK UNIFIED IDEOGRAPH +0xE8E3 0x97B3 #CJK UNIFIED IDEOGRAPH +0xE8E4 0x97B4 #CJK UNIFIED IDEOGRAPH +0xE8E5 0x97C3 #CJK UNIFIED IDEOGRAPH +0xE8E6 0x97C6 #CJK UNIFIED IDEOGRAPH +0xE8E7 0x97C8 #CJK UNIFIED IDEOGRAPH +0xE8E8 0x97CB #CJK UNIFIED IDEOGRAPH +0xE8E9 0x97DC #CJK UNIFIED IDEOGRAPH +0xE8EA 0x97ED #CJK UNIFIED IDEOGRAPH +0xE8EB 0x9F4F #CJK UNIFIED IDEOGRAPH +0xE8EC 0x97F2 #CJK UNIFIED IDEOGRAPH +0xE8ED 0x7ADF #CJK UNIFIED IDEOGRAPH +0xE8EE 0x97F6 #CJK UNIFIED IDEOGRAPH +0xE8EF 0x97F5 #CJK UNIFIED IDEOGRAPH +0xE8F0 0x980F #CJK UNIFIED IDEOGRAPH +0xE8F1 0x980C #CJK UNIFIED IDEOGRAPH +0xE8F2 0x9838 #CJK UNIFIED IDEOGRAPH +0xE8F3 0x9824 #CJK UNIFIED IDEOGRAPH +0xE8F4 0x9821 #CJK UNIFIED IDEOGRAPH +0xE8F5 0x9837 #CJK UNIFIED IDEOGRAPH +0xE8F6 0x983D #CJK UNIFIED IDEOGRAPH +0xE8F7 0x9846 #CJK UNIFIED IDEOGRAPH +0xE8F8 0x984F #CJK UNIFIED IDEOGRAPH +0xE8F9 0x984B #CJK UNIFIED IDEOGRAPH +0xE8FA 0x986B #CJK UNIFIED IDEOGRAPH +0xE8FB 0x986F #CJK UNIFIED IDEOGRAPH +0xE8FC 0x9870 #CJK UNIFIED IDEOGRAPH +0xE940 0x9871 #CJK UNIFIED IDEOGRAPH +0xE941 0x9874 #CJK UNIFIED IDEOGRAPH +0xE942 0x9873 #CJK UNIFIED IDEOGRAPH +0xE943 0x98AA #CJK UNIFIED IDEOGRAPH +0xE944 0x98AF #CJK UNIFIED IDEOGRAPH +0xE945 0x98B1 #CJK UNIFIED IDEOGRAPH +0xE946 0x98B6 #CJK UNIFIED IDEOGRAPH +0xE947 0x98C4 #CJK UNIFIED IDEOGRAPH +0xE948 0x98C3 #CJK UNIFIED IDEOGRAPH +0xE949 0x98C6 #CJK UNIFIED IDEOGRAPH +0xE94A 0x98E9 #CJK UNIFIED IDEOGRAPH +0xE94B 0x98EB #CJK UNIFIED IDEOGRAPH +0xE94C 0x9903 #CJK UNIFIED IDEOGRAPH +0xE94D 0x9909 #CJK UNIFIED IDEOGRAPH +0xE94E 0x9912 #CJK UNIFIED IDEOGRAPH +0xE94F 0x9914 #CJK UNIFIED IDEOGRAPH +0xE950 0x9918 #CJK UNIFIED IDEOGRAPH +0xE951 0x9921 #CJK UNIFIED IDEOGRAPH +0xE952 0x991D #CJK UNIFIED IDEOGRAPH +0xE953 0x991E #CJK UNIFIED IDEOGRAPH +0xE954 0x9924 #CJK UNIFIED IDEOGRAPH +0xE955 0x9920 #CJK UNIFIED IDEOGRAPH +0xE956 0x992C #CJK UNIFIED IDEOGRAPH +0xE957 0x992E #CJK UNIFIED IDEOGRAPH +0xE958 0x993D #CJK UNIFIED IDEOGRAPH +0xE959 0x993E #CJK UNIFIED IDEOGRAPH +0xE95A 0x9942 #CJK UNIFIED IDEOGRAPH +0xE95B 0x9949 #CJK UNIFIED IDEOGRAPH +0xE95C 0x9945 #CJK UNIFIED IDEOGRAPH +0xE95D 0x9950 #CJK UNIFIED IDEOGRAPH +0xE95E 0x994B #CJK UNIFIED IDEOGRAPH +0xE95F 0x9951 #CJK UNIFIED IDEOGRAPH +0xE960 0x9952 #CJK UNIFIED IDEOGRAPH +0xE961 0x994C #CJK UNIFIED IDEOGRAPH +0xE962 0x9955 #CJK UNIFIED IDEOGRAPH +0xE963 0x9997 #CJK UNIFIED IDEOGRAPH +0xE964 0x9998 #CJK UNIFIED IDEOGRAPH +0xE965 0x99A5 #CJK UNIFIED IDEOGRAPH +0xE966 0x99AD #CJK UNIFIED IDEOGRAPH +0xE967 0x99AE #CJK UNIFIED IDEOGRAPH +0xE968 0x99BC #CJK UNIFIED IDEOGRAPH +0xE969 0x99DF #CJK UNIFIED IDEOGRAPH +0xE96A 0x99DB #CJK UNIFIED IDEOGRAPH +0xE96B 0x99DD #CJK UNIFIED IDEOGRAPH +0xE96C 0x99D8 #CJK UNIFIED IDEOGRAPH +0xE96D 0x99D1 #CJK UNIFIED IDEOGRAPH +0xE96E 0x99ED #CJK UNIFIED IDEOGRAPH +0xE96F 0x99EE #CJK UNIFIED IDEOGRAPH +0xE970 0x99F1 #CJK UNIFIED IDEOGRAPH +0xE971 0x99F2 #CJK UNIFIED IDEOGRAPH +0xE972 0x99FB #CJK UNIFIED IDEOGRAPH +0xE973 0x99F8 #CJK UNIFIED IDEOGRAPH +0xE974 0x9A01 #CJK UNIFIED IDEOGRAPH +0xE975 0x9A0F #CJK UNIFIED IDEOGRAPH +0xE976 0x9A05 #CJK UNIFIED IDEOGRAPH +0xE977 0x99E2 #CJK UNIFIED IDEOGRAPH +0xE978 0x9A19 #CJK UNIFIED IDEOGRAPH +0xE979 0x9A2B #CJK UNIFIED IDEOGRAPH +0xE97A 0x9A37 #CJK UNIFIED IDEOGRAPH +0xE97B 0x9A45 #CJK UNIFIED IDEOGRAPH +0xE97C 0x9A42 #CJK UNIFIED IDEOGRAPH +0xE97D 0x9A40 #CJK UNIFIED IDEOGRAPH +0xE97E 0x9A43 #CJK UNIFIED IDEOGRAPH +0xE980 0x9A3E #CJK UNIFIED IDEOGRAPH +0xE981 0x9A55 #CJK UNIFIED IDEOGRAPH +0xE982 0x9A4D #CJK UNIFIED IDEOGRAPH +0xE983 0x9A5B #CJK UNIFIED IDEOGRAPH +0xE984 0x9A57 #CJK UNIFIED IDEOGRAPH +0xE985 0x9A5F #CJK UNIFIED IDEOGRAPH +0xE986 0x9A62 #CJK UNIFIED IDEOGRAPH +0xE987 0x9A65 #CJK UNIFIED IDEOGRAPH +0xE988 0x9A64 #CJK UNIFIED IDEOGRAPH +0xE989 0x9A69 #CJK UNIFIED IDEOGRAPH +0xE98A 0x9A6B #CJK UNIFIED IDEOGRAPH +0xE98B 0x9A6A #CJK UNIFIED IDEOGRAPH +0xE98C 0x9AAD #CJK UNIFIED IDEOGRAPH +0xE98D 0x9AB0 #CJK UNIFIED IDEOGRAPH +0xE98E 0x9ABC #CJK UNIFIED IDEOGRAPH +0xE98F 0x9AC0 #CJK UNIFIED IDEOGRAPH +0xE990 0x9ACF #CJK UNIFIED IDEOGRAPH +0xE991 0x9AD1 #CJK UNIFIED IDEOGRAPH +0xE992 0x9AD3 #CJK UNIFIED IDEOGRAPH +0xE993 0x9AD4 #CJK UNIFIED IDEOGRAPH +0xE994 0x9ADE #CJK UNIFIED IDEOGRAPH +0xE995 0x9ADF #CJK UNIFIED IDEOGRAPH +0xE996 0x9AE2 #CJK UNIFIED IDEOGRAPH +0xE997 0x9AE3 #CJK UNIFIED IDEOGRAPH +0xE998 0x9AE6 #CJK UNIFIED IDEOGRAPH +0xE999 0x9AEF #CJK UNIFIED IDEOGRAPH +0xE99A 0x9AEB #CJK UNIFIED IDEOGRAPH +0xE99B 0x9AEE #CJK UNIFIED IDEOGRAPH +0xE99C 0x9AF4 #CJK UNIFIED IDEOGRAPH +0xE99D 0x9AF1 #CJK UNIFIED IDEOGRAPH +0xE99E 0x9AF7 #CJK UNIFIED IDEOGRAPH +0xE99F 0x9AFB #CJK UNIFIED IDEOGRAPH +0xE9A0 0x9B06 #CJK UNIFIED IDEOGRAPH +0xE9A1 0x9B18 #CJK UNIFIED IDEOGRAPH +0xE9A2 0x9B1A #CJK UNIFIED IDEOGRAPH +0xE9A3 0x9B1F #CJK UNIFIED IDEOGRAPH +0xE9A4 0x9B22 #CJK UNIFIED IDEOGRAPH +0xE9A5 0x9B23 #CJK UNIFIED IDEOGRAPH +0xE9A6 0x9B25 #CJK UNIFIED IDEOGRAPH +0xE9A7 0x9B27 #CJK UNIFIED IDEOGRAPH +0xE9A8 0x9B28 #CJK UNIFIED IDEOGRAPH +0xE9A9 0x9B29 #CJK UNIFIED IDEOGRAPH +0xE9AA 0x9B2A #CJK UNIFIED IDEOGRAPH +0xE9AB 0x9B2E #CJK UNIFIED IDEOGRAPH +0xE9AC 0x9B2F #CJK UNIFIED IDEOGRAPH +0xE9AD 0x9B32 #CJK UNIFIED IDEOGRAPH +0xE9AE 0x9B44 #CJK UNIFIED IDEOGRAPH +0xE9AF 0x9B43 #CJK UNIFIED IDEOGRAPH +0xE9B0 0x9B4F #CJK UNIFIED IDEOGRAPH +0xE9B1 0x9B4D #CJK UNIFIED IDEOGRAPH +0xE9B2 0x9B4E #CJK UNIFIED IDEOGRAPH +0xE9B3 0x9B51 #CJK UNIFIED IDEOGRAPH +0xE9B4 0x9B58 #CJK UNIFIED IDEOGRAPH +0xE9B5 0x9B74 #CJK UNIFIED IDEOGRAPH +0xE9B6 0x9B93 #CJK UNIFIED IDEOGRAPH +0xE9B7 0x9B83 #CJK UNIFIED IDEOGRAPH +0xE9B8 0x9B91 #CJK UNIFIED IDEOGRAPH +0xE9B9 0x9B96 #CJK UNIFIED IDEOGRAPH +0xE9BA 0x9B97 #CJK UNIFIED IDEOGRAPH +0xE9BB 0x9B9F #CJK UNIFIED IDEOGRAPH +0xE9BC 0x9BA0 #CJK UNIFIED IDEOGRAPH +0xE9BD 0x9BA8 #CJK UNIFIED IDEOGRAPH +0xE9BE 0x9BB4 #CJK UNIFIED IDEOGRAPH +0xE9BF 0x9BC0 #CJK UNIFIED IDEOGRAPH +0xE9C0 0x9BCA #CJK UNIFIED IDEOGRAPH +0xE9C1 0x9BB9 #CJK UNIFIED IDEOGRAPH +0xE9C2 0x9BC6 #CJK UNIFIED IDEOGRAPH +0xE9C3 0x9BCF #CJK UNIFIED IDEOGRAPH +0xE9C4 0x9BD1 #CJK UNIFIED IDEOGRAPH +0xE9C5 0x9BD2 #CJK UNIFIED IDEOGRAPH +0xE9C6 0x9BE3 #CJK UNIFIED IDEOGRAPH +0xE9C7 0x9BE2 #CJK UNIFIED IDEOGRAPH +0xE9C8 0x9BE4 #CJK UNIFIED IDEOGRAPH +0xE9C9 0x9BD4 #CJK UNIFIED IDEOGRAPH +0xE9CA 0x9BE1 #CJK UNIFIED IDEOGRAPH +0xE9CB 0x9C3A #CJK UNIFIED IDEOGRAPH +0xE9CC 0x9BF2 #CJK UNIFIED IDEOGRAPH +0xE9CD 0x9BF1 #CJK UNIFIED IDEOGRAPH +0xE9CE 0x9BF0 #CJK UNIFIED IDEOGRAPH +0xE9CF 0x9C15 #CJK UNIFIED IDEOGRAPH +0xE9D0 0x9C14 #CJK UNIFIED IDEOGRAPH +0xE9D1 0x9C09 #CJK UNIFIED IDEOGRAPH +0xE9D2 0x9C13 #CJK UNIFIED IDEOGRAPH +0xE9D3 0x9C0C #CJK UNIFIED IDEOGRAPH +0xE9D4 0x9C06 #CJK UNIFIED IDEOGRAPH +0xE9D5 0x9C08 #CJK UNIFIED IDEOGRAPH +0xE9D6 0x9C12 #CJK UNIFIED IDEOGRAPH +0xE9D7 0x9C0A #CJK UNIFIED IDEOGRAPH +0xE9D8 0x9C04 #CJK UNIFIED IDEOGRAPH +0xE9D9 0x9C2E #CJK UNIFIED IDEOGRAPH +0xE9DA 0x9C1B #CJK UNIFIED IDEOGRAPH +0xE9DB 0x9C25 #CJK UNIFIED IDEOGRAPH +0xE9DC 0x9C24 #CJK UNIFIED IDEOGRAPH +0xE9DD 0x9C21 #CJK UNIFIED IDEOGRAPH +0xE9DE 0x9C30 #CJK UNIFIED IDEOGRAPH +0xE9DF 0x9C47 #CJK UNIFIED IDEOGRAPH +0xE9E0 0x9C32 #CJK UNIFIED IDEOGRAPH +0xE9E1 0x9C46 #CJK UNIFIED IDEOGRAPH +0xE9E2 0x9C3E #CJK UNIFIED IDEOGRAPH +0xE9E3 0x9C5A #CJK UNIFIED IDEOGRAPH +0xE9E4 0x9C60 #CJK UNIFIED IDEOGRAPH +0xE9E5 0x9C67 #CJK UNIFIED IDEOGRAPH +0xE9E6 0x9C76 #CJK UNIFIED IDEOGRAPH +0xE9E7 0x9C78 #CJK UNIFIED IDEOGRAPH +0xE9E8 0x9CE7 #CJK UNIFIED IDEOGRAPH +0xE9E9 0x9CEC #CJK UNIFIED IDEOGRAPH +0xE9EA 0x9CF0 #CJK UNIFIED IDEOGRAPH +0xE9EB 0x9D09 #CJK UNIFIED IDEOGRAPH +0xE9EC 0x9D08 #CJK UNIFIED IDEOGRAPH +0xE9ED 0x9CEB #CJK UNIFIED IDEOGRAPH +0xE9EE 0x9D03 #CJK UNIFIED IDEOGRAPH +0xE9EF 0x9D06 #CJK UNIFIED IDEOGRAPH +0xE9F0 0x9D2A #CJK UNIFIED IDEOGRAPH +0xE9F1 0x9D26 #CJK UNIFIED IDEOGRAPH +0xE9F2 0x9DAF #CJK UNIFIED IDEOGRAPH +0xE9F3 0x9D23 #CJK UNIFIED IDEOGRAPH +0xE9F4 0x9D1F #CJK UNIFIED IDEOGRAPH +0xE9F5 0x9D44 #CJK UNIFIED IDEOGRAPH +0xE9F6 0x9D15 #CJK UNIFIED IDEOGRAPH +0xE9F7 0x9D12 #CJK UNIFIED IDEOGRAPH +0xE9F8 0x9D41 #CJK UNIFIED IDEOGRAPH +0xE9F9 0x9D3F #CJK UNIFIED IDEOGRAPH +0xE9FA 0x9D3E #CJK UNIFIED IDEOGRAPH +0xE9FB 0x9D46 #CJK UNIFIED IDEOGRAPH +0xE9FC 0x9D48 #CJK UNIFIED IDEOGRAPH +0xEA40 0x9D5D #CJK UNIFIED IDEOGRAPH +0xEA41 0x9D5E #CJK UNIFIED IDEOGRAPH +0xEA42 0x9D64 #CJK UNIFIED IDEOGRAPH +0xEA43 0x9D51 #CJK UNIFIED IDEOGRAPH +0xEA44 0x9D50 #CJK UNIFIED IDEOGRAPH +0xEA45 0x9D59 #CJK UNIFIED IDEOGRAPH +0xEA46 0x9D72 #CJK UNIFIED IDEOGRAPH +0xEA47 0x9D89 #CJK UNIFIED IDEOGRAPH +0xEA48 0x9D87 #CJK UNIFIED IDEOGRAPH +0xEA49 0x9DAB #CJK UNIFIED IDEOGRAPH +0xEA4A 0x9D6F #CJK UNIFIED IDEOGRAPH +0xEA4B 0x9D7A #CJK UNIFIED IDEOGRAPH +0xEA4C 0x9D9A #CJK UNIFIED IDEOGRAPH +0xEA4D 0x9DA4 #CJK UNIFIED IDEOGRAPH +0xEA4E 0x9DA9 #CJK UNIFIED IDEOGRAPH +0xEA4F 0x9DB2 #CJK UNIFIED IDEOGRAPH +0xEA50 0x9DC4 #CJK UNIFIED IDEOGRAPH +0xEA51 0x9DC1 #CJK UNIFIED IDEOGRAPH +0xEA52 0x9DBB #CJK UNIFIED IDEOGRAPH +0xEA53 0x9DB8 #CJK UNIFIED IDEOGRAPH +0xEA54 0x9DBA #CJK UNIFIED IDEOGRAPH +0xEA55 0x9DC6 #CJK UNIFIED IDEOGRAPH +0xEA56 0x9DCF #CJK UNIFIED IDEOGRAPH +0xEA57 0x9DC2 #CJK UNIFIED IDEOGRAPH +0xEA58 0x9DD9 #CJK UNIFIED IDEOGRAPH +0xEA59 0x9DD3 #CJK UNIFIED IDEOGRAPH +0xEA5A 0x9DF8 #CJK UNIFIED IDEOGRAPH +0xEA5B 0x9DE6 #CJK UNIFIED IDEOGRAPH +0xEA5C 0x9DED #CJK UNIFIED IDEOGRAPH +0xEA5D 0x9DEF #CJK UNIFIED IDEOGRAPH +0xEA5E 0x9DFD #CJK UNIFIED IDEOGRAPH +0xEA5F 0x9E1A #CJK UNIFIED IDEOGRAPH +0xEA60 0x9E1B #CJK UNIFIED IDEOGRAPH +0xEA61 0x9E1E #CJK UNIFIED IDEOGRAPH +0xEA62 0x9E75 #CJK UNIFIED IDEOGRAPH +0xEA63 0x9E79 #CJK UNIFIED IDEOGRAPH +0xEA64 0x9E7D #CJK UNIFIED IDEOGRAPH +0xEA65 0x9E81 #CJK UNIFIED IDEOGRAPH +0xEA66 0x9E88 #CJK UNIFIED IDEOGRAPH +0xEA67 0x9E8B #CJK UNIFIED IDEOGRAPH +0xEA68 0x9E8C #CJK UNIFIED IDEOGRAPH +0xEA69 0x9E92 #CJK UNIFIED IDEOGRAPH +0xEA6A 0x9E95 #CJK UNIFIED IDEOGRAPH +0xEA6B 0x9E91 #CJK UNIFIED IDEOGRAPH +0xEA6C 0x9E9D #CJK UNIFIED IDEOGRAPH +0xEA6D 0x9EA5 #CJK UNIFIED IDEOGRAPH +0xEA6E 0x9EA9 #CJK UNIFIED IDEOGRAPH +0xEA6F 0x9EB8 #CJK UNIFIED IDEOGRAPH +0xEA70 0x9EAA #CJK UNIFIED IDEOGRAPH +0xEA71 0x9EAD #CJK UNIFIED IDEOGRAPH +0xEA72 0x9761 #CJK UNIFIED IDEOGRAPH +0xEA73 0x9ECC #CJK UNIFIED IDEOGRAPH +0xEA74 0x9ECE #CJK UNIFIED IDEOGRAPH +0xEA75 0x9ECF #CJK UNIFIED IDEOGRAPH +0xEA76 0x9ED0 #CJK UNIFIED IDEOGRAPH +0xEA77 0x9ED4 #CJK UNIFIED IDEOGRAPH +0xEA78 0x9EDC #CJK UNIFIED IDEOGRAPH +0xEA79 0x9EDE #CJK UNIFIED IDEOGRAPH +0xEA7A 0x9EDD #CJK UNIFIED IDEOGRAPH +0xEA7B 0x9EE0 #CJK UNIFIED IDEOGRAPH +0xEA7C 0x9EE5 #CJK UNIFIED IDEOGRAPH +0xEA7D 0x9EE8 #CJK UNIFIED IDEOGRAPH +0xEA7E 0x9EEF #CJK UNIFIED IDEOGRAPH +0xEA80 0x9EF4 #CJK UNIFIED IDEOGRAPH +0xEA81 0x9EF6 #CJK UNIFIED IDEOGRAPH +0xEA82 0x9EF7 #CJK UNIFIED IDEOGRAPH +0xEA83 0x9EF9 #CJK UNIFIED IDEOGRAPH +0xEA84 0x9EFB #CJK UNIFIED IDEOGRAPH +0xEA85 0x9EFC #CJK UNIFIED IDEOGRAPH +0xEA86 0x9EFD #CJK UNIFIED IDEOGRAPH +0xEA87 0x9F07 #CJK UNIFIED IDEOGRAPH +0xEA88 0x9F08 #CJK UNIFIED IDEOGRAPH +0xEA89 0x76B7 #CJK UNIFIED IDEOGRAPH +0xEA8A 0x9F15 #CJK UNIFIED IDEOGRAPH +0xEA8B 0x9F21 #CJK UNIFIED IDEOGRAPH +0xEA8C 0x9F2C #CJK UNIFIED IDEOGRAPH +0xEA8D 0x9F3E #CJK UNIFIED IDEOGRAPH +0xEA8E 0x9F4A #CJK UNIFIED IDEOGRAPH +0xEA8F 0x9F52 #CJK UNIFIED IDEOGRAPH +0xEA90 0x9F54 #CJK UNIFIED IDEOGRAPH +0xEA91 0x9F63 #CJK UNIFIED IDEOGRAPH +0xEA92 0x9F5F #CJK UNIFIED IDEOGRAPH +0xEA93 0x9F60 #CJK UNIFIED IDEOGRAPH +0xEA94 0x9F61 #CJK UNIFIED IDEOGRAPH +0xEA95 0x9F66 #CJK UNIFIED IDEOGRAPH +0xEA96 0x9F67 #CJK UNIFIED IDEOGRAPH +0xEA97 0x9F6C #CJK UNIFIED IDEOGRAPH +0xEA98 0x9F6A #CJK UNIFIED IDEOGRAPH +0xEA99 0x9F77 #CJK UNIFIED IDEOGRAPH +0xEA9A 0x9F72 #CJK UNIFIED IDEOGRAPH +0xEA9B 0x9F76 #CJK UNIFIED IDEOGRAPH +0xEA9C 0x9F95 #CJK UNIFIED IDEOGRAPH +0xEA9D 0x9F9C #CJK UNIFIED IDEOGRAPH +0xEA9E 0x9FA0 #CJK UNIFIED IDEOGRAPH +0xEA9F 0x582F #CJK UNIFIED IDEOGRAPH +0xEAA0 0x69C7 #CJK UNIFIED IDEOGRAPH +0xEAA1 0x9059 #CJK UNIFIED IDEOGRAPH +0xEAA2 0x7464 #CJK UNIFIED IDEOGRAPH +0xEAA3 0x51DC #CJK UNIFIED IDEOGRAPH +0xEAA4 0x7199 #CJK UNIFIED IDEOGRAPH +0xED40 0x7E8A #CJK UNIFIED IDEOGRAPH +0xED41 0x891C #CJK UNIFIED IDEOGRAPH +0xED42 0x9348 #CJK UNIFIED IDEOGRAPH +0xED43 0x9288 #CJK UNIFIED IDEOGRAPH +0xED44 0x84DC #CJK UNIFIED IDEOGRAPH +0xED45 0x4FC9 #CJK UNIFIED IDEOGRAPH +0xED46 0x70BB #CJK UNIFIED IDEOGRAPH +0xED47 0x6631 #CJK UNIFIED IDEOGRAPH +0xED48 0x68C8 #CJK UNIFIED IDEOGRAPH +0xED49 0x92F9 #CJK UNIFIED IDEOGRAPH +0xED4A 0x66FB #CJK UNIFIED IDEOGRAPH +0xED4B 0x5F45 #CJK UNIFIED IDEOGRAPH +0xED4C 0x4E28 #CJK UNIFIED IDEOGRAPH +0xED4D 0x4EE1 #CJK UNIFIED IDEOGRAPH +0xED4E 0x4EFC #CJK UNIFIED IDEOGRAPH +0xED4F 0x4F00 #CJK UNIFIED IDEOGRAPH +0xED50 0x4F03 #CJK UNIFIED IDEOGRAPH +0xED51 0x4F39 #CJK UNIFIED IDEOGRAPH +0xED52 0x4F56 #CJK UNIFIED IDEOGRAPH +0xED53 0x4F92 #CJK UNIFIED IDEOGRAPH +0xED54 0x4F8A #CJK UNIFIED IDEOGRAPH +0xED55 0x4F9A #CJK UNIFIED IDEOGRAPH +0xED56 0x4F94 #CJK UNIFIED IDEOGRAPH +0xED57 0x4FCD #CJK UNIFIED IDEOGRAPH +0xED58 0x5040 #CJK UNIFIED IDEOGRAPH +0xED59 0x5022 #CJK UNIFIED IDEOGRAPH +0xED5A 0x4FFF #CJK UNIFIED IDEOGRAPH +0xED5B 0x501E #CJK UNIFIED IDEOGRAPH +0xED5C 0x5046 #CJK UNIFIED IDEOGRAPH +0xED5D 0x5070 #CJK UNIFIED IDEOGRAPH +0xED5E 0x5042 #CJK UNIFIED IDEOGRAPH +0xED5F 0x5094 #CJK UNIFIED IDEOGRAPH +0xED60 0x50F4 #CJK UNIFIED IDEOGRAPH +0xED61 0x50D8 #CJK UNIFIED IDEOGRAPH +0xED62 0x514A #CJK UNIFIED IDEOGRAPH +0xED63 0x5164 #CJK UNIFIED IDEOGRAPH +0xED64 0x519D #CJK UNIFIED IDEOGRAPH +0xED65 0x51BE #CJK UNIFIED IDEOGRAPH +0xED66 0x51EC #CJK UNIFIED IDEOGRAPH +0xED67 0x5215 #CJK UNIFIED IDEOGRAPH +0xED68 0x529C #CJK UNIFIED IDEOGRAPH +0xED69 0x52A6 #CJK UNIFIED IDEOGRAPH +0xED6A 0x52C0 #CJK UNIFIED IDEOGRAPH +0xED6B 0x52DB #CJK UNIFIED IDEOGRAPH +0xED6C 0x5300 #CJK UNIFIED IDEOGRAPH +0xED6D 0x5307 #CJK UNIFIED IDEOGRAPH +0xED6E 0x5324 #CJK UNIFIED IDEOGRAPH +0xED6F 0x5372 #CJK UNIFIED IDEOGRAPH +0xED70 0x5393 #CJK UNIFIED IDEOGRAPH +0xED71 0x53B2 #CJK UNIFIED IDEOGRAPH +0xED72 0x53DD #CJK UNIFIED IDEOGRAPH +0xED73 0xFA0E #CJK COMPATIBILITY IDEOGRAPH +0xED74 0x549C #CJK UNIFIED IDEOGRAPH +0xED75 0x548A #CJK UNIFIED IDEOGRAPH +0xED76 0x54A9 #CJK UNIFIED IDEOGRAPH +0xED77 0x54FF #CJK UNIFIED IDEOGRAPH +0xED78 0x5586 #CJK UNIFIED IDEOGRAPH +0xED79 0x5759 #CJK UNIFIED IDEOGRAPH +0xED7A 0x5765 #CJK UNIFIED IDEOGRAPH +0xED7B 0x57AC #CJK UNIFIED IDEOGRAPH +0xED7C 0x57C8 #CJK UNIFIED IDEOGRAPH +0xED7D 0x57C7 #CJK UNIFIED IDEOGRAPH +0xED7E 0xFA0F #CJK COMPATIBILITY IDEOGRAPH +0xED80 0xFA10 #CJK COMPATIBILITY IDEOGRAPH +0xED81 0x589E #CJK UNIFIED IDEOGRAPH +0xED82 0x58B2 #CJK UNIFIED IDEOGRAPH +0xED83 0x590B #CJK UNIFIED IDEOGRAPH +0xED84 0x5953 #CJK UNIFIED IDEOGRAPH +0xED85 0x595B #CJK UNIFIED IDEOGRAPH +0xED86 0x595D #CJK UNIFIED IDEOGRAPH +0xED87 0x5963 #CJK UNIFIED IDEOGRAPH +0xED88 0x59A4 #CJK UNIFIED IDEOGRAPH +0xED89 0x59BA #CJK UNIFIED IDEOGRAPH +0xED8A 0x5B56 #CJK UNIFIED IDEOGRAPH +0xED8B 0x5BC0 #CJK UNIFIED IDEOGRAPH +0xED8C 0x752F #CJK UNIFIED IDEOGRAPH +0xED8D 0x5BD8 #CJK UNIFIED IDEOGRAPH +0xED8E 0x5BEC #CJK UNIFIED IDEOGRAPH +0xED8F 0x5C1E #CJK UNIFIED IDEOGRAPH +0xED90 0x5CA6 #CJK UNIFIED IDEOGRAPH +0xED91 0x5CBA #CJK UNIFIED IDEOGRAPH +0xED92 0x5CF5 #CJK UNIFIED IDEOGRAPH +0xED93 0x5D27 #CJK UNIFIED IDEOGRAPH +0xED94 0x5D53 #CJK UNIFIED IDEOGRAPH +0xED95 0xFA11 #CJK COMPATIBILITY IDEOGRAPH +0xED96 0x5D42 #CJK UNIFIED IDEOGRAPH +0xED97 0x5D6D #CJK UNIFIED IDEOGRAPH +0xED98 0x5DB8 #CJK UNIFIED IDEOGRAPH +0xED99 0x5DB9 #CJK UNIFIED IDEOGRAPH +0xED9A 0x5DD0 #CJK UNIFIED IDEOGRAPH +0xED9B 0x5F21 #CJK UNIFIED IDEOGRAPH +0xED9C 0x5F34 #CJK UNIFIED IDEOGRAPH +0xED9D 0x5F67 #CJK UNIFIED IDEOGRAPH +0xED9E 0x5FB7 #CJK UNIFIED IDEOGRAPH +0xED9F 0x5FDE #CJK UNIFIED IDEOGRAPH +0xEDA0 0x605D #CJK UNIFIED IDEOGRAPH +0xEDA1 0x6085 #CJK UNIFIED IDEOGRAPH +0xEDA2 0x608A #CJK UNIFIED IDEOGRAPH +0xEDA3 0x60DE #CJK UNIFIED IDEOGRAPH +0xEDA4 0x60D5 #CJK UNIFIED IDEOGRAPH +0xEDA5 0x6120 #CJK UNIFIED IDEOGRAPH +0xEDA6 0x60F2 #CJK UNIFIED IDEOGRAPH +0xEDA7 0x6111 #CJK UNIFIED IDEOGRAPH +0xEDA8 0x6137 #CJK UNIFIED IDEOGRAPH +0xEDA9 0x6130 #CJK UNIFIED IDEOGRAPH +0xEDAA 0x6198 #CJK UNIFIED IDEOGRAPH +0xEDAB 0x6213 #CJK UNIFIED IDEOGRAPH +0xEDAC 0x62A6 #CJK UNIFIED IDEOGRAPH +0xEDAD 0x63F5 #CJK UNIFIED IDEOGRAPH +0xEDAE 0x6460 #CJK UNIFIED IDEOGRAPH +0xEDAF 0x649D #CJK UNIFIED IDEOGRAPH +0xEDB0 0x64CE #CJK UNIFIED IDEOGRAPH +0xEDB1 0x654E #CJK UNIFIED IDEOGRAPH +0xEDB2 0x6600 #CJK UNIFIED IDEOGRAPH +0xEDB3 0x6615 #CJK UNIFIED IDEOGRAPH +0xEDB4 0x663B #CJK UNIFIED IDEOGRAPH +0xEDB5 0x6609 #CJK UNIFIED IDEOGRAPH +0xEDB6 0x662E #CJK UNIFIED IDEOGRAPH +0xEDB7 0x661E #CJK UNIFIED IDEOGRAPH +0xEDB8 0x6624 #CJK UNIFIED IDEOGRAPH +0xEDB9 0x6665 #CJK UNIFIED IDEOGRAPH +0xEDBA 0x6657 #CJK UNIFIED IDEOGRAPH +0xEDBB 0x6659 #CJK UNIFIED IDEOGRAPH +0xEDBC 0xFA12 #CJK COMPATIBILITY IDEOGRAPH +0xEDBD 0x6673 #CJK UNIFIED IDEOGRAPH +0xEDBE 0x6699 #CJK UNIFIED IDEOGRAPH +0xEDBF 0x66A0 #CJK UNIFIED IDEOGRAPH +0xEDC0 0x66B2 #CJK UNIFIED IDEOGRAPH +0xEDC1 0x66BF #CJK UNIFIED IDEOGRAPH +0xEDC2 0x66FA #CJK UNIFIED IDEOGRAPH +0xEDC3 0x670E #CJK UNIFIED IDEOGRAPH +0xEDC4 0xF929 #CJK COMPATIBILITY IDEOGRAPH +0xEDC5 0x6766 #CJK UNIFIED IDEOGRAPH +0xEDC6 0x67BB #CJK UNIFIED IDEOGRAPH +0xEDC7 0x6852 #CJK UNIFIED IDEOGRAPH +0xEDC8 0x67C0 #CJK UNIFIED IDEOGRAPH +0xEDC9 0x6801 #CJK UNIFIED IDEOGRAPH +0xEDCA 0x6844 #CJK UNIFIED IDEOGRAPH +0xEDCB 0x68CF #CJK UNIFIED IDEOGRAPH +0xEDCC 0xFA13 #CJK COMPATIBILITY IDEOGRAPH +0xEDCD 0x6968 #CJK UNIFIED IDEOGRAPH +0xEDCE 0xFA14 #CJK COMPATIBILITY IDEOGRAPH +0xEDCF 0x6998 #CJK UNIFIED IDEOGRAPH +0xEDD0 0x69E2 #CJK UNIFIED IDEOGRAPH +0xEDD1 0x6A30 #CJK UNIFIED IDEOGRAPH +0xEDD2 0x6A6B #CJK UNIFIED IDEOGRAPH +0xEDD3 0x6A46 #CJK UNIFIED IDEOGRAPH +0xEDD4 0x6A73 #CJK UNIFIED IDEOGRAPH +0xEDD5 0x6A7E #CJK UNIFIED IDEOGRAPH +0xEDD6 0x6AE2 #CJK UNIFIED IDEOGRAPH +0xEDD7 0x6AE4 #CJK UNIFIED IDEOGRAPH +0xEDD8 0x6BD6 #CJK UNIFIED IDEOGRAPH +0xEDD9 0x6C3F #CJK UNIFIED IDEOGRAPH +0xEDDA 0x6C5C #CJK UNIFIED IDEOGRAPH +0xEDDB 0x6C86 #CJK UNIFIED IDEOGRAPH +0xEDDC 0x6C6F #CJK UNIFIED IDEOGRAPH +0xEDDD 0x6CDA #CJK UNIFIED IDEOGRAPH +0xEDDE 0x6D04 #CJK UNIFIED IDEOGRAPH +0xEDDF 0x6D87 #CJK UNIFIED IDEOGRAPH +0xEDE0 0x6D6F #CJK UNIFIED IDEOGRAPH +0xEDE1 0x6D96 #CJK UNIFIED IDEOGRAPH +0xEDE2 0x6DAC #CJK UNIFIED IDEOGRAPH +0xEDE3 0x6DCF #CJK UNIFIED IDEOGRAPH +0xEDE4 0x6DF8 #CJK UNIFIED IDEOGRAPH +0xEDE5 0x6DF2 #CJK UNIFIED IDEOGRAPH +0xEDE6 0x6DFC #CJK UNIFIED IDEOGRAPH +0xEDE7 0x6E39 #CJK UNIFIED IDEOGRAPH +0xEDE8 0x6E5C #CJK UNIFIED IDEOGRAPH +0xEDE9 0x6E27 #CJK UNIFIED IDEOGRAPH +0xEDEA 0x6E3C #CJK UNIFIED IDEOGRAPH +0xEDEB 0x6EBF #CJK UNIFIED IDEOGRAPH +0xEDEC 0x6F88 #CJK UNIFIED IDEOGRAPH +0xEDED 0x6FB5 #CJK UNIFIED IDEOGRAPH +0xEDEE 0x6FF5 #CJK UNIFIED IDEOGRAPH +0xEDEF 0x7005 #CJK UNIFIED IDEOGRAPH +0xEDF0 0x7007 #CJK UNIFIED IDEOGRAPH +0xEDF1 0x7028 #CJK UNIFIED IDEOGRAPH +0xEDF2 0x7085 #CJK UNIFIED IDEOGRAPH +0xEDF3 0x70AB #CJK UNIFIED IDEOGRAPH +0xEDF4 0x710F #CJK UNIFIED IDEOGRAPH +0xEDF5 0x7104 #CJK UNIFIED IDEOGRAPH +0xEDF6 0x715C #CJK UNIFIED IDEOGRAPH +0xEDF7 0x7146 #CJK UNIFIED IDEOGRAPH +0xEDF8 0x7147 #CJK UNIFIED IDEOGRAPH +0xEDF9 0xFA15 #CJK COMPATIBILITY IDEOGRAPH +0xEDFA 0x71C1 #CJK UNIFIED IDEOGRAPH +0xEDFB 0x71FE #CJK UNIFIED IDEOGRAPH +0xEDFC 0x72B1 #CJK UNIFIED IDEOGRAPH +0xEE40 0x72BE #CJK UNIFIED IDEOGRAPH +0xEE41 0x7324 #CJK UNIFIED IDEOGRAPH +0xEE42 0xFA16 #CJK COMPATIBILITY IDEOGRAPH +0xEE43 0x7377 #CJK UNIFIED IDEOGRAPH +0xEE44 0x73BD #CJK UNIFIED IDEOGRAPH +0xEE45 0x73C9 #CJK UNIFIED IDEOGRAPH +0xEE46 0x73D6 #CJK UNIFIED IDEOGRAPH +0xEE47 0x73E3 #CJK UNIFIED IDEOGRAPH +0xEE48 0x73D2 #CJK UNIFIED IDEOGRAPH +0xEE49 0x7407 #CJK UNIFIED IDEOGRAPH +0xEE4A 0x73F5 #CJK UNIFIED IDEOGRAPH +0xEE4B 0x7426 #CJK UNIFIED IDEOGRAPH +0xEE4C 0x742A #CJK UNIFIED IDEOGRAPH +0xEE4D 0x7429 #CJK UNIFIED IDEOGRAPH +0xEE4E 0x742E #CJK UNIFIED IDEOGRAPH +0xEE4F 0x7462 #CJK UNIFIED IDEOGRAPH +0xEE50 0x7489 #CJK UNIFIED IDEOGRAPH +0xEE51 0x749F #CJK UNIFIED IDEOGRAPH +0xEE52 0x7501 #CJK UNIFIED IDEOGRAPH +0xEE53 0x756F #CJK UNIFIED IDEOGRAPH +0xEE54 0x7682 #CJK UNIFIED IDEOGRAPH +0xEE55 0x769C #CJK UNIFIED IDEOGRAPH +0xEE56 0x769E #CJK UNIFIED IDEOGRAPH +0xEE57 0x769B #CJK UNIFIED IDEOGRAPH +0xEE58 0x76A6 #CJK UNIFIED IDEOGRAPH +0xEE59 0xFA17 #CJK COMPATIBILITY IDEOGRAPH +0xEE5A 0x7746 #CJK UNIFIED IDEOGRAPH +0xEE5B 0x52AF #CJK UNIFIED IDEOGRAPH +0xEE5C 0x7821 #CJK UNIFIED IDEOGRAPH +0xEE5D 0x784E #CJK UNIFIED IDEOGRAPH +0xEE5E 0x7864 #CJK UNIFIED IDEOGRAPH +0xEE5F 0x787A #CJK UNIFIED IDEOGRAPH +0xEE60 0x7930 #CJK UNIFIED IDEOGRAPH +0xEE61 0xFA18 #CJK COMPATIBILITY IDEOGRAPH +0xEE62 0xFA19 #CJK COMPATIBILITY IDEOGRAPH +0xEE63 0xFA1A #CJK COMPATIBILITY IDEOGRAPH +0xEE64 0x7994 #CJK UNIFIED IDEOGRAPH +0xEE65 0xFA1B #CJK COMPATIBILITY IDEOGRAPH +0xEE66 0x799B #CJK UNIFIED IDEOGRAPH +0xEE67 0x7AD1 #CJK UNIFIED IDEOGRAPH +0xEE68 0x7AE7 #CJK UNIFIED IDEOGRAPH +0xEE69 0xFA1C #CJK COMPATIBILITY IDEOGRAPH +0xEE6A 0x7AEB #CJK UNIFIED IDEOGRAPH +0xEE6B 0x7B9E #CJK UNIFIED IDEOGRAPH +0xEE6C 0xFA1D #CJK COMPATIBILITY IDEOGRAPH +0xEE6D 0x7D48 #CJK UNIFIED IDEOGRAPH +0xEE6E 0x7D5C #CJK UNIFIED IDEOGRAPH +0xEE6F 0x7DB7 #CJK UNIFIED IDEOGRAPH +0xEE70 0x7DA0 #CJK UNIFIED IDEOGRAPH +0xEE71 0x7DD6 #CJK UNIFIED IDEOGRAPH +0xEE72 0x7E52 #CJK UNIFIED IDEOGRAPH +0xEE73 0x7F47 #CJK UNIFIED IDEOGRAPH +0xEE74 0x7FA1 #CJK UNIFIED IDEOGRAPH +0xEE75 0xFA1E #CJK COMPATIBILITY IDEOGRAPH +0xEE76 0x8301 #CJK UNIFIED IDEOGRAPH +0xEE77 0x8362 #CJK UNIFIED IDEOGRAPH +0xEE78 0x837F #CJK UNIFIED IDEOGRAPH +0xEE79 0x83C7 #CJK UNIFIED IDEOGRAPH +0xEE7A 0x83F6 #CJK UNIFIED IDEOGRAPH +0xEE7B 0x8448 #CJK UNIFIED IDEOGRAPH +0xEE7C 0x84B4 #CJK UNIFIED IDEOGRAPH +0xEE7D 0x8553 #CJK UNIFIED IDEOGRAPH +0xEE7E 0x8559 #CJK UNIFIED IDEOGRAPH +0xEE80 0x856B #CJK UNIFIED IDEOGRAPH +0xEE81 0xFA1F #CJK COMPATIBILITY IDEOGRAPH +0xEE82 0x85B0 #CJK UNIFIED IDEOGRAPH +0xEE83 0xFA20 #CJK COMPATIBILITY IDEOGRAPH +0xEE84 0xFA21 #CJK COMPATIBILITY IDEOGRAPH +0xEE85 0x8807 #CJK UNIFIED IDEOGRAPH +0xEE86 0x88F5 #CJK UNIFIED IDEOGRAPH +0xEE87 0x8A12 #CJK UNIFIED IDEOGRAPH +0xEE88 0x8A37 #CJK UNIFIED IDEOGRAPH +0xEE89 0x8A79 #CJK UNIFIED IDEOGRAPH +0xEE8A 0x8AA7 #CJK UNIFIED IDEOGRAPH +0xEE8B 0x8ABE #CJK UNIFIED IDEOGRAPH +0xEE8C 0x8ADF #CJK UNIFIED IDEOGRAPH +0xEE8D 0xFA22 #CJK COMPATIBILITY IDEOGRAPH +0xEE8E 0x8AF6 #CJK UNIFIED IDEOGRAPH +0xEE8F 0x8B53 #CJK UNIFIED IDEOGRAPH +0xEE90 0x8B7F #CJK UNIFIED IDEOGRAPH +0xEE91 0x8CF0 #CJK UNIFIED IDEOGRAPH +0xEE92 0x8CF4 #CJK UNIFIED IDEOGRAPH +0xEE93 0x8D12 #CJK UNIFIED IDEOGRAPH +0xEE94 0x8D76 #CJK UNIFIED IDEOGRAPH +0xEE95 0xFA23 #CJK COMPATIBILITY IDEOGRAPH +0xEE96 0x8ECF #CJK UNIFIED IDEOGRAPH +0xEE97 0xFA24 #CJK COMPATIBILITY IDEOGRAPH +0xEE98 0xFA25 #CJK COMPATIBILITY IDEOGRAPH +0xEE99 0x9067 #CJK UNIFIED IDEOGRAPH +0xEE9A 0x90DE #CJK UNIFIED IDEOGRAPH +0xEE9B 0xFA26 #CJK COMPATIBILITY IDEOGRAPH +0xEE9C 0x9115 #CJK UNIFIED IDEOGRAPH +0xEE9D 0x9127 #CJK UNIFIED IDEOGRAPH +0xEE9E 0x91DA #CJK UNIFIED IDEOGRAPH +0xEE9F 0x91D7 #CJK UNIFIED IDEOGRAPH +0xEEA0 0x91DE #CJK UNIFIED IDEOGRAPH +0xEEA1 0x91ED #CJK UNIFIED IDEOGRAPH +0xEEA2 0x91EE #CJK UNIFIED IDEOGRAPH +0xEEA3 0x91E4 #CJK UNIFIED IDEOGRAPH +0xEEA4 0x91E5 #CJK UNIFIED IDEOGRAPH +0xEEA5 0x9206 #CJK UNIFIED IDEOGRAPH +0xEEA6 0x9210 #CJK UNIFIED IDEOGRAPH +0xEEA7 0x920A #CJK UNIFIED IDEOGRAPH +0xEEA8 0x923A #CJK UNIFIED IDEOGRAPH +0xEEA9 0x9240 #CJK UNIFIED IDEOGRAPH +0xEEAA 0x923C #CJK UNIFIED IDEOGRAPH +0xEEAB 0x924E #CJK UNIFIED IDEOGRAPH +0xEEAC 0x9259 #CJK UNIFIED IDEOGRAPH +0xEEAD 0x9251 #CJK UNIFIED IDEOGRAPH +0xEEAE 0x9239 #CJK UNIFIED IDEOGRAPH +0xEEAF 0x9267 #CJK UNIFIED IDEOGRAPH +0xEEB0 0x92A7 #CJK UNIFIED IDEOGRAPH +0xEEB1 0x9277 #CJK UNIFIED IDEOGRAPH +0xEEB2 0x9278 #CJK UNIFIED IDEOGRAPH +0xEEB3 0x92E7 #CJK UNIFIED IDEOGRAPH +0xEEB4 0x92D7 #CJK UNIFIED IDEOGRAPH +0xEEB5 0x92D9 #CJK UNIFIED IDEOGRAPH +0xEEB6 0x92D0 #CJK UNIFIED IDEOGRAPH +0xEEB7 0xFA27 #CJK COMPATIBILITY IDEOGRAPH +0xEEB8 0x92D5 #CJK UNIFIED IDEOGRAPH +0xEEB9 0x92E0 #CJK UNIFIED IDEOGRAPH +0xEEBA 0x92D3 #CJK UNIFIED IDEOGRAPH +0xEEBB 0x9325 #CJK UNIFIED IDEOGRAPH +0xEEBC 0x9321 #CJK UNIFIED IDEOGRAPH +0xEEBD 0x92FB #CJK UNIFIED IDEOGRAPH +0xEEBE 0xFA28 #CJK COMPATIBILITY IDEOGRAPH +0xEEBF 0x931E #CJK UNIFIED IDEOGRAPH +0xEEC0 0x92FF #CJK UNIFIED IDEOGRAPH +0xEEC1 0x931D #CJK UNIFIED IDEOGRAPH +0xEEC2 0x9302 #CJK UNIFIED IDEOGRAPH +0xEEC3 0x9370 #CJK UNIFIED IDEOGRAPH +0xEEC4 0x9357 #CJK UNIFIED IDEOGRAPH +0xEEC5 0x93A4 #CJK UNIFIED IDEOGRAPH +0xEEC6 0x93C6 #CJK UNIFIED IDEOGRAPH +0xEEC7 0x93DE #CJK UNIFIED IDEOGRAPH +0xEEC8 0x93F8 #CJK UNIFIED IDEOGRAPH +0xEEC9 0x9431 #CJK UNIFIED IDEOGRAPH +0xEECA 0x9445 #CJK UNIFIED IDEOGRAPH +0xEECB 0x9448 #CJK UNIFIED IDEOGRAPH +0xEECC 0x9592 #CJK UNIFIED IDEOGRAPH +0xEECD 0xF9DC #CJK COMPATIBILITY IDEOGRAPH +0xEECE 0xFA29 #CJK COMPATIBILITY IDEOGRAPH +0xEECF 0x969D #CJK UNIFIED IDEOGRAPH +0xEED0 0x96AF #CJK UNIFIED IDEOGRAPH +0xEED1 0x9733 #CJK UNIFIED IDEOGRAPH +0xEED2 0x973B #CJK UNIFIED IDEOGRAPH +0xEED3 0x9743 #CJK UNIFIED IDEOGRAPH +0xEED4 0x974D #CJK UNIFIED IDEOGRAPH +0xEED5 0x974F #CJK UNIFIED IDEOGRAPH +0xEED6 0x9751 #CJK UNIFIED IDEOGRAPH +0xEED7 0x9755 #CJK UNIFIED IDEOGRAPH +0xEED8 0x9857 #CJK UNIFIED IDEOGRAPH +0xEED9 0x9865 #CJK UNIFIED IDEOGRAPH +0xEEDA 0xFA2A #CJK COMPATIBILITY IDEOGRAPH +0xEEDB 0xFA2B #CJK COMPATIBILITY IDEOGRAPH +0xEEDC 0x9927 #CJK UNIFIED IDEOGRAPH +0xEEDD 0xFA2C #CJK COMPATIBILITY IDEOGRAPH +0xEEDE 0x999E #CJK UNIFIED IDEOGRAPH +0xEEDF 0x9A4E #CJK UNIFIED IDEOGRAPH +0xEEE0 0x9AD9 #CJK UNIFIED IDEOGRAPH +0xEEE1 0x9ADC #CJK UNIFIED IDEOGRAPH +0xEEE2 0x9B75 #CJK UNIFIED IDEOGRAPH +0xEEE3 0x9B72 #CJK UNIFIED IDEOGRAPH +0xEEE4 0x9B8F #CJK UNIFIED IDEOGRAPH +0xEEE5 0x9BB1 #CJK UNIFIED IDEOGRAPH +0xEEE6 0x9BBB #CJK UNIFIED IDEOGRAPH +0xEEE7 0x9C00 #CJK UNIFIED IDEOGRAPH +0xEEE8 0x9D70 #CJK UNIFIED IDEOGRAPH +0xEEE9 0x9D6B #CJK UNIFIED IDEOGRAPH +0xEEEA 0xFA2D #CJK COMPATIBILITY IDEOGRAPH +0xEEEB 0x9E19 #CJK UNIFIED IDEOGRAPH +0xEEEC 0x9ED1 #CJK UNIFIED IDEOGRAPH +0xEEEF 0x2170 #SMALL ROMAN NUMERAL ONE +0xEEF0 0x2171 #SMALL ROMAN NUMERAL TWO +0xEEF1 0x2172 #SMALL ROMAN NUMERAL THREE +0xEEF2 0x2173 #SMALL ROMAN NUMERAL FOUR +0xEEF3 0x2174 #SMALL ROMAN NUMERAL FIVE +0xEEF4 0x2175 #SMALL ROMAN NUMERAL SIX +0xEEF5 0x2176 #SMALL ROMAN NUMERAL SEVEN +0xEEF6 0x2177 #SMALL ROMAN NUMERAL EIGHT +0xEEF7 0x2178 #SMALL ROMAN NUMERAL NINE +0xEEF8 0x2179 #SMALL ROMAN NUMERAL TEN +0xEEF9 0xFFE2 #FULLWIDTH NOT SIGN +0xEEFA 0xFFE4 #FULLWIDTH BROKEN BAR +0xEEFB 0xFF07 #FULLWIDTH APOSTROPHE +0xEEFC 0xFF02 #FULLWIDTH QUOTATION MARK +0xFA40 0x2170 #SMALL ROMAN NUMERAL ONE +0xFA41 0x2171 #SMALL ROMAN NUMERAL TWO +0xFA42 0x2172 #SMALL ROMAN NUMERAL THREE +0xFA43 0x2173 #SMALL ROMAN NUMERAL FOUR +0xFA44 0x2174 #SMALL ROMAN NUMERAL FIVE +0xFA45 0x2175 #SMALL ROMAN NUMERAL SIX +0xFA46 0x2176 #SMALL ROMAN NUMERAL SEVEN +0xFA47 0x2177 #SMALL ROMAN NUMERAL EIGHT +0xFA48 0x2178 #SMALL ROMAN NUMERAL NINE +0xFA49 0x2179 #SMALL ROMAN NUMERAL TEN +0xFA4A 0x2160 #ROMAN NUMERAL ONE +0xFA4B 0x2161 #ROMAN NUMERAL TWO +0xFA4C 0x2162 #ROMAN NUMERAL THREE +0xFA4D 0x2163 #ROMAN NUMERAL FOUR +0xFA4E 0x2164 #ROMAN NUMERAL FIVE +0xFA4F 0x2165 #ROMAN NUMERAL SIX +0xFA50 0x2166 #ROMAN NUMERAL SEVEN +0xFA51 0x2167 #ROMAN NUMERAL EIGHT +0xFA52 0x2168 #ROMAN NUMERAL NINE +0xFA53 0x2169 #ROMAN NUMERAL TEN +0xFA54 0xFFE2 #FULLWIDTH NOT SIGN +0xFA55 0xFFE4 #FULLWIDTH BROKEN BAR +0xFA56 0xFF07 #FULLWIDTH APOSTROPHE +0xFA57 0xFF02 #FULLWIDTH QUOTATION MARK +0xFA58 0x3231 #PARENTHESIZED IDEOGRAPH STOCK +0xFA59 0x2116 #NUMERO SIGN +0xFA5A 0x2121 #TELEPHONE SIGN +0xFA5B 0x2235 #BECAUSE +0xFA5C 0x7E8A #CJK UNIFIED IDEOGRAPH +0xFA5D 0x891C #CJK UNIFIED IDEOGRAPH +0xFA5E 0x9348 #CJK UNIFIED IDEOGRAPH +0xFA5F 0x9288 #CJK UNIFIED IDEOGRAPH +0xFA60 0x84DC #CJK UNIFIED IDEOGRAPH +0xFA61 0x4FC9 #CJK UNIFIED IDEOGRAPH +0xFA62 0x70BB #CJK UNIFIED IDEOGRAPH +0xFA63 0x6631 #CJK UNIFIED IDEOGRAPH +0xFA64 0x68C8 #CJK UNIFIED IDEOGRAPH +0xFA65 0x92F9 #CJK UNIFIED IDEOGRAPH +0xFA66 0x66FB #CJK UNIFIED IDEOGRAPH +0xFA67 0x5F45 #CJK UNIFIED IDEOGRAPH +0xFA68 0x4E28 #CJK UNIFIED IDEOGRAPH +0xFA69 0x4EE1 #CJK UNIFIED IDEOGRAPH +0xFA6A 0x4EFC #CJK UNIFIED IDEOGRAPH +0xFA6B 0x4F00 #CJK UNIFIED IDEOGRAPH +0xFA6C 0x4F03 #CJK UNIFIED IDEOGRAPH +0xFA6D 0x4F39 #CJK UNIFIED IDEOGRAPH +0xFA6E 0x4F56 #CJK UNIFIED IDEOGRAPH +0xFA6F 0x4F92 #CJK UNIFIED IDEOGRAPH +0xFA70 0x4F8A #CJK UNIFIED IDEOGRAPH +0xFA71 0x4F9A #CJK UNIFIED IDEOGRAPH +0xFA72 0x4F94 #CJK UNIFIED IDEOGRAPH +0xFA73 0x4FCD #CJK UNIFIED IDEOGRAPH +0xFA74 0x5040 #CJK UNIFIED IDEOGRAPH +0xFA75 0x5022 #CJK UNIFIED IDEOGRAPH +0xFA76 0x4FFF #CJK UNIFIED IDEOGRAPH +0xFA77 0x501E #CJK UNIFIED IDEOGRAPH +0xFA78 0x5046 #CJK UNIFIED IDEOGRAPH +0xFA79 0x5070 #CJK UNIFIED IDEOGRAPH +0xFA7A 0x5042 #CJK UNIFIED IDEOGRAPH +0xFA7B 0x5094 #CJK UNIFIED IDEOGRAPH +0xFA7C 0x50F4 #CJK UNIFIED IDEOGRAPH +0xFA7D 0x50D8 #CJK UNIFIED IDEOGRAPH +0xFA7E 0x514A #CJK UNIFIED IDEOGRAPH +0xFA80 0x5164 #CJK UNIFIED IDEOGRAPH +0xFA81 0x519D #CJK UNIFIED IDEOGRAPH +0xFA82 0x51BE #CJK UNIFIED IDEOGRAPH +0xFA83 0x51EC #CJK UNIFIED IDEOGRAPH +0xFA84 0x5215 #CJK UNIFIED IDEOGRAPH +0xFA85 0x529C #CJK UNIFIED IDEOGRAPH +0xFA86 0x52A6 #CJK UNIFIED IDEOGRAPH +0xFA87 0x52C0 #CJK UNIFIED IDEOGRAPH +0xFA88 0x52DB #CJK UNIFIED IDEOGRAPH +0xFA89 0x5300 #CJK UNIFIED IDEOGRAPH +0xFA8A 0x5307 #CJK UNIFIED IDEOGRAPH +0xFA8B 0x5324 #CJK UNIFIED IDEOGRAPH +0xFA8C 0x5372 #CJK UNIFIED IDEOGRAPH +0xFA8D 0x5393 #CJK UNIFIED IDEOGRAPH +0xFA8E 0x53B2 #CJK UNIFIED IDEOGRAPH +0xFA8F 0x53DD #CJK UNIFIED IDEOGRAPH +0xFA90 0xFA0E #CJK COMPATIBILITY IDEOGRAPH +0xFA91 0x549C #CJK UNIFIED IDEOGRAPH +0xFA92 0x548A #CJK UNIFIED IDEOGRAPH +0xFA93 0x54A9 #CJK UNIFIED IDEOGRAPH +0xFA94 0x54FF #CJK UNIFIED IDEOGRAPH +0xFA95 0x5586 #CJK UNIFIED IDEOGRAPH +0xFA96 0x5759 #CJK UNIFIED IDEOGRAPH +0xFA97 0x5765 #CJK UNIFIED IDEOGRAPH +0xFA98 0x57AC #CJK UNIFIED IDEOGRAPH +0xFA99 0x57C8 #CJK UNIFIED IDEOGRAPH +0xFA9A 0x57C7 #CJK UNIFIED IDEOGRAPH +0xFA9B 0xFA0F #CJK COMPATIBILITY IDEOGRAPH +0xFA9C 0xFA10 #CJK COMPATIBILITY IDEOGRAPH +0xFA9D 0x589E #CJK UNIFIED IDEOGRAPH +0xFA9E 0x58B2 #CJK UNIFIED IDEOGRAPH +0xFA9F 0x590B #CJK UNIFIED IDEOGRAPH +0xFAA0 0x5953 #CJK UNIFIED IDEOGRAPH +0xFAA1 0x595B #CJK UNIFIED IDEOGRAPH +0xFAA2 0x595D #CJK UNIFIED IDEOGRAPH +0xFAA3 0x5963 #CJK UNIFIED IDEOGRAPH +0xFAA4 0x59A4 #CJK UNIFIED IDEOGRAPH +0xFAA5 0x59BA #CJK UNIFIED IDEOGRAPH +0xFAA6 0x5B56 #CJK UNIFIED IDEOGRAPH +0xFAA7 0x5BC0 #CJK UNIFIED IDEOGRAPH +0xFAA8 0x752F #CJK UNIFIED IDEOGRAPH +0xFAA9 0x5BD8 #CJK UNIFIED IDEOGRAPH +0xFAAA 0x5BEC #CJK UNIFIED IDEOGRAPH +0xFAAB 0x5C1E #CJK UNIFIED IDEOGRAPH +0xFAAC 0x5CA6 #CJK UNIFIED IDEOGRAPH +0xFAAD 0x5CBA #CJK UNIFIED IDEOGRAPH +0xFAAE 0x5CF5 #CJK UNIFIED IDEOGRAPH +0xFAAF 0x5D27 #CJK UNIFIED IDEOGRAPH +0xFAB0 0x5D53 #CJK UNIFIED IDEOGRAPH +0xFAB1 0xFA11 #CJK COMPATIBILITY IDEOGRAPH +0xFAB2 0x5D42 #CJK UNIFIED IDEOGRAPH +0xFAB3 0x5D6D #CJK UNIFIED IDEOGRAPH +0xFAB4 0x5DB8 #CJK UNIFIED IDEOGRAPH +0xFAB5 0x5DB9 #CJK UNIFIED IDEOGRAPH +0xFAB6 0x5DD0 #CJK UNIFIED IDEOGRAPH +0xFAB7 0x5F21 #CJK UNIFIED IDEOGRAPH +0xFAB8 0x5F34 #CJK UNIFIED IDEOGRAPH +0xFAB9 0x5F67 #CJK UNIFIED IDEOGRAPH +0xFABA 0x5FB7 #CJK UNIFIED IDEOGRAPH +0xFABB 0x5FDE #CJK UNIFIED IDEOGRAPH +0xFABC 0x605D #CJK UNIFIED IDEOGRAPH +0xFABD 0x6085 #CJK UNIFIED IDEOGRAPH +0xFABE 0x608A #CJK UNIFIED IDEOGRAPH +0xFABF 0x60DE #CJK UNIFIED IDEOGRAPH +0xFAC0 0x60D5 #CJK UNIFIED IDEOGRAPH +0xFAC1 0x6120 #CJK UNIFIED IDEOGRAPH +0xFAC2 0x60F2 #CJK UNIFIED IDEOGRAPH +0xFAC3 0x6111 #CJK UNIFIED IDEOGRAPH +0xFAC4 0x6137 #CJK UNIFIED IDEOGRAPH +0xFAC5 0x6130 #CJK UNIFIED IDEOGRAPH +0xFAC6 0x6198 #CJK UNIFIED IDEOGRAPH +0xFAC7 0x6213 #CJK UNIFIED IDEOGRAPH +0xFAC8 0x62A6 #CJK UNIFIED IDEOGRAPH +0xFAC9 0x63F5 #CJK UNIFIED IDEOGRAPH +0xFACA 0x6460 #CJK UNIFIED IDEOGRAPH +0xFACB 0x649D #CJK UNIFIED IDEOGRAPH +0xFACC 0x64CE #CJK UNIFIED IDEOGRAPH +0xFACD 0x654E #CJK UNIFIED IDEOGRAPH +0xFACE 0x6600 #CJK UNIFIED IDEOGRAPH +0xFACF 0x6615 #CJK UNIFIED IDEOGRAPH +0xFAD0 0x663B #CJK UNIFIED IDEOGRAPH +0xFAD1 0x6609 #CJK UNIFIED IDEOGRAPH +0xFAD2 0x662E #CJK UNIFIED IDEOGRAPH +0xFAD3 0x661E #CJK UNIFIED IDEOGRAPH +0xFAD4 0x6624 #CJK UNIFIED IDEOGRAPH +0xFAD5 0x6665 #CJK UNIFIED IDEOGRAPH +0xFAD6 0x6657 #CJK UNIFIED IDEOGRAPH +0xFAD7 0x6659 #CJK UNIFIED IDEOGRAPH +0xFAD8 0xFA12 #CJK COMPATIBILITY IDEOGRAPH +0xFAD9 0x6673 #CJK UNIFIED IDEOGRAPH +0xFADA 0x6699 #CJK UNIFIED IDEOGRAPH +0xFADB 0x66A0 #CJK UNIFIED IDEOGRAPH +0xFADC 0x66B2 #CJK UNIFIED IDEOGRAPH +0xFADD 0x66BF #CJK UNIFIED IDEOGRAPH +0xFADE 0x66FA #CJK UNIFIED IDEOGRAPH +0xFADF 0x670E #CJK UNIFIED IDEOGRAPH +0xFAE0 0xF929 #CJK COMPATIBILITY IDEOGRAPH +0xFAE1 0x6766 #CJK UNIFIED IDEOGRAPH +0xFAE2 0x67BB #CJK UNIFIED IDEOGRAPH +0xFAE3 0x6852 #CJK UNIFIED IDEOGRAPH +0xFAE4 0x67C0 #CJK UNIFIED IDEOGRAPH +0xFAE5 0x6801 #CJK UNIFIED IDEOGRAPH +0xFAE6 0x6844 #CJK UNIFIED IDEOGRAPH +0xFAE7 0x68CF #CJK UNIFIED IDEOGRAPH +0xFAE8 0xFA13 #CJK COMPATIBILITY IDEOGRAPH +0xFAE9 0x6968 #CJK UNIFIED IDEOGRAPH +0xFAEA 0xFA14 #CJK COMPATIBILITY IDEOGRAPH +0xFAEB 0x6998 #CJK UNIFIED IDEOGRAPH +0xFAEC 0x69E2 #CJK UNIFIED IDEOGRAPH +0xFAED 0x6A30 #CJK UNIFIED IDEOGRAPH +0xFAEE 0x6A6B #CJK UNIFIED IDEOGRAPH +0xFAEF 0x6A46 #CJK UNIFIED IDEOGRAPH +0xFAF0 0x6A73 #CJK UNIFIED IDEOGRAPH +0xFAF1 0x6A7E #CJK UNIFIED IDEOGRAPH +0xFAF2 0x6AE2 #CJK UNIFIED IDEOGRAPH +0xFAF3 0x6AE4 #CJK UNIFIED IDEOGRAPH +0xFAF4 0x6BD6 #CJK UNIFIED IDEOGRAPH +0xFAF5 0x6C3F #CJK UNIFIED IDEOGRAPH +0xFAF6 0x6C5C #CJK UNIFIED IDEOGRAPH +0xFAF7 0x6C86 #CJK UNIFIED IDEOGRAPH +0xFAF8 0x6C6F #CJK UNIFIED IDEOGRAPH +0xFAF9 0x6CDA #CJK UNIFIED IDEOGRAPH +0xFAFA 0x6D04 #CJK UNIFIED IDEOGRAPH +0xFAFB 0x6D87 #CJK UNIFIED IDEOGRAPH +0xFAFC 0x6D6F #CJK UNIFIED IDEOGRAPH +0xFB40 0x6D96 #CJK UNIFIED IDEOGRAPH +0xFB41 0x6DAC #CJK UNIFIED IDEOGRAPH +0xFB42 0x6DCF #CJK UNIFIED IDEOGRAPH +0xFB43 0x6DF8 #CJK UNIFIED IDEOGRAPH +0xFB44 0x6DF2 #CJK UNIFIED IDEOGRAPH +0xFB45 0x6DFC #CJK UNIFIED IDEOGRAPH +0xFB46 0x6E39 #CJK UNIFIED IDEOGRAPH +0xFB47 0x6E5C #CJK UNIFIED IDEOGRAPH +0xFB48 0x6E27 #CJK UNIFIED IDEOGRAPH +0xFB49 0x6E3C #CJK UNIFIED IDEOGRAPH +0xFB4A 0x6EBF #CJK UNIFIED IDEOGRAPH +0xFB4B 0x6F88 #CJK UNIFIED IDEOGRAPH +0xFB4C 0x6FB5 #CJK UNIFIED IDEOGRAPH +0xFB4D 0x6FF5 #CJK UNIFIED IDEOGRAPH +0xFB4E 0x7005 #CJK UNIFIED IDEOGRAPH +0xFB4F 0x7007 #CJK UNIFIED IDEOGRAPH +0xFB50 0x7028 #CJK UNIFIED IDEOGRAPH +0xFB51 0x7085 #CJK UNIFIED IDEOGRAPH +0xFB52 0x70AB #CJK UNIFIED IDEOGRAPH +0xFB53 0x710F #CJK UNIFIED IDEOGRAPH +0xFB54 0x7104 #CJK UNIFIED IDEOGRAPH +0xFB55 0x715C #CJK UNIFIED IDEOGRAPH +0xFB56 0x7146 #CJK UNIFIED IDEOGRAPH +0xFB57 0x7147 #CJK UNIFIED IDEOGRAPH +0xFB58 0xFA15 #CJK COMPATIBILITY IDEOGRAPH +0xFB59 0x71C1 #CJK UNIFIED IDEOGRAPH +0xFB5A 0x71FE #CJK UNIFIED IDEOGRAPH +0xFB5B 0x72B1 #CJK UNIFIED IDEOGRAPH +0xFB5C 0x72BE #CJK UNIFIED IDEOGRAPH +0xFB5D 0x7324 #CJK UNIFIED IDEOGRAPH +0xFB5E 0xFA16 #CJK COMPATIBILITY IDEOGRAPH +0xFB5F 0x7377 #CJK UNIFIED IDEOGRAPH +0xFB60 0x73BD #CJK UNIFIED IDEOGRAPH +0xFB61 0x73C9 #CJK UNIFIED IDEOGRAPH +0xFB62 0x73D6 #CJK UNIFIED IDEOGRAPH +0xFB63 0x73E3 #CJK UNIFIED IDEOGRAPH +0xFB64 0x73D2 #CJK UNIFIED IDEOGRAPH +0xFB65 0x7407 #CJK UNIFIED IDEOGRAPH +0xFB66 0x73F5 #CJK UNIFIED IDEOGRAPH +0xFB67 0x7426 #CJK UNIFIED IDEOGRAPH +0xFB68 0x742A #CJK UNIFIED IDEOGRAPH +0xFB69 0x7429 #CJK UNIFIED IDEOGRAPH +0xFB6A 0x742E #CJK UNIFIED IDEOGRAPH +0xFB6B 0x7462 #CJK UNIFIED IDEOGRAPH +0xFB6C 0x7489 #CJK UNIFIED IDEOGRAPH +0xFB6D 0x749F #CJK UNIFIED IDEOGRAPH +0xFB6E 0x7501 #CJK UNIFIED IDEOGRAPH +0xFB6F 0x756F #CJK UNIFIED IDEOGRAPH +0xFB70 0x7682 #CJK UNIFIED IDEOGRAPH +0xFB71 0x769C #CJK UNIFIED IDEOGRAPH +0xFB72 0x769E #CJK UNIFIED IDEOGRAPH +0xFB73 0x769B #CJK UNIFIED IDEOGRAPH +0xFB74 0x76A6 #CJK UNIFIED IDEOGRAPH +0xFB75 0xFA17 #CJK COMPATIBILITY IDEOGRAPH +0xFB76 0x7746 #CJK UNIFIED IDEOGRAPH +0xFB77 0x52AF #CJK UNIFIED IDEOGRAPH +0xFB78 0x7821 #CJK UNIFIED IDEOGRAPH +0xFB79 0x784E #CJK UNIFIED IDEOGRAPH +0xFB7A 0x7864 #CJK UNIFIED IDEOGRAPH +0xFB7B 0x787A #CJK UNIFIED IDEOGRAPH +0xFB7C 0x7930 #CJK UNIFIED IDEOGRAPH +0xFB7D 0xFA18 #CJK COMPATIBILITY IDEOGRAPH +0xFB7E 0xFA19 #CJK COMPATIBILITY IDEOGRAPH +0xFB80 0xFA1A #CJK COMPATIBILITY IDEOGRAPH +0xFB81 0x7994 #CJK UNIFIED IDEOGRAPH +0xFB82 0xFA1B #CJK COMPATIBILITY IDEOGRAPH +0xFB83 0x799B #CJK UNIFIED IDEOGRAPH +0xFB84 0x7AD1 #CJK UNIFIED IDEOGRAPH +0xFB85 0x7AE7 #CJK UNIFIED IDEOGRAPH +0xFB86 0xFA1C #CJK COMPATIBILITY IDEOGRAPH +0xFB87 0x7AEB #CJK UNIFIED IDEOGRAPH +0xFB88 0x7B9E #CJK UNIFIED IDEOGRAPH +0xFB89 0xFA1D #CJK COMPATIBILITY IDEOGRAPH +0xFB8A 0x7D48 #CJK UNIFIED IDEOGRAPH +0xFB8B 0x7D5C #CJK UNIFIED IDEOGRAPH +0xFB8C 0x7DB7 #CJK UNIFIED IDEOGRAPH +0xFB8D 0x7DA0 #CJK UNIFIED IDEOGRAPH +0xFB8E 0x7DD6 #CJK UNIFIED IDEOGRAPH +0xFB8F 0x7E52 #CJK UNIFIED IDEOGRAPH +0xFB90 0x7F47 #CJK UNIFIED IDEOGRAPH +0xFB91 0x7FA1 #CJK UNIFIED IDEOGRAPH +0xFB92 0xFA1E #CJK COMPATIBILITY IDEOGRAPH +0xFB93 0x8301 #CJK UNIFIED IDEOGRAPH +0xFB94 0x8362 #CJK UNIFIED IDEOGRAPH +0xFB95 0x837F #CJK UNIFIED IDEOGRAPH +0xFB96 0x83C7 #CJK UNIFIED IDEOGRAPH +0xFB97 0x83F6 #CJK UNIFIED IDEOGRAPH +0xFB98 0x8448 #CJK UNIFIED IDEOGRAPH +0xFB99 0x84B4 #CJK UNIFIED IDEOGRAPH +0xFB9A 0x8553 #CJK UNIFIED IDEOGRAPH +0xFB9B 0x8559 #CJK UNIFIED IDEOGRAPH +0xFB9C 0x856B #CJK UNIFIED IDEOGRAPH +0xFB9D 0xFA1F #CJK COMPATIBILITY IDEOGRAPH +0xFB9E 0x85B0 #CJK UNIFIED IDEOGRAPH +0xFB9F 0xFA20 #CJK COMPATIBILITY IDEOGRAPH +0xFBA0 0xFA21 #CJK COMPATIBILITY IDEOGRAPH +0xFBA1 0x8807 #CJK UNIFIED IDEOGRAPH +0xFBA2 0x88F5 #CJK UNIFIED IDEOGRAPH +0xFBA3 0x8A12 #CJK UNIFIED IDEOGRAPH +0xFBA4 0x8A37 #CJK UNIFIED IDEOGRAPH +0xFBA5 0x8A79 #CJK UNIFIED IDEOGRAPH +0xFBA6 0x8AA7 #CJK UNIFIED IDEOGRAPH +0xFBA7 0x8ABE #CJK UNIFIED IDEOGRAPH +0xFBA8 0x8ADF #CJK UNIFIED IDEOGRAPH +0xFBA9 0xFA22 #CJK COMPATIBILITY IDEOGRAPH +0xFBAA 0x8AF6 #CJK UNIFIED IDEOGRAPH +0xFBAB 0x8B53 #CJK UNIFIED IDEOGRAPH +0xFBAC 0x8B7F #CJK UNIFIED IDEOGRAPH +0xFBAD 0x8CF0 #CJK UNIFIED IDEOGRAPH +0xFBAE 0x8CF4 #CJK UNIFIED IDEOGRAPH +0xFBAF 0x8D12 #CJK UNIFIED IDEOGRAPH +0xFBB0 0x8D76 #CJK UNIFIED IDEOGRAPH +0xFBB1 0xFA23 #CJK COMPATIBILITY IDEOGRAPH +0xFBB2 0x8ECF #CJK UNIFIED IDEOGRAPH +0xFBB3 0xFA24 #CJK COMPATIBILITY IDEOGRAPH +0xFBB4 0xFA25 #CJK COMPATIBILITY IDEOGRAPH +0xFBB5 0x9067 #CJK UNIFIED IDEOGRAPH +0xFBB6 0x90DE #CJK UNIFIED IDEOGRAPH +0xFBB7 0xFA26 #CJK COMPATIBILITY IDEOGRAPH +0xFBB8 0x9115 #CJK UNIFIED IDEOGRAPH +0xFBB9 0x9127 #CJK UNIFIED IDEOGRAPH +0xFBBA 0x91DA #CJK UNIFIED IDEOGRAPH +0xFBBB 0x91D7 #CJK UNIFIED IDEOGRAPH +0xFBBC 0x91DE #CJK UNIFIED IDEOGRAPH +0xFBBD 0x91ED #CJK UNIFIED IDEOGRAPH +0xFBBE 0x91EE #CJK UNIFIED IDEOGRAPH +0xFBBF 0x91E4 #CJK UNIFIED IDEOGRAPH +0xFBC0 0x91E5 #CJK UNIFIED IDEOGRAPH +0xFBC1 0x9206 #CJK UNIFIED IDEOGRAPH +0xFBC2 0x9210 #CJK UNIFIED IDEOGRAPH +0xFBC3 0x920A #CJK UNIFIED IDEOGRAPH +0xFBC4 0x923A #CJK UNIFIED IDEOGRAPH +0xFBC5 0x9240 #CJK UNIFIED IDEOGRAPH +0xFBC6 0x923C #CJK UNIFIED IDEOGRAPH +0xFBC7 0x924E #CJK UNIFIED IDEOGRAPH +0xFBC8 0x9259 #CJK UNIFIED IDEOGRAPH +0xFBC9 0x9251 #CJK UNIFIED IDEOGRAPH +0xFBCA 0x9239 #CJK UNIFIED IDEOGRAPH +0xFBCB 0x9267 #CJK UNIFIED IDEOGRAPH +0xFBCC 0x92A7 #CJK UNIFIED IDEOGRAPH +0xFBCD 0x9277 #CJK UNIFIED IDEOGRAPH +0xFBCE 0x9278 #CJK UNIFIED IDEOGRAPH +0xFBCF 0x92E7 #CJK UNIFIED IDEOGRAPH +0xFBD0 0x92D7 #CJK UNIFIED IDEOGRAPH +0xFBD1 0x92D9 #CJK UNIFIED IDEOGRAPH +0xFBD2 0x92D0 #CJK UNIFIED IDEOGRAPH +0xFBD3 0xFA27 #CJK COMPATIBILITY IDEOGRAPH +0xFBD4 0x92D5 #CJK UNIFIED IDEOGRAPH +0xFBD5 0x92E0 #CJK UNIFIED IDEOGRAPH +0xFBD6 0x92D3 #CJK UNIFIED IDEOGRAPH +0xFBD7 0x9325 #CJK UNIFIED IDEOGRAPH +0xFBD8 0x9321 #CJK UNIFIED IDEOGRAPH +0xFBD9 0x92FB #CJK UNIFIED IDEOGRAPH +0xFBDA 0xFA28 #CJK COMPATIBILITY IDEOGRAPH +0xFBDB 0x931E #CJK UNIFIED IDEOGRAPH +0xFBDC 0x92FF #CJK UNIFIED IDEOGRAPH +0xFBDD 0x931D #CJK UNIFIED IDEOGRAPH +0xFBDE 0x9302 #CJK UNIFIED IDEOGRAPH +0xFBDF 0x9370 #CJK UNIFIED IDEOGRAPH +0xFBE0 0x9357 #CJK UNIFIED IDEOGRAPH +0xFBE1 0x93A4 #CJK UNIFIED IDEOGRAPH +0xFBE2 0x93C6 #CJK UNIFIED IDEOGRAPH +0xFBE3 0x93DE #CJK UNIFIED IDEOGRAPH +0xFBE4 0x93F8 #CJK UNIFIED IDEOGRAPH +0xFBE5 0x9431 #CJK UNIFIED IDEOGRAPH +0xFBE6 0x9445 #CJK UNIFIED IDEOGRAPH +0xFBE7 0x9448 #CJK UNIFIED IDEOGRAPH +0xFBE8 0x9592 #CJK UNIFIED IDEOGRAPH +0xFBE9 0xF9DC #CJK COMPATIBILITY IDEOGRAPH +0xFBEA 0xFA29 #CJK COMPATIBILITY IDEOGRAPH +0xFBEB 0x969D #CJK UNIFIED IDEOGRAPH +0xFBEC 0x96AF #CJK UNIFIED IDEOGRAPH +0xFBED 0x9733 #CJK UNIFIED IDEOGRAPH +0xFBEE 0x973B #CJK UNIFIED IDEOGRAPH +0xFBEF 0x9743 #CJK UNIFIED IDEOGRAPH +0xFBF0 0x974D #CJK UNIFIED IDEOGRAPH +0xFBF1 0x974F #CJK UNIFIED IDEOGRAPH +0xFBF2 0x9751 #CJK UNIFIED IDEOGRAPH +0xFBF3 0x9755 #CJK UNIFIED IDEOGRAPH +0xFBF4 0x9857 #CJK UNIFIED IDEOGRAPH +0xFBF5 0x9865 #CJK UNIFIED IDEOGRAPH +0xFBF6 0xFA2A #CJK COMPATIBILITY IDEOGRAPH +0xFBF7 0xFA2B #CJK COMPATIBILITY IDEOGRAPH +0xFBF8 0x9927 #CJK UNIFIED IDEOGRAPH +0xFBF9 0xFA2C #CJK COMPATIBILITY IDEOGRAPH +0xFBFA 0x999E #CJK UNIFIED IDEOGRAPH +0xFBFB 0x9A4E #CJK UNIFIED IDEOGRAPH +0xFBFC 0x9AD9 #CJK UNIFIED IDEOGRAPH +0xFC40 0x9ADC #CJK UNIFIED IDEOGRAPH +0xFC41 0x9B75 #CJK UNIFIED IDEOGRAPH +0xFC42 0x9B72 #CJK UNIFIED IDEOGRAPH +0xFC43 0x9B8F #CJK UNIFIED IDEOGRAPH +0xFC44 0x9BB1 #CJK UNIFIED IDEOGRAPH +0xFC45 0x9BBB #CJK UNIFIED IDEOGRAPH +0xFC46 0x9C00 #CJK UNIFIED IDEOGRAPH +0xFC47 0x9D70 #CJK UNIFIED IDEOGRAPH +0xFC48 0x9D6B #CJK UNIFIED IDEOGRAPH +0xFC49 0xFA2D #CJK COMPATIBILITY IDEOGRAPH +0xFC4A 0x9E19 #CJK UNIFIED IDEOGRAPH +0xFC4B 0x9ED1 #CJK UNIFIED IDEOGRAPH ADDED freshlib/data/_encodings/_sources/CP936.TXT Index: freshlib/data/_encodings/_sources/CP936.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP936.TXT @@ -0,0 +1,22065 @@ +# +# Name: cp936 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 1/7/2000 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp936 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp936 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 0x20AC #EURO SIGN +0x81 #DBCS LEAD BYTE +0x82 #DBCS LEAD BYTE +0x83 #DBCS LEAD BYTE +0x84 #DBCS LEAD BYTE +0x85 #DBCS LEAD BYTE +0x86 #DBCS LEAD BYTE +0x87 #DBCS LEAD BYTE +0x88 #DBCS LEAD BYTE +0x89 #DBCS LEAD BYTE +0x8A #DBCS LEAD BYTE +0x8B #DBCS LEAD BYTE +0x8C #DBCS LEAD BYTE +0x8D #DBCS LEAD BYTE +0x8E #DBCS LEAD BYTE +0x8F #DBCS LEAD BYTE +0x90 #DBCS LEAD BYTE +0x91 #DBCS LEAD BYTE +0x92 #DBCS LEAD BYTE +0x93 #DBCS LEAD BYTE +0x94 #DBCS LEAD BYTE +0x95 #DBCS LEAD BYTE +0x96 #DBCS LEAD BYTE +0x97 #DBCS LEAD BYTE +0x98 #DBCS LEAD BYTE +0x99 #DBCS LEAD BYTE +0x9A #DBCS LEAD BYTE +0x9B #DBCS LEAD BYTE +0x9C #DBCS LEAD BYTE +0x9D #DBCS LEAD BYTE +0x9E #DBCS LEAD BYTE +0x9F #DBCS LEAD BYTE +0xA0 #DBCS LEAD BYTE +0xA1 #DBCS LEAD BYTE +0xA2 #DBCS LEAD BYTE +0xA3 #DBCS LEAD BYTE +0xA4 #DBCS LEAD BYTE +0xA5 #DBCS LEAD BYTE +0xA6 #DBCS LEAD BYTE +0xA7 #DBCS LEAD BYTE +0xA8 #DBCS LEAD BYTE +0xA9 #DBCS LEAD BYTE +0xAA #DBCS LEAD BYTE +0xAB #DBCS LEAD BYTE +0xAC #DBCS LEAD BYTE +0xAD #DBCS LEAD BYTE +0xAE #DBCS LEAD BYTE +0xAF #DBCS LEAD BYTE +0xB0 #DBCS LEAD BYTE +0xB1 #DBCS LEAD BYTE +0xB2 #DBCS LEAD BYTE +0xB3 #DBCS LEAD BYTE +0xB4 #DBCS LEAD BYTE +0xB5 #DBCS LEAD BYTE +0xB6 #DBCS LEAD BYTE +0xB7 #DBCS LEAD BYTE +0xB8 #DBCS LEAD BYTE +0xB9 #DBCS LEAD BYTE +0xBA #DBCS LEAD BYTE +0xBB #DBCS LEAD BYTE +0xBC #DBCS LEAD BYTE +0xBD #DBCS LEAD BYTE +0xBE #DBCS LEAD BYTE +0xBF #DBCS LEAD BYTE +0xC0 #DBCS LEAD BYTE +0xC1 #DBCS LEAD BYTE +0xC2 #DBCS LEAD BYTE +0xC3 #DBCS LEAD BYTE +0xC4 #DBCS LEAD BYTE +0xC5 #DBCS LEAD BYTE +0xC6 #DBCS LEAD BYTE +0xC7 #DBCS LEAD BYTE +0xC8 #DBCS LEAD BYTE +0xC9 #DBCS LEAD BYTE +0xCA #DBCS LEAD BYTE +0xCB #DBCS LEAD BYTE +0xCC #DBCS LEAD BYTE +0xCD #DBCS LEAD BYTE +0xCE #DBCS LEAD BYTE +0xCF #DBCS LEAD BYTE +0xD0 #DBCS LEAD BYTE +0xD1 #DBCS LEAD BYTE +0xD2 #DBCS LEAD BYTE +0xD3 #DBCS LEAD BYTE +0xD4 #DBCS LEAD BYTE +0xD5 #DBCS LEAD BYTE +0xD6 #DBCS LEAD BYTE +0xD7 #DBCS LEAD BYTE +0xD8 #DBCS LEAD BYTE +0xD9 #DBCS LEAD BYTE +0xDA #DBCS LEAD BYTE +0xDB #DBCS LEAD BYTE +0xDC #DBCS LEAD BYTE +0xDD #DBCS LEAD BYTE +0xDE #DBCS LEAD BYTE +0xDF #DBCS LEAD BYTE +0xE0 #DBCS LEAD BYTE +0xE1 #DBCS LEAD BYTE +0xE2 #DBCS LEAD BYTE +0xE3 #DBCS LEAD BYTE +0xE4 #DBCS LEAD BYTE +0xE5 #DBCS LEAD BYTE +0xE6 #DBCS LEAD BYTE +0xE7 #DBCS LEAD BYTE +0xE8 #DBCS LEAD BYTE +0xE9 #DBCS LEAD BYTE +0xEA #DBCS LEAD BYTE +0xEB #DBCS LEAD BYTE +0xEC #DBCS LEAD BYTE +0xED #DBCS LEAD BYTE +0xEE #DBCS LEAD BYTE +0xEF #DBCS LEAD BYTE +0xF0 #DBCS LEAD BYTE +0xF1 #DBCS LEAD BYTE +0xF2 #DBCS LEAD BYTE +0xF3 #DBCS LEAD BYTE +0xF4 #DBCS LEAD BYTE +0xF5 #DBCS LEAD BYTE +0xF6 #DBCS LEAD BYTE +0xF7 #DBCS LEAD BYTE +0xF8 #DBCS LEAD BYTE +0xF9 #DBCS LEAD BYTE +0xFA #DBCS LEAD BYTE +0xFB #DBCS LEAD BYTE +0xFC #DBCS LEAD BYTE +0xFD #DBCS LEAD BYTE +0xFE #DBCS LEAD BYTE +0xFF #UNDEFINED +0x8140 0x4E02 #CJK UNIFIED IDEOGRAPH +0x8141 0x4E04 #CJK UNIFIED IDEOGRAPH +0x8142 0x4E05 #CJK UNIFIED IDEOGRAPH +0x8143 0x4E06 #CJK UNIFIED IDEOGRAPH +0x8144 0x4E0F #CJK UNIFIED IDEOGRAPH +0x8145 0x4E12 #CJK UNIFIED IDEOGRAPH +0x8146 0x4E17 #CJK UNIFIED IDEOGRAPH +0x8147 0x4E1F #CJK UNIFIED IDEOGRAPH +0x8148 0x4E20 #CJK UNIFIED IDEOGRAPH +0x8149 0x4E21 #CJK UNIFIED IDEOGRAPH +0x814A 0x4E23 #CJK UNIFIED IDEOGRAPH +0x814B 0x4E26 #CJK UNIFIED IDEOGRAPH +0x814C 0x4E29 #CJK UNIFIED IDEOGRAPH +0x814D 0x4E2E #CJK UNIFIED IDEOGRAPH +0x814E 0x4E2F #CJK UNIFIED IDEOGRAPH +0x814F 0x4E31 #CJK UNIFIED IDEOGRAPH +0x8150 0x4E33 #CJK UNIFIED IDEOGRAPH +0x8151 0x4E35 #CJK UNIFIED IDEOGRAPH +0x8152 0x4E37 #CJK UNIFIED IDEOGRAPH +0x8153 0x4E3C #CJK UNIFIED IDEOGRAPH +0x8154 0x4E40 #CJK UNIFIED IDEOGRAPH +0x8155 0x4E41 #CJK UNIFIED IDEOGRAPH +0x8156 0x4E42 #CJK UNIFIED IDEOGRAPH +0x8157 0x4E44 #CJK UNIFIED IDEOGRAPH +0x8158 0x4E46 #CJK UNIFIED IDEOGRAPH +0x8159 0x4E4A #CJK UNIFIED IDEOGRAPH +0x815A 0x4E51 #CJK UNIFIED IDEOGRAPH +0x815B 0x4E55 #CJK UNIFIED IDEOGRAPH +0x815C 0x4E57 #CJK UNIFIED IDEOGRAPH +0x815D 0x4E5A #CJK UNIFIED IDEOGRAPH +0x815E 0x4E5B #CJK UNIFIED IDEOGRAPH +0x815F 0x4E62 #CJK UNIFIED IDEOGRAPH +0x8160 0x4E63 #CJK UNIFIED IDEOGRAPH +0x8161 0x4E64 #CJK UNIFIED IDEOGRAPH +0x8162 0x4E65 #CJK UNIFIED IDEOGRAPH +0x8163 0x4E67 #CJK UNIFIED IDEOGRAPH +0x8164 0x4E68 #CJK UNIFIED IDEOGRAPH +0x8165 0x4E6A #CJK UNIFIED IDEOGRAPH +0x8166 0x4E6B #CJK UNIFIED IDEOGRAPH +0x8167 0x4E6C #CJK UNIFIED IDEOGRAPH +0x8168 0x4E6D #CJK UNIFIED IDEOGRAPH +0x8169 0x4E6E #CJK UNIFIED IDEOGRAPH +0x816A 0x4E6F #CJK UNIFIED IDEOGRAPH +0x816B 0x4E72 #CJK UNIFIED IDEOGRAPH +0x816C 0x4E74 #CJK UNIFIED IDEOGRAPH +0x816D 0x4E75 #CJK UNIFIED IDEOGRAPH +0x816E 0x4E76 #CJK UNIFIED IDEOGRAPH +0x816F 0x4E77 #CJK UNIFIED IDEOGRAPH +0x8170 0x4E78 #CJK UNIFIED IDEOGRAPH +0x8171 0x4E79 #CJK UNIFIED IDEOGRAPH +0x8172 0x4E7A #CJK UNIFIED IDEOGRAPH +0x8173 0x4E7B #CJK UNIFIED IDEOGRAPH +0x8174 0x4E7C #CJK UNIFIED IDEOGRAPH +0x8175 0x4E7D #CJK UNIFIED IDEOGRAPH +0x8176 0x4E7F #CJK UNIFIED IDEOGRAPH +0x8177 0x4E80 #CJK UNIFIED IDEOGRAPH +0x8178 0x4E81 #CJK UNIFIED IDEOGRAPH +0x8179 0x4E82 #CJK UNIFIED IDEOGRAPH +0x817A 0x4E83 #CJK UNIFIED IDEOGRAPH +0x817B 0x4E84 #CJK UNIFIED IDEOGRAPH +0x817C 0x4E85 #CJK UNIFIED IDEOGRAPH +0x817D 0x4E87 #CJK UNIFIED IDEOGRAPH +0x817E 0x4E8A #CJK UNIFIED IDEOGRAPH +0x8180 0x4E90 #CJK UNIFIED IDEOGRAPH +0x8181 0x4E96 #CJK UNIFIED IDEOGRAPH +0x8182 0x4E97 #CJK UNIFIED IDEOGRAPH +0x8183 0x4E99 #CJK UNIFIED IDEOGRAPH +0x8184 0x4E9C #CJK UNIFIED IDEOGRAPH +0x8185 0x4E9D #CJK UNIFIED IDEOGRAPH +0x8186 0x4E9E #CJK UNIFIED IDEOGRAPH +0x8187 0x4EA3 #CJK UNIFIED IDEOGRAPH +0x8188 0x4EAA #CJK UNIFIED IDEOGRAPH +0x8189 0x4EAF #CJK UNIFIED IDEOGRAPH +0x818A 0x4EB0 #CJK UNIFIED IDEOGRAPH +0x818B 0x4EB1 #CJK UNIFIED IDEOGRAPH +0x818C 0x4EB4 #CJK UNIFIED IDEOGRAPH +0x818D 0x4EB6 #CJK UNIFIED IDEOGRAPH +0x818E 0x4EB7 #CJK UNIFIED IDEOGRAPH +0x818F 0x4EB8 #CJK UNIFIED IDEOGRAPH +0x8190 0x4EB9 #CJK UNIFIED IDEOGRAPH +0x8191 0x4EBC #CJK UNIFIED IDEOGRAPH +0x8192 0x4EBD #CJK UNIFIED IDEOGRAPH +0x8193 0x4EBE #CJK UNIFIED IDEOGRAPH +0x8194 0x4EC8 #CJK UNIFIED IDEOGRAPH +0x8195 0x4ECC #CJK UNIFIED IDEOGRAPH +0x8196 0x4ECF #CJK UNIFIED IDEOGRAPH +0x8197 0x4ED0 #CJK UNIFIED IDEOGRAPH +0x8198 0x4ED2 #CJK UNIFIED IDEOGRAPH +0x8199 0x4EDA #CJK UNIFIED IDEOGRAPH +0x819A 0x4EDB #CJK UNIFIED IDEOGRAPH +0x819B 0x4EDC #CJK UNIFIED IDEOGRAPH +0x819C 0x4EE0 #CJK UNIFIED IDEOGRAPH +0x819D 0x4EE2 #CJK UNIFIED IDEOGRAPH +0x819E 0x4EE6 #CJK UNIFIED IDEOGRAPH +0x819F 0x4EE7 #CJK UNIFIED IDEOGRAPH +0x81A0 0x4EE9 #CJK UNIFIED IDEOGRAPH +0x81A1 0x4EED #CJK UNIFIED IDEOGRAPH +0x81A2 0x4EEE #CJK UNIFIED IDEOGRAPH +0x81A3 0x4EEF #CJK UNIFIED IDEOGRAPH +0x81A4 0x4EF1 #CJK UNIFIED IDEOGRAPH +0x81A5 0x4EF4 #CJK UNIFIED IDEOGRAPH +0x81A6 0x4EF8 #CJK UNIFIED IDEOGRAPH +0x81A7 0x4EF9 #CJK UNIFIED IDEOGRAPH +0x81A8 0x4EFA #CJK UNIFIED IDEOGRAPH +0x81A9 0x4EFC #CJK UNIFIED IDEOGRAPH +0x81AA 0x4EFE #CJK UNIFIED IDEOGRAPH +0x81AB 0x4F00 #CJK UNIFIED IDEOGRAPH +0x81AC 0x4F02 #CJK UNIFIED IDEOGRAPH +0x81AD 0x4F03 #CJK UNIFIED IDEOGRAPH +0x81AE 0x4F04 #CJK UNIFIED IDEOGRAPH +0x81AF 0x4F05 #CJK UNIFIED IDEOGRAPH +0x81B0 0x4F06 #CJK UNIFIED IDEOGRAPH +0x81B1 0x4F07 #CJK UNIFIED IDEOGRAPH +0x81B2 0x4F08 #CJK UNIFIED IDEOGRAPH +0x81B3 0x4F0B #CJK UNIFIED IDEOGRAPH +0x81B4 0x4F0C #CJK UNIFIED IDEOGRAPH +0x81B5 0x4F12 #CJK UNIFIED IDEOGRAPH +0x81B6 0x4F13 #CJK UNIFIED IDEOGRAPH +0x81B7 0x4F14 #CJK UNIFIED IDEOGRAPH +0x81B8 0x4F15 #CJK UNIFIED IDEOGRAPH +0x81B9 0x4F16 #CJK UNIFIED IDEOGRAPH +0x81BA 0x4F1C #CJK UNIFIED IDEOGRAPH +0x81BB 0x4F1D #CJK UNIFIED IDEOGRAPH +0x81BC 0x4F21 #CJK UNIFIED IDEOGRAPH +0x81BD 0x4F23 #CJK UNIFIED IDEOGRAPH +0x81BE 0x4F28 #CJK UNIFIED IDEOGRAPH +0x81BF 0x4F29 #CJK UNIFIED IDEOGRAPH +0x81C0 0x4F2C #CJK UNIFIED IDEOGRAPH +0x81C1 0x4F2D #CJK UNIFIED IDEOGRAPH +0x81C2 0x4F2E #CJK UNIFIED IDEOGRAPH +0x81C3 0x4F31 #CJK UNIFIED IDEOGRAPH +0x81C4 0x4F33 #CJK UNIFIED IDEOGRAPH +0x81C5 0x4F35 #CJK UNIFIED IDEOGRAPH +0x81C6 0x4F37 #CJK UNIFIED IDEOGRAPH +0x81C7 0x4F39 #CJK UNIFIED IDEOGRAPH +0x81C8 0x4F3B #CJK UNIFIED IDEOGRAPH +0x81C9 0x4F3E #CJK UNIFIED IDEOGRAPH +0x81CA 0x4F3F #CJK UNIFIED IDEOGRAPH +0x81CB 0x4F40 #CJK UNIFIED IDEOGRAPH +0x81CC 0x4F41 #CJK UNIFIED IDEOGRAPH +0x81CD 0x4F42 #CJK UNIFIED IDEOGRAPH +0x81CE 0x4F44 #CJK UNIFIED IDEOGRAPH +0x81CF 0x4F45 #CJK UNIFIED IDEOGRAPH +0x81D0 0x4F47 #CJK UNIFIED IDEOGRAPH +0x81D1 0x4F48 #CJK UNIFIED IDEOGRAPH +0x81D2 0x4F49 #CJK UNIFIED IDEOGRAPH +0x81D3 0x4F4A #CJK UNIFIED IDEOGRAPH +0x81D4 0x4F4B #CJK UNIFIED IDEOGRAPH +0x81D5 0x4F4C #CJK UNIFIED IDEOGRAPH +0x81D6 0x4F52 #CJK UNIFIED IDEOGRAPH +0x81D7 0x4F54 #CJK UNIFIED IDEOGRAPH +0x81D8 0x4F56 #CJK UNIFIED IDEOGRAPH +0x81D9 0x4F61 #CJK UNIFIED IDEOGRAPH +0x81DA 0x4F62 #CJK UNIFIED IDEOGRAPH +0x81DB 0x4F66 #CJK UNIFIED IDEOGRAPH +0x81DC 0x4F68 #CJK UNIFIED IDEOGRAPH +0x81DD 0x4F6A #CJK UNIFIED IDEOGRAPH +0x81DE 0x4F6B #CJK UNIFIED IDEOGRAPH +0x81DF 0x4F6D #CJK UNIFIED IDEOGRAPH +0x81E0 0x4F6E #CJK UNIFIED IDEOGRAPH +0x81E1 0x4F71 #CJK UNIFIED IDEOGRAPH +0x81E2 0x4F72 #CJK UNIFIED IDEOGRAPH +0x81E3 0x4F75 #CJK UNIFIED IDEOGRAPH +0x81E4 0x4F77 #CJK UNIFIED IDEOGRAPH +0x81E5 0x4F78 #CJK UNIFIED IDEOGRAPH +0x81E6 0x4F79 #CJK UNIFIED IDEOGRAPH +0x81E7 0x4F7A #CJK UNIFIED IDEOGRAPH +0x81E8 0x4F7D #CJK UNIFIED IDEOGRAPH +0x81E9 0x4F80 #CJK UNIFIED IDEOGRAPH +0x81EA 0x4F81 #CJK UNIFIED IDEOGRAPH +0x81EB 0x4F82 #CJK UNIFIED IDEOGRAPH +0x81EC 0x4F85 #CJK UNIFIED IDEOGRAPH +0x81ED 0x4F86 #CJK UNIFIED IDEOGRAPH +0x81EE 0x4F87 #CJK UNIFIED IDEOGRAPH +0x81EF 0x4F8A #CJK UNIFIED IDEOGRAPH +0x81F0 0x4F8C #CJK UNIFIED IDEOGRAPH +0x81F1 0x4F8E #CJK UNIFIED IDEOGRAPH +0x81F2 0x4F90 #CJK UNIFIED IDEOGRAPH +0x81F3 0x4F92 #CJK UNIFIED IDEOGRAPH +0x81F4 0x4F93 #CJK UNIFIED IDEOGRAPH +0x81F5 0x4F95 #CJK UNIFIED IDEOGRAPH +0x81F6 0x4F96 #CJK UNIFIED IDEOGRAPH +0x81F7 0x4F98 #CJK UNIFIED IDEOGRAPH +0x81F8 0x4F99 #CJK UNIFIED IDEOGRAPH +0x81F9 0x4F9A #CJK UNIFIED IDEOGRAPH +0x81FA 0x4F9C #CJK UNIFIED IDEOGRAPH +0x81FB 0x4F9E #CJK UNIFIED IDEOGRAPH +0x81FC 0x4F9F #CJK UNIFIED IDEOGRAPH +0x81FD 0x4FA1 #CJK UNIFIED IDEOGRAPH +0x81FE 0x4FA2 #CJK UNIFIED IDEOGRAPH +0x8240 0x4FA4 #CJK UNIFIED IDEOGRAPH +0x8241 0x4FAB #CJK UNIFIED IDEOGRAPH +0x8242 0x4FAD #CJK UNIFIED IDEOGRAPH +0x8243 0x4FB0 #CJK UNIFIED IDEOGRAPH +0x8244 0x4FB1 #CJK UNIFIED IDEOGRAPH +0x8245 0x4FB2 #CJK UNIFIED IDEOGRAPH +0x8246 0x4FB3 #CJK UNIFIED IDEOGRAPH +0x8247 0x4FB4 #CJK UNIFIED IDEOGRAPH +0x8248 0x4FB6 #CJK UNIFIED IDEOGRAPH +0x8249 0x4FB7 #CJK UNIFIED IDEOGRAPH +0x824A 0x4FB8 #CJK UNIFIED IDEOGRAPH +0x824B 0x4FB9 #CJK UNIFIED IDEOGRAPH +0x824C 0x4FBA #CJK UNIFIED IDEOGRAPH +0x824D 0x4FBB #CJK UNIFIED IDEOGRAPH +0x824E 0x4FBC #CJK UNIFIED IDEOGRAPH +0x824F 0x4FBD #CJK UNIFIED IDEOGRAPH +0x8250 0x4FBE #CJK UNIFIED IDEOGRAPH +0x8251 0x4FC0 #CJK UNIFIED IDEOGRAPH +0x8252 0x4FC1 #CJK UNIFIED IDEOGRAPH +0x8253 0x4FC2 #CJK UNIFIED IDEOGRAPH +0x8254 0x4FC6 #CJK UNIFIED IDEOGRAPH +0x8255 0x4FC7 #CJK UNIFIED IDEOGRAPH +0x8256 0x4FC8 #CJK UNIFIED IDEOGRAPH +0x8257 0x4FC9 #CJK UNIFIED IDEOGRAPH +0x8258 0x4FCB #CJK UNIFIED IDEOGRAPH +0x8259 0x4FCC #CJK UNIFIED IDEOGRAPH +0x825A 0x4FCD #CJK UNIFIED IDEOGRAPH +0x825B 0x4FD2 #CJK UNIFIED IDEOGRAPH +0x825C 0x4FD3 #CJK UNIFIED IDEOGRAPH +0x825D 0x4FD4 #CJK UNIFIED IDEOGRAPH +0x825E 0x4FD5 #CJK UNIFIED IDEOGRAPH +0x825F 0x4FD6 #CJK UNIFIED IDEOGRAPH +0x8260 0x4FD9 #CJK UNIFIED IDEOGRAPH +0x8261 0x4FDB #CJK UNIFIED IDEOGRAPH +0x8262 0x4FE0 #CJK UNIFIED IDEOGRAPH +0x8263 0x4FE2 #CJK UNIFIED IDEOGRAPH +0x8264 0x4FE4 #CJK UNIFIED IDEOGRAPH +0x8265 0x4FE5 #CJK UNIFIED IDEOGRAPH +0x8266 0x4FE7 #CJK UNIFIED IDEOGRAPH +0x8267 0x4FEB #CJK UNIFIED IDEOGRAPH +0x8268 0x4FEC #CJK UNIFIED IDEOGRAPH +0x8269 0x4FF0 #CJK UNIFIED IDEOGRAPH +0x826A 0x4FF2 #CJK UNIFIED IDEOGRAPH +0x826B 0x4FF4 #CJK UNIFIED IDEOGRAPH +0x826C 0x4FF5 #CJK UNIFIED IDEOGRAPH +0x826D 0x4FF6 #CJK UNIFIED IDEOGRAPH +0x826E 0x4FF7 #CJK UNIFIED IDEOGRAPH +0x826F 0x4FF9 #CJK UNIFIED IDEOGRAPH +0x8270 0x4FFB #CJK UNIFIED IDEOGRAPH +0x8271 0x4FFC #CJK UNIFIED IDEOGRAPH +0x8272 0x4FFD #CJK UNIFIED IDEOGRAPH +0x8273 0x4FFF #CJK UNIFIED IDEOGRAPH +0x8274 0x5000 #CJK UNIFIED IDEOGRAPH +0x8275 0x5001 #CJK UNIFIED IDEOGRAPH +0x8276 0x5002 #CJK UNIFIED IDEOGRAPH +0x8277 0x5003 #CJK UNIFIED IDEOGRAPH +0x8278 0x5004 #CJK UNIFIED IDEOGRAPH +0x8279 0x5005 #CJK UNIFIED IDEOGRAPH +0x827A 0x5006 #CJK UNIFIED IDEOGRAPH +0x827B 0x5007 #CJK UNIFIED IDEOGRAPH +0x827C 0x5008 #CJK UNIFIED IDEOGRAPH +0x827D 0x5009 #CJK UNIFIED IDEOGRAPH +0x827E 0x500A #CJK UNIFIED IDEOGRAPH +0x8280 0x500B #CJK UNIFIED IDEOGRAPH +0x8281 0x500E #CJK UNIFIED IDEOGRAPH +0x8282 0x5010 #CJK UNIFIED IDEOGRAPH +0x8283 0x5011 #CJK UNIFIED IDEOGRAPH +0x8284 0x5013 #CJK UNIFIED IDEOGRAPH +0x8285 0x5015 #CJK UNIFIED IDEOGRAPH +0x8286 0x5016 #CJK UNIFIED IDEOGRAPH +0x8287 0x5017 #CJK UNIFIED IDEOGRAPH +0x8288 0x501B #CJK UNIFIED IDEOGRAPH +0x8289 0x501D #CJK UNIFIED IDEOGRAPH +0x828A 0x501E #CJK UNIFIED IDEOGRAPH +0x828B 0x5020 #CJK UNIFIED IDEOGRAPH +0x828C 0x5022 #CJK UNIFIED IDEOGRAPH +0x828D 0x5023 #CJK UNIFIED IDEOGRAPH +0x828E 0x5024 #CJK UNIFIED IDEOGRAPH +0x828F 0x5027 #CJK UNIFIED IDEOGRAPH +0x8290 0x502B #CJK UNIFIED IDEOGRAPH +0x8291 0x502F #CJK UNIFIED IDEOGRAPH +0x8292 0x5030 #CJK UNIFIED IDEOGRAPH +0x8293 0x5031 #CJK UNIFIED IDEOGRAPH +0x8294 0x5032 #CJK UNIFIED IDEOGRAPH +0x8295 0x5033 #CJK UNIFIED IDEOGRAPH +0x8296 0x5034 #CJK UNIFIED IDEOGRAPH +0x8297 0x5035 #CJK UNIFIED IDEOGRAPH +0x8298 0x5036 #CJK UNIFIED IDEOGRAPH +0x8299 0x5037 #CJK UNIFIED IDEOGRAPH +0x829A 0x5038 #CJK UNIFIED IDEOGRAPH +0x829B 0x5039 #CJK UNIFIED IDEOGRAPH +0x829C 0x503B #CJK UNIFIED IDEOGRAPH +0x829D 0x503D #CJK UNIFIED IDEOGRAPH +0x829E 0x503F #CJK UNIFIED IDEOGRAPH +0x829F 0x5040 #CJK UNIFIED IDEOGRAPH +0x82A0 0x5041 #CJK UNIFIED IDEOGRAPH +0x82A1 0x5042 #CJK UNIFIED IDEOGRAPH +0x82A2 0x5044 #CJK UNIFIED IDEOGRAPH +0x82A3 0x5045 #CJK UNIFIED IDEOGRAPH +0x82A4 0x5046 #CJK UNIFIED IDEOGRAPH +0x82A5 0x5049 #CJK UNIFIED IDEOGRAPH +0x82A6 0x504A #CJK UNIFIED IDEOGRAPH +0x82A7 0x504B #CJK UNIFIED IDEOGRAPH +0x82A8 0x504D #CJK UNIFIED IDEOGRAPH +0x82A9 0x5050 #CJK UNIFIED IDEOGRAPH +0x82AA 0x5051 #CJK UNIFIED IDEOGRAPH +0x82AB 0x5052 #CJK UNIFIED IDEOGRAPH +0x82AC 0x5053 #CJK UNIFIED IDEOGRAPH +0x82AD 0x5054 #CJK UNIFIED IDEOGRAPH +0x82AE 0x5056 #CJK UNIFIED IDEOGRAPH +0x82AF 0x5057 #CJK UNIFIED IDEOGRAPH +0x82B0 0x5058 #CJK UNIFIED IDEOGRAPH +0x82B1 0x5059 #CJK UNIFIED IDEOGRAPH +0x82B2 0x505B #CJK UNIFIED IDEOGRAPH +0x82B3 0x505D #CJK UNIFIED IDEOGRAPH +0x82B4 0x505E #CJK UNIFIED IDEOGRAPH +0x82B5 0x505F #CJK UNIFIED IDEOGRAPH +0x82B6 0x5060 #CJK UNIFIED IDEOGRAPH +0x82B7 0x5061 #CJK UNIFIED IDEOGRAPH +0x82B8 0x5062 #CJK UNIFIED IDEOGRAPH +0x82B9 0x5063 #CJK UNIFIED IDEOGRAPH +0x82BA 0x5064 #CJK UNIFIED IDEOGRAPH +0x82BB 0x5066 #CJK UNIFIED IDEOGRAPH +0x82BC 0x5067 #CJK UNIFIED IDEOGRAPH +0x82BD 0x5068 #CJK UNIFIED IDEOGRAPH +0x82BE 0x5069 #CJK UNIFIED IDEOGRAPH +0x82BF 0x506A #CJK UNIFIED IDEOGRAPH +0x82C0 0x506B #CJK UNIFIED IDEOGRAPH +0x82C1 0x506D #CJK UNIFIED IDEOGRAPH +0x82C2 0x506E #CJK UNIFIED IDEOGRAPH +0x82C3 0x506F #CJK UNIFIED IDEOGRAPH +0x82C4 0x5070 #CJK UNIFIED IDEOGRAPH +0x82C5 0x5071 #CJK UNIFIED IDEOGRAPH +0x82C6 0x5072 #CJK UNIFIED IDEOGRAPH +0x82C7 0x5073 #CJK UNIFIED IDEOGRAPH +0x82C8 0x5074 #CJK UNIFIED IDEOGRAPH +0x82C9 0x5075 #CJK UNIFIED IDEOGRAPH +0x82CA 0x5078 #CJK UNIFIED IDEOGRAPH +0x82CB 0x5079 #CJK UNIFIED IDEOGRAPH +0x82CC 0x507A #CJK UNIFIED IDEOGRAPH +0x82CD 0x507C #CJK UNIFIED IDEOGRAPH +0x82CE 0x507D #CJK UNIFIED IDEOGRAPH +0x82CF 0x5081 #CJK UNIFIED IDEOGRAPH +0x82D0 0x5082 #CJK UNIFIED IDEOGRAPH +0x82D1 0x5083 #CJK UNIFIED IDEOGRAPH +0x82D2 0x5084 #CJK UNIFIED IDEOGRAPH +0x82D3 0x5086 #CJK UNIFIED IDEOGRAPH +0x82D4 0x5087 #CJK UNIFIED IDEOGRAPH +0x82D5 0x5089 #CJK UNIFIED IDEOGRAPH +0x82D6 0x508A #CJK UNIFIED IDEOGRAPH +0x82D7 0x508B #CJK UNIFIED IDEOGRAPH +0x82D8 0x508C #CJK UNIFIED IDEOGRAPH +0x82D9 0x508E #CJK UNIFIED IDEOGRAPH +0x82DA 0x508F #CJK UNIFIED IDEOGRAPH +0x82DB 0x5090 #CJK UNIFIED IDEOGRAPH +0x82DC 0x5091 #CJK UNIFIED IDEOGRAPH +0x82DD 0x5092 #CJK UNIFIED IDEOGRAPH +0x82DE 0x5093 #CJK UNIFIED IDEOGRAPH +0x82DF 0x5094 #CJK UNIFIED IDEOGRAPH +0x82E0 0x5095 #CJK UNIFIED IDEOGRAPH +0x82E1 0x5096 #CJK UNIFIED IDEOGRAPH +0x82E2 0x5097 #CJK UNIFIED IDEOGRAPH +0x82E3 0x5098 #CJK UNIFIED IDEOGRAPH +0x82E4 0x5099 #CJK UNIFIED IDEOGRAPH +0x82E5 0x509A #CJK UNIFIED IDEOGRAPH +0x82E6 0x509B #CJK UNIFIED IDEOGRAPH +0x82E7 0x509C #CJK UNIFIED IDEOGRAPH +0x82E8 0x509D #CJK UNIFIED IDEOGRAPH +0x82E9 0x509E #CJK UNIFIED IDEOGRAPH +0x82EA 0x509F #CJK UNIFIED IDEOGRAPH +0x82EB 0x50A0 #CJK UNIFIED IDEOGRAPH +0x82EC 0x50A1 #CJK UNIFIED IDEOGRAPH +0x82ED 0x50A2 #CJK UNIFIED IDEOGRAPH +0x82EE 0x50A4 #CJK UNIFIED IDEOGRAPH +0x82EF 0x50A6 #CJK UNIFIED IDEOGRAPH +0x82F0 0x50AA #CJK UNIFIED IDEOGRAPH +0x82F1 0x50AB #CJK UNIFIED IDEOGRAPH +0x82F2 0x50AD #CJK UNIFIED IDEOGRAPH +0x82F3 0x50AE #CJK UNIFIED IDEOGRAPH +0x82F4 0x50AF #CJK UNIFIED IDEOGRAPH +0x82F5 0x50B0 #CJK UNIFIED IDEOGRAPH +0x82F6 0x50B1 #CJK UNIFIED IDEOGRAPH +0x82F7 0x50B3 #CJK UNIFIED IDEOGRAPH +0x82F8 0x50B4 #CJK UNIFIED IDEOGRAPH +0x82F9 0x50B5 #CJK UNIFIED IDEOGRAPH +0x82FA 0x50B6 #CJK UNIFIED IDEOGRAPH +0x82FB 0x50B7 #CJK UNIFIED IDEOGRAPH +0x82FC 0x50B8 #CJK UNIFIED IDEOGRAPH +0x82FD 0x50B9 #CJK UNIFIED IDEOGRAPH +0x82FE 0x50BC #CJK UNIFIED IDEOGRAPH +0x8340 0x50BD #CJK UNIFIED IDEOGRAPH +0x8341 0x50BE #CJK UNIFIED IDEOGRAPH +0x8342 0x50BF #CJK UNIFIED IDEOGRAPH +0x8343 0x50C0 #CJK UNIFIED IDEOGRAPH +0x8344 0x50C1 #CJK UNIFIED IDEOGRAPH +0x8345 0x50C2 #CJK UNIFIED IDEOGRAPH +0x8346 0x50C3 #CJK UNIFIED IDEOGRAPH +0x8347 0x50C4 #CJK UNIFIED IDEOGRAPH +0x8348 0x50C5 #CJK UNIFIED IDEOGRAPH +0x8349 0x50C6 #CJK UNIFIED IDEOGRAPH +0x834A 0x50C7 #CJK UNIFIED IDEOGRAPH +0x834B 0x50C8 #CJK UNIFIED IDEOGRAPH +0x834C 0x50C9 #CJK UNIFIED IDEOGRAPH +0x834D 0x50CA #CJK UNIFIED IDEOGRAPH +0x834E 0x50CB #CJK UNIFIED IDEOGRAPH +0x834F 0x50CC #CJK UNIFIED IDEOGRAPH +0x8350 0x50CD #CJK UNIFIED IDEOGRAPH +0x8351 0x50CE #CJK UNIFIED IDEOGRAPH +0x8352 0x50D0 #CJK UNIFIED IDEOGRAPH +0x8353 0x50D1 #CJK UNIFIED IDEOGRAPH +0x8354 0x50D2 #CJK UNIFIED IDEOGRAPH +0x8355 0x50D3 #CJK UNIFIED IDEOGRAPH +0x8356 0x50D4 #CJK UNIFIED IDEOGRAPH +0x8357 0x50D5 #CJK UNIFIED IDEOGRAPH +0x8358 0x50D7 #CJK UNIFIED IDEOGRAPH +0x8359 0x50D8 #CJK UNIFIED IDEOGRAPH +0x835A 0x50D9 #CJK UNIFIED IDEOGRAPH +0x835B 0x50DB #CJK UNIFIED IDEOGRAPH +0x835C 0x50DC #CJK UNIFIED IDEOGRAPH +0x835D 0x50DD #CJK UNIFIED IDEOGRAPH +0x835E 0x50DE #CJK UNIFIED IDEOGRAPH +0x835F 0x50DF #CJK UNIFIED IDEOGRAPH +0x8360 0x50E0 #CJK UNIFIED IDEOGRAPH +0x8361 0x50E1 #CJK UNIFIED IDEOGRAPH +0x8362 0x50E2 #CJK UNIFIED IDEOGRAPH +0x8363 0x50E3 #CJK UNIFIED IDEOGRAPH +0x8364 0x50E4 #CJK UNIFIED IDEOGRAPH +0x8365 0x50E5 #CJK UNIFIED IDEOGRAPH +0x8366 0x50E8 #CJK UNIFIED IDEOGRAPH +0x8367 0x50E9 #CJK UNIFIED IDEOGRAPH +0x8368 0x50EA #CJK UNIFIED IDEOGRAPH +0x8369 0x50EB #CJK UNIFIED IDEOGRAPH +0x836A 0x50EF #CJK UNIFIED IDEOGRAPH +0x836B 0x50F0 #CJK UNIFIED IDEOGRAPH +0x836C 0x50F1 #CJK UNIFIED IDEOGRAPH +0x836D 0x50F2 #CJK UNIFIED IDEOGRAPH +0x836E 0x50F4 #CJK UNIFIED IDEOGRAPH +0x836F 0x50F6 #CJK UNIFIED IDEOGRAPH +0x8370 0x50F7 #CJK UNIFIED IDEOGRAPH +0x8371 0x50F8 #CJK UNIFIED IDEOGRAPH +0x8372 0x50F9 #CJK UNIFIED IDEOGRAPH +0x8373 0x50FA #CJK UNIFIED IDEOGRAPH +0x8374 0x50FC #CJK UNIFIED IDEOGRAPH +0x8375 0x50FD #CJK UNIFIED IDEOGRAPH +0x8376 0x50FE #CJK UNIFIED IDEOGRAPH +0x8377 0x50FF #CJK UNIFIED IDEOGRAPH +0x8378 0x5100 #CJK UNIFIED IDEOGRAPH +0x8379 0x5101 #CJK UNIFIED IDEOGRAPH +0x837A 0x5102 #CJK UNIFIED IDEOGRAPH +0x837B 0x5103 #CJK UNIFIED IDEOGRAPH +0x837C 0x5104 #CJK UNIFIED IDEOGRAPH +0x837D 0x5105 #CJK UNIFIED IDEOGRAPH +0x837E 0x5108 #CJK UNIFIED IDEOGRAPH +0x8380 0x5109 #CJK UNIFIED IDEOGRAPH +0x8381 0x510A #CJK UNIFIED IDEOGRAPH +0x8382 0x510C #CJK UNIFIED IDEOGRAPH +0x8383 0x510D #CJK UNIFIED IDEOGRAPH +0x8384 0x510E #CJK UNIFIED IDEOGRAPH +0x8385 0x510F #CJK UNIFIED IDEOGRAPH +0x8386 0x5110 #CJK UNIFIED IDEOGRAPH +0x8387 0x5111 #CJK UNIFIED IDEOGRAPH +0x8388 0x5113 #CJK UNIFIED IDEOGRAPH +0x8389 0x5114 #CJK UNIFIED IDEOGRAPH +0x838A 0x5115 #CJK UNIFIED IDEOGRAPH +0x838B 0x5116 #CJK UNIFIED IDEOGRAPH +0x838C 0x5117 #CJK UNIFIED IDEOGRAPH +0x838D 0x5118 #CJK UNIFIED IDEOGRAPH +0x838E 0x5119 #CJK UNIFIED IDEOGRAPH +0x838F 0x511A #CJK UNIFIED IDEOGRAPH +0x8390 0x511B #CJK UNIFIED IDEOGRAPH +0x8391 0x511C #CJK UNIFIED IDEOGRAPH +0x8392 0x511D #CJK UNIFIED IDEOGRAPH +0x8393 0x511E #CJK UNIFIED IDEOGRAPH +0x8394 0x511F #CJK UNIFIED IDEOGRAPH +0x8395 0x5120 #CJK UNIFIED IDEOGRAPH +0x8396 0x5122 #CJK UNIFIED IDEOGRAPH +0x8397 0x5123 #CJK UNIFIED IDEOGRAPH +0x8398 0x5124 #CJK UNIFIED IDEOGRAPH +0x8399 0x5125 #CJK UNIFIED IDEOGRAPH +0x839A 0x5126 #CJK UNIFIED IDEOGRAPH +0x839B 0x5127 #CJK UNIFIED IDEOGRAPH +0x839C 0x5128 #CJK UNIFIED IDEOGRAPH +0x839D 0x5129 #CJK UNIFIED IDEOGRAPH +0x839E 0x512A #CJK UNIFIED IDEOGRAPH +0x839F 0x512B #CJK UNIFIED IDEOGRAPH +0x83A0 0x512C #CJK UNIFIED IDEOGRAPH +0x83A1 0x512D #CJK UNIFIED IDEOGRAPH +0x83A2 0x512E #CJK UNIFIED IDEOGRAPH +0x83A3 0x512F #CJK UNIFIED IDEOGRAPH +0x83A4 0x5130 #CJK UNIFIED IDEOGRAPH +0x83A5 0x5131 #CJK UNIFIED IDEOGRAPH +0x83A6 0x5132 #CJK UNIFIED IDEOGRAPH +0x83A7 0x5133 #CJK UNIFIED IDEOGRAPH +0x83A8 0x5134 #CJK UNIFIED IDEOGRAPH +0x83A9 0x5135 #CJK UNIFIED IDEOGRAPH +0x83AA 0x5136 #CJK UNIFIED IDEOGRAPH +0x83AB 0x5137 #CJK UNIFIED IDEOGRAPH +0x83AC 0x5138 #CJK UNIFIED IDEOGRAPH +0x83AD 0x5139 #CJK UNIFIED IDEOGRAPH +0x83AE 0x513A #CJK UNIFIED IDEOGRAPH +0x83AF 0x513B #CJK UNIFIED IDEOGRAPH +0x83B0 0x513C #CJK UNIFIED IDEOGRAPH +0x83B1 0x513D #CJK UNIFIED IDEOGRAPH +0x83B2 0x513E #CJK UNIFIED IDEOGRAPH +0x83B3 0x5142 #CJK UNIFIED IDEOGRAPH +0x83B4 0x5147 #CJK UNIFIED IDEOGRAPH +0x83B5 0x514A #CJK UNIFIED IDEOGRAPH +0x83B6 0x514C #CJK UNIFIED IDEOGRAPH +0x83B7 0x514E #CJK UNIFIED IDEOGRAPH +0x83B8 0x514F #CJK UNIFIED IDEOGRAPH +0x83B9 0x5150 #CJK UNIFIED IDEOGRAPH +0x83BA 0x5152 #CJK UNIFIED IDEOGRAPH +0x83BB 0x5153 #CJK UNIFIED IDEOGRAPH +0x83BC 0x5157 #CJK UNIFIED IDEOGRAPH +0x83BD 0x5158 #CJK UNIFIED IDEOGRAPH +0x83BE 0x5159 #CJK UNIFIED IDEOGRAPH +0x83BF 0x515B #CJK UNIFIED IDEOGRAPH +0x83C0 0x515D #CJK UNIFIED IDEOGRAPH +0x83C1 0x515E #CJK UNIFIED IDEOGRAPH +0x83C2 0x515F #CJK UNIFIED IDEOGRAPH +0x83C3 0x5160 #CJK UNIFIED IDEOGRAPH +0x83C4 0x5161 #CJK UNIFIED IDEOGRAPH +0x83C5 0x5163 #CJK UNIFIED IDEOGRAPH +0x83C6 0x5164 #CJK UNIFIED IDEOGRAPH +0x83C7 0x5166 #CJK UNIFIED IDEOGRAPH +0x83C8 0x5167 #CJK UNIFIED IDEOGRAPH +0x83C9 0x5169 #CJK UNIFIED IDEOGRAPH +0x83CA 0x516A #CJK UNIFIED IDEOGRAPH +0x83CB 0x516F #CJK UNIFIED IDEOGRAPH +0x83CC 0x5172 #CJK UNIFIED IDEOGRAPH +0x83CD 0x517A #CJK UNIFIED IDEOGRAPH +0x83CE 0x517E #CJK UNIFIED IDEOGRAPH +0x83CF 0x517F #CJK UNIFIED IDEOGRAPH +0x83D0 0x5183 #CJK UNIFIED IDEOGRAPH +0x83D1 0x5184 #CJK UNIFIED IDEOGRAPH +0x83D2 0x5186 #CJK UNIFIED IDEOGRAPH +0x83D3 0x5187 #CJK UNIFIED IDEOGRAPH +0x83D4 0x518A #CJK UNIFIED IDEOGRAPH +0x83D5 0x518B #CJK UNIFIED IDEOGRAPH +0x83D6 0x518E #CJK UNIFIED IDEOGRAPH +0x83D7 0x518F #CJK UNIFIED IDEOGRAPH +0x83D8 0x5190 #CJK UNIFIED IDEOGRAPH +0x83D9 0x5191 #CJK UNIFIED IDEOGRAPH +0x83DA 0x5193 #CJK UNIFIED IDEOGRAPH +0x83DB 0x5194 #CJK UNIFIED IDEOGRAPH +0x83DC 0x5198 #CJK UNIFIED IDEOGRAPH +0x83DD 0x519A #CJK UNIFIED IDEOGRAPH +0x83DE 0x519D #CJK UNIFIED IDEOGRAPH +0x83DF 0x519E #CJK UNIFIED IDEOGRAPH +0x83E0 0x519F #CJK UNIFIED IDEOGRAPH +0x83E1 0x51A1 #CJK UNIFIED IDEOGRAPH +0x83E2 0x51A3 #CJK UNIFIED IDEOGRAPH +0x83E3 0x51A6 #CJK UNIFIED IDEOGRAPH +0x83E4 0x51A7 #CJK UNIFIED IDEOGRAPH +0x83E5 0x51A8 #CJK UNIFIED IDEOGRAPH +0x83E6 0x51A9 #CJK UNIFIED IDEOGRAPH +0x83E7 0x51AA #CJK UNIFIED IDEOGRAPH +0x83E8 0x51AD #CJK UNIFIED IDEOGRAPH +0x83E9 0x51AE #CJK UNIFIED IDEOGRAPH +0x83EA 0x51B4 #CJK UNIFIED IDEOGRAPH +0x83EB 0x51B8 #CJK UNIFIED IDEOGRAPH +0x83EC 0x51B9 #CJK UNIFIED IDEOGRAPH +0x83ED 0x51BA #CJK UNIFIED IDEOGRAPH +0x83EE 0x51BE #CJK UNIFIED IDEOGRAPH +0x83EF 0x51BF #CJK UNIFIED IDEOGRAPH +0x83F0 0x51C1 #CJK UNIFIED IDEOGRAPH +0x83F1 0x51C2 #CJK UNIFIED IDEOGRAPH +0x83F2 0x51C3 #CJK UNIFIED IDEOGRAPH +0x83F3 0x51C5 #CJK UNIFIED IDEOGRAPH +0x83F4 0x51C8 #CJK UNIFIED IDEOGRAPH +0x83F5 0x51CA #CJK UNIFIED IDEOGRAPH +0x83F6 0x51CD #CJK UNIFIED IDEOGRAPH +0x83F7 0x51CE #CJK UNIFIED IDEOGRAPH +0x83F8 0x51D0 #CJK UNIFIED IDEOGRAPH +0x83F9 0x51D2 #CJK UNIFIED IDEOGRAPH +0x83FA 0x51D3 #CJK UNIFIED IDEOGRAPH +0x83FB 0x51D4 #CJK UNIFIED IDEOGRAPH +0x83FC 0x51D5 #CJK UNIFIED IDEOGRAPH +0x83FD 0x51D6 #CJK UNIFIED IDEOGRAPH +0x83FE 0x51D7 #CJK UNIFIED IDEOGRAPH +0x8440 0x51D8 #CJK UNIFIED IDEOGRAPH +0x8441 0x51D9 #CJK UNIFIED IDEOGRAPH +0x8442 0x51DA #CJK UNIFIED IDEOGRAPH +0x8443 0x51DC #CJK UNIFIED IDEOGRAPH +0x8444 0x51DE #CJK UNIFIED IDEOGRAPH +0x8445 0x51DF #CJK UNIFIED IDEOGRAPH +0x8446 0x51E2 #CJK UNIFIED IDEOGRAPH +0x8447 0x51E3 #CJK UNIFIED IDEOGRAPH +0x8448 0x51E5 #CJK UNIFIED IDEOGRAPH +0x8449 0x51E6 #CJK UNIFIED IDEOGRAPH +0x844A 0x51E7 #CJK UNIFIED IDEOGRAPH +0x844B 0x51E8 #CJK UNIFIED IDEOGRAPH +0x844C 0x51E9 #CJK UNIFIED IDEOGRAPH +0x844D 0x51EA #CJK UNIFIED IDEOGRAPH +0x844E 0x51EC #CJK UNIFIED IDEOGRAPH +0x844F 0x51EE #CJK UNIFIED IDEOGRAPH +0x8450 0x51F1 #CJK UNIFIED IDEOGRAPH +0x8451 0x51F2 #CJK UNIFIED IDEOGRAPH +0x8452 0x51F4 #CJK UNIFIED IDEOGRAPH +0x8453 0x51F7 #CJK UNIFIED IDEOGRAPH +0x8454 0x51FE #CJK UNIFIED IDEOGRAPH +0x8455 0x5204 #CJK UNIFIED IDEOGRAPH +0x8456 0x5205 #CJK UNIFIED IDEOGRAPH +0x8457 0x5209 #CJK UNIFIED IDEOGRAPH +0x8458 0x520B #CJK UNIFIED IDEOGRAPH +0x8459 0x520C #CJK UNIFIED IDEOGRAPH +0x845A 0x520F #CJK UNIFIED IDEOGRAPH +0x845B 0x5210 #CJK UNIFIED IDEOGRAPH +0x845C 0x5213 #CJK UNIFIED IDEOGRAPH +0x845D 0x5214 #CJK UNIFIED IDEOGRAPH +0x845E 0x5215 #CJK UNIFIED IDEOGRAPH +0x845F 0x521C #CJK UNIFIED IDEOGRAPH +0x8460 0x521E #CJK UNIFIED IDEOGRAPH +0x8461 0x521F #CJK UNIFIED IDEOGRAPH +0x8462 0x5221 #CJK UNIFIED IDEOGRAPH +0x8463 0x5222 #CJK UNIFIED IDEOGRAPH +0x8464 0x5223 #CJK UNIFIED IDEOGRAPH +0x8465 0x5225 #CJK UNIFIED IDEOGRAPH +0x8466 0x5226 #CJK UNIFIED IDEOGRAPH +0x8467 0x5227 #CJK UNIFIED IDEOGRAPH +0x8468 0x522A #CJK UNIFIED IDEOGRAPH +0x8469 0x522C #CJK UNIFIED IDEOGRAPH +0x846A 0x522F #CJK UNIFIED IDEOGRAPH +0x846B 0x5231 #CJK UNIFIED IDEOGRAPH +0x846C 0x5232 #CJK UNIFIED IDEOGRAPH +0x846D 0x5234 #CJK UNIFIED IDEOGRAPH +0x846E 0x5235 #CJK UNIFIED IDEOGRAPH +0x846F 0x523C #CJK UNIFIED IDEOGRAPH +0x8470 0x523E #CJK UNIFIED IDEOGRAPH +0x8471 0x5244 #CJK UNIFIED IDEOGRAPH +0x8472 0x5245 #CJK UNIFIED IDEOGRAPH +0x8473 0x5246 #CJK UNIFIED IDEOGRAPH +0x8474 0x5247 #CJK UNIFIED IDEOGRAPH +0x8475 0x5248 #CJK UNIFIED IDEOGRAPH +0x8476 0x5249 #CJK UNIFIED IDEOGRAPH +0x8477 0x524B #CJK UNIFIED IDEOGRAPH +0x8478 0x524E #CJK UNIFIED IDEOGRAPH +0x8479 0x524F #CJK UNIFIED IDEOGRAPH +0x847A 0x5252 #CJK UNIFIED IDEOGRAPH +0x847B 0x5253 #CJK UNIFIED IDEOGRAPH +0x847C 0x5255 #CJK UNIFIED IDEOGRAPH +0x847D 0x5257 #CJK UNIFIED IDEOGRAPH +0x847E 0x5258 #CJK UNIFIED IDEOGRAPH +0x8480 0x5259 #CJK UNIFIED IDEOGRAPH +0x8481 0x525A #CJK UNIFIED IDEOGRAPH +0x8482 0x525B #CJK UNIFIED IDEOGRAPH +0x8483 0x525D #CJK UNIFIED IDEOGRAPH +0x8484 0x525F #CJK UNIFIED IDEOGRAPH +0x8485 0x5260 #CJK UNIFIED IDEOGRAPH +0x8486 0x5262 #CJK UNIFIED IDEOGRAPH +0x8487 0x5263 #CJK UNIFIED IDEOGRAPH +0x8488 0x5264 #CJK UNIFIED IDEOGRAPH +0x8489 0x5266 #CJK UNIFIED IDEOGRAPH +0x848A 0x5268 #CJK UNIFIED IDEOGRAPH +0x848B 0x526B #CJK UNIFIED IDEOGRAPH +0x848C 0x526C #CJK UNIFIED IDEOGRAPH +0x848D 0x526D #CJK UNIFIED IDEOGRAPH +0x848E 0x526E #CJK UNIFIED IDEOGRAPH +0x848F 0x5270 #CJK UNIFIED IDEOGRAPH +0x8490 0x5271 #CJK UNIFIED IDEOGRAPH +0x8491 0x5273 #CJK UNIFIED IDEOGRAPH +0x8492 0x5274 #CJK UNIFIED IDEOGRAPH +0x8493 0x5275 #CJK UNIFIED IDEOGRAPH +0x8494 0x5276 #CJK UNIFIED IDEOGRAPH +0x8495 0x5277 #CJK UNIFIED IDEOGRAPH +0x8496 0x5278 #CJK UNIFIED IDEOGRAPH +0x8497 0x5279 #CJK UNIFIED IDEOGRAPH +0x8498 0x527A #CJK UNIFIED IDEOGRAPH +0x8499 0x527B #CJK UNIFIED IDEOGRAPH +0x849A 0x527C #CJK UNIFIED IDEOGRAPH +0x849B 0x527E #CJK UNIFIED IDEOGRAPH +0x849C 0x5280 #CJK UNIFIED IDEOGRAPH +0x849D 0x5283 #CJK UNIFIED IDEOGRAPH +0x849E 0x5284 #CJK UNIFIED IDEOGRAPH +0x849F 0x5285 #CJK UNIFIED IDEOGRAPH +0x84A0 0x5286 #CJK UNIFIED IDEOGRAPH +0x84A1 0x5287 #CJK UNIFIED IDEOGRAPH +0x84A2 0x5289 #CJK UNIFIED IDEOGRAPH +0x84A3 0x528A #CJK UNIFIED IDEOGRAPH +0x84A4 0x528B #CJK UNIFIED IDEOGRAPH +0x84A5 0x528C #CJK UNIFIED IDEOGRAPH +0x84A6 0x528D #CJK UNIFIED IDEOGRAPH +0x84A7 0x528E #CJK UNIFIED IDEOGRAPH +0x84A8 0x528F #CJK UNIFIED IDEOGRAPH +0x84A9 0x5291 #CJK UNIFIED IDEOGRAPH +0x84AA 0x5292 #CJK UNIFIED IDEOGRAPH +0x84AB 0x5294 #CJK UNIFIED IDEOGRAPH +0x84AC 0x5295 #CJK UNIFIED IDEOGRAPH +0x84AD 0x5296 #CJK UNIFIED IDEOGRAPH +0x84AE 0x5297 #CJK UNIFIED IDEOGRAPH +0x84AF 0x5298 #CJK UNIFIED IDEOGRAPH +0x84B0 0x5299 #CJK UNIFIED IDEOGRAPH +0x84B1 0x529A #CJK UNIFIED IDEOGRAPH +0x84B2 0x529C #CJK UNIFIED IDEOGRAPH +0x84B3 0x52A4 #CJK UNIFIED IDEOGRAPH +0x84B4 0x52A5 #CJK UNIFIED IDEOGRAPH +0x84B5 0x52A6 #CJK UNIFIED IDEOGRAPH +0x84B6 0x52A7 #CJK UNIFIED IDEOGRAPH +0x84B7 0x52AE #CJK UNIFIED IDEOGRAPH +0x84B8 0x52AF #CJK UNIFIED IDEOGRAPH +0x84B9 0x52B0 #CJK UNIFIED IDEOGRAPH +0x84BA 0x52B4 #CJK UNIFIED IDEOGRAPH +0x84BB 0x52B5 #CJK UNIFIED IDEOGRAPH +0x84BC 0x52B6 #CJK UNIFIED IDEOGRAPH +0x84BD 0x52B7 #CJK UNIFIED IDEOGRAPH +0x84BE 0x52B8 #CJK UNIFIED IDEOGRAPH +0x84BF 0x52B9 #CJK UNIFIED IDEOGRAPH +0x84C0 0x52BA #CJK UNIFIED IDEOGRAPH +0x84C1 0x52BB #CJK UNIFIED IDEOGRAPH +0x84C2 0x52BC #CJK UNIFIED IDEOGRAPH +0x84C3 0x52BD #CJK UNIFIED IDEOGRAPH +0x84C4 0x52C0 #CJK UNIFIED IDEOGRAPH +0x84C5 0x52C1 #CJK UNIFIED IDEOGRAPH +0x84C6 0x52C2 #CJK UNIFIED IDEOGRAPH +0x84C7 0x52C4 #CJK UNIFIED IDEOGRAPH +0x84C8 0x52C5 #CJK UNIFIED IDEOGRAPH +0x84C9 0x52C6 #CJK UNIFIED IDEOGRAPH +0x84CA 0x52C8 #CJK UNIFIED IDEOGRAPH +0x84CB 0x52CA #CJK UNIFIED IDEOGRAPH +0x84CC 0x52CC #CJK UNIFIED IDEOGRAPH +0x84CD 0x52CD #CJK UNIFIED IDEOGRAPH +0x84CE 0x52CE #CJK UNIFIED IDEOGRAPH +0x84CF 0x52CF #CJK UNIFIED IDEOGRAPH +0x84D0 0x52D1 #CJK UNIFIED IDEOGRAPH +0x84D1 0x52D3 #CJK UNIFIED IDEOGRAPH +0x84D2 0x52D4 #CJK UNIFIED IDEOGRAPH +0x84D3 0x52D5 #CJK UNIFIED IDEOGRAPH +0x84D4 0x52D7 #CJK UNIFIED IDEOGRAPH +0x84D5 0x52D9 #CJK UNIFIED IDEOGRAPH +0x84D6 0x52DA #CJK UNIFIED IDEOGRAPH +0x84D7 0x52DB #CJK UNIFIED IDEOGRAPH +0x84D8 0x52DC #CJK UNIFIED IDEOGRAPH +0x84D9 0x52DD #CJK UNIFIED IDEOGRAPH +0x84DA 0x52DE #CJK UNIFIED IDEOGRAPH +0x84DB 0x52E0 #CJK UNIFIED IDEOGRAPH +0x84DC 0x52E1 #CJK UNIFIED IDEOGRAPH +0x84DD 0x52E2 #CJK UNIFIED IDEOGRAPH +0x84DE 0x52E3 #CJK UNIFIED IDEOGRAPH +0x84DF 0x52E5 #CJK UNIFIED IDEOGRAPH +0x84E0 0x52E6 #CJK UNIFIED IDEOGRAPH +0x84E1 0x52E7 #CJK UNIFIED IDEOGRAPH +0x84E2 0x52E8 #CJK UNIFIED IDEOGRAPH +0x84E3 0x52E9 #CJK UNIFIED IDEOGRAPH +0x84E4 0x52EA #CJK UNIFIED IDEOGRAPH +0x84E5 0x52EB #CJK UNIFIED IDEOGRAPH +0x84E6 0x52EC #CJK UNIFIED IDEOGRAPH +0x84E7 0x52ED #CJK UNIFIED IDEOGRAPH +0x84E8 0x52EE #CJK UNIFIED IDEOGRAPH +0x84E9 0x52EF #CJK UNIFIED IDEOGRAPH +0x84EA 0x52F1 #CJK UNIFIED IDEOGRAPH +0x84EB 0x52F2 #CJK UNIFIED IDEOGRAPH +0x84EC 0x52F3 #CJK UNIFIED IDEOGRAPH +0x84ED 0x52F4 #CJK UNIFIED IDEOGRAPH +0x84EE 0x52F5 #CJK UNIFIED IDEOGRAPH +0x84EF 0x52F6 #CJK UNIFIED IDEOGRAPH +0x84F0 0x52F7 #CJK UNIFIED IDEOGRAPH +0x84F1 0x52F8 #CJK UNIFIED IDEOGRAPH +0x84F2 0x52FB #CJK UNIFIED IDEOGRAPH +0x84F3 0x52FC #CJK UNIFIED IDEOGRAPH +0x84F4 0x52FD #CJK UNIFIED IDEOGRAPH +0x84F5 0x5301 #CJK UNIFIED IDEOGRAPH +0x84F6 0x5302 #CJK UNIFIED IDEOGRAPH +0x84F7 0x5303 #CJK UNIFIED IDEOGRAPH +0x84F8 0x5304 #CJK UNIFIED IDEOGRAPH +0x84F9 0x5307 #CJK UNIFIED IDEOGRAPH +0x84FA 0x5309 #CJK UNIFIED IDEOGRAPH +0x84FB 0x530A #CJK UNIFIED IDEOGRAPH +0x84FC 0x530B #CJK UNIFIED IDEOGRAPH +0x84FD 0x530C #CJK UNIFIED IDEOGRAPH +0x84FE 0x530E #CJK UNIFIED IDEOGRAPH +0x8540 0x5311 #CJK UNIFIED IDEOGRAPH +0x8541 0x5312 #CJK UNIFIED IDEOGRAPH +0x8542 0x5313 #CJK UNIFIED IDEOGRAPH +0x8543 0x5314 #CJK UNIFIED IDEOGRAPH +0x8544 0x5318 #CJK UNIFIED IDEOGRAPH +0x8545 0x531B #CJK UNIFIED IDEOGRAPH +0x8546 0x531C #CJK UNIFIED IDEOGRAPH +0x8547 0x531E #CJK UNIFIED IDEOGRAPH +0x8548 0x531F #CJK UNIFIED IDEOGRAPH +0x8549 0x5322 #CJK UNIFIED IDEOGRAPH +0x854A 0x5324 #CJK UNIFIED IDEOGRAPH +0x854B 0x5325 #CJK UNIFIED IDEOGRAPH +0x854C 0x5327 #CJK UNIFIED IDEOGRAPH +0x854D 0x5328 #CJK UNIFIED IDEOGRAPH +0x854E 0x5329 #CJK UNIFIED IDEOGRAPH +0x854F 0x532B #CJK UNIFIED IDEOGRAPH +0x8550 0x532C #CJK UNIFIED IDEOGRAPH +0x8551 0x532D #CJK UNIFIED IDEOGRAPH +0x8552 0x532F #CJK UNIFIED IDEOGRAPH +0x8553 0x5330 #CJK UNIFIED IDEOGRAPH +0x8554 0x5331 #CJK UNIFIED IDEOGRAPH +0x8555 0x5332 #CJK UNIFIED IDEOGRAPH +0x8556 0x5333 #CJK UNIFIED IDEOGRAPH +0x8557 0x5334 #CJK UNIFIED IDEOGRAPH +0x8558 0x5335 #CJK UNIFIED IDEOGRAPH +0x8559 0x5336 #CJK UNIFIED IDEOGRAPH +0x855A 0x5337 #CJK UNIFIED IDEOGRAPH +0x855B 0x5338 #CJK UNIFIED IDEOGRAPH +0x855C 0x533C #CJK UNIFIED IDEOGRAPH +0x855D 0x533D #CJK UNIFIED IDEOGRAPH +0x855E 0x5340 #CJK UNIFIED IDEOGRAPH +0x855F 0x5342 #CJK UNIFIED IDEOGRAPH +0x8560 0x5344 #CJK UNIFIED IDEOGRAPH +0x8561 0x5346 #CJK UNIFIED IDEOGRAPH +0x8562 0x534B #CJK UNIFIED IDEOGRAPH +0x8563 0x534C #CJK UNIFIED IDEOGRAPH +0x8564 0x534D #CJK UNIFIED IDEOGRAPH +0x8565 0x5350 #CJK UNIFIED IDEOGRAPH +0x8566 0x5354 #CJK UNIFIED IDEOGRAPH +0x8567 0x5358 #CJK UNIFIED IDEOGRAPH +0x8568 0x5359 #CJK UNIFIED IDEOGRAPH +0x8569 0x535B #CJK UNIFIED IDEOGRAPH +0x856A 0x535D #CJK UNIFIED IDEOGRAPH +0x856B 0x5365 #CJK UNIFIED IDEOGRAPH +0x856C 0x5368 #CJK UNIFIED IDEOGRAPH +0x856D 0x536A #CJK UNIFIED IDEOGRAPH +0x856E 0x536C #CJK UNIFIED IDEOGRAPH +0x856F 0x536D #CJK UNIFIED IDEOGRAPH +0x8570 0x5372 #CJK UNIFIED IDEOGRAPH +0x8571 0x5376 #CJK UNIFIED IDEOGRAPH +0x8572 0x5379 #CJK UNIFIED IDEOGRAPH +0x8573 0x537B #CJK UNIFIED IDEOGRAPH +0x8574 0x537C #CJK UNIFIED IDEOGRAPH +0x8575 0x537D #CJK UNIFIED IDEOGRAPH +0x8576 0x537E #CJK UNIFIED IDEOGRAPH +0x8577 0x5380 #CJK UNIFIED IDEOGRAPH +0x8578 0x5381 #CJK UNIFIED IDEOGRAPH +0x8579 0x5383 #CJK UNIFIED IDEOGRAPH +0x857A 0x5387 #CJK UNIFIED IDEOGRAPH +0x857B 0x5388 #CJK UNIFIED IDEOGRAPH +0x857C 0x538A #CJK UNIFIED IDEOGRAPH +0x857D 0x538E #CJK UNIFIED IDEOGRAPH +0x857E 0x538F #CJK UNIFIED IDEOGRAPH +0x8580 0x5390 #CJK UNIFIED IDEOGRAPH +0x8581 0x5391 #CJK UNIFIED IDEOGRAPH +0x8582 0x5392 #CJK UNIFIED IDEOGRAPH +0x8583 0x5393 #CJK UNIFIED IDEOGRAPH +0x8584 0x5394 #CJK UNIFIED IDEOGRAPH +0x8585 0x5396 #CJK UNIFIED IDEOGRAPH +0x8586 0x5397 #CJK UNIFIED IDEOGRAPH +0x8587 0x5399 #CJK UNIFIED IDEOGRAPH +0x8588 0x539B #CJK UNIFIED IDEOGRAPH +0x8589 0x539C #CJK UNIFIED IDEOGRAPH +0x858A 0x539E #CJK UNIFIED IDEOGRAPH +0x858B 0x53A0 #CJK UNIFIED IDEOGRAPH +0x858C 0x53A1 #CJK UNIFIED IDEOGRAPH +0x858D 0x53A4 #CJK UNIFIED IDEOGRAPH +0x858E 0x53A7 #CJK UNIFIED IDEOGRAPH +0x858F 0x53AA #CJK UNIFIED IDEOGRAPH +0x8590 0x53AB #CJK UNIFIED IDEOGRAPH +0x8591 0x53AC #CJK UNIFIED IDEOGRAPH +0x8592 0x53AD #CJK UNIFIED IDEOGRAPH +0x8593 0x53AF #CJK UNIFIED IDEOGRAPH +0x8594 0x53B0 #CJK UNIFIED IDEOGRAPH +0x8595 0x53B1 #CJK UNIFIED IDEOGRAPH +0x8596 0x53B2 #CJK UNIFIED IDEOGRAPH +0x8597 0x53B3 #CJK UNIFIED IDEOGRAPH +0x8598 0x53B4 #CJK UNIFIED IDEOGRAPH +0x8599 0x53B5 #CJK UNIFIED IDEOGRAPH +0x859A 0x53B7 #CJK UNIFIED IDEOGRAPH +0x859B 0x53B8 #CJK UNIFIED IDEOGRAPH +0x859C 0x53B9 #CJK UNIFIED IDEOGRAPH +0x859D 0x53BA #CJK UNIFIED IDEOGRAPH +0x859E 0x53BC #CJK UNIFIED IDEOGRAPH +0x859F 0x53BD #CJK UNIFIED IDEOGRAPH +0x85A0 0x53BE #CJK UNIFIED IDEOGRAPH +0x85A1 0x53C0 #CJK UNIFIED IDEOGRAPH +0x85A2 0x53C3 #CJK UNIFIED IDEOGRAPH +0x85A3 0x53C4 #CJK UNIFIED IDEOGRAPH +0x85A4 0x53C5 #CJK UNIFIED IDEOGRAPH +0x85A5 0x53C6 #CJK UNIFIED IDEOGRAPH +0x85A6 0x53C7 #CJK UNIFIED IDEOGRAPH +0x85A7 0x53CE #CJK UNIFIED IDEOGRAPH +0x85A8 0x53CF #CJK UNIFIED IDEOGRAPH +0x85A9 0x53D0 #CJK UNIFIED IDEOGRAPH +0x85AA 0x53D2 #CJK UNIFIED IDEOGRAPH +0x85AB 0x53D3 #CJK UNIFIED IDEOGRAPH +0x85AC 0x53D5 #CJK UNIFIED IDEOGRAPH +0x85AD 0x53DA #CJK UNIFIED IDEOGRAPH +0x85AE 0x53DC #CJK UNIFIED IDEOGRAPH +0x85AF 0x53DD #CJK UNIFIED IDEOGRAPH +0x85B0 0x53DE #CJK UNIFIED IDEOGRAPH +0x85B1 0x53E1 #CJK UNIFIED IDEOGRAPH +0x85B2 0x53E2 #CJK UNIFIED IDEOGRAPH +0x85B3 0x53E7 #CJK UNIFIED IDEOGRAPH +0x85B4 0x53F4 #CJK UNIFIED IDEOGRAPH +0x85B5 0x53FA #CJK UNIFIED IDEOGRAPH +0x85B6 0x53FE #CJK UNIFIED IDEOGRAPH +0x85B7 0x53FF #CJK UNIFIED IDEOGRAPH +0x85B8 0x5400 #CJK UNIFIED IDEOGRAPH +0x85B9 0x5402 #CJK UNIFIED IDEOGRAPH +0x85BA 0x5405 #CJK UNIFIED IDEOGRAPH +0x85BB 0x5407 #CJK UNIFIED IDEOGRAPH +0x85BC 0x540B #CJK UNIFIED IDEOGRAPH +0x85BD 0x5414 #CJK UNIFIED IDEOGRAPH +0x85BE 0x5418 #CJK UNIFIED IDEOGRAPH +0x85BF 0x5419 #CJK UNIFIED IDEOGRAPH +0x85C0 0x541A #CJK UNIFIED IDEOGRAPH +0x85C1 0x541C #CJK UNIFIED IDEOGRAPH +0x85C2 0x5422 #CJK UNIFIED IDEOGRAPH +0x85C3 0x5424 #CJK UNIFIED IDEOGRAPH +0x85C4 0x5425 #CJK UNIFIED IDEOGRAPH +0x85C5 0x542A #CJK UNIFIED IDEOGRAPH +0x85C6 0x5430 #CJK UNIFIED IDEOGRAPH +0x85C7 0x5433 #CJK UNIFIED IDEOGRAPH +0x85C8 0x5436 #CJK UNIFIED IDEOGRAPH +0x85C9 0x5437 #CJK UNIFIED IDEOGRAPH +0x85CA 0x543A #CJK UNIFIED IDEOGRAPH +0x85CB 0x543D #CJK UNIFIED IDEOGRAPH +0x85CC 0x543F #CJK UNIFIED IDEOGRAPH +0x85CD 0x5441 #CJK UNIFIED IDEOGRAPH +0x85CE 0x5442 #CJK UNIFIED IDEOGRAPH +0x85CF 0x5444 #CJK UNIFIED IDEOGRAPH +0x85D0 0x5445 #CJK UNIFIED IDEOGRAPH +0x85D1 0x5447 #CJK UNIFIED IDEOGRAPH +0x85D2 0x5449 #CJK UNIFIED IDEOGRAPH +0x85D3 0x544C #CJK UNIFIED IDEOGRAPH +0x85D4 0x544D #CJK UNIFIED IDEOGRAPH +0x85D5 0x544E #CJK UNIFIED IDEOGRAPH +0x85D6 0x544F #CJK UNIFIED IDEOGRAPH +0x85D7 0x5451 #CJK UNIFIED IDEOGRAPH +0x85D8 0x545A #CJK UNIFIED IDEOGRAPH +0x85D9 0x545D #CJK UNIFIED IDEOGRAPH +0x85DA 0x545E #CJK UNIFIED IDEOGRAPH +0x85DB 0x545F #CJK UNIFIED IDEOGRAPH +0x85DC 0x5460 #CJK UNIFIED IDEOGRAPH +0x85DD 0x5461 #CJK UNIFIED IDEOGRAPH +0x85DE 0x5463 #CJK UNIFIED IDEOGRAPH +0x85DF 0x5465 #CJK UNIFIED IDEOGRAPH +0x85E0 0x5467 #CJK UNIFIED IDEOGRAPH +0x85E1 0x5469 #CJK UNIFIED IDEOGRAPH +0x85E2 0x546A #CJK UNIFIED IDEOGRAPH +0x85E3 0x546B #CJK UNIFIED IDEOGRAPH +0x85E4 0x546C #CJK UNIFIED IDEOGRAPH +0x85E5 0x546D #CJK UNIFIED IDEOGRAPH +0x85E6 0x546E #CJK UNIFIED IDEOGRAPH +0x85E7 0x546F #CJK UNIFIED IDEOGRAPH +0x85E8 0x5470 #CJK UNIFIED IDEOGRAPH +0x85E9 0x5474 #CJK UNIFIED IDEOGRAPH +0x85EA 0x5479 #CJK UNIFIED IDEOGRAPH +0x85EB 0x547A #CJK UNIFIED IDEOGRAPH +0x85EC 0x547E #CJK UNIFIED IDEOGRAPH +0x85ED 0x547F #CJK UNIFIED IDEOGRAPH +0x85EE 0x5481 #CJK UNIFIED IDEOGRAPH +0x85EF 0x5483 #CJK UNIFIED IDEOGRAPH +0x85F0 0x5485 #CJK UNIFIED IDEOGRAPH +0x85F1 0x5487 #CJK UNIFIED IDEOGRAPH +0x85F2 0x5488 #CJK UNIFIED IDEOGRAPH +0x85F3 0x5489 #CJK UNIFIED IDEOGRAPH +0x85F4 0x548A #CJK UNIFIED IDEOGRAPH +0x85F5 0x548D #CJK UNIFIED IDEOGRAPH +0x85F6 0x5491 #CJK UNIFIED IDEOGRAPH +0x85F7 0x5493 #CJK UNIFIED IDEOGRAPH +0x85F8 0x5497 #CJK UNIFIED IDEOGRAPH +0x85F9 0x5498 #CJK UNIFIED IDEOGRAPH +0x85FA 0x549C #CJK UNIFIED IDEOGRAPH +0x85FB 0x549E #CJK UNIFIED IDEOGRAPH +0x85FC 0x549F #CJK UNIFIED IDEOGRAPH +0x85FD 0x54A0 #CJK UNIFIED IDEOGRAPH +0x85FE 0x54A1 #CJK UNIFIED IDEOGRAPH +0x8640 0x54A2 #CJK UNIFIED IDEOGRAPH +0x8641 0x54A5 #CJK UNIFIED IDEOGRAPH +0x8642 0x54AE #CJK UNIFIED IDEOGRAPH +0x8643 0x54B0 #CJK UNIFIED IDEOGRAPH +0x8644 0x54B2 #CJK UNIFIED IDEOGRAPH +0x8645 0x54B5 #CJK UNIFIED IDEOGRAPH +0x8646 0x54B6 #CJK UNIFIED IDEOGRAPH +0x8647 0x54B7 #CJK UNIFIED IDEOGRAPH +0x8648 0x54B9 #CJK UNIFIED IDEOGRAPH +0x8649 0x54BA #CJK UNIFIED IDEOGRAPH +0x864A 0x54BC #CJK UNIFIED IDEOGRAPH +0x864B 0x54BE #CJK UNIFIED IDEOGRAPH +0x864C 0x54C3 #CJK UNIFIED IDEOGRAPH +0x864D 0x54C5 #CJK UNIFIED IDEOGRAPH +0x864E 0x54CA #CJK UNIFIED IDEOGRAPH +0x864F 0x54CB #CJK UNIFIED IDEOGRAPH +0x8650 0x54D6 #CJK UNIFIED IDEOGRAPH +0x8651 0x54D8 #CJK UNIFIED IDEOGRAPH +0x8652 0x54DB #CJK UNIFIED IDEOGRAPH +0x8653 0x54E0 #CJK UNIFIED IDEOGRAPH +0x8654 0x54E1 #CJK UNIFIED IDEOGRAPH +0x8655 0x54E2 #CJK UNIFIED IDEOGRAPH +0x8656 0x54E3 #CJK UNIFIED IDEOGRAPH +0x8657 0x54E4 #CJK UNIFIED IDEOGRAPH +0x8658 0x54EB #CJK UNIFIED IDEOGRAPH +0x8659 0x54EC #CJK UNIFIED IDEOGRAPH +0x865A 0x54EF #CJK UNIFIED IDEOGRAPH +0x865B 0x54F0 #CJK UNIFIED IDEOGRAPH +0x865C 0x54F1 #CJK UNIFIED IDEOGRAPH +0x865D 0x54F4 #CJK UNIFIED IDEOGRAPH +0x865E 0x54F5 #CJK UNIFIED IDEOGRAPH +0x865F 0x54F6 #CJK UNIFIED IDEOGRAPH +0x8660 0x54F7 #CJK UNIFIED IDEOGRAPH +0x8661 0x54F8 #CJK UNIFIED IDEOGRAPH +0x8662 0x54F9 #CJK UNIFIED IDEOGRAPH +0x8663 0x54FB #CJK UNIFIED IDEOGRAPH +0x8664 0x54FE #CJK UNIFIED IDEOGRAPH +0x8665 0x5500 #CJK UNIFIED IDEOGRAPH +0x8666 0x5502 #CJK UNIFIED IDEOGRAPH +0x8667 0x5503 #CJK UNIFIED IDEOGRAPH +0x8668 0x5504 #CJK UNIFIED IDEOGRAPH +0x8669 0x5505 #CJK UNIFIED IDEOGRAPH +0x866A 0x5508 #CJK UNIFIED IDEOGRAPH +0x866B 0x550A #CJK UNIFIED IDEOGRAPH +0x866C 0x550B #CJK UNIFIED IDEOGRAPH +0x866D 0x550C #CJK UNIFIED IDEOGRAPH +0x866E 0x550D #CJK UNIFIED IDEOGRAPH +0x866F 0x550E #CJK UNIFIED IDEOGRAPH +0x8670 0x5512 #CJK UNIFIED IDEOGRAPH +0x8671 0x5513 #CJK UNIFIED IDEOGRAPH +0x8672 0x5515 #CJK UNIFIED IDEOGRAPH +0x8673 0x5516 #CJK UNIFIED IDEOGRAPH +0x8674 0x5517 #CJK UNIFIED IDEOGRAPH +0x8675 0x5518 #CJK UNIFIED IDEOGRAPH +0x8676 0x5519 #CJK UNIFIED IDEOGRAPH +0x8677 0x551A #CJK UNIFIED IDEOGRAPH +0x8678 0x551C #CJK UNIFIED IDEOGRAPH +0x8679 0x551D #CJK UNIFIED IDEOGRAPH +0x867A 0x551E #CJK UNIFIED IDEOGRAPH +0x867B 0x551F #CJK UNIFIED IDEOGRAPH +0x867C 0x5521 #CJK UNIFIED IDEOGRAPH +0x867D 0x5525 #CJK UNIFIED IDEOGRAPH +0x867E 0x5526 #CJK UNIFIED IDEOGRAPH +0x8680 0x5528 #CJK UNIFIED IDEOGRAPH +0x8681 0x5529 #CJK UNIFIED IDEOGRAPH +0x8682 0x552B #CJK UNIFIED IDEOGRAPH +0x8683 0x552D #CJK UNIFIED IDEOGRAPH +0x8684 0x5532 #CJK UNIFIED IDEOGRAPH +0x8685 0x5534 #CJK UNIFIED IDEOGRAPH +0x8686 0x5535 #CJK UNIFIED IDEOGRAPH +0x8687 0x5536 #CJK UNIFIED IDEOGRAPH +0x8688 0x5538 #CJK UNIFIED IDEOGRAPH +0x8689 0x5539 #CJK UNIFIED IDEOGRAPH +0x868A 0x553A #CJK UNIFIED IDEOGRAPH +0x868B 0x553B #CJK UNIFIED IDEOGRAPH +0x868C 0x553D #CJK UNIFIED IDEOGRAPH +0x868D 0x5540 #CJK UNIFIED IDEOGRAPH +0x868E 0x5542 #CJK UNIFIED IDEOGRAPH +0x868F 0x5545 #CJK UNIFIED IDEOGRAPH +0x8690 0x5547 #CJK UNIFIED IDEOGRAPH +0x8691 0x5548 #CJK UNIFIED IDEOGRAPH +0x8692 0x554B #CJK UNIFIED IDEOGRAPH +0x8693 0x554C #CJK UNIFIED IDEOGRAPH +0x8694 0x554D #CJK UNIFIED IDEOGRAPH +0x8695 0x554E #CJK UNIFIED IDEOGRAPH +0x8696 0x554F #CJK UNIFIED IDEOGRAPH +0x8697 0x5551 #CJK UNIFIED IDEOGRAPH +0x8698 0x5552 #CJK UNIFIED IDEOGRAPH +0x8699 0x5553 #CJK UNIFIED IDEOGRAPH +0x869A 0x5554 #CJK UNIFIED IDEOGRAPH +0x869B 0x5557 #CJK UNIFIED IDEOGRAPH +0x869C 0x5558 #CJK UNIFIED IDEOGRAPH +0x869D 0x5559 #CJK UNIFIED IDEOGRAPH +0x869E 0x555A #CJK UNIFIED IDEOGRAPH +0x869F 0x555B #CJK UNIFIED IDEOGRAPH +0x86A0 0x555D #CJK UNIFIED IDEOGRAPH +0x86A1 0x555E #CJK UNIFIED IDEOGRAPH +0x86A2 0x555F #CJK UNIFIED IDEOGRAPH +0x86A3 0x5560 #CJK UNIFIED IDEOGRAPH +0x86A4 0x5562 #CJK UNIFIED IDEOGRAPH +0x86A5 0x5563 #CJK UNIFIED IDEOGRAPH +0x86A6 0x5568 #CJK UNIFIED IDEOGRAPH +0x86A7 0x5569 #CJK UNIFIED IDEOGRAPH +0x86A8 0x556B #CJK UNIFIED IDEOGRAPH +0x86A9 0x556F #CJK UNIFIED IDEOGRAPH +0x86AA 0x5570 #CJK UNIFIED IDEOGRAPH +0x86AB 0x5571 #CJK UNIFIED IDEOGRAPH +0x86AC 0x5572 #CJK UNIFIED IDEOGRAPH +0x86AD 0x5573 #CJK UNIFIED IDEOGRAPH +0x86AE 0x5574 #CJK UNIFIED IDEOGRAPH +0x86AF 0x5579 #CJK UNIFIED IDEOGRAPH +0x86B0 0x557A #CJK UNIFIED IDEOGRAPH +0x86B1 0x557D #CJK UNIFIED IDEOGRAPH +0x86B2 0x557F #CJK UNIFIED IDEOGRAPH +0x86B3 0x5585 #CJK UNIFIED IDEOGRAPH +0x86B4 0x5586 #CJK UNIFIED IDEOGRAPH +0x86B5 0x558C #CJK UNIFIED IDEOGRAPH +0x86B6 0x558D #CJK UNIFIED IDEOGRAPH +0x86B7 0x558E #CJK UNIFIED IDEOGRAPH +0x86B8 0x5590 #CJK UNIFIED IDEOGRAPH +0x86B9 0x5592 #CJK UNIFIED IDEOGRAPH +0x86BA 0x5593 #CJK UNIFIED IDEOGRAPH +0x86BB 0x5595 #CJK UNIFIED IDEOGRAPH +0x86BC 0x5596 #CJK UNIFIED IDEOGRAPH +0x86BD 0x5597 #CJK UNIFIED IDEOGRAPH +0x86BE 0x559A #CJK UNIFIED IDEOGRAPH +0x86BF 0x559B #CJK UNIFIED IDEOGRAPH +0x86C0 0x559E #CJK UNIFIED IDEOGRAPH +0x86C1 0x55A0 #CJK UNIFIED IDEOGRAPH +0x86C2 0x55A1 #CJK UNIFIED IDEOGRAPH +0x86C3 0x55A2 #CJK UNIFIED IDEOGRAPH +0x86C4 0x55A3 #CJK UNIFIED IDEOGRAPH +0x86C5 0x55A4 #CJK UNIFIED IDEOGRAPH +0x86C6 0x55A5 #CJK UNIFIED IDEOGRAPH +0x86C7 0x55A6 #CJK UNIFIED IDEOGRAPH +0x86C8 0x55A8 #CJK UNIFIED IDEOGRAPH +0x86C9 0x55A9 #CJK UNIFIED IDEOGRAPH +0x86CA 0x55AA #CJK UNIFIED IDEOGRAPH +0x86CB 0x55AB #CJK UNIFIED IDEOGRAPH +0x86CC 0x55AC #CJK UNIFIED IDEOGRAPH +0x86CD 0x55AD #CJK UNIFIED IDEOGRAPH +0x86CE 0x55AE #CJK UNIFIED IDEOGRAPH +0x86CF 0x55AF #CJK UNIFIED IDEOGRAPH +0x86D0 0x55B0 #CJK UNIFIED IDEOGRAPH +0x86D1 0x55B2 #CJK UNIFIED IDEOGRAPH +0x86D2 0x55B4 #CJK UNIFIED IDEOGRAPH +0x86D3 0x55B6 #CJK UNIFIED IDEOGRAPH +0x86D4 0x55B8 #CJK UNIFIED IDEOGRAPH +0x86D5 0x55BA #CJK UNIFIED IDEOGRAPH +0x86D6 0x55BC #CJK UNIFIED IDEOGRAPH +0x86D7 0x55BF #CJK UNIFIED IDEOGRAPH +0x86D8 0x55C0 #CJK UNIFIED IDEOGRAPH +0x86D9 0x55C1 #CJK UNIFIED IDEOGRAPH +0x86DA 0x55C2 #CJK UNIFIED IDEOGRAPH +0x86DB 0x55C3 #CJK UNIFIED IDEOGRAPH +0x86DC 0x55C6 #CJK UNIFIED IDEOGRAPH +0x86DD 0x55C7 #CJK UNIFIED IDEOGRAPH +0x86DE 0x55C8 #CJK UNIFIED IDEOGRAPH +0x86DF 0x55CA #CJK UNIFIED IDEOGRAPH +0x86E0 0x55CB #CJK UNIFIED IDEOGRAPH +0x86E1 0x55CE #CJK UNIFIED IDEOGRAPH +0x86E2 0x55CF #CJK UNIFIED IDEOGRAPH +0x86E3 0x55D0 #CJK UNIFIED IDEOGRAPH +0x86E4 0x55D5 #CJK UNIFIED IDEOGRAPH +0x86E5 0x55D7 #CJK UNIFIED IDEOGRAPH +0x86E6 0x55D8 #CJK UNIFIED IDEOGRAPH +0x86E7 0x55D9 #CJK UNIFIED IDEOGRAPH +0x86E8 0x55DA #CJK UNIFIED IDEOGRAPH +0x86E9 0x55DB #CJK UNIFIED IDEOGRAPH +0x86EA 0x55DE #CJK UNIFIED IDEOGRAPH +0x86EB 0x55E0 #CJK UNIFIED IDEOGRAPH +0x86EC 0x55E2 #CJK UNIFIED IDEOGRAPH +0x86ED 0x55E7 #CJK UNIFIED IDEOGRAPH +0x86EE 0x55E9 #CJK UNIFIED IDEOGRAPH +0x86EF 0x55ED #CJK UNIFIED IDEOGRAPH +0x86F0 0x55EE #CJK UNIFIED IDEOGRAPH +0x86F1 0x55F0 #CJK UNIFIED IDEOGRAPH +0x86F2 0x55F1 #CJK UNIFIED IDEOGRAPH +0x86F3 0x55F4 #CJK UNIFIED IDEOGRAPH +0x86F4 0x55F6 #CJK UNIFIED IDEOGRAPH +0x86F5 0x55F8 #CJK UNIFIED IDEOGRAPH +0x86F6 0x55F9 #CJK UNIFIED IDEOGRAPH +0x86F7 0x55FA #CJK UNIFIED IDEOGRAPH +0x86F8 0x55FB #CJK UNIFIED IDEOGRAPH +0x86F9 0x55FC #CJK UNIFIED IDEOGRAPH +0x86FA 0x55FF #CJK UNIFIED IDEOGRAPH +0x86FB 0x5602 #CJK UNIFIED IDEOGRAPH +0x86FC 0x5603 #CJK UNIFIED IDEOGRAPH +0x86FD 0x5604 #CJK UNIFIED IDEOGRAPH +0x86FE 0x5605 #CJK UNIFIED IDEOGRAPH +0x8740 0x5606 #CJK UNIFIED IDEOGRAPH +0x8741 0x5607 #CJK UNIFIED IDEOGRAPH +0x8742 0x560A #CJK UNIFIED IDEOGRAPH +0x8743 0x560B #CJK UNIFIED IDEOGRAPH +0x8744 0x560D #CJK UNIFIED IDEOGRAPH +0x8745 0x5610 #CJK UNIFIED IDEOGRAPH +0x8746 0x5611 #CJK UNIFIED IDEOGRAPH +0x8747 0x5612 #CJK UNIFIED IDEOGRAPH +0x8748 0x5613 #CJK UNIFIED IDEOGRAPH +0x8749 0x5614 #CJK UNIFIED IDEOGRAPH +0x874A 0x5615 #CJK UNIFIED IDEOGRAPH +0x874B 0x5616 #CJK UNIFIED IDEOGRAPH +0x874C 0x5617 #CJK UNIFIED IDEOGRAPH +0x874D 0x5619 #CJK UNIFIED IDEOGRAPH +0x874E 0x561A #CJK UNIFIED IDEOGRAPH +0x874F 0x561C #CJK UNIFIED IDEOGRAPH +0x8750 0x561D #CJK UNIFIED IDEOGRAPH +0x8751 0x5620 #CJK UNIFIED IDEOGRAPH +0x8752 0x5621 #CJK UNIFIED IDEOGRAPH +0x8753 0x5622 #CJK UNIFIED IDEOGRAPH +0x8754 0x5625 #CJK UNIFIED IDEOGRAPH +0x8755 0x5626 #CJK UNIFIED IDEOGRAPH +0x8756 0x5628 #CJK UNIFIED IDEOGRAPH +0x8757 0x5629 #CJK UNIFIED IDEOGRAPH +0x8758 0x562A #CJK UNIFIED IDEOGRAPH +0x8759 0x562B #CJK UNIFIED IDEOGRAPH +0x875A 0x562E #CJK UNIFIED IDEOGRAPH +0x875B 0x562F #CJK UNIFIED IDEOGRAPH +0x875C 0x5630 #CJK UNIFIED IDEOGRAPH +0x875D 0x5633 #CJK UNIFIED IDEOGRAPH +0x875E 0x5635 #CJK UNIFIED IDEOGRAPH +0x875F 0x5637 #CJK UNIFIED IDEOGRAPH +0x8760 0x5638 #CJK UNIFIED IDEOGRAPH +0x8761 0x563A #CJK UNIFIED IDEOGRAPH +0x8762 0x563C #CJK UNIFIED IDEOGRAPH +0x8763 0x563D #CJK UNIFIED IDEOGRAPH +0x8764 0x563E #CJK UNIFIED IDEOGRAPH +0x8765 0x5640 #CJK UNIFIED IDEOGRAPH +0x8766 0x5641 #CJK UNIFIED IDEOGRAPH +0x8767 0x5642 #CJK UNIFIED IDEOGRAPH +0x8768 0x5643 #CJK UNIFIED IDEOGRAPH +0x8769 0x5644 #CJK UNIFIED IDEOGRAPH +0x876A 0x5645 #CJK UNIFIED IDEOGRAPH +0x876B 0x5646 #CJK UNIFIED IDEOGRAPH +0x876C 0x5647 #CJK UNIFIED IDEOGRAPH +0x876D 0x5648 #CJK UNIFIED IDEOGRAPH +0x876E 0x5649 #CJK UNIFIED IDEOGRAPH +0x876F 0x564A #CJK UNIFIED IDEOGRAPH +0x8770 0x564B #CJK UNIFIED IDEOGRAPH +0x8771 0x564F #CJK UNIFIED IDEOGRAPH +0x8772 0x5650 #CJK UNIFIED IDEOGRAPH +0x8773 0x5651 #CJK UNIFIED IDEOGRAPH +0x8774 0x5652 #CJK UNIFIED IDEOGRAPH +0x8775 0x5653 #CJK UNIFIED IDEOGRAPH +0x8776 0x5655 #CJK UNIFIED IDEOGRAPH +0x8777 0x5656 #CJK UNIFIED IDEOGRAPH +0x8778 0x565A #CJK UNIFIED IDEOGRAPH +0x8779 0x565B #CJK UNIFIED IDEOGRAPH +0x877A 0x565D #CJK UNIFIED IDEOGRAPH +0x877B 0x565E #CJK UNIFIED IDEOGRAPH +0x877C 0x565F #CJK UNIFIED IDEOGRAPH +0x877D 0x5660 #CJK UNIFIED IDEOGRAPH +0x877E 0x5661 #CJK UNIFIED IDEOGRAPH +0x8780 0x5663 #CJK UNIFIED IDEOGRAPH +0x8781 0x5665 #CJK UNIFIED IDEOGRAPH +0x8782 0x5666 #CJK UNIFIED IDEOGRAPH +0x8783 0x5667 #CJK UNIFIED IDEOGRAPH +0x8784 0x566D #CJK UNIFIED IDEOGRAPH +0x8785 0x566E #CJK UNIFIED IDEOGRAPH +0x8786 0x566F #CJK UNIFIED IDEOGRAPH +0x8787 0x5670 #CJK UNIFIED IDEOGRAPH +0x8788 0x5672 #CJK UNIFIED IDEOGRAPH +0x8789 0x5673 #CJK UNIFIED IDEOGRAPH +0x878A 0x5674 #CJK UNIFIED IDEOGRAPH +0x878B 0x5675 #CJK UNIFIED IDEOGRAPH +0x878C 0x5677 #CJK UNIFIED IDEOGRAPH +0x878D 0x5678 #CJK UNIFIED IDEOGRAPH +0x878E 0x5679 #CJK UNIFIED IDEOGRAPH +0x878F 0x567A #CJK UNIFIED IDEOGRAPH +0x8790 0x567D #CJK UNIFIED IDEOGRAPH +0x8791 0x567E #CJK UNIFIED IDEOGRAPH +0x8792 0x567F #CJK UNIFIED IDEOGRAPH +0x8793 0x5680 #CJK UNIFIED IDEOGRAPH +0x8794 0x5681 #CJK UNIFIED IDEOGRAPH +0x8795 0x5682 #CJK UNIFIED IDEOGRAPH +0x8796 0x5683 #CJK UNIFIED IDEOGRAPH +0x8797 0x5684 #CJK UNIFIED IDEOGRAPH +0x8798 0x5687 #CJK UNIFIED IDEOGRAPH +0x8799 0x5688 #CJK UNIFIED IDEOGRAPH +0x879A 0x5689 #CJK UNIFIED IDEOGRAPH +0x879B 0x568A #CJK UNIFIED IDEOGRAPH +0x879C 0x568B #CJK UNIFIED IDEOGRAPH +0x879D 0x568C #CJK UNIFIED IDEOGRAPH +0x879E 0x568D #CJK UNIFIED IDEOGRAPH +0x879F 0x5690 #CJK UNIFIED IDEOGRAPH +0x87A0 0x5691 #CJK UNIFIED IDEOGRAPH +0x87A1 0x5692 #CJK UNIFIED IDEOGRAPH +0x87A2 0x5694 #CJK UNIFIED IDEOGRAPH +0x87A3 0x5695 #CJK UNIFIED IDEOGRAPH +0x87A4 0x5696 #CJK UNIFIED IDEOGRAPH +0x87A5 0x5697 #CJK UNIFIED IDEOGRAPH +0x87A6 0x5698 #CJK UNIFIED IDEOGRAPH +0x87A7 0x5699 #CJK UNIFIED IDEOGRAPH +0x87A8 0x569A #CJK UNIFIED IDEOGRAPH +0x87A9 0x569B #CJK UNIFIED IDEOGRAPH +0x87AA 0x569C #CJK UNIFIED IDEOGRAPH +0x87AB 0x569D #CJK UNIFIED IDEOGRAPH +0x87AC 0x569E #CJK UNIFIED IDEOGRAPH +0x87AD 0x569F #CJK UNIFIED IDEOGRAPH +0x87AE 0x56A0 #CJK UNIFIED IDEOGRAPH +0x87AF 0x56A1 #CJK UNIFIED IDEOGRAPH +0x87B0 0x56A2 #CJK UNIFIED IDEOGRAPH +0x87B1 0x56A4 #CJK UNIFIED IDEOGRAPH +0x87B2 0x56A5 #CJK UNIFIED IDEOGRAPH +0x87B3 0x56A6 #CJK UNIFIED IDEOGRAPH +0x87B4 0x56A7 #CJK UNIFIED IDEOGRAPH +0x87B5 0x56A8 #CJK UNIFIED IDEOGRAPH +0x87B6 0x56A9 #CJK UNIFIED IDEOGRAPH +0x87B7 0x56AA #CJK UNIFIED IDEOGRAPH +0x87B8 0x56AB #CJK UNIFIED IDEOGRAPH +0x87B9 0x56AC #CJK UNIFIED IDEOGRAPH +0x87BA 0x56AD #CJK UNIFIED IDEOGRAPH +0x87BB 0x56AE #CJK UNIFIED IDEOGRAPH +0x87BC 0x56B0 #CJK UNIFIED IDEOGRAPH +0x87BD 0x56B1 #CJK UNIFIED IDEOGRAPH +0x87BE 0x56B2 #CJK UNIFIED IDEOGRAPH +0x87BF 0x56B3 #CJK UNIFIED IDEOGRAPH +0x87C0 0x56B4 #CJK UNIFIED IDEOGRAPH +0x87C1 0x56B5 #CJK UNIFIED IDEOGRAPH +0x87C2 0x56B6 #CJK UNIFIED IDEOGRAPH +0x87C3 0x56B8 #CJK UNIFIED IDEOGRAPH +0x87C4 0x56B9 #CJK UNIFIED IDEOGRAPH +0x87C5 0x56BA #CJK UNIFIED IDEOGRAPH +0x87C6 0x56BB #CJK UNIFIED IDEOGRAPH +0x87C7 0x56BD #CJK UNIFIED IDEOGRAPH +0x87C8 0x56BE #CJK UNIFIED IDEOGRAPH +0x87C9 0x56BF #CJK UNIFIED IDEOGRAPH +0x87CA 0x56C0 #CJK UNIFIED IDEOGRAPH +0x87CB 0x56C1 #CJK UNIFIED IDEOGRAPH +0x87CC 0x56C2 #CJK UNIFIED IDEOGRAPH +0x87CD 0x56C3 #CJK UNIFIED IDEOGRAPH +0x87CE 0x56C4 #CJK UNIFIED IDEOGRAPH +0x87CF 0x56C5 #CJK UNIFIED IDEOGRAPH +0x87D0 0x56C6 #CJK UNIFIED IDEOGRAPH +0x87D1 0x56C7 #CJK UNIFIED IDEOGRAPH +0x87D2 0x56C8 #CJK UNIFIED IDEOGRAPH +0x87D3 0x56C9 #CJK UNIFIED IDEOGRAPH +0x87D4 0x56CB #CJK UNIFIED IDEOGRAPH +0x87D5 0x56CC #CJK UNIFIED IDEOGRAPH +0x87D6 0x56CD #CJK UNIFIED IDEOGRAPH +0x87D7 0x56CE #CJK UNIFIED IDEOGRAPH +0x87D8 0x56CF #CJK UNIFIED IDEOGRAPH +0x87D9 0x56D0 #CJK UNIFIED IDEOGRAPH +0x87DA 0x56D1 #CJK UNIFIED IDEOGRAPH +0x87DB 0x56D2 #CJK UNIFIED IDEOGRAPH +0x87DC 0x56D3 #CJK UNIFIED IDEOGRAPH +0x87DD 0x56D5 #CJK UNIFIED IDEOGRAPH +0x87DE 0x56D6 #CJK UNIFIED IDEOGRAPH +0x87DF 0x56D8 #CJK UNIFIED IDEOGRAPH +0x87E0 0x56D9 #CJK UNIFIED IDEOGRAPH +0x87E1 0x56DC #CJK UNIFIED IDEOGRAPH +0x87E2 0x56E3 #CJK UNIFIED IDEOGRAPH +0x87E3 0x56E5 #CJK UNIFIED IDEOGRAPH +0x87E4 0x56E6 #CJK UNIFIED IDEOGRAPH +0x87E5 0x56E7 #CJK UNIFIED IDEOGRAPH +0x87E6 0x56E8 #CJK UNIFIED IDEOGRAPH +0x87E7 0x56E9 #CJK UNIFIED IDEOGRAPH +0x87E8 0x56EA #CJK UNIFIED IDEOGRAPH +0x87E9 0x56EC #CJK UNIFIED IDEOGRAPH +0x87EA 0x56EE #CJK UNIFIED IDEOGRAPH +0x87EB 0x56EF #CJK UNIFIED IDEOGRAPH +0x87EC 0x56F2 #CJK UNIFIED IDEOGRAPH +0x87ED 0x56F3 #CJK UNIFIED IDEOGRAPH +0x87EE 0x56F6 #CJK UNIFIED IDEOGRAPH +0x87EF 0x56F7 #CJK UNIFIED IDEOGRAPH +0x87F0 0x56F8 #CJK UNIFIED IDEOGRAPH +0x87F1 0x56FB #CJK UNIFIED IDEOGRAPH +0x87F2 0x56FC #CJK UNIFIED IDEOGRAPH +0x87F3 0x5700 #CJK UNIFIED IDEOGRAPH +0x87F4 0x5701 #CJK UNIFIED IDEOGRAPH +0x87F5 0x5702 #CJK UNIFIED IDEOGRAPH +0x87F6 0x5705 #CJK UNIFIED IDEOGRAPH +0x87F7 0x5707 #CJK UNIFIED IDEOGRAPH +0x87F8 0x570B #CJK UNIFIED IDEOGRAPH +0x87F9 0x570C #CJK UNIFIED IDEOGRAPH +0x87FA 0x570D #CJK UNIFIED IDEOGRAPH +0x87FB 0x570E #CJK UNIFIED IDEOGRAPH +0x87FC 0x570F #CJK UNIFIED IDEOGRAPH +0x87FD 0x5710 #CJK UNIFIED IDEOGRAPH +0x87FE 0x5711 #CJK UNIFIED IDEOGRAPH +0x8840 0x5712 #CJK UNIFIED IDEOGRAPH +0x8841 0x5713 #CJK UNIFIED IDEOGRAPH +0x8842 0x5714 #CJK UNIFIED IDEOGRAPH +0x8843 0x5715 #CJK UNIFIED IDEOGRAPH +0x8844 0x5716 #CJK UNIFIED IDEOGRAPH +0x8845 0x5717 #CJK UNIFIED IDEOGRAPH +0x8846 0x5718 #CJK UNIFIED IDEOGRAPH +0x8847 0x5719 #CJK UNIFIED IDEOGRAPH +0x8848 0x571A #CJK UNIFIED IDEOGRAPH +0x8849 0x571B #CJK UNIFIED IDEOGRAPH +0x884A 0x571D #CJK UNIFIED IDEOGRAPH +0x884B 0x571E #CJK UNIFIED IDEOGRAPH +0x884C 0x5720 #CJK UNIFIED IDEOGRAPH +0x884D 0x5721 #CJK UNIFIED IDEOGRAPH +0x884E 0x5722 #CJK UNIFIED IDEOGRAPH +0x884F 0x5724 #CJK UNIFIED IDEOGRAPH +0x8850 0x5725 #CJK UNIFIED IDEOGRAPH +0x8851 0x5726 #CJK UNIFIED IDEOGRAPH +0x8852 0x5727 #CJK UNIFIED IDEOGRAPH +0x8853 0x572B #CJK UNIFIED IDEOGRAPH +0x8854 0x5731 #CJK UNIFIED IDEOGRAPH +0x8855 0x5732 #CJK UNIFIED IDEOGRAPH +0x8856 0x5734 #CJK UNIFIED IDEOGRAPH +0x8857 0x5735 #CJK UNIFIED IDEOGRAPH +0x8858 0x5736 #CJK UNIFIED IDEOGRAPH +0x8859 0x5737 #CJK UNIFIED IDEOGRAPH +0x885A 0x5738 #CJK UNIFIED IDEOGRAPH +0x885B 0x573C #CJK UNIFIED IDEOGRAPH +0x885C 0x573D #CJK UNIFIED IDEOGRAPH +0x885D 0x573F #CJK UNIFIED IDEOGRAPH +0x885E 0x5741 #CJK UNIFIED IDEOGRAPH +0x885F 0x5743 #CJK UNIFIED IDEOGRAPH +0x8860 0x5744 #CJK UNIFIED IDEOGRAPH +0x8861 0x5745 #CJK UNIFIED IDEOGRAPH +0x8862 0x5746 #CJK UNIFIED IDEOGRAPH +0x8863 0x5748 #CJK UNIFIED IDEOGRAPH +0x8864 0x5749 #CJK UNIFIED IDEOGRAPH +0x8865 0x574B #CJK UNIFIED IDEOGRAPH +0x8866 0x5752 #CJK UNIFIED IDEOGRAPH +0x8867 0x5753 #CJK UNIFIED IDEOGRAPH +0x8868 0x5754 #CJK UNIFIED IDEOGRAPH +0x8869 0x5755 #CJK UNIFIED IDEOGRAPH +0x886A 0x5756 #CJK UNIFIED IDEOGRAPH +0x886B 0x5758 #CJK UNIFIED IDEOGRAPH +0x886C 0x5759 #CJK UNIFIED IDEOGRAPH +0x886D 0x5762 #CJK UNIFIED IDEOGRAPH +0x886E 0x5763 #CJK UNIFIED IDEOGRAPH +0x886F 0x5765 #CJK UNIFIED IDEOGRAPH +0x8870 0x5767 #CJK UNIFIED IDEOGRAPH +0x8871 0x576C #CJK UNIFIED IDEOGRAPH +0x8872 0x576E #CJK UNIFIED IDEOGRAPH +0x8873 0x5770 #CJK UNIFIED IDEOGRAPH +0x8874 0x5771 #CJK UNIFIED IDEOGRAPH +0x8875 0x5772 #CJK UNIFIED IDEOGRAPH +0x8876 0x5774 #CJK UNIFIED IDEOGRAPH +0x8877 0x5775 #CJK UNIFIED IDEOGRAPH +0x8878 0x5778 #CJK UNIFIED IDEOGRAPH +0x8879 0x5779 #CJK UNIFIED IDEOGRAPH +0x887A 0x577A #CJK UNIFIED IDEOGRAPH +0x887B 0x577D #CJK UNIFIED IDEOGRAPH +0x887C 0x577E #CJK UNIFIED IDEOGRAPH +0x887D 0x577F #CJK UNIFIED IDEOGRAPH +0x887E 0x5780 #CJK UNIFIED IDEOGRAPH +0x8880 0x5781 #CJK UNIFIED IDEOGRAPH +0x8881 0x5787 #CJK UNIFIED IDEOGRAPH +0x8882 0x5788 #CJK UNIFIED IDEOGRAPH +0x8883 0x5789 #CJK UNIFIED IDEOGRAPH +0x8884 0x578A #CJK UNIFIED IDEOGRAPH +0x8885 0x578D #CJK UNIFIED IDEOGRAPH +0x8886 0x578E #CJK UNIFIED IDEOGRAPH +0x8887 0x578F #CJK UNIFIED IDEOGRAPH +0x8888 0x5790 #CJK UNIFIED IDEOGRAPH +0x8889 0x5791 #CJK UNIFIED IDEOGRAPH +0x888A 0x5794 #CJK UNIFIED IDEOGRAPH +0x888B 0x5795 #CJK UNIFIED IDEOGRAPH +0x888C 0x5796 #CJK UNIFIED IDEOGRAPH +0x888D 0x5797 #CJK UNIFIED IDEOGRAPH +0x888E 0x5798 #CJK UNIFIED IDEOGRAPH +0x888F 0x5799 #CJK UNIFIED IDEOGRAPH +0x8890 0x579A #CJK UNIFIED IDEOGRAPH +0x8891 0x579C #CJK UNIFIED IDEOGRAPH +0x8892 0x579D #CJK UNIFIED IDEOGRAPH +0x8893 0x579E #CJK UNIFIED IDEOGRAPH +0x8894 0x579F #CJK UNIFIED IDEOGRAPH +0x8895 0x57A5 #CJK UNIFIED IDEOGRAPH +0x8896 0x57A8 #CJK UNIFIED IDEOGRAPH +0x8897 0x57AA #CJK UNIFIED IDEOGRAPH +0x8898 0x57AC #CJK UNIFIED IDEOGRAPH +0x8899 0x57AF #CJK UNIFIED IDEOGRAPH +0x889A 0x57B0 #CJK UNIFIED IDEOGRAPH +0x889B 0x57B1 #CJK UNIFIED IDEOGRAPH +0x889C 0x57B3 #CJK UNIFIED IDEOGRAPH +0x889D 0x57B5 #CJK UNIFIED IDEOGRAPH +0x889E 0x57B6 #CJK UNIFIED IDEOGRAPH +0x889F 0x57B7 #CJK UNIFIED IDEOGRAPH +0x88A0 0x57B9 #CJK UNIFIED IDEOGRAPH +0x88A1 0x57BA #CJK UNIFIED IDEOGRAPH +0x88A2 0x57BB #CJK UNIFIED IDEOGRAPH +0x88A3 0x57BC #CJK UNIFIED IDEOGRAPH +0x88A4 0x57BD #CJK UNIFIED IDEOGRAPH +0x88A5 0x57BE #CJK UNIFIED IDEOGRAPH +0x88A6 0x57BF #CJK UNIFIED IDEOGRAPH +0x88A7 0x57C0 #CJK UNIFIED IDEOGRAPH +0x88A8 0x57C1 #CJK UNIFIED IDEOGRAPH +0x88A9 0x57C4 #CJK UNIFIED IDEOGRAPH +0x88AA 0x57C5 #CJK UNIFIED IDEOGRAPH +0x88AB 0x57C6 #CJK UNIFIED IDEOGRAPH +0x88AC 0x57C7 #CJK UNIFIED IDEOGRAPH +0x88AD 0x57C8 #CJK UNIFIED IDEOGRAPH +0x88AE 0x57C9 #CJK UNIFIED IDEOGRAPH +0x88AF 0x57CA #CJK UNIFIED IDEOGRAPH +0x88B0 0x57CC #CJK UNIFIED IDEOGRAPH +0x88B1 0x57CD #CJK UNIFIED IDEOGRAPH +0x88B2 0x57D0 #CJK UNIFIED IDEOGRAPH +0x88B3 0x57D1 #CJK UNIFIED IDEOGRAPH +0x88B4 0x57D3 #CJK UNIFIED IDEOGRAPH +0x88B5 0x57D6 #CJK UNIFIED IDEOGRAPH +0x88B6 0x57D7 #CJK UNIFIED IDEOGRAPH +0x88B7 0x57DB #CJK UNIFIED IDEOGRAPH +0x88B8 0x57DC #CJK UNIFIED IDEOGRAPH +0x88B9 0x57DE #CJK UNIFIED IDEOGRAPH +0x88BA 0x57E1 #CJK UNIFIED IDEOGRAPH +0x88BB 0x57E2 #CJK UNIFIED IDEOGRAPH +0x88BC 0x57E3 #CJK UNIFIED IDEOGRAPH +0x88BD 0x57E5 #CJK UNIFIED IDEOGRAPH +0x88BE 0x57E6 #CJK UNIFIED IDEOGRAPH +0x88BF 0x57E7 #CJK UNIFIED IDEOGRAPH +0x88C0 0x57E8 #CJK UNIFIED IDEOGRAPH +0x88C1 0x57E9 #CJK UNIFIED IDEOGRAPH +0x88C2 0x57EA #CJK UNIFIED IDEOGRAPH +0x88C3 0x57EB #CJK UNIFIED IDEOGRAPH +0x88C4 0x57EC #CJK UNIFIED IDEOGRAPH +0x88C5 0x57EE #CJK UNIFIED IDEOGRAPH +0x88C6 0x57F0 #CJK UNIFIED IDEOGRAPH +0x88C7 0x57F1 #CJK UNIFIED IDEOGRAPH +0x88C8 0x57F2 #CJK UNIFIED IDEOGRAPH +0x88C9 0x57F3 #CJK UNIFIED IDEOGRAPH +0x88CA 0x57F5 #CJK UNIFIED IDEOGRAPH +0x88CB 0x57F6 #CJK UNIFIED IDEOGRAPH +0x88CC 0x57F7 #CJK UNIFIED IDEOGRAPH +0x88CD 0x57FB #CJK UNIFIED IDEOGRAPH +0x88CE 0x57FC #CJK UNIFIED IDEOGRAPH +0x88CF 0x57FE #CJK UNIFIED IDEOGRAPH +0x88D0 0x57FF #CJK UNIFIED IDEOGRAPH +0x88D1 0x5801 #CJK UNIFIED IDEOGRAPH +0x88D2 0x5803 #CJK UNIFIED IDEOGRAPH +0x88D3 0x5804 #CJK UNIFIED IDEOGRAPH +0x88D4 0x5805 #CJK UNIFIED IDEOGRAPH +0x88D5 0x5808 #CJK UNIFIED IDEOGRAPH +0x88D6 0x5809 #CJK UNIFIED IDEOGRAPH +0x88D7 0x580A #CJK UNIFIED IDEOGRAPH +0x88D8 0x580C #CJK UNIFIED IDEOGRAPH +0x88D9 0x580E #CJK UNIFIED IDEOGRAPH +0x88DA 0x580F #CJK UNIFIED IDEOGRAPH +0x88DB 0x5810 #CJK UNIFIED IDEOGRAPH +0x88DC 0x5812 #CJK UNIFIED IDEOGRAPH +0x88DD 0x5813 #CJK UNIFIED IDEOGRAPH +0x88DE 0x5814 #CJK UNIFIED IDEOGRAPH +0x88DF 0x5816 #CJK UNIFIED IDEOGRAPH +0x88E0 0x5817 #CJK UNIFIED IDEOGRAPH +0x88E1 0x5818 #CJK UNIFIED IDEOGRAPH +0x88E2 0x581A #CJK UNIFIED IDEOGRAPH +0x88E3 0x581B #CJK UNIFIED IDEOGRAPH +0x88E4 0x581C #CJK UNIFIED IDEOGRAPH +0x88E5 0x581D #CJK UNIFIED IDEOGRAPH +0x88E6 0x581F #CJK UNIFIED IDEOGRAPH +0x88E7 0x5822 #CJK UNIFIED IDEOGRAPH +0x88E8 0x5823 #CJK UNIFIED IDEOGRAPH +0x88E9 0x5825 #CJK UNIFIED IDEOGRAPH +0x88EA 0x5826 #CJK UNIFIED IDEOGRAPH +0x88EB 0x5827 #CJK UNIFIED IDEOGRAPH +0x88EC 0x5828 #CJK UNIFIED IDEOGRAPH +0x88ED 0x5829 #CJK UNIFIED IDEOGRAPH +0x88EE 0x582B #CJK UNIFIED IDEOGRAPH +0x88EF 0x582C #CJK UNIFIED IDEOGRAPH +0x88F0 0x582D #CJK UNIFIED IDEOGRAPH +0x88F1 0x582E #CJK UNIFIED IDEOGRAPH +0x88F2 0x582F #CJK UNIFIED IDEOGRAPH +0x88F3 0x5831 #CJK UNIFIED IDEOGRAPH +0x88F4 0x5832 #CJK UNIFIED IDEOGRAPH +0x88F5 0x5833 #CJK UNIFIED IDEOGRAPH +0x88F6 0x5834 #CJK UNIFIED IDEOGRAPH +0x88F7 0x5836 #CJK UNIFIED IDEOGRAPH +0x88F8 0x5837 #CJK UNIFIED IDEOGRAPH +0x88F9 0x5838 #CJK UNIFIED IDEOGRAPH +0x88FA 0x5839 #CJK UNIFIED IDEOGRAPH +0x88FB 0x583A #CJK UNIFIED IDEOGRAPH +0x88FC 0x583B #CJK UNIFIED IDEOGRAPH +0x88FD 0x583C #CJK UNIFIED IDEOGRAPH +0x88FE 0x583D #CJK UNIFIED IDEOGRAPH +0x8940 0x583E #CJK UNIFIED IDEOGRAPH +0x8941 0x583F #CJK UNIFIED IDEOGRAPH +0x8942 0x5840 #CJK UNIFIED IDEOGRAPH +0x8943 0x5841 #CJK UNIFIED IDEOGRAPH +0x8944 0x5842 #CJK UNIFIED IDEOGRAPH +0x8945 0x5843 #CJK UNIFIED IDEOGRAPH +0x8946 0x5845 #CJK UNIFIED IDEOGRAPH +0x8947 0x5846 #CJK UNIFIED IDEOGRAPH +0x8948 0x5847 #CJK UNIFIED IDEOGRAPH +0x8949 0x5848 #CJK UNIFIED IDEOGRAPH +0x894A 0x5849 #CJK UNIFIED IDEOGRAPH +0x894B 0x584A #CJK UNIFIED IDEOGRAPH +0x894C 0x584B #CJK UNIFIED IDEOGRAPH +0x894D 0x584E #CJK UNIFIED IDEOGRAPH +0x894E 0x584F #CJK UNIFIED IDEOGRAPH +0x894F 0x5850 #CJK UNIFIED IDEOGRAPH +0x8950 0x5852 #CJK UNIFIED IDEOGRAPH +0x8951 0x5853 #CJK UNIFIED IDEOGRAPH +0x8952 0x5855 #CJK UNIFIED IDEOGRAPH +0x8953 0x5856 #CJK UNIFIED IDEOGRAPH +0x8954 0x5857 #CJK UNIFIED IDEOGRAPH +0x8955 0x5859 #CJK UNIFIED IDEOGRAPH +0x8956 0x585A #CJK UNIFIED IDEOGRAPH +0x8957 0x585B #CJK UNIFIED IDEOGRAPH +0x8958 0x585C #CJK UNIFIED IDEOGRAPH +0x8959 0x585D #CJK UNIFIED IDEOGRAPH +0x895A 0x585F #CJK UNIFIED IDEOGRAPH +0x895B 0x5860 #CJK UNIFIED IDEOGRAPH +0x895C 0x5861 #CJK UNIFIED IDEOGRAPH +0x895D 0x5862 #CJK UNIFIED IDEOGRAPH +0x895E 0x5863 #CJK UNIFIED IDEOGRAPH +0x895F 0x5864 #CJK UNIFIED IDEOGRAPH +0x8960 0x5866 #CJK UNIFIED IDEOGRAPH +0x8961 0x5867 #CJK UNIFIED IDEOGRAPH +0x8962 0x5868 #CJK UNIFIED IDEOGRAPH +0x8963 0x5869 #CJK UNIFIED IDEOGRAPH +0x8964 0x586A #CJK UNIFIED IDEOGRAPH +0x8965 0x586D #CJK UNIFIED IDEOGRAPH +0x8966 0x586E #CJK UNIFIED IDEOGRAPH +0x8967 0x586F #CJK UNIFIED IDEOGRAPH +0x8968 0x5870 #CJK UNIFIED IDEOGRAPH +0x8969 0x5871 #CJK UNIFIED IDEOGRAPH +0x896A 0x5872 #CJK UNIFIED IDEOGRAPH +0x896B 0x5873 #CJK UNIFIED IDEOGRAPH +0x896C 0x5874 #CJK UNIFIED IDEOGRAPH +0x896D 0x5875 #CJK UNIFIED IDEOGRAPH +0x896E 0x5876 #CJK UNIFIED IDEOGRAPH +0x896F 0x5877 #CJK UNIFIED IDEOGRAPH +0x8970 0x5878 #CJK UNIFIED IDEOGRAPH +0x8971 0x5879 #CJK UNIFIED IDEOGRAPH +0x8972 0x587A #CJK UNIFIED IDEOGRAPH +0x8973 0x587B #CJK UNIFIED IDEOGRAPH +0x8974 0x587C #CJK UNIFIED IDEOGRAPH +0x8975 0x587D #CJK UNIFIED IDEOGRAPH +0x8976 0x587F #CJK UNIFIED IDEOGRAPH +0x8977 0x5882 #CJK UNIFIED IDEOGRAPH +0x8978 0x5884 #CJK UNIFIED IDEOGRAPH +0x8979 0x5886 #CJK UNIFIED IDEOGRAPH +0x897A 0x5887 #CJK UNIFIED IDEOGRAPH +0x897B 0x5888 #CJK UNIFIED IDEOGRAPH +0x897C 0x588A #CJK UNIFIED IDEOGRAPH +0x897D 0x588B #CJK UNIFIED IDEOGRAPH +0x897E 0x588C #CJK UNIFIED IDEOGRAPH +0x8980 0x588D #CJK UNIFIED IDEOGRAPH +0x8981 0x588E #CJK UNIFIED IDEOGRAPH +0x8982 0x588F #CJK UNIFIED IDEOGRAPH +0x8983 0x5890 #CJK UNIFIED IDEOGRAPH +0x8984 0x5891 #CJK UNIFIED IDEOGRAPH +0x8985 0x5894 #CJK UNIFIED IDEOGRAPH +0x8986 0x5895 #CJK UNIFIED IDEOGRAPH +0x8987 0x5896 #CJK UNIFIED IDEOGRAPH +0x8988 0x5897 #CJK UNIFIED IDEOGRAPH +0x8989 0x5898 #CJK UNIFIED IDEOGRAPH +0x898A 0x589B #CJK UNIFIED IDEOGRAPH +0x898B 0x589C #CJK UNIFIED IDEOGRAPH +0x898C 0x589D #CJK UNIFIED IDEOGRAPH +0x898D 0x58A0 #CJK UNIFIED IDEOGRAPH +0x898E 0x58A1 #CJK UNIFIED IDEOGRAPH +0x898F 0x58A2 #CJK UNIFIED IDEOGRAPH +0x8990 0x58A3 #CJK UNIFIED IDEOGRAPH +0x8991 0x58A4 #CJK UNIFIED IDEOGRAPH +0x8992 0x58A5 #CJK UNIFIED IDEOGRAPH +0x8993 0x58A6 #CJK UNIFIED IDEOGRAPH +0x8994 0x58A7 #CJK UNIFIED IDEOGRAPH +0x8995 0x58AA #CJK UNIFIED IDEOGRAPH +0x8996 0x58AB #CJK UNIFIED IDEOGRAPH +0x8997 0x58AC #CJK UNIFIED IDEOGRAPH +0x8998 0x58AD #CJK UNIFIED IDEOGRAPH +0x8999 0x58AE #CJK UNIFIED IDEOGRAPH +0x899A 0x58AF #CJK UNIFIED IDEOGRAPH +0x899B 0x58B0 #CJK UNIFIED IDEOGRAPH +0x899C 0x58B1 #CJK UNIFIED IDEOGRAPH +0x899D 0x58B2 #CJK UNIFIED IDEOGRAPH +0x899E 0x58B3 #CJK UNIFIED IDEOGRAPH +0x899F 0x58B4 #CJK UNIFIED IDEOGRAPH +0x89A0 0x58B5 #CJK UNIFIED IDEOGRAPH +0x89A1 0x58B6 #CJK UNIFIED IDEOGRAPH +0x89A2 0x58B7 #CJK UNIFIED IDEOGRAPH +0x89A3 0x58B8 #CJK UNIFIED IDEOGRAPH +0x89A4 0x58B9 #CJK UNIFIED IDEOGRAPH +0x89A5 0x58BA #CJK UNIFIED IDEOGRAPH +0x89A6 0x58BB #CJK UNIFIED IDEOGRAPH +0x89A7 0x58BD #CJK UNIFIED IDEOGRAPH +0x89A8 0x58BE #CJK UNIFIED IDEOGRAPH +0x89A9 0x58BF #CJK UNIFIED IDEOGRAPH +0x89AA 0x58C0 #CJK UNIFIED IDEOGRAPH +0x89AB 0x58C2 #CJK UNIFIED IDEOGRAPH +0x89AC 0x58C3 #CJK UNIFIED IDEOGRAPH +0x89AD 0x58C4 #CJK UNIFIED IDEOGRAPH +0x89AE 0x58C6 #CJK UNIFIED IDEOGRAPH +0x89AF 0x58C7 #CJK UNIFIED IDEOGRAPH +0x89B0 0x58C8 #CJK UNIFIED IDEOGRAPH +0x89B1 0x58C9 #CJK UNIFIED IDEOGRAPH +0x89B2 0x58CA #CJK UNIFIED IDEOGRAPH +0x89B3 0x58CB #CJK UNIFIED IDEOGRAPH +0x89B4 0x58CC #CJK UNIFIED IDEOGRAPH +0x89B5 0x58CD #CJK UNIFIED IDEOGRAPH +0x89B6 0x58CE #CJK UNIFIED IDEOGRAPH +0x89B7 0x58CF #CJK UNIFIED IDEOGRAPH +0x89B8 0x58D0 #CJK UNIFIED IDEOGRAPH +0x89B9 0x58D2 #CJK UNIFIED IDEOGRAPH +0x89BA 0x58D3 #CJK UNIFIED IDEOGRAPH +0x89BB 0x58D4 #CJK UNIFIED IDEOGRAPH +0x89BC 0x58D6 #CJK UNIFIED IDEOGRAPH +0x89BD 0x58D7 #CJK UNIFIED IDEOGRAPH +0x89BE 0x58D8 #CJK UNIFIED IDEOGRAPH +0x89BF 0x58D9 #CJK UNIFIED IDEOGRAPH +0x89C0 0x58DA #CJK UNIFIED IDEOGRAPH +0x89C1 0x58DB #CJK UNIFIED IDEOGRAPH +0x89C2 0x58DC #CJK UNIFIED IDEOGRAPH +0x89C3 0x58DD #CJK UNIFIED IDEOGRAPH +0x89C4 0x58DE #CJK UNIFIED IDEOGRAPH +0x89C5 0x58DF #CJK UNIFIED IDEOGRAPH +0x89C6 0x58E0 #CJK UNIFIED IDEOGRAPH +0x89C7 0x58E1 #CJK UNIFIED IDEOGRAPH +0x89C8 0x58E2 #CJK UNIFIED IDEOGRAPH +0x89C9 0x58E3 #CJK UNIFIED IDEOGRAPH +0x89CA 0x58E5 #CJK UNIFIED IDEOGRAPH +0x89CB 0x58E6 #CJK UNIFIED IDEOGRAPH +0x89CC 0x58E7 #CJK UNIFIED IDEOGRAPH +0x89CD 0x58E8 #CJK UNIFIED IDEOGRAPH +0x89CE 0x58E9 #CJK UNIFIED IDEOGRAPH +0x89CF 0x58EA #CJK UNIFIED IDEOGRAPH +0x89D0 0x58ED #CJK UNIFIED IDEOGRAPH +0x89D1 0x58EF #CJK UNIFIED IDEOGRAPH +0x89D2 0x58F1 #CJK UNIFIED IDEOGRAPH +0x89D3 0x58F2 #CJK UNIFIED IDEOGRAPH +0x89D4 0x58F4 #CJK UNIFIED IDEOGRAPH +0x89D5 0x58F5 #CJK UNIFIED IDEOGRAPH +0x89D6 0x58F7 #CJK UNIFIED IDEOGRAPH +0x89D7 0x58F8 #CJK UNIFIED IDEOGRAPH +0x89D8 0x58FA #CJK UNIFIED IDEOGRAPH +0x89D9 0x58FB #CJK UNIFIED IDEOGRAPH +0x89DA 0x58FC #CJK UNIFIED IDEOGRAPH +0x89DB 0x58FD #CJK UNIFIED IDEOGRAPH +0x89DC 0x58FE #CJK UNIFIED IDEOGRAPH +0x89DD 0x58FF #CJK UNIFIED IDEOGRAPH +0x89DE 0x5900 #CJK UNIFIED IDEOGRAPH +0x89DF 0x5901 #CJK UNIFIED IDEOGRAPH +0x89E0 0x5903 #CJK UNIFIED IDEOGRAPH +0x89E1 0x5905 #CJK UNIFIED IDEOGRAPH +0x89E2 0x5906 #CJK UNIFIED IDEOGRAPH +0x89E3 0x5908 #CJK UNIFIED IDEOGRAPH +0x89E4 0x5909 #CJK UNIFIED IDEOGRAPH +0x89E5 0x590A #CJK UNIFIED IDEOGRAPH +0x89E6 0x590B #CJK UNIFIED IDEOGRAPH +0x89E7 0x590C #CJK UNIFIED IDEOGRAPH +0x89E8 0x590E #CJK UNIFIED IDEOGRAPH +0x89E9 0x5910 #CJK UNIFIED IDEOGRAPH +0x89EA 0x5911 #CJK UNIFIED IDEOGRAPH +0x89EB 0x5912 #CJK UNIFIED IDEOGRAPH +0x89EC 0x5913 #CJK UNIFIED IDEOGRAPH +0x89ED 0x5917 #CJK UNIFIED IDEOGRAPH +0x89EE 0x5918 #CJK UNIFIED IDEOGRAPH +0x89EF 0x591B #CJK UNIFIED IDEOGRAPH +0x89F0 0x591D #CJK UNIFIED IDEOGRAPH +0x89F1 0x591E #CJK UNIFIED IDEOGRAPH +0x89F2 0x5920 #CJK UNIFIED IDEOGRAPH +0x89F3 0x5921 #CJK UNIFIED IDEOGRAPH +0x89F4 0x5922 #CJK UNIFIED IDEOGRAPH +0x89F5 0x5923 #CJK UNIFIED IDEOGRAPH +0x89F6 0x5926 #CJK UNIFIED IDEOGRAPH +0x89F7 0x5928 #CJK UNIFIED IDEOGRAPH +0x89F8 0x592C #CJK UNIFIED IDEOGRAPH +0x89F9 0x5930 #CJK UNIFIED IDEOGRAPH +0x89FA 0x5932 #CJK UNIFIED IDEOGRAPH +0x89FB 0x5933 #CJK UNIFIED IDEOGRAPH +0x89FC 0x5935 #CJK UNIFIED IDEOGRAPH +0x89FD 0x5936 #CJK UNIFIED IDEOGRAPH +0x89FE 0x593B #CJK UNIFIED IDEOGRAPH +0x8A40 0x593D #CJK UNIFIED IDEOGRAPH +0x8A41 0x593E #CJK UNIFIED IDEOGRAPH +0x8A42 0x593F #CJK UNIFIED IDEOGRAPH +0x8A43 0x5940 #CJK UNIFIED IDEOGRAPH +0x8A44 0x5943 #CJK UNIFIED IDEOGRAPH +0x8A45 0x5945 #CJK UNIFIED IDEOGRAPH +0x8A46 0x5946 #CJK UNIFIED IDEOGRAPH +0x8A47 0x594A #CJK UNIFIED IDEOGRAPH +0x8A48 0x594C #CJK UNIFIED IDEOGRAPH +0x8A49 0x594D #CJK UNIFIED IDEOGRAPH +0x8A4A 0x5950 #CJK UNIFIED IDEOGRAPH +0x8A4B 0x5952 #CJK UNIFIED IDEOGRAPH +0x8A4C 0x5953 #CJK UNIFIED IDEOGRAPH +0x8A4D 0x5959 #CJK UNIFIED IDEOGRAPH +0x8A4E 0x595B #CJK UNIFIED IDEOGRAPH +0x8A4F 0x595C #CJK UNIFIED IDEOGRAPH +0x8A50 0x595D #CJK UNIFIED IDEOGRAPH +0x8A51 0x595E #CJK UNIFIED IDEOGRAPH +0x8A52 0x595F #CJK UNIFIED IDEOGRAPH +0x8A53 0x5961 #CJK UNIFIED IDEOGRAPH +0x8A54 0x5963 #CJK UNIFIED IDEOGRAPH +0x8A55 0x5964 #CJK UNIFIED IDEOGRAPH +0x8A56 0x5966 #CJK UNIFIED IDEOGRAPH +0x8A57 0x5967 #CJK UNIFIED IDEOGRAPH +0x8A58 0x5968 #CJK UNIFIED IDEOGRAPH +0x8A59 0x5969 #CJK UNIFIED IDEOGRAPH +0x8A5A 0x596A #CJK UNIFIED IDEOGRAPH +0x8A5B 0x596B #CJK UNIFIED IDEOGRAPH +0x8A5C 0x596C #CJK UNIFIED IDEOGRAPH +0x8A5D 0x596D #CJK UNIFIED IDEOGRAPH +0x8A5E 0x596E #CJK UNIFIED IDEOGRAPH +0x8A5F 0x596F #CJK UNIFIED IDEOGRAPH +0x8A60 0x5970 #CJK UNIFIED IDEOGRAPH +0x8A61 0x5971 #CJK UNIFIED IDEOGRAPH +0x8A62 0x5972 #CJK UNIFIED IDEOGRAPH +0x8A63 0x5975 #CJK UNIFIED IDEOGRAPH +0x8A64 0x5977 #CJK UNIFIED IDEOGRAPH +0x8A65 0x597A #CJK UNIFIED IDEOGRAPH +0x8A66 0x597B #CJK UNIFIED IDEOGRAPH +0x8A67 0x597C #CJK UNIFIED IDEOGRAPH +0x8A68 0x597E #CJK UNIFIED IDEOGRAPH +0x8A69 0x597F #CJK UNIFIED IDEOGRAPH +0x8A6A 0x5980 #CJK UNIFIED IDEOGRAPH +0x8A6B 0x5985 #CJK UNIFIED IDEOGRAPH +0x8A6C 0x5989 #CJK UNIFIED IDEOGRAPH +0x8A6D 0x598B #CJK UNIFIED IDEOGRAPH +0x8A6E 0x598C #CJK UNIFIED IDEOGRAPH +0x8A6F 0x598E #CJK UNIFIED IDEOGRAPH +0x8A70 0x598F #CJK UNIFIED IDEOGRAPH +0x8A71 0x5990 #CJK UNIFIED IDEOGRAPH +0x8A72 0x5991 #CJK UNIFIED IDEOGRAPH +0x8A73 0x5994 #CJK UNIFIED IDEOGRAPH +0x8A74 0x5995 #CJK UNIFIED IDEOGRAPH +0x8A75 0x5998 #CJK UNIFIED IDEOGRAPH +0x8A76 0x599A #CJK UNIFIED IDEOGRAPH +0x8A77 0x599B #CJK UNIFIED IDEOGRAPH +0x8A78 0x599C #CJK UNIFIED IDEOGRAPH +0x8A79 0x599D #CJK UNIFIED IDEOGRAPH +0x8A7A 0x599F #CJK UNIFIED IDEOGRAPH +0x8A7B 0x59A0 #CJK UNIFIED IDEOGRAPH +0x8A7C 0x59A1 #CJK UNIFIED IDEOGRAPH +0x8A7D 0x59A2 #CJK UNIFIED IDEOGRAPH +0x8A7E 0x59A6 #CJK UNIFIED IDEOGRAPH +0x8A80 0x59A7 #CJK UNIFIED IDEOGRAPH +0x8A81 0x59AC #CJK UNIFIED IDEOGRAPH +0x8A82 0x59AD #CJK UNIFIED IDEOGRAPH +0x8A83 0x59B0 #CJK UNIFIED IDEOGRAPH +0x8A84 0x59B1 #CJK UNIFIED IDEOGRAPH +0x8A85 0x59B3 #CJK UNIFIED IDEOGRAPH +0x8A86 0x59B4 #CJK UNIFIED IDEOGRAPH +0x8A87 0x59B5 #CJK UNIFIED IDEOGRAPH +0x8A88 0x59B6 #CJK UNIFIED IDEOGRAPH +0x8A89 0x59B7 #CJK UNIFIED IDEOGRAPH +0x8A8A 0x59B8 #CJK UNIFIED IDEOGRAPH +0x8A8B 0x59BA #CJK UNIFIED IDEOGRAPH +0x8A8C 0x59BC #CJK UNIFIED IDEOGRAPH +0x8A8D 0x59BD #CJK UNIFIED IDEOGRAPH +0x8A8E 0x59BF #CJK UNIFIED IDEOGRAPH +0x8A8F 0x59C0 #CJK UNIFIED IDEOGRAPH +0x8A90 0x59C1 #CJK UNIFIED IDEOGRAPH +0x8A91 0x59C2 #CJK UNIFIED IDEOGRAPH +0x8A92 0x59C3 #CJK UNIFIED IDEOGRAPH +0x8A93 0x59C4 #CJK UNIFIED IDEOGRAPH +0x8A94 0x59C5 #CJK UNIFIED IDEOGRAPH +0x8A95 0x59C7 #CJK UNIFIED IDEOGRAPH +0x8A96 0x59C8 #CJK UNIFIED IDEOGRAPH +0x8A97 0x59C9 #CJK UNIFIED IDEOGRAPH +0x8A98 0x59CC #CJK UNIFIED IDEOGRAPH +0x8A99 0x59CD #CJK UNIFIED IDEOGRAPH +0x8A9A 0x59CE #CJK UNIFIED IDEOGRAPH +0x8A9B 0x59CF #CJK UNIFIED IDEOGRAPH +0x8A9C 0x59D5 #CJK UNIFIED IDEOGRAPH +0x8A9D 0x59D6 #CJK UNIFIED IDEOGRAPH +0x8A9E 0x59D9 #CJK UNIFIED IDEOGRAPH +0x8A9F 0x59DB #CJK UNIFIED IDEOGRAPH +0x8AA0 0x59DE #CJK UNIFIED IDEOGRAPH +0x8AA1 0x59DF #CJK UNIFIED IDEOGRAPH +0x8AA2 0x59E0 #CJK UNIFIED IDEOGRAPH +0x8AA3 0x59E1 #CJK UNIFIED IDEOGRAPH +0x8AA4 0x59E2 #CJK UNIFIED IDEOGRAPH +0x8AA5 0x59E4 #CJK UNIFIED IDEOGRAPH +0x8AA6 0x59E6 #CJK UNIFIED IDEOGRAPH +0x8AA7 0x59E7 #CJK UNIFIED IDEOGRAPH +0x8AA8 0x59E9 #CJK UNIFIED IDEOGRAPH +0x8AA9 0x59EA #CJK UNIFIED IDEOGRAPH +0x8AAA 0x59EB #CJK UNIFIED IDEOGRAPH +0x8AAB 0x59ED #CJK UNIFIED IDEOGRAPH +0x8AAC 0x59EE #CJK UNIFIED IDEOGRAPH +0x8AAD 0x59EF #CJK UNIFIED IDEOGRAPH +0x8AAE 0x59F0 #CJK UNIFIED IDEOGRAPH +0x8AAF 0x59F1 #CJK UNIFIED IDEOGRAPH +0x8AB0 0x59F2 #CJK UNIFIED IDEOGRAPH +0x8AB1 0x59F3 #CJK UNIFIED IDEOGRAPH +0x8AB2 0x59F4 #CJK UNIFIED IDEOGRAPH +0x8AB3 0x59F5 #CJK UNIFIED IDEOGRAPH +0x8AB4 0x59F6 #CJK UNIFIED IDEOGRAPH +0x8AB5 0x59F7 #CJK UNIFIED IDEOGRAPH +0x8AB6 0x59F8 #CJK UNIFIED IDEOGRAPH +0x8AB7 0x59FA #CJK UNIFIED IDEOGRAPH +0x8AB8 0x59FC #CJK UNIFIED IDEOGRAPH +0x8AB9 0x59FD #CJK UNIFIED IDEOGRAPH +0x8ABA 0x59FE #CJK UNIFIED IDEOGRAPH +0x8ABB 0x5A00 #CJK UNIFIED IDEOGRAPH +0x8ABC 0x5A02 #CJK UNIFIED IDEOGRAPH +0x8ABD 0x5A0A #CJK UNIFIED IDEOGRAPH +0x8ABE 0x5A0B #CJK UNIFIED IDEOGRAPH +0x8ABF 0x5A0D #CJK UNIFIED IDEOGRAPH +0x8AC0 0x5A0E #CJK UNIFIED IDEOGRAPH +0x8AC1 0x5A0F #CJK UNIFIED IDEOGRAPH +0x8AC2 0x5A10 #CJK UNIFIED IDEOGRAPH +0x8AC3 0x5A12 #CJK UNIFIED IDEOGRAPH +0x8AC4 0x5A14 #CJK UNIFIED IDEOGRAPH +0x8AC5 0x5A15 #CJK UNIFIED IDEOGRAPH +0x8AC6 0x5A16 #CJK UNIFIED IDEOGRAPH +0x8AC7 0x5A17 #CJK UNIFIED IDEOGRAPH +0x8AC8 0x5A19 #CJK UNIFIED IDEOGRAPH +0x8AC9 0x5A1A #CJK UNIFIED IDEOGRAPH +0x8ACA 0x5A1B #CJK UNIFIED IDEOGRAPH +0x8ACB 0x5A1D #CJK UNIFIED IDEOGRAPH +0x8ACC 0x5A1E #CJK UNIFIED IDEOGRAPH +0x8ACD 0x5A21 #CJK UNIFIED IDEOGRAPH +0x8ACE 0x5A22 #CJK UNIFIED IDEOGRAPH +0x8ACF 0x5A24 #CJK UNIFIED IDEOGRAPH +0x8AD0 0x5A26 #CJK UNIFIED IDEOGRAPH +0x8AD1 0x5A27 #CJK UNIFIED IDEOGRAPH +0x8AD2 0x5A28 #CJK UNIFIED IDEOGRAPH +0x8AD3 0x5A2A #CJK UNIFIED IDEOGRAPH +0x8AD4 0x5A2B #CJK UNIFIED IDEOGRAPH +0x8AD5 0x5A2C #CJK UNIFIED IDEOGRAPH +0x8AD6 0x5A2D #CJK UNIFIED IDEOGRAPH +0x8AD7 0x5A2E #CJK UNIFIED IDEOGRAPH +0x8AD8 0x5A2F #CJK UNIFIED IDEOGRAPH +0x8AD9 0x5A30 #CJK UNIFIED IDEOGRAPH +0x8ADA 0x5A33 #CJK UNIFIED IDEOGRAPH +0x8ADB 0x5A35 #CJK UNIFIED IDEOGRAPH +0x8ADC 0x5A37 #CJK UNIFIED IDEOGRAPH +0x8ADD 0x5A38 #CJK UNIFIED IDEOGRAPH +0x8ADE 0x5A39 #CJK UNIFIED IDEOGRAPH +0x8ADF 0x5A3A #CJK UNIFIED IDEOGRAPH +0x8AE0 0x5A3B #CJK UNIFIED IDEOGRAPH +0x8AE1 0x5A3D #CJK UNIFIED IDEOGRAPH +0x8AE2 0x5A3E #CJK UNIFIED IDEOGRAPH +0x8AE3 0x5A3F #CJK UNIFIED IDEOGRAPH +0x8AE4 0x5A41 #CJK UNIFIED IDEOGRAPH +0x8AE5 0x5A42 #CJK UNIFIED IDEOGRAPH +0x8AE6 0x5A43 #CJK UNIFIED IDEOGRAPH +0x8AE7 0x5A44 #CJK UNIFIED IDEOGRAPH +0x8AE8 0x5A45 #CJK UNIFIED IDEOGRAPH +0x8AE9 0x5A47 #CJK UNIFIED IDEOGRAPH +0x8AEA 0x5A48 #CJK UNIFIED IDEOGRAPH +0x8AEB 0x5A4B #CJK UNIFIED IDEOGRAPH +0x8AEC 0x5A4C #CJK UNIFIED IDEOGRAPH +0x8AED 0x5A4D #CJK UNIFIED IDEOGRAPH +0x8AEE 0x5A4E #CJK UNIFIED IDEOGRAPH +0x8AEF 0x5A4F #CJK UNIFIED IDEOGRAPH +0x8AF0 0x5A50 #CJK UNIFIED IDEOGRAPH +0x8AF1 0x5A51 #CJK UNIFIED IDEOGRAPH +0x8AF2 0x5A52 #CJK UNIFIED IDEOGRAPH +0x8AF3 0x5A53 #CJK UNIFIED IDEOGRAPH +0x8AF4 0x5A54 #CJK UNIFIED IDEOGRAPH +0x8AF5 0x5A56 #CJK UNIFIED IDEOGRAPH +0x8AF6 0x5A57 #CJK UNIFIED IDEOGRAPH +0x8AF7 0x5A58 #CJK UNIFIED IDEOGRAPH +0x8AF8 0x5A59 #CJK UNIFIED IDEOGRAPH +0x8AF9 0x5A5B #CJK UNIFIED IDEOGRAPH +0x8AFA 0x5A5C #CJK UNIFIED IDEOGRAPH +0x8AFB 0x5A5D #CJK UNIFIED IDEOGRAPH +0x8AFC 0x5A5E #CJK UNIFIED IDEOGRAPH +0x8AFD 0x5A5F #CJK UNIFIED IDEOGRAPH +0x8AFE 0x5A60 #CJK UNIFIED IDEOGRAPH +0x8B40 0x5A61 #CJK UNIFIED IDEOGRAPH +0x8B41 0x5A63 #CJK UNIFIED IDEOGRAPH +0x8B42 0x5A64 #CJK UNIFIED IDEOGRAPH +0x8B43 0x5A65 #CJK UNIFIED IDEOGRAPH +0x8B44 0x5A66 #CJK UNIFIED IDEOGRAPH +0x8B45 0x5A68 #CJK UNIFIED IDEOGRAPH +0x8B46 0x5A69 #CJK UNIFIED IDEOGRAPH +0x8B47 0x5A6B #CJK UNIFIED IDEOGRAPH +0x8B48 0x5A6C #CJK UNIFIED IDEOGRAPH +0x8B49 0x5A6D #CJK UNIFIED IDEOGRAPH +0x8B4A 0x5A6E #CJK UNIFIED IDEOGRAPH +0x8B4B 0x5A6F #CJK UNIFIED IDEOGRAPH +0x8B4C 0x5A70 #CJK UNIFIED IDEOGRAPH +0x8B4D 0x5A71 #CJK UNIFIED IDEOGRAPH +0x8B4E 0x5A72 #CJK UNIFIED IDEOGRAPH +0x8B4F 0x5A73 #CJK UNIFIED IDEOGRAPH +0x8B50 0x5A78 #CJK UNIFIED IDEOGRAPH +0x8B51 0x5A79 #CJK UNIFIED IDEOGRAPH +0x8B52 0x5A7B #CJK UNIFIED IDEOGRAPH +0x8B53 0x5A7C #CJK UNIFIED IDEOGRAPH +0x8B54 0x5A7D #CJK UNIFIED IDEOGRAPH +0x8B55 0x5A7E #CJK UNIFIED IDEOGRAPH +0x8B56 0x5A80 #CJK UNIFIED IDEOGRAPH +0x8B57 0x5A81 #CJK UNIFIED IDEOGRAPH +0x8B58 0x5A82 #CJK UNIFIED IDEOGRAPH +0x8B59 0x5A83 #CJK UNIFIED IDEOGRAPH +0x8B5A 0x5A84 #CJK UNIFIED IDEOGRAPH +0x8B5B 0x5A85 #CJK UNIFIED IDEOGRAPH +0x8B5C 0x5A86 #CJK UNIFIED IDEOGRAPH +0x8B5D 0x5A87 #CJK UNIFIED IDEOGRAPH +0x8B5E 0x5A88 #CJK UNIFIED IDEOGRAPH +0x8B5F 0x5A89 #CJK UNIFIED IDEOGRAPH +0x8B60 0x5A8A #CJK UNIFIED IDEOGRAPH +0x8B61 0x5A8B #CJK UNIFIED IDEOGRAPH +0x8B62 0x5A8C #CJK UNIFIED IDEOGRAPH +0x8B63 0x5A8D #CJK UNIFIED IDEOGRAPH +0x8B64 0x5A8E #CJK UNIFIED IDEOGRAPH +0x8B65 0x5A8F #CJK UNIFIED IDEOGRAPH +0x8B66 0x5A90 #CJK UNIFIED IDEOGRAPH +0x8B67 0x5A91 #CJK UNIFIED IDEOGRAPH +0x8B68 0x5A93 #CJK UNIFIED IDEOGRAPH +0x8B69 0x5A94 #CJK UNIFIED IDEOGRAPH +0x8B6A 0x5A95 #CJK UNIFIED IDEOGRAPH +0x8B6B 0x5A96 #CJK UNIFIED IDEOGRAPH +0x8B6C 0x5A97 #CJK UNIFIED IDEOGRAPH +0x8B6D 0x5A98 #CJK UNIFIED IDEOGRAPH +0x8B6E 0x5A99 #CJK UNIFIED IDEOGRAPH +0x8B6F 0x5A9C #CJK UNIFIED IDEOGRAPH +0x8B70 0x5A9D #CJK UNIFIED IDEOGRAPH +0x8B71 0x5A9E #CJK UNIFIED IDEOGRAPH +0x8B72 0x5A9F #CJK UNIFIED IDEOGRAPH +0x8B73 0x5AA0 #CJK UNIFIED IDEOGRAPH +0x8B74 0x5AA1 #CJK UNIFIED IDEOGRAPH +0x8B75 0x5AA2 #CJK UNIFIED IDEOGRAPH +0x8B76 0x5AA3 #CJK UNIFIED IDEOGRAPH +0x8B77 0x5AA4 #CJK UNIFIED IDEOGRAPH +0x8B78 0x5AA5 #CJK UNIFIED IDEOGRAPH +0x8B79 0x5AA6 #CJK UNIFIED IDEOGRAPH +0x8B7A 0x5AA7 #CJK UNIFIED IDEOGRAPH +0x8B7B 0x5AA8 #CJK UNIFIED IDEOGRAPH +0x8B7C 0x5AA9 #CJK UNIFIED IDEOGRAPH +0x8B7D 0x5AAB #CJK UNIFIED IDEOGRAPH +0x8B7E 0x5AAC #CJK UNIFIED IDEOGRAPH +0x8B80 0x5AAD #CJK UNIFIED IDEOGRAPH +0x8B81 0x5AAE #CJK UNIFIED IDEOGRAPH +0x8B82 0x5AAF #CJK UNIFIED IDEOGRAPH +0x8B83 0x5AB0 #CJK UNIFIED IDEOGRAPH +0x8B84 0x5AB1 #CJK UNIFIED IDEOGRAPH +0x8B85 0x5AB4 #CJK UNIFIED IDEOGRAPH +0x8B86 0x5AB6 #CJK UNIFIED IDEOGRAPH +0x8B87 0x5AB7 #CJK UNIFIED IDEOGRAPH +0x8B88 0x5AB9 #CJK UNIFIED IDEOGRAPH +0x8B89 0x5ABA #CJK UNIFIED IDEOGRAPH +0x8B8A 0x5ABB #CJK UNIFIED IDEOGRAPH +0x8B8B 0x5ABC #CJK UNIFIED IDEOGRAPH +0x8B8C 0x5ABD #CJK UNIFIED IDEOGRAPH +0x8B8D 0x5ABF #CJK UNIFIED IDEOGRAPH +0x8B8E 0x5AC0 #CJK UNIFIED IDEOGRAPH +0x8B8F 0x5AC3 #CJK UNIFIED IDEOGRAPH +0x8B90 0x5AC4 #CJK UNIFIED IDEOGRAPH +0x8B91 0x5AC5 #CJK UNIFIED IDEOGRAPH +0x8B92 0x5AC6 #CJK UNIFIED IDEOGRAPH +0x8B93 0x5AC7 #CJK UNIFIED IDEOGRAPH +0x8B94 0x5AC8 #CJK UNIFIED IDEOGRAPH +0x8B95 0x5ACA #CJK UNIFIED IDEOGRAPH +0x8B96 0x5ACB #CJK UNIFIED IDEOGRAPH +0x8B97 0x5ACD #CJK UNIFIED IDEOGRAPH +0x8B98 0x5ACE #CJK UNIFIED IDEOGRAPH +0x8B99 0x5ACF #CJK UNIFIED IDEOGRAPH +0x8B9A 0x5AD0 #CJK UNIFIED IDEOGRAPH +0x8B9B 0x5AD1 #CJK UNIFIED IDEOGRAPH +0x8B9C 0x5AD3 #CJK UNIFIED IDEOGRAPH +0x8B9D 0x5AD5 #CJK UNIFIED IDEOGRAPH +0x8B9E 0x5AD7 #CJK UNIFIED IDEOGRAPH +0x8B9F 0x5AD9 #CJK UNIFIED IDEOGRAPH +0x8BA0 0x5ADA #CJK UNIFIED IDEOGRAPH +0x8BA1 0x5ADB #CJK UNIFIED IDEOGRAPH +0x8BA2 0x5ADD #CJK UNIFIED IDEOGRAPH +0x8BA3 0x5ADE #CJK UNIFIED IDEOGRAPH +0x8BA4 0x5ADF #CJK UNIFIED IDEOGRAPH +0x8BA5 0x5AE2 #CJK UNIFIED IDEOGRAPH +0x8BA6 0x5AE4 #CJK UNIFIED IDEOGRAPH +0x8BA7 0x5AE5 #CJK UNIFIED IDEOGRAPH +0x8BA8 0x5AE7 #CJK UNIFIED IDEOGRAPH +0x8BA9 0x5AE8 #CJK UNIFIED IDEOGRAPH +0x8BAA 0x5AEA #CJK UNIFIED IDEOGRAPH +0x8BAB 0x5AEC #CJK UNIFIED IDEOGRAPH +0x8BAC 0x5AED #CJK UNIFIED IDEOGRAPH +0x8BAD 0x5AEE #CJK UNIFIED IDEOGRAPH +0x8BAE 0x5AEF #CJK UNIFIED IDEOGRAPH +0x8BAF 0x5AF0 #CJK UNIFIED IDEOGRAPH +0x8BB0 0x5AF2 #CJK UNIFIED IDEOGRAPH +0x8BB1 0x5AF3 #CJK UNIFIED IDEOGRAPH +0x8BB2 0x5AF4 #CJK UNIFIED IDEOGRAPH +0x8BB3 0x5AF5 #CJK UNIFIED IDEOGRAPH +0x8BB4 0x5AF6 #CJK UNIFIED IDEOGRAPH +0x8BB5 0x5AF7 #CJK UNIFIED IDEOGRAPH +0x8BB6 0x5AF8 #CJK UNIFIED IDEOGRAPH +0x8BB7 0x5AF9 #CJK UNIFIED IDEOGRAPH +0x8BB8 0x5AFA #CJK UNIFIED IDEOGRAPH +0x8BB9 0x5AFB #CJK UNIFIED IDEOGRAPH +0x8BBA 0x5AFC #CJK UNIFIED IDEOGRAPH +0x8BBB 0x5AFD #CJK UNIFIED IDEOGRAPH +0x8BBC 0x5AFE #CJK UNIFIED IDEOGRAPH +0x8BBD 0x5AFF #CJK UNIFIED IDEOGRAPH +0x8BBE 0x5B00 #CJK UNIFIED IDEOGRAPH +0x8BBF 0x5B01 #CJK UNIFIED IDEOGRAPH +0x8BC0 0x5B02 #CJK UNIFIED IDEOGRAPH +0x8BC1 0x5B03 #CJK UNIFIED IDEOGRAPH +0x8BC2 0x5B04 #CJK UNIFIED IDEOGRAPH +0x8BC3 0x5B05 #CJK UNIFIED IDEOGRAPH +0x8BC4 0x5B06 #CJK UNIFIED IDEOGRAPH +0x8BC5 0x5B07 #CJK UNIFIED IDEOGRAPH +0x8BC6 0x5B08 #CJK UNIFIED IDEOGRAPH +0x8BC7 0x5B0A #CJK UNIFIED IDEOGRAPH +0x8BC8 0x5B0B #CJK UNIFIED IDEOGRAPH +0x8BC9 0x5B0C #CJK UNIFIED IDEOGRAPH +0x8BCA 0x5B0D #CJK UNIFIED IDEOGRAPH +0x8BCB 0x5B0E #CJK UNIFIED IDEOGRAPH +0x8BCC 0x5B0F #CJK UNIFIED IDEOGRAPH +0x8BCD 0x5B10 #CJK UNIFIED IDEOGRAPH +0x8BCE 0x5B11 #CJK UNIFIED IDEOGRAPH +0x8BCF 0x5B12 #CJK UNIFIED IDEOGRAPH +0x8BD0 0x5B13 #CJK UNIFIED IDEOGRAPH +0x8BD1 0x5B14 #CJK UNIFIED IDEOGRAPH +0x8BD2 0x5B15 #CJK UNIFIED IDEOGRAPH +0x8BD3 0x5B18 #CJK UNIFIED IDEOGRAPH +0x8BD4 0x5B19 #CJK UNIFIED IDEOGRAPH +0x8BD5 0x5B1A #CJK UNIFIED IDEOGRAPH +0x8BD6 0x5B1B #CJK UNIFIED IDEOGRAPH +0x8BD7 0x5B1C #CJK UNIFIED IDEOGRAPH +0x8BD8 0x5B1D #CJK UNIFIED IDEOGRAPH +0x8BD9 0x5B1E #CJK UNIFIED IDEOGRAPH +0x8BDA 0x5B1F #CJK UNIFIED IDEOGRAPH +0x8BDB 0x5B20 #CJK UNIFIED IDEOGRAPH +0x8BDC 0x5B21 #CJK UNIFIED IDEOGRAPH +0x8BDD 0x5B22 #CJK UNIFIED IDEOGRAPH +0x8BDE 0x5B23 #CJK UNIFIED IDEOGRAPH +0x8BDF 0x5B24 #CJK UNIFIED IDEOGRAPH +0x8BE0 0x5B25 #CJK UNIFIED IDEOGRAPH +0x8BE1 0x5B26 #CJK UNIFIED IDEOGRAPH +0x8BE2 0x5B27 #CJK UNIFIED IDEOGRAPH +0x8BE3 0x5B28 #CJK UNIFIED IDEOGRAPH +0x8BE4 0x5B29 #CJK UNIFIED IDEOGRAPH +0x8BE5 0x5B2A #CJK UNIFIED IDEOGRAPH +0x8BE6 0x5B2B #CJK UNIFIED IDEOGRAPH +0x8BE7 0x5B2C #CJK UNIFIED IDEOGRAPH +0x8BE8 0x5B2D #CJK UNIFIED IDEOGRAPH +0x8BE9 0x5B2E #CJK UNIFIED IDEOGRAPH +0x8BEA 0x5B2F #CJK UNIFIED IDEOGRAPH +0x8BEB 0x5B30 #CJK UNIFIED IDEOGRAPH +0x8BEC 0x5B31 #CJK UNIFIED IDEOGRAPH +0x8BED 0x5B33 #CJK UNIFIED IDEOGRAPH +0x8BEE 0x5B35 #CJK UNIFIED IDEOGRAPH +0x8BEF 0x5B36 #CJK UNIFIED IDEOGRAPH +0x8BF0 0x5B38 #CJK UNIFIED IDEOGRAPH +0x8BF1 0x5B39 #CJK UNIFIED IDEOGRAPH +0x8BF2 0x5B3A #CJK UNIFIED IDEOGRAPH +0x8BF3 0x5B3B #CJK UNIFIED IDEOGRAPH +0x8BF4 0x5B3C #CJK UNIFIED IDEOGRAPH +0x8BF5 0x5B3D #CJK UNIFIED IDEOGRAPH +0x8BF6 0x5B3E #CJK UNIFIED IDEOGRAPH +0x8BF7 0x5B3F #CJK UNIFIED IDEOGRAPH +0x8BF8 0x5B41 #CJK UNIFIED IDEOGRAPH +0x8BF9 0x5B42 #CJK UNIFIED IDEOGRAPH +0x8BFA 0x5B43 #CJK UNIFIED IDEOGRAPH +0x8BFB 0x5B44 #CJK UNIFIED IDEOGRAPH +0x8BFC 0x5B45 #CJK UNIFIED IDEOGRAPH +0x8BFD 0x5B46 #CJK UNIFIED IDEOGRAPH +0x8BFE 0x5B47 #CJK UNIFIED IDEOGRAPH +0x8C40 0x5B48 #CJK UNIFIED IDEOGRAPH +0x8C41 0x5B49 #CJK UNIFIED IDEOGRAPH +0x8C42 0x5B4A #CJK UNIFIED IDEOGRAPH +0x8C43 0x5B4B #CJK UNIFIED IDEOGRAPH +0x8C44 0x5B4C #CJK UNIFIED IDEOGRAPH +0x8C45 0x5B4D #CJK UNIFIED IDEOGRAPH +0x8C46 0x5B4E #CJK UNIFIED IDEOGRAPH +0x8C47 0x5B4F #CJK UNIFIED IDEOGRAPH +0x8C48 0x5B52 #CJK UNIFIED IDEOGRAPH +0x8C49 0x5B56 #CJK UNIFIED IDEOGRAPH +0x8C4A 0x5B5E #CJK UNIFIED IDEOGRAPH +0x8C4B 0x5B60 #CJK UNIFIED IDEOGRAPH +0x8C4C 0x5B61 #CJK UNIFIED IDEOGRAPH +0x8C4D 0x5B67 #CJK UNIFIED IDEOGRAPH +0x8C4E 0x5B68 #CJK UNIFIED IDEOGRAPH +0x8C4F 0x5B6B #CJK UNIFIED IDEOGRAPH +0x8C50 0x5B6D #CJK UNIFIED IDEOGRAPH +0x8C51 0x5B6E #CJK UNIFIED IDEOGRAPH +0x8C52 0x5B6F #CJK UNIFIED IDEOGRAPH +0x8C53 0x5B72 #CJK UNIFIED IDEOGRAPH +0x8C54 0x5B74 #CJK UNIFIED IDEOGRAPH +0x8C55 0x5B76 #CJK UNIFIED IDEOGRAPH +0x8C56 0x5B77 #CJK UNIFIED IDEOGRAPH +0x8C57 0x5B78 #CJK UNIFIED IDEOGRAPH +0x8C58 0x5B79 #CJK UNIFIED IDEOGRAPH +0x8C59 0x5B7B #CJK UNIFIED IDEOGRAPH +0x8C5A 0x5B7C #CJK UNIFIED IDEOGRAPH +0x8C5B 0x5B7E #CJK UNIFIED IDEOGRAPH +0x8C5C 0x5B7F #CJK UNIFIED IDEOGRAPH +0x8C5D 0x5B82 #CJK UNIFIED IDEOGRAPH +0x8C5E 0x5B86 #CJK UNIFIED IDEOGRAPH +0x8C5F 0x5B8A #CJK UNIFIED IDEOGRAPH +0x8C60 0x5B8D #CJK UNIFIED IDEOGRAPH +0x8C61 0x5B8E #CJK UNIFIED IDEOGRAPH +0x8C62 0x5B90 #CJK UNIFIED IDEOGRAPH +0x8C63 0x5B91 #CJK UNIFIED IDEOGRAPH +0x8C64 0x5B92 #CJK UNIFIED IDEOGRAPH +0x8C65 0x5B94 #CJK UNIFIED IDEOGRAPH +0x8C66 0x5B96 #CJK UNIFIED IDEOGRAPH +0x8C67 0x5B9F #CJK UNIFIED IDEOGRAPH +0x8C68 0x5BA7 #CJK UNIFIED IDEOGRAPH +0x8C69 0x5BA8 #CJK UNIFIED IDEOGRAPH +0x8C6A 0x5BA9 #CJK UNIFIED IDEOGRAPH +0x8C6B 0x5BAC #CJK UNIFIED IDEOGRAPH +0x8C6C 0x5BAD #CJK UNIFIED IDEOGRAPH +0x8C6D 0x5BAE #CJK UNIFIED IDEOGRAPH +0x8C6E 0x5BAF #CJK UNIFIED IDEOGRAPH +0x8C6F 0x5BB1 #CJK UNIFIED IDEOGRAPH +0x8C70 0x5BB2 #CJK UNIFIED IDEOGRAPH +0x8C71 0x5BB7 #CJK UNIFIED IDEOGRAPH +0x8C72 0x5BBA #CJK UNIFIED IDEOGRAPH +0x8C73 0x5BBB #CJK UNIFIED IDEOGRAPH +0x8C74 0x5BBC #CJK UNIFIED IDEOGRAPH +0x8C75 0x5BC0 #CJK UNIFIED IDEOGRAPH +0x8C76 0x5BC1 #CJK UNIFIED IDEOGRAPH +0x8C77 0x5BC3 #CJK UNIFIED IDEOGRAPH +0x8C78 0x5BC8 #CJK UNIFIED IDEOGRAPH +0x8C79 0x5BC9 #CJK UNIFIED IDEOGRAPH +0x8C7A 0x5BCA #CJK UNIFIED IDEOGRAPH +0x8C7B 0x5BCB #CJK UNIFIED IDEOGRAPH +0x8C7C 0x5BCD #CJK UNIFIED IDEOGRAPH +0x8C7D 0x5BCE #CJK UNIFIED IDEOGRAPH +0x8C7E 0x5BCF #CJK UNIFIED IDEOGRAPH +0x8C80 0x5BD1 #CJK UNIFIED IDEOGRAPH +0x8C81 0x5BD4 #CJK UNIFIED IDEOGRAPH +0x8C82 0x5BD5 #CJK UNIFIED IDEOGRAPH +0x8C83 0x5BD6 #CJK UNIFIED IDEOGRAPH +0x8C84 0x5BD7 #CJK UNIFIED IDEOGRAPH +0x8C85 0x5BD8 #CJK UNIFIED IDEOGRAPH +0x8C86 0x5BD9 #CJK UNIFIED IDEOGRAPH +0x8C87 0x5BDA #CJK UNIFIED IDEOGRAPH +0x8C88 0x5BDB #CJK UNIFIED IDEOGRAPH +0x8C89 0x5BDC #CJK UNIFIED IDEOGRAPH +0x8C8A 0x5BE0 #CJK UNIFIED IDEOGRAPH +0x8C8B 0x5BE2 #CJK UNIFIED IDEOGRAPH +0x8C8C 0x5BE3 #CJK UNIFIED IDEOGRAPH +0x8C8D 0x5BE6 #CJK UNIFIED IDEOGRAPH +0x8C8E 0x5BE7 #CJK UNIFIED IDEOGRAPH +0x8C8F 0x5BE9 #CJK UNIFIED IDEOGRAPH +0x8C90 0x5BEA #CJK UNIFIED IDEOGRAPH +0x8C91 0x5BEB #CJK UNIFIED IDEOGRAPH +0x8C92 0x5BEC #CJK UNIFIED IDEOGRAPH +0x8C93 0x5BED #CJK UNIFIED IDEOGRAPH +0x8C94 0x5BEF #CJK UNIFIED IDEOGRAPH +0x8C95 0x5BF1 #CJK UNIFIED IDEOGRAPH +0x8C96 0x5BF2 #CJK UNIFIED IDEOGRAPH +0x8C97 0x5BF3 #CJK UNIFIED IDEOGRAPH +0x8C98 0x5BF4 #CJK UNIFIED IDEOGRAPH +0x8C99 0x5BF5 #CJK UNIFIED IDEOGRAPH +0x8C9A 0x5BF6 #CJK UNIFIED IDEOGRAPH +0x8C9B 0x5BF7 #CJK UNIFIED IDEOGRAPH +0x8C9C 0x5BFD #CJK UNIFIED IDEOGRAPH +0x8C9D 0x5BFE #CJK UNIFIED IDEOGRAPH +0x8C9E 0x5C00 #CJK UNIFIED IDEOGRAPH +0x8C9F 0x5C02 #CJK UNIFIED IDEOGRAPH +0x8CA0 0x5C03 #CJK UNIFIED IDEOGRAPH +0x8CA1 0x5C05 #CJK UNIFIED IDEOGRAPH +0x8CA2 0x5C07 #CJK UNIFIED IDEOGRAPH +0x8CA3 0x5C08 #CJK UNIFIED IDEOGRAPH +0x8CA4 0x5C0B #CJK UNIFIED IDEOGRAPH +0x8CA5 0x5C0C #CJK UNIFIED IDEOGRAPH +0x8CA6 0x5C0D #CJK UNIFIED IDEOGRAPH +0x8CA7 0x5C0E #CJK UNIFIED IDEOGRAPH +0x8CA8 0x5C10 #CJK UNIFIED IDEOGRAPH +0x8CA9 0x5C12 #CJK UNIFIED IDEOGRAPH +0x8CAA 0x5C13 #CJK UNIFIED IDEOGRAPH +0x8CAB 0x5C17 #CJK UNIFIED IDEOGRAPH +0x8CAC 0x5C19 #CJK UNIFIED IDEOGRAPH +0x8CAD 0x5C1B #CJK UNIFIED IDEOGRAPH +0x8CAE 0x5C1E #CJK UNIFIED IDEOGRAPH +0x8CAF 0x5C1F #CJK UNIFIED IDEOGRAPH +0x8CB0 0x5C20 #CJK UNIFIED IDEOGRAPH +0x8CB1 0x5C21 #CJK UNIFIED IDEOGRAPH +0x8CB2 0x5C23 #CJK UNIFIED IDEOGRAPH +0x8CB3 0x5C26 #CJK UNIFIED IDEOGRAPH +0x8CB4 0x5C28 #CJK UNIFIED IDEOGRAPH +0x8CB5 0x5C29 #CJK UNIFIED IDEOGRAPH +0x8CB6 0x5C2A #CJK UNIFIED IDEOGRAPH +0x8CB7 0x5C2B #CJK UNIFIED IDEOGRAPH +0x8CB8 0x5C2D #CJK UNIFIED IDEOGRAPH +0x8CB9 0x5C2E #CJK UNIFIED IDEOGRAPH +0x8CBA 0x5C2F #CJK UNIFIED IDEOGRAPH +0x8CBB 0x5C30 #CJK UNIFIED IDEOGRAPH +0x8CBC 0x5C32 #CJK UNIFIED IDEOGRAPH +0x8CBD 0x5C33 #CJK UNIFIED IDEOGRAPH +0x8CBE 0x5C35 #CJK UNIFIED IDEOGRAPH +0x8CBF 0x5C36 #CJK UNIFIED IDEOGRAPH +0x8CC0 0x5C37 #CJK UNIFIED IDEOGRAPH +0x8CC1 0x5C43 #CJK UNIFIED IDEOGRAPH +0x8CC2 0x5C44 #CJK UNIFIED IDEOGRAPH +0x8CC3 0x5C46 #CJK UNIFIED IDEOGRAPH +0x8CC4 0x5C47 #CJK UNIFIED IDEOGRAPH +0x8CC5 0x5C4C #CJK UNIFIED IDEOGRAPH +0x8CC6 0x5C4D #CJK UNIFIED IDEOGRAPH +0x8CC7 0x5C52 #CJK UNIFIED IDEOGRAPH +0x8CC8 0x5C53 #CJK UNIFIED IDEOGRAPH +0x8CC9 0x5C54 #CJK UNIFIED IDEOGRAPH +0x8CCA 0x5C56 #CJK UNIFIED IDEOGRAPH +0x8CCB 0x5C57 #CJK UNIFIED IDEOGRAPH +0x8CCC 0x5C58 #CJK UNIFIED IDEOGRAPH +0x8CCD 0x5C5A #CJK UNIFIED IDEOGRAPH +0x8CCE 0x5C5B #CJK UNIFIED IDEOGRAPH +0x8CCF 0x5C5C #CJK UNIFIED IDEOGRAPH +0x8CD0 0x5C5D #CJK UNIFIED IDEOGRAPH +0x8CD1 0x5C5F #CJK UNIFIED IDEOGRAPH +0x8CD2 0x5C62 #CJK UNIFIED IDEOGRAPH +0x8CD3 0x5C64 #CJK UNIFIED IDEOGRAPH +0x8CD4 0x5C67 #CJK UNIFIED IDEOGRAPH +0x8CD5 0x5C68 #CJK UNIFIED IDEOGRAPH +0x8CD6 0x5C69 #CJK UNIFIED IDEOGRAPH +0x8CD7 0x5C6A #CJK UNIFIED IDEOGRAPH +0x8CD8 0x5C6B #CJK UNIFIED IDEOGRAPH +0x8CD9 0x5C6C #CJK UNIFIED IDEOGRAPH +0x8CDA 0x5C6D #CJK UNIFIED IDEOGRAPH +0x8CDB 0x5C70 #CJK UNIFIED IDEOGRAPH +0x8CDC 0x5C72 #CJK UNIFIED IDEOGRAPH +0x8CDD 0x5C73 #CJK UNIFIED IDEOGRAPH +0x8CDE 0x5C74 #CJK UNIFIED IDEOGRAPH +0x8CDF 0x5C75 #CJK UNIFIED IDEOGRAPH +0x8CE0 0x5C76 #CJK UNIFIED IDEOGRAPH +0x8CE1 0x5C77 #CJK UNIFIED IDEOGRAPH +0x8CE2 0x5C78 #CJK UNIFIED IDEOGRAPH +0x8CE3 0x5C7B #CJK UNIFIED IDEOGRAPH +0x8CE4 0x5C7C #CJK UNIFIED IDEOGRAPH +0x8CE5 0x5C7D #CJK UNIFIED IDEOGRAPH +0x8CE6 0x5C7E #CJK UNIFIED IDEOGRAPH +0x8CE7 0x5C80 #CJK UNIFIED IDEOGRAPH +0x8CE8 0x5C83 #CJK UNIFIED IDEOGRAPH +0x8CE9 0x5C84 #CJK UNIFIED IDEOGRAPH +0x8CEA 0x5C85 #CJK UNIFIED IDEOGRAPH +0x8CEB 0x5C86 #CJK UNIFIED IDEOGRAPH +0x8CEC 0x5C87 #CJK UNIFIED IDEOGRAPH +0x8CED 0x5C89 #CJK UNIFIED IDEOGRAPH +0x8CEE 0x5C8A #CJK UNIFIED IDEOGRAPH +0x8CEF 0x5C8B #CJK UNIFIED IDEOGRAPH +0x8CF0 0x5C8E #CJK UNIFIED IDEOGRAPH +0x8CF1 0x5C8F #CJK UNIFIED IDEOGRAPH +0x8CF2 0x5C92 #CJK UNIFIED IDEOGRAPH +0x8CF3 0x5C93 #CJK UNIFIED IDEOGRAPH +0x8CF4 0x5C95 #CJK UNIFIED IDEOGRAPH +0x8CF5 0x5C9D #CJK UNIFIED IDEOGRAPH +0x8CF6 0x5C9E #CJK UNIFIED IDEOGRAPH +0x8CF7 0x5C9F #CJK UNIFIED IDEOGRAPH +0x8CF8 0x5CA0 #CJK UNIFIED IDEOGRAPH +0x8CF9 0x5CA1 #CJK UNIFIED IDEOGRAPH +0x8CFA 0x5CA4 #CJK UNIFIED IDEOGRAPH +0x8CFB 0x5CA5 #CJK UNIFIED IDEOGRAPH +0x8CFC 0x5CA6 #CJK UNIFIED IDEOGRAPH +0x8CFD 0x5CA7 #CJK UNIFIED IDEOGRAPH +0x8CFE 0x5CA8 #CJK UNIFIED IDEOGRAPH +0x8D40 0x5CAA #CJK UNIFIED IDEOGRAPH +0x8D41 0x5CAE #CJK UNIFIED IDEOGRAPH +0x8D42 0x5CAF #CJK UNIFIED IDEOGRAPH +0x8D43 0x5CB0 #CJK UNIFIED IDEOGRAPH +0x8D44 0x5CB2 #CJK UNIFIED IDEOGRAPH +0x8D45 0x5CB4 #CJK UNIFIED IDEOGRAPH +0x8D46 0x5CB6 #CJK UNIFIED IDEOGRAPH +0x8D47 0x5CB9 #CJK UNIFIED IDEOGRAPH +0x8D48 0x5CBA #CJK UNIFIED IDEOGRAPH +0x8D49 0x5CBB #CJK UNIFIED IDEOGRAPH +0x8D4A 0x5CBC #CJK UNIFIED IDEOGRAPH +0x8D4B 0x5CBE #CJK UNIFIED IDEOGRAPH +0x8D4C 0x5CC0 #CJK UNIFIED IDEOGRAPH +0x8D4D 0x5CC2 #CJK UNIFIED IDEOGRAPH +0x8D4E 0x5CC3 #CJK UNIFIED IDEOGRAPH +0x8D4F 0x5CC5 #CJK UNIFIED IDEOGRAPH +0x8D50 0x5CC6 #CJK UNIFIED IDEOGRAPH +0x8D51 0x5CC7 #CJK UNIFIED IDEOGRAPH +0x8D52 0x5CC8 #CJK UNIFIED IDEOGRAPH +0x8D53 0x5CC9 #CJK UNIFIED IDEOGRAPH +0x8D54 0x5CCA #CJK UNIFIED IDEOGRAPH +0x8D55 0x5CCC #CJK UNIFIED IDEOGRAPH +0x8D56 0x5CCD #CJK UNIFIED IDEOGRAPH +0x8D57 0x5CCE #CJK UNIFIED IDEOGRAPH +0x8D58 0x5CCF #CJK UNIFIED IDEOGRAPH +0x8D59 0x5CD0 #CJK UNIFIED IDEOGRAPH +0x8D5A 0x5CD1 #CJK UNIFIED IDEOGRAPH +0x8D5B 0x5CD3 #CJK UNIFIED IDEOGRAPH +0x8D5C 0x5CD4 #CJK UNIFIED IDEOGRAPH +0x8D5D 0x5CD5 #CJK UNIFIED IDEOGRAPH +0x8D5E 0x5CD6 #CJK UNIFIED IDEOGRAPH +0x8D5F 0x5CD7 #CJK UNIFIED IDEOGRAPH +0x8D60 0x5CD8 #CJK UNIFIED IDEOGRAPH +0x8D61 0x5CDA #CJK UNIFIED IDEOGRAPH +0x8D62 0x5CDB #CJK UNIFIED IDEOGRAPH +0x8D63 0x5CDC #CJK UNIFIED IDEOGRAPH +0x8D64 0x5CDD #CJK UNIFIED IDEOGRAPH +0x8D65 0x5CDE #CJK UNIFIED IDEOGRAPH +0x8D66 0x5CDF #CJK UNIFIED IDEOGRAPH +0x8D67 0x5CE0 #CJK UNIFIED IDEOGRAPH +0x8D68 0x5CE2 #CJK UNIFIED IDEOGRAPH +0x8D69 0x5CE3 #CJK UNIFIED IDEOGRAPH +0x8D6A 0x5CE7 #CJK UNIFIED IDEOGRAPH +0x8D6B 0x5CE9 #CJK UNIFIED IDEOGRAPH +0x8D6C 0x5CEB #CJK UNIFIED IDEOGRAPH +0x8D6D 0x5CEC #CJK UNIFIED IDEOGRAPH +0x8D6E 0x5CEE #CJK UNIFIED IDEOGRAPH +0x8D6F 0x5CEF #CJK UNIFIED IDEOGRAPH +0x8D70 0x5CF1 #CJK UNIFIED IDEOGRAPH +0x8D71 0x5CF2 #CJK UNIFIED IDEOGRAPH +0x8D72 0x5CF3 #CJK UNIFIED IDEOGRAPH +0x8D73 0x5CF4 #CJK UNIFIED IDEOGRAPH +0x8D74 0x5CF5 #CJK UNIFIED IDEOGRAPH +0x8D75 0x5CF6 #CJK UNIFIED IDEOGRAPH +0x8D76 0x5CF7 #CJK UNIFIED IDEOGRAPH +0x8D77 0x5CF8 #CJK UNIFIED IDEOGRAPH +0x8D78 0x5CF9 #CJK UNIFIED IDEOGRAPH +0x8D79 0x5CFA #CJK UNIFIED IDEOGRAPH +0x8D7A 0x5CFC #CJK UNIFIED IDEOGRAPH +0x8D7B 0x5CFD #CJK UNIFIED IDEOGRAPH +0x8D7C 0x5CFE #CJK UNIFIED IDEOGRAPH +0x8D7D 0x5CFF #CJK UNIFIED IDEOGRAPH +0x8D7E 0x5D00 #CJK UNIFIED IDEOGRAPH +0x8D80 0x5D01 #CJK UNIFIED IDEOGRAPH +0x8D81 0x5D04 #CJK UNIFIED IDEOGRAPH +0x8D82 0x5D05 #CJK UNIFIED IDEOGRAPH +0x8D83 0x5D08 #CJK UNIFIED IDEOGRAPH +0x8D84 0x5D09 #CJK UNIFIED IDEOGRAPH +0x8D85 0x5D0A #CJK UNIFIED IDEOGRAPH +0x8D86 0x5D0B #CJK UNIFIED IDEOGRAPH +0x8D87 0x5D0C #CJK UNIFIED IDEOGRAPH +0x8D88 0x5D0D #CJK UNIFIED IDEOGRAPH +0x8D89 0x5D0F #CJK UNIFIED IDEOGRAPH +0x8D8A 0x5D10 #CJK UNIFIED IDEOGRAPH +0x8D8B 0x5D11 #CJK UNIFIED IDEOGRAPH +0x8D8C 0x5D12 #CJK UNIFIED IDEOGRAPH +0x8D8D 0x5D13 #CJK UNIFIED IDEOGRAPH +0x8D8E 0x5D15 #CJK UNIFIED IDEOGRAPH +0x8D8F 0x5D17 #CJK UNIFIED IDEOGRAPH +0x8D90 0x5D18 #CJK UNIFIED IDEOGRAPH +0x8D91 0x5D19 #CJK UNIFIED IDEOGRAPH +0x8D92 0x5D1A #CJK UNIFIED IDEOGRAPH +0x8D93 0x5D1C #CJK UNIFIED IDEOGRAPH +0x8D94 0x5D1D #CJK UNIFIED IDEOGRAPH +0x8D95 0x5D1F #CJK UNIFIED IDEOGRAPH +0x8D96 0x5D20 #CJK UNIFIED IDEOGRAPH +0x8D97 0x5D21 #CJK UNIFIED IDEOGRAPH +0x8D98 0x5D22 #CJK UNIFIED IDEOGRAPH +0x8D99 0x5D23 #CJK UNIFIED IDEOGRAPH +0x8D9A 0x5D25 #CJK UNIFIED IDEOGRAPH +0x8D9B 0x5D28 #CJK UNIFIED IDEOGRAPH +0x8D9C 0x5D2A #CJK UNIFIED IDEOGRAPH +0x8D9D 0x5D2B #CJK UNIFIED IDEOGRAPH +0x8D9E 0x5D2C #CJK UNIFIED IDEOGRAPH +0x8D9F 0x5D2F #CJK UNIFIED IDEOGRAPH +0x8DA0 0x5D30 #CJK UNIFIED IDEOGRAPH +0x8DA1 0x5D31 #CJK UNIFIED IDEOGRAPH +0x8DA2 0x5D32 #CJK UNIFIED IDEOGRAPH +0x8DA3 0x5D33 #CJK UNIFIED IDEOGRAPH +0x8DA4 0x5D35 #CJK UNIFIED IDEOGRAPH +0x8DA5 0x5D36 #CJK UNIFIED IDEOGRAPH +0x8DA6 0x5D37 #CJK UNIFIED IDEOGRAPH +0x8DA7 0x5D38 #CJK UNIFIED IDEOGRAPH +0x8DA8 0x5D39 #CJK UNIFIED IDEOGRAPH +0x8DA9 0x5D3A #CJK UNIFIED IDEOGRAPH +0x8DAA 0x5D3B #CJK UNIFIED IDEOGRAPH +0x8DAB 0x5D3C #CJK UNIFIED IDEOGRAPH +0x8DAC 0x5D3F #CJK UNIFIED IDEOGRAPH +0x8DAD 0x5D40 #CJK UNIFIED IDEOGRAPH +0x8DAE 0x5D41 #CJK UNIFIED IDEOGRAPH +0x8DAF 0x5D42 #CJK UNIFIED IDEOGRAPH +0x8DB0 0x5D43 #CJK UNIFIED IDEOGRAPH +0x8DB1 0x5D44 #CJK UNIFIED IDEOGRAPH +0x8DB2 0x5D45 #CJK UNIFIED IDEOGRAPH +0x8DB3 0x5D46 #CJK UNIFIED IDEOGRAPH +0x8DB4 0x5D48 #CJK UNIFIED IDEOGRAPH +0x8DB5 0x5D49 #CJK UNIFIED IDEOGRAPH +0x8DB6 0x5D4D #CJK UNIFIED IDEOGRAPH +0x8DB7 0x5D4E #CJK UNIFIED IDEOGRAPH +0x8DB8 0x5D4F #CJK UNIFIED IDEOGRAPH +0x8DB9 0x5D50 #CJK UNIFIED IDEOGRAPH +0x8DBA 0x5D51 #CJK UNIFIED IDEOGRAPH +0x8DBB 0x5D52 #CJK UNIFIED IDEOGRAPH +0x8DBC 0x5D53 #CJK UNIFIED IDEOGRAPH +0x8DBD 0x5D54 #CJK UNIFIED IDEOGRAPH +0x8DBE 0x5D55 #CJK UNIFIED IDEOGRAPH +0x8DBF 0x5D56 #CJK UNIFIED IDEOGRAPH +0x8DC0 0x5D57 #CJK UNIFIED IDEOGRAPH +0x8DC1 0x5D59 #CJK UNIFIED IDEOGRAPH +0x8DC2 0x5D5A #CJK UNIFIED IDEOGRAPH +0x8DC3 0x5D5C #CJK UNIFIED IDEOGRAPH +0x8DC4 0x5D5E #CJK UNIFIED IDEOGRAPH +0x8DC5 0x5D5F #CJK UNIFIED IDEOGRAPH +0x8DC6 0x5D60 #CJK UNIFIED IDEOGRAPH +0x8DC7 0x5D61 #CJK UNIFIED IDEOGRAPH +0x8DC8 0x5D62 #CJK UNIFIED IDEOGRAPH +0x8DC9 0x5D63 #CJK UNIFIED IDEOGRAPH +0x8DCA 0x5D64 #CJK UNIFIED IDEOGRAPH +0x8DCB 0x5D65 #CJK UNIFIED IDEOGRAPH +0x8DCC 0x5D66 #CJK UNIFIED IDEOGRAPH +0x8DCD 0x5D67 #CJK UNIFIED IDEOGRAPH +0x8DCE 0x5D68 #CJK UNIFIED IDEOGRAPH +0x8DCF 0x5D6A #CJK UNIFIED IDEOGRAPH +0x8DD0 0x5D6D #CJK UNIFIED IDEOGRAPH +0x8DD1 0x5D6E #CJK UNIFIED IDEOGRAPH +0x8DD2 0x5D70 #CJK UNIFIED IDEOGRAPH +0x8DD3 0x5D71 #CJK UNIFIED IDEOGRAPH +0x8DD4 0x5D72 #CJK UNIFIED IDEOGRAPH +0x8DD5 0x5D73 #CJK UNIFIED IDEOGRAPH +0x8DD6 0x5D75 #CJK UNIFIED IDEOGRAPH +0x8DD7 0x5D76 #CJK UNIFIED IDEOGRAPH +0x8DD8 0x5D77 #CJK UNIFIED IDEOGRAPH +0x8DD9 0x5D78 #CJK UNIFIED IDEOGRAPH +0x8DDA 0x5D79 #CJK UNIFIED IDEOGRAPH +0x8DDB 0x5D7A #CJK UNIFIED IDEOGRAPH +0x8DDC 0x5D7B #CJK UNIFIED IDEOGRAPH +0x8DDD 0x5D7C #CJK UNIFIED IDEOGRAPH +0x8DDE 0x5D7D #CJK UNIFIED IDEOGRAPH +0x8DDF 0x5D7E #CJK UNIFIED IDEOGRAPH +0x8DE0 0x5D7F #CJK UNIFIED IDEOGRAPH +0x8DE1 0x5D80 #CJK UNIFIED IDEOGRAPH +0x8DE2 0x5D81 #CJK UNIFIED IDEOGRAPH +0x8DE3 0x5D83 #CJK UNIFIED IDEOGRAPH +0x8DE4 0x5D84 #CJK UNIFIED IDEOGRAPH +0x8DE5 0x5D85 #CJK UNIFIED IDEOGRAPH +0x8DE6 0x5D86 #CJK UNIFIED IDEOGRAPH +0x8DE7 0x5D87 #CJK UNIFIED IDEOGRAPH +0x8DE8 0x5D88 #CJK UNIFIED IDEOGRAPH +0x8DE9 0x5D89 #CJK UNIFIED IDEOGRAPH +0x8DEA 0x5D8A #CJK UNIFIED IDEOGRAPH +0x8DEB 0x5D8B #CJK UNIFIED IDEOGRAPH +0x8DEC 0x5D8C #CJK UNIFIED IDEOGRAPH +0x8DED 0x5D8D #CJK UNIFIED IDEOGRAPH +0x8DEE 0x5D8E #CJK UNIFIED IDEOGRAPH +0x8DEF 0x5D8F #CJK UNIFIED IDEOGRAPH +0x8DF0 0x5D90 #CJK UNIFIED IDEOGRAPH +0x8DF1 0x5D91 #CJK UNIFIED IDEOGRAPH +0x8DF2 0x5D92 #CJK UNIFIED IDEOGRAPH +0x8DF3 0x5D93 #CJK UNIFIED IDEOGRAPH +0x8DF4 0x5D94 #CJK UNIFIED IDEOGRAPH +0x8DF5 0x5D95 #CJK UNIFIED IDEOGRAPH +0x8DF6 0x5D96 #CJK UNIFIED IDEOGRAPH +0x8DF7 0x5D97 #CJK UNIFIED IDEOGRAPH +0x8DF8 0x5D98 #CJK UNIFIED IDEOGRAPH +0x8DF9 0x5D9A #CJK UNIFIED IDEOGRAPH +0x8DFA 0x5D9B #CJK UNIFIED IDEOGRAPH +0x8DFB 0x5D9C #CJK UNIFIED IDEOGRAPH +0x8DFC 0x5D9E #CJK UNIFIED IDEOGRAPH +0x8DFD 0x5D9F #CJK UNIFIED IDEOGRAPH +0x8DFE 0x5DA0 #CJK UNIFIED IDEOGRAPH +0x8E40 0x5DA1 #CJK UNIFIED IDEOGRAPH +0x8E41 0x5DA2 #CJK UNIFIED IDEOGRAPH +0x8E42 0x5DA3 #CJK UNIFIED IDEOGRAPH +0x8E43 0x5DA4 #CJK UNIFIED IDEOGRAPH +0x8E44 0x5DA5 #CJK UNIFIED IDEOGRAPH +0x8E45 0x5DA6 #CJK UNIFIED IDEOGRAPH +0x8E46 0x5DA7 #CJK UNIFIED IDEOGRAPH +0x8E47 0x5DA8 #CJK UNIFIED IDEOGRAPH +0x8E48 0x5DA9 #CJK UNIFIED IDEOGRAPH +0x8E49 0x5DAA #CJK UNIFIED IDEOGRAPH +0x8E4A 0x5DAB #CJK UNIFIED IDEOGRAPH +0x8E4B 0x5DAC #CJK UNIFIED IDEOGRAPH +0x8E4C 0x5DAD #CJK UNIFIED IDEOGRAPH +0x8E4D 0x5DAE #CJK UNIFIED IDEOGRAPH +0x8E4E 0x5DAF #CJK UNIFIED IDEOGRAPH +0x8E4F 0x5DB0 #CJK UNIFIED IDEOGRAPH +0x8E50 0x5DB1 #CJK UNIFIED IDEOGRAPH +0x8E51 0x5DB2 #CJK UNIFIED IDEOGRAPH +0x8E52 0x5DB3 #CJK UNIFIED IDEOGRAPH +0x8E53 0x5DB4 #CJK UNIFIED IDEOGRAPH +0x8E54 0x5DB5 #CJK UNIFIED IDEOGRAPH +0x8E55 0x5DB6 #CJK UNIFIED IDEOGRAPH +0x8E56 0x5DB8 #CJK UNIFIED IDEOGRAPH +0x8E57 0x5DB9 #CJK UNIFIED IDEOGRAPH +0x8E58 0x5DBA #CJK UNIFIED IDEOGRAPH +0x8E59 0x5DBB #CJK UNIFIED IDEOGRAPH +0x8E5A 0x5DBC #CJK UNIFIED IDEOGRAPH +0x8E5B 0x5DBD #CJK UNIFIED IDEOGRAPH +0x8E5C 0x5DBE #CJK UNIFIED IDEOGRAPH +0x8E5D 0x5DBF #CJK UNIFIED IDEOGRAPH +0x8E5E 0x5DC0 #CJK UNIFIED IDEOGRAPH +0x8E5F 0x5DC1 #CJK UNIFIED IDEOGRAPH +0x8E60 0x5DC2 #CJK UNIFIED IDEOGRAPH +0x8E61 0x5DC3 #CJK UNIFIED IDEOGRAPH +0x8E62 0x5DC4 #CJK UNIFIED IDEOGRAPH +0x8E63 0x5DC6 #CJK UNIFIED IDEOGRAPH +0x8E64 0x5DC7 #CJK UNIFIED IDEOGRAPH +0x8E65 0x5DC8 #CJK UNIFIED IDEOGRAPH +0x8E66 0x5DC9 #CJK UNIFIED IDEOGRAPH +0x8E67 0x5DCA #CJK UNIFIED IDEOGRAPH +0x8E68 0x5DCB #CJK UNIFIED IDEOGRAPH +0x8E69 0x5DCC #CJK UNIFIED IDEOGRAPH +0x8E6A 0x5DCE #CJK UNIFIED IDEOGRAPH +0x8E6B 0x5DCF #CJK UNIFIED IDEOGRAPH +0x8E6C 0x5DD0 #CJK UNIFIED IDEOGRAPH +0x8E6D 0x5DD1 #CJK UNIFIED IDEOGRAPH +0x8E6E 0x5DD2 #CJK UNIFIED IDEOGRAPH +0x8E6F 0x5DD3 #CJK UNIFIED IDEOGRAPH +0x8E70 0x5DD4 #CJK UNIFIED IDEOGRAPH +0x8E71 0x5DD5 #CJK UNIFIED IDEOGRAPH +0x8E72 0x5DD6 #CJK UNIFIED IDEOGRAPH +0x8E73 0x5DD7 #CJK UNIFIED IDEOGRAPH +0x8E74 0x5DD8 #CJK UNIFIED IDEOGRAPH +0x8E75 0x5DD9 #CJK UNIFIED IDEOGRAPH +0x8E76 0x5DDA #CJK UNIFIED IDEOGRAPH +0x8E77 0x5DDC #CJK UNIFIED IDEOGRAPH +0x8E78 0x5DDF #CJK UNIFIED IDEOGRAPH +0x8E79 0x5DE0 #CJK UNIFIED IDEOGRAPH +0x8E7A 0x5DE3 #CJK UNIFIED IDEOGRAPH +0x8E7B 0x5DE4 #CJK UNIFIED IDEOGRAPH +0x8E7C 0x5DEA #CJK UNIFIED IDEOGRAPH +0x8E7D 0x5DEC #CJK UNIFIED IDEOGRAPH +0x8E7E 0x5DED #CJK UNIFIED IDEOGRAPH +0x8E80 0x5DF0 #CJK UNIFIED IDEOGRAPH +0x8E81 0x5DF5 #CJK UNIFIED IDEOGRAPH +0x8E82 0x5DF6 #CJK UNIFIED IDEOGRAPH +0x8E83 0x5DF8 #CJK UNIFIED IDEOGRAPH +0x8E84 0x5DF9 #CJK UNIFIED IDEOGRAPH +0x8E85 0x5DFA #CJK UNIFIED IDEOGRAPH +0x8E86 0x5DFB #CJK UNIFIED IDEOGRAPH +0x8E87 0x5DFC #CJK UNIFIED IDEOGRAPH +0x8E88 0x5DFF #CJK UNIFIED IDEOGRAPH +0x8E89 0x5E00 #CJK UNIFIED IDEOGRAPH +0x8E8A 0x5E04 #CJK UNIFIED IDEOGRAPH +0x8E8B 0x5E07 #CJK UNIFIED IDEOGRAPH +0x8E8C 0x5E09 #CJK UNIFIED IDEOGRAPH +0x8E8D 0x5E0A #CJK UNIFIED IDEOGRAPH +0x8E8E 0x5E0B #CJK UNIFIED IDEOGRAPH +0x8E8F 0x5E0D #CJK UNIFIED IDEOGRAPH +0x8E90 0x5E0E #CJK UNIFIED IDEOGRAPH +0x8E91 0x5E12 #CJK UNIFIED IDEOGRAPH +0x8E92 0x5E13 #CJK UNIFIED IDEOGRAPH +0x8E93 0x5E17 #CJK UNIFIED IDEOGRAPH +0x8E94 0x5E1E #CJK UNIFIED IDEOGRAPH +0x8E95 0x5E1F #CJK UNIFIED IDEOGRAPH +0x8E96 0x5E20 #CJK UNIFIED IDEOGRAPH +0x8E97 0x5E21 #CJK UNIFIED IDEOGRAPH +0x8E98 0x5E22 #CJK UNIFIED IDEOGRAPH +0x8E99 0x5E23 #CJK UNIFIED IDEOGRAPH +0x8E9A 0x5E24 #CJK UNIFIED IDEOGRAPH +0x8E9B 0x5E25 #CJK UNIFIED IDEOGRAPH +0x8E9C 0x5E28 #CJK UNIFIED IDEOGRAPH +0x8E9D 0x5E29 #CJK UNIFIED IDEOGRAPH +0x8E9E 0x5E2A #CJK UNIFIED IDEOGRAPH +0x8E9F 0x5E2B #CJK UNIFIED IDEOGRAPH +0x8EA0 0x5E2C #CJK UNIFIED IDEOGRAPH +0x8EA1 0x5E2F #CJK UNIFIED IDEOGRAPH +0x8EA2 0x5E30 #CJK UNIFIED IDEOGRAPH +0x8EA3 0x5E32 #CJK UNIFIED IDEOGRAPH +0x8EA4 0x5E33 #CJK UNIFIED IDEOGRAPH +0x8EA5 0x5E34 #CJK UNIFIED IDEOGRAPH +0x8EA6 0x5E35 #CJK UNIFIED IDEOGRAPH +0x8EA7 0x5E36 #CJK UNIFIED IDEOGRAPH +0x8EA8 0x5E39 #CJK UNIFIED IDEOGRAPH +0x8EA9 0x5E3A #CJK UNIFIED IDEOGRAPH +0x8EAA 0x5E3E #CJK UNIFIED IDEOGRAPH +0x8EAB 0x5E3F #CJK UNIFIED IDEOGRAPH +0x8EAC 0x5E40 #CJK UNIFIED IDEOGRAPH +0x8EAD 0x5E41 #CJK UNIFIED IDEOGRAPH +0x8EAE 0x5E43 #CJK UNIFIED IDEOGRAPH +0x8EAF 0x5E46 #CJK UNIFIED IDEOGRAPH +0x8EB0 0x5E47 #CJK UNIFIED IDEOGRAPH +0x8EB1 0x5E48 #CJK UNIFIED IDEOGRAPH +0x8EB2 0x5E49 #CJK UNIFIED IDEOGRAPH +0x8EB3 0x5E4A #CJK UNIFIED IDEOGRAPH +0x8EB4 0x5E4B #CJK UNIFIED IDEOGRAPH +0x8EB5 0x5E4D #CJK UNIFIED IDEOGRAPH +0x8EB6 0x5E4E #CJK UNIFIED IDEOGRAPH +0x8EB7 0x5E4F #CJK UNIFIED IDEOGRAPH +0x8EB8 0x5E50 #CJK UNIFIED IDEOGRAPH +0x8EB9 0x5E51 #CJK UNIFIED IDEOGRAPH +0x8EBA 0x5E52 #CJK UNIFIED IDEOGRAPH +0x8EBB 0x5E53 #CJK UNIFIED IDEOGRAPH +0x8EBC 0x5E56 #CJK UNIFIED IDEOGRAPH +0x8EBD 0x5E57 #CJK UNIFIED IDEOGRAPH +0x8EBE 0x5E58 #CJK UNIFIED IDEOGRAPH +0x8EBF 0x5E59 #CJK UNIFIED IDEOGRAPH +0x8EC0 0x5E5A #CJK UNIFIED IDEOGRAPH +0x8EC1 0x5E5C #CJK UNIFIED IDEOGRAPH +0x8EC2 0x5E5D #CJK UNIFIED IDEOGRAPH +0x8EC3 0x5E5F #CJK UNIFIED IDEOGRAPH +0x8EC4 0x5E60 #CJK UNIFIED IDEOGRAPH +0x8EC5 0x5E63 #CJK UNIFIED IDEOGRAPH +0x8EC6 0x5E64 #CJK UNIFIED IDEOGRAPH +0x8EC7 0x5E65 #CJK UNIFIED IDEOGRAPH +0x8EC8 0x5E66 #CJK UNIFIED IDEOGRAPH +0x8EC9 0x5E67 #CJK UNIFIED IDEOGRAPH +0x8ECA 0x5E68 #CJK UNIFIED IDEOGRAPH +0x8ECB 0x5E69 #CJK UNIFIED IDEOGRAPH +0x8ECC 0x5E6A #CJK UNIFIED IDEOGRAPH +0x8ECD 0x5E6B #CJK UNIFIED IDEOGRAPH +0x8ECE 0x5E6C #CJK UNIFIED IDEOGRAPH +0x8ECF 0x5E6D #CJK UNIFIED IDEOGRAPH +0x8ED0 0x5E6E #CJK UNIFIED IDEOGRAPH +0x8ED1 0x5E6F #CJK UNIFIED IDEOGRAPH +0x8ED2 0x5E70 #CJK UNIFIED IDEOGRAPH +0x8ED3 0x5E71 #CJK UNIFIED IDEOGRAPH +0x8ED4 0x5E75 #CJK UNIFIED IDEOGRAPH +0x8ED5 0x5E77 #CJK UNIFIED IDEOGRAPH +0x8ED6 0x5E79 #CJK UNIFIED IDEOGRAPH +0x8ED7 0x5E7E #CJK UNIFIED IDEOGRAPH +0x8ED8 0x5E81 #CJK UNIFIED IDEOGRAPH +0x8ED9 0x5E82 #CJK UNIFIED IDEOGRAPH +0x8EDA 0x5E83 #CJK UNIFIED IDEOGRAPH +0x8EDB 0x5E85 #CJK UNIFIED IDEOGRAPH +0x8EDC 0x5E88 #CJK UNIFIED IDEOGRAPH +0x8EDD 0x5E89 #CJK UNIFIED IDEOGRAPH +0x8EDE 0x5E8C #CJK UNIFIED IDEOGRAPH +0x8EDF 0x5E8D #CJK UNIFIED IDEOGRAPH +0x8EE0 0x5E8E #CJK UNIFIED IDEOGRAPH +0x8EE1 0x5E92 #CJK UNIFIED IDEOGRAPH +0x8EE2 0x5E98 #CJK UNIFIED IDEOGRAPH +0x8EE3 0x5E9B #CJK UNIFIED IDEOGRAPH +0x8EE4 0x5E9D #CJK UNIFIED IDEOGRAPH +0x8EE5 0x5EA1 #CJK UNIFIED IDEOGRAPH +0x8EE6 0x5EA2 #CJK UNIFIED IDEOGRAPH +0x8EE7 0x5EA3 #CJK UNIFIED IDEOGRAPH +0x8EE8 0x5EA4 #CJK UNIFIED IDEOGRAPH +0x8EE9 0x5EA8 #CJK UNIFIED IDEOGRAPH +0x8EEA 0x5EA9 #CJK UNIFIED IDEOGRAPH +0x8EEB 0x5EAA #CJK UNIFIED IDEOGRAPH +0x8EEC 0x5EAB #CJK UNIFIED IDEOGRAPH +0x8EED 0x5EAC #CJK UNIFIED IDEOGRAPH +0x8EEE 0x5EAE #CJK UNIFIED IDEOGRAPH +0x8EEF 0x5EAF #CJK UNIFIED IDEOGRAPH +0x8EF0 0x5EB0 #CJK UNIFIED IDEOGRAPH +0x8EF1 0x5EB1 #CJK UNIFIED IDEOGRAPH +0x8EF2 0x5EB2 #CJK UNIFIED IDEOGRAPH +0x8EF3 0x5EB4 #CJK UNIFIED IDEOGRAPH +0x8EF4 0x5EBA #CJK UNIFIED IDEOGRAPH +0x8EF5 0x5EBB #CJK UNIFIED IDEOGRAPH +0x8EF6 0x5EBC #CJK UNIFIED IDEOGRAPH +0x8EF7 0x5EBD #CJK UNIFIED IDEOGRAPH +0x8EF8 0x5EBF #CJK UNIFIED IDEOGRAPH +0x8EF9 0x5EC0 #CJK UNIFIED IDEOGRAPH +0x8EFA 0x5EC1 #CJK UNIFIED IDEOGRAPH +0x8EFB 0x5EC2 #CJK UNIFIED IDEOGRAPH +0x8EFC 0x5EC3 #CJK UNIFIED IDEOGRAPH +0x8EFD 0x5EC4 #CJK UNIFIED IDEOGRAPH +0x8EFE 0x5EC5 #CJK UNIFIED IDEOGRAPH +0x8F40 0x5EC6 #CJK UNIFIED IDEOGRAPH +0x8F41 0x5EC7 #CJK UNIFIED IDEOGRAPH +0x8F42 0x5EC8 #CJK UNIFIED IDEOGRAPH +0x8F43 0x5ECB #CJK UNIFIED IDEOGRAPH +0x8F44 0x5ECC #CJK UNIFIED IDEOGRAPH +0x8F45 0x5ECD #CJK UNIFIED IDEOGRAPH +0x8F46 0x5ECE #CJK UNIFIED IDEOGRAPH +0x8F47 0x5ECF #CJK UNIFIED IDEOGRAPH +0x8F48 0x5ED0 #CJK UNIFIED IDEOGRAPH +0x8F49 0x5ED4 #CJK UNIFIED IDEOGRAPH +0x8F4A 0x5ED5 #CJK UNIFIED IDEOGRAPH +0x8F4B 0x5ED7 #CJK UNIFIED IDEOGRAPH +0x8F4C 0x5ED8 #CJK UNIFIED IDEOGRAPH +0x8F4D 0x5ED9 #CJK UNIFIED IDEOGRAPH +0x8F4E 0x5EDA #CJK UNIFIED IDEOGRAPH +0x8F4F 0x5EDC #CJK UNIFIED IDEOGRAPH +0x8F50 0x5EDD #CJK UNIFIED IDEOGRAPH +0x8F51 0x5EDE #CJK UNIFIED IDEOGRAPH +0x8F52 0x5EDF #CJK UNIFIED IDEOGRAPH +0x8F53 0x5EE0 #CJK UNIFIED IDEOGRAPH +0x8F54 0x5EE1 #CJK UNIFIED IDEOGRAPH +0x8F55 0x5EE2 #CJK UNIFIED IDEOGRAPH +0x8F56 0x5EE3 #CJK UNIFIED IDEOGRAPH +0x8F57 0x5EE4 #CJK UNIFIED IDEOGRAPH +0x8F58 0x5EE5 #CJK UNIFIED IDEOGRAPH +0x8F59 0x5EE6 #CJK UNIFIED IDEOGRAPH +0x8F5A 0x5EE7 #CJK UNIFIED IDEOGRAPH +0x8F5B 0x5EE9 #CJK UNIFIED IDEOGRAPH +0x8F5C 0x5EEB #CJK UNIFIED IDEOGRAPH +0x8F5D 0x5EEC #CJK UNIFIED IDEOGRAPH +0x8F5E 0x5EED #CJK UNIFIED IDEOGRAPH +0x8F5F 0x5EEE #CJK UNIFIED IDEOGRAPH +0x8F60 0x5EEF #CJK UNIFIED IDEOGRAPH +0x8F61 0x5EF0 #CJK UNIFIED IDEOGRAPH +0x8F62 0x5EF1 #CJK UNIFIED IDEOGRAPH +0x8F63 0x5EF2 #CJK UNIFIED IDEOGRAPH +0x8F64 0x5EF3 #CJK UNIFIED IDEOGRAPH +0x8F65 0x5EF5 #CJK UNIFIED IDEOGRAPH +0x8F66 0x5EF8 #CJK UNIFIED IDEOGRAPH +0x8F67 0x5EF9 #CJK UNIFIED IDEOGRAPH +0x8F68 0x5EFB #CJK UNIFIED IDEOGRAPH +0x8F69 0x5EFC #CJK UNIFIED IDEOGRAPH +0x8F6A 0x5EFD #CJK UNIFIED IDEOGRAPH +0x8F6B 0x5F05 #CJK UNIFIED IDEOGRAPH +0x8F6C 0x5F06 #CJK UNIFIED IDEOGRAPH +0x8F6D 0x5F07 #CJK UNIFIED IDEOGRAPH +0x8F6E 0x5F09 #CJK UNIFIED IDEOGRAPH +0x8F6F 0x5F0C #CJK UNIFIED IDEOGRAPH +0x8F70 0x5F0D #CJK UNIFIED IDEOGRAPH +0x8F71 0x5F0E #CJK UNIFIED IDEOGRAPH +0x8F72 0x5F10 #CJK UNIFIED IDEOGRAPH +0x8F73 0x5F12 #CJK UNIFIED IDEOGRAPH +0x8F74 0x5F14 #CJK UNIFIED IDEOGRAPH +0x8F75 0x5F16 #CJK UNIFIED IDEOGRAPH +0x8F76 0x5F19 #CJK UNIFIED IDEOGRAPH +0x8F77 0x5F1A #CJK UNIFIED IDEOGRAPH +0x8F78 0x5F1C #CJK UNIFIED IDEOGRAPH +0x8F79 0x5F1D #CJK UNIFIED IDEOGRAPH +0x8F7A 0x5F1E #CJK UNIFIED IDEOGRAPH +0x8F7B 0x5F21 #CJK UNIFIED IDEOGRAPH +0x8F7C 0x5F22 #CJK UNIFIED IDEOGRAPH +0x8F7D 0x5F23 #CJK UNIFIED IDEOGRAPH +0x8F7E 0x5F24 #CJK UNIFIED IDEOGRAPH +0x8F80 0x5F28 #CJK UNIFIED IDEOGRAPH +0x8F81 0x5F2B #CJK UNIFIED IDEOGRAPH +0x8F82 0x5F2C #CJK UNIFIED IDEOGRAPH +0x8F83 0x5F2E #CJK UNIFIED IDEOGRAPH +0x8F84 0x5F30 #CJK UNIFIED IDEOGRAPH +0x8F85 0x5F32 #CJK UNIFIED IDEOGRAPH +0x8F86 0x5F33 #CJK UNIFIED IDEOGRAPH +0x8F87 0x5F34 #CJK UNIFIED IDEOGRAPH +0x8F88 0x5F35 #CJK UNIFIED IDEOGRAPH +0x8F89 0x5F36 #CJK UNIFIED IDEOGRAPH +0x8F8A 0x5F37 #CJK UNIFIED IDEOGRAPH +0x8F8B 0x5F38 #CJK UNIFIED IDEOGRAPH +0x8F8C 0x5F3B #CJK UNIFIED IDEOGRAPH +0x8F8D 0x5F3D #CJK UNIFIED IDEOGRAPH +0x8F8E 0x5F3E #CJK UNIFIED IDEOGRAPH +0x8F8F 0x5F3F #CJK UNIFIED IDEOGRAPH +0x8F90 0x5F41 #CJK UNIFIED IDEOGRAPH +0x8F91 0x5F42 #CJK UNIFIED IDEOGRAPH +0x8F92 0x5F43 #CJK UNIFIED IDEOGRAPH +0x8F93 0x5F44 #CJK UNIFIED IDEOGRAPH +0x8F94 0x5F45 #CJK UNIFIED IDEOGRAPH +0x8F95 0x5F46 #CJK UNIFIED IDEOGRAPH +0x8F96 0x5F47 #CJK UNIFIED IDEOGRAPH +0x8F97 0x5F48 #CJK UNIFIED IDEOGRAPH +0x8F98 0x5F49 #CJK UNIFIED IDEOGRAPH +0x8F99 0x5F4A #CJK UNIFIED IDEOGRAPH +0x8F9A 0x5F4B #CJK UNIFIED IDEOGRAPH +0x8F9B 0x5F4C #CJK UNIFIED IDEOGRAPH +0x8F9C 0x5F4D #CJK UNIFIED IDEOGRAPH +0x8F9D 0x5F4E #CJK UNIFIED IDEOGRAPH +0x8F9E 0x5F4F #CJK UNIFIED IDEOGRAPH +0x8F9F 0x5F51 #CJK UNIFIED IDEOGRAPH +0x8FA0 0x5F54 #CJK UNIFIED IDEOGRAPH +0x8FA1 0x5F59 #CJK UNIFIED IDEOGRAPH +0x8FA2 0x5F5A #CJK UNIFIED IDEOGRAPH +0x8FA3 0x5F5B #CJK UNIFIED IDEOGRAPH +0x8FA4 0x5F5C #CJK UNIFIED IDEOGRAPH +0x8FA5 0x5F5E #CJK UNIFIED IDEOGRAPH +0x8FA6 0x5F5F #CJK UNIFIED IDEOGRAPH +0x8FA7 0x5F60 #CJK UNIFIED IDEOGRAPH +0x8FA8 0x5F63 #CJK UNIFIED IDEOGRAPH +0x8FA9 0x5F65 #CJK UNIFIED IDEOGRAPH +0x8FAA 0x5F67 #CJK UNIFIED IDEOGRAPH +0x8FAB 0x5F68 #CJK UNIFIED IDEOGRAPH +0x8FAC 0x5F6B #CJK UNIFIED IDEOGRAPH +0x8FAD 0x5F6E #CJK UNIFIED IDEOGRAPH +0x8FAE 0x5F6F #CJK UNIFIED IDEOGRAPH +0x8FAF 0x5F72 #CJK UNIFIED IDEOGRAPH +0x8FB0 0x5F74 #CJK UNIFIED IDEOGRAPH +0x8FB1 0x5F75 #CJK UNIFIED IDEOGRAPH +0x8FB2 0x5F76 #CJK UNIFIED IDEOGRAPH +0x8FB3 0x5F78 #CJK UNIFIED IDEOGRAPH +0x8FB4 0x5F7A #CJK UNIFIED IDEOGRAPH +0x8FB5 0x5F7D #CJK UNIFIED IDEOGRAPH +0x8FB6 0x5F7E #CJK UNIFIED IDEOGRAPH +0x8FB7 0x5F7F #CJK UNIFIED IDEOGRAPH +0x8FB8 0x5F83 #CJK UNIFIED IDEOGRAPH +0x8FB9 0x5F86 #CJK UNIFIED IDEOGRAPH +0x8FBA 0x5F8D #CJK UNIFIED IDEOGRAPH +0x8FBB 0x5F8E #CJK UNIFIED IDEOGRAPH +0x8FBC 0x5F8F #CJK UNIFIED IDEOGRAPH +0x8FBD 0x5F91 #CJK UNIFIED IDEOGRAPH +0x8FBE 0x5F93 #CJK UNIFIED IDEOGRAPH +0x8FBF 0x5F94 #CJK UNIFIED IDEOGRAPH +0x8FC0 0x5F96 #CJK UNIFIED IDEOGRAPH +0x8FC1 0x5F9A #CJK UNIFIED IDEOGRAPH +0x8FC2 0x5F9B #CJK UNIFIED IDEOGRAPH +0x8FC3 0x5F9D #CJK UNIFIED IDEOGRAPH +0x8FC4 0x5F9E #CJK UNIFIED IDEOGRAPH +0x8FC5 0x5F9F #CJK UNIFIED IDEOGRAPH +0x8FC6 0x5FA0 #CJK UNIFIED IDEOGRAPH +0x8FC7 0x5FA2 #CJK UNIFIED IDEOGRAPH +0x8FC8 0x5FA3 #CJK UNIFIED IDEOGRAPH +0x8FC9 0x5FA4 #CJK UNIFIED IDEOGRAPH +0x8FCA 0x5FA5 #CJK UNIFIED IDEOGRAPH +0x8FCB 0x5FA6 #CJK UNIFIED IDEOGRAPH +0x8FCC 0x5FA7 #CJK UNIFIED IDEOGRAPH +0x8FCD 0x5FA9 #CJK UNIFIED IDEOGRAPH +0x8FCE 0x5FAB #CJK UNIFIED IDEOGRAPH +0x8FCF 0x5FAC #CJK UNIFIED IDEOGRAPH +0x8FD0 0x5FAF #CJK UNIFIED IDEOGRAPH +0x8FD1 0x5FB0 #CJK UNIFIED IDEOGRAPH +0x8FD2 0x5FB1 #CJK UNIFIED IDEOGRAPH +0x8FD3 0x5FB2 #CJK UNIFIED IDEOGRAPH +0x8FD4 0x5FB3 #CJK UNIFIED IDEOGRAPH +0x8FD5 0x5FB4 #CJK UNIFIED IDEOGRAPH +0x8FD6 0x5FB6 #CJK UNIFIED IDEOGRAPH +0x8FD7 0x5FB8 #CJK UNIFIED IDEOGRAPH +0x8FD8 0x5FB9 #CJK UNIFIED IDEOGRAPH +0x8FD9 0x5FBA #CJK UNIFIED IDEOGRAPH +0x8FDA 0x5FBB #CJK UNIFIED IDEOGRAPH +0x8FDB 0x5FBE #CJK UNIFIED IDEOGRAPH +0x8FDC 0x5FBF #CJK UNIFIED IDEOGRAPH +0x8FDD 0x5FC0 #CJK UNIFIED IDEOGRAPH +0x8FDE 0x5FC1 #CJK UNIFIED IDEOGRAPH +0x8FDF 0x5FC2 #CJK UNIFIED IDEOGRAPH +0x8FE0 0x5FC7 #CJK UNIFIED IDEOGRAPH +0x8FE1 0x5FC8 #CJK UNIFIED IDEOGRAPH +0x8FE2 0x5FCA #CJK UNIFIED IDEOGRAPH +0x8FE3 0x5FCB #CJK UNIFIED IDEOGRAPH +0x8FE4 0x5FCE #CJK UNIFIED IDEOGRAPH +0x8FE5 0x5FD3 #CJK UNIFIED IDEOGRAPH +0x8FE6 0x5FD4 #CJK UNIFIED IDEOGRAPH +0x8FE7 0x5FD5 #CJK UNIFIED IDEOGRAPH +0x8FE8 0x5FDA #CJK UNIFIED IDEOGRAPH +0x8FE9 0x5FDB #CJK UNIFIED IDEOGRAPH +0x8FEA 0x5FDC #CJK UNIFIED IDEOGRAPH +0x8FEB 0x5FDE #CJK UNIFIED IDEOGRAPH +0x8FEC 0x5FDF #CJK UNIFIED IDEOGRAPH +0x8FED 0x5FE2 #CJK UNIFIED IDEOGRAPH +0x8FEE 0x5FE3 #CJK UNIFIED IDEOGRAPH +0x8FEF 0x5FE5 #CJK UNIFIED IDEOGRAPH +0x8FF0 0x5FE6 #CJK UNIFIED IDEOGRAPH +0x8FF1 0x5FE8 #CJK UNIFIED IDEOGRAPH +0x8FF2 0x5FE9 #CJK UNIFIED IDEOGRAPH +0x8FF3 0x5FEC #CJK UNIFIED IDEOGRAPH +0x8FF4 0x5FEF #CJK UNIFIED IDEOGRAPH +0x8FF5 0x5FF0 #CJK UNIFIED IDEOGRAPH +0x8FF6 0x5FF2 #CJK UNIFIED IDEOGRAPH +0x8FF7 0x5FF3 #CJK UNIFIED IDEOGRAPH +0x8FF8 0x5FF4 #CJK UNIFIED IDEOGRAPH +0x8FF9 0x5FF6 #CJK UNIFIED IDEOGRAPH +0x8FFA 0x5FF7 #CJK UNIFIED IDEOGRAPH +0x8FFB 0x5FF9 #CJK UNIFIED IDEOGRAPH +0x8FFC 0x5FFA #CJK UNIFIED IDEOGRAPH +0x8FFD 0x5FFC #CJK UNIFIED IDEOGRAPH +0x8FFE 0x6007 #CJK UNIFIED IDEOGRAPH +0x9040 0x6008 #CJK UNIFIED IDEOGRAPH +0x9041 0x6009 #CJK UNIFIED IDEOGRAPH +0x9042 0x600B #CJK UNIFIED IDEOGRAPH +0x9043 0x600C #CJK UNIFIED IDEOGRAPH +0x9044 0x6010 #CJK UNIFIED IDEOGRAPH +0x9045 0x6011 #CJK UNIFIED IDEOGRAPH +0x9046 0x6013 #CJK UNIFIED IDEOGRAPH +0x9047 0x6017 #CJK UNIFIED IDEOGRAPH +0x9048 0x6018 #CJK UNIFIED IDEOGRAPH +0x9049 0x601A #CJK UNIFIED IDEOGRAPH +0x904A 0x601E #CJK UNIFIED IDEOGRAPH +0x904B 0x601F #CJK UNIFIED IDEOGRAPH +0x904C 0x6022 #CJK UNIFIED IDEOGRAPH +0x904D 0x6023 #CJK UNIFIED IDEOGRAPH +0x904E 0x6024 #CJK UNIFIED IDEOGRAPH +0x904F 0x602C #CJK UNIFIED IDEOGRAPH +0x9050 0x602D #CJK UNIFIED IDEOGRAPH +0x9051 0x602E #CJK UNIFIED IDEOGRAPH +0x9052 0x6030 #CJK UNIFIED IDEOGRAPH +0x9053 0x6031 #CJK UNIFIED IDEOGRAPH +0x9054 0x6032 #CJK UNIFIED IDEOGRAPH +0x9055 0x6033 #CJK UNIFIED IDEOGRAPH +0x9056 0x6034 #CJK UNIFIED IDEOGRAPH +0x9057 0x6036 #CJK UNIFIED IDEOGRAPH +0x9058 0x6037 #CJK UNIFIED IDEOGRAPH +0x9059 0x6038 #CJK UNIFIED IDEOGRAPH +0x905A 0x6039 #CJK UNIFIED IDEOGRAPH +0x905B 0x603A #CJK UNIFIED IDEOGRAPH +0x905C 0x603D #CJK UNIFIED IDEOGRAPH +0x905D 0x603E #CJK UNIFIED IDEOGRAPH +0x905E 0x6040 #CJK UNIFIED IDEOGRAPH +0x905F 0x6044 #CJK UNIFIED IDEOGRAPH +0x9060 0x6045 #CJK UNIFIED IDEOGRAPH +0x9061 0x6046 #CJK UNIFIED IDEOGRAPH +0x9062 0x6047 #CJK UNIFIED IDEOGRAPH +0x9063 0x6048 #CJK UNIFIED IDEOGRAPH +0x9064 0x6049 #CJK UNIFIED IDEOGRAPH +0x9065 0x604A #CJK UNIFIED IDEOGRAPH +0x9066 0x604C #CJK UNIFIED IDEOGRAPH +0x9067 0x604E #CJK UNIFIED IDEOGRAPH +0x9068 0x604F #CJK UNIFIED IDEOGRAPH +0x9069 0x6051 #CJK UNIFIED IDEOGRAPH +0x906A 0x6053 #CJK UNIFIED IDEOGRAPH +0x906B 0x6054 #CJK UNIFIED IDEOGRAPH +0x906C 0x6056 #CJK UNIFIED IDEOGRAPH +0x906D 0x6057 #CJK UNIFIED IDEOGRAPH +0x906E 0x6058 #CJK UNIFIED IDEOGRAPH +0x906F 0x605B #CJK UNIFIED IDEOGRAPH +0x9070 0x605C #CJK UNIFIED IDEOGRAPH +0x9071 0x605E #CJK UNIFIED IDEOGRAPH +0x9072 0x605F #CJK UNIFIED IDEOGRAPH +0x9073 0x6060 #CJK UNIFIED IDEOGRAPH +0x9074 0x6061 #CJK UNIFIED IDEOGRAPH +0x9075 0x6065 #CJK UNIFIED IDEOGRAPH +0x9076 0x6066 #CJK UNIFIED IDEOGRAPH +0x9077 0x606E #CJK UNIFIED IDEOGRAPH +0x9078 0x6071 #CJK UNIFIED IDEOGRAPH +0x9079 0x6072 #CJK UNIFIED IDEOGRAPH +0x907A 0x6074 #CJK UNIFIED IDEOGRAPH +0x907B 0x6075 #CJK UNIFIED IDEOGRAPH +0x907C 0x6077 #CJK UNIFIED IDEOGRAPH +0x907D 0x607E #CJK UNIFIED IDEOGRAPH +0x907E 0x6080 #CJK UNIFIED IDEOGRAPH +0x9080 0x6081 #CJK UNIFIED IDEOGRAPH +0x9081 0x6082 #CJK UNIFIED IDEOGRAPH +0x9082 0x6085 #CJK UNIFIED IDEOGRAPH +0x9083 0x6086 #CJK UNIFIED IDEOGRAPH +0x9084 0x6087 #CJK UNIFIED IDEOGRAPH +0x9085 0x6088 #CJK UNIFIED IDEOGRAPH +0x9086 0x608A #CJK UNIFIED IDEOGRAPH +0x9087 0x608B #CJK UNIFIED IDEOGRAPH +0x9088 0x608E #CJK UNIFIED IDEOGRAPH +0x9089 0x608F #CJK UNIFIED IDEOGRAPH +0x908A 0x6090 #CJK UNIFIED IDEOGRAPH +0x908B 0x6091 #CJK UNIFIED IDEOGRAPH +0x908C 0x6093 #CJK UNIFIED IDEOGRAPH +0x908D 0x6095 #CJK UNIFIED IDEOGRAPH +0x908E 0x6097 #CJK UNIFIED IDEOGRAPH +0x908F 0x6098 #CJK UNIFIED IDEOGRAPH +0x9090 0x6099 #CJK UNIFIED IDEOGRAPH +0x9091 0x609C #CJK UNIFIED IDEOGRAPH +0x9092 0x609E #CJK UNIFIED IDEOGRAPH +0x9093 0x60A1 #CJK UNIFIED IDEOGRAPH +0x9094 0x60A2 #CJK UNIFIED IDEOGRAPH +0x9095 0x60A4 #CJK UNIFIED IDEOGRAPH +0x9096 0x60A5 #CJK UNIFIED IDEOGRAPH +0x9097 0x60A7 #CJK UNIFIED IDEOGRAPH +0x9098 0x60A9 #CJK UNIFIED IDEOGRAPH +0x9099 0x60AA #CJK UNIFIED IDEOGRAPH +0x909A 0x60AE #CJK UNIFIED IDEOGRAPH +0x909B 0x60B0 #CJK UNIFIED IDEOGRAPH +0x909C 0x60B3 #CJK UNIFIED IDEOGRAPH +0x909D 0x60B5 #CJK UNIFIED IDEOGRAPH +0x909E 0x60B6 #CJK UNIFIED IDEOGRAPH +0x909F 0x60B7 #CJK UNIFIED IDEOGRAPH +0x90A0 0x60B9 #CJK UNIFIED IDEOGRAPH +0x90A1 0x60BA #CJK UNIFIED IDEOGRAPH +0x90A2 0x60BD #CJK UNIFIED IDEOGRAPH +0x90A3 0x60BE #CJK UNIFIED IDEOGRAPH +0x90A4 0x60BF #CJK UNIFIED IDEOGRAPH +0x90A5 0x60C0 #CJK UNIFIED IDEOGRAPH +0x90A6 0x60C1 #CJK UNIFIED IDEOGRAPH +0x90A7 0x60C2 #CJK UNIFIED IDEOGRAPH +0x90A8 0x60C3 #CJK UNIFIED IDEOGRAPH +0x90A9 0x60C4 #CJK UNIFIED IDEOGRAPH +0x90AA 0x60C7 #CJK UNIFIED IDEOGRAPH +0x90AB 0x60C8 #CJK UNIFIED IDEOGRAPH +0x90AC 0x60C9 #CJK UNIFIED IDEOGRAPH +0x90AD 0x60CC #CJK UNIFIED IDEOGRAPH +0x90AE 0x60CD #CJK UNIFIED IDEOGRAPH +0x90AF 0x60CE #CJK UNIFIED IDEOGRAPH +0x90B0 0x60CF #CJK UNIFIED IDEOGRAPH +0x90B1 0x60D0 #CJK UNIFIED IDEOGRAPH +0x90B2 0x60D2 #CJK UNIFIED IDEOGRAPH +0x90B3 0x60D3 #CJK UNIFIED IDEOGRAPH +0x90B4 0x60D4 #CJK UNIFIED IDEOGRAPH +0x90B5 0x60D6 #CJK UNIFIED IDEOGRAPH +0x90B6 0x60D7 #CJK UNIFIED IDEOGRAPH +0x90B7 0x60D9 #CJK UNIFIED IDEOGRAPH +0x90B8 0x60DB #CJK UNIFIED IDEOGRAPH +0x90B9 0x60DE #CJK UNIFIED IDEOGRAPH +0x90BA 0x60E1 #CJK UNIFIED IDEOGRAPH +0x90BB 0x60E2 #CJK UNIFIED IDEOGRAPH +0x90BC 0x60E3 #CJK UNIFIED IDEOGRAPH +0x90BD 0x60E4 #CJK UNIFIED IDEOGRAPH +0x90BE 0x60E5 #CJK UNIFIED IDEOGRAPH +0x90BF 0x60EA #CJK UNIFIED IDEOGRAPH +0x90C0 0x60F1 #CJK UNIFIED IDEOGRAPH +0x90C1 0x60F2 #CJK UNIFIED IDEOGRAPH +0x90C2 0x60F5 #CJK UNIFIED IDEOGRAPH +0x90C3 0x60F7 #CJK UNIFIED IDEOGRAPH +0x90C4 0x60F8 #CJK UNIFIED IDEOGRAPH +0x90C5 0x60FB #CJK UNIFIED IDEOGRAPH +0x90C6 0x60FC #CJK UNIFIED IDEOGRAPH +0x90C7 0x60FD #CJK UNIFIED IDEOGRAPH +0x90C8 0x60FE #CJK UNIFIED IDEOGRAPH +0x90C9 0x60FF #CJK UNIFIED IDEOGRAPH +0x90CA 0x6102 #CJK UNIFIED IDEOGRAPH +0x90CB 0x6103 #CJK UNIFIED IDEOGRAPH +0x90CC 0x6104 #CJK UNIFIED IDEOGRAPH +0x90CD 0x6105 #CJK UNIFIED IDEOGRAPH +0x90CE 0x6107 #CJK UNIFIED IDEOGRAPH +0x90CF 0x610A #CJK UNIFIED IDEOGRAPH +0x90D0 0x610B #CJK UNIFIED IDEOGRAPH +0x90D1 0x610C #CJK UNIFIED IDEOGRAPH +0x90D2 0x6110 #CJK UNIFIED IDEOGRAPH +0x90D3 0x6111 #CJK UNIFIED IDEOGRAPH +0x90D4 0x6112 #CJK UNIFIED IDEOGRAPH +0x90D5 0x6113 #CJK UNIFIED IDEOGRAPH +0x90D6 0x6114 #CJK UNIFIED IDEOGRAPH +0x90D7 0x6116 #CJK UNIFIED IDEOGRAPH +0x90D8 0x6117 #CJK UNIFIED IDEOGRAPH +0x90D9 0x6118 #CJK UNIFIED IDEOGRAPH +0x90DA 0x6119 #CJK UNIFIED IDEOGRAPH +0x90DB 0x611B #CJK UNIFIED IDEOGRAPH +0x90DC 0x611C #CJK UNIFIED IDEOGRAPH +0x90DD 0x611D #CJK UNIFIED IDEOGRAPH +0x90DE 0x611E #CJK UNIFIED IDEOGRAPH +0x90DF 0x6121 #CJK UNIFIED IDEOGRAPH +0x90E0 0x6122 #CJK UNIFIED IDEOGRAPH +0x90E1 0x6125 #CJK UNIFIED IDEOGRAPH +0x90E2 0x6128 #CJK UNIFIED IDEOGRAPH +0x90E3 0x6129 #CJK UNIFIED IDEOGRAPH +0x90E4 0x612A #CJK UNIFIED IDEOGRAPH +0x90E5 0x612C #CJK UNIFIED IDEOGRAPH +0x90E6 0x612D #CJK UNIFIED IDEOGRAPH +0x90E7 0x612E #CJK UNIFIED IDEOGRAPH +0x90E8 0x612F #CJK UNIFIED IDEOGRAPH +0x90E9 0x6130 #CJK UNIFIED IDEOGRAPH +0x90EA 0x6131 #CJK UNIFIED IDEOGRAPH +0x90EB 0x6132 #CJK UNIFIED IDEOGRAPH +0x90EC 0x6133 #CJK UNIFIED IDEOGRAPH +0x90ED 0x6134 #CJK UNIFIED IDEOGRAPH +0x90EE 0x6135 #CJK UNIFIED IDEOGRAPH +0x90EF 0x6136 #CJK UNIFIED IDEOGRAPH +0x90F0 0x6137 #CJK UNIFIED IDEOGRAPH +0x90F1 0x6138 #CJK UNIFIED IDEOGRAPH +0x90F2 0x6139 #CJK UNIFIED IDEOGRAPH +0x90F3 0x613A #CJK UNIFIED IDEOGRAPH +0x90F4 0x613B #CJK UNIFIED IDEOGRAPH +0x90F5 0x613C #CJK UNIFIED IDEOGRAPH +0x90F6 0x613D #CJK UNIFIED IDEOGRAPH +0x90F7 0x613E #CJK UNIFIED IDEOGRAPH +0x90F8 0x6140 #CJK UNIFIED IDEOGRAPH +0x90F9 0x6141 #CJK UNIFIED IDEOGRAPH +0x90FA 0x6142 #CJK UNIFIED IDEOGRAPH +0x90FB 0x6143 #CJK UNIFIED IDEOGRAPH +0x90FC 0x6144 #CJK UNIFIED IDEOGRAPH +0x90FD 0x6145 #CJK UNIFIED IDEOGRAPH +0x90FE 0x6146 #CJK UNIFIED IDEOGRAPH +0x9140 0x6147 #CJK UNIFIED IDEOGRAPH +0x9141 0x6149 #CJK UNIFIED IDEOGRAPH +0x9142 0x614B #CJK UNIFIED IDEOGRAPH +0x9143 0x614D #CJK UNIFIED IDEOGRAPH +0x9144 0x614F #CJK UNIFIED IDEOGRAPH +0x9145 0x6150 #CJK UNIFIED IDEOGRAPH +0x9146 0x6152 #CJK UNIFIED IDEOGRAPH +0x9147 0x6153 #CJK UNIFIED IDEOGRAPH +0x9148 0x6154 #CJK UNIFIED IDEOGRAPH +0x9149 0x6156 #CJK UNIFIED IDEOGRAPH +0x914A 0x6157 #CJK UNIFIED IDEOGRAPH +0x914B 0x6158 #CJK UNIFIED IDEOGRAPH +0x914C 0x6159 #CJK UNIFIED IDEOGRAPH +0x914D 0x615A #CJK UNIFIED IDEOGRAPH +0x914E 0x615B #CJK UNIFIED IDEOGRAPH +0x914F 0x615C #CJK UNIFIED IDEOGRAPH +0x9150 0x615E #CJK UNIFIED IDEOGRAPH +0x9151 0x615F #CJK UNIFIED IDEOGRAPH +0x9152 0x6160 #CJK UNIFIED IDEOGRAPH +0x9153 0x6161 #CJK UNIFIED IDEOGRAPH +0x9154 0x6163 #CJK UNIFIED IDEOGRAPH +0x9155 0x6164 #CJK UNIFIED IDEOGRAPH +0x9156 0x6165 #CJK UNIFIED IDEOGRAPH +0x9157 0x6166 #CJK UNIFIED IDEOGRAPH +0x9158 0x6169 #CJK UNIFIED IDEOGRAPH +0x9159 0x616A #CJK UNIFIED IDEOGRAPH +0x915A 0x616B #CJK UNIFIED IDEOGRAPH +0x915B 0x616C #CJK UNIFIED IDEOGRAPH +0x915C 0x616D #CJK UNIFIED IDEOGRAPH +0x915D 0x616E #CJK UNIFIED IDEOGRAPH +0x915E 0x616F #CJK UNIFIED IDEOGRAPH +0x915F 0x6171 #CJK UNIFIED IDEOGRAPH +0x9160 0x6172 #CJK UNIFIED IDEOGRAPH +0x9161 0x6173 #CJK UNIFIED IDEOGRAPH +0x9162 0x6174 #CJK UNIFIED IDEOGRAPH +0x9163 0x6176 #CJK UNIFIED IDEOGRAPH +0x9164 0x6178 #CJK UNIFIED IDEOGRAPH +0x9165 0x6179 #CJK UNIFIED IDEOGRAPH +0x9166 0x617A #CJK UNIFIED IDEOGRAPH +0x9167 0x617B #CJK UNIFIED IDEOGRAPH +0x9168 0x617C #CJK UNIFIED IDEOGRAPH +0x9169 0x617D #CJK UNIFIED IDEOGRAPH +0x916A 0x617E #CJK UNIFIED IDEOGRAPH +0x916B 0x617F #CJK UNIFIED IDEOGRAPH +0x916C 0x6180 #CJK UNIFIED IDEOGRAPH +0x916D 0x6181 #CJK UNIFIED IDEOGRAPH +0x916E 0x6182 #CJK UNIFIED IDEOGRAPH +0x916F 0x6183 #CJK UNIFIED IDEOGRAPH +0x9170 0x6184 #CJK UNIFIED IDEOGRAPH +0x9171 0x6185 #CJK UNIFIED IDEOGRAPH +0x9172 0x6186 #CJK UNIFIED IDEOGRAPH +0x9173 0x6187 #CJK UNIFIED IDEOGRAPH +0x9174 0x6188 #CJK UNIFIED IDEOGRAPH +0x9175 0x6189 #CJK UNIFIED IDEOGRAPH +0x9176 0x618A #CJK UNIFIED IDEOGRAPH +0x9177 0x618C #CJK UNIFIED IDEOGRAPH +0x9178 0x618D #CJK UNIFIED IDEOGRAPH +0x9179 0x618F #CJK UNIFIED IDEOGRAPH +0x917A 0x6190 #CJK UNIFIED IDEOGRAPH +0x917B 0x6191 #CJK UNIFIED IDEOGRAPH +0x917C 0x6192 #CJK UNIFIED IDEOGRAPH +0x917D 0x6193 #CJK UNIFIED IDEOGRAPH +0x917E 0x6195 #CJK UNIFIED IDEOGRAPH +0x9180 0x6196 #CJK UNIFIED IDEOGRAPH +0x9181 0x6197 #CJK UNIFIED IDEOGRAPH +0x9182 0x6198 #CJK UNIFIED IDEOGRAPH +0x9183 0x6199 #CJK UNIFIED IDEOGRAPH +0x9184 0x619A #CJK UNIFIED IDEOGRAPH +0x9185 0x619B #CJK UNIFIED IDEOGRAPH +0x9186 0x619C #CJK UNIFIED IDEOGRAPH +0x9187 0x619E #CJK UNIFIED IDEOGRAPH +0x9188 0x619F #CJK UNIFIED IDEOGRAPH +0x9189 0x61A0 #CJK UNIFIED IDEOGRAPH +0x918A 0x61A1 #CJK UNIFIED IDEOGRAPH +0x918B 0x61A2 #CJK UNIFIED IDEOGRAPH +0x918C 0x61A3 #CJK UNIFIED IDEOGRAPH +0x918D 0x61A4 #CJK UNIFIED IDEOGRAPH +0x918E 0x61A5 #CJK UNIFIED IDEOGRAPH +0x918F 0x61A6 #CJK UNIFIED IDEOGRAPH +0x9190 0x61AA #CJK UNIFIED IDEOGRAPH +0x9191 0x61AB #CJK UNIFIED IDEOGRAPH +0x9192 0x61AD #CJK UNIFIED IDEOGRAPH +0x9193 0x61AE #CJK UNIFIED IDEOGRAPH +0x9194 0x61AF #CJK UNIFIED IDEOGRAPH +0x9195 0x61B0 #CJK UNIFIED IDEOGRAPH +0x9196 0x61B1 #CJK UNIFIED IDEOGRAPH +0x9197 0x61B2 #CJK UNIFIED IDEOGRAPH +0x9198 0x61B3 #CJK UNIFIED IDEOGRAPH +0x9199 0x61B4 #CJK UNIFIED IDEOGRAPH +0x919A 0x61B5 #CJK UNIFIED IDEOGRAPH +0x919B 0x61B6 #CJK UNIFIED IDEOGRAPH +0x919C 0x61B8 #CJK UNIFIED IDEOGRAPH +0x919D 0x61B9 #CJK UNIFIED IDEOGRAPH +0x919E 0x61BA #CJK UNIFIED IDEOGRAPH +0x919F 0x61BB #CJK UNIFIED IDEOGRAPH +0x91A0 0x61BC #CJK UNIFIED IDEOGRAPH +0x91A1 0x61BD #CJK UNIFIED IDEOGRAPH +0x91A2 0x61BF #CJK UNIFIED IDEOGRAPH +0x91A3 0x61C0 #CJK UNIFIED IDEOGRAPH +0x91A4 0x61C1 #CJK UNIFIED IDEOGRAPH +0x91A5 0x61C3 #CJK UNIFIED IDEOGRAPH +0x91A6 0x61C4 #CJK UNIFIED IDEOGRAPH +0x91A7 0x61C5 #CJK UNIFIED IDEOGRAPH +0x91A8 0x61C6 #CJK UNIFIED IDEOGRAPH +0x91A9 0x61C7 #CJK UNIFIED IDEOGRAPH +0x91AA 0x61C9 #CJK UNIFIED IDEOGRAPH +0x91AB 0x61CC #CJK UNIFIED IDEOGRAPH +0x91AC 0x61CD #CJK UNIFIED IDEOGRAPH +0x91AD 0x61CE #CJK UNIFIED IDEOGRAPH +0x91AE 0x61CF #CJK UNIFIED IDEOGRAPH +0x91AF 0x61D0 #CJK UNIFIED IDEOGRAPH +0x91B0 0x61D3 #CJK UNIFIED IDEOGRAPH +0x91B1 0x61D5 #CJK UNIFIED IDEOGRAPH +0x91B2 0x61D6 #CJK UNIFIED IDEOGRAPH +0x91B3 0x61D7 #CJK UNIFIED IDEOGRAPH +0x91B4 0x61D8 #CJK UNIFIED IDEOGRAPH +0x91B5 0x61D9 #CJK UNIFIED IDEOGRAPH +0x91B6 0x61DA #CJK UNIFIED IDEOGRAPH +0x91B7 0x61DB #CJK UNIFIED IDEOGRAPH +0x91B8 0x61DC #CJK UNIFIED IDEOGRAPH +0x91B9 0x61DD #CJK UNIFIED IDEOGRAPH +0x91BA 0x61DE #CJK UNIFIED IDEOGRAPH +0x91BB 0x61DF #CJK UNIFIED IDEOGRAPH +0x91BC 0x61E0 #CJK UNIFIED IDEOGRAPH +0x91BD 0x61E1 #CJK UNIFIED IDEOGRAPH +0x91BE 0x61E2 #CJK UNIFIED IDEOGRAPH +0x91BF 0x61E3 #CJK UNIFIED IDEOGRAPH +0x91C0 0x61E4 #CJK UNIFIED IDEOGRAPH +0x91C1 0x61E5 #CJK UNIFIED IDEOGRAPH +0x91C2 0x61E7 #CJK UNIFIED IDEOGRAPH +0x91C3 0x61E8 #CJK UNIFIED IDEOGRAPH +0x91C4 0x61E9 #CJK UNIFIED IDEOGRAPH +0x91C5 0x61EA #CJK UNIFIED IDEOGRAPH +0x91C6 0x61EB #CJK UNIFIED IDEOGRAPH +0x91C7 0x61EC #CJK UNIFIED IDEOGRAPH +0x91C8 0x61ED #CJK UNIFIED IDEOGRAPH +0x91C9 0x61EE #CJK UNIFIED IDEOGRAPH +0x91CA 0x61EF #CJK UNIFIED IDEOGRAPH +0x91CB 0x61F0 #CJK UNIFIED IDEOGRAPH +0x91CC 0x61F1 #CJK UNIFIED IDEOGRAPH +0x91CD 0x61F2 #CJK UNIFIED IDEOGRAPH +0x91CE 0x61F3 #CJK UNIFIED IDEOGRAPH +0x91CF 0x61F4 #CJK UNIFIED IDEOGRAPH +0x91D0 0x61F6 #CJK UNIFIED IDEOGRAPH +0x91D1 0x61F7 #CJK UNIFIED IDEOGRAPH +0x91D2 0x61F8 #CJK UNIFIED IDEOGRAPH +0x91D3 0x61F9 #CJK UNIFIED IDEOGRAPH +0x91D4 0x61FA #CJK UNIFIED IDEOGRAPH +0x91D5 0x61FB #CJK UNIFIED IDEOGRAPH +0x91D6 0x61FC #CJK UNIFIED IDEOGRAPH +0x91D7 0x61FD #CJK UNIFIED IDEOGRAPH +0x91D8 0x61FE #CJK UNIFIED IDEOGRAPH +0x91D9 0x6200 #CJK UNIFIED IDEOGRAPH +0x91DA 0x6201 #CJK UNIFIED IDEOGRAPH +0x91DB 0x6202 #CJK UNIFIED IDEOGRAPH +0x91DC 0x6203 #CJK UNIFIED IDEOGRAPH +0x91DD 0x6204 #CJK UNIFIED IDEOGRAPH +0x91DE 0x6205 #CJK UNIFIED IDEOGRAPH +0x91DF 0x6207 #CJK UNIFIED IDEOGRAPH +0x91E0 0x6209 #CJK UNIFIED IDEOGRAPH +0x91E1 0x6213 #CJK UNIFIED IDEOGRAPH +0x91E2 0x6214 #CJK UNIFIED IDEOGRAPH +0x91E3 0x6219 #CJK UNIFIED IDEOGRAPH +0x91E4 0x621C #CJK UNIFIED IDEOGRAPH +0x91E5 0x621D #CJK UNIFIED IDEOGRAPH +0x91E6 0x621E #CJK UNIFIED IDEOGRAPH +0x91E7 0x6220 #CJK UNIFIED IDEOGRAPH +0x91E8 0x6223 #CJK UNIFIED IDEOGRAPH +0x91E9 0x6226 #CJK UNIFIED IDEOGRAPH +0x91EA 0x6227 #CJK UNIFIED IDEOGRAPH +0x91EB 0x6228 #CJK UNIFIED IDEOGRAPH +0x91EC 0x6229 #CJK UNIFIED IDEOGRAPH +0x91ED 0x622B #CJK UNIFIED IDEOGRAPH +0x91EE 0x622D #CJK UNIFIED IDEOGRAPH +0x91EF 0x622F #CJK UNIFIED IDEOGRAPH +0x91F0 0x6230 #CJK UNIFIED IDEOGRAPH +0x91F1 0x6231 #CJK UNIFIED IDEOGRAPH +0x91F2 0x6232 #CJK UNIFIED IDEOGRAPH +0x91F3 0x6235 #CJK UNIFIED IDEOGRAPH +0x91F4 0x6236 #CJK UNIFIED IDEOGRAPH +0x91F5 0x6238 #CJK UNIFIED IDEOGRAPH +0x91F6 0x6239 #CJK UNIFIED IDEOGRAPH +0x91F7 0x623A #CJK UNIFIED IDEOGRAPH +0x91F8 0x623B #CJK UNIFIED IDEOGRAPH +0x91F9 0x623C #CJK UNIFIED IDEOGRAPH +0x91FA 0x6242 #CJK UNIFIED IDEOGRAPH +0x91FB 0x6244 #CJK UNIFIED IDEOGRAPH +0x91FC 0x6245 #CJK UNIFIED IDEOGRAPH +0x91FD 0x6246 #CJK UNIFIED IDEOGRAPH +0x91FE 0x624A #CJK UNIFIED IDEOGRAPH +0x9240 0x624F #CJK UNIFIED IDEOGRAPH +0x9241 0x6250 #CJK UNIFIED IDEOGRAPH +0x9242 0x6255 #CJK UNIFIED IDEOGRAPH +0x9243 0x6256 #CJK UNIFIED IDEOGRAPH +0x9244 0x6257 #CJK UNIFIED IDEOGRAPH +0x9245 0x6259 #CJK UNIFIED IDEOGRAPH +0x9246 0x625A #CJK UNIFIED IDEOGRAPH +0x9247 0x625C #CJK UNIFIED IDEOGRAPH +0x9248 0x625D #CJK UNIFIED IDEOGRAPH +0x9249 0x625E #CJK UNIFIED IDEOGRAPH +0x924A 0x625F #CJK UNIFIED IDEOGRAPH +0x924B 0x6260 #CJK UNIFIED IDEOGRAPH +0x924C 0x6261 #CJK UNIFIED IDEOGRAPH +0x924D 0x6262 #CJK UNIFIED IDEOGRAPH +0x924E 0x6264 #CJK UNIFIED IDEOGRAPH +0x924F 0x6265 #CJK UNIFIED IDEOGRAPH +0x9250 0x6268 #CJK UNIFIED IDEOGRAPH +0x9251 0x6271 #CJK UNIFIED IDEOGRAPH +0x9252 0x6272 #CJK UNIFIED IDEOGRAPH +0x9253 0x6274 #CJK UNIFIED IDEOGRAPH +0x9254 0x6275 #CJK UNIFIED IDEOGRAPH +0x9255 0x6277 #CJK UNIFIED IDEOGRAPH +0x9256 0x6278 #CJK UNIFIED IDEOGRAPH +0x9257 0x627A #CJK UNIFIED IDEOGRAPH +0x9258 0x627B #CJK UNIFIED IDEOGRAPH +0x9259 0x627D #CJK UNIFIED IDEOGRAPH +0x925A 0x6281 #CJK UNIFIED IDEOGRAPH +0x925B 0x6282 #CJK UNIFIED IDEOGRAPH +0x925C 0x6283 #CJK UNIFIED IDEOGRAPH +0x925D 0x6285 #CJK UNIFIED IDEOGRAPH +0x925E 0x6286 #CJK UNIFIED IDEOGRAPH +0x925F 0x6287 #CJK UNIFIED IDEOGRAPH +0x9260 0x6288 #CJK UNIFIED IDEOGRAPH +0x9261 0x628B #CJK UNIFIED IDEOGRAPH +0x9262 0x628C #CJK UNIFIED IDEOGRAPH +0x9263 0x628D #CJK UNIFIED IDEOGRAPH +0x9264 0x628E #CJK UNIFIED IDEOGRAPH +0x9265 0x628F #CJK UNIFIED IDEOGRAPH +0x9266 0x6290 #CJK UNIFIED IDEOGRAPH +0x9267 0x6294 #CJK UNIFIED IDEOGRAPH +0x9268 0x6299 #CJK UNIFIED IDEOGRAPH +0x9269 0x629C #CJK UNIFIED IDEOGRAPH +0x926A 0x629D #CJK UNIFIED IDEOGRAPH +0x926B 0x629E #CJK UNIFIED IDEOGRAPH +0x926C 0x62A3 #CJK UNIFIED IDEOGRAPH +0x926D 0x62A6 #CJK UNIFIED IDEOGRAPH +0x926E 0x62A7 #CJK UNIFIED IDEOGRAPH +0x926F 0x62A9 #CJK UNIFIED IDEOGRAPH +0x9270 0x62AA #CJK UNIFIED IDEOGRAPH +0x9271 0x62AD #CJK UNIFIED IDEOGRAPH +0x9272 0x62AE #CJK UNIFIED IDEOGRAPH +0x9273 0x62AF #CJK UNIFIED IDEOGRAPH +0x9274 0x62B0 #CJK UNIFIED IDEOGRAPH +0x9275 0x62B2 #CJK UNIFIED IDEOGRAPH +0x9276 0x62B3 #CJK UNIFIED IDEOGRAPH +0x9277 0x62B4 #CJK UNIFIED IDEOGRAPH +0x9278 0x62B6 #CJK UNIFIED IDEOGRAPH +0x9279 0x62B7 #CJK UNIFIED IDEOGRAPH +0x927A 0x62B8 #CJK UNIFIED IDEOGRAPH +0x927B 0x62BA #CJK UNIFIED IDEOGRAPH +0x927C 0x62BE #CJK UNIFIED IDEOGRAPH +0x927D 0x62C0 #CJK UNIFIED IDEOGRAPH +0x927E 0x62C1 #CJK UNIFIED IDEOGRAPH +0x9280 0x62C3 #CJK UNIFIED IDEOGRAPH +0x9281 0x62CB #CJK UNIFIED IDEOGRAPH +0x9282 0x62CF #CJK UNIFIED IDEOGRAPH +0x9283 0x62D1 #CJK UNIFIED IDEOGRAPH +0x9284 0x62D5 #CJK UNIFIED IDEOGRAPH +0x9285 0x62DD #CJK UNIFIED IDEOGRAPH +0x9286 0x62DE #CJK UNIFIED IDEOGRAPH +0x9287 0x62E0 #CJK UNIFIED IDEOGRAPH +0x9288 0x62E1 #CJK UNIFIED IDEOGRAPH +0x9289 0x62E4 #CJK UNIFIED IDEOGRAPH +0x928A 0x62EA #CJK UNIFIED IDEOGRAPH +0x928B 0x62EB #CJK UNIFIED IDEOGRAPH +0x928C 0x62F0 #CJK UNIFIED IDEOGRAPH +0x928D 0x62F2 #CJK UNIFIED IDEOGRAPH +0x928E 0x62F5 #CJK UNIFIED IDEOGRAPH +0x928F 0x62F8 #CJK UNIFIED IDEOGRAPH +0x9290 0x62F9 #CJK UNIFIED IDEOGRAPH +0x9291 0x62FA #CJK UNIFIED IDEOGRAPH +0x9292 0x62FB #CJK UNIFIED IDEOGRAPH +0x9293 0x6300 #CJK UNIFIED IDEOGRAPH +0x9294 0x6303 #CJK UNIFIED IDEOGRAPH +0x9295 0x6304 #CJK UNIFIED IDEOGRAPH +0x9296 0x6305 #CJK UNIFIED IDEOGRAPH +0x9297 0x6306 #CJK UNIFIED IDEOGRAPH +0x9298 0x630A #CJK UNIFIED IDEOGRAPH +0x9299 0x630B #CJK UNIFIED IDEOGRAPH +0x929A 0x630C #CJK UNIFIED IDEOGRAPH +0x929B 0x630D #CJK UNIFIED IDEOGRAPH +0x929C 0x630F #CJK UNIFIED IDEOGRAPH +0x929D 0x6310 #CJK UNIFIED IDEOGRAPH +0x929E 0x6312 #CJK UNIFIED IDEOGRAPH +0x929F 0x6313 #CJK UNIFIED IDEOGRAPH +0x92A0 0x6314 #CJK UNIFIED IDEOGRAPH +0x92A1 0x6315 #CJK UNIFIED IDEOGRAPH +0x92A2 0x6317 #CJK UNIFIED IDEOGRAPH +0x92A3 0x6318 #CJK UNIFIED IDEOGRAPH +0x92A4 0x6319 #CJK UNIFIED IDEOGRAPH +0x92A5 0x631C #CJK UNIFIED IDEOGRAPH +0x92A6 0x6326 #CJK UNIFIED IDEOGRAPH +0x92A7 0x6327 #CJK UNIFIED IDEOGRAPH +0x92A8 0x6329 #CJK UNIFIED IDEOGRAPH +0x92A9 0x632C #CJK UNIFIED IDEOGRAPH +0x92AA 0x632D #CJK UNIFIED IDEOGRAPH +0x92AB 0x632E #CJK UNIFIED IDEOGRAPH +0x92AC 0x6330 #CJK UNIFIED IDEOGRAPH +0x92AD 0x6331 #CJK UNIFIED IDEOGRAPH +0x92AE 0x6333 #CJK UNIFIED IDEOGRAPH +0x92AF 0x6334 #CJK UNIFIED IDEOGRAPH +0x92B0 0x6335 #CJK UNIFIED IDEOGRAPH +0x92B1 0x6336 #CJK UNIFIED IDEOGRAPH +0x92B2 0x6337 #CJK UNIFIED IDEOGRAPH +0x92B3 0x6338 #CJK UNIFIED IDEOGRAPH +0x92B4 0x633B #CJK UNIFIED IDEOGRAPH +0x92B5 0x633C #CJK UNIFIED IDEOGRAPH +0x92B6 0x633E #CJK UNIFIED IDEOGRAPH +0x92B7 0x633F #CJK UNIFIED IDEOGRAPH +0x92B8 0x6340 #CJK UNIFIED IDEOGRAPH +0x92B9 0x6341 #CJK UNIFIED IDEOGRAPH +0x92BA 0x6344 #CJK UNIFIED IDEOGRAPH +0x92BB 0x6347 #CJK UNIFIED IDEOGRAPH +0x92BC 0x6348 #CJK UNIFIED IDEOGRAPH +0x92BD 0x634A #CJK UNIFIED IDEOGRAPH +0x92BE 0x6351 #CJK UNIFIED IDEOGRAPH +0x92BF 0x6352 #CJK UNIFIED IDEOGRAPH +0x92C0 0x6353 #CJK UNIFIED IDEOGRAPH +0x92C1 0x6354 #CJK UNIFIED IDEOGRAPH +0x92C2 0x6356 #CJK UNIFIED IDEOGRAPH +0x92C3 0x6357 #CJK UNIFIED IDEOGRAPH +0x92C4 0x6358 #CJK UNIFIED IDEOGRAPH +0x92C5 0x6359 #CJK UNIFIED IDEOGRAPH +0x92C6 0x635A #CJK UNIFIED IDEOGRAPH +0x92C7 0x635B #CJK UNIFIED IDEOGRAPH +0x92C8 0x635C #CJK UNIFIED IDEOGRAPH +0x92C9 0x635D #CJK UNIFIED IDEOGRAPH +0x92CA 0x6360 #CJK UNIFIED IDEOGRAPH +0x92CB 0x6364 #CJK UNIFIED IDEOGRAPH +0x92CC 0x6365 #CJK UNIFIED IDEOGRAPH +0x92CD 0x6366 #CJK UNIFIED IDEOGRAPH +0x92CE 0x6368 #CJK UNIFIED IDEOGRAPH +0x92CF 0x636A #CJK UNIFIED IDEOGRAPH +0x92D0 0x636B #CJK UNIFIED IDEOGRAPH +0x92D1 0x636C #CJK UNIFIED IDEOGRAPH +0x92D2 0x636F #CJK UNIFIED IDEOGRAPH +0x92D3 0x6370 #CJK UNIFIED IDEOGRAPH +0x92D4 0x6372 #CJK UNIFIED IDEOGRAPH +0x92D5 0x6373 #CJK UNIFIED IDEOGRAPH +0x92D6 0x6374 #CJK UNIFIED IDEOGRAPH +0x92D7 0x6375 #CJK UNIFIED IDEOGRAPH +0x92D8 0x6378 #CJK UNIFIED IDEOGRAPH +0x92D9 0x6379 #CJK UNIFIED IDEOGRAPH +0x92DA 0x637C #CJK UNIFIED IDEOGRAPH +0x92DB 0x637D #CJK UNIFIED IDEOGRAPH +0x92DC 0x637E #CJK UNIFIED IDEOGRAPH +0x92DD 0x637F #CJK UNIFIED IDEOGRAPH +0x92DE 0x6381 #CJK UNIFIED IDEOGRAPH +0x92DF 0x6383 #CJK UNIFIED IDEOGRAPH +0x92E0 0x6384 #CJK UNIFIED IDEOGRAPH +0x92E1 0x6385 #CJK UNIFIED IDEOGRAPH +0x92E2 0x6386 #CJK UNIFIED IDEOGRAPH +0x92E3 0x638B #CJK UNIFIED IDEOGRAPH +0x92E4 0x638D #CJK UNIFIED IDEOGRAPH +0x92E5 0x6391 #CJK UNIFIED IDEOGRAPH +0x92E6 0x6393 #CJK UNIFIED IDEOGRAPH +0x92E7 0x6394 #CJK UNIFIED IDEOGRAPH +0x92E8 0x6395 #CJK UNIFIED IDEOGRAPH +0x92E9 0x6397 #CJK UNIFIED IDEOGRAPH +0x92EA 0x6399 #CJK UNIFIED IDEOGRAPH +0x92EB 0x639A #CJK UNIFIED IDEOGRAPH +0x92EC 0x639B #CJK UNIFIED IDEOGRAPH +0x92ED 0x639C #CJK UNIFIED IDEOGRAPH +0x92EE 0x639D #CJK UNIFIED IDEOGRAPH +0x92EF 0x639E #CJK UNIFIED IDEOGRAPH +0x92F0 0x639F #CJK UNIFIED IDEOGRAPH +0x92F1 0x63A1 #CJK UNIFIED IDEOGRAPH +0x92F2 0x63A4 #CJK UNIFIED IDEOGRAPH +0x92F3 0x63A6 #CJK UNIFIED IDEOGRAPH +0x92F4 0x63AB #CJK UNIFIED IDEOGRAPH +0x92F5 0x63AF #CJK UNIFIED IDEOGRAPH +0x92F6 0x63B1 #CJK UNIFIED IDEOGRAPH +0x92F7 0x63B2 #CJK UNIFIED IDEOGRAPH +0x92F8 0x63B5 #CJK UNIFIED IDEOGRAPH +0x92F9 0x63B6 #CJK UNIFIED IDEOGRAPH +0x92FA 0x63B9 #CJK UNIFIED IDEOGRAPH +0x92FB 0x63BB #CJK UNIFIED IDEOGRAPH +0x92FC 0x63BD #CJK UNIFIED IDEOGRAPH +0x92FD 0x63BF #CJK UNIFIED IDEOGRAPH +0x92FE 0x63C0 #CJK UNIFIED IDEOGRAPH +0x9340 0x63C1 #CJK UNIFIED IDEOGRAPH +0x9341 0x63C2 #CJK UNIFIED IDEOGRAPH +0x9342 0x63C3 #CJK UNIFIED IDEOGRAPH +0x9343 0x63C5 #CJK UNIFIED IDEOGRAPH +0x9344 0x63C7 #CJK UNIFIED IDEOGRAPH +0x9345 0x63C8 #CJK UNIFIED IDEOGRAPH +0x9346 0x63CA #CJK UNIFIED IDEOGRAPH +0x9347 0x63CB #CJK UNIFIED IDEOGRAPH +0x9348 0x63CC #CJK UNIFIED IDEOGRAPH +0x9349 0x63D1 #CJK UNIFIED IDEOGRAPH +0x934A 0x63D3 #CJK UNIFIED IDEOGRAPH +0x934B 0x63D4 #CJK UNIFIED IDEOGRAPH +0x934C 0x63D5 #CJK UNIFIED IDEOGRAPH +0x934D 0x63D7 #CJK UNIFIED IDEOGRAPH +0x934E 0x63D8 #CJK UNIFIED IDEOGRAPH +0x934F 0x63D9 #CJK UNIFIED IDEOGRAPH +0x9350 0x63DA #CJK UNIFIED IDEOGRAPH +0x9351 0x63DB #CJK UNIFIED IDEOGRAPH +0x9352 0x63DC #CJK UNIFIED IDEOGRAPH +0x9353 0x63DD #CJK UNIFIED IDEOGRAPH +0x9354 0x63DF #CJK UNIFIED IDEOGRAPH +0x9355 0x63E2 #CJK UNIFIED IDEOGRAPH +0x9356 0x63E4 #CJK UNIFIED IDEOGRAPH +0x9357 0x63E5 #CJK UNIFIED IDEOGRAPH +0x9358 0x63E6 #CJK UNIFIED IDEOGRAPH +0x9359 0x63E7 #CJK UNIFIED IDEOGRAPH +0x935A 0x63E8 #CJK UNIFIED IDEOGRAPH +0x935B 0x63EB #CJK UNIFIED IDEOGRAPH +0x935C 0x63EC #CJK UNIFIED IDEOGRAPH +0x935D 0x63EE #CJK UNIFIED IDEOGRAPH +0x935E 0x63EF #CJK UNIFIED IDEOGRAPH +0x935F 0x63F0 #CJK UNIFIED IDEOGRAPH +0x9360 0x63F1 #CJK UNIFIED IDEOGRAPH +0x9361 0x63F3 #CJK UNIFIED IDEOGRAPH +0x9362 0x63F5 #CJK UNIFIED IDEOGRAPH +0x9363 0x63F7 #CJK UNIFIED IDEOGRAPH +0x9364 0x63F9 #CJK UNIFIED IDEOGRAPH +0x9365 0x63FA #CJK UNIFIED IDEOGRAPH +0x9366 0x63FB #CJK UNIFIED IDEOGRAPH +0x9367 0x63FC #CJK UNIFIED IDEOGRAPH +0x9368 0x63FE #CJK UNIFIED IDEOGRAPH +0x9369 0x6403 #CJK UNIFIED IDEOGRAPH +0x936A 0x6404 #CJK UNIFIED IDEOGRAPH +0x936B 0x6406 #CJK UNIFIED IDEOGRAPH +0x936C 0x6407 #CJK UNIFIED IDEOGRAPH +0x936D 0x6408 #CJK UNIFIED IDEOGRAPH +0x936E 0x6409 #CJK UNIFIED IDEOGRAPH +0x936F 0x640A #CJK UNIFIED IDEOGRAPH +0x9370 0x640D #CJK UNIFIED IDEOGRAPH +0x9371 0x640E #CJK UNIFIED IDEOGRAPH +0x9372 0x6411 #CJK UNIFIED IDEOGRAPH +0x9373 0x6412 #CJK UNIFIED IDEOGRAPH +0x9374 0x6415 #CJK UNIFIED IDEOGRAPH +0x9375 0x6416 #CJK UNIFIED IDEOGRAPH +0x9376 0x6417 #CJK UNIFIED IDEOGRAPH +0x9377 0x6418 #CJK UNIFIED IDEOGRAPH +0x9378 0x6419 #CJK UNIFIED IDEOGRAPH +0x9379 0x641A #CJK UNIFIED IDEOGRAPH +0x937A 0x641D #CJK UNIFIED IDEOGRAPH +0x937B 0x641F #CJK UNIFIED IDEOGRAPH +0x937C 0x6422 #CJK UNIFIED IDEOGRAPH +0x937D 0x6423 #CJK UNIFIED IDEOGRAPH +0x937E 0x6424 #CJK UNIFIED IDEOGRAPH +0x9380 0x6425 #CJK UNIFIED IDEOGRAPH +0x9381 0x6427 #CJK UNIFIED IDEOGRAPH +0x9382 0x6428 #CJK UNIFIED IDEOGRAPH +0x9383 0x6429 #CJK UNIFIED IDEOGRAPH +0x9384 0x642B #CJK UNIFIED IDEOGRAPH +0x9385 0x642E #CJK UNIFIED IDEOGRAPH +0x9386 0x642F #CJK UNIFIED IDEOGRAPH +0x9387 0x6430 #CJK UNIFIED IDEOGRAPH +0x9388 0x6431 #CJK UNIFIED IDEOGRAPH +0x9389 0x6432 #CJK UNIFIED IDEOGRAPH +0x938A 0x6433 #CJK UNIFIED IDEOGRAPH +0x938B 0x6435 #CJK UNIFIED IDEOGRAPH +0x938C 0x6436 #CJK UNIFIED IDEOGRAPH +0x938D 0x6437 #CJK UNIFIED IDEOGRAPH +0x938E 0x6438 #CJK UNIFIED IDEOGRAPH +0x938F 0x6439 #CJK UNIFIED IDEOGRAPH +0x9390 0x643B #CJK UNIFIED IDEOGRAPH +0x9391 0x643C #CJK UNIFIED IDEOGRAPH +0x9392 0x643E #CJK UNIFIED IDEOGRAPH +0x9393 0x6440 #CJK UNIFIED IDEOGRAPH +0x9394 0x6442 #CJK UNIFIED IDEOGRAPH +0x9395 0x6443 #CJK UNIFIED IDEOGRAPH +0x9396 0x6449 #CJK UNIFIED IDEOGRAPH +0x9397 0x644B #CJK UNIFIED IDEOGRAPH +0x9398 0x644C #CJK UNIFIED IDEOGRAPH +0x9399 0x644D #CJK UNIFIED IDEOGRAPH +0x939A 0x644E #CJK UNIFIED IDEOGRAPH +0x939B 0x644F #CJK UNIFIED IDEOGRAPH +0x939C 0x6450 #CJK UNIFIED IDEOGRAPH +0x939D 0x6451 #CJK UNIFIED IDEOGRAPH +0x939E 0x6453 #CJK UNIFIED IDEOGRAPH +0x939F 0x6455 #CJK UNIFIED IDEOGRAPH +0x93A0 0x6456 #CJK UNIFIED IDEOGRAPH +0x93A1 0x6457 #CJK UNIFIED IDEOGRAPH +0x93A2 0x6459 #CJK UNIFIED IDEOGRAPH +0x93A3 0x645A #CJK UNIFIED IDEOGRAPH +0x93A4 0x645B #CJK UNIFIED IDEOGRAPH +0x93A5 0x645C #CJK UNIFIED IDEOGRAPH +0x93A6 0x645D #CJK UNIFIED IDEOGRAPH +0x93A7 0x645F #CJK UNIFIED IDEOGRAPH +0x93A8 0x6460 #CJK UNIFIED IDEOGRAPH +0x93A9 0x6461 #CJK UNIFIED IDEOGRAPH +0x93AA 0x6462 #CJK UNIFIED IDEOGRAPH +0x93AB 0x6463 #CJK UNIFIED IDEOGRAPH +0x93AC 0x6464 #CJK UNIFIED IDEOGRAPH +0x93AD 0x6465 #CJK UNIFIED IDEOGRAPH +0x93AE 0x6466 #CJK UNIFIED IDEOGRAPH +0x93AF 0x6468 #CJK UNIFIED IDEOGRAPH +0x93B0 0x646A #CJK UNIFIED IDEOGRAPH +0x93B1 0x646B #CJK UNIFIED IDEOGRAPH +0x93B2 0x646C #CJK UNIFIED IDEOGRAPH +0x93B3 0x646E #CJK UNIFIED IDEOGRAPH +0x93B4 0x646F #CJK UNIFIED IDEOGRAPH +0x93B5 0x6470 #CJK UNIFIED IDEOGRAPH +0x93B6 0x6471 #CJK UNIFIED IDEOGRAPH +0x93B7 0x6472 #CJK UNIFIED IDEOGRAPH +0x93B8 0x6473 #CJK UNIFIED IDEOGRAPH +0x93B9 0x6474 #CJK UNIFIED IDEOGRAPH +0x93BA 0x6475 #CJK UNIFIED IDEOGRAPH +0x93BB 0x6476 #CJK UNIFIED IDEOGRAPH +0x93BC 0x6477 #CJK UNIFIED IDEOGRAPH +0x93BD 0x647B #CJK UNIFIED IDEOGRAPH +0x93BE 0x647C #CJK UNIFIED IDEOGRAPH +0x93BF 0x647D #CJK UNIFIED IDEOGRAPH +0x93C0 0x647E #CJK UNIFIED IDEOGRAPH +0x93C1 0x647F #CJK UNIFIED IDEOGRAPH +0x93C2 0x6480 #CJK UNIFIED IDEOGRAPH +0x93C3 0x6481 #CJK UNIFIED IDEOGRAPH +0x93C4 0x6483 #CJK UNIFIED IDEOGRAPH +0x93C5 0x6486 #CJK UNIFIED IDEOGRAPH +0x93C6 0x6488 #CJK UNIFIED IDEOGRAPH +0x93C7 0x6489 #CJK UNIFIED IDEOGRAPH +0x93C8 0x648A #CJK UNIFIED IDEOGRAPH +0x93C9 0x648B #CJK UNIFIED IDEOGRAPH +0x93CA 0x648C #CJK UNIFIED IDEOGRAPH +0x93CB 0x648D #CJK UNIFIED IDEOGRAPH +0x93CC 0x648E #CJK UNIFIED IDEOGRAPH +0x93CD 0x648F #CJK UNIFIED IDEOGRAPH +0x93CE 0x6490 #CJK UNIFIED IDEOGRAPH +0x93CF 0x6493 #CJK UNIFIED IDEOGRAPH +0x93D0 0x6494 #CJK UNIFIED IDEOGRAPH +0x93D1 0x6497 #CJK UNIFIED IDEOGRAPH +0x93D2 0x6498 #CJK UNIFIED IDEOGRAPH +0x93D3 0x649A #CJK UNIFIED IDEOGRAPH +0x93D4 0x649B #CJK UNIFIED IDEOGRAPH +0x93D5 0x649C #CJK UNIFIED IDEOGRAPH +0x93D6 0x649D #CJK UNIFIED IDEOGRAPH +0x93D7 0x649F #CJK UNIFIED IDEOGRAPH +0x93D8 0x64A0 #CJK UNIFIED IDEOGRAPH +0x93D9 0x64A1 #CJK UNIFIED IDEOGRAPH +0x93DA 0x64A2 #CJK UNIFIED IDEOGRAPH +0x93DB 0x64A3 #CJK UNIFIED IDEOGRAPH +0x93DC 0x64A5 #CJK UNIFIED IDEOGRAPH +0x93DD 0x64A6 #CJK UNIFIED IDEOGRAPH +0x93DE 0x64A7 #CJK UNIFIED IDEOGRAPH +0x93DF 0x64A8 #CJK UNIFIED IDEOGRAPH +0x93E0 0x64AA #CJK UNIFIED IDEOGRAPH +0x93E1 0x64AB #CJK UNIFIED IDEOGRAPH +0x93E2 0x64AF #CJK UNIFIED IDEOGRAPH +0x93E3 0x64B1 #CJK UNIFIED IDEOGRAPH +0x93E4 0x64B2 #CJK UNIFIED IDEOGRAPH +0x93E5 0x64B3 #CJK UNIFIED IDEOGRAPH +0x93E6 0x64B4 #CJK UNIFIED IDEOGRAPH +0x93E7 0x64B6 #CJK UNIFIED IDEOGRAPH +0x93E8 0x64B9 #CJK UNIFIED IDEOGRAPH +0x93E9 0x64BB #CJK UNIFIED IDEOGRAPH +0x93EA 0x64BD #CJK UNIFIED IDEOGRAPH +0x93EB 0x64BE #CJK UNIFIED IDEOGRAPH +0x93EC 0x64BF #CJK UNIFIED IDEOGRAPH +0x93ED 0x64C1 #CJK UNIFIED IDEOGRAPH +0x93EE 0x64C3 #CJK UNIFIED IDEOGRAPH +0x93EF 0x64C4 #CJK UNIFIED IDEOGRAPH +0x93F0 0x64C6 #CJK UNIFIED IDEOGRAPH +0x93F1 0x64C7 #CJK UNIFIED IDEOGRAPH +0x93F2 0x64C8 #CJK UNIFIED IDEOGRAPH +0x93F3 0x64C9 #CJK UNIFIED IDEOGRAPH +0x93F4 0x64CA #CJK UNIFIED IDEOGRAPH +0x93F5 0x64CB #CJK UNIFIED IDEOGRAPH +0x93F6 0x64CC #CJK UNIFIED IDEOGRAPH +0x93F7 0x64CF #CJK UNIFIED IDEOGRAPH +0x93F8 0x64D1 #CJK UNIFIED IDEOGRAPH +0x93F9 0x64D3 #CJK UNIFIED IDEOGRAPH +0x93FA 0x64D4 #CJK UNIFIED IDEOGRAPH +0x93FB 0x64D5 #CJK UNIFIED IDEOGRAPH +0x93FC 0x64D6 #CJK UNIFIED IDEOGRAPH +0x93FD 0x64D9 #CJK UNIFIED IDEOGRAPH +0x93FE 0x64DA #CJK UNIFIED IDEOGRAPH +0x9440 0x64DB #CJK UNIFIED IDEOGRAPH +0x9441 0x64DC #CJK UNIFIED IDEOGRAPH +0x9442 0x64DD #CJK UNIFIED IDEOGRAPH +0x9443 0x64DF #CJK UNIFIED IDEOGRAPH +0x9444 0x64E0 #CJK UNIFIED IDEOGRAPH +0x9445 0x64E1 #CJK UNIFIED IDEOGRAPH +0x9446 0x64E3 #CJK UNIFIED IDEOGRAPH +0x9447 0x64E5 #CJK UNIFIED IDEOGRAPH +0x9448 0x64E7 #CJK UNIFIED IDEOGRAPH +0x9449 0x64E8 #CJK UNIFIED IDEOGRAPH +0x944A 0x64E9 #CJK UNIFIED IDEOGRAPH +0x944B 0x64EA #CJK UNIFIED IDEOGRAPH +0x944C 0x64EB #CJK UNIFIED IDEOGRAPH +0x944D 0x64EC #CJK UNIFIED IDEOGRAPH +0x944E 0x64ED #CJK UNIFIED IDEOGRAPH +0x944F 0x64EE #CJK UNIFIED IDEOGRAPH +0x9450 0x64EF #CJK UNIFIED IDEOGRAPH +0x9451 0x64F0 #CJK UNIFIED IDEOGRAPH +0x9452 0x64F1 #CJK UNIFIED IDEOGRAPH +0x9453 0x64F2 #CJK UNIFIED IDEOGRAPH +0x9454 0x64F3 #CJK UNIFIED IDEOGRAPH +0x9455 0x64F4 #CJK UNIFIED IDEOGRAPH +0x9456 0x64F5 #CJK UNIFIED IDEOGRAPH +0x9457 0x64F6 #CJK UNIFIED IDEOGRAPH +0x9458 0x64F7 #CJK UNIFIED IDEOGRAPH +0x9459 0x64F8 #CJK UNIFIED IDEOGRAPH +0x945A 0x64F9 #CJK UNIFIED IDEOGRAPH +0x945B 0x64FA #CJK UNIFIED IDEOGRAPH +0x945C 0x64FB #CJK UNIFIED IDEOGRAPH +0x945D 0x64FC #CJK UNIFIED IDEOGRAPH +0x945E 0x64FD #CJK UNIFIED IDEOGRAPH +0x945F 0x64FE #CJK UNIFIED IDEOGRAPH +0x9460 0x64FF #CJK UNIFIED IDEOGRAPH +0x9461 0x6501 #CJK UNIFIED IDEOGRAPH +0x9462 0x6502 #CJK UNIFIED IDEOGRAPH +0x9463 0x6503 #CJK UNIFIED IDEOGRAPH +0x9464 0x6504 #CJK UNIFIED IDEOGRAPH +0x9465 0x6505 #CJK UNIFIED IDEOGRAPH +0x9466 0x6506 #CJK UNIFIED IDEOGRAPH +0x9467 0x6507 #CJK UNIFIED IDEOGRAPH +0x9468 0x6508 #CJK UNIFIED IDEOGRAPH +0x9469 0x650A #CJK UNIFIED IDEOGRAPH +0x946A 0x650B #CJK UNIFIED IDEOGRAPH +0x946B 0x650C #CJK UNIFIED IDEOGRAPH +0x946C 0x650D #CJK UNIFIED IDEOGRAPH +0x946D 0x650E #CJK UNIFIED IDEOGRAPH +0x946E 0x650F #CJK UNIFIED IDEOGRAPH +0x946F 0x6510 #CJK UNIFIED IDEOGRAPH +0x9470 0x6511 #CJK UNIFIED IDEOGRAPH +0x9471 0x6513 #CJK UNIFIED IDEOGRAPH +0x9472 0x6514 #CJK UNIFIED IDEOGRAPH +0x9473 0x6515 #CJK UNIFIED IDEOGRAPH +0x9474 0x6516 #CJK UNIFIED IDEOGRAPH +0x9475 0x6517 #CJK UNIFIED IDEOGRAPH +0x9476 0x6519 #CJK UNIFIED IDEOGRAPH +0x9477 0x651A #CJK UNIFIED IDEOGRAPH +0x9478 0x651B #CJK UNIFIED IDEOGRAPH +0x9479 0x651C #CJK UNIFIED IDEOGRAPH +0x947A 0x651D #CJK UNIFIED IDEOGRAPH +0x947B 0x651E #CJK UNIFIED IDEOGRAPH +0x947C 0x651F #CJK UNIFIED IDEOGRAPH +0x947D 0x6520 #CJK UNIFIED IDEOGRAPH +0x947E 0x6521 #CJK UNIFIED IDEOGRAPH +0x9480 0x6522 #CJK UNIFIED IDEOGRAPH +0x9481 0x6523 #CJK UNIFIED IDEOGRAPH +0x9482 0x6524 #CJK UNIFIED IDEOGRAPH +0x9483 0x6526 #CJK UNIFIED IDEOGRAPH +0x9484 0x6527 #CJK UNIFIED IDEOGRAPH +0x9485 0x6528 #CJK UNIFIED IDEOGRAPH +0x9486 0x6529 #CJK UNIFIED IDEOGRAPH +0x9487 0x652A #CJK UNIFIED IDEOGRAPH +0x9488 0x652C #CJK UNIFIED IDEOGRAPH +0x9489 0x652D #CJK UNIFIED IDEOGRAPH +0x948A 0x6530 #CJK UNIFIED IDEOGRAPH +0x948B 0x6531 #CJK UNIFIED IDEOGRAPH +0x948C 0x6532 #CJK UNIFIED IDEOGRAPH +0x948D 0x6533 #CJK UNIFIED IDEOGRAPH +0x948E 0x6537 #CJK UNIFIED IDEOGRAPH +0x948F 0x653A #CJK UNIFIED IDEOGRAPH +0x9490 0x653C #CJK UNIFIED IDEOGRAPH +0x9491 0x653D #CJK UNIFIED IDEOGRAPH +0x9492 0x6540 #CJK UNIFIED IDEOGRAPH +0x9493 0x6541 #CJK UNIFIED IDEOGRAPH +0x9494 0x6542 #CJK UNIFIED IDEOGRAPH +0x9495 0x6543 #CJK UNIFIED IDEOGRAPH +0x9496 0x6544 #CJK UNIFIED IDEOGRAPH +0x9497 0x6546 #CJK UNIFIED IDEOGRAPH +0x9498 0x6547 #CJK UNIFIED IDEOGRAPH +0x9499 0x654A #CJK UNIFIED IDEOGRAPH +0x949A 0x654B #CJK UNIFIED IDEOGRAPH +0x949B 0x654D #CJK UNIFIED IDEOGRAPH +0x949C 0x654E #CJK UNIFIED IDEOGRAPH +0x949D 0x6550 #CJK UNIFIED IDEOGRAPH +0x949E 0x6552 #CJK UNIFIED IDEOGRAPH +0x949F 0x6553 #CJK UNIFIED IDEOGRAPH +0x94A0 0x6554 #CJK UNIFIED IDEOGRAPH +0x94A1 0x6557 #CJK UNIFIED IDEOGRAPH +0x94A2 0x6558 #CJK UNIFIED IDEOGRAPH +0x94A3 0x655A #CJK UNIFIED IDEOGRAPH +0x94A4 0x655C #CJK UNIFIED IDEOGRAPH +0x94A5 0x655F #CJK UNIFIED IDEOGRAPH +0x94A6 0x6560 #CJK UNIFIED IDEOGRAPH +0x94A7 0x6561 #CJK UNIFIED IDEOGRAPH +0x94A8 0x6564 #CJK UNIFIED IDEOGRAPH +0x94A9 0x6565 #CJK UNIFIED IDEOGRAPH +0x94AA 0x6567 #CJK UNIFIED IDEOGRAPH +0x94AB 0x6568 #CJK UNIFIED IDEOGRAPH +0x94AC 0x6569 #CJK UNIFIED IDEOGRAPH +0x94AD 0x656A #CJK UNIFIED IDEOGRAPH +0x94AE 0x656D #CJK UNIFIED IDEOGRAPH +0x94AF 0x656E #CJK UNIFIED IDEOGRAPH +0x94B0 0x656F #CJK UNIFIED IDEOGRAPH +0x94B1 0x6571 #CJK UNIFIED IDEOGRAPH +0x94B2 0x6573 #CJK UNIFIED IDEOGRAPH +0x94B3 0x6575 #CJK UNIFIED IDEOGRAPH +0x94B4 0x6576 #CJK UNIFIED IDEOGRAPH +0x94B5 0x6578 #CJK UNIFIED IDEOGRAPH +0x94B6 0x6579 #CJK UNIFIED IDEOGRAPH +0x94B7 0x657A #CJK UNIFIED IDEOGRAPH +0x94B8 0x657B #CJK UNIFIED IDEOGRAPH +0x94B9 0x657C #CJK UNIFIED IDEOGRAPH +0x94BA 0x657D #CJK UNIFIED IDEOGRAPH +0x94BB 0x657E #CJK UNIFIED IDEOGRAPH +0x94BC 0x657F #CJK UNIFIED IDEOGRAPH +0x94BD 0x6580 #CJK UNIFIED IDEOGRAPH +0x94BE 0x6581 #CJK UNIFIED IDEOGRAPH +0x94BF 0x6582 #CJK UNIFIED IDEOGRAPH +0x94C0 0x6583 #CJK UNIFIED IDEOGRAPH +0x94C1 0x6584 #CJK UNIFIED IDEOGRAPH +0x94C2 0x6585 #CJK UNIFIED IDEOGRAPH +0x94C3 0x6586 #CJK UNIFIED IDEOGRAPH +0x94C4 0x6588 #CJK UNIFIED IDEOGRAPH +0x94C5 0x6589 #CJK UNIFIED IDEOGRAPH +0x94C6 0x658A #CJK UNIFIED IDEOGRAPH +0x94C7 0x658D #CJK UNIFIED IDEOGRAPH +0x94C8 0x658E #CJK UNIFIED IDEOGRAPH +0x94C9 0x658F #CJK UNIFIED IDEOGRAPH +0x94CA 0x6592 #CJK UNIFIED IDEOGRAPH +0x94CB 0x6594 #CJK UNIFIED IDEOGRAPH +0x94CC 0x6595 #CJK UNIFIED IDEOGRAPH +0x94CD 0x6596 #CJK UNIFIED IDEOGRAPH +0x94CE 0x6598 #CJK UNIFIED IDEOGRAPH +0x94CF 0x659A #CJK UNIFIED IDEOGRAPH +0x94D0 0x659D #CJK UNIFIED IDEOGRAPH +0x94D1 0x659E #CJK UNIFIED IDEOGRAPH +0x94D2 0x65A0 #CJK UNIFIED IDEOGRAPH +0x94D3 0x65A2 #CJK UNIFIED IDEOGRAPH +0x94D4 0x65A3 #CJK UNIFIED IDEOGRAPH +0x94D5 0x65A6 #CJK UNIFIED IDEOGRAPH +0x94D6 0x65A8 #CJK UNIFIED IDEOGRAPH +0x94D7 0x65AA #CJK UNIFIED IDEOGRAPH +0x94D8 0x65AC #CJK UNIFIED IDEOGRAPH +0x94D9 0x65AE #CJK UNIFIED IDEOGRAPH +0x94DA 0x65B1 #CJK UNIFIED IDEOGRAPH +0x94DB 0x65B2 #CJK UNIFIED IDEOGRAPH +0x94DC 0x65B3 #CJK UNIFIED IDEOGRAPH +0x94DD 0x65B4 #CJK UNIFIED IDEOGRAPH +0x94DE 0x65B5 #CJK UNIFIED IDEOGRAPH +0x94DF 0x65B6 #CJK UNIFIED IDEOGRAPH +0x94E0 0x65B7 #CJK UNIFIED IDEOGRAPH +0x94E1 0x65B8 #CJK UNIFIED IDEOGRAPH +0x94E2 0x65BA #CJK UNIFIED IDEOGRAPH +0x94E3 0x65BB #CJK UNIFIED IDEOGRAPH +0x94E4 0x65BE #CJK UNIFIED IDEOGRAPH +0x94E5 0x65BF #CJK UNIFIED IDEOGRAPH +0x94E6 0x65C0 #CJK UNIFIED IDEOGRAPH +0x94E7 0x65C2 #CJK UNIFIED IDEOGRAPH +0x94E8 0x65C7 #CJK UNIFIED IDEOGRAPH +0x94E9 0x65C8 #CJK UNIFIED IDEOGRAPH +0x94EA 0x65C9 #CJK UNIFIED IDEOGRAPH +0x94EB 0x65CA #CJK UNIFIED IDEOGRAPH +0x94EC 0x65CD #CJK UNIFIED IDEOGRAPH +0x94ED 0x65D0 #CJK UNIFIED IDEOGRAPH +0x94EE 0x65D1 #CJK UNIFIED IDEOGRAPH +0x94EF 0x65D3 #CJK UNIFIED IDEOGRAPH +0x94F0 0x65D4 #CJK UNIFIED IDEOGRAPH +0x94F1 0x65D5 #CJK UNIFIED IDEOGRAPH +0x94F2 0x65D8 #CJK UNIFIED IDEOGRAPH +0x94F3 0x65D9 #CJK UNIFIED IDEOGRAPH +0x94F4 0x65DA #CJK UNIFIED IDEOGRAPH +0x94F5 0x65DB #CJK UNIFIED IDEOGRAPH +0x94F6 0x65DC #CJK UNIFIED IDEOGRAPH +0x94F7 0x65DD #CJK UNIFIED IDEOGRAPH +0x94F8 0x65DE #CJK UNIFIED IDEOGRAPH +0x94F9 0x65DF #CJK UNIFIED IDEOGRAPH +0x94FA 0x65E1 #CJK UNIFIED IDEOGRAPH +0x94FB 0x65E3 #CJK UNIFIED IDEOGRAPH +0x94FC 0x65E4 #CJK UNIFIED IDEOGRAPH +0x94FD 0x65EA #CJK UNIFIED IDEOGRAPH +0x94FE 0x65EB #CJK UNIFIED IDEOGRAPH +0x9540 0x65F2 #CJK UNIFIED IDEOGRAPH +0x9541 0x65F3 #CJK UNIFIED IDEOGRAPH +0x9542 0x65F4 #CJK UNIFIED IDEOGRAPH +0x9543 0x65F5 #CJK UNIFIED IDEOGRAPH +0x9544 0x65F8 #CJK UNIFIED IDEOGRAPH +0x9545 0x65F9 #CJK UNIFIED IDEOGRAPH +0x9546 0x65FB #CJK UNIFIED IDEOGRAPH +0x9547 0x65FC #CJK UNIFIED IDEOGRAPH +0x9548 0x65FD #CJK UNIFIED IDEOGRAPH +0x9549 0x65FE #CJK UNIFIED IDEOGRAPH +0x954A 0x65FF #CJK UNIFIED IDEOGRAPH +0x954B 0x6601 #CJK UNIFIED IDEOGRAPH +0x954C 0x6604 #CJK UNIFIED IDEOGRAPH +0x954D 0x6605 #CJK UNIFIED IDEOGRAPH +0x954E 0x6607 #CJK UNIFIED IDEOGRAPH +0x954F 0x6608 #CJK UNIFIED IDEOGRAPH +0x9550 0x6609 #CJK UNIFIED IDEOGRAPH +0x9551 0x660B #CJK UNIFIED IDEOGRAPH +0x9552 0x660D #CJK UNIFIED IDEOGRAPH +0x9553 0x6610 #CJK UNIFIED IDEOGRAPH +0x9554 0x6611 #CJK UNIFIED IDEOGRAPH +0x9555 0x6612 #CJK UNIFIED IDEOGRAPH +0x9556 0x6616 #CJK UNIFIED IDEOGRAPH +0x9557 0x6617 #CJK UNIFIED IDEOGRAPH +0x9558 0x6618 #CJK UNIFIED IDEOGRAPH +0x9559 0x661A #CJK UNIFIED IDEOGRAPH +0x955A 0x661B #CJK UNIFIED IDEOGRAPH +0x955B 0x661C #CJK UNIFIED IDEOGRAPH +0x955C 0x661E #CJK UNIFIED IDEOGRAPH +0x955D 0x6621 #CJK UNIFIED IDEOGRAPH +0x955E 0x6622 #CJK UNIFIED IDEOGRAPH +0x955F 0x6623 #CJK UNIFIED IDEOGRAPH +0x9560 0x6624 #CJK UNIFIED IDEOGRAPH +0x9561 0x6626 #CJK UNIFIED IDEOGRAPH +0x9562 0x6629 #CJK UNIFIED IDEOGRAPH +0x9563 0x662A #CJK UNIFIED IDEOGRAPH +0x9564 0x662B #CJK UNIFIED IDEOGRAPH +0x9565 0x662C #CJK UNIFIED IDEOGRAPH +0x9566 0x662E #CJK UNIFIED IDEOGRAPH +0x9567 0x6630 #CJK UNIFIED IDEOGRAPH +0x9568 0x6632 #CJK UNIFIED IDEOGRAPH +0x9569 0x6633 #CJK UNIFIED IDEOGRAPH +0x956A 0x6637 #CJK UNIFIED IDEOGRAPH +0x956B 0x6638 #CJK UNIFIED IDEOGRAPH +0x956C 0x6639 #CJK UNIFIED IDEOGRAPH +0x956D 0x663A #CJK UNIFIED IDEOGRAPH +0x956E 0x663B #CJK UNIFIED IDEOGRAPH +0x956F 0x663D #CJK UNIFIED IDEOGRAPH +0x9570 0x663F #CJK UNIFIED IDEOGRAPH +0x9571 0x6640 #CJK UNIFIED IDEOGRAPH +0x9572 0x6642 #CJK UNIFIED IDEOGRAPH +0x9573 0x6644 #CJK UNIFIED IDEOGRAPH +0x9574 0x6645 #CJK UNIFIED IDEOGRAPH +0x9575 0x6646 #CJK UNIFIED IDEOGRAPH +0x9576 0x6647 #CJK UNIFIED IDEOGRAPH +0x9577 0x6648 #CJK UNIFIED IDEOGRAPH +0x9578 0x6649 #CJK UNIFIED IDEOGRAPH +0x9579 0x664A #CJK UNIFIED IDEOGRAPH +0x957A 0x664D #CJK UNIFIED IDEOGRAPH +0x957B 0x664E #CJK UNIFIED IDEOGRAPH +0x957C 0x6650 #CJK UNIFIED IDEOGRAPH +0x957D 0x6651 #CJK UNIFIED IDEOGRAPH +0x957E 0x6658 #CJK UNIFIED IDEOGRAPH +0x9580 0x6659 #CJK UNIFIED IDEOGRAPH +0x9581 0x665B #CJK UNIFIED IDEOGRAPH +0x9582 0x665C #CJK UNIFIED IDEOGRAPH +0x9583 0x665D #CJK UNIFIED IDEOGRAPH +0x9584 0x665E #CJK UNIFIED IDEOGRAPH +0x9585 0x6660 #CJK UNIFIED IDEOGRAPH +0x9586 0x6662 #CJK UNIFIED IDEOGRAPH +0x9587 0x6663 #CJK UNIFIED IDEOGRAPH +0x9588 0x6665 #CJK UNIFIED IDEOGRAPH +0x9589 0x6667 #CJK UNIFIED IDEOGRAPH +0x958A 0x6669 #CJK UNIFIED IDEOGRAPH +0x958B 0x666A #CJK UNIFIED IDEOGRAPH +0x958C 0x666B #CJK UNIFIED IDEOGRAPH +0x958D 0x666C #CJK UNIFIED IDEOGRAPH +0x958E 0x666D #CJK UNIFIED IDEOGRAPH +0x958F 0x6671 #CJK UNIFIED IDEOGRAPH +0x9590 0x6672 #CJK UNIFIED IDEOGRAPH +0x9591 0x6673 #CJK UNIFIED IDEOGRAPH +0x9592 0x6675 #CJK UNIFIED IDEOGRAPH +0x9593 0x6678 #CJK UNIFIED IDEOGRAPH +0x9594 0x6679 #CJK UNIFIED IDEOGRAPH +0x9595 0x667B #CJK UNIFIED IDEOGRAPH +0x9596 0x667C #CJK UNIFIED IDEOGRAPH +0x9597 0x667D #CJK UNIFIED IDEOGRAPH +0x9598 0x667F #CJK UNIFIED IDEOGRAPH +0x9599 0x6680 #CJK UNIFIED IDEOGRAPH +0x959A 0x6681 #CJK UNIFIED IDEOGRAPH +0x959B 0x6683 #CJK UNIFIED IDEOGRAPH +0x959C 0x6685 #CJK UNIFIED IDEOGRAPH +0x959D 0x6686 #CJK UNIFIED IDEOGRAPH +0x959E 0x6688 #CJK UNIFIED IDEOGRAPH +0x959F 0x6689 #CJK UNIFIED IDEOGRAPH +0x95A0 0x668A #CJK UNIFIED IDEOGRAPH +0x95A1 0x668B #CJK UNIFIED IDEOGRAPH +0x95A2 0x668D #CJK UNIFIED IDEOGRAPH +0x95A3 0x668E #CJK UNIFIED IDEOGRAPH +0x95A4 0x668F #CJK UNIFIED IDEOGRAPH +0x95A5 0x6690 #CJK UNIFIED IDEOGRAPH +0x95A6 0x6692 #CJK UNIFIED IDEOGRAPH +0x95A7 0x6693 #CJK UNIFIED IDEOGRAPH +0x95A8 0x6694 #CJK UNIFIED IDEOGRAPH +0x95A9 0x6695 #CJK UNIFIED IDEOGRAPH +0x95AA 0x6698 #CJK UNIFIED IDEOGRAPH +0x95AB 0x6699 #CJK UNIFIED IDEOGRAPH +0x95AC 0x669A #CJK UNIFIED IDEOGRAPH +0x95AD 0x669B #CJK UNIFIED IDEOGRAPH +0x95AE 0x669C #CJK UNIFIED IDEOGRAPH +0x95AF 0x669E #CJK UNIFIED IDEOGRAPH +0x95B0 0x669F #CJK UNIFIED IDEOGRAPH +0x95B1 0x66A0 #CJK UNIFIED IDEOGRAPH +0x95B2 0x66A1 #CJK UNIFIED IDEOGRAPH +0x95B3 0x66A2 #CJK UNIFIED IDEOGRAPH +0x95B4 0x66A3 #CJK UNIFIED IDEOGRAPH +0x95B5 0x66A4 #CJK UNIFIED IDEOGRAPH +0x95B6 0x66A5 #CJK UNIFIED IDEOGRAPH +0x95B7 0x66A6 #CJK UNIFIED IDEOGRAPH +0x95B8 0x66A9 #CJK UNIFIED IDEOGRAPH +0x95B9 0x66AA #CJK UNIFIED IDEOGRAPH +0x95BA 0x66AB #CJK UNIFIED IDEOGRAPH +0x95BB 0x66AC #CJK UNIFIED IDEOGRAPH +0x95BC 0x66AD #CJK UNIFIED IDEOGRAPH +0x95BD 0x66AF #CJK UNIFIED IDEOGRAPH +0x95BE 0x66B0 #CJK UNIFIED IDEOGRAPH +0x95BF 0x66B1 #CJK UNIFIED IDEOGRAPH +0x95C0 0x66B2 #CJK UNIFIED IDEOGRAPH +0x95C1 0x66B3 #CJK UNIFIED IDEOGRAPH +0x95C2 0x66B5 #CJK UNIFIED IDEOGRAPH +0x95C3 0x66B6 #CJK UNIFIED IDEOGRAPH +0x95C4 0x66B7 #CJK UNIFIED IDEOGRAPH +0x95C5 0x66B8 #CJK UNIFIED IDEOGRAPH +0x95C6 0x66BA #CJK UNIFIED IDEOGRAPH +0x95C7 0x66BB #CJK UNIFIED IDEOGRAPH +0x95C8 0x66BC #CJK UNIFIED IDEOGRAPH +0x95C9 0x66BD #CJK UNIFIED IDEOGRAPH +0x95CA 0x66BF #CJK UNIFIED IDEOGRAPH +0x95CB 0x66C0 #CJK UNIFIED IDEOGRAPH +0x95CC 0x66C1 #CJK UNIFIED IDEOGRAPH +0x95CD 0x66C2 #CJK UNIFIED IDEOGRAPH +0x95CE 0x66C3 #CJK UNIFIED IDEOGRAPH +0x95CF 0x66C4 #CJK UNIFIED IDEOGRAPH +0x95D0 0x66C5 #CJK UNIFIED IDEOGRAPH +0x95D1 0x66C6 #CJK UNIFIED IDEOGRAPH +0x95D2 0x66C7 #CJK UNIFIED IDEOGRAPH +0x95D3 0x66C8 #CJK UNIFIED IDEOGRAPH +0x95D4 0x66C9 #CJK UNIFIED IDEOGRAPH +0x95D5 0x66CA #CJK UNIFIED IDEOGRAPH +0x95D6 0x66CB #CJK UNIFIED IDEOGRAPH +0x95D7 0x66CC #CJK UNIFIED IDEOGRAPH +0x95D8 0x66CD #CJK UNIFIED IDEOGRAPH +0x95D9 0x66CE #CJK UNIFIED IDEOGRAPH +0x95DA 0x66CF #CJK UNIFIED IDEOGRAPH +0x95DB 0x66D0 #CJK UNIFIED IDEOGRAPH +0x95DC 0x66D1 #CJK UNIFIED IDEOGRAPH +0x95DD 0x66D2 #CJK UNIFIED IDEOGRAPH +0x95DE 0x66D3 #CJK UNIFIED IDEOGRAPH +0x95DF 0x66D4 #CJK UNIFIED IDEOGRAPH +0x95E0 0x66D5 #CJK UNIFIED IDEOGRAPH +0x95E1 0x66D6 #CJK UNIFIED IDEOGRAPH +0x95E2 0x66D7 #CJK UNIFIED IDEOGRAPH +0x95E3 0x66D8 #CJK UNIFIED IDEOGRAPH +0x95E4 0x66DA #CJK UNIFIED IDEOGRAPH +0x95E5 0x66DE #CJK UNIFIED IDEOGRAPH +0x95E6 0x66DF #CJK UNIFIED IDEOGRAPH +0x95E7 0x66E0 #CJK UNIFIED IDEOGRAPH +0x95E8 0x66E1 #CJK UNIFIED IDEOGRAPH +0x95E9 0x66E2 #CJK UNIFIED IDEOGRAPH +0x95EA 0x66E3 #CJK UNIFIED IDEOGRAPH +0x95EB 0x66E4 #CJK UNIFIED IDEOGRAPH +0x95EC 0x66E5 #CJK UNIFIED IDEOGRAPH +0x95ED 0x66E7 #CJK UNIFIED IDEOGRAPH +0x95EE 0x66E8 #CJK UNIFIED IDEOGRAPH +0x95EF 0x66EA #CJK UNIFIED IDEOGRAPH +0x95F0 0x66EB #CJK UNIFIED IDEOGRAPH +0x95F1 0x66EC #CJK UNIFIED IDEOGRAPH +0x95F2 0x66ED #CJK UNIFIED IDEOGRAPH +0x95F3 0x66EE #CJK UNIFIED IDEOGRAPH +0x95F4 0x66EF #CJK UNIFIED IDEOGRAPH +0x95F5 0x66F1 #CJK UNIFIED IDEOGRAPH +0x95F6 0x66F5 #CJK UNIFIED IDEOGRAPH +0x95F7 0x66F6 #CJK UNIFIED IDEOGRAPH +0x95F8 0x66F8 #CJK UNIFIED IDEOGRAPH +0x95F9 0x66FA #CJK UNIFIED IDEOGRAPH +0x95FA 0x66FB #CJK UNIFIED IDEOGRAPH +0x95FB 0x66FD #CJK UNIFIED IDEOGRAPH +0x95FC 0x6701 #CJK UNIFIED IDEOGRAPH +0x95FD 0x6702 #CJK UNIFIED IDEOGRAPH +0x95FE 0x6703 #CJK UNIFIED IDEOGRAPH +0x9640 0x6704 #CJK UNIFIED IDEOGRAPH +0x9641 0x6705 #CJK UNIFIED IDEOGRAPH +0x9642 0x6706 #CJK UNIFIED IDEOGRAPH +0x9643 0x6707 #CJK UNIFIED IDEOGRAPH +0x9644 0x670C #CJK UNIFIED IDEOGRAPH +0x9645 0x670E #CJK UNIFIED IDEOGRAPH +0x9646 0x670F #CJK UNIFIED IDEOGRAPH +0x9647 0x6711 #CJK UNIFIED IDEOGRAPH +0x9648 0x6712 #CJK UNIFIED IDEOGRAPH +0x9649 0x6713 #CJK UNIFIED IDEOGRAPH +0x964A 0x6716 #CJK UNIFIED IDEOGRAPH +0x964B 0x6718 #CJK UNIFIED IDEOGRAPH +0x964C 0x6719 #CJK UNIFIED IDEOGRAPH +0x964D 0x671A #CJK UNIFIED IDEOGRAPH +0x964E 0x671C #CJK UNIFIED IDEOGRAPH +0x964F 0x671E #CJK UNIFIED IDEOGRAPH +0x9650 0x6720 #CJK UNIFIED IDEOGRAPH +0x9651 0x6721 #CJK UNIFIED IDEOGRAPH +0x9652 0x6722 #CJK UNIFIED IDEOGRAPH +0x9653 0x6723 #CJK UNIFIED IDEOGRAPH +0x9654 0x6724 #CJK UNIFIED IDEOGRAPH +0x9655 0x6725 #CJK UNIFIED IDEOGRAPH +0x9656 0x6727 #CJK UNIFIED IDEOGRAPH +0x9657 0x6729 #CJK UNIFIED IDEOGRAPH +0x9658 0x672E #CJK UNIFIED IDEOGRAPH +0x9659 0x6730 #CJK UNIFIED IDEOGRAPH +0x965A 0x6732 #CJK UNIFIED IDEOGRAPH +0x965B 0x6733 #CJK UNIFIED IDEOGRAPH +0x965C 0x6736 #CJK UNIFIED IDEOGRAPH +0x965D 0x6737 #CJK UNIFIED IDEOGRAPH +0x965E 0x6738 #CJK UNIFIED IDEOGRAPH +0x965F 0x6739 #CJK UNIFIED IDEOGRAPH +0x9660 0x673B #CJK UNIFIED IDEOGRAPH +0x9661 0x673C #CJK UNIFIED IDEOGRAPH +0x9662 0x673E #CJK UNIFIED IDEOGRAPH +0x9663 0x673F #CJK UNIFIED IDEOGRAPH +0x9664 0x6741 #CJK UNIFIED IDEOGRAPH +0x9665 0x6744 #CJK UNIFIED IDEOGRAPH +0x9666 0x6745 #CJK UNIFIED IDEOGRAPH +0x9667 0x6747 #CJK UNIFIED IDEOGRAPH +0x9668 0x674A #CJK UNIFIED IDEOGRAPH +0x9669 0x674B #CJK UNIFIED IDEOGRAPH +0x966A 0x674D #CJK UNIFIED IDEOGRAPH +0x966B 0x6752 #CJK UNIFIED IDEOGRAPH +0x966C 0x6754 #CJK UNIFIED IDEOGRAPH +0x966D 0x6755 #CJK UNIFIED IDEOGRAPH +0x966E 0x6757 #CJK UNIFIED IDEOGRAPH +0x966F 0x6758 #CJK UNIFIED IDEOGRAPH +0x9670 0x6759 #CJK UNIFIED IDEOGRAPH +0x9671 0x675A #CJK UNIFIED IDEOGRAPH +0x9672 0x675B #CJK UNIFIED IDEOGRAPH +0x9673 0x675D #CJK UNIFIED IDEOGRAPH +0x9674 0x6762 #CJK UNIFIED IDEOGRAPH +0x9675 0x6763 #CJK UNIFIED IDEOGRAPH +0x9676 0x6764 #CJK UNIFIED IDEOGRAPH +0x9677 0x6766 #CJK UNIFIED IDEOGRAPH +0x9678 0x6767 #CJK UNIFIED IDEOGRAPH +0x9679 0x676B #CJK UNIFIED IDEOGRAPH +0x967A 0x676C #CJK UNIFIED IDEOGRAPH +0x967B 0x676E #CJK UNIFIED IDEOGRAPH +0x967C 0x6771 #CJK UNIFIED IDEOGRAPH +0x967D 0x6774 #CJK UNIFIED IDEOGRAPH +0x967E 0x6776 #CJK UNIFIED IDEOGRAPH +0x9680 0x6778 #CJK UNIFIED IDEOGRAPH +0x9681 0x6779 #CJK UNIFIED IDEOGRAPH +0x9682 0x677A #CJK UNIFIED IDEOGRAPH +0x9683 0x677B #CJK UNIFIED IDEOGRAPH +0x9684 0x677D #CJK UNIFIED IDEOGRAPH +0x9685 0x6780 #CJK UNIFIED IDEOGRAPH +0x9686 0x6782 #CJK UNIFIED IDEOGRAPH +0x9687 0x6783 #CJK UNIFIED IDEOGRAPH +0x9688 0x6785 #CJK UNIFIED IDEOGRAPH +0x9689 0x6786 #CJK UNIFIED IDEOGRAPH +0x968A 0x6788 #CJK UNIFIED IDEOGRAPH +0x968B 0x678A #CJK UNIFIED IDEOGRAPH +0x968C 0x678C #CJK UNIFIED IDEOGRAPH +0x968D 0x678D #CJK UNIFIED IDEOGRAPH +0x968E 0x678E #CJK UNIFIED IDEOGRAPH +0x968F 0x678F #CJK UNIFIED IDEOGRAPH +0x9690 0x6791 #CJK UNIFIED IDEOGRAPH +0x9691 0x6792 #CJK UNIFIED IDEOGRAPH +0x9692 0x6793 #CJK UNIFIED IDEOGRAPH +0x9693 0x6794 #CJK UNIFIED IDEOGRAPH +0x9694 0x6796 #CJK UNIFIED IDEOGRAPH +0x9695 0x6799 #CJK UNIFIED IDEOGRAPH +0x9696 0x679B #CJK UNIFIED IDEOGRAPH +0x9697 0x679F #CJK UNIFIED IDEOGRAPH +0x9698 0x67A0 #CJK UNIFIED IDEOGRAPH +0x9699 0x67A1 #CJK UNIFIED IDEOGRAPH +0x969A 0x67A4 #CJK UNIFIED IDEOGRAPH +0x969B 0x67A6 #CJK UNIFIED IDEOGRAPH +0x969C 0x67A9 #CJK UNIFIED IDEOGRAPH +0x969D 0x67AC #CJK UNIFIED IDEOGRAPH +0x969E 0x67AE #CJK UNIFIED IDEOGRAPH +0x969F 0x67B1 #CJK UNIFIED IDEOGRAPH +0x96A0 0x67B2 #CJK UNIFIED IDEOGRAPH +0x96A1 0x67B4 #CJK UNIFIED IDEOGRAPH +0x96A2 0x67B9 #CJK UNIFIED IDEOGRAPH +0x96A3 0x67BA #CJK UNIFIED IDEOGRAPH +0x96A4 0x67BB #CJK UNIFIED IDEOGRAPH +0x96A5 0x67BC #CJK UNIFIED IDEOGRAPH +0x96A6 0x67BD #CJK UNIFIED IDEOGRAPH +0x96A7 0x67BE #CJK UNIFIED IDEOGRAPH +0x96A8 0x67BF #CJK UNIFIED IDEOGRAPH +0x96A9 0x67C0 #CJK UNIFIED IDEOGRAPH +0x96AA 0x67C2 #CJK UNIFIED IDEOGRAPH +0x96AB 0x67C5 #CJK UNIFIED IDEOGRAPH +0x96AC 0x67C6 #CJK UNIFIED IDEOGRAPH +0x96AD 0x67C7 #CJK UNIFIED IDEOGRAPH +0x96AE 0x67C8 #CJK UNIFIED IDEOGRAPH +0x96AF 0x67C9 #CJK UNIFIED IDEOGRAPH +0x96B0 0x67CA #CJK UNIFIED IDEOGRAPH +0x96B1 0x67CB #CJK UNIFIED IDEOGRAPH +0x96B2 0x67CC #CJK UNIFIED IDEOGRAPH +0x96B3 0x67CD #CJK UNIFIED IDEOGRAPH +0x96B4 0x67CE #CJK UNIFIED IDEOGRAPH +0x96B5 0x67D5 #CJK UNIFIED IDEOGRAPH +0x96B6 0x67D6 #CJK UNIFIED IDEOGRAPH +0x96B7 0x67D7 #CJK UNIFIED IDEOGRAPH +0x96B8 0x67DB #CJK UNIFIED IDEOGRAPH +0x96B9 0x67DF #CJK UNIFIED IDEOGRAPH +0x96BA 0x67E1 #CJK UNIFIED IDEOGRAPH +0x96BB 0x67E3 #CJK UNIFIED IDEOGRAPH +0x96BC 0x67E4 #CJK UNIFIED IDEOGRAPH +0x96BD 0x67E6 #CJK UNIFIED IDEOGRAPH +0x96BE 0x67E7 #CJK UNIFIED IDEOGRAPH +0x96BF 0x67E8 #CJK UNIFIED IDEOGRAPH +0x96C0 0x67EA #CJK UNIFIED IDEOGRAPH +0x96C1 0x67EB #CJK UNIFIED IDEOGRAPH +0x96C2 0x67ED #CJK UNIFIED IDEOGRAPH +0x96C3 0x67EE #CJK UNIFIED IDEOGRAPH +0x96C4 0x67F2 #CJK UNIFIED IDEOGRAPH +0x96C5 0x67F5 #CJK UNIFIED IDEOGRAPH +0x96C6 0x67F6 #CJK UNIFIED IDEOGRAPH +0x96C7 0x67F7 #CJK UNIFIED IDEOGRAPH +0x96C8 0x67F8 #CJK UNIFIED IDEOGRAPH +0x96C9 0x67F9 #CJK UNIFIED IDEOGRAPH +0x96CA 0x67FA #CJK UNIFIED IDEOGRAPH +0x96CB 0x67FB #CJK UNIFIED IDEOGRAPH +0x96CC 0x67FC #CJK UNIFIED IDEOGRAPH +0x96CD 0x67FE #CJK UNIFIED IDEOGRAPH +0x96CE 0x6801 #CJK UNIFIED IDEOGRAPH +0x96CF 0x6802 #CJK UNIFIED IDEOGRAPH +0x96D0 0x6803 #CJK UNIFIED IDEOGRAPH +0x96D1 0x6804 #CJK UNIFIED IDEOGRAPH +0x96D2 0x6806 #CJK UNIFIED IDEOGRAPH +0x96D3 0x680D #CJK UNIFIED IDEOGRAPH +0x96D4 0x6810 #CJK UNIFIED IDEOGRAPH +0x96D5 0x6812 #CJK UNIFIED IDEOGRAPH +0x96D6 0x6814 #CJK UNIFIED IDEOGRAPH +0x96D7 0x6815 #CJK UNIFIED IDEOGRAPH +0x96D8 0x6818 #CJK UNIFIED IDEOGRAPH +0x96D9 0x6819 #CJK UNIFIED IDEOGRAPH +0x96DA 0x681A #CJK UNIFIED IDEOGRAPH +0x96DB 0x681B #CJK UNIFIED IDEOGRAPH +0x96DC 0x681C #CJK UNIFIED IDEOGRAPH +0x96DD 0x681E #CJK UNIFIED IDEOGRAPH +0x96DE 0x681F #CJK UNIFIED IDEOGRAPH +0x96DF 0x6820 #CJK UNIFIED IDEOGRAPH +0x96E0 0x6822 #CJK UNIFIED IDEOGRAPH +0x96E1 0x6823 #CJK UNIFIED IDEOGRAPH +0x96E2 0x6824 #CJK UNIFIED IDEOGRAPH +0x96E3 0x6825 #CJK UNIFIED IDEOGRAPH +0x96E4 0x6826 #CJK UNIFIED IDEOGRAPH +0x96E5 0x6827 #CJK UNIFIED IDEOGRAPH +0x96E6 0x6828 #CJK UNIFIED IDEOGRAPH +0x96E7 0x682B #CJK UNIFIED IDEOGRAPH +0x96E8 0x682C #CJK UNIFIED IDEOGRAPH +0x96E9 0x682D #CJK UNIFIED IDEOGRAPH +0x96EA 0x682E #CJK UNIFIED IDEOGRAPH +0x96EB 0x682F #CJK UNIFIED IDEOGRAPH +0x96EC 0x6830 #CJK UNIFIED IDEOGRAPH +0x96ED 0x6831 #CJK UNIFIED IDEOGRAPH +0x96EE 0x6834 #CJK UNIFIED IDEOGRAPH +0x96EF 0x6835 #CJK UNIFIED IDEOGRAPH +0x96F0 0x6836 #CJK UNIFIED IDEOGRAPH +0x96F1 0x683A #CJK UNIFIED IDEOGRAPH +0x96F2 0x683B #CJK UNIFIED IDEOGRAPH +0x96F3 0x683F #CJK UNIFIED IDEOGRAPH +0x96F4 0x6847 #CJK UNIFIED IDEOGRAPH +0x96F5 0x684B #CJK UNIFIED IDEOGRAPH +0x96F6 0x684D #CJK UNIFIED IDEOGRAPH +0x96F7 0x684F #CJK UNIFIED IDEOGRAPH +0x96F8 0x6852 #CJK UNIFIED IDEOGRAPH +0x96F9 0x6856 #CJK UNIFIED IDEOGRAPH +0x96FA 0x6857 #CJK UNIFIED IDEOGRAPH +0x96FB 0x6858 #CJK UNIFIED IDEOGRAPH +0x96FC 0x6859 #CJK UNIFIED IDEOGRAPH +0x96FD 0x685A #CJK UNIFIED IDEOGRAPH +0x96FE 0x685B #CJK UNIFIED IDEOGRAPH +0x9740 0x685C #CJK UNIFIED IDEOGRAPH +0x9741 0x685D #CJK UNIFIED IDEOGRAPH +0x9742 0x685E #CJK UNIFIED IDEOGRAPH +0x9743 0x685F #CJK UNIFIED IDEOGRAPH +0x9744 0x686A #CJK UNIFIED IDEOGRAPH +0x9745 0x686C #CJK UNIFIED IDEOGRAPH +0x9746 0x686D #CJK UNIFIED IDEOGRAPH +0x9747 0x686E #CJK UNIFIED IDEOGRAPH +0x9748 0x686F #CJK UNIFIED IDEOGRAPH +0x9749 0x6870 #CJK UNIFIED IDEOGRAPH +0x974A 0x6871 #CJK UNIFIED IDEOGRAPH +0x974B 0x6872 #CJK UNIFIED IDEOGRAPH +0x974C 0x6873 #CJK UNIFIED IDEOGRAPH +0x974D 0x6875 #CJK UNIFIED IDEOGRAPH +0x974E 0x6878 #CJK UNIFIED IDEOGRAPH +0x974F 0x6879 #CJK UNIFIED IDEOGRAPH +0x9750 0x687A #CJK UNIFIED IDEOGRAPH +0x9751 0x687B #CJK UNIFIED IDEOGRAPH +0x9752 0x687C #CJK UNIFIED IDEOGRAPH +0x9753 0x687D #CJK UNIFIED IDEOGRAPH +0x9754 0x687E #CJK UNIFIED IDEOGRAPH +0x9755 0x687F #CJK UNIFIED IDEOGRAPH +0x9756 0x6880 #CJK UNIFIED IDEOGRAPH +0x9757 0x6882 #CJK UNIFIED IDEOGRAPH +0x9758 0x6884 #CJK UNIFIED IDEOGRAPH +0x9759 0x6887 #CJK UNIFIED IDEOGRAPH +0x975A 0x6888 #CJK UNIFIED IDEOGRAPH +0x975B 0x6889 #CJK UNIFIED IDEOGRAPH +0x975C 0x688A #CJK UNIFIED IDEOGRAPH +0x975D 0x688B #CJK UNIFIED IDEOGRAPH +0x975E 0x688C #CJK UNIFIED IDEOGRAPH +0x975F 0x688D #CJK UNIFIED IDEOGRAPH +0x9760 0x688E #CJK UNIFIED IDEOGRAPH +0x9761 0x6890 #CJK UNIFIED IDEOGRAPH +0x9762 0x6891 #CJK UNIFIED IDEOGRAPH +0x9763 0x6892 #CJK UNIFIED IDEOGRAPH +0x9764 0x6894 #CJK UNIFIED IDEOGRAPH +0x9765 0x6895 #CJK UNIFIED IDEOGRAPH +0x9766 0x6896 #CJK UNIFIED IDEOGRAPH +0x9767 0x6898 #CJK UNIFIED IDEOGRAPH +0x9768 0x6899 #CJK UNIFIED IDEOGRAPH +0x9769 0x689A #CJK UNIFIED IDEOGRAPH +0x976A 0x689B #CJK UNIFIED IDEOGRAPH +0x976B 0x689C #CJK UNIFIED IDEOGRAPH +0x976C 0x689D #CJK UNIFIED IDEOGRAPH +0x976D 0x689E #CJK UNIFIED IDEOGRAPH +0x976E 0x689F #CJK UNIFIED IDEOGRAPH +0x976F 0x68A0 #CJK UNIFIED IDEOGRAPH +0x9770 0x68A1 #CJK UNIFIED IDEOGRAPH +0x9771 0x68A3 #CJK UNIFIED IDEOGRAPH +0x9772 0x68A4 #CJK UNIFIED IDEOGRAPH +0x9773 0x68A5 #CJK UNIFIED IDEOGRAPH +0x9774 0x68A9 #CJK UNIFIED IDEOGRAPH +0x9775 0x68AA #CJK UNIFIED IDEOGRAPH +0x9776 0x68AB #CJK UNIFIED IDEOGRAPH +0x9777 0x68AC #CJK UNIFIED IDEOGRAPH +0x9778 0x68AE #CJK UNIFIED IDEOGRAPH +0x9779 0x68B1 #CJK UNIFIED IDEOGRAPH +0x977A 0x68B2 #CJK UNIFIED IDEOGRAPH +0x977B 0x68B4 #CJK UNIFIED IDEOGRAPH +0x977C 0x68B6 #CJK UNIFIED IDEOGRAPH +0x977D 0x68B7 #CJK UNIFIED IDEOGRAPH +0x977E 0x68B8 #CJK UNIFIED IDEOGRAPH +0x9780 0x68B9 #CJK UNIFIED IDEOGRAPH +0x9781 0x68BA #CJK UNIFIED IDEOGRAPH +0x9782 0x68BB #CJK UNIFIED IDEOGRAPH +0x9783 0x68BC #CJK UNIFIED IDEOGRAPH +0x9784 0x68BD #CJK UNIFIED IDEOGRAPH +0x9785 0x68BE #CJK UNIFIED IDEOGRAPH +0x9786 0x68BF #CJK UNIFIED IDEOGRAPH +0x9787 0x68C1 #CJK UNIFIED IDEOGRAPH +0x9788 0x68C3 #CJK UNIFIED IDEOGRAPH +0x9789 0x68C4 #CJK UNIFIED IDEOGRAPH +0x978A 0x68C5 #CJK UNIFIED IDEOGRAPH +0x978B 0x68C6 #CJK UNIFIED IDEOGRAPH +0x978C 0x68C7 #CJK UNIFIED IDEOGRAPH +0x978D 0x68C8 #CJK UNIFIED IDEOGRAPH +0x978E 0x68CA #CJK UNIFIED IDEOGRAPH +0x978F 0x68CC #CJK UNIFIED IDEOGRAPH +0x9790 0x68CE #CJK UNIFIED IDEOGRAPH +0x9791 0x68CF #CJK UNIFIED IDEOGRAPH +0x9792 0x68D0 #CJK UNIFIED IDEOGRAPH +0x9793 0x68D1 #CJK UNIFIED IDEOGRAPH +0x9794 0x68D3 #CJK UNIFIED IDEOGRAPH +0x9795 0x68D4 #CJK UNIFIED IDEOGRAPH +0x9796 0x68D6 #CJK UNIFIED IDEOGRAPH +0x9797 0x68D7 #CJK UNIFIED IDEOGRAPH +0x9798 0x68D9 #CJK UNIFIED IDEOGRAPH +0x9799 0x68DB #CJK UNIFIED IDEOGRAPH +0x979A 0x68DC #CJK UNIFIED IDEOGRAPH +0x979B 0x68DD #CJK UNIFIED IDEOGRAPH +0x979C 0x68DE #CJK UNIFIED IDEOGRAPH +0x979D 0x68DF #CJK UNIFIED IDEOGRAPH +0x979E 0x68E1 #CJK UNIFIED IDEOGRAPH +0x979F 0x68E2 #CJK UNIFIED IDEOGRAPH +0x97A0 0x68E4 #CJK UNIFIED IDEOGRAPH +0x97A1 0x68E5 #CJK UNIFIED IDEOGRAPH +0x97A2 0x68E6 #CJK UNIFIED IDEOGRAPH +0x97A3 0x68E7 #CJK UNIFIED IDEOGRAPH +0x97A4 0x68E8 #CJK UNIFIED IDEOGRAPH +0x97A5 0x68E9 #CJK UNIFIED IDEOGRAPH +0x97A6 0x68EA #CJK UNIFIED IDEOGRAPH +0x97A7 0x68EB #CJK UNIFIED IDEOGRAPH +0x97A8 0x68EC #CJK UNIFIED IDEOGRAPH +0x97A9 0x68ED #CJK UNIFIED IDEOGRAPH +0x97AA 0x68EF #CJK UNIFIED IDEOGRAPH +0x97AB 0x68F2 #CJK UNIFIED IDEOGRAPH +0x97AC 0x68F3 #CJK UNIFIED IDEOGRAPH +0x97AD 0x68F4 #CJK UNIFIED IDEOGRAPH +0x97AE 0x68F6 #CJK UNIFIED IDEOGRAPH +0x97AF 0x68F7 #CJK UNIFIED IDEOGRAPH +0x97B0 0x68F8 #CJK UNIFIED IDEOGRAPH +0x97B1 0x68FB #CJK UNIFIED IDEOGRAPH +0x97B2 0x68FD #CJK UNIFIED IDEOGRAPH +0x97B3 0x68FE #CJK UNIFIED IDEOGRAPH +0x97B4 0x68FF #CJK UNIFIED IDEOGRAPH +0x97B5 0x6900 #CJK UNIFIED IDEOGRAPH +0x97B6 0x6902 #CJK UNIFIED IDEOGRAPH +0x97B7 0x6903 #CJK UNIFIED IDEOGRAPH +0x97B8 0x6904 #CJK UNIFIED IDEOGRAPH +0x97B9 0x6906 #CJK UNIFIED IDEOGRAPH +0x97BA 0x6907 #CJK UNIFIED IDEOGRAPH +0x97BB 0x6908 #CJK UNIFIED IDEOGRAPH +0x97BC 0x6909 #CJK UNIFIED IDEOGRAPH +0x97BD 0x690A #CJK UNIFIED IDEOGRAPH +0x97BE 0x690C #CJK UNIFIED IDEOGRAPH +0x97BF 0x690F #CJK UNIFIED IDEOGRAPH +0x97C0 0x6911 #CJK UNIFIED IDEOGRAPH +0x97C1 0x6913 #CJK UNIFIED IDEOGRAPH +0x97C2 0x6914 #CJK UNIFIED IDEOGRAPH +0x97C3 0x6915 #CJK UNIFIED IDEOGRAPH +0x97C4 0x6916 #CJK UNIFIED IDEOGRAPH +0x97C5 0x6917 #CJK UNIFIED IDEOGRAPH +0x97C6 0x6918 #CJK UNIFIED IDEOGRAPH +0x97C7 0x6919 #CJK UNIFIED IDEOGRAPH +0x97C8 0x691A #CJK UNIFIED IDEOGRAPH +0x97C9 0x691B #CJK UNIFIED IDEOGRAPH +0x97CA 0x691C #CJK UNIFIED IDEOGRAPH +0x97CB 0x691D #CJK UNIFIED IDEOGRAPH +0x97CC 0x691E #CJK UNIFIED IDEOGRAPH +0x97CD 0x6921 #CJK UNIFIED IDEOGRAPH +0x97CE 0x6922 #CJK UNIFIED IDEOGRAPH +0x97CF 0x6923 #CJK UNIFIED IDEOGRAPH +0x97D0 0x6925 #CJK UNIFIED IDEOGRAPH +0x97D1 0x6926 #CJK UNIFIED IDEOGRAPH +0x97D2 0x6927 #CJK UNIFIED IDEOGRAPH +0x97D3 0x6928 #CJK UNIFIED IDEOGRAPH +0x97D4 0x6929 #CJK UNIFIED IDEOGRAPH +0x97D5 0x692A #CJK UNIFIED IDEOGRAPH +0x97D6 0x692B #CJK UNIFIED IDEOGRAPH +0x97D7 0x692C #CJK UNIFIED IDEOGRAPH +0x97D8 0x692E #CJK UNIFIED IDEOGRAPH +0x97D9 0x692F #CJK UNIFIED IDEOGRAPH +0x97DA 0x6931 #CJK UNIFIED IDEOGRAPH +0x97DB 0x6932 #CJK UNIFIED IDEOGRAPH +0x97DC 0x6933 #CJK UNIFIED IDEOGRAPH +0x97DD 0x6935 #CJK UNIFIED IDEOGRAPH +0x97DE 0x6936 #CJK UNIFIED IDEOGRAPH +0x97DF 0x6937 #CJK UNIFIED IDEOGRAPH +0x97E0 0x6938 #CJK UNIFIED IDEOGRAPH +0x97E1 0x693A #CJK UNIFIED IDEOGRAPH +0x97E2 0x693B #CJK UNIFIED IDEOGRAPH +0x97E3 0x693C #CJK UNIFIED IDEOGRAPH +0x97E4 0x693E #CJK UNIFIED IDEOGRAPH +0x97E5 0x6940 #CJK UNIFIED IDEOGRAPH +0x97E6 0x6941 #CJK UNIFIED IDEOGRAPH +0x97E7 0x6943 #CJK UNIFIED IDEOGRAPH +0x97E8 0x6944 #CJK UNIFIED IDEOGRAPH +0x97E9 0x6945 #CJK UNIFIED IDEOGRAPH +0x97EA 0x6946 #CJK UNIFIED IDEOGRAPH +0x97EB 0x6947 #CJK UNIFIED IDEOGRAPH +0x97EC 0x6948 #CJK UNIFIED IDEOGRAPH +0x97ED 0x6949 #CJK UNIFIED IDEOGRAPH +0x97EE 0x694A #CJK UNIFIED IDEOGRAPH +0x97EF 0x694B #CJK UNIFIED IDEOGRAPH +0x97F0 0x694C #CJK UNIFIED IDEOGRAPH +0x97F1 0x694D #CJK UNIFIED IDEOGRAPH +0x97F2 0x694E #CJK UNIFIED IDEOGRAPH +0x97F3 0x694F #CJK UNIFIED IDEOGRAPH +0x97F4 0x6950 #CJK UNIFIED IDEOGRAPH +0x97F5 0x6951 #CJK UNIFIED IDEOGRAPH +0x97F6 0x6952 #CJK UNIFIED IDEOGRAPH +0x97F7 0x6953 #CJK UNIFIED IDEOGRAPH +0x97F8 0x6955 #CJK UNIFIED IDEOGRAPH +0x97F9 0x6956 #CJK UNIFIED IDEOGRAPH +0x97FA 0x6958 #CJK UNIFIED IDEOGRAPH +0x97FB 0x6959 #CJK UNIFIED IDEOGRAPH +0x97FC 0x695B #CJK UNIFIED IDEOGRAPH +0x97FD 0x695C #CJK UNIFIED IDEOGRAPH +0x97FE 0x695F #CJK UNIFIED IDEOGRAPH +0x9840 0x6961 #CJK UNIFIED IDEOGRAPH +0x9841 0x6962 #CJK UNIFIED IDEOGRAPH +0x9842 0x6964 #CJK UNIFIED IDEOGRAPH +0x9843 0x6965 #CJK UNIFIED IDEOGRAPH +0x9844 0x6967 #CJK UNIFIED IDEOGRAPH +0x9845 0x6968 #CJK UNIFIED IDEOGRAPH +0x9846 0x6969 #CJK UNIFIED IDEOGRAPH +0x9847 0x696A #CJK UNIFIED IDEOGRAPH +0x9848 0x696C #CJK UNIFIED IDEOGRAPH +0x9849 0x696D #CJK UNIFIED IDEOGRAPH +0x984A 0x696F #CJK UNIFIED IDEOGRAPH +0x984B 0x6970 #CJK UNIFIED IDEOGRAPH +0x984C 0x6972 #CJK UNIFIED IDEOGRAPH +0x984D 0x6973 #CJK UNIFIED IDEOGRAPH +0x984E 0x6974 #CJK UNIFIED IDEOGRAPH +0x984F 0x6975 #CJK UNIFIED IDEOGRAPH +0x9850 0x6976 #CJK UNIFIED IDEOGRAPH +0x9851 0x697A #CJK UNIFIED IDEOGRAPH +0x9852 0x697B #CJK UNIFIED IDEOGRAPH +0x9853 0x697D #CJK UNIFIED IDEOGRAPH +0x9854 0x697E #CJK UNIFIED IDEOGRAPH +0x9855 0x697F #CJK UNIFIED IDEOGRAPH +0x9856 0x6981 #CJK UNIFIED IDEOGRAPH +0x9857 0x6983 #CJK UNIFIED IDEOGRAPH +0x9858 0x6985 #CJK UNIFIED IDEOGRAPH +0x9859 0x698A #CJK UNIFIED IDEOGRAPH +0x985A 0x698B #CJK UNIFIED IDEOGRAPH +0x985B 0x698C #CJK UNIFIED IDEOGRAPH +0x985C 0x698E #CJK UNIFIED IDEOGRAPH +0x985D 0x698F #CJK UNIFIED IDEOGRAPH +0x985E 0x6990 #CJK UNIFIED IDEOGRAPH +0x985F 0x6991 #CJK UNIFIED IDEOGRAPH +0x9860 0x6992 #CJK UNIFIED IDEOGRAPH +0x9861 0x6993 #CJK UNIFIED IDEOGRAPH +0x9862 0x6996 #CJK UNIFIED IDEOGRAPH +0x9863 0x6997 #CJK UNIFIED IDEOGRAPH +0x9864 0x6999 #CJK UNIFIED IDEOGRAPH +0x9865 0x699A #CJK UNIFIED IDEOGRAPH +0x9866 0x699D #CJK UNIFIED IDEOGRAPH +0x9867 0x699E #CJK UNIFIED IDEOGRAPH +0x9868 0x699F #CJK UNIFIED IDEOGRAPH +0x9869 0x69A0 #CJK UNIFIED IDEOGRAPH +0x986A 0x69A1 #CJK UNIFIED IDEOGRAPH +0x986B 0x69A2 #CJK UNIFIED IDEOGRAPH +0x986C 0x69A3 #CJK UNIFIED IDEOGRAPH +0x986D 0x69A4 #CJK UNIFIED IDEOGRAPH +0x986E 0x69A5 #CJK UNIFIED IDEOGRAPH +0x986F 0x69A6 #CJK UNIFIED IDEOGRAPH +0x9870 0x69A9 #CJK UNIFIED IDEOGRAPH +0x9871 0x69AA #CJK UNIFIED IDEOGRAPH +0x9872 0x69AC #CJK UNIFIED IDEOGRAPH +0x9873 0x69AE #CJK UNIFIED IDEOGRAPH +0x9874 0x69AF #CJK UNIFIED IDEOGRAPH +0x9875 0x69B0 #CJK UNIFIED IDEOGRAPH +0x9876 0x69B2 #CJK UNIFIED IDEOGRAPH +0x9877 0x69B3 #CJK UNIFIED IDEOGRAPH +0x9878 0x69B5 #CJK UNIFIED IDEOGRAPH +0x9879 0x69B6 #CJK UNIFIED IDEOGRAPH +0x987A 0x69B8 #CJK UNIFIED IDEOGRAPH +0x987B 0x69B9 #CJK UNIFIED IDEOGRAPH +0x987C 0x69BA #CJK UNIFIED IDEOGRAPH +0x987D 0x69BC #CJK UNIFIED IDEOGRAPH +0x987E 0x69BD #CJK UNIFIED IDEOGRAPH +0x9880 0x69BE #CJK UNIFIED IDEOGRAPH +0x9881 0x69BF #CJK UNIFIED IDEOGRAPH +0x9882 0x69C0 #CJK UNIFIED IDEOGRAPH +0x9883 0x69C2 #CJK UNIFIED IDEOGRAPH +0x9884 0x69C3 #CJK UNIFIED IDEOGRAPH +0x9885 0x69C4 #CJK UNIFIED IDEOGRAPH +0x9886 0x69C5 #CJK UNIFIED IDEOGRAPH +0x9887 0x69C6 #CJK UNIFIED IDEOGRAPH +0x9888 0x69C7 #CJK UNIFIED IDEOGRAPH +0x9889 0x69C8 #CJK UNIFIED IDEOGRAPH +0x988A 0x69C9 #CJK UNIFIED IDEOGRAPH +0x988B 0x69CB #CJK UNIFIED IDEOGRAPH +0x988C 0x69CD #CJK UNIFIED IDEOGRAPH +0x988D 0x69CF #CJK UNIFIED IDEOGRAPH +0x988E 0x69D1 #CJK UNIFIED IDEOGRAPH +0x988F 0x69D2 #CJK UNIFIED IDEOGRAPH +0x9890 0x69D3 #CJK UNIFIED IDEOGRAPH +0x9891 0x69D5 #CJK UNIFIED IDEOGRAPH +0x9892 0x69D6 #CJK UNIFIED IDEOGRAPH +0x9893 0x69D7 #CJK UNIFIED IDEOGRAPH +0x9894 0x69D8 #CJK UNIFIED IDEOGRAPH +0x9895 0x69D9 #CJK UNIFIED IDEOGRAPH +0x9896 0x69DA #CJK UNIFIED IDEOGRAPH +0x9897 0x69DC #CJK UNIFIED IDEOGRAPH +0x9898 0x69DD #CJK UNIFIED IDEOGRAPH +0x9899 0x69DE #CJK UNIFIED IDEOGRAPH +0x989A 0x69E1 #CJK UNIFIED IDEOGRAPH +0x989B 0x69E2 #CJK UNIFIED IDEOGRAPH +0x989C 0x69E3 #CJK UNIFIED IDEOGRAPH +0x989D 0x69E4 #CJK UNIFIED IDEOGRAPH +0x989E 0x69E5 #CJK UNIFIED IDEOGRAPH +0x989F 0x69E6 #CJK UNIFIED IDEOGRAPH +0x98A0 0x69E7 #CJK UNIFIED IDEOGRAPH +0x98A1 0x69E8 #CJK UNIFIED IDEOGRAPH +0x98A2 0x69E9 #CJK UNIFIED IDEOGRAPH +0x98A3 0x69EA #CJK UNIFIED IDEOGRAPH +0x98A4 0x69EB #CJK UNIFIED IDEOGRAPH +0x98A5 0x69EC #CJK UNIFIED IDEOGRAPH +0x98A6 0x69EE #CJK UNIFIED IDEOGRAPH +0x98A7 0x69EF #CJK UNIFIED IDEOGRAPH +0x98A8 0x69F0 #CJK UNIFIED IDEOGRAPH +0x98A9 0x69F1 #CJK UNIFIED IDEOGRAPH +0x98AA 0x69F3 #CJK UNIFIED IDEOGRAPH +0x98AB 0x69F4 #CJK UNIFIED IDEOGRAPH +0x98AC 0x69F5 #CJK UNIFIED IDEOGRAPH +0x98AD 0x69F6 #CJK UNIFIED IDEOGRAPH +0x98AE 0x69F7 #CJK UNIFIED IDEOGRAPH +0x98AF 0x69F8 #CJK UNIFIED IDEOGRAPH +0x98B0 0x69F9 #CJK UNIFIED IDEOGRAPH +0x98B1 0x69FA #CJK UNIFIED IDEOGRAPH +0x98B2 0x69FB #CJK UNIFIED IDEOGRAPH +0x98B3 0x69FC #CJK UNIFIED IDEOGRAPH +0x98B4 0x69FE #CJK UNIFIED IDEOGRAPH +0x98B5 0x6A00 #CJK UNIFIED IDEOGRAPH +0x98B6 0x6A01 #CJK UNIFIED IDEOGRAPH +0x98B7 0x6A02 #CJK UNIFIED IDEOGRAPH +0x98B8 0x6A03 #CJK UNIFIED IDEOGRAPH +0x98B9 0x6A04 #CJK UNIFIED IDEOGRAPH +0x98BA 0x6A05 #CJK UNIFIED IDEOGRAPH +0x98BB 0x6A06 #CJK UNIFIED IDEOGRAPH +0x98BC 0x6A07 #CJK UNIFIED IDEOGRAPH +0x98BD 0x6A08 #CJK UNIFIED IDEOGRAPH +0x98BE 0x6A09 #CJK UNIFIED IDEOGRAPH +0x98BF 0x6A0B #CJK UNIFIED IDEOGRAPH +0x98C0 0x6A0C #CJK UNIFIED IDEOGRAPH +0x98C1 0x6A0D #CJK UNIFIED IDEOGRAPH +0x98C2 0x6A0E #CJK UNIFIED IDEOGRAPH +0x98C3 0x6A0F #CJK UNIFIED IDEOGRAPH +0x98C4 0x6A10 #CJK UNIFIED IDEOGRAPH +0x98C5 0x6A11 #CJK UNIFIED IDEOGRAPH +0x98C6 0x6A12 #CJK UNIFIED IDEOGRAPH +0x98C7 0x6A13 #CJK UNIFIED IDEOGRAPH +0x98C8 0x6A14 #CJK UNIFIED IDEOGRAPH +0x98C9 0x6A15 #CJK UNIFIED IDEOGRAPH +0x98CA 0x6A16 #CJK UNIFIED IDEOGRAPH +0x98CB 0x6A19 #CJK UNIFIED IDEOGRAPH +0x98CC 0x6A1A #CJK UNIFIED IDEOGRAPH +0x98CD 0x6A1B #CJK UNIFIED IDEOGRAPH +0x98CE 0x6A1C #CJK UNIFIED IDEOGRAPH +0x98CF 0x6A1D #CJK UNIFIED IDEOGRAPH +0x98D0 0x6A1E #CJK UNIFIED IDEOGRAPH +0x98D1 0x6A20 #CJK UNIFIED IDEOGRAPH +0x98D2 0x6A22 #CJK UNIFIED IDEOGRAPH +0x98D3 0x6A23 #CJK UNIFIED IDEOGRAPH +0x98D4 0x6A24 #CJK UNIFIED IDEOGRAPH +0x98D5 0x6A25 #CJK UNIFIED IDEOGRAPH +0x98D6 0x6A26 #CJK UNIFIED IDEOGRAPH +0x98D7 0x6A27 #CJK UNIFIED IDEOGRAPH +0x98D8 0x6A29 #CJK UNIFIED IDEOGRAPH +0x98D9 0x6A2B #CJK UNIFIED IDEOGRAPH +0x98DA 0x6A2C #CJK UNIFIED IDEOGRAPH +0x98DB 0x6A2D #CJK UNIFIED IDEOGRAPH +0x98DC 0x6A2E #CJK UNIFIED IDEOGRAPH +0x98DD 0x6A30 #CJK UNIFIED IDEOGRAPH +0x98DE 0x6A32 #CJK UNIFIED IDEOGRAPH +0x98DF 0x6A33 #CJK UNIFIED IDEOGRAPH +0x98E0 0x6A34 #CJK UNIFIED IDEOGRAPH +0x98E1 0x6A36 #CJK UNIFIED IDEOGRAPH +0x98E2 0x6A37 #CJK UNIFIED IDEOGRAPH +0x98E3 0x6A38 #CJK UNIFIED IDEOGRAPH +0x98E4 0x6A39 #CJK UNIFIED IDEOGRAPH +0x98E5 0x6A3A #CJK UNIFIED IDEOGRAPH +0x98E6 0x6A3B #CJK UNIFIED IDEOGRAPH +0x98E7 0x6A3C #CJK UNIFIED IDEOGRAPH +0x98E8 0x6A3F #CJK UNIFIED IDEOGRAPH +0x98E9 0x6A40 #CJK UNIFIED IDEOGRAPH +0x98EA 0x6A41 #CJK UNIFIED IDEOGRAPH +0x98EB 0x6A42 #CJK UNIFIED IDEOGRAPH +0x98EC 0x6A43 #CJK UNIFIED IDEOGRAPH +0x98ED 0x6A45 #CJK UNIFIED IDEOGRAPH +0x98EE 0x6A46 #CJK UNIFIED IDEOGRAPH +0x98EF 0x6A48 #CJK UNIFIED IDEOGRAPH +0x98F0 0x6A49 #CJK UNIFIED IDEOGRAPH +0x98F1 0x6A4A #CJK UNIFIED IDEOGRAPH +0x98F2 0x6A4B #CJK UNIFIED IDEOGRAPH +0x98F3 0x6A4C #CJK UNIFIED IDEOGRAPH +0x98F4 0x6A4D #CJK UNIFIED IDEOGRAPH +0x98F5 0x6A4E #CJK UNIFIED IDEOGRAPH +0x98F6 0x6A4F #CJK UNIFIED IDEOGRAPH +0x98F7 0x6A51 #CJK UNIFIED IDEOGRAPH +0x98F8 0x6A52 #CJK UNIFIED IDEOGRAPH +0x98F9 0x6A53 #CJK UNIFIED IDEOGRAPH +0x98FA 0x6A54 #CJK UNIFIED IDEOGRAPH +0x98FB 0x6A55 #CJK UNIFIED IDEOGRAPH +0x98FC 0x6A56 #CJK UNIFIED IDEOGRAPH +0x98FD 0x6A57 #CJK UNIFIED IDEOGRAPH +0x98FE 0x6A5A #CJK UNIFIED IDEOGRAPH +0x9940 0x6A5C #CJK UNIFIED IDEOGRAPH +0x9941 0x6A5D #CJK UNIFIED IDEOGRAPH +0x9942 0x6A5E #CJK UNIFIED IDEOGRAPH +0x9943 0x6A5F #CJK UNIFIED IDEOGRAPH +0x9944 0x6A60 #CJK UNIFIED IDEOGRAPH +0x9945 0x6A62 #CJK UNIFIED IDEOGRAPH +0x9946 0x6A63 #CJK UNIFIED IDEOGRAPH +0x9947 0x6A64 #CJK UNIFIED IDEOGRAPH +0x9948 0x6A66 #CJK UNIFIED IDEOGRAPH +0x9949 0x6A67 #CJK UNIFIED IDEOGRAPH +0x994A 0x6A68 #CJK UNIFIED IDEOGRAPH +0x994B 0x6A69 #CJK UNIFIED IDEOGRAPH +0x994C 0x6A6A #CJK UNIFIED IDEOGRAPH +0x994D 0x6A6B #CJK UNIFIED IDEOGRAPH +0x994E 0x6A6C #CJK UNIFIED IDEOGRAPH +0x994F 0x6A6D #CJK UNIFIED IDEOGRAPH +0x9950 0x6A6E #CJK UNIFIED IDEOGRAPH +0x9951 0x6A6F #CJK UNIFIED IDEOGRAPH +0x9952 0x6A70 #CJK UNIFIED IDEOGRAPH +0x9953 0x6A72 #CJK UNIFIED IDEOGRAPH +0x9954 0x6A73 #CJK UNIFIED IDEOGRAPH +0x9955 0x6A74 #CJK UNIFIED IDEOGRAPH +0x9956 0x6A75 #CJK UNIFIED IDEOGRAPH +0x9957 0x6A76 #CJK UNIFIED IDEOGRAPH +0x9958 0x6A77 #CJK UNIFIED IDEOGRAPH +0x9959 0x6A78 #CJK UNIFIED IDEOGRAPH +0x995A 0x6A7A #CJK UNIFIED IDEOGRAPH +0x995B 0x6A7B #CJK UNIFIED IDEOGRAPH +0x995C 0x6A7D #CJK UNIFIED IDEOGRAPH +0x995D 0x6A7E #CJK UNIFIED IDEOGRAPH +0x995E 0x6A7F #CJK UNIFIED IDEOGRAPH +0x995F 0x6A81 #CJK UNIFIED IDEOGRAPH +0x9960 0x6A82 #CJK UNIFIED IDEOGRAPH +0x9961 0x6A83 #CJK UNIFIED IDEOGRAPH +0x9962 0x6A85 #CJK UNIFIED IDEOGRAPH +0x9963 0x6A86 #CJK UNIFIED IDEOGRAPH +0x9964 0x6A87 #CJK UNIFIED IDEOGRAPH +0x9965 0x6A88 #CJK UNIFIED IDEOGRAPH +0x9966 0x6A89 #CJK UNIFIED IDEOGRAPH +0x9967 0x6A8A #CJK UNIFIED IDEOGRAPH +0x9968 0x6A8B #CJK UNIFIED IDEOGRAPH +0x9969 0x6A8C #CJK UNIFIED IDEOGRAPH +0x996A 0x6A8D #CJK UNIFIED IDEOGRAPH +0x996B 0x6A8F #CJK UNIFIED IDEOGRAPH +0x996C 0x6A92 #CJK UNIFIED IDEOGRAPH +0x996D 0x6A93 #CJK UNIFIED IDEOGRAPH +0x996E 0x6A94 #CJK UNIFIED IDEOGRAPH +0x996F 0x6A95 #CJK UNIFIED IDEOGRAPH +0x9970 0x6A96 #CJK UNIFIED IDEOGRAPH +0x9971 0x6A98 #CJK UNIFIED IDEOGRAPH +0x9972 0x6A99 #CJK UNIFIED IDEOGRAPH +0x9973 0x6A9A #CJK UNIFIED IDEOGRAPH +0x9974 0x6A9B #CJK UNIFIED IDEOGRAPH +0x9975 0x6A9C #CJK UNIFIED IDEOGRAPH +0x9976 0x6A9D #CJK UNIFIED IDEOGRAPH +0x9977 0x6A9E #CJK UNIFIED IDEOGRAPH +0x9978 0x6A9F #CJK UNIFIED IDEOGRAPH +0x9979 0x6AA1 #CJK UNIFIED IDEOGRAPH +0x997A 0x6AA2 #CJK UNIFIED IDEOGRAPH +0x997B 0x6AA3 #CJK UNIFIED IDEOGRAPH +0x997C 0x6AA4 #CJK UNIFIED IDEOGRAPH +0x997D 0x6AA5 #CJK UNIFIED IDEOGRAPH +0x997E 0x6AA6 #CJK UNIFIED IDEOGRAPH +0x9980 0x6AA7 #CJK UNIFIED IDEOGRAPH +0x9981 0x6AA8 #CJK UNIFIED IDEOGRAPH +0x9982 0x6AAA #CJK UNIFIED IDEOGRAPH +0x9983 0x6AAD #CJK UNIFIED IDEOGRAPH +0x9984 0x6AAE #CJK UNIFIED IDEOGRAPH +0x9985 0x6AAF #CJK UNIFIED IDEOGRAPH +0x9986 0x6AB0 #CJK UNIFIED IDEOGRAPH +0x9987 0x6AB1 #CJK UNIFIED IDEOGRAPH +0x9988 0x6AB2 #CJK UNIFIED IDEOGRAPH +0x9989 0x6AB3 #CJK UNIFIED IDEOGRAPH +0x998A 0x6AB4 #CJK UNIFIED IDEOGRAPH +0x998B 0x6AB5 #CJK UNIFIED IDEOGRAPH +0x998C 0x6AB6 #CJK UNIFIED IDEOGRAPH +0x998D 0x6AB7 #CJK UNIFIED IDEOGRAPH +0x998E 0x6AB8 #CJK UNIFIED IDEOGRAPH +0x998F 0x6AB9 #CJK UNIFIED IDEOGRAPH +0x9990 0x6ABA #CJK UNIFIED IDEOGRAPH +0x9991 0x6ABB #CJK UNIFIED IDEOGRAPH +0x9992 0x6ABC #CJK UNIFIED IDEOGRAPH +0x9993 0x6ABD #CJK UNIFIED IDEOGRAPH +0x9994 0x6ABE #CJK UNIFIED IDEOGRAPH +0x9995 0x6ABF #CJK UNIFIED IDEOGRAPH +0x9996 0x6AC0 #CJK UNIFIED IDEOGRAPH +0x9997 0x6AC1 #CJK UNIFIED IDEOGRAPH +0x9998 0x6AC2 #CJK UNIFIED IDEOGRAPH +0x9999 0x6AC3 #CJK UNIFIED IDEOGRAPH +0x999A 0x6AC4 #CJK UNIFIED IDEOGRAPH +0x999B 0x6AC5 #CJK UNIFIED IDEOGRAPH +0x999C 0x6AC6 #CJK UNIFIED IDEOGRAPH +0x999D 0x6AC7 #CJK UNIFIED IDEOGRAPH +0x999E 0x6AC8 #CJK UNIFIED IDEOGRAPH +0x999F 0x6AC9 #CJK UNIFIED IDEOGRAPH +0x99A0 0x6ACA #CJK UNIFIED IDEOGRAPH +0x99A1 0x6ACB #CJK UNIFIED IDEOGRAPH +0x99A2 0x6ACC #CJK UNIFIED IDEOGRAPH +0x99A3 0x6ACD #CJK UNIFIED IDEOGRAPH +0x99A4 0x6ACE #CJK UNIFIED IDEOGRAPH +0x99A5 0x6ACF #CJK UNIFIED IDEOGRAPH +0x99A6 0x6AD0 #CJK UNIFIED IDEOGRAPH +0x99A7 0x6AD1 #CJK UNIFIED IDEOGRAPH +0x99A8 0x6AD2 #CJK UNIFIED IDEOGRAPH +0x99A9 0x6AD3 #CJK UNIFIED IDEOGRAPH +0x99AA 0x6AD4 #CJK UNIFIED IDEOGRAPH +0x99AB 0x6AD5 #CJK UNIFIED IDEOGRAPH +0x99AC 0x6AD6 #CJK UNIFIED IDEOGRAPH +0x99AD 0x6AD7 #CJK UNIFIED IDEOGRAPH +0x99AE 0x6AD8 #CJK UNIFIED IDEOGRAPH +0x99AF 0x6AD9 #CJK UNIFIED IDEOGRAPH +0x99B0 0x6ADA #CJK UNIFIED IDEOGRAPH +0x99B1 0x6ADB #CJK UNIFIED IDEOGRAPH +0x99B2 0x6ADC #CJK UNIFIED IDEOGRAPH +0x99B3 0x6ADD #CJK UNIFIED IDEOGRAPH +0x99B4 0x6ADE #CJK UNIFIED IDEOGRAPH +0x99B5 0x6ADF #CJK UNIFIED IDEOGRAPH +0x99B6 0x6AE0 #CJK UNIFIED IDEOGRAPH +0x99B7 0x6AE1 #CJK UNIFIED IDEOGRAPH +0x99B8 0x6AE2 #CJK UNIFIED IDEOGRAPH +0x99B9 0x6AE3 #CJK UNIFIED IDEOGRAPH +0x99BA 0x6AE4 #CJK UNIFIED IDEOGRAPH +0x99BB 0x6AE5 #CJK UNIFIED IDEOGRAPH +0x99BC 0x6AE6 #CJK UNIFIED IDEOGRAPH +0x99BD 0x6AE7 #CJK UNIFIED IDEOGRAPH +0x99BE 0x6AE8 #CJK UNIFIED IDEOGRAPH +0x99BF 0x6AE9 #CJK UNIFIED IDEOGRAPH +0x99C0 0x6AEA #CJK UNIFIED IDEOGRAPH +0x99C1 0x6AEB #CJK UNIFIED IDEOGRAPH +0x99C2 0x6AEC #CJK UNIFIED IDEOGRAPH +0x99C3 0x6AED #CJK UNIFIED IDEOGRAPH +0x99C4 0x6AEE #CJK UNIFIED IDEOGRAPH +0x99C5 0x6AEF #CJK UNIFIED IDEOGRAPH +0x99C6 0x6AF0 #CJK UNIFIED IDEOGRAPH +0x99C7 0x6AF1 #CJK UNIFIED IDEOGRAPH +0x99C8 0x6AF2 #CJK UNIFIED IDEOGRAPH +0x99C9 0x6AF3 #CJK UNIFIED IDEOGRAPH +0x99CA 0x6AF4 #CJK UNIFIED IDEOGRAPH +0x99CB 0x6AF5 #CJK UNIFIED IDEOGRAPH +0x99CC 0x6AF6 #CJK UNIFIED IDEOGRAPH +0x99CD 0x6AF7 #CJK UNIFIED IDEOGRAPH +0x99CE 0x6AF8 #CJK UNIFIED IDEOGRAPH +0x99CF 0x6AF9 #CJK UNIFIED IDEOGRAPH +0x99D0 0x6AFA #CJK UNIFIED IDEOGRAPH +0x99D1 0x6AFB #CJK UNIFIED IDEOGRAPH +0x99D2 0x6AFC #CJK UNIFIED IDEOGRAPH +0x99D3 0x6AFD #CJK UNIFIED IDEOGRAPH +0x99D4 0x6AFE #CJK UNIFIED IDEOGRAPH +0x99D5 0x6AFF #CJK UNIFIED IDEOGRAPH +0x99D6 0x6B00 #CJK UNIFIED IDEOGRAPH +0x99D7 0x6B01 #CJK UNIFIED IDEOGRAPH +0x99D8 0x6B02 #CJK UNIFIED IDEOGRAPH +0x99D9 0x6B03 #CJK UNIFIED IDEOGRAPH +0x99DA 0x6B04 #CJK UNIFIED IDEOGRAPH +0x99DB 0x6B05 #CJK UNIFIED IDEOGRAPH +0x99DC 0x6B06 #CJK UNIFIED IDEOGRAPH +0x99DD 0x6B07 #CJK UNIFIED IDEOGRAPH +0x99DE 0x6B08 #CJK UNIFIED IDEOGRAPH +0x99DF 0x6B09 #CJK UNIFIED IDEOGRAPH +0x99E0 0x6B0A #CJK UNIFIED IDEOGRAPH +0x99E1 0x6B0B #CJK UNIFIED IDEOGRAPH +0x99E2 0x6B0C #CJK UNIFIED IDEOGRAPH +0x99E3 0x6B0D #CJK UNIFIED IDEOGRAPH +0x99E4 0x6B0E #CJK UNIFIED IDEOGRAPH +0x99E5 0x6B0F #CJK UNIFIED IDEOGRAPH +0x99E6 0x6B10 #CJK UNIFIED IDEOGRAPH +0x99E7 0x6B11 #CJK UNIFIED IDEOGRAPH +0x99E8 0x6B12 #CJK UNIFIED IDEOGRAPH +0x99E9 0x6B13 #CJK UNIFIED IDEOGRAPH +0x99EA 0x6B14 #CJK UNIFIED IDEOGRAPH +0x99EB 0x6B15 #CJK UNIFIED IDEOGRAPH +0x99EC 0x6B16 #CJK UNIFIED IDEOGRAPH +0x99ED 0x6B17 #CJK UNIFIED IDEOGRAPH +0x99EE 0x6B18 #CJK UNIFIED IDEOGRAPH +0x99EF 0x6B19 #CJK UNIFIED IDEOGRAPH +0x99F0 0x6B1A #CJK UNIFIED IDEOGRAPH +0x99F1 0x6B1B #CJK UNIFIED IDEOGRAPH +0x99F2 0x6B1C #CJK UNIFIED IDEOGRAPH +0x99F3 0x6B1D #CJK UNIFIED IDEOGRAPH +0x99F4 0x6B1E #CJK UNIFIED IDEOGRAPH +0x99F5 0x6B1F #CJK UNIFIED IDEOGRAPH +0x99F6 0x6B25 #CJK UNIFIED IDEOGRAPH +0x99F7 0x6B26 #CJK UNIFIED IDEOGRAPH +0x99F8 0x6B28 #CJK UNIFIED IDEOGRAPH +0x99F9 0x6B29 #CJK UNIFIED IDEOGRAPH +0x99FA 0x6B2A #CJK UNIFIED IDEOGRAPH +0x99FB 0x6B2B #CJK UNIFIED IDEOGRAPH +0x99FC 0x6B2C #CJK UNIFIED IDEOGRAPH +0x99FD 0x6B2D #CJK UNIFIED IDEOGRAPH +0x99FE 0x6B2E #CJK UNIFIED IDEOGRAPH +0x9A40 0x6B2F #CJK UNIFIED IDEOGRAPH +0x9A41 0x6B30 #CJK UNIFIED IDEOGRAPH +0x9A42 0x6B31 #CJK UNIFIED IDEOGRAPH +0x9A43 0x6B33 #CJK UNIFIED IDEOGRAPH +0x9A44 0x6B34 #CJK UNIFIED IDEOGRAPH +0x9A45 0x6B35 #CJK UNIFIED IDEOGRAPH +0x9A46 0x6B36 #CJK UNIFIED IDEOGRAPH +0x9A47 0x6B38 #CJK UNIFIED IDEOGRAPH +0x9A48 0x6B3B #CJK UNIFIED IDEOGRAPH +0x9A49 0x6B3C #CJK UNIFIED IDEOGRAPH +0x9A4A 0x6B3D #CJK UNIFIED IDEOGRAPH +0x9A4B 0x6B3F #CJK UNIFIED IDEOGRAPH +0x9A4C 0x6B40 #CJK UNIFIED IDEOGRAPH +0x9A4D 0x6B41 #CJK UNIFIED IDEOGRAPH +0x9A4E 0x6B42 #CJK UNIFIED IDEOGRAPH +0x9A4F 0x6B44 #CJK UNIFIED IDEOGRAPH +0x9A50 0x6B45 #CJK UNIFIED IDEOGRAPH +0x9A51 0x6B48 #CJK UNIFIED IDEOGRAPH +0x9A52 0x6B4A #CJK UNIFIED IDEOGRAPH +0x9A53 0x6B4B #CJK UNIFIED IDEOGRAPH +0x9A54 0x6B4D #CJK UNIFIED IDEOGRAPH +0x9A55 0x6B4E #CJK UNIFIED IDEOGRAPH +0x9A56 0x6B4F #CJK UNIFIED IDEOGRAPH +0x9A57 0x6B50 #CJK UNIFIED IDEOGRAPH +0x9A58 0x6B51 #CJK UNIFIED IDEOGRAPH +0x9A59 0x6B52 #CJK UNIFIED IDEOGRAPH +0x9A5A 0x6B53 #CJK UNIFIED IDEOGRAPH +0x9A5B 0x6B54 #CJK UNIFIED IDEOGRAPH +0x9A5C 0x6B55 #CJK UNIFIED IDEOGRAPH +0x9A5D 0x6B56 #CJK UNIFIED IDEOGRAPH +0x9A5E 0x6B57 #CJK UNIFIED IDEOGRAPH +0x9A5F 0x6B58 #CJK UNIFIED IDEOGRAPH +0x9A60 0x6B5A #CJK UNIFIED IDEOGRAPH +0x9A61 0x6B5B #CJK UNIFIED IDEOGRAPH +0x9A62 0x6B5C #CJK UNIFIED IDEOGRAPH +0x9A63 0x6B5D #CJK UNIFIED IDEOGRAPH +0x9A64 0x6B5E #CJK UNIFIED IDEOGRAPH +0x9A65 0x6B5F #CJK UNIFIED IDEOGRAPH +0x9A66 0x6B60 #CJK UNIFIED IDEOGRAPH +0x9A67 0x6B61 #CJK UNIFIED IDEOGRAPH +0x9A68 0x6B68 #CJK UNIFIED IDEOGRAPH +0x9A69 0x6B69 #CJK UNIFIED IDEOGRAPH +0x9A6A 0x6B6B #CJK UNIFIED IDEOGRAPH +0x9A6B 0x6B6C #CJK UNIFIED IDEOGRAPH +0x9A6C 0x6B6D #CJK UNIFIED IDEOGRAPH +0x9A6D 0x6B6E #CJK UNIFIED IDEOGRAPH +0x9A6E 0x6B6F #CJK UNIFIED IDEOGRAPH +0x9A6F 0x6B70 #CJK UNIFIED IDEOGRAPH +0x9A70 0x6B71 #CJK UNIFIED IDEOGRAPH +0x9A71 0x6B72 #CJK UNIFIED IDEOGRAPH +0x9A72 0x6B73 #CJK UNIFIED IDEOGRAPH +0x9A73 0x6B74 #CJK UNIFIED IDEOGRAPH +0x9A74 0x6B75 #CJK UNIFIED IDEOGRAPH +0x9A75 0x6B76 #CJK UNIFIED IDEOGRAPH +0x9A76 0x6B77 #CJK UNIFIED IDEOGRAPH +0x9A77 0x6B78 #CJK UNIFIED IDEOGRAPH +0x9A78 0x6B7A #CJK UNIFIED IDEOGRAPH +0x9A79 0x6B7D #CJK UNIFIED IDEOGRAPH +0x9A7A 0x6B7E #CJK UNIFIED IDEOGRAPH +0x9A7B 0x6B7F #CJK UNIFIED IDEOGRAPH +0x9A7C 0x6B80 #CJK UNIFIED IDEOGRAPH +0x9A7D 0x6B85 #CJK UNIFIED IDEOGRAPH +0x9A7E 0x6B88 #CJK UNIFIED IDEOGRAPH +0x9A80 0x6B8C #CJK UNIFIED IDEOGRAPH +0x9A81 0x6B8E #CJK UNIFIED IDEOGRAPH +0x9A82 0x6B8F #CJK UNIFIED IDEOGRAPH +0x9A83 0x6B90 #CJK UNIFIED IDEOGRAPH +0x9A84 0x6B91 #CJK UNIFIED IDEOGRAPH +0x9A85 0x6B94 #CJK UNIFIED IDEOGRAPH +0x9A86 0x6B95 #CJK UNIFIED IDEOGRAPH +0x9A87 0x6B97 #CJK UNIFIED IDEOGRAPH +0x9A88 0x6B98 #CJK UNIFIED IDEOGRAPH +0x9A89 0x6B99 #CJK UNIFIED IDEOGRAPH +0x9A8A 0x6B9C #CJK UNIFIED IDEOGRAPH +0x9A8B 0x6B9D #CJK UNIFIED IDEOGRAPH +0x9A8C 0x6B9E #CJK UNIFIED IDEOGRAPH +0x9A8D 0x6B9F #CJK UNIFIED IDEOGRAPH +0x9A8E 0x6BA0 #CJK UNIFIED IDEOGRAPH +0x9A8F 0x6BA2 #CJK UNIFIED IDEOGRAPH +0x9A90 0x6BA3 #CJK UNIFIED IDEOGRAPH +0x9A91 0x6BA4 #CJK UNIFIED IDEOGRAPH +0x9A92 0x6BA5 #CJK UNIFIED IDEOGRAPH +0x9A93 0x6BA6 #CJK UNIFIED IDEOGRAPH +0x9A94 0x6BA7 #CJK UNIFIED IDEOGRAPH +0x9A95 0x6BA8 #CJK UNIFIED IDEOGRAPH +0x9A96 0x6BA9 #CJK UNIFIED IDEOGRAPH +0x9A97 0x6BAB #CJK UNIFIED IDEOGRAPH +0x9A98 0x6BAC #CJK UNIFIED IDEOGRAPH +0x9A99 0x6BAD #CJK UNIFIED IDEOGRAPH +0x9A9A 0x6BAE #CJK UNIFIED IDEOGRAPH +0x9A9B 0x6BAF #CJK UNIFIED IDEOGRAPH +0x9A9C 0x6BB0 #CJK UNIFIED IDEOGRAPH +0x9A9D 0x6BB1 #CJK UNIFIED IDEOGRAPH +0x9A9E 0x6BB2 #CJK UNIFIED IDEOGRAPH +0x9A9F 0x6BB6 #CJK UNIFIED IDEOGRAPH +0x9AA0 0x6BB8 #CJK UNIFIED IDEOGRAPH +0x9AA1 0x6BB9 #CJK UNIFIED IDEOGRAPH +0x9AA2 0x6BBA #CJK UNIFIED IDEOGRAPH +0x9AA3 0x6BBB #CJK UNIFIED IDEOGRAPH +0x9AA4 0x6BBC #CJK UNIFIED IDEOGRAPH +0x9AA5 0x6BBD #CJK UNIFIED IDEOGRAPH +0x9AA6 0x6BBE #CJK UNIFIED IDEOGRAPH +0x9AA7 0x6BC0 #CJK UNIFIED IDEOGRAPH +0x9AA8 0x6BC3 #CJK UNIFIED IDEOGRAPH +0x9AA9 0x6BC4 #CJK UNIFIED IDEOGRAPH +0x9AAA 0x6BC6 #CJK UNIFIED IDEOGRAPH +0x9AAB 0x6BC7 #CJK UNIFIED IDEOGRAPH +0x9AAC 0x6BC8 #CJK UNIFIED IDEOGRAPH +0x9AAD 0x6BC9 #CJK UNIFIED IDEOGRAPH +0x9AAE 0x6BCA #CJK UNIFIED IDEOGRAPH +0x9AAF 0x6BCC #CJK UNIFIED IDEOGRAPH +0x9AB0 0x6BCE #CJK UNIFIED IDEOGRAPH +0x9AB1 0x6BD0 #CJK UNIFIED IDEOGRAPH +0x9AB2 0x6BD1 #CJK UNIFIED IDEOGRAPH +0x9AB3 0x6BD8 #CJK UNIFIED IDEOGRAPH +0x9AB4 0x6BDA #CJK UNIFIED IDEOGRAPH +0x9AB5 0x6BDC #CJK UNIFIED IDEOGRAPH +0x9AB6 0x6BDD #CJK UNIFIED IDEOGRAPH +0x9AB7 0x6BDE #CJK UNIFIED IDEOGRAPH +0x9AB8 0x6BDF #CJK UNIFIED IDEOGRAPH +0x9AB9 0x6BE0 #CJK UNIFIED IDEOGRAPH +0x9ABA 0x6BE2 #CJK UNIFIED IDEOGRAPH +0x9ABB 0x6BE3 #CJK UNIFIED IDEOGRAPH +0x9ABC 0x6BE4 #CJK UNIFIED IDEOGRAPH +0x9ABD 0x6BE5 #CJK UNIFIED IDEOGRAPH +0x9ABE 0x6BE6 #CJK UNIFIED IDEOGRAPH +0x9ABF 0x6BE7 #CJK UNIFIED IDEOGRAPH +0x9AC0 0x6BE8 #CJK UNIFIED IDEOGRAPH +0x9AC1 0x6BE9 #CJK UNIFIED IDEOGRAPH +0x9AC2 0x6BEC #CJK UNIFIED IDEOGRAPH +0x9AC3 0x6BED #CJK UNIFIED IDEOGRAPH +0x9AC4 0x6BEE #CJK UNIFIED IDEOGRAPH +0x9AC5 0x6BF0 #CJK UNIFIED IDEOGRAPH +0x9AC6 0x6BF1 #CJK UNIFIED IDEOGRAPH +0x9AC7 0x6BF2 #CJK UNIFIED IDEOGRAPH +0x9AC8 0x6BF4 #CJK UNIFIED IDEOGRAPH +0x9AC9 0x6BF6 #CJK UNIFIED IDEOGRAPH +0x9ACA 0x6BF7 #CJK UNIFIED IDEOGRAPH +0x9ACB 0x6BF8 #CJK UNIFIED IDEOGRAPH +0x9ACC 0x6BFA #CJK UNIFIED IDEOGRAPH +0x9ACD 0x6BFB #CJK UNIFIED IDEOGRAPH +0x9ACE 0x6BFC #CJK UNIFIED IDEOGRAPH +0x9ACF 0x6BFE #CJK UNIFIED IDEOGRAPH +0x9AD0 0x6BFF #CJK UNIFIED IDEOGRAPH +0x9AD1 0x6C00 #CJK UNIFIED IDEOGRAPH +0x9AD2 0x6C01 #CJK UNIFIED IDEOGRAPH +0x9AD3 0x6C02 #CJK UNIFIED IDEOGRAPH +0x9AD4 0x6C03 #CJK UNIFIED IDEOGRAPH +0x9AD5 0x6C04 #CJK UNIFIED IDEOGRAPH +0x9AD6 0x6C08 #CJK UNIFIED IDEOGRAPH +0x9AD7 0x6C09 #CJK UNIFIED IDEOGRAPH +0x9AD8 0x6C0A #CJK UNIFIED IDEOGRAPH +0x9AD9 0x6C0B #CJK UNIFIED IDEOGRAPH +0x9ADA 0x6C0C #CJK UNIFIED IDEOGRAPH +0x9ADB 0x6C0E #CJK UNIFIED IDEOGRAPH +0x9ADC 0x6C12 #CJK UNIFIED IDEOGRAPH +0x9ADD 0x6C17 #CJK UNIFIED IDEOGRAPH +0x9ADE 0x6C1C #CJK UNIFIED IDEOGRAPH +0x9ADF 0x6C1D #CJK UNIFIED IDEOGRAPH +0x9AE0 0x6C1E #CJK UNIFIED IDEOGRAPH +0x9AE1 0x6C20 #CJK UNIFIED IDEOGRAPH +0x9AE2 0x6C23 #CJK UNIFIED IDEOGRAPH +0x9AE3 0x6C25 #CJK UNIFIED IDEOGRAPH +0x9AE4 0x6C2B #CJK UNIFIED IDEOGRAPH +0x9AE5 0x6C2C #CJK UNIFIED IDEOGRAPH +0x9AE6 0x6C2D #CJK UNIFIED IDEOGRAPH +0x9AE7 0x6C31 #CJK UNIFIED IDEOGRAPH +0x9AE8 0x6C33 #CJK UNIFIED IDEOGRAPH +0x9AE9 0x6C36 #CJK UNIFIED IDEOGRAPH +0x9AEA 0x6C37 #CJK UNIFIED IDEOGRAPH +0x9AEB 0x6C39 #CJK UNIFIED IDEOGRAPH +0x9AEC 0x6C3A #CJK UNIFIED IDEOGRAPH +0x9AED 0x6C3B #CJK UNIFIED IDEOGRAPH +0x9AEE 0x6C3C #CJK UNIFIED IDEOGRAPH +0x9AEF 0x6C3E #CJK UNIFIED IDEOGRAPH +0x9AF0 0x6C3F #CJK UNIFIED IDEOGRAPH +0x9AF1 0x6C43 #CJK UNIFIED IDEOGRAPH +0x9AF2 0x6C44 #CJK UNIFIED IDEOGRAPH +0x9AF3 0x6C45 #CJK UNIFIED IDEOGRAPH +0x9AF4 0x6C48 #CJK UNIFIED IDEOGRAPH +0x9AF5 0x6C4B #CJK UNIFIED IDEOGRAPH +0x9AF6 0x6C4C #CJK UNIFIED IDEOGRAPH +0x9AF7 0x6C4D #CJK UNIFIED IDEOGRAPH +0x9AF8 0x6C4E #CJK UNIFIED IDEOGRAPH +0x9AF9 0x6C4F #CJK UNIFIED IDEOGRAPH +0x9AFA 0x6C51 #CJK UNIFIED IDEOGRAPH +0x9AFB 0x6C52 #CJK UNIFIED IDEOGRAPH +0x9AFC 0x6C53 #CJK UNIFIED IDEOGRAPH +0x9AFD 0x6C56 #CJK UNIFIED IDEOGRAPH +0x9AFE 0x6C58 #CJK UNIFIED IDEOGRAPH +0x9B40 0x6C59 #CJK UNIFIED IDEOGRAPH +0x9B41 0x6C5A #CJK UNIFIED IDEOGRAPH +0x9B42 0x6C62 #CJK UNIFIED IDEOGRAPH +0x9B43 0x6C63 #CJK UNIFIED IDEOGRAPH +0x9B44 0x6C65 #CJK UNIFIED IDEOGRAPH +0x9B45 0x6C66 #CJK UNIFIED IDEOGRAPH +0x9B46 0x6C67 #CJK UNIFIED IDEOGRAPH +0x9B47 0x6C6B #CJK UNIFIED IDEOGRAPH +0x9B48 0x6C6C #CJK UNIFIED IDEOGRAPH +0x9B49 0x6C6D #CJK UNIFIED IDEOGRAPH +0x9B4A 0x6C6E #CJK UNIFIED IDEOGRAPH +0x9B4B 0x6C6F #CJK UNIFIED IDEOGRAPH +0x9B4C 0x6C71 #CJK UNIFIED IDEOGRAPH +0x9B4D 0x6C73 #CJK UNIFIED IDEOGRAPH +0x9B4E 0x6C75 #CJK UNIFIED IDEOGRAPH +0x9B4F 0x6C77 #CJK UNIFIED IDEOGRAPH +0x9B50 0x6C78 #CJK UNIFIED IDEOGRAPH +0x9B51 0x6C7A #CJK UNIFIED IDEOGRAPH +0x9B52 0x6C7B #CJK UNIFIED IDEOGRAPH +0x9B53 0x6C7C #CJK UNIFIED IDEOGRAPH +0x9B54 0x6C7F #CJK UNIFIED IDEOGRAPH +0x9B55 0x6C80 #CJK UNIFIED IDEOGRAPH +0x9B56 0x6C84 #CJK UNIFIED IDEOGRAPH +0x9B57 0x6C87 #CJK UNIFIED IDEOGRAPH +0x9B58 0x6C8A #CJK UNIFIED IDEOGRAPH +0x9B59 0x6C8B #CJK UNIFIED IDEOGRAPH +0x9B5A 0x6C8D #CJK UNIFIED IDEOGRAPH +0x9B5B 0x6C8E #CJK UNIFIED IDEOGRAPH +0x9B5C 0x6C91 #CJK UNIFIED IDEOGRAPH +0x9B5D 0x6C92 #CJK UNIFIED IDEOGRAPH +0x9B5E 0x6C95 #CJK UNIFIED IDEOGRAPH +0x9B5F 0x6C96 #CJK UNIFIED IDEOGRAPH +0x9B60 0x6C97 #CJK UNIFIED IDEOGRAPH +0x9B61 0x6C98 #CJK UNIFIED IDEOGRAPH +0x9B62 0x6C9A #CJK UNIFIED IDEOGRAPH +0x9B63 0x6C9C #CJK UNIFIED IDEOGRAPH +0x9B64 0x6C9D #CJK UNIFIED IDEOGRAPH +0x9B65 0x6C9E #CJK UNIFIED IDEOGRAPH +0x9B66 0x6CA0 #CJK UNIFIED IDEOGRAPH +0x9B67 0x6CA2 #CJK UNIFIED IDEOGRAPH +0x9B68 0x6CA8 #CJK UNIFIED IDEOGRAPH +0x9B69 0x6CAC #CJK UNIFIED IDEOGRAPH +0x9B6A 0x6CAF #CJK UNIFIED IDEOGRAPH +0x9B6B 0x6CB0 #CJK UNIFIED IDEOGRAPH +0x9B6C 0x6CB4 #CJK UNIFIED IDEOGRAPH +0x9B6D 0x6CB5 #CJK UNIFIED IDEOGRAPH +0x9B6E 0x6CB6 #CJK UNIFIED IDEOGRAPH +0x9B6F 0x6CB7 #CJK UNIFIED IDEOGRAPH +0x9B70 0x6CBA #CJK UNIFIED IDEOGRAPH +0x9B71 0x6CC0 #CJK UNIFIED IDEOGRAPH +0x9B72 0x6CC1 #CJK UNIFIED IDEOGRAPH +0x9B73 0x6CC2 #CJK UNIFIED IDEOGRAPH +0x9B74 0x6CC3 #CJK UNIFIED IDEOGRAPH +0x9B75 0x6CC6 #CJK UNIFIED IDEOGRAPH +0x9B76 0x6CC7 #CJK UNIFIED IDEOGRAPH +0x9B77 0x6CC8 #CJK UNIFIED IDEOGRAPH +0x9B78 0x6CCB #CJK UNIFIED IDEOGRAPH +0x9B79 0x6CCD #CJK UNIFIED IDEOGRAPH +0x9B7A 0x6CCE #CJK UNIFIED IDEOGRAPH +0x9B7B 0x6CCF #CJK UNIFIED IDEOGRAPH +0x9B7C 0x6CD1 #CJK UNIFIED IDEOGRAPH +0x9B7D 0x6CD2 #CJK UNIFIED IDEOGRAPH +0x9B7E 0x6CD8 #CJK UNIFIED IDEOGRAPH +0x9B80 0x6CD9 #CJK UNIFIED IDEOGRAPH +0x9B81 0x6CDA #CJK UNIFIED IDEOGRAPH +0x9B82 0x6CDC #CJK UNIFIED IDEOGRAPH +0x9B83 0x6CDD #CJK UNIFIED IDEOGRAPH +0x9B84 0x6CDF #CJK UNIFIED IDEOGRAPH +0x9B85 0x6CE4 #CJK UNIFIED IDEOGRAPH +0x9B86 0x6CE6 #CJK UNIFIED IDEOGRAPH +0x9B87 0x6CE7 #CJK UNIFIED IDEOGRAPH +0x9B88 0x6CE9 #CJK UNIFIED IDEOGRAPH +0x9B89 0x6CEC #CJK UNIFIED IDEOGRAPH +0x9B8A 0x6CED #CJK UNIFIED IDEOGRAPH +0x9B8B 0x6CF2 #CJK UNIFIED IDEOGRAPH +0x9B8C 0x6CF4 #CJK UNIFIED IDEOGRAPH +0x9B8D 0x6CF9 #CJK UNIFIED IDEOGRAPH +0x9B8E 0x6CFF #CJK UNIFIED IDEOGRAPH +0x9B8F 0x6D00 #CJK UNIFIED IDEOGRAPH +0x9B90 0x6D02 #CJK UNIFIED IDEOGRAPH +0x9B91 0x6D03 #CJK UNIFIED IDEOGRAPH +0x9B92 0x6D05 #CJK UNIFIED IDEOGRAPH +0x9B93 0x6D06 #CJK UNIFIED IDEOGRAPH +0x9B94 0x6D08 #CJK UNIFIED IDEOGRAPH +0x9B95 0x6D09 #CJK UNIFIED IDEOGRAPH +0x9B96 0x6D0A #CJK UNIFIED IDEOGRAPH +0x9B97 0x6D0D #CJK UNIFIED IDEOGRAPH +0x9B98 0x6D0F #CJK UNIFIED IDEOGRAPH +0x9B99 0x6D10 #CJK UNIFIED IDEOGRAPH +0x9B9A 0x6D11 #CJK UNIFIED IDEOGRAPH +0x9B9B 0x6D13 #CJK UNIFIED IDEOGRAPH +0x9B9C 0x6D14 #CJK UNIFIED IDEOGRAPH +0x9B9D 0x6D15 #CJK UNIFIED IDEOGRAPH +0x9B9E 0x6D16 #CJK UNIFIED IDEOGRAPH +0x9B9F 0x6D18 #CJK UNIFIED IDEOGRAPH +0x9BA0 0x6D1C #CJK UNIFIED IDEOGRAPH +0x9BA1 0x6D1D #CJK UNIFIED IDEOGRAPH +0x9BA2 0x6D1F #CJK UNIFIED IDEOGRAPH +0x9BA3 0x6D20 #CJK UNIFIED IDEOGRAPH +0x9BA4 0x6D21 #CJK UNIFIED IDEOGRAPH +0x9BA5 0x6D22 #CJK UNIFIED IDEOGRAPH +0x9BA6 0x6D23 #CJK UNIFIED IDEOGRAPH +0x9BA7 0x6D24 #CJK UNIFIED IDEOGRAPH +0x9BA8 0x6D26 #CJK UNIFIED IDEOGRAPH +0x9BA9 0x6D28 #CJK UNIFIED IDEOGRAPH +0x9BAA 0x6D29 #CJK UNIFIED IDEOGRAPH +0x9BAB 0x6D2C #CJK UNIFIED IDEOGRAPH +0x9BAC 0x6D2D #CJK UNIFIED IDEOGRAPH +0x9BAD 0x6D2F #CJK UNIFIED IDEOGRAPH +0x9BAE 0x6D30 #CJK UNIFIED IDEOGRAPH +0x9BAF 0x6D34 #CJK UNIFIED IDEOGRAPH +0x9BB0 0x6D36 #CJK UNIFIED IDEOGRAPH +0x9BB1 0x6D37 #CJK UNIFIED IDEOGRAPH +0x9BB2 0x6D38 #CJK UNIFIED IDEOGRAPH +0x9BB3 0x6D3A #CJK UNIFIED IDEOGRAPH +0x9BB4 0x6D3F #CJK UNIFIED IDEOGRAPH +0x9BB5 0x6D40 #CJK UNIFIED IDEOGRAPH +0x9BB6 0x6D42 #CJK UNIFIED IDEOGRAPH +0x9BB7 0x6D44 #CJK UNIFIED IDEOGRAPH +0x9BB8 0x6D49 #CJK UNIFIED IDEOGRAPH +0x9BB9 0x6D4C #CJK UNIFIED IDEOGRAPH +0x9BBA 0x6D50 #CJK UNIFIED IDEOGRAPH +0x9BBB 0x6D55 #CJK UNIFIED IDEOGRAPH +0x9BBC 0x6D56 #CJK UNIFIED IDEOGRAPH +0x9BBD 0x6D57 #CJK UNIFIED IDEOGRAPH +0x9BBE 0x6D58 #CJK UNIFIED IDEOGRAPH +0x9BBF 0x6D5B #CJK UNIFIED IDEOGRAPH +0x9BC0 0x6D5D #CJK UNIFIED IDEOGRAPH +0x9BC1 0x6D5F #CJK UNIFIED IDEOGRAPH +0x9BC2 0x6D61 #CJK UNIFIED IDEOGRAPH +0x9BC3 0x6D62 #CJK UNIFIED IDEOGRAPH +0x9BC4 0x6D64 #CJK UNIFIED IDEOGRAPH +0x9BC5 0x6D65 #CJK UNIFIED IDEOGRAPH +0x9BC6 0x6D67 #CJK UNIFIED IDEOGRAPH +0x9BC7 0x6D68 #CJK UNIFIED IDEOGRAPH +0x9BC8 0x6D6B #CJK UNIFIED IDEOGRAPH +0x9BC9 0x6D6C #CJK UNIFIED IDEOGRAPH +0x9BCA 0x6D6D #CJK UNIFIED IDEOGRAPH +0x9BCB 0x6D70 #CJK UNIFIED IDEOGRAPH +0x9BCC 0x6D71 #CJK UNIFIED IDEOGRAPH +0x9BCD 0x6D72 #CJK UNIFIED IDEOGRAPH +0x9BCE 0x6D73 #CJK UNIFIED IDEOGRAPH +0x9BCF 0x6D75 #CJK UNIFIED IDEOGRAPH +0x9BD0 0x6D76 #CJK UNIFIED IDEOGRAPH +0x9BD1 0x6D79 #CJK UNIFIED IDEOGRAPH +0x9BD2 0x6D7A #CJK UNIFIED IDEOGRAPH +0x9BD3 0x6D7B #CJK UNIFIED IDEOGRAPH +0x9BD4 0x6D7D #CJK UNIFIED IDEOGRAPH +0x9BD5 0x6D7E #CJK UNIFIED IDEOGRAPH +0x9BD6 0x6D7F #CJK UNIFIED IDEOGRAPH +0x9BD7 0x6D80 #CJK UNIFIED IDEOGRAPH +0x9BD8 0x6D81 #CJK UNIFIED IDEOGRAPH +0x9BD9 0x6D83 #CJK UNIFIED IDEOGRAPH +0x9BDA 0x6D84 #CJK UNIFIED IDEOGRAPH +0x9BDB 0x6D86 #CJK UNIFIED IDEOGRAPH +0x9BDC 0x6D87 #CJK UNIFIED IDEOGRAPH +0x9BDD 0x6D8A #CJK UNIFIED IDEOGRAPH +0x9BDE 0x6D8B #CJK UNIFIED IDEOGRAPH +0x9BDF 0x6D8D #CJK UNIFIED IDEOGRAPH +0x9BE0 0x6D8F #CJK UNIFIED IDEOGRAPH +0x9BE1 0x6D90 #CJK UNIFIED IDEOGRAPH +0x9BE2 0x6D92 #CJK UNIFIED IDEOGRAPH +0x9BE3 0x6D96 #CJK UNIFIED IDEOGRAPH +0x9BE4 0x6D97 #CJK UNIFIED IDEOGRAPH +0x9BE5 0x6D98 #CJK UNIFIED IDEOGRAPH +0x9BE6 0x6D99 #CJK UNIFIED IDEOGRAPH +0x9BE7 0x6D9A #CJK UNIFIED IDEOGRAPH +0x9BE8 0x6D9C #CJK UNIFIED IDEOGRAPH +0x9BE9 0x6DA2 #CJK UNIFIED IDEOGRAPH +0x9BEA 0x6DA5 #CJK UNIFIED IDEOGRAPH +0x9BEB 0x6DAC #CJK UNIFIED IDEOGRAPH +0x9BEC 0x6DAD #CJK UNIFIED IDEOGRAPH +0x9BED 0x6DB0 #CJK UNIFIED IDEOGRAPH +0x9BEE 0x6DB1 #CJK UNIFIED IDEOGRAPH +0x9BEF 0x6DB3 #CJK UNIFIED IDEOGRAPH +0x9BF0 0x6DB4 #CJK UNIFIED IDEOGRAPH +0x9BF1 0x6DB6 #CJK UNIFIED IDEOGRAPH +0x9BF2 0x6DB7 #CJK UNIFIED IDEOGRAPH +0x9BF3 0x6DB9 #CJK UNIFIED IDEOGRAPH +0x9BF4 0x6DBA #CJK UNIFIED IDEOGRAPH +0x9BF5 0x6DBB #CJK UNIFIED IDEOGRAPH +0x9BF6 0x6DBC #CJK UNIFIED IDEOGRAPH +0x9BF7 0x6DBD #CJK UNIFIED IDEOGRAPH +0x9BF8 0x6DBE #CJK UNIFIED IDEOGRAPH +0x9BF9 0x6DC1 #CJK UNIFIED IDEOGRAPH +0x9BFA 0x6DC2 #CJK UNIFIED IDEOGRAPH +0x9BFB 0x6DC3 #CJK UNIFIED IDEOGRAPH +0x9BFC 0x6DC8 #CJK UNIFIED IDEOGRAPH +0x9BFD 0x6DC9 #CJK UNIFIED IDEOGRAPH +0x9BFE 0x6DCA #CJK UNIFIED IDEOGRAPH +0x9C40 0x6DCD #CJK UNIFIED IDEOGRAPH +0x9C41 0x6DCE #CJK UNIFIED IDEOGRAPH +0x9C42 0x6DCF #CJK UNIFIED IDEOGRAPH +0x9C43 0x6DD0 #CJK UNIFIED IDEOGRAPH +0x9C44 0x6DD2 #CJK UNIFIED IDEOGRAPH +0x9C45 0x6DD3 #CJK UNIFIED IDEOGRAPH +0x9C46 0x6DD4 #CJK UNIFIED IDEOGRAPH +0x9C47 0x6DD5 #CJK UNIFIED IDEOGRAPH +0x9C48 0x6DD7 #CJK UNIFIED IDEOGRAPH +0x9C49 0x6DDA #CJK UNIFIED IDEOGRAPH +0x9C4A 0x6DDB #CJK UNIFIED IDEOGRAPH +0x9C4B 0x6DDC #CJK UNIFIED IDEOGRAPH +0x9C4C 0x6DDF #CJK UNIFIED IDEOGRAPH +0x9C4D 0x6DE2 #CJK UNIFIED IDEOGRAPH +0x9C4E 0x6DE3 #CJK UNIFIED IDEOGRAPH +0x9C4F 0x6DE5 #CJK UNIFIED IDEOGRAPH +0x9C50 0x6DE7 #CJK UNIFIED IDEOGRAPH +0x9C51 0x6DE8 #CJK UNIFIED IDEOGRAPH +0x9C52 0x6DE9 #CJK UNIFIED IDEOGRAPH +0x9C53 0x6DEA #CJK UNIFIED IDEOGRAPH +0x9C54 0x6DED #CJK UNIFIED IDEOGRAPH +0x9C55 0x6DEF #CJK UNIFIED IDEOGRAPH +0x9C56 0x6DF0 #CJK UNIFIED IDEOGRAPH +0x9C57 0x6DF2 #CJK UNIFIED IDEOGRAPH +0x9C58 0x6DF4 #CJK UNIFIED IDEOGRAPH +0x9C59 0x6DF5 #CJK UNIFIED IDEOGRAPH +0x9C5A 0x6DF6 #CJK UNIFIED IDEOGRAPH +0x9C5B 0x6DF8 #CJK UNIFIED IDEOGRAPH +0x9C5C 0x6DFA #CJK UNIFIED IDEOGRAPH +0x9C5D 0x6DFD #CJK UNIFIED IDEOGRAPH +0x9C5E 0x6DFE #CJK UNIFIED IDEOGRAPH +0x9C5F 0x6DFF #CJK UNIFIED IDEOGRAPH +0x9C60 0x6E00 #CJK UNIFIED IDEOGRAPH +0x9C61 0x6E01 #CJK UNIFIED IDEOGRAPH +0x9C62 0x6E02 #CJK UNIFIED IDEOGRAPH +0x9C63 0x6E03 #CJK UNIFIED IDEOGRAPH +0x9C64 0x6E04 #CJK UNIFIED IDEOGRAPH +0x9C65 0x6E06 #CJK UNIFIED IDEOGRAPH +0x9C66 0x6E07 #CJK UNIFIED IDEOGRAPH +0x9C67 0x6E08 #CJK UNIFIED IDEOGRAPH +0x9C68 0x6E09 #CJK UNIFIED IDEOGRAPH +0x9C69 0x6E0B #CJK UNIFIED IDEOGRAPH +0x9C6A 0x6E0F #CJK UNIFIED IDEOGRAPH +0x9C6B 0x6E12 #CJK UNIFIED IDEOGRAPH +0x9C6C 0x6E13 #CJK UNIFIED IDEOGRAPH +0x9C6D 0x6E15 #CJK UNIFIED IDEOGRAPH +0x9C6E 0x6E18 #CJK UNIFIED IDEOGRAPH +0x9C6F 0x6E19 #CJK UNIFIED IDEOGRAPH +0x9C70 0x6E1B #CJK UNIFIED IDEOGRAPH +0x9C71 0x6E1C #CJK UNIFIED IDEOGRAPH +0x9C72 0x6E1E #CJK UNIFIED IDEOGRAPH +0x9C73 0x6E1F #CJK UNIFIED IDEOGRAPH +0x9C74 0x6E22 #CJK UNIFIED IDEOGRAPH +0x9C75 0x6E26 #CJK UNIFIED IDEOGRAPH +0x9C76 0x6E27 #CJK UNIFIED IDEOGRAPH +0x9C77 0x6E28 #CJK UNIFIED IDEOGRAPH +0x9C78 0x6E2A #CJK UNIFIED IDEOGRAPH +0x9C79 0x6E2C #CJK UNIFIED IDEOGRAPH +0x9C7A 0x6E2E #CJK UNIFIED IDEOGRAPH +0x9C7B 0x6E30 #CJK UNIFIED IDEOGRAPH +0x9C7C 0x6E31 #CJK UNIFIED IDEOGRAPH +0x9C7D 0x6E33 #CJK UNIFIED IDEOGRAPH +0x9C7E 0x6E35 #CJK UNIFIED IDEOGRAPH +0x9C80 0x6E36 #CJK UNIFIED IDEOGRAPH +0x9C81 0x6E37 #CJK UNIFIED IDEOGRAPH +0x9C82 0x6E39 #CJK UNIFIED IDEOGRAPH +0x9C83 0x6E3B #CJK UNIFIED IDEOGRAPH +0x9C84 0x6E3C #CJK UNIFIED IDEOGRAPH +0x9C85 0x6E3D #CJK UNIFIED IDEOGRAPH +0x9C86 0x6E3E #CJK UNIFIED IDEOGRAPH +0x9C87 0x6E3F #CJK UNIFIED IDEOGRAPH +0x9C88 0x6E40 #CJK UNIFIED IDEOGRAPH +0x9C89 0x6E41 #CJK UNIFIED IDEOGRAPH +0x9C8A 0x6E42 #CJK UNIFIED IDEOGRAPH +0x9C8B 0x6E45 #CJK UNIFIED IDEOGRAPH +0x9C8C 0x6E46 #CJK UNIFIED IDEOGRAPH +0x9C8D 0x6E47 #CJK UNIFIED IDEOGRAPH +0x9C8E 0x6E48 #CJK UNIFIED IDEOGRAPH +0x9C8F 0x6E49 #CJK UNIFIED IDEOGRAPH +0x9C90 0x6E4A #CJK UNIFIED IDEOGRAPH +0x9C91 0x6E4B #CJK UNIFIED IDEOGRAPH +0x9C92 0x6E4C #CJK UNIFIED IDEOGRAPH +0x9C93 0x6E4F #CJK UNIFIED IDEOGRAPH +0x9C94 0x6E50 #CJK UNIFIED IDEOGRAPH +0x9C95 0x6E51 #CJK UNIFIED IDEOGRAPH +0x9C96 0x6E52 #CJK UNIFIED IDEOGRAPH +0x9C97 0x6E55 #CJK UNIFIED IDEOGRAPH +0x9C98 0x6E57 #CJK UNIFIED IDEOGRAPH +0x9C99 0x6E59 #CJK UNIFIED IDEOGRAPH +0x9C9A 0x6E5A #CJK UNIFIED IDEOGRAPH +0x9C9B 0x6E5C #CJK UNIFIED IDEOGRAPH +0x9C9C 0x6E5D #CJK UNIFIED IDEOGRAPH +0x9C9D 0x6E5E #CJK UNIFIED IDEOGRAPH +0x9C9E 0x6E60 #CJK UNIFIED IDEOGRAPH +0x9C9F 0x6E61 #CJK UNIFIED IDEOGRAPH +0x9CA0 0x6E62 #CJK UNIFIED IDEOGRAPH +0x9CA1 0x6E63 #CJK UNIFIED IDEOGRAPH +0x9CA2 0x6E64 #CJK UNIFIED IDEOGRAPH +0x9CA3 0x6E65 #CJK UNIFIED IDEOGRAPH +0x9CA4 0x6E66 #CJK UNIFIED IDEOGRAPH +0x9CA5 0x6E67 #CJK UNIFIED IDEOGRAPH +0x9CA6 0x6E68 #CJK UNIFIED IDEOGRAPH +0x9CA7 0x6E69 #CJK UNIFIED IDEOGRAPH +0x9CA8 0x6E6A #CJK UNIFIED IDEOGRAPH +0x9CA9 0x6E6C #CJK UNIFIED IDEOGRAPH +0x9CAA 0x6E6D #CJK UNIFIED IDEOGRAPH +0x9CAB 0x6E6F #CJK UNIFIED IDEOGRAPH +0x9CAC 0x6E70 #CJK UNIFIED IDEOGRAPH +0x9CAD 0x6E71 #CJK UNIFIED IDEOGRAPH +0x9CAE 0x6E72 #CJK UNIFIED IDEOGRAPH +0x9CAF 0x6E73 #CJK UNIFIED IDEOGRAPH +0x9CB0 0x6E74 #CJK UNIFIED IDEOGRAPH +0x9CB1 0x6E75 #CJK UNIFIED IDEOGRAPH +0x9CB2 0x6E76 #CJK UNIFIED IDEOGRAPH +0x9CB3 0x6E77 #CJK UNIFIED IDEOGRAPH +0x9CB4 0x6E78 #CJK UNIFIED IDEOGRAPH +0x9CB5 0x6E79 #CJK UNIFIED IDEOGRAPH +0x9CB6 0x6E7A #CJK UNIFIED IDEOGRAPH +0x9CB7 0x6E7B #CJK UNIFIED IDEOGRAPH +0x9CB8 0x6E7C #CJK UNIFIED IDEOGRAPH +0x9CB9 0x6E7D #CJK UNIFIED IDEOGRAPH +0x9CBA 0x6E80 #CJK UNIFIED IDEOGRAPH +0x9CBB 0x6E81 #CJK UNIFIED IDEOGRAPH +0x9CBC 0x6E82 #CJK UNIFIED IDEOGRAPH +0x9CBD 0x6E84 #CJK UNIFIED IDEOGRAPH +0x9CBE 0x6E87 #CJK UNIFIED IDEOGRAPH +0x9CBF 0x6E88 #CJK UNIFIED IDEOGRAPH +0x9CC0 0x6E8A #CJK UNIFIED IDEOGRAPH +0x9CC1 0x6E8B #CJK UNIFIED IDEOGRAPH +0x9CC2 0x6E8C #CJK UNIFIED IDEOGRAPH +0x9CC3 0x6E8D #CJK UNIFIED IDEOGRAPH +0x9CC4 0x6E8E #CJK UNIFIED IDEOGRAPH +0x9CC5 0x6E91 #CJK UNIFIED IDEOGRAPH +0x9CC6 0x6E92 #CJK UNIFIED IDEOGRAPH +0x9CC7 0x6E93 #CJK UNIFIED IDEOGRAPH +0x9CC8 0x6E94 #CJK UNIFIED IDEOGRAPH +0x9CC9 0x6E95 #CJK UNIFIED IDEOGRAPH +0x9CCA 0x6E96 #CJK UNIFIED IDEOGRAPH +0x9CCB 0x6E97 #CJK UNIFIED IDEOGRAPH +0x9CCC 0x6E99 #CJK UNIFIED IDEOGRAPH +0x9CCD 0x6E9A #CJK UNIFIED IDEOGRAPH +0x9CCE 0x6E9B #CJK UNIFIED IDEOGRAPH +0x9CCF 0x6E9D #CJK UNIFIED IDEOGRAPH +0x9CD0 0x6E9E #CJK UNIFIED IDEOGRAPH +0x9CD1 0x6EA0 #CJK UNIFIED IDEOGRAPH +0x9CD2 0x6EA1 #CJK UNIFIED IDEOGRAPH +0x9CD3 0x6EA3 #CJK UNIFIED IDEOGRAPH +0x9CD4 0x6EA4 #CJK UNIFIED IDEOGRAPH +0x9CD5 0x6EA6 #CJK UNIFIED IDEOGRAPH +0x9CD6 0x6EA8 #CJK UNIFIED IDEOGRAPH +0x9CD7 0x6EA9 #CJK UNIFIED IDEOGRAPH +0x9CD8 0x6EAB #CJK UNIFIED IDEOGRAPH +0x9CD9 0x6EAC #CJK UNIFIED IDEOGRAPH +0x9CDA 0x6EAD #CJK UNIFIED IDEOGRAPH +0x9CDB 0x6EAE #CJK UNIFIED IDEOGRAPH +0x9CDC 0x6EB0 #CJK UNIFIED IDEOGRAPH +0x9CDD 0x6EB3 #CJK UNIFIED IDEOGRAPH +0x9CDE 0x6EB5 #CJK UNIFIED IDEOGRAPH +0x9CDF 0x6EB8 #CJK UNIFIED IDEOGRAPH +0x9CE0 0x6EB9 #CJK UNIFIED IDEOGRAPH +0x9CE1 0x6EBC #CJK UNIFIED IDEOGRAPH +0x9CE2 0x6EBE #CJK UNIFIED IDEOGRAPH +0x9CE3 0x6EBF #CJK UNIFIED IDEOGRAPH +0x9CE4 0x6EC0 #CJK UNIFIED IDEOGRAPH +0x9CE5 0x6EC3 #CJK UNIFIED IDEOGRAPH +0x9CE6 0x6EC4 #CJK UNIFIED IDEOGRAPH +0x9CE7 0x6EC5 #CJK UNIFIED IDEOGRAPH +0x9CE8 0x6EC6 #CJK UNIFIED IDEOGRAPH +0x9CE9 0x6EC8 #CJK UNIFIED IDEOGRAPH +0x9CEA 0x6EC9 #CJK UNIFIED IDEOGRAPH +0x9CEB 0x6ECA #CJK UNIFIED IDEOGRAPH +0x9CEC 0x6ECC #CJK UNIFIED IDEOGRAPH +0x9CED 0x6ECD #CJK UNIFIED IDEOGRAPH +0x9CEE 0x6ECE #CJK UNIFIED IDEOGRAPH +0x9CEF 0x6ED0 #CJK UNIFIED IDEOGRAPH +0x9CF0 0x6ED2 #CJK UNIFIED IDEOGRAPH +0x9CF1 0x6ED6 #CJK UNIFIED IDEOGRAPH +0x9CF2 0x6ED8 #CJK UNIFIED IDEOGRAPH +0x9CF3 0x6ED9 #CJK UNIFIED IDEOGRAPH +0x9CF4 0x6EDB #CJK UNIFIED IDEOGRAPH +0x9CF5 0x6EDC #CJK UNIFIED IDEOGRAPH +0x9CF6 0x6EDD #CJK UNIFIED IDEOGRAPH +0x9CF7 0x6EE3 #CJK UNIFIED IDEOGRAPH +0x9CF8 0x6EE7 #CJK UNIFIED IDEOGRAPH +0x9CF9 0x6EEA #CJK UNIFIED IDEOGRAPH +0x9CFA 0x6EEB #CJK UNIFIED IDEOGRAPH +0x9CFB 0x6EEC #CJK UNIFIED IDEOGRAPH +0x9CFC 0x6EED #CJK UNIFIED IDEOGRAPH +0x9CFD 0x6EEE #CJK UNIFIED IDEOGRAPH +0x9CFE 0x6EEF #CJK UNIFIED IDEOGRAPH +0x9D40 0x6EF0 #CJK UNIFIED IDEOGRAPH +0x9D41 0x6EF1 #CJK UNIFIED IDEOGRAPH +0x9D42 0x6EF2 #CJK UNIFIED IDEOGRAPH +0x9D43 0x6EF3 #CJK UNIFIED IDEOGRAPH +0x9D44 0x6EF5 #CJK UNIFIED IDEOGRAPH +0x9D45 0x6EF6 #CJK UNIFIED IDEOGRAPH +0x9D46 0x6EF7 #CJK UNIFIED IDEOGRAPH +0x9D47 0x6EF8 #CJK UNIFIED IDEOGRAPH +0x9D48 0x6EFA #CJK UNIFIED IDEOGRAPH +0x9D49 0x6EFB #CJK UNIFIED IDEOGRAPH +0x9D4A 0x6EFC #CJK UNIFIED IDEOGRAPH +0x9D4B 0x6EFD #CJK UNIFIED IDEOGRAPH +0x9D4C 0x6EFE #CJK UNIFIED IDEOGRAPH +0x9D4D 0x6EFF #CJK UNIFIED IDEOGRAPH +0x9D4E 0x6F00 #CJK UNIFIED IDEOGRAPH +0x9D4F 0x6F01 #CJK UNIFIED IDEOGRAPH +0x9D50 0x6F03 #CJK UNIFIED IDEOGRAPH +0x9D51 0x6F04 #CJK UNIFIED IDEOGRAPH +0x9D52 0x6F05 #CJK UNIFIED IDEOGRAPH +0x9D53 0x6F07 #CJK UNIFIED IDEOGRAPH +0x9D54 0x6F08 #CJK UNIFIED IDEOGRAPH +0x9D55 0x6F0A #CJK UNIFIED IDEOGRAPH +0x9D56 0x6F0B #CJK UNIFIED IDEOGRAPH +0x9D57 0x6F0C #CJK UNIFIED IDEOGRAPH +0x9D58 0x6F0D #CJK UNIFIED IDEOGRAPH +0x9D59 0x6F0E #CJK UNIFIED IDEOGRAPH +0x9D5A 0x6F10 #CJK UNIFIED IDEOGRAPH +0x9D5B 0x6F11 #CJK UNIFIED IDEOGRAPH +0x9D5C 0x6F12 #CJK UNIFIED IDEOGRAPH +0x9D5D 0x6F16 #CJK UNIFIED IDEOGRAPH +0x9D5E 0x6F17 #CJK UNIFIED IDEOGRAPH +0x9D5F 0x6F18 #CJK UNIFIED IDEOGRAPH +0x9D60 0x6F19 #CJK UNIFIED IDEOGRAPH +0x9D61 0x6F1A #CJK UNIFIED IDEOGRAPH +0x9D62 0x6F1B #CJK UNIFIED IDEOGRAPH +0x9D63 0x6F1C #CJK UNIFIED IDEOGRAPH +0x9D64 0x6F1D #CJK UNIFIED IDEOGRAPH +0x9D65 0x6F1E #CJK UNIFIED IDEOGRAPH +0x9D66 0x6F1F #CJK UNIFIED IDEOGRAPH +0x9D67 0x6F21 #CJK UNIFIED IDEOGRAPH +0x9D68 0x6F22 #CJK UNIFIED IDEOGRAPH +0x9D69 0x6F23 #CJK UNIFIED IDEOGRAPH +0x9D6A 0x6F25 #CJK UNIFIED IDEOGRAPH +0x9D6B 0x6F26 #CJK UNIFIED IDEOGRAPH +0x9D6C 0x6F27 #CJK UNIFIED IDEOGRAPH +0x9D6D 0x6F28 #CJK UNIFIED IDEOGRAPH +0x9D6E 0x6F2C #CJK UNIFIED IDEOGRAPH +0x9D6F 0x6F2E #CJK UNIFIED IDEOGRAPH +0x9D70 0x6F30 #CJK UNIFIED IDEOGRAPH +0x9D71 0x6F32 #CJK UNIFIED IDEOGRAPH +0x9D72 0x6F34 #CJK UNIFIED IDEOGRAPH +0x9D73 0x6F35 #CJK UNIFIED IDEOGRAPH +0x9D74 0x6F37 #CJK UNIFIED IDEOGRAPH +0x9D75 0x6F38 #CJK UNIFIED IDEOGRAPH +0x9D76 0x6F39 #CJK UNIFIED IDEOGRAPH +0x9D77 0x6F3A #CJK UNIFIED IDEOGRAPH +0x9D78 0x6F3B #CJK UNIFIED IDEOGRAPH +0x9D79 0x6F3C #CJK UNIFIED IDEOGRAPH +0x9D7A 0x6F3D #CJK UNIFIED IDEOGRAPH +0x9D7B 0x6F3F #CJK UNIFIED IDEOGRAPH +0x9D7C 0x6F40 #CJK UNIFIED IDEOGRAPH +0x9D7D 0x6F41 #CJK UNIFIED IDEOGRAPH +0x9D7E 0x6F42 #CJK UNIFIED IDEOGRAPH +0x9D80 0x6F43 #CJK UNIFIED IDEOGRAPH +0x9D81 0x6F44 #CJK UNIFIED IDEOGRAPH +0x9D82 0x6F45 #CJK UNIFIED IDEOGRAPH +0x9D83 0x6F48 #CJK UNIFIED IDEOGRAPH +0x9D84 0x6F49 #CJK UNIFIED IDEOGRAPH +0x9D85 0x6F4A #CJK UNIFIED IDEOGRAPH +0x9D86 0x6F4C #CJK UNIFIED IDEOGRAPH +0x9D87 0x6F4E #CJK UNIFIED IDEOGRAPH +0x9D88 0x6F4F #CJK UNIFIED IDEOGRAPH +0x9D89 0x6F50 #CJK UNIFIED IDEOGRAPH +0x9D8A 0x6F51 #CJK UNIFIED IDEOGRAPH +0x9D8B 0x6F52 #CJK UNIFIED IDEOGRAPH +0x9D8C 0x6F53 #CJK UNIFIED IDEOGRAPH +0x9D8D 0x6F54 #CJK UNIFIED IDEOGRAPH +0x9D8E 0x6F55 #CJK UNIFIED IDEOGRAPH +0x9D8F 0x6F56 #CJK UNIFIED IDEOGRAPH +0x9D90 0x6F57 #CJK UNIFIED IDEOGRAPH +0x9D91 0x6F59 #CJK UNIFIED IDEOGRAPH +0x9D92 0x6F5A #CJK UNIFIED IDEOGRAPH +0x9D93 0x6F5B #CJK UNIFIED IDEOGRAPH +0x9D94 0x6F5D #CJK UNIFIED IDEOGRAPH +0x9D95 0x6F5F #CJK UNIFIED IDEOGRAPH +0x9D96 0x6F60 #CJK UNIFIED IDEOGRAPH +0x9D97 0x6F61 #CJK UNIFIED IDEOGRAPH +0x9D98 0x6F63 #CJK UNIFIED IDEOGRAPH +0x9D99 0x6F64 #CJK UNIFIED IDEOGRAPH +0x9D9A 0x6F65 #CJK UNIFIED IDEOGRAPH +0x9D9B 0x6F67 #CJK UNIFIED IDEOGRAPH +0x9D9C 0x6F68 #CJK UNIFIED IDEOGRAPH +0x9D9D 0x6F69 #CJK UNIFIED IDEOGRAPH +0x9D9E 0x6F6A #CJK UNIFIED IDEOGRAPH +0x9D9F 0x6F6B #CJK UNIFIED IDEOGRAPH +0x9DA0 0x6F6C #CJK UNIFIED IDEOGRAPH +0x9DA1 0x6F6F #CJK UNIFIED IDEOGRAPH +0x9DA2 0x6F70 #CJK UNIFIED IDEOGRAPH +0x9DA3 0x6F71 #CJK UNIFIED IDEOGRAPH +0x9DA4 0x6F73 #CJK UNIFIED IDEOGRAPH +0x9DA5 0x6F75 #CJK UNIFIED IDEOGRAPH +0x9DA6 0x6F76 #CJK UNIFIED IDEOGRAPH +0x9DA7 0x6F77 #CJK UNIFIED IDEOGRAPH +0x9DA8 0x6F79 #CJK UNIFIED IDEOGRAPH +0x9DA9 0x6F7B #CJK UNIFIED IDEOGRAPH +0x9DAA 0x6F7D #CJK UNIFIED IDEOGRAPH +0x9DAB 0x6F7E #CJK UNIFIED IDEOGRAPH +0x9DAC 0x6F7F #CJK UNIFIED IDEOGRAPH +0x9DAD 0x6F80 #CJK UNIFIED IDEOGRAPH +0x9DAE 0x6F81 #CJK UNIFIED IDEOGRAPH +0x9DAF 0x6F82 #CJK UNIFIED IDEOGRAPH +0x9DB0 0x6F83 #CJK UNIFIED IDEOGRAPH +0x9DB1 0x6F85 #CJK UNIFIED IDEOGRAPH +0x9DB2 0x6F86 #CJK UNIFIED IDEOGRAPH +0x9DB3 0x6F87 #CJK UNIFIED IDEOGRAPH +0x9DB4 0x6F8A #CJK UNIFIED IDEOGRAPH +0x9DB5 0x6F8B #CJK UNIFIED IDEOGRAPH +0x9DB6 0x6F8F #CJK UNIFIED IDEOGRAPH +0x9DB7 0x6F90 #CJK UNIFIED IDEOGRAPH +0x9DB8 0x6F91 #CJK UNIFIED IDEOGRAPH +0x9DB9 0x6F92 #CJK UNIFIED IDEOGRAPH +0x9DBA 0x6F93 #CJK UNIFIED IDEOGRAPH +0x9DBB 0x6F94 #CJK UNIFIED IDEOGRAPH +0x9DBC 0x6F95 #CJK UNIFIED IDEOGRAPH +0x9DBD 0x6F96 #CJK UNIFIED IDEOGRAPH +0x9DBE 0x6F97 #CJK UNIFIED IDEOGRAPH +0x9DBF 0x6F98 #CJK UNIFIED IDEOGRAPH +0x9DC0 0x6F99 #CJK UNIFIED IDEOGRAPH +0x9DC1 0x6F9A #CJK UNIFIED IDEOGRAPH +0x9DC2 0x6F9B #CJK UNIFIED IDEOGRAPH +0x9DC3 0x6F9D #CJK UNIFIED IDEOGRAPH +0x9DC4 0x6F9E #CJK UNIFIED IDEOGRAPH +0x9DC5 0x6F9F #CJK UNIFIED IDEOGRAPH +0x9DC6 0x6FA0 #CJK UNIFIED IDEOGRAPH +0x9DC7 0x6FA2 #CJK UNIFIED IDEOGRAPH +0x9DC8 0x6FA3 #CJK UNIFIED IDEOGRAPH +0x9DC9 0x6FA4 #CJK UNIFIED IDEOGRAPH +0x9DCA 0x6FA5 #CJK UNIFIED IDEOGRAPH +0x9DCB 0x6FA6 #CJK UNIFIED IDEOGRAPH +0x9DCC 0x6FA8 #CJK UNIFIED IDEOGRAPH +0x9DCD 0x6FA9 #CJK UNIFIED IDEOGRAPH +0x9DCE 0x6FAA #CJK UNIFIED IDEOGRAPH +0x9DCF 0x6FAB #CJK UNIFIED IDEOGRAPH +0x9DD0 0x6FAC #CJK UNIFIED IDEOGRAPH +0x9DD1 0x6FAD #CJK UNIFIED IDEOGRAPH +0x9DD2 0x6FAE #CJK UNIFIED IDEOGRAPH +0x9DD3 0x6FAF #CJK UNIFIED IDEOGRAPH +0x9DD4 0x6FB0 #CJK UNIFIED IDEOGRAPH +0x9DD5 0x6FB1 #CJK UNIFIED IDEOGRAPH +0x9DD6 0x6FB2 #CJK UNIFIED IDEOGRAPH +0x9DD7 0x6FB4 #CJK UNIFIED IDEOGRAPH +0x9DD8 0x6FB5 #CJK UNIFIED IDEOGRAPH +0x9DD9 0x6FB7 #CJK UNIFIED IDEOGRAPH +0x9DDA 0x6FB8 #CJK UNIFIED IDEOGRAPH +0x9DDB 0x6FBA #CJK UNIFIED IDEOGRAPH +0x9DDC 0x6FBB #CJK UNIFIED IDEOGRAPH +0x9DDD 0x6FBC #CJK UNIFIED IDEOGRAPH +0x9DDE 0x6FBD #CJK UNIFIED IDEOGRAPH +0x9DDF 0x6FBE #CJK UNIFIED IDEOGRAPH +0x9DE0 0x6FBF #CJK UNIFIED IDEOGRAPH +0x9DE1 0x6FC1 #CJK UNIFIED IDEOGRAPH +0x9DE2 0x6FC3 #CJK UNIFIED IDEOGRAPH +0x9DE3 0x6FC4 #CJK UNIFIED IDEOGRAPH +0x9DE4 0x6FC5 #CJK UNIFIED IDEOGRAPH +0x9DE5 0x6FC6 #CJK UNIFIED IDEOGRAPH +0x9DE6 0x6FC7 #CJK UNIFIED IDEOGRAPH +0x9DE7 0x6FC8 #CJK UNIFIED IDEOGRAPH +0x9DE8 0x6FCA #CJK UNIFIED IDEOGRAPH +0x9DE9 0x6FCB #CJK UNIFIED IDEOGRAPH +0x9DEA 0x6FCC #CJK UNIFIED IDEOGRAPH +0x9DEB 0x6FCD #CJK UNIFIED IDEOGRAPH +0x9DEC 0x6FCE #CJK UNIFIED IDEOGRAPH +0x9DED 0x6FCF #CJK UNIFIED IDEOGRAPH +0x9DEE 0x6FD0 #CJK UNIFIED IDEOGRAPH +0x9DEF 0x6FD3 #CJK UNIFIED IDEOGRAPH +0x9DF0 0x6FD4 #CJK UNIFIED IDEOGRAPH +0x9DF1 0x6FD5 #CJK UNIFIED IDEOGRAPH +0x9DF2 0x6FD6 #CJK UNIFIED IDEOGRAPH +0x9DF3 0x6FD7 #CJK UNIFIED IDEOGRAPH +0x9DF4 0x6FD8 #CJK UNIFIED IDEOGRAPH +0x9DF5 0x6FD9 #CJK UNIFIED IDEOGRAPH +0x9DF6 0x6FDA #CJK UNIFIED IDEOGRAPH +0x9DF7 0x6FDB #CJK UNIFIED IDEOGRAPH +0x9DF8 0x6FDC #CJK UNIFIED IDEOGRAPH +0x9DF9 0x6FDD #CJK UNIFIED IDEOGRAPH +0x9DFA 0x6FDF #CJK UNIFIED IDEOGRAPH +0x9DFB 0x6FE2 #CJK UNIFIED IDEOGRAPH +0x9DFC 0x6FE3 #CJK UNIFIED IDEOGRAPH +0x9DFD 0x6FE4 #CJK UNIFIED IDEOGRAPH +0x9DFE 0x6FE5 #CJK UNIFIED IDEOGRAPH +0x9E40 0x6FE6 #CJK UNIFIED IDEOGRAPH +0x9E41 0x6FE7 #CJK UNIFIED IDEOGRAPH +0x9E42 0x6FE8 #CJK UNIFIED IDEOGRAPH +0x9E43 0x6FE9 #CJK UNIFIED IDEOGRAPH +0x9E44 0x6FEA #CJK UNIFIED IDEOGRAPH +0x9E45 0x6FEB #CJK UNIFIED IDEOGRAPH +0x9E46 0x6FEC #CJK UNIFIED IDEOGRAPH +0x9E47 0x6FED #CJK UNIFIED IDEOGRAPH +0x9E48 0x6FF0 #CJK UNIFIED IDEOGRAPH +0x9E49 0x6FF1 #CJK UNIFIED IDEOGRAPH +0x9E4A 0x6FF2 #CJK UNIFIED IDEOGRAPH +0x9E4B 0x6FF3 #CJK UNIFIED IDEOGRAPH +0x9E4C 0x6FF4 #CJK UNIFIED IDEOGRAPH +0x9E4D 0x6FF5 #CJK UNIFIED IDEOGRAPH +0x9E4E 0x6FF6 #CJK UNIFIED IDEOGRAPH +0x9E4F 0x6FF7 #CJK UNIFIED IDEOGRAPH +0x9E50 0x6FF8 #CJK UNIFIED IDEOGRAPH +0x9E51 0x6FF9 #CJK UNIFIED IDEOGRAPH +0x9E52 0x6FFA #CJK UNIFIED IDEOGRAPH +0x9E53 0x6FFB #CJK UNIFIED IDEOGRAPH +0x9E54 0x6FFC #CJK UNIFIED IDEOGRAPH +0x9E55 0x6FFD #CJK UNIFIED IDEOGRAPH +0x9E56 0x6FFE #CJK UNIFIED IDEOGRAPH +0x9E57 0x6FFF #CJK UNIFIED IDEOGRAPH +0x9E58 0x7000 #CJK UNIFIED IDEOGRAPH +0x9E59 0x7001 #CJK UNIFIED IDEOGRAPH +0x9E5A 0x7002 #CJK UNIFIED IDEOGRAPH +0x9E5B 0x7003 #CJK UNIFIED IDEOGRAPH +0x9E5C 0x7004 #CJK UNIFIED IDEOGRAPH +0x9E5D 0x7005 #CJK UNIFIED IDEOGRAPH +0x9E5E 0x7006 #CJK UNIFIED IDEOGRAPH +0x9E5F 0x7007 #CJK UNIFIED IDEOGRAPH +0x9E60 0x7008 #CJK UNIFIED IDEOGRAPH +0x9E61 0x7009 #CJK UNIFIED IDEOGRAPH +0x9E62 0x700A #CJK UNIFIED IDEOGRAPH +0x9E63 0x700B #CJK UNIFIED IDEOGRAPH +0x9E64 0x700C #CJK UNIFIED IDEOGRAPH +0x9E65 0x700D #CJK UNIFIED IDEOGRAPH +0x9E66 0x700E #CJK UNIFIED IDEOGRAPH +0x9E67 0x700F #CJK UNIFIED IDEOGRAPH +0x9E68 0x7010 #CJK UNIFIED IDEOGRAPH +0x9E69 0x7012 #CJK UNIFIED IDEOGRAPH +0x9E6A 0x7013 #CJK UNIFIED IDEOGRAPH +0x9E6B 0x7014 #CJK UNIFIED IDEOGRAPH +0x9E6C 0x7015 #CJK UNIFIED IDEOGRAPH +0x9E6D 0x7016 #CJK UNIFIED IDEOGRAPH +0x9E6E 0x7017 #CJK UNIFIED IDEOGRAPH +0x9E6F 0x7018 #CJK UNIFIED IDEOGRAPH +0x9E70 0x7019 #CJK UNIFIED IDEOGRAPH +0x9E71 0x701C #CJK UNIFIED IDEOGRAPH +0x9E72 0x701D #CJK UNIFIED IDEOGRAPH +0x9E73 0x701E #CJK UNIFIED IDEOGRAPH +0x9E74 0x701F #CJK UNIFIED IDEOGRAPH +0x9E75 0x7020 #CJK UNIFIED IDEOGRAPH +0x9E76 0x7021 #CJK UNIFIED IDEOGRAPH +0x9E77 0x7022 #CJK UNIFIED IDEOGRAPH +0x9E78 0x7024 #CJK UNIFIED IDEOGRAPH +0x9E79 0x7025 #CJK UNIFIED IDEOGRAPH +0x9E7A 0x7026 #CJK UNIFIED IDEOGRAPH +0x9E7B 0x7027 #CJK UNIFIED IDEOGRAPH +0x9E7C 0x7028 #CJK UNIFIED IDEOGRAPH +0x9E7D 0x7029 #CJK UNIFIED IDEOGRAPH +0x9E7E 0x702A #CJK UNIFIED IDEOGRAPH +0x9E80 0x702B #CJK UNIFIED IDEOGRAPH +0x9E81 0x702C #CJK UNIFIED IDEOGRAPH +0x9E82 0x702D #CJK UNIFIED IDEOGRAPH +0x9E83 0x702E #CJK UNIFIED IDEOGRAPH +0x9E84 0x702F #CJK UNIFIED IDEOGRAPH +0x9E85 0x7030 #CJK UNIFIED IDEOGRAPH +0x9E86 0x7031 #CJK UNIFIED IDEOGRAPH +0x9E87 0x7032 #CJK UNIFIED IDEOGRAPH +0x9E88 0x7033 #CJK UNIFIED IDEOGRAPH +0x9E89 0x7034 #CJK UNIFIED IDEOGRAPH +0x9E8A 0x7036 #CJK UNIFIED IDEOGRAPH +0x9E8B 0x7037 #CJK UNIFIED IDEOGRAPH +0x9E8C 0x7038 #CJK UNIFIED IDEOGRAPH +0x9E8D 0x703A #CJK UNIFIED IDEOGRAPH +0x9E8E 0x703B #CJK UNIFIED IDEOGRAPH +0x9E8F 0x703C #CJK UNIFIED IDEOGRAPH +0x9E90 0x703D #CJK UNIFIED IDEOGRAPH +0x9E91 0x703E #CJK UNIFIED IDEOGRAPH +0x9E92 0x703F #CJK UNIFIED IDEOGRAPH +0x9E93 0x7040 #CJK UNIFIED IDEOGRAPH +0x9E94 0x7041 #CJK UNIFIED IDEOGRAPH +0x9E95 0x7042 #CJK UNIFIED IDEOGRAPH +0x9E96 0x7043 #CJK UNIFIED IDEOGRAPH +0x9E97 0x7044 #CJK UNIFIED IDEOGRAPH +0x9E98 0x7045 #CJK UNIFIED IDEOGRAPH +0x9E99 0x7046 #CJK UNIFIED IDEOGRAPH +0x9E9A 0x7047 #CJK UNIFIED IDEOGRAPH +0x9E9B 0x7048 #CJK UNIFIED IDEOGRAPH +0x9E9C 0x7049 #CJK UNIFIED IDEOGRAPH +0x9E9D 0x704A #CJK UNIFIED IDEOGRAPH +0x9E9E 0x704B #CJK UNIFIED IDEOGRAPH +0x9E9F 0x704D #CJK UNIFIED IDEOGRAPH +0x9EA0 0x704E #CJK UNIFIED IDEOGRAPH +0x9EA1 0x7050 #CJK UNIFIED IDEOGRAPH +0x9EA2 0x7051 #CJK UNIFIED IDEOGRAPH +0x9EA3 0x7052 #CJK UNIFIED IDEOGRAPH +0x9EA4 0x7053 #CJK UNIFIED IDEOGRAPH +0x9EA5 0x7054 #CJK UNIFIED IDEOGRAPH +0x9EA6 0x7055 #CJK UNIFIED IDEOGRAPH +0x9EA7 0x7056 #CJK UNIFIED IDEOGRAPH +0x9EA8 0x7057 #CJK UNIFIED IDEOGRAPH +0x9EA9 0x7058 #CJK UNIFIED IDEOGRAPH +0x9EAA 0x7059 #CJK UNIFIED IDEOGRAPH +0x9EAB 0x705A #CJK UNIFIED IDEOGRAPH +0x9EAC 0x705B #CJK UNIFIED IDEOGRAPH +0x9EAD 0x705C #CJK UNIFIED IDEOGRAPH +0x9EAE 0x705D #CJK UNIFIED IDEOGRAPH +0x9EAF 0x705F #CJK UNIFIED IDEOGRAPH +0x9EB0 0x7060 #CJK UNIFIED IDEOGRAPH +0x9EB1 0x7061 #CJK UNIFIED IDEOGRAPH +0x9EB2 0x7062 #CJK UNIFIED IDEOGRAPH +0x9EB3 0x7063 #CJK UNIFIED IDEOGRAPH +0x9EB4 0x7064 #CJK UNIFIED IDEOGRAPH +0x9EB5 0x7065 #CJK UNIFIED IDEOGRAPH +0x9EB6 0x7066 #CJK UNIFIED IDEOGRAPH +0x9EB7 0x7067 #CJK UNIFIED IDEOGRAPH +0x9EB8 0x7068 #CJK UNIFIED IDEOGRAPH +0x9EB9 0x7069 #CJK UNIFIED IDEOGRAPH +0x9EBA 0x706A #CJK UNIFIED IDEOGRAPH +0x9EBB 0x706E #CJK UNIFIED IDEOGRAPH +0x9EBC 0x7071 #CJK UNIFIED IDEOGRAPH +0x9EBD 0x7072 #CJK UNIFIED IDEOGRAPH +0x9EBE 0x7073 #CJK UNIFIED IDEOGRAPH +0x9EBF 0x7074 #CJK UNIFIED IDEOGRAPH +0x9EC0 0x7077 #CJK UNIFIED IDEOGRAPH +0x9EC1 0x7079 #CJK UNIFIED IDEOGRAPH +0x9EC2 0x707A #CJK UNIFIED IDEOGRAPH +0x9EC3 0x707B #CJK UNIFIED IDEOGRAPH +0x9EC4 0x707D #CJK UNIFIED IDEOGRAPH +0x9EC5 0x7081 #CJK UNIFIED IDEOGRAPH +0x9EC6 0x7082 #CJK UNIFIED IDEOGRAPH +0x9EC7 0x7083 #CJK UNIFIED IDEOGRAPH +0x9EC8 0x7084 #CJK UNIFIED IDEOGRAPH +0x9EC9 0x7086 #CJK UNIFIED IDEOGRAPH +0x9ECA 0x7087 #CJK UNIFIED IDEOGRAPH +0x9ECB 0x7088 #CJK UNIFIED IDEOGRAPH +0x9ECC 0x708B #CJK UNIFIED IDEOGRAPH +0x9ECD 0x708C #CJK UNIFIED IDEOGRAPH +0x9ECE 0x708D #CJK UNIFIED IDEOGRAPH +0x9ECF 0x708F #CJK UNIFIED IDEOGRAPH +0x9ED0 0x7090 #CJK UNIFIED IDEOGRAPH +0x9ED1 0x7091 #CJK UNIFIED IDEOGRAPH +0x9ED2 0x7093 #CJK UNIFIED IDEOGRAPH +0x9ED3 0x7097 #CJK UNIFIED IDEOGRAPH +0x9ED4 0x7098 #CJK UNIFIED IDEOGRAPH +0x9ED5 0x709A #CJK UNIFIED IDEOGRAPH +0x9ED6 0x709B #CJK UNIFIED IDEOGRAPH +0x9ED7 0x709E #CJK UNIFIED IDEOGRAPH +0x9ED8 0x709F #CJK UNIFIED IDEOGRAPH +0x9ED9 0x70A0 #CJK UNIFIED IDEOGRAPH +0x9EDA 0x70A1 #CJK UNIFIED IDEOGRAPH +0x9EDB 0x70A2 #CJK UNIFIED IDEOGRAPH +0x9EDC 0x70A3 #CJK UNIFIED IDEOGRAPH +0x9EDD 0x70A4 #CJK UNIFIED IDEOGRAPH +0x9EDE 0x70A5 #CJK UNIFIED IDEOGRAPH +0x9EDF 0x70A6 #CJK UNIFIED IDEOGRAPH +0x9EE0 0x70A7 #CJK UNIFIED IDEOGRAPH +0x9EE1 0x70A8 #CJK UNIFIED IDEOGRAPH +0x9EE2 0x70A9 #CJK UNIFIED IDEOGRAPH +0x9EE3 0x70AA #CJK UNIFIED IDEOGRAPH +0x9EE4 0x70B0 #CJK UNIFIED IDEOGRAPH +0x9EE5 0x70B2 #CJK UNIFIED IDEOGRAPH +0x9EE6 0x70B4 #CJK UNIFIED IDEOGRAPH +0x9EE7 0x70B5 #CJK UNIFIED IDEOGRAPH +0x9EE8 0x70B6 #CJK UNIFIED IDEOGRAPH +0x9EE9 0x70BA #CJK UNIFIED IDEOGRAPH +0x9EEA 0x70BE #CJK UNIFIED IDEOGRAPH +0x9EEB 0x70BF #CJK UNIFIED IDEOGRAPH +0x9EEC 0x70C4 #CJK UNIFIED IDEOGRAPH +0x9EED 0x70C5 #CJK UNIFIED IDEOGRAPH +0x9EEE 0x70C6 #CJK UNIFIED IDEOGRAPH +0x9EEF 0x70C7 #CJK UNIFIED IDEOGRAPH +0x9EF0 0x70C9 #CJK UNIFIED IDEOGRAPH +0x9EF1 0x70CB #CJK UNIFIED IDEOGRAPH +0x9EF2 0x70CC #CJK UNIFIED IDEOGRAPH +0x9EF3 0x70CD #CJK UNIFIED IDEOGRAPH +0x9EF4 0x70CE #CJK UNIFIED IDEOGRAPH +0x9EF5 0x70CF #CJK UNIFIED IDEOGRAPH +0x9EF6 0x70D0 #CJK UNIFIED IDEOGRAPH +0x9EF7 0x70D1 #CJK UNIFIED IDEOGRAPH +0x9EF8 0x70D2 #CJK UNIFIED IDEOGRAPH +0x9EF9 0x70D3 #CJK UNIFIED IDEOGRAPH +0x9EFA 0x70D4 #CJK UNIFIED IDEOGRAPH +0x9EFB 0x70D5 #CJK UNIFIED IDEOGRAPH +0x9EFC 0x70D6 #CJK UNIFIED IDEOGRAPH +0x9EFD 0x70D7 #CJK UNIFIED IDEOGRAPH +0x9EFE 0x70DA #CJK UNIFIED IDEOGRAPH +0x9F40 0x70DC #CJK UNIFIED IDEOGRAPH +0x9F41 0x70DD #CJK UNIFIED IDEOGRAPH +0x9F42 0x70DE #CJK UNIFIED IDEOGRAPH +0x9F43 0x70E0 #CJK UNIFIED IDEOGRAPH +0x9F44 0x70E1 #CJK UNIFIED IDEOGRAPH +0x9F45 0x70E2 #CJK UNIFIED IDEOGRAPH +0x9F46 0x70E3 #CJK UNIFIED IDEOGRAPH +0x9F47 0x70E5 #CJK UNIFIED IDEOGRAPH +0x9F48 0x70EA #CJK UNIFIED IDEOGRAPH +0x9F49 0x70EE #CJK UNIFIED IDEOGRAPH +0x9F4A 0x70F0 #CJK UNIFIED IDEOGRAPH +0x9F4B 0x70F1 #CJK UNIFIED IDEOGRAPH +0x9F4C 0x70F2 #CJK UNIFIED IDEOGRAPH +0x9F4D 0x70F3 #CJK UNIFIED IDEOGRAPH +0x9F4E 0x70F4 #CJK UNIFIED IDEOGRAPH +0x9F4F 0x70F5 #CJK UNIFIED IDEOGRAPH +0x9F50 0x70F6 #CJK UNIFIED IDEOGRAPH +0x9F51 0x70F8 #CJK UNIFIED IDEOGRAPH +0x9F52 0x70FA #CJK UNIFIED IDEOGRAPH +0x9F53 0x70FB #CJK UNIFIED IDEOGRAPH +0x9F54 0x70FC #CJK UNIFIED IDEOGRAPH +0x9F55 0x70FE #CJK UNIFIED IDEOGRAPH +0x9F56 0x70FF #CJK UNIFIED IDEOGRAPH +0x9F57 0x7100 #CJK UNIFIED IDEOGRAPH +0x9F58 0x7101 #CJK UNIFIED IDEOGRAPH +0x9F59 0x7102 #CJK UNIFIED IDEOGRAPH +0x9F5A 0x7103 #CJK UNIFIED IDEOGRAPH +0x9F5B 0x7104 #CJK UNIFIED IDEOGRAPH +0x9F5C 0x7105 #CJK UNIFIED IDEOGRAPH +0x9F5D 0x7106 #CJK UNIFIED IDEOGRAPH +0x9F5E 0x7107 #CJK UNIFIED IDEOGRAPH +0x9F5F 0x7108 #CJK UNIFIED IDEOGRAPH +0x9F60 0x710B #CJK UNIFIED IDEOGRAPH +0x9F61 0x710C #CJK UNIFIED IDEOGRAPH +0x9F62 0x710D #CJK UNIFIED IDEOGRAPH +0x9F63 0x710E #CJK UNIFIED IDEOGRAPH +0x9F64 0x710F #CJK UNIFIED IDEOGRAPH +0x9F65 0x7111 #CJK UNIFIED IDEOGRAPH +0x9F66 0x7112 #CJK UNIFIED IDEOGRAPH +0x9F67 0x7114 #CJK UNIFIED IDEOGRAPH +0x9F68 0x7117 #CJK UNIFIED IDEOGRAPH +0x9F69 0x711B #CJK UNIFIED IDEOGRAPH +0x9F6A 0x711C #CJK UNIFIED IDEOGRAPH +0x9F6B 0x711D #CJK UNIFIED IDEOGRAPH +0x9F6C 0x711E #CJK UNIFIED IDEOGRAPH +0x9F6D 0x711F #CJK UNIFIED IDEOGRAPH +0x9F6E 0x7120 #CJK UNIFIED IDEOGRAPH +0x9F6F 0x7121 #CJK UNIFIED IDEOGRAPH +0x9F70 0x7122 #CJK UNIFIED IDEOGRAPH +0x9F71 0x7123 #CJK UNIFIED IDEOGRAPH +0x9F72 0x7124 #CJK UNIFIED IDEOGRAPH +0x9F73 0x7125 #CJK UNIFIED IDEOGRAPH +0x9F74 0x7127 #CJK UNIFIED IDEOGRAPH +0x9F75 0x7128 #CJK UNIFIED IDEOGRAPH +0x9F76 0x7129 #CJK UNIFIED IDEOGRAPH +0x9F77 0x712A #CJK UNIFIED IDEOGRAPH +0x9F78 0x712B #CJK UNIFIED IDEOGRAPH +0x9F79 0x712C #CJK UNIFIED IDEOGRAPH +0x9F7A 0x712D #CJK UNIFIED IDEOGRAPH +0x9F7B 0x712E #CJK UNIFIED IDEOGRAPH +0x9F7C 0x7132 #CJK UNIFIED IDEOGRAPH +0x9F7D 0x7133 #CJK UNIFIED IDEOGRAPH +0x9F7E 0x7134 #CJK UNIFIED IDEOGRAPH +0x9F80 0x7135 #CJK UNIFIED IDEOGRAPH +0x9F81 0x7137 #CJK UNIFIED IDEOGRAPH +0x9F82 0x7138 #CJK UNIFIED IDEOGRAPH +0x9F83 0x7139 #CJK UNIFIED IDEOGRAPH +0x9F84 0x713A #CJK UNIFIED IDEOGRAPH +0x9F85 0x713B #CJK UNIFIED IDEOGRAPH +0x9F86 0x713C #CJK UNIFIED IDEOGRAPH +0x9F87 0x713D #CJK UNIFIED IDEOGRAPH +0x9F88 0x713E #CJK UNIFIED IDEOGRAPH +0x9F89 0x713F #CJK UNIFIED IDEOGRAPH +0x9F8A 0x7140 #CJK UNIFIED IDEOGRAPH +0x9F8B 0x7141 #CJK UNIFIED IDEOGRAPH +0x9F8C 0x7142 #CJK UNIFIED IDEOGRAPH +0x9F8D 0x7143 #CJK UNIFIED IDEOGRAPH +0x9F8E 0x7144 #CJK UNIFIED IDEOGRAPH +0x9F8F 0x7146 #CJK UNIFIED IDEOGRAPH +0x9F90 0x7147 #CJK UNIFIED IDEOGRAPH +0x9F91 0x7148 #CJK UNIFIED IDEOGRAPH +0x9F92 0x7149 #CJK UNIFIED IDEOGRAPH +0x9F93 0x714B #CJK UNIFIED IDEOGRAPH +0x9F94 0x714D #CJK UNIFIED IDEOGRAPH +0x9F95 0x714F #CJK UNIFIED IDEOGRAPH +0x9F96 0x7150 #CJK UNIFIED IDEOGRAPH +0x9F97 0x7151 #CJK UNIFIED IDEOGRAPH +0x9F98 0x7152 #CJK UNIFIED IDEOGRAPH +0x9F99 0x7153 #CJK UNIFIED IDEOGRAPH +0x9F9A 0x7154 #CJK UNIFIED IDEOGRAPH +0x9F9B 0x7155 #CJK UNIFIED IDEOGRAPH +0x9F9C 0x7156 #CJK UNIFIED IDEOGRAPH +0x9F9D 0x7157 #CJK UNIFIED IDEOGRAPH +0x9F9E 0x7158 #CJK UNIFIED IDEOGRAPH +0x9F9F 0x7159 #CJK UNIFIED IDEOGRAPH +0x9FA0 0x715A #CJK UNIFIED IDEOGRAPH +0x9FA1 0x715B #CJK UNIFIED IDEOGRAPH +0x9FA2 0x715D #CJK UNIFIED IDEOGRAPH +0x9FA3 0x715F #CJK UNIFIED IDEOGRAPH +0x9FA4 0x7160 #CJK UNIFIED IDEOGRAPH +0x9FA5 0x7161 #CJK UNIFIED IDEOGRAPH +0x9FA6 0x7162 #CJK UNIFIED IDEOGRAPH +0x9FA7 0x7163 #CJK UNIFIED IDEOGRAPH +0x9FA8 0x7165 #CJK UNIFIED IDEOGRAPH +0x9FA9 0x7169 #CJK UNIFIED IDEOGRAPH +0x9FAA 0x716A #CJK UNIFIED IDEOGRAPH +0x9FAB 0x716B #CJK UNIFIED IDEOGRAPH +0x9FAC 0x716C #CJK UNIFIED IDEOGRAPH +0x9FAD 0x716D #CJK UNIFIED IDEOGRAPH +0x9FAE 0x716F #CJK UNIFIED IDEOGRAPH +0x9FAF 0x7170 #CJK UNIFIED IDEOGRAPH +0x9FB0 0x7171 #CJK UNIFIED IDEOGRAPH +0x9FB1 0x7174 #CJK UNIFIED IDEOGRAPH +0x9FB2 0x7175 #CJK UNIFIED IDEOGRAPH +0x9FB3 0x7176 #CJK UNIFIED IDEOGRAPH +0x9FB4 0x7177 #CJK UNIFIED IDEOGRAPH +0x9FB5 0x7179 #CJK UNIFIED IDEOGRAPH +0x9FB6 0x717B #CJK UNIFIED IDEOGRAPH +0x9FB7 0x717C #CJK UNIFIED IDEOGRAPH +0x9FB8 0x717E #CJK UNIFIED IDEOGRAPH +0x9FB9 0x717F #CJK UNIFIED IDEOGRAPH +0x9FBA 0x7180 #CJK UNIFIED IDEOGRAPH +0x9FBB 0x7181 #CJK UNIFIED IDEOGRAPH +0x9FBC 0x7182 #CJK UNIFIED IDEOGRAPH +0x9FBD 0x7183 #CJK UNIFIED IDEOGRAPH +0x9FBE 0x7185 #CJK UNIFIED IDEOGRAPH +0x9FBF 0x7186 #CJK UNIFIED IDEOGRAPH +0x9FC0 0x7187 #CJK UNIFIED IDEOGRAPH +0x9FC1 0x7188 #CJK UNIFIED IDEOGRAPH +0x9FC2 0x7189 #CJK UNIFIED IDEOGRAPH +0x9FC3 0x718B #CJK UNIFIED IDEOGRAPH +0x9FC4 0x718C #CJK UNIFIED IDEOGRAPH +0x9FC5 0x718D #CJK UNIFIED IDEOGRAPH +0x9FC6 0x718E #CJK UNIFIED IDEOGRAPH +0x9FC7 0x7190 #CJK UNIFIED IDEOGRAPH +0x9FC8 0x7191 #CJK UNIFIED IDEOGRAPH +0x9FC9 0x7192 #CJK UNIFIED IDEOGRAPH +0x9FCA 0x7193 #CJK UNIFIED IDEOGRAPH +0x9FCB 0x7195 #CJK UNIFIED IDEOGRAPH +0x9FCC 0x7196 #CJK UNIFIED IDEOGRAPH +0x9FCD 0x7197 #CJK UNIFIED IDEOGRAPH +0x9FCE 0x719A #CJK UNIFIED IDEOGRAPH +0x9FCF 0x719B #CJK UNIFIED IDEOGRAPH +0x9FD0 0x719C #CJK UNIFIED IDEOGRAPH +0x9FD1 0x719D #CJK UNIFIED IDEOGRAPH +0x9FD2 0x719E #CJK UNIFIED IDEOGRAPH +0x9FD3 0x71A1 #CJK UNIFIED IDEOGRAPH +0x9FD4 0x71A2 #CJK UNIFIED IDEOGRAPH +0x9FD5 0x71A3 #CJK UNIFIED IDEOGRAPH +0x9FD6 0x71A4 #CJK UNIFIED IDEOGRAPH +0x9FD7 0x71A5 #CJK UNIFIED IDEOGRAPH +0x9FD8 0x71A6 #CJK UNIFIED IDEOGRAPH +0x9FD9 0x71A7 #CJK UNIFIED IDEOGRAPH +0x9FDA 0x71A9 #CJK UNIFIED IDEOGRAPH +0x9FDB 0x71AA #CJK UNIFIED IDEOGRAPH +0x9FDC 0x71AB #CJK UNIFIED IDEOGRAPH +0x9FDD 0x71AD #CJK UNIFIED IDEOGRAPH +0x9FDE 0x71AE #CJK UNIFIED IDEOGRAPH +0x9FDF 0x71AF #CJK UNIFIED IDEOGRAPH +0x9FE0 0x71B0 #CJK UNIFIED IDEOGRAPH +0x9FE1 0x71B1 #CJK UNIFIED IDEOGRAPH +0x9FE2 0x71B2 #CJK UNIFIED IDEOGRAPH +0x9FE3 0x71B4 #CJK UNIFIED IDEOGRAPH +0x9FE4 0x71B6 #CJK UNIFIED IDEOGRAPH +0x9FE5 0x71B7 #CJK UNIFIED IDEOGRAPH +0x9FE6 0x71B8 #CJK UNIFIED IDEOGRAPH +0x9FE7 0x71BA #CJK UNIFIED IDEOGRAPH +0x9FE8 0x71BB #CJK UNIFIED IDEOGRAPH +0x9FE9 0x71BC #CJK UNIFIED IDEOGRAPH +0x9FEA 0x71BD #CJK UNIFIED IDEOGRAPH +0x9FEB 0x71BE #CJK UNIFIED IDEOGRAPH +0x9FEC 0x71BF #CJK UNIFIED IDEOGRAPH +0x9FED 0x71C0 #CJK UNIFIED IDEOGRAPH +0x9FEE 0x71C1 #CJK UNIFIED IDEOGRAPH +0x9FEF 0x71C2 #CJK UNIFIED IDEOGRAPH +0x9FF0 0x71C4 #CJK UNIFIED IDEOGRAPH +0x9FF1 0x71C5 #CJK UNIFIED IDEOGRAPH +0x9FF2 0x71C6 #CJK UNIFIED IDEOGRAPH +0x9FF3 0x71C7 #CJK UNIFIED IDEOGRAPH +0x9FF4 0x71C8 #CJK UNIFIED IDEOGRAPH +0x9FF5 0x71C9 #CJK UNIFIED IDEOGRAPH +0x9FF6 0x71CA #CJK UNIFIED IDEOGRAPH +0x9FF7 0x71CB #CJK UNIFIED IDEOGRAPH +0x9FF8 0x71CC #CJK UNIFIED IDEOGRAPH +0x9FF9 0x71CD #CJK UNIFIED IDEOGRAPH +0x9FFA 0x71CF #CJK UNIFIED IDEOGRAPH +0x9FFB 0x71D0 #CJK UNIFIED IDEOGRAPH +0x9FFC 0x71D1 #CJK UNIFIED IDEOGRAPH +0x9FFD 0x71D2 #CJK UNIFIED IDEOGRAPH +0x9FFE 0x71D3 #CJK UNIFIED IDEOGRAPH +0xA040 0x71D6 #CJK UNIFIED IDEOGRAPH +0xA041 0x71D7 #CJK UNIFIED IDEOGRAPH +0xA042 0x71D8 #CJK UNIFIED IDEOGRAPH +0xA043 0x71D9 #CJK UNIFIED IDEOGRAPH +0xA044 0x71DA #CJK UNIFIED IDEOGRAPH +0xA045 0x71DB #CJK UNIFIED IDEOGRAPH +0xA046 0x71DC #CJK UNIFIED IDEOGRAPH +0xA047 0x71DD #CJK UNIFIED IDEOGRAPH +0xA048 0x71DE #CJK UNIFIED IDEOGRAPH +0xA049 0x71DF #CJK UNIFIED IDEOGRAPH +0xA04A 0x71E1 #CJK UNIFIED IDEOGRAPH +0xA04B 0x71E2 #CJK UNIFIED IDEOGRAPH +0xA04C 0x71E3 #CJK UNIFIED IDEOGRAPH +0xA04D 0x71E4 #CJK UNIFIED IDEOGRAPH +0xA04E 0x71E6 #CJK UNIFIED IDEOGRAPH +0xA04F 0x71E8 #CJK UNIFIED IDEOGRAPH +0xA050 0x71E9 #CJK UNIFIED IDEOGRAPH +0xA051 0x71EA #CJK UNIFIED IDEOGRAPH +0xA052 0x71EB #CJK UNIFIED IDEOGRAPH +0xA053 0x71EC #CJK UNIFIED IDEOGRAPH +0xA054 0x71ED #CJK UNIFIED IDEOGRAPH +0xA055 0x71EF #CJK UNIFIED IDEOGRAPH +0xA056 0x71F0 #CJK UNIFIED IDEOGRAPH +0xA057 0x71F1 #CJK UNIFIED IDEOGRAPH +0xA058 0x71F2 #CJK UNIFIED IDEOGRAPH +0xA059 0x71F3 #CJK UNIFIED IDEOGRAPH +0xA05A 0x71F4 #CJK UNIFIED IDEOGRAPH +0xA05B 0x71F5 #CJK UNIFIED IDEOGRAPH +0xA05C 0x71F6 #CJK UNIFIED IDEOGRAPH +0xA05D 0x71F7 #CJK UNIFIED IDEOGRAPH +0xA05E 0x71F8 #CJK UNIFIED IDEOGRAPH +0xA05F 0x71FA #CJK UNIFIED IDEOGRAPH +0xA060 0x71FB #CJK UNIFIED IDEOGRAPH +0xA061 0x71FC #CJK UNIFIED IDEOGRAPH +0xA062 0x71FD #CJK UNIFIED IDEOGRAPH +0xA063 0x71FE #CJK UNIFIED IDEOGRAPH +0xA064 0x71FF #CJK UNIFIED IDEOGRAPH +0xA065 0x7200 #CJK UNIFIED IDEOGRAPH +0xA066 0x7201 #CJK UNIFIED IDEOGRAPH +0xA067 0x7202 #CJK UNIFIED IDEOGRAPH +0xA068 0x7203 #CJK UNIFIED IDEOGRAPH +0xA069 0x7204 #CJK UNIFIED IDEOGRAPH +0xA06A 0x7205 #CJK UNIFIED IDEOGRAPH +0xA06B 0x7207 #CJK UNIFIED IDEOGRAPH +0xA06C 0x7208 #CJK UNIFIED IDEOGRAPH +0xA06D 0x7209 #CJK UNIFIED IDEOGRAPH +0xA06E 0x720A #CJK UNIFIED IDEOGRAPH +0xA06F 0x720B #CJK UNIFIED IDEOGRAPH +0xA070 0x720C #CJK UNIFIED IDEOGRAPH +0xA071 0x720D #CJK UNIFIED IDEOGRAPH +0xA072 0x720E #CJK UNIFIED IDEOGRAPH +0xA073 0x720F #CJK UNIFIED IDEOGRAPH +0xA074 0x7210 #CJK UNIFIED IDEOGRAPH +0xA075 0x7211 #CJK UNIFIED IDEOGRAPH +0xA076 0x7212 #CJK UNIFIED IDEOGRAPH +0xA077 0x7213 #CJK UNIFIED IDEOGRAPH +0xA078 0x7214 #CJK UNIFIED IDEOGRAPH +0xA079 0x7215 #CJK UNIFIED IDEOGRAPH +0xA07A 0x7216 #CJK UNIFIED IDEOGRAPH +0xA07B 0x7217 #CJK UNIFIED IDEOGRAPH +0xA07C 0x7218 #CJK UNIFIED IDEOGRAPH +0xA07D 0x7219 #CJK UNIFIED IDEOGRAPH +0xA07E 0x721A #CJK UNIFIED IDEOGRAPH +0xA080 0x721B #CJK UNIFIED IDEOGRAPH +0xA081 0x721C #CJK UNIFIED IDEOGRAPH +0xA082 0x721E #CJK UNIFIED IDEOGRAPH +0xA083 0x721F #CJK UNIFIED IDEOGRAPH +0xA084 0x7220 #CJK UNIFIED IDEOGRAPH +0xA085 0x7221 #CJK UNIFIED IDEOGRAPH +0xA086 0x7222 #CJK UNIFIED IDEOGRAPH +0xA087 0x7223 #CJK UNIFIED IDEOGRAPH +0xA088 0x7224 #CJK UNIFIED IDEOGRAPH +0xA089 0x7225 #CJK UNIFIED IDEOGRAPH +0xA08A 0x7226 #CJK UNIFIED IDEOGRAPH +0xA08B 0x7227 #CJK UNIFIED IDEOGRAPH +0xA08C 0x7229 #CJK UNIFIED IDEOGRAPH +0xA08D 0x722B #CJK UNIFIED IDEOGRAPH +0xA08E 0x722D #CJK UNIFIED IDEOGRAPH +0xA08F 0x722E #CJK UNIFIED IDEOGRAPH +0xA090 0x722F #CJK UNIFIED IDEOGRAPH +0xA091 0x7232 #CJK UNIFIED IDEOGRAPH +0xA092 0x7233 #CJK UNIFIED IDEOGRAPH +0xA093 0x7234 #CJK UNIFIED IDEOGRAPH +0xA094 0x723A #CJK UNIFIED IDEOGRAPH +0xA095 0x723C #CJK UNIFIED IDEOGRAPH +0xA096 0x723E #CJK UNIFIED IDEOGRAPH +0xA097 0x7240 #CJK UNIFIED IDEOGRAPH +0xA098 0x7241 #CJK UNIFIED IDEOGRAPH +0xA099 0x7242 #CJK UNIFIED IDEOGRAPH +0xA09A 0x7243 #CJK UNIFIED IDEOGRAPH +0xA09B 0x7244 #CJK UNIFIED IDEOGRAPH +0xA09C 0x7245 #CJK UNIFIED IDEOGRAPH +0xA09D 0x7246 #CJK UNIFIED IDEOGRAPH +0xA09E 0x7249 #CJK UNIFIED IDEOGRAPH +0xA09F 0x724A #CJK UNIFIED IDEOGRAPH +0xA0A0 0x724B #CJK UNIFIED IDEOGRAPH +0xA0A1 0x724E #CJK UNIFIED IDEOGRAPH +0xA0A2 0x724F #CJK UNIFIED IDEOGRAPH +0xA0A3 0x7250 #CJK UNIFIED IDEOGRAPH +0xA0A4 0x7251 #CJK UNIFIED IDEOGRAPH +0xA0A5 0x7253 #CJK UNIFIED IDEOGRAPH +0xA0A6 0x7254 #CJK UNIFIED IDEOGRAPH +0xA0A7 0x7255 #CJK UNIFIED IDEOGRAPH +0xA0A8 0x7257 #CJK UNIFIED IDEOGRAPH +0xA0A9 0x7258 #CJK UNIFIED IDEOGRAPH +0xA0AA 0x725A #CJK UNIFIED IDEOGRAPH +0xA0AB 0x725C #CJK UNIFIED IDEOGRAPH +0xA0AC 0x725E #CJK UNIFIED IDEOGRAPH +0xA0AD 0x7260 #CJK UNIFIED IDEOGRAPH +0xA0AE 0x7263 #CJK UNIFIED IDEOGRAPH +0xA0AF 0x7264 #CJK UNIFIED IDEOGRAPH +0xA0B0 0x7265 #CJK UNIFIED IDEOGRAPH +0xA0B1 0x7268 #CJK UNIFIED IDEOGRAPH +0xA0B2 0x726A #CJK UNIFIED IDEOGRAPH +0xA0B3 0x726B #CJK UNIFIED IDEOGRAPH +0xA0B4 0x726C #CJK UNIFIED IDEOGRAPH +0xA0B5 0x726D #CJK UNIFIED IDEOGRAPH +0xA0B6 0x7270 #CJK UNIFIED IDEOGRAPH +0xA0B7 0x7271 #CJK UNIFIED IDEOGRAPH +0xA0B8 0x7273 #CJK UNIFIED IDEOGRAPH +0xA0B9 0x7274 #CJK UNIFIED IDEOGRAPH +0xA0BA 0x7276 #CJK UNIFIED IDEOGRAPH +0xA0BB 0x7277 #CJK UNIFIED IDEOGRAPH +0xA0BC 0x7278 #CJK UNIFIED IDEOGRAPH +0xA0BD 0x727B #CJK UNIFIED IDEOGRAPH +0xA0BE 0x727C #CJK UNIFIED IDEOGRAPH +0xA0BF 0x727D #CJK UNIFIED IDEOGRAPH +0xA0C0 0x7282 #CJK UNIFIED IDEOGRAPH +0xA0C1 0x7283 #CJK UNIFIED IDEOGRAPH +0xA0C2 0x7285 #CJK UNIFIED IDEOGRAPH +0xA0C3 0x7286 #CJK UNIFIED IDEOGRAPH +0xA0C4 0x7287 #CJK UNIFIED IDEOGRAPH +0xA0C5 0x7288 #CJK UNIFIED IDEOGRAPH +0xA0C6 0x7289 #CJK UNIFIED IDEOGRAPH +0xA0C7 0x728C #CJK UNIFIED IDEOGRAPH +0xA0C8 0x728E #CJK UNIFIED IDEOGRAPH +0xA0C9 0x7290 #CJK UNIFIED IDEOGRAPH +0xA0CA 0x7291 #CJK UNIFIED IDEOGRAPH +0xA0CB 0x7293 #CJK UNIFIED IDEOGRAPH +0xA0CC 0x7294 #CJK UNIFIED IDEOGRAPH +0xA0CD 0x7295 #CJK UNIFIED IDEOGRAPH +0xA0CE 0x7296 #CJK UNIFIED IDEOGRAPH +0xA0CF 0x7297 #CJK UNIFIED IDEOGRAPH +0xA0D0 0x7298 #CJK UNIFIED IDEOGRAPH +0xA0D1 0x7299 #CJK UNIFIED IDEOGRAPH +0xA0D2 0x729A #CJK UNIFIED IDEOGRAPH +0xA0D3 0x729B #CJK UNIFIED IDEOGRAPH +0xA0D4 0x729C #CJK UNIFIED IDEOGRAPH +0xA0D5 0x729D #CJK UNIFIED IDEOGRAPH +0xA0D6 0x729E #CJK UNIFIED IDEOGRAPH +0xA0D7 0x72A0 #CJK UNIFIED IDEOGRAPH +0xA0D8 0x72A1 #CJK UNIFIED IDEOGRAPH +0xA0D9 0x72A2 #CJK UNIFIED IDEOGRAPH +0xA0DA 0x72A3 #CJK UNIFIED IDEOGRAPH +0xA0DB 0x72A4 #CJK UNIFIED IDEOGRAPH +0xA0DC 0x72A5 #CJK UNIFIED IDEOGRAPH +0xA0DD 0x72A6 #CJK UNIFIED IDEOGRAPH +0xA0DE 0x72A7 #CJK UNIFIED IDEOGRAPH +0xA0DF 0x72A8 #CJK UNIFIED IDEOGRAPH +0xA0E0 0x72A9 #CJK UNIFIED IDEOGRAPH +0xA0E1 0x72AA #CJK UNIFIED IDEOGRAPH +0xA0E2 0x72AB #CJK UNIFIED IDEOGRAPH +0xA0E3 0x72AE #CJK UNIFIED IDEOGRAPH +0xA0E4 0x72B1 #CJK UNIFIED IDEOGRAPH +0xA0E5 0x72B2 #CJK UNIFIED IDEOGRAPH +0xA0E6 0x72B3 #CJK UNIFIED IDEOGRAPH +0xA0E7 0x72B5 #CJK UNIFIED IDEOGRAPH +0xA0E8 0x72BA #CJK UNIFIED IDEOGRAPH +0xA0E9 0x72BB #CJK UNIFIED IDEOGRAPH +0xA0EA 0x72BC #CJK UNIFIED IDEOGRAPH +0xA0EB 0x72BD #CJK UNIFIED IDEOGRAPH +0xA0EC 0x72BE #CJK UNIFIED IDEOGRAPH +0xA0ED 0x72BF #CJK UNIFIED IDEOGRAPH +0xA0EE 0x72C0 #CJK UNIFIED IDEOGRAPH +0xA0EF 0x72C5 #CJK UNIFIED IDEOGRAPH +0xA0F0 0x72C6 #CJK UNIFIED IDEOGRAPH +0xA0F1 0x72C7 #CJK UNIFIED IDEOGRAPH +0xA0F2 0x72C9 #CJK UNIFIED IDEOGRAPH +0xA0F3 0x72CA #CJK UNIFIED IDEOGRAPH +0xA0F4 0x72CB #CJK UNIFIED IDEOGRAPH +0xA0F5 0x72CC #CJK UNIFIED IDEOGRAPH +0xA0F6 0x72CF #CJK UNIFIED IDEOGRAPH +0xA0F7 0x72D1 #CJK UNIFIED IDEOGRAPH +0xA0F8 0x72D3 #CJK UNIFIED IDEOGRAPH +0xA0F9 0x72D4 #CJK UNIFIED IDEOGRAPH +0xA0FA 0x72D5 #CJK UNIFIED IDEOGRAPH +0xA0FB 0x72D6 #CJK UNIFIED IDEOGRAPH +0xA0FC 0x72D8 #CJK UNIFIED IDEOGRAPH +0xA0FD 0x72DA #CJK UNIFIED IDEOGRAPH +0xA0FE 0x72DB #CJK UNIFIED IDEOGRAPH +0xA1A1 0x3000 #IDEOGRAPHIC SPACE +0xA1A2 0x3001 #IDEOGRAPHIC COMMA +0xA1A3 0x3002 #IDEOGRAPHIC FULL STOP +0xA1A4 0x00B7 #MIDDLE DOT +0xA1A5 0x02C9 #MODIFIER LETTER MACRON +0xA1A6 0x02C7 #CARON +0xA1A7 0x00A8 #DIAERESIS +0xA1A8 0x3003 #DITTO MARK +0xA1A9 0x3005 #IDEOGRAPHIC ITERATION MARK +0xA1AA 0x2014 #EM DASH +0xA1AB 0xFF5E #FULLWIDTH TILDE +0xA1AC 0x2016 #DOUBLE VERTICAL LINE +0xA1AD 0x2026 #HORIZONTAL ELLIPSIS +0xA1AE 0x2018 #LEFT SINGLE QUOTATION MARK +0xA1AF 0x2019 #RIGHT SINGLE QUOTATION MARK +0xA1B0 0x201C #LEFT DOUBLE QUOTATION MARK +0xA1B1 0x201D #RIGHT DOUBLE QUOTATION MARK +0xA1B2 0x3014 #LEFT TORTOISE SHELL BRACKET +0xA1B3 0x3015 #RIGHT TORTOISE SHELL BRACKET +0xA1B4 0x3008 #LEFT ANGLE BRACKET +0xA1B5 0x3009 #RIGHT ANGLE BRACKET +0xA1B6 0x300A #LEFT DOUBLE ANGLE BRACKET +0xA1B7 0x300B #RIGHT DOUBLE ANGLE BRACKET +0xA1B8 0x300C #LEFT CORNER BRACKET +0xA1B9 0x300D #RIGHT CORNER BRACKET +0xA1BA 0x300E #LEFT WHITE CORNER BRACKET +0xA1BB 0x300F #RIGHT WHITE CORNER BRACKET +0xA1BC 0x3016 #LEFT WHITE LENTICULAR BRACKET +0xA1BD 0x3017 #RIGHT WHITE LENTICULAR BRACKET +0xA1BE 0x3010 #LEFT BLACK LENTICULAR BRACKET +0xA1BF 0x3011 #RIGHT BLACK LENTICULAR BRACKET +0xA1C0 0x00B1 #PLUS-MINUS SIGN +0xA1C1 0x00D7 #MULTIPLICATION SIGN +0xA1C2 0x00F7 #DIVISION SIGN +0xA1C3 0x2236 #RATIO +0xA1C4 0x2227 #LOGICAL AND +0xA1C5 0x2228 #LOGICAL OR +0xA1C6 0x2211 #N-ARY SUMMATION +0xA1C7 0x220F #N-ARY PRODUCT +0xA1C8 0x222A #UNION +0xA1C9 0x2229 #INTERSECTION +0xA1CA 0x2208 #ELEMENT OF +0xA1CB 0x2237 #PROPORTION +0xA1CC 0x221A #SQUARE ROOT +0xA1CD 0x22A5 #UP TACK +0xA1CE 0x2225 #PARALLEL TO +0xA1CF 0x2220 #ANGLE +0xA1D0 0x2312 #ARC +0xA1D1 0x2299 #CIRCLED DOT OPERATOR +0xA1D2 0x222B #INTEGRAL +0xA1D3 0x222E #CONTOUR INTEGRAL +0xA1D4 0x2261 #IDENTICAL TO +0xA1D5 0x224C #ALL EQUAL TO +0xA1D6 0x2248 #ALMOST EQUAL TO +0xA1D7 0x223D #REVERSED TILDE +0xA1D8 0x221D #PROPORTIONAL TO +0xA1D9 0x2260 #NOT EQUAL TO +0xA1DA 0x226E #NOT LESS-THAN +0xA1DB 0x226F #NOT GREATER-THAN +0xA1DC 0x2264 #LESS-THAN OR EQUAL TO +0xA1DD 0x2265 #GREATER-THAN OR EQUAL TO +0xA1DE 0x221E #INFINITY +0xA1DF 0x2235 #BECAUSE +0xA1E0 0x2234 #THEREFORE +0xA1E1 0x2642 #MALE SIGN +0xA1E2 0x2640 #FEMALE SIGN +0xA1E3 0x00B0 #DEGREE SIGN +0xA1E4 0x2032 #PRIME +0xA1E5 0x2033 #DOUBLE PRIME +0xA1E6 0x2103 #DEGREE CELSIUS +0xA1E7 0xFF04 #FULLWIDTH DOLLAR SIGN +0xA1E8 0x00A4 #CURRENCY SIGN +0xA1E9 0xFFE0 #FULLWIDTH CENT SIGN +0xA1EA 0xFFE1 #FULLWIDTH POUND SIGN +0xA1EB 0x2030 #PER MILLE SIGN +0xA1EC 0x00A7 #SECTION SIGN +0xA1ED 0x2116 #NUMERO SIGN +0xA1EE 0x2606 #WHITE STAR +0xA1EF 0x2605 #BLACK STAR +0xA1F0 0x25CB #WHITE CIRCLE +0xA1F1 0x25CF #BLACK CIRCLE +0xA1F2 0x25CE #BULLSEYE +0xA1F3 0x25C7 #WHITE DIAMOND +0xA1F4 0x25C6 #BLACK DIAMOND +0xA1F5 0x25A1 #WHITE SQUARE +0xA1F6 0x25A0 #BLACK SQUARE +0xA1F7 0x25B3 #WHITE UP-POINTING TRIANGLE +0xA1F8 0x25B2 #BLACK UP-POINTING TRIANGLE +0xA1F9 0x203B #REFERENCE MARK +0xA1FA 0x2192 #RIGHTWARDS ARROW +0xA1FB 0x2190 #LEFTWARDS ARROW +0xA1FC 0x2191 #UPWARDS ARROW +0xA1FD 0x2193 #DOWNWARDS ARROW +0xA1FE 0x3013 #GETA MARK +0xA2A1 0x2170 #SMALL ROMAN NUMERAL ONE +0xA2A2 0x2171 #SMALL ROMAN NUMERAL TWO +0xA2A3 0x2172 #SMALL ROMAN NUMERAL THREE +0xA2A4 0x2173 #SMALL ROMAN NUMERAL FOUR +0xA2A5 0x2174 #SMALL ROMAN NUMERAL FIVE +0xA2A6 0x2175 #SMALL ROMAN NUMERAL SIX +0xA2A7 0x2176 #SMALL ROMAN NUMERAL SEVEN +0xA2A8 0x2177 #SMALL ROMAN NUMERAL EIGHT +0xA2A9 0x2178 #SMALL ROMAN NUMERAL NINE +0xA2AA 0x2179 #SMALL ROMAN NUMERAL TEN +0xA2B1 0x2488 #DIGIT ONE FULL STOP +0xA2B2 0x2489 #DIGIT TWO FULL STOP +0xA2B3 0x248A #DIGIT THREE FULL STOP +0xA2B4 0x248B #DIGIT FOUR FULL STOP +0xA2B5 0x248C #DIGIT FIVE FULL STOP +0xA2B6 0x248D #DIGIT SIX FULL STOP +0xA2B7 0x248E #DIGIT SEVEN FULL STOP +0xA2B8 0x248F #DIGIT EIGHT FULL STOP +0xA2B9 0x2490 #DIGIT NINE FULL STOP +0xA2BA 0x2491 #NUMBER TEN FULL STOP +0xA2BB 0x2492 #NUMBER ELEVEN FULL STOP +0xA2BC 0x2493 #NUMBER TWELVE FULL STOP +0xA2BD 0x2494 #NUMBER THIRTEEN FULL STOP +0xA2BE 0x2495 #NUMBER FOURTEEN FULL STOP +0xA2BF 0x2496 #NUMBER FIFTEEN FULL STOP +0xA2C0 0x2497 #NUMBER SIXTEEN FULL STOP +0xA2C1 0x2498 #NUMBER SEVENTEEN FULL STOP +0xA2C2 0x2499 #NUMBER EIGHTEEN FULL STOP +0xA2C3 0x249A #NUMBER NINETEEN FULL STOP +0xA2C4 0x249B #NUMBER TWENTY FULL STOP +0xA2C5 0x2474 #PARENTHESIZED DIGIT ONE +0xA2C6 0x2475 #PARENTHESIZED DIGIT TWO +0xA2C7 0x2476 #PARENTHESIZED DIGIT THREE +0xA2C8 0x2477 #PARENTHESIZED DIGIT FOUR +0xA2C9 0x2478 #PARENTHESIZED DIGIT FIVE +0xA2CA 0x2479 #PARENTHESIZED DIGIT SIX +0xA2CB 0x247A #PARENTHESIZED DIGIT SEVEN +0xA2CC 0x247B #PARENTHESIZED DIGIT EIGHT +0xA2CD 0x247C #PARENTHESIZED DIGIT NINE +0xA2CE 0x247D #PARENTHESIZED NUMBER TEN +0xA2CF 0x247E #PARENTHESIZED NUMBER ELEVEN +0xA2D0 0x247F #PARENTHESIZED NUMBER TWELVE +0xA2D1 0x2480 #PARENTHESIZED NUMBER THIRTEEN +0xA2D2 0x2481 #PARENTHESIZED NUMBER FOURTEEN +0xA2D3 0x2482 #PARENTHESIZED NUMBER FIFTEEN +0xA2D4 0x2483 #PARENTHESIZED NUMBER SIXTEEN +0xA2D5 0x2484 #PARENTHESIZED NUMBER SEVENTEEN +0xA2D6 0x2485 #PARENTHESIZED NUMBER EIGHTEEN +0xA2D7 0x2486 #PARENTHESIZED NUMBER NINETEEN +0xA2D8 0x2487 #PARENTHESIZED NUMBER TWENTY +0xA2D9 0x2460 #CIRCLED DIGIT ONE +0xA2DA 0x2461 #CIRCLED DIGIT TWO +0xA2DB 0x2462 #CIRCLED DIGIT THREE +0xA2DC 0x2463 #CIRCLED DIGIT FOUR +0xA2DD 0x2464 #CIRCLED DIGIT FIVE +0xA2DE 0x2465 #CIRCLED DIGIT SIX +0xA2DF 0x2466 #CIRCLED DIGIT SEVEN +0xA2E0 0x2467 #CIRCLED DIGIT EIGHT +0xA2E1 0x2468 #CIRCLED DIGIT NINE +0xA2E2 0x2469 #CIRCLED NUMBER TEN +0xA2E5 0x3220 #PARENTHESIZED IDEOGRAPH ONE +0xA2E6 0x3221 #PARENTHESIZED IDEOGRAPH TWO +0xA2E7 0x3222 #PARENTHESIZED IDEOGRAPH THREE +0xA2E8 0x3223 #PARENTHESIZED IDEOGRAPH FOUR +0xA2E9 0x3224 #PARENTHESIZED IDEOGRAPH FIVE +0xA2EA 0x3225 #PARENTHESIZED IDEOGRAPH SIX +0xA2EB 0x3226 #PARENTHESIZED IDEOGRAPH SEVEN +0xA2EC 0x3227 #PARENTHESIZED IDEOGRAPH EIGHT +0xA2ED 0x3228 #PARENTHESIZED IDEOGRAPH NINE +0xA2EE 0x3229 #PARENTHESIZED IDEOGRAPH TEN +0xA2F1 0x2160 #ROMAN NUMERAL ONE +0xA2F2 0x2161 #ROMAN NUMERAL TWO +0xA2F3 0x2162 #ROMAN NUMERAL THREE +0xA2F4 0x2163 #ROMAN NUMERAL FOUR +0xA2F5 0x2164 #ROMAN NUMERAL FIVE +0xA2F6 0x2165 #ROMAN NUMERAL SIX +0xA2F7 0x2166 #ROMAN NUMERAL SEVEN +0xA2F8 0x2167 #ROMAN NUMERAL EIGHT +0xA2F9 0x2168 #ROMAN NUMERAL NINE +0xA2FA 0x2169 #ROMAN NUMERAL TEN +0xA2FB 0x216A #ROMAN NUMERAL ELEVEN +0xA2FC 0x216B #ROMAN NUMERAL TWELVE +0xA3A1 0xFF01 #FULLWIDTH EXCLAMATION MARK +0xA3A2 0xFF02 #FULLWIDTH QUOTATION MARK +0xA3A3 0xFF03 #FULLWIDTH NUMBER SIGN +0xA3A4 0xFFE5 #FULLWIDTH YEN SIGN +0xA3A5 0xFF05 #FULLWIDTH PERCENT SIGN +0xA3A6 0xFF06 #FULLWIDTH AMPERSAND +0xA3A7 0xFF07 #FULLWIDTH APOSTROPHE +0xA3A8 0xFF08 #FULLWIDTH LEFT PARENTHESIS +0xA3A9 0xFF09 #FULLWIDTH RIGHT PARENTHESIS +0xA3AA 0xFF0A #FULLWIDTH ASTERISK +0xA3AB 0xFF0B #FULLWIDTH PLUS SIGN +0xA3AC 0xFF0C #FULLWIDTH COMMA +0xA3AD 0xFF0D #FULLWIDTH HYPHEN-MINUS +0xA3AE 0xFF0E #FULLWIDTH FULL STOP +0xA3AF 0xFF0F #FULLWIDTH SOLIDUS +0xA3B0 0xFF10 #FULLWIDTH DIGIT ZERO +0xA3B1 0xFF11 #FULLWIDTH DIGIT ONE +0xA3B2 0xFF12 #FULLWIDTH DIGIT TWO +0xA3B3 0xFF13 #FULLWIDTH DIGIT THREE +0xA3B4 0xFF14 #FULLWIDTH DIGIT FOUR +0xA3B5 0xFF15 #FULLWIDTH DIGIT FIVE +0xA3B6 0xFF16 #FULLWIDTH DIGIT SIX +0xA3B7 0xFF17 #FULLWIDTH DIGIT SEVEN +0xA3B8 0xFF18 #FULLWIDTH DIGIT EIGHT +0xA3B9 0xFF19 #FULLWIDTH DIGIT NINE +0xA3BA 0xFF1A #FULLWIDTH COLON +0xA3BB 0xFF1B #FULLWIDTH SEMICOLON +0xA3BC 0xFF1C #FULLWIDTH LESS-THAN SIGN +0xA3BD 0xFF1D #FULLWIDTH EQUALS SIGN +0xA3BE 0xFF1E #FULLWIDTH GREATER-THAN SIGN +0xA3BF 0xFF1F #FULLWIDTH QUESTION MARK +0xA3C0 0xFF20 #FULLWIDTH COMMERCIAL AT +0xA3C1 0xFF21 #FULLWIDTH LATIN CAPITAL LETTER A +0xA3C2 0xFF22 #FULLWIDTH LATIN CAPITAL LETTER B +0xA3C3 0xFF23 #FULLWIDTH LATIN CAPITAL LETTER C +0xA3C4 0xFF24 #FULLWIDTH LATIN CAPITAL LETTER D +0xA3C5 0xFF25 #FULLWIDTH LATIN CAPITAL LETTER E +0xA3C6 0xFF26 #FULLWIDTH LATIN CAPITAL LETTER F +0xA3C7 0xFF27 #FULLWIDTH LATIN CAPITAL LETTER G +0xA3C8 0xFF28 #FULLWIDTH LATIN CAPITAL LETTER H +0xA3C9 0xFF29 #FULLWIDTH LATIN CAPITAL LETTER I +0xA3CA 0xFF2A #FULLWIDTH LATIN CAPITAL LETTER J +0xA3CB 0xFF2B #FULLWIDTH LATIN CAPITAL LETTER K +0xA3CC 0xFF2C #FULLWIDTH LATIN CAPITAL LETTER L +0xA3CD 0xFF2D #FULLWIDTH LATIN CAPITAL LETTER M +0xA3CE 0xFF2E #FULLWIDTH LATIN CAPITAL LETTER N +0xA3CF 0xFF2F #FULLWIDTH LATIN CAPITAL LETTER O +0xA3D0 0xFF30 #FULLWIDTH LATIN CAPITAL LETTER P +0xA3D1 0xFF31 #FULLWIDTH LATIN CAPITAL LETTER Q +0xA3D2 0xFF32 #FULLWIDTH LATIN CAPITAL LETTER R +0xA3D3 0xFF33 #FULLWIDTH LATIN CAPITAL LETTER S +0xA3D4 0xFF34 #FULLWIDTH LATIN CAPITAL LETTER T +0xA3D5 0xFF35 #FULLWIDTH LATIN CAPITAL LETTER U +0xA3D6 0xFF36 #FULLWIDTH LATIN CAPITAL LETTER V +0xA3D7 0xFF37 #FULLWIDTH LATIN CAPITAL LETTER W +0xA3D8 0xFF38 #FULLWIDTH LATIN CAPITAL LETTER X +0xA3D9 0xFF39 #FULLWIDTH LATIN CAPITAL LETTER Y +0xA3DA 0xFF3A #FULLWIDTH LATIN CAPITAL LETTER Z +0xA3DB 0xFF3B #FULLWIDTH LEFT SQUARE BRACKET +0xA3DC 0xFF3C #FULLWIDTH REVERSE SOLIDUS +0xA3DD 0xFF3D #FULLWIDTH RIGHT SQUARE BRACKET +0xA3DE 0xFF3E #FULLWIDTH CIRCUMFLEX ACCENT +0xA3DF 0xFF3F #FULLWIDTH LOW LINE +0xA3E0 0xFF40 #FULLWIDTH GRAVE ACCENT +0xA3E1 0xFF41 #FULLWIDTH LATIN SMALL LETTER A +0xA3E2 0xFF42 #FULLWIDTH LATIN SMALL LETTER B +0xA3E3 0xFF43 #FULLWIDTH LATIN SMALL LETTER C +0xA3E4 0xFF44 #FULLWIDTH LATIN SMALL LETTER D +0xA3E5 0xFF45 #FULLWIDTH LATIN SMALL LETTER E +0xA3E6 0xFF46 #FULLWIDTH LATIN SMALL LETTER F +0xA3E7 0xFF47 #FULLWIDTH LATIN SMALL LETTER G +0xA3E8 0xFF48 #FULLWIDTH LATIN SMALL LETTER H +0xA3E9 0xFF49 #FULLWIDTH LATIN SMALL LETTER I +0xA3EA 0xFF4A #FULLWIDTH LATIN SMALL LETTER J +0xA3EB 0xFF4B #FULLWIDTH LATIN SMALL LETTER K +0xA3EC 0xFF4C #FULLWIDTH LATIN SMALL LETTER L +0xA3ED 0xFF4D #FULLWIDTH LATIN SMALL LETTER M +0xA3EE 0xFF4E #FULLWIDTH LATIN SMALL LETTER N +0xA3EF 0xFF4F #FULLWIDTH LATIN SMALL LETTER O +0xA3F0 0xFF50 #FULLWIDTH LATIN SMALL LETTER P +0xA3F1 0xFF51 #FULLWIDTH LATIN SMALL LETTER Q +0xA3F2 0xFF52 #FULLWIDTH LATIN SMALL LETTER R +0xA3F3 0xFF53 #FULLWIDTH LATIN SMALL LETTER S +0xA3F4 0xFF54 #FULLWIDTH LATIN SMALL LETTER T +0xA3F5 0xFF55 #FULLWIDTH LATIN SMALL LETTER U +0xA3F6 0xFF56 #FULLWIDTH LATIN SMALL LETTER V +0xA3F7 0xFF57 #FULLWIDTH LATIN SMALL LETTER W +0xA3F8 0xFF58 #FULLWIDTH LATIN SMALL LETTER X +0xA3F9 0xFF59 #FULLWIDTH LATIN SMALL LETTER Y +0xA3FA 0xFF5A #FULLWIDTH LATIN SMALL LETTER Z +0xA3FB 0xFF5B #FULLWIDTH LEFT CURLY BRACKET +0xA3FC 0xFF5C #FULLWIDTH VERTICAL LINE +0xA3FD 0xFF5D #FULLWIDTH RIGHT CURLY BRACKET +0xA3FE 0xFFE3 #FULLWIDTH MACRON +0xA4A1 0x3041 #HIRAGANA LETTER SMALL A +0xA4A2 0x3042 #HIRAGANA LETTER A +0xA4A3 0x3043 #HIRAGANA LETTER SMALL I +0xA4A4 0x3044 #HIRAGANA LETTER I +0xA4A5 0x3045 #HIRAGANA LETTER SMALL U +0xA4A6 0x3046 #HIRAGANA LETTER U +0xA4A7 0x3047 #HIRAGANA LETTER SMALL E +0xA4A8 0x3048 #HIRAGANA LETTER E +0xA4A9 0x3049 #HIRAGANA LETTER SMALL O +0xA4AA 0x304A #HIRAGANA LETTER O +0xA4AB 0x304B #HIRAGANA LETTER KA +0xA4AC 0x304C #HIRAGANA LETTER GA +0xA4AD 0x304D #HIRAGANA LETTER KI +0xA4AE 0x304E #HIRAGANA LETTER GI +0xA4AF 0x304F #HIRAGANA LETTER KU +0xA4B0 0x3050 #HIRAGANA LETTER GU +0xA4B1 0x3051 #HIRAGANA LETTER KE +0xA4B2 0x3052 #HIRAGANA LETTER GE +0xA4B3 0x3053 #HIRAGANA LETTER KO +0xA4B4 0x3054 #HIRAGANA LETTER GO +0xA4B5 0x3055 #HIRAGANA LETTER SA +0xA4B6 0x3056 #HIRAGANA LETTER ZA +0xA4B7 0x3057 #HIRAGANA LETTER SI +0xA4B8 0x3058 #HIRAGANA LETTER ZI +0xA4B9 0x3059 #HIRAGANA LETTER SU +0xA4BA 0x305A #HIRAGANA LETTER ZU +0xA4BB 0x305B #HIRAGANA LETTER SE +0xA4BC 0x305C #HIRAGANA LETTER ZE +0xA4BD 0x305D #HIRAGANA LETTER SO +0xA4BE 0x305E #HIRAGANA LETTER ZO +0xA4BF 0x305F #HIRAGANA LETTER TA +0xA4C0 0x3060 #HIRAGANA LETTER DA +0xA4C1 0x3061 #HIRAGANA LETTER TI +0xA4C2 0x3062 #HIRAGANA LETTER DI +0xA4C3 0x3063 #HIRAGANA LETTER SMALL TU +0xA4C4 0x3064 #HIRAGANA LETTER TU +0xA4C5 0x3065 #HIRAGANA LETTER DU +0xA4C6 0x3066 #HIRAGANA LETTER TE +0xA4C7 0x3067 #HIRAGANA LETTER DE +0xA4C8 0x3068 #HIRAGANA LETTER TO +0xA4C9 0x3069 #HIRAGANA LETTER DO +0xA4CA 0x306A #HIRAGANA LETTER NA +0xA4CB 0x306B #HIRAGANA LETTER NI +0xA4CC 0x306C #HIRAGANA LETTER NU +0xA4CD 0x306D #HIRAGANA LETTER NE +0xA4CE 0x306E #HIRAGANA LETTER NO +0xA4CF 0x306F #HIRAGANA LETTER HA +0xA4D0 0x3070 #HIRAGANA LETTER BA +0xA4D1 0x3071 #HIRAGANA LETTER PA +0xA4D2 0x3072 #HIRAGANA LETTER HI +0xA4D3 0x3073 #HIRAGANA LETTER BI +0xA4D4 0x3074 #HIRAGANA LETTER PI +0xA4D5 0x3075 #HIRAGANA LETTER HU +0xA4D6 0x3076 #HIRAGANA LETTER BU +0xA4D7 0x3077 #HIRAGANA LETTER PU +0xA4D8 0x3078 #HIRAGANA LETTER HE +0xA4D9 0x3079 #HIRAGANA LETTER BE +0xA4DA 0x307A #HIRAGANA LETTER PE +0xA4DB 0x307B #HIRAGANA LETTER HO +0xA4DC 0x307C #HIRAGANA LETTER BO +0xA4DD 0x307D #HIRAGANA LETTER PO +0xA4DE 0x307E #HIRAGANA LETTER MA +0xA4DF 0x307F #HIRAGANA LETTER MI +0xA4E0 0x3080 #HIRAGANA LETTER MU +0xA4E1 0x3081 #HIRAGANA LETTER ME +0xA4E2 0x3082 #HIRAGANA LETTER MO +0xA4E3 0x3083 #HIRAGANA LETTER SMALL YA +0xA4E4 0x3084 #HIRAGANA LETTER YA +0xA4E5 0x3085 #HIRAGANA LETTER SMALL YU +0xA4E6 0x3086 #HIRAGANA LETTER YU +0xA4E7 0x3087 #HIRAGANA LETTER SMALL YO +0xA4E8 0x3088 #HIRAGANA LETTER YO +0xA4E9 0x3089 #HIRAGANA LETTER RA +0xA4EA 0x308A #HIRAGANA LETTER RI +0xA4EB 0x308B #HIRAGANA LETTER RU +0xA4EC 0x308C #HIRAGANA LETTER RE +0xA4ED 0x308D #HIRAGANA LETTER RO +0xA4EE 0x308E #HIRAGANA LETTER SMALL WA +0xA4EF 0x308F #HIRAGANA LETTER WA +0xA4F0 0x3090 #HIRAGANA LETTER WI +0xA4F1 0x3091 #HIRAGANA LETTER WE +0xA4F2 0x3092 #HIRAGANA LETTER WO +0xA4F3 0x3093 #HIRAGANA LETTER N +0xA5A1 0x30A1 #KATAKANA LETTER SMALL A +0xA5A2 0x30A2 #KATAKANA LETTER A +0xA5A3 0x30A3 #KATAKANA LETTER SMALL I +0xA5A4 0x30A4 #KATAKANA LETTER I +0xA5A5 0x30A5 #KATAKANA LETTER SMALL U +0xA5A6 0x30A6 #KATAKANA LETTER U +0xA5A7 0x30A7 #KATAKANA LETTER SMALL E +0xA5A8 0x30A8 #KATAKANA LETTER E +0xA5A9 0x30A9 #KATAKANA LETTER SMALL O +0xA5AA 0x30AA #KATAKANA LETTER O +0xA5AB 0x30AB #KATAKANA LETTER KA +0xA5AC 0x30AC #KATAKANA LETTER GA +0xA5AD 0x30AD #KATAKANA LETTER KI +0xA5AE 0x30AE #KATAKANA LETTER GI +0xA5AF 0x30AF #KATAKANA LETTER KU +0xA5B0 0x30B0 #KATAKANA LETTER GU +0xA5B1 0x30B1 #KATAKANA LETTER KE +0xA5B2 0x30B2 #KATAKANA LETTER GE +0xA5B3 0x30B3 #KATAKANA LETTER KO +0xA5B4 0x30B4 #KATAKANA LETTER GO +0xA5B5 0x30B5 #KATAKANA LETTER SA +0xA5B6 0x30B6 #KATAKANA LETTER ZA +0xA5B7 0x30B7 #KATAKANA LETTER SI +0xA5B8 0x30B8 #KATAKANA LETTER ZI +0xA5B9 0x30B9 #KATAKANA LETTER SU +0xA5BA 0x30BA #KATAKANA LETTER ZU +0xA5BB 0x30BB #KATAKANA LETTER SE +0xA5BC 0x30BC #KATAKANA LETTER ZE +0xA5BD 0x30BD #KATAKANA LETTER SO +0xA5BE 0x30BE #KATAKANA LETTER ZO +0xA5BF 0x30BF #KATAKANA LETTER TA +0xA5C0 0x30C0 #KATAKANA LETTER DA +0xA5C1 0x30C1 #KATAKANA LETTER TI +0xA5C2 0x30C2 #KATAKANA LETTER DI +0xA5C3 0x30C3 #KATAKANA LETTER SMALL TU +0xA5C4 0x30C4 #KATAKANA LETTER TU +0xA5C5 0x30C5 #KATAKANA LETTER DU +0xA5C6 0x30C6 #KATAKANA LETTER TE +0xA5C7 0x30C7 #KATAKANA LETTER DE +0xA5C8 0x30C8 #KATAKANA LETTER TO +0xA5C9 0x30C9 #KATAKANA LETTER DO +0xA5CA 0x30CA #KATAKANA LETTER NA +0xA5CB 0x30CB #KATAKANA LETTER NI +0xA5CC 0x30CC #KATAKANA LETTER NU +0xA5CD 0x30CD #KATAKANA LETTER NE +0xA5CE 0x30CE #KATAKANA LETTER NO +0xA5CF 0x30CF #KATAKANA LETTER HA +0xA5D0 0x30D0 #KATAKANA LETTER BA +0xA5D1 0x30D1 #KATAKANA LETTER PA +0xA5D2 0x30D2 #KATAKANA LETTER HI +0xA5D3 0x30D3 #KATAKANA LETTER BI +0xA5D4 0x30D4 #KATAKANA LETTER PI +0xA5D5 0x30D5 #KATAKANA LETTER HU +0xA5D6 0x30D6 #KATAKANA LETTER BU +0xA5D7 0x30D7 #KATAKANA LETTER PU +0xA5D8 0x30D8 #KATAKANA LETTER HE +0xA5D9 0x30D9 #KATAKANA LETTER BE +0xA5DA 0x30DA #KATAKANA LETTER PE +0xA5DB 0x30DB #KATAKANA LETTER HO +0xA5DC 0x30DC #KATAKANA LETTER BO +0xA5DD 0x30DD #KATAKANA LETTER PO +0xA5DE 0x30DE #KATAKANA LETTER MA +0xA5DF 0x30DF #KATAKANA LETTER MI +0xA5E0 0x30E0 #KATAKANA LETTER MU +0xA5E1 0x30E1 #KATAKANA LETTER ME +0xA5E2 0x30E2 #KATAKANA LETTER MO +0xA5E3 0x30E3 #KATAKANA LETTER SMALL YA +0xA5E4 0x30E4 #KATAKANA LETTER YA +0xA5E5 0x30E5 #KATAKANA LETTER SMALL YU +0xA5E6 0x30E6 #KATAKANA LETTER YU +0xA5E7 0x30E7 #KATAKANA LETTER SMALL YO +0xA5E8 0x30E8 #KATAKANA LETTER YO +0xA5E9 0x30E9 #KATAKANA LETTER RA +0xA5EA 0x30EA #KATAKANA LETTER RI +0xA5EB 0x30EB #KATAKANA LETTER RU +0xA5EC 0x30EC #KATAKANA LETTER RE +0xA5ED 0x30ED #KATAKANA LETTER RO +0xA5EE 0x30EE #KATAKANA LETTER SMALL WA +0xA5EF 0x30EF #KATAKANA LETTER WA +0xA5F0 0x30F0 #KATAKANA LETTER WI +0xA5F1 0x30F1 #KATAKANA LETTER WE +0xA5F2 0x30F2 #KATAKANA LETTER WO +0xA5F3 0x30F3 #KATAKANA LETTER N +0xA5F4 0x30F4 #KATAKANA LETTER VU +0xA5F5 0x30F5 #KATAKANA LETTER SMALL KA +0xA5F6 0x30F6 #KATAKANA LETTER SMALL KE +0xA6A1 0x0391 #GREEK CAPITAL LETTER ALPHA +0xA6A2 0x0392 #GREEK CAPITAL LETTER BETA +0xA6A3 0x0393 #GREEK CAPITAL LETTER GAMMA +0xA6A4 0x0394 #GREEK CAPITAL LETTER DELTA +0xA6A5 0x0395 #GREEK CAPITAL LETTER EPSILON +0xA6A6 0x0396 #GREEK CAPITAL LETTER ZETA +0xA6A7 0x0397 #GREEK CAPITAL LETTER ETA +0xA6A8 0x0398 #GREEK CAPITAL LETTER THETA +0xA6A9 0x0399 #GREEK CAPITAL LETTER IOTA +0xA6AA 0x039A #GREEK CAPITAL LETTER KAPPA +0xA6AB 0x039B #GREEK CAPITAL LETTER LAMDA +0xA6AC 0x039C #GREEK CAPITAL LETTER MU +0xA6AD 0x039D #GREEK CAPITAL LETTER NU +0xA6AE 0x039E #GREEK CAPITAL LETTER XI +0xA6AF 0x039F #GREEK CAPITAL LETTER OMICRON +0xA6B0 0x03A0 #GREEK CAPITAL LETTER PI +0xA6B1 0x03A1 #GREEK CAPITAL LETTER RHO +0xA6B2 0x03A3 #GREEK CAPITAL LETTER SIGMA +0xA6B3 0x03A4 #GREEK CAPITAL LETTER TAU +0xA6B4 0x03A5 #GREEK CAPITAL LETTER UPSILON +0xA6B5 0x03A6 #GREEK CAPITAL LETTER PHI +0xA6B6 0x03A7 #GREEK CAPITAL LETTER CHI +0xA6B7 0x03A8 #GREEK CAPITAL LETTER PSI +0xA6B8 0x03A9 #GREEK CAPITAL LETTER OMEGA +0xA6C1 0x03B1 #GREEK SMALL LETTER ALPHA +0xA6C2 0x03B2 #GREEK SMALL LETTER BETA +0xA6C3 0x03B3 #GREEK SMALL LETTER GAMMA +0xA6C4 0x03B4 #GREEK SMALL LETTER DELTA +0xA6C5 0x03B5 #GREEK SMALL LETTER EPSILON +0xA6C6 0x03B6 #GREEK SMALL LETTER ZETA +0xA6C7 0x03B7 #GREEK SMALL LETTER ETA +0xA6C8 0x03B8 #GREEK SMALL LETTER THETA +0xA6C9 0x03B9 #GREEK SMALL LETTER IOTA +0xA6CA 0x03BA #GREEK SMALL LETTER KAPPA +0xA6CB 0x03BB #GREEK SMALL LETTER LAMDA +0xA6CC 0x03BC #GREEK SMALL LETTER MU +0xA6CD 0x03BD #GREEK SMALL LETTER NU +0xA6CE 0x03BE #GREEK SMALL LETTER XI +0xA6CF 0x03BF #GREEK SMALL LETTER OMICRON +0xA6D0 0x03C0 #GREEK SMALL LETTER PI +0xA6D1 0x03C1 #GREEK SMALL LETTER RHO +0xA6D2 0x03C3 #GREEK SMALL LETTER SIGMA +0xA6D3 0x03C4 #GREEK SMALL LETTER TAU +0xA6D4 0x03C5 #GREEK SMALL LETTER UPSILON +0xA6D5 0x03C6 #GREEK SMALL LETTER PHI +0xA6D6 0x03C7 #GREEK SMALL LETTER CHI +0xA6D7 0x03C8 #GREEK SMALL LETTER PSI +0xA6D8 0x03C9 #GREEK SMALL LETTER OMEGA +0xA6E0 0xFE35 #PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS +0xA6E1 0xFE36 #PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS +0xA6E2 0xFE39 #PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET +0xA6E3 0xFE3A #PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET +0xA6E4 0xFE3F #PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET +0xA6E5 0xFE40 #PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET +0xA6E6 0xFE3D #PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET +0xA6E7 0xFE3E #PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET +0xA6E8 0xFE41 #PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +0xA6E9 0xFE42 #PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +0xA6EA 0xFE43 #PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +0xA6EB 0xFE44 #PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +0xA6EE 0xFE3B #PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET +0xA6EF 0xFE3C #PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET +0xA6F0 0xFE37 #PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET +0xA6F1 0xFE38 #PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET +0xA6F2 0xFE31 #PRESENTATION FORM FOR VERTICAL EM DASH +0xA6F4 0xFE33 #PRESENTATION FORM FOR VERTICAL LOW LINE +0xA6F5 0xFE34 #PRESENTATION FORM FOR VERTICAL WAVY LOW LINE +0xA7A1 0x0410 #CYRILLIC CAPITAL LETTER A +0xA7A2 0x0411 #CYRILLIC CAPITAL LETTER BE +0xA7A3 0x0412 #CYRILLIC CAPITAL LETTER VE +0xA7A4 0x0413 #CYRILLIC CAPITAL LETTER GHE +0xA7A5 0x0414 #CYRILLIC CAPITAL LETTER DE +0xA7A6 0x0415 #CYRILLIC CAPITAL LETTER IE +0xA7A7 0x0401 #CYRILLIC CAPITAL LETTER IO +0xA7A8 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0xA7A9 0x0417 #CYRILLIC CAPITAL LETTER ZE +0xA7AA 0x0418 #CYRILLIC CAPITAL LETTER I +0xA7AB 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0xA7AC 0x041A #CYRILLIC CAPITAL LETTER KA +0xA7AD 0x041B #CYRILLIC CAPITAL LETTER EL +0xA7AE 0x041C #CYRILLIC CAPITAL LETTER EM +0xA7AF 0x041D #CYRILLIC CAPITAL LETTER EN +0xA7B0 0x041E #CYRILLIC CAPITAL LETTER O +0xA7B1 0x041F #CYRILLIC CAPITAL LETTER PE +0xA7B2 0x0420 #CYRILLIC CAPITAL LETTER ER +0xA7B3 0x0421 #CYRILLIC CAPITAL LETTER ES +0xA7B4 0x0422 #CYRILLIC CAPITAL LETTER TE +0xA7B5 0x0423 #CYRILLIC CAPITAL LETTER U +0xA7B6 0x0424 #CYRILLIC CAPITAL LETTER EF +0xA7B7 0x0425 #CYRILLIC CAPITAL LETTER HA +0xA7B8 0x0426 #CYRILLIC CAPITAL LETTER TSE +0xA7B9 0x0427 #CYRILLIC CAPITAL LETTER CHE +0xA7BA 0x0428 #CYRILLIC CAPITAL LETTER SHA +0xA7BB 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0xA7BC 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN +0xA7BD 0x042B #CYRILLIC CAPITAL LETTER YERU +0xA7BE 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0xA7BF 0x042D #CYRILLIC CAPITAL LETTER E +0xA7C0 0x042E #CYRILLIC CAPITAL LETTER YU +0xA7C1 0x042F #CYRILLIC CAPITAL LETTER YA +0xA7D1 0x0430 #CYRILLIC SMALL LETTER A +0xA7D2 0x0431 #CYRILLIC SMALL LETTER BE +0xA7D3 0x0432 #CYRILLIC SMALL LETTER VE +0xA7D4 0x0433 #CYRILLIC SMALL LETTER GHE +0xA7D5 0x0434 #CYRILLIC SMALL LETTER DE +0xA7D6 0x0435 #CYRILLIC SMALL LETTER IE +0xA7D7 0x0451 #CYRILLIC SMALL LETTER IO +0xA7D8 0x0436 #CYRILLIC SMALL LETTER ZHE +0xA7D9 0x0437 #CYRILLIC SMALL LETTER ZE +0xA7DA 0x0438 #CYRILLIC SMALL LETTER I +0xA7DB 0x0439 #CYRILLIC SMALL LETTER SHORT I +0xA7DC 0x043A #CYRILLIC SMALL LETTER KA +0xA7DD 0x043B #CYRILLIC SMALL LETTER EL +0xA7DE 0x043C #CYRILLIC SMALL LETTER EM +0xA7DF 0x043D #CYRILLIC SMALL LETTER EN +0xA7E0 0x043E #CYRILLIC SMALL LETTER O +0xA7E1 0x043F #CYRILLIC SMALL LETTER PE +0xA7E2 0x0440 #CYRILLIC SMALL LETTER ER +0xA7E3 0x0441 #CYRILLIC SMALL LETTER ES +0xA7E4 0x0442 #CYRILLIC SMALL LETTER TE +0xA7E5 0x0443 #CYRILLIC SMALL LETTER U +0xA7E6 0x0444 #CYRILLIC SMALL LETTER EF +0xA7E7 0x0445 #CYRILLIC SMALL LETTER HA +0xA7E8 0x0446 #CYRILLIC SMALL LETTER TSE +0xA7E9 0x0447 #CYRILLIC SMALL LETTER CHE +0xA7EA 0x0448 #CYRILLIC SMALL LETTER SHA +0xA7EB 0x0449 #CYRILLIC SMALL LETTER SHCHA +0xA7EC 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0xA7ED 0x044B #CYRILLIC SMALL LETTER YERU +0xA7EE 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0xA7EF 0x044D #CYRILLIC SMALL LETTER E +0xA7F0 0x044E #CYRILLIC SMALL LETTER YU +0xA7F1 0x044F #CYRILLIC SMALL LETTER YA +0xA840 0x02CA #MODIFIER LETTER ACUTE ACCENT +0xA841 0x02CB #MODIFIER LETTER GRAVE ACCENT +0xA842 0x02D9 #DOT ABOVE +0xA843 0x2013 #EN DASH +0xA844 0x2015 #HORIZONTAL BAR +0xA845 0x2025 #TWO DOT LEADER +0xA846 0x2035 #REVERSED PRIME +0xA847 0x2105 #CARE OF +0xA848 0x2109 #DEGREE FAHRENHEIT +0xA849 0x2196 #NORTH WEST ARROW +0xA84A 0x2197 #NORTH EAST ARROW +0xA84B 0x2198 #SOUTH EAST ARROW +0xA84C 0x2199 #SOUTH WEST ARROW +0xA84D 0x2215 #DIVISION SLASH +0xA84E 0x221F #RIGHT ANGLE +0xA84F 0x2223 #DIVIDES +0xA850 0x2252 #APPROXIMATELY EQUAL TO OR THE IMAGE OF +0xA851 0x2266 #LESS-THAN OVER EQUAL TO +0xA852 0x2267 #GREATER-THAN OVER EQUAL TO +0xA853 0x22BF #RIGHT TRIANGLE +0xA854 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL +0xA855 0x2551 #BOX DRAWINGS DOUBLE VERTICAL +0xA856 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xA857 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xA858 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xA859 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xA85A 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xA85B 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT +0xA85C 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xA85D 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xA85E 0x255A #BOX DRAWINGS DOUBLE UP AND RIGHT +0xA85F 0x255B #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xA860 0x255C #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xA861 0x255D #BOX DRAWINGS DOUBLE UP AND LEFT +0xA862 0x255E #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xA863 0x255F #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xA864 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xA865 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xA866 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xA867 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xA868 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xA869 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xA86A 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xA86B 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xA86C 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xA86D 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xA86E 0x256A #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xA86F 0x256B #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xA870 0x256C #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xA871 0x256D #BOX DRAWINGS LIGHT ARC DOWN AND RIGHT +0xA872 0x256E #BOX DRAWINGS LIGHT ARC DOWN AND LEFT +0xA873 0x256F #BOX DRAWINGS LIGHT ARC UP AND LEFT +0xA874 0x2570 #BOX DRAWINGS LIGHT ARC UP AND RIGHT +0xA875 0x2571 #BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT +0xA876 0x2572 #BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT +0xA877 0x2573 #BOX DRAWINGS LIGHT DIAGONAL CROSS +0xA878 0x2581 #LOWER ONE EIGHTH BLOCK +0xA879 0x2582 #LOWER ONE QUARTER BLOCK +0xA87A 0x2583 #LOWER THREE EIGHTHS BLOCK +0xA87B 0x2584 #LOWER HALF BLOCK +0xA87C 0x2585 #LOWER FIVE EIGHTHS BLOCK +0xA87D 0x2586 #LOWER THREE QUARTERS BLOCK +0xA87E 0x2587 #LOWER SEVEN EIGHTHS BLOCK +0xA880 0x2588 #FULL BLOCK +0xA881 0x2589 #LEFT SEVEN EIGHTHS BLOCK +0xA882 0x258A #LEFT THREE QUARTERS BLOCK +0xA883 0x258B #LEFT FIVE EIGHTHS BLOCK +0xA884 0x258C #LEFT HALF BLOCK +0xA885 0x258D #LEFT THREE EIGHTHS BLOCK +0xA886 0x258E #LEFT ONE QUARTER BLOCK +0xA887 0x258F #LEFT ONE EIGHTH BLOCK +0xA888 0x2593 #DARK SHADE +0xA889 0x2594 #UPPER ONE EIGHTH BLOCK +0xA88A 0x2595 #RIGHT ONE EIGHTH BLOCK +0xA88B 0x25BC #BLACK DOWN-POINTING TRIANGLE +0xA88C 0x25BD #WHITE DOWN-POINTING TRIANGLE +0xA88D 0x25E2 #BLACK LOWER RIGHT TRIANGLE +0xA88E 0x25E3 #BLACK LOWER LEFT TRIANGLE +0xA88F 0x25E4 #BLACK UPPER LEFT TRIANGLE +0xA890 0x25E5 #BLACK UPPER RIGHT TRIANGLE +0xA891 0x2609 #SUN +0xA892 0x2295 #CIRCLED PLUS +0xA893 0x3012 #POSTAL MARK +0xA894 0x301D #REVERSED DOUBLE PRIME QUOTATION MARK +0xA895 0x301E #DOUBLE PRIME QUOTATION MARK +0xA8A1 0x0101 #LATIN SMALL LETTER A WITH MACRON +0xA8A2 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0xA8A3 0x01CE #LATIN SMALL LETTER A WITH CARON +0xA8A4 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0xA8A5 0x0113 #LATIN SMALL LETTER E WITH MACRON +0xA8A6 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xA8A7 0x011B #LATIN SMALL LETTER E WITH CARON +0xA8A8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0xA8A9 0x012B #LATIN SMALL LETTER I WITH MACRON +0xA8AA 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0xA8AB 0x01D0 #LATIN SMALL LETTER I WITH CARON +0xA8AC 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0xA8AD 0x014D #LATIN SMALL LETTER O WITH MACRON +0xA8AE 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xA8AF 0x01D2 #LATIN SMALL LETTER O WITH CARON +0xA8B0 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xA8B1 0x016B #LATIN SMALL LETTER U WITH MACRON +0xA8B2 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xA8B3 0x01D4 #LATIN SMALL LETTER U WITH CARON +0xA8B4 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xA8B5 0x01D6 #LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +0xA8B6 0x01D8 #LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +0xA8B7 0x01DA #LATIN SMALL LETTER U WITH DIAERESIS AND CARON +0xA8B8 0x01DC #LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE +0xA8B9 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xA8BA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0xA8BB 0x0251 #LATIN SMALL LETTER ALPHA +0xA8BD 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0xA8BE 0x0148 #LATIN SMALL LETTER N WITH CARON +0xA8C0 0x0261 #LATIN SMALL LETTER SCRIPT G +0xA8C5 0x3105 #BOPOMOFO LETTER B +0xA8C6 0x3106 #BOPOMOFO LETTER P +0xA8C7 0x3107 #BOPOMOFO LETTER M +0xA8C8 0x3108 #BOPOMOFO LETTER F +0xA8C9 0x3109 #BOPOMOFO LETTER D +0xA8CA 0x310A #BOPOMOFO LETTER T +0xA8CB 0x310B #BOPOMOFO LETTER N +0xA8CC 0x310C #BOPOMOFO LETTER L +0xA8CD 0x310D #BOPOMOFO LETTER G +0xA8CE 0x310E #BOPOMOFO LETTER K +0xA8CF 0x310F #BOPOMOFO LETTER H +0xA8D0 0x3110 #BOPOMOFO LETTER J +0xA8D1 0x3111 #BOPOMOFO LETTER Q +0xA8D2 0x3112 #BOPOMOFO LETTER X +0xA8D3 0x3113 #BOPOMOFO LETTER ZH +0xA8D4 0x3114 #BOPOMOFO LETTER CH +0xA8D5 0x3115 #BOPOMOFO LETTER SH +0xA8D6 0x3116 #BOPOMOFO LETTER R +0xA8D7 0x3117 #BOPOMOFO LETTER Z +0xA8D8 0x3118 #BOPOMOFO LETTER C +0xA8D9 0x3119 #BOPOMOFO LETTER S +0xA8DA 0x311A #BOPOMOFO LETTER A +0xA8DB 0x311B #BOPOMOFO LETTER O +0xA8DC 0x311C #BOPOMOFO LETTER E +0xA8DD 0x311D #BOPOMOFO LETTER EH +0xA8DE 0x311E #BOPOMOFO LETTER AI +0xA8DF 0x311F #BOPOMOFO LETTER EI +0xA8E0 0x3120 #BOPOMOFO LETTER AU +0xA8E1 0x3121 #BOPOMOFO LETTER OU +0xA8E2 0x3122 #BOPOMOFO LETTER AN +0xA8E3 0x3123 #BOPOMOFO LETTER EN +0xA8E4 0x3124 #BOPOMOFO LETTER ANG +0xA8E5 0x3125 #BOPOMOFO LETTER ENG +0xA8E6 0x3126 #BOPOMOFO LETTER ER +0xA8E7 0x3127 #BOPOMOFO LETTER I +0xA8E8 0x3128 #BOPOMOFO LETTER U +0xA8E9 0x3129 #BOPOMOFO LETTER IU +0xA940 0x3021 #HANGZHOU NUMERAL ONE +0xA941 0x3022 #HANGZHOU NUMERAL TWO +0xA942 0x3023 #HANGZHOU NUMERAL THREE +0xA943 0x3024 #HANGZHOU NUMERAL FOUR +0xA944 0x3025 #HANGZHOU NUMERAL FIVE +0xA945 0x3026 #HANGZHOU NUMERAL SIX +0xA946 0x3027 #HANGZHOU NUMERAL SEVEN +0xA947 0x3028 #HANGZHOU NUMERAL EIGHT +0xA948 0x3029 #HANGZHOU NUMERAL NINE +0xA949 0x32A3 #CIRCLED IDEOGRAPH CORRECT +0xA94A 0x338E #SQUARE MG +0xA94B 0x338F #SQUARE KG +0xA94C 0x339C #SQUARE MM +0xA94D 0x339D #SQUARE CM +0xA94E 0x339E #SQUARE KM +0xA94F 0x33A1 #SQUARE M SQUARED +0xA950 0x33C4 #SQUARE CC +0xA951 0x33CE #SQUARE KM CAPITAL +0xA952 0x33D1 #SQUARE LN +0xA953 0x33D2 #SQUARE LOG +0xA954 0x33D5 #SQUARE MIL +0xA955 0xFE30 #PRESENTATION FORM FOR VERTICAL TWO DOT LEADER +0xA956 0xFFE2 #FULLWIDTH NOT SIGN +0xA957 0xFFE4 #FULLWIDTH BROKEN BAR +0xA959 0x2121 #TELEPHONE SIGN +0xA95A 0x3231 #PARENTHESIZED IDEOGRAPH STOCK +0xA95C 0x2010 #HYPHEN +0xA960 0x30FC #KATAKANA-HIRAGANA PROLONGED SOUND MARK +0xA961 0x309B #KATAKANA-HIRAGANA VOICED SOUND MARK +0xA962 0x309C #KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +0xA963 0x30FD #KATAKANA ITERATION MARK +0xA964 0x30FE #KATAKANA VOICED ITERATION MARK +0xA965 0x3006 #IDEOGRAPHIC CLOSING MARK +0xA966 0x309D #HIRAGANA ITERATION MARK +0xA967 0x309E #HIRAGANA VOICED ITERATION MARK +0xA968 0xFE49 #DASHED OVERLINE +0xA969 0xFE4A #CENTRELINE OVERLINE +0xA96A 0xFE4B #WAVY OVERLINE +0xA96B 0xFE4C #DOUBLE WAVY OVERLINE +0xA96C 0xFE4D #DASHED LOW LINE +0xA96D 0xFE4E #CENTRELINE LOW LINE +0xA96E 0xFE4F #WAVY LOW LINE +0xA96F 0xFE50 #SMALL COMMA +0xA970 0xFE51 #SMALL IDEOGRAPHIC COMMA +0xA971 0xFE52 #SMALL FULL STOP +0xA972 0xFE54 #SMALL SEMICOLON +0xA973 0xFE55 #SMALL COLON +0xA974 0xFE56 #SMALL QUESTION MARK +0xA975 0xFE57 #SMALL EXCLAMATION MARK +0xA976 0xFE59 #SMALL LEFT PARENTHESIS +0xA977 0xFE5A #SMALL RIGHT PARENTHESIS +0xA978 0xFE5B #SMALL LEFT CURLY BRACKET +0xA979 0xFE5C #SMALL RIGHT CURLY BRACKET +0xA97A 0xFE5D #SMALL LEFT TORTOISE SHELL BRACKET +0xA97B 0xFE5E #SMALL RIGHT TORTOISE SHELL BRACKET +0xA97C 0xFE5F #SMALL NUMBER SIGN +0xA97D 0xFE60 #SMALL AMPERSAND +0xA97E 0xFE61 #SMALL ASTERISK +0xA980 0xFE62 #SMALL PLUS SIGN +0xA981 0xFE63 #SMALL HYPHEN-MINUS +0xA982 0xFE64 #SMALL LESS-THAN SIGN +0xA983 0xFE65 #SMALL GREATER-THAN SIGN +0xA984 0xFE66 #SMALL EQUALS SIGN +0xA985 0xFE68 #SMALL REVERSE SOLIDUS +0xA986 0xFE69 #SMALL DOLLAR SIGN +0xA987 0xFE6A #SMALL PERCENT SIGN +0xA988 0xFE6B #SMALL COMMERCIAL AT +0xA996 0x3007 #IDEOGRAPHIC NUMBER ZERO +0xA9A4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xA9A5 0x2501 #BOX DRAWINGS HEAVY HORIZONTAL +0xA9A6 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xA9A7 0x2503 #BOX DRAWINGS HEAVY VERTICAL +0xA9A8 0x2504 #BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL +0xA9A9 0x2505 #BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL +0xA9AA 0x2506 #BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL +0xA9AB 0x2507 #BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL +0xA9AC 0x2508 #BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL +0xA9AD 0x2509 #BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL +0xA9AE 0x250A #BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL +0xA9AF 0x250B #BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL +0xA9B0 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xA9B1 0x250D #BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY +0xA9B2 0x250E #BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT +0xA9B3 0x250F #BOX DRAWINGS HEAVY DOWN AND RIGHT +0xA9B4 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xA9B5 0x2511 #BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY +0xA9B6 0x2512 #BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT +0xA9B7 0x2513 #BOX DRAWINGS HEAVY DOWN AND LEFT +0xA9B8 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xA9B9 0x2515 #BOX DRAWINGS UP LIGHT AND RIGHT HEAVY +0xA9BA 0x2516 #BOX DRAWINGS UP HEAVY AND RIGHT LIGHT +0xA9BB 0x2517 #BOX DRAWINGS HEAVY UP AND RIGHT +0xA9BC 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xA9BD 0x2519 #BOX DRAWINGS UP LIGHT AND LEFT HEAVY +0xA9BE 0x251A #BOX DRAWINGS UP HEAVY AND LEFT LIGHT +0xA9BF 0x251B #BOX DRAWINGS HEAVY UP AND LEFT +0xA9C0 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xA9C1 0x251D #BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY +0xA9C2 0x251E #BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT +0xA9C3 0x251F #BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT +0xA9C4 0x2520 #BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT +0xA9C5 0x2521 #BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY +0xA9C6 0x2522 #BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY +0xA9C7 0x2523 #BOX DRAWINGS HEAVY VERTICAL AND RIGHT +0xA9C8 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xA9C9 0x2525 #BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY +0xA9CA 0x2526 #BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT +0xA9CB 0x2527 #BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT +0xA9CC 0x2528 #BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT +0xA9CD 0x2529 #BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY +0xA9CE 0x252A #BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY +0xA9CF 0x252B #BOX DRAWINGS HEAVY VERTICAL AND LEFT +0xA9D0 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xA9D1 0x252D #BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT +0xA9D2 0x252E #BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT +0xA9D3 0x252F #BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY +0xA9D4 0x2530 #BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT +0xA9D5 0x2531 #BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY +0xA9D6 0x2532 #BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY +0xA9D7 0x2533 #BOX DRAWINGS HEAVY DOWN AND HORIZONTAL +0xA9D8 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xA9D9 0x2535 #BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT +0xA9DA 0x2536 #BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT +0xA9DB 0x2537 #BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY +0xA9DC 0x2538 #BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT +0xA9DD 0x2539 #BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY +0xA9DE 0x253A #BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY +0xA9DF 0x253B #BOX DRAWINGS HEAVY UP AND HORIZONTAL +0xA9E0 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xA9E1 0x253D #BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT +0xA9E2 0x253E #BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT +0xA9E3 0x253F #BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY +0xA9E4 0x2540 #BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT +0xA9E5 0x2541 #BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT +0xA9E6 0x2542 #BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT +0xA9E7 0x2543 #BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT +0xA9E8 0x2544 #BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT +0xA9E9 0x2545 #BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT +0xA9EA 0x2546 #BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT +0xA9EB 0x2547 #BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY +0xA9EC 0x2548 #BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY +0xA9ED 0x2549 #BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY +0xA9EE 0x254A #BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY +0xA9EF 0x254B #BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL +0xAA40 0x72DC #CJK UNIFIED IDEOGRAPH +0xAA41 0x72DD #CJK UNIFIED IDEOGRAPH +0xAA42 0x72DF #CJK UNIFIED IDEOGRAPH +0xAA43 0x72E2 #CJK UNIFIED IDEOGRAPH +0xAA44 0x72E3 #CJK UNIFIED IDEOGRAPH +0xAA45 0x72E4 #CJK UNIFIED IDEOGRAPH +0xAA46 0x72E5 #CJK UNIFIED IDEOGRAPH +0xAA47 0x72E6 #CJK UNIFIED IDEOGRAPH +0xAA48 0x72E7 #CJK UNIFIED IDEOGRAPH +0xAA49 0x72EA #CJK UNIFIED IDEOGRAPH +0xAA4A 0x72EB #CJK UNIFIED IDEOGRAPH +0xAA4B 0x72F5 #CJK UNIFIED IDEOGRAPH +0xAA4C 0x72F6 #CJK UNIFIED IDEOGRAPH +0xAA4D 0x72F9 #CJK UNIFIED IDEOGRAPH +0xAA4E 0x72FD #CJK UNIFIED IDEOGRAPH +0xAA4F 0x72FE #CJK UNIFIED IDEOGRAPH +0xAA50 0x72FF #CJK UNIFIED IDEOGRAPH +0xAA51 0x7300 #CJK UNIFIED IDEOGRAPH +0xAA52 0x7302 #CJK UNIFIED IDEOGRAPH +0xAA53 0x7304 #CJK UNIFIED IDEOGRAPH +0xAA54 0x7305 #CJK UNIFIED IDEOGRAPH +0xAA55 0x7306 #CJK UNIFIED IDEOGRAPH +0xAA56 0x7307 #CJK UNIFIED IDEOGRAPH +0xAA57 0x7308 #CJK UNIFIED IDEOGRAPH +0xAA58 0x7309 #CJK UNIFIED IDEOGRAPH +0xAA59 0x730B #CJK UNIFIED IDEOGRAPH +0xAA5A 0x730C #CJK UNIFIED IDEOGRAPH +0xAA5B 0x730D #CJK UNIFIED IDEOGRAPH +0xAA5C 0x730F #CJK UNIFIED IDEOGRAPH +0xAA5D 0x7310 #CJK UNIFIED IDEOGRAPH +0xAA5E 0x7311 #CJK UNIFIED IDEOGRAPH +0xAA5F 0x7312 #CJK UNIFIED IDEOGRAPH +0xAA60 0x7314 #CJK UNIFIED IDEOGRAPH +0xAA61 0x7318 #CJK UNIFIED IDEOGRAPH +0xAA62 0x7319 #CJK UNIFIED IDEOGRAPH +0xAA63 0x731A #CJK UNIFIED IDEOGRAPH +0xAA64 0x731F #CJK UNIFIED IDEOGRAPH +0xAA65 0x7320 #CJK UNIFIED IDEOGRAPH +0xAA66 0x7323 #CJK UNIFIED IDEOGRAPH +0xAA67 0x7324 #CJK UNIFIED IDEOGRAPH +0xAA68 0x7326 #CJK UNIFIED IDEOGRAPH +0xAA69 0x7327 #CJK UNIFIED IDEOGRAPH +0xAA6A 0x7328 #CJK UNIFIED IDEOGRAPH +0xAA6B 0x732D #CJK UNIFIED IDEOGRAPH +0xAA6C 0x732F #CJK UNIFIED IDEOGRAPH +0xAA6D 0x7330 #CJK UNIFIED IDEOGRAPH +0xAA6E 0x7332 #CJK UNIFIED IDEOGRAPH +0xAA6F 0x7333 #CJK UNIFIED IDEOGRAPH +0xAA70 0x7335 #CJK UNIFIED IDEOGRAPH +0xAA71 0x7336 #CJK UNIFIED IDEOGRAPH +0xAA72 0x733A #CJK UNIFIED IDEOGRAPH +0xAA73 0x733B #CJK UNIFIED IDEOGRAPH +0xAA74 0x733C #CJK UNIFIED IDEOGRAPH +0xAA75 0x733D #CJK UNIFIED IDEOGRAPH +0xAA76 0x7340 #CJK UNIFIED IDEOGRAPH +0xAA77 0x7341 #CJK UNIFIED IDEOGRAPH +0xAA78 0x7342 #CJK UNIFIED IDEOGRAPH +0xAA79 0x7343 #CJK UNIFIED IDEOGRAPH +0xAA7A 0x7344 #CJK UNIFIED IDEOGRAPH +0xAA7B 0x7345 #CJK UNIFIED IDEOGRAPH +0xAA7C 0x7346 #CJK UNIFIED IDEOGRAPH +0xAA7D 0x7347 #CJK UNIFIED IDEOGRAPH +0xAA7E 0x7348 #CJK UNIFIED IDEOGRAPH +0xAA80 0x7349 #CJK UNIFIED IDEOGRAPH +0xAA81 0x734A #CJK UNIFIED IDEOGRAPH +0xAA82 0x734B #CJK UNIFIED IDEOGRAPH +0xAA83 0x734C #CJK UNIFIED IDEOGRAPH +0xAA84 0x734E #CJK UNIFIED IDEOGRAPH +0xAA85 0x734F #CJK UNIFIED IDEOGRAPH +0xAA86 0x7351 #CJK UNIFIED IDEOGRAPH +0xAA87 0x7353 #CJK UNIFIED IDEOGRAPH +0xAA88 0x7354 #CJK UNIFIED IDEOGRAPH +0xAA89 0x7355 #CJK UNIFIED IDEOGRAPH +0xAA8A 0x7356 #CJK UNIFIED IDEOGRAPH +0xAA8B 0x7358 #CJK UNIFIED IDEOGRAPH +0xAA8C 0x7359 #CJK UNIFIED IDEOGRAPH +0xAA8D 0x735A #CJK UNIFIED IDEOGRAPH +0xAA8E 0x735B #CJK UNIFIED IDEOGRAPH +0xAA8F 0x735C #CJK UNIFIED IDEOGRAPH +0xAA90 0x735D #CJK UNIFIED IDEOGRAPH +0xAA91 0x735E #CJK UNIFIED IDEOGRAPH +0xAA92 0x735F #CJK UNIFIED IDEOGRAPH +0xAA93 0x7361 #CJK UNIFIED IDEOGRAPH +0xAA94 0x7362 #CJK UNIFIED IDEOGRAPH +0xAA95 0x7363 #CJK UNIFIED IDEOGRAPH +0xAA96 0x7364 #CJK UNIFIED IDEOGRAPH +0xAA97 0x7365 #CJK UNIFIED IDEOGRAPH +0xAA98 0x7366 #CJK UNIFIED IDEOGRAPH +0xAA99 0x7367 #CJK UNIFIED IDEOGRAPH +0xAA9A 0x7368 #CJK UNIFIED IDEOGRAPH +0xAA9B 0x7369 #CJK UNIFIED IDEOGRAPH +0xAA9C 0x736A #CJK UNIFIED IDEOGRAPH +0xAA9D 0x736B #CJK UNIFIED IDEOGRAPH +0xAA9E 0x736E #CJK UNIFIED IDEOGRAPH +0xAA9F 0x7370 #CJK UNIFIED IDEOGRAPH +0xAAA0 0x7371 #CJK UNIFIED IDEOGRAPH +0xAB40 0x7372 #CJK UNIFIED IDEOGRAPH +0xAB41 0x7373 #CJK UNIFIED IDEOGRAPH +0xAB42 0x7374 #CJK UNIFIED IDEOGRAPH +0xAB43 0x7375 #CJK UNIFIED IDEOGRAPH +0xAB44 0x7376 #CJK UNIFIED IDEOGRAPH +0xAB45 0x7377 #CJK UNIFIED IDEOGRAPH +0xAB46 0x7378 #CJK UNIFIED IDEOGRAPH +0xAB47 0x7379 #CJK UNIFIED IDEOGRAPH +0xAB48 0x737A #CJK UNIFIED IDEOGRAPH +0xAB49 0x737B #CJK UNIFIED IDEOGRAPH +0xAB4A 0x737C #CJK UNIFIED IDEOGRAPH +0xAB4B 0x737D #CJK UNIFIED IDEOGRAPH +0xAB4C 0x737F #CJK UNIFIED IDEOGRAPH +0xAB4D 0x7380 #CJK UNIFIED IDEOGRAPH +0xAB4E 0x7381 #CJK UNIFIED IDEOGRAPH +0xAB4F 0x7382 #CJK UNIFIED IDEOGRAPH +0xAB50 0x7383 #CJK UNIFIED IDEOGRAPH +0xAB51 0x7385 #CJK UNIFIED IDEOGRAPH +0xAB52 0x7386 #CJK UNIFIED IDEOGRAPH +0xAB53 0x7388 #CJK UNIFIED IDEOGRAPH +0xAB54 0x738A #CJK UNIFIED IDEOGRAPH +0xAB55 0x738C #CJK UNIFIED IDEOGRAPH +0xAB56 0x738D #CJK UNIFIED IDEOGRAPH +0xAB57 0x738F #CJK UNIFIED IDEOGRAPH +0xAB58 0x7390 #CJK UNIFIED IDEOGRAPH +0xAB59 0x7392 #CJK UNIFIED IDEOGRAPH +0xAB5A 0x7393 #CJK UNIFIED IDEOGRAPH +0xAB5B 0x7394 #CJK UNIFIED IDEOGRAPH +0xAB5C 0x7395 #CJK UNIFIED IDEOGRAPH +0xAB5D 0x7397 #CJK UNIFIED IDEOGRAPH +0xAB5E 0x7398 #CJK UNIFIED IDEOGRAPH +0xAB5F 0x7399 #CJK UNIFIED IDEOGRAPH +0xAB60 0x739A #CJK UNIFIED IDEOGRAPH +0xAB61 0x739C #CJK UNIFIED IDEOGRAPH +0xAB62 0x739D #CJK UNIFIED IDEOGRAPH +0xAB63 0x739E #CJK UNIFIED IDEOGRAPH +0xAB64 0x73A0 #CJK UNIFIED IDEOGRAPH +0xAB65 0x73A1 #CJK UNIFIED IDEOGRAPH +0xAB66 0x73A3 #CJK UNIFIED IDEOGRAPH +0xAB67 0x73A4 #CJK UNIFIED IDEOGRAPH +0xAB68 0x73A5 #CJK UNIFIED IDEOGRAPH +0xAB69 0x73A6 #CJK UNIFIED IDEOGRAPH +0xAB6A 0x73A7 #CJK UNIFIED IDEOGRAPH +0xAB6B 0x73A8 #CJK UNIFIED IDEOGRAPH +0xAB6C 0x73AA #CJK UNIFIED IDEOGRAPH +0xAB6D 0x73AC #CJK UNIFIED IDEOGRAPH +0xAB6E 0x73AD #CJK UNIFIED IDEOGRAPH +0xAB6F 0x73B1 #CJK UNIFIED IDEOGRAPH +0xAB70 0x73B4 #CJK UNIFIED IDEOGRAPH +0xAB71 0x73B5 #CJK UNIFIED IDEOGRAPH +0xAB72 0x73B6 #CJK UNIFIED IDEOGRAPH +0xAB73 0x73B8 #CJK UNIFIED IDEOGRAPH +0xAB74 0x73B9 #CJK UNIFIED IDEOGRAPH +0xAB75 0x73BC #CJK UNIFIED IDEOGRAPH +0xAB76 0x73BD #CJK UNIFIED IDEOGRAPH +0xAB77 0x73BE #CJK UNIFIED IDEOGRAPH +0xAB78 0x73BF #CJK UNIFIED IDEOGRAPH +0xAB79 0x73C1 #CJK UNIFIED IDEOGRAPH +0xAB7A 0x73C3 #CJK UNIFIED IDEOGRAPH +0xAB7B 0x73C4 #CJK UNIFIED IDEOGRAPH +0xAB7C 0x73C5 #CJK UNIFIED IDEOGRAPH +0xAB7D 0x73C6 #CJK UNIFIED IDEOGRAPH +0xAB7E 0x73C7 #CJK UNIFIED IDEOGRAPH +0xAB80 0x73CB #CJK UNIFIED IDEOGRAPH +0xAB81 0x73CC #CJK UNIFIED IDEOGRAPH +0xAB82 0x73CE #CJK UNIFIED IDEOGRAPH +0xAB83 0x73D2 #CJK UNIFIED IDEOGRAPH +0xAB84 0x73D3 #CJK UNIFIED IDEOGRAPH +0xAB85 0x73D4 #CJK UNIFIED IDEOGRAPH +0xAB86 0x73D5 #CJK UNIFIED IDEOGRAPH +0xAB87 0x73D6 #CJK UNIFIED IDEOGRAPH +0xAB88 0x73D7 #CJK UNIFIED IDEOGRAPH +0xAB89 0x73D8 #CJK UNIFIED IDEOGRAPH +0xAB8A 0x73DA #CJK UNIFIED IDEOGRAPH +0xAB8B 0x73DB #CJK UNIFIED IDEOGRAPH +0xAB8C 0x73DC #CJK UNIFIED IDEOGRAPH +0xAB8D 0x73DD #CJK UNIFIED IDEOGRAPH +0xAB8E 0x73DF #CJK UNIFIED IDEOGRAPH +0xAB8F 0x73E1 #CJK UNIFIED IDEOGRAPH +0xAB90 0x73E2 #CJK UNIFIED IDEOGRAPH +0xAB91 0x73E3 #CJK UNIFIED IDEOGRAPH +0xAB92 0x73E4 #CJK UNIFIED IDEOGRAPH +0xAB93 0x73E6 #CJK UNIFIED IDEOGRAPH +0xAB94 0x73E8 #CJK UNIFIED IDEOGRAPH +0xAB95 0x73EA #CJK UNIFIED IDEOGRAPH +0xAB96 0x73EB #CJK UNIFIED IDEOGRAPH +0xAB97 0x73EC #CJK UNIFIED IDEOGRAPH +0xAB98 0x73EE #CJK UNIFIED IDEOGRAPH +0xAB99 0x73EF #CJK UNIFIED IDEOGRAPH +0xAB9A 0x73F0 #CJK UNIFIED IDEOGRAPH +0xAB9B 0x73F1 #CJK UNIFIED IDEOGRAPH +0xAB9C 0x73F3 #CJK UNIFIED IDEOGRAPH +0xAB9D 0x73F4 #CJK UNIFIED IDEOGRAPH +0xAB9E 0x73F5 #CJK UNIFIED IDEOGRAPH +0xAB9F 0x73F6 #CJK UNIFIED IDEOGRAPH +0xABA0 0x73F7 #CJK UNIFIED IDEOGRAPH +0xAC40 0x73F8 #CJK UNIFIED IDEOGRAPH +0xAC41 0x73F9 #CJK UNIFIED IDEOGRAPH +0xAC42 0x73FA #CJK UNIFIED IDEOGRAPH +0xAC43 0x73FB #CJK UNIFIED IDEOGRAPH +0xAC44 0x73FC #CJK UNIFIED IDEOGRAPH +0xAC45 0x73FD #CJK UNIFIED IDEOGRAPH +0xAC46 0x73FE #CJK UNIFIED IDEOGRAPH +0xAC47 0x73FF #CJK UNIFIED IDEOGRAPH +0xAC48 0x7400 #CJK UNIFIED IDEOGRAPH +0xAC49 0x7401 #CJK UNIFIED IDEOGRAPH +0xAC4A 0x7402 #CJK UNIFIED IDEOGRAPH +0xAC4B 0x7404 #CJK UNIFIED IDEOGRAPH +0xAC4C 0x7407 #CJK UNIFIED IDEOGRAPH +0xAC4D 0x7408 #CJK UNIFIED IDEOGRAPH +0xAC4E 0x740B #CJK UNIFIED IDEOGRAPH +0xAC4F 0x740C #CJK UNIFIED IDEOGRAPH +0xAC50 0x740D #CJK UNIFIED IDEOGRAPH +0xAC51 0x740E #CJK UNIFIED IDEOGRAPH +0xAC52 0x7411 #CJK UNIFIED IDEOGRAPH +0xAC53 0x7412 #CJK UNIFIED IDEOGRAPH +0xAC54 0x7413 #CJK UNIFIED IDEOGRAPH +0xAC55 0x7414 #CJK UNIFIED IDEOGRAPH +0xAC56 0x7415 #CJK UNIFIED IDEOGRAPH +0xAC57 0x7416 #CJK UNIFIED IDEOGRAPH +0xAC58 0x7417 #CJK UNIFIED IDEOGRAPH +0xAC59 0x7418 #CJK UNIFIED IDEOGRAPH +0xAC5A 0x7419 #CJK UNIFIED IDEOGRAPH +0xAC5B 0x741C #CJK UNIFIED IDEOGRAPH +0xAC5C 0x741D #CJK UNIFIED IDEOGRAPH +0xAC5D 0x741E #CJK UNIFIED IDEOGRAPH +0xAC5E 0x741F #CJK UNIFIED IDEOGRAPH +0xAC5F 0x7420 #CJK UNIFIED IDEOGRAPH +0xAC60 0x7421 #CJK UNIFIED IDEOGRAPH +0xAC61 0x7423 #CJK UNIFIED IDEOGRAPH +0xAC62 0x7424 #CJK UNIFIED IDEOGRAPH +0xAC63 0x7427 #CJK UNIFIED IDEOGRAPH +0xAC64 0x7429 #CJK UNIFIED IDEOGRAPH +0xAC65 0x742B #CJK UNIFIED IDEOGRAPH +0xAC66 0x742D #CJK UNIFIED IDEOGRAPH +0xAC67 0x742F #CJK UNIFIED IDEOGRAPH +0xAC68 0x7431 #CJK UNIFIED IDEOGRAPH +0xAC69 0x7432 #CJK UNIFIED IDEOGRAPH +0xAC6A 0x7437 #CJK UNIFIED IDEOGRAPH +0xAC6B 0x7438 #CJK UNIFIED IDEOGRAPH +0xAC6C 0x7439 #CJK UNIFIED IDEOGRAPH +0xAC6D 0x743A #CJK UNIFIED IDEOGRAPH +0xAC6E 0x743B #CJK UNIFIED IDEOGRAPH +0xAC6F 0x743D #CJK UNIFIED IDEOGRAPH +0xAC70 0x743E #CJK UNIFIED IDEOGRAPH +0xAC71 0x743F #CJK UNIFIED IDEOGRAPH +0xAC72 0x7440 #CJK UNIFIED IDEOGRAPH +0xAC73 0x7442 #CJK UNIFIED IDEOGRAPH +0xAC74 0x7443 #CJK UNIFIED IDEOGRAPH +0xAC75 0x7444 #CJK UNIFIED IDEOGRAPH +0xAC76 0x7445 #CJK UNIFIED IDEOGRAPH +0xAC77 0x7446 #CJK UNIFIED IDEOGRAPH +0xAC78 0x7447 #CJK UNIFIED IDEOGRAPH +0xAC79 0x7448 #CJK UNIFIED IDEOGRAPH +0xAC7A 0x7449 #CJK UNIFIED IDEOGRAPH +0xAC7B 0x744A #CJK UNIFIED IDEOGRAPH +0xAC7C 0x744B #CJK UNIFIED IDEOGRAPH +0xAC7D 0x744C #CJK UNIFIED IDEOGRAPH +0xAC7E 0x744D #CJK UNIFIED IDEOGRAPH +0xAC80 0x744E #CJK UNIFIED IDEOGRAPH +0xAC81 0x744F #CJK UNIFIED IDEOGRAPH +0xAC82 0x7450 #CJK UNIFIED IDEOGRAPH +0xAC83 0x7451 #CJK UNIFIED IDEOGRAPH +0xAC84 0x7452 #CJK UNIFIED IDEOGRAPH +0xAC85 0x7453 #CJK UNIFIED IDEOGRAPH +0xAC86 0x7454 #CJK UNIFIED IDEOGRAPH +0xAC87 0x7456 #CJK UNIFIED IDEOGRAPH +0xAC88 0x7458 #CJK UNIFIED IDEOGRAPH +0xAC89 0x745D #CJK UNIFIED IDEOGRAPH +0xAC8A 0x7460 #CJK UNIFIED IDEOGRAPH +0xAC8B 0x7461 #CJK UNIFIED IDEOGRAPH +0xAC8C 0x7462 #CJK UNIFIED IDEOGRAPH +0xAC8D 0x7463 #CJK UNIFIED IDEOGRAPH +0xAC8E 0x7464 #CJK UNIFIED IDEOGRAPH +0xAC8F 0x7465 #CJK UNIFIED IDEOGRAPH +0xAC90 0x7466 #CJK UNIFIED IDEOGRAPH +0xAC91 0x7467 #CJK UNIFIED IDEOGRAPH +0xAC92 0x7468 #CJK UNIFIED IDEOGRAPH +0xAC93 0x7469 #CJK UNIFIED IDEOGRAPH +0xAC94 0x746A #CJK UNIFIED IDEOGRAPH +0xAC95 0x746B #CJK UNIFIED IDEOGRAPH +0xAC96 0x746C #CJK UNIFIED IDEOGRAPH +0xAC97 0x746E #CJK UNIFIED IDEOGRAPH +0xAC98 0x746F #CJK UNIFIED IDEOGRAPH +0xAC99 0x7471 #CJK UNIFIED IDEOGRAPH +0xAC9A 0x7472 #CJK UNIFIED IDEOGRAPH +0xAC9B 0x7473 #CJK UNIFIED IDEOGRAPH +0xAC9C 0x7474 #CJK UNIFIED IDEOGRAPH +0xAC9D 0x7475 #CJK UNIFIED IDEOGRAPH +0xAC9E 0x7478 #CJK UNIFIED IDEOGRAPH +0xAC9F 0x7479 #CJK UNIFIED IDEOGRAPH +0xACA0 0x747A #CJK UNIFIED IDEOGRAPH +0xAD40 0x747B #CJK UNIFIED IDEOGRAPH +0xAD41 0x747C #CJK UNIFIED IDEOGRAPH +0xAD42 0x747D #CJK UNIFIED IDEOGRAPH +0xAD43 0x747F #CJK UNIFIED IDEOGRAPH +0xAD44 0x7482 #CJK UNIFIED IDEOGRAPH +0xAD45 0x7484 #CJK UNIFIED IDEOGRAPH +0xAD46 0x7485 #CJK UNIFIED IDEOGRAPH +0xAD47 0x7486 #CJK UNIFIED IDEOGRAPH +0xAD48 0x7488 #CJK UNIFIED IDEOGRAPH +0xAD49 0x7489 #CJK UNIFIED IDEOGRAPH +0xAD4A 0x748A #CJK UNIFIED IDEOGRAPH +0xAD4B 0x748C #CJK UNIFIED IDEOGRAPH +0xAD4C 0x748D #CJK UNIFIED IDEOGRAPH +0xAD4D 0x748F #CJK UNIFIED IDEOGRAPH +0xAD4E 0x7491 #CJK UNIFIED IDEOGRAPH +0xAD4F 0x7492 #CJK UNIFIED IDEOGRAPH +0xAD50 0x7493 #CJK UNIFIED IDEOGRAPH +0xAD51 0x7494 #CJK UNIFIED IDEOGRAPH +0xAD52 0x7495 #CJK UNIFIED IDEOGRAPH +0xAD53 0x7496 #CJK UNIFIED IDEOGRAPH +0xAD54 0x7497 #CJK UNIFIED IDEOGRAPH +0xAD55 0x7498 #CJK UNIFIED IDEOGRAPH +0xAD56 0x7499 #CJK UNIFIED IDEOGRAPH +0xAD57 0x749A #CJK UNIFIED IDEOGRAPH +0xAD58 0x749B #CJK UNIFIED IDEOGRAPH +0xAD59 0x749D #CJK UNIFIED IDEOGRAPH +0xAD5A 0x749F #CJK UNIFIED IDEOGRAPH +0xAD5B 0x74A0 #CJK UNIFIED IDEOGRAPH +0xAD5C 0x74A1 #CJK UNIFIED IDEOGRAPH +0xAD5D 0x74A2 #CJK UNIFIED IDEOGRAPH +0xAD5E 0x74A3 #CJK UNIFIED IDEOGRAPH +0xAD5F 0x74A4 #CJK UNIFIED IDEOGRAPH +0xAD60 0x74A5 #CJK UNIFIED IDEOGRAPH +0xAD61 0x74A6 #CJK UNIFIED IDEOGRAPH +0xAD62 0x74AA #CJK UNIFIED IDEOGRAPH +0xAD63 0x74AB #CJK UNIFIED IDEOGRAPH +0xAD64 0x74AC #CJK UNIFIED IDEOGRAPH +0xAD65 0x74AD #CJK UNIFIED IDEOGRAPH +0xAD66 0x74AE #CJK UNIFIED IDEOGRAPH +0xAD67 0x74AF #CJK UNIFIED IDEOGRAPH +0xAD68 0x74B0 #CJK UNIFIED IDEOGRAPH +0xAD69 0x74B1 #CJK UNIFIED IDEOGRAPH +0xAD6A 0x74B2 #CJK UNIFIED IDEOGRAPH +0xAD6B 0x74B3 #CJK UNIFIED IDEOGRAPH +0xAD6C 0x74B4 #CJK UNIFIED IDEOGRAPH +0xAD6D 0x74B5 #CJK UNIFIED IDEOGRAPH +0xAD6E 0x74B6 #CJK UNIFIED IDEOGRAPH +0xAD6F 0x74B7 #CJK UNIFIED IDEOGRAPH +0xAD70 0x74B8 #CJK UNIFIED IDEOGRAPH +0xAD71 0x74B9 #CJK UNIFIED IDEOGRAPH +0xAD72 0x74BB #CJK UNIFIED IDEOGRAPH +0xAD73 0x74BC #CJK UNIFIED IDEOGRAPH +0xAD74 0x74BD #CJK UNIFIED IDEOGRAPH +0xAD75 0x74BE #CJK UNIFIED IDEOGRAPH +0xAD76 0x74BF #CJK UNIFIED IDEOGRAPH +0xAD77 0x74C0 #CJK UNIFIED IDEOGRAPH +0xAD78 0x74C1 #CJK UNIFIED IDEOGRAPH +0xAD79 0x74C2 #CJK UNIFIED IDEOGRAPH +0xAD7A 0x74C3 #CJK UNIFIED IDEOGRAPH +0xAD7B 0x74C4 #CJK UNIFIED IDEOGRAPH +0xAD7C 0x74C5 #CJK UNIFIED IDEOGRAPH +0xAD7D 0x74C6 #CJK UNIFIED IDEOGRAPH +0xAD7E 0x74C7 #CJK UNIFIED IDEOGRAPH +0xAD80 0x74C8 #CJK UNIFIED IDEOGRAPH +0xAD81 0x74C9 #CJK UNIFIED IDEOGRAPH +0xAD82 0x74CA #CJK UNIFIED IDEOGRAPH +0xAD83 0x74CB #CJK UNIFIED IDEOGRAPH +0xAD84 0x74CC #CJK UNIFIED IDEOGRAPH +0xAD85 0x74CD #CJK UNIFIED IDEOGRAPH +0xAD86 0x74CE #CJK UNIFIED IDEOGRAPH +0xAD87 0x74CF #CJK UNIFIED IDEOGRAPH +0xAD88 0x74D0 #CJK UNIFIED IDEOGRAPH +0xAD89 0x74D1 #CJK UNIFIED IDEOGRAPH +0xAD8A 0x74D3 #CJK UNIFIED IDEOGRAPH +0xAD8B 0x74D4 #CJK UNIFIED IDEOGRAPH +0xAD8C 0x74D5 #CJK UNIFIED IDEOGRAPH +0xAD8D 0x74D6 #CJK UNIFIED IDEOGRAPH +0xAD8E 0x74D7 #CJK UNIFIED IDEOGRAPH +0xAD8F 0x74D8 #CJK UNIFIED IDEOGRAPH +0xAD90 0x74D9 #CJK UNIFIED IDEOGRAPH +0xAD91 0x74DA #CJK UNIFIED IDEOGRAPH +0xAD92 0x74DB #CJK UNIFIED IDEOGRAPH +0xAD93 0x74DD #CJK UNIFIED IDEOGRAPH +0xAD94 0x74DF #CJK UNIFIED IDEOGRAPH +0xAD95 0x74E1 #CJK UNIFIED IDEOGRAPH +0xAD96 0x74E5 #CJK UNIFIED IDEOGRAPH +0xAD97 0x74E7 #CJK UNIFIED IDEOGRAPH +0xAD98 0x74E8 #CJK UNIFIED IDEOGRAPH +0xAD99 0x74E9 #CJK UNIFIED IDEOGRAPH +0xAD9A 0x74EA #CJK UNIFIED IDEOGRAPH +0xAD9B 0x74EB #CJK UNIFIED IDEOGRAPH +0xAD9C 0x74EC #CJK UNIFIED IDEOGRAPH +0xAD9D 0x74ED #CJK UNIFIED IDEOGRAPH +0xAD9E 0x74F0 #CJK UNIFIED IDEOGRAPH +0xAD9F 0x74F1 #CJK UNIFIED IDEOGRAPH +0xADA0 0x74F2 #CJK UNIFIED IDEOGRAPH +0xAE40 0x74F3 #CJK UNIFIED IDEOGRAPH +0xAE41 0x74F5 #CJK UNIFIED IDEOGRAPH +0xAE42 0x74F8 #CJK UNIFIED IDEOGRAPH +0xAE43 0x74F9 #CJK UNIFIED IDEOGRAPH +0xAE44 0x74FA #CJK UNIFIED IDEOGRAPH +0xAE45 0x74FB #CJK UNIFIED IDEOGRAPH +0xAE46 0x74FC #CJK UNIFIED IDEOGRAPH +0xAE47 0x74FD #CJK UNIFIED IDEOGRAPH +0xAE48 0x74FE #CJK UNIFIED IDEOGRAPH +0xAE49 0x7500 #CJK UNIFIED IDEOGRAPH +0xAE4A 0x7501 #CJK UNIFIED IDEOGRAPH +0xAE4B 0x7502 #CJK UNIFIED IDEOGRAPH +0xAE4C 0x7503 #CJK UNIFIED IDEOGRAPH +0xAE4D 0x7505 #CJK UNIFIED IDEOGRAPH +0xAE4E 0x7506 #CJK UNIFIED IDEOGRAPH +0xAE4F 0x7507 #CJK UNIFIED IDEOGRAPH +0xAE50 0x7508 #CJK UNIFIED IDEOGRAPH +0xAE51 0x7509 #CJK UNIFIED IDEOGRAPH +0xAE52 0x750A #CJK UNIFIED IDEOGRAPH +0xAE53 0x750B #CJK UNIFIED IDEOGRAPH +0xAE54 0x750C #CJK UNIFIED IDEOGRAPH +0xAE55 0x750E #CJK UNIFIED IDEOGRAPH +0xAE56 0x7510 #CJK UNIFIED IDEOGRAPH +0xAE57 0x7512 #CJK UNIFIED IDEOGRAPH +0xAE58 0x7514 #CJK UNIFIED IDEOGRAPH +0xAE59 0x7515 #CJK UNIFIED IDEOGRAPH +0xAE5A 0x7516 #CJK UNIFIED IDEOGRAPH +0xAE5B 0x7517 #CJK UNIFIED IDEOGRAPH +0xAE5C 0x751B #CJK UNIFIED IDEOGRAPH +0xAE5D 0x751D #CJK UNIFIED IDEOGRAPH +0xAE5E 0x751E #CJK UNIFIED IDEOGRAPH +0xAE5F 0x7520 #CJK UNIFIED IDEOGRAPH +0xAE60 0x7521 #CJK UNIFIED IDEOGRAPH +0xAE61 0x7522 #CJK UNIFIED IDEOGRAPH +0xAE62 0x7523 #CJK UNIFIED IDEOGRAPH +0xAE63 0x7524 #CJK UNIFIED IDEOGRAPH +0xAE64 0x7526 #CJK UNIFIED IDEOGRAPH +0xAE65 0x7527 #CJK UNIFIED IDEOGRAPH +0xAE66 0x752A #CJK UNIFIED IDEOGRAPH +0xAE67 0x752E #CJK UNIFIED IDEOGRAPH +0xAE68 0x7534 #CJK UNIFIED IDEOGRAPH +0xAE69 0x7536 #CJK UNIFIED IDEOGRAPH +0xAE6A 0x7539 #CJK UNIFIED IDEOGRAPH +0xAE6B 0x753C #CJK UNIFIED IDEOGRAPH +0xAE6C 0x753D #CJK UNIFIED IDEOGRAPH +0xAE6D 0x753F #CJK UNIFIED IDEOGRAPH +0xAE6E 0x7541 #CJK UNIFIED IDEOGRAPH +0xAE6F 0x7542 #CJK UNIFIED IDEOGRAPH +0xAE70 0x7543 #CJK UNIFIED IDEOGRAPH +0xAE71 0x7544 #CJK UNIFIED IDEOGRAPH +0xAE72 0x7546 #CJK UNIFIED IDEOGRAPH +0xAE73 0x7547 #CJK UNIFIED IDEOGRAPH +0xAE74 0x7549 #CJK UNIFIED IDEOGRAPH +0xAE75 0x754A #CJK UNIFIED IDEOGRAPH +0xAE76 0x754D #CJK UNIFIED IDEOGRAPH +0xAE77 0x7550 #CJK UNIFIED IDEOGRAPH +0xAE78 0x7551 #CJK UNIFIED IDEOGRAPH +0xAE79 0x7552 #CJK UNIFIED IDEOGRAPH +0xAE7A 0x7553 #CJK UNIFIED IDEOGRAPH +0xAE7B 0x7555 #CJK UNIFIED IDEOGRAPH +0xAE7C 0x7556 #CJK UNIFIED IDEOGRAPH +0xAE7D 0x7557 #CJK UNIFIED IDEOGRAPH +0xAE7E 0x7558 #CJK UNIFIED IDEOGRAPH +0xAE80 0x755D #CJK UNIFIED IDEOGRAPH +0xAE81 0x755E #CJK UNIFIED IDEOGRAPH +0xAE82 0x755F #CJK UNIFIED IDEOGRAPH +0xAE83 0x7560 #CJK UNIFIED IDEOGRAPH +0xAE84 0x7561 #CJK UNIFIED IDEOGRAPH +0xAE85 0x7562 #CJK UNIFIED IDEOGRAPH +0xAE86 0x7563 #CJK UNIFIED IDEOGRAPH +0xAE87 0x7564 #CJK UNIFIED IDEOGRAPH +0xAE88 0x7567 #CJK UNIFIED IDEOGRAPH +0xAE89 0x7568 #CJK UNIFIED IDEOGRAPH +0xAE8A 0x7569 #CJK UNIFIED IDEOGRAPH +0xAE8B 0x756B #CJK UNIFIED IDEOGRAPH +0xAE8C 0x756C #CJK UNIFIED IDEOGRAPH +0xAE8D 0x756D #CJK UNIFIED IDEOGRAPH +0xAE8E 0x756E #CJK UNIFIED IDEOGRAPH +0xAE8F 0x756F #CJK UNIFIED IDEOGRAPH +0xAE90 0x7570 #CJK UNIFIED IDEOGRAPH +0xAE91 0x7571 #CJK UNIFIED IDEOGRAPH +0xAE92 0x7573 #CJK UNIFIED IDEOGRAPH +0xAE93 0x7575 #CJK UNIFIED IDEOGRAPH +0xAE94 0x7576 #CJK UNIFIED IDEOGRAPH +0xAE95 0x7577 #CJK UNIFIED IDEOGRAPH +0xAE96 0x757A #CJK UNIFIED IDEOGRAPH +0xAE97 0x757B #CJK UNIFIED IDEOGRAPH +0xAE98 0x757C #CJK UNIFIED IDEOGRAPH +0xAE99 0x757D #CJK UNIFIED IDEOGRAPH +0xAE9A 0x757E #CJK UNIFIED IDEOGRAPH +0xAE9B 0x7580 #CJK UNIFIED IDEOGRAPH +0xAE9C 0x7581 #CJK UNIFIED IDEOGRAPH +0xAE9D 0x7582 #CJK UNIFIED IDEOGRAPH +0xAE9E 0x7584 #CJK UNIFIED IDEOGRAPH +0xAE9F 0x7585 #CJK UNIFIED IDEOGRAPH +0xAEA0 0x7587 #CJK UNIFIED IDEOGRAPH +0xAF40 0x7588 #CJK UNIFIED IDEOGRAPH +0xAF41 0x7589 #CJK UNIFIED IDEOGRAPH +0xAF42 0x758A #CJK UNIFIED IDEOGRAPH +0xAF43 0x758C #CJK UNIFIED IDEOGRAPH +0xAF44 0x758D #CJK UNIFIED IDEOGRAPH +0xAF45 0x758E #CJK UNIFIED IDEOGRAPH +0xAF46 0x7590 #CJK UNIFIED IDEOGRAPH +0xAF47 0x7593 #CJK UNIFIED IDEOGRAPH +0xAF48 0x7595 #CJK UNIFIED IDEOGRAPH +0xAF49 0x7598 #CJK UNIFIED IDEOGRAPH +0xAF4A 0x759B #CJK UNIFIED IDEOGRAPH +0xAF4B 0x759C #CJK UNIFIED IDEOGRAPH +0xAF4C 0x759E #CJK UNIFIED IDEOGRAPH +0xAF4D 0x75A2 #CJK UNIFIED IDEOGRAPH +0xAF4E 0x75A6 #CJK UNIFIED IDEOGRAPH +0xAF4F 0x75A7 #CJK UNIFIED IDEOGRAPH +0xAF50 0x75A8 #CJK UNIFIED IDEOGRAPH +0xAF51 0x75A9 #CJK UNIFIED IDEOGRAPH +0xAF52 0x75AA #CJK UNIFIED IDEOGRAPH +0xAF53 0x75AD #CJK UNIFIED IDEOGRAPH +0xAF54 0x75B6 #CJK UNIFIED IDEOGRAPH +0xAF55 0x75B7 #CJK UNIFIED IDEOGRAPH +0xAF56 0x75BA #CJK UNIFIED IDEOGRAPH +0xAF57 0x75BB #CJK UNIFIED IDEOGRAPH +0xAF58 0x75BF #CJK UNIFIED IDEOGRAPH +0xAF59 0x75C0 #CJK UNIFIED IDEOGRAPH +0xAF5A 0x75C1 #CJK UNIFIED IDEOGRAPH +0xAF5B 0x75C6 #CJK UNIFIED IDEOGRAPH +0xAF5C 0x75CB #CJK UNIFIED IDEOGRAPH +0xAF5D 0x75CC #CJK UNIFIED IDEOGRAPH +0xAF5E 0x75CE #CJK UNIFIED IDEOGRAPH +0xAF5F 0x75CF #CJK UNIFIED IDEOGRAPH +0xAF60 0x75D0 #CJK UNIFIED IDEOGRAPH +0xAF61 0x75D1 #CJK UNIFIED IDEOGRAPH +0xAF62 0x75D3 #CJK UNIFIED IDEOGRAPH +0xAF63 0x75D7 #CJK UNIFIED IDEOGRAPH +0xAF64 0x75D9 #CJK UNIFIED IDEOGRAPH +0xAF65 0x75DA #CJK UNIFIED IDEOGRAPH +0xAF66 0x75DC #CJK UNIFIED IDEOGRAPH +0xAF67 0x75DD #CJK UNIFIED IDEOGRAPH +0xAF68 0x75DF #CJK UNIFIED IDEOGRAPH +0xAF69 0x75E0 #CJK UNIFIED IDEOGRAPH +0xAF6A 0x75E1 #CJK UNIFIED IDEOGRAPH +0xAF6B 0x75E5 #CJK UNIFIED IDEOGRAPH +0xAF6C 0x75E9 #CJK UNIFIED IDEOGRAPH +0xAF6D 0x75EC #CJK UNIFIED IDEOGRAPH +0xAF6E 0x75ED #CJK UNIFIED IDEOGRAPH +0xAF6F 0x75EE #CJK UNIFIED IDEOGRAPH +0xAF70 0x75EF #CJK UNIFIED IDEOGRAPH +0xAF71 0x75F2 #CJK UNIFIED IDEOGRAPH +0xAF72 0x75F3 #CJK UNIFIED IDEOGRAPH +0xAF73 0x75F5 #CJK UNIFIED IDEOGRAPH +0xAF74 0x75F6 #CJK UNIFIED IDEOGRAPH +0xAF75 0x75F7 #CJK UNIFIED IDEOGRAPH +0xAF76 0x75F8 #CJK UNIFIED IDEOGRAPH +0xAF77 0x75FA #CJK UNIFIED IDEOGRAPH +0xAF78 0x75FB #CJK UNIFIED IDEOGRAPH +0xAF79 0x75FD #CJK UNIFIED IDEOGRAPH +0xAF7A 0x75FE #CJK UNIFIED IDEOGRAPH +0xAF7B 0x7602 #CJK UNIFIED IDEOGRAPH +0xAF7C 0x7604 #CJK UNIFIED IDEOGRAPH +0xAF7D 0x7606 #CJK UNIFIED IDEOGRAPH +0xAF7E 0x7607 #CJK UNIFIED IDEOGRAPH +0xAF80 0x7608 #CJK UNIFIED IDEOGRAPH +0xAF81 0x7609 #CJK UNIFIED IDEOGRAPH +0xAF82 0x760B #CJK UNIFIED IDEOGRAPH +0xAF83 0x760D #CJK UNIFIED IDEOGRAPH +0xAF84 0x760E #CJK UNIFIED IDEOGRAPH +0xAF85 0x760F #CJK UNIFIED IDEOGRAPH +0xAF86 0x7611 #CJK UNIFIED IDEOGRAPH +0xAF87 0x7612 #CJK UNIFIED IDEOGRAPH +0xAF88 0x7613 #CJK UNIFIED IDEOGRAPH +0xAF89 0x7614 #CJK UNIFIED IDEOGRAPH +0xAF8A 0x7616 #CJK UNIFIED IDEOGRAPH +0xAF8B 0x761A #CJK UNIFIED IDEOGRAPH +0xAF8C 0x761C #CJK UNIFIED IDEOGRAPH +0xAF8D 0x761D #CJK UNIFIED IDEOGRAPH +0xAF8E 0x761E #CJK UNIFIED IDEOGRAPH +0xAF8F 0x7621 #CJK UNIFIED IDEOGRAPH +0xAF90 0x7623 #CJK UNIFIED IDEOGRAPH +0xAF91 0x7627 #CJK UNIFIED IDEOGRAPH +0xAF92 0x7628 #CJK UNIFIED IDEOGRAPH +0xAF93 0x762C #CJK UNIFIED IDEOGRAPH +0xAF94 0x762E #CJK UNIFIED IDEOGRAPH +0xAF95 0x762F #CJK UNIFIED IDEOGRAPH +0xAF96 0x7631 #CJK UNIFIED IDEOGRAPH +0xAF97 0x7632 #CJK UNIFIED IDEOGRAPH +0xAF98 0x7636 #CJK UNIFIED IDEOGRAPH +0xAF99 0x7637 #CJK UNIFIED IDEOGRAPH +0xAF9A 0x7639 #CJK UNIFIED IDEOGRAPH +0xAF9B 0x763A #CJK UNIFIED IDEOGRAPH +0xAF9C 0x763B #CJK UNIFIED IDEOGRAPH +0xAF9D 0x763D #CJK UNIFIED IDEOGRAPH +0xAF9E 0x7641 #CJK UNIFIED IDEOGRAPH +0xAF9F 0x7642 #CJK UNIFIED IDEOGRAPH +0xAFA0 0x7644 #CJK UNIFIED IDEOGRAPH +0xB040 0x7645 #CJK UNIFIED IDEOGRAPH +0xB041 0x7646 #CJK UNIFIED IDEOGRAPH +0xB042 0x7647 #CJK UNIFIED IDEOGRAPH +0xB043 0x7648 #CJK UNIFIED IDEOGRAPH +0xB044 0x7649 #CJK UNIFIED IDEOGRAPH +0xB045 0x764A #CJK UNIFIED IDEOGRAPH +0xB046 0x764B #CJK UNIFIED IDEOGRAPH +0xB047 0x764E #CJK UNIFIED IDEOGRAPH +0xB048 0x764F #CJK UNIFIED IDEOGRAPH +0xB049 0x7650 #CJK UNIFIED IDEOGRAPH +0xB04A 0x7651 #CJK UNIFIED IDEOGRAPH +0xB04B 0x7652 #CJK UNIFIED IDEOGRAPH +0xB04C 0x7653 #CJK UNIFIED IDEOGRAPH +0xB04D 0x7655 #CJK UNIFIED IDEOGRAPH +0xB04E 0x7657 #CJK UNIFIED IDEOGRAPH +0xB04F 0x7658 #CJK UNIFIED IDEOGRAPH +0xB050 0x7659 #CJK UNIFIED IDEOGRAPH +0xB051 0x765A #CJK UNIFIED IDEOGRAPH +0xB052 0x765B #CJK UNIFIED IDEOGRAPH +0xB053 0x765D #CJK UNIFIED IDEOGRAPH +0xB054 0x765F #CJK UNIFIED IDEOGRAPH +0xB055 0x7660 #CJK UNIFIED IDEOGRAPH +0xB056 0x7661 #CJK UNIFIED IDEOGRAPH +0xB057 0x7662 #CJK UNIFIED IDEOGRAPH +0xB058 0x7664 #CJK UNIFIED IDEOGRAPH +0xB059 0x7665 #CJK UNIFIED IDEOGRAPH +0xB05A 0x7666 #CJK UNIFIED IDEOGRAPH +0xB05B 0x7667 #CJK UNIFIED IDEOGRAPH +0xB05C 0x7668 #CJK UNIFIED IDEOGRAPH +0xB05D 0x7669 #CJK UNIFIED IDEOGRAPH +0xB05E 0x766A #CJK UNIFIED IDEOGRAPH +0xB05F 0x766C #CJK UNIFIED IDEOGRAPH +0xB060 0x766D #CJK UNIFIED IDEOGRAPH +0xB061 0x766E #CJK UNIFIED IDEOGRAPH +0xB062 0x7670 #CJK UNIFIED IDEOGRAPH +0xB063 0x7671 #CJK UNIFIED IDEOGRAPH +0xB064 0x7672 #CJK UNIFIED IDEOGRAPH +0xB065 0x7673 #CJK UNIFIED IDEOGRAPH +0xB066 0x7674 #CJK UNIFIED IDEOGRAPH +0xB067 0x7675 #CJK UNIFIED IDEOGRAPH +0xB068 0x7676 #CJK UNIFIED IDEOGRAPH +0xB069 0x7677 #CJK UNIFIED IDEOGRAPH +0xB06A 0x7679 #CJK UNIFIED IDEOGRAPH +0xB06B 0x767A #CJK UNIFIED IDEOGRAPH +0xB06C 0x767C #CJK UNIFIED IDEOGRAPH +0xB06D 0x767F #CJK UNIFIED IDEOGRAPH +0xB06E 0x7680 #CJK UNIFIED IDEOGRAPH +0xB06F 0x7681 #CJK UNIFIED IDEOGRAPH +0xB070 0x7683 #CJK UNIFIED IDEOGRAPH +0xB071 0x7685 #CJK UNIFIED IDEOGRAPH +0xB072 0x7689 #CJK UNIFIED IDEOGRAPH +0xB073 0x768A #CJK UNIFIED IDEOGRAPH +0xB074 0x768C #CJK UNIFIED IDEOGRAPH +0xB075 0x768D #CJK UNIFIED IDEOGRAPH +0xB076 0x768F #CJK UNIFIED IDEOGRAPH +0xB077 0x7690 #CJK UNIFIED IDEOGRAPH +0xB078 0x7692 #CJK UNIFIED IDEOGRAPH +0xB079 0x7694 #CJK UNIFIED IDEOGRAPH +0xB07A 0x7695 #CJK UNIFIED IDEOGRAPH +0xB07B 0x7697 #CJK UNIFIED IDEOGRAPH +0xB07C 0x7698 #CJK UNIFIED IDEOGRAPH +0xB07D 0x769A #CJK UNIFIED IDEOGRAPH +0xB07E 0x769B #CJK UNIFIED IDEOGRAPH +0xB080 0x769C #CJK UNIFIED IDEOGRAPH +0xB081 0x769D #CJK UNIFIED IDEOGRAPH +0xB082 0x769E #CJK UNIFIED IDEOGRAPH +0xB083 0x769F #CJK UNIFIED IDEOGRAPH +0xB084 0x76A0 #CJK UNIFIED IDEOGRAPH +0xB085 0x76A1 #CJK UNIFIED IDEOGRAPH +0xB086 0x76A2 #CJK UNIFIED IDEOGRAPH +0xB087 0x76A3 #CJK UNIFIED IDEOGRAPH +0xB088 0x76A5 #CJK UNIFIED IDEOGRAPH +0xB089 0x76A6 #CJK UNIFIED IDEOGRAPH +0xB08A 0x76A7 #CJK UNIFIED IDEOGRAPH +0xB08B 0x76A8 #CJK UNIFIED IDEOGRAPH +0xB08C 0x76A9 #CJK UNIFIED IDEOGRAPH +0xB08D 0x76AA #CJK UNIFIED IDEOGRAPH +0xB08E 0x76AB #CJK UNIFIED IDEOGRAPH +0xB08F 0x76AC #CJK UNIFIED IDEOGRAPH +0xB090 0x76AD #CJK UNIFIED IDEOGRAPH +0xB091 0x76AF #CJK UNIFIED IDEOGRAPH +0xB092 0x76B0 #CJK UNIFIED IDEOGRAPH +0xB093 0x76B3 #CJK UNIFIED IDEOGRAPH +0xB094 0x76B5 #CJK UNIFIED IDEOGRAPH +0xB095 0x76B6 #CJK UNIFIED IDEOGRAPH +0xB096 0x76B7 #CJK UNIFIED IDEOGRAPH +0xB097 0x76B8 #CJK UNIFIED IDEOGRAPH +0xB098 0x76B9 #CJK UNIFIED IDEOGRAPH +0xB099 0x76BA #CJK UNIFIED IDEOGRAPH +0xB09A 0x76BB #CJK UNIFIED IDEOGRAPH +0xB09B 0x76BC #CJK UNIFIED IDEOGRAPH +0xB09C 0x76BD #CJK UNIFIED IDEOGRAPH +0xB09D 0x76BE #CJK UNIFIED IDEOGRAPH +0xB09E 0x76C0 #CJK UNIFIED IDEOGRAPH +0xB09F 0x76C1 #CJK UNIFIED IDEOGRAPH +0xB0A0 0x76C3 #CJK UNIFIED IDEOGRAPH +0xB0A1 0x554A #CJK UNIFIED IDEOGRAPH +0xB0A2 0x963F #CJK UNIFIED IDEOGRAPH +0xB0A3 0x57C3 #CJK UNIFIED IDEOGRAPH +0xB0A4 0x6328 #CJK UNIFIED IDEOGRAPH +0xB0A5 0x54CE #CJK UNIFIED IDEOGRAPH +0xB0A6 0x5509 #CJK UNIFIED IDEOGRAPH +0xB0A7 0x54C0 #CJK UNIFIED IDEOGRAPH +0xB0A8 0x7691 #CJK UNIFIED IDEOGRAPH +0xB0A9 0x764C #CJK UNIFIED IDEOGRAPH +0xB0AA 0x853C #CJK UNIFIED IDEOGRAPH +0xB0AB 0x77EE #CJK UNIFIED IDEOGRAPH +0xB0AC 0x827E #CJK UNIFIED IDEOGRAPH +0xB0AD 0x788D #CJK UNIFIED IDEOGRAPH +0xB0AE 0x7231 #CJK UNIFIED IDEOGRAPH +0xB0AF 0x9698 #CJK UNIFIED IDEOGRAPH +0xB0B0 0x978D #CJK UNIFIED IDEOGRAPH +0xB0B1 0x6C28 #CJK UNIFIED IDEOGRAPH +0xB0B2 0x5B89 #CJK UNIFIED IDEOGRAPH +0xB0B3 0x4FFA #CJK UNIFIED IDEOGRAPH +0xB0B4 0x6309 #CJK UNIFIED IDEOGRAPH +0xB0B5 0x6697 #CJK UNIFIED IDEOGRAPH +0xB0B6 0x5CB8 #CJK UNIFIED IDEOGRAPH +0xB0B7 0x80FA #CJK UNIFIED IDEOGRAPH +0xB0B8 0x6848 #CJK UNIFIED IDEOGRAPH +0xB0B9 0x80AE #CJK UNIFIED IDEOGRAPH +0xB0BA 0x6602 #CJK UNIFIED IDEOGRAPH +0xB0BB 0x76CE #CJK UNIFIED IDEOGRAPH +0xB0BC 0x51F9 #CJK UNIFIED IDEOGRAPH +0xB0BD 0x6556 #CJK UNIFIED IDEOGRAPH +0xB0BE 0x71AC #CJK UNIFIED IDEOGRAPH +0xB0BF 0x7FF1 #CJK UNIFIED IDEOGRAPH +0xB0C0 0x8884 #CJK UNIFIED IDEOGRAPH +0xB0C1 0x50B2 #CJK UNIFIED IDEOGRAPH +0xB0C2 0x5965 #CJK UNIFIED IDEOGRAPH +0xB0C3 0x61CA #CJK UNIFIED IDEOGRAPH +0xB0C4 0x6FB3 #CJK UNIFIED IDEOGRAPH +0xB0C5 0x82AD #CJK UNIFIED IDEOGRAPH +0xB0C6 0x634C #CJK UNIFIED IDEOGRAPH +0xB0C7 0x6252 #CJK UNIFIED IDEOGRAPH +0xB0C8 0x53ED #CJK UNIFIED IDEOGRAPH +0xB0C9 0x5427 #CJK UNIFIED IDEOGRAPH +0xB0CA 0x7B06 #CJK UNIFIED IDEOGRAPH +0xB0CB 0x516B #CJK UNIFIED IDEOGRAPH +0xB0CC 0x75A4 #CJK UNIFIED IDEOGRAPH +0xB0CD 0x5DF4 #CJK UNIFIED IDEOGRAPH +0xB0CE 0x62D4 #CJK UNIFIED IDEOGRAPH +0xB0CF 0x8DCB #CJK UNIFIED IDEOGRAPH +0xB0D0 0x9776 #CJK UNIFIED IDEOGRAPH +0xB0D1 0x628A #CJK UNIFIED IDEOGRAPH +0xB0D2 0x8019 #CJK UNIFIED IDEOGRAPH +0xB0D3 0x575D #CJK UNIFIED IDEOGRAPH +0xB0D4 0x9738 #CJK UNIFIED IDEOGRAPH +0xB0D5 0x7F62 #CJK UNIFIED IDEOGRAPH +0xB0D6 0x7238 #CJK UNIFIED IDEOGRAPH +0xB0D7 0x767D #CJK UNIFIED IDEOGRAPH +0xB0D8 0x67CF #CJK UNIFIED IDEOGRAPH +0xB0D9 0x767E #CJK UNIFIED IDEOGRAPH +0xB0DA 0x6446 #CJK UNIFIED IDEOGRAPH +0xB0DB 0x4F70 #CJK UNIFIED IDEOGRAPH +0xB0DC 0x8D25 #CJK UNIFIED IDEOGRAPH +0xB0DD 0x62DC #CJK UNIFIED IDEOGRAPH +0xB0DE 0x7A17 #CJK UNIFIED IDEOGRAPH +0xB0DF 0x6591 #CJK UNIFIED IDEOGRAPH +0xB0E0 0x73ED #CJK UNIFIED IDEOGRAPH +0xB0E1 0x642C #CJK UNIFIED IDEOGRAPH +0xB0E2 0x6273 #CJK UNIFIED IDEOGRAPH +0xB0E3 0x822C #CJK UNIFIED IDEOGRAPH +0xB0E4 0x9881 #CJK UNIFIED IDEOGRAPH +0xB0E5 0x677F #CJK UNIFIED IDEOGRAPH +0xB0E6 0x7248 #CJK UNIFIED IDEOGRAPH +0xB0E7 0x626E #CJK UNIFIED IDEOGRAPH +0xB0E8 0x62CC #CJK UNIFIED IDEOGRAPH +0xB0E9 0x4F34 #CJK UNIFIED IDEOGRAPH +0xB0EA 0x74E3 #CJK UNIFIED IDEOGRAPH +0xB0EB 0x534A #CJK UNIFIED IDEOGRAPH +0xB0EC 0x529E #CJK UNIFIED IDEOGRAPH +0xB0ED 0x7ECA #CJK UNIFIED IDEOGRAPH +0xB0EE 0x90A6 #CJK UNIFIED IDEOGRAPH +0xB0EF 0x5E2E #CJK UNIFIED IDEOGRAPH +0xB0F0 0x6886 #CJK UNIFIED IDEOGRAPH +0xB0F1 0x699C #CJK UNIFIED IDEOGRAPH +0xB0F2 0x8180 #CJK UNIFIED IDEOGRAPH +0xB0F3 0x7ED1 #CJK UNIFIED IDEOGRAPH +0xB0F4 0x68D2 #CJK UNIFIED IDEOGRAPH +0xB0F5 0x78C5 #CJK UNIFIED IDEOGRAPH +0xB0F6 0x868C #CJK UNIFIED IDEOGRAPH +0xB0F7 0x9551 #CJK UNIFIED IDEOGRAPH +0xB0F8 0x508D #CJK UNIFIED IDEOGRAPH +0xB0F9 0x8C24 #CJK UNIFIED IDEOGRAPH +0xB0FA 0x82DE #CJK UNIFIED IDEOGRAPH +0xB0FB 0x80DE #CJK UNIFIED IDEOGRAPH +0xB0FC 0x5305 #CJK UNIFIED IDEOGRAPH +0xB0FD 0x8912 #CJK UNIFIED IDEOGRAPH +0xB0FE 0x5265 #CJK UNIFIED IDEOGRAPH +0xB140 0x76C4 #CJK UNIFIED IDEOGRAPH +0xB141 0x76C7 #CJK UNIFIED IDEOGRAPH +0xB142 0x76C9 #CJK UNIFIED IDEOGRAPH +0xB143 0x76CB #CJK UNIFIED IDEOGRAPH +0xB144 0x76CC #CJK UNIFIED IDEOGRAPH +0xB145 0x76D3 #CJK UNIFIED IDEOGRAPH +0xB146 0x76D5 #CJK UNIFIED IDEOGRAPH +0xB147 0x76D9 #CJK UNIFIED IDEOGRAPH +0xB148 0x76DA #CJK UNIFIED IDEOGRAPH +0xB149 0x76DC #CJK UNIFIED IDEOGRAPH +0xB14A 0x76DD #CJK UNIFIED IDEOGRAPH +0xB14B 0x76DE #CJK UNIFIED IDEOGRAPH +0xB14C 0x76E0 #CJK UNIFIED IDEOGRAPH +0xB14D 0x76E1 #CJK UNIFIED IDEOGRAPH +0xB14E 0x76E2 #CJK UNIFIED IDEOGRAPH +0xB14F 0x76E3 #CJK UNIFIED IDEOGRAPH +0xB150 0x76E4 #CJK UNIFIED IDEOGRAPH +0xB151 0x76E6 #CJK UNIFIED IDEOGRAPH +0xB152 0x76E7 #CJK UNIFIED IDEOGRAPH +0xB153 0x76E8 #CJK UNIFIED IDEOGRAPH +0xB154 0x76E9 #CJK UNIFIED IDEOGRAPH +0xB155 0x76EA #CJK UNIFIED IDEOGRAPH +0xB156 0x76EB #CJK UNIFIED IDEOGRAPH +0xB157 0x76EC #CJK UNIFIED IDEOGRAPH +0xB158 0x76ED #CJK UNIFIED IDEOGRAPH +0xB159 0x76F0 #CJK UNIFIED IDEOGRAPH +0xB15A 0x76F3 #CJK UNIFIED IDEOGRAPH +0xB15B 0x76F5 #CJK UNIFIED IDEOGRAPH +0xB15C 0x76F6 #CJK UNIFIED IDEOGRAPH +0xB15D 0x76F7 #CJK UNIFIED IDEOGRAPH +0xB15E 0x76FA #CJK UNIFIED IDEOGRAPH +0xB15F 0x76FB #CJK UNIFIED IDEOGRAPH +0xB160 0x76FD #CJK UNIFIED IDEOGRAPH +0xB161 0x76FF #CJK UNIFIED IDEOGRAPH +0xB162 0x7700 #CJK UNIFIED IDEOGRAPH +0xB163 0x7702 #CJK UNIFIED IDEOGRAPH +0xB164 0x7703 #CJK UNIFIED IDEOGRAPH +0xB165 0x7705 #CJK UNIFIED IDEOGRAPH +0xB166 0x7706 #CJK UNIFIED IDEOGRAPH +0xB167 0x770A #CJK UNIFIED IDEOGRAPH +0xB168 0x770C #CJK UNIFIED IDEOGRAPH +0xB169 0x770E #CJK UNIFIED IDEOGRAPH +0xB16A 0x770F #CJK UNIFIED IDEOGRAPH +0xB16B 0x7710 #CJK UNIFIED IDEOGRAPH +0xB16C 0x7711 #CJK UNIFIED IDEOGRAPH +0xB16D 0x7712 #CJK UNIFIED IDEOGRAPH +0xB16E 0x7713 #CJK UNIFIED IDEOGRAPH +0xB16F 0x7714 #CJK UNIFIED IDEOGRAPH +0xB170 0x7715 #CJK UNIFIED IDEOGRAPH +0xB171 0x7716 #CJK UNIFIED IDEOGRAPH +0xB172 0x7717 #CJK UNIFIED IDEOGRAPH +0xB173 0x7718 #CJK UNIFIED IDEOGRAPH +0xB174 0x771B #CJK UNIFIED IDEOGRAPH +0xB175 0x771C #CJK UNIFIED IDEOGRAPH +0xB176 0x771D #CJK UNIFIED IDEOGRAPH +0xB177 0x771E #CJK UNIFIED IDEOGRAPH +0xB178 0x7721 #CJK UNIFIED IDEOGRAPH +0xB179 0x7723 #CJK UNIFIED IDEOGRAPH +0xB17A 0x7724 #CJK UNIFIED IDEOGRAPH +0xB17B 0x7725 #CJK UNIFIED IDEOGRAPH +0xB17C 0x7727 #CJK UNIFIED IDEOGRAPH +0xB17D 0x772A #CJK UNIFIED IDEOGRAPH +0xB17E 0x772B #CJK UNIFIED IDEOGRAPH +0xB180 0x772C #CJK UNIFIED IDEOGRAPH +0xB181 0x772E #CJK UNIFIED IDEOGRAPH +0xB182 0x7730 #CJK UNIFIED IDEOGRAPH +0xB183 0x7731 #CJK UNIFIED IDEOGRAPH +0xB184 0x7732 #CJK UNIFIED IDEOGRAPH +0xB185 0x7733 #CJK UNIFIED IDEOGRAPH +0xB186 0x7734 #CJK UNIFIED IDEOGRAPH +0xB187 0x7739 #CJK UNIFIED IDEOGRAPH +0xB188 0x773B #CJK UNIFIED IDEOGRAPH +0xB189 0x773D #CJK UNIFIED IDEOGRAPH +0xB18A 0x773E #CJK UNIFIED IDEOGRAPH +0xB18B 0x773F #CJK UNIFIED IDEOGRAPH +0xB18C 0x7742 #CJK UNIFIED IDEOGRAPH +0xB18D 0x7744 #CJK UNIFIED IDEOGRAPH +0xB18E 0x7745 #CJK UNIFIED IDEOGRAPH +0xB18F 0x7746 #CJK UNIFIED IDEOGRAPH +0xB190 0x7748 #CJK UNIFIED IDEOGRAPH +0xB191 0x7749 #CJK UNIFIED IDEOGRAPH +0xB192 0x774A #CJK UNIFIED IDEOGRAPH +0xB193 0x774B #CJK UNIFIED IDEOGRAPH +0xB194 0x774C #CJK UNIFIED IDEOGRAPH +0xB195 0x774D #CJK UNIFIED IDEOGRAPH +0xB196 0x774E #CJK UNIFIED IDEOGRAPH +0xB197 0x774F #CJK UNIFIED IDEOGRAPH +0xB198 0x7752 #CJK UNIFIED IDEOGRAPH +0xB199 0x7753 #CJK UNIFIED IDEOGRAPH +0xB19A 0x7754 #CJK UNIFIED IDEOGRAPH +0xB19B 0x7755 #CJK UNIFIED IDEOGRAPH +0xB19C 0x7756 #CJK UNIFIED IDEOGRAPH +0xB19D 0x7757 #CJK UNIFIED IDEOGRAPH +0xB19E 0x7758 #CJK UNIFIED IDEOGRAPH +0xB19F 0x7759 #CJK UNIFIED IDEOGRAPH +0xB1A0 0x775C #CJK UNIFIED IDEOGRAPH +0xB1A1 0x8584 #CJK UNIFIED IDEOGRAPH +0xB1A2 0x96F9 #CJK UNIFIED IDEOGRAPH +0xB1A3 0x4FDD #CJK UNIFIED IDEOGRAPH +0xB1A4 0x5821 #CJK UNIFIED IDEOGRAPH +0xB1A5 0x9971 #CJK UNIFIED IDEOGRAPH +0xB1A6 0x5B9D #CJK UNIFIED IDEOGRAPH +0xB1A7 0x62B1 #CJK UNIFIED IDEOGRAPH +0xB1A8 0x62A5 #CJK UNIFIED IDEOGRAPH +0xB1A9 0x66B4 #CJK UNIFIED IDEOGRAPH +0xB1AA 0x8C79 #CJK UNIFIED IDEOGRAPH +0xB1AB 0x9C8D #CJK UNIFIED IDEOGRAPH +0xB1AC 0x7206 #CJK UNIFIED IDEOGRAPH +0xB1AD 0x676F #CJK UNIFIED IDEOGRAPH +0xB1AE 0x7891 #CJK UNIFIED IDEOGRAPH +0xB1AF 0x60B2 #CJK UNIFIED IDEOGRAPH +0xB1B0 0x5351 #CJK UNIFIED IDEOGRAPH +0xB1B1 0x5317 #CJK UNIFIED IDEOGRAPH +0xB1B2 0x8F88 #CJK UNIFIED IDEOGRAPH +0xB1B3 0x80CC #CJK UNIFIED IDEOGRAPH +0xB1B4 0x8D1D #CJK UNIFIED IDEOGRAPH +0xB1B5 0x94A1 #CJK UNIFIED IDEOGRAPH +0xB1B6 0x500D #CJK UNIFIED IDEOGRAPH +0xB1B7 0x72C8 #CJK UNIFIED IDEOGRAPH +0xB1B8 0x5907 #CJK UNIFIED IDEOGRAPH +0xB1B9 0x60EB #CJK UNIFIED IDEOGRAPH +0xB1BA 0x7119 #CJK UNIFIED IDEOGRAPH +0xB1BB 0x88AB #CJK UNIFIED IDEOGRAPH +0xB1BC 0x5954 #CJK UNIFIED IDEOGRAPH +0xB1BD 0x82EF #CJK UNIFIED IDEOGRAPH +0xB1BE 0x672C #CJK UNIFIED IDEOGRAPH +0xB1BF 0x7B28 #CJK UNIFIED IDEOGRAPH +0xB1C0 0x5D29 #CJK UNIFIED IDEOGRAPH +0xB1C1 0x7EF7 #CJK UNIFIED IDEOGRAPH +0xB1C2 0x752D #CJK UNIFIED IDEOGRAPH +0xB1C3 0x6CF5 #CJK UNIFIED IDEOGRAPH +0xB1C4 0x8E66 #CJK UNIFIED IDEOGRAPH +0xB1C5 0x8FF8 #CJK UNIFIED IDEOGRAPH +0xB1C6 0x903C #CJK UNIFIED IDEOGRAPH +0xB1C7 0x9F3B #CJK UNIFIED IDEOGRAPH +0xB1C8 0x6BD4 #CJK UNIFIED IDEOGRAPH +0xB1C9 0x9119 #CJK UNIFIED IDEOGRAPH +0xB1CA 0x7B14 #CJK UNIFIED IDEOGRAPH +0xB1CB 0x5F7C #CJK UNIFIED IDEOGRAPH +0xB1CC 0x78A7 #CJK UNIFIED IDEOGRAPH +0xB1CD 0x84D6 #CJK UNIFIED IDEOGRAPH +0xB1CE 0x853D #CJK UNIFIED IDEOGRAPH +0xB1CF 0x6BD5 #CJK UNIFIED IDEOGRAPH +0xB1D0 0x6BD9 #CJK UNIFIED IDEOGRAPH +0xB1D1 0x6BD6 #CJK UNIFIED IDEOGRAPH +0xB1D2 0x5E01 #CJK UNIFIED IDEOGRAPH +0xB1D3 0x5E87 #CJK UNIFIED IDEOGRAPH +0xB1D4 0x75F9 #CJK UNIFIED IDEOGRAPH +0xB1D5 0x95ED #CJK UNIFIED IDEOGRAPH +0xB1D6 0x655D #CJK UNIFIED IDEOGRAPH +0xB1D7 0x5F0A #CJK UNIFIED IDEOGRAPH +0xB1D8 0x5FC5 #CJK UNIFIED IDEOGRAPH +0xB1D9 0x8F9F #CJK UNIFIED IDEOGRAPH +0xB1DA 0x58C1 #CJK UNIFIED IDEOGRAPH +0xB1DB 0x81C2 #CJK UNIFIED IDEOGRAPH +0xB1DC 0x907F #CJK UNIFIED IDEOGRAPH +0xB1DD 0x965B #CJK UNIFIED IDEOGRAPH +0xB1DE 0x97AD #CJK UNIFIED IDEOGRAPH +0xB1DF 0x8FB9 #CJK UNIFIED IDEOGRAPH +0xB1E0 0x7F16 #CJK UNIFIED IDEOGRAPH +0xB1E1 0x8D2C #CJK UNIFIED IDEOGRAPH +0xB1E2 0x6241 #CJK UNIFIED IDEOGRAPH +0xB1E3 0x4FBF #CJK UNIFIED IDEOGRAPH +0xB1E4 0x53D8 #CJK UNIFIED IDEOGRAPH +0xB1E5 0x535E #CJK UNIFIED IDEOGRAPH +0xB1E6 0x8FA8 #CJK UNIFIED IDEOGRAPH +0xB1E7 0x8FA9 #CJK UNIFIED IDEOGRAPH +0xB1E8 0x8FAB #CJK UNIFIED IDEOGRAPH +0xB1E9 0x904D #CJK UNIFIED IDEOGRAPH +0xB1EA 0x6807 #CJK UNIFIED IDEOGRAPH +0xB1EB 0x5F6A #CJK UNIFIED IDEOGRAPH +0xB1EC 0x8198 #CJK UNIFIED IDEOGRAPH +0xB1ED 0x8868 #CJK UNIFIED IDEOGRAPH +0xB1EE 0x9CD6 #CJK UNIFIED IDEOGRAPH +0xB1EF 0x618B #CJK UNIFIED IDEOGRAPH +0xB1F0 0x522B #CJK UNIFIED IDEOGRAPH +0xB1F1 0x762A #CJK UNIFIED IDEOGRAPH +0xB1F2 0x5F6C #CJK UNIFIED IDEOGRAPH +0xB1F3 0x658C #CJK UNIFIED IDEOGRAPH +0xB1F4 0x6FD2 #CJK UNIFIED IDEOGRAPH +0xB1F5 0x6EE8 #CJK UNIFIED IDEOGRAPH +0xB1F6 0x5BBE #CJK UNIFIED IDEOGRAPH +0xB1F7 0x6448 #CJK UNIFIED IDEOGRAPH +0xB1F8 0x5175 #CJK UNIFIED IDEOGRAPH +0xB1F9 0x51B0 #CJK UNIFIED IDEOGRAPH +0xB1FA 0x67C4 #CJK UNIFIED IDEOGRAPH +0xB1FB 0x4E19 #CJK UNIFIED IDEOGRAPH +0xB1FC 0x79C9 #CJK UNIFIED IDEOGRAPH +0xB1FD 0x997C #CJK UNIFIED IDEOGRAPH +0xB1FE 0x70B3 #CJK UNIFIED IDEOGRAPH +0xB240 0x775D #CJK UNIFIED IDEOGRAPH +0xB241 0x775E #CJK UNIFIED IDEOGRAPH +0xB242 0x775F #CJK UNIFIED IDEOGRAPH +0xB243 0x7760 #CJK UNIFIED IDEOGRAPH +0xB244 0x7764 #CJK UNIFIED IDEOGRAPH +0xB245 0x7767 #CJK UNIFIED IDEOGRAPH +0xB246 0x7769 #CJK UNIFIED IDEOGRAPH +0xB247 0x776A #CJK UNIFIED IDEOGRAPH +0xB248 0x776D #CJK UNIFIED IDEOGRAPH +0xB249 0x776E #CJK UNIFIED IDEOGRAPH +0xB24A 0x776F #CJK UNIFIED IDEOGRAPH +0xB24B 0x7770 #CJK UNIFIED IDEOGRAPH +0xB24C 0x7771 #CJK UNIFIED IDEOGRAPH +0xB24D 0x7772 #CJK UNIFIED IDEOGRAPH +0xB24E 0x7773 #CJK UNIFIED IDEOGRAPH +0xB24F 0x7774 #CJK UNIFIED IDEOGRAPH +0xB250 0x7775 #CJK UNIFIED IDEOGRAPH +0xB251 0x7776 #CJK UNIFIED IDEOGRAPH +0xB252 0x7777 #CJK UNIFIED IDEOGRAPH +0xB253 0x7778 #CJK UNIFIED IDEOGRAPH +0xB254 0x777A #CJK UNIFIED IDEOGRAPH +0xB255 0x777B #CJK UNIFIED IDEOGRAPH +0xB256 0x777C #CJK UNIFIED IDEOGRAPH +0xB257 0x7781 #CJK UNIFIED IDEOGRAPH +0xB258 0x7782 #CJK UNIFIED IDEOGRAPH +0xB259 0x7783 #CJK UNIFIED IDEOGRAPH +0xB25A 0x7786 #CJK UNIFIED IDEOGRAPH +0xB25B 0x7787 #CJK UNIFIED IDEOGRAPH +0xB25C 0x7788 #CJK UNIFIED IDEOGRAPH +0xB25D 0x7789 #CJK UNIFIED IDEOGRAPH +0xB25E 0x778A #CJK UNIFIED IDEOGRAPH +0xB25F 0x778B #CJK UNIFIED IDEOGRAPH +0xB260 0x778F #CJK UNIFIED IDEOGRAPH +0xB261 0x7790 #CJK UNIFIED IDEOGRAPH +0xB262 0x7793 #CJK UNIFIED IDEOGRAPH +0xB263 0x7794 #CJK UNIFIED IDEOGRAPH +0xB264 0x7795 #CJK UNIFIED IDEOGRAPH +0xB265 0x7796 #CJK UNIFIED IDEOGRAPH +0xB266 0x7797 #CJK UNIFIED IDEOGRAPH +0xB267 0x7798 #CJK UNIFIED IDEOGRAPH +0xB268 0x7799 #CJK UNIFIED IDEOGRAPH +0xB269 0x779A #CJK UNIFIED IDEOGRAPH +0xB26A 0x779B #CJK UNIFIED IDEOGRAPH +0xB26B 0x779C #CJK UNIFIED IDEOGRAPH +0xB26C 0x779D #CJK UNIFIED IDEOGRAPH +0xB26D 0x779E #CJK UNIFIED IDEOGRAPH +0xB26E 0x77A1 #CJK UNIFIED IDEOGRAPH +0xB26F 0x77A3 #CJK UNIFIED IDEOGRAPH +0xB270 0x77A4 #CJK UNIFIED IDEOGRAPH +0xB271 0x77A6 #CJK UNIFIED IDEOGRAPH +0xB272 0x77A8 #CJK UNIFIED IDEOGRAPH +0xB273 0x77AB #CJK UNIFIED IDEOGRAPH +0xB274 0x77AD #CJK UNIFIED IDEOGRAPH +0xB275 0x77AE #CJK UNIFIED IDEOGRAPH +0xB276 0x77AF #CJK UNIFIED IDEOGRAPH +0xB277 0x77B1 #CJK UNIFIED IDEOGRAPH +0xB278 0x77B2 #CJK UNIFIED IDEOGRAPH +0xB279 0x77B4 #CJK UNIFIED IDEOGRAPH +0xB27A 0x77B6 #CJK UNIFIED IDEOGRAPH +0xB27B 0x77B7 #CJK UNIFIED IDEOGRAPH +0xB27C 0x77B8 #CJK UNIFIED IDEOGRAPH +0xB27D 0x77B9 #CJK UNIFIED IDEOGRAPH +0xB27E 0x77BA #CJK UNIFIED IDEOGRAPH +0xB280 0x77BC #CJK UNIFIED IDEOGRAPH +0xB281 0x77BE #CJK UNIFIED IDEOGRAPH +0xB282 0x77C0 #CJK UNIFIED IDEOGRAPH +0xB283 0x77C1 #CJK UNIFIED IDEOGRAPH +0xB284 0x77C2 #CJK UNIFIED IDEOGRAPH +0xB285 0x77C3 #CJK UNIFIED IDEOGRAPH +0xB286 0x77C4 #CJK UNIFIED IDEOGRAPH +0xB287 0x77C5 #CJK UNIFIED IDEOGRAPH +0xB288 0x77C6 #CJK UNIFIED IDEOGRAPH +0xB289 0x77C7 #CJK UNIFIED IDEOGRAPH +0xB28A 0x77C8 #CJK UNIFIED IDEOGRAPH +0xB28B 0x77C9 #CJK UNIFIED IDEOGRAPH +0xB28C 0x77CA #CJK UNIFIED IDEOGRAPH +0xB28D 0x77CB #CJK UNIFIED IDEOGRAPH +0xB28E 0x77CC #CJK UNIFIED IDEOGRAPH +0xB28F 0x77CE #CJK UNIFIED IDEOGRAPH +0xB290 0x77CF #CJK UNIFIED IDEOGRAPH +0xB291 0x77D0 #CJK UNIFIED IDEOGRAPH +0xB292 0x77D1 #CJK UNIFIED IDEOGRAPH +0xB293 0x77D2 #CJK UNIFIED IDEOGRAPH +0xB294 0x77D3 #CJK UNIFIED IDEOGRAPH +0xB295 0x77D4 #CJK UNIFIED IDEOGRAPH +0xB296 0x77D5 #CJK UNIFIED IDEOGRAPH +0xB297 0x77D6 #CJK UNIFIED IDEOGRAPH +0xB298 0x77D8 #CJK UNIFIED IDEOGRAPH +0xB299 0x77D9 #CJK UNIFIED IDEOGRAPH +0xB29A 0x77DA #CJK UNIFIED IDEOGRAPH +0xB29B 0x77DD #CJK UNIFIED IDEOGRAPH +0xB29C 0x77DE #CJK UNIFIED IDEOGRAPH +0xB29D 0x77DF #CJK UNIFIED IDEOGRAPH +0xB29E 0x77E0 #CJK UNIFIED IDEOGRAPH +0xB29F 0x77E1 #CJK UNIFIED IDEOGRAPH +0xB2A0 0x77E4 #CJK UNIFIED IDEOGRAPH +0xB2A1 0x75C5 #CJK UNIFIED IDEOGRAPH +0xB2A2 0x5E76 #CJK UNIFIED IDEOGRAPH +0xB2A3 0x73BB #CJK UNIFIED IDEOGRAPH +0xB2A4 0x83E0 #CJK UNIFIED IDEOGRAPH +0xB2A5 0x64AD #CJK UNIFIED IDEOGRAPH +0xB2A6 0x62E8 #CJK UNIFIED IDEOGRAPH +0xB2A7 0x94B5 #CJK UNIFIED IDEOGRAPH +0xB2A8 0x6CE2 #CJK UNIFIED IDEOGRAPH +0xB2A9 0x535A #CJK UNIFIED IDEOGRAPH +0xB2AA 0x52C3 #CJK UNIFIED IDEOGRAPH +0xB2AB 0x640F #CJK UNIFIED IDEOGRAPH +0xB2AC 0x94C2 #CJK UNIFIED IDEOGRAPH +0xB2AD 0x7B94 #CJK UNIFIED IDEOGRAPH +0xB2AE 0x4F2F #CJK UNIFIED IDEOGRAPH +0xB2AF 0x5E1B #CJK UNIFIED IDEOGRAPH +0xB2B0 0x8236 #CJK UNIFIED IDEOGRAPH +0xB2B1 0x8116 #CJK UNIFIED IDEOGRAPH +0xB2B2 0x818A #CJK UNIFIED IDEOGRAPH +0xB2B3 0x6E24 #CJK UNIFIED IDEOGRAPH +0xB2B4 0x6CCA #CJK UNIFIED IDEOGRAPH +0xB2B5 0x9A73 #CJK UNIFIED IDEOGRAPH +0xB2B6 0x6355 #CJK UNIFIED IDEOGRAPH +0xB2B7 0x535C #CJK UNIFIED IDEOGRAPH +0xB2B8 0x54FA #CJK UNIFIED IDEOGRAPH +0xB2B9 0x8865 #CJK UNIFIED IDEOGRAPH +0xB2BA 0x57E0 #CJK UNIFIED IDEOGRAPH +0xB2BB 0x4E0D #CJK UNIFIED IDEOGRAPH +0xB2BC 0x5E03 #CJK UNIFIED IDEOGRAPH +0xB2BD 0x6B65 #CJK UNIFIED IDEOGRAPH +0xB2BE 0x7C3F #CJK UNIFIED IDEOGRAPH +0xB2BF 0x90E8 #CJK UNIFIED IDEOGRAPH +0xB2C0 0x6016 #CJK UNIFIED IDEOGRAPH +0xB2C1 0x64E6 #CJK UNIFIED IDEOGRAPH +0xB2C2 0x731C #CJK UNIFIED IDEOGRAPH +0xB2C3 0x88C1 #CJK UNIFIED IDEOGRAPH +0xB2C4 0x6750 #CJK UNIFIED IDEOGRAPH +0xB2C5 0x624D #CJK UNIFIED IDEOGRAPH +0xB2C6 0x8D22 #CJK UNIFIED IDEOGRAPH +0xB2C7 0x776C #CJK UNIFIED IDEOGRAPH +0xB2C8 0x8E29 #CJK UNIFIED IDEOGRAPH +0xB2C9 0x91C7 #CJK UNIFIED IDEOGRAPH +0xB2CA 0x5F69 #CJK UNIFIED IDEOGRAPH +0xB2CB 0x83DC #CJK UNIFIED IDEOGRAPH +0xB2CC 0x8521 #CJK UNIFIED IDEOGRAPH +0xB2CD 0x9910 #CJK UNIFIED IDEOGRAPH +0xB2CE 0x53C2 #CJK UNIFIED IDEOGRAPH +0xB2CF 0x8695 #CJK UNIFIED IDEOGRAPH +0xB2D0 0x6B8B #CJK UNIFIED IDEOGRAPH +0xB2D1 0x60ED #CJK UNIFIED IDEOGRAPH +0xB2D2 0x60E8 #CJK UNIFIED IDEOGRAPH +0xB2D3 0x707F #CJK UNIFIED IDEOGRAPH +0xB2D4 0x82CD #CJK UNIFIED IDEOGRAPH +0xB2D5 0x8231 #CJK UNIFIED IDEOGRAPH +0xB2D6 0x4ED3 #CJK UNIFIED IDEOGRAPH +0xB2D7 0x6CA7 #CJK UNIFIED IDEOGRAPH +0xB2D8 0x85CF #CJK UNIFIED IDEOGRAPH +0xB2D9 0x64CD #CJK UNIFIED IDEOGRAPH +0xB2DA 0x7CD9 #CJK UNIFIED IDEOGRAPH +0xB2DB 0x69FD #CJK UNIFIED IDEOGRAPH +0xB2DC 0x66F9 #CJK UNIFIED IDEOGRAPH +0xB2DD 0x8349 #CJK UNIFIED IDEOGRAPH +0xB2DE 0x5395 #CJK UNIFIED IDEOGRAPH +0xB2DF 0x7B56 #CJK UNIFIED IDEOGRAPH +0xB2E0 0x4FA7 #CJK UNIFIED IDEOGRAPH +0xB2E1 0x518C #CJK UNIFIED IDEOGRAPH +0xB2E2 0x6D4B #CJK UNIFIED IDEOGRAPH +0xB2E3 0x5C42 #CJK UNIFIED IDEOGRAPH +0xB2E4 0x8E6D #CJK UNIFIED IDEOGRAPH +0xB2E5 0x63D2 #CJK UNIFIED IDEOGRAPH +0xB2E6 0x53C9 #CJK UNIFIED IDEOGRAPH +0xB2E7 0x832C #CJK UNIFIED IDEOGRAPH +0xB2E8 0x8336 #CJK UNIFIED IDEOGRAPH +0xB2E9 0x67E5 #CJK UNIFIED IDEOGRAPH +0xB2EA 0x78B4 #CJK UNIFIED IDEOGRAPH +0xB2EB 0x643D #CJK UNIFIED IDEOGRAPH +0xB2EC 0x5BDF #CJK UNIFIED IDEOGRAPH +0xB2ED 0x5C94 #CJK UNIFIED IDEOGRAPH +0xB2EE 0x5DEE #CJK UNIFIED IDEOGRAPH +0xB2EF 0x8BE7 #CJK UNIFIED IDEOGRAPH +0xB2F0 0x62C6 #CJK UNIFIED IDEOGRAPH +0xB2F1 0x67F4 #CJK UNIFIED IDEOGRAPH +0xB2F2 0x8C7A #CJK UNIFIED IDEOGRAPH +0xB2F3 0x6400 #CJK UNIFIED IDEOGRAPH +0xB2F4 0x63BA #CJK UNIFIED IDEOGRAPH +0xB2F5 0x8749 #CJK UNIFIED IDEOGRAPH +0xB2F6 0x998B #CJK UNIFIED IDEOGRAPH +0xB2F7 0x8C17 #CJK UNIFIED IDEOGRAPH +0xB2F8 0x7F20 #CJK UNIFIED IDEOGRAPH +0xB2F9 0x94F2 #CJK UNIFIED IDEOGRAPH +0xB2FA 0x4EA7 #CJK UNIFIED IDEOGRAPH +0xB2FB 0x9610 #CJK UNIFIED IDEOGRAPH +0xB2FC 0x98A4 #CJK UNIFIED IDEOGRAPH +0xB2FD 0x660C #CJK UNIFIED IDEOGRAPH +0xB2FE 0x7316 #CJK UNIFIED IDEOGRAPH +0xB340 0x77E6 #CJK UNIFIED IDEOGRAPH +0xB341 0x77E8 #CJK UNIFIED IDEOGRAPH +0xB342 0x77EA #CJK UNIFIED IDEOGRAPH +0xB343 0x77EF #CJK UNIFIED IDEOGRAPH +0xB344 0x77F0 #CJK UNIFIED IDEOGRAPH +0xB345 0x77F1 #CJK UNIFIED IDEOGRAPH +0xB346 0x77F2 #CJK UNIFIED IDEOGRAPH +0xB347 0x77F4 #CJK UNIFIED IDEOGRAPH +0xB348 0x77F5 #CJK UNIFIED IDEOGRAPH +0xB349 0x77F7 #CJK UNIFIED IDEOGRAPH +0xB34A 0x77F9 #CJK UNIFIED IDEOGRAPH +0xB34B 0x77FA #CJK UNIFIED IDEOGRAPH +0xB34C 0x77FB #CJK UNIFIED IDEOGRAPH +0xB34D 0x77FC #CJK UNIFIED IDEOGRAPH +0xB34E 0x7803 #CJK UNIFIED IDEOGRAPH +0xB34F 0x7804 #CJK UNIFIED IDEOGRAPH +0xB350 0x7805 #CJK UNIFIED IDEOGRAPH +0xB351 0x7806 #CJK UNIFIED IDEOGRAPH +0xB352 0x7807 #CJK UNIFIED IDEOGRAPH +0xB353 0x7808 #CJK UNIFIED IDEOGRAPH +0xB354 0x780A #CJK UNIFIED IDEOGRAPH +0xB355 0x780B #CJK UNIFIED IDEOGRAPH +0xB356 0x780E #CJK UNIFIED IDEOGRAPH +0xB357 0x780F #CJK UNIFIED IDEOGRAPH +0xB358 0x7810 #CJK UNIFIED IDEOGRAPH +0xB359 0x7813 #CJK UNIFIED IDEOGRAPH +0xB35A 0x7815 #CJK UNIFIED IDEOGRAPH +0xB35B 0x7819 #CJK UNIFIED IDEOGRAPH +0xB35C 0x781B #CJK UNIFIED IDEOGRAPH +0xB35D 0x781E #CJK UNIFIED IDEOGRAPH +0xB35E 0x7820 #CJK UNIFIED IDEOGRAPH +0xB35F 0x7821 #CJK UNIFIED IDEOGRAPH +0xB360 0x7822 #CJK UNIFIED IDEOGRAPH +0xB361 0x7824 #CJK UNIFIED IDEOGRAPH +0xB362 0x7828 #CJK UNIFIED IDEOGRAPH +0xB363 0x782A #CJK UNIFIED IDEOGRAPH +0xB364 0x782B #CJK UNIFIED IDEOGRAPH +0xB365 0x782E #CJK UNIFIED IDEOGRAPH +0xB366 0x782F #CJK UNIFIED IDEOGRAPH +0xB367 0x7831 #CJK UNIFIED IDEOGRAPH +0xB368 0x7832 #CJK UNIFIED IDEOGRAPH +0xB369 0x7833 #CJK UNIFIED IDEOGRAPH +0xB36A 0x7835 #CJK UNIFIED IDEOGRAPH +0xB36B 0x7836 #CJK UNIFIED IDEOGRAPH +0xB36C 0x783D #CJK UNIFIED IDEOGRAPH +0xB36D 0x783F #CJK UNIFIED IDEOGRAPH +0xB36E 0x7841 #CJK UNIFIED IDEOGRAPH +0xB36F 0x7842 #CJK UNIFIED IDEOGRAPH +0xB370 0x7843 #CJK UNIFIED IDEOGRAPH +0xB371 0x7844 #CJK UNIFIED IDEOGRAPH +0xB372 0x7846 #CJK UNIFIED IDEOGRAPH +0xB373 0x7848 #CJK UNIFIED IDEOGRAPH +0xB374 0x7849 #CJK UNIFIED IDEOGRAPH +0xB375 0x784A #CJK UNIFIED IDEOGRAPH +0xB376 0x784B #CJK UNIFIED IDEOGRAPH +0xB377 0x784D #CJK UNIFIED IDEOGRAPH +0xB378 0x784F #CJK UNIFIED IDEOGRAPH +0xB379 0x7851 #CJK UNIFIED IDEOGRAPH +0xB37A 0x7853 #CJK UNIFIED IDEOGRAPH +0xB37B 0x7854 #CJK UNIFIED IDEOGRAPH +0xB37C 0x7858 #CJK UNIFIED IDEOGRAPH +0xB37D 0x7859 #CJK UNIFIED IDEOGRAPH +0xB37E 0x785A #CJK UNIFIED IDEOGRAPH +0xB380 0x785B #CJK UNIFIED IDEOGRAPH +0xB381 0x785C #CJK UNIFIED IDEOGRAPH +0xB382 0x785E #CJK UNIFIED IDEOGRAPH +0xB383 0x785F #CJK UNIFIED IDEOGRAPH +0xB384 0x7860 #CJK UNIFIED IDEOGRAPH +0xB385 0x7861 #CJK UNIFIED IDEOGRAPH +0xB386 0x7862 #CJK UNIFIED IDEOGRAPH +0xB387 0x7863 #CJK UNIFIED IDEOGRAPH +0xB388 0x7864 #CJK UNIFIED IDEOGRAPH +0xB389 0x7865 #CJK UNIFIED IDEOGRAPH +0xB38A 0x7866 #CJK UNIFIED IDEOGRAPH +0xB38B 0x7867 #CJK UNIFIED IDEOGRAPH +0xB38C 0x7868 #CJK UNIFIED IDEOGRAPH +0xB38D 0x7869 #CJK UNIFIED IDEOGRAPH +0xB38E 0x786F #CJK UNIFIED IDEOGRAPH +0xB38F 0x7870 #CJK UNIFIED IDEOGRAPH +0xB390 0x7871 #CJK UNIFIED IDEOGRAPH +0xB391 0x7872 #CJK UNIFIED IDEOGRAPH +0xB392 0x7873 #CJK UNIFIED IDEOGRAPH +0xB393 0x7874 #CJK UNIFIED IDEOGRAPH +0xB394 0x7875 #CJK UNIFIED IDEOGRAPH +0xB395 0x7876 #CJK UNIFIED IDEOGRAPH +0xB396 0x7878 #CJK UNIFIED IDEOGRAPH +0xB397 0x7879 #CJK UNIFIED IDEOGRAPH +0xB398 0x787A #CJK UNIFIED IDEOGRAPH +0xB399 0x787B #CJK UNIFIED IDEOGRAPH +0xB39A 0x787D #CJK UNIFIED IDEOGRAPH +0xB39B 0x787E #CJK UNIFIED IDEOGRAPH +0xB39C 0x787F #CJK UNIFIED IDEOGRAPH +0xB39D 0x7880 #CJK UNIFIED IDEOGRAPH +0xB39E 0x7881 #CJK UNIFIED IDEOGRAPH +0xB39F 0x7882 #CJK UNIFIED IDEOGRAPH +0xB3A0 0x7883 #CJK UNIFIED IDEOGRAPH +0xB3A1 0x573A #CJK UNIFIED IDEOGRAPH +0xB3A2 0x5C1D #CJK UNIFIED IDEOGRAPH +0xB3A3 0x5E38 #CJK UNIFIED IDEOGRAPH +0xB3A4 0x957F #CJK UNIFIED IDEOGRAPH +0xB3A5 0x507F #CJK UNIFIED IDEOGRAPH +0xB3A6 0x80A0 #CJK UNIFIED IDEOGRAPH +0xB3A7 0x5382 #CJK UNIFIED IDEOGRAPH +0xB3A8 0x655E #CJK UNIFIED IDEOGRAPH +0xB3A9 0x7545 #CJK UNIFIED IDEOGRAPH +0xB3AA 0x5531 #CJK UNIFIED IDEOGRAPH +0xB3AB 0x5021 #CJK UNIFIED IDEOGRAPH +0xB3AC 0x8D85 #CJK UNIFIED IDEOGRAPH +0xB3AD 0x6284 #CJK UNIFIED IDEOGRAPH +0xB3AE 0x949E #CJK UNIFIED IDEOGRAPH +0xB3AF 0x671D #CJK UNIFIED IDEOGRAPH +0xB3B0 0x5632 #CJK UNIFIED IDEOGRAPH +0xB3B1 0x6F6E #CJK UNIFIED IDEOGRAPH +0xB3B2 0x5DE2 #CJK UNIFIED IDEOGRAPH +0xB3B3 0x5435 #CJK UNIFIED IDEOGRAPH +0xB3B4 0x7092 #CJK UNIFIED IDEOGRAPH +0xB3B5 0x8F66 #CJK UNIFIED IDEOGRAPH +0xB3B6 0x626F #CJK UNIFIED IDEOGRAPH +0xB3B7 0x64A4 #CJK UNIFIED IDEOGRAPH +0xB3B8 0x63A3 #CJK UNIFIED IDEOGRAPH +0xB3B9 0x5F7B #CJK UNIFIED IDEOGRAPH +0xB3BA 0x6F88 #CJK UNIFIED IDEOGRAPH +0xB3BB 0x90F4 #CJK UNIFIED IDEOGRAPH +0xB3BC 0x81E3 #CJK UNIFIED IDEOGRAPH +0xB3BD 0x8FB0 #CJK UNIFIED IDEOGRAPH +0xB3BE 0x5C18 #CJK UNIFIED IDEOGRAPH +0xB3BF 0x6668 #CJK UNIFIED IDEOGRAPH +0xB3C0 0x5FF1 #CJK UNIFIED IDEOGRAPH +0xB3C1 0x6C89 #CJK UNIFIED IDEOGRAPH +0xB3C2 0x9648 #CJK UNIFIED IDEOGRAPH +0xB3C3 0x8D81 #CJK UNIFIED IDEOGRAPH +0xB3C4 0x886C #CJK UNIFIED IDEOGRAPH +0xB3C5 0x6491 #CJK UNIFIED IDEOGRAPH +0xB3C6 0x79F0 #CJK UNIFIED IDEOGRAPH +0xB3C7 0x57CE #CJK UNIFIED IDEOGRAPH +0xB3C8 0x6A59 #CJK UNIFIED IDEOGRAPH +0xB3C9 0x6210 #CJK UNIFIED IDEOGRAPH +0xB3CA 0x5448 #CJK UNIFIED IDEOGRAPH +0xB3CB 0x4E58 #CJK UNIFIED IDEOGRAPH +0xB3CC 0x7A0B #CJK UNIFIED IDEOGRAPH +0xB3CD 0x60E9 #CJK UNIFIED IDEOGRAPH +0xB3CE 0x6F84 #CJK UNIFIED IDEOGRAPH +0xB3CF 0x8BDA #CJK UNIFIED IDEOGRAPH +0xB3D0 0x627F #CJK UNIFIED IDEOGRAPH +0xB3D1 0x901E #CJK UNIFIED IDEOGRAPH +0xB3D2 0x9A8B #CJK UNIFIED IDEOGRAPH +0xB3D3 0x79E4 #CJK UNIFIED IDEOGRAPH +0xB3D4 0x5403 #CJK UNIFIED IDEOGRAPH +0xB3D5 0x75F4 #CJK UNIFIED IDEOGRAPH +0xB3D6 0x6301 #CJK UNIFIED IDEOGRAPH +0xB3D7 0x5319 #CJK UNIFIED IDEOGRAPH +0xB3D8 0x6C60 #CJK UNIFIED IDEOGRAPH +0xB3D9 0x8FDF #CJK UNIFIED IDEOGRAPH +0xB3DA 0x5F1B #CJK UNIFIED IDEOGRAPH +0xB3DB 0x9A70 #CJK UNIFIED IDEOGRAPH +0xB3DC 0x803B #CJK UNIFIED IDEOGRAPH +0xB3DD 0x9F7F #CJK UNIFIED IDEOGRAPH +0xB3DE 0x4F88 #CJK UNIFIED IDEOGRAPH +0xB3DF 0x5C3A #CJK UNIFIED IDEOGRAPH +0xB3E0 0x8D64 #CJK UNIFIED IDEOGRAPH +0xB3E1 0x7FC5 #CJK UNIFIED IDEOGRAPH +0xB3E2 0x65A5 #CJK UNIFIED IDEOGRAPH +0xB3E3 0x70BD #CJK UNIFIED IDEOGRAPH +0xB3E4 0x5145 #CJK UNIFIED IDEOGRAPH +0xB3E5 0x51B2 #CJK UNIFIED IDEOGRAPH +0xB3E6 0x866B #CJK UNIFIED IDEOGRAPH +0xB3E7 0x5D07 #CJK UNIFIED IDEOGRAPH +0xB3E8 0x5BA0 #CJK UNIFIED IDEOGRAPH +0xB3E9 0x62BD #CJK UNIFIED IDEOGRAPH +0xB3EA 0x916C #CJK UNIFIED IDEOGRAPH +0xB3EB 0x7574 #CJK UNIFIED IDEOGRAPH +0xB3EC 0x8E0C #CJK UNIFIED IDEOGRAPH +0xB3ED 0x7A20 #CJK UNIFIED IDEOGRAPH +0xB3EE 0x6101 #CJK UNIFIED IDEOGRAPH +0xB3EF 0x7B79 #CJK UNIFIED IDEOGRAPH +0xB3F0 0x4EC7 #CJK UNIFIED IDEOGRAPH +0xB3F1 0x7EF8 #CJK UNIFIED IDEOGRAPH +0xB3F2 0x7785 #CJK UNIFIED IDEOGRAPH +0xB3F3 0x4E11 #CJK UNIFIED IDEOGRAPH +0xB3F4 0x81ED #CJK UNIFIED IDEOGRAPH +0xB3F5 0x521D #CJK UNIFIED IDEOGRAPH +0xB3F6 0x51FA #CJK UNIFIED IDEOGRAPH +0xB3F7 0x6A71 #CJK UNIFIED IDEOGRAPH +0xB3F8 0x53A8 #CJK UNIFIED IDEOGRAPH +0xB3F9 0x8E87 #CJK UNIFIED IDEOGRAPH +0xB3FA 0x9504 #CJK UNIFIED IDEOGRAPH +0xB3FB 0x96CF #CJK UNIFIED IDEOGRAPH +0xB3FC 0x6EC1 #CJK UNIFIED IDEOGRAPH +0xB3FD 0x9664 #CJK UNIFIED IDEOGRAPH +0xB3FE 0x695A #CJK UNIFIED IDEOGRAPH +0xB440 0x7884 #CJK UNIFIED IDEOGRAPH +0xB441 0x7885 #CJK UNIFIED IDEOGRAPH +0xB442 0x7886 #CJK UNIFIED IDEOGRAPH +0xB443 0x7888 #CJK UNIFIED IDEOGRAPH +0xB444 0x788A #CJK UNIFIED IDEOGRAPH +0xB445 0x788B #CJK UNIFIED IDEOGRAPH +0xB446 0x788F #CJK UNIFIED IDEOGRAPH +0xB447 0x7890 #CJK UNIFIED IDEOGRAPH +0xB448 0x7892 #CJK UNIFIED IDEOGRAPH +0xB449 0x7894 #CJK UNIFIED IDEOGRAPH +0xB44A 0x7895 #CJK UNIFIED IDEOGRAPH +0xB44B 0x7896 #CJK UNIFIED IDEOGRAPH +0xB44C 0x7899 #CJK UNIFIED IDEOGRAPH +0xB44D 0x789D #CJK UNIFIED IDEOGRAPH +0xB44E 0x789E #CJK UNIFIED IDEOGRAPH +0xB44F 0x78A0 #CJK UNIFIED IDEOGRAPH +0xB450 0x78A2 #CJK UNIFIED IDEOGRAPH +0xB451 0x78A4 #CJK UNIFIED IDEOGRAPH +0xB452 0x78A6 #CJK UNIFIED IDEOGRAPH +0xB453 0x78A8 #CJK UNIFIED IDEOGRAPH +0xB454 0x78A9 #CJK UNIFIED IDEOGRAPH +0xB455 0x78AA #CJK UNIFIED IDEOGRAPH +0xB456 0x78AB #CJK UNIFIED IDEOGRAPH +0xB457 0x78AC #CJK UNIFIED IDEOGRAPH +0xB458 0x78AD #CJK UNIFIED IDEOGRAPH +0xB459 0x78AE #CJK UNIFIED IDEOGRAPH +0xB45A 0x78AF #CJK UNIFIED IDEOGRAPH +0xB45B 0x78B5 #CJK UNIFIED IDEOGRAPH +0xB45C 0x78B6 #CJK UNIFIED IDEOGRAPH +0xB45D 0x78B7 #CJK UNIFIED IDEOGRAPH +0xB45E 0x78B8 #CJK UNIFIED IDEOGRAPH +0xB45F 0x78BA #CJK UNIFIED IDEOGRAPH +0xB460 0x78BB #CJK UNIFIED IDEOGRAPH +0xB461 0x78BC #CJK UNIFIED IDEOGRAPH +0xB462 0x78BD #CJK UNIFIED IDEOGRAPH +0xB463 0x78BF #CJK UNIFIED IDEOGRAPH +0xB464 0x78C0 #CJK UNIFIED IDEOGRAPH +0xB465 0x78C2 #CJK UNIFIED IDEOGRAPH +0xB466 0x78C3 #CJK UNIFIED IDEOGRAPH +0xB467 0x78C4 #CJK UNIFIED IDEOGRAPH +0xB468 0x78C6 #CJK UNIFIED IDEOGRAPH +0xB469 0x78C7 #CJK UNIFIED IDEOGRAPH +0xB46A 0x78C8 #CJK UNIFIED IDEOGRAPH +0xB46B 0x78CC #CJK UNIFIED IDEOGRAPH +0xB46C 0x78CD #CJK UNIFIED IDEOGRAPH +0xB46D 0x78CE #CJK UNIFIED IDEOGRAPH +0xB46E 0x78CF #CJK UNIFIED IDEOGRAPH +0xB46F 0x78D1 #CJK UNIFIED IDEOGRAPH +0xB470 0x78D2 #CJK UNIFIED IDEOGRAPH +0xB471 0x78D3 #CJK UNIFIED IDEOGRAPH +0xB472 0x78D6 #CJK UNIFIED IDEOGRAPH +0xB473 0x78D7 #CJK UNIFIED IDEOGRAPH +0xB474 0x78D8 #CJK UNIFIED IDEOGRAPH +0xB475 0x78DA #CJK UNIFIED IDEOGRAPH +0xB476 0x78DB #CJK UNIFIED IDEOGRAPH +0xB477 0x78DC #CJK UNIFIED IDEOGRAPH +0xB478 0x78DD #CJK UNIFIED IDEOGRAPH +0xB479 0x78DE #CJK UNIFIED IDEOGRAPH +0xB47A 0x78DF #CJK UNIFIED IDEOGRAPH +0xB47B 0x78E0 #CJK UNIFIED IDEOGRAPH +0xB47C 0x78E1 #CJK UNIFIED IDEOGRAPH +0xB47D 0x78E2 #CJK UNIFIED IDEOGRAPH +0xB47E 0x78E3 #CJK UNIFIED IDEOGRAPH +0xB480 0x78E4 #CJK UNIFIED IDEOGRAPH +0xB481 0x78E5 #CJK UNIFIED IDEOGRAPH +0xB482 0x78E6 #CJK UNIFIED IDEOGRAPH +0xB483 0x78E7 #CJK UNIFIED IDEOGRAPH +0xB484 0x78E9 #CJK UNIFIED IDEOGRAPH +0xB485 0x78EA #CJK UNIFIED IDEOGRAPH +0xB486 0x78EB #CJK UNIFIED IDEOGRAPH +0xB487 0x78ED #CJK UNIFIED IDEOGRAPH +0xB488 0x78EE #CJK UNIFIED IDEOGRAPH +0xB489 0x78EF #CJK UNIFIED IDEOGRAPH +0xB48A 0x78F0 #CJK UNIFIED IDEOGRAPH +0xB48B 0x78F1 #CJK UNIFIED IDEOGRAPH +0xB48C 0x78F3 #CJK UNIFIED IDEOGRAPH +0xB48D 0x78F5 #CJK UNIFIED IDEOGRAPH +0xB48E 0x78F6 #CJK UNIFIED IDEOGRAPH +0xB48F 0x78F8 #CJK UNIFIED IDEOGRAPH +0xB490 0x78F9 #CJK UNIFIED IDEOGRAPH +0xB491 0x78FB #CJK UNIFIED IDEOGRAPH +0xB492 0x78FC #CJK UNIFIED IDEOGRAPH +0xB493 0x78FD #CJK UNIFIED IDEOGRAPH +0xB494 0x78FE #CJK UNIFIED IDEOGRAPH +0xB495 0x78FF #CJK UNIFIED IDEOGRAPH +0xB496 0x7900 #CJK UNIFIED IDEOGRAPH +0xB497 0x7902 #CJK UNIFIED IDEOGRAPH +0xB498 0x7903 #CJK UNIFIED IDEOGRAPH +0xB499 0x7904 #CJK UNIFIED IDEOGRAPH +0xB49A 0x7906 #CJK UNIFIED IDEOGRAPH +0xB49B 0x7907 #CJK UNIFIED IDEOGRAPH +0xB49C 0x7908 #CJK UNIFIED IDEOGRAPH +0xB49D 0x7909 #CJK UNIFIED IDEOGRAPH +0xB49E 0x790A #CJK UNIFIED IDEOGRAPH +0xB49F 0x790B #CJK UNIFIED IDEOGRAPH +0xB4A0 0x790C #CJK UNIFIED IDEOGRAPH +0xB4A1 0x7840 #CJK UNIFIED IDEOGRAPH +0xB4A2 0x50A8 #CJK UNIFIED IDEOGRAPH +0xB4A3 0x77D7 #CJK UNIFIED IDEOGRAPH +0xB4A4 0x6410 #CJK UNIFIED IDEOGRAPH +0xB4A5 0x89E6 #CJK UNIFIED IDEOGRAPH +0xB4A6 0x5904 #CJK UNIFIED IDEOGRAPH +0xB4A7 0x63E3 #CJK UNIFIED IDEOGRAPH +0xB4A8 0x5DDD #CJK UNIFIED IDEOGRAPH +0xB4A9 0x7A7F #CJK UNIFIED IDEOGRAPH +0xB4AA 0x693D #CJK UNIFIED IDEOGRAPH +0xB4AB 0x4F20 #CJK UNIFIED IDEOGRAPH +0xB4AC 0x8239 #CJK UNIFIED IDEOGRAPH +0xB4AD 0x5598 #CJK UNIFIED IDEOGRAPH +0xB4AE 0x4E32 #CJK UNIFIED IDEOGRAPH +0xB4AF 0x75AE #CJK UNIFIED IDEOGRAPH +0xB4B0 0x7A97 #CJK UNIFIED IDEOGRAPH +0xB4B1 0x5E62 #CJK UNIFIED IDEOGRAPH +0xB4B2 0x5E8A #CJK UNIFIED IDEOGRAPH +0xB4B3 0x95EF #CJK UNIFIED IDEOGRAPH +0xB4B4 0x521B #CJK UNIFIED IDEOGRAPH +0xB4B5 0x5439 #CJK UNIFIED IDEOGRAPH +0xB4B6 0x708A #CJK UNIFIED IDEOGRAPH +0xB4B7 0x6376 #CJK UNIFIED IDEOGRAPH +0xB4B8 0x9524 #CJK UNIFIED IDEOGRAPH +0xB4B9 0x5782 #CJK UNIFIED IDEOGRAPH +0xB4BA 0x6625 #CJK UNIFIED IDEOGRAPH +0xB4BB 0x693F #CJK UNIFIED IDEOGRAPH +0xB4BC 0x9187 #CJK UNIFIED IDEOGRAPH +0xB4BD 0x5507 #CJK UNIFIED IDEOGRAPH +0xB4BE 0x6DF3 #CJK UNIFIED IDEOGRAPH +0xB4BF 0x7EAF #CJK UNIFIED IDEOGRAPH +0xB4C0 0x8822 #CJK UNIFIED IDEOGRAPH +0xB4C1 0x6233 #CJK UNIFIED IDEOGRAPH +0xB4C2 0x7EF0 #CJK UNIFIED IDEOGRAPH +0xB4C3 0x75B5 #CJK UNIFIED IDEOGRAPH +0xB4C4 0x8328 #CJK UNIFIED IDEOGRAPH +0xB4C5 0x78C1 #CJK UNIFIED IDEOGRAPH +0xB4C6 0x96CC #CJK UNIFIED IDEOGRAPH +0xB4C7 0x8F9E #CJK UNIFIED IDEOGRAPH +0xB4C8 0x6148 #CJK UNIFIED IDEOGRAPH +0xB4C9 0x74F7 #CJK UNIFIED IDEOGRAPH +0xB4CA 0x8BCD #CJK UNIFIED IDEOGRAPH +0xB4CB 0x6B64 #CJK UNIFIED IDEOGRAPH +0xB4CC 0x523A #CJK UNIFIED IDEOGRAPH +0xB4CD 0x8D50 #CJK UNIFIED IDEOGRAPH +0xB4CE 0x6B21 #CJK UNIFIED IDEOGRAPH +0xB4CF 0x806A #CJK UNIFIED IDEOGRAPH +0xB4D0 0x8471 #CJK UNIFIED IDEOGRAPH +0xB4D1 0x56F1 #CJK UNIFIED IDEOGRAPH +0xB4D2 0x5306 #CJK UNIFIED IDEOGRAPH +0xB4D3 0x4ECE #CJK UNIFIED IDEOGRAPH +0xB4D4 0x4E1B #CJK UNIFIED IDEOGRAPH +0xB4D5 0x51D1 #CJK UNIFIED IDEOGRAPH +0xB4D6 0x7C97 #CJK UNIFIED IDEOGRAPH +0xB4D7 0x918B #CJK UNIFIED IDEOGRAPH +0xB4D8 0x7C07 #CJK UNIFIED IDEOGRAPH +0xB4D9 0x4FC3 #CJK UNIFIED IDEOGRAPH +0xB4DA 0x8E7F #CJK UNIFIED IDEOGRAPH +0xB4DB 0x7BE1 #CJK UNIFIED IDEOGRAPH +0xB4DC 0x7A9C #CJK UNIFIED IDEOGRAPH +0xB4DD 0x6467 #CJK UNIFIED IDEOGRAPH +0xB4DE 0x5D14 #CJK UNIFIED IDEOGRAPH +0xB4DF 0x50AC #CJK UNIFIED IDEOGRAPH +0xB4E0 0x8106 #CJK UNIFIED IDEOGRAPH +0xB4E1 0x7601 #CJK UNIFIED IDEOGRAPH +0xB4E2 0x7CB9 #CJK UNIFIED IDEOGRAPH +0xB4E3 0x6DEC #CJK UNIFIED IDEOGRAPH +0xB4E4 0x7FE0 #CJK UNIFIED IDEOGRAPH +0xB4E5 0x6751 #CJK UNIFIED IDEOGRAPH +0xB4E6 0x5B58 #CJK UNIFIED IDEOGRAPH +0xB4E7 0x5BF8 #CJK UNIFIED IDEOGRAPH +0xB4E8 0x78CB #CJK UNIFIED IDEOGRAPH +0xB4E9 0x64AE #CJK UNIFIED IDEOGRAPH +0xB4EA 0x6413 #CJK UNIFIED IDEOGRAPH +0xB4EB 0x63AA #CJK UNIFIED IDEOGRAPH +0xB4EC 0x632B #CJK UNIFIED IDEOGRAPH +0xB4ED 0x9519 #CJK UNIFIED IDEOGRAPH +0xB4EE 0x642D #CJK UNIFIED IDEOGRAPH +0xB4EF 0x8FBE #CJK UNIFIED IDEOGRAPH +0xB4F0 0x7B54 #CJK UNIFIED IDEOGRAPH +0xB4F1 0x7629 #CJK UNIFIED IDEOGRAPH +0xB4F2 0x6253 #CJK UNIFIED IDEOGRAPH +0xB4F3 0x5927 #CJK UNIFIED IDEOGRAPH +0xB4F4 0x5446 #CJK UNIFIED IDEOGRAPH +0xB4F5 0x6B79 #CJK UNIFIED IDEOGRAPH +0xB4F6 0x50A3 #CJK UNIFIED IDEOGRAPH +0xB4F7 0x6234 #CJK UNIFIED IDEOGRAPH +0xB4F8 0x5E26 #CJK UNIFIED IDEOGRAPH +0xB4F9 0x6B86 #CJK UNIFIED IDEOGRAPH +0xB4FA 0x4EE3 #CJK UNIFIED IDEOGRAPH +0xB4FB 0x8D37 #CJK UNIFIED IDEOGRAPH +0xB4FC 0x888B #CJK UNIFIED IDEOGRAPH +0xB4FD 0x5F85 #CJK UNIFIED IDEOGRAPH +0xB4FE 0x902E #CJK UNIFIED IDEOGRAPH +0xB540 0x790D #CJK UNIFIED IDEOGRAPH +0xB541 0x790E #CJK UNIFIED IDEOGRAPH +0xB542 0x790F #CJK UNIFIED IDEOGRAPH +0xB543 0x7910 #CJK UNIFIED IDEOGRAPH +0xB544 0x7911 #CJK UNIFIED IDEOGRAPH +0xB545 0x7912 #CJK UNIFIED IDEOGRAPH +0xB546 0x7914 #CJK UNIFIED IDEOGRAPH +0xB547 0x7915 #CJK UNIFIED IDEOGRAPH +0xB548 0x7916 #CJK UNIFIED IDEOGRAPH +0xB549 0x7917 #CJK UNIFIED IDEOGRAPH +0xB54A 0x7918 #CJK UNIFIED IDEOGRAPH +0xB54B 0x7919 #CJK UNIFIED IDEOGRAPH +0xB54C 0x791A #CJK UNIFIED IDEOGRAPH +0xB54D 0x791B #CJK UNIFIED IDEOGRAPH +0xB54E 0x791C #CJK UNIFIED IDEOGRAPH +0xB54F 0x791D #CJK UNIFIED IDEOGRAPH +0xB550 0x791F #CJK UNIFIED IDEOGRAPH +0xB551 0x7920 #CJK UNIFIED IDEOGRAPH +0xB552 0x7921 #CJK UNIFIED IDEOGRAPH +0xB553 0x7922 #CJK UNIFIED IDEOGRAPH +0xB554 0x7923 #CJK UNIFIED IDEOGRAPH +0xB555 0x7925 #CJK UNIFIED IDEOGRAPH +0xB556 0x7926 #CJK UNIFIED IDEOGRAPH +0xB557 0x7927 #CJK UNIFIED IDEOGRAPH +0xB558 0x7928 #CJK UNIFIED IDEOGRAPH +0xB559 0x7929 #CJK UNIFIED IDEOGRAPH +0xB55A 0x792A #CJK UNIFIED IDEOGRAPH +0xB55B 0x792B #CJK UNIFIED IDEOGRAPH +0xB55C 0x792C #CJK UNIFIED IDEOGRAPH +0xB55D 0x792D #CJK UNIFIED IDEOGRAPH +0xB55E 0x792E #CJK UNIFIED IDEOGRAPH +0xB55F 0x792F #CJK UNIFIED IDEOGRAPH +0xB560 0x7930 #CJK UNIFIED IDEOGRAPH +0xB561 0x7931 #CJK UNIFIED IDEOGRAPH +0xB562 0x7932 #CJK UNIFIED IDEOGRAPH +0xB563 0x7933 #CJK UNIFIED IDEOGRAPH +0xB564 0x7935 #CJK UNIFIED IDEOGRAPH +0xB565 0x7936 #CJK UNIFIED IDEOGRAPH +0xB566 0x7937 #CJK UNIFIED IDEOGRAPH +0xB567 0x7938 #CJK UNIFIED IDEOGRAPH +0xB568 0x7939 #CJK UNIFIED IDEOGRAPH +0xB569 0x793D #CJK UNIFIED IDEOGRAPH +0xB56A 0x793F #CJK UNIFIED IDEOGRAPH +0xB56B 0x7942 #CJK UNIFIED IDEOGRAPH +0xB56C 0x7943 #CJK UNIFIED IDEOGRAPH +0xB56D 0x7944 #CJK UNIFIED IDEOGRAPH +0xB56E 0x7945 #CJK UNIFIED IDEOGRAPH +0xB56F 0x7947 #CJK UNIFIED IDEOGRAPH +0xB570 0x794A #CJK UNIFIED IDEOGRAPH +0xB571 0x794B #CJK UNIFIED IDEOGRAPH +0xB572 0x794C #CJK UNIFIED IDEOGRAPH +0xB573 0x794D #CJK UNIFIED IDEOGRAPH +0xB574 0x794E #CJK UNIFIED IDEOGRAPH +0xB575 0x794F #CJK UNIFIED IDEOGRAPH +0xB576 0x7950 #CJK UNIFIED IDEOGRAPH +0xB577 0x7951 #CJK UNIFIED IDEOGRAPH +0xB578 0x7952 #CJK UNIFIED IDEOGRAPH +0xB579 0x7954 #CJK UNIFIED IDEOGRAPH +0xB57A 0x7955 #CJK UNIFIED IDEOGRAPH +0xB57B 0x7958 #CJK UNIFIED IDEOGRAPH +0xB57C 0x7959 #CJK UNIFIED IDEOGRAPH +0xB57D 0x7961 #CJK UNIFIED IDEOGRAPH +0xB57E 0x7963 #CJK UNIFIED IDEOGRAPH +0xB580 0x7964 #CJK UNIFIED IDEOGRAPH +0xB581 0x7966 #CJK UNIFIED IDEOGRAPH +0xB582 0x7969 #CJK UNIFIED IDEOGRAPH +0xB583 0x796A #CJK UNIFIED IDEOGRAPH +0xB584 0x796B #CJK UNIFIED IDEOGRAPH +0xB585 0x796C #CJK UNIFIED IDEOGRAPH +0xB586 0x796E #CJK UNIFIED IDEOGRAPH +0xB587 0x7970 #CJK UNIFIED IDEOGRAPH +0xB588 0x7971 #CJK UNIFIED IDEOGRAPH +0xB589 0x7972 #CJK UNIFIED IDEOGRAPH +0xB58A 0x7973 #CJK UNIFIED IDEOGRAPH +0xB58B 0x7974 #CJK UNIFIED IDEOGRAPH +0xB58C 0x7975 #CJK UNIFIED IDEOGRAPH +0xB58D 0x7976 #CJK UNIFIED IDEOGRAPH +0xB58E 0x7979 #CJK UNIFIED IDEOGRAPH +0xB58F 0x797B #CJK UNIFIED IDEOGRAPH +0xB590 0x797C #CJK UNIFIED IDEOGRAPH +0xB591 0x797D #CJK UNIFIED IDEOGRAPH +0xB592 0x797E #CJK UNIFIED IDEOGRAPH +0xB593 0x797F #CJK UNIFIED IDEOGRAPH +0xB594 0x7982 #CJK UNIFIED IDEOGRAPH +0xB595 0x7983 #CJK UNIFIED IDEOGRAPH +0xB596 0x7986 #CJK UNIFIED IDEOGRAPH +0xB597 0x7987 #CJK UNIFIED IDEOGRAPH +0xB598 0x7988 #CJK UNIFIED IDEOGRAPH +0xB599 0x7989 #CJK UNIFIED IDEOGRAPH +0xB59A 0x798B #CJK UNIFIED IDEOGRAPH +0xB59B 0x798C #CJK UNIFIED IDEOGRAPH +0xB59C 0x798D #CJK UNIFIED IDEOGRAPH +0xB59D 0x798E #CJK UNIFIED IDEOGRAPH +0xB59E 0x7990 #CJK UNIFIED IDEOGRAPH +0xB59F 0x7991 #CJK UNIFIED IDEOGRAPH +0xB5A0 0x7992 #CJK UNIFIED IDEOGRAPH +0xB5A1 0x6020 #CJK UNIFIED IDEOGRAPH +0xB5A2 0x803D #CJK UNIFIED IDEOGRAPH +0xB5A3 0x62C5 #CJK UNIFIED IDEOGRAPH +0xB5A4 0x4E39 #CJK UNIFIED IDEOGRAPH +0xB5A5 0x5355 #CJK UNIFIED IDEOGRAPH +0xB5A6 0x90F8 #CJK UNIFIED IDEOGRAPH +0xB5A7 0x63B8 #CJK UNIFIED IDEOGRAPH +0xB5A8 0x80C6 #CJK UNIFIED IDEOGRAPH +0xB5A9 0x65E6 #CJK UNIFIED IDEOGRAPH +0xB5AA 0x6C2E #CJK UNIFIED IDEOGRAPH +0xB5AB 0x4F46 #CJK UNIFIED IDEOGRAPH +0xB5AC 0x60EE #CJK UNIFIED IDEOGRAPH +0xB5AD 0x6DE1 #CJK UNIFIED IDEOGRAPH +0xB5AE 0x8BDE #CJK UNIFIED IDEOGRAPH +0xB5AF 0x5F39 #CJK UNIFIED IDEOGRAPH +0xB5B0 0x86CB #CJK UNIFIED IDEOGRAPH +0xB5B1 0x5F53 #CJK UNIFIED IDEOGRAPH +0xB5B2 0x6321 #CJK UNIFIED IDEOGRAPH +0xB5B3 0x515A #CJK UNIFIED IDEOGRAPH +0xB5B4 0x8361 #CJK UNIFIED IDEOGRAPH +0xB5B5 0x6863 #CJK UNIFIED IDEOGRAPH +0xB5B6 0x5200 #CJK UNIFIED IDEOGRAPH +0xB5B7 0x6363 #CJK UNIFIED IDEOGRAPH +0xB5B8 0x8E48 #CJK UNIFIED IDEOGRAPH +0xB5B9 0x5012 #CJK UNIFIED IDEOGRAPH +0xB5BA 0x5C9B #CJK UNIFIED IDEOGRAPH +0xB5BB 0x7977 #CJK UNIFIED IDEOGRAPH +0xB5BC 0x5BFC #CJK UNIFIED IDEOGRAPH +0xB5BD 0x5230 #CJK UNIFIED IDEOGRAPH +0xB5BE 0x7A3B #CJK UNIFIED IDEOGRAPH +0xB5BF 0x60BC #CJK UNIFIED IDEOGRAPH +0xB5C0 0x9053 #CJK UNIFIED IDEOGRAPH +0xB5C1 0x76D7 #CJK UNIFIED IDEOGRAPH +0xB5C2 0x5FB7 #CJK UNIFIED IDEOGRAPH +0xB5C3 0x5F97 #CJK UNIFIED IDEOGRAPH +0xB5C4 0x7684 #CJK UNIFIED IDEOGRAPH +0xB5C5 0x8E6C #CJK UNIFIED IDEOGRAPH +0xB5C6 0x706F #CJK UNIFIED IDEOGRAPH +0xB5C7 0x767B #CJK UNIFIED IDEOGRAPH +0xB5C8 0x7B49 #CJK UNIFIED IDEOGRAPH +0xB5C9 0x77AA #CJK UNIFIED IDEOGRAPH +0xB5CA 0x51F3 #CJK UNIFIED IDEOGRAPH +0xB5CB 0x9093 #CJK UNIFIED IDEOGRAPH +0xB5CC 0x5824 #CJK UNIFIED IDEOGRAPH +0xB5CD 0x4F4E #CJK UNIFIED IDEOGRAPH +0xB5CE 0x6EF4 #CJK UNIFIED IDEOGRAPH +0xB5CF 0x8FEA #CJK UNIFIED IDEOGRAPH +0xB5D0 0x654C #CJK UNIFIED IDEOGRAPH +0xB5D1 0x7B1B #CJK UNIFIED IDEOGRAPH +0xB5D2 0x72C4 #CJK UNIFIED IDEOGRAPH +0xB5D3 0x6DA4 #CJK UNIFIED IDEOGRAPH +0xB5D4 0x7FDF #CJK UNIFIED IDEOGRAPH +0xB5D5 0x5AE1 #CJK UNIFIED IDEOGRAPH +0xB5D6 0x62B5 #CJK UNIFIED IDEOGRAPH +0xB5D7 0x5E95 #CJK UNIFIED IDEOGRAPH +0xB5D8 0x5730 #CJK UNIFIED IDEOGRAPH +0xB5D9 0x8482 #CJK UNIFIED IDEOGRAPH +0xB5DA 0x7B2C #CJK UNIFIED IDEOGRAPH +0xB5DB 0x5E1D #CJK UNIFIED IDEOGRAPH +0xB5DC 0x5F1F #CJK UNIFIED IDEOGRAPH +0xB5DD 0x9012 #CJK UNIFIED IDEOGRAPH +0xB5DE 0x7F14 #CJK UNIFIED IDEOGRAPH +0xB5DF 0x98A0 #CJK UNIFIED IDEOGRAPH +0xB5E0 0x6382 #CJK UNIFIED IDEOGRAPH +0xB5E1 0x6EC7 #CJK UNIFIED IDEOGRAPH +0xB5E2 0x7898 #CJK UNIFIED IDEOGRAPH +0xB5E3 0x70B9 #CJK UNIFIED IDEOGRAPH +0xB5E4 0x5178 #CJK UNIFIED IDEOGRAPH +0xB5E5 0x975B #CJK UNIFIED IDEOGRAPH +0xB5E6 0x57AB #CJK UNIFIED IDEOGRAPH +0xB5E7 0x7535 #CJK UNIFIED IDEOGRAPH +0xB5E8 0x4F43 #CJK UNIFIED IDEOGRAPH +0xB5E9 0x7538 #CJK UNIFIED IDEOGRAPH +0xB5EA 0x5E97 #CJK UNIFIED IDEOGRAPH +0xB5EB 0x60E6 #CJK UNIFIED IDEOGRAPH +0xB5EC 0x5960 #CJK UNIFIED IDEOGRAPH +0xB5ED 0x6DC0 #CJK UNIFIED IDEOGRAPH +0xB5EE 0x6BBF #CJK UNIFIED IDEOGRAPH +0xB5EF 0x7889 #CJK UNIFIED IDEOGRAPH +0xB5F0 0x53FC #CJK UNIFIED IDEOGRAPH +0xB5F1 0x96D5 #CJK UNIFIED IDEOGRAPH +0xB5F2 0x51CB #CJK UNIFIED IDEOGRAPH +0xB5F3 0x5201 #CJK UNIFIED IDEOGRAPH +0xB5F4 0x6389 #CJK UNIFIED IDEOGRAPH +0xB5F5 0x540A #CJK UNIFIED IDEOGRAPH +0xB5F6 0x9493 #CJK UNIFIED IDEOGRAPH +0xB5F7 0x8C03 #CJK UNIFIED IDEOGRAPH +0xB5F8 0x8DCC #CJK UNIFIED IDEOGRAPH +0xB5F9 0x7239 #CJK UNIFIED IDEOGRAPH +0xB5FA 0x789F #CJK UNIFIED IDEOGRAPH +0xB5FB 0x8776 #CJK UNIFIED IDEOGRAPH +0xB5FC 0x8FED #CJK UNIFIED IDEOGRAPH +0xB5FD 0x8C0D #CJK UNIFIED IDEOGRAPH +0xB5FE 0x53E0 #CJK UNIFIED IDEOGRAPH +0xB640 0x7993 #CJK UNIFIED IDEOGRAPH +0xB641 0x7994 #CJK UNIFIED IDEOGRAPH +0xB642 0x7995 #CJK UNIFIED IDEOGRAPH +0xB643 0x7996 #CJK UNIFIED IDEOGRAPH +0xB644 0x7997 #CJK UNIFIED IDEOGRAPH +0xB645 0x7998 #CJK UNIFIED IDEOGRAPH +0xB646 0x7999 #CJK UNIFIED IDEOGRAPH +0xB647 0x799B #CJK UNIFIED IDEOGRAPH +0xB648 0x799C #CJK UNIFIED IDEOGRAPH +0xB649 0x799D #CJK UNIFIED IDEOGRAPH +0xB64A 0x799E #CJK UNIFIED IDEOGRAPH +0xB64B 0x799F #CJK UNIFIED IDEOGRAPH +0xB64C 0x79A0 #CJK UNIFIED IDEOGRAPH +0xB64D 0x79A1 #CJK UNIFIED IDEOGRAPH +0xB64E 0x79A2 #CJK UNIFIED IDEOGRAPH +0xB64F 0x79A3 #CJK UNIFIED IDEOGRAPH +0xB650 0x79A4 #CJK UNIFIED IDEOGRAPH +0xB651 0x79A5 #CJK UNIFIED IDEOGRAPH +0xB652 0x79A6 #CJK UNIFIED IDEOGRAPH +0xB653 0x79A8 #CJK UNIFIED IDEOGRAPH +0xB654 0x79A9 #CJK UNIFIED IDEOGRAPH +0xB655 0x79AA #CJK UNIFIED IDEOGRAPH +0xB656 0x79AB #CJK UNIFIED IDEOGRAPH +0xB657 0x79AC #CJK UNIFIED IDEOGRAPH +0xB658 0x79AD #CJK UNIFIED IDEOGRAPH +0xB659 0x79AE #CJK UNIFIED IDEOGRAPH +0xB65A 0x79AF #CJK UNIFIED IDEOGRAPH +0xB65B 0x79B0 #CJK UNIFIED IDEOGRAPH +0xB65C 0x79B1 #CJK UNIFIED IDEOGRAPH +0xB65D 0x79B2 #CJK UNIFIED IDEOGRAPH +0xB65E 0x79B4 #CJK UNIFIED IDEOGRAPH +0xB65F 0x79B5 #CJK UNIFIED IDEOGRAPH +0xB660 0x79B6 #CJK UNIFIED IDEOGRAPH +0xB661 0x79B7 #CJK UNIFIED IDEOGRAPH +0xB662 0x79B8 #CJK UNIFIED IDEOGRAPH +0xB663 0x79BC #CJK UNIFIED IDEOGRAPH +0xB664 0x79BF #CJK UNIFIED IDEOGRAPH +0xB665 0x79C2 #CJK UNIFIED IDEOGRAPH +0xB666 0x79C4 #CJK UNIFIED IDEOGRAPH +0xB667 0x79C5 #CJK UNIFIED IDEOGRAPH +0xB668 0x79C7 #CJK UNIFIED IDEOGRAPH +0xB669 0x79C8 #CJK UNIFIED IDEOGRAPH +0xB66A 0x79CA #CJK UNIFIED IDEOGRAPH +0xB66B 0x79CC #CJK UNIFIED IDEOGRAPH +0xB66C 0x79CE #CJK UNIFIED IDEOGRAPH +0xB66D 0x79CF #CJK UNIFIED IDEOGRAPH +0xB66E 0x79D0 #CJK UNIFIED IDEOGRAPH +0xB66F 0x79D3 #CJK UNIFIED IDEOGRAPH +0xB670 0x79D4 #CJK UNIFIED IDEOGRAPH +0xB671 0x79D6 #CJK UNIFIED IDEOGRAPH +0xB672 0x79D7 #CJK UNIFIED IDEOGRAPH +0xB673 0x79D9 #CJK UNIFIED IDEOGRAPH +0xB674 0x79DA #CJK UNIFIED IDEOGRAPH +0xB675 0x79DB #CJK UNIFIED IDEOGRAPH +0xB676 0x79DC #CJK UNIFIED IDEOGRAPH +0xB677 0x79DD #CJK UNIFIED IDEOGRAPH +0xB678 0x79DE #CJK UNIFIED IDEOGRAPH +0xB679 0x79E0 #CJK UNIFIED IDEOGRAPH +0xB67A 0x79E1 #CJK UNIFIED IDEOGRAPH +0xB67B 0x79E2 #CJK UNIFIED IDEOGRAPH +0xB67C 0x79E5 #CJK UNIFIED IDEOGRAPH +0xB67D 0x79E8 #CJK UNIFIED IDEOGRAPH +0xB67E 0x79EA #CJK UNIFIED IDEOGRAPH +0xB680 0x79EC #CJK UNIFIED IDEOGRAPH +0xB681 0x79EE #CJK UNIFIED IDEOGRAPH +0xB682 0x79F1 #CJK UNIFIED IDEOGRAPH +0xB683 0x79F2 #CJK UNIFIED IDEOGRAPH +0xB684 0x79F3 #CJK UNIFIED IDEOGRAPH +0xB685 0x79F4 #CJK UNIFIED IDEOGRAPH +0xB686 0x79F5 #CJK UNIFIED IDEOGRAPH +0xB687 0x79F6 #CJK UNIFIED IDEOGRAPH +0xB688 0x79F7 #CJK UNIFIED IDEOGRAPH +0xB689 0x79F9 #CJK UNIFIED IDEOGRAPH +0xB68A 0x79FA #CJK UNIFIED IDEOGRAPH +0xB68B 0x79FC #CJK UNIFIED IDEOGRAPH +0xB68C 0x79FE #CJK UNIFIED IDEOGRAPH +0xB68D 0x79FF #CJK UNIFIED IDEOGRAPH +0xB68E 0x7A01 #CJK UNIFIED IDEOGRAPH +0xB68F 0x7A04 #CJK UNIFIED IDEOGRAPH +0xB690 0x7A05 #CJK UNIFIED IDEOGRAPH +0xB691 0x7A07 #CJK UNIFIED IDEOGRAPH +0xB692 0x7A08 #CJK UNIFIED IDEOGRAPH +0xB693 0x7A09 #CJK UNIFIED IDEOGRAPH +0xB694 0x7A0A #CJK UNIFIED IDEOGRAPH +0xB695 0x7A0C #CJK UNIFIED IDEOGRAPH +0xB696 0x7A0F #CJK UNIFIED IDEOGRAPH +0xB697 0x7A10 #CJK UNIFIED IDEOGRAPH +0xB698 0x7A11 #CJK UNIFIED IDEOGRAPH +0xB699 0x7A12 #CJK UNIFIED IDEOGRAPH +0xB69A 0x7A13 #CJK UNIFIED IDEOGRAPH +0xB69B 0x7A15 #CJK UNIFIED IDEOGRAPH +0xB69C 0x7A16 #CJK UNIFIED IDEOGRAPH +0xB69D 0x7A18 #CJK UNIFIED IDEOGRAPH +0xB69E 0x7A19 #CJK UNIFIED IDEOGRAPH +0xB69F 0x7A1B #CJK UNIFIED IDEOGRAPH +0xB6A0 0x7A1C #CJK UNIFIED IDEOGRAPH +0xB6A1 0x4E01 #CJK UNIFIED IDEOGRAPH +0xB6A2 0x76EF #CJK UNIFIED IDEOGRAPH +0xB6A3 0x53EE #CJK UNIFIED IDEOGRAPH +0xB6A4 0x9489 #CJK UNIFIED IDEOGRAPH +0xB6A5 0x9876 #CJK UNIFIED IDEOGRAPH +0xB6A6 0x9F0E #CJK UNIFIED IDEOGRAPH +0xB6A7 0x952D #CJK UNIFIED IDEOGRAPH +0xB6A8 0x5B9A #CJK UNIFIED IDEOGRAPH +0xB6A9 0x8BA2 #CJK UNIFIED IDEOGRAPH +0xB6AA 0x4E22 #CJK UNIFIED IDEOGRAPH +0xB6AB 0x4E1C #CJK UNIFIED IDEOGRAPH +0xB6AC 0x51AC #CJK UNIFIED IDEOGRAPH +0xB6AD 0x8463 #CJK UNIFIED IDEOGRAPH +0xB6AE 0x61C2 #CJK UNIFIED IDEOGRAPH +0xB6AF 0x52A8 #CJK UNIFIED IDEOGRAPH +0xB6B0 0x680B #CJK UNIFIED IDEOGRAPH +0xB6B1 0x4F97 #CJK UNIFIED IDEOGRAPH +0xB6B2 0x606B #CJK UNIFIED IDEOGRAPH +0xB6B3 0x51BB #CJK UNIFIED IDEOGRAPH +0xB6B4 0x6D1E #CJK UNIFIED IDEOGRAPH +0xB6B5 0x515C #CJK UNIFIED IDEOGRAPH +0xB6B6 0x6296 #CJK UNIFIED IDEOGRAPH +0xB6B7 0x6597 #CJK UNIFIED IDEOGRAPH +0xB6B8 0x9661 #CJK UNIFIED IDEOGRAPH +0xB6B9 0x8C46 #CJK UNIFIED IDEOGRAPH +0xB6BA 0x9017 #CJK UNIFIED IDEOGRAPH +0xB6BB 0x75D8 #CJK UNIFIED IDEOGRAPH +0xB6BC 0x90FD #CJK UNIFIED IDEOGRAPH +0xB6BD 0x7763 #CJK UNIFIED IDEOGRAPH +0xB6BE 0x6BD2 #CJK UNIFIED IDEOGRAPH +0xB6BF 0x728A #CJK UNIFIED IDEOGRAPH +0xB6C0 0x72EC #CJK UNIFIED IDEOGRAPH +0xB6C1 0x8BFB #CJK UNIFIED IDEOGRAPH +0xB6C2 0x5835 #CJK UNIFIED IDEOGRAPH +0xB6C3 0x7779 #CJK UNIFIED IDEOGRAPH +0xB6C4 0x8D4C #CJK UNIFIED IDEOGRAPH +0xB6C5 0x675C #CJK UNIFIED IDEOGRAPH +0xB6C6 0x9540 #CJK UNIFIED IDEOGRAPH +0xB6C7 0x809A #CJK UNIFIED IDEOGRAPH +0xB6C8 0x5EA6 #CJK UNIFIED IDEOGRAPH +0xB6C9 0x6E21 #CJK UNIFIED IDEOGRAPH +0xB6CA 0x5992 #CJK UNIFIED IDEOGRAPH +0xB6CB 0x7AEF #CJK UNIFIED IDEOGRAPH +0xB6CC 0x77ED #CJK UNIFIED IDEOGRAPH +0xB6CD 0x953B #CJK UNIFIED IDEOGRAPH +0xB6CE 0x6BB5 #CJK UNIFIED IDEOGRAPH +0xB6CF 0x65AD #CJK UNIFIED IDEOGRAPH +0xB6D0 0x7F0E #CJK UNIFIED IDEOGRAPH +0xB6D1 0x5806 #CJK UNIFIED IDEOGRAPH +0xB6D2 0x5151 #CJK UNIFIED IDEOGRAPH +0xB6D3 0x961F #CJK UNIFIED IDEOGRAPH +0xB6D4 0x5BF9 #CJK UNIFIED IDEOGRAPH +0xB6D5 0x58A9 #CJK UNIFIED IDEOGRAPH +0xB6D6 0x5428 #CJK UNIFIED IDEOGRAPH +0xB6D7 0x8E72 #CJK UNIFIED IDEOGRAPH +0xB6D8 0x6566 #CJK UNIFIED IDEOGRAPH +0xB6D9 0x987F #CJK UNIFIED IDEOGRAPH +0xB6DA 0x56E4 #CJK UNIFIED IDEOGRAPH +0xB6DB 0x949D #CJK UNIFIED IDEOGRAPH +0xB6DC 0x76FE #CJK UNIFIED IDEOGRAPH +0xB6DD 0x9041 #CJK UNIFIED IDEOGRAPH +0xB6DE 0x6387 #CJK UNIFIED IDEOGRAPH +0xB6DF 0x54C6 #CJK UNIFIED IDEOGRAPH +0xB6E0 0x591A #CJK UNIFIED IDEOGRAPH +0xB6E1 0x593A #CJK UNIFIED IDEOGRAPH +0xB6E2 0x579B #CJK UNIFIED IDEOGRAPH +0xB6E3 0x8EB2 #CJK UNIFIED IDEOGRAPH +0xB6E4 0x6735 #CJK UNIFIED IDEOGRAPH +0xB6E5 0x8DFA #CJK UNIFIED IDEOGRAPH +0xB6E6 0x8235 #CJK UNIFIED IDEOGRAPH +0xB6E7 0x5241 #CJK UNIFIED IDEOGRAPH +0xB6E8 0x60F0 #CJK UNIFIED IDEOGRAPH +0xB6E9 0x5815 #CJK UNIFIED IDEOGRAPH +0xB6EA 0x86FE #CJK UNIFIED IDEOGRAPH +0xB6EB 0x5CE8 #CJK UNIFIED IDEOGRAPH +0xB6EC 0x9E45 #CJK UNIFIED IDEOGRAPH +0xB6ED 0x4FC4 #CJK UNIFIED IDEOGRAPH +0xB6EE 0x989D #CJK UNIFIED IDEOGRAPH +0xB6EF 0x8BB9 #CJK UNIFIED IDEOGRAPH +0xB6F0 0x5A25 #CJK UNIFIED IDEOGRAPH +0xB6F1 0x6076 #CJK UNIFIED IDEOGRAPH +0xB6F2 0x5384 #CJK UNIFIED IDEOGRAPH +0xB6F3 0x627C #CJK UNIFIED IDEOGRAPH +0xB6F4 0x904F #CJK UNIFIED IDEOGRAPH +0xB6F5 0x9102 #CJK UNIFIED IDEOGRAPH +0xB6F6 0x997F #CJK UNIFIED IDEOGRAPH +0xB6F7 0x6069 #CJK UNIFIED IDEOGRAPH +0xB6F8 0x800C #CJK UNIFIED IDEOGRAPH +0xB6F9 0x513F #CJK UNIFIED IDEOGRAPH +0xB6FA 0x8033 #CJK UNIFIED IDEOGRAPH +0xB6FB 0x5C14 #CJK UNIFIED IDEOGRAPH +0xB6FC 0x9975 #CJK UNIFIED IDEOGRAPH +0xB6FD 0x6D31 #CJK UNIFIED IDEOGRAPH +0xB6FE 0x4E8C #CJK UNIFIED IDEOGRAPH +0xB740 0x7A1D #CJK UNIFIED IDEOGRAPH +0xB741 0x7A1F #CJK UNIFIED IDEOGRAPH +0xB742 0x7A21 #CJK UNIFIED IDEOGRAPH +0xB743 0x7A22 #CJK UNIFIED IDEOGRAPH +0xB744 0x7A24 #CJK UNIFIED IDEOGRAPH +0xB745 0x7A25 #CJK UNIFIED IDEOGRAPH +0xB746 0x7A26 #CJK UNIFIED IDEOGRAPH +0xB747 0x7A27 #CJK UNIFIED IDEOGRAPH +0xB748 0x7A28 #CJK UNIFIED IDEOGRAPH +0xB749 0x7A29 #CJK UNIFIED IDEOGRAPH +0xB74A 0x7A2A #CJK UNIFIED IDEOGRAPH +0xB74B 0x7A2B #CJK UNIFIED IDEOGRAPH +0xB74C 0x7A2C #CJK UNIFIED IDEOGRAPH +0xB74D 0x7A2D #CJK UNIFIED IDEOGRAPH +0xB74E 0x7A2E #CJK UNIFIED IDEOGRAPH +0xB74F 0x7A2F #CJK UNIFIED IDEOGRAPH +0xB750 0x7A30 #CJK UNIFIED IDEOGRAPH +0xB751 0x7A31 #CJK UNIFIED IDEOGRAPH +0xB752 0x7A32 #CJK UNIFIED IDEOGRAPH +0xB753 0x7A34 #CJK UNIFIED IDEOGRAPH +0xB754 0x7A35 #CJK UNIFIED IDEOGRAPH +0xB755 0x7A36 #CJK UNIFIED IDEOGRAPH +0xB756 0x7A38 #CJK UNIFIED IDEOGRAPH +0xB757 0x7A3A #CJK UNIFIED IDEOGRAPH +0xB758 0x7A3E #CJK UNIFIED IDEOGRAPH +0xB759 0x7A40 #CJK UNIFIED IDEOGRAPH +0xB75A 0x7A41 #CJK UNIFIED IDEOGRAPH +0xB75B 0x7A42 #CJK UNIFIED IDEOGRAPH +0xB75C 0x7A43 #CJK UNIFIED IDEOGRAPH +0xB75D 0x7A44 #CJK UNIFIED IDEOGRAPH +0xB75E 0x7A45 #CJK UNIFIED IDEOGRAPH +0xB75F 0x7A47 #CJK UNIFIED IDEOGRAPH +0xB760 0x7A48 #CJK UNIFIED IDEOGRAPH +0xB761 0x7A49 #CJK UNIFIED IDEOGRAPH +0xB762 0x7A4A #CJK UNIFIED IDEOGRAPH +0xB763 0x7A4B #CJK UNIFIED IDEOGRAPH +0xB764 0x7A4C #CJK UNIFIED IDEOGRAPH +0xB765 0x7A4D #CJK UNIFIED IDEOGRAPH +0xB766 0x7A4E #CJK UNIFIED IDEOGRAPH +0xB767 0x7A4F #CJK UNIFIED IDEOGRAPH +0xB768 0x7A50 #CJK UNIFIED IDEOGRAPH +0xB769 0x7A52 #CJK UNIFIED IDEOGRAPH +0xB76A 0x7A53 #CJK UNIFIED IDEOGRAPH +0xB76B 0x7A54 #CJK UNIFIED IDEOGRAPH +0xB76C 0x7A55 #CJK UNIFIED IDEOGRAPH +0xB76D 0x7A56 #CJK UNIFIED IDEOGRAPH +0xB76E 0x7A58 #CJK UNIFIED IDEOGRAPH +0xB76F 0x7A59 #CJK UNIFIED IDEOGRAPH +0xB770 0x7A5A #CJK UNIFIED IDEOGRAPH +0xB771 0x7A5B #CJK UNIFIED IDEOGRAPH +0xB772 0x7A5C #CJK UNIFIED IDEOGRAPH +0xB773 0x7A5D #CJK UNIFIED IDEOGRAPH +0xB774 0x7A5E #CJK UNIFIED IDEOGRAPH +0xB775 0x7A5F #CJK UNIFIED IDEOGRAPH +0xB776 0x7A60 #CJK UNIFIED IDEOGRAPH +0xB777 0x7A61 #CJK UNIFIED IDEOGRAPH +0xB778 0x7A62 #CJK UNIFIED IDEOGRAPH +0xB779 0x7A63 #CJK UNIFIED IDEOGRAPH +0xB77A 0x7A64 #CJK UNIFIED IDEOGRAPH +0xB77B 0x7A65 #CJK UNIFIED IDEOGRAPH +0xB77C 0x7A66 #CJK UNIFIED IDEOGRAPH +0xB77D 0x7A67 #CJK UNIFIED IDEOGRAPH +0xB77E 0x7A68 #CJK UNIFIED IDEOGRAPH +0xB780 0x7A69 #CJK UNIFIED IDEOGRAPH +0xB781 0x7A6A #CJK UNIFIED IDEOGRAPH +0xB782 0x7A6B #CJK UNIFIED IDEOGRAPH +0xB783 0x7A6C #CJK UNIFIED IDEOGRAPH +0xB784 0x7A6D #CJK UNIFIED IDEOGRAPH +0xB785 0x7A6E #CJK UNIFIED IDEOGRAPH +0xB786 0x7A6F #CJK UNIFIED IDEOGRAPH +0xB787 0x7A71 #CJK UNIFIED IDEOGRAPH +0xB788 0x7A72 #CJK UNIFIED IDEOGRAPH +0xB789 0x7A73 #CJK UNIFIED IDEOGRAPH +0xB78A 0x7A75 #CJK UNIFIED IDEOGRAPH +0xB78B 0x7A7B #CJK UNIFIED IDEOGRAPH +0xB78C 0x7A7C #CJK UNIFIED IDEOGRAPH +0xB78D 0x7A7D #CJK UNIFIED IDEOGRAPH +0xB78E 0x7A7E #CJK UNIFIED IDEOGRAPH +0xB78F 0x7A82 #CJK UNIFIED IDEOGRAPH +0xB790 0x7A85 #CJK UNIFIED IDEOGRAPH +0xB791 0x7A87 #CJK UNIFIED IDEOGRAPH +0xB792 0x7A89 #CJK UNIFIED IDEOGRAPH +0xB793 0x7A8A #CJK UNIFIED IDEOGRAPH +0xB794 0x7A8B #CJK UNIFIED IDEOGRAPH +0xB795 0x7A8C #CJK UNIFIED IDEOGRAPH +0xB796 0x7A8E #CJK UNIFIED IDEOGRAPH +0xB797 0x7A8F #CJK UNIFIED IDEOGRAPH +0xB798 0x7A90 #CJK UNIFIED IDEOGRAPH +0xB799 0x7A93 #CJK UNIFIED IDEOGRAPH +0xB79A 0x7A94 #CJK UNIFIED IDEOGRAPH +0xB79B 0x7A99 #CJK UNIFIED IDEOGRAPH +0xB79C 0x7A9A #CJK UNIFIED IDEOGRAPH +0xB79D 0x7A9B #CJK UNIFIED IDEOGRAPH +0xB79E 0x7A9E #CJK UNIFIED IDEOGRAPH +0xB79F 0x7AA1 #CJK UNIFIED IDEOGRAPH +0xB7A0 0x7AA2 #CJK UNIFIED IDEOGRAPH +0xB7A1 0x8D30 #CJK UNIFIED IDEOGRAPH +0xB7A2 0x53D1 #CJK UNIFIED IDEOGRAPH +0xB7A3 0x7F5A #CJK UNIFIED IDEOGRAPH +0xB7A4 0x7B4F #CJK UNIFIED IDEOGRAPH +0xB7A5 0x4F10 #CJK UNIFIED IDEOGRAPH +0xB7A6 0x4E4F #CJK UNIFIED IDEOGRAPH +0xB7A7 0x9600 #CJK UNIFIED IDEOGRAPH +0xB7A8 0x6CD5 #CJK UNIFIED IDEOGRAPH +0xB7A9 0x73D0 #CJK UNIFIED IDEOGRAPH +0xB7AA 0x85E9 #CJK UNIFIED IDEOGRAPH +0xB7AB 0x5E06 #CJK UNIFIED IDEOGRAPH +0xB7AC 0x756A #CJK UNIFIED IDEOGRAPH +0xB7AD 0x7FFB #CJK UNIFIED IDEOGRAPH +0xB7AE 0x6A0A #CJK UNIFIED IDEOGRAPH +0xB7AF 0x77FE #CJK UNIFIED IDEOGRAPH +0xB7B0 0x9492 #CJK UNIFIED IDEOGRAPH +0xB7B1 0x7E41 #CJK UNIFIED IDEOGRAPH +0xB7B2 0x51E1 #CJK UNIFIED IDEOGRAPH +0xB7B3 0x70E6 #CJK UNIFIED IDEOGRAPH +0xB7B4 0x53CD #CJK UNIFIED IDEOGRAPH +0xB7B5 0x8FD4 #CJK UNIFIED IDEOGRAPH +0xB7B6 0x8303 #CJK UNIFIED IDEOGRAPH +0xB7B7 0x8D29 #CJK UNIFIED IDEOGRAPH +0xB7B8 0x72AF #CJK UNIFIED IDEOGRAPH +0xB7B9 0x996D #CJK UNIFIED IDEOGRAPH +0xB7BA 0x6CDB #CJK UNIFIED IDEOGRAPH +0xB7BB 0x574A #CJK UNIFIED IDEOGRAPH +0xB7BC 0x82B3 #CJK UNIFIED IDEOGRAPH +0xB7BD 0x65B9 #CJK UNIFIED IDEOGRAPH +0xB7BE 0x80AA #CJK UNIFIED IDEOGRAPH +0xB7BF 0x623F #CJK UNIFIED IDEOGRAPH +0xB7C0 0x9632 #CJK UNIFIED IDEOGRAPH +0xB7C1 0x59A8 #CJK UNIFIED IDEOGRAPH +0xB7C2 0x4EFF #CJK UNIFIED IDEOGRAPH +0xB7C3 0x8BBF #CJK UNIFIED IDEOGRAPH +0xB7C4 0x7EBA #CJK UNIFIED IDEOGRAPH +0xB7C5 0x653E #CJK UNIFIED IDEOGRAPH +0xB7C6 0x83F2 #CJK UNIFIED IDEOGRAPH +0xB7C7 0x975E #CJK UNIFIED IDEOGRAPH +0xB7C8 0x5561 #CJK UNIFIED IDEOGRAPH +0xB7C9 0x98DE #CJK UNIFIED IDEOGRAPH +0xB7CA 0x80A5 #CJK UNIFIED IDEOGRAPH +0xB7CB 0x532A #CJK UNIFIED IDEOGRAPH +0xB7CC 0x8BFD #CJK UNIFIED IDEOGRAPH +0xB7CD 0x5420 #CJK UNIFIED IDEOGRAPH +0xB7CE 0x80BA #CJK UNIFIED IDEOGRAPH +0xB7CF 0x5E9F #CJK UNIFIED IDEOGRAPH +0xB7D0 0x6CB8 #CJK UNIFIED IDEOGRAPH +0xB7D1 0x8D39 #CJK UNIFIED IDEOGRAPH +0xB7D2 0x82AC #CJK UNIFIED IDEOGRAPH +0xB7D3 0x915A #CJK UNIFIED IDEOGRAPH +0xB7D4 0x5429 #CJK UNIFIED IDEOGRAPH +0xB7D5 0x6C1B #CJK UNIFIED IDEOGRAPH +0xB7D6 0x5206 #CJK UNIFIED IDEOGRAPH +0xB7D7 0x7EB7 #CJK UNIFIED IDEOGRAPH +0xB7D8 0x575F #CJK UNIFIED IDEOGRAPH +0xB7D9 0x711A #CJK UNIFIED IDEOGRAPH +0xB7DA 0x6C7E #CJK UNIFIED IDEOGRAPH +0xB7DB 0x7C89 #CJK UNIFIED IDEOGRAPH +0xB7DC 0x594B #CJK UNIFIED IDEOGRAPH +0xB7DD 0x4EFD #CJK UNIFIED IDEOGRAPH +0xB7DE 0x5FFF #CJK UNIFIED IDEOGRAPH +0xB7DF 0x6124 #CJK UNIFIED IDEOGRAPH +0xB7E0 0x7CAA #CJK UNIFIED IDEOGRAPH +0xB7E1 0x4E30 #CJK UNIFIED IDEOGRAPH +0xB7E2 0x5C01 #CJK UNIFIED IDEOGRAPH +0xB7E3 0x67AB #CJK UNIFIED IDEOGRAPH +0xB7E4 0x8702 #CJK UNIFIED IDEOGRAPH +0xB7E5 0x5CF0 #CJK UNIFIED IDEOGRAPH +0xB7E6 0x950B #CJK UNIFIED IDEOGRAPH +0xB7E7 0x98CE #CJK UNIFIED IDEOGRAPH +0xB7E8 0x75AF #CJK UNIFIED IDEOGRAPH +0xB7E9 0x70FD #CJK UNIFIED IDEOGRAPH +0xB7EA 0x9022 #CJK UNIFIED IDEOGRAPH +0xB7EB 0x51AF #CJK UNIFIED IDEOGRAPH +0xB7EC 0x7F1D #CJK UNIFIED IDEOGRAPH +0xB7ED 0x8BBD #CJK UNIFIED IDEOGRAPH +0xB7EE 0x5949 #CJK UNIFIED IDEOGRAPH +0xB7EF 0x51E4 #CJK UNIFIED IDEOGRAPH +0xB7F0 0x4F5B #CJK UNIFIED IDEOGRAPH +0xB7F1 0x5426 #CJK UNIFIED IDEOGRAPH +0xB7F2 0x592B #CJK UNIFIED IDEOGRAPH +0xB7F3 0x6577 #CJK UNIFIED IDEOGRAPH +0xB7F4 0x80A4 #CJK UNIFIED IDEOGRAPH +0xB7F5 0x5B75 #CJK UNIFIED IDEOGRAPH +0xB7F6 0x6276 #CJK UNIFIED IDEOGRAPH +0xB7F7 0x62C2 #CJK UNIFIED IDEOGRAPH +0xB7F8 0x8F90 #CJK UNIFIED IDEOGRAPH +0xB7F9 0x5E45 #CJK UNIFIED IDEOGRAPH +0xB7FA 0x6C1F #CJK UNIFIED IDEOGRAPH +0xB7FB 0x7B26 #CJK UNIFIED IDEOGRAPH +0xB7FC 0x4F0F #CJK UNIFIED IDEOGRAPH +0xB7FD 0x4FD8 #CJK UNIFIED IDEOGRAPH +0xB7FE 0x670D #CJK UNIFIED IDEOGRAPH +0xB840 0x7AA3 #CJK UNIFIED IDEOGRAPH +0xB841 0x7AA4 #CJK UNIFIED IDEOGRAPH +0xB842 0x7AA7 #CJK UNIFIED IDEOGRAPH +0xB843 0x7AA9 #CJK UNIFIED IDEOGRAPH +0xB844 0x7AAA #CJK UNIFIED IDEOGRAPH +0xB845 0x7AAB #CJK UNIFIED IDEOGRAPH +0xB846 0x7AAE #CJK UNIFIED IDEOGRAPH +0xB847 0x7AAF #CJK UNIFIED IDEOGRAPH +0xB848 0x7AB0 #CJK UNIFIED IDEOGRAPH +0xB849 0x7AB1 #CJK UNIFIED IDEOGRAPH +0xB84A 0x7AB2 #CJK UNIFIED IDEOGRAPH +0xB84B 0x7AB4 #CJK UNIFIED IDEOGRAPH +0xB84C 0x7AB5 #CJK UNIFIED IDEOGRAPH +0xB84D 0x7AB6 #CJK UNIFIED IDEOGRAPH +0xB84E 0x7AB7 #CJK UNIFIED IDEOGRAPH +0xB84F 0x7AB8 #CJK UNIFIED IDEOGRAPH +0xB850 0x7AB9 #CJK UNIFIED IDEOGRAPH +0xB851 0x7ABA #CJK UNIFIED IDEOGRAPH +0xB852 0x7ABB #CJK UNIFIED IDEOGRAPH +0xB853 0x7ABC #CJK UNIFIED IDEOGRAPH +0xB854 0x7ABD #CJK UNIFIED IDEOGRAPH +0xB855 0x7ABE #CJK UNIFIED IDEOGRAPH +0xB856 0x7AC0 #CJK UNIFIED IDEOGRAPH +0xB857 0x7AC1 #CJK UNIFIED IDEOGRAPH +0xB858 0x7AC2 #CJK UNIFIED IDEOGRAPH +0xB859 0x7AC3 #CJK UNIFIED IDEOGRAPH +0xB85A 0x7AC4 #CJK UNIFIED IDEOGRAPH +0xB85B 0x7AC5 #CJK UNIFIED IDEOGRAPH +0xB85C 0x7AC6 #CJK UNIFIED IDEOGRAPH +0xB85D 0x7AC7 #CJK UNIFIED IDEOGRAPH +0xB85E 0x7AC8 #CJK UNIFIED IDEOGRAPH +0xB85F 0x7AC9 #CJK UNIFIED IDEOGRAPH +0xB860 0x7ACA #CJK UNIFIED IDEOGRAPH +0xB861 0x7ACC #CJK UNIFIED IDEOGRAPH +0xB862 0x7ACD #CJK UNIFIED IDEOGRAPH +0xB863 0x7ACE #CJK UNIFIED IDEOGRAPH +0xB864 0x7ACF #CJK UNIFIED IDEOGRAPH +0xB865 0x7AD0 #CJK UNIFIED IDEOGRAPH +0xB866 0x7AD1 #CJK UNIFIED IDEOGRAPH +0xB867 0x7AD2 #CJK UNIFIED IDEOGRAPH +0xB868 0x7AD3 #CJK UNIFIED IDEOGRAPH +0xB869 0x7AD4 #CJK UNIFIED IDEOGRAPH +0xB86A 0x7AD5 #CJK UNIFIED IDEOGRAPH +0xB86B 0x7AD7 #CJK UNIFIED IDEOGRAPH +0xB86C 0x7AD8 #CJK UNIFIED IDEOGRAPH +0xB86D 0x7ADA #CJK UNIFIED IDEOGRAPH +0xB86E 0x7ADB #CJK UNIFIED IDEOGRAPH +0xB86F 0x7ADC #CJK UNIFIED IDEOGRAPH +0xB870 0x7ADD #CJK UNIFIED IDEOGRAPH +0xB871 0x7AE1 #CJK UNIFIED IDEOGRAPH +0xB872 0x7AE2 #CJK UNIFIED IDEOGRAPH +0xB873 0x7AE4 #CJK UNIFIED IDEOGRAPH +0xB874 0x7AE7 #CJK UNIFIED IDEOGRAPH +0xB875 0x7AE8 #CJK UNIFIED IDEOGRAPH +0xB876 0x7AE9 #CJK UNIFIED IDEOGRAPH +0xB877 0x7AEA #CJK UNIFIED IDEOGRAPH +0xB878 0x7AEB #CJK UNIFIED IDEOGRAPH +0xB879 0x7AEC #CJK UNIFIED IDEOGRAPH +0xB87A 0x7AEE #CJK UNIFIED IDEOGRAPH +0xB87B 0x7AF0 #CJK UNIFIED IDEOGRAPH +0xB87C 0x7AF1 #CJK UNIFIED IDEOGRAPH +0xB87D 0x7AF2 #CJK UNIFIED IDEOGRAPH +0xB87E 0x7AF3 #CJK UNIFIED IDEOGRAPH +0xB880 0x7AF4 #CJK UNIFIED IDEOGRAPH +0xB881 0x7AF5 #CJK UNIFIED IDEOGRAPH +0xB882 0x7AF6 #CJK UNIFIED IDEOGRAPH +0xB883 0x7AF7 #CJK UNIFIED IDEOGRAPH +0xB884 0x7AF8 #CJK UNIFIED IDEOGRAPH +0xB885 0x7AFB #CJK UNIFIED IDEOGRAPH +0xB886 0x7AFC #CJK UNIFIED IDEOGRAPH +0xB887 0x7AFE #CJK UNIFIED IDEOGRAPH +0xB888 0x7B00 #CJK UNIFIED IDEOGRAPH +0xB889 0x7B01 #CJK UNIFIED IDEOGRAPH +0xB88A 0x7B02 #CJK UNIFIED IDEOGRAPH +0xB88B 0x7B05 #CJK UNIFIED IDEOGRAPH +0xB88C 0x7B07 #CJK UNIFIED IDEOGRAPH +0xB88D 0x7B09 #CJK UNIFIED IDEOGRAPH +0xB88E 0x7B0C #CJK UNIFIED IDEOGRAPH +0xB88F 0x7B0D #CJK UNIFIED IDEOGRAPH +0xB890 0x7B0E #CJK UNIFIED IDEOGRAPH +0xB891 0x7B10 #CJK UNIFIED IDEOGRAPH +0xB892 0x7B12 #CJK UNIFIED IDEOGRAPH +0xB893 0x7B13 #CJK UNIFIED IDEOGRAPH +0xB894 0x7B16 #CJK UNIFIED IDEOGRAPH +0xB895 0x7B17 #CJK UNIFIED IDEOGRAPH +0xB896 0x7B18 #CJK UNIFIED IDEOGRAPH +0xB897 0x7B1A #CJK UNIFIED IDEOGRAPH +0xB898 0x7B1C #CJK UNIFIED IDEOGRAPH +0xB899 0x7B1D #CJK UNIFIED IDEOGRAPH +0xB89A 0x7B1F #CJK UNIFIED IDEOGRAPH +0xB89B 0x7B21 #CJK UNIFIED IDEOGRAPH +0xB89C 0x7B22 #CJK UNIFIED IDEOGRAPH +0xB89D 0x7B23 #CJK UNIFIED IDEOGRAPH +0xB89E 0x7B27 #CJK UNIFIED IDEOGRAPH +0xB89F 0x7B29 #CJK UNIFIED IDEOGRAPH +0xB8A0 0x7B2D #CJK UNIFIED IDEOGRAPH +0xB8A1 0x6D6E #CJK UNIFIED IDEOGRAPH +0xB8A2 0x6DAA #CJK UNIFIED IDEOGRAPH +0xB8A3 0x798F #CJK UNIFIED IDEOGRAPH +0xB8A4 0x88B1 #CJK UNIFIED IDEOGRAPH +0xB8A5 0x5F17 #CJK UNIFIED IDEOGRAPH +0xB8A6 0x752B #CJK UNIFIED IDEOGRAPH +0xB8A7 0x629A #CJK UNIFIED IDEOGRAPH +0xB8A8 0x8F85 #CJK UNIFIED IDEOGRAPH +0xB8A9 0x4FEF #CJK UNIFIED IDEOGRAPH +0xB8AA 0x91DC #CJK UNIFIED IDEOGRAPH +0xB8AB 0x65A7 #CJK UNIFIED IDEOGRAPH +0xB8AC 0x812F #CJK UNIFIED IDEOGRAPH +0xB8AD 0x8151 #CJK UNIFIED IDEOGRAPH +0xB8AE 0x5E9C #CJK UNIFIED IDEOGRAPH +0xB8AF 0x8150 #CJK UNIFIED IDEOGRAPH +0xB8B0 0x8D74 #CJK UNIFIED IDEOGRAPH +0xB8B1 0x526F #CJK UNIFIED IDEOGRAPH +0xB8B2 0x8986 #CJK UNIFIED IDEOGRAPH +0xB8B3 0x8D4B #CJK UNIFIED IDEOGRAPH +0xB8B4 0x590D #CJK UNIFIED IDEOGRAPH +0xB8B5 0x5085 #CJK UNIFIED IDEOGRAPH +0xB8B6 0x4ED8 #CJK UNIFIED IDEOGRAPH +0xB8B7 0x961C #CJK UNIFIED IDEOGRAPH +0xB8B8 0x7236 #CJK UNIFIED IDEOGRAPH +0xB8B9 0x8179 #CJK UNIFIED IDEOGRAPH +0xB8BA 0x8D1F #CJK UNIFIED IDEOGRAPH +0xB8BB 0x5BCC #CJK UNIFIED IDEOGRAPH +0xB8BC 0x8BA3 #CJK UNIFIED IDEOGRAPH +0xB8BD 0x9644 #CJK UNIFIED IDEOGRAPH +0xB8BE 0x5987 #CJK UNIFIED IDEOGRAPH +0xB8BF 0x7F1A #CJK UNIFIED IDEOGRAPH +0xB8C0 0x5490 #CJK UNIFIED IDEOGRAPH +0xB8C1 0x5676 #CJK UNIFIED IDEOGRAPH +0xB8C2 0x560E #CJK UNIFIED IDEOGRAPH +0xB8C3 0x8BE5 #CJK UNIFIED IDEOGRAPH +0xB8C4 0x6539 #CJK UNIFIED IDEOGRAPH +0xB8C5 0x6982 #CJK UNIFIED IDEOGRAPH +0xB8C6 0x9499 #CJK UNIFIED IDEOGRAPH +0xB8C7 0x76D6 #CJK UNIFIED IDEOGRAPH +0xB8C8 0x6E89 #CJK UNIFIED IDEOGRAPH +0xB8C9 0x5E72 #CJK UNIFIED IDEOGRAPH +0xB8CA 0x7518 #CJK UNIFIED IDEOGRAPH +0xB8CB 0x6746 #CJK UNIFIED IDEOGRAPH +0xB8CC 0x67D1 #CJK UNIFIED IDEOGRAPH +0xB8CD 0x7AFF #CJK UNIFIED IDEOGRAPH +0xB8CE 0x809D #CJK UNIFIED IDEOGRAPH +0xB8CF 0x8D76 #CJK UNIFIED IDEOGRAPH +0xB8D0 0x611F #CJK UNIFIED IDEOGRAPH +0xB8D1 0x79C6 #CJK UNIFIED IDEOGRAPH +0xB8D2 0x6562 #CJK UNIFIED IDEOGRAPH +0xB8D3 0x8D63 #CJK UNIFIED IDEOGRAPH +0xB8D4 0x5188 #CJK UNIFIED IDEOGRAPH +0xB8D5 0x521A #CJK UNIFIED IDEOGRAPH +0xB8D6 0x94A2 #CJK UNIFIED IDEOGRAPH +0xB8D7 0x7F38 #CJK UNIFIED IDEOGRAPH +0xB8D8 0x809B #CJK UNIFIED IDEOGRAPH +0xB8D9 0x7EB2 #CJK UNIFIED IDEOGRAPH +0xB8DA 0x5C97 #CJK UNIFIED IDEOGRAPH +0xB8DB 0x6E2F #CJK UNIFIED IDEOGRAPH +0xB8DC 0x6760 #CJK UNIFIED IDEOGRAPH +0xB8DD 0x7BD9 #CJK UNIFIED IDEOGRAPH +0xB8DE 0x768B #CJK UNIFIED IDEOGRAPH +0xB8DF 0x9AD8 #CJK UNIFIED IDEOGRAPH +0xB8E0 0x818F #CJK UNIFIED IDEOGRAPH +0xB8E1 0x7F94 #CJK UNIFIED IDEOGRAPH +0xB8E2 0x7CD5 #CJK UNIFIED IDEOGRAPH +0xB8E3 0x641E #CJK UNIFIED IDEOGRAPH +0xB8E4 0x9550 #CJK UNIFIED IDEOGRAPH +0xB8E5 0x7A3F #CJK UNIFIED IDEOGRAPH +0xB8E6 0x544A #CJK UNIFIED IDEOGRAPH +0xB8E7 0x54E5 #CJK UNIFIED IDEOGRAPH +0xB8E8 0x6B4C #CJK UNIFIED IDEOGRAPH +0xB8E9 0x6401 #CJK UNIFIED IDEOGRAPH +0xB8EA 0x6208 #CJK UNIFIED IDEOGRAPH +0xB8EB 0x9E3D #CJK UNIFIED IDEOGRAPH +0xB8EC 0x80F3 #CJK UNIFIED IDEOGRAPH +0xB8ED 0x7599 #CJK UNIFIED IDEOGRAPH +0xB8EE 0x5272 #CJK UNIFIED IDEOGRAPH +0xB8EF 0x9769 #CJK UNIFIED IDEOGRAPH +0xB8F0 0x845B #CJK UNIFIED IDEOGRAPH +0xB8F1 0x683C #CJK UNIFIED IDEOGRAPH +0xB8F2 0x86E4 #CJK UNIFIED IDEOGRAPH +0xB8F3 0x9601 #CJK UNIFIED IDEOGRAPH +0xB8F4 0x9694 #CJK UNIFIED IDEOGRAPH +0xB8F5 0x94EC #CJK UNIFIED IDEOGRAPH +0xB8F6 0x4E2A #CJK UNIFIED IDEOGRAPH +0xB8F7 0x5404 #CJK UNIFIED IDEOGRAPH +0xB8F8 0x7ED9 #CJK UNIFIED IDEOGRAPH +0xB8F9 0x6839 #CJK UNIFIED IDEOGRAPH +0xB8FA 0x8DDF #CJK UNIFIED IDEOGRAPH +0xB8FB 0x8015 #CJK UNIFIED IDEOGRAPH +0xB8FC 0x66F4 #CJK UNIFIED IDEOGRAPH +0xB8FD 0x5E9A #CJK UNIFIED IDEOGRAPH +0xB8FE 0x7FB9 #CJK UNIFIED IDEOGRAPH +0xB940 0x7B2F #CJK UNIFIED IDEOGRAPH +0xB941 0x7B30 #CJK UNIFIED IDEOGRAPH +0xB942 0x7B32 #CJK UNIFIED IDEOGRAPH +0xB943 0x7B34 #CJK UNIFIED IDEOGRAPH +0xB944 0x7B35 #CJK UNIFIED IDEOGRAPH +0xB945 0x7B36 #CJK UNIFIED IDEOGRAPH +0xB946 0x7B37 #CJK UNIFIED IDEOGRAPH +0xB947 0x7B39 #CJK UNIFIED IDEOGRAPH +0xB948 0x7B3B #CJK UNIFIED IDEOGRAPH +0xB949 0x7B3D #CJK UNIFIED IDEOGRAPH +0xB94A 0x7B3F #CJK UNIFIED IDEOGRAPH +0xB94B 0x7B40 #CJK UNIFIED IDEOGRAPH +0xB94C 0x7B41 #CJK UNIFIED IDEOGRAPH +0xB94D 0x7B42 #CJK UNIFIED IDEOGRAPH +0xB94E 0x7B43 #CJK UNIFIED IDEOGRAPH +0xB94F 0x7B44 #CJK UNIFIED IDEOGRAPH +0xB950 0x7B46 #CJK UNIFIED IDEOGRAPH +0xB951 0x7B48 #CJK UNIFIED IDEOGRAPH +0xB952 0x7B4A #CJK UNIFIED IDEOGRAPH +0xB953 0x7B4D #CJK UNIFIED IDEOGRAPH +0xB954 0x7B4E #CJK UNIFIED IDEOGRAPH +0xB955 0x7B53 #CJK UNIFIED IDEOGRAPH +0xB956 0x7B55 #CJK UNIFIED IDEOGRAPH +0xB957 0x7B57 #CJK UNIFIED IDEOGRAPH +0xB958 0x7B59 #CJK UNIFIED IDEOGRAPH +0xB959 0x7B5C #CJK UNIFIED IDEOGRAPH +0xB95A 0x7B5E #CJK UNIFIED IDEOGRAPH +0xB95B 0x7B5F #CJK UNIFIED IDEOGRAPH +0xB95C 0x7B61 #CJK UNIFIED IDEOGRAPH +0xB95D 0x7B63 #CJK UNIFIED IDEOGRAPH +0xB95E 0x7B64 #CJK UNIFIED IDEOGRAPH +0xB95F 0x7B65 #CJK UNIFIED IDEOGRAPH +0xB960 0x7B66 #CJK UNIFIED IDEOGRAPH +0xB961 0x7B67 #CJK UNIFIED IDEOGRAPH +0xB962 0x7B68 #CJK UNIFIED IDEOGRAPH +0xB963 0x7B69 #CJK UNIFIED IDEOGRAPH +0xB964 0x7B6A #CJK UNIFIED IDEOGRAPH +0xB965 0x7B6B #CJK UNIFIED IDEOGRAPH +0xB966 0x7B6C #CJK UNIFIED IDEOGRAPH +0xB967 0x7B6D #CJK UNIFIED IDEOGRAPH +0xB968 0x7B6F #CJK UNIFIED IDEOGRAPH +0xB969 0x7B70 #CJK UNIFIED IDEOGRAPH +0xB96A 0x7B73 #CJK UNIFIED IDEOGRAPH +0xB96B 0x7B74 #CJK UNIFIED IDEOGRAPH +0xB96C 0x7B76 #CJK UNIFIED IDEOGRAPH +0xB96D 0x7B78 #CJK UNIFIED IDEOGRAPH +0xB96E 0x7B7A #CJK UNIFIED IDEOGRAPH +0xB96F 0x7B7C #CJK UNIFIED IDEOGRAPH +0xB970 0x7B7D #CJK UNIFIED IDEOGRAPH +0xB971 0x7B7F #CJK UNIFIED IDEOGRAPH +0xB972 0x7B81 #CJK UNIFIED IDEOGRAPH +0xB973 0x7B82 #CJK UNIFIED IDEOGRAPH +0xB974 0x7B83 #CJK UNIFIED IDEOGRAPH +0xB975 0x7B84 #CJK UNIFIED IDEOGRAPH +0xB976 0x7B86 #CJK UNIFIED IDEOGRAPH +0xB977 0x7B87 #CJK UNIFIED IDEOGRAPH +0xB978 0x7B88 #CJK UNIFIED IDEOGRAPH +0xB979 0x7B89 #CJK UNIFIED IDEOGRAPH +0xB97A 0x7B8A #CJK UNIFIED IDEOGRAPH +0xB97B 0x7B8B #CJK UNIFIED IDEOGRAPH +0xB97C 0x7B8C #CJK UNIFIED IDEOGRAPH +0xB97D 0x7B8E #CJK UNIFIED IDEOGRAPH +0xB97E 0x7B8F #CJK UNIFIED IDEOGRAPH +0xB980 0x7B91 #CJK UNIFIED IDEOGRAPH +0xB981 0x7B92 #CJK UNIFIED IDEOGRAPH +0xB982 0x7B93 #CJK UNIFIED IDEOGRAPH +0xB983 0x7B96 #CJK UNIFIED IDEOGRAPH +0xB984 0x7B98 #CJK UNIFIED IDEOGRAPH +0xB985 0x7B99 #CJK UNIFIED IDEOGRAPH +0xB986 0x7B9A #CJK UNIFIED IDEOGRAPH +0xB987 0x7B9B #CJK UNIFIED IDEOGRAPH +0xB988 0x7B9E #CJK UNIFIED IDEOGRAPH +0xB989 0x7B9F #CJK UNIFIED IDEOGRAPH +0xB98A 0x7BA0 #CJK UNIFIED IDEOGRAPH +0xB98B 0x7BA3 #CJK UNIFIED IDEOGRAPH +0xB98C 0x7BA4 #CJK UNIFIED IDEOGRAPH +0xB98D 0x7BA5 #CJK UNIFIED IDEOGRAPH +0xB98E 0x7BAE #CJK UNIFIED IDEOGRAPH +0xB98F 0x7BAF #CJK UNIFIED IDEOGRAPH +0xB990 0x7BB0 #CJK UNIFIED IDEOGRAPH +0xB991 0x7BB2 #CJK UNIFIED IDEOGRAPH +0xB992 0x7BB3 #CJK UNIFIED IDEOGRAPH +0xB993 0x7BB5 #CJK UNIFIED IDEOGRAPH +0xB994 0x7BB6 #CJK UNIFIED IDEOGRAPH +0xB995 0x7BB7 #CJK UNIFIED IDEOGRAPH +0xB996 0x7BB9 #CJK UNIFIED IDEOGRAPH +0xB997 0x7BBA #CJK UNIFIED IDEOGRAPH +0xB998 0x7BBB #CJK UNIFIED IDEOGRAPH +0xB999 0x7BBC #CJK UNIFIED IDEOGRAPH +0xB99A 0x7BBD #CJK UNIFIED IDEOGRAPH +0xB99B 0x7BBE #CJK UNIFIED IDEOGRAPH +0xB99C 0x7BBF #CJK UNIFIED IDEOGRAPH +0xB99D 0x7BC0 #CJK UNIFIED IDEOGRAPH +0xB99E 0x7BC2 #CJK UNIFIED IDEOGRAPH +0xB99F 0x7BC3 #CJK UNIFIED IDEOGRAPH +0xB9A0 0x7BC4 #CJK UNIFIED IDEOGRAPH +0xB9A1 0x57C2 #CJK UNIFIED IDEOGRAPH +0xB9A2 0x803F #CJK UNIFIED IDEOGRAPH +0xB9A3 0x6897 #CJK UNIFIED IDEOGRAPH +0xB9A4 0x5DE5 #CJK UNIFIED IDEOGRAPH +0xB9A5 0x653B #CJK UNIFIED IDEOGRAPH +0xB9A6 0x529F #CJK UNIFIED IDEOGRAPH +0xB9A7 0x606D #CJK UNIFIED IDEOGRAPH +0xB9A8 0x9F9A #CJK UNIFIED IDEOGRAPH +0xB9A9 0x4F9B #CJK UNIFIED IDEOGRAPH +0xB9AA 0x8EAC #CJK UNIFIED IDEOGRAPH +0xB9AB 0x516C #CJK UNIFIED IDEOGRAPH +0xB9AC 0x5BAB #CJK UNIFIED IDEOGRAPH +0xB9AD 0x5F13 #CJK UNIFIED IDEOGRAPH +0xB9AE 0x5DE9 #CJK UNIFIED IDEOGRAPH +0xB9AF 0x6C5E #CJK UNIFIED IDEOGRAPH +0xB9B0 0x62F1 #CJK UNIFIED IDEOGRAPH +0xB9B1 0x8D21 #CJK UNIFIED IDEOGRAPH +0xB9B2 0x5171 #CJK UNIFIED IDEOGRAPH +0xB9B3 0x94A9 #CJK UNIFIED IDEOGRAPH +0xB9B4 0x52FE #CJK UNIFIED IDEOGRAPH +0xB9B5 0x6C9F #CJK UNIFIED IDEOGRAPH +0xB9B6 0x82DF #CJK UNIFIED IDEOGRAPH +0xB9B7 0x72D7 #CJK UNIFIED IDEOGRAPH +0xB9B8 0x57A2 #CJK UNIFIED IDEOGRAPH +0xB9B9 0x6784 #CJK UNIFIED IDEOGRAPH +0xB9BA 0x8D2D #CJK UNIFIED IDEOGRAPH +0xB9BB 0x591F #CJK UNIFIED IDEOGRAPH +0xB9BC 0x8F9C #CJK UNIFIED IDEOGRAPH +0xB9BD 0x83C7 #CJK UNIFIED IDEOGRAPH +0xB9BE 0x5495 #CJK UNIFIED IDEOGRAPH +0xB9BF 0x7B8D #CJK UNIFIED IDEOGRAPH +0xB9C0 0x4F30 #CJK UNIFIED IDEOGRAPH +0xB9C1 0x6CBD #CJK UNIFIED IDEOGRAPH +0xB9C2 0x5B64 #CJK UNIFIED IDEOGRAPH +0xB9C3 0x59D1 #CJK UNIFIED IDEOGRAPH +0xB9C4 0x9F13 #CJK UNIFIED IDEOGRAPH +0xB9C5 0x53E4 #CJK UNIFIED IDEOGRAPH +0xB9C6 0x86CA #CJK UNIFIED IDEOGRAPH +0xB9C7 0x9AA8 #CJK UNIFIED IDEOGRAPH +0xB9C8 0x8C37 #CJK UNIFIED IDEOGRAPH +0xB9C9 0x80A1 #CJK UNIFIED IDEOGRAPH +0xB9CA 0x6545 #CJK UNIFIED IDEOGRAPH +0xB9CB 0x987E #CJK UNIFIED IDEOGRAPH +0xB9CC 0x56FA #CJK UNIFIED IDEOGRAPH +0xB9CD 0x96C7 #CJK UNIFIED IDEOGRAPH +0xB9CE 0x522E #CJK UNIFIED IDEOGRAPH +0xB9CF 0x74DC #CJK UNIFIED IDEOGRAPH +0xB9D0 0x5250 #CJK UNIFIED IDEOGRAPH +0xB9D1 0x5BE1 #CJK UNIFIED IDEOGRAPH +0xB9D2 0x6302 #CJK UNIFIED IDEOGRAPH +0xB9D3 0x8902 #CJK UNIFIED IDEOGRAPH +0xB9D4 0x4E56 #CJK UNIFIED IDEOGRAPH +0xB9D5 0x62D0 #CJK UNIFIED IDEOGRAPH +0xB9D6 0x602A #CJK UNIFIED IDEOGRAPH +0xB9D7 0x68FA #CJK UNIFIED IDEOGRAPH +0xB9D8 0x5173 #CJK UNIFIED IDEOGRAPH +0xB9D9 0x5B98 #CJK UNIFIED IDEOGRAPH +0xB9DA 0x51A0 #CJK UNIFIED IDEOGRAPH +0xB9DB 0x89C2 #CJK UNIFIED IDEOGRAPH +0xB9DC 0x7BA1 #CJK UNIFIED IDEOGRAPH +0xB9DD 0x9986 #CJK UNIFIED IDEOGRAPH +0xB9DE 0x7F50 #CJK UNIFIED IDEOGRAPH +0xB9DF 0x60EF #CJK UNIFIED IDEOGRAPH +0xB9E0 0x704C #CJK UNIFIED IDEOGRAPH +0xB9E1 0x8D2F #CJK UNIFIED IDEOGRAPH +0xB9E2 0x5149 #CJK UNIFIED IDEOGRAPH +0xB9E3 0x5E7F #CJK UNIFIED IDEOGRAPH +0xB9E4 0x901B #CJK UNIFIED IDEOGRAPH +0xB9E5 0x7470 #CJK UNIFIED IDEOGRAPH +0xB9E6 0x89C4 #CJK UNIFIED IDEOGRAPH +0xB9E7 0x572D #CJK UNIFIED IDEOGRAPH +0xB9E8 0x7845 #CJK UNIFIED IDEOGRAPH +0xB9E9 0x5F52 #CJK UNIFIED IDEOGRAPH +0xB9EA 0x9F9F #CJK UNIFIED IDEOGRAPH +0xB9EB 0x95FA #CJK UNIFIED IDEOGRAPH +0xB9EC 0x8F68 #CJK UNIFIED IDEOGRAPH +0xB9ED 0x9B3C #CJK UNIFIED IDEOGRAPH +0xB9EE 0x8BE1 #CJK UNIFIED IDEOGRAPH +0xB9EF 0x7678 #CJK UNIFIED IDEOGRAPH +0xB9F0 0x6842 #CJK UNIFIED IDEOGRAPH +0xB9F1 0x67DC #CJK UNIFIED IDEOGRAPH +0xB9F2 0x8DEA #CJK UNIFIED IDEOGRAPH +0xB9F3 0x8D35 #CJK UNIFIED IDEOGRAPH +0xB9F4 0x523D #CJK UNIFIED IDEOGRAPH +0xB9F5 0x8F8A #CJK UNIFIED IDEOGRAPH +0xB9F6 0x6EDA #CJK UNIFIED IDEOGRAPH +0xB9F7 0x68CD #CJK UNIFIED IDEOGRAPH +0xB9F8 0x9505 #CJK UNIFIED IDEOGRAPH +0xB9F9 0x90ED #CJK UNIFIED IDEOGRAPH +0xB9FA 0x56FD #CJK UNIFIED IDEOGRAPH +0xB9FB 0x679C #CJK UNIFIED IDEOGRAPH +0xB9FC 0x88F9 #CJK UNIFIED IDEOGRAPH +0xB9FD 0x8FC7 #CJK UNIFIED IDEOGRAPH +0xB9FE 0x54C8 #CJK UNIFIED IDEOGRAPH +0xBA40 0x7BC5 #CJK UNIFIED IDEOGRAPH +0xBA41 0x7BC8 #CJK UNIFIED IDEOGRAPH +0xBA42 0x7BC9 #CJK UNIFIED IDEOGRAPH +0xBA43 0x7BCA #CJK UNIFIED IDEOGRAPH +0xBA44 0x7BCB #CJK UNIFIED IDEOGRAPH +0xBA45 0x7BCD #CJK UNIFIED IDEOGRAPH +0xBA46 0x7BCE #CJK UNIFIED IDEOGRAPH +0xBA47 0x7BCF #CJK UNIFIED IDEOGRAPH +0xBA48 0x7BD0 #CJK UNIFIED IDEOGRAPH +0xBA49 0x7BD2 #CJK UNIFIED IDEOGRAPH +0xBA4A 0x7BD4 #CJK UNIFIED IDEOGRAPH +0xBA4B 0x7BD5 #CJK UNIFIED IDEOGRAPH +0xBA4C 0x7BD6 #CJK UNIFIED IDEOGRAPH +0xBA4D 0x7BD7 #CJK UNIFIED IDEOGRAPH +0xBA4E 0x7BD8 #CJK UNIFIED IDEOGRAPH +0xBA4F 0x7BDB #CJK UNIFIED IDEOGRAPH +0xBA50 0x7BDC #CJK UNIFIED IDEOGRAPH +0xBA51 0x7BDE #CJK UNIFIED IDEOGRAPH +0xBA52 0x7BDF #CJK UNIFIED IDEOGRAPH +0xBA53 0x7BE0 #CJK UNIFIED IDEOGRAPH +0xBA54 0x7BE2 #CJK UNIFIED IDEOGRAPH +0xBA55 0x7BE3 #CJK UNIFIED IDEOGRAPH +0xBA56 0x7BE4 #CJK UNIFIED IDEOGRAPH +0xBA57 0x7BE7 #CJK UNIFIED IDEOGRAPH +0xBA58 0x7BE8 #CJK UNIFIED IDEOGRAPH +0xBA59 0x7BE9 #CJK UNIFIED IDEOGRAPH +0xBA5A 0x7BEB #CJK UNIFIED IDEOGRAPH +0xBA5B 0x7BEC #CJK UNIFIED IDEOGRAPH +0xBA5C 0x7BED #CJK UNIFIED IDEOGRAPH +0xBA5D 0x7BEF #CJK UNIFIED IDEOGRAPH +0xBA5E 0x7BF0 #CJK UNIFIED IDEOGRAPH +0xBA5F 0x7BF2 #CJK UNIFIED IDEOGRAPH +0xBA60 0x7BF3 #CJK UNIFIED IDEOGRAPH +0xBA61 0x7BF4 #CJK UNIFIED IDEOGRAPH +0xBA62 0x7BF5 #CJK UNIFIED IDEOGRAPH +0xBA63 0x7BF6 #CJK UNIFIED IDEOGRAPH +0xBA64 0x7BF8 #CJK UNIFIED IDEOGRAPH +0xBA65 0x7BF9 #CJK UNIFIED IDEOGRAPH +0xBA66 0x7BFA #CJK UNIFIED IDEOGRAPH +0xBA67 0x7BFB #CJK UNIFIED IDEOGRAPH +0xBA68 0x7BFD #CJK UNIFIED IDEOGRAPH +0xBA69 0x7BFF #CJK UNIFIED IDEOGRAPH +0xBA6A 0x7C00 #CJK UNIFIED IDEOGRAPH +0xBA6B 0x7C01 #CJK UNIFIED IDEOGRAPH +0xBA6C 0x7C02 #CJK UNIFIED IDEOGRAPH +0xBA6D 0x7C03 #CJK UNIFIED IDEOGRAPH +0xBA6E 0x7C04 #CJK UNIFIED IDEOGRAPH +0xBA6F 0x7C05 #CJK UNIFIED IDEOGRAPH +0xBA70 0x7C06 #CJK UNIFIED IDEOGRAPH +0xBA71 0x7C08 #CJK UNIFIED IDEOGRAPH +0xBA72 0x7C09 #CJK UNIFIED IDEOGRAPH +0xBA73 0x7C0A #CJK UNIFIED IDEOGRAPH +0xBA74 0x7C0D #CJK UNIFIED IDEOGRAPH +0xBA75 0x7C0E #CJK UNIFIED IDEOGRAPH +0xBA76 0x7C10 #CJK UNIFIED IDEOGRAPH +0xBA77 0x7C11 #CJK UNIFIED IDEOGRAPH +0xBA78 0x7C12 #CJK UNIFIED IDEOGRAPH +0xBA79 0x7C13 #CJK UNIFIED IDEOGRAPH +0xBA7A 0x7C14 #CJK UNIFIED IDEOGRAPH +0xBA7B 0x7C15 #CJK UNIFIED IDEOGRAPH +0xBA7C 0x7C17 #CJK UNIFIED IDEOGRAPH +0xBA7D 0x7C18 #CJK UNIFIED IDEOGRAPH +0xBA7E 0x7C19 #CJK UNIFIED IDEOGRAPH +0xBA80 0x7C1A #CJK UNIFIED IDEOGRAPH +0xBA81 0x7C1B #CJK UNIFIED IDEOGRAPH +0xBA82 0x7C1C #CJK UNIFIED IDEOGRAPH +0xBA83 0x7C1D #CJK UNIFIED IDEOGRAPH +0xBA84 0x7C1E #CJK UNIFIED IDEOGRAPH +0xBA85 0x7C20 #CJK UNIFIED IDEOGRAPH +0xBA86 0x7C21 #CJK UNIFIED IDEOGRAPH +0xBA87 0x7C22 #CJK UNIFIED IDEOGRAPH +0xBA88 0x7C23 #CJK UNIFIED IDEOGRAPH +0xBA89 0x7C24 #CJK UNIFIED IDEOGRAPH +0xBA8A 0x7C25 #CJK UNIFIED IDEOGRAPH +0xBA8B 0x7C28 #CJK UNIFIED IDEOGRAPH +0xBA8C 0x7C29 #CJK UNIFIED IDEOGRAPH +0xBA8D 0x7C2B #CJK UNIFIED IDEOGRAPH +0xBA8E 0x7C2C #CJK UNIFIED IDEOGRAPH +0xBA8F 0x7C2D #CJK UNIFIED IDEOGRAPH +0xBA90 0x7C2E #CJK UNIFIED IDEOGRAPH +0xBA91 0x7C2F #CJK UNIFIED IDEOGRAPH +0xBA92 0x7C30 #CJK UNIFIED IDEOGRAPH +0xBA93 0x7C31 #CJK UNIFIED IDEOGRAPH +0xBA94 0x7C32 #CJK UNIFIED IDEOGRAPH +0xBA95 0x7C33 #CJK UNIFIED IDEOGRAPH +0xBA96 0x7C34 #CJK UNIFIED IDEOGRAPH +0xBA97 0x7C35 #CJK UNIFIED IDEOGRAPH +0xBA98 0x7C36 #CJK UNIFIED IDEOGRAPH +0xBA99 0x7C37 #CJK UNIFIED IDEOGRAPH +0xBA9A 0x7C39 #CJK UNIFIED IDEOGRAPH +0xBA9B 0x7C3A #CJK UNIFIED IDEOGRAPH +0xBA9C 0x7C3B #CJK UNIFIED IDEOGRAPH +0xBA9D 0x7C3C #CJK UNIFIED IDEOGRAPH +0xBA9E 0x7C3D #CJK UNIFIED IDEOGRAPH +0xBA9F 0x7C3E #CJK UNIFIED IDEOGRAPH +0xBAA0 0x7C42 #CJK UNIFIED IDEOGRAPH +0xBAA1 0x9AB8 #CJK UNIFIED IDEOGRAPH +0xBAA2 0x5B69 #CJK UNIFIED IDEOGRAPH +0xBAA3 0x6D77 #CJK UNIFIED IDEOGRAPH +0xBAA4 0x6C26 #CJK UNIFIED IDEOGRAPH +0xBAA5 0x4EA5 #CJK UNIFIED IDEOGRAPH +0xBAA6 0x5BB3 #CJK UNIFIED IDEOGRAPH +0xBAA7 0x9A87 #CJK UNIFIED IDEOGRAPH +0xBAA8 0x9163 #CJK UNIFIED IDEOGRAPH +0xBAA9 0x61A8 #CJK UNIFIED IDEOGRAPH +0xBAAA 0x90AF #CJK UNIFIED IDEOGRAPH +0xBAAB 0x97E9 #CJK UNIFIED IDEOGRAPH +0xBAAC 0x542B #CJK UNIFIED IDEOGRAPH +0xBAAD 0x6DB5 #CJK UNIFIED IDEOGRAPH +0xBAAE 0x5BD2 #CJK UNIFIED IDEOGRAPH +0xBAAF 0x51FD #CJK UNIFIED IDEOGRAPH +0xBAB0 0x558A #CJK UNIFIED IDEOGRAPH +0xBAB1 0x7F55 #CJK UNIFIED IDEOGRAPH +0xBAB2 0x7FF0 #CJK UNIFIED IDEOGRAPH +0xBAB3 0x64BC #CJK UNIFIED IDEOGRAPH +0xBAB4 0x634D #CJK UNIFIED IDEOGRAPH +0xBAB5 0x65F1 #CJK UNIFIED IDEOGRAPH +0xBAB6 0x61BE #CJK UNIFIED IDEOGRAPH +0xBAB7 0x608D #CJK UNIFIED IDEOGRAPH +0xBAB8 0x710A #CJK UNIFIED IDEOGRAPH +0xBAB9 0x6C57 #CJK UNIFIED IDEOGRAPH +0xBABA 0x6C49 #CJK UNIFIED IDEOGRAPH +0xBABB 0x592F #CJK UNIFIED IDEOGRAPH +0xBABC 0x676D #CJK UNIFIED IDEOGRAPH +0xBABD 0x822A #CJK UNIFIED IDEOGRAPH +0xBABE 0x58D5 #CJK UNIFIED IDEOGRAPH +0xBABF 0x568E #CJK UNIFIED IDEOGRAPH +0xBAC0 0x8C6A #CJK UNIFIED IDEOGRAPH +0xBAC1 0x6BEB #CJK UNIFIED IDEOGRAPH +0xBAC2 0x90DD #CJK UNIFIED IDEOGRAPH +0xBAC3 0x597D #CJK UNIFIED IDEOGRAPH +0xBAC4 0x8017 #CJK UNIFIED IDEOGRAPH +0xBAC5 0x53F7 #CJK UNIFIED IDEOGRAPH +0xBAC6 0x6D69 #CJK UNIFIED IDEOGRAPH +0xBAC7 0x5475 #CJK UNIFIED IDEOGRAPH +0xBAC8 0x559D #CJK UNIFIED IDEOGRAPH +0xBAC9 0x8377 #CJK UNIFIED IDEOGRAPH +0xBACA 0x83CF #CJK UNIFIED IDEOGRAPH +0xBACB 0x6838 #CJK UNIFIED IDEOGRAPH +0xBACC 0x79BE #CJK UNIFIED IDEOGRAPH +0xBACD 0x548C #CJK UNIFIED IDEOGRAPH +0xBACE 0x4F55 #CJK UNIFIED IDEOGRAPH +0xBACF 0x5408 #CJK UNIFIED IDEOGRAPH +0xBAD0 0x76D2 #CJK UNIFIED IDEOGRAPH +0xBAD1 0x8C89 #CJK UNIFIED IDEOGRAPH +0xBAD2 0x9602 #CJK UNIFIED IDEOGRAPH +0xBAD3 0x6CB3 #CJK UNIFIED IDEOGRAPH +0xBAD4 0x6DB8 #CJK UNIFIED IDEOGRAPH +0xBAD5 0x8D6B #CJK UNIFIED IDEOGRAPH +0xBAD6 0x8910 #CJK UNIFIED IDEOGRAPH +0xBAD7 0x9E64 #CJK UNIFIED IDEOGRAPH +0xBAD8 0x8D3A #CJK UNIFIED IDEOGRAPH +0xBAD9 0x563F #CJK UNIFIED IDEOGRAPH +0xBADA 0x9ED1 #CJK UNIFIED IDEOGRAPH +0xBADB 0x75D5 #CJK UNIFIED IDEOGRAPH +0xBADC 0x5F88 #CJK UNIFIED IDEOGRAPH +0xBADD 0x72E0 #CJK UNIFIED IDEOGRAPH +0xBADE 0x6068 #CJK UNIFIED IDEOGRAPH +0xBADF 0x54FC #CJK UNIFIED IDEOGRAPH +0xBAE0 0x4EA8 #CJK UNIFIED IDEOGRAPH +0xBAE1 0x6A2A #CJK UNIFIED IDEOGRAPH +0xBAE2 0x8861 #CJK UNIFIED IDEOGRAPH +0xBAE3 0x6052 #CJK UNIFIED IDEOGRAPH +0xBAE4 0x8F70 #CJK UNIFIED IDEOGRAPH +0xBAE5 0x54C4 #CJK UNIFIED IDEOGRAPH +0xBAE6 0x70D8 #CJK UNIFIED IDEOGRAPH +0xBAE7 0x8679 #CJK UNIFIED IDEOGRAPH +0xBAE8 0x9E3F #CJK UNIFIED IDEOGRAPH +0xBAE9 0x6D2A #CJK UNIFIED IDEOGRAPH +0xBAEA 0x5B8F #CJK UNIFIED IDEOGRAPH +0xBAEB 0x5F18 #CJK UNIFIED IDEOGRAPH +0xBAEC 0x7EA2 #CJK UNIFIED IDEOGRAPH +0xBAED 0x5589 #CJK UNIFIED IDEOGRAPH +0xBAEE 0x4FAF #CJK UNIFIED IDEOGRAPH +0xBAEF 0x7334 #CJK UNIFIED IDEOGRAPH +0xBAF0 0x543C #CJK UNIFIED IDEOGRAPH +0xBAF1 0x539A #CJK UNIFIED IDEOGRAPH +0xBAF2 0x5019 #CJK UNIFIED IDEOGRAPH +0xBAF3 0x540E #CJK UNIFIED IDEOGRAPH +0xBAF4 0x547C #CJK UNIFIED IDEOGRAPH +0xBAF5 0x4E4E #CJK UNIFIED IDEOGRAPH +0xBAF6 0x5FFD #CJK UNIFIED IDEOGRAPH +0xBAF7 0x745A #CJK UNIFIED IDEOGRAPH +0xBAF8 0x58F6 #CJK UNIFIED IDEOGRAPH +0xBAF9 0x846B #CJK UNIFIED IDEOGRAPH +0xBAFA 0x80E1 #CJK UNIFIED IDEOGRAPH +0xBAFB 0x8774 #CJK UNIFIED IDEOGRAPH +0xBAFC 0x72D0 #CJK UNIFIED IDEOGRAPH +0xBAFD 0x7CCA #CJK UNIFIED IDEOGRAPH +0xBAFE 0x6E56 #CJK UNIFIED IDEOGRAPH +0xBB40 0x7C43 #CJK UNIFIED IDEOGRAPH +0xBB41 0x7C44 #CJK UNIFIED IDEOGRAPH +0xBB42 0x7C45 #CJK UNIFIED IDEOGRAPH +0xBB43 0x7C46 #CJK UNIFIED IDEOGRAPH +0xBB44 0x7C47 #CJK UNIFIED IDEOGRAPH +0xBB45 0x7C48 #CJK UNIFIED IDEOGRAPH +0xBB46 0x7C49 #CJK UNIFIED IDEOGRAPH +0xBB47 0x7C4A #CJK UNIFIED IDEOGRAPH +0xBB48 0x7C4B #CJK UNIFIED IDEOGRAPH +0xBB49 0x7C4C #CJK UNIFIED IDEOGRAPH +0xBB4A 0x7C4E #CJK UNIFIED IDEOGRAPH +0xBB4B 0x7C4F #CJK UNIFIED IDEOGRAPH +0xBB4C 0x7C50 #CJK UNIFIED IDEOGRAPH +0xBB4D 0x7C51 #CJK UNIFIED IDEOGRAPH +0xBB4E 0x7C52 #CJK UNIFIED IDEOGRAPH +0xBB4F 0x7C53 #CJK UNIFIED IDEOGRAPH +0xBB50 0x7C54 #CJK UNIFIED IDEOGRAPH +0xBB51 0x7C55 #CJK UNIFIED IDEOGRAPH +0xBB52 0x7C56 #CJK UNIFIED IDEOGRAPH +0xBB53 0x7C57 #CJK UNIFIED IDEOGRAPH +0xBB54 0x7C58 #CJK UNIFIED IDEOGRAPH +0xBB55 0x7C59 #CJK UNIFIED IDEOGRAPH +0xBB56 0x7C5A #CJK UNIFIED IDEOGRAPH +0xBB57 0x7C5B #CJK UNIFIED IDEOGRAPH +0xBB58 0x7C5C #CJK UNIFIED IDEOGRAPH +0xBB59 0x7C5D #CJK UNIFIED IDEOGRAPH +0xBB5A 0x7C5E #CJK UNIFIED IDEOGRAPH +0xBB5B 0x7C5F #CJK UNIFIED IDEOGRAPH +0xBB5C 0x7C60 #CJK UNIFIED IDEOGRAPH +0xBB5D 0x7C61 #CJK UNIFIED IDEOGRAPH +0xBB5E 0x7C62 #CJK UNIFIED IDEOGRAPH +0xBB5F 0x7C63 #CJK UNIFIED IDEOGRAPH +0xBB60 0x7C64 #CJK UNIFIED IDEOGRAPH +0xBB61 0x7C65 #CJK UNIFIED IDEOGRAPH +0xBB62 0x7C66 #CJK UNIFIED IDEOGRAPH +0xBB63 0x7C67 #CJK UNIFIED IDEOGRAPH +0xBB64 0x7C68 #CJK UNIFIED IDEOGRAPH +0xBB65 0x7C69 #CJK UNIFIED IDEOGRAPH +0xBB66 0x7C6A #CJK UNIFIED IDEOGRAPH +0xBB67 0x7C6B #CJK UNIFIED IDEOGRAPH +0xBB68 0x7C6C #CJK UNIFIED IDEOGRAPH +0xBB69 0x7C6D #CJK UNIFIED IDEOGRAPH +0xBB6A 0x7C6E #CJK UNIFIED IDEOGRAPH +0xBB6B 0x7C6F #CJK UNIFIED IDEOGRAPH +0xBB6C 0x7C70 #CJK UNIFIED IDEOGRAPH +0xBB6D 0x7C71 #CJK UNIFIED IDEOGRAPH +0xBB6E 0x7C72 #CJK UNIFIED IDEOGRAPH +0xBB6F 0x7C75 #CJK UNIFIED IDEOGRAPH +0xBB70 0x7C76 #CJK UNIFIED IDEOGRAPH +0xBB71 0x7C77 #CJK UNIFIED IDEOGRAPH +0xBB72 0x7C78 #CJK UNIFIED IDEOGRAPH +0xBB73 0x7C79 #CJK UNIFIED IDEOGRAPH +0xBB74 0x7C7A #CJK UNIFIED IDEOGRAPH +0xBB75 0x7C7E #CJK UNIFIED IDEOGRAPH +0xBB76 0x7C7F #CJK UNIFIED IDEOGRAPH +0xBB77 0x7C80 #CJK UNIFIED IDEOGRAPH +0xBB78 0x7C81 #CJK UNIFIED IDEOGRAPH +0xBB79 0x7C82 #CJK UNIFIED IDEOGRAPH +0xBB7A 0x7C83 #CJK UNIFIED IDEOGRAPH +0xBB7B 0x7C84 #CJK UNIFIED IDEOGRAPH +0xBB7C 0x7C85 #CJK UNIFIED IDEOGRAPH +0xBB7D 0x7C86 #CJK UNIFIED IDEOGRAPH +0xBB7E 0x7C87 #CJK UNIFIED IDEOGRAPH +0xBB80 0x7C88 #CJK UNIFIED IDEOGRAPH +0xBB81 0x7C8A #CJK UNIFIED IDEOGRAPH +0xBB82 0x7C8B #CJK UNIFIED IDEOGRAPH +0xBB83 0x7C8C #CJK UNIFIED IDEOGRAPH +0xBB84 0x7C8D #CJK UNIFIED IDEOGRAPH +0xBB85 0x7C8E #CJK UNIFIED IDEOGRAPH +0xBB86 0x7C8F #CJK UNIFIED IDEOGRAPH +0xBB87 0x7C90 #CJK UNIFIED IDEOGRAPH +0xBB88 0x7C93 #CJK UNIFIED IDEOGRAPH +0xBB89 0x7C94 #CJK UNIFIED IDEOGRAPH +0xBB8A 0x7C96 #CJK UNIFIED IDEOGRAPH +0xBB8B 0x7C99 #CJK UNIFIED IDEOGRAPH +0xBB8C 0x7C9A #CJK UNIFIED IDEOGRAPH +0xBB8D 0x7C9B #CJK UNIFIED IDEOGRAPH +0xBB8E 0x7CA0 #CJK UNIFIED IDEOGRAPH +0xBB8F 0x7CA1 #CJK UNIFIED IDEOGRAPH +0xBB90 0x7CA3 #CJK UNIFIED IDEOGRAPH +0xBB91 0x7CA6 #CJK UNIFIED IDEOGRAPH +0xBB92 0x7CA7 #CJK UNIFIED IDEOGRAPH +0xBB93 0x7CA8 #CJK UNIFIED IDEOGRAPH +0xBB94 0x7CA9 #CJK UNIFIED IDEOGRAPH +0xBB95 0x7CAB #CJK UNIFIED IDEOGRAPH +0xBB96 0x7CAC #CJK UNIFIED IDEOGRAPH +0xBB97 0x7CAD #CJK UNIFIED IDEOGRAPH +0xBB98 0x7CAF #CJK UNIFIED IDEOGRAPH +0xBB99 0x7CB0 #CJK UNIFIED IDEOGRAPH +0xBB9A 0x7CB4 #CJK UNIFIED IDEOGRAPH +0xBB9B 0x7CB5 #CJK UNIFIED IDEOGRAPH +0xBB9C 0x7CB6 #CJK UNIFIED IDEOGRAPH +0xBB9D 0x7CB7 #CJK UNIFIED IDEOGRAPH +0xBB9E 0x7CB8 #CJK UNIFIED IDEOGRAPH +0xBB9F 0x7CBA #CJK UNIFIED IDEOGRAPH +0xBBA0 0x7CBB #CJK UNIFIED IDEOGRAPH +0xBBA1 0x5F27 #CJK UNIFIED IDEOGRAPH +0xBBA2 0x864E #CJK UNIFIED IDEOGRAPH +0xBBA3 0x552C #CJK UNIFIED IDEOGRAPH +0xBBA4 0x62A4 #CJK UNIFIED IDEOGRAPH +0xBBA5 0x4E92 #CJK UNIFIED IDEOGRAPH +0xBBA6 0x6CAA #CJK UNIFIED IDEOGRAPH +0xBBA7 0x6237 #CJK UNIFIED IDEOGRAPH +0xBBA8 0x82B1 #CJK UNIFIED IDEOGRAPH +0xBBA9 0x54D7 #CJK UNIFIED IDEOGRAPH +0xBBAA 0x534E #CJK UNIFIED IDEOGRAPH +0xBBAB 0x733E #CJK UNIFIED IDEOGRAPH +0xBBAC 0x6ED1 #CJK UNIFIED IDEOGRAPH +0xBBAD 0x753B #CJK UNIFIED IDEOGRAPH +0xBBAE 0x5212 #CJK UNIFIED IDEOGRAPH +0xBBAF 0x5316 #CJK UNIFIED IDEOGRAPH +0xBBB0 0x8BDD #CJK UNIFIED IDEOGRAPH +0xBBB1 0x69D0 #CJK UNIFIED IDEOGRAPH +0xBBB2 0x5F8A #CJK UNIFIED IDEOGRAPH +0xBBB3 0x6000 #CJK UNIFIED IDEOGRAPH +0xBBB4 0x6DEE #CJK UNIFIED IDEOGRAPH +0xBBB5 0x574F #CJK UNIFIED IDEOGRAPH +0xBBB6 0x6B22 #CJK UNIFIED IDEOGRAPH +0xBBB7 0x73AF #CJK UNIFIED IDEOGRAPH +0xBBB8 0x6853 #CJK UNIFIED IDEOGRAPH +0xBBB9 0x8FD8 #CJK UNIFIED IDEOGRAPH +0xBBBA 0x7F13 #CJK UNIFIED IDEOGRAPH +0xBBBB 0x6362 #CJK UNIFIED IDEOGRAPH +0xBBBC 0x60A3 #CJK UNIFIED IDEOGRAPH +0xBBBD 0x5524 #CJK UNIFIED IDEOGRAPH +0xBBBE 0x75EA #CJK UNIFIED IDEOGRAPH +0xBBBF 0x8C62 #CJK UNIFIED IDEOGRAPH +0xBBC0 0x7115 #CJK UNIFIED IDEOGRAPH +0xBBC1 0x6DA3 #CJK UNIFIED IDEOGRAPH +0xBBC2 0x5BA6 #CJK UNIFIED IDEOGRAPH +0xBBC3 0x5E7B #CJK UNIFIED IDEOGRAPH +0xBBC4 0x8352 #CJK UNIFIED IDEOGRAPH +0xBBC5 0x614C #CJK UNIFIED IDEOGRAPH +0xBBC6 0x9EC4 #CJK UNIFIED IDEOGRAPH +0xBBC7 0x78FA #CJK UNIFIED IDEOGRAPH +0xBBC8 0x8757 #CJK UNIFIED IDEOGRAPH +0xBBC9 0x7C27 #CJK UNIFIED IDEOGRAPH +0xBBCA 0x7687 #CJK UNIFIED IDEOGRAPH +0xBBCB 0x51F0 #CJK UNIFIED IDEOGRAPH +0xBBCC 0x60F6 #CJK UNIFIED IDEOGRAPH +0xBBCD 0x714C #CJK UNIFIED IDEOGRAPH +0xBBCE 0x6643 #CJK UNIFIED IDEOGRAPH +0xBBCF 0x5E4C #CJK UNIFIED IDEOGRAPH +0xBBD0 0x604D #CJK UNIFIED IDEOGRAPH +0xBBD1 0x8C0E #CJK UNIFIED IDEOGRAPH +0xBBD2 0x7070 #CJK UNIFIED IDEOGRAPH +0xBBD3 0x6325 #CJK UNIFIED IDEOGRAPH +0xBBD4 0x8F89 #CJK UNIFIED IDEOGRAPH +0xBBD5 0x5FBD #CJK UNIFIED IDEOGRAPH +0xBBD6 0x6062 #CJK UNIFIED IDEOGRAPH +0xBBD7 0x86D4 #CJK UNIFIED IDEOGRAPH +0xBBD8 0x56DE #CJK UNIFIED IDEOGRAPH +0xBBD9 0x6BC1 #CJK UNIFIED IDEOGRAPH +0xBBDA 0x6094 #CJK UNIFIED IDEOGRAPH +0xBBDB 0x6167 #CJK UNIFIED IDEOGRAPH +0xBBDC 0x5349 #CJK UNIFIED IDEOGRAPH +0xBBDD 0x60E0 #CJK UNIFIED IDEOGRAPH +0xBBDE 0x6666 #CJK UNIFIED IDEOGRAPH +0xBBDF 0x8D3F #CJK UNIFIED IDEOGRAPH +0xBBE0 0x79FD #CJK UNIFIED IDEOGRAPH +0xBBE1 0x4F1A #CJK UNIFIED IDEOGRAPH +0xBBE2 0x70E9 #CJK UNIFIED IDEOGRAPH +0xBBE3 0x6C47 #CJK UNIFIED IDEOGRAPH +0xBBE4 0x8BB3 #CJK UNIFIED IDEOGRAPH +0xBBE5 0x8BF2 #CJK UNIFIED IDEOGRAPH +0xBBE6 0x7ED8 #CJK UNIFIED IDEOGRAPH +0xBBE7 0x8364 #CJK UNIFIED IDEOGRAPH +0xBBE8 0x660F #CJK UNIFIED IDEOGRAPH +0xBBE9 0x5A5A #CJK UNIFIED IDEOGRAPH +0xBBEA 0x9B42 #CJK UNIFIED IDEOGRAPH +0xBBEB 0x6D51 #CJK UNIFIED IDEOGRAPH +0xBBEC 0x6DF7 #CJK UNIFIED IDEOGRAPH +0xBBED 0x8C41 #CJK UNIFIED IDEOGRAPH +0xBBEE 0x6D3B #CJK UNIFIED IDEOGRAPH +0xBBEF 0x4F19 #CJK UNIFIED IDEOGRAPH +0xBBF0 0x706B #CJK UNIFIED IDEOGRAPH +0xBBF1 0x83B7 #CJK UNIFIED IDEOGRAPH +0xBBF2 0x6216 #CJK UNIFIED IDEOGRAPH +0xBBF3 0x60D1 #CJK UNIFIED IDEOGRAPH +0xBBF4 0x970D #CJK UNIFIED IDEOGRAPH +0xBBF5 0x8D27 #CJK UNIFIED IDEOGRAPH +0xBBF6 0x7978 #CJK UNIFIED IDEOGRAPH +0xBBF7 0x51FB #CJK UNIFIED IDEOGRAPH +0xBBF8 0x573E #CJK UNIFIED IDEOGRAPH +0xBBF9 0x57FA #CJK UNIFIED IDEOGRAPH +0xBBFA 0x673A #CJK UNIFIED IDEOGRAPH +0xBBFB 0x7578 #CJK UNIFIED IDEOGRAPH +0xBBFC 0x7A3D #CJK UNIFIED IDEOGRAPH +0xBBFD 0x79EF #CJK UNIFIED IDEOGRAPH +0xBBFE 0x7B95 #CJK UNIFIED IDEOGRAPH +0xBC40 0x7CBF #CJK UNIFIED IDEOGRAPH +0xBC41 0x7CC0 #CJK UNIFIED IDEOGRAPH +0xBC42 0x7CC2 #CJK UNIFIED IDEOGRAPH +0xBC43 0x7CC3 #CJK UNIFIED IDEOGRAPH +0xBC44 0x7CC4 #CJK UNIFIED IDEOGRAPH +0xBC45 0x7CC6 #CJK UNIFIED IDEOGRAPH +0xBC46 0x7CC9 #CJK UNIFIED IDEOGRAPH +0xBC47 0x7CCB #CJK UNIFIED IDEOGRAPH +0xBC48 0x7CCE #CJK UNIFIED IDEOGRAPH +0xBC49 0x7CCF #CJK UNIFIED IDEOGRAPH +0xBC4A 0x7CD0 #CJK UNIFIED IDEOGRAPH +0xBC4B 0x7CD1 #CJK UNIFIED IDEOGRAPH +0xBC4C 0x7CD2 #CJK UNIFIED IDEOGRAPH +0xBC4D 0x7CD3 #CJK UNIFIED IDEOGRAPH +0xBC4E 0x7CD4 #CJK UNIFIED IDEOGRAPH +0xBC4F 0x7CD8 #CJK UNIFIED IDEOGRAPH +0xBC50 0x7CDA #CJK UNIFIED IDEOGRAPH +0xBC51 0x7CDB #CJK UNIFIED IDEOGRAPH +0xBC52 0x7CDD #CJK UNIFIED IDEOGRAPH +0xBC53 0x7CDE #CJK UNIFIED IDEOGRAPH +0xBC54 0x7CE1 #CJK UNIFIED IDEOGRAPH +0xBC55 0x7CE2 #CJK UNIFIED IDEOGRAPH +0xBC56 0x7CE3 #CJK UNIFIED IDEOGRAPH +0xBC57 0x7CE4 #CJK UNIFIED IDEOGRAPH +0xBC58 0x7CE5 #CJK UNIFIED IDEOGRAPH +0xBC59 0x7CE6 #CJK UNIFIED IDEOGRAPH +0xBC5A 0x7CE7 #CJK UNIFIED IDEOGRAPH +0xBC5B 0x7CE9 #CJK UNIFIED IDEOGRAPH +0xBC5C 0x7CEA #CJK UNIFIED IDEOGRAPH +0xBC5D 0x7CEB #CJK UNIFIED IDEOGRAPH +0xBC5E 0x7CEC #CJK UNIFIED IDEOGRAPH +0xBC5F 0x7CED #CJK UNIFIED IDEOGRAPH +0xBC60 0x7CEE #CJK UNIFIED IDEOGRAPH +0xBC61 0x7CF0 #CJK UNIFIED IDEOGRAPH +0xBC62 0x7CF1 #CJK UNIFIED IDEOGRAPH +0xBC63 0x7CF2 #CJK UNIFIED IDEOGRAPH +0xBC64 0x7CF3 #CJK UNIFIED IDEOGRAPH +0xBC65 0x7CF4 #CJK UNIFIED IDEOGRAPH +0xBC66 0x7CF5 #CJK UNIFIED IDEOGRAPH +0xBC67 0x7CF6 #CJK UNIFIED IDEOGRAPH +0xBC68 0x7CF7 #CJK UNIFIED IDEOGRAPH +0xBC69 0x7CF9 #CJK UNIFIED IDEOGRAPH +0xBC6A 0x7CFA #CJK UNIFIED IDEOGRAPH +0xBC6B 0x7CFC #CJK UNIFIED IDEOGRAPH +0xBC6C 0x7CFD #CJK UNIFIED IDEOGRAPH +0xBC6D 0x7CFE #CJK UNIFIED IDEOGRAPH +0xBC6E 0x7CFF #CJK UNIFIED IDEOGRAPH +0xBC6F 0x7D00 #CJK UNIFIED IDEOGRAPH +0xBC70 0x7D01 #CJK UNIFIED IDEOGRAPH +0xBC71 0x7D02 #CJK UNIFIED IDEOGRAPH +0xBC72 0x7D03 #CJK UNIFIED IDEOGRAPH +0xBC73 0x7D04 #CJK UNIFIED IDEOGRAPH +0xBC74 0x7D05 #CJK UNIFIED IDEOGRAPH +0xBC75 0x7D06 #CJK UNIFIED IDEOGRAPH +0xBC76 0x7D07 #CJK UNIFIED IDEOGRAPH +0xBC77 0x7D08 #CJK UNIFIED IDEOGRAPH +0xBC78 0x7D09 #CJK UNIFIED IDEOGRAPH +0xBC79 0x7D0B #CJK UNIFIED IDEOGRAPH +0xBC7A 0x7D0C #CJK UNIFIED IDEOGRAPH +0xBC7B 0x7D0D #CJK UNIFIED IDEOGRAPH +0xBC7C 0x7D0E #CJK UNIFIED IDEOGRAPH +0xBC7D 0x7D0F #CJK UNIFIED IDEOGRAPH +0xBC7E 0x7D10 #CJK UNIFIED IDEOGRAPH +0xBC80 0x7D11 #CJK UNIFIED IDEOGRAPH +0xBC81 0x7D12 #CJK UNIFIED IDEOGRAPH +0xBC82 0x7D13 #CJK UNIFIED IDEOGRAPH +0xBC83 0x7D14 #CJK UNIFIED IDEOGRAPH +0xBC84 0x7D15 #CJK UNIFIED IDEOGRAPH +0xBC85 0x7D16 #CJK UNIFIED IDEOGRAPH +0xBC86 0x7D17 #CJK UNIFIED IDEOGRAPH +0xBC87 0x7D18 #CJK UNIFIED IDEOGRAPH +0xBC88 0x7D19 #CJK UNIFIED IDEOGRAPH +0xBC89 0x7D1A #CJK UNIFIED IDEOGRAPH +0xBC8A 0x7D1B #CJK UNIFIED IDEOGRAPH +0xBC8B 0x7D1C #CJK UNIFIED IDEOGRAPH +0xBC8C 0x7D1D #CJK UNIFIED IDEOGRAPH +0xBC8D 0x7D1E #CJK UNIFIED IDEOGRAPH +0xBC8E 0x7D1F #CJK UNIFIED IDEOGRAPH +0xBC8F 0x7D21 #CJK UNIFIED IDEOGRAPH +0xBC90 0x7D23 #CJK UNIFIED IDEOGRAPH +0xBC91 0x7D24 #CJK UNIFIED IDEOGRAPH +0xBC92 0x7D25 #CJK UNIFIED IDEOGRAPH +0xBC93 0x7D26 #CJK UNIFIED IDEOGRAPH +0xBC94 0x7D28 #CJK UNIFIED IDEOGRAPH +0xBC95 0x7D29 #CJK UNIFIED IDEOGRAPH +0xBC96 0x7D2A #CJK UNIFIED IDEOGRAPH +0xBC97 0x7D2C #CJK UNIFIED IDEOGRAPH +0xBC98 0x7D2D #CJK UNIFIED IDEOGRAPH +0xBC99 0x7D2E #CJK UNIFIED IDEOGRAPH +0xBC9A 0x7D30 #CJK UNIFIED IDEOGRAPH +0xBC9B 0x7D31 #CJK UNIFIED IDEOGRAPH +0xBC9C 0x7D32 #CJK UNIFIED IDEOGRAPH +0xBC9D 0x7D33 #CJK UNIFIED IDEOGRAPH +0xBC9E 0x7D34 #CJK UNIFIED IDEOGRAPH +0xBC9F 0x7D35 #CJK UNIFIED IDEOGRAPH +0xBCA0 0x7D36 #CJK UNIFIED IDEOGRAPH +0xBCA1 0x808C #CJK UNIFIED IDEOGRAPH +0xBCA2 0x9965 #CJK UNIFIED IDEOGRAPH +0xBCA3 0x8FF9 #CJK UNIFIED IDEOGRAPH +0xBCA4 0x6FC0 #CJK UNIFIED IDEOGRAPH +0xBCA5 0x8BA5 #CJK UNIFIED IDEOGRAPH +0xBCA6 0x9E21 #CJK UNIFIED IDEOGRAPH +0xBCA7 0x59EC #CJK UNIFIED IDEOGRAPH +0xBCA8 0x7EE9 #CJK UNIFIED IDEOGRAPH +0xBCA9 0x7F09 #CJK UNIFIED IDEOGRAPH +0xBCAA 0x5409 #CJK UNIFIED IDEOGRAPH +0xBCAB 0x6781 #CJK UNIFIED IDEOGRAPH +0xBCAC 0x68D8 #CJK UNIFIED IDEOGRAPH +0xBCAD 0x8F91 #CJK UNIFIED IDEOGRAPH +0xBCAE 0x7C4D #CJK UNIFIED IDEOGRAPH +0xBCAF 0x96C6 #CJK UNIFIED IDEOGRAPH +0xBCB0 0x53CA #CJK UNIFIED IDEOGRAPH +0xBCB1 0x6025 #CJK UNIFIED IDEOGRAPH +0xBCB2 0x75BE #CJK UNIFIED IDEOGRAPH +0xBCB3 0x6C72 #CJK UNIFIED IDEOGRAPH +0xBCB4 0x5373 #CJK UNIFIED IDEOGRAPH +0xBCB5 0x5AC9 #CJK UNIFIED IDEOGRAPH +0xBCB6 0x7EA7 #CJK UNIFIED IDEOGRAPH +0xBCB7 0x6324 #CJK UNIFIED IDEOGRAPH +0xBCB8 0x51E0 #CJK UNIFIED IDEOGRAPH +0xBCB9 0x810A #CJK UNIFIED IDEOGRAPH +0xBCBA 0x5DF1 #CJK UNIFIED IDEOGRAPH +0xBCBB 0x84DF #CJK UNIFIED IDEOGRAPH +0xBCBC 0x6280 #CJK UNIFIED IDEOGRAPH +0xBCBD 0x5180 #CJK UNIFIED IDEOGRAPH +0xBCBE 0x5B63 #CJK UNIFIED IDEOGRAPH +0xBCBF 0x4F0E #CJK UNIFIED IDEOGRAPH +0xBCC0 0x796D #CJK UNIFIED IDEOGRAPH +0xBCC1 0x5242 #CJK UNIFIED IDEOGRAPH +0xBCC2 0x60B8 #CJK UNIFIED IDEOGRAPH +0xBCC3 0x6D4E #CJK UNIFIED IDEOGRAPH +0xBCC4 0x5BC4 #CJK UNIFIED IDEOGRAPH +0xBCC5 0x5BC2 #CJK UNIFIED IDEOGRAPH +0xBCC6 0x8BA1 #CJK UNIFIED IDEOGRAPH +0xBCC7 0x8BB0 #CJK UNIFIED IDEOGRAPH +0xBCC8 0x65E2 #CJK UNIFIED IDEOGRAPH +0xBCC9 0x5FCC #CJK UNIFIED IDEOGRAPH +0xBCCA 0x9645 #CJK UNIFIED IDEOGRAPH +0xBCCB 0x5993 #CJK UNIFIED IDEOGRAPH +0xBCCC 0x7EE7 #CJK UNIFIED IDEOGRAPH +0xBCCD 0x7EAA #CJK UNIFIED IDEOGRAPH +0xBCCE 0x5609 #CJK UNIFIED IDEOGRAPH +0xBCCF 0x67B7 #CJK UNIFIED IDEOGRAPH +0xBCD0 0x5939 #CJK UNIFIED IDEOGRAPH +0xBCD1 0x4F73 #CJK UNIFIED IDEOGRAPH +0xBCD2 0x5BB6 #CJK UNIFIED IDEOGRAPH +0xBCD3 0x52A0 #CJK UNIFIED IDEOGRAPH +0xBCD4 0x835A #CJK UNIFIED IDEOGRAPH +0xBCD5 0x988A #CJK UNIFIED IDEOGRAPH +0xBCD6 0x8D3E #CJK UNIFIED IDEOGRAPH +0xBCD7 0x7532 #CJK UNIFIED IDEOGRAPH +0xBCD8 0x94BE #CJK UNIFIED IDEOGRAPH +0xBCD9 0x5047 #CJK UNIFIED IDEOGRAPH +0xBCDA 0x7A3C #CJK UNIFIED IDEOGRAPH +0xBCDB 0x4EF7 #CJK UNIFIED IDEOGRAPH +0xBCDC 0x67B6 #CJK UNIFIED IDEOGRAPH +0xBCDD 0x9A7E #CJK UNIFIED IDEOGRAPH +0xBCDE 0x5AC1 #CJK UNIFIED IDEOGRAPH +0xBCDF 0x6B7C #CJK UNIFIED IDEOGRAPH +0xBCE0 0x76D1 #CJK UNIFIED IDEOGRAPH +0xBCE1 0x575A #CJK UNIFIED IDEOGRAPH +0xBCE2 0x5C16 #CJK UNIFIED IDEOGRAPH +0xBCE3 0x7B3A #CJK UNIFIED IDEOGRAPH +0xBCE4 0x95F4 #CJK UNIFIED IDEOGRAPH +0xBCE5 0x714E #CJK UNIFIED IDEOGRAPH +0xBCE6 0x517C #CJK UNIFIED IDEOGRAPH +0xBCE7 0x80A9 #CJK UNIFIED IDEOGRAPH +0xBCE8 0x8270 #CJK UNIFIED IDEOGRAPH +0xBCE9 0x5978 #CJK UNIFIED IDEOGRAPH +0xBCEA 0x7F04 #CJK UNIFIED IDEOGRAPH +0xBCEB 0x8327 #CJK UNIFIED IDEOGRAPH +0xBCEC 0x68C0 #CJK UNIFIED IDEOGRAPH +0xBCED 0x67EC #CJK UNIFIED IDEOGRAPH +0xBCEE 0x78B1 #CJK UNIFIED IDEOGRAPH +0xBCEF 0x7877 #CJK UNIFIED IDEOGRAPH +0xBCF0 0x62E3 #CJK UNIFIED IDEOGRAPH +0xBCF1 0x6361 #CJK UNIFIED IDEOGRAPH +0xBCF2 0x7B80 #CJK UNIFIED IDEOGRAPH +0xBCF3 0x4FED #CJK UNIFIED IDEOGRAPH +0xBCF4 0x526A #CJK UNIFIED IDEOGRAPH +0xBCF5 0x51CF #CJK UNIFIED IDEOGRAPH +0xBCF6 0x8350 #CJK UNIFIED IDEOGRAPH +0xBCF7 0x69DB #CJK UNIFIED IDEOGRAPH +0xBCF8 0x9274 #CJK UNIFIED IDEOGRAPH +0xBCF9 0x8DF5 #CJK UNIFIED IDEOGRAPH +0xBCFA 0x8D31 #CJK UNIFIED IDEOGRAPH +0xBCFB 0x89C1 #CJK UNIFIED IDEOGRAPH +0xBCFC 0x952E #CJK UNIFIED IDEOGRAPH +0xBCFD 0x7BAD #CJK UNIFIED IDEOGRAPH +0xBCFE 0x4EF6 #CJK UNIFIED IDEOGRAPH +0xBD40 0x7D37 #CJK UNIFIED IDEOGRAPH +0xBD41 0x7D38 #CJK UNIFIED IDEOGRAPH +0xBD42 0x7D39 #CJK UNIFIED IDEOGRAPH +0xBD43 0x7D3A #CJK UNIFIED IDEOGRAPH +0xBD44 0x7D3B #CJK UNIFIED IDEOGRAPH +0xBD45 0x7D3C #CJK UNIFIED IDEOGRAPH +0xBD46 0x7D3D #CJK UNIFIED IDEOGRAPH +0xBD47 0x7D3E #CJK UNIFIED IDEOGRAPH +0xBD48 0x7D3F #CJK UNIFIED IDEOGRAPH +0xBD49 0x7D40 #CJK UNIFIED IDEOGRAPH +0xBD4A 0x7D41 #CJK UNIFIED IDEOGRAPH +0xBD4B 0x7D42 #CJK UNIFIED IDEOGRAPH +0xBD4C 0x7D43 #CJK UNIFIED IDEOGRAPH +0xBD4D 0x7D44 #CJK UNIFIED IDEOGRAPH +0xBD4E 0x7D45 #CJK UNIFIED IDEOGRAPH +0xBD4F 0x7D46 #CJK UNIFIED IDEOGRAPH +0xBD50 0x7D47 #CJK UNIFIED IDEOGRAPH +0xBD51 0x7D48 #CJK UNIFIED IDEOGRAPH +0xBD52 0x7D49 #CJK UNIFIED IDEOGRAPH +0xBD53 0x7D4A #CJK UNIFIED IDEOGRAPH +0xBD54 0x7D4B #CJK UNIFIED IDEOGRAPH +0xBD55 0x7D4C #CJK UNIFIED IDEOGRAPH +0xBD56 0x7D4D #CJK UNIFIED IDEOGRAPH +0xBD57 0x7D4E #CJK UNIFIED IDEOGRAPH +0xBD58 0x7D4F #CJK UNIFIED IDEOGRAPH +0xBD59 0x7D50 #CJK UNIFIED IDEOGRAPH +0xBD5A 0x7D51 #CJK UNIFIED IDEOGRAPH +0xBD5B 0x7D52 #CJK UNIFIED IDEOGRAPH +0xBD5C 0x7D53 #CJK UNIFIED IDEOGRAPH +0xBD5D 0x7D54 #CJK UNIFIED IDEOGRAPH +0xBD5E 0x7D55 #CJK UNIFIED IDEOGRAPH +0xBD5F 0x7D56 #CJK UNIFIED IDEOGRAPH +0xBD60 0x7D57 #CJK UNIFIED IDEOGRAPH +0xBD61 0x7D58 #CJK UNIFIED IDEOGRAPH +0xBD62 0x7D59 #CJK UNIFIED IDEOGRAPH +0xBD63 0x7D5A #CJK UNIFIED IDEOGRAPH +0xBD64 0x7D5B #CJK UNIFIED IDEOGRAPH +0xBD65 0x7D5C #CJK UNIFIED IDEOGRAPH +0xBD66 0x7D5D #CJK UNIFIED IDEOGRAPH +0xBD67 0x7D5E #CJK UNIFIED IDEOGRAPH +0xBD68 0x7D5F #CJK UNIFIED IDEOGRAPH +0xBD69 0x7D60 #CJK UNIFIED IDEOGRAPH +0xBD6A 0x7D61 #CJK UNIFIED IDEOGRAPH +0xBD6B 0x7D62 #CJK UNIFIED IDEOGRAPH +0xBD6C 0x7D63 #CJK UNIFIED IDEOGRAPH +0xBD6D 0x7D64 #CJK UNIFIED IDEOGRAPH +0xBD6E 0x7D65 #CJK UNIFIED IDEOGRAPH +0xBD6F 0x7D66 #CJK UNIFIED IDEOGRAPH +0xBD70 0x7D67 #CJK UNIFIED IDEOGRAPH +0xBD71 0x7D68 #CJK UNIFIED IDEOGRAPH +0xBD72 0x7D69 #CJK UNIFIED IDEOGRAPH +0xBD73 0x7D6A #CJK UNIFIED IDEOGRAPH +0xBD74 0x7D6B #CJK UNIFIED IDEOGRAPH +0xBD75 0x7D6C #CJK UNIFIED IDEOGRAPH +0xBD76 0x7D6D #CJK UNIFIED IDEOGRAPH +0xBD77 0x7D6F #CJK UNIFIED IDEOGRAPH +0xBD78 0x7D70 #CJK UNIFIED IDEOGRAPH +0xBD79 0x7D71 #CJK UNIFIED IDEOGRAPH +0xBD7A 0x7D72 #CJK UNIFIED IDEOGRAPH +0xBD7B 0x7D73 #CJK UNIFIED IDEOGRAPH +0xBD7C 0x7D74 #CJK UNIFIED IDEOGRAPH +0xBD7D 0x7D75 #CJK UNIFIED IDEOGRAPH +0xBD7E 0x7D76 #CJK UNIFIED IDEOGRAPH +0xBD80 0x7D78 #CJK UNIFIED IDEOGRAPH +0xBD81 0x7D79 #CJK UNIFIED IDEOGRAPH +0xBD82 0x7D7A #CJK UNIFIED IDEOGRAPH +0xBD83 0x7D7B #CJK UNIFIED IDEOGRAPH +0xBD84 0x7D7C #CJK UNIFIED IDEOGRAPH +0xBD85 0x7D7D #CJK UNIFIED IDEOGRAPH +0xBD86 0x7D7E #CJK UNIFIED IDEOGRAPH +0xBD87 0x7D7F #CJK UNIFIED IDEOGRAPH +0xBD88 0x7D80 #CJK UNIFIED IDEOGRAPH +0xBD89 0x7D81 #CJK UNIFIED IDEOGRAPH +0xBD8A 0x7D82 #CJK UNIFIED IDEOGRAPH +0xBD8B 0x7D83 #CJK UNIFIED IDEOGRAPH +0xBD8C 0x7D84 #CJK UNIFIED IDEOGRAPH +0xBD8D 0x7D85 #CJK UNIFIED IDEOGRAPH +0xBD8E 0x7D86 #CJK UNIFIED IDEOGRAPH +0xBD8F 0x7D87 #CJK UNIFIED IDEOGRAPH +0xBD90 0x7D88 #CJK UNIFIED IDEOGRAPH +0xBD91 0x7D89 #CJK UNIFIED IDEOGRAPH +0xBD92 0x7D8A #CJK UNIFIED IDEOGRAPH +0xBD93 0x7D8B #CJK UNIFIED IDEOGRAPH +0xBD94 0x7D8C #CJK UNIFIED IDEOGRAPH +0xBD95 0x7D8D #CJK UNIFIED IDEOGRAPH +0xBD96 0x7D8E #CJK UNIFIED IDEOGRAPH +0xBD97 0x7D8F #CJK UNIFIED IDEOGRAPH +0xBD98 0x7D90 #CJK UNIFIED IDEOGRAPH +0xBD99 0x7D91 #CJK UNIFIED IDEOGRAPH +0xBD9A 0x7D92 #CJK UNIFIED IDEOGRAPH +0xBD9B 0x7D93 #CJK UNIFIED IDEOGRAPH +0xBD9C 0x7D94 #CJK UNIFIED IDEOGRAPH +0xBD9D 0x7D95 #CJK UNIFIED IDEOGRAPH +0xBD9E 0x7D96 #CJK UNIFIED IDEOGRAPH +0xBD9F 0x7D97 #CJK UNIFIED IDEOGRAPH +0xBDA0 0x7D98 #CJK UNIFIED IDEOGRAPH +0xBDA1 0x5065 #CJK UNIFIED IDEOGRAPH +0xBDA2 0x8230 #CJK UNIFIED IDEOGRAPH +0xBDA3 0x5251 #CJK UNIFIED IDEOGRAPH +0xBDA4 0x996F #CJK UNIFIED IDEOGRAPH +0xBDA5 0x6E10 #CJK UNIFIED IDEOGRAPH +0xBDA6 0x6E85 #CJK UNIFIED IDEOGRAPH +0xBDA7 0x6DA7 #CJK UNIFIED IDEOGRAPH +0xBDA8 0x5EFA #CJK UNIFIED IDEOGRAPH +0xBDA9 0x50F5 #CJK UNIFIED IDEOGRAPH +0xBDAA 0x59DC #CJK UNIFIED IDEOGRAPH +0xBDAB 0x5C06 #CJK UNIFIED IDEOGRAPH +0xBDAC 0x6D46 #CJK UNIFIED IDEOGRAPH +0xBDAD 0x6C5F #CJK UNIFIED IDEOGRAPH +0xBDAE 0x7586 #CJK UNIFIED IDEOGRAPH +0xBDAF 0x848B #CJK UNIFIED IDEOGRAPH +0xBDB0 0x6868 #CJK UNIFIED IDEOGRAPH +0xBDB1 0x5956 #CJK UNIFIED IDEOGRAPH +0xBDB2 0x8BB2 #CJK UNIFIED IDEOGRAPH +0xBDB3 0x5320 #CJK UNIFIED IDEOGRAPH +0xBDB4 0x9171 #CJK UNIFIED IDEOGRAPH +0xBDB5 0x964D #CJK UNIFIED IDEOGRAPH +0xBDB6 0x8549 #CJK UNIFIED IDEOGRAPH +0xBDB7 0x6912 #CJK UNIFIED IDEOGRAPH +0xBDB8 0x7901 #CJK UNIFIED IDEOGRAPH +0xBDB9 0x7126 #CJK UNIFIED IDEOGRAPH +0xBDBA 0x80F6 #CJK UNIFIED IDEOGRAPH +0xBDBB 0x4EA4 #CJK UNIFIED IDEOGRAPH +0xBDBC 0x90CA #CJK UNIFIED IDEOGRAPH +0xBDBD 0x6D47 #CJK UNIFIED IDEOGRAPH +0xBDBE 0x9A84 #CJK UNIFIED IDEOGRAPH +0xBDBF 0x5A07 #CJK UNIFIED IDEOGRAPH +0xBDC0 0x56BC #CJK UNIFIED IDEOGRAPH +0xBDC1 0x6405 #CJK UNIFIED IDEOGRAPH +0xBDC2 0x94F0 #CJK UNIFIED IDEOGRAPH +0xBDC3 0x77EB #CJK UNIFIED IDEOGRAPH +0xBDC4 0x4FA5 #CJK UNIFIED IDEOGRAPH +0xBDC5 0x811A #CJK UNIFIED IDEOGRAPH +0xBDC6 0x72E1 #CJK UNIFIED IDEOGRAPH +0xBDC7 0x89D2 #CJK UNIFIED IDEOGRAPH +0xBDC8 0x997A #CJK UNIFIED IDEOGRAPH +0xBDC9 0x7F34 #CJK UNIFIED IDEOGRAPH +0xBDCA 0x7EDE #CJK UNIFIED IDEOGRAPH +0xBDCB 0x527F #CJK UNIFIED IDEOGRAPH +0xBDCC 0x6559 #CJK UNIFIED IDEOGRAPH +0xBDCD 0x9175 #CJK UNIFIED IDEOGRAPH +0xBDCE 0x8F7F #CJK UNIFIED IDEOGRAPH +0xBDCF 0x8F83 #CJK UNIFIED IDEOGRAPH +0xBDD0 0x53EB #CJK UNIFIED IDEOGRAPH +0xBDD1 0x7A96 #CJK UNIFIED IDEOGRAPH +0xBDD2 0x63ED #CJK UNIFIED IDEOGRAPH +0xBDD3 0x63A5 #CJK UNIFIED IDEOGRAPH +0xBDD4 0x7686 #CJK UNIFIED IDEOGRAPH +0xBDD5 0x79F8 #CJK UNIFIED IDEOGRAPH +0xBDD6 0x8857 #CJK UNIFIED IDEOGRAPH +0xBDD7 0x9636 #CJK UNIFIED IDEOGRAPH +0xBDD8 0x622A #CJK UNIFIED IDEOGRAPH +0xBDD9 0x52AB #CJK UNIFIED IDEOGRAPH +0xBDDA 0x8282 #CJK UNIFIED IDEOGRAPH +0xBDDB 0x6854 #CJK UNIFIED IDEOGRAPH +0xBDDC 0x6770 #CJK UNIFIED IDEOGRAPH +0xBDDD 0x6377 #CJK UNIFIED IDEOGRAPH +0xBDDE 0x776B #CJK UNIFIED IDEOGRAPH +0xBDDF 0x7AED #CJK UNIFIED IDEOGRAPH +0xBDE0 0x6D01 #CJK UNIFIED IDEOGRAPH +0xBDE1 0x7ED3 #CJK UNIFIED IDEOGRAPH +0xBDE2 0x89E3 #CJK UNIFIED IDEOGRAPH +0xBDE3 0x59D0 #CJK UNIFIED IDEOGRAPH +0xBDE4 0x6212 #CJK UNIFIED IDEOGRAPH +0xBDE5 0x85C9 #CJK UNIFIED IDEOGRAPH +0xBDE6 0x82A5 #CJK UNIFIED IDEOGRAPH +0xBDE7 0x754C #CJK UNIFIED IDEOGRAPH +0xBDE8 0x501F #CJK UNIFIED IDEOGRAPH +0xBDE9 0x4ECB #CJK UNIFIED IDEOGRAPH +0xBDEA 0x75A5 #CJK UNIFIED IDEOGRAPH +0xBDEB 0x8BEB #CJK UNIFIED IDEOGRAPH +0xBDEC 0x5C4A #CJK UNIFIED IDEOGRAPH +0xBDED 0x5DFE #CJK UNIFIED IDEOGRAPH +0xBDEE 0x7B4B #CJK UNIFIED IDEOGRAPH +0xBDEF 0x65A4 #CJK UNIFIED IDEOGRAPH +0xBDF0 0x91D1 #CJK UNIFIED IDEOGRAPH +0xBDF1 0x4ECA #CJK UNIFIED IDEOGRAPH +0xBDF2 0x6D25 #CJK UNIFIED IDEOGRAPH +0xBDF3 0x895F #CJK UNIFIED IDEOGRAPH +0xBDF4 0x7D27 #CJK UNIFIED IDEOGRAPH +0xBDF5 0x9526 #CJK UNIFIED IDEOGRAPH +0xBDF6 0x4EC5 #CJK UNIFIED IDEOGRAPH +0xBDF7 0x8C28 #CJK UNIFIED IDEOGRAPH +0xBDF8 0x8FDB #CJK UNIFIED IDEOGRAPH +0xBDF9 0x9773 #CJK UNIFIED IDEOGRAPH +0xBDFA 0x664B #CJK UNIFIED IDEOGRAPH +0xBDFB 0x7981 #CJK UNIFIED IDEOGRAPH +0xBDFC 0x8FD1 #CJK UNIFIED IDEOGRAPH +0xBDFD 0x70EC #CJK UNIFIED IDEOGRAPH +0xBDFE 0x6D78 #CJK UNIFIED IDEOGRAPH +0xBE40 0x7D99 #CJK UNIFIED IDEOGRAPH +0xBE41 0x7D9A #CJK UNIFIED IDEOGRAPH +0xBE42 0x7D9B #CJK UNIFIED IDEOGRAPH +0xBE43 0x7D9C #CJK UNIFIED IDEOGRAPH +0xBE44 0x7D9D #CJK UNIFIED IDEOGRAPH +0xBE45 0x7D9E #CJK UNIFIED IDEOGRAPH +0xBE46 0x7D9F #CJK UNIFIED IDEOGRAPH +0xBE47 0x7DA0 #CJK UNIFIED IDEOGRAPH +0xBE48 0x7DA1 #CJK UNIFIED IDEOGRAPH +0xBE49 0x7DA2 #CJK UNIFIED IDEOGRAPH +0xBE4A 0x7DA3 #CJK UNIFIED IDEOGRAPH +0xBE4B 0x7DA4 #CJK UNIFIED IDEOGRAPH +0xBE4C 0x7DA5 #CJK UNIFIED IDEOGRAPH +0xBE4D 0x7DA7 #CJK UNIFIED IDEOGRAPH +0xBE4E 0x7DA8 #CJK UNIFIED IDEOGRAPH +0xBE4F 0x7DA9 #CJK UNIFIED IDEOGRAPH +0xBE50 0x7DAA #CJK UNIFIED IDEOGRAPH +0xBE51 0x7DAB #CJK UNIFIED IDEOGRAPH +0xBE52 0x7DAC #CJK UNIFIED IDEOGRAPH +0xBE53 0x7DAD #CJK UNIFIED IDEOGRAPH +0xBE54 0x7DAF #CJK UNIFIED IDEOGRAPH +0xBE55 0x7DB0 #CJK UNIFIED IDEOGRAPH +0xBE56 0x7DB1 #CJK UNIFIED IDEOGRAPH +0xBE57 0x7DB2 #CJK UNIFIED IDEOGRAPH +0xBE58 0x7DB3 #CJK UNIFIED IDEOGRAPH +0xBE59 0x7DB4 #CJK UNIFIED IDEOGRAPH +0xBE5A 0x7DB5 #CJK UNIFIED IDEOGRAPH +0xBE5B 0x7DB6 #CJK UNIFIED IDEOGRAPH +0xBE5C 0x7DB7 #CJK UNIFIED IDEOGRAPH +0xBE5D 0x7DB8 #CJK UNIFIED IDEOGRAPH +0xBE5E 0x7DB9 #CJK UNIFIED IDEOGRAPH +0xBE5F 0x7DBA #CJK UNIFIED IDEOGRAPH +0xBE60 0x7DBB #CJK UNIFIED IDEOGRAPH +0xBE61 0x7DBC #CJK UNIFIED IDEOGRAPH +0xBE62 0x7DBD #CJK UNIFIED IDEOGRAPH +0xBE63 0x7DBE #CJK UNIFIED IDEOGRAPH +0xBE64 0x7DBF #CJK UNIFIED IDEOGRAPH +0xBE65 0x7DC0 #CJK UNIFIED IDEOGRAPH +0xBE66 0x7DC1 #CJK UNIFIED IDEOGRAPH +0xBE67 0x7DC2 #CJK UNIFIED IDEOGRAPH +0xBE68 0x7DC3 #CJK UNIFIED IDEOGRAPH +0xBE69 0x7DC4 #CJK UNIFIED IDEOGRAPH +0xBE6A 0x7DC5 #CJK UNIFIED IDEOGRAPH +0xBE6B 0x7DC6 #CJK UNIFIED IDEOGRAPH +0xBE6C 0x7DC7 #CJK UNIFIED IDEOGRAPH +0xBE6D 0x7DC8 #CJK UNIFIED IDEOGRAPH +0xBE6E 0x7DC9 #CJK UNIFIED IDEOGRAPH +0xBE6F 0x7DCA #CJK UNIFIED IDEOGRAPH +0xBE70 0x7DCB #CJK UNIFIED IDEOGRAPH +0xBE71 0x7DCC #CJK UNIFIED IDEOGRAPH +0xBE72 0x7DCD #CJK UNIFIED IDEOGRAPH +0xBE73 0x7DCE #CJK UNIFIED IDEOGRAPH +0xBE74 0x7DCF #CJK UNIFIED IDEOGRAPH +0xBE75 0x7DD0 #CJK UNIFIED IDEOGRAPH +0xBE76 0x7DD1 #CJK UNIFIED IDEOGRAPH +0xBE77 0x7DD2 #CJK UNIFIED IDEOGRAPH +0xBE78 0x7DD3 #CJK UNIFIED IDEOGRAPH +0xBE79 0x7DD4 #CJK UNIFIED IDEOGRAPH +0xBE7A 0x7DD5 #CJK UNIFIED IDEOGRAPH +0xBE7B 0x7DD6 #CJK UNIFIED IDEOGRAPH +0xBE7C 0x7DD7 #CJK UNIFIED IDEOGRAPH +0xBE7D 0x7DD8 #CJK UNIFIED IDEOGRAPH +0xBE7E 0x7DD9 #CJK UNIFIED IDEOGRAPH +0xBE80 0x7DDA #CJK UNIFIED IDEOGRAPH +0xBE81 0x7DDB #CJK UNIFIED IDEOGRAPH +0xBE82 0x7DDC #CJK UNIFIED IDEOGRAPH +0xBE83 0x7DDD #CJK UNIFIED IDEOGRAPH +0xBE84 0x7DDE #CJK UNIFIED IDEOGRAPH +0xBE85 0x7DDF #CJK UNIFIED IDEOGRAPH +0xBE86 0x7DE0 #CJK UNIFIED IDEOGRAPH +0xBE87 0x7DE1 #CJK UNIFIED IDEOGRAPH +0xBE88 0x7DE2 #CJK UNIFIED IDEOGRAPH +0xBE89 0x7DE3 #CJK UNIFIED IDEOGRAPH +0xBE8A 0x7DE4 #CJK UNIFIED IDEOGRAPH +0xBE8B 0x7DE5 #CJK UNIFIED IDEOGRAPH +0xBE8C 0x7DE6 #CJK UNIFIED IDEOGRAPH +0xBE8D 0x7DE7 #CJK UNIFIED IDEOGRAPH +0xBE8E 0x7DE8 #CJK UNIFIED IDEOGRAPH +0xBE8F 0x7DE9 #CJK UNIFIED IDEOGRAPH +0xBE90 0x7DEA #CJK UNIFIED IDEOGRAPH +0xBE91 0x7DEB #CJK UNIFIED IDEOGRAPH +0xBE92 0x7DEC #CJK UNIFIED IDEOGRAPH +0xBE93 0x7DED #CJK UNIFIED IDEOGRAPH +0xBE94 0x7DEE #CJK UNIFIED IDEOGRAPH +0xBE95 0x7DEF #CJK UNIFIED IDEOGRAPH +0xBE96 0x7DF0 #CJK UNIFIED IDEOGRAPH +0xBE97 0x7DF1 #CJK UNIFIED IDEOGRAPH +0xBE98 0x7DF2 #CJK UNIFIED IDEOGRAPH +0xBE99 0x7DF3 #CJK UNIFIED IDEOGRAPH +0xBE9A 0x7DF4 #CJK UNIFIED IDEOGRAPH +0xBE9B 0x7DF5 #CJK UNIFIED IDEOGRAPH +0xBE9C 0x7DF6 #CJK UNIFIED IDEOGRAPH +0xBE9D 0x7DF7 #CJK UNIFIED IDEOGRAPH +0xBE9E 0x7DF8 #CJK UNIFIED IDEOGRAPH +0xBE9F 0x7DF9 #CJK UNIFIED IDEOGRAPH +0xBEA0 0x7DFA #CJK UNIFIED IDEOGRAPH +0xBEA1 0x5C3D #CJK UNIFIED IDEOGRAPH +0xBEA2 0x52B2 #CJK UNIFIED IDEOGRAPH +0xBEA3 0x8346 #CJK UNIFIED IDEOGRAPH +0xBEA4 0x5162 #CJK UNIFIED IDEOGRAPH +0xBEA5 0x830E #CJK UNIFIED IDEOGRAPH +0xBEA6 0x775B #CJK UNIFIED IDEOGRAPH +0xBEA7 0x6676 #CJK UNIFIED IDEOGRAPH +0xBEA8 0x9CB8 #CJK UNIFIED IDEOGRAPH +0xBEA9 0x4EAC #CJK UNIFIED IDEOGRAPH +0xBEAA 0x60CA #CJK UNIFIED IDEOGRAPH +0xBEAB 0x7CBE #CJK UNIFIED IDEOGRAPH +0xBEAC 0x7CB3 #CJK UNIFIED IDEOGRAPH +0xBEAD 0x7ECF #CJK UNIFIED IDEOGRAPH +0xBEAE 0x4E95 #CJK UNIFIED IDEOGRAPH +0xBEAF 0x8B66 #CJK UNIFIED IDEOGRAPH +0xBEB0 0x666F #CJK UNIFIED IDEOGRAPH +0xBEB1 0x9888 #CJK UNIFIED IDEOGRAPH +0xBEB2 0x9759 #CJK UNIFIED IDEOGRAPH +0xBEB3 0x5883 #CJK UNIFIED IDEOGRAPH +0xBEB4 0x656C #CJK UNIFIED IDEOGRAPH +0xBEB5 0x955C #CJK UNIFIED IDEOGRAPH +0xBEB6 0x5F84 #CJK UNIFIED IDEOGRAPH +0xBEB7 0x75C9 #CJK UNIFIED IDEOGRAPH +0xBEB8 0x9756 #CJK UNIFIED IDEOGRAPH +0xBEB9 0x7ADF #CJK UNIFIED IDEOGRAPH +0xBEBA 0x7ADE #CJK UNIFIED IDEOGRAPH +0xBEBB 0x51C0 #CJK UNIFIED IDEOGRAPH +0xBEBC 0x70AF #CJK UNIFIED IDEOGRAPH +0xBEBD 0x7A98 #CJK UNIFIED IDEOGRAPH +0xBEBE 0x63EA #CJK UNIFIED IDEOGRAPH +0xBEBF 0x7A76 #CJK UNIFIED IDEOGRAPH +0xBEC0 0x7EA0 #CJK UNIFIED IDEOGRAPH +0xBEC1 0x7396 #CJK UNIFIED IDEOGRAPH +0xBEC2 0x97ED #CJK UNIFIED IDEOGRAPH +0xBEC3 0x4E45 #CJK UNIFIED IDEOGRAPH +0xBEC4 0x7078 #CJK UNIFIED IDEOGRAPH +0xBEC5 0x4E5D #CJK UNIFIED IDEOGRAPH +0xBEC6 0x9152 #CJK UNIFIED IDEOGRAPH +0xBEC7 0x53A9 #CJK UNIFIED IDEOGRAPH +0xBEC8 0x6551 #CJK UNIFIED IDEOGRAPH +0xBEC9 0x65E7 #CJK UNIFIED IDEOGRAPH +0xBECA 0x81FC #CJK UNIFIED IDEOGRAPH +0xBECB 0x8205 #CJK UNIFIED IDEOGRAPH +0xBECC 0x548E #CJK UNIFIED IDEOGRAPH +0xBECD 0x5C31 #CJK UNIFIED IDEOGRAPH +0xBECE 0x759A #CJK UNIFIED IDEOGRAPH +0xBECF 0x97A0 #CJK UNIFIED IDEOGRAPH +0xBED0 0x62D8 #CJK UNIFIED IDEOGRAPH +0xBED1 0x72D9 #CJK UNIFIED IDEOGRAPH +0xBED2 0x75BD #CJK UNIFIED IDEOGRAPH +0xBED3 0x5C45 #CJK UNIFIED IDEOGRAPH +0xBED4 0x9A79 #CJK UNIFIED IDEOGRAPH +0xBED5 0x83CA #CJK UNIFIED IDEOGRAPH +0xBED6 0x5C40 #CJK UNIFIED IDEOGRAPH +0xBED7 0x5480 #CJK UNIFIED IDEOGRAPH +0xBED8 0x77E9 #CJK UNIFIED IDEOGRAPH +0xBED9 0x4E3E #CJK UNIFIED IDEOGRAPH +0xBEDA 0x6CAE #CJK UNIFIED IDEOGRAPH +0xBEDB 0x805A #CJK UNIFIED IDEOGRAPH +0xBEDC 0x62D2 #CJK UNIFIED IDEOGRAPH +0xBEDD 0x636E #CJK UNIFIED IDEOGRAPH +0xBEDE 0x5DE8 #CJK UNIFIED IDEOGRAPH +0xBEDF 0x5177 #CJK UNIFIED IDEOGRAPH +0xBEE0 0x8DDD #CJK UNIFIED IDEOGRAPH +0xBEE1 0x8E1E #CJK UNIFIED IDEOGRAPH +0xBEE2 0x952F #CJK UNIFIED IDEOGRAPH +0xBEE3 0x4FF1 #CJK UNIFIED IDEOGRAPH +0xBEE4 0x53E5 #CJK UNIFIED IDEOGRAPH +0xBEE5 0x60E7 #CJK UNIFIED IDEOGRAPH +0xBEE6 0x70AC #CJK UNIFIED IDEOGRAPH +0xBEE7 0x5267 #CJK UNIFIED IDEOGRAPH +0xBEE8 0x6350 #CJK UNIFIED IDEOGRAPH +0xBEE9 0x9E43 #CJK UNIFIED IDEOGRAPH +0xBEEA 0x5A1F #CJK UNIFIED IDEOGRAPH +0xBEEB 0x5026 #CJK UNIFIED IDEOGRAPH +0xBEEC 0x7737 #CJK UNIFIED IDEOGRAPH +0xBEED 0x5377 #CJK UNIFIED IDEOGRAPH +0xBEEE 0x7EE2 #CJK UNIFIED IDEOGRAPH +0xBEEF 0x6485 #CJK UNIFIED IDEOGRAPH +0xBEF0 0x652B #CJK UNIFIED IDEOGRAPH +0xBEF1 0x6289 #CJK UNIFIED IDEOGRAPH +0xBEF2 0x6398 #CJK UNIFIED IDEOGRAPH +0xBEF3 0x5014 #CJK UNIFIED IDEOGRAPH +0xBEF4 0x7235 #CJK UNIFIED IDEOGRAPH +0xBEF5 0x89C9 #CJK UNIFIED IDEOGRAPH +0xBEF6 0x51B3 #CJK UNIFIED IDEOGRAPH +0xBEF7 0x8BC0 #CJK UNIFIED IDEOGRAPH +0xBEF8 0x7EDD #CJK UNIFIED IDEOGRAPH +0xBEF9 0x5747 #CJK UNIFIED IDEOGRAPH +0xBEFA 0x83CC #CJK UNIFIED IDEOGRAPH +0xBEFB 0x94A7 #CJK UNIFIED IDEOGRAPH +0xBEFC 0x519B #CJK UNIFIED IDEOGRAPH +0xBEFD 0x541B #CJK UNIFIED IDEOGRAPH +0xBEFE 0x5CFB #CJK UNIFIED IDEOGRAPH +0xBF40 0x7DFB #CJK UNIFIED IDEOGRAPH +0xBF41 0x7DFC #CJK UNIFIED IDEOGRAPH +0xBF42 0x7DFD #CJK UNIFIED IDEOGRAPH +0xBF43 0x7DFE #CJK UNIFIED IDEOGRAPH +0xBF44 0x7DFF #CJK UNIFIED IDEOGRAPH +0xBF45 0x7E00 #CJK UNIFIED IDEOGRAPH +0xBF46 0x7E01 #CJK UNIFIED IDEOGRAPH +0xBF47 0x7E02 #CJK UNIFIED IDEOGRAPH +0xBF48 0x7E03 #CJK UNIFIED IDEOGRAPH +0xBF49 0x7E04 #CJK UNIFIED IDEOGRAPH +0xBF4A 0x7E05 #CJK UNIFIED IDEOGRAPH +0xBF4B 0x7E06 #CJK UNIFIED IDEOGRAPH +0xBF4C 0x7E07 #CJK UNIFIED IDEOGRAPH +0xBF4D 0x7E08 #CJK UNIFIED IDEOGRAPH +0xBF4E 0x7E09 #CJK UNIFIED IDEOGRAPH +0xBF4F 0x7E0A #CJK UNIFIED IDEOGRAPH +0xBF50 0x7E0B #CJK UNIFIED IDEOGRAPH +0xBF51 0x7E0C #CJK UNIFIED IDEOGRAPH +0xBF52 0x7E0D #CJK UNIFIED IDEOGRAPH +0xBF53 0x7E0E #CJK UNIFIED IDEOGRAPH +0xBF54 0x7E0F #CJK UNIFIED IDEOGRAPH +0xBF55 0x7E10 #CJK UNIFIED IDEOGRAPH +0xBF56 0x7E11 #CJK UNIFIED IDEOGRAPH +0xBF57 0x7E12 #CJK UNIFIED IDEOGRAPH +0xBF58 0x7E13 #CJK UNIFIED IDEOGRAPH +0xBF59 0x7E14 #CJK UNIFIED IDEOGRAPH +0xBF5A 0x7E15 #CJK UNIFIED IDEOGRAPH +0xBF5B 0x7E16 #CJK UNIFIED IDEOGRAPH +0xBF5C 0x7E17 #CJK UNIFIED IDEOGRAPH +0xBF5D 0x7E18 #CJK UNIFIED IDEOGRAPH +0xBF5E 0x7E19 #CJK UNIFIED IDEOGRAPH +0xBF5F 0x7E1A #CJK UNIFIED IDEOGRAPH +0xBF60 0x7E1B #CJK UNIFIED IDEOGRAPH +0xBF61 0x7E1C #CJK UNIFIED IDEOGRAPH +0xBF62 0x7E1D #CJK UNIFIED IDEOGRAPH +0xBF63 0x7E1E #CJK UNIFIED IDEOGRAPH +0xBF64 0x7E1F #CJK UNIFIED IDEOGRAPH +0xBF65 0x7E20 #CJK UNIFIED IDEOGRAPH +0xBF66 0x7E21 #CJK UNIFIED IDEOGRAPH +0xBF67 0x7E22 #CJK UNIFIED IDEOGRAPH +0xBF68 0x7E23 #CJK UNIFIED IDEOGRAPH +0xBF69 0x7E24 #CJK UNIFIED IDEOGRAPH +0xBF6A 0x7E25 #CJK UNIFIED IDEOGRAPH +0xBF6B 0x7E26 #CJK UNIFIED IDEOGRAPH +0xBF6C 0x7E27 #CJK UNIFIED IDEOGRAPH +0xBF6D 0x7E28 #CJK UNIFIED IDEOGRAPH +0xBF6E 0x7E29 #CJK UNIFIED IDEOGRAPH +0xBF6F 0x7E2A #CJK UNIFIED IDEOGRAPH +0xBF70 0x7E2B #CJK UNIFIED IDEOGRAPH +0xBF71 0x7E2C #CJK UNIFIED IDEOGRAPH +0xBF72 0x7E2D #CJK UNIFIED IDEOGRAPH +0xBF73 0x7E2E #CJK UNIFIED IDEOGRAPH +0xBF74 0x7E2F #CJK UNIFIED IDEOGRAPH +0xBF75 0x7E30 #CJK UNIFIED IDEOGRAPH +0xBF76 0x7E31 #CJK UNIFIED IDEOGRAPH +0xBF77 0x7E32 #CJK UNIFIED IDEOGRAPH +0xBF78 0x7E33 #CJK UNIFIED IDEOGRAPH +0xBF79 0x7E34 #CJK UNIFIED IDEOGRAPH +0xBF7A 0x7E35 #CJK UNIFIED IDEOGRAPH +0xBF7B 0x7E36 #CJK UNIFIED IDEOGRAPH +0xBF7C 0x7E37 #CJK UNIFIED IDEOGRAPH +0xBF7D 0x7E38 #CJK UNIFIED IDEOGRAPH +0xBF7E 0x7E39 #CJK UNIFIED IDEOGRAPH +0xBF80 0x7E3A #CJK UNIFIED IDEOGRAPH +0xBF81 0x7E3C #CJK UNIFIED IDEOGRAPH +0xBF82 0x7E3D #CJK UNIFIED IDEOGRAPH +0xBF83 0x7E3E #CJK UNIFIED IDEOGRAPH +0xBF84 0x7E3F #CJK UNIFIED IDEOGRAPH +0xBF85 0x7E40 #CJK UNIFIED IDEOGRAPH +0xBF86 0x7E42 #CJK UNIFIED IDEOGRAPH +0xBF87 0x7E43 #CJK UNIFIED IDEOGRAPH +0xBF88 0x7E44 #CJK UNIFIED IDEOGRAPH +0xBF89 0x7E45 #CJK UNIFIED IDEOGRAPH +0xBF8A 0x7E46 #CJK UNIFIED IDEOGRAPH +0xBF8B 0x7E48 #CJK UNIFIED IDEOGRAPH +0xBF8C 0x7E49 #CJK UNIFIED IDEOGRAPH +0xBF8D 0x7E4A #CJK UNIFIED IDEOGRAPH +0xBF8E 0x7E4B #CJK UNIFIED IDEOGRAPH +0xBF8F 0x7E4C #CJK UNIFIED IDEOGRAPH +0xBF90 0x7E4D #CJK UNIFIED IDEOGRAPH +0xBF91 0x7E4E #CJK UNIFIED IDEOGRAPH +0xBF92 0x7E4F #CJK UNIFIED IDEOGRAPH +0xBF93 0x7E50 #CJK UNIFIED IDEOGRAPH +0xBF94 0x7E51 #CJK UNIFIED IDEOGRAPH +0xBF95 0x7E52 #CJK UNIFIED IDEOGRAPH +0xBF96 0x7E53 #CJK UNIFIED IDEOGRAPH +0xBF97 0x7E54 #CJK UNIFIED IDEOGRAPH +0xBF98 0x7E55 #CJK UNIFIED IDEOGRAPH +0xBF99 0x7E56 #CJK UNIFIED IDEOGRAPH +0xBF9A 0x7E57 #CJK UNIFIED IDEOGRAPH +0xBF9B 0x7E58 #CJK UNIFIED IDEOGRAPH +0xBF9C 0x7E59 #CJK UNIFIED IDEOGRAPH +0xBF9D 0x7E5A #CJK UNIFIED IDEOGRAPH +0xBF9E 0x7E5B #CJK UNIFIED IDEOGRAPH +0xBF9F 0x7E5C #CJK UNIFIED IDEOGRAPH +0xBFA0 0x7E5D #CJK UNIFIED IDEOGRAPH +0xBFA1 0x4FCA #CJK UNIFIED IDEOGRAPH +0xBFA2 0x7AE3 #CJK UNIFIED IDEOGRAPH +0xBFA3 0x6D5A #CJK UNIFIED IDEOGRAPH +0xBFA4 0x90E1 #CJK UNIFIED IDEOGRAPH +0xBFA5 0x9A8F #CJK UNIFIED IDEOGRAPH +0xBFA6 0x5580 #CJK UNIFIED IDEOGRAPH +0xBFA7 0x5496 #CJK UNIFIED IDEOGRAPH +0xBFA8 0x5361 #CJK UNIFIED IDEOGRAPH +0xBFA9 0x54AF #CJK UNIFIED IDEOGRAPH +0xBFAA 0x5F00 #CJK UNIFIED IDEOGRAPH +0xBFAB 0x63E9 #CJK UNIFIED IDEOGRAPH +0xBFAC 0x6977 #CJK UNIFIED IDEOGRAPH +0xBFAD 0x51EF #CJK UNIFIED IDEOGRAPH +0xBFAE 0x6168 #CJK UNIFIED IDEOGRAPH +0xBFAF 0x520A #CJK UNIFIED IDEOGRAPH +0xBFB0 0x582A #CJK UNIFIED IDEOGRAPH +0xBFB1 0x52D8 #CJK UNIFIED IDEOGRAPH +0xBFB2 0x574E #CJK UNIFIED IDEOGRAPH +0xBFB3 0x780D #CJK UNIFIED IDEOGRAPH +0xBFB4 0x770B #CJK UNIFIED IDEOGRAPH +0xBFB5 0x5EB7 #CJK UNIFIED IDEOGRAPH +0xBFB6 0x6177 #CJK UNIFIED IDEOGRAPH +0xBFB7 0x7CE0 #CJK UNIFIED IDEOGRAPH +0xBFB8 0x625B #CJK UNIFIED IDEOGRAPH +0xBFB9 0x6297 #CJK UNIFIED IDEOGRAPH +0xBFBA 0x4EA2 #CJK UNIFIED IDEOGRAPH +0xBFBB 0x7095 #CJK UNIFIED IDEOGRAPH +0xBFBC 0x8003 #CJK UNIFIED IDEOGRAPH +0xBFBD 0x62F7 #CJK UNIFIED IDEOGRAPH +0xBFBE 0x70E4 #CJK UNIFIED IDEOGRAPH +0xBFBF 0x9760 #CJK UNIFIED IDEOGRAPH +0xBFC0 0x5777 #CJK UNIFIED IDEOGRAPH +0xBFC1 0x82DB #CJK UNIFIED IDEOGRAPH +0xBFC2 0x67EF #CJK UNIFIED IDEOGRAPH +0xBFC3 0x68F5 #CJK UNIFIED IDEOGRAPH +0xBFC4 0x78D5 #CJK UNIFIED IDEOGRAPH +0xBFC5 0x9897 #CJK UNIFIED IDEOGRAPH +0xBFC6 0x79D1 #CJK UNIFIED IDEOGRAPH +0xBFC7 0x58F3 #CJK UNIFIED IDEOGRAPH +0xBFC8 0x54B3 #CJK UNIFIED IDEOGRAPH +0xBFC9 0x53EF #CJK UNIFIED IDEOGRAPH +0xBFCA 0x6E34 #CJK UNIFIED IDEOGRAPH +0xBFCB 0x514B #CJK UNIFIED IDEOGRAPH +0xBFCC 0x523B #CJK UNIFIED IDEOGRAPH +0xBFCD 0x5BA2 #CJK UNIFIED IDEOGRAPH +0xBFCE 0x8BFE #CJK UNIFIED IDEOGRAPH +0xBFCF 0x80AF #CJK UNIFIED IDEOGRAPH +0xBFD0 0x5543 #CJK UNIFIED IDEOGRAPH +0xBFD1 0x57A6 #CJK UNIFIED IDEOGRAPH +0xBFD2 0x6073 #CJK UNIFIED IDEOGRAPH +0xBFD3 0x5751 #CJK UNIFIED IDEOGRAPH +0xBFD4 0x542D #CJK UNIFIED IDEOGRAPH +0xBFD5 0x7A7A #CJK UNIFIED IDEOGRAPH +0xBFD6 0x6050 #CJK UNIFIED IDEOGRAPH +0xBFD7 0x5B54 #CJK UNIFIED IDEOGRAPH +0xBFD8 0x63A7 #CJK UNIFIED IDEOGRAPH +0xBFD9 0x62A0 #CJK UNIFIED IDEOGRAPH +0xBFDA 0x53E3 #CJK UNIFIED IDEOGRAPH +0xBFDB 0x6263 #CJK UNIFIED IDEOGRAPH +0xBFDC 0x5BC7 #CJK UNIFIED IDEOGRAPH +0xBFDD 0x67AF #CJK UNIFIED IDEOGRAPH +0xBFDE 0x54ED #CJK UNIFIED IDEOGRAPH +0xBFDF 0x7A9F #CJK UNIFIED IDEOGRAPH +0xBFE0 0x82E6 #CJK UNIFIED IDEOGRAPH +0xBFE1 0x9177 #CJK UNIFIED IDEOGRAPH +0xBFE2 0x5E93 #CJK UNIFIED IDEOGRAPH +0xBFE3 0x88E4 #CJK UNIFIED IDEOGRAPH +0xBFE4 0x5938 #CJK UNIFIED IDEOGRAPH +0xBFE5 0x57AE #CJK UNIFIED IDEOGRAPH +0xBFE6 0x630E #CJK UNIFIED IDEOGRAPH +0xBFE7 0x8DE8 #CJK UNIFIED IDEOGRAPH +0xBFE8 0x80EF #CJK UNIFIED IDEOGRAPH +0xBFE9 0x5757 #CJK UNIFIED IDEOGRAPH +0xBFEA 0x7B77 #CJK UNIFIED IDEOGRAPH +0xBFEB 0x4FA9 #CJK UNIFIED IDEOGRAPH +0xBFEC 0x5FEB #CJK UNIFIED IDEOGRAPH +0xBFED 0x5BBD #CJK UNIFIED IDEOGRAPH +0xBFEE 0x6B3E #CJK UNIFIED IDEOGRAPH +0xBFEF 0x5321 #CJK UNIFIED IDEOGRAPH +0xBFF0 0x7B50 #CJK UNIFIED IDEOGRAPH +0xBFF1 0x72C2 #CJK UNIFIED IDEOGRAPH +0xBFF2 0x6846 #CJK UNIFIED IDEOGRAPH +0xBFF3 0x77FF #CJK UNIFIED IDEOGRAPH +0xBFF4 0x7736 #CJK UNIFIED IDEOGRAPH +0xBFF5 0x65F7 #CJK UNIFIED IDEOGRAPH +0xBFF6 0x51B5 #CJK UNIFIED IDEOGRAPH +0xBFF7 0x4E8F #CJK UNIFIED IDEOGRAPH +0xBFF8 0x76D4 #CJK UNIFIED IDEOGRAPH +0xBFF9 0x5CBF #CJK UNIFIED IDEOGRAPH +0xBFFA 0x7AA5 #CJK UNIFIED IDEOGRAPH +0xBFFB 0x8475 #CJK UNIFIED IDEOGRAPH +0xBFFC 0x594E #CJK UNIFIED IDEOGRAPH +0xBFFD 0x9B41 #CJK UNIFIED IDEOGRAPH +0xBFFE 0x5080 #CJK UNIFIED IDEOGRAPH +0xC040 0x7E5E #CJK UNIFIED IDEOGRAPH +0xC041 0x7E5F #CJK UNIFIED IDEOGRAPH +0xC042 0x7E60 #CJK UNIFIED IDEOGRAPH +0xC043 0x7E61 #CJK UNIFIED IDEOGRAPH +0xC044 0x7E62 #CJK UNIFIED IDEOGRAPH +0xC045 0x7E63 #CJK UNIFIED IDEOGRAPH +0xC046 0x7E64 #CJK UNIFIED IDEOGRAPH +0xC047 0x7E65 #CJK UNIFIED IDEOGRAPH +0xC048 0x7E66 #CJK UNIFIED IDEOGRAPH +0xC049 0x7E67 #CJK UNIFIED IDEOGRAPH +0xC04A 0x7E68 #CJK UNIFIED IDEOGRAPH +0xC04B 0x7E69 #CJK UNIFIED IDEOGRAPH +0xC04C 0x7E6A #CJK UNIFIED IDEOGRAPH +0xC04D 0x7E6B #CJK UNIFIED IDEOGRAPH +0xC04E 0x7E6C #CJK UNIFIED IDEOGRAPH +0xC04F 0x7E6D #CJK UNIFIED IDEOGRAPH +0xC050 0x7E6E #CJK UNIFIED IDEOGRAPH +0xC051 0x7E6F #CJK UNIFIED IDEOGRAPH +0xC052 0x7E70 #CJK UNIFIED IDEOGRAPH +0xC053 0x7E71 #CJK UNIFIED IDEOGRAPH +0xC054 0x7E72 #CJK UNIFIED IDEOGRAPH +0xC055 0x7E73 #CJK UNIFIED IDEOGRAPH +0xC056 0x7E74 #CJK UNIFIED IDEOGRAPH +0xC057 0x7E75 #CJK UNIFIED IDEOGRAPH +0xC058 0x7E76 #CJK UNIFIED IDEOGRAPH +0xC059 0x7E77 #CJK UNIFIED IDEOGRAPH +0xC05A 0x7E78 #CJK UNIFIED IDEOGRAPH +0xC05B 0x7E79 #CJK UNIFIED IDEOGRAPH +0xC05C 0x7E7A #CJK UNIFIED IDEOGRAPH +0xC05D 0x7E7B #CJK UNIFIED IDEOGRAPH +0xC05E 0x7E7C #CJK UNIFIED IDEOGRAPH +0xC05F 0x7E7D #CJK UNIFIED IDEOGRAPH +0xC060 0x7E7E #CJK UNIFIED IDEOGRAPH +0xC061 0x7E7F #CJK UNIFIED IDEOGRAPH +0xC062 0x7E80 #CJK UNIFIED IDEOGRAPH +0xC063 0x7E81 #CJK UNIFIED IDEOGRAPH +0xC064 0x7E83 #CJK UNIFIED IDEOGRAPH +0xC065 0x7E84 #CJK UNIFIED IDEOGRAPH +0xC066 0x7E85 #CJK UNIFIED IDEOGRAPH +0xC067 0x7E86 #CJK UNIFIED IDEOGRAPH +0xC068 0x7E87 #CJK UNIFIED IDEOGRAPH +0xC069 0x7E88 #CJK UNIFIED IDEOGRAPH +0xC06A 0x7E89 #CJK UNIFIED IDEOGRAPH +0xC06B 0x7E8A #CJK UNIFIED IDEOGRAPH +0xC06C 0x7E8B #CJK UNIFIED IDEOGRAPH +0xC06D 0x7E8C #CJK UNIFIED IDEOGRAPH +0xC06E 0x7E8D #CJK UNIFIED IDEOGRAPH +0xC06F 0x7E8E #CJK UNIFIED IDEOGRAPH +0xC070 0x7E8F #CJK UNIFIED IDEOGRAPH +0xC071 0x7E90 #CJK UNIFIED IDEOGRAPH +0xC072 0x7E91 #CJK UNIFIED IDEOGRAPH +0xC073 0x7E92 #CJK UNIFIED IDEOGRAPH +0xC074 0x7E93 #CJK UNIFIED IDEOGRAPH +0xC075 0x7E94 #CJK UNIFIED IDEOGRAPH +0xC076 0x7E95 #CJK UNIFIED IDEOGRAPH +0xC077 0x7E96 #CJK UNIFIED IDEOGRAPH +0xC078 0x7E97 #CJK UNIFIED IDEOGRAPH +0xC079 0x7E98 #CJK UNIFIED IDEOGRAPH +0xC07A 0x7E99 #CJK UNIFIED IDEOGRAPH +0xC07B 0x7E9A #CJK UNIFIED IDEOGRAPH +0xC07C 0x7E9C #CJK UNIFIED IDEOGRAPH +0xC07D 0x7E9D #CJK UNIFIED IDEOGRAPH +0xC07E 0x7E9E #CJK UNIFIED IDEOGRAPH +0xC080 0x7EAE #CJK UNIFIED IDEOGRAPH +0xC081 0x7EB4 #CJK UNIFIED IDEOGRAPH +0xC082 0x7EBB #CJK UNIFIED IDEOGRAPH +0xC083 0x7EBC #CJK UNIFIED IDEOGRAPH +0xC084 0x7ED6 #CJK UNIFIED IDEOGRAPH +0xC085 0x7EE4 #CJK UNIFIED IDEOGRAPH +0xC086 0x7EEC #CJK UNIFIED IDEOGRAPH +0xC087 0x7EF9 #CJK UNIFIED IDEOGRAPH +0xC088 0x7F0A #CJK UNIFIED IDEOGRAPH +0xC089 0x7F10 #CJK UNIFIED IDEOGRAPH +0xC08A 0x7F1E #CJK UNIFIED IDEOGRAPH +0xC08B 0x7F37 #CJK UNIFIED IDEOGRAPH +0xC08C 0x7F39 #CJK UNIFIED IDEOGRAPH +0xC08D 0x7F3B #CJK UNIFIED IDEOGRAPH +0xC08E 0x7F3C #CJK UNIFIED IDEOGRAPH +0xC08F 0x7F3D #CJK UNIFIED IDEOGRAPH +0xC090 0x7F3E #CJK UNIFIED IDEOGRAPH +0xC091 0x7F3F #CJK UNIFIED IDEOGRAPH +0xC092 0x7F40 #CJK UNIFIED IDEOGRAPH +0xC093 0x7F41 #CJK UNIFIED IDEOGRAPH +0xC094 0x7F43 #CJK UNIFIED IDEOGRAPH +0xC095 0x7F46 #CJK UNIFIED IDEOGRAPH +0xC096 0x7F47 #CJK UNIFIED IDEOGRAPH +0xC097 0x7F48 #CJK UNIFIED IDEOGRAPH +0xC098 0x7F49 #CJK UNIFIED IDEOGRAPH +0xC099 0x7F4A #CJK UNIFIED IDEOGRAPH +0xC09A 0x7F4B #CJK UNIFIED IDEOGRAPH +0xC09B 0x7F4C #CJK UNIFIED IDEOGRAPH +0xC09C 0x7F4D #CJK UNIFIED IDEOGRAPH +0xC09D 0x7F4E #CJK UNIFIED IDEOGRAPH +0xC09E 0x7F4F #CJK UNIFIED IDEOGRAPH +0xC09F 0x7F52 #CJK UNIFIED IDEOGRAPH +0xC0A0 0x7F53 #CJK UNIFIED IDEOGRAPH +0xC0A1 0x9988 #CJK UNIFIED IDEOGRAPH +0xC0A2 0x6127 #CJK UNIFIED IDEOGRAPH +0xC0A3 0x6E83 #CJK UNIFIED IDEOGRAPH +0xC0A4 0x5764 #CJK UNIFIED IDEOGRAPH +0xC0A5 0x6606 #CJK UNIFIED IDEOGRAPH +0xC0A6 0x6346 #CJK UNIFIED IDEOGRAPH +0xC0A7 0x56F0 #CJK UNIFIED IDEOGRAPH +0xC0A8 0x62EC #CJK UNIFIED IDEOGRAPH +0xC0A9 0x6269 #CJK UNIFIED IDEOGRAPH +0xC0AA 0x5ED3 #CJK UNIFIED IDEOGRAPH +0xC0AB 0x9614 #CJK UNIFIED IDEOGRAPH +0xC0AC 0x5783 #CJK UNIFIED IDEOGRAPH +0xC0AD 0x62C9 #CJK UNIFIED IDEOGRAPH +0xC0AE 0x5587 #CJK UNIFIED IDEOGRAPH +0xC0AF 0x8721 #CJK UNIFIED IDEOGRAPH +0xC0B0 0x814A #CJK UNIFIED IDEOGRAPH +0xC0B1 0x8FA3 #CJK UNIFIED IDEOGRAPH +0xC0B2 0x5566 #CJK UNIFIED IDEOGRAPH +0xC0B3 0x83B1 #CJK UNIFIED IDEOGRAPH +0xC0B4 0x6765 #CJK UNIFIED IDEOGRAPH +0xC0B5 0x8D56 #CJK UNIFIED IDEOGRAPH +0xC0B6 0x84DD #CJK UNIFIED IDEOGRAPH +0xC0B7 0x5A6A #CJK UNIFIED IDEOGRAPH +0xC0B8 0x680F #CJK UNIFIED IDEOGRAPH +0xC0B9 0x62E6 #CJK UNIFIED IDEOGRAPH +0xC0BA 0x7BEE #CJK UNIFIED IDEOGRAPH +0xC0BB 0x9611 #CJK UNIFIED IDEOGRAPH +0xC0BC 0x5170 #CJK UNIFIED IDEOGRAPH +0xC0BD 0x6F9C #CJK UNIFIED IDEOGRAPH +0xC0BE 0x8C30 #CJK UNIFIED IDEOGRAPH +0xC0BF 0x63FD #CJK UNIFIED IDEOGRAPH +0xC0C0 0x89C8 #CJK UNIFIED IDEOGRAPH +0xC0C1 0x61D2 #CJK UNIFIED IDEOGRAPH +0xC0C2 0x7F06 #CJK UNIFIED IDEOGRAPH +0xC0C3 0x70C2 #CJK UNIFIED IDEOGRAPH +0xC0C4 0x6EE5 #CJK UNIFIED IDEOGRAPH +0xC0C5 0x7405 #CJK UNIFIED IDEOGRAPH +0xC0C6 0x6994 #CJK UNIFIED IDEOGRAPH +0xC0C7 0x72FC #CJK UNIFIED IDEOGRAPH +0xC0C8 0x5ECA #CJK UNIFIED IDEOGRAPH +0xC0C9 0x90CE #CJK UNIFIED IDEOGRAPH +0xC0CA 0x6717 #CJK UNIFIED IDEOGRAPH +0xC0CB 0x6D6A #CJK UNIFIED IDEOGRAPH +0xC0CC 0x635E #CJK UNIFIED IDEOGRAPH +0xC0CD 0x52B3 #CJK UNIFIED IDEOGRAPH +0xC0CE 0x7262 #CJK UNIFIED IDEOGRAPH +0xC0CF 0x8001 #CJK UNIFIED IDEOGRAPH +0xC0D0 0x4F6C #CJK UNIFIED IDEOGRAPH +0xC0D1 0x59E5 #CJK UNIFIED IDEOGRAPH +0xC0D2 0x916A #CJK UNIFIED IDEOGRAPH +0xC0D3 0x70D9 #CJK UNIFIED IDEOGRAPH +0xC0D4 0x6D9D #CJK UNIFIED IDEOGRAPH +0xC0D5 0x52D2 #CJK UNIFIED IDEOGRAPH +0xC0D6 0x4E50 #CJK UNIFIED IDEOGRAPH +0xC0D7 0x96F7 #CJK UNIFIED IDEOGRAPH +0xC0D8 0x956D #CJK UNIFIED IDEOGRAPH +0xC0D9 0x857E #CJK UNIFIED IDEOGRAPH +0xC0DA 0x78CA #CJK UNIFIED IDEOGRAPH +0xC0DB 0x7D2F #CJK UNIFIED IDEOGRAPH +0xC0DC 0x5121 #CJK UNIFIED IDEOGRAPH +0xC0DD 0x5792 #CJK UNIFIED IDEOGRAPH +0xC0DE 0x64C2 #CJK UNIFIED IDEOGRAPH +0xC0DF 0x808B #CJK UNIFIED IDEOGRAPH +0xC0E0 0x7C7B #CJK UNIFIED IDEOGRAPH +0xC0E1 0x6CEA #CJK UNIFIED IDEOGRAPH +0xC0E2 0x68F1 #CJK UNIFIED IDEOGRAPH +0xC0E3 0x695E #CJK UNIFIED IDEOGRAPH +0xC0E4 0x51B7 #CJK UNIFIED IDEOGRAPH +0xC0E5 0x5398 #CJK UNIFIED IDEOGRAPH +0xC0E6 0x68A8 #CJK UNIFIED IDEOGRAPH +0xC0E7 0x7281 #CJK UNIFIED IDEOGRAPH +0xC0E8 0x9ECE #CJK UNIFIED IDEOGRAPH +0xC0E9 0x7BF1 #CJK UNIFIED IDEOGRAPH +0xC0EA 0x72F8 #CJK UNIFIED IDEOGRAPH +0xC0EB 0x79BB #CJK UNIFIED IDEOGRAPH +0xC0EC 0x6F13 #CJK UNIFIED IDEOGRAPH +0xC0ED 0x7406 #CJK UNIFIED IDEOGRAPH +0xC0EE 0x674E #CJK UNIFIED IDEOGRAPH +0xC0EF 0x91CC #CJK UNIFIED IDEOGRAPH +0xC0F0 0x9CA4 #CJK UNIFIED IDEOGRAPH +0xC0F1 0x793C #CJK UNIFIED IDEOGRAPH +0xC0F2 0x8389 #CJK UNIFIED IDEOGRAPH +0xC0F3 0x8354 #CJK UNIFIED IDEOGRAPH +0xC0F4 0x540F #CJK UNIFIED IDEOGRAPH +0xC0F5 0x6817 #CJK UNIFIED IDEOGRAPH +0xC0F6 0x4E3D #CJK UNIFIED IDEOGRAPH +0xC0F7 0x5389 #CJK UNIFIED IDEOGRAPH +0xC0F8 0x52B1 #CJK UNIFIED IDEOGRAPH +0xC0F9 0x783E #CJK UNIFIED IDEOGRAPH +0xC0FA 0x5386 #CJK UNIFIED IDEOGRAPH +0xC0FB 0x5229 #CJK UNIFIED IDEOGRAPH +0xC0FC 0x5088 #CJK UNIFIED IDEOGRAPH +0xC0FD 0x4F8B #CJK UNIFIED IDEOGRAPH +0xC0FE 0x4FD0 #CJK UNIFIED IDEOGRAPH +0xC140 0x7F56 #CJK UNIFIED IDEOGRAPH +0xC141 0x7F59 #CJK UNIFIED IDEOGRAPH +0xC142 0x7F5B #CJK UNIFIED IDEOGRAPH +0xC143 0x7F5C #CJK UNIFIED IDEOGRAPH +0xC144 0x7F5D #CJK UNIFIED IDEOGRAPH +0xC145 0x7F5E #CJK UNIFIED IDEOGRAPH +0xC146 0x7F60 #CJK UNIFIED IDEOGRAPH +0xC147 0x7F63 #CJK UNIFIED IDEOGRAPH +0xC148 0x7F64 #CJK UNIFIED IDEOGRAPH +0xC149 0x7F65 #CJK UNIFIED IDEOGRAPH +0xC14A 0x7F66 #CJK UNIFIED IDEOGRAPH +0xC14B 0x7F67 #CJK UNIFIED IDEOGRAPH +0xC14C 0x7F6B #CJK UNIFIED IDEOGRAPH +0xC14D 0x7F6C #CJK UNIFIED IDEOGRAPH +0xC14E 0x7F6D #CJK UNIFIED IDEOGRAPH +0xC14F 0x7F6F #CJK UNIFIED IDEOGRAPH +0xC150 0x7F70 #CJK UNIFIED IDEOGRAPH +0xC151 0x7F73 #CJK UNIFIED IDEOGRAPH +0xC152 0x7F75 #CJK UNIFIED IDEOGRAPH +0xC153 0x7F76 #CJK UNIFIED IDEOGRAPH +0xC154 0x7F77 #CJK UNIFIED IDEOGRAPH +0xC155 0x7F78 #CJK UNIFIED IDEOGRAPH +0xC156 0x7F7A #CJK UNIFIED IDEOGRAPH +0xC157 0x7F7B #CJK UNIFIED IDEOGRAPH +0xC158 0x7F7C #CJK UNIFIED IDEOGRAPH +0xC159 0x7F7D #CJK UNIFIED IDEOGRAPH +0xC15A 0x7F7F #CJK UNIFIED IDEOGRAPH +0xC15B 0x7F80 #CJK UNIFIED IDEOGRAPH +0xC15C 0x7F82 #CJK UNIFIED IDEOGRAPH +0xC15D 0x7F83 #CJK UNIFIED IDEOGRAPH +0xC15E 0x7F84 #CJK UNIFIED IDEOGRAPH +0xC15F 0x7F85 #CJK UNIFIED IDEOGRAPH +0xC160 0x7F86 #CJK UNIFIED IDEOGRAPH +0xC161 0x7F87 #CJK UNIFIED IDEOGRAPH +0xC162 0x7F88 #CJK UNIFIED IDEOGRAPH +0xC163 0x7F89 #CJK UNIFIED IDEOGRAPH +0xC164 0x7F8B #CJK UNIFIED IDEOGRAPH +0xC165 0x7F8D #CJK UNIFIED IDEOGRAPH +0xC166 0x7F8F #CJK UNIFIED IDEOGRAPH +0xC167 0x7F90 #CJK UNIFIED IDEOGRAPH +0xC168 0x7F91 #CJK UNIFIED IDEOGRAPH +0xC169 0x7F92 #CJK UNIFIED IDEOGRAPH +0xC16A 0x7F93 #CJK UNIFIED IDEOGRAPH +0xC16B 0x7F95 #CJK UNIFIED IDEOGRAPH +0xC16C 0x7F96 #CJK UNIFIED IDEOGRAPH +0xC16D 0x7F97 #CJK UNIFIED IDEOGRAPH +0xC16E 0x7F98 #CJK UNIFIED IDEOGRAPH +0xC16F 0x7F99 #CJK UNIFIED IDEOGRAPH +0xC170 0x7F9B #CJK UNIFIED IDEOGRAPH +0xC171 0x7F9C #CJK UNIFIED IDEOGRAPH +0xC172 0x7FA0 #CJK UNIFIED IDEOGRAPH +0xC173 0x7FA2 #CJK UNIFIED IDEOGRAPH +0xC174 0x7FA3 #CJK UNIFIED IDEOGRAPH +0xC175 0x7FA5 #CJK UNIFIED IDEOGRAPH +0xC176 0x7FA6 #CJK UNIFIED IDEOGRAPH +0xC177 0x7FA8 #CJK UNIFIED IDEOGRAPH +0xC178 0x7FA9 #CJK UNIFIED IDEOGRAPH +0xC179 0x7FAA #CJK UNIFIED IDEOGRAPH +0xC17A 0x7FAB #CJK UNIFIED IDEOGRAPH +0xC17B 0x7FAC #CJK UNIFIED IDEOGRAPH +0xC17C 0x7FAD #CJK UNIFIED IDEOGRAPH +0xC17D 0x7FAE #CJK UNIFIED IDEOGRAPH +0xC17E 0x7FB1 #CJK UNIFIED IDEOGRAPH +0xC180 0x7FB3 #CJK UNIFIED IDEOGRAPH +0xC181 0x7FB4 #CJK UNIFIED IDEOGRAPH +0xC182 0x7FB5 #CJK UNIFIED IDEOGRAPH +0xC183 0x7FB6 #CJK UNIFIED IDEOGRAPH +0xC184 0x7FB7 #CJK UNIFIED IDEOGRAPH +0xC185 0x7FBA #CJK UNIFIED IDEOGRAPH +0xC186 0x7FBB #CJK UNIFIED IDEOGRAPH +0xC187 0x7FBE #CJK UNIFIED IDEOGRAPH +0xC188 0x7FC0 #CJK UNIFIED IDEOGRAPH +0xC189 0x7FC2 #CJK UNIFIED IDEOGRAPH +0xC18A 0x7FC3 #CJK UNIFIED IDEOGRAPH +0xC18B 0x7FC4 #CJK UNIFIED IDEOGRAPH +0xC18C 0x7FC6 #CJK UNIFIED IDEOGRAPH +0xC18D 0x7FC7 #CJK UNIFIED IDEOGRAPH +0xC18E 0x7FC8 #CJK UNIFIED IDEOGRAPH +0xC18F 0x7FC9 #CJK UNIFIED IDEOGRAPH +0xC190 0x7FCB #CJK UNIFIED IDEOGRAPH +0xC191 0x7FCD #CJK UNIFIED IDEOGRAPH +0xC192 0x7FCF #CJK UNIFIED IDEOGRAPH +0xC193 0x7FD0 #CJK UNIFIED IDEOGRAPH +0xC194 0x7FD1 #CJK UNIFIED IDEOGRAPH +0xC195 0x7FD2 #CJK UNIFIED IDEOGRAPH +0xC196 0x7FD3 #CJK UNIFIED IDEOGRAPH +0xC197 0x7FD6 #CJK UNIFIED IDEOGRAPH +0xC198 0x7FD7 #CJK UNIFIED IDEOGRAPH +0xC199 0x7FD9 #CJK UNIFIED IDEOGRAPH +0xC19A 0x7FDA #CJK UNIFIED IDEOGRAPH +0xC19B 0x7FDB #CJK UNIFIED IDEOGRAPH +0xC19C 0x7FDC #CJK UNIFIED IDEOGRAPH +0xC19D 0x7FDD #CJK UNIFIED IDEOGRAPH +0xC19E 0x7FDE #CJK UNIFIED IDEOGRAPH +0xC19F 0x7FE2 #CJK UNIFIED IDEOGRAPH +0xC1A0 0x7FE3 #CJK UNIFIED IDEOGRAPH +0xC1A1 0x75E2 #CJK UNIFIED IDEOGRAPH +0xC1A2 0x7ACB #CJK UNIFIED IDEOGRAPH +0xC1A3 0x7C92 #CJK UNIFIED IDEOGRAPH +0xC1A4 0x6CA5 #CJK UNIFIED IDEOGRAPH +0xC1A5 0x96B6 #CJK UNIFIED IDEOGRAPH +0xC1A6 0x529B #CJK UNIFIED IDEOGRAPH +0xC1A7 0x7483 #CJK UNIFIED IDEOGRAPH +0xC1A8 0x54E9 #CJK UNIFIED IDEOGRAPH +0xC1A9 0x4FE9 #CJK UNIFIED IDEOGRAPH +0xC1AA 0x8054 #CJK UNIFIED IDEOGRAPH +0xC1AB 0x83B2 #CJK UNIFIED IDEOGRAPH +0xC1AC 0x8FDE #CJK UNIFIED IDEOGRAPH +0xC1AD 0x9570 #CJK UNIFIED IDEOGRAPH +0xC1AE 0x5EC9 #CJK UNIFIED IDEOGRAPH +0xC1AF 0x601C #CJK UNIFIED IDEOGRAPH +0xC1B0 0x6D9F #CJK UNIFIED IDEOGRAPH +0xC1B1 0x5E18 #CJK UNIFIED IDEOGRAPH +0xC1B2 0x655B #CJK UNIFIED IDEOGRAPH +0xC1B3 0x8138 #CJK UNIFIED IDEOGRAPH +0xC1B4 0x94FE #CJK UNIFIED IDEOGRAPH +0xC1B5 0x604B #CJK UNIFIED IDEOGRAPH +0xC1B6 0x70BC #CJK UNIFIED IDEOGRAPH +0xC1B7 0x7EC3 #CJK UNIFIED IDEOGRAPH +0xC1B8 0x7CAE #CJK UNIFIED IDEOGRAPH +0xC1B9 0x51C9 #CJK UNIFIED IDEOGRAPH +0xC1BA 0x6881 #CJK UNIFIED IDEOGRAPH +0xC1BB 0x7CB1 #CJK UNIFIED IDEOGRAPH +0xC1BC 0x826F #CJK UNIFIED IDEOGRAPH +0xC1BD 0x4E24 #CJK UNIFIED IDEOGRAPH +0xC1BE 0x8F86 #CJK UNIFIED IDEOGRAPH +0xC1BF 0x91CF #CJK UNIFIED IDEOGRAPH +0xC1C0 0x667E #CJK UNIFIED IDEOGRAPH +0xC1C1 0x4EAE #CJK UNIFIED IDEOGRAPH +0xC1C2 0x8C05 #CJK UNIFIED IDEOGRAPH +0xC1C3 0x64A9 #CJK UNIFIED IDEOGRAPH +0xC1C4 0x804A #CJK UNIFIED IDEOGRAPH +0xC1C5 0x50DA #CJK UNIFIED IDEOGRAPH +0xC1C6 0x7597 #CJK UNIFIED IDEOGRAPH +0xC1C7 0x71CE #CJK UNIFIED IDEOGRAPH +0xC1C8 0x5BE5 #CJK UNIFIED IDEOGRAPH +0xC1C9 0x8FBD #CJK UNIFIED IDEOGRAPH +0xC1CA 0x6F66 #CJK UNIFIED IDEOGRAPH +0xC1CB 0x4E86 #CJK UNIFIED IDEOGRAPH +0xC1CC 0x6482 #CJK UNIFIED IDEOGRAPH +0xC1CD 0x9563 #CJK UNIFIED IDEOGRAPH +0xC1CE 0x5ED6 #CJK UNIFIED IDEOGRAPH +0xC1CF 0x6599 #CJK UNIFIED IDEOGRAPH +0xC1D0 0x5217 #CJK UNIFIED IDEOGRAPH +0xC1D1 0x88C2 #CJK UNIFIED IDEOGRAPH +0xC1D2 0x70C8 #CJK UNIFIED IDEOGRAPH +0xC1D3 0x52A3 #CJK UNIFIED IDEOGRAPH +0xC1D4 0x730E #CJK UNIFIED IDEOGRAPH +0xC1D5 0x7433 #CJK UNIFIED IDEOGRAPH +0xC1D6 0x6797 #CJK UNIFIED IDEOGRAPH +0xC1D7 0x78F7 #CJK UNIFIED IDEOGRAPH +0xC1D8 0x9716 #CJK UNIFIED IDEOGRAPH +0xC1D9 0x4E34 #CJK UNIFIED IDEOGRAPH +0xC1DA 0x90BB #CJK UNIFIED IDEOGRAPH +0xC1DB 0x9CDE #CJK UNIFIED IDEOGRAPH +0xC1DC 0x6DCB #CJK UNIFIED IDEOGRAPH +0xC1DD 0x51DB #CJK UNIFIED IDEOGRAPH +0xC1DE 0x8D41 #CJK UNIFIED IDEOGRAPH +0xC1DF 0x541D #CJK UNIFIED IDEOGRAPH +0xC1E0 0x62CE #CJK UNIFIED IDEOGRAPH +0xC1E1 0x73B2 #CJK UNIFIED IDEOGRAPH +0xC1E2 0x83F1 #CJK UNIFIED IDEOGRAPH +0xC1E3 0x96F6 #CJK UNIFIED IDEOGRAPH +0xC1E4 0x9F84 #CJK UNIFIED IDEOGRAPH +0xC1E5 0x94C3 #CJK UNIFIED IDEOGRAPH +0xC1E6 0x4F36 #CJK UNIFIED IDEOGRAPH +0xC1E7 0x7F9A #CJK UNIFIED IDEOGRAPH +0xC1E8 0x51CC #CJK UNIFIED IDEOGRAPH +0xC1E9 0x7075 #CJK UNIFIED IDEOGRAPH +0xC1EA 0x9675 #CJK UNIFIED IDEOGRAPH +0xC1EB 0x5CAD #CJK UNIFIED IDEOGRAPH +0xC1EC 0x9886 #CJK UNIFIED IDEOGRAPH +0xC1ED 0x53E6 #CJK UNIFIED IDEOGRAPH +0xC1EE 0x4EE4 #CJK UNIFIED IDEOGRAPH +0xC1EF 0x6E9C #CJK UNIFIED IDEOGRAPH +0xC1F0 0x7409 #CJK UNIFIED IDEOGRAPH +0xC1F1 0x69B4 #CJK UNIFIED IDEOGRAPH +0xC1F2 0x786B #CJK UNIFIED IDEOGRAPH +0xC1F3 0x998F #CJK UNIFIED IDEOGRAPH +0xC1F4 0x7559 #CJK UNIFIED IDEOGRAPH +0xC1F5 0x5218 #CJK UNIFIED IDEOGRAPH +0xC1F6 0x7624 #CJK UNIFIED IDEOGRAPH +0xC1F7 0x6D41 #CJK UNIFIED IDEOGRAPH +0xC1F8 0x67F3 #CJK UNIFIED IDEOGRAPH +0xC1F9 0x516D #CJK UNIFIED IDEOGRAPH +0xC1FA 0x9F99 #CJK UNIFIED IDEOGRAPH +0xC1FB 0x804B #CJK UNIFIED IDEOGRAPH +0xC1FC 0x5499 #CJK UNIFIED IDEOGRAPH +0xC1FD 0x7B3C #CJK UNIFIED IDEOGRAPH +0xC1FE 0x7ABF #CJK UNIFIED IDEOGRAPH +0xC240 0x7FE4 #CJK UNIFIED IDEOGRAPH +0xC241 0x7FE7 #CJK UNIFIED IDEOGRAPH +0xC242 0x7FE8 #CJK UNIFIED IDEOGRAPH +0xC243 0x7FEA #CJK UNIFIED IDEOGRAPH +0xC244 0x7FEB #CJK UNIFIED IDEOGRAPH +0xC245 0x7FEC #CJK UNIFIED IDEOGRAPH +0xC246 0x7FED #CJK UNIFIED IDEOGRAPH +0xC247 0x7FEF #CJK UNIFIED IDEOGRAPH +0xC248 0x7FF2 #CJK UNIFIED IDEOGRAPH +0xC249 0x7FF4 #CJK UNIFIED IDEOGRAPH +0xC24A 0x7FF5 #CJK UNIFIED IDEOGRAPH +0xC24B 0x7FF6 #CJK UNIFIED IDEOGRAPH +0xC24C 0x7FF7 #CJK UNIFIED IDEOGRAPH +0xC24D 0x7FF8 #CJK UNIFIED IDEOGRAPH +0xC24E 0x7FF9 #CJK UNIFIED IDEOGRAPH +0xC24F 0x7FFA #CJK UNIFIED IDEOGRAPH +0xC250 0x7FFD #CJK UNIFIED IDEOGRAPH +0xC251 0x7FFE #CJK UNIFIED IDEOGRAPH +0xC252 0x7FFF #CJK UNIFIED IDEOGRAPH +0xC253 0x8002 #CJK UNIFIED IDEOGRAPH +0xC254 0x8007 #CJK UNIFIED IDEOGRAPH +0xC255 0x8008 #CJK UNIFIED IDEOGRAPH +0xC256 0x8009 #CJK UNIFIED IDEOGRAPH +0xC257 0x800A #CJK UNIFIED IDEOGRAPH +0xC258 0x800E #CJK UNIFIED IDEOGRAPH +0xC259 0x800F #CJK UNIFIED IDEOGRAPH +0xC25A 0x8011 #CJK UNIFIED IDEOGRAPH +0xC25B 0x8013 #CJK UNIFIED IDEOGRAPH +0xC25C 0x801A #CJK UNIFIED IDEOGRAPH +0xC25D 0x801B #CJK UNIFIED IDEOGRAPH +0xC25E 0x801D #CJK UNIFIED IDEOGRAPH +0xC25F 0x801E #CJK UNIFIED IDEOGRAPH +0xC260 0x801F #CJK UNIFIED IDEOGRAPH +0xC261 0x8021 #CJK UNIFIED IDEOGRAPH +0xC262 0x8023 #CJK UNIFIED IDEOGRAPH +0xC263 0x8024 #CJK UNIFIED IDEOGRAPH +0xC264 0x802B #CJK UNIFIED IDEOGRAPH +0xC265 0x802C #CJK UNIFIED IDEOGRAPH +0xC266 0x802D #CJK UNIFIED IDEOGRAPH +0xC267 0x802E #CJK UNIFIED IDEOGRAPH +0xC268 0x802F #CJK UNIFIED IDEOGRAPH +0xC269 0x8030 #CJK UNIFIED IDEOGRAPH +0xC26A 0x8032 #CJK UNIFIED IDEOGRAPH +0xC26B 0x8034 #CJK UNIFIED IDEOGRAPH +0xC26C 0x8039 #CJK UNIFIED IDEOGRAPH +0xC26D 0x803A #CJK UNIFIED IDEOGRAPH +0xC26E 0x803C #CJK UNIFIED IDEOGRAPH +0xC26F 0x803E #CJK UNIFIED IDEOGRAPH +0xC270 0x8040 #CJK UNIFIED IDEOGRAPH +0xC271 0x8041 #CJK UNIFIED IDEOGRAPH +0xC272 0x8044 #CJK UNIFIED IDEOGRAPH +0xC273 0x8045 #CJK UNIFIED IDEOGRAPH +0xC274 0x8047 #CJK UNIFIED IDEOGRAPH +0xC275 0x8048 #CJK UNIFIED IDEOGRAPH +0xC276 0x8049 #CJK UNIFIED IDEOGRAPH +0xC277 0x804E #CJK UNIFIED IDEOGRAPH +0xC278 0x804F #CJK UNIFIED IDEOGRAPH +0xC279 0x8050 #CJK UNIFIED IDEOGRAPH +0xC27A 0x8051 #CJK UNIFIED IDEOGRAPH +0xC27B 0x8053 #CJK UNIFIED IDEOGRAPH +0xC27C 0x8055 #CJK UNIFIED IDEOGRAPH +0xC27D 0x8056 #CJK UNIFIED IDEOGRAPH +0xC27E 0x8057 #CJK UNIFIED IDEOGRAPH +0xC280 0x8059 #CJK UNIFIED IDEOGRAPH +0xC281 0x805B #CJK UNIFIED IDEOGRAPH +0xC282 0x805C #CJK UNIFIED IDEOGRAPH +0xC283 0x805D #CJK UNIFIED IDEOGRAPH +0xC284 0x805E #CJK UNIFIED IDEOGRAPH +0xC285 0x805F #CJK UNIFIED IDEOGRAPH +0xC286 0x8060 #CJK UNIFIED IDEOGRAPH +0xC287 0x8061 #CJK UNIFIED IDEOGRAPH +0xC288 0x8062 #CJK UNIFIED IDEOGRAPH +0xC289 0x8063 #CJK UNIFIED IDEOGRAPH +0xC28A 0x8064 #CJK UNIFIED IDEOGRAPH +0xC28B 0x8065 #CJK UNIFIED IDEOGRAPH +0xC28C 0x8066 #CJK UNIFIED IDEOGRAPH +0xC28D 0x8067 #CJK UNIFIED IDEOGRAPH +0xC28E 0x8068 #CJK UNIFIED IDEOGRAPH +0xC28F 0x806B #CJK UNIFIED IDEOGRAPH +0xC290 0x806C #CJK UNIFIED IDEOGRAPH +0xC291 0x806D #CJK UNIFIED IDEOGRAPH +0xC292 0x806E #CJK UNIFIED IDEOGRAPH +0xC293 0x806F #CJK UNIFIED IDEOGRAPH +0xC294 0x8070 #CJK UNIFIED IDEOGRAPH +0xC295 0x8072 #CJK UNIFIED IDEOGRAPH +0xC296 0x8073 #CJK UNIFIED IDEOGRAPH +0xC297 0x8074 #CJK UNIFIED IDEOGRAPH +0xC298 0x8075 #CJK UNIFIED IDEOGRAPH +0xC299 0x8076 #CJK UNIFIED IDEOGRAPH +0xC29A 0x8077 #CJK UNIFIED IDEOGRAPH +0xC29B 0x8078 #CJK UNIFIED IDEOGRAPH +0xC29C 0x8079 #CJK UNIFIED IDEOGRAPH +0xC29D 0x807A #CJK UNIFIED IDEOGRAPH +0xC29E 0x807B #CJK UNIFIED IDEOGRAPH +0xC29F 0x807C #CJK UNIFIED IDEOGRAPH +0xC2A0 0x807D #CJK UNIFIED IDEOGRAPH +0xC2A1 0x9686 #CJK UNIFIED IDEOGRAPH +0xC2A2 0x5784 #CJK UNIFIED IDEOGRAPH +0xC2A3 0x62E2 #CJK UNIFIED IDEOGRAPH +0xC2A4 0x9647 #CJK UNIFIED IDEOGRAPH +0xC2A5 0x697C #CJK UNIFIED IDEOGRAPH +0xC2A6 0x5A04 #CJK UNIFIED IDEOGRAPH +0xC2A7 0x6402 #CJK UNIFIED IDEOGRAPH +0xC2A8 0x7BD3 #CJK UNIFIED IDEOGRAPH +0xC2A9 0x6F0F #CJK UNIFIED IDEOGRAPH +0xC2AA 0x964B #CJK UNIFIED IDEOGRAPH +0xC2AB 0x82A6 #CJK UNIFIED IDEOGRAPH +0xC2AC 0x5362 #CJK UNIFIED IDEOGRAPH +0xC2AD 0x9885 #CJK UNIFIED IDEOGRAPH +0xC2AE 0x5E90 #CJK UNIFIED IDEOGRAPH +0xC2AF 0x7089 #CJK UNIFIED IDEOGRAPH +0xC2B0 0x63B3 #CJK UNIFIED IDEOGRAPH +0xC2B1 0x5364 #CJK UNIFIED IDEOGRAPH +0xC2B2 0x864F #CJK UNIFIED IDEOGRAPH +0xC2B3 0x9C81 #CJK UNIFIED IDEOGRAPH +0xC2B4 0x9E93 #CJK UNIFIED IDEOGRAPH +0xC2B5 0x788C #CJK UNIFIED IDEOGRAPH +0xC2B6 0x9732 #CJK UNIFIED IDEOGRAPH +0xC2B7 0x8DEF #CJK UNIFIED IDEOGRAPH +0xC2B8 0x8D42 #CJK UNIFIED IDEOGRAPH +0xC2B9 0x9E7F #CJK UNIFIED IDEOGRAPH +0xC2BA 0x6F5E #CJK UNIFIED IDEOGRAPH +0xC2BB 0x7984 #CJK UNIFIED IDEOGRAPH +0xC2BC 0x5F55 #CJK UNIFIED IDEOGRAPH +0xC2BD 0x9646 #CJK UNIFIED IDEOGRAPH +0xC2BE 0x622E #CJK UNIFIED IDEOGRAPH +0xC2BF 0x9A74 #CJK UNIFIED IDEOGRAPH +0xC2C0 0x5415 #CJK UNIFIED IDEOGRAPH +0xC2C1 0x94DD #CJK UNIFIED IDEOGRAPH +0xC2C2 0x4FA3 #CJK UNIFIED IDEOGRAPH +0xC2C3 0x65C5 #CJK UNIFIED IDEOGRAPH +0xC2C4 0x5C65 #CJK UNIFIED IDEOGRAPH +0xC2C5 0x5C61 #CJK UNIFIED IDEOGRAPH +0xC2C6 0x7F15 #CJK UNIFIED IDEOGRAPH +0xC2C7 0x8651 #CJK UNIFIED IDEOGRAPH +0xC2C8 0x6C2F #CJK UNIFIED IDEOGRAPH +0xC2C9 0x5F8B #CJK UNIFIED IDEOGRAPH +0xC2CA 0x7387 #CJK UNIFIED IDEOGRAPH +0xC2CB 0x6EE4 #CJK UNIFIED IDEOGRAPH +0xC2CC 0x7EFF #CJK UNIFIED IDEOGRAPH +0xC2CD 0x5CE6 #CJK UNIFIED IDEOGRAPH +0xC2CE 0x631B #CJK UNIFIED IDEOGRAPH +0xC2CF 0x5B6A #CJK UNIFIED IDEOGRAPH +0xC2D0 0x6EE6 #CJK UNIFIED IDEOGRAPH +0xC2D1 0x5375 #CJK UNIFIED IDEOGRAPH +0xC2D2 0x4E71 #CJK UNIFIED IDEOGRAPH +0xC2D3 0x63A0 #CJK UNIFIED IDEOGRAPH +0xC2D4 0x7565 #CJK UNIFIED IDEOGRAPH +0xC2D5 0x62A1 #CJK UNIFIED IDEOGRAPH +0xC2D6 0x8F6E #CJK UNIFIED IDEOGRAPH +0xC2D7 0x4F26 #CJK UNIFIED IDEOGRAPH +0xC2D8 0x4ED1 #CJK UNIFIED IDEOGRAPH +0xC2D9 0x6CA6 #CJK UNIFIED IDEOGRAPH +0xC2DA 0x7EB6 #CJK UNIFIED IDEOGRAPH +0xC2DB 0x8BBA #CJK UNIFIED IDEOGRAPH +0xC2DC 0x841D #CJK UNIFIED IDEOGRAPH +0xC2DD 0x87BA #CJK UNIFIED IDEOGRAPH +0xC2DE 0x7F57 #CJK UNIFIED IDEOGRAPH +0xC2DF 0x903B #CJK UNIFIED IDEOGRAPH +0xC2E0 0x9523 #CJK UNIFIED IDEOGRAPH +0xC2E1 0x7BA9 #CJK UNIFIED IDEOGRAPH +0xC2E2 0x9AA1 #CJK UNIFIED IDEOGRAPH +0xC2E3 0x88F8 #CJK UNIFIED IDEOGRAPH +0xC2E4 0x843D #CJK UNIFIED IDEOGRAPH +0xC2E5 0x6D1B #CJK UNIFIED IDEOGRAPH +0xC2E6 0x9A86 #CJK UNIFIED IDEOGRAPH +0xC2E7 0x7EDC #CJK UNIFIED IDEOGRAPH +0xC2E8 0x5988 #CJK UNIFIED IDEOGRAPH +0xC2E9 0x9EBB #CJK UNIFIED IDEOGRAPH +0xC2EA 0x739B #CJK UNIFIED IDEOGRAPH +0xC2EB 0x7801 #CJK UNIFIED IDEOGRAPH +0xC2EC 0x8682 #CJK UNIFIED IDEOGRAPH +0xC2ED 0x9A6C #CJK UNIFIED IDEOGRAPH +0xC2EE 0x9A82 #CJK UNIFIED IDEOGRAPH +0xC2EF 0x561B #CJK UNIFIED IDEOGRAPH +0xC2F0 0x5417 #CJK UNIFIED IDEOGRAPH +0xC2F1 0x57CB #CJK UNIFIED IDEOGRAPH +0xC2F2 0x4E70 #CJK UNIFIED IDEOGRAPH +0xC2F3 0x9EA6 #CJK UNIFIED IDEOGRAPH +0xC2F4 0x5356 #CJK UNIFIED IDEOGRAPH +0xC2F5 0x8FC8 #CJK UNIFIED IDEOGRAPH +0xC2F6 0x8109 #CJK UNIFIED IDEOGRAPH +0xC2F7 0x7792 #CJK UNIFIED IDEOGRAPH +0xC2F8 0x9992 #CJK UNIFIED IDEOGRAPH +0xC2F9 0x86EE #CJK UNIFIED IDEOGRAPH +0xC2FA 0x6EE1 #CJK UNIFIED IDEOGRAPH +0xC2FB 0x8513 #CJK UNIFIED IDEOGRAPH +0xC2FC 0x66FC #CJK UNIFIED IDEOGRAPH +0xC2FD 0x6162 #CJK UNIFIED IDEOGRAPH +0xC2FE 0x6F2B #CJK UNIFIED IDEOGRAPH +0xC340 0x807E #CJK UNIFIED IDEOGRAPH +0xC341 0x8081 #CJK UNIFIED IDEOGRAPH +0xC342 0x8082 #CJK UNIFIED IDEOGRAPH +0xC343 0x8085 #CJK UNIFIED IDEOGRAPH +0xC344 0x8088 #CJK UNIFIED IDEOGRAPH +0xC345 0x808A #CJK UNIFIED IDEOGRAPH +0xC346 0x808D #CJK UNIFIED IDEOGRAPH +0xC347 0x808E #CJK UNIFIED IDEOGRAPH +0xC348 0x808F #CJK UNIFIED IDEOGRAPH +0xC349 0x8090 #CJK UNIFIED IDEOGRAPH +0xC34A 0x8091 #CJK UNIFIED IDEOGRAPH +0xC34B 0x8092 #CJK UNIFIED IDEOGRAPH +0xC34C 0x8094 #CJK UNIFIED IDEOGRAPH +0xC34D 0x8095 #CJK UNIFIED IDEOGRAPH +0xC34E 0x8097 #CJK UNIFIED IDEOGRAPH +0xC34F 0x8099 #CJK UNIFIED IDEOGRAPH +0xC350 0x809E #CJK UNIFIED IDEOGRAPH +0xC351 0x80A3 #CJK UNIFIED IDEOGRAPH +0xC352 0x80A6 #CJK UNIFIED IDEOGRAPH +0xC353 0x80A7 #CJK UNIFIED IDEOGRAPH +0xC354 0x80A8 #CJK UNIFIED IDEOGRAPH +0xC355 0x80AC #CJK UNIFIED IDEOGRAPH +0xC356 0x80B0 #CJK UNIFIED IDEOGRAPH +0xC357 0x80B3 #CJK UNIFIED IDEOGRAPH +0xC358 0x80B5 #CJK UNIFIED IDEOGRAPH +0xC359 0x80B6 #CJK UNIFIED IDEOGRAPH +0xC35A 0x80B8 #CJK UNIFIED IDEOGRAPH +0xC35B 0x80B9 #CJK UNIFIED IDEOGRAPH +0xC35C 0x80BB #CJK UNIFIED IDEOGRAPH +0xC35D 0x80C5 #CJK UNIFIED IDEOGRAPH +0xC35E 0x80C7 #CJK UNIFIED IDEOGRAPH +0xC35F 0x80C8 #CJK UNIFIED IDEOGRAPH +0xC360 0x80C9 #CJK UNIFIED IDEOGRAPH +0xC361 0x80CA #CJK UNIFIED IDEOGRAPH +0xC362 0x80CB #CJK UNIFIED IDEOGRAPH +0xC363 0x80CF #CJK UNIFIED IDEOGRAPH +0xC364 0x80D0 #CJK UNIFIED IDEOGRAPH +0xC365 0x80D1 #CJK UNIFIED IDEOGRAPH +0xC366 0x80D2 #CJK UNIFIED IDEOGRAPH +0xC367 0x80D3 #CJK UNIFIED IDEOGRAPH +0xC368 0x80D4 #CJK UNIFIED IDEOGRAPH +0xC369 0x80D5 #CJK UNIFIED IDEOGRAPH +0xC36A 0x80D8 #CJK UNIFIED IDEOGRAPH +0xC36B 0x80DF #CJK UNIFIED IDEOGRAPH +0xC36C 0x80E0 #CJK UNIFIED IDEOGRAPH +0xC36D 0x80E2 #CJK UNIFIED IDEOGRAPH +0xC36E 0x80E3 #CJK UNIFIED IDEOGRAPH +0xC36F 0x80E6 #CJK UNIFIED IDEOGRAPH +0xC370 0x80EE #CJK UNIFIED IDEOGRAPH +0xC371 0x80F5 #CJK UNIFIED IDEOGRAPH +0xC372 0x80F7 #CJK UNIFIED IDEOGRAPH +0xC373 0x80F9 #CJK UNIFIED IDEOGRAPH +0xC374 0x80FB #CJK UNIFIED IDEOGRAPH +0xC375 0x80FE #CJK UNIFIED IDEOGRAPH +0xC376 0x80FF #CJK UNIFIED IDEOGRAPH +0xC377 0x8100 #CJK UNIFIED IDEOGRAPH +0xC378 0x8101 #CJK UNIFIED IDEOGRAPH +0xC379 0x8103 #CJK UNIFIED IDEOGRAPH +0xC37A 0x8104 #CJK UNIFIED IDEOGRAPH +0xC37B 0x8105 #CJK UNIFIED IDEOGRAPH +0xC37C 0x8107 #CJK UNIFIED IDEOGRAPH +0xC37D 0x8108 #CJK UNIFIED IDEOGRAPH +0xC37E 0x810B #CJK UNIFIED IDEOGRAPH +0xC380 0x810C #CJK UNIFIED IDEOGRAPH +0xC381 0x8115 #CJK UNIFIED IDEOGRAPH +0xC382 0x8117 #CJK UNIFIED IDEOGRAPH +0xC383 0x8119 #CJK UNIFIED IDEOGRAPH +0xC384 0x811B #CJK UNIFIED IDEOGRAPH +0xC385 0x811C #CJK UNIFIED IDEOGRAPH +0xC386 0x811D #CJK UNIFIED IDEOGRAPH +0xC387 0x811F #CJK UNIFIED IDEOGRAPH +0xC388 0x8120 #CJK UNIFIED IDEOGRAPH +0xC389 0x8121 #CJK UNIFIED IDEOGRAPH +0xC38A 0x8122 #CJK UNIFIED IDEOGRAPH +0xC38B 0x8123 #CJK UNIFIED IDEOGRAPH +0xC38C 0x8124 #CJK UNIFIED IDEOGRAPH +0xC38D 0x8125 #CJK UNIFIED IDEOGRAPH +0xC38E 0x8126 #CJK UNIFIED IDEOGRAPH +0xC38F 0x8127 #CJK UNIFIED IDEOGRAPH +0xC390 0x8128 #CJK UNIFIED IDEOGRAPH +0xC391 0x8129 #CJK UNIFIED IDEOGRAPH +0xC392 0x812A #CJK UNIFIED IDEOGRAPH +0xC393 0x812B #CJK UNIFIED IDEOGRAPH +0xC394 0x812D #CJK UNIFIED IDEOGRAPH +0xC395 0x812E #CJK UNIFIED IDEOGRAPH +0xC396 0x8130 #CJK UNIFIED IDEOGRAPH +0xC397 0x8133 #CJK UNIFIED IDEOGRAPH +0xC398 0x8134 #CJK UNIFIED IDEOGRAPH +0xC399 0x8135 #CJK UNIFIED IDEOGRAPH +0xC39A 0x8137 #CJK UNIFIED IDEOGRAPH +0xC39B 0x8139 #CJK UNIFIED IDEOGRAPH +0xC39C 0x813A #CJK UNIFIED IDEOGRAPH +0xC39D 0x813B #CJK UNIFIED IDEOGRAPH +0xC39E 0x813C #CJK UNIFIED IDEOGRAPH +0xC39F 0x813D #CJK UNIFIED IDEOGRAPH +0xC3A0 0x813F #CJK UNIFIED IDEOGRAPH +0xC3A1 0x8C29 #CJK UNIFIED IDEOGRAPH +0xC3A2 0x8292 #CJK UNIFIED IDEOGRAPH +0xC3A3 0x832B #CJK UNIFIED IDEOGRAPH +0xC3A4 0x76F2 #CJK UNIFIED IDEOGRAPH +0xC3A5 0x6C13 #CJK UNIFIED IDEOGRAPH +0xC3A6 0x5FD9 #CJK UNIFIED IDEOGRAPH +0xC3A7 0x83BD #CJK UNIFIED IDEOGRAPH +0xC3A8 0x732B #CJK UNIFIED IDEOGRAPH +0xC3A9 0x8305 #CJK UNIFIED IDEOGRAPH +0xC3AA 0x951A #CJK UNIFIED IDEOGRAPH +0xC3AB 0x6BDB #CJK UNIFIED IDEOGRAPH +0xC3AC 0x77DB #CJK UNIFIED IDEOGRAPH +0xC3AD 0x94C6 #CJK UNIFIED IDEOGRAPH +0xC3AE 0x536F #CJK UNIFIED IDEOGRAPH +0xC3AF 0x8302 #CJK UNIFIED IDEOGRAPH +0xC3B0 0x5192 #CJK UNIFIED IDEOGRAPH +0xC3B1 0x5E3D #CJK UNIFIED IDEOGRAPH +0xC3B2 0x8C8C #CJK UNIFIED IDEOGRAPH +0xC3B3 0x8D38 #CJK UNIFIED IDEOGRAPH +0xC3B4 0x4E48 #CJK UNIFIED IDEOGRAPH +0xC3B5 0x73AB #CJK UNIFIED IDEOGRAPH +0xC3B6 0x679A #CJK UNIFIED IDEOGRAPH +0xC3B7 0x6885 #CJK UNIFIED IDEOGRAPH +0xC3B8 0x9176 #CJK UNIFIED IDEOGRAPH +0xC3B9 0x9709 #CJK UNIFIED IDEOGRAPH +0xC3BA 0x7164 #CJK UNIFIED IDEOGRAPH +0xC3BB 0x6CA1 #CJK UNIFIED IDEOGRAPH +0xC3BC 0x7709 #CJK UNIFIED IDEOGRAPH +0xC3BD 0x5A92 #CJK UNIFIED IDEOGRAPH +0xC3BE 0x9541 #CJK UNIFIED IDEOGRAPH +0xC3BF 0x6BCF #CJK UNIFIED IDEOGRAPH +0xC3C0 0x7F8E #CJK UNIFIED IDEOGRAPH +0xC3C1 0x6627 #CJK UNIFIED IDEOGRAPH +0xC3C2 0x5BD0 #CJK UNIFIED IDEOGRAPH +0xC3C3 0x59B9 #CJK UNIFIED IDEOGRAPH +0xC3C4 0x5A9A #CJK UNIFIED IDEOGRAPH +0xC3C5 0x95E8 #CJK UNIFIED IDEOGRAPH +0xC3C6 0x95F7 #CJK UNIFIED IDEOGRAPH +0xC3C7 0x4EEC #CJK UNIFIED IDEOGRAPH +0xC3C8 0x840C #CJK UNIFIED IDEOGRAPH +0xC3C9 0x8499 #CJK UNIFIED IDEOGRAPH +0xC3CA 0x6AAC #CJK UNIFIED IDEOGRAPH +0xC3CB 0x76DF #CJK UNIFIED IDEOGRAPH +0xC3CC 0x9530 #CJK UNIFIED IDEOGRAPH +0xC3CD 0x731B #CJK UNIFIED IDEOGRAPH +0xC3CE 0x68A6 #CJK UNIFIED IDEOGRAPH +0xC3CF 0x5B5F #CJK UNIFIED IDEOGRAPH +0xC3D0 0x772F #CJK UNIFIED IDEOGRAPH +0xC3D1 0x919A #CJK UNIFIED IDEOGRAPH +0xC3D2 0x9761 #CJK UNIFIED IDEOGRAPH +0xC3D3 0x7CDC #CJK UNIFIED IDEOGRAPH +0xC3D4 0x8FF7 #CJK UNIFIED IDEOGRAPH +0xC3D5 0x8C1C #CJK UNIFIED IDEOGRAPH +0xC3D6 0x5F25 #CJK UNIFIED IDEOGRAPH +0xC3D7 0x7C73 #CJK UNIFIED IDEOGRAPH +0xC3D8 0x79D8 #CJK UNIFIED IDEOGRAPH +0xC3D9 0x89C5 #CJK UNIFIED IDEOGRAPH +0xC3DA 0x6CCC #CJK UNIFIED IDEOGRAPH +0xC3DB 0x871C #CJK UNIFIED IDEOGRAPH +0xC3DC 0x5BC6 #CJK UNIFIED IDEOGRAPH +0xC3DD 0x5E42 #CJK UNIFIED IDEOGRAPH +0xC3DE 0x68C9 #CJK UNIFIED IDEOGRAPH +0xC3DF 0x7720 #CJK UNIFIED IDEOGRAPH +0xC3E0 0x7EF5 #CJK UNIFIED IDEOGRAPH +0xC3E1 0x5195 #CJK UNIFIED IDEOGRAPH +0xC3E2 0x514D #CJK UNIFIED IDEOGRAPH +0xC3E3 0x52C9 #CJK UNIFIED IDEOGRAPH +0xC3E4 0x5A29 #CJK UNIFIED IDEOGRAPH +0xC3E5 0x7F05 #CJK UNIFIED IDEOGRAPH +0xC3E6 0x9762 #CJK UNIFIED IDEOGRAPH +0xC3E7 0x82D7 #CJK UNIFIED IDEOGRAPH +0xC3E8 0x63CF #CJK UNIFIED IDEOGRAPH +0xC3E9 0x7784 #CJK UNIFIED IDEOGRAPH +0xC3EA 0x85D0 #CJK UNIFIED IDEOGRAPH +0xC3EB 0x79D2 #CJK UNIFIED IDEOGRAPH +0xC3EC 0x6E3A #CJK UNIFIED IDEOGRAPH +0xC3ED 0x5E99 #CJK UNIFIED IDEOGRAPH +0xC3EE 0x5999 #CJK UNIFIED IDEOGRAPH +0xC3EF 0x8511 #CJK UNIFIED IDEOGRAPH +0xC3F0 0x706D #CJK UNIFIED IDEOGRAPH +0xC3F1 0x6C11 #CJK UNIFIED IDEOGRAPH +0xC3F2 0x62BF #CJK UNIFIED IDEOGRAPH +0xC3F3 0x76BF #CJK UNIFIED IDEOGRAPH +0xC3F4 0x654F #CJK UNIFIED IDEOGRAPH +0xC3F5 0x60AF #CJK UNIFIED IDEOGRAPH +0xC3F6 0x95FD #CJK UNIFIED IDEOGRAPH +0xC3F7 0x660E #CJK UNIFIED IDEOGRAPH +0xC3F8 0x879F #CJK UNIFIED IDEOGRAPH +0xC3F9 0x9E23 #CJK UNIFIED IDEOGRAPH +0xC3FA 0x94ED #CJK UNIFIED IDEOGRAPH +0xC3FB 0x540D #CJK UNIFIED IDEOGRAPH +0xC3FC 0x547D #CJK UNIFIED IDEOGRAPH +0xC3FD 0x8C2C #CJK UNIFIED IDEOGRAPH +0xC3FE 0x6478 #CJK UNIFIED IDEOGRAPH +0xC440 0x8140 #CJK UNIFIED IDEOGRAPH +0xC441 0x8141 #CJK UNIFIED IDEOGRAPH +0xC442 0x8142 #CJK UNIFIED IDEOGRAPH +0xC443 0x8143 #CJK UNIFIED IDEOGRAPH +0xC444 0x8144 #CJK UNIFIED IDEOGRAPH +0xC445 0x8145 #CJK UNIFIED IDEOGRAPH +0xC446 0x8147 #CJK UNIFIED IDEOGRAPH +0xC447 0x8149 #CJK UNIFIED IDEOGRAPH +0xC448 0x814D #CJK UNIFIED IDEOGRAPH +0xC449 0x814E #CJK UNIFIED IDEOGRAPH +0xC44A 0x814F #CJK UNIFIED IDEOGRAPH +0xC44B 0x8152 #CJK UNIFIED IDEOGRAPH +0xC44C 0x8156 #CJK UNIFIED IDEOGRAPH +0xC44D 0x8157 #CJK UNIFIED IDEOGRAPH +0xC44E 0x8158 #CJK UNIFIED IDEOGRAPH +0xC44F 0x815B #CJK UNIFIED IDEOGRAPH +0xC450 0x815C #CJK UNIFIED IDEOGRAPH +0xC451 0x815D #CJK UNIFIED IDEOGRAPH +0xC452 0x815E #CJK UNIFIED IDEOGRAPH +0xC453 0x815F #CJK UNIFIED IDEOGRAPH +0xC454 0x8161 #CJK UNIFIED IDEOGRAPH +0xC455 0x8162 #CJK UNIFIED IDEOGRAPH +0xC456 0x8163 #CJK UNIFIED IDEOGRAPH +0xC457 0x8164 #CJK UNIFIED IDEOGRAPH +0xC458 0x8166 #CJK UNIFIED IDEOGRAPH +0xC459 0x8168 #CJK UNIFIED IDEOGRAPH +0xC45A 0x816A #CJK UNIFIED IDEOGRAPH +0xC45B 0x816B #CJK UNIFIED IDEOGRAPH +0xC45C 0x816C #CJK UNIFIED IDEOGRAPH +0xC45D 0x816F #CJK UNIFIED IDEOGRAPH +0xC45E 0x8172 #CJK UNIFIED IDEOGRAPH +0xC45F 0x8173 #CJK UNIFIED IDEOGRAPH +0xC460 0x8175 #CJK UNIFIED IDEOGRAPH +0xC461 0x8176 #CJK UNIFIED IDEOGRAPH +0xC462 0x8177 #CJK UNIFIED IDEOGRAPH +0xC463 0x8178 #CJK UNIFIED IDEOGRAPH +0xC464 0x8181 #CJK UNIFIED IDEOGRAPH +0xC465 0x8183 #CJK UNIFIED IDEOGRAPH +0xC466 0x8184 #CJK UNIFIED IDEOGRAPH +0xC467 0x8185 #CJK UNIFIED IDEOGRAPH +0xC468 0x8186 #CJK UNIFIED IDEOGRAPH +0xC469 0x8187 #CJK UNIFIED IDEOGRAPH +0xC46A 0x8189 #CJK UNIFIED IDEOGRAPH +0xC46B 0x818B #CJK UNIFIED IDEOGRAPH +0xC46C 0x818C #CJK UNIFIED IDEOGRAPH +0xC46D 0x818D #CJK UNIFIED IDEOGRAPH +0xC46E 0x818E #CJK UNIFIED IDEOGRAPH +0xC46F 0x8190 #CJK UNIFIED IDEOGRAPH +0xC470 0x8192 #CJK UNIFIED IDEOGRAPH +0xC471 0x8193 #CJK UNIFIED IDEOGRAPH +0xC472 0x8194 #CJK UNIFIED IDEOGRAPH +0xC473 0x8195 #CJK UNIFIED IDEOGRAPH +0xC474 0x8196 #CJK UNIFIED IDEOGRAPH +0xC475 0x8197 #CJK UNIFIED IDEOGRAPH +0xC476 0x8199 #CJK UNIFIED IDEOGRAPH +0xC477 0x819A #CJK UNIFIED IDEOGRAPH +0xC478 0x819E #CJK UNIFIED IDEOGRAPH +0xC479 0x819F #CJK UNIFIED IDEOGRAPH +0xC47A 0x81A0 #CJK UNIFIED IDEOGRAPH +0xC47B 0x81A1 #CJK UNIFIED IDEOGRAPH +0xC47C 0x81A2 #CJK UNIFIED IDEOGRAPH +0xC47D 0x81A4 #CJK UNIFIED IDEOGRAPH +0xC47E 0x81A5 #CJK UNIFIED IDEOGRAPH +0xC480 0x81A7 #CJK UNIFIED IDEOGRAPH +0xC481 0x81A9 #CJK UNIFIED IDEOGRAPH +0xC482 0x81AB #CJK UNIFIED IDEOGRAPH +0xC483 0x81AC #CJK UNIFIED IDEOGRAPH +0xC484 0x81AD #CJK UNIFIED IDEOGRAPH +0xC485 0x81AE #CJK UNIFIED IDEOGRAPH +0xC486 0x81AF #CJK UNIFIED IDEOGRAPH +0xC487 0x81B0 #CJK UNIFIED IDEOGRAPH +0xC488 0x81B1 #CJK UNIFIED IDEOGRAPH +0xC489 0x81B2 #CJK UNIFIED IDEOGRAPH +0xC48A 0x81B4 #CJK UNIFIED IDEOGRAPH +0xC48B 0x81B5 #CJK UNIFIED IDEOGRAPH +0xC48C 0x81B6 #CJK UNIFIED IDEOGRAPH +0xC48D 0x81B7 #CJK UNIFIED IDEOGRAPH +0xC48E 0x81B8 #CJK UNIFIED IDEOGRAPH +0xC48F 0x81B9 #CJK UNIFIED IDEOGRAPH +0xC490 0x81BC #CJK UNIFIED IDEOGRAPH +0xC491 0x81BD #CJK UNIFIED IDEOGRAPH +0xC492 0x81BE #CJK UNIFIED IDEOGRAPH +0xC493 0x81BF #CJK UNIFIED IDEOGRAPH +0xC494 0x81C4 #CJK UNIFIED IDEOGRAPH +0xC495 0x81C5 #CJK UNIFIED IDEOGRAPH +0xC496 0x81C7 #CJK UNIFIED IDEOGRAPH +0xC497 0x81C8 #CJK UNIFIED IDEOGRAPH +0xC498 0x81C9 #CJK UNIFIED IDEOGRAPH +0xC499 0x81CB #CJK UNIFIED IDEOGRAPH +0xC49A 0x81CD #CJK UNIFIED IDEOGRAPH +0xC49B 0x81CE #CJK UNIFIED IDEOGRAPH +0xC49C 0x81CF #CJK UNIFIED IDEOGRAPH +0xC49D 0x81D0 #CJK UNIFIED IDEOGRAPH +0xC49E 0x81D1 #CJK UNIFIED IDEOGRAPH +0xC49F 0x81D2 #CJK UNIFIED IDEOGRAPH +0xC4A0 0x81D3 #CJK UNIFIED IDEOGRAPH +0xC4A1 0x6479 #CJK UNIFIED IDEOGRAPH +0xC4A2 0x8611 #CJK UNIFIED IDEOGRAPH +0xC4A3 0x6A21 #CJK UNIFIED IDEOGRAPH +0xC4A4 0x819C #CJK UNIFIED IDEOGRAPH +0xC4A5 0x78E8 #CJK UNIFIED IDEOGRAPH +0xC4A6 0x6469 #CJK UNIFIED IDEOGRAPH +0xC4A7 0x9B54 #CJK UNIFIED IDEOGRAPH +0xC4A8 0x62B9 #CJK UNIFIED IDEOGRAPH +0xC4A9 0x672B #CJK UNIFIED IDEOGRAPH +0xC4AA 0x83AB #CJK UNIFIED IDEOGRAPH +0xC4AB 0x58A8 #CJK UNIFIED IDEOGRAPH +0xC4AC 0x9ED8 #CJK UNIFIED IDEOGRAPH +0xC4AD 0x6CAB #CJK UNIFIED IDEOGRAPH +0xC4AE 0x6F20 #CJK UNIFIED IDEOGRAPH +0xC4AF 0x5BDE #CJK UNIFIED IDEOGRAPH +0xC4B0 0x964C #CJK UNIFIED IDEOGRAPH +0xC4B1 0x8C0B #CJK UNIFIED IDEOGRAPH +0xC4B2 0x725F #CJK UNIFIED IDEOGRAPH +0xC4B3 0x67D0 #CJK UNIFIED IDEOGRAPH +0xC4B4 0x62C7 #CJK UNIFIED IDEOGRAPH +0xC4B5 0x7261 #CJK UNIFIED IDEOGRAPH +0xC4B6 0x4EA9 #CJK UNIFIED IDEOGRAPH +0xC4B7 0x59C6 #CJK UNIFIED IDEOGRAPH +0xC4B8 0x6BCD #CJK UNIFIED IDEOGRAPH +0xC4B9 0x5893 #CJK UNIFIED IDEOGRAPH +0xC4BA 0x66AE #CJK UNIFIED IDEOGRAPH +0xC4BB 0x5E55 #CJK UNIFIED IDEOGRAPH +0xC4BC 0x52DF #CJK UNIFIED IDEOGRAPH +0xC4BD 0x6155 #CJK UNIFIED IDEOGRAPH +0xC4BE 0x6728 #CJK UNIFIED IDEOGRAPH +0xC4BF 0x76EE #CJK UNIFIED IDEOGRAPH +0xC4C0 0x7766 #CJK UNIFIED IDEOGRAPH +0xC4C1 0x7267 #CJK UNIFIED IDEOGRAPH +0xC4C2 0x7A46 #CJK UNIFIED IDEOGRAPH +0xC4C3 0x62FF #CJK UNIFIED IDEOGRAPH +0xC4C4 0x54EA #CJK UNIFIED IDEOGRAPH +0xC4C5 0x5450 #CJK UNIFIED IDEOGRAPH +0xC4C6 0x94A0 #CJK UNIFIED IDEOGRAPH +0xC4C7 0x90A3 #CJK UNIFIED IDEOGRAPH +0xC4C8 0x5A1C #CJK UNIFIED IDEOGRAPH +0xC4C9 0x7EB3 #CJK UNIFIED IDEOGRAPH +0xC4CA 0x6C16 #CJK UNIFIED IDEOGRAPH +0xC4CB 0x4E43 #CJK UNIFIED IDEOGRAPH +0xC4CC 0x5976 #CJK UNIFIED IDEOGRAPH +0xC4CD 0x8010 #CJK UNIFIED IDEOGRAPH +0xC4CE 0x5948 #CJK UNIFIED IDEOGRAPH +0xC4CF 0x5357 #CJK UNIFIED IDEOGRAPH +0xC4D0 0x7537 #CJK UNIFIED IDEOGRAPH +0xC4D1 0x96BE #CJK UNIFIED IDEOGRAPH +0xC4D2 0x56CA #CJK UNIFIED IDEOGRAPH +0xC4D3 0x6320 #CJK UNIFIED IDEOGRAPH +0xC4D4 0x8111 #CJK UNIFIED IDEOGRAPH +0xC4D5 0x607C #CJK UNIFIED IDEOGRAPH +0xC4D6 0x95F9 #CJK UNIFIED IDEOGRAPH +0xC4D7 0x6DD6 #CJK UNIFIED IDEOGRAPH +0xC4D8 0x5462 #CJK UNIFIED IDEOGRAPH +0xC4D9 0x9981 #CJK UNIFIED IDEOGRAPH +0xC4DA 0x5185 #CJK UNIFIED IDEOGRAPH +0xC4DB 0x5AE9 #CJK UNIFIED IDEOGRAPH +0xC4DC 0x80FD #CJK UNIFIED IDEOGRAPH +0xC4DD 0x59AE #CJK UNIFIED IDEOGRAPH +0xC4DE 0x9713 #CJK UNIFIED IDEOGRAPH +0xC4DF 0x502A #CJK UNIFIED IDEOGRAPH +0xC4E0 0x6CE5 #CJK UNIFIED IDEOGRAPH +0xC4E1 0x5C3C #CJK UNIFIED IDEOGRAPH +0xC4E2 0x62DF #CJK UNIFIED IDEOGRAPH +0xC4E3 0x4F60 #CJK UNIFIED IDEOGRAPH +0xC4E4 0x533F #CJK UNIFIED IDEOGRAPH +0xC4E5 0x817B #CJK UNIFIED IDEOGRAPH +0xC4E6 0x9006 #CJK UNIFIED IDEOGRAPH +0xC4E7 0x6EBA #CJK UNIFIED IDEOGRAPH +0xC4E8 0x852B #CJK UNIFIED IDEOGRAPH +0xC4E9 0x62C8 #CJK UNIFIED IDEOGRAPH +0xC4EA 0x5E74 #CJK UNIFIED IDEOGRAPH +0xC4EB 0x78BE #CJK UNIFIED IDEOGRAPH +0xC4EC 0x64B5 #CJK UNIFIED IDEOGRAPH +0xC4ED 0x637B #CJK UNIFIED IDEOGRAPH +0xC4EE 0x5FF5 #CJK UNIFIED IDEOGRAPH +0xC4EF 0x5A18 #CJK UNIFIED IDEOGRAPH +0xC4F0 0x917F #CJK UNIFIED IDEOGRAPH +0xC4F1 0x9E1F #CJK UNIFIED IDEOGRAPH +0xC4F2 0x5C3F #CJK UNIFIED IDEOGRAPH +0xC4F3 0x634F #CJK UNIFIED IDEOGRAPH +0xC4F4 0x8042 #CJK UNIFIED IDEOGRAPH +0xC4F5 0x5B7D #CJK UNIFIED IDEOGRAPH +0xC4F6 0x556E #CJK UNIFIED IDEOGRAPH +0xC4F7 0x954A #CJK UNIFIED IDEOGRAPH +0xC4F8 0x954D #CJK UNIFIED IDEOGRAPH +0xC4F9 0x6D85 #CJK UNIFIED IDEOGRAPH +0xC4FA 0x60A8 #CJK UNIFIED IDEOGRAPH +0xC4FB 0x67E0 #CJK UNIFIED IDEOGRAPH +0xC4FC 0x72DE #CJK UNIFIED IDEOGRAPH +0xC4FD 0x51DD #CJK UNIFIED IDEOGRAPH +0xC4FE 0x5B81 #CJK UNIFIED IDEOGRAPH +0xC540 0x81D4 #CJK UNIFIED IDEOGRAPH +0xC541 0x81D5 #CJK UNIFIED IDEOGRAPH +0xC542 0x81D6 #CJK UNIFIED IDEOGRAPH +0xC543 0x81D7 #CJK UNIFIED IDEOGRAPH +0xC544 0x81D8 #CJK UNIFIED IDEOGRAPH +0xC545 0x81D9 #CJK UNIFIED IDEOGRAPH +0xC546 0x81DA #CJK UNIFIED IDEOGRAPH +0xC547 0x81DB #CJK UNIFIED IDEOGRAPH +0xC548 0x81DC #CJK UNIFIED IDEOGRAPH +0xC549 0x81DD #CJK UNIFIED IDEOGRAPH +0xC54A 0x81DE #CJK UNIFIED IDEOGRAPH +0xC54B 0x81DF #CJK UNIFIED IDEOGRAPH +0xC54C 0x81E0 #CJK UNIFIED IDEOGRAPH +0xC54D 0x81E1 #CJK UNIFIED IDEOGRAPH +0xC54E 0x81E2 #CJK UNIFIED IDEOGRAPH +0xC54F 0x81E4 #CJK UNIFIED IDEOGRAPH +0xC550 0x81E5 #CJK UNIFIED IDEOGRAPH +0xC551 0x81E6 #CJK UNIFIED IDEOGRAPH +0xC552 0x81E8 #CJK UNIFIED IDEOGRAPH +0xC553 0x81E9 #CJK UNIFIED IDEOGRAPH +0xC554 0x81EB #CJK UNIFIED IDEOGRAPH +0xC555 0x81EE #CJK UNIFIED IDEOGRAPH +0xC556 0x81EF #CJK UNIFIED IDEOGRAPH +0xC557 0x81F0 #CJK UNIFIED IDEOGRAPH +0xC558 0x81F1 #CJK UNIFIED IDEOGRAPH +0xC559 0x81F2 #CJK UNIFIED IDEOGRAPH +0xC55A 0x81F5 #CJK UNIFIED IDEOGRAPH +0xC55B 0x81F6 #CJK UNIFIED IDEOGRAPH +0xC55C 0x81F7 #CJK UNIFIED IDEOGRAPH +0xC55D 0x81F8 #CJK UNIFIED IDEOGRAPH +0xC55E 0x81F9 #CJK UNIFIED IDEOGRAPH +0xC55F 0x81FA #CJK UNIFIED IDEOGRAPH +0xC560 0x81FD #CJK UNIFIED IDEOGRAPH +0xC561 0x81FF #CJK UNIFIED IDEOGRAPH +0xC562 0x8203 #CJK UNIFIED IDEOGRAPH +0xC563 0x8207 #CJK UNIFIED IDEOGRAPH +0xC564 0x8208 #CJK UNIFIED IDEOGRAPH +0xC565 0x8209 #CJK UNIFIED IDEOGRAPH +0xC566 0x820A #CJK UNIFIED IDEOGRAPH +0xC567 0x820B #CJK UNIFIED IDEOGRAPH +0xC568 0x820E #CJK UNIFIED IDEOGRAPH +0xC569 0x820F #CJK UNIFIED IDEOGRAPH +0xC56A 0x8211 #CJK UNIFIED IDEOGRAPH +0xC56B 0x8213 #CJK UNIFIED IDEOGRAPH +0xC56C 0x8215 #CJK UNIFIED IDEOGRAPH +0xC56D 0x8216 #CJK UNIFIED IDEOGRAPH +0xC56E 0x8217 #CJK UNIFIED IDEOGRAPH +0xC56F 0x8218 #CJK UNIFIED IDEOGRAPH +0xC570 0x8219 #CJK UNIFIED IDEOGRAPH +0xC571 0x821A #CJK UNIFIED IDEOGRAPH +0xC572 0x821D #CJK UNIFIED IDEOGRAPH +0xC573 0x8220 #CJK UNIFIED IDEOGRAPH +0xC574 0x8224 #CJK UNIFIED IDEOGRAPH +0xC575 0x8225 #CJK UNIFIED IDEOGRAPH +0xC576 0x8226 #CJK UNIFIED IDEOGRAPH +0xC577 0x8227 #CJK UNIFIED IDEOGRAPH +0xC578 0x8229 #CJK UNIFIED IDEOGRAPH +0xC579 0x822E #CJK UNIFIED IDEOGRAPH +0xC57A 0x8232 #CJK UNIFIED IDEOGRAPH +0xC57B 0x823A #CJK UNIFIED IDEOGRAPH +0xC57C 0x823C #CJK UNIFIED IDEOGRAPH +0xC57D 0x823D #CJK UNIFIED IDEOGRAPH +0xC57E 0x823F #CJK UNIFIED IDEOGRAPH +0xC580 0x8240 #CJK UNIFIED IDEOGRAPH +0xC581 0x8241 #CJK UNIFIED IDEOGRAPH +0xC582 0x8242 #CJK UNIFIED IDEOGRAPH +0xC583 0x8243 #CJK UNIFIED IDEOGRAPH +0xC584 0x8245 #CJK UNIFIED IDEOGRAPH +0xC585 0x8246 #CJK UNIFIED IDEOGRAPH +0xC586 0x8248 #CJK UNIFIED IDEOGRAPH +0xC587 0x824A #CJK UNIFIED IDEOGRAPH +0xC588 0x824C #CJK UNIFIED IDEOGRAPH +0xC589 0x824D #CJK UNIFIED IDEOGRAPH +0xC58A 0x824E #CJK UNIFIED IDEOGRAPH +0xC58B 0x8250 #CJK UNIFIED IDEOGRAPH +0xC58C 0x8251 #CJK UNIFIED IDEOGRAPH +0xC58D 0x8252 #CJK UNIFIED IDEOGRAPH +0xC58E 0x8253 #CJK UNIFIED IDEOGRAPH +0xC58F 0x8254 #CJK UNIFIED IDEOGRAPH +0xC590 0x8255 #CJK UNIFIED IDEOGRAPH +0xC591 0x8256 #CJK UNIFIED IDEOGRAPH +0xC592 0x8257 #CJK UNIFIED IDEOGRAPH +0xC593 0x8259 #CJK UNIFIED IDEOGRAPH +0xC594 0x825B #CJK UNIFIED IDEOGRAPH +0xC595 0x825C #CJK UNIFIED IDEOGRAPH +0xC596 0x825D #CJK UNIFIED IDEOGRAPH +0xC597 0x825E #CJK UNIFIED IDEOGRAPH +0xC598 0x8260 #CJK UNIFIED IDEOGRAPH +0xC599 0x8261 #CJK UNIFIED IDEOGRAPH +0xC59A 0x8262 #CJK UNIFIED IDEOGRAPH +0xC59B 0x8263 #CJK UNIFIED IDEOGRAPH +0xC59C 0x8264 #CJK UNIFIED IDEOGRAPH +0xC59D 0x8265 #CJK UNIFIED IDEOGRAPH +0xC59E 0x8266 #CJK UNIFIED IDEOGRAPH +0xC59F 0x8267 #CJK UNIFIED IDEOGRAPH +0xC5A0 0x8269 #CJK UNIFIED IDEOGRAPH +0xC5A1 0x62E7 #CJK UNIFIED IDEOGRAPH +0xC5A2 0x6CDE #CJK UNIFIED IDEOGRAPH +0xC5A3 0x725B #CJK UNIFIED IDEOGRAPH +0xC5A4 0x626D #CJK UNIFIED IDEOGRAPH +0xC5A5 0x94AE #CJK UNIFIED IDEOGRAPH +0xC5A6 0x7EBD #CJK UNIFIED IDEOGRAPH +0xC5A7 0x8113 #CJK UNIFIED IDEOGRAPH +0xC5A8 0x6D53 #CJK UNIFIED IDEOGRAPH +0xC5A9 0x519C #CJK UNIFIED IDEOGRAPH +0xC5AA 0x5F04 #CJK UNIFIED IDEOGRAPH +0xC5AB 0x5974 #CJK UNIFIED IDEOGRAPH +0xC5AC 0x52AA #CJK UNIFIED IDEOGRAPH +0xC5AD 0x6012 #CJK UNIFIED IDEOGRAPH +0xC5AE 0x5973 #CJK UNIFIED IDEOGRAPH +0xC5AF 0x6696 #CJK UNIFIED IDEOGRAPH +0xC5B0 0x8650 #CJK UNIFIED IDEOGRAPH +0xC5B1 0x759F #CJK UNIFIED IDEOGRAPH +0xC5B2 0x632A #CJK UNIFIED IDEOGRAPH +0xC5B3 0x61E6 #CJK UNIFIED IDEOGRAPH +0xC5B4 0x7CEF #CJK UNIFIED IDEOGRAPH +0xC5B5 0x8BFA #CJK UNIFIED IDEOGRAPH +0xC5B6 0x54E6 #CJK UNIFIED IDEOGRAPH +0xC5B7 0x6B27 #CJK UNIFIED IDEOGRAPH +0xC5B8 0x9E25 #CJK UNIFIED IDEOGRAPH +0xC5B9 0x6BB4 #CJK UNIFIED IDEOGRAPH +0xC5BA 0x85D5 #CJK UNIFIED IDEOGRAPH +0xC5BB 0x5455 #CJK UNIFIED IDEOGRAPH +0xC5BC 0x5076 #CJK UNIFIED IDEOGRAPH +0xC5BD 0x6CA4 #CJK UNIFIED IDEOGRAPH +0xC5BE 0x556A #CJK UNIFIED IDEOGRAPH +0xC5BF 0x8DB4 #CJK UNIFIED IDEOGRAPH +0xC5C0 0x722C #CJK UNIFIED IDEOGRAPH +0xC5C1 0x5E15 #CJK UNIFIED IDEOGRAPH +0xC5C2 0x6015 #CJK UNIFIED IDEOGRAPH +0xC5C3 0x7436 #CJK UNIFIED IDEOGRAPH +0xC5C4 0x62CD #CJK UNIFIED IDEOGRAPH +0xC5C5 0x6392 #CJK UNIFIED IDEOGRAPH +0xC5C6 0x724C #CJK UNIFIED IDEOGRAPH +0xC5C7 0x5F98 #CJK UNIFIED IDEOGRAPH +0xC5C8 0x6E43 #CJK UNIFIED IDEOGRAPH +0xC5C9 0x6D3E #CJK UNIFIED IDEOGRAPH +0xC5CA 0x6500 #CJK UNIFIED IDEOGRAPH +0xC5CB 0x6F58 #CJK UNIFIED IDEOGRAPH +0xC5CC 0x76D8 #CJK UNIFIED IDEOGRAPH +0xC5CD 0x78D0 #CJK UNIFIED IDEOGRAPH +0xC5CE 0x76FC #CJK UNIFIED IDEOGRAPH +0xC5CF 0x7554 #CJK UNIFIED IDEOGRAPH +0xC5D0 0x5224 #CJK UNIFIED IDEOGRAPH +0xC5D1 0x53DB #CJK UNIFIED IDEOGRAPH +0xC5D2 0x4E53 #CJK UNIFIED IDEOGRAPH +0xC5D3 0x5E9E #CJK UNIFIED IDEOGRAPH +0xC5D4 0x65C1 #CJK UNIFIED IDEOGRAPH +0xC5D5 0x802A #CJK UNIFIED IDEOGRAPH +0xC5D6 0x80D6 #CJK UNIFIED IDEOGRAPH +0xC5D7 0x629B #CJK UNIFIED IDEOGRAPH +0xC5D8 0x5486 #CJK UNIFIED IDEOGRAPH +0xC5D9 0x5228 #CJK UNIFIED IDEOGRAPH +0xC5DA 0x70AE #CJK UNIFIED IDEOGRAPH +0xC5DB 0x888D #CJK UNIFIED IDEOGRAPH +0xC5DC 0x8DD1 #CJK UNIFIED IDEOGRAPH +0xC5DD 0x6CE1 #CJK UNIFIED IDEOGRAPH +0xC5DE 0x5478 #CJK UNIFIED IDEOGRAPH +0xC5DF 0x80DA #CJK UNIFIED IDEOGRAPH +0xC5E0 0x57F9 #CJK UNIFIED IDEOGRAPH +0xC5E1 0x88F4 #CJK UNIFIED IDEOGRAPH +0xC5E2 0x8D54 #CJK UNIFIED IDEOGRAPH +0xC5E3 0x966A #CJK UNIFIED IDEOGRAPH +0xC5E4 0x914D #CJK UNIFIED IDEOGRAPH +0xC5E5 0x4F69 #CJK UNIFIED IDEOGRAPH +0xC5E6 0x6C9B #CJK UNIFIED IDEOGRAPH +0xC5E7 0x55B7 #CJK UNIFIED IDEOGRAPH +0xC5E8 0x76C6 #CJK UNIFIED IDEOGRAPH +0xC5E9 0x7830 #CJK UNIFIED IDEOGRAPH +0xC5EA 0x62A8 #CJK UNIFIED IDEOGRAPH +0xC5EB 0x70F9 #CJK UNIFIED IDEOGRAPH +0xC5EC 0x6F8E #CJK UNIFIED IDEOGRAPH +0xC5ED 0x5F6D #CJK UNIFIED IDEOGRAPH +0xC5EE 0x84EC #CJK UNIFIED IDEOGRAPH +0xC5EF 0x68DA #CJK UNIFIED IDEOGRAPH +0xC5F0 0x787C #CJK UNIFIED IDEOGRAPH +0xC5F1 0x7BF7 #CJK UNIFIED IDEOGRAPH +0xC5F2 0x81A8 #CJK UNIFIED IDEOGRAPH +0xC5F3 0x670B #CJK UNIFIED IDEOGRAPH +0xC5F4 0x9E4F #CJK UNIFIED IDEOGRAPH +0xC5F5 0x6367 #CJK UNIFIED IDEOGRAPH +0xC5F6 0x78B0 #CJK UNIFIED IDEOGRAPH +0xC5F7 0x576F #CJK UNIFIED IDEOGRAPH +0xC5F8 0x7812 #CJK UNIFIED IDEOGRAPH +0xC5F9 0x9739 #CJK UNIFIED IDEOGRAPH +0xC5FA 0x6279 #CJK UNIFIED IDEOGRAPH +0xC5FB 0x62AB #CJK UNIFIED IDEOGRAPH +0xC5FC 0x5288 #CJK UNIFIED IDEOGRAPH +0xC5FD 0x7435 #CJK UNIFIED IDEOGRAPH +0xC5FE 0x6BD7 #CJK UNIFIED IDEOGRAPH +0xC640 0x826A #CJK UNIFIED IDEOGRAPH +0xC641 0x826B #CJK UNIFIED IDEOGRAPH +0xC642 0x826C #CJK UNIFIED IDEOGRAPH +0xC643 0x826D #CJK UNIFIED IDEOGRAPH +0xC644 0x8271 #CJK UNIFIED IDEOGRAPH +0xC645 0x8275 #CJK UNIFIED IDEOGRAPH +0xC646 0x8276 #CJK UNIFIED IDEOGRAPH +0xC647 0x8277 #CJK UNIFIED IDEOGRAPH +0xC648 0x8278 #CJK UNIFIED IDEOGRAPH +0xC649 0x827B #CJK UNIFIED IDEOGRAPH +0xC64A 0x827C #CJK UNIFIED IDEOGRAPH +0xC64B 0x8280 #CJK UNIFIED IDEOGRAPH +0xC64C 0x8281 #CJK UNIFIED IDEOGRAPH +0xC64D 0x8283 #CJK UNIFIED IDEOGRAPH +0xC64E 0x8285 #CJK UNIFIED IDEOGRAPH +0xC64F 0x8286 #CJK UNIFIED IDEOGRAPH +0xC650 0x8287 #CJK UNIFIED IDEOGRAPH +0xC651 0x8289 #CJK UNIFIED IDEOGRAPH +0xC652 0x828C #CJK UNIFIED IDEOGRAPH +0xC653 0x8290 #CJK UNIFIED IDEOGRAPH +0xC654 0x8293 #CJK UNIFIED IDEOGRAPH +0xC655 0x8294 #CJK UNIFIED IDEOGRAPH +0xC656 0x8295 #CJK UNIFIED IDEOGRAPH +0xC657 0x8296 #CJK UNIFIED IDEOGRAPH +0xC658 0x829A #CJK UNIFIED IDEOGRAPH +0xC659 0x829B #CJK UNIFIED IDEOGRAPH +0xC65A 0x829E #CJK UNIFIED IDEOGRAPH +0xC65B 0x82A0 #CJK UNIFIED IDEOGRAPH +0xC65C 0x82A2 #CJK UNIFIED IDEOGRAPH +0xC65D 0x82A3 #CJK UNIFIED IDEOGRAPH +0xC65E 0x82A7 #CJK UNIFIED IDEOGRAPH +0xC65F 0x82B2 #CJK UNIFIED IDEOGRAPH +0xC660 0x82B5 #CJK UNIFIED IDEOGRAPH +0xC661 0x82B6 #CJK UNIFIED IDEOGRAPH +0xC662 0x82BA #CJK UNIFIED IDEOGRAPH +0xC663 0x82BB #CJK UNIFIED IDEOGRAPH +0xC664 0x82BC #CJK UNIFIED IDEOGRAPH +0xC665 0x82BF #CJK UNIFIED IDEOGRAPH +0xC666 0x82C0 #CJK UNIFIED IDEOGRAPH +0xC667 0x82C2 #CJK UNIFIED IDEOGRAPH +0xC668 0x82C3 #CJK UNIFIED IDEOGRAPH +0xC669 0x82C5 #CJK UNIFIED IDEOGRAPH +0xC66A 0x82C6 #CJK UNIFIED IDEOGRAPH +0xC66B 0x82C9 #CJK UNIFIED IDEOGRAPH +0xC66C 0x82D0 #CJK UNIFIED IDEOGRAPH +0xC66D 0x82D6 #CJK UNIFIED IDEOGRAPH +0xC66E 0x82D9 #CJK UNIFIED IDEOGRAPH +0xC66F 0x82DA #CJK UNIFIED IDEOGRAPH +0xC670 0x82DD #CJK UNIFIED IDEOGRAPH +0xC671 0x82E2 #CJK UNIFIED IDEOGRAPH +0xC672 0x82E7 #CJK UNIFIED IDEOGRAPH +0xC673 0x82E8 #CJK UNIFIED IDEOGRAPH +0xC674 0x82E9 #CJK UNIFIED IDEOGRAPH +0xC675 0x82EA #CJK UNIFIED IDEOGRAPH +0xC676 0x82EC #CJK UNIFIED IDEOGRAPH +0xC677 0x82ED #CJK UNIFIED IDEOGRAPH +0xC678 0x82EE #CJK UNIFIED IDEOGRAPH +0xC679 0x82F0 #CJK UNIFIED IDEOGRAPH +0xC67A 0x82F2 #CJK UNIFIED IDEOGRAPH +0xC67B 0x82F3 #CJK UNIFIED IDEOGRAPH +0xC67C 0x82F5 #CJK UNIFIED IDEOGRAPH +0xC67D 0x82F6 #CJK UNIFIED IDEOGRAPH +0xC67E 0x82F8 #CJK UNIFIED IDEOGRAPH +0xC680 0x82FA #CJK UNIFIED IDEOGRAPH +0xC681 0x82FC #CJK UNIFIED IDEOGRAPH +0xC682 0x82FD #CJK UNIFIED IDEOGRAPH +0xC683 0x82FE #CJK UNIFIED IDEOGRAPH +0xC684 0x82FF #CJK UNIFIED IDEOGRAPH +0xC685 0x8300 #CJK UNIFIED IDEOGRAPH +0xC686 0x830A #CJK UNIFIED IDEOGRAPH +0xC687 0x830B #CJK UNIFIED IDEOGRAPH +0xC688 0x830D #CJK UNIFIED IDEOGRAPH +0xC689 0x8310 #CJK UNIFIED IDEOGRAPH +0xC68A 0x8312 #CJK UNIFIED IDEOGRAPH +0xC68B 0x8313 #CJK UNIFIED IDEOGRAPH +0xC68C 0x8316 #CJK UNIFIED IDEOGRAPH +0xC68D 0x8318 #CJK UNIFIED IDEOGRAPH +0xC68E 0x8319 #CJK UNIFIED IDEOGRAPH +0xC68F 0x831D #CJK UNIFIED IDEOGRAPH +0xC690 0x831E #CJK UNIFIED IDEOGRAPH +0xC691 0x831F #CJK UNIFIED IDEOGRAPH +0xC692 0x8320 #CJK UNIFIED IDEOGRAPH +0xC693 0x8321 #CJK UNIFIED IDEOGRAPH +0xC694 0x8322 #CJK UNIFIED IDEOGRAPH +0xC695 0x8323 #CJK UNIFIED IDEOGRAPH +0xC696 0x8324 #CJK UNIFIED IDEOGRAPH +0xC697 0x8325 #CJK UNIFIED IDEOGRAPH +0xC698 0x8326 #CJK UNIFIED IDEOGRAPH +0xC699 0x8329 #CJK UNIFIED IDEOGRAPH +0xC69A 0x832A #CJK UNIFIED IDEOGRAPH +0xC69B 0x832E #CJK UNIFIED IDEOGRAPH +0xC69C 0x8330 #CJK UNIFIED IDEOGRAPH +0xC69D 0x8332 #CJK UNIFIED IDEOGRAPH +0xC69E 0x8337 #CJK UNIFIED IDEOGRAPH +0xC69F 0x833B #CJK UNIFIED IDEOGRAPH +0xC6A0 0x833D #CJK UNIFIED IDEOGRAPH +0xC6A1 0x5564 #CJK UNIFIED IDEOGRAPH +0xC6A2 0x813E #CJK UNIFIED IDEOGRAPH +0xC6A3 0x75B2 #CJK UNIFIED IDEOGRAPH +0xC6A4 0x76AE #CJK UNIFIED IDEOGRAPH +0xC6A5 0x5339 #CJK UNIFIED IDEOGRAPH +0xC6A6 0x75DE #CJK UNIFIED IDEOGRAPH +0xC6A7 0x50FB #CJK UNIFIED IDEOGRAPH +0xC6A8 0x5C41 #CJK UNIFIED IDEOGRAPH +0xC6A9 0x8B6C #CJK UNIFIED IDEOGRAPH +0xC6AA 0x7BC7 #CJK UNIFIED IDEOGRAPH +0xC6AB 0x504F #CJK UNIFIED IDEOGRAPH +0xC6AC 0x7247 #CJK UNIFIED IDEOGRAPH +0xC6AD 0x9A97 #CJK UNIFIED IDEOGRAPH +0xC6AE 0x98D8 #CJK UNIFIED IDEOGRAPH +0xC6AF 0x6F02 #CJK UNIFIED IDEOGRAPH +0xC6B0 0x74E2 #CJK UNIFIED IDEOGRAPH +0xC6B1 0x7968 #CJK UNIFIED IDEOGRAPH +0xC6B2 0x6487 #CJK UNIFIED IDEOGRAPH +0xC6B3 0x77A5 #CJK UNIFIED IDEOGRAPH +0xC6B4 0x62FC #CJK UNIFIED IDEOGRAPH +0xC6B5 0x9891 #CJK UNIFIED IDEOGRAPH +0xC6B6 0x8D2B #CJK UNIFIED IDEOGRAPH +0xC6B7 0x54C1 #CJK UNIFIED IDEOGRAPH +0xC6B8 0x8058 #CJK UNIFIED IDEOGRAPH +0xC6B9 0x4E52 #CJK UNIFIED IDEOGRAPH +0xC6BA 0x576A #CJK UNIFIED IDEOGRAPH +0xC6BB 0x82F9 #CJK UNIFIED IDEOGRAPH +0xC6BC 0x840D #CJK UNIFIED IDEOGRAPH +0xC6BD 0x5E73 #CJK UNIFIED IDEOGRAPH +0xC6BE 0x51ED #CJK UNIFIED IDEOGRAPH +0xC6BF 0x74F6 #CJK UNIFIED IDEOGRAPH +0xC6C0 0x8BC4 #CJK UNIFIED IDEOGRAPH +0xC6C1 0x5C4F #CJK UNIFIED IDEOGRAPH +0xC6C2 0x5761 #CJK UNIFIED IDEOGRAPH +0xC6C3 0x6CFC #CJK UNIFIED IDEOGRAPH +0xC6C4 0x9887 #CJK UNIFIED IDEOGRAPH +0xC6C5 0x5A46 #CJK UNIFIED IDEOGRAPH +0xC6C6 0x7834 #CJK UNIFIED IDEOGRAPH +0xC6C7 0x9B44 #CJK UNIFIED IDEOGRAPH +0xC6C8 0x8FEB #CJK UNIFIED IDEOGRAPH +0xC6C9 0x7C95 #CJK UNIFIED IDEOGRAPH +0xC6CA 0x5256 #CJK UNIFIED IDEOGRAPH +0xC6CB 0x6251 #CJK UNIFIED IDEOGRAPH +0xC6CC 0x94FA #CJK UNIFIED IDEOGRAPH +0xC6CD 0x4EC6 #CJK UNIFIED IDEOGRAPH +0xC6CE 0x8386 #CJK UNIFIED IDEOGRAPH +0xC6CF 0x8461 #CJK UNIFIED IDEOGRAPH +0xC6D0 0x83E9 #CJK UNIFIED IDEOGRAPH +0xC6D1 0x84B2 #CJK UNIFIED IDEOGRAPH +0xC6D2 0x57D4 #CJK UNIFIED IDEOGRAPH +0xC6D3 0x6734 #CJK UNIFIED IDEOGRAPH +0xC6D4 0x5703 #CJK UNIFIED IDEOGRAPH +0xC6D5 0x666E #CJK UNIFIED IDEOGRAPH +0xC6D6 0x6D66 #CJK UNIFIED IDEOGRAPH +0xC6D7 0x8C31 #CJK UNIFIED IDEOGRAPH +0xC6D8 0x66DD #CJK UNIFIED IDEOGRAPH +0xC6D9 0x7011 #CJK UNIFIED IDEOGRAPH +0xC6DA 0x671F #CJK UNIFIED IDEOGRAPH +0xC6DB 0x6B3A #CJK UNIFIED IDEOGRAPH +0xC6DC 0x6816 #CJK UNIFIED IDEOGRAPH +0xC6DD 0x621A #CJK UNIFIED IDEOGRAPH +0xC6DE 0x59BB #CJK UNIFIED IDEOGRAPH +0xC6DF 0x4E03 #CJK UNIFIED IDEOGRAPH +0xC6E0 0x51C4 #CJK UNIFIED IDEOGRAPH +0xC6E1 0x6F06 #CJK UNIFIED IDEOGRAPH +0xC6E2 0x67D2 #CJK UNIFIED IDEOGRAPH +0xC6E3 0x6C8F #CJK UNIFIED IDEOGRAPH +0xC6E4 0x5176 #CJK UNIFIED IDEOGRAPH +0xC6E5 0x68CB #CJK UNIFIED IDEOGRAPH +0xC6E6 0x5947 #CJK UNIFIED IDEOGRAPH +0xC6E7 0x6B67 #CJK UNIFIED IDEOGRAPH +0xC6E8 0x7566 #CJK UNIFIED IDEOGRAPH +0xC6E9 0x5D0E #CJK UNIFIED IDEOGRAPH +0xC6EA 0x8110 #CJK UNIFIED IDEOGRAPH +0xC6EB 0x9F50 #CJK UNIFIED IDEOGRAPH +0xC6EC 0x65D7 #CJK UNIFIED IDEOGRAPH +0xC6ED 0x7948 #CJK UNIFIED IDEOGRAPH +0xC6EE 0x7941 #CJK UNIFIED IDEOGRAPH +0xC6EF 0x9A91 #CJK UNIFIED IDEOGRAPH +0xC6F0 0x8D77 #CJK UNIFIED IDEOGRAPH +0xC6F1 0x5C82 #CJK UNIFIED IDEOGRAPH +0xC6F2 0x4E5E #CJK UNIFIED IDEOGRAPH +0xC6F3 0x4F01 #CJK UNIFIED IDEOGRAPH +0xC6F4 0x542F #CJK UNIFIED IDEOGRAPH +0xC6F5 0x5951 #CJK UNIFIED IDEOGRAPH +0xC6F6 0x780C #CJK UNIFIED IDEOGRAPH +0xC6F7 0x5668 #CJK UNIFIED IDEOGRAPH +0xC6F8 0x6C14 #CJK UNIFIED IDEOGRAPH +0xC6F9 0x8FC4 #CJK UNIFIED IDEOGRAPH +0xC6FA 0x5F03 #CJK UNIFIED IDEOGRAPH +0xC6FB 0x6C7D #CJK UNIFIED IDEOGRAPH +0xC6FC 0x6CE3 #CJK UNIFIED IDEOGRAPH +0xC6FD 0x8BAB #CJK UNIFIED IDEOGRAPH +0xC6FE 0x6390 #CJK UNIFIED IDEOGRAPH +0xC740 0x833E #CJK UNIFIED IDEOGRAPH +0xC741 0x833F #CJK UNIFIED IDEOGRAPH +0xC742 0x8341 #CJK UNIFIED IDEOGRAPH +0xC743 0x8342 #CJK UNIFIED IDEOGRAPH +0xC744 0x8344 #CJK UNIFIED IDEOGRAPH +0xC745 0x8345 #CJK UNIFIED IDEOGRAPH +0xC746 0x8348 #CJK UNIFIED IDEOGRAPH +0xC747 0x834A #CJK UNIFIED IDEOGRAPH +0xC748 0x834B #CJK UNIFIED IDEOGRAPH +0xC749 0x834C #CJK UNIFIED IDEOGRAPH +0xC74A 0x834D #CJK UNIFIED IDEOGRAPH +0xC74B 0x834E #CJK UNIFIED IDEOGRAPH +0xC74C 0x8353 #CJK UNIFIED IDEOGRAPH +0xC74D 0x8355 #CJK UNIFIED IDEOGRAPH +0xC74E 0x8356 #CJK UNIFIED IDEOGRAPH +0xC74F 0x8357 #CJK UNIFIED IDEOGRAPH +0xC750 0x8358 #CJK UNIFIED IDEOGRAPH +0xC751 0x8359 #CJK UNIFIED IDEOGRAPH +0xC752 0x835D #CJK UNIFIED IDEOGRAPH +0xC753 0x8362 #CJK UNIFIED IDEOGRAPH +0xC754 0x8370 #CJK UNIFIED IDEOGRAPH +0xC755 0x8371 #CJK UNIFIED IDEOGRAPH +0xC756 0x8372 #CJK UNIFIED IDEOGRAPH +0xC757 0x8373 #CJK UNIFIED IDEOGRAPH +0xC758 0x8374 #CJK UNIFIED IDEOGRAPH +0xC759 0x8375 #CJK UNIFIED IDEOGRAPH +0xC75A 0x8376 #CJK UNIFIED IDEOGRAPH +0xC75B 0x8379 #CJK UNIFIED IDEOGRAPH +0xC75C 0x837A #CJK UNIFIED IDEOGRAPH +0xC75D 0x837E #CJK UNIFIED IDEOGRAPH +0xC75E 0x837F #CJK UNIFIED IDEOGRAPH +0xC75F 0x8380 #CJK UNIFIED IDEOGRAPH +0xC760 0x8381 #CJK UNIFIED IDEOGRAPH +0xC761 0x8382 #CJK UNIFIED IDEOGRAPH +0xC762 0x8383 #CJK UNIFIED IDEOGRAPH +0xC763 0x8384 #CJK UNIFIED IDEOGRAPH +0xC764 0x8387 #CJK UNIFIED IDEOGRAPH +0xC765 0x8388 #CJK UNIFIED IDEOGRAPH +0xC766 0x838A #CJK UNIFIED IDEOGRAPH +0xC767 0x838B #CJK UNIFIED IDEOGRAPH +0xC768 0x838C #CJK UNIFIED IDEOGRAPH +0xC769 0x838D #CJK UNIFIED IDEOGRAPH +0xC76A 0x838F #CJK UNIFIED IDEOGRAPH +0xC76B 0x8390 #CJK UNIFIED IDEOGRAPH +0xC76C 0x8391 #CJK UNIFIED IDEOGRAPH +0xC76D 0x8394 #CJK UNIFIED IDEOGRAPH +0xC76E 0x8395 #CJK UNIFIED IDEOGRAPH +0xC76F 0x8396 #CJK UNIFIED IDEOGRAPH +0xC770 0x8397 #CJK UNIFIED IDEOGRAPH +0xC771 0x8399 #CJK UNIFIED IDEOGRAPH +0xC772 0x839A #CJK UNIFIED IDEOGRAPH +0xC773 0x839D #CJK UNIFIED IDEOGRAPH +0xC774 0x839F #CJK UNIFIED IDEOGRAPH +0xC775 0x83A1 #CJK UNIFIED IDEOGRAPH +0xC776 0x83A2 #CJK UNIFIED IDEOGRAPH +0xC777 0x83A3 #CJK UNIFIED IDEOGRAPH +0xC778 0x83A4 #CJK UNIFIED IDEOGRAPH +0xC779 0x83A5 #CJK UNIFIED IDEOGRAPH +0xC77A 0x83A6 #CJK UNIFIED IDEOGRAPH +0xC77B 0x83A7 #CJK UNIFIED IDEOGRAPH +0xC77C 0x83AC #CJK UNIFIED IDEOGRAPH +0xC77D 0x83AD #CJK UNIFIED IDEOGRAPH +0xC77E 0x83AE #CJK UNIFIED IDEOGRAPH +0xC780 0x83AF #CJK UNIFIED IDEOGRAPH +0xC781 0x83B5 #CJK UNIFIED IDEOGRAPH +0xC782 0x83BB #CJK UNIFIED IDEOGRAPH +0xC783 0x83BE #CJK UNIFIED IDEOGRAPH +0xC784 0x83BF #CJK UNIFIED IDEOGRAPH +0xC785 0x83C2 #CJK UNIFIED IDEOGRAPH +0xC786 0x83C3 #CJK UNIFIED IDEOGRAPH +0xC787 0x83C4 #CJK UNIFIED IDEOGRAPH +0xC788 0x83C6 #CJK UNIFIED IDEOGRAPH +0xC789 0x83C8 #CJK UNIFIED IDEOGRAPH +0xC78A 0x83C9 #CJK UNIFIED IDEOGRAPH +0xC78B 0x83CB #CJK UNIFIED IDEOGRAPH +0xC78C 0x83CD #CJK UNIFIED IDEOGRAPH +0xC78D 0x83CE #CJK UNIFIED IDEOGRAPH +0xC78E 0x83D0 #CJK UNIFIED IDEOGRAPH +0xC78F 0x83D1 #CJK UNIFIED IDEOGRAPH +0xC790 0x83D2 #CJK UNIFIED IDEOGRAPH +0xC791 0x83D3 #CJK UNIFIED IDEOGRAPH +0xC792 0x83D5 #CJK UNIFIED IDEOGRAPH +0xC793 0x83D7 #CJK UNIFIED IDEOGRAPH +0xC794 0x83D9 #CJK UNIFIED IDEOGRAPH +0xC795 0x83DA #CJK UNIFIED IDEOGRAPH +0xC796 0x83DB #CJK UNIFIED IDEOGRAPH +0xC797 0x83DE #CJK UNIFIED IDEOGRAPH +0xC798 0x83E2 #CJK UNIFIED IDEOGRAPH +0xC799 0x83E3 #CJK UNIFIED IDEOGRAPH +0xC79A 0x83E4 #CJK UNIFIED IDEOGRAPH +0xC79B 0x83E6 #CJK UNIFIED IDEOGRAPH +0xC79C 0x83E7 #CJK UNIFIED IDEOGRAPH +0xC79D 0x83E8 #CJK UNIFIED IDEOGRAPH +0xC79E 0x83EB #CJK UNIFIED IDEOGRAPH +0xC79F 0x83EC #CJK UNIFIED IDEOGRAPH +0xC7A0 0x83ED #CJK UNIFIED IDEOGRAPH +0xC7A1 0x6070 #CJK UNIFIED IDEOGRAPH +0xC7A2 0x6D3D #CJK UNIFIED IDEOGRAPH +0xC7A3 0x7275 #CJK UNIFIED IDEOGRAPH +0xC7A4 0x6266 #CJK UNIFIED IDEOGRAPH +0xC7A5 0x948E #CJK UNIFIED IDEOGRAPH +0xC7A6 0x94C5 #CJK UNIFIED IDEOGRAPH +0xC7A7 0x5343 #CJK UNIFIED IDEOGRAPH +0xC7A8 0x8FC1 #CJK UNIFIED IDEOGRAPH +0xC7A9 0x7B7E #CJK UNIFIED IDEOGRAPH +0xC7AA 0x4EDF #CJK UNIFIED IDEOGRAPH +0xC7AB 0x8C26 #CJK UNIFIED IDEOGRAPH +0xC7AC 0x4E7E #CJK UNIFIED IDEOGRAPH +0xC7AD 0x9ED4 #CJK UNIFIED IDEOGRAPH +0xC7AE 0x94B1 #CJK UNIFIED IDEOGRAPH +0xC7AF 0x94B3 #CJK UNIFIED IDEOGRAPH +0xC7B0 0x524D #CJK UNIFIED IDEOGRAPH +0xC7B1 0x6F5C #CJK UNIFIED IDEOGRAPH +0xC7B2 0x9063 #CJK UNIFIED IDEOGRAPH +0xC7B3 0x6D45 #CJK UNIFIED IDEOGRAPH +0xC7B4 0x8C34 #CJK UNIFIED IDEOGRAPH +0xC7B5 0x5811 #CJK UNIFIED IDEOGRAPH +0xC7B6 0x5D4C #CJK UNIFIED IDEOGRAPH +0xC7B7 0x6B20 #CJK UNIFIED IDEOGRAPH +0xC7B8 0x6B49 #CJK UNIFIED IDEOGRAPH +0xC7B9 0x67AA #CJK UNIFIED IDEOGRAPH +0xC7BA 0x545B #CJK UNIFIED IDEOGRAPH +0xC7BB 0x8154 #CJK UNIFIED IDEOGRAPH +0xC7BC 0x7F8C #CJK UNIFIED IDEOGRAPH +0xC7BD 0x5899 #CJK UNIFIED IDEOGRAPH +0xC7BE 0x8537 #CJK UNIFIED IDEOGRAPH +0xC7BF 0x5F3A #CJK UNIFIED IDEOGRAPH +0xC7C0 0x62A2 #CJK UNIFIED IDEOGRAPH +0xC7C1 0x6A47 #CJK UNIFIED IDEOGRAPH +0xC7C2 0x9539 #CJK UNIFIED IDEOGRAPH +0xC7C3 0x6572 #CJK UNIFIED IDEOGRAPH +0xC7C4 0x6084 #CJK UNIFIED IDEOGRAPH +0xC7C5 0x6865 #CJK UNIFIED IDEOGRAPH +0xC7C6 0x77A7 #CJK UNIFIED IDEOGRAPH +0xC7C7 0x4E54 #CJK UNIFIED IDEOGRAPH +0xC7C8 0x4FA8 #CJK UNIFIED IDEOGRAPH +0xC7C9 0x5DE7 #CJK UNIFIED IDEOGRAPH +0xC7CA 0x9798 #CJK UNIFIED IDEOGRAPH +0xC7CB 0x64AC #CJK UNIFIED IDEOGRAPH +0xC7CC 0x7FD8 #CJK UNIFIED IDEOGRAPH +0xC7CD 0x5CED #CJK UNIFIED IDEOGRAPH +0xC7CE 0x4FCF #CJK UNIFIED IDEOGRAPH +0xC7CF 0x7A8D #CJK UNIFIED IDEOGRAPH +0xC7D0 0x5207 #CJK UNIFIED IDEOGRAPH +0xC7D1 0x8304 #CJK UNIFIED IDEOGRAPH +0xC7D2 0x4E14 #CJK UNIFIED IDEOGRAPH +0xC7D3 0x602F #CJK UNIFIED IDEOGRAPH +0xC7D4 0x7A83 #CJK UNIFIED IDEOGRAPH +0xC7D5 0x94A6 #CJK UNIFIED IDEOGRAPH +0xC7D6 0x4FB5 #CJK UNIFIED IDEOGRAPH +0xC7D7 0x4EB2 #CJK UNIFIED IDEOGRAPH +0xC7D8 0x79E6 #CJK UNIFIED IDEOGRAPH +0xC7D9 0x7434 #CJK UNIFIED IDEOGRAPH +0xC7DA 0x52E4 #CJK UNIFIED IDEOGRAPH +0xC7DB 0x82B9 #CJK UNIFIED IDEOGRAPH +0xC7DC 0x64D2 #CJK UNIFIED IDEOGRAPH +0xC7DD 0x79BD #CJK UNIFIED IDEOGRAPH +0xC7DE 0x5BDD #CJK UNIFIED IDEOGRAPH +0xC7DF 0x6C81 #CJK UNIFIED IDEOGRAPH +0xC7E0 0x9752 #CJK UNIFIED IDEOGRAPH +0xC7E1 0x8F7B #CJK UNIFIED IDEOGRAPH +0xC7E2 0x6C22 #CJK UNIFIED IDEOGRAPH +0xC7E3 0x503E #CJK UNIFIED IDEOGRAPH +0xC7E4 0x537F #CJK UNIFIED IDEOGRAPH +0xC7E5 0x6E05 #CJK UNIFIED IDEOGRAPH +0xC7E6 0x64CE #CJK UNIFIED IDEOGRAPH +0xC7E7 0x6674 #CJK UNIFIED IDEOGRAPH +0xC7E8 0x6C30 #CJK UNIFIED IDEOGRAPH +0xC7E9 0x60C5 #CJK UNIFIED IDEOGRAPH +0xC7EA 0x9877 #CJK UNIFIED IDEOGRAPH +0xC7EB 0x8BF7 #CJK UNIFIED IDEOGRAPH +0xC7EC 0x5E86 #CJK UNIFIED IDEOGRAPH +0xC7ED 0x743C #CJK UNIFIED IDEOGRAPH +0xC7EE 0x7A77 #CJK UNIFIED IDEOGRAPH +0xC7EF 0x79CB #CJK UNIFIED IDEOGRAPH +0xC7F0 0x4E18 #CJK UNIFIED IDEOGRAPH +0xC7F1 0x90B1 #CJK UNIFIED IDEOGRAPH +0xC7F2 0x7403 #CJK UNIFIED IDEOGRAPH +0xC7F3 0x6C42 #CJK UNIFIED IDEOGRAPH +0xC7F4 0x56DA #CJK UNIFIED IDEOGRAPH +0xC7F5 0x914B #CJK UNIFIED IDEOGRAPH +0xC7F6 0x6CC5 #CJK UNIFIED IDEOGRAPH +0xC7F7 0x8D8B #CJK UNIFIED IDEOGRAPH +0xC7F8 0x533A #CJK UNIFIED IDEOGRAPH +0xC7F9 0x86C6 #CJK UNIFIED IDEOGRAPH +0xC7FA 0x66F2 #CJK UNIFIED IDEOGRAPH +0xC7FB 0x8EAF #CJK UNIFIED IDEOGRAPH +0xC7FC 0x5C48 #CJK UNIFIED IDEOGRAPH +0xC7FD 0x9A71 #CJK UNIFIED IDEOGRAPH +0xC7FE 0x6E20 #CJK UNIFIED IDEOGRAPH +0xC840 0x83EE #CJK UNIFIED IDEOGRAPH +0xC841 0x83EF #CJK UNIFIED IDEOGRAPH +0xC842 0x83F3 #CJK UNIFIED IDEOGRAPH +0xC843 0x83F4 #CJK UNIFIED IDEOGRAPH +0xC844 0x83F5 #CJK UNIFIED IDEOGRAPH +0xC845 0x83F6 #CJK UNIFIED IDEOGRAPH +0xC846 0x83F7 #CJK UNIFIED IDEOGRAPH +0xC847 0x83FA #CJK UNIFIED IDEOGRAPH +0xC848 0x83FB #CJK UNIFIED IDEOGRAPH +0xC849 0x83FC #CJK UNIFIED IDEOGRAPH +0xC84A 0x83FE #CJK UNIFIED IDEOGRAPH +0xC84B 0x83FF #CJK UNIFIED IDEOGRAPH +0xC84C 0x8400 #CJK UNIFIED IDEOGRAPH +0xC84D 0x8402 #CJK UNIFIED IDEOGRAPH +0xC84E 0x8405 #CJK UNIFIED IDEOGRAPH +0xC84F 0x8407 #CJK UNIFIED IDEOGRAPH +0xC850 0x8408 #CJK UNIFIED IDEOGRAPH +0xC851 0x8409 #CJK UNIFIED IDEOGRAPH +0xC852 0x840A #CJK UNIFIED IDEOGRAPH +0xC853 0x8410 #CJK UNIFIED IDEOGRAPH +0xC854 0x8412 #CJK UNIFIED IDEOGRAPH +0xC855 0x8413 #CJK UNIFIED IDEOGRAPH +0xC856 0x8414 #CJK UNIFIED IDEOGRAPH +0xC857 0x8415 #CJK UNIFIED IDEOGRAPH +0xC858 0x8416 #CJK UNIFIED IDEOGRAPH +0xC859 0x8417 #CJK UNIFIED IDEOGRAPH +0xC85A 0x8419 #CJK UNIFIED IDEOGRAPH +0xC85B 0x841A #CJK UNIFIED IDEOGRAPH +0xC85C 0x841B #CJK UNIFIED IDEOGRAPH +0xC85D 0x841E #CJK UNIFIED IDEOGRAPH +0xC85E 0x841F #CJK UNIFIED IDEOGRAPH +0xC85F 0x8420 #CJK UNIFIED IDEOGRAPH +0xC860 0x8421 #CJK UNIFIED IDEOGRAPH +0xC861 0x8422 #CJK UNIFIED IDEOGRAPH +0xC862 0x8423 #CJK UNIFIED IDEOGRAPH +0xC863 0x8429 #CJK UNIFIED IDEOGRAPH +0xC864 0x842A #CJK UNIFIED IDEOGRAPH +0xC865 0x842B #CJK UNIFIED IDEOGRAPH +0xC866 0x842C #CJK UNIFIED IDEOGRAPH +0xC867 0x842D #CJK UNIFIED IDEOGRAPH +0xC868 0x842E #CJK UNIFIED IDEOGRAPH +0xC869 0x842F #CJK UNIFIED IDEOGRAPH +0xC86A 0x8430 #CJK UNIFIED IDEOGRAPH +0xC86B 0x8432 #CJK UNIFIED IDEOGRAPH +0xC86C 0x8433 #CJK UNIFIED IDEOGRAPH +0xC86D 0x8434 #CJK UNIFIED IDEOGRAPH +0xC86E 0x8435 #CJK UNIFIED IDEOGRAPH +0xC86F 0x8436 #CJK UNIFIED IDEOGRAPH +0xC870 0x8437 #CJK UNIFIED IDEOGRAPH +0xC871 0x8439 #CJK UNIFIED IDEOGRAPH +0xC872 0x843A #CJK UNIFIED IDEOGRAPH +0xC873 0x843B #CJK UNIFIED IDEOGRAPH +0xC874 0x843E #CJK UNIFIED IDEOGRAPH +0xC875 0x843F #CJK UNIFIED IDEOGRAPH +0xC876 0x8440 #CJK UNIFIED IDEOGRAPH +0xC877 0x8441 #CJK UNIFIED IDEOGRAPH +0xC878 0x8442 #CJK UNIFIED IDEOGRAPH +0xC879 0x8443 #CJK UNIFIED IDEOGRAPH +0xC87A 0x8444 #CJK UNIFIED IDEOGRAPH +0xC87B 0x8445 #CJK UNIFIED IDEOGRAPH +0xC87C 0x8447 #CJK UNIFIED IDEOGRAPH +0xC87D 0x8448 #CJK UNIFIED IDEOGRAPH +0xC87E 0x8449 #CJK UNIFIED IDEOGRAPH +0xC880 0x844A #CJK UNIFIED IDEOGRAPH +0xC881 0x844B #CJK UNIFIED IDEOGRAPH +0xC882 0x844C #CJK UNIFIED IDEOGRAPH +0xC883 0x844D #CJK UNIFIED IDEOGRAPH +0xC884 0x844E #CJK UNIFIED IDEOGRAPH +0xC885 0x844F #CJK UNIFIED IDEOGRAPH +0xC886 0x8450 #CJK UNIFIED IDEOGRAPH +0xC887 0x8452 #CJK UNIFIED IDEOGRAPH +0xC888 0x8453 #CJK UNIFIED IDEOGRAPH +0xC889 0x8454 #CJK UNIFIED IDEOGRAPH +0xC88A 0x8455 #CJK UNIFIED IDEOGRAPH +0xC88B 0x8456 #CJK UNIFIED IDEOGRAPH +0xC88C 0x8458 #CJK UNIFIED IDEOGRAPH +0xC88D 0x845D #CJK UNIFIED IDEOGRAPH +0xC88E 0x845E #CJK UNIFIED IDEOGRAPH +0xC88F 0x845F #CJK UNIFIED IDEOGRAPH +0xC890 0x8460 #CJK UNIFIED IDEOGRAPH +0xC891 0x8462 #CJK UNIFIED IDEOGRAPH +0xC892 0x8464 #CJK UNIFIED IDEOGRAPH +0xC893 0x8465 #CJK UNIFIED IDEOGRAPH +0xC894 0x8466 #CJK UNIFIED IDEOGRAPH +0xC895 0x8467 #CJK UNIFIED IDEOGRAPH +0xC896 0x8468 #CJK UNIFIED IDEOGRAPH +0xC897 0x846A #CJK UNIFIED IDEOGRAPH +0xC898 0x846E #CJK UNIFIED IDEOGRAPH +0xC899 0x846F #CJK UNIFIED IDEOGRAPH +0xC89A 0x8470 #CJK UNIFIED IDEOGRAPH +0xC89B 0x8472 #CJK UNIFIED IDEOGRAPH +0xC89C 0x8474 #CJK UNIFIED IDEOGRAPH +0xC89D 0x8477 #CJK UNIFIED IDEOGRAPH +0xC89E 0x8479 #CJK UNIFIED IDEOGRAPH +0xC89F 0x847B #CJK UNIFIED IDEOGRAPH +0xC8A0 0x847C #CJK UNIFIED IDEOGRAPH +0xC8A1 0x53D6 #CJK UNIFIED IDEOGRAPH +0xC8A2 0x5A36 #CJK UNIFIED IDEOGRAPH +0xC8A3 0x9F8B #CJK UNIFIED IDEOGRAPH +0xC8A4 0x8DA3 #CJK UNIFIED IDEOGRAPH +0xC8A5 0x53BB #CJK UNIFIED IDEOGRAPH +0xC8A6 0x5708 #CJK UNIFIED IDEOGRAPH +0xC8A7 0x98A7 #CJK UNIFIED IDEOGRAPH +0xC8A8 0x6743 #CJK UNIFIED IDEOGRAPH +0xC8A9 0x919B #CJK UNIFIED IDEOGRAPH +0xC8AA 0x6CC9 #CJK UNIFIED IDEOGRAPH +0xC8AB 0x5168 #CJK UNIFIED IDEOGRAPH +0xC8AC 0x75CA #CJK UNIFIED IDEOGRAPH +0xC8AD 0x62F3 #CJK UNIFIED IDEOGRAPH +0xC8AE 0x72AC #CJK UNIFIED IDEOGRAPH +0xC8AF 0x5238 #CJK UNIFIED IDEOGRAPH +0xC8B0 0x529D #CJK UNIFIED IDEOGRAPH +0xC8B1 0x7F3A #CJK UNIFIED IDEOGRAPH +0xC8B2 0x7094 #CJK UNIFIED IDEOGRAPH +0xC8B3 0x7638 #CJK UNIFIED IDEOGRAPH +0xC8B4 0x5374 #CJK UNIFIED IDEOGRAPH +0xC8B5 0x9E4A #CJK UNIFIED IDEOGRAPH +0xC8B6 0x69B7 #CJK UNIFIED IDEOGRAPH +0xC8B7 0x786E #CJK UNIFIED IDEOGRAPH +0xC8B8 0x96C0 #CJK UNIFIED IDEOGRAPH +0xC8B9 0x88D9 #CJK UNIFIED IDEOGRAPH +0xC8BA 0x7FA4 #CJK UNIFIED IDEOGRAPH +0xC8BB 0x7136 #CJK UNIFIED IDEOGRAPH +0xC8BC 0x71C3 #CJK UNIFIED IDEOGRAPH +0xC8BD 0x5189 #CJK UNIFIED IDEOGRAPH +0xC8BE 0x67D3 #CJK UNIFIED IDEOGRAPH +0xC8BF 0x74E4 #CJK UNIFIED IDEOGRAPH +0xC8C0 0x58E4 #CJK UNIFIED IDEOGRAPH +0xC8C1 0x6518 #CJK UNIFIED IDEOGRAPH +0xC8C2 0x56B7 #CJK UNIFIED IDEOGRAPH +0xC8C3 0x8BA9 #CJK UNIFIED IDEOGRAPH +0xC8C4 0x9976 #CJK UNIFIED IDEOGRAPH +0xC8C5 0x6270 #CJK UNIFIED IDEOGRAPH +0xC8C6 0x7ED5 #CJK UNIFIED IDEOGRAPH +0xC8C7 0x60F9 #CJK UNIFIED IDEOGRAPH +0xC8C8 0x70ED #CJK UNIFIED IDEOGRAPH +0xC8C9 0x58EC #CJK UNIFIED IDEOGRAPH +0xC8CA 0x4EC1 #CJK UNIFIED IDEOGRAPH +0xC8CB 0x4EBA #CJK UNIFIED IDEOGRAPH +0xC8CC 0x5FCD #CJK UNIFIED IDEOGRAPH +0xC8CD 0x97E7 #CJK UNIFIED IDEOGRAPH +0xC8CE 0x4EFB #CJK UNIFIED IDEOGRAPH +0xC8CF 0x8BA4 #CJK UNIFIED IDEOGRAPH +0xC8D0 0x5203 #CJK UNIFIED IDEOGRAPH +0xC8D1 0x598A #CJK UNIFIED IDEOGRAPH +0xC8D2 0x7EAB #CJK UNIFIED IDEOGRAPH +0xC8D3 0x6254 #CJK UNIFIED IDEOGRAPH +0xC8D4 0x4ECD #CJK UNIFIED IDEOGRAPH +0xC8D5 0x65E5 #CJK UNIFIED IDEOGRAPH +0xC8D6 0x620E #CJK UNIFIED IDEOGRAPH +0xC8D7 0x8338 #CJK UNIFIED IDEOGRAPH +0xC8D8 0x84C9 #CJK UNIFIED IDEOGRAPH +0xC8D9 0x8363 #CJK UNIFIED IDEOGRAPH +0xC8DA 0x878D #CJK UNIFIED IDEOGRAPH +0xC8DB 0x7194 #CJK UNIFIED IDEOGRAPH +0xC8DC 0x6EB6 #CJK UNIFIED IDEOGRAPH +0xC8DD 0x5BB9 #CJK UNIFIED IDEOGRAPH +0xC8DE 0x7ED2 #CJK UNIFIED IDEOGRAPH +0xC8DF 0x5197 #CJK UNIFIED IDEOGRAPH +0xC8E0 0x63C9 #CJK UNIFIED IDEOGRAPH +0xC8E1 0x67D4 #CJK UNIFIED IDEOGRAPH +0xC8E2 0x8089 #CJK UNIFIED IDEOGRAPH +0xC8E3 0x8339 #CJK UNIFIED IDEOGRAPH +0xC8E4 0x8815 #CJK UNIFIED IDEOGRAPH +0xC8E5 0x5112 #CJK UNIFIED IDEOGRAPH +0xC8E6 0x5B7A #CJK UNIFIED IDEOGRAPH +0xC8E7 0x5982 #CJK UNIFIED IDEOGRAPH +0xC8E8 0x8FB1 #CJK UNIFIED IDEOGRAPH +0xC8E9 0x4E73 #CJK UNIFIED IDEOGRAPH +0xC8EA 0x6C5D #CJK UNIFIED IDEOGRAPH +0xC8EB 0x5165 #CJK UNIFIED IDEOGRAPH +0xC8EC 0x8925 #CJK UNIFIED IDEOGRAPH +0xC8ED 0x8F6F #CJK UNIFIED IDEOGRAPH +0xC8EE 0x962E #CJK UNIFIED IDEOGRAPH +0xC8EF 0x854A #CJK UNIFIED IDEOGRAPH +0xC8F0 0x745E #CJK UNIFIED IDEOGRAPH +0xC8F1 0x9510 #CJK UNIFIED IDEOGRAPH +0xC8F2 0x95F0 #CJK UNIFIED IDEOGRAPH +0xC8F3 0x6DA6 #CJK UNIFIED IDEOGRAPH +0xC8F4 0x82E5 #CJK UNIFIED IDEOGRAPH +0xC8F5 0x5F31 #CJK UNIFIED IDEOGRAPH +0xC8F6 0x6492 #CJK UNIFIED IDEOGRAPH +0xC8F7 0x6D12 #CJK UNIFIED IDEOGRAPH +0xC8F8 0x8428 #CJK UNIFIED IDEOGRAPH +0xC8F9 0x816E #CJK UNIFIED IDEOGRAPH +0xC8FA 0x9CC3 #CJK UNIFIED IDEOGRAPH +0xC8FB 0x585E #CJK UNIFIED IDEOGRAPH +0xC8FC 0x8D5B #CJK UNIFIED IDEOGRAPH +0xC8FD 0x4E09 #CJK UNIFIED IDEOGRAPH +0xC8FE 0x53C1 #CJK UNIFIED IDEOGRAPH +0xC940 0x847D #CJK UNIFIED IDEOGRAPH +0xC941 0x847E #CJK UNIFIED IDEOGRAPH +0xC942 0x847F #CJK UNIFIED IDEOGRAPH +0xC943 0x8480 #CJK UNIFIED IDEOGRAPH +0xC944 0x8481 #CJK UNIFIED IDEOGRAPH +0xC945 0x8483 #CJK UNIFIED IDEOGRAPH +0xC946 0x8484 #CJK UNIFIED IDEOGRAPH +0xC947 0x8485 #CJK UNIFIED IDEOGRAPH +0xC948 0x8486 #CJK UNIFIED IDEOGRAPH +0xC949 0x848A #CJK UNIFIED IDEOGRAPH +0xC94A 0x848D #CJK UNIFIED IDEOGRAPH +0xC94B 0x848F #CJK UNIFIED IDEOGRAPH +0xC94C 0x8490 #CJK UNIFIED IDEOGRAPH +0xC94D 0x8491 #CJK UNIFIED IDEOGRAPH +0xC94E 0x8492 #CJK UNIFIED IDEOGRAPH +0xC94F 0x8493 #CJK UNIFIED IDEOGRAPH +0xC950 0x8494 #CJK UNIFIED IDEOGRAPH +0xC951 0x8495 #CJK UNIFIED IDEOGRAPH +0xC952 0x8496 #CJK UNIFIED IDEOGRAPH +0xC953 0x8498 #CJK UNIFIED IDEOGRAPH +0xC954 0x849A #CJK UNIFIED IDEOGRAPH +0xC955 0x849B #CJK UNIFIED IDEOGRAPH +0xC956 0x849D #CJK UNIFIED IDEOGRAPH +0xC957 0x849E #CJK UNIFIED IDEOGRAPH +0xC958 0x849F #CJK UNIFIED IDEOGRAPH +0xC959 0x84A0 #CJK UNIFIED IDEOGRAPH +0xC95A 0x84A2 #CJK UNIFIED IDEOGRAPH +0xC95B 0x84A3 #CJK UNIFIED IDEOGRAPH +0xC95C 0x84A4 #CJK UNIFIED IDEOGRAPH +0xC95D 0x84A5 #CJK UNIFIED IDEOGRAPH +0xC95E 0x84A6 #CJK UNIFIED IDEOGRAPH +0xC95F 0x84A7 #CJK UNIFIED IDEOGRAPH +0xC960 0x84A8 #CJK UNIFIED IDEOGRAPH +0xC961 0x84A9 #CJK UNIFIED IDEOGRAPH +0xC962 0x84AA #CJK UNIFIED IDEOGRAPH +0xC963 0x84AB #CJK UNIFIED IDEOGRAPH +0xC964 0x84AC #CJK UNIFIED IDEOGRAPH +0xC965 0x84AD #CJK UNIFIED IDEOGRAPH +0xC966 0x84AE #CJK UNIFIED IDEOGRAPH +0xC967 0x84B0 #CJK UNIFIED IDEOGRAPH +0xC968 0x84B1 #CJK UNIFIED IDEOGRAPH +0xC969 0x84B3 #CJK UNIFIED IDEOGRAPH +0xC96A 0x84B5 #CJK UNIFIED IDEOGRAPH +0xC96B 0x84B6 #CJK UNIFIED IDEOGRAPH +0xC96C 0x84B7 #CJK UNIFIED IDEOGRAPH +0xC96D 0x84BB #CJK UNIFIED IDEOGRAPH +0xC96E 0x84BC #CJK UNIFIED IDEOGRAPH +0xC96F 0x84BE #CJK UNIFIED IDEOGRAPH +0xC970 0x84C0 #CJK UNIFIED IDEOGRAPH +0xC971 0x84C2 #CJK UNIFIED IDEOGRAPH +0xC972 0x84C3 #CJK UNIFIED IDEOGRAPH +0xC973 0x84C5 #CJK UNIFIED IDEOGRAPH +0xC974 0x84C6 #CJK UNIFIED IDEOGRAPH +0xC975 0x84C7 #CJK UNIFIED IDEOGRAPH +0xC976 0x84C8 #CJK UNIFIED IDEOGRAPH +0xC977 0x84CB #CJK UNIFIED IDEOGRAPH +0xC978 0x84CC #CJK UNIFIED IDEOGRAPH +0xC979 0x84CE #CJK UNIFIED IDEOGRAPH +0xC97A 0x84CF #CJK UNIFIED IDEOGRAPH +0xC97B 0x84D2 #CJK UNIFIED IDEOGRAPH +0xC97C 0x84D4 #CJK UNIFIED IDEOGRAPH +0xC97D 0x84D5 #CJK UNIFIED IDEOGRAPH +0xC97E 0x84D7 #CJK UNIFIED IDEOGRAPH +0xC980 0x84D8 #CJK UNIFIED IDEOGRAPH +0xC981 0x84D9 #CJK UNIFIED IDEOGRAPH +0xC982 0x84DA #CJK UNIFIED IDEOGRAPH +0xC983 0x84DB #CJK UNIFIED IDEOGRAPH +0xC984 0x84DC #CJK UNIFIED IDEOGRAPH +0xC985 0x84DE #CJK UNIFIED IDEOGRAPH +0xC986 0x84E1 #CJK UNIFIED IDEOGRAPH +0xC987 0x84E2 #CJK UNIFIED IDEOGRAPH +0xC988 0x84E4 #CJK UNIFIED IDEOGRAPH +0xC989 0x84E7 #CJK UNIFIED IDEOGRAPH +0xC98A 0x84E8 #CJK UNIFIED IDEOGRAPH +0xC98B 0x84E9 #CJK UNIFIED IDEOGRAPH +0xC98C 0x84EA #CJK UNIFIED IDEOGRAPH +0xC98D 0x84EB #CJK UNIFIED IDEOGRAPH +0xC98E 0x84ED #CJK UNIFIED IDEOGRAPH +0xC98F 0x84EE #CJK UNIFIED IDEOGRAPH +0xC990 0x84EF #CJK UNIFIED IDEOGRAPH +0xC991 0x84F1 #CJK UNIFIED IDEOGRAPH +0xC992 0x84F2 #CJK UNIFIED IDEOGRAPH +0xC993 0x84F3 #CJK UNIFIED IDEOGRAPH +0xC994 0x84F4 #CJK UNIFIED IDEOGRAPH +0xC995 0x84F5 #CJK UNIFIED IDEOGRAPH +0xC996 0x84F6 #CJK UNIFIED IDEOGRAPH +0xC997 0x84F7 #CJK UNIFIED IDEOGRAPH +0xC998 0x84F8 #CJK UNIFIED IDEOGRAPH +0xC999 0x84F9 #CJK UNIFIED IDEOGRAPH +0xC99A 0x84FA #CJK UNIFIED IDEOGRAPH +0xC99B 0x84FB #CJK UNIFIED IDEOGRAPH +0xC99C 0x84FD #CJK UNIFIED IDEOGRAPH +0xC99D 0x84FE #CJK UNIFIED IDEOGRAPH +0xC99E 0x8500 #CJK UNIFIED IDEOGRAPH +0xC99F 0x8501 #CJK UNIFIED IDEOGRAPH +0xC9A0 0x8502 #CJK UNIFIED IDEOGRAPH +0xC9A1 0x4F1E #CJK UNIFIED IDEOGRAPH +0xC9A2 0x6563 #CJK UNIFIED IDEOGRAPH +0xC9A3 0x6851 #CJK UNIFIED IDEOGRAPH +0xC9A4 0x55D3 #CJK UNIFIED IDEOGRAPH +0xC9A5 0x4E27 #CJK UNIFIED IDEOGRAPH +0xC9A6 0x6414 #CJK UNIFIED IDEOGRAPH +0xC9A7 0x9A9A #CJK UNIFIED IDEOGRAPH +0xC9A8 0x626B #CJK UNIFIED IDEOGRAPH +0xC9A9 0x5AC2 #CJK UNIFIED IDEOGRAPH +0xC9AA 0x745F #CJK UNIFIED IDEOGRAPH +0xC9AB 0x8272 #CJK UNIFIED IDEOGRAPH +0xC9AC 0x6DA9 #CJK UNIFIED IDEOGRAPH +0xC9AD 0x68EE #CJK UNIFIED IDEOGRAPH +0xC9AE 0x50E7 #CJK UNIFIED IDEOGRAPH +0xC9AF 0x838E #CJK UNIFIED IDEOGRAPH +0xC9B0 0x7802 #CJK UNIFIED IDEOGRAPH +0xC9B1 0x6740 #CJK UNIFIED IDEOGRAPH +0xC9B2 0x5239 #CJK UNIFIED IDEOGRAPH +0xC9B3 0x6C99 #CJK UNIFIED IDEOGRAPH +0xC9B4 0x7EB1 #CJK UNIFIED IDEOGRAPH +0xC9B5 0x50BB #CJK UNIFIED IDEOGRAPH +0xC9B6 0x5565 #CJK UNIFIED IDEOGRAPH +0xC9B7 0x715E #CJK UNIFIED IDEOGRAPH +0xC9B8 0x7B5B #CJK UNIFIED IDEOGRAPH +0xC9B9 0x6652 #CJK UNIFIED IDEOGRAPH +0xC9BA 0x73CA #CJK UNIFIED IDEOGRAPH +0xC9BB 0x82EB #CJK UNIFIED IDEOGRAPH +0xC9BC 0x6749 #CJK UNIFIED IDEOGRAPH +0xC9BD 0x5C71 #CJK UNIFIED IDEOGRAPH +0xC9BE 0x5220 #CJK UNIFIED IDEOGRAPH +0xC9BF 0x717D #CJK UNIFIED IDEOGRAPH +0xC9C0 0x886B #CJK UNIFIED IDEOGRAPH +0xC9C1 0x95EA #CJK UNIFIED IDEOGRAPH +0xC9C2 0x9655 #CJK UNIFIED IDEOGRAPH +0xC9C3 0x64C5 #CJK UNIFIED IDEOGRAPH +0xC9C4 0x8D61 #CJK UNIFIED IDEOGRAPH +0xC9C5 0x81B3 #CJK UNIFIED IDEOGRAPH +0xC9C6 0x5584 #CJK UNIFIED IDEOGRAPH +0xC9C7 0x6C55 #CJK UNIFIED IDEOGRAPH +0xC9C8 0x6247 #CJK UNIFIED IDEOGRAPH +0xC9C9 0x7F2E #CJK UNIFIED IDEOGRAPH +0xC9CA 0x5892 #CJK UNIFIED IDEOGRAPH +0xC9CB 0x4F24 #CJK UNIFIED IDEOGRAPH +0xC9CC 0x5546 #CJK UNIFIED IDEOGRAPH +0xC9CD 0x8D4F #CJK UNIFIED IDEOGRAPH +0xC9CE 0x664C #CJK UNIFIED IDEOGRAPH +0xC9CF 0x4E0A #CJK UNIFIED IDEOGRAPH +0xC9D0 0x5C1A #CJK UNIFIED IDEOGRAPH +0xC9D1 0x88F3 #CJK UNIFIED IDEOGRAPH +0xC9D2 0x68A2 #CJK UNIFIED IDEOGRAPH +0xC9D3 0x634E #CJK UNIFIED IDEOGRAPH +0xC9D4 0x7A0D #CJK UNIFIED IDEOGRAPH +0xC9D5 0x70E7 #CJK UNIFIED IDEOGRAPH +0xC9D6 0x828D #CJK UNIFIED IDEOGRAPH +0xC9D7 0x52FA #CJK UNIFIED IDEOGRAPH +0xC9D8 0x97F6 #CJK UNIFIED IDEOGRAPH +0xC9D9 0x5C11 #CJK UNIFIED IDEOGRAPH +0xC9DA 0x54E8 #CJK UNIFIED IDEOGRAPH +0xC9DB 0x90B5 #CJK UNIFIED IDEOGRAPH +0xC9DC 0x7ECD #CJK UNIFIED IDEOGRAPH +0xC9DD 0x5962 #CJK UNIFIED IDEOGRAPH +0xC9DE 0x8D4A #CJK UNIFIED IDEOGRAPH +0xC9DF 0x86C7 #CJK UNIFIED IDEOGRAPH +0xC9E0 0x820C #CJK UNIFIED IDEOGRAPH +0xC9E1 0x820D #CJK UNIFIED IDEOGRAPH +0xC9E2 0x8D66 #CJK UNIFIED IDEOGRAPH +0xC9E3 0x6444 #CJK UNIFIED IDEOGRAPH +0xC9E4 0x5C04 #CJK UNIFIED IDEOGRAPH +0xC9E5 0x6151 #CJK UNIFIED IDEOGRAPH +0xC9E6 0x6D89 #CJK UNIFIED IDEOGRAPH +0xC9E7 0x793E #CJK UNIFIED IDEOGRAPH +0xC9E8 0x8BBE #CJK UNIFIED IDEOGRAPH +0xC9E9 0x7837 #CJK UNIFIED IDEOGRAPH +0xC9EA 0x7533 #CJK UNIFIED IDEOGRAPH +0xC9EB 0x547B #CJK UNIFIED IDEOGRAPH +0xC9EC 0x4F38 #CJK UNIFIED IDEOGRAPH +0xC9ED 0x8EAB #CJK UNIFIED IDEOGRAPH +0xC9EE 0x6DF1 #CJK UNIFIED IDEOGRAPH +0xC9EF 0x5A20 #CJK UNIFIED IDEOGRAPH +0xC9F0 0x7EC5 #CJK UNIFIED IDEOGRAPH +0xC9F1 0x795E #CJK UNIFIED IDEOGRAPH +0xC9F2 0x6C88 #CJK UNIFIED IDEOGRAPH +0xC9F3 0x5BA1 #CJK UNIFIED IDEOGRAPH +0xC9F4 0x5A76 #CJK UNIFIED IDEOGRAPH +0xC9F5 0x751A #CJK UNIFIED IDEOGRAPH +0xC9F6 0x80BE #CJK UNIFIED IDEOGRAPH +0xC9F7 0x614E #CJK UNIFIED IDEOGRAPH +0xC9F8 0x6E17 #CJK UNIFIED IDEOGRAPH +0xC9F9 0x58F0 #CJK UNIFIED IDEOGRAPH +0xC9FA 0x751F #CJK UNIFIED IDEOGRAPH +0xC9FB 0x7525 #CJK UNIFIED IDEOGRAPH +0xC9FC 0x7272 #CJK UNIFIED IDEOGRAPH +0xC9FD 0x5347 #CJK UNIFIED IDEOGRAPH +0xC9FE 0x7EF3 #CJK UNIFIED IDEOGRAPH +0xCA40 0x8503 #CJK UNIFIED IDEOGRAPH +0xCA41 0x8504 #CJK UNIFIED IDEOGRAPH +0xCA42 0x8505 #CJK UNIFIED IDEOGRAPH +0xCA43 0x8506 #CJK UNIFIED IDEOGRAPH +0xCA44 0x8507 #CJK UNIFIED IDEOGRAPH +0xCA45 0x8508 #CJK UNIFIED IDEOGRAPH +0xCA46 0x8509 #CJK UNIFIED IDEOGRAPH +0xCA47 0x850A #CJK UNIFIED IDEOGRAPH +0xCA48 0x850B #CJK UNIFIED IDEOGRAPH +0xCA49 0x850D #CJK UNIFIED IDEOGRAPH +0xCA4A 0x850E #CJK UNIFIED IDEOGRAPH +0xCA4B 0x850F #CJK UNIFIED IDEOGRAPH +0xCA4C 0x8510 #CJK UNIFIED IDEOGRAPH +0xCA4D 0x8512 #CJK UNIFIED IDEOGRAPH +0xCA4E 0x8514 #CJK UNIFIED IDEOGRAPH +0xCA4F 0x8515 #CJK UNIFIED IDEOGRAPH +0xCA50 0x8516 #CJK UNIFIED IDEOGRAPH +0xCA51 0x8518 #CJK UNIFIED IDEOGRAPH +0xCA52 0x8519 #CJK UNIFIED IDEOGRAPH +0xCA53 0x851B #CJK UNIFIED IDEOGRAPH +0xCA54 0x851C #CJK UNIFIED IDEOGRAPH +0xCA55 0x851D #CJK UNIFIED IDEOGRAPH +0xCA56 0x851E #CJK UNIFIED IDEOGRAPH +0xCA57 0x8520 #CJK UNIFIED IDEOGRAPH +0xCA58 0x8522 #CJK UNIFIED IDEOGRAPH +0xCA59 0x8523 #CJK UNIFIED IDEOGRAPH +0xCA5A 0x8524 #CJK UNIFIED IDEOGRAPH +0xCA5B 0x8525 #CJK UNIFIED IDEOGRAPH +0xCA5C 0x8526 #CJK UNIFIED IDEOGRAPH +0xCA5D 0x8527 #CJK UNIFIED IDEOGRAPH +0xCA5E 0x8528 #CJK UNIFIED IDEOGRAPH +0xCA5F 0x8529 #CJK UNIFIED IDEOGRAPH +0xCA60 0x852A #CJK UNIFIED IDEOGRAPH +0xCA61 0x852D #CJK UNIFIED IDEOGRAPH +0xCA62 0x852E #CJK UNIFIED IDEOGRAPH +0xCA63 0x852F #CJK UNIFIED IDEOGRAPH +0xCA64 0x8530 #CJK UNIFIED IDEOGRAPH +0xCA65 0x8531 #CJK UNIFIED IDEOGRAPH +0xCA66 0x8532 #CJK UNIFIED IDEOGRAPH +0xCA67 0x8533 #CJK UNIFIED IDEOGRAPH +0xCA68 0x8534 #CJK UNIFIED IDEOGRAPH +0xCA69 0x8535 #CJK UNIFIED IDEOGRAPH +0xCA6A 0x8536 #CJK UNIFIED IDEOGRAPH +0xCA6B 0x853E #CJK UNIFIED IDEOGRAPH +0xCA6C 0x853F #CJK UNIFIED IDEOGRAPH +0xCA6D 0x8540 #CJK UNIFIED IDEOGRAPH +0xCA6E 0x8541 #CJK UNIFIED IDEOGRAPH +0xCA6F 0x8542 #CJK UNIFIED IDEOGRAPH +0xCA70 0x8544 #CJK UNIFIED IDEOGRAPH +0xCA71 0x8545 #CJK UNIFIED IDEOGRAPH +0xCA72 0x8546 #CJK UNIFIED IDEOGRAPH +0xCA73 0x8547 #CJK UNIFIED IDEOGRAPH +0xCA74 0x854B #CJK UNIFIED IDEOGRAPH +0xCA75 0x854C #CJK UNIFIED IDEOGRAPH +0xCA76 0x854D #CJK UNIFIED IDEOGRAPH +0xCA77 0x854E #CJK UNIFIED IDEOGRAPH +0xCA78 0x854F #CJK UNIFIED IDEOGRAPH +0xCA79 0x8550 #CJK UNIFIED IDEOGRAPH +0xCA7A 0x8551 #CJK UNIFIED IDEOGRAPH +0xCA7B 0x8552 #CJK UNIFIED IDEOGRAPH +0xCA7C 0x8553 #CJK UNIFIED IDEOGRAPH +0xCA7D 0x8554 #CJK UNIFIED IDEOGRAPH +0xCA7E 0x8555 #CJK UNIFIED IDEOGRAPH +0xCA80 0x8557 #CJK UNIFIED IDEOGRAPH +0xCA81 0x8558 #CJK UNIFIED IDEOGRAPH +0xCA82 0x855A #CJK UNIFIED IDEOGRAPH +0xCA83 0x855B #CJK UNIFIED IDEOGRAPH +0xCA84 0x855C #CJK UNIFIED IDEOGRAPH +0xCA85 0x855D #CJK UNIFIED IDEOGRAPH +0xCA86 0x855F #CJK UNIFIED IDEOGRAPH +0xCA87 0x8560 #CJK UNIFIED IDEOGRAPH +0xCA88 0x8561 #CJK UNIFIED IDEOGRAPH +0xCA89 0x8562 #CJK UNIFIED IDEOGRAPH +0xCA8A 0x8563 #CJK UNIFIED IDEOGRAPH +0xCA8B 0x8565 #CJK UNIFIED IDEOGRAPH +0xCA8C 0x8566 #CJK UNIFIED IDEOGRAPH +0xCA8D 0x8567 #CJK UNIFIED IDEOGRAPH +0xCA8E 0x8569 #CJK UNIFIED IDEOGRAPH +0xCA8F 0x856A #CJK UNIFIED IDEOGRAPH +0xCA90 0x856B #CJK UNIFIED IDEOGRAPH +0xCA91 0x856C #CJK UNIFIED IDEOGRAPH +0xCA92 0x856D #CJK UNIFIED IDEOGRAPH +0xCA93 0x856E #CJK UNIFIED IDEOGRAPH +0xCA94 0x856F #CJK UNIFIED IDEOGRAPH +0xCA95 0x8570 #CJK UNIFIED IDEOGRAPH +0xCA96 0x8571 #CJK UNIFIED IDEOGRAPH +0xCA97 0x8573 #CJK UNIFIED IDEOGRAPH +0xCA98 0x8575 #CJK UNIFIED IDEOGRAPH +0xCA99 0x8576 #CJK UNIFIED IDEOGRAPH +0xCA9A 0x8577 #CJK UNIFIED IDEOGRAPH +0xCA9B 0x8578 #CJK UNIFIED IDEOGRAPH +0xCA9C 0x857C #CJK UNIFIED IDEOGRAPH +0xCA9D 0x857D #CJK UNIFIED IDEOGRAPH +0xCA9E 0x857F #CJK UNIFIED IDEOGRAPH +0xCA9F 0x8580 #CJK UNIFIED IDEOGRAPH +0xCAA0 0x8581 #CJK UNIFIED IDEOGRAPH +0xCAA1 0x7701 #CJK UNIFIED IDEOGRAPH +0xCAA2 0x76DB #CJK UNIFIED IDEOGRAPH +0xCAA3 0x5269 #CJK UNIFIED IDEOGRAPH +0xCAA4 0x80DC #CJK UNIFIED IDEOGRAPH +0xCAA5 0x5723 #CJK UNIFIED IDEOGRAPH +0xCAA6 0x5E08 #CJK UNIFIED IDEOGRAPH +0xCAA7 0x5931 #CJK UNIFIED IDEOGRAPH +0xCAA8 0x72EE #CJK UNIFIED IDEOGRAPH +0xCAA9 0x65BD #CJK UNIFIED IDEOGRAPH +0xCAAA 0x6E7F #CJK UNIFIED IDEOGRAPH +0xCAAB 0x8BD7 #CJK UNIFIED IDEOGRAPH +0xCAAC 0x5C38 #CJK UNIFIED IDEOGRAPH +0xCAAD 0x8671 #CJK UNIFIED IDEOGRAPH +0xCAAE 0x5341 #CJK UNIFIED IDEOGRAPH +0xCAAF 0x77F3 #CJK UNIFIED IDEOGRAPH +0xCAB0 0x62FE #CJK UNIFIED IDEOGRAPH +0xCAB1 0x65F6 #CJK UNIFIED IDEOGRAPH +0xCAB2 0x4EC0 #CJK UNIFIED IDEOGRAPH +0xCAB3 0x98DF #CJK UNIFIED IDEOGRAPH +0xCAB4 0x8680 #CJK UNIFIED IDEOGRAPH +0xCAB5 0x5B9E #CJK UNIFIED IDEOGRAPH +0xCAB6 0x8BC6 #CJK UNIFIED IDEOGRAPH +0xCAB7 0x53F2 #CJK UNIFIED IDEOGRAPH +0xCAB8 0x77E2 #CJK UNIFIED IDEOGRAPH +0xCAB9 0x4F7F #CJK UNIFIED IDEOGRAPH +0xCABA 0x5C4E #CJK UNIFIED IDEOGRAPH +0xCABB 0x9A76 #CJK UNIFIED IDEOGRAPH +0xCABC 0x59CB #CJK UNIFIED IDEOGRAPH +0xCABD 0x5F0F #CJK UNIFIED IDEOGRAPH +0xCABE 0x793A #CJK UNIFIED IDEOGRAPH +0xCABF 0x58EB #CJK UNIFIED IDEOGRAPH +0xCAC0 0x4E16 #CJK UNIFIED IDEOGRAPH +0xCAC1 0x67FF #CJK UNIFIED IDEOGRAPH +0xCAC2 0x4E8B #CJK UNIFIED IDEOGRAPH +0xCAC3 0x62ED #CJK UNIFIED IDEOGRAPH +0xCAC4 0x8A93 #CJK UNIFIED IDEOGRAPH +0xCAC5 0x901D #CJK UNIFIED IDEOGRAPH +0xCAC6 0x52BF #CJK UNIFIED IDEOGRAPH +0xCAC7 0x662F #CJK UNIFIED IDEOGRAPH +0xCAC8 0x55DC #CJK UNIFIED IDEOGRAPH +0xCAC9 0x566C #CJK UNIFIED IDEOGRAPH +0xCACA 0x9002 #CJK UNIFIED IDEOGRAPH +0xCACB 0x4ED5 #CJK UNIFIED IDEOGRAPH +0xCACC 0x4F8D #CJK UNIFIED IDEOGRAPH +0xCACD 0x91CA #CJK UNIFIED IDEOGRAPH +0xCACE 0x9970 #CJK UNIFIED IDEOGRAPH +0xCACF 0x6C0F #CJK UNIFIED IDEOGRAPH +0xCAD0 0x5E02 #CJK UNIFIED IDEOGRAPH +0xCAD1 0x6043 #CJK UNIFIED IDEOGRAPH +0xCAD2 0x5BA4 #CJK UNIFIED IDEOGRAPH +0xCAD3 0x89C6 #CJK UNIFIED IDEOGRAPH +0xCAD4 0x8BD5 #CJK UNIFIED IDEOGRAPH +0xCAD5 0x6536 #CJK UNIFIED IDEOGRAPH +0xCAD6 0x624B #CJK UNIFIED IDEOGRAPH +0xCAD7 0x9996 #CJK UNIFIED IDEOGRAPH +0xCAD8 0x5B88 #CJK UNIFIED IDEOGRAPH +0xCAD9 0x5BFF #CJK UNIFIED IDEOGRAPH +0xCADA 0x6388 #CJK UNIFIED IDEOGRAPH +0xCADB 0x552E #CJK UNIFIED IDEOGRAPH +0xCADC 0x53D7 #CJK UNIFIED IDEOGRAPH +0xCADD 0x7626 #CJK UNIFIED IDEOGRAPH +0xCADE 0x517D #CJK UNIFIED IDEOGRAPH +0xCADF 0x852C #CJK UNIFIED IDEOGRAPH +0xCAE0 0x67A2 #CJK UNIFIED IDEOGRAPH +0xCAE1 0x68B3 #CJK UNIFIED IDEOGRAPH +0xCAE2 0x6B8A #CJK UNIFIED IDEOGRAPH +0xCAE3 0x6292 #CJK UNIFIED IDEOGRAPH +0xCAE4 0x8F93 #CJK UNIFIED IDEOGRAPH +0xCAE5 0x53D4 #CJK UNIFIED IDEOGRAPH +0xCAE6 0x8212 #CJK UNIFIED IDEOGRAPH +0xCAE7 0x6DD1 #CJK UNIFIED IDEOGRAPH +0xCAE8 0x758F #CJK UNIFIED IDEOGRAPH +0xCAE9 0x4E66 #CJK UNIFIED IDEOGRAPH +0xCAEA 0x8D4E #CJK UNIFIED IDEOGRAPH +0xCAEB 0x5B70 #CJK UNIFIED IDEOGRAPH +0xCAEC 0x719F #CJK UNIFIED IDEOGRAPH +0xCAED 0x85AF #CJK UNIFIED IDEOGRAPH +0xCAEE 0x6691 #CJK UNIFIED IDEOGRAPH +0xCAEF 0x66D9 #CJK UNIFIED IDEOGRAPH +0xCAF0 0x7F72 #CJK UNIFIED IDEOGRAPH +0xCAF1 0x8700 #CJK UNIFIED IDEOGRAPH +0xCAF2 0x9ECD #CJK UNIFIED IDEOGRAPH +0xCAF3 0x9F20 #CJK UNIFIED IDEOGRAPH +0xCAF4 0x5C5E #CJK UNIFIED IDEOGRAPH +0xCAF5 0x672F #CJK UNIFIED IDEOGRAPH +0xCAF6 0x8FF0 #CJK UNIFIED IDEOGRAPH +0xCAF7 0x6811 #CJK UNIFIED IDEOGRAPH +0xCAF8 0x675F #CJK UNIFIED IDEOGRAPH +0xCAF9 0x620D #CJK UNIFIED IDEOGRAPH +0xCAFA 0x7AD6 #CJK UNIFIED IDEOGRAPH +0xCAFB 0x5885 #CJK UNIFIED IDEOGRAPH +0xCAFC 0x5EB6 #CJK UNIFIED IDEOGRAPH +0xCAFD 0x6570 #CJK UNIFIED IDEOGRAPH +0xCAFE 0x6F31 #CJK UNIFIED IDEOGRAPH +0xCB40 0x8582 #CJK UNIFIED IDEOGRAPH +0xCB41 0x8583 #CJK UNIFIED IDEOGRAPH +0xCB42 0x8586 #CJK UNIFIED IDEOGRAPH +0xCB43 0x8588 #CJK UNIFIED IDEOGRAPH +0xCB44 0x8589 #CJK UNIFIED IDEOGRAPH +0xCB45 0x858A #CJK UNIFIED IDEOGRAPH +0xCB46 0x858B #CJK UNIFIED IDEOGRAPH +0xCB47 0x858C #CJK UNIFIED IDEOGRAPH +0xCB48 0x858D #CJK UNIFIED IDEOGRAPH +0xCB49 0x858E #CJK UNIFIED IDEOGRAPH +0xCB4A 0x8590 #CJK UNIFIED IDEOGRAPH +0xCB4B 0x8591 #CJK UNIFIED IDEOGRAPH +0xCB4C 0x8592 #CJK UNIFIED IDEOGRAPH +0xCB4D 0x8593 #CJK UNIFIED IDEOGRAPH +0xCB4E 0x8594 #CJK UNIFIED IDEOGRAPH +0xCB4F 0x8595 #CJK UNIFIED IDEOGRAPH +0xCB50 0x8596 #CJK UNIFIED IDEOGRAPH +0xCB51 0x8597 #CJK UNIFIED IDEOGRAPH +0xCB52 0x8598 #CJK UNIFIED IDEOGRAPH +0xCB53 0x8599 #CJK UNIFIED IDEOGRAPH +0xCB54 0x859A #CJK UNIFIED IDEOGRAPH +0xCB55 0x859D #CJK UNIFIED IDEOGRAPH +0xCB56 0x859E #CJK UNIFIED IDEOGRAPH +0xCB57 0x859F #CJK UNIFIED IDEOGRAPH +0xCB58 0x85A0 #CJK UNIFIED IDEOGRAPH +0xCB59 0x85A1 #CJK UNIFIED IDEOGRAPH +0xCB5A 0x85A2 #CJK UNIFIED IDEOGRAPH +0xCB5B 0x85A3 #CJK UNIFIED IDEOGRAPH +0xCB5C 0x85A5 #CJK UNIFIED IDEOGRAPH +0xCB5D 0x85A6 #CJK UNIFIED IDEOGRAPH +0xCB5E 0x85A7 #CJK UNIFIED IDEOGRAPH +0xCB5F 0x85A9 #CJK UNIFIED IDEOGRAPH +0xCB60 0x85AB #CJK UNIFIED IDEOGRAPH +0xCB61 0x85AC #CJK UNIFIED IDEOGRAPH +0xCB62 0x85AD #CJK UNIFIED IDEOGRAPH +0xCB63 0x85B1 #CJK UNIFIED IDEOGRAPH +0xCB64 0x85B2 #CJK UNIFIED IDEOGRAPH +0xCB65 0x85B3 #CJK UNIFIED IDEOGRAPH +0xCB66 0x85B4 #CJK UNIFIED IDEOGRAPH +0xCB67 0x85B5 #CJK UNIFIED IDEOGRAPH +0xCB68 0x85B6 #CJK UNIFIED IDEOGRAPH +0xCB69 0x85B8 #CJK UNIFIED IDEOGRAPH +0xCB6A 0x85BA #CJK UNIFIED IDEOGRAPH +0xCB6B 0x85BB #CJK UNIFIED IDEOGRAPH +0xCB6C 0x85BC #CJK UNIFIED IDEOGRAPH +0xCB6D 0x85BD #CJK UNIFIED IDEOGRAPH +0xCB6E 0x85BE #CJK UNIFIED IDEOGRAPH +0xCB6F 0x85BF #CJK UNIFIED IDEOGRAPH +0xCB70 0x85C0 #CJK UNIFIED IDEOGRAPH +0xCB71 0x85C2 #CJK UNIFIED IDEOGRAPH +0xCB72 0x85C3 #CJK UNIFIED IDEOGRAPH +0xCB73 0x85C4 #CJK UNIFIED IDEOGRAPH +0xCB74 0x85C5 #CJK UNIFIED IDEOGRAPH +0xCB75 0x85C6 #CJK UNIFIED IDEOGRAPH +0xCB76 0x85C7 #CJK UNIFIED IDEOGRAPH +0xCB77 0x85C8 #CJK UNIFIED IDEOGRAPH +0xCB78 0x85CA #CJK UNIFIED IDEOGRAPH +0xCB79 0x85CB #CJK UNIFIED IDEOGRAPH +0xCB7A 0x85CC #CJK UNIFIED IDEOGRAPH +0xCB7B 0x85CD #CJK UNIFIED IDEOGRAPH +0xCB7C 0x85CE #CJK UNIFIED IDEOGRAPH +0xCB7D 0x85D1 #CJK UNIFIED IDEOGRAPH +0xCB7E 0x85D2 #CJK UNIFIED IDEOGRAPH +0xCB80 0x85D4 #CJK UNIFIED IDEOGRAPH +0xCB81 0x85D6 #CJK UNIFIED IDEOGRAPH +0xCB82 0x85D7 #CJK UNIFIED IDEOGRAPH +0xCB83 0x85D8 #CJK UNIFIED IDEOGRAPH +0xCB84 0x85D9 #CJK UNIFIED IDEOGRAPH +0xCB85 0x85DA #CJK UNIFIED IDEOGRAPH +0xCB86 0x85DB #CJK UNIFIED IDEOGRAPH +0xCB87 0x85DD #CJK UNIFIED IDEOGRAPH +0xCB88 0x85DE #CJK UNIFIED IDEOGRAPH +0xCB89 0x85DF #CJK UNIFIED IDEOGRAPH +0xCB8A 0x85E0 #CJK UNIFIED IDEOGRAPH +0xCB8B 0x85E1 #CJK UNIFIED IDEOGRAPH +0xCB8C 0x85E2 #CJK UNIFIED IDEOGRAPH +0xCB8D 0x85E3 #CJK UNIFIED IDEOGRAPH +0xCB8E 0x85E5 #CJK UNIFIED IDEOGRAPH +0xCB8F 0x85E6 #CJK UNIFIED IDEOGRAPH +0xCB90 0x85E7 #CJK UNIFIED IDEOGRAPH +0xCB91 0x85E8 #CJK UNIFIED IDEOGRAPH +0xCB92 0x85EA #CJK UNIFIED IDEOGRAPH +0xCB93 0x85EB #CJK UNIFIED IDEOGRAPH +0xCB94 0x85EC #CJK UNIFIED IDEOGRAPH +0xCB95 0x85ED #CJK UNIFIED IDEOGRAPH +0xCB96 0x85EE #CJK UNIFIED IDEOGRAPH +0xCB97 0x85EF #CJK UNIFIED IDEOGRAPH +0xCB98 0x85F0 #CJK UNIFIED IDEOGRAPH +0xCB99 0x85F1 #CJK UNIFIED IDEOGRAPH +0xCB9A 0x85F2 #CJK UNIFIED IDEOGRAPH +0xCB9B 0x85F3 #CJK UNIFIED IDEOGRAPH +0xCB9C 0x85F4 #CJK UNIFIED IDEOGRAPH +0xCB9D 0x85F5 #CJK UNIFIED IDEOGRAPH +0xCB9E 0x85F6 #CJK UNIFIED IDEOGRAPH +0xCB9F 0x85F7 #CJK UNIFIED IDEOGRAPH +0xCBA0 0x85F8 #CJK UNIFIED IDEOGRAPH +0xCBA1 0x6055 #CJK UNIFIED IDEOGRAPH +0xCBA2 0x5237 #CJK UNIFIED IDEOGRAPH +0xCBA3 0x800D #CJK UNIFIED IDEOGRAPH +0xCBA4 0x6454 #CJK UNIFIED IDEOGRAPH +0xCBA5 0x8870 #CJK UNIFIED IDEOGRAPH +0xCBA6 0x7529 #CJK UNIFIED IDEOGRAPH +0xCBA7 0x5E05 #CJK UNIFIED IDEOGRAPH +0xCBA8 0x6813 #CJK UNIFIED IDEOGRAPH +0xCBA9 0x62F4 #CJK UNIFIED IDEOGRAPH +0xCBAA 0x971C #CJK UNIFIED IDEOGRAPH +0xCBAB 0x53CC #CJK UNIFIED IDEOGRAPH +0xCBAC 0x723D #CJK UNIFIED IDEOGRAPH +0xCBAD 0x8C01 #CJK UNIFIED IDEOGRAPH +0xCBAE 0x6C34 #CJK UNIFIED IDEOGRAPH +0xCBAF 0x7761 #CJK UNIFIED IDEOGRAPH +0xCBB0 0x7A0E #CJK UNIFIED IDEOGRAPH +0xCBB1 0x542E #CJK UNIFIED IDEOGRAPH +0xCBB2 0x77AC #CJK UNIFIED IDEOGRAPH +0xCBB3 0x987A #CJK UNIFIED IDEOGRAPH +0xCBB4 0x821C #CJK UNIFIED IDEOGRAPH +0xCBB5 0x8BF4 #CJK UNIFIED IDEOGRAPH +0xCBB6 0x7855 #CJK UNIFIED IDEOGRAPH +0xCBB7 0x6714 #CJK UNIFIED IDEOGRAPH +0xCBB8 0x70C1 #CJK UNIFIED IDEOGRAPH +0xCBB9 0x65AF #CJK UNIFIED IDEOGRAPH +0xCBBA 0x6495 #CJK UNIFIED IDEOGRAPH +0xCBBB 0x5636 #CJK UNIFIED IDEOGRAPH +0xCBBC 0x601D #CJK UNIFIED IDEOGRAPH +0xCBBD 0x79C1 #CJK UNIFIED IDEOGRAPH +0xCBBE 0x53F8 #CJK UNIFIED IDEOGRAPH +0xCBBF 0x4E1D #CJK UNIFIED IDEOGRAPH +0xCBC0 0x6B7B #CJK UNIFIED IDEOGRAPH +0xCBC1 0x8086 #CJK UNIFIED IDEOGRAPH +0xCBC2 0x5BFA #CJK UNIFIED IDEOGRAPH +0xCBC3 0x55E3 #CJK UNIFIED IDEOGRAPH +0xCBC4 0x56DB #CJK UNIFIED IDEOGRAPH +0xCBC5 0x4F3A #CJK UNIFIED IDEOGRAPH +0xCBC6 0x4F3C #CJK UNIFIED IDEOGRAPH +0xCBC7 0x9972 #CJK UNIFIED IDEOGRAPH +0xCBC8 0x5DF3 #CJK UNIFIED IDEOGRAPH +0xCBC9 0x677E #CJK UNIFIED IDEOGRAPH +0xCBCA 0x8038 #CJK UNIFIED IDEOGRAPH +0xCBCB 0x6002 #CJK UNIFIED IDEOGRAPH +0xCBCC 0x9882 #CJK UNIFIED IDEOGRAPH +0xCBCD 0x9001 #CJK UNIFIED IDEOGRAPH +0xCBCE 0x5B8B #CJK UNIFIED IDEOGRAPH +0xCBCF 0x8BBC #CJK UNIFIED IDEOGRAPH +0xCBD0 0x8BF5 #CJK UNIFIED IDEOGRAPH +0xCBD1 0x641C #CJK UNIFIED IDEOGRAPH +0xCBD2 0x8258 #CJK UNIFIED IDEOGRAPH +0xCBD3 0x64DE #CJK UNIFIED IDEOGRAPH +0xCBD4 0x55FD #CJK UNIFIED IDEOGRAPH +0xCBD5 0x82CF #CJK UNIFIED IDEOGRAPH +0xCBD6 0x9165 #CJK UNIFIED IDEOGRAPH +0xCBD7 0x4FD7 #CJK UNIFIED IDEOGRAPH +0xCBD8 0x7D20 #CJK UNIFIED IDEOGRAPH +0xCBD9 0x901F #CJK UNIFIED IDEOGRAPH +0xCBDA 0x7C9F #CJK UNIFIED IDEOGRAPH +0xCBDB 0x50F3 #CJK UNIFIED IDEOGRAPH +0xCBDC 0x5851 #CJK UNIFIED IDEOGRAPH +0xCBDD 0x6EAF #CJK UNIFIED IDEOGRAPH +0xCBDE 0x5BBF #CJK UNIFIED IDEOGRAPH +0xCBDF 0x8BC9 #CJK UNIFIED IDEOGRAPH +0xCBE0 0x8083 #CJK UNIFIED IDEOGRAPH +0xCBE1 0x9178 #CJK UNIFIED IDEOGRAPH +0xCBE2 0x849C #CJK UNIFIED IDEOGRAPH +0xCBE3 0x7B97 #CJK UNIFIED IDEOGRAPH +0xCBE4 0x867D #CJK UNIFIED IDEOGRAPH +0xCBE5 0x968B #CJK UNIFIED IDEOGRAPH +0xCBE6 0x968F #CJK UNIFIED IDEOGRAPH +0xCBE7 0x7EE5 #CJK UNIFIED IDEOGRAPH +0xCBE8 0x9AD3 #CJK UNIFIED IDEOGRAPH +0xCBE9 0x788E #CJK UNIFIED IDEOGRAPH +0xCBEA 0x5C81 #CJK UNIFIED IDEOGRAPH +0xCBEB 0x7A57 #CJK UNIFIED IDEOGRAPH +0xCBEC 0x9042 #CJK UNIFIED IDEOGRAPH +0xCBED 0x96A7 #CJK UNIFIED IDEOGRAPH +0xCBEE 0x795F #CJK UNIFIED IDEOGRAPH +0xCBEF 0x5B59 #CJK UNIFIED IDEOGRAPH +0xCBF0 0x635F #CJK UNIFIED IDEOGRAPH +0xCBF1 0x7B0B #CJK UNIFIED IDEOGRAPH +0xCBF2 0x84D1 #CJK UNIFIED IDEOGRAPH +0xCBF3 0x68AD #CJK UNIFIED IDEOGRAPH +0xCBF4 0x5506 #CJK UNIFIED IDEOGRAPH +0xCBF5 0x7F29 #CJK UNIFIED IDEOGRAPH +0xCBF6 0x7410 #CJK UNIFIED IDEOGRAPH +0xCBF7 0x7D22 #CJK UNIFIED IDEOGRAPH +0xCBF8 0x9501 #CJK UNIFIED IDEOGRAPH +0xCBF9 0x6240 #CJK UNIFIED IDEOGRAPH +0xCBFA 0x584C #CJK UNIFIED IDEOGRAPH +0xCBFB 0x4ED6 #CJK UNIFIED IDEOGRAPH +0xCBFC 0x5B83 #CJK UNIFIED IDEOGRAPH +0xCBFD 0x5979 #CJK UNIFIED IDEOGRAPH +0xCBFE 0x5854 #CJK UNIFIED IDEOGRAPH +0xCC40 0x85F9 #CJK UNIFIED IDEOGRAPH +0xCC41 0x85FA #CJK UNIFIED IDEOGRAPH +0xCC42 0x85FC #CJK UNIFIED IDEOGRAPH +0xCC43 0x85FD #CJK UNIFIED IDEOGRAPH +0xCC44 0x85FE #CJK UNIFIED IDEOGRAPH +0xCC45 0x8600 #CJK UNIFIED IDEOGRAPH +0xCC46 0x8601 #CJK UNIFIED IDEOGRAPH +0xCC47 0x8602 #CJK UNIFIED IDEOGRAPH +0xCC48 0x8603 #CJK UNIFIED IDEOGRAPH +0xCC49 0x8604 #CJK UNIFIED IDEOGRAPH +0xCC4A 0x8606 #CJK UNIFIED IDEOGRAPH +0xCC4B 0x8607 #CJK UNIFIED IDEOGRAPH +0xCC4C 0x8608 #CJK UNIFIED IDEOGRAPH +0xCC4D 0x8609 #CJK UNIFIED IDEOGRAPH +0xCC4E 0x860A #CJK UNIFIED IDEOGRAPH +0xCC4F 0x860B #CJK UNIFIED IDEOGRAPH +0xCC50 0x860C #CJK UNIFIED IDEOGRAPH +0xCC51 0x860D #CJK UNIFIED IDEOGRAPH +0xCC52 0x860E #CJK UNIFIED IDEOGRAPH +0xCC53 0x860F #CJK UNIFIED IDEOGRAPH +0xCC54 0x8610 #CJK UNIFIED IDEOGRAPH +0xCC55 0x8612 #CJK UNIFIED IDEOGRAPH +0xCC56 0x8613 #CJK UNIFIED IDEOGRAPH +0xCC57 0x8614 #CJK UNIFIED IDEOGRAPH +0xCC58 0x8615 #CJK UNIFIED IDEOGRAPH +0xCC59 0x8617 #CJK UNIFIED IDEOGRAPH +0xCC5A 0x8618 #CJK UNIFIED IDEOGRAPH +0xCC5B 0x8619 #CJK UNIFIED IDEOGRAPH +0xCC5C 0x861A #CJK UNIFIED IDEOGRAPH +0xCC5D 0x861B #CJK UNIFIED IDEOGRAPH +0xCC5E 0x861C #CJK UNIFIED IDEOGRAPH +0xCC5F 0x861D #CJK UNIFIED IDEOGRAPH +0xCC60 0x861E #CJK UNIFIED IDEOGRAPH +0xCC61 0x861F #CJK UNIFIED IDEOGRAPH +0xCC62 0x8620 #CJK UNIFIED IDEOGRAPH +0xCC63 0x8621 #CJK UNIFIED IDEOGRAPH +0xCC64 0x8622 #CJK UNIFIED IDEOGRAPH +0xCC65 0x8623 #CJK UNIFIED IDEOGRAPH +0xCC66 0x8624 #CJK UNIFIED IDEOGRAPH +0xCC67 0x8625 #CJK UNIFIED IDEOGRAPH +0xCC68 0x8626 #CJK UNIFIED IDEOGRAPH +0xCC69 0x8628 #CJK UNIFIED IDEOGRAPH +0xCC6A 0x862A #CJK UNIFIED IDEOGRAPH +0xCC6B 0x862B #CJK UNIFIED IDEOGRAPH +0xCC6C 0x862C #CJK UNIFIED IDEOGRAPH +0xCC6D 0x862D #CJK UNIFIED IDEOGRAPH +0xCC6E 0x862E #CJK UNIFIED IDEOGRAPH +0xCC6F 0x862F #CJK UNIFIED IDEOGRAPH +0xCC70 0x8630 #CJK UNIFIED IDEOGRAPH +0xCC71 0x8631 #CJK UNIFIED IDEOGRAPH +0xCC72 0x8632 #CJK UNIFIED IDEOGRAPH +0xCC73 0x8633 #CJK UNIFIED IDEOGRAPH +0xCC74 0x8634 #CJK UNIFIED IDEOGRAPH +0xCC75 0x8635 #CJK UNIFIED IDEOGRAPH +0xCC76 0x8636 #CJK UNIFIED IDEOGRAPH +0xCC77 0x8637 #CJK UNIFIED IDEOGRAPH +0xCC78 0x8639 #CJK UNIFIED IDEOGRAPH +0xCC79 0x863A #CJK UNIFIED IDEOGRAPH +0xCC7A 0x863B #CJK UNIFIED IDEOGRAPH +0xCC7B 0x863D #CJK UNIFIED IDEOGRAPH +0xCC7C 0x863E #CJK UNIFIED IDEOGRAPH +0xCC7D 0x863F #CJK UNIFIED IDEOGRAPH +0xCC7E 0x8640 #CJK UNIFIED IDEOGRAPH +0xCC80 0x8641 #CJK UNIFIED IDEOGRAPH +0xCC81 0x8642 #CJK UNIFIED IDEOGRAPH +0xCC82 0x8643 #CJK UNIFIED IDEOGRAPH +0xCC83 0x8644 #CJK UNIFIED IDEOGRAPH +0xCC84 0x8645 #CJK UNIFIED IDEOGRAPH +0xCC85 0x8646 #CJK UNIFIED IDEOGRAPH +0xCC86 0x8647 #CJK UNIFIED IDEOGRAPH +0xCC87 0x8648 #CJK UNIFIED IDEOGRAPH +0xCC88 0x8649 #CJK UNIFIED IDEOGRAPH +0xCC89 0x864A #CJK UNIFIED IDEOGRAPH +0xCC8A 0x864B #CJK UNIFIED IDEOGRAPH +0xCC8B 0x864C #CJK UNIFIED IDEOGRAPH +0xCC8C 0x8652 #CJK UNIFIED IDEOGRAPH +0xCC8D 0x8653 #CJK UNIFIED IDEOGRAPH +0xCC8E 0x8655 #CJK UNIFIED IDEOGRAPH +0xCC8F 0x8656 #CJK UNIFIED IDEOGRAPH +0xCC90 0x8657 #CJK UNIFIED IDEOGRAPH +0xCC91 0x8658 #CJK UNIFIED IDEOGRAPH +0xCC92 0x8659 #CJK UNIFIED IDEOGRAPH +0xCC93 0x865B #CJK UNIFIED IDEOGRAPH +0xCC94 0x865C #CJK UNIFIED IDEOGRAPH +0xCC95 0x865D #CJK UNIFIED IDEOGRAPH +0xCC96 0x865F #CJK UNIFIED IDEOGRAPH +0xCC97 0x8660 #CJK UNIFIED IDEOGRAPH +0xCC98 0x8661 #CJK UNIFIED IDEOGRAPH +0xCC99 0x8663 #CJK UNIFIED IDEOGRAPH +0xCC9A 0x8664 #CJK UNIFIED IDEOGRAPH +0xCC9B 0x8665 #CJK UNIFIED IDEOGRAPH +0xCC9C 0x8666 #CJK UNIFIED IDEOGRAPH +0xCC9D 0x8667 #CJK UNIFIED IDEOGRAPH +0xCC9E 0x8668 #CJK UNIFIED IDEOGRAPH +0xCC9F 0x8669 #CJK UNIFIED IDEOGRAPH +0xCCA0 0x866A #CJK UNIFIED IDEOGRAPH +0xCCA1 0x736D #CJK UNIFIED IDEOGRAPH +0xCCA2 0x631E #CJK UNIFIED IDEOGRAPH +0xCCA3 0x8E4B #CJK UNIFIED IDEOGRAPH +0xCCA4 0x8E0F #CJK UNIFIED IDEOGRAPH +0xCCA5 0x80CE #CJK UNIFIED IDEOGRAPH +0xCCA6 0x82D4 #CJK UNIFIED IDEOGRAPH +0xCCA7 0x62AC #CJK UNIFIED IDEOGRAPH +0xCCA8 0x53F0 #CJK UNIFIED IDEOGRAPH +0xCCA9 0x6CF0 #CJK UNIFIED IDEOGRAPH +0xCCAA 0x915E #CJK UNIFIED IDEOGRAPH +0xCCAB 0x592A #CJK UNIFIED IDEOGRAPH +0xCCAC 0x6001 #CJK UNIFIED IDEOGRAPH +0xCCAD 0x6C70 #CJK UNIFIED IDEOGRAPH +0xCCAE 0x574D #CJK UNIFIED IDEOGRAPH +0xCCAF 0x644A #CJK UNIFIED IDEOGRAPH +0xCCB0 0x8D2A #CJK UNIFIED IDEOGRAPH +0xCCB1 0x762B #CJK UNIFIED IDEOGRAPH +0xCCB2 0x6EE9 #CJK UNIFIED IDEOGRAPH +0xCCB3 0x575B #CJK UNIFIED IDEOGRAPH +0xCCB4 0x6A80 #CJK UNIFIED IDEOGRAPH +0xCCB5 0x75F0 #CJK UNIFIED IDEOGRAPH +0xCCB6 0x6F6D #CJK UNIFIED IDEOGRAPH +0xCCB7 0x8C2D #CJK UNIFIED IDEOGRAPH +0xCCB8 0x8C08 #CJK UNIFIED IDEOGRAPH +0xCCB9 0x5766 #CJK UNIFIED IDEOGRAPH +0xCCBA 0x6BEF #CJK UNIFIED IDEOGRAPH +0xCCBB 0x8892 #CJK UNIFIED IDEOGRAPH +0xCCBC 0x78B3 #CJK UNIFIED IDEOGRAPH +0xCCBD 0x63A2 #CJK UNIFIED IDEOGRAPH +0xCCBE 0x53F9 #CJK UNIFIED IDEOGRAPH +0xCCBF 0x70AD #CJK UNIFIED IDEOGRAPH +0xCCC0 0x6C64 #CJK UNIFIED IDEOGRAPH +0xCCC1 0x5858 #CJK UNIFIED IDEOGRAPH +0xCCC2 0x642A #CJK UNIFIED IDEOGRAPH +0xCCC3 0x5802 #CJK UNIFIED IDEOGRAPH +0xCCC4 0x68E0 #CJK UNIFIED IDEOGRAPH +0xCCC5 0x819B #CJK UNIFIED IDEOGRAPH +0xCCC6 0x5510 #CJK UNIFIED IDEOGRAPH +0xCCC7 0x7CD6 #CJK UNIFIED IDEOGRAPH +0xCCC8 0x5018 #CJK UNIFIED IDEOGRAPH +0xCCC9 0x8EBA #CJK UNIFIED IDEOGRAPH +0xCCCA 0x6DCC #CJK UNIFIED IDEOGRAPH +0xCCCB 0x8D9F #CJK UNIFIED IDEOGRAPH +0xCCCC 0x70EB #CJK UNIFIED IDEOGRAPH +0xCCCD 0x638F #CJK UNIFIED IDEOGRAPH +0xCCCE 0x6D9B #CJK UNIFIED IDEOGRAPH +0xCCCF 0x6ED4 #CJK UNIFIED IDEOGRAPH +0xCCD0 0x7EE6 #CJK UNIFIED IDEOGRAPH +0xCCD1 0x8404 #CJK UNIFIED IDEOGRAPH +0xCCD2 0x6843 #CJK UNIFIED IDEOGRAPH +0xCCD3 0x9003 #CJK UNIFIED IDEOGRAPH +0xCCD4 0x6DD8 #CJK UNIFIED IDEOGRAPH +0xCCD5 0x9676 #CJK UNIFIED IDEOGRAPH +0xCCD6 0x8BA8 #CJK UNIFIED IDEOGRAPH +0xCCD7 0x5957 #CJK UNIFIED IDEOGRAPH +0xCCD8 0x7279 #CJK UNIFIED IDEOGRAPH +0xCCD9 0x85E4 #CJK UNIFIED IDEOGRAPH +0xCCDA 0x817E #CJK UNIFIED IDEOGRAPH +0xCCDB 0x75BC #CJK UNIFIED IDEOGRAPH +0xCCDC 0x8A8A #CJK UNIFIED IDEOGRAPH +0xCCDD 0x68AF #CJK UNIFIED IDEOGRAPH +0xCCDE 0x5254 #CJK UNIFIED IDEOGRAPH +0xCCDF 0x8E22 #CJK UNIFIED IDEOGRAPH +0xCCE0 0x9511 #CJK UNIFIED IDEOGRAPH +0xCCE1 0x63D0 #CJK UNIFIED IDEOGRAPH +0xCCE2 0x9898 #CJK UNIFIED IDEOGRAPH +0xCCE3 0x8E44 #CJK UNIFIED IDEOGRAPH +0xCCE4 0x557C #CJK UNIFIED IDEOGRAPH +0xCCE5 0x4F53 #CJK UNIFIED IDEOGRAPH +0xCCE6 0x66FF #CJK UNIFIED IDEOGRAPH +0xCCE7 0x568F #CJK UNIFIED IDEOGRAPH +0xCCE8 0x60D5 #CJK UNIFIED IDEOGRAPH +0xCCE9 0x6D95 #CJK UNIFIED IDEOGRAPH +0xCCEA 0x5243 #CJK UNIFIED IDEOGRAPH +0xCCEB 0x5C49 #CJK UNIFIED IDEOGRAPH +0xCCEC 0x5929 #CJK UNIFIED IDEOGRAPH +0xCCED 0x6DFB #CJK UNIFIED IDEOGRAPH +0xCCEE 0x586B #CJK UNIFIED IDEOGRAPH +0xCCEF 0x7530 #CJK UNIFIED IDEOGRAPH +0xCCF0 0x751C #CJK UNIFIED IDEOGRAPH +0xCCF1 0x606C #CJK UNIFIED IDEOGRAPH +0xCCF2 0x8214 #CJK UNIFIED IDEOGRAPH +0xCCF3 0x8146 #CJK UNIFIED IDEOGRAPH +0xCCF4 0x6311 #CJK UNIFIED IDEOGRAPH +0xCCF5 0x6761 #CJK UNIFIED IDEOGRAPH +0xCCF6 0x8FE2 #CJK UNIFIED IDEOGRAPH +0xCCF7 0x773A #CJK UNIFIED IDEOGRAPH +0xCCF8 0x8DF3 #CJK UNIFIED IDEOGRAPH +0xCCF9 0x8D34 #CJK UNIFIED IDEOGRAPH +0xCCFA 0x94C1 #CJK UNIFIED IDEOGRAPH +0xCCFB 0x5E16 #CJK UNIFIED IDEOGRAPH +0xCCFC 0x5385 #CJK UNIFIED IDEOGRAPH +0xCCFD 0x542C #CJK UNIFIED IDEOGRAPH +0xCCFE 0x70C3 #CJK UNIFIED IDEOGRAPH +0xCD40 0x866D #CJK UNIFIED IDEOGRAPH +0xCD41 0x866F #CJK UNIFIED IDEOGRAPH +0xCD42 0x8670 #CJK UNIFIED IDEOGRAPH +0xCD43 0x8672 #CJK UNIFIED IDEOGRAPH +0xCD44 0x8673 #CJK UNIFIED IDEOGRAPH +0xCD45 0x8674 #CJK UNIFIED IDEOGRAPH +0xCD46 0x8675 #CJK UNIFIED IDEOGRAPH +0xCD47 0x8676 #CJK UNIFIED IDEOGRAPH +0xCD48 0x8677 #CJK UNIFIED IDEOGRAPH +0xCD49 0x8678 #CJK UNIFIED IDEOGRAPH +0xCD4A 0x8683 #CJK UNIFIED IDEOGRAPH +0xCD4B 0x8684 #CJK UNIFIED IDEOGRAPH +0xCD4C 0x8685 #CJK UNIFIED IDEOGRAPH +0xCD4D 0x8686 #CJK UNIFIED IDEOGRAPH +0xCD4E 0x8687 #CJK UNIFIED IDEOGRAPH +0xCD4F 0x8688 #CJK UNIFIED IDEOGRAPH +0xCD50 0x8689 #CJK UNIFIED IDEOGRAPH +0xCD51 0x868E #CJK UNIFIED IDEOGRAPH +0xCD52 0x868F #CJK UNIFIED IDEOGRAPH +0xCD53 0x8690 #CJK UNIFIED IDEOGRAPH +0xCD54 0x8691 #CJK UNIFIED IDEOGRAPH +0xCD55 0x8692 #CJK UNIFIED IDEOGRAPH +0xCD56 0x8694 #CJK UNIFIED IDEOGRAPH +0xCD57 0x8696 #CJK UNIFIED IDEOGRAPH +0xCD58 0x8697 #CJK UNIFIED IDEOGRAPH +0xCD59 0x8698 #CJK UNIFIED IDEOGRAPH +0xCD5A 0x8699 #CJK UNIFIED IDEOGRAPH +0xCD5B 0x869A #CJK UNIFIED IDEOGRAPH +0xCD5C 0x869B #CJK UNIFIED IDEOGRAPH +0xCD5D 0x869E #CJK UNIFIED IDEOGRAPH +0xCD5E 0x869F #CJK UNIFIED IDEOGRAPH +0xCD5F 0x86A0 #CJK UNIFIED IDEOGRAPH +0xCD60 0x86A1 #CJK UNIFIED IDEOGRAPH +0xCD61 0x86A2 #CJK UNIFIED IDEOGRAPH +0xCD62 0x86A5 #CJK UNIFIED IDEOGRAPH +0xCD63 0x86A6 #CJK UNIFIED IDEOGRAPH +0xCD64 0x86AB #CJK UNIFIED IDEOGRAPH +0xCD65 0x86AD #CJK UNIFIED IDEOGRAPH +0xCD66 0x86AE #CJK UNIFIED IDEOGRAPH +0xCD67 0x86B2 #CJK UNIFIED IDEOGRAPH +0xCD68 0x86B3 #CJK UNIFIED IDEOGRAPH +0xCD69 0x86B7 #CJK UNIFIED IDEOGRAPH +0xCD6A 0x86B8 #CJK UNIFIED IDEOGRAPH +0xCD6B 0x86B9 #CJK UNIFIED IDEOGRAPH +0xCD6C 0x86BB #CJK UNIFIED IDEOGRAPH +0xCD6D 0x86BC #CJK UNIFIED IDEOGRAPH +0xCD6E 0x86BD #CJK UNIFIED IDEOGRAPH +0xCD6F 0x86BE #CJK UNIFIED IDEOGRAPH +0xCD70 0x86BF #CJK UNIFIED IDEOGRAPH +0xCD71 0x86C1 #CJK UNIFIED IDEOGRAPH +0xCD72 0x86C2 #CJK UNIFIED IDEOGRAPH +0xCD73 0x86C3 #CJK UNIFIED IDEOGRAPH +0xCD74 0x86C5 #CJK UNIFIED IDEOGRAPH +0xCD75 0x86C8 #CJK UNIFIED IDEOGRAPH +0xCD76 0x86CC #CJK UNIFIED IDEOGRAPH +0xCD77 0x86CD #CJK UNIFIED IDEOGRAPH +0xCD78 0x86D2 #CJK UNIFIED IDEOGRAPH +0xCD79 0x86D3 #CJK UNIFIED IDEOGRAPH +0xCD7A 0x86D5 #CJK UNIFIED IDEOGRAPH +0xCD7B 0x86D6 #CJK UNIFIED IDEOGRAPH +0xCD7C 0x86D7 #CJK UNIFIED IDEOGRAPH +0xCD7D 0x86DA #CJK UNIFIED IDEOGRAPH +0xCD7E 0x86DC #CJK UNIFIED IDEOGRAPH +0xCD80 0x86DD #CJK UNIFIED IDEOGRAPH +0xCD81 0x86E0 #CJK UNIFIED IDEOGRAPH +0xCD82 0x86E1 #CJK UNIFIED IDEOGRAPH +0xCD83 0x86E2 #CJK UNIFIED IDEOGRAPH +0xCD84 0x86E3 #CJK UNIFIED IDEOGRAPH +0xCD85 0x86E5 #CJK UNIFIED IDEOGRAPH +0xCD86 0x86E6 #CJK UNIFIED IDEOGRAPH +0xCD87 0x86E7 #CJK UNIFIED IDEOGRAPH +0xCD88 0x86E8 #CJK UNIFIED IDEOGRAPH +0xCD89 0x86EA #CJK UNIFIED IDEOGRAPH +0xCD8A 0x86EB #CJK UNIFIED IDEOGRAPH +0xCD8B 0x86EC #CJK UNIFIED IDEOGRAPH +0xCD8C 0x86EF #CJK UNIFIED IDEOGRAPH +0xCD8D 0x86F5 #CJK UNIFIED IDEOGRAPH +0xCD8E 0x86F6 #CJK UNIFIED IDEOGRAPH +0xCD8F 0x86F7 #CJK UNIFIED IDEOGRAPH +0xCD90 0x86FA #CJK UNIFIED IDEOGRAPH +0xCD91 0x86FB #CJK UNIFIED IDEOGRAPH +0xCD92 0x86FC #CJK UNIFIED IDEOGRAPH +0xCD93 0x86FD #CJK UNIFIED IDEOGRAPH +0xCD94 0x86FF #CJK UNIFIED IDEOGRAPH +0xCD95 0x8701 #CJK UNIFIED IDEOGRAPH +0xCD96 0x8704 #CJK UNIFIED IDEOGRAPH +0xCD97 0x8705 #CJK UNIFIED IDEOGRAPH +0xCD98 0x8706 #CJK UNIFIED IDEOGRAPH +0xCD99 0x870B #CJK UNIFIED IDEOGRAPH +0xCD9A 0x870C #CJK UNIFIED IDEOGRAPH +0xCD9B 0x870E #CJK UNIFIED IDEOGRAPH +0xCD9C 0x870F #CJK UNIFIED IDEOGRAPH +0xCD9D 0x8710 #CJK UNIFIED IDEOGRAPH +0xCD9E 0x8711 #CJK UNIFIED IDEOGRAPH +0xCD9F 0x8714 #CJK UNIFIED IDEOGRAPH +0xCDA0 0x8716 #CJK UNIFIED IDEOGRAPH +0xCDA1 0x6C40 #CJK UNIFIED IDEOGRAPH +0xCDA2 0x5EF7 #CJK UNIFIED IDEOGRAPH +0xCDA3 0x505C #CJK UNIFIED IDEOGRAPH +0xCDA4 0x4EAD #CJK UNIFIED IDEOGRAPH +0xCDA5 0x5EAD #CJK UNIFIED IDEOGRAPH +0xCDA6 0x633A #CJK UNIFIED IDEOGRAPH +0xCDA7 0x8247 #CJK UNIFIED IDEOGRAPH +0xCDA8 0x901A #CJK UNIFIED IDEOGRAPH +0xCDA9 0x6850 #CJK UNIFIED IDEOGRAPH +0xCDAA 0x916E #CJK UNIFIED IDEOGRAPH +0xCDAB 0x77B3 #CJK UNIFIED IDEOGRAPH +0xCDAC 0x540C #CJK UNIFIED IDEOGRAPH +0xCDAD 0x94DC #CJK UNIFIED IDEOGRAPH +0xCDAE 0x5F64 #CJK UNIFIED IDEOGRAPH +0xCDAF 0x7AE5 #CJK UNIFIED IDEOGRAPH +0xCDB0 0x6876 #CJK UNIFIED IDEOGRAPH +0xCDB1 0x6345 #CJK UNIFIED IDEOGRAPH +0xCDB2 0x7B52 #CJK UNIFIED IDEOGRAPH +0xCDB3 0x7EDF #CJK UNIFIED IDEOGRAPH +0xCDB4 0x75DB #CJK UNIFIED IDEOGRAPH +0xCDB5 0x5077 #CJK UNIFIED IDEOGRAPH +0xCDB6 0x6295 #CJK UNIFIED IDEOGRAPH +0xCDB7 0x5934 #CJK UNIFIED IDEOGRAPH +0xCDB8 0x900F #CJK UNIFIED IDEOGRAPH +0xCDB9 0x51F8 #CJK UNIFIED IDEOGRAPH +0xCDBA 0x79C3 #CJK UNIFIED IDEOGRAPH +0xCDBB 0x7A81 #CJK UNIFIED IDEOGRAPH +0xCDBC 0x56FE #CJK UNIFIED IDEOGRAPH +0xCDBD 0x5F92 #CJK UNIFIED IDEOGRAPH +0xCDBE 0x9014 #CJK UNIFIED IDEOGRAPH +0xCDBF 0x6D82 #CJK UNIFIED IDEOGRAPH +0xCDC0 0x5C60 #CJK UNIFIED IDEOGRAPH +0xCDC1 0x571F #CJK UNIFIED IDEOGRAPH +0xCDC2 0x5410 #CJK UNIFIED IDEOGRAPH +0xCDC3 0x5154 #CJK UNIFIED IDEOGRAPH +0xCDC4 0x6E4D #CJK UNIFIED IDEOGRAPH +0xCDC5 0x56E2 #CJK UNIFIED IDEOGRAPH +0xCDC6 0x63A8 #CJK UNIFIED IDEOGRAPH +0xCDC7 0x9893 #CJK UNIFIED IDEOGRAPH +0xCDC8 0x817F #CJK UNIFIED IDEOGRAPH +0xCDC9 0x8715 #CJK UNIFIED IDEOGRAPH +0xCDCA 0x892A #CJK UNIFIED IDEOGRAPH +0xCDCB 0x9000 #CJK UNIFIED IDEOGRAPH +0xCDCC 0x541E #CJK UNIFIED IDEOGRAPH +0xCDCD 0x5C6F #CJK UNIFIED IDEOGRAPH +0xCDCE 0x81C0 #CJK UNIFIED IDEOGRAPH +0xCDCF 0x62D6 #CJK UNIFIED IDEOGRAPH +0xCDD0 0x6258 #CJK UNIFIED IDEOGRAPH +0xCDD1 0x8131 #CJK UNIFIED IDEOGRAPH +0xCDD2 0x9E35 #CJK UNIFIED IDEOGRAPH +0xCDD3 0x9640 #CJK UNIFIED IDEOGRAPH +0xCDD4 0x9A6E #CJK UNIFIED IDEOGRAPH +0xCDD5 0x9A7C #CJK UNIFIED IDEOGRAPH +0xCDD6 0x692D #CJK UNIFIED IDEOGRAPH +0xCDD7 0x59A5 #CJK UNIFIED IDEOGRAPH +0xCDD8 0x62D3 #CJK UNIFIED IDEOGRAPH +0xCDD9 0x553E #CJK UNIFIED IDEOGRAPH +0xCDDA 0x6316 #CJK UNIFIED IDEOGRAPH +0xCDDB 0x54C7 #CJK UNIFIED IDEOGRAPH +0xCDDC 0x86D9 #CJK UNIFIED IDEOGRAPH +0xCDDD 0x6D3C #CJK UNIFIED IDEOGRAPH +0xCDDE 0x5A03 #CJK UNIFIED IDEOGRAPH +0xCDDF 0x74E6 #CJK UNIFIED IDEOGRAPH +0xCDE0 0x889C #CJK UNIFIED IDEOGRAPH +0xCDE1 0x6B6A #CJK UNIFIED IDEOGRAPH +0xCDE2 0x5916 #CJK UNIFIED IDEOGRAPH +0xCDE3 0x8C4C #CJK UNIFIED IDEOGRAPH +0xCDE4 0x5F2F #CJK UNIFIED IDEOGRAPH +0xCDE5 0x6E7E #CJK UNIFIED IDEOGRAPH +0xCDE6 0x73A9 #CJK UNIFIED IDEOGRAPH +0xCDE7 0x987D #CJK UNIFIED IDEOGRAPH +0xCDE8 0x4E38 #CJK UNIFIED IDEOGRAPH +0xCDE9 0x70F7 #CJK UNIFIED IDEOGRAPH +0xCDEA 0x5B8C #CJK UNIFIED IDEOGRAPH +0xCDEB 0x7897 #CJK UNIFIED IDEOGRAPH +0xCDEC 0x633D #CJK UNIFIED IDEOGRAPH +0xCDED 0x665A #CJK UNIFIED IDEOGRAPH +0xCDEE 0x7696 #CJK UNIFIED IDEOGRAPH +0xCDEF 0x60CB #CJK UNIFIED IDEOGRAPH +0xCDF0 0x5B9B #CJK UNIFIED IDEOGRAPH +0xCDF1 0x5A49 #CJK UNIFIED IDEOGRAPH +0xCDF2 0x4E07 #CJK UNIFIED IDEOGRAPH +0xCDF3 0x8155 #CJK UNIFIED IDEOGRAPH +0xCDF4 0x6C6A #CJK UNIFIED IDEOGRAPH +0xCDF5 0x738B #CJK UNIFIED IDEOGRAPH +0xCDF6 0x4EA1 #CJK UNIFIED IDEOGRAPH +0xCDF7 0x6789 #CJK UNIFIED IDEOGRAPH +0xCDF8 0x7F51 #CJK UNIFIED IDEOGRAPH +0xCDF9 0x5F80 #CJK UNIFIED IDEOGRAPH +0xCDFA 0x65FA #CJK UNIFIED IDEOGRAPH +0xCDFB 0x671B #CJK UNIFIED IDEOGRAPH +0xCDFC 0x5FD8 #CJK UNIFIED IDEOGRAPH +0xCDFD 0x5984 #CJK UNIFIED IDEOGRAPH +0xCDFE 0x5A01 #CJK UNIFIED IDEOGRAPH +0xCE40 0x8719 #CJK UNIFIED IDEOGRAPH +0xCE41 0x871B #CJK UNIFIED IDEOGRAPH +0xCE42 0x871D #CJK UNIFIED IDEOGRAPH +0xCE43 0x871F #CJK UNIFIED IDEOGRAPH +0xCE44 0x8720 #CJK UNIFIED IDEOGRAPH +0xCE45 0x8724 #CJK UNIFIED IDEOGRAPH +0xCE46 0x8726 #CJK UNIFIED IDEOGRAPH +0xCE47 0x8727 #CJK UNIFIED IDEOGRAPH +0xCE48 0x8728 #CJK UNIFIED IDEOGRAPH +0xCE49 0x872A #CJK UNIFIED IDEOGRAPH +0xCE4A 0x872B #CJK UNIFIED IDEOGRAPH +0xCE4B 0x872C #CJK UNIFIED IDEOGRAPH +0xCE4C 0x872D #CJK UNIFIED IDEOGRAPH +0xCE4D 0x872F #CJK UNIFIED IDEOGRAPH +0xCE4E 0x8730 #CJK UNIFIED IDEOGRAPH +0xCE4F 0x8732 #CJK UNIFIED IDEOGRAPH +0xCE50 0x8733 #CJK UNIFIED IDEOGRAPH +0xCE51 0x8735 #CJK UNIFIED IDEOGRAPH +0xCE52 0x8736 #CJK UNIFIED IDEOGRAPH +0xCE53 0x8738 #CJK UNIFIED IDEOGRAPH +0xCE54 0x8739 #CJK UNIFIED IDEOGRAPH +0xCE55 0x873A #CJK UNIFIED IDEOGRAPH +0xCE56 0x873C #CJK UNIFIED IDEOGRAPH +0xCE57 0x873D #CJK UNIFIED IDEOGRAPH +0xCE58 0x8740 #CJK UNIFIED IDEOGRAPH +0xCE59 0x8741 #CJK UNIFIED IDEOGRAPH +0xCE5A 0x8742 #CJK UNIFIED IDEOGRAPH +0xCE5B 0x8743 #CJK UNIFIED IDEOGRAPH +0xCE5C 0x8744 #CJK UNIFIED IDEOGRAPH +0xCE5D 0x8745 #CJK UNIFIED IDEOGRAPH +0xCE5E 0x8746 #CJK UNIFIED IDEOGRAPH +0xCE5F 0x874A #CJK UNIFIED IDEOGRAPH +0xCE60 0x874B #CJK UNIFIED IDEOGRAPH +0xCE61 0x874D #CJK UNIFIED IDEOGRAPH +0xCE62 0x874F #CJK UNIFIED IDEOGRAPH +0xCE63 0x8750 #CJK UNIFIED IDEOGRAPH +0xCE64 0x8751 #CJK UNIFIED IDEOGRAPH +0xCE65 0x8752 #CJK UNIFIED IDEOGRAPH +0xCE66 0x8754 #CJK UNIFIED IDEOGRAPH +0xCE67 0x8755 #CJK UNIFIED IDEOGRAPH +0xCE68 0x8756 #CJK UNIFIED IDEOGRAPH +0xCE69 0x8758 #CJK UNIFIED IDEOGRAPH +0xCE6A 0x875A #CJK UNIFIED IDEOGRAPH +0xCE6B 0x875B #CJK UNIFIED IDEOGRAPH +0xCE6C 0x875C #CJK UNIFIED IDEOGRAPH +0xCE6D 0x875D #CJK UNIFIED IDEOGRAPH +0xCE6E 0x875E #CJK UNIFIED IDEOGRAPH +0xCE6F 0x875F #CJK UNIFIED IDEOGRAPH +0xCE70 0x8761 #CJK UNIFIED IDEOGRAPH +0xCE71 0x8762 #CJK UNIFIED IDEOGRAPH +0xCE72 0x8766 #CJK UNIFIED IDEOGRAPH +0xCE73 0x8767 #CJK UNIFIED IDEOGRAPH +0xCE74 0x8768 #CJK UNIFIED IDEOGRAPH +0xCE75 0x8769 #CJK UNIFIED IDEOGRAPH +0xCE76 0x876A #CJK UNIFIED IDEOGRAPH +0xCE77 0x876B #CJK UNIFIED IDEOGRAPH +0xCE78 0x876C #CJK UNIFIED IDEOGRAPH +0xCE79 0x876D #CJK UNIFIED IDEOGRAPH +0xCE7A 0x876F #CJK UNIFIED IDEOGRAPH +0xCE7B 0x8771 #CJK UNIFIED IDEOGRAPH +0xCE7C 0x8772 #CJK UNIFIED IDEOGRAPH +0xCE7D 0x8773 #CJK UNIFIED IDEOGRAPH +0xCE7E 0x8775 #CJK UNIFIED IDEOGRAPH +0xCE80 0x8777 #CJK UNIFIED IDEOGRAPH +0xCE81 0x8778 #CJK UNIFIED IDEOGRAPH +0xCE82 0x8779 #CJK UNIFIED IDEOGRAPH +0xCE83 0x877A #CJK UNIFIED IDEOGRAPH +0xCE84 0x877F #CJK UNIFIED IDEOGRAPH +0xCE85 0x8780 #CJK UNIFIED IDEOGRAPH +0xCE86 0x8781 #CJK UNIFIED IDEOGRAPH +0xCE87 0x8784 #CJK UNIFIED IDEOGRAPH +0xCE88 0x8786 #CJK UNIFIED IDEOGRAPH +0xCE89 0x8787 #CJK UNIFIED IDEOGRAPH +0xCE8A 0x8789 #CJK UNIFIED IDEOGRAPH +0xCE8B 0x878A #CJK UNIFIED IDEOGRAPH +0xCE8C 0x878C #CJK UNIFIED IDEOGRAPH +0xCE8D 0x878E #CJK UNIFIED IDEOGRAPH +0xCE8E 0x878F #CJK UNIFIED IDEOGRAPH +0xCE8F 0x8790 #CJK UNIFIED IDEOGRAPH +0xCE90 0x8791 #CJK UNIFIED IDEOGRAPH +0xCE91 0x8792 #CJK UNIFIED IDEOGRAPH +0xCE92 0x8794 #CJK UNIFIED IDEOGRAPH +0xCE93 0x8795 #CJK UNIFIED IDEOGRAPH +0xCE94 0x8796 #CJK UNIFIED IDEOGRAPH +0xCE95 0x8798 #CJK UNIFIED IDEOGRAPH +0xCE96 0x8799 #CJK UNIFIED IDEOGRAPH +0xCE97 0x879A #CJK UNIFIED IDEOGRAPH +0xCE98 0x879B #CJK UNIFIED IDEOGRAPH +0xCE99 0x879C #CJK UNIFIED IDEOGRAPH +0xCE9A 0x879D #CJK UNIFIED IDEOGRAPH +0xCE9B 0x879E #CJK UNIFIED IDEOGRAPH +0xCE9C 0x87A0 #CJK UNIFIED IDEOGRAPH +0xCE9D 0x87A1 #CJK UNIFIED IDEOGRAPH +0xCE9E 0x87A2 #CJK UNIFIED IDEOGRAPH +0xCE9F 0x87A3 #CJK UNIFIED IDEOGRAPH +0xCEA0 0x87A4 #CJK UNIFIED IDEOGRAPH +0xCEA1 0x5DCD #CJK UNIFIED IDEOGRAPH +0xCEA2 0x5FAE #CJK UNIFIED IDEOGRAPH +0xCEA3 0x5371 #CJK UNIFIED IDEOGRAPH +0xCEA4 0x97E6 #CJK UNIFIED IDEOGRAPH +0xCEA5 0x8FDD #CJK UNIFIED IDEOGRAPH +0xCEA6 0x6845 #CJK UNIFIED IDEOGRAPH +0xCEA7 0x56F4 #CJK UNIFIED IDEOGRAPH +0xCEA8 0x552F #CJK UNIFIED IDEOGRAPH +0xCEA9 0x60DF #CJK UNIFIED IDEOGRAPH +0xCEAA 0x4E3A #CJK UNIFIED IDEOGRAPH +0xCEAB 0x6F4D #CJK UNIFIED IDEOGRAPH +0xCEAC 0x7EF4 #CJK UNIFIED IDEOGRAPH +0xCEAD 0x82C7 #CJK UNIFIED IDEOGRAPH +0xCEAE 0x840E #CJK UNIFIED IDEOGRAPH +0xCEAF 0x59D4 #CJK UNIFIED IDEOGRAPH +0xCEB0 0x4F1F #CJK UNIFIED IDEOGRAPH +0xCEB1 0x4F2A #CJK UNIFIED IDEOGRAPH +0xCEB2 0x5C3E #CJK UNIFIED IDEOGRAPH +0xCEB3 0x7EAC #CJK UNIFIED IDEOGRAPH +0xCEB4 0x672A #CJK UNIFIED IDEOGRAPH +0xCEB5 0x851A #CJK UNIFIED IDEOGRAPH +0xCEB6 0x5473 #CJK UNIFIED IDEOGRAPH +0xCEB7 0x754F #CJK UNIFIED IDEOGRAPH +0xCEB8 0x80C3 #CJK UNIFIED IDEOGRAPH +0xCEB9 0x5582 #CJK UNIFIED IDEOGRAPH +0xCEBA 0x9B4F #CJK UNIFIED IDEOGRAPH +0xCEBB 0x4F4D #CJK UNIFIED IDEOGRAPH +0xCEBC 0x6E2D #CJK UNIFIED IDEOGRAPH +0xCEBD 0x8C13 #CJK UNIFIED IDEOGRAPH +0xCEBE 0x5C09 #CJK UNIFIED IDEOGRAPH +0xCEBF 0x6170 #CJK UNIFIED IDEOGRAPH +0xCEC0 0x536B #CJK UNIFIED IDEOGRAPH +0xCEC1 0x761F #CJK UNIFIED IDEOGRAPH +0xCEC2 0x6E29 #CJK UNIFIED IDEOGRAPH +0xCEC3 0x868A #CJK UNIFIED IDEOGRAPH +0xCEC4 0x6587 #CJK UNIFIED IDEOGRAPH +0xCEC5 0x95FB #CJK UNIFIED IDEOGRAPH +0xCEC6 0x7EB9 #CJK UNIFIED IDEOGRAPH +0xCEC7 0x543B #CJK UNIFIED IDEOGRAPH +0xCEC8 0x7A33 #CJK UNIFIED IDEOGRAPH +0xCEC9 0x7D0A #CJK UNIFIED IDEOGRAPH +0xCECA 0x95EE #CJK UNIFIED IDEOGRAPH +0xCECB 0x55E1 #CJK UNIFIED IDEOGRAPH +0xCECC 0x7FC1 #CJK UNIFIED IDEOGRAPH +0xCECD 0x74EE #CJK UNIFIED IDEOGRAPH +0xCECE 0x631D #CJK UNIFIED IDEOGRAPH +0xCECF 0x8717 #CJK UNIFIED IDEOGRAPH +0xCED0 0x6DA1 #CJK UNIFIED IDEOGRAPH +0xCED1 0x7A9D #CJK UNIFIED IDEOGRAPH +0xCED2 0x6211 #CJK UNIFIED IDEOGRAPH +0xCED3 0x65A1 #CJK UNIFIED IDEOGRAPH +0xCED4 0x5367 #CJK UNIFIED IDEOGRAPH +0xCED5 0x63E1 #CJK UNIFIED IDEOGRAPH +0xCED6 0x6C83 #CJK UNIFIED IDEOGRAPH +0xCED7 0x5DEB #CJK UNIFIED IDEOGRAPH +0xCED8 0x545C #CJK UNIFIED IDEOGRAPH +0xCED9 0x94A8 #CJK UNIFIED IDEOGRAPH +0xCEDA 0x4E4C #CJK UNIFIED IDEOGRAPH +0xCEDB 0x6C61 #CJK UNIFIED IDEOGRAPH +0xCEDC 0x8BEC #CJK UNIFIED IDEOGRAPH +0xCEDD 0x5C4B #CJK UNIFIED IDEOGRAPH +0xCEDE 0x65E0 #CJK UNIFIED IDEOGRAPH +0xCEDF 0x829C #CJK UNIFIED IDEOGRAPH +0xCEE0 0x68A7 #CJK UNIFIED IDEOGRAPH +0xCEE1 0x543E #CJK UNIFIED IDEOGRAPH +0xCEE2 0x5434 #CJK UNIFIED IDEOGRAPH +0xCEE3 0x6BCB #CJK UNIFIED IDEOGRAPH +0xCEE4 0x6B66 #CJK UNIFIED IDEOGRAPH +0xCEE5 0x4E94 #CJK UNIFIED IDEOGRAPH +0xCEE6 0x6342 #CJK UNIFIED IDEOGRAPH +0xCEE7 0x5348 #CJK UNIFIED IDEOGRAPH +0xCEE8 0x821E #CJK UNIFIED IDEOGRAPH +0xCEE9 0x4F0D #CJK UNIFIED IDEOGRAPH +0xCEEA 0x4FAE #CJK UNIFIED IDEOGRAPH +0xCEEB 0x575E #CJK UNIFIED IDEOGRAPH +0xCEEC 0x620A #CJK UNIFIED IDEOGRAPH +0xCEED 0x96FE #CJK UNIFIED IDEOGRAPH +0xCEEE 0x6664 #CJK UNIFIED IDEOGRAPH +0xCEEF 0x7269 #CJK UNIFIED IDEOGRAPH +0xCEF0 0x52FF #CJK UNIFIED IDEOGRAPH +0xCEF1 0x52A1 #CJK UNIFIED IDEOGRAPH +0xCEF2 0x609F #CJK UNIFIED IDEOGRAPH +0xCEF3 0x8BEF #CJK UNIFIED IDEOGRAPH +0xCEF4 0x6614 #CJK UNIFIED IDEOGRAPH +0xCEF5 0x7199 #CJK UNIFIED IDEOGRAPH +0xCEF6 0x6790 #CJK UNIFIED IDEOGRAPH +0xCEF7 0x897F #CJK UNIFIED IDEOGRAPH +0xCEF8 0x7852 #CJK UNIFIED IDEOGRAPH +0xCEF9 0x77FD #CJK UNIFIED IDEOGRAPH +0xCEFA 0x6670 #CJK UNIFIED IDEOGRAPH +0xCEFB 0x563B #CJK UNIFIED IDEOGRAPH +0xCEFC 0x5438 #CJK UNIFIED IDEOGRAPH +0xCEFD 0x9521 #CJK UNIFIED IDEOGRAPH +0xCEFE 0x727A #CJK UNIFIED IDEOGRAPH +0xCF40 0x87A5 #CJK UNIFIED IDEOGRAPH +0xCF41 0x87A6 #CJK UNIFIED IDEOGRAPH +0xCF42 0x87A7 #CJK UNIFIED IDEOGRAPH +0xCF43 0x87A9 #CJK UNIFIED IDEOGRAPH +0xCF44 0x87AA #CJK UNIFIED IDEOGRAPH +0xCF45 0x87AE #CJK UNIFIED IDEOGRAPH +0xCF46 0x87B0 #CJK UNIFIED IDEOGRAPH +0xCF47 0x87B1 #CJK UNIFIED IDEOGRAPH +0xCF48 0x87B2 #CJK UNIFIED IDEOGRAPH +0xCF49 0x87B4 #CJK UNIFIED IDEOGRAPH +0xCF4A 0x87B6 #CJK UNIFIED IDEOGRAPH +0xCF4B 0x87B7 #CJK UNIFIED IDEOGRAPH +0xCF4C 0x87B8 #CJK UNIFIED IDEOGRAPH +0xCF4D 0x87B9 #CJK UNIFIED IDEOGRAPH +0xCF4E 0x87BB #CJK UNIFIED IDEOGRAPH +0xCF4F 0x87BC #CJK UNIFIED IDEOGRAPH +0xCF50 0x87BE #CJK UNIFIED IDEOGRAPH +0xCF51 0x87BF #CJK UNIFIED IDEOGRAPH +0xCF52 0x87C1 #CJK UNIFIED IDEOGRAPH +0xCF53 0x87C2 #CJK UNIFIED IDEOGRAPH +0xCF54 0x87C3 #CJK UNIFIED IDEOGRAPH +0xCF55 0x87C4 #CJK UNIFIED IDEOGRAPH +0xCF56 0x87C5 #CJK UNIFIED IDEOGRAPH +0xCF57 0x87C7 #CJK UNIFIED IDEOGRAPH +0xCF58 0x87C8 #CJK UNIFIED IDEOGRAPH +0xCF59 0x87C9 #CJK UNIFIED IDEOGRAPH +0xCF5A 0x87CC #CJK UNIFIED IDEOGRAPH +0xCF5B 0x87CD #CJK UNIFIED IDEOGRAPH +0xCF5C 0x87CE #CJK UNIFIED IDEOGRAPH +0xCF5D 0x87CF #CJK UNIFIED IDEOGRAPH +0xCF5E 0x87D0 #CJK UNIFIED IDEOGRAPH +0xCF5F 0x87D4 #CJK UNIFIED IDEOGRAPH +0xCF60 0x87D5 #CJK UNIFIED IDEOGRAPH +0xCF61 0x87D6 #CJK UNIFIED IDEOGRAPH +0xCF62 0x87D7 #CJK UNIFIED IDEOGRAPH +0xCF63 0x87D8 #CJK UNIFIED IDEOGRAPH +0xCF64 0x87D9 #CJK UNIFIED IDEOGRAPH +0xCF65 0x87DA #CJK UNIFIED IDEOGRAPH +0xCF66 0x87DC #CJK UNIFIED IDEOGRAPH +0xCF67 0x87DD #CJK UNIFIED IDEOGRAPH +0xCF68 0x87DE #CJK UNIFIED IDEOGRAPH +0xCF69 0x87DF #CJK UNIFIED IDEOGRAPH +0xCF6A 0x87E1 #CJK UNIFIED IDEOGRAPH +0xCF6B 0x87E2 #CJK UNIFIED IDEOGRAPH +0xCF6C 0x87E3 #CJK UNIFIED IDEOGRAPH +0xCF6D 0x87E4 #CJK UNIFIED IDEOGRAPH +0xCF6E 0x87E6 #CJK UNIFIED IDEOGRAPH +0xCF6F 0x87E7 #CJK UNIFIED IDEOGRAPH +0xCF70 0x87E8 #CJK UNIFIED IDEOGRAPH +0xCF71 0x87E9 #CJK UNIFIED IDEOGRAPH +0xCF72 0x87EB #CJK UNIFIED IDEOGRAPH +0xCF73 0x87EC #CJK UNIFIED IDEOGRAPH +0xCF74 0x87ED #CJK UNIFIED IDEOGRAPH +0xCF75 0x87EF #CJK UNIFIED IDEOGRAPH +0xCF76 0x87F0 #CJK UNIFIED IDEOGRAPH +0xCF77 0x87F1 #CJK UNIFIED IDEOGRAPH +0xCF78 0x87F2 #CJK UNIFIED IDEOGRAPH +0xCF79 0x87F3 #CJK UNIFIED IDEOGRAPH +0xCF7A 0x87F4 #CJK UNIFIED IDEOGRAPH +0xCF7B 0x87F5 #CJK UNIFIED IDEOGRAPH +0xCF7C 0x87F6 #CJK UNIFIED IDEOGRAPH +0xCF7D 0x87F7 #CJK UNIFIED IDEOGRAPH +0xCF7E 0x87F8 #CJK UNIFIED IDEOGRAPH +0xCF80 0x87FA #CJK UNIFIED IDEOGRAPH +0xCF81 0x87FB #CJK UNIFIED IDEOGRAPH +0xCF82 0x87FC #CJK UNIFIED IDEOGRAPH +0xCF83 0x87FD #CJK UNIFIED IDEOGRAPH +0xCF84 0x87FF #CJK UNIFIED IDEOGRAPH +0xCF85 0x8800 #CJK UNIFIED IDEOGRAPH +0xCF86 0x8801 #CJK UNIFIED IDEOGRAPH +0xCF87 0x8802 #CJK UNIFIED IDEOGRAPH +0xCF88 0x8804 #CJK UNIFIED IDEOGRAPH +0xCF89 0x8805 #CJK UNIFIED IDEOGRAPH +0xCF8A 0x8806 #CJK UNIFIED IDEOGRAPH +0xCF8B 0x8807 #CJK UNIFIED IDEOGRAPH +0xCF8C 0x8808 #CJK UNIFIED IDEOGRAPH +0xCF8D 0x8809 #CJK UNIFIED IDEOGRAPH +0xCF8E 0x880B #CJK UNIFIED IDEOGRAPH +0xCF8F 0x880C #CJK UNIFIED IDEOGRAPH +0xCF90 0x880D #CJK UNIFIED IDEOGRAPH +0xCF91 0x880E #CJK UNIFIED IDEOGRAPH +0xCF92 0x880F #CJK UNIFIED IDEOGRAPH +0xCF93 0x8810 #CJK UNIFIED IDEOGRAPH +0xCF94 0x8811 #CJK UNIFIED IDEOGRAPH +0xCF95 0x8812 #CJK UNIFIED IDEOGRAPH +0xCF96 0x8814 #CJK UNIFIED IDEOGRAPH +0xCF97 0x8817 #CJK UNIFIED IDEOGRAPH +0xCF98 0x8818 #CJK UNIFIED IDEOGRAPH +0xCF99 0x8819 #CJK UNIFIED IDEOGRAPH +0xCF9A 0x881A #CJK UNIFIED IDEOGRAPH +0xCF9B 0x881C #CJK UNIFIED IDEOGRAPH +0xCF9C 0x881D #CJK UNIFIED IDEOGRAPH +0xCF9D 0x881E #CJK UNIFIED IDEOGRAPH +0xCF9E 0x881F #CJK UNIFIED IDEOGRAPH +0xCF9F 0x8820 #CJK UNIFIED IDEOGRAPH +0xCFA0 0x8823 #CJK UNIFIED IDEOGRAPH +0xCFA1 0x7A00 #CJK UNIFIED IDEOGRAPH +0xCFA2 0x606F #CJK UNIFIED IDEOGRAPH +0xCFA3 0x5E0C #CJK UNIFIED IDEOGRAPH +0xCFA4 0x6089 #CJK UNIFIED IDEOGRAPH +0xCFA5 0x819D #CJK UNIFIED IDEOGRAPH +0xCFA6 0x5915 #CJK UNIFIED IDEOGRAPH +0xCFA7 0x60DC #CJK UNIFIED IDEOGRAPH +0xCFA8 0x7184 #CJK UNIFIED IDEOGRAPH +0xCFA9 0x70EF #CJK UNIFIED IDEOGRAPH +0xCFAA 0x6EAA #CJK UNIFIED IDEOGRAPH +0xCFAB 0x6C50 #CJK UNIFIED IDEOGRAPH +0xCFAC 0x7280 #CJK UNIFIED IDEOGRAPH +0xCFAD 0x6A84 #CJK UNIFIED IDEOGRAPH +0xCFAE 0x88AD #CJK UNIFIED IDEOGRAPH +0xCFAF 0x5E2D #CJK UNIFIED IDEOGRAPH +0xCFB0 0x4E60 #CJK UNIFIED IDEOGRAPH +0xCFB1 0x5AB3 #CJK UNIFIED IDEOGRAPH +0xCFB2 0x559C #CJK UNIFIED IDEOGRAPH +0xCFB3 0x94E3 #CJK UNIFIED IDEOGRAPH +0xCFB4 0x6D17 #CJK UNIFIED IDEOGRAPH +0xCFB5 0x7CFB #CJK UNIFIED IDEOGRAPH +0xCFB6 0x9699 #CJK UNIFIED IDEOGRAPH +0xCFB7 0x620F #CJK UNIFIED IDEOGRAPH +0xCFB8 0x7EC6 #CJK UNIFIED IDEOGRAPH +0xCFB9 0x778E #CJK UNIFIED IDEOGRAPH +0xCFBA 0x867E #CJK UNIFIED IDEOGRAPH +0xCFBB 0x5323 #CJK UNIFIED IDEOGRAPH +0xCFBC 0x971E #CJK UNIFIED IDEOGRAPH +0xCFBD 0x8F96 #CJK UNIFIED IDEOGRAPH +0xCFBE 0x6687 #CJK UNIFIED IDEOGRAPH +0xCFBF 0x5CE1 #CJK UNIFIED IDEOGRAPH +0xCFC0 0x4FA0 #CJK UNIFIED IDEOGRAPH +0xCFC1 0x72ED #CJK UNIFIED IDEOGRAPH +0xCFC2 0x4E0B #CJK UNIFIED IDEOGRAPH +0xCFC3 0x53A6 #CJK UNIFIED IDEOGRAPH +0xCFC4 0x590F #CJK UNIFIED IDEOGRAPH +0xCFC5 0x5413 #CJK UNIFIED IDEOGRAPH +0xCFC6 0x6380 #CJK UNIFIED IDEOGRAPH +0xCFC7 0x9528 #CJK UNIFIED IDEOGRAPH +0xCFC8 0x5148 #CJK UNIFIED IDEOGRAPH +0xCFC9 0x4ED9 #CJK UNIFIED IDEOGRAPH +0xCFCA 0x9C9C #CJK UNIFIED IDEOGRAPH +0xCFCB 0x7EA4 #CJK UNIFIED IDEOGRAPH +0xCFCC 0x54B8 #CJK UNIFIED IDEOGRAPH +0xCFCD 0x8D24 #CJK UNIFIED IDEOGRAPH +0xCFCE 0x8854 #CJK UNIFIED IDEOGRAPH +0xCFCF 0x8237 #CJK UNIFIED IDEOGRAPH +0xCFD0 0x95F2 #CJK UNIFIED IDEOGRAPH +0xCFD1 0x6D8E #CJK UNIFIED IDEOGRAPH +0xCFD2 0x5F26 #CJK UNIFIED IDEOGRAPH +0xCFD3 0x5ACC #CJK UNIFIED IDEOGRAPH +0xCFD4 0x663E #CJK UNIFIED IDEOGRAPH +0xCFD5 0x9669 #CJK UNIFIED IDEOGRAPH +0xCFD6 0x73B0 #CJK UNIFIED IDEOGRAPH +0xCFD7 0x732E #CJK UNIFIED IDEOGRAPH +0xCFD8 0x53BF #CJK UNIFIED IDEOGRAPH +0xCFD9 0x817A #CJK UNIFIED IDEOGRAPH +0xCFDA 0x9985 #CJK UNIFIED IDEOGRAPH +0xCFDB 0x7FA1 #CJK UNIFIED IDEOGRAPH +0xCFDC 0x5BAA #CJK UNIFIED IDEOGRAPH +0xCFDD 0x9677 #CJK UNIFIED IDEOGRAPH +0xCFDE 0x9650 #CJK UNIFIED IDEOGRAPH +0xCFDF 0x7EBF #CJK UNIFIED IDEOGRAPH +0xCFE0 0x76F8 #CJK UNIFIED IDEOGRAPH +0xCFE1 0x53A2 #CJK UNIFIED IDEOGRAPH +0xCFE2 0x9576 #CJK UNIFIED IDEOGRAPH +0xCFE3 0x9999 #CJK UNIFIED IDEOGRAPH +0xCFE4 0x7BB1 #CJK UNIFIED IDEOGRAPH +0xCFE5 0x8944 #CJK UNIFIED IDEOGRAPH +0xCFE6 0x6E58 #CJK UNIFIED IDEOGRAPH +0xCFE7 0x4E61 #CJK UNIFIED IDEOGRAPH +0xCFE8 0x7FD4 #CJK UNIFIED IDEOGRAPH +0xCFE9 0x7965 #CJK UNIFIED IDEOGRAPH +0xCFEA 0x8BE6 #CJK UNIFIED IDEOGRAPH +0xCFEB 0x60F3 #CJK UNIFIED IDEOGRAPH +0xCFEC 0x54CD #CJK UNIFIED IDEOGRAPH +0xCFED 0x4EAB #CJK UNIFIED IDEOGRAPH +0xCFEE 0x9879 #CJK UNIFIED IDEOGRAPH +0xCFEF 0x5DF7 #CJK UNIFIED IDEOGRAPH +0xCFF0 0x6A61 #CJK UNIFIED IDEOGRAPH +0xCFF1 0x50CF #CJK UNIFIED IDEOGRAPH +0xCFF2 0x5411 #CJK UNIFIED IDEOGRAPH +0xCFF3 0x8C61 #CJK UNIFIED IDEOGRAPH +0xCFF4 0x8427 #CJK UNIFIED IDEOGRAPH +0xCFF5 0x785D #CJK UNIFIED IDEOGRAPH +0xCFF6 0x9704 #CJK UNIFIED IDEOGRAPH +0xCFF7 0x524A #CJK UNIFIED IDEOGRAPH +0xCFF8 0x54EE #CJK UNIFIED IDEOGRAPH +0xCFF9 0x56A3 #CJK UNIFIED IDEOGRAPH +0xCFFA 0x9500 #CJK UNIFIED IDEOGRAPH +0xCFFB 0x6D88 #CJK UNIFIED IDEOGRAPH +0xCFFC 0x5BB5 #CJK UNIFIED IDEOGRAPH +0xCFFD 0x6DC6 #CJK UNIFIED IDEOGRAPH +0xCFFE 0x6653 #CJK UNIFIED IDEOGRAPH +0xD040 0x8824 #CJK UNIFIED IDEOGRAPH +0xD041 0x8825 #CJK UNIFIED IDEOGRAPH +0xD042 0x8826 #CJK UNIFIED IDEOGRAPH +0xD043 0x8827 #CJK UNIFIED IDEOGRAPH +0xD044 0x8828 #CJK UNIFIED IDEOGRAPH +0xD045 0x8829 #CJK UNIFIED IDEOGRAPH +0xD046 0x882A #CJK UNIFIED IDEOGRAPH +0xD047 0x882B #CJK UNIFIED IDEOGRAPH +0xD048 0x882C #CJK UNIFIED IDEOGRAPH +0xD049 0x882D #CJK UNIFIED IDEOGRAPH +0xD04A 0x882E #CJK UNIFIED IDEOGRAPH +0xD04B 0x882F #CJK UNIFIED IDEOGRAPH +0xD04C 0x8830 #CJK UNIFIED IDEOGRAPH +0xD04D 0x8831 #CJK UNIFIED IDEOGRAPH +0xD04E 0x8833 #CJK UNIFIED IDEOGRAPH +0xD04F 0x8834 #CJK UNIFIED IDEOGRAPH +0xD050 0x8835 #CJK UNIFIED IDEOGRAPH +0xD051 0x8836 #CJK UNIFIED IDEOGRAPH +0xD052 0x8837 #CJK UNIFIED IDEOGRAPH +0xD053 0x8838 #CJK UNIFIED IDEOGRAPH +0xD054 0x883A #CJK UNIFIED IDEOGRAPH +0xD055 0x883B #CJK UNIFIED IDEOGRAPH +0xD056 0x883D #CJK UNIFIED IDEOGRAPH +0xD057 0x883E #CJK UNIFIED IDEOGRAPH +0xD058 0x883F #CJK UNIFIED IDEOGRAPH +0xD059 0x8841 #CJK UNIFIED IDEOGRAPH +0xD05A 0x8842 #CJK UNIFIED IDEOGRAPH +0xD05B 0x8843 #CJK UNIFIED IDEOGRAPH +0xD05C 0x8846 #CJK UNIFIED IDEOGRAPH +0xD05D 0x8847 #CJK UNIFIED IDEOGRAPH +0xD05E 0x8848 #CJK UNIFIED IDEOGRAPH +0xD05F 0x8849 #CJK UNIFIED IDEOGRAPH +0xD060 0x884A #CJK UNIFIED IDEOGRAPH +0xD061 0x884B #CJK UNIFIED IDEOGRAPH +0xD062 0x884E #CJK UNIFIED IDEOGRAPH +0xD063 0x884F #CJK UNIFIED IDEOGRAPH +0xD064 0x8850 #CJK UNIFIED IDEOGRAPH +0xD065 0x8851 #CJK UNIFIED IDEOGRAPH +0xD066 0x8852 #CJK UNIFIED IDEOGRAPH +0xD067 0x8853 #CJK UNIFIED IDEOGRAPH +0xD068 0x8855 #CJK UNIFIED IDEOGRAPH +0xD069 0x8856 #CJK UNIFIED IDEOGRAPH +0xD06A 0x8858 #CJK UNIFIED IDEOGRAPH +0xD06B 0x885A #CJK UNIFIED IDEOGRAPH +0xD06C 0x885B #CJK UNIFIED IDEOGRAPH +0xD06D 0x885C #CJK UNIFIED IDEOGRAPH +0xD06E 0x885D #CJK UNIFIED IDEOGRAPH +0xD06F 0x885E #CJK UNIFIED IDEOGRAPH +0xD070 0x885F #CJK UNIFIED IDEOGRAPH +0xD071 0x8860 #CJK UNIFIED IDEOGRAPH +0xD072 0x8866 #CJK UNIFIED IDEOGRAPH +0xD073 0x8867 #CJK UNIFIED IDEOGRAPH +0xD074 0x886A #CJK UNIFIED IDEOGRAPH +0xD075 0x886D #CJK UNIFIED IDEOGRAPH +0xD076 0x886F #CJK UNIFIED IDEOGRAPH +0xD077 0x8871 #CJK UNIFIED IDEOGRAPH +0xD078 0x8873 #CJK UNIFIED IDEOGRAPH +0xD079 0x8874 #CJK UNIFIED IDEOGRAPH +0xD07A 0x8875 #CJK UNIFIED IDEOGRAPH +0xD07B 0x8876 #CJK UNIFIED IDEOGRAPH +0xD07C 0x8878 #CJK UNIFIED IDEOGRAPH +0xD07D 0x8879 #CJK UNIFIED IDEOGRAPH +0xD07E 0x887A #CJK UNIFIED IDEOGRAPH +0xD080 0x887B #CJK UNIFIED IDEOGRAPH +0xD081 0x887C #CJK UNIFIED IDEOGRAPH +0xD082 0x8880 #CJK UNIFIED IDEOGRAPH +0xD083 0x8883 #CJK UNIFIED IDEOGRAPH +0xD084 0x8886 #CJK UNIFIED IDEOGRAPH +0xD085 0x8887 #CJK UNIFIED IDEOGRAPH +0xD086 0x8889 #CJK UNIFIED IDEOGRAPH +0xD087 0x888A #CJK UNIFIED IDEOGRAPH +0xD088 0x888C #CJK UNIFIED IDEOGRAPH +0xD089 0x888E #CJK UNIFIED IDEOGRAPH +0xD08A 0x888F #CJK UNIFIED IDEOGRAPH +0xD08B 0x8890 #CJK UNIFIED IDEOGRAPH +0xD08C 0x8891 #CJK UNIFIED IDEOGRAPH +0xD08D 0x8893 #CJK UNIFIED IDEOGRAPH +0xD08E 0x8894 #CJK UNIFIED IDEOGRAPH +0xD08F 0x8895 #CJK UNIFIED IDEOGRAPH +0xD090 0x8897 #CJK UNIFIED IDEOGRAPH +0xD091 0x8898 #CJK UNIFIED IDEOGRAPH +0xD092 0x8899 #CJK UNIFIED IDEOGRAPH +0xD093 0x889A #CJK UNIFIED IDEOGRAPH +0xD094 0x889B #CJK UNIFIED IDEOGRAPH +0xD095 0x889D #CJK UNIFIED IDEOGRAPH +0xD096 0x889E #CJK UNIFIED IDEOGRAPH +0xD097 0x889F #CJK UNIFIED IDEOGRAPH +0xD098 0x88A0 #CJK UNIFIED IDEOGRAPH +0xD099 0x88A1 #CJK UNIFIED IDEOGRAPH +0xD09A 0x88A3 #CJK UNIFIED IDEOGRAPH +0xD09B 0x88A5 #CJK UNIFIED IDEOGRAPH +0xD09C 0x88A6 #CJK UNIFIED IDEOGRAPH +0xD09D 0x88A7 #CJK UNIFIED IDEOGRAPH +0xD09E 0x88A8 #CJK UNIFIED IDEOGRAPH +0xD09F 0x88A9 #CJK UNIFIED IDEOGRAPH +0xD0A0 0x88AA #CJK UNIFIED IDEOGRAPH +0xD0A1 0x5C0F #CJK UNIFIED IDEOGRAPH +0xD0A2 0x5B5D #CJK UNIFIED IDEOGRAPH +0xD0A3 0x6821 #CJK UNIFIED IDEOGRAPH +0xD0A4 0x8096 #CJK UNIFIED IDEOGRAPH +0xD0A5 0x5578 #CJK UNIFIED IDEOGRAPH +0xD0A6 0x7B11 #CJK UNIFIED IDEOGRAPH +0xD0A7 0x6548 #CJK UNIFIED IDEOGRAPH +0xD0A8 0x6954 #CJK UNIFIED IDEOGRAPH +0xD0A9 0x4E9B #CJK UNIFIED IDEOGRAPH +0xD0AA 0x6B47 #CJK UNIFIED IDEOGRAPH +0xD0AB 0x874E #CJK UNIFIED IDEOGRAPH +0xD0AC 0x978B #CJK UNIFIED IDEOGRAPH +0xD0AD 0x534F #CJK UNIFIED IDEOGRAPH +0xD0AE 0x631F #CJK UNIFIED IDEOGRAPH +0xD0AF 0x643A #CJK UNIFIED IDEOGRAPH +0xD0B0 0x90AA #CJK UNIFIED IDEOGRAPH +0xD0B1 0x659C #CJK UNIFIED IDEOGRAPH +0xD0B2 0x80C1 #CJK UNIFIED IDEOGRAPH +0xD0B3 0x8C10 #CJK UNIFIED IDEOGRAPH +0xD0B4 0x5199 #CJK UNIFIED IDEOGRAPH +0xD0B5 0x68B0 #CJK UNIFIED IDEOGRAPH +0xD0B6 0x5378 #CJK UNIFIED IDEOGRAPH +0xD0B7 0x87F9 #CJK UNIFIED IDEOGRAPH +0xD0B8 0x61C8 #CJK UNIFIED IDEOGRAPH +0xD0B9 0x6CC4 #CJK UNIFIED IDEOGRAPH +0xD0BA 0x6CFB #CJK UNIFIED IDEOGRAPH +0xD0BB 0x8C22 #CJK UNIFIED IDEOGRAPH +0xD0BC 0x5C51 #CJK UNIFIED IDEOGRAPH +0xD0BD 0x85AA #CJK UNIFIED IDEOGRAPH +0xD0BE 0x82AF #CJK UNIFIED IDEOGRAPH +0xD0BF 0x950C #CJK UNIFIED IDEOGRAPH +0xD0C0 0x6B23 #CJK UNIFIED IDEOGRAPH +0xD0C1 0x8F9B #CJK UNIFIED IDEOGRAPH +0xD0C2 0x65B0 #CJK UNIFIED IDEOGRAPH +0xD0C3 0x5FFB #CJK UNIFIED IDEOGRAPH +0xD0C4 0x5FC3 #CJK UNIFIED IDEOGRAPH +0xD0C5 0x4FE1 #CJK UNIFIED IDEOGRAPH +0xD0C6 0x8845 #CJK UNIFIED IDEOGRAPH +0xD0C7 0x661F #CJK UNIFIED IDEOGRAPH +0xD0C8 0x8165 #CJK UNIFIED IDEOGRAPH +0xD0C9 0x7329 #CJK UNIFIED IDEOGRAPH +0xD0CA 0x60FA #CJK UNIFIED IDEOGRAPH +0xD0CB 0x5174 #CJK UNIFIED IDEOGRAPH +0xD0CC 0x5211 #CJK UNIFIED IDEOGRAPH +0xD0CD 0x578B #CJK UNIFIED IDEOGRAPH +0xD0CE 0x5F62 #CJK UNIFIED IDEOGRAPH +0xD0CF 0x90A2 #CJK UNIFIED IDEOGRAPH +0xD0D0 0x884C #CJK UNIFIED IDEOGRAPH +0xD0D1 0x9192 #CJK UNIFIED IDEOGRAPH +0xD0D2 0x5E78 #CJK UNIFIED IDEOGRAPH +0xD0D3 0x674F #CJK UNIFIED IDEOGRAPH +0xD0D4 0x6027 #CJK UNIFIED IDEOGRAPH +0xD0D5 0x59D3 #CJK UNIFIED IDEOGRAPH +0xD0D6 0x5144 #CJK UNIFIED IDEOGRAPH +0xD0D7 0x51F6 #CJK UNIFIED IDEOGRAPH +0xD0D8 0x80F8 #CJK UNIFIED IDEOGRAPH +0xD0D9 0x5308 #CJK UNIFIED IDEOGRAPH +0xD0DA 0x6C79 #CJK UNIFIED IDEOGRAPH +0xD0DB 0x96C4 #CJK UNIFIED IDEOGRAPH +0xD0DC 0x718A #CJK UNIFIED IDEOGRAPH +0xD0DD 0x4F11 #CJK UNIFIED IDEOGRAPH +0xD0DE 0x4FEE #CJK UNIFIED IDEOGRAPH +0xD0DF 0x7F9E #CJK UNIFIED IDEOGRAPH +0xD0E0 0x673D #CJK UNIFIED IDEOGRAPH +0xD0E1 0x55C5 #CJK UNIFIED IDEOGRAPH +0xD0E2 0x9508 #CJK UNIFIED IDEOGRAPH +0xD0E3 0x79C0 #CJK UNIFIED IDEOGRAPH +0xD0E4 0x8896 #CJK UNIFIED IDEOGRAPH +0xD0E5 0x7EE3 #CJK UNIFIED IDEOGRAPH +0xD0E6 0x589F #CJK UNIFIED IDEOGRAPH +0xD0E7 0x620C #CJK UNIFIED IDEOGRAPH +0xD0E8 0x9700 #CJK UNIFIED IDEOGRAPH +0xD0E9 0x865A #CJK UNIFIED IDEOGRAPH +0xD0EA 0x5618 #CJK UNIFIED IDEOGRAPH +0xD0EB 0x987B #CJK UNIFIED IDEOGRAPH +0xD0EC 0x5F90 #CJK UNIFIED IDEOGRAPH +0xD0ED 0x8BB8 #CJK UNIFIED IDEOGRAPH +0xD0EE 0x84C4 #CJK UNIFIED IDEOGRAPH +0xD0EF 0x9157 #CJK UNIFIED IDEOGRAPH +0xD0F0 0x53D9 #CJK UNIFIED IDEOGRAPH +0xD0F1 0x65ED #CJK UNIFIED IDEOGRAPH +0xD0F2 0x5E8F #CJK UNIFIED IDEOGRAPH +0xD0F3 0x755C #CJK UNIFIED IDEOGRAPH +0xD0F4 0x6064 #CJK UNIFIED IDEOGRAPH +0xD0F5 0x7D6E #CJK UNIFIED IDEOGRAPH +0xD0F6 0x5A7F #CJK UNIFIED IDEOGRAPH +0xD0F7 0x7EEA #CJK UNIFIED IDEOGRAPH +0xD0F8 0x7EED #CJK UNIFIED IDEOGRAPH +0xD0F9 0x8F69 #CJK UNIFIED IDEOGRAPH +0xD0FA 0x55A7 #CJK UNIFIED IDEOGRAPH +0xD0FB 0x5BA3 #CJK UNIFIED IDEOGRAPH +0xD0FC 0x60AC #CJK UNIFIED IDEOGRAPH +0xD0FD 0x65CB #CJK UNIFIED IDEOGRAPH +0xD0FE 0x7384 #CJK UNIFIED IDEOGRAPH +0xD140 0x88AC #CJK UNIFIED IDEOGRAPH +0xD141 0x88AE #CJK UNIFIED IDEOGRAPH +0xD142 0x88AF #CJK UNIFIED IDEOGRAPH +0xD143 0x88B0 #CJK UNIFIED IDEOGRAPH +0xD144 0x88B2 #CJK UNIFIED IDEOGRAPH +0xD145 0x88B3 #CJK UNIFIED IDEOGRAPH +0xD146 0x88B4 #CJK UNIFIED IDEOGRAPH +0xD147 0x88B5 #CJK UNIFIED IDEOGRAPH +0xD148 0x88B6 #CJK UNIFIED IDEOGRAPH +0xD149 0x88B8 #CJK UNIFIED IDEOGRAPH +0xD14A 0x88B9 #CJK UNIFIED IDEOGRAPH +0xD14B 0x88BA #CJK UNIFIED IDEOGRAPH +0xD14C 0x88BB #CJK UNIFIED IDEOGRAPH +0xD14D 0x88BD #CJK UNIFIED IDEOGRAPH +0xD14E 0x88BE #CJK UNIFIED IDEOGRAPH +0xD14F 0x88BF #CJK UNIFIED IDEOGRAPH +0xD150 0x88C0 #CJK UNIFIED IDEOGRAPH +0xD151 0x88C3 #CJK UNIFIED IDEOGRAPH +0xD152 0x88C4 #CJK UNIFIED IDEOGRAPH +0xD153 0x88C7 #CJK UNIFIED IDEOGRAPH +0xD154 0x88C8 #CJK UNIFIED IDEOGRAPH +0xD155 0x88CA #CJK UNIFIED IDEOGRAPH +0xD156 0x88CB #CJK UNIFIED IDEOGRAPH +0xD157 0x88CC #CJK UNIFIED IDEOGRAPH +0xD158 0x88CD #CJK UNIFIED IDEOGRAPH +0xD159 0x88CF #CJK UNIFIED IDEOGRAPH +0xD15A 0x88D0 #CJK UNIFIED IDEOGRAPH +0xD15B 0x88D1 #CJK UNIFIED IDEOGRAPH +0xD15C 0x88D3 #CJK UNIFIED IDEOGRAPH +0xD15D 0x88D6 #CJK UNIFIED IDEOGRAPH +0xD15E 0x88D7 #CJK UNIFIED IDEOGRAPH +0xD15F 0x88DA #CJK UNIFIED IDEOGRAPH +0xD160 0x88DB #CJK UNIFIED IDEOGRAPH +0xD161 0x88DC #CJK UNIFIED IDEOGRAPH +0xD162 0x88DD #CJK UNIFIED IDEOGRAPH +0xD163 0x88DE #CJK UNIFIED IDEOGRAPH +0xD164 0x88E0 #CJK UNIFIED IDEOGRAPH +0xD165 0x88E1 #CJK UNIFIED IDEOGRAPH +0xD166 0x88E6 #CJK UNIFIED IDEOGRAPH +0xD167 0x88E7 #CJK UNIFIED IDEOGRAPH +0xD168 0x88E9 #CJK UNIFIED IDEOGRAPH +0xD169 0x88EA #CJK UNIFIED IDEOGRAPH +0xD16A 0x88EB #CJK UNIFIED IDEOGRAPH +0xD16B 0x88EC #CJK UNIFIED IDEOGRAPH +0xD16C 0x88ED #CJK UNIFIED IDEOGRAPH +0xD16D 0x88EE #CJK UNIFIED IDEOGRAPH +0xD16E 0x88EF #CJK UNIFIED IDEOGRAPH +0xD16F 0x88F2 #CJK UNIFIED IDEOGRAPH +0xD170 0x88F5 #CJK UNIFIED IDEOGRAPH +0xD171 0x88F6 #CJK UNIFIED IDEOGRAPH +0xD172 0x88F7 #CJK UNIFIED IDEOGRAPH +0xD173 0x88FA #CJK UNIFIED IDEOGRAPH +0xD174 0x88FB #CJK UNIFIED IDEOGRAPH +0xD175 0x88FD #CJK UNIFIED IDEOGRAPH +0xD176 0x88FF #CJK UNIFIED IDEOGRAPH +0xD177 0x8900 #CJK UNIFIED IDEOGRAPH +0xD178 0x8901 #CJK UNIFIED IDEOGRAPH +0xD179 0x8903 #CJK UNIFIED IDEOGRAPH +0xD17A 0x8904 #CJK UNIFIED IDEOGRAPH +0xD17B 0x8905 #CJK UNIFIED IDEOGRAPH +0xD17C 0x8906 #CJK UNIFIED IDEOGRAPH +0xD17D 0x8907 #CJK UNIFIED IDEOGRAPH +0xD17E 0x8908 #CJK UNIFIED IDEOGRAPH +0xD180 0x8909 #CJK UNIFIED IDEOGRAPH +0xD181 0x890B #CJK UNIFIED IDEOGRAPH +0xD182 0x890C #CJK UNIFIED IDEOGRAPH +0xD183 0x890D #CJK UNIFIED IDEOGRAPH +0xD184 0x890E #CJK UNIFIED IDEOGRAPH +0xD185 0x890F #CJK UNIFIED IDEOGRAPH +0xD186 0x8911 #CJK UNIFIED IDEOGRAPH +0xD187 0x8914 #CJK UNIFIED IDEOGRAPH +0xD188 0x8915 #CJK UNIFIED IDEOGRAPH +0xD189 0x8916 #CJK UNIFIED IDEOGRAPH +0xD18A 0x8917 #CJK UNIFIED IDEOGRAPH +0xD18B 0x8918 #CJK UNIFIED IDEOGRAPH +0xD18C 0x891C #CJK UNIFIED IDEOGRAPH +0xD18D 0x891D #CJK UNIFIED IDEOGRAPH +0xD18E 0x891E #CJK UNIFIED IDEOGRAPH +0xD18F 0x891F #CJK UNIFIED IDEOGRAPH +0xD190 0x8920 #CJK UNIFIED IDEOGRAPH +0xD191 0x8922 #CJK UNIFIED IDEOGRAPH +0xD192 0x8923 #CJK UNIFIED IDEOGRAPH +0xD193 0x8924 #CJK UNIFIED IDEOGRAPH +0xD194 0x8926 #CJK UNIFIED IDEOGRAPH +0xD195 0x8927 #CJK UNIFIED IDEOGRAPH +0xD196 0x8928 #CJK UNIFIED IDEOGRAPH +0xD197 0x8929 #CJK UNIFIED IDEOGRAPH +0xD198 0x892C #CJK UNIFIED IDEOGRAPH +0xD199 0x892D #CJK UNIFIED IDEOGRAPH +0xD19A 0x892E #CJK UNIFIED IDEOGRAPH +0xD19B 0x892F #CJK UNIFIED IDEOGRAPH +0xD19C 0x8931 #CJK UNIFIED IDEOGRAPH +0xD19D 0x8932 #CJK UNIFIED IDEOGRAPH +0xD19E 0x8933 #CJK UNIFIED IDEOGRAPH +0xD19F 0x8935 #CJK UNIFIED IDEOGRAPH +0xD1A0 0x8937 #CJK UNIFIED IDEOGRAPH +0xD1A1 0x9009 #CJK UNIFIED IDEOGRAPH +0xD1A2 0x7663 #CJK UNIFIED IDEOGRAPH +0xD1A3 0x7729 #CJK UNIFIED IDEOGRAPH +0xD1A4 0x7EDA #CJK UNIFIED IDEOGRAPH +0xD1A5 0x9774 #CJK UNIFIED IDEOGRAPH +0xD1A6 0x859B #CJK UNIFIED IDEOGRAPH +0xD1A7 0x5B66 #CJK UNIFIED IDEOGRAPH +0xD1A8 0x7A74 #CJK UNIFIED IDEOGRAPH +0xD1A9 0x96EA #CJK UNIFIED IDEOGRAPH +0xD1AA 0x8840 #CJK UNIFIED IDEOGRAPH +0xD1AB 0x52CB #CJK UNIFIED IDEOGRAPH +0xD1AC 0x718F #CJK UNIFIED IDEOGRAPH +0xD1AD 0x5FAA #CJK UNIFIED IDEOGRAPH +0xD1AE 0x65EC #CJK UNIFIED IDEOGRAPH +0xD1AF 0x8BE2 #CJK UNIFIED IDEOGRAPH +0xD1B0 0x5BFB #CJK UNIFIED IDEOGRAPH +0xD1B1 0x9A6F #CJK UNIFIED IDEOGRAPH +0xD1B2 0x5DE1 #CJK UNIFIED IDEOGRAPH +0xD1B3 0x6B89 #CJK UNIFIED IDEOGRAPH +0xD1B4 0x6C5B #CJK UNIFIED IDEOGRAPH +0xD1B5 0x8BAD #CJK UNIFIED IDEOGRAPH +0xD1B6 0x8BAF #CJK UNIFIED IDEOGRAPH +0xD1B7 0x900A #CJK UNIFIED IDEOGRAPH +0xD1B8 0x8FC5 #CJK UNIFIED IDEOGRAPH +0xD1B9 0x538B #CJK UNIFIED IDEOGRAPH +0xD1BA 0x62BC #CJK UNIFIED IDEOGRAPH +0xD1BB 0x9E26 #CJK UNIFIED IDEOGRAPH +0xD1BC 0x9E2D #CJK UNIFIED IDEOGRAPH +0xD1BD 0x5440 #CJK UNIFIED IDEOGRAPH +0xD1BE 0x4E2B #CJK UNIFIED IDEOGRAPH +0xD1BF 0x82BD #CJK UNIFIED IDEOGRAPH +0xD1C0 0x7259 #CJK UNIFIED IDEOGRAPH +0xD1C1 0x869C #CJK UNIFIED IDEOGRAPH +0xD1C2 0x5D16 #CJK UNIFIED IDEOGRAPH +0xD1C3 0x8859 #CJK UNIFIED IDEOGRAPH +0xD1C4 0x6DAF #CJK UNIFIED IDEOGRAPH +0xD1C5 0x96C5 #CJK UNIFIED IDEOGRAPH +0xD1C6 0x54D1 #CJK UNIFIED IDEOGRAPH +0xD1C7 0x4E9A #CJK UNIFIED IDEOGRAPH +0xD1C8 0x8BB6 #CJK UNIFIED IDEOGRAPH +0xD1C9 0x7109 #CJK UNIFIED IDEOGRAPH +0xD1CA 0x54BD #CJK UNIFIED IDEOGRAPH +0xD1CB 0x9609 #CJK UNIFIED IDEOGRAPH +0xD1CC 0x70DF #CJK UNIFIED IDEOGRAPH +0xD1CD 0x6DF9 #CJK UNIFIED IDEOGRAPH +0xD1CE 0x76D0 #CJK UNIFIED IDEOGRAPH +0xD1CF 0x4E25 #CJK UNIFIED IDEOGRAPH +0xD1D0 0x7814 #CJK UNIFIED IDEOGRAPH +0xD1D1 0x8712 #CJK UNIFIED IDEOGRAPH +0xD1D2 0x5CA9 #CJK UNIFIED IDEOGRAPH +0xD1D3 0x5EF6 #CJK UNIFIED IDEOGRAPH +0xD1D4 0x8A00 #CJK UNIFIED IDEOGRAPH +0xD1D5 0x989C #CJK UNIFIED IDEOGRAPH +0xD1D6 0x960E #CJK UNIFIED IDEOGRAPH +0xD1D7 0x708E #CJK UNIFIED IDEOGRAPH +0xD1D8 0x6CBF #CJK UNIFIED IDEOGRAPH +0xD1D9 0x5944 #CJK UNIFIED IDEOGRAPH +0xD1DA 0x63A9 #CJK UNIFIED IDEOGRAPH +0xD1DB 0x773C #CJK UNIFIED IDEOGRAPH +0xD1DC 0x884D #CJK UNIFIED IDEOGRAPH +0xD1DD 0x6F14 #CJK UNIFIED IDEOGRAPH +0xD1DE 0x8273 #CJK UNIFIED IDEOGRAPH +0xD1DF 0x5830 #CJK UNIFIED IDEOGRAPH +0xD1E0 0x71D5 #CJK UNIFIED IDEOGRAPH +0xD1E1 0x538C #CJK UNIFIED IDEOGRAPH +0xD1E2 0x781A #CJK UNIFIED IDEOGRAPH +0xD1E3 0x96C1 #CJK UNIFIED IDEOGRAPH +0xD1E4 0x5501 #CJK UNIFIED IDEOGRAPH +0xD1E5 0x5F66 #CJK UNIFIED IDEOGRAPH +0xD1E6 0x7130 #CJK UNIFIED IDEOGRAPH +0xD1E7 0x5BB4 #CJK UNIFIED IDEOGRAPH +0xD1E8 0x8C1A #CJK UNIFIED IDEOGRAPH +0xD1E9 0x9A8C #CJK UNIFIED IDEOGRAPH +0xD1EA 0x6B83 #CJK UNIFIED IDEOGRAPH +0xD1EB 0x592E #CJK UNIFIED IDEOGRAPH +0xD1EC 0x9E2F #CJK UNIFIED IDEOGRAPH +0xD1ED 0x79E7 #CJK UNIFIED IDEOGRAPH +0xD1EE 0x6768 #CJK UNIFIED IDEOGRAPH +0xD1EF 0x626C #CJK UNIFIED IDEOGRAPH +0xD1F0 0x4F6F #CJK UNIFIED IDEOGRAPH +0xD1F1 0x75A1 #CJK UNIFIED IDEOGRAPH +0xD1F2 0x7F8A #CJK UNIFIED IDEOGRAPH +0xD1F3 0x6D0B #CJK UNIFIED IDEOGRAPH +0xD1F4 0x9633 #CJK UNIFIED IDEOGRAPH +0xD1F5 0x6C27 #CJK UNIFIED IDEOGRAPH +0xD1F6 0x4EF0 #CJK UNIFIED IDEOGRAPH +0xD1F7 0x75D2 #CJK UNIFIED IDEOGRAPH +0xD1F8 0x517B #CJK UNIFIED IDEOGRAPH +0xD1F9 0x6837 #CJK UNIFIED IDEOGRAPH +0xD1FA 0x6F3E #CJK UNIFIED IDEOGRAPH +0xD1FB 0x9080 #CJK UNIFIED IDEOGRAPH +0xD1FC 0x8170 #CJK UNIFIED IDEOGRAPH +0xD1FD 0x5996 #CJK UNIFIED IDEOGRAPH +0xD1FE 0x7476 #CJK UNIFIED IDEOGRAPH +0xD240 0x8938 #CJK UNIFIED IDEOGRAPH +0xD241 0x8939 #CJK UNIFIED IDEOGRAPH +0xD242 0x893A #CJK UNIFIED IDEOGRAPH +0xD243 0x893B #CJK UNIFIED IDEOGRAPH +0xD244 0x893C #CJK UNIFIED IDEOGRAPH +0xD245 0x893D #CJK UNIFIED IDEOGRAPH +0xD246 0x893E #CJK UNIFIED IDEOGRAPH +0xD247 0x893F #CJK UNIFIED IDEOGRAPH +0xD248 0x8940 #CJK UNIFIED IDEOGRAPH +0xD249 0x8942 #CJK UNIFIED IDEOGRAPH +0xD24A 0x8943 #CJK UNIFIED IDEOGRAPH +0xD24B 0x8945 #CJK UNIFIED IDEOGRAPH +0xD24C 0x8946 #CJK UNIFIED IDEOGRAPH +0xD24D 0x8947 #CJK UNIFIED IDEOGRAPH +0xD24E 0x8948 #CJK UNIFIED IDEOGRAPH +0xD24F 0x8949 #CJK UNIFIED IDEOGRAPH +0xD250 0x894A #CJK UNIFIED IDEOGRAPH +0xD251 0x894B #CJK UNIFIED IDEOGRAPH +0xD252 0x894C #CJK UNIFIED IDEOGRAPH +0xD253 0x894D #CJK UNIFIED IDEOGRAPH +0xD254 0x894E #CJK UNIFIED IDEOGRAPH +0xD255 0x894F #CJK UNIFIED IDEOGRAPH +0xD256 0x8950 #CJK UNIFIED IDEOGRAPH +0xD257 0x8951 #CJK UNIFIED IDEOGRAPH +0xD258 0x8952 #CJK UNIFIED IDEOGRAPH +0xD259 0x8953 #CJK UNIFIED IDEOGRAPH +0xD25A 0x8954 #CJK UNIFIED IDEOGRAPH +0xD25B 0x8955 #CJK UNIFIED IDEOGRAPH +0xD25C 0x8956 #CJK UNIFIED IDEOGRAPH +0xD25D 0x8957 #CJK UNIFIED IDEOGRAPH +0xD25E 0x8958 #CJK UNIFIED IDEOGRAPH +0xD25F 0x8959 #CJK UNIFIED IDEOGRAPH +0xD260 0x895A #CJK UNIFIED IDEOGRAPH +0xD261 0x895B #CJK UNIFIED IDEOGRAPH +0xD262 0x895C #CJK UNIFIED IDEOGRAPH +0xD263 0x895D #CJK UNIFIED IDEOGRAPH +0xD264 0x8960 #CJK UNIFIED IDEOGRAPH +0xD265 0x8961 #CJK UNIFIED IDEOGRAPH +0xD266 0x8962 #CJK UNIFIED IDEOGRAPH +0xD267 0x8963 #CJK UNIFIED IDEOGRAPH +0xD268 0x8964 #CJK UNIFIED IDEOGRAPH +0xD269 0x8965 #CJK UNIFIED IDEOGRAPH +0xD26A 0x8967 #CJK UNIFIED IDEOGRAPH +0xD26B 0x8968 #CJK UNIFIED IDEOGRAPH +0xD26C 0x8969 #CJK UNIFIED IDEOGRAPH +0xD26D 0x896A #CJK UNIFIED IDEOGRAPH +0xD26E 0x896B #CJK UNIFIED IDEOGRAPH +0xD26F 0x896C #CJK UNIFIED IDEOGRAPH +0xD270 0x896D #CJK UNIFIED IDEOGRAPH +0xD271 0x896E #CJK UNIFIED IDEOGRAPH +0xD272 0x896F #CJK UNIFIED IDEOGRAPH +0xD273 0x8970 #CJK UNIFIED IDEOGRAPH +0xD274 0x8971 #CJK UNIFIED IDEOGRAPH +0xD275 0x8972 #CJK UNIFIED IDEOGRAPH +0xD276 0x8973 #CJK UNIFIED IDEOGRAPH +0xD277 0x8974 #CJK UNIFIED IDEOGRAPH +0xD278 0x8975 #CJK UNIFIED IDEOGRAPH +0xD279 0x8976 #CJK UNIFIED IDEOGRAPH +0xD27A 0x8977 #CJK UNIFIED IDEOGRAPH +0xD27B 0x8978 #CJK UNIFIED IDEOGRAPH +0xD27C 0x8979 #CJK UNIFIED IDEOGRAPH +0xD27D 0x897A #CJK UNIFIED IDEOGRAPH +0xD27E 0x897C #CJK UNIFIED IDEOGRAPH +0xD280 0x897D #CJK UNIFIED IDEOGRAPH +0xD281 0x897E #CJK UNIFIED IDEOGRAPH +0xD282 0x8980 #CJK UNIFIED IDEOGRAPH +0xD283 0x8982 #CJK UNIFIED IDEOGRAPH +0xD284 0x8984 #CJK UNIFIED IDEOGRAPH +0xD285 0x8985 #CJK UNIFIED IDEOGRAPH +0xD286 0x8987 #CJK UNIFIED IDEOGRAPH +0xD287 0x8988 #CJK UNIFIED IDEOGRAPH +0xD288 0x8989 #CJK UNIFIED IDEOGRAPH +0xD289 0x898A #CJK UNIFIED IDEOGRAPH +0xD28A 0x898B #CJK UNIFIED IDEOGRAPH +0xD28B 0x898C #CJK UNIFIED IDEOGRAPH +0xD28C 0x898D #CJK UNIFIED IDEOGRAPH +0xD28D 0x898E #CJK UNIFIED IDEOGRAPH +0xD28E 0x898F #CJK UNIFIED IDEOGRAPH +0xD28F 0x8990 #CJK UNIFIED IDEOGRAPH +0xD290 0x8991 #CJK UNIFIED IDEOGRAPH +0xD291 0x8992 #CJK UNIFIED IDEOGRAPH +0xD292 0x8993 #CJK UNIFIED IDEOGRAPH +0xD293 0x8994 #CJK UNIFIED IDEOGRAPH +0xD294 0x8995 #CJK UNIFIED IDEOGRAPH +0xD295 0x8996 #CJK UNIFIED IDEOGRAPH +0xD296 0x8997 #CJK UNIFIED IDEOGRAPH +0xD297 0x8998 #CJK UNIFIED IDEOGRAPH +0xD298 0x8999 #CJK UNIFIED IDEOGRAPH +0xD299 0x899A #CJK UNIFIED IDEOGRAPH +0xD29A 0x899B #CJK UNIFIED IDEOGRAPH +0xD29B 0x899C #CJK UNIFIED IDEOGRAPH +0xD29C 0x899D #CJK UNIFIED IDEOGRAPH +0xD29D 0x899E #CJK UNIFIED IDEOGRAPH +0xD29E 0x899F #CJK UNIFIED IDEOGRAPH +0xD29F 0x89A0 #CJK UNIFIED IDEOGRAPH +0xD2A0 0x89A1 #CJK UNIFIED IDEOGRAPH +0xD2A1 0x6447 #CJK UNIFIED IDEOGRAPH +0xD2A2 0x5C27 #CJK UNIFIED IDEOGRAPH +0xD2A3 0x9065 #CJK UNIFIED IDEOGRAPH +0xD2A4 0x7A91 #CJK UNIFIED IDEOGRAPH +0xD2A5 0x8C23 #CJK UNIFIED IDEOGRAPH +0xD2A6 0x59DA #CJK UNIFIED IDEOGRAPH +0xD2A7 0x54AC #CJK UNIFIED IDEOGRAPH +0xD2A8 0x8200 #CJK UNIFIED IDEOGRAPH +0xD2A9 0x836F #CJK UNIFIED IDEOGRAPH +0xD2AA 0x8981 #CJK UNIFIED IDEOGRAPH +0xD2AB 0x8000 #CJK UNIFIED IDEOGRAPH +0xD2AC 0x6930 #CJK UNIFIED IDEOGRAPH +0xD2AD 0x564E #CJK UNIFIED IDEOGRAPH +0xD2AE 0x8036 #CJK UNIFIED IDEOGRAPH +0xD2AF 0x7237 #CJK UNIFIED IDEOGRAPH +0xD2B0 0x91CE #CJK UNIFIED IDEOGRAPH +0xD2B1 0x51B6 #CJK UNIFIED IDEOGRAPH +0xD2B2 0x4E5F #CJK UNIFIED IDEOGRAPH +0xD2B3 0x9875 #CJK UNIFIED IDEOGRAPH +0xD2B4 0x6396 #CJK UNIFIED IDEOGRAPH +0xD2B5 0x4E1A #CJK UNIFIED IDEOGRAPH +0xD2B6 0x53F6 #CJK UNIFIED IDEOGRAPH +0xD2B7 0x66F3 #CJK UNIFIED IDEOGRAPH +0xD2B8 0x814B #CJK UNIFIED IDEOGRAPH +0xD2B9 0x591C #CJK UNIFIED IDEOGRAPH +0xD2BA 0x6DB2 #CJK UNIFIED IDEOGRAPH +0xD2BB 0x4E00 #CJK UNIFIED IDEOGRAPH +0xD2BC 0x58F9 #CJK UNIFIED IDEOGRAPH +0xD2BD 0x533B #CJK UNIFIED IDEOGRAPH +0xD2BE 0x63D6 #CJK UNIFIED IDEOGRAPH +0xD2BF 0x94F1 #CJK UNIFIED IDEOGRAPH +0xD2C0 0x4F9D #CJK UNIFIED IDEOGRAPH +0xD2C1 0x4F0A #CJK UNIFIED IDEOGRAPH +0xD2C2 0x8863 #CJK UNIFIED IDEOGRAPH +0xD2C3 0x9890 #CJK UNIFIED IDEOGRAPH +0xD2C4 0x5937 #CJK UNIFIED IDEOGRAPH +0xD2C5 0x9057 #CJK UNIFIED IDEOGRAPH +0xD2C6 0x79FB #CJK UNIFIED IDEOGRAPH +0xD2C7 0x4EEA #CJK UNIFIED IDEOGRAPH +0xD2C8 0x80F0 #CJK UNIFIED IDEOGRAPH +0xD2C9 0x7591 #CJK UNIFIED IDEOGRAPH +0xD2CA 0x6C82 #CJK UNIFIED IDEOGRAPH +0xD2CB 0x5B9C #CJK UNIFIED IDEOGRAPH +0xD2CC 0x59E8 #CJK UNIFIED IDEOGRAPH +0xD2CD 0x5F5D #CJK UNIFIED IDEOGRAPH +0xD2CE 0x6905 #CJK UNIFIED IDEOGRAPH +0xD2CF 0x8681 #CJK UNIFIED IDEOGRAPH +0xD2D0 0x501A #CJK UNIFIED IDEOGRAPH +0xD2D1 0x5DF2 #CJK UNIFIED IDEOGRAPH +0xD2D2 0x4E59 #CJK UNIFIED IDEOGRAPH +0xD2D3 0x77E3 #CJK UNIFIED IDEOGRAPH +0xD2D4 0x4EE5 #CJK UNIFIED IDEOGRAPH +0xD2D5 0x827A #CJK UNIFIED IDEOGRAPH +0xD2D6 0x6291 #CJK UNIFIED IDEOGRAPH +0xD2D7 0x6613 #CJK UNIFIED IDEOGRAPH +0xD2D8 0x9091 #CJK UNIFIED IDEOGRAPH +0xD2D9 0x5C79 #CJK UNIFIED IDEOGRAPH +0xD2DA 0x4EBF #CJK UNIFIED IDEOGRAPH +0xD2DB 0x5F79 #CJK UNIFIED IDEOGRAPH +0xD2DC 0x81C6 #CJK UNIFIED IDEOGRAPH +0xD2DD 0x9038 #CJK UNIFIED IDEOGRAPH +0xD2DE 0x8084 #CJK UNIFIED IDEOGRAPH +0xD2DF 0x75AB #CJK UNIFIED IDEOGRAPH +0xD2E0 0x4EA6 #CJK UNIFIED IDEOGRAPH +0xD2E1 0x88D4 #CJK UNIFIED IDEOGRAPH +0xD2E2 0x610F #CJK UNIFIED IDEOGRAPH +0xD2E3 0x6BC5 #CJK UNIFIED IDEOGRAPH +0xD2E4 0x5FC6 #CJK UNIFIED IDEOGRAPH +0xD2E5 0x4E49 #CJK UNIFIED IDEOGRAPH +0xD2E6 0x76CA #CJK UNIFIED IDEOGRAPH +0xD2E7 0x6EA2 #CJK UNIFIED IDEOGRAPH +0xD2E8 0x8BE3 #CJK UNIFIED IDEOGRAPH +0xD2E9 0x8BAE #CJK UNIFIED IDEOGRAPH +0xD2EA 0x8C0A #CJK UNIFIED IDEOGRAPH +0xD2EB 0x8BD1 #CJK UNIFIED IDEOGRAPH +0xD2EC 0x5F02 #CJK UNIFIED IDEOGRAPH +0xD2ED 0x7FFC #CJK UNIFIED IDEOGRAPH +0xD2EE 0x7FCC #CJK UNIFIED IDEOGRAPH +0xD2EF 0x7ECE #CJK UNIFIED IDEOGRAPH +0xD2F0 0x8335 #CJK UNIFIED IDEOGRAPH +0xD2F1 0x836B #CJK UNIFIED IDEOGRAPH +0xD2F2 0x56E0 #CJK UNIFIED IDEOGRAPH +0xD2F3 0x6BB7 #CJK UNIFIED IDEOGRAPH +0xD2F4 0x97F3 #CJK UNIFIED IDEOGRAPH +0xD2F5 0x9634 #CJK UNIFIED IDEOGRAPH +0xD2F6 0x59FB #CJK UNIFIED IDEOGRAPH +0xD2F7 0x541F #CJK UNIFIED IDEOGRAPH +0xD2F8 0x94F6 #CJK UNIFIED IDEOGRAPH +0xD2F9 0x6DEB #CJK UNIFIED IDEOGRAPH +0xD2FA 0x5BC5 #CJK UNIFIED IDEOGRAPH +0xD2FB 0x996E #CJK UNIFIED IDEOGRAPH +0xD2FC 0x5C39 #CJK UNIFIED IDEOGRAPH +0xD2FD 0x5F15 #CJK UNIFIED IDEOGRAPH +0xD2FE 0x9690 #CJK UNIFIED IDEOGRAPH +0xD340 0x89A2 #CJK UNIFIED IDEOGRAPH +0xD341 0x89A3 #CJK UNIFIED IDEOGRAPH +0xD342 0x89A4 #CJK UNIFIED IDEOGRAPH +0xD343 0x89A5 #CJK UNIFIED IDEOGRAPH +0xD344 0x89A6 #CJK UNIFIED IDEOGRAPH +0xD345 0x89A7 #CJK UNIFIED IDEOGRAPH +0xD346 0x89A8 #CJK UNIFIED IDEOGRAPH +0xD347 0x89A9 #CJK UNIFIED IDEOGRAPH +0xD348 0x89AA #CJK UNIFIED IDEOGRAPH +0xD349 0x89AB #CJK UNIFIED IDEOGRAPH +0xD34A 0x89AC #CJK UNIFIED IDEOGRAPH +0xD34B 0x89AD #CJK UNIFIED IDEOGRAPH +0xD34C 0x89AE #CJK UNIFIED IDEOGRAPH +0xD34D 0x89AF #CJK UNIFIED IDEOGRAPH +0xD34E 0x89B0 #CJK UNIFIED IDEOGRAPH +0xD34F 0x89B1 #CJK UNIFIED IDEOGRAPH +0xD350 0x89B2 #CJK UNIFIED IDEOGRAPH +0xD351 0x89B3 #CJK UNIFIED IDEOGRAPH +0xD352 0x89B4 #CJK UNIFIED IDEOGRAPH +0xD353 0x89B5 #CJK UNIFIED IDEOGRAPH +0xD354 0x89B6 #CJK UNIFIED IDEOGRAPH +0xD355 0x89B7 #CJK UNIFIED IDEOGRAPH +0xD356 0x89B8 #CJK UNIFIED IDEOGRAPH +0xD357 0x89B9 #CJK UNIFIED IDEOGRAPH +0xD358 0x89BA #CJK UNIFIED IDEOGRAPH +0xD359 0x89BB #CJK UNIFIED IDEOGRAPH +0xD35A 0x89BC #CJK UNIFIED IDEOGRAPH +0xD35B 0x89BD #CJK UNIFIED IDEOGRAPH +0xD35C 0x89BE #CJK UNIFIED IDEOGRAPH +0xD35D 0x89BF #CJK UNIFIED IDEOGRAPH +0xD35E 0x89C0 #CJK UNIFIED IDEOGRAPH +0xD35F 0x89C3 #CJK UNIFIED IDEOGRAPH +0xD360 0x89CD #CJK UNIFIED IDEOGRAPH +0xD361 0x89D3 #CJK UNIFIED IDEOGRAPH +0xD362 0x89D4 #CJK UNIFIED IDEOGRAPH +0xD363 0x89D5 #CJK UNIFIED IDEOGRAPH +0xD364 0x89D7 #CJK UNIFIED IDEOGRAPH +0xD365 0x89D8 #CJK UNIFIED IDEOGRAPH +0xD366 0x89D9 #CJK UNIFIED IDEOGRAPH +0xD367 0x89DB #CJK UNIFIED IDEOGRAPH +0xD368 0x89DD #CJK UNIFIED IDEOGRAPH +0xD369 0x89DF #CJK UNIFIED IDEOGRAPH +0xD36A 0x89E0 #CJK UNIFIED IDEOGRAPH +0xD36B 0x89E1 #CJK UNIFIED IDEOGRAPH +0xD36C 0x89E2 #CJK UNIFIED IDEOGRAPH +0xD36D 0x89E4 #CJK UNIFIED IDEOGRAPH +0xD36E 0x89E7 #CJK UNIFIED IDEOGRAPH +0xD36F 0x89E8 #CJK UNIFIED IDEOGRAPH +0xD370 0x89E9 #CJK UNIFIED IDEOGRAPH +0xD371 0x89EA #CJK UNIFIED IDEOGRAPH +0xD372 0x89EC #CJK UNIFIED IDEOGRAPH +0xD373 0x89ED #CJK UNIFIED IDEOGRAPH +0xD374 0x89EE #CJK UNIFIED IDEOGRAPH +0xD375 0x89F0 #CJK UNIFIED IDEOGRAPH +0xD376 0x89F1 #CJK UNIFIED IDEOGRAPH +0xD377 0x89F2 #CJK UNIFIED IDEOGRAPH +0xD378 0x89F4 #CJK UNIFIED IDEOGRAPH +0xD379 0x89F5 #CJK UNIFIED IDEOGRAPH +0xD37A 0x89F6 #CJK UNIFIED IDEOGRAPH +0xD37B 0x89F7 #CJK UNIFIED IDEOGRAPH +0xD37C 0x89F8 #CJK UNIFIED IDEOGRAPH +0xD37D 0x89F9 #CJK UNIFIED IDEOGRAPH +0xD37E 0x89FA #CJK UNIFIED IDEOGRAPH +0xD380 0x89FB #CJK UNIFIED IDEOGRAPH +0xD381 0x89FC #CJK UNIFIED IDEOGRAPH +0xD382 0x89FD #CJK UNIFIED IDEOGRAPH +0xD383 0x89FE #CJK UNIFIED IDEOGRAPH +0xD384 0x89FF #CJK UNIFIED IDEOGRAPH +0xD385 0x8A01 #CJK UNIFIED IDEOGRAPH +0xD386 0x8A02 #CJK UNIFIED IDEOGRAPH +0xD387 0x8A03 #CJK UNIFIED IDEOGRAPH +0xD388 0x8A04 #CJK UNIFIED IDEOGRAPH +0xD389 0x8A05 #CJK UNIFIED IDEOGRAPH +0xD38A 0x8A06 #CJK UNIFIED IDEOGRAPH +0xD38B 0x8A08 #CJK UNIFIED IDEOGRAPH +0xD38C 0x8A09 #CJK UNIFIED IDEOGRAPH +0xD38D 0x8A0A #CJK UNIFIED IDEOGRAPH +0xD38E 0x8A0B #CJK UNIFIED IDEOGRAPH +0xD38F 0x8A0C #CJK UNIFIED IDEOGRAPH +0xD390 0x8A0D #CJK UNIFIED IDEOGRAPH +0xD391 0x8A0E #CJK UNIFIED IDEOGRAPH +0xD392 0x8A0F #CJK UNIFIED IDEOGRAPH +0xD393 0x8A10 #CJK UNIFIED IDEOGRAPH +0xD394 0x8A11 #CJK UNIFIED IDEOGRAPH +0xD395 0x8A12 #CJK UNIFIED IDEOGRAPH +0xD396 0x8A13 #CJK UNIFIED IDEOGRAPH +0xD397 0x8A14 #CJK UNIFIED IDEOGRAPH +0xD398 0x8A15 #CJK UNIFIED IDEOGRAPH +0xD399 0x8A16 #CJK UNIFIED IDEOGRAPH +0xD39A 0x8A17 #CJK UNIFIED IDEOGRAPH +0xD39B 0x8A18 #CJK UNIFIED IDEOGRAPH +0xD39C 0x8A19 #CJK UNIFIED IDEOGRAPH +0xD39D 0x8A1A #CJK UNIFIED IDEOGRAPH +0xD39E 0x8A1B #CJK UNIFIED IDEOGRAPH +0xD39F 0x8A1C #CJK UNIFIED IDEOGRAPH +0xD3A0 0x8A1D #CJK UNIFIED IDEOGRAPH +0xD3A1 0x5370 #CJK UNIFIED IDEOGRAPH +0xD3A2 0x82F1 #CJK UNIFIED IDEOGRAPH +0xD3A3 0x6A31 #CJK UNIFIED IDEOGRAPH +0xD3A4 0x5A74 #CJK UNIFIED IDEOGRAPH +0xD3A5 0x9E70 #CJK UNIFIED IDEOGRAPH +0xD3A6 0x5E94 #CJK UNIFIED IDEOGRAPH +0xD3A7 0x7F28 #CJK UNIFIED IDEOGRAPH +0xD3A8 0x83B9 #CJK UNIFIED IDEOGRAPH +0xD3A9 0x8424 #CJK UNIFIED IDEOGRAPH +0xD3AA 0x8425 #CJK UNIFIED IDEOGRAPH +0xD3AB 0x8367 #CJK UNIFIED IDEOGRAPH +0xD3AC 0x8747 #CJK UNIFIED IDEOGRAPH +0xD3AD 0x8FCE #CJK UNIFIED IDEOGRAPH +0xD3AE 0x8D62 #CJK UNIFIED IDEOGRAPH +0xD3AF 0x76C8 #CJK UNIFIED IDEOGRAPH +0xD3B0 0x5F71 #CJK UNIFIED IDEOGRAPH +0xD3B1 0x9896 #CJK UNIFIED IDEOGRAPH +0xD3B2 0x786C #CJK UNIFIED IDEOGRAPH +0xD3B3 0x6620 #CJK UNIFIED IDEOGRAPH +0xD3B4 0x54DF #CJK UNIFIED IDEOGRAPH +0xD3B5 0x62E5 #CJK UNIFIED IDEOGRAPH +0xD3B6 0x4F63 #CJK UNIFIED IDEOGRAPH +0xD3B7 0x81C3 #CJK UNIFIED IDEOGRAPH +0xD3B8 0x75C8 #CJK UNIFIED IDEOGRAPH +0xD3B9 0x5EB8 #CJK UNIFIED IDEOGRAPH +0xD3BA 0x96CD #CJK UNIFIED IDEOGRAPH +0xD3BB 0x8E0A #CJK UNIFIED IDEOGRAPH +0xD3BC 0x86F9 #CJK UNIFIED IDEOGRAPH +0xD3BD 0x548F #CJK UNIFIED IDEOGRAPH +0xD3BE 0x6CF3 #CJK UNIFIED IDEOGRAPH +0xD3BF 0x6D8C #CJK UNIFIED IDEOGRAPH +0xD3C0 0x6C38 #CJK UNIFIED IDEOGRAPH +0xD3C1 0x607F #CJK UNIFIED IDEOGRAPH +0xD3C2 0x52C7 #CJK UNIFIED IDEOGRAPH +0xD3C3 0x7528 #CJK UNIFIED IDEOGRAPH +0xD3C4 0x5E7D #CJK UNIFIED IDEOGRAPH +0xD3C5 0x4F18 #CJK UNIFIED IDEOGRAPH +0xD3C6 0x60A0 #CJK UNIFIED IDEOGRAPH +0xD3C7 0x5FE7 #CJK UNIFIED IDEOGRAPH +0xD3C8 0x5C24 #CJK UNIFIED IDEOGRAPH +0xD3C9 0x7531 #CJK UNIFIED IDEOGRAPH +0xD3CA 0x90AE #CJK UNIFIED IDEOGRAPH +0xD3CB 0x94C0 #CJK UNIFIED IDEOGRAPH +0xD3CC 0x72B9 #CJK UNIFIED IDEOGRAPH +0xD3CD 0x6CB9 #CJK UNIFIED IDEOGRAPH +0xD3CE 0x6E38 #CJK UNIFIED IDEOGRAPH +0xD3CF 0x9149 #CJK UNIFIED IDEOGRAPH +0xD3D0 0x6709 #CJK UNIFIED IDEOGRAPH +0xD3D1 0x53CB #CJK UNIFIED IDEOGRAPH +0xD3D2 0x53F3 #CJK UNIFIED IDEOGRAPH +0xD3D3 0x4F51 #CJK UNIFIED IDEOGRAPH +0xD3D4 0x91C9 #CJK UNIFIED IDEOGRAPH +0xD3D5 0x8BF1 #CJK UNIFIED IDEOGRAPH +0xD3D6 0x53C8 #CJK UNIFIED IDEOGRAPH +0xD3D7 0x5E7C #CJK UNIFIED IDEOGRAPH +0xD3D8 0x8FC2 #CJK UNIFIED IDEOGRAPH +0xD3D9 0x6DE4 #CJK UNIFIED IDEOGRAPH +0xD3DA 0x4E8E #CJK UNIFIED IDEOGRAPH +0xD3DB 0x76C2 #CJK UNIFIED IDEOGRAPH +0xD3DC 0x6986 #CJK UNIFIED IDEOGRAPH +0xD3DD 0x865E #CJK UNIFIED IDEOGRAPH +0xD3DE 0x611A #CJK UNIFIED IDEOGRAPH +0xD3DF 0x8206 #CJK UNIFIED IDEOGRAPH +0xD3E0 0x4F59 #CJK UNIFIED IDEOGRAPH +0xD3E1 0x4FDE #CJK UNIFIED IDEOGRAPH +0xD3E2 0x903E #CJK UNIFIED IDEOGRAPH +0xD3E3 0x9C7C #CJK UNIFIED IDEOGRAPH +0xD3E4 0x6109 #CJK UNIFIED IDEOGRAPH +0xD3E5 0x6E1D #CJK UNIFIED IDEOGRAPH +0xD3E6 0x6E14 #CJK UNIFIED IDEOGRAPH +0xD3E7 0x9685 #CJK UNIFIED IDEOGRAPH +0xD3E8 0x4E88 #CJK UNIFIED IDEOGRAPH +0xD3E9 0x5A31 #CJK UNIFIED IDEOGRAPH +0xD3EA 0x96E8 #CJK UNIFIED IDEOGRAPH +0xD3EB 0x4E0E #CJK UNIFIED IDEOGRAPH +0xD3EC 0x5C7F #CJK UNIFIED IDEOGRAPH +0xD3ED 0x79B9 #CJK UNIFIED IDEOGRAPH +0xD3EE 0x5B87 #CJK UNIFIED IDEOGRAPH +0xD3EF 0x8BED #CJK UNIFIED IDEOGRAPH +0xD3F0 0x7FBD #CJK UNIFIED IDEOGRAPH +0xD3F1 0x7389 #CJK UNIFIED IDEOGRAPH +0xD3F2 0x57DF #CJK UNIFIED IDEOGRAPH +0xD3F3 0x828B #CJK UNIFIED IDEOGRAPH +0xD3F4 0x90C1 #CJK UNIFIED IDEOGRAPH +0xD3F5 0x5401 #CJK UNIFIED IDEOGRAPH +0xD3F6 0x9047 #CJK UNIFIED IDEOGRAPH +0xD3F7 0x55BB #CJK UNIFIED IDEOGRAPH +0xD3F8 0x5CEA #CJK UNIFIED IDEOGRAPH +0xD3F9 0x5FA1 #CJK UNIFIED IDEOGRAPH +0xD3FA 0x6108 #CJK UNIFIED IDEOGRAPH +0xD3FB 0x6B32 #CJK UNIFIED IDEOGRAPH +0xD3FC 0x72F1 #CJK UNIFIED IDEOGRAPH +0xD3FD 0x80B2 #CJK UNIFIED IDEOGRAPH +0xD3FE 0x8A89 #CJK UNIFIED IDEOGRAPH +0xD440 0x8A1E #CJK UNIFIED IDEOGRAPH +0xD441 0x8A1F #CJK UNIFIED IDEOGRAPH +0xD442 0x8A20 #CJK UNIFIED IDEOGRAPH +0xD443 0x8A21 #CJK UNIFIED IDEOGRAPH +0xD444 0x8A22 #CJK UNIFIED IDEOGRAPH +0xD445 0x8A23 #CJK UNIFIED IDEOGRAPH +0xD446 0x8A24 #CJK UNIFIED IDEOGRAPH +0xD447 0x8A25 #CJK UNIFIED IDEOGRAPH +0xD448 0x8A26 #CJK UNIFIED IDEOGRAPH +0xD449 0x8A27 #CJK UNIFIED IDEOGRAPH +0xD44A 0x8A28 #CJK UNIFIED IDEOGRAPH +0xD44B 0x8A29 #CJK UNIFIED IDEOGRAPH +0xD44C 0x8A2A #CJK UNIFIED IDEOGRAPH +0xD44D 0x8A2B #CJK UNIFIED IDEOGRAPH +0xD44E 0x8A2C #CJK UNIFIED IDEOGRAPH +0xD44F 0x8A2D #CJK UNIFIED IDEOGRAPH +0xD450 0x8A2E #CJK UNIFIED IDEOGRAPH +0xD451 0x8A2F #CJK UNIFIED IDEOGRAPH +0xD452 0x8A30 #CJK UNIFIED IDEOGRAPH +0xD453 0x8A31 #CJK UNIFIED IDEOGRAPH +0xD454 0x8A32 #CJK UNIFIED IDEOGRAPH +0xD455 0x8A33 #CJK UNIFIED IDEOGRAPH +0xD456 0x8A34 #CJK UNIFIED IDEOGRAPH +0xD457 0x8A35 #CJK UNIFIED IDEOGRAPH +0xD458 0x8A36 #CJK UNIFIED IDEOGRAPH +0xD459 0x8A37 #CJK UNIFIED IDEOGRAPH +0xD45A 0x8A38 #CJK UNIFIED IDEOGRAPH +0xD45B 0x8A39 #CJK UNIFIED IDEOGRAPH +0xD45C 0x8A3A #CJK UNIFIED IDEOGRAPH +0xD45D 0x8A3B #CJK UNIFIED IDEOGRAPH +0xD45E 0x8A3C #CJK UNIFIED IDEOGRAPH +0xD45F 0x8A3D #CJK UNIFIED IDEOGRAPH +0xD460 0x8A3F #CJK UNIFIED IDEOGRAPH +0xD461 0x8A40 #CJK UNIFIED IDEOGRAPH +0xD462 0x8A41 #CJK UNIFIED IDEOGRAPH +0xD463 0x8A42 #CJK UNIFIED IDEOGRAPH +0xD464 0x8A43 #CJK UNIFIED IDEOGRAPH +0xD465 0x8A44 #CJK UNIFIED IDEOGRAPH +0xD466 0x8A45 #CJK UNIFIED IDEOGRAPH +0xD467 0x8A46 #CJK UNIFIED IDEOGRAPH +0xD468 0x8A47 #CJK UNIFIED IDEOGRAPH +0xD469 0x8A49 #CJK UNIFIED IDEOGRAPH +0xD46A 0x8A4A #CJK UNIFIED IDEOGRAPH +0xD46B 0x8A4B #CJK UNIFIED IDEOGRAPH +0xD46C 0x8A4C #CJK UNIFIED IDEOGRAPH +0xD46D 0x8A4D #CJK UNIFIED IDEOGRAPH +0xD46E 0x8A4E #CJK UNIFIED IDEOGRAPH +0xD46F 0x8A4F #CJK UNIFIED IDEOGRAPH +0xD470 0x8A50 #CJK UNIFIED IDEOGRAPH +0xD471 0x8A51 #CJK UNIFIED IDEOGRAPH +0xD472 0x8A52 #CJK UNIFIED IDEOGRAPH +0xD473 0x8A53 #CJK UNIFIED IDEOGRAPH +0xD474 0x8A54 #CJK UNIFIED IDEOGRAPH +0xD475 0x8A55 #CJK UNIFIED IDEOGRAPH +0xD476 0x8A56 #CJK UNIFIED IDEOGRAPH +0xD477 0x8A57 #CJK UNIFIED IDEOGRAPH +0xD478 0x8A58 #CJK UNIFIED IDEOGRAPH +0xD479 0x8A59 #CJK UNIFIED IDEOGRAPH +0xD47A 0x8A5A #CJK UNIFIED IDEOGRAPH +0xD47B 0x8A5B #CJK UNIFIED IDEOGRAPH +0xD47C 0x8A5C #CJK UNIFIED IDEOGRAPH +0xD47D 0x8A5D #CJK UNIFIED IDEOGRAPH +0xD47E 0x8A5E #CJK UNIFIED IDEOGRAPH +0xD480 0x8A5F #CJK UNIFIED IDEOGRAPH +0xD481 0x8A60 #CJK UNIFIED IDEOGRAPH +0xD482 0x8A61 #CJK UNIFIED IDEOGRAPH +0xD483 0x8A62 #CJK UNIFIED IDEOGRAPH +0xD484 0x8A63 #CJK UNIFIED IDEOGRAPH +0xD485 0x8A64 #CJK UNIFIED IDEOGRAPH +0xD486 0x8A65 #CJK UNIFIED IDEOGRAPH +0xD487 0x8A66 #CJK UNIFIED IDEOGRAPH +0xD488 0x8A67 #CJK UNIFIED IDEOGRAPH +0xD489 0x8A68 #CJK UNIFIED IDEOGRAPH +0xD48A 0x8A69 #CJK UNIFIED IDEOGRAPH +0xD48B 0x8A6A #CJK UNIFIED IDEOGRAPH +0xD48C 0x8A6B #CJK UNIFIED IDEOGRAPH +0xD48D 0x8A6C #CJK UNIFIED IDEOGRAPH +0xD48E 0x8A6D #CJK UNIFIED IDEOGRAPH +0xD48F 0x8A6E #CJK UNIFIED IDEOGRAPH +0xD490 0x8A6F #CJK UNIFIED IDEOGRAPH +0xD491 0x8A70 #CJK UNIFIED IDEOGRAPH +0xD492 0x8A71 #CJK UNIFIED IDEOGRAPH +0xD493 0x8A72 #CJK UNIFIED IDEOGRAPH +0xD494 0x8A73 #CJK UNIFIED IDEOGRAPH +0xD495 0x8A74 #CJK UNIFIED IDEOGRAPH +0xD496 0x8A75 #CJK UNIFIED IDEOGRAPH +0xD497 0x8A76 #CJK UNIFIED IDEOGRAPH +0xD498 0x8A77 #CJK UNIFIED IDEOGRAPH +0xD499 0x8A78 #CJK UNIFIED IDEOGRAPH +0xD49A 0x8A7A #CJK UNIFIED IDEOGRAPH +0xD49B 0x8A7B #CJK UNIFIED IDEOGRAPH +0xD49C 0x8A7C #CJK UNIFIED IDEOGRAPH +0xD49D 0x8A7D #CJK UNIFIED IDEOGRAPH +0xD49E 0x8A7E #CJK UNIFIED IDEOGRAPH +0xD49F 0x8A7F #CJK UNIFIED IDEOGRAPH +0xD4A0 0x8A80 #CJK UNIFIED IDEOGRAPH +0xD4A1 0x6D74 #CJK UNIFIED IDEOGRAPH +0xD4A2 0x5BD3 #CJK UNIFIED IDEOGRAPH +0xD4A3 0x88D5 #CJK UNIFIED IDEOGRAPH +0xD4A4 0x9884 #CJK UNIFIED IDEOGRAPH +0xD4A5 0x8C6B #CJK UNIFIED IDEOGRAPH +0xD4A6 0x9A6D #CJK UNIFIED IDEOGRAPH +0xD4A7 0x9E33 #CJK UNIFIED IDEOGRAPH +0xD4A8 0x6E0A #CJK UNIFIED IDEOGRAPH +0xD4A9 0x51A4 #CJK UNIFIED IDEOGRAPH +0xD4AA 0x5143 #CJK UNIFIED IDEOGRAPH +0xD4AB 0x57A3 #CJK UNIFIED IDEOGRAPH +0xD4AC 0x8881 #CJK UNIFIED IDEOGRAPH +0xD4AD 0x539F #CJK UNIFIED IDEOGRAPH +0xD4AE 0x63F4 #CJK UNIFIED IDEOGRAPH +0xD4AF 0x8F95 #CJK UNIFIED IDEOGRAPH +0xD4B0 0x56ED #CJK UNIFIED IDEOGRAPH +0xD4B1 0x5458 #CJK UNIFIED IDEOGRAPH +0xD4B2 0x5706 #CJK UNIFIED IDEOGRAPH +0xD4B3 0x733F #CJK UNIFIED IDEOGRAPH +0xD4B4 0x6E90 #CJK UNIFIED IDEOGRAPH +0xD4B5 0x7F18 #CJK UNIFIED IDEOGRAPH +0xD4B6 0x8FDC #CJK UNIFIED IDEOGRAPH +0xD4B7 0x82D1 #CJK UNIFIED IDEOGRAPH +0xD4B8 0x613F #CJK UNIFIED IDEOGRAPH +0xD4B9 0x6028 #CJK UNIFIED IDEOGRAPH +0xD4BA 0x9662 #CJK UNIFIED IDEOGRAPH +0xD4BB 0x66F0 #CJK UNIFIED IDEOGRAPH +0xD4BC 0x7EA6 #CJK UNIFIED IDEOGRAPH +0xD4BD 0x8D8A #CJK UNIFIED IDEOGRAPH +0xD4BE 0x8DC3 #CJK UNIFIED IDEOGRAPH +0xD4BF 0x94A5 #CJK UNIFIED IDEOGRAPH +0xD4C0 0x5CB3 #CJK UNIFIED IDEOGRAPH +0xD4C1 0x7CA4 #CJK UNIFIED IDEOGRAPH +0xD4C2 0x6708 #CJK UNIFIED IDEOGRAPH +0xD4C3 0x60A6 #CJK UNIFIED IDEOGRAPH +0xD4C4 0x9605 #CJK UNIFIED IDEOGRAPH +0xD4C5 0x8018 #CJK UNIFIED IDEOGRAPH +0xD4C6 0x4E91 #CJK UNIFIED IDEOGRAPH +0xD4C7 0x90E7 #CJK UNIFIED IDEOGRAPH +0xD4C8 0x5300 #CJK UNIFIED IDEOGRAPH +0xD4C9 0x9668 #CJK UNIFIED IDEOGRAPH +0xD4CA 0x5141 #CJK UNIFIED IDEOGRAPH +0xD4CB 0x8FD0 #CJK UNIFIED IDEOGRAPH +0xD4CC 0x8574 #CJK UNIFIED IDEOGRAPH +0xD4CD 0x915D #CJK UNIFIED IDEOGRAPH +0xD4CE 0x6655 #CJK UNIFIED IDEOGRAPH +0xD4CF 0x97F5 #CJK UNIFIED IDEOGRAPH +0xD4D0 0x5B55 #CJK UNIFIED IDEOGRAPH +0xD4D1 0x531D #CJK UNIFIED IDEOGRAPH +0xD4D2 0x7838 #CJK UNIFIED IDEOGRAPH +0xD4D3 0x6742 #CJK UNIFIED IDEOGRAPH +0xD4D4 0x683D #CJK UNIFIED IDEOGRAPH +0xD4D5 0x54C9 #CJK UNIFIED IDEOGRAPH +0xD4D6 0x707E #CJK UNIFIED IDEOGRAPH +0xD4D7 0x5BB0 #CJK UNIFIED IDEOGRAPH +0xD4D8 0x8F7D #CJK UNIFIED IDEOGRAPH +0xD4D9 0x518D #CJK UNIFIED IDEOGRAPH +0xD4DA 0x5728 #CJK UNIFIED IDEOGRAPH +0xD4DB 0x54B1 #CJK UNIFIED IDEOGRAPH +0xD4DC 0x6512 #CJK UNIFIED IDEOGRAPH +0xD4DD 0x6682 #CJK UNIFIED IDEOGRAPH +0xD4DE 0x8D5E #CJK UNIFIED IDEOGRAPH +0xD4DF 0x8D43 #CJK UNIFIED IDEOGRAPH +0xD4E0 0x810F #CJK UNIFIED IDEOGRAPH +0xD4E1 0x846C #CJK UNIFIED IDEOGRAPH +0xD4E2 0x906D #CJK UNIFIED IDEOGRAPH +0xD4E3 0x7CDF #CJK UNIFIED IDEOGRAPH +0xD4E4 0x51FF #CJK UNIFIED IDEOGRAPH +0xD4E5 0x85FB #CJK UNIFIED IDEOGRAPH +0xD4E6 0x67A3 #CJK UNIFIED IDEOGRAPH +0xD4E7 0x65E9 #CJK UNIFIED IDEOGRAPH +0xD4E8 0x6FA1 #CJK UNIFIED IDEOGRAPH +0xD4E9 0x86A4 #CJK UNIFIED IDEOGRAPH +0xD4EA 0x8E81 #CJK UNIFIED IDEOGRAPH +0xD4EB 0x566A #CJK UNIFIED IDEOGRAPH +0xD4EC 0x9020 #CJK UNIFIED IDEOGRAPH +0xD4ED 0x7682 #CJK UNIFIED IDEOGRAPH +0xD4EE 0x7076 #CJK UNIFIED IDEOGRAPH +0xD4EF 0x71E5 #CJK UNIFIED IDEOGRAPH +0xD4F0 0x8D23 #CJK UNIFIED IDEOGRAPH +0xD4F1 0x62E9 #CJK UNIFIED IDEOGRAPH +0xD4F2 0x5219 #CJK UNIFIED IDEOGRAPH +0xD4F3 0x6CFD #CJK UNIFIED IDEOGRAPH +0xD4F4 0x8D3C #CJK UNIFIED IDEOGRAPH +0xD4F5 0x600E #CJK UNIFIED IDEOGRAPH +0xD4F6 0x589E #CJK UNIFIED IDEOGRAPH +0xD4F7 0x618E #CJK UNIFIED IDEOGRAPH +0xD4F8 0x66FE #CJK UNIFIED IDEOGRAPH +0xD4F9 0x8D60 #CJK UNIFIED IDEOGRAPH +0xD4FA 0x624E #CJK UNIFIED IDEOGRAPH +0xD4FB 0x55B3 #CJK UNIFIED IDEOGRAPH +0xD4FC 0x6E23 #CJK UNIFIED IDEOGRAPH +0xD4FD 0x672D #CJK UNIFIED IDEOGRAPH +0xD4FE 0x8F67 #CJK UNIFIED IDEOGRAPH +0xD540 0x8A81 #CJK UNIFIED IDEOGRAPH +0xD541 0x8A82 #CJK UNIFIED IDEOGRAPH +0xD542 0x8A83 #CJK UNIFIED IDEOGRAPH +0xD543 0x8A84 #CJK UNIFIED IDEOGRAPH +0xD544 0x8A85 #CJK UNIFIED IDEOGRAPH +0xD545 0x8A86 #CJK UNIFIED IDEOGRAPH +0xD546 0x8A87 #CJK UNIFIED IDEOGRAPH +0xD547 0x8A88 #CJK UNIFIED IDEOGRAPH +0xD548 0x8A8B #CJK UNIFIED IDEOGRAPH +0xD549 0x8A8C #CJK UNIFIED IDEOGRAPH +0xD54A 0x8A8D #CJK UNIFIED IDEOGRAPH +0xD54B 0x8A8E #CJK UNIFIED IDEOGRAPH +0xD54C 0x8A8F #CJK UNIFIED IDEOGRAPH +0xD54D 0x8A90 #CJK UNIFIED IDEOGRAPH +0xD54E 0x8A91 #CJK UNIFIED IDEOGRAPH +0xD54F 0x8A92 #CJK UNIFIED IDEOGRAPH +0xD550 0x8A94 #CJK UNIFIED IDEOGRAPH +0xD551 0x8A95 #CJK UNIFIED IDEOGRAPH +0xD552 0x8A96 #CJK UNIFIED IDEOGRAPH +0xD553 0x8A97 #CJK UNIFIED IDEOGRAPH +0xD554 0x8A98 #CJK UNIFIED IDEOGRAPH +0xD555 0x8A99 #CJK UNIFIED IDEOGRAPH +0xD556 0x8A9A #CJK UNIFIED IDEOGRAPH +0xD557 0x8A9B #CJK UNIFIED IDEOGRAPH +0xD558 0x8A9C #CJK UNIFIED IDEOGRAPH +0xD559 0x8A9D #CJK UNIFIED IDEOGRAPH +0xD55A 0x8A9E #CJK UNIFIED IDEOGRAPH +0xD55B 0x8A9F #CJK UNIFIED IDEOGRAPH +0xD55C 0x8AA0 #CJK UNIFIED IDEOGRAPH +0xD55D 0x8AA1 #CJK UNIFIED IDEOGRAPH +0xD55E 0x8AA2 #CJK UNIFIED IDEOGRAPH +0xD55F 0x8AA3 #CJK UNIFIED IDEOGRAPH +0xD560 0x8AA4 #CJK UNIFIED IDEOGRAPH +0xD561 0x8AA5 #CJK UNIFIED IDEOGRAPH +0xD562 0x8AA6 #CJK UNIFIED IDEOGRAPH +0xD563 0x8AA7 #CJK UNIFIED IDEOGRAPH +0xD564 0x8AA8 #CJK UNIFIED IDEOGRAPH +0xD565 0x8AA9 #CJK UNIFIED IDEOGRAPH +0xD566 0x8AAA #CJK UNIFIED IDEOGRAPH +0xD567 0x8AAB #CJK UNIFIED IDEOGRAPH +0xD568 0x8AAC #CJK UNIFIED IDEOGRAPH +0xD569 0x8AAD #CJK UNIFIED IDEOGRAPH +0xD56A 0x8AAE #CJK UNIFIED IDEOGRAPH +0xD56B 0x8AAF #CJK UNIFIED IDEOGRAPH +0xD56C 0x8AB0 #CJK UNIFIED IDEOGRAPH +0xD56D 0x8AB1 #CJK UNIFIED IDEOGRAPH +0xD56E 0x8AB2 #CJK UNIFIED IDEOGRAPH +0xD56F 0x8AB3 #CJK UNIFIED IDEOGRAPH +0xD570 0x8AB4 #CJK UNIFIED IDEOGRAPH +0xD571 0x8AB5 #CJK UNIFIED IDEOGRAPH +0xD572 0x8AB6 #CJK UNIFIED IDEOGRAPH +0xD573 0x8AB7 #CJK UNIFIED IDEOGRAPH +0xD574 0x8AB8 #CJK UNIFIED IDEOGRAPH +0xD575 0x8AB9 #CJK UNIFIED IDEOGRAPH +0xD576 0x8ABA #CJK UNIFIED IDEOGRAPH +0xD577 0x8ABB #CJK UNIFIED IDEOGRAPH +0xD578 0x8ABC #CJK UNIFIED IDEOGRAPH +0xD579 0x8ABD #CJK UNIFIED IDEOGRAPH +0xD57A 0x8ABE #CJK UNIFIED IDEOGRAPH +0xD57B 0x8ABF #CJK UNIFIED IDEOGRAPH +0xD57C 0x8AC0 #CJK UNIFIED IDEOGRAPH +0xD57D 0x8AC1 #CJK UNIFIED IDEOGRAPH +0xD57E 0x8AC2 #CJK UNIFIED IDEOGRAPH +0xD580 0x8AC3 #CJK UNIFIED IDEOGRAPH +0xD581 0x8AC4 #CJK UNIFIED IDEOGRAPH +0xD582 0x8AC5 #CJK UNIFIED IDEOGRAPH +0xD583 0x8AC6 #CJK UNIFIED IDEOGRAPH +0xD584 0x8AC7 #CJK UNIFIED IDEOGRAPH +0xD585 0x8AC8 #CJK UNIFIED IDEOGRAPH +0xD586 0x8AC9 #CJK UNIFIED IDEOGRAPH +0xD587 0x8ACA #CJK UNIFIED IDEOGRAPH +0xD588 0x8ACB #CJK UNIFIED IDEOGRAPH +0xD589 0x8ACC #CJK UNIFIED IDEOGRAPH +0xD58A 0x8ACD #CJK UNIFIED IDEOGRAPH +0xD58B 0x8ACE #CJK UNIFIED IDEOGRAPH +0xD58C 0x8ACF #CJK UNIFIED IDEOGRAPH +0xD58D 0x8AD0 #CJK UNIFIED IDEOGRAPH +0xD58E 0x8AD1 #CJK UNIFIED IDEOGRAPH +0xD58F 0x8AD2 #CJK UNIFIED IDEOGRAPH +0xD590 0x8AD3 #CJK UNIFIED IDEOGRAPH +0xD591 0x8AD4 #CJK UNIFIED IDEOGRAPH +0xD592 0x8AD5 #CJK UNIFIED IDEOGRAPH +0xD593 0x8AD6 #CJK UNIFIED IDEOGRAPH +0xD594 0x8AD7 #CJK UNIFIED IDEOGRAPH +0xD595 0x8AD8 #CJK UNIFIED IDEOGRAPH +0xD596 0x8AD9 #CJK UNIFIED IDEOGRAPH +0xD597 0x8ADA #CJK UNIFIED IDEOGRAPH +0xD598 0x8ADB #CJK UNIFIED IDEOGRAPH +0xD599 0x8ADC #CJK UNIFIED IDEOGRAPH +0xD59A 0x8ADD #CJK UNIFIED IDEOGRAPH +0xD59B 0x8ADE #CJK UNIFIED IDEOGRAPH +0xD59C 0x8ADF #CJK UNIFIED IDEOGRAPH +0xD59D 0x8AE0 #CJK UNIFIED IDEOGRAPH +0xD59E 0x8AE1 #CJK UNIFIED IDEOGRAPH +0xD59F 0x8AE2 #CJK UNIFIED IDEOGRAPH +0xD5A0 0x8AE3 #CJK UNIFIED IDEOGRAPH +0xD5A1 0x94E1 #CJK UNIFIED IDEOGRAPH +0xD5A2 0x95F8 #CJK UNIFIED IDEOGRAPH +0xD5A3 0x7728 #CJK UNIFIED IDEOGRAPH +0xD5A4 0x6805 #CJK UNIFIED IDEOGRAPH +0xD5A5 0x69A8 #CJK UNIFIED IDEOGRAPH +0xD5A6 0x548B #CJK UNIFIED IDEOGRAPH +0xD5A7 0x4E4D #CJK UNIFIED IDEOGRAPH +0xD5A8 0x70B8 #CJK UNIFIED IDEOGRAPH +0xD5A9 0x8BC8 #CJK UNIFIED IDEOGRAPH +0xD5AA 0x6458 #CJK UNIFIED IDEOGRAPH +0xD5AB 0x658B #CJK UNIFIED IDEOGRAPH +0xD5AC 0x5B85 #CJK UNIFIED IDEOGRAPH +0xD5AD 0x7A84 #CJK UNIFIED IDEOGRAPH +0xD5AE 0x503A #CJK UNIFIED IDEOGRAPH +0xD5AF 0x5BE8 #CJK UNIFIED IDEOGRAPH +0xD5B0 0x77BB #CJK UNIFIED IDEOGRAPH +0xD5B1 0x6BE1 #CJK UNIFIED IDEOGRAPH +0xD5B2 0x8A79 #CJK UNIFIED IDEOGRAPH +0xD5B3 0x7C98 #CJK UNIFIED IDEOGRAPH +0xD5B4 0x6CBE #CJK UNIFIED IDEOGRAPH +0xD5B5 0x76CF #CJK UNIFIED IDEOGRAPH +0xD5B6 0x65A9 #CJK UNIFIED IDEOGRAPH +0xD5B7 0x8F97 #CJK UNIFIED IDEOGRAPH +0xD5B8 0x5D2D #CJK UNIFIED IDEOGRAPH +0xD5B9 0x5C55 #CJK UNIFIED IDEOGRAPH +0xD5BA 0x8638 #CJK UNIFIED IDEOGRAPH +0xD5BB 0x6808 #CJK UNIFIED IDEOGRAPH +0xD5BC 0x5360 #CJK UNIFIED IDEOGRAPH +0xD5BD 0x6218 #CJK UNIFIED IDEOGRAPH +0xD5BE 0x7AD9 #CJK UNIFIED IDEOGRAPH +0xD5BF 0x6E5B #CJK UNIFIED IDEOGRAPH +0xD5C0 0x7EFD #CJK UNIFIED IDEOGRAPH +0xD5C1 0x6A1F #CJK UNIFIED IDEOGRAPH +0xD5C2 0x7AE0 #CJK UNIFIED IDEOGRAPH +0xD5C3 0x5F70 #CJK UNIFIED IDEOGRAPH +0xD5C4 0x6F33 #CJK UNIFIED IDEOGRAPH +0xD5C5 0x5F20 #CJK UNIFIED IDEOGRAPH +0xD5C6 0x638C #CJK UNIFIED IDEOGRAPH +0xD5C7 0x6DA8 #CJK UNIFIED IDEOGRAPH +0xD5C8 0x6756 #CJK UNIFIED IDEOGRAPH +0xD5C9 0x4E08 #CJK UNIFIED IDEOGRAPH +0xD5CA 0x5E10 #CJK UNIFIED IDEOGRAPH +0xD5CB 0x8D26 #CJK UNIFIED IDEOGRAPH +0xD5CC 0x4ED7 #CJK UNIFIED IDEOGRAPH +0xD5CD 0x80C0 #CJK UNIFIED IDEOGRAPH +0xD5CE 0x7634 #CJK UNIFIED IDEOGRAPH +0xD5CF 0x969C #CJK UNIFIED IDEOGRAPH +0xD5D0 0x62DB #CJK UNIFIED IDEOGRAPH +0xD5D1 0x662D #CJK UNIFIED IDEOGRAPH +0xD5D2 0x627E #CJK UNIFIED IDEOGRAPH +0xD5D3 0x6CBC #CJK UNIFIED IDEOGRAPH +0xD5D4 0x8D75 #CJK UNIFIED IDEOGRAPH +0xD5D5 0x7167 #CJK UNIFIED IDEOGRAPH +0xD5D6 0x7F69 #CJK UNIFIED IDEOGRAPH +0xD5D7 0x5146 #CJK UNIFIED IDEOGRAPH +0xD5D8 0x8087 #CJK UNIFIED IDEOGRAPH +0xD5D9 0x53EC #CJK UNIFIED IDEOGRAPH +0xD5DA 0x906E #CJK UNIFIED IDEOGRAPH +0xD5DB 0x6298 #CJK UNIFIED IDEOGRAPH +0xD5DC 0x54F2 #CJK UNIFIED IDEOGRAPH +0xD5DD 0x86F0 #CJK UNIFIED IDEOGRAPH +0xD5DE 0x8F99 #CJK UNIFIED IDEOGRAPH +0xD5DF 0x8005 #CJK UNIFIED IDEOGRAPH +0xD5E0 0x9517 #CJK UNIFIED IDEOGRAPH +0xD5E1 0x8517 #CJK UNIFIED IDEOGRAPH +0xD5E2 0x8FD9 #CJK UNIFIED IDEOGRAPH +0xD5E3 0x6D59 #CJK UNIFIED IDEOGRAPH +0xD5E4 0x73CD #CJK UNIFIED IDEOGRAPH +0xD5E5 0x659F #CJK UNIFIED IDEOGRAPH +0xD5E6 0x771F #CJK UNIFIED IDEOGRAPH +0xD5E7 0x7504 #CJK UNIFIED IDEOGRAPH +0xD5E8 0x7827 #CJK UNIFIED IDEOGRAPH +0xD5E9 0x81FB #CJK UNIFIED IDEOGRAPH +0xD5EA 0x8D1E #CJK UNIFIED IDEOGRAPH +0xD5EB 0x9488 #CJK UNIFIED IDEOGRAPH +0xD5EC 0x4FA6 #CJK UNIFIED IDEOGRAPH +0xD5ED 0x6795 #CJK UNIFIED IDEOGRAPH +0xD5EE 0x75B9 #CJK UNIFIED IDEOGRAPH +0xD5EF 0x8BCA #CJK UNIFIED IDEOGRAPH +0xD5F0 0x9707 #CJK UNIFIED IDEOGRAPH +0xD5F1 0x632F #CJK UNIFIED IDEOGRAPH +0xD5F2 0x9547 #CJK UNIFIED IDEOGRAPH +0xD5F3 0x9635 #CJK UNIFIED IDEOGRAPH +0xD5F4 0x84B8 #CJK UNIFIED IDEOGRAPH +0xD5F5 0x6323 #CJK UNIFIED IDEOGRAPH +0xD5F6 0x7741 #CJK UNIFIED IDEOGRAPH +0xD5F7 0x5F81 #CJK UNIFIED IDEOGRAPH +0xD5F8 0x72F0 #CJK UNIFIED IDEOGRAPH +0xD5F9 0x4E89 #CJK UNIFIED IDEOGRAPH +0xD5FA 0x6014 #CJK UNIFIED IDEOGRAPH +0xD5FB 0x6574 #CJK UNIFIED IDEOGRAPH +0xD5FC 0x62EF #CJK UNIFIED IDEOGRAPH +0xD5FD 0x6B63 #CJK UNIFIED IDEOGRAPH +0xD5FE 0x653F #CJK UNIFIED IDEOGRAPH +0xD640 0x8AE4 #CJK UNIFIED IDEOGRAPH +0xD641 0x8AE5 #CJK UNIFIED IDEOGRAPH +0xD642 0x8AE6 #CJK UNIFIED IDEOGRAPH +0xD643 0x8AE7 #CJK UNIFIED IDEOGRAPH +0xD644 0x8AE8 #CJK UNIFIED IDEOGRAPH +0xD645 0x8AE9 #CJK UNIFIED IDEOGRAPH +0xD646 0x8AEA #CJK UNIFIED IDEOGRAPH +0xD647 0x8AEB #CJK UNIFIED IDEOGRAPH +0xD648 0x8AEC #CJK UNIFIED IDEOGRAPH +0xD649 0x8AED #CJK UNIFIED IDEOGRAPH +0xD64A 0x8AEE #CJK UNIFIED IDEOGRAPH +0xD64B 0x8AEF #CJK UNIFIED IDEOGRAPH +0xD64C 0x8AF0 #CJK UNIFIED IDEOGRAPH +0xD64D 0x8AF1 #CJK UNIFIED IDEOGRAPH +0xD64E 0x8AF2 #CJK UNIFIED IDEOGRAPH +0xD64F 0x8AF3 #CJK UNIFIED IDEOGRAPH +0xD650 0x8AF4 #CJK UNIFIED IDEOGRAPH +0xD651 0x8AF5 #CJK UNIFIED IDEOGRAPH +0xD652 0x8AF6 #CJK UNIFIED IDEOGRAPH +0xD653 0x8AF7 #CJK UNIFIED IDEOGRAPH +0xD654 0x8AF8 #CJK UNIFIED IDEOGRAPH +0xD655 0x8AF9 #CJK UNIFIED IDEOGRAPH +0xD656 0x8AFA #CJK UNIFIED IDEOGRAPH +0xD657 0x8AFB #CJK UNIFIED IDEOGRAPH +0xD658 0x8AFC #CJK UNIFIED IDEOGRAPH +0xD659 0x8AFD #CJK UNIFIED IDEOGRAPH +0xD65A 0x8AFE #CJK UNIFIED IDEOGRAPH +0xD65B 0x8AFF #CJK UNIFIED IDEOGRAPH +0xD65C 0x8B00 #CJK UNIFIED IDEOGRAPH +0xD65D 0x8B01 #CJK UNIFIED IDEOGRAPH +0xD65E 0x8B02 #CJK UNIFIED IDEOGRAPH +0xD65F 0x8B03 #CJK UNIFIED IDEOGRAPH +0xD660 0x8B04 #CJK UNIFIED IDEOGRAPH +0xD661 0x8B05 #CJK UNIFIED IDEOGRAPH +0xD662 0x8B06 #CJK UNIFIED IDEOGRAPH +0xD663 0x8B08 #CJK UNIFIED IDEOGRAPH +0xD664 0x8B09 #CJK UNIFIED IDEOGRAPH +0xD665 0x8B0A #CJK UNIFIED IDEOGRAPH +0xD666 0x8B0B #CJK UNIFIED IDEOGRAPH +0xD667 0x8B0C #CJK UNIFIED IDEOGRAPH +0xD668 0x8B0D #CJK UNIFIED IDEOGRAPH +0xD669 0x8B0E #CJK UNIFIED IDEOGRAPH +0xD66A 0x8B0F #CJK UNIFIED IDEOGRAPH +0xD66B 0x8B10 #CJK UNIFIED IDEOGRAPH +0xD66C 0x8B11 #CJK UNIFIED IDEOGRAPH +0xD66D 0x8B12 #CJK UNIFIED IDEOGRAPH +0xD66E 0x8B13 #CJK UNIFIED IDEOGRAPH +0xD66F 0x8B14 #CJK UNIFIED IDEOGRAPH +0xD670 0x8B15 #CJK UNIFIED IDEOGRAPH +0xD671 0x8B16 #CJK UNIFIED IDEOGRAPH +0xD672 0x8B17 #CJK UNIFIED IDEOGRAPH +0xD673 0x8B18 #CJK UNIFIED IDEOGRAPH +0xD674 0x8B19 #CJK UNIFIED IDEOGRAPH +0xD675 0x8B1A #CJK UNIFIED IDEOGRAPH +0xD676 0x8B1B #CJK UNIFIED IDEOGRAPH +0xD677 0x8B1C #CJK UNIFIED IDEOGRAPH +0xD678 0x8B1D #CJK UNIFIED IDEOGRAPH +0xD679 0x8B1E #CJK UNIFIED IDEOGRAPH +0xD67A 0x8B1F #CJK UNIFIED IDEOGRAPH +0xD67B 0x8B20 #CJK UNIFIED IDEOGRAPH +0xD67C 0x8B21 #CJK UNIFIED IDEOGRAPH +0xD67D 0x8B22 #CJK UNIFIED IDEOGRAPH +0xD67E 0x8B23 #CJK UNIFIED IDEOGRAPH +0xD680 0x8B24 #CJK UNIFIED IDEOGRAPH +0xD681 0x8B25 #CJK UNIFIED IDEOGRAPH +0xD682 0x8B27 #CJK UNIFIED IDEOGRAPH +0xD683 0x8B28 #CJK UNIFIED IDEOGRAPH +0xD684 0x8B29 #CJK UNIFIED IDEOGRAPH +0xD685 0x8B2A #CJK UNIFIED IDEOGRAPH +0xD686 0x8B2B #CJK UNIFIED IDEOGRAPH +0xD687 0x8B2C #CJK UNIFIED IDEOGRAPH +0xD688 0x8B2D #CJK UNIFIED IDEOGRAPH +0xD689 0x8B2E #CJK UNIFIED IDEOGRAPH +0xD68A 0x8B2F #CJK UNIFIED IDEOGRAPH +0xD68B 0x8B30 #CJK UNIFIED IDEOGRAPH +0xD68C 0x8B31 #CJK UNIFIED IDEOGRAPH +0xD68D 0x8B32 #CJK UNIFIED IDEOGRAPH +0xD68E 0x8B33 #CJK UNIFIED IDEOGRAPH +0xD68F 0x8B34 #CJK UNIFIED IDEOGRAPH +0xD690 0x8B35 #CJK UNIFIED IDEOGRAPH +0xD691 0x8B36 #CJK UNIFIED IDEOGRAPH +0xD692 0x8B37 #CJK UNIFIED IDEOGRAPH +0xD693 0x8B38 #CJK UNIFIED IDEOGRAPH +0xD694 0x8B39 #CJK UNIFIED IDEOGRAPH +0xD695 0x8B3A #CJK UNIFIED IDEOGRAPH +0xD696 0x8B3B #CJK UNIFIED IDEOGRAPH +0xD697 0x8B3C #CJK UNIFIED IDEOGRAPH +0xD698 0x8B3D #CJK UNIFIED IDEOGRAPH +0xD699 0x8B3E #CJK UNIFIED IDEOGRAPH +0xD69A 0x8B3F #CJK UNIFIED IDEOGRAPH +0xD69B 0x8B40 #CJK UNIFIED IDEOGRAPH +0xD69C 0x8B41 #CJK UNIFIED IDEOGRAPH +0xD69D 0x8B42 #CJK UNIFIED IDEOGRAPH +0xD69E 0x8B43 #CJK UNIFIED IDEOGRAPH +0xD69F 0x8B44 #CJK UNIFIED IDEOGRAPH +0xD6A0 0x8B45 #CJK UNIFIED IDEOGRAPH +0xD6A1 0x5E27 #CJK UNIFIED IDEOGRAPH +0xD6A2 0x75C7 #CJK UNIFIED IDEOGRAPH +0xD6A3 0x90D1 #CJK UNIFIED IDEOGRAPH +0xD6A4 0x8BC1 #CJK UNIFIED IDEOGRAPH +0xD6A5 0x829D #CJK UNIFIED IDEOGRAPH +0xD6A6 0x679D #CJK UNIFIED IDEOGRAPH +0xD6A7 0x652F #CJK UNIFIED IDEOGRAPH +0xD6A8 0x5431 #CJK UNIFIED IDEOGRAPH +0xD6A9 0x8718 #CJK UNIFIED IDEOGRAPH +0xD6AA 0x77E5 #CJK UNIFIED IDEOGRAPH +0xD6AB 0x80A2 #CJK UNIFIED IDEOGRAPH +0xD6AC 0x8102 #CJK UNIFIED IDEOGRAPH +0xD6AD 0x6C41 #CJK UNIFIED IDEOGRAPH +0xD6AE 0x4E4B #CJK UNIFIED IDEOGRAPH +0xD6AF 0x7EC7 #CJK UNIFIED IDEOGRAPH +0xD6B0 0x804C #CJK UNIFIED IDEOGRAPH +0xD6B1 0x76F4 #CJK UNIFIED IDEOGRAPH +0xD6B2 0x690D #CJK UNIFIED IDEOGRAPH +0xD6B3 0x6B96 #CJK UNIFIED IDEOGRAPH +0xD6B4 0x6267 #CJK UNIFIED IDEOGRAPH +0xD6B5 0x503C #CJK UNIFIED IDEOGRAPH +0xD6B6 0x4F84 #CJK UNIFIED IDEOGRAPH +0xD6B7 0x5740 #CJK UNIFIED IDEOGRAPH +0xD6B8 0x6307 #CJK UNIFIED IDEOGRAPH +0xD6B9 0x6B62 #CJK UNIFIED IDEOGRAPH +0xD6BA 0x8DBE #CJK UNIFIED IDEOGRAPH +0xD6BB 0x53EA #CJK UNIFIED IDEOGRAPH +0xD6BC 0x65E8 #CJK UNIFIED IDEOGRAPH +0xD6BD 0x7EB8 #CJK UNIFIED IDEOGRAPH +0xD6BE 0x5FD7 #CJK UNIFIED IDEOGRAPH +0xD6BF 0x631A #CJK UNIFIED IDEOGRAPH +0xD6C0 0x63B7 #CJK UNIFIED IDEOGRAPH +0xD6C1 0x81F3 #CJK UNIFIED IDEOGRAPH +0xD6C2 0x81F4 #CJK UNIFIED IDEOGRAPH +0xD6C3 0x7F6E #CJK UNIFIED IDEOGRAPH +0xD6C4 0x5E1C #CJK UNIFIED IDEOGRAPH +0xD6C5 0x5CD9 #CJK UNIFIED IDEOGRAPH +0xD6C6 0x5236 #CJK UNIFIED IDEOGRAPH +0xD6C7 0x667A #CJK UNIFIED IDEOGRAPH +0xD6C8 0x79E9 #CJK UNIFIED IDEOGRAPH +0xD6C9 0x7A1A #CJK UNIFIED IDEOGRAPH +0xD6CA 0x8D28 #CJK UNIFIED IDEOGRAPH +0xD6CB 0x7099 #CJK UNIFIED IDEOGRAPH +0xD6CC 0x75D4 #CJK UNIFIED IDEOGRAPH +0xD6CD 0x6EDE #CJK UNIFIED IDEOGRAPH +0xD6CE 0x6CBB #CJK UNIFIED IDEOGRAPH +0xD6CF 0x7A92 #CJK UNIFIED IDEOGRAPH +0xD6D0 0x4E2D #CJK UNIFIED IDEOGRAPH +0xD6D1 0x76C5 #CJK UNIFIED IDEOGRAPH +0xD6D2 0x5FE0 #CJK UNIFIED IDEOGRAPH +0xD6D3 0x949F #CJK UNIFIED IDEOGRAPH +0xD6D4 0x8877 #CJK UNIFIED IDEOGRAPH +0xD6D5 0x7EC8 #CJK UNIFIED IDEOGRAPH +0xD6D6 0x79CD #CJK UNIFIED IDEOGRAPH +0xD6D7 0x80BF #CJK UNIFIED IDEOGRAPH +0xD6D8 0x91CD #CJK UNIFIED IDEOGRAPH +0xD6D9 0x4EF2 #CJK UNIFIED IDEOGRAPH +0xD6DA 0x4F17 #CJK UNIFIED IDEOGRAPH +0xD6DB 0x821F #CJK UNIFIED IDEOGRAPH +0xD6DC 0x5468 #CJK UNIFIED IDEOGRAPH +0xD6DD 0x5DDE #CJK UNIFIED IDEOGRAPH +0xD6DE 0x6D32 #CJK UNIFIED IDEOGRAPH +0xD6DF 0x8BCC #CJK UNIFIED IDEOGRAPH +0xD6E0 0x7CA5 #CJK UNIFIED IDEOGRAPH +0xD6E1 0x8F74 #CJK UNIFIED IDEOGRAPH +0xD6E2 0x8098 #CJK UNIFIED IDEOGRAPH +0xD6E3 0x5E1A #CJK UNIFIED IDEOGRAPH +0xD6E4 0x5492 #CJK UNIFIED IDEOGRAPH +0xD6E5 0x76B1 #CJK UNIFIED IDEOGRAPH +0xD6E6 0x5B99 #CJK UNIFIED IDEOGRAPH +0xD6E7 0x663C #CJK UNIFIED IDEOGRAPH +0xD6E8 0x9AA4 #CJK UNIFIED IDEOGRAPH +0xD6E9 0x73E0 #CJK UNIFIED IDEOGRAPH +0xD6EA 0x682A #CJK UNIFIED IDEOGRAPH +0xD6EB 0x86DB #CJK UNIFIED IDEOGRAPH +0xD6EC 0x6731 #CJK UNIFIED IDEOGRAPH +0xD6ED 0x732A #CJK UNIFIED IDEOGRAPH +0xD6EE 0x8BF8 #CJK UNIFIED IDEOGRAPH +0xD6EF 0x8BDB #CJK UNIFIED IDEOGRAPH +0xD6F0 0x9010 #CJK UNIFIED IDEOGRAPH +0xD6F1 0x7AF9 #CJK UNIFIED IDEOGRAPH +0xD6F2 0x70DB #CJK UNIFIED IDEOGRAPH +0xD6F3 0x716E #CJK UNIFIED IDEOGRAPH +0xD6F4 0x62C4 #CJK UNIFIED IDEOGRAPH +0xD6F5 0x77A9 #CJK UNIFIED IDEOGRAPH +0xD6F6 0x5631 #CJK UNIFIED IDEOGRAPH +0xD6F7 0x4E3B #CJK UNIFIED IDEOGRAPH +0xD6F8 0x8457 #CJK UNIFIED IDEOGRAPH +0xD6F9 0x67F1 #CJK UNIFIED IDEOGRAPH +0xD6FA 0x52A9 #CJK UNIFIED IDEOGRAPH +0xD6FB 0x86C0 #CJK UNIFIED IDEOGRAPH +0xD6FC 0x8D2E #CJK UNIFIED IDEOGRAPH +0xD6FD 0x94F8 #CJK UNIFIED IDEOGRAPH +0xD6FE 0x7B51 #CJK UNIFIED IDEOGRAPH +0xD740 0x8B46 #CJK UNIFIED IDEOGRAPH +0xD741 0x8B47 #CJK UNIFIED IDEOGRAPH +0xD742 0x8B48 #CJK UNIFIED IDEOGRAPH +0xD743 0x8B49 #CJK UNIFIED IDEOGRAPH +0xD744 0x8B4A #CJK UNIFIED IDEOGRAPH +0xD745 0x8B4B #CJK UNIFIED IDEOGRAPH +0xD746 0x8B4C #CJK UNIFIED IDEOGRAPH +0xD747 0x8B4D #CJK UNIFIED IDEOGRAPH +0xD748 0x8B4E #CJK UNIFIED IDEOGRAPH +0xD749 0x8B4F #CJK UNIFIED IDEOGRAPH +0xD74A 0x8B50 #CJK UNIFIED IDEOGRAPH +0xD74B 0x8B51 #CJK UNIFIED IDEOGRAPH +0xD74C 0x8B52 #CJK UNIFIED IDEOGRAPH +0xD74D 0x8B53 #CJK UNIFIED IDEOGRAPH +0xD74E 0x8B54 #CJK UNIFIED IDEOGRAPH +0xD74F 0x8B55 #CJK UNIFIED IDEOGRAPH +0xD750 0x8B56 #CJK UNIFIED IDEOGRAPH +0xD751 0x8B57 #CJK UNIFIED IDEOGRAPH +0xD752 0x8B58 #CJK UNIFIED IDEOGRAPH +0xD753 0x8B59 #CJK UNIFIED IDEOGRAPH +0xD754 0x8B5A #CJK UNIFIED IDEOGRAPH +0xD755 0x8B5B #CJK UNIFIED IDEOGRAPH +0xD756 0x8B5C #CJK UNIFIED IDEOGRAPH +0xD757 0x8B5D #CJK UNIFIED IDEOGRAPH +0xD758 0x8B5E #CJK UNIFIED IDEOGRAPH +0xD759 0x8B5F #CJK UNIFIED IDEOGRAPH +0xD75A 0x8B60 #CJK UNIFIED IDEOGRAPH +0xD75B 0x8B61 #CJK UNIFIED IDEOGRAPH +0xD75C 0x8B62 #CJK UNIFIED IDEOGRAPH +0xD75D 0x8B63 #CJK UNIFIED IDEOGRAPH +0xD75E 0x8B64 #CJK UNIFIED IDEOGRAPH +0xD75F 0x8B65 #CJK UNIFIED IDEOGRAPH +0xD760 0x8B67 #CJK UNIFIED IDEOGRAPH +0xD761 0x8B68 #CJK UNIFIED IDEOGRAPH +0xD762 0x8B69 #CJK UNIFIED IDEOGRAPH +0xD763 0x8B6A #CJK UNIFIED IDEOGRAPH +0xD764 0x8B6B #CJK UNIFIED IDEOGRAPH +0xD765 0x8B6D #CJK UNIFIED IDEOGRAPH +0xD766 0x8B6E #CJK UNIFIED IDEOGRAPH +0xD767 0x8B6F #CJK UNIFIED IDEOGRAPH +0xD768 0x8B70 #CJK UNIFIED IDEOGRAPH +0xD769 0x8B71 #CJK UNIFIED IDEOGRAPH +0xD76A 0x8B72 #CJK UNIFIED IDEOGRAPH +0xD76B 0x8B73 #CJK UNIFIED IDEOGRAPH +0xD76C 0x8B74 #CJK UNIFIED IDEOGRAPH +0xD76D 0x8B75 #CJK UNIFIED IDEOGRAPH +0xD76E 0x8B76 #CJK UNIFIED IDEOGRAPH +0xD76F 0x8B77 #CJK UNIFIED IDEOGRAPH +0xD770 0x8B78 #CJK UNIFIED IDEOGRAPH +0xD771 0x8B79 #CJK UNIFIED IDEOGRAPH +0xD772 0x8B7A #CJK UNIFIED IDEOGRAPH +0xD773 0x8B7B #CJK UNIFIED IDEOGRAPH +0xD774 0x8B7C #CJK UNIFIED IDEOGRAPH +0xD775 0x8B7D #CJK UNIFIED IDEOGRAPH +0xD776 0x8B7E #CJK UNIFIED IDEOGRAPH +0xD777 0x8B7F #CJK UNIFIED IDEOGRAPH +0xD778 0x8B80 #CJK UNIFIED IDEOGRAPH +0xD779 0x8B81 #CJK UNIFIED IDEOGRAPH +0xD77A 0x8B82 #CJK UNIFIED IDEOGRAPH +0xD77B 0x8B83 #CJK UNIFIED IDEOGRAPH +0xD77C 0x8B84 #CJK UNIFIED IDEOGRAPH +0xD77D 0x8B85 #CJK UNIFIED IDEOGRAPH +0xD77E 0x8B86 #CJK UNIFIED IDEOGRAPH +0xD780 0x8B87 #CJK UNIFIED IDEOGRAPH +0xD781 0x8B88 #CJK UNIFIED IDEOGRAPH +0xD782 0x8B89 #CJK UNIFIED IDEOGRAPH +0xD783 0x8B8A #CJK UNIFIED IDEOGRAPH +0xD784 0x8B8B #CJK UNIFIED IDEOGRAPH +0xD785 0x8B8C #CJK UNIFIED IDEOGRAPH +0xD786 0x8B8D #CJK UNIFIED IDEOGRAPH +0xD787 0x8B8E #CJK UNIFIED IDEOGRAPH +0xD788 0x8B8F #CJK UNIFIED IDEOGRAPH +0xD789 0x8B90 #CJK UNIFIED IDEOGRAPH +0xD78A 0x8B91 #CJK UNIFIED IDEOGRAPH +0xD78B 0x8B92 #CJK UNIFIED IDEOGRAPH +0xD78C 0x8B93 #CJK UNIFIED IDEOGRAPH +0xD78D 0x8B94 #CJK UNIFIED IDEOGRAPH +0xD78E 0x8B95 #CJK UNIFIED IDEOGRAPH +0xD78F 0x8B96 #CJK UNIFIED IDEOGRAPH +0xD790 0x8B97 #CJK UNIFIED IDEOGRAPH +0xD791 0x8B98 #CJK UNIFIED IDEOGRAPH +0xD792 0x8B99 #CJK UNIFIED IDEOGRAPH +0xD793 0x8B9A #CJK UNIFIED IDEOGRAPH +0xD794 0x8B9B #CJK UNIFIED IDEOGRAPH +0xD795 0x8B9C #CJK UNIFIED IDEOGRAPH +0xD796 0x8B9D #CJK UNIFIED IDEOGRAPH +0xD797 0x8B9E #CJK UNIFIED IDEOGRAPH +0xD798 0x8B9F #CJK UNIFIED IDEOGRAPH +0xD799 0x8BAC #CJK UNIFIED IDEOGRAPH +0xD79A 0x8BB1 #CJK UNIFIED IDEOGRAPH +0xD79B 0x8BBB #CJK UNIFIED IDEOGRAPH +0xD79C 0x8BC7 #CJK UNIFIED IDEOGRAPH +0xD79D 0x8BD0 #CJK UNIFIED IDEOGRAPH +0xD79E 0x8BEA #CJK UNIFIED IDEOGRAPH +0xD79F 0x8C09 #CJK UNIFIED IDEOGRAPH +0xD7A0 0x8C1E #CJK UNIFIED IDEOGRAPH +0xD7A1 0x4F4F #CJK UNIFIED IDEOGRAPH +0xD7A2 0x6CE8 #CJK UNIFIED IDEOGRAPH +0xD7A3 0x795D #CJK UNIFIED IDEOGRAPH +0xD7A4 0x9A7B #CJK UNIFIED IDEOGRAPH +0xD7A5 0x6293 #CJK UNIFIED IDEOGRAPH +0xD7A6 0x722A #CJK UNIFIED IDEOGRAPH +0xD7A7 0x62FD #CJK UNIFIED IDEOGRAPH +0xD7A8 0x4E13 #CJK UNIFIED IDEOGRAPH +0xD7A9 0x7816 #CJK UNIFIED IDEOGRAPH +0xD7AA 0x8F6C #CJK UNIFIED IDEOGRAPH +0xD7AB 0x64B0 #CJK UNIFIED IDEOGRAPH +0xD7AC 0x8D5A #CJK UNIFIED IDEOGRAPH +0xD7AD 0x7BC6 #CJK UNIFIED IDEOGRAPH +0xD7AE 0x6869 #CJK UNIFIED IDEOGRAPH +0xD7AF 0x5E84 #CJK UNIFIED IDEOGRAPH +0xD7B0 0x88C5 #CJK UNIFIED IDEOGRAPH +0xD7B1 0x5986 #CJK UNIFIED IDEOGRAPH +0xD7B2 0x649E #CJK UNIFIED IDEOGRAPH +0xD7B3 0x58EE #CJK UNIFIED IDEOGRAPH +0xD7B4 0x72B6 #CJK UNIFIED IDEOGRAPH +0xD7B5 0x690E #CJK UNIFIED IDEOGRAPH +0xD7B6 0x9525 #CJK UNIFIED IDEOGRAPH +0xD7B7 0x8FFD #CJK UNIFIED IDEOGRAPH +0xD7B8 0x8D58 #CJK UNIFIED IDEOGRAPH +0xD7B9 0x5760 #CJK UNIFIED IDEOGRAPH +0xD7BA 0x7F00 #CJK UNIFIED IDEOGRAPH +0xD7BB 0x8C06 #CJK UNIFIED IDEOGRAPH +0xD7BC 0x51C6 #CJK UNIFIED IDEOGRAPH +0xD7BD 0x6349 #CJK UNIFIED IDEOGRAPH +0xD7BE 0x62D9 #CJK UNIFIED IDEOGRAPH +0xD7BF 0x5353 #CJK UNIFIED IDEOGRAPH +0xD7C0 0x684C #CJK UNIFIED IDEOGRAPH +0xD7C1 0x7422 #CJK UNIFIED IDEOGRAPH +0xD7C2 0x8301 #CJK UNIFIED IDEOGRAPH +0xD7C3 0x914C #CJK UNIFIED IDEOGRAPH +0xD7C4 0x5544 #CJK UNIFIED IDEOGRAPH +0xD7C5 0x7740 #CJK UNIFIED IDEOGRAPH +0xD7C6 0x707C #CJK UNIFIED IDEOGRAPH +0xD7C7 0x6D4A #CJK UNIFIED IDEOGRAPH +0xD7C8 0x5179 #CJK UNIFIED IDEOGRAPH +0xD7C9 0x54A8 #CJK UNIFIED IDEOGRAPH +0xD7CA 0x8D44 #CJK UNIFIED IDEOGRAPH +0xD7CB 0x59FF #CJK UNIFIED IDEOGRAPH +0xD7CC 0x6ECB #CJK UNIFIED IDEOGRAPH +0xD7CD 0x6DC4 #CJK UNIFIED IDEOGRAPH +0xD7CE 0x5B5C #CJK UNIFIED IDEOGRAPH +0xD7CF 0x7D2B #CJK UNIFIED IDEOGRAPH +0xD7D0 0x4ED4 #CJK UNIFIED IDEOGRAPH +0xD7D1 0x7C7D #CJK UNIFIED IDEOGRAPH +0xD7D2 0x6ED3 #CJK UNIFIED IDEOGRAPH +0xD7D3 0x5B50 #CJK UNIFIED IDEOGRAPH +0xD7D4 0x81EA #CJK UNIFIED IDEOGRAPH +0xD7D5 0x6E0D #CJK UNIFIED IDEOGRAPH +0xD7D6 0x5B57 #CJK UNIFIED IDEOGRAPH +0xD7D7 0x9B03 #CJK UNIFIED IDEOGRAPH +0xD7D8 0x68D5 #CJK UNIFIED IDEOGRAPH +0xD7D9 0x8E2A #CJK UNIFIED IDEOGRAPH +0xD7DA 0x5B97 #CJK UNIFIED IDEOGRAPH +0xD7DB 0x7EFC #CJK UNIFIED IDEOGRAPH +0xD7DC 0x603B #CJK UNIFIED IDEOGRAPH +0xD7DD 0x7EB5 #CJK UNIFIED IDEOGRAPH +0xD7DE 0x90B9 #CJK UNIFIED IDEOGRAPH +0xD7DF 0x8D70 #CJK UNIFIED IDEOGRAPH +0xD7E0 0x594F #CJK UNIFIED IDEOGRAPH +0xD7E1 0x63CD #CJK UNIFIED IDEOGRAPH +0xD7E2 0x79DF #CJK UNIFIED IDEOGRAPH +0xD7E3 0x8DB3 #CJK UNIFIED IDEOGRAPH +0xD7E4 0x5352 #CJK UNIFIED IDEOGRAPH +0xD7E5 0x65CF #CJK UNIFIED IDEOGRAPH +0xD7E6 0x7956 #CJK UNIFIED IDEOGRAPH +0xD7E7 0x8BC5 #CJK UNIFIED IDEOGRAPH +0xD7E8 0x963B #CJK UNIFIED IDEOGRAPH +0xD7E9 0x7EC4 #CJK UNIFIED IDEOGRAPH +0xD7EA 0x94BB #CJK UNIFIED IDEOGRAPH +0xD7EB 0x7E82 #CJK UNIFIED IDEOGRAPH +0xD7EC 0x5634 #CJK UNIFIED IDEOGRAPH +0xD7ED 0x9189 #CJK UNIFIED IDEOGRAPH +0xD7EE 0x6700 #CJK UNIFIED IDEOGRAPH +0xD7EF 0x7F6A #CJK UNIFIED IDEOGRAPH +0xD7F0 0x5C0A #CJK UNIFIED IDEOGRAPH +0xD7F1 0x9075 #CJK UNIFIED IDEOGRAPH +0xD7F2 0x6628 #CJK UNIFIED IDEOGRAPH +0xD7F3 0x5DE6 #CJK UNIFIED IDEOGRAPH +0xD7F4 0x4F50 #CJK UNIFIED IDEOGRAPH +0xD7F5 0x67DE #CJK UNIFIED IDEOGRAPH +0xD7F6 0x505A #CJK UNIFIED IDEOGRAPH +0xD7F7 0x4F5C #CJK UNIFIED IDEOGRAPH +0xD7F8 0x5750 #CJK UNIFIED IDEOGRAPH +0xD7F9 0x5EA7 #CJK UNIFIED IDEOGRAPH +0xD840 0x8C38 #CJK UNIFIED IDEOGRAPH +0xD841 0x8C39 #CJK UNIFIED IDEOGRAPH +0xD842 0x8C3A #CJK UNIFIED IDEOGRAPH +0xD843 0x8C3B #CJK UNIFIED IDEOGRAPH +0xD844 0x8C3C #CJK UNIFIED IDEOGRAPH +0xD845 0x8C3D #CJK UNIFIED IDEOGRAPH +0xD846 0x8C3E #CJK UNIFIED IDEOGRAPH +0xD847 0x8C3F #CJK UNIFIED IDEOGRAPH +0xD848 0x8C40 #CJK UNIFIED IDEOGRAPH +0xD849 0x8C42 #CJK UNIFIED IDEOGRAPH +0xD84A 0x8C43 #CJK UNIFIED IDEOGRAPH +0xD84B 0x8C44 #CJK UNIFIED IDEOGRAPH +0xD84C 0x8C45 #CJK UNIFIED IDEOGRAPH +0xD84D 0x8C48 #CJK UNIFIED IDEOGRAPH +0xD84E 0x8C4A #CJK UNIFIED IDEOGRAPH +0xD84F 0x8C4B #CJK UNIFIED IDEOGRAPH +0xD850 0x8C4D #CJK UNIFIED IDEOGRAPH +0xD851 0x8C4E #CJK UNIFIED IDEOGRAPH +0xD852 0x8C4F #CJK UNIFIED IDEOGRAPH +0xD853 0x8C50 #CJK UNIFIED IDEOGRAPH +0xD854 0x8C51 #CJK UNIFIED IDEOGRAPH +0xD855 0x8C52 #CJK UNIFIED IDEOGRAPH +0xD856 0x8C53 #CJK UNIFIED IDEOGRAPH +0xD857 0x8C54 #CJK UNIFIED IDEOGRAPH +0xD858 0x8C56 #CJK UNIFIED IDEOGRAPH +0xD859 0x8C57 #CJK UNIFIED IDEOGRAPH +0xD85A 0x8C58 #CJK UNIFIED IDEOGRAPH +0xD85B 0x8C59 #CJK UNIFIED IDEOGRAPH +0xD85C 0x8C5B #CJK UNIFIED IDEOGRAPH +0xD85D 0x8C5C #CJK UNIFIED IDEOGRAPH +0xD85E 0x8C5D #CJK UNIFIED IDEOGRAPH +0xD85F 0x8C5E #CJK UNIFIED IDEOGRAPH +0xD860 0x8C5F #CJK UNIFIED IDEOGRAPH +0xD861 0x8C60 #CJK UNIFIED IDEOGRAPH +0xD862 0x8C63 #CJK UNIFIED IDEOGRAPH +0xD863 0x8C64 #CJK UNIFIED IDEOGRAPH +0xD864 0x8C65 #CJK UNIFIED IDEOGRAPH +0xD865 0x8C66 #CJK UNIFIED IDEOGRAPH +0xD866 0x8C67 #CJK UNIFIED IDEOGRAPH +0xD867 0x8C68 #CJK UNIFIED IDEOGRAPH +0xD868 0x8C69 #CJK UNIFIED IDEOGRAPH +0xD869 0x8C6C #CJK UNIFIED IDEOGRAPH +0xD86A 0x8C6D #CJK UNIFIED IDEOGRAPH +0xD86B 0x8C6E #CJK UNIFIED IDEOGRAPH +0xD86C 0x8C6F #CJK UNIFIED IDEOGRAPH +0xD86D 0x8C70 #CJK UNIFIED IDEOGRAPH +0xD86E 0x8C71 #CJK UNIFIED IDEOGRAPH +0xD86F 0x8C72 #CJK UNIFIED IDEOGRAPH +0xD870 0x8C74 #CJK UNIFIED IDEOGRAPH +0xD871 0x8C75 #CJK UNIFIED IDEOGRAPH +0xD872 0x8C76 #CJK UNIFIED IDEOGRAPH +0xD873 0x8C77 #CJK UNIFIED IDEOGRAPH +0xD874 0x8C7B #CJK UNIFIED IDEOGRAPH +0xD875 0x8C7C #CJK UNIFIED IDEOGRAPH +0xD876 0x8C7D #CJK UNIFIED IDEOGRAPH +0xD877 0x8C7E #CJK UNIFIED IDEOGRAPH +0xD878 0x8C7F #CJK UNIFIED IDEOGRAPH +0xD879 0x8C80 #CJK UNIFIED IDEOGRAPH +0xD87A 0x8C81 #CJK UNIFIED IDEOGRAPH +0xD87B 0x8C83 #CJK UNIFIED IDEOGRAPH +0xD87C 0x8C84 #CJK UNIFIED IDEOGRAPH +0xD87D 0x8C86 #CJK UNIFIED IDEOGRAPH +0xD87E 0x8C87 #CJK UNIFIED IDEOGRAPH +0xD880 0x8C88 #CJK UNIFIED IDEOGRAPH +0xD881 0x8C8B #CJK UNIFIED IDEOGRAPH +0xD882 0x8C8D #CJK UNIFIED IDEOGRAPH +0xD883 0x8C8E #CJK UNIFIED IDEOGRAPH +0xD884 0x8C8F #CJK UNIFIED IDEOGRAPH +0xD885 0x8C90 #CJK UNIFIED IDEOGRAPH +0xD886 0x8C91 #CJK UNIFIED IDEOGRAPH +0xD887 0x8C92 #CJK UNIFIED IDEOGRAPH +0xD888 0x8C93 #CJK UNIFIED IDEOGRAPH +0xD889 0x8C95 #CJK UNIFIED IDEOGRAPH +0xD88A 0x8C96 #CJK UNIFIED IDEOGRAPH +0xD88B 0x8C97 #CJK UNIFIED IDEOGRAPH +0xD88C 0x8C99 #CJK UNIFIED IDEOGRAPH +0xD88D 0x8C9A #CJK UNIFIED IDEOGRAPH +0xD88E 0x8C9B #CJK UNIFIED IDEOGRAPH +0xD88F 0x8C9C #CJK UNIFIED IDEOGRAPH +0xD890 0x8C9D #CJK UNIFIED IDEOGRAPH +0xD891 0x8C9E #CJK UNIFIED IDEOGRAPH +0xD892 0x8C9F #CJK UNIFIED IDEOGRAPH +0xD893 0x8CA0 #CJK UNIFIED IDEOGRAPH +0xD894 0x8CA1 #CJK UNIFIED IDEOGRAPH +0xD895 0x8CA2 #CJK UNIFIED IDEOGRAPH +0xD896 0x8CA3 #CJK UNIFIED IDEOGRAPH +0xD897 0x8CA4 #CJK UNIFIED IDEOGRAPH +0xD898 0x8CA5 #CJK UNIFIED IDEOGRAPH +0xD899 0x8CA6 #CJK UNIFIED IDEOGRAPH +0xD89A 0x8CA7 #CJK UNIFIED IDEOGRAPH +0xD89B 0x8CA8 #CJK UNIFIED IDEOGRAPH +0xD89C 0x8CA9 #CJK UNIFIED IDEOGRAPH +0xD89D 0x8CAA #CJK UNIFIED IDEOGRAPH +0xD89E 0x8CAB #CJK UNIFIED IDEOGRAPH +0xD89F 0x8CAC #CJK UNIFIED IDEOGRAPH +0xD8A0 0x8CAD #CJK UNIFIED IDEOGRAPH +0xD8A1 0x4E8D #CJK UNIFIED IDEOGRAPH +0xD8A2 0x4E0C #CJK UNIFIED IDEOGRAPH +0xD8A3 0x5140 #CJK UNIFIED IDEOGRAPH +0xD8A4 0x4E10 #CJK UNIFIED IDEOGRAPH +0xD8A5 0x5EFF #CJK UNIFIED IDEOGRAPH +0xD8A6 0x5345 #CJK UNIFIED IDEOGRAPH +0xD8A7 0x4E15 #CJK UNIFIED IDEOGRAPH +0xD8A8 0x4E98 #CJK UNIFIED IDEOGRAPH +0xD8A9 0x4E1E #CJK UNIFIED IDEOGRAPH +0xD8AA 0x9B32 #CJK UNIFIED IDEOGRAPH +0xD8AB 0x5B6C #CJK UNIFIED IDEOGRAPH +0xD8AC 0x5669 #CJK UNIFIED IDEOGRAPH +0xD8AD 0x4E28 #CJK UNIFIED IDEOGRAPH +0xD8AE 0x79BA #CJK UNIFIED IDEOGRAPH +0xD8AF 0x4E3F #CJK UNIFIED IDEOGRAPH +0xD8B0 0x5315 #CJK UNIFIED IDEOGRAPH +0xD8B1 0x4E47 #CJK UNIFIED IDEOGRAPH +0xD8B2 0x592D #CJK UNIFIED IDEOGRAPH +0xD8B3 0x723B #CJK UNIFIED IDEOGRAPH +0xD8B4 0x536E #CJK UNIFIED IDEOGRAPH +0xD8B5 0x6C10 #CJK UNIFIED IDEOGRAPH +0xD8B6 0x56DF #CJK UNIFIED IDEOGRAPH +0xD8B7 0x80E4 #CJK UNIFIED IDEOGRAPH +0xD8B8 0x9997 #CJK UNIFIED IDEOGRAPH +0xD8B9 0x6BD3 #CJK UNIFIED IDEOGRAPH +0xD8BA 0x777E #CJK UNIFIED IDEOGRAPH +0xD8BB 0x9F17 #CJK UNIFIED IDEOGRAPH +0xD8BC 0x4E36 #CJK UNIFIED IDEOGRAPH +0xD8BD 0x4E9F #CJK UNIFIED IDEOGRAPH +0xD8BE 0x9F10 #CJK UNIFIED IDEOGRAPH +0xD8BF 0x4E5C #CJK UNIFIED IDEOGRAPH +0xD8C0 0x4E69 #CJK UNIFIED IDEOGRAPH +0xD8C1 0x4E93 #CJK UNIFIED IDEOGRAPH +0xD8C2 0x8288 #CJK UNIFIED IDEOGRAPH +0xD8C3 0x5B5B #CJK UNIFIED IDEOGRAPH +0xD8C4 0x556C #CJK UNIFIED IDEOGRAPH +0xD8C5 0x560F #CJK UNIFIED IDEOGRAPH +0xD8C6 0x4EC4 #CJK UNIFIED IDEOGRAPH +0xD8C7 0x538D #CJK UNIFIED IDEOGRAPH +0xD8C8 0x539D #CJK UNIFIED IDEOGRAPH +0xD8C9 0x53A3 #CJK UNIFIED IDEOGRAPH +0xD8CA 0x53A5 #CJK UNIFIED IDEOGRAPH +0xD8CB 0x53AE #CJK UNIFIED IDEOGRAPH +0xD8CC 0x9765 #CJK UNIFIED IDEOGRAPH +0xD8CD 0x8D5D #CJK UNIFIED IDEOGRAPH +0xD8CE 0x531A #CJK UNIFIED IDEOGRAPH +0xD8CF 0x53F5 #CJK UNIFIED IDEOGRAPH +0xD8D0 0x5326 #CJK UNIFIED IDEOGRAPH +0xD8D1 0x532E #CJK UNIFIED IDEOGRAPH +0xD8D2 0x533E #CJK UNIFIED IDEOGRAPH +0xD8D3 0x8D5C #CJK UNIFIED IDEOGRAPH +0xD8D4 0x5366 #CJK UNIFIED IDEOGRAPH +0xD8D5 0x5363 #CJK UNIFIED IDEOGRAPH +0xD8D6 0x5202 #CJK UNIFIED IDEOGRAPH +0xD8D7 0x5208 #CJK UNIFIED IDEOGRAPH +0xD8D8 0x520E #CJK UNIFIED IDEOGRAPH +0xD8D9 0x522D #CJK UNIFIED IDEOGRAPH +0xD8DA 0x5233 #CJK UNIFIED IDEOGRAPH +0xD8DB 0x523F #CJK UNIFIED IDEOGRAPH +0xD8DC 0x5240 #CJK UNIFIED IDEOGRAPH +0xD8DD 0x524C #CJK UNIFIED IDEOGRAPH +0xD8DE 0x525E #CJK UNIFIED IDEOGRAPH +0xD8DF 0x5261 #CJK UNIFIED IDEOGRAPH +0xD8E0 0x525C #CJK UNIFIED IDEOGRAPH +0xD8E1 0x84AF #CJK UNIFIED IDEOGRAPH +0xD8E2 0x527D #CJK UNIFIED IDEOGRAPH +0xD8E3 0x5282 #CJK UNIFIED IDEOGRAPH +0xD8E4 0x5281 #CJK UNIFIED IDEOGRAPH +0xD8E5 0x5290 #CJK UNIFIED IDEOGRAPH +0xD8E6 0x5293 #CJK UNIFIED IDEOGRAPH +0xD8E7 0x5182 #CJK UNIFIED IDEOGRAPH +0xD8E8 0x7F54 #CJK UNIFIED IDEOGRAPH +0xD8E9 0x4EBB #CJK UNIFIED IDEOGRAPH +0xD8EA 0x4EC3 #CJK UNIFIED IDEOGRAPH +0xD8EB 0x4EC9 #CJK UNIFIED IDEOGRAPH +0xD8EC 0x4EC2 #CJK UNIFIED IDEOGRAPH +0xD8ED 0x4EE8 #CJK UNIFIED IDEOGRAPH +0xD8EE 0x4EE1 #CJK UNIFIED IDEOGRAPH +0xD8EF 0x4EEB #CJK UNIFIED IDEOGRAPH +0xD8F0 0x4EDE #CJK UNIFIED IDEOGRAPH +0xD8F1 0x4F1B #CJK UNIFIED IDEOGRAPH +0xD8F2 0x4EF3 #CJK UNIFIED IDEOGRAPH +0xD8F3 0x4F22 #CJK UNIFIED IDEOGRAPH +0xD8F4 0x4F64 #CJK UNIFIED IDEOGRAPH +0xD8F5 0x4EF5 #CJK UNIFIED IDEOGRAPH +0xD8F6 0x4F25 #CJK UNIFIED IDEOGRAPH +0xD8F7 0x4F27 #CJK UNIFIED IDEOGRAPH +0xD8F8 0x4F09 #CJK UNIFIED IDEOGRAPH +0xD8F9 0x4F2B #CJK UNIFIED IDEOGRAPH +0xD8FA 0x4F5E #CJK UNIFIED IDEOGRAPH +0xD8FB 0x4F67 #CJK UNIFIED IDEOGRAPH +0xD8FC 0x6538 #CJK UNIFIED IDEOGRAPH +0xD8FD 0x4F5A #CJK UNIFIED IDEOGRAPH +0xD8FE 0x4F5D #CJK UNIFIED IDEOGRAPH +0xD940 0x8CAE #CJK UNIFIED IDEOGRAPH +0xD941 0x8CAF #CJK UNIFIED IDEOGRAPH +0xD942 0x8CB0 #CJK UNIFIED IDEOGRAPH +0xD943 0x8CB1 #CJK UNIFIED IDEOGRAPH +0xD944 0x8CB2 #CJK UNIFIED IDEOGRAPH +0xD945 0x8CB3 #CJK UNIFIED IDEOGRAPH +0xD946 0x8CB4 #CJK UNIFIED IDEOGRAPH +0xD947 0x8CB5 #CJK UNIFIED IDEOGRAPH +0xD948 0x8CB6 #CJK UNIFIED IDEOGRAPH +0xD949 0x8CB7 #CJK UNIFIED IDEOGRAPH +0xD94A 0x8CB8 #CJK UNIFIED IDEOGRAPH +0xD94B 0x8CB9 #CJK UNIFIED IDEOGRAPH +0xD94C 0x8CBA #CJK UNIFIED IDEOGRAPH +0xD94D 0x8CBB #CJK UNIFIED IDEOGRAPH +0xD94E 0x8CBC #CJK UNIFIED IDEOGRAPH +0xD94F 0x8CBD #CJK UNIFIED IDEOGRAPH +0xD950 0x8CBE #CJK UNIFIED IDEOGRAPH +0xD951 0x8CBF #CJK UNIFIED IDEOGRAPH +0xD952 0x8CC0 #CJK UNIFIED IDEOGRAPH +0xD953 0x8CC1 #CJK UNIFIED IDEOGRAPH +0xD954 0x8CC2 #CJK UNIFIED IDEOGRAPH +0xD955 0x8CC3 #CJK UNIFIED IDEOGRAPH +0xD956 0x8CC4 #CJK UNIFIED IDEOGRAPH +0xD957 0x8CC5 #CJK UNIFIED IDEOGRAPH +0xD958 0x8CC6 #CJK UNIFIED IDEOGRAPH +0xD959 0x8CC7 #CJK UNIFIED IDEOGRAPH +0xD95A 0x8CC8 #CJK UNIFIED IDEOGRAPH +0xD95B 0x8CC9 #CJK UNIFIED IDEOGRAPH +0xD95C 0x8CCA #CJK UNIFIED IDEOGRAPH +0xD95D 0x8CCB #CJK UNIFIED IDEOGRAPH +0xD95E 0x8CCC #CJK UNIFIED IDEOGRAPH +0xD95F 0x8CCD #CJK UNIFIED IDEOGRAPH +0xD960 0x8CCE #CJK UNIFIED IDEOGRAPH +0xD961 0x8CCF #CJK UNIFIED IDEOGRAPH +0xD962 0x8CD0 #CJK UNIFIED IDEOGRAPH +0xD963 0x8CD1 #CJK UNIFIED IDEOGRAPH +0xD964 0x8CD2 #CJK UNIFIED IDEOGRAPH +0xD965 0x8CD3 #CJK UNIFIED IDEOGRAPH +0xD966 0x8CD4 #CJK UNIFIED IDEOGRAPH +0xD967 0x8CD5 #CJK UNIFIED IDEOGRAPH +0xD968 0x8CD6 #CJK UNIFIED IDEOGRAPH +0xD969 0x8CD7 #CJK UNIFIED IDEOGRAPH +0xD96A 0x8CD8 #CJK UNIFIED IDEOGRAPH +0xD96B 0x8CD9 #CJK UNIFIED IDEOGRAPH +0xD96C 0x8CDA #CJK UNIFIED IDEOGRAPH +0xD96D 0x8CDB #CJK UNIFIED IDEOGRAPH +0xD96E 0x8CDC #CJK UNIFIED IDEOGRAPH +0xD96F 0x8CDD #CJK UNIFIED IDEOGRAPH +0xD970 0x8CDE #CJK UNIFIED IDEOGRAPH +0xD971 0x8CDF #CJK UNIFIED IDEOGRAPH +0xD972 0x8CE0 #CJK UNIFIED IDEOGRAPH +0xD973 0x8CE1 #CJK UNIFIED IDEOGRAPH +0xD974 0x8CE2 #CJK UNIFIED IDEOGRAPH +0xD975 0x8CE3 #CJK UNIFIED IDEOGRAPH +0xD976 0x8CE4 #CJK UNIFIED IDEOGRAPH +0xD977 0x8CE5 #CJK UNIFIED IDEOGRAPH +0xD978 0x8CE6 #CJK UNIFIED IDEOGRAPH +0xD979 0x8CE7 #CJK UNIFIED IDEOGRAPH +0xD97A 0x8CE8 #CJK UNIFIED IDEOGRAPH +0xD97B 0x8CE9 #CJK UNIFIED IDEOGRAPH +0xD97C 0x8CEA #CJK UNIFIED IDEOGRAPH +0xD97D 0x8CEB #CJK UNIFIED IDEOGRAPH +0xD97E 0x8CEC #CJK UNIFIED IDEOGRAPH +0xD980 0x8CED #CJK UNIFIED IDEOGRAPH +0xD981 0x8CEE #CJK UNIFIED IDEOGRAPH +0xD982 0x8CEF #CJK UNIFIED IDEOGRAPH +0xD983 0x8CF0 #CJK UNIFIED IDEOGRAPH +0xD984 0x8CF1 #CJK UNIFIED IDEOGRAPH +0xD985 0x8CF2 #CJK UNIFIED IDEOGRAPH +0xD986 0x8CF3 #CJK UNIFIED IDEOGRAPH +0xD987 0x8CF4 #CJK UNIFIED IDEOGRAPH +0xD988 0x8CF5 #CJK UNIFIED IDEOGRAPH +0xD989 0x8CF6 #CJK UNIFIED IDEOGRAPH +0xD98A 0x8CF7 #CJK UNIFIED IDEOGRAPH +0xD98B 0x8CF8 #CJK UNIFIED IDEOGRAPH +0xD98C 0x8CF9 #CJK UNIFIED IDEOGRAPH +0xD98D 0x8CFA #CJK UNIFIED IDEOGRAPH +0xD98E 0x8CFB #CJK UNIFIED IDEOGRAPH +0xD98F 0x8CFC #CJK UNIFIED IDEOGRAPH +0xD990 0x8CFD #CJK UNIFIED IDEOGRAPH +0xD991 0x8CFE #CJK UNIFIED IDEOGRAPH +0xD992 0x8CFF #CJK UNIFIED IDEOGRAPH +0xD993 0x8D00 #CJK UNIFIED IDEOGRAPH +0xD994 0x8D01 #CJK UNIFIED IDEOGRAPH +0xD995 0x8D02 #CJK UNIFIED IDEOGRAPH +0xD996 0x8D03 #CJK UNIFIED IDEOGRAPH +0xD997 0x8D04 #CJK UNIFIED IDEOGRAPH +0xD998 0x8D05 #CJK UNIFIED IDEOGRAPH +0xD999 0x8D06 #CJK UNIFIED IDEOGRAPH +0xD99A 0x8D07 #CJK UNIFIED IDEOGRAPH +0xD99B 0x8D08 #CJK UNIFIED IDEOGRAPH +0xD99C 0x8D09 #CJK UNIFIED IDEOGRAPH +0xD99D 0x8D0A #CJK UNIFIED IDEOGRAPH +0xD99E 0x8D0B #CJK UNIFIED IDEOGRAPH +0xD99F 0x8D0C #CJK UNIFIED IDEOGRAPH +0xD9A0 0x8D0D #CJK UNIFIED IDEOGRAPH +0xD9A1 0x4F5F #CJK UNIFIED IDEOGRAPH +0xD9A2 0x4F57 #CJK UNIFIED IDEOGRAPH +0xD9A3 0x4F32 #CJK UNIFIED IDEOGRAPH +0xD9A4 0x4F3D #CJK UNIFIED IDEOGRAPH +0xD9A5 0x4F76 #CJK UNIFIED IDEOGRAPH +0xD9A6 0x4F74 #CJK UNIFIED IDEOGRAPH +0xD9A7 0x4F91 #CJK UNIFIED IDEOGRAPH +0xD9A8 0x4F89 #CJK UNIFIED IDEOGRAPH +0xD9A9 0x4F83 #CJK UNIFIED IDEOGRAPH +0xD9AA 0x4F8F #CJK UNIFIED IDEOGRAPH +0xD9AB 0x4F7E #CJK UNIFIED IDEOGRAPH +0xD9AC 0x4F7B #CJK UNIFIED IDEOGRAPH +0xD9AD 0x4FAA #CJK UNIFIED IDEOGRAPH +0xD9AE 0x4F7C #CJK UNIFIED IDEOGRAPH +0xD9AF 0x4FAC #CJK UNIFIED IDEOGRAPH +0xD9B0 0x4F94 #CJK UNIFIED IDEOGRAPH +0xD9B1 0x4FE6 #CJK UNIFIED IDEOGRAPH +0xD9B2 0x4FE8 #CJK UNIFIED IDEOGRAPH +0xD9B3 0x4FEA #CJK UNIFIED IDEOGRAPH +0xD9B4 0x4FC5 #CJK UNIFIED IDEOGRAPH +0xD9B5 0x4FDA #CJK UNIFIED IDEOGRAPH +0xD9B6 0x4FE3 #CJK UNIFIED IDEOGRAPH +0xD9B7 0x4FDC #CJK UNIFIED IDEOGRAPH +0xD9B8 0x4FD1 #CJK UNIFIED IDEOGRAPH +0xD9B9 0x4FDF #CJK UNIFIED IDEOGRAPH +0xD9BA 0x4FF8 #CJK UNIFIED IDEOGRAPH +0xD9BB 0x5029 #CJK UNIFIED IDEOGRAPH +0xD9BC 0x504C #CJK UNIFIED IDEOGRAPH +0xD9BD 0x4FF3 #CJK UNIFIED IDEOGRAPH +0xD9BE 0x502C #CJK UNIFIED IDEOGRAPH +0xD9BF 0x500F #CJK UNIFIED IDEOGRAPH +0xD9C0 0x502E #CJK UNIFIED IDEOGRAPH +0xD9C1 0x502D #CJK UNIFIED IDEOGRAPH +0xD9C2 0x4FFE #CJK UNIFIED IDEOGRAPH +0xD9C3 0x501C #CJK UNIFIED IDEOGRAPH +0xD9C4 0x500C #CJK UNIFIED IDEOGRAPH +0xD9C5 0x5025 #CJK UNIFIED IDEOGRAPH +0xD9C6 0x5028 #CJK UNIFIED IDEOGRAPH +0xD9C7 0x507E #CJK UNIFIED IDEOGRAPH +0xD9C8 0x5043 #CJK UNIFIED IDEOGRAPH +0xD9C9 0x5055 #CJK UNIFIED IDEOGRAPH +0xD9CA 0x5048 #CJK UNIFIED IDEOGRAPH +0xD9CB 0x504E #CJK UNIFIED IDEOGRAPH +0xD9CC 0x506C #CJK UNIFIED IDEOGRAPH +0xD9CD 0x507B #CJK UNIFIED IDEOGRAPH +0xD9CE 0x50A5 #CJK UNIFIED IDEOGRAPH +0xD9CF 0x50A7 #CJK UNIFIED IDEOGRAPH +0xD9D0 0x50A9 #CJK UNIFIED IDEOGRAPH +0xD9D1 0x50BA #CJK UNIFIED IDEOGRAPH +0xD9D2 0x50D6 #CJK UNIFIED IDEOGRAPH +0xD9D3 0x5106 #CJK UNIFIED IDEOGRAPH +0xD9D4 0x50ED #CJK UNIFIED IDEOGRAPH +0xD9D5 0x50EC #CJK UNIFIED IDEOGRAPH +0xD9D6 0x50E6 #CJK UNIFIED IDEOGRAPH +0xD9D7 0x50EE #CJK UNIFIED IDEOGRAPH +0xD9D8 0x5107 #CJK UNIFIED IDEOGRAPH +0xD9D9 0x510B #CJK UNIFIED IDEOGRAPH +0xD9DA 0x4EDD #CJK UNIFIED IDEOGRAPH +0xD9DB 0x6C3D #CJK UNIFIED IDEOGRAPH +0xD9DC 0x4F58 #CJK UNIFIED IDEOGRAPH +0xD9DD 0x4F65 #CJK UNIFIED IDEOGRAPH +0xD9DE 0x4FCE #CJK UNIFIED IDEOGRAPH +0xD9DF 0x9FA0 #CJK UNIFIED IDEOGRAPH +0xD9E0 0x6C46 #CJK UNIFIED IDEOGRAPH +0xD9E1 0x7C74 #CJK UNIFIED IDEOGRAPH +0xD9E2 0x516E #CJK UNIFIED IDEOGRAPH +0xD9E3 0x5DFD #CJK UNIFIED IDEOGRAPH +0xD9E4 0x9EC9 #CJK UNIFIED IDEOGRAPH +0xD9E5 0x9998 #CJK UNIFIED IDEOGRAPH +0xD9E6 0x5181 #CJK UNIFIED IDEOGRAPH +0xD9E7 0x5914 #CJK UNIFIED IDEOGRAPH +0xD9E8 0x52F9 #CJK UNIFIED IDEOGRAPH +0xD9E9 0x530D #CJK UNIFIED IDEOGRAPH +0xD9EA 0x8A07 #CJK UNIFIED IDEOGRAPH +0xD9EB 0x5310 #CJK UNIFIED IDEOGRAPH +0xD9EC 0x51EB #CJK UNIFIED IDEOGRAPH +0xD9ED 0x5919 #CJK UNIFIED IDEOGRAPH +0xD9EE 0x5155 #CJK UNIFIED IDEOGRAPH +0xD9EF 0x4EA0 #CJK UNIFIED IDEOGRAPH +0xD9F0 0x5156 #CJK UNIFIED IDEOGRAPH +0xD9F1 0x4EB3 #CJK UNIFIED IDEOGRAPH +0xD9F2 0x886E #CJK UNIFIED IDEOGRAPH +0xD9F3 0x88A4 #CJK UNIFIED IDEOGRAPH +0xD9F4 0x4EB5 #CJK UNIFIED IDEOGRAPH +0xD9F5 0x8114 #CJK UNIFIED IDEOGRAPH +0xD9F6 0x88D2 #CJK UNIFIED IDEOGRAPH +0xD9F7 0x7980 #CJK UNIFIED IDEOGRAPH +0xD9F8 0x5B34 #CJK UNIFIED IDEOGRAPH +0xD9F9 0x8803 #CJK UNIFIED IDEOGRAPH +0xD9FA 0x7FB8 #CJK UNIFIED IDEOGRAPH +0xD9FB 0x51AB #CJK UNIFIED IDEOGRAPH +0xD9FC 0x51B1 #CJK UNIFIED IDEOGRAPH +0xD9FD 0x51BD #CJK UNIFIED IDEOGRAPH +0xD9FE 0x51BC #CJK UNIFIED IDEOGRAPH +0xDA40 0x8D0E #CJK UNIFIED IDEOGRAPH +0xDA41 0x8D0F #CJK UNIFIED IDEOGRAPH +0xDA42 0x8D10 #CJK UNIFIED IDEOGRAPH +0xDA43 0x8D11 #CJK UNIFIED IDEOGRAPH +0xDA44 0x8D12 #CJK UNIFIED IDEOGRAPH +0xDA45 0x8D13 #CJK UNIFIED IDEOGRAPH +0xDA46 0x8D14 #CJK UNIFIED IDEOGRAPH +0xDA47 0x8D15 #CJK UNIFIED IDEOGRAPH +0xDA48 0x8D16 #CJK UNIFIED IDEOGRAPH +0xDA49 0x8D17 #CJK UNIFIED IDEOGRAPH +0xDA4A 0x8D18 #CJK UNIFIED IDEOGRAPH +0xDA4B 0x8D19 #CJK UNIFIED IDEOGRAPH +0xDA4C 0x8D1A #CJK UNIFIED IDEOGRAPH +0xDA4D 0x8D1B #CJK UNIFIED IDEOGRAPH +0xDA4E 0x8D1C #CJK UNIFIED IDEOGRAPH +0xDA4F 0x8D20 #CJK UNIFIED IDEOGRAPH +0xDA50 0x8D51 #CJK UNIFIED IDEOGRAPH +0xDA51 0x8D52 #CJK UNIFIED IDEOGRAPH +0xDA52 0x8D57 #CJK UNIFIED IDEOGRAPH +0xDA53 0x8D5F #CJK UNIFIED IDEOGRAPH +0xDA54 0x8D65 #CJK UNIFIED IDEOGRAPH +0xDA55 0x8D68 #CJK UNIFIED IDEOGRAPH +0xDA56 0x8D69 #CJK UNIFIED IDEOGRAPH +0xDA57 0x8D6A #CJK UNIFIED IDEOGRAPH +0xDA58 0x8D6C #CJK UNIFIED IDEOGRAPH +0xDA59 0x8D6E #CJK UNIFIED IDEOGRAPH +0xDA5A 0x8D6F #CJK UNIFIED IDEOGRAPH +0xDA5B 0x8D71 #CJK UNIFIED IDEOGRAPH +0xDA5C 0x8D72 #CJK UNIFIED IDEOGRAPH +0xDA5D 0x8D78 #CJK UNIFIED IDEOGRAPH +0xDA5E 0x8D79 #CJK UNIFIED IDEOGRAPH +0xDA5F 0x8D7A #CJK UNIFIED IDEOGRAPH +0xDA60 0x8D7B #CJK UNIFIED IDEOGRAPH +0xDA61 0x8D7C #CJK UNIFIED IDEOGRAPH +0xDA62 0x8D7D #CJK UNIFIED IDEOGRAPH +0xDA63 0x8D7E #CJK UNIFIED IDEOGRAPH +0xDA64 0x8D7F #CJK UNIFIED IDEOGRAPH +0xDA65 0x8D80 #CJK UNIFIED IDEOGRAPH +0xDA66 0x8D82 #CJK UNIFIED IDEOGRAPH +0xDA67 0x8D83 #CJK UNIFIED IDEOGRAPH +0xDA68 0x8D86 #CJK UNIFIED IDEOGRAPH +0xDA69 0x8D87 #CJK UNIFIED IDEOGRAPH +0xDA6A 0x8D88 #CJK UNIFIED IDEOGRAPH +0xDA6B 0x8D89 #CJK UNIFIED IDEOGRAPH +0xDA6C 0x8D8C #CJK UNIFIED IDEOGRAPH +0xDA6D 0x8D8D #CJK UNIFIED IDEOGRAPH +0xDA6E 0x8D8E #CJK UNIFIED IDEOGRAPH +0xDA6F 0x8D8F #CJK UNIFIED IDEOGRAPH +0xDA70 0x8D90 #CJK UNIFIED IDEOGRAPH +0xDA71 0x8D92 #CJK UNIFIED IDEOGRAPH +0xDA72 0x8D93 #CJK UNIFIED IDEOGRAPH +0xDA73 0x8D95 #CJK UNIFIED IDEOGRAPH +0xDA74 0x8D96 #CJK UNIFIED IDEOGRAPH +0xDA75 0x8D97 #CJK UNIFIED IDEOGRAPH +0xDA76 0x8D98 #CJK UNIFIED IDEOGRAPH +0xDA77 0x8D99 #CJK UNIFIED IDEOGRAPH +0xDA78 0x8D9A #CJK UNIFIED IDEOGRAPH +0xDA79 0x8D9B #CJK UNIFIED IDEOGRAPH +0xDA7A 0x8D9C #CJK UNIFIED IDEOGRAPH +0xDA7B 0x8D9D #CJK UNIFIED IDEOGRAPH +0xDA7C 0x8D9E #CJK UNIFIED IDEOGRAPH +0xDA7D 0x8DA0 #CJK UNIFIED IDEOGRAPH +0xDA7E 0x8DA1 #CJK UNIFIED IDEOGRAPH +0xDA80 0x8DA2 #CJK UNIFIED IDEOGRAPH +0xDA81 0x8DA4 #CJK UNIFIED IDEOGRAPH +0xDA82 0x8DA5 #CJK UNIFIED IDEOGRAPH +0xDA83 0x8DA6 #CJK UNIFIED IDEOGRAPH +0xDA84 0x8DA7 #CJK UNIFIED IDEOGRAPH +0xDA85 0x8DA8 #CJK UNIFIED IDEOGRAPH +0xDA86 0x8DA9 #CJK UNIFIED IDEOGRAPH +0xDA87 0x8DAA #CJK UNIFIED IDEOGRAPH +0xDA88 0x8DAB #CJK UNIFIED IDEOGRAPH +0xDA89 0x8DAC #CJK UNIFIED IDEOGRAPH +0xDA8A 0x8DAD #CJK UNIFIED IDEOGRAPH +0xDA8B 0x8DAE #CJK UNIFIED IDEOGRAPH +0xDA8C 0x8DAF #CJK UNIFIED IDEOGRAPH +0xDA8D 0x8DB0 #CJK UNIFIED IDEOGRAPH +0xDA8E 0x8DB2 #CJK UNIFIED IDEOGRAPH +0xDA8F 0x8DB6 #CJK UNIFIED IDEOGRAPH +0xDA90 0x8DB7 #CJK UNIFIED IDEOGRAPH +0xDA91 0x8DB9 #CJK UNIFIED IDEOGRAPH +0xDA92 0x8DBB #CJK UNIFIED IDEOGRAPH +0xDA93 0x8DBD #CJK UNIFIED IDEOGRAPH +0xDA94 0x8DC0 #CJK UNIFIED IDEOGRAPH +0xDA95 0x8DC1 #CJK UNIFIED IDEOGRAPH +0xDA96 0x8DC2 #CJK UNIFIED IDEOGRAPH +0xDA97 0x8DC5 #CJK UNIFIED IDEOGRAPH +0xDA98 0x8DC7 #CJK UNIFIED IDEOGRAPH +0xDA99 0x8DC8 #CJK UNIFIED IDEOGRAPH +0xDA9A 0x8DC9 #CJK UNIFIED IDEOGRAPH +0xDA9B 0x8DCA #CJK UNIFIED IDEOGRAPH +0xDA9C 0x8DCD #CJK UNIFIED IDEOGRAPH +0xDA9D 0x8DD0 #CJK UNIFIED IDEOGRAPH +0xDA9E 0x8DD2 #CJK UNIFIED IDEOGRAPH +0xDA9F 0x8DD3 #CJK UNIFIED IDEOGRAPH +0xDAA0 0x8DD4 #CJK UNIFIED IDEOGRAPH +0xDAA1 0x51C7 #CJK UNIFIED IDEOGRAPH +0xDAA2 0x5196 #CJK UNIFIED IDEOGRAPH +0xDAA3 0x51A2 #CJK UNIFIED IDEOGRAPH +0xDAA4 0x51A5 #CJK UNIFIED IDEOGRAPH +0xDAA5 0x8BA0 #CJK UNIFIED IDEOGRAPH +0xDAA6 0x8BA6 #CJK UNIFIED IDEOGRAPH +0xDAA7 0x8BA7 #CJK UNIFIED IDEOGRAPH +0xDAA8 0x8BAA #CJK UNIFIED IDEOGRAPH +0xDAA9 0x8BB4 #CJK UNIFIED IDEOGRAPH +0xDAAA 0x8BB5 #CJK UNIFIED IDEOGRAPH +0xDAAB 0x8BB7 #CJK UNIFIED IDEOGRAPH +0xDAAC 0x8BC2 #CJK UNIFIED IDEOGRAPH +0xDAAD 0x8BC3 #CJK UNIFIED IDEOGRAPH +0xDAAE 0x8BCB #CJK UNIFIED IDEOGRAPH +0xDAAF 0x8BCF #CJK UNIFIED IDEOGRAPH +0xDAB0 0x8BCE #CJK UNIFIED IDEOGRAPH +0xDAB1 0x8BD2 #CJK UNIFIED IDEOGRAPH +0xDAB2 0x8BD3 #CJK UNIFIED IDEOGRAPH +0xDAB3 0x8BD4 #CJK UNIFIED IDEOGRAPH +0xDAB4 0x8BD6 #CJK UNIFIED IDEOGRAPH +0xDAB5 0x8BD8 #CJK UNIFIED IDEOGRAPH +0xDAB6 0x8BD9 #CJK UNIFIED IDEOGRAPH +0xDAB7 0x8BDC #CJK UNIFIED IDEOGRAPH +0xDAB8 0x8BDF #CJK UNIFIED IDEOGRAPH +0xDAB9 0x8BE0 #CJK UNIFIED IDEOGRAPH +0xDABA 0x8BE4 #CJK UNIFIED IDEOGRAPH +0xDABB 0x8BE8 #CJK UNIFIED IDEOGRAPH +0xDABC 0x8BE9 #CJK UNIFIED IDEOGRAPH +0xDABD 0x8BEE #CJK UNIFIED IDEOGRAPH +0xDABE 0x8BF0 #CJK UNIFIED IDEOGRAPH +0xDABF 0x8BF3 #CJK UNIFIED IDEOGRAPH +0xDAC0 0x8BF6 #CJK UNIFIED IDEOGRAPH +0xDAC1 0x8BF9 #CJK UNIFIED IDEOGRAPH +0xDAC2 0x8BFC #CJK UNIFIED IDEOGRAPH +0xDAC3 0x8BFF #CJK UNIFIED IDEOGRAPH +0xDAC4 0x8C00 #CJK UNIFIED IDEOGRAPH +0xDAC5 0x8C02 #CJK UNIFIED IDEOGRAPH +0xDAC6 0x8C04 #CJK UNIFIED IDEOGRAPH +0xDAC7 0x8C07 #CJK UNIFIED IDEOGRAPH +0xDAC8 0x8C0C #CJK UNIFIED IDEOGRAPH +0xDAC9 0x8C0F #CJK UNIFIED IDEOGRAPH +0xDACA 0x8C11 #CJK UNIFIED IDEOGRAPH +0xDACB 0x8C12 #CJK UNIFIED IDEOGRAPH +0xDACC 0x8C14 #CJK UNIFIED IDEOGRAPH +0xDACD 0x8C15 #CJK UNIFIED IDEOGRAPH +0xDACE 0x8C16 #CJK UNIFIED IDEOGRAPH +0xDACF 0x8C19 #CJK UNIFIED IDEOGRAPH +0xDAD0 0x8C1B #CJK UNIFIED IDEOGRAPH +0xDAD1 0x8C18 #CJK UNIFIED IDEOGRAPH +0xDAD2 0x8C1D #CJK UNIFIED IDEOGRAPH +0xDAD3 0x8C1F #CJK UNIFIED IDEOGRAPH +0xDAD4 0x8C20 #CJK UNIFIED IDEOGRAPH +0xDAD5 0x8C21 #CJK UNIFIED IDEOGRAPH +0xDAD6 0x8C25 #CJK UNIFIED IDEOGRAPH +0xDAD7 0x8C27 #CJK UNIFIED IDEOGRAPH +0xDAD8 0x8C2A #CJK UNIFIED IDEOGRAPH +0xDAD9 0x8C2B #CJK UNIFIED IDEOGRAPH +0xDADA 0x8C2E #CJK UNIFIED IDEOGRAPH +0xDADB 0x8C2F #CJK UNIFIED IDEOGRAPH +0xDADC 0x8C32 #CJK UNIFIED IDEOGRAPH +0xDADD 0x8C33 #CJK UNIFIED IDEOGRAPH +0xDADE 0x8C35 #CJK UNIFIED IDEOGRAPH +0xDADF 0x8C36 #CJK UNIFIED IDEOGRAPH +0xDAE0 0x5369 #CJK UNIFIED IDEOGRAPH +0xDAE1 0x537A #CJK UNIFIED IDEOGRAPH +0xDAE2 0x961D #CJK UNIFIED IDEOGRAPH +0xDAE3 0x9622 #CJK UNIFIED IDEOGRAPH +0xDAE4 0x9621 #CJK UNIFIED IDEOGRAPH +0xDAE5 0x9631 #CJK UNIFIED IDEOGRAPH +0xDAE6 0x962A #CJK UNIFIED IDEOGRAPH +0xDAE7 0x963D #CJK UNIFIED IDEOGRAPH +0xDAE8 0x963C #CJK UNIFIED IDEOGRAPH +0xDAE9 0x9642 #CJK UNIFIED IDEOGRAPH +0xDAEA 0x9649 #CJK UNIFIED IDEOGRAPH +0xDAEB 0x9654 #CJK UNIFIED IDEOGRAPH +0xDAEC 0x965F #CJK UNIFIED IDEOGRAPH +0xDAED 0x9667 #CJK UNIFIED IDEOGRAPH +0xDAEE 0x966C #CJK UNIFIED IDEOGRAPH +0xDAEF 0x9672 #CJK UNIFIED IDEOGRAPH +0xDAF0 0x9674 #CJK UNIFIED IDEOGRAPH +0xDAF1 0x9688 #CJK UNIFIED IDEOGRAPH +0xDAF2 0x968D #CJK UNIFIED IDEOGRAPH +0xDAF3 0x9697 #CJK UNIFIED IDEOGRAPH +0xDAF4 0x96B0 #CJK UNIFIED IDEOGRAPH +0xDAF5 0x9097 #CJK UNIFIED IDEOGRAPH +0xDAF6 0x909B #CJK UNIFIED IDEOGRAPH +0xDAF7 0x909D #CJK UNIFIED IDEOGRAPH +0xDAF8 0x9099 #CJK UNIFIED IDEOGRAPH +0xDAF9 0x90AC #CJK UNIFIED IDEOGRAPH +0xDAFA 0x90A1 #CJK UNIFIED IDEOGRAPH +0xDAFB 0x90B4 #CJK UNIFIED IDEOGRAPH +0xDAFC 0x90B3 #CJK UNIFIED IDEOGRAPH +0xDAFD 0x90B6 #CJK UNIFIED IDEOGRAPH +0xDAFE 0x90BA #CJK UNIFIED IDEOGRAPH +0xDB40 0x8DD5 #CJK UNIFIED IDEOGRAPH +0xDB41 0x8DD8 #CJK UNIFIED IDEOGRAPH +0xDB42 0x8DD9 #CJK UNIFIED IDEOGRAPH +0xDB43 0x8DDC #CJK UNIFIED IDEOGRAPH +0xDB44 0x8DE0 #CJK UNIFIED IDEOGRAPH +0xDB45 0x8DE1 #CJK UNIFIED IDEOGRAPH +0xDB46 0x8DE2 #CJK UNIFIED IDEOGRAPH +0xDB47 0x8DE5 #CJK UNIFIED IDEOGRAPH +0xDB48 0x8DE6 #CJK UNIFIED IDEOGRAPH +0xDB49 0x8DE7 #CJK UNIFIED IDEOGRAPH +0xDB4A 0x8DE9 #CJK UNIFIED IDEOGRAPH +0xDB4B 0x8DED #CJK UNIFIED IDEOGRAPH +0xDB4C 0x8DEE #CJK UNIFIED IDEOGRAPH +0xDB4D 0x8DF0 #CJK UNIFIED IDEOGRAPH +0xDB4E 0x8DF1 #CJK UNIFIED IDEOGRAPH +0xDB4F 0x8DF2 #CJK UNIFIED IDEOGRAPH +0xDB50 0x8DF4 #CJK UNIFIED IDEOGRAPH +0xDB51 0x8DF6 #CJK UNIFIED IDEOGRAPH +0xDB52 0x8DFC #CJK UNIFIED IDEOGRAPH +0xDB53 0x8DFE #CJK UNIFIED IDEOGRAPH +0xDB54 0x8DFF #CJK UNIFIED IDEOGRAPH +0xDB55 0x8E00 #CJK UNIFIED IDEOGRAPH +0xDB56 0x8E01 #CJK UNIFIED IDEOGRAPH +0xDB57 0x8E02 #CJK UNIFIED IDEOGRAPH +0xDB58 0x8E03 #CJK UNIFIED IDEOGRAPH +0xDB59 0x8E04 #CJK UNIFIED IDEOGRAPH +0xDB5A 0x8E06 #CJK UNIFIED IDEOGRAPH +0xDB5B 0x8E07 #CJK UNIFIED IDEOGRAPH +0xDB5C 0x8E08 #CJK UNIFIED IDEOGRAPH +0xDB5D 0x8E0B #CJK UNIFIED IDEOGRAPH +0xDB5E 0x8E0D #CJK UNIFIED IDEOGRAPH +0xDB5F 0x8E0E #CJK UNIFIED IDEOGRAPH +0xDB60 0x8E10 #CJK UNIFIED IDEOGRAPH +0xDB61 0x8E11 #CJK UNIFIED IDEOGRAPH +0xDB62 0x8E12 #CJK UNIFIED IDEOGRAPH +0xDB63 0x8E13 #CJK UNIFIED IDEOGRAPH +0xDB64 0x8E15 #CJK UNIFIED IDEOGRAPH +0xDB65 0x8E16 #CJK UNIFIED IDEOGRAPH +0xDB66 0x8E17 #CJK UNIFIED IDEOGRAPH +0xDB67 0x8E18 #CJK UNIFIED IDEOGRAPH +0xDB68 0x8E19 #CJK UNIFIED IDEOGRAPH +0xDB69 0x8E1A #CJK UNIFIED IDEOGRAPH +0xDB6A 0x8E1B #CJK UNIFIED IDEOGRAPH +0xDB6B 0x8E1C #CJK UNIFIED IDEOGRAPH +0xDB6C 0x8E20 #CJK UNIFIED IDEOGRAPH +0xDB6D 0x8E21 #CJK UNIFIED IDEOGRAPH +0xDB6E 0x8E24 #CJK UNIFIED IDEOGRAPH +0xDB6F 0x8E25 #CJK UNIFIED IDEOGRAPH +0xDB70 0x8E26 #CJK UNIFIED IDEOGRAPH +0xDB71 0x8E27 #CJK UNIFIED IDEOGRAPH +0xDB72 0x8E28 #CJK UNIFIED IDEOGRAPH +0xDB73 0x8E2B #CJK UNIFIED IDEOGRAPH +0xDB74 0x8E2D #CJK UNIFIED IDEOGRAPH +0xDB75 0x8E30 #CJK UNIFIED IDEOGRAPH +0xDB76 0x8E32 #CJK UNIFIED IDEOGRAPH +0xDB77 0x8E33 #CJK UNIFIED IDEOGRAPH +0xDB78 0x8E34 #CJK UNIFIED IDEOGRAPH +0xDB79 0x8E36 #CJK UNIFIED IDEOGRAPH +0xDB7A 0x8E37 #CJK UNIFIED IDEOGRAPH +0xDB7B 0x8E38 #CJK UNIFIED IDEOGRAPH +0xDB7C 0x8E3B #CJK UNIFIED IDEOGRAPH +0xDB7D 0x8E3C #CJK UNIFIED IDEOGRAPH +0xDB7E 0x8E3E #CJK UNIFIED IDEOGRAPH +0xDB80 0x8E3F #CJK UNIFIED IDEOGRAPH +0xDB81 0x8E43 #CJK UNIFIED IDEOGRAPH +0xDB82 0x8E45 #CJK UNIFIED IDEOGRAPH +0xDB83 0x8E46 #CJK UNIFIED IDEOGRAPH +0xDB84 0x8E4C #CJK UNIFIED IDEOGRAPH +0xDB85 0x8E4D #CJK UNIFIED IDEOGRAPH +0xDB86 0x8E4E #CJK UNIFIED IDEOGRAPH +0xDB87 0x8E4F #CJK UNIFIED IDEOGRAPH +0xDB88 0x8E50 #CJK UNIFIED IDEOGRAPH +0xDB89 0x8E53 #CJK UNIFIED IDEOGRAPH +0xDB8A 0x8E54 #CJK UNIFIED IDEOGRAPH +0xDB8B 0x8E55 #CJK UNIFIED IDEOGRAPH +0xDB8C 0x8E56 #CJK UNIFIED IDEOGRAPH +0xDB8D 0x8E57 #CJK UNIFIED IDEOGRAPH +0xDB8E 0x8E58 #CJK UNIFIED IDEOGRAPH +0xDB8F 0x8E5A #CJK UNIFIED IDEOGRAPH +0xDB90 0x8E5B #CJK UNIFIED IDEOGRAPH +0xDB91 0x8E5C #CJK UNIFIED IDEOGRAPH +0xDB92 0x8E5D #CJK UNIFIED IDEOGRAPH +0xDB93 0x8E5E #CJK UNIFIED IDEOGRAPH +0xDB94 0x8E5F #CJK UNIFIED IDEOGRAPH +0xDB95 0x8E60 #CJK UNIFIED IDEOGRAPH +0xDB96 0x8E61 #CJK UNIFIED IDEOGRAPH +0xDB97 0x8E62 #CJK UNIFIED IDEOGRAPH +0xDB98 0x8E63 #CJK UNIFIED IDEOGRAPH +0xDB99 0x8E64 #CJK UNIFIED IDEOGRAPH +0xDB9A 0x8E65 #CJK UNIFIED IDEOGRAPH +0xDB9B 0x8E67 #CJK UNIFIED IDEOGRAPH +0xDB9C 0x8E68 #CJK UNIFIED IDEOGRAPH +0xDB9D 0x8E6A #CJK UNIFIED IDEOGRAPH +0xDB9E 0x8E6B #CJK UNIFIED IDEOGRAPH +0xDB9F 0x8E6E #CJK UNIFIED IDEOGRAPH +0xDBA0 0x8E71 #CJK UNIFIED IDEOGRAPH +0xDBA1 0x90B8 #CJK UNIFIED IDEOGRAPH +0xDBA2 0x90B0 #CJK UNIFIED IDEOGRAPH +0xDBA3 0x90CF #CJK UNIFIED IDEOGRAPH +0xDBA4 0x90C5 #CJK UNIFIED IDEOGRAPH +0xDBA5 0x90BE #CJK UNIFIED IDEOGRAPH +0xDBA6 0x90D0 #CJK UNIFIED IDEOGRAPH +0xDBA7 0x90C4 #CJK UNIFIED IDEOGRAPH +0xDBA8 0x90C7 #CJK UNIFIED IDEOGRAPH +0xDBA9 0x90D3 #CJK UNIFIED IDEOGRAPH +0xDBAA 0x90E6 #CJK UNIFIED IDEOGRAPH +0xDBAB 0x90E2 #CJK UNIFIED IDEOGRAPH +0xDBAC 0x90DC #CJK UNIFIED IDEOGRAPH +0xDBAD 0x90D7 #CJK UNIFIED IDEOGRAPH +0xDBAE 0x90DB #CJK UNIFIED IDEOGRAPH +0xDBAF 0x90EB #CJK UNIFIED IDEOGRAPH +0xDBB0 0x90EF #CJK UNIFIED IDEOGRAPH +0xDBB1 0x90FE #CJK UNIFIED IDEOGRAPH +0xDBB2 0x9104 #CJK UNIFIED IDEOGRAPH +0xDBB3 0x9122 #CJK UNIFIED IDEOGRAPH +0xDBB4 0x911E #CJK UNIFIED IDEOGRAPH +0xDBB5 0x9123 #CJK UNIFIED IDEOGRAPH +0xDBB6 0x9131 #CJK UNIFIED IDEOGRAPH +0xDBB7 0x912F #CJK UNIFIED IDEOGRAPH +0xDBB8 0x9139 #CJK UNIFIED IDEOGRAPH +0xDBB9 0x9143 #CJK UNIFIED IDEOGRAPH +0xDBBA 0x9146 #CJK UNIFIED IDEOGRAPH +0xDBBB 0x520D #CJK UNIFIED IDEOGRAPH +0xDBBC 0x5942 #CJK UNIFIED IDEOGRAPH +0xDBBD 0x52A2 #CJK UNIFIED IDEOGRAPH +0xDBBE 0x52AC #CJK UNIFIED IDEOGRAPH +0xDBBF 0x52AD #CJK UNIFIED IDEOGRAPH +0xDBC0 0x52BE #CJK UNIFIED IDEOGRAPH +0xDBC1 0x54FF #CJK UNIFIED IDEOGRAPH +0xDBC2 0x52D0 #CJK UNIFIED IDEOGRAPH +0xDBC3 0x52D6 #CJK UNIFIED IDEOGRAPH +0xDBC4 0x52F0 #CJK UNIFIED IDEOGRAPH +0xDBC5 0x53DF #CJK UNIFIED IDEOGRAPH +0xDBC6 0x71EE #CJK UNIFIED IDEOGRAPH +0xDBC7 0x77CD #CJK UNIFIED IDEOGRAPH +0xDBC8 0x5EF4 #CJK UNIFIED IDEOGRAPH +0xDBC9 0x51F5 #CJK UNIFIED IDEOGRAPH +0xDBCA 0x51FC #CJK UNIFIED IDEOGRAPH +0xDBCB 0x9B2F #CJK UNIFIED IDEOGRAPH +0xDBCC 0x53B6 #CJK UNIFIED IDEOGRAPH +0xDBCD 0x5F01 #CJK UNIFIED IDEOGRAPH +0xDBCE 0x755A #CJK UNIFIED IDEOGRAPH +0xDBCF 0x5DEF #CJK UNIFIED IDEOGRAPH +0xDBD0 0x574C #CJK UNIFIED IDEOGRAPH +0xDBD1 0x57A9 #CJK UNIFIED IDEOGRAPH +0xDBD2 0x57A1 #CJK UNIFIED IDEOGRAPH +0xDBD3 0x587E #CJK UNIFIED IDEOGRAPH +0xDBD4 0x58BC #CJK UNIFIED IDEOGRAPH +0xDBD5 0x58C5 #CJK UNIFIED IDEOGRAPH +0xDBD6 0x58D1 #CJK UNIFIED IDEOGRAPH +0xDBD7 0x5729 #CJK UNIFIED IDEOGRAPH +0xDBD8 0x572C #CJK UNIFIED IDEOGRAPH +0xDBD9 0x572A #CJK UNIFIED IDEOGRAPH +0xDBDA 0x5733 #CJK UNIFIED IDEOGRAPH +0xDBDB 0x5739 #CJK UNIFIED IDEOGRAPH +0xDBDC 0x572E #CJK UNIFIED IDEOGRAPH +0xDBDD 0x572F #CJK UNIFIED IDEOGRAPH +0xDBDE 0x575C #CJK UNIFIED IDEOGRAPH +0xDBDF 0x573B #CJK UNIFIED IDEOGRAPH +0xDBE0 0x5742 #CJK UNIFIED IDEOGRAPH +0xDBE1 0x5769 #CJK UNIFIED IDEOGRAPH +0xDBE2 0x5785 #CJK UNIFIED IDEOGRAPH +0xDBE3 0x576B #CJK UNIFIED IDEOGRAPH +0xDBE4 0x5786 #CJK UNIFIED IDEOGRAPH +0xDBE5 0x577C #CJK UNIFIED IDEOGRAPH +0xDBE6 0x577B #CJK UNIFIED IDEOGRAPH +0xDBE7 0x5768 #CJK UNIFIED IDEOGRAPH +0xDBE8 0x576D #CJK UNIFIED IDEOGRAPH +0xDBE9 0x5776 #CJK UNIFIED IDEOGRAPH +0xDBEA 0x5773 #CJK UNIFIED IDEOGRAPH +0xDBEB 0x57AD #CJK UNIFIED IDEOGRAPH +0xDBEC 0x57A4 #CJK UNIFIED IDEOGRAPH +0xDBED 0x578C #CJK UNIFIED IDEOGRAPH +0xDBEE 0x57B2 #CJK UNIFIED IDEOGRAPH +0xDBEF 0x57CF #CJK UNIFIED IDEOGRAPH +0xDBF0 0x57A7 #CJK UNIFIED IDEOGRAPH +0xDBF1 0x57B4 #CJK UNIFIED IDEOGRAPH +0xDBF2 0x5793 #CJK UNIFIED IDEOGRAPH +0xDBF3 0x57A0 #CJK UNIFIED IDEOGRAPH +0xDBF4 0x57D5 #CJK UNIFIED IDEOGRAPH +0xDBF5 0x57D8 #CJK UNIFIED IDEOGRAPH +0xDBF6 0x57DA #CJK UNIFIED IDEOGRAPH +0xDBF7 0x57D9 #CJK UNIFIED IDEOGRAPH +0xDBF8 0x57D2 #CJK UNIFIED IDEOGRAPH +0xDBF9 0x57B8 #CJK UNIFIED IDEOGRAPH +0xDBFA 0x57F4 #CJK UNIFIED IDEOGRAPH +0xDBFB 0x57EF #CJK UNIFIED IDEOGRAPH +0xDBFC 0x57F8 #CJK UNIFIED IDEOGRAPH +0xDBFD 0x57E4 #CJK UNIFIED IDEOGRAPH +0xDBFE 0x57DD #CJK UNIFIED IDEOGRAPH +0xDC40 0x8E73 #CJK UNIFIED IDEOGRAPH +0xDC41 0x8E75 #CJK UNIFIED IDEOGRAPH +0xDC42 0x8E77 #CJK UNIFIED IDEOGRAPH +0xDC43 0x8E78 #CJK UNIFIED IDEOGRAPH +0xDC44 0x8E79 #CJK UNIFIED IDEOGRAPH +0xDC45 0x8E7A #CJK UNIFIED IDEOGRAPH +0xDC46 0x8E7B #CJK UNIFIED IDEOGRAPH +0xDC47 0x8E7D #CJK UNIFIED IDEOGRAPH +0xDC48 0x8E7E #CJK UNIFIED IDEOGRAPH +0xDC49 0x8E80 #CJK UNIFIED IDEOGRAPH +0xDC4A 0x8E82 #CJK UNIFIED IDEOGRAPH +0xDC4B 0x8E83 #CJK UNIFIED IDEOGRAPH +0xDC4C 0x8E84 #CJK UNIFIED IDEOGRAPH +0xDC4D 0x8E86 #CJK UNIFIED IDEOGRAPH +0xDC4E 0x8E88 #CJK UNIFIED IDEOGRAPH +0xDC4F 0x8E89 #CJK UNIFIED IDEOGRAPH +0xDC50 0x8E8A #CJK UNIFIED IDEOGRAPH +0xDC51 0x8E8B #CJK UNIFIED IDEOGRAPH +0xDC52 0x8E8C #CJK UNIFIED IDEOGRAPH +0xDC53 0x8E8D #CJK UNIFIED IDEOGRAPH +0xDC54 0x8E8E #CJK UNIFIED IDEOGRAPH +0xDC55 0x8E91 #CJK UNIFIED IDEOGRAPH +0xDC56 0x8E92 #CJK UNIFIED IDEOGRAPH +0xDC57 0x8E93 #CJK UNIFIED IDEOGRAPH +0xDC58 0x8E95 #CJK UNIFIED IDEOGRAPH +0xDC59 0x8E96 #CJK UNIFIED IDEOGRAPH +0xDC5A 0x8E97 #CJK UNIFIED IDEOGRAPH +0xDC5B 0x8E98 #CJK UNIFIED IDEOGRAPH +0xDC5C 0x8E99 #CJK UNIFIED IDEOGRAPH +0xDC5D 0x8E9A #CJK UNIFIED IDEOGRAPH +0xDC5E 0x8E9B #CJK UNIFIED IDEOGRAPH +0xDC5F 0x8E9D #CJK UNIFIED IDEOGRAPH +0xDC60 0x8E9F #CJK UNIFIED IDEOGRAPH +0xDC61 0x8EA0 #CJK UNIFIED IDEOGRAPH +0xDC62 0x8EA1 #CJK UNIFIED IDEOGRAPH +0xDC63 0x8EA2 #CJK UNIFIED IDEOGRAPH +0xDC64 0x8EA3 #CJK UNIFIED IDEOGRAPH +0xDC65 0x8EA4 #CJK UNIFIED IDEOGRAPH +0xDC66 0x8EA5 #CJK UNIFIED IDEOGRAPH +0xDC67 0x8EA6 #CJK UNIFIED IDEOGRAPH +0xDC68 0x8EA7 #CJK UNIFIED IDEOGRAPH +0xDC69 0x8EA8 #CJK UNIFIED IDEOGRAPH +0xDC6A 0x8EA9 #CJK UNIFIED IDEOGRAPH +0xDC6B 0x8EAA #CJK UNIFIED IDEOGRAPH +0xDC6C 0x8EAD #CJK UNIFIED IDEOGRAPH +0xDC6D 0x8EAE #CJK UNIFIED IDEOGRAPH +0xDC6E 0x8EB0 #CJK UNIFIED IDEOGRAPH +0xDC6F 0x8EB1 #CJK UNIFIED IDEOGRAPH +0xDC70 0x8EB3 #CJK UNIFIED IDEOGRAPH +0xDC71 0x8EB4 #CJK UNIFIED IDEOGRAPH +0xDC72 0x8EB5 #CJK UNIFIED IDEOGRAPH +0xDC73 0x8EB6 #CJK UNIFIED IDEOGRAPH +0xDC74 0x8EB7 #CJK UNIFIED IDEOGRAPH +0xDC75 0x8EB8 #CJK UNIFIED IDEOGRAPH +0xDC76 0x8EB9 #CJK UNIFIED IDEOGRAPH +0xDC77 0x8EBB #CJK UNIFIED IDEOGRAPH +0xDC78 0x8EBC #CJK UNIFIED IDEOGRAPH +0xDC79 0x8EBD #CJK UNIFIED IDEOGRAPH +0xDC7A 0x8EBE #CJK UNIFIED IDEOGRAPH +0xDC7B 0x8EBF #CJK UNIFIED IDEOGRAPH +0xDC7C 0x8EC0 #CJK UNIFIED IDEOGRAPH +0xDC7D 0x8EC1 #CJK UNIFIED IDEOGRAPH +0xDC7E 0x8EC2 #CJK UNIFIED IDEOGRAPH +0xDC80 0x8EC3 #CJK UNIFIED IDEOGRAPH +0xDC81 0x8EC4 #CJK UNIFIED IDEOGRAPH +0xDC82 0x8EC5 #CJK UNIFIED IDEOGRAPH +0xDC83 0x8EC6 #CJK UNIFIED IDEOGRAPH +0xDC84 0x8EC7 #CJK UNIFIED IDEOGRAPH +0xDC85 0x8EC8 #CJK UNIFIED IDEOGRAPH +0xDC86 0x8EC9 #CJK UNIFIED IDEOGRAPH +0xDC87 0x8ECA #CJK UNIFIED IDEOGRAPH +0xDC88 0x8ECB #CJK UNIFIED IDEOGRAPH +0xDC89 0x8ECC #CJK UNIFIED IDEOGRAPH +0xDC8A 0x8ECD #CJK UNIFIED IDEOGRAPH +0xDC8B 0x8ECF #CJK UNIFIED IDEOGRAPH +0xDC8C 0x8ED0 #CJK UNIFIED IDEOGRAPH +0xDC8D 0x8ED1 #CJK UNIFIED IDEOGRAPH +0xDC8E 0x8ED2 #CJK UNIFIED IDEOGRAPH +0xDC8F 0x8ED3 #CJK UNIFIED IDEOGRAPH +0xDC90 0x8ED4 #CJK UNIFIED IDEOGRAPH +0xDC91 0x8ED5 #CJK UNIFIED IDEOGRAPH +0xDC92 0x8ED6 #CJK UNIFIED IDEOGRAPH +0xDC93 0x8ED7 #CJK UNIFIED IDEOGRAPH +0xDC94 0x8ED8 #CJK UNIFIED IDEOGRAPH +0xDC95 0x8ED9 #CJK UNIFIED IDEOGRAPH +0xDC96 0x8EDA #CJK UNIFIED IDEOGRAPH +0xDC97 0x8EDB #CJK UNIFIED IDEOGRAPH +0xDC98 0x8EDC #CJK UNIFIED IDEOGRAPH +0xDC99 0x8EDD #CJK UNIFIED IDEOGRAPH +0xDC9A 0x8EDE #CJK UNIFIED IDEOGRAPH +0xDC9B 0x8EDF #CJK UNIFIED IDEOGRAPH +0xDC9C 0x8EE0 #CJK UNIFIED IDEOGRAPH +0xDC9D 0x8EE1 #CJK UNIFIED IDEOGRAPH +0xDC9E 0x8EE2 #CJK UNIFIED IDEOGRAPH +0xDC9F 0x8EE3 #CJK UNIFIED IDEOGRAPH +0xDCA0 0x8EE4 #CJK UNIFIED IDEOGRAPH +0xDCA1 0x580B #CJK UNIFIED IDEOGRAPH +0xDCA2 0x580D #CJK UNIFIED IDEOGRAPH +0xDCA3 0x57FD #CJK UNIFIED IDEOGRAPH +0xDCA4 0x57ED #CJK UNIFIED IDEOGRAPH +0xDCA5 0x5800 #CJK UNIFIED IDEOGRAPH +0xDCA6 0x581E #CJK UNIFIED IDEOGRAPH +0xDCA7 0x5819 #CJK UNIFIED IDEOGRAPH +0xDCA8 0x5844 #CJK UNIFIED IDEOGRAPH +0xDCA9 0x5820 #CJK UNIFIED IDEOGRAPH +0xDCAA 0x5865 #CJK UNIFIED IDEOGRAPH +0xDCAB 0x586C #CJK UNIFIED IDEOGRAPH +0xDCAC 0x5881 #CJK UNIFIED IDEOGRAPH +0xDCAD 0x5889 #CJK UNIFIED IDEOGRAPH +0xDCAE 0x589A #CJK UNIFIED IDEOGRAPH +0xDCAF 0x5880 #CJK UNIFIED IDEOGRAPH +0xDCB0 0x99A8 #CJK UNIFIED IDEOGRAPH +0xDCB1 0x9F19 #CJK UNIFIED IDEOGRAPH +0xDCB2 0x61FF #CJK UNIFIED IDEOGRAPH +0xDCB3 0x8279 #CJK UNIFIED IDEOGRAPH +0xDCB4 0x827D #CJK UNIFIED IDEOGRAPH +0xDCB5 0x827F #CJK UNIFIED IDEOGRAPH +0xDCB6 0x828F #CJK UNIFIED IDEOGRAPH +0xDCB7 0x828A #CJK UNIFIED IDEOGRAPH +0xDCB8 0x82A8 #CJK UNIFIED IDEOGRAPH +0xDCB9 0x8284 #CJK UNIFIED IDEOGRAPH +0xDCBA 0x828E #CJK UNIFIED IDEOGRAPH +0xDCBB 0x8291 #CJK UNIFIED IDEOGRAPH +0xDCBC 0x8297 #CJK UNIFIED IDEOGRAPH +0xDCBD 0x8299 #CJK UNIFIED IDEOGRAPH +0xDCBE 0x82AB #CJK UNIFIED IDEOGRAPH +0xDCBF 0x82B8 #CJK UNIFIED IDEOGRAPH +0xDCC0 0x82BE #CJK UNIFIED IDEOGRAPH +0xDCC1 0x82B0 #CJK UNIFIED IDEOGRAPH +0xDCC2 0x82C8 #CJK UNIFIED IDEOGRAPH +0xDCC3 0x82CA #CJK UNIFIED IDEOGRAPH +0xDCC4 0x82E3 #CJK UNIFIED IDEOGRAPH +0xDCC5 0x8298 #CJK UNIFIED IDEOGRAPH +0xDCC6 0x82B7 #CJK UNIFIED IDEOGRAPH +0xDCC7 0x82AE #CJK UNIFIED IDEOGRAPH +0xDCC8 0x82CB #CJK UNIFIED IDEOGRAPH +0xDCC9 0x82CC #CJK UNIFIED IDEOGRAPH +0xDCCA 0x82C1 #CJK UNIFIED IDEOGRAPH +0xDCCB 0x82A9 #CJK UNIFIED IDEOGRAPH +0xDCCC 0x82B4 #CJK UNIFIED IDEOGRAPH +0xDCCD 0x82A1 #CJK UNIFIED IDEOGRAPH +0xDCCE 0x82AA #CJK UNIFIED IDEOGRAPH +0xDCCF 0x829F #CJK UNIFIED IDEOGRAPH +0xDCD0 0x82C4 #CJK UNIFIED IDEOGRAPH +0xDCD1 0x82CE #CJK UNIFIED IDEOGRAPH +0xDCD2 0x82A4 #CJK UNIFIED IDEOGRAPH +0xDCD3 0x82E1 #CJK UNIFIED IDEOGRAPH +0xDCD4 0x8309 #CJK UNIFIED IDEOGRAPH +0xDCD5 0x82F7 #CJK UNIFIED IDEOGRAPH +0xDCD6 0x82E4 #CJK UNIFIED IDEOGRAPH +0xDCD7 0x830F #CJK UNIFIED IDEOGRAPH +0xDCD8 0x8307 #CJK UNIFIED IDEOGRAPH +0xDCD9 0x82DC #CJK UNIFIED IDEOGRAPH +0xDCDA 0x82F4 #CJK UNIFIED IDEOGRAPH +0xDCDB 0x82D2 #CJK UNIFIED IDEOGRAPH +0xDCDC 0x82D8 #CJK UNIFIED IDEOGRAPH +0xDCDD 0x830C #CJK UNIFIED IDEOGRAPH +0xDCDE 0x82FB #CJK UNIFIED IDEOGRAPH +0xDCDF 0x82D3 #CJK UNIFIED IDEOGRAPH +0xDCE0 0x8311 #CJK UNIFIED IDEOGRAPH +0xDCE1 0x831A #CJK UNIFIED IDEOGRAPH +0xDCE2 0x8306 #CJK UNIFIED IDEOGRAPH +0xDCE3 0x8314 #CJK UNIFIED IDEOGRAPH +0xDCE4 0x8315 #CJK UNIFIED IDEOGRAPH +0xDCE5 0x82E0 #CJK UNIFIED IDEOGRAPH +0xDCE6 0x82D5 #CJK UNIFIED IDEOGRAPH +0xDCE7 0x831C #CJK UNIFIED IDEOGRAPH +0xDCE8 0x8351 #CJK UNIFIED IDEOGRAPH +0xDCE9 0x835B #CJK UNIFIED IDEOGRAPH +0xDCEA 0x835C #CJK UNIFIED IDEOGRAPH +0xDCEB 0x8308 #CJK UNIFIED IDEOGRAPH +0xDCEC 0x8392 #CJK UNIFIED IDEOGRAPH +0xDCED 0x833C #CJK UNIFIED IDEOGRAPH +0xDCEE 0x8334 #CJK UNIFIED IDEOGRAPH +0xDCEF 0x8331 #CJK UNIFIED IDEOGRAPH +0xDCF0 0x839B #CJK UNIFIED IDEOGRAPH +0xDCF1 0x835E #CJK UNIFIED IDEOGRAPH +0xDCF2 0x832F #CJK UNIFIED IDEOGRAPH +0xDCF3 0x834F #CJK UNIFIED IDEOGRAPH +0xDCF4 0x8347 #CJK UNIFIED IDEOGRAPH +0xDCF5 0x8343 #CJK UNIFIED IDEOGRAPH +0xDCF6 0x835F #CJK UNIFIED IDEOGRAPH +0xDCF7 0x8340 #CJK UNIFIED IDEOGRAPH +0xDCF8 0x8317 #CJK UNIFIED IDEOGRAPH +0xDCF9 0x8360 #CJK UNIFIED IDEOGRAPH +0xDCFA 0x832D #CJK UNIFIED IDEOGRAPH +0xDCFB 0x833A #CJK UNIFIED IDEOGRAPH +0xDCFC 0x8333 #CJK UNIFIED IDEOGRAPH +0xDCFD 0x8366 #CJK UNIFIED IDEOGRAPH +0xDCFE 0x8365 #CJK UNIFIED IDEOGRAPH +0xDD40 0x8EE5 #CJK UNIFIED IDEOGRAPH +0xDD41 0x8EE6 #CJK UNIFIED IDEOGRAPH +0xDD42 0x8EE7 #CJK UNIFIED IDEOGRAPH +0xDD43 0x8EE8 #CJK UNIFIED IDEOGRAPH +0xDD44 0x8EE9 #CJK UNIFIED IDEOGRAPH +0xDD45 0x8EEA #CJK UNIFIED IDEOGRAPH +0xDD46 0x8EEB #CJK UNIFIED IDEOGRAPH +0xDD47 0x8EEC #CJK UNIFIED IDEOGRAPH +0xDD48 0x8EED #CJK UNIFIED IDEOGRAPH +0xDD49 0x8EEE #CJK UNIFIED IDEOGRAPH +0xDD4A 0x8EEF #CJK UNIFIED IDEOGRAPH +0xDD4B 0x8EF0 #CJK UNIFIED IDEOGRAPH +0xDD4C 0x8EF1 #CJK UNIFIED IDEOGRAPH +0xDD4D 0x8EF2 #CJK UNIFIED IDEOGRAPH +0xDD4E 0x8EF3 #CJK UNIFIED IDEOGRAPH +0xDD4F 0x8EF4 #CJK UNIFIED IDEOGRAPH +0xDD50 0x8EF5 #CJK UNIFIED IDEOGRAPH +0xDD51 0x8EF6 #CJK UNIFIED IDEOGRAPH +0xDD52 0x8EF7 #CJK UNIFIED IDEOGRAPH +0xDD53 0x8EF8 #CJK UNIFIED IDEOGRAPH +0xDD54 0x8EF9 #CJK UNIFIED IDEOGRAPH +0xDD55 0x8EFA #CJK UNIFIED IDEOGRAPH +0xDD56 0x8EFB #CJK UNIFIED IDEOGRAPH +0xDD57 0x8EFC #CJK UNIFIED IDEOGRAPH +0xDD58 0x8EFD #CJK UNIFIED IDEOGRAPH +0xDD59 0x8EFE #CJK UNIFIED IDEOGRAPH +0xDD5A 0x8EFF #CJK UNIFIED IDEOGRAPH +0xDD5B 0x8F00 #CJK UNIFIED IDEOGRAPH +0xDD5C 0x8F01 #CJK UNIFIED IDEOGRAPH +0xDD5D 0x8F02 #CJK UNIFIED IDEOGRAPH +0xDD5E 0x8F03 #CJK UNIFIED IDEOGRAPH +0xDD5F 0x8F04 #CJK UNIFIED IDEOGRAPH +0xDD60 0x8F05 #CJK UNIFIED IDEOGRAPH +0xDD61 0x8F06 #CJK UNIFIED IDEOGRAPH +0xDD62 0x8F07 #CJK UNIFIED IDEOGRAPH +0xDD63 0x8F08 #CJK UNIFIED IDEOGRAPH +0xDD64 0x8F09 #CJK UNIFIED IDEOGRAPH +0xDD65 0x8F0A #CJK UNIFIED IDEOGRAPH +0xDD66 0x8F0B #CJK UNIFIED IDEOGRAPH +0xDD67 0x8F0C #CJK UNIFIED IDEOGRAPH +0xDD68 0x8F0D #CJK UNIFIED IDEOGRAPH +0xDD69 0x8F0E #CJK UNIFIED IDEOGRAPH +0xDD6A 0x8F0F #CJK UNIFIED IDEOGRAPH +0xDD6B 0x8F10 #CJK UNIFIED IDEOGRAPH +0xDD6C 0x8F11 #CJK UNIFIED IDEOGRAPH +0xDD6D 0x8F12 #CJK UNIFIED IDEOGRAPH +0xDD6E 0x8F13 #CJK UNIFIED IDEOGRAPH +0xDD6F 0x8F14 #CJK UNIFIED IDEOGRAPH +0xDD70 0x8F15 #CJK UNIFIED IDEOGRAPH +0xDD71 0x8F16 #CJK UNIFIED IDEOGRAPH +0xDD72 0x8F17 #CJK UNIFIED IDEOGRAPH +0xDD73 0x8F18 #CJK UNIFIED IDEOGRAPH +0xDD74 0x8F19 #CJK UNIFIED IDEOGRAPH +0xDD75 0x8F1A #CJK UNIFIED IDEOGRAPH +0xDD76 0x8F1B #CJK UNIFIED IDEOGRAPH +0xDD77 0x8F1C #CJK UNIFIED IDEOGRAPH +0xDD78 0x8F1D #CJK UNIFIED IDEOGRAPH +0xDD79 0x8F1E #CJK UNIFIED IDEOGRAPH +0xDD7A 0x8F1F #CJK UNIFIED IDEOGRAPH +0xDD7B 0x8F20 #CJK UNIFIED IDEOGRAPH +0xDD7C 0x8F21 #CJK UNIFIED IDEOGRAPH +0xDD7D 0x8F22 #CJK UNIFIED IDEOGRAPH +0xDD7E 0x8F23 #CJK UNIFIED IDEOGRAPH +0xDD80 0x8F24 #CJK UNIFIED IDEOGRAPH +0xDD81 0x8F25 #CJK UNIFIED IDEOGRAPH +0xDD82 0x8F26 #CJK UNIFIED IDEOGRAPH +0xDD83 0x8F27 #CJK UNIFIED IDEOGRAPH +0xDD84 0x8F28 #CJK UNIFIED IDEOGRAPH +0xDD85 0x8F29 #CJK UNIFIED IDEOGRAPH +0xDD86 0x8F2A #CJK UNIFIED IDEOGRAPH +0xDD87 0x8F2B #CJK UNIFIED IDEOGRAPH +0xDD88 0x8F2C #CJK UNIFIED IDEOGRAPH +0xDD89 0x8F2D #CJK UNIFIED IDEOGRAPH +0xDD8A 0x8F2E #CJK UNIFIED IDEOGRAPH +0xDD8B 0x8F2F #CJK UNIFIED IDEOGRAPH +0xDD8C 0x8F30 #CJK UNIFIED IDEOGRAPH +0xDD8D 0x8F31 #CJK UNIFIED IDEOGRAPH +0xDD8E 0x8F32 #CJK UNIFIED IDEOGRAPH +0xDD8F 0x8F33 #CJK UNIFIED IDEOGRAPH +0xDD90 0x8F34 #CJK UNIFIED IDEOGRAPH +0xDD91 0x8F35 #CJK UNIFIED IDEOGRAPH +0xDD92 0x8F36 #CJK UNIFIED IDEOGRAPH +0xDD93 0x8F37 #CJK UNIFIED IDEOGRAPH +0xDD94 0x8F38 #CJK UNIFIED IDEOGRAPH +0xDD95 0x8F39 #CJK UNIFIED IDEOGRAPH +0xDD96 0x8F3A #CJK UNIFIED IDEOGRAPH +0xDD97 0x8F3B #CJK UNIFIED IDEOGRAPH +0xDD98 0x8F3C #CJK UNIFIED IDEOGRAPH +0xDD99 0x8F3D #CJK UNIFIED IDEOGRAPH +0xDD9A 0x8F3E #CJK UNIFIED IDEOGRAPH +0xDD9B 0x8F3F #CJK UNIFIED IDEOGRAPH +0xDD9C 0x8F40 #CJK UNIFIED IDEOGRAPH +0xDD9D 0x8F41 #CJK UNIFIED IDEOGRAPH +0xDD9E 0x8F42 #CJK UNIFIED IDEOGRAPH +0xDD9F 0x8F43 #CJK UNIFIED IDEOGRAPH +0xDDA0 0x8F44 #CJK UNIFIED IDEOGRAPH +0xDDA1 0x8368 #CJK UNIFIED IDEOGRAPH +0xDDA2 0x831B #CJK UNIFIED IDEOGRAPH +0xDDA3 0x8369 #CJK UNIFIED IDEOGRAPH +0xDDA4 0x836C #CJK UNIFIED IDEOGRAPH +0xDDA5 0x836A #CJK UNIFIED IDEOGRAPH +0xDDA6 0x836D #CJK UNIFIED IDEOGRAPH +0xDDA7 0x836E #CJK UNIFIED IDEOGRAPH +0xDDA8 0x83B0 #CJK UNIFIED IDEOGRAPH +0xDDA9 0x8378 #CJK UNIFIED IDEOGRAPH +0xDDAA 0x83B3 #CJK UNIFIED IDEOGRAPH +0xDDAB 0x83B4 #CJK UNIFIED IDEOGRAPH +0xDDAC 0x83A0 #CJK UNIFIED IDEOGRAPH +0xDDAD 0x83AA #CJK UNIFIED IDEOGRAPH +0xDDAE 0x8393 #CJK UNIFIED IDEOGRAPH +0xDDAF 0x839C #CJK UNIFIED IDEOGRAPH +0xDDB0 0x8385 #CJK UNIFIED IDEOGRAPH +0xDDB1 0x837C #CJK UNIFIED IDEOGRAPH +0xDDB2 0x83B6 #CJK UNIFIED IDEOGRAPH +0xDDB3 0x83A9 #CJK UNIFIED IDEOGRAPH +0xDDB4 0x837D #CJK UNIFIED IDEOGRAPH +0xDDB5 0x83B8 #CJK UNIFIED IDEOGRAPH +0xDDB6 0x837B #CJK UNIFIED IDEOGRAPH +0xDDB7 0x8398 #CJK UNIFIED IDEOGRAPH +0xDDB8 0x839E #CJK UNIFIED IDEOGRAPH +0xDDB9 0x83A8 #CJK UNIFIED IDEOGRAPH +0xDDBA 0x83BA #CJK UNIFIED IDEOGRAPH +0xDDBB 0x83BC #CJK UNIFIED IDEOGRAPH +0xDDBC 0x83C1 #CJK UNIFIED IDEOGRAPH +0xDDBD 0x8401 #CJK UNIFIED IDEOGRAPH +0xDDBE 0x83E5 #CJK UNIFIED IDEOGRAPH +0xDDBF 0x83D8 #CJK UNIFIED IDEOGRAPH +0xDDC0 0x5807 #CJK UNIFIED IDEOGRAPH +0xDDC1 0x8418 #CJK UNIFIED IDEOGRAPH +0xDDC2 0x840B #CJK UNIFIED IDEOGRAPH +0xDDC3 0x83DD #CJK UNIFIED IDEOGRAPH +0xDDC4 0x83FD #CJK UNIFIED IDEOGRAPH +0xDDC5 0x83D6 #CJK UNIFIED IDEOGRAPH +0xDDC6 0x841C #CJK UNIFIED IDEOGRAPH +0xDDC7 0x8438 #CJK UNIFIED IDEOGRAPH +0xDDC8 0x8411 #CJK UNIFIED IDEOGRAPH +0xDDC9 0x8406 #CJK UNIFIED IDEOGRAPH +0xDDCA 0x83D4 #CJK UNIFIED IDEOGRAPH +0xDDCB 0x83DF #CJK UNIFIED IDEOGRAPH +0xDDCC 0x840F #CJK UNIFIED IDEOGRAPH +0xDDCD 0x8403 #CJK UNIFIED IDEOGRAPH +0xDDCE 0x83F8 #CJK UNIFIED IDEOGRAPH +0xDDCF 0x83F9 #CJK UNIFIED IDEOGRAPH +0xDDD0 0x83EA #CJK UNIFIED IDEOGRAPH +0xDDD1 0x83C5 #CJK UNIFIED IDEOGRAPH +0xDDD2 0x83C0 #CJK UNIFIED IDEOGRAPH +0xDDD3 0x8426 #CJK UNIFIED IDEOGRAPH +0xDDD4 0x83F0 #CJK UNIFIED IDEOGRAPH +0xDDD5 0x83E1 #CJK UNIFIED IDEOGRAPH +0xDDD6 0x845C #CJK UNIFIED IDEOGRAPH +0xDDD7 0x8451 #CJK UNIFIED IDEOGRAPH +0xDDD8 0x845A #CJK UNIFIED IDEOGRAPH +0xDDD9 0x8459 #CJK UNIFIED IDEOGRAPH +0xDDDA 0x8473 #CJK UNIFIED IDEOGRAPH +0xDDDB 0x8487 #CJK UNIFIED IDEOGRAPH +0xDDDC 0x8488 #CJK UNIFIED IDEOGRAPH +0xDDDD 0x847A #CJK UNIFIED IDEOGRAPH +0xDDDE 0x8489 #CJK UNIFIED IDEOGRAPH +0xDDDF 0x8478 #CJK UNIFIED IDEOGRAPH +0xDDE0 0x843C #CJK UNIFIED IDEOGRAPH +0xDDE1 0x8446 #CJK UNIFIED IDEOGRAPH +0xDDE2 0x8469 #CJK UNIFIED IDEOGRAPH +0xDDE3 0x8476 #CJK UNIFIED IDEOGRAPH +0xDDE4 0x848C #CJK UNIFIED IDEOGRAPH +0xDDE5 0x848E #CJK UNIFIED IDEOGRAPH +0xDDE6 0x8431 #CJK UNIFIED IDEOGRAPH +0xDDE7 0x846D #CJK UNIFIED IDEOGRAPH +0xDDE8 0x84C1 #CJK UNIFIED IDEOGRAPH +0xDDE9 0x84CD #CJK UNIFIED IDEOGRAPH +0xDDEA 0x84D0 #CJK UNIFIED IDEOGRAPH +0xDDEB 0x84E6 #CJK UNIFIED IDEOGRAPH +0xDDEC 0x84BD #CJK UNIFIED IDEOGRAPH +0xDDED 0x84D3 #CJK UNIFIED IDEOGRAPH +0xDDEE 0x84CA #CJK UNIFIED IDEOGRAPH +0xDDEF 0x84BF #CJK UNIFIED IDEOGRAPH +0xDDF0 0x84BA #CJK UNIFIED IDEOGRAPH +0xDDF1 0x84E0 #CJK UNIFIED IDEOGRAPH +0xDDF2 0x84A1 #CJK UNIFIED IDEOGRAPH +0xDDF3 0x84B9 #CJK UNIFIED IDEOGRAPH +0xDDF4 0x84B4 #CJK UNIFIED IDEOGRAPH +0xDDF5 0x8497 #CJK UNIFIED IDEOGRAPH +0xDDF6 0x84E5 #CJK UNIFIED IDEOGRAPH +0xDDF7 0x84E3 #CJK UNIFIED IDEOGRAPH +0xDDF8 0x850C #CJK UNIFIED IDEOGRAPH +0xDDF9 0x750D #CJK UNIFIED IDEOGRAPH +0xDDFA 0x8538 #CJK UNIFIED IDEOGRAPH +0xDDFB 0x84F0 #CJK UNIFIED IDEOGRAPH +0xDDFC 0x8539 #CJK UNIFIED IDEOGRAPH +0xDDFD 0x851F #CJK UNIFIED IDEOGRAPH +0xDDFE 0x853A #CJK UNIFIED IDEOGRAPH +0xDE40 0x8F45 #CJK UNIFIED IDEOGRAPH +0xDE41 0x8F46 #CJK UNIFIED IDEOGRAPH +0xDE42 0x8F47 #CJK UNIFIED IDEOGRAPH +0xDE43 0x8F48 #CJK UNIFIED IDEOGRAPH +0xDE44 0x8F49 #CJK UNIFIED IDEOGRAPH +0xDE45 0x8F4A #CJK UNIFIED IDEOGRAPH +0xDE46 0x8F4B #CJK UNIFIED IDEOGRAPH +0xDE47 0x8F4C #CJK UNIFIED IDEOGRAPH +0xDE48 0x8F4D #CJK UNIFIED IDEOGRAPH +0xDE49 0x8F4E #CJK UNIFIED IDEOGRAPH +0xDE4A 0x8F4F #CJK UNIFIED IDEOGRAPH +0xDE4B 0x8F50 #CJK UNIFIED IDEOGRAPH +0xDE4C 0x8F51 #CJK UNIFIED IDEOGRAPH +0xDE4D 0x8F52 #CJK UNIFIED IDEOGRAPH +0xDE4E 0x8F53 #CJK UNIFIED IDEOGRAPH +0xDE4F 0x8F54 #CJK UNIFIED IDEOGRAPH +0xDE50 0x8F55 #CJK UNIFIED IDEOGRAPH +0xDE51 0x8F56 #CJK UNIFIED IDEOGRAPH +0xDE52 0x8F57 #CJK UNIFIED IDEOGRAPH +0xDE53 0x8F58 #CJK UNIFIED IDEOGRAPH +0xDE54 0x8F59 #CJK UNIFIED IDEOGRAPH +0xDE55 0x8F5A #CJK UNIFIED IDEOGRAPH +0xDE56 0x8F5B #CJK UNIFIED IDEOGRAPH +0xDE57 0x8F5C #CJK UNIFIED IDEOGRAPH +0xDE58 0x8F5D #CJK UNIFIED IDEOGRAPH +0xDE59 0x8F5E #CJK UNIFIED IDEOGRAPH +0xDE5A 0x8F5F #CJK UNIFIED IDEOGRAPH +0xDE5B 0x8F60 #CJK UNIFIED IDEOGRAPH +0xDE5C 0x8F61 #CJK UNIFIED IDEOGRAPH +0xDE5D 0x8F62 #CJK UNIFIED IDEOGRAPH +0xDE5E 0x8F63 #CJK UNIFIED IDEOGRAPH +0xDE5F 0x8F64 #CJK UNIFIED IDEOGRAPH +0xDE60 0x8F65 #CJK UNIFIED IDEOGRAPH +0xDE61 0x8F6A #CJK UNIFIED IDEOGRAPH +0xDE62 0x8F80 #CJK UNIFIED IDEOGRAPH +0xDE63 0x8F8C #CJK UNIFIED IDEOGRAPH +0xDE64 0x8F92 #CJK UNIFIED IDEOGRAPH +0xDE65 0x8F9D #CJK UNIFIED IDEOGRAPH +0xDE66 0x8FA0 #CJK UNIFIED IDEOGRAPH +0xDE67 0x8FA1 #CJK UNIFIED IDEOGRAPH +0xDE68 0x8FA2 #CJK UNIFIED IDEOGRAPH +0xDE69 0x8FA4 #CJK UNIFIED IDEOGRAPH +0xDE6A 0x8FA5 #CJK UNIFIED IDEOGRAPH +0xDE6B 0x8FA6 #CJK UNIFIED IDEOGRAPH +0xDE6C 0x8FA7 #CJK UNIFIED IDEOGRAPH +0xDE6D 0x8FAA #CJK UNIFIED IDEOGRAPH +0xDE6E 0x8FAC #CJK UNIFIED IDEOGRAPH +0xDE6F 0x8FAD #CJK UNIFIED IDEOGRAPH +0xDE70 0x8FAE #CJK UNIFIED IDEOGRAPH +0xDE71 0x8FAF #CJK UNIFIED IDEOGRAPH +0xDE72 0x8FB2 #CJK UNIFIED IDEOGRAPH +0xDE73 0x8FB3 #CJK UNIFIED IDEOGRAPH +0xDE74 0x8FB4 #CJK UNIFIED IDEOGRAPH +0xDE75 0x8FB5 #CJK UNIFIED IDEOGRAPH +0xDE76 0x8FB7 #CJK UNIFIED IDEOGRAPH +0xDE77 0x8FB8 #CJK UNIFIED IDEOGRAPH +0xDE78 0x8FBA #CJK UNIFIED IDEOGRAPH +0xDE79 0x8FBB #CJK UNIFIED IDEOGRAPH +0xDE7A 0x8FBC #CJK UNIFIED IDEOGRAPH +0xDE7B 0x8FBF #CJK UNIFIED IDEOGRAPH +0xDE7C 0x8FC0 #CJK UNIFIED IDEOGRAPH +0xDE7D 0x8FC3 #CJK UNIFIED IDEOGRAPH +0xDE7E 0x8FC6 #CJK UNIFIED IDEOGRAPH +0xDE80 0x8FC9 #CJK UNIFIED IDEOGRAPH +0xDE81 0x8FCA #CJK UNIFIED IDEOGRAPH +0xDE82 0x8FCB #CJK UNIFIED IDEOGRAPH +0xDE83 0x8FCC #CJK UNIFIED IDEOGRAPH +0xDE84 0x8FCD #CJK UNIFIED IDEOGRAPH +0xDE85 0x8FCF #CJK UNIFIED IDEOGRAPH +0xDE86 0x8FD2 #CJK UNIFIED IDEOGRAPH +0xDE87 0x8FD6 #CJK UNIFIED IDEOGRAPH +0xDE88 0x8FD7 #CJK UNIFIED IDEOGRAPH +0xDE89 0x8FDA #CJK UNIFIED IDEOGRAPH +0xDE8A 0x8FE0 #CJK UNIFIED IDEOGRAPH +0xDE8B 0x8FE1 #CJK UNIFIED IDEOGRAPH +0xDE8C 0x8FE3 #CJK UNIFIED IDEOGRAPH +0xDE8D 0x8FE7 #CJK UNIFIED IDEOGRAPH +0xDE8E 0x8FEC #CJK UNIFIED IDEOGRAPH +0xDE8F 0x8FEF #CJK UNIFIED IDEOGRAPH +0xDE90 0x8FF1 #CJK UNIFIED IDEOGRAPH +0xDE91 0x8FF2 #CJK UNIFIED IDEOGRAPH +0xDE92 0x8FF4 #CJK UNIFIED IDEOGRAPH +0xDE93 0x8FF5 #CJK UNIFIED IDEOGRAPH +0xDE94 0x8FF6 #CJK UNIFIED IDEOGRAPH +0xDE95 0x8FFA #CJK UNIFIED IDEOGRAPH +0xDE96 0x8FFB #CJK UNIFIED IDEOGRAPH +0xDE97 0x8FFC #CJK UNIFIED IDEOGRAPH +0xDE98 0x8FFE #CJK UNIFIED IDEOGRAPH +0xDE99 0x8FFF #CJK UNIFIED IDEOGRAPH +0xDE9A 0x9007 #CJK UNIFIED IDEOGRAPH +0xDE9B 0x9008 #CJK UNIFIED IDEOGRAPH +0xDE9C 0x900C #CJK UNIFIED IDEOGRAPH +0xDE9D 0x900E #CJK UNIFIED IDEOGRAPH +0xDE9E 0x9013 #CJK UNIFIED IDEOGRAPH +0xDE9F 0x9015 #CJK UNIFIED IDEOGRAPH +0xDEA0 0x9018 #CJK UNIFIED IDEOGRAPH +0xDEA1 0x8556 #CJK UNIFIED IDEOGRAPH +0xDEA2 0x853B #CJK UNIFIED IDEOGRAPH +0xDEA3 0x84FF #CJK UNIFIED IDEOGRAPH +0xDEA4 0x84FC #CJK UNIFIED IDEOGRAPH +0xDEA5 0x8559 #CJK UNIFIED IDEOGRAPH +0xDEA6 0x8548 #CJK UNIFIED IDEOGRAPH +0xDEA7 0x8568 #CJK UNIFIED IDEOGRAPH +0xDEA8 0x8564 #CJK UNIFIED IDEOGRAPH +0xDEA9 0x855E #CJK UNIFIED IDEOGRAPH +0xDEAA 0x857A #CJK UNIFIED IDEOGRAPH +0xDEAB 0x77A2 #CJK UNIFIED IDEOGRAPH +0xDEAC 0x8543 #CJK UNIFIED IDEOGRAPH +0xDEAD 0x8572 #CJK UNIFIED IDEOGRAPH +0xDEAE 0x857B #CJK UNIFIED IDEOGRAPH +0xDEAF 0x85A4 #CJK UNIFIED IDEOGRAPH +0xDEB0 0x85A8 #CJK UNIFIED IDEOGRAPH +0xDEB1 0x8587 #CJK UNIFIED IDEOGRAPH +0xDEB2 0x858F #CJK UNIFIED IDEOGRAPH +0xDEB3 0x8579 #CJK UNIFIED IDEOGRAPH +0xDEB4 0x85AE #CJK UNIFIED IDEOGRAPH +0xDEB5 0x859C #CJK UNIFIED IDEOGRAPH +0xDEB6 0x8585 #CJK UNIFIED IDEOGRAPH +0xDEB7 0x85B9 #CJK UNIFIED IDEOGRAPH +0xDEB8 0x85B7 #CJK UNIFIED IDEOGRAPH +0xDEB9 0x85B0 #CJK UNIFIED IDEOGRAPH +0xDEBA 0x85D3 #CJK UNIFIED IDEOGRAPH +0xDEBB 0x85C1 #CJK UNIFIED IDEOGRAPH +0xDEBC 0x85DC #CJK UNIFIED IDEOGRAPH +0xDEBD 0x85FF #CJK UNIFIED IDEOGRAPH +0xDEBE 0x8627 #CJK UNIFIED IDEOGRAPH +0xDEBF 0x8605 #CJK UNIFIED IDEOGRAPH +0xDEC0 0x8629 #CJK UNIFIED IDEOGRAPH +0xDEC1 0x8616 #CJK UNIFIED IDEOGRAPH +0xDEC2 0x863C #CJK UNIFIED IDEOGRAPH +0xDEC3 0x5EFE #CJK UNIFIED IDEOGRAPH +0xDEC4 0x5F08 #CJK UNIFIED IDEOGRAPH +0xDEC5 0x593C #CJK UNIFIED IDEOGRAPH +0xDEC6 0x5941 #CJK UNIFIED IDEOGRAPH +0xDEC7 0x8037 #CJK UNIFIED IDEOGRAPH +0xDEC8 0x5955 #CJK UNIFIED IDEOGRAPH +0xDEC9 0x595A #CJK UNIFIED IDEOGRAPH +0xDECA 0x5958 #CJK UNIFIED IDEOGRAPH +0xDECB 0x530F #CJK UNIFIED IDEOGRAPH +0xDECC 0x5C22 #CJK UNIFIED IDEOGRAPH +0xDECD 0x5C25 #CJK UNIFIED IDEOGRAPH +0xDECE 0x5C2C #CJK UNIFIED IDEOGRAPH +0xDECF 0x5C34 #CJK UNIFIED IDEOGRAPH +0xDED0 0x624C #CJK UNIFIED IDEOGRAPH +0xDED1 0x626A #CJK UNIFIED IDEOGRAPH +0xDED2 0x629F #CJK UNIFIED IDEOGRAPH +0xDED3 0x62BB #CJK UNIFIED IDEOGRAPH +0xDED4 0x62CA #CJK UNIFIED IDEOGRAPH +0xDED5 0x62DA #CJK UNIFIED IDEOGRAPH +0xDED6 0x62D7 #CJK UNIFIED IDEOGRAPH +0xDED7 0x62EE #CJK UNIFIED IDEOGRAPH +0xDED8 0x6322 #CJK UNIFIED IDEOGRAPH +0xDED9 0x62F6 #CJK UNIFIED IDEOGRAPH +0xDEDA 0x6339 #CJK UNIFIED IDEOGRAPH +0xDEDB 0x634B #CJK UNIFIED IDEOGRAPH +0xDEDC 0x6343 #CJK UNIFIED IDEOGRAPH +0xDEDD 0x63AD #CJK UNIFIED IDEOGRAPH +0xDEDE 0x63F6 #CJK UNIFIED IDEOGRAPH +0xDEDF 0x6371 #CJK UNIFIED IDEOGRAPH +0xDEE0 0x637A #CJK UNIFIED IDEOGRAPH +0xDEE1 0x638E #CJK UNIFIED IDEOGRAPH +0xDEE2 0x63B4 #CJK UNIFIED IDEOGRAPH +0xDEE3 0x636D #CJK UNIFIED IDEOGRAPH +0xDEE4 0x63AC #CJK UNIFIED IDEOGRAPH +0xDEE5 0x638A #CJK UNIFIED IDEOGRAPH +0xDEE6 0x6369 #CJK UNIFIED IDEOGRAPH +0xDEE7 0x63AE #CJK UNIFIED IDEOGRAPH +0xDEE8 0x63BC #CJK UNIFIED IDEOGRAPH +0xDEE9 0x63F2 #CJK UNIFIED IDEOGRAPH +0xDEEA 0x63F8 #CJK UNIFIED IDEOGRAPH +0xDEEB 0x63E0 #CJK UNIFIED IDEOGRAPH +0xDEEC 0x63FF #CJK UNIFIED IDEOGRAPH +0xDEED 0x63C4 #CJK UNIFIED IDEOGRAPH +0xDEEE 0x63DE #CJK UNIFIED IDEOGRAPH +0xDEEF 0x63CE #CJK UNIFIED IDEOGRAPH +0xDEF0 0x6452 #CJK UNIFIED IDEOGRAPH +0xDEF1 0x63C6 #CJK UNIFIED IDEOGRAPH +0xDEF2 0x63BE #CJK UNIFIED IDEOGRAPH +0xDEF3 0x6445 #CJK UNIFIED IDEOGRAPH +0xDEF4 0x6441 #CJK UNIFIED IDEOGRAPH +0xDEF5 0x640B #CJK UNIFIED IDEOGRAPH +0xDEF6 0x641B #CJK UNIFIED IDEOGRAPH +0xDEF7 0x6420 #CJK UNIFIED IDEOGRAPH +0xDEF8 0x640C #CJK UNIFIED IDEOGRAPH +0xDEF9 0x6426 #CJK UNIFIED IDEOGRAPH +0xDEFA 0x6421 #CJK UNIFIED IDEOGRAPH +0xDEFB 0x645E #CJK UNIFIED IDEOGRAPH +0xDEFC 0x6484 #CJK UNIFIED IDEOGRAPH +0xDEFD 0x646D #CJK UNIFIED IDEOGRAPH +0xDEFE 0x6496 #CJK UNIFIED IDEOGRAPH +0xDF40 0x9019 #CJK UNIFIED IDEOGRAPH +0xDF41 0x901C #CJK UNIFIED IDEOGRAPH +0xDF42 0x9023 #CJK UNIFIED IDEOGRAPH +0xDF43 0x9024 #CJK UNIFIED IDEOGRAPH +0xDF44 0x9025 #CJK UNIFIED IDEOGRAPH +0xDF45 0x9027 #CJK UNIFIED IDEOGRAPH +0xDF46 0x9028 #CJK UNIFIED IDEOGRAPH +0xDF47 0x9029 #CJK UNIFIED IDEOGRAPH +0xDF48 0x902A #CJK UNIFIED IDEOGRAPH +0xDF49 0x902B #CJK UNIFIED IDEOGRAPH +0xDF4A 0x902C #CJK UNIFIED IDEOGRAPH +0xDF4B 0x9030 #CJK UNIFIED IDEOGRAPH +0xDF4C 0x9031 #CJK UNIFIED IDEOGRAPH +0xDF4D 0x9032 #CJK UNIFIED IDEOGRAPH +0xDF4E 0x9033 #CJK UNIFIED IDEOGRAPH +0xDF4F 0x9034 #CJK UNIFIED IDEOGRAPH +0xDF50 0x9037 #CJK UNIFIED IDEOGRAPH +0xDF51 0x9039 #CJK UNIFIED IDEOGRAPH +0xDF52 0x903A #CJK UNIFIED IDEOGRAPH +0xDF53 0x903D #CJK UNIFIED IDEOGRAPH +0xDF54 0x903F #CJK UNIFIED IDEOGRAPH +0xDF55 0x9040 #CJK UNIFIED IDEOGRAPH +0xDF56 0x9043 #CJK UNIFIED IDEOGRAPH +0xDF57 0x9045 #CJK UNIFIED IDEOGRAPH +0xDF58 0x9046 #CJK UNIFIED IDEOGRAPH +0xDF59 0x9048 #CJK UNIFIED IDEOGRAPH +0xDF5A 0x9049 #CJK UNIFIED IDEOGRAPH +0xDF5B 0x904A #CJK UNIFIED IDEOGRAPH +0xDF5C 0x904B #CJK UNIFIED IDEOGRAPH +0xDF5D 0x904C #CJK UNIFIED IDEOGRAPH +0xDF5E 0x904E #CJK UNIFIED IDEOGRAPH +0xDF5F 0x9054 #CJK UNIFIED IDEOGRAPH +0xDF60 0x9055 #CJK UNIFIED IDEOGRAPH +0xDF61 0x9056 #CJK UNIFIED IDEOGRAPH +0xDF62 0x9059 #CJK UNIFIED IDEOGRAPH +0xDF63 0x905A #CJK UNIFIED IDEOGRAPH +0xDF64 0x905C #CJK UNIFIED IDEOGRAPH +0xDF65 0x905D #CJK UNIFIED IDEOGRAPH +0xDF66 0x905E #CJK UNIFIED IDEOGRAPH +0xDF67 0x905F #CJK UNIFIED IDEOGRAPH +0xDF68 0x9060 #CJK UNIFIED IDEOGRAPH +0xDF69 0x9061 #CJK UNIFIED IDEOGRAPH +0xDF6A 0x9064 #CJK UNIFIED IDEOGRAPH +0xDF6B 0x9066 #CJK UNIFIED IDEOGRAPH +0xDF6C 0x9067 #CJK UNIFIED IDEOGRAPH +0xDF6D 0x9069 #CJK UNIFIED IDEOGRAPH +0xDF6E 0x906A #CJK UNIFIED IDEOGRAPH +0xDF6F 0x906B #CJK UNIFIED IDEOGRAPH +0xDF70 0x906C #CJK UNIFIED IDEOGRAPH +0xDF71 0x906F #CJK UNIFIED IDEOGRAPH +0xDF72 0x9070 #CJK UNIFIED IDEOGRAPH +0xDF73 0x9071 #CJK UNIFIED IDEOGRAPH +0xDF74 0x9072 #CJK UNIFIED IDEOGRAPH +0xDF75 0x9073 #CJK UNIFIED IDEOGRAPH +0xDF76 0x9076 #CJK UNIFIED IDEOGRAPH +0xDF77 0x9077 #CJK UNIFIED IDEOGRAPH +0xDF78 0x9078 #CJK UNIFIED IDEOGRAPH +0xDF79 0x9079 #CJK UNIFIED IDEOGRAPH +0xDF7A 0x907A #CJK UNIFIED IDEOGRAPH +0xDF7B 0x907B #CJK UNIFIED IDEOGRAPH +0xDF7C 0x907C #CJK UNIFIED IDEOGRAPH +0xDF7D 0x907E #CJK UNIFIED IDEOGRAPH +0xDF7E 0x9081 #CJK UNIFIED IDEOGRAPH +0xDF80 0x9084 #CJK UNIFIED IDEOGRAPH +0xDF81 0x9085 #CJK UNIFIED IDEOGRAPH +0xDF82 0x9086 #CJK UNIFIED IDEOGRAPH +0xDF83 0x9087 #CJK UNIFIED IDEOGRAPH +0xDF84 0x9089 #CJK UNIFIED IDEOGRAPH +0xDF85 0x908A #CJK UNIFIED IDEOGRAPH +0xDF86 0x908C #CJK UNIFIED IDEOGRAPH +0xDF87 0x908D #CJK UNIFIED IDEOGRAPH +0xDF88 0x908E #CJK UNIFIED IDEOGRAPH +0xDF89 0x908F #CJK UNIFIED IDEOGRAPH +0xDF8A 0x9090 #CJK UNIFIED IDEOGRAPH +0xDF8B 0x9092 #CJK UNIFIED IDEOGRAPH +0xDF8C 0x9094 #CJK UNIFIED IDEOGRAPH +0xDF8D 0x9096 #CJK UNIFIED IDEOGRAPH +0xDF8E 0x9098 #CJK UNIFIED IDEOGRAPH +0xDF8F 0x909A #CJK UNIFIED IDEOGRAPH +0xDF90 0x909C #CJK UNIFIED IDEOGRAPH +0xDF91 0x909E #CJK UNIFIED IDEOGRAPH +0xDF92 0x909F #CJK UNIFIED IDEOGRAPH +0xDF93 0x90A0 #CJK UNIFIED IDEOGRAPH +0xDF94 0x90A4 #CJK UNIFIED IDEOGRAPH +0xDF95 0x90A5 #CJK UNIFIED IDEOGRAPH +0xDF96 0x90A7 #CJK UNIFIED IDEOGRAPH +0xDF97 0x90A8 #CJK UNIFIED IDEOGRAPH +0xDF98 0x90A9 #CJK UNIFIED IDEOGRAPH +0xDF99 0x90AB #CJK UNIFIED IDEOGRAPH +0xDF9A 0x90AD #CJK UNIFIED IDEOGRAPH +0xDF9B 0x90B2 #CJK UNIFIED IDEOGRAPH +0xDF9C 0x90B7 #CJK UNIFIED IDEOGRAPH +0xDF9D 0x90BC #CJK UNIFIED IDEOGRAPH +0xDF9E 0x90BD #CJK UNIFIED IDEOGRAPH +0xDF9F 0x90BF #CJK UNIFIED IDEOGRAPH +0xDFA0 0x90C0 #CJK UNIFIED IDEOGRAPH +0xDFA1 0x647A #CJK UNIFIED IDEOGRAPH +0xDFA2 0x64B7 #CJK UNIFIED IDEOGRAPH +0xDFA3 0x64B8 #CJK UNIFIED IDEOGRAPH +0xDFA4 0x6499 #CJK UNIFIED IDEOGRAPH +0xDFA5 0x64BA #CJK UNIFIED IDEOGRAPH +0xDFA6 0x64C0 #CJK UNIFIED IDEOGRAPH +0xDFA7 0x64D0 #CJK UNIFIED IDEOGRAPH +0xDFA8 0x64D7 #CJK UNIFIED IDEOGRAPH +0xDFA9 0x64E4 #CJK UNIFIED IDEOGRAPH +0xDFAA 0x64E2 #CJK UNIFIED IDEOGRAPH +0xDFAB 0x6509 #CJK UNIFIED IDEOGRAPH +0xDFAC 0x6525 #CJK UNIFIED IDEOGRAPH +0xDFAD 0x652E #CJK UNIFIED IDEOGRAPH +0xDFAE 0x5F0B #CJK UNIFIED IDEOGRAPH +0xDFAF 0x5FD2 #CJK UNIFIED IDEOGRAPH +0xDFB0 0x7519 #CJK UNIFIED IDEOGRAPH +0xDFB1 0x5F11 #CJK UNIFIED IDEOGRAPH +0xDFB2 0x535F #CJK UNIFIED IDEOGRAPH +0xDFB3 0x53F1 #CJK UNIFIED IDEOGRAPH +0xDFB4 0x53FD #CJK UNIFIED IDEOGRAPH +0xDFB5 0x53E9 #CJK UNIFIED IDEOGRAPH +0xDFB6 0x53E8 #CJK UNIFIED IDEOGRAPH +0xDFB7 0x53FB #CJK UNIFIED IDEOGRAPH +0xDFB8 0x5412 #CJK UNIFIED IDEOGRAPH +0xDFB9 0x5416 #CJK UNIFIED IDEOGRAPH +0xDFBA 0x5406 #CJK UNIFIED IDEOGRAPH +0xDFBB 0x544B #CJK UNIFIED IDEOGRAPH +0xDFBC 0x5452 #CJK UNIFIED IDEOGRAPH +0xDFBD 0x5453 #CJK UNIFIED IDEOGRAPH +0xDFBE 0x5454 #CJK UNIFIED IDEOGRAPH +0xDFBF 0x5456 #CJK UNIFIED IDEOGRAPH +0xDFC0 0x5443 #CJK UNIFIED IDEOGRAPH +0xDFC1 0x5421 #CJK UNIFIED IDEOGRAPH +0xDFC2 0x5457 #CJK UNIFIED IDEOGRAPH +0xDFC3 0x5459 #CJK UNIFIED IDEOGRAPH +0xDFC4 0x5423 #CJK UNIFIED IDEOGRAPH +0xDFC5 0x5432 #CJK UNIFIED IDEOGRAPH +0xDFC6 0x5482 #CJK UNIFIED IDEOGRAPH +0xDFC7 0x5494 #CJK UNIFIED IDEOGRAPH +0xDFC8 0x5477 #CJK UNIFIED IDEOGRAPH +0xDFC9 0x5471 #CJK UNIFIED IDEOGRAPH +0xDFCA 0x5464 #CJK UNIFIED IDEOGRAPH +0xDFCB 0x549A #CJK UNIFIED IDEOGRAPH +0xDFCC 0x549B #CJK UNIFIED IDEOGRAPH +0xDFCD 0x5484 #CJK UNIFIED IDEOGRAPH +0xDFCE 0x5476 #CJK UNIFIED IDEOGRAPH +0xDFCF 0x5466 #CJK UNIFIED IDEOGRAPH +0xDFD0 0x549D #CJK UNIFIED IDEOGRAPH +0xDFD1 0x54D0 #CJK UNIFIED IDEOGRAPH +0xDFD2 0x54AD #CJK UNIFIED IDEOGRAPH +0xDFD3 0x54C2 #CJK UNIFIED IDEOGRAPH +0xDFD4 0x54B4 #CJK UNIFIED IDEOGRAPH +0xDFD5 0x54D2 #CJK UNIFIED IDEOGRAPH +0xDFD6 0x54A7 #CJK UNIFIED IDEOGRAPH +0xDFD7 0x54A6 #CJK UNIFIED IDEOGRAPH +0xDFD8 0x54D3 #CJK UNIFIED IDEOGRAPH +0xDFD9 0x54D4 #CJK UNIFIED IDEOGRAPH +0xDFDA 0x5472 #CJK UNIFIED IDEOGRAPH +0xDFDB 0x54A3 #CJK UNIFIED IDEOGRAPH +0xDFDC 0x54D5 #CJK UNIFIED IDEOGRAPH +0xDFDD 0x54BB #CJK UNIFIED IDEOGRAPH +0xDFDE 0x54BF #CJK UNIFIED IDEOGRAPH +0xDFDF 0x54CC #CJK UNIFIED IDEOGRAPH +0xDFE0 0x54D9 #CJK UNIFIED IDEOGRAPH +0xDFE1 0x54DA #CJK UNIFIED IDEOGRAPH +0xDFE2 0x54DC #CJK UNIFIED IDEOGRAPH +0xDFE3 0x54A9 #CJK UNIFIED IDEOGRAPH +0xDFE4 0x54AA #CJK UNIFIED IDEOGRAPH +0xDFE5 0x54A4 #CJK UNIFIED IDEOGRAPH +0xDFE6 0x54DD #CJK UNIFIED IDEOGRAPH +0xDFE7 0x54CF #CJK UNIFIED IDEOGRAPH +0xDFE8 0x54DE #CJK UNIFIED IDEOGRAPH +0xDFE9 0x551B #CJK UNIFIED IDEOGRAPH +0xDFEA 0x54E7 #CJK UNIFIED IDEOGRAPH +0xDFEB 0x5520 #CJK UNIFIED IDEOGRAPH +0xDFEC 0x54FD #CJK UNIFIED IDEOGRAPH +0xDFED 0x5514 #CJK UNIFIED IDEOGRAPH +0xDFEE 0x54F3 #CJK UNIFIED IDEOGRAPH +0xDFEF 0x5522 #CJK UNIFIED IDEOGRAPH +0xDFF0 0x5523 #CJK UNIFIED IDEOGRAPH +0xDFF1 0x550F #CJK UNIFIED IDEOGRAPH +0xDFF2 0x5511 #CJK UNIFIED IDEOGRAPH +0xDFF3 0x5527 #CJK UNIFIED IDEOGRAPH +0xDFF4 0x552A #CJK UNIFIED IDEOGRAPH +0xDFF5 0x5567 #CJK UNIFIED IDEOGRAPH +0xDFF6 0x558F #CJK UNIFIED IDEOGRAPH +0xDFF7 0x55B5 #CJK UNIFIED IDEOGRAPH +0xDFF8 0x5549 #CJK UNIFIED IDEOGRAPH +0xDFF9 0x556D #CJK UNIFIED IDEOGRAPH +0xDFFA 0x5541 #CJK UNIFIED IDEOGRAPH +0xDFFB 0x5555 #CJK UNIFIED IDEOGRAPH +0xDFFC 0x553F #CJK UNIFIED IDEOGRAPH +0xDFFD 0x5550 #CJK UNIFIED IDEOGRAPH +0xDFFE 0x553C #CJK UNIFIED IDEOGRAPH +0xE040 0x90C2 #CJK UNIFIED IDEOGRAPH +0xE041 0x90C3 #CJK UNIFIED IDEOGRAPH +0xE042 0x90C6 #CJK UNIFIED IDEOGRAPH +0xE043 0x90C8 #CJK UNIFIED IDEOGRAPH +0xE044 0x90C9 #CJK UNIFIED IDEOGRAPH +0xE045 0x90CB #CJK UNIFIED IDEOGRAPH +0xE046 0x90CC #CJK UNIFIED IDEOGRAPH +0xE047 0x90CD #CJK UNIFIED IDEOGRAPH +0xE048 0x90D2 #CJK UNIFIED IDEOGRAPH +0xE049 0x90D4 #CJK UNIFIED IDEOGRAPH +0xE04A 0x90D5 #CJK UNIFIED IDEOGRAPH +0xE04B 0x90D6 #CJK UNIFIED IDEOGRAPH +0xE04C 0x90D8 #CJK UNIFIED IDEOGRAPH +0xE04D 0x90D9 #CJK UNIFIED IDEOGRAPH +0xE04E 0x90DA #CJK UNIFIED IDEOGRAPH +0xE04F 0x90DE #CJK UNIFIED IDEOGRAPH +0xE050 0x90DF #CJK UNIFIED IDEOGRAPH +0xE051 0x90E0 #CJK UNIFIED IDEOGRAPH +0xE052 0x90E3 #CJK UNIFIED IDEOGRAPH +0xE053 0x90E4 #CJK UNIFIED IDEOGRAPH +0xE054 0x90E5 #CJK UNIFIED IDEOGRAPH +0xE055 0x90E9 #CJK UNIFIED IDEOGRAPH +0xE056 0x90EA #CJK UNIFIED IDEOGRAPH +0xE057 0x90EC #CJK UNIFIED IDEOGRAPH +0xE058 0x90EE #CJK UNIFIED IDEOGRAPH +0xE059 0x90F0 #CJK UNIFIED IDEOGRAPH +0xE05A 0x90F1 #CJK UNIFIED IDEOGRAPH +0xE05B 0x90F2 #CJK UNIFIED IDEOGRAPH +0xE05C 0x90F3 #CJK UNIFIED IDEOGRAPH +0xE05D 0x90F5 #CJK UNIFIED IDEOGRAPH +0xE05E 0x90F6 #CJK UNIFIED IDEOGRAPH +0xE05F 0x90F7 #CJK UNIFIED IDEOGRAPH +0xE060 0x90F9 #CJK UNIFIED IDEOGRAPH +0xE061 0x90FA #CJK UNIFIED IDEOGRAPH +0xE062 0x90FB #CJK UNIFIED IDEOGRAPH +0xE063 0x90FC #CJK UNIFIED IDEOGRAPH +0xE064 0x90FF #CJK UNIFIED IDEOGRAPH +0xE065 0x9100 #CJK UNIFIED IDEOGRAPH +0xE066 0x9101 #CJK UNIFIED IDEOGRAPH +0xE067 0x9103 #CJK UNIFIED IDEOGRAPH +0xE068 0x9105 #CJK UNIFIED IDEOGRAPH +0xE069 0x9106 #CJK UNIFIED IDEOGRAPH +0xE06A 0x9107 #CJK UNIFIED IDEOGRAPH +0xE06B 0x9108 #CJK UNIFIED IDEOGRAPH +0xE06C 0x9109 #CJK UNIFIED IDEOGRAPH +0xE06D 0x910A #CJK UNIFIED IDEOGRAPH +0xE06E 0x910B #CJK UNIFIED IDEOGRAPH +0xE06F 0x910C #CJK UNIFIED IDEOGRAPH +0xE070 0x910D #CJK UNIFIED IDEOGRAPH +0xE071 0x910E #CJK UNIFIED IDEOGRAPH +0xE072 0x910F #CJK UNIFIED IDEOGRAPH +0xE073 0x9110 #CJK UNIFIED IDEOGRAPH +0xE074 0x9111 #CJK UNIFIED IDEOGRAPH +0xE075 0x9112 #CJK UNIFIED IDEOGRAPH +0xE076 0x9113 #CJK UNIFIED IDEOGRAPH +0xE077 0x9114 #CJK UNIFIED IDEOGRAPH +0xE078 0x9115 #CJK UNIFIED IDEOGRAPH +0xE079 0x9116 #CJK UNIFIED IDEOGRAPH +0xE07A 0x9117 #CJK UNIFIED IDEOGRAPH +0xE07B 0x9118 #CJK UNIFIED IDEOGRAPH +0xE07C 0x911A #CJK UNIFIED IDEOGRAPH +0xE07D 0x911B #CJK UNIFIED IDEOGRAPH +0xE07E 0x911C #CJK UNIFIED IDEOGRAPH +0xE080 0x911D #CJK UNIFIED IDEOGRAPH +0xE081 0x911F #CJK UNIFIED IDEOGRAPH +0xE082 0x9120 #CJK UNIFIED IDEOGRAPH +0xE083 0x9121 #CJK UNIFIED IDEOGRAPH +0xE084 0x9124 #CJK UNIFIED IDEOGRAPH +0xE085 0x9125 #CJK UNIFIED IDEOGRAPH +0xE086 0x9126 #CJK UNIFIED IDEOGRAPH +0xE087 0x9127 #CJK UNIFIED IDEOGRAPH +0xE088 0x9128 #CJK UNIFIED IDEOGRAPH +0xE089 0x9129 #CJK UNIFIED IDEOGRAPH +0xE08A 0x912A #CJK UNIFIED IDEOGRAPH +0xE08B 0x912B #CJK UNIFIED IDEOGRAPH +0xE08C 0x912C #CJK UNIFIED IDEOGRAPH +0xE08D 0x912D #CJK UNIFIED IDEOGRAPH +0xE08E 0x912E #CJK UNIFIED IDEOGRAPH +0xE08F 0x9130 #CJK UNIFIED IDEOGRAPH +0xE090 0x9132 #CJK UNIFIED IDEOGRAPH +0xE091 0x9133 #CJK UNIFIED IDEOGRAPH +0xE092 0x9134 #CJK UNIFIED IDEOGRAPH +0xE093 0x9135 #CJK UNIFIED IDEOGRAPH +0xE094 0x9136 #CJK UNIFIED IDEOGRAPH +0xE095 0x9137 #CJK UNIFIED IDEOGRAPH +0xE096 0x9138 #CJK UNIFIED IDEOGRAPH +0xE097 0x913A #CJK UNIFIED IDEOGRAPH +0xE098 0x913B #CJK UNIFIED IDEOGRAPH +0xE099 0x913C #CJK UNIFIED IDEOGRAPH +0xE09A 0x913D #CJK UNIFIED IDEOGRAPH +0xE09B 0x913E #CJK UNIFIED IDEOGRAPH +0xE09C 0x913F #CJK UNIFIED IDEOGRAPH +0xE09D 0x9140 #CJK UNIFIED IDEOGRAPH +0xE09E 0x9141 #CJK UNIFIED IDEOGRAPH +0xE09F 0x9142 #CJK UNIFIED IDEOGRAPH +0xE0A0 0x9144 #CJK UNIFIED IDEOGRAPH +0xE0A1 0x5537 #CJK UNIFIED IDEOGRAPH +0xE0A2 0x5556 #CJK UNIFIED IDEOGRAPH +0xE0A3 0x5575 #CJK UNIFIED IDEOGRAPH +0xE0A4 0x5576 #CJK UNIFIED IDEOGRAPH +0xE0A5 0x5577 #CJK UNIFIED IDEOGRAPH +0xE0A6 0x5533 #CJK UNIFIED IDEOGRAPH +0xE0A7 0x5530 #CJK UNIFIED IDEOGRAPH +0xE0A8 0x555C #CJK UNIFIED IDEOGRAPH +0xE0A9 0x558B #CJK UNIFIED IDEOGRAPH +0xE0AA 0x55D2 #CJK UNIFIED IDEOGRAPH +0xE0AB 0x5583 #CJK UNIFIED IDEOGRAPH +0xE0AC 0x55B1 #CJK UNIFIED IDEOGRAPH +0xE0AD 0x55B9 #CJK UNIFIED IDEOGRAPH +0xE0AE 0x5588 #CJK UNIFIED IDEOGRAPH +0xE0AF 0x5581 #CJK UNIFIED IDEOGRAPH +0xE0B0 0x559F #CJK UNIFIED IDEOGRAPH +0xE0B1 0x557E #CJK UNIFIED IDEOGRAPH +0xE0B2 0x55D6 #CJK UNIFIED IDEOGRAPH +0xE0B3 0x5591 #CJK UNIFIED IDEOGRAPH +0xE0B4 0x557B #CJK UNIFIED IDEOGRAPH +0xE0B5 0x55DF #CJK UNIFIED IDEOGRAPH +0xE0B6 0x55BD #CJK UNIFIED IDEOGRAPH +0xE0B7 0x55BE #CJK UNIFIED IDEOGRAPH +0xE0B8 0x5594 #CJK UNIFIED IDEOGRAPH +0xE0B9 0x5599 #CJK UNIFIED IDEOGRAPH +0xE0BA 0x55EA #CJK UNIFIED IDEOGRAPH +0xE0BB 0x55F7 #CJK UNIFIED IDEOGRAPH +0xE0BC 0x55C9 #CJK UNIFIED IDEOGRAPH +0xE0BD 0x561F #CJK UNIFIED IDEOGRAPH +0xE0BE 0x55D1 #CJK UNIFIED IDEOGRAPH +0xE0BF 0x55EB #CJK UNIFIED IDEOGRAPH +0xE0C0 0x55EC #CJK UNIFIED IDEOGRAPH +0xE0C1 0x55D4 #CJK UNIFIED IDEOGRAPH +0xE0C2 0x55E6 #CJK UNIFIED IDEOGRAPH +0xE0C3 0x55DD #CJK UNIFIED IDEOGRAPH +0xE0C4 0x55C4 #CJK UNIFIED IDEOGRAPH +0xE0C5 0x55EF #CJK UNIFIED IDEOGRAPH +0xE0C6 0x55E5 #CJK UNIFIED IDEOGRAPH +0xE0C7 0x55F2 #CJK UNIFIED IDEOGRAPH +0xE0C8 0x55F3 #CJK UNIFIED IDEOGRAPH +0xE0C9 0x55CC #CJK UNIFIED IDEOGRAPH +0xE0CA 0x55CD #CJK UNIFIED IDEOGRAPH +0xE0CB 0x55E8 #CJK UNIFIED IDEOGRAPH +0xE0CC 0x55F5 #CJK UNIFIED IDEOGRAPH +0xE0CD 0x55E4 #CJK UNIFIED IDEOGRAPH +0xE0CE 0x8F94 #CJK UNIFIED IDEOGRAPH +0xE0CF 0x561E #CJK UNIFIED IDEOGRAPH +0xE0D0 0x5608 #CJK UNIFIED IDEOGRAPH +0xE0D1 0x560C #CJK UNIFIED IDEOGRAPH +0xE0D2 0x5601 #CJK UNIFIED IDEOGRAPH +0xE0D3 0x5624 #CJK UNIFIED IDEOGRAPH +0xE0D4 0x5623 #CJK UNIFIED IDEOGRAPH +0xE0D5 0x55FE #CJK UNIFIED IDEOGRAPH +0xE0D6 0x5600 #CJK UNIFIED IDEOGRAPH +0xE0D7 0x5627 #CJK UNIFIED IDEOGRAPH +0xE0D8 0x562D #CJK UNIFIED IDEOGRAPH +0xE0D9 0x5658 #CJK UNIFIED IDEOGRAPH +0xE0DA 0x5639 #CJK UNIFIED IDEOGRAPH +0xE0DB 0x5657 #CJK UNIFIED IDEOGRAPH +0xE0DC 0x562C #CJK UNIFIED IDEOGRAPH +0xE0DD 0x564D #CJK UNIFIED IDEOGRAPH +0xE0DE 0x5662 #CJK UNIFIED IDEOGRAPH +0xE0DF 0x5659 #CJK UNIFIED IDEOGRAPH +0xE0E0 0x565C #CJK UNIFIED IDEOGRAPH +0xE0E1 0x564C #CJK UNIFIED IDEOGRAPH +0xE0E2 0x5654 #CJK UNIFIED IDEOGRAPH +0xE0E3 0x5686 #CJK UNIFIED IDEOGRAPH +0xE0E4 0x5664 #CJK UNIFIED IDEOGRAPH +0xE0E5 0x5671 #CJK UNIFIED IDEOGRAPH +0xE0E6 0x566B #CJK UNIFIED IDEOGRAPH +0xE0E7 0x567B #CJK UNIFIED IDEOGRAPH +0xE0E8 0x567C #CJK UNIFIED IDEOGRAPH +0xE0E9 0x5685 #CJK UNIFIED IDEOGRAPH +0xE0EA 0x5693 #CJK UNIFIED IDEOGRAPH +0xE0EB 0x56AF #CJK UNIFIED IDEOGRAPH +0xE0EC 0x56D4 #CJK UNIFIED IDEOGRAPH +0xE0ED 0x56D7 #CJK UNIFIED IDEOGRAPH +0xE0EE 0x56DD #CJK UNIFIED IDEOGRAPH +0xE0EF 0x56E1 #CJK UNIFIED IDEOGRAPH +0xE0F0 0x56F5 #CJK UNIFIED IDEOGRAPH +0xE0F1 0x56EB #CJK UNIFIED IDEOGRAPH +0xE0F2 0x56F9 #CJK UNIFIED IDEOGRAPH +0xE0F3 0x56FF #CJK UNIFIED IDEOGRAPH +0xE0F4 0x5704 #CJK UNIFIED IDEOGRAPH +0xE0F5 0x570A #CJK UNIFIED IDEOGRAPH +0xE0F6 0x5709 #CJK UNIFIED IDEOGRAPH +0xE0F7 0x571C #CJK UNIFIED IDEOGRAPH +0xE0F8 0x5E0F #CJK UNIFIED IDEOGRAPH +0xE0F9 0x5E19 #CJK UNIFIED IDEOGRAPH +0xE0FA 0x5E14 #CJK UNIFIED IDEOGRAPH +0xE0FB 0x5E11 #CJK UNIFIED IDEOGRAPH +0xE0FC 0x5E31 #CJK UNIFIED IDEOGRAPH +0xE0FD 0x5E3B #CJK UNIFIED IDEOGRAPH +0xE0FE 0x5E3C #CJK UNIFIED IDEOGRAPH +0xE140 0x9145 #CJK UNIFIED IDEOGRAPH +0xE141 0x9147 #CJK UNIFIED IDEOGRAPH +0xE142 0x9148 #CJK UNIFIED IDEOGRAPH +0xE143 0x9151 #CJK UNIFIED IDEOGRAPH +0xE144 0x9153 #CJK UNIFIED IDEOGRAPH +0xE145 0x9154 #CJK UNIFIED IDEOGRAPH +0xE146 0x9155 #CJK UNIFIED IDEOGRAPH +0xE147 0x9156 #CJK UNIFIED IDEOGRAPH +0xE148 0x9158 #CJK UNIFIED IDEOGRAPH +0xE149 0x9159 #CJK UNIFIED IDEOGRAPH +0xE14A 0x915B #CJK UNIFIED IDEOGRAPH +0xE14B 0x915C #CJK UNIFIED IDEOGRAPH +0xE14C 0x915F #CJK UNIFIED IDEOGRAPH +0xE14D 0x9160 #CJK UNIFIED IDEOGRAPH +0xE14E 0x9166 #CJK UNIFIED IDEOGRAPH +0xE14F 0x9167 #CJK UNIFIED IDEOGRAPH +0xE150 0x9168 #CJK UNIFIED IDEOGRAPH +0xE151 0x916B #CJK UNIFIED IDEOGRAPH +0xE152 0x916D #CJK UNIFIED IDEOGRAPH +0xE153 0x9173 #CJK UNIFIED IDEOGRAPH +0xE154 0x917A #CJK UNIFIED IDEOGRAPH +0xE155 0x917B #CJK UNIFIED IDEOGRAPH +0xE156 0x917C #CJK UNIFIED IDEOGRAPH +0xE157 0x9180 #CJK UNIFIED IDEOGRAPH +0xE158 0x9181 #CJK UNIFIED IDEOGRAPH +0xE159 0x9182 #CJK UNIFIED IDEOGRAPH +0xE15A 0x9183 #CJK UNIFIED IDEOGRAPH +0xE15B 0x9184 #CJK UNIFIED IDEOGRAPH +0xE15C 0x9186 #CJK UNIFIED IDEOGRAPH +0xE15D 0x9188 #CJK UNIFIED IDEOGRAPH +0xE15E 0x918A #CJK UNIFIED IDEOGRAPH +0xE15F 0x918E #CJK UNIFIED IDEOGRAPH +0xE160 0x918F #CJK UNIFIED IDEOGRAPH +0xE161 0x9193 #CJK UNIFIED IDEOGRAPH +0xE162 0x9194 #CJK UNIFIED IDEOGRAPH +0xE163 0x9195 #CJK UNIFIED IDEOGRAPH +0xE164 0x9196 #CJK UNIFIED IDEOGRAPH +0xE165 0x9197 #CJK UNIFIED IDEOGRAPH +0xE166 0x9198 #CJK UNIFIED IDEOGRAPH +0xE167 0x9199 #CJK UNIFIED IDEOGRAPH +0xE168 0x919C #CJK UNIFIED IDEOGRAPH +0xE169 0x919D #CJK UNIFIED IDEOGRAPH +0xE16A 0x919E #CJK UNIFIED IDEOGRAPH +0xE16B 0x919F #CJK UNIFIED IDEOGRAPH +0xE16C 0x91A0 #CJK UNIFIED IDEOGRAPH +0xE16D 0x91A1 #CJK UNIFIED IDEOGRAPH +0xE16E 0x91A4 #CJK UNIFIED IDEOGRAPH +0xE16F 0x91A5 #CJK UNIFIED IDEOGRAPH +0xE170 0x91A6 #CJK UNIFIED IDEOGRAPH +0xE171 0x91A7 #CJK UNIFIED IDEOGRAPH +0xE172 0x91A8 #CJK UNIFIED IDEOGRAPH +0xE173 0x91A9 #CJK UNIFIED IDEOGRAPH +0xE174 0x91AB #CJK UNIFIED IDEOGRAPH +0xE175 0x91AC #CJK UNIFIED IDEOGRAPH +0xE176 0x91B0 #CJK UNIFIED IDEOGRAPH +0xE177 0x91B1 #CJK UNIFIED IDEOGRAPH +0xE178 0x91B2 #CJK UNIFIED IDEOGRAPH +0xE179 0x91B3 #CJK UNIFIED IDEOGRAPH +0xE17A 0x91B6 #CJK UNIFIED IDEOGRAPH +0xE17B 0x91B7 #CJK UNIFIED IDEOGRAPH +0xE17C 0x91B8 #CJK UNIFIED IDEOGRAPH +0xE17D 0x91B9 #CJK UNIFIED IDEOGRAPH +0xE17E 0x91BB #CJK UNIFIED IDEOGRAPH +0xE180 0x91BC #CJK UNIFIED IDEOGRAPH +0xE181 0x91BD #CJK UNIFIED IDEOGRAPH +0xE182 0x91BE #CJK UNIFIED IDEOGRAPH +0xE183 0x91BF #CJK UNIFIED IDEOGRAPH +0xE184 0x91C0 #CJK UNIFIED IDEOGRAPH +0xE185 0x91C1 #CJK UNIFIED IDEOGRAPH +0xE186 0x91C2 #CJK UNIFIED IDEOGRAPH +0xE187 0x91C3 #CJK UNIFIED IDEOGRAPH +0xE188 0x91C4 #CJK UNIFIED IDEOGRAPH +0xE189 0x91C5 #CJK UNIFIED IDEOGRAPH +0xE18A 0x91C6 #CJK UNIFIED IDEOGRAPH +0xE18B 0x91C8 #CJK UNIFIED IDEOGRAPH +0xE18C 0x91CB #CJK UNIFIED IDEOGRAPH +0xE18D 0x91D0 #CJK UNIFIED IDEOGRAPH +0xE18E 0x91D2 #CJK UNIFIED IDEOGRAPH +0xE18F 0x91D3 #CJK UNIFIED IDEOGRAPH +0xE190 0x91D4 #CJK UNIFIED IDEOGRAPH +0xE191 0x91D5 #CJK UNIFIED IDEOGRAPH +0xE192 0x91D6 #CJK UNIFIED IDEOGRAPH +0xE193 0x91D7 #CJK UNIFIED IDEOGRAPH +0xE194 0x91D8 #CJK UNIFIED IDEOGRAPH +0xE195 0x91D9 #CJK UNIFIED IDEOGRAPH +0xE196 0x91DA #CJK UNIFIED IDEOGRAPH +0xE197 0x91DB #CJK UNIFIED IDEOGRAPH +0xE198 0x91DD #CJK UNIFIED IDEOGRAPH +0xE199 0x91DE #CJK UNIFIED IDEOGRAPH +0xE19A 0x91DF #CJK UNIFIED IDEOGRAPH +0xE19B 0x91E0 #CJK UNIFIED IDEOGRAPH +0xE19C 0x91E1 #CJK UNIFIED IDEOGRAPH +0xE19D 0x91E2 #CJK UNIFIED IDEOGRAPH +0xE19E 0x91E3 #CJK UNIFIED IDEOGRAPH +0xE19F 0x91E4 #CJK UNIFIED IDEOGRAPH +0xE1A0 0x91E5 #CJK UNIFIED IDEOGRAPH +0xE1A1 0x5E37 #CJK UNIFIED IDEOGRAPH +0xE1A2 0x5E44 #CJK UNIFIED IDEOGRAPH +0xE1A3 0x5E54 #CJK UNIFIED IDEOGRAPH +0xE1A4 0x5E5B #CJK UNIFIED IDEOGRAPH +0xE1A5 0x5E5E #CJK UNIFIED IDEOGRAPH +0xE1A6 0x5E61 #CJK UNIFIED IDEOGRAPH +0xE1A7 0x5C8C #CJK UNIFIED IDEOGRAPH +0xE1A8 0x5C7A #CJK UNIFIED IDEOGRAPH +0xE1A9 0x5C8D #CJK UNIFIED IDEOGRAPH +0xE1AA 0x5C90 #CJK UNIFIED IDEOGRAPH +0xE1AB 0x5C96 #CJK UNIFIED IDEOGRAPH +0xE1AC 0x5C88 #CJK UNIFIED IDEOGRAPH +0xE1AD 0x5C98 #CJK UNIFIED IDEOGRAPH +0xE1AE 0x5C99 #CJK UNIFIED IDEOGRAPH +0xE1AF 0x5C91 #CJK UNIFIED IDEOGRAPH +0xE1B0 0x5C9A #CJK UNIFIED IDEOGRAPH +0xE1B1 0x5C9C #CJK UNIFIED IDEOGRAPH +0xE1B2 0x5CB5 #CJK UNIFIED IDEOGRAPH +0xE1B3 0x5CA2 #CJK UNIFIED IDEOGRAPH +0xE1B4 0x5CBD #CJK UNIFIED IDEOGRAPH +0xE1B5 0x5CAC #CJK UNIFIED IDEOGRAPH +0xE1B6 0x5CAB #CJK UNIFIED IDEOGRAPH +0xE1B7 0x5CB1 #CJK UNIFIED IDEOGRAPH +0xE1B8 0x5CA3 #CJK UNIFIED IDEOGRAPH +0xE1B9 0x5CC1 #CJK UNIFIED IDEOGRAPH +0xE1BA 0x5CB7 #CJK UNIFIED IDEOGRAPH +0xE1BB 0x5CC4 #CJK UNIFIED IDEOGRAPH +0xE1BC 0x5CD2 #CJK UNIFIED IDEOGRAPH +0xE1BD 0x5CE4 #CJK UNIFIED IDEOGRAPH +0xE1BE 0x5CCB #CJK UNIFIED IDEOGRAPH +0xE1BF 0x5CE5 #CJK UNIFIED IDEOGRAPH +0xE1C0 0x5D02 #CJK UNIFIED IDEOGRAPH +0xE1C1 0x5D03 #CJK UNIFIED IDEOGRAPH +0xE1C2 0x5D27 #CJK UNIFIED IDEOGRAPH +0xE1C3 0x5D26 #CJK UNIFIED IDEOGRAPH +0xE1C4 0x5D2E #CJK UNIFIED IDEOGRAPH +0xE1C5 0x5D24 #CJK UNIFIED IDEOGRAPH +0xE1C6 0x5D1E #CJK UNIFIED IDEOGRAPH +0xE1C7 0x5D06 #CJK UNIFIED IDEOGRAPH +0xE1C8 0x5D1B #CJK UNIFIED IDEOGRAPH +0xE1C9 0x5D58 #CJK UNIFIED IDEOGRAPH +0xE1CA 0x5D3E #CJK UNIFIED IDEOGRAPH +0xE1CB 0x5D34 #CJK UNIFIED IDEOGRAPH +0xE1CC 0x5D3D #CJK UNIFIED IDEOGRAPH +0xE1CD 0x5D6C #CJK UNIFIED IDEOGRAPH +0xE1CE 0x5D5B #CJK UNIFIED IDEOGRAPH +0xE1CF 0x5D6F #CJK UNIFIED IDEOGRAPH +0xE1D0 0x5D5D #CJK UNIFIED IDEOGRAPH +0xE1D1 0x5D6B #CJK UNIFIED IDEOGRAPH +0xE1D2 0x5D4B #CJK UNIFIED IDEOGRAPH +0xE1D3 0x5D4A #CJK UNIFIED IDEOGRAPH +0xE1D4 0x5D69 #CJK UNIFIED IDEOGRAPH +0xE1D5 0x5D74 #CJK UNIFIED IDEOGRAPH +0xE1D6 0x5D82 #CJK UNIFIED IDEOGRAPH +0xE1D7 0x5D99 #CJK UNIFIED IDEOGRAPH +0xE1D8 0x5D9D #CJK UNIFIED IDEOGRAPH +0xE1D9 0x8C73 #CJK UNIFIED IDEOGRAPH +0xE1DA 0x5DB7 #CJK UNIFIED IDEOGRAPH +0xE1DB 0x5DC5 #CJK UNIFIED IDEOGRAPH +0xE1DC 0x5F73 #CJK UNIFIED IDEOGRAPH +0xE1DD 0x5F77 #CJK UNIFIED IDEOGRAPH +0xE1DE 0x5F82 #CJK UNIFIED IDEOGRAPH +0xE1DF 0x5F87 #CJK UNIFIED IDEOGRAPH +0xE1E0 0x5F89 #CJK UNIFIED IDEOGRAPH +0xE1E1 0x5F8C #CJK UNIFIED IDEOGRAPH +0xE1E2 0x5F95 #CJK UNIFIED IDEOGRAPH +0xE1E3 0x5F99 #CJK UNIFIED IDEOGRAPH +0xE1E4 0x5F9C #CJK UNIFIED IDEOGRAPH +0xE1E5 0x5FA8 #CJK UNIFIED IDEOGRAPH +0xE1E6 0x5FAD #CJK UNIFIED IDEOGRAPH +0xE1E7 0x5FB5 #CJK UNIFIED IDEOGRAPH +0xE1E8 0x5FBC #CJK UNIFIED IDEOGRAPH +0xE1E9 0x8862 #CJK UNIFIED IDEOGRAPH +0xE1EA 0x5F61 #CJK UNIFIED IDEOGRAPH +0xE1EB 0x72AD #CJK UNIFIED IDEOGRAPH +0xE1EC 0x72B0 #CJK UNIFIED IDEOGRAPH +0xE1ED 0x72B4 #CJK UNIFIED IDEOGRAPH +0xE1EE 0x72B7 #CJK UNIFIED IDEOGRAPH +0xE1EF 0x72B8 #CJK UNIFIED IDEOGRAPH +0xE1F0 0x72C3 #CJK UNIFIED IDEOGRAPH +0xE1F1 0x72C1 #CJK UNIFIED IDEOGRAPH +0xE1F2 0x72CE #CJK UNIFIED IDEOGRAPH +0xE1F3 0x72CD #CJK UNIFIED IDEOGRAPH +0xE1F4 0x72D2 #CJK UNIFIED IDEOGRAPH +0xE1F5 0x72E8 #CJK UNIFIED IDEOGRAPH +0xE1F6 0x72EF #CJK UNIFIED IDEOGRAPH +0xE1F7 0x72E9 #CJK UNIFIED IDEOGRAPH +0xE1F8 0x72F2 #CJK UNIFIED IDEOGRAPH +0xE1F9 0x72F4 #CJK UNIFIED IDEOGRAPH +0xE1FA 0x72F7 #CJK UNIFIED IDEOGRAPH +0xE1FB 0x7301 #CJK UNIFIED IDEOGRAPH +0xE1FC 0x72F3 #CJK UNIFIED IDEOGRAPH +0xE1FD 0x7303 #CJK UNIFIED IDEOGRAPH +0xE1FE 0x72FA #CJK UNIFIED IDEOGRAPH +0xE240 0x91E6 #CJK UNIFIED IDEOGRAPH +0xE241 0x91E7 #CJK UNIFIED IDEOGRAPH +0xE242 0x91E8 #CJK UNIFIED IDEOGRAPH +0xE243 0x91E9 #CJK UNIFIED IDEOGRAPH +0xE244 0x91EA #CJK UNIFIED IDEOGRAPH +0xE245 0x91EB #CJK UNIFIED IDEOGRAPH +0xE246 0x91EC #CJK UNIFIED IDEOGRAPH +0xE247 0x91ED #CJK UNIFIED IDEOGRAPH +0xE248 0x91EE #CJK UNIFIED IDEOGRAPH +0xE249 0x91EF #CJK UNIFIED IDEOGRAPH +0xE24A 0x91F0 #CJK UNIFIED IDEOGRAPH +0xE24B 0x91F1 #CJK UNIFIED IDEOGRAPH +0xE24C 0x91F2 #CJK UNIFIED IDEOGRAPH +0xE24D 0x91F3 #CJK UNIFIED IDEOGRAPH +0xE24E 0x91F4 #CJK UNIFIED IDEOGRAPH +0xE24F 0x91F5 #CJK UNIFIED IDEOGRAPH +0xE250 0x91F6 #CJK UNIFIED IDEOGRAPH +0xE251 0x91F7 #CJK UNIFIED IDEOGRAPH +0xE252 0x91F8 #CJK UNIFIED IDEOGRAPH +0xE253 0x91F9 #CJK UNIFIED IDEOGRAPH +0xE254 0x91FA #CJK UNIFIED IDEOGRAPH +0xE255 0x91FB #CJK UNIFIED IDEOGRAPH +0xE256 0x91FC #CJK UNIFIED IDEOGRAPH +0xE257 0x91FD #CJK UNIFIED IDEOGRAPH +0xE258 0x91FE #CJK UNIFIED IDEOGRAPH +0xE259 0x91FF #CJK UNIFIED IDEOGRAPH +0xE25A 0x9200 #CJK UNIFIED IDEOGRAPH +0xE25B 0x9201 #CJK UNIFIED IDEOGRAPH +0xE25C 0x9202 #CJK UNIFIED IDEOGRAPH +0xE25D 0x9203 #CJK UNIFIED IDEOGRAPH +0xE25E 0x9204 #CJK UNIFIED IDEOGRAPH +0xE25F 0x9205 #CJK UNIFIED IDEOGRAPH +0xE260 0x9206 #CJK UNIFIED IDEOGRAPH +0xE261 0x9207 #CJK UNIFIED IDEOGRAPH +0xE262 0x9208 #CJK UNIFIED IDEOGRAPH +0xE263 0x9209 #CJK UNIFIED IDEOGRAPH +0xE264 0x920A #CJK UNIFIED IDEOGRAPH +0xE265 0x920B #CJK UNIFIED IDEOGRAPH +0xE266 0x920C #CJK UNIFIED IDEOGRAPH +0xE267 0x920D #CJK UNIFIED IDEOGRAPH +0xE268 0x920E #CJK UNIFIED IDEOGRAPH +0xE269 0x920F #CJK UNIFIED IDEOGRAPH +0xE26A 0x9210 #CJK UNIFIED IDEOGRAPH +0xE26B 0x9211 #CJK UNIFIED IDEOGRAPH +0xE26C 0x9212 #CJK UNIFIED IDEOGRAPH +0xE26D 0x9213 #CJK UNIFIED IDEOGRAPH +0xE26E 0x9214 #CJK UNIFIED IDEOGRAPH +0xE26F 0x9215 #CJK UNIFIED IDEOGRAPH +0xE270 0x9216 #CJK UNIFIED IDEOGRAPH +0xE271 0x9217 #CJK UNIFIED IDEOGRAPH +0xE272 0x9218 #CJK UNIFIED IDEOGRAPH +0xE273 0x9219 #CJK UNIFIED IDEOGRAPH +0xE274 0x921A #CJK UNIFIED IDEOGRAPH +0xE275 0x921B #CJK UNIFIED IDEOGRAPH +0xE276 0x921C #CJK UNIFIED IDEOGRAPH +0xE277 0x921D #CJK UNIFIED IDEOGRAPH +0xE278 0x921E #CJK UNIFIED IDEOGRAPH +0xE279 0x921F #CJK UNIFIED IDEOGRAPH +0xE27A 0x9220 #CJK UNIFIED IDEOGRAPH +0xE27B 0x9221 #CJK UNIFIED IDEOGRAPH +0xE27C 0x9222 #CJK UNIFIED IDEOGRAPH +0xE27D 0x9223 #CJK UNIFIED IDEOGRAPH +0xE27E 0x9224 #CJK UNIFIED IDEOGRAPH +0xE280 0x9225 #CJK UNIFIED IDEOGRAPH +0xE281 0x9226 #CJK UNIFIED IDEOGRAPH +0xE282 0x9227 #CJK UNIFIED IDEOGRAPH +0xE283 0x9228 #CJK UNIFIED IDEOGRAPH +0xE284 0x9229 #CJK UNIFIED IDEOGRAPH +0xE285 0x922A #CJK UNIFIED IDEOGRAPH +0xE286 0x922B #CJK UNIFIED IDEOGRAPH +0xE287 0x922C #CJK UNIFIED IDEOGRAPH +0xE288 0x922D #CJK UNIFIED IDEOGRAPH +0xE289 0x922E #CJK UNIFIED IDEOGRAPH +0xE28A 0x922F #CJK UNIFIED IDEOGRAPH +0xE28B 0x9230 #CJK UNIFIED IDEOGRAPH +0xE28C 0x9231 #CJK UNIFIED IDEOGRAPH +0xE28D 0x9232 #CJK UNIFIED IDEOGRAPH +0xE28E 0x9233 #CJK UNIFIED IDEOGRAPH +0xE28F 0x9234 #CJK UNIFIED IDEOGRAPH +0xE290 0x9235 #CJK UNIFIED IDEOGRAPH +0xE291 0x9236 #CJK UNIFIED IDEOGRAPH +0xE292 0x9237 #CJK UNIFIED IDEOGRAPH +0xE293 0x9238 #CJK UNIFIED IDEOGRAPH +0xE294 0x9239 #CJK UNIFIED IDEOGRAPH +0xE295 0x923A #CJK UNIFIED IDEOGRAPH +0xE296 0x923B #CJK UNIFIED IDEOGRAPH +0xE297 0x923C #CJK UNIFIED IDEOGRAPH +0xE298 0x923D #CJK UNIFIED IDEOGRAPH +0xE299 0x923E #CJK UNIFIED IDEOGRAPH +0xE29A 0x923F #CJK UNIFIED IDEOGRAPH +0xE29B 0x9240 #CJK UNIFIED IDEOGRAPH +0xE29C 0x9241 #CJK UNIFIED IDEOGRAPH +0xE29D 0x9242 #CJK UNIFIED IDEOGRAPH +0xE29E 0x9243 #CJK UNIFIED IDEOGRAPH +0xE29F 0x9244 #CJK UNIFIED IDEOGRAPH +0xE2A0 0x9245 #CJK UNIFIED IDEOGRAPH +0xE2A1 0x72FB #CJK UNIFIED IDEOGRAPH +0xE2A2 0x7317 #CJK UNIFIED IDEOGRAPH +0xE2A3 0x7313 #CJK UNIFIED IDEOGRAPH +0xE2A4 0x7321 #CJK UNIFIED IDEOGRAPH +0xE2A5 0x730A #CJK UNIFIED IDEOGRAPH +0xE2A6 0x731E #CJK UNIFIED IDEOGRAPH +0xE2A7 0x731D #CJK UNIFIED IDEOGRAPH +0xE2A8 0x7315 #CJK UNIFIED IDEOGRAPH +0xE2A9 0x7322 #CJK UNIFIED IDEOGRAPH +0xE2AA 0x7339 #CJK UNIFIED IDEOGRAPH +0xE2AB 0x7325 #CJK UNIFIED IDEOGRAPH +0xE2AC 0x732C #CJK UNIFIED IDEOGRAPH +0xE2AD 0x7338 #CJK UNIFIED IDEOGRAPH +0xE2AE 0x7331 #CJK UNIFIED IDEOGRAPH +0xE2AF 0x7350 #CJK UNIFIED IDEOGRAPH +0xE2B0 0x734D #CJK UNIFIED IDEOGRAPH +0xE2B1 0x7357 #CJK UNIFIED IDEOGRAPH +0xE2B2 0x7360 #CJK UNIFIED IDEOGRAPH +0xE2B3 0x736C #CJK UNIFIED IDEOGRAPH +0xE2B4 0x736F #CJK UNIFIED IDEOGRAPH +0xE2B5 0x737E #CJK UNIFIED IDEOGRAPH +0xE2B6 0x821B #CJK UNIFIED IDEOGRAPH +0xE2B7 0x5925 #CJK UNIFIED IDEOGRAPH +0xE2B8 0x98E7 #CJK UNIFIED IDEOGRAPH +0xE2B9 0x5924 #CJK UNIFIED IDEOGRAPH +0xE2BA 0x5902 #CJK UNIFIED IDEOGRAPH +0xE2BB 0x9963 #CJK UNIFIED IDEOGRAPH +0xE2BC 0x9967 #CJK UNIFIED IDEOGRAPH +0xE2BD 0x9968 #CJK UNIFIED IDEOGRAPH +0xE2BE 0x9969 #CJK UNIFIED IDEOGRAPH +0xE2BF 0x996A #CJK UNIFIED IDEOGRAPH +0xE2C0 0x996B #CJK UNIFIED IDEOGRAPH +0xE2C1 0x996C #CJK UNIFIED IDEOGRAPH +0xE2C2 0x9974 #CJK UNIFIED IDEOGRAPH +0xE2C3 0x9977 #CJK UNIFIED IDEOGRAPH +0xE2C4 0x997D #CJK UNIFIED IDEOGRAPH +0xE2C5 0x9980 #CJK UNIFIED IDEOGRAPH +0xE2C6 0x9984 #CJK UNIFIED IDEOGRAPH +0xE2C7 0x9987 #CJK UNIFIED IDEOGRAPH +0xE2C8 0x998A #CJK UNIFIED IDEOGRAPH +0xE2C9 0x998D #CJK UNIFIED IDEOGRAPH +0xE2CA 0x9990 #CJK UNIFIED IDEOGRAPH +0xE2CB 0x9991 #CJK UNIFIED IDEOGRAPH +0xE2CC 0x9993 #CJK UNIFIED IDEOGRAPH +0xE2CD 0x9994 #CJK UNIFIED IDEOGRAPH +0xE2CE 0x9995 #CJK UNIFIED IDEOGRAPH +0xE2CF 0x5E80 #CJK UNIFIED IDEOGRAPH +0xE2D0 0x5E91 #CJK UNIFIED IDEOGRAPH +0xE2D1 0x5E8B #CJK UNIFIED IDEOGRAPH +0xE2D2 0x5E96 #CJK UNIFIED IDEOGRAPH +0xE2D3 0x5EA5 #CJK UNIFIED IDEOGRAPH +0xE2D4 0x5EA0 #CJK UNIFIED IDEOGRAPH +0xE2D5 0x5EB9 #CJK UNIFIED IDEOGRAPH +0xE2D6 0x5EB5 #CJK UNIFIED IDEOGRAPH +0xE2D7 0x5EBE #CJK UNIFIED IDEOGRAPH +0xE2D8 0x5EB3 #CJK UNIFIED IDEOGRAPH +0xE2D9 0x8D53 #CJK UNIFIED IDEOGRAPH +0xE2DA 0x5ED2 #CJK UNIFIED IDEOGRAPH +0xE2DB 0x5ED1 #CJK UNIFIED IDEOGRAPH +0xE2DC 0x5EDB #CJK UNIFIED IDEOGRAPH +0xE2DD 0x5EE8 #CJK UNIFIED IDEOGRAPH +0xE2DE 0x5EEA #CJK UNIFIED IDEOGRAPH +0xE2DF 0x81BA #CJK UNIFIED IDEOGRAPH +0xE2E0 0x5FC4 #CJK UNIFIED IDEOGRAPH +0xE2E1 0x5FC9 #CJK UNIFIED IDEOGRAPH +0xE2E2 0x5FD6 #CJK UNIFIED IDEOGRAPH +0xE2E3 0x5FCF #CJK UNIFIED IDEOGRAPH +0xE2E4 0x6003 #CJK UNIFIED IDEOGRAPH +0xE2E5 0x5FEE #CJK UNIFIED IDEOGRAPH +0xE2E6 0x6004 #CJK UNIFIED IDEOGRAPH +0xE2E7 0x5FE1 #CJK UNIFIED IDEOGRAPH +0xE2E8 0x5FE4 #CJK UNIFIED IDEOGRAPH +0xE2E9 0x5FFE #CJK UNIFIED IDEOGRAPH +0xE2EA 0x6005 #CJK UNIFIED IDEOGRAPH +0xE2EB 0x6006 #CJK UNIFIED IDEOGRAPH +0xE2EC 0x5FEA #CJK UNIFIED IDEOGRAPH +0xE2ED 0x5FED #CJK UNIFIED IDEOGRAPH +0xE2EE 0x5FF8 #CJK UNIFIED IDEOGRAPH +0xE2EF 0x6019 #CJK UNIFIED IDEOGRAPH +0xE2F0 0x6035 #CJK UNIFIED IDEOGRAPH +0xE2F1 0x6026 #CJK UNIFIED IDEOGRAPH +0xE2F2 0x601B #CJK UNIFIED IDEOGRAPH +0xE2F3 0x600F #CJK UNIFIED IDEOGRAPH +0xE2F4 0x600D #CJK UNIFIED IDEOGRAPH +0xE2F5 0x6029 #CJK UNIFIED IDEOGRAPH +0xE2F6 0x602B #CJK UNIFIED IDEOGRAPH +0xE2F7 0x600A #CJK UNIFIED IDEOGRAPH +0xE2F8 0x603F #CJK UNIFIED IDEOGRAPH +0xE2F9 0x6021 #CJK UNIFIED IDEOGRAPH +0xE2FA 0x6078 #CJK UNIFIED IDEOGRAPH +0xE2FB 0x6079 #CJK UNIFIED IDEOGRAPH +0xE2FC 0x607B #CJK UNIFIED IDEOGRAPH +0xE2FD 0x607A #CJK UNIFIED IDEOGRAPH +0xE2FE 0x6042 #CJK UNIFIED IDEOGRAPH +0xE340 0x9246 #CJK UNIFIED IDEOGRAPH +0xE341 0x9247 #CJK UNIFIED IDEOGRAPH +0xE342 0x9248 #CJK UNIFIED IDEOGRAPH +0xE343 0x9249 #CJK UNIFIED IDEOGRAPH +0xE344 0x924A #CJK UNIFIED IDEOGRAPH +0xE345 0x924B #CJK UNIFIED IDEOGRAPH +0xE346 0x924C #CJK UNIFIED IDEOGRAPH +0xE347 0x924D #CJK UNIFIED IDEOGRAPH +0xE348 0x924E #CJK UNIFIED IDEOGRAPH +0xE349 0x924F #CJK UNIFIED IDEOGRAPH +0xE34A 0x9250 #CJK UNIFIED IDEOGRAPH +0xE34B 0x9251 #CJK UNIFIED IDEOGRAPH +0xE34C 0x9252 #CJK UNIFIED IDEOGRAPH +0xE34D 0x9253 #CJK UNIFIED IDEOGRAPH +0xE34E 0x9254 #CJK UNIFIED IDEOGRAPH +0xE34F 0x9255 #CJK UNIFIED IDEOGRAPH +0xE350 0x9256 #CJK UNIFIED IDEOGRAPH +0xE351 0x9257 #CJK UNIFIED IDEOGRAPH +0xE352 0x9258 #CJK UNIFIED IDEOGRAPH +0xE353 0x9259 #CJK UNIFIED IDEOGRAPH +0xE354 0x925A #CJK UNIFIED IDEOGRAPH +0xE355 0x925B #CJK UNIFIED IDEOGRAPH +0xE356 0x925C #CJK UNIFIED IDEOGRAPH +0xE357 0x925D #CJK UNIFIED IDEOGRAPH +0xE358 0x925E #CJK UNIFIED IDEOGRAPH +0xE359 0x925F #CJK UNIFIED IDEOGRAPH +0xE35A 0x9260 #CJK UNIFIED IDEOGRAPH +0xE35B 0x9261 #CJK UNIFIED IDEOGRAPH +0xE35C 0x9262 #CJK UNIFIED IDEOGRAPH +0xE35D 0x9263 #CJK UNIFIED IDEOGRAPH +0xE35E 0x9264 #CJK UNIFIED IDEOGRAPH +0xE35F 0x9265 #CJK UNIFIED IDEOGRAPH +0xE360 0x9266 #CJK UNIFIED IDEOGRAPH +0xE361 0x9267 #CJK UNIFIED IDEOGRAPH +0xE362 0x9268 #CJK UNIFIED IDEOGRAPH +0xE363 0x9269 #CJK UNIFIED IDEOGRAPH +0xE364 0x926A #CJK UNIFIED IDEOGRAPH +0xE365 0x926B #CJK UNIFIED IDEOGRAPH +0xE366 0x926C #CJK UNIFIED IDEOGRAPH +0xE367 0x926D #CJK UNIFIED IDEOGRAPH +0xE368 0x926E #CJK UNIFIED IDEOGRAPH +0xE369 0x926F #CJK UNIFIED IDEOGRAPH +0xE36A 0x9270 #CJK UNIFIED IDEOGRAPH +0xE36B 0x9271 #CJK UNIFIED IDEOGRAPH +0xE36C 0x9272 #CJK UNIFIED IDEOGRAPH +0xE36D 0x9273 #CJK UNIFIED IDEOGRAPH +0xE36E 0x9275 #CJK UNIFIED IDEOGRAPH +0xE36F 0x9276 #CJK UNIFIED IDEOGRAPH +0xE370 0x9277 #CJK UNIFIED IDEOGRAPH +0xE371 0x9278 #CJK UNIFIED IDEOGRAPH +0xE372 0x9279 #CJK UNIFIED IDEOGRAPH +0xE373 0x927A #CJK UNIFIED IDEOGRAPH +0xE374 0x927B #CJK UNIFIED IDEOGRAPH +0xE375 0x927C #CJK UNIFIED IDEOGRAPH +0xE376 0x927D #CJK UNIFIED IDEOGRAPH +0xE377 0x927E #CJK UNIFIED IDEOGRAPH +0xE378 0x927F #CJK UNIFIED IDEOGRAPH +0xE379 0x9280 #CJK UNIFIED IDEOGRAPH +0xE37A 0x9281 #CJK UNIFIED IDEOGRAPH +0xE37B 0x9282 #CJK UNIFIED IDEOGRAPH +0xE37C 0x9283 #CJK UNIFIED IDEOGRAPH +0xE37D 0x9284 #CJK UNIFIED IDEOGRAPH +0xE37E 0x9285 #CJK UNIFIED IDEOGRAPH +0xE380 0x9286 #CJK UNIFIED IDEOGRAPH +0xE381 0x9287 #CJK UNIFIED IDEOGRAPH +0xE382 0x9288 #CJK UNIFIED IDEOGRAPH +0xE383 0x9289 #CJK UNIFIED IDEOGRAPH +0xE384 0x928A #CJK UNIFIED IDEOGRAPH +0xE385 0x928B #CJK UNIFIED IDEOGRAPH +0xE386 0x928C #CJK UNIFIED IDEOGRAPH +0xE387 0x928D #CJK UNIFIED IDEOGRAPH +0xE388 0x928F #CJK UNIFIED IDEOGRAPH +0xE389 0x9290 #CJK UNIFIED IDEOGRAPH +0xE38A 0x9291 #CJK UNIFIED IDEOGRAPH +0xE38B 0x9292 #CJK UNIFIED IDEOGRAPH +0xE38C 0x9293 #CJK UNIFIED IDEOGRAPH +0xE38D 0x9294 #CJK UNIFIED IDEOGRAPH +0xE38E 0x9295 #CJK UNIFIED IDEOGRAPH +0xE38F 0x9296 #CJK UNIFIED IDEOGRAPH +0xE390 0x9297 #CJK UNIFIED IDEOGRAPH +0xE391 0x9298 #CJK UNIFIED IDEOGRAPH +0xE392 0x9299 #CJK UNIFIED IDEOGRAPH +0xE393 0x929A #CJK UNIFIED IDEOGRAPH +0xE394 0x929B #CJK UNIFIED IDEOGRAPH +0xE395 0x929C #CJK UNIFIED IDEOGRAPH +0xE396 0x929D #CJK UNIFIED IDEOGRAPH +0xE397 0x929E #CJK UNIFIED IDEOGRAPH +0xE398 0x929F #CJK UNIFIED IDEOGRAPH +0xE399 0x92A0 #CJK UNIFIED IDEOGRAPH +0xE39A 0x92A1 #CJK UNIFIED IDEOGRAPH +0xE39B 0x92A2 #CJK UNIFIED IDEOGRAPH +0xE39C 0x92A3 #CJK UNIFIED IDEOGRAPH +0xE39D 0x92A4 #CJK UNIFIED IDEOGRAPH +0xE39E 0x92A5 #CJK UNIFIED IDEOGRAPH +0xE39F 0x92A6 #CJK UNIFIED IDEOGRAPH +0xE3A0 0x92A7 #CJK UNIFIED IDEOGRAPH +0xE3A1 0x606A #CJK UNIFIED IDEOGRAPH +0xE3A2 0x607D #CJK UNIFIED IDEOGRAPH +0xE3A3 0x6096 #CJK UNIFIED IDEOGRAPH +0xE3A4 0x609A #CJK UNIFIED IDEOGRAPH +0xE3A5 0x60AD #CJK UNIFIED IDEOGRAPH +0xE3A6 0x609D #CJK UNIFIED IDEOGRAPH +0xE3A7 0x6083 #CJK UNIFIED IDEOGRAPH +0xE3A8 0x6092 #CJK UNIFIED IDEOGRAPH +0xE3A9 0x608C #CJK UNIFIED IDEOGRAPH +0xE3AA 0x609B #CJK UNIFIED IDEOGRAPH +0xE3AB 0x60EC #CJK UNIFIED IDEOGRAPH +0xE3AC 0x60BB #CJK UNIFIED IDEOGRAPH +0xE3AD 0x60B1 #CJK UNIFIED IDEOGRAPH +0xE3AE 0x60DD #CJK UNIFIED IDEOGRAPH +0xE3AF 0x60D8 #CJK UNIFIED IDEOGRAPH +0xE3B0 0x60C6 #CJK UNIFIED IDEOGRAPH +0xE3B1 0x60DA #CJK UNIFIED IDEOGRAPH +0xE3B2 0x60B4 #CJK UNIFIED IDEOGRAPH +0xE3B3 0x6120 #CJK UNIFIED IDEOGRAPH +0xE3B4 0x6126 #CJK UNIFIED IDEOGRAPH +0xE3B5 0x6115 #CJK UNIFIED IDEOGRAPH +0xE3B6 0x6123 #CJK UNIFIED IDEOGRAPH +0xE3B7 0x60F4 #CJK UNIFIED IDEOGRAPH +0xE3B8 0x6100 #CJK UNIFIED IDEOGRAPH +0xE3B9 0x610E #CJK UNIFIED IDEOGRAPH +0xE3BA 0x612B #CJK UNIFIED IDEOGRAPH +0xE3BB 0x614A #CJK UNIFIED IDEOGRAPH +0xE3BC 0x6175 #CJK UNIFIED IDEOGRAPH +0xE3BD 0x61AC #CJK UNIFIED IDEOGRAPH +0xE3BE 0x6194 #CJK UNIFIED IDEOGRAPH +0xE3BF 0x61A7 #CJK UNIFIED IDEOGRAPH +0xE3C0 0x61B7 #CJK UNIFIED IDEOGRAPH +0xE3C1 0x61D4 #CJK UNIFIED IDEOGRAPH +0xE3C2 0x61F5 #CJK UNIFIED IDEOGRAPH +0xE3C3 0x5FDD #CJK UNIFIED IDEOGRAPH +0xE3C4 0x96B3 #CJK UNIFIED IDEOGRAPH +0xE3C5 0x95E9 #CJK UNIFIED IDEOGRAPH +0xE3C6 0x95EB #CJK UNIFIED IDEOGRAPH +0xE3C7 0x95F1 #CJK UNIFIED IDEOGRAPH +0xE3C8 0x95F3 #CJK UNIFIED IDEOGRAPH +0xE3C9 0x95F5 #CJK UNIFIED IDEOGRAPH +0xE3CA 0x95F6 #CJK UNIFIED IDEOGRAPH +0xE3CB 0x95FC #CJK UNIFIED IDEOGRAPH +0xE3CC 0x95FE #CJK UNIFIED IDEOGRAPH +0xE3CD 0x9603 #CJK UNIFIED IDEOGRAPH +0xE3CE 0x9604 #CJK UNIFIED IDEOGRAPH +0xE3CF 0x9606 #CJK UNIFIED IDEOGRAPH +0xE3D0 0x9608 #CJK UNIFIED IDEOGRAPH +0xE3D1 0x960A #CJK UNIFIED IDEOGRAPH +0xE3D2 0x960B #CJK UNIFIED IDEOGRAPH +0xE3D3 0x960C #CJK UNIFIED IDEOGRAPH +0xE3D4 0x960D #CJK UNIFIED IDEOGRAPH +0xE3D5 0x960F #CJK UNIFIED IDEOGRAPH +0xE3D6 0x9612 #CJK UNIFIED IDEOGRAPH +0xE3D7 0x9615 #CJK UNIFIED IDEOGRAPH +0xE3D8 0x9616 #CJK UNIFIED IDEOGRAPH +0xE3D9 0x9617 #CJK UNIFIED IDEOGRAPH +0xE3DA 0x9619 #CJK UNIFIED IDEOGRAPH +0xE3DB 0x961A #CJK UNIFIED IDEOGRAPH +0xE3DC 0x4E2C #CJK UNIFIED IDEOGRAPH +0xE3DD 0x723F #CJK UNIFIED IDEOGRAPH +0xE3DE 0x6215 #CJK UNIFIED IDEOGRAPH +0xE3DF 0x6C35 #CJK UNIFIED IDEOGRAPH +0xE3E0 0x6C54 #CJK UNIFIED IDEOGRAPH +0xE3E1 0x6C5C #CJK UNIFIED IDEOGRAPH +0xE3E2 0x6C4A #CJK UNIFIED IDEOGRAPH +0xE3E3 0x6CA3 #CJK UNIFIED IDEOGRAPH +0xE3E4 0x6C85 #CJK UNIFIED IDEOGRAPH +0xE3E5 0x6C90 #CJK UNIFIED IDEOGRAPH +0xE3E6 0x6C94 #CJK UNIFIED IDEOGRAPH +0xE3E7 0x6C8C #CJK UNIFIED IDEOGRAPH +0xE3E8 0x6C68 #CJK UNIFIED IDEOGRAPH +0xE3E9 0x6C69 #CJK UNIFIED IDEOGRAPH +0xE3EA 0x6C74 #CJK UNIFIED IDEOGRAPH +0xE3EB 0x6C76 #CJK UNIFIED IDEOGRAPH +0xE3EC 0x6C86 #CJK UNIFIED IDEOGRAPH +0xE3ED 0x6CA9 #CJK UNIFIED IDEOGRAPH +0xE3EE 0x6CD0 #CJK UNIFIED IDEOGRAPH +0xE3EF 0x6CD4 #CJK UNIFIED IDEOGRAPH +0xE3F0 0x6CAD #CJK UNIFIED IDEOGRAPH +0xE3F1 0x6CF7 #CJK UNIFIED IDEOGRAPH +0xE3F2 0x6CF8 #CJK UNIFIED IDEOGRAPH +0xE3F3 0x6CF1 #CJK UNIFIED IDEOGRAPH +0xE3F4 0x6CD7 #CJK UNIFIED IDEOGRAPH +0xE3F5 0x6CB2 #CJK UNIFIED IDEOGRAPH +0xE3F6 0x6CE0 #CJK UNIFIED IDEOGRAPH +0xE3F7 0x6CD6 #CJK UNIFIED IDEOGRAPH +0xE3F8 0x6CFA #CJK UNIFIED IDEOGRAPH +0xE3F9 0x6CEB #CJK UNIFIED IDEOGRAPH +0xE3FA 0x6CEE #CJK UNIFIED IDEOGRAPH +0xE3FB 0x6CB1 #CJK UNIFIED IDEOGRAPH +0xE3FC 0x6CD3 #CJK UNIFIED IDEOGRAPH +0xE3FD 0x6CEF #CJK UNIFIED IDEOGRAPH +0xE3FE 0x6CFE #CJK UNIFIED IDEOGRAPH +0xE440 0x92A8 #CJK UNIFIED IDEOGRAPH +0xE441 0x92A9 #CJK UNIFIED IDEOGRAPH +0xE442 0x92AA #CJK UNIFIED IDEOGRAPH +0xE443 0x92AB #CJK UNIFIED IDEOGRAPH +0xE444 0x92AC #CJK UNIFIED IDEOGRAPH +0xE445 0x92AD #CJK UNIFIED IDEOGRAPH +0xE446 0x92AF #CJK UNIFIED IDEOGRAPH +0xE447 0x92B0 #CJK UNIFIED IDEOGRAPH +0xE448 0x92B1 #CJK UNIFIED IDEOGRAPH +0xE449 0x92B2 #CJK UNIFIED IDEOGRAPH +0xE44A 0x92B3 #CJK UNIFIED IDEOGRAPH +0xE44B 0x92B4 #CJK UNIFIED IDEOGRAPH +0xE44C 0x92B5 #CJK UNIFIED IDEOGRAPH +0xE44D 0x92B6 #CJK UNIFIED IDEOGRAPH +0xE44E 0x92B7 #CJK UNIFIED IDEOGRAPH +0xE44F 0x92B8 #CJK UNIFIED IDEOGRAPH +0xE450 0x92B9 #CJK UNIFIED IDEOGRAPH +0xE451 0x92BA #CJK UNIFIED IDEOGRAPH +0xE452 0x92BB #CJK UNIFIED IDEOGRAPH +0xE453 0x92BC #CJK UNIFIED IDEOGRAPH +0xE454 0x92BD #CJK UNIFIED IDEOGRAPH +0xE455 0x92BE #CJK UNIFIED IDEOGRAPH +0xE456 0x92BF #CJK UNIFIED IDEOGRAPH +0xE457 0x92C0 #CJK UNIFIED IDEOGRAPH +0xE458 0x92C1 #CJK UNIFIED IDEOGRAPH +0xE459 0x92C2 #CJK UNIFIED IDEOGRAPH +0xE45A 0x92C3 #CJK UNIFIED IDEOGRAPH +0xE45B 0x92C4 #CJK UNIFIED IDEOGRAPH +0xE45C 0x92C5 #CJK UNIFIED IDEOGRAPH +0xE45D 0x92C6 #CJK UNIFIED IDEOGRAPH +0xE45E 0x92C7 #CJK UNIFIED IDEOGRAPH +0xE45F 0x92C9 #CJK UNIFIED IDEOGRAPH +0xE460 0x92CA #CJK UNIFIED IDEOGRAPH +0xE461 0x92CB #CJK UNIFIED IDEOGRAPH +0xE462 0x92CC #CJK UNIFIED IDEOGRAPH +0xE463 0x92CD #CJK UNIFIED IDEOGRAPH +0xE464 0x92CE #CJK UNIFIED IDEOGRAPH +0xE465 0x92CF #CJK UNIFIED IDEOGRAPH +0xE466 0x92D0 #CJK UNIFIED IDEOGRAPH +0xE467 0x92D1 #CJK UNIFIED IDEOGRAPH +0xE468 0x92D2 #CJK UNIFIED IDEOGRAPH +0xE469 0x92D3 #CJK UNIFIED IDEOGRAPH +0xE46A 0x92D4 #CJK UNIFIED IDEOGRAPH +0xE46B 0x92D5 #CJK UNIFIED IDEOGRAPH +0xE46C 0x92D6 #CJK UNIFIED IDEOGRAPH +0xE46D 0x92D7 #CJK UNIFIED IDEOGRAPH +0xE46E 0x92D8 #CJK UNIFIED IDEOGRAPH +0xE46F 0x92D9 #CJK UNIFIED IDEOGRAPH +0xE470 0x92DA #CJK UNIFIED IDEOGRAPH +0xE471 0x92DB #CJK UNIFIED IDEOGRAPH +0xE472 0x92DC #CJK UNIFIED IDEOGRAPH +0xE473 0x92DD #CJK UNIFIED IDEOGRAPH +0xE474 0x92DE #CJK UNIFIED IDEOGRAPH +0xE475 0x92DF #CJK UNIFIED IDEOGRAPH +0xE476 0x92E0 #CJK UNIFIED IDEOGRAPH +0xE477 0x92E1 #CJK UNIFIED IDEOGRAPH +0xE478 0x92E2 #CJK UNIFIED IDEOGRAPH +0xE479 0x92E3 #CJK UNIFIED IDEOGRAPH +0xE47A 0x92E4 #CJK UNIFIED IDEOGRAPH +0xE47B 0x92E5 #CJK UNIFIED IDEOGRAPH +0xE47C 0x92E6 #CJK UNIFIED IDEOGRAPH +0xE47D 0x92E7 #CJK UNIFIED IDEOGRAPH +0xE47E 0x92E8 #CJK UNIFIED IDEOGRAPH +0xE480 0x92E9 #CJK UNIFIED IDEOGRAPH +0xE481 0x92EA #CJK UNIFIED IDEOGRAPH +0xE482 0x92EB #CJK UNIFIED IDEOGRAPH +0xE483 0x92EC #CJK UNIFIED IDEOGRAPH +0xE484 0x92ED #CJK UNIFIED IDEOGRAPH +0xE485 0x92EE #CJK UNIFIED IDEOGRAPH +0xE486 0x92EF #CJK UNIFIED IDEOGRAPH +0xE487 0x92F0 #CJK UNIFIED IDEOGRAPH +0xE488 0x92F1 #CJK UNIFIED IDEOGRAPH +0xE489 0x92F2 #CJK UNIFIED IDEOGRAPH +0xE48A 0x92F3 #CJK UNIFIED IDEOGRAPH +0xE48B 0x92F4 #CJK UNIFIED IDEOGRAPH +0xE48C 0x92F5 #CJK UNIFIED IDEOGRAPH +0xE48D 0x92F6 #CJK UNIFIED IDEOGRAPH +0xE48E 0x92F7 #CJK UNIFIED IDEOGRAPH +0xE48F 0x92F8 #CJK UNIFIED IDEOGRAPH +0xE490 0x92F9 #CJK UNIFIED IDEOGRAPH +0xE491 0x92FA #CJK UNIFIED IDEOGRAPH +0xE492 0x92FB #CJK UNIFIED IDEOGRAPH +0xE493 0x92FC #CJK UNIFIED IDEOGRAPH +0xE494 0x92FD #CJK UNIFIED IDEOGRAPH +0xE495 0x92FE #CJK UNIFIED IDEOGRAPH +0xE496 0x92FF #CJK UNIFIED IDEOGRAPH +0xE497 0x9300 #CJK UNIFIED IDEOGRAPH +0xE498 0x9301 #CJK UNIFIED IDEOGRAPH +0xE499 0x9302 #CJK UNIFIED IDEOGRAPH +0xE49A 0x9303 #CJK UNIFIED IDEOGRAPH +0xE49B 0x9304 #CJK UNIFIED IDEOGRAPH +0xE49C 0x9305 #CJK UNIFIED IDEOGRAPH +0xE49D 0x9306 #CJK UNIFIED IDEOGRAPH +0xE49E 0x9307 #CJK UNIFIED IDEOGRAPH +0xE49F 0x9308 #CJK UNIFIED IDEOGRAPH +0xE4A0 0x9309 #CJK UNIFIED IDEOGRAPH +0xE4A1 0x6D39 #CJK UNIFIED IDEOGRAPH +0xE4A2 0x6D27 #CJK UNIFIED IDEOGRAPH +0xE4A3 0x6D0C #CJK UNIFIED IDEOGRAPH +0xE4A4 0x6D43 #CJK UNIFIED IDEOGRAPH +0xE4A5 0x6D48 #CJK UNIFIED IDEOGRAPH +0xE4A6 0x6D07 #CJK UNIFIED IDEOGRAPH +0xE4A7 0x6D04 #CJK UNIFIED IDEOGRAPH +0xE4A8 0x6D19 #CJK UNIFIED IDEOGRAPH +0xE4A9 0x6D0E #CJK UNIFIED IDEOGRAPH +0xE4AA 0x6D2B #CJK UNIFIED IDEOGRAPH +0xE4AB 0x6D4D #CJK UNIFIED IDEOGRAPH +0xE4AC 0x6D2E #CJK UNIFIED IDEOGRAPH +0xE4AD 0x6D35 #CJK UNIFIED IDEOGRAPH +0xE4AE 0x6D1A #CJK UNIFIED IDEOGRAPH +0xE4AF 0x6D4F #CJK UNIFIED IDEOGRAPH +0xE4B0 0x6D52 #CJK UNIFIED IDEOGRAPH +0xE4B1 0x6D54 #CJK UNIFIED IDEOGRAPH +0xE4B2 0x6D33 #CJK UNIFIED IDEOGRAPH +0xE4B3 0x6D91 #CJK UNIFIED IDEOGRAPH +0xE4B4 0x6D6F #CJK UNIFIED IDEOGRAPH +0xE4B5 0x6D9E #CJK UNIFIED IDEOGRAPH +0xE4B6 0x6DA0 #CJK UNIFIED IDEOGRAPH +0xE4B7 0x6D5E #CJK UNIFIED IDEOGRAPH +0xE4B8 0x6D93 #CJK UNIFIED IDEOGRAPH +0xE4B9 0x6D94 #CJK UNIFIED IDEOGRAPH +0xE4BA 0x6D5C #CJK UNIFIED IDEOGRAPH +0xE4BB 0x6D60 #CJK UNIFIED IDEOGRAPH +0xE4BC 0x6D7C #CJK UNIFIED IDEOGRAPH +0xE4BD 0x6D63 #CJK UNIFIED IDEOGRAPH +0xE4BE 0x6E1A #CJK UNIFIED IDEOGRAPH +0xE4BF 0x6DC7 #CJK UNIFIED IDEOGRAPH +0xE4C0 0x6DC5 #CJK UNIFIED IDEOGRAPH +0xE4C1 0x6DDE #CJK UNIFIED IDEOGRAPH +0xE4C2 0x6E0E #CJK UNIFIED IDEOGRAPH +0xE4C3 0x6DBF #CJK UNIFIED IDEOGRAPH +0xE4C4 0x6DE0 #CJK UNIFIED IDEOGRAPH +0xE4C5 0x6E11 #CJK UNIFIED IDEOGRAPH +0xE4C6 0x6DE6 #CJK UNIFIED IDEOGRAPH +0xE4C7 0x6DDD #CJK UNIFIED IDEOGRAPH +0xE4C8 0x6DD9 #CJK UNIFIED IDEOGRAPH +0xE4C9 0x6E16 #CJK UNIFIED IDEOGRAPH +0xE4CA 0x6DAB #CJK UNIFIED IDEOGRAPH +0xE4CB 0x6E0C #CJK UNIFIED IDEOGRAPH +0xE4CC 0x6DAE #CJK UNIFIED IDEOGRAPH +0xE4CD 0x6E2B #CJK UNIFIED IDEOGRAPH +0xE4CE 0x6E6E #CJK UNIFIED IDEOGRAPH +0xE4CF 0x6E4E #CJK UNIFIED IDEOGRAPH +0xE4D0 0x6E6B #CJK UNIFIED IDEOGRAPH +0xE4D1 0x6EB2 #CJK UNIFIED IDEOGRAPH +0xE4D2 0x6E5F #CJK UNIFIED IDEOGRAPH +0xE4D3 0x6E86 #CJK UNIFIED IDEOGRAPH +0xE4D4 0x6E53 #CJK UNIFIED IDEOGRAPH +0xE4D5 0x6E54 #CJK UNIFIED IDEOGRAPH +0xE4D6 0x6E32 #CJK UNIFIED IDEOGRAPH +0xE4D7 0x6E25 #CJK UNIFIED IDEOGRAPH +0xE4D8 0x6E44 #CJK UNIFIED IDEOGRAPH +0xE4D9 0x6EDF #CJK UNIFIED IDEOGRAPH +0xE4DA 0x6EB1 #CJK UNIFIED IDEOGRAPH +0xE4DB 0x6E98 #CJK UNIFIED IDEOGRAPH +0xE4DC 0x6EE0 #CJK UNIFIED IDEOGRAPH +0xE4DD 0x6F2D #CJK UNIFIED IDEOGRAPH +0xE4DE 0x6EE2 #CJK UNIFIED IDEOGRAPH +0xE4DF 0x6EA5 #CJK UNIFIED IDEOGRAPH +0xE4E0 0x6EA7 #CJK UNIFIED IDEOGRAPH +0xE4E1 0x6EBD #CJK UNIFIED IDEOGRAPH +0xE4E2 0x6EBB #CJK UNIFIED IDEOGRAPH +0xE4E3 0x6EB7 #CJK UNIFIED IDEOGRAPH +0xE4E4 0x6ED7 #CJK UNIFIED IDEOGRAPH +0xE4E5 0x6EB4 #CJK UNIFIED IDEOGRAPH +0xE4E6 0x6ECF #CJK UNIFIED IDEOGRAPH +0xE4E7 0x6E8F #CJK UNIFIED IDEOGRAPH +0xE4E8 0x6EC2 #CJK UNIFIED IDEOGRAPH +0xE4E9 0x6E9F #CJK UNIFIED IDEOGRAPH +0xE4EA 0x6F62 #CJK UNIFIED IDEOGRAPH +0xE4EB 0x6F46 #CJK UNIFIED IDEOGRAPH +0xE4EC 0x6F47 #CJK UNIFIED IDEOGRAPH +0xE4ED 0x6F24 #CJK UNIFIED IDEOGRAPH +0xE4EE 0x6F15 #CJK UNIFIED IDEOGRAPH +0xE4EF 0x6EF9 #CJK UNIFIED IDEOGRAPH +0xE4F0 0x6F2F #CJK UNIFIED IDEOGRAPH +0xE4F1 0x6F36 #CJK UNIFIED IDEOGRAPH +0xE4F2 0x6F4B #CJK UNIFIED IDEOGRAPH +0xE4F3 0x6F74 #CJK UNIFIED IDEOGRAPH +0xE4F4 0x6F2A #CJK UNIFIED IDEOGRAPH +0xE4F5 0x6F09 #CJK UNIFIED IDEOGRAPH +0xE4F6 0x6F29 #CJK UNIFIED IDEOGRAPH +0xE4F7 0x6F89 #CJK UNIFIED IDEOGRAPH +0xE4F8 0x6F8D #CJK UNIFIED IDEOGRAPH +0xE4F9 0x6F8C #CJK UNIFIED IDEOGRAPH +0xE4FA 0x6F78 #CJK UNIFIED IDEOGRAPH +0xE4FB 0x6F72 #CJK UNIFIED IDEOGRAPH +0xE4FC 0x6F7C #CJK UNIFIED IDEOGRAPH +0xE4FD 0x6F7A #CJK UNIFIED IDEOGRAPH +0xE4FE 0x6FD1 #CJK UNIFIED IDEOGRAPH +0xE540 0x930A #CJK UNIFIED IDEOGRAPH +0xE541 0x930B #CJK UNIFIED IDEOGRAPH +0xE542 0x930C #CJK UNIFIED IDEOGRAPH +0xE543 0x930D #CJK UNIFIED IDEOGRAPH +0xE544 0x930E #CJK UNIFIED IDEOGRAPH +0xE545 0x930F #CJK UNIFIED IDEOGRAPH +0xE546 0x9310 #CJK UNIFIED IDEOGRAPH +0xE547 0x9311 #CJK UNIFIED IDEOGRAPH +0xE548 0x9312 #CJK UNIFIED IDEOGRAPH +0xE549 0x9313 #CJK UNIFIED IDEOGRAPH +0xE54A 0x9314 #CJK UNIFIED IDEOGRAPH +0xE54B 0x9315 #CJK UNIFIED IDEOGRAPH +0xE54C 0x9316 #CJK UNIFIED IDEOGRAPH +0xE54D 0x9317 #CJK UNIFIED IDEOGRAPH +0xE54E 0x9318 #CJK UNIFIED IDEOGRAPH +0xE54F 0x9319 #CJK UNIFIED IDEOGRAPH +0xE550 0x931A #CJK UNIFIED IDEOGRAPH +0xE551 0x931B #CJK UNIFIED IDEOGRAPH +0xE552 0x931C #CJK UNIFIED IDEOGRAPH +0xE553 0x931D #CJK UNIFIED IDEOGRAPH +0xE554 0x931E #CJK UNIFIED IDEOGRAPH +0xE555 0x931F #CJK UNIFIED IDEOGRAPH +0xE556 0x9320 #CJK UNIFIED IDEOGRAPH +0xE557 0x9321 #CJK UNIFIED IDEOGRAPH +0xE558 0x9322 #CJK UNIFIED IDEOGRAPH +0xE559 0x9323 #CJK UNIFIED IDEOGRAPH +0xE55A 0x9324 #CJK UNIFIED IDEOGRAPH +0xE55B 0x9325 #CJK UNIFIED IDEOGRAPH +0xE55C 0x9326 #CJK UNIFIED IDEOGRAPH +0xE55D 0x9327 #CJK UNIFIED IDEOGRAPH +0xE55E 0x9328 #CJK UNIFIED IDEOGRAPH +0xE55F 0x9329 #CJK UNIFIED IDEOGRAPH +0xE560 0x932A #CJK UNIFIED IDEOGRAPH +0xE561 0x932B #CJK UNIFIED IDEOGRAPH +0xE562 0x932C #CJK UNIFIED IDEOGRAPH +0xE563 0x932D #CJK UNIFIED IDEOGRAPH +0xE564 0x932E #CJK UNIFIED IDEOGRAPH +0xE565 0x932F #CJK UNIFIED IDEOGRAPH +0xE566 0x9330 #CJK UNIFIED IDEOGRAPH +0xE567 0x9331 #CJK UNIFIED IDEOGRAPH +0xE568 0x9332 #CJK UNIFIED IDEOGRAPH +0xE569 0x9333 #CJK UNIFIED IDEOGRAPH +0xE56A 0x9334 #CJK UNIFIED IDEOGRAPH +0xE56B 0x9335 #CJK UNIFIED IDEOGRAPH +0xE56C 0x9336 #CJK UNIFIED IDEOGRAPH +0xE56D 0x9337 #CJK UNIFIED IDEOGRAPH +0xE56E 0x9338 #CJK UNIFIED IDEOGRAPH +0xE56F 0x9339 #CJK UNIFIED IDEOGRAPH +0xE570 0x933A #CJK UNIFIED IDEOGRAPH +0xE571 0x933B #CJK UNIFIED IDEOGRAPH +0xE572 0x933C #CJK UNIFIED IDEOGRAPH +0xE573 0x933D #CJK UNIFIED IDEOGRAPH +0xE574 0x933F #CJK UNIFIED IDEOGRAPH +0xE575 0x9340 #CJK UNIFIED IDEOGRAPH +0xE576 0x9341 #CJK UNIFIED IDEOGRAPH +0xE577 0x9342 #CJK UNIFIED IDEOGRAPH +0xE578 0x9343 #CJK UNIFIED IDEOGRAPH +0xE579 0x9344 #CJK UNIFIED IDEOGRAPH +0xE57A 0x9345 #CJK UNIFIED IDEOGRAPH +0xE57B 0x9346 #CJK UNIFIED IDEOGRAPH +0xE57C 0x9347 #CJK UNIFIED IDEOGRAPH +0xE57D 0x9348 #CJK UNIFIED IDEOGRAPH +0xE57E 0x9349 #CJK UNIFIED IDEOGRAPH +0xE580 0x934A #CJK UNIFIED IDEOGRAPH +0xE581 0x934B #CJK UNIFIED IDEOGRAPH +0xE582 0x934C #CJK UNIFIED IDEOGRAPH +0xE583 0x934D #CJK UNIFIED IDEOGRAPH +0xE584 0x934E #CJK UNIFIED IDEOGRAPH +0xE585 0x934F #CJK UNIFIED IDEOGRAPH +0xE586 0x9350 #CJK UNIFIED IDEOGRAPH +0xE587 0x9351 #CJK UNIFIED IDEOGRAPH +0xE588 0x9352 #CJK UNIFIED IDEOGRAPH +0xE589 0x9353 #CJK UNIFIED IDEOGRAPH +0xE58A 0x9354 #CJK UNIFIED IDEOGRAPH +0xE58B 0x9355 #CJK UNIFIED IDEOGRAPH +0xE58C 0x9356 #CJK UNIFIED IDEOGRAPH +0xE58D 0x9357 #CJK UNIFIED IDEOGRAPH +0xE58E 0x9358 #CJK UNIFIED IDEOGRAPH +0xE58F 0x9359 #CJK UNIFIED IDEOGRAPH +0xE590 0x935A #CJK UNIFIED IDEOGRAPH +0xE591 0x935B #CJK UNIFIED IDEOGRAPH +0xE592 0x935C #CJK UNIFIED IDEOGRAPH +0xE593 0x935D #CJK UNIFIED IDEOGRAPH +0xE594 0x935E #CJK UNIFIED IDEOGRAPH +0xE595 0x935F #CJK UNIFIED IDEOGRAPH +0xE596 0x9360 #CJK UNIFIED IDEOGRAPH +0xE597 0x9361 #CJK UNIFIED IDEOGRAPH +0xE598 0x9362 #CJK UNIFIED IDEOGRAPH +0xE599 0x9363 #CJK UNIFIED IDEOGRAPH +0xE59A 0x9364 #CJK UNIFIED IDEOGRAPH +0xE59B 0x9365 #CJK UNIFIED IDEOGRAPH +0xE59C 0x9366 #CJK UNIFIED IDEOGRAPH +0xE59D 0x9367 #CJK UNIFIED IDEOGRAPH +0xE59E 0x9368 #CJK UNIFIED IDEOGRAPH +0xE59F 0x9369 #CJK UNIFIED IDEOGRAPH +0xE5A0 0x936B #CJK UNIFIED IDEOGRAPH +0xE5A1 0x6FC9 #CJK UNIFIED IDEOGRAPH +0xE5A2 0x6FA7 #CJK UNIFIED IDEOGRAPH +0xE5A3 0x6FB9 #CJK UNIFIED IDEOGRAPH +0xE5A4 0x6FB6 #CJK UNIFIED IDEOGRAPH +0xE5A5 0x6FC2 #CJK UNIFIED IDEOGRAPH +0xE5A6 0x6FE1 #CJK UNIFIED IDEOGRAPH +0xE5A7 0x6FEE #CJK UNIFIED IDEOGRAPH +0xE5A8 0x6FDE #CJK UNIFIED IDEOGRAPH +0xE5A9 0x6FE0 #CJK UNIFIED IDEOGRAPH +0xE5AA 0x6FEF #CJK UNIFIED IDEOGRAPH +0xE5AB 0x701A #CJK UNIFIED IDEOGRAPH +0xE5AC 0x7023 #CJK UNIFIED IDEOGRAPH +0xE5AD 0x701B #CJK UNIFIED IDEOGRAPH +0xE5AE 0x7039 #CJK UNIFIED IDEOGRAPH +0xE5AF 0x7035 #CJK UNIFIED IDEOGRAPH +0xE5B0 0x704F #CJK UNIFIED IDEOGRAPH +0xE5B1 0x705E #CJK UNIFIED IDEOGRAPH +0xE5B2 0x5B80 #CJK UNIFIED IDEOGRAPH +0xE5B3 0x5B84 #CJK UNIFIED IDEOGRAPH +0xE5B4 0x5B95 #CJK UNIFIED IDEOGRAPH +0xE5B5 0x5B93 #CJK UNIFIED IDEOGRAPH +0xE5B6 0x5BA5 #CJK UNIFIED IDEOGRAPH +0xE5B7 0x5BB8 #CJK UNIFIED IDEOGRAPH +0xE5B8 0x752F #CJK UNIFIED IDEOGRAPH +0xE5B9 0x9A9E #CJK UNIFIED IDEOGRAPH +0xE5BA 0x6434 #CJK UNIFIED IDEOGRAPH +0xE5BB 0x5BE4 #CJK UNIFIED IDEOGRAPH +0xE5BC 0x5BEE #CJK UNIFIED IDEOGRAPH +0xE5BD 0x8930 #CJK UNIFIED IDEOGRAPH +0xE5BE 0x5BF0 #CJK UNIFIED IDEOGRAPH +0xE5BF 0x8E47 #CJK UNIFIED IDEOGRAPH +0xE5C0 0x8B07 #CJK UNIFIED IDEOGRAPH +0xE5C1 0x8FB6 #CJK UNIFIED IDEOGRAPH +0xE5C2 0x8FD3 #CJK UNIFIED IDEOGRAPH +0xE5C3 0x8FD5 #CJK UNIFIED IDEOGRAPH +0xE5C4 0x8FE5 #CJK UNIFIED IDEOGRAPH +0xE5C5 0x8FEE #CJK UNIFIED IDEOGRAPH +0xE5C6 0x8FE4 #CJK UNIFIED IDEOGRAPH +0xE5C7 0x8FE9 #CJK UNIFIED IDEOGRAPH +0xE5C8 0x8FE6 #CJK UNIFIED IDEOGRAPH +0xE5C9 0x8FF3 #CJK UNIFIED IDEOGRAPH +0xE5CA 0x8FE8 #CJK UNIFIED IDEOGRAPH +0xE5CB 0x9005 #CJK UNIFIED IDEOGRAPH +0xE5CC 0x9004 #CJK UNIFIED IDEOGRAPH +0xE5CD 0x900B #CJK UNIFIED IDEOGRAPH +0xE5CE 0x9026 #CJK UNIFIED IDEOGRAPH +0xE5CF 0x9011 #CJK UNIFIED IDEOGRAPH +0xE5D0 0x900D #CJK UNIFIED IDEOGRAPH +0xE5D1 0x9016 #CJK UNIFIED IDEOGRAPH +0xE5D2 0x9021 #CJK UNIFIED IDEOGRAPH +0xE5D3 0x9035 #CJK UNIFIED IDEOGRAPH +0xE5D4 0x9036 #CJK UNIFIED IDEOGRAPH +0xE5D5 0x902D #CJK UNIFIED IDEOGRAPH +0xE5D6 0x902F #CJK UNIFIED IDEOGRAPH +0xE5D7 0x9044 #CJK UNIFIED IDEOGRAPH +0xE5D8 0x9051 #CJK UNIFIED IDEOGRAPH +0xE5D9 0x9052 #CJK UNIFIED IDEOGRAPH +0xE5DA 0x9050 #CJK UNIFIED IDEOGRAPH +0xE5DB 0x9068 #CJK UNIFIED IDEOGRAPH +0xE5DC 0x9058 #CJK UNIFIED IDEOGRAPH +0xE5DD 0x9062 #CJK UNIFIED IDEOGRAPH +0xE5DE 0x905B #CJK UNIFIED IDEOGRAPH +0xE5DF 0x66B9 #CJK UNIFIED IDEOGRAPH +0xE5E0 0x9074 #CJK UNIFIED IDEOGRAPH +0xE5E1 0x907D #CJK UNIFIED IDEOGRAPH +0xE5E2 0x9082 #CJK UNIFIED IDEOGRAPH +0xE5E3 0x9088 #CJK UNIFIED IDEOGRAPH +0xE5E4 0x9083 #CJK UNIFIED IDEOGRAPH +0xE5E5 0x908B #CJK UNIFIED IDEOGRAPH +0xE5E6 0x5F50 #CJK UNIFIED IDEOGRAPH +0xE5E7 0x5F57 #CJK UNIFIED IDEOGRAPH +0xE5E8 0x5F56 #CJK UNIFIED IDEOGRAPH +0xE5E9 0x5F58 #CJK UNIFIED IDEOGRAPH +0xE5EA 0x5C3B #CJK UNIFIED IDEOGRAPH +0xE5EB 0x54AB #CJK UNIFIED IDEOGRAPH +0xE5EC 0x5C50 #CJK UNIFIED IDEOGRAPH +0xE5ED 0x5C59 #CJK UNIFIED IDEOGRAPH +0xE5EE 0x5B71 #CJK UNIFIED IDEOGRAPH +0xE5EF 0x5C63 #CJK UNIFIED IDEOGRAPH +0xE5F0 0x5C66 #CJK UNIFIED IDEOGRAPH +0xE5F1 0x7FBC #CJK UNIFIED IDEOGRAPH +0xE5F2 0x5F2A #CJK UNIFIED IDEOGRAPH +0xE5F3 0x5F29 #CJK UNIFIED IDEOGRAPH +0xE5F4 0x5F2D #CJK UNIFIED IDEOGRAPH +0xE5F5 0x8274 #CJK UNIFIED IDEOGRAPH +0xE5F6 0x5F3C #CJK UNIFIED IDEOGRAPH +0xE5F7 0x9B3B #CJK UNIFIED IDEOGRAPH +0xE5F8 0x5C6E #CJK UNIFIED IDEOGRAPH +0xE5F9 0x5981 #CJK UNIFIED IDEOGRAPH +0xE5FA 0x5983 #CJK UNIFIED IDEOGRAPH +0xE5FB 0x598D #CJK UNIFIED IDEOGRAPH +0xE5FC 0x59A9 #CJK UNIFIED IDEOGRAPH +0xE5FD 0x59AA #CJK UNIFIED IDEOGRAPH +0xE5FE 0x59A3 #CJK UNIFIED IDEOGRAPH +0xE640 0x936C #CJK UNIFIED IDEOGRAPH +0xE641 0x936D #CJK UNIFIED IDEOGRAPH +0xE642 0x936E #CJK UNIFIED IDEOGRAPH +0xE643 0x936F #CJK UNIFIED IDEOGRAPH +0xE644 0x9370 #CJK UNIFIED IDEOGRAPH +0xE645 0x9371 #CJK UNIFIED IDEOGRAPH +0xE646 0x9372 #CJK UNIFIED IDEOGRAPH +0xE647 0x9373 #CJK UNIFIED IDEOGRAPH +0xE648 0x9374 #CJK UNIFIED IDEOGRAPH +0xE649 0x9375 #CJK UNIFIED IDEOGRAPH +0xE64A 0x9376 #CJK UNIFIED IDEOGRAPH +0xE64B 0x9377 #CJK UNIFIED IDEOGRAPH +0xE64C 0x9378 #CJK UNIFIED IDEOGRAPH +0xE64D 0x9379 #CJK UNIFIED IDEOGRAPH +0xE64E 0x937A #CJK UNIFIED IDEOGRAPH +0xE64F 0x937B #CJK UNIFIED IDEOGRAPH +0xE650 0x937C #CJK UNIFIED IDEOGRAPH +0xE651 0x937D #CJK UNIFIED IDEOGRAPH +0xE652 0x937E #CJK UNIFIED IDEOGRAPH +0xE653 0x937F #CJK UNIFIED IDEOGRAPH +0xE654 0x9380 #CJK UNIFIED IDEOGRAPH +0xE655 0x9381 #CJK UNIFIED IDEOGRAPH +0xE656 0x9382 #CJK UNIFIED IDEOGRAPH +0xE657 0x9383 #CJK UNIFIED IDEOGRAPH +0xE658 0x9384 #CJK UNIFIED IDEOGRAPH +0xE659 0x9385 #CJK UNIFIED IDEOGRAPH +0xE65A 0x9386 #CJK UNIFIED IDEOGRAPH +0xE65B 0x9387 #CJK UNIFIED IDEOGRAPH +0xE65C 0x9388 #CJK UNIFIED IDEOGRAPH +0xE65D 0x9389 #CJK UNIFIED IDEOGRAPH +0xE65E 0x938A #CJK UNIFIED IDEOGRAPH +0xE65F 0x938B #CJK UNIFIED IDEOGRAPH +0xE660 0x938C #CJK UNIFIED IDEOGRAPH +0xE661 0x938D #CJK UNIFIED IDEOGRAPH +0xE662 0x938E #CJK UNIFIED IDEOGRAPH +0xE663 0x9390 #CJK UNIFIED IDEOGRAPH +0xE664 0x9391 #CJK UNIFIED IDEOGRAPH +0xE665 0x9392 #CJK UNIFIED IDEOGRAPH +0xE666 0x9393 #CJK UNIFIED IDEOGRAPH +0xE667 0x9394 #CJK UNIFIED IDEOGRAPH +0xE668 0x9395 #CJK UNIFIED IDEOGRAPH +0xE669 0x9396 #CJK UNIFIED IDEOGRAPH +0xE66A 0x9397 #CJK UNIFIED IDEOGRAPH +0xE66B 0x9398 #CJK UNIFIED IDEOGRAPH +0xE66C 0x9399 #CJK UNIFIED IDEOGRAPH +0xE66D 0x939A #CJK UNIFIED IDEOGRAPH +0xE66E 0x939B #CJK UNIFIED IDEOGRAPH +0xE66F 0x939C #CJK UNIFIED IDEOGRAPH +0xE670 0x939D #CJK UNIFIED IDEOGRAPH +0xE671 0x939E #CJK UNIFIED IDEOGRAPH +0xE672 0x939F #CJK UNIFIED IDEOGRAPH +0xE673 0x93A0 #CJK UNIFIED IDEOGRAPH +0xE674 0x93A1 #CJK UNIFIED IDEOGRAPH +0xE675 0x93A2 #CJK UNIFIED IDEOGRAPH +0xE676 0x93A3 #CJK UNIFIED IDEOGRAPH +0xE677 0x93A4 #CJK UNIFIED IDEOGRAPH +0xE678 0x93A5 #CJK UNIFIED IDEOGRAPH +0xE679 0x93A6 #CJK UNIFIED IDEOGRAPH +0xE67A 0x93A7 #CJK UNIFIED IDEOGRAPH +0xE67B 0x93A8 #CJK UNIFIED IDEOGRAPH +0xE67C 0x93A9 #CJK UNIFIED IDEOGRAPH +0xE67D 0x93AA #CJK UNIFIED IDEOGRAPH +0xE67E 0x93AB #CJK UNIFIED IDEOGRAPH +0xE680 0x93AC #CJK UNIFIED IDEOGRAPH +0xE681 0x93AD #CJK UNIFIED IDEOGRAPH +0xE682 0x93AE #CJK UNIFIED IDEOGRAPH +0xE683 0x93AF #CJK UNIFIED IDEOGRAPH +0xE684 0x93B0 #CJK UNIFIED IDEOGRAPH +0xE685 0x93B1 #CJK UNIFIED IDEOGRAPH +0xE686 0x93B2 #CJK UNIFIED IDEOGRAPH +0xE687 0x93B3 #CJK UNIFIED IDEOGRAPH +0xE688 0x93B4 #CJK UNIFIED IDEOGRAPH +0xE689 0x93B5 #CJK UNIFIED IDEOGRAPH +0xE68A 0x93B6 #CJK UNIFIED IDEOGRAPH +0xE68B 0x93B7 #CJK UNIFIED IDEOGRAPH +0xE68C 0x93B8 #CJK UNIFIED IDEOGRAPH +0xE68D 0x93B9 #CJK UNIFIED IDEOGRAPH +0xE68E 0x93BA #CJK UNIFIED IDEOGRAPH +0xE68F 0x93BB #CJK UNIFIED IDEOGRAPH +0xE690 0x93BC #CJK UNIFIED IDEOGRAPH +0xE691 0x93BD #CJK UNIFIED IDEOGRAPH +0xE692 0x93BE #CJK UNIFIED IDEOGRAPH +0xE693 0x93BF #CJK UNIFIED IDEOGRAPH +0xE694 0x93C0 #CJK UNIFIED IDEOGRAPH +0xE695 0x93C1 #CJK UNIFIED IDEOGRAPH +0xE696 0x93C2 #CJK UNIFIED IDEOGRAPH +0xE697 0x93C3 #CJK UNIFIED IDEOGRAPH +0xE698 0x93C4 #CJK UNIFIED IDEOGRAPH +0xE699 0x93C5 #CJK UNIFIED IDEOGRAPH +0xE69A 0x93C6 #CJK UNIFIED IDEOGRAPH +0xE69B 0x93C7 #CJK UNIFIED IDEOGRAPH +0xE69C 0x93C8 #CJK UNIFIED IDEOGRAPH +0xE69D 0x93C9 #CJK UNIFIED IDEOGRAPH +0xE69E 0x93CB #CJK UNIFIED IDEOGRAPH +0xE69F 0x93CC #CJK UNIFIED IDEOGRAPH +0xE6A0 0x93CD #CJK UNIFIED IDEOGRAPH +0xE6A1 0x5997 #CJK UNIFIED IDEOGRAPH +0xE6A2 0x59CA #CJK UNIFIED IDEOGRAPH +0xE6A3 0x59AB #CJK UNIFIED IDEOGRAPH +0xE6A4 0x599E #CJK UNIFIED IDEOGRAPH +0xE6A5 0x59A4 #CJK UNIFIED IDEOGRAPH +0xE6A6 0x59D2 #CJK UNIFIED IDEOGRAPH +0xE6A7 0x59B2 #CJK UNIFIED IDEOGRAPH +0xE6A8 0x59AF #CJK UNIFIED IDEOGRAPH +0xE6A9 0x59D7 #CJK UNIFIED IDEOGRAPH +0xE6AA 0x59BE #CJK UNIFIED IDEOGRAPH +0xE6AB 0x5A05 #CJK UNIFIED IDEOGRAPH +0xE6AC 0x5A06 #CJK UNIFIED IDEOGRAPH +0xE6AD 0x59DD #CJK UNIFIED IDEOGRAPH +0xE6AE 0x5A08 #CJK UNIFIED IDEOGRAPH +0xE6AF 0x59E3 #CJK UNIFIED IDEOGRAPH +0xE6B0 0x59D8 #CJK UNIFIED IDEOGRAPH +0xE6B1 0x59F9 #CJK UNIFIED IDEOGRAPH +0xE6B2 0x5A0C #CJK UNIFIED IDEOGRAPH +0xE6B3 0x5A09 #CJK UNIFIED IDEOGRAPH +0xE6B4 0x5A32 #CJK UNIFIED IDEOGRAPH +0xE6B5 0x5A34 #CJK UNIFIED IDEOGRAPH +0xE6B6 0x5A11 #CJK UNIFIED IDEOGRAPH +0xE6B7 0x5A23 #CJK UNIFIED IDEOGRAPH +0xE6B8 0x5A13 #CJK UNIFIED IDEOGRAPH +0xE6B9 0x5A40 #CJK UNIFIED IDEOGRAPH +0xE6BA 0x5A67 #CJK UNIFIED IDEOGRAPH +0xE6BB 0x5A4A #CJK UNIFIED IDEOGRAPH +0xE6BC 0x5A55 #CJK UNIFIED IDEOGRAPH +0xE6BD 0x5A3C #CJK UNIFIED IDEOGRAPH +0xE6BE 0x5A62 #CJK UNIFIED IDEOGRAPH +0xE6BF 0x5A75 #CJK UNIFIED IDEOGRAPH +0xE6C0 0x80EC #CJK UNIFIED IDEOGRAPH +0xE6C1 0x5AAA #CJK UNIFIED IDEOGRAPH +0xE6C2 0x5A9B #CJK UNIFIED IDEOGRAPH +0xE6C3 0x5A77 #CJK UNIFIED IDEOGRAPH +0xE6C4 0x5A7A #CJK UNIFIED IDEOGRAPH +0xE6C5 0x5ABE #CJK UNIFIED IDEOGRAPH +0xE6C6 0x5AEB #CJK UNIFIED IDEOGRAPH +0xE6C7 0x5AB2 #CJK UNIFIED IDEOGRAPH +0xE6C8 0x5AD2 #CJK UNIFIED IDEOGRAPH +0xE6C9 0x5AD4 #CJK UNIFIED IDEOGRAPH +0xE6CA 0x5AB8 #CJK UNIFIED IDEOGRAPH +0xE6CB 0x5AE0 #CJK UNIFIED IDEOGRAPH +0xE6CC 0x5AE3 #CJK UNIFIED IDEOGRAPH +0xE6CD 0x5AF1 #CJK UNIFIED IDEOGRAPH +0xE6CE 0x5AD6 #CJK UNIFIED IDEOGRAPH +0xE6CF 0x5AE6 #CJK UNIFIED IDEOGRAPH +0xE6D0 0x5AD8 #CJK UNIFIED IDEOGRAPH +0xE6D1 0x5ADC #CJK UNIFIED IDEOGRAPH +0xE6D2 0x5B09 #CJK UNIFIED IDEOGRAPH +0xE6D3 0x5B17 #CJK UNIFIED IDEOGRAPH +0xE6D4 0x5B16 #CJK UNIFIED IDEOGRAPH +0xE6D5 0x5B32 #CJK UNIFIED IDEOGRAPH +0xE6D6 0x5B37 #CJK UNIFIED IDEOGRAPH +0xE6D7 0x5B40 #CJK UNIFIED IDEOGRAPH +0xE6D8 0x5C15 #CJK UNIFIED IDEOGRAPH +0xE6D9 0x5C1C #CJK UNIFIED IDEOGRAPH +0xE6DA 0x5B5A #CJK UNIFIED IDEOGRAPH +0xE6DB 0x5B65 #CJK UNIFIED IDEOGRAPH +0xE6DC 0x5B73 #CJK UNIFIED IDEOGRAPH +0xE6DD 0x5B51 #CJK UNIFIED IDEOGRAPH +0xE6DE 0x5B53 #CJK UNIFIED IDEOGRAPH +0xE6DF 0x5B62 #CJK UNIFIED IDEOGRAPH +0xE6E0 0x9A75 #CJK UNIFIED IDEOGRAPH +0xE6E1 0x9A77 #CJK UNIFIED IDEOGRAPH +0xE6E2 0x9A78 #CJK UNIFIED IDEOGRAPH +0xE6E3 0x9A7A #CJK UNIFIED IDEOGRAPH +0xE6E4 0x9A7F #CJK UNIFIED IDEOGRAPH +0xE6E5 0x9A7D #CJK UNIFIED IDEOGRAPH +0xE6E6 0x9A80 #CJK UNIFIED IDEOGRAPH +0xE6E7 0x9A81 #CJK UNIFIED IDEOGRAPH +0xE6E8 0x9A85 #CJK UNIFIED IDEOGRAPH +0xE6E9 0x9A88 #CJK UNIFIED IDEOGRAPH +0xE6EA 0x9A8A #CJK UNIFIED IDEOGRAPH +0xE6EB 0x9A90 #CJK UNIFIED IDEOGRAPH +0xE6EC 0x9A92 #CJK UNIFIED IDEOGRAPH +0xE6ED 0x9A93 #CJK UNIFIED IDEOGRAPH +0xE6EE 0x9A96 #CJK UNIFIED IDEOGRAPH +0xE6EF 0x9A98 #CJK UNIFIED IDEOGRAPH +0xE6F0 0x9A9B #CJK UNIFIED IDEOGRAPH +0xE6F1 0x9A9C #CJK UNIFIED IDEOGRAPH +0xE6F2 0x9A9D #CJK UNIFIED IDEOGRAPH +0xE6F3 0x9A9F #CJK UNIFIED IDEOGRAPH +0xE6F4 0x9AA0 #CJK UNIFIED IDEOGRAPH +0xE6F5 0x9AA2 #CJK UNIFIED IDEOGRAPH +0xE6F6 0x9AA3 #CJK UNIFIED IDEOGRAPH +0xE6F7 0x9AA5 #CJK UNIFIED IDEOGRAPH +0xE6F8 0x9AA7 #CJK UNIFIED IDEOGRAPH +0xE6F9 0x7E9F #CJK UNIFIED IDEOGRAPH +0xE6FA 0x7EA1 #CJK UNIFIED IDEOGRAPH +0xE6FB 0x7EA3 #CJK UNIFIED IDEOGRAPH +0xE6FC 0x7EA5 #CJK UNIFIED IDEOGRAPH +0xE6FD 0x7EA8 #CJK UNIFIED IDEOGRAPH +0xE6FE 0x7EA9 #CJK UNIFIED IDEOGRAPH +0xE740 0x93CE #CJK UNIFIED IDEOGRAPH +0xE741 0x93CF #CJK UNIFIED IDEOGRAPH +0xE742 0x93D0 #CJK UNIFIED IDEOGRAPH +0xE743 0x93D1 #CJK UNIFIED IDEOGRAPH +0xE744 0x93D2 #CJK UNIFIED IDEOGRAPH +0xE745 0x93D3 #CJK UNIFIED IDEOGRAPH +0xE746 0x93D4 #CJK UNIFIED IDEOGRAPH +0xE747 0x93D5 #CJK UNIFIED IDEOGRAPH +0xE748 0x93D7 #CJK UNIFIED IDEOGRAPH +0xE749 0x93D8 #CJK UNIFIED IDEOGRAPH +0xE74A 0x93D9 #CJK UNIFIED IDEOGRAPH +0xE74B 0x93DA #CJK UNIFIED IDEOGRAPH +0xE74C 0x93DB #CJK UNIFIED IDEOGRAPH +0xE74D 0x93DC #CJK UNIFIED IDEOGRAPH +0xE74E 0x93DD #CJK UNIFIED IDEOGRAPH +0xE74F 0x93DE #CJK UNIFIED IDEOGRAPH +0xE750 0x93DF #CJK UNIFIED IDEOGRAPH +0xE751 0x93E0 #CJK UNIFIED IDEOGRAPH +0xE752 0x93E1 #CJK UNIFIED IDEOGRAPH +0xE753 0x93E2 #CJK UNIFIED IDEOGRAPH +0xE754 0x93E3 #CJK UNIFIED IDEOGRAPH +0xE755 0x93E4 #CJK UNIFIED IDEOGRAPH +0xE756 0x93E5 #CJK UNIFIED IDEOGRAPH +0xE757 0x93E6 #CJK UNIFIED IDEOGRAPH +0xE758 0x93E7 #CJK UNIFIED IDEOGRAPH +0xE759 0x93E8 #CJK UNIFIED IDEOGRAPH +0xE75A 0x93E9 #CJK UNIFIED IDEOGRAPH +0xE75B 0x93EA #CJK UNIFIED IDEOGRAPH +0xE75C 0x93EB #CJK UNIFIED IDEOGRAPH +0xE75D 0x93EC #CJK UNIFIED IDEOGRAPH +0xE75E 0x93ED #CJK UNIFIED IDEOGRAPH +0xE75F 0x93EE #CJK UNIFIED IDEOGRAPH +0xE760 0x93EF #CJK UNIFIED IDEOGRAPH +0xE761 0x93F0 #CJK UNIFIED IDEOGRAPH +0xE762 0x93F1 #CJK UNIFIED IDEOGRAPH +0xE763 0x93F2 #CJK UNIFIED IDEOGRAPH +0xE764 0x93F3 #CJK UNIFIED IDEOGRAPH +0xE765 0x93F4 #CJK UNIFIED IDEOGRAPH +0xE766 0x93F5 #CJK UNIFIED IDEOGRAPH +0xE767 0x93F6 #CJK UNIFIED IDEOGRAPH +0xE768 0x93F7 #CJK UNIFIED IDEOGRAPH +0xE769 0x93F8 #CJK UNIFIED IDEOGRAPH +0xE76A 0x93F9 #CJK UNIFIED IDEOGRAPH +0xE76B 0x93FA #CJK UNIFIED IDEOGRAPH +0xE76C 0x93FB #CJK UNIFIED IDEOGRAPH +0xE76D 0x93FC #CJK UNIFIED IDEOGRAPH +0xE76E 0x93FD #CJK UNIFIED IDEOGRAPH +0xE76F 0x93FE #CJK UNIFIED IDEOGRAPH +0xE770 0x93FF #CJK UNIFIED IDEOGRAPH +0xE771 0x9400 #CJK UNIFIED IDEOGRAPH +0xE772 0x9401 #CJK UNIFIED IDEOGRAPH +0xE773 0x9402 #CJK UNIFIED IDEOGRAPH +0xE774 0x9403 #CJK UNIFIED IDEOGRAPH +0xE775 0x9404 #CJK UNIFIED IDEOGRAPH +0xE776 0x9405 #CJK UNIFIED IDEOGRAPH +0xE777 0x9406 #CJK UNIFIED IDEOGRAPH +0xE778 0x9407 #CJK UNIFIED IDEOGRAPH +0xE779 0x9408 #CJK UNIFIED IDEOGRAPH +0xE77A 0x9409 #CJK UNIFIED IDEOGRAPH +0xE77B 0x940A #CJK UNIFIED IDEOGRAPH +0xE77C 0x940B #CJK UNIFIED IDEOGRAPH +0xE77D 0x940C #CJK UNIFIED IDEOGRAPH +0xE77E 0x940D #CJK UNIFIED IDEOGRAPH +0xE780 0x940E #CJK UNIFIED IDEOGRAPH +0xE781 0x940F #CJK UNIFIED IDEOGRAPH +0xE782 0x9410 #CJK UNIFIED IDEOGRAPH +0xE783 0x9411 #CJK UNIFIED IDEOGRAPH +0xE784 0x9412 #CJK UNIFIED IDEOGRAPH +0xE785 0x9413 #CJK UNIFIED IDEOGRAPH +0xE786 0x9414 #CJK UNIFIED IDEOGRAPH +0xE787 0x9415 #CJK UNIFIED IDEOGRAPH +0xE788 0x9416 #CJK UNIFIED IDEOGRAPH +0xE789 0x9417 #CJK UNIFIED IDEOGRAPH +0xE78A 0x9418 #CJK UNIFIED IDEOGRAPH +0xE78B 0x9419 #CJK UNIFIED IDEOGRAPH +0xE78C 0x941A #CJK UNIFIED IDEOGRAPH +0xE78D 0x941B #CJK UNIFIED IDEOGRAPH +0xE78E 0x941C #CJK UNIFIED IDEOGRAPH +0xE78F 0x941D #CJK UNIFIED IDEOGRAPH +0xE790 0x941E #CJK UNIFIED IDEOGRAPH +0xE791 0x941F #CJK UNIFIED IDEOGRAPH +0xE792 0x9420 #CJK UNIFIED IDEOGRAPH +0xE793 0x9421 #CJK UNIFIED IDEOGRAPH +0xE794 0x9422 #CJK UNIFIED IDEOGRAPH +0xE795 0x9423 #CJK UNIFIED IDEOGRAPH +0xE796 0x9424 #CJK UNIFIED IDEOGRAPH +0xE797 0x9425 #CJK UNIFIED IDEOGRAPH +0xE798 0x9426 #CJK UNIFIED IDEOGRAPH +0xE799 0x9427 #CJK UNIFIED IDEOGRAPH +0xE79A 0x9428 #CJK UNIFIED IDEOGRAPH +0xE79B 0x9429 #CJK UNIFIED IDEOGRAPH +0xE79C 0x942A #CJK UNIFIED IDEOGRAPH +0xE79D 0x942B #CJK UNIFIED IDEOGRAPH +0xE79E 0x942C #CJK UNIFIED IDEOGRAPH +0xE79F 0x942D #CJK UNIFIED IDEOGRAPH +0xE7A0 0x942E #CJK UNIFIED IDEOGRAPH +0xE7A1 0x7EAD #CJK UNIFIED IDEOGRAPH +0xE7A2 0x7EB0 #CJK UNIFIED IDEOGRAPH +0xE7A3 0x7EBE #CJK UNIFIED IDEOGRAPH +0xE7A4 0x7EC0 #CJK UNIFIED IDEOGRAPH +0xE7A5 0x7EC1 #CJK UNIFIED IDEOGRAPH +0xE7A6 0x7EC2 #CJK UNIFIED IDEOGRAPH +0xE7A7 0x7EC9 #CJK UNIFIED IDEOGRAPH +0xE7A8 0x7ECB #CJK UNIFIED IDEOGRAPH +0xE7A9 0x7ECC #CJK UNIFIED IDEOGRAPH +0xE7AA 0x7ED0 #CJK UNIFIED IDEOGRAPH +0xE7AB 0x7ED4 #CJK UNIFIED IDEOGRAPH +0xE7AC 0x7ED7 #CJK UNIFIED IDEOGRAPH +0xE7AD 0x7EDB #CJK UNIFIED IDEOGRAPH +0xE7AE 0x7EE0 #CJK UNIFIED IDEOGRAPH +0xE7AF 0x7EE1 #CJK UNIFIED IDEOGRAPH +0xE7B0 0x7EE8 #CJK UNIFIED IDEOGRAPH +0xE7B1 0x7EEB #CJK UNIFIED IDEOGRAPH +0xE7B2 0x7EEE #CJK UNIFIED IDEOGRAPH +0xE7B3 0x7EEF #CJK UNIFIED IDEOGRAPH +0xE7B4 0x7EF1 #CJK UNIFIED IDEOGRAPH +0xE7B5 0x7EF2 #CJK UNIFIED IDEOGRAPH +0xE7B6 0x7F0D #CJK UNIFIED IDEOGRAPH +0xE7B7 0x7EF6 #CJK UNIFIED IDEOGRAPH +0xE7B8 0x7EFA #CJK UNIFIED IDEOGRAPH +0xE7B9 0x7EFB #CJK UNIFIED IDEOGRAPH +0xE7BA 0x7EFE #CJK UNIFIED IDEOGRAPH +0xE7BB 0x7F01 #CJK UNIFIED IDEOGRAPH +0xE7BC 0x7F02 #CJK UNIFIED IDEOGRAPH +0xE7BD 0x7F03 #CJK UNIFIED IDEOGRAPH +0xE7BE 0x7F07 #CJK UNIFIED IDEOGRAPH +0xE7BF 0x7F08 #CJK UNIFIED IDEOGRAPH +0xE7C0 0x7F0B #CJK UNIFIED IDEOGRAPH +0xE7C1 0x7F0C #CJK UNIFIED IDEOGRAPH +0xE7C2 0x7F0F #CJK UNIFIED IDEOGRAPH +0xE7C3 0x7F11 #CJK UNIFIED IDEOGRAPH +0xE7C4 0x7F12 #CJK UNIFIED IDEOGRAPH +0xE7C5 0x7F17 #CJK UNIFIED IDEOGRAPH +0xE7C6 0x7F19 #CJK UNIFIED IDEOGRAPH +0xE7C7 0x7F1C #CJK UNIFIED IDEOGRAPH +0xE7C8 0x7F1B #CJK UNIFIED IDEOGRAPH +0xE7C9 0x7F1F #CJK UNIFIED IDEOGRAPH +0xE7CA 0x7F21 #CJK UNIFIED IDEOGRAPH +0xE7CB 0x7F22 #CJK UNIFIED IDEOGRAPH +0xE7CC 0x7F23 #CJK UNIFIED IDEOGRAPH +0xE7CD 0x7F24 #CJK UNIFIED IDEOGRAPH +0xE7CE 0x7F25 #CJK UNIFIED IDEOGRAPH +0xE7CF 0x7F26 #CJK UNIFIED IDEOGRAPH +0xE7D0 0x7F27 #CJK UNIFIED IDEOGRAPH +0xE7D1 0x7F2A #CJK UNIFIED IDEOGRAPH +0xE7D2 0x7F2B #CJK UNIFIED IDEOGRAPH +0xE7D3 0x7F2C #CJK UNIFIED IDEOGRAPH +0xE7D4 0x7F2D #CJK UNIFIED IDEOGRAPH +0xE7D5 0x7F2F #CJK UNIFIED IDEOGRAPH +0xE7D6 0x7F30 #CJK UNIFIED IDEOGRAPH +0xE7D7 0x7F31 #CJK UNIFIED IDEOGRAPH +0xE7D8 0x7F32 #CJK UNIFIED IDEOGRAPH +0xE7D9 0x7F33 #CJK UNIFIED IDEOGRAPH +0xE7DA 0x7F35 #CJK UNIFIED IDEOGRAPH +0xE7DB 0x5E7A #CJK UNIFIED IDEOGRAPH +0xE7DC 0x757F #CJK UNIFIED IDEOGRAPH +0xE7DD 0x5DDB #CJK UNIFIED IDEOGRAPH +0xE7DE 0x753E #CJK UNIFIED IDEOGRAPH +0xE7DF 0x9095 #CJK UNIFIED IDEOGRAPH +0xE7E0 0x738E #CJK UNIFIED IDEOGRAPH +0xE7E1 0x7391 #CJK UNIFIED IDEOGRAPH +0xE7E2 0x73AE #CJK UNIFIED IDEOGRAPH +0xE7E3 0x73A2 #CJK UNIFIED IDEOGRAPH +0xE7E4 0x739F #CJK UNIFIED IDEOGRAPH +0xE7E5 0x73CF #CJK UNIFIED IDEOGRAPH +0xE7E6 0x73C2 #CJK UNIFIED IDEOGRAPH +0xE7E7 0x73D1 #CJK UNIFIED IDEOGRAPH +0xE7E8 0x73B7 #CJK UNIFIED IDEOGRAPH +0xE7E9 0x73B3 #CJK UNIFIED IDEOGRAPH +0xE7EA 0x73C0 #CJK UNIFIED IDEOGRAPH +0xE7EB 0x73C9 #CJK UNIFIED IDEOGRAPH +0xE7EC 0x73C8 #CJK UNIFIED IDEOGRAPH +0xE7ED 0x73E5 #CJK UNIFIED IDEOGRAPH +0xE7EE 0x73D9 #CJK UNIFIED IDEOGRAPH +0xE7EF 0x987C #CJK UNIFIED IDEOGRAPH +0xE7F0 0x740A #CJK UNIFIED IDEOGRAPH +0xE7F1 0x73E9 #CJK UNIFIED IDEOGRAPH +0xE7F2 0x73E7 #CJK UNIFIED IDEOGRAPH +0xE7F3 0x73DE #CJK UNIFIED IDEOGRAPH +0xE7F4 0x73BA #CJK UNIFIED IDEOGRAPH +0xE7F5 0x73F2 #CJK UNIFIED IDEOGRAPH +0xE7F6 0x740F #CJK UNIFIED IDEOGRAPH +0xE7F7 0x742A #CJK UNIFIED IDEOGRAPH +0xE7F8 0x745B #CJK UNIFIED IDEOGRAPH +0xE7F9 0x7426 #CJK UNIFIED IDEOGRAPH +0xE7FA 0x7425 #CJK UNIFIED IDEOGRAPH +0xE7FB 0x7428 #CJK UNIFIED IDEOGRAPH +0xE7FC 0x7430 #CJK UNIFIED IDEOGRAPH +0xE7FD 0x742E #CJK UNIFIED IDEOGRAPH +0xE7FE 0x742C #CJK UNIFIED IDEOGRAPH +0xE840 0x942F #CJK UNIFIED IDEOGRAPH +0xE841 0x9430 #CJK UNIFIED IDEOGRAPH +0xE842 0x9431 #CJK UNIFIED IDEOGRAPH +0xE843 0x9432 #CJK UNIFIED IDEOGRAPH +0xE844 0x9433 #CJK UNIFIED IDEOGRAPH +0xE845 0x9434 #CJK UNIFIED IDEOGRAPH +0xE846 0x9435 #CJK UNIFIED IDEOGRAPH +0xE847 0x9436 #CJK UNIFIED IDEOGRAPH +0xE848 0x9437 #CJK UNIFIED IDEOGRAPH +0xE849 0x9438 #CJK UNIFIED IDEOGRAPH +0xE84A 0x9439 #CJK UNIFIED IDEOGRAPH +0xE84B 0x943A #CJK UNIFIED IDEOGRAPH +0xE84C 0x943B #CJK UNIFIED IDEOGRAPH +0xE84D 0x943C #CJK UNIFIED IDEOGRAPH +0xE84E 0x943D #CJK UNIFIED IDEOGRAPH +0xE84F 0x943F #CJK UNIFIED IDEOGRAPH +0xE850 0x9440 #CJK UNIFIED IDEOGRAPH +0xE851 0x9441 #CJK UNIFIED IDEOGRAPH +0xE852 0x9442 #CJK UNIFIED IDEOGRAPH +0xE853 0x9443 #CJK UNIFIED IDEOGRAPH +0xE854 0x9444 #CJK UNIFIED IDEOGRAPH +0xE855 0x9445 #CJK UNIFIED IDEOGRAPH +0xE856 0x9446 #CJK UNIFIED IDEOGRAPH +0xE857 0x9447 #CJK UNIFIED IDEOGRAPH +0xE858 0x9448 #CJK UNIFIED IDEOGRAPH +0xE859 0x9449 #CJK UNIFIED IDEOGRAPH +0xE85A 0x944A #CJK UNIFIED IDEOGRAPH +0xE85B 0x944B #CJK UNIFIED IDEOGRAPH +0xE85C 0x944C #CJK UNIFIED IDEOGRAPH +0xE85D 0x944D #CJK UNIFIED IDEOGRAPH +0xE85E 0x944E #CJK UNIFIED IDEOGRAPH +0xE85F 0x944F #CJK UNIFIED IDEOGRAPH +0xE860 0x9450 #CJK UNIFIED IDEOGRAPH +0xE861 0x9451 #CJK UNIFIED IDEOGRAPH +0xE862 0x9452 #CJK UNIFIED IDEOGRAPH +0xE863 0x9453 #CJK UNIFIED IDEOGRAPH +0xE864 0x9454 #CJK UNIFIED IDEOGRAPH +0xE865 0x9455 #CJK UNIFIED IDEOGRAPH +0xE866 0x9456 #CJK UNIFIED IDEOGRAPH +0xE867 0x9457 #CJK UNIFIED IDEOGRAPH +0xE868 0x9458 #CJK UNIFIED IDEOGRAPH +0xE869 0x9459 #CJK UNIFIED IDEOGRAPH +0xE86A 0x945A #CJK UNIFIED IDEOGRAPH +0xE86B 0x945B #CJK UNIFIED IDEOGRAPH +0xE86C 0x945C #CJK UNIFIED IDEOGRAPH +0xE86D 0x945D #CJK UNIFIED IDEOGRAPH +0xE86E 0x945E #CJK UNIFIED IDEOGRAPH +0xE86F 0x945F #CJK UNIFIED IDEOGRAPH +0xE870 0x9460 #CJK UNIFIED IDEOGRAPH +0xE871 0x9461 #CJK UNIFIED IDEOGRAPH +0xE872 0x9462 #CJK UNIFIED IDEOGRAPH +0xE873 0x9463 #CJK UNIFIED IDEOGRAPH +0xE874 0x9464 #CJK UNIFIED IDEOGRAPH +0xE875 0x9465 #CJK UNIFIED IDEOGRAPH +0xE876 0x9466 #CJK UNIFIED IDEOGRAPH +0xE877 0x9467 #CJK UNIFIED IDEOGRAPH +0xE878 0x9468 #CJK UNIFIED IDEOGRAPH +0xE879 0x9469 #CJK UNIFIED IDEOGRAPH +0xE87A 0x946A #CJK UNIFIED IDEOGRAPH +0xE87B 0x946C #CJK UNIFIED IDEOGRAPH +0xE87C 0x946D #CJK UNIFIED IDEOGRAPH +0xE87D 0x946E #CJK UNIFIED IDEOGRAPH +0xE87E 0x946F #CJK UNIFIED IDEOGRAPH +0xE880 0x9470 #CJK UNIFIED IDEOGRAPH +0xE881 0x9471 #CJK UNIFIED IDEOGRAPH +0xE882 0x9472 #CJK UNIFIED IDEOGRAPH +0xE883 0x9473 #CJK UNIFIED IDEOGRAPH +0xE884 0x9474 #CJK UNIFIED IDEOGRAPH +0xE885 0x9475 #CJK UNIFIED IDEOGRAPH +0xE886 0x9476 #CJK UNIFIED IDEOGRAPH +0xE887 0x9477 #CJK UNIFIED IDEOGRAPH +0xE888 0x9478 #CJK UNIFIED IDEOGRAPH +0xE889 0x9479 #CJK UNIFIED IDEOGRAPH +0xE88A 0x947A #CJK UNIFIED IDEOGRAPH +0xE88B 0x947B #CJK UNIFIED IDEOGRAPH +0xE88C 0x947C #CJK UNIFIED IDEOGRAPH +0xE88D 0x947D #CJK UNIFIED IDEOGRAPH +0xE88E 0x947E #CJK UNIFIED IDEOGRAPH +0xE88F 0x947F #CJK UNIFIED IDEOGRAPH +0xE890 0x9480 #CJK UNIFIED IDEOGRAPH +0xE891 0x9481 #CJK UNIFIED IDEOGRAPH +0xE892 0x9482 #CJK UNIFIED IDEOGRAPH +0xE893 0x9483 #CJK UNIFIED IDEOGRAPH +0xE894 0x9484 #CJK UNIFIED IDEOGRAPH +0xE895 0x9491 #CJK UNIFIED IDEOGRAPH +0xE896 0x9496 #CJK UNIFIED IDEOGRAPH +0xE897 0x9498 #CJK UNIFIED IDEOGRAPH +0xE898 0x94C7 #CJK UNIFIED IDEOGRAPH +0xE899 0x94CF #CJK UNIFIED IDEOGRAPH +0xE89A 0x94D3 #CJK UNIFIED IDEOGRAPH +0xE89B 0x94D4 #CJK UNIFIED IDEOGRAPH +0xE89C 0x94DA #CJK UNIFIED IDEOGRAPH +0xE89D 0x94E6 #CJK UNIFIED IDEOGRAPH +0xE89E 0x94FB #CJK UNIFIED IDEOGRAPH +0xE89F 0x951C #CJK UNIFIED IDEOGRAPH +0xE8A0 0x9520 #CJK UNIFIED IDEOGRAPH +0xE8A1 0x741B #CJK UNIFIED IDEOGRAPH +0xE8A2 0x741A #CJK UNIFIED IDEOGRAPH +0xE8A3 0x7441 #CJK UNIFIED IDEOGRAPH +0xE8A4 0x745C #CJK UNIFIED IDEOGRAPH +0xE8A5 0x7457 #CJK UNIFIED IDEOGRAPH +0xE8A6 0x7455 #CJK UNIFIED IDEOGRAPH +0xE8A7 0x7459 #CJK UNIFIED IDEOGRAPH +0xE8A8 0x7477 #CJK UNIFIED IDEOGRAPH +0xE8A9 0x746D #CJK UNIFIED IDEOGRAPH +0xE8AA 0x747E #CJK UNIFIED IDEOGRAPH +0xE8AB 0x749C #CJK UNIFIED IDEOGRAPH +0xE8AC 0x748E #CJK UNIFIED IDEOGRAPH +0xE8AD 0x7480 #CJK UNIFIED IDEOGRAPH +0xE8AE 0x7481 #CJK UNIFIED IDEOGRAPH +0xE8AF 0x7487 #CJK UNIFIED IDEOGRAPH +0xE8B0 0x748B #CJK UNIFIED IDEOGRAPH +0xE8B1 0x749E #CJK UNIFIED IDEOGRAPH +0xE8B2 0x74A8 #CJK UNIFIED IDEOGRAPH +0xE8B3 0x74A9 #CJK UNIFIED IDEOGRAPH +0xE8B4 0x7490 #CJK UNIFIED IDEOGRAPH +0xE8B5 0x74A7 #CJK UNIFIED IDEOGRAPH +0xE8B6 0x74D2 #CJK UNIFIED IDEOGRAPH +0xE8B7 0x74BA #CJK UNIFIED IDEOGRAPH +0xE8B8 0x97EA #CJK UNIFIED IDEOGRAPH +0xE8B9 0x97EB #CJK UNIFIED IDEOGRAPH +0xE8BA 0x97EC #CJK UNIFIED IDEOGRAPH +0xE8BB 0x674C #CJK UNIFIED IDEOGRAPH +0xE8BC 0x6753 #CJK UNIFIED IDEOGRAPH +0xE8BD 0x675E #CJK UNIFIED IDEOGRAPH +0xE8BE 0x6748 #CJK UNIFIED IDEOGRAPH +0xE8BF 0x6769 #CJK UNIFIED IDEOGRAPH +0xE8C0 0x67A5 #CJK UNIFIED IDEOGRAPH +0xE8C1 0x6787 #CJK UNIFIED IDEOGRAPH +0xE8C2 0x676A #CJK UNIFIED IDEOGRAPH +0xE8C3 0x6773 #CJK UNIFIED IDEOGRAPH +0xE8C4 0x6798 #CJK UNIFIED IDEOGRAPH +0xE8C5 0x67A7 #CJK UNIFIED IDEOGRAPH +0xE8C6 0x6775 #CJK UNIFIED IDEOGRAPH +0xE8C7 0x67A8 #CJK UNIFIED IDEOGRAPH +0xE8C8 0x679E #CJK UNIFIED IDEOGRAPH +0xE8C9 0x67AD #CJK UNIFIED IDEOGRAPH +0xE8CA 0x678B #CJK UNIFIED IDEOGRAPH +0xE8CB 0x6777 #CJK UNIFIED IDEOGRAPH +0xE8CC 0x677C #CJK UNIFIED IDEOGRAPH +0xE8CD 0x67F0 #CJK UNIFIED IDEOGRAPH +0xE8CE 0x6809 #CJK UNIFIED IDEOGRAPH +0xE8CF 0x67D8 #CJK UNIFIED IDEOGRAPH +0xE8D0 0x680A #CJK UNIFIED IDEOGRAPH +0xE8D1 0x67E9 #CJK UNIFIED IDEOGRAPH +0xE8D2 0x67B0 #CJK UNIFIED IDEOGRAPH +0xE8D3 0x680C #CJK UNIFIED IDEOGRAPH +0xE8D4 0x67D9 #CJK UNIFIED IDEOGRAPH +0xE8D5 0x67B5 #CJK UNIFIED IDEOGRAPH +0xE8D6 0x67DA #CJK UNIFIED IDEOGRAPH +0xE8D7 0x67B3 #CJK UNIFIED IDEOGRAPH +0xE8D8 0x67DD #CJK UNIFIED IDEOGRAPH +0xE8D9 0x6800 #CJK UNIFIED IDEOGRAPH +0xE8DA 0x67C3 #CJK UNIFIED IDEOGRAPH +0xE8DB 0x67B8 #CJK UNIFIED IDEOGRAPH +0xE8DC 0x67E2 #CJK UNIFIED IDEOGRAPH +0xE8DD 0x680E #CJK UNIFIED IDEOGRAPH +0xE8DE 0x67C1 #CJK UNIFIED IDEOGRAPH +0xE8DF 0x67FD #CJK UNIFIED IDEOGRAPH +0xE8E0 0x6832 #CJK UNIFIED IDEOGRAPH +0xE8E1 0x6833 #CJK UNIFIED IDEOGRAPH +0xE8E2 0x6860 #CJK UNIFIED IDEOGRAPH +0xE8E3 0x6861 #CJK UNIFIED IDEOGRAPH +0xE8E4 0x684E #CJK UNIFIED IDEOGRAPH +0xE8E5 0x6862 #CJK UNIFIED IDEOGRAPH +0xE8E6 0x6844 #CJK UNIFIED IDEOGRAPH +0xE8E7 0x6864 #CJK UNIFIED IDEOGRAPH +0xE8E8 0x6883 #CJK UNIFIED IDEOGRAPH +0xE8E9 0x681D #CJK UNIFIED IDEOGRAPH +0xE8EA 0x6855 #CJK UNIFIED IDEOGRAPH +0xE8EB 0x6866 #CJK UNIFIED IDEOGRAPH +0xE8EC 0x6841 #CJK UNIFIED IDEOGRAPH +0xE8ED 0x6867 #CJK UNIFIED IDEOGRAPH +0xE8EE 0x6840 #CJK UNIFIED IDEOGRAPH +0xE8EF 0x683E #CJK UNIFIED IDEOGRAPH +0xE8F0 0x684A #CJK UNIFIED IDEOGRAPH +0xE8F1 0x6849 #CJK UNIFIED IDEOGRAPH +0xE8F2 0x6829 #CJK UNIFIED IDEOGRAPH +0xE8F3 0x68B5 #CJK UNIFIED IDEOGRAPH +0xE8F4 0x688F #CJK UNIFIED IDEOGRAPH +0xE8F5 0x6874 #CJK UNIFIED IDEOGRAPH +0xE8F6 0x6877 #CJK UNIFIED IDEOGRAPH +0xE8F7 0x6893 #CJK UNIFIED IDEOGRAPH +0xE8F8 0x686B #CJK UNIFIED IDEOGRAPH +0xE8F9 0x68C2 #CJK UNIFIED IDEOGRAPH +0xE8FA 0x696E #CJK UNIFIED IDEOGRAPH +0xE8FB 0x68FC #CJK UNIFIED IDEOGRAPH +0xE8FC 0x691F #CJK UNIFIED IDEOGRAPH +0xE8FD 0x6920 #CJK UNIFIED IDEOGRAPH +0xE8FE 0x68F9 #CJK UNIFIED IDEOGRAPH +0xE940 0x9527 #CJK UNIFIED IDEOGRAPH +0xE941 0x9533 #CJK UNIFIED IDEOGRAPH +0xE942 0x953D #CJK UNIFIED IDEOGRAPH +0xE943 0x9543 #CJK UNIFIED IDEOGRAPH +0xE944 0x9548 #CJK UNIFIED IDEOGRAPH +0xE945 0x954B #CJK UNIFIED IDEOGRAPH +0xE946 0x9555 #CJK UNIFIED IDEOGRAPH +0xE947 0x955A #CJK UNIFIED IDEOGRAPH +0xE948 0x9560 #CJK UNIFIED IDEOGRAPH +0xE949 0x956E #CJK UNIFIED IDEOGRAPH +0xE94A 0x9574 #CJK UNIFIED IDEOGRAPH +0xE94B 0x9575 #CJK UNIFIED IDEOGRAPH +0xE94C 0x9577 #CJK UNIFIED IDEOGRAPH +0xE94D 0x9578 #CJK UNIFIED IDEOGRAPH +0xE94E 0x9579 #CJK UNIFIED IDEOGRAPH +0xE94F 0x957A #CJK UNIFIED IDEOGRAPH +0xE950 0x957B #CJK UNIFIED IDEOGRAPH +0xE951 0x957C #CJK UNIFIED IDEOGRAPH +0xE952 0x957D #CJK UNIFIED IDEOGRAPH +0xE953 0x957E #CJK UNIFIED IDEOGRAPH +0xE954 0x9580 #CJK UNIFIED IDEOGRAPH +0xE955 0x9581 #CJK UNIFIED IDEOGRAPH +0xE956 0x9582 #CJK UNIFIED IDEOGRAPH +0xE957 0x9583 #CJK UNIFIED IDEOGRAPH +0xE958 0x9584 #CJK UNIFIED IDEOGRAPH +0xE959 0x9585 #CJK UNIFIED IDEOGRAPH +0xE95A 0x9586 #CJK UNIFIED IDEOGRAPH +0xE95B 0x9587 #CJK UNIFIED IDEOGRAPH +0xE95C 0x9588 #CJK UNIFIED IDEOGRAPH +0xE95D 0x9589 #CJK UNIFIED IDEOGRAPH +0xE95E 0x958A #CJK UNIFIED IDEOGRAPH +0xE95F 0x958B #CJK UNIFIED IDEOGRAPH +0xE960 0x958C #CJK UNIFIED IDEOGRAPH +0xE961 0x958D #CJK UNIFIED IDEOGRAPH +0xE962 0x958E #CJK UNIFIED IDEOGRAPH +0xE963 0x958F #CJK UNIFIED IDEOGRAPH +0xE964 0x9590 #CJK UNIFIED IDEOGRAPH +0xE965 0x9591 #CJK UNIFIED IDEOGRAPH +0xE966 0x9592 #CJK UNIFIED IDEOGRAPH +0xE967 0x9593 #CJK UNIFIED IDEOGRAPH +0xE968 0x9594 #CJK UNIFIED IDEOGRAPH +0xE969 0x9595 #CJK UNIFIED IDEOGRAPH +0xE96A 0x9596 #CJK UNIFIED IDEOGRAPH +0xE96B 0x9597 #CJK UNIFIED IDEOGRAPH +0xE96C 0x9598 #CJK UNIFIED IDEOGRAPH +0xE96D 0x9599 #CJK UNIFIED IDEOGRAPH +0xE96E 0x959A #CJK UNIFIED IDEOGRAPH +0xE96F 0x959B #CJK UNIFIED IDEOGRAPH +0xE970 0x959C #CJK UNIFIED IDEOGRAPH +0xE971 0x959D #CJK UNIFIED IDEOGRAPH +0xE972 0x959E #CJK UNIFIED IDEOGRAPH +0xE973 0x959F #CJK UNIFIED IDEOGRAPH +0xE974 0x95A0 #CJK UNIFIED IDEOGRAPH +0xE975 0x95A1 #CJK UNIFIED IDEOGRAPH +0xE976 0x95A2 #CJK UNIFIED IDEOGRAPH +0xE977 0x95A3 #CJK UNIFIED IDEOGRAPH +0xE978 0x95A4 #CJK UNIFIED IDEOGRAPH +0xE979 0x95A5 #CJK UNIFIED IDEOGRAPH +0xE97A 0x95A6 #CJK UNIFIED IDEOGRAPH +0xE97B 0x95A7 #CJK UNIFIED IDEOGRAPH +0xE97C 0x95A8 #CJK UNIFIED IDEOGRAPH +0xE97D 0x95A9 #CJK UNIFIED IDEOGRAPH +0xE97E 0x95AA #CJK UNIFIED IDEOGRAPH +0xE980 0x95AB #CJK UNIFIED IDEOGRAPH +0xE981 0x95AC #CJK UNIFIED IDEOGRAPH +0xE982 0x95AD #CJK UNIFIED IDEOGRAPH +0xE983 0x95AE #CJK UNIFIED IDEOGRAPH +0xE984 0x95AF #CJK UNIFIED IDEOGRAPH +0xE985 0x95B0 #CJK UNIFIED IDEOGRAPH +0xE986 0x95B1 #CJK UNIFIED IDEOGRAPH +0xE987 0x95B2 #CJK UNIFIED IDEOGRAPH +0xE988 0x95B3 #CJK UNIFIED IDEOGRAPH +0xE989 0x95B4 #CJK UNIFIED IDEOGRAPH +0xE98A 0x95B5 #CJK UNIFIED IDEOGRAPH +0xE98B 0x95B6 #CJK UNIFIED IDEOGRAPH +0xE98C 0x95B7 #CJK UNIFIED IDEOGRAPH +0xE98D 0x95B8 #CJK UNIFIED IDEOGRAPH +0xE98E 0x95B9 #CJK UNIFIED IDEOGRAPH +0xE98F 0x95BA #CJK UNIFIED IDEOGRAPH +0xE990 0x95BB #CJK UNIFIED IDEOGRAPH +0xE991 0x95BC #CJK UNIFIED IDEOGRAPH +0xE992 0x95BD #CJK UNIFIED IDEOGRAPH +0xE993 0x95BE #CJK UNIFIED IDEOGRAPH +0xE994 0x95BF #CJK UNIFIED IDEOGRAPH +0xE995 0x95C0 #CJK UNIFIED IDEOGRAPH +0xE996 0x95C1 #CJK UNIFIED IDEOGRAPH +0xE997 0x95C2 #CJK UNIFIED IDEOGRAPH +0xE998 0x95C3 #CJK UNIFIED IDEOGRAPH +0xE999 0x95C4 #CJK UNIFIED IDEOGRAPH +0xE99A 0x95C5 #CJK UNIFIED IDEOGRAPH +0xE99B 0x95C6 #CJK UNIFIED IDEOGRAPH +0xE99C 0x95C7 #CJK UNIFIED IDEOGRAPH +0xE99D 0x95C8 #CJK UNIFIED IDEOGRAPH +0xE99E 0x95C9 #CJK UNIFIED IDEOGRAPH +0xE99F 0x95CA #CJK UNIFIED IDEOGRAPH +0xE9A0 0x95CB #CJK UNIFIED IDEOGRAPH +0xE9A1 0x6924 #CJK UNIFIED IDEOGRAPH +0xE9A2 0x68F0 #CJK UNIFIED IDEOGRAPH +0xE9A3 0x690B #CJK UNIFIED IDEOGRAPH +0xE9A4 0x6901 #CJK UNIFIED IDEOGRAPH +0xE9A5 0x6957 #CJK UNIFIED IDEOGRAPH +0xE9A6 0x68E3 #CJK UNIFIED IDEOGRAPH +0xE9A7 0x6910 #CJK UNIFIED IDEOGRAPH +0xE9A8 0x6971 #CJK UNIFIED IDEOGRAPH +0xE9A9 0x6939 #CJK UNIFIED IDEOGRAPH +0xE9AA 0x6960 #CJK UNIFIED IDEOGRAPH +0xE9AB 0x6942 #CJK UNIFIED IDEOGRAPH +0xE9AC 0x695D #CJK UNIFIED IDEOGRAPH +0xE9AD 0x6984 #CJK UNIFIED IDEOGRAPH +0xE9AE 0x696B #CJK UNIFIED IDEOGRAPH +0xE9AF 0x6980 #CJK UNIFIED IDEOGRAPH +0xE9B0 0x6998 #CJK UNIFIED IDEOGRAPH +0xE9B1 0x6978 #CJK UNIFIED IDEOGRAPH +0xE9B2 0x6934 #CJK UNIFIED IDEOGRAPH +0xE9B3 0x69CC #CJK UNIFIED IDEOGRAPH +0xE9B4 0x6987 #CJK UNIFIED IDEOGRAPH +0xE9B5 0x6988 #CJK UNIFIED IDEOGRAPH +0xE9B6 0x69CE #CJK UNIFIED IDEOGRAPH +0xE9B7 0x6989 #CJK UNIFIED IDEOGRAPH +0xE9B8 0x6966 #CJK UNIFIED IDEOGRAPH +0xE9B9 0x6963 #CJK UNIFIED IDEOGRAPH +0xE9BA 0x6979 #CJK UNIFIED IDEOGRAPH +0xE9BB 0x699B #CJK UNIFIED IDEOGRAPH +0xE9BC 0x69A7 #CJK UNIFIED IDEOGRAPH +0xE9BD 0x69BB #CJK UNIFIED IDEOGRAPH +0xE9BE 0x69AB #CJK UNIFIED IDEOGRAPH +0xE9BF 0x69AD #CJK UNIFIED IDEOGRAPH +0xE9C0 0x69D4 #CJK UNIFIED IDEOGRAPH +0xE9C1 0x69B1 #CJK UNIFIED IDEOGRAPH +0xE9C2 0x69C1 #CJK UNIFIED IDEOGRAPH +0xE9C3 0x69CA #CJK UNIFIED IDEOGRAPH +0xE9C4 0x69DF #CJK UNIFIED IDEOGRAPH +0xE9C5 0x6995 #CJK UNIFIED IDEOGRAPH +0xE9C6 0x69E0 #CJK UNIFIED IDEOGRAPH +0xE9C7 0x698D #CJK UNIFIED IDEOGRAPH +0xE9C8 0x69FF #CJK UNIFIED IDEOGRAPH +0xE9C9 0x6A2F #CJK UNIFIED IDEOGRAPH +0xE9CA 0x69ED #CJK UNIFIED IDEOGRAPH +0xE9CB 0x6A17 #CJK UNIFIED IDEOGRAPH +0xE9CC 0x6A18 #CJK UNIFIED IDEOGRAPH +0xE9CD 0x6A65 #CJK UNIFIED IDEOGRAPH +0xE9CE 0x69F2 #CJK UNIFIED IDEOGRAPH +0xE9CF 0x6A44 #CJK UNIFIED IDEOGRAPH +0xE9D0 0x6A3E #CJK UNIFIED IDEOGRAPH +0xE9D1 0x6AA0 #CJK UNIFIED IDEOGRAPH +0xE9D2 0x6A50 #CJK UNIFIED IDEOGRAPH +0xE9D3 0x6A5B #CJK UNIFIED IDEOGRAPH +0xE9D4 0x6A35 #CJK UNIFIED IDEOGRAPH +0xE9D5 0x6A8E #CJK UNIFIED IDEOGRAPH +0xE9D6 0x6A79 #CJK UNIFIED IDEOGRAPH +0xE9D7 0x6A3D #CJK UNIFIED IDEOGRAPH +0xE9D8 0x6A28 #CJK UNIFIED IDEOGRAPH +0xE9D9 0x6A58 #CJK UNIFIED IDEOGRAPH +0xE9DA 0x6A7C #CJK UNIFIED IDEOGRAPH +0xE9DB 0x6A91 #CJK UNIFIED IDEOGRAPH +0xE9DC 0x6A90 #CJK UNIFIED IDEOGRAPH +0xE9DD 0x6AA9 #CJK UNIFIED IDEOGRAPH +0xE9DE 0x6A97 #CJK UNIFIED IDEOGRAPH +0xE9DF 0x6AAB #CJK UNIFIED IDEOGRAPH +0xE9E0 0x7337 #CJK UNIFIED IDEOGRAPH +0xE9E1 0x7352 #CJK UNIFIED IDEOGRAPH +0xE9E2 0x6B81 #CJK UNIFIED IDEOGRAPH +0xE9E3 0x6B82 #CJK UNIFIED IDEOGRAPH +0xE9E4 0x6B87 #CJK UNIFIED IDEOGRAPH +0xE9E5 0x6B84 #CJK UNIFIED IDEOGRAPH +0xE9E6 0x6B92 #CJK UNIFIED IDEOGRAPH +0xE9E7 0x6B93 #CJK UNIFIED IDEOGRAPH +0xE9E8 0x6B8D #CJK UNIFIED IDEOGRAPH +0xE9E9 0x6B9A #CJK UNIFIED IDEOGRAPH +0xE9EA 0x6B9B #CJK UNIFIED IDEOGRAPH +0xE9EB 0x6BA1 #CJK UNIFIED IDEOGRAPH +0xE9EC 0x6BAA #CJK UNIFIED IDEOGRAPH +0xE9ED 0x8F6B #CJK UNIFIED IDEOGRAPH +0xE9EE 0x8F6D #CJK UNIFIED IDEOGRAPH +0xE9EF 0x8F71 #CJK UNIFIED IDEOGRAPH +0xE9F0 0x8F72 #CJK UNIFIED IDEOGRAPH +0xE9F1 0x8F73 #CJK UNIFIED IDEOGRAPH +0xE9F2 0x8F75 #CJK UNIFIED IDEOGRAPH +0xE9F3 0x8F76 #CJK UNIFIED IDEOGRAPH +0xE9F4 0x8F78 #CJK UNIFIED IDEOGRAPH +0xE9F5 0x8F77 #CJK UNIFIED IDEOGRAPH +0xE9F6 0x8F79 #CJK UNIFIED IDEOGRAPH +0xE9F7 0x8F7A #CJK UNIFIED IDEOGRAPH +0xE9F8 0x8F7C #CJK UNIFIED IDEOGRAPH +0xE9F9 0x8F7E #CJK UNIFIED IDEOGRAPH +0xE9FA 0x8F81 #CJK UNIFIED IDEOGRAPH +0xE9FB 0x8F82 #CJK UNIFIED IDEOGRAPH +0xE9FC 0x8F84 #CJK UNIFIED IDEOGRAPH +0xE9FD 0x8F87 #CJK UNIFIED IDEOGRAPH +0xE9FE 0x8F8B #CJK UNIFIED IDEOGRAPH +0xEA40 0x95CC #CJK UNIFIED IDEOGRAPH +0xEA41 0x95CD #CJK UNIFIED IDEOGRAPH +0xEA42 0x95CE #CJK UNIFIED IDEOGRAPH +0xEA43 0x95CF #CJK UNIFIED IDEOGRAPH +0xEA44 0x95D0 #CJK UNIFIED IDEOGRAPH +0xEA45 0x95D1 #CJK UNIFIED IDEOGRAPH +0xEA46 0x95D2 #CJK UNIFIED IDEOGRAPH +0xEA47 0x95D3 #CJK UNIFIED IDEOGRAPH +0xEA48 0x95D4 #CJK UNIFIED IDEOGRAPH +0xEA49 0x95D5 #CJK UNIFIED IDEOGRAPH +0xEA4A 0x95D6 #CJK UNIFIED IDEOGRAPH +0xEA4B 0x95D7 #CJK UNIFIED IDEOGRAPH +0xEA4C 0x95D8 #CJK UNIFIED IDEOGRAPH +0xEA4D 0x95D9 #CJK UNIFIED IDEOGRAPH +0xEA4E 0x95DA #CJK UNIFIED IDEOGRAPH +0xEA4F 0x95DB #CJK UNIFIED IDEOGRAPH +0xEA50 0x95DC #CJK UNIFIED IDEOGRAPH +0xEA51 0x95DD #CJK UNIFIED IDEOGRAPH +0xEA52 0x95DE #CJK UNIFIED IDEOGRAPH +0xEA53 0x95DF #CJK UNIFIED IDEOGRAPH +0xEA54 0x95E0 #CJK UNIFIED IDEOGRAPH +0xEA55 0x95E1 #CJK UNIFIED IDEOGRAPH +0xEA56 0x95E2 #CJK UNIFIED IDEOGRAPH +0xEA57 0x95E3 #CJK UNIFIED IDEOGRAPH +0xEA58 0x95E4 #CJK UNIFIED IDEOGRAPH +0xEA59 0x95E5 #CJK UNIFIED IDEOGRAPH +0xEA5A 0x95E6 #CJK UNIFIED IDEOGRAPH +0xEA5B 0x95E7 #CJK UNIFIED IDEOGRAPH +0xEA5C 0x95EC #CJK UNIFIED IDEOGRAPH +0xEA5D 0x95FF #CJK UNIFIED IDEOGRAPH +0xEA5E 0x9607 #CJK UNIFIED IDEOGRAPH +0xEA5F 0x9613 #CJK UNIFIED IDEOGRAPH +0xEA60 0x9618 #CJK UNIFIED IDEOGRAPH +0xEA61 0x961B #CJK UNIFIED IDEOGRAPH +0xEA62 0x961E #CJK UNIFIED IDEOGRAPH +0xEA63 0x9620 #CJK UNIFIED IDEOGRAPH +0xEA64 0x9623 #CJK UNIFIED IDEOGRAPH +0xEA65 0x9624 #CJK UNIFIED IDEOGRAPH +0xEA66 0x9625 #CJK UNIFIED IDEOGRAPH +0xEA67 0x9626 #CJK UNIFIED IDEOGRAPH +0xEA68 0x9627 #CJK UNIFIED IDEOGRAPH +0xEA69 0x9628 #CJK UNIFIED IDEOGRAPH +0xEA6A 0x9629 #CJK UNIFIED IDEOGRAPH +0xEA6B 0x962B #CJK UNIFIED IDEOGRAPH +0xEA6C 0x962C #CJK UNIFIED IDEOGRAPH +0xEA6D 0x962D #CJK UNIFIED IDEOGRAPH +0xEA6E 0x962F #CJK UNIFIED IDEOGRAPH +0xEA6F 0x9630 #CJK UNIFIED IDEOGRAPH +0xEA70 0x9637 #CJK UNIFIED IDEOGRAPH +0xEA71 0x9638 #CJK UNIFIED IDEOGRAPH +0xEA72 0x9639 #CJK UNIFIED IDEOGRAPH +0xEA73 0x963A #CJK UNIFIED IDEOGRAPH +0xEA74 0x963E #CJK UNIFIED IDEOGRAPH +0xEA75 0x9641 #CJK UNIFIED IDEOGRAPH +0xEA76 0x9643 #CJK UNIFIED IDEOGRAPH +0xEA77 0x964A #CJK UNIFIED IDEOGRAPH +0xEA78 0x964E #CJK UNIFIED IDEOGRAPH +0xEA79 0x964F #CJK UNIFIED IDEOGRAPH +0xEA7A 0x9651 #CJK UNIFIED IDEOGRAPH +0xEA7B 0x9652 #CJK UNIFIED IDEOGRAPH +0xEA7C 0x9653 #CJK UNIFIED IDEOGRAPH +0xEA7D 0x9656 #CJK UNIFIED IDEOGRAPH +0xEA7E 0x9657 #CJK UNIFIED IDEOGRAPH +0xEA80 0x9658 #CJK UNIFIED IDEOGRAPH +0xEA81 0x9659 #CJK UNIFIED IDEOGRAPH +0xEA82 0x965A #CJK UNIFIED IDEOGRAPH +0xEA83 0x965C #CJK UNIFIED IDEOGRAPH +0xEA84 0x965D #CJK UNIFIED IDEOGRAPH +0xEA85 0x965E #CJK UNIFIED IDEOGRAPH +0xEA86 0x9660 #CJK UNIFIED IDEOGRAPH +0xEA87 0x9663 #CJK UNIFIED IDEOGRAPH +0xEA88 0x9665 #CJK UNIFIED IDEOGRAPH +0xEA89 0x9666 #CJK UNIFIED IDEOGRAPH +0xEA8A 0x966B #CJK UNIFIED IDEOGRAPH +0xEA8B 0x966D #CJK UNIFIED IDEOGRAPH +0xEA8C 0x966E #CJK UNIFIED IDEOGRAPH +0xEA8D 0x966F #CJK UNIFIED IDEOGRAPH +0xEA8E 0x9670 #CJK UNIFIED IDEOGRAPH +0xEA8F 0x9671 #CJK UNIFIED IDEOGRAPH +0xEA90 0x9673 #CJK UNIFIED IDEOGRAPH +0xEA91 0x9678 #CJK UNIFIED IDEOGRAPH +0xEA92 0x9679 #CJK UNIFIED IDEOGRAPH +0xEA93 0x967A #CJK UNIFIED IDEOGRAPH +0xEA94 0x967B #CJK UNIFIED IDEOGRAPH +0xEA95 0x967C #CJK UNIFIED IDEOGRAPH +0xEA96 0x967D #CJK UNIFIED IDEOGRAPH +0xEA97 0x967E #CJK UNIFIED IDEOGRAPH +0xEA98 0x967F #CJK UNIFIED IDEOGRAPH +0xEA99 0x9680 #CJK UNIFIED IDEOGRAPH +0xEA9A 0x9681 #CJK UNIFIED IDEOGRAPH +0xEA9B 0x9682 #CJK UNIFIED IDEOGRAPH +0xEA9C 0x9683 #CJK UNIFIED IDEOGRAPH +0xEA9D 0x9684 #CJK UNIFIED IDEOGRAPH +0xEA9E 0x9687 #CJK UNIFIED IDEOGRAPH +0xEA9F 0x9689 #CJK UNIFIED IDEOGRAPH +0xEAA0 0x968A #CJK UNIFIED IDEOGRAPH +0xEAA1 0x8F8D #CJK UNIFIED IDEOGRAPH +0xEAA2 0x8F8E #CJK UNIFIED IDEOGRAPH +0xEAA3 0x8F8F #CJK UNIFIED IDEOGRAPH +0xEAA4 0x8F98 #CJK UNIFIED IDEOGRAPH +0xEAA5 0x8F9A #CJK UNIFIED IDEOGRAPH +0xEAA6 0x8ECE #CJK UNIFIED IDEOGRAPH +0xEAA7 0x620B #CJK UNIFIED IDEOGRAPH +0xEAA8 0x6217 #CJK UNIFIED IDEOGRAPH +0xEAA9 0x621B #CJK UNIFIED IDEOGRAPH +0xEAAA 0x621F #CJK UNIFIED IDEOGRAPH +0xEAAB 0x6222 #CJK UNIFIED IDEOGRAPH +0xEAAC 0x6221 #CJK UNIFIED IDEOGRAPH +0xEAAD 0x6225 #CJK UNIFIED IDEOGRAPH +0xEAAE 0x6224 #CJK UNIFIED IDEOGRAPH +0xEAAF 0x622C #CJK UNIFIED IDEOGRAPH +0xEAB0 0x81E7 #CJK UNIFIED IDEOGRAPH +0xEAB1 0x74EF #CJK UNIFIED IDEOGRAPH +0xEAB2 0x74F4 #CJK UNIFIED IDEOGRAPH +0xEAB3 0x74FF #CJK UNIFIED IDEOGRAPH +0xEAB4 0x750F #CJK UNIFIED IDEOGRAPH +0xEAB5 0x7511 #CJK UNIFIED IDEOGRAPH +0xEAB6 0x7513 #CJK UNIFIED IDEOGRAPH +0xEAB7 0x6534 #CJK UNIFIED IDEOGRAPH +0xEAB8 0x65EE #CJK UNIFIED IDEOGRAPH +0xEAB9 0x65EF #CJK UNIFIED IDEOGRAPH +0xEABA 0x65F0 #CJK UNIFIED IDEOGRAPH +0xEABB 0x660A #CJK UNIFIED IDEOGRAPH +0xEABC 0x6619 #CJK UNIFIED IDEOGRAPH +0xEABD 0x6772 #CJK UNIFIED IDEOGRAPH +0xEABE 0x6603 #CJK UNIFIED IDEOGRAPH +0xEABF 0x6615 #CJK UNIFIED IDEOGRAPH +0xEAC0 0x6600 #CJK UNIFIED IDEOGRAPH +0xEAC1 0x7085 #CJK UNIFIED IDEOGRAPH +0xEAC2 0x66F7 #CJK UNIFIED IDEOGRAPH +0xEAC3 0x661D #CJK UNIFIED IDEOGRAPH +0xEAC4 0x6634 #CJK UNIFIED IDEOGRAPH +0xEAC5 0x6631 #CJK UNIFIED IDEOGRAPH +0xEAC6 0x6636 #CJK UNIFIED IDEOGRAPH +0xEAC7 0x6635 #CJK UNIFIED IDEOGRAPH +0xEAC8 0x8006 #CJK UNIFIED IDEOGRAPH +0xEAC9 0x665F #CJK UNIFIED IDEOGRAPH +0xEACA 0x6654 #CJK UNIFIED IDEOGRAPH +0xEACB 0x6641 #CJK UNIFIED IDEOGRAPH +0xEACC 0x664F #CJK UNIFIED IDEOGRAPH +0xEACD 0x6656 #CJK UNIFIED IDEOGRAPH +0xEACE 0x6661 #CJK UNIFIED IDEOGRAPH +0xEACF 0x6657 #CJK UNIFIED IDEOGRAPH +0xEAD0 0x6677 #CJK UNIFIED IDEOGRAPH +0xEAD1 0x6684 #CJK UNIFIED IDEOGRAPH +0xEAD2 0x668C #CJK UNIFIED IDEOGRAPH +0xEAD3 0x66A7 #CJK UNIFIED IDEOGRAPH +0xEAD4 0x669D #CJK UNIFIED IDEOGRAPH +0xEAD5 0x66BE #CJK UNIFIED IDEOGRAPH +0xEAD6 0x66DB #CJK UNIFIED IDEOGRAPH +0xEAD7 0x66DC #CJK UNIFIED IDEOGRAPH +0xEAD8 0x66E6 #CJK UNIFIED IDEOGRAPH +0xEAD9 0x66E9 #CJK UNIFIED IDEOGRAPH +0xEADA 0x8D32 #CJK UNIFIED IDEOGRAPH +0xEADB 0x8D33 #CJK UNIFIED IDEOGRAPH +0xEADC 0x8D36 #CJK UNIFIED IDEOGRAPH +0xEADD 0x8D3B #CJK UNIFIED IDEOGRAPH +0xEADE 0x8D3D #CJK UNIFIED IDEOGRAPH +0xEADF 0x8D40 #CJK UNIFIED IDEOGRAPH +0xEAE0 0x8D45 #CJK UNIFIED IDEOGRAPH +0xEAE1 0x8D46 #CJK UNIFIED IDEOGRAPH +0xEAE2 0x8D48 #CJK UNIFIED IDEOGRAPH +0xEAE3 0x8D49 #CJK UNIFIED IDEOGRAPH +0xEAE4 0x8D47 #CJK UNIFIED IDEOGRAPH +0xEAE5 0x8D4D #CJK UNIFIED IDEOGRAPH +0xEAE6 0x8D55 #CJK UNIFIED IDEOGRAPH +0xEAE7 0x8D59 #CJK UNIFIED IDEOGRAPH +0xEAE8 0x89C7 #CJK UNIFIED IDEOGRAPH +0xEAE9 0x89CA #CJK UNIFIED IDEOGRAPH +0xEAEA 0x89CB #CJK UNIFIED IDEOGRAPH +0xEAEB 0x89CC #CJK UNIFIED IDEOGRAPH +0xEAEC 0x89CE #CJK UNIFIED IDEOGRAPH +0xEAED 0x89CF #CJK UNIFIED IDEOGRAPH +0xEAEE 0x89D0 #CJK UNIFIED IDEOGRAPH +0xEAEF 0x89D1 #CJK UNIFIED IDEOGRAPH +0xEAF0 0x726E #CJK UNIFIED IDEOGRAPH +0xEAF1 0x729F #CJK UNIFIED IDEOGRAPH +0xEAF2 0x725D #CJK UNIFIED IDEOGRAPH +0xEAF3 0x7266 #CJK UNIFIED IDEOGRAPH +0xEAF4 0x726F #CJK UNIFIED IDEOGRAPH +0xEAF5 0x727E #CJK UNIFIED IDEOGRAPH +0xEAF6 0x727F #CJK UNIFIED IDEOGRAPH +0xEAF7 0x7284 #CJK UNIFIED IDEOGRAPH +0xEAF8 0x728B #CJK UNIFIED IDEOGRAPH +0xEAF9 0x728D #CJK UNIFIED IDEOGRAPH +0xEAFA 0x728F #CJK UNIFIED IDEOGRAPH +0xEAFB 0x7292 #CJK UNIFIED IDEOGRAPH +0xEAFC 0x6308 #CJK UNIFIED IDEOGRAPH +0xEAFD 0x6332 #CJK UNIFIED IDEOGRAPH +0xEAFE 0x63B0 #CJK UNIFIED IDEOGRAPH +0xEB40 0x968C #CJK UNIFIED IDEOGRAPH +0xEB41 0x968E #CJK UNIFIED IDEOGRAPH +0xEB42 0x9691 #CJK UNIFIED IDEOGRAPH +0xEB43 0x9692 #CJK UNIFIED IDEOGRAPH +0xEB44 0x9693 #CJK UNIFIED IDEOGRAPH +0xEB45 0x9695 #CJK UNIFIED IDEOGRAPH +0xEB46 0x9696 #CJK UNIFIED IDEOGRAPH +0xEB47 0x969A #CJK UNIFIED IDEOGRAPH +0xEB48 0x969B #CJK UNIFIED IDEOGRAPH +0xEB49 0x969D #CJK UNIFIED IDEOGRAPH +0xEB4A 0x969E #CJK UNIFIED IDEOGRAPH +0xEB4B 0x969F #CJK UNIFIED IDEOGRAPH +0xEB4C 0x96A0 #CJK UNIFIED IDEOGRAPH +0xEB4D 0x96A1 #CJK UNIFIED IDEOGRAPH +0xEB4E 0x96A2 #CJK UNIFIED IDEOGRAPH +0xEB4F 0x96A3 #CJK UNIFIED IDEOGRAPH +0xEB50 0x96A4 #CJK UNIFIED IDEOGRAPH +0xEB51 0x96A5 #CJK UNIFIED IDEOGRAPH +0xEB52 0x96A6 #CJK UNIFIED IDEOGRAPH +0xEB53 0x96A8 #CJK UNIFIED IDEOGRAPH +0xEB54 0x96A9 #CJK UNIFIED IDEOGRAPH +0xEB55 0x96AA #CJK UNIFIED IDEOGRAPH +0xEB56 0x96AB #CJK UNIFIED IDEOGRAPH +0xEB57 0x96AC #CJK UNIFIED IDEOGRAPH +0xEB58 0x96AD #CJK UNIFIED IDEOGRAPH +0xEB59 0x96AE #CJK UNIFIED IDEOGRAPH +0xEB5A 0x96AF #CJK UNIFIED IDEOGRAPH +0xEB5B 0x96B1 #CJK UNIFIED IDEOGRAPH +0xEB5C 0x96B2 #CJK UNIFIED IDEOGRAPH +0xEB5D 0x96B4 #CJK UNIFIED IDEOGRAPH +0xEB5E 0x96B5 #CJK UNIFIED IDEOGRAPH +0xEB5F 0x96B7 #CJK UNIFIED IDEOGRAPH +0xEB60 0x96B8 #CJK UNIFIED IDEOGRAPH +0xEB61 0x96BA #CJK UNIFIED IDEOGRAPH +0xEB62 0x96BB #CJK UNIFIED IDEOGRAPH +0xEB63 0x96BF #CJK UNIFIED IDEOGRAPH +0xEB64 0x96C2 #CJK UNIFIED IDEOGRAPH +0xEB65 0x96C3 #CJK UNIFIED IDEOGRAPH +0xEB66 0x96C8 #CJK UNIFIED IDEOGRAPH +0xEB67 0x96CA #CJK UNIFIED IDEOGRAPH +0xEB68 0x96CB #CJK UNIFIED IDEOGRAPH +0xEB69 0x96D0 #CJK UNIFIED IDEOGRAPH +0xEB6A 0x96D1 #CJK UNIFIED IDEOGRAPH +0xEB6B 0x96D3 #CJK UNIFIED IDEOGRAPH +0xEB6C 0x96D4 #CJK UNIFIED IDEOGRAPH +0xEB6D 0x96D6 #CJK UNIFIED IDEOGRAPH +0xEB6E 0x96D7 #CJK UNIFIED IDEOGRAPH +0xEB6F 0x96D8 #CJK UNIFIED IDEOGRAPH +0xEB70 0x96D9 #CJK UNIFIED IDEOGRAPH +0xEB71 0x96DA #CJK UNIFIED IDEOGRAPH +0xEB72 0x96DB #CJK UNIFIED IDEOGRAPH +0xEB73 0x96DC #CJK UNIFIED IDEOGRAPH +0xEB74 0x96DD #CJK UNIFIED IDEOGRAPH +0xEB75 0x96DE #CJK UNIFIED IDEOGRAPH +0xEB76 0x96DF #CJK UNIFIED IDEOGRAPH +0xEB77 0x96E1 #CJK UNIFIED IDEOGRAPH +0xEB78 0x96E2 #CJK UNIFIED IDEOGRAPH +0xEB79 0x96E3 #CJK UNIFIED IDEOGRAPH +0xEB7A 0x96E4 #CJK UNIFIED IDEOGRAPH +0xEB7B 0x96E5 #CJK UNIFIED IDEOGRAPH +0xEB7C 0x96E6 #CJK UNIFIED IDEOGRAPH +0xEB7D 0x96E7 #CJK UNIFIED IDEOGRAPH +0xEB7E 0x96EB #CJK UNIFIED IDEOGRAPH +0xEB80 0x96EC #CJK UNIFIED IDEOGRAPH +0xEB81 0x96ED #CJK UNIFIED IDEOGRAPH +0xEB82 0x96EE #CJK UNIFIED IDEOGRAPH +0xEB83 0x96F0 #CJK UNIFIED IDEOGRAPH +0xEB84 0x96F1 #CJK UNIFIED IDEOGRAPH +0xEB85 0x96F2 #CJK UNIFIED IDEOGRAPH +0xEB86 0x96F4 #CJK UNIFIED IDEOGRAPH +0xEB87 0x96F5 #CJK UNIFIED IDEOGRAPH +0xEB88 0x96F8 #CJK UNIFIED IDEOGRAPH +0xEB89 0x96FA #CJK UNIFIED IDEOGRAPH +0xEB8A 0x96FB #CJK UNIFIED IDEOGRAPH +0xEB8B 0x96FC #CJK UNIFIED IDEOGRAPH +0xEB8C 0x96FD #CJK UNIFIED IDEOGRAPH +0xEB8D 0x96FF #CJK UNIFIED IDEOGRAPH +0xEB8E 0x9702 #CJK UNIFIED IDEOGRAPH +0xEB8F 0x9703 #CJK UNIFIED IDEOGRAPH +0xEB90 0x9705 #CJK UNIFIED IDEOGRAPH +0xEB91 0x970A #CJK UNIFIED IDEOGRAPH +0xEB92 0x970B #CJK UNIFIED IDEOGRAPH +0xEB93 0x970C #CJK UNIFIED IDEOGRAPH +0xEB94 0x9710 #CJK UNIFIED IDEOGRAPH +0xEB95 0x9711 #CJK UNIFIED IDEOGRAPH +0xEB96 0x9712 #CJK UNIFIED IDEOGRAPH +0xEB97 0x9714 #CJK UNIFIED IDEOGRAPH +0xEB98 0x9715 #CJK UNIFIED IDEOGRAPH +0xEB99 0x9717 #CJK UNIFIED IDEOGRAPH +0xEB9A 0x9718 #CJK UNIFIED IDEOGRAPH +0xEB9B 0x9719 #CJK UNIFIED IDEOGRAPH +0xEB9C 0x971A #CJK UNIFIED IDEOGRAPH +0xEB9D 0x971B #CJK UNIFIED IDEOGRAPH +0xEB9E 0x971D #CJK UNIFIED IDEOGRAPH +0xEB9F 0x971F #CJK UNIFIED IDEOGRAPH +0xEBA0 0x9720 #CJK UNIFIED IDEOGRAPH +0xEBA1 0x643F #CJK UNIFIED IDEOGRAPH +0xEBA2 0x64D8 #CJK UNIFIED IDEOGRAPH +0xEBA3 0x8004 #CJK UNIFIED IDEOGRAPH +0xEBA4 0x6BEA #CJK UNIFIED IDEOGRAPH +0xEBA5 0x6BF3 #CJK UNIFIED IDEOGRAPH +0xEBA6 0x6BFD #CJK UNIFIED IDEOGRAPH +0xEBA7 0x6BF5 #CJK UNIFIED IDEOGRAPH +0xEBA8 0x6BF9 #CJK UNIFIED IDEOGRAPH +0xEBA9 0x6C05 #CJK UNIFIED IDEOGRAPH +0xEBAA 0x6C07 #CJK UNIFIED IDEOGRAPH +0xEBAB 0x6C06 #CJK UNIFIED IDEOGRAPH +0xEBAC 0x6C0D #CJK UNIFIED IDEOGRAPH +0xEBAD 0x6C15 #CJK UNIFIED IDEOGRAPH +0xEBAE 0x6C18 #CJK UNIFIED IDEOGRAPH +0xEBAF 0x6C19 #CJK UNIFIED IDEOGRAPH +0xEBB0 0x6C1A #CJK UNIFIED IDEOGRAPH +0xEBB1 0x6C21 #CJK UNIFIED IDEOGRAPH +0xEBB2 0x6C29 #CJK UNIFIED IDEOGRAPH +0xEBB3 0x6C24 #CJK UNIFIED IDEOGRAPH +0xEBB4 0x6C2A #CJK UNIFIED IDEOGRAPH +0xEBB5 0x6C32 #CJK UNIFIED IDEOGRAPH +0xEBB6 0x6535 #CJK UNIFIED IDEOGRAPH +0xEBB7 0x6555 #CJK UNIFIED IDEOGRAPH +0xEBB8 0x656B #CJK UNIFIED IDEOGRAPH +0xEBB9 0x724D #CJK UNIFIED IDEOGRAPH +0xEBBA 0x7252 #CJK UNIFIED IDEOGRAPH +0xEBBB 0x7256 #CJK UNIFIED IDEOGRAPH +0xEBBC 0x7230 #CJK UNIFIED IDEOGRAPH +0xEBBD 0x8662 #CJK UNIFIED IDEOGRAPH +0xEBBE 0x5216 #CJK UNIFIED IDEOGRAPH +0xEBBF 0x809F #CJK UNIFIED IDEOGRAPH +0xEBC0 0x809C #CJK UNIFIED IDEOGRAPH +0xEBC1 0x8093 #CJK UNIFIED IDEOGRAPH +0xEBC2 0x80BC #CJK UNIFIED IDEOGRAPH +0xEBC3 0x670A #CJK UNIFIED IDEOGRAPH +0xEBC4 0x80BD #CJK UNIFIED IDEOGRAPH +0xEBC5 0x80B1 #CJK UNIFIED IDEOGRAPH +0xEBC6 0x80AB #CJK UNIFIED IDEOGRAPH +0xEBC7 0x80AD #CJK UNIFIED IDEOGRAPH +0xEBC8 0x80B4 #CJK UNIFIED IDEOGRAPH +0xEBC9 0x80B7 #CJK UNIFIED IDEOGRAPH +0xEBCA 0x80E7 #CJK UNIFIED IDEOGRAPH +0xEBCB 0x80E8 #CJK UNIFIED IDEOGRAPH +0xEBCC 0x80E9 #CJK UNIFIED IDEOGRAPH +0xEBCD 0x80EA #CJK UNIFIED IDEOGRAPH +0xEBCE 0x80DB #CJK UNIFIED IDEOGRAPH +0xEBCF 0x80C2 #CJK UNIFIED IDEOGRAPH +0xEBD0 0x80C4 #CJK UNIFIED IDEOGRAPH +0xEBD1 0x80D9 #CJK UNIFIED IDEOGRAPH +0xEBD2 0x80CD #CJK UNIFIED IDEOGRAPH +0xEBD3 0x80D7 #CJK UNIFIED IDEOGRAPH +0xEBD4 0x6710 #CJK UNIFIED IDEOGRAPH +0xEBD5 0x80DD #CJK UNIFIED IDEOGRAPH +0xEBD6 0x80EB #CJK UNIFIED IDEOGRAPH +0xEBD7 0x80F1 #CJK UNIFIED IDEOGRAPH +0xEBD8 0x80F4 #CJK UNIFIED IDEOGRAPH +0xEBD9 0x80ED #CJK UNIFIED IDEOGRAPH +0xEBDA 0x810D #CJK UNIFIED IDEOGRAPH +0xEBDB 0x810E #CJK UNIFIED IDEOGRAPH +0xEBDC 0x80F2 #CJK UNIFIED IDEOGRAPH +0xEBDD 0x80FC #CJK UNIFIED IDEOGRAPH +0xEBDE 0x6715 #CJK UNIFIED IDEOGRAPH +0xEBDF 0x8112 #CJK UNIFIED IDEOGRAPH +0xEBE0 0x8C5A #CJK UNIFIED IDEOGRAPH +0xEBE1 0x8136 #CJK UNIFIED IDEOGRAPH +0xEBE2 0x811E #CJK UNIFIED IDEOGRAPH +0xEBE3 0x812C #CJK UNIFIED IDEOGRAPH +0xEBE4 0x8118 #CJK UNIFIED IDEOGRAPH +0xEBE5 0x8132 #CJK UNIFIED IDEOGRAPH +0xEBE6 0x8148 #CJK UNIFIED IDEOGRAPH +0xEBE7 0x814C #CJK UNIFIED IDEOGRAPH +0xEBE8 0x8153 #CJK UNIFIED IDEOGRAPH +0xEBE9 0x8174 #CJK UNIFIED IDEOGRAPH +0xEBEA 0x8159 #CJK UNIFIED IDEOGRAPH +0xEBEB 0x815A #CJK UNIFIED IDEOGRAPH +0xEBEC 0x8171 #CJK UNIFIED IDEOGRAPH +0xEBED 0x8160 #CJK UNIFIED IDEOGRAPH +0xEBEE 0x8169 #CJK UNIFIED IDEOGRAPH +0xEBEF 0x817C #CJK UNIFIED IDEOGRAPH +0xEBF0 0x817D #CJK UNIFIED IDEOGRAPH +0xEBF1 0x816D #CJK UNIFIED IDEOGRAPH +0xEBF2 0x8167 #CJK UNIFIED IDEOGRAPH +0xEBF3 0x584D #CJK UNIFIED IDEOGRAPH +0xEBF4 0x5AB5 #CJK UNIFIED IDEOGRAPH +0xEBF5 0x8188 #CJK UNIFIED IDEOGRAPH +0xEBF6 0x8182 #CJK UNIFIED IDEOGRAPH +0xEBF7 0x8191 #CJK UNIFIED IDEOGRAPH +0xEBF8 0x6ED5 #CJK UNIFIED IDEOGRAPH +0xEBF9 0x81A3 #CJK UNIFIED IDEOGRAPH +0xEBFA 0x81AA #CJK UNIFIED IDEOGRAPH +0xEBFB 0x81CC #CJK UNIFIED IDEOGRAPH +0xEBFC 0x6726 #CJK UNIFIED IDEOGRAPH +0xEBFD 0x81CA #CJK UNIFIED IDEOGRAPH +0xEBFE 0x81BB #CJK UNIFIED IDEOGRAPH +0xEC40 0x9721 #CJK UNIFIED IDEOGRAPH +0xEC41 0x9722 #CJK UNIFIED IDEOGRAPH +0xEC42 0x9723 #CJK UNIFIED IDEOGRAPH +0xEC43 0x9724 #CJK UNIFIED IDEOGRAPH +0xEC44 0x9725 #CJK UNIFIED IDEOGRAPH +0xEC45 0x9726 #CJK UNIFIED IDEOGRAPH +0xEC46 0x9727 #CJK UNIFIED IDEOGRAPH +0xEC47 0x9728 #CJK UNIFIED IDEOGRAPH +0xEC48 0x9729 #CJK UNIFIED IDEOGRAPH +0xEC49 0x972B #CJK UNIFIED IDEOGRAPH +0xEC4A 0x972C #CJK UNIFIED IDEOGRAPH +0xEC4B 0x972E #CJK UNIFIED IDEOGRAPH +0xEC4C 0x972F #CJK UNIFIED IDEOGRAPH +0xEC4D 0x9731 #CJK UNIFIED IDEOGRAPH +0xEC4E 0x9733 #CJK UNIFIED IDEOGRAPH +0xEC4F 0x9734 #CJK UNIFIED IDEOGRAPH +0xEC50 0x9735 #CJK UNIFIED IDEOGRAPH +0xEC51 0x9736 #CJK UNIFIED IDEOGRAPH +0xEC52 0x9737 #CJK UNIFIED IDEOGRAPH +0xEC53 0x973A #CJK UNIFIED IDEOGRAPH +0xEC54 0x973B #CJK UNIFIED IDEOGRAPH +0xEC55 0x973C #CJK UNIFIED IDEOGRAPH +0xEC56 0x973D #CJK UNIFIED IDEOGRAPH +0xEC57 0x973F #CJK UNIFIED IDEOGRAPH +0xEC58 0x9740 #CJK UNIFIED IDEOGRAPH +0xEC59 0x9741 #CJK UNIFIED IDEOGRAPH +0xEC5A 0x9742 #CJK UNIFIED IDEOGRAPH +0xEC5B 0x9743 #CJK UNIFIED IDEOGRAPH +0xEC5C 0x9744 #CJK UNIFIED IDEOGRAPH +0xEC5D 0x9745 #CJK UNIFIED IDEOGRAPH +0xEC5E 0x9746 #CJK UNIFIED IDEOGRAPH +0xEC5F 0x9747 #CJK UNIFIED IDEOGRAPH +0xEC60 0x9748 #CJK UNIFIED IDEOGRAPH +0xEC61 0x9749 #CJK UNIFIED IDEOGRAPH +0xEC62 0x974A #CJK UNIFIED IDEOGRAPH +0xEC63 0x974B #CJK UNIFIED IDEOGRAPH +0xEC64 0x974C #CJK UNIFIED IDEOGRAPH +0xEC65 0x974D #CJK UNIFIED IDEOGRAPH +0xEC66 0x974E #CJK UNIFIED IDEOGRAPH +0xEC67 0x974F #CJK UNIFIED IDEOGRAPH +0xEC68 0x9750 #CJK UNIFIED IDEOGRAPH +0xEC69 0x9751 #CJK UNIFIED IDEOGRAPH +0xEC6A 0x9754 #CJK UNIFIED IDEOGRAPH +0xEC6B 0x9755 #CJK UNIFIED IDEOGRAPH +0xEC6C 0x9757 #CJK UNIFIED IDEOGRAPH +0xEC6D 0x9758 #CJK UNIFIED IDEOGRAPH +0xEC6E 0x975A #CJK UNIFIED IDEOGRAPH +0xEC6F 0x975C #CJK UNIFIED IDEOGRAPH +0xEC70 0x975D #CJK UNIFIED IDEOGRAPH +0xEC71 0x975F #CJK UNIFIED IDEOGRAPH +0xEC72 0x9763 #CJK UNIFIED IDEOGRAPH +0xEC73 0x9764 #CJK UNIFIED IDEOGRAPH +0xEC74 0x9766 #CJK UNIFIED IDEOGRAPH +0xEC75 0x9767 #CJK UNIFIED IDEOGRAPH +0xEC76 0x9768 #CJK UNIFIED IDEOGRAPH +0xEC77 0x976A #CJK UNIFIED IDEOGRAPH +0xEC78 0x976B #CJK UNIFIED IDEOGRAPH +0xEC79 0x976C #CJK UNIFIED IDEOGRAPH +0xEC7A 0x976D #CJK UNIFIED IDEOGRAPH +0xEC7B 0x976E #CJK UNIFIED IDEOGRAPH +0xEC7C 0x976F #CJK UNIFIED IDEOGRAPH +0xEC7D 0x9770 #CJK UNIFIED IDEOGRAPH +0xEC7E 0x9771 #CJK UNIFIED IDEOGRAPH +0xEC80 0x9772 #CJK UNIFIED IDEOGRAPH +0xEC81 0x9775 #CJK UNIFIED IDEOGRAPH +0xEC82 0x9777 #CJK UNIFIED IDEOGRAPH +0xEC83 0x9778 #CJK UNIFIED IDEOGRAPH +0xEC84 0x9779 #CJK UNIFIED IDEOGRAPH +0xEC85 0x977A #CJK UNIFIED IDEOGRAPH +0xEC86 0x977B #CJK UNIFIED IDEOGRAPH +0xEC87 0x977D #CJK UNIFIED IDEOGRAPH +0xEC88 0x977E #CJK UNIFIED IDEOGRAPH +0xEC89 0x977F #CJK UNIFIED IDEOGRAPH +0xEC8A 0x9780 #CJK UNIFIED IDEOGRAPH +0xEC8B 0x9781 #CJK UNIFIED IDEOGRAPH +0xEC8C 0x9782 #CJK UNIFIED IDEOGRAPH +0xEC8D 0x9783 #CJK UNIFIED IDEOGRAPH +0xEC8E 0x9784 #CJK UNIFIED IDEOGRAPH +0xEC8F 0x9786 #CJK UNIFIED IDEOGRAPH +0xEC90 0x9787 #CJK UNIFIED IDEOGRAPH +0xEC91 0x9788 #CJK UNIFIED IDEOGRAPH +0xEC92 0x9789 #CJK UNIFIED IDEOGRAPH +0xEC93 0x978A #CJK UNIFIED IDEOGRAPH +0xEC94 0x978C #CJK UNIFIED IDEOGRAPH +0xEC95 0x978E #CJK UNIFIED IDEOGRAPH +0xEC96 0x978F #CJK UNIFIED IDEOGRAPH +0xEC97 0x9790 #CJK UNIFIED IDEOGRAPH +0xEC98 0x9793 #CJK UNIFIED IDEOGRAPH +0xEC99 0x9795 #CJK UNIFIED IDEOGRAPH +0xEC9A 0x9796 #CJK UNIFIED IDEOGRAPH +0xEC9B 0x9797 #CJK UNIFIED IDEOGRAPH +0xEC9C 0x9799 #CJK UNIFIED IDEOGRAPH +0xEC9D 0x979A #CJK UNIFIED IDEOGRAPH +0xEC9E 0x979B #CJK UNIFIED IDEOGRAPH +0xEC9F 0x979C #CJK UNIFIED IDEOGRAPH +0xECA0 0x979D #CJK UNIFIED IDEOGRAPH +0xECA1 0x81C1 #CJK UNIFIED IDEOGRAPH +0xECA2 0x81A6 #CJK UNIFIED IDEOGRAPH +0xECA3 0x6B24 #CJK UNIFIED IDEOGRAPH +0xECA4 0x6B37 #CJK UNIFIED IDEOGRAPH +0xECA5 0x6B39 #CJK UNIFIED IDEOGRAPH +0xECA6 0x6B43 #CJK UNIFIED IDEOGRAPH +0xECA7 0x6B46 #CJK UNIFIED IDEOGRAPH +0xECA8 0x6B59 #CJK UNIFIED IDEOGRAPH +0xECA9 0x98D1 #CJK UNIFIED IDEOGRAPH +0xECAA 0x98D2 #CJK UNIFIED IDEOGRAPH +0xECAB 0x98D3 #CJK UNIFIED IDEOGRAPH +0xECAC 0x98D5 #CJK UNIFIED IDEOGRAPH +0xECAD 0x98D9 #CJK UNIFIED IDEOGRAPH +0xECAE 0x98DA #CJK UNIFIED IDEOGRAPH +0xECAF 0x6BB3 #CJK UNIFIED IDEOGRAPH +0xECB0 0x5F40 #CJK UNIFIED IDEOGRAPH +0xECB1 0x6BC2 #CJK UNIFIED IDEOGRAPH +0xECB2 0x89F3 #CJK UNIFIED IDEOGRAPH +0xECB3 0x6590 #CJK UNIFIED IDEOGRAPH +0xECB4 0x9F51 #CJK UNIFIED IDEOGRAPH +0xECB5 0x6593 #CJK UNIFIED IDEOGRAPH +0xECB6 0x65BC #CJK UNIFIED IDEOGRAPH +0xECB7 0x65C6 #CJK UNIFIED IDEOGRAPH +0xECB8 0x65C4 #CJK UNIFIED IDEOGRAPH +0xECB9 0x65C3 #CJK UNIFIED IDEOGRAPH +0xECBA 0x65CC #CJK UNIFIED IDEOGRAPH +0xECBB 0x65CE #CJK UNIFIED IDEOGRAPH +0xECBC 0x65D2 #CJK UNIFIED IDEOGRAPH +0xECBD 0x65D6 #CJK UNIFIED IDEOGRAPH +0xECBE 0x7080 #CJK UNIFIED IDEOGRAPH +0xECBF 0x709C #CJK UNIFIED IDEOGRAPH +0xECC0 0x7096 #CJK UNIFIED IDEOGRAPH +0xECC1 0x709D #CJK UNIFIED IDEOGRAPH +0xECC2 0x70BB #CJK UNIFIED IDEOGRAPH +0xECC3 0x70C0 #CJK UNIFIED IDEOGRAPH +0xECC4 0x70B7 #CJK UNIFIED IDEOGRAPH +0xECC5 0x70AB #CJK UNIFIED IDEOGRAPH +0xECC6 0x70B1 #CJK UNIFIED IDEOGRAPH +0xECC7 0x70E8 #CJK UNIFIED IDEOGRAPH +0xECC8 0x70CA #CJK UNIFIED IDEOGRAPH +0xECC9 0x7110 #CJK UNIFIED IDEOGRAPH +0xECCA 0x7113 #CJK UNIFIED IDEOGRAPH +0xECCB 0x7116 #CJK UNIFIED IDEOGRAPH +0xECCC 0x712F #CJK UNIFIED IDEOGRAPH +0xECCD 0x7131 #CJK UNIFIED IDEOGRAPH +0xECCE 0x7173 #CJK UNIFIED IDEOGRAPH +0xECCF 0x715C #CJK UNIFIED IDEOGRAPH +0xECD0 0x7168 #CJK UNIFIED IDEOGRAPH +0xECD1 0x7145 #CJK UNIFIED IDEOGRAPH +0xECD2 0x7172 #CJK UNIFIED IDEOGRAPH +0xECD3 0x714A #CJK UNIFIED IDEOGRAPH +0xECD4 0x7178 #CJK UNIFIED IDEOGRAPH +0xECD5 0x717A #CJK UNIFIED IDEOGRAPH +0xECD6 0x7198 #CJK UNIFIED IDEOGRAPH +0xECD7 0x71B3 #CJK UNIFIED IDEOGRAPH +0xECD8 0x71B5 #CJK UNIFIED IDEOGRAPH +0xECD9 0x71A8 #CJK UNIFIED IDEOGRAPH +0xECDA 0x71A0 #CJK UNIFIED IDEOGRAPH +0xECDB 0x71E0 #CJK UNIFIED IDEOGRAPH +0xECDC 0x71D4 #CJK UNIFIED IDEOGRAPH +0xECDD 0x71E7 #CJK UNIFIED IDEOGRAPH +0xECDE 0x71F9 #CJK UNIFIED IDEOGRAPH +0xECDF 0x721D #CJK UNIFIED IDEOGRAPH +0xECE0 0x7228 #CJK UNIFIED IDEOGRAPH +0xECE1 0x706C #CJK UNIFIED IDEOGRAPH +0xECE2 0x7118 #CJK UNIFIED IDEOGRAPH +0xECE3 0x7166 #CJK UNIFIED IDEOGRAPH +0xECE4 0x71B9 #CJK UNIFIED IDEOGRAPH +0xECE5 0x623E #CJK UNIFIED IDEOGRAPH +0xECE6 0x623D #CJK UNIFIED IDEOGRAPH +0xECE7 0x6243 #CJK UNIFIED IDEOGRAPH +0xECE8 0x6248 #CJK UNIFIED IDEOGRAPH +0xECE9 0x6249 #CJK UNIFIED IDEOGRAPH +0xECEA 0x793B #CJK UNIFIED IDEOGRAPH +0xECEB 0x7940 #CJK UNIFIED IDEOGRAPH +0xECEC 0x7946 #CJK UNIFIED IDEOGRAPH +0xECED 0x7949 #CJK UNIFIED IDEOGRAPH +0xECEE 0x795B #CJK UNIFIED IDEOGRAPH +0xECEF 0x795C #CJK UNIFIED IDEOGRAPH +0xECF0 0x7953 #CJK UNIFIED IDEOGRAPH +0xECF1 0x795A #CJK UNIFIED IDEOGRAPH +0xECF2 0x7962 #CJK UNIFIED IDEOGRAPH +0xECF3 0x7957 #CJK UNIFIED IDEOGRAPH +0xECF4 0x7960 #CJK UNIFIED IDEOGRAPH +0xECF5 0x796F #CJK UNIFIED IDEOGRAPH +0xECF6 0x7967 #CJK UNIFIED IDEOGRAPH +0xECF7 0x797A #CJK UNIFIED IDEOGRAPH +0xECF8 0x7985 #CJK UNIFIED IDEOGRAPH +0xECF9 0x798A #CJK UNIFIED IDEOGRAPH +0xECFA 0x799A #CJK UNIFIED IDEOGRAPH +0xECFB 0x79A7 #CJK UNIFIED IDEOGRAPH +0xECFC 0x79B3 #CJK UNIFIED IDEOGRAPH +0xECFD 0x5FD1 #CJK UNIFIED IDEOGRAPH +0xECFE 0x5FD0 #CJK UNIFIED IDEOGRAPH +0xED40 0x979E #CJK UNIFIED IDEOGRAPH +0xED41 0x979F #CJK UNIFIED IDEOGRAPH +0xED42 0x97A1 #CJK UNIFIED IDEOGRAPH +0xED43 0x97A2 #CJK UNIFIED IDEOGRAPH +0xED44 0x97A4 #CJK UNIFIED IDEOGRAPH +0xED45 0x97A5 #CJK UNIFIED IDEOGRAPH +0xED46 0x97A6 #CJK UNIFIED IDEOGRAPH +0xED47 0x97A7 #CJK UNIFIED IDEOGRAPH +0xED48 0x97A8 #CJK UNIFIED IDEOGRAPH +0xED49 0x97A9 #CJK UNIFIED IDEOGRAPH +0xED4A 0x97AA #CJK UNIFIED IDEOGRAPH +0xED4B 0x97AC #CJK UNIFIED IDEOGRAPH +0xED4C 0x97AE #CJK UNIFIED IDEOGRAPH +0xED4D 0x97B0 #CJK UNIFIED IDEOGRAPH +0xED4E 0x97B1 #CJK UNIFIED IDEOGRAPH +0xED4F 0x97B3 #CJK UNIFIED IDEOGRAPH +0xED50 0x97B5 #CJK UNIFIED IDEOGRAPH +0xED51 0x97B6 #CJK UNIFIED IDEOGRAPH +0xED52 0x97B7 #CJK UNIFIED IDEOGRAPH +0xED53 0x97B8 #CJK UNIFIED IDEOGRAPH +0xED54 0x97B9 #CJK UNIFIED IDEOGRAPH +0xED55 0x97BA #CJK UNIFIED IDEOGRAPH +0xED56 0x97BB #CJK UNIFIED IDEOGRAPH +0xED57 0x97BC #CJK UNIFIED IDEOGRAPH +0xED58 0x97BD #CJK UNIFIED IDEOGRAPH +0xED59 0x97BE #CJK UNIFIED IDEOGRAPH +0xED5A 0x97BF #CJK UNIFIED IDEOGRAPH +0xED5B 0x97C0 #CJK UNIFIED IDEOGRAPH +0xED5C 0x97C1 #CJK UNIFIED IDEOGRAPH +0xED5D 0x97C2 #CJK UNIFIED IDEOGRAPH +0xED5E 0x97C3 #CJK UNIFIED IDEOGRAPH +0xED5F 0x97C4 #CJK UNIFIED IDEOGRAPH +0xED60 0x97C5 #CJK UNIFIED IDEOGRAPH +0xED61 0x97C6 #CJK UNIFIED IDEOGRAPH +0xED62 0x97C7 #CJK UNIFIED IDEOGRAPH +0xED63 0x97C8 #CJK UNIFIED IDEOGRAPH +0xED64 0x97C9 #CJK UNIFIED IDEOGRAPH +0xED65 0x97CA #CJK UNIFIED IDEOGRAPH +0xED66 0x97CB #CJK UNIFIED IDEOGRAPH +0xED67 0x97CC #CJK UNIFIED IDEOGRAPH +0xED68 0x97CD #CJK UNIFIED IDEOGRAPH +0xED69 0x97CE #CJK UNIFIED IDEOGRAPH +0xED6A 0x97CF #CJK UNIFIED IDEOGRAPH +0xED6B 0x97D0 #CJK UNIFIED IDEOGRAPH +0xED6C 0x97D1 #CJK UNIFIED IDEOGRAPH +0xED6D 0x97D2 #CJK UNIFIED IDEOGRAPH +0xED6E 0x97D3 #CJK UNIFIED IDEOGRAPH +0xED6F 0x97D4 #CJK UNIFIED IDEOGRAPH +0xED70 0x97D5 #CJK UNIFIED IDEOGRAPH +0xED71 0x97D6 #CJK UNIFIED IDEOGRAPH +0xED72 0x97D7 #CJK UNIFIED IDEOGRAPH +0xED73 0x97D8 #CJK UNIFIED IDEOGRAPH +0xED74 0x97D9 #CJK UNIFIED IDEOGRAPH +0xED75 0x97DA #CJK UNIFIED IDEOGRAPH +0xED76 0x97DB #CJK UNIFIED IDEOGRAPH +0xED77 0x97DC #CJK UNIFIED IDEOGRAPH +0xED78 0x97DD #CJK UNIFIED IDEOGRAPH +0xED79 0x97DE #CJK UNIFIED IDEOGRAPH +0xED7A 0x97DF #CJK UNIFIED IDEOGRAPH +0xED7B 0x97E0 #CJK UNIFIED IDEOGRAPH +0xED7C 0x97E1 #CJK UNIFIED IDEOGRAPH +0xED7D 0x97E2 #CJK UNIFIED IDEOGRAPH +0xED7E 0x97E3 #CJK UNIFIED IDEOGRAPH +0xED80 0x97E4 #CJK UNIFIED IDEOGRAPH +0xED81 0x97E5 #CJK UNIFIED IDEOGRAPH +0xED82 0x97E8 #CJK UNIFIED IDEOGRAPH +0xED83 0x97EE #CJK UNIFIED IDEOGRAPH +0xED84 0x97EF #CJK UNIFIED IDEOGRAPH +0xED85 0x97F0 #CJK UNIFIED IDEOGRAPH +0xED86 0x97F1 #CJK UNIFIED IDEOGRAPH +0xED87 0x97F2 #CJK UNIFIED IDEOGRAPH +0xED88 0x97F4 #CJK UNIFIED IDEOGRAPH +0xED89 0x97F7 #CJK UNIFIED IDEOGRAPH +0xED8A 0x97F8 #CJK UNIFIED IDEOGRAPH +0xED8B 0x97F9 #CJK UNIFIED IDEOGRAPH +0xED8C 0x97FA #CJK UNIFIED IDEOGRAPH +0xED8D 0x97FB #CJK UNIFIED IDEOGRAPH +0xED8E 0x97FC #CJK UNIFIED IDEOGRAPH +0xED8F 0x97FD #CJK UNIFIED IDEOGRAPH +0xED90 0x97FE #CJK UNIFIED IDEOGRAPH +0xED91 0x97FF #CJK UNIFIED IDEOGRAPH +0xED92 0x9800 #CJK UNIFIED IDEOGRAPH +0xED93 0x9801 #CJK UNIFIED IDEOGRAPH +0xED94 0x9802 #CJK UNIFIED IDEOGRAPH +0xED95 0x9803 #CJK UNIFIED IDEOGRAPH +0xED96 0x9804 #CJK UNIFIED IDEOGRAPH +0xED97 0x9805 #CJK UNIFIED IDEOGRAPH +0xED98 0x9806 #CJK UNIFIED IDEOGRAPH +0xED99 0x9807 #CJK UNIFIED IDEOGRAPH +0xED9A 0x9808 #CJK UNIFIED IDEOGRAPH +0xED9B 0x9809 #CJK UNIFIED IDEOGRAPH +0xED9C 0x980A #CJK UNIFIED IDEOGRAPH +0xED9D 0x980B #CJK UNIFIED IDEOGRAPH +0xED9E 0x980C #CJK UNIFIED IDEOGRAPH +0xED9F 0x980D #CJK UNIFIED IDEOGRAPH +0xEDA0 0x980E #CJK UNIFIED IDEOGRAPH +0xEDA1 0x603C #CJK UNIFIED IDEOGRAPH +0xEDA2 0x605D #CJK UNIFIED IDEOGRAPH +0xEDA3 0x605A #CJK UNIFIED IDEOGRAPH +0xEDA4 0x6067 #CJK UNIFIED IDEOGRAPH +0xEDA5 0x6041 #CJK UNIFIED IDEOGRAPH +0xEDA6 0x6059 #CJK UNIFIED IDEOGRAPH +0xEDA7 0x6063 #CJK UNIFIED IDEOGRAPH +0xEDA8 0x60AB #CJK UNIFIED IDEOGRAPH +0xEDA9 0x6106 #CJK UNIFIED IDEOGRAPH +0xEDAA 0x610D #CJK UNIFIED IDEOGRAPH +0xEDAB 0x615D #CJK UNIFIED IDEOGRAPH +0xEDAC 0x61A9 #CJK UNIFIED IDEOGRAPH +0xEDAD 0x619D #CJK UNIFIED IDEOGRAPH +0xEDAE 0x61CB #CJK UNIFIED IDEOGRAPH +0xEDAF 0x61D1 #CJK UNIFIED IDEOGRAPH +0xEDB0 0x6206 #CJK UNIFIED IDEOGRAPH +0xEDB1 0x8080 #CJK UNIFIED IDEOGRAPH +0xEDB2 0x807F #CJK UNIFIED IDEOGRAPH +0xEDB3 0x6C93 #CJK UNIFIED IDEOGRAPH +0xEDB4 0x6CF6 #CJK UNIFIED IDEOGRAPH +0xEDB5 0x6DFC #CJK UNIFIED IDEOGRAPH +0xEDB6 0x77F6 #CJK UNIFIED IDEOGRAPH +0xEDB7 0x77F8 #CJK UNIFIED IDEOGRAPH +0xEDB8 0x7800 #CJK UNIFIED IDEOGRAPH +0xEDB9 0x7809 #CJK UNIFIED IDEOGRAPH +0xEDBA 0x7817 #CJK UNIFIED IDEOGRAPH +0xEDBB 0x7818 #CJK UNIFIED IDEOGRAPH +0xEDBC 0x7811 #CJK UNIFIED IDEOGRAPH +0xEDBD 0x65AB #CJK UNIFIED IDEOGRAPH +0xEDBE 0x782D #CJK UNIFIED IDEOGRAPH +0xEDBF 0x781C #CJK UNIFIED IDEOGRAPH +0xEDC0 0x781D #CJK UNIFIED IDEOGRAPH +0xEDC1 0x7839 #CJK UNIFIED IDEOGRAPH +0xEDC2 0x783A #CJK UNIFIED IDEOGRAPH +0xEDC3 0x783B #CJK UNIFIED IDEOGRAPH +0xEDC4 0x781F #CJK UNIFIED IDEOGRAPH +0xEDC5 0x783C #CJK UNIFIED IDEOGRAPH +0xEDC6 0x7825 #CJK UNIFIED IDEOGRAPH +0xEDC7 0x782C #CJK UNIFIED IDEOGRAPH +0xEDC8 0x7823 #CJK UNIFIED IDEOGRAPH +0xEDC9 0x7829 #CJK UNIFIED IDEOGRAPH +0xEDCA 0x784E #CJK UNIFIED IDEOGRAPH +0xEDCB 0x786D #CJK UNIFIED IDEOGRAPH +0xEDCC 0x7856 #CJK UNIFIED IDEOGRAPH +0xEDCD 0x7857 #CJK UNIFIED IDEOGRAPH +0xEDCE 0x7826 #CJK UNIFIED IDEOGRAPH +0xEDCF 0x7850 #CJK UNIFIED IDEOGRAPH +0xEDD0 0x7847 #CJK UNIFIED IDEOGRAPH +0xEDD1 0x784C #CJK UNIFIED IDEOGRAPH +0xEDD2 0x786A #CJK UNIFIED IDEOGRAPH +0xEDD3 0x789B #CJK UNIFIED IDEOGRAPH +0xEDD4 0x7893 #CJK UNIFIED IDEOGRAPH +0xEDD5 0x789A #CJK UNIFIED IDEOGRAPH +0xEDD6 0x7887 #CJK UNIFIED IDEOGRAPH +0xEDD7 0x789C #CJK UNIFIED IDEOGRAPH +0xEDD8 0x78A1 #CJK UNIFIED IDEOGRAPH +0xEDD9 0x78A3 #CJK UNIFIED IDEOGRAPH +0xEDDA 0x78B2 #CJK UNIFIED IDEOGRAPH +0xEDDB 0x78B9 #CJK UNIFIED IDEOGRAPH +0xEDDC 0x78A5 #CJK UNIFIED IDEOGRAPH +0xEDDD 0x78D4 #CJK UNIFIED IDEOGRAPH +0xEDDE 0x78D9 #CJK UNIFIED IDEOGRAPH +0xEDDF 0x78C9 #CJK UNIFIED IDEOGRAPH +0xEDE0 0x78EC #CJK UNIFIED IDEOGRAPH +0xEDE1 0x78F2 #CJK UNIFIED IDEOGRAPH +0xEDE2 0x7905 #CJK UNIFIED IDEOGRAPH +0xEDE3 0x78F4 #CJK UNIFIED IDEOGRAPH +0xEDE4 0x7913 #CJK UNIFIED IDEOGRAPH +0xEDE5 0x7924 #CJK UNIFIED IDEOGRAPH +0xEDE6 0x791E #CJK UNIFIED IDEOGRAPH +0xEDE7 0x7934 #CJK UNIFIED IDEOGRAPH +0xEDE8 0x9F9B #CJK UNIFIED IDEOGRAPH +0xEDE9 0x9EF9 #CJK UNIFIED IDEOGRAPH +0xEDEA 0x9EFB #CJK UNIFIED IDEOGRAPH +0xEDEB 0x9EFC #CJK UNIFIED IDEOGRAPH +0xEDEC 0x76F1 #CJK UNIFIED IDEOGRAPH +0xEDED 0x7704 #CJK UNIFIED IDEOGRAPH +0xEDEE 0x770D #CJK UNIFIED IDEOGRAPH +0xEDEF 0x76F9 #CJK UNIFIED IDEOGRAPH +0xEDF0 0x7707 #CJK UNIFIED IDEOGRAPH +0xEDF1 0x7708 #CJK UNIFIED IDEOGRAPH +0xEDF2 0x771A #CJK UNIFIED IDEOGRAPH +0xEDF3 0x7722 #CJK UNIFIED IDEOGRAPH +0xEDF4 0x7719 #CJK UNIFIED IDEOGRAPH +0xEDF5 0x772D #CJK UNIFIED IDEOGRAPH +0xEDF6 0x7726 #CJK UNIFIED IDEOGRAPH +0xEDF7 0x7735 #CJK UNIFIED IDEOGRAPH +0xEDF8 0x7738 #CJK UNIFIED IDEOGRAPH +0xEDF9 0x7750 #CJK UNIFIED IDEOGRAPH +0xEDFA 0x7751 #CJK UNIFIED IDEOGRAPH +0xEDFB 0x7747 #CJK UNIFIED IDEOGRAPH +0xEDFC 0x7743 #CJK UNIFIED IDEOGRAPH +0xEDFD 0x775A #CJK UNIFIED IDEOGRAPH +0xEDFE 0x7768 #CJK UNIFIED IDEOGRAPH +0xEE40 0x980F #CJK UNIFIED IDEOGRAPH +0xEE41 0x9810 #CJK UNIFIED IDEOGRAPH +0xEE42 0x9811 #CJK UNIFIED IDEOGRAPH +0xEE43 0x9812 #CJK UNIFIED IDEOGRAPH +0xEE44 0x9813 #CJK UNIFIED IDEOGRAPH +0xEE45 0x9814 #CJK UNIFIED IDEOGRAPH +0xEE46 0x9815 #CJK UNIFIED IDEOGRAPH +0xEE47 0x9816 #CJK UNIFIED IDEOGRAPH +0xEE48 0x9817 #CJK UNIFIED IDEOGRAPH +0xEE49 0x9818 #CJK UNIFIED IDEOGRAPH +0xEE4A 0x9819 #CJK UNIFIED IDEOGRAPH +0xEE4B 0x981A #CJK UNIFIED IDEOGRAPH +0xEE4C 0x981B #CJK UNIFIED IDEOGRAPH +0xEE4D 0x981C #CJK UNIFIED IDEOGRAPH +0xEE4E 0x981D #CJK UNIFIED IDEOGRAPH +0xEE4F 0x981E #CJK UNIFIED IDEOGRAPH +0xEE50 0x981F #CJK UNIFIED IDEOGRAPH +0xEE51 0x9820 #CJK UNIFIED IDEOGRAPH +0xEE52 0x9821 #CJK UNIFIED IDEOGRAPH +0xEE53 0x9822 #CJK UNIFIED IDEOGRAPH +0xEE54 0x9823 #CJK UNIFIED IDEOGRAPH +0xEE55 0x9824 #CJK UNIFIED IDEOGRAPH +0xEE56 0x9825 #CJK UNIFIED IDEOGRAPH +0xEE57 0x9826 #CJK UNIFIED IDEOGRAPH +0xEE58 0x9827 #CJK UNIFIED IDEOGRAPH +0xEE59 0x9828 #CJK UNIFIED IDEOGRAPH +0xEE5A 0x9829 #CJK UNIFIED IDEOGRAPH +0xEE5B 0x982A #CJK UNIFIED IDEOGRAPH +0xEE5C 0x982B #CJK UNIFIED IDEOGRAPH +0xEE5D 0x982C #CJK UNIFIED IDEOGRAPH +0xEE5E 0x982D #CJK UNIFIED IDEOGRAPH +0xEE5F 0x982E #CJK UNIFIED IDEOGRAPH +0xEE60 0x982F #CJK UNIFIED IDEOGRAPH +0xEE61 0x9830 #CJK UNIFIED IDEOGRAPH +0xEE62 0x9831 #CJK UNIFIED IDEOGRAPH +0xEE63 0x9832 #CJK UNIFIED IDEOGRAPH +0xEE64 0x9833 #CJK UNIFIED IDEOGRAPH +0xEE65 0x9834 #CJK UNIFIED IDEOGRAPH +0xEE66 0x9835 #CJK UNIFIED IDEOGRAPH +0xEE67 0x9836 #CJK UNIFIED IDEOGRAPH +0xEE68 0x9837 #CJK UNIFIED IDEOGRAPH +0xEE69 0x9838 #CJK UNIFIED IDEOGRAPH +0xEE6A 0x9839 #CJK UNIFIED IDEOGRAPH +0xEE6B 0x983A #CJK UNIFIED IDEOGRAPH +0xEE6C 0x983B #CJK UNIFIED IDEOGRAPH +0xEE6D 0x983C #CJK UNIFIED IDEOGRAPH +0xEE6E 0x983D #CJK UNIFIED IDEOGRAPH +0xEE6F 0x983E #CJK UNIFIED IDEOGRAPH +0xEE70 0x983F #CJK UNIFIED IDEOGRAPH +0xEE71 0x9840 #CJK UNIFIED IDEOGRAPH +0xEE72 0x9841 #CJK UNIFIED IDEOGRAPH +0xEE73 0x9842 #CJK UNIFIED IDEOGRAPH +0xEE74 0x9843 #CJK UNIFIED IDEOGRAPH +0xEE75 0x9844 #CJK UNIFIED IDEOGRAPH +0xEE76 0x9845 #CJK UNIFIED IDEOGRAPH +0xEE77 0x9846 #CJK UNIFIED IDEOGRAPH +0xEE78 0x9847 #CJK UNIFIED IDEOGRAPH +0xEE79 0x9848 #CJK UNIFIED IDEOGRAPH +0xEE7A 0x9849 #CJK UNIFIED IDEOGRAPH +0xEE7B 0x984A #CJK UNIFIED IDEOGRAPH +0xEE7C 0x984B #CJK UNIFIED IDEOGRAPH +0xEE7D 0x984C #CJK UNIFIED IDEOGRAPH +0xEE7E 0x984D #CJK UNIFIED IDEOGRAPH +0xEE80 0x984E #CJK UNIFIED IDEOGRAPH +0xEE81 0x984F #CJK UNIFIED IDEOGRAPH +0xEE82 0x9850 #CJK UNIFIED IDEOGRAPH +0xEE83 0x9851 #CJK UNIFIED IDEOGRAPH +0xEE84 0x9852 #CJK UNIFIED IDEOGRAPH +0xEE85 0x9853 #CJK UNIFIED IDEOGRAPH +0xEE86 0x9854 #CJK UNIFIED IDEOGRAPH +0xEE87 0x9855 #CJK UNIFIED IDEOGRAPH +0xEE88 0x9856 #CJK UNIFIED IDEOGRAPH +0xEE89 0x9857 #CJK UNIFIED IDEOGRAPH +0xEE8A 0x9858 #CJK UNIFIED IDEOGRAPH +0xEE8B 0x9859 #CJK UNIFIED IDEOGRAPH +0xEE8C 0x985A #CJK UNIFIED IDEOGRAPH +0xEE8D 0x985B #CJK UNIFIED IDEOGRAPH +0xEE8E 0x985C #CJK UNIFIED IDEOGRAPH +0xEE8F 0x985D #CJK UNIFIED IDEOGRAPH +0xEE90 0x985E #CJK UNIFIED IDEOGRAPH +0xEE91 0x985F #CJK UNIFIED IDEOGRAPH +0xEE92 0x9860 #CJK UNIFIED IDEOGRAPH +0xEE93 0x9861 #CJK UNIFIED IDEOGRAPH +0xEE94 0x9862 #CJK UNIFIED IDEOGRAPH +0xEE95 0x9863 #CJK UNIFIED IDEOGRAPH +0xEE96 0x9864 #CJK UNIFIED IDEOGRAPH +0xEE97 0x9865 #CJK UNIFIED IDEOGRAPH +0xEE98 0x9866 #CJK UNIFIED IDEOGRAPH +0xEE99 0x9867 #CJK UNIFIED IDEOGRAPH +0xEE9A 0x9868 #CJK UNIFIED IDEOGRAPH +0xEE9B 0x9869 #CJK UNIFIED IDEOGRAPH +0xEE9C 0x986A #CJK UNIFIED IDEOGRAPH +0xEE9D 0x986B #CJK UNIFIED IDEOGRAPH +0xEE9E 0x986C #CJK UNIFIED IDEOGRAPH +0xEE9F 0x986D #CJK UNIFIED IDEOGRAPH +0xEEA0 0x986E #CJK UNIFIED IDEOGRAPH +0xEEA1 0x7762 #CJK UNIFIED IDEOGRAPH +0xEEA2 0x7765 #CJK UNIFIED IDEOGRAPH +0xEEA3 0x777F #CJK UNIFIED IDEOGRAPH +0xEEA4 0x778D #CJK UNIFIED IDEOGRAPH +0xEEA5 0x777D #CJK UNIFIED IDEOGRAPH +0xEEA6 0x7780 #CJK UNIFIED IDEOGRAPH +0xEEA7 0x778C #CJK UNIFIED IDEOGRAPH +0xEEA8 0x7791 #CJK UNIFIED IDEOGRAPH +0xEEA9 0x779F #CJK UNIFIED IDEOGRAPH +0xEEAA 0x77A0 #CJK UNIFIED IDEOGRAPH +0xEEAB 0x77B0 #CJK UNIFIED IDEOGRAPH +0xEEAC 0x77B5 #CJK UNIFIED IDEOGRAPH +0xEEAD 0x77BD #CJK UNIFIED IDEOGRAPH +0xEEAE 0x753A #CJK UNIFIED IDEOGRAPH +0xEEAF 0x7540 #CJK UNIFIED IDEOGRAPH +0xEEB0 0x754E #CJK UNIFIED IDEOGRAPH +0xEEB1 0x754B #CJK UNIFIED IDEOGRAPH +0xEEB2 0x7548 #CJK UNIFIED IDEOGRAPH +0xEEB3 0x755B #CJK UNIFIED IDEOGRAPH +0xEEB4 0x7572 #CJK UNIFIED IDEOGRAPH +0xEEB5 0x7579 #CJK UNIFIED IDEOGRAPH +0xEEB6 0x7583 #CJK UNIFIED IDEOGRAPH +0xEEB7 0x7F58 #CJK UNIFIED IDEOGRAPH +0xEEB8 0x7F61 #CJK UNIFIED IDEOGRAPH +0xEEB9 0x7F5F #CJK UNIFIED IDEOGRAPH +0xEEBA 0x8A48 #CJK UNIFIED IDEOGRAPH +0xEEBB 0x7F68 #CJK UNIFIED IDEOGRAPH +0xEEBC 0x7F74 #CJK UNIFIED IDEOGRAPH +0xEEBD 0x7F71 #CJK UNIFIED IDEOGRAPH +0xEEBE 0x7F79 #CJK UNIFIED IDEOGRAPH +0xEEBF 0x7F81 #CJK UNIFIED IDEOGRAPH +0xEEC0 0x7F7E #CJK UNIFIED IDEOGRAPH +0xEEC1 0x76CD #CJK UNIFIED IDEOGRAPH +0xEEC2 0x76E5 #CJK UNIFIED IDEOGRAPH +0xEEC3 0x8832 #CJK UNIFIED IDEOGRAPH +0xEEC4 0x9485 #CJK UNIFIED IDEOGRAPH +0xEEC5 0x9486 #CJK UNIFIED IDEOGRAPH +0xEEC6 0x9487 #CJK UNIFIED IDEOGRAPH +0xEEC7 0x948B #CJK UNIFIED IDEOGRAPH +0xEEC8 0x948A #CJK UNIFIED IDEOGRAPH +0xEEC9 0x948C #CJK UNIFIED IDEOGRAPH +0xEECA 0x948D #CJK UNIFIED IDEOGRAPH +0xEECB 0x948F #CJK UNIFIED IDEOGRAPH +0xEECC 0x9490 #CJK UNIFIED IDEOGRAPH +0xEECD 0x9494 #CJK UNIFIED IDEOGRAPH +0xEECE 0x9497 #CJK UNIFIED IDEOGRAPH +0xEECF 0x9495 #CJK UNIFIED IDEOGRAPH +0xEED0 0x949A #CJK UNIFIED IDEOGRAPH +0xEED1 0x949B #CJK UNIFIED IDEOGRAPH +0xEED2 0x949C #CJK UNIFIED IDEOGRAPH +0xEED3 0x94A3 #CJK UNIFIED IDEOGRAPH +0xEED4 0x94A4 #CJK UNIFIED IDEOGRAPH +0xEED5 0x94AB #CJK UNIFIED IDEOGRAPH +0xEED6 0x94AA #CJK UNIFIED IDEOGRAPH +0xEED7 0x94AD #CJK UNIFIED IDEOGRAPH +0xEED8 0x94AC #CJK UNIFIED IDEOGRAPH +0xEED9 0x94AF #CJK UNIFIED IDEOGRAPH +0xEEDA 0x94B0 #CJK UNIFIED IDEOGRAPH +0xEEDB 0x94B2 #CJK UNIFIED IDEOGRAPH +0xEEDC 0x94B4 #CJK UNIFIED IDEOGRAPH +0xEEDD 0x94B6 #CJK UNIFIED IDEOGRAPH +0xEEDE 0x94B7 #CJK UNIFIED IDEOGRAPH +0xEEDF 0x94B8 #CJK UNIFIED IDEOGRAPH +0xEEE0 0x94B9 #CJK UNIFIED IDEOGRAPH +0xEEE1 0x94BA #CJK UNIFIED IDEOGRAPH +0xEEE2 0x94BC #CJK UNIFIED IDEOGRAPH +0xEEE3 0x94BD #CJK UNIFIED IDEOGRAPH +0xEEE4 0x94BF #CJK UNIFIED IDEOGRAPH +0xEEE5 0x94C4 #CJK UNIFIED IDEOGRAPH +0xEEE6 0x94C8 #CJK UNIFIED IDEOGRAPH +0xEEE7 0x94C9 #CJK UNIFIED IDEOGRAPH +0xEEE8 0x94CA #CJK UNIFIED IDEOGRAPH +0xEEE9 0x94CB #CJK UNIFIED IDEOGRAPH +0xEEEA 0x94CC #CJK UNIFIED IDEOGRAPH +0xEEEB 0x94CD #CJK UNIFIED IDEOGRAPH +0xEEEC 0x94CE #CJK UNIFIED IDEOGRAPH +0xEEED 0x94D0 #CJK UNIFIED IDEOGRAPH +0xEEEE 0x94D1 #CJK UNIFIED IDEOGRAPH +0xEEEF 0x94D2 #CJK UNIFIED IDEOGRAPH +0xEEF0 0x94D5 #CJK UNIFIED IDEOGRAPH +0xEEF1 0x94D6 #CJK UNIFIED IDEOGRAPH +0xEEF2 0x94D7 #CJK UNIFIED IDEOGRAPH +0xEEF3 0x94D9 #CJK UNIFIED IDEOGRAPH +0xEEF4 0x94D8 #CJK UNIFIED IDEOGRAPH +0xEEF5 0x94DB #CJK UNIFIED IDEOGRAPH +0xEEF6 0x94DE #CJK UNIFIED IDEOGRAPH +0xEEF7 0x94DF #CJK UNIFIED IDEOGRAPH +0xEEF8 0x94E0 #CJK UNIFIED IDEOGRAPH +0xEEF9 0x94E2 #CJK UNIFIED IDEOGRAPH +0xEEFA 0x94E4 #CJK UNIFIED IDEOGRAPH +0xEEFB 0x94E5 #CJK UNIFIED IDEOGRAPH +0xEEFC 0x94E7 #CJK UNIFIED IDEOGRAPH +0xEEFD 0x94E8 #CJK UNIFIED IDEOGRAPH +0xEEFE 0x94EA #CJK UNIFIED IDEOGRAPH +0xEF40 0x986F #CJK UNIFIED IDEOGRAPH +0xEF41 0x9870 #CJK UNIFIED IDEOGRAPH +0xEF42 0x9871 #CJK UNIFIED IDEOGRAPH +0xEF43 0x9872 #CJK UNIFIED IDEOGRAPH +0xEF44 0x9873 #CJK UNIFIED IDEOGRAPH +0xEF45 0x9874 #CJK UNIFIED IDEOGRAPH +0xEF46 0x988B #CJK UNIFIED IDEOGRAPH +0xEF47 0x988E #CJK UNIFIED IDEOGRAPH +0xEF48 0x9892 #CJK UNIFIED IDEOGRAPH +0xEF49 0x9895 #CJK UNIFIED IDEOGRAPH +0xEF4A 0x9899 #CJK UNIFIED IDEOGRAPH +0xEF4B 0x98A3 #CJK UNIFIED IDEOGRAPH +0xEF4C 0x98A8 #CJK UNIFIED IDEOGRAPH +0xEF4D 0x98A9 #CJK UNIFIED IDEOGRAPH +0xEF4E 0x98AA #CJK UNIFIED IDEOGRAPH +0xEF4F 0x98AB #CJK UNIFIED IDEOGRAPH +0xEF50 0x98AC #CJK UNIFIED IDEOGRAPH +0xEF51 0x98AD #CJK UNIFIED IDEOGRAPH +0xEF52 0x98AE #CJK UNIFIED IDEOGRAPH +0xEF53 0x98AF #CJK UNIFIED IDEOGRAPH +0xEF54 0x98B0 #CJK UNIFIED IDEOGRAPH +0xEF55 0x98B1 #CJK UNIFIED IDEOGRAPH +0xEF56 0x98B2 #CJK UNIFIED IDEOGRAPH +0xEF57 0x98B3 #CJK UNIFIED IDEOGRAPH +0xEF58 0x98B4 #CJK UNIFIED IDEOGRAPH +0xEF59 0x98B5 #CJK UNIFIED IDEOGRAPH +0xEF5A 0x98B6 #CJK UNIFIED IDEOGRAPH +0xEF5B 0x98B7 #CJK UNIFIED IDEOGRAPH +0xEF5C 0x98B8 #CJK UNIFIED IDEOGRAPH +0xEF5D 0x98B9 #CJK UNIFIED IDEOGRAPH +0xEF5E 0x98BA #CJK UNIFIED IDEOGRAPH +0xEF5F 0x98BB #CJK UNIFIED IDEOGRAPH +0xEF60 0x98BC #CJK UNIFIED IDEOGRAPH +0xEF61 0x98BD #CJK UNIFIED IDEOGRAPH +0xEF62 0x98BE #CJK UNIFIED IDEOGRAPH +0xEF63 0x98BF #CJK UNIFIED IDEOGRAPH +0xEF64 0x98C0 #CJK UNIFIED IDEOGRAPH +0xEF65 0x98C1 #CJK UNIFIED IDEOGRAPH +0xEF66 0x98C2 #CJK UNIFIED IDEOGRAPH +0xEF67 0x98C3 #CJK UNIFIED IDEOGRAPH +0xEF68 0x98C4 #CJK UNIFIED IDEOGRAPH +0xEF69 0x98C5 #CJK UNIFIED IDEOGRAPH +0xEF6A 0x98C6 #CJK UNIFIED IDEOGRAPH +0xEF6B 0x98C7 #CJK UNIFIED IDEOGRAPH +0xEF6C 0x98C8 #CJK UNIFIED IDEOGRAPH +0xEF6D 0x98C9 #CJK UNIFIED IDEOGRAPH +0xEF6E 0x98CA #CJK UNIFIED IDEOGRAPH +0xEF6F 0x98CB #CJK UNIFIED IDEOGRAPH +0xEF70 0x98CC #CJK UNIFIED IDEOGRAPH +0xEF71 0x98CD #CJK UNIFIED IDEOGRAPH +0xEF72 0x98CF #CJK UNIFIED IDEOGRAPH +0xEF73 0x98D0 #CJK UNIFIED IDEOGRAPH +0xEF74 0x98D4 #CJK UNIFIED IDEOGRAPH +0xEF75 0x98D6 #CJK UNIFIED IDEOGRAPH +0xEF76 0x98D7 #CJK UNIFIED IDEOGRAPH +0xEF77 0x98DB #CJK UNIFIED IDEOGRAPH +0xEF78 0x98DC #CJK UNIFIED IDEOGRAPH +0xEF79 0x98DD #CJK UNIFIED IDEOGRAPH +0xEF7A 0x98E0 #CJK UNIFIED IDEOGRAPH +0xEF7B 0x98E1 #CJK UNIFIED IDEOGRAPH +0xEF7C 0x98E2 #CJK UNIFIED IDEOGRAPH +0xEF7D 0x98E3 #CJK UNIFIED IDEOGRAPH +0xEF7E 0x98E4 #CJK UNIFIED IDEOGRAPH +0xEF80 0x98E5 #CJK UNIFIED IDEOGRAPH +0xEF81 0x98E6 #CJK UNIFIED IDEOGRAPH +0xEF82 0x98E9 #CJK UNIFIED IDEOGRAPH +0xEF83 0x98EA #CJK UNIFIED IDEOGRAPH +0xEF84 0x98EB #CJK UNIFIED IDEOGRAPH +0xEF85 0x98EC #CJK UNIFIED IDEOGRAPH +0xEF86 0x98ED #CJK UNIFIED IDEOGRAPH +0xEF87 0x98EE #CJK UNIFIED IDEOGRAPH +0xEF88 0x98EF #CJK UNIFIED IDEOGRAPH +0xEF89 0x98F0 #CJK UNIFIED IDEOGRAPH +0xEF8A 0x98F1 #CJK UNIFIED IDEOGRAPH +0xEF8B 0x98F2 #CJK UNIFIED IDEOGRAPH +0xEF8C 0x98F3 #CJK UNIFIED IDEOGRAPH +0xEF8D 0x98F4 #CJK UNIFIED IDEOGRAPH +0xEF8E 0x98F5 #CJK UNIFIED IDEOGRAPH +0xEF8F 0x98F6 #CJK UNIFIED IDEOGRAPH +0xEF90 0x98F7 #CJK UNIFIED IDEOGRAPH +0xEF91 0x98F8 #CJK UNIFIED IDEOGRAPH +0xEF92 0x98F9 #CJK UNIFIED IDEOGRAPH +0xEF93 0x98FA #CJK UNIFIED IDEOGRAPH +0xEF94 0x98FB #CJK UNIFIED IDEOGRAPH +0xEF95 0x98FC #CJK UNIFIED IDEOGRAPH +0xEF96 0x98FD #CJK UNIFIED IDEOGRAPH +0xEF97 0x98FE #CJK UNIFIED IDEOGRAPH +0xEF98 0x98FF #CJK UNIFIED IDEOGRAPH +0xEF99 0x9900 #CJK UNIFIED IDEOGRAPH +0xEF9A 0x9901 #CJK UNIFIED IDEOGRAPH +0xEF9B 0x9902 #CJK UNIFIED IDEOGRAPH +0xEF9C 0x9903 #CJK UNIFIED IDEOGRAPH +0xEF9D 0x9904 #CJK UNIFIED IDEOGRAPH +0xEF9E 0x9905 #CJK UNIFIED IDEOGRAPH +0xEF9F 0x9906 #CJK UNIFIED IDEOGRAPH +0xEFA0 0x9907 #CJK UNIFIED IDEOGRAPH +0xEFA1 0x94E9 #CJK UNIFIED IDEOGRAPH +0xEFA2 0x94EB #CJK UNIFIED IDEOGRAPH +0xEFA3 0x94EE #CJK UNIFIED IDEOGRAPH +0xEFA4 0x94EF #CJK UNIFIED IDEOGRAPH +0xEFA5 0x94F3 #CJK UNIFIED IDEOGRAPH +0xEFA6 0x94F4 #CJK UNIFIED IDEOGRAPH +0xEFA7 0x94F5 #CJK UNIFIED IDEOGRAPH +0xEFA8 0x94F7 #CJK UNIFIED IDEOGRAPH +0xEFA9 0x94F9 #CJK UNIFIED IDEOGRAPH +0xEFAA 0x94FC #CJK UNIFIED IDEOGRAPH +0xEFAB 0x94FD #CJK UNIFIED IDEOGRAPH +0xEFAC 0x94FF #CJK UNIFIED IDEOGRAPH +0xEFAD 0x9503 #CJK UNIFIED IDEOGRAPH +0xEFAE 0x9502 #CJK UNIFIED IDEOGRAPH +0xEFAF 0x9506 #CJK UNIFIED IDEOGRAPH +0xEFB0 0x9507 #CJK UNIFIED IDEOGRAPH +0xEFB1 0x9509 #CJK UNIFIED IDEOGRAPH +0xEFB2 0x950A #CJK UNIFIED IDEOGRAPH +0xEFB3 0x950D #CJK UNIFIED IDEOGRAPH +0xEFB4 0x950E #CJK UNIFIED IDEOGRAPH +0xEFB5 0x950F #CJK UNIFIED IDEOGRAPH +0xEFB6 0x9512 #CJK UNIFIED IDEOGRAPH +0xEFB7 0x9513 #CJK UNIFIED IDEOGRAPH +0xEFB8 0x9514 #CJK UNIFIED IDEOGRAPH +0xEFB9 0x9515 #CJK UNIFIED IDEOGRAPH +0xEFBA 0x9516 #CJK UNIFIED IDEOGRAPH +0xEFBB 0x9518 #CJK UNIFIED IDEOGRAPH +0xEFBC 0x951B #CJK UNIFIED IDEOGRAPH +0xEFBD 0x951D #CJK UNIFIED IDEOGRAPH +0xEFBE 0x951E #CJK UNIFIED IDEOGRAPH +0xEFBF 0x951F #CJK UNIFIED IDEOGRAPH +0xEFC0 0x9522 #CJK UNIFIED IDEOGRAPH +0xEFC1 0x952A #CJK UNIFIED IDEOGRAPH +0xEFC2 0x952B #CJK UNIFIED IDEOGRAPH +0xEFC3 0x9529 #CJK UNIFIED IDEOGRAPH +0xEFC4 0x952C #CJK UNIFIED IDEOGRAPH +0xEFC5 0x9531 #CJK UNIFIED IDEOGRAPH +0xEFC6 0x9532 #CJK UNIFIED IDEOGRAPH +0xEFC7 0x9534 #CJK UNIFIED IDEOGRAPH +0xEFC8 0x9536 #CJK UNIFIED IDEOGRAPH +0xEFC9 0x9537 #CJK UNIFIED IDEOGRAPH +0xEFCA 0x9538 #CJK UNIFIED IDEOGRAPH +0xEFCB 0x953C #CJK UNIFIED IDEOGRAPH +0xEFCC 0x953E #CJK UNIFIED IDEOGRAPH +0xEFCD 0x953F #CJK UNIFIED IDEOGRAPH +0xEFCE 0x9542 #CJK UNIFIED IDEOGRAPH +0xEFCF 0x9535 #CJK UNIFIED IDEOGRAPH +0xEFD0 0x9544 #CJK UNIFIED IDEOGRAPH +0xEFD1 0x9545 #CJK UNIFIED IDEOGRAPH +0xEFD2 0x9546 #CJK UNIFIED IDEOGRAPH +0xEFD3 0x9549 #CJK UNIFIED IDEOGRAPH +0xEFD4 0x954C #CJK UNIFIED IDEOGRAPH +0xEFD5 0x954E #CJK UNIFIED IDEOGRAPH +0xEFD6 0x954F #CJK UNIFIED IDEOGRAPH +0xEFD7 0x9552 #CJK UNIFIED IDEOGRAPH +0xEFD8 0x9553 #CJK UNIFIED IDEOGRAPH +0xEFD9 0x9554 #CJK UNIFIED IDEOGRAPH +0xEFDA 0x9556 #CJK UNIFIED IDEOGRAPH +0xEFDB 0x9557 #CJK UNIFIED IDEOGRAPH +0xEFDC 0x9558 #CJK UNIFIED IDEOGRAPH +0xEFDD 0x9559 #CJK UNIFIED IDEOGRAPH +0xEFDE 0x955B #CJK UNIFIED IDEOGRAPH +0xEFDF 0x955E #CJK UNIFIED IDEOGRAPH +0xEFE0 0x955F #CJK UNIFIED IDEOGRAPH +0xEFE1 0x955D #CJK UNIFIED IDEOGRAPH +0xEFE2 0x9561 #CJK UNIFIED IDEOGRAPH +0xEFE3 0x9562 #CJK UNIFIED IDEOGRAPH +0xEFE4 0x9564 #CJK UNIFIED IDEOGRAPH +0xEFE5 0x9565 #CJK UNIFIED IDEOGRAPH +0xEFE6 0x9566 #CJK UNIFIED IDEOGRAPH +0xEFE7 0x9567 #CJK UNIFIED IDEOGRAPH +0xEFE8 0x9568 #CJK UNIFIED IDEOGRAPH +0xEFE9 0x9569 #CJK UNIFIED IDEOGRAPH +0xEFEA 0x956A #CJK UNIFIED IDEOGRAPH +0xEFEB 0x956B #CJK UNIFIED IDEOGRAPH +0xEFEC 0x956C #CJK UNIFIED IDEOGRAPH +0xEFED 0x956F #CJK UNIFIED IDEOGRAPH +0xEFEE 0x9571 #CJK UNIFIED IDEOGRAPH +0xEFEF 0x9572 #CJK UNIFIED IDEOGRAPH +0xEFF0 0x9573 #CJK UNIFIED IDEOGRAPH +0xEFF1 0x953A #CJK UNIFIED IDEOGRAPH +0xEFF2 0x77E7 #CJK UNIFIED IDEOGRAPH +0xEFF3 0x77EC #CJK UNIFIED IDEOGRAPH +0xEFF4 0x96C9 #CJK UNIFIED IDEOGRAPH +0xEFF5 0x79D5 #CJK UNIFIED IDEOGRAPH +0xEFF6 0x79ED #CJK UNIFIED IDEOGRAPH +0xEFF7 0x79E3 #CJK UNIFIED IDEOGRAPH +0xEFF8 0x79EB #CJK UNIFIED IDEOGRAPH +0xEFF9 0x7A06 #CJK UNIFIED IDEOGRAPH +0xEFFA 0x5D47 #CJK UNIFIED IDEOGRAPH +0xEFFB 0x7A03 #CJK UNIFIED IDEOGRAPH +0xEFFC 0x7A02 #CJK UNIFIED IDEOGRAPH +0xEFFD 0x7A1E #CJK UNIFIED IDEOGRAPH +0xEFFE 0x7A14 #CJK UNIFIED IDEOGRAPH +0xF040 0x9908 #CJK UNIFIED IDEOGRAPH +0xF041 0x9909 #CJK UNIFIED IDEOGRAPH +0xF042 0x990A #CJK UNIFIED IDEOGRAPH +0xF043 0x990B #CJK UNIFIED IDEOGRAPH +0xF044 0x990C #CJK UNIFIED IDEOGRAPH +0xF045 0x990E #CJK UNIFIED IDEOGRAPH +0xF046 0x990F #CJK UNIFIED IDEOGRAPH +0xF047 0x9911 #CJK UNIFIED IDEOGRAPH +0xF048 0x9912 #CJK UNIFIED IDEOGRAPH +0xF049 0x9913 #CJK UNIFIED IDEOGRAPH +0xF04A 0x9914 #CJK UNIFIED IDEOGRAPH +0xF04B 0x9915 #CJK UNIFIED IDEOGRAPH +0xF04C 0x9916 #CJK UNIFIED IDEOGRAPH +0xF04D 0x9917 #CJK UNIFIED IDEOGRAPH +0xF04E 0x9918 #CJK UNIFIED IDEOGRAPH +0xF04F 0x9919 #CJK UNIFIED IDEOGRAPH +0xF050 0x991A #CJK UNIFIED IDEOGRAPH +0xF051 0x991B #CJK UNIFIED IDEOGRAPH +0xF052 0x991C #CJK UNIFIED IDEOGRAPH +0xF053 0x991D #CJK UNIFIED IDEOGRAPH +0xF054 0x991E #CJK UNIFIED IDEOGRAPH +0xF055 0x991F #CJK UNIFIED IDEOGRAPH +0xF056 0x9920 #CJK UNIFIED IDEOGRAPH +0xF057 0x9921 #CJK UNIFIED IDEOGRAPH +0xF058 0x9922 #CJK UNIFIED IDEOGRAPH +0xF059 0x9923 #CJK UNIFIED IDEOGRAPH +0xF05A 0x9924 #CJK UNIFIED IDEOGRAPH +0xF05B 0x9925 #CJK UNIFIED IDEOGRAPH +0xF05C 0x9926 #CJK UNIFIED IDEOGRAPH +0xF05D 0x9927 #CJK UNIFIED IDEOGRAPH +0xF05E 0x9928 #CJK UNIFIED IDEOGRAPH +0xF05F 0x9929 #CJK UNIFIED IDEOGRAPH +0xF060 0x992A #CJK UNIFIED IDEOGRAPH +0xF061 0x992B #CJK UNIFIED IDEOGRAPH +0xF062 0x992C #CJK UNIFIED IDEOGRAPH +0xF063 0x992D #CJK UNIFIED IDEOGRAPH +0xF064 0x992F #CJK UNIFIED IDEOGRAPH +0xF065 0x9930 #CJK UNIFIED IDEOGRAPH +0xF066 0x9931 #CJK UNIFIED IDEOGRAPH +0xF067 0x9932 #CJK UNIFIED IDEOGRAPH +0xF068 0x9933 #CJK UNIFIED IDEOGRAPH +0xF069 0x9934 #CJK UNIFIED IDEOGRAPH +0xF06A 0x9935 #CJK UNIFIED IDEOGRAPH +0xF06B 0x9936 #CJK UNIFIED IDEOGRAPH +0xF06C 0x9937 #CJK UNIFIED IDEOGRAPH +0xF06D 0x9938 #CJK UNIFIED IDEOGRAPH +0xF06E 0x9939 #CJK UNIFIED IDEOGRAPH +0xF06F 0x993A #CJK UNIFIED IDEOGRAPH +0xF070 0x993B #CJK UNIFIED IDEOGRAPH +0xF071 0x993C #CJK UNIFIED IDEOGRAPH +0xF072 0x993D #CJK UNIFIED IDEOGRAPH +0xF073 0x993E #CJK UNIFIED IDEOGRAPH +0xF074 0x993F #CJK UNIFIED IDEOGRAPH +0xF075 0x9940 #CJK UNIFIED IDEOGRAPH +0xF076 0x9941 #CJK UNIFIED IDEOGRAPH +0xF077 0x9942 #CJK UNIFIED IDEOGRAPH +0xF078 0x9943 #CJK UNIFIED IDEOGRAPH +0xF079 0x9944 #CJK UNIFIED IDEOGRAPH +0xF07A 0x9945 #CJK UNIFIED IDEOGRAPH +0xF07B 0x9946 #CJK UNIFIED IDEOGRAPH +0xF07C 0x9947 #CJK UNIFIED IDEOGRAPH +0xF07D 0x9948 #CJK UNIFIED IDEOGRAPH +0xF07E 0x9949 #CJK UNIFIED IDEOGRAPH +0xF080 0x994A #CJK UNIFIED IDEOGRAPH +0xF081 0x994B #CJK UNIFIED IDEOGRAPH +0xF082 0x994C #CJK UNIFIED IDEOGRAPH +0xF083 0x994D #CJK UNIFIED IDEOGRAPH +0xF084 0x994E #CJK UNIFIED IDEOGRAPH +0xF085 0x994F #CJK UNIFIED IDEOGRAPH +0xF086 0x9950 #CJK UNIFIED IDEOGRAPH +0xF087 0x9951 #CJK UNIFIED IDEOGRAPH +0xF088 0x9952 #CJK UNIFIED IDEOGRAPH +0xF089 0x9953 #CJK UNIFIED IDEOGRAPH +0xF08A 0x9956 #CJK UNIFIED IDEOGRAPH +0xF08B 0x9957 #CJK UNIFIED IDEOGRAPH +0xF08C 0x9958 #CJK UNIFIED IDEOGRAPH +0xF08D 0x9959 #CJK UNIFIED IDEOGRAPH +0xF08E 0x995A #CJK UNIFIED IDEOGRAPH +0xF08F 0x995B #CJK UNIFIED IDEOGRAPH +0xF090 0x995C #CJK UNIFIED IDEOGRAPH +0xF091 0x995D #CJK UNIFIED IDEOGRAPH +0xF092 0x995E #CJK UNIFIED IDEOGRAPH +0xF093 0x995F #CJK UNIFIED IDEOGRAPH +0xF094 0x9960 #CJK UNIFIED IDEOGRAPH +0xF095 0x9961 #CJK UNIFIED IDEOGRAPH +0xF096 0x9962 #CJK UNIFIED IDEOGRAPH +0xF097 0x9964 #CJK UNIFIED IDEOGRAPH +0xF098 0x9966 #CJK UNIFIED IDEOGRAPH +0xF099 0x9973 #CJK UNIFIED IDEOGRAPH +0xF09A 0x9978 #CJK UNIFIED IDEOGRAPH +0xF09B 0x9979 #CJK UNIFIED IDEOGRAPH +0xF09C 0x997B #CJK UNIFIED IDEOGRAPH +0xF09D 0x997E #CJK UNIFIED IDEOGRAPH +0xF09E 0x9982 #CJK UNIFIED IDEOGRAPH +0xF09F 0x9983 #CJK UNIFIED IDEOGRAPH +0xF0A0 0x9989 #CJK UNIFIED IDEOGRAPH +0xF0A1 0x7A39 #CJK UNIFIED IDEOGRAPH +0xF0A2 0x7A37 #CJK UNIFIED IDEOGRAPH +0xF0A3 0x7A51 #CJK UNIFIED IDEOGRAPH +0xF0A4 0x9ECF #CJK UNIFIED IDEOGRAPH +0xF0A5 0x99A5 #CJK UNIFIED IDEOGRAPH +0xF0A6 0x7A70 #CJK UNIFIED IDEOGRAPH +0xF0A7 0x7688 #CJK UNIFIED IDEOGRAPH +0xF0A8 0x768E #CJK UNIFIED IDEOGRAPH +0xF0A9 0x7693 #CJK UNIFIED IDEOGRAPH +0xF0AA 0x7699 #CJK UNIFIED IDEOGRAPH +0xF0AB 0x76A4 #CJK UNIFIED IDEOGRAPH +0xF0AC 0x74DE #CJK UNIFIED IDEOGRAPH +0xF0AD 0x74E0 #CJK UNIFIED IDEOGRAPH +0xF0AE 0x752C #CJK UNIFIED IDEOGRAPH +0xF0AF 0x9E20 #CJK UNIFIED IDEOGRAPH +0xF0B0 0x9E22 #CJK UNIFIED IDEOGRAPH +0xF0B1 0x9E28 #CJK UNIFIED IDEOGRAPH +0xF0B2 0x9E29 #CJK UNIFIED IDEOGRAPH +0xF0B3 0x9E2A #CJK UNIFIED IDEOGRAPH +0xF0B4 0x9E2B #CJK UNIFIED IDEOGRAPH +0xF0B5 0x9E2C #CJK UNIFIED IDEOGRAPH +0xF0B6 0x9E32 #CJK UNIFIED IDEOGRAPH +0xF0B7 0x9E31 #CJK UNIFIED IDEOGRAPH +0xF0B8 0x9E36 #CJK UNIFIED IDEOGRAPH +0xF0B9 0x9E38 #CJK UNIFIED IDEOGRAPH +0xF0BA 0x9E37 #CJK UNIFIED IDEOGRAPH +0xF0BB 0x9E39 #CJK UNIFIED IDEOGRAPH +0xF0BC 0x9E3A #CJK UNIFIED IDEOGRAPH +0xF0BD 0x9E3E #CJK UNIFIED IDEOGRAPH +0xF0BE 0x9E41 #CJK UNIFIED IDEOGRAPH +0xF0BF 0x9E42 #CJK UNIFIED IDEOGRAPH +0xF0C0 0x9E44 #CJK UNIFIED IDEOGRAPH +0xF0C1 0x9E46 #CJK UNIFIED IDEOGRAPH +0xF0C2 0x9E47 #CJK UNIFIED IDEOGRAPH +0xF0C3 0x9E48 #CJK UNIFIED IDEOGRAPH +0xF0C4 0x9E49 #CJK UNIFIED IDEOGRAPH +0xF0C5 0x9E4B #CJK UNIFIED IDEOGRAPH +0xF0C6 0x9E4C #CJK UNIFIED IDEOGRAPH +0xF0C7 0x9E4E #CJK UNIFIED IDEOGRAPH +0xF0C8 0x9E51 #CJK UNIFIED IDEOGRAPH +0xF0C9 0x9E55 #CJK UNIFIED IDEOGRAPH +0xF0CA 0x9E57 #CJK UNIFIED IDEOGRAPH +0xF0CB 0x9E5A #CJK UNIFIED IDEOGRAPH +0xF0CC 0x9E5B #CJK UNIFIED IDEOGRAPH +0xF0CD 0x9E5C #CJK UNIFIED IDEOGRAPH +0xF0CE 0x9E5E #CJK UNIFIED IDEOGRAPH +0xF0CF 0x9E63 #CJK UNIFIED IDEOGRAPH +0xF0D0 0x9E66 #CJK UNIFIED IDEOGRAPH +0xF0D1 0x9E67 #CJK UNIFIED IDEOGRAPH +0xF0D2 0x9E68 #CJK UNIFIED IDEOGRAPH +0xF0D3 0x9E69 #CJK UNIFIED IDEOGRAPH +0xF0D4 0x9E6A #CJK UNIFIED IDEOGRAPH +0xF0D5 0x9E6B #CJK UNIFIED IDEOGRAPH +0xF0D6 0x9E6C #CJK UNIFIED IDEOGRAPH +0xF0D7 0x9E71 #CJK UNIFIED IDEOGRAPH +0xF0D8 0x9E6D #CJK UNIFIED IDEOGRAPH +0xF0D9 0x9E73 #CJK UNIFIED IDEOGRAPH +0xF0DA 0x7592 #CJK UNIFIED IDEOGRAPH +0xF0DB 0x7594 #CJK UNIFIED IDEOGRAPH +0xF0DC 0x7596 #CJK UNIFIED IDEOGRAPH +0xF0DD 0x75A0 #CJK UNIFIED IDEOGRAPH +0xF0DE 0x759D #CJK UNIFIED IDEOGRAPH +0xF0DF 0x75AC #CJK UNIFIED IDEOGRAPH +0xF0E0 0x75A3 #CJK UNIFIED IDEOGRAPH +0xF0E1 0x75B3 #CJK UNIFIED IDEOGRAPH +0xF0E2 0x75B4 #CJK UNIFIED IDEOGRAPH +0xF0E3 0x75B8 #CJK UNIFIED IDEOGRAPH +0xF0E4 0x75C4 #CJK UNIFIED IDEOGRAPH +0xF0E5 0x75B1 #CJK UNIFIED IDEOGRAPH +0xF0E6 0x75B0 #CJK UNIFIED IDEOGRAPH +0xF0E7 0x75C3 #CJK UNIFIED IDEOGRAPH +0xF0E8 0x75C2 #CJK UNIFIED IDEOGRAPH +0xF0E9 0x75D6 #CJK UNIFIED IDEOGRAPH +0xF0EA 0x75CD #CJK UNIFIED IDEOGRAPH +0xF0EB 0x75E3 #CJK UNIFIED IDEOGRAPH +0xF0EC 0x75E8 #CJK UNIFIED IDEOGRAPH +0xF0ED 0x75E6 #CJK UNIFIED IDEOGRAPH +0xF0EE 0x75E4 #CJK UNIFIED IDEOGRAPH +0xF0EF 0x75EB #CJK UNIFIED IDEOGRAPH +0xF0F0 0x75E7 #CJK UNIFIED IDEOGRAPH +0xF0F1 0x7603 #CJK UNIFIED IDEOGRAPH +0xF0F2 0x75F1 #CJK UNIFIED IDEOGRAPH +0xF0F3 0x75FC #CJK UNIFIED IDEOGRAPH +0xF0F4 0x75FF #CJK UNIFIED IDEOGRAPH +0xF0F5 0x7610 #CJK UNIFIED IDEOGRAPH +0xF0F6 0x7600 #CJK UNIFIED IDEOGRAPH +0xF0F7 0x7605 #CJK UNIFIED IDEOGRAPH +0xF0F8 0x760C #CJK UNIFIED IDEOGRAPH +0xF0F9 0x7617 #CJK UNIFIED IDEOGRAPH +0xF0FA 0x760A #CJK UNIFIED IDEOGRAPH +0xF0FB 0x7625 #CJK UNIFIED IDEOGRAPH +0xF0FC 0x7618 #CJK UNIFIED IDEOGRAPH +0xF0FD 0x7615 #CJK UNIFIED IDEOGRAPH +0xF0FE 0x7619 #CJK UNIFIED IDEOGRAPH +0xF140 0x998C #CJK UNIFIED IDEOGRAPH +0xF141 0x998E #CJK UNIFIED IDEOGRAPH +0xF142 0x999A #CJK UNIFIED IDEOGRAPH +0xF143 0x999B #CJK UNIFIED IDEOGRAPH +0xF144 0x999C #CJK UNIFIED IDEOGRAPH +0xF145 0x999D #CJK UNIFIED IDEOGRAPH +0xF146 0x999E #CJK UNIFIED IDEOGRAPH +0xF147 0x999F #CJK UNIFIED IDEOGRAPH +0xF148 0x99A0 #CJK UNIFIED IDEOGRAPH +0xF149 0x99A1 #CJK UNIFIED IDEOGRAPH +0xF14A 0x99A2 #CJK UNIFIED IDEOGRAPH +0xF14B 0x99A3 #CJK UNIFIED IDEOGRAPH +0xF14C 0x99A4 #CJK UNIFIED IDEOGRAPH +0xF14D 0x99A6 #CJK UNIFIED IDEOGRAPH +0xF14E 0x99A7 #CJK UNIFIED IDEOGRAPH +0xF14F 0x99A9 #CJK UNIFIED IDEOGRAPH +0xF150 0x99AA #CJK UNIFIED IDEOGRAPH +0xF151 0x99AB #CJK UNIFIED IDEOGRAPH +0xF152 0x99AC #CJK UNIFIED IDEOGRAPH +0xF153 0x99AD #CJK UNIFIED IDEOGRAPH +0xF154 0x99AE #CJK UNIFIED IDEOGRAPH +0xF155 0x99AF #CJK UNIFIED IDEOGRAPH +0xF156 0x99B0 #CJK UNIFIED IDEOGRAPH +0xF157 0x99B1 #CJK UNIFIED IDEOGRAPH +0xF158 0x99B2 #CJK UNIFIED IDEOGRAPH +0xF159 0x99B3 #CJK UNIFIED IDEOGRAPH +0xF15A 0x99B4 #CJK UNIFIED IDEOGRAPH +0xF15B 0x99B5 #CJK UNIFIED IDEOGRAPH +0xF15C 0x99B6 #CJK UNIFIED IDEOGRAPH +0xF15D 0x99B7 #CJK UNIFIED IDEOGRAPH +0xF15E 0x99B8 #CJK UNIFIED IDEOGRAPH +0xF15F 0x99B9 #CJK UNIFIED IDEOGRAPH +0xF160 0x99BA #CJK UNIFIED IDEOGRAPH +0xF161 0x99BB #CJK UNIFIED IDEOGRAPH +0xF162 0x99BC #CJK UNIFIED IDEOGRAPH +0xF163 0x99BD #CJK UNIFIED IDEOGRAPH +0xF164 0x99BE #CJK UNIFIED IDEOGRAPH +0xF165 0x99BF #CJK UNIFIED IDEOGRAPH +0xF166 0x99C0 #CJK UNIFIED IDEOGRAPH +0xF167 0x99C1 #CJK UNIFIED IDEOGRAPH +0xF168 0x99C2 #CJK UNIFIED IDEOGRAPH +0xF169 0x99C3 #CJK UNIFIED IDEOGRAPH +0xF16A 0x99C4 #CJK UNIFIED IDEOGRAPH +0xF16B 0x99C5 #CJK UNIFIED IDEOGRAPH +0xF16C 0x99C6 #CJK UNIFIED IDEOGRAPH +0xF16D 0x99C7 #CJK UNIFIED IDEOGRAPH +0xF16E 0x99C8 #CJK UNIFIED IDEOGRAPH +0xF16F 0x99C9 #CJK UNIFIED IDEOGRAPH +0xF170 0x99CA #CJK UNIFIED IDEOGRAPH +0xF171 0x99CB #CJK UNIFIED IDEOGRAPH +0xF172 0x99CC #CJK UNIFIED IDEOGRAPH +0xF173 0x99CD #CJK UNIFIED IDEOGRAPH +0xF174 0x99CE #CJK UNIFIED IDEOGRAPH +0xF175 0x99CF #CJK UNIFIED IDEOGRAPH +0xF176 0x99D0 #CJK UNIFIED IDEOGRAPH +0xF177 0x99D1 #CJK UNIFIED IDEOGRAPH +0xF178 0x99D2 #CJK UNIFIED IDEOGRAPH +0xF179 0x99D3 #CJK UNIFIED IDEOGRAPH +0xF17A 0x99D4 #CJK UNIFIED IDEOGRAPH +0xF17B 0x99D5 #CJK UNIFIED IDEOGRAPH +0xF17C 0x99D6 #CJK UNIFIED IDEOGRAPH +0xF17D 0x99D7 #CJK UNIFIED IDEOGRAPH +0xF17E 0x99D8 #CJK UNIFIED IDEOGRAPH +0xF180 0x99D9 #CJK UNIFIED IDEOGRAPH +0xF181 0x99DA #CJK UNIFIED IDEOGRAPH +0xF182 0x99DB #CJK UNIFIED IDEOGRAPH +0xF183 0x99DC #CJK UNIFIED IDEOGRAPH +0xF184 0x99DD #CJK UNIFIED IDEOGRAPH +0xF185 0x99DE #CJK UNIFIED IDEOGRAPH +0xF186 0x99DF #CJK UNIFIED IDEOGRAPH +0xF187 0x99E0 #CJK UNIFIED IDEOGRAPH +0xF188 0x99E1 #CJK UNIFIED IDEOGRAPH +0xF189 0x99E2 #CJK UNIFIED IDEOGRAPH +0xF18A 0x99E3 #CJK UNIFIED IDEOGRAPH +0xF18B 0x99E4 #CJK UNIFIED IDEOGRAPH +0xF18C 0x99E5 #CJK UNIFIED IDEOGRAPH +0xF18D 0x99E6 #CJK UNIFIED IDEOGRAPH +0xF18E 0x99E7 #CJK UNIFIED IDEOGRAPH +0xF18F 0x99E8 #CJK UNIFIED IDEOGRAPH +0xF190 0x99E9 #CJK UNIFIED IDEOGRAPH +0xF191 0x99EA #CJK UNIFIED IDEOGRAPH +0xF192 0x99EB #CJK UNIFIED IDEOGRAPH +0xF193 0x99EC #CJK UNIFIED IDEOGRAPH +0xF194 0x99ED #CJK UNIFIED IDEOGRAPH +0xF195 0x99EE #CJK UNIFIED IDEOGRAPH +0xF196 0x99EF #CJK UNIFIED IDEOGRAPH +0xF197 0x99F0 #CJK UNIFIED IDEOGRAPH +0xF198 0x99F1 #CJK UNIFIED IDEOGRAPH +0xF199 0x99F2 #CJK UNIFIED IDEOGRAPH +0xF19A 0x99F3 #CJK UNIFIED IDEOGRAPH +0xF19B 0x99F4 #CJK UNIFIED IDEOGRAPH +0xF19C 0x99F5 #CJK UNIFIED IDEOGRAPH +0xF19D 0x99F6 #CJK UNIFIED IDEOGRAPH +0xF19E 0x99F7 #CJK UNIFIED IDEOGRAPH +0xF19F 0x99F8 #CJK UNIFIED IDEOGRAPH +0xF1A0 0x99F9 #CJK UNIFIED IDEOGRAPH +0xF1A1 0x761B #CJK UNIFIED IDEOGRAPH +0xF1A2 0x763C #CJK UNIFIED IDEOGRAPH +0xF1A3 0x7622 #CJK UNIFIED IDEOGRAPH +0xF1A4 0x7620 #CJK UNIFIED IDEOGRAPH +0xF1A5 0x7640 #CJK UNIFIED IDEOGRAPH +0xF1A6 0x762D #CJK UNIFIED IDEOGRAPH +0xF1A7 0x7630 #CJK UNIFIED IDEOGRAPH +0xF1A8 0x763F #CJK UNIFIED IDEOGRAPH +0xF1A9 0x7635 #CJK UNIFIED IDEOGRAPH +0xF1AA 0x7643 #CJK UNIFIED IDEOGRAPH +0xF1AB 0x763E #CJK UNIFIED IDEOGRAPH +0xF1AC 0x7633 #CJK UNIFIED IDEOGRAPH +0xF1AD 0x764D #CJK UNIFIED IDEOGRAPH +0xF1AE 0x765E #CJK UNIFIED IDEOGRAPH +0xF1AF 0x7654 #CJK UNIFIED IDEOGRAPH +0xF1B0 0x765C #CJK UNIFIED IDEOGRAPH +0xF1B1 0x7656 #CJK UNIFIED IDEOGRAPH +0xF1B2 0x766B #CJK UNIFIED IDEOGRAPH +0xF1B3 0x766F #CJK UNIFIED IDEOGRAPH +0xF1B4 0x7FCA #CJK UNIFIED IDEOGRAPH +0xF1B5 0x7AE6 #CJK UNIFIED IDEOGRAPH +0xF1B6 0x7A78 #CJK UNIFIED IDEOGRAPH +0xF1B7 0x7A79 #CJK UNIFIED IDEOGRAPH +0xF1B8 0x7A80 #CJK UNIFIED IDEOGRAPH +0xF1B9 0x7A86 #CJK UNIFIED IDEOGRAPH +0xF1BA 0x7A88 #CJK UNIFIED IDEOGRAPH +0xF1BB 0x7A95 #CJK UNIFIED IDEOGRAPH +0xF1BC 0x7AA6 #CJK UNIFIED IDEOGRAPH +0xF1BD 0x7AA0 #CJK UNIFIED IDEOGRAPH +0xF1BE 0x7AAC #CJK UNIFIED IDEOGRAPH +0xF1BF 0x7AA8 #CJK UNIFIED IDEOGRAPH +0xF1C0 0x7AAD #CJK UNIFIED IDEOGRAPH +0xF1C1 0x7AB3 #CJK UNIFIED IDEOGRAPH +0xF1C2 0x8864 #CJK UNIFIED IDEOGRAPH +0xF1C3 0x8869 #CJK UNIFIED IDEOGRAPH +0xF1C4 0x8872 #CJK UNIFIED IDEOGRAPH +0xF1C5 0x887D #CJK UNIFIED IDEOGRAPH +0xF1C6 0x887F #CJK UNIFIED IDEOGRAPH +0xF1C7 0x8882 #CJK UNIFIED IDEOGRAPH +0xF1C8 0x88A2 #CJK UNIFIED IDEOGRAPH +0xF1C9 0x88C6 #CJK UNIFIED IDEOGRAPH +0xF1CA 0x88B7 #CJK UNIFIED IDEOGRAPH +0xF1CB 0x88BC #CJK UNIFIED IDEOGRAPH +0xF1CC 0x88C9 #CJK UNIFIED IDEOGRAPH +0xF1CD 0x88E2 #CJK UNIFIED IDEOGRAPH +0xF1CE 0x88CE #CJK UNIFIED IDEOGRAPH +0xF1CF 0x88E3 #CJK UNIFIED IDEOGRAPH +0xF1D0 0x88E5 #CJK UNIFIED IDEOGRAPH +0xF1D1 0x88F1 #CJK UNIFIED IDEOGRAPH +0xF1D2 0x891A #CJK UNIFIED IDEOGRAPH +0xF1D3 0x88FC #CJK UNIFIED IDEOGRAPH +0xF1D4 0x88E8 #CJK UNIFIED IDEOGRAPH +0xF1D5 0x88FE #CJK UNIFIED IDEOGRAPH +0xF1D6 0x88F0 #CJK UNIFIED IDEOGRAPH +0xF1D7 0x8921 #CJK UNIFIED IDEOGRAPH +0xF1D8 0x8919 #CJK UNIFIED IDEOGRAPH +0xF1D9 0x8913 #CJK UNIFIED IDEOGRAPH +0xF1DA 0x891B #CJK UNIFIED IDEOGRAPH +0xF1DB 0x890A #CJK UNIFIED IDEOGRAPH +0xF1DC 0x8934 #CJK UNIFIED IDEOGRAPH +0xF1DD 0x892B #CJK UNIFIED IDEOGRAPH +0xF1DE 0x8936 #CJK UNIFIED IDEOGRAPH +0xF1DF 0x8941 #CJK UNIFIED IDEOGRAPH +0xF1E0 0x8966 #CJK UNIFIED IDEOGRAPH +0xF1E1 0x897B #CJK UNIFIED IDEOGRAPH +0xF1E2 0x758B #CJK UNIFIED IDEOGRAPH +0xF1E3 0x80E5 #CJK UNIFIED IDEOGRAPH +0xF1E4 0x76B2 #CJK UNIFIED IDEOGRAPH +0xF1E5 0x76B4 #CJK UNIFIED IDEOGRAPH +0xF1E6 0x77DC #CJK UNIFIED IDEOGRAPH +0xF1E7 0x8012 #CJK UNIFIED IDEOGRAPH +0xF1E8 0x8014 #CJK UNIFIED IDEOGRAPH +0xF1E9 0x8016 #CJK UNIFIED IDEOGRAPH +0xF1EA 0x801C #CJK UNIFIED IDEOGRAPH +0xF1EB 0x8020 #CJK UNIFIED IDEOGRAPH +0xF1EC 0x8022 #CJK UNIFIED IDEOGRAPH +0xF1ED 0x8025 #CJK UNIFIED IDEOGRAPH +0xF1EE 0x8026 #CJK UNIFIED IDEOGRAPH +0xF1EF 0x8027 #CJK UNIFIED IDEOGRAPH +0xF1F0 0x8029 #CJK UNIFIED IDEOGRAPH +0xF1F1 0x8028 #CJK UNIFIED IDEOGRAPH +0xF1F2 0x8031 #CJK UNIFIED IDEOGRAPH +0xF1F3 0x800B #CJK UNIFIED IDEOGRAPH +0xF1F4 0x8035 #CJK UNIFIED IDEOGRAPH +0xF1F5 0x8043 #CJK UNIFIED IDEOGRAPH +0xF1F6 0x8046 #CJK UNIFIED IDEOGRAPH +0xF1F7 0x804D #CJK UNIFIED IDEOGRAPH +0xF1F8 0x8052 #CJK UNIFIED IDEOGRAPH +0xF1F9 0x8069 #CJK UNIFIED IDEOGRAPH +0xF1FA 0x8071 #CJK UNIFIED IDEOGRAPH +0xF1FB 0x8983 #CJK UNIFIED IDEOGRAPH +0xF1FC 0x9878 #CJK UNIFIED IDEOGRAPH +0xF1FD 0x9880 #CJK UNIFIED IDEOGRAPH +0xF1FE 0x9883 #CJK UNIFIED IDEOGRAPH +0xF240 0x99FA #CJK UNIFIED IDEOGRAPH +0xF241 0x99FB #CJK UNIFIED IDEOGRAPH +0xF242 0x99FC #CJK UNIFIED IDEOGRAPH +0xF243 0x99FD #CJK UNIFIED IDEOGRAPH +0xF244 0x99FE #CJK UNIFIED IDEOGRAPH +0xF245 0x99FF #CJK UNIFIED IDEOGRAPH +0xF246 0x9A00 #CJK UNIFIED IDEOGRAPH +0xF247 0x9A01 #CJK UNIFIED IDEOGRAPH +0xF248 0x9A02 #CJK UNIFIED IDEOGRAPH +0xF249 0x9A03 #CJK UNIFIED IDEOGRAPH +0xF24A 0x9A04 #CJK UNIFIED IDEOGRAPH +0xF24B 0x9A05 #CJK UNIFIED IDEOGRAPH +0xF24C 0x9A06 #CJK UNIFIED IDEOGRAPH +0xF24D 0x9A07 #CJK UNIFIED IDEOGRAPH +0xF24E 0x9A08 #CJK UNIFIED IDEOGRAPH +0xF24F 0x9A09 #CJK UNIFIED IDEOGRAPH +0xF250 0x9A0A #CJK UNIFIED IDEOGRAPH +0xF251 0x9A0B #CJK UNIFIED IDEOGRAPH +0xF252 0x9A0C #CJK UNIFIED IDEOGRAPH +0xF253 0x9A0D #CJK UNIFIED IDEOGRAPH +0xF254 0x9A0E #CJK UNIFIED IDEOGRAPH +0xF255 0x9A0F #CJK UNIFIED IDEOGRAPH +0xF256 0x9A10 #CJK UNIFIED IDEOGRAPH +0xF257 0x9A11 #CJK UNIFIED IDEOGRAPH +0xF258 0x9A12 #CJK UNIFIED IDEOGRAPH +0xF259 0x9A13 #CJK UNIFIED IDEOGRAPH +0xF25A 0x9A14 #CJK UNIFIED IDEOGRAPH +0xF25B 0x9A15 #CJK UNIFIED IDEOGRAPH +0xF25C 0x9A16 #CJK UNIFIED IDEOGRAPH +0xF25D 0x9A17 #CJK UNIFIED IDEOGRAPH +0xF25E 0x9A18 #CJK UNIFIED IDEOGRAPH +0xF25F 0x9A19 #CJK UNIFIED IDEOGRAPH +0xF260 0x9A1A #CJK UNIFIED IDEOGRAPH +0xF261 0x9A1B #CJK UNIFIED IDEOGRAPH +0xF262 0x9A1C #CJK UNIFIED IDEOGRAPH +0xF263 0x9A1D #CJK UNIFIED IDEOGRAPH +0xF264 0x9A1E #CJK UNIFIED IDEOGRAPH +0xF265 0x9A1F #CJK UNIFIED IDEOGRAPH +0xF266 0x9A20 #CJK UNIFIED IDEOGRAPH +0xF267 0x9A21 #CJK UNIFIED IDEOGRAPH +0xF268 0x9A22 #CJK UNIFIED IDEOGRAPH +0xF269 0x9A23 #CJK UNIFIED IDEOGRAPH +0xF26A 0x9A24 #CJK UNIFIED IDEOGRAPH +0xF26B 0x9A25 #CJK UNIFIED IDEOGRAPH +0xF26C 0x9A26 #CJK UNIFIED IDEOGRAPH +0xF26D 0x9A27 #CJK UNIFIED IDEOGRAPH +0xF26E 0x9A28 #CJK UNIFIED IDEOGRAPH +0xF26F 0x9A29 #CJK UNIFIED IDEOGRAPH +0xF270 0x9A2A #CJK UNIFIED IDEOGRAPH +0xF271 0x9A2B #CJK UNIFIED IDEOGRAPH +0xF272 0x9A2C #CJK UNIFIED IDEOGRAPH +0xF273 0x9A2D #CJK UNIFIED IDEOGRAPH +0xF274 0x9A2E #CJK UNIFIED IDEOGRAPH +0xF275 0x9A2F #CJK UNIFIED IDEOGRAPH +0xF276 0x9A30 #CJK UNIFIED IDEOGRAPH +0xF277 0x9A31 #CJK UNIFIED IDEOGRAPH +0xF278 0x9A32 #CJK UNIFIED IDEOGRAPH +0xF279 0x9A33 #CJK UNIFIED IDEOGRAPH +0xF27A 0x9A34 #CJK UNIFIED IDEOGRAPH +0xF27B 0x9A35 #CJK UNIFIED IDEOGRAPH +0xF27C 0x9A36 #CJK UNIFIED IDEOGRAPH +0xF27D 0x9A37 #CJK UNIFIED IDEOGRAPH +0xF27E 0x9A38 #CJK UNIFIED IDEOGRAPH +0xF280 0x9A39 #CJK UNIFIED IDEOGRAPH +0xF281 0x9A3A #CJK UNIFIED IDEOGRAPH +0xF282 0x9A3B #CJK UNIFIED IDEOGRAPH +0xF283 0x9A3C #CJK UNIFIED IDEOGRAPH +0xF284 0x9A3D #CJK UNIFIED IDEOGRAPH +0xF285 0x9A3E #CJK UNIFIED IDEOGRAPH +0xF286 0x9A3F #CJK UNIFIED IDEOGRAPH +0xF287 0x9A40 #CJK UNIFIED IDEOGRAPH +0xF288 0x9A41 #CJK UNIFIED IDEOGRAPH +0xF289 0x9A42 #CJK UNIFIED IDEOGRAPH +0xF28A 0x9A43 #CJK UNIFIED IDEOGRAPH +0xF28B 0x9A44 #CJK UNIFIED IDEOGRAPH +0xF28C 0x9A45 #CJK UNIFIED IDEOGRAPH +0xF28D 0x9A46 #CJK UNIFIED IDEOGRAPH +0xF28E 0x9A47 #CJK UNIFIED IDEOGRAPH +0xF28F 0x9A48 #CJK UNIFIED IDEOGRAPH +0xF290 0x9A49 #CJK UNIFIED IDEOGRAPH +0xF291 0x9A4A #CJK UNIFIED IDEOGRAPH +0xF292 0x9A4B #CJK UNIFIED IDEOGRAPH +0xF293 0x9A4C #CJK UNIFIED IDEOGRAPH +0xF294 0x9A4D #CJK UNIFIED IDEOGRAPH +0xF295 0x9A4E #CJK UNIFIED IDEOGRAPH +0xF296 0x9A4F #CJK UNIFIED IDEOGRAPH +0xF297 0x9A50 #CJK UNIFIED IDEOGRAPH +0xF298 0x9A51 #CJK UNIFIED IDEOGRAPH +0xF299 0x9A52 #CJK UNIFIED IDEOGRAPH +0xF29A 0x9A53 #CJK UNIFIED IDEOGRAPH +0xF29B 0x9A54 #CJK UNIFIED IDEOGRAPH +0xF29C 0x9A55 #CJK UNIFIED IDEOGRAPH +0xF29D 0x9A56 #CJK UNIFIED IDEOGRAPH +0xF29E 0x9A57 #CJK UNIFIED IDEOGRAPH +0xF29F 0x9A58 #CJK UNIFIED IDEOGRAPH +0xF2A0 0x9A59 #CJK UNIFIED IDEOGRAPH +0xF2A1 0x9889 #CJK UNIFIED IDEOGRAPH +0xF2A2 0x988C #CJK UNIFIED IDEOGRAPH +0xF2A3 0x988D #CJK UNIFIED IDEOGRAPH +0xF2A4 0x988F #CJK UNIFIED IDEOGRAPH +0xF2A5 0x9894 #CJK UNIFIED IDEOGRAPH +0xF2A6 0x989A #CJK UNIFIED IDEOGRAPH +0xF2A7 0x989B #CJK UNIFIED IDEOGRAPH +0xF2A8 0x989E #CJK UNIFIED IDEOGRAPH +0xF2A9 0x989F #CJK UNIFIED IDEOGRAPH +0xF2AA 0x98A1 #CJK UNIFIED IDEOGRAPH +0xF2AB 0x98A2 #CJK UNIFIED IDEOGRAPH +0xF2AC 0x98A5 #CJK UNIFIED IDEOGRAPH +0xF2AD 0x98A6 #CJK UNIFIED IDEOGRAPH +0xF2AE 0x864D #CJK UNIFIED IDEOGRAPH +0xF2AF 0x8654 #CJK UNIFIED IDEOGRAPH +0xF2B0 0x866C #CJK UNIFIED IDEOGRAPH +0xF2B1 0x866E #CJK UNIFIED IDEOGRAPH +0xF2B2 0x867F #CJK UNIFIED IDEOGRAPH +0xF2B3 0x867A #CJK UNIFIED IDEOGRAPH +0xF2B4 0x867C #CJK UNIFIED IDEOGRAPH +0xF2B5 0x867B #CJK UNIFIED IDEOGRAPH +0xF2B6 0x86A8 #CJK UNIFIED IDEOGRAPH +0xF2B7 0x868D #CJK UNIFIED IDEOGRAPH +0xF2B8 0x868B #CJK UNIFIED IDEOGRAPH +0xF2B9 0x86AC #CJK UNIFIED IDEOGRAPH +0xF2BA 0x869D #CJK UNIFIED IDEOGRAPH +0xF2BB 0x86A7 #CJK UNIFIED IDEOGRAPH +0xF2BC 0x86A3 #CJK UNIFIED IDEOGRAPH +0xF2BD 0x86AA #CJK UNIFIED IDEOGRAPH +0xF2BE 0x8693 #CJK UNIFIED IDEOGRAPH +0xF2BF 0x86A9 #CJK UNIFIED IDEOGRAPH +0xF2C0 0x86B6 #CJK UNIFIED IDEOGRAPH +0xF2C1 0x86C4 #CJK UNIFIED IDEOGRAPH +0xF2C2 0x86B5 #CJK UNIFIED IDEOGRAPH +0xF2C3 0x86CE #CJK UNIFIED IDEOGRAPH +0xF2C4 0x86B0 #CJK UNIFIED IDEOGRAPH +0xF2C5 0x86BA #CJK UNIFIED IDEOGRAPH +0xF2C6 0x86B1 #CJK UNIFIED IDEOGRAPH +0xF2C7 0x86AF #CJK UNIFIED IDEOGRAPH +0xF2C8 0x86C9 #CJK UNIFIED IDEOGRAPH +0xF2C9 0x86CF #CJK UNIFIED IDEOGRAPH +0xF2CA 0x86B4 #CJK UNIFIED IDEOGRAPH +0xF2CB 0x86E9 #CJK UNIFIED IDEOGRAPH +0xF2CC 0x86F1 #CJK UNIFIED IDEOGRAPH +0xF2CD 0x86F2 #CJK UNIFIED IDEOGRAPH +0xF2CE 0x86ED #CJK UNIFIED IDEOGRAPH +0xF2CF 0x86F3 #CJK UNIFIED IDEOGRAPH +0xF2D0 0x86D0 #CJK UNIFIED IDEOGRAPH +0xF2D1 0x8713 #CJK UNIFIED IDEOGRAPH +0xF2D2 0x86DE #CJK UNIFIED IDEOGRAPH +0xF2D3 0x86F4 #CJK UNIFIED IDEOGRAPH +0xF2D4 0x86DF #CJK UNIFIED IDEOGRAPH +0xF2D5 0x86D8 #CJK UNIFIED IDEOGRAPH +0xF2D6 0x86D1 #CJK UNIFIED IDEOGRAPH +0xF2D7 0x8703 #CJK UNIFIED IDEOGRAPH +0xF2D8 0x8707 #CJK UNIFIED IDEOGRAPH +0xF2D9 0x86F8 #CJK UNIFIED IDEOGRAPH +0xF2DA 0x8708 #CJK UNIFIED IDEOGRAPH +0xF2DB 0x870A #CJK UNIFIED IDEOGRAPH +0xF2DC 0x870D #CJK UNIFIED IDEOGRAPH +0xF2DD 0x8709 #CJK UNIFIED IDEOGRAPH +0xF2DE 0x8723 #CJK UNIFIED IDEOGRAPH +0xF2DF 0x873B #CJK UNIFIED IDEOGRAPH +0xF2E0 0x871E #CJK UNIFIED IDEOGRAPH +0xF2E1 0x8725 #CJK UNIFIED IDEOGRAPH +0xF2E2 0x872E #CJK UNIFIED IDEOGRAPH +0xF2E3 0x871A #CJK UNIFIED IDEOGRAPH +0xF2E4 0x873E #CJK UNIFIED IDEOGRAPH +0xF2E5 0x8748 #CJK UNIFIED IDEOGRAPH +0xF2E6 0x8734 #CJK UNIFIED IDEOGRAPH +0xF2E7 0x8731 #CJK UNIFIED IDEOGRAPH +0xF2E8 0x8729 #CJK UNIFIED IDEOGRAPH +0xF2E9 0x8737 #CJK UNIFIED IDEOGRAPH +0xF2EA 0x873F #CJK UNIFIED IDEOGRAPH +0xF2EB 0x8782 #CJK UNIFIED IDEOGRAPH +0xF2EC 0x8722 #CJK UNIFIED IDEOGRAPH +0xF2ED 0x877D #CJK UNIFIED IDEOGRAPH +0xF2EE 0x877E #CJK UNIFIED IDEOGRAPH +0xF2EF 0x877B #CJK UNIFIED IDEOGRAPH +0xF2F0 0x8760 #CJK UNIFIED IDEOGRAPH +0xF2F1 0x8770 #CJK UNIFIED IDEOGRAPH +0xF2F2 0x874C #CJK UNIFIED IDEOGRAPH +0xF2F3 0x876E #CJK UNIFIED IDEOGRAPH +0xF2F4 0x878B #CJK UNIFIED IDEOGRAPH +0xF2F5 0x8753 #CJK UNIFIED IDEOGRAPH +0xF2F6 0x8763 #CJK UNIFIED IDEOGRAPH +0xF2F7 0x877C #CJK UNIFIED IDEOGRAPH +0xF2F8 0x8764 #CJK UNIFIED IDEOGRAPH +0xF2F9 0x8759 #CJK UNIFIED IDEOGRAPH +0xF2FA 0x8765 #CJK UNIFIED IDEOGRAPH +0xF2FB 0x8793 #CJK UNIFIED IDEOGRAPH +0xF2FC 0x87AF #CJK UNIFIED IDEOGRAPH +0xF2FD 0x87A8 #CJK UNIFIED IDEOGRAPH +0xF2FE 0x87D2 #CJK UNIFIED IDEOGRAPH +0xF340 0x9A5A #CJK UNIFIED IDEOGRAPH +0xF341 0x9A5B #CJK UNIFIED IDEOGRAPH +0xF342 0x9A5C #CJK UNIFIED IDEOGRAPH +0xF343 0x9A5D #CJK UNIFIED IDEOGRAPH +0xF344 0x9A5E #CJK UNIFIED IDEOGRAPH +0xF345 0x9A5F #CJK UNIFIED IDEOGRAPH +0xF346 0x9A60 #CJK UNIFIED IDEOGRAPH +0xF347 0x9A61 #CJK UNIFIED IDEOGRAPH +0xF348 0x9A62 #CJK UNIFIED IDEOGRAPH +0xF349 0x9A63 #CJK UNIFIED IDEOGRAPH +0xF34A 0x9A64 #CJK UNIFIED IDEOGRAPH +0xF34B 0x9A65 #CJK UNIFIED IDEOGRAPH +0xF34C 0x9A66 #CJK UNIFIED IDEOGRAPH +0xF34D 0x9A67 #CJK UNIFIED IDEOGRAPH +0xF34E 0x9A68 #CJK UNIFIED IDEOGRAPH +0xF34F 0x9A69 #CJK UNIFIED IDEOGRAPH +0xF350 0x9A6A #CJK UNIFIED IDEOGRAPH +0xF351 0x9A6B #CJK UNIFIED IDEOGRAPH +0xF352 0x9A72 #CJK UNIFIED IDEOGRAPH +0xF353 0x9A83 #CJK UNIFIED IDEOGRAPH +0xF354 0x9A89 #CJK UNIFIED IDEOGRAPH +0xF355 0x9A8D #CJK UNIFIED IDEOGRAPH +0xF356 0x9A8E #CJK UNIFIED IDEOGRAPH +0xF357 0x9A94 #CJK UNIFIED IDEOGRAPH +0xF358 0x9A95 #CJK UNIFIED IDEOGRAPH +0xF359 0x9A99 #CJK UNIFIED IDEOGRAPH +0xF35A 0x9AA6 #CJK UNIFIED IDEOGRAPH +0xF35B 0x9AA9 #CJK UNIFIED IDEOGRAPH +0xF35C 0x9AAA #CJK UNIFIED IDEOGRAPH +0xF35D 0x9AAB #CJK UNIFIED IDEOGRAPH +0xF35E 0x9AAC #CJK UNIFIED IDEOGRAPH +0xF35F 0x9AAD #CJK UNIFIED IDEOGRAPH +0xF360 0x9AAE #CJK UNIFIED IDEOGRAPH +0xF361 0x9AAF #CJK UNIFIED IDEOGRAPH +0xF362 0x9AB2 #CJK UNIFIED IDEOGRAPH +0xF363 0x9AB3 #CJK UNIFIED IDEOGRAPH +0xF364 0x9AB4 #CJK UNIFIED IDEOGRAPH +0xF365 0x9AB5 #CJK UNIFIED IDEOGRAPH +0xF366 0x9AB9 #CJK UNIFIED IDEOGRAPH +0xF367 0x9ABB #CJK UNIFIED IDEOGRAPH +0xF368 0x9ABD #CJK UNIFIED IDEOGRAPH +0xF369 0x9ABE #CJK UNIFIED IDEOGRAPH +0xF36A 0x9ABF #CJK UNIFIED IDEOGRAPH +0xF36B 0x9AC3 #CJK UNIFIED IDEOGRAPH +0xF36C 0x9AC4 #CJK UNIFIED IDEOGRAPH +0xF36D 0x9AC6 #CJK UNIFIED IDEOGRAPH +0xF36E 0x9AC7 #CJK UNIFIED IDEOGRAPH +0xF36F 0x9AC8 #CJK UNIFIED IDEOGRAPH +0xF370 0x9AC9 #CJK UNIFIED IDEOGRAPH +0xF371 0x9ACA #CJK UNIFIED IDEOGRAPH +0xF372 0x9ACD #CJK UNIFIED IDEOGRAPH +0xF373 0x9ACE #CJK UNIFIED IDEOGRAPH +0xF374 0x9ACF #CJK UNIFIED IDEOGRAPH +0xF375 0x9AD0 #CJK UNIFIED IDEOGRAPH +0xF376 0x9AD2 #CJK UNIFIED IDEOGRAPH +0xF377 0x9AD4 #CJK UNIFIED IDEOGRAPH +0xF378 0x9AD5 #CJK UNIFIED IDEOGRAPH +0xF379 0x9AD6 #CJK UNIFIED IDEOGRAPH +0xF37A 0x9AD7 #CJK UNIFIED IDEOGRAPH +0xF37B 0x9AD9 #CJK UNIFIED IDEOGRAPH +0xF37C 0x9ADA #CJK UNIFIED IDEOGRAPH +0xF37D 0x9ADB #CJK UNIFIED IDEOGRAPH +0xF37E 0x9ADC #CJK UNIFIED IDEOGRAPH +0xF380 0x9ADD #CJK UNIFIED IDEOGRAPH +0xF381 0x9ADE #CJK UNIFIED IDEOGRAPH +0xF382 0x9AE0 #CJK UNIFIED IDEOGRAPH +0xF383 0x9AE2 #CJK UNIFIED IDEOGRAPH +0xF384 0x9AE3 #CJK UNIFIED IDEOGRAPH +0xF385 0x9AE4 #CJK UNIFIED IDEOGRAPH +0xF386 0x9AE5 #CJK UNIFIED IDEOGRAPH +0xF387 0x9AE7 #CJK UNIFIED IDEOGRAPH +0xF388 0x9AE8 #CJK UNIFIED IDEOGRAPH +0xF389 0x9AE9 #CJK UNIFIED IDEOGRAPH +0xF38A 0x9AEA #CJK UNIFIED IDEOGRAPH +0xF38B 0x9AEC #CJK UNIFIED IDEOGRAPH +0xF38C 0x9AEE #CJK UNIFIED IDEOGRAPH +0xF38D 0x9AF0 #CJK UNIFIED IDEOGRAPH +0xF38E 0x9AF1 #CJK UNIFIED IDEOGRAPH +0xF38F 0x9AF2 #CJK UNIFIED IDEOGRAPH +0xF390 0x9AF3 #CJK UNIFIED IDEOGRAPH +0xF391 0x9AF4 #CJK UNIFIED IDEOGRAPH +0xF392 0x9AF5 #CJK UNIFIED IDEOGRAPH +0xF393 0x9AF6 #CJK UNIFIED IDEOGRAPH +0xF394 0x9AF7 #CJK UNIFIED IDEOGRAPH +0xF395 0x9AF8 #CJK UNIFIED IDEOGRAPH +0xF396 0x9AFA #CJK UNIFIED IDEOGRAPH +0xF397 0x9AFC #CJK UNIFIED IDEOGRAPH +0xF398 0x9AFD #CJK UNIFIED IDEOGRAPH +0xF399 0x9AFE #CJK UNIFIED IDEOGRAPH +0xF39A 0x9AFF #CJK UNIFIED IDEOGRAPH +0xF39B 0x9B00 #CJK UNIFIED IDEOGRAPH +0xF39C 0x9B01 #CJK UNIFIED IDEOGRAPH +0xF39D 0x9B02 #CJK UNIFIED IDEOGRAPH +0xF39E 0x9B04 #CJK UNIFIED IDEOGRAPH +0xF39F 0x9B05 #CJK UNIFIED IDEOGRAPH +0xF3A0 0x9B06 #CJK UNIFIED IDEOGRAPH +0xF3A1 0x87C6 #CJK UNIFIED IDEOGRAPH +0xF3A2 0x8788 #CJK UNIFIED IDEOGRAPH +0xF3A3 0x8785 #CJK UNIFIED IDEOGRAPH +0xF3A4 0x87AD #CJK UNIFIED IDEOGRAPH +0xF3A5 0x8797 #CJK UNIFIED IDEOGRAPH +0xF3A6 0x8783 #CJK UNIFIED IDEOGRAPH +0xF3A7 0x87AB #CJK UNIFIED IDEOGRAPH +0xF3A8 0x87E5 #CJK UNIFIED IDEOGRAPH +0xF3A9 0x87AC #CJK UNIFIED IDEOGRAPH +0xF3AA 0x87B5 #CJK UNIFIED IDEOGRAPH +0xF3AB 0x87B3 #CJK UNIFIED IDEOGRAPH +0xF3AC 0x87CB #CJK UNIFIED IDEOGRAPH +0xF3AD 0x87D3 #CJK UNIFIED IDEOGRAPH +0xF3AE 0x87BD #CJK UNIFIED IDEOGRAPH +0xF3AF 0x87D1 #CJK UNIFIED IDEOGRAPH +0xF3B0 0x87C0 #CJK UNIFIED IDEOGRAPH +0xF3B1 0x87CA #CJK UNIFIED IDEOGRAPH +0xF3B2 0x87DB #CJK UNIFIED IDEOGRAPH +0xF3B3 0x87EA #CJK UNIFIED IDEOGRAPH +0xF3B4 0x87E0 #CJK UNIFIED IDEOGRAPH +0xF3B5 0x87EE #CJK UNIFIED IDEOGRAPH +0xF3B6 0x8816 #CJK UNIFIED IDEOGRAPH +0xF3B7 0x8813 #CJK UNIFIED IDEOGRAPH +0xF3B8 0x87FE #CJK UNIFIED IDEOGRAPH +0xF3B9 0x880A #CJK UNIFIED IDEOGRAPH +0xF3BA 0x881B #CJK UNIFIED IDEOGRAPH +0xF3BB 0x8821 #CJK UNIFIED IDEOGRAPH +0xF3BC 0x8839 #CJK UNIFIED IDEOGRAPH +0xF3BD 0x883C #CJK UNIFIED IDEOGRAPH +0xF3BE 0x7F36 #CJK UNIFIED IDEOGRAPH +0xF3BF 0x7F42 #CJK UNIFIED IDEOGRAPH +0xF3C0 0x7F44 #CJK UNIFIED IDEOGRAPH +0xF3C1 0x7F45 #CJK UNIFIED IDEOGRAPH +0xF3C2 0x8210 #CJK UNIFIED IDEOGRAPH +0xF3C3 0x7AFA #CJK UNIFIED IDEOGRAPH +0xF3C4 0x7AFD #CJK UNIFIED IDEOGRAPH +0xF3C5 0x7B08 #CJK UNIFIED IDEOGRAPH +0xF3C6 0x7B03 #CJK UNIFIED IDEOGRAPH +0xF3C7 0x7B04 #CJK UNIFIED IDEOGRAPH +0xF3C8 0x7B15 #CJK UNIFIED IDEOGRAPH +0xF3C9 0x7B0A #CJK UNIFIED IDEOGRAPH +0xF3CA 0x7B2B #CJK UNIFIED IDEOGRAPH +0xF3CB 0x7B0F #CJK UNIFIED IDEOGRAPH +0xF3CC 0x7B47 #CJK UNIFIED IDEOGRAPH +0xF3CD 0x7B38 #CJK UNIFIED IDEOGRAPH +0xF3CE 0x7B2A #CJK UNIFIED IDEOGRAPH +0xF3CF 0x7B19 #CJK UNIFIED IDEOGRAPH +0xF3D0 0x7B2E #CJK UNIFIED IDEOGRAPH +0xF3D1 0x7B31 #CJK UNIFIED IDEOGRAPH +0xF3D2 0x7B20 #CJK UNIFIED IDEOGRAPH +0xF3D3 0x7B25 #CJK UNIFIED IDEOGRAPH +0xF3D4 0x7B24 #CJK UNIFIED IDEOGRAPH +0xF3D5 0x7B33 #CJK UNIFIED IDEOGRAPH +0xF3D6 0x7B3E #CJK UNIFIED IDEOGRAPH +0xF3D7 0x7B1E #CJK UNIFIED IDEOGRAPH +0xF3D8 0x7B58 #CJK UNIFIED IDEOGRAPH +0xF3D9 0x7B5A #CJK UNIFIED IDEOGRAPH +0xF3DA 0x7B45 #CJK UNIFIED IDEOGRAPH +0xF3DB 0x7B75 #CJK UNIFIED IDEOGRAPH +0xF3DC 0x7B4C #CJK UNIFIED IDEOGRAPH +0xF3DD 0x7B5D #CJK UNIFIED IDEOGRAPH +0xF3DE 0x7B60 #CJK UNIFIED IDEOGRAPH +0xF3DF 0x7B6E #CJK UNIFIED IDEOGRAPH +0xF3E0 0x7B7B #CJK UNIFIED IDEOGRAPH +0xF3E1 0x7B62 #CJK UNIFIED IDEOGRAPH +0xF3E2 0x7B72 #CJK UNIFIED IDEOGRAPH +0xF3E3 0x7B71 #CJK UNIFIED IDEOGRAPH +0xF3E4 0x7B90 #CJK UNIFIED IDEOGRAPH +0xF3E5 0x7BA6 #CJK UNIFIED IDEOGRAPH +0xF3E6 0x7BA7 #CJK UNIFIED IDEOGRAPH +0xF3E7 0x7BB8 #CJK UNIFIED IDEOGRAPH +0xF3E8 0x7BAC #CJK UNIFIED IDEOGRAPH +0xF3E9 0x7B9D #CJK UNIFIED IDEOGRAPH +0xF3EA 0x7BA8 #CJK UNIFIED IDEOGRAPH +0xF3EB 0x7B85 #CJK UNIFIED IDEOGRAPH +0xF3EC 0x7BAA #CJK UNIFIED IDEOGRAPH +0xF3ED 0x7B9C #CJK UNIFIED IDEOGRAPH +0xF3EE 0x7BA2 #CJK UNIFIED IDEOGRAPH +0xF3EF 0x7BAB #CJK UNIFIED IDEOGRAPH +0xF3F0 0x7BB4 #CJK UNIFIED IDEOGRAPH +0xF3F1 0x7BD1 #CJK UNIFIED IDEOGRAPH +0xF3F2 0x7BC1 #CJK UNIFIED IDEOGRAPH +0xF3F3 0x7BCC #CJK UNIFIED IDEOGRAPH +0xF3F4 0x7BDD #CJK UNIFIED IDEOGRAPH +0xF3F5 0x7BDA #CJK UNIFIED IDEOGRAPH +0xF3F6 0x7BE5 #CJK UNIFIED IDEOGRAPH +0xF3F7 0x7BE6 #CJK UNIFIED IDEOGRAPH +0xF3F8 0x7BEA #CJK UNIFIED IDEOGRAPH +0xF3F9 0x7C0C #CJK UNIFIED IDEOGRAPH +0xF3FA 0x7BFE #CJK UNIFIED IDEOGRAPH +0xF3FB 0x7BFC #CJK UNIFIED IDEOGRAPH +0xF3FC 0x7C0F #CJK UNIFIED IDEOGRAPH +0xF3FD 0x7C16 #CJK UNIFIED IDEOGRAPH +0xF3FE 0x7C0B #CJK UNIFIED IDEOGRAPH +0xF440 0x9B07 #CJK UNIFIED IDEOGRAPH +0xF441 0x9B09 #CJK UNIFIED IDEOGRAPH +0xF442 0x9B0A #CJK UNIFIED IDEOGRAPH +0xF443 0x9B0B #CJK UNIFIED IDEOGRAPH +0xF444 0x9B0C #CJK UNIFIED IDEOGRAPH +0xF445 0x9B0D #CJK UNIFIED IDEOGRAPH +0xF446 0x9B0E #CJK UNIFIED IDEOGRAPH +0xF447 0x9B10 #CJK UNIFIED IDEOGRAPH +0xF448 0x9B11 #CJK UNIFIED IDEOGRAPH +0xF449 0x9B12 #CJK UNIFIED IDEOGRAPH +0xF44A 0x9B14 #CJK UNIFIED IDEOGRAPH +0xF44B 0x9B15 #CJK UNIFIED IDEOGRAPH +0xF44C 0x9B16 #CJK UNIFIED IDEOGRAPH +0xF44D 0x9B17 #CJK UNIFIED IDEOGRAPH +0xF44E 0x9B18 #CJK UNIFIED IDEOGRAPH +0xF44F 0x9B19 #CJK UNIFIED IDEOGRAPH +0xF450 0x9B1A #CJK UNIFIED IDEOGRAPH +0xF451 0x9B1B #CJK UNIFIED IDEOGRAPH +0xF452 0x9B1C #CJK UNIFIED IDEOGRAPH +0xF453 0x9B1D #CJK UNIFIED IDEOGRAPH +0xF454 0x9B1E #CJK UNIFIED IDEOGRAPH +0xF455 0x9B20 #CJK UNIFIED IDEOGRAPH +0xF456 0x9B21 #CJK UNIFIED IDEOGRAPH +0xF457 0x9B22 #CJK UNIFIED IDEOGRAPH +0xF458 0x9B24 #CJK UNIFIED IDEOGRAPH +0xF459 0x9B25 #CJK UNIFIED IDEOGRAPH +0xF45A 0x9B26 #CJK UNIFIED IDEOGRAPH +0xF45B 0x9B27 #CJK UNIFIED IDEOGRAPH +0xF45C 0x9B28 #CJK UNIFIED IDEOGRAPH +0xF45D 0x9B29 #CJK UNIFIED IDEOGRAPH +0xF45E 0x9B2A #CJK UNIFIED IDEOGRAPH +0xF45F 0x9B2B #CJK UNIFIED IDEOGRAPH +0xF460 0x9B2C #CJK UNIFIED IDEOGRAPH +0xF461 0x9B2D #CJK UNIFIED IDEOGRAPH +0xF462 0x9B2E #CJK UNIFIED IDEOGRAPH +0xF463 0x9B30 #CJK UNIFIED IDEOGRAPH +0xF464 0x9B31 #CJK UNIFIED IDEOGRAPH +0xF465 0x9B33 #CJK UNIFIED IDEOGRAPH +0xF466 0x9B34 #CJK UNIFIED IDEOGRAPH +0xF467 0x9B35 #CJK UNIFIED IDEOGRAPH +0xF468 0x9B36 #CJK UNIFIED IDEOGRAPH +0xF469 0x9B37 #CJK UNIFIED IDEOGRAPH +0xF46A 0x9B38 #CJK UNIFIED IDEOGRAPH +0xF46B 0x9B39 #CJK UNIFIED IDEOGRAPH +0xF46C 0x9B3A #CJK UNIFIED IDEOGRAPH +0xF46D 0x9B3D #CJK UNIFIED IDEOGRAPH +0xF46E 0x9B3E #CJK UNIFIED IDEOGRAPH +0xF46F 0x9B3F #CJK UNIFIED IDEOGRAPH +0xF470 0x9B40 #CJK UNIFIED IDEOGRAPH +0xF471 0x9B46 #CJK UNIFIED IDEOGRAPH +0xF472 0x9B4A #CJK UNIFIED IDEOGRAPH +0xF473 0x9B4B #CJK UNIFIED IDEOGRAPH +0xF474 0x9B4C #CJK UNIFIED IDEOGRAPH +0xF475 0x9B4E #CJK UNIFIED IDEOGRAPH +0xF476 0x9B50 #CJK UNIFIED IDEOGRAPH +0xF477 0x9B52 #CJK UNIFIED IDEOGRAPH +0xF478 0x9B53 #CJK UNIFIED IDEOGRAPH +0xF479 0x9B55 #CJK UNIFIED IDEOGRAPH +0xF47A 0x9B56 #CJK UNIFIED IDEOGRAPH +0xF47B 0x9B57 #CJK UNIFIED IDEOGRAPH +0xF47C 0x9B58 #CJK UNIFIED IDEOGRAPH +0xF47D 0x9B59 #CJK UNIFIED IDEOGRAPH +0xF47E 0x9B5A #CJK UNIFIED IDEOGRAPH +0xF480 0x9B5B #CJK UNIFIED IDEOGRAPH +0xF481 0x9B5C #CJK UNIFIED IDEOGRAPH +0xF482 0x9B5D #CJK UNIFIED IDEOGRAPH +0xF483 0x9B5E #CJK UNIFIED IDEOGRAPH +0xF484 0x9B5F #CJK UNIFIED IDEOGRAPH +0xF485 0x9B60 #CJK UNIFIED IDEOGRAPH +0xF486 0x9B61 #CJK UNIFIED IDEOGRAPH +0xF487 0x9B62 #CJK UNIFIED IDEOGRAPH +0xF488 0x9B63 #CJK UNIFIED IDEOGRAPH +0xF489 0x9B64 #CJK UNIFIED IDEOGRAPH +0xF48A 0x9B65 #CJK UNIFIED IDEOGRAPH +0xF48B 0x9B66 #CJK UNIFIED IDEOGRAPH +0xF48C 0x9B67 #CJK UNIFIED IDEOGRAPH +0xF48D 0x9B68 #CJK UNIFIED IDEOGRAPH +0xF48E 0x9B69 #CJK UNIFIED IDEOGRAPH +0xF48F 0x9B6A #CJK UNIFIED IDEOGRAPH +0xF490 0x9B6B #CJK UNIFIED IDEOGRAPH +0xF491 0x9B6C #CJK UNIFIED IDEOGRAPH +0xF492 0x9B6D #CJK UNIFIED IDEOGRAPH +0xF493 0x9B6E #CJK UNIFIED IDEOGRAPH +0xF494 0x9B6F #CJK UNIFIED IDEOGRAPH +0xF495 0x9B70 #CJK UNIFIED IDEOGRAPH +0xF496 0x9B71 #CJK UNIFIED IDEOGRAPH +0xF497 0x9B72 #CJK UNIFIED IDEOGRAPH +0xF498 0x9B73 #CJK UNIFIED IDEOGRAPH +0xF499 0x9B74 #CJK UNIFIED IDEOGRAPH +0xF49A 0x9B75 #CJK UNIFIED IDEOGRAPH +0xF49B 0x9B76 #CJK UNIFIED IDEOGRAPH +0xF49C 0x9B77 #CJK UNIFIED IDEOGRAPH +0xF49D 0x9B78 #CJK UNIFIED IDEOGRAPH +0xF49E 0x9B79 #CJK UNIFIED IDEOGRAPH +0xF49F 0x9B7A #CJK UNIFIED IDEOGRAPH +0xF4A0 0x9B7B #CJK UNIFIED IDEOGRAPH +0xF4A1 0x7C1F #CJK UNIFIED IDEOGRAPH +0xF4A2 0x7C2A #CJK UNIFIED IDEOGRAPH +0xF4A3 0x7C26 #CJK UNIFIED IDEOGRAPH +0xF4A4 0x7C38 #CJK UNIFIED IDEOGRAPH +0xF4A5 0x7C41 #CJK UNIFIED IDEOGRAPH +0xF4A6 0x7C40 #CJK UNIFIED IDEOGRAPH +0xF4A7 0x81FE #CJK UNIFIED IDEOGRAPH +0xF4A8 0x8201 #CJK UNIFIED IDEOGRAPH +0xF4A9 0x8202 #CJK UNIFIED IDEOGRAPH +0xF4AA 0x8204 #CJK UNIFIED IDEOGRAPH +0xF4AB 0x81EC #CJK UNIFIED IDEOGRAPH +0xF4AC 0x8844 #CJK UNIFIED IDEOGRAPH +0xF4AD 0x8221 #CJK UNIFIED IDEOGRAPH +0xF4AE 0x8222 #CJK UNIFIED IDEOGRAPH +0xF4AF 0x8223 #CJK UNIFIED IDEOGRAPH +0xF4B0 0x822D #CJK UNIFIED IDEOGRAPH +0xF4B1 0x822F #CJK UNIFIED IDEOGRAPH +0xF4B2 0x8228 #CJK UNIFIED IDEOGRAPH +0xF4B3 0x822B #CJK UNIFIED IDEOGRAPH +0xF4B4 0x8238 #CJK UNIFIED IDEOGRAPH +0xF4B5 0x823B #CJK UNIFIED IDEOGRAPH +0xF4B6 0x8233 #CJK UNIFIED IDEOGRAPH +0xF4B7 0x8234 #CJK UNIFIED IDEOGRAPH +0xF4B8 0x823E #CJK UNIFIED IDEOGRAPH +0xF4B9 0x8244 #CJK UNIFIED IDEOGRAPH +0xF4BA 0x8249 #CJK UNIFIED IDEOGRAPH +0xF4BB 0x824B #CJK UNIFIED IDEOGRAPH +0xF4BC 0x824F #CJK UNIFIED IDEOGRAPH +0xF4BD 0x825A #CJK UNIFIED IDEOGRAPH +0xF4BE 0x825F #CJK UNIFIED IDEOGRAPH +0xF4BF 0x8268 #CJK UNIFIED IDEOGRAPH +0xF4C0 0x887E #CJK UNIFIED IDEOGRAPH +0xF4C1 0x8885 #CJK UNIFIED IDEOGRAPH +0xF4C2 0x8888 #CJK UNIFIED IDEOGRAPH +0xF4C3 0x88D8 #CJK UNIFIED IDEOGRAPH +0xF4C4 0x88DF #CJK UNIFIED IDEOGRAPH +0xF4C5 0x895E #CJK UNIFIED IDEOGRAPH +0xF4C6 0x7F9D #CJK UNIFIED IDEOGRAPH +0xF4C7 0x7F9F #CJK UNIFIED IDEOGRAPH +0xF4C8 0x7FA7 #CJK UNIFIED IDEOGRAPH +0xF4C9 0x7FAF #CJK UNIFIED IDEOGRAPH +0xF4CA 0x7FB0 #CJK UNIFIED IDEOGRAPH +0xF4CB 0x7FB2 #CJK UNIFIED IDEOGRAPH +0xF4CC 0x7C7C #CJK UNIFIED IDEOGRAPH +0xF4CD 0x6549 #CJK UNIFIED IDEOGRAPH +0xF4CE 0x7C91 #CJK UNIFIED IDEOGRAPH +0xF4CF 0x7C9D #CJK UNIFIED IDEOGRAPH +0xF4D0 0x7C9C #CJK UNIFIED IDEOGRAPH +0xF4D1 0x7C9E #CJK UNIFIED IDEOGRAPH +0xF4D2 0x7CA2 #CJK UNIFIED IDEOGRAPH +0xF4D3 0x7CB2 #CJK UNIFIED IDEOGRAPH +0xF4D4 0x7CBC #CJK UNIFIED IDEOGRAPH +0xF4D5 0x7CBD #CJK UNIFIED IDEOGRAPH +0xF4D6 0x7CC1 #CJK UNIFIED IDEOGRAPH +0xF4D7 0x7CC7 #CJK UNIFIED IDEOGRAPH +0xF4D8 0x7CCC #CJK UNIFIED IDEOGRAPH +0xF4D9 0x7CCD #CJK UNIFIED IDEOGRAPH +0xF4DA 0x7CC8 #CJK UNIFIED IDEOGRAPH +0xF4DB 0x7CC5 #CJK UNIFIED IDEOGRAPH +0xF4DC 0x7CD7 #CJK UNIFIED IDEOGRAPH +0xF4DD 0x7CE8 #CJK UNIFIED IDEOGRAPH +0xF4DE 0x826E #CJK UNIFIED IDEOGRAPH +0xF4DF 0x66A8 #CJK UNIFIED IDEOGRAPH +0xF4E0 0x7FBF #CJK UNIFIED IDEOGRAPH +0xF4E1 0x7FCE #CJK UNIFIED IDEOGRAPH +0xF4E2 0x7FD5 #CJK UNIFIED IDEOGRAPH +0xF4E3 0x7FE5 #CJK UNIFIED IDEOGRAPH +0xF4E4 0x7FE1 #CJK UNIFIED IDEOGRAPH +0xF4E5 0x7FE6 #CJK UNIFIED IDEOGRAPH +0xF4E6 0x7FE9 #CJK UNIFIED IDEOGRAPH +0xF4E7 0x7FEE #CJK UNIFIED IDEOGRAPH +0xF4E8 0x7FF3 #CJK UNIFIED IDEOGRAPH +0xF4E9 0x7CF8 #CJK UNIFIED IDEOGRAPH +0xF4EA 0x7D77 #CJK UNIFIED IDEOGRAPH +0xF4EB 0x7DA6 #CJK UNIFIED IDEOGRAPH +0xF4EC 0x7DAE #CJK UNIFIED IDEOGRAPH +0xF4ED 0x7E47 #CJK UNIFIED IDEOGRAPH +0xF4EE 0x7E9B #CJK UNIFIED IDEOGRAPH +0xF4EF 0x9EB8 #CJK UNIFIED IDEOGRAPH +0xF4F0 0x9EB4 #CJK UNIFIED IDEOGRAPH +0xF4F1 0x8D73 #CJK UNIFIED IDEOGRAPH +0xF4F2 0x8D84 #CJK UNIFIED IDEOGRAPH +0xF4F3 0x8D94 #CJK UNIFIED IDEOGRAPH +0xF4F4 0x8D91 #CJK UNIFIED IDEOGRAPH +0xF4F5 0x8DB1 #CJK UNIFIED IDEOGRAPH +0xF4F6 0x8D67 #CJK UNIFIED IDEOGRAPH +0xF4F7 0x8D6D #CJK UNIFIED IDEOGRAPH +0xF4F8 0x8C47 #CJK UNIFIED IDEOGRAPH +0xF4F9 0x8C49 #CJK UNIFIED IDEOGRAPH +0xF4FA 0x914A #CJK UNIFIED IDEOGRAPH +0xF4FB 0x9150 #CJK UNIFIED IDEOGRAPH +0xF4FC 0x914E #CJK UNIFIED IDEOGRAPH +0xF4FD 0x914F #CJK UNIFIED IDEOGRAPH +0xF4FE 0x9164 #CJK UNIFIED IDEOGRAPH +0xF540 0x9B7C #CJK UNIFIED IDEOGRAPH +0xF541 0x9B7D #CJK UNIFIED IDEOGRAPH +0xF542 0x9B7E #CJK UNIFIED IDEOGRAPH +0xF543 0x9B7F #CJK UNIFIED IDEOGRAPH +0xF544 0x9B80 #CJK UNIFIED IDEOGRAPH +0xF545 0x9B81 #CJK UNIFIED IDEOGRAPH +0xF546 0x9B82 #CJK UNIFIED IDEOGRAPH +0xF547 0x9B83 #CJK UNIFIED IDEOGRAPH +0xF548 0x9B84 #CJK UNIFIED IDEOGRAPH +0xF549 0x9B85 #CJK UNIFIED IDEOGRAPH +0xF54A 0x9B86 #CJK UNIFIED IDEOGRAPH +0xF54B 0x9B87 #CJK UNIFIED IDEOGRAPH +0xF54C 0x9B88 #CJK UNIFIED IDEOGRAPH +0xF54D 0x9B89 #CJK UNIFIED IDEOGRAPH +0xF54E 0x9B8A #CJK UNIFIED IDEOGRAPH +0xF54F 0x9B8B #CJK UNIFIED IDEOGRAPH +0xF550 0x9B8C #CJK UNIFIED IDEOGRAPH +0xF551 0x9B8D #CJK UNIFIED IDEOGRAPH +0xF552 0x9B8E #CJK UNIFIED IDEOGRAPH +0xF553 0x9B8F #CJK UNIFIED IDEOGRAPH +0xF554 0x9B90 #CJK UNIFIED IDEOGRAPH +0xF555 0x9B91 #CJK UNIFIED IDEOGRAPH +0xF556 0x9B92 #CJK UNIFIED IDEOGRAPH +0xF557 0x9B93 #CJK UNIFIED IDEOGRAPH +0xF558 0x9B94 #CJK UNIFIED IDEOGRAPH +0xF559 0x9B95 #CJK UNIFIED IDEOGRAPH +0xF55A 0x9B96 #CJK UNIFIED IDEOGRAPH +0xF55B 0x9B97 #CJK UNIFIED IDEOGRAPH +0xF55C 0x9B98 #CJK UNIFIED IDEOGRAPH +0xF55D 0x9B99 #CJK UNIFIED IDEOGRAPH +0xF55E 0x9B9A #CJK UNIFIED IDEOGRAPH +0xF55F 0x9B9B #CJK UNIFIED IDEOGRAPH +0xF560 0x9B9C #CJK UNIFIED IDEOGRAPH +0xF561 0x9B9D #CJK UNIFIED IDEOGRAPH +0xF562 0x9B9E #CJK UNIFIED IDEOGRAPH +0xF563 0x9B9F #CJK UNIFIED IDEOGRAPH +0xF564 0x9BA0 #CJK UNIFIED IDEOGRAPH +0xF565 0x9BA1 #CJK UNIFIED IDEOGRAPH +0xF566 0x9BA2 #CJK UNIFIED IDEOGRAPH +0xF567 0x9BA3 #CJK UNIFIED IDEOGRAPH +0xF568 0x9BA4 #CJK UNIFIED IDEOGRAPH +0xF569 0x9BA5 #CJK UNIFIED IDEOGRAPH +0xF56A 0x9BA6 #CJK UNIFIED IDEOGRAPH +0xF56B 0x9BA7 #CJK UNIFIED IDEOGRAPH +0xF56C 0x9BA8 #CJK UNIFIED IDEOGRAPH +0xF56D 0x9BA9 #CJK UNIFIED IDEOGRAPH +0xF56E 0x9BAA #CJK UNIFIED IDEOGRAPH +0xF56F 0x9BAB #CJK UNIFIED IDEOGRAPH +0xF570 0x9BAC #CJK UNIFIED IDEOGRAPH +0xF571 0x9BAD #CJK UNIFIED IDEOGRAPH +0xF572 0x9BAE #CJK UNIFIED IDEOGRAPH +0xF573 0x9BAF #CJK UNIFIED IDEOGRAPH +0xF574 0x9BB0 #CJK UNIFIED IDEOGRAPH +0xF575 0x9BB1 #CJK UNIFIED IDEOGRAPH +0xF576 0x9BB2 #CJK UNIFIED IDEOGRAPH +0xF577 0x9BB3 #CJK UNIFIED IDEOGRAPH +0xF578 0x9BB4 #CJK UNIFIED IDEOGRAPH +0xF579 0x9BB5 #CJK UNIFIED IDEOGRAPH +0xF57A 0x9BB6 #CJK UNIFIED IDEOGRAPH +0xF57B 0x9BB7 #CJK UNIFIED IDEOGRAPH +0xF57C 0x9BB8 #CJK UNIFIED IDEOGRAPH +0xF57D 0x9BB9 #CJK UNIFIED IDEOGRAPH +0xF57E 0x9BBA #CJK UNIFIED IDEOGRAPH +0xF580 0x9BBB #CJK UNIFIED IDEOGRAPH +0xF581 0x9BBC #CJK UNIFIED IDEOGRAPH +0xF582 0x9BBD #CJK UNIFIED IDEOGRAPH +0xF583 0x9BBE #CJK UNIFIED IDEOGRAPH +0xF584 0x9BBF #CJK UNIFIED IDEOGRAPH +0xF585 0x9BC0 #CJK UNIFIED IDEOGRAPH +0xF586 0x9BC1 #CJK UNIFIED IDEOGRAPH +0xF587 0x9BC2 #CJK UNIFIED IDEOGRAPH +0xF588 0x9BC3 #CJK UNIFIED IDEOGRAPH +0xF589 0x9BC4 #CJK UNIFIED IDEOGRAPH +0xF58A 0x9BC5 #CJK UNIFIED IDEOGRAPH +0xF58B 0x9BC6 #CJK UNIFIED IDEOGRAPH +0xF58C 0x9BC7 #CJK UNIFIED IDEOGRAPH +0xF58D 0x9BC8 #CJK UNIFIED IDEOGRAPH +0xF58E 0x9BC9 #CJK UNIFIED IDEOGRAPH +0xF58F 0x9BCA #CJK UNIFIED IDEOGRAPH +0xF590 0x9BCB #CJK UNIFIED IDEOGRAPH +0xF591 0x9BCC #CJK UNIFIED IDEOGRAPH +0xF592 0x9BCD #CJK UNIFIED IDEOGRAPH +0xF593 0x9BCE #CJK UNIFIED IDEOGRAPH +0xF594 0x9BCF #CJK UNIFIED IDEOGRAPH +0xF595 0x9BD0 #CJK UNIFIED IDEOGRAPH +0xF596 0x9BD1 #CJK UNIFIED IDEOGRAPH +0xF597 0x9BD2 #CJK UNIFIED IDEOGRAPH +0xF598 0x9BD3 #CJK UNIFIED IDEOGRAPH +0xF599 0x9BD4 #CJK UNIFIED IDEOGRAPH +0xF59A 0x9BD5 #CJK UNIFIED IDEOGRAPH +0xF59B 0x9BD6 #CJK UNIFIED IDEOGRAPH +0xF59C 0x9BD7 #CJK UNIFIED IDEOGRAPH +0xF59D 0x9BD8 #CJK UNIFIED IDEOGRAPH +0xF59E 0x9BD9 #CJK UNIFIED IDEOGRAPH +0xF59F 0x9BDA #CJK UNIFIED IDEOGRAPH +0xF5A0 0x9BDB #CJK UNIFIED IDEOGRAPH +0xF5A1 0x9162 #CJK UNIFIED IDEOGRAPH +0xF5A2 0x9161 #CJK UNIFIED IDEOGRAPH +0xF5A3 0x9170 #CJK UNIFIED IDEOGRAPH +0xF5A4 0x9169 #CJK UNIFIED IDEOGRAPH +0xF5A5 0x916F #CJK UNIFIED IDEOGRAPH +0xF5A6 0x917D #CJK UNIFIED IDEOGRAPH +0xF5A7 0x917E #CJK UNIFIED IDEOGRAPH +0xF5A8 0x9172 #CJK UNIFIED IDEOGRAPH +0xF5A9 0x9174 #CJK UNIFIED IDEOGRAPH +0xF5AA 0x9179 #CJK UNIFIED IDEOGRAPH +0xF5AB 0x918C #CJK UNIFIED IDEOGRAPH +0xF5AC 0x9185 #CJK UNIFIED IDEOGRAPH +0xF5AD 0x9190 #CJK UNIFIED IDEOGRAPH +0xF5AE 0x918D #CJK UNIFIED IDEOGRAPH +0xF5AF 0x9191 #CJK UNIFIED IDEOGRAPH +0xF5B0 0x91A2 #CJK UNIFIED IDEOGRAPH +0xF5B1 0x91A3 #CJK UNIFIED IDEOGRAPH +0xF5B2 0x91AA #CJK UNIFIED IDEOGRAPH +0xF5B3 0x91AD #CJK UNIFIED IDEOGRAPH +0xF5B4 0x91AE #CJK UNIFIED IDEOGRAPH +0xF5B5 0x91AF #CJK UNIFIED IDEOGRAPH +0xF5B6 0x91B5 #CJK UNIFIED IDEOGRAPH +0xF5B7 0x91B4 #CJK UNIFIED IDEOGRAPH +0xF5B8 0x91BA #CJK UNIFIED IDEOGRAPH +0xF5B9 0x8C55 #CJK UNIFIED IDEOGRAPH +0xF5BA 0x9E7E #CJK UNIFIED IDEOGRAPH +0xF5BB 0x8DB8 #CJK UNIFIED IDEOGRAPH +0xF5BC 0x8DEB #CJK UNIFIED IDEOGRAPH +0xF5BD 0x8E05 #CJK UNIFIED IDEOGRAPH +0xF5BE 0x8E59 #CJK UNIFIED IDEOGRAPH +0xF5BF 0x8E69 #CJK UNIFIED IDEOGRAPH +0xF5C0 0x8DB5 #CJK UNIFIED IDEOGRAPH +0xF5C1 0x8DBF #CJK UNIFIED IDEOGRAPH +0xF5C2 0x8DBC #CJK UNIFIED IDEOGRAPH +0xF5C3 0x8DBA #CJK UNIFIED IDEOGRAPH +0xF5C4 0x8DC4 #CJK UNIFIED IDEOGRAPH +0xF5C5 0x8DD6 #CJK UNIFIED IDEOGRAPH +0xF5C6 0x8DD7 #CJK UNIFIED IDEOGRAPH +0xF5C7 0x8DDA #CJK UNIFIED IDEOGRAPH +0xF5C8 0x8DDE #CJK UNIFIED IDEOGRAPH +0xF5C9 0x8DCE #CJK UNIFIED IDEOGRAPH +0xF5CA 0x8DCF #CJK UNIFIED IDEOGRAPH +0xF5CB 0x8DDB #CJK UNIFIED IDEOGRAPH +0xF5CC 0x8DC6 #CJK UNIFIED IDEOGRAPH +0xF5CD 0x8DEC #CJK UNIFIED IDEOGRAPH +0xF5CE 0x8DF7 #CJK UNIFIED IDEOGRAPH +0xF5CF 0x8DF8 #CJK UNIFIED IDEOGRAPH +0xF5D0 0x8DE3 #CJK UNIFIED IDEOGRAPH +0xF5D1 0x8DF9 #CJK UNIFIED IDEOGRAPH +0xF5D2 0x8DFB #CJK UNIFIED IDEOGRAPH +0xF5D3 0x8DE4 #CJK UNIFIED IDEOGRAPH +0xF5D4 0x8E09 #CJK UNIFIED IDEOGRAPH +0xF5D5 0x8DFD #CJK UNIFIED IDEOGRAPH +0xF5D6 0x8E14 #CJK UNIFIED IDEOGRAPH +0xF5D7 0x8E1D #CJK UNIFIED IDEOGRAPH +0xF5D8 0x8E1F #CJK UNIFIED IDEOGRAPH +0xF5D9 0x8E2C #CJK UNIFIED IDEOGRAPH +0xF5DA 0x8E2E #CJK UNIFIED IDEOGRAPH +0xF5DB 0x8E23 #CJK UNIFIED IDEOGRAPH +0xF5DC 0x8E2F #CJK UNIFIED IDEOGRAPH +0xF5DD 0x8E3A #CJK UNIFIED IDEOGRAPH +0xF5DE 0x8E40 #CJK UNIFIED IDEOGRAPH +0xF5DF 0x8E39 #CJK UNIFIED IDEOGRAPH +0xF5E0 0x8E35 #CJK UNIFIED IDEOGRAPH +0xF5E1 0x8E3D #CJK UNIFIED IDEOGRAPH +0xF5E2 0x8E31 #CJK UNIFIED IDEOGRAPH +0xF5E3 0x8E49 #CJK UNIFIED IDEOGRAPH +0xF5E4 0x8E41 #CJK UNIFIED IDEOGRAPH +0xF5E5 0x8E42 #CJK UNIFIED IDEOGRAPH +0xF5E6 0x8E51 #CJK UNIFIED IDEOGRAPH +0xF5E7 0x8E52 #CJK UNIFIED IDEOGRAPH +0xF5E8 0x8E4A #CJK UNIFIED IDEOGRAPH +0xF5E9 0x8E70 #CJK UNIFIED IDEOGRAPH +0xF5EA 0x8E76 #CJK UNIFIED IDEOGRAPH +0xF5EB 0x8E7C #CJK UNIFIED IDEOGRAPH +0xF5EC 0x8E6F #CJK UNIFIED IDEOGRAPH +0xF5ED 0x8E74 #CJK UNIFIED IDEOGRAPH +0xF5EE 0x8E85 #CJK UNIFIED IDEOGRAPH +0xF5EF 0x8E8F #CJK UNIFIED IDEOGRAPH +0xF5F0 0x8E94 #CJK UNIFIED IDEOGRAPH +0xF5F1 0x8E90 #CJK UNIFIED IDEOGRAPH +0xF5F2 0x8E9C #CJK UNIFIED IDEOGRAPH +0xF5F3 0x8E9E #CJK UNIFIED IDEOGRAPH +0xF5F4 0x8C78 #CJK UNIFIED IDEOGRAPH +0xF5F5 0x8C82 #CJK UNIFIED IDEOGRAPH +0xF5F6 0x8C8A #CJK UNIFIED IDEOGRAPH +0xF5F7 0x8C85 #CJK UNIFIED IDEOGRAPH +0xF5F8 0x8C98 #CJK UNIFIED IDEOGRAPH +0xF5F9 0x8C94 #CJK UNIFIED IDEOGRAPH +0xF5FA 0x659B #CJK UNIFIED IDEOGRAPH +0xF5FB 0x89D6 #CJK UNIFIED IDEOGRAPH +0xF5FC 0x89DE #CJK UNIFIED IDEOGRAPH +0xF5FD 0x89DA #CJK UNIFIED IDEOGRAPH +0xF5FE 0x89DC #CJK UNIFIED IDEOGRAPH +0xF640 0x9BDC #CJK UNIFIED IDEOGRAPH +0xF641 0x9BDD #CJK UNIFIED IDEOGRAPH +0xF642 0x9BDE #CJK UNIFIED IDEOGRAPH +0xF643 0x9BDF #CJK UNIFIED IDEOGRAPH +0xF644 0x9BE0 #CJK UNIFIED IDEOGRAPH +0xF645 0x9BE1 #CJK UNIFIED IDEOGRAPH +0xF646 0x9BE2 #CJK UNIFIED IDEOGRAPH +0xF647 0x9BE3 #CJK UNIFIED IDEOGRAPH +0xF648 0x9BE4 #CJK UNIFIED IDEOGRAPH +0xF649 0x9BE5 #CJK UNIFIED IDEOGRAPH +0xF64A 0x9BE6 #CJK UNIFIED IDEOGRAPH +0xF64B 0x9BE7 #CJK UNIFIED IDEOGRAPH +0xF64C 0x9BE8 #CJK UNIFIED IDEOGRAPH +0xF64D 0x9BE9 #CJK UNIFIED IDEOGRAPH +0xF64E 0x9BEA #CJK UNIFIED IDEOGRAPH +0xF64F 0x9BEB #CJK UNIFIED IDEOGRAPH +0xF650 0x9BEC #CJK UNIFIED IDEOGRAPH +0xF651 0x9BED #CJK UNIFIED IDEOGRAPH +0xF652 0x9BEE #CJK UNIFIED IDEOGRAPH +0xF653 0x9BEF #CJK UNIFIED IDEOGRAPH +0xF654 0x9BF0 #CJK UNIFIED IDEOGRAPH +0xF655 0x9BF1 #CJK UNIFIED IDEOGRAPH +0xF656 0x9BF2 #CJK UNIFIED IDEOGRAPH +0xF657 0x9BF3 #CJK UNIFIED IDEOGRAPH +0xF658 0x9BF4 #CJK UNIFIED IDEOGRAPH +0xF659 0x9BF5 #CJK UNIFIED IDEOGRAPH +0xF65A 0x9BF6 #CJK UNIFIED IDEOGRAPH +0xF65B 0x9BF7 #CJK UNIFIED IDEOGRAPH +0xF65C 0x9BF8 #CJK UNIFIED IDEOGRAPH +0xF65D 0x9BF9 #CJK UNIFIED IDEOGRAPH +0xF65E 0x9BFA #CJK UNIFIED IDEOGRAPH +0xF65F 0x9BFB #CJK UNIFIED IDEOGRAPH +0xF660 0x9BFC #CJK UNIFIED IDEOGRAPH +0xF661 0x9BFD #CJK UNIFIED IDEOGRAPH +0xF662 0x9BFE #CJK UNIFIED IDEOGRAPH +0xF663 0x9BFF #CJK UNIFIED IDEOGRAPH +0xF664 0x9C00 #CJK UNIFIED IDEOGRAPH +0xF665 0x9C01 #CJK UNIFIED IDEOGRAPH +0xF666 0x9C02 #CJK UNIFIED IDEOGRAPH +0xF667 0x9C03 #CJK UNIFIED IDEOGRAPH +0xF668 0x9C04 #CJK UNIFIED IDEOGRAPH +0xF669 0x9C05 #CJK UNIFIED IDEOGRAPH +0xF66A 0x9C06 #CJK UNIFIED IDEOGRAPH +0xF66B 0x9C07 #CJK UNIFIED IDEOGRAPH +0xF66C 0x9C08 #CJK UNIFIED IDEOGRAPH +0xF66D 0x9C09 #CJK UNIFIED IDEOGRAPH +0xF66E 0x9C0A #CJK UNIFIED IDEOGRAPH +0xF66F 0x9C0B #CJK UNIFIED IDEOGRAPH +0xF670 0x9C0C #CJK UNIFIED IDEOGRAPH +0xF671 0x9C0D #CJK UNIFIED IDEOGRAPH +0xF672 0x9C0E #CJK UNIFIED IDEOGRAPH +0xF673 0x9C0F #CJK UNIFIED IDEOGRAPH +0xF674 0x9C10 #CJK UNIFIED IDEOGRAPH +0xF675 0x9C11 #CJK UNIFIED IDEOGRAPH +0xF676 0x9C12 #CJK UNIFIED IDEOGRAPH +0xF677 0x9C13 #CJK UNIFIED IDEOGRAPH +0xF678 0x9C14 #CJK UNIFIED IDEOGRAPH +0xF679 0x9C15 #CJK UNIFIED IDEOGRAPH +0xF67A 0x9C16 #CJK UNIFIED IDEOGRAPH +0xF67B 0x9C17 #CJK UNIFIED IDEOGRAPH +0xF67C 0x9C18 #CJK UNIFIED IDEOGRAPH +0xF67D 0x9C19 #CJK UNIFIED IDEOGRAPH +0xF67E 0x9C1A #CJK UNIFIED IDEOGRAPH +0xF680 0x9C1B #CJK UNIFIED IDEOGRAPH +0xF681 0x9C1C #CJK UNIFIED IDEOGRAPH +0xF682 0x9C1D #CJK UNIFIED IDEOGRAPH +0xF683 0x9C1E #CJK UNIFIED IDEOGRAPH +0xF684 0x9C1F #CJK UNIFIED IDEOGRAPH +0xF685 0x9C20 #CJK UNIFIED IDEOGRAPH +0xF686 0x9C21 #CJK UNIFIED IDEOGRAPH +0xF687 0x9C22 #CJK UNIFIED IDEOGRAPH +0xF688 0x9C23 #CJK UNIFIED IDEOGRAPH +0xF689 0x9C24 #CJK UNIFIED IDEOGRAPH +0xF68A 0x9C25 #CJK UNIFIED IDEOGRAPH +0xF68B 0x9C26 #CJK UNIFIED IDEOGRAPH +0xF68C 0x9C27 #CJK UNIFIED IDEOGRAPH +0xF68D 0x9C28 #CJK UNIFIED IDEOGRAPH +0xF68E 0x9C29 #CJK UNIFIED IDEOGRAPH +0xF68F 0x9C2A #CJK UNIFIED IDEOGRAPH +0xF690 0x9C2B #CJK UNIFIED IDEOGRAPH +0xF691 0x9C2C #CJK UNIFIED IDEOGRAPH +0xF692 0x9C2D #CJK UNIFIED IDEOGRAPH +0xF693 0x9C2E #CJK UNIFIED IDEOGRAPH +0xF694 0x9C2F #CJK UNIFIED IDEOGRAPH +0xF695 0x9C30 #CJK UNIFIED IDEOGRAPH +0xF696 0x9C31 #CJK UNIFIED IDEOGRAPH +0xF697 0x9C32 #CJK UNIFIED IDEOGRAPH +0xF698 0x9C33 #CJK UNIFIED IDEOGRAPH +0xF699 0x9C34 #CJK UNIFIED IDEOGRAPH +0xF69A 0x9C35 #CJK UNIFIED IDEOGRAPH +0xF69B 0x9C36 #CJK UNIFIED IDEOGRAPH +0xF69C 0x9C37 #CJK UNIFIED IDEOGRAPH +0xF69D 0x9C38 #CJK UNIFIED IDEOGRAPH +0xF69E 0x9C39 #CJK UNIFIED IDEOGRAPH +0xF69F 0x9C3A #CJK UNIFIED IDEOGRAPH +0xF6A0 0x9C3B #CJK UNIFIED IDEOGRAPH +0xF6A1 0x89E5 #CJK UNIFIED IDEOGRAPH +0xF6A2 0x89EB #CJK UNIFIED IDEOGRAPH +0xF6A3 0x89EF #CJK UNIFIED IDEOGRAPH +0xF6A4 0x8A3E #CJK UNIFIED IDEOGRAPH +0xF6A5 0x8B26 #CJK UNIFIED IDEOGRAPH +0xF6A6 0x9753 #CJK UNIFIED IDEOGRAPH +0xF6A7 0x96E9 #CJK UNIFIED IDEOGRAPH +0xF6A8 0x96F3 #CJK UNIFIED IDEOGRAPH +0xF6A9 0x96EF #CJK UNIFIED IDEOGRAPH +0xF6AA 0x9706 #CJK UNIFIED IDEOGRAPH +0xF6AB 0x9701 #CJK UNIFIED IDEOGRAPH +0xF6AC 0x9708 #CJK UNIFIED IDEOGRAPH +0xF6AD 0x970F #CJK UNIFIED IDEOGRAPH +0xF6AE 0x970E #CJK UNIFIED IDEOGRAPH +0xF6AF 0x972A #CJK UNIFIED IDEOGRAPH +0xF6B0 0x972D #CJK UNIFIED IDEOGRAPH +0xF6B1 0x9730 #CJK UNIFIED IDEOGRAPH +0xF6B2 0x973E #CJK UNIFIED IDEOGRAPH +0xF6B3 0x9F80 #CJK UNIFIED IDEOGRAPH +0xF6B4 0x9F83 #CJK UNIFIED IDEOGRAPH +0xF6B5 0x9F85 #CJK UNIFIED IDEOGRAPH +0xF6B6 0x9F86 #CJK UNIFIED IDEOGRAPH +0xF6B7 0x9F87 #CJK UNIFIED IDEOGRAPH +0xF6B8 0x9F88 #CJK UNIFIED IDEOGRAPH +0xF6B9 0x9F89 #CJK UNIFIED IDEOGRAPH +0xF6BA 0x9F8A #CJK UNIFIED IDEOGRAPH +0xF6BB 0x9F8C #CJK UNIFIED IDEOGRAPH +0xF6BC 0x9EFE #CJK UNIFIED IDEOGRAPH +0xF6BD 0x9F0B #CJK UNIFIED IDEOGRAPH +0xF6BE 0x9F0D #CJK UNIFIED IDEOGRAPH +0xF6BF 0x96B9 #CJK UNIFIED IDEOGRAPH +0xF6C0 0x96BC #CJK UNIFIED IDEOGRAPH +0xF6C1 0x96BD #CJK UNIFIED IDEOGRAPH +0xF6C2 0x96CE #CJK UNIFIED IDEOGRAPH +0xF6C3 0x96D2 #CJK UNIFIED IDEOGRAPH +0xF6C4 0x77BF #CJK UNIFIED IDEOGRAPH +0xF6C5 0x96E0 #CJK UNIFIED IDEOGRAPH +0xF6C6 0x928E #CJK UNIFIED IDEOGRAPH +0xF6C7 0x92AE #CJK UNIFIED IDEOGRAPH +0xF6C8 0x92C8 #CJK UNIFIED IDEOGRAPH +0xF6C9 0x933E #CJK UNIFIED IDEOGRAPH +0xF6CA 0x936A #CJK UNIFIED IDEOGRAPH +0xF6CB 0x93CA #CJK UNIFIED IDEOGRAPH +0xF6CC 0x938F #CJK UNIFIED IDEOGRAPH +0xF6CD 0x943E #CJK UNIFIED IDEOGRAPH +0xF6CE 0x946B #CJK UNIFIED IDEOGRAPH +0xF6CF 0x9C7F #CJK UNIFIED IDEOGRAPH +0xF6D0 0x9C82 #CJK UNIFIED IDEOGRAPH +0xF6D1 0x9C85 #CJK UNIFIED IDEOGRAPH +0xF6D2 0x9C86 #CJK UNIFIED IDEOGRAPH +0xF6D3 0x9C87 #CJK UNIFIED IDEOGRAPH +0xF6D4 0x9C88 #CJK UNIFIED IDEOGRAPH +0xF6D5 0x7A23 #CJK UNIFIED IDEOGRAPH +0xF6D6 0x9C8B #CJK UNIFIED IDEOGRAPH +0xF6D7 0x9C8E #CJK UNIFIED IDEOGRAPH +0xF6D8 0x9C90 #CJK UNIFIED IDEOGRAPH +0xF6D9 0x9C91 #CJK UNIFIED IDEOGRAPH +0xF6DA 0x9C92 #CJK UNIFIED IDEOGRAPH +0xF6DB 0x9C94 #CJK UNIFIED IDEOGRAPH +0xF6DC 0x9C95 #CJK UNIFIED IDEOGRAPH +0xF6DD 0x9C9A #CJK UNIFIED IDEOGRAPH +0xF6DE 0x9C9B #CJK UNIFIED IDEOGRAPH +0xF6DF 0x9C9E #CJK UNIFIED IDEOGRAPH +0xF6E0 0x9C9F #CJK UNIFIED IDEOGRAPH +0xF6E1 0x9CA0 #CJK UNIFIED IDEOGRAPH +0xF6E2 0x9CA1 #CJK UNIFIED IDEOGRAPH +0xF6E3 0x9CA2 #CJK UNIFIED IDEOGRAPH +0xF6E4 0x9CA3 #CJK UNIFIED IDEOGRAPH +0xF6E5 0x9CA5 #CJK UNIFIED IDEOGRAPH +0xF6E6 0x9CA6 #CJK UNIFIED IDEOGRAPH +0xF6E7 0x9CA7 #CJK UNIFIED IDEOGRAPH +0xF6E8 0x9CA8 #CJK UNIFIED IDEOGRAPH +0xF6E9 0x9CA9 #CJK UNIFIED IDEOGRAPH +0xF6EA 0x9CAB #CJK UNIFIED IDEOGRAPH +0xF6EB 0x9CAD #CJK UNIFIED IDEOGRAPH +0xF6EC 0x9CAE #CJK UNIFIED IDEOGRAPH +0xF6ED 0x9CB0 #CJK UNIFIED IDEOGRAPH +0xF6EE 0x9CB1 #CJK UNIFIED IDEOGRAPH +0xF6EF 0x9CB2 #CJK UNIFIED IDEOGRAPH +0xF6F0 0x9CB3 #CJK UNIFIED IDEOGRAPH +0xF6F1 0x9CB4 #CJK UNIFIED IDEOGRAPH +0xF6F2 0x9CB5 #CJK UNIFIED IDEOGRAPH +0xF6F3 0x9CB6 #CJK UNIFIED IDEOGRAPH +0xF6F4 0x9CB7 #CJK UNIFIED IDEOGRAPH +0xF6F5 0x9CBA #CJK UNIFIED IDEOGRAPH +0xF6F6 0x9CBB #CJK UNIFIED IDEOGRAPH +0xF6F7 0x9CBC #CJK UNIFIED IDEOGRAPH +0xF6F8 0x9CBD #CJK UNIFIED IDEOGRAPH +0xF6F9 0x9CC4 #CJK UNIFIED IDEOGRAPH +0xF6FA 0x9CC5 #CJK UNIFIED IDEOGRAPH +0xF6FB 0x9CC6 #CJK UNIFIED IDEOGRAPH +0xF6FC 0x9CC7 #CJK UNIFIED IDEOGRAPH +0xF6FD 0x9CCA #CJK UNIFIED IDEOGRAPH +0xF6FE 0x9CCB #CJK UNIFIED IDEOGRAPH +0xF740 0x9C3C #CJK UNIFIED IDEOGRAPH +0xF741 0x9C3D #CJK UNIFIED IDEOGRAPH +0xF742 0x9C3E #CJK UNIFIED IDEOGRAPH +0xF743 0x9C3F #CJK UNIFIED IDEOGRAPH +0xF744 0x9C40 #CJK UNIFIED IDEOGRAPH +0xF745 0x9C41 #CJK UNIFIED IDEOGRAPH +0xF746 0x9C42 #CJK UNIFIED IDEOGRAPH +0xF747 0x9C43 #CJK UNIFIED IDEOGRAPH +0xF748 0x9C44 #CJK UNIFIED IDEOGRAPH +0xF749 0x9C45 #CJK UNIFIED IDEOGRAPH +0xF74A 0x9C46 #CJK UNIFIED IDEOGRAPH +0xF74B 0x9C47 #CJK UNIFIED IDEOGRAPH +0xF74C 0x9C48 #CJK UNIFIED IDEOGRAPH +0xF74D 0x9C49 #CJK UNIFIED IDEOGRAPH +0xF74E 0x9C4A #CJK UNIFIED IDEOGRAPH +0xF74F 0x9C4B #CJK UNIFIED IDEOGRAPH +0xF750 0x9C4C #CJK UNIFIED IDEOGRAPH +0xF751 0x9C4D #CJK UNIFIED IDEOGRAPH +0xF752 0x9C4E #CJK UNIFIED IDEOGRAPH +0xF753 0x9C4F #CJK UNIFIED IDEOGRAPH +0xF754 0x9C50 #CJK UNIFIED IDEOGRAPH +0xF755 0x9C51 #CJK UNIFIED IDEOGRAPH +0xF756 0x9C52 #CJK UNIFIED IDEOGRAPH +0xF757 0x9C53 #CJK UNIFIED IDEOGRAPH +0xF758 0x9C54 #CJK UNIFIED IDEOGRAPH +0xF759 0x9C55 #CJK UNIFIED IDEOGRAPH +0xF75A 0x9C56 #CJK UNIFIED IDEOGRAPH +0xF75B 0x9C57 #CJK UNIFIED IDEOGRAPH +0xF75C 0x9C58 #CJK UNIFIED IDEOGRAPH +0xF75D 0x9C59 #CJK UNIFIED IDEOGRAPH +0xF75E 0x9C5A #CJK UNIFIED IDEOGRAPH +0xF75F 0x9C5B #CJK UNIFIED IDEOGRAPH +0xF760 0x9C5C #CJK UNIFIED IDEOGRAPH +0xF761 0x9C5D #CJK UNIFIED IDEOGRAPH +0xF762 0x9C5E #CJK UNIFIED IDEOGRAPH +0xF763 0x9C5F #CJK UNIFIED IDEOGRAPH +0xF764 0x9C60 #CJK UNIFIED IDEOGRAPH +0xF765 0x9C61 #CJK UNIFIED IDEOGRAPH +0xF766 0x9C62 #CJK UNIFIED IDEOGRAPH +0xF767 0x9C63 #CJK UNIFIED IDEOGRAPH +0xF768 0x9C64 #CJK UNIFIED IDEOGRAPH +0xF769 0x9C65 #CJK UNIFIED IDEOGRAPH +0xF76A 0x9C66 #CJK UNIFIED IDEOGRAPH +0xF76B 0x9C67 #CJK UNIFIED IDEOGRAPH +0xF76C 0x9C68 #CJK UNIFIED IDEOGRAPH +0xF76D 0x9C69 #CJK UNIFIED IDEOGRAPH +0xF76E 0x9C6A #CJK UNIFIED IDEOGRAPH +0xF76F 0x9C6B #CJK UNIFIED IDEOGRAPH +0xF770 0x9C6C #CJK UNIFIED IDEOGRAPH +0xF771 0x9C6D #CJK UNIFIED IDEOGRAPH +0xF772 0x9C6E #CJK UNIFIED IDEOGRAPH +0xF773 0x9C6F #CJK UNIFIED IDEOGRAPH +0xF774 0x9C70 #CJK UNIFIED IDEOGRAPH +0xF775 0x9C71 #CJK UNIFIED IDEOGRAPH +0xF776 0x9C72 #CJK UNIFIED IDEOGRAPH +0xF777 0x9C73 #CJK UNIFIED IDEOGRAPH +0xF778 0x9C74 #CJK UNIFIED IDEOGRAPH +0xF779 0x9C75 #CJK UNIFIED IDEOGRAPH +0xF77A 0x9C76 #CJK UNIFIED IDEOGRAPH +0xF77B 0x9C77 #CJK UNIFIED IDEOGRAPH +0xF77C 0x9C78 #CJK UNIFIED IDEOGRAPH +0xF77D 0x9C79 #CJK UNIFIED IDEOGRAPH +0xF77E 0x9C7A #CJK UNIFIED IDEOGRAPH +0xF780 0x9C7B #CJK UNIFIED IDEOGRAPH +0xF781 0x9C7D #CJK UNIFIED IDEOGRAPH +0xF782 0x9C7E #CJK UNIFIED IDEOGRAPH +0xF783 0x9C80 #CJK UNIFIED IDEOGRAPH +0xF784 0x9C83 #CJK UNIFIED IDEOGRAPH +0xF785 0x9C84 #CJK UNIFIED IDEOGRAPH +0xF786 0x9C89 #CJK UNIFIED IDEOGRAPH +0xF787 0x9C8A #CJK UNIFIED IDEOGRAPH +0xF788 0x9C8C #CJK UNIFIED IDEOGRAPH +0xF789 0x9C8F #CJK UNIFIED IDEOGRAPH +0xF78A 0x9C93 #CJK UNIFIED IDEOGRAPH +0xF78B 0x9C96 #CJK UNIFIED IDEOGRAPH +0xF78C 0x9C97 #CJK UNIFIED IDEOGRAPH +0xF78D 0x9C98 #CJK UNIFIED IDEOGRAPH +0xF78E 0x9C99 #CJK UNIFIED IDEOGRAPH +0xF78F 0x9C9D #CJK UNIFIED IDEOGRAPH +0xF790 0x9CAA #CJK UNIFIED IDEOGRAPH +0xF791 0x9CAC #CJK UNIFIED IDEOGRAPH +0xF792 0x9CAF #CJK UNIFIED IDEOGRAPH +0xF793 0x9CB9 #CJK UNIFIED IDEOGRAPH +0xF794 0x9CBE #CJK UNIFIED IDEOGRAPH +0xF795 0x9CBF #CJK UNIFIED IDEOGRAPH +0xF796 0x9CC0 #CJK UNIFIED IDEOGRAPH +0xF797 0x9CC1 #CJK UNIFIED IDEOGRAPH +0xF798 0x9CC2 #CJK UNIFIED IDEOGRAPH +0xF799 0x9CC8 #CJK UNIFIED IDEOGRAPH +0xF79A 0x9CC9 #CJK UNIFIED IDEOGRAPH +0xF79B 0x9CD1 #CJK UNIFIED IDEOGRAPH +0xF79C 0x9CD2 #CJK UNIFIED IDEOGRAPH +0xF79D 0x9CDA #CJK UNIFIED IDEOGRAPH +0xF79E 0x9CDB #CJK UNIFIED IDEOGRAPH +0xF79F 0x9CE0 #CJK UNIFIED IDEOGRAPH +0xF7A0 0x9CE1 #CJK UNIFIED IDEOGRAPH +0xF7A1 0x9CCC #CJK UNIFIED IDEOGRAPH +0xF7A2 0x9CCD #CJK UNIFIED IDEOGRAPH +0xF7A3 0x9CCE #CJK UNIFIED IDEOGRAPH +0xF7A4 0x9CCF #CJK UNIFIED IDEOGRAPH +0xF7A5 0x9CD0 #CJK UNIFIED IDEOGRAPH +0xF7A6 0x9CD3 #CJK UNIFIED IDEOGRAPH +0xF7A7 0x9CD4 #CJK UNIFIED IDEOGRAPH +0xF7A8 0x9CD5 #CJK UNIFIED IDEOGRAPH +0xF7A9 0x9CD7 #CJK UNIFIED IDEOGRAPH +0xF7AA 0x9CD8 #CJK UNIFIED IDEOGRAPH +0xF7AB 0x9CD9 #CJK UNIFIED IDEOGRAPH +0xF7AC 0x9CDC #CJK UNIFIED IDEOGRAPH +0xF7AD 0x9CDD #CJK UNIFIED IDEOGRAPH +0xF7AE 0x9CDF #CJK UNIFIED IDEOGRAPH +0xF7AF 0x9CE2 #CJK UNIFIED IDEOGRAPH +0xF7B0 0x977C #CJK UNIFIED IDEOGRAPH +0xF7B1 0x9785 #CJK UNIFIED IDEOGRAPH +0xF7B2 0x9791 #CJK UNIFIED IDEOGRAPH +0xF7B3 0x9792 #CJK UNIFIED IDEOGRAPH +0xF7B4 0x9794 #CJK UNIFIED IDEOGRAPH +0xF7B5 0x97AF #CJK UNIFIED IDEOGRAPH +0xF7B6 0x97AB #CJK UNIFIED IDEOGRAPH +0xF7B7 0x97A3 #CJK UNIFIED IDEOGRAPH +0xF7B8 0x97B2 #CJK UNIFIED IDEOGRAPH +0xF7B9 0x97B4 #CJK UNIFIED IDEOGRAPH +0xF7BA 0x9AB1 #CJK UNIFIED IDEOGRAPH +0xF7BB 0x9AB0 #CJK UNIFIED IDEOGRAPH +0xF7BC 0x9AB7 #CJK UNIFIED IDEOGRAPH +0xF7BD 0x9E58 #CJK UNIFIED IDEOGRAPH +0xF7BE 0x9AB6 #CJK UNIFIED IDEOGRAPH +0xF7BF 0x9ABA #CJK UNIFIED IDEOGRAPH +0xF7C0 0x9ABC #CJK UNIFIED IDEOGRAPH +0xF7C1 0x9AC1 #CJK UNIFIED IDEOGRAPH +0xF7C2 0x9AC0 #CJK UNIFIED IDEOGRAPH +0xF7C3 0x9AC5 #CJK UNIFIED IDEOGRAPH +0xF7C4 0x9AC2 #CJK UNIFIED IDEOGRAPH +0xF7C5 0x9ACB #CJK UNIFIED IDEOGRAPH +0xF7C6 0x9ACC #CJK UNIFIED IDEOGRAPH +0xF7C7 0x9AD1 #CJK UNIFIED IDEOGRAPH +0xF7C8 0x9B45 #CJK UNIFIED IDEOGRAPH +0xF7C9 0x9B43 #CJK UNIFIED IDEOGRAPH +0xF7CA 0x9B47 #CJK UNIFIED IDEOGRAPH +0xF7CB 0x9B49 #CJK UNIFIED IDEOGRAPH +0xF7CC 0x9B48 #CJK UNIFIED IDEOGRAPH +0xF7CD 0x9B4D #CJK UNIFIED IDEOGRAPH +0xF7CE 0x9B51 #CJK UNIFIED IDEOGRAPH +0xF7CF 0x98E8 #CJK UNIFIED IDEOGRAPH +0xF7D0 0x990D #CJK UNIFIED IDEOGRAPH +0xF7D1 0x992E #CJK UNIFIED IDEOGRAPH +0xF7D2 0x9955 #CJK UNIFIED IDEOGRAPH +0xF7D3 0x9954 #CJK UNIFIED IDEOGRAPH +0xF7D4 0x9ADF #CJK UNIFIED IDEOGRAPH +0xF7D5 0x9AE1 #CJK UNIFIED IDEOGRAPH +0xF7D6 0x9AE6 #CJK UNIFIED IDEOGRAPH +0xF7D7 0x9AEF #CJK UNIFIED IDEOGRAPH +0xF7D8 0x9AEB #CJK UNIFIED IDEOGRAPH +0xF7D9 0x9AFB #CJK UNIFIED IDEOGRAPH +0xF7DA 0x9AED #CJK UNIFIED IDEOGRAPH +0xF7DB 0x9AF9 #CJK UNIFIED IDEOGRAPH +0xF7DC 0x9B08 #CJK UNIFIED IDEOGRAPH +0xF7DD 0x9B0F #CJK UNIFIED IDEOGRAPH +0xF7DE 0x9B13 #CJK UNIFIED IDEOGRAPH +0xF7DF 0x9B1F #CJK UNIFIED IDEOGRAPH +0xF7E0 0x9B23 #CJK UNIFIED IDEOGRAPH +0xF7E1 0x9EBD #CJK UNIFIED IDEOGRAPH +0xF7E2 0x9EBE #CJK UNIFIED IDEOGRAPH +0xF7E3 0x7E3B #CJK UNIFIED IDEOGRAPH +0xF7E4 0x9E82 #CJK UNIFIED IDEOGRAPH +0xF7E5 0x9E87 #CJK UNIFIED IDEOGRAPH +0xF7E6 0x9E88 #CJK UNIFIED IDEOGRAPH +0xF7E7 0x9E8B #CJK UNIFIED IDEOGRAPH +0xF7E8 0x9E92 #CJK UNIFIED IDEOGRAPH +0xF7E9 0x93D6 #CJK UNIFIED IDEOGRAPH +0xF7EA 0x9E9D #CJK UNIFIED IDEOGRAPH +0xF7EB 0x9E9F #CJK UNIFIED IDEOGRAPH +0xF7EC 0x9EDB #CJK UNIFIED IDEOGRAPH +0xF7ED 0x9EDC #CJK UNIFIED IDEOGRAPH +0xF7EE 0x9EDD #CJK UNIFIED IDEOGRAPH +0xF7EF 0x9EE0 #CJK UNIFIED IDEOGRAPH +0xF7F0 0x9EDF #CJK UNIFIED IDEOGRAPH +0xF7F1 0x9EE2 #CJK UNIFIED IDEOGRAPH +0xF7F2 0x9EE9 #CJK UNIFIED IDEOGRAPH +0xF7F3 0x9EE7 #CJK UNIFIED IDEOGRAPH +0xF7F4 0x9EE5 #CJK UNIFIED IDEOGRAPH +0xF7F5 0x9EEA #CJK UNIFIED IDEOGRAPH +0xF7F6 0x9EEF #CJK UNIFIED IDEOGRAPH +0xF7F7 0x9F22 #CJK UNIFIED IDEOGRAPH +0xF7F8 0x9F2C #CJK UNIFIED IDEOGRAPH +0xF7F9 0x9F2F #CJK UNIFIED IDEOGRAPH +0xF7FA 0x9F39 #CJK UNIFIED IDEOGRAPH +0xF7FB 0x9F37 #CJK UNIFIED IDEOGRAPH +0xF7FC 0x9F3D #CJK UNIFIED IDEOGRAPH +0xF7FD 0x9F3E #CJK UNIFIED IDEOGRAPH +0xF7FE 0x9F44 #CJK UNIFIED IDEOGRAPH +0xF840 0x9CE3 #CJK UNIFIED IDEOGRAPH +0xF841 0x9CE4 #CJK UNIFIED IDEOGRAPH +0xF842 0x9CE5 #CJK UNIFIED IDEOGRAPH +0xF843 0x9CE6 #CJK UNIFIED IDEOGRAPH +0xF844 0x9CE7 #CJK UNIFIED IDEOGRAPH +0xF845 0x9CE8 #CJK UNIFIED IDEOGRAPH +0xF846 0x9CE9 #CJK UNIFIED IDEOGRAPH +0xF847 0x9CEA #CJK UNIFIED IDEOGRAPH +0xF848 0x9CEB #CJK UNIFIED IDEOGRAPH +0xF849 0x9CEC #CJK UNIFIED IDEOGRAPH +0xF84A 0x9CED #CJK UNIFIED IDEOGRAPH +0xF84B 0x9CEE #CJK UNIFIED IDEOGRAPH +0xF84C 0x9CEF #CJK UNIFIED IDEOGRAPH +0xF84D 0x9CF0 #CJK UNIFIED IDEOGRAPH +0xF84E 0x9CF1 #CJK UNIFIED IDEOGRAPH +0xF84F 0x9CF2 #CJK UNIFIED IDEOGRAPH +0xF850 0x9CF3 #CJK UNIFIED IDEOGRAPH +0xF851 0x9CF4 #CJK UNIFIED IDEOGRAPH +0xF852 0x9CF5 #CJK UNIFIED IDEOGRAPH +0xF853 0x9CF6 #CJK UNIFIED IDEOGRAPH +0xF854 0x9CF7 #CJK UNIFIED IDEOGRAPH +0xF855 0x9CF8 #CJK UNIFIED IDEOGRAPH +0xF856 0x9CF9 #CJK UNIFIED IDEOGRAPH +0xF857 0x9CFA #CJK UNIFIED IDEOGRAPH +0xF858 0x9CFB #CJK UNIFIED IDEOGRAPH +0xF859 0x9CFC #CJK UNIFIED IDEOGRAPH +0xF85A 0x9CFD #CJK UNIFIED IDEOGRAPH +0xF85B 0x9CFE #CJK UNIFIED IDEOGRAPH +0xF85C 0x9CFF #CJK UNIFIED IDEOGRAPH +0xF85D 0x9D00 #CJK UNIFIED IDEOGRAPH +0xF85E 0x9D01 #CJK UNIFIED IDEOGRAPH +0xF85F 0x9D02 #CJK UNIFIED IDEOGRAPH +0xF860 0x9D03 #CJK UNIFIED IDEOGRAPH +0xF861 0x9D04 #CJK UNIFIED IDEOGRAPH +0xF862 0x9D05 #CJK UNIFIED IDEOGRAPH +0xF863 0x9D06 #CJK UNIFIED IDEOGRAPH +0xF864 0x9D07 #CJK UNIFIED IDEOGRAPH +0xF865 0x9D08 #CJK UNIFIED IDEOGRAPH +0xF866 0x9D09 #CJK UNIFIED IDEOGRAPH +0xF867 0x9D0A #CJK UNIFIED IDEOGRAPH +0xF868 0x9D0B #CJK UNIFIED IDEOGRAPH +0xF869 0x9D0C #CJK UNIFIED IDEOGRAPH +0xF86A 0x9D0D #CJK UNIFIED IDEOGRAPH +0xF86B 0x9D0E #CJK UNIFIED IDEOGRAPH +0xF86C 0x9D0F #CJK UNIFIED IDEOGRAPH +0xF86D 0x9D10 #CJK UNIFIED IDEOGRAPH +0xF86E 0x9D11 #CJK UNIFIED IDEOGRAPH +0xF86F 0x9D12 #CJK UNIFIED IDEOGRAPH +0xF870 0x9D13 #CJK UNIFIED IDEOGRAPH +0xF871 0x9D14 #CJK UNIFIED IDEOGRAPH +0xF872 0x9D15 #CJK UNIFIED IDEOGRAPH +0xF873 0x9D16 #CJK UNIFIED IDEOGRAPH +0xF874 0x9D17 #CJK UNIFIED IDEOGRAPH +0xF875 0x9D18 #CJK UNIFIED IDEOGRAPH +0xF876 0x9D19 #CJK UNIFIED IDEOGRAPH +0xF877 0x9D1A #CJK UNIFIED IDEOGRAPH +0xF878 0x9D1B #CJK UNIFIED IDEOGRAPH +0xF879 0x9D1C #CJK UNIFIED IDEOGRAPH +0xF87A 0x9D1D #CJK UNIFIED IDEOGRAPH +0xF87B 0x9D1E #CJK UNIFIED IDEOGRAPH +0xF87C 0x9D1F #CJK UNIFIED IDEOGRAPH +0xF87D 0x9D20 #CJK UNIFIED IDEOGRAPH +0xF87E 0x9D21 #CJK UNIFIED IDEOGRAPH +0xF880 0x9D22 #CJK UNIFIED IDEOGRAPH +0xF881 0x9D23 #CJK UNIFIED IDEOGRAPH +0xF882 0x9D24 #CJK UNIFIED IDEOGRAPH +0xF883 0x9D25 #CJK UNIFIED IDEOGRAPH +0xF884 0x9D26 #CJK UNIFIED IDEOGRAPH +0xF885 0x9D27 #CJK UNIFIED IDEOGRAPH +0xF886 0x9D28 #CJK UNIFIED IDEOGRAPH +0xF887 0x9D29 #CJK UNIFIED IDEOGRAPH +0xF888 0x9D2A #CJK UNIFIED IDEOGRAPH +0xF889 0x9D2B #CJK UNIFIED IDEOGRAPH +0xF88A 0x9D2C #CJK UNIFIED IDEOGRAPH +0xF88B 0x9D2D #CJK UNIFIED IDEOGRAPH +0xF88C 0x9D2E #CJK UNIFIED IDEOGRAPH +0xF88D 0x9D2F #CJK UNIFIED IDEOGRAPH +0xF88E 0x9D30 #CJK UNIFIED IDEOGRAPH +0xF88F 0x9D31 #CJK UNIFIED IDEOGRAPH +0xF890 0x9D32 #CJK UNIFIED IDEOGRAPH +0xF891 0x9D33 #CJK UNIFIED IDEOGRAPH +0xF892 0x9D34 #CJK UNIFIED IDEOGRAPH +0xF893 0x9D35 #CJK UNIFIED IDEOGRAPH +0xF894 0x9D36 #CJK UNIFIED IDEOGRAPH +0xF895 0x9D37 #CJK UNIFIED IDEOGRAPH +0xF896 0x9D38 #CJK UNIFIED IDEOGRAPH +0xF897 0x9D39 #CJK UNIFIED IDEOGRAPH +0xF898 0x9D3A #CJK UNIFIED IDEOGRAPH +0xF899 0x9D3B #CJK UNIFIED IDEOGRAPH +0xF89A 0x9D3C #CJK UNIFIED IDEOGRAPH +0xF89B 0x9D3D #CJK UNIFIED IDEOGRAPH +0xF89C 0x9D3E #CJK UNIFIED IDEOGRAPH +0xF89D 0x9D3F #CJK UNIFIED IDEOGRAPH +0xF89E 0x9D40 #CJK UNIFIED IDEOGRAPH +0xF89F 0x9D41 #CJK UNIFIED IDEOGRAPH +0xF8A0 0x9D42 #CJK UNIFIED IDEOGRAPH +0xF940 0x9D43 #CJK UNIFIED IDEOGRAPH +0xF941 0x9D44 #CJK UNIFIED IDEOGRAPH +0xF942 0x9D45 #CJK UNIFIED IDEOGRAPH +0xF943 0x9D46 #CJK UNIFIED IDEOGRAPH +0xF944 0x9D47 #CJK UNIFIED IDEOGRAPH +0xF945 0x9D48 #CJK UNIFIED IDEOGRAPH +0xF946 0x9D49 #CJK UNIFIED IDEOGRAPH +0xF947 0x9D4A #CJK UNIFIED IDEOGRAPH +0xF948 0x9D4B #CJK UNIFIED IDEOGRAPH +0xF949 0x9D4C #CJK UNIFIED IDEOGRAPH +0xF94A 0x9D4D #CJK UNIFIED IDEOGRAPH +0xF94B 0x9D4E #CJK UNIFIED IDEOGRAPH +0xF94C 0x9D4F #CJK UNIFIED IDEOGRAPH +0xF94D 0x9D50 #CJK UNIFIED IDEOGRAPH +0xF94E 0x9D51 #CJK UNIFIED IDEOGRAPH +0xF94F 0x9D52 #CJK UNIFIED IDEOGRAPH +0xF950 0x9D53 #CJK UNIFIED IDEOGRAPH +0xF951 0x9D54 #CJK UNIFIED IDEOGRAPH +0xF952 0x9D55 #CJK UNIFIED IDEOGRAPH +0xF953 0x9D56 #CJK UNIFIED IDEOGRAPH +0xF954 0x9D57 #CJK UNIFIED IDEOGRAPH +0xF955 0x9D58 #CJK UNIFIED IDEOGRAPH +0xF956 0x9D59 #CJK UNIFIED IDEOGRAPH +0xF957 0x9D5A #CJK UNIFIED IDEOGRAPH +0xF958 0x9D5B #CJK UNIFIED IDEOGRAPH +0xF959 0x9D5C #CJK UNIFIED IDEOGRAPH +0xF95A 0x9D5D #CJK UNIFIED IDEOGRAPH +0xF95B 0x9D5E #CJK UNIFIED IDEOGRAPH +0xF95C 0x9D5F #CJK UNIFIED IDEOGRAPH +0xF95D 0x9D60 #CJK UNIFIED IDEOGRAPH +0xF95E 0x9D61 #CJK UNIFIED IDEOGRAPH +0xF95F 0x9D62 #CJK UNIFIED IDEOGRAPH +0xF960 0x9D63 #CJK UNIFIED IDEOGRAPH +0xF961 0x9D64 #CJK UNIFIED IDEOGRAPH +0xF962 0x9D65 #CJK UNIFIED IDEOGRAPH +0xF963 0x9D66 #CJK UNIFIED IDEOGRAPH +0xF964 0x9D67 #CJK UNIFIED IDEOGRAPH +0xF965 0x9D68 #CJK UNIFIED IDEOGRAPH +0xF966 0x9D69 #CJK UNIFIED IDEOGRAPH +0xF967 0x9D6A #CJK UNIFIED IDEOGRAPH +0xF968 0x9D6B #CJK UNIFIED IDEOGRAPH +0xF969 0x9D6C #CJK UNIFIED IDEOGRAPH +0xF96A 0x9D6D #CJK UNIFIED IDEOGRAPH +0xF96B 0x9D6E #CJK UNIFIED IDEOGRAPH +0xF96C 0x9D6F #CJK UNIFIED IDEOGRAPH +0xF96D 0x9D70 #CJK UNIFIED IDEOGRAPH +0xF96E 0x9D71 #CJK UNIFIED IDEOGRAPH +0xF96F 0x9D72 #CJK UNIFIED IDEOGRAPH +0xF970 0x9D73 #CJK UNIFIED IDEOGRAPH +0xF971 0x9D74 #CJK UNIFIED IDEOGRAPH +0xF972 0x9D75 #CJK UNIFIED IDEOGRAPH +0xF973 0x9D76 #CJK UNIFIED IDEOGRAPH +0xF974 0x9D77 #CJK UNIFIED IDEOGRAPH +0xF975 0x9D78 #CJK UNIFIED IDEOGRAPH +0xF976 0x9D79 #CJK UNIFIED IDEOGRAPH +0xF977 0x9D7A #CJK UNIFIED IDEOGRAPH +0xF978 0x9D7B #CJK UNIFIED IDEOGRAPH +0xF979 0x9D7C #CJK UNIFIED IDEOGRAPH +0xF97A 0x9D7D #CJK UNIFIED IDEOGRAPH +0xF97B 0x9D7E #CJK UNIFIED IDEOGRAPH +0xF97C 0x9D7F #CJK UNIFIED IDEOGRAPH +0xF97D 0x9D80 #CJK UNIFIED IDEOGRAPH +0xF97E 0x9D81 #CJK UNIFIED IDEOGRAPH +0xF980 0x9D82 #CJK UNIFIED IDEOGRAPH +0xF981 0x9D83 #CJK UNIFIED IDEOGRAPH +0xF982 0x9D84 #CJK UNIFIED IDEOGRAPH +0xF983 0x9D85 #CJK UNIFIED IDEOGRAPH +0xF984 0x9D86 #CJK UNIFIED IDEOGRAPH +0xF985 0x9D87 #CJK UNIFIED IDEOGRAPH +0xF986 0x9D88 #CJK UNIFIED IDEOGRAPH +0xF987 0x9D89 #CJK UNIFIED IDEOGRAPH +0xF988 0x9D8A #CJK UNIFIED IDEOGRAPH +0xF989 0x9D8B #CJK UNIFIED IDEOGRAPH +0xF98A 0x9D8C #CJK UNIFIED IDEOGRAPH +0xF98B 0x9D8D #CJK UNIFIED IDEOGRAPH +0xF98C 0x9D8E #CJK UNIFIED IDEOGRAPH +0xF98D 0x9D8F #CJK UNIFIED IDEOGRAPH +0xF98E 0x9D90 #CJK UNIFIED IDEOGRAPH +0xF98F 0x9D91 #CJK UNIFIED IDEOGRAPH +0xF990 0x9D92 #CJK UNIFIED IDEOGRAPH +0xF991 0x9D93 #CJK UNIFIED IDEOGRAPH +0xF992 0x9D94 #CJK UNIFIED IDEOGRAPH +0xF993 0x9D95 #CJK UNIFIED IDEOGRAPH +0xF994 0x9D96 #CJK UNIFIED IDEOGRAPH +0xF995 0x9D97 #CJK UNIFIED IDEOGRAPH +0xF996 0x9D98 #CJK UNIFIED IDEOGRAPH +0xF997 0x9D99 #CJK UNIFIED IDEOGRAPH +0xF998 0x9D9A #CJK UNIFIED IDEOGRAPH +0xF999 0x9D9B #CJK UNIFIED IDEOGRAPH +0xF99A 0x9D9C #CJK UNIFIED IDEOGRAPH +0xF99B 0x9D9D #CJK UNIFIED IDEOGRAPH +0xF99C 0x9D9E #CJK UNIFIED IDEOGRAPH +0xF99D 0x9D9F #CJK UNIFIED IDEOGRAPH +0xF99E 0x9DA0 #CJK UNIFIED IDEOGRAPH +0xF99F 0x9DA1 #CJK UNIFIED IDEOGRAPH +0xF9A0 0x9DA2 #CJK UNIFIED IDEOGRAPH +0xFA40 0x9DA3 #CJK UNIFIED IDEOGRAPH +0xFA41 0x9DA4 #CJK UNIFIED IDEOGRAPH +0xFA42 0x9DA5 #CJK UNIFIED IDEOGRAPH +0xFA43 0x9DA6 #CJK UNIFIED IDEOGRAPH +0xFA44 0x9DA7 #CJK UNIFIED IDEOGRAPH +0xFA45 0x9DA8 #CJK UNIFIED IDEOGRAPH +0xFA46 0x9DA9 #CJK UNIFIED IDEOGRAPH +0xFA47 0x9DAA #CJK UNIFIED IDEOGRAPH +0xFA48 0x9DAB #CJK UNIFIED IDEOGRAPH +0xFA49 0x9DAC #CJK UNIFIED IDEOGRAPH +0xFA4A 0x9DAD #CJK UNIFIED IDEOGRAPH +0xFA4B 0x9DAE #CJK UNIFIED IDEOGRAPH +0xFA4C 0x9DAF #CJK UNIFIED IDEOGRAPH +0xFA4D 0x9DB0 #CJK UNIFIED IDEOGRAPH +0xFA4E 0x9DB1 #CJK UNIFIED IDEOGRAPH +0xFA4F 0x9DB2 #CJK UNIFIED IDEOGRAPH +0xFA50 0x9DB3 #CJK UNIFIED IDEOGRAPH +0xFA51 0x9DB4 #CJK UNIFIED IDEOGRAPH +0xFA52 0x9DB5 #CJK UNIFIED IDEOGRAPH +0xFA53 0x9DB6 #CJK UNIFIED IDEOGRAPH +0xFA54 0x9DB7 #CJK UNIFIED IDEOGRAPH +0xFA55 0x9DB8 #CJK UNIFIED IDEOGRAPH +0xFA56 0x9DB9 #CJK UNIFIED IDEOGRAPH +0xFA57 0x9DBA #CJK UNIFIED IDEOGRAPH +0xFA58 0x9DBB #CJK UNIFIED IDEOGRAPH +0xFA59 0x9DBC #CJK UNIFIED IDEOGRAPH +0xFA5A 0x9DBD #CJK UNIFIED IDEOGRAPH +0xFA5B 0x9DBE #CJK UNIFIED IDEOGRAPH +0xFA5C 0x9DBF #CJK UNIFIED IDEOGRAPH +0xFA5D 0x9DC0 #CJK UNIFIED IDEOGRAPH +0xFA5E 0x9DC1 #CJK UNIFIED IDEOGRAPH +0xFA5F 0x9DC2 #CJK UNIFIED IDEOGRAPH +0xFA60 0x9DC3 #CJK UNIFIED IDEOGRAPH +0xFA61 0x9DC4 #CJK UNIFIED IDEOGRAPH +0xFA62 0x9DC5 #CJK UNIFIED IDEOGRAPH +0xFA63 0x9DC6 #CJK UNIFIED IDEOGRAPH +0xFA64 0x9DC7 #CJK UNIFIED IDEOGRAPH +0xFA65 0x9DC8 #CJK UNIFIED IDEOGRAPH +0xFA66 0x9DC9 #CJK UNIFIED IDEOGRAPH +0xFA67 0x9DCA #CJK UNIFIED IDEOGRAPH +0xFA68 0x9DCB #CJK UNIFIED IDEOGRAPH +0xFA69 0x9DCC #CJK UNIFIED IDEOGRAPH +0xFA6A 0x9DCD #CJK UNIFIED IDEOGRAPH +0xFA6B 0x9DCE #CJK UNIFIED IDEOGRAPH +0xFA6C 0x9DCF #CJK UNIFIED IDEOGRAPH +0xFA6D 0x9DD0 #CJK UNIFIED IDEOGRAPH +0xFA6E 0x9DD1 #CJK UNIFIED IDEOGRAPH +0xFA6F 0x9DD2 #CJK UNIFIED IDEOGRAPH +0xFA70 0x9DD3 #CJK UNIFIED IDEOGRAPH +0xFA71 0x9DD4 #CJK UNIFIED IDEOGRAPH +0xFA72 0x9DD5 #CJK UNIFIED IDEOGRAPH +0xFA73 0x9DD6 #CJK UNIFIED IDEOGRAPH +0xFA74 0x9DD7 #CJK UNIFIED IDEOGRAPH +0xFA75 0x9DD8 #CJK UNIFIED IDEOGRAPH +0xFA76 0x9DD9 #CJK UNIFIED IDEOGRAPH +0xFA77 0x9DDA #CJK UNIFIED IDEOGRAPH +0xFA78 0x9DDB #CJK UNIFIED IDEOGRAPH +0xFA79 0x9DDC #CJK UNIFIED IDEOGRAPH +0xFA7A 0x9DDD #CJK UNIFIED IDEOGRAPH +0xFA7B 0x9DDE #CJK UNIFIED IDEOGRAPH +0xFA7C 0x9DDF #CJK UNIFIED IDEOGRAPH +0xFA7D 0x9DE0 #CJK UNIFIED IDEOGRAPH +0xFA7E 0x9DE1 #CJK UNIFIED IDEOGRAPH +0xFA80 0x9DE2 #CJK UNIFIED IDEOGRAPH +0xFA81 0x9DE3 #CJK UNIFIED IDEOGRAPH +0xFA82 0x9DE4 #CJK UNIFIED IDEOGRAPH +0xFA83 0x9DE5 #CJK UNIFIED IDEOGRAPH +0xFA84 0x9DE6 #CJK UNIFIED IDEOGRAPH +0xFA85 0x9DE7 #CJK UNIFIED IDEOGRAPH +0xFA86 0x9DE8 #CJK UNIFIED IDEOGRAPH +0xFA87 0x9DE9 #CJK UNIFIED IDEOGRAPH +0xFA88 0x9DEA #CJK UNIFIED IDEOGRAPH +0xFA89 0x9DEB #CJK UNIFIED IDEOGRAPH +0xFA8A 0x9DEC #CJK UNIFIED IDEOGRAPH +0xFA8B 0x9DED #CJK UNIFIED IDEOGRAPH +0xFA8C 0x9DEE #CJK UNIFIED IDEOGRAPH +0xFA8D 0x9DEF #CJK UNIFIED IDEOGRAPH +0xFA8E 0x9DF0 #CJK UNIFIED IDEOGRAPH +0xFA8F 0x9DF1 #CJK UNIFIED IDEOGRAPH +0xFA90 0x9DF2 #CJK UNIFIED IDEOGRAPH +0xFA91 0x9DF3 #CJK UNIFIED IDEOGRAPH +0xFA92 0x9DF4 #CJK UNIFIED IDEOGRAPH +0xFA93 0x9DF5 #CJK UNIFIED IDEOGRAPH +0xFA94 0x9DF6 #CJK UNIFIED IDEOGRAPH +0xFA95 0x9DF7 #CJK UNIFIED IDEOGRAPH +0xFA96 0x9DF8 #CJK UNIFIED IDEOGRAPH +0xFA97 0x9DF9 #CJK UNIFIED IDEOGRAPH +0xFA98 0x9DFA #CJK UNIFIED IDEOGRAPH +0xFA99 0x9DFB #CJK UNIFIED IDEOGRAPH +0xFA9A 0x9DFC #CJK UNIFIED IDEOGRAPH +0xFA9B 0x9DFD #CJK UNIFIED IDEOGRAPH +0xFA9C 0x9DFE #CJK UNIFIED IDEOGRAPH +0xFA9D 0x9DFF #CJK UNIFIED IDEOGRAPH +0xFA9E 0x9E00 #CJK UNIFIED IDEOGRAPH +0xFA9F 0x9E01 #CJK UNIFIED IDEOGRAPH +0xFAA0 0x9E02 #CJK UNIFIED IDEOGRAPH +0xFB40 0x9E03 #CJK UNIFIED IDEOGRAPH +0xFB41 0x9E04 #CJK UNIFIED IDEOGRAPH +0xFB42 0x9E05 #CJK UNIFIED IDEOGRAPH +0xFB43 0x9E06 #CJK UNIFIED IDEOGRAPH +0xFB44 0x9E07 #CJK UNIFIED IDEOGRAPH +0xFB45 0x9E08 #CJK UNIFIED IDEOGRAPH +0xFB46 0x9E09 #CJK UNIFIED IDEOGRAPH +0xFB47 0x9E0A #CJK UNIFIED IDEOGRAPH +0xFB48 0x9E0B #CJK UNIFIED IDEOGRAPH +0xFB49 0x9E0C #CJK UNIFIED IDEOGRAPH +0xFB4A 0x9E0D #CJK UNIFIED IDEOGRAPH +0xFB4B 0x9E0E #CJK UNIFIED IDEOGRAPH +0xFB4C 0x9E0F #CJK UNIFIED IDEOGRAPH +0xFB4D 0x9E10 #CJK UNIFIED IDEOGRAPH +0xFB4E 0x9E11 #CJK UNIFIED IDEOGRAPH +0xFB4F 0x9E12 #CJK UNIFIED IDEOGRAPH +0xFB50 0x9E13 #CJK UNIFIED IDEOGRAPH +0xFB51 0x9E14 #CJK UNIFIED IDEOGRAPH +0xFB52 0x9E15 #CJK UNIFIED IDEOGRAPH +0xFB53 0x9E16 #CJK UNIFIED IDEOGRAPH +0xFB54 0x9E17 #CJK UNIFIED IDEOGRAPH +0xFB55 0x9E18 #CJK UNIFIED IDEOGRAPH +0xFB56 0x9E19 #CJK UNIFIED IDEOGRAPH +0xFB57 0x9E1A #CJK UNIFIED IDEOGRAPH +0xFB58 0x9E1B #CJK UNIFIED IDEOGRAPH +0xFB59 0x9E1C #CJK UNIFIED IDEOGRAPH +0xFB5A 0x9E1D #CJK UNIFIED IDEOGRAPH +0xFB5B 0x9E1E #CJK UNIFIED IDEOGRAPH +0xFB5C 0x9E24 #CJK UNIFIED IDEOGRAPH +0xFB5D 0x9E27 #CJK UNIFIED IDEOGRAPH +0xFB5E 0x9E2E #CJK UNIFIED IDEOGRAPH +0xFB5F 0x9E30 #CJK UNIFIED IDEOGRAPH +0xFB60 0x9E34 #CJK UNIFIED IDEOGRAPH +0xFB61 0x9E3B #CJK UNIFIED IDEOGRAPH +0xFB62 0x9E3C #CJK UNIFIED IDEOGRAPH +0xFB63 0x9E40 #CJK UNIFIED IDEOGRAPH +0xFB64 0x9E4D #CJK UNIFIED IDEOGRAPH +0xFB65 0x9E50 #CJK UNIFIED IDEOGRAPH +0xFB66 0x9E52 #CJK UNIFIED IDEOGRAPH +0xFB67 0x9E53 #CJK UNIFIED IDEOGRAPH +0xFB68 0x9E54 #CJK UNIFIED IDEOGRAPH +0xFB69 0x9E56 #CJK UNIFIED IDEOGRAPH +0xFB6A 0x9E59 #CJK UNIFIED IDEOGRAPH +0xFB6B 0x9E5D #CJK UNIFIED IDEOGRAPH +0xFB6C 0x9E5F #CJK UNIFIED IDEOGRAPH +0xFB6D 0x9E60 #CJK UNIFIED IDEOGRAPH +0xFB6E 0x9E61 #CJK UNIFIED IDEOGRAPH +0xFB6F 0x9E62 #CJK UNIFIED IDEOGRAPH +0xFB70 0x9E65 #CJK UNIFIED IDEOGRAPH +0xFB71 0x9E6E #CJK UNIFIED IDEOGRAPH +0xFB72 0x9E6F #CJK UNIFIED IDEOGRAPH +0xFB73 0x9E72 #CJK UNIFIED IDEOGRAPH +0xFB74 0x9E74 #CJK UNIFIED IDEOGRAPH +0xFB75 0x9E75 #CJK UNIFIED IDEOGRAPH +0xFB76 0x9E76 #CJK UNIFIED IDEOGRAPH +0xFB77 0x9E77 #CJK UNIFIED IDEOGRAPH +0xFB78 0x9E78 #CJK UNIFIED IDEOGRAPH +0xFB79 0x9E79 #CJK UNIFIED IDEOGRAPH +0xFB7A 0x9E7A #CJK UNIFIED IDEOGRAPH +0xFB7B 0x9E7B #CJK UNIFIED IDEOGRAPH +0xFB7C 0x9E7C #CJK UNIFIED IDEOGRAPH +0xFB7D 0x9E7D #CJK UNIFIED IDEOGRAPH +0xFB7E 0x9E80 #CJK UNIFIED IDEOGRAPH +0xFB80 0x9E81 #CJK UNIFIED IDEOGRAPH +0xFB81 0x9E83 #CJK UNIFIED IDEOGRAPH +0xFB82 0x9E84 #CJK UNIFIED IDEOGRAPH +0xFB83 0x9E85 #CJK UNIFIED IDEOGRAPH +0xFB84 0x9E86 #CJK UNIFIED IDEOGRAPH +0xFB85 0x9E89 #CJK UNIFIED IDEOGRAPH +0xFB86 0x9E8A #CJK UNIFIED IDEOGRAPH +0xFB87 0x9E8C #CJK UNIFIED IDEOGRAPH +0xFB88 0x9E8D #CJK UNIFIED IDEOGRAPH +0xFB89 0x9E8E #CJK UNIFIED IDEOGRAPH +0xFB8A 0x9E8F #CJK UNIFIED IDEOGRAPH +0xFB8B 0x9E90 #CJK UNIFIED IDEOGRAPH +0xFB8C 0x9E91 #CJK UNIFIED IDEOGRAPH +0xFB8D 0x9E94 #CJK UNIFIED IDEOGRAPH +0xFB8E 0x9E95 #CJK UNIFIED IDEOGRAPH +0xFB8F 0x9E96 #CJK UNIFIED IDEOGRAPH +0xFB90 0x9E97 #CJK UNIFIED IDEOGRAPH +0xFB91 0x9E98 #CJK UNIFIED IDEOGRAPH +0xFB92 0x9E99 #CJK UNIFIED IDEOGRAPH +0xFB93 0x9E9A #CJK UNIFIED IDEOGRAPH +0xFB94 0x9E9B #CJK UNIFIED IDEOGRAPH +0xFB95 0x9E9C #CJK UNIFIED IDEOGRAPH +0xFB96 0x9E9E #CJK UNIFIED IDEOGRAPH +0xFB97 0x9EA0 #CJK UNIFIED IDEOGRAPH +0xFB98 0x9EA1 #CJK UNIFIED IDEOGRAPH +0xFB99 0x9EA2 #CJK UNIFIED IDEOGRAPH +0xFB9A 0x9EA3 #CJK UNIFIED IDEOGRAPH +0xFB9B 0x9EA4 #CJK UNIFIED IDEOGRAPH +0xFB9C 0x9EA5 #CJK UNIFIED IDEOGRAPH +0xFB9D 0x9EA7 #CJK UNIFIED IDEOGRAPH +0xFB9E 0x9EA8 #CJK UNIFIED IDEOGRAPH +0xFB9F 0x9EA9 #CJK UNIFIED IDEOGRAPH +0xFBA0 0x9EAA #CJK UNIFIED IDEOGRAPH +0xFC40 0x9EAB #CJK UNIFIED IDEOGRAPH +0xFC41 0x9EAC #CJK UNIFIED IDEOGRAPH +0xFC42 0x9EAD #CJK UNIFIED IDEOGRAPH +0xFC43 0x9EAE #CJK UNIFIED IDEOGRAPH +0xFC44 0x9EAF #CJK UNIFIED IDEOGRAPH +0xFC45 0x9EB0 #CJK UNIFIED IDEOGRAPH +0xFC46 0x9EB1 #CJK UNIFIED IDEOGRAPH +0xFC47 0x9EB2 #CJK UNIFIED IDEOGRAPH +0xFC48 0x9EB3 #CJK UNIFIED IDEOGRAPH +0xFC49 0x9EB5 #CJK UNIFIED IDEOGRAPH +0xFC4A 0x9EB6 #CJK UNIFIED IDEOGRAPH +0xFC4B 0x9EB7 #CJK UNIFIED IDEOGRAPH +0xFC4C 0x9EB9 #CJK UNIFIED IDEOGRAPH +0xFC4D 0x9EBA #CJK UNIFIED IDEOGRAPH +0xFC4E 0x9EBC #CJK UNIFIED IDEOGRAPH +0xFC4F 0x9EBF #CJK UNIFIED IDEOGRAPH +0xFC50 0x9EC0 #CJK UNIFIED IDEOGRAPH +0xFC51 0x9EC1 #CJK UNIFIED IDEOGRAPH +0xFC52 0x9EC2 #CJK UNIFIED IDEOGRAPH +0xFC53 0x9EC3 #CJK UNIFIED IDEOGRAPH +0xFC54 0x9EC5 #CJK UNIFIED IDEOGRAPH +0xFC55 0x9EC6 #CJK UNIFIED IDEOGRAPH +0xFC56 0x9EC7 #CJK UNIFIED IDEOGRAPH +0xFC57 0x9EC8 #CJK UNIFIED IDEOGRAPH +0xFC58 0x9ECA #CJK UNIFIED IDEOGRAPH +0xFC59 0x9ECB #CJK UNIFIED IDEOGRAPH +0xFC5A 0x9ECC #CJK UNIFIED IDEOGRAPH +0xFC5B 0x9ED0 #CJK UNIFIED IDEOGRAPH +0xFC5C 0x9ED2 #CJK UNIFIED IDEOGRAPH +0xFC5D 0x9ED3 #CJK UNIFIED IDEOGRAPH +0xFC5E 0x9ED5 #CJK UNIFIED IDEOGRAPH +0xFC5F 0x9ED6 #CJK UNIFIED IDEOGRAPH +0xFC60 0x9ED7 #CJK UNIFIED IDEOGRAPH +0xFC61 0x9ED9 #CJK UNIFIED IDEOGRAPH +0xFC62 0x9EDA #CJK UNIFIED IDEOGRAPH +0xFC63 0x9EDE #CJK UNIFIED IDEOGRAPH +0xFC64 0x9EE1 #CJK UNIFIED IDEOGRAPH +0xFC65 0x9EE3 #CJK UNIFIED IDEOGRAPH +0xFC66 0x9EE4 #CJK UNIFIED IDEOGRAPH +0xFC67 0x9EE6 #CJK UNIFIED IDEOGRAPH +0xFC68 0x9EE8 #CJK UNIFIED IDEOGRAPH +0xFC69 0x9EEB #CJK UNIFIED IDEOGRAPH +0xFC6A 0x9EEC #CJK UNIFIED IDEOGRAPH +0xFC6B 0x9EED #CJK UNIFIED IDEOGRAPH +0xFC6C 0x9EEE #CJK UNIFIED IDEOGRAPH +0xFC6D 0x9EF0 #CJK UNIFIED IDEOGRAPH +0xFC6E 0x9EF1 #CJK UNIFIED IDEOGRAPH +0xFC6F 0x9EF2 #CJK UNIFIED IDEOGRAPH +0xFC70 0x9EF3 #CJK UNIFIED IDEOGRAPH +0xFC71 0x9EF4 #CJK UNIFIED IDEOGRAPH +0xFC72 0x9EF5 #CJK UNIFIED IDEOGRAPH +0xFC73 0x9EF6 #CJK UNIFIED IDEOGRAPH +0xFC74 0x9EF7 #CJK UNIFIED IDEOGRAPH +0xFC75 0x9EF8 #CJK UNIFIED IDEOGRAPH +0xFC76 0x9EFA #CJK UNIFIED IDEOGRAPH +0xFC77 0x9EFD #CJK UNIFIED IDEOGRAPH +0xFC78 0x9EFF #CJK UNIFIED IDEOGRAPH +0xFC79 0x9F00 #CJK UNIFIED IDEOGRAPH +0xFC7A 0x9F01 #CJK UNIFIED IDEOGRAPH +0xFC7B 0x9F02 #CJK UNIFIED IDEOGRAPH +0xFC7C 0x9F03 #CJK UNIFIED IDEOGRAPH +0xFC7D 0x9F04 #CJK UNIFIED IDEOGRAPH +0xFC7E 0x9F05 #CJK UNIFIED IDEOGRAPH +0xFC80 0x9F06 #CJK UNIFIED IDEOGRAPH +0xFC81 0x9F07 #CJK UNIFIED IDEOGRAPH +0xFC82 0x9F08 #CJK UNIFIED IDEOGRAPH +0xFC83 0x9F09 #CJK UNIFIED IDEOGRAPH +0xFC84 0x9F0A #CJK UNIFIED IDEOGRAPH +0xFC85 0x9F0C #CJK UNIFIED IDEOGRAPH +0xFC86 0x9F0F #CJK UNIFIED IDEOGRAPH +0xFC87 0x9F11 #CJK UNIFIED IDEOGRAPH +0xFC88 0x9F12 #CJK UNIFIED IDEOGRAPH +0xFC89 0x9F14 #CJK UNIFIED IDEOGRAPH +0xFC8A 0x9F15 #CJK UNIFIED IDEOGRAPH +0xFC8B 0x9F16 #CJK UNIFIED IDEOGRAPH +0xFC8C 0x9F18 #CJK UNIFIED IDEOGRAPH +0xFC8D 0x9F1A #CJK UNIFIED IDEOGRAPH +0xFC8E 0x9F1B #CJK UNIFIED IDEOGRAPH +0xFC8F 0x9F1C #CJK UNIFIED IDEOGRAPH +0xFC90 0x9F1D #CJK UNIFIED IDEOGRAPH +0xFC91 0x9F1E #CJK UNIFIED IDEOGRAPH +0xFC92 0x9F1F #CJK UNIFIED IDEOGRAPH +0xFC93 0x9F21 #CJK UNIFIED IDEOGRAPH +0xFC94 0x9F23 #CJK UNIFIED IDEOGRAPH +0xFC95 0x9F24 #CJK UNIFIED IDEOGRAPH +0xFC96 0x9F25 #CJK UNIFIED IDEOGRAPH +0xFC97 0x9F26 #CJK UNIFIED IDEOGRAPH +0xFC98 0x9F27 #CJK UNIFIED IDEOGRAPH +0xFC99 0x9F28 #CJK UNIFIED IDEOGRAPH +0xFC9A 0x9F29 #CJK UNIFIED IDEOGRAPH +0xFC9B 0x9F2A #CJK UNIFIED IDEOGRAPH +0xFC9C 0x9F2B #CJK UNIFIED IDEOGRAPH +0xFC9D 0x9F2D #CJK UNIFIED IDEOGRAPH +0xFC9E 0x9F2E #CJK UNIFIED IDEOGRAPH +0xFC9F 0x9F30 #CJK UNIFIED IDEOGRAPH +0xFCA0 0x9F31 #CJK UNIFIED IDEOGRAPH +0xFD40 0x9F32 #CJK UNIFIED IDEOGRAPH +0xFD41 0x9F33 #CJK UNIFIED IDEOGRAPH +0xFD42 0x9F34 #CJK UNIFIED IDEOGRAPH +0xFD43 0x9F35 #CJK UNIFIED IDEOGRAPH +0xFD44 0x9F36 #CJK UNIFIED IDEOGRAPH +0xFD45 0x9F38 #CJK UNIFIED IDEOGRAPH +0xFD46 0x9F3A #CJK UNIFIED IDEOGRAPH +0xFD47 0x9F3C #CJK UNIFIED IDEOGRAPH +0xFD48 0x9F3F #CJK UNIFIED IDEOGRAPH +0xFD49 0x9F40 #CJK UNIFIED IDEOGRAPH +0xFD4A 0x9F41 #CJK UNIFIED IDEOGRAPH +0xFD4B 0x9F42 #CJK UNIFIED IDEOGRAPH +0xFD4C 0x9F43 #CJK UNIFIED IDEOGRAPH +0xFD4D 0x9F45 #CJK UNIFIED IDEOGRAPH +0xFD4E 0x9F46 #CJK UNIFIED IDEOGRAPH +0xFD4F 0x9F47 #CJK UNIFIED IDEOGRAPH +0xFD50 0x9F48 #CJK UNIFIED IDEOGRAPH +0xFD51 0x9F49 #CJK UNIFIED IDEOGRAPH +0xFD52 0x9F4A #CJK UNIFIED IDEOGRAPH +0xFD53 0x9F4B #CJK UNIFIED IDEOGRAPH +0xFD54 0x9F4C #CJK UNIFIED IDEOGRAPH +0xFD55 0x9F4D #CJK UNIFIED IDEOGRAPH +0xFD56 0x9F4E #CJK UNIFIED IDEOGRAPH +0xFD57 0x9F4F #CJK UNIFIED IDEOGRAPH +0xFD58 0x9F52 #CJK UNIFIED IDEOGRAPH +0xFD59 0x9F53 #CJK UNIFIED IDEOGRAPH +0xFD5A 0x9F54 #CJK UNIFIED IDEOGRAPH +0xFD5B 0x9F55 #CJK UNIFIED IDEOGRAPH +0xFD5C 0x9F56 #CJK UNIFIED IDEOGRAPH +0xFD5D 0x9F57 #CJK UNIFIED IDEOGRAPH +0xFD5E 0x9F58 #CJK UNIFIED IDEOGRAPH +0xFD5F 0x9F59 #CJK UNIFIED IDEOGRAPH +0xFD60 0x9F5A #CJK UNIFIED IDEOGRAPH +0xFD61 0x9F5B #CJK UNIFIED IDEOGRAPH +0xFD62 0x9F5C #CJK UNIFIED IDEOGRAPH +0xFD63 0x9F5D #CJK UNIFIED IDEOGRAPH +0xFD64 0x9F5E #CJK UNIFIED IDEOGRAPH +0xFD65 0x9F5F #CJK UNIFIED IDEOGRAPH +0xFD66 0x9F60 #CJK UNIFIED IDEOGRAPH +0xFD67 0x9F61 #CJK UNIFIED IDEOGRAPH +0xFD68 0x9F62 #CJK UNIFIED IDEOGRAPH +0xFD69 0x9F63 #CJK UNIFIED IDEOGRAPH +0xFD6A 0x9F64 #CJK UNIFIED IDEOGRAPH +0xFD6B 0x9F65 #CJK UNIFIED IDEOGRAPH +0xFD6C 0x9F66 #CJK UNIFIED IDEOGRAPH +0xFD6D 0x9F67 #CJK UNIFIED IDEOGRAPH +0xFD6E 0x9F68 #CJK UNIFIED IDEOGRAPH +0xFD6F 0x9F69 #CJK UNIFIED IDEOGRAPH +0xFD70 0x9F6A #CJK UNIFIED IDEOGRAPH +0xFD71 0x9F6B #CJK UNIFIED IDEOGRAPH +0xFD72 0x9F6C #CJK UNIFIED IDEOGRAPH +0xFD73 0x9F6D #CJK UNIFIED IDEOGRAPH +0xFD74 0x9F6E #CJK UNIFIED IDEOGRAPH +0xFD75 0x9F6F #CJK UNIFIED IDEOGRAPH +0xFD76 0x9F70 #CJK UNIFIED IDEOGRAPH +0xFD77 0x9F71 #CJK UNIFIED IDEOGRAPH +0xFD78 0x9F72 #CJK UNIFIED IDEOGRAPH +0xFD79 0x9F73 #CJK UNIFIED IDEOGRAPH +0xFD7A 0x9F74 #CJK UNIFIED IDEOGRAPH +0xFD7B 0x9F75 #CJK UNIFIED IDEOGRAPH +0xFD7C 0x9F76 #CJK UNIFIED IDEOGRAPH +0xFD7D 0x9F77 #CJK UNIFIED IDEOGRAPH +0xFD7E 0x9F78 #CJK UNIFIED IDEOGRAPH +0xFD80 0x9F79 #CJK UNIFIED IDEOGRAPH +0xFD81 0x9F7A #CJK UNIFIED IDEOGRAPH +0xFD82 0x9F7B #CJK UNIFIED IDEOGRAPH +0xFD83 0x9F7C #CJK UNIFIED IDEOGRAPH +0xFD84 0x9F7D #CJK UNIFIED IDEOGRAPH +0xFD85 0x9F7E #CJK UNIFIED IDEOGRAPH +0xFD86 0x9F81 #CJK UNIFIED IDEOGRAPH +0xFD87 0x9F82 #CJK UNIFIED IDEOGRAPH +0xFD88 0x9F8D #CJK UNIFIED IDEOGRAPH +0xFD89 0x9F8E #CJK UNIFIED IDEOGRAPH +0xFD8A 0x9F8F #CJK UNIFIED IDEOGRAPH +0xFD8B 0x9F90 #CJK UNIFIED IDEOGRAPH +0xFD8C 0x9F91 #CJK UNIFIED IDEOGRAPH +0xFD8D 0x9F92 #CJK UNIFIED IDEOGRAPH +0xFD8E 0x9F93 #CJK UNIFIED IDEOGRAPH +0xFD8F 0x9F94 #CJK UNIFIED IDEOGRAPH +0xFD90 0x9F95 #CJK UNIFIED IDEOGRAPH +0xFD91 0x9F96 #CJK UNIFIED IDEOGRAPH +0xFD92 0x9F97 #CJK UNIFIED IDEOGRAPH +0xFD93 0x9F98 #CJK UNIFIED IDEOGRAPH +0xFD94 0x9F9C #CJK UNIFIED IDEOGRAPH +0xFD95 0x9F9D #CJK UNIFIED IDEOGRAPH +0xFD96 0x9F9E #CJK UNIFIED IDEOGRAPH +0xFD97 0x9FA1 #CJK UNIFIED IDEOGRAPH +0xFD98 0x9FA2 #CJK UNIFIED IDEOGRAPH +0xFD99 0x9FA3 #CJK UNIFIED IDEOGRAPH +0xFD9A 0x9FA4 #CJK UNIFIED IDEOGRAPH +0xFD9B 0x9FA5 #CJK UNIFIED IDEOGRAPH +0xFD9C 0xF92C #CJK COMPATIBILITY IDEOGRAPH +0xFD9D 0xF979 #CJK COMPATIBILITY IDEOGRAPH +0xFD9E 0xF995 #CJK COMPATIBILITY IDEOGRAPH +0xFD9F 0xF9E7 #CJK COMPATIBILITY IDEOGRAPH +0xFDA0 0xF9F1 #CJK COMPATIBILITY IDEOGRAPH +0xFE40 0xFA0C #CJK COMPATIBILITY IDEOGRAPH +0xFE41 0xFA0D #CJK COMPATIBILITY IDEOGRAPH +0xFE42 0xFA0E #CJK COMPATIBILITY IDEOGRAPH +0xFE43 0xFA0F #CJK COMPATIBILITY IDEOGRAPH +0xFE44 0xFA11 #CJK COMPATIBILITY IDEOGRAPH +0xFE45 0xFA13 #CJK COMPATIBILITY IDEOGRAPH +0xFE46 0xFA14 #CJK COMPATIBILITY IDEOGRAPH +0xFE47 0xFA18 #CJK COMPATIBILITY IDEOGRAPH +0xFE48 0xFA1F #CJK COMPATIBILITY IDEOGRAPH +0xFE49 0xFA20 #CJK COMPATIBILITY IDEOGRAPH +0xFE4A 0xFA21 #CJK COMPATIBILITY IDEOGRAPH +0xFE4B 0xFA23 #CJK COMPATIBILITY IDEOGRAPH +0xFE4C 0xFA24 #CJK COMPATIBILITY IDEOGRAPH +0xFE4D 0xFA27 #CJK COMPATIBILITY IDEOGRAPH +0xFE4E 0xFA28 #CJK COMPATIBILITY IDEOGRAPH +0xFE4F 0xFA29 #CJK COMPATIBILITY IDEOGRAPH ADDED freshlib/data/_encodings/_sources/CP949.TXT Index: freshlib/data/_encodings/_sources/CP949.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/CP949.TXT @@ -0,0 +1,17322 @@ +# +# Name: cp949 to Unicode table +# Unicode version: 2.0 +# Table version: 2.01 +# Table format: Format A +# Date: 1/7/2000 +# +# Contact: Shawn.Steele@microsoft.com +# +# General notes: none +# +# Format: Three tab-separated columns +# Column #1 is the cp949 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in cp949 order +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 #UNDEFINED +0x81 #DBCS LEAD BYTE +0x82 #DBCS LEAD BYTE +0x83 #DBCS LEAD BYTE +0x84 #DBCS LEAD BYTE +0x85 #DBCS LEAD BYTE +0x86 #DBCS LEAD BYTE +0x87 #DBCS LEAD BYTE +0x88 #DBCS LEAD BYTE +0x89 #DBCS LEAD BYTE +0x8A #DBCS LEAD BYTE +0x8B #DBCS LEAD BYTE +0x8C #DBCS LEAD BYTE +0x8D #DBCS LEAD BYTE +0x8E #DBCS LEAD BYTE +0x8F #DBCS LEAD BYTE +0x90 #DBCS LEAD BYTE +0x91 #DBCS LEAD BYTE +0x92 #DBCS LEAD BYTE +0x93 #DBCS LEAD BYTE +0x94 #DBCS LEAD BYTE +0x95 #DBCS LEAD BYTE +0x96 #DBCS LEAD BYTE +0x97 #DBCS LEAD BYTE +0x98 #DBCS LEAD BYTE +0x99 #DBCS LEAD BYTE +0x9A #DBCS LEAD BYTE +0x9B #DBCS LEAD BYTE +0x9C #DBCS LEAD BYTE +0x9D #DBCS LEAD BYTE +0x9E #DBCS LEAD BYTE +0x9F #DBCS LEAD BYTE +0xA0 #DBCS LEAD BYTE +0xA1 #DBCS LEAD BYTE +0xA2 #DBCS LEAD BYTE +0xA3 #DBCS LEAD BYTE +0xA4 #DBCS LEAD BYTE +0xA5 #DBCS LEAD BYTE +0xA6 #DBCS LEAD BYTE +0xA7 #DBCS LEAD BYTE +0xA8 #DBCS LEAD BYTE +0xA9 #DBCS LEAD BYTE +0xAA #DBCS LEAD BYTE +0xAB #DBCS LEAD BYTE +0xAC #DBCS LEAD BYTE +0xAD #DBCS LEAD BYTE +0xAE #DBCS LEAD BYTE +0xAF #DBCS LEAD BYTE +0xB0 #DBCS LEAD BYTE +0xB1 #DBCS LEAD BYTE +0xB2 #DBCS LEAD BYTE +0xB3 #DBCS LEAD BYTE +0xB4 #DBCS LEAD BYTE +0xB5 #DBCS LEAD BYTE +0xB6 #DBCS LEAD BYTE +0xB7 #DBCS LEAD BYTE +0xB8 #DBCS LEAD BYTE +0xB9 #DBCS LEAD BYTE +0xBA #DBCS LEAD BYTE +0xBB #DBCS LEAD BYTE +0xBC #DBCS LEAD BYTE +0xBD #DBCS LEAD BYTE +0xBE #DBCS LEAD BYTE +0xBF #DBCS LEAD BYTE +0xC0 #DBCS LEAD BYTE +0xC1 #DBCS LEAD BYTE +0xC2 #DBCS LEAD BYTE +0xC3 #DBCS LEAD BYTE +0xC4 #DBCS LEAD BYTE +0xC5 #DBCS LEAD BYTE +0xC6 #DBCS LEAD BYTE +0xC7 #DBCS LEAD BYTE +0xC8 #DBCS LEAD BYTE +0xC9 #DBCS LEAD BYTE +0xCA #DBCS LEAD BYTE +0xCB #DBCS LEAD BYTE +0xCC #DBCS LEAD BYTE +0xCD #DBCS LEAD BYTE +0xCE #DBCS LEAD BYTE +0xCF #DBCS LEAD BYTE +0xD0 #DBCS LEAD BYTE +0xD1 #DBCS LEAD BYTE +0xD2 #DBCS LEAD BYTE +0xD3 #DBCS LEAD BYTE +0xD4 #DBCS LEAD BYTE +0xD5 #DBCS LEAD BYTE +0xD6 #DBCS LEAD BYTE +0xD7 #DBCS LEAD BYTE +0xD8 #DBCS LEAD BYTE +0xD9 #DBCS LEAD BYTE +0xDA #DBCS LEAD BYTE +0xDB #DBCS LEAD BYTE +0xDC #DBCS LEAD BYTE +0xDD #DBCS LEAD BYTE +0xDE #DBCS LEAD BYTE +0xDF #DBCS LEAD BYTE +0xE0 #DBCS LEAD BYTE +0xE1 #DBCS LEAD BYTE +0xE2 #DBCS LEAD BYTE +0xE3 #DBCS LEAD BYTE +0xE4 #DBCS LEAD BYTE +0xE5 #DBCS LEAD BYTE +0xE6 #DBCS LEAD BYTE +0xE7 #DBCS LEAD BYTE +0xE8 #DBCS LEAD BYTE +0xE9 #DBCS LEAD BYTE +0xEA #DBCS LEAD BYTE +0xEB #DBCS LEAD BYTE +0xEC #DBCS LEAD BYTE +0xED #DBCS LEAD BYTE +0xEE #DBCS LEAD BYTE +0xEF #DBCS LEAD BYTE +0xF0 #DBCS LEAD BYTE +0xF1 #DBCS LEAD BYTE +0xF2 #DBCS LEAD BYTE +0xF3 #DBCS LEAD BYTE +0xF4 #DBCS LEAD BYTE +0xF5 #DBCS LEAD BYTE +0xF6 #DBCS LEAD BYTE +0xF7 #DBCS LEAD BYTE +0xF8 #DBCS LEAD BYTE +0xF9 #DBCS LEAD BYTE +0xFA #DBCS LEAD BYTE +0xFB #DBCS LEAD BYTE +0xFC #DBCS LEAD BYTE +0xFD #DBCS LEAD BYTE +0xFE #DBCS LEAD BYTE +0xFF #UNDEFINED +0x8141 0xAC02 #HANGUL SYLLABLE KIYEOK A SSANGKIYEOK +0x8142 0xAC03 #HANGUL SYLLABLE KIYEOK A KIYEOKSIOS +0x8143 0xAC05 #HANGUL SYLLABLE KIYEOK A NIEUNCIEUC +0x8144 0xAC06 #HANGUL SYLLABLE KIYEOK A NIEUNHIEUH +0x8145 0xAC0B #HANGUL SYLLABLE KIYEOK A RIEULPIEUP +0x8146 0xAC0C #HANGUL SYLLABLE KIYEOK A RIEULSIOS +0x8147 0xAC0D #HANGUL SYLLABLE KIYEOK A RIEULTHIEUTH +0x8148 0xAC0E #HANGUL SYLLABLE KIYEOK A RIEULPHIEUPH +0x8149 0xAC0F #HANGUL SYLLABLE KIYEOK A RIEULHIEUH +0x814A 0xAC18 #HANGUL SYLLABLE KIYEOK A KHIEUKH +0x814B 0xAC1E #HANGUL SYLLABLE KIYEOK AE SSANGKIYEOK +0x814C 0xAC1F #HANGUL SYLLABLE KIYEOK AE KIYEOKSIOS +0x814D 0xAC21 #HANGUL SYLLABLE KIYEOK AE NIEUNCIEUC +0x814E 0xAC22 #HANGUL SYLLABLE KIYEOK AE NIEUNHIEUH +0x814F 0xAC23 #HANGUL SYLLABLE KIYEOK AE TIKEUT +0x8150 0xAC25 #HANGUL SYLLABLE KIYEOK AE RIEULKIYEOK +0x8151 0xAC26 #HANGUL SYLLABLE KIYEOK AE RIEULMIEUM +0x8152 0xAC27 #HANGUL SYLLABLE KIYEOK AE RIEULPIEUP +0x8153 0xAC28 #HANGUL SYLLABLE KIYEOK AE RIEULSIOS +0x8154 0xAC29 #HANGUL SYLLABLE KIYEOK AE RIEULTHIEUTH +0x8155 0xAC2A #HANGUL SYLLABLE KIYEOK AE RIEULPHIEUPH +0x8156 0xAC2B #HANGUL SYLLABLE KIYEOK AE RIEULHIEUH +0x8157 0xAC2E #HANGUL SYLLABLE KIYEOK AE PIEUPSIOS +0x8158 0xAC32 #HANGUL SYLLABLE KIYEOK AE CIEUC +0x8159 0xAC33 #HANGUL SYLLABLE KIYEOK AE CHIEUCH +0x815A 0xAC34 #HANGUL SYLLABLE KIYEOK AE KHIEUKH +0x8161 0xAC35 #HANGUL SYLLABLE KIYEOK AE THIEUTH +0x8162 0xAC36 #HANGUL SYLLABLE KIYEOK AE PHIEUPH +0x8163 0xAC37 #HANGUL SYLLABLE KIYEOK AE HIEUH +0x8164 0xAC3A #HANGUL SYLLABLE KIYEOK YA SSANGKIYEOK +0x8165 0xAC3B #HANGUL SYLLABLE KIYEOK YA KIYEOKSIOS +0x8166 0xAC3D #HANGUL SYLLABLE KIYEOK YA NIEUNCIEUC +0x8167 0xAC3E #HANGUL SYLLABLE KIYEOK YA NIEUNHIEUH +0x8168 0xAC3F #HANGUL SYLLABLE KIYEOK YA TIKEUT +0x8169 0xAC41 #HANGUL SYLLABLE KIYEOK YA RIEULKIYEOK +0x816A 0xAC42 #HANGUL SYLLABLE KIYEOK YA RIEULMIEUM +0x816B 0xAC43 #HANGUL SYLLABLE KIYEOK YA RIEULPIEUP +0x816C 0xAC44 #HANGUL SYLLABLE KIYEOK YA RIEULSIOS +0x816D 0xAC45 #HANGUL SYLLABLE KIYEOK YA RIEULTHIEUTH +0x816E 0xAC46 #HANGUL SYLLABLE KIYEOK YA RIEULPHIEUPH +0x816F 0xAC47 #HANGUL SYLLABLE KIYEOK YA RIEULHIEUH +0x8170 0xAC48 #HANGUL SYLLABLE KIYEOK YA MIEUM +0x8171 0xAC49 #HANGUL SYLLABLE KIYEOK YA PIEUP +0x8172 0xAC4A #HANGUL SYLLABLE KIYEOK YA PIEUPSIOS +0x8173 0xAC4C #HANGUL SYLLABLE KIYEOK YA SSANGSIOS +0x8174 0xAC4E #HANGUL SYLLABLE KIYEOK YA CIEUC +0x8175 0xAC4F #HANGUL SYLLABLE KIYEOK YA CHIEUCH +0x8176 0xAC50 #HANGUL SYLLABLE KIYEOK YA KHIEUKH +0x8177 0xAC51 #HANGUL SYLLABLE KIYEOK YA THIEUTH +0x8178 0xAC52 #HANGUL SYLLABLE KIYEOK YA PHIEUPH +0x8179 0xAC53 #HANGUL SYLLABLE KIYEOK YA HIEUH +0x817A 0xAC55 #HANGUL SYLLABLE KIYEOK YAE KIYEOK +0x8181 0xAC56 #HANGUL SYLLABLE KIYEOK YAE SSANGKIYEOK +0x8182 0xAC57 #HANGUL SYLLABLE KIYEOK YAE KIYEOKSIOS +0x8183 0xAC59 #HANGUL SYLLABLE KIYEOK YAE NIEUNCIEUC +0x8184 0xAC5A #HANGUL SYLLABLE KIYEOK YAE NIEUNHIEUH +0x8185 0xAC5B #HANGUL SYLLABLE KIYEOK YAE TIKEUT +0x8186 0xAC5D #HANGUL SYLLABLE KIYEOK YAE RIEULKIYEOK +0x8187 0xAC5E #HANGUL SYLLABLE KIYEOK YAE RIEULMIEUM +0x8188 0xAC5F #HANGUL SYLLABLE KIYEOK YAE RIEULPIEUP +0x8189 0xAC60 #HANGUL SYLLABLE KIYEOK YAE RIEULSIOS +0x818A 0xAC61 #HANGUL SYLLABLE KIYEOK YAE RIEULTHIEUTH +0x818B 0xAC62 #HANGUL SYLLABLE KIYEOK YAE RIEULPHIEUPH +0x818C 0xAC63 #HANGUL SYLLABLE KIYEOK YAE RIEULHIEUH +0x818D 0xAC64 #HANGUL SYLLABLE KIYEOK YAE MIEUM +0x818E 0xAC65 #HANGUL SYLLABLE KIYEOK YAE PIEUP +0x818F 0xAC66 #HANGUL SYLLABLE KIYEOK YAE PIEUPSIOS +0x8190 0xAC67 #HANGUL SYLLABLE KIYEOK YAE SIOS +0x8191 0xAC68 #HANGUL SYLLABLE KIYEOK YAE SSANGSIOS +0x8192 0xAC69 #HANGUL SYLLABLE KIYEOK YAE IEUNG +0x8193 0xAC6A #HANGUL SYLLABLE KIYEOK YAE CIEUC +0x8194 0xAC6B #HANGUL SYLLABLE KIYEOK YAE CHIEUCH +0x8195 0xAC6C #HANGUL SYLLABLE KIYEOK YAE KHIEUKH +0x8196 0xAC6D #HANGUL SYLLABLE KIYEOK YAE THIEUTH +0x8197 0xAC6E #HANGUL SYLLABLE KIYEOK YAE PHIEUPH +0x8198 0xAC6F #HANGUL SYLLABLE KIYEOK YAE HIEUH +0x8199 0xAC72 #HANGUL SYLLABLE KIYEOK EO SSANGKIYEOK +0x819A 0xAC73 #HANGUL SYLLABLE KIYEOK EO KIYEOKSIOS +0x819B 0xAC75 #HANGUL SYLLABLE KIYEOK EO NIEUNCIEUC +0x819C 0xAC76 #HANGUL SYLLABLE KIYEOK EO NIEUNHIEUH +0x819D 0xAC79 #HANGUL SYLLABLE KIYEOK EO RIEULKIYEOK +0x819E 0xAC7B #HANGUL SYLLABLE KIYEOK EO RIEULPIEUP +0x819F 0xAC7C #HANGUL SYLLABLE KIYEOK EO RIEULSIOS +0x81A0 0xAC7D #HANGUL SYLLABLE KIYEOK EO RIEULTHIEUTH +0x81A1 0xAC7E #HANGUL SYLLABLE KIYEOK EO RIEULPHIEUPH +0x81A2 0xAC7F #HANGUL SYLLABLE KIYEOK EO RIEULHIEUH +0x81A3 0xAC82 #HANGUL SYLLABLE KIYEOK EO PIEUPSIOS +0x81A4 0xAC87 #HANGUL SYLLABLE KIYEOK EO CHIEUCH +0x81A5 0xAC88 #HANGUL SYLLABLE KIYEOK EO KHIEUKH +0x81A6 0xAC8D #HANGUL SYLLABLE KIYEOK E KIYEOK +0x81A7 0xAC8E #HANGUL SYLLABLE KIYEOK E SSANGKIYEOK +0x81A8 0xAC8F #HANGUL SYLLABLE KIYEOK E KIYEOKSIOS +0x81A9 0xAC91 #HANGUL SYLLABLE KIYEOK E NIEUNCIEUC +0x81AA 0xAC92 #HANGUL SYLLABLE KIYEOK E NIEUNHIEUH +0x81AB 0xAC93 #HANGUL SYLLABLE KIYEOK E TIKEUT +0x81AC 0xAC95 #HANGUL SYLLABLE KIYEOK E RIEULKIYEOK +0x81AD 0xAC96 #HANGUL SYLLABLE KIYEOK E RIEULMIEUM +0x81AE 0xAC97 #HANGUL SYLLABLE KIYEOK E RIEULPIEUP +0x81AF 0xAC98 #HANGUL SYLLABLE KIYEOK E RIEULSIOS +0x81B0 0xAC99 #HANGUL SYLLABLE KIYEOK E RIEULTHIEUTH +0x81B1 0xAC9A #HANGUL SYLLABLE KIYEOK E RIEULPHIEUPH +0x81B2 0xAC9B #HANGUL SYLLABLE KIYEOK E RIEULHIEUH +0x81B3 0xAC9E #HANGUL SYLLABLE KIYEOK E PIEUPSIOS +0x81B4 0xACA2 #HANGUL SYLLABLE KIYEOK E CIEUC +0x81B5 0xACA3 #HANGUL SYLLABLE KIYEOK E CHIEUCH +0x81B6 0xACA4 #HANGUL SYLLABLE KIYEOK E KHIEUKH +0x81B7 0xACA5 #HANGUL SYLLABLE KIYEOK E THIEUTH +0x81B8 0xACA6 #HANGUL SYLLABLE KIYEOK E PHIEUPH +0x81B9 0xACA7 #HANGUL SYLLABLE KIYEOK E HIEUH +0x81BA 0xACAB #HANGUL SYLLABLE KIYEOK YEO KIYEOKSIOS +0x81BB 0xACAD #HANGUL SYLLABLE KIYEOK YEO NIEUNCIEUC +0x81BC 0xACAE #HANGUL SYLLABLE KIYEOK YEO NIEUNHIEUH +0x81BD 0xACB1 #HANGUL SYLLABLE KIYEOK YEO RIEULKIYEOK +0x81BE 0xACB2 #HANGUL SYLLABLE KIYEOK YEO RIEULMIEUM +0x81BF 0xACB3 #HANGUL SYLLABLE KIYEOK YEO RIEULPIEUP +0x81C0 0xACB4 #HANGUL SYLLABLE KIYEOK YEO RIEULSIOS +0x81C1 0xACB5 #HANGUL SYLLABLE KIYEOK YEO RIEULTHIEUTH +0x81C2 0xACB6 #HANGUL SYLLABLE KIYEOK YEO RIEULPHIEUPH +0x81C3 0xACB7 #HANGUL SYLLABLE KIYEOK YEO RIEULHIEUH +0x81C4 0xACBA #HANGUL SYLLABLE KIYEOK YEO PIEUPSIOS +0x81C5 0xACBE #HANGUL SYLLABLE KIYEOK YEO CIEUC +0x81C6 0xACBF #HANGUL SYLLABLE KIYEOK YEO CHIEUCH +0x81C7 0xACC0 #HANGUL SYLLABLE KIYEOK YEO KHIEUKH +0x81C8 0xACC2 #HANGUL SYLLABLE KIYEOK YEO PHIEUPH +0x81C9 0xACC3 #HANGUL SYLLABLE KIYEOK YEO HIEUH +0x81CA 0xACC5 #HANGUL SYLLABLE KIYEOK YE KIYEOK +0x81CB 0xACC6 #HANGUL SYLLABLE KIYEOK YE SSANGKIYEOK +0x81CC 0xACC7 #HANGUL SYLLABLE KIYEOK YE KIYEOKSIOS +0x81CD 0xACC9 #HANGUL SYLLABLE KIYEOK YE NIEUNCIEUC +0x81CE 0xACCA #HANGUL SYLLABLE KIYEOK YE NIEUNHIEUH +0x81CF 0xACCB #HANGUL SYLLABLE KIYEOK YE TIKEUT +0x81D0 0xACCD #HANGUL SYLLABLE KIYEOK YE RIEULKIYEOK +0x81D1 0xACCE #HANGUL SYLLABLE KIYEOK YE RIEULMIEUM +0x81D2 0xACCF #HANGUL SYLLABLE KIYEOK YE RIEULPIEUP +0x81D3 0xACD0 #HANGUL SYLLABLE KIYEOK YE RIEULSIOS +0x81D4 0xACD1 #HANGUL SYLLABLE KIYEOK YE RIEULTHIEUTH +0x81D5 0xACD2 #HANGUL SYLLABLE KIYEOK YE RIEULPHIEUPH +0x81D6 0xACD3 #HANGUL SYLLABLE KIYEOK YE RIEULHIEUH +0x81D7 0xACD4 #HANGUL SYLLABLE KIYEOK YE MIEUM +0x81D8 0xACD6 #HANGUL SYLLABLE KIYEOK YE PIEUPSIOS +0x81D9 0xACD8 #HANGUL SYLLABLE KIYEOK YE SSANGSIOS +0x81DA 0xACD9 #HANGUL SYLLABLE KIYEOK YE IEUNG +0x81DB 0xACDA #HANGUL SYLLABLE KIYEOK YE CIEUC +0x81DC 0xACDB #HANGUL SYLLABLE KIYEOK YE CHIEUCH +0x81DD 0xACDC #HANGUL SYLLABLE KIYEOK YE KHIEUKH +0x81DE 0xACDD #HANGUL SYLLABLE KIYEOK YE THIEUTH +0x81DF 0xACDE #HANGUL SYLLABLE KIYEOK YE PHIEUPH +0x81E0 0xACDF #HANGUL SYLLABLE KIYEOK YE HIEUH +0x81E1 0xACE2 #HANGUL SYLLABLE KIYEOK O SSANGKIYEOK +0x81E2 0xACE3 #HANGUL SYLLABLE KIYEOK O KIYEOKSIOS +0x81E3 0xACE5 #HANGUL SYLLABLE KIYEOK O NIEUNCIEUC +0x81E4 0xACE6 #HANGUL SYLLABLE KIYEOK O NIEUNHIEUH +0x81E5 0xACE9 #HANGUL SYLLABLE KIYEOK O RIEULKIYEOK +0x81E6 0xACEB #HANGUL SYLLABLE KIYEOK O RIEULPIEUP +0x81E7 0xACED #HANGUL SYLLABLE KIYEOK O RIEULTHIEUTH +0x81E8 0xACEE #HANGUL SYLLABLE KIYEOK O RIEULPHIEUPH +0x81E9 0xACF2 #HANGUL SYLLABLE KIYEOK O PIEUPSIOS +0x81EA 0xACF4 #HANGUL SYLLABLE KIYEOK O SSANGSIOS +0x81EB 0xACF7 #HANGUL SYLLABLE KIYEOK O CHIEUCH +0x81EC 0xACF8 #HANGUL SYLLABLE KIYEOK O KHIEUKH +0x81ED 0xACF9 #HANGUL SYLLABLE KIYEOK O THIEUTH +0x81EE 0xACFA #HANGUL SYLLABLE KIYEOK O PHIEUPH +0x81EF 0xACFB #HANGUL SYLLABLE KIYEOK O HIEUH +0x81F0 0xACFE #HANGUL SYLLABLE KIYEOK WA SSANGKIYEOK +0x81F1 0xACFF #HANGUL SYLLABLE KIYEOK WA KIYEOKSIOS +0x81F2 0xAD01 #HANGUL SYLLABLE KIYEOK WA NIEUNCIEUC +0x81F3 0xAD02 #HANGUL SYLLABLE KIYEOK WA NIEUNHIEUH +0x81F4 0xAD03 #HANGUL SYLLABLE KIYEOK WA TIKEUT +0x81F5 0xAD05 #HANGUL SYLLABLE KIYEOK WA RIEULKIYEOK +0x81F6 0xAD07 #HANGUL SYLLABLE KIYEOK WA RIEULPIEUP +0x81F7 0xAD08 #HANGUL SYLLABLE KIYEOK WA RIEULSIOS +0x81F8 0xAD09 #HANGUL SYLLABLE KIYEOK WA RIEULTHIEUTH +0x81F9 0xAD0A #HANGUL SYLLABLE KIYEOK WA RIEULPHIEUPH +0x81FA 0xAD0B #HANGUL SYLLABLE KIYEOK WA RIEULHIEUH +0x81FB 0xAD0E #HANGUL SYLLABLE KIYEOK WA PIEUPSIOS +0x81FC 0xAD10 #HANGUL SYLLABLE KIYEOK WA SSANGSIOS +0x81FD 0xAD12 #HANGUL SYLLABLE KIYEOK WA CIEUC +0x81FE 0xAD13 #HANGUL SYLLABLE KIYEOK WA CHIEUCH +0x8241 0xAD14 #HANGUL SYLLABLE KIYEOK WA KHIEUKH +0x8242 0xAD15 #HANGUL SYLLABLE KIYEOK WA THIEUTH +0x8243 0xAD16 #HANGUL SYLLABLE KIYEOK WA PHIEUPH +0x8244 0xAD17 #HANGUL SYLLABLE KIYEOK WA HIEUH +0x8245 0xAD19 #HANGUL SYLLABLE KIYEOK WAE KIYEOK +0x8246 0xAD1A #HANGUL SYLLABLE KIYEOK WAE SSANGKIYEOK +0x8247 0xAD1B #HANGUL SYLLABLE KIYEOK WAE KIYEOKSIOS +0x8248 0xAD1D #HANGUL SYLLABLE KIYEOK WAE NIEUNCIEUC +0x8249 0xAD1E #HANGUL SYLLABLE KIYEOK WAE NIEUNHIEUH +0x824A 0xAD1F #HANGUL SYLLABLE KIYEOK WAE TIKEUT +0x824B 0xAD21 #HANGUL SYLLABLE KIYEOK WAE RIEULKIYEOK +0x824C 0xAD22 #HANGUL SYLLABLE KIYEOK WAE RIEULMIEUM +0x824D 0xAD23 #HANGUL SYLLABLE KIYEOK WAE RIEULPIEUP +0x824E 0xAD24 #HANGUL SYLLABLE KIYEOK WAE RIEULSIOS +0x824F 0xAD25 #HANGUL SYLLABLE KIYEOK WAE RIEULTHIEUTH +0x8250 0xAD26 #HANGUL SYLLABLE KIYEOK WAE RIEULPHIEUPH +0x8251 0xAD27 #HANGUL SYLLABLE KIYEOK WAE RIEULHIEUH +0x8252 0xAD28 #HANGUL SYLLABLE KIYEOK WAE MIEUM +0x8253 0xAD2A #HANGUL SYLLABLE KIYEOK WAE PIEUPSIOS +0x8254 0xAD2B #HANGUL SYLLABLE KIYEOK WAE SIOS +0x8255 0xAD2E #HANGUL SYLLABLE KIYEOK WAE CIEUC +0x8256 0xAD2F #HANGUL SYLLABLE KIYEOK WAE CHIEUCH +0x8257 0xAD30 #HANGUL SYLLABLE KIYEOK WAE KHIEUKH +0x8258 0xAD31 #HANGUL SYLLABLE KIYEOK WAE THIEUTH +0x8259 0xAD32 #HANGUL SYLLABLE KIYEOK WAE PHIEUPH +0x825A 0xAD33 #HANGUL SYLLABLE KIYEOK WAE HIEUH +0x8261 0xAD36 #HANGUL SYLLABLE KIYEOK OE SSANGKIYEOK +0x8262 0xAD37 #HANGUL SYLLABLE KIYEOK OE KIYEOKSIOS +0x8263 0xAD39 #HANGUL SYLLABLE KIYEOK OE NIEUNCIEUC +0x8264 0xAD3A #HANGUL SYLLABLE KIYEOK OE NIEUNHIEUH +0x8265 0xAD3B #HANGUL SYLLABLE KIYEOK OE TIKEUT +0x8266 0xAD3D #HANGUL SYLLABLE KIYEOK OE RIEULKIYEOK +0x8267 0xAD3E #HANGUL SYLLABLE KIYEOK OE RIEULMIEUM +0x8268 0xAD3F #HANGUL SYLLABLE KIYEOK OE RIEULPIEUP +0x8269 0xAD40 #HANGUL SYLLABLE KIYEOK OE RIEULSIOS +0x826A 0xAD41 #HANGUL SYLLABLE KIYEOK OE RIEULTHIEUTH +0x826B 0xAD42 #HANGUL SYLLABLE KIYEOK OE RIEULPHIEUPH +0x826C 0xAD43 #HANGUL SYLLABLE KIYEOK OE RIEULHIEUH +0x826D 0xAD46 #HANGUL SYLLABLE KIYEOK OE PIEUPSIOS +0x826E 0xAD48 #HANGUL SYLLABLE KIYEOK OE SSANGSIOS +0x826F 0xAD4A #HANGUL SYLLABLE KIYEOK OE CIEUC +0x8270 0xAD4B #HANGUL SYLLABLE KIYEOK OE CHIEUCH +0x8271 0xAD4C #HANGUL SYLLABLE KIYEOK OE KHIEUKH +0x8272 0xAD4D #HANGUL SYLLABLE KIYEOK OE THIEUTH +0x8273 0xAD4E #HANGUL SYLLABLE KIYEOK OE PHIEUPH +0x8274 0xAD4F #HANGUL SYLLABLE KIYEOK OE HIEUH +0x8275 0xAD51 #HANGUL SYLLABLE KIYEOK YO KIYEOK +0x8276 0xAD52 #HANGUL SYLLABLE KIYEOK YO SSANGKIYEOK +0x8277 0xAD53 #HANGUL SYLLABLE KIYEOK YO KIYEOKSIOS +0x8278 0xAD55 #HANGUL SYLLABLE KIYEOK YO NIEUNCIEUC +0x8279 0xAD56 #HANGUL SYLLABLE KIYEOK YO NIEUNHIEUH +0x827A 0xAD57 #HANGUL SYLLABLE KIYEOK YO TIKEUT +0x8281 0xAD59 #HANGUL SYLLABLE KIYEOK YO RIEULKIYEOK +0x8282 0xAD5A #HANGUL SYLLABLE KIYEOK YO RIEULMIEUM +0x8283 0xAD5B #HANGUL SYLLABLE KIYEOK YO RIEULPIEUP +0x8284 0xAD5C #HANGUL SYLLABLE KIYEOK YO RIEULSIOS +0x8285 0xAD5D #HANGUL SYLLABLE KIYEOK YO RIEULTHIEUTH +0x8286 0xAD5E #HANGUL SYLLABLE KIYEOK YO RIEULPHIEUPH +0x8287 0xAD5F #HANGUL SYLLABLE KIYEOK YO RIEULHIEUH +0x8288 0xAD60 #HANGUL SYLLABLE KIYEOK YO MIEUM +0x8289 0xAD62 #HANGUL SYLLABLE KIYEOK YO PIEUPSIOS +0x828A 0xAD64 #HANGUL SYLLABLE KIYEOK YO SSANGSIOS +0x828B 0xAD65 #HANGUL SYLLABLE KIYEOK YO IEUNG +0x828C 0xAD66 #HANGUL SYLLABLE KIYEOK YO CIEUC +0x828D 0xAD67 #HANGUL SYLLABLE KIYEOK YO CHIEUCH +0x828E 0xAD68 #HANGUL SYLLABLE KIYEOK YO KHIEUKH +0x828F 0xAD69 #HANGUL SYLLABLE KIYEOK YO THIEUTH +0x8290 0xAD6A #HANGUL SYLLABLE KIYEOK YO PHIEUPH +0x8291 0xAD6B #HANGUL SYLLABLE KIYEOK YO HIEUH +0x8292 0xAD6E #HANGUL SYLLABLE KIYEOK U SSANGKIYEOK +0x8293 0xAD6F #HANGUL SYLLABLE KIYEOK U KIYEOKSIOS +0x8294 0xAD71 #HANGUL SYLLABLE KIYEOK U NIEUNCIEUC +0x8295 0xAD72 #HANGUL SYLLABLE KIYEOK U NIEUNHIEUH +0x8296 0xAD77 #HANGUL SYLLABLE KIYEOK U RIEULPIEUP +0x8297 0xAD78 #HANGUL SYLLABLE KIYEOK U RIEULSIOS +0x8298 0xAD79 #HANGUL SYLLABLE KIYEOK U RIEULTHIEUTH +0x8299 0xAD7A #HANGUL SYLLABLE KIYEOK U RIEULPHIEUPH +0x829A 0xAD7E #HANGUL SYLLABLE KIYEOK U PIEUPSIOS +0x829B 0xAD80 #HANGUL SYLLABLE KIYEOK U SSANGSIOS +0x829C 0xAD83 #HANGUL SYLLABLE KIYEOK U CHIEUCH +0x829D 0xAD84 #HANGUL SYLLABLE KIYEOK U KHIEUKH +0x829E 0xAD85 #HANGUL SYLLABLE KIYEOK U THIEUTH +0x829F 0xAD86 #HANGUL SYLLABLE KIYEOK U PHIEUPH +0x82A0 0xAD87 #HANGUL SYLLABLE KIYEOK U HIEUH +0x82A1 0xAD8A #HANGUL SYLLABLE KIYEOK WEO SSANGKIYEOK +0x82A2 0xAD8B #HANGUL SYLLABLE KIYEOK WEO KIYEOKSIOS +0x82A3 0xAD8D #HANGUL SYLLABLE KIYEOK WEO NIEUNCIEUC +0x82A4 0xAD8E #HANGUL SYLLABLE KIYEOK WEO NIEUNHIEUH +0x82A5 0xAD8F #HANGUL SYLLABLE KIYEOK WEO TIKEUT +0x82A6 0xAD91 #HANGUL SYLLABLE KIYEOK WEO RIEULKIYEOK +0x82A7 0xAD92 #HANGUL SYLLABLE KIYEOK WEO RIEULMIEUM +0x82A8 0xAD93 #HANGUL SYLLABLE KIYEOK WEO RIEULPIEUP +0x82A9 0xAD94 #HANGUL SYLLABLE KIYEOK WEO RIEULSIOS +0x82AA 0xAD95 #HANGUL SYLLABLE KIYEOK WEO RIEULTHIEUTH +0x82AB 0xAD96 #HANGUL SYLLABLE KIYEOK WEO RIEULPHIEUPH +0x82AC 0xAD97 #HANGUL SYLLABLE KIYEOK WEO RIEULHIEUH +0x82AD 0xAD98 #HANGUL SYLLABLE KIYEOK WEO MIEUM +0x82AE 0xAD99 #HANGUL SYLLABLE KIYEOK WEO PIEUP +0x82AF 0xAD9A #HANGUL SYLLABLE KIYEOK WEO PIEUPSIOS +0x82B0 0xAD9B #HANGUL SYLLABLE KIYEOK WEO SIOS +0x82B1 0xAD9E #HANGUL SYLLABLE KIYEOK WEO CIEUC +0x82B2 0xAD9F #HANGUL SYLLABLE KIYEOK WEO CHIEUCH +0x82B3 0xADA0 #HANGUL SYLLABLE KIYEOK WEO KHIEUKH +0x82B4 0xADA1 #HANGUL SYLLABLE KIYEOK WEO THIEUTH +0x82B5 0xADA2 #HANGUL SYLLABLE KIYEOK WEO PHIEUPH +0x82B6 0xADA3 #HANGUL SYLLABLE KIYEOK WEO HIEUH +0x82B7 0xADA5 #HANGUL SYLLABLE KIYEOK WE KIYEOK +0x82B8 0xADA6 #HANGUL SYLLABLE KIYEOK WE SSANGKIYEOK +0x82B9 0xADA7 #HANGUL SYLLABLE KIYEOK WE KIYEOKSIOS +0x82BA 0xADA8 #HANGUL SYLLABLE KIYEOK WE NIEUN +0x82BB 0xADA9 #HANGUL SYLLABLE KIYEOK WE NIEUNCIEUC +0x82BC 0xADAA #HANGUL SYLLABLE KIYEOK WE NIEUNHIEUH +0x82BD 0xADAB #HANGUL SYLLABLE KIYEOK WE TIKEUT +0x82BE 0xADAC #HANGUL SYLLABLE KIYEOK WE RIEUL +0x82BF 0xADAD #HANGUL SYLLABLE KIYEOK WE RIEULKIYEOK +0x82C0 0xADAE #HANGUL SYLLABLE KIYEOK WE RIEULMIEUM +0x82C1 0xADAF #HANGUL SYLLABLE KIYEOK WE RIEULPIEUP +0x82C2 0xADB0 #HANGUL SYLLABLE KIYEOK WE RIEULSIOS +0x82C3 0xADB1 #HANGUL SYLLABLE KIYEOK WE RIEULTHIEUTH +0x82C4 0xADB2 #HANGUL SYLLABLE KIYEOK WE RIEULPHIEUPH +0x82C5 0xADB3 #HANGUL SYLLABLE KIYEOK WE RIEULHIEUH +0x82C6 0xADB4 #HANGUL SYLLABLE KIYEOK WE MIEUM +0x82C7 0xADB5 #HANGUL SYLLABLE KIYEOK WE PIEUP +0x82C8 0xADB6 #HANGUL SYLLABLE KIYEOK WE PIEUPSIOS +0x82C9 0xADB8 #HANGUL SYLLABLE KIYEOK WE SSANGSIOS +0x82CA 0xADB9 #HANGUL SYLLABLE KIYEOK WE IEUNG +0x82CB 0xADBA #HANGUL SYLLABLE KIYEOK WE CIEUC +0x82CC 0xADBB #HANGUL SYLLABLE KIYEOK WE CHIEUCH +0x82CD 0xADBC #HANGUL SYLLABLE KIYEOK WE KHIEUKH +0x82CE 0xADBD #HANGUL SYLLABLE KIYEOK WE THIEUTH +0x82CF 0xADBE #HANGUL SYLLABLE KIYEOK WE PHIEUPH +0x82D0 0xADBF #HANGUL SYLLABLE KIYEOK WE HIEUH +0x82D1 0xADC2 #HANGUL SYLLABLE KIYEOK WI SSANGKIYEOK +0x82D2 0xADC3 #HANGUL SYLLABLE KIYEOK WI KIYEOKSIOS +0x82D3 0xADC5 #HANGUL SYLLABLE KIYEOK WI NIEUNCIEUC +0x82D4 0xADC6 #HANGUL SYLLABLE KIYEOK WI NIEUNHIEUH +0x82D5 0xADC7 #HANGUL SYLLABLE KIYEOK WI TIKEUT +0x82D6 0xADC9 #HANGUL SYLLABLE KIYEOK WI RIEULKIYEOK +0x82D7 0xADCA #HANGUL SYLLABLE KIYEOK WI RIEULMIEUM +0x82D8 0xADCB #HANGUL SYLLABLE KIYEOK WI RIEULPIEUP +0x82D9 0xADCC #HANGUL SYLLABLE KIYEOK WI RIEULSIOS +0x82DA 0xADCD #HANGUL SYLLABLE KIYEOK WI RIEULTHIEUTH +0x82DB 0xADCE #HANGUL SYLLABLE KIYEOK WI RIEULPHIEUPH +0x82DC 0xADCF #HANGUL SYLLABLE KIYEOK WI RIEULHIEUH +0x82DD 0xADD2 #HANGUL SYLLABLE KIYEOK WI PIEUPSIOS +0x82DE 0xADD4 #HANGUL SYLLABLE KIYEOK WI SSANGSIOS +0x82DF 0xADD5 #HANGUL SYLLABLE KIYEOK WI IEUNG +0x82E0 0xADD6 #HANGUL SYLLABLE KIYEOK WI CIEUC +0x82E1 0xADD7 #HANGUL SYLLABLE KIYEOK WI CHIEUCH +0x82E2 0xADD8 #HANGUL SYLLABLE KIYEOK WI KHIEUKH +0x82E3 0xADD9 #HANGUL SYLLABLE KIYEOK WI THIEUTH +0x82E4 0xADDA #HANGUL SYLLABLE KIYEOK WI PHIEUPH +0x82E5 0xADDB #HANGUL SYLLABLE KIYEOK WI HIEUH +0x82E6 0xADDD #HANGUL SYLLABLE KIYEOK YU KIYEOK +0x82E7 0xADDE #HANGUL SYLLABLE KIYEOK YU SSANGKIYEOK +0x82E8 0xADDF #HANGUL SYLLABLE KIYEOK YU KIYEOKSIOS +0x82E9 0xADE1 #HANGUL SYLLABLE KIYEOK YU NIEUNCIEUC +0x82EA 0xADE2 #HANGUL SYLLABLE KIYEOK YU NIEUNHIEUH +0x82EB 0xADE3 #HANGUL SYLLABLE KIYEOK YU TIKEUT +0x82EC 0xADE5 #HANGUL SYLLABLE KIYEOK YU RIEULKIYEOK +0x82ED 0xADE6 #HANGUL SYLLABLE KIYEOK YU RIEULMIEUM +0x82EE 0xADE7 #HANGUL SYLLABLE KIYEOK YU RIEULPIEUP +0x82EF 0xADE8 #HANGUL SYLLABLE KIYEOK YU RIEULSIOS +0x82F0 0xADE9 #HANGUL SYLLABLE KIYEOK YU RIEULTHIEUTH +0x82F1 0xADEA #HANGUL SYLLABLE KIYEOK YU RIEULPHIEUPH +0x82F2 0xADEB #HANGUL SYLLABLE KIYEOK YU RIEULHIEUH +0x82F3 0xADEC #HANGUL SYLLABLE KIYEOK YU MIEUM +0x82F4 0xADED #HANGUL SYLLABLE KIYEOK YU PIEUP +0x82F5 0xADEE #HANGUL SYLLABLE KIYEOK YU PIEUPSIOS +0x82F6 0xADEF #HANGUL SYLLABLE KIYEOK YU SIOS +0x82F7 0xADF0 #HANGUL SYLLABLE KIYEOK YU SSANGSIOS +0x82F8 0xADF1 #HANGUL SYLLABLE KIYEOK YU IEUNG +0x82F9 0xADF2 #HANGUL SYLLABLE KIYEOK YU CIEUC +0x82FA 0xADF3 #HANGUL SYLLABLE KIYEOK YU CHIEUCH +0x82FB 0xADF4 #HANGUL SYLLABLE KIYEOK YU KHIEUKH +0x82FC 0xADF5 #HANGUL SYLLABLE KIYEOK YU THIEUTH +0x82FD 0xADF6 #HANGUL SYLLABLE KIYEOK YU PHIEUPH +0x82FE 0xADF7 #HANGUL SYLLABLE KIYEOK YU HIEUH +0x8341 0xADFA #HANGUL SYLLABLE KIYEOK EU SSANGKIYEOK +0x8342 0xADFB #HANGUL SYLLABLE KIYEOK EU KIYEOKSIOS +0x8343 0xADFD #HANGUL SYLLABLE KIYEOK EU NIEUNCIEUC +0x8344 0xADFE #HANGUL SYLLABLE KIYEOK EU NIEUNHIEUH +0x8345 0xAE02 #HANGUL SYLLABLE KIYEOK EU RIEULMIEUM +0x8346 0xAE03 #HANGUL SYLLABLE KIYEOK EU RIEULPIEUP +0x8347 0xAE04 #HANGUL SYLLABLE KIYEOK EU RIEULSIOS +0x8348 0xAE05 #HANGUL SYLLABLE KIYEOK EU RIEULTHIEUTH +0x8349 0xAE06 #HANGUL SYLLABLE KIYEOK EU RIEULPHIEUPH +0x834A 0xAE07 #HANGUL SYLLABLE KIYEOK EU RIEULHIEUH +0x834B 0xAE0A #HANGUL SYLLABLE KIYEOK EU PIEUPSIOS +0x834C 0xAE0C #HANGUL SYLLABLE KIYEOK EU SSANGSIOS +0x834D 0xAE0E #HANGUL SYLLABLE KIYEOK EU CIEUC +0x834E 0xAE0F #HANGUL SYLLABLE KIYEOK EU CHIEUCH +0x834F 0xAE10 #HANGUL SYLLABLE KIYEOK EU KHIEUKH +0x8350 0xAE11 #HANGUL SYLLABLE KIYEOK EU THIEUTH +0x8351 0xAE12 #HANGUL SYLLABLE KIYEOK EU PHIEUPH +0x8352 0xAE13 #HANGUL SYLLABLE KIYEOK EU HIEUH +0x8353 0xAE15 #HANGUL SYLLABLE KIYEOK YI KIYEOK +0x8354 0xAE16 #HANGUL SYLLABLE KIYEOK YI SSANGKIYEOK +0x8355 0xAE17 #HANGUL SYLLABLE KIYEOK YI KIYEOKSIOS +0x8356 0xAE18 #HANGUL SYLLABLE KIYEOK YI NIEUN +0x8357 0xAE19 #HANGUL SYLLABLE KIYEOK YI NIEUNCIEUC +0x8358 0xAE1A #HANGUL SYLLABLE KIYEOK YI NIEUNHIEUH +0x8359 0xAE1B #HANGUL SYLLABLE KIYEOK YI TIKEUT +0x835A 0xAE1C #HANGUL SYLLABLE KIYEOK YI RIEUL +0x8361 0xAE1D #HANGUL SYLLABLE KIYEOK YI RIEULKIYEOK +0x8362 0xAE1E #HANGUL SYLLABLE KIYEOK YI RIEULMIEUM +0x8363 0xAE1F #HANGUL SYLLABLE KIYEOK YI RIEULPIEUP +0x8364 0xAE20 #HANGUL SYLLABLE KIYEOK YI RIEULSIOS +0x8365 0xAE21 #HANGUL SYLLABLE KIYEOK YI RIEULTHIEUTH +0x8366 0xAE22 #HANGUL SYLLABLE KIYEOK YI RIEULPHIEUPH +0x8367 0xAE23 #HANGUL SYLLABLE KIYEOK YI RIEULHIEUH +0x8368 0xAE24 #HANGUL SYLLABLE KIYEOK YI MIEUM +0x8369 0xAE25 #HANGUL SYLLABLE KIYEOK YI PIEUP +0x836A 0xAE26 #HANGUL SYLLABLE KIYEOK YI PIEUPSIOS +0x836B 0xAE27 #HANGUL SYLLABLE KIYEOK YI SIOS +0x836C 0xAE28 #HANGUL SYLLABLE KIYEOK YI SSANGSIOS +0x836D 0xAE29 #HANGUL SYLLABLE KIYEOK YI IEUNG +0x836E 0xAE2A #HANGUL SYLLABLE KIYEOK YI CIEUC +0x836F 0xAE2B #HANGUL SYLLABLE KIYEOK YI CHIEUCH +0x8370 0xAE2C #HANGUL SYLLABLE KIYEOK YI KHIEUKH +0x8371 0xAE2D #HANGUL SYLLABLE KIYEOK YI THIEUTH +0x8372 0xAE2E #HANGUL SYLLABLE KIYEOK YI PHIEUPH +0x8373 0xAE2F #HANGUL SYLLABLE KIYEOK YI HIEUH +0x8374 0xAE32 #HANGUL SYLLABLE KIYEOK I SSANGKIYEOK +0x8375 0xAE33 #HANGUL SYLLABLE KIYEOK I KIYEOKSIOS +0x8376 0xAE35 #HANGUL SYLLABLE KIYEOK I NIEUNCIEUC +0x8377 0xAE36 #HANGUL SYLLABLE KIYEOK I NIEUNHIEUH +0x8378 0xAE39 #HANGUL SYLLABLE KIYEOK I RIEULKIYEOK +0x8379 0xAE3B #HANGUL SYLLABLE KIYEOK I RIEULPIEUP +0x837A 0xAE3C #HANGUL SYLLABLE KIYEOK I RIEULSIOS +0x8381 0xAE3D #HANGUL SYLLABLE KIYEOK I RIEULTHIEUTH +0x8382 0xAE3E #HANGUL SYLLABLE KIYEOK I RIEULPHIEUPH +0x8383 0xAE3F #HANGUL SYLLABLE KIYEOK I RIEULHIEUH +0x8384 0xAE42 #HANGUL SYLLABLE KIYEOK I PIEUPSIOS +0x8385 0xAE44 #HANGUL SYLLABLE KIYEOK I SSANGSIOS +0x8386 0xAE47 #HANGUL SYLLABLE KIYEOK I CHIEUCH +0x8387 0xAE48 #HANGUL SYLLABLE KIYEOK I KHIEUKH +0x8388 0xAE49 #HANGUL SYLLABLE KIYEOK I THIEUTH +0x8389 0xAE4B #HANGUL SYLLABLE KIYEOK I HIEUH +0x838A 0xAE4F #HANGUL SYLLABLE SSANGKIYEOK A KIYEOKSIOS +0x838B 0xAE51 #HANGUL SYLLABLE SSANGKIYEOK A NIEUNCIEUC +0x838C 0xAE52 #HANGUL SYLLABLE SSANGKIYEOK A NIEUNHIEUH +0x838D 0xAE53 #HANGUL SYLLABLE SSANGKIYEOK A TIKEUT +0x838E 0xAE55 #HANGUL SYLLABLE SSANGKIYEOK A RIEULKIYEOK +0x838F 0xAE57 #HANGUL SYLLABLE SSANGKIYEOK A RIEULPIEUP +0x8390 0xAE58 #HANGUL SYLLABLE SSANGKIYEOK A RIEULSIOS +0x8391 0xAE59 #HANGUL SYLLABLE SSANGKIYEOK A RIEULTHIEUTH +0x8392 0xAE5A #HANGUL SYLLABLE SSANGKIYEOK A RIEULPHIEUPH +0x8393 0xAE5B #HANGUL SYLLABLE SSANGKIYEOK A RIEULHIEUH +0x8394 0xAE5E #HANGUL SYLLABLE SSANGKIYEOK A PIEUPSIOS +0x8395 0xAE62 #HANGUL SYLLABLE SSANGKIYEOK A CIEUC +0x8396 0xAE63 #HANGUL SYLLABLE SSANGKIYEOK A CHIEUCH +0x8397 0xAE64 #HANGUL SYLLABLE SSANGKIYEOK A KHIEUKH +0x8398 0xAE66 #HANGUL SYLLABLE SSANGKIYEOK A PHIEUPH +0x8399 0xAE67 #HANGUL SYLLABLE SSANGKIYEOK A HIEUH +0x839A 0xAE6A #HANGUL SYLLABLE SSANGKIYEOK AE SSANGKIYEOK +0x839B 0xAE6B #HANGUL SYLLABLE SSANGKIYEOK AE KIYEOKSIOS +0x839C 0xAE6D #HANGUL SYLLABLE SSANGKIYEOK AE NIEUNCIEUC +0x839D 0xAE6E #HANGUL SYLLABLE SSANGKIYEOK AE NIEUNHIEUH +0x839E 0xAE6F #HANGUL SYLLABLE SSANGKIYEOK AE TIKEUT +0x839F 0xAE71 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULKIYEOK +0x83A0 0xAE72 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULMIEUM +0x83A1 0xAE73 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULPIEUP +0x83A2 0xAE74 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULSIOS +0x83A3 0xAE75 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULTHIEUTH +0x83A4 0xAE76 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULPHIEUPH +0x83A5 0xAE77 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULHIEUH +0x83A6 0xAE7A #HANGUL SYLLABLE SSANGKIYEOK AE PIEUPSIOS +0x83A7 0xAE7E #HANGUL SYLLABLE SSANGKIYEOK AE CIEUC +0x83A8 0xAE7F #HANGUL SYLLABLE SSANGKIYEOK AE CHIEUCH +0x83A9 0xAE80 #HANGUL SYLLABLE SSANGKIYEOK AE KHIEUKH +0x83AA 0xAE81 #HANGUL SYLLABLE SSANGKIYEOK AE THIEUTH +0x83AB 0xAE82 #HANGUL SYLLABLE SSANGKIYEOK AE PHIEUPH +0x83AC 0xAE83 #HANGUL SYLLABLE SSANGKIYEOK AE HIEUH +0x83AD 0xAE86 #HANGUL SYLLABLE SSANGKIYEOK YA SSANGKIYEOK +0x83AE 0xAE87 #HANGUL SYLLABLE SSANGKIYEOK YA KIYEOKSIOS +0x83AF 0xAE88 #HANGUL SYLLABLE SSANGKIYEOK YA NIEUN +0x83B0 0xAE89 #HANGUL SYLLABLE SSANGKIYEOK YA NIEUNCIEUC +0x83B1 0xAE8A #HANGUL SYLLABLE SSANGKIYEOK YA NIEUNHIEUH +0x83B2 0xAE8B #HANGUL SYLLABLE SSANGKIYEOK YA TIKEUT +0x83B3 0xAE8D #HANGUL SYLLABLE SSANGKIYEOK YA RIEULKIYEOK +0x83B4 0xAE8E #HANGUL SYLLABLE SSANGKIYEOK YA RIEULMIEUM +0x83B5 0xAE8F #HANGUL SYLLABLE SSANGKIYEOK YA RIEULPIEUP +0x83B6 0xAE90 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULSIOS +0x83B7 0xAE91 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULTHIEUTH +0x83B8 0xAE92 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULPHIEUPH +0x83B9 0xAE93 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULHIEUH +0x83BA 0xAE94 #HANGUL SYLLABLE SSANGKIYEOK YA MIEUM +0x83BB 0xAE95 #HANGUL SYLLABLE SSANGKIYEOK YA PIEUP +0x83BC 0xAE96 #HANGUL SYLLABLE SSANGKIYEOK YA PIEUPSIOS +0x83BD 0xAE97 #HANGUL SYLLABLE SSANGKIYEOK YA SIOS +0x83BE 0xAE98 #HANGUL SYLLABLE SSANGKIYEOK YA SSANGSIOS +0x83BF 0xAE99 #HANGUL SYLLABLE SSANGKIYEOK YA IEUNG +0x83C0 0xAE9A #HANGUL SYLLABLE SSANGKIYEOK YA CIEUC +0x83C1 0xAE9B #HANGUL SYLLABLE SSANGKIYEOK YA CHIEUCH +0x83C2 0xAE9C #HANGUL SYLLABLE SSANGKIYEOK YA KHIEUKH +0x83C3 0xAE9D #HANGUL SYLLABLE SSANGKIYEOK YA THIEUTH +0x83C4 0xAE9E #HANGUL SYLLABLE SSANGKIYEOK YA PHIEUPH +0x83C5 0xAE9F #HANGUL SYLLABLE SSANGKIYEOK YA HIEUH +0x83C6 0xAEA0 #HANGUL SYLLABLE SSANGKIYEOK YAE +0x83C7 0xAEA1 #HANGUL SYLLABLE SSANGKIYEOK YAE KIYEOK +0x83C8 0xAEA2 #HANGUL SYLLABLE SSANGKIYEOK YAE SSANGKIYEOK +0x83C9 0xAEA3 #HANGUL SYLLABLE SSANGKIYEOK YAE KIYEOKSIOS +0x83CA 0xAEA4 #HANGUL SYLLABLE SSANGKIYEOK YAE NIEUN +0x83CB 0xAEA5 #HANGUL SYLLABLE SSANGKIYEOK YAE NIEUNCIEUC +0x83CC 0xAEA6 #HANGUL SYLLABLE SSANGKIYEOK YAE NIEUNHIEUH +0x83CD 0xAEA7 #HANGUL SYLLABLE SSANGKIYEOK YAE TIKEUT +0x83CE 0xAEA8 #HANGUL SYLLABLE SSANGKIYEOK YAE RIEUL +0x83CF 0xAEA9 #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULKIYEOK +0x83D0 0xAEAA #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULMIEUM +0x83D1 0xAEAB #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULPIEUP +0x83D2 0xAEAC #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULSIOS +0x83D3 0xAEAD #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULTHIEUTH +0x83D4 0xAEAE #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULPHIEUPH +0x83D5 0xAEAF #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULHIEUH +0x83D6 0xAEB0 #HANGUL SYLLABLE SSANGKIYEOK YAE MIEUM +0x83D7 0xAEB1 #HANGUL SYLLABLE SSANGKIYEOK YAE PIEUP +0x83D8 0xAEB2 #HANGUL SYLLABLE SSANGKIYEOK YAE PIEUPSIOS +0x83D9 0xAEB3 #HANGUL SYLLABLE SSANGKIYEOK YAE SIOS +0x83DA 0xAEB4 #HANGUL SYLLABLE SSANGKIYEOK YAE SSANGSIOS +0x83DB 0xAEB5 #HANGUL SYLLABLE SSANGKIYEOK YAE IEUNG +0x83DC 0xAEB6 #HANGUL SYLLABLE SSANGKIYEOK YAE CIEUC +0x83DD 0xAEB7 #HANGUL SYLLABLE SSANGKIYEOK YAE CHIEUCH +0x83DE 0xAEB8 #HANGUL SYLLABLE SSANGKIYEOK YAE KHIEUKH +0x83DF 0xAEB9 #HANGUL SYLLABLE SSANGKIYEOK YAE THIEUTH +0x83E0 0xAEBA #HANGUL SYLLABLE SSANGKIYEOK YAE PHIEUPH +0x83E1 0xAEBB #HANGUL SYLLABLE SSANGKIYEOK YAE HIEUH +0x83E2 0xAEBF #HANGUL SYLLABLE SSANGKIYEOK EO KIYEOKSIOS +0x83E3 0xAEC1 #HANGUL SYLLABLE SSANGKIYEOK EO NIEUNCIEUC +0x83E4 0xAEC2 #HANGUL SYLLABLE SSANGKIYEOK EO NIEUNHIEUH +0x83E5 0xAEC3 #HANGUL SYLLABLE SSANGKIYEOK EO TIKEUT +0x83E6 0xAEC5 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULKIYEOK +0x83E7 0xAEC6 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULMIEUM +0x83E8 0xAEC7 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULPIEUP +0x83E9 0xAEC8 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULSIOS +0x83EA 0xAEC9 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULTHIEUTH +0x83EB 0xAECA #HANGUL SYLLABLE SSANGKIYEOK EO RIEULPHIEUPH +0x83EC 0xAECB #HANGUL SYLLABLE SSANGKIYEOK EO RIEULHIEUH +0x83ED 0xAECE #HANGUL SYLLABLE SSANGKIYEOK EO PIEUPSIOS +0x83EE 0xAED2 #HANGUL SYLLABLE SSANGKIYEOK EO CIEUC +0x83EF 0xAED3 #HANGUL SYLLABLE SSANGKIYEOK EO CHIEUCH +0x83F0 0xAED4 #HANGUL SYLLABLE SSANGKIYEOK EO KHIEUKH +0x83F1 0xAED5 #HANGUL SYLLABLE SSANGKIYEOK EO THIEUTH +0x83F2 0xAED6 #HANGUL SYLLABLE SSANGKIYEOK EO PHIEUPH +0x83F3 0xAED7 #HANGUL SYLLABLE SSANGKIYEOK EO HIEUH +0x83F4 0xAEDA #HANGUL SYLLABLE SSANGKIYEOK E SSANGKIYEOK +0x83F5 0xAEDB #HANGUL SYLLABLE SSANGKIYEOK E KIYEOKSIOS +0x83F6 0xAEDD #HANGUL SYLLABLE SSANGKIYEOK E NIEUNCIEUC +0x83F7 0xAEDE #HANGUL SYLLABLE SSANGKIYEOK E NIEUNHIEUH +0x83F8 0xAEDF #HANGUL SYLLABLE SSANGKIYEOK E TIKEUT +0x83F9 0xAEE0 #HANGUL SYLLABLE SSANGKIYEOK E RIEUL +0x83FA 0xAEE1 #HANGUL SYLLABLE SSANGKIYEOK E RIEULKIYEOK +0x83FB 0xAEE2 #HANGUL SYLLABLE SSANGKIYEOK E RIEULMIEUM +0x83FC 0xAEE3 #HANGUL SYLLABLE SSANGKIYEOK E RIEULPIEUP +0x83FD 0xAEE4 #HANGUL SYLLABLE SSANGKIYEOK E RIEULSIOS +0x83FE 0xAEE5 #HANGUL SYLLABLE SSANGKIYEOK E RIEULTHIEUTH +0x8441 0xAEE6 #HANGUL SYLLABLE SSANGKIYEOK E RIEULPHIEUPH +0x8442 0xAEE7 #HANGUL SYLLABLE SSANGKIYEOK E RIEULHIEUH +0x8443 0xAEE9 #HANGUL SYLLABLE SSANGKIYEOK E PIEUP +0x8444 0xAEEA #HANGUL SYLLABLE SSANGKIYEOK E PIEUPSIOS +0x8445 0xAEEC #HANGUL SYLLABLE SSANGKIYEOK E SSANGSIOS +0x8446 0xAEEE #HANGUL SYLLABLE SSANGKIYEOK E CIEUC +0x8447 0xAEEF #HANGUL SYLLABLE SSANGKIYEOK E CHIEUCH +0x8448 0xAEF0 #HANGUL SYLLABLE SSANGKIYEOK E KHIEUKH +0x8449 0xAEF1 #HANGUL SYLLABLE SSANGKIYEOK E THIEUTH +0x844A 0xAEF2 #HANGUL SYLLABLE SSANGKIYEOK E PHIEUPH +0x844B 0xAEF3 #HANGUL SYLLABLE SSANGKIYEOK E HIEUH +0x844C 0xAEF5 #HANGUL SYLLABLE SSANGKIYEOK YEO KIYEOK +0x844D 0xAEF6 #HANGUL SYLLABLE SSANGKIYEOK YEO SSANGKIYEOK +0x844E 0xAEF7 #HANGUL SYLLABLE SSANGKIYEOK YEO KIYEOKSIOS +0x844F 0xAEF9 #HANGUL SYLLABLE SSANGKIYEOK YEO NIEUNCIEUC +0x8450 0xAEFA #HANGUL SYLLABLE SSANGKIYEOK YEO NIEUNHIEUH +0x8451 0xAEFB #HANGUL SYLLABLE SSANGKIYEOK YEO TIKEUT +0x8452 0xAEFD #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULKIYEOK +0x8453 0xAEFE #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULMIEUM +0x8454 0xAEFF #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULPIEUP +0x8455 0xAF00 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULSIOS +0x8456 0xAF01 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULTHIEUTH +0x8457 0xAF02 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULPHIEUPH +0x8458 0xAF03 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULHIEUH +0x8459 0xAF04 #HANGUL SYLLABLE SSANGKIYEOK YEO MIEUM +0x845A 0xAF05 #HANGUL SYLLABLE SSANGKIYEOK YEO PIEUP +0x8461 0xAF06 #HANGUL SYLLABLE SSANGKIYEOK YEO PIEUPSIOS +0x8462 0xAF09 #HANGUL SYLLABLE SSANGKIYEOK YEO IEUNG +0x8463 0xAF0A #HANGUL SYLLABLE SSANGKIYEOK YEO CIEUC +0x8464 0xAF0B #HANGUL SYLLABLE SSANGKIYEOK YEO CHIEUCH +0x8465 0xAF0C #HANGUL SYLLABLE SSANGKIYEOK YEO KHIEUKH +0x8466 0xAF0E #HANGUL SYLLABLE SSANGKIYEOK YEO PHIEUPH +0x8467 0xAF0F #HANGUL SYLLABLE SSANGKIYEOK YEO HIEUH +0x8468 0xAF11 #HANGUL SYLLABLE SSANGKIYEOK YE KIYEOK +0x8469 0xAF12 #HANGUL SYLLABLE SSANGKIYEOK YE SSANGKIYEOK +0x846A 0xAF13 #HANGUL SYLLABLE SSANGKIYEOK YE KIYEOKSIOS +0x846B 0xAF14 #HANGUL SYLLABLE SSANGKIYEOK YE NIEUN +0x846C 0xAF15 #HANGUL SYLLABLE SSANGKIYEOK YE NIEUNCIEUC +0x846D 0xAF16 #HANGUL SYLLABLE SSANGKIYEOK YE NIEUNHIEUH +0x846E 0xAF17 #HANGUL SYLLABLE SSANGKIYEOK YE TIKEUT +0x846F 0xAF18 #HANGUL SYLLABLE SSANGKIYEOK YE RIEUL +0x8470 0xAF19 #HANGUL SYLLABLE SSANGKIYEOK YE RIEULKIYEOK +0x8471 0xAF1A #HANGUL SYLLABLE SSANGKIYEOK YE RIEULMIEUM +0x8472 0xAF1B #HANGUL SYLLABLE SSANGKIYEOK YE RIEULPIEUP +0x8473 0xAF1C #HANGUL SYLLABLE SSANGKIYEOK YE RIEULSIOS +0x8474 0xAF1D #HANGUL SYLLABLE SSANGKIYEOK YE RIEULTHIEUTH +0x8475 0xAF1E #HANGUL SYLLABLE SSANGKIYEOK YE RIEULPHIEUPH +0x8476 0xAF1F #HANGUL SYLLABLE SSANGKIYEOK YE RIEULHIEUH +0x8477 0xAF20 #HANGUL SYLLABLE SSANGKIYEOK YE MIEUM +0x8478 0xAF21 #HANGUL SYLLABLE SSANGKIYEOK YE PIEUP +0x8479 0xAF22 #HANGUL SYLLABLE SSANGKIYEOK YE PIEUPSIOS +0x847A 0xAF23 #HANGUL SYLLABLE SSANGKIYEOK YE SIOS +0x8481 0xAF24 #HANGUL SYLLABLE SSANGKIYEOK YE SSANGSIOS +0x8482 0xAF25 #HANGUL SYLLABLE SSANGKIYEOK YE IEUNG +0x8483 0xAF26 #HANGUL SYLLABLE SSANGKIYEOK YE CIEUC +0x8484 0xAF27 #HANGUL SYLLABLE SSANGKIYEOK YE CHIEUCH +0x8485 0xAF28 #HANGUL SYLLABLE SSANGKIYEOK YE KHIEUKH +0x8486 0xAF29 #HANGUL SYLLABLE SSANGKIYEOK YE THIEUTH +0x8487 0xAF2A #HANGUL SYLLABLE SSANGKIYEOK YE PHIEUPH +0x8488 0xAF2B #HANGUL SYLLABLE SSANGKIYEOK YE HIEUH +0x8489 0xAF2E #HANGUL SYLLABLE SSANGKIYEOK O SSANGKIYEOK +0x848A 0xAF2F #HANGUL SYLLABLE SSANGKIYEOK O KIYEOKSIOS +0x848B 0xAF31 #HANGUL SYLLABLE SSANGKIYEOK O NIEUNCIEUC +0x848C 0xAF33 #HANGUL SYLLABLE SSANGKIYEOK O TIKEUT +0x848D 0xAF35 #HANGUL SYLLABLE SSANGKIYEOK O RIEULKIYEOK +0x848E 0xAF36 #HANGUL SYLLABLE SSANGKIYEOK O RIEULMIEUM +0x848F 0xAF37 #HANGUL SYLLABLE SSANGKIYEOK O RIEULPIEUP +0x8490 0xAF38 #HANGUL SYLLABLE SSANGKIYEOK O RIEULSIOS +0x8491 0xAF39 #HANGUL SYLLABLE SSANGKIYEOK O RIEULTHIEUTH +0x8492 0xAF3A #HANGUL SYLLABLE SSANGKIYEOK O RIEULPHIEUPH +0x8493 0xAF3B #HANGUL SYLLABLE SSANGKIYEOK O RIEULHIEUH +0x8494 0xAF3E #HANGUL SYLLABLE SSANGKIYEOK O PIEUPSIOS +0x8495 0xAF40 #HANGUL SYLLABLE SSANGKIYEOK O SSANGSIOS +0x8496 0xAF44 #HANGUL SYLLABLE SSANGKIYEOK O KHIEUKH +0x8497 0xAF45 #HANGUL SYLLABLE SSANGKIYEOK O THIEUTH +0x8498 0xAF46 #HANGUL SYLLABLE SSANGKIYEOK O PHIEUPH +0x8499 0xAF47 #HANGUL SYLLABLE SSANGKIYEOK O HIEUH +0x849A 0xAF4A #HANGUL SYLLABLE SSANGKIYEOK WA SSANGKIYEOK +0x849B 0xAF4B #HANGUL SYLLABLE SSANGKIYEOK WA KIYEOKSIOS +0x849C 0xAF4C #HANGUL SYLLABLE SSANGKIYEOK WA NIEUN +0x849D 0xAF4D #HANGUL SYLLABLE SSANGKIYEOK WA NIEUNCIEUC +0x849E 0xAF4E #HANGUL SYLLABLE SSANGKIYEOK WA NIEUNHIEUH +0x849F 0xAF4F #HANGUL SYLLABLE SSANGKIYEOK WA TIKEUT +0x84A0 0xAF51 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULKIYEOK +0x84A1 0xAF52 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULMIEUM +0x84A2 0xAF53 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULPIEUP +0x84A3 0xAF54 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULSIOS +0x84A4 0xAF55 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULTHIEUTH +0x84A5 0xAF56 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULPHIEUPH +0x84A6 0xAF57 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULHIEUH +0x84A7 0xAF58 #HANGUL SYLLABLE SSANGKIYEOK WA MIEUM +0x84A8 0xAF59 #HANGUL SYLLABLE SSANGKIYEOK WA PIEUP +0x84A9 0xAF5A #HANGUL SYLLABLE SSANGKIYEOK WA PIEUPSIOS +0x84AA 0xAF5B #HANGUL SYLLABLE SSANGKIYEOK WA SIOS +0x84AB 0xAF5E #HANGUL SYLLABLE SSANGKIYEOK WA CIEUC +0x84AC 0xAF5F #HANGUL SYLLABLE SSANGKIYEOK WA CHIEUCH +0x84AD 0xAF60 #HANGUL SYLLABLE SSANGKIYEOK WA KHIEUKH +0x84AE 0xAF61 #HANGUL SYLLABLE SSANGKIYEOK WA THIEUTH +0x84AF 0xAF62 #HANGUL SYLLABLE SSANGKIYEOK WA PHIEUPH +0x84B0 0xAF63 #HANGUL SYLLABLE SSANGKIYEOK WA HIEUH +0x84B1 0xAF66 #HANGUL SYLLABLE SSANGKIYEOK WAE SSANGKIYEOK +0x84B2 0xAF67 #HANGUL SYLLABLE SSANGKIYEOK WAE KIYEOKSIOS +0x84B3 0xAF68 #HANGUL SYLLABLE SSANGKIYEOK WAE NIEUN +0x84B4 0xAF69 #HANGUL SYLLABLE SSANGKIYEOK WAE NIEUNCIEUC +0x84B5 0xAF6A #HANGUL SYLLABLE SSANGKIYEOK WAE NIEUNHIEUH +0x84B6 0xAF6B #HANGUL SYLLABLE SSANGKIYEOK WAE TIKEUT +0x84B7 0xAF6C #HANGUL SYLLABLE SSANGKIYEOK WAE RIEUL +0x84B8 0xAF6D #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULKIYEOK +0x84B9 0xAF6E #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULMIEUM +0x84BA 0xAF6F #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULPIEUP +0x84BB 0xAF70 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULSIOS +0x84BC 0xAF71 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULTHIEUTH +0x84BD 0xAF72 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULPHIEUPH +0x84BE 0xAF73 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULHIEUH +0x84BF 0xAF74 #HANGUL SYLLABLE SSANGKIYEOK WAE MIEUM +0x84C0 0xAF75 #HANGUL SYLLABLE SSANGKIYEOK WAE PIEUP +0x84C1 0xAF76 #HANGUL SYLLABLE SSANGKIYEOK WAE PIEUPSIOS +0x84C2 0xAF77 #HANGUL SYLLABLE SSANGKIYEOK WAE SIOS +0x84C3 0xAF78 #HANGUL SYLLABLE SSANGKIYEOK WAE SSANGSIOS +0x84C4 0xAF7A #HANGUL SYLLABLE SSANGKIYEOK WAE CIEUC +0x84C5 0xAF7B #HANGUL SYLLABLE SSANGKIYEOK WAE CHIEUCH +0x84C6 0xAF7C #HANGUL SYLLABLE SSANGKIYEOK WAE KHIEUKH +0x84C7 0xAF7D #HANGUL SYLLABLE SSANGKIYEOK WAE THIEUTH +0x84C8 0xAF7E #HANGUL SYLLABLE SSANGKIYEOK WAE PHIEUPH +0x84C9 0xAF7F #HANGUL SYLLABLE SSANGKIYEOK WAE HIEUH +0x84CA 0xAF81 #HANGUL SYLLABLE SSANGKIYEOK OE KIYEOK +0x84CB 0xAF82 #HANGUL SYLLABLE SSANGKIYEOK OE SSANGKIYEOK +0x84CC 0xAF83 #HANGUL SYLLABLE SSANGKIYEOK OE KIYEOKSIOS +0x84CD 0xAF85 #HANGUL SYLLABLE SSANGKIYEOK OE NIEUNCIEUC +0x84CE 0xAF86 #HANGUL SYLLABLE SSANGKIYEOK OE NIEUNHIEUH +0x84CF 0xAF87 #HANGUL SYLLABLE SSANGKIYEOK OE TIKEUT +0x84D0 0xAF89 #HANGUL SYLLABLE SSANGKIYEOK OE RIEULKIYEOK +0x84D1 0xAF8A #HANGUL SYLLABLE SSANGKIYEOK OE RIEULMIEUM +0x84D2 0xAF8B #HANGUL SYLLABLE SSANGKIYEOK OE RIEULPIEUP +0x84D3 0xAF8C #HANGUL SYLLABLE SSANGKIYEOK OE RIEULSIOS +0x84D4 0xAF8D #HANGUL SYLLABLE SSANGKIYEOK OE RIEULTHIEUTH +0x84D5 0xAF8E #HANGUL SYLLABLE SSANGKIYEOK OE RIEULPHIEUPH +0x84D6 0xAF8F #HANGUL SYLLABLE SSANGKIYEOK OE RIEULHIEUH +0x84D7 0xAF92 #HANGUL SYLLABLE SSANGKIYEOK OE PIEUPSIOS +0x84D8 0xAF93 #HANGUL SYLLABLE SSANGKIYEOK OE SIOS +0x84D9 0xAF94 #HANGUL SYLLABLE SSANGKIYEOK OE SSANGSIOS +0x84DA 0xAF96 #HANGUL SYLLABLE SSANGKIYEOK OE CIEUC +0x84DB 0xAF97 #HANGUL SYLLABLE SSANGKIYEOK OE CHIEUCH +0x84DC 0xAF98 #HANGUL SYLLABLE SSANGKIYEOK OE KHIEUKH +0x84DD 0xAF99 #HANGUL SYLLABLE SSANGKIYEOK OE THIEUTH +0x84DE 0xAF9A #HANGUL SYLLABLE SSANGKIYEOK OE PHIEUPH +0x84DF 0xAF9B #HANGUL SYLLABLE SSANGKIYEOK OE HIEUH +0x84E0 0xAF9D #HANGUL SYLLABLE SSANGKIYEOK YO KIYEOK +0x84E1 0xAF9E #HANGUL SYLLABLE SSANGKIYEOK YO SSANGKIYEOK +0x84E2 0xAF9F #HANGUL SYLLABLE SSANGKIYEOK YO KIYEOKSIOS +0x84E3 0xAFA0 #HANGUL SYLLABLE SSANGKIYEOK YO NIEUN +0x84E4 0xAFA1 #HANGUL SYLLABLE SSANGKIYEOK YO NIEUNCIEUC +0x84E5 0xAFA2 #HANGUL SYLLABLE SSANGKIYEOK YO NIEUNHIEUH +0x84E6 0xAFA3 #HANGUL SYLLABLE SSANGKIYEOK YO TIKEUT +0x84E7 0xAFA4 #HANGUL SYLLABLE SSANGKIYEOK YO RIEUL +0x84E8 0xAFA5 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULKIYEOK +0x84E9 0xAFA6 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULMIEUM +0x84EA 0xAFA7 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULPIEUP +0x84EB 0xAFA8 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULSIOS +0x84EC 0xAFA9 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULTHIEUTH +0x84ED 0xAFAA #HANGUL SYLLABLE SSANGKIYEOK YO RIEULPHIEUPH +0x84EE 0xAFAB #HANGUL SYLLABLE SSANGKIYEOK YO RIEULHIEUH +0x84EF 0xAFAC #HANGUL SYLLABLE SSANGKIYEOK YO MIEUM +0x84F0 0xAFAD #HANGUL SYLLABLE SSANGKIYEOK YO PIEUP +0x84F1 0xAFAE #HANGUL SYLLABLE SSANGKIYEOK YO PIEUPSIOS +0x84F2 0xAFAF #HANGUL SYLLABLE SSANGKIYEOK YO SIOS +0x84F3 0xAFB0 #HANGUL SYLLABLE SSANGKIYEOK YO SSANGSIOS +0x84F4 0xAFB1 #HANGUL SYLLABLE SSANGKIYEOK YO IEUNG +0x84F5 0xAFB2 #HANGUL SYLLABLE SSANGKIYEOK YO CIEUC +0x84F6 0xAFB3 #HANGUL SYLLABLE SSANGKIYEOK YO CHIEUCH +0x84F7 0xAFB4 #HANGUL SYLLABLE SSANGKIYEOK YO KHIEUKH +0x84F8 0xAFB5 #HANGUL SYLLABLE SSANGKIYEOK YO THIEUTH +0x84F9 0xAFB6 #HANGUL SYLLABLE SSANGKIYEOK YO PHIEUPH +0x84FA 0xAFB7 #HANGUL SYLLABLE SSANGKIYEOK YO HIEUH +0x84FB 0xAFBA #HANGUL SYLLABLE SSANGKIYEOK U SSANGKIYEOK +0x84FC 0xAFBB #HANGUL SYLLABLE SSANGKIYEOK U KIYEOKSIOS +0x84FD 0xAFBD #HANGUL SYLLABLE SSANGKIYEOK U NIEUNCIEUC +0x84FE 0xAFBE #HANGUL SYLLABLE SSANGKIYEOK U NIEUNHIEUH +0x8541 0xAFBF #HANGUL SYLLABLE SSANGKIYEOK U TIKEUT +0x8542 0xAFC1 #HANGUL SYLLABLE SSANGKIYEOK U RIEULKIYEOK +0x8543 0xAFC2 #HANGUL SYLLABLE SSANGKIYEOK U RIEULMIEUM +0x8544 0xAFC3 #HANGUL SYLLABLE SSANGKIYEOK U RIEULPIEUP +0x8545 0xAFC4 #HANGUL SYLLABLE SSANGKIYEOK U RIEULSIOS +0x8546 0xAFC5 #HANGUL SYLLABLE SSANGKIYEOK U RIEULTHIEUTH +0x8547 0xAFC6 #HANGUL SYLLABLE SSANGKIYEOK U RIEULPHIEUPH +0x8548 0xAFCA #HANGUL SYLLABLE SSANGKIYEOK U PIEUPSIOS +0x8549 0xAFCC #HANGUL SYLLABLE SSANGKIYEOK U SSANGSIOS +0x854A 0xAFCF #HANGUL SYLLABLE SSANGKIYEOK U CHIEUCH +0x854B 0xAFD0 #HANGUL SYLLABLE SSANGKIYEOK U KHIEUKH +0x854C 0xAFD1 #HANGUL SYLLABLE SSANGKIYEOK U THIEUTH +0x854D 0xAFD2 #HANGUL SYLLABLE SSANGKIYEOK U PHIEUPH +0x854E 0xAFD3 #HANGUL SYLLABLE SSANGKIYEOK U HIEUH +0x854F 0xAFD5 #HANGUL SYLLABLE SSANGKIYEOK WEO KIYEOK +0x8550 0xAFD6 #HANGUL SYLLABLE SSANGKIYEOK WEO SSANGKIYEOK +0x8551 0xAFD7 #HANGUL SYLLABLE SSANGKIYEOK WEO KIYEOKSIOS +0x8552 0xAFD8 #HANGUL SYLLABLE SSANGKIYEOK WEO NIEUN +0x8553 0xAFD9 #HANGUL SYLLABLE SSANGKIYEOK WEO NIEUNCIEUC +0x8554 0xAFDA #HANGUL SYLLABLE SSANGKIYEOK WEO NIEUNHIEUH +0x8555 0xAFDB #HANGUL SYLLABLE SSANGKIYEOK WEO TIKEUT +0x8556 0xAFDD #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULKIYEOK +0x8557 0xAFDE #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULMIEUM +0x8558 0xAFDF #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULPIEUP +0x8559 0xAFE0 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULSIOS +0x855A 0xAFE1 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULTHIEUTH +0x8561 0xAFE2 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULPHIEUPH +0x8562 0xAFE3 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULHIEUH +0x8563 0xAFE4 #HANGUL SYLLABLE SSANGKIYEOK WEO MIEUM +0x8564 0xAFE5 #HANGUL SYLLABLE SSANGKIYEOK WEO PIEUP +0x8565 0xAFE6 #HANGUL SYLLABLE SSANGKIYEOK WEO PIEUPSIOS +0x8566 0xAFE7 #HANGUL SYLLABLE SSANGKIYEOK WEO SIOS +0x8567 0xAFEA #HANGUL SYLLABLE SSANGKIYEOK WEO CIEUC +0x8568 0xAFEB #HANGUL SYLLABLE SSANGKIYEOK WEO CHIEUCH +0x8569 0xAFEC #HANGUL SYLLABLE SSANGKIYEOK WEO KHIEUKH +0x856A 0xAFED #HANGUL SYLLABLE SSANGKIYEOK WEO THIEUTH +0x856B 0xAFEE #HANGUL SYLLABLE SSANGKIYEOK WEO PHIEUPH +0x856C 0xAFEF #HANGUL SYLLABLE SSANGKIYEOK WEO HIEUH +0x856D 0xAFF2 #HANGUL SYLLABLE SSANGKIYEOK WE SSANGKIYEOK +0x856E 0xAFF3 #HANGUL SYLLABLE SSANGKIYEOK WE KIYEOKSIOS +0x856F 0xAFF5 #HANGUL SYLLABLE SSANGKIYEOK WE NIEUNCIEUC +0x8570 0xAFF6 #HANGUL SYLLABLE SSANGKIYEOK WE NIEUNHIEUH +0x8571 0xAFF7 #HANGUL SYLLABLE SSANGKIYEOK WE TIKEUT +0x8572 0xAFF9 #HANGUL SYLLABLE SSANGKIYEOK WE RIEULKIYEOK +0x8573 0xAFFA #HANGUL SYLLABLE SSANGKIYEOK WE RIEULMIEUM +0x8574 0xAFFB #HANGUL SYLLABLE SSANGKIYEOK WE RIEULPIEUP +0x8575 0xAFFC #HANGUL SYLLABLE SSANGKIYEOK WE RIEULSIOS +0x8576 0xAFFD #HANGUL SYLLABLE SSANGKIYEOK WE RIEULTHIEUTH +0x8577 0xAFFE #HANGUL SYLLABLE SSANGKIYEOK WE RIEULPHIEUPH +0x8578 0xAFFF #HANGUL SYLLABLE SSANGKIYEOK WE RIEULHIEUH +0x8579 0xB002 #HANGUL SYLLABLE SSANGKIYEOK WE PIEUPSIOS +0x857A 0xB003 #HANGUL SYLLABLE SSANGKIYEOK WE SIOS +0x8581 0xB005 #HANGUL SYLLABLE SSANGKIYEOK WE IEUNG +0x8582 0xB006 #HANGUL SYLLABLE SSANGKIYEOK WE CIEUC +0x8583 0xB007 #HANGUL SYLLABLE SSANGKIYEOK WE CHIEUCH +0x8584 0xB008 #HANGUL SYLLABLE SSANGKIYEOK WE KHIEUKH +0x8585 0xB009 #HANGUL SYLLABLE SSANGKIYEOK WE THIEUTH +0x8586 0xB00A #HANGUL SYLLABLE SSANGKIYEOK WE PHIEUPH +0x8587 0xB00B #HANGUL SYLLABLE SSANGKIYEOK WE HIEUH +0x8588 0xB00D #HANGUL SYLLABLE SSANGKIYEOK WI KIYEOK +0x8589 0xB00E #HANGUL SYLLABLE SSANGKIYEOK WI SSANGKIYEOK +0x858A 0xB00F #HANGUL SYLLABLE SSANGKIYEOK WI KIYEOKSIOS +0x858B 0xB011 #HANGUL SYLLABLE SSANGKIYEOK WI NIEUNCIEUC +0x858C 0xB012 #HANGUL SYLLABLE SSANGKIYEOK WI NIEUNHIEUH +0x858D 0xB013 #HANGUL SYLLABLE SSANGKIYEOK WI TIKEUT +0x858E 0xB015 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULKIYEOK +0x858F 0xB016 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULMIEUM +0x8590 0xB017 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULPIEUP +0x8591 0xB018 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULSIOS +0x8592 0xB019 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULTHIEUTH +0x8593 0xB01A #HANGUL SYLLABLE SSANGKIYEOK WI RIEULPHIEUPH +0x8594 0xB01B #HANGUL SYLLABLE SSANGKIYEOK WI RIEULHIEUH +0x8595 0xB01E #HANGUL SYLLABLE SSANGKIYEOK WI PIEUPSIOS +0x8596 0xB01F #HANGUL SYLLABLE SSANGKIYEOK WI SIOS +0x8597 0xB020 #HANGUL SYLLABLE SSANGKIYEOK WI SSANGSIOS +0x8598 0xB021 #HANGUL SYLLABLE SSANGKIYEOK WI IEUNG +0x8599 0xB022 #HANGUL SYLLABLE SSANGKIYEOK WI CIEUC +0x859A 0xB023 #HANGUL SYLLABLE SSANGKIYEOK WI CHIEUCH +0x859B 0xB024 #HANGUL SYLLABLE SSANGKIYEOK WI KHIEUKH +0x859C 0xB025 #HANGUL SYLLABLE SSANGKIYEOK WI THIEUTH +0x859D 0xB026 #HANGUL SYLLABLE SSANGKIYEOK WI PHIEUPH +0x859E 0xB027 #HANGUL SYLLABLE SSANGKIYEOK WI HIEUH +0x859F 0xB029 #HANGUL SYLLABLE SSANGKIYEOK YU KIYEOK +0x85A0 0xB02A #HANGUL SYLLABLE SSANGKIYEOK YU SSANGKIYEOK +0x85A1 0xB02B #HANGUL SYLLABLE SSANGKIYEOK YU KIYEOKSIOS +0x85A2 0xB02C #HANGUL SYLLABLE SSANGKIYEOK YU NIEUN +0x85A3 0xB02D #HANGUL SYLLABLE SSANGKIYEOK YU NIEUNCIEUC +0x85A4 0xB02E #HANGUL SYLLABLE SSANGKIYEOK YU NIEUNHIEUH +0x85A5 0xB02F #HANGUL SYLLABLE SSANGKIYEOK YU TIKEUT +0x85A6 0xB030 #HANGUL SYLLABLE SSANGKIYEOK YU RIEUL +0x85A7 0xB031 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULKIYEOK +0x85A8 0xB032 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULMIEUM +0x85A9 0xB033 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULPIEUP +0x85AA 0xB034 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULSIOS +0x85AB 0xB035 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULTHIEUTH +0x85AC 0xB036 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULPHIEUPH +0x85AD 0xB037 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULHIEUH +0x85AE 0xB038 #HANGUL SYLLABLE SSANGKIYEOK YU MIEUM +0x85AF 0xB039 #HANGUL SYLLABLE SSANGKIYEOK YU PIEUP +0x85B0 0xB03A #HANGUL SYLLABLE SSANGKIYEOK YU PIEUPSIOS +0x85B1 0xB03B #HANGUL SYLLABLE SSANGKIYEOK YU SIOS +0x85B2 0xB03C #HANGUL SYLLABLE SSANGKIYEOK YU SSANGSIOS +0x85B3 0xB03D #HANGUL SYLLABLE SSANGKIYEOK YU IEUNG +0x85B4 0xB03E #HANGUL SYLLABLE SSANGKIYEOK YU CIEUC +0x85B5 0xB03F #HANGUL SYLLABLE SSANGKIYEOK YU CHIEUCH +0x85B6 0xB040 #HANGUL SYLLABLE SSANGKIYEOK YU KHIEUKH +0x85B7 0xB041 #HANGUL SYLLABLE SSANGKIYEOK YU THIEUTH +0x85B8 0xB042 #HANGUL SYLLABLE SSANGKIYEOK YU PHIEUPH +0x85B9 0xB043 #HANGUL SYLLABLE SSANGKIYEOK YU HIEUH +0x85BA 0xB046 #HANGUL SYLLABLE SSANGKIYEOK EU SSANGKIYEOK +0x85BB 0xB047 #HANGUL SYLLABLE SSANGKIYEOK EU KIYEOKSIOS +0x85BC 0xB049 #HANGUL SYLLABLE SSANGKIYEOK EU NIEUNCIEUC +0x85BD 0xB04B #HANGUL SYLLABLE SSANGKIYEOK EU TIKEUT +0x85BE 0xB04D #HANGUL SYLLABLE SSANGKIYEOK EU RIEULKIYEOK +0x85BF 0xB04F #HANGUL SYLLABLE SSANGKIYEOK EU RIEULPIEUP +0x85C0 0xB050 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULSIOS +0x85C1 0xB051 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULTHIEUTH +0x85C2 0xB052 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULPHIEUPH +0x85C3 0xB056 #HANGUL SYLLABLE SSANGKIYEOK EU PIEUPSIOS +0x85C4 0xB058 #HANGUL SYLLABLE SSANGKIYEOK EU SSANGSIOS +0x85C5 0xB05A #HANGUL SYLLABLE SSANGKIYEOK EU CIEUC +0x85C6 0xB05B #HANGUL SYLLABLE SSANGKIYEOK EU CHIEUCH +0x85C7 0xB05C #HANGUL SYLLABLE SSANGKIYEOK EU KHIEUKH +0x85C8 0xB05E #HANGUL SYLLABLE SSANGKIYEOK EU PHIEUPH +0x85C9 0xB05F #HANGUL SYLLABLE SSANGKIYEOK EU HIEUH +0x85CA 0xB060 #HANGUL SYLLABLE SSANGKIYEOK YI +0x85CB 0xB061 #HANGUL SYLLABLE SSANGKIYEOK YI KIYEOK +0x85CC 0xB062 #HANGUL SYLLABLE SSANGKIYEOK YI SSANGKIYEOK +0x85CD 0xB063 #HANGUL SYLLABLE SSANGKIYEOK YI KIYEOKSIOS +0x85CE 0xB064 #HANGUL SYLLABLE SSANGKIYEOK YI NIEUN +0x85CF 0xB065 #HANGUL SYLLABLE SSANGKIYEOK YI NIEUNCIEUC +0x85D0 0xB066 #HANGUL SYLLABLE SSANGKIYEOK YI NIEUNHIEUH +0x85D1 0xB067 #HANGUL SYLLABLE SSANGKIYEOK YI TIKEUT +0x85D2 0xB068 #HANGUL SYLLABLE SSANGKIYEOK YI RIEUL +0x85D3 0xB069 #HANGUL SYLLABLE SSANGKIYEOK YI RIEULKIYEOK +0x85D4 0xB06A #HANGUL SYLLABLE SSANGKIYEOK YI RIEULMIEUM +0x85D5 0xB06B #HANGUL SYLLABLE SSANGKIYEOK YI RIEULPIEUP +0x85D6 0xB06C #HANGUL SYLLABLE SSANGKIYEOK YI RIEULSIOS +0x85D7 0xB06D #HANGUL SYLLABLE SSANGKIYEOK YI RIEULTHIEUTH +0x85D8 0xB06E #HANGUL SYLLABLE SSANGKIYEOK YI RIEULPHIEUPH +0x85D9 0xB06F #HANGUL SYLLABLE SSANGKIYEOK YI RIEULHIEUH +0x85DA 0xB070 #HANGUL SYLLABLE SSANGKIYEOK YI MIEUM +0x85DB 0xB071 #HANGUL SYLLABLE SSANGKIYEOK YI PIEUP +0x85DC 0xB072 #HANGUL SYLLABLE SSANGKIYEOK YI PIEUPSIOS +0x85DD 0xB073 #HANGUL SYLLABLE SSANGKIYEOK YI SIOS +0x85DE 0xB074 #HANGUL SYLLABLE SSANGKIYEOK YI SSANGSIOS +0x85DF 0xB075 #HANGUL SYLLABLE SSANGKIYEOK YI IEUNG +0x85E0 0xB076 #HANGUL SYLLABLE SSANGKIYEOK YI CIEUC +0x85E1 0xB077 #HANGUL SYLLABLE SSANGKIYEOK YI CHIEUCH +0x85E2 0xB078 #HANGUL SYLLABLE SSANGKIYEOK YI KHIEUKH +0x85E3 0xB079 #HANGUL SYLLABLE SSANGKIYEOK YI THIEUTH +0x85E4 0xB07A #HANGUL SYLLABLE SSANGKIYEOK YI PHIEUPH +0x85E5 0xB07B #HANGUL SYLLABLE SSANGKIYEOK YI HIEUH +0x85E6 0xB07E #HANGUL SYLLABLE SSANGKIYEOK I SSANGKIYEOK +0x85E7 0xB07F #HANGUL SYLLABLE SSANGKIYEOK I KIYEOKSIOS +0x85E8 0xB081 #HANGUL SYLLABLE SSANGKIYEOK I NIEUNCIEUC +0x85E9 0xB082 #HANGUL SYLLABLE SSANGKIYEOK I NIEUNHIEUH +0x85EA 0xB083 #HANGUL SYLLABLE SSANGKIYEOK I TIKEUT +0x85EB 0xB085 #HANGUL SYLLABLE SSANGKIYEOK I RIEULKIYEOK +0x85EC 0xB086 #HANGUL SYLLABLE SSANGKIYEOK I RIEULMIEUM +0x85ED 0xB087 #HANGUL SYLLABLE SSANGKIYEOK I RIEULPIEUP +0x85EE 0xB088 #HANGUL SYLLABLE SSANGKIYEOK I RIEULSIOS +0x85EF 0xB089 #HANGUL SYLLABLE SSANGKIYEOK I RIEULTHIEUTH +0x85F0 0xB08A #HANGUL SYLLABLE SSANGKIYEOK I RIEULPHIEUPH +0x85F1 0xB08B #HANGUL SYLLABLE SSANGKIYEOK I RIEULHIEUH +0x85F2 0xB08E #HANGUL SYLLABLE SSANGKIYEOK I PIEUPSIOS +0x85F3 0xB090 #HANGUL SYLLABLE SSANGKIYEOK I SSANGSIOS +0x85F4 0xB092 #HANGUL SYLLABLE SSANGKIYEOK I CIEUC +0x85F5 0xB093 #HANGUL SYLLABLE SSANGKIYEOK I CHIEUCH +0x85F6 0xB094 #HANGUL SYLLABLE SSANGKIYEOK I KHIEUKH +0x85F7 0xB095 #HANGUL SYLLABLE SSANGKIYEOK I THIEUTH +0x85F8 0xB096 #HANGUL SYLLABLE SSANGKIYEOK I PHIEUPH +0x85F9 0xB097 #HANGUL SYLLABLE SSANGKIYEOK I HIEUH +0x85FA 0xB09B #HANGUL SYLLABLE NIEUN A KIYEOKSIOS +0x85FB 0xB09D #HANGUL SYLLABLE NIEUN A NIEUNCIEUC +0x85FC 0xB09E #HANGUL SYLLABLE NIEUN A NIEUNHIEUH +0x85FD 0xB0A3 #HANGUL SYLLABLE NIEUN A RIEULPIEUP +0x85FE 0xB0A4 #HANGUL SYLLABLE NIEUN A RIEULSIOS +0x8641 0xB0A5 #HANGUL SYLLABLE NIEUN A RIEULTHIEUTH +0x8642 0xB0A6 #HANGUL SYLLABLE NIEUN A RIEULPHIEUPH +0x8643 0xB0A7 #HANGUL SYLLABLE NIEUN A RIEULHIEUH +0x8644 0xB0AA #HANGUL SYLLABLE NIEUN A PIEUPSIOS +0x8645 0xB0B0 #HANGUL SYLLABLE NIEUN A KHIEUKH +0x8646 0xB0B2 #HANGUL SYLLABLE NIEUN A PHIEUPH +0x8647 0xB0B6 #HANGUL SYLLABLE NIEUN AE SSANGKIYEOK +0x8648 0xB0B7 #HANGUL SYLLABLE NIEUN AE KIYEOKSIOS +0x8649 0xB0B9 #HANGUL SYLLABLE NIEUN AE NIEUNCIEUC +0x864A 0xB0BA #HANGUL SYLLABLE NIEUN AE NIEUNHIEUH +0x864B 0xB0BB #HANGUL SYLLABLE NIEUN AE TIKEUT +0x864C 0xB0BD #HANGUL SYLLABLE NIEUN AE RIEULKIYEOK +0x864D 0xB0BE #HANGUL SYLLABLE NIEUN AE RIEULMIEUM +0x864E 0xB0BF #HANGUL SYLLABLE NIEUN AE RIEULPIEUP +0x864F 0xB0C0 #HANGUL SYLLABLE NIEUN AE RIEULSIOS +0x8650 0xB0C1 #HANGUL SYLLABLE NIEUN AE RIEULTHIEUTH +0x8651 0xB0C2 #HANGUL SYLLABLE NIEUN AE RIEULPHIEUPH +0x8652 0xB0C3 #HANGUL SYLLABLE NIEUN AE RIEULHIEUH +0x8653 0xB0C6 #HANGUL SYLLABLE NIEUN AE PIEUPSIOS +0x8654 0xB0CA #HANGUL SYLLABLE NIEUN AE CIEUC +0x8655 0xB0CB #HANGUL SYLLABLE NIEUN AE CHIEUCH +0x8656 0xB0CC #HANGUL SYLLABLE NIEUN AE KHIEUKH +0x8657 0xB0CD #HANGUL SYLLABLE NIEUN AE THIEUTH +0x8658 0xB0CE #HANGUL SYLLABLE NIEUN AE PHIEUPH +0x8659 0xB0CF #HANGUL SYLLABLE NIEUN AE HIEUH +0x865A 0xB0D2 #HANGUL SYLLABLE NIEUN YA SSANGKIYEOK +0x8661 0xB0D3 #HANGUL SYLLABLE NIEUN YA KIYEOKSIOS +0x8662 0xB0D5 #HANGUL SYLLABLE NIEUN YA NIEUNCIEUC +0x8663 0xB0D6 #HANGUL SYLLABLE NIEUN YA NIEUNHIEUH +0x8664 0xB0D7 #HANGUL SYLLABLE NIEUN YA TIKEUT +0x8665 0xB0D9 #HANGUL SYLLABLE NIEUN YA RIEULKIYEOK +0x8666 0xB0DA #HANGUL SYLLABLE NIEUN YA RIEULMIEUM +0x8667 0xB0DB #HANGUL SYLLABLE NIEUN YA RIEULPIEUP +0x8668 0xB0DC #HANGUL SYLLABLE NIEUN YA RIEULSIOS +0x8669 0xB0DD #HANGUL SYLLABLE NIEUN YA RIEULTHIEUTH +0x866A 0xB0DE #HANGUL SYLLABLE NIEUN YA RIEULPHIEUPH +0x866B 0xB0DF #HANGUL SYLLABLE NIEUN YA RIEULHIEUH +0x866C 0xB0E1 #HANGUL SYLLABLE NIEUN YA PIEUP +0x866D 0xB0E2 #HANGUL SYLLABLE NIEUN YA PIEUPSIOS +0x866E 0xB0E3 #HANGUL SYLLABLE NIEUN YA SIOS +0x866F 0xB0E4 #HANGUL SYLLABLE NIEUN YA SSANGSIOS +0x8670 0xB0E6 #HANGUL SYLLABLE NIEUN YA CIEUC +0x8671 0xB0E7 #HANGUL SYLLABLE NIEUN YA CHIEUCH +0x8672 0xB0E8 #HANGUL SYLLABLE NIEUN YA KHIEUKH +0x8673 0xB0E9 #HANGUL SYLLABLE NIEUN YA THIEUTH +0x8674 0xB0EA #HANGUL SYLLABLE NIEUN YA PHIEUPH +0x8675 0xB0EB #HANGUL SYLLABLE NIEUN YA HIEUH +0x8676 0xB0EC #HANGUL SYLLABLE NIEUN YAE +0x8677 0xB0ED #HANGUL SYLLABLE NIEUN YAE KIYEOK +0x8678 0xB0EE #HANGUL SYLLABLE NIEUN YAE SSANGKIYEOK +0x8679 0xB0EF #HANGUL SYLLABLE NIEUN YAE KIYEOKSIOS +0x867A 0xB0F0 #HANGUL SYLLABLE NIEUN YAE NIEUN +0x8681 0xB0F1 #HANGUL SYLLABLE NIEUN YAE NIEUNCIEUC +0x8682 0xB0F2 #HANGUL SYLLABLE NIEUN YAE NIEUNHIEUH +0x8683 0xB0F3 #HANGUL SYLLABLE NIEUN YAE TIKEUT +0x8684 0xB0F4 #HANGUL SYLLABLE NIEUN YAE RIEUL +0x8685 0xB0F5 #HANGUL SYLLABLE NIEUN YAE RIEULKIYEOK +0x8686 0xB0F6 #HANGUL SYLLABLE NIEUN YAE RIEULMIEUM +0x8687 0xB0F7 #HANGUL SYLLABLE NIEUN YAE RIEULPIEUP +0x8688 0xB0F8 #HANGUL SYLLABLE NIEUN YAE RIEULSIOS +0x8689 0xB0F9 #HANGUL SYLLABLE NIEUN YAE RIEULTHIEUTH +0x868A 0xB0FA #HANGUL SYLLABLE NIEUN YAE RIEULPHIEUPH +0x868B 0xB0FB #HANGUL SYLLABLE NIEUN YAE RIEULHIEUH +0x868C 0xB0FC #HANGUL SYLLABLE NIEUN YAE MIEUM +0x868D 0xB0FD #HANGUL SYLLABLE NIEUN YAE PIEUP +0x868E 0xB0FE #HANGUL SYLLABLE NIEUN YAE PIEUPSIOS +0x868F 0xB0FF #HANGUL SYLLABLE NIEUN YAE SIOS +0x8690 0xB100 #HANGUL SYLLABLE NIEUN YAE SSANGSIOS +0x8691 0xB101 #HANGUL SYLLABLE NIEUN YAE IEUNG +0x8692 0xB102 #HANGUL SYLLABLE NIEUN YAE CIEUC +0x8693 0xB103 #HANGUL SYLLABLE NIEUN YAE CHIEUCH +0x8694 0xB104 #HANGUL SYLLABLE NIEUN YAE KHIEUKH +0x8695 0xB105 #HANGUL SYLLABLE NIEUN YAE THIEUTH +0x8696 0xB106 #HANGUL SYLLABLE NIEUN YAE PHIEUPH +0x8697 0xB107 #HANGUL SYLLABLE NIEUN YAE HIEUH +0x8698 0xB10A #HANGUL SYLLABLE NIEUN EO SSANGKIYEOK +0x8699 0xB10D #HANGUL SYLLABLE NIEUN EO NIEUNCIEUC +0x869A 0xB10E #HANGUL SYLLABLE NIEUN EO NIEUNHIEUH +0x869B 0xB10F #HANGUL SYLLABLE NIEUN EO TIKEUT +0x869C 0xB111 #HANGUL SYLLABLE NIEUN EO RIEULKIYEOK +0x869D 0xB114 #HANGUL SYLLABLE NIEUN EO RIEULSIOS +0x869E 0xB115 #HANGUL SYLLABLE NIEUN EO RIEULTHIEUTH +0x869F 0xB116 #HANGUL SYLLABLE NIEUN EO RIEULPHIEUPH +0x86A0 0xB117 #HANGUL SYLLABLE NIEUN EO RIEULHIEUH +0x86A1 0xB11A #HANGUL SYLLABLE NIEUN EO PIEUPSIOS +0x86A2 0xB11E #HANGUL SYLLABLE NIEUN EO CIEUC +0x86A3 0xB11F #HANGUL SYLLABLE NIEUN EO CHIEUCH +0x86A4 0xB120 #HANGUL SYLLABLE NIEUN EO KHIEUKH +0x86A5 0xB121 #HANGUL SYLLABLE NIEUN EO THIEUTH +0x86A6 0xB122 #HANGUL SYLLABLE NIEUN EO PHIEUPH +0x86A7 0xB126 #HANGUL SYLLABLE NIEUN E SSANGKIYEOK +0x86A8 0xB127 #HANGUL SYLLABLE NIEUN E KIYEOKSIOS +0x86A9 0xB129 #HANGUL SYLLABLE NIEUN E NIEUNCIEUC +0x86AA 0xB12A #HANGUL SYLLABLE NIEUN E NIEUNHIEUH +0x86AB 0xB12B #HANGUL SYLLABLE NIEUN E TIKEUT +0x86AC 0xB12D #HANGUL SYLLABLE NIEUN E RIEULKIYEOK +0x86AD 0xB12E #HANGUL SYLLABLE NIEUN E RIEULMIEUM +0x86AE 0xB12F #HANGUL SYLLABLE NIEUN E RIEULPIEUP +0x86AF 0xB130 #HANGUL SYLLABLE NIEUN E RIEULSIOS +0x86B0 0xB131 #HANGUL SYLLABLE NIEUN E RIEULTHIEUTH +0x86B1 0xB132 #HANGUL SYLLABLE NIEUN E RIEULPHIEUPH +0x86B2 0xB133 #HANGUL SYLLABLE NIEUN E RIEULHIEUH +0x86B3 0xB136 #HANGUL SYLLABLE NIEUN E PIEUPSIOS +0x86B4 0xB13A #HANGUL SYLLABLE NIEUN E CIEUC +0x86B5 0xB13B #HANGUL SYLLABLE NIEUN E CHIEUCH +0x86B6 0xB13C #HANGUL SYLLABLE NIEUN E KHIEUKH +0x86B7 0xB13D #HANGUL SYLLABLE NIEUN E THIEUTH +0x86B8 0xB13E #HANGUL SYLLABLE NIEUN E PHIEUPH +0x86B9 0xB13F #HANGUL SYLLABLE NIEUN E HIEUH +0x86BA 0xB142 #HANGUL SYLLABLE NIEUN YEO SSANGKIYEOK +0x86BB 0xB143 #HANGUL SYLLABLE NIEUN YEO KIYEOKSIOS +0x86BC 0xB145 #HANGUL SYLLABLE NIEUN YEO NIEUNCIEUC +0x86BD 0xB146 #HANGUL SYLLABLE NIEUN YEO NIEUNHIEUH +0x86BE 0xB147 #HANGUL SYLLABLE NIEUN YEO TIKEUT +0x86BF 0xB149 #HANGUL SYLLABLE NIEUN YEO RIEULKIYEOK +0x86C0 0xB14A #HANGUL SYLLABLE NIEUN YEO RIEULMIEUM +0x86C1 0xB14B #HANGUL SYLLABLE NIEUN YEO RIEULPIEUP +0x86C2 0xB14C #HANGUL SYLLABLE NIEUN YEO RIEULSIOS +0x86C3 0xB14D #HANGUL SYLLABLE NIEUN YEO RIEULTHIEUTH +0x86C4 0xB14E #HANGUL SYLLABLE NIEUN YEO RIEULPHIEUPH +0x86C5 0xB14F #HANGUL SYLLABLE NIEUN YEO RIEULHIEUH +0x86C6 0xB152 #HANGUL SYLLABLE NIEUN YEO PIEUPSIOS +0x86C7 0xB153 #HANGUL SYLLABLE NIEUN YEO SIOS +0x86C8 0xB156 #HANGUL SYLLABLE NIEUN YEO CIEUC +0x86C9 0xB157 #HANGUL SYLLABLE NIEUN YEO CHIEUCH +0x86CA 0xB159 #HANGUL SYLLABLE NIEUN YEO THIEUTH +0x86CB 0xB15A #HANGUL SYLLABLE NIEUN YEO PHIEUPH +0x86CC 0xB15B #HANGUL SYLLABLE NIEUN YEO HIEUH +0x86CD 0xB15D #HANGUL SYLLABLE NIEUN YE KIYEOK +0x86CE 0xB15E #HANGUL SYLLABLE NIEUN YE SSANGKIYEOK +0x86CF 0xB15F #HANGUL SYLLABLE NIEUN YE KIYEOKSIOS +0x86D0 0xB161 #HANGUL SYLLABLE NIEUN YE NIEUNCIEUC +0x86D1 0xB162 #HANGUL SYLLABLE NIEUN YE NIEUNHIEUH +0x86D2 0xB163 #HANGUL SYLLABLE NIEUN YE TIKEUT +0x86D3 0xB164 #HANGUL SYLLABLE NIEUN YE RIEUL +0x86D4 0xB165 #HANGUL SYLLABLE NIEUN YE RIEULKIYEOK +0x86D5 0xB166 #HANGUL SYLLABLE NIEUN YE RIEULMIEUM +0x86D6 0xB167 #HANGUL SYLLABLE NIEUN YE RIEULPIEUP +0x86D7 0xB168 #HANGUL SYLLABLE NIEUN YE RIEULSIOS +0x86D8 0xB169 #HANGUL SYLLABLE NIEUN YE RIEULTHIEUTH +0x86D9 0xB16A #HANGUL SYLLABLE NIEUN YE RIEULPHIEUPH +0x86DA 0xB16B #HANGUL SYLLABLE NIEUN YE RIEULHIEUH +0x86DB 0xB16C #HANGUL SYLLABLE NIEUN YE MIEUM +0x86DC 0xB16D #HANGUL SYLLABLE NIEUN YE PIEUP +0x86DD 0xB16E #HANGUL SYLLABLE NIEUN YE PIEUPSIOS +0x86DE 0xB16F #HANGUL SYLLABLE NIEUN YE SIOS +0x86DF 0xB170 #HANGUL SYLLABLE NIEUN YE SSANGSIOS +0x86E0 0xB171 #HANGUL SYLLABLE NIEUN YE IEUNG +0x86E1 0xB172 #HANGUL SYLLABLE NIEUN YE CIEUC +0x86E2 0xB173 #HANGUL SYLLABLE NIEUN YE CHIEUCH +0x86E3 0xB174 #HANGUL SYLLABLE NIEUN YE KHIEUKH +0x86E4 0xB175 #HANGUL SYLLABLE NIEUN YE THIEUTH +0x86E5 0xB176 #HANGUL SYLLABLE NIEUN YE PHIEUPH +0x86E6 0xB177 #HANGUL SYLLABLE NIEUN YE HIEUH +0x86E7 0xB17A #HANGUL SYLLABLE NIEUN O SSANGKIYEOK +0x86E8 0xB17B #HANGUL SYLLABLE NIEUN O KIYEOKSIOS +0x86E9 0xB17D #HANGUL SYLLABLE NIEUN O NIEUNCIEUC +0x86EA 0xB17E #HANGUL SYLLABLE NIEUN O NIEUNHIEUH +0x86EB 0xB17F #HANGUL SYLLABLE NIEUN O TIKEUT +0x86EC 0xB181 #HANGUL SYLLABLE NIEUN O RIEULKIYEOK +0x86ED 0xB183 #HANGUL SYLLABLE NIEUN O RIEULPIEUP +0x86EE 0xB184 #HANGUL SYLLABLE NIEUN O RIEULSIOS +0x86EF 0xB185 #HANGUL SYLLABLE NIEUN O RIEULTHIEUTH +0x86F0 0xB186 #HANGUL SYLLABLE NIEUN O RIEULPHIEUPH +0x86F1 0xB187 #HANGUL SYLLABLE NIEUN O RIEULHIEUH +0x86F2 0xB18A #HANGUL SYLLABLE NIEUN O PIEUPSIOS +0x86F3 0xB18C #HANGUL SYLLABLE NIEUN O SSANGSIOS +0x86F4 0xB18E #HANGUL SYLLABLE NIEUN O CIEUC +0x86F5 0xB18F #HANGUL SYLLABLE NIEUN O CHIEUCH +0x86F6 0xB190 #HANGUL SYLLABLE NIEUN O KHIEUKH +0x86F7 0xB191 #HANGUL SYLLABLE NIEUN O THIEUTH +0x86F8 0xB195 #HANGUL SYLLABLE NIEUN WA KIYEOK +0x86F9 0xB196 #HANGUL SYLLABLE NIEUN WA SSANGKIYEOK +0x86FA 0xB197 #HANGUL SYLLABLE NIEUN WA KIYEOKSIOS +0x86FB 0xB199 #HANGUL SYLLABLE NIEUN WA NIEUNCIEUC +0x86FC 0xB19A #HANGUL SYLLABLE NIEUN WA NIEUNHIEUH +0x86FD 0xB19B #HANGUL SYLLABLE NIEUN WA TIKEUT +0x86FE 0xB19D #HANGUL SYLLABLE NIEUN WA RIEULKIYEOK +0x8741 0xB19E #HANGUL SYLLABLE NIEUN WA RIEULMIEUM +0x8742 0xB19F #HANGUL SYLLABLE NIEUN WA RIEULPIEUP +0x8743 0xB1A0 #HANGUL SYLLABLE NIEUN WA RIEULSIOS +0x8744 0xB1A1 #HANGUL SYLLABLE NIEUN WA RIEULTHIEUTH +0x8745 0xB1A2 #HANGUL SYLLABLE NIEUN WA RIEULPHIEUPH +0x8746 0xB1A3 #HANGUL SYLLABLE NIEUN WA RIEULHIEUH +0x8747 0xB1A4 #HANGUL SYLLABLE NIEUN WA MIEUM +0x8748 0xB1A5 #HANGUL SYLLABLE NIEUN WA PIEUP +0x8749 0xB1A6 #HANGUL SYLLABLE NIEUN WA PIEUPSIOS +0x874A 0xB1A7 #HANGUL SYLLABLE NIEUN WA SIOS +0x874B 0xB1A9 #HANGUL SYLLABLE NIEUN WA IEUNG +0x874C 0xB1AA #HANGUL SYLLABLE NIEUN WA CIEUC +0x874D 0xB1AB #HANGUL SYLLABLE NIEUN WA CHIEUCH +0x874E 0xB1AC #HANGUL SYLLABLE NIEUN WA KHIEUKH +0x874F 0xB1AD #HANGUL SYLLABLE NIEUN WA THIEUTH +0x8750 0xB1AE #HANGUL SYLLABLE NIEUN WA PHIEUPH +0x8751 0xB1AF #HANGUL SYLLABLE NIEUN WA HIEUH +0x8752 0xB1B0 #HANGUL SYLLABLE NIEUN WAE +0x8753 0xB1B1 #HANGUL SYLLABLE NIEUN WAE KIYEOK +0x8754 0xB1B2 #HANGUL SYLLABLE NIEUN WAE SSANGKIYEOK +0x8755 0xB1B3 #HANGUL SYLLABLE NIEUN WAE KIYEOKSIOS +0x8756 0xB1B4 #HANGUL SYLLABLE NIEUN WAE NIEUN +0x8757 0xB1B5 #HANGUL SYLLABLE NIEUN WAE NIEUNCIEUC +0x8758 0xB1B6 #HANGUL SYLLABLE NIEUN WAE NIEUNHIEUH +0x8759 0xB1B7 #HANGUL SYLLABLE NIEUN WAE TIKEUT +0x875A 0xB1B8 #HANGUL SYLLABLE NIEUN WAE RIEUL +0x8761 0xB1B9 #HANGUL SYLLABLE NIEUN WAE RIEULKIYEOK +0x8762 0xB1BA #HANGUL SYLLABLE NIEUN WAE RIEULMIEUM +0x8763 0xB1BB #HANGUL SYLLABLE NIEUN WAE RIEULPIEUP +0x8764 0xB1BC #HANGUL SYLLABLE NIEUN WAE RIEULSIOS +0x8765 0xB1BD #HANGUL SYLLABLE NIEUN WAE RIEULTHIEUTH +0x8766 0xB1BE #HANGUL SYLLABLE NIEUN WAE RIEULPHIEUPH +0x8767 0xB1BF #HANGUL SYLLABLE NIEUN WAE RIEULHIEUH +0x8768 0xB1C0 #HANGUL SYLLABLE NIEUN WAE MIEUM +0x8769 0xB1C1 #HANGUL SYLLABLE NIEUN WAE PIEUP +0x876A 0xB1C2 #HANGUL SYLLABLE NIEUN WAE PIEUPSIOS +0x876B 0xB1C3 #HANGUL SYLLABLE NIEUN WAE SIOS +0x876C 0xB1C4 #HANGUL SYLLABLE NIEUN WAE SSANGSIOS +0x876D 0xB1C5 #HANGUL SYLLABLE NIEUN WAE IEUNG +0x876E 0xB1C6 #HANGUL SYLLABLE NIEUN WAE CIEUC +0x876F 0xB1C7 #HANGUL SYLLABLE NIEUN WAE CHIEUCH +0x8770 0xB1C8 #HANGUL SYLLABLE NIEUN WAE KHIEUKH +0x8771 0xB1C9 #HANGUL SYLLABLE NIEUN WAE THIEUTH +0x8772 0xB1CA #HANGUL SYLLABLE NIEUN WAE PHIEUPH +0x8773 0xB1CB #HANGUL SYLLABLE NIEUN WAE HIEUH +0x8774 0xB1CD #HANGUL SYLLABLE NIEUN OE KIYEOK +0x8775 0xB1CE #HANGUL SYLLABLE NIEUN OE SSANGKIYEOK +0x8776 0xB1CF #HANGUL SYLLABLE NIEUN OE KIYEOKSIOS +0x8777 0xB1D1 #HANGUL SYLLABLE NIEUN OE NIEUNCIEUC +0x8778 0xB1D2 #HANGUL SYLLABLE NIEUN OE NIEUNHIEUH +0x8779 0xB1D3 #HANGUL SYLLABLE NIEUN OE TIKEUT +0x877A 0xB1D5 #HANGUL SYLLABLE NIEUN OE RIEULKIYEOK +0x8781 0xB1D6 #HANGUL SYLLABLE NIEUN OE RIEULMIEUM +0x8782 0xB1D7 #HANGUL SYLLABLE NIEUN OE RIEULPIEUP +0x8783 0xB1D8 #HANGUL SYLLABLE NIEUN OE RIEULSIOS +0x8784 0xB1D9 #HANGUL SYLLABLE NIEUN OE RIEULTHIEUTH +0x8785 0xB1DA #HANGUL SYLLABLE NIEUN OE RIEULPHIEUPH +0x8786 0xB1DB #HANGUL SYLLABLE NIEUN OE RIEULHIEUH +0x8787 0xB1DE #HANGUL SYLLABLE NIEUN OE PIEUPSIOS +0x8788 0xB1E0 #HANGUL SYLLABLE NIEUN OE SSANGSIOS +0x8789 0xB1E1 #HANGUL SYLLABLE NIEUN OE IEUNG +0x878A 0xB1E2 #HANGUL SYLLABLE NIEUN OE CIEUC +0x878B 0xB1E3 #HANGUL SYLLABLE NIEUN OE CHIEUCH +0x878C 0xB1E4 #HANGUL SYLLABLE NIEUN OE KHIEUKH +0x878D 0xB1E5 #HANGUL SYLLABLE NIEUN OE THIEUTH +0x878E 0xB1E6 #HANGUL SYLLABLE NIEUN OE PHIEUPH +0x878F 0xB1E7 #HANGUL SYLLABLE NIEUN OE HIEUH +0x8790 0xB1EA #HANGUL SYLLABLE NIEUN YO SSANGKIYEOK +0x8791 0xB1EB #HANGUL SYLLABLE NIEUN YO KIYEOKSIOS +0x8792 0xB1ED #HANGUL SYLLABLE NIEUN YO NIEUNCIEUC +0x8793 0xB1EE #HANGUL SYLLABLE NIEUN YO NIEUNHIEUH +0x8794 0xB1EF #HANGUL SYLLABLE NIEUN YO TIKEUT +0x8795 0xB1F1 #HANGUL SYLLABLE NIEUN YO RIEULKIYEOK +0x8796 0xB1F2 #HANGUL SYLLABLE NIEUN YO RIEULMIEUM +0x8797 0xB1F3 #HANGUL SYLLABLE NIEUN YO RIEULPIEUP +0x8798 0xB1F4 #HANGUL SYLLABLE NIEUN YO RIEULSIOS +0x8799 0xB1F5 #HANGUL SYLLABLE NIEUN YO RIEULTHIEUTH +0x879A 0xB1F6 #HANGUL SYLLABLE NIEUN YO RIEULPHIEUPH +0x879B 0xB1F7 #HANGUL SYLLABLE NIEUN YO RIEULHIEUH +0x879C 0xB1F8 #HANGUL SYLLABLE NIEUN YO MIEUM +0x879D 0xB1FA #HANGUL SYLLABLE NIEUN YO PIEUPSIOS +0x879E 0xB1FC #HANGUL SYLLABLE NIEUN YO SSANGSIOS +0x879F 0xB1FE #HANGUL SYLLABLE NIEUN YO CIEUC +0x87A0 0xB1FF #HANGUL SYLLABLE NIEUN YO CHIEUCH +0x87A1 0xB200 #HANGUL SYLLABLE NIEUN YO KHIEUKH +0x87A2 0xB201 #HANGUL SYLLABLE NIEUN YO THIEUTH +0x87A3 0xB202 #HANGUL SYLLABLE NIEUN YO PHIEUPH +0x87A4 0xB203 #HANGUL SYLLABLE NIEUN YO HIEUH +0x87A5 0xB206 #HANGUL SYLLABLE NIEUN U SSANGKIYEOK +0x87A6 0xB207 #HANGUL SYLLABLE NIEUN U KIYEOKSIOS +0x87A7 0xB209 #HANGUL SYLLABLE NIEUN U NIEUNCIEUC +0x87A8 0xB20A #HANGUL SYLLABLE NIEUN U NIEUNHIEUH +0x87A9 0xB20D #HANGUL SYLLABLE NIEUN U RIEULKIYEOK +0x87AA 0xB20E #HANGUL SYLLABLE NIEUN U RIEULMIEUM +0x87AB 0xB20F #HANGUL SYLLABLE NIEUN U RIEULPIEUP +0x87AC 0xB210 #HANGUL SYLLABLE NIEUN U RIEULSIOS +0x87AD 0xB211 #HANGUL SYLLABLE NIEUN U RIEULTHIEUTH +0x87AE 0xB212 #HANGUL SYLLABLE NIEUN U RIEULPHIEUPH +0x87AF 0xB213 #HANGUL SYLLABLE NIEUN U RIEULHIEUH +0x87B0 0xB216 #HANGUL SYLLABLE NIEUN U PIEUPSIOS +0x87B1 0xB218 #HANGUL SYLLABLE NIEUN U SSANGSIOS +0x87B2 0xB21A #HANGUL SYLLABLE NIEUN U CIEUC +0x87B3 0xB21B #HANGUL SYLLABLE NIEUN U CHIEUCH +0x87B4 0xB21C #HANGUL SYLLABLE NIEUN U KHIEUKH +0x87B5 0xB21D #HANGUL SYLLABLE NIEUN U THIEUTH +0x87B6 0xB21E #HANGUL SYLLABLE NIEUN U PHIEUPH +0x87B7 0xB21F #HANGUL SYLLABLE NIEUN U HIEUH +0x87B8 0xB221 #HANGUL SYLLABLE NIEUN WEO KIYEOK +0x87B9 0xB222 #HANGUL SYLLABLE NIEUN WEO SSANGKIYEOK +0x87BA 0xB223 #HANGUL SYLLABLE NIEUN WEO KIYEOKSIOS +0x87BB 0xB224 #HANGUL SYLLABLE NIEUN WEO NIEUN +0x87BC 0xB225 #HANGUL SYLLABLE NIEUN WEO NIEUNCIEUC +0x87BD 0xB226 #HANGUL SYLLABLE NIEUN WEO NIEUNHIEUH +0x87BE 0xB227 #HANGUL SYLLABLE NIEUN WEO TIKEUT +0x87BF 0xB228 #HANGUL SYLLABLE NIEUN WEO RIEUL +0x87C0 0xB229 #HANGUL SYLLABLE NIEUN WEO RIEULKIYEOK +0x87C1 0xB22A #HANGUL SYLLABLE NIEUN WEO RIEULMIEUM +0x87C2 0xB22B #HANGUL SYLLABLE NIEUN WEO RIEULPIEUP +0x87C3 0xB22C #HANGUL SYLLABLE NIEUN WEO RIEULSIOS +0x87C4 0xB22D #HANGUL SYLLABLE NIEUN WEO RIEULTHIEUTH +0x87C5 0xB22E #HANGUL SYLLABLE NIEUN WEO RIEULPHIEUPH +0x87C6 0xB22F #HANGUL SYLLABLE NIEUN WEO RIEULHIEUH +0x87C7 0xB230 #HANGUL SYLLABLE NIEUN WEO MIEUM +0x87C8 0xB231 #HANGUL SYLLABLE NIEUN WEO PIEUP +0x87C9 0xB232 #HANGUL SYLLABLE NIEUN WEO PIEUPSIOS +0x87CA 0xB233 #HANGUL SYLLABLE NIEUN WEO SIOS +0x87CB 0xB235 #HANGUL SYLLABLE NIEUN WEO IEUNG +0x87CC 0xB236 #HANGUL SYLLABLE NIEUN WEO CIEUC +0x87CD 0xB237 #HANGUL SYLLABLE NIEUN WEO CHIEUCH +0x87CE 0xB238 #HANGUL SYLLABLE NIEUN WEO KHIEUKH +0x87CF 0xB239 #HANGUL SYLLABLE NIEUN WEO THIEUTH +0x87D0 0xB23A #HANGUL SYLLABLE NIEUN WEO PHIEUPH +0x87D1 0xB23B #HANGUL SYLLABLE NIEUN WEO HIEUH +0x87D2 0xB23D #HANGUL SYLLABLE NIEUN WE KIYEOK +0x87D3 0xB23E #HANGUL SYLLABLE NIEUN WE SSANGKIYEOK +0x87D4 0xB23F #HANGUL SYLLABLE NIEUN WE KIYEOKSIOS +0x87D5 0xB240 #HANGUL SYLLABLE NIEUN WE NIEUN +0x87D6 0xB241 #HANGUL SYLLABLE NIEUN WE NIEUNCIEUC +0x87D7 0xB242 #HANGUL SYLLABLE NIEUN WE NIEUNHIEUH +0x87D8 0xB243 #HANGUL SYLLABLE NIEUN WE TIKEUT +0x87D9 0xB244 #HANGUL SYLLABLE NIEUN WE RIEUL +0x87DA 0xB245 #HANGUL SYLLABLE NIEUN WE RIEULKIYEOK +0x87DB 0xB246 #HANGUL SYLLABLE NIEUN WE RIEULMIEUM +0x87DC 0xB247 #HANGUL SYLLABLE NIEUN WE RIEULPIEUP +0x87DD 0xB248 #HANGUL SYLLABLE NIEUN WE RIEULSIOS +0x87DE 0xB249 #HANGUL SYLLABLE NIEUN WE RIEULTHIEUTH +0x87DF 0xB24A #HANGUL SYLLABLE NIEUN WE RIEULPHIEUPH +0x87E0 0xB24B #HANGUL SYLLABLE NIEUN WE RIEULHIEUH +0x87E1 0xB24C #HANGUL SYLLABLE NIEUN WE MIEUM +0x87E2 0xB24D #HANGUL SYLLABLE NIEUN WE PIEUP +0x87E3 0xB24E #HANGUL SYLLABLE NIEUN WE PIEUPSIOS +0x87E4 0xB24F #HANGUL SYLLABLE NIEUN WE SIOS +0x87E5 0xB250 #HANGUL SYLLABLE NIEUN WE SSANGSIOS +0x87E6 0xB251 #HANGUL SYLLABLE NIEUN WE IEUNG +0x87E7 0xB252 #HANGUL SYLLABLE NIEUN WE CIEUC +0x87E8 0xB253 #HANGUL SYLLABLE NIEUN WE CHIEUCH +0x87E9 0xB254 #HANGUL SYLLABLE NIEUN WE KHIEUKH +0x87EA 0xB255 #HANGUL SYLLABLE NIEUN WE THIEUTH +0x87EB 0xB256 #HANGUL SYLLABLE NIEUN WE PHIEUPH +0x87EC 0xB257 #HANGUL SYLLABLE NIEUN WE HIEUH +0x87ED 0xB259 #HANGUL SYLLABLE NIEUN WI KIYEOK +0x87EE 0xB25A #HANGUL SYLLABLE NIEUN WI SSANGKIYEOK +0x87EF 0xB25B #HANGUL SYLLABLE NIEUN WI KIYEOKSIOS +0x87F0 0xB25D #HANGUL SYLLABLE NIEUN WI NIEUNCIEUC +0x87F1 0xB25E #HANGUL SYLLABLE NIEUN WI NIEUNHIEUH +0x87F2 0xB25F #HANGUL SYLLABLE NIEUN WI TIKEUT +0x87F3 0xB261 #HANGUL SYLLABLE NIEUN WI RIEULKIYEOK +0x87F4 0xB262 #HANGUL SYLLABLE NIEUN WI RIEULMIEUM +0x87F5 0xB263 #HANGUL SYLLABLE NIEUN WI RIEULPIEUP +0x87F6 0xB264 #HANGUL SYLLABLE NIEUN WI RIEULSIOS +0x87F7 0xB265 #HANGUL SYLLABLE NIEUN WI RIEULTHIEUTH +0x87F8 0xB266 #HANGUL SYLLABLE NIEUN WI RIEULPHIEUPH +0x87F9 0xB267 #HANGUL SYLLABLE NIEUN WI RIEULHIEUH +0x87FA 0xB26A #HANGUL SYLLABLE NIEUN WI PIEUPSIOS +0x87FB 0xB26B #HANGUL SYLLABLE NIEUN WI SIOS +0x87FC 0xB26C #HANGUL SYLLABLE NIEUN WI SSANGSIOS +0x87FD 0xB26D #HANGUL SYLLABLE NIEUN WI IEUNG +0x87FE 0xB26E #HANGUL SYLLABLE NIEUN WI CIEUC +0x8841 0xB26F #HANGUL SYLLABLE NIEUN WI CHIEUCH +0x8842 0xB270 #HANGUL SYLLABLE NIEUN WI KHIEUKH +0x8843 0xB271 #HANGUL SYLLABLE NIEUN WI THIEUTH +0x8844 0xB272 #HANGUL SYLLABLE NIEUN WI PHIEUPH +0x8845 0xB273 #HANGUL SYLLABLE NIEUN WI HIEUH +0x8846 0xB276 #HANGUL SYLLABLE NIEUN YU SSANGKIYEOK +0x8847 0xB277 #HANGUL SYLLABLE NIEUN YU KIYEOKSIOS +0x8848 0xB278 #HANGUL SYLLABLE NIEUN YU NIEUN +0x8849 0xB279 #HANGUL SYLLABLE NIEUN YU NIEUNCIEUC +0x884A 0xB27A #HANGUL SYLLABLE NIEUN YU NIEUNHIEUH +0x884B 0xB27B #HANGUL SYLLABLE NIEUN YU TIKEUT +0x884C 0xB27D #HANGUL SYLLABLE NIEUN YU RIEULKIYEOK +0x884D 0xB27E #HANGUL SYLLABLE NIEUN YU RIEULMIEUM +0x884E 0xB27F #HANGUL SYLLABLE NIEUN YU RIEULPIEUP +0x884F 0xB280 #HANGUL SYLLABLE NIEUN YU RIEULSIOS +0x8850 0xB281 #HANGUL SYLLABLE NIEUN YU RIEULTHIEUTH +0x8851 0xB282 #HANGUL SYLLABLE NIEUN YU RIEULPHIEUPH +0x8852 0xB283 #HANGUL SYLLABLE NIEUN YU RIEULHIEUH +0x8853 0xB286 #HANGUL SYLLABLE NIEUN YU PIEUPSIOS +0x8854 0xB287 #HANGUL SYLLABLE NIEUN YU SIOS +0x8855 0xB288 #HANGUL SYLLABLE NIEUN YU SSANGSIOS +0x8856 0xB28A #HANGUL SYLLABLE NIEUN YU CIEUC +0x8857 0xB28B #HANGUL SYLLABLE NIEUN YU CHIEUCH +0x8858 0xB28C #HANGUL SYLLABLE NIEUN YU KHIEUKH +0x8859 0xB28D #HANGUL SYLLABLE NIEUN YU THIEUTH +0x885A 0xB28E #HANGUL SYLLABLE NIEUN YU PHIEUPH +0x8861 0xB28F #HANGUL SYLLABLE NIEUN YU HIEUH +0x8862 0xB292 #HANGUL SYLLABLE NIEUN EU SSANGKIYEOK +0x8863 0xB293 #HANGUL SYLLABLE NIEUN EU KIYEOKSIOS +0x8864 0xB295 #HANGUL SYLLABLE NIEUN EU NIEUNCIEUC +0x8865 0xB296 #HANGUL SYLLABLE NIEUN EU NIEUNHIEUH +0x8866 0xB297 #HANGUL SYLLABLE NIEUN EU TIKEUT +0x8867 0xB29B #HANGUL SYLLABLE NIEUN EU RIEULPIEUP +0x8868 0xB29C #HANGUL SYLLABLE NIEUN EU RIEULSIOS +0x8869 0xB29D #HANGUL SYLLABLE NIEUN EU RIEULTHIEUTH +0x886A 0xB29E #HANGUL SYLLABLE NIEUN EU RIEULPHIEUPH +0x886B 0xB29F #HANGUL SYLLABLE NIEUN EU RIEULHIEUH +0x886C 0xB2A2 #HANGUL SYLLABLE NIEUN EU PIEUPSIOS +0x886D 0xB2A4 #HANGUL SYLLABLE NIEUN EU SSANGSIOS +0x886E 0xB2A7 #HANGUL SYLLABLE NIEUN EU CHIEUCH +0x886F 0xB2A8 #HANGUL SYLLABLE NIEUN EU KHIEUKH +0x8870 0xB2A9 #HANGUL SYLLABLE NIEUN EU THIEUTH +0x8871 0xB2AB #HANGUL SYLLABLE NIEUN EU HIEUH +0x8872 0xB2AD #HANGUL SYLLABLE NIEUN YI KIYEOK +0x8873 0xB2AE #HANGUL SYLLABLE NIEUN YI SSANGKIYEOK +0x8874 0xB2AF #HANGUL SYLLABLE NIEUN YI KIYEOKSIOS +0x8875 0xB2B1 #HANGUL SYLLABLE NIEUN YI NIEUNCIEUC +0x8876 0xB2B2 #HANGUL SYLLABLE NIEUN YI NIEUNHIEUH +0x8877 0xB2B3 #HANGUL SYLLABLE NIEUN YI TIKEUT +0x8878 0xB2B5 #HANGUL SYLLABLE NIEUN YI RIEULKIYEOK +0x8879 0xB2B6 #HANGUL SYLLABLE NIEUN YI RIEULMIEUM +0x887A 0xB2B7 #HANGUL SYLLABLE NIEUN YI RIEULPIEUP +0x8881 0xB2B8 #HANGUL SYLLABLE NIEUN YI RIEULSIOS +0x8882 0xB2B9 #HANGUL SYLLABLE NIEUN YI RIEULTHIEUTH +0x8883 0xB2BA #HANGUL SYLLABLE NIEUN YI RIEULPHIEUPH +0x8884 0xB2BB #HANGUL SYLLABLE NIEUN YI RIEULHIEUH +0x8885 0xB2BC #HANGUL SYLLABLE NIEUN YI MIEUM +0x8886 0xB2BD #HANGUL SYLLABLE NIEUN YI PIEUP +0x8887 0xB2BE #HANGUL SYLLABLE NIEUN YI PIEUPSIOS +0x8888 0xB2BF #HANGUL SYLLABLE NIEUN YI SIOS +0x8889 0xB2C0 #HANGUL SYLLABLE NIEUN YI SSANGSIOS +0x888A 0xB2C1 #HANGUL SYLLABLE NIEUN YI IEUNG +0x888B 0xB2C2 #HANGUL SYLLABLE NIEUN YI CIEUC +0x888C 0xB2C3 #HANGUL SYLLABLE NIEUN YI CHIEUCH +0x888D 0xB2C4 #HANGUL SYLLABLE NIEUN YI KHIEUKH +0x888E 0xB2C5 #HANGUL SYLLABLE NIEUN YI THIEUTH +0x888F 0xB2C6 #HANGUL SYLLABLE NIEUN YI PHIEUPH +0x8890 0xB2C7 #HANGUL SYLLABLE NIEUN YI HIEUH +0x8891 0xB2CA #HANGUL SYLLABLE NIEUN I SSANGKIYEOK +0x8892 0xB2CB #HANGUL SYLLABLE NIEUN I KIYEOKSIOS +0x8893 0xB2CD #HANGUL SYLLABLE NIEUN I NIEUNCIEUC +0x8894 0xB2CE #HANGUL SYLLABLE NIEUN I NIEUNHIEUH +0x8895 0xB2CF #HANGUL SYLLABLE NIEUN I TIKEUT +0x8896 0xB2D1 #HANGUL SYLLABLE NIEUN I RIEULKIYEOK +0x8897 0xB2D3 #HANGUL SYLLABLE NIEUN I RIEULPIEUP +0x8898 0xB2D4 #HANGUL SYLLABLE NIEUN I RIEULSIOS +0x8899 0xB2D5 #HANGUL SYLLABLE NIEUN I RIEULTHIEUTH +0x889A 0xB2D6 #HANGUL SYLLABLE NIEUN I RIEULPHIEUPH +0x889B 0xB2D7 #HANGUL SYLLABLE NIEUN I RIEULHIEUH +0x889C 0xB2DA #HANGUL SYLLABLE NIEUN I PIEUPSIOS +0x889D 0xB2DC #HANGUL SYLLABLE NIEUN I SSANGSIOS +0x889E 0xB2DE #HANGUL SYLLABLE NIEUN I CIEUC +0x889F 0xB2DF #HANGUL SYLLABLE NIEUN I CHIEUCH +0x88A0 0xB2E0 #HANGUL SYLLABLE NIEUN I KHIEUKH +0x88A1 0xB2E1 #HANGUL SYLLABLE NIEUN I THIEUTH +0x88A2 0xB2E3 #HANGUL SYLLABLE NIEUN I HIEUH +0x88A3 0xB2E7 #HANGUL SYLLABLE TIKEUT A KIYEOKSIOS +0x88A4 0xB2E9 #HANGUL SYLLABLE TIKEUT A NIEUNCIEUC +0x88A5 0xB2EA #HANGUL SYLLABLE TIKEUT A NIEUNHIEUH +0x88A6 0xB2F0 #HANGUL SYLLABLE TIKEUT A RIEULSIOS +0x88A7 0xB2F1 #HANGUL SYLLABLE TIKEUT A RIEULTHIEUTH +0x88A8 0xB2F2 #HANGUL SYLLABLE TIKEUT A RIEULPHIEUPH +0x88A9 0xB2F6 #HANGUL SYLLABLE TIKEUT A PIEUPSIOS +0x88AA 0xB2FC #HANGUL SYLLABLE TIKEUT A KHIEUKH +0x88AB 0xB2FD #HANGUL SYLLABLE TIKEUT A THIEUTH +0x88AC 0xB2FE #HANGUL SYLLABLE TIKEUT A PHIEUPH +0x88AD 0xB302 #HANGUL SYLLABLE TIKEUT AE SSANGKIYEOK +0x88AE 0xB303 #HANGUL SYLLABLE TIKEUT AE KIYEOKSIOS +0x88AF 0xB305 #HANGUL SYLLABLE TIKEUT AE NIEUNCIEUC +0x88B0 0xB306 #HANGUL SYLLABLE TIKEUT AE NIEUNHIEUH +0x88B1 0xB307 #HANGUL SYLLABLE TIKEUT AE TIKEUT +0x88B2 0xB309 #HANGUL SYLLABLE TIKEUT AE RIEULKIYEOK +0x88B3 0xB30A #HANGUL SYLLABLE TIKEUT AE RIEULMIEUM +0x88B4 0xB30B #HANGUL SYLLABLE TIKEUT AE RIEULPIEUP +0x88B5 0xB30C #HANGUL SYLLABLE TIKEUT AE RIEULSIOS +0x88B6 0xB30D #HANGUL SYLLABLE TIKEUT AE RIEULTHIEUTH +0x88B7 0xB30E #HANGUL SYLLABLE TIKEUT AE RIEULPHIEUPH +0x88B8 0xB30F #HANGUL SYLLABLE TIKEUT AE RIEULHIEUH +0x88B9 0xB312 #HANGUL SYLLABLE TIKEUT AE PIEUPSIOS +0x88BA 0xB316 #HANGUL SYLLABLE TIKEUT AE CIEUC +0x88BB 0xB317 #HANGUL SYLLABLE TIKEUT AE CHIEUCH +0x88BC 0xB318 #HANGUL SYLLABLE TIKEUT AE KHIEUKH +0x88BD 0xB319 #HANGUL SYLLABLE TIKEUT AE THIEUTH +0x88BE 0xB31A #HANGUL SYLLABLE TIKEUT AE PHIEUPH +0x88BF 0xB31B #HANGUL SYLLABLE TIKEUT AE HIEUH +0x88C0 0xB31D #HANGUL SYLLABLE TIKEUT YA KIYEOK +0x88C1 0xB31E #HANGUL SYLLABLE TIKEUT YA SSANGKIYEOK +0x88C2 0xB31F #HANGUL SYLLABLE TIKEUT YA KIYEOKSIOS +0x88C3 0xB320 #HANGUL SYLLABLE TIKEUT YA NIEUN +0x88C4 0xB321 #HANGUL SYLLABLE TIKEUT YA NIEUNCIEUC +0x88C5 0xB322 #HANGUL SYLLABLE TIKEUT YA NIEUNHIEUH +0x88C6 0xB323 #HANGUL SYLLABLE TIKEUT YA TIKEUT +0x88C7 0xB324 #HANGUL SYLLABLE TIKEUT YA RIEUL +0x88C8 0xB325 #HANGUL SYLLABLE TIKEUT YA RIEULKIYEOK +0x88C9 0xB326 #HANGUL SYLLABLE TIKEUT YA RIEULMIEUM +0x88CA 0xB327 #HANGUL SYLLABLE TIKEUT YA RIEULPIEUP +0x88CB 0xB328 #HANGUL SYLLABLE TIKEUT YA RIEULSIOS +0x88CC 0xB329 #HANGUL SYLLABLE TIKEUT YA RIEULTHIEUTH +0x88CD 0xB32A #HANGUL SYLLABLE TIKEUT YA RIEULPHIEUPH +0x88CE 0xB32B #HANGUL SYLLABLE TIKEUT YA RIEULHIEUH +0x88CF 0xB32C #HANGUL SYLLABLE TIKEUT YA MIEUM +0x88D0 0xB32D #HANGUL SYLLABLE TIKEUT YA PIEUP +0x88D1 0xB32E #HANGUL SYLLABLE TIKEUT YA PIEUPSIOS +0x88D2 0xB32F #HANGUL SYLLABLE TIKEUT YA SIOS +0x88D3 0xB330 #HANGUL SYLLABLE TIKEUT YA SSANGSIOS +0x88D4 0xB331 #HANGUL SYLLABLE TIKEUT YA IEUNG +0x88D5 0xB332 #HANGUL SYLLABLE TIKEUT YA CIEUC +0x88D6 0xB333 #HANGUL SYLLABLE TIKEUT YA CHIEUCH +0x88D7 0xB334 #HANGUL SYLLABLE TIKEUT YA KHIEUKH +0x88D8 0xB335 #HANGUL SYLLABLE TIKEUT YA THIEUTH +0x88D9 0xB336 #HANGUL SYLLABLE TIKEUT YA PHIEUPH +0x88DA 0xB337 #HANGUL SYLLABLE TIKEUT YA HIEUH +0x88DB 0xB338 #HANGUL SYLLABLE TIKEUT YAE +0x88DC 0xB339 #HANGUL SYLLABLE TIKEUT YAE KIYEOK +0x88DD 0xB33A #HANGUL SYLLABLE TIKEUT YAE SSANGKIYEOK +0x88DE 0xB33B #HANGUL SYLLABLE TIKEUT YAE KIYEOKSIOS +0x88DF 0xB33C #HANGUL SYLLABLE TIKEUT YAE NIEUN +0x88E0 0xB33D #HANGUL SYLLABLE TIKEUT YAE NIEUNCIEUC +0x88E1 0xB33E #HANGUL SYLLABLE TIKEUT YAE NIEUNHIEUH +0x88E2 0xB33F #HANGUL SYLLABLE TIKEUT YAE TIKEUT +0x88E3 0xB340 #HANGUL SYLLABLE TIKEUT YAE RIEUL +0x88E4 0xB341 #HANGUL SYLLABLE TIKEUT YAE RIEULKIYEOK +0x88E5 0xB342 #HANGUL SYLLABLE TIKEUT YAE RIEULMIEUM +0x88E6 0xB343 #HANGUL SYLLABLE TIKEUT YAE RIEULPIEUP +0x88E7 0xB344 #HANGUL SYLLABLE TIKEUT YAE RIEULSIOS +0x88E8 0xB345 #HANGUL SYLLABLE TIKEUT YAE RIEULTHIEUTH +0x88E9 0xB346 #HANGUL SYLLABLE TIKEUT YAE RIEULPHIEUPH +0x88EA 0xB347 #HANGUL SYLLABLE TIKEUT YAE RIEULHIEUH +0x88EB 0xB348 #HANGUL SYLLABLE TIKEUT YAE MIEUM +0x88EC 0xB349 #HANGUL SYLLABLE TIKEUT YAE PIEUP +0x88ED 0xB34A #HANGUL SYLLABLE TIKEUT YAE PIEUPSIOS +0x88EE 0xB34B #HANGUL SYLLABLE TIKEUT YAE SIOS +0x88EF 0xB34C #HANGUL SYLLABLE TIKEUT YAE SSANGSIOS +0x88F0 0xB34D #HANGUL SYLLABLE TIKEUT YAE IEUNG +0x88F1 0xB34E #HANGUL SYLLABLE TIKEUT YAE CIEUC +0x88F2 0xB34F #HANGUL SYLLABLE TIKEUT YAE CHIEUCH +0x88F3 0xB350 #HANGUL SYLLABLE TIKEUT YAE KHIEUKH +0x88F4 0xB351 #HANGUL SYLLABLE TIKEUT YAE THIEUTH +0x88F5 0xB352 #HANGUL SYLLABLE TIKEUT YAE PHIEUPH +0x88F6 0xB353 #HANGUL SYLLABLE TIKEUT YAE HIEUH +0x88F7 0xB357 #HANGUL SYLLABLE TIKEUT EO KIYEOKSIOS +0x88F8 0xB359 #HANGUL SYLLABLE TIKEUT EO NIEUNCIEUC +0x88F9 0xB35A #HANGUL SYLLABLE TIKEUT EO NIEUNHIEUH +0x88FA 0xB35D #HANGUL SYLLABLE TIKEUT EO RIEULKIYEOK +0x88FB 0xB360 #HANGUL SYLLABLE TIKEUT EO RIEULSIOS +0x88FC 0xB361 #HANGUL SYLLABLE TIKEUT EO RIEULTHIEUTH +0x88FD 0xB362 #HANGUL SYLLABLE TIKEUT EO RIEULPHIEUPH +0x88FE 0xB363 #HANGUL SYLLABLE TIKEUT EO RIEULHIEUH +0x8941 0xB366 #HANGUL SYLLABLE TIKEUT EO PIEUPSIOS +0x8942 0xB368 #HANGUL SYLLABLE TIKEUT EO SSANGSIOS +0x8943 0xB36A #HANGUL SYLLABLE TIKEUT EO CIEUC +0x8944 0xB36C #HANGUL SYLLABLE TIKEUT EO KHIEUKH +0x8945 0xB36D #HANGUL SYLLABLE TIKEUT EO THIEUTH +0x8946 0xB36F #HANGUL SYLLABLE TIKEUT EO HIEUH +0x8947 0xB372 #HANGUL SYLLABLE TIKEUT E SSANGKIYEOK +0x8948 0xB373 #HANGUL SYLLABLE TIKEUT E KIYEOKSIOS +0x8949 0xB375 #HANGUL SYLLABLE TIKEUT E NIEUNCIEUC +0x894A 0xB376 #HANGUL SYLLABLE TIKEUT E NIEUNHIEUH +0x894B 0xB377 #HANGUL SYLLABLE TIKEUT E TIKEUT +0x894C 0xB379 #HANGUL SYLLABLE TIKEUT E RIEULKIYEOK +0x894D 0xB37A #HANGUL SYLLABLE TIKEUT E RIEULMIEUM +0x894E 0xB37B #HANGUL SYLLABLE TIKEUT E RIEULPIEUP +0x894F 0xB37C #HANGUL SYLLABLE TIKEUT E RIEULSIOS +0x8950 0xB37D #HANGUL SYLLABLE TIKEUT E RIEULTHIEUTH +0x8951 0xB37E #HANGUL SYLLABLE TIKEUT E RIEULPHIEUPH +0x8952 0xB37F #HANGUL SYLLABLE TIKEUT E RIEULHIEUH +0x8953 0xB382 #HANGUL SYLLABLE TIKEUT E PIEUPSIOS +0x8954 0xB386 #HANGUL SYLLABLE TIKEUT E CIEUC +0x8955 0xB387 #HANGUL SYLLABLE TIKEUT E CHIEUCH +0x8956 0xB388 #HANGUL SYLLABLE TIKEUT E KHIEUKH +0x8957 0xB389 #HANGUL SYLLABLE TIKEUT E THIEUTH +0x8958 0xB38A #HANGUL SYLLABLE TIKEUT E PHIEUPH +0x8959 0xB38B #HANGUL SYLLABLE TIKEUT E HIEUH +0x895A 0xB38D #HANGUL SYLLABLE TIKEUT YEO KIYEOK +0x8961 0xB38E #HANGUL SYLLABLE TIKEUT YEO SSANGKIYEOK +0x8962 0xB38F #HANGUL SYLLABLE TIKEUT YEO KIYEOKSIOS +0x8963 0xB391 #HANGUL SYLLABLE TIKEUT YEO NIEUNCIEUC +0x8964 0xB392 #HANGUL SYLLABLE TIKEUT YEO NIEUNHIEUH +0x8965 0xB393 #HANGUL SYLLABLE TIKEUT YEO TIKEUT +0x8966 0xB395 #HANGUL SYLLABLE TIKEUT YEO RIEULKIYEOK +0x8967 0xB396 #HANGUL SYLLABLE TIKEUT YEO RIEULMIEUM +0x8968 0xB397 #HANGUL SYLLABLE TIKEUT YEO RIEULPIEUP +0x8969 0xB398 #HANGUL SYLLABLE TIKEUT YEO RIEULSIOS +0x896A 0xB399 #HANGUL SYLLABLE TIKEUT YEO RIEULTHIEUTH +0x896B 0xB39A #HANGUL SYLLABLE TIKEUT YEO RIEULPHIEUPH +0x896C 0xB39B #HANGUL SYLLABLE TIKEUT YEO RIEULHIEUH +0x896D 0xB39C #HANGUL SYLLABLE TIKEUT YEO MIEUM +0x896E 0xB39D #HANGUL SYLLABLE TIKEUT YEO PIEUP +0x896F 0xB39E #HANGUL SYLLABLE TIKEUT YEO PIEUPSIOS +0x8970 0xB39F #HANGUL SYLLABLE TIKEUT YEO SIOS +0x8971 0xB3A2 #HANGUL SYLLABLE TIKEUT YEO CIEUC +0x8972 0xB3A3 #HANGUL SYLLABLE TIKEUT YEO CHIEUCH +0x8973 0xB3A4 #HANGUL SYLLABLE TIKEUT YEO KHIEUKH +0x8974 0xB3A5 #HANGUL SYLLABLE TIKEUT YEO THIEUTH +0x8975 0xB3A6 #HANGUL SYLLABLE TIKEUT YEO PHIEUPH +0x8976 0xB3A7 #HANGUL SYLLABLE TIKEUT YEO HIEUH +0x8977 0xB3A9 #HANGUL SYLLABLE TIKEUT YE KIYEOK +0x8978 0xB3AA #HANGUL SYLLABLE TIKEUT YE SSANGKIYEOK +0x8979 0xB3AB #HANGUL SYLLABLE TIKEUT YE KIYEOKSIOS +0x897A 0xB3AD #HANGUL SYLLABLE TIKEUT YE NIEUNCIEUC +0x8981 0xB3AE #HANGUL SYLLABLE TIKEUT YE NIEUNHIEUH +0x8982 0xB3AF #HANGUL SYLLABLE TIKEUT YE TIKEUT +0x8983 0xB3B0 #HANGUL SYLLABLE TIKEUT YE RIEUL +0x8984 0xB3B1 #HANGUL SYLLABLE TIKEUT YE RIEULKIYEOK +0x8985 0xB3B2 #HANGUL SYLLABLE TIKEUT YE RIEULMIEUM +0x8986 0xB3B3 #HANGUL SYLLABLE TIKEUT YE RIEULPIEUP +0x8987 0xB3B4 #HANGUL SYLLABLE TIKEUT YE RIEULSIOS +0x8988 0xB3B5 #HANGUL SYLLABLE TIKEUT YE RIEULTHIEUTH +0x8989 0xB3B6 #HANGUL SYLLABLE TIKEUT YE RIEULPHIEUPH +0x898A 0xB3B7 #HANGUL SYLLABLE TIKEUT YE RIEULHIEUH +0x898B 0xB3B8 #HANGUL SYLLABLE TIKEUT YE MIEUM +0x898C 0xB3B9 #HANGUL SYLLABLE TIKEUT YE PIEUP +0x898D 0xB3BA #HANGUL SYLLABLE TIKEUT YE PIEUPSIOS +0x898E 0xB3BB #HANGUL SYLLABLE TIKEUT YE SIOS +0x898F 0xB3BC #HANGUL SYLLABLE TIKEUT YE SSANGSIOS +0x8990 0xB3BD #HANGUL SYLLABLE TIKEUT YE IEUNG +0x8991 0xB3BE #HANGUL SYLLABLE TIKEUT YE CIEUC +0x8992 0xB3BF #HANGUL SYLLABLE TIKEUT YE CHIEUCH +0x8993 0xB3C0 #HANGUL SYLLABLE TIKEUT YE KHIEUKH +0x8994 0xB3C1 #HANGUL SYLLABLE TIKEUT YE THIEUTH +0x8995 0xB3C2 #HANGUL SYLLABLE TIKEUT YE PHIEUPH +0x8996 0xB3C3 #HANGUL SYLLABLE TIKEUT YE HIEUH +0x8997 0xB3C6 #HANGUL SYLLABLE TIKEUT O SSANGKIYEOK +0x8998 0xB3C7 #HANGUL SYLLABLE TIKEUT O KIYEOKSIOS +0x8999 0xB3C9 #HANGUL SYLLABLE TIKEUT O NIEUNCIEUC +0x899A 0xB3CA #HANGUL SYLLABLE TIKEUT O NIEUNHIEUH +0x899B 0xB3CD #HANGUL SYLLABLE TIKEUT O RIEULKIYEOK +0x899C 0xB3CF #HANGUL SYLLABLE TIKEUT O RIEULPIEUP +0x899D 0xB3D1 #HANGUL SYLLABLE TIKEUT O RIEULTHIEUTH +0x899E 0xB3D2 #HANGUL SYLLABLE TIKEUT O RIEULPHIEUPH +0x899F 0xB3D3 #HANGUL SYLLABLE TIKEUT O RIEULHIEUH +0x89A0 0xB3D6 #HANGUL SYLLABLE TIKEUT O PIEUPSIOS +0x89A1 0xB3D8 #HANGUL SYLLABLE TIKEUT O SSANGSIOS +0x89A2 0xB3DA #HANGUL SYLLABLE TIKEUT O CIEUC +0x89A3 0xB3DC #HANGUL SYLLABLE TIKEUT O KHIEUKH +0x89A4 0xB3DE #HANGUL SYLLABLE TIKEUT O PHIEUPH +0x89A5 0xB3DF #HANGUL SYLLABLE TIKEUT O HIEUH +0x89A6 0xB3E1 #HANGUL SYLLABLE TIKEUT WA KIYEOK +0x89A7 0xB3E2 #HANGUL SYLLABLE TIKEUT WA SSANGKIYEOK +0x89A8 0xB3E3 #HANGUL SYLLABLE TIKEUT WA KIYEOKSIOS +0x89A9 0xB3E5 #HANGUL SYLLABLE TIKEUT WA NIEUNCIEUC +0x89AA 0xB3E6 #HANGUL SYLLABLE TIKEUT WA NIEUNHIEUH +0x89AB 0xB3E7 #HANGUL SYLLABLE TIKEUT WA TIKEUT +0x89AC 0xB3E9 #HANGUL SYLLABLE TIKEUT WA RIEULKIYEOK +0x89AD 0xB3EA #HANGUL SYLLABLE TIKEUT WA RIEULMIEUM +0x89AE 0xB3EB #HANGUL SYLLABLE TIKEUT WA RIEULPIEUP +0x89AF 0xB3EC #HANGUL SYLLABLE TIKEUT WA RIEULSIOS +0x89B0 0xB3ED #HANGUL SYLLABLE TIKEUT WA RIEULTHIEUTH +0x89B1 0xB3EE #HANGUL SYLLABLE TIKEUT WA RIEULPHIEUPH +0x89B2 0xB3EF #HANGUL SYLLABLE TIKEUT WA RIEULHIEUH +0x89B3 0xB3F0 #HANGUL SYLLABLE TIKEUT WA MIEUM +0x89B4 0xB3F1 #HANGUL SYLLABLE TIKEUT WA PIEUP +0x89B5 0xB3F2 #HANGUL SYLLABLE TIKEUT WA PIEUPSIOS +0x89B6 0xB3F3 #HANGUL SYLLABLE TIKEUT WA SIOS +0x89B7 0xB3F4 #HANGUL SYLLABLE TIKEUT WA SSANGSIOS +0x89B8 0xB3F5 #HANGUL SYLLABLE TIKEUT WA IEUNG +0x89B9 0xB3F6 #HANGUL SYLLABLE TIKEUT WA CIEUC +0x89BA 0xB3F7 #HANGUL SYLLABLE TIKEUT WA CHIEUCH +0x89BB 0xB3F8 #HANGUL SYLLABLE TIKEUT WA KHIEUKH +0x89BC 0xB3F9 #HANGUL SYLLABLE TIKEUT WA THIEUTH +0x89BD 0xB3FA #HANGUL SYLLABLE TIKEUT WA PHIEUPH +0x89BE 0xB3FB #HANGUL SYLLABLE TIKEUT WA HIEUH +0x89BF 0xB3FD #HANGUL SYLLABLE TIKEUT WAE KIYEOK +0x89C0 0xB3FE #HANGUL SYLLABLE TIKEUT WAE SSANGKIYEOK +0x89C1 0xB3FF #HANGUL SYLLABLE TIKEUT WAE KIYEOKSIOS +0x89C2 0xB400 #HANGUL SYLLABLE TIKEUT WAE NIEUN +0x89C3 0xB401 #HANGUL SYLLABLE TIKEUT WAE NIEUNCIEUC +0x89C4 0xB402 #HANGUL SYLLABLE TIKEUT WAE NIEUNHIEUH +0x89C5 0xB403 #HANGUL SYLLABLE TIKEUT WAE TIKEUT +0x89C6 0xB404 #HANGUL SYLLABLE TIKEUT WAE RIEUL +0x89C7 0xB405 #HANGUL SYLLABLE TIKEUT WAE RIEULKIYEOK +0x89C8 0xB406 #HANGUL SYLLABLE TIKEUT WAE RIEULMIEUM +0x89C9 0xB407 #HANGUL SYLLABLE TIKEUT WAE RIEULPIEUP +0x89CA 0xB408 #HANGUL SYLLABLE TIKEUT WAE RIEULSIOS +0x89CB 0xB409 #HANGUL SYLLABLE TIKEUT WAE RIEULTHIEUTH +0x89CC 0xB40A #HANGUL SYLLABLE TIKEUT WAE RIEULPHIEUPH +0x89CD 0xB40B #HANGUL SYLLABLE TIKEUT WAE RIEULHIEUH +0x89CE 0xB40C #HANGUL SYLLABLE TIKEUT WAE MIEUM +0x89CF 0xB40D #HANGUL SYLLABLE TIKEUT WAE PIEUP +0x89D0 0xB40E #HANGUL SYLLABLE TIKEUT WAE PIEUPSIOS +0x89D1 0xB40F #HANGUL SYLLABLE TIKEUT WAE SIOS +0x89D2 0xB411 #HANGUL SYLLABLE TIKEUT WAE IEUNG +0x89D3 0xB412 #HANGUL SYLLABLE TIKEUT WAE CIEUC +0x89D4 0xB413 #HANGUL SYLLABLE TIKEUT WAE CHIEUCH +0x89D5 0xB414 #HANGUL SYLLABLE TIKEUT WAE KHIEUKH +0x89D6 0xB415 #HANGUL SYLLABLE TIKEUT WAE THIEUTH +0x89D7 0xB416 #HANGUL SYLLABLE TIKEUT WAE PHIEUPH +0x89D8 0xB417 #HANGUL SYLLABLE TIKEUT WAE HIEUH +0x89D9 0xB419 #HANGUL SYLLABLE TIKEUT OE KIYEOK +0x89DA 0xB41A #HANGUL SYLLABLE TIKEUT OE SSANGKIYEOK +0x89DB 0xB41B #HANGUL SYLLABLE TIKEUT OE KIYEOKSIOS +0x89DC 0xB41D #HANGUL SYLLABLE TIKEUT OE NIEUNCIEUC +0x89DD 0xB41E #HANGUL SYLLABLE TIKEUT OE NIEUNHIEUH +0x89DE 0xB41F #HANGUL SYLLABLE TIKEUT OE TIKEUT +0x89DF 0xB421 #HANGUL SYLLABLE TIKEUT OE RIEULKIYEOK +0x89E0 0xB422 #HANGUL SYLLABLE TIKEUT OE RIEULMIEUM +0x89E1 0xB423 #HANGUL SYLLABLE TIKEUT OE RIEULPIEUP +0x89E2 0xB424 #HANGUL SYLLABLE TIKEUT OE RIEULSIOS +0x89E3 0xB425 #HANGUL SYLLABLE TIKEUT OE RIEULTHIEUTH +0x89E4 0xB426 #HANGUL SYLLABLE TIKEUT OE RIEULPHIEUPH +0x89E5 0xB427 #HANGUL SYLLABLE TIKEUT OE RIEULHIEUH +0x89E6 0xB42A #HANGUL SYLLABLE TIKEUT OE PIEUPSIOS +0x89E7 0xB42C #HANGUL SYLLABLE TIKEUT OE SSANGSIOS +0x89E8 0xB42D #HANGUL SYLLABLE TIKEUT OE IEUNG +0x89E9 0xB42E #HANGUL SYLLABLE TIKEUT OE CIEUC +0x89EA 0xB42F #HANGUL SYLLABLE TIKEUT OE CHIEUCH +0x89EB 0xB430 #HANGUL SYLLABLE TIKEUT OE KHIEUKH +0x89EC 0xB431 #HANGUL SYLLABLE TIKEUT OE THIEUTH +0x89ED 0xB432 #HANGUL SYLLABLE TIKEUT OE PHIEUPH +0x89EE 0xB433 #HANGUL SYLLABLE TIKEUT OE HIEUH +0x89EF 0xB435 #HANGUL SYLLABLE TIKEUT YO KIYEOK +0x89F0 0xB436 #HANGUL SYLLABLE TIKEUT YO SSANGKIYEOK +0x89F1 0xB437 #HANGUL SYLLABLE TIKEUT YO KIYEOKSIOS +0x89F2 0xB438 #HANGUL SYLLABLE TIKEUT YO NIEUN +0x89F3 0xB439 #HANGUL SYLLABLE TIKEUT YO NIEUNCIEUC +0x89F4 0xB43A #HANGUL SYLLABLE TIKEUT YO NIEUNHIEUH +0x89F5 0xB43B #HANGUL SYLLABLE TIKEUT YO TIKEUT +0x89F6 0xB43C #HANGUL SYLLABLE TIKEUT YO RIEUL +0x89F7 0xB43D #HANGUL SYLLABLE TIKEUT YO RIEULKIYEOK +0x89F8 0xB43E #HANGUL SYLLABLE TIKEUT YO RIEULMIEUM +0x89F9 0xB43F #HANGUL SYLLABLE TIKEUT YO RIEULPIEUP +0x89FA 0xB440 #HANGUL SYLLABLE TIKEUT YO RIEULSIOS +0x89FB 0xB441 #HANGUL SYLLABLE TIKEUT YO RIEULTHIEUTH +0x89FC 0xB442 #HANGUL SYLLABLE TIKEUT YO RIEULPHIEUPH +0x89FD 0xB443 #HANGUL SYLLABLE TIKEUT YO RIEULHIEUH +0x89FE 0xB444 #HANGUL SYLLABLE TIKEUT YO MIEUM +0x8A41 0xB445 #HANGUL SYLLABLE TIKEUT YO PIEUP +0x8A42 0xB446 #HANGUL SYLLABLE TIKEUT YO PIEUPSIOS +0x8A43 0xB447 #HANGUL SYLLABLE TIKEUT YO SIOS +0x8A44 0xB448 #HANGUL SYLLABLE TIKEUT YO SSANGSIOS +0x8A45 0xB449 #HANGUL SYLLABLE TIKEUT YO IEUNG +0x8A46 0xB44A #HANGUL SYLLABLE TIKEUT YO CIEUC +0x8A47 0xB44B #HANGUL SYLLABLE TIKEUT YO CHIEUCH +0x8A48 0xB44C #HANGUL SYLLABLE TIKEUT YO KHIEUKH +0x8A49 0xB44D #HANGUL SYLLABLE TIKEUT YO THIEUTH +0x8A4A 0xB44E #HANGUL SYLLABLE TIKEUT YO PHIEUPH +0x8A4B 0xB44F #HANGUL SYLLABLE TIKEUT YO HIEUH +0x8A4C 0xB452 #HANGUL SYLLABLE TIKEUT U SSANGKIYEOK +0x8A4D 0xB453 #HANGUL SYLLABLE TIKEUT U KIYEOKSIOS +0x8A4E 0xB455 #HANGUL SYLLABLE TIKEUT U NIEUNCIEUC +0x8A4F 0xB456 #HANGUL SYLLABLE TIKEUT U NIEUNHIEUH +0x8A50 0xB457 #HANGUL SYLLABLE TIKEUT U TIKEUT +0x8A51 0xB459 #HANGUL SYLLABLE TIKEUT U RIEULKIYEOK +0x8A52 0xB45A #HANGUL SYLLABLE TIKEUT U RIEULMIEUM +0x8A53 0xB45B #HANGUL SYLLABLE TIKEUT U RIEULPIEUP +0x8A54 0xB45C #HANGUL SYLLABLE TIKEUT U RIEULSIOS +0x8A55 0xB45D #HANGUL SYLLABLE TIKEUT U RIEULTHIEUTH +0x8A56 0xB45E #HANGUL SYLLABLE TIKEUT U RIEULPHIEUPH +0x8A57 0xB45F #HANGUL SYLLABLE TIKEUT U RIEULHIEUH +0x8A58 0xB462 #HANGUL SYLLABLE TIKEUT U PIEUPSIOS +0x8A59 0xB464 #HANGUL SYLLABLE TIKEUT U SSANGSIOS +0x8A5A 0xB466 #HANGUL SYLLABLE TIKEUT U CIEUC +0x8A61 0xB467 #HANGUL SYLLABLE TIKEUT U CHIEUCH +0x8A62 0xB468 #HANGUL SYLLABLE TIKEUT U KHIEUKH +0x8A63 0xB469 #HANGUL SYLLABLE TIKEUT U THIEUTH +0x8A64 0xB46A #HANGUL SYLLABLE TIKEUT U PHIEUPH +0x8A65 0xB46B #HANGUL SYLLABLE TIKEUT U HIEUH +0x8A66 0xB46D #HANGUL SYLLABLE TIKEUT WEO KIYEOK +0x8A67 0xB46E #HANGUL SYLLABLE TIKEUT WEO SSANGKIYEOK +0x8A68 0xB46F #HANGUL SYLLABLE TIKEUT WEO KIYEOKSIOS +0x8A69 0xB470 #HANGUL SYLLABLE TIKEUT WEO NIEUN +0x8A6A 0xB471 #HANGUL SYLLABLE TIKEUT WEO NIEUNCIEUC +0x8A6B 0xB472 #HANGUL SYLLABLE TIKEUT WEO NIEUNHIEUH +0x8A6C 0xB473 #HANGUL SYLLABLE TIKEUT WEO TIKEUT +0x8A6D 0xB474 #HANGUL SYLLABLE TIKEUT WEO RIEUL +0x8A6E 0xB475 #HANGUL SYLLABLE TIKEUT WEO RIEULKIYEOK +0x8A6F 0xB476 #HANGUL SYLLABLE TIKEUT WEO RIEULMIEUM +0x8A70 0xB477 #HANGUL SYLLABLE TIKEUT WEO RIEULPIEUP +0x8A71 0xB478 #HANGUL SYLLABLE TIKEUT WEO RIEULSIOS +0x8A72 0xB479 #HANGUL SYLLABLE TIKEUT WEO RIEULTHIEUTH +0x8A73 0xB47A #HANGUL SYLLABLE TIKEUT WEO RIEULPHIEUPH +0x8A74 0xB47B #HANGUL SYLLABLE TIKEUT WEO RIEULHIEUH +0x8A75 0xB47C #HANGUL SYLLABLE TIKEUT WEO MIEUM +0x8A76 0xB47D #HANGUL SYLLABLE TIKEUT WEO PIEUP +0x8A77 0xB47E #HANGUL SYLLABLE TIKEUT WEO PIEUPSIOS +0x8A78 0xB47F #HANGUL SYLLABLE TIKEUT WEO SIOS +0x8A79 0xB481 #HANGUL SYLLABLE TIKEUT WEO IEUNG +0x8A7A 0xB482 #HANGUL SYLLABLE TIKEUT WEO CIEUC +0x8A81 0xB483 #HANGUL SYLLABLE TIKEUT WEO CHIEUCH +0x8A82 0xB484 #HANGUL SYLLABLE TIKEUT WEO KHIEUKH +0x8A83 0xB485 #HANGUL SYLLABLE TIKEUT WEO THIEUTH +0x8A84 0xB486 #HANGUL SYLLABLE TIKEUT WEO PHIEUPH +0x8A85 0xB487 #HANGUL SYLLABLE TIKEUT WEO HIEUH +0x8A86 0xB489 #HANGUL SYLLABLE TIKEUT WE KIYEOK +0x8A87 0xB48A #HANGUL SYLLABLE TIKEUT WE SSANGKIYEOK +0x8A88 0xB48B #HANGUL SYLLABLE TIKEUT WE KIYEOKSIOS +0x8A89 0xB48C #HANGUL SYLLABLE TIKEUT WE NIEUN +0x8A8A 0xB48D #HANGUL SYLLABLE TIKEUT WE NIEUNCIEUC +0x8A8B 0xB48E #HANGUL SYLLABLE TIKEUT WE NIEUNHIEUH +0x8A8C 0xB48F #HANGUL SYLLABLE TIKEUT WE TIKEUT +0x8A8D 0xB490 #HANGUL SYLLABLE TIKEUT WE RIEUL +0x8A8E 0xB491 #HANGUL SYLLABLE TIKEUT WE RIEULKIYEOK +0x8A8F 0xB492 #HANGUL SYLLABLE TIKEUT WE RIEULMIEUM +0x8A90 0xB493 #HANGUL SYLLABLE TIKEUT WE RIEULPIEUP +0x8A91 0xB494 #HANGUL SYLLABLE TIKEUT WE RIEULSIOS +0x8A92 0xB495 #HANGUL SYLLABLE TIKEUT WE RIEULTHIEUTH +0x8A93 0xB496 #HANGUL SYLLABLE TIKEUT WE RIEULPHIEUPH +0x8A94 0xB497 #HANGUL SYLLABLE TIKEUT WE RIEULHIEUH +0x8A95 0xB498 #HANGUL SYLLABLE TIKEUT WE MIEUM +0x8A96 0xB499 #HANGUL SYLLABLE TIKEUT WE PIEUP +0x8A97 0xB49A #HANGUL SYLLABLE TIKEUT WE PIEUPSIOS +0x8A98 0xB49B #HANGUL SYLLABLE TIKEUT WE SIOS +0x8A99 0xB49C #HANGUL SYLLABLE TIKEUT WE SSANGSIOS +0x8A9A 0xB49E #HANGUL SYLLABLE TIKEUT WE CIEUC +0x8A9B 0xB49F #HANGUL SYLLABLE TIKEUT WE CHIEUCH +0x8A9C 0xB4A0 #HANGUL SYLLABLE TIKEUT WE KHIEUKH +0x8A9D 0xB4A1 #HANGUL SYLLABLE TIKEUT WE THIEUTH +0x8A9E 0xB4A2 #HANGUL SYLLABLE TIKEUT WE PHIEUPH +0x8A9F 0xB4A3 #HANGUL SYLLABLE TIKEUT WE HIEUH +0x8AA0 0xB4A5 #HANGUL SYLLABLE TIKEUT WI KIYEOK +0x8AA1 0xB4A6 #HANGUL SYLLABLE TIKEUT WI SSANGKIYEOK +0x8AA2 0xB4A7 #HANGUL SYLLABLE TIKEUT WI KIYEOKSIOS +0x8AA3 0xB4A9 #HANGUL SYLLABLE TIKEUT WI NIEUNCIEUC +0x8AA4 0xB4AA #HANGUL SYLLABLE TIKEUT WI NIEUNHIEUH +0x8AA5 0xB4AB #HANGUL SYLLABLE TIKEUT WI TIKEUT +0x8AA6 0xB4AD #HANGUL SYLLABLE TIKEUT WI RIEULKIYEOK +0x8AA7 0xB4AE #HANGUL SYLLABLE TIKEUT WI RIEULMIEUM +0x8AA8 0xB4AF #HANGUL SYLLABLE TIKEUT WI RIEULPIEUP +0x8AA9 0xB4B0 #HANGUL SYLLABLE TIKEUT WI RIEULSIOS +0x8AAA 0xB4B1 #HANGUL SYLLABLE TIKEUT WI RIEULTHIEUTH +0x8AAB 0xB4B2 #HANGUL SYLLABLE TIKEUT WI RIEULPHIEUPH +0x8AAC 0xB4B3 #HANGUL SYLLABLE TIKEUT WI RIEULHIEUH +0x8AAD 0xB4B4 #HANGUL SYLLABLE TIKEUT WI MIEUM +0x8AAE 0xB4B6 #HANGUL SYLLABLE TIKEUT WI PIEUPSIOS +0x8AAF 0xB4B8 #HANGUL SYLLABLE TIKEUT WI SSANGSIOS +0x8AB0 0xB4BA #HANGUL SYLLABLE TIKEUT WI CIEUC +0x8AB1 0xB4BB #HANGUL SYLLABLE TIKEUT WI CHIEUCH +0x8AB2 0xB4BC #HANGUL SYLLABLE TIKEUT WI KHIEUKH +0x8AB3 0xB4BD #HANGUL SYLLABLE TIKEUT WI THIEUTH +0x8AB4 0xB4BE #HANGUL SYLLABLE TIKEUT WI PHIEUPH +0x8AB5 0xB4BF #HANGUL SYLLABLE TIKEUT WI HIEUH +0x8AB6 0xB4C1 #HANGUL SYLLABLE TIKEUT YU KIYEOK +0x8AB7 0xB4C2 #HANGUL SYLLABLE TIKEUT YU SSANGKIYEOK +0x8AB8 0xB4C3 #HANGUL SYLLABLE TIKEUT YU KIYEOKSIOS +0x8AB9 0xB4C5 #HANGUL SYLLABLE TIKEUT YU NIEUNCIEUC +0x8ABA 0xB4C6 #HANGUL SYLLABLE TIKEUT YU NIEUNHIEUH +0x8ABB 0xB4C7 #HANGUL SYLLABLE TIKEUT YU TIKEUT +0x8ABC 0xB4C9 #HANGUL SYLLABLE TIKEUT YU RIEULKIYEOK +0x8ABD 0xB4CA #HANGUL SYLLABLE TIKEUT YU RIEULMIEUM +0x8ABE 0xB4CB #HANGUL SYLLABLE TIKEUT YU RIEULPIEUP +0x8ABF 0xB4CC #HANGUL SYLLABLE TIKEUT YU RIEULSIOS +0x8AC0 0xB4CD #HANGUL SYLLABLE TIKEUT YU RIEULTHIEUTH +0x8AC1 0xB4CE #HANGUL SYLLABLE TIKEUT YU RIEULPHIEUPH +0x8AC2 0xB4CF #HANGUL SYLLABLE TIKEUT YU RIEULHIEUH +0x8AC3 0xB4D1 #HANGUL SYLLABLE TIKEUT YU PIEUP +0x8AC4 0xB4D2 #HANGUL SYLLABLE TIKEUT YU PIEUPSIOS +0x8AC5 0xB4D3 #HANGUL SYLLABLE TIKEUT YU SIOS +0x8AC6 0xB4D4 #HANGUL SYLLABLE TIKEUT YU SSANGSIOS +0x8AC7 0xB4D6 #HANGUL SYLLABLE TIKEUT YU CIEUC +0x8AC8 0xB4D7 #HANGUL SYLLABLE TIKEUT YU CHIEUCH +0x8AC9 0xB4D8 #HANGUL SYLLABLE TIKEUT YU KHIEUKH +0x8ACA 0xB4D9 #HANGUL SYLLABLE TIKEUT YU THIEUTH +0x8ACB 0xB4DA #HANGUL SYLLABLE TIKEUT YU PHIEUPH +0x8ACC 0xB4DB #HANGUL SYLLABLE TIKEUT YU HIEUH +0x8ACD 0xB4DE #HANGUL SYLLABLE TIKEUT EU SSANGKIYEOK +0x8ACE 0xB4DF #HANGUL SYLLABLE TIKEUT EU KIYEOKSIOS +0x8ACF 0xB4E1 #HANGUL SYLLABLE TIKEUT EU NIEUNCIEUC +0x8AD0 0xB4E2 #HANGUL SYLLABLE TIKEUT EU NIEUNHIEUH +0x8AD1 0xB4E5 #HANGUL SYLLABLE TIKEUT EU RIEULKIYEOK +0x8AD2 0xB4E7 #HANGUL SYLLABLE TIKEUT EU RIEULPIEUP +0x8AD3 0xB4E8 #HANGUL SYLLABLE TIKEUT EU RIEULSIOS +0x8AD4 0xB4E9 #HANGUL SYLLABLE TIKEUT EU RIEULTHIEUTH +0x8AD5 0xB4EA #HANGUL SYLLABLE TIKEUT EU RIEULPHIEUPH +0x8AD6 0xB4EB #HANGUL SYLLABLE TIKEUT EU RIEULHIEUH +0x8AD7 0xB4EE #HANGUL SYLLABLE TIKEUT EU PIEUPSIOS +0x8AD8 0xB4F0 #HANGUL SYLLABLE TIKEUT EU SSANGSIOS +0x8AD9 0xB4F2 #HANGUL SYLLABLE TIKEUT EU CIEUC +0x8ADA 0xB4F3 #HANGUL SYLLABLE TIKEUT EU CHIEUCH +0x8ADB 0xB4F4 #HANGUL SYLLABLE TIKEUT EU KHIEUKH +0x8ADC 0xB4F5 #HANGUL SYLLABLE TIKEUT EU THIEUTH +0x8ADD 0xB4F6 #HANGUL SYLLABLE TIKEUT EU PHIEUPH +0x8ADE 0xB4F7 #HANGUL SYLLABLE TIKEUT EU HIEUH +0x8ADF 0xB4F9 #HANGUL SYLLABLE TIKEUT YI KIYEOK +0x8AE0 0xB4FA #HANGUL SYLLABLE TIKEUT YI SSANGKIYEOK +0x8AE1 0xB4FB #HANGUL SYLLABLE TIKEUT YI KIYEOKSIOS +0x8AE2 0xB4FC #HANGUL SYLLABLE TIKEUT YI NIEUN +0x8AE3 0xB4FD #HANGUL SYLLABLE TIKEUT YI NIEUNCIEUC +0x8AE4 0xB4FE #HANGUL SYLLABLE TIKEUT YI NIEUNHIEUH +0x8AE5 0xB4FF #HANGUL SYLLABLE TIKEUT YI TIKEUT +0x8AE6 0xB500 #HANGUL SYLLABLE TIKEUT YI RIEUL +0x8AE7 0xB501 #HANGUL SYLLABLE TIKEUT YI RIEULKIYEOK +0x8AE8 0xB502 #HANGUL SYLLABLE TIKEUT YI RIEULMIEUM +0x8AE9 0xB503 #HANGUL SYLLABLE TIKEUT YI RIEULPIEUP +0x8AEA 0xB504 #HANGUL SYLLABLE TIKEUT YI RIEULSIOS +0x8AEB 0xB505 #HANGUL SYLLABLE TIKEUT YI RIEULTHIEUTH +0x8AEC 0xB506 #HANGUL SYLLABLE TIKEUT YI RIEULPHIEUPH +0x8AED 0xB507 #HANGUL SYLLABLE TIKEUT YI RIEULHIEUH +0x8AEE 0xB508 #HANGUL SYLLABLE TIKEUT YI MIEUM +0x8AEF 0xB509 #HANGUL SYLLABLE TIKEUT YI PIEUP +0x8AF0 0xB50A #HANGUL SYLLABLE TIKEUT YI PIEUPSIOS +0x8AF1 0xB50B #HANGUL SYLLABLE TIKEUT YI SIOS +0x8AF2 0xB50C #HANGUL SYLLABLE TIKEUT YI SSANGSIOS +0x8AF3 0xB50D #HANGUL SYLLABLE TIKEUT YI IEUNG +0x8AF4 0xB50E #HANGUL SYLLABLE TIKEUT YI CIEUC +0x8AF5 0xB50F #HANGUL SYLLABLE TIKEUT YI CHIEUCH +0x8AF6 0xB510 #HANGUL SYLLABLE TIKEUT YI KHIEUKH +0x8AF7 0xB511 #HANGUL SYLLABLE TIKEUT YI THIEUTH +0x8AF8 0xB512 #HANGUL SYLLABLE TIKEUT YI PHIEUPH +0x8AF9 0xB513 #HANGUL SYLLABLE TIKEUT YI HIEUH +0x8AFA 0xB516 #HANGUL SYLLABLE TIKEUT I SSANGKIYEOK +0x8AFB 0xB517 #HANGUL SYLLABLE TIKEUT I KIYEOKSIOS +0x8AFC 0xB519 #HANGUL SYLLABLE TIKEUT I NIEUNCIEUC +0x8AFD 0xB51A #HANGUL SYLLABLE TIKEUT I NIEUNHIEUH +0x8AFE 0xB51D #HANGUL SYLLABLE TIKEUT I RIEULKIYEOK +0x8B41 0xB51E #HANGUL SYLLABLE TIKEUT I RIEULMIEUM +0x8B42 0xB51F #HANGUL SYLLABLE TIKEUT I RIEULPIEUP +0x8B43 0xB520 #HANGUL SYLLABLE TIKEUT I RIEULSIOS +0x8B44 0xB521 #HANGUL SYLLABLE TIKEUT I RIEULTHIEUTH +0x8B45 0xB522 #HANGUL SYLLABLE TIKEUT I RIEULPHIEUPH +0x8B46 0xB523 #HANGUL SYLLABLE TIKEUT I RIEULHIEUH +0x8B47 0xB526 #HANGUL SYLLABLE TIKEUT I PIEUPSIOS +0x8B48 0xB52B #HANGUL SYLLABLE TIKEUT I CHIEUCH +0x8B49 0xB52C #HANGUL SYLLABLE TIKEUT I KHIEUKH +0x8B4A 0xB52D #HANGUL SYLLABLE TIKEUT I THIEUTH +0x8B4B 0xB52E #HANGUL SYLLABLE TIKEUT I PHIEUPH +0x8B4C 0xB52F #HANGUL SYLLABLE TIKEUT I HIEUH +0x8B4D 0xB532 #HANGUL SYLLABLE SSANGTIKEUT A SSANGKIYEOK +0x8B4E 0xB533 #HANGUL SYLLABLE SSANGTIKEUT A KIYEOKSIOS +0x8B4F 0xB535 #HANGUL SYLLABLE SSANGTIKEUT A NIEUNCIEUC +0x8B50 0xB536 #HANGUL SYLLABLE SSANGTIKEUT A NIEUNHIEUH +0x8B51 0xB537 #HANGUL SYLLABLE SSANGTIKEUT A TIKEUT +0x8B52 0xB539 #HANGUL SYLLABLE SSANGTIKEUT A RIEULKIYEOK +0x8B53 0xB53A #HANGUL SYLLABLE SSANGTIKEUT A RIEULMIEUM +0x8B54 0xB53B #HANGUL SYLLABLE SSANGTIKEUT A RIEULPIEUP +0x8B55 0xB53C #HANGUL SYLLABLE SSANGTIKEUT A RIEULSIOS +0x8B56 0xB53D #HANGUL SYLLABLE SSANGTIKEUT A RIEULTHIEUTH +0x8B57 0xB53E #HANGUL SYLLABLE SSANGTIKEUT A RIEULPHIEUPH +0x8B58 0xB53F #HANGUL SYLLABLE SSANGTIKEUT A RIEULHIEUH +0x8B59 0xB542 #HANGUL SYLLABLE SSANGTIKEUT A PIEUPSIOS +0x8B5A 0xB546 #HANGUL SYLLABLE SSANGTIKEUT A CIEUC +0x8B61 0xB547 #HANGUL SYLLABLE SSANGTIKEUT A CHIEUCH +0x8B62 0xB548 #HANGUL SYLLABLE SSANGTIKEUT A KHIEUKH +0x8B63 0xB549 #HANGUL SYLLABLE SSANGTIKEUT A THIEUTH +0x8B64 0xB54A #HANGUL SYLLABLE SSANGTIKEUT A PHIEUPH +0x8B65 0xB54E #HANGUL SYLLABLE SSANGTIKEUT AE SSANGKIYEOK +0x8B66 0xB54F #HANGUL SYLLABLE SSANGTIKEUT AE KIYEOKSIOS +0x8B67 0xB551 #HANGUL SYLLABLE SSANGTIKEUT AE NIEUNCIEUC +0x8B68 0xB552 #HANGUL SYLLABLE SSANGTIKEUT AE NIEUNHIEUH +0x8B69 0xB553 #HANGUL SYLLABLE SSANGTIKEUT AE TIKEUT +0x8B6A 0xB555 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULKIYEOK +0x8B6B 0xB556 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULMIEUM +0x8B6C 0xB557 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULPIEUP +0x8B6D 0xB558 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULSIOS +0x8B6E 0xB559 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULTHIEUTH +0x8B6F 0xB55A #HANGUL SYLLABLE SSANGTIKEUT AE RIEULPHIEUPH +0x8B70 0xB55B #HANGUL SYLLABLE SSANGTIKEUT AE RIEULHIEUH +0x8B71 0xB55E #HANGUL SYLLABLE SSANGTIKEUT AE PIEUPSIOS +0x8B72 0xB562 #HANGUL SYLLABLE SSANGTIKEUT AE CIEUC +0x8B73 0xB563 #HANGUL SYLLABLE SSANGTIKEUT AE CHIEUCH +0x8B74 0xB564 #HANGUL SYLLABLE SSANGTIKEUT AE KHIEUKH +0x8B75 0xB565 #HANGUL SYLLABLE SSANGTIKEUT AE THIEUTH +0x8B76 0xB566 #HANGUL SYLLABLE SSANGTIKEUT AE PHIEUPH +0x8B77 0xB567 #HANGUL SYLLABLE SSANGTIKEUT AE HIEUH +0x8B78 0xB568 #HANGUL SYLLABLE SSANGTIKEUT YA +0x8B79 0xB569 #HANGUL SYLLABLE SSANGTIKEUT YA KIYEOK +0x8B7A 0xB56A #HANGUL SYLLABLE SSANGTIKEUT YA SSANGKIYEOK +0x8B81 0xB56B #HANGUL SYLLABLE SSANGTIKEUT YA KIYEOKSIOS +0x8B82 0xB56C #HANGUL SYLLABLE SSANGTIKEUT YA NIEUN +0x8B83 0xB56D #HANGUL SYLLABLE SSANGTIKEUT YA NIEUNCIEUC +0x8B84 0xB56E #HANGUL SYLLABLE SSANGTIKEUT YA NIEUNHIEUH +0x8B85 0xB56F #HANGUL SYLLABLE SSANGTIKEUT YA TIKEUT +0x8B86 0xB570 #HANGUL SYLLABLE SSANGTIKEUT YA RIEUL +0x8B87 0xB571 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULKIYEOK +0x8B88 0xB572 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULMIEUM +0x8B89 0xB573 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULPIEUP +0x8B8A 0xB574 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULSIOS +0x8B8B 0xB575 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULTHIEUTH +0x8B8C 0xB576 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULPHIEUPH +0x8B8D 0xB577 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULHIEUH +0x8B8E 0xB578 #HANGUL SYLLABLE SSANGTIKEUT YA MIEUM +0x8B8F 0xB579 #HANGUL SYLLABLE SSANGTIKEUT YA PIEUP +0x8B90 0xB57A #HANGUL SYLLABLE SSANGTIKEUT YA PIEUPSIOS +0x8B91 0xB57B #HANGUL SYLLABLE SSANGTIKEUT YA SIOS +0x8B92 0xB57C #HANGUL SYLLABLE SSANGTIKEUT YA SSANGSIOS +0x8B93 0xB57D #HANGUL SYLLABLE SSANGTIKEUT YA IEUNG +0x8B94 0xB57E #HANGUL SYLLABLE SSANGTIKEUT YA CIEUC +0x8B95 0xB57F #HANGUL SYLLABLE SSANGTIKEUT YA CHIEUCH +0x8B96 0xB580 #HANGUL SYLLABLE SSANGTIKEUT YA KHIEUKH +0x8B97 0xB581 #HANGUL SYLLABLE SSANGTIKEUT YA THIEUTH +0x8B98 0xB582 #HANGUL SYLLABLE SSANGTIKEUT YA PHIEUPH +0x8B99 0xB583 #HANGUL SYLLABLE SSANGTIKEUT YA HIEUH +0x8B9A 0xB584 #HANGUL SYLLABLE SSANGTIKEUT YAE +0x8B9B 0xB585 #HANGUL SYLLABLE SSANGTIKEUT YAE KIYEOK +0x8B9C 0xB586 #HANGUL SYLLABLE SSANGTIKEUT YAE SSANGKIYEOK +0x8B9D 0xB587 #HANGUL SYLLABLE SSANGTIKEUT YAE KIYEOKSIOS +0x8B9E 0xB588 #HANGUL SYLLABLE SSANGTIKEUT YAE NIEUN +0x8B9F 0xB589 #HANGUL SYLLABLE SSANGTIKEUT YAE NIEUNCIEUC +0x8BA0 0xB58A #HANGUL SYLLABLE SSANGTIKEUT YAE NIEUNHIEUH +0x8BA1 0xB58B #HANGUL SYLLABLE SSANGTIKEUT YAE TIKEUT +0x8BA2 0xB58C #HANGUL SYLLABLE SSANGTIKEUT YAE RIEUL +0x8BA3 0xB58D #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULKIYEOK +0x8BA4 0xB58E #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULMIEUM +0x8BA5 0xB58F #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULPIEUP +0x8BA6 0xB590 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULSIOS +0x8BA7 0xB591 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULTHIEUTH +0x8BA8 0xB592 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULPHIEUPH +0x8BA9 0xB593 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULHIEUH +0x8BAA 0xB594 #HANGUL SYLLABLE SSANGTIKEUT YAE MIEUM +0x8BAB 0xB595 #HANGUL SYLLABLE SSANGTIKEUT YAE PIEUP +0x8BAC 0xB596 #HANGUL SYLLABLE SSANGTIKEUT YAE PIEUPSIOS +0x8BAD 0xB597 #HANGUL SYLLABLE SSANGTIKEUT YAE SIOS +0x8BAE 0xB598 #HANGUL SYLLABLE SSANGTIKEUT YAE SSANGSIOS +0x8BAF 0xB599 #HANGUL SYLLABLE SSANGTIKEUT YAE IEUNG +0x8BB0 0xB59A #HANGUL SYLLABLE SSANGTIKEUT YAE CIEUC +0x8BB1 0xB59B #HANGUL SYLLABLE SSANGTIKEUT YAE CHIEUCH +0x8BB2 0xB59C #HANGUL SYLLABLE SSANGTIKEUT YAE KHIEUKH +0x8BB3 0xB59D #HANGUL SYLLABLE SSANGTIKEUT YAE THIEUTH +0x8BB4 0xB59E #HANGUL SYLLABLE SSANGTIKEUT YAE PHIEUPH +0x8BB5 0xB59F #HANGUL SYLLABLE SSANGTIKEUT YAE HIEUH +0x8BB6 0xB5A2 #HANGUL SYLLABLE SSANGTIKEUT EO SSANGKIYEOK +0x8BB7 0xB5A3 #HANGUL SYLLABLE SSANGTIKEUT EO KIYEOKSIOS +0x8BB8 0xB5A5 #HANGUL SYLLABLE SSANGTIKEUT EO NIEUNCIEUC +0x8BB9 0xB5A6 #HANGUL SYLLABLE SSANGTIKEUT EO NIEUNHIEUH +0x8BBA 0xB5A7 #HANGUL SYLLABLE SSANGTIKEUT EO TIKEUT +0x8BBB 0xB5A9 #HANGUL SYLLABLE SSANGTIKEUT EO RIEULKIYEOK +0x8BBC 0xB5AC #HANGUL SYLLABLE SSANGTIKEUT EO RIEULSIOS +0x8BBD 0xB5AD #HANGUL SYLLABLE SSANGTIKEUT EO RIEULTHIEUTH +0x8BBE 0xB5AE #HANGUL SYLLABLE SSANGTIKEUT EO RIEULPHIEUPH +0x8BBF 0xB5AF #HANGUL SYLLABLE SSANGTIKEUT EO RIEULHIEUH +0x8BC0 0xB5B2 #HANGUL SYLLABLE SSANGTIKEUT EO PIEUPSIOS +0x8BC1 0xB5B6 #HANGUL SYLLABLE SSANGTIKEUT EO CIEUC +0x8BC2 0xB5B7 #HANGUL SYLLABLE SSANGTIKEUT EO CHIEUCH +0x8BC3 0xB5B8 #HANGUL SYLLABLE SSANGTIKEUT EO KHIEUKH +0x8BC4 0xB5B9 #HANGUL SYLLABLE SSANGTIKEUT EO THIEUTH +0x8BC5 0xB5BA #HANGUL SYLLABLE SSANGTIKEUT EO PHIEUPH +0x8BC6 0xB5BE #HANGUL SYLLABLE SSANGTIKEUT E SSANGKIYEOK +0x8BC7 0xB5BF #HANGUL SYLLABLE SSANGTIKEUT E KIYEOKSIOS +0x8BC8 0xB5C1 #HANGUL SYLLABLE SSANGTIKEUT E NIEUNCIEUC +0x8BC9 0xB5C2 #HANGUL SYLLABLE SSANGTIKEUT E NIEUNHIEUH +0x8BCA 0xB5C3 #HANGUL SYLLABLE SSANGTIKEUT E TIKEUT +0x8BCB 0xB5C5 #HANGUL SYLLABLE SSANGTIKEUT E RIEULKIYEOK +0x8BCC 0xB5C6 #HANGUL SYLLABLE SSANGTIKEUT E RIEULMIEUM +0x8BCD 0xB5C7 #HANGUL SYLLABLE SSANGTIKEUT E RIEULPIEUP +0x8BCE 0xB5C8 #HANGUL SYLLABLE SSANGTIKEUT E RIEULSIOS +0x8BCF 0xB5C9 #HANGUL SYLLABLE SSANGTIKEUT E RIEULTHIEUTH +0x8BD0 0xB5CA #HANGUL SYLLABLE SSANGTIKEUT E RIEULPHIEUPH +0x8BD1 0xB5CB #HANGUL SYLLABLE SSANGTIKEUT E RIEULHIEUH +0x8BD2 0xB5CE #HANGUL SYLLABLE SSANGTIKEUT E PIEUPSIOS +0x8BD3 0xB5D2 #HANGUL SYLLABLE SSANGTIKEUT E CIEUC +0x8BD4 0xB5D3 #HANGUL SYLLABLE SSANGTIKEUT E CHIEUCH +0x8BD5 0xB5D4 #HANGUL SYLLABLE SSANGTIKEUT E KHIEUKH +0x8BD6 0xB5D5 #HANGUL SYLLABLE SSANGTIKEUT E THIEUTH +0x8BD7 0xB5D6 #HANGUL SYLLABLE SSANGTIKEUT E PHIEUPH +0x8BD8 0xB5D7 #HANGUL SYLLABLE SSANGTIKEUT E HIEUH +0x8BD9 0xB5D9 #HANGUL SYLLABLE SSANGTIKEUT YEO KIYEOK +0x8BDA 0xB5DA #HANGUL SYLLABLE SSANGTIKEUT YEO SSANGKIYEOK +0x8BDB 0xB5DB #HANGUL SYLLABLE SSANGTIKEUT YEO KIYEOKSIOS +0x8BDC 0xB5DC #HANGUL SYLLABLE SSANGTIKEUT YEO NIEUN +0x8BDD 0xB5DD #HANGUL SYLLABLE SSANGTIKEUT YEO NIEUNCIEUC +0x8BDE 0xB5DE #HANGUL SYLLABLE SSANGTIKEUT YEO NIEUNHIEUH +0x8BDF 0xB5DF #HANGUL SYLLABLE SSANGTIKEUT YEO TIKEUT +0x8BE0 0xB5E0 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEUL +0x8BE1 0xB5E1 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULKIYEOK +0x8BE2 0xB5E2 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULMIEUM +0x8BE3 0xB5E3 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULPIEUP +0x8BE4 0xB5E4 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULSIOS +0x8BE5 0xB5E5 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULTHIEUTH +0x8BE6 0xB5E6 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULPHIEUPH +0x8BE7 0xB5E7 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULHIEUH +0x8BE8 0xB5E8 #HANGUL SYLLABLE SSANGTIKEUT YEO MIEUM +0x8BE9 0xB5E9 #HANGUL SYLLABLE SSANGTIKEUT YEO PIEUP +0x8BEA 0xB5EA #HANGUL SYLLABLE SSANGTIKEUT YEO PIEUPSIOS +0x8BEB 0xB5EB #HANGUL SYLLABLE SSANGTIKEUT YEO SIOS +0x8BEC 0xB5ED #HANGUL SYLLABLE SSANGTIKEUT YEO IEUNG +0x8BED 0xB5EE #HANGUL SYLLABLE SSANGTIKEUT YEO CIEUC +0x8BEE 0xB5EF #HANGUL SYLLABLE SSANGTIKEUT YEO CHIEUCH +0x8BEF 0xB5F0 #HANGUL SYLLABLE SSANGTIKEUT YEO KHIEUKH +0x8BF0 0xB5F1 #HANGUL SYLLABLE SSANGTIKEUT YEO THIEUTH +0x8BF1 0xB5F2 #HANGUL SYLLABLE SSANGTIKEUT YEO PHIEUPH +0x8BF2 0xB5F3 #HANGUL SYLLABLE SSANGTIKEUT YEO HIEUH +0x8BF3 0xB5F4 #HANGUL SYLLABLE SSANGTIKEUT YE +0x8BF4 0xB5F5 #HANGUL SYLLABLE SSANGTIKEUT YE KIYEOK +0x8BF5 0xB5F6 #HANGUL SYLLABLE SSANGTIKEUT YE SSANGKIYEOK +0x8BF6 0xB5F7 #HANGUL SYLLABLE SSANGTIKEUT YE KIYEOKSIOS +0x8BF7 0xB5F8 #HANGUL SYLLABLE SSANGTIKEUT YE NIEUN +0x8BF8 0xB5F9 #HANGUL SYLLABLE SSANGTIKEUT YE NIEUNCIEUC +0x8BF9 0xB5FA #HANGUL SYLLABLE SSANGTIKEUT YE NIEUNHIEUH +0x8BFA 0xB5FB #HANGUL SYLLABLE SSANGTIKEUT YE TIKEUT +0x8BFB 0xB5FC #HANGUL SYLLABLE SSANGTIKEUT YE RIEUL +0x8BFC 0xB5FD #HANGUL SYLLABLE SSANGTIKEUT YE RIEULKIYEOK +0x8BFD 0xB5FE #HANGUL SYLLABLE SSANGTIKEUT YE RIEULMIEUM +0x8BFE 0xB5FF #HANGUL SYLLABLE SSANGTIKEUT YE RIEULPIEUP +0x8C41 0xB600 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULSIOS +0x8C42 0xB601 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULTHIEUTH +0x8C43 0xB602 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULPHIEUPH +0x8C44 0xB603 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULHIEUH +0x8C45 0xB604 #HANGUL SYLLABLE SSANGTIKEUT YE MIEUM +0x8C46 0xB605 #HANGUL SYLLABLE SSANGTIKEUT YE PIEUP +0x8C47 0xB606 #HANGUL SYLLABLE SSANGTIKEUT YE PIEUPSIOS +0x8C48 0xB607 #HANGUL SYLLABLE SSANGTIKEUT YE SIOS +0x8C49 0xB608 #HANGUL SYLLABLE SSANGTIKEUT YE SSANGSIOS +0x8C4A 0xB609 #HANGUL SYLLABLE SSANGTIKEUT YE IEUNG +0x8C4B 0xB60A #HANGUL SYLLABLE SSANGTIKEUT YE CIEUC +0x8C4C 0xB60B #HANGUL SYLLABLE SSANGTIKEUT YE CHIEUCH +0x8C4D 0xB60C #HANGUL SYLLABLE SSANGTIKEUT YE KHIEUKH +0x8C4E 0xB60D #HANGUL SYLLABLE SSANGTIKEUT YE THIEUTH +0x8C4F 0xB60E #HANGUL SYLLABLE SSANGTIKEUT YE PHIEUPH +0x8C50 0xB60F #HANGUL SYLLABLE SSANGTIKEUT YE HIEUH +0x8C51 0xB612 #HANGUL SYLLABLE SSANGTIKEUT O SSANGKIYEOK +0x8C52 0xB613 #HANGUL SYLLABLE SSANGTIKEUT O KIYEOKSIOS +0x8C53 0xB615 #HANGUL SYLLABLE SSANGTIKEUT O NIEUNCIEUC +0x8C54 0xB616 #HANGUL SYLLABLE SSANGTIKEUT O NIEUNHIEUH +0x8C55 0xB617 #HANGUL SYLLABLE SSANGTIKEUT O TIKEUT +0x8C56 0xB619 #HANGUL SYLLABLE SSANGTIKEUT O RIEULKIYEOK +0x8C57 0xB61A #HANGUL SYLLABLE SSANGTIKEUT O RIEULMIEUM +0x8C58 0xB61B #HANGUL SYLLABLE SSANGTIKEUT O RIEULPIEUP +0x8C59 0xB61C #HANGUL SYLLABLE SSANGTIKEUT O RIEULSIOS +0x8C5A 0xB61D #HANGUL SYLLABLE SSANGTIKEUT O RIEULTHIEUTH +0x8C61 0xB61E #HANGUL SYLLABLE SSANGTIKEUT O RIEULPHIEUPH +0x8C62 0xB61F #HANGUL SYLLABLE SSANGTIKEUT O RIEULHIEUH +0x8C63 0xB620 #HANGUL SYLLABLE SSANGTIKEUT O MIEUM +0x8C64 0xB621 #HANGUL SYLLABLE SSANGTIKEUT O PIEUP +0x8C65 0xB622 #HANGUL SYLLABLE SSANGTIKEUT O PIEUPSIOS +0x8C66 0xB623 #HANGUL SYLLABLE SSANGTIKEUT O SIOS +0x8C67 0xB624 #HANGUL SYLLABLE SSANGTIKEUT O SSANGSIOS +0x8C68 0xB626 #HANGUL SYLLABLE SSANGTIKEUT O CIEUC +0x8C69 0xB627 #HANGUL SYLLABLE SSANGTIKEUT O CHIEUCH +0x8C6A 0xB628 #HANGUL SYLLABLE SSANGTIKEUT O KHIEUKH +0x8C6B 0xB629 #HANGUL SYLLABLE SSANGTIKEUT O THIEUTH +0x8C6C 0xB62A #HANGUL SYLLABLE SSANGTIKEUT O PHIEUPH +0x8C6D 0xB62B #HANGUL SYLLABLE SSANGTIKEUT O HIEUH +0x8C6E 0xB62D #HANGUL SYLLABLE SSANGTIKEUT WA KIYEOK +0x8C6F 0xB62E #HANGUL SYLLABLE SSANGTIKEUT WA SSANGKIYEOK +0x8C70 0xB62F #HANGUL SYLLABLE SSANGTIKEUT WA KIYEOKSIOS +0x8C71 0xB630 #HANGUL SYLLABLE SSANGTIKEUT WA NIEUN +0x8C72 0xB631 #HANGUL SYLLABLE SSANGTIKEUT WA NIEUNCIEUC +0x8C73 0xB632 #HANGUL SYLLABLE SSANGTIKEUT WA NIEUNHIEUH +0x8C74 0xB633 #HANGUL SYLLABLE SSANGTIKEUT WA TIKEUT +0x8C75 0xB635 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULKIYEOK +0x8C76 0xB636 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULMIEUM +0x8C77 0xB637 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULPIEUP +0x8C78 0xB638 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULSIOS +0x8C79 0xB639 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULTHIEUTH +0x8C7A 0xB63A #HANGUL SYLLABLE SSANGTIKEUT WA RIEULPHIEUPH +0x8C81 0xB63B #HANGUL SYLLABLE SSANGTIKEUT WA RIEULHIEUH +0x8C82 0xB63C #HANGUL SYLLABLE SSANGTIKEUT WA MIEUM +0x8C83 0xB63D #HANGUL SYLLABLE SSANGTIKEUT WA PIEUP +0x8C84 0xB63E #HANGUL SYLLABLE SSANGTIKEUT WA PIEUPSIOS +0x8C85 0xB63F #HANGUL SYLLABLE SSANGTIKEUT WA SIOS +0x8C86 0xB640 #HANGUL SYLLABLE SSANGTIKEUT WA SSANGSIOS +0x8C87 0xB641 #HANGUL SYLLABLE SSANGTIKEUT WA IEUNG +0x8C88 0xB642 #HANGUL SYLLABLE SSANGTIKEUT WA CIEUC +0x8C89 0xB643 #HANGUL SYLLABLE SSANGTIKEUT WA CHIEUCH +0x8C8A 0xB644 #HANGUL SYLLABLE SSANGTIKEUT WA KHIEUKH +0x8C8B 0xB645 #HANGUL SYLLABLE SSANGTIKEUT WA THIEUTH +0x8C8C 0xB646 #HANGUL SYLLABLE SSANGTIKEUT WA PHIEUPH +0x8C8D 0xB647 #HANGUL SYLLABLE SSANGTIKEUT WA HIEUH +0x8C8E 0xB649 #HANGUL SYLLABLE SSANGTIKEUT WAE KIYEOK +0x8C8F 0xB64A #HANGUL SYLLABLE SSANGTIKEUT WAE SSANGKIYEOK +0x8C90 0xB64B #HANGUL SYLLABLE SSANGTIKEUT WAE KIYEOKSIOS +0x8C91 0xB64C #HANGUL SYLLABLE SSANGTIKEUT WAE NIEUN +0x8C92 0xB64D #HANGUL SYLLABLE SSANGTIKEUT WAE NIEUNCIEUC +0x8C93 0xB64E #HANGUL SYLLABLE SSANGTIKEUT WAE NIEUNHIEUH +0x8C94 0xB64F #HANGUL SYLLABLE SSANGTIKEUT WAE TIKEUT +0x8C95 0xB650 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEUL +0x8C96 0xB651 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULKIYEOK +0x8C97 0xB652 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULMIEUM +0x8C98 0xB653 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULPIEUP +0x8C99 0xB654 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULSIOS +0x8C9A 0xB655 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULTHIEUTH +0x8C9B 0xB656 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULPHIEUPH +0x8C9C 0xB657 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULHIEUH +0x8C9D 0xB658 #HANGUL SYLLABLE SSANGTIKEUT WAE MIEUM +0x8C9E 0xB659 #HANGUL SYLLABLE SSANGTIKEUT WAE PIEUP +0x8C9F 0xB65A #HANGUL SYLLABLE SSANGTIKEUT WAE PIEUPSIOS +0x8CA0 0xB65B #HANGUL SYLLABLE SSANGTIKEUT WAE SIOS +0x8CA1 0xB65C #HANGUL SYLLABLE SSANGTIKEUT WAE SSANGSIOS +0x8CA2 0xB65D #HANGUL SYLLABLE SSANGTIKEUT WAE IEUNG +0x8CA3 0xB65E #HANGUL SYLLABLE SSANGTIKEUT WAE CIEUC +0x8CA4 0xB65F #HANGUL SYLLABLE SSANGTIKEUT WAE CHIEUCH +0x8CA5 0xB660 #HANGUL SYLLABLE SSANGTIKEUT WAE KHIEUKH +0x8CA6 0xB661 #HANGUL SYLLABLE SSANGTIKEUT WAE THIEUTH +0x8CA7 0xB662 #HANGUL SYLLABLE SSANGTIKEUT WAE PHIEUPH +0x8CA8 0xB663 #HANGUL SYLLABLE SSANGTIKEUT WAE HIEUH +0x8CA9 0xB665 #HANGUL SYLLABLE SSANGTIKEUT OE KIYEOK +0x8CAA 0xB666 #HANGUL SYLLABLE SSANGTIKEUT OE SSANGKIYEOK +0x8CAB 0xB667 #HANGUL SYLLABLE SSANGTIKEUT OE KIYEOKSIOS +0x8CAC 0xB669 #HANGUL SYLLABLE SSANGTIKEUT OE NIEUNCIEUC +0x8CAD 0xB66A #HANGUL SYLLABLE SSANGTIKEUT OE NIEUNHIEUH +0x8CAE 0xB66B #HANGUL SYLLABLE SSANGTIKEUT OE TIKEUT +0x8CAF 0xB66C #HANGUL SYLLABLE SSANGTIKEUT OE RIEUL +0x8CB0 0xB66D #HANGUL SYLLABLE SSANGTIKEUT OE RIEULKIYEOK +0x8CB1 0xB66E #HANGUL SYLLABLE SSANGTIKEUT OE RIEULMIEUM +0x8CB2 0xB66F #HANGUL SYLLABLE SSANGTIKEUT OE RIEULPIEUP +0x8CB3 0xB670 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULSIOS +0x8CB4 0xB671 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULTHIEUTH +0x8CB5 0xB672 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULPHIEUPH +0x8CB6 0xB673 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULHIEUH +0x8CB7 0xB674 #HANGUL SYLLABLE SSANGTIKEUT OE MIEUM +0x8CB8 0xB675 #HANGUL SYLLABLE SSANGTIKEUT OE PIEUP +0x8CB9 0xB676 #HANGUL SYLLABLE SSANGTIKEUT OE PIEUPSIOS +0x8CBA 0xB677 #HANGUL SYLLABLE SSANGTIKEUT OE SIOS +0x8CBB 0xB678 #HANGUL SYLLABLE SSANGTIKEUT OE SSANGSIOS +0x8CBC 0xB679 #HANGUL SYLLABLE SSANGTIKEUT OE IEUNG +0x8CBD 0xB67A #HANGUL SYLLABLE SSANGTIKEUT OE CIEUC +0x8CBE 0xB67B #HANGUL SYLLABLE SSANGTIKEUT OE CHIEUCH +0x8CBF 0xB67C #HANGUL SYLLABLE SSANGTIKEUT OE KHIEUKH +0x8CC0 0xB67D #HANGUL SYLLABLE SSANGTIKEUT OE THIEUTH +0x8CC1 0xB67E #HANGUL SYLLABLE SSANGTIKEUT OE PHIEUPH +0x8CC2 0xB67F #HANGUL SYLLABLE SSANGTIKEUT OE HIEUH +0x8CC3 0xB680 #HANGUL SYLLABLE SSANGTIKEUT YO +0x8CC4 0xB681 #HANGUL SYLLABLE SSANGTIKEUT YO KIYEOK +0x8CC5 0xB682 #HANGUL SYLLABLE SSANGTIKEUT YO SSANGKIYEOK +0x8CC6 0xB683 #HANGUL SYLLABLE SSANGTIKEUT YO KIYEOKSIOS +0x8CC7 0xB684 #HANGUL SYLLABLE SSANGTIKEUT YO NIEUN +0x8CC8 0xB685 #HANGUL SYLLABLE SSANGTIKEUT YO NIEUNCIEUC +0x8CC9 0xB686 #HANGUL SYLLABLE SSANGTIKEUT YO NIEUNHIEUH +0x8CCA 0xB687 #HANGUL SYLLABLE SSANGTIKEUT YO TIKEUT +0x8CCB 0xB688 #HANGUL SYLLABLE SSANGTIKEUT YO RIEUL +0x8CCC 0xB689 #HANGUL SYLLABLE SSANGTIKEUT YO RIEULKIYEOK +0x8CCD 0xB68A #HANGUL SYLLABLE SSANGTIKEUT YO RIEULMIEUM +0x8CCE 0xB68B #HANGUL SYLLABLE SSANGTIKEUT YO RIEULPIEUP +0x8CCF 0xB68C #HANGUL SYLLABLE SSANGTIKEUT YO RIEULSIOS +0x8CD0 0xB68D #HANGUL SYLLABLE SSANGTIKEUT YO RIEULTHIEUTH +0x8CD1 0xB68E #HANGUL SYLLABLE SSANGTIKEUT YO RIEULPHIEUPH +0x8CD2 0xB68F #HANGUL SYLLABLE SSANGTIKEUT YO RIEULHIEUH +0x8CD3 0xB690 #HANGUL SYLLABLE SSANGTIKEUT YO MIEUM +0x8CD4 0xB691 #HANGUL SYLLABLE SSANGTIKEUT YO PIEUP +0x8CD5 0xB692 #HANGUL SYLLABLE SSANGTIKEUT YO PIEUPSIOS +0x8CD6 0xB693 #HANGUL SYLLABLE SSANGTIKEUT YO SIOS +0x8CD7 0xB694 #HANGUL SYLLABLE SSANGTIKEUT YO SSANGSIOS +0x8CD8 0xB695 #HANGUL SYLLABLE SSANGTIKEUT YO IEUNG +0x8CD9 0xB696 #HANGUL SYLLABLE SSANGTIKEUT YO CIEUC +0x8CDA 0xB697 #HANGUL SYLLABLE SSANGTIKEUT YO CHIEUCH +0x8CDB 0xB698 #HANGUL SYLLABLE SSANGTIKEUT YO KHIEUKH +0x8CDC 0xB699 #HANGUL SYLLABLE SSANGTIKEUT YO THIEUTH +0x8CDD 0xB69A #HANGUL SYLLABLE SSANGTIKEUT YO PHIEUPH +0x8CDE 0xB69B #HANGUL SYLLABLE SSANGTIKEUT YO HIEUH +0x8CDF 0xB69E #HANGUL SYLLABLE SSANGTIKEUT U SSANGKIYEOK +0x8CE0 0xB69F #HANGUL SYLLABLE SSANGTIKEUT U KIYEOKSIOS +0x8CE1 0xB6A1 #HANGUL SYLLABLE SSANGTIKEUT U NIEUNCIEUC +0x8CE2 0xB6A2 #HANGUL SYLLABLE SSANGTIKEUT U NIEUNHIEUH +0x8CE3 0xB6A3 #HANGUL SYLLABLE SSANGTIKEUT U TIKEUT +0x8CE4 0xB6A5 #HANGUL SYLLABLE SSANGTIKEUT U RIEULKIYEOK +0x8CE5 0xB6A6 #HANGUL SYLLABLE SSANGTIKEUT U RIEULMIEUM +0x8CE6 0xB6A7 #HANGUL SYLLABLE SSANGTIKEUT U RIEULPIEUP +0x8CE7 0xB6A8 #HANGUL SYLLABLE SSANGTIKEUT U RIEULSIOS +0x8CE8 0xB6A9 #HANGUL SYLLABLE SSANGTIKEUT U RIEULTHIEUTH +0x8CE9 0xB6AA #HANGUL SYLLABLE SSANGTIKEUT U RIEULPHIEUPH +0x8CEA 0xB6AD #HANGUL SYLLABLE SSANGTIKEUT U PIEUP +0x8CEB 0xB6AE #HANGUL SYLLABLE SSANGTIKEUT U PIEUPSIOS +0x8CEC 0xB6AF #HANGUL SYLLABLE SSANGTIKEUT U SIOS +0x8CED 0xB6B0 #HANGUL SYLLABLE SSANGTIKEUT U SSANGSIOS +0x8CEE 0xB6B2 #HANGUL SYLLABLE SSANGTIKEUT U CIEUC +0x8CEF 0xB6B3 #HANGUL SYLLABLE SSANGTIKEUT U CHIEUCH +0x8CF0 0xB6B4 #HANGUL SYLLABLE SSANGTIKEUT U KHIEUKH +0x8CF1 0xB6B5 #HANGUL SYLLABLE SSANGTIKEUT U THIEUTH +0x8CF2 0xB6B6 #HANGUL SYLLABLE SSANGTIKEUT U PHIEUPH +0x8CF3 0xB6B7 #HANGUL SYLLABLE SSANGTIKEUT U HIEUH +0x8CF4 0xB6B8 #HANGUL SYLLABLE SSANGTIKEUT WEO +0x8CF5 0xB6B9 #HANGUL SYLLABLE SSANGTIKEUT WEO KIYEOK +0x8CF6 0xB6BA #HANGUL SYLLABLE SSANGTIKEUT WEO SSANGKIYEOK +0x8CF7 0xB6BB #HANGUL SYLLABLE SSANGTIKEUT WEO KIYEOKSIOS +0x8CF8 0xB6BC #HANGUL SYLLABLE SSANGTIKEUT WEO NIEUN +0x8CF9 0xB6BD #HANGUL SYLLABLE SSANGTIKEUT WEO NIEUNCIEUC +0x8CFA 0xB6BE #HANGUL SYLLABLE SSANGTIKEUT WEO NIEUNHIEUH +0x8CFB 0xB6BF #HANGUL SYLLABLE SSANGTIKEUT WEO TIKEUT +0x8CFC 0xB6C0 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEUL +0x8CFD 0xB6C1 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULKIYEOK +0x8CFE 0xB6C2 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULMIEUM +0x8D41 0xB6C3 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULPIEUP +0x8D42 0xB6C4 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULSIOS +0x8D43 0xB6C5 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULTHIEUTH +0x8D44 0xB6C6 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULPHIEUPH +0x8D45 0xB6C7 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULHIEUH +0x8D46 0xB6C8 #HANGUL SYLLABLE SSANGTIKEUT WEO MIEUM +0x8D47 0xB6C9 #HANGUL SYLLABLE SSANGTIKEUT WEO PIEUP +0x8D48 0xB6CA #HANGUL SYLLABLE SSANGTIKEUT WEO PIEUPSIOS +0x8D49 0xB6CB #HANGUL SYLLABLE SSANGTIKEUT WEO SIOS +0x8D4A 0xB6CC #HANGUL SYLLABLE SSANGTIKEUT WEO SSANGSIOS +0x8D4B 0xB6CD #HANGUL SYLLABLE SSANGTIKEUT WEO IEUNG +0x8D4C 0xB6CE #HANGUL SYLLABLE SSANGTIKEUT WEO CIEUC +0x8D4D 0xB6CF #HANGUL SYLLABLE SSANGTIKEUT WEO CHIEUCH +0x8D4E 0xB6D0 #HANGUL SYLLABLE SSANGTIKEUT WEO KHIEUKH +0x8D4F 0xB6D1 #HANGUL SYLLABLE SSANGTIKEUT WEO THIEUTH +0x8D50 0xB6D2 #HANGUL SYLLABLE SSANGTIKEUT WEO PHIEUPH +0x8D51 0xB6D3 #HANGUL SYLLABLE SSANGTIKEUT WEO HIEUH +0x8D52 0xB6D5 #HANGUL SYLLABLE SSANGTIKEUT WE KIYEOK +0x8D53 0xB6D6 #HANGUL SYLLABLE SSANGTIKEUT WE SSANGKIYEOK +0x8D54 0xB6D7 #HANGUL SYLLABLE SSANGTIKEUT WE KIYEOKSIOS +0x8D55 0xB6D8 #HANGUL SYLLABLE SSANGTIKEUT WE NIEUN +0x8D56 0xB6D9 #HANGUL SYLLABLE SSANGTIKEUT WE NIEUNCIEUC +0x8D57 0xB6DA #HANGUL SYLLABLE SSANGTIKEUT WE NIEUNHIEUH +0x8D58 0xB6DB #HANGUL SYLLABLE SSANGTIKEUT WE TIKEUT +0x8D59 0xB6DC #HANGUL SYLLABLE SSANGTIKEUT WE RIEUL +0x8D5A 0xB6DD #HANGUL SYLLABLE SSANGTIKEUT WE RIEULKIYEOK +0x8D61 0xB6DE #HANGUL SYLLABLE SSANGTIKEUT WE RIEULMIEUM +0x8D62 0xB6DF #HANGUL SYLLABLE SSANGTIKEUT WE RIEULPIEUP +0x8D63 0xB6E0 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULSIOS +0x8D64 0xB6E1 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULTHIEUTH +0x8D65 0xB6E2 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULPHIEUPH +0x8D66 0xB6E3 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULHIEUH +0x8D67 0xB6E4 #HANGUL SYLLABLE SSANGTIKEUT WE MIEUM +0x8D68 0xB6E5 #HANGUL SYLLABLE SSANGTIKEUT WE PIEUP +0x8D69 0xB6E6 #HANGUL SYLLABLE SSANGTIKEUT WE PIEUPSIOS +0x8D6A 0xB6E7 #HANGUL SYLLABLE SSANGTIKEUT WE SIOS +0x8D6B 0xB6E8 #HANGUL SYLLABLE SSANGTIKEUT WE SSANGSIOS +0x8D6C 0xB6E9 #HANGUL SYLLABLE SSANGTIKEUT WE IEUNG +0x8D6D 0xB6EA #HANGUL SYLLABLE SSANGTIKEUT WE CIEUC +0x8D6E 0xB6EB #HANGUL SYLLABLE SSANGTIKEUT WE CHIEUCH +0x8D6F 0xB6EC #HANGUL SYLLABLE SSANGTIKEUT WE KHIEUKH +0x8D70 0xB6ED #HANGUL SYLLABLE SSANGTIKEUT WE THIEUTH +0x8D71 0xB6EE #HANGUL SYLLABLE SSANGTIKEUT WE PHIEUPH +0x8D72 0xB6EF #HANGUL SYLLABLE SSANGTIKEUT WE HIEUH +0x8D73 0xB6F1 #HANGUL SYLLABLE SSANGTIKEUT WI KIYEOK +0x8D74 0xB6F2 #HANGUL SYLLABLE SSANGTIKEUT WI SSANGKIYEOK +0x8D75 0xB6F3 #HANGUL SYLLABLE SSANGTIKEUT WI KIYEOKSIOS +0x8D76 0xB6F5 #HANGUL SYLLABLE SSANGTIKEUT WI NIEUNCIEUC +0x8D77 0xB6F6 #HANGUL SYLLABLE SSANGTIKEUT WI NIEUNHIEUH +0x8D78 0xB6F7 #HANGUL SYLLABLE SSANGTIKEUT WI TIKEUT +0x8D79 0xB6F9 #HANGUL SYLLABLE SSANGTIKEUT WI RIEULKIYEOK +0x8D7A 0xB6FA #HANGUL SYLLABLE SSANGTIKEUT WI RIEULMIEUM +0x8D81 0xB6FB #HANGUL SYLLABLE SSANGTIKEUT WI RIEULPIEUP +0x8D82 0xB6FC #HANGUL SYLLABLE SSANGTIKEUT WI RIEULSIOS +0x8D83 0xB6FD #HANGUL SYLLABLE SSANGTIKEUT WI RIEULTHIEUTH +0x8D84 0xB6FE #HANGUL SYLLABLE SSANGTIKEUT WI RIEULPHIEUPH +0x8D85 0xB6FF #HANGUL SYLLABLE SSANGTIKEUT WI RIEULHIEUH +0x8D86 0xB702 #HANGUL SYLLABLE SSANGTIKEUT WI PIEUPSIOS +0x8D87 0xB703 #HANGUL SYLLABLE SSANGTIKEUT WI SIOS +0x8D88 0xB704 #HANGUL SYLLABLE SSANGTIKEUT WI SSANGSIOS +0x8D89 0xB706 #HANGUL SYLLABLE SSANGTIKEUT WI CIEUC +0x8D8A 0xB707 #HANGUL SYLLABLE SSANGTIKEUT WI CHIEUCH +0x8D8B 0xB708 #HANGUL SYLLABLE SSANGTIKEUT WI KHIEUKH +0x8D8C 0xB709 #HANGUL SYLLABLE SSANGTIKEUT WI THIEUTH +0x8D8D 0xB70A #HANGUL SYLLABLE SSANGTIKEUT WI PHIEUPH +0x8D8E 0xB70B #HANGUL SYLLABLE SSANGTIKEUT WI HIEUH +0x8D8F 0xB70C #HANGUL SYLLABLE SSANGTIKEUT YU +0x8D90 0xB70D #HANGUL SYLLABLE SSANGTIKEUT YU KIYEOK +0x8D91 0xB70E #HANGUL SYLLABLE SSANGTIKEUT YU SSANGKIYEOK +0x8D92 0xB70F #HANGUL SYLLABLE SSANGTIKEUT YU KIYEOKSIOS +0x8D93 0xB710 #HANGUL SYLLABLE SSANGTIKEUT YU NIEUN +0x8D94 0xB711 #HANGUL SYLLABLE SSANGTIKEUT YU NIEUNCIEUC +0x8D95 0xB712 #HANGUL SYLLABLE SSANGTIKEUT YU NIEUNHIEUH +0x8D96 0xB713 #HANGUL SYLLABLE SSANGTIKEUT YU TIKEUT +0x8D97 0xB714 #HANGUL SYLLABLE SSANGTIKEUT YU RIEUL +0x8D98 0xB715 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULKIYEOK +0x8D99 0xB716 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULMIEUM +0x8D9A 0xB717 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULPIEUP +0x8D9B 0xB718 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULSIOS +0x8D9C 0xB719 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULTHIEUTH +0x8D9D 0xB71A #HANGUL SYLLABLE SSANGTIKEUT YU RIEULPHIEUPH +0x8D9E 0xB71B #HANGUL SYLLABLE SSANGTIKEUT YU RIEULHIEUH +0x8D9F 0xB71C #HANGUL SYLLABLE SSANGTIKEUT YU MIEUM +0x8DA0 0xB71D #HANGUL SYLLABLE SSANGTIKEUT YU PIEUP +0x8DA1 0xB71E #HANGUL SYLLABLE SSANGTIKEUT YU PIEUPSIOS +0x8DA2 0xB71F #HANGUL SYLLABLE SSANGTIKEUT YU SIOS +0x8DA3 0xB720 #HANGUL SYLLABLE SSANGTIKEUT YU SSANGSIOS +0x8DA4 0xB721 #HANGUL SYLLABLE SSANGTIKEUT YU IEUNG +0x8DA5 0xB722 #HANGUL SYLLABLE SSANGTIKEUT YU CIEUC +0x8DA6 0xB723 #HANGUL SYLLABLE SSANGTIKEUT YU CHIEUCH +0x8DA7 0xB724 #HANGUL SYLLABLE SSANGTIKEUT YU KHIEUKH +0x8DA8 0xB725 #HANGUL SYLLABLE SSANGTIKEUT YU THIEUTH +0x8DA9 0xB726 #HANGUL SYLLABLE SSANGTIKEUT YU PHIEUPH +0x8DAA 0xB727 #HANGUL SYLLABLE SSANGTIKEUT YU HIEUH +0x8DAB 0xB72A #HANGUL SYLLABLE SSANGTIKEUT EU SSANGKIYEOK +0x8DAC 0xB72B #HANGUL SYLLABLE SSANGTIKEUT EU KIYEOKSIOS +0x8DAD 0xB72D #HANGUL SYLLABLE SSANGTIKEUT EU NIEUNCIEUC +0x8DAE 0xB72E #HANGUL SYLLABLE SSANGTIKEUT EU NIEUNHIEUH +0x8DAF 0xB731 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULKIYEOK +0x8DB0 0xB732 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULMIEUM +0x8DB1 0xB733 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULPIEUP +0x8DB2 0xB734 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULSIOS +0x8DB3 0xB735 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULTHIEUTH +0x8DB4 0xB736 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULPHIEUPH +0x8DB5 0xB737 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULHIEUH +0x8DB6 0xB73A #HANGUL SYLLABLE SSANGTIKEUT EU PIEUPSIOS +0x8DB7 0xB73C #HANGUL SYLLABLE SSANGTIKEUT EU SSANGSIOS +0x8DB8 0xB73D #HANGUL SYLLABLE SSANGTIKEUT EU IEUNG +0x8DB9 0xB73E #HANGUL SYLLABLE SSANGTIKEUT EU CIEUC +0x8DBA 0xB73F #HANGUL SYLLABLE SSANGTIKEUT EU CHIEUCH +0x8DBB 0xB740 #HANGUL SYLLABLE SSANGTIKEUT EU KHIEUKH +0x8DBC 0xB741 #HANGUL SYLLABLE SSANGTIKEUT EU THIEUTH +0x8DBD 0xB742 #HANGUL SYLLABLE SSANGTIKEUT EU PHIEUPH +0x8DBE 0xB743 #HANGUL SYLLABLE SSANGTIKEUT EU HIEUH +0x8DBF 0xB745 #HANGUL SYLLABLE SSANGTIKEUT YI KIYEOK +0x8DC0 0xB746 #HANGUL SYLLABLE SSANGTIKEUT YI SSANGKIYEOK +0x8DC1 0xB747 #HANGUL SYLLABLE SSANGTIKEUT YI KIYEOKSIOS +0x8DC2 0xB749 #HANGUL SYLLABLE SSANGTIKEUT YI NIEUNCIEUC +0x8DC3 0xB74A #HANGUL SYLLABLE SSANGTIKEUT YI NIEUNHIEUH +0x8DC4 0xB74B #HANGUL SYLLABLE SSANGTIKEUT YI TIKEUT +0x8DC5 0xB74D #HANGUL SYLLABLE SSANGTIKEUT YI RIEULKIYEOK +0x8DC6 0xB74E #HANGUL SYLLABLE SSANGTIKEUT YI RIEULMIEUM +0x8DC7 0xB74F #HANGUL SYLLABLE SSANGTIKEUT YI RIEULPIEUP +0x8DC8 0xB750 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULSIOS +0x8DC9 0xB751 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULTHIEUTH +0x8DCA 0xB752 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULPHIEUPH +0x8DCB 0xB753 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULHIEUH +0x8DCC 0xB756 #HANGUL SYLLABLE SSANGTIKEUT YI PIEUPSIOS +0x8DCD 0xB757 #HANGUL SYLLABLE SSANGTIKEUT YI SIOS +0x8DCE 0xB758 #HANGUL SYLLABLE SSANGTIKEUT YI SSANGSIOS +0x8DCF 0xB759 #HANGUL SYLLABLE SSANGTIKEUT YI IEUNG +0x8DD0 0xB75A #HANGUL SYLLABLE SSANGTIKEUT YI CIEUC +0x8DD1 0xB75B #HANGUL SYLLABLE SSANGTIKEUT YI CHIEUCH +0x8DD2 0xB75C #HANGUL SYLLABLE SSANGTIKEUT YI KHIEUKH +0x8DD3 0xB75D #HANGUL SYLLABLE SSANGTIKEUT YI THIEUTH +0x8DD4 0xB75E #HANGUL SYLLABLE SSANGTIKEUT YI PHIEUPH +0x8DD5 0xB75F #HANGUL SYLLABLE SSANGTIKEUT YI HIEUH +0x8DD6 0xB761 #HANGUL SYLLABLE SSANGTIKEUT I KIYEOK +0x8DD7 0xB762 #HANGUL SYLLABLE SSANGTIKEUT I SSANGKIYEOK +0x8DD8 0xB763 #HANGUL SYLLABLE SSANGTIKEUT I KIYEOKSIOS +0x8DD9 0xB765 #HANGUL SYLLABLE SSANGTIKEUT I NIEUNCIEUC +0x8DDA 0xB766 #HANGUL SYLLABLE SSANGTIKEUT I NIEUNHIEUH +0x8DDB 0xB767 #HANGUL SYLLABLE SSANGTIKEUT I TIKEUT +0x8DDC 0xB769 #HANGUL SYLLABLE SSANGTIKEUT I RIEULKIYEOK +0x8DDD 0xB76A #HANGUL SYLLABLE SSANGTIKEUT I RIEULMIEUM +0x8DDE 0xB76B #HANGUL SYLLABLE SSANGTIKEUT I RIEULPIEUP +0x8DDF 0xB76C #HANGUL SYLLABLE SSANGTIKEUT I RIEULSIOS +0x8DE0 0xB76D #HANGUL SYLLABLE SSANGTIKEUT I RIEULTHIEUTH +0x8DE1 0xB76E #HANGUL SYLLABLE SSANGTIKEUT I RIEULPHIEUPH +0x8DE2 0xB76F #HANGUL SYLLABLE SSANGTIKEUT I RIEULHIEUH +0x8DE3 0xB772 #HANGUL SYLLABLE SSANGTIKEUT I PIEUPSIOS +0x8DE4 0xB774 #HANGUL SYLLABLE SSANGTIKEUT I SSANGSIOS +0x8DE5 0xB776 #HANGUL SYLLABLE SSANGTIKEUT I CIEUC +0x8DE6 0xB777 #HANGUL SYLLABLE SSANGTIKEUT I CHIEUCH +0x8DE7 0xB778 #HANGUL SYLLABLE SSANGTIKEUT I KHIEUKH +0x8DE8 0xB779 #HANGUL SYLLABLE SSANGTIKEUT I THIEUTH +0x8DE9 0xB77A #HANGUL SYLLABLE SSANGTIKEUT I PHIEUPH +0x8DEA 0xB77B #HANGUL SYLLABLE SSANGTIKEUT I HIEUH +0x8DEB 0xB77E #HANGUL SYLLABLE RIEUL A SSANGKIYEOK +0x8DEC 0xB77F #HANGUL SYLLABLE RIEUL A KIYEOKSIOS +0x8DED 0xB781 #HANGUL SYLLABLE RIEUL A NIEUNCIEUC +0x8DEE 0xB782 #HANGUL SYLLABLE RIEUL A NIEUNHIEUH +0x8DEF 0xB783 #HANGUL SYLLABLE RIEUL A TIKEUT +0x8DF0 0xB785 #HANGUL SYLLABLE RIEUL A RIEULKIYEOK +0x8DF1 0xB786 #HANGUL SYLLABLE RIEUL A RIEULMIEUM +0x8DF2 0xB787 #HANGUL SYLLABLE RIEUL A RIEULPIEUP +0x8DF3 0xB788 #HANGUL SYLLABLE RIEUL A RIEULSIOS +0x8DF4 0xB789 #HANGUL SYLLABLE RIEUL A RIEULTHIEUTH +0x8DF5 0xB78A #HANGUL SYLLABLE RIEUL A RIEULPHIEUPH +0x8DF6 0xB78B #HANGUL SYLLABLE RIEUL A RIEULHIEUH +0x8DF7 0xB78E #HANGUL SYLLABLE RIEUL A PIEUPSIOS +0x8DF8 0xB793 #HANGUL SYLLABLE RIEUL A CHIEUCH +0x8DF9 0xB794 #HANGUL SYLLABLE RIEUL A KHIEUKH +0x8DFA 0xB795 #HANGUL SYLLABLE RIEUL A THIEUTH +0x8DFB 0xB79A #HANGUL SYLLABLE RIEUL AE SSANGKIYEOK +0x8DFC 0xB79B #HANGUL SYLLABLE RIEUL AE KIYEOKSIOS +0x8DFD 0xB79D #HANGUL SYLLABLE RIEUL AE NIEUNCIEUC +0x8DFE 0xB79E #HANGUL SYLLABLE RIEUL AE NIEUNHIEUH +0x8E41 0xB79F #HANGUL SYLLABLE RIEUL AE TIKEUT +0x8E42 0xB7A1 #HANGUL SYLLABLE RIEUL AE RIEULKIYEOK +0x8E43 0xB7A2 #HANGUL SYLLABLE RIEUL AE RIEULMIEUM +0x8E44 0xB7A3 #HANGUL SYLLABLE RIEUL AE RIEULPIEUP +0x8E45 0xB7A4 #HANGUL SYLLABLE RIEUL AE RIEULSIOS +0x8E46 0xB7A5 #HANGUL SYLLABLE RIEUL AE RIEULTHIEUTH +0x8E47 0xB7A6 #HANGUL SYLLABLE RIEUL AE RIEULPHIEUPH +0x8E48 0xB7A7 #HANGUL SYLLABLE RIEUL AE RIEULHIEUH +0x8E49 0xB7AA #HANGUL SYLLABLE RIEUL AE PIEUPSIOS +0x8E4A 0xB7AE #HANGUL SYLLABLE RIEUL AE CIEUC +0x8E4B 0xB7AF #HANGUL SYLLABLE RIEUL AE CHIEUCH +0x8E4C 0xB7B0 #HANGUL SYLLABLE RIEUL AE KHIEUKH +0x8E4D 0xB7B1 #HANGUL SYLLABLE RIEUL AE THIEUTH +0x8E4E 0xB7B2 #HANGUL SYLLABLE RIEUL AE PHIEUPH +0x8E4F 0xB7B3 #HANGUL SYLLABLE RIEUL AE HIEUH +0x8E50 0xB7B6 #HANGUL SYLLABLE RIEUL YA SSANGKIYEOK +0x8E51 0xB7B7 #HANGUL SYLLABLE RIEUL YA KIYEOKSIOS +0x8E52 0xB7B9 #HANGUL SYLLABLE RIEUL YA NIEUNCIEUC +0x8E53 0xB7BA #HANGUL SYLLABLE RIEUL YA NIEUNHIEUH +0x8E54 0xB7BB #HANGUL SYLLABLE RIEUL YA TIKEUT +0x8E55 0xB7BC #HANGUL SYLLABLE RIEUL YA RIEUL +0x8E56 0xB7BD #HANGUL SYLLABLE RIEUL YA RIEULKIYEOK +0x8E57 0xB7BE #HANGUL SYLLABLE RIEUL YA RIEULMIEUM +0x8E58 0xB7BF #HANGUL SYLLABLE RIEUL YA RIEULPIEUP +0x8E59 0xB7C0 #HANGUL SYLLABLE RIEUL YA RIEULSIOS +0x8E5A 0xB7C1 #HANGUL SYLLABLE RIEUL YA RIEULTHIEUTH +0x8E61 0xB7C2 #HANGUL SYLLABLE RIEUL YA RIEULPHIEUPH +0x8E62 0xB7C3 #HANGUL SYLLABLE RIEUL YA RIEULHIEUH +0x8E63 0xB7C4 #HANGUL SYLLABLE RIEUL YA MIEUM +0x8E64 0xB7C5 #HANGUL SYLLABLE RIEUL YA PIEUP +0x8E65 0xB7C6 #HANGUL SYLLABLE RIEUL YA PIEUPSIOS +0x8E66 0xB7C8 #HANGUL SYLLABLE RIEUL YA SSANGSIOS +0x8E67 0xB7CA #HANGUL SYLLABLE RIEUL YA CIEUC +0x8E68 0xB7CB #HANGUL SYLLABLE RIEUL YA CHIEUCH +0x8E69 0xB7CC #HANGUL SYLLABLE RIEUL YA KHIEUKH +0x8E6A 0xB7CD #HANGUL SYLLABLE RIEUL YA THIEUTH +0x8E6B 0xB7CE #HANGUL SYLLABLE RIEUL YA PHIEUPH +0x8E6C 0xB7CF #HANGUL SYLLABLE RIEUL YA HIEUH +0x8E6D 0xB7D0 #HANGUL SYLLABLE RIEUL YAE +0x8E6E 0xB7D1 #HANGUL SYLLABLE RIEUL YAE KIYEOK +0x8E6F 0xB7D2 #HANGUL SYLLABLE RIEUL YAE SSANGKIYEOK +0x8E70 0xB7D3 #HANGUL SYLLABLE RIEUL YAE KIYEOKSIOS +0x8E71 0xB7D4 #HANGUL SYLLABLE RIEUL YAE NIEUN +0x8E72 0xB7D5 #HANGUL SYLLABLE RIEUL YAE NIEUNCIEUC +0x8E73 0xB7D6 #HANGUL SYLLABLE RIEUL YAE NIEUNHIEUH +0x8E74 0xB7D7 #HANGUL SYLLABLE RIEUL YAE TIKEUT +0x8E75 0xB7D8 #HANGUL SYLLABLE RIEUL YAE RIEUL +0x8E76 0xB7D9 #HANGUL SYLLABLE RIEUL YAE RIEULKIYEOK +0x8E77 0xB7DA #HANGUL SYLLABLE RIEUL YAE RIEULMIEUM +0x8E78 0xB7DB #HANGUL SYLLABLE RIEUL YAE RIEULPIEUP +0x8E79 0xB7DC #HANGUL SYLLABLE RIEUL YAE RIEULSIOS +0x8E7A 0xB7DD #HANGUL SYLLABLE RIEUL YAE RIEULTHIEUTH +0x8E81 0xB7DE #HANGUL SYLLABLE RIEUL YAE RIEULPHIEUPH +0x8E82 0xB7DF #HANGUL SYLLABLE RIEUL YAE RIEULHIEUH +0x8E83 0xB7E0 #HANGUL SYLLABLE RIEUL YAE MIEUM +0x8E84 0xB7E1 #HANGUL SYLLABLE RIEUL YAE PIEUP +0x8E85 0xB7E2 #HANGUL SYLLABLE RIEUL YAE PIEUPSIOS +0x8E86 0xB7E3 #HANGUL SYLLABLE RIEUL YAE SIOS +0x8E87 0xB7E4 #HANGUL SYLLABLE RIEUL YAE SSANGSIOS +0x8E88 0xB7E5 #HANGUL SYLLABLE RIEUL YAE IEUNG +0x8E89 0xB7E6 #HANGUL SYLLABLE RIEUL YAE CIEUC +0x8E8A 0xB7E7 #HANGUL SYLLABLE RIEUL YAE CHIEUCH +0x8E8B 0xB7E8 #HANGUL SYLLABLE RIEUL YAE KHIEUKH +0x8E8C 0xB7E9 #HANGUL SYLLABLE RIEUL YAE THIEUTH +0x8E8D 0xB7EA #HANGUL SYLLABLE RIEUL YAE PHIEUPH +0x8E8E 0xB7EB #HANGUL SYLLABLE RIEUL YAE HIEUH +0x8E8F 0xB7EE #HANGUL SYLLABLE RIEUL EO SSANGKIYEOK +0x8E90 0xB7EF #HANGUL SYLLABLE RIEUL EO KIYEOKSIOS +0x8E91 0xB7F1 #HANGUL SYLLABLE RIEUL EO NIEUNCIEUC +0x8E92 0xB7F2 #HANGUL SYLLABLE RIEUL EO NIEUNHIEUH +0x8E93 0xB7F3 #HANGUL SYLLABLE RIEUL EO TIKEUT +0x8E94 0xB7F5 #HANGUL SYLLABLE RIEUL EO RIEULKIYEOK +0x8E95 0xB7F6 #HANGUL SYLLABLE RIEUL EO RIEULMIEUM +0x8E96 0xB7F7 #HANGUL SYLLABLE RIEUL EO RIEULPIEUP +0x8E97 0xB7F8 #HANGUL SYLLABLE RIEUL EO RIEULSIOS +0x8E98 0xB7F9 #HANGUL SYLLABLE RIEUL EO RIEULTHIEUTH +0x8E99 0xB7FA #HANGUL SYLLABLE RIEUL EO RIEULPHIEUPH +0x8E9A 0xB7FB #HANGUL SYLLABLE RIEUL EO RIEULHIEUH +0x8E9B 0xB7FE #HANGUL SYLLABLE RIEUL EO PIEUPSIOS +0x8E9C 0xB802 #HANGUL SYLLABLE RIEUL EO CIEUC +0x8E9D 0xB803 #HANGUL SYLLABLE RIEUL EO CHIEUCH +0x8E9E 0xB804 #HANGUL SYLLABLE RIEUL EO KHIEUKH +0x8E9F 0xB805 #HANGUL SYLLABLE RIEUL EO THIEUTH +0x8EA0 0xB806 #HANGUL SYLLABLE RIEUL EO PHIEUPH +0x8EA1 0xB80A #HANGUL SYLLABLE RIEUL E SSANGKIYEOK +0x8EA2 0xB80B #HANGUL SYLLABLE RIEUL E KIYEOKSIOS +0x8EA3 0xB80D #HANGUL SYLLABLE RIEUL E NIEUNCIEUC +0x8EA4 0xB80E #HANGUL SYLLABLE RIEUL E NIEUNHIEUH +0x8EA5 0xB80F #HANGUL SYLLABLE RIEUL E TIKEUT +0x8EA6 0xB811 #HANGUL SYLLABLE RIEUL E RIEULKIYEOK +0x8EA7 0xB812 #HANGUL SYLLABLE RIEUL E RIEULMIEUM +0x8EA8 0xB813 #HANGUL SYLLABLE RIEUL E RIEULPIEUP +0x8EA9 0xB814 #HANGUL SYLLABLE RIEUL E RIEULSIOS +0x8EAA 0xB815 #HANGUL SYLLABLE RIEUL E RIEULTHIEUTH +0x8EAB 0xB816 #HANGUL SYLLABLE RIEUL E RIEULPHIEUPH +0x8EAC 0xB817 #HANGUL SYLLABLE RIEUL E RIEULHIEUH +0x8EAD 0xB81A #HANGUL SYLLABLE RIEUL E PIEUPSIOS +0x8EAE 0xB81C #HANGUL SYLLABLE RIEUL E SSANGSIOS +0x8EAF 0xB81E #HANGUL SYLLABLE RIEUL E CIEUC +0x8EB0 0xB81F #HANGUL SYLLABLE RIEUL E CHIEUCH +0x8EB1 0xB820 #HANGUL SYLLABLE RIEUL E KHIEUKH +0x8EB2 0xB821 #HANGUL SYLLABLE RIEUL E THIEUTH +0x8EB3 0xB822 #HANGUL SYLLABLE RIEUL E PHIEUPH +0x8EB4 0xB823 #HANGUL SYLLABLE RIEUL E HIEUH +0x8EB5 0xB826 #HANGUL SYLLABLE RIEUL YEO SSANGKIYEOK +0x8EB6 0xB827 #HANGUL SYLLABLE RIEUL YEO KIYEOKSIOS +0x8EB7 0xB829 #HANGUL SYLLABLE RIEUL YEO NIEUNCIEUC +0x8EB8 0xB82A #HANGUL SYLLABLE RIEUL YEO NIEUNHIEUH +0x8EB9 0xB82B #HANGUL SYLLABLE RIEUL YEO TIKEUT +0x8EBA 0xB82D #HANGUL SYLLABLE RIEUL YEO RIEULKIYEOK +0x8EBB 0xB82E #HANGUL SYLLABLE RIEUL YEO RIEULMIEUM +0x8EBC 0xB82F #HANGUL SYLLABLE RIEUL YEO RIEULPIEUP +0x8EBD 0xB830 #HANGUL SYLLABLE RIEUL YEO RIEULSIOS +0x8EBE 0xB831 #HANGUL SYLLABLE RIEUL YEO RIEULTHIEUTH +0x8EBF 0xB832 #HANGUL SYLLABLE RIEUL YEO RIEULPHIEUPH +0x8EC0 0xB833 #HANGUL SYLLABLE RIEUL YEO RIEULHIEUH +0x8EC1 0xB836 #HANGUL SYLLABLE RIEUL YEO PIEUPSIOS +0x8EC2 0xB83A #HANGUL SYLLABLE RIEUL YEO CIEUC +0x8EC3 0xB83B #HANGUL SYLLABLE RIEUL YEO CHIEUCH +0x8EC4 0xB83C #HANGUL SYLLABLE RIEUL YEO KHIEUKH +0x8EC5 0xB83D #HANGUL SYLLABLE RIEUL YEO THIEUTH +0x8EC6 0xB83E #HANGUL SYLLABLE RIEUL YEO PHIEUPH +0x8EC7 0xB83F #HANGUL SYLLABLE RIEUL YEO HIEUH +0x8EC8 0xB841 #HANGUL SYLLABLE RIEUL YE KIYEOK +0x8EC9 0xB842 #HANGUL SYLLABLE RIEUL YE SSANGKIYEOK +0x8ECA 0xB843 #HANGUL SYLLABLE RIEUL YE KIYEOKSIOS +0x8ECB 0xB845 #HANGUL SYLLABLE RIEUL YE NIEUNCIEUC +0x8ECC 0xB846 #HANGUL SYLLABLE RIEUL YE NIEUNHIEUH +0x8ECD 0xB847 #HANGUL SYLLABLE RIEUL YE TIKEUT +0x8ECE 0xB848 #HANGUL SYLLABLE RIEUL YE RIEUL +0x8ECF 0xB849 #HANGUL SYLLABLE RIEUL YE RIEULKIYEOK +0x8ED0 0xB84A #HANGUL SYLLABLE RIEUL YE RIEULMIEUM +0x8ED1 0xB84B #HANGUL SYLLABLE RIEUL YE RIEULPIEUP +0x8ED2 0xB84C #HANGUL SYLLABLE RIEUL YE RIEULSIOS +0x8ED3 0xB84D #HANGUL SYLLABLE RIEUL YE RIEULTHIEUTH +0x8ED4 0xB84E #HANGUL SYLLABLE RIEUL YE RIEULPHIEUPH +0x8ED5 0xB84F #HANGUL SYLLABLE RIEUL YE RIEULHIEUH +0x8ED6 0xB850 #HANGUL SYLLABLE RIEUL YE MIEUM +0x8ED7 0xB852 #HANGUL SYLLABLE RIEUL YE PIEUPSIOS +0x8ED8 0xB854 #HANGUL SYLLABLE RIEUL YE SSANGSIOS +0x8ED9 0xB855 #HANGUL SYLLABLE RIEUL YE IEUNG +0x8EDA 0xB856 #HANGUL SYLLABLE RIEUL YE CIEUC +0x8EDB 0xB857 #HANGUL SYLLABLE RIEUL YE CHIEUCH +0x8EDC 0xB858 #HANGUL SYLLABLE RIEUL YE KHIEUKH +0x8EDD 0xB859 #HANGUL SYLLABLE RIEUL YE THIEUTH +0x8EDE 0xB85A #HANGUL SYLLABLE RIEUL YE PHIEUPH +0x8EDF 0xB85B #HANGUL SYLLABLE RIEUL YE HIEUH +0x8EE0 0xB85E #HANGUL SYLLABLE RIEUL O SSANGKIYEOK +0x8EE1 0xB85F #HANGUL SYLLABLE RIEUL O KIYEOKSIOS +0x8EE2 0xB861 #HANGUL SYLLABLE RIEUL O NIEUNCIEUC +0x8EE3 0xB862 #HANGUL SYLLABLE RIEUL O NIEUNHIEUH +0x8EE4 0xB863 #HANGUL SYLLABLE RIEUL O TIKEUT +0x8EE5 0xB865 #HANGUL SYLLABLE RIEUL O RIEULKIYEOK +0x8EE6 0xB866 #HANGUL SYLLABLE RIEUL O RIEULMIEUM +0x8EE7 0xB867 #HANGUL SYLLABLE RIEUL O RIEULPIEUP +0x8EE8 0xB868 #HANGUL SYLLABLE RIEUL O RIEULSIOS +0x8EE9 0xB869 #HANGUL SYLLABLE RIEUL O RIEULTHIEUTH +0x8EEA 0xB86A #HANGUL SYLLABLE RIEUL O RIEULPHIEUPH +0x8EEB 0xB86B #HANGUL SYLLABLE RIEUL O RIEULHIEUH +0x8EEC 0xB86E #HANGUL SYLLABLE RIEUL O PIEUPSIOS +0x8EED 0xB870 #HANGUL SYLLABLE RIEUL O SSANGSIOS +0x8EEE 0xB872 #HANGUL SYLLABLE RIEUL O CIEUC +0x8EEF 0xB873 #HANGUL SYLLABLE RIEUL O CHIEUCH +0x8EF0 0xB874 #HANGUL SYLLABLE RIEUL O KHIEUKH +0x8EF1 0xB875 #HANGUL SYLLABLE RIEUL O THIEUTH +0x8EF2 0xB876 #HANGUL SYLLABLE RIEUL O PHIEUPH +0x8EF3 0xB877 #HANGUL SYLLABLE RIEUL O HIEUH +0x8EF4 0xB879 #HANGUL SYLLABLE RIEUL WA KIYEOK +0x8EF5 0xB87A #HANGUL SYLLABLE RIEUL WA SSANGKIYEOK +0x8EF6 0xB87B #HANGUL SYLLABLE RIEUL WA KIYEOKSIOS +0x8EF7 0xB87D #HANGUL SYLLABLE RIEUL WA NIEUNCIEUC +0x8EF8 0xB87E #HANGUL SYLLABLE RIEUL WA NIEUNHIEUH +0x8EF9 0xB87F #HANGUL SYLLABLE RIEUL WA TIKEUT +0x8EFA 0xB880 #HANGUL SYLLABLE RIEUL WA RIEUL +0x8EFB 0xB881 #HANGUL SYLLABLE RIEUL WA RIEULKIYEOK +0x8EFC 0xB882 #HANGUL SYLLABLE RIEUL WA RIEULMIEUM +0x8EFD 0xB883 #HANGUL SYLLABLE RIEUL WA RIEULPIEUP +0x8EFE 0xB884 #HANGUL SYLLABLE RIEUL WA RIEULSIOS +0x8F41 0xB885 #HANGUL SYLLABLE RIEUL WA RIEULTHIEUTH +0x8F42 0xB886 #HANGUL SYLLABLE RIEUL WA RIEULPHIEUPH +0x8F43 0xB887 #HANGUL SYLLABLE RIEUL WA RIEULHIEUH +0x8F44 0xB888 #HANGUL SYLLABLE RIEUL WA MIEUM +0x8F45 0xB889 #HANGUL SYLLABLE RIEUL WA PIEUP +0x8F46 0xB88A #HANGUL SYLLABLE RIEUL WA PIEUPSIOS +0x8F47 0xB88B #HANGUL SYLLABLE RIEUL WA SIOS +0x8F48 0xB88C #HANGUL SYLLABLE RIEUL WA SSANGSIOS +0x8F49 0xB88E #HANGUL SYLLABLE RIEUL WA CIEUC +0x8F4A 0xB88F #HANGUL SYLLABLE RIEUL WA CHIEUCH +0x8F4B 0xB890 #HANGUL SYLLABLE RIEUL WA KHIEUKH +0x8F4C 0xB891 #HANGUL SYLLABLE RIEUL WA THIEUTH +0x8F4D 0xB892 #HANGUL SYLLABLE RIEUL WA PHIEUPH +0x8F4E 0xB893 #HANGUL SYLLABLE RIEUL WA HIEUH +0x8F4F 0xB894 #HANGUL SYLLABLE RIEUL WAE +0x8F50 0xB895 #HANGUL SYLLABLE RIEUL WAE KIYEOK +0x8F51 0xB896 #HANGUL SYLLABLE RIEUL WAE SSANGKIYEOK +0x8F52 0xB897 #HANGUL SYLLABLE RIEUL WAE KIYEOKSIOS +0x8F53 0xB898 #HANGUL SYLLABLE RIEUL WAE NIEUN +0x8F54 0xB899 #HANGUL SYLLABLE RIEUL WAE NIEUNCIEUC +0x8F55 0xB89A #HANGUL SYLLABLE RIEUL WAE NIEUNHIEUH +0x8F56 0xB89B #HANGUL SYLLABLE RIEUL WAE TIKEUT +0x8F57 0xB89C #HANGUL SYLLABLE RIEUL WAE RIEUL +0x8F58 0xB89D #HANGUL SYLLABLE RIEUL WAE RIEULKIYEOK +0x8F59 0xB89E #HANGUL SYLLABLE RIEUL WAE RIEULMIEUM +0x8F5A 0xB89F #HANGUL SYLLABLE RIEUL WAE RIEULPIEUP +0x8F61 0xB8A0 #HANGUL SYLLABLE RIEUL WAE RIEULSIOS +0x8F62 0xB8A1 #HANGUL SYLLABLE RIEUL WAE RIEULTHIEUTH +0x8F63 0xB8A2 #HANGUL SYLLABLE RIEUL WAE RIEULPHIEUPH +0x8F64 0xB8A3 #HANGUL SYLLABLE RIEUL WAE RIEULHIEUH +0x8F65 0xB8A4 #HANGUL SYLLABLE RIEUL WAE MIEUM +0x8F66 0xB8A5 #HANGUL SYLLABLE RIEUL WAE PIEUP +0x8F67 0xB8A6 #HANGUL SYLLABLE RIEUL WAE PIEUPSIOS +0x8F68 0xB8A7 #HANGUL SYLLABLE RIEUL WAE SIOS +0x8F69 0xB8A9 #HANGUL SYLLABLE RIEUL WAE IEUNG +0x8F6A 0xB8AA #HANGUL SYLLABLE RIEUL WAE CIEUC +0x8F6B 0xB8AB #HANGUL SYLLABLE RIEUL WAE CHIEUCH +0x8F6C 0xB8AC #HANGUL SYLLABLE RIEUL WAE KHIEUKH +0x8F6D 0xB8AD #HANGUL SYLLABLE RIEUL WAE THIEUTH +0x8F6E 0xB8AE #HANGUL SYLLABLE RIEUL WAE PHIEUPH +0x8F6F 0xB8AF #HANGUL SYLLABLE RIEUL WAE HIEUH +0x8F70 0xB8B1 #HANGUL SYLLABLE RIEUL OE KIYEOK +0x8F71 0xB8B2 #HANGUL SYLLABLE RIEUL OE SSANGKIYEOK +0x8F72 0xB8B3 #HANGUL SYLLABLE RIEUL OE KIYEOKSIOS +0x8F73 0xB8B5 #HANGUL SYLLABLE RIEUL OE NIEUNCIEUC +0x8F74 0xB8B6 #HANGUL SYLLABLE RIEUL OE NIEUNHIEUH +0x8F75 0xB8B7 #HANGUL SYLLABLE RIEUL OE TIKEUT +0x8F76 0xB8B9 #HANGUL SYLLABLE RIEUL OE RIEULKIYEOK +0x8F77 0xB8BA #HANGUL SYLLABLE RIEUL OE RIEULMIEUM +0x8F78 0xB8BB #HANGUL SYLLABLE RIEUL OE RIEULPIEUP +0x8F79 0xB8BC #HANGUL SYLLABLE RIEUL OE RIEULSIOS +0x8F7A 0xB8BD #HANGUL SYLLABLE RIEUL OE RIEULTHIEUTH +0x8F81 0xB8BE #HANGUL SYLLABLE RIEUL OE RIEULPHIEUPH +0x8F82 0xB8BF #HANGUL SYLLABLE RIEUL OE RIEULHIEUH +0x8F83 0xB8C2 #HANGUL SYLLABLE RIEUL OE PIEUPSIOS +0x8F84 0xB8C4 #HANGUL SYLLABLE RIEUL OE SSANGSIOS +0x8F85 0xB8C6 #HANGUL SYLLABLE RIEUL OE CIEUC +0x8F86 0xB8C7 #HANGUL SYLLABLE RIEUL OE CHIEUCH +0x8F87 0xB8C8 #HANGUL SYLLABLE RIEUL OE KHIEUKH +0x8F88 0xB8C9 #HANGUL SYLLABLE RIEUL OE THIEUTH +0x8F89 0xB8CA #HANGUL SYLLABLE RIEUL OE PHIEUPH +0x8F8A 0xB8CB #HANGUL SYLLABLE RIEUL OE HIEUH +0x8F8B 0xB8CD #HANGUL SYLLABLE RIEUL YO KIYEOK +0x8F8C 0xB8CE #HANGUL SYLLABLE RIEUL YO SSANGKIYEOK +0x8F8D 0xB8CF #HANGUL SYLLABLE RIEUL YO KIYEOKSIOS +0x8F8E 0xB8D1 #HANGUL SYLLABLE RIEUL YO NIEUNCIEUC +0x8F8F 0xB8D2 #HANGUL SYLLABLE RIEUL YO NIEUNHIEUH +0x8F90 0xB8D3 #HANGUL SYLLABLE RIEUL YO TIKEUT +0x8F91 0xB8D5 #HANGUL SYLLABLE RIEUL YO RIEULKIYEOK +0x8F92 0xB8D6 #HANGUL SYLLABLE RIEUL YO RIEULMIEUM +0x8F93 0xB8D7 #HANGUL SYLLABLE RIEUL YO RIEULPIEUP +0x8F94 0xB8D8 #HANGUL SYLLABLE RIEUL YO RIEULSIOS +0x8F95 0xB8D9 #HANGUL SYLLABLE RIEUL YO RIEULTHIEUTH +0x8F96 0xB8DA #HANGUL SYLLABLE RIEUL YO RIEULPHIEUPH +0x8F97 0xB8DB #HANGUL SYLLABLE RIEUL YO RIEULHIEUH +0x8F98 0xB8DC #HANGUL SYLLABLE RIEUL YO MIEUM +0x8F99 0xB8DE #HANGUL SYLLABLE RIEUL YO PIEUPSIOS +0x8F9A 0xB8E0 #HANGUL SYLLABLE RIEUL YO SSANGSIOS +0x8F9B 0xB8E2 #HANGUL SYLLABLE RIEUL YO CIEUC +0x8F9C 0xB8E3 #HANGUL SYLLABLE RIEUL YO CHIEUCH +0x8F9D 0xB8E4 #HANGUL SYLLABLE RIEUL YO KHIEUKH +0x8F9E 0xB8E5 #HANGUL SYLLABLE RIEUL YO THIEUTH +0x8F9F 0xB8E6 #HANGUL SYLLABLE RIEUL YO PHIEUPH +0x8FA0 0xB8E7 #HANGUL SYLLABLE RIEUL YO HIEUH +0x8FA1 0xB8EA #HANGUL SYLLABLE RIEUL U SSANGKIYEOK +0x8FA2 0xB8EB #HANGUL SYLLABLE RIEUL U KIYEOKSIOS +0x8FA3 0xB8ED #HANGUL SYLLABLE RIEUL U NIEUNCIEUC +0x8FA4 0xB8EE #HANGUL SYLLABLE RIEUL U NIEUNHIEUH +0x8FA5 0xB8EF #HANGUL SYLLABLE RIEUL U TIKEUT +0x8FA6 0xB8F1 #HANGUL SYLLABLE RIEUL U RIEULKIYEOK +0x8FA7 0xB8F2 #HANGUL SYLLABLE RIEUL U RIEULMIEUM +0x8FA8 0xB8F3 #HANGUL SYLLABLE RIEUL U RIEULPIEUP +0x8FA9 0xB8F4 #HANGUL SYLLABLE RIEUL U RIEULSIOS +0x8FAA 0xB8F5 #HANGUL SYLLABLE RIEUL U RIEULTHIEUTH +0x8FAB 0xB8F6 #HANGUL SYLLABLE RIEUL U RIEULPHIEUPH +0x8FAC 0xB8F7 #HANGUL SYLLABLE RIEUL U RIEULHIEUH +0x8FAD 0xB8FA #HANGUL SYLLABLE RIEUL U PIEUPSIOS +0x8FAE 0xB8FC #HANGUL SYLLABLE RIEUL U SSANGSIOS +0x8FAF 0xB8FE #HANGUL SYLLABLE RIEUL U CIEUC +0x8FB0 0xB8FF #HANGUL SYLLABLE RIEUL U CHIEUCH +0x8FB1 0xB900 #HANGUL SYLLABLE RIEUL U KHIEUKH +0x8FB2 0xB901 #HANGUL SYLLABLE RIEUL U THIEUTH +0x8FB3 0xB902 #HANGUL SYLLABLE RIEUL U PHIEUPH +0x8FB4 0xB903 #HANGUL SYLLABLE RIEUL U HIEUH +0x8FB5 0xB905 #HANGUL SYLLABLE RIEUL WEO KIYEOK +0x8FB6 0xB906 #HANGUL SYLLABLE RIEUL WEO SSANGKIYEOK +0x8FB7 0xB907 #HANGUL SYLLABLE RIEUL WEO KIYEOKSIOS +0x8FB8 0xB908 #HANGUL SYLLABLE RIEUL WEO NIEUN +0x8FB9 0xB909 #HANGUL SYLLABLE RIEUL WEO NIEUNCIEUC +0x8FBA 0xB90A #HANGUL SYLLABLE RIEUL WEO NIEUNHIEUH +0x8FBB 0xB90B #HANGUL SYLLABLE RIEUL WEO TIKEUT +0x8FBC 0xB90C #HANGUL SYLLABLE RIEUL WEO RIEUL +0x8FBD 0xB90D #HANGUL SYLLABLE RIEUL WEO RIEULKIYEOK +0x8FBE 0xB90E #HANGUL SYLLABLE RIEUL WEO RIEULMIEUM +0x8FBF 0xB90F #HANGUL SYLLABLE RIEUL WEO RIEULPIEUP +0x8FC0 0xB910 #HANGUL SYLLABLE RIEUL WEO RIEULSIOS +0x8FC1 0xB911 #HANGUL SYLLABLE RIEUL WEO RIEULTHIEUTH +0x8FC2 0xB912 #HANGUL SYLLABLE RIEUL WEO RIEULPHIEUPH +0x8FC3 0xB913 #HANGUL SYLLABLE RIEUL WEO RIEULHIEUH +0x8FC4 0xB914 #HANGUL SYLLABLE RIEUL WEO MIEUM +0x8FC5 0xB915 #HANGUL SYLLABLE RIEUL WEO PIEUP +0x8FC6 0xB916 #HANGUL SYLLABLE RIEUL WEO PIEUPSIOS +0x8FC7 0xB917 #HANGUL SYLLABLE RIEUL WEO SIOS +0x8FC8 0xB919 #HANGUL SYLLABLE RIEUL WEO IEUNG +0x8FC9 0xB91A #HANGUL SYLLABLE RIEUL WEO CIEUC +0x8FCA 0xB91B #HANGUL SYLLABLE RIEUL WEO CHIEUCH +0x8FCB 0xB91C #HANGUL SYLLABLE RIEUL WEO KHIEUKH +0x8FCC 0xB91D #HANGUL SYLLABLE RIEUL WEO THIEUTH +0x8FCD 0xB91E #HANGUL SYLLABLE RIEUL WEO PHIEUPH +0x8FCE 0xB91F #HANGUL SYLLABLE RIEUL WEO HIEUH +0x8FCF 0xB921 #HANGUL SYLLABLE RIEUL WE KIYEOK +0x8FD0 0xB922 #HANGUL SYLLABLE RIEUL WE SSANGKIYEOK +0x8FD1 0xB923 #HANGUL SYLLABLE RIEUL WE KIYEOKSIOS +0x8FD2 0xB924 #HANGUL SYLLABLE RIEUL WE NIEUN +0x8FD3 0xB925 #HANGUL SYLLABLE RIEUL WE NIEUNCIEUC +0x8FD4 0xB926 #HANGUL SYLLABLE RIEUL WE NIEUNHIEUH +0x8FD5 0xB927 #HANGUL SYLLABLE RIEUL WE TIKEUT +0x8FD6 0xB928 #HANGUL SYLLABLE RIEUL WE RIEUL +0x8FD7 0xB929 #HANGUL SYLLABLE RIEUL WE RIEULKIYEOK +0x8FD8 0xB92A #HANGUL SYLLABLE RIEUL WE RIEULMIEUM +0x8FD9 0xB92B #HANGUL SYLLABLE RIEUL WE RIEULPIEUP +0x8FDA 0xB92C #HANGUL SYLLABLE RIEUL WE RIEULSIOS +0x8FDB 0xB92D #HANGUL SYLLABLE RIEUL WE RIEULTHIEUTH +0x8FDC 0xB92E #HANGUL SYLLABLE RIEUL WE RIEULPHIEUPH +0x8FDD 0xB92F #HANGUL SYLLABLE RIEUL WE RIEULHIEUH +0x8FDE 0xB930 #HANGUL SYLLABLE RIEUL WE MIEUM +0x8FDF 0xB931 #HANGUL SYLLABLE RIEUL WE PIEUP +0x8FE0 0xB932 #HANGUL SYLLABLE RIEUL WE PIEUPSIOS +0x8FE1 0xB933 #HANGUL SYLLABLE RIEUL WE SIOS +0x8FE2 0xB934 #HANGUL SYLLABLE RIEUL WE SSANGSIOS +0x8FE3 0xB935 #HANGUL SYLLABLE RIEUL WE IEUNG +0x8FE4 0xB936 #HANGUL SYLLABLE RIEUL WE CIEUC +0x8FE5 0xB937 #HANGUL SYLLABLE RIEUL WE CHIEUCH +0x8FE6 0xB938 #HANGUL SYLLABLE RIEUL WE KHIEUKH +0x8FE7 0xB939 #HANGUL SYLLABLE RIEUL WE THIEUTH +0x8FE8 0xB93A #HANGUL SYLLABLE RIEUL WE PHIEUPH +0x8FE9 0xB93B #HANGUL SYLLABLE RIEUL WE HIEUH +0x8FEA 0xB93E #HANGUL SYLLABLE RIEUL WI SSANGKIYEOK +0x8FEB 0xB93F #HANGUL SYLLABLE RIEUL WI KIYEOKSIOS +0x8FEC 0xB941 #HANGUL SYLLABLE RIEUL WI NIEUNCIEUC +0x8FED 0xB942 #HANGUL SYLLABLE RIEUL WI NIEUNHIEUH +0x8FEE 0xB943 #HANGUL SYLLABLE RIEUL WI TIKEUT +0x8FEF 0xB945 #HANGUL SYLLABLE RIEUL WI RIEULKIYEOK +0x8FF0 0xB946 #HANGUL SYLLABLE RIEUL WI RIEULMIEUM +0x8FF1 0xB947 #HANGUL SYLLABLE RIEUL WI RIEULPIEUP +0x8FF2 0xB948 #HANGUL SYLLABLE RIEUL WI RIEULSIOS +0x8FF3 0xB949 #HANGUL SYLLABLE RIEUL WI RIEULTHIEUTH +0x8FF4 0xB94A #HANGUL SYLLABLE RIEUL WI RIEULPHIEUPH +0x8FF5 0xB94B #HANGUL SYLLABLE RIEUL WI RIEULHIEUH +0x8FF6 0xB94D #HANGUL SYLLABLE RIEUL WI PIEUP +0x8FF7 0xB94E #HANGUL SYLLABLE RIEUL WI PIEUPSIOS +0x8FF8 0xB950 #HANGUL SYLLABLE RIEUL WI SSANGSIOS +0x8FF9 0xB952 #HANGUL SYLLABLE RIEUL WI CIEUC +0x8FFA 0xB953 #HANGUL SYLLABLE RIEUL WI CHIEUCH +0x8FFB 0xB954 #HANGUL SYLLABLE RIEUL WI KHIEUKH +0x8FFC 0xB955 #HANGUL SYLLABLE RIEUL WI THIEUTH +0x8FFD 0xB956 #HANGUL SYLLABLE RIEUL WI PHIEUPH +0x8FFE 0xB957 #HANGUL SYLLABLE RIEUL WI HIEUH +0x9041 0xB95A #HANGUL SYLLABLE RIEUL YU SSANGKIYEOK +0x9042 0xB95B #HANGUL SYLLABLE RIEUL YU KIYEOKSIOS +0x9043 0xB95D #HANGUL SYLLABLE RIEUL YU NIEUNCIEUC +0x9044 0xB95E #HANGUL SYLLABLE RIEUL YU NIEUNHIEUH +0x9045 0xB95F #HANGUL SYLLABLE RIEUL YU TIKEUT +0x9046 0xB961 #HANGUL SYLLABLE RIEUL YU RIEULKIYEOK +0x9047 0xB962 #HANGUL SYLLABLE RIEUL YU RIEULMIEUM +0x9048 0xB963 #HANGUL SYLLABLE RIEUL YU RIEULPIEUP +0x9049 0xB964 #HANGUL SYLLABLE RIEUL YU RIEULSIOS +0x904A 0xB965 #HANGUL SYLLABLE RIEUL YU RIEULTHIEUTH +0x904B 0xB966 #HANGUL SYLLABLE RIEUL YU RIEULPHIEUPH +0x904C 0xB967 #HANGUL SYLLABLE RIEUL YU RIEULHIEUH +0x904D 0xB96A #HANGUL SYLLABLE RIEUL YU PIEUPSIOS +0x904E 0xB96C #HANGUL SYLLABLE RIEUL YU SSANGSIOS +0x904F 0xB96E #HANGUL SYLLABLE RIEUL YU CIEUC +0x9050 0xB96F #HANGUL SYLLABLE RIEUL YU CHIEUCH +0x9051 0xB970 #HANGUL SYLLABLE RIEUL YU KHIEUKH +0x9052 0xB971 #HANGUL SYLLABLE RIEUL YU THIEUTH +0x9053 0xB972 #HANGUL SYLLABLE RIEUL YU PHIEUPH +0x9054 0xB973 #HANGUL SYLLABLE RIEUL YU HIEUH +0x9055 0xB976 #HANGUL SYLLABLE RIEUL EU SSANGKIYEOK +0x9056 0xB977 #HANGUL SYLLABLE RIEUL EU KIYEOKSIOS +0x9057 0xB979 #HANGUL SYLLABLE RIEUL EU NIEUNCIEUC +0x9058 0xB97A #HANGUL SYLLABLE RIEUL EU NIEUNHIEUH +0x9059 0xB97B #HANGUL SYLLABLE RIEUL EU TIKEUT +0x905A 0xB97D #HANGUL SYLLABLE RIEUL EU RIEULKIYEOK +0x9061 0xB97E #HANGUL SYLLABLE RIEUL EU RIEULMIEUM +0x9062 0xB97F #HANGUL SYLLABLE RIEUL EU RIEULPIEUP +0x9063 0xB980 #HANGUL SYLLABLE RIEUL EU RIEULSIOS +0x9064 0xB981 #HANGUL SYLLABLE RIEUL EU RIEULTHIEUTH +0x9065 0xB982 #HANGUL SYLLABLE RIEUL EU RIEULPHIEUPH +0x9066 0xB983 #HANGUL SYLLABLE RIEUL EU RIEULHIEUH +0x9067 0xB986 #HANGUL SYLLABLE RIEUL EU PIEUPSIOS +0x9068 0xB988 #HANGUL SYLLABLE RIEUL EU SSANGSIOS +0x9069 0xB98B #HANGUL SYLLABLE RIEUL EU CHIEUCH +0x906A 0xB98C #HANGUL SYLLABLE RIEUL EU KHIEUKH +0x906B 0xB98F #HANGUL SYLLABLE RIEUL EU HIEUH +0x906C 0xB990 #HANGUL SYLLABLE RIEUL YI +0x906D 0xB991 #HANGUL SYLLABLE RIEUL YI KIYEOK +0x906E 0xB992 #HANGUL SYLLABLE RIEUL YI SSANGKIYEOK +0x906F 0xB993 #HANGUL SYLLABLE RIEUL YI KIYEOKSIOS +0x9070 0xB994 #HANGUL SYLLABLE RIEUL YI NIEUN +0x9071 0xB995 #HANGUL SYLLABLE RIEUL YI NIEUNCIEUC +0x9072 0xB996 #HANGUL SYLLABLE RIEUL YI NIEUNHIEUH +0x9073 0xB997 #HANGUL SYLLABLE RIEUL YI TIKEUT +0x9074 0xB998 #HANGUL SYLLABLE RIEUL YI RIEUL +0x9075 0xB999 #HANGUL SYLLABLE RIEUL YI RIEULKIYEOK +0x9076 0xB99A #HANGUL SYLLABLE RIEUL YI RIEULMIEUM +0x9077 0xB99B #HANGUL SYLLABLE RIEUL YI RIEULPIEUP +0x9078 0xB99C #HANGUL SYLLABLE RIEUL YI RIEULSIOS +0x9079 0xB99D #HANGUL SYLLABLE RIEUL YI RIEULTHIEUTH +0x907A 0xB99E #HANGUL SYLLABLE RIEUL YI RIEULPHIEUPH +0x9081 0xB99F #HANGUL SYLLABLE RIEUL YI RIEULHIEUH +0x9082 0xB9A0 #HANGUL SYLLABLE RIEUL YI MIEUM +0x9083 0xB9A1 #HANGUL SYLLABLE RIEUL YI PIEUP +0x9084 0xB9A2 #HANGUL SYLLABLE RIEUL YI PIEUPSIOS +0x9085 0xB9A3 #HANGUL SYLLABLE RIEUL YI SIOS +0x9086 0xB9A4 #HANGUL SYLLABLE RIEUL YI SSANGSIOS +0x9087 0xB9A5 #HANGUL SYLLABLE RIEUL YI IEUNG +0x9088 0xB9A6 #HANGUL SYLLABLE RIEUL YI CIEUC +0x9089 0xB9A7 #HANGUL SYLLABLE RIEUL YI CHIEUCH +0x908A 0xB9A8 #HANGUL SYLLABLE RIEUL YI KHIEUKH +0x908B 0xB9A9 #HANGUL SYLLABLE RIEUL YI THIEUTH +0x908C 0xB9AA #HANGUL SYLLABLE RIEUL YI PHIEUPH +0x908D 0xB9AB #HANGUL SYLLABLE RIEUL YI HIEUH +0x908E 0xB9AE #HANGUL SYLLABLE RIEUL I SSANGKIYEOK +0x908F 0xB9AF #HANGUL SYLLABLE RIEUL I KIYEOKSIOS +0x9090 0xB9B1 #HANGUL SYLLABLE RIEUL I NIEUNCIEUC +0x9091 0xB9B2 #HANGUL SYLLABLE RIEUL I NIEUNHIEUH +0x9092 0xB9B3 #HANGUL SYLLABLE RIEUL I TIKEUT +0x9093 0xB9B5 #HANGUL SYLLABLE RIEUL I RIEULKIYEOK +0x9094 0xB9B6 #HANGUL SYLLABLE RIEUL I RIEULMIEUM +0x9095 0xB9B7 #HANGUL SYLLABLE RIEUL I RIEULPIEUP +0x9096 0xB9B8 #HANGUL SYLLABLE RIEUL I RIEULSIOS +0x9097 0xB9B9 #HANGUL SYLLABLE RIEUL I RIEULTHIEUTH +0x9098 0xB9BA #HANGUL SYLLABLE RIEUL I RIEULPHIEUPH +0x9099 0xB9BB #HANGUL SYLLABLE RIEUL I RIEULHIEUH +0x909A 0xB9BE #HANGUL SYLLABLE RIEUL I PIEUPSIOS +0x909B 0xB9C0 #HANGUL SYLLABLE RIEUL I SSANGSIOS +0x909C 0xB9C2 #HANGUL SYLLABLE RIEUL I CIEUC +0x909D 0xB9C3 #HANGUL SYLLABLE RIEUL I CHIEUCH +0x909E 0xB9C4 #HANGUL SYLLABLE RIEUL I KHIEUKH +0x909F 0xB9C5 #HANGUL SYLLABLE RIEUL I THIEUTH +0x90A0 0xB9C6 #HANGUL SYLLABLE RIEUL I PHIEUPH +0x90A1 0xB9C7 #HANGUL SYLLABLE RIEUL I HIEUH +0x90A2 0xB9CA #HANGUL SYLLABLE MIEUM A SSANGKIYEOK +0x90A3 0xB9CB #HANGUL SYLLABLE MIEUM A KIYEOKSIOS +0x90A4 0xB9CD #HANGUL SYLLABLE MIEUM A NIEUNCIEUC +0x90A5 0xB9D3 #HANGUL SYLLABLE MIEUM A RIEULPIEUP +0x90A6 0xB9D4 #HANGUL SYLLABLE MIEUM A RIEULSIOS +0x90A7 0xB9D5 #HANGUL SYLLABLE MIEUM A RIEULTHIEUTH +0x90A8 0xB9D6 #HANGUL SYLLABLE MIEUM A RIEULPHIEUPH +0x90A9 0xB9D7 #HANGUL SYLLABLE MIEUM A RIEULHIEUH +0x90AA 0xB9DA #HANGUL SYLLABLE MIEUM A PIEUPSIOS +0x90AB 0xB9DC #HANGUL SYLLABLE MIEUM A SSANGSIOS +0x90AC 0xB9DF #HANGUL SYLLABLE MIEUM A CHIEUCH +0x90AD 0xB9E0 #HANGUL SYLLABLE MIEUM A KHIEUKH +0x90AE 0xB9E2 #HANGUL SYLLABLE MIEUM A PHIEUPH +0x90AF 0xB9E6 #HANGUL SYLLABLE MIEUM AE SSANGKIYEOK +0x90B0 0xB9E7 #HANGUL SYLLABLE MIEUM AE KIYEOKSIOS +0x90B1 0xB9E9 #HANGUL SYLLABLE MIEUM AE NIEUNCIEUC +0x90B2 0xB9EA #HANGUL SYLLABLE MIEUM AE NIEUNHIEUH +0x90B3 0xB9EB #HANGUL SYLLABLE MIEUM AE TIKEUT +0x90B4 0xB9ED #HANGUL SYLLABLE MIEUM AE RIEULKIYEOK +0x90B5 0xB9EE #HANGUL SYLLABLE MIEUM AE RIEULMIEUM +0x90B6 0xB9EF #HANGUL SYLLABLE MIEUM AE RIEULPIEUP +0x90B7 0xB9F0 #HANGUL SYLLABLE MIEUM AE RIEULSIOS +0x90B8 0xB9F1 #HANGUL SYLLABLE MIEUM AE RIEULTHIEUTH +0x90B9 0xB9F2 #HANGUL SYLLABLE MIEUM AE RIEULPHIEUPH +0x90BA 0xB9F3 #HANGUL SYLLABLE MIEUM AE RIEULHIEUH +0x90BB 0xB9F6 #HANGUL SYLLABLE MIEUM AE PIEUPSIOS +0x90BC 0xB9FB #HANGUL SYLLABLE MIEUM AE CHIEUCH +0x90BD 0xB9FC #HANGUL SYLLABLE MIEUM AE KHIEUKH +0x90BE 0xB9FD #HANGUL SYLLABLE MIEUM AE THIEUTH +0x90BF 0xB9FE #HANGUL SYLLABLE MIEUM AE PHIEUPH +0x90C0 0xB9FF #HANGUL SYLLABLE MIEUM AE HIEUH +0x90C1 0xBA02 #HANGUL SYLLABLE MIEUM YA SSANGKIYEOK +0x90C2 0xBA03 #HANGUL SYLLABLE MIEUM YA KIYEOKSIOS +0x90C3 0xBA04 #HANGUL SYLLABLE MIEUM YA NIEUN +0x90C4 0xBA05 #HANGUL SYLLABLE MIEUM YA NIEUNCIEUC +0x90C5 0xBA06 #HANGUL SYLLABLE MIEUM YA NIEUNHIEUH +0x90C6 0xBA07 #HANGUL SYLLABLE MIEUM YA TIKEUT +0x90C7 0xBA09 #HANGUL SYLLABLE MIEUM YA RIEULKIYEOK +0x90C8 0xBA0A #HANGUL SYLLABLE MIEUM YA RIEULMIEUM +0x90C9 0xBA0B #HANGUL SYLLABLE MIEUM YA RIEULPIEUP +0x90CA 0xBA0C #HANGUL SYLLABLE MIEUM YA RIEULSIOS +0x90CB 0xBA0D #HANGUL SYLLABLE MIEUM YA RIEULTHIEUTH +0x90CC 0xBA0E #HANGUL SYLLABLE MIEUM YA RIEULPHIEUPH +0x90CD 0xBA0F #HANGUL SYLLABLE MIEUM YA RIEULHIEUH +0x90CE 0xBA10 #HANGUL SYLLABLE MIEUM YA MIEUM +0x90CF 0xBA11 #HANGUL SYLLABLE MIEUM YA PIEUP +0x90D0 0xBA12 #HANGUL SYLLABLE MIEUM YA PIEUPSIOS +0x90D1 0xBA13 #HANGUL SYLLABLE MIEUM YA SIOS +0x90D2 0xBA14 #HANGUL SYLLABLE MIEUM YA SSANGSIOS +0x90D3 0xBA16 #HANGUL SYLLABLE MIEUM YA CIEUC +0x90D4 0xBA17 #HANGUL SYLLABLE MIEUM YA CHIEUCH +0x90D5 0xBA18 #HANGUL SYLLABLE MIEUM YA KHIEUKH +0x90D6 0xBA19 #HANGUL SYLLABLE MIEUM YA THIEUTH +0x90D7 0xBA1A #HANGUL SYLLABLE MIEUM YA PHIEUPH +0x90D8 0xBA1B #HANGUL SYLLABLE MIEUM YA HIEUH +0x90D9 0xBA1C #HANGUL SYLLABLE MIEUM YAE +0x90DA 0xBA1D #HANGUL SYLLABLE MIEUM YAE KIYEOK +0x90DB 0xBA1E #HANGUL SYLLABLE MIEUM YAE SSANGKIYEOK +0x90DC 0xBA1F #HANGUL SYLLABLE MIEUM YAE KIYEOKSIOS +0x90DD 0xBA20 #HANGUL SYLLABLE MIEUM YAE NIEUN +0x90DE 0xBA21 #HANGUL SYLLABLE MIEUM YAE NIEUNCIEUC +0x90DF 0xBA22 #HANGUL SYLLABLE MIEUM YAE NIEUNHIEUH +0x90E0 0xBA23 #HANGUL SYLLABLE MIEUM YAE TIKEUT +0x90E1 0xBA24 #HANGUL SYLLABLE MIEUM YAE RIEUL +0x90E2 0xBA25 #HANGUL SYLLABLE MIEUM YAE RIEULKIYEOK +0x90E3 0xBA26 #HANGUL SYLLABLE MIEUM YAE RIEULMIEUM +0x90E4 0xBA27 #HANGUL SYLLABLE MIEUM YAE RIEULPIEUP +0x90E5 0xBA28 #HANGUL SYLLABLE MIEUM YAE RIEULSIOS +0x90E6 0xBA29 #HANGUL SYLLABLE MIEUM YAE RIEULTHIEUTH +0x90E7 0xBA2A #HANGUL SYLLABLE MIEUM YAE RIEULPHIEUPH +0x90E8 0xBA2B #HANGUL SYLLABLE MIEUM YAE RIEULHIEUH +0x90E9 0xBA2C #HANGUL SYLLABLE MIEUM YAE MIEUM +0x90EA 0xBA2D #HANGUL SYLLABLE MIEUM YAE PIEUP +0x90EB 0xBA2E #HANGUL SYLLABLE MIEUM YAE PIEUPSIOS +0x90EC 0xBA2F #HANGUL SYLLABLE MIEUM YAE SIOS +0x90ED 0xBA30 #HANGUL SYLLABLE MIEUM YAE SSANGSIOS +0x90EE 0xBA31 #HANGUL SYLLABLE MIEUM YAE IEUNG +0x90EF 0xBA32 #HANGUL SYLLABLE MIEUM YAE CIEUC +0x90F0 0xBA33 #HANGUL SYLLABLE MIEUM YAE CHIEUCH +0x90F1 0xBA34 #HANGUL SYLLABLE MIEUM YAE KHIEUKH +0x90F2 0xBA35 #HANGUL SYLLABLE MIEUM YAE THIEUTH +0x90F3 0xBA36 #HANGUL SYLLABLE MIEUM YAE PHIEUPH +0x90F4 0xBA37 #HANGUL SYLLABLE MIEUM YAE HIEUH +0x90F5 0xBA3A #HANGUL SYLLABLE MIEUM EO SSANGKIYEOK +0x90F6 0xBA3B #HANGUL SYLLABLE MIEUM EO KIYEOKSIOS +0x90F7 0xBA3D #HANGUL SYLLABLE MIEUM EO NIEUNCIEUC +0x90F8 0xBA3E #HANGUL SYLLABLE MIEUM EO NIEUNHIEUH +0x90F9 0xBA3F #HANGUL SYLLABLE MIEUM EO TIKEUT +0x90FA 0xBA41 #HANGUL SYLLABLE MIEUM EO RIEULKIYEOK +0x90FB 0xBA43 #HANGUL SYLLABLE MIEUM EO RIEULPIEUP +0x90FC 0xBA44 #HANGUL SYLLABLE MIEUM EO RIEULSIOS +0x90FD 0xBA45 #HANGUL SYLLABLE MIEUM EO RIEULTHIEUTH +0x90FE 0xBA46 #HANGUL SYLLABLE MIEUM EO RIEULPHIEUPH +0x9141 0xBA47 #HANGUL SYLLABLE MIEUM EO RIEULHIEUH +0x9142 0xBA4A #HANGUL SYLLABLE MIEUM EO PIEUPSIOS +0x9143 0xBA4C #HANGUL SYLLABLE MIEUM EO SSANGSIOS +0x9144 0xBA4F #HANGUL SYLLABLE MIEUM EO CHIEUCH +0x9145 0xBA50 #HANGUL SYLLABLE MIEUM EO KHIEUKH +0x9146 0xBA51 #HANGUL SYLLABLE MIEUM EO THIEUTH +0x9147 0xBA52 #HANGUL SYLLABLE MIEUM EO PHIEUPH +0x9148 0xBA56 #HANGUL SYLLABLE MIEUM E SSANGKIYEOK +0x9149 0xBA57 #HANGUL SYLLABLE MIEUM E KIYEOKSIOS +0x914A 0xBA59 #HANGUL SYLLABLE MIEUM E NIEUNCIEUC +0x914B 0xBA5A #HANGUL SYLLABLE MIEUM E NIEUNHIEUH +0x914C 0xBA5B #HANGUL SYLLABLE MIEUM E TIKEUT +0x914D 0xBA5D #HANGUL SYLLABLE MIEUM E RIEULKIYEOK +0x914E 0xBA5E #HANGUL SYLLABLE MIEUM E RIEULMIEUM +0x914F 0xBA5F #HANGUL SYLLABLE MIEUM E RIEULPIEUP +0x9150 0xBA60 #HANGUL SYLLABLE MIEUM E RIEULSIOS +0x9151 0xBA61 #HANGUL SYLLABLE MIEUM E RIEULTHIEUTH +0x9152 0xBA62 #HANGUL SYLLABLE MIEUM E RIEULPHIEUPH +0x9153 0xBA63 #HANGUL SYLLABLE MIEUM E RIEULHIEUH +0x9154 0xBA66 #HANGUL SYLLABLE MIEUM E PIEUPSIOS +0x9155 0xBA6A #HANGUL SYLLABLE MIEUM E CIEUC +0x9156 0xBA6B #HANGUL SYLLABLE MIEUM E CHIEUCH +0x9157 0xBA6C #HANGUL SYLLABLE MIEUM E KHIEUKH +0x9158 0xBA6D #HANGUL SYLLABLE MIEUM E THIEUTH +0x9159 0xBA6E #HANGUL SYLLABLE MIEUM E PHIEUPH +0x915A 0xBA6F #HANGUL SYLLABLE MIEUM E HIEUH +0x9161 0xBA72 #HANGUL SYLLABLE MIEUM YEO SSANGKIYEOK +0x9162 0xBA73 #HANGUL SYLLABLE MIEUM YEO KIYEOKSIOS +0x9163 0xBA75 #HANGUL SYLLABLE MIEUM YEO NIEUNCIEUC +0x9164 0xBA76 #HANGUL SYLLABLE MIEUM YEO NIEUNHIEUH +0x9165 0xBA77 #HANGUL SYLLABLE MIEUM YEO TIKEUT +0x9166 0xBA79 #HANGUL SYLLABLE MIEUM YEO RIEULKIYEOK +0x9167 0xBA7A #HANGUL SYLLABLE MIEUM YEO RIEULMIEUM +0x9168 0xBA7B #HANGUL SYLLABLE MIEUM YEO RIEULPIEUP +0x9169 0xBA7C #HANGUL SYLLABLE MIEUM YEO RIEULSIOS +0x916A 0xBA7D #HANGUL SYLLABLE MIEUM YEO RIEULTHIEUTH +0x916B 0xBA7E #HANGUL SYLLABLE MIEUM YEO RIEULPHIEUPH +0x916C 0xBA7F #HANGUL SYLLABLE MIEUM YEO RIEULHIEUH +0x916D 0xBA80 #HANGUL SYLLABLE MIEUM YEO MIEUM +0x916E 0xBA81 #HANGUL SYLLABLE MIEUM YEO PIEUP +0x916F 0xBA82 #HANGUL SYLLABLE MIEUM YEO PIEUPSIOS +0x9170 0xBA86 #HANGUL SYLLABLE MIEUM YEO CIEUC +0x9171 0xBA88 #HANGUL SYLLABLE MIEUM YEO KHIEUKH +0x9172 0xBA89 #HANGUL SYLLABLE MIEUM YEO THIEUTH +0x9173 0xBA8A #HANGUL SYLLABLE MIEUM YEO PHIEUPH +0x9174 0xBA8B #HANGUL SYLLABLE MIEUM YEO HIEUH +0x9175 0xBA8D #HANGUL SYLLABLE MIEUM YE KIYEOK +0x9176 0xBA8E #HANGUL SYLLABLE MIEUM YE SSANGKIYEOK +0x9177 0xBA8F #HANGUL SYLLABLE MIEUM YE KIYEOKSIOS +0x9178 0xBA90 #HANGUL SYLLABLE MIEUM YE NIEUN +0x9179 0xBA91 #HANGUL SYLLABLE MIEUM YE NIEUNCIEUC +0x917A 0xBA92 #HANGUL SYLLABLE MIEUM YE NIEUNHIEUH +0x9181 0xBA93 #HANGUL SYLLABLE MIEUM YE TIKEUT +0x9182 0xBA94 #HANGUL SYLLABLE MIEUM YE RIEUL +0x9183 0xBA95 #HANGUL SYLLABLE MIEUM YE RIEULKIYEOK +0x9184 0xBA96 #HANGUL SYLLABLE MIEUM YE RIEULMIEUM +0x9185 0xBA97 #HANGUL SYLLABLE MIEUM YE RIEULPIEUP +0x9186 0xBA98 #HANGUL SYLLABLE MIEUM YE RIEULSIOS +0x9187 0xBA99 #HANGUL SYLLABLE MIEUM YE RIEULTHIEUTH +0x9188 0xBA9A #HANGUL SYLLABLE MIEUM YE RIEULPHIEUPH +0x9189 0xBA9B #HANGUL SYLLABLE MIEUM YE RIEULHIEUH +0x918A 0xBA9C #HANGUL SYLLABLE MIEUM YE MIEUM +0x918B 0xBA9D #HANGUL SYLLABLE MIEUM YE PIEUP +0x918C 0xBA9E #HANGUL SYLLABLE MIEUM YE PIEUPSIOS +0x918D 0xBA9F #HANGUL SYLLABLE MIEUM YE SIOS +0x918E 0xBAA0 #HANGUL SYLLABLE MIEUM YE SSANGSIOS +0x918F 0xBAA1 #HANGUL SYLLABLE MIEUM YE IEUNG +0x9190 0xBAA2 #HANGUL SYLLABLE MIEUM YE CIEUC +0x9191 0xBAA3 #HANGUL SYLLABLE MIEUM YE CHIEUCH +0x9192 0xBAA4 #HANGUL SYLLABLE MIEUM YE KHIEUKH +0x9193 0xBAA5 #HANGUL SYLLABLE MIEUM YE THIEUTH +0x9194 0xBAA6 #HANGUL SYLLABLE MIEUM YE PHIEUPH +0x9195 0xBAA7 #HANGUL SYLLABLE MIEUM YE HIEUH +0x9196 0xBAAA #HANGUL SYLLABLE MIEUM O SSANGKIYEOK +0x9197 0xBAAD #HANGUL SYLLABLE MIEUM O NIEUNCIEUC +0x9198 0xBAAE #HANGUL SYLLABLE MIEUM O NIEUNHIEUH +0x9199 0xBAAF #HANGUL SYLLABLE MIEUM O TIKEUT +0x919A 0xBAB1 #HANGUL SYLLABLE MIEUM O RIEULKIYEOK +0x919B 0xBAB3 #HANGUL SYLLABLE MIEUM O RIEULPIEUP +0x919C 0xBAB4 #HANGUL SYLLABLE MIEUM O RIEULSIOS +0x919D 0xBAB5 #HANGUL SYLLABLE MIEUM O RIEULTHIEUTH +0x919E 0xBAB6 #HANGUL SYLLABLE MIEUM O RIEULPHIEUPH +0x919F 0xBAB7 #HANGUL SYLLABLE MIEUM O RIEULHIEUH +0x91A0 0xBABA #HANGUL SYLLABLE MIEUM O PIEUPSIOS +0x91A1 0xBABC #HANGUL SYLLABLE MIEUM O SSANGSIOS +0x91A2 0xBABE #HANGUL SYLLABLE MIEUM O CIEUC +0x91A3 0xBABF #HANGUL SYLLABLE MIEUM O CHIEUCH +0x91A4 0xBAC0 #HANGUL SYLLABLE MIEUM O KHIEUKH +0x91A5 0xBAC1 #HANGUL SYLLABLE MIEUM O THIEUTH +0x91A6 0xBAC2 #HANGUL SYLLABLE MIEUM O PHIEUPH +0x91A7 0xBAC3 #HANGUL SYLLABLE MIEUM O HIEUH +0x91A8 0xBAC5 #HANGUL SYLLABLE MIEUM WA KIYEOK +0x91A9 0xBAC6 #HANGUL SYLLABLE MIEUM WA SSANGKIYEOK +0x91AA 0xBAC7 #HANGUL SYLLABLE MIEUM WA KIYEOKSIOS +0x91AB 0xBAC9 #HANGUL SYLLABLE MIEUM WA NIEUNCIEUC +0x91AC 0xBACA #HANGUL SYLLABLE MIEUM WA NIEUNHIEUH +0x91AD 0xBACB #HANGUL SYLLABLE MIEUM WA TIKEUT +0x91AE 0xBACC #HANGUL SYLLABLE MIEUM WA RIEUL +0x91AF 0xBACD #HANGUL SYLLABLE MIEUM WA RIEULKIYEOK +0x91B0 0xBACE #HANGUL SYLLABLE MIEUM WA RIEULMIEUM +0x91B1 0xBACF #HANGUL SYLLABLE MIEUM WA RIEULPIEUP +0x91B2 0xBAD0 #HANGUL SYLLABLE MIEUM WA RIEULSIOS +0x91B3 0xBAD1 #HANGUL SYLLABLE MIEUM WA RIEULTHIEUTH +0x91B4 0xBAD2 #HANGUL SYLLABLE MIEUM WA RIEULPHIEUPH +0x91B5 0xBAD3 #HANGUL SYLLABLE MIEUM WA RIEULHIEUH +0x91B6 0xBAD4 #HANGUL SYLLABLE MIEUM WA MIEUM +0x91B7 0xBAD5 #HANGUL SYLLABLE MIEUM WA PIEUP +0x91B8 0xBAD6 #HANGUL SYLLABLE MIEUM WA PIEUPSIOS +0x91B9 0xBAD7 #HANGUL SYLLABLE MIEUM WA SIOS +0x91BA 0xBADA #HANGUL SYLLABLE MIEUM WA CIEUC +0x91BB 0xBADB #HANGUL SYLLABLE MIEUM WA CHIEUCH +0x91BC 0xBADC #HANGUL SYLLABLE MIEUM WA KHIEUKH +0x91BD 0xBADD #HANGUL SYLLABLE MIEUM WA THIEUTH +0x91BE 0xBADE #HANGUL SYLLABLE MIEUM WA PHIEUPH +0x91BF 0xBADF #HANGUL SYLLABLE MIEUM WA HIEUH +0x91C0 0xBAE0 #HANGUL SYLLABLE MIEUM WAE +0x91C1 0xBAE1 #HANGUL SYLLABLE MIEUM WAE KIYEOK +0x91C2 0xBAE2 #HANGUL SYLLABLE MIEUM WAE SSANGKIYEOK +0x91C3 0xBAE3 #HANGUL SYLLABLE MIEUM WAE KIYEOKSIOS +0x91C4 0xBAE4 #HANGUL SYLLABLE MIEUM WAE NIEUN +0x91C5 0xBAE5 #HANGUL SYLLABLE MIEUM WAE NIEUNCIEUC +0x91C6 0xBAE6 #HANGUL SYLLABLE MIEUM WAE NIEUNHIEUH +0x91C7 0xBAE7 #HANGUL SYLLABLE MIEUM WAE TIKEUT +0x91C8 0xBAE8 #HANGUL SYLLABLE MIEUM WAE RIEUL +0x91C9 0xBAE9 #HANGUL SYLLABLE MIEUM WAE RIEULKIYEOK +0x91CA 0xBAEA #HANGUL SYLLABLE MIEUM WAE RIEULMIEUM +0x91CB 0xBAEB #HANGUL SYLLABLE MIEUM WAE RIEULPIEUP +0x91CC 0xBAEC #HANGUL SYLLABLE MIEUM WAE RIEULSIOS +0x91CD 0xBAED #HANGUL SYLLABLE MIEUM WAE RIEULTHIEUTH +0x91CE 0xBAEE #HANGUL SYLLABLE MIEUM WAE RIEULPHIEUPH +0x91CF 0xBAEF #HANGUL SYLLABLE MIEUM WAE RIEULHIEUH +0x91D0 0xBAF0 #HANGUL SYLLABLE MIEUM WAE MIEUM +0x91D1 0xBAF1 #HANGUL SYLLABLE MIEUM WAE PIEUP +0x91D2 0xBAF2 #HANGUL SYLLABLE MIEUM WAE PIEUPSIOS +0x91D3 0xBAF3 #HANGUL SYLLABLE MIEUM WAE SIOS +0x91D4 0xBAF4 #HANGUL SYLLABLE MIEUM WAE SSANGSIOS +0x91D5 0xBAF5 #HANGUL SYLLABLE MIEUM WAE IEUNG +0x91D6 0xBAF6 #HANGUL SYLLABLE MIEUM WAE CIEUC +0x91D7 0xBAF7 #HANGUL SYLLABLE MIEUM WAE CHIEUCH +0x91D8 0xBAF8 #HANGUL SYLLABLE MIEUM WAE KHIEUKH +0x91D9 0xBAF9 #HANGUL SYLLABLE MIEUM WAE THIEUTH +0x91DA 0xBAFA #HANGUL SYLLABLE MIEUM WAE PHIEUPH +0x91DB 0xBAFB #HANGUL SYLLABLE MIEUM WAE HIEUH +0x91DC 0xBAFD #HANGUL SYLLABLE MIEUM OE KIYEOK +0x91DD 0xBAFE #HANGUL SYLLABLE MIEUM OE SSANGKIYEOK +0x91DE 0xBAFF #HANGUL SYLLABLE MIEUM OE KIYEOKSIOS +0x91DF 0xBB01 #HANGUL SYLLABLE MIEUM OE NIEUNCIEUC +0x91E0 0xBB02 #HANGUL SYLLABLE MIEUM OE NIEUNHIEUH +0x91E1 0xBB03 #HANGUL SYLLABLE MIEUM OE TIKEUT +0x91E2 0xBB05 #HANGUL SYLLABLE MIEUM OE RIEULKIYEOK +0x91E3 0xBB06 #HANGUL SYLLABLE MIEUM OE RIEULMIEUM +0x91E4 0xBB07 #HANGUL SYLLABLE MIEUM OE RIEULPIEUP +0x91E5 0xBB08 #HANGUL SYLLABLE MIEUM OE RIEULSIOS +0x91E6 0xBB09 #HANGUL SYLLABLE MIEUM OE RIEULTHIEUTH +0x91E7 0xBB0A #HANGUL SYLLABLE MIEUM OE RIEULPHIEUPH +0x91E8 0xBB0B #HANGUL SYLLABLE MIEUM OE RIEULHIEUH +0x91E9 0xBB0C #HANGUL SYLLABLE MIEUM OE MIEUM +0x91EA 0xBB0E #HANGUL SYLLABLE MIEUM OE PIEUPSIOS +0x91EB 0xBB10 #HANGUL SYLLABLE MIEUM OE SSANGSIOS +0x91EC 0xBB12 #HANGUL SYLLABLE MIEUM OE CIEUC +0x91ED 0xBB13 #HANGUL SYLLABLE MIEUM OE CHIEUCH +0x91EE 0xBB14 #HANGUL SYLLABLE MIEUM OE KHIEUKH +0x91EF 0xBB15 #HANGUL SYLLABLE MIEUM OE THIEUTH +0x91F0 0xBB16 #HANGUL SYLLABLE MIEUM OE PHIEUPH +0x91F1 0xBB17 #HANGUL SYLLABLE MIEUM OE HIEUH +0x91F2 0xBB19 #HANGUL SYLLABLE MIEUM YO KIYEOK +0x91F3 0xBB1A #HANGUL SYLLABLE MIEUM YO SSANGKIYEOK +0x91F4 0xBB1B #HANGUL SYLLABLE MIEUM YO KIYEOKSIOS +0x91F5 0xBB1D #HANGUL SYLLABLE MIEUM YO NIEUNCIEUC +0x91F6 0xBB1E #HANGUL SYLLABLE MIEUM YO NIEUNHIEUH +0x91F7 0xBB1F #HANGUL SYLLABLE MIEUM YO TIKEUT +0x91F8 0xBB21 #HANGUL SYLLABLE MIEUM YO RIEULKIYEOK +0x91F9 0xBB22 #HANGUL SYLLABLE MIEUM YO RIEULMIEUM +0x91FA 0xBB23 #HANGUL SYLLABLE MIEUM YO RIEULPIEUP +0x91FB 0xBB24 #HANGUL SYLLABLE MIEUM YO RIEULSIOS +0x91FC 0xBB25 #HANGUL SYLLABLE MIEUM YO RIEULTHIEUTH +0x91FD 0xBB26 #HANGUL SYLLABLE MIEUM YO RIEULPHIEUPH +0x91FE 0xBB27 #HANGUL SYLLABLE MIEUM YO RIEULHIEUH +0x9241 0xBB28 #HANGUL SYLLABLE MIEUM YO MIEUM +0x9242 0xBB2A #HANGUL SYLLABLE MIEUM YO PIEUPSIOS +0x9243 0xBB2C #HANGUL SYLLABLE MIEUM YO SSANGSIOS +0x9244 0xBB2D #HANGUL SYLLABLE MIEUM YO IEUNG +0x9245 0xBB2E #HANGUL SYLLABLE MIEUM YO CIEUC +0x9246 0xBB2F #HANGUL SYLLABLE MIEUM YO CHIEUCH +0x9247 0xBB30 #HANGUL SYLLABLE MIEUM YO KHIEUKH +0x9248 0xBB31 #HANGUL SYLLABLE MIEUM YO THIEUTH +0x9249 0xBB32 #HANGUL SYLLABLE MIEUM YO PHIEUPH +0x924A 0xBB33 #HANGUL SYLLABLE MIEUM YO HIEUH +0x924B 0xBB37 #HANGUL SYLLABLE MIEUM U KIYEOKSIOS +0x924C 0xBB39 #HANGUL SYLLABLE MIEUM U NIEUNCIEUC +0x924D 0xBB3A #HANGUL SYLLABLE MIEUM U NIEUNHIEUH +0x924E 0xBB3F #HANGUL SYLLABLE MIEUM U RIEULPIEUP +0x924F 0xBB40 #HANGUL SYLLABLE MIEUM U RIEULSIOS +0x9250 0xBB41 #HANGUL SYLLABLE MIEUM U RIEULTHIEUTH +0x9251 0xBB42 #HANGUL SYLLABLE MIEUM U RIEULPHIEUPH +0x9252 0xBB43 #HANGUL SYLLABLE MIEUM U RIEULHIEUH +0x9253 0xBB46 #HANGUL SYLLABLE MIEUM U PIEUPSIOS +0x9254 0xBB48 #HANGUL SYLLABLE MIEUM U SSANGSIOS +0x9255 0xBB4A #HANGUL SYLLABLE MIEUM U CIEUC +0x9256 0xBB4B #HANGUL SYLLABLE MIEUM U CHIEUCH +0x9257 0xBB4C #HANGUL SYLLABLE MIEUM U KHIEUKH +0x9258 0xBB4E #HANGUL SYLLABLE MIEUM U PHIEUPH +0x9259 0xBB51 #HANGUL SYLLABLE MIEUM WEO KIYEOK +0x925A 0xBB52 #HANGUL SYLLABLE MIEUM WEO SSANGKIYEOK +0x9261 0xBB53 #HANGUL SYLLABLE MIEUM WEO KIYEOKSIOS +0x9262 0xBB55 #HANGUL SYLLABLE MIEUM WEO NIEUNCIEUC +0x9263 0xBB56 #HANGUL SYLLABLE MIEUM WEO NIEUNHIEUH +0x9264 0xBB57 #HANGUL SYLLABLE MIEUM WEO TIKEUT +0x9265 0xBB59 #HANGUL SYLLABLE MIEUM WEO RIEULKIYEOK +0x9266 0xBB5A #HANGUL SYLLABLE MIEUM WEO RIEULMIEUM +0x9267 0xBB5B #HANGUL SYLLABLE MIEUM WEO RIEULPIEUP +0x9268 0xBB5C #HANGUL SYLLABLE MIEUM WEO RIEULSIOS +0x9269 0xBB5D #HANGUL SYLLABLE MIEUM WEO RIEULTHIEUTH +0x926A 0xBB5E #HANGUL SYLLABLE MIEUM WEO RIEULPHIEUPH +0x926B 0xBB5F #HANGUL SYLLABLE MIEUM WEO RIEULHIEUH +0x926C 0xBB60 #HANGUL SYLLABLE MIEUM WEO MIEUM +0x926D 0xBB62 #HANGUL SYLLABLE MIEUM WEO PIEUPSIOS +0x926E 0xBB64 #HANGUL SYLLABLE MIEUM WEO SSANGSIOS +0x926F 0xBB65 #HANGUL SYLLABLE MIEUM WEO IEUNG +0x9270 0xBB66 #HANGUL SYLLABLE MIEUM WEO CIEUC +0x9271 0xBB67 #HANGUL SYLLABLE MIEUM WEO CHIEUCH +0x9272 0xBB68 #HANGUL SYLLABLE MIEUM WEO KHIEUKH +0x9273 0xBB69 #HANGUL SYLLABLE MIEUM WEO THIEUTH +0x9274 0xBB6A #HANGUL SYLLABLE MIEUM WEO PHIEUPH +0x9275 0xBB6B #HANGUL SYLLABLE MIEUM WEO HIEUH +0x9276 0xBB6D #HANGUL SYLLABLE MIEUM WE KIYEOK +0x9277 0xBB6E #HANGUL SYLLABLE MIEUM WE SSANGKIYEOK +0x9278 0xBB6F #HANGUL SYLLABLE MIEUM WE KIYEOKSIOS +0x9279 0xBB70 #HANGUL SYLLABLE MIEUM WE NIEUN +0x927A 0xBB71 #HANGUL SYLLABLE MIEUM WE NIEUNCIEUC +0x9281 0xBB72 #HANGUL SYLLABLE MIEUM WE NIEUNHIEUH +0x9282 0xBB73 #HANGUL SYLLABLE MIEUM WE TIKEUT +0x9283 0xBB74 #HANGUL SYLLABLE MIEUM WE RIEUL +0x9284 0xBB75 #HANGUL SYLLABLE MIEUM WE RIEULKIYEOK +0x9285 0xBB76 #HANGUL SYLLABLE MIEUM WE RIEULMIEUM +0x9286 0xBB77 #HANGUL SYLLABLE MIEUM WE RIEULPIEUP +0x9287 0xBB78 #HANGUL SYLLABLE MIEUM WE RIEULSIOS +0x9288 0xBB79 #HANGUL SYLLABLE MIEUM WE RIEULTHIEUTH +0x9289 0xBB7A #HANGUL SYLLABLE MIEUM WE RIEULPHIEUPH +0x928A 0xBB7B #HANGUL SYLLABLE MIEUM WE RIEULHIEUH +0x928B 0xBB7C #HANGUL SYLLABLE MIEUM WE MIEUM +0x928C 0xBB7D #HANGUL SYLLABLE MIEUM WE PIEUP +0x928D 0xBB7E #HANGUL SYLLABLE MIEUM WE PIEUPSIOS +0x928E 0xBB7F #HANGUL SYLLABLE MIEUM WE SIOS +0x928F 0xBB80 #HANGUL SYLLABLE MIEUM WE SSANGSIOS +0x9290 0xBB81 #HANGUL SYLLABLE MIEUM WE IEUNG +0x9291 0xBB82 #HANGUL SYLLABLE MIEUM WE CIEUC +0x9292 0xBB83 #HANGUL SYLLABLE MIEUM WE CHIEUCH +0x9293 0xBB84 #HANGUL SYLLABLE MIEUM WE KHIEUKH +0x9294 0xBB85 #HANGUL SYLLABLE MIEUM WE THIEUTH +0x9295 0xBB86 #HANGUL SYLLABLE MIEUM WE PHIEUPH +0x9296 0xBB87 #HANGUL SYLLABLE MIEUM WE HIEUH +0x9297 0xBB89 #HANGUL SYLLABLE MIEUM WI KIYEOK +0x9298 0xBB8A #HANGUL SYLLABLE MIEUM WI SSANGKIYEOK +0x9299 0xBB8B #HANGUL SYLLABLE MIEUM WI KIYEOKSIOS +0x929A 0xBB8D #HANGUL SYLLABLE MIEUM WI NIEUNCIEUC +0x929B 0xBB8E #HANGUL SYLLABLE MIEUM WI NIEUNHIEUH +0x929C 0xBB8F #HANGUL SYLLABLE MIEUM WI TIKEUT +0x929D 0xBB91 #HANGUL SYLLABLE MIEUM WI RIEULKIYEOK +0x929E 0xBB92 #HANGUL SYLLABLE MIEUM WI RIEULMIEUM +0x929F 0xBB93 #HANGUL SYLLABLE MIEUM WI RIEULPIEUP +0x92A0 0xBB94 #HANGUL SYLLABLE MIEUM WI RIEULSIOS +0x92A1 0xBB95 #HANGUL SYLLABLE MIEUM WI RIEULTHIEUTH +0x92A2 0xBB96 #HANGUL SYLLABLE MIEUM WI RIEULPHIEUPH +0x92A3 0xBB97 #HANGUL SYLLABLE MIEUM WI RIEULHIEUH +0x92A4 0xBB98 #HANGUL SYLLABLE MIEUM WI MIEUM +0x92A5 0xBB99 #HANGUL SYLLABLE MIEUM WI PIEUP +0x92A6 0xBB9A #HANGUL SYLLABLE MIEUM WI PIEUPSIOS +0x92A7 0xBB9B #HANGUL SYLLABLE MIEUM WI SIOS +0x92A8 0xBB9C #HANGUL SYLLABLE MIEUM WI SSANGSIOS +0x92A9 0xBB9D #HANGUL SYLLABLE MIEUM WI IEUNG +0x92AA 0xBB9E #HANGUL SYLLABLE MIEUM WI CIEUC +0x92AB 0xBB9F #HANGUL SYLLABLE MIEUM WI CHIEUCH +0x92AC 0xBBA0 #HANGUL SYLLABLE MIEUM WI KHIEUKH +0x92AD 0xBBA1 #HANGUL SYLLABLE MIEUM WI THIEUTH +0x92AE 0xBBA2 #HANGUL SYLLABLE MIEUM WI PHIEUPH +0x92AF 0xBBA3 #HANGUL SYLLABLE MIEUM WI HIEUH +0x92B0 0xBBA5 #HANGUL SYLLABLE MIEUM YU KIYEOK +0x92B1 0xBBA6 #HANGUL SYLLABLE MIEUM YU SSANGKIYEOK +0x92B2 0xBBA7 #HANGUL SYLLABLE MIEUM YU KIYEOKSIOS +0x92B3 0xBBA9 #HANGUL SYLLABLE MIEUM YU NIEUNCIEUC +0x92B4 0xBBAA #HANGUL SYLLABLE MIEUM YU NIEUNHIEUH +0x92B5 0xBBAB #HANGUL SYLLABLE MIEUM YU TIKEUT +0x92B6 0xBBAD #HANGUL SYLLABLE MIEUM YU RIEULKIYEOK +0x92B7 0xBBAE #HANGUL SYLLABLE MIEUM YU RIEULMIEUM +0x92B8 0xBBAF #HANGUL SYLLABLE MIEUM YU RIEULPIEUP +0x92B9 0xBBB0 #HANGUL SYLLABLE MIEUM YU RIEULSIOS +0x92BA 0xBBB1 #HANGUL SYLLABLE MIEUM YU RIEULTHIEUTH +0x92BB 0xBBB2 #HANGUL SYLLABLE MIEUM YU RIEULPHIEUPH +0x92BC 0xBBB3 #HANGUL SYLLABLE MIEUM YU RIEULHIEUH +0x92BD 0xBBB5 #HANGUL SYLLABLE MIEUM YU PIEUP +0x92BE 0xBBB6 #HANGUL SYLLABLE MIEUM YU PIEUPSIOS +0x92BF 0xBBB8 #HANGUL SYLLABLE MIEUM YU SSANGSIOS +0x92C0 0xBBB9 #HANGUL SYLLABLE MIEUM YU IEUNG +0x92C1 0xBBBA #HANGUL SYLLABLE MIEUM YU CIEUC +0x92C2 0xBBBB #HANGUL SYLLABLE MIEUM YU CHIEUCH +0x92C3 0xBBBC #HANGUL SYLLABLE MIEUM YU KHIEUKH +0x92C4 0xBBBD #HANGUL SYLLABLE MIEUM YU THIEUTH +0x92C5 0xBBBE #HANGUL SYLLABLE MIEUM YU PHIEUPH +0x92C6 0xBBBF #HANGUL SYLLABLE MIEUM YU HIEUH +0x92C7 0xBBC1 #HANGUL SYLLABLE MIEUM EU KIYEOK +0x92C8 0xBBC2 #HANGUL SYLLABLE MIEUM EU SSANGKIYEOK +0x92C9 0xBBC3 #HANGUL SYLLABLE MIEUM EU KIYEOKSIOS +0x92CA 0xBBC5 #HANGUL SYLLABLE MIEUM EU NIEUNCIEUC +0x92CB 0xBBC6 #HANGUL SYLLABLE MIEUM EU NIEUNHIEUH +0x92CC 0xBBC7 #HANGUL SYLLABLE MIEUM EU TIKEUT +0x92CD 0xBBC9 #HANGUL SYLLABLE MIEUM EU RIEULKIYEOK +0x92CE 0xBBCA #HANGUL SYLLABLE MIEUM EU RIEULMIEUM +0x92CF 0xBBCB #HANGUL SYLLABLE MIEUM EU RIEULPIEUP +0x92D0 0xBBCC #HANGUL SYLLABLE MIEUM EU RIEULSIOS +0x92D1 0xBBCD #HANGUL SYLLABLE MIEUM EU RIEULTHIEUTH +0x92D2 0xBBCE #HANGUL SYLLABLE MIEUM EU RIEULPHIEUPH +0x92D3 0xBBCF #HANGUL SYLLABLE MIEUM EU RIEULHIEUH +0x92D4 0xBBD1 #HANGUL SYLLABLE MIEUM EU PIEUP +0x92D5 0xBBD2 #HANGUL SYLLABLE MIEUM EU PIEUPSIOS +0x92D6 0xBBD4 #HANGUL SYLLABLE MIEUM EU SSANGSIOS +0x92D7 0xBBD5 #HANGUL SYLLABLE MIEUM EU IEUNG +0x92D8 0xBBD6 #HANGUL SYLLABLE MIEUM EU CIEUC +0x92D9 0xBBD7 #HANGUL SYLLABLE MIEUM EU CHIEUCH +0x92DA 0xBBD8 #HANGUL SYLLABLE MIEUM EU KHIEUKH +0x92DB 0xBBD9 #HANGUL SYLLABLE MIEUM EU THIEUTH +0x92DC 0xBBDA #HANGUL SYLLABLE MIEUM EU PHIEUPH +0x92DD 0xBBDB #HANGUL SYLLABLE MIEUM EU HIEUH +0x92DE 0xBBDC #HANGUL SYLLABLE MIEUM YI +0x92DF 0xBBDD #HANGUL SYLLABLE MIEUM YI KIYEOK +0x92E0 0xBBDE #HANGUL SYLLABLE MIEUM YI SSANGKIYEOK +0x92E1 0xBBDF #HANGUL SYLLABLE MIEUM YI KIYEOKSIOS +0x92E2 0xBBE0 #HANGUL SYLLABLE MIEUM YI NIEUN +0x92E3 0xBBE1 #HANGUL SYLLABLE MIEUM YI NIEUNCIEUC +0x92E4 0xBBE2 #HANGUL SYLLABLE MIEUM YI NIEUNHIEUH +0x92E5 0xBBE3 #HANGUL SYLLABLE MIEUM YI TIKEUT +0x92E6 0xBBE4 #HANGUL SYLLABLE MIEUM YI RIEUL +0x92E7 0xBBE5 #HANGUL SYLLABLE MIEUM YI RIEULKIYEOK +0x92E8 0xBBE6 #HANGUL SYLLABLE MIEUM YI RIEULMIEUM +0x92E9 0xBBE7 #HANGUL SYLLABLE MIEUM YI RIEULPIEUP +0x92EA 0xBBE8 #HANGUL SYLLABLE MIEUM YI RIEULSIOS +0x92EB 0xBBE9 #HANGUL SYLLABLE MIEUM YI RIEULTHIEUTH +0x92EC 0xBBEA #HANGUL SYLLABLE MIEUM YI RIEULPHIEUPH +0x92ED 0xBBEB #HANGUL SYLLABLE MIEUM YI RIEULHIEUH +0x92EE 0xBBEC #HANGUL SYLLABLE MIEUM YI MIEUM +0x92EF 0xBBED #HANGUL SYLLABLE MIEUM YI PIEUP +0x92F0 0xBBEE #HANGUL SYLLABLE MIEUM YI PIEUPSIOS +0x92F1 0xBBEF #HANGUL SYLLABLE MIEUM YI SIOS +0x92F2 0xBBF0 #HANGUL SYLLABLE MIEUM YI SSANGSIOS +0x92F3 0xBBF1 #HANGUL SYLLABLE MIEUM YI IEUNG +0x92F4 0xBBF2 #HANGUL SYLLABLE MIEUM YI CIEUC +0x92F5 0xBBF3 #HANGUL SYLLABLE MIEUM YI CHIEUCH +0x92F6 0xBBF4 #HANGUL SYLLABLE MIEUM YI KHIEUKH +0x92F7 0xBBF5 #HANGUL SYLLABLE MIEUM YI THIEUTH +0x92F8 0xBBF6 #HANGUL SYLLABLE MIEUM YI PHIEUPH +0x92F9 0xBBF7 #HANGUL SYLLABLE MIEUM YI HIEUH +0x92FA 0xBBFA #HANGUL SYLLABLE MIEUM I SSANGKIYEOK +0x92FB 0xBBFB #HANGUL SYLLABLE MIEUM I KIYEOKSIOS +0x92FC 0xBBFD #HANGUL SYLLABLE MIEUM I NIEUNCIEUC +0x92FD 0xBBFE #HANGUL SYLLABLE MIEUM I NIEUNHIEUH +0x92FE 0xBC01 #HANGUL SYLLABLE MIEUM I RIEULKIYEOK +0x9341 0xBC03 #HANGUL SYLLABLE MIEUM I RIEULPIEUP +0x9342 0xBC04 #HANGUL SYLLABLE MIEUM I RIEULSIOS +0x9343 0xBC05 #HANGUL SYLLABLE MIEUM I RIEULTHIEUTH +0x9344 0xBC06 #HANGUL SYLLABLE MIEUM I RIEULPHIEUPH +0x9345 0xBC07 #HANGUL SYLLABLE MIEUM I RIEULHIEUH +0x9346 0xBC0A #HANGUL SYLLABLE MIEUM I PIEUPSIOS +0x9347 0xBC0E #HANGUL SYLLABLE MIEUM I CIEUC +0x9348 0xBC10 #HANGUL SYLLABLE MIEUM I KHIEUKH +0x9349 0xBC12 #HANGUL SYLLABLE MIEUM I PHIEUPH +0x934A 0xBC13 #HANGUL SYLLABLE MIEUM I HIEUH +0x934B 0xBC19 #HANGUL SYLLABLE PIEUP A NIEUNCIEUC +0x934C 0xBC1A #HANGUL SYLLABLE PIEUP A NIEUNHIEUH +0x934D 0xBC20 #HANGUL SYLLABLE PIEUP A RIEULSIOS +0x934E 0xBC21 #HANGUL SYLLABLE PIEUP A RIEULTHIEUTH +0x934F 0xBC22 #HANGUL SYLLABLE PIEUP A RIEULPHIEUPH +0x9350 0xBC23 #HANGUL SYLLABLE PIEUP A RIEULHIEUH +0x9351 0xBC26 #HANGUL SYLLABLE PIEUP A PIEUPSIOS +0x9352 0xBC28 #HANGUL SYLLABLE PIEUP A SSANGSIOS +0x9353 0xBC2A #HANGUL SYLLABLE PIEUP A CIEUC +0x9354 0xBC2B #HANGUL SYLLABLE PIEUP A CHIEUCH +0x9355 0xBC2C #HANGUL SYLLABLE PIEUP A KHIEUKH +0x9356 0xBC2E #HANGUL SYLLABLE PIEUP A PHIEUPH +0x9357 0xBC2F #HANGUL SYLLABLE PIEUP A HIEUH +0x9358 0xBC32 #HANGUL SYLLABLE PIEUP AE SSANGKIYEOK +0x9359 0xBC33 #HANGUL SYLLABLE PIEUP AE KIYEOKSIOS +0x935A 0xBC35 #HANGUL SYLLABLE PIEUP AE NIEUNCIEUC +0x9361 0xBC36 #HANGUL SYLLABLE PIEUP AE NIEUNHIEUH +0x9362 0xBC37 #HANGUL SYLLABLE PIEUP AE TIKEUT +0x9363 0xBC39 #HANGUL SYLLABLE PIEUP AE RIEULKIYEOK +0x9364 0xBC3A #HANGUL SYLLABLE PIEUP AE RIEULMIEUM +0x9365 0xBC3B #HANGUL SYLLABLE PIEUP AE RIEULPIEUP +0x9366 0xBC3C #HANGUL SYLLABLE PIEUP AE RIEULSIOS +0x9367 0xBC3D #HANGUL SYLLABLE PIEUP AE RIEULTHIEUTH +0x9368 0xBC3E #HANGUL SYLLABLE PIEUP AE RIEULPHIEUPH +0x9369 0xBC3F #HANGUL SYLLABLE PIEUP AE RIEULHIEUH +0x936A 0xBC42 #HANGUL SYLLABLE PIEUP AE PIEUPSIOS +0x936B 0xBC46 #HANGUL SYLLABLE PIEUP AE CIEUC +0x936C 0xBC47 #HANGUL SYLLABLE PIEUP AE CHIEUCH +0x936D 0xBC48 #HANGUL SYLLABLE PIEUP AE KHIEUKH +0x936E 0xBC4A #HANGUL SYLLABLE PIEUP AE PHIEUPH +0x936F 0xBC4B #HANGUL SYLLABLE PIEUP AE HIEUH +0x9370 0xBC4E #HANGUL SYLLABLE PIEUP YA SSANGKIYEOK +0x9371 0xBC4F #HANGUL SYLLABLE PIEUP YA KIYEOKSIOS +0x9372 0xBC51 #HANGUL SYLLABLE PIEUP YA NIEUNCIEUC +0x9373 0xBC52 #HANGUL SYLLABLE PIEUP YA NIEUNHIEUH +0x9374 0xBC53 #HANGUL SYLLABLE PIEUP YA TIKEUT +0x9375 0xBC54 #HANGUL SYLLABLE PIEUP YA RIEUL +0x9376 0xBC55 #HANGUL SYLLABLE PIEUP YA RIEULKIYEOK +0x9377 0xBC56 #HANGUL SYLLABLE PIEUP YA RIEULMIEUM +0x9378 0xBC57 #HANGUL SYLLABLE PIEUP YA RIEULPIEUP +0x9379 0xBC58 #HANGUL SYLLABLE PIEUP YA RIEULSIOS +0x937A 0xBC59 #HANGUL SYLLABLE PIEUP YA RIEULTHIEUTH +0x9381 0xBC5A #HANGUL SYLLABLE PIEUP YA RIEULPHIEUPH +0x9382 0xBC5B #HANGUL SYLLABLE PIEUP YA RIEULHIEUH +0x9383 0xBC5C #HANGUL SYLLABLE PIEUP YA MIEUM +0x9384 0xBC5E #HANGUL SYLLABLE PIEUP YA PIEUPSIOS +0x9385 0xBC5F #HANGUL SYLLABLE PIEUP YA SIOS +0x9386 0xBC60 #HANGUL SYLLABLE PIEUP YA SSANGSIOS +0x9387 0xBC61 #HANGUL SYLLABLE PIEUP YA IEUNG +0x9388 0xBC62 #HANGUL SYLLABLE PIEUP YA CIEUC +0x9389 0xBC63 #HANGUL SYLLABLE PIEUP YA CHIEUCH +0x938A 0xBC64 #HANGUL SYLLABLE PIEUP YA KHIEUKH +0x938B 0xBC65 #HANGUL SYLLABLE PIEUP YA THIEUTH +0x938C 0xBC66 #HANGUL SYLLABLE PIEUP YA PHIEUPH +0x938D 0xBC67 #HANGUL SYLLABLE PIEUP YA HIEUH +0x938E 0xBC68 #HANGUL SYLLABLE PIEUP YAE +0x938F 0xBC69 #HANGUL SYLLABLE PIEUP YAE KIYEOK +0x9390 0xBC6A #HANGUL SYLLABLE PIEUP YAE SSANGKIYEOK +0x9391 0xBC6B #HANGUL SYLLABLE PIEUP YAE KIYEOKSIOS +0x9392 0xBC6C #HANGUL SYLLABLE PIEUP YAE NIEUN +0x9393 0xBC6D #HANGUL SYLLABLE PIEUP YAE NIEUNCIEUC +0x9394 0xBC6E #HANGUL SYLLABLE PIEUP YAE NIEUNHIEUH +0x9395 0xBC6F #HANGUL SYLLABLE PIEUP YAE TIKEUT +0x9396 0xBC70 #HANGUL SYLLABLE PIEUP YAE RIEUL +0x9397 0xBC71 #HANGUL SYLLABLE PIEUP YAE RIEULKIYEOK +0x9398 0xBC72 #HANGUL SYLLABLE PIEUP YAE RIEULMIEUM +0x9399 0xBC73 #HANGUL SYLLABLE PIEUP YAE RIEULPIEUP +0x939A 0xBC74 #HANGUL SYLLABLE PIEUP YAE RIEULSIOS +0x939B 0xBC75 #HANGUL SYLLABLE PIEUP YAE RIEULTHIEUTH +0x939C 0xBC76 #HANGUL SYLLABLE PIEUP YAE RIEULPHIEUPH +0x939D 0xBC77 #HANGUL SYLLABLE PIEUP YAE RIEULHIEUH +0x939E 0xBC78 #HANGUL SYLLABLE PIEUP YAE MIEUM +0x939F 0xBC79 #HANGUL SYLLABLE PIEUP YAE PIEUP +0x93A0 0xBC7A #HANGUL SYLLABLE PIEUP YAE PIEUPSIOS +0x93A1 0xBC7B #HANGUL SYLLABLE PIEUP YAE SIOS +0x93A2 0xBC7C #HANGUL SYLLABLE PIEUP YAE SSANGSIOS +0x93A3 0xBC7D #HANGUL SYLLABLE PIEUP YAE IEUNG +0x93A4 0xBC7E #HANGUL SYLLABLE PIEUP YAE CIEUC +0x93A5 0xBC7F #HANGUL SYLLABLE PIEUP YAE CHIEUCH +0x93A6 0xBC80 #HANGUL SYLLABLE PIEUP YAE KHIEUKH +0x93A7 0xBC81 #HANGUL SYLLABLE PIEUP YAE THIEUTH +0x93A8 0xBC82 #HANGUL SYLLABLE PIEUP YAE PHIEUPH +0x93A9 0xBC83 #HANGUL SYLLABLE PIEUP YAE HIEUH +0x93AA 0xBC86 #HANGUL SYLLABLE PIEUP EO SSANGKIYEOK +0x93AB 0xBC87 #HANGUL SYLLABLE PIEUP EO KIYEOKSIOS +0x93AC 0xBC89 #HANGUL SYLLABLE PIEUP EO NIEUNCIEUC +0x93AD 0xBC8A #HANGUL SYLLABLE PIEUP EO NIEUNHIEUH +0x93AE 0xBC8D #HANGUL SYLLABLE PIEUP EO RIEULKIYEOK +0x93AF 0xBC8F #HANGUL SYLLABLE PIEUP EO RIEULPIEUP +0x93B0 0xBC90 #HANGUL SYLLABLE PIEUP EO RIEULSIOS +0x93B1 0xBC91 #HANGUL SYLLABLE PIEUP EO RIEULTHIEUTH +0x93B2 0xBC92 #HANGUL SYLLABLE PIEUP EO RIEULPHIEUPH +0x93B3 0xBC93 #HANGUL SYLLABLE PIEUP EO RIEULHIEUH +0x93B4 0xBC96 #HANGUL SYLLABLE PIEUP EO PIEUPSIOS +0x93B5 0xBC98 #HANGUL SYLLABLE PIEUP EO SSANGSIOS +0x93B6 0xBC9B #HANGUL SYLLABLE PIEUP EO CHIEUCH +0x93B7 0xBC9C #HANGUL SYLLABLE PIEUP EO KHIEUKH +0x93B8 0xBC9D #HANGUL SYLLABLE PIEUP EO THIEUTH +0x93B9 0xBC9E #HANGUL SYLLABLE PIEUP EO PHIEUPH +0x93BA 0xBC9F #HANGUL SYLLABLE PIEUP EO HIEUH +0x93BB 0xBCA2 #HANGUL SYLLABLE PIEUP E SSANGKIYEOK +0x93BC 0xBCA3 #HANGUL SYLLABLE PIEUP E KIYEOKSIOS +0x93BD 0xBCA5 #HANGUL SYLLABLE PIEUP E NIEUNCIEUC +0x93BE 0xBCA6 #HANGUL SYLLABLE PIEUP E NIEUNHIEUH +0x93BF 0xBCA9 #HANGUL SYLLABLE PIEUP E RIEULKIYEOK +0x93C0 0xBCAA #HANGUL SYLLABLE PIEUP E RIEULMIEUM +0x93C1 0xBCAB #HANGUL SYLLABLE PIEUP E RIEULPIEUP +0x93C2 0xBCAC #HANGUL SYLLABLE PIEUP E RIEULSIOS +0x93C3 0xBCAD #HANGUL SYLLABLE PIEUP E RIEULTHIEUTH +0x93C4 0xBCAE #HANGUL SYLLABLE PIEUP E RIEULPHIEUPH +0x93C5 0xBCAF #HANGUL SYLLABLE PIEUP E RIEULHIEUH +0x93C6 0xBCB2 #HANGUL SYLLABLE PIEUP E PIEUPSIOS +0x93C7 0xBCB6 #HANGUL SYLLABLE PIEUP E CIEUC +0x93C8 0xBCB7 #HANGUL SYLLABLE PIEUP E CHIEUCH +0x93C9 0xBCB8 #HANGUL SYLLABLE PIEUP E KHIEUKH +0x93CA 0xBCB9 #HANGUL SYLLABLE PIEUP E THIEUTH +0x93CB 0xBCBA #HANGUL SYLLABLE PIEUP E PHIEUPH +0x93CC 0xBCBB #HANGUL SYLLABLE PIEUP E HIEUH +0x93CD 0xBCBE #HANGUL SYLLABLE PIEUP YEO SSANGKIYEOK +0x93CE 0xBCBF #HANGUL SYLLABLE PIEUP YEO KIYEOKSIOS +0x93CF 0xBCC1 #HANGUL SYLLABLE PIEUP YEO NIEUNCIEUC +0x93D0 0xBCC2 #HANGUL SYLLABLE PIEUP YEO NIEUNHIEUH +0x93D1 0xBCC3 #HANGUL SYLLABLE PIEUP YEO TIKEUT +0x93D2 0xBCC5 #HANGUL SYLLABLE PIEUP YEO RIEULKIYEOK +0x93D3 0xBCC6 #HANGUL SYLLABLE PIEUP YEO RIEULMIEUM +0x93D4 0xBCC7 #HANGUL SYLLABLE PIEUP YEO RIEULPIEUP +0x93D5 0xBCC8 #HANGUL SYLLABLE PIEUP YEO RIEULSIOS +0x93D6 0xBCC9 #HANGUL SYLLABLE PIEUP YEO RIEULTHIEUTH +0x93D7 0xBCCA #HANGUL SYLLABLE PIEUP YEO RIEULPHIEUPH +0x93D8 0xBCCB #HANGUL SYLLABLE PIEUP YEO RIEULHIEUH +0x93D9 0xBCCC #HANGUL SYLLABLE PIEUP YEO MIEUM +0x93DA 0xBCCE #HANGUL SYLLABLE PIEUP YEO PIEUPSIOS +0x93DB 0xBCD2 #HANGUL SYLLABLE PIEUP YEO CIEUC +0x93DC 0xBCD3 #HANGUL SYLLABLE PIEUP YEO CHIEUCH +0x93DD 0xBCD4 #HANGUL SYLLABLE PIEUP YEO KHIEUKH +0x93DE 0xBCD6 #HANGUL SYLLABLE PIEUP YEO PHIEUPH +0x93DF 0xBCD7 #HANGUL SYLLABLE PIEUP YEO HIEUH +0x93E0 0xBCD9 #HANGUL SYLLABLE PIEUP YE KIYEOK +0x93E1 0xBCDA #HANGUL SYLLABLE PIEUP YE SSANGKIYEOK +0x93E2 0xBCDB #HANGUL SYLLABLE PIEUP YE KIYEOKSIOS +0x93E3 0xBCDD #HANGUL SYLLABLE PIEUP YE NIEUNCIEUC +0x93E4 0xBCDE #HANGUL SYLLABLE PIEUP YE NIEUNHIEUH +0x93E5 0xBCDF #HANGUL SYLLABLE PIEUP YE TIKEUT +0x93E6 0xBCE0 #HANGUL SYLLABLE PIEUP YE RIEUL +0x93E7 0xBCE1 #HANGUL SYLLABLE PIEUP YE RIEULKIYEOK +0x93E8 0xBCE2 #HANGUL SYLLABLE PIEUP YE RIEULMIEUM +0x93E9 0xBCE3 #HANGUL SYLLABLE PIEUP YE RIEULPIEUP +0x93EA 0xBCE4 #HANGUL SYLLABLE PIEUP YE RIEULSIOS +0x93EB 0xBCE5 #HANGUL SYLLABLE PIEUP YE RIEULTHIEUTH +0x93EC 0xBCE6 #HANGUL SYLLABLE PIEUP YE RIEULPHIEUPH +0x93ED 0xBCE7 #HANGUL SYLLABLE PIEUP YE RIEULHIEUH +0x93EE 0xBCE8 #HANGUL SYLLABLE PIEUP YE MIEUM +0x93EF 0xBCE9 #HANGUL SYLLABLE PIEUP YE PIEUP +0x93F0 0xBCEA #HANGUL SYLLABLE PIEUP YE PIEUPSIOS +0x93F1 0xBCEB #HANGUL SYLLABLE PIEUP YE SIOS +0x93F2 0xBCEC #HANGUL SYLLABLE PIEUP YE SSANGSIOS +0x93F3 0xBCED #HANGUL SYLLABLE PIEUP YE IEUNG +0x93F4 0xBCEE #HANGUL SYLLABLE PIEUP YE CIEUC +0x93F5 0xBCEF #HANGUL SYLLABLE PIEUP YE CHIEUCH +0x93F6 0xBCF0 #HANGUL SYLLABLE PIEUP YE KHIEUKH +0x93F7 0xBCF1 #HANGUL SYLLABLE PIEUP YE THIEUTH +0x93F8 0xBCF2 #HANGUL SYLLABLE PIEUP YE PHIEUPH +0x93F9 0xBCF3 #HANGUL SYLLABLE PIEUP YE HIEUH +0x93FA 0xBCF7 #HANGUL SYLLABLE PIEUP O KIYEOKSIOS +0x93FB 0xBCF9 #HANGUL SYLLABLE PIEUP O NIEUNCIEUC +0x93FC 0xBCFA #HANGUL SYLLABLE PIEUP O NIEUNHIEUH +0x93FD 0xBCFB #HANGUL SYLLABLE PIEUP O TIKEUT +0x93FE 0xBCFD #HANGUL SYLLABLE PIEUP O RIEULKIYEOK +0x9441 0xBCFE #HANGUL SYLLABLE PIEUP O RIEULMIEUM +0x9442 0xBCFF #HANGUL SYLLABLE PIEUP O RIEULPIEUP +0x9443 0xBD00 #HANGUL SYLLABLE PIEUP O RIEULSIOS +0x9444 0xBD01 #HANGUL SYLLABLE PIEUP O RIEULTHIEUTH +0x9445 0xBD02 #HANGUL SYLLABLE PIEUP O RIEULPHIEUPH +0x9446 0xBD03 #HANGUL SYLLABLE PIEUP O RIEULHIEUH +0x9447 0xBD06 #HANGUL SYLLABLE PIEUP O PIEUPSIOS +0x9448 0xBD08 #HANGUL SYLLABLE PIEUP O SSANGSIOS +0x9449 0xBD0A #HANGUL SYLLABLE PIEUP O CIEUC +0x944A 0xBD0B #HANGUL SYLLABLE PIEUP O CHIEUCH +0x944B 0xBD0C #HANGUL SYLLABLE PIEUP O KHIEUKH +0x944C 0xBD0D #HANGUL SYLLABLE PIEUP O THIEUTH +0x944D 0xBD0E #HANGUL SYLLABLE PIEUP O PHIEUPH +0x944E 0xBD0F #HANGUL SYLLABLE PIEUP O HIEUH +0x944F 0xBD11 #HANGUL SYLLABLE PIEUP WA KIYEOK +0x9450 0xBD12 #HANGUL SYLLABLE PIEUP WA SSANGKIYEOK +0x9451 0xBD13 #HANGUL SYLLABLE PIEUP WA KIYEOKSIOS +0x9452 0xBD15 #HANGUL SYLLABLE PIEUP WA NIEUNCIEUC +0x9453 0xBD16 #HANGUL SYLLABLE PIEUP WA NIEUNHIEUH +0x9454 0xBD17 #HANGUL SYLLABLE PIEUP WA TIKEUT +0x9455 0xBD18 #HANGUL SYLLABLE PIEUP WA RIEUL +0x9456 0xBD19 #HANGUL SYLLABLE PIEUP WA RIEULKIYEOK +0x9457 0xBD1A #HANGUL SYLLABLE PIEUP WA RIEULMIEUM +0x9458 0xBD1B #HANGUL SYLLABLE PIEUP WA RIEULPIEUP +0x9459 0xBD1C #HANGUL SYLLABLE PIEUP WA RIEULSIOS +0x945A 0xBD1D #HANGUL SYLLABLE PIEUP WA RIEULTHIEUTH +0x9461 0xBD1E #HANGUL SYLLABLE PIEUP WA RIEULPHIEUPH +0x9462 0xBD1F #HANGUL SYLLABLE PIEUP WA RIEULHIEUH +0x9463 0xBD20 #HANGUL SYLLABLE PIEUP WA MIEUM +0x9464 0xBD21 #HANGUL SYLLABLE PIEUP WA PIEUP +0x9465 0xBD22 #HANGUL SYLLABLE PIEUP WA PIEUPSIOS +0x9466 0xBD23 #HANGUL SYLLABLE PIEUP WA SIOS +0x9467 0xBD25 #HANGUL SYLLABLE PIEUP WA IEUNG +0x9468 0xBD26 #HANGUL SYLLABLE PIEUP WA CIEUC +0x9469 0xBD27 #HANGUL SYLLABLE PIEUP WA CHIEUCH +0x946A 0xBD28 #HANGUL SYLLABLE PIEUP WA KHIEUKH +0x946B 0xBD29 #HANGUL SYLLABLE PIEUP WA THIEUTH +0x946C 0xBD2A #HANGUL SYLLABLE PIEUP WA PHIEUPH +0x946D 0xBD2B #HANGUL SYLLABLE PIEUP WA HIEUH +0x946E 0xBD2D #HANGUL SYLLABLE PIEUP WAE KIYEOK +0x946F 0xBD2E #HANGUL SYLLABLE PIEUP WAE SSANGKIYEOK +0x9470 0xBD2F #HANGUL SYLLABLE PIEUP WAE KIYEOKSIOS +0x9471 0xBD30 #HANGUL SYLLABLE PIEUP WAE NIEUN +0x9472 0xBD31 #HANGUL SYLLABLE PIEUP WAE NIEUNCIEUC +0x9473 0xBD32 #HANGUL SYLLABLE PIEUP WAE NIEUNHIEUH +0x9474 0xBD33 #HANGUL SYLLABLE PIEUP WAE TIKEUT +0x9475 0xBD34 #HANGUL SYLLABLE PIEUP WAE RIEUL +0x9476 0xBD35 #HANGUL SYLLABLE PIEUP WAE RIEULKIYEOK +0x9477 0xBD36 #HANGUL SYLLABLE PIEUP WAE RIEULMIEUM +0x9478 0xBD37 #HANGUL SYLLABLE PIEUP WAE RIEULPIEUP +0x9479 0xBD38 #HANGUL SYLLABLE PIEUP WAE RIEULSIOS +0x947A 0xBD39 #HANGUL SYLLABLE PIEUP WAE RIEULTHIEUTH +0x9481 0xBD3A #HANGUL SYLLABLE PIEUP WAE RIEULPHIEUPH +0x9482 0xBD3B #HANGUL SYLLABLE PIEUP WAE RIEULHIEUH +0x9483 0xBD3C #HANGUL SYLLABLE PIEUP WAE MIEUM +0x9484 0xBD3D #HANGUL SYLLABLE PIEUP WAE PIEUP +0x9485 0xBD3E #HANGUL SYLLABLE PIEUP WAE PIEUPSIOS +0x9486 0xBD3F #HANGUL SYLLABLE PIEUP WAE SIOS +0x9487 0xBD41 #HANGUL SYLLABLE PIEUP WAE IEUNG +0x9488 0xBD42 #HANGUL SYLLABLE PIEUP WAE CIEUC +0x9489 0xBD43 #HANGUL SYLLABLE PIEUP WAE CHIEUCH +0x948A 0xBD44 #HANGUL SYLLABLE PIEUP WAE KHIEUKH +0x948B 0xBD45 #HANGUL SYLLABLE PIEUP WAE THIEUTH +0x948C 0xBD46 #HANGUL SYLLABLE PIEUP WAE PHIEUPH +0x948D 0xBD47 #HANGUL SYLLABLE PIEUP WAE HIEUH +0x948E 0xBD4A #HANGUL SYLLABLE PIEUP OE SSANGKIYEOK +0x948F 0xBD4B #HANGUL SYLLABLE PIEUP OE KIYEOKSIOS +0x9490 0xBD4D #HANGUL SYLLABLE PIEUP OE NIEUNCIEUC +0x9491 0xBD4E #HANGUL SYLLABLE PIEUP OE NIEUNHIEUH +0x9492 0xBD4F #HANGUL SYLLABLE PIEUP OE TIKEUT +0x9493 0xBD51 #HANGUL SYLLABLE PIEUP OE RIEULKIYEOK +0x9494 0xBD52 #HANGUL SYLLABLE PIEUP OE RIEULMIEUM +0x9495 0xBD53 #HANGUL SYLLABLE PIEUP OE RIEULPIEUP +0x9496 0xBD54 #HANGUL SYLLABLE PIEUP OE RIEULSIOS +0x9497 0xBD55 #HANGUL SYLLABLE PIEUP OE RIEULTHIEUTH +0x9498 0xBD56 #HANGUL SYLLABLE PIEUP OE RIEULPHIEUPH +0x9499 0xBD57 #HANGUL SYLLABLE PIEUP OE RIEULHIEUH +0x949A 0xBD5A #HANGUL SYLLABLE PIEUP OE PIEUPSIOS +0x949B 0xBD5B #HANGUL SYLLABLE PIEUP OE SIOS +0x949C 0xBD5C #HANGUL SYLLABLE PIEUP OE SSANGSIOS +0x949D 0xBD5D #HANGUL SYLLABLE PIEUP OE IEUNG +0x949E 0xBD5E #HANGUL SYLLABLE PIEUP OE CIEUC +0x949F 0xBD5F #HANGUL SYLLABLE PIEUP OE CHIEUCH +0x94A0 0xBD60 #HANGUL SYLLABLE PIEUP OE KHIEUKH +0x94A1 0xBD61 #HANGUL SYLLABLE PIEUP OE THIEUTH +0x94A2 0xBD62 #HANGUL SYLLABLE PIEUP OE PHIEUPH +0x94A3 0xBD63 #HANGUL SYLLABLE PIEUP OE HIEUH +0x94A4 0xBD65 #HANGUL SYLLABLE PIEUP YO KIYEOK +0x94A5 0xBD66 #HANGUL SYLLABLE PIEUP YO SSANGKIYEOK +0x94A6 0xBD67 #HANGUL SYLLABLE PIEUP YO KIYEOKSIOS +0x94A7 0xBD69 #HANGUL SYLLABLE PIEUP YO NIEUNCIEUC +0x94A8 0xBD6A #HANGUL SYLLABLE PIEUP YO NIEUNHIEUH +0x94A9 0xBD6B #HANGUL SYLLABLE PIEUP YO TIKEUT +0x94AA 0xBD6C #HANGUL SYLLABLE PIEUP YO RIEUL +0x94AB 0xBD6D #HANGUL SYLLABLE PIEUP YO RIEULKIYEOK +0x94AC 0xBD6E #HANGUL SYLLABLE PIEUP YO RIEULMIEUM +0x94AD 0xBD6F #HANGUL SYLLABLE PIEUP YO RIEULPIEUP +0x94AE 0xBD70 #HANGUL SYLLABLE PIEUP YO RIEULSIOS +0x94AF 0xBD71 #HANGUL SYLLABLE PIEUP YO RIEULTHIEUTH +0x94B0 0xBD72 #HANGUL SYLLABLE PIEUP YO RIEULPHIEUPH +0x94B1 0xBD73 #HANGUL SYLLABLE PIEUP YO RIEULHIEUH +0x94B2 0xBD74 #HANGUL SYLLABLE PIEUP YO MIEUM +0x94B3 0xBD75 #HANGUL SYLLABLE PIEUP YO PIEUP +0x94B4 0xBD76 #HANGUL SYLLABLE PIEUP YO PIEUPSIOS +0x94B5 0xBD77 #HANGUL SYLLABLE PIEUP YO SIOS +0x94B6 0xBD78 #HANGUL SYLLABLE PIEUP YO SSANGSIOS +0x94B7 0xBD79 #HANGUL SYLLABLE PIEUP YO IEUNG +0x94B8 0xBD7A #HANGUL SYLLABLE PIEUP YO CIEUC +0x94B9 0xBD7B #HANGUL SYLLABLE PIEUP YO CHIEUCH +0x94BA 0xBD7C #HANGUL SYLLABLE PIEUP YO KHIEUKH +0x94BB 0xBD7D #HANGUL SYLLABLE PIEUP YO THIEUTH +0x94BC 0xBD7E #HANGUL SYLLABLE PIEUP YO PHIEUPH +0x94BD 0xBD7F #HANGUL SYLLABLE PIEUP YO HIEUH +0x94BE 0xBD82 #HANGUL SYLLABLE PIEUP U SSANGKIYEOK +0x94BF 0xBD83 #HANGUL SYLLABLE PIEUP U KIYEOKSIOS +0x94C0 0xBD85 #HANGUL SYLLABLE PIEUP U NIEUNCIEUC +0x94C1 0xBD86 #HANGUL SYLLABLE PIEUP U NIEUNHIEUH +0x94C2 0xBD8B #HANGUL SYLLABLE PIEUP U RIEULPIEUP +0x94C3 0xBD8C #HANGUL SYLLABLE PIEUP U RIEULSIOS +0x94C4 0xBD8D #HANGUL SYLLABLE PIEUP U RIEULTHIEUTH +0x94C5 0xBD8E #HANGUL SYLLABLE PIEUP U RIEULPHIEUPH +0x94C6 0xBD8F #HANGUL SYLLABLE PIEUP U RIEULHIEUH +0x94C7 0xBD92 #HANGUL SYLLABLE PIEUP U PIEUPSIOS +0x94C8 0xBD94 #HANGUL SYLLABLE PIEUP U SSANGSIOS +0x94C9 0xBD96 #HANGUL SYLLABLE PIEUP U CIEUC +0x94CA 0xBD97 #HANGUL SYLLABLE PIEUP U CHIEUCH +0x94CB 0xBD98 #HANGUL SYLLABLE PIEUP U KHIEUKH +0x94CC 0xBD9B #HANGUL SYLLABLE PIEUP U HIEUH +0x94CD 0xBD9D #HANGUL SYLLABLE PIEUP WEO KIYEOK +0x94CE 0xBD9E #HANGUL SYLLABLE PIEUP WEO SSANGKIYEOK +0x94CF 0xBD9F #HANGUL SYLLABLE PIEUP WEO KIYEOKSIOS +0x94D0 0xBDA0 #HANGUL SYLLABLE PIEUP WEO NIEUN +0x94D1 0xBDA1 #HANGUL SYLLABLE PIEUP WEO NIEUNCIEUC +0x94D2 0xBDA2 #HANGUL SYLLABLE PIEUP WEO NIEUNHIEUH +0x94D3 0xBDA3 #HANGUL SYLLABLE PIEUP WEO TIKEUT +0x94D4 0xBDA5 #HANGUL SYLLABLE PIEUP WEO RIEULKIYEOK +0x94D5 0xBDA6 #HANGUL SYLLABLE PIEUP WEO RIEULMIEUM +0x94D6 0xBDA7 #HANGUL SYLLABLE PIEUP WEO RIEULPIEUP +0x94D7 0xBDA8 #HANGUL SYLLABLE PIEUP WEO RIEULSIOS +0x94D8 0xBDA9 #HANGUL SYLLABLE PIEUP WEO RIEULTHIEUTH +0x94D9 0xBDAA #HANGUL SYLLABLE PIEUP WEO RIEULPHIEUPH +0x94DA 0xBDAB #HANGUL SYLLABLE PIEUP WEO RIEULHIEUH +0x94DB 0xBDAC #HANGUL SYLLABLE PIEUP WEO MIEUM +0x94DC 0xBDAD #HANGUL SYLLABLE PIEUP WEO PIEUP +0x94DD 0xBDAE #HANGUL SYLLABLE PIEUP WEO PIEUPSIOS +0x94DE 0xBDAF #HANGUL SYLLABLE PIEUP WEO SIOS +0x94DF 0xBDB1 #HANGUL SYLLABLE PIEUP WEO IEUNG +0x94E0 0xBDB2 #HANGUL SYLLABLE PIEUP WEO CIEUC +0x94E1 0xBDB3 #HANGUL SYLLABLE PIEUP WEO CHIEUCH +0x94E2 0xBDB4 #HANGUL SYLLABLE PIEUP WEO KHIEUKH +0x94E3 0xBDB5 #HANGUL SYLLABLE PIEUP WEO THIEUTH +0x94E4 0xBDB6 #HANGUL SYLLABLE PIEUP WEO PHIEUPH +0x94E5 0xBDB7 #HANGUL SYLLABLE PIEUP WEO HIEUH +0x94E6 0xBDB9 #HANGUL SYLLABLE PIEUP WE KIYEOK +0x94E7 0xBDBA #HANGUL SYLLABLE PIEUP WE SSANGKIYEOK +0x94E8 0xBDBB #HANGUL SYLLABLE PIEUP WE KIYEOKSIOS +0x94E9 0xBDBC #HANGUL SYLLABLE PIEUP WE NIEUN +0x94EA 0xBDBD #HANGUL SYLLABLE PIEUP WE NIEUNCIEUC +0x94EB 0xBDBE #HANGUL SYLLABLE PIEUP WE NIEUNHIEUH +0x94EC 0xBDBF #HANGUL SYLLABLE PIEUP WE TIKEUT +0x94ED 0xBDC0 #HANGUL SYLLABLE PIEUP WE RIEUL +0x94EE 0xBDC1 #HANGUL SYLLABLE PIEUP WE RIEULKIYEOK +0x94EF 0xBDC2 #HANGUL SYLLABLE PIEUP WE RIEULMIEUM +0x94F0 0xBDC3 #HANGUL SYLLABLE PIEUP WE RIEULPIEUP +0x94F1 0xBDC4 #HANGUL SYLLABLE PIEUP WE RIEULSIOS +0x94F2 0xBDC5 #HANGUL SYLLABLE PIEUP WE RIEULTHIEUTH +0x94F3 0xBDC6 #HANGUL SYLLABLE PIEUP WE RIEULPHIEUPH +0x94F4 0xBDC7 #HANGUL SYLLABLE PIEUP WE RIEULHIEUH +0x94F5 0xBDC8 #HANGUL SYLLABLE PIEUP WE MIEUM +0x94F6 0xBDC9 #HANGUL SYLLABLE PIEUP WE PIEUP +0x94F7 0xBDCA #HANGUL SYLLABLE PIEUP WE PIEUPSIOS +0x94F8 0xBDCB #HANGUL SYLLABLE PIEUP WE SIOS +0x94F9 0xBDCC #HANGUL SYLLABLE PIEUP WE SSANGSIOS +0x94FA 0xBDCD #HANGUL SYLLABLE PIEUP WE IEUNG +0x94FB 0xBDCE #HANGUL SYLLABLE PIEUP WE CIEUC +0x94FC 0xBDCF #HANGUL SYLLABLE PIEUP WE CHIEUCH +0x94FD 0xBDD0 #HANGUL SYLLABLE PIEUP WE KHIEUKH +0x94FE 0xBDD1 #HANGUL SYLLABLE PIEUP WE THIEUTH +0x9541 0xBDD2 #HANGUL SYLLABLE PIEUP WE PHIEUPH +0x9542 0xBDD3 #HANGUL SYLLABLE PIEUP WE HIEUH +0x9543 0xBDD6 #HANGUL SYLLABLE PIEUP WI SSANGKIYEOK +0x9544 0xBDD7 #HANGUL SYLLABLE PIEUP WI KIYEOKSIOS +0x9545 0xBDD9 #HANGUL SYLLABLE PIEUP WI NIEUNCIEUC +0x9546 0xBDDA #HANGUL SYLLABLE PIEUP WI NIEUNHIEUH +0x9547 0xBDDB #HANGUL SYLLABLE PIEUP WI TIKEUT +0x9548 0xBDDD #HANGUL SYLLABLE PIEUP WI RIEULKIYEOK +0x9549 0xBDDE #HANGUL SYLLABLE PIEUP WI RIEULMIEUM +0x954A 0xBDDF #HANGUL SYLLABLE PIEUP WI RIEULPIEUP +0x954B 0xBDE0 #HANGUL SYLLABLE PIEUP WI RIEULSIOS +0x954C 0xBDE1 #HANGUL SYLLABLE PIEUP WI RIEULTHIEUTH +0x954D 0xBDE2 #HANGUL SYLLABLE PIEUP WI RIEULPHIEUPH +0x954E 0xBDE3 #HANGUL SYLLABLE PIEUP WI RIEULHIEUH +0x954F 0xBDE4 #HANGUL SYLLABLE PIEUP WI MIEUM +0x9550 0xBDE5 #HANGUL SYLLABLE PIEUP WI PIEUP +0x9551 0xBDE6 #HANGUL SYLLABLE PIEUP WI PIEUPSIOS +0x9552 0xBDE7 #HANGUL SYLLABLE PIEUP WI SIOS +0x9553 0xBDE8 #HANGUL SYLLABLE PIEUP WI SSANGSIOS +0x9554 0xBDEA #HANGUL SYLLABLE PIEUP WI CIEUC +0x9555 0xBDEB #HANGUL SYLLABLE PIEUP WI CHIEUCH +0x9556 0xBDEC #HANGUL SYLLABLE PIEUP WI KHIEUKH +0x9557 0xBDED #HANGUL SYLLABLE PIEUP WI THIEUTH +0x9558 0xBDEE #HANGUL SYLLABLE PIEUP WI PHIEUPH +0x9559 0xBDEF #HANGUL SYLLABLE PIEUP WI HIEUH +0x955A 0xBDF1 #HANGUL SYLLABLE PIEUP YU KIYEOK +0x9561 0xBDF2 #HANGUL SYLLABLE PIEUP YU SSANGKIYEOK +0x9562 0xBDF3 #HANGUL SYLLABLE PIEUP YU KIYEOKSIOS +0x9563 0xBDF5 #HANGUL SYLLABLE PIEUP YU NIEUNCIEUC +0x9564 0xBDF6 #HANGUL SYLLABLE PIEUP YU NIEUNHIEUH +0x9565 0xBDF7 #HANGUL SYLLABLE PIEUP YU TIKEUT +0x9566 0xBDF9 #HANGUL SYLLABLE PIEUP YU RIEULKIYEOK +0x9567 0xBDFA #HANGUL SYLLABLE PIEUP YU RIEULMIEUM +0x9568 0xBDFB #HANGUL SYLLABLE PIEUP YU RIEULPIEUP +0x9569 0xBDFC #HANGUL SYLLABLE PIEUP YU RIEULSIOS +0x956A 0xBDFD #HANGUL SYLLABLE PIEUP YU RIEULTHIEUTH +0x956B 0xBDFE #HANGUL SYLLABLE PIEUP YU RIEULPHIEUPH +0x956C 0xBDFF #HANGUL SYLLABLE PIEUP YU RIEULHIEUH +0x956D 0xBE01 #HANGUL SYLLABLE PIEUP YU PIEUP +0x956E 0xBE02 #HANGUL SYLLABLE PIEUP YU PIEUPSIOS +0x956F 0xBE04 #HANGUL SYLLABLE PIEUP YU SSANGSIOS +0x9570 0xBE06 #HANGUL SYLLABLE PIEUP YU CIEUC +0x9571 0xBE07 #HANGUL SYLLABLE PIEUP YU CHIEUCH +0x9572 0xBE08 #HANGUL SYLLABLE PIEUP YU KHIEUKH +0x9573 0xBE09 #HANGUL SYLLABLE PIEUP YU THIEUTH +0x9574 0xBE0A #HANGUL SYLLABLE PIEUP YU PHIEUPH +0x9575 0xBE0B #HANGUL SYLLABLE PIEUP YU HIEUH +0x9576 0xBE0E #HANGUL SYLLABLE PIEUP EU SSANGKIYEOK +0x9577 0xBE0F #HANGUL SYLLABLE PIEUP EU KIYEOKSIOS +0x9578 0xBE11 #HANGUL SYLLABLE PIEUP EU NIEUNCIEUC +0x9579 0xBE12 #HANGUL SYLLABLE PIEUP EU NIEUNHIEUH +0x957A 0xBE13 #HANGUL SYLLABLE PIEUP EU TIKEUT +0x9581 0xBE15 #HANGUL SYLLABLE PIEUP EU RIEULKIYEOK +0x9582 0xBE16 #HANGUL SYLLABLE PIEUP EU RIEULMIEUM +0x9583 0xBE17 #HANGUL SYLLABLE PIEUP EU RIEULPIEUP +0x9584 0xBE18 #HANGUL SYLLABLE PIEUP EU RIEULSIOS +0x9585 0xBE19 #HANGUL SYLLABLE PIEUP EU RIEULTHIEUTH +0x9586 0xBE1A #HANGUL SYLLABLE PIEUP EU RIEULPHIEUPH +0x9587 0xBE1B #HANGUL SYLLABLE PIEUP EU RIEULHIEUH +0x9588 0xBE1E #HANGUL SYLLABLE PIEUP EU PIEUPSIOS +0x9589 0xBE20 #HANGUL SYLLABLE PIEUP EU SSANGSIOS +0x958A 0xBE21 #HANGUL SYLLABLE PIEUP EU IEUNG +0x958B 0xBE22 #HANGUL SYLLABLE PIEUP EU CIEUC +0x958C 0xBE23 #HANGUL SYLLABLE PIEUP EU CHIEUCH +0x958D 0xBE24 #HANGUL SYLLABLE PIEUP EU KHIEUKH +0x958E 0xBE25 #HANGUL SYLLABLE PIEUP EU THIEUTH +0x958F 0xBE26 #HANGUL SYLLABLE PIEUP EU PHIEUPH +0x9590 0xBE27 #HANGUL SYLLABLE PIEUP EU HIEUH +0x9591 0xBE28 #HANGUL SYLLABLE PIEUP YI +0x9592 0xBE29 #HANGUL SYLLABLE PIEUP YI KIYEOK +0x9593 0xBE2A #HANGUL SYLLABLE PIEUP YI SSANGKIYEOK +0x9594 0xBE2B #HANGUL SYLLABLE PIEUP YI KIYEOKSIOS +0x9595 0xBE2C #HANGUL SYLLABLE PIEUP YI NIEUN +0x9596 0xBE2D #HANGUL SYLLABLE PIEUP YI NIEUNCIEUC +0x9597 0xBE2E #HANGUL SYLLABLE PIEUP YI NIEUNHIEUH +0x9598 0xBE2F #HANGUL SYLLABLE PIEUP YI TIKEUT +0x9599 0xBE30 #HANGUL SYLLABLE PIEUP YI RIEUL +0x959A 0xBE31 #HANGUL SYLLABLE PIEUP YI RIEULKIYEOK +0x959B 0xBE32 #HANGUL SYLLABLE PIEUP YI RIEULMIEUM +0x959C 0xBE33 #HANGUL SYLLABLE PIEUP YI RIEULPIEUP +0x959D 0xBE34 #HANGUL SYLLABLE PIEUP YI RIEULSIOS +0x959E 0xBE35 #HANGUL SYLLABLE PIEUP YI RIEULTHIEUTH +0x959F 0xBE36 #HANGUL SYLLABLE PIEUP YI RIEULPHIEUPH +0x95A0 0xBE37 #HANGUL SYLLABLE PIEUP YI RIEULHIEUH +0x95A1 0xBE38 #HANGUL SYLLABLE PIEUP YI MIEUM +0x95A2 0xBE39 #HANGUL SYLLABLE PIEUP YI PIEUP +0x95A3 0xBE3A #HANGUL SYLLABLE PIEUP YI PIEUPSIOS +0x95A4 0xBE3B #HANGUL SYLLABLE PIEUP YI SIOS +0x95A5 0xBE3C #HANGUL SYLLABLE PIEUP YI SSANGSIOS +0x95A6 0xBE3D #HANGUL SYLLABLE PIEUP YI IEUNG +0x95A7 0xBE3E #HANGUL SYLLABLE PIEUP YI CIEUC +0x95A8 0xBE3F #HANGUL SYLLABLE PIEUP YI CHIEUCH +0x95A9 0xBE40 #HANGUL SYLLABLE PIEUP YI KHIEUKH +0x95AA 0xBE41 #HANGUL SYLLABLE PIEUP YI THIEUTH +0x95AB 0xBE42 #HANGUL SYLLABLE PIEUP YI PHIEUPH +0x95AC 0xBE43 #HANGUL SYLLABLE PIEUP YI HIEUH +0x95AD 0xBE46 #HANGUL SYLLABLE PIEUP I SSANGKIYEOK +0x95AE 0xBE47 #HANGUL SYLLABLE PIEUP I KIYEOKSIOS +0x95AF 0xBE49 #HANGUL SYLLABLE PIEUP I NIEUNCIEUC +0x95B0 0xBE4A #HANGUL SYLLABLE PIEUP I NIEUNHIEUH +0x95B1 0xBE4B #HANGUL SYLLABLE PIEUP I TIKEUT +0x95B2 0xBE4D #HANGUL SYLLABLE PIEUP I RIEULKIYEOK +0x95B3 0xBE4F #HANGUL SYLLABLE PIEUP I RIEULPIEUP +0x95B4 0xBE50 #HANGUL SYLLABLE PIEUP I RIEULSIOS +0x95B5 0xBE51 #HANGUL SYLLABLE PIEUP I RIEULTHIEUTH +0x95B6 0xBE52 #HANGUL SYLLABLE PIEUP I RIEULPHIEUPH +0x95B7 0xBE53 #HANGUL SYLLABLE PIEUP I RIEULHIEUH +0x95B8 0xBE56 #HANGUL SYLLABLE PIEUP I PIEUPSIOS +0x95B9 0xBE58 #HANGUL SYLLABLE PIEUP I SSANGSIOS +0x95BA 0xBE5C #HANGUL SYLLABLE PIEUP I KHIEUKH +0x95BB 0xBE5D #HANGUL SYLLABLE PIEUP I THIEUTH +0x95BC 0xBE5E #HANGUL SYLLABLE PIEUP I PHIEUPH +0x95BD 0xBE5F #HANGUL SYLLABLE PIEUP I HIEUH +0x95BE 0xBE62 #HANGUL SYLLABLE SSANGPIEUP A SSANGKIYEOK +0x95BF 0xBE63 #HANGUL SYLLABLE SSANGPIEUP A KIYEOKSIOS +0x95C0 0xBE65 #HANGUL SYLLABLE SSANGPIEUP A NIEUNCIEUC +0x95C1 0xBE66 #HANGUL SYLLABLE SSANGPIEUP A NIEUNHIEUH +0x95C2 0xBE67 #HANGUL SYLLABLE SSANGPIEUP A TIKEUT +0x95C3 0xBE69 #HANGUL SYLLABLE SSANGPIEUP A RIEULKIYEOK +0x95C4 0xBE6B #HANGUL SYLLABLE SSANGPIEUP A RIEULPIEUP +0x95C5 0xBE6C #HANGUL SYLLABLE SSANGPIEUP A RIEULSIOS +0x95C6 0xBE6D #HANGUL SYLLABLE SSANGPIEUP A RIEULTHIEUTH +0x95C7 0xBE6E #HANGUL SYLLABLE SSANGPIEUP A RIEULPHIEUPH +0x95C8 0xBE6F #HANGUL SYLLABLE SSANGPIEUP A RIEULHIEUH +0x95C9 0xBE72 #HANGUL SYLLABLE SSANGPIEUP A PIEUPSIOS +0x95CA 0xBE76 #HANGUL SYLLABLE SSANGPIEUP A CIEUC +0x95CB 0xBE77 #HANGUL SYLLABLE SSANGPIEUP A CHIEUCH +0x95CC 0xBE78 #HANGUL SYLLABLE SSANGPIEUP A KHIEUKH +0x95CD 0xBE79 #HANGUL SYLLABLE SSANGPIEUP A THIEUTH +0x95CE 0xBE7A #HANGUL SYLLABLE SSANGPIEUP A PHIEUPH +0x95CF 0xBE7E #HANGUL SYLLABLE SSANGPIEUP AE SSANGKIYEOK +0x95D0 0xBE7F #HANGUL SYLLABLE SSANGPIEUP AE KIYEOKSIOS +0x95D1 0xBE81 #HANGUL SYLLABLE SSANGPIEUP AE NIEUNCIEUC +0x95D2 0xBE82 #HANGUL SYLLABLE SSANGPIEUP AE NIEUNHIEUH +0x95D3 0xBE83 #HANGUL SYLLABLE SSANGPIEUP AE TIKEUT +0x95D4 0xBE85 #HANGUL SYLLABLE SSANGPIEUP AE RIEULKIYEOK +0x95D5 0xBE86 #HANGUL SYLLABLE SSANGPIEUP AE RIEULMIEUM +0x95D6 0xBE87 #HANGUL SYLLABLE SSANGPIEUP AE RIEULPIEUP +0x95D7 0xBE88 #HANGUL SYLLABLE SSANGPIEUP AE RIEULSIOS +0x95D8 0xBE89 #HANGUL SYLLABLE SSANGPIEUP AE RIEULTHIEUTH +0x95D9 0xBE8A #HANGUL SYLLABLE SSANGPIEUP AE RIEULPHIEUPH +0x95DA 0xBE8B #HANGUL SYLLABLE SSANGPIEUP AE RIEULHIEUH +0x95DB 0xBE8E #HANGUL SYLLABLE SSANGPIEUP AE PIEUPSIOS +0x95DC 0xBE92 #HANGUL SYLLABLE SSANGPIEUP AE CIEUC +0x95DD 0xBE93 #HANGUL SYLLABLE SSANGPIEUP AE CHIEUCH +0x95DE 0xBE94 #HANGUL SYLLABLE SSANGPIEUP AE KHIEUKH +0x95DF 0xBE95 #HANGUL SYLLABLE SSANGPIEUP AE THIEUTH +0x95E0 0xBE96 #HANGUL SYLLABLE SSANGPIEUP AE PHIEUPH +0x95E1 0xBE97 #HANGUL SYLLABLE SSANGPIEUP AE HIEUH +0x95E2 0xBE9A #HANGUL SYLLABLE SSANGPIEUP YA SSANGKIYEOK +0x95E3 0xBE9B #HANGUL SYLLABLE SSANGPIEUP YA KIYEOKSIOS +0x95E4 0xBE9C #HANGUL SYLLABLE SSANGPIEUP YA NIEUN +0x95E5 0xBE9D #HANGUL SYLLABLE SSANGPIEUP YA NIEUNCIEUC +0x95E6 0xBE9E #HANGUL SYLLABLE SSANGPIEUP YA NIEUNHIEUH +0x95E7 0xBE9F #HANGUL SYLLABLE SSANGPIEUP YA TIKEUT +0x95E8 0xBEA0 #HANGUL SYLLABLE SSANGPIEUP YA RIEUL +0x95E9 0xBEA1 #HANGUL SYLLABLE SSANGPIEUP YA RIEULKIYEOK +0x95EA 0xBEA2 #HANGUL SYLLABLE SSANGPIEUP YA RIEULMIEUM +0x95EB 0xBEA3 #HANGUL SYLLABLE SSANGPIEUP YA RIEULPIEUP +0x95EC 0xBEA4 #HANGUL SYLLABLE SSANGPIEUP YA RIEULSIOS +0x95ED 0xBEA5 #HANGUL SYLLABLE SSANGPIEUP YA RIEULTHIEUTH +0x95EE 0xBEA6 #HANGUL SYLLABLE SSANGPIEUP YA RIEULPHIEUPH +0x95EF 0xBEA7 #HANGUL SYLLABLE SSANGPIEUP YA RIEULHIEUH +0x95F0 0xBEA9 #HANGUL SYLLABLE SSANGPIEUP YA PIEUP +0x95F1 0xBEAA #HANGUL SYLLABLE SSANGPIEUP YA PIEUPSIOS +0x95F2 0xBEAB #HANGUL SYLLABLE SSANGPIEUP YA SIOS +0x95F3 0xBEAC #HANGUL SYLLABLE SSANGPIEUP YA SSANGSIOS +0x95F4 0xBEAD #HANGUL SYLLABLE SSANGPIEUP YA IEUNG +0x95F5 0xBEAE #HANGUL SYLLABLE SSANGPIEUP YA CIEUC +0x95F6 0xBEAF #HANGUL SYLLABLE SSANGPIEUP YA CHIEUCH +0x95F7 0xBEB0 #HANGUL SYLLABLE SSANGPIEUP YA KHIEUKH +0x95F8 0xBEB1 #HANGUL SYLLABLE SSANGPIEUP YA THIEUTH +0x95F9 0xBEB2 #HANGUL SYLLABLE SSANGPIEUP YA PHIEUPH +0x95FA 0xBEB3 #HANGUL SYLLABLE SSANGPIEUP YA HIEUH +0x95FB 0xBEB4 #HANGUL SYLLABLE SSANGPIEUP YAE +0x95FC 0xBEB5 #HANGUL SYLLABLE SSANGPIEUP YAE KIYEOK +0x95FD 0xBEB6 #HANGUL SYLLABLE SSANGPIEUP YAE SSANGKIYEOK +0x95FE 0xBEB7 #HANGUL SYLLABLE SSANGPIEUP YAE KIYEOKSIOS +0x9641 0xBEB8 #HANGUL SYLLABLE SSANGPIEUP YAE NIEUN +0x9642 0xBEB9 #HANGUL SYLLABLE SSANGPIEUP YAE NIEUNCIEUC +0x9643 0xBEBA #HANGUL SYLLABLE SSANGPIEUP YAE NIEUNHIEUH +0x9644 0xBEBB #HANGUL SYLLABLE SSANGPIEUP YAE TIKEUT +0x9645 0xBEBC #HANGUL SYLLABLE SSANGPIEUP YAE RIEUL +0x9646 0xBEBD #HANGUL SYLLABLE SSANGPIEUP YAE RIEULKIYEOK +0x9647 0xBEBE #HANGUL SYLLABLE SSANGPIEUP YAE RIEULMIEUM +0x9648 0xBEBF #HANGUL SYLLABLE SSANGPIEUP YAE RIEULPIEUP +0x9649 0xBEC0 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULSIOS +0x964A 0xBEC1 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULTHIEUTH +0x964B 0xBEC2 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULPHIEUPH +0x964C 0xBEC3 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULHIEUH +0x964D 0xBEC4 #HANGUL SYLLABLE SSANGPIEUP YAE MIEUM +0x964E 0xBEC5 #HANGUL SYLLABLE SSANGPIEUP YAE PIEUP +0x964F 0xBEC6 #HANGUL SYLLABLE SSANGPIEUP YAE PIEUPSIOS +0x9650 0xBEC7 #HANGUL SYLLABLE SSANGPIEUP YAE SIOS +0x9651 0xBEC8 #HANGUL SYLLABLE SSANGPIEUP YAE SSANGSIOS +0x9652 0xBEC9 #HANGUL SYLLABLE SSANGPIEUP YAE IEUNG +0x9653 0xBECA #HANGUL SYLLABLE SSANGPIEUP YAE CIEUC +0x9654 0xBECB #HANGUL SYLLABLE SSANGPIEUP YAE CHIEUCH +0x9655 0xBECC #HANGUL SYLLABLE SSANGPIEUP YAE KHIEUKH +0x9656 0xBECD #HANGUL SYLLABLE SSANGPIEUP YAE THIEUTH +0x9657 0xBECE #HANGUL SYLLABLE SSANGPIEUP YAE PHIEUPH +0x9658 0xBECF #HANGUL SYLLABLE SSANGPIEUP YAE HIEUH +0x9659 0xBED2 #HANGUL SYLLABLE SSANGPIEUP EO SSANGKIYEOK +0x965A 0xBED3 #HANGUL SYLLABLE SSANGPIEUP EO KIYEOKSIOS +0x9661 0xBED5 #HANGUL SYLLABLE SSANGPIEUP EO NIEUNCIEUC +0x9662 0xBED6 #HANGUL SYLLABLE SSANGPIEUP EO NIEUNHIEUH +0x9663 0xBED9 #HANGUL SYLLABLE SSANGPIEUP EO RIEULKIYEOK +0x9664 0xBEDA #HANGUL SYLLABLE SSANGPIEUP EO RIEULMIEUM +0x9665 0xBEDB #HANGUL SYLLABLE SSANGPIEUP EO RIEULPIEUP +0x9666 0xBEDC #HANGUL SYLLABLE SSANGPIEUP EO RIEULSIOS +0x9667 0xBEDD #HANGUL SYLLABLE SSANGPIEUP EO RIEULTHIEUTH +0x9668 0xBEDE #HANGUL SYLLABLE SSANGPIEUP EO RIEULPHIEUPH +0x9669 0xBEDF #HANGUL SYLLABLE SSANGPIEUP EO RIEULHIEUH +0x966A 0xBEE1 #HANGUL SYLLABLE SSANGPIEUP EO PIEUP +0x966B 0xBEE2 #HANGUL SYLLABLE SSANGPIEUP EO PIEUPSIOS +0x966C 0xBEE6 #HANGUL SYLLABLE SSANGPIEUP EO CIEUC +0x966D 0xBEE7 #HANGUL SYLLABLE SSANGPIEUP EO CHIEUCH +0x966E 0xBEE8 #HANGUL SYLLABLE SSANGPIEUP EO KHIEUKH +0x966F 0xBEE9 #HANGUL SYLLABLE SSANGPIEUP EO THIEUTH +0x9670 0xBEEA #HANGUL SYLLABLE SSANGPIEUP EO PHIEUPH +0x9671 0xBEEB #HANGUL SYLLABLE SSANGPIEUP EO HIEUH +0x9672 0xBEED #HANGUL SYLLABLE SSANGPIEUP E KIYEOK +0x9673 0xBEEE #HANGUL SYLLABLE SSANGPIEUP E SSANGKIYEOK +0x9674 0xBEEF #HANGUL SYLLABLE SSANGPIEUP E KIYEOKSIOS +0x9675 0xBEF0 #HANGUL SYLLABLE SSANGPIEUP E NIEUN +0x9676 0xBEF1 #HANGUL SYLLABLE SSANGPIEUP E NIEUNCIEUC +0x9677 0xBEF2 #HANGUL SYLLABLE SSANGPIEUP E NIEUNHIEUH +0x9678 0xBEF3 #HANGUL SYLLABLE SSANGPIEUP E TIKEUT +0x9679 0xBEF4 #HANGUL SYLLABLE SSANGPIEUP E RIEUL +0x967A 0xBEF5 #HANGUL SYLLABLE SSANGPIEUP E RIEULKIYEOK +0x9681 0xBEF6 #HANGUL SYLLABLE SSANGPIEUP E RIEULMIEUM +0x9682 0xBEF7 #HANGUL SYLLABLE SSANGPIEUP E RIEULPIEUP +0x9683 0xBEF8 #HANGUL SYLLABLE SSANGPIEUP E RIEULSIOS +0x9684 0xBEF9 #HANGUL SYLLABLE SSANGPIEUP E RIEULTHIEUTH +0x9685 0xBEFA #HANGUL SYLLABLE SSANGPIEUP E RIEULPHIEUPH +0x9686 0xBEFB #HANGUL SYLLABLE SSANGPIEUP E RIEULHIEUH +0x9687 0xBEFC #HANGUL SYLLABLE SSANGPIEUP E MIEUM +0x9688 0xBEFD #HANGUL SYLLABLE SSANGPIEUP E PIEUP +0x9689 0xBEFE #HANGUL SYLLABLE SSANGPIEUP E PIEUPSIOS +0x968A 0xBEFF #HANGUL SYLLABLE SSANGPIEUP E SIOS +0x968B 0xBF00 #HANGUL SYLLABLE SSANGPIEUP E SSANGSIOS +0x968C 0xBF02 #HANGUL SYLLABLE SSANGPIEUP E CIEUC +0x968D 0xBF03 #HANGUL SYLLABLE SSANGPIEUP E CHIEUCH +0x968E 0xBF04 #HANGUL SYLLABLE SSANGPIEUP E KHIEUKH +0x968F 0xBF05 #HANGUL SYLLABLE SSANGPIEUP E THIEUTH +0x9690 0xBF06 #HANGUL SYLLABLE SSANGPIEUP E PHIEUPH +0x9691 0xBF07 #HANGUL SYLLABLE SSANGPIEUP E HIEUH +0x9692 0xBF0A #HANGUL SYLLABLE SSANGPIEUP YEO SSANGKIYEOK +0x9693 0xBF0B #HANGUL SYLLABLE SSANGPIEUP YEO KIYEOKSIOS +0x9694 0xBF0C #HANGUL SYLLABLE SSANGPIEUP YEO NIEUN +0x9695 0xBF0D #HANGUL SYLLABLE SSANGPIEUP YEO NIEUNCIEUC +0x9696 0xBF0E #HANGUL SYLLABLE SSANGPIEUP YEO NIEUNHIEUH +0x9697 0xBF0F #HANGUL SYLLABLE SSANGPIEUP YEO TIKEUT +0x9698 0xBF10 #HANGUL SYLLABLE SSANGPIEUP YEO RIEUL +0x9699 0xBF11 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULKIYEOK +0x969A 0xBF12 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULMIEUM +0x969B 0xBF13 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULPIEUP +0x969C 0xBF14 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULSIOS +0x969D 0xBF15 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULTHIEUTH +0x969E 0xBF16 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULPHIEUPH +0x969F 0xBF17 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULHIEUH +0x96A0 0xBF1A #HANGUL SYLLABLE SSANGPIEUP YEO PIEUPSIOS +0x96A1 0xBF1E #HANGUL SYLLABLE SSANGPIEUP YEO CIEUC +0x96A2 0xBF1F #HANGUL SYLLABLE SSANGPIEUP YEO CHIEUCH +0x96A3 0xBF20 #HANGUL SYLLABLE SSANGPIEUP YEO KHIEUKH +0x96A4 0xBF21 #HANGUL SYLLABLE SSANGPIEUP YEO THIEUTH +0x96A5 0xBF22 #HANGUL SYLLABLE SSANGPIEUP YEO PHIEUPH +0x96A6 0xBF23 #HANGUL SYLLABLE SSANGPIEUP YEO HIEUH +0x96A7 0xBF24 #HANGUL SYLLABLE SSANGPIEUP YE +0x96A8 0xBF25 #HANGUL SYLLABLE SSANGPIEUP YE KIYEOK +0x96A9 0xBF26 #HANGUL SYLLABLE SSANGPIEUP YE SSANGKIYEOK +0x96AA 0xBF27 #HANGUL SYLLABLE SSANGPIEUP YE KIYEOKSIOS +0x96AB 0xBF28 #HANGUL SYLLABLE SSANGPIEUP YE NIEUN +0x96AC 0xBF29 #HANGUL SYLLABLE SSANGPIEUP YE NIEUNCIEUC +0x96AD 0xBF2A #HANGUL SYLLABLE SSANGPIEUP YE NIEUNHIEUH +0x96AE 0xBF2B #HANGUL SYLLABLE SSANGPIEUP YE TIKEUT +0x96AF 0xBF2C #HANGUL SYLLABLE SSANGPIEUP YE RIEUL +0x96B0 0xBF2D #HANGUL SYLLABLE SSANGPIEUP YE RIEULKIYEOK +0x96B1 0xBF2E #HANGUL SYLLABLE SSANGPIEUP YE RIEULMIEUM +0x96B2 0xBF2F #HANGUL SYLLABLE SSANGPIEUP YE RIEULPIEUP +0x96B3 0xBF30 #HANGUL SYLLABLE SSANGPIEUP YE RIEULSIOS +0x96B4 0xBF31 #HANGUL SYLLABLE SSANGPIEUP YE RIEULTHIEUTH +0x96B5 0xBF32 #HANGUL SYLLABLE SSANGPIEUP YE RIEULPHIEUPH +0x96B6 0xBF33 #HANGUL SYLLABLE SSANGPIEUP YE RIEULHIEUH +0x96B7 0xBF34 #HANGUL SYLLABLE SSANGPIEUP YE MIEUM +0x96B8 0xBF35 #HANGUL SYLLABLE SSANGPIEUP YE PIEUP +0x96B9 0xBF36 #HANGUL SYLLABLE SSANGPIEUP YE PIEUPSIOS +0x96BA 0xBF37 #HANGUL SYLLABLE SSANGPIEUP YE SIOS +0x96BB 0xBF38 #HANGUL SYLLABLE SSANGPIEUP YE SSANGSIOS +0x96BC 0xBF39 #HANGUL SYLLABLE SSANGPIEUP YE IEUNG +0x96BD 0xBF3A #HANGUL SYLLABLE SSANGPIEUP YE CIEUC +0x96BE 0xBF3B #HANGUL SYLLABLE SSANGPIEUP YE CHIEUCH +0x96BF 0xBF3C #HANGUL SYLLABLE SSANGPIEUP YE KHIEUKH +0x96C0 0xBF3D #HANGUL SYLLABLE SSANGPIEUP YE THIEUTH +0x96C1 0xBF3E #HANGUL SYLLABLE SSANGPIEUP YE PHIEUPH +0x96C2 0xBF3F #HANGUL SYLLABLE SSANGPIEUP YE HIEUH +0x96C3 0xBF42 #HANGUL SYLLABLE SSANGPIEUP O SSANGKIYEOK +0x96C4 0xBF43 #HANGUL SYLLABLE SSANGPIEUP O KIYEOKSIOS +0x96C5 0xBF45 #HANGUL SYLLABLE SSANGPIEUP O NIEUNCIEUC +0x96C6 0xBF46 #HANGUL SYLLABLE SSANGPIEUP O NIEUNHIEUH +0x96C7 0xBF47 #HANGUL SYLLABLE SSANGPIEUP O TIKEUT +0x96C8 0xBF49 #HANGUL SYLLABLE SSANGPIEUP O RIEULKIYEOK +0x96C9 0xBF4A #HANGUL SYLLABLE SSANGPIEUP O RIEULMIEUM +0x96CA 0xBF4B #HANGUL SYLLABLE SSANGPIEUP O RIEULPIEUP +0x96CB 0xBF4C #HANGUL SYLLABLE SSANGPIEUP O RIEULSIOS +0x96CC 0xBF4D #HANGUL SYLLABLE SSANGPIEUP O RIEULTHIEUTH +0x96CD 0xBF4E #HANGUL SYLLABLE SSANGPIEUP O RIEULPHIEUPH +0x96CE 0xBF4F #HANGUL SYLLABLE SSANGPIEUP O RIEULHIEUH +0x96CF 0xBF52 #HANGUL SYLLABLE SSANGPIEUP O PIEUPSIOS +0x96D0 0xBF53 #HANGUL SYLLABLE SSANGPIEUP O SIOS +0x96D1 0xBF54 #HANGUL SYLLABLE SSANGPIEUP O SSANGSIOS +0x96D2 0xBF56 #HANGUL SYLLABLE SSANGPIEUP O CIEUC +0x96D3 0xBF57 #HANGUL SYLLABLE SSANGPIEUP O CHIEUCH +0x96D4 0xBF58 #HANGUL SYLLABLE SSANGPIEUP O KHIEUKH +0x96D5 0xBF59 #HANGUL SYLLABLE SSANGPIEUP O THIEUTH +0x96D6 0xBF5A #HANGUL SYLLABLE SSANGPIEUP O PHIEUPH +0x96D7 0xBF5B #HANGUL SYLLABLE SSANGPIEUP O HIEUH +0x96D8 0xBF5C #HANGUL SYLLABLE SSANGPIEUP WA +0x96D9 0xBF5D #HANGUL SYLLABLE SSANGPIEUP WA KIYEOK +0x96DA 0xBF5E #HANGUL SYLLABLE SSANGPIEUP WA SSANGKIYEOK +0x96DB 0xBF5F #HANGUL SYLLABLE SSANGPIEUP WA KIYEOKSIOS +0x96DC 0xBF60 #HANGUL SYLLABLE SSANGPIEUP WA NIEUN +0x96DD 0xBF61 #HANGUL SYLLABLE SSANGPIEUP WA NIEUNCIEUC +0x96DE 0xBF62 #HANGUL SYLLABLE SSANGPIEUP WA NIEUNHIEUH +0x96DF 0xBF63 #HANGUL SYLLABLE SSANGPIEUP WA TIKEUT +0x96E0 0xBF64 #HANGUL SYLLABLE SSANGPIEUP WA RIEUL +0x96E1 0xBF65 #HANGUL SYLLABLE SSANGPIEUP WA RIEULKIYEOK +0x96E2 0xBF66 #HANGUL SYLLABLE SSANGPIEUP WA RIEULMIEUM +0x96E3 0xBF67 #HANGUL SYLLABLE SSANGPIEUP WA RIEULPIEUP +0x96E4 0xBF68 #HANGUL SYLLABLE SSANGPIEUP WA RIEULSIOS +0x96E5 0xBF69 #HANGUL SYLLABLE SSANGPIEUP WA RIEULTHIEUTH +0x96E6 0xBF6A #HANGUL SYLLABLE SSANGPIEUP WA RIEULPHIEUPH +0x96E7 0xBF6B #HANGUL SYLLABLE SSANGPIEUP WA RIEULHIEUH +0x96E8 0xBF6C #HANGUL SYLLABLE SSANGPIEUP WA MIEUM +0x96E9 0xBF6D #HANGUL SYLLABLE SSANGPIEUP WA PIEUP +0x96EA 0xBF6E #HANGUL SYLLABLE SSANGPIEUP WA PIEUPSIOS +0x96EB 0xBF6F #HANGUL SYLLABLE SSANGPIEUP WA SIOS +0x96EC 0xBF70 #HANGUL SYLLABLE SSANGPIEUP WA SSANGSIOS +0x96ED 0xBF71 #HANGUL SYLLABLE SSANGPIEUP WA IEUNG +0x96EE 0xBF72 #HANGUL SYLLABLE SSANGPIEUP WA CIEUC +0x96EF 0xBF73 #HANGUL SYLLABLE SSANGPIEUP WA CHIEUCH +0x96F0 0xBF74 #HANGUL SYLLABLE SSANGPIEUP WA KHIEUKH +0x96F1 0xBF75 #HANGUL SYLLABLE SSANGPIEUP WA THIEUTH +0x96F2 0xBF76 #HANGUL SYLLABLE SSANGPIEUP WA PHIEUPH +0x96F3 0xBF77 #HANGUL SYLLABLE SSANGPIEUP WA HIEUH +0x96F4 0xBF78 #HANGUL SYLLABLE SSANGPIEUP WAE +0x96F5 0xBF79 #HANGUL SYLLABLE SSANGPIEUP WAE KIYEOK +0x96F6 0xBF7A #HANGUL SYLLABLE SSANGPIEUP WAE SSANGKIYEOK +0x96F7 0xBF7B #HANGUL SYLLABLE SSANGPIEUP WAE KIYEOKSIOS +0x96F8 0xBF7C #HANGUL SYLLABLE SSANGPIEUP WAE NIEUN +0x96F9 0xBF7D #HANGUL SYLLABLE SSANGPIEUP WAE NIEUNCIEUC +0x96FA 0xBF7E #HANGUL SYLLABLE SSANGPIEUP WAE NIEUNHIEUH +0x96FB 0xBF7F #HANGUL SYLLABLE SSANGPIEUP WAE TIKEUT +0x96FC 0xBF80 #HANGUL SYLLABLE SSANGPIEUP WAE RIEUL +0x96FD 0xBF81 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULKIYEOK +0x96FE 0xBF82 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULMIEUM +0x9741 0xBF83 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULPIEUP +0x9742 0xBF84 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULSIOS +0x9743 0xBF85 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULTHIEUTH +0x9744 0xBF86 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULPHIEUPH +0x9745 0xBF87 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULHIEUH +0x9746 0xBF88 #HANGUL SYLLABLE SSANGPIEUP WAE MIEUM +0x9747 0xBF89 #HANGUL SYLLABLE SSANGPIEUP WAE PIEUP +0x9748 0xBF8A #HANGUL SYLLABLE SSANGPIEUP WAE PIEUPSIOS +0x9749 0xBF8B #HANGUL SYLLABLE SSANGPIEUP WAE SIOS +0x974A 0xBF8C #HANGUL SYLLABLE SSANGPIEUP WAE SSANGSIOS +0x974B 0xBF8D #HANGUL SYLLABLE SSANGPIEUP WAE IEUNG +0x974C 0xBF8E #HANGUL SYLLABLE SSANGPIEUP WAE CIEUC +0x974D 0xBF8F #HANGUL SYLLABLE SSANGPIEUP WAE CHIEUCH +0x974E 0xBF90 #HANGUL SYLLABLE SSANGPIEUP WAE KHIEUKH +0x974F 0xBF91 #HANGUL SYLLABLE SSANGPIEUP WAE THIEUTH +0x9750 0xBF92 #HANGUL SYLLABLE SSANGPIEUP WAE PHIEUPH +0x9751 0xBF93 #HANGUL SYLLABLE SSANGPIEUP WAE HIEUH +0x9752 0xBF95 #HANGUL SYLLABLE SSANGPIEUP OE KIYEOK +0x9753 0xBF96 #HANGUL SYLLABLE SSANGPIEUP OE SSANGKIYEOK +0x9754 0xBF97 #HANGUL SYLLABLE SSANGPIEUP OE KIYEOKSIOS +0x9755 0xBF98 #HANGUL SYLLABLE SSANGPIEUP OE NIEUN +0x9756 0xBF99 #HANGUL SYLLABLE SSANGPIEUP OE NIEUNCIEUC +0x9757 0xBF9A #HANGUL SYLLABLE SSANGPIEUP OE NIEUNHIEUH +0x9758 0xBF9B #HANGUL SYLLABLE SSANGPIEUP OE TIKEUT +0x9759 0xBF9C #HANGUL SYLLABLE SSANGPIEUP OE RIEUL +0x975A 0xBF9D #HANGUL SYLLABLE SSANGPIEUP OE RIEULKIYEOK +0x9761 0xBF9E #HANGUL SYLLABLE SSANGPIEUP OE RIEULMIEUM +0x9762 0xBF9F #HANGUL SYLLABLE SSANGPIEUP OE RIEULPIEUP +0x9763 0xBFA0 #HANGUL SYLLABLE SSANGPIEUP OE RIEULSIOS +0x9764 0xBFA1 #HANGUL SYLLABLE SSANGPIEUP OE RIEULTHIEUTH +0x9765 0xBFA2 #HANGUL SYLLABLE SSANGPIEUP OE RIEULPHIEUPH +0x9766 0xBFA3 #HANGUL SYLLABLE SSANGPIEUP OE RIEULHIEUH +0x9767 0xBFA4 #HANGUL SYLLABLE SSANGPIEUP OE MIEUM +0x9768 0xBFA5 #HANGUL SYLLABLE SSANGPIEUP OE PIEUP +0x9769 0xBFA6 #HANGUL SYLLABLE SSANGPIEUP OE PIEUPSIOS +0x976A 0xBFA7 #HANGUL SYLLABLE SSANGPIEUP OE SIOS +0x976B 0xBFA8 #HANGUL SYLLABLE SSANGPIEUP OE SSANGSIOS +0x976C 0xBFA9 #HANGUL SYLLABLE SSANGPIEUP OE IEUNG +0x976D 0xBFAA #HANGUL SYLLABLE SSANGPIEUP OE CIEUC +0x976E 0xBFAB #HANGUL SYLLABLE SSANGPIEUP OE CHIEUCH +0x976F 0xBFAC #HANGUL SYLLABLE SSANGPIEUP OE KHIEUKH +0x9770 0xBFAD #HANGUL SYLLABLE SSANGPIEUP OE THIEUTH +0x9771 0xBFAE #HANGUL SYLLABLE SSANGPIEUP OE PHIEUPH +0x9772 0xBFAF #HANGUL SYLLABLE SSANGPIEUP OE HIEUH +0x9773 0xBFB1 #HANGUL SYLLABLE SSANGPIEUP YO KIYEOK +0x9774 0xBFB2 #HANGUL SYLLABLE SSANGPIEUP YO SSANGKIYEOK +0x9775 0xBFB3 #HANGUL SYLLABLE SSANGPIEUP YO KIYEOKSIOS +0x9776 0xBFB4 #HANGUL SYLLABLE SSANGPIEUP YO NIEUN +0x9777 0xBFB5 #HANGUL SYLLABLE SSANGPIEUP YO NIEUNCIEUC +0x9778 0xBFB6 #HANGUL SYLLABLE SSANGPIEUP YO NIEUNHIEUH +0x9779 0xBFB7 #HANGUL SYLLABLE SSANGPIEUP YO TIKEUT +0x977A 0xBFB8 #HANGUL SYLLABLE SSANGPIEUP YO RIEUL +0x9781 0xBFB9 #HANGUL SYLLABLE SSANGPIEUP YO RIEULKIYEOK +0x9782 0xBFBA #HANGUL SYLLABLE SSANGPIEUP YO RIEULMIEUM +0x9783 0xBFBB #HANGUL SYLLABLE SSANGPIEUP YO RIEULPIEUP +0x9784 0xBFBC #HANGUL SYLLABLE SSANGPIEUP YO RIEULSIOS +0x9785 0xBFBD #HANGUL SYLLABLE SSANGPIEUP YO RIEULTHIEUTH +0x9786 0xBFBE #HANGUL SYLLABLE SSANGPIEUP YO RIEULPHIEUPH +0x9787 0xBFBF #HANGUL SYLLABLE SSANGPIEUP YO RIEULHIEUH +0x9788 0xBFC0 #HANGUL SYLLABLE SSANGPIEUP YO MIEUM +0x9789 0xBFC1 #HANGUL SYLLABLE SSANGPIEUP YO PIEUP +0x978A 0xBFC2 #HANGUL SYLLABLE SSANGPIEUP YO PIEUPSIOS +0x978B 0xBFC3 #HANGUL SYLLABLE SSANGPIEUP YO SIOS +0x978C 0xBFC4 #HANGUL SYLLABLE SSANGPIEUP YO SSANGSIOS +0x978D 0xBFC6 #HANGUL SYLLABLE SSANGPIEUP YO CIEUC +0x978E 0xBFC7 #HANGUL SYLLABLE SSANGPIEUP YO CHIEUCH +0x978F 0xBFC8 #HANGUL SYLLABLE SSANGPIEUP YO KHIEUKH +0x9790 0xBFC9 #HANGUL SYLLABLE SSANGPIEUP YO THIEUTH +0x9791 0xBFCA #HANGUL SYLLABLE SSANGPIEUP YO PHIEUPH +0x9792 0xBFCB #HANGUL SYLLABLE SSANGPIEUP YO HIEUH +0x9793 0xBFCE #HANGUL SYLLABLE SSANGPIEUP U SSANGKIYEOK +0x9794 0xBFCF #HANGUL SYLLABLE SSANGPIEUP U KIYEOKSIOS +0x9795 0xBFD1 #HANGUL SYLLABLE SSANGPIEUP U NIEUNCIEUC +0x9796 0xBFD2 #HANGUL SYLLABLE SSANGPIEUP U NIEUNHIEUH +0x9797 0xBFD3 #HANGUL SYLLABLE SSANGPIEUP U TIKEUT +0x9798 0xBFD5 #HANGUL SYLLABLE SSANGPIEUP U RIEULKIYEOK +0x9799 0xBFD6 #HANGUL SYLLABLE SSANGPIEUP U RIEULMIEUM +0x979A 0xBFD7 #HANGUL SYLLABLE SSANGPIEUP U RIEULPIEUP +0x979B 0xBFD8 #HANGUL SYLLABLE SSANGPIEUP U RIEULSIOS +0x979C 0xBFD9 #HANGUL SYLLABLE SSANGPIEUP U RIEULTHIEUTH +0x979D 0xBFDA #HANGUL SYLLABLE SSANGPIEUP U RIEULPHIEUPH +0x979E 0xBFDB #HANGUL SYLLABLE SSANGPIEUP U RIEULHIEUH +0x979F 0xBFDD #HANGUL SYLLABLE SSANGPIEUP U PIEUP +0x97A0 0xBFDE #HANGUL SYLLABLE SSANGPIEUP U PIEUPSIOS +0x97A1 0xBFE0 #HANGUL SYLLABLE SSANGPIEUP U SSANGSIOS +0x97A2 0xBFE2 #HANGUL SYLLABLE SSANGPIEUP U CIEUC +0x97A3 0xBFE3 #HANGUL SYLLABLE SSANGPIEUP U CHIEUCH +0x97A4 0xBFE4 #HANGUL SYLLABLE SSANGPIEUP U KHIEUKH +0x97A5 0xBFE5 #HANGUL SYLLABLE SSANGPIEUP U THIEUTH +0x97A6 0xBFE6 #HANGUL SYLLABLE SSANGPIEUP U PHIEUPH +0x97A7 0xBFE7 #HANGUL SYLLABLE SSANGPIEUP U HIEUH +0x97A8 0xBFE8 #HANGUL SYLLABLE SSANGPIEUP WEO +0x97A9 0xBFE9 #HANGUL SYLLABLE SSANGPIEUP WEO KIYEOK +0x97AA 0xBFEA #HANGUL SYLLABLE SSANGPIEUP WEO SSANGKIYEOK +0x97AB 0xBFEB #HANGUL SYLLABLE SSANGPIEUP WEO KIYEOKSIOS +0x97AC 0xBFEC #HANGUL SYLLABLE SSANGPIEUP WEO NIEUN +0x97AD 0xBFED #HANGUL SYLLABLE SSANGPIEUP WEO NIEUNCIEUC +0x97AE 0xBFEE #HANGUL SYLLABLE SSANGPIEUP WEO NIEUNHIEUH +0x97AF 0xBFEF #HANGUL SYLLABLE SSANGPIEUP WEO TIKEUT +0x97B0 0xBFF0 #HANGUL SYLLABLE SSANGPIEUP WEO RIEUL +0x97B1 0xBFF1 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULKIYEOK +0x97B2 0xBFF2 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULMIEUM +0x97B3 0xBFF3 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULPIEUP +0x97B4 0xBFF4 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULSIOS +0x97B5 0xBFF5 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULTHIEUTH +0x97B6 0xBFF6 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULPHIEUPH +0x97B7 0xBFF7 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULHIEUH +0x97B8 0xBFF8 #HANGUL SYLLABLE SSANGPIEUP WEO MIEUM +0x97B9 0xBFF9 #HANGUL SYLLABLE SSANGPIEUP WEO PIEUP +0x97BA 0xBFFA #HANGUL SYLLABLE SSANGPIEUP WEO PIEUPSIOS +0x97BB 0xBFFB #HANGUL SYLLABLE SSANGPIEUP WEO SIOS +0x97BC 0xBFFC #HANGUL SYLLABLE SSANGPIEUP WEO SSANGSIOS +0x97BD 0xBFFD #HANGUL SYLLABLE SSANGPIEUP WEO IEUNG +0x97BE 0xBFFE #HANGUL SYLLABLE SSANGPIEUP WEO CIEUC +0x97BF 0xBFFF #HANGUL SYLLABLE SSANGPIEUP WEO CHIEUCH +0x97C0 0xC000 #HANGUL SYLLABLE SSANGPIEUP WEO KHIEUKH +0x97C1 0xC001 #HANGUL SYLLABLE SSANGPIEUP WEO THIEUTH +0x97C2 0xC002 #HANGUL SYLLABLE SSANGPIEUP WEO PHIEUPH +0x97C3 0xC003 #HANGUL SYLLABLE SSANGPIEUP WEO HIEUH +0x97C4 0xC004 #HANGUL SYLLABLE SSANGPIEUP WE +0x97C5 0xC005 #HANGUL SYLLABLE SSANGPIEUP WE KIYEOK +0x97C6 0xC006 #HANGUL SYLLABLE SSANGPIEUP WE SSANGKIYEOK +0x97C7 0xC007 #HANGUL SYLLABLE SSANGPIEUP WE KIYEOKSIOS +0x97C8 0xC008 #HANGUL SYLLABLE SSANGPIEUP WE NIEUN +0x97C9 0xC009 #HANGUL SYLLABLE SSANGPIEUP WE NIEUNCIEUC +0x97CA 0xC00A #HANGUL SYLLABLE SSANGPIEUP WE NIEUNHIEUH +0x97CB 0xC00B #HANGUL SYLLABLE SSANGPIEUP WE TIKEUT +0x97CC 0xC00C #HANGUL SYLLABLE SSANGPIEUP WE RIEUL +0x97CD 0xC00D #HANGUL SYLLABLE SSANGPIEUP WE RIEULKIYEOK +0x97CE 0xC00E #HANGUL SYLLABLE SSANGPIEUP WE RIEULMIEUM +0x97CF 0xC00F #HANGUL SYLLABLE SSANGPIEUP WE RIEULPIEUP +0x97D0 0xC010 #HANGUL SYLLABLE SSANGPIEUP WE RIEULSIOS +0x97D1 0xC011 #HANGUL SYLLABLE SSANGPIEUP WE RIEULTHIEUTH +0x97D2 0xC012 #HANGUL SYLLABLE SSANGPIEUP WE RIEULPHIEUPH +0x97D3 0xC013 #HANGUL SYLLABLE SSANGPIEUP WE RIEULHIEUH +0x97D4 0xC014 #HANGUL SYLLABLE SSANGPIEUP WE MIEUM +0x97D5 0xC015 #HANGUL SYLLABLE SSANGPIEUP WE PIEUP +0x97D6 0xC016 #HANGUL SYLLABLE SSANGPIEUP WE PIEUPSIOS +0x97D7 0xC017 #HANGUL SYLLABLE SSANGPIEUP WE SIOS +0x97D8 0xC018 #HANGUL SYLLABLE SSANGPIEUP WE SSANGSIOS +0x97D9 0xC019 #HANGUL SYLLABLE SSANGPIEUP WE IEUNG +0x97DA 0xC01A #HANGUL SYLLABLE SSANGPIEUP WE CIEUC +0x97DB 0xC01B #HANGUL SYLLABLE SSANGPIEUP WE CHIEUCH +0x97DC 0xC01C #HANGUL SYLLABLE SSANGPIEUP WE KHIEUKH +0x97DD 0xC01D #HANGUL SYLLABLE SSANGPIEUP WE THIEUTH +0x97DE 0xC01E #HANGUL SYLLABLE SSANGPIEUP WE PHIEUPH +0x97DF 0xC01F #HANGUL SYLLABLE SSANGPIEUP WE HIEUH +0x97E0 0xC020 #HANGUL SYLLABLE SSANGPIEUP WI +0x97E1 0xC021 #HANGUL SYLLABLE SSANGPIEUP WI KIYEOK +0x97E2 0xC022 #HANGUL SYLLABLE SSANGPIEUP WI SSANGKIYEOK +0x97E3 0xC023 #HANGUL SYLLABLE SSANGPIEUP WI KIYEOKSIOS +0x97E4 0xC024 #HANGUL SYLLABLE SSANGPIEUP WI NIEUN +0x97E5 0xC025 #HANGUL SYLLABLE SSANGPIEUP WI NIEUNCIEUC +0x97E6 0xC026 #HANGUL SYLLABLE SSANGPIEUP WI NIEUNHIEUH +0x97E7 0xC027 #HANGUL SYLLABLE SSANGPIEUP WI TIKEUT +0x97E8 0xC028 #HANGUL SYLLABLE SSANGPIEUP WI RIEUL +0x97E9 0xC029 #HANGUL SYLLABLE SSANGPIEUP WI RIEULKIYEOK +0x97EA 0xC02A #HANGUL SYLLABLE SSANGPIEUP WI RIEULMIEUM +0x97EB 0xC02B #HANGUL SYLLABLE SSANGPIEUP WI RIEULPIEUP +0x97EC 0xC02C #HANGUL SYLLABLE SSANGPIEUP WI RIEULSIOS +0x97ED 0xC02D #HANGUL SYLLABLE SSANGPIEUP WI RIEULTHIEUTH +0x97EE 0xC02E #HANGUL SYLLABLE SSANGPIEUP WI RIEULPHIEUPH +0x97EF 0xC02F #HANGUL SYLLABLE SSANGPIEUP WI RIEULHIEUH +0x97F0 0xC030 #HANGUL SYLLABLE SSANGPIEUP WI MIEUM +0x97F1 0xC031 #HANGUL SYLLABLE SSANGPIEUP WI PIEUP +0x97F2 0xC032 #HANGUL SYLLABLE SSANGPIEUP WI PIEUPSIOS +0x97F3 0xC033 #HANGUL SYLLABLE SSANGPIEUP WI SIOS +0x97F4 0xC034 #HANGUL SYLLABLE SSANGPIEUP WI SSANGSIOS +0x97F5 0xC035 #HANGUL SYLLABLE SSANGPIEUP WI IEUNG +0x97F6 0xC036 #HANGUL SYLLABLE SSANGPIEUP WI CIEUC +0x97F7 0xC037 #HANGUL SYLLABLE SSANGPIEUP WI CHIEUCH +0x97F8 0xC038 #HANGUL SYLLABLE SSANGPIEUP WI KHIEUKH +0x97F9 0xC039 #HANGUL SYLLABLE SSANGPIEUP WI THIEUTH +0x97FA 0xC03A #HANGUL SYLLABLE SSANGPIEUP WI PHIEUPH +0x97FB 0xC03B #HANGUL SYLLABLE SSANGPIEUP WI HIEUH +0x97FC 0xC03D #HANGUL SYLLABLE SSANGPIEUP YU KIYEOK +0x97FD 0xC03E #HANGUL SYLLABLE SSANGPIEUP YU SSANGKIYEOK +0x97FE 0xC03F #HANGUL SYLLABLE SSANGPIEUP YU KIYEOKSIOS +0x9841 0xC040 #HANGUL SYLLABLE SSANGPIEUP YU NIEUN +0x9842 0xC041 #HANGUL SYLLABLE SSANGPIEUP YU NIEUNCIEUC +0x9843 0xC042 #HANGUL SYLLABLE SSANGPIEUP YU NIEUNHIEUH +0x9844 0xC043 #HANGUL SYLLABLE SSANGPIEUP YU TIKEUT +0x9845 0xC044 #HANGUL SYLLABLE SSANGPIEUP YU RIEUL +0x9846 0xC045 #HANGUL SYLLABLE SSANGPIEUP YU RIEULKIYEOK +0x9847 0xC046 #HANGUL SYLLABLE SSANGPIEUP YU RIEULMIEUM +0x9848 0xC047 #HANGUL SYLLABLE SSANGPIEUP YU RIEULPIEUP +0x9849 0xC048 #HANGUL SYLLABLE SSANGPIEUP YU RIEULSIOS +0x984A 0xC049 #HANGUL SYLLABLE SSANGPIEUP YU RIEULTHIEUTH +0x984B 0xC04A #HANGUL SYLLABLE SSANGPIEUP YU RIEULPHIEUPH +0x984C 0xC04B #HANGUL SYLLABLE SSANGPIEUP YU RIEULHIEUH +0x984D 0xC04C #HANGUL SYLLABLE SSANGPIEUP YU MIEUM +0x984E 0xC04D #HANGUL SYLLABLE SSANGPIEUP YU PIEUP +0x984F 0xC04E #HANGUL SYLLABLE SSANGPIEUP YU PIEUPSIOS +0x9850 0xC04F #HANGUL SYLLABLE SSANGPIEUP YU SIOS +0x9851 0xC050 #HANGUL SYLLABLE SSANGPIEUP YU SSANGSIOS +0x9852 0xC052 #HANGUL SYLLABLE SSANGPIEUP YU CIEUC +0x9853 0xC053 #HANGUL SYLLABLE SSANGPIEUP YU CHIEUCH +0x9854 0xC054 #HANGUL SYLLABLE SSANGPIEUP YU KHIEUKH +0x9855 0xC055 #HANGUL SYLLABLE SSANGPIEUP YU THIEUTH +0x9856 0xC056 #HANGUL SYLLABLE SSANGPIEUP YU PHIEUPH +0x9857 0xC057 #HANGUL SYLLABLE SSANGPIEUP YU HIEUH +0x9858 0xC059 #HANGUL SYLLABLE SSANGPIEUP EU KIYEOK +0x9859 0xC05A #HANGUL SYLLABLE SSANGPIEUP EU SSANGKIYEOK +0x985A 0xC05B #HANGUL SYLLABLE SSANGPIEUP EU KIYEOKSIOS +0x9861 0xC05D #HANGUL SYLLABLE SSANGPIEUP EU NIEUNCIEUC +0x9862 0xC05E #HANGUL SYLLABLE SSANGPIEUP EU NIEUNHIEUH +0x9863 0xC05F #HANGUL SYLLABLE SSANGPIEUP EU TIKEUT +0x9864 0xC061 #HANGUL SYLLABLE SSANGPIEUP EU RIEULKIYEOK +0x9865 0xC062 #HANGUL SYLLABLE SSANGPIEUP EU RIEULMIEUM +0x9866 0xC063 #HANGUL SYLLABLE SSANGPIEUP EU RIEULPIEUP +0x9867 0xC064 #HANGUL SYLLABLE SSANGPIEUP EU RIEULSIOS +0x9868 0xC065 #HANGUL SYLLABLE SSANGPIEUP EU RIEULTHIEUTH +0x9869 0xC066 #HANGUL SYLLABLE SSANGPIEUP EU RIEULPHIEUPH +0x986A 0xC067 #HANGUL SYLLABLE SSANGPIEUP EU RIEULHIEUH +0x986B 0xC06A #HANGUL SYLLABLE SSANGPIEUP EU PIEUPSIOS +0x986C 0xC06B #HANGUL SYLLABLE SSANGPIEUP EU SIOS +0x986D 0xC06C #HANGUL SYLLABLE SSANGPIEUP EU SSANGSIOS +0x986E 0xC06D #HANGUL SYLLABLE SSANGPIEUP EU IEUNG +0x986F 0xC06E #HANGUL SYLLABLE SSANGPIEUP EU CIEUC +0x9870 0xC06F #HANGUL SYLLABLE SSANGPIEUP EU CHIEUCH +0x9871 0xC070 #HANGUL SYLLABLE SSANGPIEUP EU KHIEUKH +0x9872 0xC071 #HANGUL SYLLABLE SSANGPIEUP EU THIEUTH +0x9873 0xC072 #HANGUL SYLLABLE SSANGPIEUP EU PHIEUPH +0x9874 0xC073 #HANGUL SYLLABLE SSANGPIEUP EU HIEUH +0x9875 0xC074 #HANGUL SYLLABLE SSANGPIEUP YI +0x9876 0xC075 #HANGUL SYLLABLE SSANGPIEUP YI KIYEOK +0x9877 0xC076 #HANGUL SYLLABLE SSANGPIEUP YI SSANGKIYEOK +0x9878 0xC077 #HANGUL SYLLABLE SSANGPIEUP YI KIYEOKSIOS +0x9879 0xC078 #HANGUL SYLLABLE SSANGPIEUP YI NIEUN +0x987A 0xC079 #HANGUL SYLLABLE SSANGPIEUP YI NIEUNCIEUC +0x9881 0xC07A #HANGUL SYLLABLE SSANGPIEUP YI NIEUNHIEUH +0x9882 0xC07B #HANGUL SYLLABLE SSANGPIEUP YI TIKEUT +0x9883 0xC07C #HANGUL SYLLABLE SSANGPIEUP YI RIEUL +0x9884 0xC07D #HANGUL SYLLABLE SSANGPIEUP YI RIEULKIYEOK +0x9885 0xC07E #HANGUL SYLLABLE SSANGPIEUP YI RIEULMIEUM +0x9886 0xC07F #HANGUL SYLLABLE SSANGPIEUP YI RIEULPIEUP +0x9887 0xC080 #HANGUL SYLLABLE SSANGPIEUP YI RIEULSIOS +0x9888 0xC081 #HANGUL SYLLABLE SSANGPIEUP YI RIEULTHIEUTH +0x9889 0xC082 #HANGUL SYLLABLE SSANGPIEUP YI RIEULPHIEUPH +0x988A 0xC083 #HANGUL SYLLABLE SSANGPIEUP YI RIEULHIEUH +0x988B 0xC084 #HANGUL SYLLABLE SSANGPIEUP YI MIEUM +0x988C 0xC085 #HANGUL SYLLABLE SSANGPIEUP YI PIEUP +0x988D 0xC086 #HANGUL SYLLABLE SSANGPIEUP YI PIEUPSIOS +0x988E 0xC087 #HANGUL SYLLABLE SSANGPIEUP YI SIOS +0x988F 0xC088 #HANGUL SYLLABLE SSANGPIEUP YI SSANGSIOS +0x9890 0xC089 #HANGUL SYLLABLE SSANGPIEUP YI IEUNG +0x9891 0xC08A #HANGUL SYLLABLE SSANGPIEUP YI CIEUC +0x9892 0xC08B #HANGUL SYLLABLE SSANGPIEUP YI CHIEUCH +0x9893 0xC08C #HANGUL SYLLABLE SSANGPIEUP YI KHIEUKH +0x9894 0xC08D #HANGUL SYLLABLE SSANGPIEUP YI THIEUTH +0x9895 0xC08E #HANGUL SYLLABLE SSANGPIEUP YI PHIEUPH +0x9896 0xC08F #HANGUL SYLLABLE SSANGPIEUP YI HIEUH +0x9897 0xC092 #HANGUL SYLLABLE SSANGPIEUP I SSANGKIYEOK +0x9898 0xC093 #HANGUL SYLLABLE SSANGPIEUP I KIYEOKSIOS +0x9899 0xC095 #HANGUL SYLLABLE SSANGPIEUP I NIEUNCIEUC +0x989A 0xC096 #HANGUL SYLLABLE SSANGPIEUP I NIEUNHIEUH +0x989B 0xC097 #HANGUL SYLLABLE SSANGPIEUP I TIKEUT +0x989C 0xC099 #HANGUL SYLLABLE SSANGPIEUP I RIEULKIYEOK +0x989D 0xC09A #HANGUL SYLLABLE SSANGPIEUP I RIEULMIEUM +0x989E 0xC09B #HANGUL SYLLABLE SSANGPIEUP I RIEULPIEUP +0x989F 0xC09C #HANGUL SYLLABLE SSANGPIEUP I RIEULSIOS +0x98A0 0xC09D #HANGUL SYLLABLE SSANGPIEUP I RIEULTHIEUTH +0x98A1 0xC09E #HANGUL SYLLABLE SSANGPIEUP I RIEULPHIEUPH +0x98A2 0xC09F #HANGUL SYLLABLE SSANGPIEUP I RIEULHIEUH +0x98A3 0xC0A2 #HANGUL SYLLABLE SSANGPIEUP I PIEUPSIOS +0x98A4 0xC0A4 #HANGUL SYLLABLE SSANGPIEUP I SSANGSIOS +0x98A5 0xC0A6 #HANGUL SYLLABLE SSANGPIEUP I CIEUC +0x98A6 0xC0A7 #HANGUL SYLLABLE SSANGPIEUP I CHIEUCH +0x98A7 0xC0A8 #HANGUL SYLLABLE SSANGPIEUP I KHIEUKH +0x98A8 0xC0A9 #HANGUL SYLLABLE SSANGPIEUP I THIEUTH +0x98A9 0xC0AA #HANGUL SYLLABLE SSANGPIEUP I PHIEUPH +0x98AA 0xC0AB #HANGUL SYLLABLE SSANGPIEUP I HIEUH +0x98AB 0xC0AE #HANGUL SYLLABLE SIOS A SSANGKIYEOK +0x98AC 0xC0B1 #HANGUL SYLLABLE SIOS A NIEUNCIEUC +0x98AD 0xC0B2 #HANGUL SYLLABLE SIOS A NIEUNHIEUH +0x98AE 0xC0B7 #HANGUL SYLLABLE SIOS A RIEULPIEUP +0x98AF 0xC0B8 #HANGUL SYLLABLE SIOS A RIEULSIOS +0x98B0 0xC0B9 #HANGUL SYLLABLE SIOS A RIEULTHIEUTH +0x98B1 0xC0BA #HANGUL SYLLABLE SIOS A RIEULPHIEUPH +0x98B2 0xC0BB #HANGUL SYLLABLE SIOS A RIEULHIEUH +0x98B3 0xC0BE #HANGUL SYLLABLE SIOS A PIEUPSIOS +0x98B4 0xC0C2 #HANGUL SYLLABLE SIOS A CIEUC +0x98B5 0xC0C3 #HANGUL SYLLABLE SIOS A CHIEUCH +0x98B6 0xC0C4 #HANGUL SYLLABLE SIOS A KHIEUKH +0x98B7 0xC0C6 #HANGUL SYLLABLE SIOS A PHIEUPH +0x98B8 0xC0C7 #HANGUL SYLLABLE SIOS A HIEUH +0x98B9 0xC0CA #HANGUL SYLLABLE SIOS AE SSANGKIYEOK +0x98BA 0xC0CB #HANGUL SYLLABLE SIOS AE KIYEOKSIOS +0x98BB 0xC0CD #HANGUL SYLLABLE SIOS AE NIEUNCIEUC +0x98BC 0xC0CE #HANGUL SYLLABLE SIOS AE NIEUNHIEUH +0x98BD 0xC0CF #HANGUL SYLLABLE SIOS AE TIKEUT +0x98BE 0xC0D1 #HANGUL SYLLABLE SIOS AE RIEULKIYEOK +0x98BF 0xC0D2 #HANGUL SYLLABLE SIOS AE RIEULMIEUM +0x98C0 0xC0D3 #HANGUL SYLLABLE SIOS AE RIEULPIEUP +0x98C1 0xC0D4 #HANGUL SYLLABLE SIOS AE RIEULSIOS +0x98C2 0xC0D5 #HANGUL SYLLABLE SIOS AE RIEULTHIEUTH +0x98C3 0xC0D6 #HANGUL SYLLABLE SIOS AE RIEULPHIEUPH +0x98C4 0xC0D7 #HANGUL SYLLABLE SIOS AE RIEULHIEUH +0x98C5 0xC0DA #HANGUL SYLLABLE SIOS AE PIEUPSIOS +0x98C6 0xC0DE #HANGUL SYLLABLE SIOS AE CIEUC +0x98C7 0xC0DF #HANGUL SYLLABLE SIOS AE CHIEUCH +0x98C8 0xC0E0 #HANGUL SYLLABLE SIOS AE KHIEUKH +0x98C9 0xC0E1 #HANGUL SYLLABLE SIOS AE THIEUTH +0x98CA 0xC0E2 #HANGUL SYLLABLE SIOS AE PHIEUPH +0x98CB 0xC0E3 #HANGUL SYLLABLE SIOS AE HIEUH +0x98CC 0xC0E6 #HANGUL SYLLABLE SIOS YA SSANGKIYEOK +0x98CD 0xC0E7 #HANGUL SYLLABLE SIOS YA KIYEOKSIOS +0x98CE 0xC0E9 #HANGUL SYLLABLE SIOS YA NIEUNCIEUC +0x98CF 0xC0EA #HANGUL SYLLABLE SIOS YA NIEUNHIEUH +0x98D0 0xC0EB #HANGUL SYLLABLE SIOS YA TIKEUT +0x98D1 0xC0ED #HANGUL SYLLABLE SIOS YA RIEULKIYEOK +0x98D2 0xC0EE #HANGUL SYLLABLE SIOS YA RIEULMIEUM +0x98D3 0xC0EF #HANGUL SYLLABLE SIOS YA RIEULPIEUP +0x98D4 0xC0F0 #HANGUL SYLLABLE SIOS YA RIEULSIOS +0x98D5 0xC0F1 #HANGUL SYLLABLE SIOS YA RIEULTHIEUTH +0x98D6 0xC0F2 #HANGUL SYLLABLE SIOS YA RIEULPHIEUPH +0x98D7 0xC0F3 #HANGUL SYLLABLE SIOS YA RIEULHIEUH +0x98D8 0xC0F6 #HANGUL SYLLABLE SIOS YA PIEUPSIOS +0x98D9 0xC0F8 #HANGUL SYLLABLE SIOS YA SSANGSIOS +0x98DA 0xC0FA #HANGUL SYLLABLE SIOS YA CIEUC +0x98DB 0xC0FB #HANGUL SYLLABLE SIOS YA CHIEUCH +0x98DC 0xC0FC #HANGUL SYLLABLE SIOS YA KHIEUKH +0x98DD 0xC0FD #HANGUL SYLLABLE SIOS YA THIEUTH +0x98DE 0xC0FE #HANGUL SYLLABLE SIOS YA PHIEUPH +0x98DF 0xC0FF #HANGUL SYLLABLE SIOS YA HIEUH +0x98E0 0xC101 #HANGUL SYLLABLE SIOS YAE KIYEOK +0x98E1 0xC102 #HANGUL SYLLABLE SIOS YAE SSANGKIYEOK +0x98E2 0xC103 #HANGUL SYLLABLE SIOS YAE KIYEOKSIOS +0x98E3 0xC105 #HANGUL SYLLABLE SIOS YAE NIEUNCIEUC +0x98E4 0xC106 #HANGUL SYLLABLE SIOS YAE NIEUNHIEUH +0x98E5 0xC107 #HANGUL SYLLABLE SIOS YAE TIKEUT +0x98E6 0xC109 #HANGUL SYLLABLE SIOS YAE RIEULKIYEOK +0x98E7 0xC10A #HANGUL SYLLABLE SIOS YAE RIEULMIEUM +0x98E8 0xC10B #HANGUL SYLLABLE SIOS YAE RIEULPIEUP +0x98E9 0xC10C #HANGUL SYLLABLE SIOS YAE RIEULSIOS +0x98EA 0xC10D #HANGUL SYLLABLE SIOS YAE RIEULTHIEUTH +0x98EB 0xC10E #HANGUL SYLLABLE SIOS YAE RIEULPHIEUPH +0x98EC 0xC10F #HANGUL SYLLABLE SIOS YAE RIEULHIEUH +0x98ED 0xC111 #HANGUL SYLLABLE SIOS YAE PIEUP +0x98EE 0xC112 #HANGUL SYLLABLE SIOS YAE PIEUPSIOS +0x98EF 0xC113 #HANGUL SYLLABLE SIOS YAE SIOS +0x98F0 0xC114 #HANGUL SYLLABLE SIOS YAE SSANGSIOS +0x98F1 0xC116 #HANGUL SYLLABLE SIOS YAE CIEUC +0x98F2 0xC117 #HANGUL SYLLABLE SIOS YAE CHIEUCH +0x98F3 0xC118 #HANGUL SYLLABLE SIOS YAE KHIEUKH +0x98F4 0xC119 #HANGUL SYLLABLE SIOS YAE THIEUTH +0x98F5 0xC11A #HANGUL SYLLABLE SIOS YAE PHIEUPH +0x98F6 0xC11B #HANGUL SYLLABLE SIOS YAE HIEUH +0x98F7 0xC121 #HANGUL SYLLABLE SIOS EO NIEUNCIEUC +0x98F8 0xC122 #HANGUL SYLLABLE SIOS EO NIEUNHIEUH +0x98F9 0xC125 #HANGUL SYLLABLE SIOS EO RIEULKIYEOK +0x98FA 0xC128 #HANGUL SYLLABLE SIOS EO RIEULSIOS +0x98FB 0xC129 #HANGUL SYLLABLE SIOS EO RIEULTHIEUTH +0x98FC 0xC12A #HANGUL SYLLABLE SIOS EO RIEULPHIEUPH +0x98FD 0xC12B #HANGUL SYLLABLE SIOS EO RIEULHIEUH +0x98FE 0xC12E #HANGUL SYLLABLE SIOS EO PIEUPSIOS +0x9941 0xC132 #HANGUL SYLLABLE SIOS EO CIEUC +0x9942 0xC133 #HANGUL SYLLABLE SIOS EO CHIEUCH +0x9943 0xC134 #HANGUL SYLLABLE SIOS EO KHIEUKH +0x9944 0xC135 #HANGUL SYLLABLE SIOS EO THIEUTH +0x9945 0xC137 #HANGUL SYLLABLE SIOS EO HIEUH +0x9946 0xC13A #HANGUL SYLLABLE SIOS E SSANGKIYEOK +0x9947 0xC13B #HANGUL SYLLABLE SIOS E KIYEOKSIOS +0x9948 0xC13D #HANGUL SYLLABLE SIOS E NIEUNCIEUC +0x9949 0xC13E #HANGUL SYLLABLE SIOS E NIEUNHIEUH +0x994A 0xC13F #HANGUL SYLLABLE SIOS E TIKEUT +0x994B 0xC141 #HANGUL SYLLABLE SIOS E RIEULKIYEOK +0x994C 0xC142 #HANGUL SYLLABLE SIOS E RIEULMIEUM +0x994D 0xC143 #HANGUL SYLLABLE SIOS E RIEULPIEUP +0x994E 0xC144 #HANGUL SYLLABLE SIOS E RIEULSIOS +0x994F 0xC145 #HANGUL SYLLABLE SIOS E RIEULTHIEUTH +0x9950 0xC146 #HANGUL SYLLABLE SIOS E RIEULPHIEUPH +0x9951 0xC147 #HANGUL SYLLABLE SIOS E RIEULHIEUH +0x9952 0xC14A #HANGUL SYLLABLE SIOS E PIEUPSIOS +0x9953 0xC14E #HANGUL SYLLABLE SIOS E CIEUC +0x9954 0xC14F #HANGUL SYLLABLE SIOS E CHIEUCH +0x9955 0xC150 #HANGUL SYLLABLE SIOS E KHIEUKH +0x9956 0xC151 #HANGUL SYLLABLE SIOS E THIEUTH +0x9957 0xC152 #HANGUL SYLLABLE SIOS E PHIEUPH +0x9958 0xC153 #HANGUL SYLLABLE SIOS E HIEUH +0x9959 0xC156 #HANGUL SYLLABLE SIOS YEO SSANGKIYEOK +0x995A 0xC157 #HANGUL SYLLABLE SIOS YEO KIYEOKSIOS +0x9961 0xC159 #HANGUL SYLLABLE SIOS YEO NIEUNCIEUC +0x9962 0xC15A #HANGUL SYLLABLE SIOS YEO NIEUNHIEUH +0x9963 0xC15B #HANGUL SYLLABLE SIOS YEO TIKEUT +0x9964 0xC15D #HANGUL SYLLABLE SIOS YEO RIEULKIYEOK +0x9965 0xC15E #HANGUL SYLLABLE SIOS YEO RIEULMIEUM +0x9966 0xC15F #HANGUL SYLLABLE SIOS YEO RIEULPIEUP +0x9967 0xC160 #HANGUL SYLLABLE SIOS YEO RIEULSIOS +0x9968 0xC161 #HANGUL SYLLABLE SIOS YEO RIEULTHIEUTH +0x9969 0xC162 #HANGUL SYLLABLE SIOS YEO RIEULPHIEUPH +0x996A 0xC163 #HANGUL SYLLABLE SIOS YEO RIEULHIEUH +0x996B 0xC166 #HANGUL SYLLABLE SIOS YEO PIEUPSIOS +0x996C 0xC16A #HANGUL SYLLABLE SIOS YEO CIEUC +0x996D 0xC16B #HANGUL SYLLABLE SIOS YEO CHIEUCH +0x996E 0xC16C #HANGUL SYLLABLE SIOS YEO KHIEUKH +0x996F 0xC16D #HANGUL SYLLABLE SIOS YEO THIEUTH +0x9970 0xC16E #HANGUL SYLLABLE SIOS YEO PHIEUPH +0x9971 0xC16F #HANGUL SYLLABLE SIOS YEO HIEUH +0x9972 0xC171 #HANGUL SYLLABLE SIOS YE KIYEOK +0x9973 0xC172 #HANGUL SYLLABLE SIOS YE SSANGKIYEOK +0x9974 0xC173 #HANGUL SYLLABLE SIOS YE KIYEOKSIOS +0x9975 0xC175 #HANGUL SYLLABLE SIOS YE NIEUNCIEUC +0x9976 0xC176 #HANGUL SYLLABLE SIOS YE NIEUNHIEUH +0x9977 0xC177 #HANGUL SYLLABLE SIOS YE TIKEUT +0x9978 0xC179 #HANGUL SYLLABLE SIOS YE RIEULKIYEOK +0x9979 0xC17A #HANGUL SYLLABLE SIOS YE RIEULMIEUM +0x997A 0xC17B #HANGUL SYLLABLE SIOS YE RIEULPIEUP +0x9981 0xC17C #HANGUL SYLLABLE SIOS YE RIEULSIOS +0x9982 0xC17D #HANGUL SYLLABLE SIOS YE RIEULTHIEUTH +0x9983 0xC17E #HANGUL SYLLABLE SIOS YE RIEULPHIEUPH +0x9984 0xC17F #HANGUL SYLLABLE SIOS YE RIEULHIEUH +0x9985 0xC180 #HANGUL SYLLABLE SIOS YE MIEUM +0x9986 0xC181 #HANGUL SYLLABLE SIOS YE PIEUP +0x9987 0xC182 #HANGUL SYLLABLE SIOS YE PIEUPSIOS +0x9988 0xC183 #HANGUL SYLLABLE SIOS YE SIOS +0x9989 0xC184 #HANGUL SYLLABLE SIOS YE SSANGSIOS +0x998A 0xC186 #HANGUL SYLLABLE SIOS YE CIEUC +0x998B 0xC187 #HANGUL SYLLABLE SIOS YE CHIEUCH +0x998C 0xC188 #HANGUL SYLLABLE SIOS YE KHIEUKH +0x998D 0xC189 #HANGUL SYLLABLE SIOS YE THIEUTH +0x998E 0xC18A #HANGUL SYLLABLE SIOS YE PHIEUPH +0x998F 0xC18B #HANGUL SYLLABLE SIOS YE HIEUH +0x9990 0xC18F #HANGUL SYLLABLE SIOS O KIYEOKSIOS +0x9991 0xC191 #HANGUL SYLLABLE SIOS O NIEUNCIEUC +0x9992 0xC192 #HANGUL SYLLABLE SIOS O NIEUNHIEUH +0x9993 0xC193 #HANGUL SYLLABLE SIOS O TIKEUT +0x9994 0xC195 #HANGUL SYLLABLE SIOS O RIEULKIYEOK +0x9995 0xC197 #HANGUL SYLLABLE SIOS O RIEULPIEUP +0x9996 0xC198 #HANGUL SYLLABLE SIOS O RIEULSIOS +0x9997 0xC199 #HANGUL SYLLABLE SIOS O RIEULTHIEUTH +0x9998 0xC19A #HANGUL SYLLABLE SIOS O RIEULPHIEUPH +0x9999 0xC19B #HANGUL SYLLABLE SIOS O RIEULHIEUH +0x999A 0xC19E #HANGUL SYLLABLE SIOS O PIEUPSIOS +0x999B 0xC1A0 #HANGUL SYLLABLE SIOS O SSANGSIOS +0x999C 0xC1A2 #HANGUL SYLLABLE SIOS O CIEUC +0x999D 0xC1A3 #HANGUL SYLLABLE SIOS O CHIEUCH +0x999E 0xC1A4 #HANGUL SYLLABLE SIOS O KHIEUKH +0x999F 0xC1A6 #HANGUL SYLLABLE SIOS O PHIEUPH +0x99A0 0xC1A7 #HANGUL SYLLABLE SIOS O HIEUH +0x99A1 0xC1AA #HANGUL SYLLABLE SIOS WA SSANGKIYEOK +0x99A2 0xC1AB #HANGUL SYLLABLE SIOS WA KIYEOKSIOS +0x99A3 0xC1AD #HANGUL SYLLABLE SIOS WA NIEUNCIEUC +0x99A4 0xC1AE #HANGUL SYLLABLE SIOS WA NIEUNHIEUH +0x99A5 0xC1AF #HANGUL SYLLABLE SIOS WA TIKEUT +0x99A6 0xC1B1 #HANGUL SYLLABLE SIOS WA RIEULKIYEOK +0x99A7 0xC1B2 #HANGUL SYLLABLE SIOS WA RIEULMIEUM +0x99A8 0xC1B3 #HANGUL SYLLABLE SIOS WA RIEULPIEUP +0x99A9 0xC1B4 #HANGUL SYLLABLE SIOS WA RIEULSIOS +0x99AA 0xC1B5 #HANGUL SYLLABLE SIOS WA RIEULTHIEUTH +0x99AB 0xC1B6 #HANGUL SYLLABLE SIOS WA RIEULPHIEUPH +0x99AC 0xC1B7 #HANGUL SYLLABLE SIOS WA RIEULHIEUH +0x99AD 0xC1B8 #HANGUL SYLLABLE SIOS WA MIEUM +0x99AE 0xC1B9 #HANGUL SYLLABLE SIOS WA PIEUP +0x99AF 0xC1BA #HANGUL SYLLABLE SIOS WA PIEUPSIOS +0x99B0 0xC1BB #HANGUL SYLLABLE SIOS WA SIOS +0x99B1 0xC1BC #HANGUL SYLLABLE SIOS WA SSANGSIOS +0x99B2 0xC1BE #HANGUL SYLLABLE SIOS WA CIEUC +0x99B3 0xC1BF #HANGUL SYLLABLE SIOS WA CHIEUCH +0x99B4 0xC1C0 #HANGUL SYLLABLE SIOS WA KHIEUKH +0x99B5 0xC1C1 #HANGUL SYLLABLE SIOS WA THIEUTH +0x99B6 0xC1C2 #HANGUL SYLLABLE SIOS WA PHIEUPH +0x99B7 0xC1C3 #HANGUL SYLLABLE SIOS WA HIEUH +0x99B8 0xC1C5 #HANGUL SYLLABLE SIOS WAE KIYEOK +0x99B9 0xC1C6 #HANGUL SYLLABLE SIOS WAE SSANGKIYEOK +0x99BA 0xC1C7 #HANGUL SYLLABLE SIOS WAE KIYEOKSIOS +0x99BB 0xC1C9 #HANGUL SYLLABLE SIOS WAE NIEUNCIEUC +0x99BC 0xC1CA #HANGUL SYLLABLE SIOS WAE NIEUNHIEUH +0x99BD 0xC1CB #HANGUL SYLLABLE SIOS WAE TIKEUT +0x99BE 0xC1CD #HANGUL SYLLABLE SIOS WAE RIEULKIYEOK +0x99BF 0xC1CE #HANGUL SYLLABLE SIOS WAE RIEULMIEUM +0x99C0 0xC1CF #HANGUL SYLLABLE SIOS WAE RIEULPIEUP +0x99C1 0xC1D0 #HANGUL SYLLABLE SIOS WAE RIEULSIOS +0x99C2 0xC1D1 #HANGUL SYLLABLE SIOS WAE RIEULTHIEUTH +0x99C3 0xC1D2 #HANGUL SYLLABLE SIOS WAE RIEULPHIEUPH +0x99C4 0xC1D3 #HANGUL SYLLABLE SIOS WAE RIEULHIEUH +0x99C5 0xC1D5 #HANGUL SYLLABLE SIOS WAE PIEUP +0x99C6 0xC1D6 #HANGUL SYLLABLE SIOS WAE PIEUPSIOS +0x99C7 0xC1D9 #HANGUL SYLLABLE SIOS WAE IEUNG +0x99C8 0xC1DA #HANGUL SYLLABLE SIOS WAE CIEUC +0x99C9 0xC1DB #HANGUL SYLLABLE SIOS WAE CHIEUCH +0x99CA 0xC1DC #HANGUL SYLLABLE SIOS WAE KHIEUKH +0x99CB 0xC1DD #HANGUL SYLLABLE SIOS WAE THIEUTH +0x99CC 0xC1DE #HANGUL SYLLABLE SIOS WAE PHIEUPH +0x99CD 0xC1DF #HANGUL SYLLABLE SIOS WAE HIEUH +0x99CE 0xC1E1 #HANGUL SYLLABLE SIOS OE KIYEOK +0x99CF 0xC1E2 #HANGUL SYLLABLE SIOS OE SSANGKIYEOK +0x99D0 0xC1E3 #HANGUL SYLLABLE SIOS OE KIYEOKSIOS +0x99D1 0xC1E5 #HANGUL SYLLABLE SIOS OE NIEUNCIEUC +0x99D2 0xC1E6 #HANGUL SYLLABLE SIOS OE NIEUNHIEUH +0x99D3 0xC1E7 #HANGUL SYLLABLE SIOS OE TIKEUT +0x99D4 0xC1E9 #HANGUL SYLLABLE SIOS OE RIEULKIYEOK +0x99D5 0xC1EA #HANGUL SYLLABLE SIOS OE RIEULMIEUM +0x99D6 0xC1EB #HANGUL SYLLABLE SIOS OE RIEULPIEUP +0x99D7 0xC1EC #HANGUL SYLLABLE SIOS OE RIEULSIOS +0x99D8 0xC1ED #HANGUL SYLLABLE SIOS OE RIEULTHIEUTH +0x99D9 0xC1EE #HANGUL SYLLABLE SIOS OE RIEULPHIEUPH +0x99DA 0xC1EF #HANGUL SYLLABLE SIOS OE RIEULHIEUH +0x99DB 0xC1F2 #HANGUL SYLLABLE SIOS OE PIEUPSIOS +0x99DC 0xC1F4 #HANGUL SYLLABLE SIOS OE SSANGSIOS +0x99DD 0xC1F5 #HANGUL SYLLABLE SIOS OE IEUNG +0x99DE 0xC1F6 #HANGUL SYLLABLE SIOS OE CIEUC +0x99DF 0xC1F7 #HANGUL SYLLABLE SIOS OE CHIEUCH +0x99E0 0xC1F8 #HANGUL SYLLABLE SIOS OE KHIEUKH +0x99E1 0xC1F9 #HANGUL SYLLABLE SIOS OE THIEUTH +0x99E2 0xC1FA #HANGUL SYLLABLE SIOS OE PHIEUPH +0x99E3 0xC1FB #HANGUL SYLLABLE SIOS OE HIEUH +0x99E4 0xC1FE #HANGUL SYLLABLE SIOS YO SSANGKIYEOK +0x99E5 0xC1FF #HANGUL SYLLABLE SIOS YO KIYEOKSIOS +0x99E6 0xC201 #HANGUL SYLLABLE SIOS YO NIEUNCIEUC +0x99E7 0xC202 #HANGUL SYLLABLE SIOS YO NIEUNHIEUH +0x99E8 0xC203 #HANGUL SYLLABLE SIOS YO TIKEUT +0x99E9 0xC205 #HANGUL SYLLABLE SIOS YO RIEULKIYEOK +0x99EA 0xC206 #HANGUL SYLLABLE SIOS YO RIEULMIEUM +0x99EB 0xC207 #HANGUL SYLLABLE SIOS YO RIEULPIEUP +0x99EC 0xC208 #HANGUL SYLLABLE SIOS YO RIEULSIOS +0x99ED 0xC209 #HANGUL SYLLABLE SIOS YO RIEULTHIEUTH +0x99EE 0xC20A #HANGUL SYLLABLE SIOS YO RIEULPHIEUPH +0x99EF 0xC20B #HANGUL SYLLABLE SIOS YO RIEULHIEUH +0x99F0 0xC20E #HANGUL SYLLABLE SIOS YO PIEUPSIOS +0x99F1 0xC210 #HANGUL SYLLABLE SIOS YO SSANGSIOS +0x99F2 0xC212 #HANGUL SYLLABLE SIOS YO CIEUC +0x99F3 0xC213 #HANGUL SYLLABLE SIOS YO CHIEUCH +0x99F4 0xC214 #HANGUL SYLLABLE SIOS YO KHIEUKH +0x99F5 0xC215 #HANGUL SYLLABLE SIOS YO THIEUTH +0x99F6 0xC216 #HANGUL SYLLABLE SIOS YO PHIEUPH +0x99F7 0xC217 #HANGUL SYLLABLE SIOS YO HIEUH +0x99F8 0xC21A #HANGUL SYLLABLE SIOS U SSANGKIYEOK +0x99F9 0xC21B #HANGUL SYLLABLE SIOS U KIYEOKSIOS +0x99FA 0xC21D #HANGUL SYLLABLE SIOS U NIEUNCIEUC +0x99FB 0xC21E #HANGUL SYLLABLE SIOS U NIEUNHIEUH +0x99FC 0xC221 #HANGUL SYLLABLE SIOS U RIEULKIYEOK +0x99FD 0xC222 #HANGUL SYLLABLE SIOS U RIEULMIEUM +0x99FE 0xC223 #HANGUL SYLLABLE SIOS U RIEULPIEUP +0x9A41 0xC224 #HANGUL SYLLABLE SIOS U RIEULSIOS +0x9A42 0xC225 #HANGUL SYLLABLE SIOS U RIEULTHIEUTH +0x9A43 0xC226 #HANGUL SYLLABLE SIOS U RIEULPHIEUPH +0x9A44 0xC227 #HANGUL SYLLABLE SIOS U RIEULHIEUH +0x9A45 0xC22A #HANGUL SYLLABLE SIOS U PIEUPSIOS +0x9A46 0xC22C #HANGUL SYLLABLE SIOS U SSANGSIOS +0x9A47 0xC22E #HANGUL SYLLABLE SIOS U CIEUC +0x9A48 0xC230 #HANGUL SYLLABLE SIOS U KHIEUKH +0x9A49 0xC233 #HANGUL SYLLABLE SIOS U HIEUH +0x9A4A 0xC235 #HANGUL SYLLABLE SIOS WEO KIYEOK +0x9A4B 0xC236 #HANGUL SYLLABLE SIOS WEO SSANGKIYEOK +0x9A4C 0xC237 #HANGUL SYLLABLE SIOS WEO KIYEOKSIOS +0x9A4D 0xC238 #HANGUL SYLLABLE SIOS WEO NIEUN +0x9A4E 0xC239 #HANGUL SYLLABLE SIOS WEO NIEUNCIEUC +0x9A4F 0xC23A #HANGUL SYLLABLE SIOS WEO NIEUNHIEUH +0x9A50 0xC23B #HANGUL SYLLABLE SIOS WEO TIKEUT +0x9A51 0xC23C #HANGUL SYLLABLE SIOS WEO RIEUL +0x9A52 0xC23D #HANGUL SYLLABLE SIOS WEO RIEULKIYEOK +0x9A53 0xC23E #HANGUL SYLLABLE SIOS WEO RIEULMIEUM +0x9A54 0xC23F #HANGUL SYLLABLE SIOS WEO RIEULPIEUP +0x9A55 0xC240 #HANGUL SYLLABLE SIOS WEO RIEULSIOS +0x9A56 0xC241 #HANGUL SYLLABLE SIOS WEO RIEULTHIEUTH +0x9A57 0xC242 #HANGUL SYLLABLE SIOS WEO RIEULPHIEUPH +0x9A58 0xC243 #HANGUL SYLLABLE SIOS WEO RIEULHIEUH +0x9A59 0xC244 #HANGUL SYLLABLE SIOS WEO MIEUM +0x9A5A 0xC245 #HANGUL SYLLABLE SIOS WEO PIEUP +0x9A61 0xC246 #HANGUL SYLLABLE SIOS WEO PIEUPSIOS +0x9A62 0xC247 #HANGUL SYLLABLE SIOS WEO SIOS +0x9A63 0xC249 #HANGUL SYLLABLE SIOS WEO IEUNG +0x9A64 0xC24A #HANGUL SYLLABLE SIOS WEO CIEUC +0x9A65 0xC24B #HANGUL SYLLABLE SIOS WEO CHIEUCH +0x9A66 0xC24C #HANGUL SYLLABLE SIOS WEO KHIEUKH +0x9A67 0xC24D #HANGUL SYLLABLE SIOS WEO THIEUTH +0x9A68 0xC24E #HANGUL SYLLABLE SIOS WEO PHIEUPH +0x9A69 0xC24F #HANGUL SYLLABLE SIOS WEO HIEUH +0x9A6A 0xC252 #HANGUL SYLLABLE SIOS WE SSANGKIYEOK +0x9A6B 0xC253 #HANGUL SYLLABLE SIOS WE KIYEOKSIOS +0x9A6C 0xC255 #HANGUL SYLLABLE SIOS WE NIEUNCIEUC +0x9A6D 0xC256 #HANGUL SYLLABLE SIOS WE NIEUNHIEUH +0x9A6E 0xC257 #HANGUL SYLLABLE SIOS WE TIKEUT +0x9A6F 0xC259 #HANGUL SYLLABLE SIOS WE RIEULKIYEOK +0x9A70 0xC25A #HANGUL SYLLABLE SIOS WE RIEULMIEUM +0x9A71 0xC25B #HANGUL SYLLABLE SIOS WE RIEULPIEUP +0x9A72 0xC25C #HANGUL SYLLABLE SIOS WE RIEULSIOS +0x9A73 0xC25D #HANGUL SYLLABLE SIOS WE RIEULTHIEUTH +0x9A74 0xC25E #HANGUL SYLLABLE SIOS WE RIEULPHIEUPH +0x9A75 0xC25F #HANGUL SYLLABLE SIOS WE RIEULHIEUH +0x9A76 0xC261 #HANGUL SYLLABLE SIOS WE PIEUP +0x9A77 0xC262 #HANGUL SYLLABLE SIOS WE PIEUPSIOS +0x9A78 0xC263 #HANGUL SYLLABLE SIOS WE SIOS +0x9A79 0xC264 #HANGUL SYLLABLE SIOS WE SSANGSIOS +0x9A7A 0xC266 #HANGUL SYLLABLE SIOS WE CIEUC +0x9A81 0xC267 #HANGUL SYLLABLE SIOS WE CHIEUCH +0x9A82 0xC268 #HANGUL SYLLABLE SIOS WE KHIEUKH +0x9A83 0xC269 #HANGUL SYLLABLE SIOS WE THIEUTH +0x9A84 0xC26A #HANGUL SYLLABLE SIOS WE PHIEUPH +0x9A85 0xC26B #HANGUL SYLLABLE SIOS WE HIEUH +0x9A86 0xC26E #HANGUL SYLLABLE SIOS WI SSANGKIYEOK +0x9A87 0xC26F #HANGUL SYLLABLE SIOS WI KIYEOKSIOS +0x9A88 0xC271 #HANGUL SYLLABLE SIOS WI NIEUNCIEUC +0x9A89 0xC272 #HANGUL SYLLABLE SIOS WI NIEUNHIEUH +0x9A8A 0xC273 #HANGUL SYLLABLE SIOS WI TIKEUT +0x9A8B 0xC275 #HANGUL SYLLABLE SIOS WI RIEULKIYEOK +0x9A8C 0xC276 #HANGUL SYLLABLE SIOS WI RIEULMIEUM +0x9A8D 0xC277 #HANGUL SYLLABLE SIOS WI RIEULPIEUP +0x9A8E 0xC278 #HANGUL SYLLABLE SIOS WI RIEULSIOS +0x9A8F 0xC279 #HANGUL SYLLABLE SIOS WI RIEULTHIEUTH +0x9A90 0xC27A #HANGUL SYLLABLE SIOS WI RIEULPHIEUPH +0x9A91 0xC27B #HANGUL SYLLABLE SIOS WI RIEULHIEUH +0x9A92 0xC27E #HANGUL SYLLABLE SIOS WI PIEUPSIOS +0x9A93 0xC280 #HANGUL SYLLABLE SIOS WI SSANGSIOS +0x9A94 0xC282 #HANGUL SYLLABLE SIOS WI CIEUC +0x9A95 0xC283 #HANGUL SYLLABLE SIOS WI CHIEUCH +0x9A96 0xC284 #HANGUL SYLLABLE SIOS WI KHIEUKH +0x9A97 0xC285 #HANGUL SYLLABLE SIOS WI THIEUTH +0x9A98 0xC286 #HANGUL SYLLABLE SIOS WI PHIEUPH +0x9A99 0xC287 #HANGUL SYLLABLE SIOS WI HIEUH +0x9A9A 0xC28A #HANGUL SYLLABLE SIOS YU SSANGKIYEOK +0x9A9B 0xC28B #HANGUL SYLLABLE SIOS YU KIYEOKSIOS +0x9A9C 0xC28C #HANGUL SYLLABLE SIOS YU NIEUN +0x9A9D 0xC28D #HANGUL SYLLABLE SIOS YU NIEUNCIEUC +0x9A9E 0xC28E #HANGUL SYLLABLE SIOS YU NIEUNHIEUH +0x9A9F 0xC28F #HANGUL SYLLABLE SIOS YU TIKEUT +0x9AA0 0xC291 #HANGUL SYLLABLE SIOS YU RIEULKIYEOK +0x9AA1 0xC292 #HANGUL SYLLABLE SIOS YU RIEULMIEUM +0x9AA2 0xC293 #HANGUL SYLLABLE SIOS YU RIEULPIEUP +0x9AA3 0xC294 #HANGUL SYLLABLE SIOS YU RIEULSIOS +0x9AA4 0xC295 #HANGUL SYLLABLE SIOS YU RIEULTHIEUTH +0x9AA5 0xC296 #HANGUL SYLLABLE SIOS YU RIEULPHIEUPH +0x9AA6 0xC297 #HANGUL SYLLABLE SIOS YU RIEULHIEUH +0x9AA7 0xC299 #HANGUL SYLLABLE SIOS YU PIEUP +0x9AA8 0xC29A #HANGUL SYLLABLE SIOS YU PIEUPSIOS +0x9AA9 0xC29C #HANGUL SYLLABLE SIOS YU SSANGSIOS +0x9AAA 0xC29E #HANGUL SYLLABLE SIOS YU CIEUC +0x9AAB 0xC29F #HANGUL SYLLABLE SIOS YU CHIEUCH +0x9AAC 0xC2A0 #HANGUL SYLLABLE SIOS YU KHIEUKH +0x9AAD 0xC2A1 #HANGUL SYLLABLE SIOS YU THIEUTH +0x9AAE 0xC2A2 #HANGUL SYLLABLE SIOS YU PHIEUPH +0x9AAF 0xC2A3 #HANGUL SYLLABLE SIOS YU HIEUH +0x9AB0 0xC2A6 #HANGUL SYLLABLE SIOS EU SSANGKIYEOK +0x9AB1 0xC2A7 #HANGUL SYLLABLE SIOS EU KIYEOKSIOS +0x9AB2 0xC2A9 #HANGUL SYLLABLE SIOS EU NIEUNCIEUC +0x9AB3 0xC2AA #HANGUL SYLLABLE SIOS EU NIEUNHIEUH +0x9AB4 0xC2AB #HANGUL SYLLABLE SIOS EU TIKEUT +0x9AB5 0xC2AE #HANGUL SYLLABLE SIOS EU RIEULMIEUM +0x9AB6 0xC2AF #HANGUL SYLLABLE SIOS EU RIEULPIEUP +0x9AB7 0xC2B0 #HANGUL SYLLABLE SIOS EU RIEULSIOS +0x9AB8 0xC2B1 #HANGUL SYLLABLE SIOS EU RIEULTHIEUTH +0x9AB9 0xC2B2 #HANGUL SYLLABLE SIOS EU RIEULPHIEUPH +0x9ABA 0xC2B3 #HANGUL SYLLABLE SIOS EU RIEULHIEUH +0x9ABB 0xC2B6 #HANGUL SYLLABLE SIOS EU PIEUPSIOS +0x9ABC 0xC2B8 #HANGUL SYLLABLE SIOS EU SSANGSIOS +0x9ABD 0xC2BA #HANGUL SYLLABLE SIOS EU CIEUC +0x9ABE 0xC2BB #HANGUL SYLLABLE SIOS EU CHIEUCH +0x9ABF 0xC2BC #HANGUL SYLLABLE SIOS EU KHIEUKH +0x9AC0 0xC2BD #HANGUL SYLLABLE SIOS EU THIEUTH +0x9AC1 0xC2BE #HANGUL SYLLABLE SIOS EU PHIEUPH +0x9AC2 0xC2BF #HANGUL SYLLABLE SIOS EU HIEUH +0x9AC3 0xC2C0 #HANGUL SYLLABLE SIOS YI +0x9AC4 0xC2C1 #HANGUL SYLLABLE SIOS YI KIYEOK +0x9AC5 0xC2C2 #HANGUL SYLLABLE SIOS YI SSANGKIYEOK +0x9AC6 0xC2C3 #HANGUL SYLLABLE SIOS YI KIYEOKSIOS +0x9AC7 0xC2C4 #HANGUL SYLLABLE SIOS YI NIEUN +0x9AC8 0xC2C5 #HANGUL SYLLABLE SIOS YI NIEUNCIEUC +0x9AC9 0xC2C6 #HANGUL SYLLABLE SIOS YI NIEUNHIEUH +0x9ACA 0xC2C7 #HANGUL SYLLABLE SIOS YI TIKEUT +0x9ACB 0xC2C8 #HANGUL SYLLABLE SIOS YI RIEUL +0x9ACC 0xC2C9 #HANGUL SYLLABLE SIOS YI RIEULKIYEOK +0x9ACD 0xC2CA #HANGUL SYLLABLE SIOS YI RIEULMIEUM +0x9ACE 0xC2CB #HANGUL SYLLABLE SIOS YI RIEULPIEUP +0x9ACF 0xC2CC #HANGUL SYLLABLE SIOS YI RIEULSIOS +0x9AD0 0xC2CD #HANGUL SYLLABLE SIOS YI RIEULTHIEUTH +0x9AD1 0xC2CE #HANGUL SYLLABLE SIOS YI RIEULPHIEUPH +0x9AD2 0xC2CF #HANGUL SYLLABLE SIOS YI RIEULHIEUH +0x9AD3 0xC2D0 #HANGUL SYLLABLE SIOS YI MIEUM +0x9AD4 0xC2D1 #HANGUL SYLLABLE SIOS YI PIEUP +0x9AD5 0xC2D2 #HANGUL SYLLABLE SIOS YI PIEUPSIOS +0x9AD6 0xC2D3 #HANGUL SYLLABLE SIOS YI SIOS +0x9AD7 0xC2D4 #HANGUL SYLLABLE SIOS YI SSANGSIOS +0x9AD8 0xC2D5 #HANGUL SYLLABLE SIOS YI IEUNG +0x9AD9 0xC2D6 #HANGUL SYLLABLE SIOS YI CIEUC +0x9ADA 0xC2D7 #HANGUL SYLLABLE SIOS YI CHIEUCH +0x9ADB 0xC2D8 #HANGUL SYLLABLE SIOS YI KHIEUKH +0x9ADC 0xC2D9 #HANGUL SYLLABLE SIOS YI THIEUTH +0x9ADD 0xC2DA #HANGUL SYLLABLE SIOS YI PHIEUPH +0x9ADE 0xC2DB #HANGUL SYLLABLE SIOS YI HIEUH +0x9ADF 0xC2DE #HANGUL SYLLABLE SIOS I SSANGKIYEOK +0x9AE0 0xC2DF #HANGUL SYLLABLE SIOS I KIYEOKSIOS +0x9AE1 0xC2E1 #HANGUL SYLLABLE SIOS I NIEUNCIEUC +0x9AE2 0xC2E2 #HANGUL SYLLABLE SIOS I NIEUNHIEUH +0x9AE3 0xC2E5 #HANGUL SYLLABLE SIOS I RIEULKIYEOK +0x9AE4 0xC2E6 #HANGUL SYLLABLE SIOS I RIEULMIEUM +0x9AE5 0xC2E7 #HANGUL SYLLABLE SIOS I RIEULPIEUP +0x9AE6 0xC2E8 #HANGUL SYLLABLE SIOS I RIEULSIOS +0x9AE7 0xC2E9 #HANGUL SYLLABLE SIOS I RIEULTHIEUTH +0x9AE8 0xC2EA #HANGUL SYLLABLE SIOS I RIEULPHIEUPH +0x9AE9 0xC2EE #HANGUL SYLLABLE SIOS I PIEUPSIOS +0x9AEA 0xC2F0 #HANGUL SYLLABLE SIOS I SSANGSIOS +0x9AEB 0xC2F2 #HANGUL SYLLABLE SIOS I CIEUC +0x9AEC 0xC2F3 #HANGUL SYLLABLE SIOS I CHIEUCH +0x9AED 0xC2F4 #HANGUL SYLLABLE SIOS I KHIEUKH +0x9AEE 0xC2F5 #HANGUL SYLLABLE SIOS I THIEUTH +0x9AEF 0xC2F7 #HANGUL SYLLABLE SIOS I HIEUH +0x9AF0 0xC2FA #HANGUL SYLLABLE SSANGSIOS A SSANGKIYEOK +0x9AF1 0xC2FD #HANGUL SYLLABLE SSANGSIOS A NIEUNCIEUC +0x9AF2 0xC2FE #HANGUL SYLLABLE SSANGSIOS A NIEUNHIEUH +0x9AF3 0xC2FF #HANGUL SYLLABLE SSANGSIOS A TIKEUT +0x9AF4 0xC301 #HANGUL SYLLABLE SSANGSIOS A RIEULKIYEOK +0x9AF5 0xC302 #HANGUL SYLLABLE SSANGSIOS A RIEULMIEUM +0x9AF6 0xC303 #HANGUL SYLLABLE SSANGSIOS A RIEULPIEUP +0x9AF7 0xC304 #HANGUL SYLLABLE SSANGSIOS A RIEULSIOS +0x9AF8 0xC305 #HANGUL SYLLABLE SSANGSIOS A RIEULTHIEUTH +0x9AF9 0xC306 #HANGUL SYLLABLE SSANGSIOS A RIEULPHIEUPH +0x9AFA 0xC307 #HANGUL SYLLABLE SSANGSIOS A RIEULHIEUH +0x9AFB 0xC30A #HANGUL SYLLABLE SSANGSIOS A PIEUPSIOS +0x9AFC 0xC30B #HANGUL SYLLABLE SSANGSIOS A SIOS +0x9AFD 0xC30E #HANGUL SYLLABLE SSANGSIOS A CIEUC +0x9AFE 0xC30F #HANGUL SYLLABLE SSANGSIOS A CHIEUCH +0x9B41 0xC310 #HANGUL SYLLABLE SSANGSIOS A KHIEUKH +0x9B42 0xC311 #HANGUL SYLLABLE SSANGSIOS A THIEUTH +0x9B43 0xC312 #HANGUL SYLLABLE SSANGSIOS A PHIEUPH +0x9B44 0xC316 #HANGUL SYLLABLE SSANGSIOS AE SSANGKIYEOK +0x9B45 0xC317 #HANGUL SYLLABLE SSANGSIOS AE KIYEOKSIOS +0x9B46 0xC319 #HANGUL SYLLABLE SSANGSIOS AE NIEUNCIEUC +0x9B47 0xC31A #HANGUL SYLLABLE SSANGSIOS AE NIEUNHIEUH +0x9B48 0xC31B #HANGUL SYLLABLE SSANGSIOS AE TIKEUT +0x9B49 0xC31D #HANGUL SYLLABLE SSANGSIOS AE RIEULKIYEOK +0x9B4A 0xC31E #HANGUL SYLLABLE SSANGSIOS AE RIEULMIEUM +0x9B4B 0xC31F #HANGUL SYLLABLE SSANGSIOS AE RIEULPIEUP +0x9B4C 0xC320 #HANGUL SYLLABLE SSANGSIOS AE RIEULSIOS +0x9B4D 0xC321 #HANGUL SYLLABLE SSANGSIOS AE RIEULTHIEUTH +0x9B4E 0xC322 #HANGUL SYLLABLE SSANGSIOS AE RIEULPHIEUPH +0x9B4F 0xC323 #HANGUL SYLLABLE SSANGSIOS AE RIEULHIEUH +0x9B50 0xC326 #HANGUL SYLLABLE SSANGSIOS AE PIEUPSIOS +0x9B51 0xC327 #HANGUL SYLLABLE SSANGSIOS AE SIOS +0x9B52 0xC32A #HANGUL SYLLABLE SSANGSIOS AE CIEUC +0x9B53 0xC32B #HANGUL SYLLABLE SSANGSIOS AE CHIEUCH +0x9B54 0xC32C #HANGUL SYLLABLE SSANGSIOS AE KHIEUKH +0x9B55 0xC32D #HANGUL SYLLABLE SSANGSIOS AE THIEUTH +0x9B56 0xC32E #HANGUL SYLLABLE SSANGSIOS AE PHIEUPH +0x9B57 0xC32F #HANGUL SYLLABLE SSANGSIOS AE HIEUH +0x9B58 0xC330 #HANGUL SYLLABLE SSANGSIOS YA +0x9B59 0xC331 #HANGUL SYLLABLE SSANGSIOS YA KIYEOK +0x9B5A 0xC332 #HANGUL SYLLABLE SSANGSIOS YA SSANGKIYEOK +0x9B61 0xC333 #HANGUL SYLLABLE SSANGSIOS YA KIYEOKSIOS +0x9B62 0xC334 #HANGUL SYLLABLE SSANGSIOS YA NIEUN +0x9B63 0xC335 #HANGUL SYLLABLE SSANGSIOS YA NIEUNCIEUC +0x9B64 0xC336 #HANGUL SYLLABLE SSANGSIOS YA NIEUNHIEUH +0x9B65 0xC337 #HANGUL SYLLABLE SSANGSIOS YA TIKEUT +0x9B66 0xC338 #HANGUL SYLLABLE SSANGSIOS YA RIEUL +0x9B67 0xC339 #HANGUL SYLLABLE SSANGSIOS YA RIEULKIYEOK +0x9B68 0xC33A #HANGUL SYLLABLE SSANGSIOS YA RIEULMIEUM +0x9B69 0xC33B #HANGUL SYLLABLE SSANGSIOS YA RIEULPIEUP +0x9B6A 0xC33C #HANGUL SYLLABLE SSANGSIOS YA RIEULSIOS +0x9B6B 0xC33D #HANGUL SYLLABLE SSANGSIOS YA RIEULTHIEUTH +0x9B6C 0xC33E #HANGUL SYLLABLE SSANGSIOS YA RIEULPHIEUPH +0x9B6D 0xC33F #HANGUL SYLLABLE SSANGSIOS YA RIEULHIEUH +0x9B6E 0xC340 #HANGUL SYLLABLE SSANGSIOS YA MIEUM +0x9B6F 0xC341 #HANGUL SYLLABLE SSANGSIOS YA PIEUP +0x9B70 0xC342 #HANGUL SYLLABLE SSANGSIOS YA PIEUPSIOS +0x9B71 0xC343 #HANGUL SYLLABLE SSANGSIOS YA SIOS +0x9B72 0xC344 #HANGUL SYLLABLE SSANGSIOS YA SSANGSIOS +0x9B73 0xC346 #HANGUL SYLLABLE SSANGSIOS YA CIEUC +0x9B74 0xC347 #HANGUL SYLLABLE SSANGSIOS YA CHIEUCH +0x9B75 0xC348 #HANGUL SYLLABLE SSANGSIOS YA KHIEUKH +0x9B76 0xC349 #HANGUL SYLLABLE SSANGSIOS YA THIEUTH +0x9B77 0xC34A #HANGUL SYLLABLE SSANGSIOS YA PHIEUPH +0x9B78 0xC34B #HANGUL SYLLABLE SSANGSIOS YA HIEUH +0x9B79 0xC34C #HANGUL SYLLABLE SSANGSIOS YAE +0x9B7A 0xC34D #HANGUL SYLLABLE SSANGSIOS YAE KIYEOK +0x9B81 0xC34E #HANGUL SYLLABLE SSANGSIOS YAE SSANGKIYEOK +0x9B82 0xC34F #HANGUL SYLLABLE SSANGSIOS YAE KIYEOKSIOS +0x9B83 0xC350 #HANGUL SYLLABLE SSANGSIOS YAE NIEUN +0x9B84 0xC351 #HANGUL SYLLABLE SSANGSIOS YAE NIEUNCIEUC +0x9B85 0xC352 #HANGUL SYLLABLE SSANGSIOS YAE NIEUNHIEUH +0x9B86 0xC353 #HANGUL SYLLABLE SSANGSIOS YAE TIKEUT +0x9B87 0xC354 #HANGUL SYLLABLE SSANGSIOS YAE RIEUL +0x9B88 0xC355 #HANGUL SYLLABLE SSANGSIOS YAE RIEULKIYEOK +0x9B89 0xC356 #HANGUL SYLLABLE SSANGSIOS YAE RIEULMIEUM +0x9B8A 0xC357 #HANGUL SYLLABLE SSANGSIOS YAE RIEULPIEUP +0x9B8B 0xC358 #HANGUL SYLLABLE SSANGSIOS YAE RIEULSIOS +0x9B8C 0xC359 #HANGUL SYLLABLE SSANGSIOS YAE RIEULTHIEUTH +0x9B8D 0xC35A #HANGUL SYLLABLE SSANGSIOS YAE RIEULPHIEUPH +0x9B8E 0xC35B #HANGUL SYLLABLE SSANGSIOS YAE RIEULHIEUH +0x9B8F 0xC35C #HANGUL SYLLABLE SSANGSIOS YAE MIEUM +0x9B90 0xC35D #HANGUL SYLLABLE SSANGSIOS YAE PIEUP +0x9B91 0xC35E #HANGUL SYLLABLE SSANGSIOS YAE PIEUPSIOS +0x9B92 0xC35F #HANGUL SYLLABLE SSANGSIOS YAE SIOS +0x9B93 0xC360 #HANGUL SYLLABLE SSANGSIOS YAE SSANGSIOS +0x9B94 0xC361 #HANGUL SYLLABLE SSANGSIOS YAE IEUNG +0x9B95 0xC362 #HANGUL SYLLABLE SSANGSIOS YAE CIEUC +0x9B96 0xC363 #HANGUL SYLLABLE SSANGSIOS YAE CHIEUCH +0x9B97 0xC364 #HANGUL SYLLABLE SSANGSIOS YAE KHIEUKH +0x9B98 0xC365 #HANGUL SYLLABLE SSANGSIOS YAE THIEUTH +0x9B99 0xC366 #HANGUL SYLLABLE SSANGSIOS YAE PHIEUPH +0x9B9A 0xC367 #HANGUL SYLLABLE SSANGSIOS YAE HIEUH +0x9B9B 0xC36A #HANGUL SYLLABLE SSANGSIOS EO SSANGKIYEOK +0x9B9C 0xC36B #HANGUL SYLLABLE SSANGSIOS EO KIYEOKSIOS +0x9B9D 0xC36D #HANGUL SYLLABLE SSANGSIOS EO NIEUNCIEUC +0x9B9E 0xC36E #HANGUL SYLLABLE SSANGSIOS EO NIEUNHIEUH +0x9B9F 0xC36F #HANGUL SYLLABLE SSANGSIOS EO TIKEUT +0x9BA0 0xC371 #HANGUL SYLLABLE SSANGSIOS EO RIEULKIYEOK +0x9BA1 0xC373 #HANGUL SYLLABLE SSANGSIOS EO RIEULPIEUP +0x9BA2 0xC374 #HANGUL SYLLABLE SSANGSIOS EO RIEULSIOS +0x9BA3 0xC375 #HANGUL SYLLABLE SSANGSIOS EO RIEULTHIEUTH +0x9BA4 0xC376 #HANGUL SYLLABLE SSANGSIOS EO RIEULPHIEUPH +0x9BA5 0xC377 #HANGUL SYLLABLE SSANGSIOS EO RIEULHIEUH +0x9BA6 0xC37A #HANGUL SYLLABLE SSANGSIOS EO PIEUPSIOS +0x9BA7 0xC37B #HANGUL SYLLABLE SSANGSIOS EO SIOS +0x9BA8 0xC37E #HANGUL SYLLABLE SSANGSIOS EO CIEUC +0x9BA9 0xC37F #HANGUL SYLLABLE SSANGSIOS EO CHIEUCH +0x9BAA 0xC380 #HANGUL SYLLABLE SSANGSIOS EO KHIEUKH +0x9BAB 0xC381 #HANGUL SYLLABLE SSANGSIOS EO THIEUTH +0x9BAC 0xC382 #HANGUL SYLLABLE SSANGSIOS EO PHIEUPH +0x9BAD 0xC383 #HANGUL SYLLABLE SSANGSIOS EO HIEUH +0x9BAE 0xC385 #HANGUL SYLLABLE SSANGSIOS E KIYEOK +0x9BAF 0xC386 #HANGUL SYLLABLE SSANGSIOS E SSANGKIYEOK +0x9BB0 0xC387 #HANGUL SYLLABLE SSANGSIOS E KIYEOKSIOS +0x9BB1 0xC389 #HANGUL SYLLABLE SSANGSIOS E NIEUNCIEUC +0x9BB2 0xC38A #HANGUL SYLLABLE SSANGSIOS E NIEUNHIEUH +0x9BB3 0xC38B #HANGUL SYLLABLE SSANGSIOS E TIKEUT +0x9BB4 0xC38D #HANGUL SYLLABLE SSANGSIOS E RIEULKIYEOK +0x9BB5 0xC38E #HANGUL SYLLABLE SSANGSIOS E RIEULMIEUM +0x9BB6 0xC38F #HANGUL SYLLABLE SSANGSIOS E RIEULPIEUP +0x9BB7 0xC390 #HANGUL SYLLABLE SSANGSIOS E RIEULSIOS +0x9BB8 0xC391 #HANGUL SYLLABLE SSANGSIOS E RIEULTHIEUTH +0x9BB9 0xC392 #HANGUL SYLLABLE SSANGSIOS E RIEULPHIEUPH +0x9BBA 0xC393 #HANGUL SYLLABLE SSANGSIOS E RIEULHIEUH +0x9BBB 0xC394 #HANGUL SYLLABLE SSANGSIOS E MIEUM +0x9BBC 0xC395 #HANGUL SYLLABLE SSANGSIOS E PIEUP +0x9BBD 0xC396 #HANGUL SYLLABLE SSANGSIOS E PIEUPSIOS +0x9BBE 0xC397 #HANGUL SYLLABLE SSANGSIOS E SIOS +0x9BBF 0xC398 #HANGUL SYLLABLE SSANGSIOS E SSANGSIOS +0x9BC0 0xC399 #HANGUL SYLLABLE SSANGSIOS E IEUNG +0x9BC1 0xC39A #HANGUL SYLLABLE SSANGSIOS E CIEUC +0x9BC2 0xC39B #HANGUL SYLLABLE SSANGSIOS E CHIEUCH +0x9BC3 0xC39C #HANGUL SYLLABLE SSANGSIOS E KHIEUKH +0x9BC4 0xC39D #HANGUL SYLLABLE SSANGSIOS E THIEUTH +0x9BC5 0xC39E #HANGUL SYLLABLE SSANGSIOS E PHIEUPH +0x9BC6 0xC39F #HANGUL SYLLABLE SSANGSIOS E HIEUH +0x9BC7 0xC3A0 #HANGUL SYLLABLE SSANGSIOS YEO +0x9BC8 0xC3A1 #HANGUL SYLLABLE SSANGSIOS YEO KIYEOK +0x9BC9 0xC3A2 #HANGUL SYLLABLE SSANGSIOS YEO SSANGKIYEOK +0x9BCA 0xC3A3 #HANGUL SYLLABLE SSANGSIOS YEO KIYEOKSIOS +0x9BCB 0xC3A4 #HANGUL SYLLABLE SSANGSIOS YEO NIEUN +0x9BCC 0xC3A5 #HANGUL SYLLABLE SSANGSIOS YEO NIEUNCIEUC +0x9BCD 0xC3A6 #HANGUL SYLLABLE SSANGSIOS YEO NIEUNHIEUH +0x9BCE 0xC3A7 #HANGUL SYLLABLE SSANGSIOS YEO TIKEUT +0x9BCF 0xC3A8 #HANGUL SYLLABLE SSANGSIOS YEO RIEUL +0x9BD0 0xC3A9 #HANGUL SYLLABLE SSANGSIOS YEO RIEULKIYEOK +0x9BD1 0xC3AA #HANGUL SYLLABLE SSANGSIOS YEO RIEULMIEUM +0x9BD2 0xC3AB #HANGUL SYLLABLE SSANGSIOS YEO RIEULPIEUP +0x9BD3 0xC3AC #HANGUL SYLLABLE SSANGSIOS YEO RIEULSIOS +0x9BD4 0xC3AD #HANGUL SYLLABLE SSANGSIOS YEO RIEULTHIEUTH +0x9BD5 0xC3AE #HANGUL SYLLABLE SSANGSIOS YEO RIEULPHIEUPH +0x9BD6 0xC3AF #HANGUL SYLLABLE SSANGSIOS YEO RIEULHIEUH +0x9BD7 0xC3B0 #HANGUL SYLLABLE SSANGSIOS YEO MIEUM +0x9BD8 0xC3B1 #HANGUL SYLLABLE SSANGSIOS YEO PIEUP +0x9BD9 0xC3B2 #HANGUL SYLLABLE SSANGSIOS YEO PIEUPSIOS +0x9BDA 0xC3B3 #HANGUL SYLLABLE SSANGSIOS YEO SIOS +0x9BDB 0xC3B4 #HANGUL SYLLABLE SSANGSIOS YEO SSANGSIOS +0x9BDC 0xC3B5 #HANGUL SYLLABLE SSANGSIOS YEO IEUNG +0x9BDD 0xC3B6 #HANGUL SYLLABLE SSANGSIOS YEO CIEUC +0x9BDE 0xC3B7 #HANGUL SYLLABLE SSANGSIOS YEO CHIEUCH +0x9BDF 0xC3B8 #HANGUL SYLLABLE SSANGSIOS YEO KHIEUKH +0x9BE0 0xC3B9 #HANGUL SYLLABLE SSANGSIOS YEO THIEUTH +0x9BE1 0xC3BA #HANGUL SYLLABLE SSANGSIOS YEO PHIEUPH +0x9BE2 0xC3BB #HANGUL SYLLABLE SSANGSIOS YEO HIEUH +0x9BE3 0xC3BC #HANGUL SYLLABLE SSANGSIOS YE +0x9BE4 0xC3BD #HANGUL SYLLABLE SSANGSIOS YE KIYEOK +0x9BE5 0xC3BE #HANGUL SYLLABLE SSANGSIOS YE SSANGKIYEOK +0x9BE6 0xC3BF #HANGUL SYLLABLE SSANGSIOS YE KIYEOKSIOS +0x9BE7 0xC3C1 #HANGUL SYLLABLE SSANGSIOS YE NIEUNCIEUC +0x9BE8 0xC3C2 #HANGUL SYLLABLE SSANGSIOS YE NIEUNHIEUH +0x9BE9 0xC3C3 #HANGUL SYLLABLE SSANGSIOS YE TIKEUT +0x9BEA 0xC3C4 #HANGUL SYLLABLE SSANGSIOS YE RIEUL +0x9BEB 0xC3C5 #HANGUL SYLLABLE SSANGSIOS YE RIEULKIYEOK +0x9BEC 0xC3C6 #HANGUL SYLLABLE SSANGSIOS YE RIEULMIEUM +0x9BED 0xC3C7 #HANGUL SYLLABLE SSANGSIOS YE RIEULPIEUP +0x9BEE 0xC3C8 #HANGUL SYLLABLE SSANGSIOS YE RIEULSIOS +0x9BEF 0xC3C9 #HANGUL SYLLABLE SSANGSIOS YE RIEULTHIEUTH +0x9BF0 0xC3CA #HANGUL SYLLABLE SSANGSIOS YE RIEULPHIEUPH +0x9BF1 0xC3CB #HANGUL SYLLABLE SSANGSIOS YE RIEULHIEUH +0x9BF2 0xC3CC #HANGUL SYLLABLE SSANGSIOS YE MIEUM +0x9BF3 0xC3CD #HANGUL SYLLABLE SSANGSIOS YE PIEUP +0x9BF4 0xC3CE #HANGUL SYLLABLE SSANGSIOS YE PIEUPSIOS +0x9BF5 0xC3CF #HANGUL SYLLABLE SSANGSIOS YE SIOS +0x9BF6 0xC3D0 #HANGUL SYLLABLE SSANGSIOS YE SSANGSIOS +0x9BF7 0xC3D1 #HANGUL SYLLABLE SSANGSIOS YE IEUNG +0x9BF8 0xC3D2 #HANGUL SYLLABLE SSANGSIOS YE CIEUC +0x9BF9 0xC3D3 #HANGUL SYLLABLE SSANGSIOS YE CHIEUCH +0x9BFA 0xC3D4 #HANGUL SYLLABLE SSANGSIOS YE KHIEUKH +0x9BFB 0xC3D5 #HANGUL SYLLABLE SSANGSIOS YE THIEUTH +0x9BFC 0xC3D6 #HANGUL SYLLABLE SSANGSIOS YE PHIEUPH +0x9BFD 0xC3D7 #HANGUL SYLLABLE SSANGSIOS YE HIEUH +0x9BFE 0xC3DA #HANGUL SYLLABLE SSANGSIOS O SSANGKIYEOK +0x9C41 0xC3DB #HANGUL SYLLABLE SSANGSIOS O KIYEOKSIOS +0x9C42 0xC3DD #HANGUL SYLLABLE SSANGSIOS O NIEUNCIEUC +0x9C43 0xC3DE #HANGUL SYLLABLE SSANGSIOS O NIEUNHIEUH +0x9C44 0xC3E1 #HANGUL SYLLABLE SSANGSIOS O RIEULKIYEOK +0x9C45 0xC3E3 #HANGUL SYLLABLE SSANGSIOS O RIEULPIEUP +0x9C46 0xC3E4 #HANGUL SYLLABLE SSANGSIOS O RIEULSIOS +0x9C47 0xC3E5 #HANGUL SYLLABLE SSANGSIOS O RIEULTHIEUTH +0x9C48 0xC3E6 #HANGUL SYLLABLE SSANGSIOS O RIEULPHIEUPH +0x9C49 0xC3E7 #HANGUL SYLLABLE SSANGSIOS O RIEULHIEUH +0x9C4A 0xC3EA #HANGUL SYLLABLE SSANGSIOS O PIEUPSIOS +0x9C4B 0xC3EB #HANGUL SYLLABLE SSANGSIOS O SIOS +0x9C4C 0xC3EC #HANGUL SYLLABLE SSANGSIOS O SSANGSIOS +0x9C4D 0xC3EE #HANGUL SYLLABLE SSANGSIOS O CIEUC +0x9C4E 0xC3EF #HANGUL SYLLABLE SSANGSIOS O CHIEUCH +0x9C4F 0xC3F0 #HANGUL SYLLABLE SSANGSIOS O KHIEUKH +0x9C50 0xC3F1 #HANGUL SYLLABLE SSANGSIOS O THIEUTH +0x9C51 0xC3F2 #HANGUL SYLLABLE SSANGSIOS O PHIEUPH +0x9C52 0xC3F3 #HANGUL SYLLABLE SSANGSIOS O HIEUH +0x9C53 0xC3F6 #HANGUL SYLLABLE SSANGSIOS WA SSANGKIYEOK +0x9C54 0xC3F7 #HANGUL SYLLABLE SSANGSIOS WA KIYEOKSIOS +0x9C55 0xC3F9 #HANGUL SYLLABLE SSANGSIOS WA NIEUNCIEUC +0x9C56 0xC3FA #HANGUL SYLLABLE SSANGSIOS WA NIEUNHIEUH +0x9C57 0xC3FB #HANGUL SYLLABLE SSANGSIOS WA TIKEUT +0x9C58 0xC3FC #HANGUL SYLLABLE SSANGSIOS WA RIEUL +0x9C59 0xC3FD #HANGUL SYLLABLE SSANGSIOS WA RIEULKIYEOK +0x9C5A 0xC3FE #HANGUL SYLLABLE SSANGSIOS WA RIEULMIEUM +0x9C61 0xC3FF #HANGUL SYLLABLE SSANGSIOS WA RIEULPIEUP +0x9C62 0xC400 #HANGUL SYLLABLE SSANGSIOS WA RIEULSIOS +0x9C63 0xC401 #HANGUL SYLLABLE SSANGSIOS WA RIEULTHIEUTH +0x9C64 0xC402 #HANGUL SYLLABLE SSANGSIOS WA RIEULPHIEUPH +0x9C65 0xC403 #HANGUL SYLLABLE SSANGSIOS WA RIEULHIEUH +0x9C66 0xC404 #HANGUL SYLLABLE SSANGSIOS WA MIEUM +0x9C67 0xC405 #HANGUL SYLLABLE SSANGSIOS WA PIEUP +0x9C68 0xC406 #HANGUL SYLLABLE SSANGSIOS WA PIEUPSIOS +0x9C69 0xC407 #HANGUL SYLLABLE SSANGSIOS WA SIOS +0x9C6A 0xC409 #HANGUL SYLLABLE SSANGSIOS WA IEUNG +0x9C6B 0xC40A #HANGUL SYLLABLE SSANGSIOS WA CIEUC +0x9C6C 0xC40B #HANGUL SYLLABLE SSANGSIOS WA CHIEUCH +0x9C6D 0xC40C #HANGUL SYLLABLE SSANGSIOS WA KHIEUKH +0x9C6E 0xC40D #HANGUL SYLLABLE SSANGSIOS WA THIEUTH +0x9C6F 0xC40E #HANGUL SYLLABLE SSANGSIOS WA PHIEUPH +0x9C70 0xC40F #HANGUL SYLLABLE SSANGSIOS WA HIEUH +0x9C71 0xC411 #HANGUL SYLLABLE SSANGSIOS WAE KIYEOK +0x9C72 0xC412 #HANGUL SYLLABLE SSANGSIOS WAE SSANGKIYEOK +0x9C73 0xC413 #HANGUL SYLLABLE SSANGSIOS WAE KIYEOKSIOS +0x9C74 0xC414 #HANGUL SYLLABLE SSANGSIOS WAE NIEUN +0x9C75 0xC415 #HANGUL SYLLABLE SSANGSIOS WAE NIEUNCIEUC +0x9C76 0xC416 #HANGUL SYLLABLE SSANGSIOS WAE NIEUNHIEUH +0x9C77 0xC417 #HANGUL SYLLABLE SSANGSIOS WAE TIKEUT +0x9C78 0xC418 #HANGUL SYLLABLE SSANGSIOS WAE RIEUL +0x9C79 0xC419 #HANGUL SYLLABLE SSANGSIOS WAE RIEULKIYEOK +0x9C7A 0xC41A #HANGUL SYLLABLE SSANGSIOS WAE RIEULMIEUM +0x9C81 0xC41B #HANGUL SYLLABLE SSANGSIOS WAE RIEULPIEUP +0x9C82 0xC41C #HANGUL SYLLABLE SSANGSIOS WAE RIEULSIOS +0x9C83 0xC41D #HANGUL SYLLABLE SSANGSIOS WAE RIEULTHIEUTH +0x9C84 0xC41E #HANGUL SYLLABLE SSANGSIOS WAE RIEULPHIEUPH +0x9C85 0xC41F #HANGUL SYLLABLE SSANGSIOS WAE RIEULHIEUH +0x9C86 0xC420 #HANGUL SYLLABLE SSANGSIOS WAE MIEUM +0x9C87 0xC421 #HANGUL SYLLABLE SSANGSIOS WAE PIEUP +0x9C88 0xC422 #HANGUL SYLLABLE SSANGSIOS WAE PIEUPSIOS +0x9C89 0xC423 #HANGUL SYLLABLE SSANGSIOS WAE SIOS +0x9C8A 0xC425 #HANGUL SYLLABLE SSANGSIOS WAE IEUNG +0x9C8B 0xC426 #HANGUL SYLLABLE SSANGSIOS WAE CIEUC +0x9C8C 0xC427 #HANGUL SYLLABLE SSANGSIOS WAE CHIEUCH +0x9C8D 0xC428 #HANGUL SYLLABLE SSANGSIOS WAE KHIEUKH +0x9C8E 0xC429 #HANGUL SYLLABLE SSANGSIOS WAE THIEUTH +0x9C8F 0xC42A #HANGUL SYLLABLE SSANGSIOS WAE PHIEUPH +0x9C90 0xC42B #HANGUL SYLLABLE SSANGSIOS WAE HIEUH +0x9C91 0xC42D #HANGUL SYLLABLE SSANGSIOS OE KIYEOK +0x9C92 0xC42E #HANGUL SYLLABLE SSANGSIOS OE SSANGKIYEOK +0x9C93 0xC42F #HANGUL SYLLABLE SSANGSIOS OE KIYEOKSIOS +0x9C94 0xC431 #HANGUL SYLLABLE SSANGSIOS OE NIEUNCIEUC +0x9C95 0xC432 #HANGUL SYLLABLE SSANGSIOS OE NIEUNHIEUH +0x9C96 0xC433 #HANGUL SYLLABLE SSANGSIOS OE TIKEUT +0x9C97 0xC435 #HANGUL SYLLABLE SSANGSIOS OE RIEULKIYEOK +0x9C98 0xC436 #HANGUL SYLLABLE SSANGSIOS OE RIEULMIEUM +0x9C99 0xC437 #HANGUL SYLLABLE SSANGSIOS OE RIEULPIEUP +0x9C9A 0xC438 #HANGUL SYLLABLE SSANGSIOS OE RIEULSIOS +0x9C9B 0xC439 #HANGUL SYLLABLE SSANGSIOS OE RIEULTHIEUTH +0x9C9C 0xC43A #HANGUL SYLLABLE SSANGSIOS OE RIEULPHIEUPH +0x9C9D 0xC43B #HANGUL SYLLABLE SSANGSIOS OE RIEULHIEUH +0x9C9E 0xC43E #HANGUL SYLLABLE SSANGSIOS OE PIEUPSIOS +0x9C9F 0xC43F #HANGUL SYLLABLE SSANGSIOS OE SIOS +0x9CA0 0xC440 #HANGUL SYLLABLE SSANGSIOS OE SSANGSIOS +0x9CA1 0xC441 #HANGUL SYLLABLE SSANGSIOS OE IEUNG +0x9CA2 0xC442 #HANGUL SYLLABLE SSANGSIOS OE CIEUC +0x9CA3 0xC443 #HANGUL SYLLABLE SSANGSIOS OE CHIEUCH +0x9CA4 0xC444 #HANGUL SYLLABLE SSANGSIOS OE KHIEUKH +0x9CA5 0xC445 #HANGUL SYLLABLE SSANGSIOS OE THIEUTH +0x9CA6 0xC446 #HANGUL SYLLABLE SSANGSIOS OE PHIEUPH +0x9CA7 0xC447 #HANGUL SYLLABLE SSANGSIOS OE HIEUH +0x9CA8 0xC449 #HANGUL SYLLABLE SSANGSIOS YO KIYEOK +0x9CA9 0xC44A #HANGUL SYLLABLE SSANGSIOS YO SSANGKIYEOK +0x9CAA 0xC44B #HANGUL SYLLABLE SSANGSIOS YO KIYEOKSIOS +0x9CAB 0xC44C #HANGUL SYLLABLE SSANGSIOS YO NIEUN +0x9CAC 0xC44D #HANGUL SYLLABLE SSANGSIOS YO NIEUNCIEUC +0x9CAD 0xC44E #HANGUL SYLLABLE SSANGSIOS YO NIEUNHIEUH +0x9CAE 0xC44F #HANGUL SYLLABLE SSANGSIOS YO TIKEUT +0x9CAF 0xC450 #HANGUL SYLLABLE SSANGSIOS YO RIEUL +0x9CB0 0xC451 #HANGUL SYLLABLE SSANGSIOS YO RIEULKIYEOK +0x9CB1 0xC452 #HANGUL SYLLABLE SSANGSIOS YO RIEULMIEUM +0x9CB2 0xC453 #HANGUL SYLLABLE SSANGSIOS YO RIEULPIEUP +0x9CB3 0xC454 #HANGUL SYLLABLE SSANGSIOS YO RIEULSIOS +0x9CB4 0xC455 #HANGUL SYLLABLE SSANGSIOS YO RIEULTHIEUTH +0x9CB5 0xC456 #HANGUL SYLLABLE SSANGSIOS YO RIEULPHIEUPH +0x9CB6 0xC457 #HANGUL SYLLABLE SSANGSIOS YO RIEULHIEUH +0x9CB7 0xC458 #HANGUL SYLLABLE SSANGSIOS YO MIEUM +0x9CB8 0xC459 #HANGUL SYLLABLE SSANGSIOS YO PIEUP +0x9CB9 0xC45A #HANGUL SYLLABLE SSANGSIOS YO PIEUPSIOS +0x9CBA 0xC45B #HANGUL SYLLABLE SSANGSIOS YO SIOS +0x9CBB 0xC45C #HANGUL SYLLABLE SSANGSIOS YO SSANGSIOS +0x9CBC 0xC45D #HANGUL SYLLABLE SSANGSIOS YO IEUNG +0x9CBD 0xC45E #HANGUL SYLLABLE SSANGSIOS YO CIEUC +0x9CBE 0xC45F #HANGUL SYLLABLE SSANGSIOS YO CHIEUCH +0x9CBF 0xC460 #HANGUL SYLLABLE SSANGSIOS YO KHIEUKH +0x9CC0 0xC461 #HANGUL SYLLABLE SSANGSIOS YO THIEUTH +0x9CC1 0xC462 #HANGUL SYLLABLE SSANGSIOS YO PHIEUPH +0x9CC2 0xC463 #HANGUL SYLLABLE SSANGSIOS YO HIEUH +0x9CC3 0xC466 #HANGUL SYLLABLE SSANGSIOS U SSANGKIYEOK +0x9CC4 0xC467 #HANGUL SYLLABLE SSANGSIOS U KIYEOKSIOS +0x9CC5 0xC469 #HANGUL SYLLABLE SSANGSIOS U NIEUNCIEUC +0x9CC6 0xC46A #HANGUL SYLLABLE SSANGSIOS U NIEUNHIEUH +0x9CC7 0xC46B #HANGUL SYLLABLE SSANGSIOS U TIKEUT +0x9CC8 0xC46D #HANGUL SYLLABLE SSANGSIOS U RIEULKIYEOK +0x9CC9 0xC46E #HANGUL SYLLABLE SSANGSIOS U RIEULMIEUM +0x9CCA 0xC46F #HANGUL SYLLABLE SSANGSIOS U RIEULPIEUP +0x9CCB 0xC470 #HANGUL SYLLABLE SSANGSIOS U RIEULSIOS +0x9CCC 0xC471 #HANGUL SYLLABLE SSANGSIOS U RIEULTHIEUTH +0x9CCD 0xC472 #HANGUL SYLLABLE SSANGSIOS U RIEULPHIEUPH +0x9CCE 0xC473 #HANGUL SYLLABLE SSANGSIOS U RIEULHIEUH +0x9CCF 0xC476 #HANGUL SYLLABLE SSANGSIOS U PIEUPSIOS +0x9CD0 0xC477 #HANGUL SYLLABLE SSANGSIOS U SIOS +0x9CD1 0xC478 #HANGUL SYLLABLE SSANGSIOS U SSANGSIOS +0x9CD2 0xC47A #HANGUL SYLLABLE SSANGSIOS U CIEUC +0x9CD3 0xC47B #HANGUL SYLLABLE SSANGSIOS U CHIEUCH +0x9CD4 0xC47C #HANGUL SYLLABLE SSANGSIOS U KHIEUKH +0x9CD5 0xC47D #HANGUL SYLLABLE SSANGSIOS U THIEUTH +0x9CD6 0xC47E #HANGUL SYLLABLE SSANGSIOS U PHIEUPH +0x9CD7 0xC47F #HANGUL SYLLABLE SSANGSIOS U HIEUH +0x9CD8 0xC481 #HANGUL SYLLABLE SSANGSIOS WEO KIYEOK +0x9CD9 0xC482 #HANGUL SYLLABLE SSANGSIOS WEO SSANGKIYEOK +0x9CDA 0xC483 #HANGUL SYLLABLE SSANGSIOS WEO KIYEOKSIOS +0x9CDB 0xC484 #HANGUL SYLLABLE SSANGSIOS WEO NIEUN +0x9CDC 0xC485 #HANGUL SYLLABLE SSANGSIOS WEO NIEUNCIEUC +0x9CDD 0xC486 #HANGUL SYLLABLE SSANGSIOS WEO NIEUNHIEUH +0x9CDE 0xC487 #HANGUL SYLLABLE SSANGSIOS WEO TIKEUT +0x9CDF 0xC488 #HANGUL SYLLABLE SSANGSIOS WEO RIEUL +0x9CE0 0xC489 #HANGUL SYLLABLE SSANGSIOS WEO RIEULKIYEOK +0x9CE1 0xC48A #HANGUL SYLLABLE SSANGSIOS WEO RIEULMIEUM +0x9CE2 0xC48B #HANGUL SYLLABLE SSANGSIOS WEO RIEULPIEUP +0x9CE3 0xC48C #HANGUL SYLLABLE SSANGSIOS WEO RIEULSIOS +0x9CE4 0xC48D #HANGUL SYLLABLE SSANGSIOS WEO RIEULTHIEUTH +0x9CE5 0xC48E #HANGUL SYLLABLE SSANGSIOS WEO RIEULPHIEUPH +0x9CE6 0xC48F #HANGUL SYLLABLE SSANGSIOS WEO RIEULHIEUH +0x9CE7 0xC490 #HANGUL SYLLABLE SSANGSIOS WEO MIEUM +0x9CE8 0xC491 #HANGUL SYLLABLE SSANGSIOS WEO PIEUP +0x9CE9 0xC492 #HANGUL SYLLABLE SSANGSIOS WEO PIEUPSIOS +0x9CEA 0xC493 #HANGUL SYLLABLE SSANGSIOS WEO SIOS +0x9CEB 0xC495 #HANGUL SYLLABLE SSANGSIOS WEO IEUNG +0x9CEC 0xC496 #HANGUL SYLLABLE SSANGSIOS WEO CIEUC +0x9CED 0xC497 #HANGUL SYLLABLE SSANGSIOS WEO CHIEUCH +0x9CEE 0xC498 #HANGUL SYLLABLE SSANGSIOS WEO KHIEUKH +0x9CEF 0xC499 #HANGUL SYLLABLE SSANGSIOS WEO THIEUTH +0x9CF0 0xC49A #HANGUL SYLLABLE SSANGSIOS WEO PHIEUPH +0x9CF1 0xC49B #HANGUL SYLLABLE SSANGSIOS WEO HIEUH +0x9CF2 0xC49D #HANGUL SYLLABLE SSANGSIOS WE KIYEOK +0x9CF3 0xC49E #HANGUL SYLLABLE SSANGSIOS WE SSANGKIYEOK +0x9CF4 0xC49F #HANGUL SYLLABLE SSANGSIOS WE KIYEOKSIOS +0x9CF5 0xC4A0 #HANGUL SYLLABLE SSANGSIOS WE NIEUN +0x9CF6 0xC4A1 #HANGUL SYLLABLE SSANGSIOS WE NIEUNCIEUC +0x9CF7 0xC4A2 #HANGUL SYLLABLE SSANGSIOS WE NIEUNHIEUH +0x9CF8 0xC4A3 #HANGUL SYLLABLE SSANGSIOS WE TIKEUT +0x9CF9 0xC4A4 #HANGUL SYLLABLE SSANGSIOS WE RIEUL +0x9CFA 0xC4A5 #HANGUL SYLLABLE SSANGSIOS WE RIEULKIYEOK +0x9CFB 0xC4A6 #HANGUL SYLLABLE SSANGSIOS WE RIEULMIEUM +0x9CFC 0xC4A7 #HANGUL SYLLABLE SSANGSIOS WE RIEULPIEUP +0x9CFD 0xC4A8 #HANGUL SYLLABLE SSANGSIOS WE RIEULSIOS +0x9CFE 0xC4A9 #HANGUL SYLLABLE SSANGSIOS WE RIEULTHIEUTH +0x9D41 0xC4AA #HANGUL SYLLABLE SSANGSIOS WE RIEULPHIEUPH +0x9D42 0xC4AB #HANGUL SYLLABLE SSANGSIOS WE RIEULHIEUH +0x9D43 0xC4AC #HANGUL SYLLABLE SSANGSIOS WE MIEUM +0x9D44 0xC4AD #HANGUL SYLLABLE SSANGSIOS WE PIEUP +0x9D45 0xC4AE #HANGUL SYLLABLE SSANGSIOS WE PIEUPSIOS +0x9D46 0xC4AF #HANGUL SYLLABLE SSANGSIOS WE SIOS +0x9D47 0xC4B0 #HANGUL SYLLABLE SSANGSIOS WE SSANGSIOS +0x9D48 0xC4B1 #HANGUL SYLLABLE SSANGSIOS WE IEUNG +0x9D49 0xC4B2 #HANGUL SYLLABLE SSANGSIOS WE CIEUC +0x9D4A 0xC4B3 #HANGUL SYLLABLE SSANGSIOS WE CHIEUCH +0x9D4B 0xC4B4 #HANGUL SYLLABLE SSANGSIOS WE KHIEUKH +0x9D4C 0xC4B5 #HANGUL SYLLABLE SSANGSIOS WE THIEUTH +0x9D4D 0xC4B6 #HANGUL SYLLABLE SSANGSIOS WE PHIEUPH +0x9D4E 0xC4B7 #HANGUL SYLLABLE SSANGSIOS WE HIEUH +0x9D4F 0xC4B9 #HANGUL SYLLABLE SSANGSIOS WI KIYEOK +0x9D50 0xC4BA #HANGUL SYLLABLE SSANGSIOS WI SSANGKIYEOK +0x9D51 0xC4BB #HANGUL SYLLABLE SSANGSIOS WI KIYEOKSIOS +0x9D52 0xC4BD #HANGUL SYLLABLE SSANGSIOS WI NIEUNCIEUC +0x9D53 0xC4BE #HANGUL SYLLABLE SSANGSIOS WI NIEUNHIEUH +0x9D54 0xC4BF #HANGUL SYLLABLE SSANGSIOS WI TIKEUT +0x9D55 0xC4C0 #HANGUL SYLLABLE SSANGSIOS WI RIEUL +0x9D56 0xC4C1 #HANGUL SYLLABLE SSANGSIOS WI RIEULKIYEOK +0x9D57 0xC4C2 #HANGUL SYLLABLE SSANGSIOS WI RIEULMIEUM +0x9D58 0xC4C3 #HANGUL SYLLABLE SSANGSIOS WI RIEULPIEUP +0x9D59 0xC4C4 #HANGUL SYLLABLE SSANGSIOS WI RIEULSIOS +0x9D5A 0xC4C5 #HANGUL SYLLABLE SSANGSIOS WI RIEULTHIEUTH +0x9D61 0xC4C6 #HANGUL SYLLABLE SSANGSIOS WI RIEULPHIEUPH +0x9D62 0xC4C7 #HANGUL SYLLABLE SSANGSIOS WI RIEULHIEUH +0x9D63 0xC4C8 #HANGUL SYLLABLE SSANGSIOS WI MIEUM +0x9D64 0xC4C9 #HANGUL SYLLABLE SSANGSIOS WI PIEUP +0x9D65 0xC4CA #HANGUL SYLLABLE SSANGSIOS WI PIEUPSIOS +0x9D66 0xC4CB #HANGUL SYLLABLE SSANGSIOS WI SIOS +0x9D67 0xC4CC #HANGUL SYLLABLE SSANGSIOS WI SSANGSIOS +0x9D68 0xC4CD #HANGUL SYLLABLE SSANGSIOS WI IEUNG +0x9D69 0xC4CE #HANGUL SYLLABLE SSANGSIOS WI CIEUC +0x9D6A 0xC4CF #HANGUL SYLLABLE SSANGSIOS WI CHIEUCH +0x9D6B 0xC4D0 #HANGUL SYLLABLE SSANGSIOS WI KHIEUKH +0x9D6C 0xC4D1 #HANGUL SYLLABLE SSANGSIOS WI THIEUTH +0x9D6D 0xC4D2 #HANGUL SYLLABLE SSANGSIOS WI PHIEUPH +0x9D6E 0xC4D3 #HANGUL SYLLABLE SSANGSIOS WI HIEUH +0x9D6F 0xC4D4 #HANGUL SYLLABLE SSANGSIOS YU +0x9D70 0xC4D5 #HANGUL SYLLABLE SSANGSIOS YU KIYEOK +0x9D71 0xC4D6 #HANGUL SYLLABLE SSANGSIOS YU SSANGKIYEOK +0x9D72 0xC4D7 #HANGUL SYLLABLE SSANGSIOS YU KIYEOKSIOS +0x9D73 0xC4D8 #HANGUL SYLLABLE SSANGSIOS YU NIEUN +0x9D74 0xC4D9 #HANGUL SYLLABLE SSANGSIOS YU NIEUNCIEUC +0x9D75 0xC4DA #HANGUL SYLLABLE SSANGSIOS YU NIEUNHIEUH +0x9D76 0xC4DB #HANGUL SYLLABLE SSANGSIOS YU TIKEUT +0x9D77 0xC4DC #HANGUL SYLLABLE SSANGSIOS YU RIEUL +0x9D78 0xC4DD #HANGUL SYLLABLE SSANGSIOS YU RIEULKIYEOK +0x9D79 0xC4DE #HANGUL SYLLABLE SSANGSIOS YU RIEULMIEUM +0x9D7A 0xC4DF #HANGUL SYLLABLE SSANGSIOS YU RIEULPIEUP +0x9D81 0xC4E0 #HANGUL SYLLABLE SSANGSIOS YU RIEULSIOS +0x9D82 0xC4E1 #HANGUL SYLLABLE SSANGSIOS YU RIEULTHIEUTH +0x9D83 0xC4E2 #HANGUL SYLLABLE SSANGSIOS YU RIEULPHIEUPH +0x9D84 0xC4E3 #HANGUL SYLLABLE SSANGSIOS YU RIEULHIEUH +0x9D85 0xC4E4 #HANGUL SYLLABLE SSANGSIOS YU MIEUM +0x9D86 0xC4E5 #HANGUL SYLLABLE SSANGSIOS YU PIEUP +0x9D87 0xC4E6 #HANGUL SYLLABLE SSANGSIOS YU PIEUPSIOS +0x9D88 0xC4E7 #HANGUL SYLLABLE SSANGSIOS YU SIOS +0x9D89 0xC4E8 #HANGUL SYLLABLE SSANGSIOS YU SSANGSIOS +0x9D8A 0xC4EA #HANGUL SYLLABLE SSANGSIOS YU CIEUC +0x9D8B 0xC4EB #HANGUL SYLLABLE SSANGSIOS YU CHIEUCH +0x9D8C 0xC4EC #HANGUL SYLLABLE SSANGSIOS YU KHIEUKH +0x9D8D 0xC4ED #HANGUL SYLLABLE SSANGSIOS YU THIEUTH +0x9D8E 0xC4EE #HANGUL SYLLABLE SSANGSIOS YU PHIEUPH +0x9D8F 0xC4EF #HANGUL SYLLABLE SSANGSIOS YU HIEUH +0x9D90 0xC4F2 #HANGUL SYLLABLE SSANGSIOS EU SSANGKIYEOK +0x9D91 0xC4F3 #HANGUL SYLLABLE SSANGSIOS EU KIYEOKSIOS +0x9D92 0xC4F5 #HANGUL SYLLABLE SSANGSIOS EU NIEUNCIEUC +0x9D93 0xC4F6 #HANGUL SYLLABLE SSANGSIOS EU NIEUNHIEUH +0x9D94 0xC4F7 #HANGUL SYLLABLE SSANGSIOS EU TIKEUT +0x9D95 0xC4F9 #HANGUL SYLLABLE SSANGSIOS EU RIEULKIYEOK +0x9D96 0xC4FB #HANGUL SYLLABLE SSANGSIOS EU RIEULPIEUP +0x9D97 0xC4FC #HANGUL SYLLABLE SSANGSIOS EU RIEULSIOS +0x9D98 0xC4FD #HANGUL SYLLABLE SSANGSIOS EU RIEULTHIEUTH +0x9D99 0xC4FE #HANGUL SYLLABLE SSANGSIOS EU RIEULPHIEUPH +0x9D9A 0xC502 #HANGUL SYLLABLE SSANGSIOS EU PIEUPSIOS +0x9D9B 0xC503 #HANGUL SYLLABLE SSANGSIOS EU SIOS +0x9D9C 0xC504 #HANGUL SYLLABLE SSANGSIOS EU SSANGSIOS +0x9D9D 0xC505 #HANGUL SYLLABLE SSANGSIOS EU IEUNG +0x9D9E 0xC506 #HANGUL SYLLABLE SSANGSIOS EU CIEUC +0x9D9F 0xC507 #HANGUL SYLLABLE SSANGSIOS EU CHIEUCH +0x9DA0 0xC508 #HANGUL SYLLABLE SSANGSIOS EU KHIEUKH +0x9DA1 0xC509 #HANGUL SYLLABLE SSANGSIOS EU THIEUTH +0x9DA2 0xC50A #HANGUL SYLLABLE SSANGSIOS EU PHIEUPH +0x9DA3 0xC50B #HANGUL SYLLABLE SSANGSIOS EU HIEUH +0x9DA4 0xC50D #HANGUL SYLLABLE SSANGSIOS YI KIYEOK +0x9DA5 0xC50E #HANGUL SYLLABLE SSANGSIOS YI SSANGKIYEOK +0x9DA6 0xC50F #HANGUL SYLLABLE SSANGSIOS YI KIYEOKSIOS +0x9DA7 0xC511 #HANGUL SYLLABLE SSANGSIOS YI NIEUNCIEUC +0x9DA8 0xC512 #HANGUL SYLLABLE SSANGSIOS YI NIEUNHIEUH +0x9DA9 0xC513 #HANGUL SYLLABLE SSANGSIOS YI TIKEUT +0x9DAA 0xC515 #HANGUL SYLLABLE SSANGSIOS YI RIEULKIYEOK +0x9DAB 0xC516 #HANGUL SYLLABLE SSANGSIOS YI RIEULMIEUM +0x9DAC 0xC517 #HANGUL SYLLABLE SSANGSIOS YI RIEULPIEUP +0x9DAD 0xC518 #HANGUL SYLLABLE SSANGSIOS YI RIEULSIOS +0x9DAE 0xC519 #HANGUL SYLLABLE SSANGSIOS YI RIEULTHIEUTH +0x9DAF 0xC51A #HANGUL SYLLABLE SSANGSIOS YI RIEULPHIEUPH +0x9DB0 0xC51B #HANGUL SYLLABLE SSANGSIOS YI RIEULHIEUH +0x9DB1 0xC51D #HANGUL SYLLABLE SSANGSIOS YI PIEUP +0x9DB2 0xC51E #HANGUL SYLLABLE SSANGSIOS YI PIEUPSIOS +0x9DB3 0xC51F #HANGUL SYLLABLE SSANGSIOS YI SIOS +0x9DB4 0xC520 #HANGUL SYLLABLE SSANGSIOS YI SSANGSIOS +0x9DB5 0xC521 #HANGUL SYLLABLE SSANGSIOS YI IEUNG +0x9DB6 0xC522 #HANGUL SYLLABLE SSANGSIOS YI CIEUC +0x9DB7 0xC523 #HANGUL SYLLABLE SSANGSIOS YI CHIEUCH +0x9DB8 0xC524 #HANGUL SYLLABLE SSANGSIOS YI KHIEUKH +0x9DB9 0xC525 #HANGUL SYLLABLE SSANGSIOS YI THIEUTH +0x9DBA 0xC526 #HANGUL SYLLABLE SSANGSIOS YI PHIEUPH +0x9DBB 0xC527 #HANGUL SYLLABLE SSANGSIOS YI HIEUH +0x9DBC 0xC52A #HANGUL SYLLABLE SSANGSIOS I SSANGKIYEOK +0x9DBD 0xC52B #HANGUL SYLLABLE SSANGSIOS I KIYEOKSIOS +0x9DBE 0xC52D #HANGUL SYLLABLE SSANGSIOS I NIEUNCIEUC +0x9DBF 0xC52E #HANGUL SYLLABLE SSANGSIOS I NIEUNHIEUH +0x9DC0 0xC52F #HANGUL SYLLABLE SSANGSIOS I TIKEUT +0x9DC1 0xC531 #HANGUL SYLLABLE SSANGSIOS I RIEULKIYEOK +0x9DC2 0xC532 #HANGUL SYLLABLE SSANGSIOS I RIEULMIEUM +0x9DC3 0xC533 #HANGUL SYLLABLE SSANGSIOS I RIEULPIEUP +0x9DC4 0xC534 #HANGUL SYLLABLE SSANGSIOS I RIEULSIOS +0x9DC5 0xC535 #HANGUL SYLLABLE SSANGSIOS I RIEULTHIEUTH +0x9DC6 0xC536 #HANGUL SYLLABLE SSANGSIOS I RIEULPHIEUPH +0x9DC7 0xC537 #HANGUL SYLLABLE SSANGSIOS I RIEULHIEUH +0x9DC8 0xC53A #HANGUL SYLLABLE SSANGSIOS I PIEUPSIOS +0x9DC9 0xC53C #HANGUL SYLLABLE SSANGSIOS I SSANGSIOS +0x9DCA 0xC53E #HANGUL SYLLABLE SSANGSIOS I CIEUC +0x9DCB 0xC53F #HANGUL SYLLABLE SSANGSIOS I CHIEUCH +0x9DCC 0xC540 #HANGUL SYLLABLE SSANGSIOS I KHIEUKH +0x9DCD 0xC541 #HANGUL SYLLABLE SSANGSIOS I THIEUTH +0x9DCE 0xC542 #HANGUL SYLLABLE SSANGSIOS I PHIEUPH +0x9DCF 0xC543 #HANGUL SYLLABLE SSANGSIOS I HIEUH +0x9DD0 0xC546 #HANGUL SYLLABLE IEUNG A SSANGKIYEOK +0x9DD1 0xC547 #HANGUL SYLLABLE IEUNG A KIYEOKSIOS +0x9DD2 0xC54B #HANGUL SYLLABLE IEUNG A TIKEUT +0x9DD3 0xC54F #HANGUL SYLLABLE IEUNG A RIEULPIEUP +0x9DD4 0xC550 #HANGUL SYLLABLE IEUNG A RIEULSIOS +0x9DD5 0xC551 #HANGUL SYLLABLE IEUNG A RIEULTHIEUTH +0x9DD6 0xC552 #HANGUL SYLLABLE IEUNG A RIEULPHIEUPH +0x9DD7 0xC556 #HANGUL SYLLABLE IEUNG A PIEUPSIOS +0x9DD8 0xC55A #HANGUL SYLLABLE IEUNG A CIEUC +0x9DD9 0xC55B #HANGUL SYLLABLE IEUNG A CHIEUCH +0x9DDA 0xC55C #HANGUL SYLLABLE IEUNG A KHIEUKH +0x9DDB 0xC55F #HANGUL SYLLABLE IEUNG A HIEUH +0x9DDC 0xC562 #HANGUL SYLLABLE IEUNG AE SSANGKIYEOK +0x9DDD 0xC563 #HANGUL SYLLABLE IEUNG AE KIYEOKSIOS +0x9DDE 0xC565 #HANGUL SYLLABLE IEUNG AE NIEUNCIEUC +0x9DDF 0xC566 #HANGUL SYLLABLE IEUNG AE NIEUNHIEUH +0x9DE0 0xC567 #HANGUL SYLLABLE IEUNG AE TIKEUT +0x9DE1 0xC569 #HANGUL SYLLABLE IEUNG AE RIEULKIYEOK +0x9DE2 0xC56A #HANGUL SYLLABLE IEUNG AE RIEULMIEUM +0x9DE3 0xC56B #HANGUL SYLLABLE IEUNG AE RIEULPIEUP +0x9DE4 0xC56C #HANGUL SYLLABLE IEUNG AE RIEULSIOS +0x9DE5 0xC56D #HANGUL SYLLABLE IEUNG AE RIEULTHIEUTH +0x9DE6 0xC56E #HANGUL SYLLABLE IEUNG AE RIEULPHIEUPH +0x9DE7 0xC56F #HANGUL SYLLABLE IEUNG AE RIEULHIEUH +0x9DE8 0xC572 #HANGUL SYLLABLE IEUNG AE PIEUPSIOS +0x9DE9 0xC576 #HANGUL SYLLABLE IEUNG AE CIEUC +0x9DEA 0xC577 #HANGUL SYLLABLE IEUNG AE CHIEUCH +0x9DEB 0xC578 #HANGUL SYLLABLE IEUNG AE KHIEUKH +0x9DEC 0xC579 #HANGUL SYLLABLE IEUNG AE THIEUTH +0x9DED 0xC57A #HANGUL SYLLABLE IEUNG AE PHIEUPH +0x9DEE 0xC57B #HANGUL SYLLABLE IEUNG AE HIEUH +0x9DEF 0xC57E #HANGUL SYLLABLE IEUNG YA SSANGKIYEOK +0x9DF0 0xC57F #HANGUL SYLLABLE IEUNG YA KIYEOKSIOS +0x9DF1 0xC581 #HANGUL SYLLABLE IEUNG YA NIEUNCIEUC +0x9DF2 0xC582 #HANGUL SYLLABLE IEUNG YA NIEUNHIEUH +0x9DF3 0xC583 #HANGUL SYLLABLE IEUNG YA TIKEUT +0x9DF4 0xC585 #HANGUL SYLLABLE IEUNG YA RIEULKIYEOK +0x9DF5 0xC586 #HANGUL SYLLABLE IEUNG YA RIEULMIEUM +0x9DF6 0xC588 #HANGUL SYLLABLE IEUNG YA RIEULSIOS +0x9DF7 0xC589 #HANGUL SYLLABLE IEUNG YA RIEULTHIEUTH +0x9DF8 0xC58A #HANGUL SYLLABLE IEUNG YA RIEULPHIEUPH +0x9DF9 0xC58B #HANGUL SYLLABLE IEUNG YA RIEULHIEUH +0x9DFA 0xC58E #HANGUL SYLLABLE IEUNG YA PIEUPSIOS +0x9DFB 0xC590 #HANGUL SYLLABLE IEUNG YA SSANGSIOS +0x9DFC 0xC592 #HANGUL SYLLABLE IEUNG YA CIEUC +0x9DFD 0xC593 #HANGUL SYLLABLE IEUNG YA CHIEUCH +0x9DFE 0xC594 #HANGUL SYLLABLE IEUNG YA KHIEUKH +0x9E41 0xC596 #HANGUL SYLLABLE IEUNG YA PHIEUPH +0x9E42 0xC599 #HANGUL SYLLABLE IEUNG YAE KIYEOK +0x9E43 0xC59A #HANGUL SYLLABLE IEUNG YAE SSANGKIYEOK +0x9E44 0xC59B #HANGUL SYLLABLE IEUNG YAE KIYEOKSIOS +0x9E45 0xC59D #HANGUL SYLLABLE IEUNG YAE NIEUNCIEUC +0x9E46 0xC59E #HANGUL SYLLABLE IEUNG YAE NIEUNHIEUH +0x9E47 0xC59F #HANGUL SYLLABLE IEUNG YAE TIKEUT +0x9E48 0xC5A1 #HANGUL SYLLABLE IEUNG YAE RIEULKIYEOK +0x9E49 0xC5A2 #HANGUL SYLLABLE IEUNG YAE RIEULMIEUM +0x9E4A 0xC5A3 #HANGUL SYLLABLE IEUNG YAE RIEULPIEUP +0x9E4B 0xC5A4 #HANGUL SYLLABLE IEUNG YAE RIEULSIOS +0x9E4C 0xC5A5 #HANGUL SYLLABLE IEUNG YAE RIEULTHIEUTH +0x9E4D 0xC5A6 #HANGUL SYLLABLE IEUNG YAE RIEULPHIEUPH +0x9E4E 0xC5A7 #HANGUL SYLLABLE IEUNG YAE RIEULHIEUH +0x9E4F 0xC5A8 #HANGUL SYLLABLE IEUNG YAE MIEUM +0x9E50 0xC5AA #HANGUL SYLLABLE IEUNG YAE PIEUPSIOS +0x9E51 0xC5AB #HANGUL SYLLABLE IEUNG YAE SIOS +0x9E52 0xC5AC #HANGUL SYLLABLE IEUNG YAE SSANGSIOS +0x9E53 0xC5AD #HANGUL SYLLABLE IEUNG YAE IEUNG +0x9E54 0xC5AE #HANGUL SYLLABLE IEUNG YAE CIEUC +0x9E55 0xC5AF #HANGUL SYLLABLE IEUNG YAE CHIEUCH +0x9E56 0xC5B0 #HANGUL SYLLABLE IEUNG YAE KHIEUKH +0x9E57 0xC5B1 #HANGUL SYLLABLE IEUNG YAE THIEUTH +0x9E58 0xC5B2 #HANGUL SYLLABLE IEUNG YAE PHIEUPH +0x9E59 0xC5B3 #HANGUL SYLLABLE IEUNG YAE HIEUH +0x9E5A 0xC5B6 #HANGUL SYLLABLE IEUNG EO SSANGKIYEOK +0x9E61 0xC5B7 #HANGUL SYLLABLE IEUNG EO KIYEOKSIOS +0x9E62 0xC5BA #HANGUL SYLLABLE IEUNG EO NIEUNHIEUH +0x9E63 0xC5BF #HANGUL SYLLABLE IEUNG EO RIEULPIEUP +0x9E64 0xC5C0 #HANGUL SYLLABLE IEUNG EO RIEULSIOS +0x9E65 0xC5C1 #HANGUL SYLLABLE IEUNG EO RIEULTHIEUTH +0x9E66 0xC5C2 #HANGUL SYLLABLE IEUNG EO RIEULPHIEUPH +0x9E67 0xC5C3 #HANGUL SYLLABLE IEUNG EO RIEULHIEUH +0x9E68 0xC5CB #HANGUL SYLLABLE IEUNG EO CHIEUCH +0x9E69 0xC5CD #HANGUL SYLLABLE IEUNG EO THIEUTH +0x9E6A 0xC5CF #HANGUL SYLLABLE IEUNG EO HIEUH +0x9E6B 0xC5D2 #HANGUL SYLLABLE IEUNG E SSANGKIYEOK +0x9E6C 0xC5D3 #HANGUL SYLLABLE IEUNG E KIYEOKSIOS +0x9E6D 0xC5D5 #HANGUL SYLLABLE IEUNG E NIEUNCIEUC +0x9E6E 0xC5D6 #HANGUL SYLLABLE IEUNG E NIEUNHIEUH +0x9E6F 0xC5D7 #HANGUL SYLLABLE IEUNG E TIKEUT +0x9E70 0xC5D9 #HANGUL SYLLABLE IEUNG E RIEULKIYEOK +0x9E71 0xC5DA #HANGUL SYLLABLE IEUNG E RIEULMIEUM +0x9E72 0xC5DB #HANGUL SYLLABLE IEUNG E RIEULPIEUP +0x9E73 0xC5DC #HANGUL SYLLABLE IEUNG E RIEULSIOS +0x9E74 0xC5DD #HANGUL SYLLABLE IEUNG E RIEULTHIEUTH +0x9E75 0xC5DE #HANGUL SYLLABLE IEUNG E RIEULPHIEUPH +0x9E76 0xC5DF #HANGUL SYLLABLE IEUNG E RIEULHIEUH +0x9E77 0xC5E2 #HANGUL SYLLABLE IEUNG E PIEUPSIOS +0x9E78 0xC5E4 #HANGUL SYLLABLE IEUNG E SSANGSIOS +0x9E79 0xC5E6 #HANGUL SYLLABLE IEUNG E CIEUC +0x9E7A 0xC5E7 #HANGUL SYLLABLE IEUNG E CHIEUCH +0x9E81 0xC5E8 #HANGUL SYLLABLE IEUNG E KHIEUKH +0x9E82 0xC5E9 #HANGUL SYLLABLE IEUNG E THIEUTH +0x9E83 0xC5EA #HANGUL SYLLABLE IEUNG E PHIEUPH +0x9E84 0xC5EB #HANGUL SYLLABLE IEUNG E HIEUH +0x9E85 0xC5EF #HANGUL SYLLABLE IEUNG YEO KIYEOKSIOS +0x9E86 0xC5F1 #HANGUL SYLLABLE IEUNG YEO NIEUNCIEUC +0x9E87 0xC5F2 #HANGUL SYLLABLE IEUNG YEO NIEUNHIEUH +0x9E88 0xC5F3 #HANGUL SYLLABLE IEUNG YEO TIKEUT +0x9E89 0xC5F5 #HANGUL SYLLABLE IEUNG YEO RIEULKIYEOK +0x9E8A 0xC5F8 #HANGUL SYLLABLE IEUNG YEO RIEULSIOS +0x9E8B 0xC5F9 #HANGUL SYLLABLE IEUNG YEO RIEULTHIEUTH +0x9E8C 0xC5FA #HANGUL SYLLABLE IEUNG YEO RIEULPHIEUPH +0x9E8D 0xC5FB #HANGUL SYLLABLE IEUNG YEO RIEULHIEUH +0x9E8E 0xC602 #HANGUL SYLLABLE IEUNG YEO CIEUC +0x9E8F 0xC603 #HANGUL SYLLABLE IEUNG YEO CHIEUCH +0x9E90 0xC604 #HANGUL SYLLABLE IEUNG YEO KHIEUKH +0x9E91 0xC609 #HANGUL SYLLABLE IEUNG YE KIYEOK +0x9E92 0xC60A #HANGUL SYLLABLE IEUNG YE SSANGKIYEOK +0x9E93 0xC60B #HANGUL SYLLABLE IEUNG YE KIYEOKSIOS +0x9E94 0xC60D #HANGUL SYLLABLE IEUNG YE NIEUNCIEUC +0x9E95 0xC60E #HANGUL SYLLABLE IEUNG YE NIEUNHIEUH +0x9E96 0xC60F #HANGUL SYLLABLE IEUNG YE TIKEUT +0x9E97 0xC611 #HANGUL SYLLABLE IEUNG YE RIEULKIYEOK +0x9E98 0xC612 #HANGUL SYLLABLE IEUNG YE RIEULMIEUM +0x9E99 0xC613 #HANGUL SYLLABLE IEUNG YE RIEULPIEUP +0x9E9A 0xC614 #HANGUL SYLLABLE IEUNG YE RIEULSIOS +0x9E9B 0xC615 #HANGUL SYLLABLE IEUNG YE RIEULTHIEUTH +0x9E9C 0xC616 #HANGUL SYLLABLE IEUNG YE RIEULPHIEUPH +0x9E9D 0xC617 #HANGUL SYLLABLE IEUNG YE RIEULHIEUH +0x9E9E 0xC61A #HANGUL SYLLABLE IEUNG YE PIEUPSIOS +0x9E9F 0xC61D #HANGUL SYLLABLE IEUNG YE IEUNG +0x9EA0 0xC61E #HANGUL SYLLABLE IEUNG YE CIEUC +0x9EA1 0xC61F #HANGUL SYLLABLE IEUNG YE CHIEUCH +0x9EA2 0xC620 #HANGUL SYLLABLE IEUNG YE KHIEUKH +0x9EA3 0xC621 #HANGUL SYLLABLE IEUNG YE THIEUTH +0x9EA4 0xC622 #HANGUL SYLLABLE IEUNG YE PHIEUPH +0x9EA5 0xC623 #HANGUL SYLLABLE IEUNG YE HIEUH +0x9EA6 0xC626 #HANGUL SYLLABLE IEUNG O SSANGKIYEOK +0x9EA7 0xC627 #HANGUL SYLLABLE IEUNG O KIYEOKSIOS +0x9EA8 0xC629 #HANGUL SYLLABLE IEUNG O NIEUNCIEUC +0x9EA9 0xC62A #HANGUL SYLLABLE IEUNG O NIEUNHIEUH +0x9EAA 0xC62B #HANGUL SYLLABLE IEUNG O TIKEUT +0x9EAB 0xC62F #HANGUL SYLLABLE IEUNG O RIEULPIEUP +0x9EAC 0xC631 #HANGUL SYLLABLE IEUNG O RIEULTHIEUTH +0x9EAD 0xC632 #HANGUL SYLLABLE IEUNG O RIEULPHIEUPH +0x9EAE 0xC636 #HANGUL SYLLABLE IEUNG O PIEUPSIOS +0x9EAF 0xC638 #HANGUL SYLLABLE IEUNG O SSANGSIOS +0x9EB0 0xC63A #HANGUL SYLLABLE IEUNG O CIEUC +0x9EB1 0xC63C #HANGUL SYLLABLE IEUNG O KHIEUKH +0x9EB2 0xC63D #HANGUL SYLLABLE IEUNG O THIEUTH +0x9EB3 0xC63E #HANGUL SYLLABLE IEUNG O PHIEUPH +0x9EB4 0xC63F #HANGUL SYLLABLE IEUNG O HIEUH +0x9EB5 0xC642 #HANGUL SYLLABLE IEUNG WA SSANGKIYEOK +0x9EB6 0xC643 #HANGUL SYLLABLE IEUNG WA KIYEOKSIOS +0x9EB7 0xC645 #HANGUL SYLLABLE IEUNG WA NIEUNCIEUC +0x9EB8 0xC646 #HANGUL SYLLABLE IEUNG WA NIEUNHIEUH +0x9EB9 0xC647 #HANGUL SYLLABLE IEUNG WA TIKEUT +0x9EBA 0xC649 #HANGUL SYLLABLE IEUNG WA RIEULKIYEOK +0x9EBB 0xC64A #HANGUL SYLLABLE IEUNG WA RIEULMIEUM +0x9EBC 0xC64B #HANGUL SYLLABLE IEUNG WA RIEULPIEUP +0x9EBD 0xC64C #HANGUL SYLLABLE IEUNG WA RIEULSIOS +0x9EBE 0xC64D #HANGUL SYLLABLE IEUNG WA RIEULTHIEUTH +0x9EBF 0xC64E #HANGUL SYLLABLE IEUNG WA RIEULPHIEUPH +0x9EC0 0xC64F #HANGUL SYLLABLE IEUNG WA RIEULHIEUH +0x9EC1 0xC652 #HANGUL SYLLABLE IEUNG WA PIEUPSIOS +0x9EC2 0xC656 #HANGUL SYLLABLE IEUNG WA CIEUC +0x9EC3 0xC657 #HANGUL SYLLABLE IEUNG WA CHIEUCH +0x9EC4 0xC658 #HANGUL SYLLABLE IEUNG WA KHIEUKH +0x9EC5 0xC659 #HANGUL SYLLABLE IEUNG WA THIEUTH +0x9EC6 0xC65A #HANGUL SYLLABLE IEUNG WA PHIEUPH +0x9EC7 0xC65B #HANGUL SYLLABLE IEUNG WA HIEUH +0x9EC8 0xC65E #HANGUL SYLLABLE IEUNG WAE SSANGKIYEOK +0x9EC9 0xC65F #HANGUL SYLLABLE IEUNG WAE KIYEOKSIOS +0x9ECA 0xC661 #HANGUL SYLLABLE IEUNG WAE NIEUNCIEUC +0x9ECB 0xC662 #HANGUL SYLLABLE IEUNG WAE NIEUNHIEUH +0x9ECC 0xC663 #HANGUL SYLLABLE IEUNG WAE TIKEUT +0x9ECD 0xC664 #HANGUL SYLLABLE IEUNG WAE RIEUL +0x9ECE 0xC665 #HANGUL SYLLABLE IEUNG WAE RIEULKIYEOK +0x9ECF 0xC666 #HANGUL SYLLABLE IEUNG WAE RIEULMIEUM +0x9ED0 0xC667 #HANGUL SYLLABLE IEUNG WAE RIEULPIEUP +0x9ED1 0xC668 #HANGUL SYLLABLE IEUNG WAE RIEULSIOS +0x9ED2 0xC669 #HANGUL SYLLABLE IEUNG WAE RIEULTHIEUTH +0x9ED3 0xC66A #HANGUL SYLLABLE IEUNG WAE RIEULPHIEUPH +0x9ED4 0xC66B #HANGUL SYLLABLE IEUNG WAE RIEULHIEUH +0x9ED5 0xC66D #HANGUL SYLLABLE IEUNG WAE PIEUP +0x9ED6 0xC66E #HANGUL SYLLABLE IEUNG WAE PIEUPSIOS +0x9ED7 0xC670 #HANGUL SYLLABLE IEUNG WAE SSANGSIOS +0x9ED8 0xC672 #HANGUL SYLLABLE IEUNG WAE CIEUC +0x9ED9 0xC673 #HANGUL SYLLABLE IEUNG WAE CHIEUCH +0x9EDA 0xC674 #HANGUL SYLLABLE IEUNG WAE KHIEUKH +0x9EDB 0xC675 #HANGUL SYLLABLE IEUNG WAE THIEUTH +0x9EDC 0xC676 #HANGUL SYLLABLE IEUNG WAE PHIEUPH +0x9EDD 0xC677 #HANGUL SYLLABLE IEUNG WAE HIEUH +0x9EDE 0xC67A #HANGUL SYLLABLE IEUNG OE SSANGKIYEOK +0x9EDF 0xC67B #HANGUL SYLLABLE IEUNG OE KIYEOKSIOS +0x9EE0 0xC67D #HANGUL SYLLABLE IEUNG OE NIEUNCIEUC +0x9EE1 0xC67E #HANGUL SYLLABLE IEUNG OE NIEUNHIEUH +0x9EE2 0xC67F #HANGUL SYLLABLE IEUNG OE TIKEUT +0x9EE3 0xC681 #HANGUL SYLLABLE IEUNG OE RIEULKIYEOK +0x9EE4 0xC682 #HANGUL SYLLABLE IEUNG OE RIEULMIEUM +0x9EE5 0xC683 #HANGUL SYLLABLE IEUNG OE RIEULPIEUP +0x9EE6 0xC684 #HANGUL SYLLABLE IEUNG OE RIEULSIOS +0x9EE7 0xC685 #HANGUL SYLLABLE IEUNG OE RIEULTHIEUTH +0x9EE8 0xC686 #HANGUL SYLLABLE IEUNG OE RIEULPHIEUPH +0x9EE9 0xC687 #HANGUL SYLLABLE IEUNG OE RIEULHIEUH +0x9EEA 0xC68A #HANGUL SYLLABLE IEUNG OE PIEUPSIOS +0x9EEB 0xC68C #HANGUL SYLLABLE IEUNG OE SSANGSIOS +0x9EEC 0xC68E #HANGUL SYLLABLE IEUNG OE CIEUC +0x9EED 0xC68F #HANGUL SYLLABLE IEUNG OE CHIEUCH +0x9EEE 0xC690 #HANGUL SYLLABLE IEUNG OE KHIEUKH +0x9EEF 0xC691 #HANGUL SYLLABLE IEUNG OE THIEUTH +0x9EF0 0xC692 #HANGUL SYLLABLE IEUNG OE PHIEUPH +0x9EF1 0xC693 #HANGUL SYLLABLE IEUNG OE HIEUH +0x9EF2 0xC696 #HANGUL SYLLABLE IEUNG YO SSANGKIYEOK +0x9EF3 0xC697 #HANGUL SYLLABLE IEUNG YO KIYEOKSIOS +0x9EF4 0xC699 #HANGUL SYLLABLE IEUNG YO NIEUNCIEUC +0x9EF5 0xC69A #HANGUL SYLLABLE IEUNG YO NIEUNHIEUH +0x9EF6 0xC69B #HANGUL SYLLABLE IEUNG YO TIKEUT +0x9EF7 0xC69D #HANGUL SYLLABLE IEUNG YO RIEULKIYEOK +0x9EF8 0xC69E #HANGUL SYLLABLE IEUNG YO RIEULMIEUM +0x9EF9 0xC69F #HANGUL SYLLABLE IEUNG YO RIEULPIEUP +0x9EFA 0xC6A0 #HANGUL SYLLABLE IEUNG YO RIEULSIOS +0x9EFB 0xC6A1 #HANGUL SYLLABLE IEUNG YO RIEULTHIEUTH +0x9EFC 0xC6A2 #HANGUL SYLLABLE IEUNG YO RIEULPHIEUPH +0x9EFD 0xC6A3 #HANGUL SYLLABLE IEUNG YO RIEULHIEUH +0x9EFE 0xC6A6 #HANGUL SYLLABLE IEUNG YO PIEUPSIOS +0x9F41 0xC6A8 #HANGUL SYLLABLE IEUNG YO SSANGSIOS +0x9F42 0xC6AA #HANGUL SYLLABLE IEUNG YO CIEUC +0x9F43 0xC6AB #HANGUL SYLLABLE IEUNG YO CHIEUCH +0x9F44 0xC6AC #HANGUL SYLLABLE IEUNG YO KHIEUKH +0x9F45 0xC6AD #HANGUL SYLLABLE IEUNG YO THIEUTH +0x9F46 0xC6AE #HANGUL SYLLABLE IEUNG YO PHIEUPH +0x9F47 0xC6AF #HANGUL SYLLABLE IEUNG YO HIEUH +0x9F48 0xC6B2 #HANGUL SYLLABLE IEUNG U SSANGKIYEOK +0x9F49 0xC6B3 #HANGUL SYLLABLE IEUNG U KIYEOKSIOS +0x9F4A 0xC6B5 #HANGUL SYLLABLE IEUNG U NIEUNCIEUC +0x9F4B 0xC6B6 #HANGUL SYLLABLE IEUNG U NIEUNHIEUH +0x9F4C 0xC6B7 #HANGUL SYLLABLE IEUNG U TIKEUT +0x9F4D 0xC6BB #HANGUL SYLLABLE IEUNG U RIEULPIEUP +0x9F4E 0xC6BC #HANGUL SYLLABLE IEUNG U RIEULSIOS +0x9F4F 0xC6BD #HANGUL SYLLABLE IEUNG U RIEULTHIEUTH +0x9F50 0xC6BE #HANGUL SYLLABLE IEUNG U RIEULPHIEUPH +0x9F51 0xC6BF #HANGUL SYLLABLE IEUNG U RIEULHIEUH +0x9F52 0xC6C2 #HANGUL SYLLABLE IEUNG U PIEUPSIOS +0x9F53 0xC6C4 #HANGUL SYLLABLE IEUNG U SSANGSIOS +0x9F54 0xC6C6 #HANGUL SYLLABLE IEUNG U CIEUC +0x9F55 0xC6C7 #HANGUL SYLLABLE IEUNG U CHIEUCH +0x9F56 0xC6C8 #HANGUL SYLLABLE IEUNG U KHIEUKH +0x9F57 0xC6C9 #HANGUL SYLLABLE IEUNG U THIEUTH +0x9F58 0xC6CA #HANGUL SYLLABLE IEUNG U PHIEUPH +0x9F59 0xC6CB #HANGUL SYLLABLE IEUNG U HIEUH +0x9F5A 0xC6CE #HANGUL SYLLABLE IEUNG WEO SSANGKIYEOK +0x9F61 0xC6CF #HANGUL SYLLABLE IEUNG WEO KIYEOKSIOS +0x9F62 0xC6D1 #HANGUL SYLLABLE IEUNG WEO NIEUNCIEUC +0x9F63 0xC6D2 #HANGUL SYLLABLE IEUNG WEO NIEUNHIEUH +0x9F64 0xC6D3 #HANGUL SYLLABLE IEUNG WEO TIKEUT +0x9F65 0xC6D5 #HANGUL SYLLABLE IEUNG WEO RIEULKIYEOK +0x9F66 0xC6D6 #HANGUL SYLLABLE IEUNG WEO RIEULMIEUM +0x9F67 0xC6D7 #HANGUL SYLLABLE IEUNG WEO RIEULPIEUP +0x9F68 0xC6D8 #HANGUL SYLLABLE IEUNG WEO RIEULSIOS +0x9F69 0xC6D9 #HANGUL SYLLABLE IEUNG WEO RIEULTHIEUTH +0x9F6A 0xC6DA #HANGUL SYLLABLE IEUNG WEO RIEULPHIEUPH +0x9F6B 0xC6DB #HANGUL SYLLABLE IEUNG WEO RIEULHIEUH +0x9F6C 0xC6DE #HANGUL SYLLABLE IEUNG WEO PIEUPSIOS +0x9F6D 0xC6DF #HANGUL SYLLABLE IEUNG WEO SIOS +0x9F6E 0xC6E2 #HANGUL SYLLABLE IEUNG WEO CIEUC +0x9F6F 0xC6E3 #HANGUL SYLLABLE IEUNG WEO CHIEUCH +0x9F70 0xC6E4 #HANGUL SYLLABLE IEUNG WEO KHIEUKH +0x9F71 0xC6E5 #HANGUL SYLLABLE IEUNG WEO THIEUTH +0x9F72 0xC6E6 #HANGUL SYLLABLE IEUNG WEO PHIEUPH +0x9F73 0xC6E7 #HANGUL SYLLABLE IEUNG WEO HIEUH +0x9F74 0xC6EA #HANGUL SYLLABLE IEUNG WE SSANGKIYEOK +0x9F75 0xC6EB #HANGUL SYLLABLE IEUNG WE KIYEOKSIOS +0x9F76 0xC6ED #HANGUL SYLLABLE IEUNG WE NIEUNCIEUC +0x9F77 0xC6EE #HANGUL SYLLABLE IEUNG WE NIEUNHIEUH +0x9F78 0xC6EF #HANGUL SYLLABLE IEUNG WE TIKEUT +0x9F79 0xC6F1 #HANGUL SYLLABLE IEUNG WE RIEULKIYEOK +0x9F7A 0xC6F2 #HANGUL SYLLABLE IEUNG WE RIEULMIEUM +0x9F81 0xC6F3 #HANGUL SYLLABLE IEUNG WE RIEULPIEUP +0x9F82 0xC6F4 #HANGUL SYLLABLE IEUNG WE RIEULSIOS +0x9F83 0xC6F5 #HANGUL SYLLABLE IEUNG WE RIEULTHIEUTH +0x9F84 0xC6F6 #HANGUL SYLLABLE IEUNG WE RIEULPHIEUPH +0x9F85 0xC6F7 #HANGUL SYLLABLE IEUNG WE RIEULHIEUH +0x9F86 0xC6FA #HANGUL SYLLABLE IEUNG WE PIEUPSIOS +0x9F87 0xC6FB #HANGUL SYLLABLE IEUNG WE SIOS +0x9F88 0xC6FC #HANGUL SYLLABLE IEUNG WE SSANGSIOS +0x9F89 0xC6FE #HANGUL SYLLABLE IEUNG WE CIEUC +0x9F8A 0xC6FF #HANGUL SYLLABLE IEUNG WE CHIEUCH +0x9F8B 0xC700 #HANGUL SYLLABLE IEUNG WE KHIEUKH +0x9F8C 0xC701 #HANGUL SYLLABLE IEUNG WE THIEUTH +0x9F8D 0xC702 #HANGUL SYLLABLE IEUNG WE PHIEUPH +0x9F8E 0xC703 #HANGUL SYLLABLE IEUNG WE HIEUH +0x9F8F 0xC706 #HANGUL SYLLABLE IEUNG WI SSANGKIYEOK +0x9F90 0xC707 #HANGUL SYLLABLE IEUNG WI KIYEOKSIOS +0x9F91 0xC709 #HANGUL SYLLABLE IEUNG WI NIEUNCIEUC +0x9F92 0xC70A #HANGUL SYLLABLE IEUNG WI NIEUNHIEUH +0x9F93 0xC70B #HANGUL SYLLABLE IEUNG WI TIKEUT +0x9F94 0xC70D #HANGUL SYLLABLE IEUNG WI RIEULKIYEOK +0x9F95 0xC70E #HANGUL SYLLABLE IEUNG WI RIEULMIEUM +0x9F96 0xC70F #HANGUL SYLLABLE IEUNG WI RIEULPIEUP +0x9F97 0xC710 #HANGUL SYLLABLE IEUNG WI RIEULSIOS +0x9F98 0xC711 #HANGUL SYLLABLE IEUNG WI RIEULTHIEUTH +0x9F99 0xC712 #HANGUL SYLLABLE IEUNG WI RIEULPHIEUPH +0x9F9A 0xC713 #HANGUL SYLLABLE IEUNG WI RIEULHIEUH +0x9F9B 0xC716 #HANGUL SYLLABLE IEUNG WI PIEUPSIOS +0x9F9C 0xC718 #HANGUL SYLLABLE IEUNG WI SSANGSIOS +0x9F9D 0xC71A #HANGUL SYLLABLE IEUNG WI CIEUC +0x9F9E 0xC71B #HANGUL SYLLABLE IEUNG WI CHIEUCH +0x9F9F 0xC71C #HANGUL SYLLABLE IEUNG WI KHIEUKH +0x9FA0 0xC71D #HANGUL SYLLABLE IEUNG WI THIEUTH +0x9FA1 0xC71E #HANGUL SYLLABLE IEUNG WI PHIEUPH +0x9FA2 0xC71F #HANGUL SYLLABLE IEUNG WI HIEUH +0x9FA3 0xC722 #HANGUL SYLLABLE IEUNG YU SSANGKIYEOK +0x9FA4 0xC723 #HANGUL SYLLABLE IEUNG YU KIYEOKSIOS +0x9FA5 0xC725 #HANGUL SYLLABLE IEUNG YU NIEUNCIEUC +0x9FA6 0xC726 #HANGUL SYLLABLE IEUNG YU NIEUNHIEUH +0x9FA7 0xC727 #HANGUL SYLLABLE IEUNG YU TIKEUT +0x9FA8 0xC729 #HANGUL SYLLABLE IEUNG YU RIEULKIYEOK +0x9FA9 0xC72A #HANGUL SYLLABLE IEUNG YU RIEULMIEUM +0x9FAA 0xC72B #HANGUL SYLLABLE IEUNG YU RIEULPIEUP +0x9FAB 0xC72C #HANGUL SYLLABLE IEUNG YU RIEULSIOS +0x9FAC 0xC72D #HANGUL SYLLABLE IEUNG YU RIEULTHIEUTH +0x9FAD 0xC72E #HANGUL SYLLABLE IEUNG YU RIEULPHIEUPH +0x9FAE 0xC72F #HANGUL SYLLABLE IEUNG YU RIEULHIEUH +0x9FAF 0xC732 #HANGUL SYLLABLE IEUNG YU PIEUPSIOS +0x9FB0 0xC734 #HANGUL SYLLABLE IEUNG YU SSANGSIOS +0x9FB1 0xC736 #HANGUL SYLLABLE IEUNG YU CIEUC +0x9FB2 0xC738 #HANGUL SYLLABLE IEUNG YU KHIEUKH +0x9FB3 0xC739 #HANGUL SYLLABLE IEUNG YU THIEUTH +0x9FB4 0xC73A #HANGUL SYLLABLE IEUNG YU PHIEUPH +0x9FB5 0xC73B #HANGUL SYLLABLE IEUNG YU HIEUH +0x9FB6 0xC73E #HANGUL SYLLABLE IEUNG EU SSANGKIYEOK +0x9FB7 0xC73F #HANGUL SYLLABLE IEUNG EU KIYEOKSIOS +0x9FB8 0xC741 #HANGUL SYLLABLE IEUNG EU NIEUNCIEUC +0x9FB9 0xC742 #HANGUL SYLLABLE IEUNG EU NIEUNHIEUH +0x9FBA 0xC743 #HANGUL SYLLABLE IEUNG EU TIKEUT +0x9FBB 0xC745 #HANGUL SYLLABLE IEUNG EU RIEULKIYEOK +0x9FBC 0xC746 #HANGUL SYLLABLE IEUNG EU RIEULMIEUM +0x9FBD 0xC747 #HANGUL SYLLABLE IEUNG EU RIEULPIEUP +0x9FBE 0xC748 #HANGUL SYLLABLE IEUNG EU RIEULSIOS +0x9FBF 0xC749 #HANGUL SYLLABLE IEUNG EU RIEULTHIEUTH +0x9FC0 0xC74B #HANGUL SYLLABLE IEUNG EU RIEULHIEUH +0x9FC1 0xC74E #HANGUL SYLLABLE IEUNG EU PIEUPSIOS +0x9FC2 0xC750 #HANGUL SYLLABLE IEUNG EU SSANGSIOS +0x9FC3 0xC759 #HANGUL SYLLABLE IEUNG YI KIYEOK +0x9FC4 0xC75A #HANGUL SYLLABLE IEUNG YI SSANGKIYEOK +0x9FC5 0xC75B #HANGUL SYLLABLE IEUNG YI KIYEOKSIOS +0x9FC6 0xC75D #HANGUL SYLLABLE IEUNG YI NIEUNCIEUC +0x9FC7 0xC75E #HANGUL SYLLABLE IEUNG YI NIEUNHIEUH +0x9FC8 0xC75F #HANGUL SYLLABLE IEUNG YI TIKEUT +0x9FC9 0xC761 #HANGUL SYLLABLE IEUNG YI RIEULKIYEOK +0x9FCA 0xC762 #HANGUL SYLLABLE IEUNG YI RIEULMIEUM +0x9FCB 0xC763 #HANGUL SYLLABLE IEUNG YI RIEULPIEUP +0x9FCC 0xC764 #HANGUL SYLLABLE IEUNG YI RIEULSIOS +0x9FCD 0xC765 #HANGUL SYLLABLE IEUNG YI RIEULTHIEUTH +0x9FCE 0xC766 #HANGUL SYLLABLE IEUNG YI RIEULPHIEUPH +0x9FCF 0xC767 #HANGUL SYLLABLE IEUNG YI RIEULHIEUH +0x9FD0 0xC769 #HANGUL SYLLABLE IEUNG YI PIEUP +0x9FD1 0xC76A #HANGUL SYLLABLE IEUNG YI PIEUPSIOS +0x9FD2 0xC76C #HANGUL SYLLABLE IEUNG YI SSANGSIOS +0x9FD3 0xC76D #HANGUL SYLLABLE IEUNG YI IEUNG +0x9FD4 0xC76E #HANGUL SYLLABLE IEUNG YI CIEUC +0x9FD5 0xC76F #HANGUL SYLLABLE IEUNG YI CHIEUCH +0x9FD6 0xC770 #HANGUL SYLLABLE IEUNG YI KHIEUKH +0x9FD7 0xC771 #HANGUL SYLLABLE IEUNG YI THIEUTH +0x9FD8 0xC772 #HANGUL SYLLABLE IEUNG YI PHIEUPH +0x9FD9 0xC773 #HANGUL SYLLABLE IEUNG YI HIEUH +0x9FDA 0xC776 #HANGUL SYLLABLE IEUNG I SSANGKIYEOK +0x9FDB 0xC777 #HANGUL SYLLABLE IEUNG I KIYEOKSIOS +0x9FDC 0xC779 #HANGUL SYLLABLE IEUNG I NIEUNCIEUC +0x9FDD 0xC77A #HANGUL SYLLABLE IEUNG I NIEUNHIEUH +0x9FDE 0xC77B #HANGUL SYLLABLE IEUNG I TIKEUT +0x9FDF 0xC77F #HANGUL SYLLABLE IEUNG I RIEULPIEUP +0x9FE0 0xC780 #HANGUL SYLLABLE IEUNG I RIEULSIOS +0x9FE1 0xC781 #HANGUL SYLLABLE IEUNG I RIEULTHIEUTH +0x9FE2 0xC782 #HANGUL SYLLABLE IEUNG I RIEULPHIEUPH +0x9FE3 0xC786 #HANGUL SYLLABLE IEUNG I PIEUPSIOS +0x9FE4 0xC78B #HANGUL SYLLABLE IEUNG I CHIEUCH +0x9FE5 0xC78C #HANGUL SYLLABLE IEUNG I KHIEUKH +0x9FE6 0xC78D #HANGUL SYLLABLE IEUNG I THIEUTH +0x9FE7 0xC78F #HANGUL SYLLABLE IEUNG I HIEUH +0x9FE8 0xC792 #HANGUL SYLLABLE CIEUC A SSANGKIYEOK +0x9FE9 0xC793 #HANGUL SYLLABLE CIEUC A KIYEOKSIOS +0x9FEA 0xC795 #HANGUL SYLLABLE CIEUC A NIEUNCIEUC +0x9FEB 0xC799 #HANGUL SYLLABLE CIEUC A RIEULKIYEOK +0x9FEC 0xC79B #HANGUL SYLLABLE CIEUC A RIEULPIEUP +0x9FED 0xC79C #HANGUL SYLLABLE CIEUC A RIEULSIOS +0x9FEE 0xC79D #HANGUL SYLLABLE CIEUC A RIEULTHIEUTH +0x9FEF 0xC79E #HANGUL SYLLABLE CIEUC A RIEULPHIEUPH +0x9FF0 0xC79F #HANGUL SYLLABLE CIEUC A RIEULHIEUH +0x9FF1 0xC7A2 #HANGUL SYLLABLE CIEUC A PIEUPSIOS +0x9FF2 0xC7A7 #HANGUL SYLLABLE CIEUC A CHIEUCH +0x9FF3 0xC7A8 #HANGUL SYLLABLE CIEUC A KHIEUKH +0x9FF4 0xC7A9 #HANGUL SYLLABLE CIEUC A THIEUTH +0x9FF5 0xC7AA #HANGUL SYLLABLE CIEUC A PHIEUPH +0x9FF6 0xC7AB #HANGUL SYLLABLE CIEUC A HIEUH +0x9FF7 0xC7AE #HANGUL SYLLABLE CIEUC AE SSANGKIYEOK +0x9FF8 0xC7AF #HANGUL SYLLABLE CIEUC AE KIYEOKSIOS +0x9FF9 0xC7B1 #HANGUL SYLLABLE CIEUC AE NIEUNCIEUC +0x9FFA 0xC7B2 #HANGUL SYLLABLE CIEUC AE NIEUNHIEUH +0x9FFB 0xC7B3 #HANGUL SYLLABLE CIEUC AE TIKEUT +0x9FFC 0xC7B5 #HANGUL SYLLABLE CIEUC AE RIEULKIYEOK +0x9FFD 0xC7B6 #HANGUL SYLLABLE CIEUC AE RIEULMIEUM +0x9FFE 0xC7B7 #HANGUL SYLLABLE CIEUC AE RIEULPIEUP +0xA041 0xC7B8 #HANGUL SYLLABLE CIEUC AE RIEULSIOS +0xA042 0xC7B9 #HANGUL SYLLABLE CIEUC AE RIEULTHIEUTH +0xA043 0xC7BA #HANGUL SYLLABLE CIEUC AE RIEULPHIEUPH +0xA044 0xC7BB #HANGUL SYLLABLE CIEUC AE RIEULHIEUH +0xA045 0xC7BE #HANGUL SYLLABLE CIEUC AE PIEUPSIOS +0xA046 0xC7C2 #HANGUL SYLLABLE CIEUC AE CIEUC +0xA047 0xC7C3 #HANGUL SYLLABLE CIEUC AE CHIEUCH +0xA048 0xC7C4 #HANGUL SYLLABLE CIEUC AE KHIEUKH +0xA049 0xC7C5 #HANGUL SYLLABLE CIEUC AE THIEUTH +0xA04A 0xC7C6 #HANGUL SYLLABLE CIEUC AE PHIEUPH +0xA04B 0xC7C7 #HANGUL SYLLABLE CIEUC AE HIEUH +0xA04C 0xC7CA #HANGUL SYLLABLE CIEUC YA SSANGKIYEOK +0xA04D 0xC7CB #HANGUL SYLLABLE CIEUC YA KIYEOKSIOS +0xA04E 0xC7CD #HANGUL SYLLABLE CIEUC YA NIEUNCIEUC +0xA04F 0xC7CF #HANGUL SYLLABLE CIEUC YA TIKEUT +0xA050 0xC7D1 #HANGUL SYLLABLE CIEUC YA RIEULKIYEOK +0xA051 0xC7D2 #HANGUL SYLLABLE CIEUC YA RIEULMIEUM +0xA052 0xC7D3 #HANGUL SYLLABLE CIEUC YA RIEULPIEUP +0xA053 0xC7D4 #HANGUL SYLLABLE CIEUC YA RIEULSIOS +0xA054 0xC7D5 #HANGUL SYLLABLE CIEUC YA RIEULTHIEUTH +0xA055 0xC7D6 #HANGUL SYLLABLE CIEUC YA RIEULPHIEUPH +0xA056 0xC7D7 #HANGUL SYLLABLE CIEUC YA RIEULHIEUH +0xA057 0xC7D9 #HANGUL SYLLABLE CIEUC YA PIEUP +0xA058 0xC7DA #HANGUL SYLLABLE CIEUC YA PIEUPSIOS +0xA059 0xC7DB #HANGUL SYLLABLE CIEUC YA SIOS +0xA05A 0xC7DC #HANGUL SYLLABLE CIEUC YA SSANGSIOS +0xA061 0xC7DE #HANGUL SYLLABLE CIEUC YA CIEUC +0xA062 0xC7DF #HANGUL SYLLABLE CIEUC YA CHIEUCH +0xA063 0xC7E0 #HANGUL SYLLABLE CIEUC YA KHIEUKH +0xA064 0xC7E1 #HANGUL SYLLABLE CIEUC YA THIEUTH +0xA065 0xC7E2 #HANGUL SYLLABLE CIEUC YA PHIEUPH +0xA066 0xC7E3 #HANGUL SYLLABLE CIEUC YA HIEUH +0xA067 0xC7E5 #HANGUL SYLLABLE CIEUC YAE KIYEOK +0xA068 0xC7E6 #HANGUL SYLLABLE CIEUC YAE SSANGKIYEOK +0xA069 0xC7E7 #HANGUL SYLLABLE CIEUC YAE KIYEOKSIOS +0xA06A 0xC7E9 #HANGUL SYLLABLE CIEUC YAE NIEUNCIEUC +0xA06B 0xC7EA #HANGUL SYLLABLE CIEUC YAE NIEUNHIEUH +0xA06C 0xC7EB #HANGUL SYLLABLE CIEUC YAE TIKEUT +0xA06D 0xC7ED #HANGUL SYLLABLE CIEUC YAE RIEULKIYEOK +0xA06E 0xC7EE #HANGUL SYLLABLE CIEUC YAE RIEULMIEUM +0xA06F 0xC7EF #HANGUL SYLLABLE CIEUC YAE RIEULPIEUP +0xA070 0xC7F0 #HANGUL SYLLABLE CIEUC YAE RIEULSIOS +0xA071 0xC7F1 #HANGUL SYLLABLE CIEUC YAE RIEULTHIEUTH +0xA072 0xC7F2 #HANGUL SYLLABLE CIEUC YAE RIEULPHIEUPH +0xA073 0xC7F3 #HANGUL SYLLABLE CIEUC YAE RIEULHIEUH +0xA074 0xC7F4 #HANGUL SYLLABLE CIEUC YAE MIEUM +0xA075 0xC7F5 #HANGUL SYLLABLE CIEUC YAE PIEUP +0xA076 0xC7F6 #HANGUL SYLLABLE CIEUC YAE PIEUPSIOS +0xA077 0xC7F7 #HANGUL SYLLABLE CIEUC YAE SIOS +0xA078 0xC7F8 #HANGUL SYLLABLE CIEUC YAE SSANGSIOS +0xA079 0xC7F9 #HANGUL SYLLABLE CIEUC YAE IEUNG +0xA07A 0xC7FA #HANGUL SYLLABLE CIEUC YAE CIEUC +0xA081 0xC7FB #HANGUL SYLLABLE CIEUC YAE CHIEUCH +0xA082 0xC7FC #HANGUL SYLLABLE CIEUC YAE KHIEUKH +0xA083 0xC7FD #HANGUL SYLLABLE CIEUC YAE THIEUTH +0xA084 0xC7FE #HANGUL SYLLABLE CIEUC YAE PHIEUPH +0xA085 0xC7FF #HANGUL SYLLABLE CIEUC YAE HIEUH +0xA086 0xC802 #HANGUL SYLLABLE CIEUC EO SSANGKIYEOK +0xA087 0xC803 #HANGUL SYLLABLE CIEUC EO KIYEOKSIOS +0xA088 0xC805 #HANGUL SYLLABLE CIEUC EO NIEUNCIEUC +0xA089 0xC806 #HANGUL SYLLABLE CIEUC EO NIEUNHIEUH +0xA08A 0xC807 #HANGUL SYLLABLE CIEUC EO TIKEUT +0xA08B 0xC809 #HANGUL SYLLABLE CIEUC EO RIEULKIYEOK +0xA08C 0xC80B #HANGUL SYLLABLE CIEUC EO RIEULPIEUP +0xA08D 0xC80C #HANGUL SYLLABLE CIEUC EO RIEULSIOS +0xA08E 0xC80D #HANGUL SYLLABLE CIEUC EO RIEULTHIEUTH +0xA08F 0xC80E #HANGUL SYLLABLE CIEUC EO RIEULPHIEUPH +0xA090 0xC80F #HANGUL SYLLABLE CIEUC EO RIEULHIEUH +0xA091 0xC812 #HANGUL SYLLABLE CIEUC EO PIEUPSIOS +0xA092 0xC814 #HANGUL SYLLABLE CIEUC EO SSANGSIOS +0xA093 0xC817 #HANGUL SYLLABLE CIEUC EO CHIEUCH +0xA094 0xC818 #HANGUL SYLLABLE CIEUC EO KHIEUKH +0xA095 0xC819 #HANGUL SYLLABLE CIEUC EO THIEUTH +0xA096 0xC81A #HANGUL SYLLABLE CIEUC EO PHIEUPH +0xA097 0xC81B #HANGUL SYLLABLE CIEUC EO HIEUH +0xA098 0xC81E #HANGUL SYLLABLE CIEUC E SSANGKIYEOK +0xA099 0xC81F #HANGUL SYLLABLE CIEUC E KIYEOKSIOS +0xA09A 0xC821 #HANGUL SYLLABLE CIEUC E NIEUNCIEUC +0xA09B 0xC822 #HANGUL SYLLABLE CIEUC E NIEUNHIEUH +0xA09C 0xC823 #HANGUL SYLLABLE CIEUC E TIKEUT +0xA09D 0xC825 #HANGUL SYLLABLE CIEUC E RIEULKIYEOK +0xA09E 0xC826 #HANGUL SYLLABLE CIEUC E RIEULMIEUM +0xA09F 0xC827 #HANGUL SYLLABLE CIEUC E RIEULPIEUP +0xA0A0 0xC828 #HANGUL SYLLABLE CIEUC E RIEULSIOS +0xA0A1 0xC829 #HANGUL SYLLABLE CIEUC E RIEULTHIEUTH +0xA0A2 0xC82A #HANGUL SYLLABLE CIEUC E RIEULPHIEUPH +0xA0A3 0xC82B #HANGUL SYLLABLE CIEUC E RIEULHIEUH +0xA0A4 0xC82E #HANGUL SYLLABLE CIEUC E PIEUPSIOS +0xA0A5 0xC830 #HANGUL SYLLABLE CIEUC E SSANGSIOS +0xA0A6 0xC832 #HANGUL SYLLABLE CIEUC E CIEUC +0xA0A7 0xC833 #HANGUL SYLLABLE CIEUC E CHIEUCH +0xA0A8 0xC834 #HANGUL SYLLABLE CIEUC E KHIEUKH +0xA0A9 0xC835 #HANGUL SYLLABLE CIEUC E THIEUTH +0xA0AA 0xC836 #HANGUL SYLLABLE CIEUC E PHIEUPH +0xA0AB 0xC837 #HANGUL SYLLABLE CIEUC E HIEUH +0xA0AC 0xC839 #HANGUL SYLLABLE CIEUC YEO KIYEOK +0xA0AD 0xC83A #HANGUL SYLLABLE CIEUC YEO SSANGKIYEOK +0xA0AE 0xC83B #HANGUL SYLLABLE CIEUC YEO KIYEOKSIOS +0xA0AF 0xC83D #HANGUL SYLLABLE CIEUC YEO NIEUNCIEUC +0xA0B0 0xC83E #HANGUL SYLLABLE CIEUC YEO NIEUNHIEUH +0xA0B1 0xC83F #HANGUL SYLLABLE CIEUC YEO TIKEUT +0xA0B2 0xC841 #HANGUL SYLLABLE CIEUC YEO RIEULKIYEOK +0xA0B3 0xC842 #HANGUL SYLLABLE CIEUC YEO RIEULMIEUM +0xA0B4 0xC843 #HANGUL SYLLABLE CIEUC YEO RIEULPIEUP +0xA0B5 0xC844 #HANGUL SYLLABLE CIEUC YEO RIEULSIOS +0xA0B6 0xC845 #HANGUL SYLLABLE CIEUC YEO RIEULTHIEUTH +0xA0B7 0xC846 #HANGUL SYLLABLE CIEUC YEO RIEULPHIEUPH +0xA0B8 0xC847 #HANGUL SYLLABLE CIEUC YEO RIEULHIEUH +0xA0B9 0xC84A #HANGUL SYLLABLE CIEUC YEO PIEUPSIOS +0xA0BA 0xC84B #HANGUL SYLLABLE CIEUC YEO SIOS +0xA0BB 0xC84E #HANGUL SYLLABLE CIEUC YEO CIEUC +0xA0BC 0xC84F #HANGUL SYLLABLE CIEUC YEO CHIEUCH +0xA0BD 0xC850 #HANGUL SYLLABLE CIEUC YEO KHIEUKH +0xA0BE 0xC851 #HANGUL SYLLABLE CIEUC YEO THIEUTH +0xA0BF 0xC852 #HANGUL SYLLABLE CIEUC YEO PHIEUPH +0xA0C0 0xC853 #HANGUL SYLLABLE CIEUC YEO HIEUH +0xA0C1 0xC855 #HANGUL SYLLABLE CIEUC YE KIYEOK +0xA0C2 0xC856 #HANGUL SYLLABLE CIEUC YE SSANGKIYEOK +0xA0C3 0xC857 #HANGUL SYLLABLE CIEUC YE KIYEOKSIOS +0xA0C4 0xC858 #HANGUL SYLLABLE CIEUC YE NIEUN +0xA0C5 0xC859 #HANGUL SYLLABLE CIEUC YE NIEUNCIEUC +0xA0C6 0xC85A #HANGUL SYLLABLE CIEUC YE NIEUNHIEUH +0xA0C7 0xC85B #HANGUL SYLLABLE CIEUC YE TIKEUT +0xA0C8 0xC85C #HANGUL SYLLABLE CIEUC YE RIEUL +0xA0C9 0xC85D #HANGUL SYLLABLE CIEUC YE RIEULKIYEOK +0xA0CA 0xC85E #HANGUL SYLLABLE CIEUC YE RIEULMIEUM +0xA0CB 0xC85F #HANGUL SYLLABLE CIEUC YE RIEULPIEUP +0xA0CC 0xC860 #HANGUL SYLLABLE CIEUC YE RIEULSIOS +0xA0CD 0xC861 #HANGUL SYLLABLE CIEUC YE RIEULTHIEUTH +0xA0CE 0xC862 #HANGUL SYLLABLE CIEUC YE RIEULPHIEUPH +0xA0CF 0xC863 #HANGUL SYLLABLE CIEUC YE RIEULHIEUH +0xA0D0 0xC864 #HANGUL SYLLABLE CIEUC YE MIEUM +0xA0D1 0xC865 #HANGUL SYLLABLE CIEUC YE PIEUP +0xA0D2 0xC866 #HANGUL SYLLABLE CIEUC YE PIEUPSIOS +0xA0D3 0xC867 #HANGUL SYLLABLE CIEUC YE SIOS +0xA0D4 0xC868 #HANGUL SYLLABLE CIEUC YE SSANGSIOS +0xA0D5 0xC869 #HANGUL SYLLABLE CIEUC YE IEUNG +0xA0D6 0xC86A #HANGUL SYLLABLE CIEUC YE CIEUC +0xA0D7 0xC86B #HANGUL SYLLABLE CIEUC YE CHIEUCH +0xA0D8 0xC86C #HANGUL SYLLABLE CIEUC YE KHIEUKH +0xA0D9 0xC86D #HANGUL SYLLABLE CIEUC YE THIEUTH +0xA0DA 0xC86E #HANGUL SYLLABLE CIEUC YE PHIEUPH +0xA0DB 0xC86F #HANGUL SYLLABLE CIEUC YE HIEUH +0xA0DC 0xC872 #HANGUL SYLLABLE CIEUC O SSANGKIYEOK +0xA0DD 0xC873 #HANGUL SYLLABLE CIEUC O KIYEOKSIOS +0xA0DE 0xC875 #HANGUL SYLLABLE CIEUC O NIEUNCIEUC +0xA0DF 0xC876 #HANGUL SYLLABLE CIEUC O NIEUNHIEUH +0xA0E0 0xC877 #HANGUL SYLLABLE CIEUC O TIKEUT +0xA0E1 0xC879 #HANGUL SYLLABLE CIEUC O RIEULKIYEOK +0xA0E2 0xC87B #HANGUL SYLLABLE CIEUC O RIEULPIEUP +0xA0E3 0xC87C #HANGUL SYLLABLE CIEUC O RIEULSIOS +0xA0E4 0xC87D #HANGUL SYLLABLE CIEUC O RIEULTHIEUTH +0xA0E5 0xC87E #HANGUL SYLLABLE CIEUC O RIEULPHIEUPH +0xA0E6 0xC87F #HANGUL SYLLABLE CIEUC O RIEULHIEUH +0xA0E7 0xC882 #HANGUL SYLLABLE CIEUC O PIEUPSIOS +0xA0E8 0xC884 #HANGUL SYLLABLE CIEUC O SSANGSIOS +0xA0E9 0xC888 #HANGUL SYLLABLE CIEUC O KHIEUKH +0xA0EA 0xC889 #HANGUL SYLLABLE CIEUC O THIEUTH +0xA0EB 0xC88A #HANGUL SYLLABLE CIEUC O PHIEUPH +0xA0EC 0xC88E #HANGUL SYLLABLE CIEUC WA SSANGKIYEOK +0xA0ED 0xC88F #HANGUL SYLLABLE CIEUC WA KIYEOKSIOS +0xA0EE 0xC890 #HANGUL SYLLABLE CIEUC WA NIEUN +0xA0EF 0xC891 #HANGUL SYLLABLE CIEUC WA NIEUNCIEUC +0xA0F0 0xC892 #HANGUL SYLLABLE CIEUC WA NIEUNHIEUH +0xA0F1 0xC893 #HANGUL SYLLABLE CIEUC WA TIKEUT +0xA0F2 0xC895 #HANGUL SYLLABLE CIEUC WA RIEULKIYEOK +0xA0F3 0xC896 #HANGUL SYLLABLE CIEUC WA RIEULMIEUM +0xA0F4 0xC897 #HANGUL SYLLABLE CIEUC WA RIEULPIEUP +0xA0F5 0xC898 #HANGUL SYLLABLE CIEUC WA RIEULSIOS +0xA0F6 0xC899 #HANGUL SYLLABLE CIEUC WA RIEULTHIEUTH +0xA0F7 0xC89A #HANGUL SYLLABLE CIEUC WA RIEULPHIEUPH +0xA0F8 0xC89B #HANGUL SYLLABLE CIEUC WA RIEULHIEUH +0xA0F9 0xC89C #HANGUL SYLLABLE CIEUC WA MIEUM +0xA0FA 0xC89E #HANGUL SYLLABLE CIEUC WA PIEUPSIOS +0xA0FB 0xC8A0 #HANGUL SYLLABLE CIEUC WA SSANGSIOS +0xA0FC 0xC8A2 #HANGUL SYLLABLE CIEUC WA CIEUC +0xA0FD 0xC8A3 #HANGUL SYLLABLE CIEUC WA CHIEUCH +0xA0FE 0xC8A4 #HANGUL SYLLABLE CIEUC WA KHIEUKH +0xA141 0xC8A5 #HANGUL SYLLABLE CIEUC WA THIEUTH +0xA142 0xC8A6 #HANGUL SYLLABLE CIEUC WA PHIEUPH +0xA143 0xC8A7 #HANGUL SYLLABLE CIEUC WA HIEUH +0xA144 0xC8A9 #HANGUL SYLLABLE CIEUC WAE KIYEOK +0xA145 0xC8AA #HANGUL SYLLABLE CIEUC WAE SSANGKIYEOK +0xA146 0xC8AB #HANGUL SYLLABLE CIEUC WAE KIYEOKSIOS +0xA147 0xC8AC #HANGUL SYLLABLE CIEUC WAE NIEUN +0xA148 0xC8AD #HANGUL SYLLABLE CIEUC WAE NIEUNCIEUC +0xA149 0xC8AE #HANGUL SYLLABLE CIEUC WAE NIEUNHIEUH +0xA14A 0xC8AF #HANGUL SYLLABLE CIEUC WAE TIKEUT +0xA14B 0xC8B0 #HANGUL SYLLABLE CIEUC WAE RIEUL +0xA14C 0xC8B1 #HANGUL SYLLABLE CIEUC WAE RIEULKIYEOK +0xA14D 0xC8B2 #HANGUL SYLLABLE CIEUC WAE RIEULMIEUM +0xA14E 0xC8B3 #HANGUL SYLLABLE CIEUC WAE RIEULPIEUP +0xA14F 0xC8B4 #HANGUL SYLLABLE CIEUC WAE RIEULSIOS +0xA150 0xC8B5 #HANGUL SYLLABLE CIEUC WAE RIEULTHIEUTH +0xA151 0xC8B6 #HANGUL SYLLABLE CIEUC WAE RIEULPHIEUPH +0xA152 0xC8B7 #HANGUL SYLLABLE CIEUC WAE RIEULHIEUH +0xA153 0xC8B8 #HANGUL SYLLABLE CIEUC WAE MIEUM +0xA154 0xC8B9 #HANGUL SYLLABLE CIEUC WAE PIEUP +0xA155 0xC8BA #HANGUL SYLLABLE CIEUC WAE PIEUPSIOS +0xA156 0xC8BB #HANGUL SYLLABLE CIEUC WAE SIOS +0xA157 0xC8BE #HANGUL SYLLABLE CIEUC WAE CIEUC +0xA158 0xC8BF #HANGUL SYLLABLE CIEUC WAE CHIEUCH +0xA159 0xC8C0 #HANGUL SYLLABLE CIEUC WAE KHIEUKH +0xA15A 0xC8C1 #HANGUL SYLLABLE CIEUC WAE THIEUTH +0xA161 0xC8C2 #HANGUL SYLLABLE CIEUC WAE PHIEUPH +0xA162 0xC8C3 #HANGUL SYLLABLE CIEUC WAE HIEUH +0xA163 0xC8C5 #HANGUL SYLLABLE CIEUC OE KIYEOK +0xA164 0xC8C6 #HANGUL SYLLABLE CIEUC OE SSANGKIYEOK +0xA165 0xC8C7 #HANGUL SYLLABLE CIEUC OE KIYEOKSIOS +0xA166 0xC8C9 #HANGUL SYLLABLE CIEUC OE NIEUNCIEUC +0xA167 0xC8CA #HANGUL SYLLABLE CIEUC OE NIEUNHIEUH +0xA168 0xC8CB #HANGUL SYLLABLE CIEUC OE TIKEUT +0xA169 0xC8CD #HANGUL SYLLABLE CIEUC OE RIEULKIYEOK +0xA16A 0xC8CE #HANGUL SYLLABLE CIEUC OE RIEULMIEUM +0xA16B 0xC8CF #HANGUL SYLLABLE CIEUC OE RIEULPIEUP +0xA16C 0xC8D0 #HANGUL SYLLABLE CIEUC OE RIEULSIOS +0xA16D 0xC8D1 #HANGUL SYLLABLE CIEUC OE RIEULTHIEUTH +0xA16E 0xC8D2 #HANGUL SYLLABLE CIEUC OE RIEULPHIEUPH +0xA16F 0xC8D3 #HANGUL SYLLABLE CIEUC OE RIEULHIEUH +0xA170 0xC8D6 #HANGUL SYLLABLE CIEUC OE PIEUPSIOS +0xA171 0xC8D8 #HANGUL SYLLABLE CIEUC OE SSANGSIOS +0xA172 0xC8DA #HANGUL SYLLABLE CIEUC OE CIEUC +0xA173 0xC8DB #HANGUL SYLLABLE CIEUC OE CHIEUCH +0xA174 0xC8DC #HANGUL SYLLABLE CIEUC OE KHIEUKH +0xA175 0xC8DD #HANGUL SYLLABLE CIEUC OE THIEUTH +0xA176 0xC8DE #HANGUL SYLLABLE CIEUC OE PHIEUPH +0xA177 0xC8DF #HANGUL SYLLABLE CIEUC OE HIEUH +0xA178 0xC8E2 #HANGUL SYLLABLE CIEUC YO SSANGKIYEOK +0xA179 0xC8E3 #HANGUL SYLLABLE CIEUC YO KIYEOKSIOS +0xA17A 0xC8E5 #HANGUL SYLLABLE CIEUC YO NIEUNCIEUC +0xA181 0xC8E6 #HANGUL SYLLABLE CIEUC YO NIEUNHIEUH +0xA182 0xC8E7 #HANGUL SYLLABLE CIEUC YO TIKEUT +0xA183 0xC8E8 #HANGUL SYLLABLE CIEUC YO RIEUL +0xA184 0xC8E9 #HANGUL SYLLABLE CIEUC YO RIEULKIYEOK +0xA185 0xC8EA #HANGUL SYLLABLE CIEUC YO RIEULMIEUM +0xA186 0xC8EB #HANGUL SYLLABLE CIEUC YO RIEULPIEUP +0xA187 0xC8EC #HANGUL SYLLABLE CIEUC YO RIEULSIOS +0xA188 0xC8ED #HANGUL SYLLABLE CIEUC YO RIEULTHIEUTH +0xA189 0xC8EE #HANGUL SYLLABLE CIEUC YO RIEULPHIEUPH +0xA18A 0xC8EF #HANGUL SYLLABLE CIEUC YO RIEULHIEUH +0xA18B 0xC8F0 #HANGUL SYLLABLE CIEUC YO MIEUM +0xA18C 0xC8F1 #HANGUL SYLLABLE CIEUC YO PIEUP +0xA18D 0xC8F2 #HANGUL SYLLABLE CIEUC YO PIEUPSIOS +0xA18E 0xC8F3 #HANGUL SYLLABLE CIEUC YO SIOS +0xA18F 0xC8F4 #HANGUL SYLLABLE CIEUC YO SSANGSIOS +0xA190 0xC8F6 #HANGUL SYLLABLE CIEUC YO CIEUC +0xA191 0xC8F7 #HANGUL SYLLABLE CIEUC YO CHIEUCH +0xA192 0xC8F8 #HANGUL SYLLABLE CIEUC YO KHIEUKH +0xA193 0xC8F9 #HANGUL SYLLABLE CIEUC YO THIEUTH +0xA194 0xC8FA #HANGUL SYLLABLE CIEUC YO PHIEUPH +0xA195 0xC8FB #HANGUL SYLLABLE CIEUC YO HIEUH +0xA196 0xC8FE #HANGUL SYLLABLE CIEUC U SSANGKIYEOK +0xA197 0xC8FF #HANGUL SYLLABLE CIEUC U KIYEOKSIOS +0xA198 0xC901 #HANGUL SYLLABLE CIEUC U NIEUNCIEUC +0xA199 0xC902 #HANGUL SYLLABLE CIEUC U NIEUNHIEUH +0xA19A 0xC903 #HANGUL SYLLABLE CIEUC U TIKEUT +0xA19B 0xC907 #HANGUL SYLLABLE CIEUC U RIEULPIEUP +0xA19C 0xC908 #HANGUL SYLLABLE CIEUC U RIEULSIOS +0xA19D 0xC909 #HANGUL SYLLABLE CIEUC U RIEULTHIEUTH +0xA19E 0xC90A #HANGUL SYLLABLE CIEUC U RIEULPHIEUPH +0xA19F 0xC90B #HANGUL SYLLABLE CIEUC U RIEULHIEUH +0xA1A0 0xC90E #HANGUL SYLLABLE CIEUC U PIEUPSIOS +0xA1A1 0x3000 #IDEOGRAPHIC SPACE +0xA1A2 0x3001 #IDEOGRAPHIC COMMA +0xA1A3 0x3002 #IDEOGRAPHIC FULL STOP +0xA1A4 0x00B7 #MIDDLE DOT +0xA1A5 0x2025 #TWO DOT LEADER +0xA1A6 0x2026 #HORIZONTAL ELLIPSIS +0xA1A7 0x00A8 #DIAERESIS +0xA1A8 0x3003 #DITTO MARK +0xA1A9 0x00AD #SOFT HYPHEN +0xA1AA 0x2015 #HORIZONTAL BAR +0xA1AB 0x2225 #PARALLEL TO +0xA1AC 0xFF3C #FULLWIDTH REVERSE SOLIDUS +0xA1AD 0x223C #TILDE OPERATOR +0xA1AE 0x2018 #LEFT SINGLE QUOTATION MARK +0xA1AF 0x2019 #RIGHT SINGLE QUOTATION MARK +0xA1B0 0x201C #LEFT DOUBLE QUOTATION MARK +0xA1B1 0x201D #RIGHT DOUBLE QUOTATION MARK +0xA1B2 0x3014 #LEFT TORTOISE SHELL BRACKET +0xA1B3 0x3015 #RIGHT TORTOISE SHELL BRACKET +0xA1B4 0x3008 #LEFT ANGLE BRACKET +0xA1B5 0x3009 #RIGHT ANGLE BRACKET +0xA1B6 0x300A #LEFT DOUBLE ANGLE BRACKET +0xA1B7 0x300B #RIGHT DOUBLE ANGLE BRACKET +0xA1B8 0x300C #LEFT CORNER BRACKET +0xA1B9 0x300D #RIGHT CORNER BRACKET +0xA1BA 0x300E #LEFT WHITE CORNER BRACKET +0xA1BB 0x300F #RIGHT WHITE CORNER BRACKET +0xA1BC 0x3010 #LEFT BLACK LENTICULAR BRACKET +0xA1BD 0x3011 #RIGHT BLACK LENTICULAR BRACKET +0xA1BE 0x00B1 #PLUS-MINUS SIGN +0xA1BF 0x00D7 #MULTIPLICATION SIGN +0xA1C0 0x00F7 #DIVISION SIGN +0xA1C1 0x2260 #NOT EQUAL TO +0xA1C2 0x2264 #LESS-THAN OR EQUAL TO +0xA1C3 0x2265 #GREATER-THAN OR EQUAL TO +0xA1C4 0x221E #INFINITY +0xA1C5 0x2234 #THEREFORE +0xA1C6 0x00B0 #DEGREE SIGN +0xA1C7 0x2032 #PRIME +0xA1C8 0x2033 #DOUBLE PRIME +0xA1C9 0x2103 #DEGREE CELSIUS +0xA1CA 0x212B #ANGSTROM SIGN +0xA1CB 0xFFE0 #FULLWIDTH CENT SIGN +0xA1CC 0xFFE1 #FULLWIDTH POUND SIGN +0xA1CD 0xFFE5 #FULLWIDTH YEN SIGN +0xA1CE 0x2642 #MALE SIGN +0xA1CF 0x2640 #FEMALE SIGN +0xA1D0 0x2220 #ANGLE +0xA1D1 0x22A5 #UP TACK +0xA1D2 0x2312 #ARC +0xA1D3 0x2202 #PARTIAL DIFFERENTIAL +0xA1D4 0x2207 #NABLA +0xA1D5 0x2261 #IDENTICAL TO +0xA1D6 0x2252 #APPROXIMATELY EQUAL TO OR THE IMAGE OF +0xA1D7 0x00A7 #SECTION SIGN +0xA1D8 0x203B #REFERENCE MARK +0xA1D9 0x2606 #WHITE STAR +0xA1DA 0x2605 #BLACK STAR +0xA1DB 0x25CB #WHITE CIRCLE +0xA1DC 0x25CF #BLACK CIRCLE +0xA1DD 0x25CE #BULLSEYE +0xA1DE 0x25C7 #WHITE DIAMOND +0xA1DF 0x25C6 #BLACK DIAMOND +0xA1E0 0x25A1 #WHITE SQUARE +0xA1E1 0x25A0 #BLACK SQUARE +0xA1E2 0x25B3 #WHITE UP-POINTING TRIANGLE +0xA1E3 0x25B2 #BLACK UP-POINTING TRIANGLE +0xA1E4 0x25BD #WHITE DOWN-POINTING TRIANGLE +0xA1E5 0x25BC #BLACK DOWN-POINTING TRIANGLE +0xA1E6 0x2192 #RIGHTWARDS ARROW +0xA1E7 0x2190 #LEFTWARDS ARROW +0xA1E8 0x2191 #UPWARDS ARROW +0xA1E9 0x2193 #DOWNWARDS ARROW +0xA1EA 0x2194 #LEFT RIGHT ARROW +0xA1EB 0x3013 #GETA MARK +0xA1EC 0x226A #MUCH LESS-THAN +0xA1ED 0x226B #MUCH GREATER-THAN +0xA1EE 0x221A #SQUARE ROOT +0xA1EF 0x223D #REVERSED TILDE +0xA1F0 0x221D #PROPORTIONAL TO +0xA1F1 0x2235 #BECAUSE +0xA1F2 0x222B #INTEGRAL +0xA1F3 0x222C #DOUBLE INTEGRAL +0xA1F4 0x2208 #ELEMENT OF +0xA1F5 0x220B #CONTAINS AS MEMBER +0xA1F6 0x2286 #SUBSET OF OR EQUAL TO +0xA1F7 0x2287 #SUPERSET OF OR EQUAL TO +0xA1F8 0x2282 #SUBSET OF +0xA1F9 0x2283 #SUPERSET OF +0xA1FA 0x222A #UNION +0xA1FB 0x2229 #INTERSECTION +0xA1FC 0x2227 #LOGICAL AND +0xA1FD 0x2228 #LOGICAL OR +0xA1FE 0xFFE2 #FULLWIDTH NOT SIGN +0xA241 0xC910 #HANGUL SYLLABLE CIEUC U SSANGSIOS +0xA242 0xC912 #HANGUL SYLLABLE CIEUC U CIEUC +0xA243 0xC913 #HANGUL SYLLABLE CIEUC U CHIEUCH +0xA244 0xC914 #HANGUL SYLLABLE CIEUC U KHIEUKH +0xA245 0xC915 #HANGUL SYLLABLE CIEUC U THIEUTH +0xA246 0xC916 #HANGUL SYLLABLE CIEUC U PHIEUPH +0xA247 0xC917 #HANGUL SYLLABLE CIEUC U HIEUH +0xA248 0xC919 #HANGUL SYLLABLE CIEUC WEO KIYEOK +0xA249 0xC91A #HANGUL SYLLABLE CIEUC WEO SSANGKIYEOK +0xA24A 0xC91B #HANGUL SYLLABLE CIEUC WEO KIYEOKSIOS +0xA24B 0xC91C #HANGUL SYLLABLE CIEUC WEO NIEUN +0xA24C 0xC91D #HANGUL SYLLABLE CIEUC WEO NIEUNCIEUC +0xA24D 0xC91E #HANGUL SYLLABLE CIEUC WEO NIEUNHIEUH +0xA24E 0xC91F #HANGUL SYLLABLE CIEUC WEO TIKEUT +0xA24F 0xC920 #HANGUL SYLLABLE CIEUC WEO RIEUL +0xA250 0xC921 #HANGUL SYLLABLE CIEUC WEO RIEULKIYEOK +0xA251 0xC922 #HANGUL SYLLABLE CIEUC WEO RIEULMIEUM +0xA252 0xC923 #HANGUL SYLLABLE CIEUC WEO RIEULPIEUP +0xA253 0xC924 #HANGUL SYLLABLE CIEUC WEO RIEULSIOS +0xA254 0xC925 #HANGUL SYLLABLE CIEUC WEO RIEULTHIEUTH +0xA255 0xC926 #HANGUL SYLLABLE CIEUC WEO RIEULPHIEUPH +0xA256 0xC927 #HANGUL SYLLABLE CIEUC WEO RIEULHIEUH +0xA257 0xC928 #HANGUL SYLLABLE CIEUC WEO MIEUM +0xA258 0xC929 #HANGUL SYLLABLE CIEUC WEO PIEUP +0xA259 0xC92A #HANGUL SYLLABLE CIEUC WEO PIEUPSIOS +0xA25A 0xC92B #HANGUL SYLLABLE CIEUC WEO SIOS +0xA261 0xC92D #HANGUL SYLLABLE CIEUC WEO IEUNG +0xA262 0xC92E #HANGUL SYLLABLE CIEUC WEO CIEUC +0xA263 0xC92F #HANGUL SYLLABLE CIEUC WEO CHIEUCH +0xA264 0xC930 #HANGUL SYLLABLE CIEUC WEO KHIEUKH +0xA265 0xC931 #HANGUL SYLLABLE CIEUC WEO THIEUTH +0xA266 0xC932 #HANGUL SYLLABLE CIEUC WEO PHIEUPH +0xA267 0xC933 #HANGUL SYLLABLE CIEUC WEO HIEUH +0xA268 0xC935 #HANGUL SYLLABLE CIEUC WE KIYEOK +0xA269 0xC936 #HANGUL SYLLABLE CIEUC WE SSANGKIYEOK +0xA26A 0xC937 #HANGUL SYLLABLE CIEUC WE KIYEOKSIOS +0xA26B 0xC938 #HANGUL SYLLABLE CIEUC WE NIEUN +0xA26C 0xC939 #HANGUL SYLLABLE CIEUC WE NIEUNCIEUC +0xA26D 0xC93A #HANGUL SYLLABLE CIEUC WE NIEUNHIEUH +0xA26E 0xC93B #HANGUL SYLLABLE CIEUC WE TIKEUT +0xA26F 0xC93C #HANGUL SYLLABLE CIEUC WE RIEUL +0xA270 0xC93D #HANGUL SYLLABLE CIEUC WE RIEULKIYEOK +0xA271 0xC93E #HANGUL SYLLABLE CIEUC WE RIEULMIEUM +0xA272 0xC93F #HANGUL SYLLABLE CIEUC WE RIEULPIEUP +0xA273 0xC940 #HANGUL SYLLABLE CIEUC WE RIEULSIOS +0xA274 0xC941 #HANGUL SYLLABLE CIEUC WE RIEULTHIEUTH +0xA275 0xC942 #HANGUL SYLLABLE CIEUC WE RIEULPHIEUPH +0xA276 0xC943 #HANGUL SYLLABLE CIEUC WE RIEULHIEUH +0xA277 0xC944 #HANGUL SYLLABLE CIEUC WE MIEUM +0xA278 0xC945 #HANGUL SYLLABLE CIEUC WE PIEUP +0xA279 0xC946 #HANGUL SYLLABLE CIEUC WE PIEUPSIOS +0xA27A 0xC947 #HANGUL SYLLABLE CIEUC WE SIOS +0xA281 0xC948 #HANGUL SYLLABLE CIEUC WE SSANGSIOS +0xA282 0xC949 #HANGUL SYLLABLE CIEUC WE IEUNG +0xA283 0xC94A #HANGUL SYLLABLE CIEUC WE CIEUC +0xA284 0xC94B #HANGUL SYLLABLE CIEUC WE CHIEUCH +0xA285 0xC94C #HANGUL SYLLABLE CIEUC WE KHIEUKH +0xA286 0xC94D #HANGUL SYLLABLE CIEUC WE THIEUTH +0xA287 0xC94E #HANGUL SYLLABLE CIEUC WE PHIEUPH +0xA288 0xC94F #HANGUL SYLLABLE CIEUC WE HIEUH +0xA289 0xC952 #HANGUL SYLLABLE CIEUC WI SSANGKIYEOK +0xA28A 0xC953 #HANGUL SYLLABLE CIEUC WI KIYEOKSIOS +0xA28B 0xC955 #HANGUL SYLLABLE CIEUC WI NIEUNCIEUC +0xA28C 0xC956 #HANGUL SYLLABLE CIEUC WI NIEUNHIEUH +0xA28D 0xC957 #HANGUL SYLLABLE CIEUC WI TIKEUT +0xA28E 0xC959 #HANGUL SYLLABLE CIEUC WI RIEULKIYEOK +0xA28F 0xC95A #HANGUL SYLLABLE CIEUC WI RIEULMIEUM +0xA290 0xC95B #HANGUL SYLLABLE CIEUC WI RIEULPIEUP +0xA291 0xC95C #HANGUL SYLLABLE CIEUC WI RIEULSIOS +0xA292 0xC95D #HANGUL SYLLABLE CIEUC WI RIEULTHIEUTH +0xA293 0xC95E #HANGUL SYLLABLE CIEUC WI RIEULPHIEUPH +0xA294 0xC95F #HANGUL SYLLABLE CIEUC WI RIEULHIEUH +0xA295 0xC962 #HANGUL SYLLABLE CIEUC WI PIEUPSIOS +0xA296 0xC964 #HANGUL SYLLABLE CIEUC WI SSANGSIOS +0xA297 0xC965 #HANGUL SYLLABLE CIEUC WI IEUNG +0xA298 0xC966 #HANGUL SYLLABLE CIEUC WI CIEUC +0xA299 0xC967 #HANGUL SYLLABLE CIEUC WI CHIEUCH +0xA29A 0xC968 #HANGUL SYLLABLE CIEUC WI KHIEUKH +0xA29B 0xC969 #HANGUL SYLLABLE CIEUC WI THIEUTH +0xA29C 0xC96A #HANGUL SYLLABLE CIEUC WI PHIEUPH +0xA29D 0xC96B #HANGUL SYLLABLE CIEUC WI HIEUH +0xA29E 0xC96D #HANGUL SYLLABLE CIEUC YU KIYEOK +0xA29F 0xC96E #HANGUL SYLLABLE CIEUC YU SSANGKIYEOK +0xA2A0 0xC96F #HANGUL SYLLABLE CIEUC YU KIYEOKSIOS +0xA2A1 0x21D2 #RIGHTWARDS DOUBLE ARROW +0xA2A2 0x21D4 #LEFT RIGHT DOUBLE ARROW +0xA2A3 0x2200 #FOR ALL +0xA2A4 0x2203 #THERE EXISTS +0xA2A5 0x00B4 #ACUTE ACCENT +0xA2A6 0xFF5E #FULLWIDTH TILDE +0xA2A7 0x02C7 #CARON +0xA2A8 0x02D8 #BREVE +0xA2A9 0x02DD #DOUBLE ACUTE ACCENT +0xA2AA 0x02DA #RING ABOVE +0xA2AB 0x02D9 #DOT ABOVE +0xA2AC 0x00B8 #CEDILLA +0xA2AD 0x02DB #OGONEK +0xA2AE 0x00A1 #INVERTED EXCLAMATION MARK +0xA2AF 0x00BF #INVERTED QUESTION MARK +0xA2B0 0x02D0 #MODIFIER LETTER TRIANGULAR COLON +0xA2B1 0x222E #CONTOUR INTEGRAL +0xA2B2 0x2211 #N-ARY SUMMATION +0xA2B3 0x220F #N-ARY PRODUCT +0xA2B4 0x00A4 #CURRENCY SIGN +0xA2B5 0x2109 #DEGREE FAHRENHEIT +0xA2B6 0x2030 #PER MILLE SIGN +0xA2B7 0x25C1 #WHITE LEFT-POINTING TRIANGLE +0xA2B8 0x25C0 #BLACK LEFT-POINTING TRIANGLE +0xA2B9 0x25B7 #WHITE RIGHT-POINTING TRIANGLE +0xA2BA 0x25B6 #BLACK RIGHT-POINTING TRIANGLE +0xA2BB 0x2664 #WHITE SPADE SUIT +0xA2BC 0x2660 #BLACK SPADE SUIT +0xA2BD 0x2661 #WHITE HEART SUIT +0xA2BE 0x2665 #BLACK HEART SUIT +0xA2BF 0x2667 #WHITE CLUB SUIT +0xA2C0 0x2663 #BLACK CLUB SUIT +0xA2C1 0x2299 #CIRCLED DOT OPERATOR +0xA2C2 0x25C8 #WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND +0xA2C3 0x25A3 #WHITE SQUARE CONTAINING BLACK SMALL SQUARE +0xA2C4 0x25D0 #CIRCLE WITH LEFT HALF BLACK +0xA2C5 0x25D1 #CIRCLE WITH RIGHT HALF BLACK +0xA2C6 0x2592 #MEDIUM SHADE +0xA2C7 0x25A4 #SQUARE WITH HORIZONTAL FILL +0xA2C8 0x25A5 #SQUARE WITH VERTICAL FILL +0xA2C9 0x25A8 #SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL +0xA2CA 0x25A7 #SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL +0xA2CB 0x25A6 #SQUARE WITH ORTHOGONAL CROSSHATCH FILL +0xA2CC 0x25A9 #SQUARE WITH DIAGONAL CROSSHATCH FILL +0xA2CD 0x2668 #HOT SPRINGS +0xA2CE 0x260F #WHITE TELEPHONE +0xA2CF 0x260E #BLACK TELEPHONE +0xA2D0 0x261C #WHITE LEFT POINTING INDEX +0xA2D1 0x261E #WHITE RIGHT POINTING INDEX +0xA2D2 0x00B6 #PILCROW SIGN +0xA2D3 0x2020 #DAGGER +0xA2D4 0x2021 #DOUBLE DAGGER +0xA2D5 0x2195 #UP DOWN ARROW +0xA2D6 0x2197 #NORTH EAST ARROW +0xA2D7 0x2199 #SOUTH WEST ARROW +0xA2D8 0x2196 #NORTH WEST ARROW +0xA2D9 0x2198 #SOUTH EAST ARROW +0xA2DA 0x266D #MUSIC FLAT SIGN +0xA2DB 0x2669 #QUARTER NOTE +0xA2DC 0x266A #EIGHTH NOTE +0xA2DD 0x266C #BEAMED SIXTEENTH NOTES +0xA2DE 0x327F #KOREAN STANDARD SYMBOL +0xA2DF 0x321C #PARENTHESIZED HANGUL CIEUC U +0xA2E0 0x2116 #NUMERO SIGN +0xA2E1 0x33C7 #SQUARE CO +0xA2E2 0x2122 #TRADE MARK SIGN +0xA2E3 0x33C2 #SQUARE AM +0xA2E4 0x33D8 #SQUARE PM +0xA2E5 0x2121 #TELEPHONE SIGN +0xA2E6 0x20AC #EURO SIGN +0xA2E7 0x00AE #REGISTERED SIGN +0xA341 0xC971 #HANGUL SYLLABLE CIEUC YU NIEUNCIEUC +0xA342 0xC972 #HANGUL SYLLABLE CIEUC YU NIEUNHIEUH +0xA343 0xC973 #HANGUL SYLLABLE CIEUC YU TIKEUT +0xA344 0xC975 #HANGUL SYLLABLE CIEUC YU RIEULKIYEOK +0xA345 0xC976 #HANGUL SYLLABLE CIEUC YU RIEULMIEUM +0xA346 0xC977 #HANGUL SYLLABLE CIEUC YU RIEULPIEUP +0xA347 0xC978 #HANGUL SYLLABLE CIEUC YU RIEULSIOS +0xA348 0xC979 #HANGUL SYLLABLE CIEUC YU RIEULTHIEUTH +0xA349 0xC97A #HANGUL SYLLABLE CIEUC YU RIEULPHIEUPH +0xA34A 0xC97B #HANGUL SYLLABLE CIEUC YU RIEULHIEUH +0xA34B 0xC97D #HANGUL SYLLABLE CIEUC YU PIEUP +0xA34C 0xC97E #HANGUL SYLLABLE CIEUC YU PIEUPSIOS +0xA34D 0xC97F #HANGUL SYLLABLE CIEUC YU SIOS +0xA34E 0xC980 #HANGUL SYLLABLE CIEUC YU SSANGSIOS +0xA34F 0xC981 #HANGUL SYLLABLE CIEUC YU IEUNG +0xA350 0xC982 #HANGUL SYLLABLE CIEUC YU CIEUC +0xA351 0xC983 #HANGUL SYLLABLE CIEUC YU CHIEUCH +0xA352 0xC984 #HANGUL SYLLABLE CIEUC YU KHIEUKH +0xA353 0xC985 #HANGUL SYLLABLE CIEUC YU THIEUTH +0xA354 0xC986 #HANGUL SYLLABLE CIEUC YU PHIEUPH +0xA355 0xC987 #HANGUL SYLLABLE CIEUC YU HIEUH +0xA356 0xC98A #HANGUL SYLLABLE CIEUC EU SSANGKIYEOK +0xA357 0xC98B #HANGUL SYLLABLE CIEUC EU KIYEOKSIOS +0xA358 0xC98D #HANGUL SYLLABLE CIEUC EU NIEUNCIEUC +0xA359 0xC98E #HANGUL SYLLABLE CIEUC EU NIEUNHIEUH +0xA35A 0xC98F #HANGUL SYLLABLE CIEUC EU TIKEUT +0xA361 0xC991 #HANGUL SYLLABLE CIEUC EU RIEULKIYEOK +0xA362 0xC992 #HANGUL SYLLABLE CIEUC EU RIEULMIEUM +0xA363 0xC993 #HANGUL SYLLABLE CIEUC EU RIEULPIEUP +0xA364 0xC994 #HANGUL SYLLABLE CIEUC EU RIEULSIOS +0xA365 0xC995 #HANGUL SYLLABLE CIEUC EU RIEULTHIEUTH +0xA366 0xC996 #HANGUL SYLLABLE CIEUC EU RIEULPHIEUPH +0xA367 0xC997 #HANGUL SYLLABLE CIEUC EU RIEULHIEUH +0xA368 0xC99A #HANGUL SYLLABLE CIEUC EU PIEUPSIOS +0xA369 0xC99C #HANGUL SYLLABLE CIEUC EU SSANGSIOS +0xA36A 0xC99E #HANGUL SYLLABLE CIEUC EU CIEUC +0xA36B 0xC99F #HANGUL SYLLABLE CIEUC EU CHIEUCH +0xA36C 0xC9A0 #HANGUL SYLLABLE CIEUC EU KHIEUKH +0xA36D 0xC9A1 #HANGUL SYLLABLE CIEUC EU THIEUTH +0xA36E 0xC9A2 #HANGUL SYLLABLE CIEUC EU PHIEUPH +0xA36F 0xC9A3 #HANGUL SYLLABLE CIEUC EU HIEUH +0xA370 0xC9A4 #HANGUL SYLLABLE CIEUC YI +0xA371 0xC9A5 #HANGUL SYLLABLE CIEUC YI KIYEOK +0xA372 0xC9A6 #HANGUL SYLLABLE CIEUC YI SSANGKIYEOK +0xA373 0xC9A7 #HANGUL SYLLABLE CIEUC YI KIYEOKSIOS +0xA374 0xC9A8 #HANGUL SYLLABLE CIEUC YI NIEUN +0xA375 0xC9A9 #HANGUL SYLLABLE CIEUC YI NIEUNCIEUC +0xA376 0xC9AA #HANGUL SYLLABLE CIEUC YI NIEUNHIEUH +0xA377 0xC9AB #HANGUL SYLLABLE CIEUC YI TIKEUT +0xA378 0xC9AC #HANGUL SYLLABLE CIEUC YI RIEUL +0xA379 0xC9AD #HANGUL SYLLABLE CIEUC YI RIEULKIYEOK +0xA37A 0xC9AE #HANGUL SYLLABLE CIEUC YI RIEULMIEUM +0xA381 0xC9AF #HANGUL SYLLABLE CIEUC YI RIEULPIEUP +0xA382 0xC9B0 #HANGUL SYLLABLE CIEUC YI RIEULSIOS +0xA383 0xC9B1 #HANGUL SYLLABLE CIEUC YI RIEULTHIEUTH +0xA384 0xC9B2 #HANGUL SYLLABLE CIEUC YI RIEULPHIEUPH +0xA385 0xC9B3 #HANGUL SYLLABLE CIEUC YI RIEULHIEUH +0xA386 0xC9B4 #HANGUL SYLLABLE CIEUC YI MIEUM +0xA387 0xC9B5 #HANGUL SYLLABLE CIEUC YI PIEUP +0xA388 0xC9B6 #HANGUL SYLLABLE CIEUC YI PIEUPSIOS +0xA389 0xC9B7 #HANGUL SYLLABLE CIEUC YI SIOS +0xA38A 0xC9B8 #HANGUL SYLLABLE CIEUC YI SSANGSIOS +0xA38B 0xC9B9 #HANGUL SYLLABLE CIEUC YI IEUNG +0xA38C 0xC9BA #HANGUL SYLLABLE CIEUC YI CIEUC +0xA38D 0xC9BB #HANGUL SYLLABLE CIEUC YI CHIEUCH +0xA38E 0xC9BC #HANGUL SYLLABLE CIEUC YI KHIEUKH +0xA38F 0xC9BD #HANGUL SYLLABLE CIEUC YI THIEUTH +0xA390 0xC9BE #HANGUL SYLLABLE CIEUC YI PHIEUPH +0xA391 0xC9BF #HANGUL SYLLABLE CIEUC YI HIEUH +0xA392 0xC9C2 #HANGUL SYLLABLE CIEUC I SSANGKIYEOK +0xA393 0xC9C3 #HANGUL SYLLABLE CIEUC I KIYEOKSIOS +0xA394 0xC9C5 #HANGUL SYLLABLE CIEUC I NIEUNCIEUC +0xA395 0xC9C6 #HANGUL SYLLABLE CIEUC I NIEUNHIEUH +0xA396 0xC9C9 #HANGUL SYLLABLE CIEUC I RIEULKIYEOK +0xA397 0xC9CB #HANGUL SYLLABLE CIEUC I RIEULPIEUP +0xA398 0xC9CC #HANGUL SYLLABLE CIEUC I RIEULSIOS +0xA399 0xC9CD #HANGUL SYLLABLE CIEUC I RIEULTHIEUTH +0xA39A 0xC9CE #HANGUL SYLLABLE CIEUC I RIEULPHIEUPH +0xA39B 0xC9CF #HANGUL SYLLABLE CIEUC I RIEULHIEUH +0xA39C 0xC9D2 #HANGUL SYLLABLE CIEUC I PIEUPSIOS +0xA39D 0xC9D4 #HANGUL SYLLABLE CIEUC I SSANGSIOS +0xA39E 0xC9D7 #HANGUL SYLLABLE CIEUC I CHIEUCH +0xA39F 0xC9D8 #HANGUL SYLLABLE CIEUC I KHIEUKH +0xA3A0 0xC9DB #HANGUL SYLLABLE CIEUC I HIEUH +0xA3A1 0xFF01 #FULLWIDTH EXCLAMATION MARK +0xA3A2 0xFF02 #FULLWIDTH QUOTATION MARK +0xA3A3 0xFF03 #FULLWIDTH NUMBER SIGN +0xA3A4 0xFF04 #FULLWIDTH DOLLAR SIGN +0xA3A5 0xFF05 #FULLWIDTH PERCENT SIGN +0xA3A6 0xFF06 #FULLWIDTH AMPERSAND +0xA3A7 0xFF07 #FULLWIDTH APOSTROPHE +0xA3A8 0xFF08 #FULLWIDTH LEFT PARENTHESIS +0xA3A9 0xFF09 #FULLWIDTH RIGHT PARENTHESIS +0xA3AA 0xFF0A #FULLWIDTH ASTERISK +0xA3AB 0xFF0B #FULLWIDTH PLUS SIGN +0xA3AC 0xFF0C #FULLWIDTH COMMA +0xA3AD 0xFF0D #FULLWIDTH HYPHEN-MINUS +0xA3AE 0xFF0E #FULLWIDTH FULL STOP +0xA3AF 0xFF0F #FULLWIDTH SOLIDUS +0xA3B0 0xFF10 #FULLWIDTH DIGIT ZERO +0xA3B1 0xFF11 #FULLWIDTH DIGIT ONE +0xA3B2 0xFF12 #FULLWIDTH DIGIT TWO +0xA3B3 0xFF13 #FULLWIDTH DIGIT THREE +0xA3B4 0xFF14 #FULLWIDTH DIGIT FOUR +0xA3B5 0xFF15 #FULLWIDTH DIGIT FIVE +0xA3B6 0xFF16 #FULLWIDTH DIGIT SIX +0xA3B7 0xFF17 #FULLWIDTH DIGIT SEVEN +0xA3B8 0xFF18 #FULLWIDTH DIGIT EIGHT +0xA3B9 0xFF19 #FULLWIDTH DIGIT NINE +0xA3BA 0xFF1A #FULLWIDTH COLON +0xA3BB 0xFF1B #FULLWIDTH SEMICOLON +0xA3BC 0xFF1C #FULLWIDTH LESS-THAN SIGN +0xA3BD 0xFF1D #FULLWIDTH EQUALS SIGN +0xA3BE 0xFF1E #FULLWIDTH GREATER-THAN SIGN +0xA3BF 0xFF1F #FULLWIDTH QUESTION MARK +0xA3C0 0xFF20 #FULLWIDTH COMMERCIAL AT +0xA3C1 0xFF21 #FULLWIDTH LATIN CAPITAL LETTER A +0xA3C2 0xFF22 #FULLWIDTH LATIN CAPITAL LETTER B +0xA3C3 0xFF23 #FULLWIDTH LATIN CAPITAL LETTER C +0xA3C4 0xFF24 #FULLWIDTH LATIN CAPITAL LETTER D +0xA3C5 0xFF25 #FULLWIDTH LATIN CAPITAL LETTER E +0xA3C6 0xFF26 #FULLWIDTH LATIN CAPITAL LETTER F +0xA3C7 0xFF27 #FULLWIDTH LATIN CAPITAL LETTER G +0xA3C8 0xFF28 #FULLWIDTH LATIN CAPITAL LETTER H +0xA3C9 0xFF29 #FULLWIDTH LATIN CAPITAL LETTER I +0xA3CA 0xFF2A #FULLWIDTH LATIN CAPITAL LETTER J +0xA3CB 0xFF2B #FULLWIDTH LATIN CAPITAL LETTER K +0xA3CC 0xFF2C #FULLWIDTH LATIN CAPITAL LETTER L +0xA3CD 0xFF2D #FULLWIDTH LATIN CAPITAL LETTER M +0xA3CE 0xFF2E #FULLWIDTH LATIN CAPITAL LETTER N +0xA3CF 0xFF2F #FULLWIDTH LATIN CAPITAL LETTER O +0xA3D0 0xFF30 #FULLWIDTH LATIN CAPITAL LETTER P +0xA3D1 0xFF31 #FULLWIDTH LATIN CAPITAL LETTER Q +0xA3D2 0xFF32 #FULLWIDTH LATIN CAPITAL LETTER R +0xA3D3 0xFF33 #FULLWIDTH LATIN CAPITAL LETTER S +0xA3D4 0xFF34 #FULLWIDTH LATIN CAPITAL LETTER T +0xA3D5 0xFF35 #FULLWIDTH LATIN CAPITAL LETTER U +0xA3D6 0xFF36 #FULLWIDTH LATIN CAPITAL LETTER V +0xA3D7 0xFF37 #FULLWIDTH LATIN CAPITAL LETTER W +0xA3D8 0xFF38 #FULLWIDTH LATIN CAPITAL LETTER X +0xA3D9 0xFF39 #FULLWIDTH LATIN CAPITAL LETTER Y +0xA3DA 0xFF3A #FULLWIDTH LATIN CAPITAL LETTER Z +0xA3DB 0xFF3B #FULLWIDTH LEFT SQUARE BRACKET +0xA3DC 0xFFE6 #FULLWIDTH WON SIGN +0xA3DD 0xFF3D #FULLWIDTH RIGHT SQUARE BRACKET +0xA3DE 0xFF3E #FULLWIDTH CIRCUMFLEX ACCENT +0xA3DF 0xFF3F #FULLWIDTH LOW LINE +0xA3E0 0xFF40 #FULLWIDTH GRAVE ACCENT +0xA3E1 0xFF41 #FULLWIDTH LATIN SMALL LETTER A +0xA3E2 0xFF42 #FULLWIDTH LATIN SMALL LETTER B +0xA3E3 0xFF43 #FULLWIDTH LATIN SMALL LETTER C +0xA3E4 0xFF44 #FULLWIDTH LATIN SMALL LETTER D +0xA3E5 0xFF45 #FULLWIDTH LATIN SMALL LETTER E +0xA3E6 0xFF46 #FULLWIDTH LATIN SMALL LETTER F +0xA3E7 0xFF47 #FULLWIDTH LATIN SMALL LETTER G +0xA3E8 0xFF48 #FULLWIDTH LATIN SMALL LETTER H +0xA3E9 0xFF49 #FULLWIDTH LATIN SMALL LETTER I +0xA3EA 0xFF4A #FULLWIDTH LATIN SMALL LETTER J +0xA3EB 0xFF4B #FULLWIDTH LATIN SMALL LETTER K +0xA3EC 0xFF4C #FULLWIDTH LATIN SMALL LETTER L +0xA3ED 0xFF4D #FULLWIDTH LATIN SMALL LETTER M +0xA3EE 0xFF4E #FULLWIDTH LATIN SMALL LETTER N +0xA3EF 0xFF4F #FULLWIDTH LATIN SMALL LETTER O +0xA3F0 0xFF50 #FULLWIDTH LATIN SMALL LETTER P +0xA3F1 0xFF51 #FULLWIDTH LATIN SMALL LETTER Q +0xA3F2 0xFF52 #FULLWIDTH LATIN SMALL LETTER R +0xA3F3 0xFF53 #FULLWIDTH LATIN SMALL LETTER S +0xA3F4 0xFF54 #FULLWIDTH LATIN SMALL LETTER T +0xA3F5 0xFF55 #FULLWIDTH LATIN SMALL LETTER U +0xA3F6 0xFF56 #FULLWIDTH LATIN SMALL LETTER V +0xA3F7 0xFF57 #FULLWIDTH LATIN SMALL LETTER W +0xA3F8 0xFF58 #FULLWIDTH LATIN SMALL LETTER X +0xA3F9 0xFF59 #FULLWIDTH LATIN SMALL LETTER Y +0xA3FA 0xFF5A #FULLWIDTH LATIN SMALL LETTER Z +0xA3FB 0xFF5B #FULLWIDTH LEFT CURLY BRACKET +0xA3FC 0xFF5C #FULLWIDTH VERTICAL LINE +0xA3FD 0xFF5D #FULLWIDTH RIGHT CURLY BRACKET +0xA3FE 0xFFE3 #FULLWIDTH MACRON +0xA441 0xC9DE #HANGUL SYLLABLE SSANGCIEUC A SSANGKIYEOK +0xA442 0xC9DF #HANGUL SYLLABLE SSANGCIEUC A KIYEOKSIOS +0xA443 0xC9E1 #HANGUL SYLLABLE SSANGCIEUC A NIEUNCIEUC +0xA444 0xC9E3 #HANGUL SYLLABLE SSANGCIEUC A TIKEUT +0xA445 0xC9E5 #HANGUL SYLLABLE SSANGCIEUC A RIEULKIYEOK +0xA446 0xC9E6 #HANGUL SYLLABLE SSANGCIEUC A RIEULMIEUM +0xA447 0xC9E8 #HANGUL SYLLABLE SSANGCIEUC A RIEULSIOS +0xA448 0xC9E9 #HANGUL SYLLABLE SSANGCIEUC A RIEULTHIEUTH +0xA449 0xC9EA #HANGUL SYLLABLE SSANGCIEUC A RIEULPHIEUPH +0xA44A 0xC9EB #HANGUL SYLLABLE SSANGCIEUC A RIEULHIEUH +0xA44B 0xC9EE #HANGUL SYLLABLE SSANGCIEUC A PIEUPSIOS +0xA44C 0xC9F2 #HANGUL SYLLABLE SSANGCIEUC A CIEUC +0xA44D 0xC9F3 #HANGUL SYLLABLE SSANGCIEUC A CHIEUCH +0xA44E 0xC9F4 #HANGUL SYLLABLE SSANGCIEUC A KHIEUKH +0xA44F 0xC9F5 #HANGUL SYLLABLE SSANGCIEUC A THIEUTH +0xA450 0xC9F6 #HANGUL SYLLABLE SSANGCIEUC A PHIEUPH +0xA451 0xC9F7 #HANGUL SYLLABLE SSANGCIEUC A HIEUH +0xA452 0xC9FA #HANGUL SYLLABLE SSANGCIEUC AE SSANGKIYEOK +0xA453 0xC9FB #HANGUL SYLLABLE SSANGCIEUC AE KIYEOKSIOS +0xA454 0xC9FD #HANGUL SYLLABLE SSANGCIEUC AE NIEUNCIEUC +0xA455 0xC9FE #HANGUL SYLLABLE SSANGCIEUC AE NIEUNHIEUH +0xA456 0xC9FF #HANGUL SYLLABLE SSANGCIEUC AE TIKEUT +0xA457 0xCA01 #HANGUL SYLLABLE SSANGCIEUC AE RIEULKIYEOK +0xA458 0xCA02 #HANGUL SYLLABLE SSANGCIEUC AE RIEULMIEUM +0xA459 0xCA03 #HANGUL SYLLABLE SSANGCIEUC AE RIEULPIEUP +0xA45A 0xCA04 #HANGUL SYLLABLE SSANGCIEUC AE RIEULSIOS +0xA461 0xCA05 #HANGUL SYLLABLE SSANGCIEUC AE RIEULTHIEUTH +0xA462 0xCA06 #HANGUL SYLLABLE SSANGCIEUC AE RIEULPHIEUPH +0xA463 0xCA07 #HANGUL SYLLABLE SSANGCIEUC AE RIEULHIEUH +0xA464 0xCA0A #HANGUL SYLLABLE SSANGCIEUC AE PIEUPSIOS +0xA465 0xCA0E #HANGUL SYLLABLE SSANGCIEUC AE CIEUC +0xA466 0xCA0F #HANGUL SYLLABLE SSANGCIEUC AE CHIEUCH +0xA467 0xCA10 #HANGUL SYLLABLE SSANGCIEUC AE KHIEUKH +0xA468 0xCA11 #HANGUL SYLLABLE SSANGCIEUC AE THIEUTH +0xA469 0xCA12 #HANGUL SYLLABLE SSANGCIEUC AE PHIEUPH +0xA46A 0xCA13 #HANGUL SYLLABLE SSANGCIEUC AE HIEUH +0xA46B 0xCA15 #HANGUL SYLLABLE SSANGCIEUC YA KIYEOK +0xA46C 0xCA16 #HANGUL SYLLABLE SSANGCIEUC YA SSANGKIYEOK +0xA46D 0xCA17 #HANGUL SYLLABLE SSANGCIEUC YA KIYEOKSIOS +0xA46E 0xCA19 #HANGUL SYLLABLE SSANGCIEUC YA NIEUNCIEUC +0xA46F 0xCA1A #HANGUL SYLLABLE SSANGCIEUC YA NIEUNHIEUH +0xA470 0xCA1B #HANGUL SYLLABLE SSANGCIEUC YA TIKEUT +0xA471 0xCA1C #HANGUL SYLLABLE SSANGCIEUC YA RIEUL +0xA472 0xCA1D #HANGUL SYLLABLE SSANGCIEUC YA RIEULKIYEOK +0xA473 0xCA1E #HANGUL SYLLABLE SSANGCIEUC YA RIEULMIEUM +0xA474 0xCA1F #HANGUL SYLLABLE SSANGCIEUC YA RIEULPIEUP +0xA475 0xCA20 #HANGUL SYLLABLE SSANGCIEUC YA RIEULSIOS +0xA476 0xCA21 #HANGUL SYLLABLE SSANGCIEUC YA RIEULTHIEUTH +0xA477 0xCA22 #HANGUL SYLLABLE SSANGCIEUC YA RIEULPHIEUPH +0xA478 0xCA23 #HANGUL SYLLABLE SSANGCIEUC YA RIEULHIEUH +0xA479 0xCA24 #HANGUL SYLLABLE SSANGCIEUC YA MIEUM +0xA47A 0xCA25 #HANGUL SYLLABLE SSANGCIEUC YA PIEUP +0xA481 0xCA26 #HANGUL SYLLABLE SSANGCIEUC YA PIEUPSIOS +0xA482 0xCA27 #HANGUL SYLLABLE SSANGCIEUC YA SIOS +0xA483 0xCA28 #HANGUL SYLLABLE SSANGCIEUC YA SSANGSIOS +0xA484 0xCA2A #HANGUL SYLLABLE SSANGCIEUC YA CIEUC +0xA485 0xCA2B #HANGUL SYLLABLE SSANGCIEUC YA CHIEUCH +0xA486 0xCA2C #HANGUL SYLLABLE SSANGCIEUC YA KHIEUKH +0xA487 0xCA2D #HANGUL SYLLABLE SSANGCIEUC YA THIEUTH +0xA488 0xCA2E #HANGUL SYLLABLE SSANGCIEUC YA PHIEUPH +0xA489 0xCA2F #HANGUL SYLLABLE SSANGCIEUC YA HIEUH +0xA48A 0xCA30 #HANGUL SYLLABLE SSANGCIEUC YAE +0xA48B 0xCA31 #HANGUL SYLLABLE SSANGCIEUC YAE KIYEOK +0xA48C 0xCA32 #HANGUL SYLLABLE SSANGCIEUC YAE SSANGKIYEOK +0xA48D 0xCA33 #HANGUL SYLLABLE SSANGCIEUC YAE KIYEOKSIOS +0xA48E 0xCA34 #HANGUL SYLLABLE SSANGCIEUC YAE NIEUN +0xA48F 0xCA35 #HANGUL SYLLABLE SSANGCIEUC YAE NIEUNCIEUC +0xA490 0xCA36 #HANGUL SYLLABLE SSANGCIEUC YAE NIEUNHIEUH +0xA491 0xCA37 #HANGUL SYLLABLE SSANGCIEUC YAE TIKEUT +0xA492 0xCA38 #HANGUL SYLLABLE SSANGCIEUC YAE RIEUL +0xA493 0xCA39 #HANGUL SYLLABLE SSANGCIEUC YAE RIEULKIYEOK +0xA494 0xCA3A #HANGUL SYLLABLE SSANGCIEUC YAE RIEULMIEUM +0xA495 0xCA3B #HANGUL SYLLABLE SSANGCIEUC YAE RIEULPIEUP +0xA496 0xCA3C #HANGUL SYLLABLE SSANGCIEUC YAE RIEULSIOS +0xA497 0xCA3D #HANGUL SYLLABLE SSANGCIEUC YAE RIEULTHIEUTH +0xA498 0xCA3E #HANGUL SYLLABLE SSANGCIEUC YAE RIEULPHIEUPH +0xA499 0xCA3F #HANGUL SYLLABLE SSANGCIEUC YAE RIEULHIEUH +0xA49A 0xCA40 #HANGUL SYLLABLE SSANGCIEUC YAE MIEUM +0xA49B 0xCA41 #HANGUL SYLLABLE SSANGCIEUC YAE PIEUP +0xA49C 0xCA42 #HANGUL SYLLABLE SSANGCIEUC YAE PIEUPSIOS +0xA49D 0xCA43 #HANGUL SYLLABLE SSANGCIEUC YAE SIOS +0xA49E 0xCA44 #HANGUL SYLLABLE SSANGCIEUC YAE SSANGSIOS +0xA49F 0xCA45 #HANGUL SYLLABLE SSANGCIEUC YAE IEUNG +0xA4A0 0xCA46 #HANGUL SYLLABLE SSANGCIEUC YAE CIEUC +0xA4A1 0x3131 #HANGUL LETTER KIYEOK +0xA4A2 0x3132 #HANGUL LETTER SSANGKIYEOK +0xA4A3 0x3133 #HANGUL LETTER KIYEOK-SIOS +0xA4A4 0x3134 #HANGUL LETTER NIEUN +0xA4A5 0x3135 #HANGUL LETTER NIEUN-CIEUC +0xA4A6 0x3136 #HANGUL LETTER NIEUN-HIEUH +0xA4A7 0x3137 #HANGUL LETTER TIKEUT +0xA4A8 0x3138 #HANGUL LETTER SSANGTIKEUT +0xA4A9 0x3139 #HANGUL LETTER RIEUL +0xA4AA 0x313A #HANGUL LETTER RIEUL-KIYEOK +0xA4AB 0x313B #HANGUL LETTER RIEUL-MIEUM +0xA4AC 0x313C #HANGUL LETTER RIEUL-PIEUP +0xA4AD 0x313D #HANGUL LETTER RIEUL-SIOS +0xA4AE 0x313E #HANGUL LETTER RIEUL-THIEUTH +0xA4AF 0x313F #HANGUL LETTER RIEUL-PHIEUPH +0xA4B0 0x3140 #HANGUL LETTER RIEUL-HIEUH +0xA4B1 0x3141 #HANGUL LETTER MIEUM +0xA4B2 0x3142 #HANGUL LETTER PIEUP +0xA4B3 0x3143 #HANGUL LETTER SSANGPIEUP +0xA4B4 0x3144 #HANGUL LETTER PIEUP-SIOS +0xA4B5 0x3145 #HANGUL LETTER SIOS +0xA4B6 0x3146 #HANGUL LETTER SSANGSIOS +0xA4B7 0x3147 #HANGUL LETTER IEUNG +0xA4B8 0x3148 #HANGUL LETTER CIEUC +0xA4B9 0x3149 #HANGUL LETTER SSANGCIEUC +0xA4BA 0x314A #HANGUL LETTER CHIEUCH +0xA4BB 0x314B #HANGUL LETTER KHIEUKH +0xA4BC 0x314C #HANGUL LETTER THIEUTH +0xA4BD 0x314D #HANGUL LETTER PHIEUPH +0xA4BE 0x314E #HANGUL LETTER HIEUH +0xA4BF 0x314F #HANGUL LETTER A +0xA4C0 0x3150 #HANGUL LETTER AE +0xA4C1 0x3151 #HANGUL LETTER YA +0xA4C2 0x3152 #HANGUL LETTER YAE +0xA4C3 0x3153 #HANGUL LETTER EO +0xA4C4 0x3154 #HANGUL LETTER E +0xA4C5 0x3155 #HANGUL LETTER YEO +0xA4C6 0x3156 #HANGUL LETTER YE +0xA4C7 0x3157 #HANGUL LETTER O +0xA4C8 0x3158 #HANGUL LETTER WA +0xA4C9 0x3159 #HANGUL LETTER WAE +0xA4CA 0x315A #HANGUL LETTER OE +0xA4CB 0x315B #HANGUL LETTER YO +0xA4CC 0x315C #HANGUL LETTER U +0xA4CD 0x315D #HANGUL LETTER WEO +0xA4CE 0x315E #HANGUL LETTER WE +0xA4CF 0x315F #HANGUL LETTER WI +0xA4D0 0x3160 #HANGUL LETTER YU +0xA4D1 0x3161 #HANGUL LETTER EU +0xA4D2 0x3162 #HANGUL LETTER YI +0xA4D3 0x3163 #HANGUL LETTER I +0xA4D4 0x3164 #HANGUL FILLER +0xA4D5 0x3165 #HANGUL LETTER SSANGNIEUN +0xA4D6 0x3166 #HANGUL LETTER NIEUN-TIKEUT +0xA4D7 0x3167 #HANGUL LETTER NIEUN-SIOS +0xA4D8 0x3168 #HANGUL LETTER NIEUN-PANSIOS +0xA4D9 0x3169 #HANGUL LETTER RIEUL-KIYEOK-SIOS +0xA4DA 0x316A #HANGUL LETTER RIEUL-TIKEUT +0xA4DB 0x316B #HANGUL LETTER RIEUL-PIEUP-SIOS +0xA4DC 0x316C #HANGUL LETTER RIEUL-PANSIOS +0xA4DD 0x316D #HANGUL LETTER RIEUL-YEORINHIEUH +0xA4DE 0x316E #HANGUL LETTER MIEUM-PIEUP +0xA4DF 0x316F #HANGUL LETTER MIEUM-SIOS +0xA4E0 0x3170 #HANGUL LETTER MIEUM-PANSIOS +0xA4E1 0x3171 #HANGUL LETTER KAPYEOUNMIEUM +0xA4E2 0x3172 #HANGUL LETTER PIEUP-KIYEOK +0xA4E3 0x3173 #HANGUL LETTER PIEUP-TIKEUT +0xA4E4 0x3174 #HANGUL LETTER PIEUP-SIOS-KIYEOK +0xA4E5 0x3175 #HANGUL LETTER PIEUP-SIOS-TIKEUT +0xA4E6 0x3176 #HANGUL LETTER PIEUP-CIEUC +0xA4E7 0x3177 #HANGUL LETTER PIEUP-THIEUTH +0xA4E8 0x3178 #HANGUL LETTER KAPYEOUNPIEUP +0xA4E9 0x3179 #HANGUL LETTER KAPYEOUNSSANGPIEUP +0xA4EA 0x317A #HANGUL LETTER SIOS-KIYEOK +0xA4EB 0x317B #HANGUL LETTER SIOS-NIEUN +0xA4EC 0x317C #HANGUL LETTER SIOS-TIKEUT +0xA4ED 0x317D #HANGUL LETTER SIOS-PIEUP +0xA4EE 0x317E #HANGUL LETTER SIOS-CIEUC +0xA4EF 0x317F #HANGUL LETTER PANSIOS +0xA4F0 0x3180 #HANGUL LETTER SSANGIEUNG +0xA4F1 0x3181 #HANGUL LETTER YESIEUNG +0xA4F2 0x3182 #HANGUL LETTER YESIEUNG-SIOS +0xA4F3 0x3183 #HANGUL LETTER YESIEUNG-PANSIOS +0xA4F4 0x3184 #HANGUL LETTER KAPYEOUNPHIEUPH +0xA4F5 0x3185 #HANGUL LETTER SSANGHIEUH +0xA4F6 0x3186 #HANGUL LETTER YEORINHIEUH +0xA4F7 0x3187 #HANGUL LETTER YO-YA +0xA4F8 0x3188 #HANGUL LETTER YO-YAE +0xA4F9 0x3189 #HANGUL LETTER YO-I +0xA4FA 0x318A #HANGUL LETTER YU-YEO +0xA4FB 0x318B #HANGUL LETTER YU-YE +0xA4FC 0x318C #HANGUL LETTER YU-I +0xA4FD 0x318D #HANGUL LETTER ARAEA +0xA4FE 0x318E #HANGUL LETTER ARAEAE +0xA541 0xCA47 #HANGUL SYLLABLE SSANGCIEUC YAE CHIEUCH +0xA542 0xCA48 #HANGUL SYLLABLE SSANGCIEUC YAE KHIEUKH +0xA543 0xCA49 #HANGUL SYLLABLE SSANGCIEUC YAE THIEUTH +0xA544 0xCA4A #HANGUL SYLLABLE SSANGCIEUC YAE PHIEUPH +0xA545 0xCA4B #HANGUL SYLLABLE SSANGCIEUC YAE HIEUH +0xA546 0xCA4E #HANGUL SYLLABLE SSANGCIEUC EO SSANGKIYEOK +0xA547 0xCA4F #HANGUL SYLLABLE SSANGCIEUC EO KIYEOKSIOS +0xA548 0xCA51 #HANGUL SYLLABLE SSANGCIEUC EO NIEUNCIEUC +0xA549 0xCA52 #HANGUL SYLLABLE SSANGCIEUC EO NIEUNHIEUH +0xA54A 0xCA53 #HANGUL SYLLABLE SSANGCIEUC EO TIKEUT +0xA54B 0xCA55 #HANGUL SYLLABLE SSANGCIEUC EO RIEULKIYEOK +0xA54C 0xCA56 #HANGUL SYLLABLE SSANGCIEUC EO RIEULMIEUM +0xA54D 0xCA57 #HANGUL SYLLABLE SSANGCIEUC EO RIEULPIEUP +0xA54E 0xCA58 #HANGUL SYLLABLE SSANGCIEUC EO RIEULSIOS +0xA54F 0xCA59 #HANGUL SYLLABLE SSANGCIEUC EO RIEULTHIEUTH +0xA550 0xCA5A #HANGUL SYLLABLE SSANGCIEUC EO RIEULPHIEUPH +0xA551 0xCA5B #HANGUL SYLLABLE SSANGCIEUC EO RIEULHIEUH +0xA552 0xCA5E #HANGUL SYLLABLE SSANGCIEUC EO PIEUPSIOS +0xA553 0xCA62 #HANGUL SYLLABLE SSANGCIEUC EO CIEUC +0xA554 0xCA63 #HANGUL SYLLABLE SSANGCIEUC EO CHIEUCH +0xA555 0xCA64 #HANGUL SYLLABLE SSANGCIEUC EO KHIEUKH +0xA556 0xCA65 #HANGUL SYLLABLE SSANGCIEUC EO THIEUTH +0xA557 0xCA66 #HANGUL SYLLABLE SSANGCIEUC EO PHIEUPH +0xA558 0xCA67 #HANGUL SYLLABLE SSANGCIEUC EO HIEUH +0xA559 0xCA69 #HANGUL SYLLABLE SSANGCIEUC E KIYEOK +0xA55A 0xCA6A #HANGUL SYLLABLE SSANGCIEUC E SSANGKIYEOK +0xA561 0xCA6B #HANGUL SYLLABLE SSANGCIEUC E KIYEOKSIOS +0xA562 0xCA6C #HANGUL SYLLABLE SSANGCIEUC E NIEUN +0xA563 0xCA6D #HANGUL SYLLABLE SSANGCIEUC E NIEUNCIEUC +0xA564 0xCA6E #HANGUL SYLLABLE SSANGCIEUC E NIEUNHIEUH +0xA565 0xCA6F #HANGUL SYLLABLE SSANGCIEUC E TIKEUT +0xA566 0xCA70 #HANGUL SYLLABLE SSANGCIEUC E RIEUL +0xA567 0xCA71 #HANGUL SYLLABLE SSANGCIEUC E RIEULKIYEOK +0xA568 0xCA72 #HANGUL SYLLABLE SSANGCIEUC E RIEULMIEUM +0xA569 0xCA73 #HANGUL SYLLABLE SSANGCIEUC E RIEULPIEUP +0xA56A 0xCA74 #HANGUL SYLLABLE SSANGCIEUC E RIEULSIOS +0xA56B 0xCA75 #HANGUL SYLLABLE SSANGCIEUC E RIEULTHIEUTH +0xA56C 0xCA76 #HANGUL SYLLABLE SSANGCIEUC E RIEULPHIEUPH +0xA56D 0xCA77 #HANGUL SYLLABLE SSANGCIEUC E RIEULHIEUH +0xA56E 0xCA78 #HANGUL SYLLABLE SSANGCIEUC E MIEUM +0xA56F 0xCA79 #HANGUL SYLLABLE SSANGCIEUC E PIEUP +0xA570 0xCA7A #HANGUL SYLLABLE SSANGCIEUC E PIEUPSIOS +0xA571 0xCA7B #HANGUL SYLLABLE SSANGCIEUC E SIOS +0xA572 0xCA7C #HANGUL SYLLABLE SSANGCIEUC E SSANGSIOS +0xA573 0xCA7E #HANGUL SYLLABLE SSANGCIEUC E CIEUC +0xA574 0xCA7F #HANGUL SYLLABLE SSANGCIEUC E CHIEUCH +0xA575 0xCA80 #HANGUL SYLLABLE SSANGCIEUC E KHIEUKH +0xA576 0xCA81 #HANGUL SYLLABLE SSANGCIEUC E THIEUTH +0xA577 0xCA82 #HANGUL SYLLABLE SSANGCIEUC E PHIEUPH +0xA578 0xCA83 #HANGUL SYLLABLE SSANGCIEUC E HIEUH +0xA579 0xCA85 #HANGUL SYLLABLE SSANGCIEUC YEO KIYEOK +0xA57A 0xCA86 #HANGUL SYLLABLE SSANGCIEUC YEO SSANGKIYEOK +0xA581 0xCA87 #HANGUL SYLLABLE SSANGCIEUC YEO KIYEOKSIOS +0xA582 0xCA88 #HANGUL SYLLABLE SSANGCIEUC YEO NIEUN +0xA583 0xCA89 #HANGUL SYLLABLE SSANGCIEUC YEO NIEUNCIEUC +0xA584 0xCA8A #HANGUL SYLLABLE SSANGCIEUC YEO NIEUNHIEUH +0xA585 0xCA8B #HANGUL SYLLABLE SSANGCIEUC YEO TIKEUT +0xA586 0xCA8C #HANGUL SYLLABLE SSANGCIEUC YEO RIEUL +0xA587 0xCA8D #HANGUL SYLLABLE SSANGCIEUC YEO RIEULKIYEOK +0xA588 0xCA8E #HANGUL SYLLABLE SSANGCIEUC YEO RIEULMIEUM +0xA589 0xCA8F #HANGUL SYLLABLE SSANGCIEUC YEO RIEULPIEUP +0xA58A 0xCA90 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULSIOS +0xA58B 0xCA91 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULTHIEUTH +0xA58C 0xCA92 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULPHIEUPH +0xA58D 0xCA93 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULHIEUH +0xA58E 0xCA94 #HANGUL SYLLABLE SSANGCIEUC YEO MIEUM +0xA58F 0xCA95 #HANGUL SYLLABLE SSANGCIEUC YEO PIEUP +0xA590 0xCA96 #HANGUL SYLLABLE SSANGCIEUC YEO PIEUPSIOS +0xA591 0xCA97 #HANGUL SYLLABLE SSANGCIEUC YEO SIOS +0xA592 0xCA99 #HANGUL SYLLABLE SSANGCIEUC YEO IEUNG +0xA593 0xCA9A #HANGUL SYLLABLE SSANGCIEUC YEO CIEUC +0xA594 0xCA9B #HANGUL SYLLABLE SSANGCIEUC YEO CHIEUCH +0xA595 0xCA9C #HANGUL SYLLABLE SSANGCIEUC YEO KHIEUKH +0xA596 0xCA9D #HANGUL SYLLABLE SSANGCIEUC YEO THIEUTH +0xA597 0xCA9E #HANGUL SYLLABLE SSANGCIEUC YEO PHIEUPH +0xA598 0xCA9F #HANGUL SYLLABLE SSANGCIEUC YEO HIEUH +0xA599 0xCAA0 #HANGUL SYLLABLE SSANGCIEUC YE +0xA59A 0xCAA1 #HANGUL SYLLABLE SSANGCIEUC YE KIYEOK +0xA59B 0xCAA2 #HANGUL SYLLABLE SSANGCIEUC YE SSANGKIYEOK +0xA59C 0xCAA3 #HANGUL SYLLABLE SSANGCIEUC YE KIYEOKSIOS +0xA59D 0xCAA4 #HANGUL SYLLABLE SSANGCIEUC YE NIEUN +0xA59E 0xCAA5 #HANGUL SYLLABLE SSANGCIEUC YE NIEUNCIEUC +0xA59F 0xCAA6 #HANGUL SYLLABLE SSANGCIEUC YE NIEUNHIEUH +0xA5A0 0xCAA7 #HANGUL SYLLABLE SSANGCIEUC YE TIKEUT +0xA5A1 0x2170 #SMALL ROMAN NUMERAL ONE +0xA5A2 0x2171 #SMALL ROMAN NUMERAL TWO +0xA5A3 0x2172 #SMALL ROMAN NUMERAL THREE +0xA5A4 0x2173 #SMALL ROMAN NUMERAL FOUR +0xA5A5 0x2174 #SMALL ROMAN NUMERAL FIVE +0xA5A6 0x2175 #SMALL ROMAN NUMERAL SIX +0xA5A7 0x2176 #SMALL ROMAN NUMERAL SEVEN +0xA5A8 0x2177 #SMALL ROMAN NUMERAL EIGHT +0xA5A9 0x2178 #SMALL ROMAN NUMERAL NINE +0xA5AA 0x2179 #SMALL ROMAN NUMERAL TEN +0xA5B0 0x2160 #ROMAN NUMERAL ONE +0xA5B1 0x2161 #ROMAN NUMERAL TWO +0xA5B2 0x2162 #ROMAN NUMERAL THREE +0xA5B3 0x2163 #ROMAN NUMERAL FOUR +0xA5B4 0x2164 #ROMAN NUMERAL FIVE +0xA5B5 0x2165 #ROMAN NUMERAL SIX +0xA5B6 0x2166 #ROMAN NUMERAL SEVEN +0xA5B7 0x2167 #ROMAN NUMERAL EIGHT +0xA5B8 0x2168 #ROMAN NUMERAL NINE +0xA5B9 0x2169 #ROMAN NUMERAL TEN +0xA5C1 0x0391 #GREEK CAPITAL LETTER ALPHA +0xA5C2 0x0392 #GREEK CAPITAL LETTER BETA +0xA5C3 0x0393 #GREEK CAPITAL LETTER GAMMA +0xA5C4 0x0394 #GREEK CAPITAL LETTER DELTA +0xA5C5 0x0395 #GREEK CAPITAL LETTER EPSILON +0xA5C6 0x0396 #GREEK CAPITAL LETTER ZETA +0xA5C7 0x0397 #GREEK CAPITAL LETTER ETA +0xA5C8 0x0398 #GREEK CAPITAL LETTER THETA +0xA5C9 0x0399 #GREEK CAPITAL LETTER IOTA +0xA5CA 0x039A #GREEK CAPITAL LETTER KAPPA +0xA5CB 0x039B #GREEK CAPITAL LETTER LAMDA +0xA5CC 0x039C #GREEK CAPITAL LETTER MU +0xA5CD 0x039D #GREEK CAPITAL LETTER NU +0xA5CE 0x039E #GREEK CAPITAL LETTER XI +0xA5CF 0x039F #GREEK CAPITAL LETTER OMICRON +0xA5D0 0x03A0 #GREEK CAPITAL LETTER PI +0xA5D1 0x03A1 #GREEK CAPITAL LETTER RHO +0xA5D2 0x03A3 #GREEK CAPITAL LETTER SIGMA +0xA5D3 0x03A4 #GREEK CAPITAL LETTER TAU +0xA5D4 0x03A5 #GREEK CAPITAL LETTER UPSILON +0xA5D5 0x03A6 #GREEK CAPITAL LETTER PHI +0xA5D6 0x03A7 #GREEK CAPITAL LETTER CHI +0xA5D7 0x03A8 #GREEK CAPITAL LETTER PSI +0xA5D8 0x03A9 #GREEK CAPITAL LETTER OMEGA +0xA5E1 0x03B1 #GREEK SMALL LETTER ALPHA +0xA5E2 0x03B2 #GREEK SMALL LETTER BETA +0xA5E3 0x03B3 #GREEK SMALL LETTER GAMMA +0xA5E4 0x03B4 #GREEK SMALL LETTER DELTA +0xA5E5 0x03B5 #GREEK SMALL LETTER EPSILON +0xA5E6 0x03B6 #GREEK SMALL LETTER ZETA +0xA5E7 0x03B7 #GREEK SMALL LETTER ETA +0xA5E8 0x03B8 #GREEK SMALL LETTER THETA +0xA5E9 0x03B9 #GREEK SMALL LETTER IOTA +0xA5EA 0x03BA #GREEK SMALL LETTER KAPPA +0xA5EB 0x03BB #GREEK SMALL LETTER LAMDA +0xA5EC 0x03BC #GREEK SMALL LETTER MU +0xA5ED 0x03BD #GREEK SMALL LETTER NU +0xA5EE 0x03BE #GREEK SMALL LETTER XI +0xA5EF 0x03BF #GREEK SMALL LETTER OMICRON +0xA5F0 0x03C0 #GREEK SMALL LETTER PI +0xA5F1 0x03C1 #GREEK SMALL LETTER RHO +0xA5F2 0x03C3 #GREEK SMALL LETTER SIGMA +0xA5F3 0x03C4 #GREEK SMALL LETTER TAU +0xA5F4 0x03C5 #GREEK SMALL LETTER UPSILON +0xA5F5 0x03C6 #GREEK SMALL LETTER PHI +0xA5F6 0x03C7 #GREEK SMALL LETTER CHI +0xA5F7 0x03C8 #GREEK SMALL LETTER PSI +0xA5F8 0x03C9 #GREEK SMALL LETTER OMEGA +0xA641 0xCAA8 #HANGUL SYLLABLE SSANGCIEUC YE RIEUL +0xA642 0xCAA9 #HANGUL SYLLABLE SSANGCIEUC YE RIEULKIYEOK +0xA643 0xCAAA #HANGUL SYLLABLE SSANGCIEUC YE RIEULMIEUM +0xA644 0xCAAB #HANGUL SYLLABLE SSANGCIEUC YE RIEULPIEUP +0xA645 0xCAAC #HANGUL SYLLABLE SSANGCIEUC YE RIEULSIOS +0xA646 0xCAAD #HANGUL SYLLABLE SSANGCIEUC YE RIEULTHIEUTH +0xA647 0xCAAE #HANGUL SYLLABLE SSANGCIEUC YE RIEULPHIEUPH +0xA648 0xCAAF #HANGUL SYLLABLE SSANGCIEUC YE RIEULHIEUH +0xA649 0xCAB0 #HANGUL SYLLABLE SSANGCIEUC YE MIEUM +0xA64A 0xCAB1 #HANGUL SYLLABLE SSANGCIEUC YE PIEUP +0xA64B 0xCAB2 #HANGUL SYLLABLE SSANGCIEUC YE PIEUPSIOS +0xA64C 0xCAB3 #HANGUL SYLLABLE SSANGCIEUC YE SIOS +0xA64D 0xCAB4 #HANGUL SYLLABLE SSANGCIEUC YE SSANGSIOS +0xA64E 0xCAB5 #HANGUL SYLLABLE SSANGCIEUC YE IEUNG +0xA64F 0xCAB6 #HANGUL SYLLABLE SSANGCIEUC YE CIEUC +0xA650 0xCAB7 #HANGUL SYLLABLE SSANGCIEUC YE CHIEUCH +0xA651 0xCAB8 #HANGUL SYLLABLE SSANGCIEUC YE KHIEUKH +0xA652 0xCAB9 #HANGUL SYLLABLE SSANGCIEUC YE THIEUTH +0xA653 0xCABA #HANGUL SYLLABLE SSANGCIEUC YE PHIEUPH +0xA654 0xCABB #HANGUL SYLLABLE SSANGCIEUC YE HIEUH +0xA655 0xCABE #HANGUL SYLLABLE SSANGCIEUC O SSANGKIYEOK +0xA656 0xCABF #HANGUL SYLLABLE SSANGCIEUC O KIYEOKSIOS +0xA657 0xCAC1 #HANGUL SYLLABLE SSANGCIEUC O NIEUNCIEUC +0xA658 0xCAC2 #HANGUL SYLLABLE SSANGCIEUC O NIEUNHIEUH +0xA659 0xCAC3 #HANGUL SYLLABLE SSANGCIEUC O TIKEUT +0xA65A 0xCAC5 #HANGUL SYLLABLE SSANGCIEUC O RIEULKIYEOK +0xA661 0xCAC6 #HANGUL SYLLABLE SSANGCIEUC O RIEULMIEUM +0xA662 0xCAC7 #HANGUL SYLLABLE SSANGCIEUC O RIEULPIEUP +0xA663 0xCAC8 #HANGUL SYLLABLE SSANGCIEUC O RIEULSIOS +0xA664 0xCAC9 #HANGUL SYLLABLE SSANGCIEUC O RIEULTHIEUTH +0xA665 0xCACA #HANGUL SYLLABLE SSANGCIEUC O RIEULPHIEUPH +0xA666 0xCACB #HANGUL SYLLABLE SSANGCIEUC O RIEULHIEUH +0xA667 0xCACE #HANGUL SYLLABLE SSANGCIEUC O PIEUPSIOS +0xA668 0xCAD0 #HANGUL SYLLABLE SSANGCIEUC O SSANGSIOS +0xA669 0xCAD2 #HANGUL SYLLABLE SSANGCIEUC O CIEUC +0xA66A 0xCAD4 #HANGUL SYLLABLE SSANGCIEUC O KHIEUKH +0xA66B 0xCAD5 #HANGUL SYLLABLE SSANGCIEUC O THIEUTH +0xA66C 0xCAD6 #HANGUL SYLLABLE SSANGCIEUC O PHIEUPH +0xA66D 0xCAD7 #HANGUL SYLLABLE SSANGCIEUC O HIEUH +0xA66E 0xCADA #HANGUL SYLLABLE SSANGCIEUC WA SSANGKIYEOK +0xA66F 0xCADB #HANGUL SYLLABLE SSANGCIEUC WA KIYEOKSIOS +0xA670 0xCADC #HANGUL SYLLABLE SSANGCIEUC WA NIEUN +0xA671 0xCADD #HANGUL SYLLABLE SSANGCIEUC WA NIEUNCIEUC +0xA672 0xCADE #HANGUL SYLLABLE SSANGCIEUC WA NIEUNHIEUH +0xA673 0xCADF #HANGUL SYLLABLE SSANGCIEUC WA TIKEUT +0xA674 0xCAE1 #HANGUL SYLLABLE SSANGCIEUC WA RIEULKIYEOK +0xA675 0xCAE2 #HANGUL SYLLABLE SSANGCIEUC WA RIEULMIEUM +0xA676 0xCAE3 #HANGUL SYLLABLE SSANGCIEUC WA RIEULPIEUP +0xA677 0xCAE4 #HANGUL SYLLABLE SSANGCIEUC WA RIEULSIOS +0xA678 0xCAE5 #HANGUL SYLLABLE SSANGCIEUC WA RIEULTHIEUTH +0xA679 0xCAE6 #HANGUL SYLLABLE SSANGCIEUC WA RIEULPHIEUPH +0xA67A 0xCAE7 #HANGUL SYLLABLE SSANGCIEUC WA RIEULHIEUH +0xA681 0xCAE8 #HANGUL SYLLABLE SSANGCIEUC WA MIEUM +0xA682 0xCAE9 #HANGUL SYLLABLE SSANGCIEUC WA PIEUP +0xA683 0xCAEA #HANGUL SYLLABLE SSANGCIEUC WA PIEUPSIOS +0xA684 0xCAEB #HANGUL SYLLABLE SSANGCIEUC WA SIOS +0xA685 0xCAED #HANGUL SYLLABLE SSANGCIEUC WA IEUNG +0xA686 0xCAEE #HANGUL SYLLABLE SSANGCIEUC WA CIEUC +0xA687 0xCAEF #HANGUL SYLLABLE SSANGCIEUC WA CHIEUCH +0xA688 0xCAF0 #HANGUL SYLLABLE SSANGCIEUC WA KHIEUKH +0xA689 0xCAF1 #HANGUL SYLLABLE SSANGCIEUC WA THIEUTH +0xA68A 0xCAF2 #HANGUL SYLLABLE SSANGCIEUC WA PHIEUPH +0xA68B 0xCAF3 #HANGUL SYLLABLE SSANGCIEUC WA HIEUH +0xA68C 0xCAF5 #HANGUL SYLLABLE SSANGCIEUC WAE KIYEOK +0xA68D 0xCAF6 #HANGUL SYLLABLE SSANGCIEUC WAE SSANGKIYEOK +0xA68E 0xCAF7 #HANGUL SYLLABLE SSANGCIEUC WAE KIYEOKSIOS +0xA68F 0xCAF8 #HANGUL SYLLABLE SSANGCIEUC WAE NIEUN +0xA690 0xCAF9 #HANGUL SYLLABLE SSANGCIEUC WAE NIEUNCIEUC +0xA691 0xCAFA #HANGUL SYLLABLE SSANGCIEUC WAE NIEUNHIEUH +0xA692 0xCAFB #HANGUL SYLLABLE SSANGCIEUC WAE TIKEUT +0xA693 0xCAFC #HANGUL SYLLABLE SSANGCIEUC WAE RIEUL +0xA694 0xCAFD #HANGUL SYLLABLE SSANGCIEUC WAE RIEULKIYEOK +0xA695 0xCAFE #HANGUL SYLLABLE SSANGCIEUC WAE RIEULMIEUM +0xA696 0xCAFF #HANGUL SYLLABLE SSANGCIEUC WAE RIEULPIEUP +0xA697 0xCB00 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULSIOS +0xA698 0xCB01 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULTHIEUTH +0xA699 0xCB02 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULPHIEUPH +0xA69A 0xCB03 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULHIEUH +0xA69B 0xCB04 #HANGUL SYLLABLE SSANGCIEUC WAE MIEUM +0xA69C 0xCB05 #HANGUL SYLLABLE SSANGCIEUC WAE PIEUP +0xA69D 0xCB06 #HANGUL SYLLABLE SSANGCIEUC WAE PIEUPSIOS +0xA69E 0xCB07 #HANGUL SYLLABLE SSANGCIEUC WAE SIOS +0xA69F 0xCB09 #HANGUL SYLLABLE SSANGCIEUC WAE IEUNG +0xA6A0 0xCB0A #HANGUL SYLLABLE SSANGCIEUC WAE CIEUC +0xA6A1 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xA6A2 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xA6A3 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xA6A4 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xA6A5 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xA6A6 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xA6A7 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xA6A8 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xA6A9 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xA6AA 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xA6AB 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xA6AC 0x2501 #BOX DRAWINGS HEAVY HORIZONTAL +0xA6AD 0x2503 #BOX DRAWINGS HEAVY VERTICAL +0xA6AE 0x250F #BOX DRAWINGS HEAVY DOWN AND RIGHT +0xA6AF 0x2513 #BOX DRAWINGS HEAVY DOWN AND LEFT +0xA6B0 0x251B #BOX DRAWINGS HEAVY UP AND LEFT +0xA6B1 0x2517 #BOX DRAWINGS HEAVY UP AND RIGHT +0xA6B2 0x2523 #BOX DRAWINGS HEAVY VERTICAL AND RIGHT +0xA6B3 0x2533 #BOX DRAWINGS HEAVY DOWN AND HORIZONTAL +0xA6B4 0x252B #BOX DRAWINGS HEAVY VERTICAL AND LEFT +0xA6B5 0x253B #BOX DRAWINGS HEAVY UP AND HORIZONTAL +0xA6B6 0x254B #BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL +0xA6B7 0x2520 #BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT +0xA6B8 0x252F #BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY +0xA6B9 0x2528 #BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT +0xA6BA 0x2537 #BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY +0xA6BB 0x253F #BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY +0xA6BC 0x251D #BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY +0xA6BD 0x2530 #BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT +0xA6BE 0x2525 #BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY +0xA6BF 0x2538 #BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT +0xA6C0 0x2542 #BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT +0xA6C1 0x2512 #BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT +0xA6C2 0x2511 #BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY +0xA6C3 0x251A #BOX DRAWINGS UP HEAVY AND LEFT LIGHT +0xA6C4 0x2519 #BOX DRAWINGS UP LIGHT AND LEFT HEAVY +0xA6C5 0x2516 #BOX DRAWINGS UP HEAVY AND RIGHT LIGHT +0xA6C6 0x2515 #BOX DRAWINGS UP LIGHT AND RIGHT HEAVY +0xA6C7 0x250E #BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT +0xA6C8 0x250D #BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY +0xA6C9 0x251E #BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT +0xA6CA 0x251F #BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT +0xA6CB 0x2521 #BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY +0xA6CC 0x2522 #BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY +0xA6CD 0x2526 #BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT +0xA6CE 0x2527 #BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT +0xA6CF 0x2529 #BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY +0xA6D0 0x252A #BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY +0xA6D1 0x252D #BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT +0xA6D2 0x252E #BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT +0xA6D3 0x2531 #BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY +0xA6D4 0x2532 #BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY +0xA6D5 0x2535 #BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT +0xA6D6 0x2536 #BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT +0xA6D7 0x2539 #BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY +0xA6D8 0x253A #BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY +0xA6D9 0x253D #BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT +0xA6DA 0x253E #BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT +0xA6DB 0x2540 #BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT +0xA6DC 0x2541 #BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT +0xA6DD 0x2543 #BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT +0xA6DE 0x2544 #BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT +0xA6DF 0x2545 #BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT +0xA6E0 0x2546 #BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT +0xA6E1 0x2547 #BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY +0xA6E2 0x2548 #BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY +0xA6E3 0x2549 #BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY +0xA6E4 0x254A #BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY +0xA741 0xCB0B #HANGUL SYLLABLE SSANGCIEUC WAE CHIEUCH +0xA742 0xCB0C #HANGUL SYLLABLE SSANGCIEUC WAE KHIEUKH +0xA743 0xCB0D #HANGUL SYLLABLE SSANGCIEUC WAE THIEUTH +0xA744 0xCB0E #HANGUL SYLLABLE SSANGCIEUC WAE PHIEUPH +0xA745 0xCB0F #HANGUL SYLLABLE SSANGCIEUC WAE HIEUH +0xA746 0xCB11 #HANGUL SYLLABLE SSANGCIEUC OE KIYEOK +0xA747 0xCB12 #HANGUL SYLLABLE SSANGCIEUC OE SSANGKIYEOK +0xA748 0xCB13 #HANGUL SYLLABLE SSANGCIEUC OE KIYEOKSIOS +0xA749 0xCB15 #HANGUL SYLLABLE SSANGCIEUC OE NIEUNCIEUC +0xA74A 0xCB16 #HANGUL SYLLABLE SSANGCIEUC OE NIEUNHIEUH +0xA74B 0xCB17 #HANGUL SYLLABLE SSANGCIEUC OE TIKEUT +0xA74C 0xCB19 #HANGUL SYLLABLE SSANGCIEUC OE RIEULKIYEOK +0xA74D 0xCB1A #HANGUL SYLLABLE SSANGCIEUC OE RIEULMIEUM +0xA74E 0xCB1B #HANGUL SYLLABLE SSANGCIEUC OE RIEULPIEUP +0xA74F 0xCB1C #HANGUL SYLLABLE SSANGCIEUC OE RIEULSIOS +0xA750 0xCB1D #HANGUL SYLLABLE SSANGCIEUC OE RIEULTHIEUTH +0xA751 0xCB1E #HANGUL SYLLABLE SSANGCIEUC OE RIEULPHIEUPH +0xA752 0xCB1F #HANGUL SYLLABLE SSANGCIEUC OE RIEULHIEUH +0xA753 0xCB22 #HANGUL SYLLABLE SSANGCIEUC OE PIEUPSIOS +0xA754 0xCB23 #HANGUL SYLLABLE SSANGCIEUC OE SIOS +0xA755 0xCB24 #HANGUL SYLLABLE SSANGCIEUC OE SSANGSIOS +0xA756 0xCB25 #HANGUL SYLLABLE SSANGCIEUC OE IEUNG +0xA757 0xCB26 #HANGUL SYLLABLE SSANGCIEUC OE CIEUC +0xA758 0xCB27 #HANGUL SYLLABLE SSANGCIEUC OE CHIEUCH +0xA759 0xCB28 #HANGUL SYLLABLE SSANGCIEUC OE KHIEUKH +0xA75A 0xCB29 #HANGUL SYLLABLE SSANGCIEUC OE THIEUTH +0xA761 0xCB2A #HANGUL SYLLABLE SSANGCIEUC OE PHIEUPH +0xA762 0xCB2B #HANGUL SYLLABLE SSANGCIEUC OE HIEUH +0xA763 0xCB2C #HANGUL SYLLABLE SSANGCIEUC YO +0xA764 0xCB2D #HANGUL SYLLABLE SSANGCIEUC YO KIYEOK +0xA765 0xCB2E #HANGUL SYLLABLE SSANGCIEUC YO SSANGKIYEOK +0xA766 0xCB2F #HANGUL SYLLABLE SSANGCIEUC YO KIYEOKSIOS +0xA767 0xCB30 #HANGUL SYLLABLE SSANGCIEUC YO NIEUN +0xA768 0xCB31 #HANGUL SYLLABLE SSANGCIEUC YO NIEUNCIEUC +0xA769 0xCB32 #HANGUL SYLLABLE SSANGCIEUC YO NIEUNHIEUH +0xA76A 0xCB33 #HANGUL SYLLABLE SSANGCIEUC YO TIKEUT +0xA76B 0xCB34 #HANGUL SYLLABLE SSANGCIEUC YO RIEUL +0xA76C 0xCB35 #HANGUL SYLLABLE SSANGCIEUC YO RIEULKIYEOK +0xA76D 0xCB36 #HANGUL SYLLABLE SSANGCIEUC YO RIEULMIEUM +0xA76E 0xCB37 #HANGUL SYLLABLE SSANGCIEUC YO RIEULPIEUP +0xA76F 0xCB38 #HANGUL SYLLABLE SSANGCIEUC YO RIEULSIOS +0xA770 0xCB39 #HANGUL SYLLABLE SSANGCIEUC YO RIEULTHIEUTH +0xA771 0xCB3A #HANGUL SYLLABLE SSANGCIEUC YO RIEULPHIEUPH +0xA772 0xCB3B #HANGUL SYLLABLE SSANGCIEUC YO RIEULHIEUH +0xA773 0xCB3C #HANGUL SYLLABLE SSANGCIEUC YO MIEUM +0xA774 0xCB3D #HANGUL SYLLABLE SSANGCIEUC YO PIEUP +0xA775 0xCB3E #HANGUL SYLLABLE SSANGCIEUC YO PIEUPSIOS +0xA776 0xCB3F #HANGUL SYLLABLE SSANGCIEUC YO SIOS +0xA777 0xCB40 #HANGUL SYLLABLE SSANGCIEUC YO SSANGSIOS +0xA778 0xCB42 #HANGUL SYLLABLE SSANGCIEUC YO CIEUC +0xA779 0xCB43 #HANGUL SYLLABLE SSANGCIEUC YO CHIEUCH +0xA77A 0xCB44 #HANGUL SYLLABLE SSANGCIEUC YO KHIEUKH +0xA781 0xCB45 #HANGUL SYLLABLE SSANGCIEUC YO THIEUTH +0xA782 0xCB46 #HANGUL SYLLABLE SSANGCIEUC YO PHIEUPH +0xA783 0xCB47 #HANGUL SYLLABLE SSANGCIEUC YO HIEUH +0xA784 0xCB4A #HANGUL SYLLABLE SSANGCIEUC U SSANGKIYEOK +0xA785 0xCB4B #HANGUL SYLLABLE SSANGCIEUC U KIYEOKSIOS +0xA786 0xCB4D #HANGUL SYLLABLE SSANGCIEUC U NIEUNCIEUC +0xA787 0xCB4E #HANGUL SYLLABLE SSANGCIEUC U NIEUNHIEUH +0xA788 0xCB4F #HANGUL SYLLABLE SSANGCIEUC U TIKEUT +0xA789 0xCB51 #HANGUL SYLLABLE SSANGCIEUC U RIEULKIYEOK +0xA78A 0xCB52 #HANGUL SYLLABLE SSANGCIEUC U RIEULMIEUM +0xA78B 0xCB53 #HANGUL SYLLABLE SSANGCIEUC U RIEULPIEUP +0xA78C 0xCB54 #HANGUL SYLLABLE SSANGCIEUC U RIEULSIOS +0xA78D 0xCB55 #HANGUL SYLLABLE SSANGCIEUC U RIEULTHIEUTH +0xA78E 0xCB56 #HANGUL SYLLABLE SSANGCIEUC U RIEULPHIEUPH +0xA78F 0xCB57 #HANGUL SYLLABLE SSANGCIEUC U RIEULHIEUH +0xA790 0xCB5A #HANGUL SYLLABLE SSANGCIEUC U PIEUPSIOS +0xA791 0xCB5B #HANGUL SYLLABLE SSANGCIEUC U SIOS +0xA792 0xCB5C #HANGUL SYLLABLE SSANGCIEUC U SSANGSIOS +0xA793 0xCB5E #HANGUL SYLLABLE SSANGCIEUC U CIEUC +0xA794 0xCB5F #HANGUL SYLLABLE SSANGCIEUC U CHIEUCH +0xA795 0xCB60 #HANGUL SYLLABLE SSANGCIEUC U KHIEUKH +0xA796 0xCB61 #HANGUL SYLLABLE SSANGCIEUC U THIEUTH +0xA797 0xCB62 #HANGUL SYLLABLE SSANGCIEUC U PHIEUPH +0xA798 0xCB63 #HANGUL SYLLABLE SSANGCIEUC U HIEUH +0xA799 0xCB65 #HANGUL SYLLABLE SSANGCIEUC WEO KIYEOK +0xA79A 0xCB66 #HANGUL SYLLABLE SSANGCIEUC WEO SSANGKIYEOK +0xA79B 0xCB67 #HANGUL SYLLABLE SSANGCIEUC WEO KIYEOKSIOS +0xA79C 0xCB68 #HANGUL SYLLABLE SSANGCIEUC WEO NIEUN +0xA79D 0xCB69 #HANGUL SYLLABLE SSANGCIEUC WEO NIEUNCIEUC +0xA79E 0xCB6A #HANGUL SYLLABLE SSANGCIEUC WEO NIEUNHIEUH +0xA79F 0xCB6B #HANGUL SYLLABLE SSANGCIEUC WEO TIKEUT +0xA7A0 0xCB6C #HANGUL SYLLABLE SSANGCIEUC WEO RIEUL +0xA7A1 0x3395 #SQUARE MU L +0xA7A2 0x3396 #SQUARE ML +0xA7A3 0x3397 #SQUARE DL +0xA7A4 0x2113 #SCRIPT SMALL L +0xA7A5 0x3398 #SQUARE KL +0xA7A6 0x33C4 #SQUARE CC +0xA7A7 0x33A3 #SQUARE MM CUBED +0xA7A8 0x33A4 #SQUARE CM CUBED +0xA7A9 0x33A5 #SQUARE M CUBED +0xA7AA 0x33A6 #SQUARE KM CUBED +0xA7AB 0x3399 #SQUARE FM +0xA7AC 0x339A #SQUARE NM +0xA7AD 0x339B #SQUARE MU M +0xA7AE 0x339C #SQUARE MM +0xA7AF 0x339D #SQUARE CM +0xA7B0 0x339E #SQUARE KM +0xA7B1 0x339F #SQUARE MM SQUARED +0xA7B2 0x33A0 #SQUARE CM SQUARED +0xA7B3 0x33A1 #SQUARE M SQUARED +0xA7B4 0x33A2 #SQUARE KM SQUARED +0xA7B5 0x33CA #SQUARE HA +0xA7B6 0x338D #SQUARE MU G +0xA7B7 0x338E #SQUARE MG +0xA7B8 0x338F #SQUARE KG +0xA7B9 0x33CF #SQUARE KT +0xA7BA 0x3388 #SQUARE CAL +0xA7BB 0x3389 #SQUARE KCAL +0xA7BC 0x33C8 #SQUARE DB +0xA7BD 0x33A7 #SQUARE M OVER S +0xA7BE 0x33A8 #SQUARE M OVER S SQUARED +0xA7BF 0x33B0 #SQUARE PS +0xA7C0 0x33B1 #SQUARE NS +0xA7C1 0x33B2 #SQUARE MU S +0xA7C2 0x33B3 #SQUARE MS +0xA7C3 0x33B4 #SQUARE PV +0xA7C4 0x33B5 #SQUARE NV +0xA7C5 0x33B6 #SQUARE MU V +0xA7C6 0x33B7 #SQUARE MV +0xA7C7 0x33B8 #SQUARE KV +0xA7C8 0x33B9 #SQUARE MV MEGA +0xA7C9 0x3380 #SQUARE PA AMPS +0xA7CA 0x3381 #SQUARE NA +0xA7CB 0x3382 #SQUARE MU A +0xA7CC 0x3383 #SQUARE MA +0xA7CD 0x3384 #SQUARE KA +0xA7CE 0x33BA #SQUARE PW +0xA7CF 0x33BB #SQUARE NW +0xA7D0 0x33BC #SQUARE MU W +0xA7D1 0x33BD #SQUARE MW +0xA7D2 0x33BE #SQUARE KW +0xA7D3 0x33BF #SQUARE MW MEGA +0xA7D4 0x3390 #SQUARE HZ +0xA7D5 0x3391 #SQUARE KHZ +0xA7D6 0x3392 #SQUARE MHZ +0xA7D7 0x3393 #SQUARE GHZ +0xA7D8 0x3394 #SQUARE THZ +0xA7D9 0x2126 #OHM SIGN +0xA7DA 0x33C0 #SQUARE K OHM +0xA7DB 0x33C1 #SQUARE M OHM +0xA7DC 0x338A #SQUARE PF +0xA7DD 0x338B #SQUARE NF +0xA7DE 0x338C #SQUARE MU F +0xA7DF 0x33D6 #SQUARE MOL +0xA7E0 0x33C5 #SQUARE CD +0xA7E1 0x33AD #SQUARE RAD +0xA7E2 0x33AE #SQUARE RAD OVER S +0xA7E3 0x33AF #SQUARE RAD OVER S SQUARED +0xA7E4 0x33DB #SQUARE SR +0xA7E5 0x33A9 #SQUARE PA +0xA7E6 0x33AA #SQUARE KPA +0xA7E7 0x33AB #SQUARE MPA +0xA7E8 0x33AC #SQUARE GPA +0xA7E9 0x33DD #SQUARE WB +0xA7EA 0x33D0 #SQUARE LM +0xA7EB 0x33D3 #SQUARE LX +0xA7EC 0x33C3 #SQUARE BQ +0xA7ED 0x33C9 #SQUARE GY +0xA7EE 0x33DC #SQUARE SV +0xA7EF 0x33C6 #SQUARE C OVER KG +0xA841 0xCB6D #HANGUL SYLLABLE SSANGCIEUC WEO RIEULKIYEOK +0xA842 0xCB6E #HANGUL SYLLABLE SSANGCIEUC WEO RIEULMIEUM +0xA843 0xCB6F #HANGUL SYLLABLE SSANGCIEUC WEO RIEULPIEUP +0xA844 0xCB70 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULSIOS +0xA845 0xCB71 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULTHIEUTH +0xA846 0xCB72 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULPHIEUPH +0xA847 0xCB73 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULHIEUH +0xA848 0xCB74 #HANGUL SYLLABLE SSANGCIEUC WEO MIEUM +0xA849 0xCB75 #HANGUL SYLLABLE SSANGCIEUC WEO PIEUP +0xA84A 0xCB76 #HANGUL SYLLABLE SSANGCIEUC WEO PIEUPSIOS +0xA84B 0xCB77 #HANGUL SYLLABLE SSANGCIEUC WEO SIOS +0xA84C 0xCB7A #HANGUL SYLLABLE SSANGCIEUC WEO CIEUC +0xA84D 0xCB7B #HANGUL SYLLABLE SSANGCIEUC WEO CHIEUCH +0xA84E 0xCB7C #HANGUL SYLLABLE SSANGCIEUC WEO KHIEUKH +0xA84F 0xCB7D #HANGUL SYLLABLE SSANGCIEUC WEO THIEUTH +0xA850 0xCB7E #HANGUL SYLLABLE SSANGCIEUC WEO PHIEUPH +0xA851 0xCB7F #HANGUL SYLLABLE SSANGCIEUC WEO HIEUH +0xA852 0xCB80 #HANGUL SYLLABLE SSANGCIEUC WE +0xA853 0xCB81 #HANGUL SYLLABLE SSANGCIEUC WE KIYEOK +0xA854 0xCB82 #HANGUL SYLLABLE SSANGCIEUC WE SSANGKIYEOK +0xA855 0xCB83 #HANGUL SYLLABLE SSANGCIEUC WE KIYEOKSIOS +0xA856 0xCB84 #HANGUL SYLLABLE SSANGCIEUC WE NIEUN +0xA857 0xCB85 #HANGUL SYLLABLE SSANGCIEUC WE NIEUNCIEUC +0xA858 0xCB86 #HANGUL SYLLABLE SSANGCIEUC WE NIEUNHIEUH +0xA859 0xCB87 #HANGUL SYLLABLE SSANGCIEUC WE TIKEUT +0xA85A 0xCB88 #HANGUL SYLLABLE SSANGCIEUC WE RIEUL +0xA861 0xCB89 #HANGUL SYLLABLE SSANGCIEUC WE RIEULKIYEOK +0xA862 0xCB8A #HANGUL SYLLABLE SSANGCIEUC WE RIEULMIEUM +0xA863 0xCB8B #HANGUL SYLLABLE SSANGCIEUC WE RIEULPIEUP +0xA864 0xCB8C #HANGUL SYLLABLE SSANGCIEUC WE RIEULSIOS +0xA865 0xCB8D #HANGUL SYLLABLE SSANGCIEUC WE RIEULTHIEUTH +0xA866 0xCB8E #HANGUL SYLLABLE SSANGCIEUC WE RIEULPHIEUPH +0xA867 0xCB8F #HANGUL SYLLABLE SSANGCIEUC WE RIEULHIEUH +0xA868 0xCB90 #HANGUL SYLLABLE SSANGCIEUC WE MIEUM +0xA869 0xCB91 #HANGUL SYLLABLE SSANGCIEUC WE PIEUP +0xA86A 0xCB92 #HANGUL SYLLABLE SSANGCIEUC WE PIEUPSIOS +0xA86B 0xCB93 #HANGUL SYLLABLE SSANGCIEUC WE SIOS +0xA86C 0xCB94 #HANGUL SYLLABLE SSANGCIEUC WE SSANGSIOS +0xA86D 0xCB95 #HANGUL SYLLABLE SSANGCIEUC WE IEUNG +0xA86E 0xCB96 #HANGUL SYLLABLE SSANGCIEUC WE CIEUC +0xA86F 0xCB97 #HANGUL SYLLABLE SSANGCIEUC WE CHIEUCH +0xA870 0xCB98 #HANGUL SYLLABLE SSANGCIEUC WE KHIEUKH +0xA871 0xCB99 #HANGUL SYLLABLE SSANGCIEUC WE THIEUTH +0xA872 0xCB9A #HANGUL SYLLABLE SSANGCIEUC WE PHIEUPH +0xA873 0xCB9B #HANGUL SYLLABLE SSANGCIEUC WE HIEUH +0xA874 0xCB9D #HANGUL SYLLABLE SSANGCIEUC WI KIYEOK +0xA875 0xCB9E #HANGUL SYLLABLE SSANGCIEUC WI SSANGKIYEOK +0xA876 0xCB9F #HANGUL SYLLABLE SSANGCIEUC WI KIYEOKSIOS +0xA877 0xCBA0 #HANGUL SYLLABLE SSANGCIEUC WI NIEUN +0xA878 0xCBA1 #HANGUL SYLLABLE SSANGCIEUC WI NIEUNCIEUC +0xA879 0xCBA2 #HANGUL SYLLABLE SSANGCIEUC WI NIEUNHIEUH +0xA87A 0xCBA3 #HANGUL SYLLABLE SSANGCIEUC WI TIKEUT +0xA881 0xCBA4 #HANGUL SYLLABLE SSANGCIEUC WI RIEUL +0xA882 0xCBA5 #HANGUL SYLLABLE SSANGCIEUC WI RIEULKIYEOK +0xA883 0xCBA6 #HANGUL SYLLABLE SSANGCIEUC WI RIEULMIEUM +0xA884 0xCBA7 #HANGUL SYLLABLE SSANGCIEUC WI RIEULPIEUP +0xA885 0xCBA8 #HANGUL SYLLABLE SSANGCIEUC WI RIEULSIOS +0xA886 0xCBA9 #HANGUL SYLLABLE SSANGCIEUC WI RIEULTHIEUTH +0xA887 0xCBAA #HANGUL SYLLABLE SSANGCIEUC WI RIEULPHIEUPH +0xA888 0xCBAB #HANGUL SYLLABLE SSANGCIEUC WI RIEULHIEUH +0xA889 0xCBAC #HANGUL SYLLABLE SSANGCIEUC WI MIEUM +0xA88A 0xCBAD #HANGUL SYLLABLE SSANGCIEUC WI PIEUP +0xA88B 0xCBAE #HANGUL SYLLABLE SSANGCIEUC WI PIEUPSIOS +0xA88C 0xCBAF #HANGUL SYLLABLE SSANGCIEUC WI SIOS +0xA88D 0xCBB0 #HANGUL SYLLABLE SSANGCIEUC WI SSANGSIOS +0xA88E 0xCBB1 #HANGUL SYLLABLE SSANGCIEUC WI IEUNG +0xA88F 0xCBB2 #HANGUL SYLLABLE SSANGCIEUC WI CIEUC +0xA890 0xCBB3 #HANGUL SYLLABLE SSANGCIEUC WI CHIEUCH +0xA891 0xCBB4 #HANGUL SYLLABLE SSANGCIEUC WI KHIEUKH +0xA892 0xCBB5 #HANGUL SYLLABLE SSANGCIEUC WI THIEUTH +0xA893 0xCBB6 #HANGUL SYLLABLE SSANGCIEUC WI PHIEUPH +0xA894 0xCBB7 #HANGUL SYLLABLE SSANGCIEUC WI HIEUH +0xA895 0xCBB9 #HANGUL SYLLABLE SSANGCIEUC YU KIYEOK +0xA896 0xCBBA #HANGUL SYLLABLE SSANGCIEUC YU SSANGKIYEOK +0xA897 0xCBBB #HANGUL SYLLABLE SSANGCIEUC YU KIYEOKSIOS +0xA898 0xCBBC #HANGUL SYLLABLE SSANGCIEUC YU NIEUN +0xA899 0xCBBD #HANGUL SYLLABLE SSANGCIEUC YU NIEUNCIEUC +0xA89A 0xCBBE #HANGUL SYLLABLE SSANGCIEUC YU NIEUNHIEUH +0xA89B 0xCBBF #HANGUL SYLLABLE SSANGCIEUC YU TIKEUT +0xA89C 0xCBC0 #HANGUL SYLLABLE SSANGCIEUC YU RIEUL +0xA89D 0xCBC1 #HANGUL SYLLABLE SSANGCIEUC YU RIEULKIYEOK +0xA89E 0xCBC2 #HANGUL SYLLABLE SSANGCIEUC YU RIEULMIEUM +0xA89F 0xCBC3 #HANGUL SYLLABLE SSANGCIEUC YU RIEULPIEUP +0xA8A0 0xCBC4 #HANGUL SYLLABLE SSANGCIEUC YU RIEULSIOS +0xA8A1 0x00C6 #LATIN CAPITAL LETTER AE +0xA8A2 0x00D0 #LATIN CAPITAL LETTER ETH +0xA8A3 0x00AA #FEMININE ORDINAL INDICATOR +0xA8A4 0x0126 #LATIN CAPITAL LETTER H WITH STROKE +0xA8A6 0x0132 #LATIN CAPITAL LIGATURE IJ +0xA8A8 0x013F #LATIN CAPITAL LETTER L WITH MIDDLE DOT +0xA8A9 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0xA8AA 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0xA8AB 0x0152 #LATIN CAPITAL LIGATURE OE +0xA8AC 0x00BA #MASCULINE ORDINAL INDICATOR +0xA8AD 0x00DE #LATIN CAPITAL LETTER THORN +0xA8AE 0x0166 #LATIN CAPITAL LETTER T WITH STROKE +0xA8AF 0x014A #LATIN CAPITAL LETTER ENG +0xA8B1 0x3260 #CIRCLED HANGUL KIYEOK +0xA8B2 0x3261 #CIRCLED HANGUL NIEUN +0xA8B3 0x3262 #CIRCLED HANGUL TIKEUT +0xA8B4 0x3263 #CIRCLED HANGUL RIEUL +0xA8B5 0x3264 #CIRCLED HANGUL MIEUM +0xA8B6 0x3265 #CIRCLED HANGUL PIEUP +0xA8B7 0x3266 #CIRCLED HANGUL SIOS +0xA8B8 0x3267 #CIRCLED HANGUL IEUNG +0xA8B9 0x3268 #CIRCLED HANGUL CIEUC +0xA8BA 0x3269 #CIRCLED HANGUL CHIEUCH +0xA8BB 0x326A #CIRCLED HANGUL KHIEUKH +0xA8BC 0x326B #CIRCLED HANGUL THIEUTH +0xA8BD 0x326C #CIRCLED HANGUL PHIEUPH +0xA8BE 0x326D #CIRCLED HANGUL HIEUH +0xA8BF 0x326E #CIRCLED HANGUL KIYEOK A +0xA8C0 0x326F #CIRCLED HANGUL NIEUN A +0xA8C1 0x3270 #CIRCLED HANGUL TIKEUT A +0xA8C2 0x3271 #CIRCLED HANGUL RIEUL A +0xA8C3 0x3272 #CIRCLED HANGUL MIEUM A +0xA8C4 0x3273 #CIRCLED HANGUL PIEUP A +0xA8C5 0x3274 #CIRCLED HANGUL SIOS A +0xA8C6 0x3275 #CIRCLED HANGUL IEUNG A +0xA8C7 0x3276 #CIRCLED HANGUL CIEUC A +0xA8C8 0x3277 #CIRCLED HANGUL CHIEUCH A +0xA8C9 0x3278 #CIRCLED HANGUL KHIEUKH A +0xA8CA 0x3279 #CIRCLED HANGUL THIEUTH A +0xA8CB 0x327A #CIRCLED HANGUL PHIEUPH A +0xA8CC 0x327B #CIRCLED HANGUL HIEUH A +0xA8CD 0x24D0 #CIRCLED LATIN SMALL LETTER A +0xA8CE 0x24D1 #CIRCLED LATIN SMALL LETTER B +0xA8CF 0x24D2 #CIRCLED LATIN SMALL LETTER C +0xA8D0 0x24D3 #CIRCLED LATIN SMALL LETTER D +0xA8D1 0x24D4 #CIRCLED LATIN SMALL LETTER E +0xA8D2 0x24D5 #CIRCLED LATIN SMALL LETTER F +0xA8D3 0x24D6 #CIRCLED LATIN SMALL LETTER G +0xA8D4 0x24D7 #CIRCLED LATIN SMALL LETTER H +0xA8D5 0x24D8 #CIRCLED LATIN SMALL LETTER I +0xA8D6 0x24D9 #CIRCLED LATIN SMALL LETTER J +0xA8D7 0x24DA #CIRCLED LATIN SMALL LETTER K +0xA8D8 0x24DB #CIRCLED LATIN SMALL LETTER L +0xA8D9 0x24DC #CIRCLED LATIN SMALL LETTER M +0xA8DA 0x24DD #CIRCLED LATIN SMALL LETTER N +0xA8DB 0x24DE #CIRCLED LATIN SMALL LETTER O +0xA8DC 0x24DF #CIRCLED LATIN SMALL LETTER P +0xA8DD 0x24E0 #CIRCLED LATIN SMALL LETTER Q +0xA8DE 0x24E1 #CIRCLED LATIN SMALL LETTER R +0xA8DF 0x24E2 #CIRCLED LATIN SMALL LETTER S +0xA8E0 0x24E3 #CIRCLED LATIN SMALL LETTER T +0xA8E1 0x24E4 #CIRCLED LATIN SMALL LETTER U +0xA8E2 0x24E5 #CIRCLED LATIN SMALL LETTER V +0xA8E3 0x24E6 #CIRCLED LATIN SMALL LETTER W +0xA8E4 0x24E7 #CIRCLED LATIN SMALL LETTER X +0xA8E5 0x24E8 #CIRCLED LATIN SMALL LETTER Y +0xA8E6 0x24E9 #CIRCLED LATIN SMALL LETTER Z +0xA8E7 0x2460 #CIRCLED DIGIT ONE +0xA8E8 0x2461 #CIRCLED DIGIT TWO +0xA8E9 0x2462 #CIRCLED DIGIT THREE +0xA8EA 0x2463 #CIRCLED DIGIT FOUR +0xA8EB 0x2464 #CIRCLED DIGIT FIVE +0xA8EC 0x2465 #CIRCLED DIGIT SIX +0xA8ED 0x2466 #CIRCLED DIGIT SEVEN +0xA8EE 0x2467 #CIRCLED DIGIT EIGHT +0xA8EF 0x2468 #CIRCLED DIGIT NINE +0xA8F0 0x2469 #CIRCLED NUMBER TEN +0xA8F1 0x246A #CIRCLED NUMBER ELEVEN +0xA8F2 0x246B #CIRCLED NUMBER TWELVE +0xA8F3 0x246C #CIRCLED NUMBER THIRTEEN +0xA8F4 0x246D #CIRCLED NUMBER FOURTEEN +0xA8F5 0x246E #CIRCLED NUMBER FIFTEEN +0xA8F6 0x00BD #VULGAR FRACTION ONE HALF +0xA8F7 0x2153 #VULGAR FRACTION ONE THIRD +0xA8F8 0x2154 #VULGAR FRACTION TWO THIRDS +0xA8F9 0x00BC #VULGAR FRACTION ONE QUARTER +0xA8FA 0x00BE #VULGAR FRACTION THREE QUARTERS +0xA8FB 0x215B #VULGAR FRACTION ONE EIGHTH +0xA8FC 0x215C #VULGAR FRACTION THREE EIGHTHS +0xA8FD 0x215D #VULGAR FRACTION FIVE EIGHTHS +0xA8FE 0x215E #VULGAR FRACTION SEVEN EIGHTHS +0xA941 0xCBC5 #HANGUL SYLLABLE SSANGCIEUC YU RIEULTHIEUTH +0xA942 0xCBC6 #HANGUL SYLLABLE SSANGCIEUC YU RIEULPHIEUPH +0xA943 0xCBC7 #HANGUL SYLLABLE SSANGCIEUC YU RIEULHIEUH +0xA944 0xCBC8 #HANGUL SYLLABLE SSANGCIEUC YU MIEUM +0xA945 0xCBC9 #HANGUL SYLLABLE SSANGCIEUC YU PIEUP +0xA946 0xCBCA #HANGUL SYLLABLE SSANGCIEUC YU PIEUPSIOS +0xA947 0xCBCB #HANGUL SYLLABLE SSANGCIEUC YU SIOS +0xA948 0xCBCC #HANGUL SYLLABLE SSANGCIEUC YU SSANGSIOS +0xA949 0xCBCD #HANGUL SYLLABLE SSANGCIEUC YU IEUNG +0xA94A 0xCBCE #HANGUL SYLLABLE SSANGCIEUC YU CIEUC +0xA94B 0xCBCF #HANGUL SYLLABLE SSANGCIEUC YU CHIEUCH +0xA94C 0xCBD0 #HANGUL SYLLABLE SSANGCIEUC YU KHIEUKH +0xA94D 0xCBD1 #HANGUL SYLLABLE SSANGCIEUC YU THIEUTH +0xA94E 0xCBD2 #HANGUL SYLLABLE SSANGCIEUC YU PHIEUPH +0xA94F 0xCBD3 #HANGUL SYLLABLE SSANGCIEUC YU HIEUH +0xA950 0xCBD5 #HANGUL SYLLABLE SSANGCIEUC EU KIYEOK +0xA951 0xCBD6 #HANGUL SYLLABLE SSANGCIEUC EU SSANGKIYEOK +0xA952 0xCBD7 #HANGUL SYLLABLE SSANGCIEUC EU KIYEOKSIOS +0xA953 0xCBD8 #HANGUL SYLLABLE SSANGCIEUC EU NIEUN +0xA954 0xCBD9 #HANGUL SYLLABLE SSANGCIEUC EU NIEUNCIEUC +0xA955 0xCBDA #HANGUL SYLLABLE SSANGCIEUC EU NIEUNHIEUH +0xA956 0xCBDB #HANGUL SYLLABLE SSANGCIEUC EU TIKEUT +0xA957 0xCBDC #HANGUL SYLLABLE SSANGCIEUC EU RIEUL +0xA958 0xCBDD #HANGUL SYLLABLE SSANGCIEUC EU RIEULKIYEOK +0xA959 0xCBDE #HANGUL SYLLABLE SSANGCIEUC EU RIEULMIEUM +0xA95A 0xCBDF #HANGUL SYLLABLE SSANGCIEUC EU RIEULPIEUP +0xA961 0xCBE0 #HANGUL SYLLABLE SSANGCIEUC EU RIEULSIOS +0xA962 0xCBE1 #HANGUL SYLLABLE SSANGCIEUC EU RIEULTHIEUTH +0xA963 0xCBE2 #HANGUL SYLLABLE SSANGCIEUC EU RIEULPHIEUPH +0xA964 0xCBE3 #HANGUL SYLLABLE SSANGCIEUC EU RIEULHIEUH +0xA965 0xCBE5 #HANGUL SYLLABLE SSANGCIEUC EU PIEUP +0xA966 0xCBE6 #HANGUL SYLLABLE SSANGCIEUC EU PIEUPSIOS +0xA967 0xCBE8 #HANGUL SYLLABLE SSANGCIEUC EU SSANGSIOS +0xA968 0xCBEA #HANGUL SYLLABLE SSANGCIEUC EU CIEUC +0xA969 0xCBEB #HANGUL SYLLABLE SSANGCIEUC EU CHIEUCH +0xA96A 0xCBEC #HANGUL SYLLABLE SSANGCIEUC EU KHIEUKH +0xA96B 0xCBED #HANGUL SYLLABLE SSANGCIEUC EU THIEUTH +0xA96C 0xCBEE #HANGUL SYLLABLE SSANGCIEUC EU PHIEUPH +0xA96D 0xCBEF #HANGUL SYLLABLE SSANGCIEUC EU HIEUH +0xA96E 0xCBF0 #HANGUL SYLLABLE SSANGCIEUC YI +0xA96F 0xCBF1 #HANGUL SYLLABLE SSANGCIEUC YI KIYEOK +0xA970 0xCBF2 #HANGUL SYLLABLE SSANGCIEUC YI SSANGKIYEOK +0xA971 0xCBF3 #HANGUL SYLLABLE SSANGCIEUC YI KIYEOKSIOS +0xA972 0xCBF4 #HANGUL SYLLABLE SSANGCIEUC YI NIEUN +0xA973 0xCBF5 #HANGUL SYLLABLE SSANGCIEUC YI NIEUNCIEUC +0xA974 0xCBF6 #HANGUL SYLLABLE SSANGCIEUC YI NIEUNHIEUH +0xA975 0xCBF7 #HANGUL SYLLABLE SSANGCIEUC YI TIKEUT +0xA976 0xCBF8 #HANGUL SYLLABLE SSANGCIEUC YI RIEUL +0xA977 0xCBF9 #HANGUL SYLLABLE SSANGCIEUC YI RIEULKIYEOK +0xA978 0xCBFA #HANGUL SYLLABLE SSANGCIEUC YI RIEULMIEUM +0xA979 0xCBFB #HANGUL SYLLABLE SSANGCIEUC YI RIEULPIEUP +0xA97A 0xCBFC #HANGUL SYLLABLE SSANGCIEUC YI RIEULSIOS +0xA981 0xCBFD #HANGUL SYLLABLE SSANGCIEUC YI RIEULTHIEUTH +0xA982 0xCBFE #HANGUL SYLLABLE SSANGCIEUC YI RIEULPHIEUPH +0xA983 0xCBFF #HANGUL SYLLABLE SSANGCIEUC YI RIEULHIEUH +0xA984 0xCC00 #HANGUL SYLLABLE SSANGCIEUC YI MIEUM +0xA985 0xCC01 #HANGUL SYLLABLE SSANGCIEUC YI PIEUP +0xA986 0xCC02 #HANGUL SYLLABLE SSANGCIEUC YI PIEUPSIOS +0xA987 0xCC03 #HANGUL SYLLABLE SSANGCIEUC YI SIOS +0xA988 0xCC04 #HANGUL SYLLABLE SSANGCIEUC YI SSANGSIOS +0xA989 0xCC05 #HANGUL SYLLABLE SSANGCIEUC YI IEUNG +0xA98A 0xCC06 #HANGUL SYLLABLE SSANGCIEUC YI CIEUC +0xA98B 0xCC07 #HANGUL SYLLABLE SSANGCIEUC YI CHIEUCH +0xA98C 0xCC08 #HANGUL SYLLABLE SSANGCIEUC YI KHIEUKH +0xA98D 0xCC09 #HANGUL SYLLABLE SSANGCIEUC YI THIEUTH +0xA98E 0xCC0A #HANGUL SYLLABLE SSANGCIEUC YI PHIEUPH +0xA98F 0xCC0B #HANGUL SYLLABLE SSANGCIEUC YI HIEUH +0xA990 0xCC0E #HANGUL SYLLABLE SSANGCIEUC I SSANGKIYEOK +0xA991 0xCC0F #HANGUL SYLLABLE SSANGCIEUC I KIYEOKSIOS +0xA992 0xCC11 #HANGUL SYLLABLE SSANGCIEUC I NIEUNCIEUC +0xA993 0xCC12 #HANGUL SYLLABLE SSANGCIEUC I NIEUNHIEUH +0xA994 0xCC13 #HANGUL SYLLABLE SSANGCIEUC I TIKEUT +0xA995 0xCC15 #HANGUL SYLLABLE SSANGCIEUC I RIEULKIYEOK +0xA996 0xCC16 #HANGUL SYLLABLE SSANGCIEUC I RIEULMIEUM +0xA997 0xCC17 #HANGUL SYLLABLE SSANGCIEUC I RIEULPIEUP +0xA998 0xCC18 #HANGUL SYLLABLE SSANGCIEUC I RIEULSIOS +0xA999 0xCC19 #HANGUL SYLLABLE SSANGCIEUC I RIEULTHIEUTH +0xA99A 0xCC1A #HANGUL SYLLABLE SSANGCIEUC I RIEULPHIEUPH +0xA99B 0xCC1B #HANGUL SYLLABLE SSANGCIEUC I RIEULHIEUH +0xA99C 0xCC1E #HANGUL SYLLABLE SSANGCIEUC I PIEUPSIOS +0xA99D 0xCC1F #HANGUL SYLLABLE SSANGCIEUC I SIOS +0xA99E 0xCC20 #HANGUL SYLLABLE SSANGCIEUC I SSANGSIOS +0xA99F 0xCC23 #HANGUL SYLLABLE SSANGCIEUC I CHIEUCH +0xA9A0 0xCC24 #HANGUL SYLLABLE SSANGCIEUC I KHIEUKH +0xA9A1 0x00E6 #LATIN SMALL LETTER AE +0xA9A2 0x0111 #LATIN SMALL LETTER D WITH STROKE +0xA9A3 0x00F0 #LATIN SMALL LETTER ETH +0xA9A4 0x0127 #LATIN SMALL LETTER H WITH STROKE +0xA9A5 0x0131 #LATIN SMALL LETTER DOTLESS I +0xA9A6 0x0133 #LATIN SMALL LIGATURE IJ +0xA9A7 0x0138 #LATIN SMALL LETTER KRA +0xA9A8 0x0140 #LATIN SMALL LETTER L WITH MIDDLE DOT +0xA9A9 0x0142 #LATIN SMALL LETTER L WITH STROKE +0xA9AA 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0xA9AB 0x0153 #LATIN SMALL LIGATURE OE +0xA9AC 0x00DF #LATIN SMALL LETTER SHARP S +0xA9AD 0x00FE #LATIN SMALL LETTER THORN +0xA9AE 0x0167 #LATIN SMALL LETTER T WITH STROKE +0xA9AF 0x014B #LATIN SMALL LETTER ENG +0xA9B0 0x0149 #LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +0xA9B1 0x3200 #PARENTHESIZED HANGUL KIYEOK +0xA9B2 0x3201 #PARENTHESIZED HANGUL NIEUN +0xA9B3 0x3202 #PARENTHESIZED HANGUL TIKEUT +0xA9B4 0x3203 #PARENTHESIZED HANGUL RIEUL +0xA9B5 0x3204 #PARENTHESIZED HANGUL MIEUM +0xA9B6 0x3205 #PARENTHESIZED HANGUL PIEUP +0xA9B7 0x3206 #PARENTHESIZED HANGUL SIOS +0xA9B8 0x3207 #PARENTHESIZED HANGUL IEUNG +0xA9B9 0x3208 #PARENTHESIZED HANGUL CIEUC +0xA9BA 0x3209 #PARENTHESIZED HANGUL CHIEUCH +0xA9BB 0x320A #PARENTHESIZED HANGUL KHIEUKH +0xA9BC 0x320B #PARENTHESIZED HANGUL THIEUTH +0xA9BD 0x320C #PARENTHESIZED HANGUL PHIEUPH +0xA9BE 0x320D #PARENTHESIZED HANGUL HIEUH +0xA9BF 0x320E #PARENTHESIZED HANGUL KIYEOK A +0xA9C0 0x320F #PARENTHESIZED HANGUL NIEUN A +0xA9C1 0x3210 #PARENTHESIZED HANGUL TIKEUT A +0xA9C2 0x3211 #PARENTHESIZED HANGUL RIEUL A +0xA9C3 0x3212 #PARENTHESIZED HANGUL MIEUM A +0xA9C4 0x3213 #PARENTHESIZED HANGUL PIEUP A +0xA9C5 0x3214 #PARENTHESIZED HANGUL SIOS A +0xA9C6 0x3215 #PARENTHESIZED HANGUL IEUNG A +0xA9C7 0x3216 #PARENTHESIZED HANGUL CIEUC A +0xA9C8 0x3217 #PARENTHESIZED HANGUL CHIEUCH A +0xA9C9 0x3218 #PARENTHESIZED HANGUL KHIEUKH A +0xA9CA 0x3219 #PARENTHESIZED HANGUL THIEUTH A +0xA9CB 0x321A #PARENTHESIZED HANGUL PHIEUPH A +0xA9CC 0x321B #PARENTHESIZED HANGUL HIEUH A +0xA9CD 0x249C #PARENTHESIZED LATIN SMALL LETTER A +0xA9CE 0x249D #PARENTHESIZED LATIN SMALL LETTER B +0xA9CF 0x249E #PARENTHESIZED LATIN SMALL LETTER C +0xA9D0 0x249F #PARENTHESIZED LATIN SMALL LETTER D +0xA9D1 0x24A0 #PARENTHESIZED LATIN SMALL LETTER E +0xA9D2 0x24A1 #PARENTHESIZED LATIN SMALL LETTER F +0xA9D3 0x24A2 #PARENTHESIZED LATIN SMALL LETTER G +0xA9D4 0x24A3 #PARENTHESIZED LATIN SMALL LETTER H +0xA9D5 0x24A4 #PARENTHESIZED LATIN SMALL LETTER I +0xA9D6 0x24A5 #PARENTHESIZED LATIN SMALL LETTER J +0xA9D7 0x24A6 #PARENTHESIZED LATIN SMALL LETTER K +0xA9D8 0x24A7 #PARENTHESIZED LATIN SMALL LETTER L +0xA9D9 0x24A8 #PARENTHESIZED LATIN SMALL LETTER M +0xA9DA 0x24A9 #PARENTHESIZED LATIN SMALL LETTER N +0xA9DB 0x24AA #PARENTHESIZED LATIN SMALL LETTER O +0xA9DC 0x24AB #PARENTHESIZED LATIN SMALL LETTER P +0xA9DD 0x24AC #PARENTHESIZED LATIN SMALL LETTER Q +0xA9DE 0x24AD #PARENTHESIZED LATIN SMALL LETTER R +0xA9DF 0x24AE #PARENTHESIZED LATIN SMALL LETTER S +0xA9E0 0x24AF #PARENTHESIZED LATIN SMALL LETTER T +0xA9E1 0x24B0 #PARENTHESIZED LATIN SMALL LETTER U +0xA9E2 0x24B1 #PARENTHESIZED LATIN SMALL LETTER V +0xA9E3 0x24B2 #PARENTHESIZED LATIN SMALL LETTER W +0xA9E4 0x24B3 #PARENTHESIZED LATIN SMALL LETTER X +0xA9E5 0x24B4 #PARENTHESIZED LATIN SMALL LETTER Y +0xA9E6 0x24B5 #PARENTHESIZED LATIN SMALL LETTER Z +0xA9E7 0x2474 #PARENTHESIZED DIGIT ONE +0xA9E8 0x2475 #PARENTHESIZED DIGIT TWO +0xA9E9 0x2476 #PARENTHESIZED DIGIT THREE +0xA9EA 0x2477 #PARENTHESIZED DIGIT FOUR +0xA9EB 0x2478 #PARENTHESIZED DIGIT FIVE +0xA9EC 0x2479 #PARENTHESIZED DIGIT SIX +0xA9ED 0x247A #PARENTHESIZED DIGIT SEVEN +0xA9EE 0x247B #PARENTHESIZED DIGIT EIGHT +0xA9EF 0x247C #PARENTHESIZED DIGIT NINE +0xA9F0 0x247D #PARENTHESIZED NUMBER TEN +0xA9F1 0x247E #PARENTHESIZED NUMBER ELEVEN +0xA9F2 0x247F #PARENTHESIZED NUMBER TWELVE +0xA9F3 0x2480 #PARENTHESIZED NUMBER THIRTEEN +0xA9F4 0x2481 #PARENTHESIZED NUMBER FOURTEEN +0xA9F5 0x2482 #PARENTHESIZED NUMBER FIFTEEN +0xA9F6 0x00B9 #SUPERSCRIPT ONE +0xA9F7 0x00B2 #SUPERSCRIPT TWO +0xA9F8 0x00B3 #SUPERSCRIPT THREE +0xA9F9 0x2074 #SUPERSCRIPT FOUR +0xA9FA 0x207F #SUPERSCRIPT LATIN SMALL LETTER N +0xA9FB 0x2081 #SUBSCRIPT ONE +0xA9FC 0x2082 #SUBSCRIPT TWO +0xA9FD 0x2083 #SUBSCRIPT THREE +0xA9FE 0x2084 #SUBSCRIPT FOUR +0xAA41 0xCC25 #HANGUL SYLLABLE SSANGCIEUC I THIEUTH +0xAA42 0xCC26 #HANGUL SYLLABLE SSANGCIEUC I PHIEUPH +0xAA43 0xCC2A #HANGUL SYLLABLE CHIEUCH A SSANGKIYEOK +0xAA44 0xCC2B #HANGUL SYLLABLE CHIEUCH A KIYEOKSIOS +0xAA45 0xCC2D #HANGUL SYLLABLE CHIEUCH A NIEUNCIEUC +0xAA46 0xCC2F #HANGUL SYLLABLE CHIEUCH A TIKEUT +0xAA47 0xCC31 #HANGUL SYLLABLE CHIEUCH A RIEULKIYEOK +0xAA48 0xCC32 #HANGUL SYLLABLE CHIEUCH A RIEULMIEUM +0xAA49 0xCC33 #HANGUL SYLLABLE CHIEUCH A RIEULPIEUP +0xAA4A 0xCC34 #HANGUL SYLLABLE CHIEUCH A RIEULSIOS +0xAA4B 0xCC35 #HANGUL SYLLABLE CHIEUCH A RIEULTHIEUTH +0xAA4C 0xCC36 #HANGUL SYLLABLE CHIEUCH A RIEULPHIEUPH +0xAA4D 0xCC37 #HANGUL SYLLABLE CHIEUCH A RIEULHIEUH +0xAA4E 0xCC3A #HANGUL SYLLABLE CHIEUCH A PIEUPSIOS +0xAA4F 0xCC3F #HANGUL SYLLABLE CHIEUCH A CHIEUCH +0xAA50 0xCC40 #HANGUL SYLLABLE CHIEUCH A KHIEUKH +0xAA51 0xCC41 #HANGUL SYLLABLE CHIEUCH A THIEUTH +0xAA52 0xCC42 #HANGUL SYLLABLE CHIEUCH A PHIEUPH +0xAA53 0xCC43 #HANGUL SYLLABLE CHIEUCH A HIEUH +0xAA54 0xCC46 #HANGUL SYLLABLE CHIEUCH AE SSANGKIYEOK +0xAA55 0xCC47 #HANGUL SYLLABLE CHIEUCH AE KIYEOKSIOS +0xAA56 0xCC49 #HANGUL SYLLABLE CHIEUCH AE NIEUNCIEUC +0xAA57 0xCC4A #HANGUL SYLLABLE CHIEUCH AE NIEUNHIEUH +0xAA58 0xCC4B #HANGUL SYLLABLE CHIEUCH AE TIKEUT +0xAA59 0xCC4D #HANGUL SYLLABLE CHIEUCH AE RIEULKIYEOK +0xAA5A 0xCC4E #HANGUL SYLLABLE CHIEUCH AE RIEULMIEUM +0xAA61 0xCC4F #HANGUL SYLLABLE CHIEUCH AE RIEULPIEUP +0xAA62 0xCC50 #HANGUL SYLLABLE CHIEUCH AE RIEULSIOS +0xAA63 0xCC51 #HANGUL SYLLABLE CHIEUCH AE RIEULTHIEUTH +0xAA64 0xCC52 #HANGUL SYLLABLE CHIEUCH AE RIEULPHIEUPH +0xAA65 0xCC53 #HANGUL SYLLABLE CHIEUCH AE RIEULHIEUH +0xAA66 0xCC56 #HANGUL SYLLABLE CHIEUCH AE PIEUPSIOS +0xAA67 0xCC5A #HANGUL SYLLABLE CHIEUCH AE CIEUC +0xAA68 0xCC5B #HANGUL SYLLABLE CHIEUCH AE CHIEUCH +0xAA69 0xCC5C #HANGUL SYLLABLE CHIEUCH AE KHIEUKH +0xAA6A 0xCC5D #HANGUL SYLLABLE CHIEUCH AE THIEUTH +0xAA6B 0xCC5E #HANGUL SYLLABLE CHIEUCH AE PHIEUPH +0xAA6C 0xCC5F #HANGUL SYLLABLE CHIEUCH AE HIEUH +0xAA6D 0xCC61 #HANGUL SYLLABLE CHIEUCH YA KIYEOK +0xAA6E 0xCC62 #HANGUL SYLLABLE CHIEUCH YA SSANGKIYEOK +0xAA6F 0xCC63 #HANGUL SYLLABLE CHIEUCH YA KIYEOKSIOS +0xAA70 0xCC65 #HANGUL SYLLABLE CHIEUCH YA NIEUNCIEUC +0xAA71 0xCC67 #HANGUL SYLLABLE CHIEUCH YA TIKEUT +0xAA72 0xCC69 #HANGUL SYLLABLE CHIEUCH YA RIEULKIYEOK +0xAA73 0xCC6A #HANGUL SYLLABLE CHIEUCH YA RIEULMIEUM +0xAA74 0xCC6B #HANGUL SYLLABLE CHIEUCH YA RIEULPIEUP +0xAA75 0xCC6C #HANGUL SYLLABLE CHIEUCH YA RIEULSIOS +0xAA76 0xCC6D #HANGUL SYLLABLE CHIEUCH YA RIEULTHIEUTH +0xAA77 0xCC6E #HANGUL SYLLABLE CHIEUCH YA RIEULPHIEUPH +0xAA78 0xCC6F #HANGUL SYLLABLE CHIEUCH YA RIEULHIEUH +0xAA79 0xCC71 #HANGUL SYLLABLE CHIEUCH YA PIEUP +0xAA7A 0xCC72 #HANGUL SYLLABLE CHIEUCH YA PIEUPSIOS +0xAA81 0xCC73 #HANGUL SYLLABLE CHIEUCH YA SIOS +0xAA82 0xCC74 #HANGUL SYLLABLE CHIEUCH YA SSANGSIOS +0xAA83 0xCC76 #HANGUL SYLLABLE CHIEUCH YA CIEUC +0xAA84 0xCC77 #HANGUL SYLLABLE CHIEUCH YA CHIEUCH +0xAA85 0xCC78 #HANGUL SYLLABLE CHIEUCH YA KHIEUKH +0xAA86 0xCC79 #HANGUL SYLLABLE CHIEUCH YA THIEUTH +0xAA87 0xCC7A #HANGUL SYLLABLE CHIEUCH YA PHIEUPH +0xAA88 0xCC7B #HANGUL SYLLABLE CHIEUCH YA HIEUH +0xAA89 0xCC7C #HANGUL SYLLABLE CHIEUCH YAE +0xAA8A 0xCC7D #HANGUL SYLLABLE CHIEUCH YAE KIYEOK +0xAA8B 0xCC7E #HANGUL SYLLABLE CHIEUCH YAE SSANGKIYEOK +0xAA8C 0xCC7F #HANGUL SYLLABLE CHIEUCH YAE KIYEOKSIOS +0xAA8D 0xCC80 #HANGUL SYLLABLE CHIEUCH YAE NIEUN +0xAA8E 0xCC81 #HANGUL SYLLABLE CHIEUCH YAE NIEUNCIEUC +0xAA8F 0xCC82 #HANGUL SYLLABLE CHIEUCH YAE NIEUNHIEUH +0xAA90 0xCC83 #HANGUL SYLLABLE CHIEUCH YAE TIKEUT +0xAA91 0xCC84 #HANGUL SYLLABLE CHIEUCH YAE RIEUL +0xAA92 0xCC85 #HANGUL SYLLABLE CHIEUCH YAE RIEULKIYEOK +0xAA93 0xCC86 #HANGUL SYLLABLE CHIEUCH YAE RIEULMIEUM +0xAA94 0xCC87 #HANGUL SYLLABLE CHIEUCH YAE RIEULPIEUP +0xAA95 0xCC88 #HANGUL SYLLABLE CHIEUCH YAE RIEULSIOS +0xAA96 0xCC89 #HANGUL SYLLABLE CHIEUCH YAE RIEULTHIEUTH +0xAA97 0xCC8A #HANGUL SYLLABLE CHIEUCH YAE RIEULPHIEUPH +0xAA98 0xCC8B #HANGUL SYLLABLE CHIEUCH YAE RIEULHIEUH +0xAA99 0xCC8C #HANGUL SYLLABLE CHIEUCH YAE MIEUM +0xAA9A 0xCC8D #HANGUL SYLLABLE CHIEUCH YAE PIEUP +0xAA9B 0xCC8E #HANGUL SYLLABLE CHIEUCH YAE PIEUPSIOS +0xAA9C 0xCC8F #HANGUL SYLLABLE CHIEUCH YAE SIOS +0xAA9D 0xCC90 #HANGUL SYLLABLE CHIEUCH YAE SSANGSIOS +0xAA9E 0xCC91 #HANGUL SYLLABLE CHIEUCH YAE IEUNG +0xAA9F 0xCC92 #HANGUL SYLLABLE CHIEUCH YAE CIEUC +0xAAA0 0xCC93 #HANGUL SYLLABLE CHIEUCH YAE CHIEUCH +0xAAA1 0x3041 #HIRAGANA LETTER SMALL A +0xAAA2 0x3042 #HIRAGANA LETTER A +0xAAA3 0x3043 #HIRAGANA LETTER SMALL I +0xAAA4 0x3044 #HIRAGANA LETTER I +0xAAA5 0x3045 #HIRAGANA LETTER SMALL U +0xAAA6 0x3046 #HIRAGANA LETTER U +0xAAA7 0x3047 #HIRAGANA LETTER SMALL E +0xAAA8 0x3048 #HIRAGANA LETTER E +0xAAA9 0x3049 #HIRAGANA LETTER SMALL O +0xAAAA 0x304A #HIRAGANA LETTER O +0xAAAB 0x304B #HIRAGANA LETTER KA +0xAAAC 0x304C #HIRAGANA LETTER GA +0xAAAD 0x304D #HIRAGANA LETTER KI +0xAAAE 0x304E #HIRAGANA LETTER GI +0xAAAF 0x304F #HIRAGANA LETTER KU +0xAAB0 0x3050 #HIRAGANA LETTER GU +0xAAB1 0x3051 #HIRAGANA LETTER KE +0xAAB2 0x3052 #HIRAGANA LETTER GE +0xAAB3 0x3053 #HIRAGANA LETTER KO +0xAAB4 0x3054 #HIRAGANA LETTER GO +0xAAB5 0x3055 #HIRAGANA LETTER SA +0xAAB6 0x3056 #HIRAGANA LETTER ZA +0xAAB7 0x3057 #HIRAGANA LETTER SI +0xAAB8 0x3058 #HIRAGANA LETTER ZI +0xAAB9 0x3059 #HIRAGANA LETTER SU +0xAABA 0x305A #HIRAGANA LETTER ZU +0xAABB 0x305B #HIRAGANA LETTER SE +0xAABC 0x305C #HIRAGANA LETTER ZE +0xAABD 0x305D #HIRAGANA LETTER SO +0xAABE 0x305E #HIRAGANA LETTER ZO +0xAABF 0x305F #HIRAGANA LETTER TA +0xAAC0 0x3060 #HIRAGANA LETTER DA +0xAAC1 0x3061 #HIRAGANA LETTER TI +0xAAC2 0x3062 #HIRAGANA LETTER DI +0xAAC3 0x3063 #HIRAGANA LETTER SMALL TU +0xAAC4 0x3064 #HIRAGANA LETTER TU +0xAAC5 0x3065 #HIRAGANA LETTER DU +0xAAC6 0x3066 #HIRAGANA LETTER TE +0xAAC7 0x3067 #HIRAGANA LETTER DE +0xAAC8 0x3068 #HIRAGANA LETTER TO +0xAAC9 0x3069 #HIRAGANA LETTER DO +0xAACA 0x306A #HIRAGANA LETTER NA +0xAACB 0x306B #HIRAGANA LETTER NI +0xAACC 0x306C #HIRAGANA LETTER NU +0xAACD 0x306D #HIRAGANA LETTER NE +0xAACE 0x306E #HIRAGANA LETTER NO +0xAACF 0x306F #HIRAGANA LETTER HA +0xAAD0 0x3070 #HIRAGANA LETTER BA +0xAAD1 0x3071 #HIRAGANA LETTER PA +0xAAD2 0x3072 #HIRAGANA LETTER HI +0xAAD3 0x3073 #HIRAGANA LETTER BI +0xAAD4 0x3074 #HIRAGANA LETTER PI +0xAAD5 0x3075 #HIRAGANA LETTER HU +0xAAD6 0x3076 #HIRAGANA LETTER BU +0xAAD7 0x3077 #HIRAGANA LETTER PU +0xAAD8 0x3078 #HIRAGANA LETTER HE +0xAAD9 0x3079 #HIRAGANA LETTER BE +0xAADA 0x307A #HIRAGANA LETTER PE +0xAADB 0x307B #HIRAGANA LETTER HO +0xAADC 0x307C #HIRAGANA LETTER BO +0xAADD 0x307D #HIRAGANA LETTER PO +0xAADE 0x307E #HIRAGANA LETTER MA +0xAADF 0x307F #HIRAGANA LETTER MI +0xAAE0 0x3080 #HIRAGANA LETTER MU +0xAAE1 0x3081 #HIRAGANA LETTER ME +0xAAE2 0x3082 #HIRAGANA LETTER MO +0xAAE3 0x3083 #HIRAGANA LETTER SMALL YA +0xAAE4 0x3084 #HIRAGANA LETTER YA +0xAAE5 0x3085 #HIRAGANA LETTER SMALL YU +0xAAE6 0x3086 #HIRAGANA LETTER YU +0xAAE7 0x3087 #HIRAGANA LETTER SMALL YO +0xAAE8 0x3088 #HIRAGANA LETTER YO +0xAAE9 0x3089 #HIRAGANA LETTER RA +0xAAEA 0x308A #HIRAGANA LETTER RI +0xAAEB 0x308B #HIRAGANA LETTER RU +0xAAEC 0x308C #HIRAGANA LETTER RE +0xAAED 0x308D #HIRAGANA LETTER RO +0xAAEE 0x308E #HIRAGANA LETTER SMALL WA +0xAAEF 0x308F #HIRAGANA LETTER WA +0xAAF0 0x3090 #HIRAGANA LETTER WI +0xAAF1 0x3091 #HIRAGANA LETTER WE +0xAAF2 0x3092 #HIRAGANA LETTER WO +0xAAF3 0x3093 #HIRAGANA LETTER N +0xAB41 0xCC94 #HANGUL SYLLABLE CHIEUCH YAE KHIEUKH +0xAB42 0xCC95 #HANGUL SYLLABLE CHIEUCH YAE THIEUTH +0xAB43 0xCC96 #HANGUL SYLLABLE CHIEUCH YAE PHIEUPH +0xAB44 0xCC97 #HANGUL SYLLABLE CHIEUCH YAE HIEUH +0xAB45 0xCC9A #HANGUL SYLLABLE CHIEUCH EO SSANGKIYEOK +0xAB46 0xCC9B #HANGUL SYLLABLE CHIEUCH EO KIYEOKSIOS +0xAB47 0xCC9D #HANGUL SYLLABLE CHIEUCH EO NIEUNCIEUC +0xAB48 0xCC9E #HANGUL SYLLABLE CHIEUCH EO NIEUNHIEUH +0xAB49 0xCC9F #HANGUL SYLLABLE CHIEUCH EO TIKEUT +0xAB4A 0xCCA1 #HANGUL SYLLABLE CHIEUCH EO RIEULKIYEOK +0xAB4B 0xCCA2 #HANGUL SYLLABLE CHIEUCH EO RIEULMIEUM +0xAB4C 0xCCA3 #HANGUL SYLLABLE CHIEUCH EO RIEULPIEUP +0xAB4D 0xCCA4 #HANGUL SYLLABLE CHIEUCH EO RIEULSIOS +0xAB4E 0xCCA5 #HANGUL SYLLABLE CHIEUCH EO RIEULTHIEUTH +0xAB4F 0xCCA6 #HANGUL SYLLABLE CHIEUCH EO RIEULPHIEUPH +0xAB50 0xCCA7 #HANGUL SYLLABLE CHIEUCH EO RIEULHIEUH +0xAB51 0xCCAA #HANGUL SYLLABLE CHIEUCH EO PIEUPSIOS +0xAB52 0xCCAE #HANGUL SYLLABLE CHIEUCH EO CIEUC +0xAB53 0xCCAF #HANGUL SYLLABLE CHIEUCH EO CHIEUCH +0xAB54 0xCCB0 #HANGUL SYLLABLE CHIEUCH EO KHIEUKH +0xAB55 0xCCB1 #HANGUL SYLLABLE CHIEUCH EO THIEUTH +0xAB56 0xCCB2 #HANGUL SYLLABLE CHIEUCH EO PHIEUPH +0xAB57 0xCCB3 #HANGUL SYLLABLE CHIEUCH EO HIEUH +0xAB58 0xCCB6 #HANGUL SYLLABLE CHIEUCH E SSANGKIYEOK +0xAB59 0xCCB7 #HANGUL SYLLABLE CHIEUCH E KIYEOKSIOS +0xAB5A 0xCCB9 #HANGUL SYLLABLE CHIEUCH E NIEUNCIEUC +0xAB61 0xCCBA #HANGUL SYLLABLE CHIEUCH E NIEUNHIEUH +0xAB62 0xCCBB #HANGUL SYLLABLE CHIEUCH E TIKEUT +0xAB63 0xCCBD #HANGUL SYLLABLE CHIEUCH E RIEULKIYEOK +0xAB64 0xCCBE #HANGUL SYLLABLE CHIEUCH E RIEULMIEUM +0xAB65 0xCCBF #HANGUL SYLLABLE CHIEUCH E RIEULPIEUP +0xAB66 0xCCC0 #HANGUL SYLLABLE CHIEUCH E RIEULSIOS +0xAB67 0xCCC1 #HANGUL SYLLABLE CHIEUCH E RIEULTHIEUTH +0xAB68 0xCCC2 #HANGUL SYLLABLE CHIEUCH E RIEULPHIEUPH +0xAB69 0xCCC3 #HANGUL SYLLABLE CHIEUCH E RIEULHIEUH +0xAB6A 0xCCC6 #HANGUL SYLLABLE CHIEUCH E PIEUPSIOS +0xAB6B 0xCCC8 #HANGUL SYLLABLE CHIEUCH E SSANGSIOS +0xAB6C 0xCCCA #HANGUL SYLLABLE CHIEUCH E CIEUC +0xAB6D 0xCCCB #HANGUL SYLLABLE CHIEUCH E CHIEUCH +0xAB6E 0xCCCC #HANGUL SYLLABLE CHIEUCH E KHIEUKH +0xAB6F 0xCCCD #HANGUL SYLLABLE CHIEUCH E THIEUTH +0xAB70 0xCCCE #HANGUL SYLLABLE CHIEUCH E PHIEUPH +0xAB71 0xCCCF #HANGUL SYLLABLE CHIEUCH E HIEUH +0xAB72 0xCCD1 #HANGUL SYLLABLE CHIEUCH YEO KIYEOK +0xAB73 0xCCD2 #HANGUL SYLLABLE CHIEUCH YEO SSANGKIYEOK +0xAB74 0xCCD3 #HANGUL SYLLABLE CHIEUCH YEO KIYEOKSIOS +0xAB75 0xCCD5 #HANGUL SYLLABLE CHIEUCH YEO NIEUNCIEUC +0xAB76 0xCCD6 #HANGUL SYLLABLE CHIEUCH YEO NIEUNHIEUH +0xAB77 0xCCD7 #HANGUL SYLLABLE CHIEUCH YEO TIKEUT +0xAB78 0xCCD8 #HANGUL SYLLABLE CHIEUCH YEO RIEUL +0xAB79 0xCCD9 #HANGUL SYLLABLE CHIEUCH YEO RIEULKIYEOK +0xAB7A 0xCCDA #HANGUL SYLLABLE CHIEUCH YEO RIEULMIEUM +0xAB81 0xCCDB #HANGUL SYLLABLE CHIEUCH YEO RIEULPIEUP +0xAB82 0xCCDC #HANGUL SYLLABLE CHIEUCH YEO RIEULSIOS +0xAB83 0xCCDD #HANGUL SYLLABLE CHIEUCH YEO RIEULTHIEUTH +0xAB84 0xCCDE #HANGUL SYLLABLE CHIEUCH YEO RIEULPHIEUPH +0xAB85 0xCCDF #HANGUL SYLLABLE CHIEUCH YEO RIEULHIEUH +0xAB86 0xCCE0 #HANGUL SYLLABLE CHIEUCH YEO MIEUM +0xAB87 0xCCE1 #HANGUL SYLLABLE CHIEUCH YEO PIEUP +0xAB88 0xCCE2 #HANGUL SYLLABLE CHIEUCH YEO PIEUPSIOS +0xAB89 0xCCE3 #HANGUL SYLLABLE CHIEUCH YEO SIOS +0xAB8A 0xCCE5 #HANGUL SYLLABLE CHIEUCH YEO IEUNG +0xAB8B 0xCCE6 #HANGUL SYLLABLE CHIEUCH YEO CIEUC +0xAB8C 0xCCE7 #HANGUL SYLLABLE CHIEUCH YEO CHIEUCH +0xAB8D 0xCCE8 #HANGUL SYLLABLE CHIEUCH YEO KHIEUKH +0xAB8E 0xCCE9 #HANGUL SYLLABLE CHIEUCH YEO THIEUTH +0xAB8F 0xCCEA #HANGUL SYLLABLE CHIEUCH YEO PHIEUPH +0xAB90 0xCCEB #HANGUL SYLLABLE CHIEUCH YEO HIEUH +0xAB91 0xCCED #HANGUL SYLLABLE CHIEUCH YE KIYEOK +0xAB92 0xCCEE #HANGUL SYLLABLE CHIEUCH YE SSANGKIYEOK +0xAB93 0xCCEF #HANGUL SYLLABLE CHIEUCH YE KIYEOKSIOS +0xAB94 0xCCF1 #HANGUL SYLLABLE CHIEUCH YE NIEUNCIEUC +0xAB95 0xCCF2 #HANGUL SYLLABLE CHIEUCH YE NIEUNHIEUH +0xAB96 0xCCF3 #HANGUL SYLLABLE CHIEUCH YE TIKEUT +0xAB97 0xCCF4 #HANGUL SYLLABLE CHIEUCH YE RIEUL +0xAB98 0xCCF5 #HANGUL SYLLABLE CHIEUCH YE RIEULKIYEOK +0xAB99 0xCCF6 #HANGUL SYLLABLE CHIEUCH YE RIEULMIEUM +0xAB9A 0xCCF7 #HANGUL SYLLABLE CHIEUCH YE RIEULPIEUP +0xAB9B 0xCCF8 #HANGUL SYLLABLE CHIEUCH YE RIEULSIOS +0xAB9C 0xCCF9 #HANGUL SYLLABLE CHIEUCH YE RIEULTHIEUTH +0xAB9D 0xCCFA #HANGUL SYLLABLE CHIEUCH YE RIEULPHIEUPH +0xAB9E 0xCCFB #HANGUL SYLLABLE CHIEUCH YE RIEULHIEUH +0xAB9F 0xCCFC #HANGUL SYLLABLE CHIEUCH YE MIEUM +0xABA0 0xCCFD #HANGUL SYLLABLE CHIEUCH YE PIEUP +0xABA1 0x30A1 #KATAKANA LETTER SMALL A +0xABA2 0x30A2 #KATAKANA LETTER A +0xABA3 0x30A3 #KATAKANA LETTER SMALL I +0xABA4 0x30A4 #KATAKANA LETTER I +0xABA5 0x30A5 #KATAKANA LETTER SMALL U +0xABA6 0x30A6 #KATAKANA LETTER U +0xABA7 0x30A7 #KATAKANA LETTER SMALL E +0xABA8 0x30A8 #KATAKANA LETTER E +0xABA9 0x30A9 #KATAKANA LETTER SMALL O +0xABAA 0x30AA #KATAKANA LETTER O +0xABAB 0x30AB #KATAKANA LETTER KA +0xABAC 0x30AC #KATAKANA LETTER GA +0xABAD 0x30AD #KATAKANA LETTER KI +0xABAE 0x30AE #KATAKANA LETTER GI +0xABAF 0x30AF #KATAKANA LETTER KU +0xABB0 0x30B0 #KATAKANA LETTER GU +0xABB1 0x30B1 #KATAKANA LETTER KE +0xABB2 0x30B2 #KATAKANA LETTER GE +0xABB3 0x30B3 #KATAKANA LETTER KO +0xABB4 0x30B4 #KATAKANA LETTER GO +0xABB5 0x30B5 #KATAKANA LETTER SA +0xABB6 0x30B6 #KATAKANA LETTER ZA +0xABB7 0x30B7 #KATAKANA LETTER SI +0xABB8 0x30B8 #KATAKANA LETTER ZI +0xABB9 0x30B9 #KATAKANA LETTER SU +0xABBA 0x30BA #KATAKANA LETTER ZU +0xABBB 0x30BB #KATAKANA LETTER SE +0xABBC 0x30BC #KATAKANA LETTER ZE +0xABBD 0x30BD #KATAKANA LETTER SO +0xABBE 0x30BE #KATAKANA LETTER ZO +0xABBF 0x30BF #KATAKANA LETTER TA +0xABC0 0x30C0 #KATAKANA LETTER DA +0xABC1 0x30C1 #KATAKANA LETTER TI +0xABC2 0x30C2 #KATAKANA LETTER DI +0xABC3 0x30C3 #KATAKANA LETTER SMALL TU +0xABC4 0x30C4 #KATAKANA LETTER TU +0xABC5 0x30C5 #KATAKANA LETTER DU +0xABC6 0x30C6 #KATAKANA LETTER TE +0xABC7 0x30C7 #KATAKANA LETTER DE +0xABC8 0x30C8 #KATAKANA LETTER TO +0xABC9 0x30C9 #KATAKANA LETTER DO +0xABCA 0x30CA #KATAKANA LETTER NA +0xABCB 0x30CB #KATAKANA LETTER NI +0xABCC 0x30CC #KATAKANA LETTER NU +0xABCD 0x30CD #KATAKANA LETTER NE +0xABCE 0x30CE #KATAKANA LETTER NO +0xABCF 0x30CF #KATAKANA LETTER HA +0xABD0 0x30D0 #KATAKANA LETTER BA +0xABD1 0x30D1 #KATAKANA LETTER PA +0xABD2 0x30D2 #KATAKANA LETTER HI +0xABD3 0x30D3 #KATAKANA LETTER BI +0xABD4 0x30D4 #KATAKANA LETTER PI +0xABD5 0x30D5 #KATAKANA LETTER HU +0xABD6 0x30D6 #KATAKANA LETTER BU +0xABD7 0x30D7 #KATAKANA LETTER PU +0xABD8 0x30D8 #KATAKANA LETTER HE +0xABD9 0x30D9 #KATAKANA LETTER BE +0xABDA 0x30DA #KATAKANA LETTER PE +0xABDB 0x30DB #KATAKANA LETTER HO +0xABDC 0x30DC #KATAKANA LETTER BO +0xABDD 0x30DD #KATAKANA LETTER PO +0xABDE 0x30DE #KATAKANA LETTER MA +0xABDF 0x30DF #KATAKANA LETTER MI +0xABE0 0x30E0 #KATAKANA LETTER MU +0xABE1 0x30E1 #KATAKANA LETTER ME +0xABE2 0x30E2 #KATAKANA LETTER MO +0xABE3 0x30E3 #KATAKANA LETTER SMALL YA +0xABE4 0x30E4 #KATAKANA LETTER YA +0xABE5 0x30E5 #KATAKANA LETTER SMALL YU +0xABE6 0x30E6 #KATAKANA LETTER YU +0xABE7 0x30E7 #KATAKANA LETTER SMALL YO +0xABE8 0x30E8 #KATAKANA LETTER YO +0xABE9 0x30E9 #KATAKANA LETTER RA +0xABEA 0x30EA #KATAKANA LETTER RI +0xABEB 0x30EB #KATAKANA LETTER RU +0xABEC 0x30EC #KATAKANA LETTER RE +0xABED 0x30ED #KATAKANA LETTER RO +0xABEE 0x30EE #KATAKANA LETTER SMALL WA +0xABEF 0x30EF #KATAKANA LETTER WA +0xABF0 0x30F0 #KATAKANA LETTER WI +0xABF1 0x30F1 #KATAKANA LETTER WE +0xABF2 0x30F2 #KATAKANA LETTER WO +0xABF3 0x30F3 #KATAKANA LETTER N +0xABF4 0x30F4 #KATAKANA LETTER VU +0xABF5 0x30F5 #KATAKANA LETTER SMALL KA +0xABF6 0x30F6 #KATAKANA LETTER SMALL KE +0xAC41 0xCCFE #HANGUL SYLLABLE CHIEUCH YE PIEUPSIOS +0xAC42 0xCCFF #HANGUL SYLLABLE CHIEUCH YE SIOS +0xAC43 0xCD00 #HANGUL SYLLABLE CHIEUCH YE SSANGSIOS +0xAC44 0xCD02 #HANGUL SYLLABLE CHIEUCH YE CIEUC +0xAC45 0xCD03 #HANGUL SYLLABLE CHIEUCH YE CHIEUCH +0xAC46 0xCD04 #HANGUL SYLLABLE CHIEUCH YE KHIEUKH +0xAC47 0xCD05 #HANGUL SYLLABLE CHIEUCH YE THIEUTH +0xAC48 0xCD06 #HANGUL SYLLABLE CHIEUCH YE PHIEUPH +0xAC49 0xCD07 #HANGUL SYLLABLE CHIEUCH YE HIEUH +0xAC4A 0xCD0A #HANGUL SYLLABLE CHIEUCH O SSANGKIYEOK +0xAC4B 0xCD0B #HANGUL SYLLABLE CHIEUCH O KIYEOKSIOS +0xAC4C 0xCD0D #HANGUL SYLLABLE CHIEUCH O NIEUNCIEUC +0xAC4D 0xCD0E #HANGUL SYLLABLE CHIEUCH O NIEUNHIEUH +0xAC4E 0xCD0F #HANGUL SYLLABLE CHIEUCH O TIKEUT +0xAC4F 0xCD11 #HANGUL SYLLABLE CHIEUCH O RIEULKIYEOK +0xAC50 0xCD12 #HANGUL SYLLABLE CHIEUCH O RIEULMIEUM +0xAC51 0xCD13 #HANGUL SYLLABLE CHIEUCH O RIEULPIEUP +0xAC52 0xCD14 #HANGUL SYLLABLE CHIEUCH O RIEULSIOS +0xAC53 0xCD15 #HANGUL SYLLABLE CHIEUCH O RIEULTHIEUTH +0xAC54 0xCD16 #HANGUL SYLLABLE CHIEUCH O RIEULPHIEUPH +0xAC55 0xCD17 #HANGUL SYLLABLE CHIEUCH O RIEULHIEUH +0xAC56 0xCD1A #HANGUL SYLLABLE CHIEUCH O PIEUPSIOS +0xAC57 0xCD1C #HANGUL SYLLABLE CHIEUCH O SSANGSIOS +0xAC58 0xCD1E #HANGUL SYLLABLE CHIEUCH O CIEUC +0xAC59 0xCD1F #HANGUL SYLLABLE CHIEUCH O CHIEUCH +0xAC5A 0xCD20 #HANGUL SYLLABLE CHIEUCH O KHIEUKH +0xAC61 0xCD21 #HANGUL SYLLABLE CHIEUCH O THIEUTH +0xAC62 0xCD22 #HANGUL SYLLABLE CHIEUCH O PHIEUPH +0xAC63 0xCD23 #HANGUL SYLLABLE CHIEUCH O HIEUH +0xAC64 0xCD25 #HANGUL SYLLABLE CHIEUCH WA KIYEOK +0xAC65 0xCD26 #HANGUL SYLLABLE CHIEUCH WA SSANGKIYEOK +0xAC66 0xCD27 #HANGUL SYLLABLE CHIEUCH WA KIYEOKSIOS +0xAC67 0xCD29 #HANGUL SYLLABLE CHIEUCH WA NIEUNCIEUC +0xAC68 0xCD2A #HANGUL SYLLABLE CHIEUCH WA NIEUNHIEUH +0xAC69 0xCD2B #HANGUL SYLLABLE CHIEUCH WA TIKEUT +0xAC6A 0xCD2D #HANGUL SYLLABLE CHIEUCH WA RIEULKIYEOK +0xAC6B 0xCD2E #HANGUL SYLLABLE CHIEUCH WA RIEULMIEUM +0xAC6C 0xCD2F #HANGUL SYLLABLE CHIEUCH WA RIEULPIEUP +0xAC6D 0xCD30 #HANGUL SYLLABLE CHIEUCH WA RIEULSIOS +0xAC6E 0xCD31 #HANGUL SYLLABLE CHIEUCH WA RIEULTHIEUTH +0xAC6F 0xCD32 #HANGUL SYLLABLE CHIEUCH WA RIEULPHIEUPH +0xAC70 0xCD33 #HANGUL SYLLABLE CHIEUCH WA RIEULHIEUH +0xAC71 0xCD34 #HANGUL SYLLABLE CHIEUCH WA MIEUM +0xAC72 0xCD35 #HANGUL SYLLABLE CHIEUCH WA PIEUP +0xAC73 0xCD36 #HANGUL SYLLABLE CHIEUCH WA PIEUPSIOS +0xAC74 0xCD37 #HANGUL SYLLABLE CHIEUCH WA SIOS +0xAC75 0xCD38 #HANGUL SYLLABLE CHIEUCH WA SSANGSIOS +0xAC76 0xCD3A #HANGUL SYLLABLE CHIEUCH WA CIEUC +0xAC77 0xCD3B #HANGUL SYLLABLE CHIEUCH WA CHIEUCH +0xAC78 0xCD3C #HANGUL SYLLABLE CHIEUCH WA KHIEUKH +0xAC79 0xCD3D #HANGUL SYLLABLE CHIEUCH WA THIEUTH +0xAC7A 0xCD3E #HANGUL SYLLABLE CHIEUCH WA PHIEUPH +0xAC81 0xCD3F #HANGUL SYLLABLE CHIEUCH WA HIEUH +0xAC82 0xCD40 #HANGUL SYLLABLE CHIEUCH WAE +0xAC83 0xCD41 #HANGUL SYLLABLE CHIEUCH WAE KIYEOK +0xAC84 0xCD42 #HANGUL SYLLABLE CHIEUCH WAE SSANGKIYEOK +0xAC85 0xCD43 #HANGUL SYLLABLE CHIEUCH WAE KIYEOKSIOS +0xAC86 0xCD44 #HANGUL SYLLABLE CHIEUCH WAE NIEUN +0xAC87 0xCD45 #HANGUL SYLLABLE CHIEUCH WAE NIEUNCIEUC +0xAC88 0xCD46 #HANGUL SYLLABLE CHIEUCH WAE NIEUNHIEUH +0xAC89 0xCD47 #HANGUL SYLLABLE CHIEUCH WAE TIKEUT +0xAC8A 0xCD48 #HANGUL SYLLABLE CHIEUCH WAE RIEUL +0xAC8B 0xCD49 #HANGUL SYLLABLE CHIEUCH WAE RIEULKIYEOK +0xAC8C 0xCD4A #HANGUL SYLLABLE CHIEUCH WAE RIEULMIEUM +0xAC8D 0xCD4B #HANGUL SYLLABLE CHIEUCH WAE RIEULPIEUP +0xAC8E 0xCD4C #HANGUL SYLLABLE CHIEUCH WAE RIEULSIOS +0xAC8F 0xCD4D #HANGUL SYLLABLE CHIEUCH WAE RIEULTHIEUTH +0xAC90 0xCD4E #HANGUL SYLLABLE CHIEUCH WAE RIEULPHIEUPH +0xAC91 0xCD4F #HANGUL SYLLABLE CHIEUCH WAE RIEULHIEUH +0xAC92 0xCD50 #HANGUL SYLLABLE CHIEUCH WAE MIEUM +0xAC93 0xCD51 #HANGUL SYLLABLE CHIEUCH WAE PIEUP +0xAC94 0xCD52 #HANGUL SYLLABLE CHIEUCH WAE PIEUPSIOS +0xAC95 0xCD53 #HANGUL SYLLABLE CHIEUCH WAE SIOS +0xAC96 0xCD54 #HANGUL SYLLABLE CHIEUCH WAE SSANGSIOS +0xAC97 0xCD55 #HANGUL SYLLABLE CHIEUCH WAE IEUNG +0xAC98 0xCD56 #HANGUL SYLLABLE CHIEUCH WAE CIEUC +0xAC99 0xCD57 #HANGUL SYLLABLE CHIEUCH WAE CHIEUCH +0xAC9A 0xCD58 #HANGUL SYLLABLE CHIEUCH WAE KHIEUKH +0xAC9B 0xCD59 #HANGUL SYLLABLE CHIEUCH WAE THIEUTH +0xAC9C 0xCD5A #HANGUL SYLLABLE CHIEUCH WAE PHIEUPH +0xAC9D 0xCD5B #HANGUL SYLLABLE CHIEUCH WAE HIEUH +0xAC9E 0xCD5D #HANGUL SYLLABLE CHIEUCH OE KIYEOK +0xAC9F 0xCD5E #HANGUL SYLLABLE CHIEUCH OE SSANGKIYEOK +0xACA0 0xCD5F #HANGUL SYLLABLE CHIEUCH OE KIYEOKSIOS +0xACA1 0x0410 #CYRILLIC CAPITAL LETTER A +0xACA2 0x0411 #CYRILLIC CAPITAL LETTER BE +0xACA3 0x0412 #CYRILLIC CAPITAL LETTER VE +0xACA4 0x0413 #CYRILLIC CAPITAL LETTER GHE +0xACA5 0x0414 #CYRILLIC CAPITAL LETTER DE +0xACA6 0x0415 #CYRILLIC CAPITAL LETTER IE +0xACA7 0x0401 #CYRILLIC CAPITAL LETTER IO +0xACA8 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0xACA9 0x0417 #CYRILLIC CAPITAL LETTER ZE +0xACAA 0x0418 #CYRILLIC CAPITAL LETTER I +0xACAB 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0xACAC 0x041A #CYRILLIC CAPITAL LETTER KA +0xACAD 0x041B #CYRILLIC CAPITAL LETTER EL +0xACAE 0x041C #CYRILLIC CAPITAL LETTER EM +0xACAF 0x041D #CYRILLIC CAPITAL LETTER EN +0xACB0 0x041E #CYRILLIC CAPITAL LETTER O +0xACB1 0x041F #CYRILLIC CAPITAL LETTER PE +0xACB2 0x0420 #CYRILLIC CAPITAL LETTER ER +0xACB3 0x0421 #CYRILLIC CAPITAL LETTER ES +0xACB4 0x0422 #CYRILLIC CAPITAL LETTER TE +0xACB5 0x0423 #CYRILLIC CAPITAL LETTER U +0xACB6 0x0424 #CYRILLIC CAPITAL LETTER EF +0xACB7 0x0425 #CYRILLIC CAPITAL LETTER HA +0xACB8 0x0426 #CYRILLIC CAPITAL LETTER TSE +0xACB9 0x0427 #CYRILLIC CAPITAL LETTER CHE +0xACBA 0x0428 #CYRILLIC CAPITAL LETTER SHA +0xACBB 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0xACBC 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN +0xACBD 0x042B #CYRILLIC CAPITAL LETTER YERU +0xACBE 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0xACBF 0x042D #CYRILLIC CAPITAL LETTER E +0xACC0 0x042E #CYRILLIC CAPITAL LETTER YU +0xACC1 0x042F #CYRILLIC CAPITAL LETTER YA +0xACD1 0x0430 #CYRILLIC SMALL LETTER A +0xACD2 0x0431 #CYRILLIC SMALL LETTER BE +0xACD3 0x0432 #CYRILLIC SMALL LETTER VE +0xACD4 0x0433 #CYRILLIC SMALL LETTER GHE +0xACD5 0x0434 #CYRILLIC SMALL LETTER DE +0xACD6 0x0435 #CYRILLIC SMALL LETTER IE +0xACD7 0x0451 #CYRILLIC SMALL LETTER IO +0xACD8 0x0436 #CYRILLIC SMALL LETTER ZHE +0xACD9 0x0437 #CYRILLIC SMALL LETTER ZE +0xACDA 0x0438 #CYRILLIC SMALL LETTER I +0xACDB 0x0439 #CYRILLIC SMALL LETTER SHORT I +0xACDC 0x043A #CYRILLIC SMALL LETTER KA +0xACDD 0x043B #CYRILLIC SMALL LETTER EL +0xACDE 0x043C #CYRILLIC SMALL LETTER EM +0xACDF 0x043D #CYRILLIC SMALL LETTER EN +0xACE0 0x043E #CYRILLIC SMALL LETTER O +0xACE1 0x043F #CYRILLIC SMALL LETTER PE +0xACE2 0x0440 #CYRILLIC SMALL LETTER ER +0xACE3 0x0441 #CYRILLIC SMALL LETTER ES +0xACE4 0x0442 #CYRILLIC SMALL LETTER TE +0xACE5 0x0443 #CYRILLIC SMALL LETTER U +0xACE6 0x0444 #CYRILLIC SMALL LETTER EF +0xACE7 0x0445 #CYRILLIC SMALL LETTER HA +0xACE8 0x0446 #CYRILLIC SMALL LETTER TSE +0xACE9 0x0447 #CYRILLIC SMALL LETTER CHE +0xACEA 0x0448 #CYRILLIC SMALL LETTER SHA +0xACEB 0x0449 #CYRILLIC SMALL LETTER SHCHA +0xACEC 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0xACED 0x044B #CYRILLIC SMALL LETTER YERU +0xACEE 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0xACEF 0x044D #CYRILLIC SMALL LETTER E +0xACF0 0x044E #CYRILLIC SMALL LETTER YU +0xACF1 0x044F #CYRILLIC SMALL LETTER YA +0xAD41 0xCD61 #HANGUL SYLLABLE CHIEUCH OE NIEUNCIEUC +0xAD42 0xCD62 #HANGUL SYLLABLE CHIEUCH OE NIEUNHIEUH +0xAD43 0xCD63 #HANGUL SYLLABLE CHIEUCH OE TIKEUT +0xAD44 0xCD65 #HANGUL SYLLABLE CHIEUCH OE RIEULKIYEOK +0xAD45 0xCD66 #HANGUL SYLLABLE CHIEUCH OE RIEULMIEUM +0xAD46 0xCD67 #HANGUL SYLLABLE CHIEUCH OE RIEULPIEUP +0xAD47 0xCD68 #HANGUL SYLLABLE CHIEUCH OE RIEULSIOS +0xAD48 0xCD69 #HANGUL SYLLABLE CHIEUCH OE RIEULTHIEUTH +0xAD49 0xCD6A #HANGUL SYLLABLE CHIEUCH OE RIEULPHIEUPH +0xAD4A 0xCD6B #HANGUL SYLLABLE CHIEUCH OE RIEULHIEUH +0xAD4B 0xCD6E #HANGUL SYLLABLE CHIEUCH OE PIEUPSIOS +0xAD4C 0xCD70 #HANGUL SYLLABLE CHIEUCH OE SSANGSIOS +0xAD4D 0xCD72 #HANGUL SYLLABLE CHIEUCH OE CIEUC +0xAD4E 0xCD73 #HANGUL SYLLABLE CHIEUCH OE CHIEUCH +0xAD4F 0xCD74 #HANGUL SYLLABLE CHIEUCH OE KHIEUKH +0xAD50 0xCD75 #HANGUL SYLLABLE CHIEUCH OE THIEUTH +0xAD51 0xCD76 #HANGUL SYLLABLE CHIEUCH OE PHIEUPH +0xAD52 0xCD77 #HANGUL SYLLABLE CHIEUCH OE HIEUH +0xAD53 0xCD79 #HANGUL SYLLABLE CHIEUCH YO KIYEOK +0xAD54 0xCD7A #HANGUL SYLLABLE CHIEUCH YO SSANGKIYEOK +0xAD55 0xCD7B #HANGUL SYLLABLE CHIEUCH YO KIYEOKSIOS +0xAD56 0xCD7C #HANGUL SYLLABLE CHIEUCH YO NIEUN +0xAD57 0xCD7D #HANGUL SYLLABLE CHIEUCH YO NIEUNCIEUC +0xAD58 0xCD7E #HANGUL SYLLABLE CHIEUCH YO NIEUNHIEUH +0xAD59 0xCD7F #HANGUL SYLLABLE CHIEUCH YO TIKEUT +0xAD5A 0xCD80 #HANGUL SYLLABLE CHIEUCH YO RIEUL +0xAD61 0xCD81 #HANGUL SYLLABLE CHIEUCH YO RIEULKIYEOK +0xAD62 0xCD82 #HANGUL SYLLABLE CHIEUCH YO RIEULMIEUM +0xAD63 0xCD83 #HANGUL SYLLABLE CHIEUCH YO RIEULPIEUP +0xAD64 0xCD84 #HANGUL SYLLABLE CHIEUCH YO RIEULSIOS +0xAD65 0xCD85 #HANGUL SYLLABLE CHIEUCH YO RIEULTHIEUTH +0xAD66 0xCD86 #HANGUL SYLLABLE CHIEUCH YO RIEULPHIEUPH +0xAD67 0xCD87 #HANGUL SYLLABLE CHIEUCH YO RIEULHIEUH +0xAD68 0xCD89 #HANGUL SYLLABLE CHIEUCH YO PIEUP +0xAD69 0xCD8A #HANGUL SYLLABLE CHIEUCH YO PIEUPSIOS +0xAD6A 0xCD8B #HANGUL SYLLABLE CHIEUCH YO SIOS +0xAD6B 0xCD8C #HANGUL SYLLABLE CHIEUCH YO SSANGSIOS +0xAD6C 0xCD8D #HANGUL SYLLABLE CHIEUCH YO IEUNG +0xAD6D 0xCD8E #HANGUL SYLLABLE CHIEUCH YO CIEUC +0xAD6E 0xCD8F #HANGUL SYLLABLE CHIEUCH YO CHIEUCH +0xAD6F 0xCD90 #HANGUL SYLLABLE CHIEUCH YO KHIEUKH +0xAD70 0xCD91 #HANGUL SYLLABLE CHIEUCH YO THIEUTH +0xAD71 0xCD92 #HANGUL SYLLABLE CHIEUCH YO PHIEUPH +0xAD72 0xCD93 #HANGUL SYLLABLE CHIEUCH YO HIEUH +0xAD73 0xCD96 #HANGUL SYLLABLE CHIEUCH U SSANGKIYEOK +0xAD74 0xCD97 #HANGUL SYLLABLE CHIEUCH U KIYEOKSIOS +0xAD75 0xCD99 #HANGUL SYLLABLE CHIEUCH U NIEUNCIEUC +0xAD76 0xCD9A #HANGUL SYLLABLE CHIEUCH U NIEUNHIEUH +0xAD77 0xCD9B #HANGUL SYLLABLE CHIEUCH U TIKEUT +0xAD78 0xCD9D #HANGUL SYLLABLE CHIEUCH U RIEULKIYEOK +0xAD79 0xCD9E #HANGUL SYLLABLE CHIEUCH U RIEULMIEUM +0xAD7A 0xCD9F #HANGUL SYLLABLE CHIEUCH U RIEULPIEUP +0xAD81 0xCDA0 #HANGUL SYLLABLE CHIEUCH U RIEULSIOS +0xAD82 0xCDA1 #HANGUL SYLLABLE CHIEUCH U RIEULTHIEUTH +0xAD83 0xCDA2 #HANGUL SYLLABLE CHIEUCH U RIEULPHIEUPH +0xAD84 0xCDA3 #HANGUL SYLLABLE CHIEUCH U RIEULHIEUH +0xAD85 0xCDA6 #HANGUL SYLLABLE CHIEUCH U PIEUPSIOS +0xAD86 0xCDA8 #HANGUL SYLLABLE CHIEUCH U SSANGSIOS +0xAD87 0xCDAA #HANGUL SYLLABLE CHIEUCH U CIEUC +0xAD88 0xCDAB #HANGUL SYLLABLE CHIEUCH U CHIEUCH +0xAD89 0xCDAC #HANGUL SYLLABLE CHIEUCH U KHIEUKH +0xAD8A 0xCDAD #HANGUL SYLLABLE CHIEUCH U THIEUTH +0xAD8B 0xCDAE #HANGUL SYLLABLE CHIEUCH U PHIEUPH +0xAD8C 0xCDAF #HANGUL SYLLABLE CHIEUCH U HIEUH +0xAD8D 0xCDB1 #HANGUL SYLLABLE CHIEUCH WEO KIYEOK +0xAD8E 0xCDB2 #HANGUL SYLLABLE CHIEUCH WEO SSANGKIYEOK +0xAD8F 0xCDB3 #HANGUL SYLLABLE CHIEUCH WEO KIYEOKSIOS +0xAD90 0xCDB4 #HANGUL SYLLABLE CHIEUCH WEO NIEUN +0xAD91 0xCDB5 #HANGUL SYLLABLE CHIEUCH WEO NIEUNCIEUC +0xAD92 0xCDB6 #HANGUL SYLLABLE CHIEUCH WEO NIEUNHIEUH +0xAD93 0xCDB7 #HANGUL SYLLABLE CHIEUCH WEO TIKEUT +0xAD94 0xCDB8 #HANGUL SYLLABLE CHIEUCH WEO RIEUL +0xAD95 0xCDB9 #HANGUL SYLLABLE CHIEUCH WEO RIEULKIYEOK +0xAD96 0xCDBA #HANGUL SYLLABLE CHIEUCH WEO RIEULMIEUM +0xAD97 0xCDBB #HANGUL SYLLABLE CHIEUCH WEO RIEULPIEUP +0xAD98 0xCDBC #HANGUL SYLLABLE CHIEUCH WEO RIEULSIOS +0xAD99 0xCDBD #HANGUL SYLLABLE CHIEUCH WEO RIEULTHIEUTH +0xAD9A 0xCDBE #HANGUL SYLLABLE CHIEUCH WEO RIEULPHIEUPH +0xAD9B 0xCDBF #HANGUL SYLLABLE CHIEUCH WEO RIEULHIEUH +0xAD9C 0xCDC0 #HANGUL SYLLABLE CHIEUCH WEO MIEUM +0xAD9D 0xCDC1 #HANGUL SYLLABLE CHIEUCH WEO PIEUP +0xAD9E 0xCDC2 #HANGUL SYLLABLE CHIEUCH WEO PIEUPSIOS +0xAD9F 0xCDC3 #HANGUL SYLLABLE CHIEUCH WEO SIOS +0xADA0 0xCDC5 #HANGUL SYLLABLE CHIEUCH WEO IEUNG +0xAE41 0xCDC6 #HANGUL SYLLABLE CHIEUCH WEO CIEUC +0xAE42 0xCDC7 #HANGUL SYLLABLE CHIEUCH WEO CHIEUCH +0xAE43 0xCDC8 #HANGUL SYLLABLE CHIEUCH WEO KHIEUKH +0xAE44 0xCDC9 #HANGUL SYLLABLE CHIEUCH WEO THIEUTH +0xAE45 0xCDCA #HANGUL SYLLABLE CHIEUCH WEO PHIEUPH +0xAE46 0xCDCB #HANGUL SYLLABLE CHIEUCH WEO HIEUH +0xAE47 0xCDCD #HANGUL SYLLABLE CHIEUCH WE KIYEOK +0xAE48 0xCDCE #HANGUL SYLLABLE CHIEUCH WE SSANGKIYEOK +0xAE49 0xCDCF #HANGUL SYLLABLE CHIEUCH WE KIYEOKSIOS +0xAE4A 0xCDD1 #HANGUL SYLLABLE CHIEUCH WE NIEUNCIEUC +0xAE4B 0xCDD2 #HANGUL SYLLABLE CHIEUCH WE NIEUNHIEUH +0xAE4C 0xCDD3 #HANGUL SYLLABLE CHIEUCH WE TIKEUT +0xAE4D 0xCDD4 #HANGUL SYLLABLE CHIEUCH WE RIEUL +0xAE4E 0xCDD5 #HANGUL SYLLABLE CHIEUCH WE RIEULKIYEOK +0xAE4F 0xCDD6 #HANGUL SYLLABLE CHIEUCH WE RIEULMIEUM +0xAE50 0xCDD7 #HANGUL SYLLABLE CHIEUCH WE RIEULPIEUP +0xAE51 0xCDD8 #HANGUL SYLLABLE CHIEUCH WE RIEULSIOS +0xAE52 0xCDD9 #HANGUL SYLLABLE CHIEUCH WE RIEULTHIEUTH +0xAE53 0xCDDA #HANGUL SYLLABLE CHIEUCH WE RIEULPHIEUPH +0xAE54 0xCDDB #HANGUL SYLLABLE CHIEUCH WE RIEULHIEUH +0xAE55 0xCDDC #HANGUL SYLLABLE CHIEUCH WE MIEUM +0xAE56 0xCDDD #HANGUL SYLLABLE CHIEUCH WE PIEUP +0xAE57 0xCDDE #HANGUL SYLLABLE CHIEUCH WE PIEUPSIOS +0xAE58 0xCDDF #HANGUL SYLLABLE CHIEUCH WE SIOS +0xAE59 0xCDE0 #HANGUL SYLLABLE CHIEUCH WE SSANGSIOS +0xAE5A 0xCDE1 #HANGUL SYLLABLE CHIEUCH WE IEUNG +0xAE61 0xCDE2 #HANGUL SYLLABLE CHIEUCH WE CIEUC +0xAE62 0xCDE3 #HANGUL SYLLABLE CHIEUCH WE CHIEUCH +0xAE63 0xCDE4 #HANGUL SYLLABLE CHIEUCH WE KHIEUKH +0xAE64 0xCDE5 #HANGUL SYLLABLE CHIEUCH WE THIEUTH +0xAE65 0xCDE6 #HANGUL SYLLABLE CHIEUCH WE PHIEUPH +0xAE66 0xCDE7 #HANGUL SYLLABLE CHIEUCH WE HIEUH +0xAE67 0xCDE9 #HANGUL SYLLABLE CHIEUCH WI KIYEOK +0xAE68 0xCDEA #HANGUL SYLLABLE CHIEUCH WI SSANGKIYEOK +0xAE69 0xCDEB #HANGUL SYLLABLE CHIEUCH WI KIYEOKSIOS +0xAE6A 0xCDED #HANGUL SYLLABLE CHIEUCH WI NIEUNCIEUC +0xAE6B 0xCDEE #HANGUL SYLLABLE CHIEUCH WI NIEUNHIEUH +0xAE6C 0xCDEF #HANGUL SYLLABLE CHIEUCH WI TIKEUT +0xAE6D 0xCDF1 #HANGUL SYLLABLE CHIEUCH WI RIEULKIYEOK +0xAE6E 0xCDF2 #HANGUL SYLLABLE CHIEUCH WI RIEULMIEUM +0xAE6F 0xCDF3 #HANGUL SYLLABLE CHIEUCH WI RIEULPIEUP +0xAE70 0xCDF4 #HANGUL SYLLABLE CHIEUCH WI RIEULSIOS +0xAE71 0xCDF5 #HANGUL SYLLABLE CHIEUCH WI RIEULTHIEUTH +0xAE72 0xCDF6 #HANGUL SYLLABLE CHIEUCH WI RIEULPHIEUPH +0xAE73 0xCDF7 #HANGUL SYLLABLE CHIEUCH WI RIEULHIEUH +0xAE74 0xCDFA #HANGUL SYLLABLE CHIEUCH WI PIEUPSIOS +0xAE75 0xCDFC #HANGUL SYLLABLE CHIEUCH WI SSANGSIOS +0xAE76 0xCDFE #HANGUL SYLLABLE CHIEUCH WI CIEUC +0xAE77 0xCDFF #HANGUL SYLLABLE CHIEUCH WI CHIEUCH +0xAE78 0xCE00 #HANGUL SYLLABLE CHIEUCH WI KHIEUKH +0xAE79 0xCE01 #HANGUL SYLLABLE CHIEUCH WI THIEUTH +0xAE7A 0xCE02 #HANGUL SYLLABLE CHIEUCH WI PHIEUPH +0xAE81 0xCE03 #HANGUL SYLLABLE CHIEUCH WI HIEUH +0xAE82 0xCE05 #HANGUL SYLLABLE CHIEUCH YU KIYEOK +0xAE83 0xCE06 #HANGUL SYLLABLE CHIEUCH YU SSANGKIYEOK +0xAE84 0xCE07 #HANGUL SYLLABLE CHIEUCH YU KIYEOKSIOS +0xAE85 0xCE09 #HANGUL SYLLABLE CHIEUCH YU NIEUNCIEUC +0xAE86 0xCE0A #HANGUL SYLLABLE CHIEUCH YU NIEUNHIEUH +0xAE87 0xCE0B #HANGUL SYLLABLE CHIEUCH YU TIKEUT +0xAE88 0xCE0D #HANGUL SYLLABLE CHIEUCH YU RIEULKIYEOK +0xAE89 0xCE0E #HANGUL SYLLABLE CHIEUCH YU RIEULMIEUM +0xAE8A 0xCE0F #HANGUL SYLLABLE CHIEUCH YU RIEULPIEUP +0xAE8B 0xCE10 #HANGUL SYLLABLE CHIEUCH YU RIEULSIOS +0xAE8C 0xCE11 #HANGUL SYLLABLE CHIEUCH YU RIEULTHIEUTH +0xAE8D 0xCE12 #HANGUL SYLLABLE CHIEUCH YU RIEULPHIEUPH +0xAE8E 0xCE13 #HANGUL SYLLABLE CHIEUCH YU RIEULHIEUH +0xAE8F 0xCE15 #HANGUL SYLLABLE CHIEUCH YU PIEUP +0xAE90 0xCE16 #HANGUL SYLLABLE CHIEUCH YU PIEUPSIOS +0xAE91 0xCE17 #HANGUL SYLLABLE CHIEUCH YU SIOS +0xAE92 0xCE18 #HANGUL SYLLABLE CHIEUCH YU SSANGSIOS +0xAE93 0xCE1A #HANGUL SYLLABLE CHIEUCH YU CIEUC +0xAE94 0xCE1B #HANGUL SYLLABLE CHIEUCH YU CHIEUCH +0xAE95 0xCE1C #HANGUL SYLLABLE CHIEUCH YU KHIEUKH +0xAE96 0xCE1D #HANGUL SYLLABLE CHIEUCH YU THIEUTH +0xAE97 0xCE1E #HANGUL SYLLABLE CHIEUCH YU PHIEUPH +0xAE98 0xCE1F #HANGUL SYLLABLE CHIEUCH YU HIEUH +0xAE99 0xCE22 #HANGUL SYLLABLE CHIEUCH EU SSANGKIYEOK +0xAE9A 0xCE23 #HANGUL SYLLABLE CHIEUCH EU KIYEOKSIOS +0xAE9B 0xCE25 #HANGUL SYLLABLE CHIEUCH EU NIEUNCIEUC +0xAE9C 0xCE26 #HANGUL SYLLABLE CHIEUCH EU NIEUNHIEUH +0xAE9D 0xCE27 #HANGUL SYLLABLE CHIEUCH EU TIKEUT +0xAE9E 0xCE29 #HANGUL SYLLABLE CHIEUCH EU RIEULKIYEOK +0xAE9F 0xCE2A #HANGUL SYLLABLE CHIEUCH EU RIEULMIEUM +0xAEA0 0xCE2B #HANGUL SYLLABLE CHIEUCH EU RIEULPIEUP +0xAF41 0xCE2C #HANGUL SYLLABLE CHIEUCH EU RIEULSIOS +0xAF42 0xCE2D #HANGUL SYLLABLE CHIEUCH EU RIEULTHIEUTH +0xAF43 0xCE2E #HANGUL SYLLABLE CHIEUCH EU RIEULPHIEUPH +0xAF44 0xCE2F #HANGUL SYLLABLE CHIEUCH EU RIEULHIEUH +0xAF45 0xCE32 #HANGUL SYLLABLE CHIEUCH EU PIEUPSIOS +0xAF46 0xCE34 #HANGUL SYLLABLE CHIEUCH EU SSANGSIOS +0xAF47 0xCE36 #HANGUL SYLLABLE CHIEUCH EU CIEUC +0xAF48 0xCE37 #HANGUL SYLLABLE CHIEUCH EU CHIEUCH +0xAF49 0xCE38 #HANGUL SYLLABLE CHIEUCH EU KHIEUKH +0xAF4A 0xCE39 #HANGUL SYLLABLE CHIEUCH EU THIEUTH +0xAF4B 0xCE3A #HANGUL SYLLABLE CHIEUCH EU PHIEUPH +0xAF4C 0xCE3B #HANGUL SYLLABLE CHIEUCH EU HIEUH +0xAF4D 0xCE3C #HANGUL SYLLABLE CHIEUCH YI +0xAF4E 0xCE3D #HANGUL SYLLABLE CHIEUCH YI KIYEOK +0xAF4F 0xCE3E #HANGUL SYLLABLE CHIEUCH YI SSANGKIYEOK +0xAF50 0xCE3F #HANGUL SYLLABLE CHIEUCH YI KIYEOKSIOS +0xAF51 0xCE40 #HANGUL SYLLABLE CHIEUCH YI NIEUN +0xAF52 0xCE41 #HANGUL SYLLABLE CHIEUCH YI NIEUNCIEUC +0xAF53 0xCE42 #HANGUL SYLLABLE CHIEUCH YI NIEUNHIEUH +0xAF54 0xCE43 #HANGUL SYLLABLE CHIEUCH YI TIKEUT +0xAF55 0xCE44 #HANGUL SYLLABLE CHIEUCH YI RIEUL +0xAF56 0xCE45 #HANGUL SYLLABLE CHIEUCH YI RIEULKIYEOK +0xAF57 0xCE46 #HANGUL SYLLABLE CHIEUCH YI RIEULMIEUM +0xAF58 0xCE47 #HANGUL SYLLABLE CHIEUCH YI RIEULPIEUP +0xAF59 0xCE48 #HANGUL SYLLABLE CHIEUCH YI RIEULSIOS +0xAF5A 0xCE49 #HANGUL SYLLABLE CHIEUCH YI RIEULTHIEUTH +0xAF61 0xCE4A #HANGUL SYLLABLE CHIEUCH YI RIEULPHIEUPH +0xAF62 0xCE4B #HANGUL SYLLABLE CHIEUCH YI RIEULHIEUH +0xAF63 0xCE4C #HANGUL SYLLABLE CHIEUCH YI MIEUM +0xAF64 0xCE4D #HANGUL SYLLABLE CHIEUCH YI PIEUP +0xAF65 0xCE4E #HANGUL SYLLABLE CHIEUCH YI PIEUPSIOS +0xAF66 0xCE4F #HANGUL SYLLABLE CHIEUCH YI SIOS +0xAF67 0xCE50 #HANGUL SYLLABLE CHIEUCH YI SSANGSIOS +0xAF68 0xCE51 #HANGUL SYLLABLE CHIEUCH YI IEUNG +0xAF69 0xCE52 #HANGUL SYLLABLE CHIEUCH YI CIEUC +0xAF6A 0xCE53 #HANGUL SYLLABLE CHIEUCH YI CHIEUCH +0xAF6B 0xCE54 #HANGUL SYLLABLE CHIEUCH YI KHIEUKH +0xAF6C 0xCE55 #HANGUL SYLLABLE CHIEUCH YI THIEUTH +0xAF6D 0xCE56 #HANGUL SYLLABLE CHIEUCH YI PHIEUPH +0xAF6E 0xCE57 #HANGUL SYLLABLE CHIEUCH YI HIEUH +0xAF6F 0xCE5A #HANGUL SYLLABLE CHIEUCH I SSANGKIYEOK +0xAF70 0xCE5B #HANGUL SYLLABLE CHIEUCH I KIYEOKSIOS +0xAF71 0xCE5D #HANGUL SYLLABLE CHIEUCH I NIEUNCIEUC +0xAF72 0xCE5E #HANGUL SYLLABLE CHIEUCH I NIEUNHIEUH +0xAF73 0xCE62 #HANGUL SYLLABLE CHIEUCH I RIEULMIEUM +0xAF74 0xCE63 #HANGUL SYLLABLE CHIEUCH I RIEULPIEUP +0xAF75 0xCE64 #HANGUL SYLLABLE CHIEUCH I RIEULSIOS +0xAF76 0xCE65 #HANGUL SYLLABLE CHIEUCH I RIEULTHIEUTH +0xAF77 0xCE66 #HANGUL SYLLABLE CHIEUCH I RIEULPHIEUPH +0xAF78 0xCE67 #HANGUL SYLLABLE CHIEUCH I RIEULHIEUH +0xAF79 0xCE6A #HANGUL SYLLABLE CHIEUCH I PIEUPSIOS +0xAF7A 0xCE6C #HANGUL SYLLABLE CHIEUCH I SSANGSIOS +0xAF81 0xCE6E #HANGUL SYLLABLE CHIEUCH I CIEUC +0xAF82 0xCE6F #HANGUL SYLLABLE CHIEUCH I CHIEUCH +0xAF83 0xCE70 #HANGUL SYLLABLE CHIEUCH I KHIEUKH +0xAF84 0xCE71 #HANGUL SYLLABLE CHIEUCH I THIEUTH +0xAF85 0xCE72 #HANGUL SYLLABLE CHIEUCH I PHIEUPH +0xAF86 0xCE73 #HANGUL SYLLABLE CHIEUCH I HIEUH +0xAF87 0xCE76 #HANGUL SYLLABLE KHIEUKH A SSANGKIYEOK +0xAF88 0xCE77 #HANGUL SYLLABLE KHIEUKH A KIYEOKSIOS +0xAF89 0xCE79 #HANGUL SYLLABLE KHIEUKH A NIEUNCIEUC +0xAF8A 0xCE7A #HANGUL SYLLABLE KHIEUKH A NIEUNHIEUH +0xAF8B 0xCE7B #HANGUL SYLLABLE KHIEUKH A TIKEUT +0xAF8C 0xCE7D #HANGUL SYLLABLE KHIEUKH A RIEULKIYEOK +0xAF8D 0xCE7E #HANGUL SYLLABLE KHIEUKH A RIEULMIEUM +0xAF8E 0xCE7F #HANGUL SYLLABLE KHIEUKH A RIEULPIEUP +0xAF8F 0xCE80 #HANGUL SYLLABLE KHIEUKH A RIEULSIOS +0xAF90 0xCE81 #HANGUL SYLLABLE KHIEUKH A RIEULTHIEUTH +0xAF91 0xCE82 #HANGUL SYLLABLE KHIEUKH A RIEULPHIEUPH +0xAF92 0xCE83 #HANGUL SYLLABLE KHIEUKH A RIEULHIEUH +0xAF93 0xCE86 #HANGUL SYLLABLE KHIEUKH A PIEUPSIOS +0xAF94 0xCE88 #HANGUL SYLLABLE KHIEUKH A SSANGSIOS +0xAF95 0xCE8A #HANGUL SYLLABLE KHIEUKH A CIEUC +0xAF96 0xCE8B #HANGUL SYLLABLE KHIEUKH A CHIEUCH +0xAF97 0xCE8C #HANGUL SYLLABLE KHIEUKH A KHIEUKH +0xAF98 0xCE8D #HANGUL SYLLABLE KHIEUKH A THIEUTH +0xAF99 0xCE8E #HANGUL SYLLABLE KHIEUKH A PHIEUPH +0xAF9A 0xCE8F #HANGUL SYLLABLE KHIEUKH A HIEUH +0xAF9B 0xCE92 #HANGUL SYLLABLE KHIEUKH AE SSANGKIYEOK +0xAF9C 0xCE93 #HANGUL SYLLABLE KHIEUKH AE KIYEOKSIOS +0xAF9D 0xCE95 #HANGUL SYLLABLE KHIEUKH AE NIEUNCIEUC +0xAF9E 0xCE96 #HANGUL SYLLABLE KHIEUKH AE NIEUNHIEUH +0xAF9F 0xCE97 #HANGUL SYLLABLE KHIEUKH AE TIKEUT +0xAFA0 0xCE99 #HANGUL SYLLABLE KHIEUKH AE RIEULKIYEOK +0xB041 0xCE9A #HANGUL SYLLABLE KHIEUKH AE RIEULMIEUM +0xB042 0xCE9B #HANGUL SYLLABLE KHIEUKH AE RIEULPIEUP +0xB043 0xCE9C #HANGUL SYLLABLE KHIEUKH AE RIEULSIOS +0xB044 0xCE9D #HANGUL SYLLABLE KHIEUKH AE RIEULTHIEUTH +0xB045 0xCE9E #HANGUL SYLLABLE KHIEUKH AE RIEULPHIEUPH +0xB046 0xCE9F #HANGUL SYLLABLE KHIEUKH AE RIEULHIEUH +0xB047 0xCEA2 #HANGUL SYLLABLE KHIEUKH AE PIEUPSIOS +0xB048 0xCEA6 #HANGUL SYLLABLE KHIEUKH AE CIEUC +0xB049 0xCEA7 #HANGUL SYLLABLE KHIEUKH AE CHIEUCH +0xB04A 0xCEA8 #HANGUL SYLLABLE KHIEUKH AE KHIEUKH +0xB04B 0xCEA9 #HANGUL SYLLABLE KHIEUKH AE THIEUTH +0xB04C 0xCEAA #HANGUL SYLLABLE KHIEUKH AE PHIEUPH +0xB04D 0xCEAB #HANGUL SYLLABLE KHIEUKH AE HIEUH +0xB04E 0xCEAE #HANGUL SYLLABLE KHIEUKH YA SSANGKIYEOK +0xB04F 0xCEAF #HANGUL SYLLABLE KHIEUKH YA KIYEOKSIOS +0xB050 0xCEB0 #HANGUL SYLLABLE KHIEUKH YA NIEUN +0xB051 0xCEB1 #HANGUL SYLLABLE KHIEUKH YA NIEUNCIEUC +0xB052 0xCEB2 #HANGUL SYLLABLE KHIEUKH YA NIEUNHIEUH +0xB053 0xCEB3 #HANGUL SYLLABLE KHIEUKH YA TIKEUT +0xB054 0xCEB4 #HANGUL SYLLABLE KHIEUKH YA RIEUL +0xB055 0xCEB5 #HANGUL SYLLABLE KHIEUKH YA RIEULKIYEOK +0xB056 0xCEB6 #HANGUL SYLLABLE KHIEUKH YA RIEULMIEUM +0xB057 0xCEB7 #HANGUL SYLLABLE KHIEUKH YA RIEULPIEUP +0xB058 0xCEB8 #HANGUL SYLLABLE KHIEUKH YA RIEULSIOS +0xB059 0xCEB9 #HANGUL SYLLABLE KHIEUKH YA RIEULTHIEUTH +0xB05A 0xCEBA #HANGUL SYLLABLE KHIEUKH YA RIEULPHIEUPH +0xB061 0xCEBB #HANGUL SYLLABLE KHIEUKH YA RIEULHIEUH +0xB062 0xCEBC #HANGUL SYLLABLE KHIEUKH YA MIEUM +0xB063 0xCEBD #HANGUL SYLLABLE KHIEUKH YA PIEUP +0xB064 0xCEBE #HANGUL SYLLABLE KHIEUKH YA PIEUPSIOS +0xB065 0xCEBF #HANGUL SYLLABLE KHIEUKH YA SIOS +0xB066 0xCEC0 #HANGUL SYLLABLE KHIEUKH YA SSANGSIOS +0xB067 0xCEC2 #HANGUL SYLLABLE KHIEUKH YA CIEUC +0xB068 0xCEC3 #HANGUL SYLLABLE KHIEUKH YA CHIEUCH +0xB069 0xCEC4 #HANGUL SYLLABLE KHIEUKH YA KHIEUKH +0xB06A 0xCEC5 #HANGUL SYLLABLE KHIEUKH YA THIEUTH +0xB06B 0xCEC6 #HANGUL SYLLABLE KHIEUKH YA PHIEUPH +0xB06C 0xCEC7 #HANGUL SYLLABLE KHIEUKH YA HIEUH +0xB06D 0xCEC8 #HANGUL SYLLABLE KHIEUKH YAE +0xB06E 0xCEC9 #HANGUL SYLLABLE KHIEUKH YAE KIYEOK +0xB06F 0xCECA #HANGUL SYLLABLE KHIEUKH YAE SSANGKIYEOK +0xB070 0xCECB #HANGUL SYLLABLE KHIEUKH YAE KIYEOKSIOS +0xB071 0xCECC #HANGUL SYLLABLE KHIEUKH YAE NIEUN +0xB072 0xCECD #HANGUL SYLLABLE KHIEUKH YAE NIEUNCIEUC +0xB073 0xCECE #HANGUL SYLLABLE KHIEUKH YAE NIEUNHIEUH +0xB074 0xCECF #HANGUL SYLLABLE KHIEUKH YAE TIKEUT +0xB075 0xCED0 #HANGUL SYLLABLE KHIEUKH YAE RIEUL +0xB076 0xCED1 #HANGUL SYLLABLE KHIEUKH YAE RIEULKIYEOK +0xB077 0xCED2 #HANGUL SYLLABLE KHIEUKH YAE RIEULMIEUM +0xB078 0xCED3 #HANGUL SYLLABLE KHIEUKH YAE RIEULPIEUP +0xB079 0xCED4 #HANGUL SYLLABLE KHIEUKH YAE RIEULSIOS +0xB07A 0xCED5 #HANGUL SYLLABLE KHIEUKH YAE RIEULTHIEUTH +0xB081 0xCED6 #HANGUL SYLLABLE KHIEUKH YAE RIEULPHIEUPH +0xB082 0xCED7 #HANGUL SYLLABLE KHIEUKH YAE RIEULHIEUH +0xB083 0xCED8 #HANGUL SYLLABLE KHIEUKH YAE MIEUM +0xB084 0xCED9 #HANGUL SYLLABLE KHIEUKH YAE PIEUP +0xB085 0xCEDA #HANGUL SYLLABLE KHIEUKH YAE PIEUPSIOS +0xB086 0xCEDB #HANGUL SYLLABLE KHIEUKH YAE SIOS +0xB087 0xCEDC #HANGUL SYLLABLE KHIEUKH YAE SSANGSIOS +0xB088 0xCEDD #HANGUL SYLLABLE KHIEUKH YAE IEUNG +0xB089 0xCEDE #HANGUL SYLLABLE KHIEUKH YAE CIEUC +0xB08A 0xCEDF #HANGUL SYLLABLE KHIEUKH YAE CHIEUCH +0xB08B 0xCEE0 #HANGUL SYLLABLE KHIEUKH YAE KHIEUKH +0xB08C 0xCEE1 #HANGUL SYLLABLE KHIEUKH YAE THIEUTH +0xB08D 0xCEE2 #HANGUL SYLLABLE KHIEUKH YAE PHIEUPH +0xB08E 0xCEE3 #HANGUL SYLLABLE KHIEUKH YAE HIEUH +0xB08F 0xCEE6 #HANGUL SYLLABLE KHIEUKH EO SSANGKIYEOK +0xB090 0xCEE7 #HANGUL SYLLABLE KHIEUKH EO KIYEOKSIOS +0xB091 0xCEE9 #HANGUL SYLLABLE KHIEUKH EO NIEUNCIEUC +0xB092 0xCEEA #HANGUL SYLLABLE KHIEUKH EO NIEUNHIEUH +0xB093 0xCEED #HANGUL SYLLABLE KHIEUKH EO RIEULKIYEOK +0xB094 0xCEEE #HANGUL SYLLABLE KHIEUKH EO RIEULMIEUM +0xB095 0xCEEF #HANGUL SYLLABLE KHIEUKH EO RIEULPIEUP +0xB096 0xCEF0 #HANGUL SYLLABLE KHIEUKH EO RIEULSIOS +0xB097 0xCEF1 #HANGUL SYLLABLE KHIEUKH EO RIEULTHIEUTH +0xB098 0xCEF2 #HANGUL SYLLABLE KHIEUKH EO RIEULPHIEUPH +0xB099 0xCEF3 #HANGUL SYLLABLE KHIEUKH EO RIEULHIEUH +0xB09A 0xCEF6 #HANGUL SYLLABLE KHIEUKH EO PIEUPSIOS +0xB09B 0xCEFA #HANGUL SYLLABLE KHIEUKH EO CIEUC +0xB09C 0xCEFB #HANGUL SYLLABLE KHIEUKH EO CHIEUCH +0xB09D 0xCEFC #HANGUL SYLLABLE KHIEUKH EO KHIEUKH +0xB09E 0xCEFD #HANGUL SYLLABLE KHIEUKH EO THIEUTH +0xB09F 0xCEFE #HANGUL SYLLABLE KHIEUKH EO PHIEUPH +0xB0A0 0xCEFF #HANGUL SYLLABLE KHIEUKH EO HIEUH +0xB0A1 0xAC00 #HANGUL SYLLABLE KIYEOK A +0xB0A2 0xAC01 #HANGUL SYLLABLE KIYEOK A KIYEOK +0xB0A3 0xAC04 #HANGUL SYLLABLE KIYEOK A NIEUN +0xB0A4 0xAC07 #HANGUL SYLLABLE KIYEOK A TIKEUT +0xB0A5 0xAC08 #HANGUL SYLLABLE KIYEOK A RIEUL +0xB0A6 0xAC09 #HANGUL SYLLABLE KIYEOK A RIEULKIYEOK +0xB0A7 0xAC0A #HANGUL SYLLABLE KIYEOK A RIEULMIEUM +0xB0A8 0xAC10 #HANGUL SYLLABLE KIYEOK A MIEUM +0xB0A9 0xAC11 #HANGUL SYLLABLE KIYEOK A PIEUP +0xB0AA 0xAC12 #HANGUL SYLLABLE KIYEOK A PIEUPSIOS +0xB0AB 0xAC13 #HANGUL SYLLABLE KIYEOK A SIOS +0xB0AC 0xAC14 #HANGUL SYLLABLE KIYEOK A SSANGSIOS +0xB0AD 0xAC15 #HANGUL SYLLABLE KIYEOK A IEUNG +0xB0AE 0xAC16 #HANGUL SYLLABLE KIYEOK A CIEUC +0xB0AF 0xAC17 #HANGUL SYLLABLE KIYEOK A CHIEUCH +0xB0B0 0xAC19 #HANGUL SYLLABLE KIYEOK A THIEUTH +0xB0B1 0xAC1A #HANGUL SYLLABLE KIYEOK A PHIEUPH +0xB0B2 0xAC1B #HANGUL SYLLABLE KIYEOK A HIEUH +0xB0B3 0xAC1C #HANGUL SYLLABLE KIYEOK AE +0xB0B4 0xAC1D #HANGUL SYLLABLE KIYEOK AE KIYEOK +0xB0B5 0xAC20 #HANGUL SYLLABLE KIYEOK AE NIEUN +0xB0B6 0xAC24 #HANGUL SYLLABLE KIYEOK AE RIEUL +0xB0B7 0xAC2C #HANGUL SYLLABLE KIYEOK AE MIEUM +0xB0B8 0xAC2D #HANGUL SYLLABLE KIYEOK AE PIEUP +0xB0B9 0xAC2F #HANGUL SYLLABLE KIYEOK AE SIOS +0xB0BA 0xAC30 #HANGUL SYLLABLE KIYEOK AE SSANGSIOS +0xB0BB 0xAC31 #HANGUL SYLLABLE KIYEOK AE IEUNG +0xB0BC 0xAC38 #HANGUL SYLLABLE KIYEOK YA +0xB0BD 0xAC39 #HANGUL SYLLABLE KIYEOK YA KIYEOK +0xB0BE 0xAC3C #HANGUL SYLLABLE KIYEOK YA NIEUN +0xB0BF 0xAC40 #HANGUL SYLLABLE KIYEOK YA RIEUL +0xB0C0 0xAC4B #HANGUL SYLLABLE KIYEOK YA SIOS +0xB0C1 0xAC4D #HANGUL SYLLABLE KIYEOK YA IEUNG +0xB0C2 0xAC54 #HANGUL SYLLABLE KIYEOK YAE +0xB0C3 0xAC58 #HANGUL SYLLABLE KIYEOK YAE NIEUN +0xB0C4 0xAC5C #HANGUL SYLLABLE KIYEOK YAE RIEUL +0xB0C5 0xAC70 #HANGUL SYLLABLE KIYEOK EO +0xB0C6 0xAC71 #HANGUL SYLLABLE KIYEOK EO KIYEOK +0xB0C7 0xAC74 #HANGUL SYLLABLE KIYEOK EO NIEUN +0xB0C8 0xAC77 #HANGUL SYLLABLE KIYEOK EO TIKEUT +0xB0C9 0xAC78 #HANGUL SYLLABLE KIYEOK EO RIEUL +0xB0CA 0xAC7A #HANGUL SYLLABLE KIYEOK EO RIEULMIEUM +0xB0CB 0xAC80 #HANGUL SYLLABLE KIYEOK EO MIEUM +0xB0CC 0xAC81 #HANGUL SYLLABLE KIYEOK EO PIEUP +0xB0CD 0xAC83 #HANGUL SYLLABLE KIYEOK EO SIOS +0xB0CE 0xAC84 #HANGUL SYLLABLE KIYEOK EO SSANGSIOS +0xB0CF 0xAC85 #HANGUL SYLLABLE KIYEOK EO IEUNG +0xB0D0 0xAC86 #HANGUL SYLLABLE KIYEOK EO CIEUC +0xB0D1 0xAC89 #HANGUL SYLLABLE KIYEOK EO THIEUTH +0xB0D2 0xAC8A #HANGUL SYLLABLE KIYEOK EO PHIEUPH +0xB0D3 0xAC8B #HANGUL SYLLABLE KIYEOK EO HIEUH +0xB0D4 0xAC8C #HANGUL SYLLABLE KIYEOK E +0xB0D5 0xAC90 #HANGUL SYLLABLE KIYEOK E NIEUN +0xB0D6 0xAC94 #HANGUL SYLLABLE KIYEOK E RIEUL +0xB0D7 0xAC9C #HANGUL SYLLABLE KIYEOK E MIEUM +0xB0D8 0xAC9D #HANGUL SYLLABLE KIYEOK E PIEUP +0xB0D9 0xAC9F #HANGUL SYLLABLE KIYEOK E SIOS +0xB0DA 0xACA0 #HANGUL SYLLABLE KIYEOK E SSANGSIOS +0xB0DB 0xACA1 #HANGUL SYLLABLE KIYEOK E IEUNG +0xB0DC 0xACA8 #HANGUL SYLLABLE KIYEOK YEO +0xB0DD 0xACA9 #HANGUL SYLLABLE KIYEOK YEO KIYEOK +0xB0DE 0xACAA #HANGUL SYLLABLE KIYEOK YEO SSANGKIYEOK +0xB0DF 0xACAC #HANGUL SYLLABLE KIYEOK YEO NIEUN +0xB0E0 0xACAF #HANGUL SYLLABLE KIYEOK YEO TIKEUT +0xB0E1 0xACB0 #HANGUL SYLLABLE KIYEOK YEO RIEUL +0xB0E2 0xACB8 #HANGUL SYLLABLE KIYEOK YEO MIEUM +0xB0E3 0xACB9 #HANGUL SYLLABLE KIYEOK YEO PIEUP +0xB0E4 0xACBB #HANGUL SYLLABLE KIYEOK YEO SIOS +0xB0E5 0xACBC #HANGUL SYLLABLE KIYEOK YEO SSANGSIOS +0xB0E6 0xACBD #HANGUL SYLLABLE KIYEOK YEO IEUNG +0xB0E7 0xACC1 #HANGUL SYLLABLE KIYEOK YEO THIEUTH +0xB0E8 0xACC4 #HANGUL SYLLABLE KIYEOK YE +0xB0E9 0xACC8 #HANGUL SYLLABLE KIYEOK YE NIEUN +0xB0EA 0xACCC #HANGUL SYLLABLE KIYEOK YE RIEUL +0xB0EB 0xACD5 #HANGUL SYLLABLE KIYEOK YE PIEUP +0xB0EC 0xACD7 #HANGUL SYLLABLE KIYEOK YE SIOS +0xB0ED 0xACE0 #HANGUL SYLLABLE KIYEOK O +0xB0EE 0xACE1 #HANGUL SYLLABLE KIYEOK O KIYEOK +0xB0EF 0xACE4 #HANGUL SYLLABLE KIYEOK O NIEUN +0xB0F0 0xACE7 #HANGUL SYLLABLE KIYEOK O TIKEUT +0xB0F1 0xACE8 #HANGUL SYLLABLE KIYEOK O RIEUL +0xB0F2 0xACEA #HANGUL SYLLABLE KIYEOK O RIEULMIEUM +0xB0F3 0xACEC #HANGUL SYLLABLE KIYEOK O RIEULSIOS +0xB0F4 0xACEF #HANGUL SYLLABLE KIYEOK O RIEULHIEUH +0xB0F5 0xACF0 #HANGUL SYLLABLE KIYEOK O MIEUM +0xB0F6 0xACF1 #HANGUL SYLLABLE KIYEOK O PIEUP +0xB0F7 0xACF3 #HANGUL SYLLABLE KIYEOK O SIOS +0xB0F8 0xACF5 #HANGUL SYLLABLE KIYEOK O IEUNG +0xB0F9 0xACF6 #HANGUL SYLLABLE KIYEOK O CIEUC +0xB0FA 0xACFC #HANGUL SYLLABLE KIYEOK WA +0xB0FB 0xACFD #HANGUL SYLLABLE KIYEOK WA KIYEOK +0xB0FC 0xAD00 #HANGUL SYLLABLE KIYEOK WA NIEUN +0xB0FD 0xAD04 #HANGUL SYLLABLE KIYEOK WA RIEUL +0xB0FE 0xAD06 #HANGUL SYLLABLE KIYEOK WA RIEULMIEUM +0xB141 0xCF02 #HANGUL SYLLABLE KHIEUKH E SSANGKIYEOK +0xB142 0xCF03 #HANGUL SYLLABLE KHIEUKH E KIYEOKSIOS +0xB143 0xCF05 #HANGUL SYLLABLE KHIEUKH E NIEUNCIEUC +0xB144 0xCF06 #HANGUL SYLLABLE KHIEUKH E NIEUNHIEUH +0xB145 0xCF07 #HANGUL SYLLABLE KHIEUKH E TIKEUT +0xB146 0xCF09 #HANGUL SYLLABLE KHIEUKH E RIEULKIYEOK +0xB147 0xCF0A #HANGUL SYLLABLE KHIEUKH E RIEULMIEUM +0xB148 0xCF0B #HANGUL SYLLABLE KHIEUKH E RIEULPIEUP +0xB149 0xCF0C #HANGUL SYLLABLE KHIEUKH E RIEULSIOS +0xB14A 0xCF0D #HANGUL SYLLABLE KHIEUKH E RIEULTHIEUTH +0xB14B 0xCF0E #HANGUL SYLLABLE KHIEUKH E RIEULPHIEUPH +0xB14C 0xCF0F #HANGUL SYLLABLE KHIEUKH E RIEULHIEUH +0xB14D 0xCF12 #HANGUL SYLLABLE KHIEUKH E PIEUPSIOS +0xB14E 0xCF14 #HANGUL SYLLABLE KHIEUKH E SSANGSIOS +0xB14F 0xCF16 #HANGUL SYLLABLE KHIEUKH E CIEUC +0xB150 0xCF17 #HANGUL SYLLABLE KHIEUKH E CHIEUCH +0xB151 0xCF18 #HANGUL SYLLABLE KHIEUKH E KHIEUKH +0xB152 0xCF19 #HANGUL SYLLABLE KHIEUKH E THIEUTH +0xB153 0xCF1A #HANGUL SYLLABLE KHIEUKH E PHIEUPH +0xB154 0xCF1B #HANGUL SYLLABLE KHIEUKH E HIEUH +0xB155 0xCF1D #HANGUL SYLLABLE KHIEUKH YEO KIYEOK +0xB156 0xCF1E #HANGUL SYLLABLE KHIEUKH YEO SSANGKIYEOK +0xB157 0xCF1F #HANGUL SYLLABLE KHIEUKH YEO KIYEOKSIOS +0xB158 0xCF21 #HANGUL SYLLABLE KHIEUKH YEO NIEUNCIEUC +0xB159 0xCF22 #HANGUL SYLLABLE KHIEUKH YEO NIEUNHIEUH +0xB15A 0xCF23 #HANGUL SYLLABLE KHIEUKH YEO TIKEUT +0xB161 0xCF25 #HANGUL SYLLABLE KHIEUKH YEO RIEULKIYEOK +0xB162 0xCF26 #HANGUL SYLLABLE KHIEUKH YEO RIEULMIEUM +0xB163 0xCF27 #HANGUL SYLLABLE KHIEUKH YEO RIEULPIEUP +0xB164 0xCF28 #HANGUL SYLLABLE KHIEUKH YEO RIEULSIOS +0xB165 0xCF29 #HANGUL SYLLABLE KHIEUKH YEO RIEULTHIEUTH +0xB166 0xCF2A #HANGUL SYLLABLE KHIEUKH YEO RIEULPHIEUPH +0xB167 0xCF2B #HANGUL SYLLABLE KHIEUKH YEO RIEULHIEUH +0xB168 0xCF2E #HANGUL SYLLABLE KHIEUKH YEO PIEUPSIOS +0xB169 0xCF32 #HANGUL SYLLABLE KHIEUKH YEO CIEUC +0xB16A 0xCF33 #HANGUL SYLLABLE KHIEUKH YEO CHIEUCH +0xB16B 0xCF34 #HANGUL SYLLABLE KHIEUKH YEO KHIEUKH +0xB16C 0xCF35 #HANGUL SYLLABLE KHIEUKH YEO THIEUTH +0xB16D 0xCF36 #HANGUL SYLLABLE KHIEUKH YEO PHIEUPH +0xB16E 0xCF37 #HANGUL SYLLABLE KHIEUKH YEO HIEUH +0xB16F 0xCF39 #HANGUL SYLLABLE KHIEUKH YE KIYEOK +0xB170 0xCF3A #HANGUL SYLLABLE KHIEUKH YE SSANGKIYEOK +0xB171 0xCF3B #HANGUL SYLLABLE KHIEUKH YE KIYEOKSIOS +0xB172 0xCF3C #HANGUL SYLLABLE KHIEUKH YE NIEUN +0xB173 0xCF3D #HANGUL SYLLABLE KHIEUKH YE NIEUNCIEUC +0xB174 0xCF3E #HANGUL SYLLABLE KHIEUKH YE NIEUNHIEUH +0xB175 0xCF3F #HANGUL SYLLABLE KHIEUKH YE TIKEUT +0xB176 0xCF40 #HANGUL SYLLABLE KHIEUKH YE RIEUL +0xB177 0xCF41 #HANGUL SYLLABLE KHIEUKH YE RIEULKIYEOK +0xB178 0xCF42 #HANGUL SYLLABLE KHIEUKH YE RIEULMIEUM +0xB179 0xCF43 #HANGUL SYLLABLE KHIEUKH YE RIEULPIEUP +0xB17A 0xCF44 #HANGUL SYLLABLE KHIEUKH YE RIEULSIOS +0xB181 0xCF45 #HANGUL SYLLABLE KHIEUKH YE RIEULTHIEUTH +0xB182 0xCF46 #HANGUL SYLLABLE KHIEUKH YE RIEULPHIEUPH +0xB183 0xCF47 #HANGUL SYLLABLE KHIEUKH YE RIEULHIEUH +0xB184 0xCF48 #HANGUL SYLLABLE KHIEUKH YE MIEUM +0xB185 0xCF49 #HANGUL SYLLABLE KHIEUKH YE PIEUP +0xB186 0xCF4A #HANGUL SYLLABLE KHIEUKH YE PIEUPSIOS +0xB187 0xCF4B #HANGUL SYLLABLE KHIEUKH YE SIOS +0xB188 0xCF4C #HANGUL SYLLABLE KHIEUKH YE SSANGSIOS +0xB189 0xCF4D #HANGUL SYLLABLE KHIEUKH YE IEUNG +0xB18A 0xCF4E #HANGUL SYLLABLE KHIEUKH YE CIEUC +0xB18B 0xCF4F #HANGUL SYLLABLE KHIEUKH YE CHIEUCH +0xB18C 0xCF50 #HANGUL SYLLABLE KHIEUKH YE KHIEUKH +0xB18D 0xCF51 #HANGUL SYLLABLE KHIEUKH YE THIEUTH +0xB18E 0xCF52 #HANGUL SYLLABLE KHIEUKH YE PHIEUPH +0xB18F 0xCF53 #HANGUL SYLLABLE KHIEUKH YE HIEUH +0xB190 0xCF56 #HANGUL SYLLABLE KHIEUKH O SSANGKIYEOK +0xB191 0xCF57 #HANGUL SYLLABLE KHIEUKH O KIYEOKSIOS +0xB192 0xCF59 #HANGUL SYLLABLE KHIEUKH O NIEUNCIEUC +0xB193 0xCF5A #HANGUL SYLLABLE KHIEUKH O NIEUNHIEUH +0xB194 0xCF5B #HANGUL SYLLABLE KHIEUKH O TIKEUT +0xB195 0xCF5D #HANGUL SYLLABLE KHIEUKH O RIEULKIYEOK +0xB196 0xCF5E #HANGUL SYLLABLE KHIEUKH O RIEULMIEUM +0xB197 0xCF5F #HANGUL SYLLABLE KHIEUKH O RIEULPIEUP +0xB198 0xCF60 #HANGUL SYLLABLE KHIEUKH O RIEULSIOS +0xB199 0xCF61 #HANGUL SYLLABLE KHIEUKH O RIEULTHIEUTH +0xB19A 0xCF62 #HANGUL SYLLABLE KHIEUKH O RIEULPHIEUPH +0xB19B 0xCF63 #HANGUL SYLLABLE KHIEUKH O RIEULHIEUH +0xB19C 0xCF66 #HANGUL SYLLABLE KHIEUKH O PIEUPSIOS +0xB19D 0xCF68 #HANGUL SYLLABLE KHIEUKH O SSANGSIOS +0xB19E 0xCF6A #HANGUL SYLLABLE KHIEUKH O CIEUC +0xB19F 0xCF6B #HANGUL SYLLABLE KHIEUKH O CHIEUCH +0xB1A0 0xCF6C #HANGUL SYLLABLE KHIEUKH O KHIEUKH +0xB1A1 0xAD0C #HANGUL SYLLABLE KIYEOK WA MIEUM +0xB1A2 0xAD0D #HANGUL SYLLABLE KIYEOK WA PIEUP +0xB1A3 0xAD0F #HANGUL SYLLABLE KIYEOK WA SIOS +0xB1A4 0xAD11 #HANGUL SYLLABLE KIYEOK WA IEUNG +0xB1A5 0xAD18 #HANGUL SYLLABLE KIYEOK WAE +0xB1A6 0xAD1C #HANGUL SYLLABLE KIYEOK WAE NIEUN +0xB1A7 0xAD20 #HANGUL SYLLABLE KIYEOK WAE RIEUL +0xB1A8 0xAD29 #HANGUL SYLLABLE KIYEOK WAE PIEUP +0xB1A9 0xAD2C #HANGUL SYLLABLE KIYEOK WAE SSANGSIOS +0xB1AA 0xAD2D #HANGUL SYLLABLE KIYEOK WAE IEUNG +0xB1AB 0xAD34 #HANGUL SYLLABLE KIYEOK OE +0xB1AC 0xAD35 #HANGUL SYLLABLE KIYEOK OE KIYEOK +0xB1AD 0xAD38 #HANGUL SYLLABLE KIYEOK OE NIEUN +0xB1AE 0xAD3C #HANGUL SYLLABLE KIYEOK OE RIEUL +0xB1AF 0xAD44 #HANGUL SYLLABLE KIYEOK OE MIEUM +0xB1B0 0xAD45 #HANGUL SYLLABLE KIYEOK OE PIEUP +0xB1B1 0xAD47 #HANGUL SYLLABLE KIYEOK OE SIOS +0xB1B2 0xAD49 #HANGUL SYLLABLE KIYEOK OE IEUNG +0xB1B3 0xAD50 #HANGUL SYLLABLE KIYEOK YO +0xB1B4 0xAD54 #HANGUL SYLLABLE KIYEOK YO NIEUN +0xB1B5 0xAD58 #HANGUL SYLLABLE KIYEOK YO RIEUL +0xB1B6 0xAD61 #HANGUL SYLLABLE KIYEOK YO PIEUP +0xB1B7 0xAD63 #HANGUL SYLLABLE KIYEOK YO SIOS +0xB1B8 0xAD6C #HANGUL SYLLABLE KIYEOK U +0xB1B9 0xAD6D #HANGUL SYLLABLE KIYEOK U KIYEOK +0xB1BA 0xAD70 #HANGUL SYLLABLE KIYEOK U NIEUN +0xB1BB 0xAD73 #HANGUL SYLLABLE KIYEOK U TIKEUT +0xB1BC 0xAD74 #HANGUL SYLLABLE KIYEOK U RIEUL +0xB1BD 0xAD75 #HANGUL SYLLABLE KIYEOK U RIEULKIYEOK +0xB1BE 0xAD76 #HANGUL SYLLABLE KIYEOK U RIEULMIEUM +0xB1BF 0xAD7B #HANGUL SYLLABLE KIYEOK U RIEULHIEUH +0xB1C0 0xAD7C #HANGUL SYLLABLE KIYEOK U MIEUM +0xB1C1 0xAD7D #HANGUL SYLLABLE KIYEOK U PIEUP +0xB1C2 0xAD7F #HANGUL SYLLABLE KIYEOK U SIOS +0xB1C3 0xAD81 #HANGUL SYLLABLE KIYEOK U IEUNG +0xB1C4 0xAD82 #HANGUL SYLLABLE KIYEOK U CIEUC +0xB1C5 0xAD88 #HANGUL SYLLABLE KIYEOK WEO +0xB1C6 0xAD89 #HANGUL SYLLABLE KIYEOK WEO KIYEOK +0xB1C7 0xAD8C #HANGUL SYLLABLE KIYEOK WEO NIEUN +0xB1C8 0xAD90 #HANGUL SYLLABLE KIYEOK WEO RIEUL +0xB1C9 0xAD9C #HANGUL SYLLABLE KIYEOK WEO SSANGSIOS +0xB1CA 0xAD9D #HANGUL SYLLABLE KIYEOK WEO IEUNG +0xB1CB 0xADA4 #HANGUL SYLLABLE KIYEOK WE +0xB1CC 0xADB7 #HANGUL SYLLABLE KIYEOK WE SIOS +0xB1CD 0xADC0 #HANGUL SYLLABLE KIYEOK WI +0xB1CE 0xADC1 #HANGUL SYLLABLE KIYEOK WI KIYEOK +0xB1CF 0xADC4 #HANGUL SYLLABLE KIYEOK WI NIEUN +0xB1D0 0xADC8 #HANGUL SYLLABLE KIYEOK WI RIEUL +0xB1D1 0xADD0 #HANGUL SYLLABLE KIYEOK WI MIEUM +0xB1D2 0xADD1 #HANGUL SYLLABLE KIYEOK WI PIEUP +0xB1D3 0xADD3 #HANGUL SYLLABLE KIYEOK WI SIOS +0xB1D4 0xADDC #HANGUL SYLLABLE KIYEOK YU +0xB1D5 0xADE0 #HANGUL SYLLABLE KIYEOK YU NIEUN +0xB1D6 0xADE4 #HANGUL SYLLABLE KIYEOK YU RIEUL +0xB1D7 0xADF8 #HANGUL SYLLABLE KIYEOK EU +0xB1D8 0xADF9 #HANGUL SYLLABLE KIYEOK EU KIYEOK +0xB1D9 0xADFC #HANGUL SYLLABLE KIYEOK EU NIEUN +0xB1DA 0xADFF #HANGUL SYLLABLE KIYEOK EU TIKEUT +0xB1DB 0xAE00 #HANGUL SYLLABLE KIYEOK EU RIEUL +0xB1DC 0xAE01 #HANGUL SYLLABLE KIYEOK EU RIEULKIYEOK +0xB1DD 0xAE08 #HANGUL SYLLABLE KIYEOK EU MIEUM +0xB1DE 0xAE09 #HANGUL SYLLABLE KIYEOK EU PIEUP +0xB1DF 0xAE0B #HANGUL SYLLABLE KIYEOK EU SIOS +0xB1E0 0xAE0D #HANGUL SYLLABLE KIYEOK EU IEUNG +0xB1E1 0xAE14 #HANGUL SYLLABLE KIYEOK YI +0xB1E2 0xAE30 #HANGUL SYLLABLE KIYEOK I +0xB1E3 0xAE31 #HANGUL SYLLABLE KIYEOK I KIYEOK +0xB1E4 0xAE34 #HANGUL SYLLABLE KIYEOK I NIEUN +0xB1E5 0xAE37 #HANGUL SYLLABLE KIYEOK I TIKEUT +0xB1E6 0xAE38 #HANGUL SYLLABLE KIYEOK I RIEUL +0xB1E7 0xAE3A #HANGUL SYLLABLE KIYEOK I RIEULMIEUM +0xB1E8 0xAE40 #HANGUL SYLLABLE KIYEOK I MIEUM +0xB1E9 0xAE41 #HANGUL SYLLABLE KIYEOK I PIEUP +0xB1EA 0xAE43 #HANGUL SYLLABLE KIYEOK I SIOS +0xB1EB 0xAE45 #HANGUL SYLLABLE KIYEOK I IEUNG +0xB1EC 0xAE46 #HANGUL SYLLABLE KIYEOK I CIEUC +0xB1ED 0xAE4A #HANGUL SYLLABLE KIYEOK I PHIEUPH +0xB1EE 0xAE4C #HANGUL SYLLABLE SSANGKIYEOK A +0xB1EF 0xAE4D #HANGUL SYLLABLE SSANGKIYEOK A KIYEOK +0xB1F0 0xAE4E #HANGUL SYLLABLE SSANGKIYEOK A SSANGKIYEOK +0xB1F1 0xAE50 #HANGUL SYLLABLE SSANGKIYEOK A NIEUN +0xB1F2 0xAE54 #HANGUL SYLLABLE SSANGKIYEOK A RIEUL +0xB1F3 0xAE56 #HANGUL SYLLABLE SSANGKIYEOK A RIEULMIEUM +0xB1F4 0xAE5C #HANGUL SYLLABLE SSANGKIYEOK A MIEUM +0xB1F5 0xAE5D #HANGUL SYLLABLE SSANGKIYEOK A PIEUP +0xB1F6 0xAE5F #HANGUL SYLLABLE SSANGKIYEOK A SIOS +0xB1F7 0xAE60 #HANGUL SYLLABLE SSANGKIYEOK A SSANGSIOS +0xB1F8 0xAE61 #HANGUL SYLLABLE SSANGKIYEOK A IEUNG +0xB1F9 0xAE65 #HANGUL SYLLABLE SSANGKIYEOK A THIEUTH +0xB1FA 0xAE68 #HANGUL SYLLABLE SSANGKIYEOK AE +0xB1FB 0xAE69 #HANGUL SYLLABLE SSANGKIYEOK AE KIYEOK +0xB1FC 0xAE6C #HANGUL SYLLABLE SSANGKIYEOK AE NIEUN +0xB1FD 0xAE70 #HANGUL SYLLABLE SSANGKIYEOK AE RIEUL +0xB1FE 0xAE78 #HANGUL SYLLABLE SSANGKIYEOK AE MIEUM +0xB241 0xCF6D #HANGUL SYLLABLE KHIEUKH O THIEUTH +0xB242 0xCF6E #HANGUL SYLLABLE KHIEUKH O PHIEUPH +0xB243 0xCF6F #HANGUL SYLLABLE KHIEUKH O HIEUH +0xB244 0xCF72 #HANGUL SYLLABLE KHIEUKH WA SSANGKIYEOK +0xB245 0xCF73 #HANGUL SYLLABLE KHIEUKH WA KIYEOKSIOS +0xB246 0xCF75 #HANGUL SYLLABLE KHIEUKH WA NIEUNCIEUC +0xB247 0xCF76 #HANGUL SYLLABLE KHIEUKH WA NIEUNHIEUH +0xB248 0xCF77 #HANGUL SYLLABLE KHIEUKH WA TIKEUT +0xB249 0xCF79 #HANGUL SYLLABLE KHIEUKH WA RIEULKIYEOK +0xB24A 0xCF7A #HANGUL SYLLABLE KHIEUKH WA RIEULMIEUM +0xB24B 0xCF7B #HANGUL SYLLABLE KHIEUKH WA RIEULPIEUP +0xB24C 0xCF7C #HANGUL SYLLABLE KHIEUKH WA RIEULSIOS +0xB24D 0xCF7D #HANGUL SYLLABLE KHIEUKH WA RIEULTHIEUTH +0xB24E 0xCF7E #HANGUL SYLLABLE KHIEUKH WA RIEULPHIEUPH +0xB24F 0xCF7F #HANGUL SYLLABLE KHIEUKH WA RIEULHIEUH +0xB250 0xCF81 #HANGUL SYLLABLE KHIEUKH WA PIEUP +0xB251 0xCF82 #HANGUL SYLLABLE KHIEUKH WA PIEUPSIOS +0xB252 0xCF83 #HANGUL SYLLABLE KHIEUKH WA SIOS +0xB253 0xCF84 #HANGUL SYLLABLE KHIEUKH WA SSANGSIOS +0xB254 0xCF86 #HANGUL SYLLABLE KHIEUKH WA CIEUC +0xB255 0xCF87 #HANGUL SYLLABLE KHIEUKH WA CHIEUCH +0xB256 0xCF88 #HANGUL SYLLABLE KHIEUKH WA KHIEUKH +0xB257 0xCF89 #HANGUL SYLLABLE KHIEUKH WA THIEUTH +0xB258 0xCF8A #HANGUL SYLLABLE KHIEUKH WA PHIEUPH +0xB259 0xCF8B #HANGUL SYLLABLE KHIEUKH WA HIEUH +0xB25A 0xCF8D #HANGUL SYLLABLE KHIEUKH WAE KIYEOK +0xB261 0xCF8E #HANGUL SYLLABLE KHIEUKH WAE SSANGKIYEOK +0xB262 0xCF8F #HANGUL SYLLABLE KHIEUKH WAE KIYEOKSIOS +0xB263 0xCF90 #HANGUL SYLLABLE KHIEUKH WAE NIEUN +0xB264 0xCF91 #HANGUL SYLLABLE KHIEUKH WAE NIEUNCIEUC +0xB265 0xCF92 #HANGUL SYLLABLE KHIEUKH WAE NIEUNHIEUH +0xB266 0xCF93 #HANGUL SYLLABLE KHIEUKH WAE TIKEUT +0xB267 0xCF94 #HANGUL SYLLABLE KHIEUKH WAE RIEUL +0xB268 0xCF95 #HANGUL SYLLABLE KHIEUKH WAE RIEULKIYEOK +0xB269 0xCF96 #HANGUL SYLLABLE KHIEUKH WAE RIEULMIEUM +0xB26A 0xCF97 #HANGUL SYLLABLE KHIEUKH WAE RIEULPIEUP +0xB26B 0xCF98 #HANGUL SYLLABLE KHIEUKH WAE RIEULSIOS +0xB26C 0xCF99 #HANGUL SYLLABLE KHIEUKH WAE RIEULTHIEUTH +0xB26D 0xCF9A #HANGUL SYLLABLE KHIEUKH WAE RIEULPHIEUPH +0xB26E 0xCF9B #HANGUL SYLLABLE KHIEUKH WAE RIEULHIEUH +0xB26F 0xCF9C #HANGUL SYLLABLE KHIEUKH WAE MIEUM +0xB270 0xCF9D #HANGUL SYLLABLE KHIEUKH WAE PIEUP +0xB271 0xCF9E #HANGUL SYLLABLE KHIEUKH WAE PIEUPSIOS +0xB272 0xCF9F #HANGUL SYLLABLE KHIEUKH WAE SIOS +0xB273 0xCFA0 #HANGUL SYLLABLE KHIEUKH WAE SSANGSIOS +0xB274 0xCFA2 #HANGUL SYLLABLE KHIEUKH WAE CIEUC +0xB275 0xCFA3 #HANGUL SYLLABLE KHIEUKH WAE CHIEUCH +0xB276 0xCFA4 #HANGUL SYLLABLE KHIEUKH WAE KHIEUKH +0xB277 0xCFA5 #HANGUL SYLLABLE KHIEUKH WAE THIEUTH +0xB278 0xCFA6 #HANGUL SYLLABLE KHIEUKH WAE PHIEUPH +0xB279 0xCFA7 #HANGUL SYLLABLE KHIEUKH WAE HIEUH +0xB27A 0xCFA9 #HANGUL SYLLABLE KHIEUKH OE KIYEOK +0xB281 0xCFAA #HANGUL SYLLABLE KHIEUKH OE SSANGKIYEOK +0xB282 0xCFAB #HANGUL SYLLABLE KHIEUKH OE KIYEOKSIOS +0xB283 0xCFAC #HANGUL SYLLABLE KHIEUKH OE NIEUN +0xB284 0xCFAD #HANGUL SYLLABLE KHIEUKH OE NIEUNCIEUC +0xB285 0xCFAE #HANGUL SYLLABLE KHIEUKH OE NIEUNHIEUH +0xB286 0xCFAF #HANGUL SYLLABLE KHIEUKH OE TIKEUT +0xB287 0xCFB1 #HANGUL SYLLABLE KHIEUKH OE RIEULKIYEOK +0xB288 0xCFB2 #HANGUL SYLLABLE KHIEUKH OE RIEULMIEUM +0xB289 0xCFB3 #HANGUL SYLLABLE KHIEUKH OE RIEULPIEUP +0xB28A 0xCFB4 #HANGUL SYLLABLE KHIEUKH OE RIEULSIOS +0xB28B 0xCFB5 #HANGUL SYLLABLE KHIEUKH OE RIEULTHIEUTH +0xB28C 0xCFB6 #HANGUL SYLLABLE KHIEUKH OE RIEULPHIEUPH +0xB28D 0xCFB7 #HANGUL SYLLABLE KHIEUKH OE RIEULHIEUH +0xB28E 0xCFB8 #HANGUL SYLLABLE KHIEUKH OE MIEUM +0xB28F 0xCFB9 #HANGUL SYLLABLE KHIEUKH OE PIEUP +0xB290 0xCFBA #HANGUL SYLLABLE KHIEUKH OE PIEUPSIOS +0xB291 0xCFBB #HANGUL SYLLABLE KHIEUKH OE SIOS +0xB292 0xCFBC #HANGUL SYLLABLE KHIEUKH OE SSANGSIOS +0xB293 0xCFBD #HANGUL SYLLABLE KHIEUKH OE IEUNG +0xB294 0xCFBE #HANGUL SYLLABLE KHIEUKH OE CIEUC +0xB295 0xCFBF #HANGUL SYLLABLE KHIEUKH OE CHIEUCH +0xB296 0xCFC0 #HANGUL SYLLABLE KHIEUKH OE KHIEUKH +0xB297 0xCFC1 #HANGUL SYLLABLE KHIEUKH OE THIEUTH +0xB298 0xCFC2 #HANGUL SYLLABLE KHIEUKH OE PHIEUPH +0xB299 0xCFC3 #HANGUL SYLLABLE KHIEUKH OE HIEUH +0xB29A 0xCFC5 #HANGUL SYLLABLE KHIEUKH YO KIYEOK +0xB29B 0xCFC6 #HANGUL SYLLABLE KHIEUKH YO SSANGKIYEOK +0xB29C 0xCFC7 #HANGUL SYLLABLE KHIEUKH YO KIYEOKSIOS +0xB29D 0xCFC8 #HANGUL SYLLABLE KHIEUKH YO NIEUN +0xB29E 0xCFC9 #HANGUL SYLLABLE KHIEUKH YO NIEUNCIEUC +0xB29F 0xCFCA #HANGUL SYLLABLE KHIEUKH YO NIEUNHIEUH +0xB2A0 0xCFCB #HANGUL SYLLABLE KHIEUKH YO TIKEUT +0xB2A1 0xAE79 #HANGUL SYLLABLE SSANGKIYEOK AE PIEUP +0xB2A2 0xAE7B #HANGUL SYLLABLE SSANGKIYEOK AE SIOS +0xB2A3 0xAE7C #HANGUL SYLLABLE SSANGKIYEOK AE SSANGSIOS +0xB2A4 0xAE7D #HANGUL SYLLABLE SSANGKIYEOK AE IEUNG +0xB2A5 0xAE84 #HANGUL SYLLABLE SSANGKIYEOK YA +0xB2A6 0xAE85 #HANGUL SYLLABLE SSANGKIYEOK YA KIYEOK +0xB2A7 0xAE8C #HANGUL SYLLABLE SSANGKIYEOK YA RIEUL +0xB2A8 0xAEBC #HANGUL SYLLABLE SSANGKIYEOK EO +0xB2A9 0xAEBD #HANGUL SYLLABLE SSANGKIYEOK EO KIYEOK +0xB2AA 0xAEBE #HANGUL SYLLABLE SSANGKIYEOK EO SSANGKIYEOK +0xB2AB 0xAEC0 #HANGUL SYLLABLE SSANGKIYEOK EO NIEUN +0xB2AC 0xAEC4 #HANGUL SYLLABLE SSANGKIYEOK EO RIEUL +0xB2AD 0xAECC #HANGUL SYLLABLE SSANGKIYEOK EO MIEUM +0xB2AE 0xAECD #HANGUL SYLLABLE SSANGKIYEOK EO PIEUP +0xB2AF 0xAECF #HANGUL SYLLABLE SSANGKIYEOK EO SIOS +0xB2B0 0xAED0 #HANGUL SYLLABLE SSANGKIYEOK EO SSANGSIOS +0xB2B1 0xAED1 #HANGUL SYLLABLE SSANGKIYEOK EO IEUNG +0xB2B2 0xAED8 #HANGUL SYLLABLE SSANGKIYEOK E +0xB2B3 0xAED9 #HANGUL SYLLABLE SSANGKIYEOK E KIYEOK +0xB2B4 0xAEDC #HANGUL SYLLABLE SSANGKIYEOK E NIEUN +0xB2B5 0xAEE8 #HANGUL SYLLABLE SSANGKIYEOK E MIEUM +0xB2B6 0xAEEB #HANGUL SYLLABLE SSANGKIYEOK E SIOS +0xB2B7 0xAEED #HANGUL SYLLABLE SSANGKIYEOK E IEUNG +0xB2B8 0xAEF4 #HANGUL SYLLABLE SSANGKIYEOK YEO +0xB2B9 0xAEF8 #HANGUL SYLLABLE SSANGKIYEOK YEO NIEUN +0xB2BA 0xAEFC #HANGUL SYLLABLE SSANGKIYEOK YEO RIEUL +0xB2BB 0xAF07 #HANGUL SYLLABLE SSANGKIYEOK YEO SIOS +0xB2BC 0xAF08 #HANGUL SYLLABLE SSANGKIYEOK YEO SSANGSIOS +0xB2BD 0xAF0D #HANGUL SYLLABLE SSANGKIYEOK YEO THIEUTH +0xB2BE 0xAF10 #HANGUL SYLLABLE SSANGKIYEOK YE +0xB2BF 0xAF2C #HANGUL SYLLABLE SSANGKIYEOK O +0xB2C0 0xAF2D #HANGUL SYLLABLE SSANGKIYEOK O KIYEOK +0xB2C1 0xAF30 #HANGUL SYLLABLE SSANGKIYEOK O NIEUN +0xB2C2 0xAF32 #HANGUL SYLLABLE SSANGKIYEOK O NIEUNHIEUH +0xB2C3 0xAF34 #HANGUL SYLLABLE SSANGKIYEOK O RIEUL +0xB2C4 0xAF3C #HANGUL SYLLABLE SSANGKIYEOK O MIEUM +0xB2C5 0xAF3D #HANGUL SYLLABLE SSANGKIYEOK O PIEUP +0xB2C6 0xAF3F #HANGUL SYLLABLE SSANGKIYEOK O SIOS +0xB2C7 0xAF41 #HANGUL SYLLABLE SSANGKIYEOK O IEUNG +0xB2C8 0xAF42 #HANGUL SYLLABLE SSANGKIYEOK O CIEUC +0xB2C9 0xAF43 #HANGUL SYLLABLE SSANGKIYEOK O CHIEUCH +0xB2CA 0xAF48 #HANGUL SYLLABLE SSANGKIYEOK WA +0xB2CB 0xAF49 #HANGUL SYLLABLE SSANGKIYEOK WA KIYEOK +0xB2CC 0xAF50 #HANGUL SYLLABLE SSANGKIYEOK WA RIEUL +0xB2CD 0xAF5C #HANGUL SYLLABLE SSANGKIYEOK WA SSANGSIOS +0xB2CE 0xAF5D #HANGUL SYLLABLE SSANGKIYEOK WA IEUNG +0xB2CF 0xAF64 #HANGUL SYLLABLE SSANGKIYEOK WAE +0xB2D0 0xAF65 #HANGUL SYLLABLE SSANGKIYEOK WAE KIYEOK +0xB2D1 0xAF79 #HANGUL SYLLABLE SSANGKIYEOK WAE IEUNG +0xB2D2 0xAF80 #HANGUL SYLLABLE SSANGKIYEOK OE +0xB2D3 0xAF84 #HANGUL SYLLABLE SSANGKIYEOK OE NIEUN +0xB2D4 0xAF88 #HANGUL SYLLABLE SSANGKIYEOK OE RIEUL +0xB2D5 0xAF90 #HANGUL SYLLABLE SSANGKIYEOK OE MIEUM +0xB2D6 0xAF91 #HANGUL SYLLABLE SSANGKIYEOK OE PIEUP +0xB2D7 0xAF95 #HANGUL SYLLABLE SSANGKIYEOK OE IEUNG +0xB2D8 0xAF9C #HANGUL SYLLABLE SSANGKIYEOK YO +0xB2D9 0xAFB8 #HANGUL SYLLABLE SSANGKIYEOK U +0xB2DA 0xAFB9 #HANGUL SYLLABLE SSANGKIYEOK U KIYEOK +0xB2DB 0xAFBC #HANGUL SYLLABLE SSANGKIYEOK U NIEUN +0xB2DC 0xAFC0 #HANGUL SYLLABLE SSANGKIYEOK U RIEUL +0xB2DD 0xAFC7 #HANGUL SYLLABLE SSANGKIYEOK U RIEULHIEUH +0xB2DE 0xAFC8 #HANGUL SYLLABLE SSANGKIYEOK U MIEUM +0xB2DF 0xAFC9 #HANGUL SYLLABLE SSANGKIYEOK U PIEUP +0xB2E0 0xAFCB #HANGUL SYLLABLE SSANGKIYEOK U SIOS +0xB2E1 0xAFCD #HANGUL SYLLABLE SSANGKIYEOK U IEUNG +0xB2E2 0xAFCE #HANGUL SYLLABLE SSANGKIYEOK U CIEUC +0xB2E3 0xAFD4 #HANGUL SYLLABLE SSANGKIYEOK WEO +0xB2E4 0xAFDC #HANGUL SYLLABLE SSANGKIYEOK WEO RIEUL +0xB2E5 0xAFE8 #HANGUL SYLLABLE SSANGKIYEOK WEO SSANGSIOS +0xB2E6 0xAFE9 #HANGUL SYLLABLE SSANGKIYEOK WEO IEUNG +0xB2E7 0xAFF0 #HANGUL SYLLABLE SSANGKIYEOK WE +0xB2E8 0xAFF1 #HANGUL SYLLABLE SSANGKIYEOK WE KIYEOK +0xB2E9 0xAFF4 #HANGUL SYLLABLE SSANGKIYEOK WE NIEUN +0xB2EA 0xAFF8 #HANGUL SYLLABLE SSANGKIYEOK WE RIEUL +0xB2EB 0xB000 #HANGUL SYLLABLE SSANGKIYEOK WE MIEUM +0xB2EC 0xB001 #HANGUL SYLLABLE SSANGKIYEOK WE PIEUP +0xB2ED 0xB004 #HANGUL SYLLABLE SSANGKIYEOK WE SSANGSIOS +0xB2EE 0xB00C #HANGUL SYLLABLE SSANGKIYEOK WI +0xB2EF 0xB010 #HANGUL SYLLABLE SSANGKIYEOK WI NIEUN +0xB2F0 0xB014 #HANGUL SYLLABLE SSANGKIYEOK WI RIEUL +0xB2F1 0xB01C #HANGUL SYLLABLE SSANGKIYEOK WI MIEUM +0xB2F2 0xB01D #HANGUL SYLLABLE SSANGKIYEOK WI PIEUP +0xB2F3 0xB028 #HANGUL SYLLABLE SSANGKIYEOK YU +0xB2F4 0xB044 #HANGUL SYLLABLE SSANGKIYEOK EU +0xB2F5 0xB045 #HANGUL SYLLABLE SSANGKIYEOK EU KIYEOK +0xB2F6 0xB048 #HANGUL SYLLABLE SSANGKIYEOK EU NIEUN +0xB2F7 0xB04A #HANGUL SYLLABLE SSANGKIYEOK EU NIEUNHIEUH +0xB2F8 0xB04C #HANGUL SYLLABLE SSANGKIYEOK EU RIEUL +0xB2F9 0xB04E #HANGUL SYLLABLE SSANGKIYEOK EU RIEULMIEUM +0xB2FA 0xB053 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULHIEUH +0xB2FB 0xB054 #HANGUL SYLLABLE SSANGKIYEOK EU MIEUM +0xB2FC 0xB055 #HANGUL SYLLABLE SSANGKIYEOK EU PIEUP +0xB2FD 0xB057 #HANGUL SYLLABLE SSANGKIYEOK EU SIOS +0xB2FE 0xB059 #HANGUL SYLLABLE SSANGKIYEOK EU IEUNG +0xB341 0xCFCC #HANGUL SYLLABLE KHIEUKH YO RIEUL +0xB342 0xCFCD #HANGUL SYLLABLE KHIEUKH YO RIEULKIYEOK +0xB343 0xCFCE #HANGUL SYLLABLE KHIEUKH YO RIEULMIEUM +0xB344 0xCFCF #HANGUL SYLLABLE KHIEUKH YO RIEULPIEUP +0xB345 0xCFD0 #HANGUL SYLLABLE KHIEUKH YO RIEULSIOS +0xB346 0xCFD1 #HANGUL SYLLABLE KHIEUKH YO RIEULTHIEUTH +0xB347 0xCFD2 #HANGUL SYLLABLE KHIEUKH YO RIEULPHIEUPH +0xB348 0xCFD3 #HANGUL SYLLABLE KHIEUKH YO RIEULHIEUH +0xB349 0xCFD4 #HANGUL SYLLABLE KHIEUKH YO MIEUM +0xB34A 0xCFD5 #HANGUL SYLLABLE KHIEUKH YO PIEUP +0xB34B 0xCFD6 #HANGUL SYLLABLE KHIEUKH YO PIEUPSIOS +0xB34C 0xCFD7 #HANGUL SYLLABLE KHIEUKH YO SIOS +0xB34D 0xCFD8 #HANGUL SYLLABLE KHIEUKH YO SSANGSIOS +0xB34E 0xCFD9 #HANGUL SYLLABLE KHIEUKH YO IEUNG +0xB34F 0xCFDA #HANGUL SYLLABLE KHIEUKH YO CIEUC +0xB350 0xCFDB #HANGUL SYLLABLE KHIEUKH YO CHIEUCH +0xB351 0xCFDC #HANGUL SYLLABLE KHIEUKH YO KHIEUKH +0xB352 0xCFDD #HANGUL SYLLABLE KHIEUKH YO THIEUTH +0xB353 0xCFDE #HANGUL SYLLABLE KHIEUKH YO PHIEUPH +0xB354 0xCFDF #HANGUL SYLLABLE KHIEUKH YO HIEUH +0xB355 0xCFE2 #HANGUL SYLLABLE KHIEUKH U SSANGKIYEOK +0xB356 0xCFE3 #HANGUL SYLLABLE KHIEUKH U KIYEOKSIOS +0xB357 0xCFE5 #HANGUL SYLLABLE KHIEUKH U NIEUNCIEUC +0xB358 0xCFE6 #HANGUL SYLLABLE KHIEUKH U NIEUNHIEUH +0xB359 0xCFE7 #HANGUL SYLLABLE KHIEUKH U TIKEUT +0xB35A 0xCFE9 #HANGUL SYLLABLE KHIEUKH U RIEULKIYEOK +0xB361 0xCFEA #HANGUL SYLLABLE KHIEUKH U RIEULMIEUM +0xB362 0xCFEB #HANGUL SYLLABLE KHIEUKH U RIEULPIEUP +0xB363 0xCFEC #HANGUL SYLLABLE KHIEUKH U RIEULSIOS +0xB364 0xCFED #HANGUL SYLLABLE KHIEUKH U RIEULTHIEUTH +0xB365 0xCFEE #HANGUL SYLLABLE KHIEUKH U RIEULPHIEUPH +0xB366 0xCFEF #HANGUL SYLLABLE KHIEUKH U RIEULHIEUH +0xB367 0xCFF2 #HANGUL SYLLABLE KHIEUKH U PIEUPSIOS +0xB368 0xCFF4 #HANGUL SYLLABLE KHIEUKH U SSANGSIOS +0xB369 0xCFF6 #HANGUL SYLLABLE KHIEUKH U CIEUC +0xB36A 0xCFF7 #HANGUL SYLLABLE KHIEUKH U CHIEUCH +0xB36B 0xCFF8 #HANGUL SYLLABLE KHIEUKH U KHIEUKH +0xB36C 0xCFF9 #HANGUL SYLLABLE KHIEUKH U THIEUTH +0xB36D 0xCFFA #HANGUL SYLLABLE KHIEUKH U PHIEUPH +0xB36E 0xCFFB #HANGUL SYLLABLE KHIEUKH U HIEUH +0xB36F 0xCFFD #HANGUL SYLLABLE KHIEUKH WEO KIYEOK +0xB370 0xCFFE #HANGUL SYLLABLE KHIEUKH WEO SSANGKIYEOK +0xB371 0xCFFF #HANGUL SYLLABLE KHIEUKH WEO KIYEOKSIOS +0xB372 0xD001 #HANGUL SYLLABLE KHIEUKH WEO NIEUNCIEUC +0xB373 0xD002 #HANGUL SYLLABLE KHIEUKH WEO NIEUNHIEUH +0xB374 0xD003 #HANGUL SYLLABLE KHIEUKH WEO TIKEUT +0xB375 0xD005 #HANGUL SYLLABLE KHIEUKH WEO RIEULKIYEOK +0xB376 0xD006 #HANGUL SYLLABLE KHIEUKH WEO RIEULMIEUM +0xB377 0xD007 #HANGUL SYLLABLE KHIEUKH WEO RIEULPIEUP +0xB378 0xD008 #HANGUL SYLLABLE KHIEUKH WEO RIEULSIOS +0xB379 0xD009 #HANGUL SYLLABLE KHIEUKH WEO RIEULTHIEUTH +0xB37A 0xD00A #HANGUL SYLLABLE KHIEUKH WEO RIEULPHIEUPH +0xB381 0xD00B #HANGUL SYLLABLE KHIEUKH WEO RIEULHIEUH +0xB382 0xD00C #HANGUL SYLLABLE KHIEUKH WEO MIEUM +0xB383 0xD00D #HANGUL SYLLABLE KHIEUKH WEO PIEUP +0xB384 0xD00E #HANGUL SYLLABLE KHIEUKH WEO PIEUPSIOS +0xB385 0xD00F #HANGUL SYLLABLE KHIEUKH WEO SIOS +0xB386 0xD010 #HANGUL SYLLABLE KHIEUKH WEO SSANGSIOS +0xB387 0xD012 #HANGUL SYLLABLE KHIEUKH WEO CIEUC +0xB388 0xD013 #HANGUL SYLLABLE KHIEUKH WEO CHIEUCH +0xB389 0xD014 #HANGUL SYLLABLE KHIEUKH WEO KHIEUKH +0xB38A 0xD015 #HANGUL SYLLABLE KHIEUKH WEO THIEUTH +0xB38B 0xD016 #HANGUL SYLLABLE KHIEUKH WEO PHIEUPH +0xB38C 0xD017 #HANGUL SYLLABLE KHIEUKH WEO HIEUH +0xB38D 0xD019 #HANGUL SYLLABLE KHIEUKH WE KIYEOK +0xB38E 0xD01A #HANGUL SYLLABLE KHIEUKH WE SSANGKIYEOK +0xB38F 0xD01B #HANGUL SYLLABLE KHIEUKH WE KIYEOKSIOS +0xB390 0xD01C #HANGUL SYLLABLE KHIEUKH WE NIEUN +0xB391 0xD01D #HANGUL SYLLABLE KHIEUKH WE NIEUNCIEUC +0xB392 0xD01E #HANGUL SYLLABLE KHIEUKH WE NIEUNHIEUH +0xB393 0xD01F #HANGUL SYLLABLE KHIEUKH WE TIKEUT +0xB394 0xD020 #HANGUL SYLLABLE KHIEUKH WE RIEUL +0xB395 0xD021 #HANGUL SYLLABLE KHIEUKH WE RIEULKIYEOK +0xB396 0xD022 #HANGUL SYLLABLE KHIEUKH WE RIEULMIEUM +0xB397 0xD023 #HANGUL SYLLABLE KHIEUKH WE RIEULPIEUP +0xB398 0xD024 #HANGUL SYLLABLE KHIEUKH WE RIEULSIOS +0xB399 0xD025 #HANGUL SYLLABLE KHIEUKH WE RIEULTHIEUTH +0xB39A 0xD026 #HANGUL SYLLABLE KHIEUKH WE RIEULPHIEUPH +0xB39B 0xD027 #HANGUL SYLLABLE KHIEUKH WE RIEULHIEUH +0xB39C 0xD028 #HANGUL SYLLABLE KHIEUKH WE MIEUM +0xB39D 0xD029 #HANGUL SYLLABLE KHIEUKH WE PIEUP +0xB39E 0xD02A #HANGUL SYLLABLE KHIEUKH WE PIEUPSIOS +0xB39F 0xD02B #HANGUL SYLLABLE KHIEUKH WE SIOS +0xB3A0 0xD02C #HANGUL SYLLABLE KHIEUKH WE SSANGSIOS +0xB3A1 0xB05D #HANGUL SYLLABLE SSANGKIYEOK EU THIEUTH +0xB3A2 0xB07C #HANGUL SYLLABLE SSANGKIYEOK I +0xB3A3 0xB07D #HANGUL SYLLABLE SSANGKIYEOK I KIYEOK +0xB3A4 0xB080 #HANGUL SYLLABLE SSANGKIYEOK I NIEUN +0xB3A5 0xB084 #HANGUL SYLLABLE SSANGKIYEOK I RIEUL +0xB3A6 0xB08C #HANGUL SYLLABLE SSANGKIYEOK I MIEUM +0xB3A7 0xB08D #HANGUL SYLLABLE SSANGKIYEOK I PIEUP +0xB3A8 0xB08F #HANGUL SYLLABLE SSANGKIYEOK I SIOS +0xB3A9 0xB091 #HANGUL SYLLABLE SSANGKIYEOK I IEUNG +0xB3AA 0xB098 #HANGUL SYLLABLE NIEUN A +0xB3AB 0xB099 #HANGUL SYLLABLE NIEUN A KIYEOK +0xB3AC 0xB09A #HANGUL SYLLABLE NIEUN A SSANGKIYEOK +0xB3AD 0xB09C #HANGUL SYLLABLE NIEUN A NIEUN +0xB3AE 0xB09F #HANGUL SYLLABLE NIEUN A TIKEUT +0xB3AF 0xB0A0 #HANGUL SYLLABLE NIEUN A RIEUL +0xB3B0 0xB0A1 #HANGUL SYLLABLE NIEUN A RIEULKIYEOK +0xB3B1 0xB0A2 #HANGUL SYLLABLE NIEUN A RIEULMIEUM +0xB3B2 0xB0A8 #HANGUL SYLLABLE NIEUN A MIEUM +0xB3B3 0xB0A9 #HANGUL SYLLABLE NIEUN A PIEUP +0xB3B4 0xB0AB #HANGUL SYLLABLE NIEUN A SIOS +0xB3B5 0xB0AC #HANGUL SYLLABLE NIEUN A SSANGSIOS +0xB3B6 0xB0AD #HANGUL SYLLABLE NIEUN A IEUNG +0xB3B7 0xB0AE #HANGUL SYLLABLE NIEUN A CIEUC +0xB3B8 0xB0AF #HANGUL SYLLABLE NIEUN A CHIEUCH +0xB3B9 0xB0B1 #HANGUL SYLLABLE NIEUN A THIEUTH +0xB3BA 0xB0B3 #HANGUL SYLLABLE NIEUN A HIEUH +0xB3BB 0xB0B4 #HANGUL SYLLABLE NIEUN AE +0xB3BC 0xB0B5 #HANGUL SYLLABLE NIEUN AE KIYEOK +0xB3BD 0xB0B8 #HANGUL SYLLABLE NIEUN AE NIEUN +0xB3BE 0xB0BC #HANGUL SYLLABLE NIEUN AE RIEUL +0xB3BF 0xB0C4 #HANGUL SYLLABLE NIEUN AE MIEUM +0xB3C0 0xB0C5 #HANGUL SYLLABLE NIEUN AE PIEUP +0xB3C1 0xB0C7 #HANGUL SYLLABLE NIEUN AE SIOS +0xB3C2 0xB0C8 #HANGUL SYLLABLE NIEUN AE SSANGSIOS +0xB3C3 0xB0C9 #HANGUL SYLLABLE NIEUN AE IEUNG +0xB3C4 0xB0D0 #HANGUL SYLLABLE NIEUN YA +0xB3C5 0xB0D1 #HANGUL SYLLABLE NIEUN YA KIYEOK +0xB3C6 0xB0D4 #HANGUL SYLLABLE NIEUN YA NIEUN +0xB3C7 0xB0D8 #HANGUL SYLLABLE NIEUN YA RIEUL +0xB3C8 0xB0E0 #HANGUL SYLLABLE NIEUN YA MIEUM +0xB3C9 0xB0E5 #HANGUL SYLLABLE NIEUN YA IEUNG +0xB3CA 0xB108 #HANGUL SYLLABLE NIEUN EO +0xB3CB 0xB109 #HANGUL SYLLABLE NIEUN EO KIYEOK +0xB3CC 0xB10B #HANGUL SYLLABLE NIEUN EO KIYEOKSIOS +0xB3CD 0xB10C #HANGUL SYLLABLE NIEUN EO NIEUN +0xB3CE 0xB110 #HANGUL SYLLABLE NIEUN EO RIEUL +0xB3CF 0xB112 #HANGUL SYLLABLE NIEUN EO RIEULMIEUM +0xB3D0 0xB113 #HANGUL SYLLABLE NIEUN EO RIEULPIEUP +0xB3D1 0xB118 #HANGUL SYLLABLE NIEUN EO MIEUM +0xB3D2 0xB119 #HANGUL SYLLABLE NIEUN EO PIEUP +0xB3D3 0xB11B #HANGUL SYLLABLE NIEUN EO SIOS +0xB3D4 0xB11C #HANGUL SYLLABLE NIEUN EO SSANGSIOS +0xB3D5 0xB11D #HANGUL SYLLABLE NIEUN EO IEUNG +0xB3D6 0xB123 #HANGUL SYLLABLE NIEUN EO HIEUH +0xB3D7 0xB124 #HANGUL SYLLABLE NIEUN E +0xB3D8 0xB125 #HANGUL SYLLABLE NIEUN E KIYEOK +0xB3D9 0xB128 #HANGUL SYLLABLE NIEUN E NIEUN +0xB3DA 0xB12C #HANGUL SYLLABLE NIEUN E RIEUL +0xB3DB 0xB134 #HANGUL SYLLABLE NIEUN E MIEUM +0xB3DC 0xB135 #HANGUL SYLLABLE NIEUN E PIEUP +0xB3DD 0xB137 #HANGUL SYLLABLE NIEUN E SIOS +0xB3DE 0xB138 #HANGUL SYLLABLE NIEUN E SSANGSIOS +0xB3DF 0xB139 #HANGUL SYLLABLE NIEUN E IEUNG +0xB3E0 0xB140 #HANGUL SYLLABLE NIEUN YEO +0xB3E1 0xB141 #HANGUL SYLLABLE NIEUN YEO KIYEOK +0xB3E2 0xB144 #HANGUL SYLLABLE NIEUN YEO NIEUN +0xB3E3 0xB148 #HANGUL SYLLABLE NIEUN YEO RIEUL +0xB3E4 0xB150 #HANGUL SYLLABLE NIEUN YEO MIEUM +0xB3E5 0xB151 #HANGUL SYLLABLE NIEUN YEO PIEUP +0xB3E6 0xB154 #HANGUL SYLLABLE NIEUN YEO SSANGSIOS +0xB3E7 0xB155 #HANGUL SYLLABLE NIEUN YEO IEUNG +0xB3E8 0xB158 #HANGUL SYLLABLE NIEUN YEO KHIEUKH +0xB3E9 0xB15C #HANGUL SYLLABLE NIEUN YE +0xB3EA 0xB160 #HANGUL SYLLABLE NIEUN YE NIEUN +0xB3EB 0xB178 #HANGUL SYLLABLE NIEUN O +0xB3EC 0xB179 #HANGUL SYLLABLE NIEUN O KIYEOK +0xB3ED 0xB17C #HANGUL SYLLABLE NIEUN O NIEUN +0xB3EE 0xB180 #HANGUL SYLLABLE NIEUN O RIEUL +0xB3EF 0xB182 #HANGUL SYLLABLE NIEUN O RIEULMIEUM +0xB3F0 0xB188 #HANGUL SYLLABLE NIEUN O MIEUM +0xB3F1 0xB189 #HANGUL SYLLABLE NIEUN O PIEUP +0xB3F2 0xB18B #HANGUL SYLLABLE NIEUN O SIOS +0xB3F3 0xB18D #HANGUL SYLLABLE NIEUN O IEUNG +0xB3F4 0xB192 #HANGUL SYLLABLE NIEUN O PHIEUPH +0xB3F5 0xB193 #HANGUL SYLLABLE NIEUN O HIEUH +0xB3F6 0xB194 #HANGUL SYLLABLE NIEUN WA +0xB3F7 0xB198 #HANGUL SYLLABLE NIEUN WA NIEUN +0xB3F8 0xB19C #HANGUL SYLLABLE NIEUN WA RIEUL +0xB3F9 0xB1A8 #HANGUL SYLLABLE NIEUN WA SSANGSIOS +0xB3FA 0xB1CC #HANGUL SYLLABLE NIEUN OE +0xB3FB 0xB1D0 #HANGUL SYLLABLE NIEUN OE NIEUN +0xB3FC 0xB1D4 #HANGUL SYLLABLE NIEUN OE RIEUL +0xB3FD 0xB1DC #HANGUL SYLLABLE NIEUN OE MIEUM +0xB3FE 0xB1DD #HANGUL SYLLABLE NIEUN OE PIEUP +0xB441 0xD02E #HANGUL SYLLABLE KHIEUKH WE CIEUC +0xB442 0xD02F #HANGUL SYLLABLE KHIEUKH WE CHIEUCH +0xB443 0xD030 #HANGUL SYLLABLE KHIEUKH WE KHIEUKH +0xB444 0xD031 #HANGUL SYLLABLE KHIEUKH WE THIEUTH +0xB445 0xD032 #HANGUL SYLLABLE KHIEUKH WE PHIEUPH +0xB446 0xD033 #HANGUL SYLLABLE KHIEUKH WE HIEUH +0xB447 0xD036 #HANGUL SYLLABLE KHIEUKH WI SSANGKIYEOK +0xB448 0xD037 #HANGUL SYLLABLE KHIEUKH WI KIYEOKSIOS +0xB449 0xD039 #HANGUL SYLLABLE KHIEUKH WI NIEUNCIEUC +0xB44A 0xD03A #HANGUL SYLLABLE KHIEUKH WI NIEUNHIEUH +0xB44B 0xD03B #HANGUL SYLLABLE KHIEUKH WI TIKEUT +0xB44C 0xD03D #HANGUL SYLLABLE KHIEUKH WI RIEULKIYEOK +0xB44D 0xD03E #HANGUL SYLLABLE KHIEUKH WI RIEULMIEUM +0xB44E 0xD03F #HANGUL SYLLABLE KHIEUKH WI RIEULPIEUP +0xB44F 0xD040 #HANGUL SYLLABLE KHIEUKH WI RIEULSIOS +0xB450 0xD041 #HANGUL SYLLABLE KHIEUKH WI RIEULTHIEUTH +0xB451 0xD042 #HANGUL SYLLABLE KHIEUKH WI RIEULPHIEUPH +0xB452 0xD043 #HANGUL SYLLABLE KHIEUKH WI RIEULHIEUH +0xB453 0xD046 #HANGUL SYLLABLE KHIEUKH WI PIEUPSIOS +0xB454 0xD048 #HANGUL SYLLABLE KHIEUKH WI SSANGSIOS +0xB455 0xD04A #HANGUL SYLLABLE KHIEUKH WI CIEUC +0xB456 0xD04B #HANGUL SYLLABLE KHIEUKH WI CHIEUCH +0xB457 0xD04C #HANGUL SYLLABLE KHIEUKH WI KHIEUKH +0xB458 0xD04D #HANGUL SYLLABLE KHIEUKH WI THIEUTH +0xB459 0xD04E #HANGUL SYLLABLE KHIEUKH WI PHIEUPH +0xB45A 0xD04F #HANGUL SYLLABLE KHIEUKH WI HIEUH +0xB461 0xD051 #HANGUL SYLLABLE KHIEUKH YU KIYEOK +0xB462 0xD052 #HANGUL SYLLABLE KHIEUKH YU SSANGKIYEOK +0xB463 0xD053 #HANGUL SYLLABLE KHIEUKH YU KIYEOKSIOS +0xB464 0xD055 #HANGUL SYLLABLE KHIEUKH YU NIEUNCIEUC +0xB465 0xD056 #HANGUL SYLLABLE KHIEUKH YU NIEUNHIEUH +0xB466 0xD057 #HANGUL SYLLABLE KHIEUKH YU TIKEUT +0xB467 0xD059 #HANGUL SYLLABLE KHIEUKH YU RIEULKIYEOK +0xB468 0xD05A #HANGUL SYLLABLE KHIEUKH YU RIEULMIEUM +0xB469 0xD05B #HANGUL SYLLABLE KHIEUKH YU RIEULPIEUP +0xB46A 0xD05C #HANGUL SYLLABLE KHIEUKH YU RIEULSIOS +0xB46B 0xD05D #HANGUL SYLLABLE KHIEUKH YU RIEULTHIEUTH +0xB46C 0xD05E #HANGUL SYLLABLE KHIEUKH YU RIEULPHIEUPH +0xB46D 0xD05F #HANGUL SYLLABLE KHIEUKH YU RIEULHIEUH +0xB46E 0xD061 #HANGUL SYLLABLE KHIEUKH YU PIEUP +0xB46F 0xD062 #HANGUL SYLLABLE KHIEUKH YU PIEUPSIOS +0xB470 0xD063 #HANGUL SYLLABLE KHIEUKH YU SIOS +0xB471 0xD064 #HANGUL SYLLABLE KHIEUKH YU SSANGSIOS +0xB472 0xD065 #HANGUL SYLLABLE KHIEUKH YU IEUNG +0xB473 0xD066 #HANGUL SYLLABLE KHIEUKH YU CIEUC +0xB474 0xD067 #HANGUL SYLLABLE KHIEUKH YU CHIEUCH +0xB475 0xD068 #HANGUL SYLLABLE KHIEUKH YU KHIEUKH +0xB476 0xD069 #HANGUL SYLLABLE KHIEUKH YU THIEUTH +0xB477 0xD06A #HANGUL SYLLABLE KHIEUKH YU PHIEUPH +0xB478 0xD06B #HANGUL SYLLABLE KHIEUKH YU HIEUH +0xB479 0xD06E #HANGUL SYLLABLE KHIEUKH EU SSANGKIYEOK +0xB47A 0xD06F #HANGUL SYLLABLE KHIEUKH EU KIYEOKSIOS +0xB481 0xD071 #HANGUL SYLLABLE KHIEUKH EU NIEUNCIEUC +0xB482 0xD072 #HANGUL SYLLABLE KHIEUKH EU NIEUNHIEUH +0xB483 0xD073 #HANGUL SYLLABLE KHIEUKH EU TIKEUT +0xB484 0xD075 #HANGUL SYLLABLE KHIEUKH EU RIEULKIYEOK +0xB485 0xD076 #HANGUL SYLLABLE KHIEUKH EU RIEULMIEUM +0xB486 0xD077 #HANGUL SYLLABLE KHIEUKH EU RIEULPIEUP +0xB487 0xD078 #HANGUL SYLLABLE KHIEUKH EU RIEULSIOS +0xB488 0xD079 #HANGUL SYLLABLE KHIEUKH EU RIEULTHIEUTH +0xB489 0xD07A #HANGUL SYLLABLE KHIEUKH EU RIEULPHIEUPH +0xB48A 0xD07B #HANGUL SYLLABLE KHIEUKH EU RIEULHIEUH +0xB48B 0xD07E #HANGUL SYLLABLE KHIEUKH EU PIEUPSIOS +0xB48C 0xD07F #HANGUL SYLLABLE KHIEUKH EU SIOS +0xB48D 0xD080 #HANGUL SYLLABLE KHIEUKH EU SSANGSIOS +0xB48E 0xD082 #HANGUL SYLLABLE KHIEUKH EU CIEUC +0xB48F 0xD083 #HANGUL SYLLABLE KHIEUKH EU CHIEUCH +0xB490 0xD084 #HANGUL SYLLABLE KHIEUKH EU KHIEUKH +0xB491 0xD085 #HANGUL SYLLABLE KHIEUKH EU THIEUTH +0xB492 0xD086 #HANGUL SYLLABLE KHIEUKH EU PHIEUPH +0xB493 0xD087 #HANGUL SYLLABLE KHIEUKH EU HIEUH +0xB494 0xD088 #HANGUL SYLLABLE KHIEUKH YI +0xB495 0xD089 #HANGUL SYLLABLE KHIEUKH YI KIYEOK +0xB496 0xD08A #HANGUL SYLLABLE KHIEUKH YI SSANGKIYEOK +0xB497 0xD08B #HANGUL SYLLABLE KHIEUKH YI KIYEOKSIOS +0xB498 0xD08C #HANGUL SYLLABLE KHIEUKH YI NIEUN +0xB499 0xD08D #HANGUL SYLLABLE KHIEUKH YI NIEUNCIEUC +0xB49A 0xD08E #HANGUL SYLLABLE KHIEUKH YI NIEUNHIEUH +0xB49B 0xD08F #HANGUL SYLLABLE KHIEUKH YI TIKEUT +0xB49C 0xD090 #HANGUL SYLLABLE KHIEUKH YI RIEUL +0xB49D 0xD091 #HANGUL SYLLABLE KHIEUKH YI RIEULKIYEOK +0xB49E 0xD092 #HANGUL SYLLABLE KHIEUKH YI RIEULMIEUM +0xB49F 0xD093 #HANGUL SYLLABLE KHIEUKH YI RIEULPIEUP +0xB4A0 0xD094 #HANGUL SYLLABLE KHIEUKH YI RIEULSIOS +0xB4A1 0xB1DF #HANGUL SYLLABLE NIEUN OE SIOS +0xB4A2 0xB1E8 #HANGUL SYLLABLE NIEUN YO +0xB4A3 0xB1E9 #HANGUL SYLLABLE NIEUN YO KIYEOK +0xB4A4 0xB1EC #HANGUL SYLLABLE NIEUN YO NIEUN +0xB4A5 0xB1F0 #HANGUL SYLLABLE NIEUN YO RIEUL +0xB4A6 0xB1F9 #HANGUL SYLLABLE NIEUN YO PIEUP +0xB4A7 0xB1FB #HANGUL SYLLABLE NIEUN YO SIOS +0xB4A8 0xB1FD #HANGUL SYLLABLE NIEUN YO IEUNG +0xB4A9 0xB204 #HANGUL SYLLABLE NIEUN U +0xB4AA 0xB205 #HANGUL SYLLABLE NIEUN U KIYEOK +0xB4AB 0xB208 #HANGUL SYLLABLE NIEUN U NIEUN +0xB4AC 0xB20B #HANGUL SYLLABLE NIEUN U TIKEUT +0xB4AD 0xB20C #HANGUL SYLLABLE NIEUN U RIEUL +0xB4AE 0xB214 #HANGUL SYLLABLE NIEUN U MIEUM +0xB4AF 0xB215 #HANGUL SYLLABLE NIEUN U PIEUP +0xB4B0 0xB217 #HANGUL SYLLABLE NIEUN U SIOS +0xB4B1 0xB219 #HANGUL SYLLABLE NIEUN U IEUNG +0xB4B2 0xB220 #HANGUL SYLLABLE NIEUN WEO +0xB4B3 0xB234 #HANGUL SYLLABLE NIEUN WEO SSANGSIOS +0xB4B4 0xB23C #HANGUL SYLLABLE NIEUN WE +0xB4B5 0xB258 #HANGUL SYLLABLE NIEUN WI +0xB4B6 0xB25C #HANGUL SYLLABLE NIEUN WI NIEUN +0xB4B7 0xB260 #HANGUL SYLLABLE NIEUN WI RIEUL +0xB4B8 0xB268 #HANGUL SYLLABLE NIEUN WI MIEUM +0xB4B9 0xB269 #HANGUL SYLLABLE NIEUN WI PIEUP +0xB4BA 0xB274 #HANGUL SYLLABLE NIEUN YU +0xB4BB 0xB275 #HANGUL SYLLABLE NIEUN YU KIYEOK +0xB4BC 0xB27C #HANGUL SYLLABLE NIEUN YU RIEUL +0xB4BD 0xB284 #HANGUL SYLLABLE NIEUN YU MIEUM +0xB4BE 0xB285 #HANGUL SYLLABLE NIEUN YU PIEUP +0xB4BF 0xB289 #HANGUL SYLLABLE NIEUN YU IEUNG +0xB4C0 0xB290 #HANGUL SYLLABLE NIEUN EU +0xB4C1 0xB291 #HANGUL SYLLABLE NIEUN EU KIYEOK +0xB4C2 0xB294 #HANGUL SYLLABLE NIEUN EU NIEUN +0xB4C3 0xB298 #HANGUL SYLLABLE NIEUN EU RIEUL +0xB4C4 0xB299 #HANGUL SYLLABLE NIEUN EU RIEULKIYEOK +0xB4C5 0xB29A #HANGUL SYLLABLE NIEUN EU RIEULMIEUM +0xB4C6 0xB2A0 #HANGUL SYLLABLE NIEUN EU MIEUM +0xB4C7 0xB2A1 #HANGUL SYLLABLE NIEUN EU PIEUP +0xB4C8 0xB2A3 #HANGUL SYLLABLE NIEUN EU SIOS +0xB4C9 0xB2A5 #HANGUL SYLLABLE NIEUN EU IEUNG +0xB4CA 0xB2A6 #HANGUL SYLLABLE NIEUN EU CIEUC +0xB4CB 0xB2AA #HANGUL SYLLABLE NIEUN EU PHIEUPH +0xB4CC 0xB2AC #HANGUL SYLLABLE NIEUN YI +0xB4CD 0xB2B0 #HANGUL SYLLABLE NIEUN YI NIEUN +0xB4CE 0xB2B4 #HANGUL SYLLABLE NIEUN YI RIEUL +0xB4CF 0xB2C8 #HANGUL SYLLABLE NIEUN I +0xB4D0 0xB2C9 #HANGUL SYLLABLE NIEUN I KIYEOK +0xB4D1 0xB2CC #HANGUL SYLLABLE NIEUN I NIEUN +0xB4D2 0xB2D0 #HANGUL SYLLABLE NIEUN I RIEUL +0xB4D3 0xB2D2 #HANGUL SYLLABLE NIEUN I RIEULMIEUM +0xB4D4 0xB2D8 #HANGUL SYLLABLE NIEUN I MIEUM +0xB4D5 0xB2D9 #HANGUL SYLLABLE NIEUN I PIEUP +0xB4D6 0xB2DB #HANGUL SYLLABLE NIEUN I SIOS +0xB4D7 0xB2DD #HANGUL SYLLABLE NIEUN I IEUNG +0xB4D8 0xB2E2 #HANGUL SYLLABLE NIEUN I PHIEUPH +0xB4D9 0xB2E4 #HANGUL SYLLABLE TIKEUT A +0xB4DA 0xB2E5 #HANGUL SYLLABLE TIKEUT A KIYEOK +0xB4DB 0xB2E6 #HANGUL SYLLABLE TIKEUT A SSANGKIYEOK +0xB4DC 0xB2E8 #HANGUL SYLLABLE TIKEUT A NIEUN +0xB4DD 0xB2EB #HANGUL SYLLABLE TIKEUT A TIKEUT +0xB4DE 0xB2EC #HANGUL SYLLABLE TIKEUT A RIEUL +0xB4DF 0xB2ED #HANGUL SYLLABLE TIKEUT A RIEULKIYEOK +0xB4E0 0xB2EE #HANGUL SYLLABLE TIKEUT A RIEULMIEUM +0xB4E1 0xB2EF #HANGUL SYLLABLE TIKEUT A RIEULPIEUP +0xB4E2 0xB2F3 #HANGUL SYLLABLE TIKEUT A RIEULHIEUH +0xB4E3 0xB2F4 #HANGUL SYLLABLE TIKEUT A MIEUM +0xB4E4 0xB2F5 #HANGUL SYLLABLE TIKEUT A PIEUP +0xB4E5 0xB2F7 #HANGUL SYLLABLE TIKEUT A SIOS +0xB4E6 0xB2F8 #HANGUL SYLLABLE TIKEUT A SSANGSIOS +0xB4E7 0xB2F9 #HANGUL SYLLABLE TIKEUT A IEUNG +0xB4E8 0xB2FA #HANGUL SYLLABLE TIKEUT A CIEUC +0xB4E9 0xB2FB #HANGUL SYLLABLE TIKEUT A CHIEUCH +0xB4EA 0xB2FF #HANGUL SYLLABLE TIKEUT A HIEUH +0xB4EB 0xB300 #HANGUL SYLLABLE TIKEUT AE +0xB4EC 0xB301 #HANGUL SYLLABLE TIKEUT AE KIYEOK +0xB4ED 0xB304 #HANGUL SYLLABLE TIKEUT AE NIEUN +0xB4EE 0xB308 #HANGUL SYLLABLE TIKEUT AE RIEUL +0xB4EF 0xB310 #HANGUL SYLLABLE TIKEUT AE MIEUM +0xB4F0 0xB311 #HANGUL SYLLABLE TIKEUT AE PIEUP +0xB4F1 0xB313 #HANGUL SYLLABLE TIKEUT AE SIOS +0xB4F2 0xB314 #HANGUL SYLLABLE TIKEUT AE SSANGSIOS +0xB4F3 0xB315 #HANGUL SYLLABLE TIKEUT AE IEUNG +0xB4F4 0xB31C #HANGUL SYLLABLE TIKEUT YA +0xB4F5 0xB354 #HANGUL SYLLABLE TIKEUT EO +0xB4F6 0xB355 #HANGUL SYLLABLE TIKEUT EO KIYEOK +0xB4F7 0xB356 #HANGUL SYLLABLE TIKEUT EO SSANGKIYEOK +0xB4F8 0xB358 #HANGUL SYLLABLE TIKEUT EO NIEUN +0xB4F9 0xB35B #HANGUL SYLLABLE TIKEUT EO TIKEUT +0xB4FA 0xB35C #HANGUL SYLLABLE TIKEUT EO RIEUL +0xB4FB 0xB35E #HANGUL SYLLABLE TIKEUT EO RIEULMIEUM +0xB4FC 0xB35F #HANGUL SYLLABLE TIKEUT EO RIEULPIEUP +0xB4FD 0xB364 #HANGUL SYLLABLE TIKEUT EO MIEUM +0xB4FE 0xB365 #HANGUL SYLLABLE TIKEUT EO PIEUP +0xB541 0xD095 #HANGUL SYLLABLE KHIEUKH YI RIEULTHIEUTH +0xB542 0xD096 #HANGUL SYLLABLE KHIEUKH YI RIEULPHIEUPH +0xB543 0xD097 #HANGUL SYLLABLE KHIEUKH YI RIEULHIEUH +0xB544 0xD098 #HANGUL SYLLABLE KHIEUKH YI MIEUM +0xB545 0xD099 #HANGUL SYLLABLE KHIEUKH YI PIEUP +0xB546 0xD09A #HANGUL SYLLABLE KHIEUKH YI PIEUPSIOS +0xB547 0xD09B #HANGUL SYLLABLE KHIEUKH YI SIOS +0xB548 0xD09C #HANGUL SYLLABLE KHIEUKH YI SSANGSIOS +0xB549 0xD09D #HANGUL SYLLABLE KHIEUKH YI IEUNG +0xB54A 0xD09E #HANGUL SYLLABLE KHIEUKH YI CIEUC +0xB54B 0xD09F #HANGUL SYLLABLE KHIEUKH YI CHIEUCH +0xB54C 0xD0A0 #HANGUL SYLLABLE KHIEUKH YI KHIEUKH +0xB54D 0xD0A1 #HANGUL SYLLABLE KHIEUKH YI THIEUTH +0xB54E 0xD0A2 #HANGUL SYLLABLE KHIEUKH YI PHIEUPH +0xB54F 0xD0A3 #HANGUL SYLLABLE KHIEUKH YI HIEUH +0xB550 0xD0A6 #HANGUL SYLLABLE KHIEUKH I SSANGKIYEOK +0xB551 0xD0A7 #HANGUL SYLLABLE KHIEUKH I KIYEOKSIOS +0xB552 0xD0A9 #HANGUL SYLLABLE KHIEUKH I NIEUNCIEUC +0xB553 0xD0AA #HANGUL SYLLABLE KHIEUKH I NIEUNHIEUH +0xB554 0xD0AB #HANGUL SYLLABLE KHIEUKH I TIKEUT +0xB555 0xD0AD #HANGUL SYLLABLE KHIEUKH I RIEULKIYEOK +0xB556 0xD0AE #HANGUL SYLLABLE KHIEUKH I RIEULMIEUM +0xB557 0xD0AF #HANGUL SYLLABLE KHIEUKH I RIEULPIEUP +0xB558 0xD0B0 #HANGUL SYLLABLE KHIEUKH I RIEULSIOS +0xB559 0xD0B1 #HANGUL SYLLABLE KHIEUKH I RIEULTHIEUTH +0xB55A 0xD0B2 #HANGUL SYLLABLE KHIEUKH I RIEULPHIEUPH +0xB561 0xD0B3 #HANGUL SYLLABLE KHIEUKH I RIEULHIEUH +0xB562 0xD0B6 #HANGUL SYLLABLE KHIEUKH I PIEUPSIOS +0xB563 0xD0B8 #HANGUL SYLLABLE KHIEUKH I SSANGSIOS +0xB564 0xD0BA #HANGUL SYLLABLE KHIEUKH I CIEUC +0xB565 0xD0BB #HANGUL SYLLABLE KHIEUKH I CHIEUCH +0xB566 0xD0BC #HANGUL SYLLABLE KHIEUKH I KHIEUKH +0xB567 0xD0BD #HANGUL SYLLABLE KHIEUKH I THIEUTH +0xB568 0xD0BE #HANGUL SYLLABLE KHIEUKH I PHIEUPH +0xB569 0xD0BF #HANGUL SYLLABLE KHIEUKH I HIEUH +0xB56A 0xD0C2 #HANGUL SYLLABLE THIEUTH A SSANGKIYEOK +0xB56B 0xD0C3 #HANGUL SYLLABLE THIEUTH A KIYEOKSIOS +0xB56C 0xD0C5 #HANGUL SYLLABLE THIEUTH A NIEUNCIEUC +0xB56D 0xD0C6 #HANGUL SYLLABLE THIEUTH A NIEUNHIEUH +0xB56E 0xD0C7 #HANGUL SYLLABLE THIEUTH A TIKEUT +0xB56F 0xD0CA #HANGUL SYLLABLE THIEUTH A RIEULMIEUM +0xB570 0xD0CB #HANGUL SYLLABLE THIEUTH A RIEULPIEUP +0xB571 0xD0CC #HANGUL SYLLABLE THIEUTH A RIEULSIOS +0xB572 0xD0CD #HANGUL SYLLABLE THIEUTH A RIEULTHIEUTH +0xB573 0xD0CE #HANGUL SYLLABLE THIEUTH A RIEULPHIEUPH +0xB574 0xD0CF #HANGUL SYLLABLE THIEUTH A RIEULHIEUH +0xB575 0xD0D2 #HANGUL SYLLABLE THIEUTH A PIEUPSIOS +0xB576 0xD0D6 #HANGUL SYLLABLE THIEUTH A CIEUC +0xB577 0xD0D7 #HANGUL SYLLABLE THIEUTH A CHIEUCH +0xB578 0xD0D8 #HANGUL SYLLABLE THIEUTH A KHIEUKH +0xB579 0xD0D9 #HANGUL SYLLABLE THIEUTH A THIEUTH +0xB57A 0xD0DA #HANGUL SYLLABLE THIEUTH A PHIEUPH +0xB581 0xD0DB #HANGUL SYLLABLE THIEUTH A HIEUH +0xB582 0xD0DE #HANGUL SYLLABLE THIEUTH AE SSANGKIYEOK +0xB583 0xD0DF #HANGUL SYLLABLE THIEUTH AE KIYEOKSIOS +0xB584 0xD0E1 #HANGUL SYLLABLE THIEUTH AE NIEUNCIEUC +0xB585 0xD0E2 #HANGUL SYLLABLE THIEUTH AE NIEUNHIEUH +0xB586 0xD0E3 #HANGUL SYLLABLE THIEUTH AE TIKEUT +0xB587 0xD0E5 #HANGUL SYLLABLE THIEUTH AE RIEULKIYEOK +0xB588 0xD0E6 #HANGUL SYLLABLE THIEUTH AE RIEULMIEUM +0xB589 0xD0E7 #HANGUL SYLLABLE THIEUTH AE RIEULPIEUP +0xB58A 0xD0E8 #HANGUL SYLLABLE THIEUTH AE RIEULSIOS +0xB58B 0xD0E9 #HANGUL SYLLABLE THIEUTH AE RIEULTHIEUTH +0xB58C 0xD0EA #HANGUL SYLLABLE THIEUTH AE RIEULPHIEUPH +0xB58D 0xD0EB #HANGUL SYLLABLE THIEUTH AE RIEULHIEUH +0xB58E 0xD0EE #HANGUL SYLLABLE THIEUTH AE PIEUPSIOS +0xB58F 0xD0F2 #HANGUL SYLLABLE THIEUTH AE CIEUC +0xB590 0xD0F3 #HANGUL SYLLABLE THIEUTH AE CHIEUCH +0xB591 0xD0F4 #HANGUL SYLLABLE THIEUTH AE KHIEUKH +0xB592 0xD0F5 #HANGUL SYLLABLE THIEUTH AE THIEUTH +0xB593 0xD0F6 #HANGUL SYLLABLE THIEUTH AE PHIEUPH +0xB594 0xD0F7 #HANGUL SYLLABLE THIEUTH AE HIEUH +0xB595 0xD0F9 #HANGUL SYLLABLE THIEUTH YA KIYEOK +0xB596 0xD0FA #HANGUL SYLLABLE THIEUTH YA SSANGKIYEOK +0xB597 0xD0FB #HANGUL SYLLABLE THIEUTH YA KIYEOKSIOS +0xB598 0xD0FC #HANGUL SYLLABLE THIEUTH YA NIEUN +0xB599 0xD0FD #HANGUL SYLLABLE THIEUTH YA NIEUNCIEUC +0xB59A 0xD0FE #HANGUL SYLLABLE THIEUTH YA NIEUNHIEUH +0xB59B 0xD0FF #HANGUL SYLLABLE THIEUTH YA TIKEUT +0xB59C 0xD100 #HANGUL SYLLABLE THIEUTH YA RIEUL +0xB59D 0xD101 #HANGUL SYLLABLE THIEUTH YA RIEULKIYEOK +0xB59E 0xD102 #HANGUL SYLLABLE THIEUTH YA RIEULMIEUM +0xB59F 0xD103 #HANGUL SYLLABLE THIEUTH YA RIEULPIEUP +0xB5A0 0xD104 #HANGUL SYLLABLE THIEUTH YA RIEULSIOS +0xB5A1 0xB367 #HANGUL SYLLABLE TIKEUT EO SIOS +0xB5A2 0xB369 #HANGUL SYLLABLE TIKEUT EO IEUNG +0xB5A3 0xB36B #HANGUL SYLLABLE TIKEUT EO CHIEUCH +0xB5A4 0xB36E #HANGUL SYLLABLE TIKEUT EO PHIEUPH +0xB5A5 0xB370 #HANGUL SYLLABLE TIKEUT E +0xB5A6 0xB371 #HANGUL SYLLABLE TIKEUT E KIYEOK +0xB5A7 0xB374 #HANGUL SYLLABLE TIKEUT E NIEUN +0xB5A8 0xB378 #HANGUL SYLLABLE TIKEUT E RIEUL +0xB5A9 0xB380 #HANGUL SYLLABLE TIKEUT E MIEUM +0xB5AA 0xB381 #HANGUL SYLLABLE TIKEUT E PIEUP +0xB5AB 0xB383 #HANGUL SYLLABLE TIKEUT E SIOS +0xB5AC 0xB384 #HANGUL SYLLABLE TIKEUT E SSANGSIOS +0xB5AD 0xB385 #HANGUL SYLLABLE TIKEUT E IEUNG +0xB5AE 0xB38C #HANGUL SYLLABLE TIKEUT YEO +0xB5AF 0xB390 #HANGUL SYLLABLE TIKEUT YEO NIEUN +0xB5B0 0xB394 #HANGUL SYLLABLE TIKEUT YEO RIEUL +0xB5B1 0xB3A0 #HANGUL SYLLABLE TIKEUT YEO SSANGSIOS +0xB5B2 0xB3A1 #HANGUL SYLLABLE TIKEUT YEO IEUNG +0xB5B3 0xB3A8 #HANGUL SYLLABLE TIKEUT YE +0xB5B4 0xB3AC #HANGUL SYLLABLE TIKEUT YE NIEUN +0xB5B5 0xB3C4 #HANGUL SYLLABLE TIKEUT O +0xB5B6 0xB3C5 #HANGUL SYLLABLE TIKEUT O KIYEOK +0xB5B7 0xB3C8 #HANGUL SYLLABLE TIKEUT O NIEUN +0xB5B8 0xB3CB #HANGUL SYLLABLE TIKEUT O TIKEUT +0xB5B9 0xB3CC #HANGUL SYLLABLE TIKEUT O RIEUL +0xB5BA 0xB3CE #HANGUL SYLLABLE TIKEUT O RIEULMIEUM +0xB5BB 0xB3D0 #HANGUL SYLLABLE TIKEUT O RIEULSIOS +0xB5BC 0xB3D4 #HANGUL SYLLABLE TIKEUT O MIEUM +0xB5BD 0xB3D5 #HANGUL SYLLABLE TIKEUT O PIEUP +0xB5BE 0xB3D7 #HANGUL SYLLABLE TIKEUT O SIOS +0xB5BF 0xB3D9 #HANGUL SYLLABLE TIKEUT O IEUNG +0xB5C0 0xB3DB #HANGUL SYLLABLE TIKEUT O CHIEUCH +0xB5C1 0xB3DD #HANGUL SYLLABLE TIKEUT O THIEUTH +0xB5C2 0xB3E0 #HANGUL SYLLABLE TIKEUT WA +0xB5C3 0xB3E4 #HANGUL SYLLABLE TIKEUT WA NIEUN +0xB5C4 0xB3E8 #HANGUL SYLLABLE TIKEUT WA RIEUL +0xB5C5 0xB3FC #HANGUL SYLLABLE TIKEUT WAE +0xB5C6 0xB410 #HANGUL SYLLABLE TIKEUT WAE SSANGSIOS +0xB5C7 0xB418 #HANGUL SYLLABLE TIKEUT OE +0xB5C8 0xB41C #HANGUL SYLLABLE TIKEUT OE NIEUN +0xB5C9 0xB420 #HANGUL SYLLABLE TIKEUT OE RIEUL +0xB5CA 0xB428 #HANGUL SYLLABLE TIKEUT OE MIEUM +0xB5CB 0xB429 #HANGUL SYLLABLE TIKEUT OE PIEUP +0xB5CC 0xB42B #HANGUL SYLLABLE TIKEUT OE SIOS +0xB5CD 0xB434 #HANGUL SYLLABLE TIKEUT YO +0xB5CE 0xB450 #HANGUL SYLLABLE TIKEUT U +0xB5CF 0xB451 #HANGUL SYLLABLE TIKEUT U KIYEOK +0xB5D0 0xB454 #HANGUL SYLLABLE TIKEUT U NIEUN +0xB5D1 0xB458 #HANGUL SYLLABLE TIKEUT U RIEUL +0xB5D2 0xB460 #HANGUL SYLLABLE TIKEUT U MIEUM +0xB5D3 0xB461 #HANGUL SYLLABLE TIKEUT U PIEUP +0xB5D4 0xB463 #HANGUL SYLLABLE TIKEUT U SIOS +0xB5D5 0xB465 #HANGUL SYLLABLE TIKEUT U IEUNG +0xB5D6 0xB46C #HANGUL SYLLABLE TIKEUT WEO +0xB5D7 0xB480 #HANGUL SYLLABLE TIKEUT WEO SSANGSIOS +0xB5D8 0xB488 #HANGUL SYLLABLE TIKEUT WE +0xB5D9 0xB49D #HANGUL SYLLABLE TIKEUT WE IEUNG +0xB5DA 0xB4A4 #HANGUL SYLLABLE TIKEUT WI +0xB5DB 0xB4A8 #HANGUL SYLLABLE TIKEUT WI NIEUN +0xB5DC 0xB4AC #HANGUL SYLLABLE TIKEUT WI RIEUL +0xB5DD 0xB4B5 #HANGUL SYLLABLE TIKEUT WI PIEUP +0xB5DE 0xB4B7 #HANGUL SYLLABLE TIKEUT WI SIOS +0xB5DF 0xB4B9 #HANGUL SYLLABLE TIKEUT WI IEUNG +0xB5E0 0xB4C0 #HANGUL SYLLABLE TIKEUT YU +0xB5E1 0xB4C4 #HANGUL SYLLABLE TIKEUT YU NIEUN +0xB5E2 0xB4C8 #HANGUL SYLLABLE TIKEUT YU RIEUL +0xB5E3 0xB4D0 #HANGUL SYLLABLE TIKEUT YU MIEUM +0xB5E4 0xB4D5 #HANGUL SYLLABLE TIKEUT YU IEUNG +0xB5E5 0xB4DC #HANGUL SYLLABLE TIKEUT EU +0xB5E6 0xB4DD #HANGUL SYLLABLE TIKEUT EU KIYEOK +0xB5E7 0xB4E0 #HANGUL SYLLABLE TIKEUT EU NIEUN +0xB5E8 0xB4E3 #HANGUL SYLLABLE TIKEUT EU TIKEUT +0xB5E9 0xB4E4 #HANGUL SYLLABLE TIKEUT EU RIEUL +0xB5EA 0xB4E6 #HANGUL SYLLABLE TIKEUT EU RIEULMIEUM +0xB5EB 0xB4EC #HANGUL SYLLABLE TIKEUT EU MIEUM +0xB5EC 0xB4ED #HANGUL SYLLABLE TIKEUT EU PIEUP +0xB5ED 0xB4EF #HANGUL SYLLABLE TIKEUT EU SIOS +0xB5EE 0xB4F1 #HANGUL SYLLABLE TIKEUT EU IEUNG +0xB5EF 0xB4F8 #HANGUL SYLLABLE TIKEUT YI +0xB5F0 0xB514 #HANGUL SYLLABLE TIKEUT I +0xB5F1 0xB515 #HANGUL SYLLABLE TIKEUT I KIYEOK +0xB5F2 0xB518 #HANGUL SYLLABLE TIKEUT I NIEUN +0xB5F3 0xB51B #HANGUL SYLLABLE TIKEUT I TIKEUT +0xB5F4 0xB51C #HANGUL SYLLABLE TIKEUT I RIEUL +0xB5F5 0xB524 #HANGUL SYLLABLE TIKEUT I MIEUM +0xB5F6 0xB525 #HANGUL SYLLABLE TIKEUT I PIEUP +0xB5F7 0xB527 #HANGUL SYLLABLE TIKEUT I SIOS +0xB5F8 0xB528 #HANGUL SYLLABLE TIKEUT I SSANGSIOS +0xB5F9 0xB529 #HANGUL SYLLABLE TIKEUT I IEUNG +0xB5FA 0xB52A #HANGUL SYLLABLE TIKEUT I CIEUC +0xB5FB 0xB530 #HANGUL SYLLABLE SSANGTIKEUT A +0xB5FC 0xB531 #HANGUL SYLLABLE SSANGTIKEUT A KIYEOK +0xB5FD 0xB534 #HANGUL SYLLABLE SSANGTIKEUT A NIEUN +0xB5FE 0xB538 #HANGUL SYLLABLE SSANGTIKEUT A RIEUL +0xB641 0xD105 #HANGUL SYLLABLE THIEUTH YA RIEULTHIEUTH +0xB642 0xD106 #HANGUL SYLLABLE THIEUTH YA RIEULPHIEUPH +0xB643 0xD107 #HANGUL SYLLABLE THIEUTH YA RIEULHIEUH +0xB644 0xD108 #HANGUL SYLLABLE THIEUTH YA MIEUM +0xB645 0xD109 #HANGUL SYLLABLE THIEUTH YA PIEUP +0xB646 0xD10A #HANGUL SYLLABLE THIEUTH YA PIEUPSIOS +0xB647 0xD10B #HANGUL SYLLABLE THIEUTH YA SIOS +0xB648 0xD10C #HANGUL SYLLABLE THIEUTH YA SSANGSIOS +0xB649 0xD10E #HANGUL SYLLABLE THIEUTH YA CIEUC +0xB64A 0xD10F #HANGUL SYLLABLE THIEUTH YA CHIEUCH +0xB64B 0xD110 #HANGUL SYLLABLE THIEUTH YA KHIEUKH +0xB64C 0xD111 #HANGUL SYLLABLE THIEUTH YA THIEUTH +0xB64D 0xD112 #HANGUL SYLLABLE THIEUTH YA PHIEUPH +0xB64E 0xD113 #HANGUL SYLLABLE THIEUTH YA HIEUH +0xB64F 0xD114 #HANGUL SYLLABLE THIEUTH YAE +0xB650 0xD115 #HANGUL SYLLABLE THIEUTH YAE KIYEOK +0xB651 0xD116 #HANGUL SYLLABLE THIEUTH YAE SSANGKIYEOK +0xB652 0xD117 #HANGUL SYLLABLE THIEUTH YAE KIYEOKSIOS +0xB653 0xD118 #HANGUL SYLLABLE THIEUTH YAE NIEUN +0xB654 0xD119 #HANGUL SYLLABLE THIEUTH YAE NIEUNCIEUC +0xB655 0xD11A #HANGUL SYLLABLE THIEUTH YAE NIEUNHIEUH +0xB656 0xD11B #HANGUL SYLLABLE THIEUTH YAE TIKEUT +0xB657 0xD11C #HANGUL SYLLABLE THIEUTH YAE RIEUL +0xB658 0xD11D #HANGUL SYLLABLE THIEUTH YAE RIEULKIYEOK +0xB659 0xD11E #HANGUL SYLLABLE THIEUTH YAE RIEULMIEUM +0xB65A 0xD11F #HANGUL SYLLABLE THIEUTH YAE RIEULPIEUP +0xB661 0xD120 #HANGUL SYLLABLE THIEUTH YAE RIEULSIOS +0xB662 0xD121 #HANGUL SYLLABLE THIEUTH YAE RIEULTHIEUTH +0xB663 0xD122 #HANGUL SYLLABLE THIEUTH YAE RIEULPHIEUPH +0xB664 0xD123 #HANGUL SYLLABLE THIEUTH YAE RIEULHIEUH +0xB665 0xD124 #HANGUL SYLLABLE THIEUTH YAE MIEUM +0xB666 0xD125 #HANGUL SYLLABLE THIEUTH YAE PIEUP +0xB667 0xD126 #HANGUL SYLLABLE THIEUTH YAE PIEUPSIOS +0xB668 0xD127 #HANGUL SYLLABLE THIEUTH YAE SIOS +0xB669 0xD128 #HANGUL SYLLABLE THIEUTH YAE SSANGSIOS +0xB66A 0xD129 #HANGUL SYLLABLE THIEUTH YAE IEUNG +0xB66B 0xD12A #HANGUL SYLLABLE THIEUTH YAE CIEUC +0xB66C 0xD12B #HANGUL SYLLABLE THIEUTH YAE CHIEUCH +0xB66D 0xD12C #HANGUL SYLLABLE THIEUTH YAE KHIEUKH +0xB66E 0xD12D #HANGUL SYLLABLE THIEUTH YAE THIEUTH +0xB66F 0xD12E #HANGUL SYLLABLE THIEUTH YAE PHIEUPH +0xB670 0xD12F #HANGUL SYLLABLE THIEUTH YAE HIEUH +0xB671 0xD132 #HANGUL SYLLABLE THIEUTH EO SSANGKIYEOK +0xB672 0xD133 #HANGUL SYLLABLE THIEUTH EO KIYEOKSIOS +0xB673 0xD135 #HANGUL SYLLABLE THIEUTH EO NIEUNCIEUC +0xB674 0xD136 #HANGUL SYLLABLE THIEUTH EO NIEUNHIEUH +0xB675 0xD137 #HANGUL SYLLABLE THIEUTH EO TIKEUT +0xB676 0xD139 #HANGUL SYLLABLE THIEUTH EO RIEULKIYEOK +0xB677 0xD13B #HANGUL SYLLABLE THIEUTH EO RIEULPIEUP +0xB678 0xD13C #HANGUL SYLLABLE THIEUTH EO RIEULSIOS +0xB679 0xD13D #HANGUL SYLLABLE THIEUTH EO RIEULTHIEUTH +0xB67A 0xD13E #HANGUL SYLLABLE THIEUTH EO RIEULPHIEUPH +0xB681 0xD13F #HANGUL SYLLABLE THIEUTH EO RIEULHIEUH +0xB682 0xD142 #HANGUL SYLLABLE THIEUTH EO PIEUPSIOS +0xB683 0xD146 #HANGUL SYLLABLE THIEUTH EO CIEUC +0xB684 0xD147 #HANGUL SYLLABLE THIEUTH EO CHIEUCH +0xB685 0xD148 #HANGUL SYLLABLE THIEUTH EO KHIEUKH +0xB686 0xD149 #HANGUL SYLLABLE THIEUTH EO THIEUTH +0xB687 0xD14A #HANGUL SYLLABLE THIEUTH EO PHIEUPH +0xB688 0xD14B #HANGUL SYLLABLE THIEUTH EO HIEUH +0xB689 0xD14E #HANGUL SYLLABLE THIEUTH E SSANGKIYEOK +0xB68A 0xD14F #HANGUL SYLLABLE THIEUTH E KIYEOKSIOS +0xB68B 0xD151 #HANGUL SYLLABLE THIEUTH E NIEUNCIEUC +0xB68C 0xD152 #HANGUL SYLLABLE THIEUTH E NIEUNHIEUH +0xB68D 0xD153 #HANGUL SYLLABLE THIEUTH E TIKEUT +0xB68E 0xD155 #HANGUL SYLLABLE THIEUTH E RIEULKIYEOK +0xB68F 0xD156 #HANGUL SYLLABLE THIEUTH E RIEULMIEUM +0xB690 0xD157 #HANGUL SYLLABLE THIEUTH E RIEULPIEUP +0xB691 0xD158 #HANGUL SYLLABLE THIEUTH E RIEULSIOS +0xB692 0xD159 #HANGUL SYLLABLE THIEUTH E RIEULTHIEUTH +0xB693 0xD15A #HANGUL SYLLABLE THIEUTH E RIEULPHIEUPH +0xB694 0xD15B #HANGUL SYLLABLE THIEUTH E RIEULHIEUH +0xB695 0xD15E #HANGUL SYLLABLE THIEUTH E PIEUPSIOS +0xB696 0xD160 #HANGUL SYLLABLE THIEUTH E SSANGSIOS +0xB697 0xD162 #HANGUL SYLLABLE THIEUTH E CIEUC +0xB698 0xD163 #HANGUL SYLLABLE THIEUTH E CHIEUCH +0xB699 0xD164 #HANGUL SYLLABLE THIEUTH E KHIEUKH +0xB69A 0xD165 #HANGUL SYLLABLE THIEUTH E THIEUTH +0xB69B 0xD166 #HANGUL SYLLABLE THIEUTH E PHIEUPH +0xB69C 0xD167 #HANGUL SYLLABLE THIEUTH E HIEUH +0xB69D 0xD169 #HANGUL SYLLABLE THIEUTH YEO KIYEOK +0xB69E 0xD16A #HANGUL SYLLABLE THIEUTH YEO SSANGKIYEOK +0xB69F 0xD16B #HANGUL SYLLABLE THIEUTH YEO KIYEOKSIOS +0xB6A0 0xD16D #HANGUL SYLLABLE THIEUTH YEO NIEUNCIEUC +0xB6A1 0xB540 #HANGUL SYLLABLE SSANGTIKEUT A MIEUM +0xB6A2 0xB541 #HANGUL SYLLABLE SSANGTIKEUT A PIEUP +0xB6A3 0xB543 #HANGUL SYLLABLE SSANGTIKEUT A SIOS +0xB6A4 0xB544 #HANGUL SYLLABLE SSANGTIKEUT A SSANGSIOS +0xB6A5 0xB545 #HANGUL SYLLABLE SSANGTIKEUT A IEUNG +0xB6A6 0xB54B #HANGUL SYLLABLE SSANGTIKEUT A HIEUH +0xB6A7 0xB54C #HANGUL SYLLABLE SSANGTIKEUT AE +0xB6A8 0xB54D #HANGUL SYLLABLE SSANGTIKEUT AE KIYEOK +0xB6A9 0xB550 #HANGUL SYLLABLE SSANGTIKEUT AE NIEUN +0xB6AA 0xB554 #HANGUL SYLLABLE SSANGTIKEUT AE RIEUL +0xB6AB 0xB55C #HANGUL SYLLABLE SSANGTIKEUT AE MIEUM +0xB6AC 0xB55D #HANGUL SYLLABLE SSANGTIKEUT AE PIEUP +0xB6AD 0xB55F #HANGUL SYLLABLE SSANGTIKEUT AE SIOS +0xB6AE 0xB560 #HANGUL SYLLABLE SSANGTIKEUT AE SSANGSIOS +0xB6AF 0xB561 #HANGUL SYLLABLE SSANGTIKEUT AE IEUNG +0xB6B0 0xB5A0 #HANGUL SYLLABLE SSANGTIKEUT EO +0xB6B1 0xB5A1 #HANGUL SYLLABLE SSANGTIKEUT EO KIYEOK +0xB6B2 0xB5A4 #HANGUL SYLLABLE SSANGTIKEUT EO NIEUN +0xB6B3 0xB5A8 #HANGUL SYLLABLE SSANGTIKEUT EO RIEUL +0xB6B4 0xB5AA #HANGUL SYLLABLE SSANGTIKEUT EO RIEULMIEUM +0xB6B5 0xB5AB #HANGUL SYLLABLE SSANGTIKEUT EO RIEULPIEUP +0xB6B6 0xB5B0 #HANGUL SYLLABLE SSANGTIKEUT EO MIEUM +0xB6B7 0xB5B1 #HANGUL SYLLABLE SSANGTIKEUT EO PIEUP +0xB6B8 0xB5B3 #HANGUL SYLLABLE SSANGTIKEUT EO SIOS +0xB6B9 0xB5B4 #HANGUL SYLLABLE SSANGTIKEUT EO SSANGSIOS +0xB6BA 0xB5B5 #HANGUL SYLLABLE SSANGTIKEUT EO IEUNG +0xB6BB 0xB5BB #HANGUL SYLLABLE SSANGTIKEUT EO HIEUH +0xB6BC 0xB5BC #HANGUL SYLLABLE SSANGTIKEUT E +0xB6BD 0xB5BD #HANGUL SYLLABLE SSANGTIKEUT E KIYEOK +0xB6BE 0xB5C0 #HANGUL SYLLABLE SSANGTIKEUT E NIEUN +0xB6BF 0xB5C4 #HANGUL SYLLABLE SSANGTIKEUT E RIEUL +0xB6C0 0xB5CC #HANGUL SYLLABLE SSANGTIKEUT E MIEUM +0xB6C1 0xB5CD #HANGUL SYLLABLE SSANGTIKEUT E PIEUP +0xB6C2 0xB5CF #HANGUL SYLLABLE SSANGTIKEUT E SIOS +0xB6C3 0xB5D0 #HANGUL SYLLABLE SSANGTIKEUT E SSANGSIOS +0xB6C4 0xB5D1 #HANGUL SYLLABLE SSANGTIKEUT E IEUNG +0xB6C5 0xB5D8 #HANGUL SYLLABLE SSANGTIKEUT YEO +0xB6C6 0xB5EC #HANGUL SYLLABLE SSANGTIKEUT YEO SSANGSIOS +0xB6C7 0xB610 #HANGUL SYLLABLE SSANGTIKEUT O +0xB6C8 0xB611 #HANGUL SYLLABLE SSANGTIKEUT O KIYEOK +0xB6C9 0xB614 #HANGUL SYLLABLE SSANGTIKEUT O NIEUN +0xB6CA 0xB618 #HANGUL SYLLABLE SSANGTIKEUT O RIEUL +0xB6CB 0xB625 #HANGUL SYLLABLE SSANGTIKEUT O IEUNG +0xB6CC 0xB62C #HANGUL SYLLABLE SSANGTIKEUT WA +0xB6CD 0xB634 #HANGUL SYLLABLE SSANGTIKEUT WA RIEUL +0xB6CE 0xB648 #HANGUL SYLLABLE SSANGTIKEUT WAE +0xB6CF 0xB664 #HANGUL SYLLABLE SSANGTIKEUT OE +0xB6D0 0xB668 #HANGUL SYLLABLE SSANGTIKEUT OE NIEUN +0xB6D1 0xB69C #HANGUL SYLLABLE SSANGTIKEUT U +0xB6D2 0xB69D #HANGUL SYLLABLE SSANGTIKEUT U KIYEOK +0xB6D3 0xB6A0 #HANGUL SYLLABLE SSANGTIKEUT U NIEUN +0xB6D4 0xB6A4 #HANGUL SYLLABLE SSANGTIKEUT U RIEUL +0xB6D5 0xB6AB #HANGUL SYLLABLE SSANGTIKEUT U RIEULHIEUH +0xB6D6 0xB6AC #HANGUL SYLLABLE SSANGTIKEUT U MIEUM +0xB6D7 0xB6B1 #HANGUL SYLLABLE SSANGTIKEUT U IEUNG +0xB6D8 0xB6D4 #HANGUL SYLLABLE SSANGTIKEUT WE +0xB6D9 0xB6F0 #HANGUL SYLLABLE SSANGTIKEUT WI +0xB6DA 0xB6F4 #HANGUL SYLLABLE SSANGTIKEUT WI NIEUN +0xB6DB 0xB6F8 #HANGUL SYLLABLE SSANGTIKEUT WI RIEUL +0xB6DC 0xB700 #HANGUL SYLLABLE SSANGTIKEUT WI MIEUM +0xB6DD 0xB701 #HANGUL SYLLABLE SSANGTIKEUT WI PIEUP +0xB6DE 0xB705 #HANGUL SYLLABLE SSANGTIKEUT WI IEUNG +0xB6DF 0xB728 #HANGUL SYLLABLE SSANGTIKEUT EU +0xB6E0 0xB729 #HANGUL SYLLABLE SSANGTIKEUT EU KIYEOK +0xB6E1 0xB72C #HANGUL SYLLABLE SSANGTIKEUT EU NIEUN +0xB6E2 0xB72F #HANGUL SYLLABLE SSANGTIKEUT EU TIKEUT +0xB6E3 0xB730 #HANGUL SYLLABLE SSANGTIKEUT EU RIEUL +0xB6E4 0xB738 #HANGUL SYLLABLE SSANGTIKEUT EU MIEUM +0xB6E5 0xB739 #HANGUL SYLLABLE SSANGTIKEUT EU PIEUP +0xB6E6 0xB73B #HANGUL SYLLABLE SSANGTIKEUT EU SIOS +0xB6E7 0xB744 #HANGUL SYLLABLE SSANGTIKEUT YI +0xB6E8 0xB748 #HANGUL SYLLABLE SSANGTIKEUT YI NIEUN +0xB6E9 0xB74C #HANGUL SYLLABLE SSANGTIKEUT YI RIEUL +0xB6EA 0xB754 #HANGUL SYLLABLE SSANGTIKEUT YI MIEUM +0xB6EB 0xB755 #HANGUL SYLLABLE SSANGTIKEUT YI PIEUP +0xB6EC 0xB760 #HANGUL SYLLABLE SSANGTIKEUT I +0xB6ED 0xB764 #HANGUL SYLLABLE SSANGTIKEUT I NIEUN +0xB6EE 0xB768 #HANGUL SYLLABLE SSANGTIKEUT I RIEUL +0xB6EF 0xB770 #HANGUL SYLLABLE SSANGTIKEUT I MIEUM +0xB6F0 0xB771 #HANGUL SYLLABLE SSANGTIKEUT I PIEUP +0xB6F1 0xB773 #HANGUL SYLLABLE SSANGTIKEUT I SIOS +0xB6F2 0xB775 #HANGUL SYLLABLE SSANGTIKEUT I IEUNG +0xB6F3 0xB77C #HANGUL SYLLABLE RIEUL A +0xB6F4 0xB77D #HANGUL SYLLABLE RIEUL A KIYEOK +0xB6F5 0xB780 #HANGUL SYLLABLE RIEUL A NIEUN +0xB6F6 0xB784 #HANGUL SYLLABLE RIEUL A RIEUL +0xB6F7 0xB78C #HANGUL SYLLABLE RIEUL A MIEUM +0xB6F8 0xB78D #HANGUL SYLLABLE RIEUL A PIEUP +0xB6F9 0xB78F #HANGUL SYLLABLE RIEUL A SIOS +0xB6FA 0xB790 #HANGUL SYLLABLE RIEUL A SSANGSIOS +0xB6FB 0xB791 #HANGUL SYLLABLE RIEUL A IEUNG +0xB6FC 0xB792 #HANGUL SYLLABLE RIEUL A CIEUC +0xB6FD 0xB796 #HANGUL SYLLABLE RIEUL A PHIEUPH +0xB6FE 0xB797 #HANGUL SYLLABLE RIEUL A HIEUH +0xB741 0xD16E #HANGUL SYLLABLE THIEUTH YEO NIEUNHIEUH +0xB742 0xD16F #HANGUL SYLLABLE THIEUTH YEO TIKEUT +0xB743 0xD170 #HANGUL SYLLABLE THIEUTH YEO RIEUL +0xB744 0xD171 #HANGUL SYLLABLE THIEUTH YEO RIEULKIYEOK +0xB745 0xD172 #HANGUL SYLLABLE THIEUTH YEO RIEULMIEUM +0xB746 0xD173 #HANGUL SYLLABLE THIEUTH YEO RIEULPIEUP +0xB747 0xD174 #HANGUL SYLLABLE THIEUTH YEO RIEULSIOS +0xB748 0xD175 #HANGUL SYLLABLE THIEUTH YEO RIEULTHIEUTH +0xB749 0xD176 #HANGUL SYLLABLE THIEUTH YEO RIEULPHIEUPH +0xB74A 0xD177 #HANGUL SYLLABLE THIEUTH YEO RIEULHIEUH +0xB74B 0xD178 #HANGUL SYLLABLE THIEUTH YEO MIEUM +0xB74C 0xD179 #HANGUL SYLLABLE THIEUTH YEO PIEUP +0xB74D 0xD17A #HANGUL SYLLABLE THIEUTH YEO PIEUPSIOS +0xB74E 0xD17B #HANGUL SYLLABLE THIEUTH YEO SIOS +0xB74F 0xD17D #HANGUL SYLLABLE THIEUTH YEO IEUNG +0xB750 0xD17E #HANGUL SYLLABLE THIEUTH YEO CIEUC +0xB751 0xD17F #HANGUL SYLLABLE THIEUTH YEO CHIEUCH +0xB752 0xD180 #HANGUL SYLLABLE THIEUTH YEO KHIEUKH +0xB753 0xD181 #HANGUL SYLLABLE THIEUTH YEO THIEUTH +0xB754 0xD182 #HANGUL SYLLABLE THIEUTH YEO PHIEUPH +0xB755 0xD183 #HANGUL SYLLABLE THIEUTH YEO HIEUH +0xB756 0xD185 #HANGUL SYLLABLE THIEUTH YE KIYEOK +0xB757 0xD186 #HANGUL SYLLABLE THIEUTH YE SSANGKIYEOK +0xB758 0xD187 #HANGUL SYLLABLE THIEUTH YE KIYEOKSIOS +0xB759 0xD189 #HANGUL SYLLABLE THIEUTH YE NIEUNCIEUC +0xB75A 0xD18A #HANGUL SYLLABLE THIEUTH YE NIEUNHIEUH +0xB761 0xD18B #HANGUL SYLLABLE THIEUTH YE TIKEUT +0xB762 0xD18C #HANGUL SYLLABLE THIEUTH YE RIEUL +0xB763 0xD18D #HANGUL SYLLABLE THIEUTH YE RIEULKIYEOK +0xB764 0xD18E #HANGUL SYLLABLE THIEUTH YE RIEULMIEUM +0xB765 0xD18F #HANGUL SYLLABLE THIEUTH YE RIEULPIEUP +0xB766 0xD190 #HANGUL SYLLABLE THIEUTH YE RIEULSIOS +0xB767 0xD191 #HANGUL SYLLABLE THIEUTH YE RIEULTHIEUTH +0xB768 0xD192 #HANGUL SYLLABLE THIEUTH YE RIEULPHIEUPH +0xB769 0xD193 #HANGUL SYLLABLE THIEUTH YE RIEULHIEUH +0xB76A 0xD194 #HANGUL SYLLABLE THIEUTH YE MIEUM +0xB76B 0xD195 #HANGUL SYLLABLE THIEUTH YE PIEUP +0xB76C 0xD196 #HANGUL SYLLABLE THIEUTH YE PIEUPSIOS +0xB76D 0xD197 #HANGUL SYLLABLE THIEUTH YE SIOS +0xB76E 0xD198 #HANGUL SYLLABLE THIEUTH YE SSANGSIOS +0xB76F 0xD199 #HANGUL SYLLABLE THIEUTH YE IEUNG +0xB770 0xD19A #HANGUL SYLLABLE THIEUTH YE CIEUC +0xB771 0xD19B #HANGUL SYLLABLE THIEUTH YE CHIEUCH +0xB772 0xD19C #HANGUL SYLLABLE THIEUTH YE KHIEUKH +0xB773 0xD19D #HANGUL SYLLABLE THIEUTH YE THIEUTH +0xB774 0xD19E #HANGUL SYLLABLE THIEUTH YE PHIEUPH +0xB775 0xD19F #HANGUL SYLLABLE THIEUTH YE HIEUH +0xB776 0xD1A2 #HANGUL SYLLABLE THIEUTH O SSANGKIYEOK +0xB777 0xD1A3 #HANGUL SYLLABLE THIEUTH O KIYEOKSIOS +0xB778 0xD1A5 #HANGUL SYLLABLE THIEUTH O NIEUNCIEUC +0xB779 0xD1A6 #HANGUL SYLLABLE THIEUTH O NIEUNHIEUH +0xB77A 0xD1A7 #HANGUL SYLLABLE THIEUTH O TIKEUT +0xB781 0xD1A9 #HANGUL SYLLABLE THIEUTH O RIEULKIYEOK +0xB782 0xD1AA #HANGUL SYLLABLE THIEUTH O RIEULMIEUM +0xB783 0xD1AB #HANGUL SYLLABLE THIEUTH O RIEULPIEUP +0xB784 0xD1AC #HANGUL SYLLABLE THIEUTH O RIEULSIOS +0xB785 0xD1AD #HANGUL SYLLABLE THIEUTH O RIEULTHIEUTH +0xB786 0xD1AE #HANGUL SYLLABLE THIEUTH O RIEULPHIEUPH +0xB787 0xD1AF #HANGUL SYLLABLE THIEUTH O RIEULHIEUH +0xB788 0xD1B2 #HANGUL SYLLABLE THIEUTH O PIEUPSIOS +0xB789 0xD1B4 #HANGUL SYLLABLE THIEUTH O SSANGSIOS +0xB78A 0xD1B6 #HANGUL SYLLABLE THIEUTH O CIEUC +0xB78B 0xD1B7 #HANGUL SYLLABLE THIEUTH O CHIEUCH +0xB78C 0xD1B8 #HANGUL SYLLABLE THIEUTH O KHIEUKH +0xB78D 0xD1B9 #HANGUL SYLLABLE THIEUTH O THIEUTH +0xB78E 0xD1BB #HANGUL SYLLABLE THIEUTH O HIEUH +0xB78F 0xD1BD #HANGUL SYLLABLE THIEUTH WA KIYEOK +0xB790 0xD1BE #HANGUL SYLLABLE THIEUTH WA SSANGKIYEOK +0xB791 0xD1BF #HANGUL SYLLABLE THIEUTH WA KIYEOKSIOS +0xB792 0xD1C1 #HANGUL SYLLABLE THIEUTH WA NIEUNCIEUC +0xB793 0xD1C2 #HANGUL SYLLABLE THIEUTH WA NIEUNHIEUH +0xB794 0xD1C3 #HANGUL SYLLABLE THIEUTH WA TIKEUT +0xB795 0xD1C4 #HANGUL SYLLABLE THIEUTH WA RIEUL +0xB796 0xD1C5 #HANGUL SYLLABLE THIEUTH WA RIEULKIYEOK +0xB797 0xD1C6 #HANGUL SYLLABLE THIEUTH WA RIEULMIEUM +0xB798 0xD1C7 #HANGUL SYLLABLE THIEUTH WA RIEULPIEUP +0xB799 0xD1C8 #HANGUL SYLLABLE THIEUTH WA RIEULSIOS +0xB79A 0xD1C9 #HANGUL SYLLABLE THIEUTH WA RIEULTHIEUTH +0xB79B 0xD1CA #HANGUL SYLLABLE THIEUTH WA RIEULPHIEUPH +0xB79C 0xD1CB #HANGUL SYLLABLE THIEUTH WA RIEULHIEUH +0xB79D 0xD1CC #HANGUL SYLLABLE THIEUTH WA MIEUM +0xB79E 0xD1CD #HANGUL SYLLABLE THIEUTH WA PIEUP +0xB79F 0xD1CE #HANGUL SYLLABLE THIEUTH WA PIEUPSIOS +0xB7A0 0xD1CF #HANGUL SYLLABLE THIEUTH WA SIOS +0xB7A1 0xB798 #HANGUL SYLLABLE RIEUL AE +0xB7A2 0xB799 #HANGUL SYLLABLE RIEUL AE KIYEOK +0xB7A3 0xB79C #HANGUL SYLLABLE RIEUL AE NIEUN +0xB7A4 0xB7A0 #HANGUL SYLLABLE RIEUL AE RIEUL +0xB7A5 0xB7A8 #HANGUL SYLLABLE RIEUL AE MIEUM +0xB7A6 0xB7A9 #HANGUL SYLLABLE RIEUL AE PIEUP +0xB7A7 0xB7AB #HANGUL SYLLABLE RIEUL AE SIOS +0xB7A8 0xB7AC #HANGUL SYLLABLE RIEUL AE SSANGSIOS +0xB7A9 0xB7AD #HANGUL SYLLABLE RIEUL AE IEUNG +0xB7AA 0xB7B4 #HANGUL SYLLABLE RIEUL YA +0xB7AB 0xB7B5 #HANGUL SYLLABLE RIEUL YA KIYEOK +0xB7AC 0xB7B8 #HANGUL SYLLABLE RIEUL YA NIEUN +0xB7AD 0xB7C7 #HANGUL SYLLABLE RIEUL YA SIOS +0xB7AE 0xB7C9 #HANGUL SYLLABLE RIEUL YA IEUNG +0xB7AF 0xB7EC #HANGUL SYLLABLE RIEUL EO +0xB7B0 0xB7ED #HANGUL SYLLABLE RIEUL EO KIYEOK +0xB7B1 0xB7F0 #HANGUL SYLLABLE RIEUL EO NIEUN +0xB7B2 0xB7F4 #HANGUL SYLLABLE RIEUL EO RIEUL +0xB7B3 0xB7FC #HANGUL SYLLABLE RIEUL EO MIEUM +0xB7B4 0xB7FD #HANGUL SYLLABLE RIEUL EO PIEUP +0xB7B5 0xB7FF #HANGUL SYLLABLE RIEUL EO SIOS +0xB7B6 0xB800 #HANGUL SYLLABLE RIEUL EO SSANGSIOS +0xB7B7 0xB801 #HANGUL SYLLABLE RIEUL EO IEUNG +0xB7B8 0xB807 #HANGUL SYLLABLE RIEUL EO HIEUH +0xB7B9 0xB808 #HANGUL SYLLABLE RIEUL E +0xB7BA 0xB809 #HANGUL SYLLABLE RIEUL E KIYEOK +0xB7BB 0xB80C #HANGUL SYLLABLE RIEUL E NIEUN +0xB7BC 0xB810 #HANGUL SYLLABLE RIEUL E RIEUL +0xB7BD 0xB818 #HANGUL SYLLABLE RIEUL E MIEUM +0xB7BE 0xB819 #HANGUL SYLLABLE RIEUL E PIEUP +0xB7BF 0xB81B #HANGUL SYLLABLE RIEUL E SIOS +0xB7C0 0xB81D #HANGUL SYLLABLE RIEUL E IEUNG +0xB7C1 0xB824 #HANGUL SYLLABLE RIEUL YEO +0xB7C2 0xB825 #HANGUL SYLLABLE RIEUL YEO KIYEOK +0xB7C3 0xB828 #HANGUL SYLLABLE RIEUL YEO NIEUN +0xB7C4 0xB82C #HANGUL SYLLABLE RIEUL YEO RIEUL +0xB7C5 0xB834 #HANGUL SYLLABLE RIEUL YEO MIEUM +0xB7C6 0xB835 #HANGUL SYLLABLE RIEUL YEO PIEUP +0xB7C7 0xB837 #HANGUL SYLLABLE RIEUL YEO SIOS +0xB7C8 0xB838 #HANGUL SYLLABLE RIEUL YEO SSANGSIOS +0xB7C9 0xB839 #HANGUL SYLLABLE RIEUL YEO IEUNG +0xB7CA 0xB840 #HANGUL SYLLABLE RIEUL YE +0xB7CB 0xB844 #HANGUL SYLLABLE RIEUL YE NIEUN +0xB7CC 0xB851 #HANGUL SYLLABLE RIEUL YE PIEUP +0xB7CD 0xB853 #HANGUL SYLLABLE RIEUL YE SIOS +0xB7CE 0xB85C #HANGUL SYLLABLE RIEUL O +0xB7CF 0xB85D #HANGUL SYLLABLE RIEUL O KIYEOK +0xB7D0 0xB860 #HANGUL SYLLABLE RIEUL O NIEUN +0xB7D1 0xB864 #HANGUL SYLLABLE RIEUL O RIEUL +0xB7D2 0xB86C #HANGUL SYLLABLE RIEUL O MIEUM +0xB7D3 0xB86D #HANGUL SYLLABLE RIEUL O PIEUP +0xB7D4 0xB86F #HANGUL SYLLABLE RIEUL O SIOS +0xB7D5 0xB871 #HANGUL SYLLABLE RIEUL O IEUNG +0xB7D6 0xB878 #HANGUL SYLLABLE RIEUL WA +0xB7D7 0xB87C #HANGUL SYLLABLE RIEUL WA NIEUN +0xB7D8 0xB88D #HANGUL SYLLABLE RIEUL WA IEUNG +0xB7D9 0xB8A8 #HANGUL SYLLABLE RIEUL WAE SSANGSIOS +0xB7DA 0xB8B0 #HANGUL SYLLABLE RIEUL OE +0xB7DB 0xB8B4 #HANGUL SYLLABLE RIEUL OE NIEUN +0xB7DC 0xB8B8 #HANGUL SYLLABLE RIEUL OE RIEUL +0xB7DD 0xB8C0 #HANGUL SYLLABLE RIEUL OE MIEUM +0xB7DE 0xB8C1 #HANGUL SYLLABLE RIEUL OE PIEUP +0xB7DF 0xB8C3 #HANGUL SYLLABLE RIEUL OE SIOS +0xB7E0 0xB8C5 #HANGUL SYLLABLE RIEUL OE IEUNG +0xB7E1 0xB8CC #HANGUL SYLLABLE RIEUL YO +0xB7E2 0xB8D0 #HANGUL SYLLABLE RIEUL YO NIEUN +0xB7E3 0xB8D4 #HANGUL SYLLABLE RIEUL YO RIEUL +0xB7E4 0xB8DD #HANGUL SYLLABLE RIEUL YO PIEUP +0xB7E5 0xB8DF #HANGUL SYLLABLE RIEUL YO SIOS +0xB7E6 0xB8E1 #HANGUL SYLLABLE RIEUL YO IEUNG +0xB7E7 0xB8E8 #HANGUL SYLLABLE RIEUL U +0xB7E8 0xB8E9 #HANGUL SYLLABLE RIEUL U KIYEOK +0xB7E9 0xB8EC #HANGUL SYLLABLE RIEUL U NIEUN +0xB7EA 0xB8F0 #HANGUL SYLLABLE RIEUL U RIEUL +0xB7EB 0xB8F8 #HANGUL SYLLABLE RIEUL U MIEUM +0xB7EC 0xB8F9 #HANGUL SYLLABLE RIEUL U PIEUP +0xB7ED 0xB8FB #HANGUL SYLLABLE RIEUL U SIOS +0xB7EE 0xB8FD #HANGUL SYLLABLE RIEUL U IEUNG +0xB7EF 0xB904 #HANGUL SYLLABLE RIEUL WEO +0xB7F0 0xB918 #HANGUL SYLLABLE RIEUL WEO SSANGSIOS +0xB7F1 0xB920 #HANGUL SYLLABLE RIEUL WE +0xB7F2 0xB93C #HANGUL SYLLABLE RIEUL WI +0xB7F3 0xB93D #HANGUL SYLLABLE RIEUL WI KIYEOK +0xB7F4 0xB940 #HANGUL SYLLABLE RIEUL WI NIEUN +0xB7F5 0xB944 #HANGUL SYLLABLE RIEUL WI RIEUL +0xB7F6 0xB94C #HANGUL SYLLABLE RIEUL WI MIEUM +0xB7F7 0xB94F #HANGUL SYLLABLE RIEUL WI SIOS +0xB7F8 0xB951 #HANGUL SYLLABLE RIEUL WI IEUNG +0xB7F9 0xB958 #HANGUL SYLLABLE RIEUL YU +0xB7FA 0xB959 #HANGUL SYLLABLE RIEUL YU KIYEOK +0xB7FB 0xB95C #HANGUL SYLLABLE RIEUL YU NIEUN +0xB7FC 0xB960 #HANGUL SYLLABLE RIEUL YU RIEUL +0xB7FD 0xB968 #HANGUL SYLLABLE RIEUL YU MIEUM +0xB7FE 0xB969 #HANGUL SYLLABLE RIEUL YU PIEUP +0xB841 0xD1D0 #HANGUL SYLLABLE THIEUTH WA SSANGSIOS +0xB842 0xD1D1 #HANGUL SYLLABLE THIEUTH WA IEUNG +0xB843 0xD1D2 #HANGUL SYLLABLE THIEUTH WA CIEUC +0xB844 0xD1D3 #HANGUL SYLLABLE THIEUTH WA CHIEUCH +0xB845 0xD1D4 #HANGUL SYLLABLE THIEUTH WA KHIEUKH +0xB846 0xD1D5 #HANGUL SYLLABLE THIEUTH WA THIEUTH +0xB847 0xD1D6 #HANGUL SYLLABLE THIEUTH WA PHIEUPH +0xB848 0xD1D7 #HANGUL SYLLABLE THIEUTH WA HIEUH +0xB849 0xD1D9 #HANGUL SYLLABLE THIEUTH WAE KIYEOK +0xB84A 0xD1DA #HANGUL SYLLABLE THIEUTH WAE SSANGKIYEOK +0xB84B 0xD1DB #HANGUL SYLLABLE THIEUTH WAE KIYEOKSIOS +0xB84C 0xD1DC #HANGUL SYLLABLE THIEUTH WAE NIEUN +0xB84D 0xD1DD #HANGUL SYLLABLE THIEUTH WAE NIEUNCIEUC +0xB84E 0xD1DE #HANGUL SYLLABLE THIEUTH WAE NIEUNHIEUH +0xB84F 0xD1DF #HANGUL SYLLABLE THIEUTH WAE TIKEUT +0xB850 0xD1E0 #HANGUL SYLLABLE THIEUTH WAE RIEUL +0xB851 0xD1E1 #HANGUL SYLLABLE THIEUTH WAE RIEULKIYEOK +0xB852 0xD1E2 #HANGUL SYLLABLE THIEUTH WAE RIEULMIEUM +0xB853 0xD1E3 #HANGUL SYLLABLE THIEUTH WAE RIEULPIEUP +0xB854 0xD1E4 #HANGUL SYLLABLE THIEUTH WAE RIEULSIOS +0xB855 0xD1E5 #HANGUL SYLLABLE THIEUTH WAE RIEULTHIEUTH +0xB856 0xD1E6 #HANGUL SYLLABLE THIEUTH WAE RIEULPHIEUPH +0xB857 0xD1E7 #HANGUL SYLLABLE THIEUTH WAE RIEULHIEUH +0xB858 0xD1E8 #HANGUL SYLLABLE THIEUTH WAE MIEUM +0xB859 0xD1E9 #HANGUL SYLLABLE THIEUTH WAE PIEUP +0xB85A 0xD1EA #HANGUL SYLLABLE THIEUTH WAE PIEUPSIOS +0xB861 0xD1EB #HANGUL SYLLABLE THIEUTH WAE SIOS +0xB862 0xD1EC #HANGUL SYLLABLE THIEUTH WAE SSANGSIOS +0xB863 0xD1ED #HANGUL SYLLABLE THIEUTH WAE IEUNG +0xB864 0xD1EE #HANGUL SYLLABLE THIEUTH WAE CIEUC +0xB865 0xD1EF #HANGUL SYLLABLE THIEUTH WAE CHIEUCH +0xB866 0xD1F0 #HANGUL SYLLABLE THIEUTH WAE KHIEUKH +0xB867 0xD1F1 #HANGUL SYLLABLE THIEUTH WAE THIEUTH +0xB868 0xD1F2 #HANGUL SYLLABLE THIEUTH WAE PHIEUPH +0xB869 0xD1F3 #HANGUL SYLLABLE THIEUTH WAE HIEUH +0xB86A 0xD1F5 #HANGUL SYLLABLE THIEUTH OE KIYEOK +0xB86B 0xD1F6 #HANGUL SYLLABLE THIEUTH OE SSANGKIYEOK +0xB86C 0xD1F7 #HANGUL SYLLABLE THIEUTH OE KIYEOKSIOS +0xB86D 0xD1F9 #HANGUL SYLLABLE THIEUTH OE NIEUNCIEUC +0xB86E 0xD1FA #HANGUL SYLLABLE THIEUTH OE NIEUNHIEUH +0xB86F 0xD1FB #HANGUL SYLLABLE THIEUTH OE TIKEUT +0xB870 0xD1FC #HANGUL SYLLABLE THIEUTH OE RIEUL +0xB871 0xD1FD #HANGUL SYLLABLE THIEUTH OE RIEULKIYEOK +0xB872 0xD1FE #HANGUL SYLLABLE THIEUTH OE RIEULMIEUM +0xB873 0xD1FF #HANGUL SYLLABLE THIEUTH OE RIEULPIEUP +0xB874 0xD200 #HANGUL SYLLABLE THIEUTH OE RIEULSIOS +0xB875 0xD201 #HANGUL SYLLABLE THIEUTH OE RIEULTHIEUTH +0xB876 0xD202 #HANGUL SYLLABLE THIEUTH OE RIEULPHIEUPH +0xB877 0xD203 #HANGUL SYLLABLE THIEUTH OE RIEULHIEUH +0xB878 0xD204 #HANGUL SYLLABLE THIEUTH OE MIEUM +0xB879 0xD205 #HANGUL SYLLABLE THIEUTH OE PIEUP +0xB87A 0xD206 #HANGUL SYLLABLE THIEUTH OE PIEUPSIOS +0xB881 0xD208 #HANGUL SYLLABLE THIEUTH OE SSANGSIOS +0xB882 0xD20A #HANGUL SYLLABLE THIEUTH OE CIEUC +0xB883 0xD20B #HANGUL SYLLABLE THIEUTH OE CHIEUCH +0xB884 0xD20C #HANGUL SYLLABLE THIEUTH OE KHIEUKH +0xB885 0xD20D #HANGUL SYLLABLE THIEUTH OE THIEUTH +0xB886 0xD20E #HANGUL SYLLABLE THIEUTH OE PHIEUPH +0xB887 0xD20F #HANGUL SYLLABLE THIEUTH OE HIEUH +0xB888 0xD211 #HANGUL SYLLABLE THIEUTH YO KIYEOK +0xB889 0xD212 #HANGUL SYLLABLE THIEUTH YO SSANGKIYEOK +0xB88A 0xD213 #HANGUL SYLLABLE THIEUTH YO KIYEOKSIOS +0xB88B 0xD214 #HANGUL SYLLABLE THIEUTH YO NIEUN +0xB88C 0xD215 #HANGUL SYLLABLE THIEUTH YO NIEUNCIEUC +0xB88D 0xD216 #HANGUL SYLLABLE THIEUTH YO NIEUNHIEUH +0xB88E 0xD217 #HANGUL SYLLABLE THIEUTH YO TIKEUT +0xB88F 0xD218 #HANGUL SYLLABLE THIEUTH YO RIEUL +0xB890 0xD219 #HANGUL SYLLABLE THIEUTH YO RIEULKIYEOK +0xB891 0xD21A #HANGUL SYLLABLE THIEUTH YO RIEULMIEUM +0xB892 0xD21B #HANGUL SYLLABLE THIEUTH YO RIEULPIEUP +0xB893 0xD21C #HANGUL SYLLABLE THIEUTH YO RIEULSIOS +0xB894 0xD21D #HANGUL SYLLABLE THIEUTH YO RIEULTHIEUTH +0xB895 0xD21E #HANGUL SYLLABLE THIEUTH YO RIEULPHIEUPH +0xB896 0xD21F #HANGUL SYLLABLE THIEUTH YO RIEULHIEUH +0xB897 0xD220 #HANGUL SYLLABLE THIEUTH YO MIEUM +0xB898 0xD221 #HANGUL SYLLABLE THIEUTH YO PIEUP +0xB899 0xD222 #HANGUL SYLLABLE THIEUTH YO PIEUPSIOS +0xB89A 0xD223 #HANGUL SYLLABLE THIEUTH YO SIOS +0xB89B 0xD224 #HANGUL SYLLABLE THIEUTH YO SSANGSIOS +0xB89C 0xD225 #HANGUL SYLLABLE THIEUTH YO IEUNG +0xB89D 0xD226 #HANGUL SYLLABLE THIEUTH YO CIEUC +0xB89E 0xD227 #HANGUL SYLLABLE THIEUTH YO CHIEUCH +0xB89F 0xD228 #HANGUL SYLLABLE THIEUTH YO KHIEUKH +0xB8A0 0xD229 #HANGUL SYLLABLE THIEUTH YO THIEUTH +0xB8A1 0xB96B #HANGUL SYLLABLE RIEUL YU SIOS +0xB8A2 0xB96D #HANGUL SYLLABLE RIEUL YU IEUNG +0xB8A3 0xB974 #HANGUL SYLLABLE RIEUL EU +0xB8A4 0xB975 #HANGUL SYLLABLE RIEUL EU KIYEOK +0xB8A5 0xB978 #HANGUL SYLLABLE RIEUL EU NIEUN +0xB8A6 0xB97C #HANGUL SYLLABLE RIEUL EU RIEUL +0xB8A7 0xB984 #HANGUL SYLLABLE RIEUL EU MIEUM +0xB8A8 0xB985 #HANGUL SYLLABLE RIEUL EU PIEUP +0xB8A9 0xB987 #HANGUL SYLLABLE RIEUL EU SIOS +0xB8AA 0xB989 #HANGUL SYLLABLE RIEUL EU IEUNG +0xB8AB 0xB98A #HANGUL SYLLABLE RIEUL EU CIEUC +0xB8AC 0xB98D #HANGUL SYLLABLE RIEUL EU THIEUTH +0xB8AD 0xB98E #HANGUL SYLLABLE RIEUL EU PHIEUPH +0xB8AE 0xB9AC #HANGUL SYLLABLE RIEUL I +0xB8AF 0xB9AD #HANGUL SYLLABLE RIEUL I KIYEOK +0xB8B0 0xB9B0 #HANGUL SYLLABLE RIEUL I NIEUN +0xB8B1 0xB9B4 #HANGUL SYLLABLE RIEUL I RIEUL +0xB8B2 0xB9BC #HANGUL SYLLABLE RIEUL I MIEUM +0xB8B3 0xB9BD #HANGUL SYLLABLE RIEUL I PIEUP +0xB8B4 0xB9BF #HANGUL SYLLABLE RIEUL I SIOS +0xB8B5 0xB9C1 #HANGUL SYLLABLE RIEUL I IEUNG +0xB8B6 0xB9C8 #HANGUL SYLLABLE MIEUM A +0xB8B7 0xB9C9 #HANGUL SYLLABLE MIEUM A KIYEOK +0xB8B8 0xB9CC #HANGUL SYLLABLE MIEUM A NIEUN +0xB8B9 0xB9CE #HANGUL SYLLABLE MIEUM A NIEUNHIEUH +0xB8BA 0xB9CF #HANGUL SYLLABLE MIEUM A TIKEUT +0xB8BB 0xB9D0 #HANGUL SYLLABLE MIEUM A RIEUL +0xB8BC 0xB9D1 #HANGUL SYLLABLE MIEUM A RIEULKIYEOK +0xB8BD 0xB9D2 #HANGUL SYLLABLE MIEUM A RIEULMIEUM +0xB8BE 0xB9D8 #HANGUL SYLLABLE MIEUM A MIEUM +0xB8BF 0xB9D9 #HANGUL SYLLABLE MIEUM A PIEUP +0xB8C0 0xB9DB #HANGUL SYLLABLE MIEUM A SIOS +0xB8C1 0xB9DD #HANGUL SYLLABLE MIEUM A IEUNG +0xB8C2 0xB9DE #HANGUL SYLLABLE MIEUM A CIEUC +0xB8C3 0xB9E1 #HANGUL SYLLABLE MIEUM A THIEUTH +0xB8C4 0xB9E3 #HANGUL SYLLABLE MIEUM A HIEUH +0xB8C5 0xB9E4 #HANGUL SYLLABLE MIEUM AE +0xB8C6 0xB9E5 #HANGUL SYLLABLE MIEUM AE KIYEOK +0xB8C7 0xB9E8 #HANGUL SYLLABLE MIEUM AE NIEUN +0xB8C8 0xB9EC #HANGUL SYLLABLE MIEUM AE RIEUL +0xB8C9 0xB9F4 #HANGUL SYLLABLE MIEUM AE MIEUM +0xB8CA 0xB9F5 #HANGUL SYLLABLE MIEUM AE PIEUP +0xB8CB 0xB9F7 #HANGUL SYLLABLE MIEUM AE SIOS +0xB8CC 0xB9F8 #HANGUL SYLLABLE MIEUM AE SSANGSIOS +0xB8CD 0xB9F9 #HANGUL SYLLABLE MIEUM AE IEUNG +0xB8CE 0xB9FA #HANGUL SYLLABLE MIEUM AE CIEUC +0xB8CF 0xBA00 #HANGUL SYLLABLE MIEUM YA +0xB8D0 0xBA01 #HANGUL SYLLABLE MIEUM YA KIYEOK +0xB8D1 0xBA08 #HANGUL SYLLABLE MIEUM YA RIEUL +0xB8D2 0xBA15 #HANGUL SYLLABLE MIEUM YA IEUNG +0xB8D3 0xBA38 #HANGUL SYLLABLE MIEUM EO +0xB8D4 0xBA39 #HANGUL SYLLABLE MIEUM EO KIYEOK +0xB8D5 0xBA3C #HANGUL SYLLABLE MIEUM EO NIEUN +0xB8D6 0xBA40 #HANGUL SYLLABLE MIEUM EO RIEUL +0xB8D7 0xBA42 #HANGUL SYLLABLE MIEUM EO RIEULMIEUM +0xB8D8 0xBA48 #HANGUL SYLLABLE MIEUM EO MIEUM +0xB8D9 0xBA49 #HANGUL SYLLABLE MIEUM EO PIEUP +0xB8DA 0xBA4B #HANGUL SYLLABLE MIEUM EO SIOS +0xB8DB 0xBA4D #HANGUL SYLLABLE MIEUM EO IEUNG +0xB8DC 0xBA4E #HANGUL SYLLABLE MIEUM EO CIEUC +0xB8DD 0xBA53 #HANGUL SYLLABLE MIEUM EO HIEUH +0xB8DE 0xBA54 #HANGUL SYLLABLE MIEUM E +0xB8DF 0xBA55 #HANGUL SYLLABLE MIEUM E KIYEOK +0xB8E0 0xBA58 #HANGUL SYLLABLE MIEUM E NIEUN +0xB8E1 0xBA5C #HANGUL SYLLABLE MIEUM E RIEUL +0xB8E2 0xBA64 #HANGUL SYLLABLE MIEUM E MIEUM +0xB8E3 0xBA65 #HANGUL SYLLABLE MIEUM E PIEUP +0xB8E4 0xBA67 #HANGUL SYLLABLE MIEUM E SIOS +0xB8E5 0xBA68 #HANGUL SYLLABLE MIEUM E SSANGSIOS +0xB8E6 0xBA69 #HANGUL SYLLABLE MIEUM E IEUNG +0xB8E7 0xBA70 #HANGUL SYLLABLE MIEUM YEO +0xB8E8 0xBA71 #HANGUL SYLLABLE MIEUM YEO KIYEOK +0xB8E9 0xBA74 #HANGUL SYLLABLE MIEUM YEO NIEUN +0xB8EA 0xBA78 #HANGUL SYLLABLE MIEUM YEO RIEUL +0xB8EB 0xBA83 #HANGUL SYLLABLE MIEUM YEO SIOS +0xB8EC 0xBA84 #HANGUL SYLLABLE MIEUM YEO SSANGSIOS +0xB8ED 0xBA85 #HANGUL SYLLABLE MIEUM YEO IEUNG +0xB8EE 0xBA87 #HANGUL SYLLABLE MIEUM YEO CHIEUCH +0xB8EF 0xBA8C #HANGUL SYLLABLE MIEUM YE +0xB8F0 0xBAA8 #HANGUL SYLLABLE MIEUM O +0xB8F1 0xBAA9 #HANGUL SYLLABLE MIEUM O KIYEOK +0xB8F2 0xBAAB #HANGUL SYLLABLE MIEUM O KIYEOKSIOS +0xB8F3 0xBAAC #HANGUL SYLLABLE MIEUM O NIEUN +0xB8F4 0xBAB0 #HANGUL SYLLABLE MIEUM O RIEUL +0xB8F5 0xBAB2 #HANGUL SYLLABLE MIEUM O RIEULMIEUM +0xB8F6 0xBAB8 #HANGUL SYLLABLE MIEUM O MIEUM +0xB8F7 0xBAB9 #HANGUL SYLLABLE MIEUM O PIEUP +0xB8F8 0xBABB #HANGUL SYLLABLE MIEUM O SIOS +0xB8F9 0xBABD #HANGUL SYLLABLE MIEUM O IEUNG +0xB8FA 0xBAC4 #HANGUL SYLLABLE MIEUM WA +0xB8FB 0xBAC8 #HANGUL SYLLABLE MIEUM WA NIEUN +0xB8FC 0xBAD8 #HANGUL SYLLABLE MIEUM WA SSANGSIOS +0xB8FD 0xBAD9 #HANGUL SYLLABLE MIEUM WA IEUNG +0xB8FE 0xBAFC #HANGUL SYLLABLE MIEUM OE +0xB941 0xD22A #HANGUL SYLLABLE THIEUTH YO PHIEUPH +0xB942 0xD22B #HANGUL SYLLABLE THIEUTH YO HIEUH +0xB943 0xD22E #HANGUL SYLLABLE THIEUTH U SSANGKIYEOK +0xB944 0xD22F #HANGUL SYLLABLE THIEUTH U KIYEOKSIOS +0xB945 0xD231 #HANGUL SYLLABLE THIEUTH U NIEUNCIEUC +0xB946 0xD232 #HANGUL SYLLABLE THIEUTH U NIEUNHIEUH +0xB947 0xD233 #HANGUL SYLLABLE THIEUTH U TIKEUT +0xB948 0xD235 #HANGUL SYLLABLE THIEUTH U RIEULKIYEOK +0xB949 0xD236 #HANGUL SYLLABLE THIEUTH U RIEULMIEUM +0xB94A 0xD237 #HANGUL SYLLABLE THIEUTH U RIEULPIEUP +0xB94B 0xD238 #HANGUL SYLLABLE THIEUTH U RIEULSIOS +0xB94C 0xD239 #HANGUL SYLLABLE THIEUTH U RIEULTHIEUTH +0xB94D 0xD23A #HANGUL SYLLABLE THIEUTH U RIEULPHIEUPH +0xB94E 0xD23B #HANGUL SYLLABLE THIEUTH U RIEULHIEUH +0xB94F 0xD23E #HANGUL SYLLABLE THIEUTH U PIEUPSIOS +0xB950 0xD240 #HANGUL SYLLABLE THIEUTH U SSANGSIOS +0xB951 0xD242 #HANGUL SYLLABLE THIEUTH U CIEUC +0xB952 0xD243 #HANGUL SYLLABLE THIEUTH U CHIEUCH +0xB953 0xD244 #HANGUL SYLLABLE THIEUTH U KHIEUKH +0xB954 0xD245 #HANGUL SYLLABLE THIEUTH U THIEUTH +0xB955 0xD246 #HANGUL SYLLABLE THIEUTH U PHIEUPH +0xB956 0xD247 #HANGUL SYLLABLE THIEUTH U HIEUH +0xB957 0xD249 #HANGUL SYLLABLE THIEUTH WEO KIYEOK +0xB958 0xD24A #HANGUL SYLLABLE THIEUTH WEO SSANGKIYEOK +0xB959 0xD24B #HANGUL SYLLABLE THIEUTH WEO KIYEOKSIOS +0xB95A 0xD24C #HANGUL SYLLABLE THIEUTH WEO NIEUN +0xB961 0xD24D #HANGUL SYLLABLE THIEUTH WEO NIEUNCIEUC +0xB962 0xD24E #HANGUL SYLLABLE THIEUTH WEO NIEUNHIEUH +0xB963 0xD24F #HANGUL SYLLABLE THIEUTH WEO TIKEUT +0xB964 0xD250 #HANGUL SYLLABLE THIEUTH WEO RIEUL +0xB965 0xD251 #HANGUL SYLLABLE THIEUTH WEO RIEULKIYEOK +0xB966 0xD252 #HANGUL SYLLABLE THIEUTH WEO RIEULMIEUM +0xB967 0xD253 #HANGUL SYLLABLE THIEUTH WEO RIEULPIEUP +0xB968 0xD254 #HANGUL SYLLABLE THIEUTH WEO RIEULSIOS +0xB969 0xD255 #HANGUL SYLLABLE THIEUTH WEO RIEULTHIEUTH +0xB96A 0xD256 #HANGUL SYLLABLE THIEUTH WEO RIEULPHIEUPH +0xB96B 0xD257 #HANGUL SYLLABLE THIEUTH WEO RIEULHIEUH +0xB96C 0xD258 #HANGUL SYLLABLE THIEUTH WEO MIEUM +0xB96D 0xD259 #HANGUL SYLLABLE THIEUTH WEO PIEUP +0xB96E 0xD25A #HANGUL SYLLABLE THIEUTH WEO PIEUPSIOS +0xB96F 0xD25B #HANGUL SYLLABLE THIEUTH WEO SIOS +0xB970 0xD25D #HANGUL SYLLABLE THIEUTH WEO IEUNG +0xB971 0xD25E #HANGUL SYLLABLE THIEUTH WEO CIEUC +0xB972 0xD25F #HANGUL SYLLABLE THIEUTH WEO CHIEUCH +0xB973 0xD260 #HANGUL SYLLABLE THIEUTH WEO KHIEUKH +0xB974 0xD261 #HANGUL SYLLABLE THIEUTH WEO THIEUTH +0xB975 0xD262 #HANGUL SYLLABLE THIEUTH WEO PHIEUPH +0xB976 0xD263 #HANGUL SYLLABLE THIEUTH WEO HIEUH +0xB977 0xD265 #HANGUL SYLLABLE THIEUTH WE KIYEOK +0xB978 0xD266 #HANGUL SYLLABLE THIEUTH WE SSANGKIYEOK +0xB979 0xD267 #HANGUL SYLLABLE THIEUTH WE KIYEOKSIOS +0xB97A 0xD268 #HANGUL SYLLABLE THIEUTH WE NIEUN +0xB981 0xD269 #HANGUL SYLLABLE THIEUTH WE NIEUNCIEUC +0xB982 0xD26A #HANGUL SYLLABLE THIEUTH WE NIEUNHIEUH +0xB983 0xD26B #HANGUL SYLLABLE THIEUTH WE TIKEUT +0xB984 0xD26C #HANGUL SYLLABLE THIEUTH WE RIEUL +0xB985 0xD26D #HANGUL SYLLABLE THIEUTH WE RIEULKIYEOK +0xB986 0xD26E #HANGUL SYLLABLE THIEUTH WE RIEULMIEUM +0xB987 0xD26F #HANGUL SYLLABLE THIEUTH WE RIEULPIEUP +0xB988 0xD270 #HANGUL SYLLABLE THIEUTH WE RIEULSIOS +0xB989 0xD271 #HANGUL SYLLABLE THIEUTH WE RIEULTHIEUTH +0xB98A 0xD272 #HANGUL SYLLABLE THIEUTH WE RIEULPHIEUPH +0xB98B 0xD273 #HANGUL SYLLABLE THIEUTH WE RIEULHIEUH +0xB98C 0xD274 #HANGUL SYLLABLE THIEUTH WE MIEUM +0xB98D 0xD275 #HANGUL SYLLABLE THIEUTH WE PIEUP +0xB98E 0xD276 #HANGUL SYLLABLE THIEUTH WE PIEUPSIOS +0xB98F 0xD277 #HANGUL SYLLABLE THIEUTH WE SIOS +0xB990 0xD278 #HANGUL SYLLABLE THIEUTH WE SSANGSIOS +0xB991 0xD279 #HANGUL SYLLABLE THIEUTH WE IEUNG +0xB992 0xD27A #HANGUL SYLLABLE THIEUTH WE CIEUC +0xB993 0xD27B #HANGUL SYLLABLE THIEUTH WE CHIEUCH +0xB994 0xD27C #HANGUL SYLLABLE THIEUTH WE KHIEUKH +0xB995 0xD27D #HANGUL SYLLABLE THIEUTH WE THIEUTH +0xB996 0xD27E #HANGUL SYLLABLE THIEUTH WE PHIEUPH +0xB997 0xD27F #HANGUL SYLLABLE THIEUTH WE HIEUH +0xB998 0xD282 #HANGUL SYLLABLE THIEUTH WI SSANGKIYEOK +0xB999 0xD283 #HANGUL SYLLABLE THIEUTH WI KIYEOKSIOS +0xB99A 0xD285 #HANGUL SYLLABLE THIEUTH WI NIEUNCIEUC +0xB99B 0xD286 #HANGUL SYLLABLE THIEUTH WI NIEUNHIEUH +0xB99C 0xD287 #HANGUL SYLLABLE THIEUTH WI TIKEUT +0xB99D 0xD289 #HANGUL SYLLABLE THIEUTH WI RIEULKIYEOK +0xB99E 0xD28A #HANGUL SYLLABLE THIEUTH WI RIEULMIEUM +0xB99F 0xD28B #HANGUL SYLLABLE THIEUTH WI RIEULPIEUP +0xB9A0 0xD28C #HANGUL SYLLABLE THIEUTH WI RIEULSIOS +0xB9A1 0xBB00 #HANGUL SYLLABLE MIEUM OE NIEUN +0xB9A2 0xBB04 #HANGUL SYLLABLE MIEUM OE RIEUL +0xB9A3 0xBB0D #HANGUL SYLLABLE MIEUM OE PIEUP +0xB9A4 0xBB0F #HANGUL SYLLABLE MIEUM OE SIOS +0xB9A5 0xBB11 #HANGUL SYLLABLE MIEUM OE IEUNG +0xB9A6 0xBB18 #HANGUL SYLLABLE MIEUM YO +0xB9A7 0xBB1C #HANGUL SYLLABLE MIEUM YO NIEUN +0xB9A8 0xBB20 #HANGUL SYLLABLE MIEUM YO RIEUL +0xB9A9 0xBB29 #HANGUL SYLLABLE MIEUM YO PIEUP +0xB9AA 0xBB2B #HANGUL SYLLABLE MIEUM YO SIOS +0xB9AB 0xBB34 #HANGUL SYLLABLE MIEUM U +0xB9AC 0xBB35 #HANGUL SYLLABLE MIEUM U KIYEOK +0xB9AD 0xBB36 #HANGUL SYLLABLE MIEUM U SSANGKIYEOK +0xB9AE 0xBB38 #HANGUL SYLLABLE MIEUM U NIEUN +0xB9AF 0xBB3B #HANGUL SYLLABLE MIEUM U TIKEUT +0xB9B0 0xBB3C #HANGUL SYLLABLE MIEUM U RIEUL +0xB9B1 0xBB3D #HANGUL SYLLABLE MIEUM U RIEULKIYEOK +0xB9B2 0xBB3E #HANGUL SYLLABLE MIEUM U RIEULMIEUM +0xB9B3 0xBB44 #HANGUL SYLLABLE MIEUM U MIEUM +0xB9B4 0xBB45 #HANGUL SYLLABLE MIEUM U PIEUP +0xB9B5 0xBB47 #HANGUL SYLLABLE MIEUM U SIOS +0xB9B6 0xBB49 #HANGUL SYLLABLE MIEUM U IEUNG +0xB9B7 0xBB4D #HANGUL SYLLABLE MIEUM U THIEUTH +0xB9B8 0xBB4F #HANGUL SYLLABLE MIEUM U HIEUH +0xB9B9 0xBB50 #HANGUL SYLLABLE MIEUM WEO +0xB9BA 0xBB54 #HANGUL SYLLABLE MIEUM WEO NIEUN +0xB9BB 0xBB58 #HANGUL SYLLABLE MIEUM WEO RIEUL +0xB9BC 0xBB61 #HANGUL SYLLABLE MIEUM WEO PIEUP +0xB9BD 0xBB63 #HANGUL SYLLABLE MIEUM WEO SIOS +0xB9BE 0xBB6C #HANGUL SYLLABLE MIEUM WE +0xB9BF 0xBB88 #HANGUL SYLLABLE MIEUM WI +0xB9C0 0xBB8C #HANGUL SYLLABLE MIEUM WI NIEUN +0xB9C1 0xBB90 #HANGUL SYLLABLE MIEUM WI RIEUL +0xB9C2 0xBBA4 #HANGUL SYLLABLE MIEUM YU +0xB9C3 0xBBA8 #HANGUL SYLLABLE MIEUM YU NIEUN +0xB9C4 0xBBAC #HANGUL SYLLABLE MIEUM YU RIEUL +0xB9C5 0xBBB4 #HANGUL SYLLABLE MIEUM YU MIEUM +0xB9C6 0xBBB7 #HANGUL SYLLABLE MIEUM YU SIOS +0xB9C7 0xBBC0 #HANGUL SYLLABLE MIEUM EU +0xB9C8 0xBBC4 #HANGUL SYLLABLE MIEUM EU NIEUN +0xB9C9 0xBBC8 #HANGUL SYLLABLE MIEUM EU RIEUL +0xB9CA 0xBBD0 #HANGUL SYLLABLE MIEUM EU MIEUM +0xB9CB 0xBBD3 #HANGUL SYLLABLE MIEUM EU SIOS +0xB9CC 0xBBF8 #HANGUL SYLLABLE MIEUM I +0xB9CD 0xBBF9 #HANGUL SYLLABLE MIEUM I KIYEOK +0xB9CE 0xBBFC #HANGUL SYLLABLE MIEUM I NIEUN +0xB9CF 0xBBFF #HANGUL SYLLABLE MIEUM I TIKEUT +0xB9D0 0xBC00 #HANGUL SYLLABLE MIEUM I RIEUL +0xB9D1 0xBC02 #HANGUL SYLLABLE MIEUM I RIEULMIEUM +0xB9D2 0xBC08 #HANGUL SYLLABLE MIEUM I MIEUM +0xB9D3 0xBC09 #HANGUL SYLLABLE MIEUM I PIEUP +0xB9D4 0xBC0B #HANGUL SYLLABLE MIEUM I SIOS +0xB9D5 0xBC0C #HANGUL SYLLABLE MIEUM I SSANGSIOS +0xB9D6 0xBC0D #HANGUL SYLLABLE MIEUM I IEUNG +0xB9D7 0xBC0F #HANGUL SYLLABLE MIEUM I CHIEUCH +0xB9D8 0xBC11 #HANGUL SYLLABLE MIEUM I THIEUTH +0xB9D9 0xBC14 #HANGUL SYLLABLE PIEUP A +0xB9DA 0xBC15 #HANGUL SYLLABLE PIEUP A KIYEOK +0xB9DB 0xBC16 #HANGUL SYLLABLE PIEUP A SSANGKIYEOK +0xB9DC 0xBC17 #HANGUL SYLLABLE PIEUP A KIYEOKSIOS +0xB9DD 0xBC18 #HANGUL SYLLABLE PIEUP A NIEUN +0xB9DE 0xBC1B #HANGUL SYLLABLE PIEUP A TIKEUT +0xB9DF 0xBC1C #HANGUL SYLLABLE PIEUP A RIEUL +0xB9E0 0xBC1D #HANGUL SYLLABLE PIEUP A RIEULKIYEOK +0xB9E1 0xBC1E #HANGUL SYLLABLE PIEUP A RIEULMIEUM +0xB9E2 0xBC1F #HANGUL SYLLABLE PIEUP A RIEULPIEUP +0xB9E3 0xBC24 #HANGUL SYLLABLE PIEUP A MIEUM +0xB9E4 0xBC25 #HANGUL SYLLABLE PIEUP A PIEUP +0xB9E5 0xBC27 #HANGUL SYLLABLE PIEUP A SIOS +0xB9E6 0xBC29 #HANGUL SYLLABLE PIEUP A IEUNG +0xB9E7 0xBC2D #HANGUL SYLLABLE PIEUP A THIEUTH +0xB9E8 0xBC30 #HANGUL SYLLABLE PIEUP AE +0xB9E9 0xBC31 #HANGUL SYLLABLE PIEUP AE KIYEOK +0xB9EA 0xBC34 #HANGUL SYLLABLE PIEUP AE NIEUN +0xB9EB 0xBC38 #HANGUL SYLLABLE PIEUP AE RIEUL +0xB9EC 0xBC40 #HANGUL SYLLABLE PIEUP AE MIEUM +0xB9ED 0xBC41 #HANGUL SYLLABLE PIEUP AE PIEUP +0xB9EE 0xBC43 #HANGUL SYLLABLE PIEUP AE SIOS +0xB9EF 0xBC44 #HANGUL SYLLABLE PIEUP AE SSANGSIOS +0xB9F0 0xBC45 #HANGUL SYLLABLE PIEUP AE IEUNG +0xB9F1 0xBC49 #HANGUL SYLLABLE PIEUP AE THIEUTH +0xB9F2 0xBC4C #HANGUL SYLLABLE PIEUP YA +0xB9F3 0xBC4D #HANGUL SYLLABLE PIEUP YA KIYEOK +0xB9F4 0xBC50 #HANGUL SYLLABLE PIEUP YA NIEUN +0xB9F5 0xBC5D #HANGUL SYLLABLE PIEUP YA PIEUP +0xB9F6 0xBC84 #HANGUL SYLLABLE PIEUP EO +0xB9F7 0xBC85 #HANGUL SYLLABLE PIEUP EO KIYEOK +0xB9F8 0xBC88 #HANGUL SYLLABLE PIEUP EO NIEUN +0xB9F9 0xBC8B #HANGUL SYLLABLE PIEUP EO TIKEUT +0xB9FA 0xBC8C #HANGUL SYLLABLE PIEUP EO RIEUL +0xB9FB 0xBC8E #HANGUL SYLLABLE PIEUP EO RIEULMIEUM +0xB9FC 0xBC94 #HANGUL SYLLABLE PIEUP EO MIEUM +0xB9FD 0xBC95 #HANGUL SYLLABLE PIEUP EO PIEUP +0xB9FE 0xBC97 #HANGUL SYLLABLE PIEUP EO SIOS +0xBA41 0xD28D #HANGUL SYLLABLE THIEUTH WI RIEULTHIEUTH +0xBA42 0xD28E #HANGUL SYLLABLE THIEUTH WI RIEULPHIEUPH +0xBA43 0xD28F #HANGUL SYLLABLE THIEUTH WI RIEULHIEUH +0xBA44 0xD292 #HANGUL SYLLABLE THIEUTH WI PIEUPSIOS +0xBA45 0xD293 #HANGUL SYLLABLE THIEUTH WI SIOS +0xBA46 0xD294 #HANGUL SYLLABLE THIEUTH WI SSANGSIOS +0xBA47 0xD296 #HANGUL SYLLABLE THIEUTH WI CIEUC +0xBA48 0xD297 #HANGUL SYLLABLE THIEUTH WI CHIEUCH +0xBA49 0xD298 #HANGUL SYLLABLE THIEUTH WI KHIEUKH +0xBA4A 0xD299 #HANGUL SYLLABLE THIEUTH WI THIEUTH +0xBA4B 0xD29A #HANGUL SYLLABLE THIEUTH WI PHIEUPH +0xBA4C 0xD29B #HANGUL SYLLABLE THIEUTH WI HIEUH +0xBA4D 0xD29D #HANGUL SYLLABLE THIEUTH YU KIYEOK +0xBA4E 0xD29E #HANGUL SYLLABLE THIEUTH YU SSANGKIYEOK +0xBA4F 0xD29F #HANGUL SYLLABLE THIEUTH YU KIYEOKSIOS +0xBA50 0xD2A1 #HANGUL SYLLABLE THIEUTH YU NIEUNCIEUC +0xBA51 0xD2A2 #HANGUL SYLLABLE THIEUTH YU NIEUNHIEUH +0xBA52 0xD2A3 #HANGUL SYLLABLE THIEUTH YU TIKEUT +0xBA53 0xD2A5 #HANGUL SYLLABLE THIEUTH YU RIEULKIYEOK +0xBA54 0xD2A6 #HANGUL SYLLABLE THIEUTH YU RIEULMIEUM +0xBA55 0xD2A7 #HANGUL SYLLABLE THIEUTH YU RIEULPIEUP +0xBA56 0xD2A8 #HANGUL SYLLABLE THIEUTH YU RIEULSIOS +0xBA57 0xD2A9 #HANGUL SYLLABLE THIEUTH YU RIEULTHIEUTH +0xBA58 0xD2AA #HANGUL SYLLABLE THIEUTH YU RIEULPHIEUPH +0xBA59 0xD2AB #HANGUL SYLLABLE THIEUTH YU RIEULHIEUH +0xBA5A 0xD2AD #HANGUL SYLLABLE THIEUTH YU PIEUP +0xBA61 0xD2AE #HANGUL SYLLABLE THIEUTH YU PIEUPSIOS +0xBA62 0xD2AF #HANGUL SYLLABLE THIEUTH YU SIOS +0xBA63 0xD2B0 #HANGUL SYLLABLE THIEUTH YU SSANGSIOS +0xBA64 0xD2B2 #HANGUL SYLLABLE THIEUTH YU CIEUC +0xBA65 0xD2B3 #HANGUL SYLLABLE THIEUTH YU CHIEUCH +0xBA66 0xD2B4 #HANGUL SYLLABLE THIEUTH YU KHIEUKH +0xBA67 0xD2B5 #HANGUL SYLLABLE THIEUTH YU THIEUTH +0xBA68 0xD2B6 #HANGUL SYLLABLE THIEUTH YU PHIEUPH +0xBA69 0xD2B7 #HANGUL SYLLABLE THIEUTH YU HIEUH +0xBA6A 0xD2BA #HANGUL SYLLABLE THIEUTH EU SSANGKIYEOK +0xBA6B 0xD2BB #HANGUL SYLLABLE THIEUTH EU KIYEOKSIOS +0xBA6C 0xD2BD #HANGUL SYLLABLE THIEUTH EU NIEUNCIEUC +0xBA6D 0xD2BE #HANGUL SYLLABLE THIEUTH EU NIEUNHIEUH +0xBA6E 0xD2C1 #HANGUL SYLLABLE THIEUTH EU RIEULKIYEOK +0xBA6F 0xD2C3 #HANGUL SYLLABLE THIEUTH EU RIEULPIEUP +0xBA70 0xD2C4 #HANGUL SYLLABLE THIEUTH EU RIEULSIOS +0xBA71 0xD2C5 #HANGUL SYLLABLE THIEUTH EU RIEULTHIEUTH +0xBA72 0xD2C6 #HANGUL SYLLABLE THIEUTH EU RIEULPHIEUPH +0xBA73 0xD2C7 #HANGUL SYLLABLE THIEUTH EU RIEULHIEUH +0xBA74 0xD2CA #HANGUL SYLLABLE THIEUTH EU PIEUPSIOS +0xBA75 0xD2CC #HANGUL SYLLABLE THIEUTH EU SSANGSIOS +0xBA76 0xD2CD #HANGUL SYLLABLE THIEUTH EU IEUNG +0xBA77 0xD2CE #HANGUL SYLLABLE THIEUTH EU CIEUC +0xBA78 0xD2CF #HANGUL SYLLABLE THIEUTH EU CHIEUCH +0xBA79 0xD2D0 #HANGUL SYLLABLE THIEUTH EU KHIEUKH +0xBA7A 0xD2D1 #HANGUL SYLLABLE THIEUTH EU THIEUTH +0xBA81 0xD2D2 #HANGUL SYLLABLE THIEUTH EU PHIEUPH +0xBA82 0xD2D3 #HANGUL SYLLABLE THIEUTH EU HIEUH +0xBA83 0xD2D5 #HANGUL SYLLABLE THIEUTH YI KIYEOK +0xBA84 0xD2D6 #HANGUL SYLLABLE THIEUTH YI SSANGKIYEOK +0xBA85 0xD2D7 #HANGUL SYLLABLE THIEUTH YI KIYEOKSIOS +0xBA86 0xD2D9 #HANGUL SYLLABLE THIEUTH YI NIEUNCIEUC +0xBA87 0xD2DA #HANGUL SYLLABLE THIEUTH YI NIEUNHIEUH +0xBA88 0xD2DB #HANGUL SYLLABLE THIEUTH YI TIKEUT +0xBA89 0xD2DD #HANGUL SYLLABLE THIEUTH YI RIEULKIYEOK +0xBA8A 0xD2DE #HANGUL SYLLABLE THIEUTH YI RIEULMIEUM +0xBA8B 0xD2DF #HANGUL SYLLABLE THIEUTH YI RIEULPIEUP +0xBA8C 0xD2E0 #HANGUL SYLLABLE THIEUTH YI RIEULSIOS +0xBA8D 0xD2E1 #HANGUL SYLLABLE THIEUTH YI RIEULTHIEUTH +0xBA8E 0xD2E2 #HANGUL SYLLABLE THIEUTH YI RIEULPHIEUPH +0xBA8F 0xD2E3 #HANGUL SYLLABLE THIEUTH YI RIEULHIEUH +0xBA90 0xD2E6 #HANGUL SYLLABLE THIEUTH YI PIEUPSIOS +0xBA91 0xD2E7 #HANGUL SYLLABLE THIEUTH YI SIOS +0xBA92 0xD2E8 #HANGUL SYLLABLE THIEUTH YI SSANGSIOS +0xBA93 0xD2E9 #HANGUL SYLLABLE THIEUTH YI IEUNG +0xBA94 0xD2EA #HANGUL SYLLABLE THIEUTH YI CIEUC +0xBA95 0xD2EB #HANGUL SYLLABLE THIEUTH YI CHIEUCH +0xBA96 0xD2EC #HANGUL SYLLABLE THIEUTH YI KHIEUKH +0xBA97 0xD2ED #HANGUL SYLLABLE THIEUTH YI THIEUTH +0xBA98 0xD2EE #HANGUL SYLLABLE THIEUTH YI PHIEUPH +0xBA99 0xD2EF #HANGUL SYLLABLE THIEUTH YI HIEUH +0xBA9A 0xD2F2 #HANGUL SYLLABLE THIEUTH I SSANGKIYEOK +0xBA9B 0xD2F3 #HANGUL SYLLABLE THIEUTH I KIYEOKSIOS +0xBA9C 0xD2F5 #HANGUL SYLLABLE THIEUTH I NIEUNCIEUC +0xBA9D 0xD2F6 #HANGUL SYLLABLE THIEUTH I NIEUNHIEUH +0xBA9E 0xD2F7 #HANGUL SYLLABLE THIEUTH I TIKEUT +0xBA9F 0xD2F9 #HANGUL SYLLABLE THIEUTH I RIEULKIYEOK +0xBAA0 0xD2FA #HANGUL SYLLABLE THIEUTH I RIEULMIEUM +0xBAA1 0xBC99 #HANGUL SYLLABLE PIEUP EO IEUNG +0xBAA2 0xBC9A #HANGUL SYLLABLE PIEUP EO CIEUC +0xBAA3 0xBCA0 #HANGUL SYLLABLE PIEUP E +0xBAA4 0xBCA1 #HANGUL SYLLABLE PIEUP E KIYEOK +0xBAA5 0xBCA4 #HANGUL SYLLABLE PIEUP E NIEUN +0xBAA6 0xBCA7 #HANGUL SYLLABLE PIEUP E TIKEUT +0xBAA7 0xBCA8 #HANGUL SYLLABLE PIEUP E RIEUL +0xBAA8 0xBCB0 #HANGUL SYLLABLE PIEUP E MIEUM +0xBAA9 0xBCB1 #HANGUL SYLLABLE PIEUP E PIEUP +0xBAAA 0xBCB3 #HANGUL SYLLABLE PIEUP E SIOS +0xBAAB 0xBCB4 #HANGUL SYLLABLE PIEUP E SSANGSIOS +0xBAAC 0xBCB5 #HANGUL SYLLABLE PIEUP E IEUNG +0xBAAD 0xBCBC #HANGUL SYLLABLE PIEUP YEO +0xBAAE 0xBCBD #HANGUL SYLLABLE PIEUP YEO KIYEOK +0xBAAF 0xBCC0 #HANGUL SYLLABLE PIEUP YEO NIEUN +0xBAB0 0xBCC4 #HANGUL SYLLABLE PIEUP YEO RIEUL +0xBAB1 0xBCCD #HANGUL SYLLABLE PIEUP YEO PIEUP +0xBAB2 0xBCCF #HANGUL SYLLABLE PIEUP YEO SIOS +0xBAB3 0xBCD0 #HANGUL SYLLABLE PIEUP YEO SSANGSIOS +0xBAB4 0xBCD1 #HANGUL SYLLABLE PIEUP YEO IEUNG +0xBAB5 0xBCD5 #HANGUL SYLLABLE PIEUP YEO THIEUTH +0xBAB6 0xBCD8 #HANGUL SYLLABLE PIEUP YE +0xBAB7 0xBCDC #HANGUL SYLLABLE PIEUP YE NIEUN +0xBAB8 0xBCF4 #HANGUL SYLLABLE PIEUP O +0xBAB9 0xBCF5 #HANGUL SYLLABLE PIEUP O KIYEOK +0xBABA 0xBCF6 #HANGUL SYLLABLE PIEUP O SSANGKIYEOK +0xBABB 0xBCF8 #HANGUL SYLLABLE PIEUP O NIEUN +0xBABC 0xBCFC #HANGUL SYLLABLE PIEUP O RIEUL +0xBABD 0xBD04 #HANGUL SYLLABLE PIEUP O MIEUM +0xBABE 0xBD05 #HANGUL SYLLABLE PIEUP O PIEUP +0xBABF 0xBD07 #HANGUL SYLLABLE PIEUP O SIOS +0xBAC0 0xBD09 #HANGUL SYLLABLE PIEUP O IEUNG +0xBAC1 0xBD10 #HANGUL SYLLABLE PIEUP WA +0xBAC2 0xBD14 #HANGUL SYLLABLE PIEUP WA NIEUN +0xBAC3 0xBD24 #HANGUL SYLLABLE PIEUP WA SSANGSIOS +0xBAC4 0xBD2C #HANGUL SYLLABLE PIEUP WAE +0xBAC5 0xBD40 #HANGUL SYLLABLE PIEUP WAE SSANGSIOS +0xBAC6 0xBD48 #HANGUL SYLLABLE PIEUP OE +0xBAC7 0xBD49 #HANGUL SYLLABLE PIEUP OE KIYEOK +0xBAC8 0xBD4C #HANGUL SYLLABLE PIEUP OE NIEUN +0xBAC9 0xBD50 #HANGUL SYLLABLE PIEUP OE RIEUL +0xBACA 0xBD58 #HANGUL SYLLABLE PIEUP OE MIEUM +0xBACB 0xBD59 #HANGUL SYLLABLE PIEUP OE PIEUP +0xBACC 0xBD64 #HANGUL SYLLABLE PIEUP YO +0xBACD 0xBD68 #HANGUL SYLLABLE PIEUP YO NIEUN +0xBACE 0xBD80 #HANGUL SYLLABLE PIEUP U +0xBACF 0xBD81 #HANGUL SYLLABLE PIEUP U KIYEOK +0xBAD0 0xBD84 #HANGUL SYLLABLE PIEUP U NIEUN +0xBAD1 0xBD87 #HANGUL SYLLABLE PIEUP U TIKEUT +0xBAD2 0xBD88 #HANGUL SYLLABLE PIEUP U RIEUL +0xBAD3 0xBD89 #HANGUL SYLLABLE PIEUP U RIEULKIYEOK +0xBAD4 0xBD8A #HANGUL SYLLABLE PIEUP U RIEULMIEUM +0xBAD5 0xBD90 #HANGUL SYLLABLE PIEUP U MIEUM +0xBAD6 0xBD91 #HANGUL SYLLABLE PIEUP U PIEUP +0xBAD7 0xBD93 #HANGUL SYLLABLE PIEUP U SIOS +0xBAD8 0xBD95 #HANGUL SYLLABLE PIEUP U IEUNG +0xBAD9 0xBD99 #HANGUL SYLLABLE PIEUP U THIEUTH +0xBADA 0xBD9A #HANGUL SYLLABLE PIEUP U PHIEUPH +0xBADB 0xBD9C #HANGUL SYLLABLE PIEUP WEO +0xBADC 0xBDA4 #HANGUL SYLLABLE PIEUP WEO RIEUL +0xBADD 0xBDB0 #HANGUL SYLLABLE PIEUP WEO SSANGSIOS +0xBADE 0xBDB8 #HANGUL SYLLABLE PIEUP WE +0xBADF 0xBDD4 #HANGUL SYLLABLE PIEUP WI +0xBAE0 0xBDD5 #HANGUL SYLLABLE PIEUP WI KIYEOK +0xBAE1 0xBDD8 #HANGUL SYLLABLE PIEUP WI NIEUN +0xBAE2 0xBDDC #HANGUL SYLLABLE PIEUP WI RIEUL +0xBAE3 0xBDE9 #HANGUL SYLLABLE PIEUP WI IEUNG +0xBAE4 0xBDF0 #HANGUL SYLLABLE PIEUP YU +0xBAE5 0xBDF4 #HANGUL SYLLABLE PIEUP YU NIEUN +0xBAE6 0xBDF8 #HANGUL SYLLABLE PIEUP YU RIEUL +0xBAE7 0xBE00 #HANGUL SYLLABLE PIEUP YU MIEUM +0xBAE8 0xBE03 #HANGUL SYLLABLE PIEUP YU SIOS +0xBAE9 0xBE05 #HANGUL SYLLABLE PIEUP YU IEUNG +0xBAEA 0xBE0C #HANGUL SYLLABLE PIEUP EU +0xBAEB 0xBE0D #HANGUL SYLLABLE PIEUP EU KIYEOK +0xBAEC 0xBE10 #HANGUL SYLLABLE PIEUP EU NIEUN +0xBAED 0xBE14 #HANGUL SYLLABLE PIEUP EU RIEUL +0xBAEE 0xBE1C #HANGUL SYLLABLE PIEUP EU MIEUM +0xBAEF 0xBE1D #HANGUL SYLLABLE PIEUP EU PIEUP +0xBAF0 0xBE1F #HANGUL SYLLABLE PIEUP EU SIOS +0xBAF1 0xBE44 #HANGUL SYLLABLE PIEUP I +0xBAF2 0xBE45 #HANGUL SYLLABLE PIEUP I KIYEOK +0xBAF3 0xBE48 #HANGUL SYLLABLE PIEUP I NIEUN +0xBAF4 0xBE4C #HANGUL SYLLABLE PIEUP I RIEUL +0xBAF5 0xBE4E #HANGUL SYLLABLE PIEUP I RIEULMIEUM +0xBAF6 0xBE54 #HANGUL SYLLABLE PIEUP I MIEUM +0xBAF7 0xBE55 #HANGUL SYLLABLE PIEUP I PIEUP +0xBAF8 0xBE57 #HANGUL SYLLABLE PIEUP I SIOS +0xBAF9 0xBE59 #HANGUL SYLLABLE PIEUP I IEUNG +0xBAFA 0xBE5A #HANGUL SYLLABLE PIEUP I CIEUC +0xBAFB 0xBE5B #HANGUL SYLLABLE PIEUP I CHIEUCH +0xBAFC 0xBE60 #HANGUL SYLLABLE SSANGPIEUP A +0xBAFD 0xBE61 #HANGUL SYLLABLE SSANGPIEUP A KIYEOK +0xBAFE 0xBE64 #HANGUL SYLLABLE SSANGPIEUP A NIEUN +0xBB41 0xD2FB #HANGUL SYLLABLE THIEUTH I RIEULPIEUP +0xBB42 0xD2FC #HANGUL SYLLABLE THIEUTH I RIEULSIOS +0xBB43 0xD2FD #HANGUL SYLLABLE THIEUTH I RIEULTHIEUTH +0xBB44 0xD2FE #HANGUL SYLLABLE THIEUTH I RIEULPHIEUPH +0xBB45 0xD2FF #HANGUL SYLLABLE THIEUTH I RIEULHIEUH +0xBB46 0xD302 #HANGUL SYLLABLE THIEUTH I PIEUPSIOS +0xBB47 0xD304 #HANGUL SYLLABLE THIEUTH I SSANGSIOS +0xBB48 0xD306 #HANGUL SYLLABLE THIEUTH I CIEUC +0xBB49 0xD307 #HANGUL SYLLABLE THIEUTH I CHIEUCH +0xBB4A 0xD308 #HANGUL SYLLABLE THIEUTH I KHIEUKH +0xBB4B 0xD309 #HANGUL SYLLABLE THIEUTH I THIEUTH +0xBB4C 0xD30A #HANGUL SYLLABLE THIEUTH I PHIEUPH +0xBB4D 0xD30B #HANGUL SYLLABLE THIEUTH I HIEUH +0xBB4E 0xD30F #HANGUL SYLLABLE PHIEUPH A KIYEOKSIOS +0xBB4F 0xD311 #HANGUL SYLLABLE PHIEUPH A NIEUNCIEUC +0xBB50 0xD312 #HANGUL SYLLABLE PHIEUPH A NIEUNHIEUH +0xBB51 0xD313 #HANGUL SYLLABLE PHIEUPH A TIKEUT +0xBB52 0xD315 #HANGUL SYLLABLE PHIEUPH A RIEULKIYEOK +0xBB53 0xD317 #HANGUL SYLLABLE PHIEUPH A RIEULPIEUP +0xBB54 0xD318 #HANGUL SYLLABLE PHIEUPH A RIEULSIOS +0xBB55 0xD319 #HANGUL SYLLABLE PHIEUPH A RIEULTHIEUTH +0xBB56 0xD31A #HANGUL SYLLABLE PHIEUPH A RIEULPHIEUPH +0xBB57 0xD31B #HANGUL SYLLABLE PHIEUPH A RIEULHIEUH +0xBB58 0xD31E #HANGUL SYLLABLE PHIEUPH A PIEUPSIOS +0xBB59 0xD322 #HANGUL SYLLABLE PHIEUPH A CIEUC +0xBB5A 0xD323 #HANGUL SYLLABLE PHIEUPH A CHIEUCH +0xBB61 0xD324 #HANGUL SYLLABLE PHIEUPH A KHIEUKH +0xBB62 0xD326 #HANGUL SYLLABLE PHIEUPH A PHIEUPH +0xBB63 0xD327 #HANGUL SYLLABLE PHIEUPH A HIEUH +0xBB64 0xD32A #HANGUL SYLLABLE PHIEUPH AE SSANGKIYEOK +0xBB65 0xD32B #HANGUL SYLLABLE PHIEUPH AE KIYEOKSIOS +0xBB66 0xD32D #HANGUL SYLLABLE PHIEUPH AE NIEUNCIEUC +0xBB67 0xD32E #HANGUL SYLLABLE PHIEUPH AE NIEUNHIEUH +0xBB68 0xD32F #HANGUL SYLLABLE PHIEUPH AE TIKEUT +0xBB69 0xD331 #HANGUL SYLLABLE PHIEUPH AE RIEULKIYEOK +0xBB6A 0xD332 #HANGUL SYLLABLE PHIEUPH AE RIEULMIEUM +0xBB6B 0xD333 #HANGUL SYLLABLE PHIEUPH AE RIEULPIEUP +0xBB6C 0xD334 #HANGUL SYLLABLE PHIEUPH AE RIEULSIOS +0xBB6D 0xD335 #HANGUL SYLLABLE PHIEUPH AE RIEULTHIEUTH +0xBB6E 0xD336 #HANGUL SYLLABLE PHIEUPH AE RIEULPHIEUPH +0xBB6F 0xD337 #HANGUL SYLLABLE PHIEUPH AE RIEULHIEUH +0xBB70 0xD33A #HANGUL SYLLABLE PHIEUPH AE PIEUPSIOS +0xBB71 0xD33E #HANGUL SYLLABLE PHIEUPH AE CIEUC +0xBB72 0xD33F #HANGUL SYLLABLE PHIEUPH AE CHIEUCH +0xBB73 0xD340 #HANGUL SYLLABLE PHIEUPH AE KHIEUKH +0xBB74 0xD341 #HANGUL SYLLABLE PHIEUPH AE THIEUTH +0xBB75 0xD342 #HANGUL SYLLABLE PHIEUPH AE PHIEUPH +0xBB76 0xD343 #HANGUL SYLLABLE PHIEUPH AE HIEUH +0xBB77 0xD346 #HANGUL SYLLABLE PHIEUPH YA SSANGKIYEOK +0xBB78 0xD347 #HANGUL SYLLABLE PHIEUPH YA KIYEOKSIOS +0xBB79 0xD348 #HANGUL SYLLABLE PHIEUPH YA NIEUN +0xBB7A 0xD349 #HANGUL SYLLABLE PHIEUPH YA NIEUNCIEUC +0xBB81 0xD34A #HANGUL SYLLABLE PHIEUPH YA NIEUNHIEUH +0xBB82 0xD34B #HANGUL SYLLABLE PHIEUPH YA TIKEUT +0xBB83 0xD34C #HANGUL SYLLABLE PHIEUPH YA RIEUL +0xBB84 0xD34D #HANGUL SYLLABLE PHIEUPH YA RIEULKIYEOK +0xBB85 0xD34E #HANGUL SYLLABLE PHIEUPH YA RIEULMIEUM +0xBB86 0xD34F #HANGUL SYLLABLE PHIEUPH YA RIEULPIEUP +0xBB87 0xD350 #HANGUL SYLLABLE PHIEUPH YA RIEULSIOS +0xBB88 0xD351 #HANGUL SYLLABLE PHIEUPH YA RIEULTHIEUTH +0xBB89 0xD352 #HANGUL SYLLABLE PHIEUPH YA RIEULPHIEUPH +0xBB8A 0xD353 #HANGUL SYLLABLE PHIEUPH YA RIEULHIEUH +0xBB8B 0xD354 #HANGUL SYLLABLE PHIEUPH YA MIEUM +0xBB8C 0xD355 #HANGUL SYLLABLE PHIEUPH YA PIEUP +0xBB8D 0xD356 #HANGUL SYLLABLE PHIEUPH YA PIEUPSIOS +0xBB8E 0xD357 #HANGUL SYLLABLE PHIEUPH YA SIOS +0xBB8F 0xD358 #HANGUL SYLLABLE PHIEUPH YA SSANGSIOS +0xBB90 0xD359 #HANGUL SYLLABLE PHIEUPH YA IEUNG +0xBB91 0xD35A #HANGUL SYLLABLE PHIEUPH YA CIEUC +0xBB92 0xD35B #HANGUL SYLLABLE PHIEUPH YA CHIEUCH +0xBB93 0xD35C #HANGUL SYLLABLE PHIEUPH YA KHIEUKH +0xBB94 0xD35D #HANGUL SYLLABLE PHIEUPH YA THIEUTH +0xBB95 0xD35E #HANGUL SYLLABLE PHIEUPH YA PHIEUPH +0xBB96 0xD35F #HANGUL SYLLABLE PHIEUPH YA HIEUH +0xBB97 0xD360 #HANGUL SYLLABLE PHIEUPH YAE +0xBB98 0xD361 #HANGUL SYLLABLE PHIEUPH YAE KIYEOK +0xBB99 0xD362 #HANGUL SYLLABLE PHIEUPH YAE SSANGKIYEOK +0xBB9A 0xD363 #HANGUL SYLLABLE PHIEUPH YAE KIYEOKSIOS +0xBB9B 0xD364 #HANGUL SYLLABLE PHIEUPH YAE NIEUN +0xBB9C 0xD365 #HANGUL SYLLABLE PHIEUPH YAE NIEUNCIEUC +0xBB9D 0xD366 #HANGUL SYLLABLE PHIEUPH YAE NIEUNHIEUH +0xBB9E 0xD367 #HANGUL SYLLABLE PHIEUPH YAE TIKEUT +0xBB9F 0xD368 #HANGUL SYLLABLE PHIEUPH YAE RIEUL +0xBBA0 0xD369 #HANGUL SYLLABLE PHIEUPH YAE RIEULKIYEOK +0xBBA1 0xBE68 #HANGUL SYLLABLE SSANGPIEUP A RIEUL +0xBBA2 0xBE6A #HANGUL SYLLABLE SSANGPIEUP A RIEULMIEUM +0xBBA3 0xBE70 #HANGUL SYLLABLE SSANGPIEUP A MIEUM +0xBBA4 0xBE71 #HANGUL SYLLABLE SSANGPIEUP A PIEUP +0xBBA5 0xBE73 #HANGUL SYLLABLE SSANGPIEUP A SIOS +0xBBA6 0xBE74 #HANGUL SYLLABLE SSANGPIEUP A SSANGSIOS +0xBBA7 0xBE75 #HANGUL SYLLABLE SSANGPIEUP A IEUNG +0xBBA8 0xBE7B #HANGUL SYLLABLE SSANGPIEUP A HIEUH +0xBBA9 0xBE7C #HANGUL SYLLABLE SSANGPIEUP AE +0xBBAA 0xBE7D #HANGUL SYLLABLE SSANGPIEUP AE KIYEOK +0xBBAB 0xBE80 #HANGUL SYLLABLE SSANGPIEUP AE NIEUN +0xBBAC 0xBE84 #HANGUL SYLLABLE SSANGPIEUP AE RIEUL +0xBBAD 0xBE8C #HANGUL SYLLABLE SSANGPIEUP AE MIEUM +0xBBAE 0xBE8D #HANGUL SYLLABLE SSANGPIEUP AE PIEUP +0xBBAF 0xBE8F #HANGUL SYLLABLE SSANGPIEUP AE SIOS +0xBBB0 0xBE90 #HANGUL SYLLABLE SSANGPIEUP AE SSANGSIOS +0xBBB1 0xBE91 #HANGUL SYLLABLE SSANGPIEUP AE IEUNG +0xBBB2 0xBE98 #HANGUL SYLLABLE SSANGPIEUP YA +0xBBB3 0xBE99 #HANGUL SYLLABLE SSANGPIEUP YA KIYEOK +0xBBB4 0xBEA8 #HANGUL SYLLABLE SSANGPIEUP YA MIEUM +0xBBB5 0xBED0 #HANGUL SYLLABLE SSANGPIEUP EO +0xBBB6 0xBED1 #HANGUL SYLLABLE SSANGPIEUP EO KIYEOK +0xBBB7 0xBED4 #HANGUL SYLLABLE SSANGPIEUP EO NIEUN +0xBBB8 0xBED7 #HANGUL SYLLABLE SSANGPIEUP EO TIKEUT +0xBBB9 0xBED8 #HANGUL SYLLABLE SSANGPIEUP EO RIEUL +0xBBBA 0xBEE0 #HANGUL SYLLABLE SSANGPIEUP EO MIEUM +0xBBBB 0xBEE3 #HANGUL SYLLABLE SSANGPIEUP EO SIOS +0xBBBC 0xBEE4 #HANGUL SYLLABLE SSANGPIEUP EO SSANGSIOS +0xBBBD 0xBEE5 #HANGUL SYLLABLE SSANGPIEUP EO IEUNG +0xBBBE 0xBEEC #HANGUL SYLLABLE SSANGPIEUP E +0xBBBF 0xBF01 #HANGUL SYLLABLE SSANGPIEUP E IEUNG +0xBBC0 0xBF08 #HANGUL SYLLABLE SSANGPIEUP YEO +0xBBC1 0xBF09 #HANGUL SYLLABLE SSANGPIEUP YEO KIYEOK +0xBBC2 0xBF18 #HANGUL SYLLABLE SSANGPIEUP YEO MIEUM +0xBBC3 0xBF19 #HANGUL SYLLABLE SSANGPIEUP YEO PIEUP +0xBBC4 0xBF1B #HANGUL SYLLABLE SSANGPIEUP YEO SIOS +0xBBC5 0xBF1C #HANGUL SYLLABLE SSANGPIEUP YEO SSANGSIOS +0xBBC6 0xBF1D #HANGUL SYLLABLE SSANGPIEUP YEO IEUNG +0xBBC7 0xBF40 #HANGUL SYLLABLE SSANGPIEUP O +0xBBC8 0xBF41 #HANGUL SYLLABLE SSANGPIEUP O KIYEOK +0xBBC9 0xBF44 #HANGUL SYLLABLE SSANGPIEUP O NIEUN +0xBBCA 0xBF48 #HANGUL SYLLABLE SSANGPIEUP O RIEUL +0xBBCB 0xBF50 #HANGUL SYLLABLE SSANGPIEUP O MIEUM +0xBBCC 0xBF51 #HANGUL SYLLABLE SSANGPIEUP O PIEUP +0xBBCD 0xBF55 #HANGUL SYLLABLE SSANGPIEUP O IEUNG +0xBBCE 0xBF94 #HANGUL SYLLABLE SSANGPIEUP OE +0xBBCF 0xBFB0 #HANGUL SYLLABLE SSANGPIEUP YO +0xBBD0 0xBFC5 #HANGUL SYLLABLE SSANGPIEUP YO IEUNG +0xBBD1 0xBFCC #HANGUL SYLLABLE SSANGPIEUP U +0xBBD2 0xBFCD #HANGUL SYLLABLE SSANGPIEUP U KIYEOK +0xBBD3 0xBFD0 #HANGUL SYLLABLE SSANGPIEUP U NIEUN +0xBBD4 0xBFD4 #HANGUL SYLLABLE SSANGPIEUP U RIEUL +0xBBD5 0xBFDC #HANGUL SYLLABLE SSANGPIEUP U MIEUM +0xBBD6 0xBFDF #HANGUL SYLLABLE SSANGPIEUP U SIOS +0xBBD7 0xBFE1 #HANGUL SYLLABLE SSANGPIEUP U IEUNG +0xBBD8 0xC03C #HANGUL SYLLABLE SSANGPIEUP YU +0xBBD9 0xC051 #HANGUL SYLLABLE SSANGPIEUP YU IEUNG +0xBBDA 0xC058 #HANGUL SYLLABLE SSANGPIEUP EU +0xBBDB 0xC05C #HANGUL SYLLABLE SSANGPIEUP EU NIEUN +0xBBDC 0xC060 #HANGUL SYLLABLE SSANGPIEUP EU RIEUL +0xBBDD 0xC068 #HANGUL SYLLABLE SSANGPIEUP EU MIEUM +0xBBDE 0xC069 #HANGUL SYLLABLE SSANGPIEUP EU PIEUP +0xBBDF 0xC090 #HANGUL SYLLABLE SSANGPIEUP I +0xBBE0 0xC091 #HANGUL SYLLABLE SSANGPIEUP I KIYEOK +0xBBE1 0xC094 #HANGUL SYLLABLE SSANGPIEUP I NIEUN +0xBBE2 0xC098 #HANGUL SYLLABLE SSANGPIEUP I RIEUL +0xBBE3 0xC0A0 #HANGUL SYLLABLE SSANGPIEUP I MIEUM +0xBBE4 0xC0A1 #HANGUL SYLLABLE SSANGPIEUP I PIEUP +0xBBE5 0xC0A3 #HANGUL SYLLABLE SSANGPIEUP I SIOS +0xBBE6 0xC0A5 #HANGUL SYLLABLE SSANGPIEUP I IEUNG +0xBBE7 0xC0AC #HANGUL SYLLABLE SIOS A +0xBBE8 0xC0AD #HANGUL SYLLABLE SIOS A KIYEOK +0xBBE9 0xC0AF #HANGUL SYLLABLE SIOS A KIYEOKSIOS +0xBBEA 0xC0B0 #HANGUL SYLLABLE SIOS A NIEUN +0xBBEB 0xC0B3 #HANGUL SYLLABLE SIOS A TIKEUT +0xBBEC 0xC0B4 #HANGUL SYLLABLE SIOS A RIEUL +0xBBED 0xC0B5 #HANGUL SYLLABLE SIOS A RIEULKIYEOK +0xBBEE 0xC0B6 #HANGUL SYLLABLE SIOS A RIEULMIEUM +0xBBEF 0xC0BC #HANGUL SYLLABLE SIOS A MIEUM +0xBBF0 0xC0BD #HANGUL SYLLABLE SIOS A PIEUP +0xBBF1 0xC0BF #HANGUL SYLLABLE SIOS A SIOS +0xBBF2 0xC0C0 #HANGUL SYLLABLE SIOS A SSANGSIOS +0xBBF3 0xC0C1 #HANGUL SYLLABLE SIOS A IEUNG +0xBBF4 0xC0C5 #HANGUL SYLLABLE SIOS A THIEUTH +0xBBF5 0xC0C8 #HANGUL SYLLABLE SIOS AE +0xBBF6 0xC0C9 #HANGUL SYLLABLE SIOS AE KIYEOK +0xBBF7 0xC0CC #HANGUL SYLLABLE SIOS AE NIEUN +0xBBF8 0xC0D0 #HANGUL SYLLABLE SIOS AE RIEUL +0xBBF9 0xC0D8 #HANGUL SYLLABLE SIOS AE MIEUM +0xBBFA 0xC0D9 #HANGUL SYLLABLE SIOS AE PIEUP +0xBBFB 0xC0DB #HANGUL SYLLABLE SIOS AE SIOS +0xBBFC 0xC0DC #HANGUL SYLLABLE SIOS AE SSANGSIOS +0xBBFD 0xC0DD #HANGUL SYLLABLE SIOS AE IEUNG +0xBBFE 0xC0E4 #HANGUL SYLLABLE SIOS YA +0xBC41 0xD36A #HANGUL SYLLABLE PHIEUPH YAE RIEULMIEUM +0xBC42 0xD36B #HANGUL SYLLABLE PHIEUPH YAE RIEULPIEUP +0xBC43 0xD36C #HANGUL SYLLABLE PHIEUPH YAE RIEULSIOS +0xBC44 0xD36D #HANGUL SYLLABLE PHIEUPH YAE RIEULTHIEUTH +0xBC45 0xD36E #HANGUL SYLLABLE PHIEUPH YAE RIEULPHIEUPH +0xBC46 0xD36F #HANGUL SYLLABLE PHIEUPH YAE RIEULHIEUH +0xBC47 0xD370 #HANGUL SYLLABLE PHIEUPH YAE MIEUM +0xBC48 0xD371 #HANGUL SYLLABLE PHIEUPH YAE PIEUP +0xBC49 0xD372 #HANGUL SYLLABLE PHIEUPH YAE PIEUPSIOS +0xBC4A 0xD373 #HANGUL SYLLABLE PHIEUPH YAE SIOS +0xBC4B 0xD374 #HANGUL SYLLABLE PHIEUPH YAE SSANGSIOS +0xBC4C 0xD375 #HANGUL SYLLABLE PHIEUPH YAE IEUNG +0xBC4D 0xD376 #HANGUL SYLLABLE PHIEUPH YAE CIEUC +0xBC4E 0xD377 #HANGUL SYLLABLE PHIEUPH YAE CHIEUCH +0xBC4F 0xD378 #HANGUL SYLLABLE PHIEUPH YAE KHIEUKH +0xBC50 0xD379 #HANGUL SYLLABLE PHIEUPH YAE THIEUTH +0xBC51 0xD37A #HANGUL SYLLABLE PHIEUPH YAE PHIEUPH +0xBC52 0xD37B #HANGUL SYLLABLE PHIEUPH YAE HIEUH +0xBC53 0xD37E #HANGUL SYLLABLE PHIEUPH EO SSANGKIYEOK +0xBC54 0xD37F #HANGUL SYLLABLE PHIEUPH EO KIYEOKSIOS +0xBC55 0xD381 #HANGUL SYLLABLE PHIEUPH EO NIEUNCIEUC +0xBC56 0xD382 #HANGUL SYLLABLE PHIEUPH EO NIEUNHIEUH +0xBC57 0xD383 #HANGUL SYLLABLE PHIEUPH EO TIKEUT +0xBC58 0xD385 #HANGUL SYLLABLE PHIEUPH EO RIEULKIYEOK +0xBC59 0xD386 #HANGUL SYLLABLE PHIEUPH EO RIEULMIEUM +0xBC5A 0xD387 #HANGUL SYLLABLE PHIEUPH EO RIEULPIEUP +0xBC61 0xD388 #HANGUL SYLLABLE PHIEUPH EO RIEULSIOS +0xBC62 0xD389 #HANGUL SYLLABLE PHIEUPH EO RIEULTHIEUTH +0xBC63 0xD38A #HANGUL SYLLABLE PHIEUPH EO RIEULPHIEUPH +0xBC64 0xD38B #HANGUL SYLLABLE PHIEUPH EO RIEULHIEUH +0xBC65 0xD38E #HANGUL SYLLABLE PHIEUPH EO PIEUPSIOS +0xBC66 0xD392 #HANGUL SYLLABLE PHIEUPH EO CIEUC +0xBC67 0xD393 #HANGUL SYLLABLE PHIEUPH EO CHIEUCH +0xBC68 0xD394 #HANGUL SYLLABLE PHIEUPH EO KHIEUKH +0xBC69 0xD395 #HANGUL SYLLABLE PHIEUPH EO THIEUTH +0xBC6A 0xD396 #HANGUL SYLLABLE PHIEUPH EO PHIEUPH +0xBC6B 0xD397 #HANGUL SYLLABLE PHIEUPH EO HIEUH +0xBC6C 0xD39A #HANGUL SYLLABLE PHIEUPH E SSANGKIYEOK +0xBC6D 0xD39B #HANGUL SYLLABLE PHIEUPH E KIYEOKSIOS +0xBC6E 0xD39D #HANGUL SYLLABLE PHIEUPH E NIEUNCIEUC +0xBC6F 0xD39E #HANGUL SYLLABLE PHIEUPH E NIEUNHIEUH +0xBC70 0xD39F #HANGUL SYLLABLE PHIEUPH E TIKEUT +0xBC71 0xD3A1 #HANGUL SYLLABLE PHIEUPH E RIEULKIYEOK +0xBC72 0xD3A2 #HANGUL SYLLABLE PHIEUPH E RIEULMIEUM +0xBC73 0xD3A3 #HANGUL SYLLABLE PHIEUPH E RIEULPIEUP +0xBC74 0xD3A4 #HANGUL SYLLABLE PHIEUPH E RIEULSIOS +0xBC75 0xD3A5 #HANGUL SYLLABLE PHIEUPH E RIEULTHIEUTH +0xBC76 0xD3A6 #HANGUL SYLLABLE PHIEUPH E RIEULPHIEUPH +0xBC77 0xD3A7 #HANGUL SYLLABLE PHIEUPH E RIEULHIEUH +0xBC78 0xD3AA #HANGUL SYLLABLE PHIEUPH E PIEUPSIOS +0xBC79 0xD3AC #HANGUL SYLLABLE PHIEUPH E SSANGSIOS +0xBC7A 0xD3AE #HANGUL SYLLABLE PHIEUPH E CIEUC +0xBC81 0xD3AF #HANGUL SYLLABLE PHIEUPH E CHIEUCH +0xBC82 0xD3B0 #HANGUL SYLLABLE PHIEUPH E KHIEUKH +0xBC83 0xD3B1 #HANGUL SYLLABLE PHIEUPH E THIEUTH +0xBC84 0xD3B2 #HANGUL SYLLABLE PHIEUPH E PHIEUPH +0xBC85 0xD3B3 #HANGUL SYLLABLE PHIEUPH E HIEUH +0xBC86 0xD3B5 #HANGUL SYLLABLE PHIEUPH YEO KIYEOK +0xBC87 0xD3B6 #HANGUL SYLLABLE PHIEUPH YEO SSANGKIYEOK +0xBC88 0xD3B7 #HANGUL SYLLABLE PHIEUPH YEO KIYEOKSIOS +0xBC89 0xD3B9 #HANGUL SYLLABLE PHIEUPH YEO NIEUNCIEUC +0xBC8A 0xD3BA #HANGUL SYLLABLE PHIEUPH YEO NIEUNHIEUH +0xBC8B 0xD3BB #HANGUL SYLLABLE PHIEUPH YEO TIKEUT +0xBC8C 0xD3BD #HANGUL SYLLABLE PHIEUPH YEO RIEULKIYEOK +0xBC8D 0xD3BE #HANGUL SYLLABLE PHIEUPH YEO RIEULMIEUM +0xBC8E 0xD3BF #HANGUL SYLLABLE PHIEUPH YEO RIEULPIEUP +0xBC8F 0xD3C0 #HANGUL SYLLABLE PHIEUPH YEO RIEULSIOS +0xBC90 0xD3C1 #HANGUL SYLLABLE PHIEUPH YEO RIEULTHIEUTH +0xBC91 0xD3C2 #HANGUL SYLLABLE PHIEUPH YEO RIEULPHIEUPH +0xBC92 0xD3C3 #HANGUL SYLLABLE PHIEUPH YEO RIEULHIEUH +0xBC93 0xD3C6 #HANGUL SYLLABLE PHIEUPH YEO PIEUPSIOS +0xBC94 0xD3C7 #HANGUL SYLLABLE PHIEUPH YEO SIOS +0xBC95 0xD3CA #HANGUL SYLLABLE PHIEUPH YEO CIEUC +0xBC96 0xD3CB #HANGUL SYLLABLE PHIEUPH YEO CHIEUCH +0xBC97 0xD3CC #HANGUL SYLLABLE PHIEUPH YEO KHIEUKH +0xBC98 0xD3CD #HANGUL SYLLABLE PHIEUPH YEO THIEUTH +0xBC99 0xD3CE #HANGUL SYLLABLE PHIEUPH YEO PHIEUPH +0xBC9A 0xD3CF #HANGUL SYLLABLE PHIEUPH YEO HIEUH +0xBC9B 0xD3D1 #HANGUL SYLLABLE PHIEUPH YE KIYEOK +0xBC9C 0xD3D2 #HANGUL SYLLABLE PHIEUPH YE SSANGKIYEOK +0xBC9D 0xD3D3 #HANGUL SYLLABLE PHIEUPH YE KIYEOKSIOS +0xBC9E 0xD3D4 #HANGUL SYLLABLE PHIEUPH YE NIEUN +0xBC9F 0xD3D5 #HANGUL SYLLABLE PHIEUPH YE NIEUNCIEUC +0xBCA0 0xD3D6 #HANGUL SYLLABLE PHIEUPH YE NIEUNHIEUH +0xBCA1 0xC0E5 #HANGUL SYLLABLE SIOS YA KIYEOK +0xBCA2 0xC0E8 #HANGUL SYLLABLE SIOS YA NIEUN +0xBCA3 0xC0EC #HANGUL SYLLABLE SIOS YA RIEUL +0xBCA4 0xC0F4 #HANGUL SYLLABLE SIOS YA MIEUM +0xBCA5 0xC0F5 #HANGUL SYLLABLE SIOS YA PIEUP +0xBCA6 0xC0F7 #HANGUL SYLLABLE SIOS YA SIOS +0xBCA7 0xC0F9 #HANGUL SYLLABLE SIOS YA IEUNG +0xBCA8 0xC100 #HANGUL SYLLABLE SIOS YAE +0xBCA9 0xC104 #HANGUL SYLLABLE SIOS YAE NIEUN +0xBCAA 0xC108 #HANGUL SYLLABLE SIOS YAE RIEUL +0xBCAB 0xC110 #HANGUL SYLLABLE SIOS YAE MIEUM +0xBCAC 0xC115 #HANGUL SYLLABLE SIOS YAE IEUNG +0xBCAD 0xC11C #HANGUL SYLLABLE SIOS EO +0xBCAE 0xC11D #HANGUL SYLLABLE SIOS EO KIYEOK +0xBCAF 0xC11E #HANGUL SYLLABLE SIOS EO SSANGKIYEOK +0xBCB0 0xC11F #HANGUL SYLLABLE SIOS EO KIYEOKSIOS +0xBCB1 0xC120 #HANGUL SYLLABLE SIOS EO NIEUN +0xBCB2 0xC123 #HANGUL SYLLABLE SIOS EO TIKEUT +0xBCB3 0xC124 #HANGUL SYLLABLE SIOS EO RIEUL +0xBCB4 0xC126 #HANGUL SYLLABLE SIOS EO RIEULMIEUM +0xBCB5 0xC127 #HANGUL SYLLABLE SIOS EO RIEULPIEUP +0xBCB6 0xC12C #HANGUL SYLLABLE SIOS EO MIEUM +0xBCB7 0xC12D #HANGUL SYLLABLE SIOS EO PIEUP +0xBCB8 0xC12F #HANGUL SYLLABLE SIOS EO SIOS +0xBCB9 0xC130 #HANGUL SYLLABLE SIOS EO SSANGSIOS +0xBCBA 0xC131 #HANGUL SYLLABLE SIOS EO IEUNG +0xBCBB 0xC136 #HANGUL SYLLABLE SIOS EO PHIEUPH +0xBCBC 0xC138 #HANGUL SYLLABLE SIOS E +0xBCBD 0xC139 #HANGUL SYLLABLE SIOS E KIYEOK +0xBCBE 0xC13C #HANGUL SYLLABLE SIOS E NIEUN +0xBCBF 0xC140 #HANGUL SYLLABLE SIOS E RIEUL +0xBCC0 0xC148 #HANGUL SYLLABLE SIOS E MIEUM +0xBCC1 0xC149 #HANGUL SYLLABLE SIOS E PIEUP +0xBCC2 0xC14B #HANGUL SYLLABLE SIOS E SIOS +0xBCC3 0xC14C #HANGUL SYLLABLE SIOS E SSANGSIOS +0xBCC4 0xC14D #HANGUL SYLLABLE SIOS E IEUNG +0xBCC5 0xC154 #HANGUL SYLLABLE SIOS YEO +0xBCC6 0xC155 #HANGUL SYLLABLE SIOS YEO KIYEOK +0xBCC7 0xC158 #HANGUL SYLLABLE SIOS YEO NIEUN +0xBCC8 0xC15C #HANGUL SYLLABLE SIOS YEO RIEUL +0xBCC9 0xC164 #HANGUL SYLLABLE SIOS YEO MIEUM +0xBCCA 0xC165 #HANGUL SYLLABLE SIOS YEO PIEUP +0xBCCB 0xC167 #HANGUL SYLLABLE SIOS YEO SIOS +0xBCCC 0xC168 #HANGUL SYLLABLE SIOS YEO SSANGSIOS +0xBCCD 0xC169 #HANGUL SYLLABLE SIOS YEO IEUNG +0xBCCE 0xC170 #HANGUL SYLLABLE SIOS YE +0xBCCF 0xC174 #HANGUL SYLLABLE SIOS YE NIEUN +0xBCD0 0xC178 #HANGUL SYLLABLE SIOS YE RIEUL +0xBCD1 0xC185 #HANGUL SYLLABLE SIOS YE IEUNG +0xBCD2 0xC18C #HANGUL SYLLABLE SIOS O +0xBCD3 0xC18D #HANGUL SYLLABLE SIOS O KIYEOK +0xBCD4 0xC18E #HANGUL SYLLABLE SIOS O SSANGKIYEOK +0xBCD5 0xC190 #HANGUL SYLLABLE SIOS O NIEUN +0xBCD6 0xC194 #HANGUL SYLLABLE SIOS O RIEUL +0xBCD7 0xC196 #HANGUL SYLLABLE SIOS O RIEULMIEUM +0xBCD8 0xC19C #HANGUL SYLLABLE SIOS O MIEUM +0xBCD9 0xC19D #HANGUL SYLLABLE SIOS O PIEUP +0xBCDA 0xC19F #HANGUL SYLLABLE SIOS O SIOS +0xBCDB 0xC1A1 #HANGUL SYLLABLE SIOS O IEUNG +0xBCDC 0xC1A5 #HANGUL SYLLABLE SIOS O THIEUTH +0xBCDD 0xC1A8 #HANGUL SYLLABLE SIOS WA +0xBCDE 0xC1A9 #HANGUL SYLLABLE SIOS WA KIYEOK +0xBCDF 0xC1AC #HANGUL SYLLABLE SIOS WA NIEUN +0xBCE0 0xC1B0 #HANGUL SYLLABLE SIOS WA RIEUL +0xBCE1 0xC1BD #HANGUL SYLLABLE SIOS WA IEUNG +0xBCE2 0xC1C4 #HANGUL SYLLABLE SIOS WAE +0xBCE3 0xC1C8 #HANGUL SYLLABLE SIOS WAE NIEUN +0xBCE4 0xC1CC #HANGUL SYLLABLE SIOS WAE RIEUL +0xBCE5 0xC1D4 #HANGUL SYLLABLE SIOS WAE MIEUM +0xBCE6 0xC1D7 #HANGUL SYLLABLE SIOS WAE SIOS +0xBCE7 0xC1D8 #HANGUL SYLLABLE SIOS WAE SSANGSIOS +0xBCE8 0xC1E0 #HANGUL SYLLABLE SIOS OE +0xBCE9 0xC1E4 #HANGUL SYLLABLE SIOS OE NIEUN +0xBCEA 0xC1E8 #HANGUL SYLLABLE SIOS OE RIEUL +0xBCEB 0xC1F0 #HANGUL SYLLABLE SIOS OE MIEUM +0xBCEC 0xC1F1 #HANGUL SYLLABLE SIOS OE PIEUP +0xBCED 0xC1F3 #HANGUL SYLLABLE SIOS OE SIOS +0xBCEE 0xC1FC #HANGUL SYLLABLE SIOS YO +0xBCEF 0xC1FD #HANGUL SYLLABLE SIOS YO KIYEOK +0xBCF0 0xC200 #HANGUL SYLLABLE SIOS YO NIEUN +0xBCF1 0xC204 #HANGUL SYLLABLE SIOS YO RIEUL +0xBCF2 0xC20C #HANGUL SYLLABLE SIOS YO MIEUM +0xBCF3 0xC20D #HANGUL SYLLABLE SIOS YO PIEUP +0xBCF4 0xC20F #HANGUL SYLLABLE SIOS YO SIOS +0xBCF5 0xC211 #HANGUL SYLLABLE SIOS YO IEUNG +0xBCF6 0xC218 #HANGUL SYLLABLE SIOS U +0xBCF7 0xC219 #HANGUL SYLLABLE SIOS U KIYEOK +0xBCF8 0xC21C #HANGUL SYLLABLE SIOS U NIEUN +0xBCF9 0xC21F #HANGUL SYLLABLE SIOS U TIKEUT +0xBCFA 0xC220 #HANGUL SYLLABLE SIOS U RIEUL +0xBCFB 0xC228 #HANGUL SYLLABLE SIOS U MIEUM +0xBCFC 0xC229 #HANGUL SYLLABLE SIOS U PIEUP +0xBCFD 0xC22B #HANGUL SYLLABLE SIOS U SIOS +0xBCFE 0xC22D #HANGUL SYLLABLE SIOS U IEUNG +0xBD41 0xD3D7 #HANGUL SYLLABLE PHIEUPH YE TIKEUT +0xBD42 0xD3D9 #HANGUL SYLLABLE PHIEUPH YE RIEULKIYEOK +0xBD43 0xD3DA #HANGUL SYLLABLE PHIEUPH YE RIEULMIEUM +0xBD44 0xD3DB #HANGUL SYLLABLE PHIEUPH YE RIEULPIEUP +0xBD45 0xD3DC #HANGUL SYLLABLE PHIEUPH YE RIEULSIOS +0xBD46 0xD3DD #HANGUL SYLLABLE PHIEUPH YE RIEULTHIEUTH +0xBD47 0xD3DE #HANGUL SYLLABLE PHIEUPH YE RIEULPHIEUPH +0xBD48 0xD3DF #HANGUL SYLLABLE PHIEUPH YE RIEULHIEUH +0xBD49 0xD3E0 #HANGUL SYLLABLE PHIEUPH YE MIEUM +0xBD4A 0xD3E2 #HANGUL SYLLABLE PHIEUPH YE PIEUPSIOS +0xBD4B 0xD3E4 #HANGUL SYLLABLE PHIEUPH YE SSANGSIOS +0xBD4C 0xD3E5 #HANGUL SYLLABLE PHIEUPH YE IEUNG +0xBD4D 0xD3E6 #HANGUL SYLLABLE PHIEUPH YE CIEUC +0xBD4E 0xD3E7 #HANGUL SYLLABLE PHIEUPH YE CHIEUCH +0xBD4F 0xD3E8 #HANGUL SYLLABLE PHIEUPH YE KHIEUKH +0xBD50 0xD3E9 #HANGUL SYLLABLE PHIEUPH YE THIEUTH +0xBD51 0xD3EA #HANGUL SYLLABLE PHIEUPH YE PHIEUPH +0xBD52 0xD3EB #HANGUL SYLLABLE PHIEUPH YE HIEUH +0xBD53 0xD3EE #HANGUL SYLLABLE PHIEUPH O SSANGKIYEOK +0xBD54 0xD3EF #HANGUL SYLLABLE PHIEUPH O KIYEOKSIOS +0xBD55 0xD3F1 #HANGUL SYLLABLE PHIEUPH O NIEUNCIEUC +0xBD56 0xD3F2 #HANGUL SYLLABLE PHIEUPH O NIEUNHIEUH +0xBD57 0xD3F3 #HANGUL SYLLABLE PHIEUPH O TIKEUT +0xBD58 0xD3F5 #HANGUL SYLLABLE PHIEUPH O RIEULKIYEOK +0xBD59 0xD3F6 #HANGUL SYLLABLE PHIEUPH O RIEULMIEUM +0xBD5A 0xD3F7 #HANGUL SYLLABLE PHIEUPH O RIEULPIEUP +0xBD61 0xD3F8 #HANGUL SYLLABLE PHIEUPH O RIEULSIOS +0xBD62 0xD3F9 #HANGUL SYLLABLE PHIEUPH O RIEULTHIEUTH +0xBD63 0xD3FA #HANGUL SYLLABLE PHIEUPH O RIEULPHIEUPH +0xBD64 0xD3FB #HANGUL SYLLABLE PHIEUPH O RIEULHIEUH +0xBD65 0xD3FE #HANGUL SYLLABLE PHIEUPH O PIEUPSIOS +0xBD66 0xD400 #HANGUL SYLLABLE PHIEUPH O SSANGSIOS +0xBD67 0xD402 #HANGUL SYLLABLE PHIEUPH O CIEUC +0xBD68 0xD403 #HANGUL SYLLABLE PHIEUPH O CHIEUCH +0xBD69 0xD404 #HANGUL SYLLABLE PHIEUPH O KHIEUKH +0xBD6A 0xD405 #HANGUL SYLLABLE PHIEUPH O THIEUTH +0xBD6B 0xD406 #HANGUL SYLLABLE PHIEUPH O PHIEUPH +0xBD6C 0xD407 #HANGUL SYLLABLE PHIEUPH O HIEUH +0xBD6D 0xD409 #HANGUL SYLLABLE PHIEUPH WA KIYEOK +0xBD6E 0xD40A #HANGUL SYLLABLE PHIEUPH WA SSANGKIYEOK +0xBD6F 0xD40B #HANGUL SYLLABLE PHIEUPH WA KIYEOKSIOS +0xBD70 0xD40C #HANGUL SYLLABLE PHIEUPH WA NIEUN +0xBD71 0xD40D #HANGUL SYLLABLE PHIEUPH WA NIEUNCIEUC +0xBD72 0xD40E #HANGUL SYLLABLE PHIEUPH WA NIEUNHIEUH +0xBD73 0xD40F #HANGUL SYLLABLE PHIEUPH WA TIKEUT +0xBD74 0xD410 #HANGUL SYLLABLE PHIEUPH WA RIEUL +0xBD75 0xD411 #HANGUL SYLLABLE PHIEUPH WA RIEULKIYEOK +0xBD76 0xD412 #HANGUL SYLLABLE PHIEUPH WA RIEULMIEUM +0xBD77 0xD413 #HANGUL SYLLABLE PHIEUPH WA RIEULPIEUP +0xBD78 0xD414 #HANGUL SYLLABLE PHIEUPH WA RIEULSIOS +0xBD79 0xD415 #HANGUL SYLLABLE PHIEUPH WA RIEULTHIEUTH +0xBD7A 0xD416 #HANGUL SYLLABLE PHIEUPH WA RIEULPHIEUPH +0xBD81 0xD417 #HANGUL SYLLABLE PHIEUPH WA RIEULHIEUH +0xBD82 0xD418 #HANGUL SYLLABLE PHIEUPH WA MIEUM +0xBD83 0xD419 #HANGUL SYLLABLE PHIEUPH WA PIEUP +0xBD84 0xD41A #HANGUL SYLLABLE PHIEUPH WA PIEUPSIOS +0xBD85 0xD41B #HANGUL SYLLABLE PHIEUPH WA SIOS +0xBD86 0xD41C #HANGUL SYLLABLE PHIEUPH WA SSANGSIOS +0xBD87 0xD41E #HANGUL SYLLABLE PHIEUPH WA CIEUC +0xBD88 0xD41F #HANGUL SYLLABLE PHIEUPH WA CHIEUCH +0xBD89 0xD420 #HANGUL SYLLABLE PHIEUPH WA KHIEUKH +0xBD8A 0xD421 #HANGUL SYLLABLE PHIEUPH WA THIEUTH +0xBD8B 0xD422 #HANGUL SYLLABLE PHIEUPH WA PHIEUPH +0xBD8C 0xD423 #HANGUL SYLLABLE PHIEUPH WA HIEUH +0xBD8D 0xD424 #HANGUL SYLLABLE PHIEUPH WAE +0xBD8E 0xD425 #HANGUL SYLLABLE PHIEUPH WAE KIYEOK +0xBD8F 0xD426 #HANGUL SYLLABLE PHIEUPH WAE SSANGKIYEOK +0xBD90 0xD427 #HANGUL SYLLABLE PHIEUPH WAE KIYEOKSIOS +0xBD91 0xD428 #HANGUL SYLLABLE PHIEUPH WAE NIEUN +0xBD92 0xD429 #HANGUL SYLLABLE PHIEUPH WAE NIEUNCIEUC +0xBD93 0xD42A #HANGUL SYLLABLE PHIEUPH WAE NIEUNHIEUH +0xBD94 0xD42B #HANGUL SYLLABLE PHIEUPH WAE TIKEUT +0xBD95 0xD42C #HANGUL SYLLABLE PHIEUPH WAE RIEUL +0xBD96 0xD42D #HANGUL SYLLABLE PHIEUPH WAE RIEULKIYEOK +0xBD97 0xD42E #HANGUL SYLLABLE PHIEUPH WAE RIEULMIEUM +0xBD98 0xD42F #HANGUL SYLLABLE PHIEUPH WAE RIEULPIEUP +0xBD99 0xD430 #HANGUL SYLLABLE PHIEUPH WAE RIEULSIOS +0xBD9A 0xD431 #HANGUL SYLLABLE PHIEUPH WAE RIEULTHIEUTH +0xBD9B 0xD432 #HANGUL SYLLABLE PHIEUPH WAE RIEULPHIEUPH +0xBD9C 0xD433 #HANGUL SYLLABLE PHIEUPH WAE RIEULHIEUH +0xBD9D 0xD434 #HANGUL SYLLABLE PHIEUPH WAE MIEUM +0xBD9E 0xD435 #HANGUL SYLLABLE PHIEUPH WAE PIEUP +0xBD9F 0xD436 #HANGUL SYLLABLE PHIEUPH WAE PIEUPSIOS +0xBDA0 0xD437 #HANGUL SYLLABLE PHIEUPH WAE SIOS +0xBDA1 0xC22F #HANGUL SYLLABLE SIOS U CHIEUCH +0xBDA2 0xC231 #HANGUL SYLLABLE SIOS U THIEUTH +0xBDA3 0xC232 #HANGUL SYLLABLE SIOS U PHIEUPH +0xBDA4 0xC234 #HANGUL SYLLABLE SIOS WEO +0xBDA5 0xC248 #HANGUL SYLLABLE SIOS WEO SSANGSIOS +0xBDA6 0xC250 #HANGUL SYLLABLE SIOS WE +0xBDA7 0xC251 #HANGUL SYLLABLE SIOS WE KIYEOK +0xBDA8 0xC254 #HANGUL SYLLABLE SIOS WE NIEUN +0xBDA9 0xC258 #HANGUL SYLLABLE SIOS WE RIEUL +0xBDAA 0xC260 #HANGUL SYLLABLE SIOS WE MIEUM +0xBDAB 0xC265 #HANGUL SYLLABLE SIOS WE IEUNG +0xBDAC 0xC26C #HANGUL SYLLABLE SIOS WI +0xBDAD 0xC26D #HANGUL SYLLABLE SIOS WI KIYEOK +0xBDAE 0xC270 #HANGUL SYLLABLE SIOS WI NIEUN +0xBDAF 0xC274 #HANGUL SYLLABLE SIOS WI RIEUL +0xBDB0 0xC27C #HANGUL SYLLABLE SIOS WI MIEUM +0xBDB1 0xC27D #HANGUL SYLLABLE SIOS WI PIEUP +0xBDB2 0xC27F #HANGUL SYLLABLE SIOS WI SIOS +0xBDB3 0xC281 #HANGUL SYLLABLE SIOS WI IEUNG +0xBDB4 0xC288 #HANGUL SYLLABLE SIOS YU +0xBDB5 0xC289 #HANGUL SYLLABLE SIOS YU KIYEOK +0xBDB6 0xC290 #HANGUL SYLLABLE SIOS YU RIEUL +0xBDB7 0xC298 #HANGUL SYLLABLE SIOS YU MIEUM +0xBDB8 0xC29B #HANGUL SYLLABLE SIOS YU SIOS +0xBDB9 0xC29D #HANGUL SYLLABLE SIOS YU IEUNG +0xBDBA 0xC2A4 #HANGUL SYLLABLE SIOS EU +0xBDBB 0xC2A5 #HANGUL SYLLABLE SIOS EU KIYEOK +0xBDBC 0xC2A8 #HANGUL SYLLABLE SIOS EU NIEUN +0xBDBD 0xC2AC #HANGUL SYLLABLE SIOS EU RIEUL +0xBDBE 0xC2AD #HANGUL SYLLABLE SIOS EU RIEULKIYEOK +0xBDBF 0xC2B4 #HANGUL SYLLABLE SIOS EU MIEUM +0xBDC0 0xC2B5 #HANGUL SYLLABLE SIOS EU PIEUP +0xBDC1 0xC2B7 #HANGUL SYLLABLE SIOS EU SIOS +0xBDC2 0xC2B9 #HANGUL SYLLABLE SIOS EU IEUNG +0xBDC3 0xC2DC #HANGUL SYLLABLE SIOS I +0xBDC4 0xC2DD #HANGUL SYLLABLE SIOS I KIYEOK +0xBDC5 0xC2E0 #HANGUL SYLLABLE SIOS I NIEUN +0xBDC6 0xC2E3 #HANGUL SYLLABLE SIOS I TIKEUT +0xBDC7 0xC2E4 #HANGUL SYLLABLE SIOS I RIEUL +0xBDC8 0xC2EB #HANGUL SYLLABLE SIOS I RIEULHIEUH +0xBDC9 0xC2EC #HANGUL SYLLABLE SIOS I MIEUM +0xBDCA 0xC2ED #HANGUL SYLLABLE SIOS I PIEUP +0xBDCB 0xC2EF #HANGUL SYLLABLE SIOS I SIOS +0xBDCC 0xC2F1 #HANGUL SYLLABLE SIOS I IEUNG +0xBDCD 0xC2F6 #HANGUL SYLLABLE SIOS I PHIEUPH +0xBDCE 0xC2F8 #HANGUL SYLLABLE SSANGSIOS A +0xBDCF 0xC2F9 #HANGUL SYLLABLE SSANGSIOS A KIYEOK +0xBDD0 0xC2FB #HANGUL SYLLABLE SSANGSIOS A KIYEOKSIOS +0xBDD1 0xC2FC #HANGUL SYLLABLE SSANGSIOS A NIEUN +0xBDD2 0xC300 #HANGUL SYLLABLE SSANGSIOS A RIEUL +0xBDD3 0xC308 #HANGUL SYLLABLE SSANGSIOS A MIEUM +0xBDD4 0xC309 #HANGUL SYLLABLE SSANGSIOS A PIEUP +0xBDD5 0xC30C #HANGUL SYLLABLE SSANGSIOS A SSANGSIOS +0xBDD6 0xC30D #HANGUL SYLLABLE SSANGSIOS A IEUNG +0xBDD7 0xC313 #HANGUL SYLLABLE SSANGSIOS A HIEUH +0xBDD8 0xC314 #HANGUL SYLLABLE SSANGSIOS AE +0xBDD9 0xC315 #HANGUL SYLLABLE SSANGSIOS AE KIYEOK +0xBDDA 0xC318 #HANGUL SYLLABLE SSANGSIOS AE NIEUN +0xBDDB 0xC31C #HANGUL SYLLABLE SSANGSIOS AE RIEUL +0xBDDC 0xC324 #HANGUL SYLLABLE SSANGSIOS AE MIEUM +0xBDDD 0xC325 #HANGUL SYLLABLE SSANGSIOS AE PIEUP +0xBDDE 0xC328 #HANGUL SYLLABLE SSANGSIOS AE SSANGSIOS +0xBDDF 0xC329 #HANGUL SYLLABLE SSANGSIOS AE IEUNG +0xBDE0 0xC345 #HANGUL SYLLABLE SSANGSIOS YA IEUNG +0xBDE1 0xC368 #HANGUL SYLLABLE SSANGSIOS EO +0xBDE2 0xC369 #HANGUL SYLLABLE SSANGSIOS EO KIYEOK +0xBDE3 0xC36C #HANGUL SYLLABLE SSANGSIOS EO NIEUN +0xBDE4 0xC370 #HANGUL SYLLABLE SSANGSIOS EO RIEUL +0xBDE5 0xC372 #HANGUL SYLLABLE SSANGSIOS EO RIEULMIEUM +0xBDE6 0xC378 #HANGUL SYLLABLE SSANGSIOS EO MIEUM +0xBDE7 0xC379 #HANGUL SYLLABLE SSANGSIOS EO PIEUP +0xBDE8 0xC37C #HANGUL SYLLABLE SSANGSIOS EO SSANGSIOS +0xBDE9 0xC37D #HANGUL SYLLABLE SSANGSIOS EO IEUNG +0xBDEA 0xC384 #HANGUL SYLLABLE SSANGSIOS E +0xBDEB 0xC388 #HANGUL SYLLABLE SSANGSIOS E NIEUN +0xBDEC 0xC38C #HANGUL SYLLABLE SSANGSIOS E RIEUL +0xBDED 0xC3C0 #HANGUL SYLLABLE SSANGSIOS YE NIEUN +0xBDEE 0xC3D8 #HANGUL SYLLABLE SSANGSIOS O +0xBDEF 0xC3D9 #HANGUL SYLLABLE SSANGSIOS O KIYEOK +0xBDF0 0xC3DC #HANGUL SYLLABLE SSANGSIOS O NIEUN +0xBDF1 0xC3DF #HANGUL SYLLABLE SSANGSIOS O TIKEUT +0xBDF2 0xC3E0 #HANGUL SYLLABLE SSANGSIOS O RIEUL +0xBDF3 0xC3E2 #HANGUL SYLLABLE SSANGSIOS O RIEULMIEUM +0xBDF4 0xC3E8 #HANGUL SYLLABLE SSANGSIOS O MIEUM +0xBDF5 0xC3E9 #HANGUL SYLLABLE SSANGSIOS O PIEUP +0xBDF6 0xC3ED #HANGUL SYLLABLE SSANGSIOS O IEUNG +0xBDF7 0xC3F4 #HANGUL SYLLABLE SSANGSIOS WA +0xBDF8 0xC3F5 #HANGUL SYLLABLE SSANGSIOS WA KIYEOK +0xBDF9 0xC3F8 #HANGUL SYLLABLE SSANGSIOS WA NIEUN +0xBDFA 0xC408 #HANGUL SYLLABLE SSANGSIOS WA SSANGSIOS +0xBDFB 0xC410 #HANGUL SYLLABLE SSANGSIOS WAE +0xBDFC 0xC424 #HANGUL SYLLABLE SSANGSIOS WAE SSANGSIOS +0xBDFD 0xC42C #HANGUL SYLLABLE SSANGSIOS OE +0xBDFE 0xC430 #HANGUL SYLLABLE SSANGSIOS OE NIEUN +0xBE41 0xD438 #HANGUL SYLLABLE PHIEUPH WAE SSANGSIOS +0xBE42 0xD439 #HANGUL SYLLABLE PHIEUPH WAE IEUNG +0xBE43 0xD43A #HANGUL SYLLABLE PHIEUPH WAE CIEUC +0xBE44 0xD43B #HANGUL SYLLABLE PHIEUPH WAE CHIEUCH +0xBE45 0xD43C #HANGUL SYLLABLE PHIEUPH WAE KHIEUKH +0xBE46 0xD43D #HANGUL SYLLABLE PHIEUPH WAE THIEUTH +0xBE47 0xD43E #HANGUL SYLLABLE PHIEUPH WAE PHIEUPH +0xBE48 0xD43F #HANGUL SYLLABLE PHIEUPH WAE HIEUH +0xBE49 0xD441 #HANGUL SYLLABLE PHIEUPH OE KIYEOK +0xBE4A 0xD442 #HANGUL SYLLABLE PHIEUPH OE SSANGKIYEOK +0xBE4B 0xD443 #HANGUL SYLLABLE PHIEUPH OE KIYEOKSIOS +0xBE4C 0xD445 #HANGUL SYLLABLE PHIEUPH OE NIEUNCIEUC +0xBE4D 0xD446 #HANGUL SYLLABLE PHIEUPH OE NIEUNHIEUH +0xBE4E 0xD447 #HANGUL SYLLABLE PHIEUPH OE TIKEUT +0xBE4F 0xD448 #HANGUL SYLLABLE PHIEUPH OE RIEUL +0xBE50 0xD449 #HANGUL SYLLABLE PHIEUPH OE RIEULKIYEOK +0xBE51 0xD44A #HANGUL SYLLABLE PHIEUPH OE RIEULMIEUM +0xBE52 0xD44B #HANGUL SYLLABLE PHIEUPH OE RIEULPIEUP +0xBE53 0xD44C #HANGUL SYLLABLE PHIEUPH OE RIEULSIOS +0xBE54 0xD44D #HANGUL SYLLABLE PHIEUPH OE RIEULTHIEUTH +0xBE55 0xD44E #HANGUL SYLLABLE PHIEUPH OE RIEULPHIEUPH +0xBE56 0xD44F #HANGUL SYLLABLE PHIEUPH OE RIEULHIEUH +0xBE57 0xD450 #HANGUL SYLLABLE PHIEUPH OE MIEUM +0xBE58 0xD451 #HANGUL SYLLABLE PHIEUPH OE PIEUP +0xBE59 0xD452 #HANGUL SYLLABLE PHIEUPH OE PIEUPSIOS +0xBE5A 0xD453 #HANGUL SYLLABLE PHIEUPH OE SIOS +0xBE61 0xD454 #HANGUL SYLLABLE PHIEUPH OE SSANGSIOS +0xBE62 0xD455 #HANGUL SYLLABLE PHIEUPH OE IEUNG +0xBE63 0xD456 #HANGUL SYLLABLE PHIEUPH OE CIEUC +0xBE64 0xD457 #HANGUL SYLLABLE PHIEUPH OE CHIEUCH +0xBE65 0xD458 #HANGUL SYLLABLE PHIEUPH OE KHIEUKH +0xBE66 0xD459 #HANGUL SYLLABLE PHIEUPH OE THIEUTH +0xBE67 0xD45A #HANGUL SYLLABLE PHIEUPH OE PHIEUPH +0xBE68 0xD45B #HANGUL SYLLABLE PHIEUPH OE HIEUH +0xBE69 0xD45D #HANGUL SYLLABLE PHIEUPH YO KIYEOK +0xBE6A 0xD45E #HANGUL SYLLABLE PHIEUPH YO SSANGKIYEOK +0xBE6B 0xD45F #HANGUL SYLLABLE PHIEUPH YO KIYEOKSIOS +0xBE6C 0xD461 #HANGUL SYLLABLE PHIEUPH YO NIEUNCIEUC +0xBE6D 0xD462 #HANGUL SYLLABLE PHIEUPH YO NIEUNHIEUH +0xBE6E 0xD463 #HANGUL SYLLABLE PHIEUPH YO TIKEUT +0xBE6F 0xD465 #HANGUL SYLLABLE PHIEUPH YO RIEULKIYEOK +0xBE70 0xD466 #HANGUL SYLLABLE PHIEUPH YO RIEULMIEUM +0xBE71 0xD467 #HANGUL SYLLABLE PHIEUPH YO RIEULPIEUP +0xBE72 0xD468 #HANGUL SYLLABLE PHIEUPH YO RIEULSIOS +0xBE73 0xD469 #HANGUL SYLLABLE PHIEUPH YO RIEULTHIEUTH +0xBE74 0xD46A #HANGUL SYLLABLE PHIEUPH YO RIEULPHIEUPH +0xBE75 0xD46B #HANGUL SYLLABLE PHIEUPH YO RIEULHIEUH +0xBE76 0xD46C #HANGUL SYLLABLE PHIEUPH YO MIEUM +0xBE77 0xD46E #HANGUL SYLLABLE PHIEUPH YO PIEUPSIOS +0xBE78 0xD470 #HANGUL SYLLABLE PHIEUPH YO SSANGSIOS +0xBE79 0xD471 #HANGUL SYLLABLE PHIEUPH YO IEUNG +0xBE7A 0xD472 #HANGUL SYLLABLE PHIEUPH YO CIEUC +0xBE81 0xD473 #HANGUL SYLLABLE PHIEUPH YO CHIEUCH +0xBE82 0xD474 #HANGUL SYLLABLE PHIEUPH YO KHIEUKH +0xBE83 0xD475 #HANGUL SYLLABLE PHIEUPH YO THIEUTH +0xBE84 0xD476 #HANGUL SYLLABLE PHIEUPH YO PHIEUPH +0xBE85 0xD477 #HANGUL SYLLABLE PHIEUPH YO HIEUH +0xBE86 0xD47A #HANGUL SYLLABLE PHIEUPH U SSANGKIYEOK +0xBE87 0xD47B #HANGUL SYLLABLE PHIEUPH U KIYEOKSIOS +0xBE88 0xD47D #HANGUL SYLLABLE PHIEUPH U NIEUNCIEUC +0xBE89 0xD47E #HANGUL SYLLABLE PHIEUPH U NIEUNHIEUH +0xBE8A 0xD481 #HANGUL SYLLABLE PHIEUPH U RIEULKIYEOK +0xBE8B 0xD483 #HANGUL SYLLABLE PHIEUPH U RIEULPIEUP +0xBE8C 0xD484 #HANGUL SYLLABLE PHIEUPH U RIEULSIOS +0xBE8D 0xD485 #HANGUL SYLLABLE PHIEUPH U RIEULTHIEUTH +0xBE8E 0xD486 #HANGUL SYLLABLE PHIEUPH U RIEULPHIEUPH +0xBE8F 0xD487 #HANGUL SYLLABLE PHIEUPH U RIEULHIEUH +0xBE90 0xD48A #HANGUL SYLLABLE PHIEUPH U PIEUPSIOS +0xBE91 0xD48C #HANGUL SYLLABLE PHIEUPH U SSANGSIOS +0xBE92 0xD48E #HANGUL SYLLABLE PHIEUPH U CIEUC +0xBE93 0xD48F #HANGUL SYLLABLE PHIEUPH U CHIEUCH +0xBE94 0xD490 #HANGUL SYLLABLE PHIEUPH U KHIEUKH +0xBE95 0xD491 #HANGUL SYLLABLE PHIEUPH U THIEUTH +0xBE96 0xD492 #HANGUL SYLLABLE PHIEUPH U PHIEUPH +0xBE97 0xD493 #HANGUL SYLLABLE PHIEUPH U HIEUH +0xBE98 0xD495 #HANGUL SYLLABLE PHIEUPH WEO KIYEOK +0xBE99 0xD496 #HANGUL SYLLABLE PHIEUPH WEO SSANGKIYEOK +0xBE9A 0xD497 #HANGUL SYLLABLE PHIEUPH WEO KIYEOKSIOS +0xBE9B 0xD498 #HANGUL SYLLABLE PHIEUPH WEO NIEUN +0xBE9C 0xD499 #HANGUL SYLLABLE PHIEUPH WEO NIEUNCIEUC +0xBE9D 0xD49A #HANGUL SYLLABLE PHIEUPH WEO NIEUNHIEUH +0xBE9E 0xD49B #HANGUL SYLLABLE PHIEUPH WEO TIKEUT +0xBE9F 0xD49C #HANGUL SYLLABLE PHIEUPH WEO RIEUL +0xBEA0 0xD49D #HANGUL SYLLABLE PHIEUPH WEO RIEULKIYEOK +0xBEA1 0xC434 #HANGUL SYLLABLE SSANGSIOS OE RIEUL +0xBEA2 0xC43C #HANGUL SYLLABLE SSANGSIOS OE MIEUM +0xBEA3 0xC43D #HANGUL SYLLABLE SSANGSIOS OE PIEUP +0xBEA4 0xC448 #HANGUL SYLLABLE SSANGSIOS YO +0xBEA5 0xC464 #HANGUL SYLLABLE SSANGSIOS U +0xBEA6 0xC465 #HANGUL SYLLABLE SSANGSIOS U KIYEOK +0xBEA7 0xC468 #HANGUL SYLLABLE SSANGSIOS U NIEUN +0xBEA8 0xC46C #HANGUL SYLLABLE SSANGSIOS U RIEUL +0xBEA9 0xC474 #HANGUL SYLLABLE SSANGSIOS U MIEUM +0xBEAA 0xC475 #HANGUL SYLLABLE SSANGSIOS U PIEUP +0xBEAB 0xC479 #HANGUL SYLLABLE SSANGSIOS U IEUNG +0xBEAC 0xC480 #HANGUL SYLLABLE SSANGSIOS WEO +0xBEAD 0xC494 #HANGUL SYLLABLE SSANGSIOS WEO SSANGSIOS +0xBEAE 0xC49C #HANGUL SYLLABLE SSANGSIOS WE +0xBEAF 0xC4B8 #HANGUL SYLLABLE SSANGSIOS WI +0xBEB0 0xC4BC #HANGUL SYLLABLE SSANGSIOS WI NIEUN +0xBEB1 0xC4E9 #HANGUL SYLLABLE SSANGSIOS YU IEUNG +0xBEB2 0xC4F0 #HANGUL SYLLABLE SSANGSIOS EU +0xBEB3 0xC4F1 #HANGUL SYLLABLE SSANGSIOS EU KIYEOK +0xBEB4 0xC4F4 #HANGUL SYLLABLE SSANGSIOS EU NIEUN +0xBEB5 0xC4F8 #HANGUL SYLLABLE SSANGSIOS EU RIEUL +0xBEB6 0xC4FA #HANGUL SYLLABLE SSANGSIOS EU RIEULMIEUM +0xBEB7 0xC4FF #HANGUL SYLLABLE SSANGSIOS EU RIEULHIEUH +0xBEB8 0xC500 #HANGUL SYLLABLE SSANGSIOS EU MIEUM +0xBEB9 0xC501 #HANGUL SYLLABLE SSANGSIOS EU PIEUP +0xBEBA 0xC50C #HANGUL SYLLABLE SSANGSIOS YI +0xBEBB 0xC510 #HANGUL SYLLABLE SSANGSIOS YI NIEUN +0xBEBC 0xC514 #HANGUL SYLLABLE SSANGSIOS YI RIEUL +0xBEBD 0xC51C #HANGUL SYLLABLE SSANGSIOS YI MIEUM +0xBEBE 0xC528 #HANGUL SYLLABLE SSANGSIOS I +0xBEBF 0xC529 #HANGUL SYLLABLE SSANGSIOS I KIYEOK +0xBEC0 0xC52C #HANGUL SYLLABLE SSANGSIOS I NIEUN +0xBEC1 0xC530 #HANGUL SYLLABLE SSANGSIOS I RIEUL +0xBEC2 0xC538 #HANGUL SYLLABLE SSANGSIOS I MIEUM +0xBEC3 0xC539 #HANGUL SYLLABLE SSANGSIOS I PIEUP +0xBEC4 0xC53B #HANGUL SYLLABLE SSANGSIOS I SIOS +0xBEC5 0xC53D #HANGUL SYLLABLE SSANGSIOS I IEUNG +0xBEC6 0xC544 #HANGUL SYLLABLE IEUNG A +0xBEC7 0xC545 #HANGUL SYLLABLE IEUNG A KIYEOK +0xBEC8 0xC548 #HANGUL SYLLABLE IEUNG A NIEUN +0xBEC9 0xC549 #HANGUL SYLLABLE IEUNG A NIEUNCIEUC +0xBECA 0xC54A #HANGUL SYLLABLE IEUNG A NIEUNHIEUH +0xBECB 0xC54C #HANGUL SYLLABLE IEUNG A RIEUL +0xBECC 0xC54D #HANGUL SYLLABLE IEUNG A RIEULKIYEOK +0xBECD 0xC54E #HANGUL SYLLABLE IEUNG A RIEULMIEUM +0xBECE 0xC553 #HANGUL SYLLABLE IEUNG A RIEULHIEUH +0xBECF 0xC554 #HANGUL SYLLABLE IEUNG A MIEUM +0xBED0 0xC555 #HANGUL SYLLABLE IEUNG A PIEUP +0xBED1 0xC557 #HANGUL SYLLABLE IEUNG A SIOS +0xBED2 0xC558 #HANGUL SYLLABLE IEUNG A SSANGSIOS +0xBED3 0xC559 #HANGUL SYLLABLE IEUNG A IEUNG +0xBED4 0xC55D #HANGUL SYLLABLE IEUNG A THIEUTH +0xBED5 0xC55E #HANGUL SYLLABLE IEUNG A PHIEUPH +0xBED6 0xC560 #HANGUL SYLLABLE IEUNG AE +0xBED7 0xC561 #HANGUL SYLLABLE IEUNG AE KIYEOK +0xBED8 0xC564 #HANGUL SYLLABLE IEUNG AE NIEUN +0xBED9 0xC568 #HANGUL SYLLABLE IEUNG AE RIEUL +0xBEDA 0xC570 #HANGUL SYLLABLE IEUNG AE MIEUM +0xBEDB 0xC571 #HANGUL SYLLABLE IEUNG AE PIEUP +0xBEDC 0xC573 #HANGUL SYLLABLE IEUNG AE SIOS +0xBEDD 0xC574 #HANGUL SYLLABLE IEUNG AE SSANGSIOS +0xBEDE 0xC575 #HANGUL SYLLABLE IEUNG AE IEUNG +0xBEDF 0xC57C #HANGUL SYLLABLE IEUNG YA +0xBEE0 0xC57D #HANGUL SYLLABLE IEUNG YA KIYEOK +0xBEE1 0xC580 #HANGUL SYLLABLE IEUNG YA NIEUN +0xBEE2 0xC584 #HANGUL SYLLABLE IEUNG YA RIEUL +0xBEE3 0xC587 #HANGUL SYLLABLE IEUNG YA RIEULPIEUP +0xBEE4 0xC58C #HANGUL SYLLABLE IEUNG YA MIEUM +0xBEE5 0xC58D #HANGUL SYLLABLE IEUNG YA PIEUP +0xBEE6 0xC58F #HANGUL SYLLABLE IEUNG YA SIOS +0xBEE7 0xC591 #HANGUL SYLLABLE IEUNG YA IEUNG +0xBEE8 0xC595 #HANGUL SYLLABLE IEUNG YA THIEUTH +0xBEE9 0xC597 #HANGUL SYLLABLE IEUNG YA HIEUH +0xBEEA 0xC598 #HANGUL SYLLABLE IEUNG YAE +0xBEEB 0xC59C #HANGUL SYLLABLE IEUNG YAE NIEUN +0xBEEC 0xC5A0 #HANGUL SYLLABLE IEUNG YAE RIEUL +0xBEED 0xC5A9 #HANGUL SYLLABLE IEUNG YAE PIEUP +0xBEEE 0xC5B4 #HANGUL SYLLABLE IEUNG EO +0xBEEF 0xC5B5 #HANGUL SYLLABLE IEUNG EO KIYEOK +0xBEF0 0xC5B8 #HANGUL SYLLABLE IEUNG EO NIEUN +0xBEF1 0xC5B9 #HANGUL SYLLABLE IEUNG EO NIEUNCIEUC +0xBEF2 0xC5BB #HANGUL SYLLABLE IEUNG EO TIKEUT +0xBEF3 0xC5BC #HANGUL SYLLABLE IEUNG EO RIEUL +0xBEF4 0xC5BD #HANGUL SYLLABLE IEUNG EO RIEULKIYEOK +0xBEF5 0xC5BE #HANGUL SYLLABLE IEUNG EO RIEULMIEUM +0xBEF6 0xC5C4 #HANGUL SYLLABLE IEUNG EO MIEUM +0xBEF7 0xC5C5 #HANGUL SYLLABLE IEUNG EO PIEUP +0xBEF8 0xC5C6 #HANGUL SYLLABLE IEUNG EO PIEUPSIOS +0xBEF9 0xC5C7 #HANGUL SYLLABLE IEUNG EO SIOS +0xBEFA 0xC5C8 #HANGUL SYLLABLE IEUNG EO SSANGSIOS +0xBEFB 0xC5C9 #HANGUL SYLLABLE IEUNG EO IEUNG +0xBEFC 0xC5CA #HANGUL SYLLABLE IEUNG EO CIEUC +0xBEFD 0xC5CC #HANGUL SYLLABLE IEUNG EO KHIEUKH +0xBEFE 0xC5CE #HANGUL SYLLABLE IEUNG EO PHIEUPH +0xBF41 0xD49E #HANGUL SYLLABLE PHIEUPH WEO RIEULMIEUM +0xBF42 0xD49F #HANGUL SYLLABLE PHIEUPH WEO RIEULPIEUP +0xBF43 0xD4A0 #HANGUL SYLLABLE PHIEUPH WEO RIEULSIOS +0xBF44 0xD4A1 #HANGUL SYLLABLE PHIEUPH WEO RIEULTHIEUTH +0xBF45 0xD4A2 #HANGUL SYLLABLE PHIEUPH WEO RIEULPHIEUPH +0xBF46 0xD4A3 #HANGUL SYLLABLE PHIEUPH WEO RIEULHIEUH +0xBF47 0xD4A4 #HANGUL SYLLABLE PHIEUPH WEO MIEUM +0xBF48 0xD4A5 #HANGUL SYLLABLE PHIEUPH WEO PIEUP +0xBF49 0xD4A6 #HANGUL SYLLABLE PHIEUPH WEO PIEUPSIOS +0xBF4A 0xD4A7 #HANGUL SYLLABLE PHIEUPH WEO SIOS +0xBF4B 0xD4A8 #HANGUL SYLLABLE PHIEUPH WEO SSANGSIOS +0xBF4C 0xD4AA #HANGUL SYLLABLE PHIEUPH WEO CIEUC +0xBF4D 0xD4AB #HANGUL SYLLABLE PHIEUPH WEO CHIEUCH +0xBF4E 0xD4AC #HANGUL SYLLABLE PHIEUPH WEO KHIEUKH +0xBF4F 0xD4AD #HANGUL SYLLABLE PHIEUPH WEO THIEUTH +0xBF50 0xD4AE #HANGUL SYLLABLE PHIEUPH WEO PHIEUPH +0xBF51 0xD4AF #HANGUL SYLLABLE PHIEUPH WEO HIEUH +0xBF52 0xD4B0 #HANGUL SYLLABLE PHIEUPH WE +0xBF53 0xD4B1 #HANGUL SYLLABLE PHIEUPH WE KIYEOK +0xBF54 0xD4B2 #HANGUL SYLLABLE PHIEUPH WE SSANGKIYEOK +0xBF55 0xD4B3 #HANGUL SYLLABLE PHIEUPH WE KIYEOKSIOS +0xBF56 0xD4B4 #HANGUL SYLLABLE PHIEUPH WE NIEUN +0xBF57 0xD4B5 #HANGUL SYLLABLE PHIEUPH WE NIEUNCIEUC +0xBF58 0xD4B6 #HANGUL SYLLABLE PHIEUPH WE NIEUNHIEUH +0xBF59 0xD4B7 #HANGUL SYLLABLE PHIEUPH WE TIKEUT +0xBF5A 0xD4B8 #HANGUL SYLLABLE PHIEUPH WE RIEUL +0xBF61 0xD4B9 #HANGUL SYLLABLE PHIEUPH WE RIEULKIYEOK +0xBF62 0xD4BA #HANGUL SYLLABLE PHIEUPH WE RIEULMIEUM +0xBF63 0xD4BB #HANGUL SYLLABLE PHIEUPH WE RIEULPIEUP +0xBF64 0xD4BC #HANGUL SYLLABLE PHIEUPH WE RIEULSIOS +0xBF65 0xD4BD #HANGUL SYLLABLE PHIEUPH WE RIEULTHIEUTH +0xBF66 0xD4BE #HANGUL SYLLABLE PHIEUPH WE RIEULPHIEUPH +0xBF67 0xD4BF #HANGUL SYLLABLE PHIEUPH WE RIEULHIEUH +0xBF68 0xD4C0 #HANGUL SYLLABLE PHIEUPH WE MIEUM +0xBF69 0xD4C1 #HANGUL SYLLABLE PHIEUPH WE PIEUP +0xBF6A 0xD4C2 #HANGUL SYLLABLE PHIEUPH WE PIEUPSIOS +0xBF6B 0xD4C3 #HANGUL SYLLABLE PHIEUPH WE SIOS +0xBF6C 0xD4C4 #HANGUL SYLLABLE PHIEUPH WE SSANGSIOS +0xBF6D 0xD4C5 #HANGUL SYLLABLE PHIEUPH WE IEUNG +0xBF6E 0xD4C6 #HANGUL SYLLABLE PHIEUPH WE CIEUC +0xBF6F 0xD4C7 #HANGUL SYLLABLE PHIEUPH WE CHIEUCH +0xBF70 0xD4C8 #HANGUL SYLLABLE PHIEUPH WE KHIEUKH +0xBF71 0xD4C9 #HANGUL SYLLABLE PHIEUPH WE THIEUTH +0xBF72 0xD4CA #HANGUL SYLLABLE PHIEUPH WE PHIEUPH +0xBF73 0xD4CB #HANGUL SYLLABLE PHIEUPH WE HIEUH +0xBF74 0xD4CD #HANGUL SYLLABLE PHIEUPH WI KIYEOK +0xBF75 0xD4CE #HANGUL SYLLABLE PHIEUPH WI SSANGKIYEOK +0xBF76 0xD4CF #HANGUL SYLLABLE PHIEUPH WI KIYEOKSIOS +0xBF77 0xD4D1 #HANGUL SYLLABLE PHIEUPH WI NIEUNCIEUC +0xBF78 0xD4D2 #HANGUL SYLLABLE PHIEUPH WI NIEUNHIEUH +0xBF79 0xD4D3 #HANGUL SYLLABLE PHIEUPH WI TIKEUT +0xBF7A 0xD4D5 #HANGUL SYLLABLE PHIEUPH WI RIEULKIYEOK +0xBF81 0xD4D6 #HANGUL SYLLABLE PHIEUPH WI RIEULMIEUM +0xBF82 0xD4D7 #HANGUL SYLLABLE PHIEUPH WI RIEULPIEUP +0xBF83 0xD4D8 #HANGUL SYLLABLE PHIEUPH WI RIEULSIOS +0xBF84 0xD4D9 #HANGUL SYLLABLE PHIEUPH WI RIEULTHIEUTH +0xBF85 0xD4DA #HANGUL SYLLABLE PHIEUPH WI RIEULPHIEUPH +0xBF86 0xD4DB #HANGUL SYLLABLE PHIEUPH WI RIEULHIEUH +0xBF87 0xD4DD #HANGUL SYLLABLE PHIEUPH WI PIEUP +0xBF88 0xD4DE #HANGUL SYLLABLE PHIEUPH WI PIEUPSIOS +0xBF89 0xD4E0 #HANGUL SYLLABLE PHIEUPH WI SSANGSIOS +0xBF8A 0xD4E1 #HANGUL SYLLABLE PHIEUPH WI IEUNG +0xBF8B 0xD4E2 #HANGUL SYLLABLE PHIEUPH WI CIEUC +0xBF8C 0xD4E3 #HANGUL SYLLABLE PHIEUPH WI CHIEUCH +0xBF8D 0xD4E4 #HANGUL SYLLABLE PHIEUPH WI KHIEUKH +0xBF8E 0xD4E5 #HANGUL SYLLABLE PHIEUPH WI THIEUTH +0xBF8F 0xD4E6 #HANGUL SYLLABLE PHIEUPH WI PHIEUPH +0xBF90 0xD4E7 #HANGUL SYLLABLE PHIEUPH WI HIEUH +0xBF91 0xD4E9 #HANGUL SYLLABLE PHIEUPH YU KIYEOK +0xBF92 0xD4EA #HANGUL SYLLABLE PHIEUPH YU SSANGKIYEOK +0xBF93 0xD4EB #HANGUL SYLLABLE PHIEUPH YU KIYEOKSIOS +0xBF94 0xD4ED #HANGUL SYLLABLE PHIEUPH YU NIEUNCIEUC +0xBF95 0xD4EE #HANGUL SYLLABLE PHIEUPH YU NIEUNHIEUH +0xBF96 0xD4EF #HANGUL SYLLABLE PHIEUPH YU TIKEUT +0xBF97 0xD4F1 #HANGUL SYLLABLE PHIEUPH YU RIEULKIYEOK +0xBF98 0xD4F2 #HANGUL SYLLABLE PHIEUPH YU RIEULMIEUM +0xBF99 0xD4F3 #HANGUL SYLLABLE PHIEUPH YU RIEULPIEUP +0xBF9A 0xD4F4 #HANGUL SYLLABLE PHIEUPH YU RIEULSIOS +0xBF9B 0xD4F5 #HANGUL SYLLABLE PHIEUPH YU RIEULTHIEUTH +0xBF9C 0xD4F6 #HANGUL SYLLABLE PHIEUPH YU RIEULPHIEUPH +0xBF9D 0xD4F7 #HANGUL SYLLABLE PHIEUPH YU RIEULHIEUH +0xBF9E 0xD4F9 #HANGUL SYLLABLE PHIEUPH YU PIEUP +0xBF9F 0xD4FA #HANGUL SYLLABLE PHIEUPH YU PIEUPSIOS +0xBFA0 0xD4FC #HANGUL SYLLABLE PHIEUPH YU SSANGSIOS +0xBFA1 0xC5D0 #HANGUL SYLLABLE IEUNG E +0xBFA2 0xC5D1 #HANGUL SYLLABLE IEUNG E KIYEOK +0xBFA3 0xC5D4 #HANGUL SYLLABLE IEUNG E NIEUN +0xBFA4 0xC5D8 #HANGUL SYLLABLE IEUNG E RIEUL +0xBFA5 0xC5E0 #HANGUL SYLLABLE IEUNG E MIEUM +0xBFA6 0xC5E1 #HANGUL SYLLABLE IEUNG E PIEUP +0xBFA7 0xC5E3 #HANGUL SYLLABLE IEUNG E SIOS +0xBFA8 0xC5E5 #HANGUL SYLLABLE IEUNG E IEUNG +0xBFA9 0xC5EC #HANGUL SYLLABLE IEUNG YEO +0xBFAA 0xC5ED #HANGUL SYLLABLE IEUNG YEO KIYEOK +0xBFAB 0xC5EE #HANGUL SYLLABLE IEUNG YEO SSANGKIYEOK +0xBFAC 0xC5F0 #HANGUL SYLLABLE IEUNG YEO NIEUN +0xBFAD 0xC5F4 #HANGUL SYLLABLE IEUNG YEO RIEUL +0xBFAE 0xC5F6 #HANGUL SYLLABLE IEUNG YEO RIEULMIEUM +0xBFAF 0xC5F7 #HANGUL SYLLABLE IEUNG YEO RIEULPIEUP +0xBFB0 0xC5FC #HANGUL SYLLABLE IEUNG YEO MIEUM +0xBFB1 0xC5FD #HANGUL SYLLABLE IEUNG YEO PIEUP +0xBFB2 0xC5FE #HANGUL SYLLABLE IEUNG YEO PIEUPSIOS +0xBFB3 0xC5FF #HANGUL SYLLABLE IEUNG YEO SIOS +0xBFB4 0xC600 #HANGUL SYLLABLE IEUNG YEO SSANGSIOS +0xBFB5 0xC601 #HANGUL SYLLABLE IEUNG YEO IEUNG +0xBFB6 0xC605 #HANGUL SYLLABLE IEUNG YEO THIEUTH +0xBFB7 0xC606 #HANGUL SYLLABLE IEUNG YEO PHIEUPH +0xBFB8 0xC607 #HANGUL SYLLABLE IEUNG YEO HIEUH +0xBFB9 0xC608 #HANGUL SYLLABLE IEUNG YE +0xBFBA 0xC60C #HANGUL SYLLABLE IEUNG YE NIEUN +0xBFBB 0xC610 #HANGUL SYLLABLE IEUNG YE RIEUL +0xBFBC 0xC618 #HANGUL SYLLABLE IEUNG YE MIEUM +0xBFBD 0xC619 #HANGUL SYLLABLE IEUNG YE PIEUP +0xBFBE 0xC61B #HANGUL SYLLABLE IEUNG YE SIOS +0xBFBF 0xC61C #HANGUL SYLLABLE IEUNG YE SSANGSIOS +0xBFC0 0xC624 #HANGUL SYLLABLE IEUNG O +0xBFC1 0xC625 #HANGUL SYLLABLE IEUNG O KIYEOK +0xBFC2 0xC628 #HANGUL SYLLABLE IEUNG O NIEUN +0xBFC3 0xC62C #HANGUL SYLLABLE IEUNG O RIEUL +0xBFC4 0xC62D #HANGUL SYLLABLE IEUNG O RIEULKIYEOK +0xBFC5 0xC62E #HANGUL SYLLABLE IEUNG O RIEULMIEUM +0xBFC6 0xC630 #HANGUL SYLLABLE IEUNG O RIEULSIOS +0xBFC7 0xC633 #HANGUL SYLLABLE IEUNG O RIEULHIEUH +0xBFC8 0xC634 #HANGUL SYLLABLE IEUNG O MIEUM +0xBFC9 0xC635 #HANGUL SYLLABLE IEUNG O PIEUP +0xBFCA 0xC637 #HANGUL SYLLABLE IEUNG O SIOS +0xBFCB 0xC639 #HANGUL SYLLABLE IEUNG O IEUNG +0xBFCC 0xC63B #HANGUL SYLLABLE IEUNG O CHIEUCH +0xBFCD 0xC640 #HANGUL SYLLABLE IEUNG WA +0xBFCE 0xC641 #HANGUL SYLLABLE IEUNG WA KIYEOK +0xBFCF 0xC644 #HANGUL SYLLABLE IEUNG WA NIEUN +0xBFD0 0xC648 #HANGUL SYLLABLE IEUNG WA RIEUL +0xBFD1 0xC650 #HANGUL SYLLABLE IEUNG WA MIEUM +0xBFD2 0xC651 #HANGUL SYLLABLE IEUNG WA PIEUP +0xBFD3 0xC653 #HANGUL SYLLABLE IEUNG WA SIOS +0xBFD4 0xC654 #HANGUL SYLLABLE IEUNG WA SSANGSIOS +0xBFD5 0xC655 #HANGUL SYLLABLE IEUNG WA IEUNG +0xBFD6 0xC65C #HANGUL SYLLABLE IEUNG WAE +0xBFD7 0xC65D #HANGUL SYLLABLE IEUNG WAE KIYEOK +0xBFD8 0xC660 #HANGUL SYLLABLE IEUNG WAE NIEUN +0xBFD9 0xC66C #HANGUL SYLLABLE IEUNG WAE MIEUM +0xBFDA 0xC66F #HANGUL SYLLABLE IEUNG WAE SIOS +0xBFDB 0xC671 #HANGUL SYLLABLE IEUNG WAE IEUNG +0xBFDC 0xC678 #HANGUL SYLLABLE IEUNG OE +0xBFDD 0xC679 #HANGUL SYLLABLE IEUNG OE KIYEOK +0xBFDE 0xC67C #HANGUL SYLLABLE IEUNG OE NIEUN +0xBFDF 0xC680 #HANGUL SYLLABLE IEUNG OE RIEUL +0xBFE0 0xC688 #HANGUL SYLLABLE IEUNG OE MIEUM +0xBFE1 0xC689 #HANGUL SYLLABLE IEUNG OE PIEUP +0xBFE2 0xC68B #HANGUL SYLLABLE IEUNG OE SIOS +0xBFE3 0xC68D #HANGUL SYLLABLE IEUNG OE IEUNG +0xBFE4 0xC694 #HANGUL SYLLABLE IEUNG YO +0xBFE5 0xC695 #HANGUL SYLLABLE IEUNG YO KIYEOK +0xBFE6 0xC698 #HANGUL SYLLABLE IEUNG YO NIEUN +0xBFE7 0xC69C #HANGUL SYLLABLE IEUNG YO RIEUL +0xBFE8 0xC6A4 #HANGUL SYLLABLE IEUNG YO MIEUM +0xBFE9 0xC6A5 #HANGUL SYLLABLE IEUNG YO PIEUP +0xBFEA 0xC6A7 #HANGUL SYLLABLE IEUNG YO SIOS +0xBFEB 0xC6A9 #HANGUL SYLLABLE IEUNG YO IEUNG +0xBFEC 0xC6B0 #HANGUL SYLLABLE IEUNG U +0xBFED 0xC6B1 #HANGUL SYLLABLE IEUNG U KIYEOK +0xBFEE 0xC6B4 #HANGUL SYLLABLE IEUNG U NIEUN +0xBFEF 0xC6B8 #HANGUL SYLLABLE IEUNG U RIEUL +0xBFF0 0xC6B9 #HANGUL SYLLABLE IEUNG U RIEULKIYEOK +0xBFF1 0xC6BA #HANGUL SYLLABLE IEUNG U RIEULMIEUM +0xBFF2 0xC6C0 #HANGUL SYLLABLE IEUNG U MIEUM +0xBFF3 0xC6C1 #HANGUL SYLLABLE IEUNG U PIEUP +0xBFF4 0xC6C3 #HANGUL SYLLABLE IEUNG U SIOS +0xBFF5 0xC6C5 #HANGUL SYLLABLE IEUNG U IEUNG +0xBFF6 0xC6CC #HANGUL SYLLABLE IEUNG WEO +0xBFF7 0xC6CD #HANGUL SYLLABLE IEUNG WEO KIYEOK +0xBFF8 0xC6D0 #HANGUL SYLLABLE IEUNG WEO NIEUN +0xBFF9 0xC6D4 #HANGUL SYLLABLE IEUNG WEO RIEUL +0xBFFA 0xC6DC #HANGUL SYLLABLE IEUNG WEO MIEUM +0xBFFB 0xC6DD #HANGUL SYLLABLE IEUNG WEO PIEUP +0xBFFC 0xC6E0 #HANGUL SYLLABLE IEUNG WEO SSANGSIOS +0xBFFD 0xC6E1 #HANGUL SYLLABLE IEUNG WEO IEUNG +0xBFFE 0xC6E8 #HANGUL SYLLABLE IEUNG WE +0xC041 0xD4FE #HANGUL SYLLABLE PHIEUPH YU CIEUC +0xC042 0xD4FF #HANGUL SYLLABLE PHIEUPH YU CHIEUCH +0xC043 0xD500 #HANGUL SYLLABLE PHIEUPH YU KHIEUKH +0xC044 0xD501 #HANGUL SYLLABLE PHIEUPH YU THIEUTH +0xC045 0xD502 #HANGUL SYLLABLE PHIEUPH YU PHIEUPH +0xC046 0xD503 #HANGUL SYLLABLE PHIEUPH YU HIEUH +0xC047 0xD505 #HANGUL SYLLABLE PHIEUPH EU KIYEOK +0xC048 0xD506 #HANGUL SYLLABLE PHIEUPH EU SSANGKIYEOK +0xC049 0xD507 #HANGUL SYLLABLE PHIEUPH EU KIYEOKSIOS +0xC04A 0xD509 #HANGUL SYLLABLE PHIEUPH EU NIEUNCIEUC +0xC04B 0xD50A #HANGUL SYLLABLE PHIEUPH EU NIEUNHIEUH +0xC04C 0xD50B #HANGUL SYLLABLE PHIEUPH EU TIKEUT +0xC04D 0xD50D #HANGUL SYLLABLE PHIEUPH EU RIEULKIYEOK +0xC04E 0xD50E #HANGUL SYLLABLE PHIEUPH EU RIEULMIEUM +0xC04F 0xD50F #HANGUL SYLLABLE PHIEUPH EU RIEULPIEUP +0xC050 0xD510 #HANGUL SYLLABLE PHIEUPH EU RIEULSIOS +0xC051 0xD511 #HANGUL SYLLABLE PHIEUPH EU RIEULTHIEUTH +0xC052 0xD512 #HANGUL SYLLABLE PHIEUPH EU RIEULPHIEUPH +0xC053 0xD513 #HANGUL SYLLABLE PHIEUPH EU RIEULHIEUH +0xC054 0xD516 #HANGUL SYLLABLE PHIEUPH EU PIEUPSIOS +0xC055 0xD518 #HANGUL SYLLABLE PHIEUPH EU SSANGSIOS +0xC056 0xD519 #HANGUL SYLLABLE PHIEUPH EU IEUNG +0xC057 0xD51A #HANGUL SYLLABLE PHIEUPH EU CIEUC +0xC058 0xD51B #HANGUL SYLLABLE PHIEUPH EU CHIEUCH +0xC059 0xD51C #HANGUL SYLLABLE PHIEUPH EU KHIEUKH +0xC05A 0xD51D #HANGUL SYLLABLE PHIEUPH EU THIEUTH +0xC061 0xD51E #HANGUL SYLLABLE PHIEUPH EU PHIEUPH +0xC062 0xD51F #HANGUL SYLLABLE PHIEUPH EU HIEUH +0xC063 0xD520 #HANGUL SYLLABLE PHIEUPH YI +0xC064 0xD521 #HANGUL SYLLABLE PHIEUPH YI KIYEOK +0xC065 0xD522 #HANGUL SYLLABLE PHIEUPH YI SSANGKIYEOK +0xC066 0xD523 #HANGUL SYLLABLE PHIEUPH YI KIYEOKSIOS +0xC067 0xD524 #HANGUL SYLLABLE PHIEUPH YI NIEUN +0xC068 0xD525 #HANGUL SYLLABLE PHIEUPH YI NIEUNCIEUC +0xC069 0xD526 #HANGUL SYLLABLE PHIEUPH YI NIEUNHIEUH +0xC06A 0xD527 #HANGUL SYLLABLE PHIEUPH YI TIKEUT +0xC06B 0xD528 #HANGUL SYLLABLE PHIEUPH YI RIEUL +0xC06C 0xD529 #HANGUL SYLLABLE PHIEUPH YI RIEULKIYEOK +0xC06D 0xD52A #HANGUL SYLLABLE PHIEUPH YI RIEULMIEUM +0xC06E 0xD52B #HANGUL SYLLABLE PHIEUPH YI RIEULPIEUP +0xC06F 0xD52C #HANGUL SYLLABLE PHIEUPH YI RIEULSIOS +0xC070 0xD52D #HANGUL SYLLABLE PHIEUPH YI RIEULTHIEUTH +0xC071 0xD52E #HANGUL SYLLABLE PHIEUPH YI RIEULPHIEUPH +0xC072 0xD52F #HANGUL SYLLABLE PHIEUPH YI RIEULHIEUH +0xC073 0xD530 #HANGUL SYLLABLE PHIEUPH YI MIEUM +0xC074 0xD531 #HANGUL SYLLABLE PHIEUPH YI PIEUP +0xC075 0xD532 #HANGUL SYLLABLE PHIEUPH YI PIEUPSIOS +0xC076 0xD533 #HANGUL SYLLABLE PHIEUPH YI SIOS +0xC077 0xD534 #HANGUL SYLLABLE PHIEUPH YI SSANGSIOS +0xC078 0xD535 #HANGUL SYLLABLE PHIEUPH YI IEUNG +0xC079 0xD536 #HANGUL SYLLABLE PHIEUPH YI CIEUC +0xC07A 0xD537 #HANGUL SYLLABLE PHIEUPH YI CHIEUCH +0xC081 0xD538 #HANGUL SYLLABLE PHIEUPH YI KHIEUKH +0xC082 0xD539 #HANGUL SYLLABLE PHIEUPH YI THIEUTH +0xC083 0xD53A #HANGUL SYLLABLE PHIEUPH YI PHIEUPH +0xC084 0xD53B #HANGUL SYLLABLE PHIEUPH YI HIEUH +0xC085 0xD53E #HANGUL SYLLABLE PHIEUPH I SSANGKIYEOK +0xC086 0xD53F #HANGUL SYLLABLE PHIEUPH I KIYEOKSIOS +0xC087 0xD541 #HANGUL SYLLABLE PHIEUPH I NIEUNCIEUC +0xC088 0xD542 #HANGUL SYLLABLE PHIEUPH I NIEUNHIEUH +0xC089 0xD543 #HANGUL SYLLABLE PHIEUPH I TIKEUT +0xC08A 0xD545 #HANGUL SYLLABLE PHIEUPH I RIEULKIYEOK +0xC08B 0xD546 #HANGUL SYLLABLE PHIEUPH I RIEULMIEUM +0xC08C 0xD547 #HANGUL SYLLABLE PHIEUPH I RIEULPIEUP +0xC08D 0xD548 #HANGUL SYLLABLE PHIEUPH I RIEULSIOS +0xC08E 0xD549 #HANGUL SYLLABLE PHIEUPH I RIEULTHIEUTH +0xC08F 0xD54A #HANGUL SYLLABLE PHIEUPH I RIEULPHIEUPH +0xC090 0xD54B #HANGUL SYLLABLE PHIEUPH I RIEULHIEUH +0xC091 0xD54E #HANGUL SYLLABLE PHIEUPH I PIEUPSIOS +0xC092 0xD550 #HANGUL SYLLABLE PHIEUPH I SSANGSIOS +0xC093 0xD552 #HANGUL SYLLABLE PHIEUPH I CIEUC +0xC094 0xD553 #HANGUL SYLLABLE PHIEUPH I CHIEUCH +0xC095 0xD554 #HANGUL SYLLABLE PHIEUPH I KHIEUKH +0xC096 0xD555 #HANGUL SYLLABLE PHIEUPH I THIEUTH +0xC097 0xD556 #HANGUL SYLLABLE PHIEUPH I PHIEUPH +0xC098 0xD557 #HANGUL SYLLABLE PHIEUPH I HIEUH +0xC099 0xD55A #HANGUL SYLLABLE HIEUH A SSANGKIYEOK +0xC09A 0xD55B #HANGUL SYLLABLE HIEUH A KIYEOKSIOS +0xC09B 0xD55D #HANGUL SYLLABLE HIEUH A NIEUNCIEUC +0xC09C 0xD55E #HANGUL SYLLABLE HIEUH A NIEUNHIEUH +0xC09D 0xD55F #HANGUL SYLLABLE HIEUH A TIKEUT +0xC09E 0xD561 #HANGUL SYLLABLE HIEUH A RIEULKIYEOK +0xC09F 0xD562 #HANGUL SYLLABLE HIEUH A RIEULMIEUM +0xC0A0 0xD563 #HANGUL SYLLABLE HIEUH A RIEULPIEUP +0xC0A1 0xC6E9 #HANGUL SYLLABLE IEUNG WE KIYEOK +0xC0A2 0xC6EC #HANGUL SYLLABLE IEUNG WE NIEUN +0xC0A3 0xC6F0 #HANGUL SYLLABLE IEUNG WE RIEUL +0xC0A4 0xC6F8 #HANGUL SYLLABLE IEUNG WE MIEUM +0xC0A5 0xC6F9 #HANGUL SYLLABLE IEUNG WE PIEUP +0xC0A6 0xC6FD #HANGUL SYLLABLE IEUNG WE IEUNG +0xC0A7 0xC704 #HANGUL SYLLABLE IEUNG WI +0xC0A8 0xC705 #HANGUL SYLLABLE IEUNG WI KIYEOK +0xC0A9 0xC708 #HANGUL SYLLABLE IEUNG WI NIEUN +0xC0AA 0xC70C #HANGUL SYLLABLE IEUNG WI RIEUL +0xC0AB 0xC714 #HANGUL SYLLABLE IEUNG WI MIEUM +0xC0AC 0xC715 #HANGUL SYLLABLE IEUNG WI PIEUP +0xC0AD 0xC717 #HANGUL SYLLABLE IEUNG WI SIOS +0xC0AE 0xC719 #HANGUL SYLLABLE IEUNG WI IEUNG +0xC0AF 0xC720 #HANGUL SYLLABLE IEUNG YU +0xC0B0 0xC721 #HANGUL SYLLABLE IEUNG YU KIYEOK +0xC0B1 0xC724 #HANGUL SYLLABLE IEUNG YU NIEUN +0xC0B2 0xC728 #HANGUL SYLLABLE IEUNG YU RIEUL +0xC0B3 0xC730 #HANGUL SYLLABLE IEUNG YU MIEUM +0xC0B4 0xC731 #HANGUL SYLLABLE IEUNG YU PIEUP +0xC0B5 0xC733 #HANGUL SYLLABLE IEUNG YU SIOS +0xC0B6 0xC735 #HANGUL SYLLABLE IEUNG YU IEUNG +0xC0B7 0xC737 #HANGUL SYLLABLE IEUNG YU CHIEUCH +0xC0B8 0xC73C #HANGUL SYLLABLE IEUNG EU +0xC0B9 0xC73D #HANGUL SYLLABLE IEUNG EU KIYEOK +0xC0BA 0xC740 #HANGUL SYLLABLE IEUNG EU NIEUN +0xC0BB 0xC744 #HANGUL SYLLABLE IEUNG EU RIEUL +0xC0BC 0xC74A #HANGUL SYLLABLE IEUNG EU RIEULPHIEUPH +0xC0BD 0xC74C #HANGUL SYLLABLE IEUNG EU MIEUM +0xC0BE 0xC74D #HANGUL SYLLABLE IEUNG EU PIEUP +0xC0BF 0xC74F #HANGUL SYLLABLE IEUNG EU SIOS +0xC0C0 0xC751 #HANGUL SYLLABLE IEUNG EU IEUNG +0xC0C1 0xC752 #HANGUL SYLLABLE IEUNG EU CIEUC +0xC0C2 0xC753 #HANGUL SYLLABLE IEUNG EU CHIEUCH +0xC0C3 0xC754 #HANGUL SYLLABLE IEUNG EU KHIEUKH +0xC0C4 0xC755 #HANGUL SYLLABLE IEUNG EU THIEUTH +0xC0C5 0xC756 #HANGUL SYLLABLE IEUNG EU PHIEUPH +0xC0C6 0xC757 #HANGUL SYLLABLE IEUNG EU HIEUH +0xC0C7 0xC758 #HANGUL SYLLABLE IEUNG YI +0xC0C8 0xC75C #HANGUL SYLLABLE IEUNG YI NIEUN +0xC0C9 0xC760 #HANGUL SYLLABLE IEUNG YI RIEUL +0xC0CA 0xC768 #HANGUL SYLLABLE IEUNG YI MIEUM +0xC0CB 0xC76B #HANGUL SYLLABLE IEUNG YI SIOS +0xC0CC 0xC774 #HANGUL SYLLABLE IEUNG I +0xC0CD 0xC775 #HANGUL SYLLABLE IEUNG I KIYEOK +0xC0CE 0xC778 #HANGUL SYLLABLE IEUNG I NIEUN +0xC0CF 0xC77C #HANGUL SYLLABLE IEUNG I RIEUL +0xC0D0 0xC77D #HANGUL SYLLABLE IEUNG I RIEULKIYEOK +0xC0D1 0xC77E #HANGUL SYLLABLE IEUNG I RIEULMIEUM +0xC0D2 0xC783 #HANGUL SYLLABLE IEUNG I RIEULHIEUH +0xC0D3 0xC784 #HANGUL SYLLABLE IEUNG I MIEUM +0xC0D4 0xC785 #HANGUL SYLLABLE IEUNG I PIEUP +0xC0D5 0xC787 #HANGUL SYLLABLE IEUNG I SIOS +0xC0D6 0xC788 #HANGUL SYLLABLE IEUNG I SSANGSIOS +0xC0D7 0xC789 #HANGUL SYLLABLE IEUNG I IEUNG +0xC0D8 0xC78A #HANGUL SYLLABLE IEUNG I CIEUC +0xC0D9 0xC78E #HANGUL SYLLABLE IEUNG I PHIEUPH +0xC0DA 0xC790 #HANGUL SYLLABLE CIEUC A +0xC0DB 0xC791 #HANGUL SYLLABLE CIEUC A KIYEOK +0xC0DC 0xC794 #HANGUL SYLLABLE CIEUC A NIEUN +0xC0DD 0xC796 #HANGUL SYLLABLE CIEUC A NIEUNHIEUH +0xC0DE 0xC797 #HANGUL SYLLABLE CIEUC A TIKEUT +0xC0DF 0xC798 #HANGUL SYLLABLE CIEUC A RIEUL +0xC0E0 0xC79A #HANGUL SYLLABLE CIEUC A RIEULMIEUM +0xC0E1 0xC7A0 #HANGUL SYLLABLE CIEUC A MIEUM +0xC0E2 0xC7A1 #HANGUL SYLLABLE CIEUC A PIEUP +0xC0E3 0xC7A3 #HANGUL SYLLABLE CIEUC A SIOS +0xC0E4 0xC7A4 #HANGUL SYLLABLE CIEUC A SSANGSIOS +0xC0E5 0xC7A5 #HANGUL SYLLABLE CIEUC A IEUNG +0xC0E6 0xC7A6 #HANGUL SYLLABLE CIEUC A CIEUC +0xC0E7 0xC7AC #HANGUL SYLLABLE CIEUC AE +0xC0E8 0xC7AD #HANGUL SYLLABLE CIEUC AE KIYEOK +0xC0E9 0xC7B0 #HANGUL SYLLABLE CIEUC AE NIEUN +0xC0EA 0xC7B4 #HANGUL SYLLABLE CIEUC AE RIEUL +0xC0EB 0xC7BC #HANGUL SYLLABLE CIEUC AE MIEUM +0xC0EC 0xC7BD #HANGUL SYLLABLE CIEUC AE PIEUP +0xC0ED 0xC7BF #HANGUL SYLLABLE CIEUC AE SIOS +0xC0EE 0xC7C0 #HANGUL SYLLABLE CIEUC AE SSANGSIOS +0xC0EF 0xC7C1 #HANGUL SYLLABLE CIEUC AE IEUNG +0xC0F0 0xC7C8 #HANGUL SYLLABLE CIEUC YA +0xC0F1 0xC7C9 #HANGUL SYLLABLE CIEUC YA KIYEOK +0xC0F2 0xC7CC #HANGUL SYLLABLE CIEUC YA NIEUN +0xC0F3 0xC7CE #HANGUL SYLLABLE CIEUC YA NIEUNHIEUH +0xC0F4 0xC7D0 #HANGUL SYLLABLE CIEUC YA RIEUL +0xC0F5 0xC7D8 #HANGUL SYLLABLE CIEUC YA MIEUM +0xC0F6 0xC7DD #HANGUL SYLLABLE CIEUC YA IEUNG +0xC0F7 0xC7E4 #HANGUL SYLLABLE CIEUC YAE +0xC0F8 0xC7E8 #HANGUL SYLLABLE CIEUC YAE NIEUN +0xC0F9 0xC7EC #HANGUL SYLLABLE CIEUC YAE RIEUL +0xC0FA 0xC800 #HANGUL SYLLABLE CIEUC EO +0xC0FB 0xC801 #HANGUL SYLLABLE CIEUC EO KIYEOK +0xC0FC 0xC804 #HANGUL SYLLABLE CIEUC EO NIEUN +0xC0FD 0xC808 #HANGUL SYLLABLE CIEUC EO RIEUL +0xC0FE 0xC80A #HANGUL SYLLABLE CIEUC EO RIEULMIEUM +0xC141 0xD564 #HANGUL SYLLABLE HIEUH A RIEULSIOS +0xC142 0xD566 #HANGUL SYLLABLE HIEUH A RIEULPHIEUPH +0xC143 0xD567 #HANGUL SYLLABLE HIEUH A RIEULHIEUH +0xC144 0xD56A #HANGUL SYLLABLE HIEUH A PIEUPSIOS +0xC145 0xD56C #HANGUL SYLLABLE HIEUH A SSANGSIOS +0xC146 0xD56E #HANGUL SYLLABLE HIEUH A CIEUC +0xC147 0xD56F #HANGUL SYLLABLE HIEUH A CHIEUCH +0xC148 0xD570 #HANGUL SYLLABLE HIEUH A KHIEUKH +0xC149 0xD571 #HANGUL SYLLABLE HIEUH A THIEUTH +0xC14A 0xD572 #HANGUL SYLLABLE HIEUH A PHIEUPH +0xC14B 0xD573 #HANGUL SYLLABLE HIEUH A HIEUH +0xC14C 0xD576 #HANGUL SYLLABLE HIEUH AE SSANGKIYEOK +0xC14D 0xD577 #HANGUL SYLLABLE HIEUH AE KIYEOKSIOS +0xC14E 0xD579 #HANGUL SYLLABLE HIEUH AE NIEUNCIEUC +0xC14F 0xD57A #HANGUL SYLLABLE HIEUH AE NIEUNHIEUH +0xC150 0xD57B #HANGUL SYLLABLE HIEUH AE TIKEUT +0xC151 0xD57D #HANGUL SYLLABLE HIEUH AE RIEULKIYEOK +0xC152 0xD57E #HANGUL SYLLABLE HIEUH AE RIEULMIEUM +0xC153 0xD57F #HANGUL SYLLABLE HIEUH AE RIEULPIEUP +0xC154 0xD580 #HANGUL SYLLABLE HIEUH AE RIEULSIOS +0xC155 0xD581 #HANGUL SYLLABLE HIEUH AE RIEULTHIEUTH +0xC156 0xD582 #HANGUL SYLLABLE HIEUH AE RIEULPHIEUPH +0xC157 0xD583 #HANGUL SYLLABLE HIEUH AE RIEULHIEUH +0xC158 0xD586 #HANGUL SYLLABLE HIEUH AE PIEUPSIOS +0xC159 0xD58A #HANGUL SYLLABLE HIEUH AE CIEUC +0xC15A 0xD58B #HANGUL SYLLABLE HIEUH AE CHIEUCH +0xC161 0xD58C #HANGUL SYLLABLE HIEUH AE KHIEUKH +0xC162 0xD58D #HANGUL SYLLABLE HIEUH AE THIEUTH +0xC163 0xD58E #HANGUL SYLLABLE HIEUH AE PHIEUPH +0xC164 0xD58F #HANGUL SYLLABLE HIEUH AE HIEUH +0xC165 0xD591 #HANGUL SYLLABLE HIEUH YA KIYEOK +0xC166 0xD592 #HANGUL SYLLABLE HIEUH YA SSANGKIYEOK +0xC167 0xD593 #HANGUL SYLLABLE HIEUH YA KIYEOKSIOS +0xC168 0xD594 #HANGUL SYLLABLE HIEUH YA NIEUN +0xC169 0xD595 #HANGUL SYLLABLE HIEUH YA NIEUNCIEUC +0xC16A 0xD596 #HANGUL SYLLABLE HIEUH YA NIEUNHIEUH +0xC16B 0xD597 #HANGUL SYLLABLE HIEUH YA TIKEUT +0xC16C 0xD598 #HANGUL SYLLABLE HIEUH YA RIEUL +0xC16D 0xD599 #HANGUL SYLLABLE HIEUH YA RIEULKIYEOK +0xC16E 0xD59A #HANGUL SYLLABLE HIEUH YA RIEULMIEUM +0xC16F 0xD59B #HANGUL SYLLABLE HIEUH YA RIEULPIEUP +0xC170 0xD59C #HANGUL SYLLABLE HIEUH YA RIEULSIOS +0xC171 0xD59D #HANGUL SYLLABLE HIEUH YA RIEULTHIEUTH +0xC172 0xD59E #HANGUL SYLLABLE HIEUH YA RIEULPHIEUPH +0xC173 0xD59F #HANGUL SYLLABLE HIEUH YA RIEULHIEUH +0xC174 0xD5A0 #HANGUL SYLLABLE HIEUH YA MIEUM +0xC175 0xD5A1 #HANGUL SYLLABLE HIEUH YA PIEUP +0xC176 0xD5A2 #HANGUL SYLLABLE HIEUH YA PIEUPSIOS +0xC177 0xD5A3 #HANGUL SYLLABLE HIEUH YA SIOS +0xC178 0xD5A4 #HANGUL SYLLABLE HIEUH YA SSANGSIOS +0xC179 0xD5A6 #HANGUL SYLLABLE HIEUH YA CIEUC +0xC17A 0xD5A7 #HANGUL SYLLABLE HIEUH YA CHIEUCH +0xC181 0xD5A8 #HANGUL SYLLABLE HIEUH YA KHIEUKH +0xC182 0xD5A9 #HANGUL SYLLABLE HIEUH YA THIEUTH +0xC183 0xD5AA #HANGUL SYLLABLE HIEUH YA PHIEUPH +0xC184 0xD5AB #HANGUL SYLLABLE HIEUH YA HIEUH +0xC185 0xD5AC #HANGUL SYLLABLE HIEUH YAE +0xC186 0xD5AD #HANGUL SYLLABLE HIEUH YAE KIYEOK +0xC187 0xD5AE #HANGUL SYLLABLE HIEUH YAE SSANGKIYEOK +0xC188 0xD5AF #HANGUL SYLLABLE HIEUH YAE KIYEOKSIOS +0xC189 0xD5B0 #HANGUL SYLLABLE HIEUH YAE NIEUN +0xC18A 0xD5B1 #HANGUL SYLLABLE HIEUH YAE NIEUNCIEUC +0xC18B 0xD5B2 #HANGUL SYLLABLE HIEUH YAE NIEUNHIEUH +0xC18C 0xD5B3 #HANGUL SYLLABLE HIEUH YAE TIKEUT +0xC18D 0xD5B4 #HANGUL SYLLABLE HIEUH YAE RIEUL +0xC18E 0xD5B5 #HANGUL SYLLABLE HIEUH YAE RIEULKIYEOK +0xC18F 0xD5B6 #HANGUL SYLLABLE HIEUH YAE RIEULMIEUM +0xC190 0xD5B7 #HANGUL SYLLABLE HIEUH YAE RIEULPIEUP +0xC191 0xD5B8 #HANGUL SYLLABLE HIEUH YAE RIEULSIOS +0xC192 0xD5B9 #HANGUL SYLLABLE HIEUH YAE RIEULTHIEUTH +0xC193 0xD5BA #HANGUL SYLLABLE HIEUH YAE RIEULPHIEUPH +0xC194 0xD5BB #HANGUL SYLLABLE HIEUH YAE RIEULHIEUH +0xC195 0xD5BC #HANGUL SYLLABLE HIEUH YAE MIEUM +0xC196 0xD5BD #HANGUL SYLLABLE HIEUH YAE PIEUP +0xC197 0xD5BE #HANGUL SYLLABLE HIEUH YAE PIEUPSIOS +0xC198 0xD5BF #HANGUL SYLLABLE HIEUH YAE SIOS +0xC199 0xD5C0 #HANGUL SYLLABLE HIEUH YAE SSANGSIOS +0xC19A 0xD5C1 #HANGUL SYLLABLE HIEUH YAE IEUNG +0xC19B 0xD5C2 #HANGUL SYLLABLE HIEUH YAE CIEUC +0xC19C 0xD5C3 #HANGUL SYLLABLE HIEUH YAE CHIEUCH +0xC19D 0xD5C4 #HANGUL SYLLABLE HIEUH YAE KHIEUKH +0xC19E 0xD5C5 #HANGUL SYLLABLE HIEUH YAE THIEUTH +0xC19F 0xD5C6 #HANGUL SYLLABLE HIEUH YAE PHIEUPH +0xC1A0 0xD5C7 #HANGUL SYLLABLE HIEUH YAE HIEUH +0xC1A1 0xC810 #HANGUL SYLLABLE CIEUC EO MIEUM +0xC1A2 0xC811 #HANGUL SYLLABLE CIEUC EO PIEUP +0xC1A3 0xC813 #HANGUL SYLLABLE CIEUC EO SIOS +0xC1A4 0xC815 #HANGUL SYLLABLE CIEUC EO IEUNG +0xC1A5 0xC816 #HANGUL SYLLABLE CIEUC EO CIEUC +0xC1A6 0xC81C #HANGUL SYLLABLE CIEUC E +0xC1A7 0xC81D #HANGUL SYLLABLE CIEUC E KIYEOK +0xC1A8 0xC820 #HANGUL SYLLABLE CIEUC E NIEUN +0xC1A9 0xC824 #HANGUL SYLLABLE CIEUC E RIEUL +0xC1AA 0xC82C #HANGUL SYLLABLE CIEUC E MIEUM +0xC1AB 0xC82D #HANGUL SYLLABLE CIEUC E PIEUP +0xC1AC 0xC82F #HANGUL SYLLABLE CIEUC E SIOS +0xC1AD 0xC831 #HANGUL SYLLABLE CIEUC E IEUNG +0xC1AE 0xC838 #HANGUL SYLLABLE CIEUC YEO +0xC1AF 0xC83C #HANGUL SYLLABLE CIEUC YEO NIEUN +0xC1B0 0xC840 #HANGUL SYLLABLE CIEUC YEO RIEUL +0xC1B1 0xC848 #HANGUL SYLLABLE CIEUC YEO MIEUM +0xC1B2 0xC849 #HANGUL SYLLABLE CIEUC YEO PIEUP +0xC1B3 0xC84C #HANGUL SYLLABLE CIEUC YEO SSANGSIOS +0xC1B4 0xC84D #HANGUL SYLLABLE CIEUC YEO IEUNG +0xC1B5 0xC854 #HANGUL SYLLABLE CIEUC YE +0xC1B6 0xC870 #HANGUL SYLLABLE CIEUC O +0xC1B7 0xC871 #HANGUL SYLLABLE CIEUC O KIYEOK +0xC1B8 0xC874 #HANGUL SYLLABLE CIEUC O NIEUN +0xC1B9 0xC878 #HANGUL SYLLABLE CIEUC O RIEUL +0xC1BA 0xC87A #HANGUL SYLLABLE CIEUC O RIEULMIEUM +0xC1BB 0xC880 #HANGUL SYLLABLE CIEUC O MIEUM +0xC1BC 0xC881 #HANGUL SYLLABLE CIEUC O PIEUP +0xC1BD 0xC883 #HANGUL SYLLABLE CIEUC O SIOS +0xC1BE 0xC885 #HANGUL SYLLABLE CIEUC O IEUNG +0xC1BF 0xC886 #HANGUL SYLLABLE CIEUC O CIEUC +0xC1C0 0xC887 #HANGUL SYLLABLE CIEUC O CHIEUCH +0xC1C1 0xC88B #HANGUL SYLLABLE CIEUC O HIEUH +0xC1C2 0xC88C #HANGUL SYLLABLE CIEUC WA +0xC1C3 0xC88D #HANGUL SYLLABLE CIEUC WA KIYEOK +0xC1C4 0xC894 #HANGUL SYLLABLE CIEUC WA RIEUL +0xC1C5 0xC89D #HANGUL SYLLABLE CIEUC WA PIEUP +0xC1C6 0xC89F #HANGUL SYLLABLE CIEUC WA SIOS +0xC1C7 0xC8A1 #HANGUL SYLLABLE CIEUC WA IEUNG +0xC1C8 0xC8A8 #HANGUL SYLLABLE CIEUC WAE +0xC1C9 0xC8BC #HANGUL SYLLABLE CIEUC WAE SSANGSIOS +0xC1CA 0xC8BD #HANGUL SYLLABLE CIEUC WAE IEUNG +0xC1CB 0xC8C4 #HANGUL SYLLABLE CIEUC OE +0xC1CC 0xC8C8 #HANGUL SYLLABLE CIEUC OE NIEUN +0xC1CD 0xC8CC #HANGUL SYLLABLE CIEUC OE RIEUL +0xC1CE 0xC8D4 #HANGUL SYLLABLE CIEUC OE MIEUM +0xC1CF 0xC8D5 #HANGUL SYLLABLE CIEUC OE PIEUP +0xC1D0 0xC8D7 #HANGUL SYLLABLE CIEUC OE SIOS +0xC1D1 0xC8D9 #HANGUL SYLLABLE CIEUC OE IEUNG +0xC1D2 0xC8E0 #HANGUL SYLLABLE CIEUC YO +0xC1D3 0xC8E1 #HANGUL SYLLABLE CIEUC YO KIYEOK +0xC1D4 0xC8E4 #HANGUL SYLLABLE CIEUC YO NIEUN +0xC1D5 0xC8F5 #HANGUL SYLLABLE CIEUC YO IEUNG +0xC1D6 0xC8FC #HANGUL SYLLABLE CIEUC U +0xC1D7 0xC8FD #HANGUL SYLLABLE CIEUC U KIYEOK +0xC1D8 0xC900 #HANGUL SYLLABLE CIEUC U NIEUN +0xC1D9 0xC904 #HANGUL SYLLABLE CIEUC U RIEUL +0xC1DA 0xC905 #HANGUL SYLLABLE CIEUC U RIEULKIYEOK +0xC1DB 0xC906 #HANGUL SYLLABLE CIEUC U RIEULMIEUM +0xC1DC 0xC90C #HANGUL SYLLABLE CIEUC U MIEUM +0xC1DD 0xC90D #HANGUL SYLLABLE CIEUC U PIEUP +0xC1DE 0xC90F #HANGUL SYLLABLE CIEUC U SIOS +0xC1DF 0xC911 #HANGUL SYLLABLE CIEUC U IEUNG +0xC1E0 0xC918 #HANGUL SYLLABLE CIEUC WEO +0xC1E1 0xC92C #HANGUL SYLLABLE CIEUC WEO SSANGSIOS +0xC1E2 0xC934 #HANGUL SYLLABLE CIEUC WE +0xC1E3 0xC950 #HANGUL SYLLABLE CIEUC WI +0xC1E4 0xC951 #HANGUL SYLLABLE CIEUC WI KIYEOK +0xC1E5 0xC954 #HANGUL SYLLABLE CIEUC WI NIEUN +0xC1E6 0xC958 #HANGUL SYLLABLE CIEUC WI RIEUL +0xC1E7 0xC960 #HANGUL SYLLABLE CIEUC WI MIEUM +0xC1E8 0xC961 #HANGUL SYLLABLE CIEUC WI PIEUP +0xC1E9 0xC963 #HANGUL SYLLABLE CIEUC WI SIOS +0xC1EA 0xC96C #HANGUL SYLLABLE CIEUC YU +0xC1EB 0xC970 #HANGUL SYLLABLE CIEUC YU NIEUN +0xC1EC 0xC974 #HANGUL SYLLABLE CIEUC YU RIEUL +0xC1ED 0xC97C #HANGUL SYLLABLE CIEUC YU MIEUM +0xC1EE 0xC988 #HANGUL SYLLABLE CIEUC EU +0xC1EF 0xC989 #HANGUL SYLLABLE CIEUC EU KIYEOK +0xC1F0 0xC98C #HANGUL SYLLABLE CIEUC EU NIEUN +0xC1F1 0xC990 #HANGUL SYLLABLE CIEUC EU RIEUL +0xC1F2 0xC998 #HANGUL SYLLABLE CIEUC EU MIEUM +0xC1F3 0xC999 #HANGUL SYLLABLE CIEUC EU PIEUP +0xC1F4 0xC99B #HANGUL SYLLABLE CIEUC EU SIOS +0xC1F5 0xC99D #HANGUL SYLLABLE CIEUC EU IEUNG +0xC1F6 0xC9C0 #HANGUL SYLLABLE CIEUC I +0xC1F7 0xC9C1 #HANGUL SYLLABLE CIEUC I KIYEOK +0xC1F8 0xC9C4 #HANGUL SYLLABLE CIEUC I NIEUN +0xC1F9 0xC9C7 #HANGUL SYLLABLE CIEUC I TIKEUT +0xC1FA 0xC9C8 #HANGUL SYLLABLE CIEUC I RIEUL +0xC1FB 0xC9CA #HANGUL SYLLABLE CIEUC I RIEULMIEUM +0xC1FC 0xC9D0 #HANGUL SYLLABLE CIEUC I MIEUM +0xC1FD 0xC9D1 #HANGUL SYLLABLE CIEUC I PIEUP +0xC1FE 0xC9D3 #HANGUL SYLLABLE CIEUC I SIOS +0xC241 0xD5CA #HANGUL SYLLABLE HIEUH EO SSANGKIYEOK +0xC242 0xD5CB #HANGUL SYLLABLE HIEUH EO KIYEOKSIOS +0xC243 0xD5CD #HANGUL SYLLABLE HIEUH EO NIEUNCIEUC +0xC244 0xD5CE #HANGUL SYLLABLE HIEUH EO NIEUNHIEUH +0xC245 0xD5CF #HANGUL SYLLABLE HIEUH EO TIKEUT +0xC246 0xD5D1 #HANGUL SYLLABLE HIEUH EO RIEULKIYEOK +0xC247 0xD5D3 #HANGUL SYLLABLE HIEUH EO RIEULPIEUP +0xC248 0xD5D4 #HANGUL SYLLABLE HIEUH EO RIEULSIOS +0xC249 0xD5D5 #HANGUL SYLLABLE HIEUH EO RIEULTHIEUTH +0xC24A 0xD5D6 #HANGUL SYLLABLE HIEUH EO RIEULPHIEUPH +0xC24B 0xD5D7 #HANGUL SYLLABLE HIEUH EO RIEULHIEUH +0xC24C 0xD5DA #HANGUL SYLLABLE HIEUH EO PIEUPSIOS +0xC24D 0xD5DC #HANGUL SYLLABLE HIEUH EO SSANGSIOS +0xC24E 0xD5DE #HANGUL SYLLABLE HIEUH EO CIEUC +0xC24F 0xD5DF #HANGUL SYLLABLE HIEUH EO CHIEUCH +0xC250 0xD5E0 #HANGUL SYLLABLE HIEUH EO KHIEUKH +0xC251 0xD5E1 #HANGUL SYLLABLE HIEUH EO THIEUTH +0xC252 0xD5E2 #HANGUL SYLLABLE HIEUH EO PHIEUPH +0xC253 0xD5E3 #HANGUL SYLLABLE HIEUH EO HIEUH +0xC254 0xD5E6 #HANGUL SYLLABLE HIEUH E SSANGKIYEOK +0xC255 0xD5E7 #HANGUL SYLLABLE HIEUH E KIYEOKSIOS +0xC256 0xD5E9 #HANGUL SYLLABLE HIEUH E NIEUNCIEUC +0xC257 0xD5EA #HANGUL SYLLABLE HIEUH E NIEUNHIEUH +0xC258 0xD5EB #HANGUL SYLLABLE HIEUH E TIKEUT +0xC259 0xD5ED #HANGUL SYLLABLE HIEUH E RIEULKIYEOK +0xC25A 0xD5EE #HANGUL SYLLABLE HIEUH E RIEULMIEUM +0xC261 0xD5EF #HANGUL SYLLABLE HIEUH E RIEULPIEUP +0xC262 0xD5F0 #HANGUL SYLLABLE HIEUH E RIEULSIOS +0xC263 0xD5F1 #HANGUL SYLLABLE HIEUH E RIEULTHIEUTH +0xC264 0xD5F2 #HANGUL SYLLABLE HIEUH E RIEULPHIEUPH +0xC265 0xD5F3 #HANGUL SYLLABLE HIEUH E RIEULHIEUH +0xC266 0xD5F6 #HANGUL SYLLABLE HIEUH E PIEUPSIOS +0xC267 0xD5F8 #HANGUL SYLLABLE HIEUH E SSANGSIOS +0xC268 0xD5FA #HANGUL SYLLABLE HIEUH E CIEUC +0xC269 0xD5FB #HANGUL SYLLABLE HIEUH E CHIEUCH +0xC26A 0xD5FC #HANGUL SYLLABLE HIEUH E KHIEUKH +0xC26B 0xD5FD #HANGUL SYLLABLE HIEUH E THIEUTH +0xC26C 0xD5FE #HANGUL SYLLABLE HIEUH E PHIEUPH +0xC26D 0xD5FF #HANGUL SYLLABLE HIEUH E HIEUH +0xC26E 0xD602 #HANGUL SYLLABLE HIEUH YEO SSANGKIYEOK +0xC26F 0xD603 #HANGUL SYLLABLE HIEUH YEO KIYEOKSIOS +0xC270 0xD605 #HANGUL SYLLABLE HIEUH YEO NIEUNCIEUC +0xC271 0xD606 #HANGUL SYLLABLE HIEUH YEO NIEUNHIEUH +0xC272 0xD607 #HANGUL SYLLABLE HIEUH YEO TIKEUT +0xC273 0xD609 #HANGUL SYLLABLE HIEUH YEO RIEULKIYEOK +0xC274 0xD60A #HANGUL SYLLABLE HIEUH YEO RIEULMIEUM +0xC275 0xD60B #HANGUL SYLLABLE HIEUH YEO RIEULPIEUP +0xC276 0xD60C #HANGUL SYLLABLE HIEUH YEO RIEULSIOS +0xC277 0xD60D #HANGUL SYLLABLE HIEUH YEO RIEULTHIEUTH +0xC278 0xD60E #HANGUL SYLLABLE HIEUH YEO RIEULPHIEUPH +0xC279 0xD60F #HANGUL SYLLABLE HIEUH YEO RIEULHIEUH +0xC27A 0xD612 #HANGUL SYLLABLE HIEUH YEO PIEUPSIOS +0xC281 0xD616 #HANGUL SYLLABLE HIEUH YEO CIEUC +0xC282 0xD617 #HANGUL SYLLABLE HIEUH YEO CHIEUCH +0xC283 0xD618 #HANGUL SYLLABLE HIEUH YEO KHIEUKH +0xC284 0xD619 #HANGUL SYLLABLE HIEUH YEO THIEUTH +0xC285 0xD61A #HANGUL SYLLABLE HIEUH YEO PHIEUPH +0xC286 0xD61B #HANGUL SYLLABLE HIEUH YEO HIEUH +0xC287 0xD61D #HANGUL SYLLABLE HIEUH YE KIYEOK +0xC288 0xD61E #HANGUL SYLLABLE HIEUH YE SSANGKIYEOK +0xC289 0xD61F #HANGUL SYLLABLE HIEUH YE KIYEOKSIOS +0xC28A 0xD621 #HANGUL SYLLABLE HIEUH YE NIEUNCIEUC +0xC28B 0xD622 #HANGUL SYLLABLE HIEUH YE NIEUNHIEUH +0xC28C 0xD623 #HANGUL SYLLABLE HIEUH YE TIKEUT +0xC28D 0xD625 #HANGUL SYLLABLE HIEUH YE RIEULKIYEOK +0xC28E 0xD626 #HANGUL SYLLABLE HIEUH YE RIEULMIEUM +0xC28F 0xD627 #HANGUL SYLLABLE HIEUH YE RIEULPIEUP +0xC290 0xD628 #HANGUL SYLLABLE HIEUH YE RIEULSIOS +0xC291 0xD629 #HANGUL SYLLABLE HIEUH YE RIEULTHIEUTH +0xC292 0xD62A #HANGUL SYLLABLE HIEUH YE RIEULPHIEUPH +0xC293 0xD62B #HANGUL SYLLABLE HIEUH YE RIEULHIEUH +0xC294 0xD62C #HANGUL SYLLABLE HIEUH YE MIEUM +0xC295 0xD62E #HANGUL SYLLABLE HIEUH YE PIEUPSIOS +0xC296 0xD62F #HANGUL SYLLABLE HIEUH YE SIOS +0xC297 0xD630 #HANGUL SYLLABLE HIEUH YE SSANGSIOS +0xC298 0xD631 #HANGUL SYLLABLE HIEUH YE IEUNG +0xC299 0xD632 #HANGUL SYLLABLE HIEUH YE CIEUC +0xC29A 0xD633 #HANGUL SYLLABLE HIEUH YE CHIEUCH +0xC29B 0xD634 #HANGUL SYLLABLE HIEUH YE KHIEUKH +0xC29C 0xD635 #HANGUL SYLLABLE HIEUH YE THIEUTH +0xC29D 0xD636 #HANGUL SYLLABLE HIEUH YE PHIEUPH +0xC29E 0xD637 #HANGUL SYLLABLE HIEUH YE HIEUH +0xC29F 0xD63A #HANGUL SYLLABLE HIEUH O SSANGKIYEOK +0xC2A0 0xD63B #HANGUL SYLLABLE HIEUH O KIYEOKSIOS +0xC2A1 0xC9D5 #HANGUL SYLLABLE CIEUC I IEUNG +0xC2A2 0xC9D6 #HANGUL SYLLABLE CIEUC I CIEUC +0xC2A3 0xC9D9 #HANGUL SYLLABLE CIEUC I THIEUTH +0xC2A4 0xC9DA #HANGUL SYLLABLE CIEUC I PHIEUPH +0xC2A5 0xC9DC #HANGUL SYLLABLE SSANGCIEUC A +0xC2A6 0xC9DD #HANGUL SYLLABLE SSANGCIEUC A KIYEOK +0xC2A7 0xC9E0 #HANGUL SYLLABLE SSANGCIEUC A NIEUN +0xC2A8 0xC9E2 #HANGUL SYLLABLE SSANGCIEUC A NIEUNHIEUH +0xC2A9 0xC9E4 #HANGUL SYLLABLE SSANGCIEUC A RIEUL +0xC2AA 0xC9E7 #HANGUL SYLLABLE SSANGCIEUC A RIEULPIEUP +0xC2AB 0xC9EC #HANGUL SYLLABLE SSANGCIEUC A MIEUM +0xC2AC 0xC9ED #HANGUL SYLLABLE SSANGCIEUC A PIEUP +0xC2AD 0xC9EF #HANGUL SYLLABLE SSANGCIEUC A SIOS +0xC2AE 0xC9F0 #HANGUL SYLLABLE SSANGCIEUC A SSANGSIOS +0xC2AF 0xC9F1 #HANGUL SYLLABLE SSANGCIEUC A IEUNG +0xC2B0 0xC9F8 #HANGUL SYLLABLE SSANGCIEUC AE +0xC2B1 0xC9F9 #HANGUL SYLLABLE SSANGCIEUC AE KIYEOK +0xC2B2 0xC9FC #HANGUL SYLLABLE SSANGCIEUC AE NIEUN +0xC2B3 0xCA00 #HANGUL SYLLABLE SSANGCIEUC AE RIEUL +0xC2B4 0xCA08 #HANGUL SYLLABLE SSANGCIEUC AE MIEUM +0xC2B5 0xCA09 #HANGUL SYLLABLE SSANGCIEUC AE PIEUP +0xC2B6 0xCA0B #HANGUL SYLLABLE SSANGCIEUC AE SIOS +0xC2B7 0xCA0C #HANGUL SYLLABLE SSANGCIEUC AE SSANGSIOS +0xC2B8 0xCA0D #HANGUL SYLLABLE SSANGCIEUC AE IEUNG +0xC2B9 0xCA14 #HANGUL SYLLABLE SSANGCIEUC YA +0xC2BA 0xCA18 #HANGUL SYLLABLE SSANGCIEUC YA NIEUN +0xC2BB 0xCA29 #HANGUL SYLLABLE SSANGCIEUC YA IEUNG +0xC2BC 0xCA4C #HANGUL SYLLABLE SSANGCIEUC EO +0xC2BD 0xCA4D #HANGUL SYLLABLE SSANGCIEUC EO KIYEOK +0xC2BE 0xCA50 #HANGUL SYLLABLE SSANGCIEUC EO NIEUN +0xC2BF 0xCA54 #HANGUL SYLLABLE SSANGCIEUC EO RIEUL +0xC2C0 0xCA5C #HANGUL SYLLABLE SSANGCIEUC EO MIEUM +0xC2C1 0xCA5D #HANGUL SYLLABLE SSANGCIEUC EO PIEUP +0xC2C2 0xCA5F #HANGUL SYLLABLE SSANGCIEUC EO SIOS +0xC2C3 0xCA60 #HANGUL SYLLABLE SSANGCIEUC EO SSANGSIOS +0xC2C4 0xCA61 #HANGUL SYLLABLE SSANGCIEUC EO IEUNG +0xC2C5 0xCA68 #HANGUL SYLLABLE SSANGCIEUC E +0xC2C6 0xCA7D #HANGUL SYLLABLE SSANGCIEUC E IEUNG +0xC2C7 0xCA84 #HANGUL SYLLABLE SSANGCIEUC YEO +0xC2C8 0xCA98 #HANGUL SYLLABLE SSANGCIEUC YEO SSANGSIOS +0xC2C9 0xCABC #HANGUL SYLLABLE SSANGCIEUC O +0xC2CA 0xCABD #HANGUL SYLLABLE SSANGCIEUC O KIYEOK +0xC2CB 0xCAC0 #HANGUL SYLLABLE SSANGCIEUC O NIEUN +0xC2CC 0xCAC4 #HANGUL SYLLABLE SSANGCIEUC O RIEUL +0xC2CD 0xCACC #HANGUL SYLLABLE SSANGCIEUC O MIEUM +0xC2CE 0xCACD #HANGUL SYLLABLE SSANGCIEUC O PIEUP +0xC2CF 0xCACF #HANGUL SYLLABLE SSANGCIEUC O SIOS +0xC2D0 0xCAD1 #HANGUL SYLLABLE SSANGCIEUC O IEUNG +0xC2D1 0xCAD3 #HANGUL SYLLABLE SSANGCIEUC O CHIEUCH +0xC2D2 0xCAD8 #HANGUL SYLLABLE SSANGCIEUC WA +0xC2D3 0xCAD9 #HANGUL SYLLABLE SSANGCIEUC WA KIYEOK +0xC2D4 0xCAE0 #HANGUL SYLLABLE SSANGCIEUC WA RIEUL +0xC2D5 0xCAEC #HANGUL SYLLABLE SSANGCIEUC WA SSANGSIOS +0xC2D6 0xCAF4 #HANGUL SYLLABLE SSANGCIEUC WAE +0xC2D7 0xCB08 #HANGUL SYLLABLE SSANGCIEUC WAE SSANGSIOS +0xC2D8 0xCB10 #HANGUL SYLLABLE SSANGCIEUC OE +0xC2D9 0xCB14 #HANGUL SYLLABLE SSANGCIEUC OE NIEUN +0xC2DA 0xCB18 #HANGUL SYLLABLE SSANGCIEUC OE RIEUL +0xC2DB 0xCB20 #HANGUL SYLLABLE SSANGCIEUC OE MIEUM +0xC2DC 0xCB21 #HANGUL SYLLABLE SSANGCIEUC OE PIEUP +0xC2DD 0xCB41 #HANGUL SYLLABLE SSANGCIEUC YO IEUNG +0xC2DE 0xCB48 #HANGUL SYLLABLE SSANGCIEUC U +0xC2DF 0xCB49 #HANGUL SYLLABLE SSANGCIEUC U KIYEOK +0xC2E0 0xCB4C #HANGUL SYLLABLE SSANGCIEUC U NIEUN +0xC2E1 0xCB50 #HANGUL SYLLABLE SSANGCIEUC U RIEUL +0xC2E2 0xCB58 #HANGUL SYLLABLE SSANGCIEUC U MIEUM +0xC2E3 0xCB59 #HANGUL SYLLABLE SSANGCIEUC U PIEUP +0xC2E4 0xCB5D #HANGUL SYLLABLE SSANGCIEUC U IEUNG +0xC2E5 0xCB64 #HANGUL SYLLABLE SSANGCIEUC WEO +0xC2E6 0xCB78 #HANGUL SYLLABLE SSANGCIEUC WEO SSANGSIOS +0xC2E7 0xCB79 #HANGUL SYLLABLE SSANGCIEUC WEO IEUNG +0xC2E8 0xCB9C #HANGUL SYLLABLE SSANGCIEUC WI +0xC2E9 0xCBB8 #HANGUL SYLLABLE SSANGCIEUC YU +0xC2EA 0xCBD4 #HANGUL SYLLABLE SSANGCIEUC EU +0xC2EB 0xCBE4 #HANGUL SYLLABLE SSANGCIEUC EU MIEUM +0xC2EC 0xCBE7 #HANGUL SYLLABLE SSANGCIEUC EU SIOS +0xC2ED 0xCBE9 #HANGUL SYLLABLE SSANGCIEUC EU IEUNG +0xC2EE 0xCC0C #HANGUL SYLLABLE SSANGCIEUC I +0xC2EF 0xCC0D #HANGUL SYLLABLE SSANGCIEUC I KIYEOK +0xC2F0 0xCC10 #HANGUL SYLLABLE SSANGCIEUC I NIEUN +0xC2F1 0xCC14 #HANGUL SYLLABLE SSANGCIEUC I RIEUL +0xC2F2 0xCC1C #HANGUL SYLLABLE SSANGCIEUC I MIEUM +0xC2F3 0xCC1D #HANGUL SYLLABLE SSANGCIEUC I PIEUP +0xC2F4 0xCC21 #HANGUL SYLLABLE SSANGCIEUC I IEUNG +0xC2F5 0xCC22 #HANGUL SYLLABLE SSANGCIEUC I CIEUC +0xC2F6 0xCC27 #HANGUL SYLLABLE SSANGCIEUC I HIEUH +0xC2F7 0xCC28 #HANGUL SYLLABLE CHIEUCH A +0xC2F8 0xCC29 #HANGUL SYLLABLE CHIEUCH A KIYEOK +0xC2F9 0xCC2C #HANGUL SYLLABLE CHIEUCH A NIEUN +0xC2FA 0xCC2E #HANGUL SYLLABLE CHIEUCH A NIEUNHIEUH +0xC2FB 0xCC30 #HANGUL SYLLABLE CHIEUCH A RIEUL +0xC2FC 0xCC38 #HANGUL SYLLABLE CHIEUCH A MIEUM +0xC2FD 0xCC39 #HANGUL SYLLABLE CHIEUCH A PIEUP +0xC2FE 0xCC3B #HANGUL SYLLABLE CHIEUCH A SIOS +0xC341 0xD63D #HANGUL SYLLABLE HIEUH O NIEUNCIEUC +0xC342 0xD63E #HANGUL SYLLABLE HIEUH O NIEUNHIEUH +0xC343 0xD63F #HANGUL SYLLABLE HIEUH O TIKEUT +0xC344 0xD641 #HANGUL SYLLABLE HIEUH O RIEULKIYEOK +0xC345 0xD642 #HANGUL SYLLABLE HIEUH O RIEULMIEUM +0xC346 0xD643 #HANGUL SYLLABLE HIEUH O RIEULPIEUP +0xC347 0xD644 #HANGUL SYLLABLE HIEUH O RIEULSIOS +0xC348 0xD646 #HANGUL SYLLABLE HIEUH O RIEULPHIEUPH +0xC349 0xD647 #HANGUL SYLLABLE HIEUH O RIEULHIEUH +0xC34A 0xD64A #HANGUL SYLLABLE HIEUH O PIEUPSIOS +0xC34B 0xD64C #HANGUL SYLLABLE HIEUH O SSANGSIOS +0xC34C 0xD64E #HANGUL SYLLABLE HIEUH O CIEUC +0xC34D 0xD64F #HANGUL SYLLABLE HIEUH O CHIEUCH +0xC34E 0xD650 #HANGUL SYLLABLE HIEUH O KHIEUKH +0xC34F 0xD652 #HANGUL SYLLABLE HIEUH O PHIEUPH +0xC350 0xD653 #HANGUL SYLLABLE HIEUH O HIEUH +0xC351 0xD656 #HANGUL SYLLABLE HIEUH WA SSANGKIYEOK +0xC352 0xD657 #HANGUL SYLLABLE HIEUH WA KIYEOKSIOS +0xC353 0xD659 #HANGUL SYLLABLE HIEUH WA NIEUNCIEUC +0xC354 0xD65A #HANGUL SYLLABLE HIEUH WA NIEUNHIEUH +0xC355 0xD65B #HANGUL SYLLABLE HIEUH WA TIKEUT +0xC356 0xD65D #HANGUL SYLLABLE HIEUH WA RIEULKIYEOK +0xC357 0xD65E #HANGUL SYLLABLE HIEUH WA RIEULMIEUM +0xC358 0xD65F #HANGUL SYLLABLE HIEUH WA RIEULPIEUP +0xC359 0xD660 #HANGUL SYLLABLE HIEUH WA RIEULSIOS +0xC35A 0xD661 #HANGUL SYLLABLE HIEUH WA RIEULTHIEUTH +0xC361 0xD662 #HANGUL SYLLABLE HIEUH WA RIEULPHIEUPH +0xC362 0xD663 #HANGUL SYLLABLE HIEUH WA RIEULHIEUH +0xC363 0xD664 #HANGUL SYLLABLE HIEUH WA MIEUM +0xC364 0xD665 #HANGUL SYLLABLE HIEUH WA PIEUP +0xC365 0xD666 #HANGUL SYLLABLE HIEUH WA PIEUPSIOS +0xC366 0xD668 #HANGUL SYLLABLE HIEUH WA SSANGSIOS +0xC367 0xD66A #HANGUL SYLLABLE HIEUH WA CIEUC +0xC368 0xD66B #HANGUL SYLLABLE HIEUH WA CHIEUCH +0xC369 0xD66C #HANGUL SYLLABLE HIEUH WA KHIEUKH +0xC36A 0xD66D #HANGUL SYLLABLE HIEUH WA THIEUTH +0xC36B 0xD66E #HANGUL SYLLABLE HIEUH WA PHIEUPH +0xC36C 0xD66F #HANGUL SYLLABLE HIEUH WA HIEUH +0xC36D 0xD672 #HANGUL SYLLABLE HIEUH WAE SSANGKIYEOK +0xC36E 0xD673 #HANGUL SYLLABLE HIEUH WAE KIYEOKSIOS +0xC36F 0xD675 #HANGUL SYLLABLE HIEUH WAE NIEUNCIEUC +0xC370 0xD676 #HANGUL SYLLABLE HIEUH WAE NIEUNHIEUH +0xC371 0xD677 #HANGUL SYLLABLE HIEUH WAE TIKEUT +0xC372 0xD678 #HANGUL SYLLABLE HIEUH WAE RIEUL +0xC373 0xD679 #HANGUL SYLLABLE HIEUH WAE RIEULKIYEOK +0xC374 0xD67A #HANGUL SYLLABLE HIEUH WAE RIEULMIEUM +0xC375 0xD67B #HANGUL SYLLABLE HIEUH WAE RIEULPIEUP +0xC376 0xD67C #HANGUL SYLLABLE HIEUH WAE RIEULSIOS +0xC377 0xD67D #HANGUL SYLLABLE HIEUH WAE RIEULTHIEUTH +0xC378 0xD67E #HANGUL SYLLABLE HIEUH WAE RIEULPHIEUPH +0xC379 0xD67F #HANGUL SYLLABLE HIEUH WAE RIEULHIEUH +0xC37A 0xD680 #HANGUL SYLLABLE HIEUH WAE MIEUM +0xC381 0xD681 #HANGUL SYLLABLE HIEUH WAE PIEUP +0xC382 0xD682 #HANGUL SYLLABLE HIEUH WAE PIEUPSIOS +0xC383 0xD684 #HANGUL SYLLABLE HIEUH WAE SSANGSIOS +0xC384 0xD686 #HANGUL SYLLABLE HIEUH WAE CIEUC +0xC385 0xD687 #HANGUL SYLLABLE HIEUH WAE CHIEUCH +0xC386 0xD688 #HANGUL SYLLABLE HIEUH WAE KHIEUKH +0xC387 0xD689 #HANGUL SYLLABLE HIEUH WAE THIEUTH +0xC388 0xD68A #HANGUL SYLLABLE HIEUH WAE PHIEUPH +0xC389 0xD68B #HANGUL SYLLABLE HIEUH WAE HIEUH +0xC38A 0xD68E #HANGUL SYLLABLE HIEUH OE SSANGKIYEOK +0xC38B 0xD68F #HANGUL SYLLABLE HIEUH OE KIYEOKSIOS +0xC38C 0xD691 #HANGUL SYLLABLE HIEUH OE NIEUNCIEUC +0xC38D 0xD692 #HANGUL SYLLABLE HIEUH OE NIEUNHIEUH +0xC38E 0xD693 #HANGUL SYLLABLE HIEUH OE TIKEUT +0xC38F 0xD695 #HANGUL SYLLABLE HIEUH OE RIEULKIYEOK +0xC390 0xD696 #HANGUL SYLLABLE HIEUH OE RIEULMIEUM +0xC391 0xD697 #HANGUL SYLLABLE HIEUH OE RIEULPIEUP +0xC392 0xD698 #HANGUL SYLLABLE HIEUH OE RIEULSIOS +0xC393 0xD699 #HANGUL SYLLABLE HIEUH OE RIEULTHIEUTH +0xC394 0xD69A #HANGUL SYLLABLE HIEUH OE RIEULPHIEUPH +0xC395 0xD69B #HANGUL SYLLABLE HIEUH OE RIEULHIEUH +0xC396 0xD69C #HANGUL SYLLABLE HIEUH OE MIEUM +0xC397 0xD69E #HANGUL SYLLABLE HIEUH OE PIEUPSIOS +0xC398 0xD6A0 #HANGUL SYLLABLE HIEUH OE SSANGSIOS +0xC399 0xD6A2 #HANGUL SYLLABLE HIEUH OE CIEUC +0xC39A 0xD6A3 #HANGUL SYLLABLE HIEUH OE CHIEUCH +0xC39B 0xD6A4 #HANGUL SYLLABLE HIEUH OE KHIEUKH +0xC39C 0xD6A5 #HANGUL SYLLABLE HIEUH OE THIEUTH +0xC39D 0xD6A6 #HANGUL SYLLABLE HIEUH OE PHIEUPH +0xC39E 0xD6A7 #HANGUL SYLLABLE HIEUH OE HIEUH +0xC39F 0xD6A9 #HANGUL SYLLABLE HIEUH YO KIYEOK +0xC3A0 0xD6AA #HANGUL SYLLABLE HIEUH YO SSANGKIYEOK +0xC3A1 0xCC3C #HANGUL SYLLABLE CHIEUCH A SSANGSIOS +0xC3A2 0xCC3D #HANGUL SYLLABLE CHIEUCH A IEUNG +0xC3A3 0xCC3E #HANGUL SYLLABLE CHIEUCH A CIEUC +0xC3A4 0xCC44 #HANGUL SYLLABLE CHIEUCH AE +0xC3A5 0xCC45 #HANGUL SYLLABLE CHIEUCH AE KIYEOK +0xC3A6 0xCC48 #HANGUL SYLLABLE CHIEUCH AE NIEUN +0xC3A7 0xCC4C #HANGUL SYLLABLE CHIEUCH AE RIEUL +0xC3A8 0xCC54 #HANGUL SYLLABLE CHIEUCH AE MIEUM +0xC3A9 0xCC55 #HANGUL SYLLABLE CHIEUCH AE PIEUP +0xC3AA 0xCC57 #HANGUL SYLLABLE CHIEUCH AE SIOS +0xC3AB 0xCC58 #HANGUL SYLLABLE CHIEUCH AE SSANGSIOS +0xC3AC 0xCC59 #HANGUL SYLLABLE CHIEUCH AE IEUNG +0xC3AD 0xCC60 #HANGUL SYLLABLE CHIEUCH YA +0xC3AE 0xCC64 #HANGUL SYLLABLE CHIEUCH YA NIEUN +0xC3AF 0xCC66 #HANGUL SYLLABLE CHIEUCH YA NIEUNHIEUH +0xC3B0 0xCC68 #HANGUL SYLLABLE CHIEUCH YA RIEUL +0xC3B1 0xCC70 #HANGUL SYLLABLE CHIEUCH YA MIEUM +0xC3B2 0xCC75 #HANGUL SYLLABLE CHIEUCH YA IEUNG +0xC3B3 0xCC98 #HANGUL SYLLABLE CHIEUCH EO +0xC3B4 0xCC99 #HANGUL SYLLABLE CHIEUCH EO KIYEOK +0xC3B5 0xCC9C #HANGUL SYLLABLE CHIEUCH EO NIEUN +0xC3B6 0xCCA0 #HANGUL SYLLABLE CHIEUCH EO RIEUL +0xC3B7 0xCCA8 #HANGUL SYLLABLE CHIEUCH EO MIEUM +0xC3B8 0xCCA9 #HANGUL SYLLABLE CHIEUCH EO PIEUP +0xC3B9 0xCCAB #HANGUL SYLLABLE CHIEUCH EO SIOS +0xC3BA 0xCCAC #HANGUL SYLLABLE CHIEUCH EO SSANGSIOS +0xC3BB 0xCCAD #HANGUL SYLLABLE CHIEUCH EO IEUNG +0xC3BC 0xCCB4 #HANGUL SYLLABLE CHIEUCH E +0xC3BD 0xCCB5 #HANGUL SYLLABLE CHIEUCH E KIYEOK +0xC3BE 0xCCB8 #HANGUL SYLLABLE CHIEUCH E NIEUN +0xC3BF 0xCCBC #HANGUL SYLLABLE CHIEUCH E RIEUL +0xC3C0 0xCCC4 #HANGUL SYLLABLE CHIEUCH E MIEUM +0xC3C1 0xCCC5 #HANGUL SYLLABLE CHIEUCH E PIEUP +0xC3C2 0xCCC7 #HANGUL SYLLABLE CHIEUCH E SIOS +0xC3C3 0xCCC9 #HANGUL SYLLABLE CHIEUCH E IEUNG +0xC3C4 0xCCD0 #HANGUL SYLLABLE CHIEUCH YEO +0xC3C5 0xCCD4 #HANGUL SYLLABLE CHIEUCH YEO NIEUN +0xC3C6 0xCCE4 #HANGUL SYLLABLE CHIEUCH YEO SSANGSIOS +0xC3C7 0xCCEC #HANGUL SYLLABLE CHIEUCH YE +0xC3C8 0xCCF0 #HANGUL SYLLABLE CHIEUCH YE NIEUN +0xC3C9 0xCD01 #HANGUL SYLLABLE CHIEUCH YE IEUNG +0xC3CA 0xCD08 #HANGUL SYLLABLE CHIEUCH O +0xC3CB 0xCD09 #HANGUL SYLLABLE CHIEUCH O KIYEOK +0xC3CC 0xCD0C #HANGUL SYLLABLE CHIEUCH O NIEUN +0xC3CD 0xCD10 #HANGUL SYLLABLE CHIEUCH O RIEUL +0xC3CE 0xCD18 #HANGUL SYLLABLE CHIEUCH O MIEUM +0xC3CF 0xCD19 #HANGUL SYLLABLE CHIEUCH O PIEUP +0xC3D0 0xCD1B #HANGUL SYLLABLE CHIEUCH O SIOS +0xC3D1 0xCD1D #HANGUL SYLLABLE CHIEUCH O IEUNG +0xC3D2 0xCD24 #HANGUL SYLLABLE CHIEUCH WA +0xC3D3 0xCD28 #HANGUL SYLLABLE CHIEUCH WA NIEUN +0xC3D4 0xCD2C #HANGUL SYLLABLE CHIEUCH WA RIEUL +0xC3D5 0xCD39 #HANGUL SYLLABLE CHIEUCH WA IEUNG +0xC3D6 0xCD5C #HANGUL SYLLABLE CHIEUCH OE +0xC3D7 0xCD60 #HANGUL SYLLABLE CHIEUCH OE NIEUN +0xC3D8 0xCD64 #HANGUL SYLLABLE CHIEUCH OE RIEUL +0xC3D9 0xCD6C #HANGUL SYLLABLE CHIEUCH OE MIEUM +0xC3DA 0xCD6D #HANGUL SYLLABLE CHIEUCH OE PIEUP +0xC3DB 0xCD6F #HANGUL SYLLABLE CHIEUCH OE SIOS +0xC3DC 0xCD71 #HANGUL SYLLABLE CHIEUCH OE IEUNG +0xC3DD 0xCD78 #HANGUL SYLLABLE CHIEUCH YO +0xC3DE 0xCD88 #HANGUL SYLLABLE CHIEUCH YO MIEUM +0xC3DF 0xCD94 #HANGUL SYLLABLE CHIEUCH U +0xC3E0 0xCD95 #HANGUL SYLLABLE CHIEUCH U KIYEOK +0xC3E1 0xCD98 #HANGUL SYLLABLE CHIEUCH U NIEUN +0xC3E2 0xCD9C #HANGUL SYLLABLE CHIEUCH U RIEUL +0xC3E3 0xCDA4 #HANGUL SYLLABLE CHIEUCH U MIEUM +0xC3E4 0xCDA5 #HANGUL SYLLABLE CHIEUCH U PIEUP +0xC3E5 0xCDA7 #HANGUL SYLLABLE CHIEUCH U SIOS +0xC3E6 0xCDA9 #HANGUL SYLLABLE CHIEUCH U IEUNG +0xC3E7 0xCDB0 #HANGUL SYLLABLE CHIEUCH WEO +0xC3E8 0xCDC4 #HANGUL SYLLABLE CHIEUCH WEO SSANGSIOS +0xC3E9 0xCDCC #HANGUL SYLLABLE CHIEUCH WE +0xC3EA 0xCDD0 #HANGUL SYLLABLE CHIEUCH WE NIEUN +0xC3EB 0xCDE8 #HANGUL SYLLABLE CHIEUCH WI +0xC3EC 0xCDEC #HANGUL SYLLABLE CHIEUCH WI NIEUN +0xC3ED 0xCDF0 #HANGUL SYLLABLE CHIEUCH WI RIEUL +0xC3EE 0xCDF8 #HANGUL SYLLABLE CHIEUCH WI MIEUM +0xC3EF 0xCDF9 #HANGUL SYLLABLE CHIEUCH WI PIEUP +0xC3F0 0xCDFB #HANGUL SYLLABLE CHIEUCH WI SIOS +0xC3F1 0xCDFD #HANGUL SYLLABLE CHIEUCH WI IEUNG +0xC3F2 0xCE04 #HANGUL SYLLABLE CHIEUCH YU +0xC3F3 0xCE08 #HANGUL SYLLABLE CHIEUCH YU NIEUN +0xC3F4 0xCE0C #HANGUL SYLLABLE CHIEUCH YU RIEUL +0xC3F5 0xCE14 #HANGUL SYLLABLE CHIEUCH YU MIEUM +0xC3F6 0xCE19 #HANGUL SYLLABLE CHIEUCH YU IEUNG +0xC3F7 0xCE20 #HANGUL SYLLABLE CHIEUCH EU +0xC3F8 0xCE21 #HANGUL SYLLABLE CHIEUCH EU KIYEOK +0xC3F9 0xCE24 #HANGUL SYLLABLE CHIEUCH EU NIEUN +0xC3FA 0xCE28 #HANGUL SYLLABLE CHIEUCH EU RIEUL +0xC3FB 0xCE30 #HANGUL SYLLABLE CHIEUCH EU MIEUM +0xC3FC 0xCE31 #HANGUL SYLLABLE CHIEUCH EU PIEUP +0xC3FD 0xCE33 #HANGUL SYLLABLE CHIEUCH EU SIOS +0xC3FE 0xCE35 #HANGUL SYLLABLE CHIEUCH EU IEUNG +0xC441 0xD6AB #HANGUL SYLLABLE HIEUH YO KIYEOKSIOS +0xC442 0xD6AD #HANGUL SYLLABLE HIEUH YO NIEUNCIEUC +0xC443 0xD6AE #HANGUL SYLLABLE HIEUH YO NIEUNHIEUH +0xC444 0xD6AF #HANGUL SYLLABLE HIEUH YO TIKEUT +0xC445 0xD6B1 #HANGUL SYLLABLE HIEUH YO RIEULKIYEOK +0xC446 0xD6B2 #HANGUL SYLLABLE HIEUH YO RIEULMIEUM +0xC447 0xD6B3 #HANGUL SYLLABLE HIEUH YO RIEULPIEUP +0xC448 0xD6B4 #HANGUL SYLLABLE HIEUH YO RIEULSIOS +0xC449 0xD6B5 #HANGUL SYLLABLE HIEUH YO RIEULTHIEUTH +0xC44A 0xD6B6 #HANGUL SYLLABLE HIEUH YO RIEULPHIEUPH +0xC44B 0xD6B7 #HANGUL SYLLABLE HIEUH YO RIEULHIEUH +0xC44C 0xD6B8 #HANGUL SYLLABLE HIEUH YO MIEUM +0xC44D 0xD6BA #HANGUL SYLLABLE HIEUH YO PIEUPSIOS +0xC44E 0xD6BC #HANGUL SYLLABLE HIEUH YO SSANGSIOS +0xC44F 0xD6BD #HANGUL SYLLABLE HIEUH YO IEUNG +0xC450 0xD6BE #HANGUL SYLLABLE HIEUH YO CIEUC +0xC451 0xD6BF #HANGUL SYLLABLE HIEUH YO CHIEUCH +0xC452 0xD6C0 #HANGUL SYLLABLE HIEUH YO KHIEUKH +0xC453 0xD6C1 #HANGUL SYLLABLE HIEUH YO THIEUTH +0xC454 0xD6C2 #HANGUL SYLLABLE HIEUH YO PHIEUPH +0xC455 0xD6C3 #HANGUL SYLLABLE HIEUH YO HIEUH +0xC456 0xD6C6 #HANGUL SYLLABLE HIEUH U SSANGKIYEOK +0xC457 0xD6C7 #HANGUL SYLLABLE HIEUH U KIYEOKSIOS +0xC458 0xD6C9 #HANGUL SYLLABLE HIEUH U NIEUNCIEUC +0xC459 0xD6CA #HANGUL SYLLABLE HIEUH U NIEUNHIEUH +0xC45A 0xD6CB #HANGUL SYLLABLE HIEUH U TIKEUT +0xC461 0xD6CD #HANGUL SYLLABLE HIEUH U RIEULKIYEOK +0xC462 0xD6CE #HANGUL SYLLABLE HIEUH U RIEULMIEUM +0xC463 0xD6CF #HANGUL SYLLABLE HIEUH U RIEULPIEUP +0xC464 0xD6D0 #HANGUL SYLLABLE HIEUH U RIEULSIOS +0xC465 0xD6D2 #HANGUL SYLLABLE HIEUH U RIEULPHIEUPH +0xC466 0xD6D3 #HANGUL SYLLABLE HIEUH U RIEULHIEUH +0xC467 0xD6D5 #HANGUL SYLLABLE HIEUH U PIEUP +0xC468 0xD6D6 #HANGUL SYLLABLE HIEUH U PIEUPSIOS +0xC469 0xD6D8 #HANGUL SYLLABLE HIEUH U SSANGSIOS +0xC46A 0xD6DA #HANGUL SYLLABLE HIEUH U CIEUC +0xC46B 0xD6DB #HANGUL SYLLABLE HIEUH U CHIEUCH +0xC46C 0xD6DC #HANGUL SYLLABLE HIEUH U KHIEUKH +0xC46D 0xD6DD #HANGUL SYLLABLE HIEUH U THIEUTH +0xC46E 0xD6DE #HANGUL SYLLABLE HIEUH U PHIEUPH +0xC46F 0xD6DF #HANGUL SYLLABLE HIEUH U HIEUH +0xC470 0xD6E1 #HANGUL SYLLABLE HIEUH WEO KIYEOK +0xC471 0xD6E2 #HANGUL SYLLABLE HIEUH WEO SSANGKIYEOK +0xC472 0xD6E3 #HANGUL SYLLABLE HIEUH WEO KIYEOKSIOS +0xC473 0xD6E5 #HANGUL SYLLABLE HIEUH WEO NIEUNCIEUC +0xC474 0xD6E6 #HANGUL SYLLABLE HIEUH WEO NIEUNHIEUH +0xC475 0xD6E7 #HANGUL SYLLABLE HIEUH WEO TIKEUT +0xC476 0xD6E9 #HANGUL SYLLABLE HIEUH WEO RIEULKIYEOK +0xC477 0xD6EA #HANGUL SYLLABLE HIEUH WEO RIEULMIEUM +0xC478 0xD6EB #HANGUL SYLLABLE HIEUH WEO RIEULPIEUP +0xC479 0xD6EC #HANGUL SYLLABLE HIEUH WEO RIEULSIOS +0xC47A 0xD6ED #HANGUL SYLLABLE HIEUH WEO RIEULTHIEUTH +0xC481 0xD6EE #HANGUL SYLLABLE HIEUH WEO RIEULPHIEUPH +0xC482 0xD6EF #HANGUL SYLLABLE HIEUH WEO RIEULHIEUH +0xC483 0xD6F1 #HANGUL SYLLABLE HIEUH WEO PIEUP +0xC484 0xD6F2 #HANGUL SYLLABLE HIEUH WEO PIEUPSIOS +0xC485 0xD6F3 #HANGUL SYLLABLE HIEUH WEO SIOS +0xC486 0xD6F4 #HANGUL SYLLABLE HIEUH WEO SSANGSIOS +0xC487 0xD6F6 #HANGUL SYLLABLE HIEUH WEO CIEUC +0xC488 0xD6F7 #HANGUL SYLLABLE HIEUH WEO CHIEUCH +0xC489 0xD6F8 #HANGUL SYLLABLE HIEUH WEO KHIEUKH +0xC48A 0xD6F9 #HANGUL SYLLABLE HIEUH WEO THIEUTH +0xC48B 0xD6FA #HANGUL SYLLABLE HIEUH WEO PHIEUPH +0xC48C 0xD6FB #HANGUL SYLLABLE HIEUH WEO HIEUH +0xC48D 0xD6FE #HANGUL SYLLABLE HIEUH WE SSANGKIYEOK +0xC48E 0xD6FF #HANGUL SYLLABLE HIEUH WE KIYEOKSIOS +0xC48F 0xD701 #HANGUL SYLLABLE HIEUH WE NIEUNCIEUC +0xC490 0xD702 #HANGUL SYLLABLE HIEUH WE NIEUNHIEUH +0xC491 0xD703 #HANGUL SYLLABLE HIEUH WE TIKEUT +0xC492 0xD705 #HANGUL SYLLABLE HIEUH WE RIEULKIYEOK +0xC493 0xD706 #HANGUL SYLLABLE HIEUH WE RIEULMIEUM +0xC494 0xD707 #HANGUL SYLLABLE HIEUH WE RIEULPIEUP +0xC495 0xD708 #HANGUL SYLLABLE HIEUH WE RIEULSIOS +0xC496 0xD709 #HANGUL SYLLABLE HIEUH WE RIEULTHIEUTH +0xC497 0xD70A #HANGUL SYLLABLE HIEUH WE RIEULPHIEUPH +0xC498 0xD70B #HANGUL SYLLABLE HIEUH WE RIEULHIEUH +0xC499 0xD70C #HANGUL SYLLABLE HIEUH WE MIEUM +0xC49A 0xD70D #HANGUL SYLLABLE HIEUH WE PIEUP +0xC49B 0xD70E #HANGUL SYLLABLE HIEUH WE PIEUPSIOS +0xC49C 0xD70F #HANGUL SYLLABLE HIEUH WE SIOS +0xC49D 0xD710 #HANGUL SYLLABLE HIEUH WE SSANGSIOS +0xC49E 0xD712 #HANGUL SYLLABLE HIEUH WE CIEUC +0xC49F 0xD713 #HANGUL SYLLABLE HIEUH WE CHIEUCH +0xC4A0 0xD714 #HANGUL SYLLABLE HIEUH WE KHIEUKH +0xC4A1 0xCE58 #HANGUL SYLLABLE CHIEUCH I +0xC4A2 0xCE59 #HANGUL SYLLABLE CHIEUCH I KIYEOK +0xC4A3 0xCE5C #HANGUL SYLLABLE CHIEUCH I NIEUN +0xC4A4 0xCE5F #HANGUL SYLLABLE CHIEUCH I TIKEUT +0xC4A5 0xCE60 #HANGUL SYLLABLE CHIEUCH I RIEUL +0xC4A6 0xCE61 #HANGUL SYLLABLE CHIEUCH I RIEULKIYEOK +0xC4A7 0xCE68 #HANGUL SYLLABLE CHIEUCH I MIEUM +0xC4A8 0xCE69 #HANGUL SYLLABLE CHIEUCH I PIEUP +0xC4A9 0xCE6B #HANGUL SYLLABLE CHIEUCH I SIOS +0xC4AA 0xCE6D #HANGUL SYLLABLE CHIEUCH I IEUNG +0xC4AB 0xCE74 #HANGUL SYLLABLE KHIEUKH A +0xC4AC 0xCE75 #HANGUL SYLLABLE KHIEUKH A KIYEOK +0xC4AD 0xCE78 #HANGUL SYLLABLE KHIEUKH A NIEUN +0xC4AE 0xCE7C #HANGUL SYLLABLE KHIEUKH A RIEUL +0xC4AF 0xCE84 #HANGUL SYLLABLE KHIEUKH A MIEUM +0xC4B0 0xCE85 #HANGUL SYLLABLE KHIEUKH A PIEUP +0xC4B1 0xCE87 #HANGUL SYLLABLE KHIEUKH A SIOS +0xC4B2 0xCE89 #HANGUL SYLLABLE KHIEUKH A IEUNG +0xC4B3 0xCE90 #HANGUL SYLLABLE KHIEUKH AE +0xC4B4 0xCE91 #HANGUL SYLLABLE KHIEUKH AE KIYEOK +0xC4B5 0xCE94 #HANGUL SYLLABLE KHIEUKH AE NIEUN +0xC4B6 0xCE98 #HANGUL SYLLABLE KHIEUKH AE RIEUL +0xC4B7 0xCEA0 #HANGUL SYLLABLE KHIEUKH AE MIEUM +0xC4B8 0xCEA1 #HANGUL SYLLABLE KHIEUKH AE PIEUP +0xC4B9 0xCEA3 #HANGUL SYLLABLE KHIEUKH AE SIOS +0xC4BA 0xCEA4 #HANGUL SYLLABLE KHIEUKH AE SSANGSIOS +0xC4BB 0xCEA5 #HANGUL SYLLABLE KHIEUKH AE IEUNG +0xC4BC 0xCEAC #HANGUL SYLLABLE KHIEUKH YA +0xC4BD 0xCEAD #HANGUL SYLLABLE KHIEUKH YA KIYEOK +0xC4BE 0xCEC1 #HANGUL SYLLABLE KHIEUKH YA IEUNG +0xC4BF 0xCEE4 #HANGUL SYLLABLE KHIEUKH EO +0xC4C0 0xCEE5 #HANGUL SYLLABLE KHIEUKH EO KIYEOK +0xC4C1 0xCEE8 #HANGUL SYLLABLE KHIEUKH EO NIEUN +0xC4C2 0xCEEB #HANGUL SYLLABLE KHIEUKH EO TIKEUT +0xC4C3 0xCEEC #HANGUL SYLLABLE KHIEUKH EO RIEUL +0xC4C4 0xCEF4 #HANGUL SYLLABLE KHIEUKH EO MIEUM +0xC4C5 0xCEF5 #HANGUL SYLLABLE KHIEUKH EO PIEUP +0xC4C6 0xCEF7 #HANGUL SYLLABLE KHIEUKH EO SIOS +0xC4C7 0xCEF8 #HANGUL SYLLABLE KHIEUKH EO SSANGSIOS +0xC4C8 0xCEF9 #HANGUL SYLLABLE KHIEUKH EO IEUNG +0xC4C9 0xCF00 #HANGUL SYLLABLE KHIEUKH E +0xC4CA 0xCF01 #HANGUL SYLLABLE KHIEUKH E KIYEOK +0xC4CB 0xCF04 #HANGUL SYLLABLE KHIEUKH E NIEUN +0xC4CC 0xCF08 #HANGUL SYLLABLE KHIEUKH E RIEUL +0xC4CD 0xCF10 #HANGUL SYLLABLE KHIEUKH E MIEUM +0xC4CE 0xCF11 #HANGUL SYLLABLE KHIEUKH E PIEUP +0xC4CF 0xCF13 #HANGUL SYLLABLE KHIEUKH E SIOS +0xC4D0 0xCF15 #HANGUL SYLLABLE KHIEUKH E IEUNG +0xC4D1 0xCF1C #HANGUL SYLLABLE KHIEUKH YEO +0xC4D2 0xCF20 #HANGUL SYLLABLE KHIEUKH YEO NIEUN +0xC4D3 0xCF24 #HANGUL SYLLABLE KHIEUKH YEO RIEUL +0xC4D4 0xCF2C #HANGUL SYLLABLE KHIEUKH YEO MIEUM +0xC4D5 0xCF2D #HANGUL SYLLABLE KHIEUKH YEO PIEUP +0xC4D6 0xCF2F #HANGUL SYLLABLE KHIEUKH YEO SIOS +0xC4D7 0xCF30 #HANGUL SYLLABLE KHIEUKH YEO SSANGSIOS +0xC4D8 0xCF31 #HANGUL SYLLABLE KHIEUKH YEO IEUNG +0xC4D9 0xCF38 #HANGUL SYLLABLE KHIEUKH YE +0xC4DA 0xCF54 #HANGUL SYLLABLE KHIEUKH O +0xC4DB 0xCF55 #HANGUL SYLLABLE KHIEUKH O KIYEOK +0xC4DC 0xCF58 #HANGUL SYLLABLE KHIEUKH O NIEUN +0xC4DD 0xCF5C #HANGUL SYLLABLE KHIEUKH O RIEUL +0xC4DE 0xCF64 #HANGUL SYLLABLE KHIEUKH O MIEUM +0xC4DF 0xCF65 #HANGUL SYLLABLE KHIEUKH O PIEUP +0xC4E0 0xCF67 #HANGUL SYLLABLE KHIEUKH O SIOS +0xC4E1 0xCF69 #HANGUL SYLLABLE KHIEUKH O IEUNG +0xC4E2 0xCF70 #HANGUL SYLLABLE KHIEUKH WA +0xC4E3 0xCF71 #HANGUL SYLLABLE KHIEUKH WA KIYEOK +0xC4E4 0xCF74 #HANGUL SYLLABLE KHIEUKH WA NIEUN +0xC4E5 0xCF78 #HANGUL SYLLABLE KHIEUKH WA RIEUL +0xC4E6 0xCF80 #HANGUL SYLLABLE KHIEUKH WA MIEUM +0xC4E7 0xCF85 #HANGUL SYLLABLE KHIEUKH WA IEUNG +0xC4E8 0xCF8C #HANGUL SYLLABLE KHIEUKH WAE +0xC4E9 0xCFA1 #HANGUL SYLLABLE KHIEUKH WAE IEUNG +0xC4EA 0xCFA8 #HANGUL SYLLABLE KHIEUKH OE +0xC4EB 0xCFB0 #HANGUL SYLLABLE KHIEUKH OE RIEUL +0xC4EC 0xCFC4 #HANGUL SYLLABLE KHIEUKH YO +0xC4ED 0xCFE0 #HANGUL SYLLABLE KHIEUKH U +0xC4EE 0xCFE1 #HANGUL SYLLABLE KHIEUKH U KIYEOK +0xC4EF 0xCFE4 #HANGUL SYLLABLE KHIEUKH U NIEUN +0xC4F0 0xCFE8 #HANGUL SYLLABLE KHIEUKH U RIEUL +0xC4F1 0xCFF0 #HANGUL SYLLABLE KHIEUKH U MIEUM +0xC4F2 0xCFF1 #HANGUL SYLLABLE KHIEUKH U PIEUP +0xC4F3 0xCFF3 #HANGUL SYLLABLE KHIEUKH U SIOS +0xC4F4 0xCFF5 #HANGUL SYLLABLE KHIEUKH U IEUNG +0xC4F5 0xCFFC #HANGUL SYLLABLE KHIEUKH WEO +0xC4F6 0xD000 #HANGUL SYLLABLE KHIEUKH WEO NIEUN +0xC4F7 0xD004 #HANGUL SYLLABLE KHIEUKH WEO RIEUL +0xC4F8 0xD011 #HANGUL SYLLABLE KHIEUKH WEO IEUNG +0xC4F9 0xD018 #HANGUL SYLLABLE KHIEUKH WE +0xC4FA 0xD02D #HANGUL SYLLABLE KHIEUKH WE IEUNG +0xC4FB 0xD034 #HANGUL SYLLABLE KHIEUKH WI +0xC4FC 0xD035 #HANGUL SYLLABLE KHIEUKH WI KIYEOK +0xC4FD 0xD038 #HANGUL SYLLABLE KHIEUKH WI NIEUN +0xC4FE 0xD03C #HANGUL SYLLABLE KHIEUKH WI RIEUL +0xC541 0xD715 #HANGUL SYLLABLE HIEUH WE THIEUTH +0xC542 0xD716 #HANGUL SYLLABLE HIEUH WE PHIEUPH +0xC543 0xD717 #HANGUL SYLLABLE HIEUH WE HIEUH +0xC544 0xD71A #HANGUL SYLLABLE HIEUH WI SSANGKIYEOK +0xC545 0xD71B #HANGUL SYLLABLE HIEUH WI KIYEOKSIOS +0xC546 0xD71D #HANGUL SYLLABLE HIEUH WI NIEUNCIEUC +0xC547 0xD71E #HANGUL SYLLABLE HIEUH WI NIEUNHIEUH +0xC548 0xD71F #HANGUL SYLLABLE HIEUH WI TIKEUT +0xC549 0xD721 #HANGUL SYLLABLE HIEUH WI RIEULKIYEOK +0xC54A 0xD722 #HANGUL SYLLABLE HIEUH WI RIEULMIEUM +0xC54B 0xD723 #HANGUL SYLLABLE HIEUH WI RIEULPIEUP +0xC54C 0xD724 #HANGUL SYLLABLE HIEUH WI RIEULSIOS +0xC54D 0xD725 #HANGUL SYLLABLE HIEUH WI RIEULTHIEUTH +0xC54E 0xD726 #HANGUL SYLLABLE HIEUH WI RIEULPHIEUPH +0xC54F 0xD727 #HANGUL SYLLABLE HIEUH WI RIEULHIEUH +0xC550 0xD72A #HANGUL SYLLABLE HIEUH WI PIEUPSIOS +0xC551 0xD72C #HANGUL SYLLABLE HIEUH WI SSANGSIOS +0xC552 0xD72E #HANGUL SYLLABLE HIEUH WI CIEUC +0xC553 0xD72F #HANGUL SYLLABLE HIEUH WI CHIEUCH +0xC554 0xD730 #HANGUL SYLLABLE HIEUH WI KHIEUKH +0xC555 0xD731 #HANGUL SYLLABLE HIEUH WI THIEUTH +0xC556 0xD732 #HANGUL SYLLABLE HIEUH WI PHIEUPH +0xC557 0xD733 #HANGUL SYLLABLE HIEUH WI HIEUH +0xC558 0xD736 #HANGUL SYLLABLE HIEUH YU SSANGKIYEOK +0xC559 0xD737 #HANGUL SYLLABLE HIEUH YU KIYEOKSIOS +0xC55A 0xD739 #HANGUL SYLLABLE HIEUH YU NIEUNCIEUC +0xC561 0xD73A #HANGUL SYLLABLE HIEUH YU NIEUNHIEUH +0xC562 0xD73B #HANGUL SYLLABLE HIEUH YU TIKEUT +0xC563 0xD73D #HANGUL SYLLABLE HIEUH YU RIEULKIYEOK +0xC564 0xD73E #HANGUL SYLLABLE HIEUH YU RIEULMIEUM +0xC565 0xD73F #HANGUL SYLLABLE HIEUH YU RIEULPIEUP +0xC566 0xD740 #HANGUL SYLLABLE HIEUH YU RIEULSIOS +0xC567 0xD741 #HANGUL SYLLABLE HIEUH YU RIEULTHIEUTH +0xC568 0xD742 #HANGUL SYLLABLE HIEUH YU RIEULPHIEUPH +0xC569 0xD743 #HANGUL SYLLABLE HIEUH YU RIEULHIEUH +0xC56A 0xD745 #HANGUL SYLLABLE HIEUH YU PIEUP +0xC56B 0xD746 #HANGUL SYLLABLE HIEUH YU PIEUPSIOS +0xC56C 0xD748 #HANGUL SYLLABLE HIEUH YU SSANGSIOS +0xC56D 0xD74A #HANGUL SYLLABLE HIEUH YU CIEUC +0xC56E 0xD74B #HANGUL SYLLABLE HIEUH YU CHIEUCH +0xC56F 0xD74C #HANGUL SYLLABLE HIEUH YU KHIEUKH +0xC570 0xD74D #HANGUL SYLLABLE HIEUH YU THIEUTH +0xC571 0xD74E #HANGUL SYLLABLE HIEUH YU PHIEUPH +0xC572 0xD74F #HANGUL SYLLABLE HIEUH YU HIEUH +0xC573 0xD752 #HANGUL SYLLABLE HIEUH EU SSANGKIYEOK +0xC574 0xD753 #HANGUL SYLLABLE HIEUH EU KIYEOKSIOS +0xC575 0xD755 #HANGUL SYLLABLE HIEUH EU NIEUNCIEUC +0xC576 0xD75A #HANGUL SYLLABLE HIEUH EU RIEULMIEUM +0xC577 0xD75B #HANGUL SYLLABLE HIEUH EU RIEULPIEUP +0xC578 0xD75C #HANGUL SYLLABLE HIEUH EU RIEULSIOS +0xC579 0xD75D #HANGUL SYLLABLE HIEUH EU RIEULTHIEUTH +0xC57A 0xD75E #HANGUL SYLLABLE HIEUH EU RIEULPHIEUPH +0xC581 0xD75F #HANGUL SYLLABLE HIEUH EU RIEULHIEUH +0xC582 0xD762 #HANGUL SYLLABLE HIEUH EU PIEUPSIOS +0xC583 0xD764 #HANGUL SYLLABLE HIEUH EU SSANGSIOS +0xC584 0xD766 #HANGUL SYLLABLE HIEUH EU CIEUC +0xC585 0xD767 #HANGUL SYLLABLE HIEUH EU CHIEUCH +0xC586 0xD768 #HANGUL SYLLABLE HIEUH EU KHIEUKH +0xC587 0xD76A #HANGUL SYLLABLE HIEUH EU PHIEUPH +0xC588 0xD76B #HANGUL SYLLABLE HIEUH EU HIEUH +0xC589 0xD76D #HANGUL SYLLABLE HIEUH YI KIYEOK +0xC58A 0xD76E #HANGUL SYLLABLE HIEUH YI SSANGKIYEOK +0xC58B 0xD76F #HANGUL SYLLABLE HIEUH YI KIYEOKSIOS +0xC58C 0xD771 #HANGUL SYLLABLE HIEUH YI NIEUNCIEUC +0xC58D 0xD772 #HANGUL SYLLABLE HIEUH YI NIEUNHIEUH +0xC58E 0xD773 #HANGUL SYLLABLE HIEUH YI TIKEUT +0xC58F 0xD775 #HANGUL SYLLABLE HIEUH YI RIEULKIYEOK +0xC590 0xD776 #HANGUL SYLLABLE HIEUH YI RIEULMIEUM +0xC591 0xD777 #HANGUL SYLLABLE HIEUH YI RIEULPIEUP +0xC592 0xD778 #HANGUL SYLLABLE HIEUH YI RIEULSIOS +0xC593 0xD779 #HANGUL SYLLABLE HIEUH YI RIEULTHIEUTH +0xC594 0xD77A #HANGUL SYLLABLE HIEUH YI RIEULPHIEUPH +0xC595 0xD77B #HANGUL SYLLABLE HIEUH YI RIEULHIEUH +0xC596 0xD77E #HANGUL SYLLABLE HIEUH YI PIEUPSIOS +0xC597 0xD77F #HANGUL SYLLABLE HIEUH YI SIOS +0xC598 0xD780 #HANGUL SYLLABLE HIEUH YI SSANGSIOS +0xC599 0xD782 #HANGUL SYLLABLE HIEUH YI CIEUC +0xC59A 0xD783 #HANGUL SYLLABLE HIEUH YI CHIEUCH +0xC59B 0xD784 #HANGUL SYLLABLE HIEUH YI KHIEUKH +0xC59C 0xD785 #HANGUL SYLLABLE HIEUH YI THIEUTH +0xC59D 0xD786 #HANGUL SYLLABLE HIEUH YI PHIEUPH +0xC59E 0xD787 #HANGUL SYLLABLE HIEUH YI HIEUH +0xC59F 0xD78A #HANGUL SYLLABLE HIEUH I SSANGKIYEOK +0xC5A0 0xD78B #HANGUL SYLLABLE HIEUH I KIYEOKSIOS +0xC5A1 0xD044 #HANGUL SYLLABLE KHIEUKH WI MIEUM +0xC5A2 0xD045 #HANGUL SYLLABLE KHIEUKH WI PIEUP +0xC5A3 0xD047 #HANGUL SYLLABLE KHIEUKH WI SIOS +0xC5A4 0xD049 #HANGUL SYLLABLE KHIEUKH WI IEUNG +0xC5A5 0xD050 #HANGUL SYLLABLE KHIEUKH YU +0xC5A6 0xD054 #HANGUL SYLLABLE KHIEUKH YU NIEUN +0xC5A7 0xD058 #HANGUL SYLLABLE KHIEUKH YU RIEUL +0xC5A8 0xD060 #HANGUL SYLLABLE KHIEUKH YU MIEUM +0xC5A9 0xD06C #HANGUL SYLLABLE KHIEUKH EU +0xC5AA 0xD06D #HANGUL SYLLABLE KHIEUKH EU KIYEOK +0xC5AB 0xD070 #HANGUL SYLLABLE KHIEUKH EU NIEUN +0xC5AC 0xD074 #HANGUL SYLLABLE KHIEUKH EU RIEUL +0xC5AD 0xD07C #HANGUL SYLLABLE KHIEUKH EU MIEUM +0xC5AE 0xD07D #HANGUL SYLLABLE KHIEUKH EU PIEUP +0xC5AF 0xD081 #HANGUL SYLLABLE KHIEUKH EU IEUNG +0xC5B0 0xD0A4 #HANGUL SYLLABLE KHIEUKH I +0xC5B1 0xD0A5 #HANGUL SYLLABLE KHIEUKH I KIYEOK +0xC5B2 0xD0A8 #HANGUL SYLLABLE KHIEUKH I NIEUN +0xC5B3 0xD0AC #HANGUL SYLLABLE KHIEUKH I RIEUL +0xC5B4 0xD0B4 #HANGUL SYLLABLE KHIEUKH I MIEUM +0xC5B5 0xD0B5 #HANGUL SYLLABLE KHIEUKH I PIEUP +0xC5B6 0xD0B7 #HANGUL SYLLABLE KHIEUKH I SIOS +0xC5B7 0xD0B9 #HANGUL SYLLABLE KHIEUKH I IEUNG +0xC5B8 0xD0C0 #HANGUL SYLLABLE THIEUTH A +0xC5B9 0xD0C1 #HANGUL SYLLABLE THIEUTH A KIYEOK +0xC5BA 0xD0C4 #HANGUL SYLLABLE THIEUTH A NIEUN +0xC5BB 0xD0C8 #HANGUL SYLLABLE THIEUTH A RIEUL +0xC5BC 0xD0C9 #HANGUL SYLLABLE THIEUTH A RIEULKIYEOK +0xC5BD 0xD0D0 #HANGUL SYLLABLE THIEUTH A MIEUM +0xC5BE 0xD0D1 #HANGUL SYLLABLE THIEUTH A PIEUP +0xC5BF 0xD0D3 #HANGUL SYLLABLE THIEUTH A SIOS +0xC5C0 0xD0D4 #HANGUL SYLLABLE THIEUTH A SSANGSIOS +0xC5C1 0xD0D5 #HANGUL SYLLABLE THIEUTH A IEUNG +0xC5C2 0xD0DC #HANGUL SYLLABLE THIEUTH AE +0xC5C3 0xD0DD #HANGUL SYLLABLE THIEUTH AE KIYEOK +0xC5C4 0xD0E0 #HANGUL SYLLABLE THIEUTH AE NIEUN +0xC5C5 0xD0E4 #HANGUL SYLLABLE THIEUTH AE RIEUL +0xC5C6 0xD0EC #HANGUL SYLLABLE THIEUTH AE MIEUM +0xC5C7 0xD0ED #HANGUL SYLLABLE THIEUTH AE PIEUP +0xC5C8 0xD0EF #HANGUL SYLLABLE THIEUTH AE SIOS +0xC5C9 0xD0F0 #HANGUL SYLLABLE THIEUTH AE SSANGSIOS +0xC5CA 0xD0F1 #HANGUL SYLLABLE THIEUTH AE IEUNG +0xC5CB 0xD0F8 #HANGUL SYLLABLE THIEUTH YA +0xC5CC 0xD10D #HANGUL SYLLABLE THIEUTH YA IEUNG +0xC5CD 0xD130 #HANGUL SYLLABLE THIEUTH EO +0xC5CE 0xD131 #HANGUL SYLLABLE THIEUTH EO KIYEOK +0xC5CF 0xD134 #HANGUL SYLLABLE THIEUTH EO NIEUN +0xC5D0 0xD138 #HANGUL SYLLABLE THIEUTH EO RIEUL +0xC5D1 0xD13A #HANGUL SYLLABLE THIEUTH EO RIEULMIEUM +0xC5D2 0xD140 #HANGUL SYLLABLE THIEUTH EO MIEUM +0xC5D3 0xD141 #HANGUL SYLLABLE THIEUTH EO PIEUP +0xC5D4 0xD143 #HANGUL SYLLABLE THIEUTH EO SIOS +0xC5D5 0xD144 #HANGUL SYLLABLE THIEUTH EO SSANGSIOS +0xC5D6 0xD145 #HANGUL SYLLABLE THIEUTH EO IEUNG +0xC5D7 0xD14C #HANGUL SYLLABLE THIEUTH E +0xC5D8 0xD14D #HANGUL SYLLABLE THIEUTH E KIYEOK +0xC5D9 0xD150 #HANGUL SYLLABLE THIEUTH E NIEUN +0xC5DA 0xD154 #HANGUL SYLLABLE THIEUTH E RIEUL +0xC5DB 0xD15C #HANGUL SYLLABLE THIEUTH E MIEUM +0xC5DC 0xD15D #HANGUL SYLLABLE THIEUTH E PIEUP +0xC5DD 0xD15F #HANGUL SYLLABLE THIEUTH E SIOS +0xC5DE 0xD161 #HANGUL SYLLABLE THIEUTH E IEUNG +0xC5DF 0xD168 #HANGUL SYLLABLE THIEUTH YEO +0xC5E0 0xD16C #HANGUL SYLLABLE THIEUTH YEO NIEUN +0xC5E1 0xD17C #HANGUL SYLLABLE THIEUTH YEO SSANGSIOS +0xC5E2 0xD184 #HANGUL SYLLABLE THIEUTH YE +0xC5E3 0xD188 #HANGUL SYLLABLE THIEUTH YE NIEUN +0xC5E4 0xD1A0 #HANGUL SYLLABLE THIEUTH O +0xC5E5 0xD1A1 #HANGUL SYLLABLE THIEUTH O KIYEOK +0xC5E6 0xD1A4 #HANGUL SYLLABLE THIEUTH O NIEUN +0xC5E7 0xD1A8 #HANGUL SYLLABLE THIEUTH O RIEUL +0xC5E8 0xD1B0 #HANGUL SYLLABLE THIEUTH O MIEUM +0xC5E9 0xD1B1 #HANGUL SYLLABLE THIEUTH O PIEUP +0xC5EA 0xD1B3 #HANGUL SYLLABLE THIEUTH O SIOS +0xC5EB 0xD1B5 #HANGUL SYLLABLE THIEUTH O IEUNG +0xC5EC 0xD1BA #HANGUL SYLLABLE THIEUTH O PHIEUPH +0xC5ED 0xD1BC #HANGUL SYLLABLE THIEUTH WA +0xC5EE 0xD1C0 #HANGUL SYLLABLE THIEUTH WA NIEUN +0xC5EF 0xD1D8 #HANGUL SYLLABLE THIEUTH WAE +0xC5F0 0xD1F4 #HANGUL SYLLABLE THIEUTH OE +0xC5F1 0xD1F8 #HANGUL SYLLABLE THIEUTH OE NIEUN +0xC5F2 0xD207 #HANGUL SYLLABLE THIEUTH OE SIOS +0xC5F3 0xD209 #HANGUL SYLLABLE THIEUTH OE IEUNG +0xC5F4 0xD210 #HANGUL SYLLABLE THIEUTH YO +0xC5F5 0xD22C #HANGUL SYLLABLE THIEUTH U +0xC5F6 0xD22D #HANGUL SYLLABLE THIEUTH U KIYEOK +0xC5F7 0xD230 #HANGUL SYLLABLE THIEUTH U NIEUN +0xC5F8 0xD234 #HANGUL SYLLABLE THIEUTH U RIEUL +0xC5F9 0xD23C #HANGUL SYLLABLE THIEUTH U MIEUM +0xC5FA 0xD23D #HANGUL SYLLABLE THIEUTH U PIEUP +0xC5FB 0xD23F #HANGUL SYLLABLE THIEUTH U SIOS +0xC5FC 0xD241 #HANGUL SYLLABLE THIEUTH U IEUNG +0xC5FD 0xD248 #HANGUL SYLLABLE THIEUTH WEO +0xC5FE 0xD25C #HANGUL SYLLABLE THIEUTH WEO SSANGSIOS +0xC641 0xD78D #HANGUL SYLLABLE HIEUH I NIEUNCIEUC +0xC642 0xD78E #HANGUL SYLLABLE HIEUH I NIEUNHIEUH +0xC643 0xD78F #HANGUL SYLLABLE HIEUH I TIKEUT +0xC644 0xD791 #HANGUL SYLLABLE HIEUH I RIEULKIYEOK +0xC645 0xD792 #HANGUL SYLLABLE HIEUH I RIEULMIEUM +0xC646 0xD793 #HANGUL SYLLABLE HIEUH I RIEULPIEUP +0xC647 0xD794 #HANGUL SYLLABLE HIEUH I RIEULSIOS +0xC648 0xD795 #HANGUL SYLLABLE HIEUH I RIEULTHIEUTH +0xC649 0xD796 #HANGUL SYLLABLE HIEUH I RIEULPHIEUPH +0xC64A 0xD797 #HANGUL SYLLABLE HIEUH I RIEULHIEUH +0xC64B 0xD79A #HANGUL SYLLABLE HIEUH I PIEUPSIOS +0xC64C 0xD79C #HANGUL SYLLABLE HIEUH I SSANGSIOS +0xC64D 0xD79E #HANGUL SYLLABLE HIEUH I CIEUC +0xC64E 0xD79F #HANGUL SYLLABLE HIEUH I CHIEUCH +0xC64F 0xD7A0 #HANGUL SYLLABLE HIEUH I KHIEUKH +0xC650 0xD7A1 #HANGUL SYLLABLE HIEUH I THIEUTH +0xC651 0xD7A2 #HANGUL SYLLABLE HIEUH I PHIEUPH +0xC652 0xD7A3 #HANGUL SYLLABLE HIEUH I HIEUH +0xC6A1 0xD264 #HANGUL SYLLABLE THIEUTH WE +0xC6A2 0xD280 #HANGUL SYLLABLE THIEUTH WI +0xC6A3 0xD281 #HANGUL SYLLABLE THIEUTH WI KIYEOK +0xC6A4 0xD284 #HANGUL SYLLABLE THIEUTH WI NIEUN +0xC6A5 0xD288 #HANGUL SYLLABLE THIEUTH WI RIEUL +0xC6A6 0xD290 #HANGUL SYLLABLE THIEUTH WI MIEUM +0xC6A7 0xD291 #HANGUL SYLLABLE THIEUTH WI PIEUP +0xC6A8 0xD295 #HANGUL SYLLABLE THIEUTH WI IEUNG +0xC6A9 0xD29C #HANGUL SYLLABLE THIEUTH YU +0xC6AA 0xD2A0 #HANGUL SYLLABLE THIEUTH YU NIEUN +0xC6AB 0xD2A4 #HANGUL SYLLABLE THIEUTH YU RIEUL +0xC6AC 0xD2AC #HANGUL SYLLABLE THIEUTH YU MIEUM +0xC6AD 0xD2B1 #HANGUL SYLLABLE THIEUTH YU IEUNG +0xC6AE 0xD2B8 #HANGUL SYLLABLE THIEUTH EU +0xC6AF 0xD2B9 #HANGUL SYLLABLE THIEUTH EU KIYEOK +0xC6B0 0xD2BC #HANGUL SYLLABLE THIEUTH EU NIEUN +0xC6B1 0xD2BF #HANGUL SYLLABLE THIEUTH EU TIKEUT +0xC6B2 0xD2C0 #HANGUL SYLLABLE THIEUTH EU RIEUL +0xC6B3 0xD2C2 #HANGUL SYLLABLE THIEUTH EU RIEULMIEUM +0xC6B4 0xD2C8 #HANGUL SYLLABLE THIEUTH EU MIEUM +0xC6B5 0xD2C9 #HANGUL SYLLABLE THIEUTH EU PIEUP +0xC6B6 0xD2CB #HANGUL SYLLABLE THIEUTH EU SIOS +0xC6B7 0xD2D4 #HANGUL SYLLABLE THIEUTH YI +0xC6B8 0xD2D8 #HANGUL SYLLABLE THIEUTH YI NIEUN +0xC6B9 0xD2DC #HANGUL SYLLABLE THIEUTH YI RIEUL +0xC6BA 0xD2E4 #HANGUL SYLLABLE THIEUTH YI MIEUM +0xC6BB 0xD2E5 #HANGUL SYLLABLE THIEUTH YI PIEUP +0xC6BC 0xD2F0 #HANGUL SYLLABLE THIEUTH I +0xC6BD 0xD2F1 #HANGUL SYLLABLE THIEUTH I KIYEOK +0xC6BE 0xD2F4 #HANGUL SYLLABLE THIEUTH I NIEUN +0xC6BF 0xD2F8 #HANGUL SYLLABLE THIEUTH I RIEUL +0xC6C0 0xD300 #HANGUL SYLLABLE THIEUTH I MIEUM +0xC6C1 0xD301 #HANGUL SYLLABLE THIEUTH I PIEUP +0xC6C2 0xD303 #HANGUL SYLLABLE THIEUTH I SIOS +0xC6C3 0xD305 #HANGUL SYLLABLE THIEUTH I IEUNG +0xC6C4 0xD30C #HANGUL SYLLABLE PHIEUPH A +0xC6C5 0xD30D #HANGUL SYLLABLE PHIEUPH A KIYEOK +0xC6C6 0xD30E #HANGUL SYLLABLE PHIEUPH A SSANGKIYEOK +0xC6C7 0xD310 #HANGUL SYLLABLE PHIEUPH A NIEUN +0xC6C8 0xD314 #HANGUL SYLLABLE PHIEUPH A RIEUL +0xC6C9 0xD316 #HANGUL SYLLABLE PHIEUPH A RIEULMIEUM +0xC6CA 0xD31C #HANGUL SYLLABLE PHIEUPH A MIEUM +0xC6CB 0xD31D #HANGUL SYLLABLE PHIEUPH A PIEUP +0xC6CC 0xD31F #HANGUL SYLLABLE PHIEUPH A SIOS +0xC6CD 0xD320 #HANGUL SYLLABLE PHIEUPH A SSANGSIOS +0xC6CE 0xD321 #HANGUL SYLLABLE PHIEUPH A IEUNG +0xC6CF 0xD325 #HANGUL SYLLABLE PHIEUPH A THIEUTH +0xC6D0 0xD328 #HANGUL SYLLABLE PHIEUPH AE +0xC6D1 0xD329 #HANGUL SYLLABLE PHIEUPH AE KIYEOK +0xC6D2 0xD32C #HANGUL SYLLABLE PHIEUPH AE NIEUN +0xC6D3 0xD330 #HANGUL SYLLABLE PHIEUPH AE RIEUL +0xC6D4 0xD338 #HANGUL SYLLABLE PHIEUPH AE MIEUM +0xC6D5 0xD339 #HANGUL SYLLABLE PHIEUPH AE PIEUP +0xC6D6 0xD33B #HANGUL SYLLABLE PHIEUPH AE SIOS +0xC6D7 0xD33C #HANGUL SYLLABLE PHIEUPH AE SSANGSIOS +0xC6D8 0xD33D #HANGUL SYLLABLE PHIEUPH AE IEUNG +0xC6D9 0xD344 #HANGUL SYLLABLE PHIEUPH YA +0xC6DA 0xD345 #HANGUL SYLLABLE PHIEUPH YA KIYEOK +0xC6DB 0xD37C #HANGUL SYLLABLE PHIEUPH EO +0xC6DC 0xD37D #HANGUL SYLLABLE PHIEUPH EO KIYEOK +0xC6DD 0xD380 #HANGUL SYLLABLE PHIEUPH EO NIEUN +0xC6DE 0xD384 #HANGUL SYLLABLE PHIEUPH EO RIEUL +0xC6DF 0xD38C #HANGUL SYLLABLE PHIEUPH EO MIEUM +0xC6E0 0xD38D #HANGUL SYLLABLE PHIEUPH EO PIEUP +0xC6E1 0xD38F #HANGUL SYLLABLE PHIEUPH EO SIOS +0xC6E2 0xD390 #HANGUL SYLLABLE PHIEUPH EO SSANGSIOS +0xC6E3 0xD391 #HANGUL SYLLABLE PHIEUPH EO IEUNG +0xC6E4 0xD398 #HANGUL SYLLABLE PHIEUPH E +0xC6E5 0xD399 #HANGUL SYLLABLE PHIEUPH E KIYEOK +0xC6E6 0xD39C #HANGUL SYLLABLE PHIEUPH E NIEUN +0xC6E7 0xD3A0 #HANGUL SYLLABLE PHIEUPH E RIEUL +0xC6E8 0xD3A8 #HANGUL SYLLABLE PHIEUPH E MIEUM +0xC6E9 0xD3A9 #HANGUL SYLLABLE PHIEUPH E PIEUP +0xC6EA 0xD3AB #HANGUL SYLLABLE PHIEUPH E SIOS +0xC6EB 0xD3AD #HANGUL SYLLABLE PHIEUPH E IEUNG +0xC6EC 0xD3B4 #HANGUL SYLLABLE PHIEUPH YEO +0xC6ED 0xD3B8 #HANGUL SYLLABLE PHIEUPH YEO NIEUN +0xC6EE 0xD3BC #HANGUL SYLLABLE PHIEUPH YEO RIEUL +0xC6EF 0xD3C4 #HANGUL SYLLABLE PHIEUPH YEO MIEUM +0xC6F0 0xD3C5 #HANGUL SYLLABLE PHIEUPH YEO PIEUP +0xC6F1 0xD3C8 #HANGUL SYLLABLE PHIEUPH YEO SSANGSIOS +0xC6F2 0xD3C9 #HANGUL SYLLABLE PHIEUPH YEO IEUNG +0xC6F3 0xD3D0 #HANGUL SYLLABLE PHIEUPH YE +0xC6F4 0xD3D8 #HANGUL SYLLABLE PHIEUPH YE RIEUL +0xC6F5 0xD3E1 #HANGUL SYLLABLE PHIEUPH YE PIEUP +0xC6F6 0xD3E3 #HANGUL SYLLABLE PHIEUPH YE SIOS +0xC6F7 0xD3EC #HANGUL SYLLABLE PHIEUPH O +0xC6F8 0xD3ED #HANGUL SYLLABLE PHIEUPH O KIYEOK +0xC6F9 0xD3F0 #HANGUL SYLLABLE PHIEUPH O NIEUN +0xC6FA 0xD3F4 #HANGUL SYLLABLE PHIEUPH O RIEUL +0xC6FB 0xD3FC #HANGUL SYLLABLE PHIEUPH O MIEUM +0xC6FC 0xD3FD #HANGUL SYLLABLE PHIEUPH O PIEUP +0xC6FD 0xD3FF #HANGUL SYLLABLE PHIEUPH O SIOS +0xC6FE 0xD401 #HANGUL SYLLABLE PHIEUPH O IEUNG +0xC7A1 0xD408 #HANGUL SYLLABLE PHIEUPH WA +0xC7A2 0xD41D #HANGUL SYLLABLE PHIEUPH WA IEUNG +0xC7A3 0xD440 #HANGUL SYLLABLE PHIEUPH OE +0xC7A4 0xD444 #HANGUL SYLLABLE PHIEUPH OE NIEUN +0xC7A5 0xD45C #HANGUL SYLLABLE PHIEUPH YO +0xC7A6 0xD460 #HANGUL SYLLABLE PHIEUPH YO NIEUN +0xC7A7 0xD464 #HANGUL SYLLABLE PHIEUPH YO RIEUL +0xC7A8 0xD46D #HANGUL SYLLABLE PHIEUPH YO PIEUP +0xC7A9 0xD46F #HANGUL SYLLABLE PHIEUPH YO SIOS +0xC7AA 0xD478 #HANGUL SYLLABLE PHIEUPH U +0xC7AB 0xD479 #HANGUL SYLLABLE PHIEUPH U KIYEOK +0xC7AC 0xD47C #HANGUL SYLLABLE PHIEUPH U NIEUN +0xC7AD 0xD47F #HANGUL SYLLABLE PHIEUPH U TIKEUT +0xC7AE 0xD480 #HANGUL SYLLABLE PHIEUPH U RIEUL +0xC7AF 0xD482 #HANGUL SYLLABLE PHIEUPH U RIEULMIEUM +0xC7B0 0xD488 #HANGUL SYLLABLE PHIEUPH U MIEUM +0xC7B1 0xD489 #HANGUL SYLLABLE PHIEUPH U PIEUP +0xC7B2 0xD48B #HANGUL SYLLABLE PHIEUPH U SIOS +0xC7B3 0xD48D #HANGUL SYLLABLE PHIEUPH U IEUNG +0xC7B4 0xD494 #HANGUL SYLLABLE PHIEUPH WEO +0xC7B5 0xD4A9 #HANGUL SYLLABLE PHIEUPH WEO IEUNG +0xC7B6 0xD4CC #HANGUL SYLLABLE PHIEUPH WI +0xC7B7 0xD4D0 #HANGUL SYLLABLE PHIEUPH WI NIEUN +0xC7B8 0xD4D4 #HANGUL SYLLABLE PHIEUPH WI RIEUL +0xC7B9 0xD4DC #HANGUL SYLLABLE PHIEUPH WI MIEUM +0xC7BA 0xD4DF #HANGUL SYLLABLE PHIEUPH WI SIOS +0xC7BB 0xD4E8 #HANGUL SYLLABLE PHIEUPH YU +0xC7BC 0xD4EC #HANGUL SYLLABLE PHIEUPH YU NIEUN +0xC7BD 0xD4F0 #HANGUL SYLLABLE PHIEUPH YU RIEUL +0xC7BE 0xD4F8 #HANGUL SYLLABLE PHIEUPH YU MIEUM +0xC7BF 0xD4FB #HANGUL SYLLABLE PHIEUPH YU SIOS +0xC7C0 0xD4FD #HANGUL SYLLABLE PHIEUPH YU IEUNG +0xC7C1 0xD504 #HANGUL SYLLABLE PHIEUPH EU +0xC7C2 0xD508 #HANGUL SYLLABLE PHIEUPH EU NIEUN +0xC7C3 0xD50C #HANGUL SYLLABLE PHIEUPH EU RIEUL +0xC7C4 0xD514 #HANGUL SYLLABLE PHIEUPH EU MIEUM +0xC7C5 0xD515 #HANGUL SYLLABLE PHIEUPH EU PIEUP +0xC7C6 0xD517 #HANGUL SYLLABLE PHIEUPH EU SIOS +0xC7C7 0xD53C #HANGUL SYLLABLE PHIEUPH I +0xC7C8 0xD53D #HANGUL SYLLABLE PHIEUPH I KIYEOK +0xC7C9 0xD540 #HANGUL SYLLABLE PHIEUPH I NIEUN +0xC7CA 0xD544 #HANGUL SYLLABLE PHIEUPH I RIEUL +0xC7CB 0xD54C #HANGUL SYLLABLE PHIEUPH I MIEUM +0xC7CC 0xD54D #HANGUL SYLLABLE PHIEUPH I PIEUP +0xC7CD 0xD54F #HANGUL SYLLABLE PHIEUPH I SIOS +0xC7CE 0xD551 #HANGUL SYLLABLE PHIEUPH I IEUNG +0xC7CF 0xD558 #HANGUL SYLLABLE HIEUH A +0xC7D0 0xD559 #HANGUL SYLLABLE HIEUH A KIYEOK +0xC7D1 0xD55C #HANGUL SYLLABLE HIEUH A NIEUN +0xC7D2 0xD560 #HANGUL SYLLABLE HIEUH A RIEUL +0xC7D3 0xD565 #HANGUL SYLLABLE HIEUH A RIEULTHIEUTH +0xC7D4 0xD568 #HANGUL SYLLABLE HIEUH A MIEUM +0xC7D5 0xD569 #HANGUL SYLLABLE HIEUH A PIEUP +0xC7D6 0xD56B #HANGUL SYLLABLE HIEUH A SIOS +0xC7D7 0xD56D #HANGUL SYLLABLE HIEUH A IEUNG +0xC7D8 0xD574 #HANGUL SYLLABLE HIEUH AE +0xC7D9 0xD575 #HANGUL SYLLABLE HIEUH AE KIYEOK +0xC7DA 0xD578 #HANGUL SYLLABLE HIEUH AE NIEUN +0xC7DB 0xD57C #HANGUL SYLLABLE HIEUH AE RIEUL +0xC7DC 0xD584 #HANGUL SYLLABLE HIEUH AE MIEUM +0xC7DD 0xD585 #HANGUL SYLLABLE HIEUH AE PIEUP +0xC7DE 0xD587 #HANGUL SYLLABLE HIEUH AE SIOS +0xC7DF 0xD588 #HANGUL SYLLABLE HIEUH AE SSANGSIOS +0xC7E0 0xD589 #HANGUL SYLLABLE HIEUH AE IEUNG +0xC7E1 0xD590 #HANGUL SYLLABLE HIEUH YA +0xC7E2 0xD5A5 #HANGUL SYLLABLE HIEUH YA IEUNG +0xC7E3 0xD5C8 #HANGUL SYLLABLE HIEUH EO +0xC7E4 0xD5C9 #HANGUL SYLLABLE HIEUH EO KIYEOK +0xC7E5 0xD5CC #HANGUL SYLLABLE HIEUH EO NIEUN +0xC7E6 0xD5D0 #HANGUL SYLLABLE HIEUH EO RIEUL +0xC7E7 0xD5D2 #HANGUL SYLLABLE HIEUH EO RIEULMIEUM +0xC7E8 0xD5D8 #HANGUL SYLLABLE HIEUH EO MIEUM +0xC7E9 0xD5D9 #HANGUL SYLLABLE HIEUH EO PIEUP +0xC7EA 0xD5DB #HANGUL SYLLABLE HIEUH EO SIOS +0xC7EB 0xD5DD #HANGUL SYLLABLE HIEUH EO IEUNG +0xC7EC 0xD5E4 #HANGUL SYLLABLE HIEUH E +0xC7ED 0xD5E5 #HANGUL SYLLABLE HIEUH E KIYEOK +0xC7EE 0xD5E8 #HANGUL SYLLABLE HIEUH E NIEUN +0xC7EF 0xD5EC #HANGUL SYLLABLE HIEUH E RIEUL +0xC7F0 0xD5F4 #HANGUL SYLLABLE HIEUH E MIEUM +0xC7F1 0xD5F5 #HANGUL SYLLABLE HIEUH E PIEUP +0xC7F2 0xD5F7 #HANGUL SYLLABLE HIEUH E SIOS +0xC7F3 0xD5F9 #HANGUL SYLLABLE HIEUH E IEUNG +0xC7F4 0xD600 #HANGUL SYLLABLE HIEUH YEO +0xC7F5 0xD601 #HANGUL SYLLABLE HIEUH YEO KIYEOK +0xC7F6 0xD604 #HANGUL SYLLABLE HIEUH YEO NIEUN +0xC7F7 0xD608 #HANGUL SYLLABLE HIEUH YEO RIEUL +0xC7F8 0xD610 #HANGUL SYLLABLE HIEUH YEO MIEUM +0xC7F9 0xD611 #HANGUL SYLLABLE HIEUH YEO PIEUP +0xC7FA 0xD613 #HANGUL SYLLABLE HIEUH YEO SIOS +0xC7FB 0xD614 #HANGUL SYLLABLE HIEUH YEO SSANGSIOS +0xC7FC 0xD615 #HANGUL SYLLABLE HIEUH YEO IEUNG +0xC7FD 0xD61C #HANGUL SYLLABLE HIEUH YE +0xC7FE 0xD620 #HANGUL SYLLABLE HIEUH YE NIEUN +0xC8A1 0xD624 #HANGUL SYLLABLE HIEUH YE RIEUL +0xC8A2 0xD62D #HANGUL SYLLABLE HIEUH YE PIEUP +0xC8A3 0xD638 #HANGUL SYLLABLE HIEUH O +0xC8A4 0xD639 #HANGUL SYLLABLE HIEUH O KIYEOK +0xC8A5 0xD63C #HANGUL SYLLABLE HIEUH O NIEUN +0xC8A6 0xD640 #HANGUL SYLLABLE HIEUH O RIEUL +0xC8A7 0xD645 #HANGUL SYLLABLE HIEUH O RIEULTHIEUTH +0xC8A8 0xD648 #HANGUL SYLLABLE HIEUH O MIEUM +0xC8A9 0xD649 #HANGUL SYLLABLE HIEUH O PIEUP +0xC8AA 0xD64B #HANGUL SYLLABLE HIEUH O SIOS +0xC8AB 0xD64D #HANGUL SYLLABLE HIEUH O IEUNG +0xC8AC 0xD651 #HANGUL SYLLABLE HIEUH O THIEUTH +0xC8AD 0xD654 #HANGUL SYLLABLE HIEUH WA +0xC8AE 0xD655 #HANGUL SYLLABLE HIEUH WA KIYEOK +0xC8AF 0xD658 #HANGUL SYLLABLE HIEUH WA NIEUN +0xC8B0 0xD65C #HANGUL SYLLABLE HIEUH WA RIEUL +0xC8B1 0xD667 #HANGUL SYLLABLE HIEUH WA SIOS +0xC8B2 0xD669 #HANGUL SYLLABLE HIEUH WA IEUNG +0xC8B3 0xD670 #HANGUL SYLLABLE HIEUH WAE +0xC8B4 0xD671 #HANGUL SYLLABLE HIEUH WAE KIYEOK +0xC8B5 0xD674 #HANGUL SYLLABLE HIEUH WAE NIEUN +0xC8B6 0xD683 #HANGUL SYLLABLE HIEUH WAE SIOS +0xC8B7 0xD685 #HANGUL SYLLABLE HIEUH WAE IEUNG +0xC8B8 0xD68C #HANGUL SYLLABLE HIEUH OE +0xC8B9 0xD68D #HANGUL SYLLABLE HIEUH OE KIYEOK +0xC8BA 0xD690 #HANGUL SYLLABLE HIEUH OE NIEUN +0xC8BB 0xD694 #HANGUL SYLLABLE HIEUH OE RIEUL +0xC8BC 0xD69D #HANGUL SYLLABLE HIEUH OE PIEUP +0xC8BD 0xD69F #HANGUL SYLLABLE HIEUH OE SIOS +0xC8BE 0xD6A1 #HANGUL SYLLABLE HIEUH OE IEUNG +0xC8BF 0xD6A8 #HANGUL SYLLABLE HIEUH YO +0xC8C0 0xD6AC #HANGUL SYLLABLE HIEUH YO NIEUN +0xC8C1 0xD6B0 #HANGUL SYLLABLE HIEUH YO RIEUL +0xC8C2 0xD6B9 #HANGUL SYLLABLE HIEUH YO PIEUP +0xC8C3 0xD6BB #HANGUL SYLLABLE HIEUH YO SIOS +0xC8C4 0xD6C4 #HANGUL SYLLABLE HIEUH U +0xC8C5 0xD6C5 #HANGUL SYLLABLE HIEUH U KIYEOK +0xC8C6 0xD6C8 #HANGUL SYLLABLE HIEUH U NIEUN +0xC8C7 0xD6CC #HANGUL SYLLABLE HIEUH U RIEUL +0xC8C8 0xD6D1 #HANGUL SYLLABLE HIEUH U RIEULTHIEUTH +0xC8C9 0xD6D4 #HANGUL SYLLABLE HIEUH U MIEUM +0xC8CA 0xD6D7 #HANGUL SYLLABLE HIEUH U SIOS +0xC8CB 0xD6D9 #HANGUL SYLLABLE HIEUH U IEUNG +0xC8CC 0xD6E0 #HANGUL SYLLABLE HIEUH WEO +0xC8CD 0xD6E4 #HANGUL SYLLABLE HIEUH WEO NIEUN +0xC8CE 0xD6E8 #HANGUL SYLLABLE HIEUH WEO RIEUL +0xC8CF 0xD6F0 #HANGUL SYLLABLE HIEUH WEO MIEUM +0xC8D0 0xD6F5 #HANGUL SYLLABLE HIEUH WEO IEUNG +0xC8D1 0xD6FC #HANGUL SYLLABLE HIEUH WE +0xC8D2 0xD6FD #HANGUL SYLLABLE HIEUH WE KIYEOK +0xC8D3 0xD700 #HANGUL SYLLABLE HIEUH WE NIEUN +0xC8D4 0xD704 #HANGUL SYLLABLE HIEUH WE RIEUL +0xC8D5 0xD711 #HANGUL SYLLABLE HIEUH WE IEUNG +0xC8D6 0xD718 #HANGUL SYLLABLE HIEUH WI +0xC8D7 0xD719 #HANGUL SYLLABLE HIEUH WI KIYEOK +0xC8D8 0xD71C #HANGUL SYLLABLE HIEUH WI NIEUN +0xC8D9 0xD720 #HANGUL SYLLABLE HIEUH WI RIEUL +0xC8DA 0xD728 #HANGUL SYLLABLE HIEUH WI MIEUM +0xC8DB 0xD729 #HANGUL SYLLABLE HIEUH WI PIEUP +0xC8DC 0xD72B #HANGUL SYLLABLE HIEUH WI SIOS +0xC8DD 0xD72D #HANGUL SYLLABLE HIEUH WI IEUNG +0xC8DE 0xD734 #HANGUL SYLLABLE HIEUH YU +0xC8DF 0xD735 #HANGUL SYLLABLE HIEUH YU KIYEOK +0xC8E0 0xD738 #HANGUL SYLLABLE HIEUH YU NIEUN +0xC8E1 0xD73C #HANGUL SYLLABLE HIEUH YU RIEUL +0xC8E2 0xD744 #HANGUL SYLLABLE HIEUH YU MIEUM +0xC8E3 0xD747 #HANGUL SYLLABLE HIEUH YU SIOS +0xC8E4 0xD749 #HANGUL SYLLABLE HIEUH YU IEUNG +0xC8E5 0xD750 #HANGUL SYLLABLE HIEUH EU +0xC8E6 0xD751 #HANGUL SYLLABLE HIEUH EU KIYEOK +0xC8E7 0xD754 #HANGUL SYLLABLE HIEUH EU NIEUN +0xC8E8 0xD756 #HANGUL SYLLABLE HIEUH EU NIEUNHIEUH +0xC8E9 0xD757 #HANGUL SYLLABLE HIEUH EU TIKEUT +0xC8EA 0xD758 #HANGUL SYLLABLE HIEUH EU RIEUL +0xC8EB 0xD759 #HANGUL SYLLABLE HIEUH EU RIEULKIYEOK +0xC8EC 0xD760 #HANGUL SYLLABLE HIEUH EU MIEUM +0xC8ED 0xD761 #HANGUL SYLLABLE HIEUH EU PIEUP +0xC8EE 0xD763 #HANGUL SYLLABLE HIEUH EU SIOS +0xC8EF 0xD765 #HANGUL SYLLABLE HIEUH EU IEUNG +0xC8F0 0xD769 #HANGUL SYLLABLE HIEUH EU THIEUTH +0xC8F1 0xD76C #HANGUL SYLLABLE HIEUH YI +0xC8F2 0xD770 #HANGUL SYLLABLE HIEUH YI NIEUN +0xC8F3 0xD774 #HANGUL SYLLABLE HIEUH YI RIEUL +0xC8F4 0xD77C #HANGUL SYLLABLE HIEUH YI MIEUM +0xC8F5 0xD77D #HANGUL SYLLABLE HIEUH YI PIEUP +0xC8F6 0xD781 #HANGUL SYLLABLE HIEUH YI IEUNG +0xC8F7 0xD788 #HANGUL SYLLABLE HIEUH I +0xC8F8 0xD789 #HANGUL SYLLABLE HIEUH I KIYEOK +0xC8F9 0xD78C #HANGUL SYLLABLE HIEUH I NIEUN +0xC8FA 0xD790 #HANGUL SYLLABLE HIEUH I RIEUL +0xC8FB 0xD798 #HANGUL SYLLABLE HIEUH I MIEUM +0xC8FC 0xD799 #HANGUL SYLLABLE HIEUH I PIEUP +0xC8FD 0xD79B #HANGUL SYLLABLE HIEUH I SIOS +0xC8FE 0xD79D #HANGUL SYLLABLE HIEUH I IEUNG +0xCAA1 0x4F3D #CJK UNIFIED IDEOGRAPH +0xCAA2 0x4F73 #CJK UNIFIED IDEOGRAPH +0xCAA3 0x5047 #CJK UNIFIED IDEOGRAPH +0xCAA4 0x50F9 #CJK UNIFIED IDEOGRAPH +0xCAA5 0x52A0 #CJK UNIFIED IDEOGRAPH +0xCAA6 0x53EF #CJK UNIFIED IDEOGRAPH +0xCAA7 0x5475 #CJK UNIFIED IDEOGRAPH +0xCAA8 0x54E5 #CJK UNIFIED IDEOGRAPH +0xCAA9 0x5609 #CJK UNIFIED IDEOGRAPH +0xCAAA 0x5AC1 #CJK UNIFIED IDEOGRAPH +0xCAAB 0x5BB6 #CJK UNIFIED IDEOGRAPH +0xCAAC 0x6687 #CJK UNIFIED IDEOGRAPH +0xCAAD 0x67B6 #CJK UNIFIED IDEOGRAPH +0xCAAE 0x67B7 #CJK UNIFIED IDEOGRAPH +0xCAAF 0x67EF #CJK UNIFIED IDEOGRAPH +0xCAB0 0x6B4C #CJK UNIFIED IDEOGRAPH +0xCAB1 0x73C2 #CJK UNIFIED IDEOGRAPH +0xCAB2 0x75C2 #CJK UNIFIED IDEOGRAPH +0xCAB3 0x7A3C #CJK UNIFIED IDEOGRAPH +0xCAB4 0x82DB #CJK UNIFIED IDEOGRAPH +0xCAB5 0x8304 #CJK UNIFIED IDEOGRAPH +0xCAB6 0x8857 #CJK UNIFIED IDEOGRAPH +0xCAB7 0x8888 #CJK UNIFIED IDEOGRAPH +0xCAB8 0x8A36 #CJK UNIFIED IDEOGRAPH +0xCAB9 0x8CC8 #CJK UNIFIED IDEOGRAPH +0xCABA 0x8DCF #CJK UNIFIED IDEOGRAPH +0xCABB 0x8EFB #CJK UNIFIED IDEOGRAPH +0xCABC 0x8FE6 #CJK UNIFIED IDEOGRAPH +0xCABD 0x99D5 #CJK UNIFIED IDEOGRAPH +0xCABE 0x523B #CJK UNIFIED IDEOGRAPH +0xCABF 0x5374 #CJK UNIFIED IDEOGRAPH +0xCAC0 0x5404 #CJK UNIFIED IDEOGRAPH +0xCAC1 0x606A #CJK UNIFIED IDEOGRAPH +0xCAC2 0x6164 #CJK UNIFIED IDEOGRAPH +0xCAC3 0x6BBC #CJK UNIFIED IDEOGRAPH +0xCAC4 0x73CF #CJK UNIFIED IDEOGRAPH +0xCAC5 0x811A #CJK UNIFIED IDEOGRAPH +0xCAC6 0x89BA #CJK UNIFIED IDEOGRAPH +0xCAC7 0x89D2 #CJK UNIFIED IDEOGRAPH +0xCAC8 0x95A3 #CJK UNIFIED IDEOGRAPH +0xCAC9 0x4F83 #CJK UNIFIED IDEOGRAPH +0xCACA 0x520A #CJK UNIFIED IDEOGRAPH +0xCACB 0x58BE #CJK UNIFIED IDEOGRAPH +0xCACC 0x5978 #CJK UNIFIED IDEOGRAPH +0xCACD 0x59E6 #CJK UNIFIED IDEOGRAPH +0xCACE 0x5E72 #CJK UNIFIED IDEOGRAPH +0xCACF 0x5E79 #CJK UNIFIED IDEOGRAPH +0xCAD0 0x61C7 #CJK UNIFIED IDEOGRAPH +0xCAD1 0x63C0 #CJK UNIFIED IDEOGRAPH +0xCAD2 0x6746 #CJK UNIFIED IDEOGRAPH +0xCAD3 0x67EC #CJK UNIFIED IDEOGRAPH +0xCAD4 0x687F #CJK UNIFIED IDEOGRAPH +0xCAD5 0x6F97 #CJK UNIFIED IDEOGRAPH +0xCAD6 0x764E #CJK UNIFIED IDEOGRAPH +0xCAD7 0x770B #CJK UNIFIED IDEOGRAPH +0xCAD8 0x78F5 #CJK UNIFIED IDEOGRAPH +0xCAD9 0x7A08 #CJK UNIFIED IDEOGRAPH +0xCADA 0x7AFF #CJK UNIFIED IDEOGRAPH +0xCADB 0x7C21 #CJK UNIFIED IDEOGRAPH +0xCADC 0x809D #CJK UNIFIED IDEOGRAPH +0xCADD 0x826E #CJK UNIFIED IDEOGRAPH +0xCADE 0x8271 #CJK UNIFIED IDEOGRAPH +0xCADF 0x8AEB #CJK UNIFIED IDEOGRAPH +0xCAE0 0x9593 #CJK UNIFIED IDEOGRAPH +0xCAE1 0x4E6B #CJK UNIFIED IDEOGRAPH +0xCAE2 0x559D #CJK UNIFIED IDEOGRAPH +0xCAE3 0x66F7 #CJK UNIFIED IDEOGRAPH +0xCAE4 0x6E34 #CJK UNIFIED IDEOGRAPH +0xCAE5 0x78A3 #CJK UNIFIED IDEOGRAPH +0xCAE6 0x7AED #CJK UNIFIED IDEOGRAPH +0xCAE7 0x845B #CJK UNIFIED IDEOGRAPH +0xCAE8 0x8910 #CJK UNIFIED IDEOGRAPH +0xCAE9 0x874E #CJK UNIFIED IDEOGRAPH +0xCAEA 0x97A8 #CJK UNIFIED IDEOGRAPH +0xCAEB 0x52D8 #CJK UNIFIED IDEOGRAPH +0xCAEC 0x574E #CJK UNIFIED IDEOGRAPH +0xCAED 0x582A #CJK UNIFIED IDEOGRAPH +0xCAEE 0x5D4C #CJK UNIFIED IDEOGRAPH +0xCAEF 0x611F #CJK UNIFIED IDEOGRAPH +0xCAF0 0x61BE #CJK UNIFIED IDEOGRAPH +0xCAF1 0x6221 #CJK UNIFIED IDEOGRAPH +0xCAF2 0x6562 #CJK UNIFIED IDEOGRAPH +0xCAF3 0x67D1 #CJK UNIFIED IDEOGRAPH +0xCAF4 0x6A44 #CJK UNIFIED IDEOGRAPH +0xCAF5 0x6E1B #CJK UNIFIED IDEOGRAPH +0xCAF6 0x7518 #CJK UNIFIED IDEOGRAPH +0xCAF7 0x75B3 #CJK UNIFIED IDEOGRAPH +0xCAF8 0x76E3 #CJK UNIFIED IDEOGRAPH +0xCAF9 0x77B0 #CJK UNIFIED IDEOGRAPH +0xCAFA 0x7D3A #CJK UNIFIED IDEOGRAPH +0xCAFB 0x90AF #CJK UNIFIED IDEOGRAPH +0xCAFC 0x9451 #CJK UNIFIED IDEOGRAPH +0xCAFD 0x9452 #CJK UNIFIED IDEOGRAPH +0xCAFE 0x9F95 #CJK UNIFIED IDEOGRAPH +0xCBA1 0x5323 #CJK UNIFIED IDEOGRAPH +0xCBA2 0x5CAC #CJK UNIFIED IDEOGRAPH +0xCBA3 0x7532 #CJK UNIFIED IDEOGRAPH +0xCBA4 0x80DB #CJK UNIFIED IDEOGRAPH +0xCBA5 0x9240 #CJK UNIFIED IDEOGRAPH +0xCBA6 0x9598 #CJK UNIFIED IDEOGRAPH +0xCBA7 0x525B #CJK UNIFIED IDEOGRAPH +0xCBA8 0x5808 #CJK UNIFIED IDEOGRAPH +0xCBA9 0x59DC #CJK UNIFIED IDEOGRAPH +0xCBAA 0x5CA1 #CJK UNIFIED IDEOGRAPH +0xCBAB 0x5D17 #CJK UNIFIED IDEOGRAPH +0xCBAC 0x5EB7 #CJK UNIFIED IDEOGRAPH +0xCBAD 0x5F3A #CJK UNIFIED IDEOGRAPH +0xCBAE 0x5F4A #CJK UNIFIED IDEOGRAPH +0xCBAF 0x6177 #CJK UNIFIED IDEOGRAPH +0xCBB0 0x6C5F #CJK UNIFIED IDEOGRAPH +0xCBB1 0x757A #CJK UNIFIED IDEOGRAPH +0xCBB2 0x7586 #CJK UNIFIED IDEOGRAPH +0xCBB3 0x7CE0 #CJK UNIFIED IDEOGRAPH +0xCBB4 0x7D73 #CJK UNIFIED IDEOGRAPH +0xCBB5 0x7DB1 #CJK UNIFIED IDEOGRAPH +0xCBB6 0x7F8C #CJK UNIFIED IDEOGRAPH +0xCBB7 0x8154 #CJK UNIFIED IDEOGRAPH +0xCBB8 0x8221 #CJK UNIFIED IDEOGRAPH +0xCBB9 0x8591 #CJK UNIFIED IDEOGRAPH +0xCBBA 0x8941 #CJK UNIFIED IDEOGRAPH +0xCBBB 0x8B1B #CJK UNIFIED IDEOGRAPH +0xCBBC 0x92FC #CJK UNIFIED IDEOGRAPH +0xCBBD 0x964D #CJK UNIFIED IDEOGRAPH +0xCBBE 0x9C47 #CJK UNIFIED IDEOGRAPH +0xCBBF 0x4ECB #CJK UNIFIED IDEOGRAPH +0xCBC0 0x4EF7 #CJK UNIFIED IDEOGRAPH +0xCBC1 0x500B #CJK UNIFIED IDEOGRAPH +0xCBC2 0x51F1 #CJK UNIFIED IDEOGRAPH +0xCBC3 0x584F #CJK UNIFIED IDEOGRAPH +0xCBC4 0x6137 #CJK UNIFIED IDEOGRAPH +0xCBC5 0x613E #CJK UNIFIED IDEOGRAPH +0xCBC6 0x6168 #CJK UNIFIED IDEOGRAPH +0xCBC7 0x6539 #CJK UNIFIED IDEOGRAPH +0xCBC8 0x69EA #CJK UNIFIED IDEOGRAPH +0xCBC9 0x6F11 #CJK UNIFIED IDEOGRAPH +0xCBCA 0x75A5 #CJK UNIFIED IDEOGRAPH +0xCBCB 0x7686 #CJK UNIFIED IDEOGRAPH +0xCBCC 0x76D6 #CJK UNIFIED IDEOGRAPH +0xCBCD 0x7B87 #CJK UNIFIED IDEOGRAPH +0xCBCE 0x82A5 #CJK UNIFIED IDEOGRAPH +0xCBCF 0x84CB #CJK UNIFIED IDEOGRAPH +0xCBD0 0xF900 #CJK COMPATIBILITY IDEOGRAPH +0xCBD1 0x93A7 #CJK UNIFIED IDEOGRAPH +0xCBD2 0x958B #CJK UNIFIED IDEOGRAPH +0xCBD3 0x5580 #CJK UNIFIED IDEOGRAPH +0xCBD4 0x5BA2 #CJK UNIFIED IDEOGRAPH +0xCBD5 0x5751 #CJK UNIFIED IDEOGRAPH +0xCBD6 0xF901 #CJK COMPATIBILITY IDEOGRAPH +0xCBD7 0x7CB3 #CJK UNIFIED IDEOGRAPH +0xCBD8 0x7FB9 #CJK UNIFIED IDEOGRAPH +0xCBD9 0x91B5 #CJK UNIFIED IDEOGRAPH +0xCBDA 0x5028 #CJK UNIFIED IDEOGRAPH +0xCBDB 0x53BB #CJK UNIFIED IDEOGRAPH +0xCBDC 0x5C45 #CJK UNIFIED IDEOGRAPH +0xCBDD 0x5DE8 #CJK UNIFIED IDEOGRAPH +0xCBDE 0x62D2 #CJK UNIFIED IDEOGRAPH +0xCBDF 0x636E #CJK UNIFIED IDEOGRAPH +0xCBE0 0x64DA #CJK UNIFIED IDEOGRAPH +0xCBE1 0x64E7 #CJK UNIFIED IDEOGRAPH +0xCBE2 0x6E20 #CJK UNIFIED IDEOGRAPH +0xCBE3 0x70AC #CJK UNIFIED IDEOGRAPH +0xCBE4 0x795B #CJK UNIFIED IDEOGRAPH +0xCBE5 0x8DDD #CJK UNIFIED IDEOGRAPH +0xCBE6 0x8E1E #CJK UNIFIED IDEOGRAPH +0xCBE7 0xF902 #CJK COMPATIBILITY IDEOGRAPH +0xCBE8 0x907D #CJK UNIFIED IDEOGRAPH +0xCBE9 0x9245 #CJK UNIFIED IDEOGRAPH +0xCBEA 0x92F8 #CJK UNIFIED IDEOGRAPH +0xCBEB 0x4E7E #CJK UNIFIED IDEOGRAPH +0xCBEC 0x4EF6 #CJK UNIFIED IDEOGRAPH +0xCBED 0x5065 #CJK UNIFIED IDEOGRAPH +0xCBEE 0x5DFE #CJK UNIFIED IDEOGRAPH +0xCBEF 0x5EFA #CJK UNIFIED IDEOGRAPH +0xCBF0 0x6106 #CJK UNIFIED IDEOGRAPH +0xCBF1 0x6957 #CJK UNIFIED IDEOGRAPH +0xCBF2 0x8171 #CJK UNIFIED IDEOGRAPH +0xCBF3 0x8654 #CJK UNIFIED IDEOGRAPH +0xCBF4 0x8E47 #CJK UNIFIED IDEOGRAPH +0xCBF5 0x9375 #CJK UNIFIED IDEOGRAPH +0xCBF6 0x9A2B #CJK UNIFIED IDEOGRAPH +0xCBF7 0x4E5E #CJK UNIFIED IDEOGRAPH +0xCBF8 0x5091 #CJK UNIFIED IDEOGRAPH +0xCBF9 0x6770 #CJK UNIFIED IDEOGRAPH +0xCBFA 0x6840 #CJK UNIFIED IDEOGRAPH +0xCBFB 0x5109 #CJK UNIFIED IDEOGRAPH +0xCBFC 0x528D #CJK UNIFIED IDEOGRAPH +0xCBFD 0x5292 #CJK UNIFIED IDEOGRAPH +0xCBFE 0x6AA2 #CJK UNIFIED IDEOGRAPH +0xCCA1 0x77BC #CJK UNIFIED IDEOGRAPH +0xCCA2 0x9210 #CJK UNIFIED IDEOGRAPH +0xCCA3 0x9ED4 #CJK UNIFIED IDEOGRAPH +0xCCA4 0x52AB #CJK UNIFIED IDEOGRAPH +0xCCA5 0x602F #CJK UNIFIED IDEOGRAPH +0xCCA6 0x8FF2 #CJK UNIFIED IDEOGRAPH +0xCCA7 0x5048 #CJK UNIFIED IDEOGRAPH +0xCCA8 0x61A9 #CJK UNIFIED IDEOGRAPH +0xCCA9 0x63ED #CJK UNIFIED IDEOGRAPH +0xCCAA 0x64CA #CJK UNIFIED IDEOGRAPH +0xCCAB 0x683C #CJK UNIFIED IDEOGRAPH +0xCCAC 0x6A84 #CJK UNIFIED IDEOGRAPH +0xCCAD 0x6FC0 #CJK UNIFIED IDEOGRAPH +0xCCAE 0x8188 #CJK UNIFIED IDEOGRAPH +0xCCAF 0x89A1 #CJK UNIFIED IDEOGRAPH +0xCCB0 0x9694 #CJK UNIFIED IDEOGRAPH +0xCCB1 0x5805 #CJK UNIFIED IDEOGRAPH +0xCCB2 0x727D #CJK UNIFIED IDEOGRAPH +0xCCB3 0x72AC #CJK UNIFIED IDEOGRAPH +0xCCB4 0x7504 #CJK UNIFIED IDEOGRAPH +0xCCB5 0x7D79 #CJK UNIFIED IDEOGRAPH +0xCCB6 0x7E6D #CJK UNIFIED IDEOGRAPH +0xCCB7 0x80A9 #CJK UNIFIED IDEOGRAPH +0xCCB8 0x898B #CJK UNIFIED IDEOGRAPH +0xCCB9 0x8B74 #CJK UNIFIED IDEOGRAPH +0xCCBA 0x9063 #CJK UNIFIED IDEOGRAPH +0xCCBB 0x9D51 #CJK UNIFIED IDEOGRAPH +0xCCBC 0x6289 #CJK UNIFIED IDEOGRAPH +0xCCBD 0x6C7A #CJK UNIFIED IDEOGRAPH +0xCCBE 0x6F54 #CJK UNIFIED IDEOGRAPH +0xCCBF 0x7D50 #CJK UNIFIED IDEOGRAPH +0xCCC0 0x7F3A #CJK UNIFIED IDEOGRAPH +0xCCC1 0x8A23 #CJK UNIFIED IDEOGRAPH +0xCCC2 0x517C #CJK UNIFIED IDEOGRAPH +0xCCC3 0x614A #CJK UNIFIED IDEOGRAPH +0xCCC4 0x7B9D #CJK UNIFIED IDEOGRAPH +0xCCC5 0x8B19 #CJK UNIFIED IDEOGRAPH +0xCCC6 0x9257 #CJK UNIFIED IDEOGRAPH +0xCCC7 0x938C #CJK UNIFIED IDEOGRAPH +0xCCC8 0x4EAC #CJK UNIFIED IDEOGRAPH +0xCCC9 0x4FD3 #CJK UNIFIED IDEOGRAPH +0xCCCA 0x501E #CJK UNIFIED IDEOGRAPH +0xCCCB 0x50BE #CJK UNIFIED IDEOGRAPH +0xCCCC 0x5106 #CJK UNIFIED IDEOGRAPH +0xCCCD 0x52C1 #CJK UNIFIED IDEOGRAPH +0xCCCE 0x52CD #CJK UNIFIED IDEOGRAPH +0xCCCF 0x537F #CJK UNIFIED IDEOGRAPH +0xCCD0 0x5770 #CJK UNIFIED IDEOGRAPH +0xCCD1 0x5883 #CJK UNIFIED IDEOGRAPH +0xCCD2 0x5E9A #CJK UNIFIED IDEOGRAPH +0xCCD3 0x5F91 #CJK UNIFIED IDEOGRAPH +0xCCD4 0x6176 #CJK UNIFIED IDEOGRAPH +0xCCD5 0x61AC #CJK UNIFIED IDEOGRAPH +0xCCD6 0x64CE #CJK UNIFIED IDEOGRAPH +0xCCD7 0x656C #CJK UNIFIED IDEOGRAPH +0xCCD8 0x666F #CJK UNIFIED IDEOGRAPH +0xCCD9 0x66BB #CJK UNIFIED IDEOGRAPH +0xCCDA 0x66F4 #CJK UNIFIED IDEOGRAPH +0xCCDB 0x6897 #CJK UNIFIED IDEOGRAPH +0xCCDC 0x6D87 #CJK UNIFIED IDEOGRAPH +0xCCDD 0x7085 #CJK UNIFIED IDEOGRAPH +0xCCDE 0x70F1 #CJK UNIFIED IDEOGRAPH +0xCCDF 0x749F #CJK UNIFIED IDEOGRAPH +0xCCE0 0x74A5 #CJK UNIFIED IDEOGRAPH +0xCCE1 0x74CA #CJK UNIFIED IDEOGRAPH +0xCCE2 0x75D9 #CJK UNIFIED IDEOGRAPH +0xCCE3 0x786C #CJK UNIFIED IDEOGRAPH +0xCCE4 0x78EC #CJK UNIFIED IDEOGRAPH +0xCCE5 0x7ADF #CJK UNIFIED IDEOGRAPH +0xCCE6 0x7AF6 #CJK UNIFIED IDEOGRAPH +0xCCE7 0x7D45 #CJK UNIFIED IDEOGRAPH +0xCCE8 0x7D93 #CJK UNIFIED IDEOGRAPH +0xCCE9 0x8015 #CJK UNIFIED IDEOGRAPH +0xCCEA 0x803F #CJK UNIFIED IDEOGRAPH +0xCCEB 0x811B #CJK UNIFIED IDEOGRAPH +0xCCEC 0x8396 #CJK UNIFIED IDEOGRAPH +0xCCED 0x8B66 #CJK UNIFIED IDEOGRAPH +0xCCEE 0x8F15 #CJK UNIFIED IDEOGRAPH +0xCCEF 0x9015 #CJK UNIFIED IDEOGRAPH +0xCCF0 0x93E1 #CJK UNIFIED IDEOGRAPH +0xCCF1 0x9803 #CJK UNIFIED IDEOGRAPH +0xCCF2 0x9838 #CJK UNIFIED IDEOGRAPH +0xCCF3 0x9A5A #CJK UNIFIED IDEOGRAPH +0xCCF4 0x9BE8 #CJK UNIFIED IDEOGRAPH +0xCCF5 0x4FC2 #CJK UNIFIED IDEOGRAPH +0xCCF6 0x5553 #CJK UNIFIED IDEOGRAPH +0xCCF7 0x583A #CJK UNIFIED IDEOGRAPH +0xCCF8 0x5951 #CJK UNIFIED IDEOGRAPH +0xCCF9 0x5B63 #CJK UNIFIED IDEOGRAPH +0xCCFA 0x5C46 #CJK UNIFIED IDEOGRAPH +0xCCFB 0x60B8 #CJK UNIFIED IDEOGRAPH +0xCCFC 0x6212 #CJK UNIFIED IDEOGRAPH +0xCCFD 0x6842 #CJK UNIFIED IDEOGRAPH +0xCCFE 0x68B0 #CJK UNIFIED IDEOGRAPH +0xCDA1 0x68E8 #CJK UNIFIED IDEOGRAPH +0xCDA2 0x6EAA #CJK UNIFIED IDEOGRAPH +0xCDA3 0x754C #CJK UNIFIED IDEOGRAPH +0xCDA4 0x7678 #CJK UNIFIED IDEOGRAPH +0xCDA5 0x78CE #CJK UNIFIED IDEOGRAPH +0xCDA6 0x7A3D #CJK UNIFIED IDEOGRAPH +0xCDA7 0x7CFB #CJK UNIFIED IDEOGRAPH +0xCDA8 0x7E6B #CJK UNIFIED IDEOGRAPH +0xCDA9 0x7E7C #CJK UNIFIED IDEOGRAPH +0xCDAA 0x8A08 #CJK UNIFIED IDEOGRAPH +0xCDAB 0x8AA1 #CJK UNIFIED IDEOGRAPH +0xCDAC 0x8C3F #CJK UNIFIED IDEOGRAPH +0xCDAD 0x968E #CJK UNIFIED IDEOGRAPH +0xCDAE 0x9DC4 #CJK UNIFIED IDEOGRAPH +0xCDAF 0x53E4 #CJK UNIFIED IDEOGRAPH +0xCDB0 0x53E9 #CJK UNIFIED IDEOGRAPH +0xCDB1 0x544A #CJK UNIFIED IDEOGRAPH +0xCDB2 0x5471 #CJK UNIFIED IDEOGRAPH +0xCDB3 0x56FA #CJK UNIFIED IDEOGRAPH +0xCDB4 0x59D1 #CJK UNIFIED IDEOGRAPH +0xCDB5 0x5B64 #CJK UNIFIED IDEOGRAPH +0xCDB6 0x5C3B #CJK UNIFIED IDEOGRAPH +0xCDB7 0x5EAB #CJK UNIFIED IDEOGRAPH +0xCDB8 0x62F7 #CJK UNIFIED IDEOGRAPH +0xCDB9 0x6537 #CJK UNIFIED IDEOGRAPH +0xCDBA 0x6545 #CJK UNIFIED IDEOGRAPH +0xCDBB 0x6572 #CJK UNIFIED IDEOGRAPH +0xCDBC 0x66A0 #CJK UNIFIED IDEOGRAPH +0xCDBD 0x67AF #CJK UNIFIED IDEOGRAPH +0xCDBE 0x69C1 #CJK UNIFIED IDEOGRAPH +0xCDBF 0x6CBD #CJK UNIFIED IDEOGRAPH +0xCDC0 0x75FC #CJK UNIFIED IDEOGRAPH +0xCDC1 0x7690 #CJK UNIFIED IDEOGRAPH +0xCDC2 0x777E #CJK UNIFIED IDEOGRAPH +0xCDC3 0x7A3F #CJK UNIFIED IDEOGRAPH +0xCDC4 0x7F94 #CJK UNIFIED IDEOGRAPH +0xCDC5 0x8003 #CJK UNIFIED IDEOGRAPH +0xCDC6 0x80A1 #CJK UNIFIED IDEOGRAPH +0xCDC7 0x818F #CJK UNIFIED IDEOGRAPH +0xCDC8 0x82E6 #CJK UNIFIED IDEOGRAPH +0xCDC9 0x82FD #CJK UNIFIED IDEOGRAPH +0xCDCA 0x83F0 #CJK UNIFIED IDEOGRAPH +0xCDCB 0x85C1 #CJK UNIFIED IDEOGRAPH +0xCDCC 0x8831 #CJK UNIFIED IDEOGRAPH +0xCDCD 0x88B4 #CJK UNIFIED IDEOGRAPH +0xCDCE 0x8AA5 #CJK UNIFIED IDEOGRAPH +0xCDCF 0xF903 #CJK COMPATIBILITY IDEOGRAPH +0xCDD0 0x8F9C #CJK UNIFIED IDEOGRAPH +0xCDD1 0x932E #CJK UNIFIED IDEOGRAPH +0xCDD2 0x96C7 #CJK UNIFIED IDEOGRAPH +0xCDD3 0x9867 #CJK UNIFIED IDEOGRAPH +0xCDD4 0x9AD8 #CJK UNIFIED IDEOGRAPH +0xCDD5 0x9F13 #CJK UNIFIED IDEOGRAPH +0xCDD6 0x54ED #CJK UNIFIED IDEOGRAPH +0xCDD7 0x659B #CJK UNIFIED IDEOGRAPH +0xCDD8 0x66F2 #CJK UNIFIED IDEOGRAPH +0xCDD9 0x688F #CJK UNIFIED IDEOGRAPH +0xCDDA 0x7A40 #CJK UNIFIED IDEOGRAPH +0xCDDB 0x8C37 #CJK UNIFIED IDEOGRAPH +0xCDDC 0x9D60 #CJK UNIFIED IDEOGRAPH +0xCDDD 0x56F0 #CJK UNIFIED IDEOGRAPH +0xCDDE 0x5764 #CJK UNIFIED IDEOGRAPH +0xCDDF 0x5D11 #CJK UNIFIED IDEOGRAPH +0xCDE0 0x6606 #CJK UNIFIED IDEOGRAPH +0xCDE1 0x68B1 #CJK UNIFIED IDEOGRAPH +0xCDE2 0x68CD #CJK UNIFIED IDEOGRAPH +0xCDE3 0x6EFE #CJK UNIFIED IDEOGRAPH +0xCDE4 0x7428 #CJK UNIFIED IDEOGRAPH +0xCDE5 0x889E #CJK UNIFIED IDEOGRAPH +0xCDE6 0x9BE4 #CJK UNIFIED IDEOGRAPH +0xCDE7 0x6C68 #CJK UNIFIED IDEOGRAPH +0xCDE8 0xF904 #CJK COMPATIBILITY IDEOGRAPH +0xCDE9 0x9AA8 #CJK UNIFIED IDEOGRAPH +0xCDEA 0x4F9B #CJK UNIFIED IDEOGRAPH +0xCDEB 0x516C #CJK UNIFIED IDEOGRAPH +0xCDEC 0x5171 #CJK UNIFIED IDEOGRAPH +0xCDED 0x529F #CJK UNIFIED IDEOGRAPH +0xCDEE 0x5B54 #CJK UNIFIED IDEOGRAPH +0xCDEF 0x5DE5 #CJK UNIFIED IDEOGRAPH +0xCDF0 0x6050 #CJK UNIFIED IDEOGRAPH +0xCDF1 0x606D #CJK UNIFIED IDEOGRAPH +0xCDF2 0x62F1 #CJK UNIFIED IDEOGRAPH +0xCDF3 0x63A7 #CJK UNIFIED IDEOGRAPH +0xCDF4 0x653B #CJK UNIFIED IDEOGRAPH +0xCDF5 0x73D9 #CJK UNIFIED IDEOGRAPH +0xCDF6 0x7A7A #CJK UNIFIED IDEOGRAPH +0xCDF7 0x86A3 #CJK UNIFIED IDEOGRAPH +0xCDF8 0x8CA2 #CJK UNIFIED IDEOGRAPH +0xCDF9 0x978F #CJK UNIFIED IDEOGRAPH +0xCDFA 0x4E32 #CJK UNIFIED IDEOGRAPH +0xCDFB 0x5BE1 #CJK UNIFIED IDEOGRAPH +0xCDFC 0x6208 #CJK UNIFIED IDEOGRAPH +0xCDFD 0x679C #CJK UNIFIED IDEOGRAPH +0xCDFE 0x74DC #CJK UNIFIED IDEOGRAPH +0xCEA1 0x79D1 #CJK UNIFIED IDEOGRAPH +0xCEA2 0x83D3 #CJK UNIFIED IDEOGRAPH +0xCEA3 0x8A87 #CJK UNIFIED IDEOGRAPH +0xCEA4 0x8AB2 #CJK UNIFIED IDEOGRAPH +0xCEA5 0x8DE8 #CJK UNIFIED IDEOGRAPH +0xCEA6 0x904E #CJK UNIFIED IDEOGRAPH +0xCEA7 0x934B #CJK UNIFIED IDEOGRAPH +0xCEA8 0x9846 #CJK UNIFIED IDEOGRAPH +0xCEA9 0x5ED3 #CJK UNIFIED IDEOGRAPH +0xCEAA 0x69E8 #CJK UNIFIED IDEOGRAPH +0xCEAB 0x85FF #CJK UNIFIED IDEOGRAPH +0xCEAC 0x90ED #CJK UNIFIED IDEOGRAPH +0xCEAD 0xF905 #CJK COMPATIBILITY IDEOGRAPH +0xCEAE 0x51A0 #CJK UNIFIED IDEOGRAPH +0xCEAF 0x5B98 #CJK UNIFIED IDEOGRAPH +0xCEB0 0x5BEC #CJK UNIFIED IDEOGRAPH +0xCEB1 0x6163 #CJK UNIFIED IDEOGRAPH +0xCEB2 0x68FA #CJK UNIFIED IDEOGRAPH +0xCEB3 0x6B3E #CJK UNIFIED IDEOGRAPH +0xCEB4 0x704C #CJK UNIFIED IDEOGRAPH +0xCEB5 0x742F #CJK UNIFIED IDEOGRAPH +0xCEB6 0x74D8 #CJK UNIFIED IDEOGRAPH +0xCEB7 0x7BA1 #CJK UNIFIED IDEOGRAPH +0xCEB8 0x7F50 #CJK UNIFIED IDEOGRAPH +0xCEB9 0x83C5 #CJK UNIFIED IDEOGRAPH +0xCEBA 0x89C0 #CJK UNIFIED IDEOGRAPH +0xCEBB 0x8CAB #CJK UNIFIED IDEOGRAPH +0xCEBC 0x95DC #CJK UNIFIED IDEOGRAPH +0xCEBD 0x9928 #CJK UNIFIED IDEOGRAPH +0xCEBE 0x522E #CJK UNIFIED IDEOGRAPH +0xCEBF 0x605D #CJK UNIFIED IDEOGRAPH +0xCEC0 0x62EC #CJK UNIFIED IDEOGRAPH +0xCEC1 0x9002 #CJK UNIFIED IDEOGRAPH +0xCEC2 0x4F8A #CJK UNIFIED IDEOGRAPH +0xCEC3 0x5149 #CJK UNIFIED IDEOGRAPH +0xCEC4 0x5321 #CJK UNIFIED IDEOGRAPH +0xCEC5 0x58D9 #CJK UNIFIED IDEOGRAPH +0xCEC6 0x5EE3 #CJK UNIFIED IDEOGRAPH +0xCEC7 0x66E0 #CJK UNIFIED IDEOGRAPH +0xCEC8 0x6D38 #CJK UNIFIED IDEOGRAPH +0xCEC9 0x709A #CJK UNIFIED IDEOGRAPH +0xCECA 0x72C2 #CJK UNIFIED IDEOGRAPH +0xCECB 0x73D6 #CJK UNIFIED IDEOGRAPH +0xCECC 0x7B50 #CJK UNIFIED IDEOGRAPH +0xCECD 0x80F1 #CJK UNIFIED IDEOGRAPH +0xCECE 0x945B #CJK UNIFIED IDEOGRAPH +0xCECF 0x5366 #CJK UNIFIED IDEOGRAPH +0xCED0 0x639B #CJK UNIFIED IDEOGRAPH +0xCED1 0x7F6B #CJK UNIFIED IDEOGRAPH +0xCED2 0x4E56 #CJK UNIFIED IDEOGRAPH +0xCED3 0x5080 #CJK UNIFIED IDEOGRAPH +0xCED4 0x584A #CJK UNIFIED IDEOGRAPH +0xCED5 0x58DE #CJK UNIFIED IDEOGRAPH +0xCED6 0x602A #CJK UNIFIED IDEOGRAPH +0xCED7 0x6127 #CJK UNIFIED IDEOGRAPH +0xCED8 0x62D0 #CJK UNIFIED IDEOGRAPH +0xCED9 0x69D0 #CJK UNIFIED IDEOGRAPH +0xCEDA 0x9B41 #CJK UNIFIED IDEOGRAPH +0xCEDB 0x5B8F #CJK UNIFIED IDEOGRAPH +0xCEDC 0x7D18 #CJK UNIFIED IDEOGRAPH +0xCEDD 0x80B1 #CJK UNIFIED IDEOGRAPH +0xCEDE 0x8F5F #CJK UNIFIED IDEOGRAPH +0xCEDF 0x4EA4 #CJK UNIFIED IDEOGRAPH +0xCEE0 0x50D1 #CJK UNIFIED IDEOGRAPH +0xCEE1 0x54AC #CJK UNIFIED IDEOGRAPH +0xCEE2 0x55AC #CJK UNIFIED IDEOGRAPH +0xCEE3 0x5B0C #CJK UNIFIED IDEOGRAPH +0xCEE4 0x5DA0 #CJK UNIFIED IDEOGRAPH +0xCEE5 0x5DE7 #CJK UNIFIED IDEOGRAPH +0xCEE6 0x652A #CJK UNIFIED IDEOGRAPH +0xCEE7 0x654E #CJK UNIFIED IDEOGRAPH +0xCEE8 0x6821 #CJK UNIFIED IDEOGRAPH +0xCEE9 0x6A4B #CJK UNIFIED IDEOGRAPH +0xCEEA 0x72E1 #CJK UNIFIED IDEOGRAPH +0xCEEB 0x768E #CJK UNIFIED IDEOGRAPH +0xCEEC 0x77EF #CJK UNIFIED IDEOGRAPH +0xCEED 0x7D5E #CJK UNIFIED IDEOGRAPH +0xCEEE 0x7FF9 #CJK UNIFIED IDEOGRAPH +0xCEEF 0x81A0 #CJK UNIFIED IDEOGRAPH +0xCEF0 0x854E #CJK UNIFIED IDEOGRAPH +0xCEF1 0x86DF #CJK UNIFIED IDEOGRAPH +0xCEF2 0x8F03 #CJK UNIFIED IDEOGRAPH +0xCEF3 0x8F4E #CJK UNIFIED IDEOGRAPH +0xCEF4 0x90CA #CJK UNIFIED IDEOGRAPH +0xCEF5 0x9903 #CJK UNIFIED IDEOGRAPH +0xCEF6 0x9A55 #CJK UNIFIED IDEOGRAPH +0xCEF7 0x9BAB #CJK UNIFIED IDEOGRAPH +0xCEF8 0x4E18 #CJK UNIFIED IDEOGRAPH +0xCEF9 0x4E45 #CJK UNIFIED IDEOGRAPH +0xCEFA 0x4E5D #CJK UNIFIED IDEOGRAPH +0xCEFB 0x4EC7 #CJK UNIFIED IDEOGRAPH +0xCEFC 0x4FF1 #CJK UNIFIED IDEOGRAPH +0xCEFD 0x5177 #CJK UNIFIED IDEOGRAPH +0xCEFE 0x52FE #CJK UNIFIED IDEOGRAPH +0xCFA1 0x5340 #CJK UNIFIED IDEOGRAPH +0xCFA2 0x53E3 #CJK UNIFIED IDEOGRAPH +0xCFA3 0x53E5 #CJK UNIFIED IDEOGRAPH +0xCFA4 0x548E #CJK UNIFIED IDEOGRAPH +0xCFA5 0x5614 #CJK UNIFIED IDEOGRAPH +0xCFA6 0x5775 #CJK UNIFIED IDEOGRAPH +0xCFA7 0x57A2 #CJK UNIFIED IDEOGRAPH +0xCFA8 0x5BC7 #CJK UNIFIED IDEOGRAPH +0xCFA9 0x5D87 #CJK UNIFIED IDEOGRAPH +0xCFAA 0x5ED0 #CJK UNIFIED IDEOGRAPH +0xCFAB 0x61FC #CJK UNIFIED IDEOGRAPH +0xCFAC 0x62D8 #CJK UNIFIED IDEOGRAPH +0xCFAD 0x6551 #CJK UNIFIED IDEOGRAPH +0xCFAE 0x67B8 #CJK UNIFIED IDEOGRAPH +0xCFAF 0x67E9 #CJK UNIFIED IDEOGRAPH +0xCFB0 0x69CB #CJK UNIFIED IDEOGRAPH +0xCFB1 0x6B50 #CJK UNIFIED IDEOGRAPH +0xCFB2 0x6BC6 #CJK UNIFIED IDEOGRAPH +0xCFB3 0x6BEC #CJK UNIFIED IDEOGRAPH +0xCFB4 0x6C42 #CJK UNIFIED IDEOGRAPH +0xCFB5 0x6E9D #CJK UNIFIED IDEOGRAPH +0xCFB6 0x7078 #CJK UNIFIED IDEOGRAPH +0xCFB7 0x72D7 #CJK UNIFIED IDEOGRAPH +0xCFB8 0x7396 #CJK UNIFIED IDEOGRAPH +0xCFB9 0x7403 #CJK UNIFIED IDEOGRAPH +0xCFBA 0x77BF #CJK UNIFIED IDEOGRAPH +0xCFBB 0x77E9 #CJK UNIFIED IDEOGRAPH +0xCFBC 0x7A76 #CJK UNIFIED IDEOGRAPH +0xCFBD 0x7D7F #CJK UNIFIED IDEOGRAPH +0xCFBE 0x8009 #CJK UNIFIED IDEOGRAPH +0xCFBF 0x81FC #CJK UNIFIED IDEOGRAPH +0xCFC0 0x8205 #CJK UNIFIED IDEOGRAPH +0xCFC1 0x820A #CJK UNIFIED IDEOGRAPH +0xCFC2 0x82DF #CJK UNIFIED IDEOGRAPH +0xCFC3 0x8862 #CJK UNIFIED IDEOGRAPH +0xCFC4 0x8B33 #CJK UNIFIED IDEOGRAPH +0xCFC5 0x8CFC #CJK UNIFIED IDEOGRAPH +0xCFC6 0x8EC0 #CJK UNIFIED IDEOGRAPH +0xCFC7 0x9011 #CJK UNIFIED IDEOGRAPH +0xCFC8 0x90B1 #CJK UNIFIED IDEOGRAPH +0xCFC9 0x9264 #CJK UNIFIED IDEOGRAPH +0xCFCA 0x92B6 #CJK UNIFIED IDEOGRAPH +0xCFCB 0x99D2 #CJK UNIFIED IDEOGRAPH +0xCFCC 0x9A45 #CJK UNIFIED IDEOGRAPH +0xCFCD 0x9CE9 #CJK UNIFIED IDEOGRAPH +0xCFCE 0x9DD7 #CJK UNIFIED IDEOGRAPH +0xCFCF 0x9F9C #CJK UNIFIED IDEOGRAPH +0xCFD0 0x570B #CJK UNIFIED IDEOGRAPH +0xCFD1 0x5C40 #CJK UNIFIED IDEOGRAPH +0xCFD2 0x83CA #CJK UNIFIED IDEOGRAPH +0xCFD3 0x97A0 #CJK UNIFIED IDEOGRAPH +0xCFD4 0x97AB #CJK UNIFIED IDEOGRAPH +0xCFD5 0x9EB4 #CJK UNIFIED IDEOGRAPH +0xCFD6 0x541B #CJK UNIFIED IDEOGRAPH +0xCFD7 0x7A98 #CJK UNIFIED IDEOGRAPH +0xCFD8 0x7FA4 #CJK UNIFIED IDEOGRAPH +0xCFD9 0x88D9 #CJK UNIFIED IDEOGRAPH +0xCFDA 0x8ECD #CJK UNIFIED IDEOGRAPH +0xCFDB 0x90E1 #CJK UNIFIED IDEOGRAPH +0xCFDC 0x5800 #CJK UNIFIED IDEOGRAPH +0xCFDD 0x5C48 #CJK UNIFIED IDEOGRAPH +0xCFDE 0x6398 #CJK UNIFIED IDEOGRAPH +0xCFDF 0x7A9F #CJK UNIFIED IDEOGRAPH +0xCFE0 0x5BAE #CJK UNIFIED IDEOGRAPH +0xCFE1 0x5F13 #CJK UNIFIED IDEOGRAPH +0xCFE2 0x7A79 #CJK UNIFIED IDEOGRAPH +0xCFE3 0x7AAE #CJK UNIFIED IDEOGRAPH +0xCFE4 0x828E #CJK UNIFIED IDEOGRAPH +0xCFE5 0x8EAC #CJK UNIFIED IDEOGRAPH +0xCFE6 0x5026 #CJK UNIFIED IDEOGRAPH +0xCFE7 0x5238 #CJK UNIFIED IDEOGRAPH +0xCFE8 0x52F8 #CJK UNIFIED IDEOGRAPH +0xCFE9 0x5377 #CJK UNIFIED IDEOGRAPH +0xCFEA 0x5708 #CJK UNIFIED IDEOGRAPH +0xCFEB 0x62F3 #CJK UNIFIED IDEOGRAPH +0xCFEC 0x6372 #CJK UNIFIED IDEOGRAPH +0xCFED 0x6B0A #CJK UNIFIED IDEOGRAPH +0xCFEE 0x6DC3 #CJK UNIFIED IDEOGRAPH +0xCFEF 0x7737 #CJK UNIFIED IDEOGRAPH +0xCFF0 0x53A5 #CJK UNIFIED IDEOGRAPH +0xCFF1 0x7357 #CJK UNIFIED IDEOGRAPH +0xCFF2 0x8568 #CJK UNIFIED IDEOGRAPH +0xCFF3 0x8E76 #CJK UNIFIED IDEOGRAPH +0xCFF4 0x95D5 #CJK UNIFIED IDEOGRAPH +0xCFF5 0x673A #CJK UNIFIED IDEOGRAPH +0xCFF6 0x6AC3 #CJK UNIFIED IDEOGRAPH +0xCFF7 0x6F70 #CJK UNIFIED IDEOGRAPH +0xCFF8 0x8A6D #CJK UNIFIED IDEOGRAPH +0xCFF9 0x8ECC #CJK UNIFIED IDEOGRAPH +0xCFFA 0x994B #CJK UNIFIED IDEOGRAPH +0xCFFB 0xF906 #CJK COMPATIBILITY IDEOGRAPH +0xCFFC 0x6677 #CJK UNIFIED IDEOGRAPH +0xCFFD 0x6B78 #CJK UNIFIED IDEOGRAPH +0xCFFE 0x8CB4 #CJK UNIFIED IDEOGRAPH +0xD0A1 0x9B3C #CJK UNIFIED IDEOGRAPH +0xD0A2 0xF907 #CJK COMPATIBILITY IDEOGRAPH +0xD0A3 0x53EB #CJK UNIFIED IDEOGRAPH +0xD0A4 0x572D #CJK UNIFIED IDEOGRAPH +0xD0A5 0x594E #CJK UNIFIED IDEOGRAPH +0xD0A6 0x63C6 #CJK UNIFIED IDEOGRAPH +0xD0A7 0x69FB #CJK UNIFIED IDEOGRAPH +0xD0A8 0x73EA #CJK UNIFIED IDEOGRAPH +0xD0A9 0x7845 #CJK UNIFIED IDEOGRAPH +0xD0AA 0x7ABA #CJK UNIFIED IDEOGRAPH +0xD0AB 0x7AC5 #CJK UNIFIED IDEOGRAPH +0xD0AC 0x7CFE #CJK UNIFIED IDEOGRAPH +0xD0AD 0x8475 #CJK UNIFIED IDEOGRAPH +0xD0AE 0x898F #CJK UNIFIED IDEOGRAPH +0xD0AF 0x8D73 #CJK UNIFIED IDEOGRAPH +0xD0B0 0x9035 #CJK UNIFIED IDEOGRAPH +0xD0B1 0x95A8 #CJK UNIFIED IDEOGRAPH +0xD0B2 0x52FB #CJK UNIFIED IDEOGRAPH +0xD0B3 0x5747 #CJK UNIFIED IDEOGRAPH +0xD0B4 0x7547 #CJK UNIFIED IDEOGRAPH +0xD0B5 0x7B60 #CJK UNIFIED IDEOGRAPH +0xD0B6 0x83CC #CJK UNIFIED IDEOGRAPH +0xD0B7 0x921E #CJK UNIFIED IDEOGRAPH +0xD0B8 0xF908 #CJK COMPATIBILITY IDEOGRAPH +0xD0B9 0x6A58 #CJK UNIFIED IDEOGRAPH +0xD0BA 0x514B #CJK UNIFIED IDEOGRAPH +0xD0BB 0x524B #CJK UNIFIED IDEOGRAPH +0xD0BC 0x5287 #CJK UNIFIED IDEOGRAPH +0xD0BD 0x621F #CJK UNIFIED IDEOGRAPH +0xD0BE 0x68D8 #CJK UNIFIED IDEOGRAPH +0xD0BF 0x6975 #CJK UNIFIED IDEOGRAPH +0xD0C0 0x9699 #CJK UNIFIED IDEOGRAPH +0xD0C1 0x50C5 #CJK UNIFIED IDEOGRAPH +0xD0C2 0x52A4 #CJK UNIFIED IDEOGRAPH +0xD0C3 0x52E4 #CJK UNIFIED IDEOGRAPH +0xD0C4 0x61C3 #CJK UNIFIED IDEOGRAPH +0xD0C5 0x65A4 #CJK UNIFIED IDEOGRAPH +0xD0C6 0x6839 #CJK UNIFIED IDEOGRAPH +0xD0C7 0x69FF #CJK UNIFIED IDEOGRAPH +0xD0C8 0x747E #CJK UNIFIED IDEOGRAPH +0xD0C9 0x7B4B #CJK UNIFIED IDEOGRAPH +0xD0CA 0x82B9 #CJK UNIFIED IDEOGRAPH +0xD0CB 0x83EB #CJK UNIFIED IDEOGRAPH +0xD0CC 0x89B2 #CJK UNIFIED IDEOGRAPH +0xD0CD 0x8B39 #CJK UNIFIED IDEOGRAPH +0xD0CE 0x8FD1 #CJK UNIFIED IDEOGRAPH +0xD0CF 0x9949 #CJK UNIFIED IDEOGRAPH +0xD0D0 0xF909 #CJK COMPATIBILITY IDEOGRAPH +0xD0D1 0x4ECA #CJK UNIFIED IDEOGRAPH +0xD0D2 0x5997 #CJK UNIFIED IDEOGRAPH +0xD0D3 0x64D2 #CJK UNIFIED IDEOGRAPH +0xD0D4 0x6611 #CJK UNIFIED IDEOGRAPH +0xD0D5 0x6A8E #CJK UNIFIED IDEOGRAPH +0xD0D6 0x7434 #CJK UNIFIED IDEOGRAPH +0xD0D7 0x7981 #CJK UNIFIED IDEOGRAPH +0xD0D8 0x79BD #CJK UNIFIED IDEOGRAPH +0xD0D9 0x82A9 #CJK UNIFIED IDEOGRAPH +0xD0DA 0x887E #CJK UNIFIED IDEOGRAPH +0xD0DB 0x887F #CJK UNIFIED IDEOGRAPH +0xD0DC 0x895F #CJK UNIFIED IDEOGRAPH +0xD0DD 0xF90A #CJK COMPATIBILITY IDEOGRAPH +0xD0DE 0x9326 #CJK UNIFIED IDEOGRAPH +0xD0DF 0x4F0B #CJK UNIFIED IDEOGRAPH +0xD0E0 0x53CA #CJK UNIFIED IDEOGRAPH +0xD0E1 0x6025 #CJK UNIFIED IDEOGRAPH +0xD0E2 0x6271 #CJK UNIFIED IDEOGRAPH +0xD0E3 0x6C72 #CJK UNIFIED IDEOGRAPH +0xD0E4 0x7D1A #CJK UNIFIED IDEOGRAPH +0xD0E5 0x7D66 #CJK UNIFIED IDEOGRAPH +0xD0E6 0x4E98 #CJK UNIFIED IDEOGRAPH +0xD0E7 0x5162 #CJK UNIFIED IDEOGRAPH +0xD0E8 0x77DC #CJK UNIFIED IDEOGRAPH +0xD0E9 0x80AF #CJK UNIFIED IDEOGRAPH +0xD0EA 0x4F01 #CJK UNIFIED IDEOGRAPH +0xD0EB 0x4F0E #CJK UNIFIED IDEOGRAPH +0xD0EC 0x5176 #CJK UNIFIED IDEOGRAPH +0xD0ED 0x5180 #CJK UNIFIED IDEOGRAPH +0xD0EE 0x55DC #CJK UNIFIED IDEOGRAPH +0xD0EF 0x5668 #CJK UNIFIED IDEOGRAPH +0xD0F0 0x573B #CJK UNIFIED IDEOGRAPH +0xD0F1 0x57FA #CJK UNIFIED IDEOGRAPH +0xD0F2 0x57FC #CJK UNIFIED IDEOGRAPH +0xD0F3 0x5914 #CJK UNIFIED IDEOGRAPH +0xD0F4 0x5947 #CJK UNIFIED IDEOGRAPH +0xD0F5 0x5993 #CJK UNIFIED IDEOGRAPH +0xD0F6 0x5BC4 #CJK UNIFIED IDEOGRAPH +0xD0F7 0x5C90 #CJK UNIFIED IDEOGRAPH +0xD0F8 0x5D0E #CJK UNIFIED IDEOGRAPH +0xD0F9 0x5DF1 #CJK UNIFIED IDEOGRAPH +0xD0FA 0x5E7E #CJK UNIFIED IDEOGRAPH +0xD0FB 0x5FCC #CJK UNIFIED IDEOGRAPH +0xD0FC 0x6280 #CJK UNIFIED IDEOGRAPH +0xD0FD 0x65D7 #CJK UNIFIED IDEOGRAPH +0xD0FE 0x65E3 #CJK UNIFIED IDEOGRAPH +0xD1A1 0x671E #CJK UNIFIED IDEOGRAPH +0xD1A2 0x671F #CJK UNIFIED IDEOGRAPH +0xD1A3 0x675E #CJK UNIFIED IDEOGRAPH +0xD1A4 0x68CB #CJK UNIFIED IDEOGRAPH +0xD1A5 0x68C4 #CJK UNIFIED IDEOGRAPH +0xD1A6 0x6A5F #CJK UNIFIED IDEOGRAPH +0xD1A7 0x6B3A #CJK UNIFIED IDEOGRAPH +0xD1A8 0x6C23 #CJK UNIFIED IDEOGRAPH +0xD1A9 0x6C7D #CJK UNIFIED IDEOGRAPH +0xD1AA 0x6C82 #CJK UNIFIED IDEOGRAPH +0xD1AB 0x6DC7 #CJK UNIFIED IDEOGRAPH +0xD1AC 0x7398 #CJK UNIFIED IDEOGRAPH +0xD1AD 0x7426 #CJK UNIFIED IDEOGRAPH +0xD1AE 0x742A #CJK UNIFIED IDEOGRAPH +0xD1AF 0x7482 #CJK UNIFIED IDEOGRAPH +0xD1B0 0x74A3 #CJK UNIFIED IDEOGRAPH +0xD1B1 0x7578 #CJK UNIFIED IDEOGRAPH +0xD1B2 0x757F #CJK UNIFIED IDEOGRAPH +0xD1B3 0x7881 #CJK UNIFIED IDEOGRAPH +0xD1B4 0x78EF #CJK UNIFIED IDEOGRAPH +0xD1B5 0x7941 #CJK UNIFIED IDEOGRAPH +0xD1B6 0x7947 #CJK UNIFIED IDEOGRAPH +0xD1B7 0x7948 #CJK UNIFIED IDEOGRAPH +0xD1B8 0x797A #CJK UNIFIED IDEOGRAPH +0xD1B9 0x7B95 #CJK UNIFIED IDEOGRAPH +0xD1BA 0x7D00 #CJK UNIFIED IDEOGRAPH +0xD1BB 0x7DBA #CJK UNIFIED IDEOGRAPH +0xD1BC 0x7F88 #CJK UNIFIED IDEOGRAPH +0xD1BD 0x8006 #CJK UNIFIED IDEOGRAPH +0xD1BE 0x802D #CJK UNIFIED IDEOGRAPH +0xD1BF 0x808C #CJK UNIFIED IDEOGRAPH +0xD1C0 0x8A18 #CJK UNIFIED IDEOGRAPH +0xD1C1 0x8B4F #CJK UNIFIED IDEOGRAPH +0xD1C2 0x8C48 #CJK UNIFIED IDEOGRAPH +0xD1C3 0x8D77 #CJK UNIFIED IDEOGRAPH +0xD1C4 0x9321 #CJK UNIFIED IDEOGRAPH +0xD1C5 0x9324 #CJK UNIFIED IDEOGRAPH +0xD1C6 0x98E2 #CJK UNIFIED IDEOGRAPH +0xD1C7 0x9951 #CJK UNIFIED IDEOGRAPH +0xD1C8 0x9A0E #CJK UNIFIED IDEOGRAPH +0xD1C9 0x9A0F #CJK UNIFIED IDEOGRAPH +0xD1CA 0x9A65 #CJK UNIFIED IDEOGRAPH +0xD1CB 0x9E92 #CJK UNIFIED IDEOGRAPH +0xD1CC 0x7DCA #CJK UNIFIED IDEOGRAPH +0xD1CD 0x4F76 #CJK UNIFIED IDEOGRAPH +0xD1CE 0x5409 #CJK UNIFIED IDEOGRAPH +0xD1CF 0x62EE #CJK UNIFIED IDEOGRAPH +0xD1D0 0x6854 #CJK UNIFIED IDEOGRAPH +0xD1D1 0x91D1 #CJK UNIFIED IDEOGRAPH +0xD1D2 0x55AB #CJK UNIFIED IDEOGRAPH +0xD1D3 0x513A #CJK UNIFIED IDEOGRAPH +0xD1D4 0xF90B #CJK COMPATIBILITY IDEOGRAPH +0xD1D5 0xF90C #CJK COMPATIBILITY IDEOGRAPH +0xD1D6 0x5A1C #CJK UNIFIED IDEOGRAPH +0xD1D7 0x61E6 #CJK UNIFIED IDEOGRAPH +0xD1D8 0xF90D #CJK COMPATIBILITY IDEOGRAPH +0xD1D9 0x62CF #CJK UNIFIED IDEOGRAPH +0xD1DA 0x62FF #CJK UNIFIED IDEOGRAPH +0xD1DB 0xF90E #CJK COMPATIBILITY IDEOGRAPH +0xD1DC 0xF90F #CJK COMPATIBILITY IDEOGRAPH +0xD1DD 0xF910 #CJK COMPATIBILITY IDEOGRAPH +0xD1DE 0xF911 #CJK COMPATIBILITY IDEOGRAPH +0xD1DF 0xF912 #CJK COMPATIBILITY IDEOGRAPH +0xD1E0 0xF913 #CJK COMPATIBILITY IDEOGRAPH +0xD1E1 0x90A3 #CJK UNIFIED IDEOGRAPH +0xD1E2 0xF914 #CJK COMPATIBILITY IDEOGRAPH +0xD1E3 0xF915 #CJK COMPATIBILITY IDEOGRAPH +0xD1E4 0xF916 #CJK COMPATIBILITY IDEOGRAPH +0xD1E5 0xF917 #CJK COMPATIBILITY IDEOGRAPH +0xD1E6 0xF918 #CJK COMPATIBILITY IDEOGRAPH +0xD1E7 0x8AFE #CJK UNIFIED IDEOGRAPH +0xD1E8 0xF919 #CJK COMPATIBILITY IDEOGRAPH +0xD1E9 0xF91A #CJK COMPATIBILITY IDEOGRAPH +0xD1EA 0xF91B #CJK COMPATIBILITY IDEOGRAPH +0xD1EB 0xF91C #CJK COMPATIBILITY IDEOGRAPH +0xD1EC 0x6696 #CJK UNIFIED IDEOGRAPH +0xD1ED 0xF91D #CJK COMPATIBILITY IDEOGRAPH +0xD1EE 0x7156 #CJK UNIFIED IDEOGRAPH +0xD1EF 0xF91E #CJK COMPATIBILITY IDEOGRAPH +0xD1F0 0xF91F #CJK COMPATIBILITY IDEOGRAPH +0xD1F1 0x96E3 #CJK UNIFIED IDEOGRAPH +0xD1F2 0xF920 #CJK COMPATIBILITY IDEOGRAPH +0xD1F3 0x634F #CJK UNIFIED IDEOGRAPH +0xD1F4 0x637A #CJK UNIFIED IDEOGRAPH +0xD1F5 0x5357 #CJK UNIFIED IDEOGRAPH +0xD1F6 0xF921 #CJK COMPATIBILITY IDEOGRAPH +0xD1F7 0x678F #CJK UNIFIED IDEOGRAPH +0xD1F8 0x6960 #CJK UNIFIED IDEOGRAPH +0xD1F9 0x6E73 #CJK UNIFIED IDEOGRAPH +0xD1FA 0xF922 #CJK COMPATIBILITY IDEOGRAPH +0xD1FB 0x7537 #CJK UNIFIED IDEOGRAPH +0xD1FC 0xF923 #CJK COMPATIBILITY IDEOGRAPH +0xD1FD 0xF924 #CJK COMPATIBILITY IDEOGRAPH +0xD1FE 0xF925 #CJK COMPATIBILITY IDEOGRAPH +0xD2A1 0x7D0D #CJK UNIFIED IDEOGRAPH +0xD2A2 0xF926 #CJK COMPATIBILITY IDEOGRAPH +0xD2A3 0xF927 #CJK COMPATIBILITY IDEOGRAPH +0xD2A4 0x8872 #CJK UNIFIED IDEOGRAPH +0xD2A5 0x56CA #CJK UNIFIED IDEOGRAPH +0xD2A6 0x5A18 #CJK UNIFIED IDEOGRAPH +0xD2A7 0xF928 #CJK COMPATIBILITY IDEOGRAPH +0xD2A8 0xF929 #CJK COMPATIBILITY IDEOGRAPH +0xD2A9 0xF92A #CJK COMPATIBILITY IDEOGRAPH +0xD2AA 0xF92B #CJK COMPATIBILITY IDEOGRAPH +0xD2AB 0xF92C #CJK COMPATIBILITY IDEOGRAPH +0xD2AC 0x4E43 #CJK UNIFIED IDEOGRAPH +0xD2AD 0xF92D #CJK COMPATIBILITY IDEOGRAPH +0xD2AE 0x5167 #CJK UNIFIED IDEOGRAPH +0xD2AF 0x5948 #CJK UNIFIED IDEOGRAPH +0xD2B0 0x67F0 #CJK UNIFIED IDEOGRAPH +0xD2B1 0x8010 #CJK UNIFIED IDEOGRAPH +0xD2B2 0xF92E #CJK COMPATIBILITY IDEOGRAPH +0xD2B3 0x5973 #CJK UNIFIED IDEOGRAPH +0xD2B4 0x5E74 #CJK UNIFIED IDEOGRAPH +0xD2B5 0x649A #CJK UNIFIED IDEOGRAPH +0xD2B6 0x79CA #CJK UNIFIED IDEOGRAPH +0xD2B7 0x5FF5 #CJK UNIFIED IDEOGRAPH +0xD2B8 0x606C #CJK UNIFIED IDEOGRAPH +0xD2B9 0x62C8 #CJK UNIFIED IDEOGRAPH +0xD2BA 0x637B #CJK UNIFIED IDEOGRAPH +0xD2BB 0x5BE7 #CJK UNIFIED IDEOGRAPH +0xD2BC 0x5BD7 #CJK UNIFIED IDEOGRAPH +0xD2BD 0x52AA #CJK UNIFIED IDEOGRAPH +0xD2BE 0xF92F #CJK COMPATIBILITY IDEOGRAPH +0xD2BF 0x5974 #CJK UNIFIED IDEOGRAPH +0xD2C0 0x5F29 #CJK UNIFIED IDEOGRAPH +0xD2C1 0x6012 #CJK UNIFIED IDEOGRAPH +0xD2C2 0xF930 #CJK COMPATIBILITY IDEOGRAPH +0xD2C3 0xF931 #CJK COMPATIBILITY IDEOGRAPH +0xD2C4 0xF932 #CJK COMPATIBILITY IDEOGRAPH +0xD2C5 0x7459 #CJK UNIFIED IDEOGRAPH +0xD2C6 0xF933 #CJK COMPATIBILITY IDEOGRAPH +0xD2C7 0xF934 #CJK COMPATIBILITY IDEOGRAPH +0xD2C8 0xF935 #CJK COMPATIBILITY IDEOGRAPH +0xD2C9 0xF936 #CJK COMPATIBILITY IDEOGRAPH +0xD2CA 0xF937 #CJK COMPATIBILITY IDEOGRAPH +0xD2CB 0xF938 #CJK COMPATIBILITY IDEOGRAPH +0xD2CC 0x99D1 #CJK UNIFIED IDEOGRAPH +0xD2CD 0xF939 #CJK COMPATIBILITY IDEOGRAPH +0xD2CE 0xF93A #CJK COMPATIBILITY IDEOGRAPH +0xD2CF 0xF93B #CJK COMPATIBILITY IDEOGRAPH +0xD2D0 0xF93C #CJK COMPATIBILITY IDEOGRAPH +0xD2D1 0xF93D #CJK COMPATIBILITY IDEOGRAPH +0xD2D2 0xF93E #CJK COMPATIBILITY IDEOGRAPH +0xD2D3 0xF93F #CJK COMPATIBILITY IDEOGRAPH +0xD2D4 0xF940 #CJK COMPATIBILITY IDEOGRAPH +0xD2D5 0xF941 #CJK COMPATIBILITY IDEOGRAPH +0xD2D6 0xF942 #CJK COMPATIBILITY IDEOGRAPH +0xD2D7 0xF943 #CJK COMPATIBILITY IDEOGRAPH +0xD2D8 0x6FC3 #CJK UNIFIED IDEOGRAPH +0xD2D9 0xF944 #CJK COMPATIBILITY IDEOGRAPH +0xD2DA 0xF945 #CJK COMPATIBILITY IDEOGRAPH +0xD2DB 0x81BF #CJK UNIFIED IDEOGRAPH +0xD2DC 0x8FB2 #CJK UNIFIED IDEOGRAPH +0xD2DD 0x60F1 #CJK UNIFIED IDEOGRAPH +0xD2DE 0xF946 #CJK COMPATIBILITY IDEOGRAPH +0xD2DF 0xF947 #CJK COMPATIBILITY IDEOGRAPH +0xD2E0 0x8166 #CJK UNIFIED IDEOGRAPH +0xD2E1 0xF948 #CJK COMPATIBILITY IDEOGRAPH +0xD2E2 0xF949 #CJK COMPATIBILITY IDEOGRAPH +0xD2E3 0x5C3F #CJK UNIFIED IDEOGRAPH +0xD2E4 0xF94A #CJK COMPATIBILITY IDEOGRAPH +0xD2E5 0xF94B #CJK COMPATIBILITY IDEOGRAPH +0xD2E6 0xF94C #CJK COMPATIBILITY IDEOGRAPH +0xD2E7 0xF94D #CJK COMPATIBILITY IDEOGRAPH +0xD2E8 0xF94E #CJK COMPATIBILITY IDEOGRAPH +0xD2E9 0xF94F #CJK COMPATIBILITY IDEOGRAPH +0xD2EA 0xF950 #CJK COMPATIBILITY IDEOGRAPH +0xD2EB 0xF951 #CJK COMPATIBILITY IDEOGRAPH +0xD2EC 0x5AE9 #CJK UNIFIED IDEOGRAPH +0xD2ED 0x8A25 #CJK UNIFIED IDEOGRAPH +0xD2EE 0x677B #CJK UNIFIED IDEOGRAPH +0xD2EF 0x7D10 #CJK UNIFIED IDEOGRAPH +0xD2F0 0xF952 #CJK COMPATIBILITY IDEOGRAPH +0xD2F1 0xF953 #CJK COMPATIBILITY IDEOGRAPH +0xD2F2 0xF954 #CJK COMPATIBILITY IDEOGRAPH +0xD2F3 0xF955 #CJK COMPATIBILITY IDEOGRAPH +0xD2F4 0xF956 #CJK COMPATIBILITY IDEOGRAPH +0xD2F5 0xF957 #CJK COMPATIBILITY IDEOGRAPH +0xD2F6 0x80FD #CJK UNIFIED IDEOGRAPH +0xD2F7 0xF958 #CJK COMPATIBILITY IDEOGRAPH +0xD2F8 0xF959 #CJK COMPATIBILITY IDEOGRAPH +0xD2F9 0x5C3C #CJK UNIFIED IDEOGRAPH +0xD2FA 0x6CE5 #CJK UNIFIED IDEOGRAPH +0xD2FB 0x533F #CJK UNIFIED IDEOGRAPH +0xD2FC 0x6EBA #CJK UNIFIED IDEOGRAPH +0xD2FD 0x591A #CJK UNIFIED IDEOGRAPH +0xD2FE 0x8336 #CJK UNIFIED IDEOGRAPH +0xD3A1 0x4E39 #CJK UNIFIED IDEOGRAPH +0xD3A2 0x4EB6 #CJK UNIFIED IDEOGRAPH +0xD3A3 0x4F46 #CJK UNIFIED IDEOGRAPH +0xD3A4 0x55AE #CJK UNIFIED IDEOGRAPH +0xD3A5 0x5718 #CJK UNIFIED IDEOGRAPH +0xD3A6 0x58C7 #CJK UNIFIED IDEOGRAPH +0xD3A7 0x5F56 #CJK UNIFIED IDEOGRAPH +0xD3A8 0x65B7 #CJK UNIFIED IDEOGRAPH +0xD3A9 0x65E6 #CJK UNIFIED IDEOGRAPH +0xD3AA 0x6A80 #CJK UNIFIED IDEOGRAPH +0xD3AB 0x6BB5 #CJK UNIFIED IDEOGRAPH +0xD3AC 0x6E4D #CJK UNIFIED IDEOGRAPH +0xD3AD 0x77ED #CJK UNIFIED IDEOGRAPH +0xD3AE 0x7AEF #CJK UNIFIED IDEOGRAPH +0xD3AF 0x7C1E #CJK UNIFIED IDEOGRAPH +0xD3B0 0x7DDE #CJK UNIFIED IDEOGRAPH +0xD3B1 0x86CB #CJK UNIFIED IDEOGRAPH +0xD3B2 0x8892 #CJK UNIFIED IDEOGRAPH +0xD3B3 0x9132 #CJK UNIFIED IDEOGRAPH +0xD3B4 0x935B #CJK UNIFIED IDEOGRAPH +0xD3B5 0x64BB #CJK UNIFIED IDEOGRAPH +0xD3B6 0x6FBE #CJK UNIFIED IDEOGRAPH +0xD3B7 0x737A #CJK UNIFIED IDEOGRAPH +0xD3B8 0x75B8 #CJK UNIFIED IDEOGRAPH +0xD3B9 0x9054 #CJK UNIFIED IDEOGRAPH +0xD3BA 0x5556 #CJK UNIFIED IDEOGRAPH +0xD3BB 0x574D #CJK UNIFIED IDEOGRAPH +0xD3BC 0x61BA #CJK UNIFIED IDEOGRAPH +0xD3BD 0x64D4 #CJK UNIFIED IDEOGRAPH +0xD3BE 0x66C7 #CJK UNIFIED IDEOGRAPH +0xD3BF 0x6DE1 #CJK UNIFIED IDEOGRAPH +0xD3C0 0x6E5B #CJK UNIFIED IDEOGRAPH +0xD3C1 0x6F6D #CJK UNIFIED IDEOGRAPH +0xD3C2 0x6FB9 #CJK UNIFIED IDEOGRAPH +0xD3C3 0x75F0 #CJK UNIFIED IDEOGRAPH +0xD3C4 0x8043 #CJK UNIFIED IDEOGRAPH +0xD3C5 0x81BD #CJK UNIFIED IDEOGRAPH +0xD3C6 0x8541 #CJK UNIFIED IDEOGRAPH +0xD3C7 0x8983 #CJK UNIFIED IDEOGRAPH +0xD3C8 0x8AC7 #CJK UNIFIED IDEOGRAPH +0xD3C9 0x8B5A #CJK UNIFIED IDEOGRAPH +0xD3CA 0x931F #CJK UNIFIED IDEOGRAPH +0xD3CB 0x6C93 #CJK UNIFIED IDEOGRAPH +0xD3CC 0x7553 #CJK UNIFIED IDEOGRAPH +0xD3CD 0x7B54 #CJK UNIFIED IDEOGRAPH +0xD3CE 0x8E0F #CJK UNIFIED IDEOGRAPH +0xD3CF 0x905D #CJK UNIFIED IDEOGRAPH +0xD3D0 0x5510 #CJK UNIFIED IDEOGRAPH +0xD3D1 0x5802 #CJK UNIFIED IDEOGRAPH +0xD3D2 0x5858 #CJK UNIFIED IDEOGRAPH +0xD3D3 0x5E62 #CJK UNIFIED IDEOGRAPH +0xD3D4 0x6207 #CJK UNIFIED IDEOGRAPH +0xD3D5 0x649E #CJK UNIFIED IDEOGRAPH +0xD3D6 0x68E0 #CJK UNIFIED IDEOGRAPH +0xD3D7 0x7576 #CJK UNIFIED IDEOGRAPH +0xD3D8 0x7CD6 #CJK UNIFIED IDEOGRAPH +0xD3D9 0x87B3 #CJK UNIFIED IDEOGRAPH +0xD3DA 0x9EE8 #CJK UNIFIED IDEOGRAPH +0xD3DB 0x4EE3 #CJK UNIFIED IDEOGRAPH +0xD3DC 0x5788 #CJK UNIFIED IDEOGRAPH +0xD3DD 0x576E #CJK UNIFIED IDEOGRAPH +0xD3DE 0x5927 #CJK UNIFIED IDEOGRAPH +0xD3DF 0x5C0D #CJK UNIFIED IDEOGRAPH +0xD3E0 0x5CB1 #CJK UNIFIED IDEOGRAPH +0xD3E1 0x5E36 #CJK UNIFIED IDEOGRAPH +0xD3E2 0x5F85 #CJK UNIFIED IDEOGRAPH +0xD3E3 0x6234 #CJK UNIFIED IDEOGRAPH +0xD3E4 0x64E1 #CJK UNIFIED IDEOGRAPH +0xD3E5 0x73B3 #CJK UNIFIED IDEOGRAPH +0xD3E6 0x81FA #CJK UNIFIED IDEOGRAPH +0xD3E7 0x888B #CJK UNIFIED IDEOGRAPH +0xD3E8 0x8CB8 #CJK UNIFIED IDEOGRAPH +0xD3E9 0x968A #CJK UNIFIED IDEOGRAPH +0xD3EA 0x9EDB #CJK UNIFIED IDEOGRAPH +0xD3EB 0x5B85 #CJK UNIFIED IDEOGRAPH +0xD3EC 0x5FB7 #CJK UNIFIED IDEOGRAPH +0xD3ED 0x60B3 #CJK UNIFIED IDEOGRAPH +0xD3EE 0x5012 #CJK UNIFIED IDEOGRAPH +0xD3EF 0x5200 #CJK UNIFIED IDEOGRAPH +0xD3F0 0x5230 #CJK UNIFIED IDEOGRAPH +0xD3F1 0x5716 #CJK UNIFIED IDEOGRAPH +0xD3F2 0x5835 #CJK UNIFIED IDEOGRAPH +0xD3F3 0x5857 #CJK UNIFIED IDEOGRAPH +0xD3F4 0x5C0E #CJK UNIFIED IDEOGRAPH +0xD3F5 0x5C60 #CJK UNIFIED IDEOGRAPH +0xD3F6 0x5CF6 #CJK UNIFIED IDEOGRAPH +0xD3F7 0x5D8B #CJK UNIFIED IDEOGRAPH +0xD3F8 0x5EA6 #CJK UNIFIED IDEOGRAPH +0xD3F9 0x5F92 #CJK UNIFIED IDEOGRAPH +0xD3FA 0x60BC #CJK UNIFIED IDEOGRAPH +0xD3FB 0x6311 #CJK UNIFIED IDEOGRAPH +0xD3FC 0x6389 #CJK UNIFIED IDEOGRAPH +0xD3FD 0x6417 #CJK UNIFIED IDEOGRAPH +0xD3FE 0x6843 #CJK UNIFIED IDEOGRAPH +0xD4A1 0x68F9 #CJK UNIFIED IDEOGRAPH +0xD4A2 0x6AC2 #CJK UNIFIED IDEOGRAPH +0xD4A3 0x6DD8 #CJK UNIFIED IDEOGRAPH +0xD4A4 0x6E21 #CJK UNIFIED IDEOGRAPH +0xD4A5 0x6ED4 #CJK UNIFIED IDEOGRAPH +0xD4A6 0x6FE4 #CJK UNIFIED IDEOGRAPH +0xD4A7 0x71FE #CJK UNIFIED IDEOGRAPH +0xD4A8 0x76DC #CJK UNIFIED IDEOGRAPH +0xD4A9 0x7779 #CJK UNIFIED IDEOGRAPH +0xD4AA 0x79B1 #CJK UNIFIED IDEOGRAPH +0xD4AB 0x7A3B #CJK UNIFIED IDEOGRAPH +0xD4AC 0x8404 #CJK UNIFIED IDEOGRAPH +0xD4AD 0x89A9 #CJK UNIFIED IDEOGRAPH +0xD4AE 0x8CED #CJK UNIFIED IDEOGRAPH +0xD4AF 0x8DF3 #CJK UNIFIED IDEOGRAPH +0xD4B0 0x8E48 #CJK UNIFIED IDEOGRAPH +0xD4B1 0x9003 #CJK UNIFIED IDEOGRAPH +0xD4B2 0x9014 #CJK UNIFIED IDEOGRAPH +0xD4B3 0x9053 #CJK UNIFIED IDEOGRAPH +0xD4B4 0x90FD #CJK UNIFIED IDEOGRAPH +0xD4B5 0x934D #CJK UNIFIED IDEOGRAPH +0xD4B6 0x9676 #CJK UNIFIED IDEOGRAPH +0xD4B7 0x97DC #CJK UNIFIED IDEOGRAPH +0xD4B8 0x6BD2 #CJK UNIFIED IDEOGRAPH +0xD4B9 0x7006 #CJK UNIFIED IDEOGRAPH +0xD4BA 0x7258 #CJK UNIFIED IDEOGRAPH +0xD4BB 0x72A2 #CJK UNIFIED IDEOGRAPH +0xD4BC 0x7368 #CJK UNIFIED IDEOGRAPH +0xD4BD 0x7763 #CJK UNIFIED IDEOGRAPH +0xD4BE 0x79BF #CJK UNIFIED IDEOGRAPH +0xD4BF 0x7BE4 #CJK UNIFIED IDEOGRAPH +0xD4C0 0x7E9B #CJK UNIFIED IDEOGRAPH +0xD4C1 0x8B80 #CJK UNIFIED IDEOGRAPH +0xD4C2 0x58A9 #CJK UNIFIED IDEOGRAPH +0xD4C3 0x60C7 #CJK UNIFIED IDEOGRAPH +0xD4C4 0x6566 #CJK UNIFIED IDEOGRAPH +0xD4C5 0x65FD #CJK UNIFIED IDEOGRAPH +0xD4C6 0x66BE #CJK UNIFIED IDEOGRAPH +0xD4C7 0x6C8C #CJK UNIFIED IDEOGRAPH +0xD4C8 0x711E #CJK UNIFIED IDEOGRAPH +0xD4C9 0x71C9 #CJK UNIFIED IDEOGRAPH +0xD4CA 0x8C5A #CJK UNIFIED IDEOGRAPH +0xD4CB 0x9813 #CJK UNIFIED IDEOGRAPH +0xD4CC 0x4E6D #CJK UNIFIED IDEOGRAPH +0xD4CD 0x7A81 #CJK UNIFIED IDEOGRAPH +0xD4CE 0x4EDD #CJK UNIFIED IDEOGRAPH +0xD4CF 0x51AC #CJK UNIFIED IDEOGRAPH +0xD4D0 0x51CD #CJK UNIFIED IDEOGRAPH +0xD4D1 0x52D5 #CJK UNIFIED IDEOGRAPH +0xD4D2 0x540C #CJK UNIFIED IDEOGRAPH +0xD4D3 0x61A7 #CJK UNIFIED IDEOGRAPH +0xD4D4 0x6771 #CJK UNIFIED IDEOGRAPH +0xD4D5 0x6850 #CJK UNIFIED IDEOGRAPH +0xD4D6 0x68DF #CJK UNIFIED IDEOGRAPH +0xD4D7 0x6D1E #CJK UNIFIED IDEOGRAPH +0xD4D8 0x6F7C #CJK UNIFIED IDEOGRAPH +0xD4D9 0x75BC #CJK UNIFIED IDEOGRAPH +0xD4DA 0x77B3 #CJK UNIFIED IDEOGRAPH +0xD4DB 0x7AE5 #CJK UNIFIED IDEOGRAPH +0xD4DC 0x80F4 #CJK UNIFIED IDEOGRAPH +0xD4DD 0x8463 #CJK UNIFIED IDEOGRAPH +0xD4DE 0x9285 #CJK UNIFIED IDEOGRAPH +0xD4DF 0x515C #CJK UNIFIED IDEOGRAPH +0xD4E0 0x6597 #CJK UNIFIED IDEOGRAPH +0xD4E1 0x675C #CJK UNIFIED IDEOGRAPH +0xD4E2 0x6793 #CJK UNIFIED IDEOGRAPH +0xD4E3 0x75D8 #CJK UNIFIED IDEOGRAPH +0xD4E4 0x7AC7 #CJK UNIFIED IDEOGRAPH +0xD4E5 0x8373 #CJK UNIFIED IDEOGRAPH +0xD4E6 0xF95A #CJK COMPATIBILITY IDEOGRAPH +0xD4E7 0x8C46 #CJK UNIFIED IDEOGRAPH +0xD4E8 0x9017 #CJK UNIFIED IDEOGRAPH +0xD4E9 0x982D #CJK UNIFIED IDEOGRAPH +0xD4EA 0x5C6F #CJK UNIFIED IDEOGRAPH +0xD4EB 0x81C0 #CJK UNIFIED IDEOGRAPH +0xD4EC 0x829A #CJK UNIFIED IDEOGRAPH +0xD4ED 0x9041 #CJK UNIFIED IDEOGRAPH +0xD4EE 0x906F #CJK UNIFIED IDEOGRAPH +0xD4EF 0x920D #CJK UNIFIED IDEOGRAPH +0xD4F0 0x5F97 #CJK UNIFIED IDEOGRAPH +0xD4F1 0x5D9D #CJK UNIFIED IDEOGRAPH +0xD4F2 0x6A59 #CJK UNIFIED IDEOGRAPH +0xD4F3 0x71C8 #CJK UNIFIED IDEOGRAPH +0xD4F4 0x767B #CJK UNIFIED IDEOGRAPH +0xD4F5 0x7B49 #CJK UNIFIED IDEOGRAPH +0xD4F6 0x85E4 #CJK UNIFIED IDEOGRAPH +0xD4F7 0x8B04 #CJK UNIFIED IDEOGRAPH +0xD4F8 0x9127 #CJK UNIFIED IDEOGRAPH +0xD4F9 0x9A30 #CJK UNIFIED IDEOGRAPH +0xD4FA 0x5587 #CJK UNIFIED IDEOGRAPH +0xD4FB 0x61F6 #CJK UNIFIED IDEOGRAPH +0xD4FC 0xF95B #CJK COMPATIBILITY IDEOGRAPH +0xD4FD 0x7669 #CJK UNIFIED IDEOGRAPH +0xD4FE 0x7F85 #CJK UNIFIED IDEOGRAPH +0xD5A1 0x863F #CJK UNIFIED IDEOGRAPH +0xD5A2 0x87BA #CJK UNIFIED IDEOGRAPH +0xD5A3 0x88F8 #CJK UNIFIED IDEOGRAPH +0xD5A4 0x908F #CJK UNIFIED IDEOGRAPH +0xD5A5 0xF95C #CJK COMPATIBILITY IDEOGRAPH +0xD5A6 0x6D1B #CJK UNIFIED IDEOGRAPH +0xD5A7 0x70D9 #CJK UNIFIED IDEOGRAPH +0xD5A8 0x73DE #CJK UNIFIED IDEOGRAPH +0xD5A9 0x7D61 #CJK UNIFIED IDEOGRAPH +0xD5AA 0x843D #CJK UNIFIED IDEOGRAPH +0xD5AB 0xF95D #CJK COMPATIBILITY IDEOGRAPH +0xD5AC 0x916A #CJK UNIFIED IDEOGRAPH +0xD5AD 0x99F1 #CJK UNIFIED IDEOGRAPH +0xD5AE 0xF95E #CJK COMPATIBILITY IDEOGRAPH +0xD5AF 0x4E82 #CJK UNIFIED IDEOGRAPH +0xD5B0 0x5375 #CJK UNIFIED IDEOGRAPH +0xD5B1 0x6B04 #CJK UNIFIED IDEOGRAPH +0xD5B2 0x6B12 #CJK UNIFIED IDEOGRAPH +0xD5B3 0x703E #CJK UNIFIED IDEOGRAPH +0xD5B4 0x721B #CJK UNIFIED IDEOGRAPH +0xD5B5 0x862D #CJK UNIFIED IDEOGRAPH +0xD5B6 0x9E1E #CJK UNIFIED IDEOGRAPH +0xD5B7 0x524C #CJK UNIFIED IDEOGRAPH +0xD5B8 0x8FA3 #CJK UNIFIED IDEOGRAPH +0xD5B9 0x5D50 #CJK UNIFIED IDEOGRAPH +0xD5BA 0x64E5 #CJK UNIFIED IDEOGRAPH +0xD5BB 0x652C #CJK UNIFIED IDEOGRAPH +0xD5BC 0x6B16 #CJK UNIFIED IDEOGRAPH +0xD5BD 0x6FEB #CJK UNIFIED IDEOGRAPH +0xD5BE 0x7C43 #CJK UNIFIED IDEOGRAPH +0xD5BF 0x7E9C #CJK UNIFIED IDEOGRAPH +0xD5C0 0x85CD #CJK UNIFIED IDEOGRAPH +0xD5C1 0x8964 #CJK UNIFIED IDEOGRAPH +0xD5C2 0x89BD #CJK UNIFIED IDEOGRAPH +0xD5C3 0x62C9 #CJK UNIFIED IDEOGRAPH +0xD5C4 0x81D8 #CJK UNIFIED IDEOGRAPH +0xD5C5 0x881F #CJK UNIFIED IDEOGRAPH +0xD5C6 0x5ECA #CJK UNIFIED IDEOGRAPH +0xD5C7 0x6717 #CJK UNIFIED IDEOGRAPH +0xD5C8 0x6D6A #CJK UNIFIED IDEOGRAPH +0xD5C9 0x72FC #CJK UNIFIED IDEOGRAPH +0xD5CA 0x7405 #CJK UNIFIED IDEOGRAPH +0xD5CB 0x746F #CJK UNIFIED IDEOGRAPH +0xD5CC 0x8782 #CJK UNIFIED IDEOGRAPH +0xD5CD 0x90DE #CJK UNIFIED IDEOGRAPH +0xD5CE 0x4F86 #CJK UNIFIED IDEOGRAPH +0xD5CF 0x5D0D #CJK UNIFIED IDEOGRAPH +0xD5D0 0x5FA0 #CJK UNIFIED IDEOGRAPH +0xD5D1 0x840A #CJK UNIFIED IDEOGRAPH +0xD5D2 0x51B7 #CJK UNIFIED IDEOGRAPH +0xD5D3 0x63A0 #CJK UNIFIED IDEOGRAPH +0xD5D4 0x7565 #CJK UNIFIED IDEOGRAPH +0xD5D5 0x4EAE #CJK UNIFIED IDEOGRAPH +0xD5D6 0x5006 #CJK UNIFIED IDEOGRAPH +0xD5D7 0x5169 #CJK UNIFIED IDEOGRAPH +0xD5D8 0x51C9 #CJK UNIFIED IDEOGRAPH +0xD5D9 0x6881 #CJK UNIFIED IDEOGRAPH +0xD5DA 0x6A11 #CJK UNIFIED IDEOGRAPH +0xD5DB 0x7CAE #CJK UNIFIED IDEOGRAPH +0xD5DC 0x7CB1 #CJK UNIFIED IDEOGRAPH +0xD5DD 0x7CE7 #CJK UNIFIED IDEOGRAPH +0xD5DE 0x826F #CJK UNIFIED IDEOGRAPH +0xD5DF 0x8AD2 #CJK UNIFIED IDEOGRAPH +0xD5E0 0x8F1B #CJK UNIFIED IDEOGRAPH +0xD5E1 0x91CF #CJK UNIFIED IDEOGRAPH +0xD5E2 0x4FB6 #CJK UNIFIED IDEOGRAPH +0xD5E3 0x5137 #CJK UNIFIED IDEOGRAPH +0xD5E4 0x52F5 #CJK UNIFIED IDEOGRAPH +0xD5E5 0x5442 #CJK UNIFIED IDEOGRAPH +0xD5E6 0x5EEC #CJK UNIFIED IDEOGRAPH +0xD5E7 0x616E #CJK UNIFIED IDEOGRAPH +0xD5E8 0x623E #CJK UNIFIED IDEOGRAPH +0xD5E9 0x65C5 #CJK UNIFIED IDEOGRAPH +0xD5EA 0x6ADA #CJK UNIFIED IDEOGRAPH +0xD5EB 0x6FFE #CJK UNIFIED IDEOGRAPH +0xD5EC 0x792A #CJK UNIFIED IDEOGRAPH +0xD5ED 0x85DC #CJK UNIFIED IDEOGRAPH +0xD5EE 0x8823 #CJK UNIFIED IDEOGRAPH +0xD5EF 0x95AD #CJK UNIFIED IDEOGRAPH +0xD5F0 0x9A62 #CJK UNIFIED IDEOGRAPH +0xD5F1 0x9A6A #CJK UNIFIED IDEOGRAPH +0xD5F2 0x9E97 #CJK UNIFIED IDEOGRAPH +0xD5F3 0x9ECE #CJK UNIFIED IDEOGRAPH +0xD5F4 0x529B #CJK UNIFIED IDEOGRAPH +0xD5F5 0x66C6 #CJK UNIFIED IDEOGRAPH +0xD5F6 0x6B77 #CJK UNIFIED IDEOGRAPH +0xD5F7 0x701D #CJK UNIFIED IDEOGRAPH +0xD5F8 0x792B #CJK UNIFIED IDEOGRAPH +0xD5F9 0x8F62 #CJK UNIFIED IDEOGRAPH +0xD5FA 0x9742 #CJK UNIFIED IDEOGRAPH +0xD5FB 0x6190 #CJK UNIFIED IDEOGRAPH +0xD5FC 0x6200 #CJK UNIFIED IDEOGRAPH +0xD5FD 0x6523 #CJK UNIFIED IDEOGRAPH +0xD5FE 0x6F23 #CJK UNIFIED IDEOGRAPH +0xD6A1 0x7149 #CJK UNIFIED IDEOGRAPH +0xD6A2 0x7489 #CJK UNIFIED IDEOGRAPH +0xD6A3 0x7DF4 #CJK UNIFIED IDEOGRAPH +0xD6A4 0x806F #CJK UNIFIED IDEOGRAPH +0xD6A5 0x84EE #CJK UNIFIED IDEOGRAPH +0xD6A6 0x8F26 #CJK UNIFIED IDEOGRAPH +0xD6A7 0x9023 #CJK UNIFIED IDEOGRAPH +0xD6A8 0x934A #CJK UNIFIED IDEOGRAPH +0xD6A9 0x51BD #CJK UNIFIED IDEOGRAPH +0xD6AA 0x5217 #CJK UNIFIED IDEOGRAPH +0xD6AB 0x52A3 #CJK UNIFIED IDEOGRAPH +0xD6AC 0x6D0C #CJK UNIFIED IDEOGRAPH +0xD6AD 0x70C8 #CJK UNIFIED IDEOGRAPH +0xD6AE 0x88C2 #CJK UNIFIED IDEOGRAPH +0xD6AF 0x5EC9 #CJK UNIFIED IDEOGRAPH +0xD6B0 0x6582 #CJK UNIFIED IDEOGRAPH +0xD6B1 0x6BAE #CJK UNIFIED IDEOGRAPH +0xD6B2 0x6FC2 #CJK UNIFIED IDEOGRAPH +0xD6B3 0x7C3E #CJK UNIFIED IDEOGRAPH +0xD6B4 0x7375 #CJK UNIFIED IDEOGRAPH +0xD6B5 0x4EE4 #CJK UNIFIED IDEOGRAPH +0xD6B6 0x4F36 #CJK UNIFIED IDEOGRAPH +0xD6B7 0x56F9 #CJK UNIFIED IDEOGRAPH +0xD6B8 0xF95F #CJK COMPATIBILITY IDEOGRAPH +0xD6B9 0x5CBA #CJK UNIFIED IDEOGRAPH +0xD6BA 0x5DBA #CJK UNIFIED IDEOGRAPH +0xD6BB 0x601C #CJK UNIFIED IDEOGRAPH +0xD6BC 0x73B2 #CJK UNIFIED IDEOGRAPH +0xD6BD 0x7B2D #CJK UNIFIED IDEOGRAPH +0xD6BE 0x7F9A #CJK UNIFIED IDEOGRAPH +0xD6BF 0x7FCE #CJK UNIFIED IDEOGRAPH +0xD6C0 0x8046 #CJK UNIFIED IDEOGRAPH +0xD6C1 0x901E #CJK UNIFIED IDEOGRAPH +0xD6C2 0x9234 #CJK UNIFIED IDEOGRAPH +0xD6C3 0x96F6 #CJK UNIFIED IDEOGRAPH +0xD6C4 0x9748 #CJK UNIFIED IDEOGRAPH +0xD6C5 0x9818 #CJK UNIFIED IDEOGRAPH +0xD6C6 0x9F61 #CJK UNIFIED IDEOGRAPH +0xD6C7 0x4F8B #CJK UNIFIED IDEOGRAPH +0xD6C8 0x6FA7 #CJK UNIFIED IDEOGRAPH +0xD6C9 0x79AE #CJK UNIFIED IDEOGRAPH +0xD6CA 0x91B4 #CJK UNIFIED IDEOGRAPH +0xD6CB 0x96B7 #CJK UNIFIED IDEOGRAPH +0xD6CC 0x52DE #CJK UNIFIED IDEOGRAPH +0xD6CD 0xF960 #CJK COMPATIBILITY IDEOGRAPH +0xD6CE 0x6488 #CJK UNIFIED IDEOGRAPH +0xD6CF 0x64C4 #CJK UNIFIED IDEOGRAPH +0xD6D0 0x6AD3 #CJK UNIFIED IDEOGRAPH +0xD6D1 0x6F5E #CJK UNIFIED IDEOGRAPH +0xD6D2 0x7018 #CJK UNIFIED IDEOGRAPH +0xD6D3 0x7210 #CJK UNIFIED IDEOGRAPH +0xD6D4 0x76E7 #CJK UNIFIED IDEOGRAPH +0xD6D5 0x8001 #CJK UNIFIED IDEOGRAPH +0xD6D6 0x8606 #CJK UNIFIED IDEOGRAPH +0xD6D7 0x865C #CJK UNIFIED IDEOGRAPH +0xD6D8 0x8DEF #CJK UNIFIED IDEOGRAPH +0xD6D9 0x8F05 #CJK UNIFIED IDEOGRAPH +0xD6DA 0x9732 #CJK UNIFIED IDEOGRAPH +0xD6DB 0x9B6F #CJK UNIFIED IDEOGRAPH +0xD6DC 0x9DFA #CJK UNIFIED IDEOGRAPH +0xD6DD 0x9E75 #CJK UNIFIED IDEOGRAPH +0xD6DE 0x788C #CJK UNIFIED IDEOGRAPH +0xD6DF 0x797F #CJK UNIFIED IDEOGRAPH +0xD6E0 0x7DA0 #CJK UNIFIED IDEOGRAPH +0xD6E1 0x83C9 #CJK UNIFIED IDEOGRAPH +0xD6E2 0x9304 #CJK UNIFIED IDEOGRAPH +0xD6E3 0x9E7F #CJK UNIFIED IDEOGRAPH +0xD6E4 0x9E93 #CJK UNIFIED IDEOGRAPH +0xD6E5 0x8AD6 #CJK UNIFIED IDEOGRAPH +0xD6E6 0x58DF #CJK UNIFIED IDEOGRAPH +0xD6E7 0x5F04 #CJK UNIFIED IDEOGRAPH +0xD6E8 0x6727 #CJK UNIFIED IDEOGRAPH +0xD6E9 0x7027 #CJK UNIFIED IDEOGRAPH +0xD6EA 0x74CF #CJK UNIFIED IDEOGRAPH +0xD6EB 0x7C60 #CJK UNIFIED IDEOGRAPH +0xD6EC 0x807E #CJK UNIFIED IDEOGRAPH +0xD6ED 0x5121 #CJK UNIFIED IDEOGRAPH +0xD6EE 0x7028 #CJK UNIFIED IDEOGRAPH +0xD6EF 0x7262 #CJK UNIFIED IDEOGRAPH +0xD6F0 0x78CA #CJK UNIFIED IDEOGRAPH +0xD6F1 0x8CC2 #CJK UNIFIED IDEOGRAPH +0xD6F2 0x8CDA #CJK UNIFIED IDEOGRAPH +0xD6F3 0x8CF4 #CJK UNIFIED IDEOGRAPH +0xD6F4 0x96F7 #CJK UNIFIED IDEOGRAPH +0xD6F5 0x4E86 #CJK UNIFIED IDEOGRAPH +0xD6F6 0x50DA #CJK UNIFIED IDEOGRAPH +0xD6F7 0x5BEE #CJK UNIFIED IDEOGRAPH +0xD6F8 0x5ED6 #CJK UNIFIED IDEOGRAPH +0xD6F9 0x6599 #CJK UNIFIED IDEOGRAPH +0xD6FA 0x71CE #CJK UNIFIED IDEOGRAPH +0xD6FB 0x7642 #CJK UNIFIED IDEOGRAPH +0xD6FC 0x77AD #CJK UNIFIED IDEOGRAPH +0xD6FD 0x804A #CJK UNIFIED IDEOGRAPH +0xD6FE 0x84FC #CJK UNIFIED IDEOGRAPH +0xD7A1 0x907C #CJK UNIFIED IDEOGRAPH +0xD7A2 0x9B27 #CJK UNIFIED IDEOGRAPH +0xD7A3 0x9F8D #CJK UNIFIED IDEOGRAPH +0xD7A4 0x58D8 #CJK UNIFIED IDEOGRAPH +0xD7A5 0x5A41 #CJK UNIFIED IDEOGRAPH +0xD7A6 0x5C62 #CJK UNIFIED IDEOGRAPH +0xD7A7 0x6A13 #CJK UNIFIED IDEOGRAPH +0xD7A8 0x6DDA #CJK UNIFIED IDEOGRAPH +0xD7A9 0x6F0F #CJK UNIFIED IDEOGRAPH +0xD7AA 0x763B #CJK UNIFIED IDEOGRAPH +0xD7AB 0x7D2F #CJK UNIFIED IDEOGRAPH +0xD7AC 0x7E37 #CJK UNIFIED IDEOGRAPH +0xD7AD 0x851E #CJK UNIFIED IDEOGRAPH +0xD7AE 0x8938 #CJK UNIFIED IDEOGRAPH +0xD7AF 0x93E4 #CJK UNIFIED IDEOGRAPH +0xD7B0 0x964B #CJK UNIFIED IDEOGRAPH +0xD7B1 0x5289 #CJK UNIFIED IDEOGRAPH +0xD7B2 0x65D2 #CJK UNIFIED IDEOGRAPH +0xD7B3 0x67F3 #CJK UNIFIED IDEOGRAPH +0xD7B4 0x69B4 #CJK UNIFIED IDEOGRAPH +0xD7B5 0x6D41 #CJK UNIFIED IDEOGRAPH +0xD7B6 0x6E9C #CJK UNIFIED IDEOGRAPH +0xD7B7 0x700F #CJK UNIFIED IDEOGRAPH +0xD7B8 0x7409 #CJK UNIFIED IDEOGRAPH +0xD7B9 0x7460 #CJK UNIFIED IDEOGRAPH +0xD7BA 0x7559 #CJK UNIFIED IDEOGRAPH +0xD7BB 0x7624 #CJK UNIFIED IDEOGRAPH +0xD7BC 0x786B #CJK UNIFIED IDEOGRAPH +0xD7BD 0x8B2C #CJK UNIFIED IDEOGRAPH +0xD7BE 0x985E #CJK UNIFIED IDEOGRAPH +0xD7BF 0x516D #CJK UNIFIED IDEOGRAPH +0xD7C0 0x622E #CJK UNIFIED IDEOGRAPH +0xD7C1 0x9678 #CJK UNIFIED IDEOGRAPH +0xD7C2 0x4F96 #CJK UNIFIED IDEOGRAPH +0xD7C3 0x502B #CJK UNIFIED IDEOGRAPH +0xD7C4 0x5D19 #CJK UNIFIED IDEOGRAPH +0xD7C5 0x6DEA #CJK UNIFIED IDEOGRAPH +0xD7C6 0x7DB8 #CJK UNIFIED IDEOGRAPH +0xD7C7 0x8F2A #CJK UNIFIED IDEOGRAPH +0xD7C8 0x5F8B #CJK UNIFIED IDEOGRAPH +0xD7C9 0x6144 #CJK UNIFIED IDEOGRAPH +0xD7CA 0x6817 #CJK UNIFIED IDEOGRAPH +0xD7CB 0xF961 #CJK COMPATIBILITY IDEOGRAPH +0xD7CC 0x9686 #CJK UNIFIED IDEOGRAPH +0xD7CD 0x52D2 #CJK UNIFIED IDEOGRAPH +0xD7CE 0x808B #CJK UNIFIED IDEOGRAPH +0xD7CF 0x51DC #CJK UNIFIED IDEOGRAPH +0xD7D0 0x51CC #CJK UNIFIED IDEOGRAPH +0xD7D1 0x695E #CJK UNIFIED IDEOGRAPH +0xD7D2 0x7A1C #CJK UNIFIED IDEOGRAPH +0xD7D3 0x7DBE #CJK UNIFIED IDEOGRAPH +0xD7D4 0x83F1 #CJK UNIFIED IDEOGRAPH +0xD7D5 0x9675 #CJK UNIFIED IDEOGRAPH +0xD7D6 0x4FDA #CJK UNIFIED IDEOGRAPH +0xD7D7 0x5229 #CJK UNIFIED IDEOGRAPH +0xD7D8 0x5398 #CJK UNIFIED IDEOGRAPH +0xD7D9 0x540F #CJK UNIFIED IDEOGRAPH +0xD7DA 0x550E #CJK UNIFIED IDEOGRAPH +0xD7DB 0x5C65 #CJK UNIFIED IDEOGRAPH +0xD7DC 0x60A7 #CJK UNIFIED IDEOGRAPH +0xD7DD 0x674E #CJK UNIFIED IDEOGRAPH +0xD7DE 0x68A8 #CJK UNIFIED IDEOGRAPH +0xD7DF 0x6D6C #CJK UNIFIED IDEOGRAPH +0xD7E0 0x7281 #CJK UNIFIED IDEOGRAPH +0xD7E1 0x72F8 #CJK UNIFIED IDEOGRAPH +0xD7E2 0x7406 #CJK UNIFIED IDEOGRAPH +0xD7E3 0x7483 #CJK UNIFIED IDEOGRAPH +0xD7E4 0xF962 #CJK COMPATIBILITY IDEOGRAPH +0xD7E5 0x75E2 #CJK UNIFIED IDEOGRAPH +0xD7E6 0x7C6C #CJK UNIFIED IDEOGRAPH +0xD7E7 0x7F79 #CJK UNIFIED IDEOGRAPH +0xD7E8 0x7FB8 #CJK UNIFIED IDEOGRAPH +0xD7E9 0x8389 #CJK UNIFIED IDEOGRAPH +0xD7EA 0x88CF #CJK UNIFIED IDEOGRAPH +0xD7EB 0x88E1 #CJK UNIFIED IDEOGRAPH +0xD7EC 0x91CC #CJK UNIFIED IDEOGRAPH +0xD7ED 0x91D0 #CJK UNIFIED IDEOGRAPH +0xD7EE 0x96E2 #CJK UNIFIED IDEOGRAPH +0xD7EF 0x9BC9 #CJK UNIFIED IDEOGRAPH +0xD7F0 0x541D #CJK UNIFIED IDEOGRAPH +0xD7F1 0x6F7E #CJK UNIFIED IDEOGRAPH +0xD7F2 0x71D0 #CJK UNIFIED IDEOGRAPH +0xD7F3 0x7498 #CJK UNIFIED IDEOGRAPH +0xD7F4 0x85FA #CJK UNIFIED IDEOGRAPH +0xD7F5 0x8EAA #CJK UNIFIED IDEOGRAPH +0xD7F6 0x96A3 #CJK UNIFIED IDEOGRAPH +0xD7F7 0x9C57 #CJK UNIFIED IDEOGRAPH +0xD7F8 0x9E9F #CJK UNIFIED IDEOGRAPH +0xD7F9 0x6797 #CJK UNIFIED IDEOGRAPH +0xD7FA 0x6DCB #CJK UNIFIED IDEOGRAPH +0xD7FB 0x7433 #CJK UNIFIED IDEOGRAPH +0xD7FC 0x81E8 #CJK UNIFIED IDEOGRAPH +0xD7FD 0x9716 #CJK UNIFIED IDEOGRAPH +0xD7FE 0x782C #CJK UNIFIED IDEOGRAPH +0xD8A1 0x7ACB #CJK UNIFIED IDEOGRAPH +0xD8A2 0x7B20 #CJK UNIFIED IDEOGRAPH +0xD8A3 0x7C92 #CJK UNIFIED IDEOGRAPH +0xD8A4 0x6469 #CJK UNIFIED IDEOGRAPH +0xD8A5 0x746A #CJK UNIFIED IDEOGRAPH +0xD8A6 0x75F2 #CJK UNIFIED IDEOGRAPH +0xD8A7 0x78BC #CJK UNIFIED IDEOGRAPH +0xD8A8 0x78E8 #CJK UNIFIED IDEOGRAPH +0xD8A9 0x99AC #CJK UNIFIED IDEOGRAPH +0xD8AA 0x9B54 #CJK UNIFIED IDEOGRAPH +0xD8AB 0x9EBB #CJK UNIFIED IDEOGRAPH +0xD8AC 0x5BDE #CJK UNIFIED IDEOGRAPH +0xD8AD 0x5E55 #CJK UNIFIED IDEOGRAPH +0xD8AE 0x6F20 #CJK UNIFIED IDEOGRAPH +0xD8AF 0x819C #CJK UNIFIED IDEOGRAPH +0xD8B0 0x83AB #CJK UNIFIED IDEOGRAPH +0xD8B1 0x9088 #CJK UNIFIED IDEOGRAPH +0xD8B2 0x4E07 #CJK UNIFIED IDEOGRAPH +0xD8B3 0x534D #CJK UNIFIED IDEOGRAPH +0xD8B4 0x5A29 #CJK UNIFIED IDEOGRAPH +0xD8B5 0x5DD2 #CJK UNIFIED IDEOGRAPH +0xD8B6 0x5F4E #CJK UNIFIED IDEOGRAPH +0xD8B7 0x6162 #CJK UNIFIED IDEOGRAPH +0xD8B8 0x633D #CJK UNIFIED IDEOGRAPH +0xD8B9 0x6669 #CJK UNIFIED IDEOGRAPH +0xD8BA 0x66FC #CJK UNIFIED IDEOGRAPH +0xD8BB 0x6EFF #CJK UNIFIED IDEOGRAPH +0xD8BC 0x6F2B #CJK UNIFIED IDEOGRAPH +0xD8BD 0x7063 #CJK UNIFIED IDEOGRAPH +0xD8BE 0x779E #CJK UNIFIED IDEOGRAPH +0xD8BF 0x842C #CJK UNIFIED IDEOGRAPH +0xD8C0 0x8513 #CJK UNIFIED IDEOGRAPH +0xD8C1 0x883B #CJK UNIFIED IDEOGRAPH +0xD8C2 0x8F13 #CJK UNIFIED IDEOGRAPH +0xD8C3 0x9945 #CJK UNIFIED IDEOGRAPH +0xD8C4 0x9C3B #CJK UNIFIED IDEOGRAPH +0xD8C5 0x551C #CJK UNIFIED IDEOGRAPH +0xD8C6 0x62B9 #CJK UNIFIED IDEOGRAPH +0xD8C7 0x672B #CJK UNIFIED IDEOGRAPH +0xD8C8 0x6CAB #CJK UNIFIED IDEOGRAPH +0xD8C9 0x8309 #CJK UNIFIED IDEOGRAPH +0xD8CA 0x896A #CJK UNIFIED IDEOGRAPH +0xD8CB 0x977A #CJK UNIFIED IDEOGRAPH +0xD8CC 0x4EA1 #CJK UNIFIED IDEOGRAPH +0xD8CD 0x5984 #CJK UNIFIED IDEOGRAPH +0xD8CE 0x5FD8 #CJK UNIFIED IDEOGRAPH +0xD8CF 0x5FD9 #CJK UNIFIED IDEOGRAPH +0xD8D0 0x671B #CJK UNIFIED IDEOGRAPH +0xD8D1 0x7DB2 #CJK UNIFIED IDEOGRAPH +0xD8D2 0x7F54 #CJK UNIFIED IDEOGRAPH +0xD8D3 0x8292 #CJK UNIFIED IDEOGRAPH +0xD8D4 0x832B #CJK UNIFIED IDEOGRAPH +0xD8D5 0x83BD #CJK UNIFIED IDEOGRAPH +0xD8D6 0x8F1E #CJK UNIFIED IDEOGRAPH +0xD8D7 0x9099 #CJK UNIFIED IDEOGRAPH +0xD8D8 0x57CB #CJK UNIFIED IDEOGRAPH +0xD8D9 0x59B9 #CJK UNIFIED IDEOGRAPH +0xD8DA 0x5A92 #CJK UNIFIED IDEOGRAPH +0xD8DB 0x5BD0 #CJK UNIFIED IDEOGRAPH +0xD8DC 0x6627 #CJK UNIFIED IDEOGRAPH +0xD8DD 0x679A #CJK UNIFIED IDEOGRAPH +0xD8DE 0x6885 #CJK UNIFIED IDEOGRAPH +0xD8DF 0x6BCF #CJK UNIFIED IDEOGRAPH +0xD8E0 0x7164 #CJK UNIFIED IDEOGRAPH +0xD8E1 0x7F75 #CJK UNIFIED IDEOGRAPH +0xD8E2 0x8CB7 #CJK UNIFIED IDEOGRAPH +0xD8E3 0x8CE3 #CJK UNIFIED IDEOGRAPH +0xD8E4 0x9081 #CJK UNIFIED IDEOGRAPH +0xD8E5 0x9B45 #CJK UNIFIED IDEOGRAPH +0xD8E6 0x8108 #CJK UNIFIED IDEOGRAPH +0xD8E7 0x8C8A #CJK UNIFIED IDEOGRAPH +0xD8E8 0x964C #CJK UNIFIED IDEOGRAPH +0xD8E9 0x9A40 #CJK UNIFIED IDEOGRAPH +0xD8EA 0x9EA5 #CJK UNIFIED IDEOGRAPH +0xD8EB 0x5B5F #CJK UNIFIED IDEOGRAPH +0xD8EC 0x6C13 #CJK UNIFIED IDEOGRAPH +0xD8ED 0x731B #CJK UNIFIED IDEOGRAPH +0xD8EE 0x76F2 #CJK UNIFIED IDEOGRAPH +0xD8EF 0x76DF #CJK UNIFIED IDEOGRAPH +0xD8F0 0x840C #CJK UNIFIED IDEOGRAPH +0xD8F1 0x51AA #CJK UNIFIED IDEOGRAPH +0xD8F2 0x8993 #CJK UNIFIED IDEOGRAPH +0xD8F3 0x514D #CJK UNIFIED IDEOGRAPH +0xD8F4 0x5195 #CJK UNIFIED IDEOGRAPH +0xD8F5 0x52C9 #CJK UNIFIED IDEOGRAPH +0xD8F6 0x68C9 #CJK UNIFIED IDEOGRAPH +0xD8F7 0x6C94 #CJK UNIFIED IDEOGRAPH +0xD8F8 0x7704 #CJK UNIFIED IDEOGRAPH +0xD8F9 0x7720 #CJK UNIFIED IDEOGRAPH +0xD8FA 0x7DBF #CJK UNIFIED IDEOGRAPH +0xD8FB 0x7DEC #CJK UNIFIED IDEOGRAPH +0xD8FC 0x9762 #CJK UNIFIED IDEOGRAPH +0xD8FD 0x9EB5 #CJK UNIFIED IDEOGRAPH +0xD8FE 0x6EC5 #CJK UNIFIED IDEOGRAPH +0xD9A1 0x8511 #CJK UNIFIED IDEOGRAPH +0xD9A2 0x51A5 #CJK UNIFIED IDEOGRAPH +0xD9A3 0x540D #CJK UNIFIED IDEOGRAPH +0xD9A4 0x547D #CJK UNIFIED IDEOGRAPH +0xD9A5 0x660E #CJK UNIFIED IDEOGRAPH +0xD9A6 0x669D #CJK UNIFIED IDEOGRAPH +0xD9A7 0x6927 #CJK UNIFIED IDEOGRAPH +0xD9A8 0x6E9F #CJK UNIFIED IDEOGRAPH +0xD9A9 0x76BF #CJK UNIFIED IDEOGRAPH +0xD9AA 0x7791 #CJK UNIFIED IDEOGRAPH +0xD9AB 0x8317 #CJK UNIFIED IDEOGRAPH +0xD9AC 0x84C2 #CJK UNIFIED IDEOGRAPH +0xD9AD 0x879F #CJK UNIFIED IDEOGRAPH +0xD9AE 0x9169 #CJK UNIFIED IDEOGRAPH +0xD9AF 0x9298 #CJK UNIFIED IDEOGRAPH +0xD9B0 0x9CF4 #CJK UNIFIED IDEOGRAPH +0xD9B1 0x8882 #CJK UNIFIED IDEOGRAPH +0xD9B2 0x4FAE #CJK UNIFIED IDEOGRAPH +0xD9B3 0x5192 #CJK UNIFIED IDEOGRAPH +0xD9B4 0x52DF #CJK UNIFIED IDEOGRAPH +0xD9B5 0x59C6 #CJK UNIFIED IDEOGRAPH +0xD9B6 0x5E3D #CJK UNIFIED IDEOGRAPH +0xD9B7 0x6155 #CJK UNIFIED IDEOGRAPH +0xD9B8 0x6478 #CJK UNIFIED IDEOGRAPH +0xD9B9 0x6479 #CJK UNIFIED IDEOGRAPH +0xD9BA 0x66AE #CJK UNIFIED IDEOGRAPH +0xD9BB 0x67D0 #CJK UNIFIED IDEOGRAPH +0xD9BC 0x6A21 #CJK UNIFIED IDEOGRAPH +0xD9BD 0x6BCD #CJK UNIFIED IDEOGRAPH +0xD9BE 0x6BDB #CJK UNIFIED IDEOGRAPH +0xD9BF 0x725F #CJK UNIFIED IDEOGRAPH +0xD9C0 0x7261 #CJK UNIFIED IDEOGRAPH +0xD9C1 0x7441 #CJK UNIFIED IDEOGRAPH +0xD9C2 0x7738 #CJK UNIFIED IDEOGRAPH +0xD9C3 0x77DB #CJK UNIFIED IDEOGRAPH +0xD9C4 0x8017 #CJK UNIFIED IDEOGRAPH +0xD9C5 0x82BC #CJK UNIFIED IDEOGRAPH +0xD9C6 0x8305 #CJK UNIFIED IDEOGRAPH +0xD9C7 0x8B00 #CJK UNIFIED IDEOGRAPH +0xD9C8 0x8B28 #CJK UNIFIED IDEOGRAPH +0xD9C9 0x8C8C #CJK UNIFIED IDEOGRAPH +0xD9CA 0x6728 #CJK UNIFIED IDEOGRAPH +0xD9CB 0x6C90 #CJK UNIFIED IDEOGRAPH +0xD9CC 0x7267 #CJK UNIFIED IDEOGRAPH +0xD9CD 0x76EE #CJK UNIFIED IDEOGRAPH +0xD9CE 0x7766 #CJK UNIFIED IDEOGRAPH +0xD9CF 0x7A46 #CJK UNIFIED IDEOGRAPH +0xD9D0 0x9DA9 #CJK UNIFIED IDEOGRAPH +0xD9D1 0x6B7F #CJK UNIFIED IDEOGRAPH +0xD9D2 0x6C92 #CJK UNIFIED IDEOGRAPH +0xD9D3 0x5922 #CJK UNIFIED IDEOGRAPH +0xD9D4 0x6726 #CJK UNIFIED IDEOGRAPH +0xD9D5 0x8499 #CJK UNIFIED IDEOGRAPH +0xD9D6 0x536F #CJK UNIFIED IDEOGRAPH +0xD9D7 0x5893 #CJK UNIFIED IDEOGRAPH +0xD9D8 0x5999 #CJK UNIFIED IDEOGRAPH +0xD9D9 0x5EDF #CJK UNIFIED IDEOGRAPH +0xD9DA 0x63CF #CJK UNIFIED IDEOGRAPH +0xD9DB 0x6634 #CJK UNIFIED IDEOGRAPH +0xD9DC 0x6773 #CJK UNIFIED IDEOGRAPH +0xD9DD 0x6E3A #CJK UNIFIED IDEOGRAPH +0xD9DE 0x732B #CJK UNIFIED IDEOGRAPH +0xD9DF 0x7AD7 #CJK UNIFIED IDEOGRAPH +0xD9E0 0x82D7 #CJK UNIFIED IDEOGRAPH +0xD9E1 0x9328 #CJK UNIFIED IDEOGRAPH +0xD9E2 0x52D9 #CJK UNIFIED IDEOGRAPH +0xD9E3 0x5DEB #CJK UNIFIED IDEOGRAPH +0xD9E4 0x61AE #CJK UNIFIED IDEOGRAPH +0xD9E5 0x61CB #CJK UNIFIED IDEOGRAPH +0xD9E6 0x620A #CJK UNIFIED IDEOGRAPH +0xD9E7 0x62C7 #CJK UNIFIED IDEOGRAPH +0xD9E8 0x64AB #CJK UNIFIED IDEOGRAPH +0xD9E9 0x65E0 #CJK UNIFIED IDEOGRAPH +0xD9EA 0x6959 #CJK UNIFIED IDEOGRAPH +0xD9EB 0x6B66 #CJK UNIFIED IDEOGRAPH +0xD9EC 0x6BCB #CJK UNIFIED IDEOGRAPH +0xD9ED 0x7121 #CJK UNIFIED IDEOGRAPH +0xD9EE 0x73F7 #CJK UNIFIED IDEOGRAPH +0xD9EF 0x755D #CJK UNIFIED IDEOGRAPH +0xD9F0 0x7E46 #CJK UNIFIED IDEOGRAPH +0xD9F1 0x821E #CJK UNIFIED IDEOGRAPH +0xD9F2 0x8302 #CJK UNIFIED IDEOGRAPH +0xD9F3 0x856A #CJK UNIFIED IDEOGRAPH +0xD9F4 0x8AA3 #CJK UNIFIED IDEOGRAPH +0xD9F5 0x8CBF #CJK UNIFIED IDEOGRAPH +0xD9F6 0x9727 #CJK UNIFIED IDEOGRAPH +0xD9F7 0x9D61 #CJK UNIFIED IDEOGRAPH +0xD9F8 0x58A8 #CJK UNIFIED IDEOGRAPH +0xD9F9 0x9ED8 #CJK UNIFIED IDEOGRAPH +0xD9FA 0x5011 #CJK UNIFIED IDEOGRAPH +0xD9FB 0x520E #CJK UNIFIED IDEOGRAPH +0xD9FC 0x543B #CJK UNIFIED IDEOGRAPH +0xD9FD 0x554F #CJK UNIFIED IDEOGRAPH +0xD9FE 0x6587 #CJK UNIFIED IDEOGRAPH +0xDAA1 0x6C76 #CJK UNIFIED IDEOGRAPH +0xDAA2 0x7D0A #CJK UNIFIED IDEOGRAPH +0xDAA3 0x7D0B #CJK UNIFIED IDEOGRAPH +0xDAA4 0x805E #CJK UNIFIED IDEOGRAPH +0xDAA5 0x868A #CJK UNIFIED IDEOGRAPH +0xDAA6 0x9580 #CJK UNIFIED IDEOGRAPH +0xDAA7 0x96EF #CJK UNIFIED IDEOGRAPH +0xDAA8 0x52FF #CJK UNIFIED IDEOGRAPH +0xDAA9 0x6C95 #CJK UNIFIED IDEOGRAPH +0xDAAA 0x7269 #CJK UNIFIED IDEOGRAPH +0xDAAB 0x5473 #CJK UNIFIED IDEOGRAPH +0xDAAC 0x5A9A #CJK UNIFIED IDEOGRAPH +0xDAAD 0x5C3E #CJK UNIFIED IDEOGRAPH +0xDAAE 0x5D4B #CJK UNIFIED IDEOGRAPH +0xDAAF 0x5F4C #CJK UNIFIED IDEOGRAPH +0xDAB0 0x5FAE #CJK UNIFIED IDEOGRAPH +0xDAB1 0x672A #CJK UNIFIED IDEOGRAPH +0xDAB2 0x68B6 #CJK UNIFIED IDEOGRAPH +0xDAB3 0x6963 #CJK UNIFIED IDEOGRAPH +0xDAB4 0x6E3C #CJK UNIFIED IDEOGRAPH +0xDAB5 0x6E44 #CJK UNIFIED IDEOGRAPH +0xDAB6 0x7709 #CJK UNIFIED IDEOGRAPH +0xDAB7 0x7C73 #CJK UNIFIED IDEOGRAPH +0xDAB8 0x7F8E #CJK UNIFIED IDEOGRAPH +0xDAB9 0x8587 #CJK UNIFIED IDEOGRAPH +0xDABA 0x8B0E #CJK UNIFIED IDEOGRAPH +0xDABB 0x8FF7 #CJK UNIFIED IDEOGRAPH +0xDABC 0x9761 #CJK UNIFIED IDEOGRAPH +0xDABD 0x9EF4 #CJK UNIFIED IDEOGRAPH +0xDABE 0x5CB7 #CJK UNIFIED IDEOGRAPH +0xDABF 0x60B6 #CJK UNIFIED IDEOGRAPH +0xDAC0 0x610D #CJK UNIFIED IDEOGRAPH +0xDAC1 0x61AB #CJK UNIFIED IDEOGRAPH +0xDAC2 0x654F #CJK UNIFIED IDEOGRAPH +0xDAC3 0x65FB #CJK UNIFIED IDEOGRAPH +0xDAC4 0x65FC #CJK UNIFIED IDEOGRAPH +0xDAC5 0x6C11 #CJK UNIFIED IDEOGRAPH +0xDAC6 0x6CEF #CJK UNIFIED IDEOGRAPH +0xDAC7 0x739F #CJK UNIFIED IDEOGRAPH +0xDAC8 0x73C9 #CJK UNIFIED IDEOGRAPH +0xDAC9 0x7DE1 #CJK UNIFIED IDEOGRAPH +0xDACA 0x9594 #CJK UNIFIED IDEOGRAPH +0xDACB 0x5BC6 #CJK UNIFIED IDEOGRAPH +0xDACC 0x871C #CJK UNIFIED IDEOGRAPH +0xDACD 0x8B10 #CJK UNIFIED IDEOGRAPH +0xDACE 0x525D #CJK UNIFIED IDEOGRAPH +0xDACF 0x535A #CJK UNIFIED IDEOGRAPH +0xDAD0 0x62CD #CJK UNIFIED IDEOGRAPH +0xDAD1 0x640F #CJK UNIFIED IDEOGRAPH +0xDAD2 0x64B2 #CJK UNIFIED IDEOGRAPH +0xDAD3 0x6734 #CJK UNIFIED IDEOGRAPH +0xDAD4 0x6A38 #CJK UNIFIED IDEOGRAPH +0xDAD5 0x6CCA #CJK UNIFIED IDEOGRAPH +0xDAD6 0x73C0 #CJK UNIFIED IDEOGRAPH +0xDAD7 0x749E #CJK UNIFIED IDEOGRAPH +0xDAD8 0x7B94 #CJK UNIFIED IDEOGRAPH +0xDAD9 0x7C95 #CJK UNIFIED IDEOGRAPH +0xDADA 0x7E1B #CJK UNIFIED IDEOGRAPH +0xDADB 0x818A #CJK UNIFIED IDEOGRAPH +0xDADC 0x8236 #CJK UNIFIED IDEOGRAPH +0xDADD 0x8584 #CJK UNIFIED IDEOGRAPH +0xDADE 0x8FEB #CJK UNIFIED IDEOGRAPH +0xDADF 0x96F9 #CJK UNIFIED IDEOGRAPH +0xDAE0 0x99C1 #CJK UNIFIED IDEOGRAPH +0xDAE1 0x4F34 #CJK UNIFIED IDEOGRAPH +0xDAE2 0x534A #CJK UNIFIED IDEOGRAPH +0xDAE3 0x53CD #CJK UNIFIED IDEOGRAPH +0xDAE4 0x53DB #CJK UNIFIED IDEOGRAPH +0xDAE5 0x62CC #CJK UNIFIED IDEOGRAPH +0xDAE6 0x642C #CJK UNIFIED IDEOGRAPH +0xDAE7 0x6500 #CJK UNIFIED IDEOGRAPH +0xDAE8 0x6591 #CJK UNIFIED IDEOGRAPH +0xDAE9 0x69C3 #CJK UNIFIED IDEOGRAPH +0xDAEA 0x6CEE #CJK UNIFIED IDEOGRAPH +0xDAEB 0x6F58 #CJK UNIFIED IDEOGRAPH +0xDAEC 0x73ED #CJK UNIFIED IDEOGRAPH +0xDAED 0x7554 #CJK UNIFIED IDEOGRAPH +0xDAEE 0x7622 #CJK UNIFIED IDEOGRAPH +0xDAEF 0x76E4 #CJK UNIFIED IDEOGRAPH +0xDAF0 0x76FC #CJK UNIFIED IDEOGRAPH +0xDAF1 0x78D0 #CJK UNIFIED IDEOGRAPH +0xDAF2 0x78FB #CJK UNIFIED IDEOGRAPH +0xDAF3 0x792C #CJK UNIFIED IDEOGRAPH +0xDAF4 0x7D46 #CJK UNIFIED IDEOGRAPH +0xDAF5 0x822C #CJK UNIFIED IDEOGRAPH +0xDAF6 0x87E0 #CJK UNIFIED IDEOGRAPH +0xDAF7 0x8FD4 #CJK UNIFIED IDEOGRAPH +0xDAF8 0x9812 #CJK UNIFIED IDEOGRAPH +0xDAF9 0x98EF #CJK UNIFIED IDEOGRAPH +0xDAFA 0x52C3 #CJK UNIFIED IDEOGRAPH +0xDAFB 0x62D4 #CJK UNIFIED IDEOGRAPH +0xDAFC 0x64A5 #CJK UNIFIED IDEOGRAPH +0xDAFD 0x6E24 #CJK UNIFIED IDEOGRAPH +0xDAFE 0x6F51 #CJK UNIFIED IDEOGRAPH +0xDBA1 0x767C #CJK UNIFIED IDEOGRAPH +0xDBA2 0x8DCB #CJK UNIFIED IDEOGRAPH +0xDBA3 0x91B1 #CJK UNIFIED IDEOGRAPH +0xDBA4 0x9262 #CJK UNIFIED IDEOGRAPH +0xDBA5 0x9AEE #CJK UNIFIED IDEOGRAPH +0xDBA6 0x9B43 #CJK UNIFIED IDEOGRAPH +0xDBA7 0x5023 #CJK UNIFIED IDEOGRAPH +0xDBA8 0x508D #CJK UNIFIED IDEOGRAPH +0xDBA9 0x574A #CJK UNIFIED IDEOGRAPH +0xDBAA 0x59A8 #CJK UNIFIED IDEOGRAPH +0xDBAB 0x5C28 #CJK UNIFIED IDEOGRAPH +0xDBAC 0x5E47 #CJK UNIFIED IDEOGRAPH +0xDBAD 0x5F77 #CJK UNIFIED IDEOGRAPH +0xDBAE 0x623F #CJK UNIFIED IDEOGRAPH +0xDBAF 0x653E #CJK UNIFIED IDEOGRAPH +0xDBB0 0x65B9 #CJK UNIFIED IDEOGRAPH +0xDBB1 0x65C1 #CJK UNIFIED IDEOGRAPH +0xDBB2 0x6609 #CJK UNIFIED IDEOGRAPH +0xDBB3 0x678B #CJK UNIFIED IDEOGRAPH +0xDBB4 0x699C #CJK UNIFIED IDEOGRAPH +0xDBB5 0x6EC2 #CJK UNIFIED IDEOGRAPH +0xDBB6 0x78C5 #CJK UNIFIED IDEOGRAPH +0xDBB7 0x7D21 #CJK UNIFIED IDEOGRAPH +0xDBB8 0x80AA #CJK UNIFIED IDEOGRAPH +0xDBB9 0x8180 #CJK UNIFIED IDEOGRAPH +0xDBBA 0x822B #CJK UNIFIED IDEOGRAPH +0xDBBB 0x82B3 #CJK UNIFIED IDEOGRAPH +0xDBBC 0x84A1 #CJK UNIFIED IDEOGRAPH +0xDBBD 0x868C #CJK UNIFIED IDEOGRAPH +0xDBBE 0x8A2A #CJK UNIFIED IDEOGRAPH +0xDBBF 0x8B17 #CJK UNIFIED IDEOGRAPH +0xDBC0 0x90A6 #CJK UNIFIED IDEOGRAPH +0xDBC1 0x9632 #CJK UNIFIED IDEOGRAPH +0xDBC2 0x9F90 #CJK UNIFIED IDEOGRAPH +0xDBC3 0x500D #CJK UNIFIED IDEOGRAPH +0xDBC4 0x4FF3 #CJK UNIFIED IDEOGRAPH +0xDBC5 0xF963 #CJK COMPATIBILITY IDEOGRAPH +0xDBC6 0x57F9 #CJK UNIFIED IDEOGRAPH +0xDBC7 0x5F98 #CJK UNIFIED IDEOGRAPH +0xDBC8 0x62DC #CJK UNIFIED IDEOGRAPH +0xDBC9 0x6392 #CJK UNIFIED IDEOGRAPH +0xDBCA 0x676F #CJK UNIFIED IDEOGRAPH +0xDBCB 0x6E43 #CJK UNIFIED IDEOGRAPH +0xDBCC 0x7119 #CJK UNIFIED IDEOGRAPH +0xDBCD 0x76C3 #CJK UNIFIED IDEOGRAPH +0xDBCE 0x80CC #CJK UNIFIED IDEOGRAPH +0xDBCF 0x80DA #CJK UNIFIED IDEOGRAPH +0xDBD0 0x88F4 #CJK UNIFIED IDEOGRAPH +0xDBD1 0x88F5 #CJK UNIFIED IDEOGRAPH +0xDBD2 0x8919 #CJK UNIFIED IDEOGRAPH +0xDBD3 0x8CE0 #CJK UNIFIED IDEOGRAPH +0xDBD4 0x8F29 #CJK UNIFIED IDEOGRAPH +0xDBD5 0x914D #CJK UNIFIED IDEOGRAPH +0xDBD6 0x966A #CJK UNIFIED IDEOGRAPH +0xDBD7 0x4F2F #CJK UNIFIED IDEOGRAPH +0xDBD8 0x4F70 #CJK UNIFIED IDEOGRAPH +0xDBD9 0x5E1B #CJK UNIFIED IDEOGRAPH +0xDBDA 0x67CF #CJK UNIFIED IDEOGRAPH +0xDBDB 0x6822 #CJK UNIFIED IDEOGRAPH +0xDBDC 0x767D #CJK UNIFIED IDEOGRAPH +0xDBDD 0x767E #CJK UNIFIED IDEOGRAPH +0xDBDE 0x9B44 #CJK UNIFIED IDEOGRAPH +0xDBDF 0x5E61 #CJK UNIFIED IDEOGRAPH +0xDBE0 0x6A0A #CJK UNIFIED IDEOGRAPH +0xDBE1 0x7169 #CJK UNIFIED IDEOGRAPH +0xDBE2 0x71D4 #CJK UNIFIED IDEOGRAPH +0xDBE3 0x756A #CJK UNIFIED IDEOGRAPH +0xDBE4 0xF964 #CJK COMPATIBILITY IDEOGRAPH +0xDBE5 0x7E41 #CJK UNIFIED IDEOGRAPH +0xDBE6 0x8543 #CJK UNIFIED IDEOGRAPH +0xDBE7 0x85E9 #CJK UNIFIED IDEOGRAPH +0xDBE8 0x98DC #CJK UNIFIED IDEOGRAPH +0xDBE9 0x4F10 #CJK UNIFIED IDEOGRAPH +0xDBEA 0x7B4F #CJK UNIFIED IDEOGRAPH +0xDBEB 0x7F70 #CJK UNIFIED IDEOGRAPH +0xDBEC 0x95A5 #CJK UNIFIED IDEOGRAPH +0xDBED 0x51E1 #CJK UNIFIED IDEOGRAPH +0xDBEE 0x5E06 #CJK UNIFIED IDEOGRAPH +0xDBEF 0x68B5 #CJK UNIFIED IDEOGRAPH +0xDBF0 0x6C3E #CJK UNIFIED IDEOGRAPH +0xDBF1 0x6C4E #CJK UNIFIED IDEOGRAPH +0xDBF2 0x6CDB #CJK UNIFIED IDEOGRAPH +0xDBF3 0x72AF #CJK UNIFIED IDEOGRAPH +0xDBF4 0x7BC4 #CJK UNIFIED IDEOGRAPH +0xDBF5 0x8303 #CJK UNIFIED IDEOGRAPH +0xDBF6 0x6CD5 #CJK UNIFIED IDEOGRAPH +0xDBF7 0x743A #CJK UNIFIED IDEOGRAPH +0xDBF8 0x50FB #CJK UNIFIED IDEOGRAPH +0xDBF9 0x5288 #CJK UNIFIED IDEOGRAPH +0xDBFA 0x58C1 #CJK UNIFIED IDEOGRAPH +0xDBFB 0x64D8 #CJK UNIFIED IDEOGRAPH +0xDBFC 0x6A97 #CJK UNIFIED IDEOGRAPH +0xDBFD 0x74A7 #CJK UNIFIED IDEOGRAPH +0xDBFE 0x7656 #CJK UNIFIED IDEOGRAPH +0xDCA1 0x78A7 #CJK UNIFIED IDEOGRAPH +0xDCA2 0x8617 #CJK UNIFIED IDEOGRAPH +0xDCA3 0x95E2 #CJK UNIFIED IDEOGRAPH +0xDCA4 0x9739 #CJK UNIFIED IDEOGRAPH +0xDCA5 0xF965 #CJK COMPATIBILITY IDEOGRAPH +0xDCA6 0x535E #CJK UNIFIED IDEOGRAPH +0xDCA7 0x5F01 #CJK UNIFIED IDEOGRAPH +0xDCA8 0x8B8A #CJK UNIFIED IDEOGRAPH +0xDCA9 0x8FA8 #CJK UNIFIED IDEOGRAPH +0xDCAA 0x8FAF #CJK UNIFIED IDEOGRAPH +0xDCAB 0x908A #CJK UNIFIED IDEOGRAPH +0xDCAC 0x5225 #CJK UNIFIED IDEOGRAPH +0xDCAD 0x77A5 #CJK UNIFIED IDEOGRAPH +0xDCAE 0x9C49 #CJK UNIFIED IDEOGRAPH +0xDCAF 0x9F08 #CJK UNIFIED IDEOGRAPH +0xDCB0 0x4E19 #CJK UNIFIED IDEOGRAPH +0xDCB1 0x5002 #CJK UNIFIED IDEOGRAPH +0xDCB2 0x5175 #CJK UNIFIED IDEOGRAPH +0xDCB3 0x5C5B #CJK UNIFIED IDEOGRAPH +0xDCB4 0x5E77 #CJK UNIFIED IDEOGRAPH +0xDCB5 0x661E #CJK UNIFIED IDEOGRAPH +0xDCB6 0x663A #CJK UNIFIED IDEOGRAPH +0xDCB7 0x67C4 #CJK UNIFIED IDEOGRAPH +0xDCB8 0x68C5 #CJK UNIFIED IDEOGRAPH +0xDCB9 0x70B3 #CJK UNIFIED IDEOGRAPH +0xDCBA 0x7501 #CJK UNIFIED IDEOGRAPH +0xDCBB 0x75C5 #CJK UNIFIED IDEOGRAPH +0xDCBC 0x79C9 #CJK UNIFIED IDEOGRAPH +0xDCBD 0x7ADD #CJK UNIFIED IDEOGRAPH +0xDCBE 0x8F27 #CJK UNIFIED IDEOGRAPH +0xDCBF 0x9920 #CJK UNIFIED IDEOGRAPH +0xDCC0 0x9A08 #CJK UNIFIED IDEOGRAPH +0xDCC1 0x4FDD #CJK UNIFIED IDEOGRAPH +0xDCC2 0x5821 #CJK UNIFIED IDEOGRAPH +0xDCC3 0x5831 #CJK UNIFIED IDEOGRAPH +0xDCC4 0x5BF6 #CJK UNIFIED IDEOGRAPH +0xDCC5 0x666E #CJK UNIFIED IDEOGRAPH +0xDCC6 0x6B65 #CJK UNIFIED IDEOGRAPH +0xDCC7 0x6D11 #CJK UNIFIED IDEOGRAPH +0xDCC8 0x6E7A #CJK UNIFIED IDEOGRAPH +0xDCC9 0x6F7D #CJK UNIFIED IDEOGRAPH +0xDCCA 0x73E4 #CJK UNIFIED IDEOGRAPH +0xDCCB 0x752B #CJK UNIFIED IDEOGRAPH +0xDCCC 0x83E9 #CJK UNIFIED IDEOGRAPH +0xDCCD 0x88DC #CJK UNIFIED IDEOGRAPH +0xDCCE 0x8913 #CJK UNIFIED IDEOGRAPH +0xDCCF 0x8B5C #CJK UNIFIED IDEOGRAPH +0xDCD0 0x8F14 #CJK UNIFIED IDEOGRAPH +0xDCD1 0x4F0F #CJK UNIFIED IDEOGRAPH +0xDCD2 0x50D5 #CJK UNIFIED IDEOGRAPH +0xDCD3 0x5310 #CJK UNIFIED IDEOGRAPH +0xDCD4 0x535C #CJK UNIFIED IDEOGRAPH +0xDCD5 0x5B93 #CJK UNIFIED IDEOGRAPH +0xDCD6 0x5FA9 #CJK UNIFIED IDEOGRAPH +0xDCD7 0x670D #CJK UNIFIED IDEOGRAPH +0xDCD8 0x798F #CJK UNIFIED IDEOGRAPH +0xDCD9 0x8179 #CJK UNIFIED IDEOGRAPH +0xDCDA 0x832F #CJK UNIFIED IDEOGRAPH +0xDCDB 0x8514 #CJK UNIFIED IDEOGRAPH +0xDCDC 0x8907 #CJK UNIFIED IDEOGRAPH +0xDCDD 0x8986 #CJK UNIFIED IDEOGRAPH +0xDCDE 0x8F39 #CJK UNIFIED IDEOGRAPH +0xDCDF 0x8F3B #CJK UNIFIED IDEOGRAPH +0xDCE0 0x99A5 #CJK UNIFIED IDEOGRAPH +0xDCE1 0x9C12 #CJK UNIFIED IDEOGRAPH +0xDCE2 0x672C #CJK UNIFIED IDEOGRAPH +0xDCE3 0x4E76 #CJK UNIFIED IDEOGRAPH +0xDCE4 0x4FF8 #CJK UNIFIED IDEOGRAPH +0xDCE5 0x5949 #CJK UNIFIED IDEOGRAPH +0xDCE6 0x5C01 #CJK UNIFIED IDEOGRAPH +0xDCE7 0x5CEF #CJK UNIFIED IDEOGRAPH +0xDCE8 0x5CF0 #CJK UNIFIED IDEOGRAPH +0xDCE9 0x6367 #CJK UNIFIED IDEOGRAPH +0xDCEA 0x68D2 #CJK UNIFIED IDEOGRAPH +0xDCEB 0x70FD #CJK UNIFIED IDEOGRAPH +0xDCEC 0x71A2 #CJK UNIFIED IDEOGRAPH +0xDCED 0x742B #CJK UNIFIED IDEOGRAPH +0xDCEE 0x7E2B #CJK UNIFIED IDEOGRAPH +0xDCEF 0x84EC #CJK UNIFIED IDEOGRAPH +0xDCF0 0x8702 #CJK UNIFIED IDEOGRAPH +0xDCF1 0x9022 #CJK UNIFIED IDEOGRAPH +0xDCF2 0x92D2 #CJK UNIFIED IDEOGRAPH +0xDCF3 0x9CF3 #CJK UNIFIED IDEOGRAPH +0xDCF4 0x4E0D #CJK UNIFIED IDEOGRAPH +0xDCF5 0x4ED8 #CJK UNIFIED IDEOGRAPH +0xDCF6 0x4FEF #CJK UNIFIED IDEOGRAPH +0xDCF7 0x5085 #CJK UNIFIED IDEOGRAPH +0xDCF8 0x5256 #CJK UNIFIED IDEOGRAPH +0xDCF9 0x526F #CJK UNIFIED IDEOGRAPH +0xDCFA 0x5426 #CJK UNIFIED IDEOGRAPH +0xDCFB 0x5490 #CJK UNIFIED IDEOGRAPH +0xDCFC 0x57E0 #CJK UNIFIED IDEOGRAPH +0xDCFD 0x592B #CJK UNIFIED IDEOGRAPH +0xDCFE 0x5A66 #CJK UNIFIED IDEOGRAPH +0xDDA1 0x5B5A #CJK UNIFIED IDEOGRAPH +0xDDA2 0x5B75 #CJK UNIFIED IDEOGRAPH +0xDDA3 0x5BCC #CJK UNIFIED IDEOGRAPH +0xDDA4 0x5E9C #CJK UNIFIED IDEOGRAPH +0xDDA5 0xF966 #CJK COMPATIBILITY IDEOGRAPH +0xDDA6 0x6276 #CJK UNIFIED IDEOGRAPH +0xDDA7 0x6577 #CJK UNIFIED IDEOGRAPH +0xDDA8 0x65A7 #CJK UNIFIED IDEOGRAPH +0xDDA9 0x6D6E #CJK UNIFIED IDEOGRAPH +0xDDAA 0x6EA5 #CJK UNIFIED IDEOGRAPH +0xDDAB 0x7236 #CJK UNIFIED IDEOGRAPH +0xDDAC 0x7B26 #CJK UNIFIED IDEOGRAPH +0xDDAD 0x7C3F #CJK UNIFIED IDEOGRAPH +0xDDAE 0x7F36 #CJK UNIFIED IDEOGRAPH +0xDDAF 0x8150 #CJK UNIFIED IDEOGRAPH +0xDDB0 0x8151 #CJK UNIFIED IDEOGRAPH +0xDDB1 0x819A #CJK UNIFIED IDEOGRAPH +0xDDB2 0x8240 #CJK UNIFIED IDEOGRAPH +0xDDB3 0x8299 #CJK UNIFIED IDEOGRAPH +0xDDB4 0x83A9 #CJK UNIFIED IDEOGRAPH +0xDDB5 0x8A03 #CJK UNIFIED IDEOGRAPH +0xDDB6 0x8CA0 #CJK UNIFIED IDEOGRAPH +0xDDB7 0x8CE6 #CJK UNIFIED IDEOGRAPH +0xDDB8 0x8CFB #CJK UNIFIED IDEOGRAPH +0xDDB9 0x8D74 #CJK UNIFIED IDEOGRAPH +0xDDBA 0x8DBA #CJK UNIFIED IDEOGRAPH +0xDDBB 0x90E8 #CJK UNIFIED IDEOGRAPH +0xDDBC 0x91DC #CJK UNIFIED IDEOGRAPH +0xDDBD 0x961C #CJK UNIFIED IDEOGRAPH +0xDDBE 0x9644 #CJK UNIFIED IDEOGRAPH +0xDDBF 0x99D9 #CJK UNIFIED IDEOGRAPH +0xDDC0 0x9CE7 #CJK UNIFIED IDEOGRAPH +0xDDC1 0x5317 #CJK UNIFIED IDEOGRAPH +0xDDC2 0x5206 #CJK UNIFIED IDEOGRAPH +0xDDC3 0x5429 #CJK UNIFIED IDEOGRAPH +0xDDC4 0x5674 #CJK UNIFIED IDEOGRAPH +0xDDC5 0x58B3 #CJK UNIFIED IDEOGRAPH +0xDDC6 0x5954 #CJK UNIFIED IDEOGRAPH +0xDDC7 0x596E #CJK UNIFIED IDEOGRAPH +0xDDC8 0x5FFF #CJK UNIFIED IDEOGRAPH +0xDDC9 0x61A4 #CJK UNIFIED IDEOGRAPH +0xDDCA 0x626E #CJK UNIFIED IDEOGRAPH +0xDDCB 0x6610 #CJK UNIFIED IDEOGRAPH +0xDDCC 0x6C7E #CJK UNIFIED IDEOGRAPH +0xDDCD 0x711A #CJK UNIFIED IDEOGRAPH +0xDDCE 0x76C6 #CJK UNIFIED IDEOGRAPH +0xDDCF 0x7C89 #CJK UNIFIED IDEOGRAPH +0xDDD0 0x7CDE #CJK UNIFIED IDEOGRAPH +0xDDD1 0x7D1B #CJK UNIFIED IDEOGRAPH +0xDDD2 0x82AC #CJK UNIFIED IDEOGRAPH +0xDDD3 0x8CC1 #CJK UNIFIED IDEOGRAPH +0xDDD4 0x96F0 #CJK UNIFIED IDEOGRAPH +0xDDD5 0xF967 #CJK COMPATIBILITY IDEOGRAPH +0xDDD6 0x4F5B #CJK UNIFIED IDEOGRAPH +0xDDD7 0x5F17 #CJK UNIFIED IDEOGRAPH +0xDDD8 0x5F7F #CJK UNIFIED IDEOGRAPH +0xDDD9 0x62C2 #CJK UNIFIED IDEOGRAPH +0xDDDA 0x5D29 #CJK UNIFIED IDEOGRAPH +0xDDDB 0x670B #CJK UNIFIED IDEOGRAPH +0xDDDC 0x68DA #CJK UNIFIED IDEOGRAPH +0xDDDD 0x787C #CJK UNIFIED IDEOGRAPH +0xDDDE 0x7E43 #CJK UNIFIED IDEOGRAPH +0xDDDF 0x9D6C #CJK UNIFIED IDEOGRAPH +0xDDE0 0x4E15 #CJK UNIFIED IDEOGRAPH +0xDDE1 0x5099 #CJK UNIFIED IDEOGRAPH +0xDDE2 0x5315 #CJK UNIFIED IDEOGRAPH +0xDDE3 0x532A #CJK UNIFIED IDEOGRAPH +0xDDE4 0x5351 #CJK UNIFIED IDEOGRAPH +0xDDE5 0x5983 #CJK UNIFIED IDEOGRAPH +0xDDE6 0x5A62 #CJK UNIFIED IDEOGRAPH +0xDDE7 0x5E87 #CJK UNIFIED IDEOGRAPH +0xDDE8 0x60B2 #CJK UNIFIED IDEOGRAPH +0xDDE9 0x618A #CJK UNIFIED IDEOGRAPH +0xDDEA 0x6249 #CJK UNIFIED IDEOGRAPH +0xDDEB 0x6279 #CJK UNIFIED IDEOGRAPH +0xDDEC 0x6590 #CJK UNIFIED IDEOGRAPH +0xDDED 0x6787 #CJK UNIFIED IDEOGRAPH +0xDDEE 0x69A7 #CJK UNIFIED IDEOGRAPH +0xDDEF 0x6BD4 #CJK UNIFIED IDEOGRAPH +0xDDF0 0x6BD6 #CJK UNIFIED IDEOGRAPH +0xDDF1 0x6BD7 #CJK UNIFIED IDEOGRAPH +0xDDF2 0x6BD8 #CJK UNIFIED IDEOGRAPH +0xDDF3 0x6CB8 #CJK UNIFIED IDEOGRAPH +0xDDF4 0xF968 #CJK COMPATIBILITY IDEOGRAPH +0xDDF5 0x7435 #CJK UNIFIED IDEOGRAPH +0xDDF6 0x75FA #CJK UNIFIED IDEOGRAPH +0xDDF7 0x7812 #CJK UNIFIED IDEOGRAPH +0xDDF8 0x7891 #CJK UNIFIED IDEOGRAPH +0xDDF9 0x79D5 #CJK UNIFIED IDEOGRAPH +0xDDFA 0x79D8 #CJK UNIFIED IDEOGRAPH +0xDDFB 0x7C83 #CJK UNIFIED IDEOGRAPH +0xDDFC 0x7DCB #CJK UNIFIED IDEOGRAPH +0xDDFD 0x7FE1 #CJK UNIFIED IDEOGRAPH +0xDDFE 0x80A5 #CJK UNIFIED IDEOGRAPH +0xDEA1 0x813E #CJK UNIFIED IDEOGRAPH +0xDEA2 0x81C2 #CJK UNIFIED IDEOGRAPH +0xDEA3 0x83F2 #CJK UNIFIED IDEOGRAPH +0xDEA4 0x871A #CJK UNIFIED IDEOGRAPH +0xDEA5 0x88E8 #CJK UNIFIED IDEOGRAPH +0xDEA6 0x8AB9 #CJK UNIFIED IDEOGRAPH +0xDEA7 0x8B6C #CJK UNIFIED IDEOGRAPH +0xDEA8 0x8CBB #CJK UNIFIED IDEOGRAPH +0xDEA9 0x9119 #CJK UNIFIED IDEOGRAPH +0xDEAA 0x975E #CJK UNIFIED IDEOGRAPH +0xDEAB 0x98DB #CJK UNIFIED IDEOGRAPH +0xDEAC 0x9F3B #CJK UNIFIED IDEOGRAPH +0xDEAD 0x56AC #CJK UNIFIED IDEOGRAPH +0xDEAE 0x5B2A #CJK UNIFIED IDEOGRAPH +0xDEAF 0x5F6C #CJK UNIFIED IDEOGRAPH +0xDEB0 0x658C #CJK UNIFIED IDEOGRAPH +0xDEB1 0x6AB3 #CJK UNIFIED IDEOGRAPH +0xDEB2 0x6BAF #CJK UNIFIED IDEOGRAPH +0xDEB3 0x6D5C #CJK UNIFIED IDEOGRAPH +0xDEB4 0x6FF1 #CJK UNIFIED IDEOGRAPH +0xDEB5 0x7015 #CJK UNIFIED IDEOGRAPH +0xDEB6 0x725D #CJK UNIFIED IDEOGRAPH +0xDEB7 0x73AD #CJK UNIFIED IDEOGRAPH +0xDEB8 0x8CA7 #CJK UNIFIED IDEOGRAPH +0xDEB9 0x8CD3 #CJK UNIFIED IDEOGRAPH +0xDEBA 0x983B #CJK UNIFIED IDEOGRAPH +0xDEBB 0x6191 #CJK UNIFIED IDEOGRAPH +0xDEBC 0x6C37 #CJK UNIFIED IDEOGRAPH +0xDEBD 0x8058 #CJK UNIFIED IDEOGRAPH +0xDEBE 0x9A01 #CJK UNIFIED IDEOGRAPH +0xDEBF 0x4E4D #CJK UNIFIED IDEOGRAPH +0xDEC0 0x4E8B #CJK UNIFIED IDEOGRAPH +0xDEC1 0x4E9B #CJK UNIFIED IDEOGRAPH +0xDEC2 0x4ED5 #CJK UNIFIED IDEOGRAPH +0xDEC3 0x4F3A #CJK UNIFIED IDEOGRAPH +0xDEC4 0x4F3C #CJK UNIFIED IDEOGRAPH +0xDEC5 0x4F7F #CJK UNIFIED IDEOGRAPH +0xDEC6 0x4FDF #CJK UNIFIED IDEOGRAPH +0xDEC7 0x50FF #CJK UNIFIED IDEOGRAPH +0xDEC8 0x53F2 #CJK UNIFIED IDEOGRAPH +0xDEC9 0x53F8 #CJK UNIFIED IDEOGRAPH +0xDECA 0x5506 #CJK UNIFIED IDEOGRAPH +0xDECB 0x55E3 #CJK UNIFIED IDEOGRAPH +0xDECC 0x56DB #CJK UNIFIED IDEOGRAPH +0xDECD 0x58EB #CJK UNIFIED IDEOGRAPH +0xDECE 0x5962 #CJK UNIFIED IDEOGRAPH +0xDECF 0x5A11 #CJK UNIFIED IDEOGRAPH +0xDED0 0x5BEB #CJK UNIFIED IDEOGRAPH +0xDED1 0x5BFA #CJK UNIFIED IDEOGRAPH +0xDED2 0x5C04 #CJK UNIFIED IDEOGRAPH +0xDED3 0x5DF3 #CJK UNIFIED IDEOGRAPH +0xDED4 0x5E2B #CJK UNIFIED IDEOGRAPH +0xDED5 0x5F99 #CJK UNIFIED IDEOGRAPH +0xDED6 0x601D #CJK UNIFIED IDEOGRAPH +0xDED7 0x6368 #CJK UNIFIED IDEOGRAPH +0xDED8 0x659C #CJK UNIFIED IDEOGRAPH +0xDED9 0x65AF #CJK UNIFIED IDEOGRAPH +0xDEDA 0x67F6 #CJK UNIFIED IDEOGRAPH +0xDEDB 0x67FB #CJK UNIFIED IDEOGRAPH +0xDEDC 0x68AD #CJK UNIFIED IDEOGRAPH +0xDEDD 0x6B7B #CJK UNIFIED IDEOGRAPH +0xDEDE 0x6C99 #CJK UNIFIED IDEOGRAPH +0xDEDF 0x6CD7 #CJK UNIFIED IDEOGRAPH +0xDEE0 0x6E23 #CJK UNIFIED IDEOGRAPH +0xDEE1 0x7009 #CJK UNIFIED IDEOGRAPH +0xDEE2 0x7345 #CJK UNIFIED IDEOGRAPH +0xDEE3 0x7802 #CJK UNIFIED IDEOGRAPH +0xDEE4 0x793E #CJK UNIFIED IDEOGRAPH +0xDEE5 0x7940 #CJK UNIFIED IDEOGRAPH +0xDEE6 0x7960 #CJK UNIFIED IDEOGRAPH +0xDEE7 0x79C1 #CJK UNIFIED IDEOGRAPH +0xDEE8 0x7BE9 #CJK UNIFIED IDEOGRAPH +0xDEE9 0x7D17 #CJK UNIFIED IDEOGRAPH +0xDEEA 0x7D72 #CJK UNIFIED IDEOGRAPH +0xDEEB 0x8086 #CJK UNIFIED IDEOGRAPH +0xDEEC 0x820D #CJK UNIFIED IDEOGRAPH +0xDEED 0x838E #CJK UNIFIED IDEOGRAPH +0xDEEE 0x84D1 #CJK UNIFIED IDEOGRAPH +0xDEEF 0x86C7 #CJK UNIFIED IDEOGRAPH +0xDEF0 0x88DF #CJK UNIFIED IDEOGRAPH +0xDEF1 0x8A50 #CJK UNIFIED IDEOGRAPH +0xDEF2 0x8A5E #CJK UNIFIED IDEOGRAPH +0xDEF3 0x8B1D #CJK UNIFIED IDEOGRAPH +0xDEF4 0x8CDC #CJK UNIFIED IDEOGRAPH +0xDEF5 0x8D66 #CJK UNIFIED IDEOGRAPH +0xDEF6 0x8FAD #CJK UNIFIED IDEOGRAPH +0xDEF7 0x90AA #CJK UNIFIED IDEOGRAPH +0xDEF8 0x98FC #CJK UNIFIED IDEOGRAPH +0xDEF9 0x99DF #CJK UNIFIED IDEOGRAPH +0xDEFA 0x9E9D #CJK UNIFIED IDEOGRAPH +0xDEFB 0x524A #CJK UNIFIED IDEOGRAPH +0xDEFC 0xF969 #CJK COMPATIBILITY IDEOGRAPH +0xDEFD 0x6714 #CJK UNIFIED IDEOGRAPH +0xDEFE 0xF96A #CJK COMPATIBILITY IDEOGRAPH +0xDFA1 0x5098 #CJK UNIFIED IDEOGRAPH +0xDFA2 0x522A #CJK UNIFIED IDEOGRAPH +0xDFA3 0x5C71 #CJK UNIFIED IDEOGRAPH +0xDFA4 0x6563 #CJK UNIFIED IDEOGRAPH +0xDFA5 0x6C55 #CJK UNIFIED IDEOGRAPH +0xDFA6 0x73CA #CJK UNIFIED IDEOGRAPH +0xDFA7 0x7523 #CJK UNIFIED IDEOGRAPH +0xDFA8 0x759D #CJK UNIFIED IDEOGRAPH +0xDFA9 0x7B97 #CJK UNIFIED IDEOGRAPH +0xDFAA 0x849C #CJK UNIFIED IDEOGRAPH +0xDFAB 0x9178 #CJK UNIFIED IDEOGRAPH +0xDFAC 0x9730 #CJK UNIFIED IDEOGRAPH +0xDFAD 0x4E77 #CJK UNIFIED IDEOGRAPH +0xDFAE 0x6492 #CJK UNIFIED IDEOGRAPH +0xDFAF 0x6BBA #CJK UNIFIED IDEOGRAPH +0xDFB0 0x715E #CJK UNIFIED IDEOGRAPH +0xDFB1 0x85A9 #CJK UNIFIED IDEOGRAPH +0xDFB2 0x4E09 #CJK UNIFIED IDEOGRAPH +0xDFB3 0xF96B #CJK COMPATIBILITY IDEOGRAPH +0xDFB4 0x6749 #CJK UNIFIED IDEOGRAPH +0xDFB5 0x68EE #CJK UNIFIED IDEOGRAPH +0xDFB6 0x6E17 #CJK UNIFIED IDEOGRAPH +0xDFB7 0x829F #CJK UNIFIED IDEOGRAPH +0xDFB8 0x8518 #CJK UNIFIED IDEOGRAPH +0xDFB9 0x886B #CJK UNIFIED IDEOGRAPH +0xDFBA 0x63F7 #CJK UNIFIED IDEOGRAPH +0xDFBB 0x6F81 #CJK UNIFIED IDEOGRAPH +0xDFBC 0x9212 #CJK UNIFIED IDEOGRAPH +0xDFBD 0x98AF #CJK UNIFIED IDEOGRAPH +0xDFBE 0x4E0A #CJK UNIFIED IDEOGRAPH +0xDFBF 0x50B7 #CJK UNIFIED IDEOGRAPH +0xDFC0 0x50CF #CJK UNIFIED IDEOGRAPH +0xDFC1 0x511F #CJK UNIFIED IDEOGRAPH +0xDFC2 0x5546 #CJK UNIFIED IDEOGRAPH +0xDFC3 0x55AA #CJK UNIFIED IDEOGRAPH +0xDFC4 0x5617 #CJK UNIFIED IDEOGRAPH +0xDFC5 0x5B40 #CJK UNIFIED IDEOGRAPH +0xDFC6 0x5C19 #CJK UNIFIED IDEOGRAPH +0xDFC7 0x5CE0 #CJK UNIFIED IDEOGRAPH +0xDFC8 0x5E38 #CJK UNIFIED IDEOGRAPH +0xDFC9 0x5E8A #CJK UNIFIED IDEOGRAPH +0xDFCA 0x5EA0 #CJK UNIFIED IDEOGRAPH +0xDFCB 0x5EC2 #CJK UNIFIED IDEOGRAPH +0xDFCC 0x60F3 #CJK UNIFIED IDEOGRAPH +0xDFCD 0x6851 #CJK UNIFIED IDEOGRAPH +0xDFCE 0x6A61 #CJK UNIFIED IDEOGRAPH +0xDFCF 0x6E58 #CJK UNIFIED IDEOGRAPH +0xDFD0 0x723D #CJK UNIFIED IDEOGRAPH +0xDFD1 0x7240 #CJK UNIFIED IDEOGRAPH +0xDFD2 0x72C0 #CJK UNIFIED IDEOGRAPH +0xDFD3 0x76F8 #CJK UNIFIED IDEOGRAPH +0xDFD4 0x7965 #CJK UNIFIED IDEOGRAPH +0xDFD5 0x7BB1 #CJK UNIFIED IDEOGRAPH +0xDFD6 0x7FD4 #CJK UNIFIED IDEOGRAPH +0xDFD7 0x88F3 #CJK UNIFIED IDEOGRAPH +0xDFD8 0x89F4 #CJK UNIFIED IDEOGRAPH +0xDFD9 0x8A73 #CJK UNIFIED IDEOGRAPH +0xDFDA 0x8C61 #CJK UNIFIED IDEOGRAPH +0xDFDB 0x8CDE #CJK UNIFIED IDEOGRAPH +0xDFDC 0x971C #CJK UNIFIED IDEOGRAPH +0xDFDD 0x585E #CJK UNIFIED IDEOGRAPH +0xDFDE 0x74BD #CJK UNIFIED IDEOGRAPH +0xDFDF 0x8CFD #CJK UNIFIED IDEOGRAPH +0xDFE0 0x55C7 #CJK UNIFIED IDEOGRAPH +0xDFE1 0xF96C #CJK COMPATIBILITY IDEOGRAPH +0xDFE2 0x7A61 #CJK UNIFIED IDEOGRAPH +0xDFE3 0x7D22 #CJK UNIFIED IDEOGRAPH +0xDFE4 0x8272 #CJK UNIFIED IDEOGRAPH +0xDFE5 0x7272 #CJK UNIFIED IDEOGRAPH +0xDFE6 0x751F #CJK UNIFIED IDEOGRAPH +0xDFE7 0x7525 #CJK UNIFIED IDEOGRAPH +0xDFE8 0xF96D #CJK COMPATIBILITY IDEOGRAPH +0xDFE9 0x7B19 #CJK UNIFIED IDEOGRAPH +0xDFEA 0x5885 #CJK UNIFIED IDEOGRAPH +0xDFEB 0x58FB #CJK UNIFIED IDEOGRAPH +0xDFEC 0x5DBC #CJK UNIFIED IDEOGRAPH +0xDFED 0x5E8F #CJK UNIFIED IDEOGRAPH +0xDFEE 0x5EB6 #CJK UNIFIED IDEOGRAPH +0xDFEF 0x5F90 #CJK UNIFIED IDEOGRAPH +0xDFF0 0x6055 #CJK UNIFIED IDEOGRAPH +0xDFF1 0x6292 #CJK UNIFIED IDEOGRAPH +0xDFF2 0x637F #CJK UNIFIED IDEOGRAPH +0xDFF3 0x654D #CJK UNIFIED IDEOGRAPH +0xDFF4 0x6691 #CJK UNIFIED IDEOGRAPH +0xDFF5 0x66D9 #CJK UNIFIED IDEOGRAPH +0xDFF6 0x66F8 #CJK UNIFIED IDEOGRAPH +0xDFF7 0x6816 #CJK UNIFIED IDEOGRAPH +0xDFF8 0x68F2 #CJK UNIFIED IDEOGRAPH +0xDFF9 0x7280 #CJK UNIFIED IDEOGRAPH +0xDFFA 0x745E #CJK UNIFIED IDEOGRAPH +0xDFFB 0x7B6E #CJK UNIFIED IDEOGRAPH +0xDFFC 0x7D6E #CJK UNIFIED IDEOGRAPH +0xDFFD 0x7DD6 #CJK UNIFIED IDEOGRAPH +0xDFFE 0x7F72 #CJK UNIFIED IDEOGRAPH +0xE0A1 0x80E5 #CJK UNIFIED IDEOGRAPH +0xE0A2 0x8212 #CJK UNIFIED IDEOGRAPH +0xE0A3 0x85AF #CJK UNIFIED IDEOGRAPH +0xE0A4 0x897F #CJK UNIFIED IDEOGRAPH +0xE0A5 0x8A93 #CJK UNIFIED IDEOGRAPH +0xE0A6 0x901D #CJK UNIFIED IDEOGRAPH +0xE0A7 0x92E4 #CJK UNIFIED IDEOGRAPH +0xE0A8 0x9ECD #CJK UNIFIED IDEOGRAPH +0xE0A9 0x9F20 #CJK UNIFIED IDEOGRAPH +0xE0AA 0x5915 #CJK UNIFIED IDEOGRAPH +0xE0AB 0x596D #CJK UNIFIED IDEOGRAPH +0xE0AC 0x5E2D #CJK UNIFIED IDEOGRAPH +0xE0AD 0x60DC #CJK UNIFIED IDEOGRAPH +0xE0AE 0x6614 #CJK UNIFIED IDEOGRAPH +0xE0AF 0x6673 #CJK UNIFIED IDEOGRAPH +0xE0B0 0x6790 #CJK UNIFIED IDEOGRAPH +0xE0B1 0x6C50 #CJK UNIFIED IDEOGRAPH +0xE0B2 0x6DC5 #CJK UNIFIED IDEOGRAPH +0xE0B3 0x6F5F #CJK UNIFIED IDEOGRAPH +0xE0B4 0x77F3 #CJK UNIFIED IDEOGRAPH +0xE0B5 0x78A9 #CJK UNIFIED IDEOGRAPH +0xE0B6 0x84C6 #CJK UNIFIED IDEOGRAPH +0xE0B7 0x91CB #CJK UNIFIED IDEOGRAPH +0xE0B8 0x932B #CJK UNIFIED IDEOGRAPH +0xE0B9 0x4ED9 #CJK UNIFIED IDEOGRAPH +0xE0BA 0x50CA #CJK UNIFIED IDEOGRAPH +0xE0BB 0x5148 #CJK UNIFIED IDEOGRAPH +0xE0BC 0x5584 #CJK UNIFIED IDEOGRAPH +0xE0BD 0x5B0B #CJK UNIFIED IDEOGRAPH +0xE0BE 0x5BA3 #CJK UNIFIED IDEOGRAPH +0xE0BF 0x6247 #CJK UNIFIED IDEOGRAPH +0xE0C0 0x657E #CJK UNIFIED IDEOGRAPH +0xE0C1 0x65CB #CJK UNIFIED IDEOGRAPH +0xE0C2 0x6E32 #CJK UNIFIED IDEOGRAPH +0xE0C3 0x717D #CJK UNIFIED IDEOGRAPH +0xE0C4 0x7401 #CJK UNIFIED IDEOGRAPH +0xE0C5 0x7444 #CJK UNIFIED IDEOGRAPH +0xE0C6 0x7487 #CJK UNIFIED IDEOGRAPH +0xE0C7 0x74BF #CJK UNIFIED IDEOGRAPH +0xE0C8 0x766C #CJK UNIFIED IDEOGRAPH +0xE0C9 0x79AA #CJK UNIFIED IDEOGRAPH +0xE0CA 0x7DDA #CJK UNIFIED IDEOGRAPH +0xE0CB 0x7E55 #CJK UNIFIED IDEOGRAPH +0xE0CC 0x7FA8 #CJK UNIFIED IDEOGRAPH +0xE0CD 0x817A #CJK UNIFIED IDEOGRAPH +0xE0CE 0x81B3 #CJK UNIFIED IDEOGRAPH +0xE0CF 0x8239 #CJK UNIFIED IDEOGRAPH +0xE0D0 0x861A #CJK UNIFIED IDEOGRAPH +0xE0D1 0x87EC #CJK UNIFIED IDEOGRAPH +0xE0D2 0x8A75 #CJK UNIFIED IDEOGRAPH +0xE0D3 0x8DE3 #CJK UNIFIED IDEOGRAPH +0xE0D4 0x9078 #CJK UNIFIED IDEOGRAPH +0xE0D5 0x9291 #CJK UNIFIED IDEOGRAPH +0xE0D6 0x9425 #CJK UNIFIED IDEOGRAPH +0xE0D7 0x994D #CJK UNIFIED IDEOGRAPH +0xE0D8 0x9BAE #CJK UNIFIED IDEOGRAPH +0xE0D9 0x5368 #CJK UNIFIED IDEOGRAPH +0xE0DA 0x5C51 #CJK UNIFIED IDEOGRAPH +0xE0DB 0x6954 #CJK UNIFIED IDEOGRAPH +0xE0DC 0x6CC4 #CJK UNIFIED IDEOGRAPH +0xE0DD 0x6D29 #CJK UNIFIED IDEOGRAPH +0xE0DE 0x6E2B #CJK UNIFIED IDEOGRAPH +0xE0DF 0x820C #CJK UNIFIED IDEOGRAPH +0xE0E0 0x859B #CJK UNIFIED IDEOGRAPH +0xE0E1 0x893B #CJK UNIFIED IDEOGRAPH +0xE0E2 0x8A2D #CJK UNIFIED IDEOGRAPH +0xE0E3 0x8AAA #CJK UNIFIED IDEOGRAPH +0xE0E4 0x96EA #CJK UNIFIED IDEOGRAPH +0xE0E5 0x9F67 #CJK UNIFIED IDEOGRAPH +0xE0E6 0x5261 #CJK UNIFIED IDEOGRAPH +0xE0E7 0x66B9 #CJK UNIFIED IDEOGRAPH +0xE0E8 0x6BB2 #CJK UNIFIED IDEOGRAPH +0xE0E9 0x7E96 #CJK UNIFIED IDEOGRAPH +0xE0EA 0x87FE #CJK UNIFIED IDEOGRAPH +0xE0EB 0x8D0D #CJK UNIFIED IDEOGRAPH +0xE0EC 0x9583 #CJK UNIFIED IDEOGRAPH +0xE0ED 0x965D #CJK UNIFIED IDEOGRAPH +0xE0EE 0x651D #CJK UNIFIED IDEOGRAPH +0xE0EF 0x6D89 #CJK UNIFIED IDEOGRAPH +0xE0F0 0x71EE #CJK UNIFIED IDEOGRAPH +0xE0F1 0xF96E #CJK COMPATIBILITY IDEOGRAPH +0xE0F2 0x57CE #CJK UNIFIED IDEOGRAPH +0xE0F3 0x59D3 #CJK UNIFIED IDEOGRAPH +0xE0F4 0x5BAC #CJK UNIFIED IDEOGRAPH +0xE0F5 0x6027 #CJK UNIFIED IDEOGRAPH +0xE0F6 0x60FA #CJK UNIFIED IDEOGRAPH +0xE0F7 0x6210 #CJK UNIFIED IDEOGRAPH +0xE0F8 0x661F #CJK UNIFIED IDEOGRAPH +0xE0F9 0x665F #CJK UNIFIED IDEOGRAPH +0xE0FA 0x7329 #CJK UNIFIED IDEOGRAPH +0xE0FB 0x73F9 #CJK UNIFIED IDEOGRAPH +0xE0FC 0x76DB #CJK UNIFIED IDEOGRAPH +0xE0FD 0x7701 #CJK UNIFIED IDEOGRAPH +0xE0FE 0x7B6C #CJK UNIFIED IDEOGRAPH +0xE1A1 0x8056 #CJK UNIFIED IDEOGRAPH +0xE1A2 0x8072 #CJK UNIFIED IDEOGRAPH +0xE1A3 0x8165 #CJK UNIFIED IDEOGRAPH +0xE1A4 0x8AA0 #CJK UNIFIED IDEOGRAPH +0xE1A5 0x9192 #CJK UNIFIED IDEOGRAPH +0xE1A6 0x4E16 #CJK UNIFIED IDEOGRAPH +0xE1A7 0x52E2 #CJK UNIFIED IDEOGRAPH +0xE1A8 0x6B72 #CJK UNIFIED IDEOGRAPH +0xE1A9 0x6D17 #CJK UNIFIED IDEOGRAPH +0xE1AA 0x7A05 #CJK UNIFIED IDEOGRAPH +0xE1AB 0x7B39 #CJK UNIFIED IDEOGRAPH +0xE1AC 0x7D30 #CJK UNIFIED IDEOGRAPH +0xE1AD 0xF96F #CJK COMPATIBILITY IDEOGRAPH +0xE1AE 0x8CB0 #CJK UNIFIED IDEOGRAPH +0xE1AF 0x53EC #CJK UNIFIED IDEOGRAPH +0xE1B0 0x562F #CJK UNIFIED IDEOGRAPH +0xE1B1 0x5851 #CJK UNIFIED IDEOGRAPH +0xE1B2 0x5BB5 #CJK UNIFIED IDEOGRAPH +0xE1B3 0x5C0F #CJK UNIFIED IDEOGRAPH +0xE1B4 0x5C11 #CJK UNIFIED IDEOGRAPH +0xE1B5 0x5DE2 #CJK UNIFIED IDEOGRAPH +0xE1B6 0x6240 #CJK UNIFIED IDEOGRAPH +0xE1B7 0x6383 #CJK UNIFIED IDEOGRAPH +0xE1B8 0x6414 #CJK UNIFIED IDEOGRAPH +0xE1B9 0x662D #CJK UNIFIED IDEOGRAPH +0xE1BA 0x68B3 #CJK UNIFIED IDEOGRAPH +0xE1BB 0x6CBC #CJK UNIFIED IDEOGRAPH +0xE1BC 0x6D88 #CJK UNIFIED IDEOGRAPH +0xE1BD 0x6EAF #CJK UNIFIED IDEOGRAPH +0xE1BE 0x701F #CJK UNIFIED IDEOGRAPH +0xE1BF 0x70A4 #CJK UNIFIED IDEOGRAPH +0xE1C0 0x71D2 #CJK UNIFIED IDEOGRAPH +0xE1C1 0x7526 #CJK UNIFIED IDEOGRAPH +0xE1C2 0x758F #CJK UNIFIED IDEOGRAPH +0xE1C3 0x758E #CJK UNIFIED IDEOGRAPH +0xE1C4 0x7619 #CJK UNIFIED IDEOGRAPH +0xE1C5 0x7B11 #CJK UNIFIED IDEOGRAPH +0xE1C6 0x7BE0 #CJK UNIFIED IDEOGRAPH +0xE1C7 0x7C2B #CJK UNIFIED IDEOGRAPH +0xE1C8 0x7D20 #CJK UNIFIED IDEOGRAPH +0xE1C9 0x7D39 #CJK UNIFIED IDEOGRAPH +0xE1CA 0x852C #CJK UNIFIED IDEOGRAPH +0xE1CB 0x856D #CJK UNIFIED IDEOGRAPH +0xE1CC 0x8607 #CJK UNIFIED IDEOGRAPH +0xE1CD 0x8A34 #CJK UNIFIED IDEOGRAPH +0xE1CE 0x900D #CJK UNIFIED IDEOGRAPH +0xE1CF 0x9061 #CJK UNIFIED IDEOGRAPH +0xE1D0 0x90B5 #CJK UNIFIED IDEOGRAPH +0xE1D1 0x92B7 #CJK UNIFIED IDEOGRAPH +0xE1D2 0x97F6 #CJK UNIFIED IDEOGRAPH +0xE1D3 0x9A37 #CJK UNIFIED IDEOGRAPH +0xE1D4 0x4FD7 #CJK UNIFIED IDEOGRAPH +0xE1D5 0x5C6C #CJK UNIFIED IDEOGRAPH +0xE1D6 0x675F #CJK UNIFIED IDEOGRAPH +0xE1D7 0x6D91 #CJK UNIFIED IDEOGRAPH +0xE1D8 0x7C9F #CJK UNIFIED IDEOGRAPH +0xE1D9 0x7E8C #CJK UNIFIED IDEOGRAPH +0xE1DA 0x8B16 #CJK UNIFIED IDEOGRAPH +0xE1DB 0x8D16 #CJK UNIFIED IDEOGRAPH +0xE1DC 0x901F #CJK UNIFIED IDEOGRAPH +0xE1DD 0x5B6B #CJK UNIFIED IDEOGRAPH +0xE1DE 0x5DFD #CJK UNIFIED IDEOGRAPH +0xE1DF 0x640D #CJK UNIFIED IDEOGRAPH +0xE1E0 0x84C0 #CJK UNIFIED IDEOGRAPH +0xE1E1 0x905C #CJK UNIFIED IDEOGRAPH +0xE1E2 0x98E1 #CJK UNIFIED IDEOGRAPH +0xE1E3 0x7387 #CJK UNIFIED IDEOGRAPH +0xE1E4 0x5B8B #CJK UNIFIED IDEOGRAPH +0xE1E5 0x609A #CJK UNIFIED IDEOGRAPH +0xE1E6 0x677E #CJK UNIFIED IDEOGRAPH +0xE1E7 0x6DDE #CJK UNIFIED IDEOGRAPH +0xE1E8 0x8A1F #CJK UNIFIED IDEOGRAPH +0xE1E9 0x8AA6 #CJK UNIFIED IDEOGRAPH +0xE1EA 0x9001 #CJK UNIFIED IDEOGRAPH +0xE1EB 0x980C #CJK UNIFIED IDEOGRAPH +0xE1EC 0x5237 #CJK UNIFIED IDEOGRAPH +0xE1ED 0xF970 #CJK COMPATIBILITY IDEOGRAPH +0xE1EE 0x7051 #CJK UNIFIED IDEOGRAPH +0xE1EF 0x788E #CJK UNIFIED IDEOGRAPH +0xE1F0 0x9396 #CJK UNIFIED IDEOGRAPH +0xE1F1 0x8870 #CJK UNIFIED IDEOGRAPH +0xE1F2 0x91D7 #CJK UNIFIED IDEOGRAPH +0xE1F3 0x4FEE #CJK UNIFIED IDEOGRAPH +0xE1F4 0x53D7 #CJK UNIFIED IDEOGRAPH +0xE1F5 0x55FD #CJK UNIFIED IDEOGRAPH +0xE1F6 0x56DA #CJK UNIFIED IDEOGRAPH +0xE1F7 0x5782 #CJK UNIFIED IDEOGRAPH +0xE1F8 0x58FD #CJK UNIFIED IDEOGRAPH +0xE1F9 0x5AC2 #CJK UNIFIED IDEOGRAPH +0xE1FA 0x5B88 #CJK UNIFIED IDEOGRAPH +0xE1FB 0x5CAB #CJK UNIFIED IDEOGRAPH +0xE1FC 0x5CC0 #CJK UNIFIED IDEOGRAPH +0xE1FD 0x5E25 #CJK UNIFIED IDEOGRAPH +0xE1FE 0x6101 #CJK UNIFIED IDEOGRAPH +0xE2A1 0x620D #CJK UNIFIED IDEOGRAPH +0xE2A2 0x624B #CJK UNIFIED IDEOGRAPH +0xE2A3 0x6388 #CJK UNIFIED IDEOGRAPH +0xE2A4 0x641C #CJK UNIFIED IDEOGRAPH +0xE2A5 0x6536 #CJK UNIFIED IDEOGRAPH +0xE2A6 0x6578 #CJK UNIFIED IDEOGRAPH +0xE2A7 0x6A39 #CJK UNIFIED IDEOGRAPH +0xE2A8 0x6B8A #CJK UNIFIED IDEOGRAPH +0xE2A9 0x6C34 #CJK UNIFIED IDEOGRAPH +0xE2AA 0x6D19 #CJK UNIFIED IDEOGRAPH +0xE2AB 0x6F31 #CJK UNIFIED IDEOGRAPH +0xE2AC 0x71E7 #CJK UNIFIED IDEOGRAPH +0xE2AD 0x72E9 #CJK UNIFIED IDEOGRAPH +0xE2AE 0x7378 #CJK UNIFIED IDEOGRAPH +0xE2AF 0x7407 #CJK UNIFIED IDEOGRAPH +0xE2B0 0x74B2 #CJK UNIFIED IDEOGRAPH +0xE2B1 0x7626 #CJK UNIFIED IDEOGRAPH +0xE2B2 0x7761 #CJK UNIFIED IDEOGRAPH +0xE2B3 0x79C0 #CJK UNIFIED IDEOGRAPH +0xE2B4 0x7A57 #CJK UNIFIED IDEOGRAPH +0xE2B5 0x7AEA #CJK UNIFIED IDEOGRAPH +0xE2B6 0x7CB9 #CJK UNIFIED IDEOGRAPH +0xE2B7 0x7D8F #CJK UNIFIED IDEOGRAPH +0xE2B8 0x7DAC #CJK UNIFIED IDEOGRAPH +0xE2B9 0x7E61 #CJK UNIFIED IDEOGRAPH +0xE2BA 0x7F9E #CJK UNIFIED IDEOGRAPH +0xE2BB 0x8129 #CJK UNIFIED IDEOGRAPH +0xE2BC 0x8331 #CJK UNIFIED IDEOGRAPH +0xE2BD 0x8490 #CJK UNIFIED IDEOGRAPH +0xE2BE 0x84DA #CJK UNIFIED IDEOGRAPH +0xE2BF 0x85EA #CJK UNIFIED IDEOGRAPH +0xE2C0 0x8896 #CJK UNIFIED IDEOGRAPH +0xE2C1 0x8AB0 #CJK UNIFIED IDEOGRAPH +0xE2C2 0x8B90 #CJK UNIFIED IDEOGRAPH +0xE2C3 0x8F38 #CJK UNIFIED IDEOGRAPH +0xE2C4 0x9042 #CJK UNIFIED IDEOGRAPH +0xE2C5 0x9083 #CJK UNIFIED IDEOGRAPH +0xE2C6 0x916C #CJK UNIFIED IDEOGRAPH +0xE2C7 0x9296 #CJK UNIFIED IDEOGRAPH +0xE2C8 0x92B9 #CJK UNIFIED IDEOGRAPH +0xE2C9 0x968B #CJK UNIFIED IDEOGRAPH +0xE2CA 0x96A7 #CJK UNIFIED IDEOGRAPH +0xE2CB 0x96A8 #CJK UNIFIED IDEOGRAPH +0xE2CC 0x96D6 #CJK UNIFIED IDEOGRAPH +0xE2CD 0x9700 #CJK UNIFIED IDEOGRAPH +0xE2CE 0x9808 #CJK UNIFIED IDEOGRAPH +0xE2CF 0x9996 #CJK UNIFIED IDEOGRAPH +0xE2D0 0x9AD3 #CJK UNIFIED IDEOGRAPH +0xE2D1 0x9B1A #CJK UNIFIED IDEOGRAPH +0xE2D2 0x53D4 #CJK UNIFIED IDEOGRAPH +0xE2D3 0x587E #CJK UNIFIED IDEOGRAPH +0xE2D4 0x5919 #CJK UNIFIED IDEOGRAPH +0xE2D5 0x5B70 #CJK UNIFIED IDEOGRAPH +0xE2D6 0x5BBF #CJK UNIFIED IDEOGRAPH +0xE2D7 0x6DD1 #CJK UNIFIED IDEOGRAPH +0xE2D8 0x6F5A #CJK UNIFIED IDEOGRAPH +0xE2D9 0x719F #CJK UNIFIED IDEOGRAPH +0xE2DA 0x7421 #CJK UNIFIED IDEOGRAPH +0xE2DB 0x74B9 #CJK UNIFIED IDEOGRAPH +0xE2DC 0x8085 #CJK UNIFIED IDEOGRAPH +0xE2DD 0x83FD #CJK UNIFIED IDEOGRAPH +0xE2DE 0x5DE1 #CJK UNIFIED IDEOGRAPH +0xE2DF 0x5F87 #CJK UNIFIED IDEOGRAPH +0xE2E0 0x5FAA #CJK UNIFIED IDEOGRAPH +0xE2E1 0x6042 #CJK UNIFIED IDEOGRAPH +0xE2E2 0x65EC #CJK UNIFIED IDEOGRAPH +0xE2E3 0x6812 #CJK UNIFIED IDEOGRAPH +0xE2E4 0x696F #CJK UNIFIED IDEOGRAPH +0xE2E5 0x6A53 #CJK UNIFIED IDEOGRAPH +0xE2E6 0x6B89 #CJK UNIFIED IDEOGRAPH +0xE2E7 0x6D35 #CJK UNIFIED IDEOGRAPH +0xE2E8 0x6DF3 #CJK UNIFIED IDEOGRAPH +0xE2E9 0x73E3 #CJK UNIFIED IDEOGRAPH +0xE2EA 0x76FE #CJK UNIFIED IDEOGRAPH +0xE2EB 0x77AC #CJK UNIFIED IDEOGRAPH +0xE2EC 0x7B4D #CJK UNIFIED IDEOGRAPH +0xE2ED 0x7D14 #CJK UNIFIED IDEOGRAPH +0xE2EE 0x8123 #CJK UNIFIED IDEOGRAPH +0xE2EF 0x821C #CJK UNIFIED IDEOGRAPH +0xE2F0 0x8340 #CJK UNIFIED IDEOGRAPH +0xE2F1 0x84F4 #CJK UNIFIED IDEOGRAPH +0xE2F2 0x8563 #CJK UNIFIED IDEOGRAPH +0xE2F3 0x8A62 #CJK UNIFIED IDEOGRAPH +0xE2F4 0x8AC4 #CJK UNIFIED IDEOGRAPH +0xE2F5 0x9187 #CJK UNIFIED IDEOGRAPH +0xE2F6 0x931E #CJK UNIFIED IDEOGRAPH +0xE2F7 0x9806 #CJK UNIFIED IDEOGRAPH +0xE2F8 0x99B4 #CJK UNIFIED IDEOGRAPH +0xE2F9 0x620C #CJK UNIFIED IDEOGRAPH +0xE2FA 0x8853 #CJK UNIFIED IDEOGRAPH +0xE2FB 0x8FF0 #CJK UNIFIED IDEOGRAPH +0xE2FC 0x9265 #CJK UNIFIED IDEOGRAPH +0xE2FD 0x5D07 #CJK UNIFIED IDEOGRAPH +0xE2FE 0x5D27 #CJK UNIFIED IDEOGRAPH +0xE3A1 0x5D69 #CJK UNIFIED IDEOGRAPH +0xE3A2 0x745F #CJK UNIFIED IDEOGRAPH +0xE3A3 0x819D #CJK UNIFIED IDEOGRAPH +0xE3A4 0x8768 #CJK UNIFIED IDEOGRAPH +0xE3A5 0x6FD5 #CJK UNIFIED IDEOGRAPH +0xE3A6 0x62FE #CJK UNIFIED IDEOGRAPH +0xE3A7 0x7FD2 #CJK UNIFIED IDEOGRAPH +0xE3A8 0x8936 #CJK UNIFIED IDEOGRAPH +0xE3A9 0x8972 #CJK UNIFIED IDEOGRAPH +0xE3AA 0x4E1E #CJK UNIFIED IDEOGRAPH +0xE3AB 0x4E58 #CJK UNIFIED IDEOGRAPH +0xE3AC 0x50E7 #CJK UNIFIED IDEOGRAPH +0xE3AD 0x52DD #CJK UNIFIED IDEOGRAPH +0xE3AE 0x5347 #CJK UNIFIED IDEOGRAPH +0xE3AF 0x627F #CJK UNIFIED IDEOGRAPH +0xE3B0 0x6607 #CJK UNIFIED IDEOGRAPH +0xE3B1 0x7E69 #CJK UNIFIED IDEOGRAPH +0xE3B2 0x8805 #CJK UNIFIED IDEOGRAPH +0xE3B3 0x965E #CJK UNIFIED IDEOGRAPH +0xE3B4 0x4F8D #CJK UNIFIED IDEOGRAPH +0xE3B5 0x5319 #CJK UNIFIED IDEOGRAPH +0xE3B6 0x5636 #CJK UNIFIED IDEOGRAPH +0xE3B7 0x59CB #CJK UNIFIED IDEOGRAPH +0xE3B8 0x5AA4 #CJK UNIFIED IDEOGRAPH +0xE3B9 0x5C38 #CJK UNIFIED IDEOGRAPH +0xE3BA 0x5C4E #CJK UNIFIED IDEOGRAPH +0xE3BB 0x5C4D #CJK UNIFIED IDEOGRAPH +0xE3BC 0x5E02 #CJK UNIFIED IDEOGRAPH +0xE3BD 0x5F11 #CJK UNIFIED IDEOGRAPH +0xE3BE 0x6043 #CJK UNIFIED IDEOGRAPH +0xE3BF 0x65BD #CJK UNIFIED IDEOGRAPH +0xE3C0 0x662F #CJK UNIFIED IDEOGRAPH +0xE3C1 0x6642 #CJK UNIFIED IDEOGRAPH +0xE3C2 0x67BE #CJK UNIFIED IDEOGRAPH +0xE3C3 0x67F4 #CJK UNIFIED IDEOGRAPH +0xE3C4 0x731C #CJK UNIFIED IDEOGRAPH +0xE3C5 0x77E2 #CJK UNIFIED IDEOGRAPH +0xE3C6 0x793A #CJK UNIFIED IDEOGRAPH +0xE3C7 0x7FC5 #CJK UNIFIED IDEOGRAPH +0xE3C8 0x8494 #CJK UNIFIED IDEOGRAPH +0xE3C9 0x84CD #CJK UNIFIED IDEOGRAPH +0xE3CA 0x8996 #CJK UNIFIED IDEOGRAPH +0xE3CB 0x8A66 #CJK UNIFIED IDEOGRAPH +0xE3CC 0x8A69 #CJK UNIFIED IDEOGRAPH +0xE3CD 0x8AE1 #CJK UNIFIED IDEOGRAPH +0xE3CE 0x8C55 #CJK UNIFIED IDEOGRAPH +0xE3CF 0x8C7A #CJK UNIFIED IDEOGRAPH +0xE3D0 0x57F4 #CJK UNIFIED IDEOGRAPH +0xE3D1 0x5BD4 #CJK UNIFIED IDEOGRAPH +0xE3D2 0x5F0F #CJK UNIFIED IDEOGRAPH +0xE3D3 0x606F #CJK UNIFIED IDEOGRAPH +0xE3D4 0x62ED #CJK UNIFIED IDEOGRAPH +0xE3D5 0x690D #CJK UNIFIED IDEOGRAPH +0xE3D6 0x6B96 #CJK UNIFIED IDEOGRAPH +0xE3D7 0x6E5C #CJK UNIFIED IDEOGRAPH +0xE3D8 0x7184 #CJK UNIFIED IDEOGRAPH +0xE3D9 0x7BD2 #CJK UNIFIED IDEOGRAPH +0xE3DA 0x8755 #CJK UNIFIED IDEOGRAPH +0xE3DB 0x8B58 #CJK UNIFIED IDEOGRAPH +0xE3DC 0x8EFE #CJK UNIFIED IDEOGRAPH +0xE3DD 0x98DF #CJK UNIFIED IDEOGRAPH +0xE3DE 0x98FE #CJK UNIFIED IDEOGRAPH +0xE3DF 0x4F38 #CJK UNIFIED IDEOGRAPH +0xE3E0 0x4F81 #CJK UNIFIED IDEOGRAPH +0xE3E1 0x4FE1 #CJK UNIFIED IDEOGRAPH +0xE3E2 0x547B #CJK UNIFIED IDEOGRAPH +0xE3E3 0x5A20 #CJK UNIFIED IDEOGRAPH +0xE3E4 0x5BB8 #CJK UNIFIED IDEOGRAPH +0xE3E5 0x613C #CJK UNIFIED IDEOGRAPH +0xE3E6 0x65B0 #CJK UNIFIED IDEOGRAPH +0xE3E7 0x6668 #CJK UNIFIED IDEOGRAPH +0xE3E8 0x71FC #CJK UNIFIED IDEOGRAPH +0xE3E9 0x7533 #CJK UNIFIED IDEOGRAPH +0xE3EA 0x795E #CJK UNIFIED IDEOGRAPH +0xE3EB 0x7D33 #CJK UNIFIED IDEOGRAPH +0xE3EC 0x814E #CJK UNIFIED IDEOGRAPH +0xE3ED 0x81E3 #CJK UNIFIED IDEOGRAPH +0xE3EE 0x8398 #CJK UNIFIED IDEOGRAPH +0xE3EF 0x85AA #CJK UNIFIED IDEOGRAPH +0xE3F0 0x85CE #CJK UNIFIED IDEOGRAPH +0xE3F1 0x8703 #CJK UNIFIED IDEOGRAPH +0xE3F2 0x8A0A #CJK UNIFIED IDEOGRAPH +0xE3F3 0x8EAB #CJK UNIFIED IDEOGRAPH +0xE3F4 0x8F9B #CJK UNIFIED IDEOGRAPH +0xE3F5 0xF971 #CJK COMPATIBILITY IDEOGRAPH +0xE3F6 0x8FC5 #CJK UNIFIED IDEOGRAPH +0xE3F7 0x5931 #CJK UNIFIED IDEOGRAPH +0xE3F8 0x5BA4 #CJK UNIFIED IDEOGRAPH +0xE3F9 0x5BE6 #CJK UNIFIED IDEOGRAPH +0xE3FA 0x6089 #CJK UNIFIED IDEOGRAPH +0xE3FB 0x5BE9 #CJK UNIFIED IDEOGRAPH +0xE3FC 0x5C0B #CJK UNIFIED IDEOGRAPH +0xE3FD 0x5FC3 #CJK UNIFIED IDEOGRAPH +0xE3FE 0x6C81 #CJK UNIFIED IDEOGRAPH +0xE4A1 0xF972 #CJK COMPATIBILITY IDEOGRAPH +0xE4A2 0x6DF1 #CJK UNIFIED IDEOGRAPH +0xE4A3 0x700B #CJK UNIFIED IDEOGRAPH +0xE4A4 0x751A #CJK UNIFIED IDEOGRAPH +0xE4A5 0x82AF #CJK UNIFIED IDEOGRAPH +0xE4A6 0x8AF6 #CJK UNIFIED IDEOGRAPH +0xE4A7 0x4EC0 #CJK UNIFIED IDEOGRAPH +0xE4A8 0x5341 #CJK UNIFIED IDEOGRAPH +0xE4A9 0xF973 #CJK COMPATIBILITY IDEOGRAPH +0xE4AA 0x96D9 #CJK UNIFIED IDEOGRAPH +0xE4AB 0x6C0F #CJK UNIFIED IDEOGRAPH +0xE4AC 0x4E9E #CJK UNIFIED IDEOGRAPH +0xE4AD 0x4FC4 #CJK UNIFIED IDEOGRAPH +0xE4AE 0x5152 #CJK UNIFIED IDEOGRAPH +0xE4AF 0x555E #CJK UNIFIED IDEOGRAPH +0xE4B0 0x5A25 #CJK UNIFIED IDEOGRAPH +0xE4B1 0x5CE8 #CJK UNIFIED IDEOGRAPH +0xE4B2 0x6211 #CJK UNIFIED IDEOGRAPH +0xE4B3 0x7259 #CJK UNIFIED IDEOGRAPH +0xE4B4 0x82BD #CJK UNIFIED IDEOGRAPH +0xE4B5 0x83AA #CJK UNIFIED IDEOGRAPH +0xE4B6 0x86FE #CJK UNIFIED IDEOGRAPH +0xE4B7 0x8859 #CJK UNIFIED IDEOGRAPH +0xE4B8 0x8A1D #CJK UNIFIED IDEOGRAPH +0xE4B9 0x963F #CJK UNIFIED IDEOGRAPH +0xE4BA 0x96C5 #CJK UNIFIED IDEOGRAPH +0xE4BB 0x9913 #CJK UNIFIED IDEOGRAPH +0xE4BC 0x9D09 #CJK UNIFIED IDEOGRAPH +0xE4BD 0x9D5D #CJK UNIFIED IDEOGRAPH +0xE4BE 0x580A #CJK UNIFIED IDEOGRAPH +0xE4BF 0x5CB3 #CJK UNIFIED IDEOGRAPH +0xE4C0 0x5DBD #CJK UNIFIED IDEOGRAPH +0xE4C1 0x5E44 #CJK UNIFIED IDEOGRAPH +0xE4C2 0x60E1 #CJK UNIFIED IDEOGRAPH +0xE4C3 0x6115 #CJK UNIFIED IDEOGRAPH +0xE4C4 0x63E1 #CJK UNIFIED IDEOGRAPH +0xE4C5 0x6A02 #CJK UNIFIED IDEOGRAPH +0xE4C6 0x6E25 #CJK UNIFIED IDEOGRAPH +0xE4C7 0x9102 #CJK UNIFIED IDEOGRAPH +0xE4C8 0x9354 #CJK UNIFIED IDEOGRAPH +0xE4C9 0x984E #CJK UNIFIED IDEOGRAPH +0xE4CA 0x9C10 #CJK UNIFIED IDEOGRAPH +0xE4CB 0x9F77 #CJK UNIFIED IDEOGRAPH +0xE4CC 0x5B89 #CJK UNIFIED IDEOGRAPH +0xE4CD 0x5CB8 #CJK UNIFIED IDEOGRAPH +0xE4CE 0x6309 #CJK UNIFIED IDEOGRAPH +0xE4CF 0x664F #CJK UNIFIED IDEOGRAPH +0xE4D0 0x6848 #CJK UNIFIED IDEOGRAPH +0xE4D1 0x773C #CJK UNIFIED IDEOGRAPH +0xE4D2 0x96C1 #CJK UNIFIED IDEOGRAPH +0xE4D3 0x978D #CJK UNIFIED IDEOGRAPH +0xE4D4 0x9854 #CJK UNIFIED IDEOGRAPH +0xE4D5 0x9B9F #CJK UNIFIED IDEOGRAPH +0xE4D6 0x65A1 #CJK UNIFIED IDEOGRAPH +0xE4D7 0x8B01 #CJK UNIFIED IDEOGRAPH +0xE4D8 0x8ECB #CJK UNIFIED IDEOGRAPH +0xE4D9 0x95BC #CJK UNIFIED IDEOGRAPH +0xE4DA 0x5535 #CJK UNIFIED IDEOGRAPH +0xE4DB 0x5CA9 #CJK UNIFIED IDEOGRAPH +0xE4DC 0x5DD6 #CJK UNIFIED IDEOGRAPH +0xE4DD 0x5EB5 #CJK UNIFIED IDEOGRAPH +0xE4DE 0x6697 #CJK UNIFIED IDEOGRAPH +0xE4DF 0x764C #CJK UNIFIED IDEOGRAPH +0xE4E0 0x83F4 #CJK UNIFIED IDEOGRAPH +0xE4E1 0x95C7 #CJK UNIFIED IDEOGRAPH +0xE4E2 0x58D3 #CJK UNIFIED IDEOGRAPH +0xE4E3 0x62BC #CJK UNIFIED IDEOGRAPH +0xE4E4 0x72CE #CJK UNIFIED IDEOGRAPH +0xE4E5 0x9D28 #CJK UNIFIED IDEOGRAPH +0xE4E6 0x4EF0 #CJK UNIFIED IDEOGRAPH +0xE4E7 0x592E #CJK UNIFIED IDEOGRAPH +0xE4E8 0x600F #CJK UNIFIED IDEOGRAPH +0xE4E9 0x663B #CJK UNIFIED IDEOGRAPH +0xE4EA 0x6B83 #CJK UNIFIED IDEOGRAPH +0xE4EB 0x79E7 #CJK UNIFIED IDEOGRAPH +0xE4EC 0x9D26 #CJK UNIFIED IDEOGRAPH +0xE4ED 0x5393 #CJK UNIFIED IDEOGRAPH +0xE4EE 0x54C0 #CJK UNIFIED IDEOGRAPH +0xE4EF 0x57C3 #CJK UNIFIED IDEOGRAPH +0xE4F0 0x5D16 #CJK UNIFIED IDEOGRAPH +0xE4F1 0x611B #CJK UNIFIED IDEOGRAPH +0xE4F2 0x66D6 #CJK UNIFIED IDEOGRAPH +0xE4F3 0x6DAF #CJK UNIFIED IDEOGRAPH +0xE4F4 0x788D #CJK UNIFIED IDEOGRAPH +0xE4F5 0x827E #CJK UNIFIED IDEOGRAPH +0xE4F6 0x9698 #CJK UNIFIED IDEOGRAPH +0xE4F7 0x9744 #CJK UNIFIED IDEOGRAPH +0xE4F8 0x5384 #CJK UNIFIED IDEOGRAPH +0xE4F9 0x627C #CJK UNIFIED IDEOGRAPH +0xE4FA 0x6396 #CJK UNIFIED IDEOGRAPH +0xE4FB 0x6DB2 #CJK UNIFIED IDEOGRAPH +0xE4FC 0x7E0A #CJK UNIFIED IDEOGRAPH +0xE4FD 0x814B #CJK UNIFIED IDEOGRAPH +0xE4FE 0x984D #CJK UNIFIED IDEOGRAPH +0xE5A1 0x6AFB #CJK UNIFIED IDEOGRAPH +0xE5A2 0x7F4C #CJK UNIFIED IDEOGRAPH +0xE5A3 0x9DAF #CJK UNIFIED IDEOGRAPH +0xE5A4 0x9E1A #CJK UNIFIED IDEOGRAPH +0xE5A5 0x4E5F #CJK UNIFIED IDEOGRAPH +0xE5A6 0x503B #CJK UNIFIED IDEOGRAPH +0xE5A7 0x51B6 #CJK UNIFIED IDEOGRAPH +0xE5A8 0x591C #CJK UNIFIED IDEOGRAPH +0xE5A9 0x60F9 #CJK UNIFIED IDEOGRAPH +0xE5AA 0x63F6 #CJK UNIFIED IDEOGRAPH +0xE5AB 0x6930 #CJK UNIFIED IDEOGRAPH +0xE5AC 0x723A #CJK UNIFIED IDEOGRAPH +0xE5AD 0x8036 #CJK UNIFIED IDEOGRAPH +0xE5AE 0xF974 #CJK COMPATIBILITY IDEOGRAPH +0xE5AF 0x91CE #CJK UNIFIED IDEOGRAPH +0xE5B0 0x5F31 #CJK UNIFIED IDEOGRAPH +0xE5B1 0xF975 #CJK COMPATIBILITY IDEOGRAPH +0xE5B2 0xF976 #CJK COMPATIBILITY IDEOGRAPH +0xE5B3 0x7D04 #CJK UNIFIED IDEOGRAPH +0xE5B4 0x82E5 #CJK UNIFIED IDEOGRAPH +0xE5B5 0x846F #CJK UNIFIED IDEOGRAPH +0xE5B6 0x84BB #CJK UNIFIED IDEOGRAPH +0xE5B7 0x85E5 #CJK UNIFIED IDEOGRAPH +0xE5B8 0x8E8D #CJK UNIFIED IDEOGRAPH +0xE5B9 0xF977 #CJK COMPATIBILITY IDEOGRAPH +0xE5BA 0x4F6F #CJK UNIFIED IDEOGRAPH +0xE5BB 0xF978 #CJK COMPATIBILITY IDEOGRAPH +0xE5BC 0xF979 #CJK COMPATIBILITY IDEOGRAPH +0xE5BD 0x58E4 #CJK UNIFIED IDEOGRAPH +0xE5BE 0x5B43 #CJK UNIFIED IDEOGRAPH +0xE5BF 0x6059 #CJK UNIFIED IDEOGRAPH +0xE5C0 0x63DA #CJK UNIFIED IDEOGRAPH +0xE5C1 0x6518 #CJK UNIFIED IDEOGRAPH +0xE5C2 0x656D #CJK UNIFIED IDEOGRAPH +0xE5C3 0x6698 #CJK UNIFIED IDEOGRAPH +0xE5C4 0xF97A #CJK COMPATIBILITY IDEOGRAPH +0xE5C5 0x694A #CJK UNIFIED IDEOGRAPH +0xE5C6 0x6A23 #CJK UNIFIED IDEOGRAPH +0xE5C7 0x6D0B #CJK UNIFIED IDEOGRAPH +0xE5C8 0x7001 #CJK UNIFIED IDEOGRAPH +0xE5C9 0x716C #CJK UNIFIED IDEOGRAPH +0xE5CA 0x75D2 #CJK UNIFIED IDEOGRAPH +0xE5CB 0x760D #CJK UNIFIED IDEOGRAPH +0xE5CC 0x79B3 #CJK UNIFIED IDEOGRAPH +0xE5CD 0x7A70 #CJK UNIFIED IDEOGRAPH +0xE5CE 0xF97B #CJK COMPATIBILITY IDEOGRAPH +0xE5CF 0x7F8A #CJK UNIFIED IDEOGRAPH +0xE5D0 0xF97C #CJK COMPATIBILITY IDEOGRAPH +0xE5D1 0x8944 #CJK UNIFIED IDEOGRAPH +0xE5D2 0xF97D #CJK COMPATIBILITY IDEOGRAPH +0xE5D3 0x8B93 #CJK UNIFIED IDEOGRAPH +0xE5D4 0x91C0 #CJK UNIFIED IDEOGRAPH +0xE5D5 0x967D #CJK UNIFIED IDEOGRAPH +0xE5D6 0xF97E #CJK COMPATIBILITY IDEOGRAPH +0xE5D7 0x990A #CJK UNIFIED IDEOGRAPH +0xE5D8 0x5704 #CJK UNIFIED IDEOGRAPH +0xE5D9 0x5FA1 #CJK UNIFIED IDEOGRAPH +0xE5DA 0x65BC #CJK UNIFIED IDEOGRAPH +0xE5DB 0x6F01 #CJK UNIFIED IDEOGRAPH +0xE5DC 0x7600 #CJK UNIFIED IDEOGRAPH +0xE5DD 0x79A6 #CJK UNIFIED IDEOGRAPH +0xE5DE 0x8A9E #CJK UNIFIED IDEOGRAPH +0xE5DF 0x99AD #CJK UNIFIED IDEOGRAPH +0xE5E0 0x9B5A #CJK UNIFIED IDEOGRAPH +0xE5E1 0x9F6C #CJK UNIFIED IDEOGRAPH +0xE5E2 0x5104 #CJK UNIFIED IDEOGRAPH +0xE5E3 0x61B6 #CJK UNIFIED IDEOGRAPH +0xE5E4 0x6291 #CJK UNIFIED IDEOGRAPH +0xE5E5 0x6A8D #CJK UNIFIED IDEOGRAPH +0xE5E6 0x81C6 #CJK UNIFIED IDEOGRAPH +0xE5E7 0x5043 #CJK UNIFIED IDEOGRAPH +0xE5E8 0x5830 #CJK UNIFIED IDEOGRAPH +0xE5E9 0x5F66 #CJK UNIFIED IDEOGRAPH +0xE5EA 0x7109 #CJK UNIFIED IDEOGRAPH +0xE5EB 0x8A00 #CJK UNIFIED IDEOGRAPH +0xE5EC 0x8AFA #CJK UNIFIED IDEOGRAPH +0xE5ED 0x5B7C #CJK UNIFIED IDEOGRAPH +0xE5EE 0x8616 #CJK UNIFIED IDEOGRAPH +0xE5EF 0x4FFA #CJK UNIFIED IDEOGRAPH +0xE5F0 0x513C #CJK UNIFIED IDEOGRAPH +0xE5F1 0x56B4 #CJK UNIFIED IDEOGRAPH +0xE5F2 0x5944 #CJK UNIFIED IDEOGRAPH +0xE5F3 0x63A9 #CJK UNIFIED IDEOGRAPH +0xE5F4 0x6DF9 #CJK UNIFIED IDEOGRAPH +0xE5F5 0x5DAA #CJK UNIFIED IDEOGRAPH +0xE5F6 0x696D #CJK UNIFIED IDEOGRAPH +0xE5F7 0x5186 #CJK UNIFIED IDEOGRAPH +0xE5F8 0x4E88 #CJK UNIFIED IDEOGRAPH +0xE5F9 0x4F59 #CJK UNIFIED IDEOGRAPH +0xE5FA 0xF97F #CJK COMPATIBILITY IDEOGRAPH +0xE5FB 0xF980 #CJK COMPATIBILITY IDEOGRAPH +0xE5FC 0xF981 #CJK COMPATIBILITY IDEOGRAPH +0xE5FD 0x5982 #CJK UNIFIED IDEOGRAPH +0xE5FE 0xF982 #CJK COMPATIBILITY IDEOGRAPH +0xE6A1 0xF983 #CJK COMPATIBILITY IDEOGRAPH +0xE6A2 0x6B5F #CJK UNIFIED IDEOGRAPH +0xE6A3 0x6C5D #CJK UNIFIED IDEOGRAPH +0xE6A4 0xF984 #CJK COMPATIBILITY IDEOGRAPH +0xE6A5 0x74B5 #CJK UNIFIED IDEOGRAPH +0xE6A6 0x7916 #CJK UNIFIED IDEOGRAPH +0xE6A7 0xF985 #CJK COMPATIBILITY IDEOGRAPH +0xE6A8 0x8207 #CJK UNIFIED IDEOGRAPH +0xE6A9 0x8245 #CJK UNIFIED IDEOGRAPH +0xE6AA 0x8339 #CJK UNIFIED IDEOGRAPH +0xE6AB 0x8F3F #CJK UNIFIED IDEOGRAPH +0xE6AC 0x8F5D #CJK UNIFIED IDEOGRAPH +0xE6AD 0xF986 #CJK COMPATIBILITY IDEOGRAPH +0xE6AE 0x9918 #CJK UNIFIED IDEOGRAPH +0xE6AF 0xF987 #CJK COMPATIBILITY IDEOGRAPH +0xE6B0 0xF988 #CJK COMPATIBILITY IDEOGRAPH +0xE6B1 0xF989 #CJK COMPATIBILITY IDEOGRAPH +0xE6B2 0x4EA6 #CJK UNIFIED IDEOGRAPH +0xE6B3 0xF98A #CJK COMPATIBILITY IDEOGRAPH +0xE6B4 0x57DF #CJK UNIFIED IDEOGRAPH +0xE6B5 0x5F79 #CJK UNIFIED IDEOGRAPH +0xE6B6 0x6613 #CJK UNIFIED IDEOGRAPH +0xE6B7 0xF98B #CJK COMPATIBILITY IDEOGRAPH +0xE6B8 0xF98C #CJK COMPATIBILITY IDEOGRAPH +0xE6B9 0x75AB #CJK UNIFIED IDEOGRAPH +0xE6BA 0x7E79 #CJK UNIFIED IDEOGRAPH +0xE6BB 0x8B6F #CJK UNIFIED IDEOGRAPH +0xE6BC 0xF98D #CJK COMPATIBILITY IDEOGRAPH +0xE6BD 0x9006 #CJK UNIFIED IDEOGRAPH +0xE6BE 0x9A5B #CJK UNIFIED IDEOGRAPH +0xE6BF 0x56A5 #CJK UNIFIED IDEOGRAPH +0xE6C0 0x5827 #CJK UNIFIED IDEOGRAPH +0xE6C1 0x59F8 #CJK UNIFIED IDEOGRAPH +0xE6C2 0x5A1F #CJK UNIFIED IDEOGRAPH +0xE6C3 0x5BB4 #CJK UNIFIED IDEOGRAPH +0xE6C4 0xF98E #CJK COMPATIBILITY IDEOGRAPH +0xE6C5 0x5EF6 #CJK UNIFIED IDEOGRAPH +0xE6C6 0xF98F #CJK COMPATIBILITY IDEOGRAPH +0xE6C7 0xF990 #CJK COMPATIBILITY IDEOGRAPH +0xE6C8 0x6350 #CJK UNIFIED IDEOGRAPH +0xE6C9 0x633B #CJK UNIFIED IDEOGRAPH +0xE6CA 0xF991 #CJK COMPATIBILITY IDEOGRAPH +0xE6CB 0x693D #CJK UNIFIED IDEOGRAPH +0xE6CC 0x6C87 #CJK UNIFIED IDEOGRAPH +0xE6CD 0x6CBF #CJK UNIFIED IDEOGRAPH +0xE6CE 0x6D8E #CJK UNIFIED IDEOGRAPH +0xE6CF 0x6D93 #CJK UNIFIED IDEOGRAPH +0xE6D0 0x6DF5 #CJK UNIFIED IDEOGRAPH +0xE6D1 0x6F14 #CJK UNIFIED IDEOGRAPH +0xE6D2 0xF992 #CJK COMPATIBILITY IDEOGRAPH +0xE6D3 0x70DF #CJK UNIFIED IDEOGRAPH +0xE6D4 0x7136 #CJK UNIFIED IDEOGRAPH +0xE6D5 0x7159 #CJK UNIFIED IDEOGRAPH +0xE6D6 0xF993 #CJK COMPATIBILITY IDEOGRAPH +0xE6D7 0x71C3 #CJK UNIFIED IDEOGRAPH +0xE6D8 0x71D5 #CJK UNIFIED IDEOGRAPH +0xE6D9 0xF994 #CJK COMPATIBILITY IDEOGRAPH +0xE6DA 0x784F #CJK UNIFIED IDEOGRAPH +0xE6DB 0x786F #CJK UNIFIED IDEOGRAPH +0xE6DC 0xF995 #CJK COMPATIBILITY IDEOGRAPH +0xE6DD 0x7B75 #CJK UNIFIED IDEOGRAPH +0xE6DE 0x7DE3 #CJK UNIFIED IDEOGRAPH +0xE6DF 0xF996 #CJK COMPATIBILITY IDEOGRAPH +0xE6E0 0x7E2F #CJK UNIFIED IDEOGRAPH +0xE6E1 0xF997 #CJK COMPATIBILITY IDEOGRAPH +0xE6E2 0x884D #CJK UNIFIED IDEOGRAPH +0xE6E3 0x8EDF #CJK UNIFIED IDEOGRAPH +0xE6E4 0xF998 #CJK COMPATIBILITY IDEOGRAPH +0xE6E5 0xF999 #CJK COMPATIBILITY IDEOGRAPH +0xE6E6 0xF99A #CJK COMPATIBILITY IDEOGRAPH +0xE6E7 0x925B #CJK UNIFIED IDEOGRAPH +0xE6E8 0xF99B #CJK COMPATIBILITY IDEOGRAPH +0xE6E9 0x9CF6 #CJK UNIFIED IDEOGRAPH +0xE6EA 0xF99C #CJK COMPATIBILITY IDEOGRAPH +0xE6EB 0xF99D #CJK COMPATIBILITY IDEOGRAPH +0xE6EC 0xF99E #CJK COMPATIBILITY IDEOGRAPH +0xE6ED 0x6085 #CJK UNIFIED IDEOGRAPH +0xE6EE 0x6D85 #CJK UNIFIED IDEOGRAPH +0xE6EF 0xF99F #CJK COMPATIBILITY IDEOGRAPH +0xE6F0 0x71B1 #CJK UNIFIED IDEOGRAPH +0xE6F1 0xF9A0 #CJK COMPATIBILITY IDEOGRAPH +0xE6F2 0xF9A1 #CJK COMPATIBILITY IDEOGRAPH +0xE6F3 0x95B1 #CJK UNIFIED IDEOGRAPH +0xE6F4 0x53AD #CJK UNIFIED IDEOGRAPH +0xE6F5 0xF9A2 #CJK COMPATIBILITY IDEOGRAPH +0xE6F6 0xF9A3 #CJK COMPATIBILITY IDEOGRAPH +0xE6F7 0xF9A4 #CJK COMPATIBILITY IDEOGRAPH +0xE6F8 0x67D3 #CJK UNIFIED IDEOGRAPH +0xE6F9 0xF9A5 #CJK COMPATIBILITY IDEOGRAPH +0xE6FA 0x708E #CJK UNIFIED IDEOGRAPH +0xE6FB 0x7130 #CJK UNIFIED IDEOGRAPH +0xE6FC 0x7430 #CJK UNIFIED IDEOGRAPH +0xE6FD 0x8276 #CJK UNIFIED IDEOGRAPH +0xE6FE 0x82D2 #CJK UNIFIED IDEOGRAPH +0xE7A1 0xF9A6 #CJK COMPATIBILITY IDEOGRAPH +0xE7A2 0x95BB #CJK UNIFIED IDEOGRAPH +0xE7A3 0x9AE5 #CJK UNIFIED IDEOGRAPH +0xE7A4 0x9E7D #CJK UNIFIED IDEOGRAPH +0xE7A5 0x66C4 #CJK UNIFIED IDEOGRAPH +0xE7A6 0xF9A7 #CJK COMPATIBILITY IDEOGRAPH +0xE7A7 0x71C1 #CJK UNIFIED IDEOGRAPH +0xE7A8 0x8449 #CJK UNIFIED IDEOGRAPH +0xE7A9 0xF9A8 #CJK COMPATIBILITY IDEOGRAPH +0xE7AA 0xF9A9 #CJK COMPATIBILITY IDEOGRAPH +0xE7AB 0x584B #CJK UNIFIED IDEOGRAPH +0xE7AC 0xF9AA #CJK COMPATIBILITY IDEOGRAPH +0xE7AD 0xF9AB #CJK COMPATIBILITY IDEOGRAPH +0xE7AE 0x5DB8 #CJK UNIFIED IDEOGRAPH +0xE7AF 0x5F71 #CJK UNIFIED IDEOGRAPH +0xE7B0 0xF9AC #CJK COMPATIBILITY IDEOGRAPH +0xE7B1 0x6620 #CJK UNIFIED IDEOGRAPH +0xE7B2 0x668E #CJK UNIFIED IDEOGRAPH +0xE7B3 0x6979 #CJK UNIFIED IDEOGRAPH +0xE7B4 0x69AE #CJK UNIFIED IDEOGRAPH +0xE7B5 0x6C38 #CJK UNIFIED IDEOGRAPH +0xE7B6 0x6CF3 #CJK UNIFIED IDEOGRAPH +0xE7B7 0x6E36 #CJK UNIFIED IDEOGRAPH +0xE7B8 0x6F41 #CJK UNIFIED IDEOGRAPH +0xE7B9 0x6FDA #CJK UNIFIED IDEOGRAPH +0xE7BA 0x701B #CJK UNIFIED IDEOGRAPH +0xE7BB 0x702F #CJK UNIFIED IDEOGRAPH +0xE7BC 0x7150 #CJK UNIFIED IDEOGRAPH +0xE7BD 0x71DF #CJK UNIFIED IDEOGRAPH +0xE7BE 0x7370 #CJK UNIFIED IDEOGRAPH +0xE7BF 0xF9AD #CJK COMPATIBILITY IDEOGRAPH +0xE7C0 0x745B #CJK UNIFIED IDEOGRAPH +0xE7C1 0xF9AE #CJK COMPATIBILITY IDEOGRAPH +0xE7C2 0x74D4 #CJK UNIFIED IDEOGRAPH +0xE7C3 0x76C8 #CJK UNIFIED IDEOGRAPH +0xE7C4 0x7A4E #CJK UNIFIED IDEOGRAPH +0xE7C5 0x7E93 #CJK UNIFIED IDEOGRAPH +0xE7C6 0xF9AF #CJK COMPATIBILITY IDEOGRAPH +0xE7C7 0xF9B0 #CJK COMPATIBILITY IDEOGRAPH +0xE7C8 0x82F1 #CJK UNIFIED IDEOGRAPH +0xE7C9 0x8A60 #CJK UNIFIED IDEOGRAPH +0xE7CA 0x8FCE #CJK UNIFIED IDEOGRAPH +0xE7CB 0xF9B1 #CJK COMPATIBILITY IDEOGRAPH +0xE7CC 0x9348 #CJK UNIFIED IDEOGRAPH +0xE7CD 0xF9B2 #CJK COMPATIBILITY IDEOGRAPH +0xE7CE 0x9719 #CJK UNIFIED IDEOGRAPH +0xE7CF 0xF9B3 #CJK COMPATIBILITY IDEOGRAPH +0xE7D0 0xF9B4 #CJK COMPATIBILITY IDEOGRAPH +0xE7D1 0x4E42 #CJK UNIFIED IDEOGRAPH +0xE7D2 0x502A #CJK UNIFIED IDEOGRAPH +0xE7D3 0xF9B5 #CJK COMPATIBILITY IDEOGRAPH +0xE7D4 0x5208 #CJK UNIFIED IDEOGRAPH +0xE7D5 0x53E1 #CJK UNIFIED IDEOGRAPH +0xE7D6 0x66F3 #CJK UNIFIED IDEOGRAPH +0xE7D7 0x6C6D #CJK UNIFIED IDEOGRAPH +0xE7D8 0x6FCA #CJK UNIFIED IDEOGRAPH +0xE7D9 0x730A #CJK UNIFIED IDEOGRAPH +0xE7DA 0x777F #CJK UNIFIED IDEOGRAPH +0xE7DB 0x7A62 #CJK UNIFIED IDEOGRAPH +0xE7DC 0x82AE #CJK UNIFIED IDEOGRAPH +0xE7DD 0x85DD #CJK UNIFIED IDEOGRAPH +0xE7DE 0x8602 #CJK UNIFIED IDEOGRAPH +0xE7DF 0xF9B6 #CJK COMPATIBILITY IDEOGRAPH +0xE7E0 0x88D4 #CJK UNIFIED IDEOGRAPH +0xE7E1 0x8A63 #CJK UNIFIED IDEOGRAPH +0xE7E2 0x8B7D #CJK UNIFIED IDEOGRAPH +0xE7E3 0x8C6B #CJK UNIFIED IDEOGRAPH +0xE7E4 0xF9B7 #CJK COMPATIBILITY IDEOGRAPH +0xE7E5 0x92B3 #CJK UNIFIED IDEOGRAPH +0xE7E6 0xF9B8 #CJK COMPATIBILITY IDEOGRAPH +0xE7E7 0x9713 #CJK UNIFIED IDEOGRAPH +0xE7E8 0x9810 #CJK UNIFIED IDEOGRAPH +0xE7E9 0x4E94 #CJK UNIFIED IDEOGRAPH +0xE7EA 0x4F0D #CJK UNIFIED IDEOGRAPH +0xE7EB 0x4FC9 #CJK UNIFIED IDEOGRAPH +0xE7EC 0x50B2 #CJK UNIFIED IDEOGRAPH +0xE7ED 0x5348 #CJK UNIFIED IDEOGRAPH +0xE7EE 0x543E #CJK UNIFIED IDEOGRAPH +0xE7EF 0x5433 #CJK UNIFIED IDEOGRAPH +0xE7F0 0x55DA #CJK UNIFIED IDEOGRAPH +0xE7F1 0x5862 #CJK UNIFIED IDEOGRAPH +0xE7F2 0x58BA #CJK UNIFIED IDEOGRAPH +0xE7F3 0x5967 #CJK UNIFIED IDEOGRAPH +0xE7F4 0x5A1B #CJK UNIFIED IDEOGRAPH +0xE7F5 0x5BE4 #CJK UNIFIED IDEOGRAPH +0xE7F6 0x609F #CJK UNIFIED IDEOGRAPH +0xE7F7 0xF9B9 #CJK COMPATIBILITY IDEOGRAPH +0xE7F8 0x61CA #CJK UNIFIED IDEOGRAPH +0xE7F9 0x6556 #CJK UNIFIED IDEOGRAPH +0xE7FA 0x65FF #CJK UNIFIED IDEOGRAPH +0xE7FB 0x6664 #CJK UNIFIED IDEOGRAPH +0xE7FC 0x68A7 #CJK UNIFIED IDEOGRAPH +0xE7FD 0x6C5A #CJK UNIFIED IDEOGRAPH +0xE7FE 0x6FB3 #CJK UNIFIED IDEOGRAPH +0xE8A1 0x70CF #CJK UNIFIED IDEOGRAPH +0xE8A2 0x71AC #CJK UNIFIED IDEOGRAPH +0xE8A3 0x7352 #CJK UNIFIED IDEOGRAPH +0xE8A4 0x7B7D #CJK UNIFIED IDEOGRAPH +0xE8A5 0x8708 #CJK UNIFIED IDEOGRAPH +0xE8A6 0x8AA4 #CJK UNIFIED IDEOGRAPH +0xE8A7 0x9C32 #CJK UNIFIED IDEOGRAPH +0xE8A8 0x9F07 #CJK UNIFIED IDEOGRAPH +0xE8A9 0x5C4B #CJK UNIFIED IDEOGRAPH +0xE8AA 0x6C83 #CJK UNIFIED IDEOGRAPH +0xE8AB 0x7344 #CJK UNIFIED IDEOGRAPH +0xE8AC 0x7389 #CJK UNIFIED IDEOGRAPH +0xE8AD 0x923A #CJK UNIFIED IDEOGRAPH +0xE8AE 0x6EAB #CJK UNIFIED IDEOGRAPH +0xE8AF 0x7465 #CJK UNIFIED IDEOGRAPH +0xE8B0 0x761F #CJK UNIFIED IDEOGRAPH +0xE8B1 0x7A69 #CJK UNIFIED IDEOGRAPH +0xE8B2 0x7E15 #CJK UNIFIED IDEOGRAPH +0xE8B3 0x860A #CJK UNIFIED IDEOGRAPH +0xE8B4 0x5140 #CJK UNIFIED IDEOGRAPH +0xE8B5 0x58C5 #CJK UNIFIED IDEOGRAPH +0xE8B6 0x64C1 #CJK UNIFIED IDEOGRAPH +0xE8B7 0x74EE #CJK UNIFIED IDEOGRAPH +0xE8B8 0x7515 #CJK UNIFIED IDEOGRAPH +0xE8B9 0x7670 #CJK UNIFIED IDEOGRAPH +0xE8BA 0x7FC1 #CJK UNIFIED IDEOGRAPH +0xE8BB 0x9095 #CJK UNIFIED IDEOGRAPH +0xE8BC 0x96CD #CJK UNIFIED IDEOGRAPH +0xE8BD 0x9954 #CJK UNIFIED IDEOGRAPH +0xE8BE 0x6E26 #CJK UNIFIED IDEOGRAPH +0xE8BF 0x74E6 #CJK UNIFIED IDEOGRAPH +0xE8C0 0x7AA9 #CJK UNIFIED IDEOGRAPH +0xE8C1 0x7AAA #CJK UNIFIED IDEOGRAPH +0xE8C2 0x81E5 #CJK UNIFIED IDEOGRAPH +0xE8C3 0x86D9 #CJK UNIFIED IDEOGRAPH +0xE8C4 0x8778 #CJK UNIFIED IDEOGRAPH +0xE8C5 0x8A1B #CJK UNIFIED IDEOGRAPH +0xE8C6 0x5A49 #CJK UNIFIED IDEOGRAPH +0xE8C7 0x5B8C #CJK UNIFIED IDEOGRAPH +0xE8C8 0x5B9B #CJK UNIFIED IDEOGRAPH +0xE8C9 0x68A1 #CJK UNIFIED IDEOGRAPH +0xE8CA 0x6900 #CJK UNIFIED IDEOGRAPH +0xE8CB 0x6D63 #CJK UNIFIED IDEOGRAPH +0xE8CC 0x73A9 #CJK UNIFIED IDEOGRAPH +0xE8CD 0x7413 #CJK UNIFIED IDEOGRAPH +0xE8CE 0x742C #CJK UNIFIED IDEOGRAPH +0xE8CF 0x7897 #CJK UNIFIED IDEOGRAPH +0xE8D0 0x7DE9 #CJK UNIFIED IDEOGRAPH +0xE8D1 0x7FEB #CJK UNIFIED IDEOGRAPH +0xE8D2 0x8118 #CJK UNIFIED IDEOGRAPH +0xE8D3 0x8155 #CJK UNIFIED IDEOGRAPH +0xE8D4 0x839E #CJK UNIFIED IDEOGRAPH +0xE8D5 0x8C4C #CJK UNIFIED IDEOGRAPH +0xE8D6 0x962E #CJK UNIFIED IDEOGRAPH +0xE8D7 0x9811 #CJK UNIFIED IDEOGRAPH +0xE8D8 0x66F0 #CJK UNIFIED IDEOGRAPH +0xE8D9 0x5F80 #CJK UNIFIED IDEOGRAPH +0xE8DA 0x65FA #CJK UNIFIED IDEOGRAPH +0xE8DB 0x6789 #CJK UNIFIED IDEOGRAPH +0xE8DC 0x6C6A #CJK UNIFIED IDEOGRAPH +0xE8DD 0x738B #CJK UNIFIED IDEOGRAPH +0xE8DE 0x502D #CJK UNIFIED IDEOGRAPH +0xE8DF 0x5A03 #CJK UNIFIED IDEOGRAPH +0xE8E0 0x6B6A #CJK UNIFIED IDEOGRAPH +0xE8E1 0x77EE #CJK UNIFIED IDEOGRAPH +0xE8E2 0x5916 #CJK UNIFIED IDEOGRAPH +0xE8E3 0x5D6C #CJK UNIFIED IDEOGRAPH +0xE8E4 0x5DCD #CJK UNIFIED IDEOGRAPH +0xE8E5 0x7325 #CJK UNIFIED IDEOGRAPH +0xE8E6 0x754F #CJK UNIFIED IDEOGRAPH +0xE8E7 0xF9BA #CJK COMPATIBILITY IDEOGRAPH +0xE8E8 0xF9BB #CJK COMPATIBILITY IDEOGRAPH +0xE8E9 0x50E5 #CJK UNIFIED IDEOGRAPH +0xE8EA 0x51F9 #CJK UNIFIED IDEOGRAPH +0xE8EB 0x582F #CJK UNIFIED IDEOGRAPH +0xE8EC 0x592D #CJK UNIFIED IDEOGRAPH +0xE8ED 0x5996 #CJK UNIFIED IDEOGRAPH +0xE8EE 0x59DA #CJK UNIFIED IDEOGRAPH +0xE8EF 0x5BE5 #CJK UNIFIED IDEOGRAPH +0xE8F0 0xF9BC #CJK COMPATIBILITY IDEOGRAPH +0xE8F1 0xF9BD #CJK COMPATIBILITY IDEOGRAPH +0xE8F2 0x5DA2 #CJK UNIFIED IDEOGRAPH +0xE8F3 0x62D7 #CJK UNIFIED IDEOGRAPH +0xE8F4 0x6416 #CJK UNIFIED IDEOGRAPH +0xE8F5 0x6493 #CJK UNIFIED IDEOGRAPH +0xE8F6 0x64FE #CJK UNIFIED IDEOGRAPH +0xE8F7 0xF9BE #CJK COMPATIBILITY IDEOGRAPH +0xE8F8 0x66DC #CJK UNIFIED IDEOGRAPH +0xE8F9 0xF9BF #CJK COMPATIBILITY IDEOGRAPH +0xE8FA 0x6A48 #CJK UNIFIED IDEOGRAPH +0xE8FB 0xF9C0 #CJK COMPATIBILITY IDEOGRAPH +0xE8FC 0x71FF #CJK UNIFIED IDEOGRAPH +0xE8FD 0x7464 #CJK UNIFIED IDEOGRAPH +0xE8FE 0xF9C1 #CJK COMPATIBILITY IDEOGRAPH +0xE9A1 0x7A88 #CJK UNIFIED IDEOGRAPH +0xE9A2 0x7AAF #CJK UNIFIED IDEOGRAPH +0xE9A3 0x7E47 #CJK UNIFIED IDEOGRAPH +0xE9A4 0x7E5E #CJK UNIFIED IDEOGRAPH +0xE9A5 0x8000 #CJK UNIFIED IDEOGRAPH +0xE9A6 0x8170 #CJK UNIFIED IDEOGRAPH +0xE9A7 0xF9C2 #CJK COMPATIBILITY IDEOGRAPH +0xE9A8 0x87EF #CJK UNIFIED IDEOGRAPH +0xE9A9 0x8981 #CJK UNIFIED IDEOGRAPH +0xE9AA 0x8B20 #CJK UNIFIED IDEOGRAPH +0xE9AB 0x9059 #CJK UNIFIED IDEOGRAPH +0xE9AC 0xF9C3 #CJK COMPATIBILITY IDEOGRAPH +0xE9AD 0x9080 #CJK UNIFIED IDEOGRAPH +0xE9AE 0x9952 #CJK UNIFIED IDEOGRAPH +0xE9AF 0x617E #CJK UNIFIED IDEOGRAPH +0xE9B0 0x6B32 #CJK UNIFIED IDEOGRAPH +0xE9B1 0x6D74 #CJK UNIFIED IDEOGRAPH +0xE9B2 0x7E1F #CJK UNIFIED IDEOGRAPH +0xE9B3 0x8925 #CJK UNIFIED IDEOGRAPH +0xE9B4 0x8FB1 #CJK UNIFIED IDEOGRAPH +0xE9B5 0x4FD1 #CJK UNIFIED IDEOGRAPH +0xE9B6 0x50AD #CJK UNIFIED IDEOGRAPH +0xE9B7 0x5197 #CJK UNIFIED IDEOGRAPH +0xE9B8 0x52C7 #CJK UNIFIED IDEOGRAPH +0xE9B9 0x57C7 #CJK UNIFIED IDEOGRAPH +0xE9BA 0x5889 #CJK UNIFIED IDEOGRAPH +0xE9BB 0x5BB9 #CJK UNIFIED IDEOGRAPH +0xE9BC 0x5EB8 #CJK UNIFIED IDEOGRAPH +0xE9BD 0x6142 #CJK UNIFIED IDEOGRAPH +0xE9BE 0x6995 #CJK UNIFIED IDEOGRAPH +0xE9BF 0x6D8C #CJK UNIFIED IDEOGRAPH +0xE9C0 0x6E67 #CJK UNIFIED IDEOGRAPH +0xE9C1 0x6EB6 #CJK UNIFIED IDEOGRAPH +0xE9C2 0x7194 #CJK UNIFIED IDEOGRAPH +0xE9C3 0x7462 #CJK UNIFIED IDEOGRAPH +0xE9C4 0x7528 #CJK UNIFIED IDEOGRAPH +0xE9C5 0x752C #CJK UNIFIED IDEOGRAPH +0xE9C6 0x8073 #CJK UNIFIED IDEOGRAPH +0xE9C7 0x8338 #CJK UNIFIED IDEOGRAPH +0xE9C8 0x84C9 #CJK UNIFIED IDEOGRAPH +0xE9C9 0x8E0A #CJK UNIFIED IDEOGRAPH +0xE9CA 0x9394 #CJK UNIFIED IDEOGRAPH +0xE9CB 0x93DE #CJK UNIFIED IDEOGRAPH +0xE9CC 0xF9C4 #CJK COMPATIBILITY IDEOGRAPH +0xE9CD 0x4E8E #CJK UNIFIED IDEOGRAPH +0xE9CE 0x4F51 #CJK UNIFIED IDEOGRAPH +0xE9CF 0x5076 #CJK UNIFIED IDEOGRAPH +0xE9D0 0x512A #CJK UNIFIED IDEOGRAPH +0xE9D1 0x53C8 #CJK UNIFIED IDEOGRAPH +0xE9D2 0x53CB #CJK UNIFIED IDEOGRAPH +0xE9D3 0x53F3 #CJK UNIFIED IDEOGRAPH +0xE9D4 0x5B87 #CJK UNIFIED IDEOGRAPH +0xE9D5 0x5BD3 #CJK UNIFIED IDEOGRAPH +0xE9D6 0x5C24 #CJK UNIFIED IDEOGRAPH +0xE9D7 0x611A #CJK UNIFIED IDEOGRAPH +0xE9D8 0x6182 #CJK UNIFIED IDEOGRAPH +0xE9D9 0x65F4 #CJK UNIFIED IDEOGRAPH +0xE9DA 0x725B #CJK UNIFIED IDEOGRAPH +0xE9DB 0x7397 #CJK UNIFIED IDEOGRAPH +0xE9DC 0x7440 #CJK UNIFIED IDEOGRAPH +0xE9DD 0x76C2 #CJK UNIFIED IDEOGRAPH +0xE9DE 0x7950 #CJK UNIFIED IDEOGRAPH +0xE9DF 0x7991 #CJK UNIFIED IDEOGRAPH +0xE9E0 0x79B9 #CJK UNIFIED IDEOGRAPH +0xE9E1 0x7D06 #CJK UNIFIED IDEOGRAPH +0xE9E2 0x7FBD #CJK UNIFIED IDEOGRAPH +0xE9E3 0x828B #CJK UNIFIED IDEOGRAPH +0xE9E4 0x85D5 #CJK UNIFIED IDEOGRAPH +0xE9E5 0x865E #CJK UNIFIED IDEOGRAPH +0xE9E6 0x8FC2 #CJK UNIFIED IDEOGRAPH +0xE9E7 0x9047 #CJK UNIFIED IDEOGRAPH +0xE9E8 0x90F5 #CJK UNIFIED IDEOGRAPH +0xE9E9 0x91EA #CJK UNIFIED IDEOGRAPH +0xE9EA 0x9685 #CJK UNIFIED IDEOGRAPH +0xE9EB 0x96E8 #CJK UNIFIED IDEOGRAPH +0xE9EC 0x96E9 #CJK UNIFIED IDEOGRAPH +0xE9ED 0x52D6 #CJK UNIFIED IDEOGRAPH +0xE9EE 0x5F67 #CJK UNIFIED IDEOGRAPH +0xE9EF 0x65ED #CJK UNIFIED IDEOGRAPH +0xE9F0 0x6631 #CJK UNIFIED IDEOGRAPH +0xE9F1 0x682F #CJK UNIFIED IDEOGRAPH +0xE9F2 0x715C #CJK UNIFIED IDEOGRAPH +0xE9F3 0x7A36 #CJK UNIFIED IDEOGRAPH +0xE9F4 0x90C1 #CJK UNIFIED IDEOGRAPH +0xE9F5 0x980A #CJK UNIFIED IDEOGRAPH +0xE9F6 0x4E91 #CJK UNIFIED IDEOGRAPH +0xE9F7 0xF9C5 #CJK COMPATIBILITY IDEOGRAPH +0xE9F8 0x6A52 #CJK UNIFIED IDEOGRAPH +0xE9F9 0x6B9E #CJK UNIFIED IDEOGRAPH +0xE9FA 0x6F90 #CJK UNIFIED IDEOGRAPH +0xE9FB 0x7189 #CJK UNIFIED IDEOGRAPH +0xE9FC 0x8018 #CJK UNIFIED IDEOGRAPH +0xE9FD 0x82B8 #CJK UNIFIED IDEOGRAPH +0xE9FE 0x8553 #CJK UNIFIED IDEOGRAPH +0xEAA1 0x904B #CJK UNIFIED IDEOGRAPH +0xEAA2 0x9695 #CJK UNIFIED IDEOGRAPH +0xEAA3 0x96F2 #CJK UNIFIED IDEOGRAPH +0xEAA4 0x97FB #CJK UNIFIED IDEOGRAPH +0xEAA5 0x851A #CJK UNIFIED IDEOGRAPH +0xEAA6 0x9B31 #CJK UNIFIED IDEOGRAPH +0xEAA7 0x4E90 #CJK UNIFIED IDEOGRAPH +0xEAA8 0x718A #CJK UNIFIED IDEOGRAPH +0xEAA9 0x96C4 #CJK UNIFIED IDEOGRAPH +0xEAAA 0x5143 #CJK UNIFIED IDEOGRAPH +0xEAAB 0x539F #CJK UNIFIED IDEOGRAPH +0xEAAC 0x54E1 #CJK UNIFIED IDEOGRAPH +0xEAAD 0x5713 #CJK UNIFIED IDEOGRAPH +0xEAAE 0x5712 #CJK UNIFIED IDEOGRAPH +0xEAAF 0x57A3 #CJK UNIFIED IDEOGRAPH +0xEAB0 0x5A9B #CJK UNIFIED IDEOGRAPH +0xEAB1 0x5AC4 #CJK UNIFIED IDEOGRAPH +0xEAB2 0x5BC3 #CJK UNIFIED IDEOGRAPH +0xEAB3 0x6028 #CJK UNIFIED IDEOGRAPH +0xEAB4 0x613F #CJK UNIFIED IDEOGRAPH +0xEAB5 0x63F4 #CJK UNIFIED IDEOGRAPH +0xEAB6 0x6C85 #CJK UNIFIED IDEOGRAPH +0xEAB7 0x6D39 #CJK UNIFIED IDEOGRAPH +0xEAB8 0x6E72 #CJK UNIFIED IDEOGRAPH +0xEAB9 0x6E90 #CJK UNIFIED IDEOGRAPH +0xEABA 0x7230 #CJK UNIFIED IDEOGRAPH +0xEABB 0x733F #CJK UNIFIED IDEOGRAPH +0xEABC 0x7457 #CJK UNIFIED IDEOGRAPH +0xEABD 0x82D1 #CJK UNIFIED IDEOGRAPH +0xEABE 0x8881 #CJK UNIFIED IDEOGRAPH +0xEABF 0x8F45 #CJK UNIFIED IDEOGRAPH +0xEAC0 0x9060 #CJK UNIFIED IDEOGRAPH +0xEAC1 0xF9C6 #CJK COMPATIBILITY IDEOGRAPH +0xEAC2 0x9662 #CJK UNIFIED IDEOGRAPH +0xEAC3 0x9858 #CJK UNIFIED IDEOGRAPH +0xEAC4 0x9D1B #CJK UNIFIED IDEOGRAPH +0xEAC5 0x6708 #CJK UNIFIED IDEOGRAPH +0xEAC6 0x8D8A #CJK UNIFIED IDEOGRAPH +0xEAC7 0x925E #CJK UNIFIED IDEOGRAPH +0xEAC8 0x4F4D #CJK UNIFIED IDEOGRAPH +0xEAC9 0x5049 #CJK UNIFIED IDEOGRAPH +0xEACA 0x50DE #CJK UNIFIED IDEOGRAPH +0xEACB 0x5371 #CJK UNIFIED IDEOGRAPH +0xEACC 0x570D #CJK UNIFIED IDEOGRAPH +0xEACD 0x59D4 #CJK UNIFIED IDEOGRAPH +0xEACE 0x5A01 #CJK UNIFIED IDEOGRAPH +0xEACF 0x5C09 #CJK UNIFIED IDEOGRAPH +0xEAD0 0x6170 #CJK UNIFIED IDEOGRAPH +0xEAD1 0x6690 #CJK UNIFIED IDEOGRAPH +0xEAD2 0x6E2D #CJK UNIFIED IDEOGRAPH +0xEAD3 0x7232 #CJK UNIFIED IDEOGRAPH +0xEAD4 0x744B #CJK UNIFIED IDEOGRAPH +0xEAD5 0x7DEF #CJK UNIFIED IDEOGRAPH +0xEAD6 0x80C3 #CJK UNIFIED IDEOGRAPH +0xEAD7 0x840E #CJK UNIFIED IDEOGRAPH +0xEAD8 0x8466 #CJK UNIFIED IDEOGRAPH +0xEAD9 0x853F #CJK UNIFIED IDEOGRAPH +0xEADA 0x875F #CJK UNIFIED IDEOGRAPH +0xEADB 0x885B #CJK UNIFIED IDEOGRAPH +0xEADC 0x8918 #CJK UNIFIED IDEOGRAPH +0xEADD 0x8B02 #CJK UNIFIED IDEOGRAPH +0xEADE 0x9055 #CJK UNIFIED IDEOGRAPH +0xEADF 0x97CB #CJK UNIFIED IDEOGRAPH +0xEAE0 0x9B4F #CJK UNIFIED IDEOGRAPH +0xEAE1 0x4E73 #CJK UNIFIED IDEOGRAPH +0xEAE2 0x4F91 #CJK UNIFIED IDEOGRAPH +0xEAE3 0x5112 #CJK UNIFIED IDEOGRAPH +0xEAE4 0x516A #CJK UNIFIED IDEOGRAPH +0xEAE5 0xF9C7 #CJK COMPATIBILITY IDEOGRAPH +0xEAE6 0x552F #CJK UNIFIED IDEOGRAPH +0xEAE7 0x55A9 #CJK UNIFIED IDEOGRAPH +0xEAE8 0x5B7A #CJK UNIFIED IDEOGRAPH +0xEAE9 0x5BA5 #CJK UNIFIED IDEOGRAPH +0xEAEA 0x5E7C #CJK UNIFIED IDEOGRAPH +0xEAEB 0x5E7D #CJK UNIFIED IDEOGRAPH +0xEAEC 0x5EBE #CJK UNIFIED IDEOGRAPH +0xEAED 0x60A0 #CJK UNIFIED IDEOGRAPH +0xEAEE 0x60DF #CJK UNIFIED IDEOGRAPH +0xEAEF 0x6108 #CJK UNIFIED IDEOGRAPH +0xEAF0 0x6109 #CJK UNIFIED IDEOGRAPH +0xEAF1 0x63C4 #CJK UNIFIED IDEOGRAPH +0xEAF2 0x6538 #CJK UNIFIED IDEOGRAPH +0xEAF3 0x6709 #CJK UNIFIED IDEOGRAPH +0xEAF4 0xF9C8 #CJK COMPATIBILITY IDEOGRAPH +0xEAF5 0x67D4 #CJK UNIFIED IDEOGRAPH +0xEAF6 0x67DA #CJK UNIFIED IDEOGRAPH +0xEAF7 0xF9C9 #CJK COMPATIBILITY IDEOGRAPH +0xEAF8 0x6961 #CJK UNIFIED IDEOGRAPH +0xEAF9 0x6962 #CJK UNIFIED IDEOGRAPH +0xEAFA 0x6CB9 #CJK UNIFIED IDEOGRAPH +0xEAFB 0x6D27 #CJK UNIFIED IDEOGRAPH +0xEAFC 0xF9CA #CJK COMPATIBILITY IDEOGRAPH +0xEAFD 0x6E38 #CJK UNIFIED IDEOGRAPH +0xEAFE 0xF9CB #CJK COMPATIBILITY IDEOGRAPH +0xEBA1 0x6FE1 #CJK UNIFIED IDEOGRAPH +0xEBA2 0x7336 #CJK UNIFIED IDEOGRAPH +0xEBA3 0x7337 #CJK UNIFIED IDEOGRAPH +0xEBA4 0xF9CC #CJK COMPATIBILITY IDEOGRAPH +0xEBA5 0x745C #CJK UNIFIED IDEOGRAPH +0xEBA6 0x7531 #CJK UNIFIED IDEOGRAPH +0xEBA7 0xF9CD #CJK COMPATIBILITY IDEOGRAPH +0xEBA8 0x7652 #CJK UNIFIED IDEOGRAPH +0xEBA9 0xF9CE #CJK COMPATIBILITY IDEOGRAPH +0xEBAA 0xF9CF #CJK COMPATIBILITY IDEOGRAPH +0xEBAB 0x7DAD #CJK UNIFIED IDEOGRAPH +0xEBAC 0x81FE #CJK UNIFIED IDEOGRAPH +0xEBAD 0x8438 #CJK UNIFIED IDEOGRAPH +0xEBAE 0x88D5 #CJK UNIFIED IDEOGRAPH +0xEBAF 0x8A98 #CJK UNIFIED IDEOGRAPH +0xEBB0 0x8ADB #CJK UNIFIED IDEOGRAPH +0xEBB1 0x8AED #CJK UNIFIED IDEOGRAPH +0xEBB2 0x8E30 #CJK UNIFIED IDEOGRAPH +0xEBB3 0x8E42 #CJK UNIFIED IDEOGRAPH +0xEBB4 0x904A #CJK UNIFIED IDEOGRAPH +0xEBB5 0x903E #CJK UNIFIED IDEOGRAPH +0xEBB6 0x907A #CJK UNIFIED IDEOGRAPH +0xEBB7 0x9149 #CJK UNIFIED IDEOGRAPH +0xEBB8 0x91C9 #CJK UNIFIED IDEOGRAPH +0xEBB9 0x936E #CJK UNIFIED IDEOGRAPH +0xEBBA 0xF9D0 #CJK COMPATIBILITY IDEOGRAPH +0xEBBB 0xF9D1 #CJK COMPATIBILITY IDEOGRAPH +0xEBBC 0x5809 #CJK UNIFIED IDEOGRAPH +0xEBBD 0xF9D2 #CJK COMPATIBILITY IDEOGRAPH +0xEBBE 0x6BD3 #CJK UNIFIED IDEOGRAPH +0xEBBF 0x8089 #CJK UNIFIED IDEOGRAPH +0xEBC0 0x80B2 #CJK UNIFIED IDEOGRAPH +0xEBC1 0xF9D3 #CJK COMPATIBILITY IDEOGRAPH +0xEBC2 0xF9D4 #CJK COMPATIBILITY IDEOGRAPH +0xEBC3 0x5141 #CJK UNIFIED IDEOGRAPH +0xEBC4 0x596B #CJK UNIFIED IDEOGRAPH +0xEBC5 0x5C39 #CJK UNIFIED IDEOGRAPH +0xEBC6 0xF9D5 #CJK COMPATIBILITY IDEOGRAPH +0xEBC7 0xF9D6 #CJK COMPATIBILITY IDEOGRAPH +0xEBC8 0x6F64 #CJK UNIFIED IDEOGRAPH +0xEBC9 0x73A7 #CJK UNIFIED IDEOGRAPH +0xEBCA 0x80E4 #CJK UNIFIED IDEOGRAPH +0xEBCB 0x8D07 #CJK UNIFIED IDEOGRAPH +0xEBCC 0xF9D7 #CJK COMPATIBILITY IDEOGRAPH +0xEBCD 0x9217 #CJK UNIFIED IDEOGRAPH +0xEBCE 0x958F #CJK UNIFIED IDEOGRAPH +0xEBCF 0xF9D8 #CJK COMPATIBILITY IDEOGRAPH +0xEBD0 0xF9D9 #CJK COMPATIBILITY IDEOGRAPH +0xEBD1 0xF9DA #CJK COMPATIBILITY IDEOGRAPH +0xEBD2 0xF9DB #CJK COMPATIBILITY IDEOGRAPH +0xEBD3 0x807F #CJK UNIFIED IDEOGRAPH +0xEBD4 0x620E #CJK UNIFIED IDEOGRAPH +0xEBD5 0x701C #CJK UNIFIED IDEOGRAPH +0xEBD6 0x7D68 #CJK UNIFIED IDEOGRAPH +0xEBD7 0x878D #CJK UNIFIED IDEOGRAPH +0xEBD8 0xF9DC #CJK COMPATIBILITY IDEOGRAPH +0xEBD9 0x57A0 #CJK UNIFIED IDEOGRAPH +0xEBDA 0x6069 #CJK UNIFIED IDEOGRAPH +0xEBDB 0x6147 #CJK UNIFIED IDEOGRAPH +0xEBDC 0x6BB7 #CJK UNIFIED IDEOGRAPH +0xEBDD 0x8ABE #CJK UNIFIED IDEOGRAPH +0xEBDE 0x9280 #CJK UNIFIED IDEOGRAPH +0xEBDF 0x96B1 #CJK UNIFIED IDEOGRAPH +0xEBE0 0x4E59 #CJK UNIFIED IDEOGRAPH +0xEBE1 0x541F #CJK UNIFIED IDEOGRAPH +0xEBE2 0x6DEB #CJK UNIFIED IDEOGRAPH +0xEBE3 0x852D #CJK UNIFIED IDEOGRAPH +0xEBE4 0x9670 #CJK UNIFIED IDEOGRAPH +0xEBE5 0x97F3 #CJK UNIFIED IDEOGRAPH +0xEBE6 0x98EE #CJK UNIFIED IDEOGRAPH +0xEBE7 0x63D6 #CJK UNIFIED IDEOGRAPH +0xEBE8 0x6CE3 #CJK UNIFIED IDEOGRAPH +0xEBE9 0x9091 #CJK UNIFIED IDEOGRAPH +0xEBEA 0x51DD #CJK UNIFIED IDEOGRAPH +0xEBEB 0x61C9 #CJK UNIFIED IDEOGRAPH +0xEBEC 0x81BA #CJK UNIFIED IDEOGRAPH +0xEBED 0x9DF9 #CJK UNIFIED IDEOGRAPH +0xEBEE 0x4F9D #CJK UNIFIED IDEOGRAPH +0xEBEF 0x501A #CJK UNIFIED IDEOGRAPH +0xEBF0 0x5100 #CJK UNIFIED IDEOGRAPH +0xEBF1 0x5B9C #CJK UNIFIED IDEOGRAPH +0xEBF2 0x610F #CJK UNIFIED IDEOGRAPH +0xEBF3 0x61FF #CJK UNIFIED IDEOGRAPH +0xEBF4 0x64EC #CJK UNIFIED IDEOGRAPH +0xEBF5 0x6905 #CJK UNIFIED IDEOGRAPH +0xEBF6 0x6BC5 #CJK UNIFIED IDEOGRAPH +0xEBF7 0x7591 #CJK UNIFIED IDEOGRAPH +0xEBF8 0x77E3 #CJK UNIFIED IDEOGRAPH +0xEBF9 0x7FA9 #CJK UNIFIED IDEOGRAPH +0xEBFA 0x8264 #CJK UNIFIED IDEOGRAPH +0xEBFB 0x858F #CJK UNIFIED IDEOGRAPH +0xEBFC 0x87FB #CJK UNIFIED IDEOGRAPH +0xEBFD 0x8863 #CJK UNIFIED IDEOGRAPH +0xEBFE 0x8ABC #CJK UNIFIED IDEOGRAPH +0xECA1 0x8B70 #CJK UNIFIED IDEOGRAPH +0xECA2 0x91AB #CJK UNIFIED IDEOGRAPH +0xECA3 0x4E8C #CJK UNIFIED IDEOGRAPH +0xECA4 0x4EE5 #CJK UNIFIED IDEOGRAPH +0xECA5 0x4F0A #CJK UNIFIED IDEOGRAPH +0xECA6 0xF9DD #CJK COMPATIBILITY IDEOGRAPH +0xECA7 0xF9DE #CJK COMPATIBILITY IDEOGRAPH +0xECA8 0x5937 #CJK UNIFIED IDEOGRAPH +0xECA9 0x59E8 #CJK UNIFIED IDEOGRAPH +0xECAA 0xF9DF #CJK COMPATIBILITY IDEOGRAPH +0xECAB 0x5DF2 #CJK UNIFIED IDEOGRAPH +0xECAC 0x5F1B #CJK UNIFIED IDEOGRAPH +0xECAD 0x5F5B #CJK UNIFIED IDEOGRAPH +0xECAE 0x6021 #CJK UNIFIED IDEOGRAPH +0xECAF 0xF9E0 #CJK COMPATIBILITY IDEOGRAPH +0xECB0 0xF9E1 #CJK COMPATIBILITY IDEOGRAPH +0xECB1 0xF9E2 #CJK COMPATIBILITY IDEOGRAPH +0xECB2 0xF9E3 #CJK COMPATIBILITY IDEOGRAPH +0xECB3 0x723E #CJK UNIFIED IDEOGRAPH +0xECB4 0x73E5 #CJK UNIFIED IDEOGRAPH +0xECB5 0xF9E4 #CJK COMPATIBILITY IDEOGRAPH +0xECB6 0x7570 #CJK UNIFIED IDEOGRAPH +0xECB7 0x75CD #CJK UNIFIED IDEOGRAPH +0xECB8 0xF9E5 #CJK COMPATIBILITY IDEOGRAPH +0xECB9 0x79FB #CJK UNIFIED IDEOGRAPH +0xECBA 0xF9E6 #CJK COMPATIBILITY IDEOGRAPH +0xECBB 0x800C #CJK UNIFIED IDEOGRAPH +0xECBC 0x8033 #CJK UNIFIED IDEOGRAPH +0xECBD 0x8084 #CJK UNIFIED IDEOGRAPH +0xECBE 0x82E1 #CJK UNIFIED IDEOGRAPH +0xECBF 0x8351 #CJK UNIFIED IDEOGRAPH +0xECC0 0xF9E7 #CJK COMPATIBILITY IDEOGRAPH +0xECC1 0xF9E8 #CJK COMPATIBILITY IDEOGRAPH +0xECC2 0x8CBD #CJK UNIFIED IDEOGRAPH +0xECC3 0x8CB3 #CJK UNIFIED IDEOGRAPH +0xECC4 0x9087 #CJK UNIFIED IDEOGRAPH +0xECC5 0xF9E9 #CJK COMPATIBILITY IDEOGRAPH +0xECC6 0xF9EA #CJK COMPATIBILITY IDEOGRAPH +0xECC7 0x98F4 #CJK UNIFIED IDEOGRAPH +0xECC8 0x990C #CJK UNIFIED IDEOGRAPH +0xECC9 0xF9EB #CJK COMPATIBILITY IDEOGRAPH +0xECCA 0xF9EC #CJK COMPATIBILITY IDEOGRAPH +0xECCB 0x7037 #CJK UNIFIED IDEOGRAPH +0xECCC 0x76CA #CJK UNIFIED IDEOGRAPH +0xECCD 0x7FCA #CJK UNIFIED IDEOGRAPH +0xECCE 0x7FCC #CJK UNIFIED IDEOGRAPH +0xECCF 0x7FFC #CJK UNIFIED IDEOGRAPH +0xECD0 0x8B1A #CJK UNIFIED IDEOGRAPH +0xECD1 0x4EBA #CJK UNIFIED IDEOGRAPH +0xECD2 0x4EC1 #CJK UNIFIED IDEOGRAPH +0xECD3 0x5203 #CJK UNIFIED IDEOGRAPH +0xECD4 0x5370 #CJK UNIFIED IDEOGRAPH +0xECD5 0xF9ED #CJK COMPATIBILITY IDEOGRAPH +0xECD6 0x54BD #CJK UNIFIED IDEOGRAPH +0xECD7 0x56E0 #CJK UNIFIED IDEOGRAPH +0xECD8 0x59FB #CJK UNIFIED IDEOGRAPH +0xECD9 0x5BC5 #CJK UNIFIED IDEOGRAPH +0xECDA 0x5F15 #CJK UNIFIED IDEOGRAPH +0xECDB 0x5FCD #CJK UNIFIED IDEOGRAPH +0xECDC 0x6E6E #CJK UNIFIED IDEOGRAPH +0xECDD 0xF9EE #CJK COMPATIBILITY IDEOGRAPH +0xECDE 0xF9EF #CJK COMPATIBILITY IDEOGRAPH +0xECDF 0x7D6A #CJK UNIFIED IDEOGRAPH +0xECE0 0x8335 #CJK UNIFIED IDEOGRAPH +0xECE1 0xF9F0 #CJK COMPATIBILITY IDEOGRAPH +0xECE2 0x8693 #CJK UNIFIED IDEOGRAPH +0xECE3 0x8A8D #CJK UNIFIED IDEOGRAPH +0xECE4 0xF9F1 #CJK COMPATIBILITY IDEOGRAPH +0xECE5 0x976D #CJK UNIFIED IDEOGRAPH +0xECE6 0x9777 #CJK UNIFIED IDEOGRAPH +0xECE7 0xF9F2 #CJK COMPATIBILITY IDEOGRAPH +0xECE8 0xF9F3 #CJK COMPATIBILITY IDEOGRAPH +0xECE9 0x4E00 #CJK UNIFIED IDEOGRAPH +0xECEA 0x4F5A #CJK UNIFIED IDEOGRAPH +0xECEB 0x4F7E #CJK UNIFIED IDEOGRAPH +0xECEC 0x58F9 #CJK UNIFIED IDEOGRAPH +0xECED 0x65E5 #CJK UNIFIED IDEOGRAPH +0xECEE 0x6EA2 #CJK UNIFIED IDEOGRAPH +0xECEF 0x9038 #CJK UNIFIED IDEOGRAPH +0xECF0 0x93B0 #CJK UNIFIED IDEOGRAPH +0xECF1 0x99B9 #CJK UNIFIED IDEOGRAPH +0xECF2 0x4EFB #CJK UNIFIED IDEOGRAPH +0xECF3 0x58EC #CJK UNIFIED IDEOGRAPH +0xECF4 0x598A #CJK UNIFIED IDEOGRAPH +0xECF5 0x59D9 #CJK UNIFIED IDEOGRAPH +0xECF6 0x6041 #CJK UNIFIED IDEOGRAPH +0xECF7 0xF9F4 #CJK COMPATIBILITY IDEOGRAPH +0xECF8 0xF9F5 #CJK COMPATIBILITY IDEOGRAPH +0xECF9 0x7A14 #CJK UNIFIED IDEOGRAPH +0xECFA 0xF9F6 #CJK COMPATIBILITY IDEOGRAPH +0xECFB 0x834F #CJK UNIFIED IDEOGRAPH +0xECFC 0x8CC3 #CJK UNIFIED IDEOGRAPH +0xECFD 0x5165 #CJK UNIFIED IDEOGRAPH +0xECFE 0x5344 #CJK UNIFIED IDEOGRAPH +0xEDA1 0xF9F7 #CJK COMPATIBILITY IDEOGRAPH +0xEDA2 0xF9F8 #CJK COMPATIBILITY IDEOGRAPH +0xEDA3 0xF9F9 #CJK COMPATIBILITY IDEOGRAPH +0xEDA4 0x4ECD #CJK UNIFIED IDEOGRAPH +0xEDA5 0x5269 #CJK UNIFIED IDEOGRAPH +0xEDA6 0x5B55 #CJK UNIFIED IDEOGRAPH +0xEDA7 0x82BF #CJK UNIFIED IDEOGRAPH +0xEDA8 0x4ED4 #CJK UNIFIED IDEOGRAPH +0xEDA9 0x523A #CJK UNIFIED IDEOGRAPH +0xEDAA 0x54A8 #CJK UNIFIED IDEOGRAPH +0xEDAB 0x59C9 #CJK UNIFIED IDEOGRAPH +0xEDAC 0x59FF #CJK UNIFIED IDEOGRAPH +0xEDAD 0x5B50 #CJK UNIFIED IDEOGRAPH +0xEDAE 0x5B57 #CJK UNIFIED IDEOGRAPH +0xEDAF 0x5B5C #CJK UNIFIED IDEOGRAPH +0xEDB0 0x6063 #CJK UNIFIED IDEOGRAPH +0xEDB1 0x6148 #CJK UNIFIED IDEOGRAPH +0xEDB2 0x6ECB #CJK UNIFIED IDEOGRAPH +0xEDB3 0x7099 #CJK UNIFIED IDEOGRAPH +0xEDB4 0x716E #CJK UNIFIED IDEOGRAPH +0xEDB5 0x7386 #CJK UNIFIED IDEOGRAPH +0xEDB6 0x74F7 #CJK UNIFIED IDEOGRAPH +0xEDB7 0x75B5 #CJK UNIFIED IDEOGRAPH +0xEDB8 0x78C1 #CJK UNIFIED IDEOGRAPH +0xEDB9 0x7D2B #CJK UNIFIED IDEOGRAPH +0xEDBA 0x8005 #CJK UNIFIED IDEOGRAPH +0xEDBB 0x81EA #CJK UNIFIED IDEOGRAPH +0xEDBC 0x8328 #CJK UNIFIED IDEOGRAPH +0xEDBD 0x8517 #CJK UNIFIED IDEOGRAPH +0xEDBE 0x85C9 #CJK UNIFIED IDEOGRAPH +0xEDBF 0x8AEE #CJK UNIFIED IDEOGRAPH +0xEDC0 0x8CC7 #CJK UNIFIED IDEOGRAPH +0xEDC1 0x96CC #CJK UNIFIED IDEOGRAPH +0xEDC2 0x4F5C #CJK UNIFIED IDEOGRAPH +0xEDC3 0x52FA #CJK UNIFIED IDEOGRAPH +0xEDC4 0x56BC #CJK UNIFIED IDEOGRAPH +0xEDC5 0x65AB #CJK UNIFIED IDEOGRAPH +0xEDC6 0x6628 #CJK UNIFIED IDEOGRAPH +0xEDC7 0x707C #CJK UNIFIED IDEOGRAPH +0xEDC8 0x70B8 #CJK UNIFIED IDEOGRAPH +0xEDC9 0x7235 #CJK UNIFIED IDEOGRAPH +0xEDCA 0x7DBD #CJK UNIFIED IDEOGRAPH +0xEDCB 0x828D #CJK UNIFIED IDEOGRAPH +0xEDCC 0x914C #CJK UNIFIED IDEOGRAPH +0xEDCD 0x96C0 #CJK UNIFIED IDEOGRAPH +0xEDCE 0x9D72 #CJK UNIFIED IDEOGRAPH +0xEDCF 0x5B71 #CJK UNIFIED IDEOGRAPH +0xEDD0 0x68E7 #CJK UNIFIED IDEOGRAPH +0xEDD1 0x6B98 #CJK UNIFIED IDEOGRAPH +0xEDD2 0x6F7A #CJK UNIFIED IDEOGRAPH +0xEDD3 0x76DE #CJK UNIFIED IDEOGRAPH +0xEDD4 0x5C91 #CJK UNIFIED IDEOGRAPH +0xEDD5 0x66AB #CJK UNIFIED IDEOGRAPH +0xEDD6 0x6F5B #CJK UNIFIED IDEOGRAPH +0xEDD7 0x7BB4 #CJK UNIFIED IDEOGRAPH +0xEDD8 0x7C2A #CJK UNIFIED IDEOGRAPH +0xEDD9 0x8836 #CJK UNIFIED IDEOGRAPH +0xEDDA 0x96DC #CJK UNIFIED IDEOGRAPH +0xEDDB 0x4E08 #CJK UNIFIED IDEOGRAPH +0xEDDC 0x4ED7 #CJK UNIFIED IDEOGRAPH +0xEDDD 0x5320 #CJK UNIFIED IDEOGRAPH +0xEDDE 0x5834 #CJK UNIFIED IDEOGRAPH +0xEDDF 0x58BB #CJK UNIFIED IDEOGRAPH +0xEDE0 0x58EF #CJK UNIFIED IDEOGRAPH +0xEDE1 0x596C #CJK UNIFIED IDEOGRAPH +0xEDE2 0x5C07 #CJK UNIFIED IDEOGRAPH +0xEDE3 0x5E33 #CJK UNIFIED IDEOGRAPH +0xEDE4 0x5E84 #CJK UNIFIED IDEOGRAPH +0xEDE5 0x5F35 #CJK UNIFIED IDEOGRAPH +0xEDE6 0x638C #CJK UNIFIED IDEOGRAPH +0xEDE7 0x66B2 #CJK UNIFIED IDEOGRAPH +0xEDE8 0x6756 #CJK UNIFIED IDEOGRAPH +0xEDE9 0x6A1F #CJK UNIFIED IDEOGRAPH +0xEDEA 0x6AA3 #CJK UNIFIED IDEOGRAPH +0xEDEB 0x6B0C #CJK UNIFIED IDEOGRAPH +0xEDEC 0x6F3F #CJK UNIFIED IDEOGRAPH +0xEDED 0x7246 #CJK UNIFIED IDEOGRAPH +0xEDEE 0xF9FA #CJK COMPATIBILITY IDEOGRAPH +0xEDEF 0x7350 #CJK UNIFIED IDEOGRAPH +0xEDF0 0x748B #CJK UNIFIED IDEOGRAPH +0xEDF1 0x7AE0 #CJK UNIFIED IDEOGRAPH +0xEDF2 0x7CA7 #CJK UNIFIED IDEOGRAPH +0xEDF3 0x8178 #CJK UNIFIED IDEOGRAPH +0xEDF4 0x81DF #CJK UNIFIED IDEOGRAPH +0xEDF5 0x81E7 #CJK UNIFIED IDEOGRAPH +0xEDF6 0x838A #CJK UNIFIED IDEOGRAPH +0xEDF7 0x846C #CJK UNIFIED IDEOGRAPH +0xEDF8 0x8523 #CJK UNIFIED IDEOGRAPH +0xEDF9 0x8594 #CJK UNIFIED IDEOGRAPH +0xEDFA 0x85CF #CJK UNIFIED IDEOGRAPH +0xEDFB 0x88DD #CJK UNIFIED IDEOGRAPH +0xEDFC 0x8D13 #CJK UNIFIED IDEOGRAPH +0xEDFD 0x91AC #CJK UNIFIED IDEOGRAPH +0xEDFE 0x9577 #CJK UNIFIED IDEOGRAPH +0xEEA1 0x969C #CJK UNIFIED IDEOGRAPH +0xEEA2 0x518D #CJK UNIFIED IDEOGRAPH +0xEEA3 0x54C9 #CJK UNIFIED IDEOGRAPH +0xEEA4 0x5728 #CJK UNIFIED IDEOGRAPH +0xEEA5 0x5BB0 #CJK UNIFIED IDEOGRAPH +0xEEA6 0x624D #CJK UNIFIED IDEOGRAPH +0xEEA7 0x6750 #CJK UNIFIED IDEOGRAPH +0xEEA8 0x683D #CJK UNIFIED IDEOGRAPH +0xEEA9 0x6893 #CJK UNIFIED IDEOGRAPH +0xEEAA 0x6E3D #CJK UNIFIED IDEOGRAPH +0xEEAB 0x6ED3 #CJK UNIFIED IDEOGRAPH +0xEEAC 0x707D #CJK UNIFIED IDEOGRAPH +0xEEAD 0x7E21 #CJK UNIFIED IDEOGRAPH +0xEEAE 0x88C1 #CJK UNIFIED IDEOGRAPH +0xEEAF 0x8CA1 #CJK UNIFIED IDEOGRAPH +0xEEB0 0x8F09 #CJK UNIFIED IDEOGRAPH +0xEEB1 0x9F4B #CJK UNIFIED IDEOGRAPH +0xEEB2 0x9F4E #CJK UNIFIED IDEOGRAPH +0xEEB3 0x722D #CJK UNIFIED IDEOGRAPH +0xEEB4 0x7B8F #CJK UNIFIED IDEOGRAPH +0xEEB5 0x8ACD #CJK UNIFIED IDEOGRAPH +0xEEB6 0x931A #CJK UNIFIED IDEOGRAPH +0xEEB7 0x4F47 #CJK UNIFIED IDEOGRAPH +0xEEB8 0x4F4E #CJK UNIFIED IDEOGRAPH +0xEEB9 0x5132 #CJK UNIFIED IDEOGRAPH +0xEEBA 0x5480 #CJK UNIFIED IDEOGRAPH +0xEEBB 0x59D0 #CJK UNIFIED IDEOGRAPH +0xEEBC 0x5E95 #CJK UNIFIED IDEOGRAPH +0xEEBD 0x62B5 #CJK UNIFIED IDEOGRAPH +0xEEBE 0x6775 #CJK UNIFIED IDEOGRAPH +0xEEBF 0x696E #CJK UNIFIED IDEOGRAPH +0xEEC0 0x6A17 #CJK UNIFIED IDEOGRAPH +0xEEC1 0x6CAE #CJK UNIFIED IDEOGRAPH +0xEEC2 0x6E1A #CJK UNIFIED IDEOGRAPH +0xEEC3 0x72D9 #CJK UNIFIED IDEOGRAPH +0xEEC4 0x732A #CJK UNIFIED IDEOGRAPH +0xEEC5 0x75BD #CJK UNIFIED IDEOGRAPH +0xEEC6 0x7BB8 #CJK UNIFIED IDEOGRAPH +0xEEC7 0x7D35 #CJK UNIFIED IDEOGRAPH +0xEEC8 0x82E7 #CJK UNIFIED IDEOGRAPH +0xEEC9 0x83F9 #CJK UNIFIED IDEOGRAPH +0xEECA 0x8457 #CJK UNIFIED IDEOGRAPH +0xEECB 0x85F7 #CJK UNIFIED IDEOGRAPH +0xEECC 0x8A5B #CJK UNIFIED IDEOGRAPH +0xEECD 0x8CAF #CJK UNIFIED IDEOGRAPH +0xEECE 0x8E87 #CJK UNIFIED IDEOGRAPH +0xEECF 0x9019 #CJK UNIFIED IDEOGRAPH +0xEED0 0x90B8 #CJK UNIFIED IDEOGRAPH +0xEED1 0x96CE #CJK UNIFIED IDEOGRAPH +0xEED2 0x9F5F #CJK UNIFIED IDEOGRAPH +0xEED3 0x52E3 #CJK UNIFIED IDEOGRAPH +0xEED4 0x540A #CJK UNIFIED IDEOGRAPH +0xEED5 0x5AE1 #CJK UNIFIED IDEOGRAPH +0xEED6 0x5BC2 #CJK UNIFIED IDEOGRAPH +0xEED7 0x6458 #CJK UNIFIED IDEOGRAPH +0xEED8 0x6575 #CJK UNIFIED IDEOGRAPH +0xEED9 0x6EF4 #CJK UNIFIED IDEOGRAPH +0xEEDA 0x72C4 #CJK UNIFIED IDEOGRAPH +0xEEDB 0xF9FB #CJK COMPATIBILITY IDEOGRAPH +0xEEDC 0x7684 #CJK UNIFIED IDEOGRAPH +0xEEDD 0x7A4D #CJK UNIFIED IDEOGRAPH +0xEEDE 0x7B1B #CJK UNIFIED IDEOGRAPH +0xEEDF 0x7C4D #CJK UNIFIED IDEOGRAPH +0xEEE0 0x7E3E #CJK UNIFIED IDEOGRAPH +0xEEE1 0x7FDF #CJK UNIFIED IDEOGRAPH +0xEEE2 0x837B #CJK UNIFIED IDEOGRAPH +0xEEE3 0x8B2B #CJK UNIFIED IDEOGRAPH +0xEEE4 0x8CCA #CJK UNIFIED IDEOGRAPH +0xEEE5 0x8D64 #CJK UNIFIED IDEOGRAPH +0xEEE6 0x8DE1 #CJK UNIFIED IDEOGRAPH +0xEEE7 0x8E5F #CJK UNIFIED IDEOGRAPH +0xEEE8 0x8FEA #CJK UNIFIED IDEOGRAPH +0xEEE9 0x8FF9 #CJK UNIFIED IDEOGRAPH +0xEEEA 0x9069 #CJK UNIFIED IDEOGRAPH +0xEEEB 0x93D1 #CJK UNIFIED IDEOGRAPH +0xEEEC 0x4F43 #CJK UNIFIED IDEOGRAPH +0xEEED 0x4F7A #CJK UNIFIED IDEOGRAPH +0xEEEE 0x50B3 #CJK UNIFIED IDEOGRAPH +0xEEEF 0x5168 #CJK UNIFIED IDEOGRAPH +0xEEF0 0x5178 #CJK UNIFIED IDEOGRAPH +0xEEF1 0x524D #CJK UNIFIED IDEOGRAPH +0xEEF2 0x526A #CJK UNIFIED IDEOGRAPH +0xEEF3 0x5861 #CJK UNIFIED IDEOGRAPH +0xEEF4 0x587C #CJK UNIFIED IDEOGRAPH +0xEEF5 0x5960 #CJK UNIFIED IDEOGRAPH +0xEEF6 0x5C08 #CJK UNIFIED IDEOGRAPH +0xEEF7 0x5C55 #CJK UNIFIED IDEOGRAPH +0xEEF8 0x5EDB #CJK UNIFIED IDEOGRAPH +0xEEF9 0x609B #CJK UNIFIED IDEOGRAPH +0xEEFA 0x6230 #CJK UNIFIED IDEOGRAPH +0xEEFB 0x6813 #CJK UNIFIED IDEOGRAPH +0xEEFC 0x6BBF #CJK UNIFIED IDEOGRAPH +0xEEFD 0x6C08 #CJK UNIFIED IDEOGRAPH +0xEEFE 0x6FB1 #CJK UNIFIED IDEOGRAPH +0xEFA1 0x714E #CJK UNIFIED IDEOGRAPH +0xEFA2 0x7420 #CJK UNIFIED IDEOGRAPH +0xEFA3 0x7530 #CJK UNIFIED IDEOGRAPH +0xEFA4 0x7538 #CJK UNIFIED IDEOGRAPH +0xEFA5 0x7551 #CJK UNIFIED IDEOGRAPH +0xEFA6 0x7672 #CJK UNIFIED IDEOGRAPH +0xEFA7 0x7B4C #CJK UNIFIED IDEOGRAPH +0xEFA8 0x7B8B #CJK UNIFIED IDEOGRAPH +0xEFA9 0x7BAD #CJK UNIFIED IDEOGRAPH +0xEFAA 0x7BC6 #CJK UNIFIED IDEOGRAPH +0xEFAB 0x7E8F #CJK UNIFIED IDEOGRAPH +0xEFAC 0x8A6E #CJK UNIFIED IDEOGRAPH +0xEFAD 0x8F3E #CJK UNIFIED IDEOGRAPH +0xEFAE 0x8F49 #CJK UNIFIED IDEOGRAPH +0xEFAF 0x923F #CJK UNIFIED IDEOGRAPH +0xEFB0 0x9293 #CJK UNIFIED IDEOGRAPH +0xEFB1 0x9322 #CJK UNIFIED IDEOGRAPH +0xEFB2 0x942B #CJK UNIFIED IDEOGRAPH +0xEFB3 0x96FB #CJK UNIFIED IDEOGRAPH +0xEFB4 0x985A #CJK UNIFIED IDEOGRAPH +0xEFB5 0x986B #CJK UNIFIED IDEOGRAPH +0xEFB6 0x991E #CJK UNIFIED IDEOGRAPH +0xEFB7 0x5207 #CJK UNIFIED IDEOGRAPH +0xEFB8 0x622A #CJK UNIFIED IDEOGRAPH +0xEFB9 0x6298 #CJK UNIFIED IDEOGRAPH +0xEFBA 0x6D59 #CJK UNIFIED IDEOGRAPH +0xEFBB 0x7664 #CJK UNIFIED IDEOGRAPH +0xEFBC 0x7ACA #CJK UNIFIED IDEOGRAPH +0xEFBD 0x7BC0 #CJK UNIFIED IDEOGRAPH +0xEFBE 0x7D76 #CJK UNIFIED IDEOGRAPH +0xEFBF 0x5360 #CJK UNIFIED IDEOGRAPH +0xEFC0 0x5CBE #CJK UNIFIED IDEOGRAPH +0xEFC1 0x5E97 #CJK UNIFIED IDEOGRAPH +0xEFC2 0x6F38 #CJK UNIFIED IDEOGRAPH +0xEFC3 0x70B9 #CJK UNIFIED IDEOGRAPH +0xEFC4 0x7C98 #CJK UNIFIED IDEOGRAPH +0xEFC5 0x9711 #CJK UNIFIED IDEOGRAPH +0xEFC6 0x9B8E #CJK UNIFIED IDEOGRAPH +0xEFC7 0x9EDE #CJK UNIFIED IDEOGRAPH +0xEFC8 0x63A5 #CJK UNIFIED IDEOGRAPH +0xEFC9 0x647A #CJK UNIFIED IDEOGRAPH +0xEFCA 0x8776 #CJK UNIFIED IDEOGRAPH +0xEFCB 0x4E01 #CJK UNIFIED IDEOGRAPH +0xEFCC 0x4E95 #CJK UNIFIED IDEOGRAPH +0xEFCD 0x4EAD #CJK UNIFIED IDEOGRAPH +0xEFCE 0x505C #CJK UNIFIED IDEOGRAPH +0xEFCF 0x5075 #CJK UNIFIED IDEOGRAPH +0xEFD0 0x5448 #CJK UNIFIED IDEOGRAPH +0xEFD1 0x59C3 #CJK UNIFIED IDEOGRAPH +0xEFD2 0x5B9A #CJK UNIFIED IDEOGRAPH +0xEFD3 0x5E40 #CJK UNIFIED IDEOGRAPH +0xEFD4 0x5EAD #CJK UNIFIED IDEOGRAPH +0xEFD5 0x5EF7 #CJK UNIFIED IDEOGRAPH +0xEFD6 0x5F81 #CJK UNIFIED IDEOGRAPH +0xEFD7 0x60C5 #CJK UNIFIED IDEOGRAPH +0xEFD8 0x633A #CJK UNIFIED IDEOGRAPH +0xEFD9 0x653F #CJK UNIFIED IDEOGRAPH +0xEFDA 0x6574 #CJK UNIFIED IDEOGRAPH +0xEFDB 0x65CC #CJK UNIFIED IDEOGRAPH +0xEFDC 0x6676 #CJK UNIFIED IDEOGRAPH +0xEFDD 0x6678 #CJK UNIFIED IDEOGRAPH +0xEFDE 0x67FE #CJK UNIFIED IDEOGRAPH +0xEFDF 0x6968 #CJK UNIFIED IDEOGRAPH +0xEFE0 0x6A89 #CJK UNIFIED IDEOGRAPH +0xEFE1 0x6B63 #CJK UNIFIED IDEOGRAPH +0xEFE2 0x6C40 #CJK UNIFIED IDEOGRAPH +0xEFE3 0x6DC0 #CJK UNIFIED IDEOGRAPH +0xEFE4 0x6DE8 #CJK UNIFIED IDEOGRAPH +0xEFE5 0x6E1F #CJK UNIFIED IDEOGRAPH +0xEFE6 0x6E5E #CJK UNIFIED IDEOGRAPH +0xEFE7 0x701E #CJK UNIFIED IDEOGRAPH +0xEFE8 0x70A1 #CJK UNIFIED IDEOGRAPH +0xEFE9 0x738E #CJK UNIFIED IDEOGRAPH +0xEFEA 0x73FD #CJK UNIFIED IDEOGRAPH +0xEFEB 0x753A #CJK UNIFIED IDEOGRAPH +0xEFEC 0x775B #CJK UNIFIED IDEOGRAPH +0xEFED 0x7887 #CJK UNIFIED IDEOGRAPH +0xEFEE 0x798E #CJK UNIFIED IDEOGRAPH +0xEFEF 0x7A0B #CJK UNIFIED IDEOGRAPH +0xEFF0 0x7A7D #CJK UNIFIED IDEOGRAPH +0xEFF1 0x7CBE #CJK UNIFIED IDEOGRAPH +0xEFF2 0x7D8E #CJK UNIFIED IDEOGRAPH +0xEFF3 0x8247 #CJK UNIFIED IDEOGRAPH +0xEFF4 0x8A02 #CJK UNIFIED IDEOGRAPH +0xEFF5 0x8AEA #CJK UNIFIED IDEOGRAPH +0xEFF6 0x8C9E #CJK UNIFIED IDEOGRAPH +0xEFF7 0x912D #CJK UNIFIED IDEOGRAPH +0xEFF8 0x914A #CJK UNIFIED IDEOGRAPH +0xEFF9 0x91D8 #CJK UNIFIED IDEOGRAPH +0xEFFA 0x9266 #CJK UNIFIED IDEOGRAPH +0xEFFB 0x92CC #CJK UNIFIED IDEOGRAPH +0xEFFC 0x9320 #CJK UNIFIED IDEOGRAPH +0xEFFD 0x9706 #CJK UNIFIED IDEOGRAPH +0xEFFE 0x9756 #CJK UNIFIED IDEOGRAPH +0xF0A1 0x975C #CJK UNIFIED IDEOGRAPH +0xF0A2 0x9802 #CJK UNIFIED IDEOGRAPH +0xF0A3 0x9F0E #CJK UNIFIED IDEOGRAPH +0xF0A4 0x5236 #CJK UNIFIED IDEOGRAPH +0xF0A5 0x5291 #CJK UNIFIED IDEOGRAPH +0xF0A6 0x557C #CJK UNIFIED IDEOGRAPH +0xF0A7 0x5824 #CJK UNIFIED IDEOGRAPH +0xF0A8 0x5E1D #CJK UNIFIED IDEOGRAPH +0xF0A9 0x5F1F #CJK UNIFIED IDEOGRAPH +0xF0AA 0x608C #CJK UNIFIED IDEOGRAPH +0xF0AB 0x63D0 #CJK UNIFIED IDEOGRAPH +0xF0AC 0x68AF #CJK UNIFIED IDEOGRAPH +0xF0AD 0x6FDF #CJK UNIFIED IDEOGRAPH +0xF0AE 0x796D #CJK UNIFIED IDEOGRAPH +0xF0AF 0x7B2C #CJK UNIFIED IDEOGRAPH +0xF0B0 0x81CD #CJK UNIFIED IDEOGRAPH +0xF0B1 0x85BA #CJK UNIFIED IDEOGRAPH +0xF0B2 0x88FD #CJK UNIFIED IDEOGRAPH +0xF0B3 0x8AF8 #CJK UNIFIED IDEOGRAPH +0xF0B4 0x8E44 #CJK UNIFIED IDEOGRAPH +0xF0B5 0x918D #CJK UNIFIED IDEOGRAPH +0xF0B6 0x9664 #CJK UNIFIED IDEOGRAPH +0xF0B7 0x969B #CJK UNIFIED IDEOGRAPH +0xF0B8 0x973D #CJK UNIFIED IDEOGRAPH +0xF0B9 0x984C #CJK UNIFIED IDEOGRAPH +0xF0BA 0x9F4A #CJK UNIFIED IDEOGRAPH +0xF0BB 0x4FCE #CJK UNIFIED IDEOGRAPH +0xF0BC 0x5146 #CJK UNIFIED IDEOGRAPH +0xF0BD 0x51CB #CJK UNIFIED IDEOGRAPH +0xF0BE 0x52A9 #CJK UNIFIED IDEOGRAPH +0xF0BF 0x5632 #CJK UNIFIED IDEOGRAPH +0xF0C0 0x5F14 #CJK UNIFIED IDEOGRAPH +0xF0C1 0x5F6B #CJK UNIFIED IDEOGRAPH +0xF0C2 0x63AA #CJK UNIFIED IDEOGRAPH +0xF0C3 0x64CD #CJK UNIFIED IDEOGRAPH +0xF0C4 0x65E9 #CJK UNIFIED IDEOGRAPH +0xF0C5 0x6641 #CJK UNIFIED IDEOGRAPH +0xF0C6 0x66FA #CJK UNIFIED IDEOGRAPH +0xF0C7 0x66F9 #CJK UNIFIED IDEOGRAPH +0xF0C8 0x671D #CJK UNIFIED IDEOGRAPH +0xF0C9 0x689D #CJK UNIFIED IDEOGRAPH +0xF0CA 0x68D7 #CJK UNIFIED IDEOGRAPH +0xF0CB 0x69FD #CJK UNIFIED IDEOGRAPH +0xF0CC 0x6F15 #CJK UNIFIED IDEOGRAPH +0xF0CD 0x6F6E #CJK UNIFIED IDEOGRAPH +0xF0CE 0x7167 #CJK UNIFIED IDEOGRAPH +0xF0CF 0x71E5 #CJK UNIFIED IDEOGRAPH +0xF0D0 0x722A #CJK UNIFIED IDEOGRAPH +0xF0D1 0x74AA #CJK UNIFIED IDEOGRAPH +0xF0D2 0x773A #CJK UNIFIED IDEOGRAPH +0xF0D3 0x7956 #CJK UNIFIED IDEOGRAPH +0xF0D4 0x795A #CJK UNIFIED IDEOGRAPH +0xF0D5 0x79DF #CJK UNIFIED IDEOGRAPH +0xF0D6 0x7A20 #CJK UNIFIED IDEOGRAPH +0xF0D7 0x7A95 #CJK UNIFIED IDEOGRAPH +0xF0D8 0x7C97 #CJK UNIFIED IDEOGRAPH +0xF0D9 0x7CDF #CJK UNIFIED IDEOGRAPH +0xF0DA 0x7D44 #CJK UNIFIED IDEOGRAPH +0xF0DB 0x7E70 #CJK UNIFIED IDEOGRAPH +0xF0DC 0x8087 #CJK UNIFIED IDEOGRAPH +0xF0DD 0x85FB #CJK UNIFIED IDEOGRAPH +0xF0DE 0x86A4 #CJK UNIFIED IDEOGRAPH +0xF0DF 0x8A54 #CJK UNIFIED IDEOGRAPH +0xF0E0 0x8ABF #CJK UNIFIED IDEOGRAPH +0xF0E1 0x8D99 #CJK UNIFIED IDEOGRAPH +0xF0E2 0x8E81 #CJK UNIFIED IDEOGRAPH +0xF0E3 0x9020 #CJK UNIFIED IDEOGRAPH +0xF0E4 0x906D #CJK UNIFIED IDEOGRAPH +0xF0E5 0x91E3 #CJK UNIFIED IDEOGRAPH +0xF0E6 0x963B #CJK UNIFIED IDEOGRAPH +0xF0E7 0x96D5 #CJK UNIFIED IDEOGRAPH +0xF0E8 0x9CE5 #CJK UNIFIED IDEOGRAPH +0xF0E9 0x65CF #CJK UNIFIED IDEOGRAPH +0xF0EA 0x7C07 #CJK UNIFIED IDEOGRAPH +0xF0EB 0x8DB3 #CJK UNIFIED IDEOGRAPH +0xF0EC 0x93C3 #CJK UNIFIED IDEOGRAPH +0xF0ED 0x5B58 #CJK UNIFIED IDEOGRAPH +0xF0EE 0x5C0A #CJK UNIFIED IDEOGRAPH +0xF0EF 0x5352 #CJK UNIFIED IDEOGRAPH +0xF0F0 0x62D9 #CJK UNIFIED IDEOGRAPH +0xF0F1 0x731D #CJK UNIFIED IDEOGRAPH +0xF0F2 0x5027 #CJK UNIFIED IDEOGRAPH +0xF0F3 0x5B97 #CJK UNIFIED IDEOGRAPH +0xF0F4 0x5F9E #CJK UNIFIED IDEOGRAPH +0xF0F5 0x60B0 #CJK UNIFIED IDEOGRAPH +0xF0F6 0x616B #CJK UNIFIED IDEOGRAPH +0xF0F7 0x68D5 #CJK UNIFIED IDEOGRAPH +0xF0F8 0x6DD9 #CJK UNIFIED IDEOGRAPH +0xF0F9 0x742E #CJK UNIFIED IDEOGRAPH +0xF0FA 0x7A2E #CJK UNIFIED IDEOGRAPH +0xF0FB 0x7D42 #CJK UNIFIED IDEOGRAPH +0xF0FC 0x7D9C #CJK UNIFIED IDEOGRAPH +0xF0FD 0x7E31 #CJK UNIFIED IDEOGRAPH +0xF0FE 0x816B #CJK UNIFIED IDEOGRAPH +0xF1A1 0x8E2A #CJK UNIFIED IDEOGRAPH +0xF1A2 0x8E35 #CJK UNIFIED IDEOGRAPH +0xF1A3 0x937E #CJK UNIFIED IDEOGRAPH +0xF1A4 0x9418 #CJK UNIFIED IDEOGRAPH +0xF1A5 0x4F50 #CJK UNIFIED IDEOGRAPH +0xF1A6 0x5750 #CJK UNIFIED IDEOGRAPH +0xF1A7 0x5DE6 #CJK UNIFIED IDEOGRAPH +0xF1A8 0x5EA7 #CJK UNIFIED IDEOGRAPH +0xF1A9 0x632B #CJK UNIFIED IDEOGRAPH +0xF1AA 0x7F6A #CJK UNIFIED IDEOGRAPH +0xF1AB 0x4E3B #CJK UNIFIED IDEOGRAPH +0xF1AC 0x4F4F #CJK UNIFIED IDEOGRAPH +0xF1AD 0x4F8F #CJK UNIFIED IDEOGRAPH +0xF1AE 0x505A #CJK UNIFIED IDEOGRAPH +0xF1AF 0x59DD #CJK UNIFIED IDEOGRAPH +0xF1B0 0x80C4 #CJK UNIFIED IDEOGRAPH +0xF1B1 0x546A #CJK UNIFIED IDEOGRAPH +0xF1B2 0x5468 #CJK UNIFIED IDEOGRAPH +0xF1B3 0x55FE #CJK UNIFIED IDEOGRAPH +0xF1B4 0x594F #CJK UNIFIED IDEOGRAPH +0xF1B5 0x5B99 #CJK UNIFIED IDEOGRAPH +0xF1B6 0x5DDE #CJK UNIFIED IDEOGRAPH +0xF1B7 0x5EDA #CJK UNIFIED IDEOGRAPH +0xF1B8 0x665D #CJK UNIFIED IDEOGRAPH +0xF1B9 0x6731 #CJK UNIFIED IDEOGRAPH +0xF1BA 0x67F1 #CJK UNIFIED IDEOGRAPH +0xF1BB 0x682A #CJK UNIFIED IDEOGRAPH +0xF1BC 0x6CE8 #CJK UNIFIED IDEOGRAPH +0xF1BD 0x6D32 #CJK UNIFIED IDEOGRAPH +0xF1BE 0x6E4A #CJK UNIFIED IDEOGRAPH +0xF1BF 0x6F8D #CJK UNIFIED IDEOGRAPH +0xF1C0 0x70B7 #CJK UNIFIED IDEOGRAPH +0xF1C1 0x73E0 #CJK UNIFIED IDEOGRAPH +0xF1C2 0x7587 #CJK UNIFIED IDEOGRAPH +0xF1C3 0x7C4C #CJK UNIFIED IDEOGRAPH +0xF1C4 0x7D02 #CJK UNIFIED IDEOGRAPH +0xF1C5 0x7D2C #CJK UNIFIED IDEOGRAPH +0xF1C6 0x7DA2 #CJK UNIFIED IDEOGRAPH +0xF1C7 0x821F #CJK UNIFIED IDEOGRAPH +0xF1C8 0x86DB #CJK UNIFIED IDEOGRAPH +0xF1C9 0x8A3B #CJK UNIFIED IDEOGRAPH +0xF1CA 0x8A85 #CJK UNIFIED IDEOGRAPH +0xF1CB 0x8D70 #CJK UNIFIED IDEOGRAPH +0xF1CC 0x8E8A #CJK UNIFIED IDEOGRAPH +0xF1CD 0x8F33 #CJK UNIFIED IDEOGRAPH +0xF1CE 0x9031 #CJK UNIFIED IDEOGRAPH +0xF1CF 0x914E #CJK UNIFIED IDEOGRAPH +0xF1D0 0x9152 #CJK UNIFIED IDEOGRAPH +0xF1D1 0x9444 #CJK UNIFIED IDEOGRAPH +0xF1D2 0x99D0 #CJK UNIFIED IDEOGRAPH +0xF1D3 0x7AF9 #CJK UNIFIED IDEOGRAPH +0xF1D4 0x7CA5 #CJK UNIFIED IDEOGRAPH +0xF1D5 0x4FCA #CJK UNIFIED IDEOGRAPH +0xF1D6 0x5101 #CJK UNIFIED IDEOGRAPH +0xF1D7 0x51C6 #CJK UNIFIED IDEOGRAPH +0xF1D8 0x57C8 #CJK UNIFIED IDEOGRAPH +0xF1D9 0x5BEF #CJK UNIFIED IDEOGRAPH +0xF1DA 0x5CFB #CJK UNIFIED IDEOGRAPH +0xF1DB 0x6659 #CJK UNIFIED IDEOGRAPH +0xF1DC 0x6A3D #CJK UNIFIED IDEOGRAPH +0xF1DD 0x6D5A #CJK UNIFIED IDEOGRAPH +0xF1DE 0x6E96 #CJK UNIFIED IDEOGRAPH +0xF1DF 0x6FEC #CJK UNIFIED IDEOGRAPH +0xF1E0 0x710C #CJK UNIFIED IDEOGRAPH +0xF1E1 0x756F #CJK UNIFIED IDEOGRAPH +0xF1E2 0x7AE3 #CJK UNIFIED IDEOGRAPH +0xF1E3 0x8822 #CJK UNIFIED IDEOGRAPH +0xF1E4 0x9021 #CJK UNIFIED IDEOGRAPH +0xF1E5 0x9075 #CJK UNIFIED IDEOGRAPH +0xF1E6 0x96CB #CJK UNIFIED IDEOGRAPH +0xF1E7 0x99FF #CJK UNIFIED IDEOGRAPH +0xF1E8 0x8301 #CJK UNIFIED IDEOGRAPH +0xF1E9 0x4E2D #CJK UNIFIED IDEOGRAPH +0xF1EA 0x4EF2 #CJK UNIFIED IDEOGRAPH +0xF1EB 0x8846 #CJK UNIFIED IDEOGRAPH +0xF1EC 0x91CD #CJK UNIFIED IDEOGRAPH +0xF1ED 0x537D #CJK UNIFIED IDEOGRAPH +0xF1EE 0x6ADB #CJK UNIFIED IDEOGRAPH +0xF1EF 0x696B #CJK UNIFIED IDEOGRAPH +0xF1F0 0x6C41 #CJK UNIFIED IDEOGRAPH +0xF1F1 0x847A #CJK UNIFIED IDEOGRAPH +0xF1F2 0x589E #CJK UNIFIED IDEOGRAPH +0xF1F3 0x618E #CJK UNIFIED IDEOGRAPH +0xF1F4 0x66FE #CJK UNIFIED IDEOGRAPH +0xF1F5 0x62EF #CJK UNIFIED IDEOGRAPH +0xF1F6 0x70DD #CJK UNIFIED IDEOGRAPH +0xF1F7 0x7511 #CJK UNIFIED IDEOGRAPH +0xF1F8 0x75C7 #CJK UNIFIED IDEOGRAPH +0xF1F9 0x7E52 #CJK UNIFIED IDEOGRAPH +0xF1FA 0x84B8 #CJK UNIFIED IDEOGRAPH +0xF1FB 0x8B49 #CJK UNIFIED IDEOGRAPH +0xF1FC 0x8D08 #CJK UNIFIED IDEOGRAPH +0xF1FD 0x4E4B #CJK UNIFIED IDEOGRAPH +0xF1FE 0x53EA #CJK UNIFIED IDEOGRAPH +0xF2A1 0x54AB #CJK UNIFIED IDEOGRAPH +0xF2A2 0x5730 #CJK UNIFIED IDEOGRAPH +0xF2A3 0x5740 #CJK UNIFIED IDEOGRAPH +0xF2A4 0x5FD7 #CJK UNIFIED IDEOGRAPH +0xF2A5 0x6301 #CJK UNIFIED IDEOGRAPH +0xF2A6 0x6307 #CJK UNIFIED IDEOGRAPH +0xF2A7 0x646F #CJK UNIFIED IDEOGRAPH +0xF2A8 0x652F #CJK UNIFIED IDEOGRAPH +0xF2A9 0x65E8 #CJK UNIFIED IDEOGRAPH +0xF2AA 0x667A #CJK UNIFIED IDEOGRAPH +0xF2AB 0x679D #CJK UNIFIED IDEOGRAPH +0xF2AC 0x67B3 #CJK UNIFIED IDEOGRAPH +0xF2AD 0x6B62 #CJK UNIFIED IDEOGRAPH +0xF2AE 0x6C60 #CJK UNIFIED IDEOGRAPH +0xF2AF 0x6C9A #CJK UNIFIED IDEOGRAPH +0xF2B0 0x6F2C #CJK UNIFIED IDEOGRAPH +0xF2B1 0x77E5 #CJK UNIFIED IDEOGRAPH +0xF2B2 0x7825 #CJK UNIFIED IDEOGRAPH +0xF2B3 0x7949 #CJK UNIFIED IDEOGRAPH +0xF2B4 0x7957 #CJK UNIFIED IDEOGRAPH +0xF2B5 0x7D19 #CJK UNIFIED IDEOGRAPH +0xF2B6 0x80A2 #CJK UNIFIED IDEOGRAPH +0xF2B7 0x8102 #CJK UNIFIED IDEOGRAPH +0xF2B8 0x81F3 #CJK UNIFIED IDEOGRAPH +0xF2B9 0x829D #CJK UNIFIED IDEOGRAPH +0xF2BA 0x82B7 #CJK UNIFIED IDEOGRAPH +0xF2BB 0x8718 #CJK UNIFIED IDEOGRAPH +0xF2BC 0x8A8C #CJK UNIFIED IDEOGRAPH +0xF2BD 0xF9FC #CJK COMPATIBILITY IDEOGRAPH +0xF2BE 0x8D04 #CJK UNIFIED IDEOGRAPH +0xF2BF 0x8DBE #CJK UNIFIED IDEOGRAPH +0xF2C0 0x9072 #CJK UNIFIED IDEOGRAPH +0xF2C1 0x76F4 #CJK UNIFIED IDEOGRAPH +0xF2C2 0x7A19 #CJK UNIFIED IDEOGRAPH +0xF2C3 0x7A37 #CJK UNIFIED IDEOGRAPH +0xF2C4 0x7E54 #CJK UNIFIED IDEOGRAPH +0xF2C5 0x8077 #CJK UNIFIED IDEOGRAPH +0xF2C6 0x5507 #CJK UNIFIED IDEOGRAPH +0xF2C7 0x55D4 #CJK UNIFIED IDEOGRAPH +0xF2C8 0x5875 #CJK UNIFIED IDEOGRAPH +0xF2C9 0x632F #CJK UNIFIED IDEOGRAPH +0xF2CA 0x6422 #CJK UNIFIED IDEOGRAPH +0xF2CB 0x6649 #CJK UNIFIED IDEOGRAPH +0xF2CC 0x664B #CJK UNIFIED IDEOGRAPH +0xF2CD 0x686D #CJK UNIFIED IDEOGRAPH +0xF2CE 0x699B #CJK UNIFIED IDEOGRAPH +0xF2CF 0x6B84 #CJK UNIFIED IDEOGRAPH +0xF2D0 0x6D25 #CJK UNIFIED IDEOGRAPH +0xF2D1 0x6EB1 #CJK UNIFIED IDEOGRAPH +0xF2D2 0x73CD #CJK UNIFIED IDEOGRAPH +0xF2D3 0x7468 #CJK UNIFIED IDEOGRAPH +0xF2D4 0x74A1 #CJK UNIFIED IDEOGRAPH +0xF2D5 0x755B #CJK UNIFIED IDEOGRAPH +0xF2D6 0x75B9 #CJK UNIFIED IDEOGRAPH +0xF2D7 0x76E1 #CJK UNIFIED IDEOGRAPH +0xF2D8 0x771E #CJK UNIFIED IDEOGRAPH +0xF2D9 0x778B #CJK UNIFIED IDEOGRAPH +0xF2DA 0x79E6 #CJK UNIFIED IDEOGRAPH +0xF2DB 0x7E09 #CJK UNIFIED IDEOGRAPH +0xF2DC 0x7E1D #CJK UNIFIED IDEOGRAPH +0xF2DD 0x81FB #CJK UNIFIED IDEOGRAPH +0xF2DE 0x852F #CJK UNIFIED IDEOGRAPH +0xF2DF 0x8897 #CJK UNIFIED IDEOGRAPH +0xF2E0 0x8A3A #CJK UNIFIED IDEOGRAPH +0xF2E1 0x8CD1 #CJK UNIFIED IDEOGRAPH +0xF2E2 0x8EEB #CJK UNIFIED IDEOGRAPH +0xF2E3 0x8FB0 #CJK UNIFIED IDEOGRAPH +0xF2E4 0x9032 #CJK UNIFIED IDEOGRAPH +0xF2E5 0x93AD #CJK UNIFIED IDEOGRAPH +0xF2E6 0x9663 #CJK UNIFIED IDEOGRAPH +0xF2E7 0x9673 #CJK UNIFIED IDEOGRAPH +0xF2E8 0x9707 #CJK UNIFIED IDEOGRAPH +0xF2E9 0x4F84 #CJK UNIFIED IDEOGRAPH +0xF2EA 0x53F1 #CJK UNIFIED IDEOGRAPH +0xF2EB 0x59EA #CJK UNIFIED IDEOGRAPH +0xF2EC 0x5AC9 #CJK UNIFIED IDEOGRAPH +0xF2ED 0x5E19 #CJK UNIFIED IDEOGRAPH +0xF2EE 0x684E #CJK UNIFIED IDEOGRAPH +0xF2EF 0x74C6 #CJK UNIFIED IDEOGRAPH +0xF2F0 0x75BE #CJK UNIFIED IDEOGRAPH +0xF2F1 0x79E9 #CJK UNIFIED IDEOGRAPH +0xF2F2 0x7A92 #CJK UNIFIED IDEOGRAPH +0xF2F3 0x81A3 #CJK UNIFIED IDEOGRAPH +0xF2F4 0x86ED #CJK UNIFIED IDEOGRAPH +0xF2F5 0x8CEA #CJK UNIFIED IDEOGRAPH +0xF2F6 0x8DCC #CJK UNIFIED IDEOGRAPH +0xF2F7 0x8FED #CJK UNIFIED IDEOGRAPH +0xF2F8 0x659F #CJK UNIFIED IDEOGRAPH +0xF2F9 0x6715 #CJK UNIFIED IDEOGRAPH +0xF2FA 0xF9FD #CJK COMPATIBILITY IDEOGRAPH +0xF2FB 0x57F7 #CJK UNIFIED IDEOGRAPH +0xF2FC 0x6F57 #CJK UNIFIED IDEOGRAPH +0xF2FD 0x7DDD #CJK UNIFIED IDEOGRAPH +0xF2FE 0x8F2F #CJK UNIFIED IDEOGRAPH +0xF3A1 0x93F6 #CJK UNIFIED IDEOGRAPH +0xF3A2 0x96C6 #CJK UNIFIED IDEOGRAPH +0xF3A3 0x5FB5 #CJK UNIFIED IDEOGRAPH +0xF3A4 0x61F2 #CJK UNIFIED IDEOGRAPH +0xF3A5 0x6F84 #CJK UNIFIED IDEOGRAPH +0xF3A6 0x4E14 #CJK UNIFIED IDEOGRAPH +0xF3A7 0x4F98 #CJK UNIFIED IDEOGRAPH +0xF3A8 0x501F #CJK UNIFIED IDEOGRAPH +0xF3A9 0x53C9 #CJK UNIFIED IDEOGRAPH +0xF3AA 0x55DF #CJK UNIFIED IDEOGRAPH +0xF3AB 0x5D6F #CJK UNIFIED IDEOGRAPH +0xF3AC 0x5DEE #CJK UNIFIED IDEOGRAPH +0xF3AD 0x6B21 #CJK UNIFIED IDEOGRAPH +0xF3AE 0x6B64 #CJK UNIFIED IDEOGRAPH +0xF3AF 0x78CB #CJK UNIFIED IDEOGRAPH +0xF3B0 0x7B9A #CJK UNIFIED IDEOGRAPH +0xF3B1 0xF9FE #CJK COMPATIBILITY IDEOGRAPH +0xF3B2 0x8E49 #CJK UNIFIED IDEOGRAPH +0xF3B3 0x8ECA #CJK UNIFIED IDEOGRAPH +0xF3B4 0x906E #CJK UNIFIED IDEOGRAPH +0xF3B5 0x6349 #CJK UNIFIED IDEOGRAPH +0xF3B6 0x643E #CJK UNIFIED IDEOGRAPH +0xF3B7 0x7740 #CJK UNIFIED IDEOGRAPH +0xF3B8 0x7A84 #CJK UNIFIED IDEOGRAPH +0xF3B9 0x932F #CJK UNIFIED IDEOGRAPH +0xF3BA 0x947F #CJK UNIFIED IDEOGRAPH +0xF3BB 0x9F6A #CJK UNIFIED IDEOGRAPH +0xF3BC 0x64B0 #CJK UNIFIED IDEOGRAPH +0xF3BD 0x6FAF #CJK UNIFIED IDEOGRAPH +0xF3BE 0x71E6 #CJK UNIFIED IDEOGRAPH +0xF3BF 0x74A8 #CJK UNIFIED IDEOGRAPH +0xF3C0 0x74DA #CJK UNIFIED IDEOGRAPH +0xF3C1 0x7AC4 #CJK UNIFIED IDEOGRAPH +0xF3C2 0x7C12 #CJK UNIFIED IDEOGRAPH +0xF3C3 0x7E82 #CJK UNIFIED IDEOGRAPH +0xF3C4 0x7CB2 #CJK UNIFIED IDEOGRAPH +0xF3C5 0x7E98 #CJK UNIFIED IDEOGRAPH +0xF3C6 0x8B9A #CJK UNIFIED IDEOGRAPH +0xF3C7 0x8D0A #CJK UNIFIED IDEOGRAPH +0xF3C8 0x947D #CJK UNIFIED IDEOGRAPH +0xF3C9 0x9910 #CJK UNIFIED IDEOGRAPH +0xF3CA 0x994C #CJK UNIFIED IDEOGRAPH +0xF3CB 0x5239 #CJK UNIFIED IDEOGRAPH +0xF3CC 0x5BDF #CJK UNIFIED IDEOGRAPH +0xF3CD 0x64E6 #CJK UNIFIED IDEOGRAPH +0xF3CE 0x672D #CJK UNIFIED IDEOGRAPH +0xF3CF 0x7D2E #CJK UNIFIED IDEOGRAPH +0xF3D0 0x50ED #CJK UNIFIED IDEOGRAPH +0xF3D1 0x53C3 #CJK UNIFIED IDEOGRAPH +0xF3D2 0x5879 #CJK UNIFIED IDEOGRAPH +0xF3D3 0x6158 #CJK UNIFIED IDEOGRAPH +0xF3D4 0x6159 #CJK UNIFIED IDEOGRAPH +0xF3D5 0x61FA #CJK UNIFIED IDEOGRAPH +0xF3D6 0x65AC #CJK UNIFIED IDEOGRAPH +0xF3D7 0x7AD9 #CJK UNIFIED IDEOGRAPH +0xF3D8 0x8B92 #CJK UNIFIED IDEOGRAPH +0xF3D9 0x8B96 #CJK UNIFIED IDEOGRAPH +0xF3DA 0x5009 #CJK UNIFIED IDEOGRAPH +0xF3DB 0x5021 #CJK UNIFIED IDEOGRAPH +0xF3DC 0x5275 #CJK UNIFIED IDEOGRAPH +0xF3DD 0x5531 #CJK UNIFIED IDEOGRAPH +0xF3DE 0x5A3C #CJK UNIFIED IDEOGRAPH +0xF3DF 0x5EE0 #CJK UNIFIED IDEOGRAPH +0xF3E0 0x5F70 #CJK UNIFIED IDEOGRAPH +0xF3E1 0x6134 #CJK UNIFIED IDEOGRAPH +0xF3E2 0x655E #CJK UNIFIED IDEOGRAPH +0xF3E3 0x660C #CJK UNIFIED IDEOGRAPH +0xF3E4 0x6636 #CJK UNIFIED IDEOGRAPH +0xF3E5 0x66A2 #CJK UNIFIED IDEOGRAPH +0xF3E6 0x69CD #CJK UNIFIED IDEOGRAPH +0xF3E7 0x6EC4 #CJK UNIFIED IDEOGRAPH +0xF3E8 0x6F32 #CJK UNIFIED IDEOGRAPH +0xF3E9 0x7316 #CJK UNIFIED IDEOGRAPH +0xF3EA 0x7621 #CJK UNIFIED IDEOGRAPH +0xF3EB 0x7A93 #CJK UNIFIED IDEOGRAPH +0xF3EC 0x8139 #CJK UNIFIED IDEOGRAPH +0xF3ED 0x8259 #CJK UNIFIED IDEOGRAPH +0xF3EE 0x83D6 #CJK UNIFIED IDEOGRAPH +0xF3EF 0x84BC #CJK UNIFIED IDEOGRAPH +0xF3F0 0x50B5 #CJK UNIFIED IDEOGRAPH +0xF3F1 0x57F0 #CJK UNIFIED IDEOGRAPH +0xF3F2 0x5BC0 #CJK UNIFIED IDEOGRAPH +0xF3F3 0x5BE8 #CJK UNIFIED IDEOGRAPH +0xF3F4 0x5F69 #CJK UNIFIED IDEOGRAPH +0xF3F5 0x63A1 #CJK UNIFIED IDEOGRAPH +0xF3F6 0x7826 #CJK UNIFIED IDEOGRAPH +0xF3F7 0x7DB5 #CJK UNIFIED IDEOGRAPH +0xF3F8 0x83DC #CJK UNIFIED IDEOGRAPH +0xF3F9 0x8521 #CJK UNIFIED IDEOGRAPH +0xF3FA 0x91C7 #CJK UNIFIED IDEOGRAPH +0xF3FB 0x91F5 #CJK UNIFIED IDEOGRAPH +0xF3FC 0x518A #CJK UNIFIED IDEOGRAPH +0xF3FD 0x67F5 #CJK UNIFIED IDEOGRAPH +0xF3FE 0x7B56 #CJK UNIFIED IDEOGRAPH +0xF4A1 0x8CAC #CJK UNIFIED IDEOGRAPH +0xF4A2 0x51C4 #CJK UNIFIED IDEOGRAPH +0xF4A3 0x59BB #CJK UNIFIED IDEOGRAPH +0xF4A4 0x60BD #CJK UNIFIED IDEOGRAPH +0xF4A5 0x8655 #CJK UNIFIED IDEOGRAPH +0xF4A6 0x501C #CJK UNIFIED IDEOGRAPH +0xF4A7 0xF9FF #CJK COMPATIBILITY IDEOGRAPH +0xF4A8 0x5254 #CJK UNIFIED IDEOGRAPH +0xF4A9 0x5C3A #CJK UNIFIED IDEOGRAPH +0xF4AA 0x617D #CJK UNIFIED IDEOGRAPH +0xF4AB 0x621A #CJK UNIFIED IDEOGRAPH +0xF4AC 0x62D3 #CJK UNIFIED IDEOGRAPH +0xF4AD 0x64F2 #CJK UNIFIED IDEOGRAPH +0xF4AE 0x65A5 #CJK UNIFIED IDEOGRAPH +0xF4AF 0x6ECC #CJK UNIFIED IDEOGRAPH +0xF4B0 0x7620 #CJK UNIFIED IDEOGRAPH +0xF4B1 0x810A #CJK UNIFIED IDEOGRAPH +0xF4B2 0x8E60 #CJK UNIFIED IDEOGRAPH +0xF4B3 0x965F #CJK UNIFIED IDEOGRAPH +0xF4B4 0x96BB #CJK UNIFIED IDEOGRAPH +0xF4B5 0x4EDF #CJK UNIFIED IDEOGRAPH +0xF4B6 0x5343 #CJK UNIFIED IDEOGRAPH +0xF4B7 0x5598 #CJK UNIFIED IDEOGRAPH +0xF4B8 0x5929 #CJK UNIFIED IDEOGRAPH +0xF4B9 0x5DDD #CJK UNIFIED IDEOGRAPH +0xF4BA 0x64C5 #CJK UNIFIED IDEOGRAPH +0xF4BB 0x6CC9 #CJK UNIFIED IDEOGRAPH +0xF4BC 0x6DFA #CJK UNIFIED IDEOGRAPH +0xF4BD 0x7394 #CJK UNIFIED IDEOGRAPH +0xF4BE 0x7A7F #CJK UNIFIED IDEOGRAPH +0xF4BF 0x821B #CJK UNIFIED IDEOGRAPH +0xF4C0 0x85A6 #CJK UNIFIED IDEOGRAPH +0xF4C1 0x8CE4 #CJK UNIFIED IDEOGRAPH +0xF4C2 0x8E10 #CJK UNIFIED IDEOGRAPH +0xF4C3 0x9077 #CJK UNIFIED IDEOGRAPH +0xF4C4 0x91E7 #CJK UNIFIED IDEOGRAPH +0xF4C5 0x95E1 #CJK UNIFIED IDEOGRAPH +0xF4C6 0x9621 #CJK UNIFIED IDEOGRAPH +0xF4C7 0x97C6 #CJK UNIFIED IDEOGRAPH +0xF4C8 0x51F8 #CJK UNIFIED IDEOGRAPH +0xF4C9 0x54F2 #CJK UNIFIED IDEOGRAPH +0xF4CA 0x5586 #CJK UNIFIED IDEOGRAPH +0xF4CB 0x5FB9 #CJK UNIFIED IDEOGRAPH +0xF4CC 0x64A4 #CJK UNIFIED IDEOGRAPH +0xF4CD 0x6F88 #CJK UNIFIED IDEOGRAPH +0xF4CE 0x7DB4 #CJK UNIFIED IDEOGRAPH +0xF4CF 0x8F1F #CJK UNIFIED IDEOGRAPH +0xF4D0 0x8F4D #CJK UNIFIED IDEOGRAPH +0xF4D1 0x9435 #CJK UNIFIED IDEOGRAPH +0xF4D2 0x50C9 #CJK UNIFIED IDEOGRAPH +0xF4D3 0x5C16 #CJK UNIFIED IDEOGRAPH +0xF4D4 0x6CBE #CJK UNIFIED IDEOGRAPH +0xF4D5 0x6DFB #CJK UNIFIED IDEOGRAPH +0xF4D6 0x751B #CJK UNIFIED IDEOGRAPH +0xF4D7 0x77BB #CJK UNIFIED IDEOGRAPH +0xF4D8 0x7C3D #CJK UNIFIED IDEOGRAPH +0xF4D9 0x7C64 #CJK UNIFIED IDEOGRAPH +0xF4DA 0x8A79 #CJK UNIFIED IDEOGRAPH +0xF4DB 0x8AC2 #CJK UNIFIED IDEOGRAPH +0xF4DC 0x581E #CJK UNIFIED IDEOGRAPH +0xF4DD 0x59BE #CJK UNIFIED IDEOGRAPH +0xF4DE 0x5E16 #CJK UNIFIED IDEOGRAPH +0xF4DF 0x6377 #CJK UNIFIED IDEOGRAPH +0xF4E0 0x7252 #CJK UNIFIED IDEOGRAPH +0xF4E1 0x758A #CJK UNIFIED IDEOGRAPH +0xF4E2 0x776B #CJK UNIFIED IDEOGRAPH +0xF4E3 0x8ADC #CJK UNIFIED IDEOGRAPH +0xF4E4 0x8CBC #CJK UNIFIED IDEOGRAPH +0xF4E5 0x8F12 #CJK UNIFIED IDEOGRAPH +0xF4E6 0x5EF3 #CJK UNIFIED IDEOGRAPH +0xF4E7 0x6674 #CJK UNIFIED IDEOGRAPH +0xF4E8 0x6DF8 #CJK UNIFIED IDEOGRAPH +0xF4E9 0x807D #CJK UNIFIED IDEOGRAPH +0xF4EA 0x83C1 #CJK UNIFIED IDEOGRAPH +0xF4EB 0x8ACB #CJK UNIFIED IDEOGRAPH +0xF4EC 0x9751 #CJK UNIFIED IDEOGRAPH +0xF4ED 0x9BD6 #CJK UNIFIED IDEOGRAPH +0xF4EE 0xFA00 #CJK COMPATIBILITY IDEOGRAPH +0xF4EF 0x5243 #CJK UNIFIED IDEOGRAPH +0xF4F0 0x66FF #CJK UNIFIED IDEOGRAPH +0xF4F1 0x6D95 #CJK UNIFIED IDEOGRAPH +0xF4F2 0x6EEF #CJK UNIFIED IDEOGRAPH +0xF4F3 0x7DE0 #CJK UNIFIED IDEOGRAPH +0xF4F4 0x8AE6 #CJK UNIFIED IDEOGRAPH +0xF4F5 0x902E #CJK UNIFIED IDEOGRAPH +0xF4F6 0x905E #CJK UNIFIED IDEOGRAPH +0xF4F7 0x9AD4 #CJK UNIFIED IDEOGRAPH +0xF4F8 0x521D #CJK UNIFIED IDEOGRAPH +0xF4F9 0x527F #CJK UNIFIED IDEOGRAPH +0xF4FA 0x54E8 #CJK UNIFIED IDEOGRAPH +0xF4FB 0x6194 #CJK UNIFIED IDEOGRAPH +0xF4FC 0x6284 #CJK UNIFIED IDEOGRAPH +0xF4FD 0x62DB #CJK UNIFIED IDEOGRAPH +0xF4FE 0x68A2 #CJK UNIFIED IDEOGRAPH +0xF5A1 0x6912 #CJK UNIFIED IDEOGRAPH +0xF5A2 0x695A #CJK UNIFIED IDEOGRAPH +0xF5A3 0x6A35 #CJK UNIFIED IDEOGRAPH +0xF5A4 0x7092 #CJK UNIFIED IDEOGRAPH +0xF5A5 0x7126 #CJK UNIFIED IDEOGRAPH +0xF5A6 0x785D #CJK UNIFIED IDEOGRAPH +0xF5A7 0x7901 #CJK UNIFIED IDEOGRAPH +0xF5A8 0x790E #CJK UNIFIED IDEOGRAPH +0xF5A9 0x79D2 #CJK UNIFIED IDEOGRAPH +0xF5AA 0x7A0D #CJK UNIFIED IDEOGRAPH +0xF5AB 0x8096 #CJK UNIFIED IDEOGRAPH +0xF5AC 0x8278 #CJK UNIFIED IDEOGRAPH +0xF5AD 0x82D5 #CJK UNIFIED IDEOGRAPH +0xF5AE 0x8349 #CJK UNIFIED IDEOGRAPH +0xF5AF 0x8549 #CJK UNIFIED IDEOGRAPH +0xF5B0 0x8C82 #CJK UNIFIED IDEOGRAPH +0xF5B1 0x8D85 #CJK UNIFIED IDEOGRAPH +0xF5B2 0x9162 #CJK UNIFIED IDEOGRAPH +0xF5B3 0x918B #CJK UNIFIED IDEOGRAPH +0xF5B4 0x91AE #CJK UNIFIED IDEOGRAPH +0xF5B5 0x4FC3 #CJK UNIFIED IDEOGRAPH +0xF5B6 0x56D1 #CJK UNIFIED IDEOGRAPH +0xF5B7 0x71ED #CJK UNIFIED IDEOGRAPH +0xF5B8 0x77D7 #CJK UNIFIED IDEOGRAPH +0xF5B9 0x8700 #CJK UNIFIED IDEOGRAPH +0xF5BA 0x89F8 #CJK UNIFIED IDEOGRAPH +0xF5BB 0x5BF8 #CJK UNIFIED IDEOGRAPH +0xF5BC 0x5FD6 #CJK UNIFIED IDEOGRAPH +0xF5BD 0x6751 #CJK UNIFIED IDEOGRAPH +0xF5BE 0x90A8 #CJK UNIFIED IDEOGRAPH +0xF5BF 0x53E2 #CJK UNIFIED IDEOGRAPH +0xF5C0 0x585A #CJK UNIFIED IDEOGRAPH +0xF5C1 0x5BF5 #CJK UNIFIED IDEOGRAPH +0xF5C2 0x60A4 #CJK UNIFIED IDEOGRAPH +0xF5C3 0x6181 #CJK UNIFIED IDEOGRAPH +0xF5C4 0x6460 #CJK UNIFIED IDEOGRAPH +0xF5C5 0x7E3D #CJK UNIFIED IDEOGRAPH +0xF5C6 0x8070 #CJK UNIFIED IDEOGRAPH +0xF5C7 0x8525 #CJK UNIFIED IDEOGRAPH +0xF5C8 0x9283 #CJK UNIFIED IDEOGRAPH +0xF5C9 0x64AE #CJK UNIFIED IDEOGRAPH +0xF5CA 0x50AC #CJK UNIFIED IDEOGRAPH +0xF5CB 0x5D14 #CJK UNIFIED IDEOGRAPH +0xF5CC 0x6700 #CJK UNIFIED IDEOGRAPH +0xF5CD 0x589C #CJK UNIFIED IDEOGRAPH +0xF5CE 0x62BD #CJK UNIFIED IDEOGRAPH +0xF5CF 0x63A8 #CJK UNIFIED IDEOGRAPH +0xF5D0 0x690E #CJK UNIFIED IDEOGRAPH +0xF5D1 0x6978 #CJK UNIFIED IDEOGRAPH +0xF5D2 0x6A1E #CJK UNIFIED IDEOGRAPH +0xF5D3 0x6E6B #CJK UNIFIED IDEOGRAPH +0xF5D4 0x76BA #CJK UNIFIED IDEOGRAPH +0xF5D5 0x79CB #CJK UNIFIED IDEOGRAPH +0xF5D6 0x82BB #CJK UNIFIED IDEOGRAPH +0xF5D7 0x8429 #CJK UNIFIED IDEOGRAPH +0xF5D8 0x8ACF #CJK UNIFIED IDEOGRAPH +0xF5D9 0x8DA8 #CJK UNIFIED IDEOGRAPH +0xF5DA 0x8FFD #CJK UNIFIED IDEOGRAPH +0xF5DB 0x9112 #CJK UNIFIED IDEOGRAPH +0xF5DC 0x914B #CJK UNIFIED IDEOGRAPH +0xF5DD 0x919C #CJK UNIFIED IDEOGRAPH +0xF5DE 0x9310 #CJK UNIFIED IDEOGRAPH +0xF5DF 0x9318 #CJK UNIFIED IDEOGRAPH +0xF5E0 0x939A #CJK UNIFIED IDEOGRAPH +0xF5E1 0x96DB #CJK UNIFIED IDEOGRAPH +0xF5E2 0x9A36 #CJK UNIFIED IDEOGRAPH +0xF5E3 0x9C0D #CJK UNIFIED IDEOGRAPH +0xF5E4 0x4E11 #CJK UNIFIED IDEOGRAPH +0xF5E5 0x755C #CJK UNIFIED IDEOGRAPH +0xF5E6 0x795D #CJK UNIFIED IDEOGRAPH +0xF5E7 0x7AFA #CJK UNIFIED IDEOGRAPH +0xF5E8 0x7B51 #CJK UNIFIED IDEOGRAPH +0xF5E9 0x7BC9 #CJK UNIFIED IDEOGRAPH +0xF5EA 0x7E2E #CJK UNIFIED IDEOGRAPH +0xF5EB 0x84C4 #CJK UNIFIED IDEOGRAPH +0xF5EC 0x8E59 #CJK UNIFIED IDEOGRAPH +0xF5ED 0x8E74 #CJK UNIFIED IDEOGRAPH +0xF5EE 0x8EF8 #CJK UNIFIED IDEOGRAPH +0xF5EF 0x9010 #CJK UNIFIED IDEOGRAPH +0xF5F0 0x6625 #CJK UNIFIED IDEOGRAPH +0xF5F1 0x693F #CJK UNIFIED IDEOGRAPH +0xF5F2 0x7443 #CJK UNIFIED IDEOGRAPH +0xF5F3 0x51FA #CJK UNIFIED IDEOGRAPH +0xF5F4 0x672E #CJK UNIFIED IDEOGRAPH +0xF5F5 0x9EDC #CJK UNIFIED IDEOGRAPH +0xF5F6 0x5145 #CJK UNIFIED IDEOGRAPH +0xF5F7 0x5FE0 #CJK UNIFIED IDEOGRAPH +0xF5F8 0x6C96 #CJK UNIFIED IDEOGRAPH +0xF5F9 0x87F2 #CJK UNIFIED IDEOGRAPH +0xF5FA 0x885D #CJK UNIFIED IDEOGRAPH +0xF5FB 0x8877 #CJK UNIFIED IDEOGRAPH +0xF5FC 0x60B4 #CJK UNIFIED IDEOGRAPH +0xF5FD 0x81B5 #CJK UNIFIED IDEOGRAPH +0xF5FE 0x8403 #CJK UNIFIED IDEOGRAPH +0xF6A1 0x8D05 #CJK UNIFIED IDEOGRAPH +0xF6A2 0x53D6 #CJK UNIFIED IDEOGRAPH +0xF6A3 0x5439 #CJK UNIFIED IDEOGRAPH +0xF6A4 0x5634 #CJK UNIFIED IDEOGRAPH +0xF6A5 0x5A36 #CJK UNIFIED IDEOGRAPH +0xF6A6 0x5C31 #CJK UNIFIED IDEOGRAPH +0xF6A7 0x708A #CJK UNIFIED IDEOGRAPH +0xF6A8 0x7FE0 #CJK UNIFIED IDEOGRAPH +0xF6A9 0x805A #CJK UNIFIED IDEOGRAPH +0xF6AA 0x8106 #CJK UNIFIED IDEOGRAPH +0xF6AB 0x81ED #CJK UNIFIED IDEOGRAPH +0xF6AC 0x8DA3 #CJK UNIFIED IDEOGRAPH +0xF6AD 0x9189 #CJK UNIFIED IDEOGRAPH +0xF6AE 0x9A5F #CJK UNIFIED IDEOGRAPH +0xF6AF 0x9DF2 #CJK UNIFIED IDEOGRAPH +0xF6B0 0x5074 #CJK UNIFIED IDEOGRAPH +0xF6B1 0x4EC4 #CJK UNIFIED IDEOGRAPH +0xF6B2 0x53A0 #CJK UNIFIED IDEOGRAPH +0xF6B3 0x60FB #CJK UNIFIED IDEOGRAPH +0xF6B4 0x6E2C #CJK UNIFIED IDEOGRAPH +0xF6B5 0x5C64 #CJK UNIFIED IDEOGRAPH +0xF6B6 0x4F88 #CJK UNIFIED IDEOGRAPH +0xF6B7 0x5024 #CJK UNIFIED IDEOGRAPH +0xF6B8 0x55E4 #CJK UNIFIED IDEOGRAPH +0xF6B9 0x5CD9 #CJK UNIFIED IDEOGRAPH +0xF6BA 0x5E5F #CJK UNIFIED IDEOGRAPH +0xF6BB 0x6065 #CJK UNIFIED IDEOGRAPH +0xF6BC 0x6894 #CJK UNIFIED IDEOGRAPH +0xF6BD 0x6CBB #CJK UNIFIED IDEOGRAPH +0xF6BE 0x6DC4 #CJK UNIFIED IDEOGRAPH +0xF6BF 0x71BE #CJK UNIFIED IDEOGRAPH +0xF6C0 0x75D4 #CJK UNIFIED IDEOGRAPH +0xF6C1 0x75F4 #CJK UNIFIED IDEOGRAPH +0xF6C2 0x7661 #CJK UNIFIED IDEOGRAPH +0xF6C3 0x7A1A #CJK UNIFIED IDEOGRAPH +0xF6C4 0x7A49 #CJK UNIFIED IDEOGRAPH +0xF6C5 0x7DC7 #CJK UNIFIED IDEOGRAPH +0xF6C6 0x7DFB #CJK UNIFIED IDEOGRAPH +0xF6C7 0x7F6E #CJK UNIFIED IDEOGRAPH +0xF6C8 0x81F4 #CJK UNIFIED IDEOGRAPH +0xF6C9 0x86A9 #CJK UNIFIED IDEOGRAPH +0xF6CA 0x8F1C #CJK UNIFIED IDEOGRAPH +0xF6CB 0x96C9 #CJK UNIFIED IDEOGRAPH +0xF6CC 0x99B3 #CJK UNIFIED IDEOGRAPH +0xF6CD 0x9F52 #CJK UNIFIED IDEOGRAPH +0xF6CE 0x5247 #CJK UNIFIED IDEOGRAPH +0xF6CF 0x52C5 #CJK UNIFIED IDEOGRAPH +0xF6D0 0x98ED #CJK UNIFIED IDEOGRAPH +0xF6D1 0x89AA #CJK UNIFIED IDEOGRAPH +0xF6D2 0x4E03 #CJK UNIFIED IDEOGRAPH +0xF6D3 0x67D2 #CJK UNIFIED IDEOGRAPH +0xF6D4 0x6F06 #CJK UNIFIED IDEOGRAPH +0xF6D5 0x4FB5 #CJK UNIFIED IDEOGRAPH +0xF6D6 0x5BE2 #CJK UNIFIED IDEOGRAPH +0xF6D7 0x6795 #CJK UNIFIED IDEOGRAPH +0xF6D8 0x6C88 #CJK UNIFIED IDEOGRAPH +0xF6D9 0x6D78 #CJK UNIFIED IDEOGRAPH +0xF6DA 0x741B #CJK UNIFIED IDEOGRAPH +0xF6DB 0x7827 #CJK UNIFIED IDEOGRAPH +0xF6DC 0x91DD #CJK UNIFIED IDEOGRAPH +0xF6DD 0x937C #CJK UNIFIED IDEOGRAPH +0xF6DE 0x87C4 #CJK UNIFIED IDEOGRAPH +0xF6DF 0x79E4 #CJK UNIFIED IDEOGRAPH +0xF6E0 0x7A31 #CJK UNIFIED IDEOGRAPH +0xF6E1 0x5FEB #CJK UNIFIED IDEOGRAPH +0xF6E2 0x4ED6 #CJK UNIFIED IDEOGRAPH +0xF6E3 0x54A4 #CJK UNIFIED IDEOGRAPH +0xF6E4 0x553E #CJK UNIFIED IDEOGRAPH +0xF6E5 0x58AE #CJK UNIFIED IDEOGRAPH +0xF6E6 0x59A5 #CJK UNIFIED IDEOGRAPH +0xF6E7 0x60F0 #CJK UNIFIED IDEOGRAPH +0xF6E8 0x6253 #CJK UNIFIED IDEOGRAPH +0xF6E9 0x62D6 #CJK UNIFIED IDEOGRAPH +0xF6EA 0x6736 #CJK UNIFIED IDEOGRAPH +0xF6EB 0x6955 #CJK UNIFIED IDEOGRAPH +0xF6EC 0x8235 #CJK UNIFIED IDEOGRAPH +0xF6ED 0x9640 #CJK UNIFIED IDEOGRAPH +0xF6EE 0x99B1 #CJK UNIFIED IDEOGRAPH +0xF6EF 0x99DD #CJK UNIFIED IDEOGRAPH +0xF6F0 0x502C #CJK UNIFIED IDEOGRAPH +0xF6F1 0x5353 #CJK UNIFIED IDEOGRAPH +0xF6F2 0x5544 #CJK UNIFIED IDEOGRAPH +0xF6F3 0x577C #CJK UNIFIED IDEOGRAPH +0xF6F4 0xFA01 #CJK COMPATIBILITY IDEOGRAPH +0xF6F5 0x6258 #CJK UNIFIED IDEOGRAPH +0xF6F6 0xFA02 #CJK COMPATIBILITY IDEOGRAPH +0xF6F7 0x64E2 #CJK UNIFIED IDEOGRAPH +0xF6F8 0x666B #CJK UNIFIED IDEOGRAPH +0xF6F9 0x67DD #CJK UNIFIED IDEOGRAPH +0xF6FA 0x6FC1 #CJK UNIFIED IDEOGRAPH +0xF6FB 0x6FEF #CJK UNIFIED IDEOGRAPH +0xF6FC 0x7422 #CJK UNIFIED IDEOGRAPH +0xF6FD 0x7438 #CJK UNIFIED IDEOGRAPH +0xF6FE 0x8A17 #CJK UNIFIED IDEOGRAPH +0xF7A1 0x9438 #CJK UNIFIED IDEOGRAPH +0xF7A2 0x5451 #CJK UNIFIED IDEOGRAPH +0xF7A3 0x5606 #CJK UNIFIED IDEOGRAPH +0xF7A4 0x5766 #CJK UNIFIED IDEOGRAPH +0xF7A5 0x5F48 #CJK UNIFIED IDEOGRAPH +0xF7A6 0x619A #CJK UNIFIED IDEOGRAPH +0xF7A7 0x6B4E #CJK UNIFIED IDEOGRAPH +0xF7A8 0x7058 #CJK UNIFIED IDEOGRAPH +0xF7A9 0x70AD #CJK UNIFIED IDEOGRAPH +0xF7AA 0x7DBB #CJK UNIFIED IDEOGRAPH +0xF7AB 0x8A95 #CJK UNIFIED IDEOGRAPH +0xF7AC 0x596A #CJK UNIFIED IDEOGRAPH +0xF7AD 0x812B #CJK UNIFIED IDEOGRAPH +0xF7AE 0x63A2 #CJK UNIFIED IDEOGRAPH +0xF7AF 0x7708 #CJK UNIFIED IDEOGRAPH +0xF7B0 0x803D #CJK UNIFIED IDEOGRAPH +0xF7B1 0x8CAA #CJK UNIFIED IDEOGRAPH +0xF7B2 0x5854 #CJK UNIFIED IDEOGRAPH +0xF7B3 0x642D #CJK UNIFIED IDEOGRAPH +0xF7B4 0x69BB #CJK UNIFIED IDEOGRAPH +0xF7B5 0x5B95 #CJK UNIFIED IDEOGRAPH +0xF7B6 0x5E11 #CJK UNIFIED IDEOGRAPH +0xF7B7 0x6E6F #CJK UNIFIED IDEOGRAPH +0xF7B8 0xFA03 #CJK COMPATIBILITY IDEOGRAPH +0xF7B9 0x8569 #CJK UNIFIED IDEOGRAPH +0xF7BA 0x514C #CJK UNIFIED IDEOGRAPH +0xF7BB 0x53F0 #CJK UNIFIED IDEOGRAPH +0xF7BC 0x592A #CJK UNIFIED IDEOGRAPH +0xF7BD 0x6020 #CJK UNIFIED IDEOGRAPH +0xF7BE 0x614B #CJK UNIFIED IDEOGRAPH +0xF7BF 0x6B86 #CJK UNIFIED IDEOGRAPH +0xF7C0 0x6C70 #CJK UNIFIED IDEOGRAPH +0xF7C1 0x6CF0 #CJK UNIFIED IDEOGRAPH +0xF7C2 0x7B1E #CJK UNIFIED IDEOGRAPH +0xF7C3 0x80CE #CJK UNIFIED IDEOGRAPH +0xF7C4 0x82D4 #CJK UNIFIED IDEOGRAPH +0xF7C5 0x8DC6 #CJK UNIFIED IDEOGRAPH +0xF7C6 0x90B0 #CJK UNIFIED IDEOGRAPH +0xF7C7 0x98B1 #CJK UNIFIED IDEOGRAPH +0xF7C8 0xFA04 #CJK COMPATIBILITY IDEOGRAPH +0xF7C9 0x64C7 #CJK UNIFIED IDEOGRAPH +0xF7CA 0x6FA4 #CJK UNIFIED IDEOGRAPH +0xF7CB 0x6491 #CJK UNIFIED IDEOGRAPH +0xF7CC 0x6504 #CJK UNIFIED IDEOGRAPH +0xF7CD 0x514E #CJK UNIFIED IDEOGRAPH +0xF7CE 0x5410 #CJK UNIFIED IDEOGRAPH +0xF7CF 0x571F #CJK UNIFIED IDEOGRAPH +0xF7D0 0x8A0E #CJK UNIFIED IDEOGRAPH +0xF7D1 0x615F #CJK UNIFIED IDEOGRAPH +0xF7D2 0x6876 #CJK UNIFIED IDEOGRAPH +0xF7D3 0xFA05 #CJK COMPATIBILITY IDEOGRAPH +0xF7D4 0x75DB #CJK UNIFIED IDEOGRAPH +0xF7D5 0x7B52 #CJK UNIFIED IDEOGRAPH +0xF7D6 0x7D71 #CJK UNIFIED IDEOGRAPH +0xF7D7 0x901A #CJK UNIFIED IDEOGRAPH +0xF7D8 0x5806 #CJK UNIFIED IDEOGRAPH +0xF7D9 0x69CC #CJK UNIFIED IDEOGRAPH +0xF7DA 0x817F #CJK UNIFIED IDEOGRAPH +0xF7DB 0x892A #CJK UNIFIED IDEOGRAPH +0xF7DC 0x9000 #CJK UNIFIED IDEOGRAPH +0xF7DD 0x9839 #CJK UNIFIED IDEOGRAPH +0xF7DE 0x5078 #CJK UNIFIED IDEOGRAPH +0xF7DF 0x5957 #CJK UNIFIED IDEOGRAPH +0xF7E0 0x59AC #CJK UNIFIED IDEOGRAPH +0xF7E1 0x6295 #CJK UNIFIED IDEOGRAPH +0xF7E2 0x900F #CJK UNIFIED IDEOGRAPH +0xF7E3 0x9B2A #CJK UNIFIED IDEOGRAPH +0xF7E4 0x615D #CJK UNIFIED IDEOGRAPH +0xF7E5 0x7279 #CJK UNIFIED IDEOGRAPH +0xF7E6 0x95D6 #CJK UNIFIED IDEOGRAPH +0xF7E7 0x5761 #CJK UNIFIED IDEOGRAPH +0xF7E8 0x5A46 #CJK UNIFIED IDEOGRAPH +0xF7E9 0x5DF4 #CJK UNIFIED IDEOGRAPH +0xF7EA 0x628A #CJK UNIFIED IDEOGRAPH +0xF7EB 0x64AD #CJK UNIFIED IDEOGRAPH +0xF7EC 0x64FA #CJK UNIFIED IDEOGRAPH +0xF7ED 0x6777 #CJK UNIFIED IDEOGRAPH +0xF7EE 0x6CE2 #CJK UNIFIED IDEOGRAPH +0xF7EF 0x6D3E #CJK UNIFIED IDEOGRAPH +0xF7F0 0x722C #CJK UNIFIED IDEOGRAPH +0xF7F1 0x7436 #CJK UNIFIED IDEOGRAPH +0xF7F2 0x7834 #CJK UNIFIED IDEOGRAPH +0xF7F3 0x7F77 #CJK UNIFIED IDEOGRAPH +0xF7F4 0x82AD #CJK UNIFIED IDEOGRAPH +0xF7F5 0x8DDB #CJK UNIFIED IDEOGRAPH +0xF7F6 0x9817 #CJK UNIFIED IDEOGRAPH +0xF7F7 0x5224 #CJK UNIFIED IDEOGRAPH +0xF7F8 0x5742 #CJK UNIFIED IDEOGRAPH +0xF7F9 0x677F #CJK UNIFIED IDEOGRAPH +0xF7FA 0x7248 #CJK UNIFIED IDEOGRAPH +0xF7FB 0x74E3 #CJK UNIFIED IDEOGRAPH +0xF7FC 0x8CA9 #CJK UNIFIED IDEOGRAPH +0xF7FD 0x8FA6 #CJK UNIFIED IDEOGRAPH +0xF7FE 0x9211 #CJK UNIFIED IDEOGRAPH +0xF8A1 0x962A #CJK UNIFIED IDEOGRAPH +0xF8A2 0x516B #CJK UNIFIED IDEOGRAPH +0xF8A3 0x53ED #CJK UNIFIED IDEOGRAPH +0xF8A4 0x634C #CJK UNIFIED IDEOGRAPH +0xF8A5 0x4F69 #CJK UNIFIED IDEOGRAPH +0xF8A6 0x5504 #CJK UNIFIED IDEOGRAPH +0xF8A7 0x6096 #CJK UNIFIED IDEOGRAPH +0xF8A8 0x6557 #CJK UNIFIED IDEOGRAPH +0xF8A9 0x6C9B #CJK UNIFIED IDEOGRAPH +0xF8AA 0x6D7F #CJK UNIFIED IDEOGRAPH +0xF8AB 0x724C #CJK UNIFIED IDEOGRAPH +0xF8AC 0x72FD #CJK UNIFIED IDEOGRAPH +0xF8AD 0x7A17 #CJK UNIFIED IDEOGRAPH +0xF8AE 0x8987 #CJK UNIFIED IDEOGRAPH +0xF8AF 0x8C9D #CJK UNIFIED IDEOGRAPH +0xF8B0 0x5F6D #CJK UNIFIED IDEOGRAPH +0xF8B1 0x6F8E #CJK UNIFIED IDEOGRAPH +0xF8B2 0x70F9 #CJK UNIFIED IDEOGRAPH +0xF8B3 0x81A8 #CJK UNIFIED IDEOGRAPH +0xF8B4 0x610E #CJK UNIFIED IDEOGRAPH +0xF8B5 0x4FBF #CJK UNIFIED IDEOGRAPH +0xF8B6 0x504F #CJK UNIFIED IDEOGRAPH +0xF8B7 0x6241 #CJK UNIFIED IDEOGRAPH +0xF8B8 0x7247 #CJK UNIFIED IDEOGRAPH +0xF8B9 0x7BC7 #CJK UNIFIED IDEOGRAPH +0xF8BA 0x7DE8 #CJK UNIFIED IDEOGRAPH +0xF8BB 0x7FE9 #CJK UNIFIED IDEOGRAPH +0xF8BC 0x904D #CJK UNIFIED IDEOGRAPH +0xF8BD 0x97AD #CJK UNIFIED IDEOGRAPH +0xF8BE 0x9A19 #CJK UNIFIED IDEOGRAPH +0xF8BF 0x8CB6 #CJK UNIFIED IDEOGRAPH +0xF8C0 0x576A #CJK UNIFIED IDEOGRAPH +0xF8C1 0x5E73 #CJK UNIFIED IDEOGRAPH +0xF8C2 0x67B0 #CJK UNIFIED IDEOGRAPH +0xF8C3 0x840D #CJK UNIFIED IDEOGRAPH +0xF8C4 0x8A55 #CJK UNIFIED IDEOGRAPH +0xF8C5 0x5420 #CJK UNIFIED IDEOGRAPH +0xF8C6 0x5B16 #CJK UNIFIED IDEOGRAPH +0xF8C7 0x5E63 #CJK UNIFIED IDEOGRAPH +0xF8C8 0x5EE2 #CJK UNIFIED IDEOGRAPH +0xF8C9 0x5F0A #CJK UNIFIED IDEOGRAPH +0xF8CA 0x6583 #CJK UNIFIED IDEOGRAPH +0xF8CB 0x80BA #CJK UNIFIED IDEOGRAPH +0xF8CC 0x853D #CJK UNIFIED IDEOGRAPH +0xF8CD 0x9589 #CJK UNIFIED IDEOGRAPH +0xF8CE 0x965B #CJK UNIFIED IDEOGRAPH +0xF8CF 0x4F48 #CJK UNIFIED IDEOGRAPH +0xF8D0 0x5305 #CJK UNIFIED IDEOGRAPH +0xF8D1 0x530D #CJK UNIFIED IDEOGRAPH +0xF8D2 0x530F #CJK UNIFIED IDEOGRAPH +0xF8D3 0x5486 #CJK UNIFIED IDEOGRAPH +0xF8D4 0x54FA #CJK UNIFIED IDEOGRAPH +0xF8D5 0x5703 #CJK UNIFIED IDEOGRAPH +0xF8D6 0x5E03 #CJK UNIFIED IDEOGRAPH +0xF8D7 0x6016 #CJK UNIFIED IDEOGRAPH +0xF8D8 0x629B #CJK UNIFIED IDEOGRAPH +0xF8D9 0x62B1 #CJK UNIFIED IDEOGRAPH +0xF8DA 0x6355 #CJK UNIFIED IDEOGRAPH +0xF8DB 0xFA06 #CJK COMPATIBILITY IDEOGRAPH +0xF8DC 0x6CE1 #CJK UNIFIED IDEOGRAPH +0xF8DD 0x6D66 #CJK UNIFIED IDEOGRAPH +0xF8DE 0x75B1 #CJK UNIFIED IDEOGRAPH +0xF8DF 0x7832 #CJK UNIFIED IDEOGRAPH +0xF8E0 0x80DE #CJK UNIFIED IDEOGRAPH +0xF8E1 0x812F #CJK UNIFIED IDEOGRAPH +0xF8E2 0x82DE #CJK UNIFIED IDEOGRAPH +0xF8E3 0x8461 #CJK UNIFIED IDEOGRAPH +0xF8E4 0x84B2 #CJK UNIFIED IDEOGRAPH +0xF8E5 0x888D #CJK UNIFIED IDEOGRAPH +0xF8E6 0x8912 #CJK UNIFIED IDEOGRAPH +0xF8E7 0x900B #CJK UNIFIED IDEOGRAPH +0xF8E8 0x92EA #CJK UNIFIED IDEOGRAPH +0xF8E9 0x98FD #CJK UNIFIED IDEOGRAPH +0xF8EA 0x9B91 #CJK UNIFIED IDEOGRAPH +0xF8EB 0x5E45 #CJK UNIFIED IDEOGRAPH +0xF8EC 0x66B4 #CJK UNIFIED IDEOGRAPH +0xF8ED 0x66DD #CJK UNIFIED IDEOGRAPH +0xF8EE 0x7011 #CJK UNIFIED IDEOGRAPH +0xF8EF 0x7206 #CJK UNIFIED IDEOGRAPH +0xF8F0 0xFA07 #CJK COMPATIBILITY IDEOGRAPH +0xF8F1 0x4FF5 #CJK UNIFIED IDEOGRAPH +0xF8F2 0x527D #CJK UNIFIED IDEOGRAPH +0xF8F3 0x5F6A #CJK UNIFIED IDEOGRAPH +0xF8F4 0x6153 #CJK UNIFIED IDEOGRAPH +0xF8F5 0x6753 #CJK UNIFIED IDEOGRAPH +0xF8F6 0x6A19 #CJK UNIFIED IDEOGRAPH +0xF8F7 0x6F02 #CJK UNIFIED IDEOGRAPH +0xF8F8 0x74E2 #CJK UNIFIED IDEOGRAPH +0xF8F9 0x7968 #CJK UNIFIED IDEOGRAPH +0xF8FA 0x8868 #CJK UNIFIED IDEOGRAPH +0xF8FB 0x8C79 #CJK UNIFIED IDEOGRAPH +0xF8FC 0x98C7 #CJK UNIFIED IDEOGRAPH +0xF8FD 0x98C4 #CJK UNIFIED IDEOGRAPH +0xF8FE 0x9A43 #CJK UNIFIED IDEOGRAPH +0xF9A1 0x54C1 #CJK UNIFIED IDEOGRAPH +0xF9A2 0x7A1F #CJK UNIFIED IDEOGRAPH +0xF9A3 0x6953 #CJK UNIFIED IDEOGRAPH +0xF9A4 0x8AF7 #CJK UNIFIED IDEOGRAPH +0xF9A5 0x8C4A #CJK UNIFIED IDEOGRAPH +0xF9A6 0x98A8 #CJK UNIFIED IDEOGRAPH +0xF9A7 0x99AE #CJK UNIFIED IDEOGRAPH +0xF9A8 0x5F7C #CJK UNIFIED IDEOGRAPH +0xF9A9 0x62AB #CJK UNIFIED IDEOGRAPH +0xF9AA 0x75B2 #CJK UNIFIED IDEOGRAPH +0xF9AB 0x76AE #CJK UNIFIED IDEOGRAPH +0xF9AC 0x88AB #CJK UNIFIED IDEOGRAPH +0xF9AD 0x907F #CJK UNIFIED IDEOGRAPH +0xF9AE 0x9642 #CJK UNIFIED IDEOGRAPH +0xF9AF 0x5339 #CJK UNIFIED IDEOGRAPH +0xF9B0 0x5F3C #CJK UNIFIED IDEOGRAPH +0xF9B1 0x5FC5 #CJK UNIFIED IDEOGRAPH +0xF9B2 0x6CCC #CJK UNIFIED IDEOGRAPH +0xF9B3 0x73CC #CJK UNIFIED IDEOGRAPH +0xF9B4 0x7562 #CJK UNIFIED IDEOGRAPH +0xF9B5 0x758B #CJK UNIFIED IDEOGRAPH +0xF9B6 0x7B46 #CJK UNIFIED IDEOGRAPH +0xF9B7 0x82FE #CJK UNIFIED IDEOGRAPH +0xF9B8 0x999D #CJK UNIFIED IDEOGRAPH +0xF9B9 0x4E4F #CJK UNIFIED IDEOGRAPH +0xF9BA 0x903C #CJK UNIFIED IDEOGRAPH +0xF9BB 0x4E0B #CJK UNIFIED IDEOGRAPH +0xF9BC 0x4F55 #CJK UNIFIED IDEOGRAPH +0xF9BD 0x53A6 #CJK UNIFIED IDEOGRAPH +0xF9BE 0x590F #CJK UNIFIED IDEOGRAPH +0xF9BF 0x5EC8 #CJK UNIFIED IDEOGRAPH +0xF9C0 0x6630 #CJK UNIFIED IDEOGRAPH +0xF9C1 0x6CB3 #CJK UNIFIED IDEOGRAPH +0xF9C2 0x7455 #CJK UNIFIED IDEOGRAPH +0xF9C3 0x8377 #CJK UNIFIED IDEOGRAPH +0xF9C4 0x8766 #CJK UNIFIED IDEOGRAPH +0xF9C5 0x8CC0 #CJK UNIFIED IDEOGRAPH +0xF9C6 0x9050 #CJK UNIFIED IDEOGRAPH +0xF9C7 0x971E #CJK UNIFIED IDEOGRAPH +0xF9C8 0x9C15 #CJK UNIFIED IDEOGRAPH +0xF9C9 0x58D1 #CJK UNIFIED IDEOGRAPH +0xF9CA 0x5B78 #CJK UNIFIED IDEOGRAPH +0xF9CB 0x8650 #CJK UNIFIED IDEOGRAPH +0xF9CC 0x8B14 #CJK UNIFIED IDEOGRAPH +0xF9CD 0x9DB4 #CJK UNIFIED IDEOGRAPH +0xF9CE 0x5BD2 #CJK UNIFIED IDEOGRAPH +0xF9CF 0x6068 #CJK UNIFIED IDEOGRAPH +0xF9D0 0x608D #CJK UNIFIED IDEOGRAPH +0xF9D1 0x65F1 #CJK UNIFIED IDEOGRAPH +0xF9D2 0x6C57 #CJK UNIFIED IDEOGRAPH +0xF9D3 0x6F22 #CJK UNIFIED IDEOGRAPH +0xF9D4 0x6FA3 #CJK UNIFIED IDEOGRAPH +0xF9D5 0x701A #CJK UNIFIED IDEOGRAPH +0xF9D6 0x7F55 #CJK UNIFIED IDEOGRAPH +0xF9D7 0x7FF0 #CJK UNIFIED IDEOGRAPH +0xF9D8 0x9591 #CJK UNIFIED IDEOGRAPH +0xF9D9 0x9592 #CJK UNIFIED IDEOGRAPH +0xF9DA 0x9650 #CJK UNIFIED IDEOGRAPH +0xF9DB 0x97D3 #CJK UNIFIED IDEOGRAPH +0xF9DC 0x5272 #CJK UNIFIED IDEOGRAPH +0xF9DD 0x8F44 #CJK UNIFIED IDEOGRAPH +0xF9DE 0x51FD #CJK UNIFIED IDEOGRAPH +0xF9DF 0x542B #CJK UNIFIED IDEOGRAPH +0xF9E0 0x54B8 #CJK UNIFIED IDEOGRAPH +0xF9E1 0x5563 #CJK UNIFIED IDEOGRAPH +0xF9E2 0x558A #CJK UNIFIED IDEOGRAPH +0xF9E3 0x6ABB #CJK UNIFIED IDEOGRAPH +0xF9E4 0x6DB5 #CJK UNIFIED IDEOGRAPH +0xF9E5 0x7DD8 #CJK UNIFIED IDEOGRAPH +0xF9E6 0x8266 #CJK UNIFIED IDEOGRAPH +0xF9E7 0x929C #CJK UNIFIED IDEOGRAPH +0xF9E8 0x9677 #CJK UNIFIED IDEOGRAPH +0xF9E9 0x9E79 #CJK UNIFIED IDEOGRAPH +0xF9EA 0x5408 #CJK UNIFIED IDEOGRAPH +0xF9EB 0x54C8 #CJK UNIFIED IDEOGRAPH +0xF9EC 0x76D2 #CJK UNIFIED IDEOGRAPH +0xF9ED 0x86E4 #CJK UNIFIED IDEOGRAPH +0xF9EE 0x95A4 #CJK UNIFIED IDEOGRAPH +0xF9EF 0x95D4 #CJK UNIFIED IDEOGRAPH +0xF9F0 0x965C #CJK UNIFIED IDEOGRAPH +0xF9F1 0x4EA2 #CJK UNIFIED IDEOGRAPH +0xF9F2 0x4F09 #CJK UNIFIED IDEOGRAPH +0xF9F3 0x59EE #CJK UNIFIED IDEOGRAPH +0xF9F4 0x5AE6 #CJK UNIFIED IDEOGRAPH +0xF9F5 0x5DF7 #CJK UNIFIED IDEOGRAPH +0xF9F6 0x6052 #CJK UNIFIED IDEOGRAPH +0xF9F7 0x6297 #CJK UNIFIED IDEOGRAPH +0xF9F8 0x676D #CJK UNIFIED IDEOGRAPH +0xF9F9 0x6841 #CJK UNIFIED IDEOGRAPH +0xF9FA 0x6C86 #CJK UNIFIED IDEOGRAPH +0xF9FB 0x6E2F #CJK UNIFIED IDEOGRAPH +0xF9FC 0x7F38 #CJK UNIFIED IDEOGRAPH +0xF9FD 0x809B #CJK UNIFIED IDEOGRAPH +0xF9FE 0x822A #CJK UNIFIED IDEOGRAPH +0xFAA1 0xFA08 #CJK COMPATIBILITY IDEOGRAPH +0xFAA2 0xFA09 #CJK COMPATIBILITY IDEOGRAPH +0xFAA3 0x9805 #CJK UNIFIED IDEOGRAPH +0xFAA4 0x4EA5 #CJK UNIFIED IDEOGRAPH +0xFAA5 0x5055 #CJK UNIFIED IDEOGRAPH +0xFAA6 0x54B3 #CJK UNIFIED IDEOGRAPH +0xFAA7 0x5793 #CJK UNIFIED IDEOGRAPH +0xFAA8 0x595A #CJK UNIFIED IDEOGRAPH +0xFAA9 0x5B69 #CJK UNIFIED IDEOGRAPH +0xFAAA 0x5BB3 #CJK UNIFIED IDEOGRAPH +0xFAAB 0x61C8 #CJK UNIFIED IDEOGRAPH +0xFAAC 0x6977 #CJK UNIFIED IDEOGRAPH +0xFAAD 0x6D77 #CJK UNIFIED IDEOGRAPH +0xFAAE 0x7023 #CJK UNIFIED IDEOGRAPH +0xFAAF 0x87F9 #CJK UNIFIED IDEOGRAPH +0xFAB0 0x89E3 #CJK UNIFIED IDEOGRAPH +0xFAB1 0x8A72 #CJK UNIFIED IDEOGRAPH +0xFAB2 0x8AE7 #CJK UNIFIED IDEOGRAPH +0xFAB3 0x9082 #CJK UNIFIED IDEOGRAPH +0xFAB4 0x99ED #CJK UNIFIED IDEOGRAPH +0xFAB5 0x9AB8 #CJK UNIFIED IDEOGRAPH +0xFAB6 0x52BE #CJK UNIFIED IDEOGRAPH +0xFAB7 0x6838 #CJK UNIFIED IDEOGRAPH +0xFAB8 0x5016 #CJK UNIFIED IDEOGRAPH +0xFAB9 0x5E78 #CJK UNIFIED IDEOGRAPH +0xFABA 0x674F #CJK UNIFIED IDEOGRAPH +0xFABB 0x8347 #CJK UNIFIED IDEOGRAPH +0xFABC 0x884C #CJK UNIFIED IDEOGRAPH +0xFABD 0x4EAB #CJK UNIFIED IDEOGRAPH +0xFABE 0x5411 #CJK UNIFIED IDEOGRAPH +0xFABF 0x56AE #CJK UNIFIED IDEOGRAPH +0xFAC0 0x73E6 #CJK UNIFIED IDEOGRAPH +0xFAC1 0x9115 #CJK UNIFIED IDEOGRAPH +0xFAC2 0x97FF #CJK UNIFIED IDEOGRAPH +0xFAC3 0x9909 #CJK UNIFIED IDEOGRAPH +0xFAC4 0x9957 #CJK UNIFIED IDEOGRAPH +0xFAC5 0x9999 #CJK UNIFIED IDEOGRAPH +0xFAC6 0x5653 #CJK UNIFIED IDEOGRAPH +0xFAC7 0x589F #CJK UNIFIED IDEOGRAPH +0xFAC8 0x865B #CJK UNIFIED IDEOGRAPH +0xFAC9 0x8A31 #CJK UNIFIED IDEOGRAPH +0xFACA 0x61B2 #CJK UNIFIED IDEOGRAPH +0xFACB 0x6AF6 #CJK UNIFIED IDEOGRAPH +0xFACC 0x737B #CJK UNIFIED IDEOGRAPH +0xFACD 0x8ED2 #CJK UNIFIED IDEOGRAPH +0xFACE 0x6B47 #CJK UNIFIED IDEOGRAPH +0xFACF 0x96AA #CJK UNIFIED IDEOGRAPH +0xFAD0 0x9A57 #CJK UNIFIED IDEOGRAPH +0xFAD1 0x5955 #CJK UNIFIED IDEOGRAPH +0xFAD2 0x7200 #CJK UNIFIED IDEOGRAPH +0xFAD3 0x8D6B #CJK UNIFIED IDEOGRAPH +0xFAD4 0x9769 #CJK UNIFIED IDEOGRAPH +0xFAD5 0x4FD4 #CJK UNIFIED IDEOGRAPH +0xFAD6 0x5CF4 #CJK UNIFIED IDEOGRAPH +0xFAD7 0x5F26 #CJK UNIFIED IDEOGRAPH +0xFAD8 0x61F8 #CJK UNIFIED IDEOGRAPH +0xFAD9 0x665B #CJK UNIFIED IDEOGRAPH +0xFADA 0x6CEB #CJK UNIFIED IDEOGRAPH +0xFADB 0x70AB #CJK UNIFIED IDEOGRAPH +0xFADC 0x7384 #CJK UNIFIED IDEOGRAPH +0xFADD 0x73B9 #CJK UNIFIED IDEOGRAPH +0xFADE 0x73FE #CJK UNIFIED IDEOGRAPH +0xFADF 0x7729 #CJK UNIFIED IDEOGRAPH +0xFAE0 0x774D #CJK UNIFIED IDEOGRAPH +0xFAE1 0x7D43 #CJK UNIFIED IDEOGRAPH +0xFAE2 0x7D62 #CJK UNIFIED IDEOGRAPH +0xFAE3 0x7E23 #CJK UNIFIED IDEOGRAPH +0xFAE4 0x8237 #CJK UNIFIED IDEOGRAPH +0xFAE5 0x8852 #CJK UNIFIED IDEOGRAPH +0xFAE6 0xFA0A #CJK COMPATIBILITY IDEOGRAPH +0xFAE7 0x8CE2 #CJK UNIFIED IDEOGRAPH +0xFAE8 0x9249 #CJK UNIFIED IDEOGRAPH +0xFAE9 0x986F #CJK UNIFIED IDEOGRAPH +0xFAEA 0x5B51 #CJK UNIFIED IDEOGRAPH +0xFAEB 0x7A74 #CJK UNIFIED IDEOGRAPH +0xFAEC 0x8840 #CJK UNIFIED IDEOGRAPH +0xFAED 0x9801 #CJK UNIFIED IDEOGRAPH +0xFAEE 0x5ACC #CJK UNIFIED IDEOGRAPH +0xFAEF 0x4FE0 #CJK UNIFIED IDEOGRAPH +0xFAF0 0x5354 #CJK UNIFIED IDEOGRAPH +0xFAF1 0x593E #CJK UNIFIED IDEOGRAPH +0xFAF2 0x5CFD #CJK UNIFIED IDEOGRAPH +0xFAF3 0x633E #CJK UNIFIED IDEOGRAPH +0xFAF4 0x6D79 #CJK UNIFIED IDEOGRAPH +0xFAF5 0x72F9 #CJK UNIFIED IDEOGRAPH +0xFAF6 0x8105 #CJK UNIFIED IDEOGRAPH +0xFAF7 0x8107 #CJK UNIFIED IDEOGRAPH +0xFAF8 0x83A2 #CJK UNIFIED IDEOGRAPH +0xFAF9 0x92CF #CJK UNIFIED IDEOGRAPH +0xFAFA 0x9830 #CJK UNIFIED IDEOGRAPH +0xFAFB 0x4EA8 #CJK UNIFIED IDEOGRAPH +0xFAFC 0x5144 #CJK UNIFIED IDEOGRAPH +0xFAFD 0x5211 #CJK UNIFIED IDEOGRAPH +0xFAFE 0x578B #CJK UNIFIED IDEOGRAPH +0xFBA1 0x5F62 #CJK UNIFIED IDEOGRAPH +0xFBA2 0x6CC2 #CJK UNIFIED IDEOGRAPH +0xFBA3 0x6ECE #CJK UNIFIED IDEOGRAPH +0xFBA4 0x7005 #CJK UNIFIED IDEOGRAPH +0xFBA5 0x7050 #CJK UNIFIED IDEOGRAPH +0xFBA6 0x70AF #CJK UNIFIED IDEOGRAPH +0xFBA7 0x7192 #CJK UNIFIED IDEOGRAPH +0xFBA8 0x73E9 #CJK UNIFIED IDEOGRAPH +0xFBA9 0x7469 #CJK UNIFIED IDEOGRAPH +0xFBAA 0x834A #CJK UNIFIED IDEOGRAPH +0xFBAB 0x87A2 #CJK UNIFIED IDEOGRAPH +0xFBAC 0x8861 #CJK UNIFIED IDEOGRAPH +0xFBAD 0x9008 #CJK UNIFIED IDEOGRAPH +0xFBAE 0x90A2 #CJK UNIFIED IDEOGRAPH +0xFBAF 0x93A3 #CJK UNIFIED IDEOGRAPH +0xFBB0 0x99A8 #CJK UNIFIED IDEOGRAPH +0xFBB1 0x516E #CJK UNIFIED IDEOGRAPH +0xFBB2 0x5F57 #CJK UNIFIED IDEOGRAPH +0xFBB3 0x60E0 #CJK UNIFIED IDEOGRAPH +0xFBB4 0x6167 #CJK UNIFIED IDEOGRAPH +0xFBB5 0x66B3 #CJK UNIFIED IDEOGRAPH +0xFBB6 0x8559 #CJK UNIFIED IDEOGRAPH +0xFBB7 0x8E4A #CJK UNIFIED IDEOGRAPH +0xFBB8 0x91AF #CJK UNIFIED IDEOGRAPH +0xFBB9 0x978B #CJK UNIFIED IDEOGRAPH +0xFBBA 0x4E4E #CJK UNIFIED IDEOGRAPH +0xFBBB 0x4E92 #CJK UNIFIED IDEOGRAPH +0xFBBC 0x547C #CJK UNIFIED IDEOGRAPH +0xFBBD 0x58D5 #CJK UNIFIED IDEOGRAPH +0xFBBE 0x58FA #CJK UNIFIED IDEOGRAPH +0xFBBF 0x597D #CJK UNIFIED IDEOGRAPH +0xFBC0 0x5CB5 #CJK UNIFIED IDEOGRAPH +0xFBC1 0x5F27 #CJK UNIFIED IDEOGRAPH +0xFBC2 0x6236 #CJK UNIFIED IDEOGRAPH +0xFBC3 0x6248 #CJK UNIFIED IDEOGRAPH +0xFBC4 0x660A #CJK UNIFIED IDEOGRAPH +0xFBC5 0x6667 #CJK UNIFIED IDEOGRAPH +0xFBC6 0x6BEB #CJK UNIFIED IDEOGRAPH +0xFBC7 0x6D69 #CJK UNIFIED IDEOGRAPH +0xFBC8 0x6DCF #CJK UNIFIED IDEOGRAPH +0xFBC9 0x6E56 #CJK UNIFIED IDEOGRAPH +0xFBCA 0x6EF8 #CJK UNIFIED IDEOGRAPH +0xFBCB 0x6F94 #CJK UNIFIED IDEOGRAPH +0xFBCC 0x6FE0 #CJK UNIFIED IDEOGRAPH +0xFBCD 0x6FE9 #CJK UNIFIED IDEOGRAPH +0xFBCE 0x705D #CJK UNIFIED IDEOGRAPH +0xFBCF 0x72D0 #CJK UNIFIED IDEOGRAPH +0xFBD0 0x7425 #CJK UNIFIED IDEOGRAPH +0xFBD1 0x745A #CJK UNIFIED IDEOGRAPH +0xFBD2 0x74E0 #CJK UNIFIED IDEOGRAPH +0xFBD3 0x7693 #CJK UNIFIED IDEOGRAPH +0xFBD4 0x795C #CJK UNIFIED IDEOGRAPH +0xFBD5 0x7CCA #CJK UNIFIED IDEOGRAPH +0xFBD6 0x7E1E #CJK UNIFIED IDEOGRAPH +0xFBD7 0x80E1 #CJK UNIFIED IDEOGRAPH +0xFBD8 0x82A6 #CJK UNIFIED IDEOGRAPH +0xFBD9 0x846B #CJK UNIFIED IDEOGRAPH +0xFBDA 0x84BF #CJK UNIFIED IDEOGRAPH +0xFBDB 0x864E #CJK UNIFIED IDEOGRAPH +0xFBDC 0x865F #CJK UNIFIED IDEOGRAPH +0xFBDD 0x8774 #CJK UNIFIED IDEOGRAPH +0xFBDE 0x8B77 #CJK UNIFIED IDEOGRAPH +0xFBDF 0x8C6A #CJK UNIFIED IDEOGRAPH +0xFBE0 0x93AC #CJK UNIFIED IDEOGRAPH +0xFBE1 0x9800 #CJK UNIFIED IDEOGRAPH +0xFBE2 0x9865 #CJK UNIFIED IDEOGRAPH +0xFBE3 0x60D1 #CJK UNIFIED IDEOGRAPH +0xFBE4 0x6216 #CJK UNIFIED IDEOGRAPH +0xFBE5 0x9177 #CJK UNIFIED IDEOGRAPH +0xFBE6 0x5A5A #CJK UNIFIED IDEOGRAPH +0xFBE7 0x660F #CJK UNIFIED IDEOGRAPH +0xFBE8 0x6DF7 #CJK UNIFIED IDEOGRAPH +0xFBE9 0x6E3E #CJK UNIFIED IDEOGRAPH +0xFBEA 0x743F #CJK UNIFIED IDEOGRAPH +0xFBEB 0x9B42 #CJK UNIFIED IDEOGRAPH +0xFBEC 0x5FFD #CJK UNIFIED IDEOGRAPH +0xFBED 0x60DA #CJK UNIFIED IDEOGRAPH +0xFBEE 0x7B0F #CJK UNIFIED IDEOGRAPH +0xFBEF 0x54C4 #CJK UNIFIED IDEOGRAPH +0xFBF0 0x5F18 #CJK UNIFIED IDEOGRAPH +0xFBF1 0x6C5E #CJK UNIFIED IDEOGRAPH +0xFBF2 0x6CD3 #CJK UNIFIED IDEOGRAPH +0xFBF3 0x6D2A #CJK UNIFIED IDEOGRAPH +0xFBF4 0x70D8 #CJK UNIFIED IDEOGRAPH +0xFBF5 0x7D05 #CJK UNIFIED IDEOGRAPH +0xFBF6 0x8679 #CJK UNIFIED IDEOGRAPH +0xFBF7 0x8A0C #CJK UNIFIED IDEOGRAPH +0xFBF8 0x9D3B #CJK UNIFIED IDEOGRAPH +0xFBF9 0x5316 #CJK UNIFIED IDEOGRAPH +0xFBFA 0x548C #CJK UNIFIED IDEOGRAPH +0xFBFB 0x5B05 #CJK UNIFIED IDEOGRAPH +0xFBFC 0x6A3A #CJK UNIFIED IDEOGRAPH +0xFBFD 0x706B #CJK UNIFIED IDEOGRAPH +0xFBFE 0x7575 #CJK UNIFIED IDEOGRAPH +0xFCA1 0x798D #CJK UNIFIED IDEOGRAPH +0xFCA2 0x79BE #CJK UNIFIED IDEOGRAPH +0xFCA3 0x82B1 #CJK UNIFIED IDEOGRAPH +0xFCA4 0x83EF #CJK UNIFIED IDEOGRAPH +0xFCA5 0x8A71 #CJK UNIFIED IDEOGRAPH +0xFCA6 0x8B41 #CJK UNIFIED IDEOGRAPH +0xFCA7 0x8CA8 #CJK UNIFIED IDEOGRAPH +0xFCA8 0x9774 #CJK UNIFIED IDEOGRAPH +0xFCA9 0xFA0B #CJK COMPATIBILITY IDEOGRAPH +0xFCAA 0x64F4 #CJK UNIFIED IDEOGRAPH +0xFCAB 0x652B #CJK UNIFIED IDEOGRAPH +0xFCAC 0x78BA #CJK UNIFIED IDEOGRAPH +0xFCAD 0x78BB #CJK UNIFIED IDEOGRAPH +0xFCAE 0x7A6B #CJK UNIFIED IDEOGRAPH +0xFCAF 0x4E38 #CJK UNIFIED IDEOGRAPH +0xFCB0 0x559A #CJK UNIFIED IDEOGRAPH +0xFCB1 0x5950 #CJK UNIFIED IDEOGRAPH +0xFCB2 0x5BA6 #CJK UNIFIED IDEOGRAPH +0xFCB3 0x5E7B #CJK UNIFIED IDEOGRAPH +0xFCB4 0x60A3 #CJK UNIFIED IDEOGRAPH +0xFCB5 0x63DB #CJK UNIFIED IDEOGRAPH +0xFCB6 0x6B61 #CJK UNIFIED IDEOGRAPH +0xFCB7 0x6665 #CJK UNIFIED IDEOGRAPH +0xFCB8 0x6853 #CJK UNIFIED IDEOGRAPH +0xFCB9 0x6E19 #CJK UNIFIED IDEOGRAPH +0xFCBA 0x7165 #CJK UNIFIED IDEOGRAPH +0xFCBB 0x74B0 #CJK UNIFIED IDEOGRAPH +0xFCBC 0x7D08 #CJK UNIFIED IDEOGRAPH +0xFCBD 0x9084 #CJK UNIFIED IDEOGRAPH +0xFCBE 0x9A69 #CJK UNIFIED IDEOGRAPH +0xFCBF 0x9C25 #CJK UNIFIED IDEOGRAPH +0xFCC0 0x6D3B #CJK UNIFIED IDEOGRAPH +0xFCC1 0x6ED1 #CJK UNIFIED IDEOGRAPH +0xFCC2 0x733E #CJK UNIFIED IDEOGRAPH +0xFCC3 0x8C41 #CJK UNIFIED IDEOGRAPH +0xFCC4 0x95CA #CJK UNIFIED IDEOGRAPH +0xFCC5 0x51F0 #CJK UNIFIED IDEOGRAPH +0xFCC6 0x5E4C #CJK UNIFIED IDEOGRAPH +0xFCC7 0x5FA8 #CJK UNIFIED IDEOGRAPH +0xFCC8 0x604D #CJK UNIFIED IDEOGRAPH +0xFCC9 0x60F6 #CJK UNIFIED IDEOGRAPH +0xFCCA 0x6130 #CJK UNIFIED IDEOGRAPH +0xFCCB 0x614C #CJK UNIFIED IDEOGRAPH +0xFCCC 0x6643 #CJK UNIFIED IDEOGRAPH +0xFCCD 0x6644 #CJK UNIFIED IDEOGRAPH +0xFCCE 0x69A5 #CJK UNIFIED IDEOGRAPH +0xFCCF 0x6CC1 #CJK UNIFIED IDEOGRAPH +0xFCD0 0x6E5F #CJK UNIFIED IDEOGRAPH +0xFCD1 0x6EC9 #CJK UNIFIED IDEOGRAPH +0xFCD2 0x6F62 #CJK UNIFIED IDEOGRAPH +0xFCD3 0x714C #CJK UNIFIED IDEOGRAPH +0xFCD4 0x749C #CJK UNIFIED IDEOGRAPH +0xFCD5 0x7687 #CJK UNIFIED IDEOGRAPH +0xFCD6 0x7BC1 #CJK UNIFIED IDEOGRAPH +0xFCD7 0x7C27 #CJK UNIFIED IDEOGRAPH +0xFCD8 0x8352 #CJK UNIFIED IDEOGRAPH +0xFCD9 0x8757 #CJK UNIFIED IDEOGRAPH +0xFCDA 0x9051 #CJK UNIFIED IDEOGRAPH +0xFCDB 0x968D #CJK UNIFIED IDEOGRAPH +0xFCDC 0x9EC3 #CJK UNIFIED IDEOGRAPH +0xFCDD 0x532F #CJK UNIFIED IDEOGRAPH +0xFCDE 0x56DE #CJK UNIFIED IDEOGRAPH +0xFCDF 0x5EFB #CJK UNIFIED IDEOGRAPH +0xFCE0 0x5F8A #CJK UNIFIED IDEOGRAPH +0xFCE1 0x6062 #CJK UNIFIED IDEOGRAPH +0xFCE2 0x6094 #CJK UNIFIED IDEOGRAPH +0xFCE3 0x61F7 #CJK UNIFIED IDEOGRAPH +0xFCE4 0x6666 #CJK UNIFIED IDEOGRAPH +0xFCE5 0x6703 #CJK UNIFIED IDEOGRAPH +0xFCE6 0x6A9C #CJK UNIFIED IDEOGRAPH +0xFCE7 0x6DEE #CJK UNIFIED IDEOGRAPH +0xFCE8 0x6FAE #CJK UNIFIED IDEOGRAPH +0xFCE9 0x7070 #CJK UNIFIED IDEOGRAPH +0xFCEA 0x736A #CJK UNIFIED IDEOGRAPH +0xFCEB 0x7E6A #CJK UNIFIED IDEOGRAPH +0xFCEC 0x81BE #CJK UNIFIED IDEOGRAPH +0xFCED 0x8334 #CJK UNIFIED IDEOGRAPH +0xFCEE 0x86D4 #CJK UNIFIED IDEOGRAPH +0xFCEF 0x8AA8 #CJK UNIFIED IDEOGRAPH +0xFCF0 0x8CC4 #CJK UNIFIED IDEOGRAPH +0xFCF1 0x5283 #CJK UNIFIED IDEOGRAPH +0xFCF2 0x7372 #CJK UNIFIED IDEOGRAPH +0xFCF3 0x5B96 #CJK UNIFIED IDEOGRAPH +0xFCF4 0x6A6B #CJK UNIFIED IDEOGRAPH +0xFCF5 0x9404 #CJK UNIFIED IDEOGRAPH +0xFCF6 0x54EE #CJK UNIFIED IDEOGRAPH +0xFCF7 0x5686 #CJK UNIFIED IDEOGRAPH +0xFCF8 0x5B5D #CJK UNIFIED IDEOGRAPH +0xFCF9 0x6548 #CJK UNIFIED IDEOGRAPH +0xFCFA 0x6585 #CJK UNIFIED IDEOGRAPH +0xFCFB 0x66C9 #CJK UNIFIED IDEOGRAPH +0xFCFC 0x689F #CJK UNIFIED IDEOGRAPH +0xFCFD 0x6D8D #CJK UNIFIED IDEOGRAPH +0xFCFE 0x6DC6 #CJK UNIFIED IDEOGRAPH +0xFDA1 0x723B #CJK UNIFIED IDEOGRAPH +0xFDA2 0x80B4 #CJK UNIFIED IDEOGRAPH +0xFDA3 0x9175 #CJK UNIFIED IDEOGRAPH +0xFDA4 0x9A4D #CJK UNIFIED IDEOGRAPH +0xFDA5 0x4FAF #CJK UNIFIED IDEOGRAPH +0xFDA6 0x5019 #CJK UNIFIED IDEOGRAPH +0xFDA7 0x539A #CJK UNIFIED IDEOGRAPH +0xFDA8 0x540E #CJK UNIFIED IDEOGRAPH +0xFDA9 0x543C #CJK UNIFIED IDEOGRAPH +0xFDAA 0x5589 #CJK UNIFIED IDEOGRAPH +0xFDAB 0x55C5 #CJK UNIFIED IDEOGRAPH +0xFDAC 0x5E3F #CJK UNIFIED IDEOGRAPH +0xFDAD 0x5F8C #CJK UNIFIED IDEOGRAPH +0xFDAE 0x673D #CJK UNIFIED IDEOGRAPH +0xFDAF 0x7166 #CJK UNIFIED IDEOGRAPH +0xFDB0 0x73DD #CJK UNIFIED IDEOGRAPH +0xFDB1 0x9005 #CJK UNIFIED IDEOGRAPH +0xFDB2 0x52DB #CJK UNIFIED IDEOGRAPH +0xFDB3 0x52F3 #CJK UNIFIED IDEOGRAPH +0xFDB4 0x5864 #CJK UNIFIED IDEOGRAPH +0xFDB5 0x58CE #CJK UNIFIED IDEOGRAPH +0xFDB6 0x7104 #CJK UNIFIED IDEOGRAPH +0xFDB7 0x718F #CJK UNIFIED IDEOGRAPH +0xFDB8 0x71FB #CJK UNIFIED IDEOGRAPH +0xFDB9 0x85B0 #CJK UNIFIED IDEOGRAPH +0xFDBA 0x8A13 #CJK UNIFIED IDEOGRAPH +0xFDBB 0x6688 #CJK UNIFIED IDEOGRAPH +0xFDBC 0x85A8 #CJK UNIFIED IDEOGRAPH +0xFDBD 0x55A7 #CJK UNIFIED IDEOGRAPH +0xFDBE 0x6684 #CJK UNIFIED IDEOGRAPH +0xFDBF 0x714A #CJK UNIFIED IDEOGRAPH +0xFDC0 0x8431 #CJK UNIFIED IDEOGRAPH +0xFDC1 0x5349 #CJK UNIFIED IDEOGRAPH +0xFDC2 0x5599 #CJK UNIFIED IDEOGRAPH +0xFDC3 0x6BC1 #CJK UNIFIED IDEOGRAPH +0xFDC4 0x5F59 #CJK UNIFIED IDEOGRAPH +0xFDC5 0x5FBD #CJK UNIFIED IDEOGRAPH +0xFDC6 0x63EE #CJK UNIFIED IDEOGRAPH +0xFDC7 0x6689 #CJK UNIFIED IDEOGRAPH +0xFDC8 0x7147 #CJK UNIFIED IDEOGRAPH +0xFDC9 0x8AF1 #CJK UNIFIED IDEOGRAPH +0xFDCA 0x8F1D #CJK UNIFIED IDEOGRAPH +0xFDCB 0x9EBE #CJK UNIFIED IDEOGRAPH +0xFDCC 0x4F11 #CJK UNIFIED IDEOGRAPH +0xFDCD 0x643A #CJK UNIFIED IDEOGRAPH +0xFDCE 0x70CB #CJK UNIFIED IDEOGRAPH +0xFDCF 0x7566 #CJK UNIFIED IDEOGRAPH +0xFDD0 0x8667 #CJK UNIFIED IDEOGRAPH +0xFDD1 0x6064 #CJK UNIFIED IDEOGRAPH +0xFDD2 0x8B4E #CJK UNIFIED IDEOGRAPH +0xFDD3 0x9DF8 #CJK UNIFIED IDEOGRAPH +0xFDD4 0x5147 #CJK UNIFIED IDEOGRAPH +0xFDD5 0x51F6 #CJK UNIFIED IDEOGRAPH +0xFDD6 0x5308 #CJK UNIFIED IDEOGRAPH +0xFDD7 0x6D36 #CJK UNIFIED IDEOGRAPH +0xFDD8 0x80F8 #CJK UNIFIED IDEOGRAPH +0xFDD9 0x9ED1 #CJK UNIFIED IDEOGRAPH +0xFDDA 0x6615 #CJK UNIFIED IDEOGRAPH +0xFDDB 0x6B23 #CJK UNIFIED IDEOGRAPH +0xFDDC 0x7098 #CJK UNIFIED IDEOGRAPH +0xFDDD 0x75D5 #CJK UNIFIED IDEOGRAPH +0xFDDE 0x5403 #CJK UNIFIED IDEOGRAPH +0xFDDF 0x5C79 #CJK UNIFIED IDEOGRAPH +0xFDE0 0x7D07 #CJK UNIFIED IDEOGRAPH +0xFDE1 0x8A16 #CJK UNIFIED IDEOGRAPH +0xFDE2 0x6B20 #CJK UNIFIED IDEOGRAPH +0xFDE3 0x6B3D #CJK UNIFIED IDEOGRAPH +0xFDE4 0x6B46 #CJK UNIFIED IDEOGRAPH +0xFDE5 0x5438 #CJK UNIFIED IDEOGRAPH +0xFDE6 0x6070 #CJK UNIFIED IDEOGRAPH +0xFDE7 0x6D3D #CJK UNIFIED IDEOGRAPH +0xFDE8 0x7FD5 #CJK UNIFIED IDEOGRAPH +0xFDE9 0x8208 #CJK UNIFIED IDEOGRAPH +0xFDEA 0x50D6 #CJK UNIFIED IDEOGRAPH +0xFDEB 0x51DE #CJK UNIFIED IDEOGRAPH +0xFDEC 0x559C #CJK UNIFIED IDEOGRAPH +0xFDED 0x566B #CJK UNIFIED IDEOGRAPH +0xFDEE 0x56CD #CJK UNIFIED IDEOGRAPH +0xFDEF 0x59EC #CJK UNIFIED IDEOGRAPH +0xFDF0 0x5B09 #CJK UNIFIED IDEOGRAPH +0xFDF1 0x5E0C #CJK UNIFIED IDEOGRAPH +0xFDF2 0x6199 #CJK UNIFIED IDEOGRAPH +0xFDF3 0x6198 #CJK UNIFIED IDEOGRAPH +0xFDF4 0x6231 #CJK UNIFIED IDEOGRAPH +0xFDF5 0x665E #CJK UNIFIED IDEOGRAPH +0xFDF6 0x66E6 #CJK UNIFIED IDEOGRAPH +0xFDF7 0x7199 #CJK UNIFIED IDEOGRAPH +0xFDF8 0x71B9 #CJK UNIFIED IDEOGRAPH +0xFDF9 0x71BA #CJK UNIFIED IDEOGRAPH +0xFDFA 0x72A7 #CJK UNIFIED IDEOGRAPH +0xFDFB 0x79A7 #CJK UNIFIED IDEOGRAPH +0xFDFC 0x7A00 #CJK UNIFIED IDEOGRAPH +0xFDFD 0x7FB2 #CJK UNIFIED IDEOGRAPH +0xFDFE 0x8A70 #CJK UNIFIED IDEOGRAPH ADDED freshlib/data/_encodings/_sources/KOI8-R.TXT Index: freshlib/data/_encodings/_sources/KOI8-R.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/KOI8-R.TXT @@ -0,0 +1,294 @@ +# KOI8-R.TXT +# Date: 2016-01-04 23:05:00 GMT [KW] +# © 2016 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Name: KOI8-R (RFC1489) to Unicode +# Unicode version: 3.0 +# Table version: 2.0 +# Table format: Format A +# Date: 18 August 1999 (header updated: 2016-January-04) +# Authors: Helmut Richter <richter@lrz.de> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# KOI8-R characters map into Unicode. The underlying document is the +# mapping described in RFC 1489. No statements are made as to whether +# this mapping is the same as the mapping defined as "Code Page 878" +# with some vendors. +# +# Format: Three tab-separated columns +# Column #1 is the KOI8-R code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in KOI8-R order. +# +# Version history +# 1.0 version: created. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# http://www.unicode.org/Public/MAPPINGS/ +# +# Any comments or problems, contact us at: +# http://www.unicode.org/reporting.html +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL +0x81 0x2502 # BOX DRAWINGS LIGHT VERTICAL +0x82 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT +0x83 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT +0x84 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT +0x85 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT +0x86 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0x87 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT +0x88 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0x89 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL +0x8A 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0x8B 0x2580 # UPPER HALF BLOCK +0x8C 0x2584 # LOWER HALF BLOCK +0x8D 0x2588 # FULL BLOCK +0x8E 0x258C # LEFT HALF BLOCK +0x8F 0x2590 # RIGHT HALF BLOCK +0x90 0x2591 # LIGHT SHADE +0x91 0x2592 # MEDIUM SHADE +0x92 0x2593 # DARK SHADE +0x93 0x2320 # TOP HALF INTEGRAL +0x94 0x25A0 # BLACK SQUARE +0x95 0x2219 # BULLET OPERATOR +0x96 0x221A # SQUARE ROOT +0x97 0x2248 # ALMOST EQUAL TO +0x98 0x2264 # LESS-THAN OR EQUAL TO +0x99 0x2265 # GREATER-THAN OR EQUAL TO +0x9A 0x00A0 # NO-BREAK SPACE +0x9B 0x2321 # BOTTOM HALF INTEGRAL +0x9C 0x00B0 # DEGREE SIGN +0x9D 0x00B2 # SUPERSCRIPT TWO +0x9E 0x00B7 # MIDDLE DOT +0x9F 0x00F7 # DIVISION SIGN +0xA0 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL +0xA1 0x2551 # BOX DRAWINGS DOUBLE VERTICAL +0xA2 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xA3 0x0451 # CYRILLIC SMALL LETTER IO +0xA4 0x2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +0xA5 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xA6 0x2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +0xA7 0x2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +0xA8 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT +0xA9 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xAA 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xAB 0x255A # BOX DRAWINGS DOUBLE UP AND RIGHT +0xAC 0x255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xAD 0x255C # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE +0xAE 0x255D # BOX DRAWINGS DOUBLE UP AND LEFT +0xAF 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xB0 0x255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xB1 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xB2 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xB3 0x0401 # CYRILLIC CAPITAL LETTER IO +0xB4 0x2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +0xB5 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xB6 0x2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +0xB7 0x2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +0xB8 0x2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xB9 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xBA 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xBB 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xBC 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xBD 0x256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +0xBE 0x256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xBF 0x00A9 # COPYRIGHT SIGN +0xC0 0x044E # CYRILLIC SMALL LETTER YU +0xC1 0x0430 # CYRILLIC SMALL LETTER A +0xC2 0x0431 # CYRILLIC SMALL LETTER BE +0xC3 0x0446 # CYRILLIC SMALL LETTER TSE +0xC4 0x0434 # CYRILLIC SMALL LETTER DE +0xC5 0x0435 # CYRILLIC SMALL LETTER IE +0xC6 0x0444 # CYRILLIC SMALL LETTER EF +0xC7 0x0433 # CYRILLIC SMALL LETTER GHE +0xC8 0x0445 # CYRILLIC SMALL LETTER HA +0xC9 0x0438 # CYRILLIC SMALL LETTER I +0xCA 0x0439 # CYRILLIC SMALL LETTER SHORT I +0xCB 0x043A # CYRILLIC SMALL LETTER KA +0xCC 0x043B # CYRILLIC SMALL LETTER EL +0xCD 0x043C # CYRILLIC SMALL LETTER EM +0xCE 0x043D # CYRILLIC SMALL LETTER EN +0xCF 0x043E # CYRILLIC SMALL LETTER O +0xD0 0x043F # CYRILLIC SMALL LETTER PE +0xD1 0x044F # CYRILLIC SMALL LETTER YA +0xD2 0x0440 # CYRILLIC SMALL LETTER ER +0xD3 0x0441 # CYRILLIC SMALL LETTER ES +0xD4 0x0442 # CYRILLIC SMALL LETTER TE +0xD5 0x0443 # CYRILLIC SMALL LETTER U +0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE +0xD7 0x0432 # CYRILLIC SMALL LETTER VE +0xD8 0x044C # CYRILLIC SMALL LETTER SOFT SIGN +0xD9 0x044B # CYRILLIC SMALL LETTER YERU +0xDA 0x0437 # CYRILLIC SMALL LETTER ZE +0xDB 0x0448 # CYRILLIC SMALL LETTER SHA +0xDC 0x044D # CYRILLIC SMALL LETTER E +0xDD 0x0449 # CYRILLIC SMALL LETTER SHCHA +0xDE 0x0447 # CYRILLIC SMALL LETTER CHE +0xDF 0x044A # CYRILLIC SMALL LETTER HARD SIGN +0xE0 0x042E # CYRILLIC CAPITAL LETTER YU +0xE1 0x0410 # CYRILLIC CAPITAL LETTER A +0xE2 0x0411 # CYRILLIC CAPITAL LETTER BE +0xE3 0x0426 # CYRILLIC CAPITAL LETTER TSE +0xE4 0x0414 # CYRILLIC CAPITAL LETTER DE +0xE5 0x0415 # CYRILLIC CAPITAL LETTER IE +0xE6 0x0424 # CYRILLIC CAPITAL LETTER EF +0xE7 0x0413 # CYRILLIC CAPITAL LETTER GHE +0xE8 0x0425 # CYRILLIC CAPITAL LETTER HA +0xE9 0x0418 # CYRILLIC CAPITAL LETTER I +0xEA 0x0419 # CYRILLIC CAPITAL LETTER SHORT I +0xEB 0x041A # CYRILLIC CAPITAL LETTER KA +0xEC 0x041B # CYRILLIC CAPITAL LETTER EL +0xED 0x041C # CYRILLIC CAPITAL LETTER EM +0xEE 0x041D # CYRILLIC CAPITAL LETTER EN +0xEF 0x041E # CYRILLIC CAPITAL LETTER O +0xF0 0x041F # CYRILLIC CAPITAL LETTER PE +0xF1 0x042F # CYRILLIC CAPITAL LETTER YA +0xF2 0x0420 # CYRILLIC CAPITAL LETTER ER +0xF3 0x0421 # CYRILLIC CAPITAL LETTER ES +0xF4 0x0422 # CYRILLIC CAPITAL LETTER TE +0xF5 0x0423 # CYRILLIC CAPITAL LETTER U +0xF6 0x0416 # CYRILLIC CAPITAL LETTER ZHE +0xF7 0x0412 # CYRILLIC CAPITAL LETTER VE +0xF8 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN +0xF9 0x042B # CYRILLIC CAPITAL LETTER YERU +0xFA 0x0417 # CYRILLIC CAPITAL LETTER ZE +0xFB 0x0428 # CYRILLIC CAPITAL LETTER SHA +0xFC 0x042D # CYRILLIC CAPITAL LETTER E +0xFD 0x0429 # CYRILLIC CAPITAL LETTER SHCHA +0xFE 0x0427 # CYRILLIC CAPITAL LETTER CHE +0xFF 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN ADDED freshlib/data/_encodings/_sources/KOI8-U.TXT Index: freshlib/data/_encodings/_sources/KOI8-U.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/KOI8-U.TXT @@ -0,0 +1,301 @@ +# KOI8-U.TXT +# Date: 2016-01-04 23:09:00 GMT [KW] +# © 2016 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# +# Name: KOI8-U (RFC2319) to Unicode +# Unicode version: 5.1 +# Table version: 2.0 +# Table format: Format A +# Date: 13 October 2008 (header updated: 2016-January-04) +# Authors: Philippe Verdy <verdy_p AT wanadoo.fr>, +# Helmut Richter <richter@lrz.de> +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# KOI8-U characters map into Unicode. The underlying document is the +# mapping described in RFC 2319. No statements are made as to whether +# this mapping is the same as the mapping defined as "Code Page 878" +# with some vendors. +# +# The KOI8-U (RFC2319) encoding is a variant based on KOI8-R (RFC1489), +# where the support for four additional Cyrillic letters was added (both small +# and capital letters), replacing 8 box-drawing characters. It is still widely +# used to encode texts in Ukrainian, Byelorussian and Bulgarian. +# +# Format: Three tab-separated columns +# Column #1 is the KOI8-U code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in KOI8-U order. +# +# Version history +# 1.0 version: created. +# 2.0 version: updates to copyright notice and terms of use; no +# changes to character mappings +# +# Updated versions of this file may be found in: +# <http://www.unicode.org/Public/MAPPINGS/> +# +# Any comments or problems, contact the Unicode Consortium at: +# <http://www.unicode.org/reporting.html> +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL +0x81 0x2502 # BOX DRAWINGS LIGHT VERTICAL +0x82 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT +0x83 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT +0x84 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT +0x85 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT +0x86 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0x87 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT +0x88 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0x89 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL +0x8A 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0x8B 0x2580 # UPPER HALF BLOCK +0x8C 0x2584 # LOWER HALF BLOCK +0x8D 0x2588 # FULL BLOCK +0x8E 0x258C # LEFT HALF BLOCK +0x8F 0x2590 # RIGHT HALF BLOCK +0x90 0x2591 # LIGHT SHADE +0x91 0x2592 # MEDIUM SHADE +0x92 0x2593 # DARK SHADE +0x93 0x2320 # TOP HALF INTEGRAL +0x94 0x25A0 # BLACK SQUARE +0x95 0x2219 # BULLET OPERATOR +0x96 0x221A # SQUARE ROOT +0x97 0x2248 # ALMOST EQUAL TO +0x98 0x2264 # LESS-THAN OR EQUAL TO +0x99 0x2265 # GREATER-THAN OR EQUAL TO +0x9A 0x00A0 # NO-BREAK SPACE +0x9B 0x2321 # BOTTOM HALF INTEGRAL +0x9C 0x00B0 # DEGREE SIGN +0x9D 0x00B2 # SUPERSCRIPT TWO +0x9E 0x00B7 # MIDDLE DOT +0x9F 0x00F7 # DIVISION SIGN +0xA0 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL +0xA1 0x2551 # BOX DRAWINGS DOUBLE VERTICAL +0xA2 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +0xA3 0x0451 # CYRILLIC SMALL LETTER IO +0xA4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE +0xA5 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT +0xA6 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0xA7 0x0457 # CYRILLIC SMALL LETTER YI (UKRAINIAN) +0xA8 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT +0xA9 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +0xAA 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +0xAB 0x255A # BOX DRAWINGS DOUBLE UP AND RIGHT +0xAC 0x255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +0xAD 0x0491 # CYRILLIC SMALL LETTER GHE WITH UPTURN +0xAE 0x255D # BOX DRAWINGS DOUBLE UP AND LEFT +0xAF 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +0xB0 0x255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +0xB1 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +0xB2 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +0xB3 0x0401 # CYRILLIC CAPITAL LETTER IO +0xB4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE +0xB5 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT +0xB6 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0xB7 0x0407 # CYRILLIC CAPITAL LETTER YI (UKRAINIAN) +0xB8 0x2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +0xB9 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +0xBA 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +0xBB 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL +0xBC 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +0xBD 0x0490 # CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0xBE 0x256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +0xBF 0x00A9 # COPYRIGHT SIGN +0xC0 0x044E # CYRILLIC SMALL LETTER YU +0xC1 0x0430 # CYRILLIC SMALL LETTER A +0xC2 0x0431 # CYRILLIC SMALL LETTER BE +0xC3 0x0446 # CYRILLIC SMALL LETTER TSE +0xC4 0x0434 # CYRILLIC SMALL LETTER DE +0xC5 0x0435 # CYRILLIC SMALL LETTER IE +0xC6 0x0444 # CYRILLIC SMALL LETTER EF +0xC7 0x0433 # CYRILLIC SMALL LETTER GHE +0xC8 0x0445 # CYRILLIC SMALL LETTER HA +0xC9 0x0438 # CYRILLIC SMALL LETTER I +0xCA 0x0439 # CYRILLIC SMALL LETTER SHORT I +0xCB 0x043A # CYRILLIC SMALL LETTER KA +0xCC 0x043B # CYRILLIC SMALL LETTER EL +0xCD 0x043C # CYRILLIC SMALL LETTER EM +0xCE 0x043D # CYRILLIC SMALL LETTER EN +0xCF 0x043E # CYRILLIC SMALL LETTER O +0xD0 0x043F # CYRILLIC SMALL LETTER PE +0xD1 0x044F # CYRILLIC SMALL LETTER YA +0xD2 0x0440 # CYRILLIC SMALL LETTER ER +0xD3 0x0441 # CYRILLIC SMALL LETTER ES +0xD4 0x0442 # CYRILLIC SMALL LETTER TE +0xD5 0x0443 # CYRILLIC SMALL LETTER U +0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE +0xD7 0x0432 # CYRILLIC SMALL LETTER VE +0xD8 0x044C # CYRILLIC SMALL LETTER SOFT SIGN +0xD9 0x044B # CYRILLIC SMALL LETTER YERU +0xDA 0x0437 # CYRILLIC SMALL LETTER ZE +0xDB 0x0448 # CYRILLIC SMALL LETTER SHA +0xDC 0x044D # CYRILLIC SMALL LETTER E +0xDD 0x0449 # CYRILLIC SMALL LETTER SHCHA +0xDE 0x0447 # CYRILLIC SMALL LETTER CHE +0xDF 0x044A # CYRILLIC SMALL LETTER HARD SIGN +0xE0 0x042E # CYRILLIC CAPITAL LETTER YU +0xE1 0x0410 # CYRILLIC CAPITAL LETTER A +0xE2 0x0411 # CYRILLIC CAPITAL LETTER BE +0xE3 0x0426 # CYRILLIC CAPITAL LETTER TSE +0xE4 0x0414 # CYRILLIC CAPITAL LETTER DE +0xE5 0x0415 # CYRILLIC CAPITAL LETTER IE +0xE6 0x0424 # CYRILLIC CAPITAL LETTER EF +0xE7 0x0413 # CYRILLIC CAPITAL LETTER GHE +0xE8 0x0425 # CYRILLIC CAPITAL LETTER HA +0xE9 0x0418 # CYRILLIC CAPITAL LETTER I +0xEA 0x0419 # CYRILLIC CAPITAL LETTER SHORT I +0xEB 0x041A # CYRILLIC CAPITAL LETTER KA +0xEC 0x041B # CYRILLIC CAPITAL LETTER EL +0xED 0x041C # CYRILLIC CAPITAL LETTER EM +0xEE 0x041D # CYRILLIC CAPITAL LETTER EN +0xEF 0x041E # CYRILLIC CAPITAL LETTER O +0xF0 0x041F # CYRILLIC CAPITAL LETTER PE +0xF1 0x042F # CYRILLIC CAPITAL LETTER YA +0xF2 0x0420 # CYRILLIC CAPITAL LETTER ER +0xF3 0x0421 # CYRILLIC CAPITAL LETTER ES +0xF4 0x0422 # CYRILLIC CAPITAL LETTER TE +0xF5 0x0423 # CYRILLIC CAPITAL LETTER U +0xF6 0x0416 # CYRILLIC CAPITAL LETTER ZHE +0xF7 0x0412 # CYRILLIC CAPITAL LETTER VE +0xF8 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN +0xF9 0x042B # CYRILLIC CAPITAL LETTER YERU +0xFA 0x0417 # CYRILLIC CAPITAL LETTER ZE +0xFB 0x0428 # CYRILLIC CAPITAL LETTER SHA +0xFC 0x042D # CYRILLIC CAPITAL LETTER E +0xFD 0x0429 # CYRILLIC CAPITAL LETTER SHCHA +0xFE 0x0427 # CYRILLIC CAPITAL LETTER CHE +0xFF 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN ADDED freshlib/data/_encodings/_sources/KPS9566.TXT Index: freshlib/data/_encodings/_sources/KPS9566.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/KPS9566.TXT @@ -0,0 +1,17166 @@ +# +# Name: KPS 9566-2003 to Unicode +# Unicode version: 6.0 +# Table version: 1.01 +# Table format: Format A +# Date: 2011-04-27 +# +# Copyright (c) 2011 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains data on how characters in KPS 9566-2003 +# (Democratic People's Republic of Korea) map into Unicode. +# +# Initial data was provided by an attachment to a 2004 request to the +# OpenOffice.org project to include KPS 9566-2003 mappings. +# <http://openoffice.org/bugzilla/show_bug.cgi?id=33466> +# <http://openoffice.org/bugzilla/attachment.cgi?id=17373> +# +# Additional background and cross-checking was based on the KPS 9566-97 +# code chart included as part of Registration 202 (1998-06-22) in the +# International Register of Coded Character Sets. +# <http://www.itscj.ipsj.or.jp/ISO-IR/202.pdf> +# +# The names of characters mapped to code points in the Unicode Private +# Use Area (PUA) are listed in this table in lowercase, and were taken +# from ISO/IEC JTC 1/SC 2/WG 2 N2374, "Proposal to Add of 70 Symbols to +# ISO/IEC 10646-1:2000", Committee for Standardization of the D P R of +# Korea (CSK), 2001-09-03. +# <http://anubis.dkuug.dk/jtc1/sc2/wg2/docs/n2374.pdf> +# +# Mappings for KPS 9566-2003 characters 0xA7B5 through 0xA7BE, and +# 0xACBA through 0xACBB, have been corrected as indicated by the code +# chart. The original mappings are included as comments. Mappings from +# KPS 9566-97 that were replaced in 9566-2003, and selected possible +# alternative mappings, are also included as comments. +# +# +# Format: Three tab-separated columns +# Column #1 is the KPS 9566-2003 code (in hex) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# Column #4, if present, explains the commented-out entry +# +# The entries are in KPS 9566-2003 order. +# +# Version history +# 1.0: created. +# 1.01: added explanations of commented-out entries. +# +0x00 0x0000 #NULL +0x01 0x0001 #START OF HEADING +0x02 0x0002 #START OF TEXT +0x03 0x0003 #END OF TEXT +0x04 0x0004 #END OF TRANSMISSION +0x05 0x0005 #ENQUIRY +0x06 0x0006 #ACKNOWLEDGE +0x07 0x0007 #BELL +0x08 0x0008 #BACKSPACE +0x09 0x0009 #HORIZONTAL TABULATION +0x0A 0x000A #LINE FEED +0x0B 0x000B #VERTICAL TABULATION +0x0C 0x000C #FORM FEED +0x0D 0x000D #CARRIAGE RETURN +0x0E 0x000E #SHIFT OUT +0x0F 0x000F #SHIFT IN +0x10 0x0010 #DATA LINK ESCAPE +0x11 0x0011 #DEVICE CONTROL ONE +0x12 0x0012 #DEVICE CONTROL TWO +0x13 0x0013 #DEVICE CONTROL THREE +0x14 0x0014 #DEVICE CONTROL FOUR +0x15 0x0015 #NEGATIVE ACKNOWLEDGE +0x16 0x0016 #SYNCHRONOUS IDLE +0x17 0x0017 #END OF TRANSMISSION BLOCK +0x18 0x0018 #CANCEL +0x19 0x0019 #END OF MEDIUM +0x1A 0x001A #SUBSTITUTE +0x1B 0x001B #ESCAPE +0x1C 0x001C #FILE SEPARATOR +0x1D 0x001D #GROUP SEPARATOR +0x1E 0x001E #RECORD SEPARATOR +0x1F 0x001F #UNIT SEPARATOR +0x20 0x0020 #SPACE +0x21 0x0021 #EXCLAMATION MARK +0x22 0x0022 #QUOTATION MARK +0x23 0x0023 #NUMBER SIGN +0x24 0x0024 #DOLLAR SIGN +0x25 0x0025 #PERCENT SIGN +0x26 0x0026 #AMPERSAND +0x27 0x0027 #APOSTROPHE +0x28 0x0028 #LEFT PARENTHESIS +0x29 0x0029 #RIGHT PARENTHESIS +0x2A 0x002A #ASTERISK +0x2B 0x002B #PLUS SIGN +0x2C 0x002C #COMMA +0x2D 0x002D #HYPHEN-MINUS +0x2E 0x002E #FULL STOP +0x2F 0x002F #SOLIDUS +0x30 0x0030 #DIGIT ZERO +0x31 0x0031 #DIGIT ONE +0x32 0x0032 #DIGIT TWO +0x33 0x0033 #DIGIT THREE +0x34 0x0034 #DIGIT FOUR +0x35 0x0035 #DIGIT FIVE +0x36 0x0036 #DIGIT SIX +0x37 0x0037 #DIGIT SEVEN +0x38 0x0038 #DIGIT EIGHT +0x39 0x0039 #DIGIT NINE +0x3A 0x003A #COLON +0x3B 0x003B #SEMICOLON +0x3C 0x003C #LESS-THAN SIGN +0x3D 0x003D #EQUALS SIGN +0x3E 0x003E #GREATER-THAN SIGN +0x3F 0x003F #QUESTION MARK +0x40 0x0040 #COMMERCIAL AT +0x41 0x0041 #LATIN CAPITAL LETTER A +0x42 0x0042 #LATIN CAPITAL LETTER B +0x43 0x0043 #LATIN CAPITAL LETTER C +0x44 0x0044 #LATIN CAPITAL LETTER D +0x45 0x0045 #LATIN CAPITAL LETTER E +0x46 0x0046 #LATIN CAPITAL LETTER F +0x47 0x0047 #LATIN CAPITAL LETTER G +0x48 0x0048 #LATIN CAPITAL LETTER H +0x49 0x0049 #LATIN CAPITAL LETTER I +0x4A 0x004A #LATIN CAPITAL LETTER J +0x4B 0x004B #LATIN CAPITAL LETTER K +0x4C 0x004C #LATIN CAPITAL LETTER L +0x4D 0x004D #LATIN CAPITAL LETTER M +0x4E 0x004E #LATIN CAPITAL LETTER N +0x4F 0x004F #LATIN CAPITAL LETTER O +0x50 0x0050 #LATIN CAPITAL LETTER P +0x51 0x0051 #LATIN CAPITAL LETTER Q +0x52 0x0052 #LATIN CAPITAL LETTER R +0x53 0x0053 #LATIN CAPITAL LETTER S +0x54 0x0054 #LATIN CAPITAL LETTER T +0x55 0x0055 #LATIN CAPITAL LETTER U +0x56 0x0056 #LATIN CAPITAL LETTER V +0x57 0x0057 #LATIN CAPITAL LETTER W +0x58 0x0058 #LATIN CAPITAL LETTER X +0x59 0x0059 #LATIN CAPITAL LETTER Y +0x5A 0x005A #LATIN CAPITAL LETTER Z +0x5B 0x005B #LEFT SQUARE BRACKET +0x5C 0x005C #REVERSE SOLIDUS +0x5D 0x005D #RIGHT SQUARE BRACKET +0x5E 0x005E #CIRCUMFLEX ACCENT +0x5F 0x005F #LOW LINE +0x60 0x0060 #GRAVE ACCENT +0x61 0x0061 #LATIN SMALL LETTER A +0x62 0x0062 #LATIN SMALL LETTER B +0x63 0x0063 #LATIN SMALL LETTER C +0x64 0x0064 #LATIN SMALL LETTER D +0x65 0x0065 #LATIN SMALL LETTER E +0x66 0x0066 #LATIN SMALL LETTER F +0x67 0x0067 #LATIN SMALL LETTER G +0x68 0x0068 #LATIN SMALL LETTER H +0x69 0x0069 #LATIN SMALL LETTER I +0x6A 0x006A #LATIN SMALL LETTER J +0x6B 0x006B #LATIN SMALL LETTER K +0x6C 0x006C #LATIN SMALL LETTER L +0x6D 0x006D #LATIN SMALL LETTER M +0x6E 0x006E #LATIN SMALL LETTER N +0x6F 0x006F #LATIN SMALL LETTER O +0x70 0x0070 #LATIN SMALL LETTER P +0x71 0x0071 #LATIN SMALL LETTER Q +0x72 0x0072 #LATIN SMALL LETTER R +0x73 0x0073 #LATIN SMALL LETTER S +0x74 0x0074 #LATIN SMALL LETTER T +0x75 0x0075 #LATIN SMALL LETTER U +0x76 0x0076 #LATIN SMALL LETTER V +0x77 0x0077 #LATIN SMALL LETTER W +0x78 0x0078 #LATIN SMALL LETTER X +0x79 0x0079 #LATIN SMALL LETTER Y +0x7A 0x007A #LATIN SMALL LETTER Z +0x7B 0x007B #LEFT CURLY BRACKET +0x7C 0x007C #VERTICAL LINE +0x7D 0x007D #RIGHT CURLY BRACKET +0x7E 0x007E #TILDE +0x7F 0x007F #DELETE +0x80 #UNDEFINED +0x81 #DBCS LEAD BYTE +0x82 #DBCS LEAD BYTE +0x83 #DBCS LEAD BYTE +0x84 #DBCS LEAD BYTE +0x85 #DBCS LEAD BYTE +0x86 #DBCS LEAD BYTE +0x87 #DBCS LEAD BYTE +0x88 #DBCS LEAD BYTE +0x89 #DBCS LEAD BYTE +0x8A #DBCS LEAD BYTE +0x8B #DBCS LEAD BYTE +0x8C #DBCS LEAD BYTE +0x8D #DBCS LEAD BYTE +0x8E #DBCS LEAD BYTE +0x8F #DBCS LEAD BYTE +0x90 #DBCS LEAD BYTE +0x91 #DBCS LEAD BYTE +0x92 #DBCS LEAD BYTE +0x93 #DBCS LEAD BYTE +0x94 #DBCS LEAD BYTE +0x95 #DBCS LEAD BYTE +0x96 #DBCS LEAD BYTE +0x97 #DBCS LEAD BYTE +0x98 #DBCS LEAD BYTE +0x99 #DBCS LEAD BYTE +0x9A #DBCS LEAD BYTE +0x9B #DBCS LEAD BYTE +0x9C #DBCS LEAD BYTE +0x9D #DBCS LEAD BYTE +0x9E #DBCS LEAD BYTE +0x9F #DBCS LEAD BYTE +0xA0 #DBCS LEAD BYTE +0xA1 #DBCS LEAD BYTE +0xA2 #DBCS LEAD BYTE +0xA3 #DBCS LEAD BYTE +0xA4 #DBCS LEAD BYTE +0xA5 #DBCS LEAD BYTE +0xA6 #DBCS LEAD BYTE +0xA7 #DBCS LEAD BYTE +0xA8 #DBCS LEAD BYTE +0xA9 #DBCS LEAD BYTE +0xAA #DBCS LEAD BYTE +0xAB #DBCS LEAD BYTE +0xAC #DBCS LEAD BYTE +0xAD #DBCS LEAD BYTE +0xAE #DBCS LEAD BYTE +0xAF #DBCS LEAD BYTE +0xB0 #DBCS LEAD BYTE +0xB1 #DBCS LEAD BYTE +0xB2 #DBCS LEAD BYTE +0xB3 #DBCS LEAD BYTE +0xB4 #DBCS LEAD BYTE +0xB5 #DBCS LEAD BYTE +0xB6 #DBCS LEAD BYTE +0xB7 #DBCS LEAD BYTE +0xB8 #DBCS LEAD BYTE +0xB9 #DBCS LEAD BYTE +0xBA #DBCS LEAD BYTE +0xBB #DBCS LEAD BYTE +0xBC #DBCS LEAD BYTE +0xBD #DBCS LEAD BYTE +0xBE #DBCS LEAD BYTE +0xBF #DBCS LEAD BYTE +0xC0 #DBCS LEAD BYTE +0xC1 #DBCS LEAD BYTE +0xC2 #DBCS LEAD BYTE +0xC3 #DBCS LEAD BYTE +0xC4 #DBCS LEAD BYTE +0xC5 #DBCS LEAD BYTE +0xC6 #DBCS LEAD BYTE +0xC7 #DBCS LEAD BYTE +0xC8 #DBCS LEAD BYTE +0xC9 #DBCS LEAD BYTE +0xCA #DBCS LEAD BYTE +0xCB #DBCS LEAD BYTE +0xCC #DBCS LEAD BYTE +0xCD #DBCS LEAD BYTE +0xCE #DBCS LEAD BYTE +0xCF #DBCS LEAD BYTE +0xD0 #DBCS LEAD BYTE +0xD1 #DBCS LEAD BYTE +0xD2 #DBCS LEAD BYTE +0xD3 #DBCS LEAD BYTE +0xD4 #DBCS LEAD BYTE +0xD5 #DBCS LEAD BYTE +0xD6 #DBCS LEAD BYTE +0xD7 #DBCS LEAD BYTE +0xD8 #DBCS LEAD BYTE +0xD9 #DBCS LEAD BYTE +0xDA #DBCS LEAD BYTE +0xDB #DBCS LEAD BYTE +0xDC #DBCS LEAD BYTE +0xDD #DBCS LEAD BYTE +0xDE #DBCS LEAD BYTE +0xDF #DBCS LEAD BYTE +0xE0 #DBCS LEAD BYTE +0xE1 #DBCS LEAD BYTE +0xE2 #DBCS LEAD BYTE +0xE3 #DBCS LEAD BYTE +0xE4 #DBCS LEAD BYTE +0xE5 #DBCS LEAD BYTE +0xE6 #DBCS LEAD BYTE +0xE7 #DBCS LEAD BYTE +0xE8 #DBCS LEAD BYTE +0xE9 #DBCS LEAD BYTE +0xEA #DBCS LEAD BYTE +0xEB #DBCS LEAD BYTE +0xEC #DBCS LEAD BYTE +0xED #DBCS LEAD BYTE +0xEE #DBCS LEAD BYTE +0xEF #DBCS LEAD BYTE +0xF0 #DBCS LEAD BYTE +0xF1 #DBCS LEAD BYTE +0xF2 #DBCS LEAD BYTE +0xF3 #DBCS LEAD BYTE +0xF4 #DBCS LEAD BYTE +0xF5 #DBCS LEAD BYTE +0xF6 #DBCS LEAD BYTE +0xF7 #DBCS LEAD BYTE +0xF8 #DBCS LEAD BYTE +0xF9 #DBCS LEAD BYTE +0xFA #DBCS LEAD BYTE +0xFB #DBCS LEAD BYTE +0xFC #DBCS LEAD BYTE +0xFD #DBCS LEAD BYTE +0xFE #DBCS LEAD BYTE +0xFF #UNDEFINED +0x8141 0xAC03 #HANGUL SYLLABLE KIYEOK A KIYEOKSIOS +0x8142 0xAC05 #HANGUL SYLLABLE KIYEOK A NIEUNCIEUC +0x8143 0xAC06 #HANGUL SYLLABLE KIYEOK A NIEUNHIEUH +0x8144 0xAC0B #HANGUL SYLLABLE KIYEOK A RIEULPIEUP +0x8145 0xAC0C #HANGUL SYLLABLE KIYEOK A RIEULSIOS +0x8146 0xAC0D #HANGUL SYLLABLE KIYEOK A RIEULTHIEUTH +0x8147 0xAC0E #HANGUL SYLLABLE KIYEOK A RIEULPHIEUPH +0x8148 0xAC0F #HANGUL SYLLABLE KIYEOK A RIEULHIEUH +0x8149 0xAC18 #HANGUL SYLLABLE KIYEOK A KHIEUKH +0x814A 0xAC02 #HANGUL SYLLABLE KIYEOK A SSANGKIYEOK +0x814B 0xAC3B #HANGUL SYLLABLE KIYEOK YA KIYEOKSIOS +0x814C 0xAC3D #HANGUL SYLLABLE KIYEOK YA NIEUNCIEUC +0x814D 0xAC3E #HANGUL SYLLABLE KIYEOK YA NIEUNHIEUH +0x814E 0xAC3F #HANGUL SYLLABLE KIYEOK YA TIKEUT +0x814F 0xAC41 #HANGUL SYLLABLE KIYEOK YA RIEULKIYEOK +0x8150 0xAC42 #HANGUL SYLLABLE KIYEOK YA RIEULMIEUM +0x8151 0xAC43 #HANGUL SYLLABLE KIYEOK YA RIEULPIEUP +0x8152 0xAC44 #HANGUL SYLLABLE KIYEOK YA RIEULSIOS +0x8153 0xAC45 #HANGUL SYLLABLE KIYEOK YA RIEULTHIEUTH +0x8154 0xAC46 #HANGUL SYLLABLE KIYEOK YA RIEULPHIEUPH +0x8155 0xAC47 #HANGUL SYLLABLE KIYEOK YA RIEULHIEUH +0x8156 0xAC49 #HANGUL SYLLABLE KIYEOK YA PIEUP +0x8157 0xAC4A #HANGUL SYLLABLE KIYEOK YA PIEUPSIOS +0x8158 0xAC4E #HANGUL SYLLABLE KIYEOK YA CIEUC +0x8159 0xAC4F #HANGUL SYLLABLE KIYEOK YA CHIEUCH +0x815A 0xAC50 #HANGUL SYLLABLE KIYEOK YA KHIEUKH +0x8161 0xAC51 #HANGUL SYLLABLE KIYEOK YA THIEUTH +0x8162 0xAC52 #HANGUL SYLLABLE KIYEOK YA PHIEUPH +0x8163 0xAC53 #HANGUL SYLLABLE KIYEOK YA HIEUH +0x8164 0xAC3A #HANGUL SYLLABLE KIYEOK YA SSANGKIYEOK +0x8165 0xAC4C #HANGUL SYLLABLE KIYEOK YA SSANGSIOS +0x8166 0xAC73 #HANGUL SYLLABLE KIYEOK EO KIYEOKSIOS +0x8167 0xAC75 #HANGUL SYLLABLE KIYEOK EO NIEUNCIEUC +0x8168 0xAC76 #HANGUL SYLLABLE KIYEOK EO NIEUNHIEUH +0x8169 0xAC7B #HANGUL SYLLABLE KIYEOK EO RIEULPIEUP +0x816A 0xAC7C #HANGUL SYLLABLE KIYEOK EO RIEULSIOS +0x816B 0xAC7D #HANGUL SYLLABLE KIYEOK EO RIEULTHIEUTH +0x816C 0xAC7E #HANGUL SYLLABLE KIYEOK EO RIEULPHIEUPH +0x816D 0xAC7F #HANGUL SYLLABLE KIYEOK EO RIEULHIEUH +0x816E 0xAC82 #HANGUL SYLLABLE KIYEOK EO PIEUPSIOS +0x816F 0xAC87 #HANGUL SYLLABLE KIYEOK EO CHIEUCH +0x8170 0xAC88 #HANGUL SYLLABLE KIYEOK EO KHIEUKH +0x8171 0xAC72 #HANGUL SYLLABLE KIYEOK EO SSANGKIYEOK +0x8172 0xACAB #HANGUL SYLLABLE KIYEOK YEO KIYEOKSIOS +0x8173 0xACAD #HANGUL SYLLABLE KIYEOK YEO NIEUNCIEUC +0x8174 0xACAE #HANGUL SYLLABLE KIYEOK YEO NIEUNHIEUH +0x8175 0xACB1 #HANGUL SYLLABLE KIYEOK YEO RIEULKIYEOK +0x8176 0xACB2 #HANGUL SYLLABLE KIYEOK YEO RIEULMIEUM +0x8177 0xACB3 #HANGUL SYLLABLE KIYEOK YEO RIEULPIEUP +0x8178 0xACB4 #HANGUL SYLLABLE KIYEOK YEO RIEULSIOS +0x8179 0xACB5 #HANGUL SYLLABLE KIYEOK YEO RIEULTHIEUTH +0x817A 0xACB6 #HANGUL SYLLABLE KIYEOK YEO RIEULPHIEUPH +0x8181 0xACB7 #HANGUL SYLLABLE KIYEOK YEO RIEULHIEUH +0x8182 0xACBA #HANGUL SYLLABLE KIYEOK YEO PIEUPSIOS +0x8183 0xACBE #HANGUL SYLLABLE KIYEOK YEO CIEUC +0x8184 0xACBF #HANGUL SYLLABLE KIYEOK YEO CHIEUCH +0x8185 0xACC0 #HANGUL SYLLABLE KIYEOK YEO KHIEUKH +0x8186 0xACC2 #HANGUL SYLLABLE KIYEOK YEO PHIEUPH +0x8187 0xACC3 #HANGUL SYLLABLE KIYEOK YEO HIEUH +0x8188 0xACE3 #HANGUL SYLLABLE KIYEOK O KIYEOKSIOS +0x8189 0xACE5 #HANGUL SYLLABLE KIYEOK O NIEUNCIEUC +0x818A 0xACE6 #HANGUL SYLLABLE KIYEOK O NIEUNHIEUH +0x818B 0xACE9 #HANGUL SYLLABLE KIYEOK O RIEULKIYEOK +0x818C 0xACEB #HANGUL SYLLABLE KIYEOK O RIEULPIEUP +0x818D 0xACED #HANGUL SYLLABLE KIYEOK O RIEULTHIEUTH +0x818E 0xACEE #HANGUL SYLLABLE KIYEOK O RIEULPHIEUPH +0x818F 0xACF2 #HANGUL SYLLABLE KIYEOK O PIEUPSIOS +0x8190 0xACF7 #HANGUL SYLLABLE KIYEOK O CHIEUCH +0x8191 0xACF8 #HANGUL SYLLABLE KIYEOK O KHIEUKH +0x8192 0xACF9 #HANGUL SYLLABLE KIYEOK O THIEUTH +0x8193 0xACFB #HANGUL SYLLABLE KIYEOK O HIEUH +0x8194 0xACE2 #HANGUL SYLLABLE KIYEOK O SSANGKIYEOK +0x8195 0xACF4 #HANGUL SYLLABLE KIYEOK O SSANGSIOS +0x8196 0xAD51 #HANGUL SYLLABLE KIYEOK YO KIYEOK +0x8197 0xAD53 #HANGUL SYLLABLE KIYEOK YO KIYEOKSIOS +0x8198 0xAD55 #HANGUL SYLLABLE KIYEOK YO NIEUNCIEUC +0x8199 0xAD56 #HANGUL SYLLABLE KIYEOK YO NIEUNHIEUH +0x819A 0xAD57 #HANGUL SYLLABLE KIYEOK YO TIKEUT +0x819B 0xAD59 #HANGUL SYLLABLE KIYEOK YO RIEULKIYEOK +0x819C 0xAD5A #HANGUL SYLLABLE KIYEOK YO RIEULMIEUM +0x819D 0xAD5B #HANGUL SYLLABLE KIYEOK YO RIEULPIEUP +0x819E 0xAD5C #HANGUL SYLLABLE KIYEOK YO RIEULSIOS +0x819F 0xAD5D #HANGUL SYLLABLE KIYEOK YO RIEULTHIEUTH +0x81A0 0xAD5E #HANGUL SYLLABLE KIYEOK YO RIEULPHIEUPH +0x81A1 0xAD5F #HANGUL SYLLABLE KIYEOK YO RIEULHIEUH +0x81A2 0xAD60 #HANGUL SYLLABLE KIYEOK YO MIEUM +0x81A3 0xAD62 #HANGUL SYLLABLE KIYEOK YO PIEUPSIOS +0x81A4 0xAD65 #HANGUL SYLLABLE KIYEOK YO IEUNG +0x81A5 0xAD66 #HANGUL SYLLABLE KIYEOK YO CIEUC +0x81A6 0xAD67 #HANGUL SYLLABLE KIYEOK YO CHIEUCH +0x81A7 0xAD68 #HANGUL SYLLABLE KIYEOK YO KHIEUKH +0x81A8 0xAD69 #HANGUL SYLLABLE KIYEOK YO THIEUTH +0x81A9 0xAD6A #HANGUL SYLLABLE KIYEOK YO PHIEUPH +0x81AA 0xAD6B #HANGUL SYLLABLE KIYEOK YO HIEUH +0x81AB 0xAD52 #HANGUL SYLLABLE KIYEOK YO SSANGKIYEOK +0x81AC 0xAD64 #HANGUL SYLLABLE KIYEOK YO SSANGSIOS +0x81AD 0xAD6F #HANGUL SYLLABLE KIYEOK U KIYEOKSIOS +0x81AE 0xAD71 #HANGUL SYLLABLE KIYEOK U NIEUNCIEUC +0x81AF 0xAD72 #HANGUL SYLLABLE KIYEOK U NIEUNHIEUH +0x81B0 0xAD77 #HANGUL SYLLABLE KIYEOK U RIEULPIEUP +0x81B1 0xAD78 #HANGUL SYLLABLE KIYEOK U RIEULSIOS +0x81B2 0xAD79 #HANGUL SYLLABLE KIYEOK U RIEULTHIEUTH +0x81B3 0xAD7A #HANGUL SYLLABLE KIYEOK U RIEULPHIEUPH +0x81B4 0xAD7E #HANGUL SYLLABLE KIYEOK U PIEUPSIOS +0x81B5 0xAD83 #HANGUL SYLLABLE KIYEOK U CHIEUCH +0x81B6 0xAD84 #HANGUL SYLLABLE KIYEOK U KHIEUKH +0x81B7 0xAD85 #HANGUL SYLLABLE KIYEOK U THIEUTH +0x81B8 0xAD86 #HANGUL SYLLABLE KIYEOK U PHIEUPH +0x81B9 0xAD87 #HANGUL SYLLABLE KIYEOK U HIEUH +0x81BA 0xAD6E #HANGUL SYLLABLE KIYEOK U SSANGKIYEOK +0x81BB 0xAD80 #HANGUL SYLLABLE KIYEOK U SSANGSIOS +0x81BC 0xADDD #HANGUL SYLLABLE KIYEOK YU KIYEOK +0x81BD 0xADDF #HANGUL SYLLABLE KIYEOK YU KIYEOKSIOS +0x81BE 0xADE1 #HANGUL SYLLABLE KIYEOK YU NIEUNCIEUC +0x81BF 0xADE2 #HANGUL SYLLABLE KIYEOK YU NIEUNHIEUH +0x81C0 0xADE3 #HANGUL SYLLABLE KIYEOK YU TIKEUT +0x81C1 0xADE5 #HANGUL SYLLABLE KIYEOK YU RIEULKIYEOK +0x81C2 0xADE6 #HANGUL SYLLABLE KIYEOK YU RIEULMIEUM +0x81C3 0xADE7 #HANGUL SYLLABLE KIYEOK YU RIEULPIEUP +0x81C4 0xADE8 #HANGUL SYLLABLE KIYEOK YU RIEULSIOS +0x81C5 0xADE9 #HANGUL SYLLABLE KIYEOK YU RIEULTHIEUTH +0x81C6 0xADEA #HANGUL SYLLABLE KIYEOK YU RIEULPHIEUPH +0x81C7 0xADEB #HANGUL SYLLABLE KIYEOK YU RIEULHIEUH +0x81C8 0xADED #HANGUL SYLLABLE KIYEOK YU PIEUP +0x81C9 0xADEE #HANGUL SYLLABLE KIYEOK YU PIEUPSIOS +0x81CA 0xADEF #HANGUL SYLLABLE KIYEOK YU SIOS +0x81CB 0xADF2 #HANGUL SYLLABLE KIYEOK YU CIEUC +0x81CC 0xADF3 #HANGUL SYLLABLE KIYEOK YU CHIEUCH +0x81CD 0xADF4 #HANGUL SYLLABLE KIYEOK YU KHIEUKH +0x81CE 0xADF5 #HANGUL SYLLABLE KIYEOK YU THIEUTH +0x81CF 0xADF6 #HANGUL SYLLABLE KIYEOK YU PHIEUPH +0x81D0 0xADF7 #HANGUL SYLLABLE KIYEOK YU HIEUH +0x81D1 0xADDE #HANGUL SYLLABLE KIYEOK YU SSANGKIYEOK +0x81D2 0xADF0 #HANGUL SYLLABLE KIYEOK YU SSANGSIOS +0x81D3 0xADFB #HANGUL SYLLABLE KIYEOK EU KIYEOKSIOS +0x81D4 0xADFD #HANGUL SYLLABLE KIYEOK EU NIEUNCIEUC +0x81D5 0xADFE #HANGUL SYLLABLE KIYEOK EU NIEUNHIEUH +0x81D6 0xAE02 #HANGUL SYLLABLE KIYEOK EU RIEULMIEUM +0x81D7 0xAE03 #HANGUL SYLLABLE KIYEOK EU RIEULPIEUP +0x81D8 0xAE04 #HANGUL SYLLABLE KIYEOK EU RIEULSIOS +0x81D9 0xAE05 #HANGUL SYLLABLE KIYEOK EU RIEULTHIEUTH +0x81DA 0xAE06 #HANGUL SYLLABLE KIYEOK EU RIEULPHIEUPH +0x81DB 0xAE0A #HANGUL SYLLABLE KIYEOK EU PIEUPSIOS +0x81DC 0xAE0E #HANGUL SYLLABLE KIYEOK EU CIEUC +0x81DD 0xAE0F #HANGUL SYLLABLE KIYEOK EU CHIEUCH +0x81DE 0xAE10 #HANGUL SYLLABLE KIYEOK EU KHIEUKH +0x81DF 0xAE11 #HANGUL SYLLABLE KIYEOK EU THIEUTH +0x81E0 0xAE12 #HANGUL SYLLABLE KIYEOK EU PHIEUPH +0x81E1 0xAE13 #HANGUL SYLLABLE KIYEOK EU HIEUH +0x81E2 0xADFA #HANGUL SYLLABLE KIYEOK EU SSANGKIYEOK +0x81E3 0xAE0C #HANGUL SYLLABLE KIYEOK EU SSANGSIOS +0x81E4 0xAE33 #HANGUL SYLLABLE KIYEOK I KIYEOKSIOS +0x81E5 0xAE35 #HANGUL SYLLABLE KIYEOK I NIEUNCIEUC +0x81E6 0xAE36 #HANGUL SYLLABLE KIYEOK I NIEUNHIEUH +0x81E7 0xAE39 #HANGUL SYLLABLE KIYEOK I RIEULKIYEOK +0x81E8 0xAE3B #HANGUL SYLLABLE KIYEOK I RIEULPIEUP +0x81E9 0xAE3C #HANGUL SYLLABLE KIYEOK I RIEULSIOS +0x81EA 0xAE3D #HANGUL SYLLABLE KIYEOK I RIEULTHIEUTH +0x81EB 0xAE3E #HANGUL SYLLABLE KIYEOK I RIEULPHIEUPH +0x81EC 0xAE3F #HANGUL SYLLABLE KIYEOK I RIEULHIEUH +0x81ED 0xAE42 #HANGUL SYLLABLE KIYEOK I PIEUPSIOS +0x81EE 0xAE48 #HANGUL SYLLABLE KIYEOK I KHIEUKH +0x81EF 0xAE4B #HANGUL SYLLABLE KIYEOK I HIEUH +0x81F0 0xAE32 #HANGUL SYLLABLE KIYEOK I SSANGKIYEOK +0x81F1 0xAE44 #HANGUL SYLLABLE KIYEOK I SSANGSIOS +0x81F2 0xAC1F #HANGUL SYLLABLE KIYEOK AE KIYEOKSIOS +0x81F3 0xAC21 #HANGUL SYLLABLE KIYEOK AE NIEUNCIEUC +0x81F4 0xAC22 #HANGUL SYLLABLE KIYEOK AE NIEUNHIEUH +0x81F5 0xAC23 #HANGUL SYLLABLE KIYEOK AE TIKEUT +0x81F6 0xAC25 #HANGUL SYLLABLE KIYEOK AE RIEULKIYEOK +0x81F7 0xAC26 #HANGUL SYLLABLE KIYEOK AE RIEULMIEUM +0x81F8 0xAC27 #HANGUL SYLLABLE KIYEOK AE RIEULPIEUP +0x81F9 0xAC28 #HANGUL SYLLABLE KIYEOK AE RIEULSIOS +0x81FA 0xAC29 #HANGUL SYLLABLE KIYEOK AE RIEULTHIEUTH +0x81FB 0xAC2A #HANGUL SYLLABLE KIYEOK AE RIEULPHIEUPH +0x81FC 0xAC2B #HANGUL SYLLABLE KIYEOK AE RIEULHIEUH +0x81FD 0xAC2E #HANGUL SYLLABLE KIYEOK AE PIEUPSIOS +0x81FE 0xAC32 #HANGUL SYLLABLE KIYEOK AE CIEUC +0x8241 0xAC33 #HANGUL SYLLABLE KIYEOK AE CHIEUCH +0x8242 0xAC34 #HANGUL SYLLABLE KIYEOK AE KHIEUKH +0x8243 0xAC35 #HANGUL SYLLABLE KIYEOK AE THIEUTH +0x8244 0xAC36 #HANGUL SYLLABLE KIYEOK AE PHIEUPH +0x8245 0xAC37 #HANGUL SYLLABLE KIYEOK AE HIEUH +0x8246 0xAC1E #HANGUL SYLLABLE KIYEOK AE SSANGKIYEOK +0x8247 0xAC55 #HANGUL SYLLABLE KIYEOK YAE KIYEOK +0x8248 0xAC57 #HANGUL SYLLABLE KIYEOK YAE KIYEOKSIOS +0x8249 0xAC59 #HANGUL SYLLABLE KIYEOK YAE NIEUNCIEUC +0x824A 0xAC5A #HANGUL SYLLABLE KIYEOK YAE NIEUNHIEUH +0x824B 0xAC5B #HANGUL SYLLABLE KIYEOK YAE TIKEUT +0x824C 0xAC5D #HANGUL SYLLABLE KIYEOK YAE RIEULKIYEOK +0x824D 0xAC5E #HANGUL SYLLABLE KIYEOK YAE RIEULMIEUM +0x824E 0xAC5F #HANGUL SYLLABLE KIYEOK YAE RIEULPIEUP +0x824F 0xAC60 #HANGUL SYLLABLE KIYEOK YAE RIEULSIOS +0x8250 0xAC61 #HANGUL SYLLABLE KIYEOK YAE RIEULTHIEUTH +0x8251 0xAC62 #HANGUL SYLLABLE KIYEOK YAE RIEULPHIEUPH +0x8252 0xAC63 #HANGUL SYLLABLE KIYEOK YAE RIEULHIEUH +0x8253 0xAC64 #HANGUL SYLLABLE KIYEOK YAE MIEUM +0x8254 0xAC65 #HANGUL SYLLABLE KIYEOK YAE PIEUP +0x8255 0xAC66 #HANGUL SYLLABLE KIYEOK YAE PIEUPSIOS +0x8256 0xAC67 #HANGUL SYLLABLE KIYEOK YAE SIOS +0x8257 0xAC69 #HANGUL SYLLABLE KIYEOK YAE IEUNG +0x8258 0xAC6A #HANGUL SYLLABLE KIYEOK YAE CIEUC +0x8259 0xAC6B #HANGUL SYLLABLE KIYEOK YAE CHIEUCH +0x825A 0xAC6C #HANGUL SYLLABLE KIYEOK YAE KHIEUKH +0x8261 0xAC6D #HANGUL SYLLABLE KIYEOK YAE THIEUTH +0x8262 0xAC6E #HANGUL SYLLABLE KIYEOK YAE PHIEUPH +0x8263 0xAC6F #HANGUL SYLLABLE KIYEOK YAE HIEUH +0x8264 0xAC56 #HANGUL SYLLABLE KIYEOK YAE SSANGKIYEOK +0x8265 0xAC68 #HANGUL SYLLABLE KIYEOK YAE SSANGSIOS +0x8266 0xAC8F #HANGUL SYLLABLE KIYEOK E KIYEOKSIOS +0x8267 0xAC91 #HANGUL SYLLABLE KIYEOK E NIEUNCIEUC +0x8268 0xAC92 #HANGUL SYLLABLE KIYEOK E NIEUNHIEUH +0x8269 0xAC93 #HANGUL SYLLABLE KIYEOK E TIKEUT +0x826A 0xAC95 #HANGUL SYLLABLE KIYEOK E RIEULKIYEOK +0x826B 0xAC96 #HANGUL SYLLABLE KIYEOK E RIEULMIEUM +0x826C 0xAC97 #HANGUL SYLLABLE KIYEOK E RIEULPIEUP +0x826D 0xAC98 #HANGUL SYLLABLE KIYEOK E RIEULSIOS +0x826E 0xAC99 #HANGUL SYLLABLE KIYEOK E RIEULTHIEUTH +0x826F 0xAC9A #HANGUL SYLLABLE KIYEOK E RIEULPHIEUPH +0x8270 0xAC9B #HANGUL SYLLABLE KIYEOK E RIEULHIEUH +0x8271 0xAC9E #HANGUL SYLLABLE KIYEOK E PIEUPSIOS +0x8272 0xACA2 #HANGUL SYLLABLE KIYEOK E CIEUC +0x8273 0xACA3 #HANGUL SYLLABLE KIYEOK E CHIEUCH +0x8274 0xACA4 #HANGUL SYLLABLE KIYEOK E KHIEUKH +0x8275 0xACA5 #HANGUL SYLLABLE KIYEOK E THIEUTH +0x8276 0xACA6 #HANGUL SYLLABLE KIYEOK E PHIEUPH +0x8277 0xACA7 #HANGUL SYLLABLE KIYEOK E HIEUH +0x8278 0xAC8E #HANGUL SYLLABLE KIYEOK E SSANGKIYEOK +0x8279 0xACC5 #HANGUL SYLLABLE KIYEOK YE KIYEOK +0x827A 0xACC7 #HANGUL SYLLABLE KIYEOK YE KIYEOKSIOS +0x8281 0xACC9 #HANGUL SYLLABLE KIYEOK YE NIEUNCIEUC +0x8282 0xACCA #HANGUL SYLLABLE KIYEOK YE NIEUNHIEUH +0x8283 0xACCB #HANGUL SYLLABLE KIYEOK YE TIKEUT +0x8284 0xACCD #HANGUL SYLLABLE KIYEOK YE RIEULKIYEOK +0x8285 0xACCE #HANGUL SYLLABLE KIYEOK YE RIEULMIEUM +0x8286 0xACCF #HANGUL SYLLABLE KIYEOK YE RIEULPIEUP +0x8287 0xACD0 #HANGUL SYLLABLE KIYEOK YE RIEULSIOS +0x8288 0xACD1 #HANGUL SYLLABLE KIYEOK YE RIEULTHIEUTH +0x8289 0xACD2 #HANGUL SYLLABLE KIYEOK YE RIEULPHIEUPH +0x828A 0xACD3 #HANGUL SYLLABLE KIYEOK YE RIEULHIEUH +0x828B 0xACD4 #HANGUL SYLLABLE KIYEOK YE MIEUM +0x828C 0xACD6 #HANGUL SYLLABLE KIYEOK YE PIEUPSIOS +0x828D 0xACD9 #HANGUL SYLLABLE KIYEOK YE IEUNG +0x828E 0xACDA #HANGUL SYLLABLE KIYEOK YE CIEUC +0x828F 0xACDB #HANGUL SYLLABLE KIYEOK YE CHIEUCH +0x8290 0xACDC #HANGUL SYLLABLE KIYEOK YE KHIEUKH +0x8291 0xACDD #HANGUL SYLLABLE KIYEOK YE THIEUTH +0x8292 0xACDE #HANGUL SYLLABLE KIYEOK YE PHIEUPH +0x8293 0xACDF #HANGUL SYLLABLE KIYEOK YE HIEUH +0x8294 0xACC6 #HANGUL SYLLABLE KIYEOK YE SSANGKIYEOK +0x8295 0xACD8 #HANGUL SYLLABLE KIYEOK YE SSANGSIOS +0x8296 0xAD37 #HANGUL SYLLABLE KIYEOK OE KIYEOKSIOS +0x8297 0xAD39 #HANGUL SYLLABLE KIYEOK OE NIEUNCIEUC +0x8298 0xAD3A #HANGUL SYLLABLE KIYEOK OE NIEUNHIEUH +0x8299 0xAD3B #HANGUL SYLLABLE KIYEOK OE TIKEUT +0x829A 0xAD3D #HANGUL SYLLABLE KIYEOK OE RIEULKIYEOK +0x829B 0xAD3E #HANGUL SYLLABLE KIYEOK OE RIEULMIEUM +0x829C 0xAD3F #HANGUL SYLLABLE KIYEOK OE RIEULPIEUP +0x829D 0xAD40 #HANGUL SYLLABLE KIYEOK OE RIEULSIOS +0x829E 0xAD41 #HANGUL SYLLABLE KIYEOK OE RIEULTHIEUTH +0x829F 0xAD42 #HANGUL SYLLABLE KIYEOK OE RIEULPHIEUPH +0x82A0 0xAD43 #HANGUL SYLLABLE KIYEOK OE RIEULHIEUH +0x82A1 0xAD46 #HANGUL SYLLABLE KIYEOK OE PIEUPSIOS +0x82A2 0xAD4A #HANGUL SYLLABLE KIYEOK OE CIEUC +0x82A3 0xAD4B #HANGUL SYLLABLE KIYEOK OE CHIEUCH +0x82A4 0xAD4C #HANGUL SYLLABLE KIYEOK OE KHIEUKH +0x82A5 0xAD4D #HANGUL SYLLABLE KIYEOK OE THIEUTH +0x82A6 0xAD4E #HANGUL SYLLABLE KIYEOK OE PHIEUPH +0x82A7 0xAD4F #HANGUL SYLLABLE KIYEOK OE HIEUH +0x82A8 0xAD36 #HANGUL SYLLABLE KIYEOK OE SSANGKIYEOK +0x82A9 0xADC3 #HANGUL SYLLABLE KIYEOK WI KIYEOKSIOS +0x82AA 0xADC5 #HANGUL SYLLABLE KIYEOK WI NIEUNCIEUC +0x82AB 0xADC6 #HANGUL SYLLABLE KIYEOK WI NIEUNHIEUH +0x82AC 0xADC7 #HANGUL SYLLABLE KIYEOK WI TIKEUT +0x82AD 0xADC9 #HANGUL SYLLABLE KIYEOK WI RIEULKIYEOK +0x82AE 0xADCA #HANGUL SYLLABLE KIYEOK WI RIEULMIEUM +0x82AF 0xADCB #HANGUL SYLLABLE KIYEOK WI RIEULPIEUP +0x82B0 0xADCC #HANGUL SYLLABLE KIYEOK WI RIEULSIOS +0x82B1 0xADCD #HANGUL SYLLABLE KIYEOK WI RIEULTHIEUTH +0x82B2 0xADCE #HANGUL SYLLABLE KIYEOK WI RIEULPHIEUPH +0x82B3 0xADCF #HANGUL SYLLABLE KIYEOK WI RIEULHIEUH +0x82B4 0xADD2 #HANGUL SYLLABLE KIYEOK WI PIEUPSIOS +0x82B5 0xADD5 #HANGUL SYLLABLE KIYEOK WI IEUNG +0x82B6 0xADD6 #HANGUL SYLLABLE KIYEOK WI CIEUC +0x82B7 0xADD7 #HANGUL SYLLABLE KIYEOK WI CHIEUCH +0x82B8 0xADD8 #HANGUL SYLLABLE KIYEOK WI KHIEUKH +0x82B9 0xADD9 #HANGUL SYLLABLE KIYEOK WI THIEUTH +0x82BA 0xADDA #HANGUL SYLLABLE KIYEOK WI PHIEUPH +0x82BB 0xADDB #HANGUL SYLLABLE KIYEOK WI HIEUH +0x82BC 0xADC2 #HANGUL SYLLABLE KIYEOK WI SSANGKIYEOK +0x82BD 0xADD4 #HANGUL SYLLABLE KIYEOK WI SSANGSIOS +0x82BE 0xAE15 #HANGUL SYLLABLE KIYEOK YI KIYEOK +0x82BF 0xAE17 #HANGUL SYLLABLE KIYEOK YI KIYEOKSIOS +0x82C0 0xAE18 #HANGUL SYLLABLE KIYEOK YI NIEUN +0x82C1 0xAE19 #HANGUL SYLLABLE KIYEOK YI NIEUNCIEUC +0x82C2 0xAE1A #HANGUL SYLLABLE KIYEOK YI NIEUNHIEUH +0x82C3 0xAE1B #HANGUL SYLLABLE KIYEOK YI TIKEUT +0x82C4 0xAE1C #HANGUL SYLLABLE KIYEOK YI RIEUL +0x82C5 0xAE1D #HANGUL SYLLABLE KIYEOK YI RIEULKIYEOK +0x82C6 0xAE1E #HANGUL SYLLABLE KIYEOK YI RIEULMIEUM +0x82C7 0xAE1F #HANGUL SYLLABLE KIYEOK YI RIEULPIEUP +0x82C8 0xAE20 #HANGUL SYLLABLE KIYEOK YI RIEULSIOS +0x82C9 0xAE21 #HANGUL SYLLABLE KIYEOK YI RIEULTHIEUTH +0x82CA 0xAE22 #HANGUL SYLLABLE KIYEOK YI RIEULPHIEUPH +0x82CB 0xAE23 #HANGUL SYLLABLE KIYEOK YI RIEULHIEUH +0x82CC 0xAE24 #HANGUL SYLLABLE KIYEOK YI MIEUM +0x82CD 0xAE25 #HANGUL SYLLABLE KIYEOK YI PIEUP +0x82CE 0xAE26 #HANGUL SYLLABLE KIYEOK YI PIEUPSIOS +0x82CF 0xAE27 #HANGUL SYLLABLE KIYEOK YI SIOS +0x82D0 0xAE29 #HANGUL SYLLABLE KIYEOK YI IEUNG +0x82D1 0xAE2A #HANGUL SYLLABLE KIYEOK YI CIEUC +0x82D2 0xAE2B #HANGUL SYLLABLE KIYEOK YI CHIEUCH +0x82D3 0xAE2C #HANGUL SYLLABLE KIYEOK YI KHIEUKH +0x82D4 0xAE2D #HANGUL SYLLABLE KIYEOK YI THIEUTH +0x82D5 0xAE2E #HANGUL SYLLABLE KIYEOK YI PHIEUPH +0x82D6 0xAE2F #HANGUL SYLLABLE KIYEOK YI HIEUH +0x82D7 0xAE16 #HANGUL SYLLABLE KIYEOK YI SSANGKIYEOK +0x82D8 0xAE28 #HANGUL SYLLABLE KIYEOK YI SSANGSIOS +0x82D9 0xACFF #HANGUL SYLLABLE KIYEOK WA KIYEOKSIOS +0x82DA 0xAD01 #HANGUL SYLLABLE KIYEOK WA NIEUNCIEUC +0x82DB 0xAD02 #HANGUL SYLLABLE KIYEOK WA NIEUNHIEUH +0x82DC 0xAD05 #HANGUL SYLLABLE KIYEOK WA RIEULKIYEOK +0x82DD 0xAD07 #HANGUL SYLLABLE KIYEOK WA RIEULPIEUP +0x82DE 0xAD08 #HANGUL SYLLABLE KIYEOK WA RIEULSIOS +0x82DF 0xAD09 #HANGUL SYLLABLE KIYEOK WA RIEULTHIEUTH +0x82E0 0xAD0A #HANGUL SYLLABLE KIYEOK WA RIEULPHIEUPH +0x82E1 0xAD0B #HANGUL SYLLABLE KIYEOK WA RIEULHIEUH +0x82E2 0xAD0E #HANGUL SYLLABLE KIYEOK WA PIEUPSIOS +0x82E3 0xAD12 #HANGUL SYLLABLE KIYEOK WA CIEUC +0x82E4 0xAD13 #HANGUL SYLLABLE KIYEOK WA CHIEUCH +0x82E5 0xAD14 #HANGUL SYLLABLE KIYEOK WA KHIEUKH +0x82E6 0xAD15 #HANGUL SYLLABLE KIYEOK WA THIEUTH +0x82E7 0xAD16 #HANGUL SYLLABLE KIYEOK WA PHIEUPH +0x82E8 0xAD17 #HANGUL SYLLABLE KIYEOK WA HIEUH +0x82E9 0xACFE #HANGUL SYLLABLE KIYEOK WA SSANGKIYEOK +0x82EA 0xAD8B #HANGUL SYLLABLE KIYEOK WEO KIYEOKSIOS +0x82EB 0xAD8D #HANGUL SYLLABLE KIYEOK WEO NIEUNCIEUC +0x82EC 0xAD8E #HANGUL SYLLABLE KIYEOK WEO NIEUNHIEUH +0x82ED 0xAD8F #HANGUL SYLLABLE KIYEOK WEO TIKEUT +0x82EE 0xAD91 #HANGUL SYLLABLE KIYEOK WEO RIEULKIYEOK +0x82EF 0xAD92 #HANGUL SYLLABLE KIYEOK WEO RIEULMIEUM +0x82F0 0xAD93 #HANGUL SYLLABLE KIYEOK WEO RIEULPIEUP +0x82F1 0xAD94 #HANGUL SYLLABLE KIYEOK WEO RIEULSIOS +0x82F2 0xAD95 #HANGUL SYLLABLE KIYEOK WEO RIEULTHIEUTH +0x82F3 0xAD96 #HANGUL SYLLABLE KIYEOK WEO RIEULPHIEUPH +0x82F4 0xAD97 #HANGUL SYLLABLE KIYEOK WEO RIEULHIEUH +0x82F5 0xAD99 #HANGUL SYLLABLE KIYEOK WEO PIEUP +0x82F6 0xAD9A #HANGUL SYLLABLE KIYEOK WEO PIEUPSIOS +0x82F7 0xAD9B #HANGUL SYLLABLE KIYEOK WEO SIOS +0x82F8 0xAD9E #HANGUL SYLLABLE KIYEOK WEO CIEUC +0x82F9 0xAD9F #HANGUL SYLLABLE KIYEOK WEO CHIEUCH +0x82FA 0xADA0 #HANGUL SYLLABLE KIYEOK WEO KHIEUKH +0x82FB 0xADA1 #HANGUL SYLLABLE KIYEOK WEO THIEUTH +0x82FC 0xADA2 #HANGUL SYLLABLE KIYEOK WEO PHIEUPH +0x82FD 0xADA3 #HANGUL SYLLABLE KIYEOK WEO HIEUH +0x82FE 0xAD8A #HANGUL SYLLABLE KIYEOK WEO SSANGKIYEOK +0x8341 0xAD1B #HANGUL SYLLABLE KIYEOK WAE KIYEOKSIOS +0x8342 0xAD1D #HANGUL SYLLABLE KIYEOK WAE NIEUNCIEUC +0x8343 0xAD1E #HANGUL SYLLABLE KIYEOK WAE NIEUNHIEUH +0x8344 0xAD1F #HANGUL SYLLABLE KIYEOK WAE TIKEUT +0x8345 0xAD21 #HANGUL SYLLABLE KIYEOK WAE RIEULKIYEOK +0x8346 0xAD22 #HANGUL SYLLABLE KIYEOK WAE RIEULMIEUM +0x8347 0xAD23 #HANGUL SYLLABLE KIYEOK WAE RIEULPIEUP +0x8348 0xAD24 #HANGUL SYLLABLE KIYEOK WAE RIEULSIOS +0x8349 0xAD25 #HANGUL SYLLABLE KIYEOK WAE RIEULTHIEUTH +0x834A 0xAD26 #HANGUL SYLLABLE KIYEOK WAE RIEULPHIEUPH +0x834B 0xAD27 #HANGUL SYLLABLE KIYEOK WAE RIEULHIEUH +0x834C 0xAD28 #HANGUL SYLLABLE KIYEOK WAE MIEUM +0x834D 0xAD2A #HANGUL SYLLABLE KIYEOK WAE PIEUPSIOS +0x834E 0xAD2B #HANGUL SYLLABLE KIYEOK WAE SIOS +0x834F 0xAD2E #HANGUL SYLLABLE KIYEOK WAE CIEUC +0x8350 0xAD2F #HANGUL SYLLABLE KIYEOK WAE CHIEUCH +0x8351 0xAD30 #HANGUL SYLLABLE KIYEOK WAE KHIEUKH +0x8352 0xAD31 #HANGUL SYLLABLE KIYEOK WAE THIEUTH +0x8353 0xAD32 #HANGUL SYLLABLE KIYEOK WAE PHIEUPH +0x8354 0xAD33 #HANGUL SYLLABLE KIYEOK WAE HIEUH +0x8355 0xAD1A #HANGUL SYLLABLE KIYEOK WAE SSANGKIYEOK +0x8356 0xADA7 #HANGUL SYLLABLE KIYEOK WE KIYEOKSIOS +0x8357 0xADA8 #HANGUL SYLLABLE KIYEOK WE NIEUN +0x8358 0xADA9 #HANGUL SYLLABLE KIYEOK WE NIEUNCIEUC +0x8359 0xADAA #HANGUL SYLLABLE KIYEOK WE NIEUNHIEUH +0x835A 0xADAB #HANGUL SYLLABLE KIYEOK WE TIKEUT +0x8361 0xADAC #HANGUL SYLLABLE KIYEOK WE RIEUL +0x8362 0xADAD #HANGUL SYLLABLE KIYEOK WE RIEULKIYEOK +0x8363 0xADAE #HANGUL SYLLABLE KIYEOK WE RIEULMIEUM +0x8364 0xADAF #HANGUL SYLLABLE KIYEOK WE RIEULPIEUP +0x8365 0xADB0 #HANGUL SYLLABLE KIYEOK WE RIEULSIOS +0x8366 0xADB1 #HANGUL SYLLABLE KIYEOK WE RIEULTHIEUTH +0x8367 0xADB2 #HANGUL SYLLABLE KIYEOK WE RIEULPHIEUPH +0x8368 0xADB3 #HANGUL SYLLABLE KIYEOK WE RIEULHIEUH +0x8369 0xADB4 #HANGUL SYLLABLE KIYEOK WE MIEUM +0x836A 0xADB5 #HANGUL SYLLABLE KIYEOK WE PIEUP +0x836B 0xADB6 #HANGUL SYLLABLE KIYEOK WE PIEUPSIOS +0x836C 0xADB9 #HANGUL SYLLABLE KIYEOK WE IEUNG +0x836D 0xADBA #HANGUL SYLLABLE KIYEOK WE CIEUC +0x836E 0xADBB #HANGUL SYLLABLE KIYEOK WE CHIEUCH +0x836F 0xADBC #HANGUL SYLLABLE KIYEOK WE KHIEUKH +0x8370 0xADBD #HANGUL SYLLABLE KIYEOK WE THIEUTH +0x8371 0xADBE #HANGUL SYLLABLE KIYEOK WE PHIEUPH +0x8372 0xADBF #HANGUL SYLLABLE KIYEOK WE HIEUH +0x8373 0xADA6 #HANGUL SYLLABLE KIYEOK WE SSANGKIYEOK +0x8374 0xADB8 #HANGUL SYLLABLE KIYEOK WE SSANGSIOS +0x8375 0xB09D #HANGUL SYLLABLE NIEUN A NIEUNCIEUC +0x8376 0xB09E #HANGUL SYLLABLE NIEUN A NIEUNHIEUH +0x8377 0xB0A3 #HANGUL SYLLABLE NIEUN A RIEULPIEUP +0x8378 0xB0A4 #HANGUL SYLLABLE NIEUN A RIEULSIOS +0x8379 0xB0A5 #HANGUL SYLLABLE NIEUN A RIEULTHIEUTH +0x837A 0xB0A6 #HANGUL SYLLABLE NIEUN A RIEULPHIEUPH +0x8381 0xB0A7 #HANGUL SYLLABLE NIEUN A RIEULHIEUH +0x8382 0xB0AA #HANGUL SYLLABLE NIEUN A PIEUPSIOS +0x8383 0xB0B0 #HANGUL SYLLABLE NIEUN A KHIEUKH +0x8384 0xB0B2 #HANGUL SYLLABLE NIEUN A PHIEUPH +0x8385 0xB0D3 #HANGUL SYLLABLE NIEUN YA KIYEOKSIOS +0x8386 0xB0D5 #HANGUL SYLLABLE NIEUN YA NIEUNCIEUC +0x8387 0xB0D6 #HANGUL SYLLABLE NIEUN YA NIEUNHIEUH +0x8388 0xB0D7 #HANGUL SYLLABLE NIEUN YA TIKEUT +0x8389 0xB0D9 #HANGUL SYLLABLE NIEUN YA RIEULKIYEOK +0x838A 0xB0DA #HANGUL SYLLABLE NIEUN YA RIEULMIEUM +0x838B 0xB0DB #HANGUL SYLLABLE NIEUN YA RIEULPIEUP +0x838C 0xB0DC #HANGUL SYLLABLE NIEUN YA RIEULSIOS +0x838D 0xB0DD #HANGUL SYLLABLE NIEUN YA RIEULTHIEUTH +0x838E 0xB0DE #HANGUL SYLLABLE NIEUN YA RIEULPHIEUPH +0x838F 0xB0DF #HANGUL SYLLABLE NIEUN YA RIEULHIEUH +0x8390 0xB0E2 #HANGUL SYLLABLE NIEUN YA PIEUPSIOS +0x8391 0xB0E3 #HANGUL SYLLABLE NIEUN YA SIOS +0x8392 0xB0E6 #HANGUL SYLLABLE NIEUN YA CIEUC +0x8393 0xB0E7 #HANGUL SYLLABLE NIEUN YA CHIEUCH +0x8394 0xB0E8 #HANGUL SYLLABLE NIEUN YA KHIEUKH +0x8395 0xB0E9 #HANGUL SYLLABLE NIEUN YA THIEUTH +0x8396 0xB0EA #HANGUL SYLLABLE NIEUN YA PHIEUPH +0x8397 0xB0EB #HANGUL SYLLABLE NIEUN YA HIEUH +0x8398 0xB0D2 #HANGUL SYLLABLE NIEUN YA SSANGKIYEOK +0x8399 0xB0E4 #HANGUL SYLLABLE NIEUN YA SSANGSIOS +0x839A 0xB10D #HANGUL SYLLABLE NIEUN EO NIEUNCIEUC +0x839B 0xB10E #HANGUL SYLLABLE NIEUN EO NIEUNHIEUH +0x839C 0xB10F #HANGUL SYLLABLE NIEUN EO TIKEUT +0x839D 0xB111 #HANGUL SYLLABLE NIEUN EO RIEULKIYEOK +0x839E 0xB114 #HANGUL SYLLABLE NIEUN EO RIEULSIOS +0x839F 0xB115 #HANGUL SYLLABLE NIEUN EO RIEULTHIEUTH +0x83A0 0xB116 #HANGUL SYLLABLE NIEUN EO RIEULPHIEUPH +0x83A1 0xB117 #HANGUL SYLLABLE NIEUN EO RIEULHIEUH +0x83A2 0xB11A #HANGUL SYLLABLE NIEUN EO PIEUPSIOS +0x83A3 0xB11E #HANGUL SYLLABLE NIEUN EO CIEUC +0x83A4 0xB11F #HANGUL SYLLABLE NIEUN EO CHIEUCH +0x83A5 0xB120 #HANGUL SYLLABLE NIEUN EO KHIEUKH +0x83A6 0xB121 #HANGUL SYLLABLE NIEUN EO THIEUTH +0x83A7 0xB143 #HANGUL SYLLABLE NIEUN YEO KIYEOKSIOS +0x83A8 0xB145 #HANGUL SYLLABLE NIEUN YEO NIEUNCIEUC +0x83A9 0xB146 #HANGUL SYLLABLE NIEUN YEO NIEUNHIEUH +0x83AA 0xB147 #HANGUL SYLLABLE NIEUN YEO TIKEUT +0x83AB 0xB149 #HANGUL SYLLABLE NIEUN YEO RIEULKIYEOK +0x83AC 0xB14A #HANGUL SYLLABLE NIEUN YEO RIEULMIEUM +0x83AD 0xB14B #HANGUL SYLLABLE NIEUN YEO RIEULPIEUP +0x83AE 0xB14C #HANGUL SYLLABLE NIEUN YEO RIEULSIOS +0x83AF 0xB14D #HANGUL SYLLABLE NIEUN YEO RIEULTHIEUTH +0x83B0 0xB14E #HANGUL SYLLABLE NIEUN YEO RIEULPHIEUPH +0x83B1 0xB14F #HANGUL SYLLABLE NIEUN YEO RIEULHIEUH +0x83B2 0xB152 #HANGUL SYLLABLE NIEUN YEO PIEUPSIOS +0x83B3 0xB156 #HANGUL SYLLABLE NIEUN YEO CIEUC +0x83B4 0xB157 #HANGUL SYLLABLE NIEUN YEO CHIEUCH +0x83B5 0xB159 #HANGUL SYLLABLE NIEUN YEO THIEUTH +0x83B6 0xB15A #HANGUL SYLLABLE NIEUN YEO PHIEUPH +0x83B7 0xB15B #HANGUL SYLLABLE NIEUN YEO HIEUH +0x83B8 0xB142 #HANGUL SYLLABLE NIEUN YEO SSANGKIYEOK +0x83B9 0xB17B #HANGUL SYLLABLE NIEUN O KIYEOKSIOS +0x83BA 0xB17D #HANGUL SYLLABLE NIEUN O NIEUNCIEUC +0x83BB 0xB17E #HANGUL SYLLABLE NIEUN O NIEUNHIEUH +0x83BC 0xB17F #HANGUL SYLLABLE NIEUN O TIKEUT +0x83BD 0xB181 #HANGUL SYLLABLE NIEUN O RIEULKIYEOK +0x83BE 0xB183 #HANGUL SYLLABLE NIEUN O RIEULPIEUP +0x83BF 0xB184 #HANGUL SYLLABLE NIEUN O RIEULSIOS +0x83C0 0xB185 #HANGUL SYLLABLE NIEUN O RIEULTHIEUTH +0x83C1 0xB186 #HANGUL SYLLABLE NIEUN O RIEULPHIEUPH +0x83C2 0xB187 #HANGUL SYLLABLE NIEUN O RIEULHIEUH +0x83C3 0xB18A #HANGUL SYLLABLE NIEUN O PIEUPSIOS +0x83C4 0xB18E #HANGUL SYLLABLE NIEUN O CIEUC +0x83C5 0xB18F #HANGUL SYLLABLE NIEUN O CHIEUCH +0x83C6 0xB190 #HANGUL SYLLABLE NIEUN O KHIEUKH +0x83C7 0xB191 #HANGUL SYLLABLE NIEUN O THIEUTH +0x83C8 0xB17A #HANGUL SYLLABLE NIEUN O SSANGKIYEOK +0x83C9 0xB18C #HANGUL SYLLABLE NIEUN O SSANGSIOS +0x83CA 0xB1EB #HANGUL SYLLABLE NIEUN YO KIYEOKSIOS +0x83CB 0xB1ED #HANGUL SYLLABLE NIEUN YO NIEUNCIEUC +0x83CC 0xB1EE #HANGUL SYLLABLE NIEUN YO NIEUNHIEUH +0x83CD 0xB1EF #HANGUL SYLLABLE NIEUN YO TIKEUT +0x83CE 0xB1F1 #HANGUL SYLLABLE NIEUN YO RIEULKIYEOK +0x83CF 0xB1F2 #HANGUL SYLLABLE NIEUN YO RIEULMIEUM +0x83D0 0xB1F3 #HANGUL SYLLABLE NIEUN YO RIEULPIEUP +0x83D1 0xB1F4 #HANGUL SYLLABLE NIEUN YO RIEULSIOS +0x83D2 0xB1F5 #HANGUL SYLLABLE NIEUN YO RIEULTHIEUTH +0x83D3 0xB1F6 #HANGUL SYLLABLE NIEUN YO RIEULPHIEUPH +0x83D4 0xB1F7 #HANGUL SYLLABLE NIEUN YO RIEULHIEUH +0x83D5 0xB1FA #HANGUL SYLLABLE NIEUN YO PIEUPSIOS +0x83D6 0xB1FE #HANGUL SYLLABLE NIEUN YO CIEUC +0x83D7 0xB1FF #HANGUL SYLLABLE NIEUN YO CHIEUCH +0x83D8 0xB200 #HANGUL SYLLABLE NIEUN YO KHIEUKH +0x83D9 0xB201 #HANGUL SYLLABLE NIEUN YO THIEUTH +0x83DA 0xB202 #HANGUL SYLLABLE NIEUN YO PHIEUPH +0x83DB 0xB203 #HANGUL SYLLABLE NIEUN YO HIEUH +0x83DC 0xB1EA #HANGUL SYLLABLE NIEUN YO SSANGKIYEOK +0x83DD 0xB1FC #HANGUL SYLLABLE NIEUN YO SSANGSIOS +0x83DE 0xB207 #HANGUL SYLLABLE NIEUN U KIYEOKSIOS +0x83DF 0xB209 #HANGUL SYLLABLE NIEUN U NIEUNCIEUC +0x83E0 0xB20A #HANGUL SYLLABLE NIEUN U NIEUNHIEUH +0x83E1 0xB20D #HANGUL SYLLABLE NIEUN U RIEULKIYEOK +0x83E2 0xB20E #HANGUL SYLLABLE NIEUN U RIEULMIEUM +0x83E3 0xB20F #HANGUL SYLLABLE NIEUN U RIEULPIEUP +0x83E4 0xB210 #HANGUL SYLLABLE NIEUN U RIEULSIOS +0x83E5 0xB211 #HANGUL SYLLABLE NIEUN U RIEULTHIEUTH +0x83E6 0xB212 #HANGUL SYLLABLE NIEUN U RIEULPHIEUPH +0x83E7 0xB213 #HANGUL SYLLABLE NIEUN U RIEULHIEUH +0x83E8 0xB216 #HANGUL SYLLABLE NIEUN U PIEUPSIOS +0x83E9 0xB21A #HANGUL SYLLABLE NIEUN U CIEUC +0x83EA 0xB21B #HANGUL SYLLABLE NIEUN U CHIEUCH +0x83EB 0xB21C #HANGUL SYLLABLE NIEUN U KHIEUKH +0x83EC 0xB21D #HANGUL SYLLABLE NIEUN U THIEUTH +0x83ED 0xB21F #HANGUL SYLLABLE NIEUN U HIEUH +0x83EE 0xB206 #HANGUL SYLLABLE NIEUN U SSANGKIYEOK +0x83EF 0xB218 #HANGUL SYLLABLE NIEUN U SSANGSIOS +0x83F0 0xB277 #HANGUL SYLLABLE NIEUN YU KIYEOKSIOS +0x83F1 0xB279 #HANGUL SYLLABLE NIEUN YU NIEUNCIEUC +0x83F2 0xB27A #HANGUL SYLLABLE NIEUN YU NIEUNHIEUH +0x83F3 0xB27B #HANGUL SYLLABLE NIEUN YU TIKEUT +0x83F4 0xB27D #HANGUL SYLLABLE NIEUN YU RIEULKIYEOK +0x83F5 0xB27E #HANGUL SYLLABLE NIEUN YU RIEULMIEUM +0x83F6 0xB27F #HANGUL SYLLABLE NIEUN YU RIEULPIEUP +0x83F7 0xB280 #HANGUL SYLLABLE NIEUN YU RIEULSIOS +0x83F8 0xB281 #HANGUL SYLLABLE NIEUN YU RIEULTHIEUTH +0x83F9 0xB282 #HANGUL SYLLABLE NIEUN YU RIEULPHIEUPH +0x83FA 0xB283 #HANGUL SYLLABLE NIEUN YU RIEULHIEUH +0x83FB 0xB286 #HANGUL SYLLABLE NIEUN YU PIEUPSIOS +0x83FC 0xB287 #HANGUL SYLLABLE NIEUN YU SIOS +0x83FD 0xB28A #HANGUL SYLLABLE NIEUN YU CIEUC +0x83FE 0xB28B #HANGUL SYLLABLE NIEUN YU CHIEUCH +0x8441 0xB28C #HANGUL SYLLABLE NIEUN YU KHIEUKH +0x8442 0xB28D #HANGUL SYLLABLE NIEUN YU THIEUTH +0x8443 0xB28E #HANGUL SYLLABLE NIEUN YU PHIEUPH +0x8444 0xB28F #HANGUL SYLLABLE NIEUN YU HIEUH +0x8445 0xB276 #HANGUL SYLLABLE NIEUN YU SSANGKIYEOK +0x8446 0xB288 #HANGUL SYLLABLE NIEUN YU SSANGSIOS +0x8447 0xB293 #HANGUL SYLLABLE NIEUN EU KIYEOKSIOS +0x8448 0xB295 #HANGUL SYLLABLE NIEUN EU NIEUNCIEUC +0x8449 0xB296 #HANGUL SYLLABLE NIEUN EU NIEUNHIEUH +0x844A 0xB297 #HANGUL SYLLABLE NIEUN EU TIKEUT +0x844B 0xB29B #HANGUL SYLLABLE NIEUN EU RIEULPIEUP +0x844C 0xB29C #HANGUL SYLLABLE NIEUN EU RIEULSIOS +0x844D 0xB29D #HANGUL SYLLABLE NIEUN EU RIEULTHIEUTH +0x844E 0xB29E #HANGUL SYLLABLE NIEUN EU RIEULPHIEUPH +0x844F 0xB29F #HANGUL SYLLABLE NIEUN EU RIEULHIEUH +0x8450 0xB2A2 #HANGUL SYLLABLE NIEUN EU PIEUPSIOS +0x8451 0xB2A7 #HANGUL SYLLABLE NIEUN EU CHIEUCH +0x8452 0xB2A8 #HANGUL SYLLABLE NIEUN EU KHIEUKH +0x8453 0xB2A9 #HANGUL SYLLABLE NIEUN EU THIEUTH +0x8454 0xB2AB #HANGUL SYLLABLE NIEUN EU HIEUH +0x8455 0xB292 #HANGUL SYLLABLE NIEUN EU SSANGKIYEOK +0x8456 0xB2A4 #HANGUL SYLLABLE NIEUN EU SSANGSIOS +0x8457 0xB2CB #HANGUL SYLLABLE NIEUN I KIYEOKSIOS +0x8458 0xB2CD #HANGUL SYLLABLE NIEUN I NIEUNCIEUC +0x8459 0xB2CE #HANGUL SYLLABLE NIEUN I NIEUNHIEUH +0x845A 0xB2CF #HANGUL SYLLABLE NIEUN I TIKEUT +0x8461 0xB2D1 #HANGUL SYLLABLE NIEUN I RIEULKIYEOK +0x8462 0xB2D3 #HANGUL SYLLABLE NIEUN I RIEULPIEUP +0x8463 0xB2D4 #HANGUL SYLLABLE NIEUN I RIEULSIOS +0x8464 0xB2D5 #HANGUL SYLLABLE NIEUN I RIEULTHIEUTH +0x8465 0xB2D6 #HANGUL SYLLABLE NIEUN I RIEULPHIEUPH +0x8466 0xB2D7 #HANGUL SYLLABLE NIEUN I RIEULHIEUH +0x8467 0xB2DA #HANGUL SYLLABLE NIEUN I PIEUPSIOS +0x8468 0xB2DE #HANGUL SYLLABLE NIEUN I CIEUC +0x8469 0xB2DF #HANGUL SYLLABLE NIEUN I CHIEUCH +0x846A 0xB2E0 #HANGUL SYLLABLE NIEUN I KHIEUKH +0x846B 0xB2E1 #HANGUL SYLLABLE NIEUN I THIEUTH +0x846C 0xB2E3 #HANGUL SYLLABLE NIEUN I HIEUH +0x846D 0xB2CA #HANGUL SYLLABLE NIEUN I SSANGKIYEOK +0x846E 0xB2DC #HANGUL SYLLABLE NIEUN I SSANGSIOS +0x846F 0xB0B7 #HANGUL SYLLABLE NIEUN AE KIYEOKSIOS +0x8470 0xB0B9 #HANGUL SYLLABLE NIEUN AE NIEUNCIEUC +0x8471 0xB0BA #HANGUL SYLLABLE NIEUN AE NIEUNHIEUH +0x8472 0xB0BB #HANGUL SYLLABLE NIEUN AE TIKEUT +0x8473 0xB0BD #HANGUL SYLLABLE NIEUN AE RIEULKIYEOK +0x8474 0xB0BE #HANGUL SYLLABLE NIEUN AE RIEULMIEUM +0x8475 0xB0BF #HANGUL SYLLABLE NIEUN AE RIEULPIEUP +0x8476 0xB0C0 #HANGUL SYLLABLE NIEUN AE RIEULSIOS +0x8477 0xB0C1 #HANGUL SYLLABLE NIEUN AE RIEULTHIEUTH +0x8478 0xB0C2 #HANGUL SYLLABLE NIEUN AE RIEULPHIEUPH +0x8479 0xB0C3 #HANGUL SYLLABLE NIEUN AE RIEULHIEUH +0x847A 0xB0C6 #HANGUL SYLLABLE NIEUN AE PIEUPSIOS +0x8481 0xB0CA #HANGUL SYLLABLE NIEUN AE CIEUC +0x8482 0xB0CB #HANGUL SYLLABLE NIEUN AE CHIEUCH +0x8483 0xB0CC #HANGUL SYLLABLE NIEUN AE KHIEUKH +0x8484 0xB0CD #HANGUL SYLLABLE NIEUN AE THIEUTH +0x8485 0xB0CE #HANGUL SYLLABLE NIEUN AE PHIEUPH +0x8486 0xB0CF #HANGUL SYLLABLE NIEUN AE HIEUH +0x8487 0xB0B6 #HANGUL SYLLABLE NIEUN AE SSANGKIYEOK +0x8488 0xB0ED #HANGUL SYLLABLE NIEUN YAE KIYEOK +0x8489 0xB0EF #HANGUL SYLLABLE NIEUN YAE KIYEOKSIOS +0x848A 0xB0F0 #HANGUL SYLLABLE NIEUN YAE NIEUN +0x848B 0xB0F1 #HANGUL SYLLABLE NIEUN YAE NIEUNCIEUC +0x848C 0xB0F2 #HANGUL SYLLABLE NIEUN YAE NIEUNHIEUH +0x848D 0xB0F3 #HANGUL SYLLABLE NIEUN YAE TIKEUT +0x848E 0xB0F4 #HANGUL SYLLABLE NIEUN YAE RIEUL +0x848F 0xB0F5 #HANGUL SYLLABLE NIEUN YAE RIEULKIYEOK +0x8490 0xB0F6 #HANGUL SYLLABLE NIEUN YAE RIEULMIEUM +0x8491 0xB0F7 #HANGUL SYLLABLE NIEUN YAE RIEULPIEUP +0x8492 0xB0F8 #HANGUL SYLLABLE NIEUN YAE RIEULSIOS +0x8493 0xB0F9 #HANGUL SYLLABLE NIEUN YAE RIEULTHIEUTH +0x8494 0xB0FA #HANGUL SYLLABLE NIEUN YAE RIEULPHIEUPH +0x8495 0xB0FB #HANGUL SYLLABLE NIEUN YAE RIEULHIEUH +0x8496 0xB0FC #HANGUL SYLLABLE NIEUN YAE MIEUM +0x8497 0xB0FD #HANGUL SYLLABLE NIEUN YAE PIEUP +0x8498 0xB0FE #HANGUL SYLLABLE NIEUN YAE PIEUPSIOS +0x8499 0xB0FF #HANGUL SYLLABLE NIEUN YAE SIOS +0x849A 0xB101 #HANGUL SYLLABLE NIEUN YAE IEUNG +0x849B 0xB102 #HANGUL SYLLABLE NIEUN YAE CIEUC +0x849C 0xB103 #HANGUL SYLLABLE NIEUN YAE CHIEUCH +0x849D 0xB104 #HANGUL SYLLABLE NIEUN YAE KHIEUKH +0x849E 0xB105 #HANGUL SYLLABLE NIEUN YAE THIEUTH +0x849F 0xB106 #HANGUL SYLLABLE NIEUN YAE PHIEUPH +0x84A0 0xB107 #HANGUL SYLLABLE NIEUN YAE HIEUH +0x84A1 0xB0EE #HANGUL SYLLABLE NIEUN YAE SSANGKIYEOK +0x84A2 0xB100 #HANGUL SYLLABLE NIEUN YAE SSANGSIOS +0x84A3 0xB127 #HANGUL SYLLABLE NIEUN E KIYEOKSIOS +0x84A4 0xB129 #HANGUL SYLLABLE NIEUN E NIEUNCIEUC +0x84A5 0xB12A #HANGUL SYLLABLE NIEUN E NIEUNHIEUH +0x84A6 0xB12B #HANGUL SYLLABLE NIEUN E TIKEUT +0x84A7 0xB12D #HANGUL SYLLABLE NIEUN E RIEULKIYEOK +0x84A8 0xB12E #HANGUL SYLLABLE NIEUN E RIEULMIEUM +0x84A9 0xB12F #HANGUL SYLLABLE NIEUN E RIEULPIEUP +0x84AA 0xB130 #HANGUL SYLLABLE NIEUN E RIEULSIOS +0x84AB 0xB131 #HANGUL SYLLABLE NIEUN E RIEULTHIEUTH +0x84AC 0xB132 #HANGUL SYLLABLE NIEUN E RIEULPHIEUPH +0x84AD 0xB133 #HANGUL SYLLABLE NIEUN E RIEULHIEUH +0x84AE 0xB136 #HANGUL SYLLABLE NIEUN E PIEUPSIOS +0x84AF 0xB13A #HANGUL SYLLABLE NIEUN E CIEUC +0x84B0 0xB13B #HANGUL SYLLABLE NIEUN E CHIEUCH +0x84B1 0xB13C #HANGUL SYLLABLE NIEUN E KHIEUKH +0x84B2 0xB13D #HANGUL SYLLABLE NIEUN E THIEUTH +0x84B3 0xB13E #HANGUL SYLLABLE NIEUN E PHIEUPH +0x84B4 0xB13F #HANGUL SYLLABLE NIEUN E HIEUH +0x84B5 0xB126 #HANGUL SYLLABLE NIEUN E SSANGKIYEOK +0x84B6 0xB15D #HANGUL SYLLABLE NIEUN YE KIYEOK +0x84B7 0xB15F #HANGUL SYLLABLE NIEUN YE KIYEOKSIOS +0x84B8 0xB161 #HANGUL SYLLABLE NIEUN YE NIEUNCIEUC +0x84B9 0xB162 #HANGUL SYLLABLE NIEUN YE NIEUNHIEUH +0x84BA 0xB163 #HANGUL SYLLABLE NIEUN YE TIKEUT +0x84BB 0xB164 #HANGUL SYLLABLE NIEUN YE RIEUL +0x84BC 0xB165 #HANGUL SYLLABLE NIEUN YE RIEULKIYEOK +0x84BD 0xB166 #HANGUL SYLLABLE NIEUN YE RIEULMIEUM +0x84BE 0xB167 #HANGUL SYLLABLE NIEUN YE RIEULPIEUP +0x84BF 0xB168 #HANGUL SYLLABLE NIEUN YE RIEULSIOS +0x84C0 0xB169 #HANGUL SYLLABLE NIEUN YE RIEULTHIEUTH +0x84C1 0xB16A #HANGUL SYLLABLE NIEUN YE RIEULPHIEUPH +0x84C2 0xB16B #HANGUL SYLLABLE NIEUN YE RIEULHIEUH +0x84C3 0xB16C #HANGUL SYLLABLE NIEUN YE MIEUM +0x84C4 0xB16D #HANGUL SYLLABLE NIEUN YE PIEUP +0x84C5 0xB16E #HANGUL SYLLABLE NIEUN YE PIEUPSIOS +0x84C6 0xB16F #HANGUL SYLLABLE NIEUN YE SIOS +0x84C7 0xB171 #HANGUL SYLLABLE NIEUN YE IEUNG +0x84C8 0xB172 #HANGUL SYLLABLE NIEUN YE CIEUC +0x84C9 0xB173 #HANGUL SYLLABLE NIEUN YE CHIEUCH +0x84CA 0xB174 #HANGUL SYLLABLE NIEUN YE KHIEUKH +0x84CB 0xB175 #HANGUL SYLLABLE NIEUN YE THIEUTH +0x84CC 0xB176 #HANGUL SYLLABLE NIEUN YE PHIEUPH +0x84CD 0xB177 #HANGUL SYLLABLE NIEUN YE HIEUH +0x84CE 0xB15E #HANGUL SYLLABLE NIEUN YE SSANGKIYEOK +0x84CF 0xB170 #HANGUL SYLLABLE NIEUN YE SSANGSIOS +0x84D0 0xB1CD #HANGUL SYLLABLE NIEUN OE KIYEOK +0x84D1 0xB1CF #HANGUL SYLLABLE NIEUN OE KIYEOKSIOS +0x84D2 0xB1D1 #HANGUL SYLLABLE NIEUN OE NIEUNCIEUC +0x84D3 0xB1D2 #HANGUL SYLLABLE NIEUN OE NIEUNHIEUH +0x84D4 0xB1D3 #HANGUL SYLLABLE NIEUN OE TIKEUT +0x84D5 0xB1D5 #HANGUL SYLLABLE NIEUN OE RIEULKIYEOK +0x84D6 0xB1D6 #HANGUL SYLLABLE NIEUN OE RIEULMIEUM +0x84D7 0xB1D7 #HANGUL SYLLABLE NIEUN OE RIEULPIEUP +0x84D8 0xB1D8 #HANGUL SYLLABLE NIEUN OE RIEULSIOS +0x84D9 0xB1D9 #HANGUL SYLLABLE NIEUN OE RIEULTHIEUTH +0x84DA 0xB1DA #HANGUL SYLLABLE NIEUN OE RIEULPHIEUPH +0x84DB 0xB1DB #HANGUL SYLLABLE NIEUN OE RIEULHIEUH +0x84DC 0xB1DE #HANGUL SYLLABLE NIEUN OE PIEUPSIOS +0x84DD 0xB1E1 #HANGUL SYLLABLE NIEUN OE IEUNG +0x84DE 0xB1E2 #HANGUL SYLLABLE NIEUN OE CIEUC +0x84DF 0xB1E3 #HANGUL SYLLABLE NIEUN OE CHIEUCH +0x84E0 0xB1E4 #HANGUL SYLLABLE NIEUN OE KHIEUKH +0x84E1 0xB1E5 #HANGUL SYLLABLE NIEUN OE THIEUTH +0x84E2 0xB1E6 #HANGUL SYLLABLE NIEUN OE PHIEUPH +0x84E3 0xB1E7 #HANGUL SYLLABLE NIEUN OE HIEUH +0x84E4 0xB1CE #HANGUL SYLLABLE NIEUN OE SSANGKIYEOK +0x84E5 0xB1E0 #HANGUL SYLLABLE NIEUN OE SSANGSIOS +0x84E6 0xB259 #HANGUL SYLLABLE NIEUN WI KIYEOK +0x84E7 0xB25B #HANGUL SYLLABLE NIEUN WI KIYEOKSIOS +0x84E8 0xB25D #HANGUL SYLLABLE NIEUN WI NIEUNCIEUC +0x84E9 0xB25E #HANGUL SYLLABLE NIEUN WI NIEUNHIEUH +0x84EA 0xB25F #HANGUL SYLLABLE NIEUN WI TIKEUT +0x84EB 0xB261 #HANGUL SYLLABLE NIEUN WI RIEULKIYEOK +0x84EC 0xB262 #HANGUL SYLLABLE NIEUN WI RIEULMIEUM +0x84ED 0xB263 #HANGUL SYLLABLE NIEUN WI RIEULPIEUP +0x84EE 0xB264 #HANGUL SYLLABLE NIEUN WI RIEULSIOS +0x84EF 0xB265 #HANGUL SYLLABLE NIEUN WI RIEULTHIEUTH +0x84F0 0xB266 #HANGUL SYLLABLE NIEUN WI RIEULPHIEUPH +0x84F1 0xB267 #HANGUL SYLLABLE NIEUN WI RIEULHIEUH +0x84F2 0xB26A #HANGUL SYLLABLE NIEUN WI PIEUPSIOS +0x84F3 0xB26B #HANGUL SYLLABLE NIEUN WI SIOS +0x84F4 0xB26E #HANGUL SYLLABLE NIEUN WI CIEUC +0x84F5 0xB26F #HANGUL SYLLABLE NIEUN WI CHIEUCH +0x84F6 0xB270 #HANGUL SYLLABLE NIEUN WI KHIEUKH +0x84F7 0xB271 #HANGUL SYLLABLE NIEUN WI THIEUTH +0x84F8 0xB272 #HANGUL SYLLABLE NIEUN WI PHIEUPH +0x84F9 0xB273 #HANGUL SYLLABLE NIEUN WI HIEUH +0x84FA 0xB25A #HANGUL SYLLABLE NIEUN WI SSANGKIYEOK +0x84FB 0xB26C #HANGUL SYLLABLE NIEUN WI SSANGSIOS +0x84FC 0xB2AD #HANGUL SYLLABLE NIEUN YI KIYEOK +0x84FD 0xB2AF #HANGUL SYLLABLE NIEUN YI KIYEOKSIOS +0x84FE 0xB2B1 #HANGUL SYLLABLE NIEUN YI NIEUNCIEUC +0x8541 0xB2B2 #HANGUL SYLLABLE NIEUN YI NIEUNHIEUH +0x8542 0xB2B3 #HANGUL SYLLABLE NIEUN YI TIKEUT +0x8543 0xB2B5 #HANGUL SYLLABLE NIEUN YI RIEULKIYEOK +0x8544 0xB2B6 #HANGUL SYLLABLE NIEUN YI RIEULMIEUM +0x8545 0xB2B7 #HANGUL SYLLABLE NIEUN YI RIEULPIEUP +0x8546 0xB2B8 #HANGUL SYLLABLE NIEUN YI RIEULSIOS +0x8547 0xB2B9 #HANGUL SYLLABLE NIEUN YI RIEULTHIEUTH +0x8548 0xB2BA #HANGUL SYLLABLE NIEUN YI RIEULPHIEUPH +0x8549 0xB2BB #HANGUL SYLLABLE NIEUN YI RIEULHIEUH +0x854A 0xB2BD #HANGUL SYLLABLE NIEUN YI PIEUP +0x854B 0xB2BE #HANGUL SYLLABLE NIEUN YI PIEUPSIOS +0x854C 0xB2BF #HANGUL SYLLABLE NIEUN YI SIOS +0x854D 0xB2C2 #HANGUL SYLLABLE NIEUN YI CIEUC +0x854E 0xB2C3 #HANGUL SYLLABLE NIEUN YI CHIEUCH +0x854F 0xB2C4 #HANGUL SYLLABLE NIEUN YI KHIEUKH +0x8550 0xB2C5 #HANGUL SYLLABLE NIEUN YI THIEUTH +0x8551 0xB2C6 #HANGUL SYLLABLE NIEUN YI PHIEUPH +0x8552 0xB2C7 #HANGUL SYLLABLE NIEUN YI HIEUH +0x8553 0xB2AE #HANGUL SYLLABLE NIEUN YI SSANGKIYEOK +0x8554 0xB2C0 #HANGUL SYLLABLE NIEUN YI SSANGSIOS +0x8555 0xB195 #HANGUL SYLLABLE NIEUN WA KIYEOK +0x8556 0xB197 #HANGUL SYLLABLE NIEUN WA KIYEOKSIOS +0x8557 0xB199 #HANGUL SYLLABLE NIEUN WA NIEUNCIEUC +0x8558 0xB19A #HANGUL SYLLABLE NIEUN WA NIEUNHIEUH +0x8559 0xB19B #HANGUL SYLLABLE NIEUN WA TIKEUT +0x855A 0xB19D #HANGUL SYLLABLE NIEUN WA RIEULKIYEOK +0x8561 0xB19E #HANGUL SYLLABLE NIEUN WA RIEULMIEUM +0x8562 0xB19F #HANGUL SYLLABLE NIEUN WA RIEULPIEUP +0x8563 0xB1A0 #HANGUL SYLLABLE NIEUN WA RIEULSIOS +0x8564 0xB1A1 #HANGUL SYLLABLE NIEUN WA RIEULTHIEUTH +0x8565 0xB1A2 #HANGUL SYLLABLE NIEUN WA RIEULPHIEUPH +0x8566 0xB1A3 #HANGUL SYLLABLE NIEUN WA RIEULHIEUH +0x8567 0xB1A4 #HANGUL SYLLABLE NIEUN WA MIEUM +0x8568 0xB1A5 #HANGUL SYLLABLE NIEUN WA PIEUP +0x8569 0xB1A6 #HANGUL SYLLABLE NIEUN WA PIEUPSIOS +0x856A 0xB1A9 #HANGUL SYLLABLE NIEUN WA IEUNG +0x856B 0xB1AA #HANGUL SYLLABLE NIEUN WA CIEUC +0x856C 0xB1AB #HANGUL SYLLABLE NIEUN WA CHIEUCH +0x856D 0xB1AC #HANGUL SYLLABLE NIEUN WA KHIEUKH +0x856E 0xB1AD #HANGUL SYLLABLE NIEUN WA THIEUTH +0x856F 0xB1AE #HANGUL SYLLABLE NIEUN WA PHIEUPH +0x8570 0xB1AF #HANGUL SYLLABLE NIEUN WA HIEUH +0x8571 0xB196 #HANGUL SYLLABLE NIEUN WA SSANGKIYEOK +0x8572 0xB221 #HANGUL SYLLABLE NIEUN WEO KIYEOK +0x8573 0xB223 #HANGUL SYLLABLE NIEUN WEO KIYEOKSIOS +0x8574 0xB224 #HANGUL SYLLABLE NIEUN WEO NIEUN +0x8575 0xB225 #HANGUL SYLLABLE NIEUN WEO NIEUNCIEUC +0x8576 0xB226 #HANGUL SYLLABLE NIEUN WEO NIEUNHIEUH +0x8577 0xB227 #HANGUL SYLLABLE NIEUN WEO TIKEUT +0x8578 0xB229 #HANGUL SYLLABLE NIEUN WEO RIEULKIYEOK +0x8579 0xB22A #HANGUL SYLLABLE NIEUN WEO RIEULMIEUM +0x857A 0xB22B #HANGUL SYLLABLE NIEUN WEO RIEULPIEUP +0x8581 0xB22C #HANGUL SYLLABLE NIEUN WEO RIEULSIOS +0x8582 0xB22D #HANGUL SYLLABLE NIEUN WEO RIEULTHIEUTH +0x8583 0xB22E #HANGUL SYLLABLE NIEUN WEO RIEULPHIEUPH +0x8584 0xB22F #HANGUL SYLLABLE NIEUN WEO RIEULHIEUH +0x8585 0xB230 #HANGUL SYLLABLE NIEUN WEO MIEUM +0x8586 0xB231 #HANGUL SYLLABLE NIEUN WEO PIEUP +0x8587 0xB232 #HANGUL SYLLABLE NIEUN WEO PIEUPSIOS +0x8588 0xB235 #HANGUL SYLLABLE NIEUN WEO IEUNG +0x8589 0xB236 #HANGUL SYLLABLE NIEUN WEO CIEUC +0x858A 0xB237 #HANGUL SYLLABLE NIEUN WEO CHIEUCH +0x858B 0xB238 #HANGUL SYLLABLE NIEUN WEO KHIEUKH +0x858C 0xB239 #HANGUL SYLLABLE NIEUN WEO THIEUTH +0x858D 0xB23A #HANGUL SYLLABLE NIEUN WEO PHIEUPH +0x858E 0xB23B #HANGUL SYLLABLE NIEUN WEO HIEUH +0x858F 0xB222 #HANGUL SYLLABLE NIEUN WEO SSANGKIYEOK +0x8590 0xB1B1 #HANGUL SYLLABLE NIEUN WAE KIYEOK +0x8591 0xB1B3 #HANGUL SYLLABLE NIEUN WAE KIYEOKSIOS +0x8592 0xB1B4 #HANGUL SYLLABLE NIEUN WAE NIEUN +0x8593 0xB1B5 #HANGUL SYLLABLE NIEUN WAE NIEUNCIEUC +0x8594 0xB1B6 #HANGUL SYLLABLE NIEUN WAE NIEUNHIEUH +0x8595 0xB1B7 #HANGUL SYLLABLE NIEUN WAE TIKEUT +0x8596 0xB1B8 #HANGUL SYLLABLE NIEUN WAE RIEUL +0x8597 0xB1B9 #HANGUL SYLLABLE NIEUN WAE RIEULKIYEOK +0x8598 0xB1BA #HANGUL SYLLABLE NIEUN WAE RIEULMIEUM +0x8599 0xB1BB #HANGUL SYLLABLE NIEUN WAE RIEULPIEUP +0x859A 0xB1BC #HANGUL SYLLABLE NIEUN WAE RIEULSIOS +0x859B 0xB1BD #HANGUL SYLLABLE NIEUN WAE RIEULTHIEUTH +0x859C 0xB1BE #HANGUL SYLLABLE NIEUN WAE RIEULPHIEUPH +0x859D 0xB1BF #HANGUL SYLLABLE NIEUN WAE RIEULHIEUH +0x859E 0xB1C0 #HANGUL SYLLABLE NIEUN WAE MIEUM +0x859F 0xB1C1 #HANGUL SYLLABLE NIEUN WAE PIEUP +0x85A0 0xB1C2 #HANGUL SYLLABLE NIEUN WAE PIEUPSIOS +0x85A1 0xB1C3 #HANGUL SYLLABLE NIEUN WAE SIOS +0x85A2 0xB1C5 #HANGUL SYLLABLE NIEUN WAE IEUNG +0x85A3 0xB1C6 #HANGUL SYLLABLE NIEUN WAE CIEUC +0x85A4 0xB1C7 #HANGUL SYLLABLE NIEUN WAE CHIEUCH +0x85A5 0xB1C8 #HANGUL SYLLABLE NIEUN WAE KHIEUKH +0x85A6 0xB1C9 #HANGUL SYLLABLE NIEUN WAE THIEUTH +0x85A7 0xB1CA #HANGUL SYLLABLE NIEUN WAE PHIEUPH +0x85A8 0xB1CB #HANGUL SYLLABLE NIEUN WAE HIEUH +0x85A9 0xB1B2 #HANGUL SYLLABLE NIEUN WAE SSANGKIYEOK +0x85AA 0xB1C4 #HANGUL SYLLABLE NIEUN WAE SSANGSIOS +0x85AB 0xB23D #HANGUL SYLLABLE NIEUN WE KIYEOK +0x85AC 0xB23F #HANGUL SYLLABLE NIEUN WE KIYEOKSIOS +0x85AD 0xB240 #HANGUL SYLLABLE NIEUN WE NIEUN +0x85AE 0xB241 #HANGUL SYLLABLE NIEUN WE NIEUNCIEUC +0x85AF 0xB242 #HANGUL SYLLABLE NIEUN WE NIEUNHIEUH +0x85B0 0xB243 #HANGUL SYLLABLE NIEUN WE TIKEUT +0x85B1 0xB244 #HANGUL SYLLABLE NIEUN WE RIEUL +0x85B2 0xB245 #HANGUL SYLLABLE NIEUN WE RIEULKIYEOK +0x85B3 0xB246 #HANGUL SYLLABLE NIEUN WE RIEULMIEUM +0x85B4 0xB247 #HANGUL SYLLABLE NIEUN WE RIEULPIEUP +0x85B5 0xB248 #HANGUL SYLLABLE NIEUN WE RIEULSIOS +0x85B6 0xB249 #HANGUL SYLLABLE NIEUN WE RIEULTHIEUTH +0x85B7 0xB24A #HANGUL SYLLABLE NIEUN WE RIEULPHIEUPH +0x85B8 0xB24B #HANGUL SYLLABLE NIEUN WE RIEULHIEUH +0x85B9 0xB24C #HANGUL SYLLABLE NIEUN WE MIEUM +0x85BA 0xB24D #HANGUL SYLLABLE NIEUN WE PIEUP +0x85BB 0xB24E #HANGUL SYLLABLE NIEUN WE PIEUPSIOS +0x85BC 0xB24F #HANGUL SYLLABLE NIEUN WE SIOS +0x85BD 0xB251 #HANGUL SYLLABLE NIEUN WE IEUNG +0x85BE 0xB252 #HANGUL SYLLABLE NIEUN WE CIEUC +0x85BF 0xB253 #HANGUL SYLLABLE NIEUN WE CHIEUCH +0x85C0 0xB254 #HANGUL SYLLABLE NIEUN WE KHIEUKH +0x85C1 0xB255 #HANGUL SYLLABLE NIEUN WE THIEUTH +0x85C2 0xB256 #HANGUL SYLLABLE NIEUN WE PHIEUPH +0x85C3 0xB257 #HANGUL SYLLABLE NIEUN WE HIEUH +0x85C4 0xB23E #HANGUL SYLLABLE NIEUN WE SSANGKIYEOK +0x85C5 0xB250 #HANGUL SYLLABLE NIEUN WE SSANGSIOS +0x85C6 0xB2E7 #HANGUL SYLLABLE TIKEUT A KIYEOKSIOS +0x85C7 0xB2E9 #HANGUL SYLLABLE TIKEUT A NIEUNCIEUC +0x85C8 0xB2EA #HANGUL SYLLABLE TIKEUT A NIEUNHIEUH +0x85C9 0xB2F0 #HANGUL SYLLABLE TIKEUT A RIEULSIOS +0x85CA 0xB2F1 #HANGUL SYLLABLE TIKEUT A RIEULTHIEUTH +0x85CB 0xB2F6 #HANGUL SYLLABLE TIKEUT A PIEUPSIOS +0x85CC 0xB2FC #HANGUL SYLLABLE TIKEUT A KHIEUKH +0x85CD 0xB2FD #HANGUL SYLLABLE TIKEUT A THIEUTH +0x85CE 0xB31D #HANGUL SYLLABLE TIKEUT YA KIYEOK +0x85CF 0xB31F #HANGUL SYLLABLE TIKEUT YA KIYEOKSIOS +0x85D0 0xB320 #HANGUL SYLLABLE TIKEUT YA NIEUN +0x85D1 0xB321 #HANGUL SYLLABLE TIKEUT YA NIEUNCIEUC +0x85D2 0xB322 #HANGUL SYLLABLE TIKEUT YA NIEUNHIEUH +0x85D3 0xB323 #HANGUL SYLLABLE TIKEUT YA TIKEUT +0x85D4 0xB324 #HANGUL SYLLABLE TIKEUT YA RIEUL +0x85D5 0xB325 #HANGUL SYLLABLE TIKEUT YA RIEULKIYEOK +0x85D6 0xB326 #HANGUL SYLLABLE TIKEUT YA RIEULMIEUM +0x85D7 0xB327 #HANGUL SYLLABLE TIKEUT YA RIEULPIEUP +0x85D8 0xB328 #HANGUL SYLLABLE TIKEUT YA RIEULSIOS +0x85D9 0xB329 #HANGUL SYLLABLE TIKEUT YA RIEULTHIEUTH +0x85DA 0xB32A #HANGUL SYLLABLE TIKEUT YA RIEULPHIEUPH +0x85DB 0xB32B #HANGUL SYLLABLE TIKEUT YA RIEULHIEUH +0x85DC 0xB32C #HANGUL SYLLABLE TIKEUT YA MIEUM +0x85DD 0xB32D #HANGUL SYLLABLE TIKEUT YA PIEUP +0x85DE 0xB32E #HANGUL SYLLABLE TIKEUT YA PIEUPSIOS +0x85DF 0xB32F #HANGUL SYLLABLE TIKEUT YA SIOS +0x85E0 0xB331 #HANGUL SYLLABLE TIKEUT YA IEUNG +0x85E1 0xB332 #HANGUL SYLLABLE TIKEUT YA CIEUC +0x85E2 0xB333 #HANGUL SYLLABLE TIKEUT YA CHIEUCH +0x85E3 0xB334 #HANGUL SYLLABLE TIKEUT YA KHIEUKH +0x85E4 0xB335 #HANGUL SYLLABLE TIKEUT YA THIEUTH +0x85E5 0xB336 #HANGUL SYLLABLE TIKEUT YA PHIEUPH +0x85E6 0xB337 #HANGUL SYLLABLE TIKEUT YA HIEUH +0x85E7 0xB31E #HANGUL SYLLABLE TIKEUT YA SSANGKIYEOK +0x85E8 0xB330 #HANGUL SYLLABLE TIKEUT YA SSANGSIOS +0x85E9 0xB357 #HANGUL SYLLABLE TIKEUT EO KIYEOKSIOS +0x85EA 0xB359 #HANGUL SYLLABLE TIKEUT EO NIEUNCIEUC +0x85EB 0xB35A #HANGUL SYLLABLE TIKEUT EO NIEUNHIEUH +0x85EC 0xB35D #HANGUL SYLLABLE TIKEUT EO RIEULKIYEOK +0x85ED 0xB360 #HANGUL SYLLABLE TIKEUT EO RIEULSIOS +0x85EE 0xB361 #HANGUL SYLLABLE TIKEUT EO RIEULTHIEUTH +0x85EF 0xB362 #HANGUL SYLLABLE TIKEUT EO RIEULPHIEUPH +0x85F0 0xB363 #HANGUL SYLLABLE TIKEUT EO RIEULHIEUH +0x85F1 0xB366 #HANGUL SYLLABLE TIKEUT EO PIEUPSIOS +0x85F2 0xB36A #HANGUL SYLLABLE TIKEUT EO CIEUC +0x85F3 0xB36C #HANGUL SYLLABLE TIKEUT EO KHIEUKH +0x85F4 0xB36D #HANGUL SYLLABLE TIKEUT EO THIEUTH +0x85F5 0xB38D #HANGUL SYLLABLE TIKEUT YEO KIYEOK +0x85F6 0xB38F #HANGUL SYLLABLE TIKEUT YEO KIYEOKSIOS +0x85F7 0xB391 #HANGUL SYLLABLE TIKEUT YEO NIEUNCIEUC +0x85F8 0xB392 #HANGUL SYLLABLE TIKEUT YEO NIEUNHIEUH +0x85F9 0xB393 #HANGUL SYLLABLE TIKEUT YEO TIKEUT +0x85FA 0xB395 #HANGUL SYLLABLE TIKEUT YEO RIEULKIYEOK +0x85FB 0xB396 #HANGUL SYLLABLE TIKEUT YEO RIEULMIEUM +0x85FC 0xB397 #HANGUL SYLLABLE TIKEUT YEO RIEULPIEUP +0x85FD 0xB398 #HANGUL SYLLABLE TIKEUT YEO RIEULSIOS +0x85FE 0xB399 #HANGUL SYLLABLE TIKEUT YEO RIEULTHIEUTH +0x8641 0xB39A #HANGUL SYLLABLE TIKEUT YEO RIEULPHIEUPH +0x8642 0xB39B #HANGUL SYLLABLE TIKEUT YEO RIEULHIEUH +0x8643 0xB39C #HANGUL SYLLABLE TIKEUT YEO MIEUM +0x8644 0xB39D #HANGUL SYLLABLE TIKEUT YEO PIEUP +0x8645 0xB39E #HANGUL SYLLABLE TIKEUT YEO PIEUPSIOS +0x8646 0xB39F #HANGUL SYLLABLE TIKEUT YEO SIOS +0x8647 0xB3A2 #HANGUL SYLLABLE TIKEUT YEO CIEUC +0x8648 0xB3A3 #HANGUL SYLLABLE TIKEUT YEO CHIEUCH +0x8649 0xB3A4 #HANGUL SYLLABLE TIKEUT YEO KHIEUKH +0x864A 0xB3A5 #HANGUL SYLLABLE TIKEUT YEO THIEUTH +0x864B 0xB3A6 #HANGUL SYLLABLE TIKEUT YEO PHIEUPH +0x864C 0xB3A7 #HANGUL SYLLABLE TIKEUT YEO HIEUH +0x864D 0xB38E #HANGUL SYLLABLE TIKEUT YEO SSANGKIYEOK +0x864E 0xB3C7 #HANGUL SYLLABLE TIKEUT O KIYEOKSIOS +0x864F 0xB3C9 #HANGUL SYLLABLE TIKEUT O NIEUNCIEUC +0x8650 0xB3CA #HANGUL SYLLABLE TIKEUT O NIEUNHIEUH +0x8651 0xB3CD #HANGUL SYLLABLE TIKEUT O RIEULKIYEOK +0x8652 0xB3CF #HANGUL SYLLABLE TIKEUT O RIEULPIEUP +0x8653 0xB3D1 #HANGUL SYLLABLE TIKEUT O RIEULTHIEUTH +0x8654 0xB3D2 #HANGUL SYLLABLE TIKEUT O RIEULPHIEUPH +0x8655 0xB3D3 #HANGUL SYLLABLE TIKEUT O RIEULHIEUH +0x8656 0xB3D6 #HANGUL SYLLABLE TIKEUT O PIEUPSIOS +0x8657 0xB3DA #HANGUL SYLLABLE TIKEUT O CIEUC +0x8658 0xB3DC #HANGUL SYLLABLE TIKEUT O KHIEUKH +0x8659 0xB3DE #HANGUL SYLLABLE TIKEUT O PHIEUPH +0x865A 0xB3DF #HANGUL SYLLABLE TIKEUT O HIEUH +0x8661 0xB3C6 #HANGUL SYLLABLE TIKEUT O SSANGKIYEOK +0x8662 0xB3D8 #HANGUL SYLLABLE TIKEUT O SSANGSIOS +0x8663 0xB435 #HANGUL SYLLABLE TIKEUT YO KIYEOK +0x8664 0xB437 #HANGUL SYLLABLE TIKEUT YO KIYEOKSIOS +0x8665 0xB438 #HANGUL SYLLABLE TIKEUT YO NIEUN +0x8666 0xB439 #HANGUL SYLLABLE TIKEUT YO NIEUNCIEUC +0x8667 0xB43A #HANGUL SYLLABLE TIKEUT YO NIEUNHIEUH +0x8668 0xB43B #HANGUL SYLLABLE TIKEUT YO TIKEUT +0x8669 0xB43C #HANGUL SYLLABLE TIKEUT YO RIEUL +0x866A 0xB43D #HANGUL SYLLABLE TIKEUT YO RIEULKIYEOK +0x866B 0xB43E #HANGUL SYLLABLE TIKEUT YO RIEULMIEUM +0x866C 0xB43F #HANGUL SYLLABLE TIKEUT YO RIEULPIEUP +0x866D 0xB440 #HANGUL SYLLABLE TIKEUT YO RIEULSIOS +0x866E 0xB441 #HANGUL SYLLABLE TIKEUT YO RIEULTHIEUTH +0x866F 0xB442 #HANGUL SYLLABLE TIKEUT YO RIEULPHIEUPH +0x8670 0xB443 #HANGUL SYLLABLE TIKEUT YO RIEULHIEUH +0x8671 0xB444 #HANGUL SYLLABLE TIKEUT YO MIEUM +0x8672 0xB445 #HANGUL SYLLABLE TIKEUT YO PIEUP +0x8673 0xB446 #HANGUL SYLLABLE TIKEUT YO PIEUPSIOS +0x8674 0xB447 #HANGUL SYLLABLE TIKEUT YO SIOS +0x8675 0xB449 #HANGUL SYLLABLE TIKEUT YO IEUNG +0x8676 0xB44A #HANGUL SYLLABLE TIKEUT YO CIEUC +0x8677 0xB44B #HANGUL SYLLABLE TIKEUT YO CHIEUCH +0x8678 0xB44C #HANGUL SYLLABLE TIKEUT YO KHIEUKH +0x8679 0xB44D #HANGUL SYLLABLE TIKEUT YO THIEUTH +0x867A 0xB44E #HANGUL SYLLABLE TIKEUT YO PHIEUPH +0x8681 0xB44F #HANGUL SYLLABLE TIKEUT YO HIEUH +0x8682 0xB436 #HANGUL SYLLABLE TIKEUT YO SSANGKIYEOK +0x8683 0xB448 #HANGUL SYLLABLE TIKEUT YO SSANGSIOS +0x8684 0xB453 #HANGUL SYLLABLE TIKEUT U KIYEOKSIOS +0x8685 0xB455 #HANGUL SYLLABLE TIKEUT U NIEUNCIEUC +0x8686 0xB456 #HANGUL SYLLABLE TIKEUT U NIEUNHIEUH +0x8687 0xB457 #HANGUL SYLLABLE TIKEUT U TIKEUT +0x8688 0xB459 #HANGUL SYLLABLE TIKEUT U RIEULKIYEOK +0x8689 0xB45A #HANGUL SYLLABLE TIKEUT U RIEULMIEUM +0x868A 0xB45B #HANGUL SYLLABLE TIKEUT U RIEULPIEUP +0x868B 0xB45C #HANGUL SYLLABLE TIKEUT U RIEULSIOS +0x868C 0xB45D #HANGUL SYLLABLE TIKEUT U RIEULTHIEUTH +0x868D 0xB45E #HANGUL SYLLABLE TIKEUT U RIEULPHIEUPH +0x868E 0xB45F #HANGUL SYLLABLE TIKEUT U RIEULHIEUH +0x868F 0xB462 #HANGUL SYLLABLE TIKEUT U PIEUPSIOS +0x8690 0xB466 #HANGUL SYLLABLE TIKEUT U CIEUC +0x8691 0xB467 #HANGUL SYLLABLE TIKEUT U CHIEUCH +0x8692 0xB468 #HANGUL SYLLABLE TIKEUT U KHIEUKH +0x8693 0xB469 #HANGUL SYLLABLE TIKEUT U THIEUTH +0x8694 0xB46A #HANGUL SYLLABLE TIKEUT U PHIEUPH +0x8695 0xB46B #HANGUL SYLLABLE TIKEUT U HIEUH +0x8696 0xB452 #HANGUL SYLLABLE TIKEUT U SSANGKIYEOK +0x8697 0xB464 #HANGUL SYLLABLE TIKEUT U SSANGSIOS +0x8698 0xB4C1 #HANGUL SYLLABLE TIKEUT YU KIYEOK +0x8699 0xB4C3 #HANGUL SYLLABLE TIKEUT YU KIYEOKSIOS +0x869A 0xB4C5 #HANGUL SYLLABLE TIKEUT YU NIEUNCIEUC +0x869B 0xB4C6 #HANGUL SYLLABLE TIKEUT YU NIEUNHIEUH +0x869C 0xB4C7 #HANGUL SYLLABLE TIKEUT YU TIKEUT +0x869D 0xB4C9 #HANGUL SYLLABLE TIKEUT YU RIEULKIYEOK +0x869E 0xB4CA #HANGUL SYLLABLE TIKEUT YU RIEULMIEUM +0x869F 0xB4CB #HANGUL SYLLABLE TIKEUT YU RIEULPIEUP +0x86A0 0xB4CC #HANGUL SYLLABLE TIKEUT YU RIEULSIOS +0x86A1 0xB4CD #HANGUL SYLLABLE TIKEUT YU RIEULTHIEUTH +0x86A2 0xB4CE #HANGUL SYLLABLE TIKEUT YU RIEULPHIEUPH +0x86A3 0xB4CF #HANGUL SYLLABLE TIKEUT YU RIEULHIEUH +0x86A4 0xB4D1 #HANGUL SYLLABLE TIKEUT YU PIEUP +0x86A5 0xB4D2 #HANGUL SYLLABLE TIKEUT YU PIEUPSIOS +0x86A6 0xB4D3 #HANGUL SYLLABLE TIKEUT YU SIOS +0x86A7 0xB4D6 #HANGUL SYLLABLE TIKEUT YU CIEUC +0x86A8 0xB4D7 #HANGUL SYLLABLE TIKEUT YU CHIEUCH +0x86A9 0xB4D8 #HANGUL SYLLABLE TIKEUT YU KHIEUKH +0x86AA 0xB4D9 #HANGUL SYLLABLE TIKEUT YU THIEUTH +0x86AB 0xB4DA #HANGUL SYLLABLE TIKEUT YU PHIEUPH +0x86AC 0xB4DB #HANGUL SYLLABLE TIKEUT YU HIEUH +0x86AD 0xB4C2 #HANGUL SYLLABLE TIKEUT YU SSANGKIYEOK +0x86AE 0xB4D4 #HANGUL SYLLABLE TIKEUT YU SSANGSIOS +0x86AF 0xB4DF #HANGUL SYLLABLE TIKEUT EU KIYEOKSIOS +0x86B0 0xB4E1 #HANGUL SYLLABLE TIKEUT EU NIEUNCIEUC +0x86B1 0xB4E2 #HANGUL SYLLABLE TIKEUT EU NIEUNHIEUH +0x86B2 0xB4E8 #HANGUL SYLLABLE TIKEUT EU RIEULSIOS +0x86B3 0xB4E9 #HANGUL SYLLABLE TIKEUT EU RIEULTHIEUTH +0x86B4 0xB4EA #HANGUL SYLLABLE TIKEUT EU RIEULPHIEUPH +0x86B5 0xB4EB #HANGUL SYLLABLE TIKEUT EU RIEULHIEUH +0x86B6 0xB4EE #HANGUL SYLLABLE TIKEUT EU PIEUPSIOS +0x86B7 0xB4F2 #HANGUL SYLLABLE TIKEUT EU CIEUC +0x86B8 0xB4F3 #HANGUL SYLLABLE TIKEUT EU CHIEUCH +0x86B9 0xB4F4 #HANGUL SYLLABLE TIKEUT EU KHIEUKH +0x86BA 0xB4F5 #HANGUL SYLLABLE TIKEUT EU THIEUTH +0x86BB 0xB4F6 #HANGUL SYLLABLE TIKEUT EU PHIEUPH +0x86BC 0xB4F7 #HANGUL SYLLABLE TIKEUT EU HIEUH +0x86BD 0xB4DE #HANGUL SYLLABLE TIKEUT EU SSANGKIYEOK +0x86BE 0xB4F0 #HANGUL SYLLABLE TIKEUT EU SSANGSIOS +0x86BF 0xB517 #HANGUL SYLLABLE TIKEUT I KIYEOKSIOS +0x86C0 0xB519 #HANGUL SYLLABLE TIKEUT I NIEUNCIEUC +0x86C1 0xB51A #HANGUL SYLLABLE TIKEUT I NIEUNHIEUH +0x86C2 0xB51D #HANGUL SYLLABLE TIKEUT I RIEULKIYEOK +0x86C3 0xB51E #HANGUL SYLLABLE TIKEUT I RIEULMIEUM +0x86C4 0xB51F #HANGUL SYLLABLE TIKEUT I RIEULPIEUP +0x86C5 0xB520 #HANGUL SYLLABLE TIKEUT I RIEULSIOS +0x86C6 0xB521 #HANGUL SYLLABLE TIKEUT I RIEULTHIEUTH +0x86C7 0xB522 #HANGUL SYLLABLE TIKEUT I RIEULPHIEUPH +0x86C8 0xB523 #HANGUL SYLLABLE TIKEUT I RIEULHIEUH +0x86C9 0xB526 #HANGUL SYLLABLE TIKEUT I PIEUPSIOS +0x86CA 0xB52B #HANGUL SYLLABLE TIKEUT I CHIEUCH +0x86CB 0xB52C #HANGUL SYLLABLE TIKEUT I KHIEUKH +0x86CC 0xB52D #HANGUL SYLLABLE TIKEUT I THIEUTH +0x86CD 0xB52F #HANGUL SYLLABLE TIKEUT I HIEUH +0x86CE 0xB516 #HANGUL SYLLABLE TIKEUT I SSANGKIYEOK +0x86CF 0xB303 #HANGUL SYLLABLE TIKEUT AE KIYEOKSIOS +0x86D0 0xB305 #HANGUL SYLLABLE TIKEUT AE NIEUNCIEUC +0x86D1 0xB306 #HANGUL SYLLABLE TIKEUT AE NIEUNHIEUH +0x86D2 0xB307 #HANGUL SYLLABLE TIKEUT AE TIKEUT +0x86D3 0xB309 #HANGUL SYLLABLE TIKEUT AE RIEULKIYEOK +0x86D4 0xB30A #HANGUL SYLLABLE TIKEUT AE RIEULMIEUM +0x86D5 0xB30B #HANGUL SYLLABLE TIKEUT AE RIEULPIEUP +0x86D6 0xB30C #HANGUL SYLLABLE TIKEUT AE RIEULSIOS +0x86D7 0xB30D #HANGUL SYLLABLE TIKEUT AE RIEULTHIEUTH +0x86D8 0xB30E #HANGUL SYLLABLE TIKEUT AE RIEULPHIEUPH +0x86D9 0xB30F #HANGUL SYLLABLE TIKEUT AE RIEULHIEUH +0x86DA 0xB312 #HANGUL SYLLABLE TIKEUT AE PIEUPSIOS +0x86DB 0xB316 #HANGUL SYLLABLE TIKEUT AE CIEUC +0x86DC 0xB317 #HANGUL SYLLABLE TIKEUT AE CHIEUCH +0x86DD 0xB318 #HANGUL SYLLABLE TIKEUT AE KHIEUKH +0x86DE 0xB319 #HANGUL SYLLABLE TIKEUT AE THIEUTH +0x86DF 0xB31A #HANGUL SYLLABLE TIKEUT AE PHIEUPH +0x86E0 0xB31B #HANGUL SYLLABLE TIKEUT AE HIEUH +0x86E1 0xB302 #HANGUL SYLLABLE TIKEUT AE SSANGKIYEOK +0x86E2 0xB339 #HANGUL SYLLABLE TIKEUT YAE KIYEOK +0x86E3 0xB33B #HANGUL SYLLABLE TIKEUT YAE KIYEOKSIOS +0x86E4 0xB33C #HANGUL SYLLABLE TIKEUT YAE NIEUN +0x86E5 0xB33D #HANGUL SYLLABLE TIKEUT YAE NIEUNCIEUC +0x86E6 0xB33E #HANGUL SYLLABLE TIKEUT YAE NIEUNHIEUH +0x86E7 0xB33F #HANGUL SYLLABLE TIKEUT YAE TIKEUT +0x86E8 0xB340 #HANGUL SYLLABLE TIKEUT YAE RIEUL +0x86E9 0xB341 #HANGUL SYLLABLE TIKEUT YAE RIEULKIYEOK +0x86EA 0xB342 #HANGUL SYLLABLE TIKEUT YAE RIEULMIEUM +0x86EB 0xB343 #HANGUL SYLLABLE TIKEUT YAE RIEULPIEUP +0x86EC 0xB344 #HANGUL SYLLABLE TIKEUT YAE RIEULSIOS +0x86ED 0xB345 #HANGUL SYLLABLE TIKEUT YAE RIEULTHIEUTH +0x86EE 0xB346 #HANGUL SYLLABLE TIKEUT YAE RIEULPHIEUPH +0x86EF 0xB347 #HANGUL SYLLABLE TIKEUT YAE RIEULHIEUH +0x86F0 0xB348 #HANGUL SYLLABLE TIKEUT YAE MIEUM +0x86F1 0xB349 #HANGUL SYLLABLE TIKEUT YAE PIEUP +0x86F2 0xB34A #HANGUL SYLLABLE TIKEUT YAE PIEUPSIOS +0x86F3 0xB34B #HANGUL SYLLABLE TIKEUT YAE SIOS +0x86F4 0xB34D #HANGUL SYLLABLE TIKEUT YAE IEUNG +0x86F5 0xB34E #HANGUL SYLLABLE TIKEUT YAE CIEUC +0x86F6 0xB34F #HANGUL SYLLABLE TIKEUT YAE CHIEUCH +0x86F7 0xB350 #HANGUL SYLLABLE TIKEUT YAE KHIEUKH +0x86F8 0xB351 #HANGUL SYLLABLE TIKEUT YAE THIEUTH +0x86F9 0xB352 #HANGUL SYLLABLE TIKEUT YAE PHIEUPH +0x86FA 0xB353 #HANGUL SYLLABLE TIKEUT YAE HIEUH +0x86FB 0xB33A #HANGUL SYLLABLE TIKEUT YAE SSANGKIYEOK +0x86FC 0xB34C #HANGUL SYLLABLE TIKEUT YAE SSANGSIOS +0x86FD 0xB373 #HANGUL SYLLABLE TIKEUT E KIYEOKSIOS +0x86FE 0xB375 #HANGUL SYLLABLE TIKEUT E NIEUNCIEUC +0x8741 0xB376 #HANGUL SYLLABLE TIKEUT E NIEUNHIEUH +0x8742 0xB379 #HANGUL SYLLABLE TIKEUT E RIEULKIYEOK +0x8743 0xB37A #HANGUL SYLLABLE TIKEUT E RIEULMIEUM +0x8744 0xB37B #HANGUL SYLLABLE TIKEUT E RIEULPIEUP +0x8745 0xB37C #HANGUL SYLLABLE TIKEUT E RIEULSIOS +0x8746 0xB37D #HANGUL SYLLABLE TIKEUT E RIEULTHIEUTH +0x8747 0xB37E #HANGUL SYLLABLE TIKEUT E RIEULPHIEUPH +0x8748 0xB37F #HANGUL SYLLABLE TIKEUT E RIEULHIEUH +0x8749 0xB382 #HANGUL SYLLABLE TIKEUT E PIEUPSIOS +0x874A 0xB386 #HANGUL SYLLABLE TIKEUT E CIEUC +0x874B 0xB387 #HANGUL SYLLABLE TIKEUT E CHIEUCH +0x874C 0xB388 #HANGUL SYLLABLE TIKEUT E KHIEUKH +0x874D 0xB389 #HANGUL SYLLABLE TIKEUT E THIEUTH +0x874E 0xB38A #HANGUL SYLLABLE TIKEUT E PHIEUPH +0x874F 0xB38B #HANGUL SYLLABLE TIKEUT E HIEUH +0x8750 0xB372 #HANGUL SYLLABLE TIKEUT E SSANGKIYEOK +0x8751 0xB3A9 #HANGUL SYLLABLE TIKEUT YE KIYEOK +0x8752 0xB3AB #HANGUL SYLLABLE TIKEUT YE KIYEOKSIOS +0x8753 0xB3AD #HANGUL SYLLABLE TIKEUT YE NIEUNCIEUC +0x8754 0xB3AE #HANGUL SYLLABLE TIKEUT YE NIEUNHIEUH +0x8755 0xB3AF #HANGUL SYLLABLE TIKEUT YE TIKEUT +0x8756 0xB3B0 #HANGUL SYLLABLE TIKEUT YE RIEUL +0x8757 0xB3B1 #HANGUL SYLLABLE TIKEUT YE RIEULKIYEOK +0x8758 0xB3B2 #HANGUL SYLLABLE TIKEUT YE RIEULMIEUM +0x8759 0xB3B3 #HANGUL SYLLABLE TIKEUT YE RIEULPIEUP +0x875A 0xB3B4 #HANGUL SYLLABLE TIKEUT YE RIEULSIOS +0x8761 0xB3B5 #HANGUL SYLLABLE TIKEUT YE RIEULTHIEUTH +0x8762 0xB3B6 #HANGUL SYLLABLE TIKEUT YE RIEULPHIEUPH +0x8763 0xB3B7 #HANGUL SYLLABLE TIKEUT YE RIEULHIEUH +0x8764 0xB3B8 #HANGUL SYLLABLE TIKEUT YE MIEUM +0x8765 0xB3B9 #HANGUL SYLLABLE TIKEUT YE PIEUP +0x8766 0xB3BA #HANGUL SYLLABLE TIKEUT YE PIEUPSIOS +0x8767 0xB3BB #HANGUL SYLLABLE TIKEUT YE SIOS +0x8768 0xB3BD #HANGUL SYLLABLE TIKEUT YE IEUNG +0x8769 0xB3BE #HANGUL SYLLABLE TIKEUT YE CIEUC +0x876A 0xB3BF #HANGUL SYLLABLE TIKEUT YE CHIEUCH +0x876B 0xB3C0 #HANGUL SYLLABLE TIKEUT YE KHIEUKH +0x876C 0xB3C1 #HANGUL SYLLABLE TIKEUT YE THIEUTH +0x876D 0xB3C2 #HANGUL SYLLABLE TIKEUT YE PHIEUPH +0x876E 0xB3C3 #HANGUL SYLLABLE TIKEUT YE HIEUH +0x876F 0xB3AA #HANGUL SYLLABLE TIKEUT YE SSANGKIYEOK +0x8770 0xB3BC #HANGUL SYLLABLE TIKEUT YE SSANGSIOS +0x8771 0xB419 #HANGUL SYLLABLE TIKEUT OE KIYEOK +0x8772 0xB41B #HANGUL SYLLABLE TIKEUT OE KIYEOKSIOS +0x8773 0xB41D #HANGUL SYLLABLE TIKEUT OE NIEUNCIEUC +0x8774 0xB41E #HANGUL SYLLABLE TIKEUT OE NIEUNHIEUH +0x8775 0xB41F #HANGUL SYLLABLE TIKEUT OE TIKEUT +0x8776 0xB421 #HANGUL SYLLABLE TIKEUT OE RIEULKIYEOK +0x8777 0xB422 #HANGUL SYLLABLE TIKEUT OE RIEULMIEUM +0x8778 0xB423 #HANGUL SYLLABLE TIKEUT OE RIEULPIEUP +0x8779 0xB424 #HANGUL SYLLABLE TIKEUT OE RIEULSIOS +0x877A 0xB425 #HANGUL SYLLABLE TIKEUT OE RIEULTHIEUTH +0x8781 0xB426 #HANGUL SYLLABLE TIKEUT OE RIEULPHIEUPH +0x8782 0xB427 #HANGUL SYLLABLE TIKEUT OE RIEULHIEUH +0x8783 0xB42A #HANGUL SYLLABLE TIKEUT OE PIEUPSIOS +0x8784 0xB42E #HANGUL SYLLABLE TIKEUT OE CIEUC +0x8785 0xB42F #HANGUL SYLLABLE TIKEUT OE CHIEUCH +0x8786 0xB430 #HANGUL SYLLABLE TIKEUT OE KHIEUKH +0x8787 0xB431 #HANGUL SYLLABLE TIKEUT OE THIEUTH +0x8788 0xB432 #HANGUL SYLLABLE TIKEUT OE PHIEUPH +0x8789 0xB433 #HANGUL SYLLABLE TIKEUT OE HIEUH +0x878A 0xB41A #HANGUL SYLLABLE TIKEUT OE SSANGKIYEOK +0x878B 0xB4A7 #HANGUL SYLLABLE TIKEUT WI KIYEOKSIOS +0x878C 0xB4A9 #HANGUL SYLLABLE TIKEUT WI NIEUNCIEUC +0x878D 0xB4AA #HANGUL SYLLABLE TIKEUT WI NIEUNHIEUH +0x878E 0xB4AB #HANGUL SYLLABLE TIKEUT WI TIKEUT +0x878F 0xB4AD #HANGUL SYLLABLE TIKEUT WI RIEULKIYEOK +0x8790 0xB4AE #HANGUL SYLLABLE TIKEUT WI RIEULMIEUM +0x8791 0xB4AF #HANGUL SYLLABLE TIKEUT WI RIEULPIEUP +0x8792 0xB4B0 #HANGUL SYLLABLE TIKEUT WI RIEULSIOS +0x8793 0xB4B1 #HANGUL SYLLABLE TIKEUT WI RIEULTHIEUTH +0x8794 0xB4B2 #HANGUL SYLLABLE TIKEUT WI RIEULPHIEUPH +0x8795 0xB4B3 #HANGUL SYLLABLE TIKEUT WI RIEULHIEUH +0x8796 0xB4B6 #HANGUL SYLLABLE TIKEUT WI PIEUPSIOS +0x8797 0xB4BA #HANGUL SYLLABLE TIKEUT WI CIEUC +0x8798 0xB4BB #HANGUL SYLLABLE TIKEUT WI CHIEUCH +0x8799 0xB4BC #HANGUL SYLLABLE TIKEUT WI KHIEUKH +0x879A 0xB4BD #HANGUL SYLLABLE TIKEUT WI THIEUTH +0x879B 0xB4BE #HANGUL SYLLABLE TIKEUT WI PHIEUPH +0x879C 0xB4BF #HANGUL SYLLABLE TIKEUT WI HIEUH +0x879D 0xB4A6 #HANGUL SYLLABLE TIKEUT WI SSANGKIYEOK +0x879E 0xB4B8 #HANGUL SYLLABLE TIKEUT WI SSANGSIOS +0x879F 0xB4F9 #HANGUL SYLLABLE TIKEUT YI KIYEOK +0x87A0 0xB4FB #HANGUL SYLLABLE TIKEUT YI KIYEOKSIOS +0x87A1 0xB4FD #HANGUL SYLLABLE TIKEUT YI NIEUNCIEUC +0x87A2 0xB4FE #HANGUL SYLLABLE TIKEUT YI NIEUNHIEUH +0x87A3 0xB4FF #HANGUL SYLLABLE TIKEUT YI TIKEUT +0x87A4 0xB501 #HANGUL SYLLABLE TIKEUT YI RIEULKIYEOK +0x87A5 0xB502 #HANGUL SYLLABLE TIKEUT YI RIEULMIEUM +0x87A6 0xB503 #HANGUL SYLLABLE TIKEUT YI RIEULPIEUP +0x87A7 0xB504 #HANGUL SYLLABLE TIKEUT YI RIEULSIOS +0x87A8 0xB505 #HANGUL SYLLABLE TIKEUT YI RIEULTHIEUTH +0x87A9 0xB506 #HANGUL SYLLABLE TIKEUT YI RIEULPHIEUPH +0x87AA 0xB507 #HANGUL SYLLABLE TIKEUT YI RIEULHIEUH +0x87AB 0xB508 #HANGUL SYLLABLE TIKEUT YI MIEUM +0x87AC 0xB50A #HANGUL SYLLABLE TIKEUT YI PIEUPSIOS +0x87AD 0xB50B #HANGUL SYLLABLE TIKEUT YI SIOS +0x87AE 0xB50E #HANGUL SYLLABLE TIKEUT YI CIEUC +0x87AF 0xB50F #HANGUL SYLLABLE TIKEUT YI CHIEUCH +0x87B0 0xB510 #HANGUL SYLLABLE TIKEUT YI KHIEUKH +0x87B1 0xB511 #HANGUL SYLLABLE TIKEUT YI THIEUTH +0x87B2 0xB512 #HANGUL SYLLABLE TIKEUT YI PHIEUPH +0x87B3 0xB513 #HANGUL SYLLABLE TIKEUT YI HIEUH +0x87B4 0xB4FA #HANGUL SYLLABLE TIKEUT YI SSANGKIYEOK +0x87B5 0xB50C #HANGUL SYLLABLE TIKEUT YI SSANGSIOS +0x87B6 0xB3E1 #HANGUL SYLLABLE TIKEUT WA KIYEOK +0x87B7 0xB3E3 #HANGUL SYLLABLE TIKEUT WA KIYEOKSIOS +0x87B8 0xB3E5 #HANGUL SYLLABLE TIKEUT WA NIEUNCIEUC +0x87B9 0xB3E6 #HANGUL SYLLABLE TIKEUT WA NIEUNHIEUH +0x87BA 0xB3E7 #HANGUL SYLLABLE TIKEUT WA TIKEUT +0x87BB 0xB3E9 #HANGUL SYLLABLE TIKEUT WA RIEULKIYEOK +0x87BC 0xB3EA #HANGUL SYLLABLE TIKEUT WA RIEULMIEUM +0x87BD 0xB3EB #HANGUL SYLLABLE TIKEUT WA RIEULPIEUP +0x87BE 0xB3EC #HANGUL SYLLABLE TIKEUT WA RIEULSIOS +0x87BF 0xB3ED #HANGUL SYLLABLE TIKEUT WA RIEULTHIEUTH +0x87C0 0xB3EE #HANGUL SYLLABLE TIKEUT WA RIEULPHIEUPH +0x87C1 0xB3EF #HANGUL SYLLABLE TIKEUT WA RIEULHIEUH +0x87C2 0xB3F0 #HANGUL SYLLABLE TIKEUT WA MIEUM +0x87C3 0xB3F1 #HANGUL SYLLABLE TIKEUT WA PIEUP +0x87C4 0xB3F2 #HANGUL SYLLABLE TIKEUT WA PIEUPSIOS +0x87C5 0xB3F3 #HANGUL SYLLABLE TIKEUT WA SIOS +0x87C6 0xB3F5 #HANGUL SYLLABLE TIKEUT WA IEUNG +0x87C7 0xB3F6 #HANGUL SYLLABLE TIKEUT WA CIEUC +0x87C8 0xB3F7 #HANGUL SYLLABLE TIKEUT WA CHIEUCH +0x87C9 0xB3F8 #HANGUL SYLLABLE TIKEUT WA KHIEUKH +0x87CA 0xB3F9 #HANGUL SYLLABLE TIKEUT WA THIEUTH +0x87CB 0xB3FA #HANGUL SYLLABLE TIKEUT WA PHIEUPH +0x87CC 0xB3FB #HANGUL SYLLABLE TIKEUT WA HIEUH +0x87CD 0xB3E2 #HANGUL SYLLABLE TIKEUT WA SSANGKIYEOK +0x87CE 0xB3F4 #HANGUL SYLLABLE TIKEUT WA SSANGSIOS +0x87CF 0xB46D #HANGUL SYLLABLE TIKEUT WEO KIYEOK +0x87D0 0xB46F #HANGUL SYLLABLE TIKEUT WEO KIYEOKSIOS +0x87D1 0xB471 #HANGUL SYLLABLE TIKEUT WEO NIEUNCIEUC +0x87D2 0xB472 #HANGUL SYLLABLE TIKEUT WEO NIEUNHIEUH +0x87D3 0xB473 #HANGUL SYLLABLE TIKEUT WEO TIKEUT +0x87D4 0xB475 #HANGUL SYLLABLE TIKEUT WEO RIEULKIYEOK +0x87D5 0xB476 #HANGUL SYLLABLE TIKEUT WEO RIEULMIEUM +0x87D6 0xB477 #HANGUL SYLLABLE TIKEUT WEO RIEULPIEUP +0x87D7 0xB478 #HANGUL SYLLABLE TIKEUT WEO RIEULSIOS +0x87D8 0xB479 #HANGUL SYLLABLE TIKEUT WEO RIEULTHIEUTH +0x87D9 0xB47A #HANGUL SYLLABLE TIKEUT WEO RIEULPHIEUPH +0x87DA 0xB47B #HANGUL SYLLABLE TIKEUT WEO RIEULHIEUH +0x87DB 0xB47D #HANGUL SYLLABLE TIKEUT WEO PIEUP +0x87DC 0xB47E #HANGUL SYLLABLE TIKEUT WEO PIEUPSIOS +0x87DD 0xB481 #HANGUL SYLLABLE TIKEUT WEO IEUNG +0x87DE 0xB482 #HANGUL SYLLABLE TIKEUT WEO CIEUC +0x87DF 0xB483 #HANGUL SYLLABLE TIKEUT WEO CHIEUCH +0x87E0 0xB484 #HANGUL SYLLABLE TIKEUT WEO KHIEUKH +0x87E1 0xB485 #HANGUL SYLLABLE TIKEUT WEO THIEUTH +0x87E2 0xB486 #HANGUL SYLLABLE TIKEUT WEO PHIEUPH +0x87E3 0xB487 #HANGUL SYLLABLE TIKEUT WEO HIEUH +0x87E4 0xB46E #HANGUL SYLLABLE TIKEUT WEO SSANGKIYEOK +0x87E5 0xB3FD #HANGUL SYLLABLE TIKEUT WAE KIYEOK +0x87E6 0xB3FF #HANGUL SYLLABLE TIKEUT WAE KIYEOKSIOS +0x87E7 0xB401 #HANGUL SYLLABLE TIKEUT WAE NIEUNCIEUC +0x87E8 0xB402 #HANGUL SYLLABLE TIKEUT WAE NIEUNHIEUH +0x87E9 0xB403 #HANGUL SYLLABLE TIKEUT WAE TIKEUT +0x87EA 0xB405 #HANGUL SYLLABLE TIKEUT WAE RIEULKIYEOK +0x87EB 0xB406 #HANGUL SYLLABLE TIKEUT WAE RIEULMIEUM +0x87EC 0xB407 #HANGUL SYLLABLE TIKEUT WAE RIEULPIEUP +0x87ED 0xB408 #HANGUL SYLLABLE TIKEUT WAE RIEULSIOS +0x87EE 0xB409 #HANGUL SYLLABLE TIKEUT WAE RIEULTHIEUTH +0x87EF 0xB40A #HANGUL SYLLABLE TIKEUT WAE RIEULPHIEUPH +0x87F0 0xB40B #HANGUL SYLLABLE TIKEUT WAE RIEULHIEUH +0x87F1 0xB40C #HANGUL SYLLABLE TIKEUT WAE MIEUM +0x87F2 0xB40D #HANGUL SYLLABLE TIKEUT WAE PIEUP +0x87F3 0xB40E #HANGUL SYLLABLE TIKEUT WAE PIEUPSIOS +0x87F4 0xB40F #HANGUL SYLLABLE TIKEUT WAE SIOS +0x87F5 0xB411 #HANGUL SYLLABLE TIKEUT WAE IEUNG +0x87F6 0xB412 #HANGUL SYLLABLE TIKEUT WAE CIEUC +0x87F7 0xB413 #HANGUL SYLLABLE TIKEUT WAE CHIEUCH +0x87F8 0xB414 #HANGUL SYLLABLE TIKEUT WAE KHIEUKH +0x87F9 0xB415 #HANGUL SYLLABLE TIKEUT WAE THIEUTH +0x87FA 0xB416 #HANGUL SYLLABLE TIKEUT WAE PHIEUPH +0x87FB 0xB417 #HANGUL SYLLABLE TIKEUT WAE HIEUH +0x87FC 0xB3FE #HANGUL SYLLABLE TIKEUT WAE SSANGKIYEOK +0x87FD 0xB489 #HANGUL SYLLABLE TIKEUT WE KIYEOK +0x87FE 0xB48B #HANGUL SYLLABLE TIKEUT WE KIYEOKSIOS +0x8841 0xB48C #HANGUL SYLLABLE TIKEUT WE NIEUN +0x8842 0xB48D #HANGUL SYLLABLE TIKEUT WE NIEUNCIEUC +0x8843 0xB48E #HANGUL SYLLABLE TIKEUT WE NIEUNHIEUH +0x8844 0xB48F #HANGUL SYLLABLE TIKEUT WE TIKEUT +0x8845 0xB490 #HANGUL SYLLABLE TIKEUT WE RIEUL +0x8846 0xB491 #HANGUL SYLLABLE TIKEUT WE RIEULKIYEOK +0x8847 0xB492 #HANGUL SYLLABLE TIKEUT WE RIEULMIEUM +0x8848 0xB493 #HANGUL SYLLABLE TIKEUT WE RIEULPIEUP +0x8849 0xB494 #HANGUL SYLLABLE TIKEUT WE RIEULSIOS +0x884A 0xB495 #HANGUL SYLLABLE TIKEUT WE RIEULTHIEUTH +0x884B 0xB496 #HANGUL SYLLABLE TIKEUT WE RIEULPHIEUPH +0x884C 0xB497 #HANGUL SYLLABLE TIKEUT WE RIEULHIEUH +0x884D 0xB498 #HANGUL SYLLABLE TIKEUT WE MIEUM +0x884E 0xB499 #HANGUL SYLLABLE TIKEUT WE PIEUP +0x884F 0xB49A #HANGUL SYLLABLE TIKEUT WE PIEUPSIOS +0x8850 0xB49B #HANGUL SYLLABLE TIKEUT WE SIOS +0x8851 0xB49E #HANGUL SYLLABLE TIKEUT WE CIEUC +0x8852 0xB49F #HANGUL SYLLABLE TIKEUT WE CHIEUCH +0x8853 0xB4A0 #HANGUL SYLLABLE TIKEUT WE KHIEUKH +0x8854 0xB4A1 #HANGUL SYLLABLE TIKEUT WE THIEUTH +0x8855 0xB4A2 #HANGUL SYLLABLE TIKEUT WE PHIEUPH +0x8856 0xB4A3 #HANGUL SYLLABLE TIKEUT WE HIEUH +0x8857 0xB48A #HANGUL SYLLABLE TIKEUT WE SSANGKIYEOK +0x8858 0xB49C #HANGUL SYLLABLE TIKEUT WE SSANGSIOS +0x8859 0xB77F #HANGUL SYLLABLE RIEUL A KIYEOKSIOS +0x885A 0xB781 #HANGUL SYLLABLE RIEUL A NIEUNCIEUC +0x8861 0xB782 #HANGUL SYLLABLE RIEUL A NIEUNHIEUH +0x8862 0xB783 #HANGUL SYLLABLE RIEUL A TIKEUT +0x8863 0xB785 #HANGUL SYLLABLE RIEUL A RIEULKIYEOK +0x8864 0xB786 #HANGUL SYLLABLE RIEUL A RIEULMIEUM +0x8865 0xB787 #HANGUL SYLLABLE RIEUL A RIEULPIEUP +0x8866 0xB788 #HANGUL SYLLABLE RIEUL A RIEULSIOS +0x8867 0xB789 #HANGUL SYLLABLE RIEUL A RIEULTHIEUTH +0x8868 0xB78A #HANGUL SYLLABLE RIEUL A RIEULPHIEUPH +0x8869 0xB78B #HANGUL SYLLABLE RIEUL A RIEULHIEUH +0x886A 0xB78E #HANGUL SYLLABLE RIEUL A PIEUPSIOS +0x886B 0xB793 #HANGUL SYLLABLE RIEUL A CHIEUCH +0x886C 0xB794 #HANGUL SYLLABLE RIEUL A KHIEUKH +0x886D 0xB795 #HANGUL SYLLABLE RIEUL A THIEUTH +0x886E 0xB77E #HANGUL SYLLABLE RIEUL A SSANGKIYEOK +0x886F 0xB7B7 #HANGUL SYLLABLE RIEUL YA KIYEOKSIOS +0x8870 0xB7B9 #HANGUL SYLLABLE RIEUL YA NIEUNCIEUC +0x8871 0xB7BA #HANGUL SYLLABLE RIEUL YA NIEUNHIEUH +0x8872 0xB7BB #HANGUL SYLLABLE RIEUL YA TIKEUT +0x8873 0xB7BD #HANGUL SYLLABLE RIEUL YA RIEULKIYEOK +0x8874 0xB7BE #HANGUL SYLLABLE RIEUL YA RIEULMIEUM +0x8875 0xB7BF #HANGUL SYLLABLE RIEUL YA RIEULPIEUP +0x8876 0xB7C0 #HANGUL SYLLABLE RIEUL YA RIEULSIOS +0x8877 0xB7C1 #HANGUL SYLLABLE RIEUL YA RIEULTHIEUTH +0x8878 0xB7C2 #HANGUL SYLLABLE RIEUL YA RIEULPHIEUPH +0x8879 0xB7C3 #HANGUL SYLLABLE RIEUL YA RIEULHIEUH +0x887A 0xB7C6 #HANGUL SYLLABLE RIEUL YA PIEUPSIOS +0x8881 0xB7CA #HANGUL SYLLABLE RIEUL YA CIEUC +0x8882 0xB7CB #HANGUL SYLLABLE RIEUL YA CHIEUCH +0x8883 0xB7CC #HANGUL SYLLABLE RIEUL YA KHIEUKH +0x8884 0xB7CD #HANGUL SYLLABLE RIEUL YA THIEUTH +0x8885 0xB7CE #HANGUL SYLLABLE RIEUL YA PHIEUPH +0x8886 0xB7CF #HANGUL SYLLABLE RIEUL YA HIEUH +0x8887 0xB7B6 #HANGUL SYLLABLE RIEUL YA SSANGKIYEOK +0x8888 0xB7C8 #HANGUL SYLLABLE RIEUL YA SSANGSIOS +0x8889 0xB7EF #HANGUL SYLLABLE RIEUL EO KIYEOKSIOS +0x888A 0xB7F1 #HANGUL SYLLABLE RIEUL EO NIEUNCIEUC +0x888B 0xB7F2 #HANGUL SYLLABLE RIEUL EO NIEUNHIEUH +0x888C 0xB7F3 #HANGUL SYLLABLE RIEUL EO TIKEUT +0x888D 0xB7F5 #HANGUL SYLLABLE RIEUL EO RIEULKIYEOK +0x888E 0xB7F6 #HANGUL SYLLABLE RIEUL EO RIEULMIEUM +0x888F 0xB7F7 #HANGUL SYLLABLE RIEUL EO RIEULPIEUP +0x8890 0xB7F8 #HANGUL SYLLABLE RIEUL EO RIEULSIOS +0x8891 0xB7F9 #HANGUL SYLLABLE RIEUL EO RIEULTHIEUTH +0x8892 0xB7FA #HANGUL SYLLABLE RIEUL EO RIEULPHIEUPH +0x8893 0xB7FB #HANGUL SYLLABLE RIEUL EO RIEULHIEUH +0x8894 0xB7FE #HANGUL SYLLABLE RIEUL EO PIEUPSIOS +0x8895 0xB802 #HANGUL SYLLABLE RIEUL EO CIEUC +0x8896 0xB803 #HANGUL SYLLABLE RIEUL EO CHIEUCH +0x8897 0xB804 #HANGUL SYLLABLE RIEUL EO KHIEUKH +0x8898 0xB805 #HANGUL SYLLABLE RIEUL EO THIEUTH +0x8899 0xB7EE #HANGUL SYLLABLE RIEUL EO SSANGKIYEOK +0x889A 0xB827 #HANGUL SYLLABLE RIEUL YEO KIYEOKSIOS +0x889B 0xB829 #HANGUL SYLLABLE RIEUL YEO NIEUNCIEUC +0x889C 0xB82A #HANGUL SYLLABLE RIEUL YEO NIEUNHIEUH +0x889D 0xB82B #HANGUL SYLLABLE RIEUL YEO TIKEUT +0x889E 0xB82D #HANGUL SYLLABLE RIEUL YEO RIEULKIYEOK +0x889F 0xB82E #HANGUL SYLLABLE RIEUL YEO RIEULMIEUM +0x88A0 0xB82F #HANGUL SYLLABLE RIEUL YEO RIEULPIEUP +0x88A1 0xB830 #HANGUL SYLLABLE RIEUL YEO RIEULSIOS +0x88A2 0xB831 #HANGUL SYLLABLE RIEUL YEO RIEULTHIEUTH +0x88A3 0xB832 #HANGUL SYLLABLE RIEUL YEO RIEULPHIEUPH +0x88A4 0xB833 #HANGUL SYLLABLE RIEUL YEO RIEULHIEUH +0x88A5 0xB836 #HANGUL SYLLABLE RIEUL YEO PIEUPSIOS +0x88A6 0xB83A #HANGUL SYLLABLE RIEUL YEO CIEUC +0x88A7 0xB83B #HANGUL SYLLABLE RIEUL YEO CHIEUCH +0x88A8 0xB83C #HANGUL SYLLABLE RIEUL YEO KHIEUKH +0x88A9 0xB83D #HANGUL SYLLABLE RIEUL YEO THIEUTH +0x88AA 0xB83E #HANGUL SYLLABLE RIEUL YEO PHIEUPH +0x88AB 0xB83F #HANGUL SYLLABLE RIEUL YEO HIEUH +0x88AC 0xB826 #HANGUL SYLLABLE RIEUL YEO SSANGKIYEOK +0x88AD 0xB85F #HANGUL SYLLABLE RIEUL O KIYEOKSIOS +0x88AE 0xB861 #HANGUL SYLLABLE RIEUL O NIEUNCIEUC +0x88AF 0xB862 #HANGUL SYLLABLE RIEUL O NIEUNHIEUH +0x88B0 0xB863 #HANGUL SYLLABLE RIEUL O TIKEUT +0x88B1 0xB865 #HANGUL SYLLABLE RIEUL O RIEULKIYEOK +0x88B2 0xB866 #HANGUL SYLLABLE RIEUL O RIEULMIEUM +0x88B3 0xB867 #HANGUL SYLLABLE RIEUL O RIEULPIEUP +0x88B4 0xB868 #HANGUL SYLLABLE RIEUL O RIEULSIOS +0x88B5 0xB869 #HANGUL SYLLABLE RIEUL O RIEULTHIEUTH +0x88B6 0xB86A #HANGUL SYLLABLE RIEUL O RIEULPHIEUPH +0x88B7 0xB86B #HANGUL SYLLABLE RIEUL O RIEULHIEUH +0x88B8 0xB86E #HANGUL SYLLABLE RIEUL O PIEUPSIOS +0x88B9 0xB872 #HANGUL SYLLABLE RIEUL O CIEUC +0x88BA 0xB873 #HANGUL SYLLABLE RIEUL O CHIEUCH +0x88BB 0xB874 #HANGUL SYLLABLE RIEUL O KHIEUKH +0x88BC 0xB875 #HANGUL SYLLABLE RIEUL O THIEUTH +0x88BD 0xB877 #HANGUL SYLLABLE RIEUL O HIEUH +0x88BE 0xB85E #HANGUL SYLLABLE RIEUL O SSANGKIYEOK +0x88BF 0xB870 #HANGUL SYLLABLE RIEUL O SSANGSIOS +0x88C0 0xB8CD #HANGUL SYLLABLE RIEUL YO KIYEOK +0x88C1 0xB8CF #HANGUL SYLLABLE RIEUL YO KIYEOKSIOS +0x88C2 0xB8D1 #HANGUL SYLLABLE RIEUL YO NIEUNCIEUC +0x88C3 0xB8D2 #HANGUL SYLLABLE RIEUL YO NIEUNHIEUH +0x88C4 0xB8D3 #HANGUL SYLLABLE RIEUL YO TIKEUT +0x88C5 0xB8D5 #HANGUL SYLLABLE RIEUL YO RIEULKIYEOK +0x88C6 0xB8D6 #HANGUL SYLLABLE RIEUL YO RIEULMIEUM +0x88C7 0xB8D7 #HANGUL SYLLABLE RIEUL YO RIEULPIEUP +0x88C8 0xB8D8 #HANGUL SYLLABLE RIEUL YO RIEULSIOS +0x88C9 0xB8D9 #HANGUL SYLLABLE RIEUL YO RIEULTHIEUTH +0x88CA 0xB8DA #HANGUL SYLLABLE RIEUL YO RIEULPHIEUPH +0x88CB 0xB8DB #HANGUL SYLLABLE RIEUL YO RIEULHIEUH +0x88CC 0xB8DE #HANGUL SYLLABLE RIEUL YO PIEUPSIOS +0x88CD 0xB8E2 #HANGUL SYLLABLE RIEUL YO CIEUC +0x88CE 0xB8E3 #HANGUL SYLLABLE RIEUL YO CHIEUCH +0x88CF 0xB8E4 #HANGUL SYLLABLE RIEUL YO KHIEUKH +0x88D0 0xB8E5 #HANGUL SYLLABLE RIEUL YO THIEUTH +0x88D1 0xB8E6 #HANGUL SYLLABLE RIEUL YO PHIEUPH +0x88D2 0xB8E7 #HANGUL SYLLABLE RIEUL YO HIEUH +0x88D3 0xB8CE #HANGUL SYLLABLE RIEUL YO SSANGKIYEOK +0x88D4 0xB8E0 #HANGUL SYLLABLE RIEUL YO SSANGSIOS +0x88D5 0xB8EB #HANGUL SYLLABLE RIEUL U KIYEOKSIOS +0x88D6 0xB8ED #HANGUL SYLLABLE RIEUL U NIEUNCIEUC +0x88D7 0xB8EE #HANGUL SYLLABLE RIEUL U NIEUNHIEUH +0x88D8 0xB8EF #HANGUL SYLLABLE RIEUL U TIKEUT +0x88D9 0xB8F1 #HANGUL SYLLABLE RIEUL U RIEULKIYEOK +0x88DA 0xB8F2 #HANGUL SYLLABLE RIEUL U RIEULMIEUM +0x88DB 0xB8F3 #HANGUL SYLLABLE RIEUL U RIEULPIEUP +0x88DC 0xB8F4 #HANGUL SYLLABLE RIEUL U RIEULSIOS +0x88DD 0xB8F5 #HANGUL SYLLABLE RIEUL U RIEULTHIEUTH +0x88DE 0xB8F6 #HANGUL SYLLABLE RIEUL U RIEULPHIEUPH +0x88DF 0xB8F7 #HANGUL SYLLABLE RIEUL U RIEULHIEUH +0x88E0 0xB8FA #HANGUL SYLLABLE RIEUL U PIEUPSIOS +0x88E1 0xB8FE #HANGUL SYLLABLE RIEUL U CIEUC +0x88E2 0xB8FF #HANGUL SYLLABLE RIEUL U CHIEUCH +0x88E3 0xB900 #HANGUL SYLLABLE RIEUL U KHIEUKH +0x88E4 0xB901 #HANGUL SYLLABLE RIEUL U THIEUTH +0x88E5 0xB902 #HANGUL SYLLABLE RIEUL U PHIEUPH +0x88E6 0xB903 #HANGUL SYLLABLE RIEUL U HIEUH +0x88E7 0xB8EA #HANGUL SYLLABLE RIEUL U SSANGKIYEOK +0x88E8 0xB8FC #HANGUL SYLLABLE RIEUL U SSANGSIOS +0x88E9 0xB95B #HANGUL SYLLABLE RIEUL YU KIYEOKSIOS +0x88EA 0xB95D #HANGUL SYLLABLE RIEUL YU NIEUNCIEUC +0x88EB 0xB95E #HANGUL SYLLABLE RIEUL YU NIEUNHIEUH +0x88EC 0xB95F #HANGUL SYLLABLE RIEUL YU TIKEUT +0x88ED 0xB961 #HANGUL SYLLABLE RIEUL YU RIEULKIYEOK +0x88EE 0xB962 #HANGUL SYLLABLE RIEUL YU RIEULMIEUM +0x88EF 0xB963 #HANGUL SYLLABLE RIEUL YU RIEULPIEUP +0x88F0 0xB964 #HANGUL SYLLABLE RIEUL YU RIEULSIOS +0x88F1 0xB965 #HANGUL SYLLABLE RIEUL YU RIEULTHIEUTH +0x88F2 0xB966 #HANGUL SYLLABLE RIEUL YU RIEULPHIEUPH +0x88F3 0xB967 #HANGUL SYLLABLE RIEUL YU RIEULHIEUH +0x88F4 0xB96A #HANGUL SYLLABLE RIEUL YU PIEUPSIOS +0x88F5 0xB96E #HANGUL SYLLABLE RIEUL YU CIEUC +0x88F6 0xB96F #HANGUL SYLLABLE RIEUL YU CHIEUCH +0x88F7 0xB970 #HANGUL SYLLABLE RIEUL YU KHIEUKH +0x88F8 0xB971 #HANGUL SYLLABLE RIEUL YU THIEUTH +0x88F9 0xB972 #HANGUL SYLLABLE RIEUL YU PHIEUPH +0x88FA 0xB973 #HANGUL SYLLABLE RIEUL YU HIEUH +0x88FB 0xB95A #HANGUL SYLLABLE RIEUL YU SSANGKIYEOK +0x88FC 0xB96C #HANGUL SYLLABLE RIEUL YU SSANGSIOS +0x88FD 0xB977 #HANGUL SYLLABLE RIEUL EU KIYEOKSIOS +0x88FE 0xB979 #HANGUL SYLLABLE RIEUL EU NIEUNCIEUC +0x8941 0xB97A #HANGUL SYLLABLE RIEUL EU NIEUNHIEUH +0x8942 0xB97B #HANGUL SYLLABLE RIEUL EU TIKEUT +0x8943 0xB97D #HANGUL SYLLABLE RIEUL EU RIEULKIYEOK +0x8944 0xB97E #HANGUL SYLLABLE RIEUL EU RIEULMIEUM +0x8945 0xB97F #HANGUL SYLLABLE RIEUL EU RIEULPIEUP +0x8946 0xB980 #HANGUL SYLLABLE RIEUL EU RIEULSIOS +0x8947 0xB981 #HANGUL SYLLABLE RIEUL EU RIEULTHIEUTH +0x8948 0xB982 #HANGUL SYLLABLE RIEUL EU RIEULPHIEUPH +0x8949 0xB983 #HANGUL SYLLABLE RIEUL EU RIEULHIEUH +0x894A 0xB986 #HANGUL SYLLABLE RIEUL EU PIEUPSIOS +0x894B 0xB98B #HANGUL SYLLABLE RIEUL EU CHIEUCH +0x894C 0xB98C #HANGUL SYLLABLE RIEUL EU KHIEUKH +0x894D 0xB98F #HANGUL SYLLABLE RIEUL EU HIEUH +0x894E 0xB976 #HANGUL SYLLABLE RIEUL EU SSANGKIYEOK +0x894F 0xB988 #HANGUL SYLLABLE RIEUL EU SSANGSIOS +0x8950 0xB9AF #HANGUL SYLLABLE RIEUL I KIYEOKSIOS +0x8951 0xB9B1 #HANGUL SYLLABLE RIEUL I NIEUNCIEUC +0x8952 0xB9B2 #HANGUL SYLLABLE RIEUL I NIEUNHIEUH +0x8953 0xB9B3 #HANGUL SYLLABLE RIEUL I TIKEUT +0x8954 0xB9B5 #HANGUL SYLLABLE RIEUL I RIEULKIYEOK +0x8955 0xB9B6 #HANGUL SYLLABLE RIEUL I RIEULMIEUM +0x8956 0xB9B7 #HANGUL SYLLABLE RIEUL I RIEULPIEUP +0x8957 0xB9B8 #HANGUL SYLLABLE RIEUL I RIEULSIOS +0x8958 0xB9B9 #HANGUL SYLLABLE RIEUL I RIEULTHIEUTH +0x8959 0xB9BA #HANGUL SYLLABLE RIEUL I RIEULPHIEUPH +0x895A 0xB9BB #HANGUL SYLLABLE RIEUL I RIEULHIEUH +0x8961 0xB9BE #HANGUL SYLLABLE RIEUL I PIEUPSIOS +0x8962 0xB9C2 #HANGUL SYLLABLE RIEUL I CIEUC +0x8963 0xB9C3 #HANGUL SYLLABLE RIEUL I CHIEUCH +0x8964 0xB9C4 #HANGUL SYLLABLE RIEUL I KHIEUKH +0x8965 0xB9C5 #HANGUL SYLLABLE RIEUL I THIEUTH +0x8966 0xB9C7 #HANGUL SYLLABLE RIEUL I HIEUH +0x8967 0xB9AE #HANGUL SYLLABLE RIEUL I SSANGKIYEOK +0x8968 0xB9C0 #HANGUL SYLLABLE RIEUL I SSANGSIOS +0x8969 0xB79B #HANGUL SYLLABLE RIEUL AE KIYEOKSIOS +0x896A 0xB79D #HANGUL SYLLABLE RIEUL AE NIEUNCIEUC +0x896B 0xB79E #HANGUL SYLLABLE RIEUL AE NIEUNHIEUH +0x896C 0xB79F #HANGUL SYLLABLE RIEUL AE TIKEUT +0x896D 0xB7A1 #HANGUL SYLLABLE RIEUL AE RIEULKIYEOK +0x896E 0xB7A2 #HANGUL SYLLABLE RIEUL AE RIEULMIEUM +0x896F 0xB7A3 #HANGUL SYLLABLE RIEUL AE RIEULPIEUP +0x8970 0xB7A4 #HANGUL SYLLABLE RIEUL AE RIEULSIOS +0x8971 0xB7A5 #HANGUL SYLLABLE RIEUL AE RIEULTHIEUTH +0x8972 0xB7A6 #HANGUL SYLLABLE RIEUL AE RIEULPHIEUPH +0x8973 0xB7A7 #HANGUL SYLLABLE RIEUL AE RIEULHIEUH +0x8974 0xB7AA #HANGUL SYLLABLE RIEUL AE PIEUPSIOS +0x8975 0xB7AE #HANGUL SYLLABLE RIEUL AE CIEUC +0x8976 0xB7AF #HANGUL SYLLABLE RIEUL AE CHIEUCH +0x8977 0xB7B0 #HANGUL SYLLABLE RIEUL AE KHIEUKH +0x8978 0xB7B1 #HANGUL SYLLABLE RIEUL AE THIEUTH +0x8979 0xB7B2 #HANGUL SYLLABLE RIEUL AE PHIEUPH +0x897A 0xB7B3 #HANGUL SYLLABLE RIEUL AE HIEUH +0x8981 0xB79A #HANGUL SYLLABLE RIEUL AE SSANGKIYEOK +0x8982 0xB7D1 #HANGUL SYLLABLE RIEUL YAE KIYEOK +0x8983 0xB7D3 #HANGUL SYLLABLE RIEUL YAE KIYEOKSIOS +0x8984 0xB7D4 #HANGUL SYLLABLE RIEUL YAE NIEUN +0x8985 0xB7D5 #HANGUL SYLLABLE RIEUL YAE NIEUNCIEUC +0x8986 0xB7D6 #HANGUL SYLLABLE RIEUL YAE NIEUNHIEUH +0x8987 0xB7D7 #HANGUL SYLLABLE RIEUL YAE TIKEUT +0x8988 0xB7D8 #HANGUL SYLLABLE RIEUL YAE RIEUL +0x8989 0xB7D9 #HANGUL SYLLABLE RIEUL YAE RIEULKIYEOK +0x898A 0xB7DA #HANGUL SYLLABLE RIEUL YAE RIEULMIEUM +0x898B 0xB7DB #HANGUL SYLLABLE RIEUL YAE RIEULPIEUP +0x898C 0xB7DC #HANGUL SYLLABLE RIEUL YAE RIEULSIOS +0x898D 0xB7DD #HANGUL SYLLABLE RIEUL YAE RIEULTHIEUTH +0x898E 0xB7DE #HANGUL SYLLABLE RIEUL YAE RIEULPHIEUPH +0x898F 0xB7DF #HANGUL SYLLABLE RIEUL YAE RIEULHIEUH +0x8990 0xB7E0 #HANGUL SYLLABLE RIEUL YAE MIEUM +0x8991 0xB7E1 #HANGUL SYLLABLE RIEUL YAE PIEUP +0x8992 0xB7E2 #HANGUL SYLLABLE RIEUL YAE PIEUPSIOS +0x8993 0xB7E3 #HANGUL SYLLABLE RIEUL YAE SIOS +0x8994 0xB7E5 #HANGUL SYLLABLE RIEUL YAE IEUNG +0x8995 0xB7E6 #HANGUL SYLLABLE RIEUL YAE CIEUC +0x8996 0xB7E7 #HANGUL SYLLABLE RIEUL YAE CHIEUCH +0x8997 0xB7E8 #HANGUL SYLLABLE RIEUL YAE KHIEUKH +0x8998 0xB7E9 #HANGUL SYLLABLE RIEUL YAE THIEUTH +0x8999 0xB7EA #HANGUL SYLLABLE RIEUL YAE PHIEUPH +0x899A 0xB7EB #HANGUL SYLLABLE RIEUL YAE HIEUH +0x899B 0xB7D2 #HANGUL SYLLABLE RIEUL YAE SSANGKIYEOK +0x899C 0xB7E4 #HANGUL SYLLABLE RIEUL YAE SSANGSIOS +0x899D 0xB80B #HANGUL SYLLABLE RIEUL E KIYEOKSIOS +0x899E 0xB80D #HANGUL SYLLABLE RIEUL E NIEUNCIEUC +0x899F 0xB80E #HANGUL SYLLABLE RIEUL E NIEUNHIEUH +0x89A0 0xB80F #HANGUL SYLLABLE RIEUL E TIKEUT +0x89A1 0xB811 #HANGUL SYLLABLE RIEUL E RIEULKIYEOK +0x89A2 0xB812 #HANGUL SYLLABLE RIEUL E RIEULMIEUM +0x89A3 0xB813 #HANGUL SYLLABLE RIEUL E RIEULPIEUP +0x89A4 0xB814 #HANGUL SYLLABLE RIEUL E RIEULSIOS +0x89A5 0xB815 #HANGUL SYLLABLE RIEUL E RIEULTHIEUTH +0x89A6 0xB816 #HANGUL SYLLABLE RIEUL E RIEULPHIEUPH +0x89A7 0xB817 #HANGUL SYLLABLE RIEUL E RIEULHIEUH +0x89A8 0xB81A #HANGUL SYLLABLE RIEUL E PIEUPSIOS +0x89A9 0xB81E #HANGUL SYLLABLE RIEUL E CIEUC +0x89AA 0xB81F #HANGUL SYLLABLE RIEUL E CHIEUCH +0x89AB 0xB820 #HANGUL SYLLABLE RIEUL E KHIEUKH +0x89AC 0xB821 #HANGUL SYLLABLE RIEUL E THIEUTH +0x89AD 0xB822 #HANGUL SYLLABLE RIEUL E PHIEUPH +0x89AE 0xB823 #HANGUL SYLLABLE RIEUL E HIEUH +0x89AF 0xB80A #HANGUL SYLLABLE RIEUL E SSANGKIYEOK +0x89B0 0xB841 #HANGUL SYLLABLE RIEUL YE KIYEOK +0x89B1 0xB843 #HANGUL SYLLABLE RIEUL YE KIYEOKSIOS +0x89B2 0xB845 #HANGUL SYLLABLE RIEUL YE NIEUNCIEUC +0x89B3 0xB846 #HANGUL SYLLABLE RIEUL YE NIEUNHIEUH +0x89B4 0xB847 #HANGUL SYLLABLE RIEUL YE TIKEUT +0x89B5 0xB849 #HANGUL SYLLABLE RIEUL YE RIEULKIYEOK +0x89B6 0xB84A #HANGUL SYLLABLE RIEUL YE RIEULMIEUM +0x89B7 0xB84B #HANGUL SYLLABLE RIEUL YE RIEULPIEUP +0x89B8 0xB84C #HANGUL SYLLABLE RIEUL YE RIEULSIOS +0x89B9 0xB84D #HANGUL SYLLABLE RIEUL YE RIEULTHIEUTH +0x89BA 0xB84E #HANGUL SYLLABLE RIEUL YE RIEULPHIEUPH +0x89BB 0xB84F #HANGUL SYLLABLE RIEUL YE RIEULHIEUH +0x89BC 0xB850 #HANGUL SYLLABLE RIEUL YE MIEUM +0x89BD 0xB852 #HANGUL SYLLABLE RIEUL YE PIEUPSIOS +0x89BE 0xB855 #HANGUL SYLLABLE RIEUL YE IEUNG +0x89BF 0xB856 #HANGUL SYLLABLE RIEUL YE CIEUC +0x89C0 0xB857 #HANGUL SYLLABLE RIEUL YE CHIEUCH +0x89C1 0xB858 #HANGUL SYLLABLE RIEUL YE KHIEUKH +0x89C2 0xB859 #HANGUL SYLLABLE RIEUL YE THIEUTH +0x89C3 0xB85A #HANGUL SYLLABLE RIEUL YE PHIEUPH +0x89C4 0xB85B #HANGUL SYLLABLE RIEUL YE HIEUH +0x89C5 0xB842 #HANGUL SYLLABLE RIEUL YE SSANGKIYEOK +0x89C6 0xB854 #HANGUL SYLLABLE RIEUL YE SSANGSIOS +0x89C7 0xB8B1 #HANGUL SYLLABLE RIEUL OE KIYEOK +0x89C8 0xB8B3 #HANGUL SYLLABLE RIEUL OE KIYEOKSIOS +0x89C9 0xB8B5 #HANGUL SYLLABLE RIEUL OE NIEUNCIEUC +0x89CA 0xB8B6 #HANGUL SYLLABLE RIEUL OE NIEUNHIEUH +0x89CB 0xB8B7 #HANGUL SYLLABLE RIEUL OE TIKEUT +0x89CC 0xB8B9 #HANGUL SYLLABLE RIEUL OE RIEULKIYEOK +0x89CD 0xB8BA #HANGUL SYLLABLE RIEUL OE RIEULMIEUM +0x89CE 0xB8BB #HANGUL SYLLABLE RIEUL OE RIEULPIEUP +0x89CF 0xB8BC #HANGUL SYLLABLE RIEUL OE RIEULSIOS +0x89D0 0xB8BD #HANGUL SYLLABLE RIEUL OE RIEULTHIEUTH +0x89D1 0xB8BE #HANGUL SYLLABLE RIEUL OE RIEULPHIEUPH +0x89D2 0xB8BF #HANGUL SYLLABLE RIEUL OE RIEULHIEUH +0x89D3 0xB8C2 #HANGUL SYLLABLE RIEUL OE PIEUPSIOS +0x89D4 0xB8C6 #HANGUL SYLLABLE RIEUL OE CIEUC +0x89D5 0xB8C7 #HANGUL SYLLABLE RIEUL OE CHIEUCH +0x89D6 0xB8C8 #HANGUL SYLLABLE RIEUL OE KHIEUKH +0x89D7 0xB8C9 #HANGUL SYLLABLE RIEUL OE THIEUTH +0x89D8 0xB8CA #HANGUL SYLLABLE RIEUL OE PHIEUPH +0x89D9 0xB8CB #HANGUL SYLLABLE RIEUL OE HIEUH +0x89DA 0xB8B2 #HANGUL SYLLABLE RIEUL OE SSANGKIYEOK +0x89DB 0xB93F #HANGUL SYLLABLE RIEUL WI KIYEOKSIOS +0x89DC 0xB941 #HANGUL SYLLABLE RIEUL WI NIEUNCIEUC +0x89DD 0xB942 #HANGUL SYLLABLE RIEUL WI NIEUNHIEUH +0x89DE 0xB943 #HANGUL SYLLABLE RIEUL WI TIKEUT +0x89DF 0xB945 #HANGUL SYLLABLE RIEUL WI RIEULKIYEOK +0x89E0 0xB946 #HANGUL SYLLABLE RIEUL WI RIEULMIEUM +0x89E1 0xB947 #HANGUL SYLLABLE RIEUL WI RIEULPIEUP +0x89E2 0xB948 #HANGUL SYLLABLE RIEUL WI RIEULSIOS +0x89E3 0xB949 #HANGUL SYLLABLE RIEUL WI RIEULTHIEUTH +0x89E4 0xB94A #HANGUL SYLLABLE RIEUL WI RIEULPHIEUPH +0x89E5 0xB94B #HANGUL SYLLABLE RIEUL WI RIEULHIEUH +0x89E6 0xB94D #HANGUL SYLLABLE RIEUL WI PIEUP +0x89E7 0xB94E #HANGUL SYLLABLE RIEUL WI PIEUPSIOS +0x89E8 0xB952 #HANGUL SYLLABLE RIEUL WI CIEUC +0x89E9 0xB953 #HANGUL SYLLABLE RIEUL WI CHIEUCH +0x89EA 0xB954 #HANGUL SYLLABLE RIEUL WI KHIEUKH +0x89EB 0xB955 #HANGUL SYLLABLE RIEUL WI THIEUTH +0x89EC 0xB956 #HANGUL SYLLABLE RIEUL WI PHIEUPH +0x89ED 0xB957 #HANGUL SYLLABLE RIEUL WI HIEUH +0x89EE 0xB93E #HANGUL SYLLABLE RIEUL WI SSANGKIYEOK +0x89EF 0xB950 #HANGUL SYLLABLE RIEUL WI SSANGSIOS +0x89F0 0xB991 #HANGUL SYLLABLE RIEUL YI KIYEOK +0x89F1 0xB993 #HANGUL SYLLABLE RIEUL YI KIYEOKSIOS +0x89F2 0xB995 #HANGUL SYLLABLE RIEUL YI NIEUNCIEUC +0x89F3 0xB996 #HANGUL SYLLABLE RIEUL YI NIEUNHIEUH +0x89F4 0xB997 #HANGUL SYLLABLE RIEUL YI TIKEUT +0x89F5 0xB999 #HANGUL SYLLABLE RIEUL YI RIEULKIYEOK +0x89F6 0xB99A #HANGUL SYLLABLE RIEUL YI RIEULMIEUM +0x89F7 0xB99B #HANGUL SYLLABLE RIEUL YI RIEULPIEUP +0x89F8 0xB99C #HANGUL SYLLABLE RIEUL YI RIEULSIOS +0x89F9 0xB99D #HANGUL SYLLABLE RIEUL YI RIEULTHIEUTH +0x89FA 0xB99E #HANGUL SYLLABLE RIEUL YI RIEULPHIEUPH +0x89FB 0xB99F #HANGUL SYLLABLE RIEUL YI RIEULHIEUH +0x89FC 0xB9A1 #HANGUL SYLLABLE RIEUL YI PIEUP +0x89FD 0xB9A2 #HANGUL SYLLABLE RIEUL YI PIEUPSIOS +0x89FE 0xB9A3 #HANGUL SYLLABLE RIEUL YI SIOS +0x8A41 0xB9A5 #HANGUL SYLLABLE RIEUL YI IEUNG +0x8A42 0xB9A6 #HANGUL SYLLABLE RIEUL YI CIEUC +0x8A43 0xB9A7 #HANGUL SYLLABLE RIEUL YI CHIEUCH +0x8A44 0xB9A8 #HANGUL SYLLABLE RIEUL YI KHIEUKH +0x8A45 0xB9A9 #HANGUL SYLLABLE RIEUL YI THIEUTH +0x8A46 0xB9AA #HANGUL SYLLABLE RIEUL YI PHIEUPH +0x8A47 0xB9AB #HANGUL SYLLABLE RIEUL YI HIEUH +0x8A48 0xB992 #HANGUL SYLLABLE RIEUL YI SSANGKIYEOK +0x8A49 0xB9A4 #HANGUL SYLLABLE RIEUL YI SSANGSIOS +0x8A4A 0xB879 #HANGUL SYLLABLE RIEUL WA KIYEOK +0x8A4B 0xB87B #HANGUL SYLLABLE RIEUL WA KIYEOKSIOS +0x8A4C 0xB87D #HANGUL SYLLABLE RIEUL WA NIEUNCIEUC +0x8A4D 0xB87E #HANGUL SYLLABLE RIEUL WA NIEUNHIEUH +0x8A4E 0xB87F #HANGUL SYLLABLE RIEUL WA TIKEUT +0x8A4F 0xB880 #HANGUL SYLLABLE RIEUL WA RIEUL +0x8A50 0xB881 #HANGUL SYLLABLE RIEUL WA RIEULKIYEOK +0x8A51 0xB882 #HANGUL SYLLABLE RIEUL WA RIEULMIEUM +0x8A52 0xB883 #HANGUL SYLLABLE RIEUL WA RIEULPIEUP +0x8A53 0xB884 #HANGUL SYLLABLE RIEUL WA RIEULSIOS +0x8A54 0xB885 #HANGUL SYLLABLE RIEUL WA RIEULTHIEUTH +0x8A55 0xB886 #HANGUL SYLLABLE RIEUL WA RIEULPHIEUPH +0x8A56 0xB887 #HANGUL SYLLABLE RIEUL WA RIEULHIEUH +0x8A57 0xB888 #HANGUL SYLLABLE RIEUL WA MIEUM +0x8A58 0xB88A #HANGUL SYLLABLE RIEUL WA PIEUPSIOS +0x8A59 0xB88B #HANGUL SYLLABLE RIEUL WA SIOS +0x8A5A 0xB88E #HANGUL SYLLABLE RIEUL WA CIEUC +0x8A61 0xB88F #HANGUL SYLLABLE RIEUL WA CHIEUCH +0x8A62 0xB890 #HANGUL SYLLABLE RIEUL WA KHIEUKH +0x8A63 0xB891 #HANGUL SYLLABLE RIEUL WA THIEUTH +0x8A64 0xB892 #HANGUL SYLLABLE RIEUL WA PHIEUPH +0x8A65 0xB893 #HANGUL SYLLABLE RIEUL WA HIEUH +0x8A66 0xB87A #HANGUL SYLLABLE RIEUL WA SSANGKIYEOK +0x8A67 0xB88C #HANGUL SYLLABLE RIEUL WA SSANGSIOS +0x8A68 0xB905 #HANGUL SYLLABLE RIEUL WEO KIYEOK +0x8A69 0xB907 #HANGUL SYLLABLE RIEUL WEO KIYEOKSIOS +0x8A6A 0xB908 #HANGUL SYLLABLE RIEUL WEO NIEUN +0x8A6B 0xB909 #HANGUL SYLLABLE RIEUL WEO NIEUNCIEUC +0x8A6C 0xB90A #HANGUL SYLLABLE RIEUL WEO NIEUNHIEUH +0x8A6D 0xB90B #HANGUL SYLLABLE RIEUL WEO TIKEUT +0x8A6E 0xB90C #HANGUL SYLLABLE RIEUL WEO RIEUL +0x8A6F 0xB90D #HANGUL SYLLABLE RIEUL WEO RIEULKIYEOK +0x8A70 0xB90E #HANGUL SYLLABLE RIEUL WEO RIEULMIEUM +0x8A71 0xB90F #HANGUL SYLLABLE RIEUL WEO RIEULPIEUP +0x8A72 0xB910 #HANGUL SYLLABLE RIEUL WEO RIEULSIOS +0x8A73 0xB911 #HANGUL SYLLABLE RIEUL WEO RIEULTHIEUTH +0x8A74 0xB912 #HANGUL SYLLABLE RIEUL WEO RIEULPHIEUPH +0x8A75 0xB913 #HANGUL SYLLABLE RIEUL WEO RIEULHIEUH +0x8A76 0xB914 #HANGUL SYLLABLE RIEUL WEO MIEUM +0x8A77 0xB915 #HANGUL SYLLABLE RIEUL WEO PIEUP +0x8A78 0xB916 #HANGUL SYLLABLE RIEUL WEO PIEUPSIOS +0x8A79 0xB917 #HANGUL SYLLABLE RIEUL WEO SIOS +0x8A7A 0xB919 #HANGUL SYLLABLE RIEUL WEO IEUNG +0x8A81 0xB91A #HANGUL SYLLABLE RIEUL WEO CIEUC +0x8A82 0xB91B #HANGUL SYLLABLE RIEUL WEO CHIEUCH +0x8A83 0xB91C #HANGUL SYLLABLE RIEUL WEO KHIEUKH +0x8A84 0xB91D #HANGUL SYLLABLE RIEUL WEO THIEUTH +0x8A85 0xB91E #HANGUL SYLLABLE RIEUL WEO PHIEUPH +0x8A86 0xB91F #HANGUL SYLLABLE RIEUL WEO HIEUH +0x8A87 0xB906 #HANGUL SYLLABLE RIEUL WEO SSANGKIYEOK +0x8A88 0xB895 #HANGUL SYLLABLE RIEUL WAE KIYEOK +0x8A89 0xB897 #HANGUL SYLLABLE RIEUL WAE KIYEOKSIOS +0x8A8A 0xB898 #HANGUL SYLLABLE RIEUL WAE NIEUN +0x8A8B 0xB899 #HANGUL SYLLABLE RIEUL WAE NIEUNCIEUC +0x8A8C 0xB89A #HANGUL SYLLABLE RIEUL WAE NIEUNHIEUH +0x8A8D 0xB89B #HANGUL SYLLABLE RIEUL WAE TIKEUT +0x8A8E 0xB89C #HANGUL SYLLABLE RIEUL WAE RIEUL +0x8A8F 0xB89D #HANGUL SYLLABLE RIEUL WAE RIEULKIYEOK +0x8A90 0xB89E #HANGUL SYLLABLE RIEUL WAE RIEULMIEUM +0x8A91 0xB89F #HANGUL SYLLABLE RIEUL WAE RIEULPIEUP +0x8A92 0xB8A0 #HANGUL SYLLABLE RIEUL WAE RIEULSIOS +0x8A93 0xB8A1 #HANGUL SYLLABLE RIEUL WAE RIEULTHIEUTH +0x8A94 0xB8A2 #HANGUL SYLLABLE RIEUL WAE RIEULPHIEUPH +0x8A95 0xB8A3 #HANGUL SYLLABLE RIEUL WAE RIEULHIEUH +0x8A96 0xB8A4 #HANGUL SYLLABLE RIEUL WAE MIEUM +0x8A97 0xB8A5 #HANGUL SYLLABLE RIEUL WAE PIEUP +0x8A98 0xB8A6 #HANGUL SYLLABLE RIEUL WAE PIEUPSIOS +0x8A99 0xB8A7 #HANGUL SYLLABLE RIEUL WAE SIOS +0x8A9A 0xB8A9 #HANGUL SYLLABLE RIEUL WAE IEUNG +0x8A9B 0xB8AA #HANGUL SYLLABLE RIEUL WAE CIEUC +0x8A9C 0xB8AB #HANGUL SYLLABLE RIEUL WAE CHIEUCH +0x8A9D 0xB8AC #HANGUL SYLLABLE RIEUL WAE KHIEUKH +0x8A9E 0xB8AD #HANGUL SYLLABLE RIEUL WAE THIEUTH +0x8A9F 0xB8AE #HANGUL SYLLABLE RIEUL WAE PHIEUPH +0x8AA0 0xB8AF #HANGUL SYLLABLE RIEUL WAE HIEUH +0x8AA1 0xB896 #HANGUL SYLLABLE RIEUL WAE SSANGKIYEOK +0x8AA2 0xB921 #HANGUL SYLLABLE RIEUL WE KIYEOK +0x8AA3 0xB923 #HANGUL SYLLABLE RIEUL WE KIYEOKSIOS +0x8AA4 0xB924 #HANGUL SYLLABLE RIEUL WE NIEUN +0x8AA5 0xB925 #HANGUL SYLLABLE RIEUL WE NIEUNCIEUC +0x8AA6 0xB926 #HANGUL SYLLABLE RIEUL WE NIEUNHIEUH +0x8AA7 0xB927 #HANGUL SYLLABLE RIEUL WE TIKEUT +0x8AA8 0xB928 #HANGUL SYLLABLE RIEUL WE RIEUL +0x8AA9 0xB929 #HANGUL SYLLABLE RIEUL WE RIEULKIYEOK +0x8AAA 0xB92A #HANGUL SYLLABLE RIEUL WE RIEULMIEUM +0x8AAB 0xB92B #HANGUL SYLLABLE RIEUL WE RIEULPIEUP +0x8AAC 0xB92C #HANGUL SYLLABLE RIEUL WE RIEULSIOS +0x8AAD 0xB92D #HANGUL SYLLABLE RIEUL WE RIEULTHIEUTH +0x8AAE 0xB92E #HANGUL SYLLABLE RIEUL WE RIEULPHIEUPH +0x8AAF 0xB92F #HANGUL SYLLABLE RIEUL WE RIEULHIEUH +0x8AB0 0xB930 #HANGUL SYLLABLE RIEUL WE MIEUM +0x8AB1 0xB931 #HANGUL SYLLABLE RIEUL WE PIEUP +0x8AB2 0xB932 #HANGUL SYLLABLE RIEUL WE PIEUPSIOS +0x8AB3 0xB933 #HANGUL SYLLABLE RIEUL WE SIOS +0x8AB4 0xB935 #HANGUL SYLLABLE RIEUL WE IEUNG +0x8AB5 0xB936 #HANGUL SYLLABLE RIEUL WE CIEUC +0x8AB6 0xB937 #HANGUL SYLLABLE RIEUL WE CHIEUCH +0x8AB7 0xB938 #HANGUL SYLLABLE RIEUL WE KHIEUKH +0x8AB8 0xB939 #HANGUL SYLLABLE RIEUL WE THIEUTH +0x8AB9 0xB93A #HANGUL SYLLABLE RIEUL WE PHIEUPH +0x8ABA 0xB93B #HANGUL SYLLABLE RIEUL WE HIEUH +0x8ABB 0xB922 #HANGUL SYLLABLE RIEUL WE SSANGKIYEOK +0x8ABC 0xB934 #HANGUL SYLLABLE RIEUL WE SSANGSIOS +0x8ABD 0xB9CB #HANGUL SYLLABLE MIEUM A KIYEOKSIOS +0x8ABE 0xB9CD #HANGUL SYLLABLE MIEUM A NIEUNCIEUC +0x8ABF 0xB9D3 #HANGUL SYLLABLE MIEUM A RIEULPIEUP +0x8AC0 0xB9D4 #HANGUL SYLLABLE MIEUM A RIEULSIOS +0x8AC1 0xB9D5 #HANGUL SYLLABLE MIEUM A RIEULTHIEUTH +0x8AC2 0xB9D6 #HANGUL SYLLABLE MIEUM A RIEULPHIEUPH +0x8AC3 0xB9D7 #HANGUL SYLLABLE MIEUM A RIEULHIEUH +0x8AC4 0xB9DA #HANGUL SYLLABLE MIEUM A PIEUPSIOS +0x8AC5 0xB9E0 #HANGUL SYLLABLE MIEUM A KHIEUKH +0x8AC6 0xB9E2 #HANGUL SYLLABLE MIEUM A PHIEUPH +0x8AC7 0xB9CA #HANGUL SYLLABLE MIEUM A SSANGKIYEOK +0x8AC8 0xB9DC #HANGUL SYLLABLE MIEUM A SSANGSIOS +0x8AC9 0xBA03 #HANGUL SYLLABLE MIEUM YA KIYEOKSIOS +0x8ACA 0xBA05 #HANGUL SYLLABLE MIEUM YA NIEUNCIEUC +0x8ACB 0xBA06 #HANGUL SYLLABLE MIEUM YA NIEUNHIEUH +0x8ACC 0xBA07 #HANGUL SYLLABLE MIEUM YA TIKEUT +0x8ACD 0xBA09 #HANGUL SYLLABLE MIEUM YA RIEULKIYEOK +0x8ACE 0xBA0A #HANGUL SYLLABLE MIEUM YA RIEULMIEUM +0x8ACF 0xBA0B #HANGUL SYLLABLE MIEUM YA RIEULPIEUP +0x8AD0 0xBA0C #HANGUL SYLLABLE MIEUM YA RIEULSIOS +0x8AD1 0xBA0D #HANGUL SYLLABLE MIEUM YA RIEULTHIEUTH +0x8AD2 0xBA0E #HANGUL SYLLABLE MIEUM YA RIEULPHIEUPH +0x8AD3 0xBA0F #HANGUL SYLLABLE MIEUM YA RIEULHIEUH +0x8AD4 0xBA11 #HANGUL SYLLABLE MIEUM YA PIEUP +0x8AD5 0xBA12 #HANGUL SYLLABLE MIEUM YA PIEUPSIOS +0x8AD6 0xBA13 #HANGUL SYLLABLE MIEUM YA SIOS +0x8AD7 0xBA16 #HANGUL SYLLABLE MIEUM YA CIEUC +0x8AD8 0xBA17 #HANGUL SYLLABLE MIEUM YA CHIEUCH +0x8AD9 0xBA18 #HANGUL SYLLABLE MIEUM YA KHIEUKH +0x8ADA 0xBA19 #HANGUL SYLLABLE MIEUM YA THIEUTH +0x8ADB 0xBA1A #HANGUL SYLLABLE MIEUM YA PHIEUPH +0x8ADC 0xBA1B #HANGUL SYLLABLE MIEUM YA HIEUH +0x8ADD 0xBA02 #HANGUL SYLLABLE MIEUM YA SSANGKIYEOK +0x8ADE 0xBA14 #HANGUL SYLLABLE MIEUM YA SSANGSIOS +0x8ADF 0xBA3B #HANGUL SYLLABLE MIEUM EO KIYEOKSIOS +0x8AE0 0xBA3D #HANGUL SYLLABLE MIEUM EO NIEUNCIEUC +0x8AE1 0xBA3E #HANGUL SYLLABLE MIEUM EO NIEUNHIEUH +0x8AE2 0xBA3F #HANGUL SYLLABLE MIEUM EO TIKEUT +0x8AE3 0xBA43 #HANGUL SYLLABLE MIEUM EO RIEULPIEUP +0x8AE4 0xBA44 #HANGUL SYLLABLE MIEUM EO RIEULSIOS +0x8AE5 0xBA45 #HANGUL SYLLABLE MIEUM EO RIEULTHIEUTH +0x8AE6 0xBA46 #HANGUL SYLLABLE MIEUM EO RIEULPHIEUPH +0x8AE7 0xBA47 #HANGUL SYLLABLE MIEUM EO RIEULHIEUH +0x8AE8 0xBA4A #HANGUL SYLLABLE MIEUM EO PIEUPSIOS +0x8AE9 0xBA4F #HANGUL SYLLABLE MIEUM EO CHIEUCH +0x8AEA 0xBA50 #HANGUL SYLLABLE MIEUM EO KHIEUKH +0x8AEB 0xBA51 #HANGUL SYLLABLE MIEUM EO THIEUTH +0x8AEC 0xBA52 #HANGUL SYLLABLE MIEUM EO PHIEUPH +0x8AED 0xBA3A #HANGUL SYLLABLE MIEUM EO SSANGKIYEOK +0x8AEE 0xBA73 #HANGUL SYLLABLE MIEUM YEO KIYEOKSIOS +0x8AEF 0xBA75 #HANGUL SYLLABLE MIEUM YEO NIEUNCIEUC +0x8AF0 0xBA76 #HANGUL SYLLABLE MIEUM YEO NIEUNHIEUH +0x8AF1 0xBA77 #HANGUL SYLLABLE MIEUM YEO TIKEUT +0x8AF2 0xBA79 #HANGUL SYLLABLE MIEUM YEO RIEULKIYEOK +0x8AF3 0xBA7A #HANGUL SYLLABLE MIEUM YEO RIEULMIEUM +0x8AF4 0xBA7B #HANGUL SYLLABLE MIEUM YEO RIEULPIEUP +0x8AF5 0xBA7C #HANGUL SYLLABLE MIEUM YEO RIEULSIOS +0x8AF6 0xBA7D #HANGUL SYLLABLE MIEUM YEO RIEULTHIEUTH +0x8AF7 0xBA7E #HANGUL SYLLABLE MIEUM YEO RIEULPHIEUPH +0x8AF8 0xBA7F #HANGUL SYLLABLE MIEUM YEO RIEULHIEUH +0x8AF9 0xBA82 #HANGUL SYLLABLE MIEUM YEO PIEUPSIOS +0x8AFA 0xBA86 #HANGUL SYLLABLE MIEUM YEO CIEUC +0x8AFB 0xBA88 #HANGUL SYLLABLE MIEUM YEO KHIEUKH +0x8AFC 0xBA89 #HANGUL SYLLABLE MIEUM YEO THIEUTH +0x8AFD 0xBA8A #HANGUL SYLLABLE MIEUM YEO PHIEUPH +0x8AFE 0xBA8B #HANGUL SYLLABLE MIEUM YEO HIEUH +0x8B41 0xBA72 #HANGUL SYLLABLE MIEUM YEO SSANGKIYEOK +0x8B42 0xBAAD #HANGUL SYLLABLE MIEUM O NIEUNCIEUC +0x8B43 0xBAAE #HANGUL SYLLABLE MIEUM O NIEUNHIEUH +0x8B44 0xBAB1 #HANGUL SYLLABLE MIEUM O RIEULKIYEOK +0x8B45 0xBAB3 #HANGUL SYLLABLE MIEUM O RIEULPIEUP +0x8B46 0xBAB4 #HANGUL SYLLABLE MIEUM O RIEULSIOS +0x8B47 0xBAB5 #HANGUL SYLLABLE MIEUM O RIEULTHIEUTH +0x8B48 0xBAB6 #HANGUL SYLLABLE MIEUM O RIEULPHIEUPH +0x8B49 0xBAB7 #HANGUL SYLLABLE MIEUM O RIEULHIEUH +0x8B4A 0xBABA #HANGUL SYLLABLE MIEUM O PIEUPSIOS +0x8B4B 0xBABE #HANGUL SYLLABLE MIEUM O CIEUC +0x8B4C 0xBABF #HANGUL SYLLABLE MIEUM O CHIEUCH +0x8B4D 0xBAC0 #HANGUL SYLLABLE MIEUM O KHIEUKH +0x8B4E 0xBAC1 #HANGUL SYLLABLE MIEUM O THIEUTH +0x8B4F 0xBAC2 #HANGUL SYLLABLE MIEUM O PHIEUPH +0x8B50 0xBAAA #HANGUL SYLLABLE MIEUM O SSANGKIYEOK +0x8B51 0xBABC #HANGUL SYLLABLE MIEUM O SSANGSIOS +0x8B52 0xBB19 #HANGUL SYLLABLE MIEUM YO KIYEOK +0x8B53 0xBB1B #HANGUL SYLLABLE MIEUM YO KIYEOKSIOS +0x8B54 0xBB1D #HANGUL SYLLABLE MIEUM YO NIEUNCIEUC +0x8B55 0xBB1E #HANGUL SYLLABLE MIEUM YO NIEUNHIEUH +0x8B56 0xBB1F #HANGUL SYLLABLE MIEUM YO TIKEUT +0x8B57 0xBB21 #HANGUL SYLLABLE MIEUM YO RIEULKIYEOK +0x8B58 0xBB22 #HANGUL SYLLABLE MIEUM YO RIEULMIEUM +0x8B59 0xBB23 #HANGUL SYLLABLE MIEUM YO RIEULPIEUP +0x8B5A 0xBB24 #HANGUL SYLLABLE MIEUM YO RIEULSIOS +0x8B61 0xBB25 #HANGUL SYLLABLE MIEUM YO RIEULTHIEUTH +0x8B62 0xBB26 #HANGUL SYLLABLE MIEUM YO RIEULPHIEUPH +0x8B63 0xBB27 #HANGUL SYLLABLE MIEUM YO RIEULHIEUH +0x8B64 0xBB28 #HANGUL SYLLABLE MIEUM YO MIEUM +0x8B65 0xBB2A #HANGUL SYLLABLE MIEUM YO PIEUPSIOS +0x8B66 0xBB2D #HANGUL SYLLABLE MIEUM YO IEUNG +0x8B67 0xBB2E #HANGUL SYLLABLE MIEUM YO CIEUC +0x8B68 0xBB2F #HANGUL SYLLABLE MIEUM YO CHIEUCH +0x8B69 0xBB30 #HANGUL SYLLABLE MIEUM YO KHIEUKH +0x8B6A 0xBB31 #HANGUL SYLLABLE MIEUM YO THIEUTH +0x8B6B 0xBB32 #HANGUL SYLLABLE MIEUM YO PHIEUPH +0x8B6C 0xBB33 #HANGUL SYLLABLE MIEUM YO HIEUH +0x8B6D 0xBB1A #HANGUL SYLLABLE MIEUM YO SSANGKIYEOK +0x8B6E 0xBB2C #HANGUL SYLLABLE MIEUM YO SSANGSIOS +0x8B6F 0xBB37 #HANGUL SYLLABLE MIEUM U KIYEOKSIOS +0x8B70 0xBB39 #HANGUL SYLLABLE MIEUM U NIEUNCIEUC +0x8B71 0xBB3A #HANGUL SYLLABLE MIEUM U NIEUNHIEUH +0x8B72 0xBB3F #HANGUL SYLLABLE MIEUM U RIEULPIEUP +0x8B73 0xBB40 #HANGUL SYLLABLE MIEUM U RIEULSIOS +0x8B74 0xBB41 #HANGUL SYLLABLE MIEUM U RIEULTHIEUTH +0x8B75 0xBB42 #HANGUL SYLLABLE MIEUM U RIEULPHIEUPH +0x8B76 0xBB43 #HANGUL SYLLABLE MIEUM U RIEULHIEUH +0x8B77 0xBB46 #HANGUL SYLLABLE MIEUM U PIEUPSIOS +0x8B78 0xBB4A #HANGUL SYLLABLE MIEUM U CIEUC +0x8B79 0xBB4B #HANGUL SYLLABLE MIEUM U CHIEUCH +0x8B7A 0xBB4C #HANGUL SYLLABLE MIEUM U KHIEUKH +0x8B81 0xBB4E #HANGUL SYLLABLE MIEUM U PHIEUPH +0x8B82 0xBB48 #HANGUL SYLLABLE MIEUM U SSANGSIOS +0x8B83 0xBBA7 #HANGUL SYLLABLE MIEUM YU KIYEOKSIOS +0x8B84 0xBBA9 #HANGUL SYLLABLE MIEUM YU NIEUNCIEUC +0x8B85 0xBBAA #HANGUL SYLLABLE MIEUM YU NIEUNHIEUH +0x8B86 0xBBAB #HANGUL SYLLABLE MIEUM YU TIKEUT +0x8B87 0xBBAD #HANGUL SYLLABLE MIEUM YU RIEULKIYEOK +0x8B88 0xBBAE #HANGUL SYLLABLE MIEUM YU RIEULMIEUM +0x8B89 0xBBAF #HANGUL SYLLABLE MIEUM YU RIEULPIEUP +0x8B8A 0xBBB0 #HANGUL SYLLABLE MIEUM YU RIEULSIOS +0x8B8B 0xBBB1 #HANGUL SYLLABLE MIEUM YU RIEULTHIEUTH +0x8B8C 0xBBB2 #HANGUL SYLLABLE MIEUM YU RIEULPHIEUPH +0x8B8D 0xBBB3 #HANGUL SYLLABLE MIEUM YU RIEULHIEUH +0x8B8E 0xBBB5 #HANGUL SYLLABLE MIEUM YU PIEUP +0x8B8F 0xBBB6 #HANGUL SYLLABLE MIEUM YU PIEUPSIOS +0x8B90 0xBBBA #HANGUL SYLLABLE MIEUM YU CIEUC +0x8B91 0xBBBB #HANGUL SYLLABLE MIEUM YU CHIEUCH +0x8B92 0xBBBC #HANGUL SYLLABLE MIEUM YU KHIEUKH +0x8B93 0xBBBD #HANGUL SYLLABLE MIEUM YU THIEUTH +0x8B94 0xBBBE #HANGUL SYLLABLE MIEUM YU PHIEUPH +0x8B95 0xBBBF #HANGUL SYLLABLE MIEUM YU HIEUH +0x8B96 0xBBA6 #HANGUL SYLLABLE MIEUM YU SSANGKIYEOK +0x8B97 0xBBB8 #HANGUL SYLLABLE MIEUM YU SSANGSIOS +0x8B98 0xBBC1 #HANGUL SYLLABLE MIEUM EU KIYEOK +0x8B99 0xBBC3 #HANGUL SYLLABLE MIEUM EU KIYEOKSIOS +0x8B9A 0xBBC5 #HANGUL SYLLABLE MIEUM EU NIEUNCIEUC +0x8B9B 0xBBC6 #HANGUL SYLLABLE MIEUM EU NIEUNHIEUH +0x8B9C 0xBBC7 #HANGUL SYLLABLE MIEUM EU TIKEUT +0x8B9D 0xBBC9 #HANGUL SYLLABLE MIEUM EU RIEULKIYEOK +0x8B9E 0xBBCA #HANGUL SYLLABLE MIEUM EU RIEULMIEUM +0x8B9F 0xBBCB #HANGUL SYLLABLE MIEUM EU RIEULPIEUP +0x8BA0 0xBBCC #HANGUL SYLLABLE MIEUM EU RIEULSIOS +0x8BA1 0xBBCD #HANGUL SYLLABLE MIEUM EU RIEULTHIEUTH +0x8BA2 0xBBCE #HANGUL SYLLABLE MIEUM EU RIEULPHIEUPH +0x8BA3 0xBBCF #HANGUL SYLLABLE MIEUM EU RIEULHIEUH +0x8BA4 0xBBD2 #HANGUL SYLLABLE MIEUM EU PIEUPSIOS +0x8BA5 0xBBD6 #HANGUL SYLLABLE MIEUM EU CIEUC +0x8BA6 0xBBD7 #HANGUL SYLLABLE MIEUM EU CHIEUCH +0x8BA7 0xBBD8 #HANGUL SYLLABLE MIEUM EU KHIEUKH +0x8BA8 0xBBD9 #HANGUL SYLLABLE MIEUM EU THIEUTH +0x8BA9 0xBBDA #HANGUL SYLLABLE MIEUM EU PHIEUPH +0x8BAA 0xBBDB #HANGUL SYLLABLE MIEUM EU HIEUH +0x8BAB 0xBBC2 #HANGUL SYLLABLE MIEUM EU SSANGKIYEOK +0x8BAC 0xBBD4 #HANGUL SYLLABLE MIEUM EU SSANGSIOS +0x8BAD 0xBBFB #HANGUL SYLLABLE MIEUM I KIYEOKSIOS +0x8BAE 0xBBFD #HANGUL SYLLABLE MIEUM I NIEUNCIEUC +0x8BAF 0xBBFE #HANGUL SYLLABLE MIEUM I NIEUNHIEUH +0x8BB0 0xBC01 #HANGUL SYLLABLE MIEUM I RIEULKIYEOK +0x8BB1 0xBC03 #HANGUL SYLLABLE MIEUM I RIEULPIEUP +0x8BB2 0xBC04 #HANGUL SYLLABLE MIEUM I RIEULSIOS +0x8BB3 0xBC05 #HANGUL SYLLABLE MIEUM I RIEULTHIEUTH +0x8BB4 0xBC06 #HANGUL SYLLABLE MIEUM I RIEULPHIEUPH +0x8BB5 0xBC07 #HANGUL SYLLABLE MIEUM I RIEULHIEUH +0x8BB6 0xBC0A #HANGUL SYLLABLE MIEUM I PIEUPSIOS +0x8BB7 0xBC0E #HANGUL SYLLABLE MIEUM I CIEUC +0x8BB8 0xBC10 #HANGUL SYLLABLE MIEUM I KHIEUKH +0x8BB9 0xBC12 #HANGUL SYLLABLE MIEUM I PHIEUPH +0x8BBA 0xBC13 #HANGUL SYLLABLE MIEUM I HIEUH +0x8BBB 0xBBFA #HANGUL SYLLABLE MIEUM I SSANGKIYEOK +0x8BBC 0xB9E7 #HANGUL SYLLABLE MIEUM AE KIYEOKSIOS +0x8BBD 0xB9E9 #HANGUL SYLLABLE MIEUM AE NIEUNCIEUC +0x8BBE 0xB9EA #HANGUL SYLLABLE MIEUM AE NIEUNHIEUH +0x8BBF 0xB9EB #HANGUL SYLLABLE MIEUM AE TIKEUT +0x8BC0 0xB9ED #HANGUL SYLLABLE MIEUM AE RIEULKIYEOK +0x8BC1 0xB9EE #HANGUL SYLLABLE MIEUM AE RIEULMIEUM +0x8BC2 0xB9EF #HANGUL SYLLABLE MIEUM AE RIEULPIEUP +0x8BC3 0xB9F0 #HANGUL SYLLABLE MIEUM AE RIEULSIOS +0x8BC4 0xB9F1 #HANGUL SYLLABLE MIEUM AE RIEULTHIEUTH +0x8BC5 0xB9F2 #HANGUL SYLLABLE MIEUM AE RIEULPHIEUPH +0x8BC6 0xB9F3 #HANGUL SYLLABLE MIEUM AE RIEULHIEUH +0x8BC7 0xB9F6 #HANGUL SYLLABLE MIEUM AE PIEUPSIOS +0x8BC8 0xB9FB #HANGUL SYLLABLE MIEUM AE CHIEUCH +0x8BC9 0xB9FC #HANGUL SYLLABLE MIEUM AE KHIEUKH +0x8BCA 0xB9FD #HANGUL SYLLABLE MIEUM AE THIEUTH +0x8BCB 0xB9FE #HANGUL SYLLABLE MIEUM AE PHIEUPH +0x8BCC 0xB9FF #HANGUL SYLLABLE MIEUM AE HIEUH +0x8BCD 0xB9E6 #HANGUL SYLLABLE MIEUM AE SSANGKIYEOK +0x8BCE 0xBA1D #HANGUL SYLLABLE MIEUM YAE KIYEOK +0x8BCF 0xBA1F #HANGUL SYLLABLE MIEUM YAE KIYEOKSIOS +0x8BD0 0xBA20 #HANGUL SYLLABLE MIEUM YAE NIEUN +0x8BD1 0xBA21 #HANGUL SYLLABLE MIEUM YAE NIEUNCIEUC +0x8BD2 0xBA22 #HANGUL SYLLABLE MIEUM YAE NIEUNHIEUH +0x8BD3 0xBA23 #HANGUL SYLLABLE MIEUM YAE TIKEUT +0x8BD4 0xBA24 #HANGUL SYLLABLE MIEUM YAE RIEUL +0x8BD5 0xBA25 #HANGUL SYLLABLE MIEUM YAE RIEULKIYEOK +0x8BD6 0xBA26 #HANGUL SYLLABLE MIEUM YAE RIEULMIEUM +0x8BD7 0xBA27 #HANGUL SYLLABLE MIEUM YAE RIEULPIEUP +0x8BD8 0xBA28 #HANGUL SYLLABLE MIEUM YAE RIEULSIOS +0x8BD9 0xBA29 #HANGUL SYLLABLE MIEUM YAE RIEULTHIEUTH +0x8BDA 0xBA2A #HANGUL SYLLABLE MIEUM YAE RIEULPHIEUPH +0x8BDB 0xBA2B #HANGUL SYLLABLE MIEUM YAE RIEULHIEUH +0x8BDC 0xBA2C #HANGUL SYLLABLE MIEUM YAE MIEUM +0x8BDD 0xBA2D #HANGUL SYLLABLE MIEUM YAE PIEUP +0x8BDE 0xBA2E #HANGUL SYLLABLE MIEUM YAE PIEUPSIOS +0x8BDF 0xBA2F #HANGUL SYLLABLE MIEUM YAE SIOS +0x8BE0 0xBA31 #HANGUL SYLLABLE MIEUM YAE IEUNG +0x8BE1 0xBA32 #HANGUL SYLLABLE MIEUM YAE CIEUC +0x8BE2 0xBA33 #HANGUL SYLLABLE MIEUM YAE CHIEUCH +0x8BE3 0xBA34 #HANGUL SYLLABLE MIEUM YAE KHIEUKH +0x8BE4 0xBA35 #HANGUL SYLLABLE MIEUM YAE THIEUTH +0x8BE5 0xBA36 #HANGUL SYLLABLE MIEUM YAE PHIEUPH +0x8BE6 0xBA37 #HANGUL SYLLABLE MIEUM YAE HIEUH +0x8BE7 0xBA1E #HANGUL SYLLABLE MIEUM YAE SSANGKIYEOK +0x8BE8 0xBA30 #HANGUL SYLLABLE MIEUM YAE SSANGSIOS +0x8BE9 0xBA57 #HANGUL SYLLABLE MIEUM E KIYEOKSIOS +0x8BEA 0xBA59 #HANGUL SYLLABLE MIEUM E NIEUNCIEUC +0x8BEB 0xBA5A #HANGUL SYLLABLE MIEUM E NIEUNHIEUH +0x8BEC 0xBA5B #HANGUL SYLLABLE MIEUM E TIKEUT +0x8BED 0xBA5D #HANGUL SYLLABLE MIEUM E RIEULKIYEOK +0x8BEE 0xBA5E #HANGUL SYLLABLE MIEUM E RIEULMIEUM +0x8BEF 0xBA5F #HANGUL SYLLABLE MIEUM E RIEULPIEUP +0x8BF0 0xBA60 #HANGUL SYLLABLE MIEUM E RIEULSIOS +0x8BF1 0xBA61 #HANGUL SYLLABLE MIEUM E RIEULTHIEUTH +0x8BF2 0xBA62 #HANGUL SYLLABLE MIEUM E RIEULPHIEUPH +0x8BF3 0xBA63 #HANGUL SYLLABLE MIEUM E RIEULHIEUH +0x8BF4 0xBA66 #HANGUL SYLLABLE MIEUM E PIEUPSIOS +0x8BF5 0xBA6A #HANGUL SYLLABLE MIEUM E CIEUC +0x8BF6 0xBA6B #HANGUL SYLLABLE MIEUM E CHIEUCH +0x8BF7 0xBA6C #HANGUL SYLLABLE MIEUM E KHIEUKH +0x8BF8 0xBA6D #HANGUL SYLLABLE MIEUM E THIEUTH +0x8BF9 0xBA6E #HANGUL SYLLABLE MIEUM E PHIEUPH +0x8BFA 0xBA6F #HANGUL SYLLABLE MIEUM E HIEUH +0x8BFB 0xBA56 #HANGUL SYLLABLE MIEUM E SSANGKIYEOK +0x8BFC 0xBA8D #HANGUL SYLLABLE MIEUM YE KIYEOK +0x8BFD 0xBA8F #HANGUL SYLLABLE MIEUM YE KIYEOKSIOS +0x8BFE 0xBA91 #HANGUL SYLLABLE MIEUM YE NIEUNCIEUC +0x8C41 0xBA92 #HANGUL SYLLABLE MIEUM YE NIEUNHIEUH +0x8C42 0xBA93 #HANGUL SYLLABLE MIEUM YE TIKEUT +0x8C43 0xBA94 #HANGUL SYLLABLE MIEUM YE RIEUL +0x8C44 0xBA95 #HANGUL SYLLABLE MIEUM YE RIEULKIYEOK +0x8C45 0xBA96 #HANGUL SYLLABLE MIEUM YE RIEULMIEUM +0x8C46 0xBA97 #HANGUL SYLLABLE MIEUM YE RIEULPIEUP +0x8C47 0xBA98 #HANGUL SYLLABLE MIEUM YE RIEULSIOS +0x8C48 0xBA99 #HANGUL SYLLABLE MIEUM YE RIEULTHIEUTH +0x8C49 0xBA9A #HANGUL SYLLABLE MIEUM YE RIEULPHIEUPH +0x8C4A 0xBA9B #HANGUL SYLLABLE MIEUM YE RIEULHIEUH +0x8C4B 0xBA9C #HANGUL SYLLABLE MIEUM YE MIEUM +0x8C4C 0xBA9D #HANGUL SYLLABLE MIEUM YE PIEUP +0x8C4D 0xBA9E #HANGUL SYLLABLE MIEUM YE PIEUPSIOS +0x8C4E 0xBA9F #HANGUL SYLLABLE MIEUM YE SIOS +0x8C4F 0xBAA1 #HANGUL SYLLABLE MIEUM YE IEUNG +0x8C50 0xBAA2 #HANGUL SYLLABLE MIEUM YE CIEUC +0x8C51 0xBAA3 #HANGUL SYLLABLE MIEUM YE CHIEUCH +0x8C52 0xBAA4 #HANGUL SYLLABLE MIEUM YE KHIEUKH +0x8C53 0xBAA5 #HANGUL SYLLABLE MIEUM YE THIEUTH +0x8C54 0xBAA6 #HANGUL SYLLABLE MIEUM YE PHIEUPH +0x8C55 0xBAA7 #HANGUL SYLLABLE MIEUM YE HIEUH +0x8C56 0xBA8E #HANGUL SYLLABLE MIEUM YE SSANGKIYEOK +0x8C57 0xBAA0 #HANGUL SYLLABLE MIEUM YE SSANGSIOS +0x8C58 0xBAFD #HANGUL SYLLABLE MIEUM OE KIYEOK +0x8C59 0xBAFF #HANGUL SYLLABLE MIEUM OE KIYEOKSIOS +0x8C5A 0xBB01 #HANGUL SYLLABLE MIEUM OE NIEUNCIEUC +0x8C61 0xBB02 #HANGUL SYLLABLE MIEUM OE NIEUNHIEUH +0x8C62 0xBB03 #HANGUL SYLLABLE MIEUM OE TIKEUT +0x8C63 0xBB05 #HANGUL SYLLABLE MIEUM OE RIEULKIYEOK +0x8C64 0xBB06 #HANGUL SYLLABLE MIEUM OE RIEULMIEUM +0x8C65 0xBB07 #HANGUL SYLLABLE MIEUM OE RIEULPIEUP +0x8C66 0xBB08 #HANGUL SYLLABLE MIEUM OE RIEULSIOS +0x8C67 0xBB09 #HANGUL SYLLABLE MIEUM OE RIEULTHIEUTH +0x8C68 0xBB0A #HANGUL SYLLABLE MIEUM OE RIEULPHIEUPH +0x8C69 0xBB0B #HANGUL SYLLABLE MIEUM OE RIEULHIEUH +0x8C6A 0xBB0E #HANGUL SYLLABLE MIEUM OE PIEUPSIOS +0x8C6B 0xBB12 #HANGUL SYLLABLE MIEUM OE CIEUC +0x8C6C 0xBB13 #HANGUL SYLLABLE MIEUM OE CHIEUCH +0x8C6D 0xBB14 #HANGUL SYLLABLE MIEUM OE KHIEUKH +0x8C6E 0xBB15 #HANGUL SYLLABLE MIEUM OE THIEUTH +0x8C6F 0xBB16 #HANGUL SYLLABLE MIEUM OE PHIEUPH +0x8C70 0xBB17 #HANGUL SYLLABLE MIEUM OE HIEUH +0x8C71 0xBAFE #HANGUL SYLLABLE MIEUM OE SSANGKIYEOK +0x8C72 0xBB10 #HANGUL SYLLABLE MIEUM OE SSANGSIOS +0x8C73 0xBB89 #HANGUL SYLLABLE MIEUM WI KIYEOK +0x8C74 0xBB8B #HANGUL SYLLABLE MIEUM WI KIYEOKSIOS +0x8C75 0xBB8D #HANGUL SYLLABLE MIEUM WI NIEUNCIEUC +0x8C76 0xBB8E #HANGUL SYLLABLE MIEUM WI NIEUNHIEUH +0x8C77 0xBB8F #HANGUL SYLLABLE MIEUM WI TIKEUT +0x8C78 0xBB91 #HANGUL SYLLABLE MIEUM WI RIEULKIYEOK +0x8C79 0xBB92 #HANGUL SYLLABLE MIEUM WI RIEULMIEUM +0x8C7A 0xBB93 #HANGUL SYLLABLE MIEUM WI RIEULPIEUP +0x8C81 0xBB94 #HANGUL SYLLABLE MIEUM WI RIEULSIOS +0x8C82 0xBB95 #HANGUL SYLLABLE MIEUM WI RIEULTHIEUTH +0x8C83 0xBB96 #HANGUL SYLLABLE MIEUM WI RIEULPHIEUPH +0x8C84 0xBB97 #HANGUL SYLLABLE MIEUM WI RIEULHIEUH +0x8C85 0xBB98 #HANGUL SYLLABLE MIEUM WI MIEUM +0x8C86 0xBB99 #HANGUL SYLLABLE MIEUM WI PIEUP +0x8C87 0xBB9A #HANGUL SYLLABLE MIEUM WI PIEUPSIOS +0x8C88 0xBB9B #HANGUL SYLLABLE MIEUM WI SIOS +0x8C89 0xBB9D #HANGUL SYLLABLE MIEUM WI IEUNG +0x8C8A 0xBB9E #HANGUL SYLLABLE MIEUM WI CIEUC +0x8C8B 0xBB9F #HANGUL SYLLABLE MIEUM WI CHIEUCH +0x8C8C 0xBBA0 #HANGUL SYLLABLE MIEUM WI KHIEUKH +0x8C8D 0xBBA1 #HANGUL SYLLABLE MIEUM WI THIEUTH +0x8C8E 0xBBA2 #HANGUL SYLLABLE MIEUM WI PHIEUPH +0x8C8F 0xBBA3 #HANGUL SYLLABLE MIEUM WI HIEUH +0x8C90 0xBB8A #HANGUL SYLLABLE MIEUM WI SSANGKIYEOK +0x8C91 0xBB9C #HANGUL SYLLABLE MIEUM WI SSANGSIOS +0x8C92 0xBBDD #HANGUL SYLLABLE MIEUM YI KIYEOK +0x8C93 0xBBDF #HANGUL SYLLABLE MIEUM YI KIYEOKSIOS +0x8C94 0xBBE1 #HANGUL SYLLABLE MIEUM YI NIEUNCIEUC +0x8C95 0xBBE2 #HANGUL SYLLABLE MIEUM YI NIEUNHIEUH +0x8C96 0xBBE3 #HANGUL SYLLABLE MIEUM YI TIKEUT +0x8C97 0xBBE4 #HANGUL SYLLABLE MIEUM YI RIEUL +0x8C98 0xBBE5 #HANGUL SYLLABLE MIEUM YI RIEULKIYEOK +0x8C99 0xBBE6 #HANGUL SYLLABLE MIEUM YI RIEULMIEUM +0x8C9A 0xBBE7 #HANGUL SYLLABLE MIEUM YI RIEULPIEUP +0x8C9B 0xBBE8 #HANGUL SYLLABLE MIEUM YI RIEULSIOS +0x8C9C 0xBBE9 #HANGUL SYLLABLE MIEUM YI RIEULTHIEUTH +0x8C9D 0xBBEA #HANGUL SYLLABLE MIEUM YI RIEULPHIEUPH +0x8C9E 0xBBEB #HANGUL SYLLABLE MIEUM YI RIEULHIEUH +0x8C9F 0xBBED #HANGUL SYLLABLE MIEUM YI PIEUP +0x8CA0 0xBBEE #HANGUL SYLLABLE MIEUM YI PIEUPSIOS +0x8CA1 0xBBEF #HANGUL SYLLABLE MIEUM YI SIOS +0x8CA2 0xBBF1 #HANGUL SYLLABLE MIEUM YI IEUNG +0x8CA3 0xBBF2 #HANGUL SYLLABLE MIEUM YI CIEUC +0x8CA4 0xBBF3 #HANGUL SYLLABLE MIEUM YI CHIEUCH +0x8CA5 0xBBF4 #HANGUL SYLLABLE MIEUM YI KHIEUKH +0x8CA6 0xBBF5 #HANGUL SYLLABLE MIEUM YI THIEUTH +0x8CA7 0xBBF6 #HANGUL SYLLABLE MIEUM YI PHIEUPH +0x8CA8 0xBBF7 #HANGUL SYLLABLE MIEUM YI HIEUH +0x8CA9 0xBBDE #HANGUL SYLLABLE MIEUM YI SSANGKIYEOK +0x8CAA 0xBBF0 #HANGUL SYLLABLE MIEUM YI SSANGSIOS +0x8CAB 0xBAC5 #HANGUL SYLLABLE MIEUM WA KIYEOK +0x8CAC 0xBAC7 #HANGUL SYLLABLE MIEUM WA KIYEOKSIOS +0x8CAD 0xBAC9 #HANGUL SYLLABLE MIEUM WA NIEUNCIEUC +0x8CAE 0xBACA #HANGUL SYLLABLE MIEUM WA NIEUNHIEUH +0x8CAF 0xBACB #HANGUL SYLLABLE MIEUM WA TIKEUT +0x8CB0 0xBACC #HANGUL SYLLABLE MIEUM WA RIEUL +0x8CB1 0xBACD #HANGUL SYLLABLE MIEUM WA RIEULKIYEOK +0x8CB2 0xBACE #HANGUL SYLLABLE MIEUM WA RIEULMIEUM +0x8CB3 0xBACF #HANGUL SYLLABLE MIEUM WA RIEULPIEUP +0x8CB4 0xBAD0 #HANGUL SYLLABLE MIEUM WA RIEULSIOS +0x8CB5 0xBAD1 #HANGUL SYLLABLE MIEUM WA RIEULTHIEUTH +0x8CB6 0xBAD2 #HANGUL SYLLABLE MIEUM WA RIEULPHIEUPH +0x8CB7 0xBAD3 #HANGUL SYLLABLE MIEUM WA RIEULHIEUH +0x8CB8 0xBAD4 #HANGUL SYLLABLE MIEUM WA MIEUM +0x8CB9 0xBAD5 #HANGUL SYLLABLE MIEUM WA PIEUP +0x8CBA 0xBAD6 #HANGUL SYLLABLE MIEUM WA PIEUPSIOS +0x8CBB 0xBAD7 #HANGUL SYLLABLE MIEUM WA SIOS +0x8CBC 0xBADA #HANGUL SYLLABLE MIEUM WA CIEUC +0x8CBD 0xBADB #HANGUL SYLLABLE MIEUM WA CHIEUCH +0x8CBE 0xBADC #HANGUL SYLLABLE MIEUM WA KHIEUKH +0x8CBF 0xBADD #HANGUL SYLLABLE MIEUM WA THIEUTH +0x8CC0 0xBADE #HANGUL SYLLABLE MIEUM WA PHIEUPH +0x8CC1 0xBADF #HANGUL SYLLABLE MIEUM WA HIEUH +0x8CC2 0xBAC6 #HANGUL SYLLABLE MIEUM WA SSANGKIYEOK +0x8CC3 0xBB51 #HANGUL SYLLABLE MIEUM WEO KIYEOK +0x8CC4 0xBB53 #HANGUL SYLLABLE MIEUM WEO KIYEOKSIOS +0x8CC5 0xBB55 #HANGUL SYLLABLE MIEUM WEO NIEUNCIEUC +0x8CC6 0xBB56 #HANGUL SYLLABLE MIEUM WEO NIEUNHIEUH +0x8CC7 0xBB57 #HANGUL SYLLABLE MIEUM WEO TIKEUT +0x8CC8 0xBB59 #HANGUL SYLLABLE MIEUM WEO RIEULKIYEOK +0x8CC9 0xBB5A #HANGUL SYLLABLE MIEUM WEO RIEULMIEUM +0x8CCA 0xBB5B #HANGUL SYLLABLE MIEUM WEO RIEULPIEUP +0x8CCB 0xBB5C #HANGUL SYLLABLE MIEUM WEO RIEULSIOS +0x8CCC 0xBB5D #HANGUL SYLLABLE MIEUM WEO RIEULTHIEUTH +0x8CCD 0xBB5E #HANGUL SYLLABLE MIEUM WEO RIEULPHIEUPH +0x8CCE 0xBB5F #HANGUL SYLLABLE MIEUM WEO RIEULHIEUH +0x8CCF 0xBB62 #HANGUL SYLLABLE MIEUM WEO PIEUPSIOS +0x8CD0 0xBB65 #HANGUL SYLLABLE MIEUM WEO IEUNG +0x8CD1 0xBB66 #HANGUL SYLLABLE MIEUM WEO CIEUC +0x8CD2 0xBB67 #HANGUL SYLLABLE MIEUM WEO CHIEUCH +0x8CD3 0xBB68 #HANGUL SYLLABLE MIEUM WEO KHIEUKH +0x8CD4 0xBB69 #HANGUL SYLLABLE MIEUM WEO THIEUTH +0x8CD5 0xBB6A #HANGUL SYLLABLE MIEUM WEO PHIEUPH +0x8CD6 0xBB6B #HANGUL SYLLABLE MIEUM WEO HIEUH +0x8CD7 0xBB52 #HANGUL SYLLABLE MIEUM WEO SSANGKIYEOK +0x8CD8 0xBAE1 #HANGUL SYLLABLE MIEUM WAE KIYEOK +0x8CD9 0xBAE3 #HANGUL SYLLABLE MIEUM WAE KIYEOKSIOS +0x8CDA 0xBAE4 #HANGUL SYLLABLE MIEUM WAE NIEUN +0x8CDB 0xBAE5 #HANGUL SYLLABLE MIEUM WAE NIEUNCIEUC +0x8CDC 0xBAE6 #HANGUL SYLLABLE MIEUM WAE NIEUNHIEUH +0x8CDD 0xBAE7 #HANGUL SYLLABLE MIEUM WAE TIKEUT +0x8CDE 0xBAE8 #HANGUL SYLLABLE MIEUM WAE RIEUL +0x8CDF 0xBAE9 #HANGUL SYLLABLE MIEUM WAE RIEULKIYEOK +0x8CE0 0xBAEA #HANGUL SYLLABLE MIEUM WAE RIEULMIEUM +0x8CE1 0xBAEB #HANGUL SYLLABLE MIEUM WAE RIEULPIEUP +0x8CE2 0xBAEC #HANGUL SYLLABLE MIEUM WAE RIEULSIOS +0x8CE3 0xBAED #HANGUL SYLLABLE MIEUM WAE RIEULTHIEUTH +0x8CE4 0xBAEE #HANGUL SYLLABLE MIEUM WAE RIEULPHIEUPH +0x8CE5 0xBAEF #HANGUL SYLLABLE MIEUM WAE RIEULHIEUH +0x8CE6 0xBAF0 #HANGUL SYLLABLE MIEUM WAE MIEUM +0x8CE7 0xBAF1 #HANGUL SYLLABLE MIEUM WAE PIEUP +0x8CE8 0xBAF2 #HANGUL SYLLABLE MIEUM WAE PIEUPSIOS +0x8CE9 0xBAF3 #HANGUL SYLLABLE MIEUM WAE SIOS +0x8CEA 0xBAF5 #HANGUL SYLLABLE MIEUM WAE IEUNG +0x8CEB 0xBAF6 #HANGUL SYLLABLE MIEUM WAE CIEUC +0x8CEC 0xBAF7 #HANGUL SYLLABLE MIEUM WAE CHIEUCH +0x8CED 0xBAF8 #HANGUL SYLLABLE MIEUM WAE KHIEUKH +0x8CEE 0xBAF9 #HANGUL SYLLABLE MIEUM WAE THIEUTH +0x8CEF 0xBAFA #HANGUL SYLLABLE MIEUM WAE PHIEUPH +0x8CF0 0xBAFB #HANGUL SYLLABLE MIEUM WAE HIEUH +0x8CF1 0xBAE2 #HANGUL SYLLABLE MIEUM WAE SSANGKIYEOK +0x8CF2 0xBAF4 #HANGUL SYLLABLE MIEUM WAE SSANGSIOS +0x8CF3 0xBB6D #HANGUL SYLLABLE MIEUM WE KIYEOK +0x8CF4 0xBB6F #HANGUL SYLLABLE MIEUM WE KIYEOKSIOS +0x8CF5 0xBB70 #HANGUL SYLLABLE MIEUM WE NIEUN +0x8CF6 0xBB71 #HANGUL SYLLABLE MIEUM WE NIEUNCIEUC +0x8CF7 0xBB72 #HANGUL SYLLABLE MIEUM WE NIEUNHIEUH +0x8CF8 0xBB73 #HANGUL SYLLABLE MIEUM WE TIKEUT +0x8CF9 0xBB74 #HANGUL SYLLABLE MIEUM WE RIEUL +0x8CFA 0xBB75 #HANGUL SYLLABLE MIEUM WE RIEULKIYEOK +0x8CFB 0xBB76 #HANGUL SYLLABLE MIEUM WE RIEULMIEUM +0x8CFC 0xBB77 #HANGUL SYLLABLE MIEUM WE RIEULPIEUP +0x8CFD 0xBB78 #HANGUL SYLLABLE MIEUM WE RIEULSIOS +0x8CFE 0xBB79 #HANGUL SYLLABLE MIEUM WE RIEULTHIEUTH +0x8D41 0xBB7A #HANGUL SYLLABLE MIEUM WE RIEULPHIEUPH +0x8D42 0xBB7B #HANGUL SYLLABLE MIEUM WE RIEULHIEUH +0x8D43 0xBB7C #HANGUL SYLLABLE MIEUM WE MIEUM +0x8D44 0xBB7D #HANGUL SYLLABLE MIEUM WE PIEUP +0x8D45 0xBB7E #HANGUL SYLLABLE MIEUM WE PIEUPSIOS +0x8D46 0xBB7F #HANGUL SYLLABLE MIEUM WE SIOS +0x8D47 0xBB81 #HANGUL SYLLABLE MIEUM WE IEUNG +0x8D48 0xBB82 #HANGUL SYLLABLE MIEUM WE CIEUC +0x8D49 0xBB83 #HANGUL SYLLABLE MIEUM WE CHIEUCH +0x8D4A 0xBB84 #HANGUL SYLLABLE MIEUM WE KHIEUKH +0x8D4B 0xBB85 #HANGUL SYLLABLE MIEUM WE THIEUTH +0x8D4C 0xBB86 #HANGUL SYLLABLE MIEUM WE PHIEUPH +0x8D4D 0xBB87 #HANGUL SYLLABLE MIEUM WE HIEUH +0x8D4E 0xBB6E #HANGUL SYLLABLE MIEUM WE SSANGKIYEOK +0x8D4F 0xBB80 #HANGUL SYLLABLE MIEUM WE SSANGSIOS +0x8D50 0xBC19 #HANGUL SYLLABLE PIEUP A NIEUNCIEUC +0x8D51 0xBC1A #HANGUL SYLLABLE PIEUP A NIEUNHIEUH +0x8D52 0xBC20 #HANGUL SYLLABLE PIEUP A RIEULSIOS +0x8D53 0xBC21 #HANGUL SYLLABLE PIEUP A RIEULTHIEUTH +0x8D54 0xBC22 #HANGUL SYLLABLE PIEUP A RIEULPHIEUPH +0x8D55 0xBC23 #HANGUL SYLLABLE PIEUP A RIEULHIEUH +0x8D56 0xBC26 #HANGUL SYLLABLE PIEUP A PIEUPSIOS +0x8D57 0xBC2A #HANGUL SYLLABLE PIEUP A CIEUC +0x8D58 0xBC2B #HANGUL SYLLABLE PIEUP A CHIEUCH +0x8D59 0xBC2C #HANGUL SYLLABLE PIEUP A KHIEUKH +0x8D5A 0xBC2E #HANGUL SYLLABLE PIEUP A PHIEUPH +0x8D61 0xBC2F #HANGUL SYLLABLE PIEUP A HIEUH +0x8D62 0xBC28 #HANGUL SYLLABLE PIEUP A SSANGSIOS +0x8D63 0xBC4F #HANGUL SYLLABLE PIEUP YA KIYEOKSIOS +0x8D64 0xBC51 #HANGUL SYLLABLE PIEUP YA NIEUNCIEUC +0x8D65 0xBC52 #HANGUL SYLLABLE PIEUP YA NIEUNHIEUH +0x8D66 0xBC53 #HANGUL SYLLABLE PIEUP YA TIKEUT +0x8D67 0xBC54 #HANGUL SYLLABLE PIEUP YA RIEUL +0x8D68 0xBC55 #HANGUL SYLLABLE PIEUP YA RIEULKIYEOK +0x8D69 0xBC56 #HANGUL SYLLABLE PIEUP YA RIEULMIEUM +0x8D6A 0xBC57 #HANGUL SYLLABLE PIEUP YA RIEULPIEUP +0x8D6B 0xBC58 #HANGUL SYLLABLE PIEUP YA RIEULSIOS +0x8D6C 0xBC59 #HANGUL SYLLABLE PIEUP YA RIEULTHIEUTH +0x8D6D 0xBC5A #HANGUL SYLLABLE PIEUP YA RIEULPHIEUPH +0x8D6E 0xBC5B #HANGUL SYLLABLE PIEUP YA RIEULHIEUH +0x8D6F 0xBC5E #HANGUL SYLLABLE PIEUP YA PIEUPSIOS +0x8D70 0xBC5F #HANGUL SYLLABLE PIEUP YA SIOS +0x8D71 0xBC61 #HANGUL SYLLABLE PIEUP YA IEUNG +0x8D72 0xBC62 #HANGUL SYLLABLE PIEUP YA CIEUC +0x8D73 0xBC63 #HANGUL SYLLABLE PIEUP YA CHIEUCH +0x8D74 0xBC64 #HANGUL SYLLABLE PIEUP YA KHIEUKH +0x8D75 0xBC65 #HANGUL SYLLABLE PIEUP YA THIEUTH +0x8D76 0xBC66 #HANGUL SYLLABLE PIEUP YA PHIEUPH +0x8D77 0xBC67 #HANGUL SYLLABLE PIEUP YA HIEUH +0x8D78 0xBC4E #HANGUL SYLLABLE PIEUP YA SSANGKIYEOK +0x8D79 0xBC60 #HANGUL SYLLABLE PIEUP YA SSANGSIOS +0x8D7A 0xBC87 #HANGUL SYLLABLE PIEUP EO KIYEOKSIOS +0x8D81 0xBC89 #HANGUL SYLLABLE PIEUP EO NIEUNCIEUC +0x8D82 0xBC8A #HANGUL SYLLABLE PIEUP EO NIEUNHIEUH +0x8D83 0xBC8F #HANGUL SYLLABLE PIEUP EO RIEULPIEUP +0x8D84 0xBC90 #HANGUL SYLLABLE PIEUP EO RIEULSIOS +0x8D85 0xBC91 #HANGUL SYLLABLE PIEUP EO RIEULTHIEUTH +0x8D86 0xBC92 #HANGUL SYLLABLE PIEUP EO RIEULPHIEUPH +0x8D87 0xBC93 #HANGUL SYLLABLE PIEUP EO RIEULHIEUH +0x8D88 0xBC96 #HANGUL SYLLABLE PIEUP EO PIEUPSIOS +0x8D89 0xBC9B #HANGUL SYLLABLE PIEUP EO CHIEUCH +0x8D8A 0xBC9D #HANGUL SYLLABLE PIEUP EO THIEUTH +0x8D8B 0xBC9E #HANGUL SYLLABLE PIEUP EO PHIEUPH +0x8D8C 0xBC9F #HANGUL SYLLABLE PIEUP EO HIEUH +0x8D8D 0xBC86 #HANGUL SYLLABLE PIEUP EO SSANGKIYEOK +0x8D8E 0xBCBF #HANGUL SYLLABLE PIEUP YEO KIYEOKSIOS +0x8D8F 0xBCC1 #HANGUL SYLLABLE PIEUP YEO NIEUNCIEUC +0x8D90 0xBCC2 #HANGUL SYLLABLE PIEUP YEO NIEUNHIEUH +0x8D91 0xBCC3 #HANGUL SYLLABLE PIEUP YEO TIKEUT +0x8D92 0xBCC5 #HANGUL SYLLABLE PIEUP YEO RIEULKIYEOK +0x8D93 0xBCC6 #HANGUL SYLLABLE PIEUP YEO RIEULMIEUM +0x8D94 0xBCC7 #HANGUL SYLLABLE PIEUP YEO RIEULPIEUP +0x8D95 0xBCC8 #HANGUL SYLLABLE PIEUP YEO RIEULSIOS +0x8D96 0xBCC9 #HANGUL SYLLABLE PIEUP YEO RIEULTHIEUTH +0x8D97 0xBCCA #HANGUL SYLLABLE PIEUP YEO RIEULPHIEUPH +0x8D98 0xBCCB #HANGUL SYLLABLE PIEUP YEO RIEULHIEUH +0x8D99 0xBCCE #HANGUL SYLLABLE PIEUP YEO PIEUPSIOS +0x8D9A 0xBCD2 #HANGUL SYLLABLE PIEUP YEO CIEUC +0x8D9B 0xBCD4 #HANGUL SYLLABLE PIEUP YEO KHIEUKH +0x8D9C 0xBCD6 #HANGUL SYLLABLE PIEUP YEO PHIEUPH +0x8D9D 0xBCD7 #HANGUL SYLLABLE PIEUP YEO HIEUH +0x8D9E 0xBCBE #HANGUL SYLLABLE PIEUP YEO SSANGKIYEOK +0x8D9F 0xBCF7 #HANGUL SYLLABLE PIEUP O KIYEOKSIOS +0x8DA0 0xBCF9 #HANGUL SYLLABLE PIEUP O NIEUNCIEUC +0x8DA1 0xBCFA #HANGUL SYLLABLE PIEUP O NIEUNHIEUH +0x8DA2 0xBCFB #HANGUL SYLLABLE PIEUP O TIKEUT +0x8DA3 0xBCFD #HANGUL SYLLABLE PIEUP O RIEULKIYEOK +0x8DA4 0xBCFE #HANGUL SYLLABLE PIEUP O RIEULMIEUM +0x8DA5 0xBCFF #HANGUL SYLLABLE PIEUP O RIEULPIEUP +0x8DA6 0xBD00 #HANGUL SYLLABLE PIEUP O RIEULSIOS +0x8DA7 0xBD01 #HANGUL SYLLABLE PIEUP O RIEULTHIEUTH +0x8DA8 0xBD02 #HANGUL SYLLABLE PIEUP O RIEULPHIEUPH +0x8DA9 0xBD03 #HANGUL SYLLABLE PIEUP O RIEULHIEUH +0x8DAA 0xBD06 #HANGUL SYLLABLE PIEUP O PIEUPSIOS +0x8DAB 0xBD0A #HANGUL SYLLABLE PIEUP O CIEUC +0x8DAC 0xBD0B #HANGUL SYLLABLE PIEUP O CHIEUCH +0x8DAD 0xBD0C #HANGUL SYLLABLE PIEUP O KHIEUKH +0x8DAE 0xBD0D #HANGUL SYLLABLE PIEUP O THIEUTH +0x8DAF 0xBD0E #HANGUL SYLLABLE PIEUP O PHIEUPH +0x8DB0 0xBD08 #HANGUL SYLLABLE PIEUP O SSANGSIOS +0x8DB1 0xBD65 #HANGUL SYLLABLE PIEUP YO KIYEOK +0x8DB2 0xBD67 #HANGUL SYLLABLE PIEUP YO KIYEOKSIOS +0x8DB3 0xBD69 #HANGUL SYLLABLE PIEUP YO NIEUNCIEUC +0x8DB4 0xBD6A #HANGUL SYLLABLE PIEUP YO NIEUNHIEUH +0x8DB5 0xBD6B #HANGUL SYLLABLE PIEUP YO TIKEUT +0x8DB6 0xBD6D #HANGUL SYLLABLE PIEUP YO RIEULKIYEOK +0x8DB7 0xBD6E #HANGUL SYLLABLE PIEUP YO RIEULMIEUM +0x8DB8 0xBD6F #HANGUL SYLLABLE PIEUP YO RIEULPIEUP +0x8DB9 0xBD70 #HANGUL SYLLABLE PIEUP YO RIEULSIOS +0x8DBA 0xBD71 #HANGUL SYLLABLE PIEUP YO RIEULTHIEUTH +0x8DBB 0xBD72 #HANGUL SYLLABLE PIEUP YO RIEULPHIEUPH +0x8DBC 0xBD73 #HANGUL SYLLABLE PIEUP YO RIEULHIEUH +0x8DBD 0xBD74 #HANGUL SYLLABLE PIEUP YO MIEUM +0x8DBE 0xBD75 #HANGUL SYLLABLE PIEUP YO PIEUP +0x8DBF 0xBD76 #HANGUL SYLLABLE PIEUP YO PIEUPSIOS +0x8DC0 0xBD77 #HANGUL SYLLABLE PIEUP YO SIOS +0x8DC1 0xBD79 #HANGUL SYLLABLE PIEUP YO IEUNG +0x8DC2 0xBD7A #HANGUL SYLLABLE PIEUP YO CIEUC +0x8DC3 0xBD7B #HANGUL SYLLABLE PIEUP YO CHIEUCH +0x8DC4 0xBD7C #HANGUL SYLLABLE PIEUP YO KHIEUKH +0x8DC5 0xBD7D #HANGUL SYLLABLE PIEUP YO THIEUTH +0x8DC6 0xBD7E #HANGUL SYLLABLE PIEUP YO PHIEUPH +0x8DC7 0xBD7F #HANGUL SYLLABLE PIEUP YO HIEUH +0x8DC8 0xBD66 #HANGUL SYLLABLE PIEUP YO SSANGKIYEOK +0x8DC9 0xBD78 #HANGUL SYLLABLE PIEUP YO SSANGSIOS +0x8DCA 0xBD83 #HANGUL SYLLABLE PIEUP U KIYEOKSIOS +0x8DCB 0xBD85 #HANGUL SYLLABLE PIEUP U NIEUNCIEUC +0x8DCC 0xBD86 #HANGUL SYLLABLE PIEUP U NIEUNHIEUH +0x8DCD 0xBD8B #HANGUL SYLLABLE PIEUP U RIEULPIEUP +0x8DCE 0xBD8C #HANGUL SYLLABLE PIEUP U RIEULSIOS +0x8DCF 0xBD8D #HANGUL SYLLABLE PIEUP U RIEULTHIEUTH +0x8DD0 0xBD8E #HANGUL SYLLABLE PIEUP U RIEULPHIEUPH +0x8DD1 0xBD8F #HANGUL SYLLABLE PIEUP U RIEULHIEUH +0x8DD2 0xBD92 #HANGUL SYLLABLE PIEUP U PIEUPSIOS +0x8DD3 0xBD96 #HANGUL SYLLABLE PIEUP U CIEUC +0x8DD4 0xBD97 #HANGUL SYLLABLE PIEUP U CHIEUCH +0x8DD5 0xBD98 #HANGUL SYLLABLE PIEUP U KHIEUKH +0x8DD6 0xBD9B #HANGUL SYLLABLE PIEUP U HIEUH +0x8DD7 0xBD82 #HANGUL SYLLABLE PIEUP U SSANGKIYEOK +0x8DD8 0xBD94 #HANGUL SYLLABLE PIEUP U SSANGSIOS +0x8DD9 0xBDF1 #HANGUL SYLLABLE PIEUP YU KIYEOK +0x8DDA 0xBDF3 #HANGUL SYLLABLE PIEUP YU KIYEOKSIOS +0x8DDB 0xBDF5 #HANGUL SYLLABLE PIEUP YU NIEUNCIEUC +0x8DDC 0xBDF6 #HANGUL SYLLABLE PIEUP YU NIEUNHIEUH +0x8DDD 0xBDF7 #HANGUL SYLLABLE PIEUP YU TIKEUT +0x8DDE 0xBDF9 #HANGUL SYLLABLE PIEUP YU RIEULKIYEOK +0x8DDF 0xBDFA #HANGUL SYLLABLE PIEUP YU RIEULMIEUM +0x8DE0 0xBDFB #HANGUL SYLLABLE PIEUP YU RIEULPIEUP +0x8DE1 0xBDFC #HANGUL SYLLABLE PIEUP YU RIEULSIOS +0x8DE2 0xBDFD #HANGUL SYLLABLE PIEUP YU RIEULTHIEUTH +0x8DE3 0xBDFE #HANGUL SYLLABLE PIEUP YU RIEULPHIEUPH +0x8DE4 0xBDFF #HANGUL SYLLABLE PIEUP YU RIEULHIEUH +0x8DE5 0xBE02 #HANGUL SYLLABLE PIEUP YU PIEUPSIOS +0x8DE6 0xBE06 #HANGUL SYLLABLE PIEUP YU CIEUC +0x8DE7 0xBE07 #HANGUL SYLLABLE PIEUP YU CHIEUCH +0x8DE8 0xBE08 #HANGUL SYLLABLE PIEUP YU KHIEUKH +0x8DE9 0xBE09 #HANGUL SYLLABLE PIEUP YU THIEUTH +0x8DEA 0xBE0A #HANGUL SYLLABLE PIEUP YU PHIEUPH +0x8DEB 0xBE0B #HANGUL SYLLABLE PIEUP YU HIEUH +0x8DEC 0xBDF2 #HANGUL SYLLABLE PIEUP YU SSANGKIYEOK +0x8DED 0xBE04 #HANGUL SYLLABLE PIEUP YU SSANGSIOS +0x8DEE 0xBE0F #HANGUL SYLLABLE PIEUP EU KIYEOKSIOS +0x8DEF 0xBE11 #HANGUL SYLLABLE PIEUP EU NIEUNCIEUC +0x8DF0 0xBE12 #HANGUL SYLLABLE PIEUP EU NIEUNHIEUH +0x8DF1 0xBE13 #HANGUL SYLLABLE PIEUP EU TIKEUT +0x8DF2 0xBE15 #HANGUL SYLLABLE PIEUP EU RIEULKIYEOK +0x8DF3 0xBE16 #HANGUL SYLLABLE PIEUP EU RIEULMIEUM +0x8DF4 0xBE17 #HANGUL SYLLABLE PIEUP EU RIEULPIEUP +0x8DF5 0xBE18 #HANGUL SYLLABLE PIEUP EU RIEULSIOS +0x8DF6 0xBE19 #HANGUL SYLLABLE PIEUP EU RIEULTHIEUTH +0x8DF7 0xBE1A #HANGUL SYLLABLE PIEUP EU RIEULPHIEUPH +0x8DF8 0xBE1B #HANGUL SYLLABLE PIEUP EU RIEULHIEUH +0x8DF9 0xBE1E #HANGUL SYLLABLE PIEUP EU PIEUPSIOS +0x8DFA 0xBE22 #HANGUL SYLLABLE PIEUP EU CIEUC +0x8DFB 0xBE23 #HANGUL SYLLABLE PIEUP EU CHIEUCH +0x8DFC 0xBE24 #HANGUL SYLLABLE PIEUP EU KHIEUKH +0x8DFD 0xBE25 #HANGUL SYLLABLE PIEUP EU THIEUTH +0x8DFE 0xBE26 #HANGUL SYLLABLE PIEUP EU PHIEUPH +0x8E41 0xBE27 #HANGUL SYLLABLE PIEUP EU HIEUH +0x8E42 0xBE0E #HANGUL SYLLABLE PIEUP EU SSANGKIYEOK +0x8E43 0xBE20 #HANGUL SYLLABLE PIEUP EU SSANGSIOS +0x8E44 0xBE47 #HANGUL SYLLABLE PIEUP I KIYEOKSIOS +0x8E45 0xBE49 #HANGUL SYLLABLE PIEUP I NIEUNCIEUC +0x8E46 0xBE4A #HANGUL SYLLABLE PIEUP I NIEUNHIEUH +0x8E47 0xBE4B #HANGUL SYLLABLE PIEUP I TIKEUT +0x8E48 0xBE4D #HANGUL SYLLABLE PIEUP I RIEULKIYEOK +0x8E49 0xBE4F #HANGUL SYLLABLE PIEUP I RIEULPIEUP +0x8E4A 0xBE50 #HANGUL SYLLABLE PIEUP I RIEULSIOS +0x8E4B 0xBE51 #HANGUL SYLLABLE PIEUP I RIEULTHIEUTH +0x8E4C 0xBE52 #HANGUL SYLLABLE PIEUP I RIEULPHIEUPH +0x8E4D 0xBE53 #HANGUL SYLLABLE PIEUP I RIEULHIEUH +0x8E4E 0xBE56 #HANGUL SYLLABLE PIEUP I PIEUPSIOS +0x8E4F 0xBE5C #HANGUL SYLLABLE PIEUP I KHIEUKH +0x8E50 0xBE5D #HANGUL SYLLABLE PIEUP I THIEUTH +0x8E51 0xBE5E #HANGUL SYLLABLE PIEUP I PHIEUPH +0x8E52 0xBE5F #HANGUL SYLLABLE PIEUP I HIEUH +0x8E53 0xBE46 #HANGUL SYLLABLE PIEUP I SSANGKIYEOK +0x8E54 0xBE58 #HANGUL SYLLABLE PIEUP I SSANGSIOS +0x8E55 0xBC33 #HANGUL SYLLABLE PIEUP AE KIYEOKSIOS +0x8E56 0xBC35 #HANGUL SYLLABLE PIEUP AE NIEUNCIEUC +0x8E57 0xBC36 #HANGUL SYLLABLE PIEUP AE NIEUNHIEUH +0x8E58 0xBC39 #HANGUL SYLLABLE PIEUP AE RIEULKIYEOK +0x8E59 0xBC3A #HANGUL SYLLABLE PIEUP AE RIEULMIEUM +0x8E5A 0xBC3B #HANGUL SYLLABLE PIEUP AE RIEULPIEUP +0x8E61 0xBC3C #HANGUL SYLLABLE PIEUP AE RIEULSIOS +0x8E62 0xBC3D #HANGUL SYLLABLE PIEUP AE RIEULTHIEUTH +0x8E63 0xBC3E #HANGUL SYLLABLE PIEUP AE RIEULPHIEUPH +0x8E64 0xBC3F #HANGUL SYLLABLE PIEUP AE RIEULHIEUH +0x8E65 0xBC42 #HANGUL SYLLABLE PIEUP AE PIEUPSIOS +0x8E66 0xBC46 #HANGUL SYLLABLE PIEUP AE CIEUC +0x8E67 0xBC47 #HANGUL SYLLABLE PIEUP AE CHIEUCH +0x8E68 0xBC48 #HANGUL SYLLABLE PIEUP AE KHIEUKH +0x8E69 0xBC4A #HANGUL SYLLABLE PIEUP AE PHIEUPH +0x8E6A 0xBC4B #HANGUL SYLLABLE PIEUP AE HIEUH +0x8E6B 0xBC32 #HANGUL SYLLABLE PIEUP AE SSANGKIYEOK +0x8E6C 0xBC69 #HANGUL SYLLABLE PIEUP YAE KIYEOK +0x8E6D 0xBC6B #HANGUL SYLLABLE PIEUP YAE KIYEOKSIOS +0x8E6E 0xBC6C #HANGUL SYLLABLE PIEUP YAE NIEUN +0x8E6F 0xBC6D #HANGUL SYLLABLE PIEUP YAE NIEUNCIEUC +0x8E70 0xBC6E #HANGUL SYLLABLE PIEUP YAE NIEUNHIEUH +0x8E71 0xBC6F #HANGUL SYLLABLE PIEUP YAE TIKEUT +0x8E72 0xBC70 #HANGUL SYLLABLE PIEUP YAE RIEUL +0x8E73 0xBC71 #HANGUL SYLLABLE PIEUP YAE RIEULKIYEOK +0x8E74 0xBC72 #HANGUL SYLLABLE PIEUP YAE RIEULMIEUM +0x8E75 0xBC73 #HANGUL SYLLABLE PIEUP YAE RIEULPIEUP +0x8E76 0xBC74 #HANGUL SYLLABLE PIEUP YAE RIEULSIOS +0x8E77 0xBC75 #HANGUL SYLLABLE PIEUP YAE RIEULTHIEUTH +0x8E78 0xBC76 #HANGUL SYLLABLE PIEUP YAE RIEULPHIEUPH +0x8E79 0xBC77 #HANGUL SYLLABLE PIEUP YAE RIEULHIEUH +0x8E7A 0xBC78 #HANGUL SYLLABLE PIEUP YAE MIEUM +0x8E81 0xBC79 #HANGUL SYLLABLE PIEUP YAE PIEUP +0x8E82 0xBC7A #HANGUL SYLLABLE PIEUP YAE PIEUPSIOS +0x8E83 0xBC7B #HANGUL SYLLABLE PIEUP YAE SIOS +0x8E84 0xBC7D #HANGUL SYLLABLE PIEUP YAE IEUNG +0x8E85 0xBC7E #HANGUL SYLLABLE PIEUP YAE CIEUC +0x8E86 0xBC7F #HANGUL SYLLABLE PIEUP YAE CHIEUCH +0x8E87 0xBC80 #HANGUL SYLLABLE PIEUP YAE KHIEUKH +0x8E88 0xBC81 #HANGUL SYLLABLE PIEUP YAE THIEUTH +0x8E89 0xBC82 #HANGUL SYLLABLE PIEUP YAE PHIEUPH +0x8E8A 0xBC83 #HANGUL SYLLABLE PIEUP YAE HIEUH +0x8E8B 0xBC6A #HANGUL SYLLABLE PIEUP YAE SSANGKIYEOK +0x8E8C 0xBC7C #HANGUL SYLLABLE PIEUP YAE SSANGSIOS +0x8E8D 0xBCA3 #HANGUL SYLLABLE PIEUP E KIYEOKSIOS +0x8E8E 0xBCA5 #HANGUL SYLLABLE PIEUP E NIEUNCIEUC +0x8E8F 0xBCA6 #HANGUL SYLLABLE PIEUP E NIEUNHIEUH +0x8E90 0xBCA9 #HANGUL SYLLABLE PIEUP E RIEULKIYEOK +0x8E91 0xBCAA #HANGUL SYLLABLE PIEUP E RIEULMIEUM +0x8E92 0xBCAB #HANGUL SYLLABLE PIEUP E RIEULPIEUP +0x8E93 0xBCAC #HANGUL SYLLABLE PIEUP E RIEULSIOS +0x8E94 0xBCAD #HANGUL SYLLABLE PIEUP E RIEULTHIEUTH +0x8E95 0xBCAE #HANGUL SYLLABLE PIEUP E RIEULPHIEUPH +0x8E96 0xBCAF #HANGUL SYLLABLE PIEUP E RIEULHIEUH +0x8E97 0xBCB2 #HANGUL SYLLABLE PIEUP E PIEUPSIOS +0x8E98 0xBCB6 #HANGUL SYLLABLE PIEUP E CIEUC +0x8E99 0xBCB7 #HANGUL SYLLABLE PIEUP E CHIEUCH +0x8E9A 0xBCB8 #HANGUL SYLLABLE PIEUP E KHIEUKH +0x8E9B 0xBCB9 #HANGUL SYLLABLE PIEUP E THIEUTH +0x8E9C 0xBCBA #HANGUL SYLLABLE PIEUP E PHIEUPH +0x8E9D 0xBCBB #HANGUL SYLLABLE PIEUP E HIEUH +0x8E9E 0xBCA2 #HANGUL SYLLABLE PIEUP E SSANGKIYEOK +0x8E9F 0xBCD9 #HANGUL SYLLABLE PIEUP YE KIYEOK +0x8EA0 0xBCDB #HANGUL SYLLABLE PIEUP YE KIYEOKSIOS +0x8EA1 0xBCDD #HANGUL SYLLABLE PIEUP YE NIEUNCIEUC +0x8EA2 0xBCDE #HANGUL SYLLABLE PIEUP YE NIEUNHIEUH +0x8EA3 0xBCDF #HANGUL SYLLABLE PIEUP YE TIKEUT +0x8EA4 0xBCE0 #HANGUL SYLLABLE PIEUP YE RIEUL +0x8EA5 0xBCE1 #HANGUL SYLLABLE PIEUP YE RIEULKIYEOK +0x8EA6 0xBCE2 #HANGUL SYLLABLE PIEUP YE RIEULMIEUM +0x8EA7 0xBCE3 #HANGUL SYLLABLE PIEUP YE RIEULPIEUP +0x8EA8 0xBCE4 #HANGUL SYLLABLE PIEUP YE RIEULSIOS +0x8EA9 0xBCE5 #HANGUL SYLLABLE PIEUP YE RIEULTHIEUTH +0x8EAA 0xBCE6 #HANGUL SYLLABLE PIEUP YE RIEULPHIEUPH +0x8EAB 0xBCE7 #HANGUL SYLLABLE PIEUP YE RIEULHIEUH +0x8EAC 0xBCE8 #HANGUL SYLLABLE PIEUP YE MIEUM +0x8EAD 0xBCE9 #HANGUL SYLLABLE PIEUP YE PIEUP +0x8EAE 0xBCEA #HANGUL SYLLABLE PIEUP YE PIEUPSIOS +0x8EAF 0xBCEB #HANGUL SYLLABLE PIEUP YE SIOS +0x8EB0 0xBCED #HANGUL SYLLABLE PIEUP YE IEUNG +0x8EB1 0xBCEE #HANGUL SYLLABLE PIEUP YE CIEUC +0x8EB2 0xBCEF #HANGUL SYLLABLE PIEUP YE CHIEUCH +0x8EB3 0xBCF0 #HANGUL SYLLABLE PIEUP YE KHIEUKH +0x8EB4 0xBCF1 #HANGUL SYLLABLE PIEUP YE THIEUTH +0x8EB5 0xBCF2 #HANGUL SYLLABLE PIEUP YE PHIEUPH +0x8EB6 0xBCF3 #HANGUL SYLLABLE PIEUP YE HIEUH +0x8EB7 0xBCDA #HANGUL SYLLABLE PIEUP YE SSANGKIYEOK +0x8EB8 0xBCEC #HANGUL SYLLABLE PIEUP YE SSANGSIOS +0x8EB9 0xBD4B #HANGUL SYLLABLE PIEUP OE KIYEOKSIOS +0x8EBA 0xBD4D #HANGUL SYLLABLE PIEUP OE NIEUNCIEUC +0x8EBB 0xBD4E #HANGUL SYLLABLE PIEUP OE NIEUNHIEUH +0x8EBC 0xBD4F #HANGUL SYLLABLE PIEUP OE TIKEUT +0x8EBD 0xBD51 #HANGUL SYLLABLE PIEUP OE RIEULKIYEOK +0x8EBE 0xBD52 #HANGUL SYLLABLE PIEUP OE RIEULMIEUM +0x8EBF 0xBD53 #HANGUL SYLLABLE PIEUP OE RIEULPIEUP +0x8EC0 0xBD54 #HANGUL SYLLABLE PIEUP OE RIEULSIOS +0x8EC1 0xBD55 #HANGUL SYLLABLE PIEUP OE RIEULTHIEUTH +0x8EC2 0xBD56 #HANGUL SYLLABLE PIEUP OE RIEULPHIEUPH +0x8EC3 0xBD57 #HANGUL SYLLABLE PIEUP OE RIEULHIEUH +0x8EC4 0xBD5A #HANGUL SYLLABLE PIEUP OE PIEUPSIOS +0x8EC5 0xBD5B #HANGUL SYLLABLE PIEUP OE SIOS +0x8EC6 0xBD5D #HANGUL SYLLABLE PIEUP OE IEUNG +0x8EC7 0xBD5E #HANGUL SYLLABLE PIEUP OE CIEUC +0x8EC8 0xBD5F #HANGUL SYLLABLE PIEUP OE CHIEUCH +0x8EC9 0xBD60 #HANGUL SYLLABLE PIEUP OE KHIEUKH +0x8ECA 0xBD61 #HANGUL SYLLABLE PIEUP OE THIEUTH +0x8ECB 0xBD62 #HANGUL SYLLABLE PIEUP OE PHIEUPH +0x8ECC 0xBD63 #HANGUL SYLLABLE PIEUP OE HIEUH +0x8ECD 0xBD4A #HANGUL SYLLABLE PIEUP OE SSANGKIYEOK +0x8ECE 0xBDD7 #HANGUL SYLLABLE PIEUP WI KIYEOKSIOS +0x8ECF 0xBDD9 #HANGUL SYLLABLE PIEUP WI NIEUNCIEUC +0x8ED0 0xBDDA #HANGUL SYLLABLE PIEUP WI NIEUNHIEUH +0x8ED1 0xBDDB #HANGUL SYLLABLE PIEUP WI TIKEUT +0x8ED2 0xBDDD #HANGUL SYLLABLE PIEUP WI RIEULKIYEOK +0x8ED3 0xBDDE #HANGUL SYLLABLE PIEUP WI RIEULMIEUM +0x8ED4 0xBDDF #HANGUL SYLLABLE PIEUP WI RIEULPIEUP +0x8ED5 0xBDE0 #HANGUL SYLLABLE PIEUP WI RIEULSIOS +0x8ED6 0xBDE1 #HANGUL SYLLABLE PIEUP WI RIEULTHIEUTH +0x8ED7 0xBDE2 #HANGUL SYLLABLE PIEUP WI RIEULPHIEUPH +0x8ED8 0xBDE3 #HANGUL SYLLABLE PIEUP WI RIEULHIEUH +0x8ED9 0xBDE4 #HANGUL SYLLABLE PIEUP WI MIEUM +0x8EDA 0xBDE5 #HANGUL SYLLABLE PIEUP WI PIEUP +0x8EDB 0xBDE6 #HANGUL SYLLABLE PIEUP WI PIEUPSIOS +0x8EDC 0xBDE7 #HANGUL SYLLABLE PIEUP WI SIOS +0x8EDD 0xBDEA #HANGUL SYLLABLE PIEUP WI CIEUC +0x8EDE 0xBDEB #HANGUL SYLLABLE PIEUP WI CHIEUCH +0x8EDF 0xBDEC #HANGUL SYLLABLE PIEUP WI KHIEUKH +0x8EE0 0xBDED #HANGUL SYLLABLE PIEUP WI THIEUTH +0x8EE1 0xBDEE #HANGUL SYLLABLE PIEUP WI PHIEUPH +0x8EE2 0xBDEF #HANGUL SYLLABLE PIEUP WI HIEUH +0x8EE3 0xBDD6 #HANGUL SYLLABLE PIEUP WI SSANGKIYEOK +0x8EE4 0xBDE8 #HANGUL SYLLABLE PIEUP WI SSANGSIOS +0x8EE5 0xBE29 #HANGUL SYLLABLE PIEUP YI KIYEOK +0x8EE6 0xBE2B #HANGUL SYLLABLE PIEUP YI KIYEOKSIOS +0x8EE7 0xBE2D #HANGUL SYLLABLE PIEUP YI NIEUNCIEUC +0x8EE8 0xBE2E #HANGUL SYLLABLE PIEUP YI NIEUNHIEUH +0x8EE9 0xBE2F #HANGUL SYLLABLE PIEUP YI TIKEUT +0x8EEA 0xBE31 #HANGUL SYLLABLE PIEUP YI RIEULKIYEOK +0x8EEB 0xBE32 #HANGUL SYLLABLE PIEUP YI RIEULMIEUM +0x8EEC 0xBE33 #HANGUL SYLLABLE PIEUP YI RIEULPIEUP +0x8EED 0xBE34 #HANGUL SYLLABLE PIEUP YI RIEULSIOS +0x8EEE 0xBE35 #HANGUL SYLLABLE PIEUP YI RIEULTHIEUTH +0x8EEF 0xBE36 #HANGUL SYLLABLE PIEUP YI RIEULPHIEUPH +0x8EF0 0xBE37 #HANGUL SYLLABLE PIEUP YI RIEULHIEUH +0x8EF1 0xBE38 #HANGUL SYLLABLE PIEUP YI MIEUM +0x8EF2 0xBE39 #HANGUL SYLLABLE PIEUP YI PIEUP +0x8EF3 0xBE3A #HANGUL SYLLABLE PIEUP YI PIEUPSIOS +0x8EF4 0xBE3B #HANGUL SYLLABLE PIEUP YI SIOS +0x8EF5 0xBE3E #HANGUL SYLLABLE PIEUP YI CIEUC +0x8EF6 0xBE3F #HANGUL SYLLABLE PIEUP YI CHIEUCH +0x8EF7 0xBE40 #HANGUL SYLLABLE PIEUP YI KHIEUKH +0x8EF8 0xBE41 #HANGUL SYLLABLE PIEUP YI THIEUTH +0x8EF9 0xBE42 #HANGUL SYLLABLE PIEUP YI PHIEUPH +0x8EFA 0xBE43 #HANGUL SYLLABLE PIEUP YI HIEUH +0x8EFB 0xBE2A #HANGUL SYLLABLE PIEUP YI SSANGKIYEOK +0x8EFC 0xBE3C #HANGUL SYLLABLE PIEUP YI SSANGSIOS +0x8EFD 0xBD11 #HANGUL SYLLABLE PIEUP WA KIYEOK +0x8EFE 0xBD13 #HANGUL SYLLABLE PIEUP WA KIYEOKSIOS +0x8F41 0xBD15 #HANGUL SYLLABLE PIEUP WA NIEUNCIEUC +0x8F42 0xBD16 #HANGUL SYLLABLE PIEUP WA NIEUNHIEUH +0x8F43 0xBD17 #HANGUL SYLLABLE PIEUP WA TIKEUT +0x8F44 0xBD18 #HANGUL SYLLABLE PIEUP WA RIEUL +0x8F45 0xBD19 #HANGUL SYLLABLE PIEUP WA RIEULKIYEOK +0x8F46 0xBD1A #HANGUL SYLLABLE PIEUP WA RIEULMIEUM +0x8F47 0xBD1B #HANGUL SYLLABLE PIEUP WA RIEULPIEUP +0x8F48 0xBD1C #HANGUL SYLLABLE PIEUP WA RIEULSIOS +0x8F49 0xBD1D #HANGUL SYLLABLE PIEUP WA RIEULTHIEUTH +0x8F4A 0xBD1E #HANGUL SYLLABLE PIEUP WA RIEULPHIEUPH +0x8F4B 0xBD1F #HANGUL SYLLABLE PIEUP WA RIEULHIEUH +0x8F4C 0xBD20 #HANGUL SYLLABLE PIEUP WA MIEUM +0x8F4D 0xBD22 #HANGUL SYLLABLE PIEUP WA PIEUPSIOS +0x8F4E 0xBD25 #HANGUL SYLLABLE PIEUP WA IEUNG +0x8F4F 0xBD26 #HANGUL SYLLABLE PIEUP WA CIEUC +0x8F50 0xBD27 #HANGUL SYLLABLE PIEUP WA CHIEUCH +0x8F51 0xBD28 #HANGUL SYLLABLE PIEUP WA KHIEUKH +0x8F52 0xBD29 #HANGUL SYLLABLE PIEUP WA THIEUTH +0x8F53 0xBD2A #HANGUL SYLLABLE PIEUP WA PHIEUPH +0x8F54 0xBD2B #HANGUL SYLLABLE PIEUP WA HIEUH +0x8F55 0xBD12 #HANGUL SYLLABLE PIEUP WA SSANGKIYEOK +0x8F56 0xBD9D #HANGUL SYLLABLE PIEUP WEO KIYEOK +0x8F57 0xBD9F #HANGUL SYLLABLE PIEUP WEO KIYEOKSIOS +0x8F58 0xBDA0 #HANGUL SYLLABLE PIEUP WEO NIEUN +0x8F59 0xBDA1 #HANGUL SYLLABLE PIEUP WEO NIEUNCIEUC +0x8F5A 0xBDA2 #HANGUL SYLLABLE PIEUP WEO NIEUNHIEUH +0x8F61 0xBDA3 #HANGUL SYLLABLE PIEUP WEO TIKEUT +0x8F62 0xBDA5 #HANGUL SYLLABLE PIEUP WEO RIEULKIYEOK +0x8F63 0xBDA6 #HANGUL SYLLABLE PIEUP WEO RIEULMIEUM +0x8F64 0xBDA7 #HANGUL SYLLABLE PIEUP WEO RIEULPIEUP +0x8F65 0xBDA8 #HANGUL SYLLABLE PIEUP WEO RIEULSIOS +0x8F66 0xBDA9 #HANGUL SYLLABLE PIEUP WEO RIEULTHIEUTH +0x8F67 0xBDAA #HANGUL SYLLABLE PIEUP WEO RIEULPHIEUPH +0x8F68 0xBDAB #HANGUL SYLLABLE PIEUP WEO RIEULHIEUH +0x8F69 0xBDAC #HANGUL SYLLABLE PIEUP WEO MIEUM +0x8F6A 0xBDAD #HANGUL SYLLABLE PIEUP WEO PIEUP +0x8F6B 0xBDAE #HANGUL SYLLABLE PIEUP WEO PIEUPSIOS +0x8F6C 0xBDB1 #HANGUL SYLLABLE PIEUP WEO IEUNG +0x8F6D 0xBDB2 #HANGUL SYLLABLE PIEUP WEO CIEUC +0x8F6E 0xBDB3 #HANGUL SYLLABLE PIEUP WEO CHIEUCH +0x8F6F 0xBDB5 #HANGUL SYLLABLE PIEUP WEO THIEUTH +0x8F70 0xBDB6 #HANGUL SYLLABLE PIEUP WEO PHIEUPH +0x8F71 0xBDB7 #HANGUL SYLLABLE PIEUP WEO HIEUH +0x8F72 0xBD9E #HANGUL SYLLABLE PIEUP WEO SSANGKIYEOK +0x8F73 0xBD2D #HANGUL SYLLABLE PIEUP WAE KIYEOK +0x8F74 0xBD2F #HANGUL SYLLABLE PIEUP WAE KIYEOKSIOS +0x8F75 0xBD31 #HANGUL SYLLABLE PIEUP WAE NIEUNCIEUC +0x8F76 0xBD32 #HANGUL SYLLABLE PIEUP WAE NIEUNHIEUH +0x8F77 0xBD33 #HANGUL SYLLABLE PIEUP WAE TIKEUT +0x8F78 0xBD34 #HANGUL SYLLABLE PIEUP WAE RIEUL +0x8F79 0xBD35 #HANGUL SYLLABLE PIEUP WAE RIEULKIYEOK +0x8F7A 0xBD36 #HANGUL SYLLABLE PIEUP WAE RIEULMIEUM +0x8F81 0xBD37 #HANGUL SYLLABLE PIEUP WAE RIEULPIEUP +0x8F82 0xBD38 #HANGUL SYLLABLE PIEUP WAE RIEULSIOS +0x8F83 0xBD39 #HANGUL SYLLABLE PIEUP WAE RIEULTHIEUTH +0x8F84 0xBD3A #HANGUL SYLLABLE PIEUP WAE RIEULPHIEUPH +0x8F85 0xBD3B #HANGUL SYLLABLE PIEUP WAE RIEULHIEUH +0x8F86 0xBD3C #HANGUL SYLLABLE PIEUP WAE MIEUM +0x8F87 0xBD3D #HANGUL SYLLABLE PIEUP WAE PIEUP +0x8F88 0xBD3E #HANGUL SYLLABLE PIEUP WAE PIEUPSIOS +0x8F89 0xBD3F #HANGUL SYLLABLE PIEUP WAE SIOS +0x8F8A 0xBD41 #HANGUL SYLLABLE PIEUP WAE IEUNG +0x8F8B 0xBD42 #HANGUL SYLLABLE PIEUP WAE CIEUC +0x8F8C 0xBD43 #HANGUL SYLLABLE PIEUP WAE CHIEUCH +0x8F8D 0xBD44 #HANGUL SYLLABLE PIEUP WAE KHIEUKH +0x8F8E 0xBD45 #HANGUL SYLLABLE PIEUP WAE THIEUTH +0x8F8F 0xBD46 #HANGUL SYLLABLE PIEUP WAE PHIEUPH +0x8F90 0xBD47 #HANGUL SYLLABLE PIEUP WAE HIEUH +0x8F91 0xBD2E #HANGUL SYLLABLE PIEUP WAE SSANGKIYEOK +0x8F92 0xBDB9 #HANGUL SYLLABLE PIEUP WE KIYEOK +0x8F93 0xBDBB #HANGUL SYLLABLE PIEUP WE KIYEOKSIOS +0x8F94 0xBDBC #HANGUL SYLLABLE PIEUP WE NIEUN +0x8F95 0xBDBD #HANGUL SYLLABLE PIEUP WE NIEUNCIEUC +0x8F96 0xBDBE #HANGUL SYLLABLE PIEUP WE NIEUNHIEUH +0x8F97 0xBDBF #HANGUL SYLLABLE PIEUP WE TIKEUT +0x8F98 0xBDC0 #HANGUL SYLLABLE PIEUP WE RIEUL +0x8F99 0xBDC1 #HANGUL SYLLABLE PIEUP WE RIEULKIYEOK +0x8F9A 0xBDC2 #HANGUL SYLLABLE PIEUP WE RIEULMIEUM +0x8F9B 0xBDC3 #HANGUL SYLLABLE PIEUP WE RIEULPIEUP +0x8F9C 0xBDC4 #HANGUL SYLLABLE PIEUP WE RIEULSIOS +0x8F9D 0xBDC5 #HANGUL SYLLABLE PIEUP WE RIEULTHIEUTH +0x8F9E 0xBDC6 #HANGUL SYLLABLE PIEUP WE RIEULPHIEUPH +0x8F9F 0xBDC7 #HANGUL SYLLABLE PIEUP WE RIEULHIEUH +0x8FA0 0xBDC8 #HANGUL SYLLABLE PIEUP WE MIEUM +0x8FA1 0xBDC9 #HANGUL SYLLABLE PIEUP WE PIEUP +0x8FA2 0xBDCA #HANGUL SYLLABLE PIEUP WE PIEUPSIOS +0x8FA3 0xBDCB #HANGUL SYLLABLE PIEUP WE SIOS +0x8FA4 0xBDCD #HANGUL SYLLABLE PIEUP WE IEUNG +0x8FA5 0xBDCE #HANGUL SYLLABLE PIEUP WE CIEUC +0x8FA6 0xBDCF #HANGUL SYLLABLE PIEUP WE CHIEUCH +0x8FA7 0xBDD0 #HANGUL SYLLABLE PIEUP WE KHIEUKH +0x8FA8 0xBDD1 #HANGUL SYLLABLE PIEUP WE THIEUTH +0x8FA9 0xBDD2 #HANGUL SYLLABLE PIEUP WE PHIEUPH +0x8FAA 0xBDD3 #HANGUL SYLLABLE PIEUP WE HIEUH +0x8FAB 0xBDBA #HANGUL SYLLABLE PIEUP WE SSANGKIYEOK +0x8FAC 0xBDCC #HANGUL SYLLABLE PIEUP WE SSANGSIOS +0x8FAD 0xC0B1 #HANGUL SYLLABLE SIOS A NIEUNCIEUC +0x8FAE 0xC0B2 #HANGUL SYLLABLE SIOS A NIEUNHIEUH +0x8FAF 0xC0B7 #HANGUL SYLLABLE SIOS A RIEULPIEUP +0x8FB0 0xC0B8 #HANGUL SYLLABLE SIOS A RIEULSIOS +0x8FB1 0xC0B9 #HANGUL SYLLABLE SIOS A RIEULTHIEUTH +0x8FB2 0xC0BA #HANGUL SYLLABLE SIOS A RIEULPHIEUPH +0x8FB3 0xC0BB #HANGUL SYLLABLE SIOS A RIEULHIEUH +0x8FB4 0xC0BE #HANGUL SYLLABLE SIOS A PIEUPSIOS +0x8FB5 0xC0C2 #HANGUL SYLLABLE SIOS A CIEUC +0x8FB6 0xC0C3 #HANGUL SYLLABLE SIOS A CHIEUCH +0x8FB7 0xC0C4 #HANGUL SYLLABLE SIOS A KHIEUKH +0x8FB8 0xC0C6 #HANGUL SYLLABLE SIOS A PHIEUPH +0x8FB9 0xC0C7 #HANGUL SYLLABLE SIOS A HIEUH +0x8FBA 0xC0AE #HANGUL SYLLABLE SIOS A SSANGKIYEOK +0x8FBB 0xC0E7 #HANGUL SYLLABLE SIOS YA KIYEOKSIOS +0x8FBC 0xC0E9 #HANGUL SYLLABLE SIOS YA NIEUNCIEUC +0x8FBD 0xC0EA #HANGUL SYLLABLE SIOS YA NIEUNHIEUH +0x8FBE 0xC0EB #HANGUL SYLLABLE SIOS YA TIKEUT +0x8FBF 0xC0ED #HANGUL SYLLABLE SIOS YA RIEULKIYEOK +0x8FC0 0xC0EE #HANGUL SYLLABLE SIOS YA RIEULMIEUM +0x8FC1 0xC0EF #HANGUL SYLLABLE SIOS YA RIEULPIEUP +0x8FC2 0xC0F0 #HANGUL SYLLABLE SIOS YA RIEULSIOS +0x8FC3 0xC0F1 #HANGUL SYLLABLE SIOS YA RIEULTHIEUTH +0x8FC4 0xC0F2 #HANGUL SYLLABLE SIOS YA RIEULPHIEUPH +0x8FC5 0xC0F3 #HANGUL SYLLABLE SIOS YA RIEULHIEUH +0x8FC6 0xC0F6 #HANGUL SYLLABLE SIOS YA PIEUPSIOS +0x8FC7 0xC0FA #HANGUL SYLLABLE SIOS YA CIEUC +0x8FC8 0xC0FB #HANGUL SYLLABLE SIOS YA CHIEUCH +0x8FC9 0xC0FC #HANGUL SYLLABLE SIOS YA KHIEUKH +0x8FCA 0xC0FD #HANGUL SYLLABLE SIOS YA THIEUTH +0x8FCB 0xC0FE #HANGUL SYLLABLE SIOS YA PHIEUPH +0x8FCC 0xC0FF #HANGUL SYLLABLE SIOS YA HIEUH +0x8FCD 0xC0E6 #HANGUL SYLLABLE SIOS YA SSANGKIYEOK +0x8FCE 0xC0F8 #HANGUL SYLLABLE SIOS YA SSANGSIOS +0x8FCF 0xC121 #HANGUL SYLLABLE SIOS EO NIEUNCIEUC +0x8FD0 0xC122 #HANGUL SYLLABLE SIOS EO NIEUNHIEUH +0x8FD1 0xC125 #HANGUL SYLLABLE SIOS EO RIEULKIYEOK +0x8FD2 0xC128 #HANGUL SYLLABLE SIOS EO RIEULSIOS +0x8FD3 0xC129 #HANGUL SYLLABLE SIOS EO RIEULTHIEUTH +0x8FD4 0xC12A #HANGUL SYLLABLE SIOS EO RIEULPHIEUPH +0x8FD5 0xC12B #HANGUL SYLLABLE SIOS EO RIEULHIEUH +0x8FD6 0xC12E #HANGUL SYLLABLE SIOS EO PIEUPSIOS +0x8FD7 0xC132 #HANGUL SYLLABLE SIOS EO CIEUC +0x8FD8 0xC133 #HANGUL SYLLABLE SIOS EO CHIEUCH +0x8FD9 0xC134 #HANGUL SYLLABLE SIOS EO KHIEUKH +0x8FDA 0xC135 #HANGUL SYLLABLE SIOS EO THIEUTH +0x8FDB 0xC137 #HANGUL SYLLABLE SIOS EO HIEUH +0x8FDC 0xC157 #HANGUL SYLLABLE SIOS YEO KIYEOKSIOS +0x8FDD 0xC159 #HANGUL SYLLABLE SIOS YEO NIEUNCIEUC +0x8FDE 0xC15A #HANGUL SYLLABLE SIOS YEO NIEUNHIEUH +0x8FDF 0xC15B #HANGUL SYLLABLE SIOS YEO TIKEUT +0x8FE0 0xC15D #HANGUL SYLLABLE SIOS YEO RIEULKIYEOK +0x8FE1 0xC15E #HANGUL SYLLABLE SIOS YEO RIEULMIEUM +0x8FE2 0xC15F #HANGUL SYLLABLE SIOS YEO RIEULPIEUP +0x8FE3 0xC160 #HANGUL SYLLABLE SIOS YEO RIEULSIOS +0x8FE4 0xC161 #HANGUL SYLLABLE SIOS YEO RIEULTHIEUTH +0x8FE5 0xC162 #HANGUL SYLLABLE SIOS YEO RIEULPHIEUPH +0x8FE6 0xC163 #HANGUL SYLLABLE SIOS YEO RIEULHIEUH +0x8FE7 0xC166 #HANGUL SYLLABLE SIOS YEO PIEUPSIOS +0x8FE8 0xC16A #HANGUL SYLLABLE SIOS YEO CIEUC +0x8FE9 0xC16B #HANGUL SYLLABLE SIOS YEO CHIEUCH +0x8FEA 0xC16C #HANGUL SYLLABLE SIOS YEO KHIEUKH +0x8FEB 0xC16D #HANGUL SYLLABLE SIOS YEO THIEUTH +0x8FEC 0xC16E #HANGUL SYLLABLE SIOS YEO PHIEUPH +0x8FED 0xC16F #HANGUL SYLLABLE SIOS YEO HIEUH +0x8FEE 0xC156 #HANGUL SYLLABLE SIOS YEO SSANGKIYEOK +0x8FEF 0xC18F #HANGUL SYLLABLE SIOS O KIYEOKSIOS +0x8FF0 0xC191 #HANGUL SYLLABLE SIOS O NIEUNCIEUC +0x8FF1 0xC192 #HANGUL SYLLABLE SIOS O NIEUNHIEUH +0x8FF2 0xC195 #HANGUL SYLLABLE SIOS O RIEULKIYEOK +0x8FF3 0xC197 #HANGUL SYLLABLE SIOS O RIEULPIEUP +0x8FF4 0xC198 #HANGUL SYLLABLE SIOS O RIEULSIOS +0x8FF5 0xC199 #HANGUL SYLLABLE SIOS O RIEULTHIEUTH +0x8FF6 0xC19A #HANGUL SYLLABLE SIOS O RIEULPHIEUPH +0x8FF7 0xC19B #HANGUL SYLLABLE SIOS O RIEULHIEUH +0x8FF8 0xC19E #HANGUL SYLLABLE SIOS O PIEUPSIOS +0x8FF9 0xC1A2 #HANGUL SYLLABLE SIOS O CIEUC +0x8FFA 0xC1A3 #HANGUL SYLLABLE SIOS O CHIEUCH +0x8FFB 0xC1A4 #HANGUL SYLLABLE SIOS O KHIEUKH +0x8FFC 0xC1A6 #HANGUL SYLLABLE SIOS O PHIEUPH +0x8FFD 0xC1A7 #HANGUL SYLLABLE SIOS O HIEUH +0x8FFE 0xC1A0 #HANGUL SYLLABLE SIOS O SSANGSIOS +0x9041 0xC1FF #HANGUL SYLLABLE SIOS YO KIYEOKSIOS +0x9042 0xC201 #HANGUL SYLLABLE SIOS YO NIEUNCIEUC +0x9043 0xC202 #HANGUL SYLLABLE SIOS YO NIEUNHIEUH +0x9044 0xC203 #HANGUL SYLLABLE SIOS YO TIKEUT +0x9045 0xC205 #HANGUL SYLLABLE SIOS YO RIEULKIYEOK +0x9046 0xC206 #HANGUL SYLLABLE SIOS YO RIEULMIEUM +0x9047 0xC207 #HANGUL SYLLABLE SIOS YO RIEULPIEUP +0x9048 0xC208 #HANGUL SYLLABLE SIOS YO RIEULSIOS +0x9049 0xC209 #HANGUL SYLLABLE SIOS YO RIEULTHIEUTH +0x904A 0xC20A #HANGUL SYLLABLE SIOS YO RIEULPHIEUPH +0x904B 0xC20B #HANGUL SYLLABLE SIOS YO RIEULHIEUH +0x904C 0xC20E #HANGUL SYLLABLE SIOS YO PIEUPSIOS +0x904D 0xC212 #HANGUL SYLLABLE SIOS YO CIEUC +0x904E 0xC213 #HANGUL SYLLABLE SIOS YO CHIEUCH +0x904F 0xC214 #HANGUL SYLLABLE SIOS YO KHIEUKH +0x9050 0xC215 #HANGUL SYLLABLE SIOS YO THIEUTH +0x9051 0xC216 #HANGUL SYLLABLE SIOS YO PHIEUPH +0x9052 0xC217 #HANGUL SYLLABLE SIOS YO HIEUH +0x9053 0xC1FE #HANGUL SYLLABLE SIOS YO SSANGKIYEOK +0x9054 0xC210 #HANGUL SYLLABLE SIOS YO SSANGSIOS +0x9055 0xC21B #HANGUL SYLLABLE SIOS U KIYEOKSIOS +0x9056 0xC21D #HANGUL SYLLABLE SIOS U NIEUNCIEUC +0x9057 0xC21E #HANGUL SYLLABLE SIOS U NIEUNHIEUH +0x9058 0xC221 #HANGUL SYLLABLE SIOS U RIEULKIYEOK +0x9059 0xC222 #HANGUL SYLLABLE SIOS U RIEULMIEUM +0x905A 0xC223 #HANGUL SYLLABLE SIOS U RIEULPIEUP +0x9061 0xC224 #HANGUL SYLLABLE SIOS U RIEULSIOS +0x9062 0xC225 #HANGUL SYLLABLE SIOS U RIEULTHIEUTH +0x9063 0xC226 #HANGUL SYLLABLE SIOS U RIEULPHIEUPH +0x9064 0xC227 #HANGUL SYLLABLE SIOS U RIEULHIEUH +0x9065 0xC22A #HANGUL SYLLABLE SIOS U PIEUPSIOS +0x9066 0xC22E #HANGUL SYLLABLE SIOS U CIEUC +0x9067 0xC230 #HANGUL SYLLABLE SIOS U KHIEUKH +0x9068 0xC233 #HANGUL SYLLABLE SIOS U HIEUH +0x9069 0xC21A #HANGUL SYLLABLE SIOS U SSANGKIYEOK +0x906A 0xC22C #HANGUL SYLLABLE SIOS U SSANGSIOS +0x906B 0xC28B #HANGUL SYLLABLE SIOS YU KIYEOKSIOS +0x906C 0xC28D #HANGUL SYLLABLE SIOS YU NIEUNCIEUC +0x906D 0xC28E #HANGUL SYLLABLE SIOS YU NIEUNHIEUH +0x906E 0xC28F #HANGUL SYLLABLE SIOS YU TIKEUT +0x906F 0xC291 #HANGUL SYLLABLE SIOS YU RIEULKIYEOK +0x9070 0xC292 #HANGUL SYLLABLE SIOS YU RIEULMIEUM +0x9071 0xC293 #HANGUL SYLLABLE SIOS YU RIEULPIEUP +0x9072 0xC294 #HANGUL SYLLABLE SIOS YU RIEULSIOS +0x9073 0xC295 #HANGUL SYLLABLE SIOS YU RIEULTHIEUTH +0x9074 0xC296 #HANGUL SYLLABLE SIOS YU RIEULPHIEUPH +0x9075 0xC297 #HANGUL SYLLABLE SIOS YU RIEULHIEUH +0x9076 0xC29A #HANGUL SYLLABLE SIOS YU PIEUPSIOS +0x9077 0xC29E #HANGUL SYLLABLE SIOS YU CIEUC +0x9078 0xC29F #HANGUL SYLLABLE SIOS YU CHIEUCH +0x9079 0xC2A0 #HANGUL SYLLABLE SIOS YU KHIEUKH +0x907A 0xC2A1 #HANGUL SYLLABLE SIOS YU THIEUTH +0x9081 0xC2A2 #HANGUL SYLLABLE SIOS YU PHIEUPH +0x9082 0xC2A3 #HANGUL SYLLABLE SIOS YU HIEUH +0x9083 0xC28A #HANGUL SYLLABLE SIOS YU SSANGKIYEOK +0x9084 0xC29C #HANGUL SYLLABLE SIOS YU SSANGSIOS +0x9085 0xC2A7 #HANGUL SYLLABLE SIOS EU KIYEOKSIOS +0x9086 0xC2A9 #HANGUL SYLLABLE SIOS EU NIEUNCIEUC +0x9087 0xC2AA #HANGUL SYLLABLE SIOS EU NIEUNHIEUH +0x9088 0xC2AB #HANGUL SYLLABLE SIOS EU TIKEUT +0x9089 0xC2AE #HANGUL SYLLABLE SIOS EU RIEULMIEUM +0x908A 0xC2AF #HANGUL SYLLABLE SIOS EU RIEULPIEUP +0x908B 0xC2B0 #HANGUL SYLLABLE SIOS EU RIEULSIOS +0x908C 0xC2B1 #HANGUL SYLLABLE SIOS EU RIEULTHIEUTH +0x908D 0xC2B6 #HANGUL SYLLABLE SIOS EU PIEUPSIOS +0x908E 0xC2BA #HANGUL SYLLABLE SIOS EU CIEUC +0x908F 0xC2BB #HANGUL SYLLABLE SIOS EU CHIEUCH +0x9090 0xC2BC #HANGUL SYLLABLE SIOS EU KHIEUKH +0x9091 0xC2BD #HANGUL SYLLABLE SIOS EU THIEUTH +0x9092 0xC2BE #HANGUL SYLLABLE SIOS EU PHIEUPH +0x9093 0xC2BF #HANGUL SYLLABLE SIOS EU HIEUH +0x9094 0xC2A6 #HANGUL SYLLABLE SIOS EU SSANGKIYEOK +0x9095 0xC2B8 #HANGUL SYLLABLE SIOS EU SSANGSIOS +0x9096 0xC2DF #HANGUL SYLLABLE SIOS I KIYEOKSIOS +0x9097 0xC2E1 #HANGUL SYLLABLE SIOS I NIEUNCIEUC +0x9098 0xC2E2 #HANGUL SYLLABLE SIOS I NIEUNHIEUH +0x9099 0xC2E5 #HANGUL SYLLABLE SIOS I RIEULKIYEOK +0x909A 0xC2E6 #HANGUL SYLLABLE SIOS I RIEULMIEUM +0x909B 0xC2E7 #HANGUL SYLLABLE SIOS I RIEULPIEUP +0x909C 0xC2E8 #HANGUL SYLLABLE SIOS I RIEULSIOS +0x909D 0xC2E9 #HANGUL SYLLABLE SIOS I RIEULTHIEUTH +0x909E 0xC2EA #HANGUL SYLLABLE SIOS I RIEULPHIEUPH +0x909F 0xC2EE #HANGUL SYLLABLE SIOS I PIEUPSIOS +0x90A0 0xC2F2 #HANGUL SYLLABLE SIOS I CIEUC +0x90A1 0xC2F3 #HANGUL SYLLABLE SIOS I CHIEUCH +0x90A2 0xC2F4 #HANGUL SYLLABLE SIOS I KHIEUKH +0x90A3 0xC2F5 #HANGUL SYLLABLE SIOS I THIEUTH +0x90A4 0xC2F7 #HANGUL SYLLABLE SIOS I HIEUH +0x90A5 0xC2DE #HANGUL SYLLABLE SIOS I SSANGKIYEOK +0x90A6 0xC2F0 #HANGUL SYLLABLE SIOS I SSANGSIOS +0x90A7 0xC0CB #HANGUL SYLLABLE SIOS AE KIYEOKSIOS +0x90A8 0xC0CD #HANGUL SYLLABLE SIOS AE NIEUNCIEUC +0x90A9 0xC0CE #HANGUL SYLLABLE SIOS AE NIEUNHIEUH +0x90AA 0xC0CF #HANGUL SYLLABLE SIOS AE TIKEUT +0x90AB 0xC0D1 #HANGUL SYLLABLE SIOS AE RIEULKIYEOK +0x90AC 0xC0D2 #HANGUL SYLLABLE SIOS AE RIEULMIEUM +0x90AD 0xC0D3 #HANGUL SYLLABLE SIOS AE RIEULPIEUP +0x90AE 0xC0D4 #HANGUL SYLLABLE SIOS AE RIEULSIOS +0x90AF 0xC0D5 #HANGUL SYLLABLE SIOS AE RIEULTHIEUTH +0x90B0 0xC0D6 #HANGUL SYLLABLE SIOS AE RIEULPHIEUPH +0x90B1 0xC0D7 #HANGUL SYLLABLE SIOS AE RIEULHIEUH +0x90B2 0xC0DA #HANGUL SYLLABLE SIOS AE PIEUPSIOS +0x90B3 0xC0DE #HANGUL SYLLABLE SIOS AE CIEUC +0x90B4 0xC0DF #HANGUL SYLLABLE SIOS AE CHIEUCH +0x90B5 0xC0E0 #HANGUL SYLLABLE SIOS AE KHIEUKH +0x90B6 0xC0E1 #HANGUL SYLLABLE SIOS AE THIEUTH +0x90B7 0xC0E2 #HANGUL SYLLABLE SIOS AE PHIEUPH +0x90B8 0xC0E3 #HANGUL SYLLABLE SIOS AE HIEUH +0x90B9 0xC0CA #HANGUL SYLLABLE SIOS AE SSANGKIYEOK +0x90BA 0xC101 #HANGUL SYLLABLE SIOS YAE KIYEOK +0x90BB 0xC103 #HANGUL SYLLABLE SIOS YAE KIYEOKSIOS +0x90BC 0xC105 #HANGUL SYLLABLE SIOS YAE NIEUNCIEUC +0x90BD 0xC106 #HANGUL SYLLABLE SIOS YAE NIEUNHIEUH +0x90BE 0xC107 #HANGUL SYLLABLE SIOS YAE TIKEUT +0x90BF 0xC109 #HANGUL SYLLABLE SIOS YAE RIEULKIYEOK +0x90C0 0xC10A #HANGUL SYLLABLE SIOS YAE RIEULMIEUM +0x90C1 0xC10B #HANGUL SYLLABLE SIOS YAE RIEULPIEUP +0x90C2 0xC10C #HANGUL SYLLABLE SIOS YAE RIEULSIOS +0x90C3 0xC10D #HANGUL SYLLABLE SIOS YAE RIEULTHIEUTH +0x90C4 0xC10E #HANGUL SYLLABLE SIOS YAE RIEULPHIEUPH +0x90C5 0xC10F #HANGUL SYLLABLE SIOS YAE RIEULHIEUH +0x90C6 0xC111 #HANGUL SYLLABLE SIOS YAE PIEUP +0x90C7 0xC112 #HANGUL SYLLABLE SIOS YAE PIEUPSIOS +0x90C8 0xC113 #HANGUL SYLLABLE SIOS YAE SIOS +0x90C9 0xC116 #HANGUL SYLLABLE SIOS YAE CIEUC +0x90CA 0xC117 #HANGUL SYLLABLE SIOS YAE CHIEUCH +0x90CB 0xC118 #HANGUL SYLLABLE SIOS YAE KHIEUKH +0x90CC 0xC119 #HANGUL SYLLABLE SIOS YAE THIEUTH +0x90CD 0xC11A #HANGUL SYLLABLE SIOS YAE PHIEUPH +0x90CE 0xC11B #HANGUL SYLLABLE SIOS YAE HIEUH +0x90CF 0xC102 #HANGUL SYLLABLE SIOS YAE SSANGKIYEOK +0x90D0 0xC114 #HANGUL SYLLABLE SIOS YAE SSANGSIOS +0x90D1 0xC13B #HANGUL SYLLABLE SIOS E KIYEOKSIOS +0x90D2 0xC13D #HANGUL SYLLABLE SIOS E NIEUNCIEUC +0x90D3 0xC13E #HANGUL SYLLABLE SIOS E NIEUNHIEUH +0x90D4 0xC13F #HANGUL SYLLABLE SIOS E TIKEUT +0x90D5 0xC141 #HANGUL SYLLABLE SIOS E RIEULKIYEOK +0x90D6 0xC142 #HANGUL SYLLABLE SIOS E RIEULMIEUM +0x90D7 0xC143 #HANGUL SYLLABLE SIOS E RIEULPIEUP +0x90D8 0xC144 #HANGUL SYLLABLE SIOS E RIEULSIOS +0x90D9 0xC145 #HANGUL SYLLABLE SIOS E RIEULTHIEUTH +0x90DA 0xC146 #HANGUL SYLLABLE SIOS E RIEULPHIEUPH +0x90DB 0xC147 #HANGUL SYLLABLE SIOS E RIEULHIEUH +0x90DC 0xC14A #HANGUL SYLLABLE SIOS E PIEUPSIOS +0x90DD 0xC14E #HANGUL SYLLABLE SIOS E CIEUC +0x90DE 0xC14F #HANGUL SYLLABLE SIOS E CHIEUCH +0x90DF 0xC150 #HANGUL SYLLABLE SIOS E KHIEUKH +0x90E0 0xC153 #HANGUL SYLLABLE SIOS E HIEUH +0x90E1 0xC13A #HANGUL SYLLABLE SIOS E SSANGKIYEOK +0x90E2 0xC171 #HANGUL SYLLABLE SIOS YE KIYEOK +0x90E3 0xC173 #HANGUL SYLLABLE SIOS YE KIYEOKSIOS +0x90E4 0xC175 #HANGUL SYLLABLE SIOS YE NIEUNCIEUC +0x90E5 0xC176 #HANGUL SYLLABLE SIOS YE NIEUNHIEUH +0x90E6 0xC177 #HANGUL SYLLABLE SIOS YE TIKEUT +0x90E7 0xC179 #HANGUL SYLLABLE SIOS YE RIEULKIYEOK +0x90E8 0xC17A #HANGUL SYLLABLE SIOS YE RIEULMIEUM +0x90E9 0xC17B #HANGUL SYLLABLE SIOS YE RIEULPIEUP +0x90EA 0xC17C #HANGUL SYLLABLE SIOS YE RIEULSIOS +0x90EB 0xC17D #HANGUL SYLLABLE SIOS YE RIEULTHIEUTH +0x90EC 0xC17E #HANGUL SYLLABLE SIOS YE RIEULPHIEUPH +0x90ED 0xC17F #HANGUL SYLLABLE SIOS YE RIEULHIEUH +0x90EE 0xC180 #HANGUL SYLLABLE SIOS YE MIEUM +0x90EF 0xC181 #HANGUL SYLLABLE SIOS YE PIEUP +0x90F0 0xC182 #HANGUL SYLLABLE SIOS YE PIEUPSIOS +0x90F1 0xC183 #HANGUL SYLLABLE SIOS YE SIOS +0x90F2 0xC186 #HANGUL SYLLABLE SIOS YE CIEUC +0x90F3 0xC187 #HANGUL SYLLABLE SIOS YE CHIEUCH +0x90F4 0xC188 #HANGUL SYLLABLE SIOS YE KHIEUKH +0x90F5 0xC189 #HANGUL SYLLABLE SIOS YE THIEUTH +0x90F6 0xC18A #HANGUL SYLLABLE SIOS YE PHIEUPH +0x90F7 0xC18B #HANGUL SYLLABLE SIOS YE HIEUH +0x90F8 0xC172 #HANGUL SYLLABLE SIOS YE SSANGKIYEOK +0x90F9 0xC184 #HANGUL SYLLABLE SIOS YE SSANGSIOS +0x90FA 0xC1E3 #HANGUL SYLLABLE SIOS OE KIYEOKSIOS +0x90FB 0xC1E5 #HANGUL SYLLABLE SIOS OE NIEUNCIEUC +0x90FC 0xC1E6 #HANGUL SYLLABLE SIOS OE NIEUNHIEUH +0x90FD 0xC1E7 #HANGUL SYLLABLE SIOS OE TIKEUT +0x90FE 0xC1E9 #HANGUL SYLLABLE SIOS OE RIEULKIYEOK +0x9141 0xC1EA #HANGUL SYLLABLE SIOS OE RIEULMIEUM +0x9142 0xC1EB #HANGUL SYLLABLE SIOS OE RIEULPIEUP +0x9143 0xC1EC #HANGUL SYLLABLE SIOS OE RIEULSIOS +0x9144 0xC1ED #HANGUL SYLLABLE SIOS OE RIEULTHIEUTH +0x9145 0xC1EE #HANGUL SYLLABLE SIOS OE RIEULPHIEUPH +0x9146 0xC1EF #HANGUL SYLLABLE SIOS OE RIEULHIEUH +0x9147 0xC1F2 #HANGUL SYLLABLE SIOS OE PIEUPSIOS +0x9148 0xC1F6 #HANGUL SYLLABLE SIOS OE CIEUC +0x9149 0xC1F7 #HANGUL SYLLABLE SIOS OE CHIEUCH +0x914A 0xC1F8 #HANGUL SYLLABLE SIOS OE KHIEUKH +0x914B 0xC1F9 #HANGUL SYLLABLE SIOS OE THIEUTH +0x914C 0xC1FA #HANGUL SYLLABLE SIOS OE PHIEUPH +0x914D 0xC1FB #HANGUL SYLLABLE SIOS OE HIEUH +0x914E 0xC1E2 #HANGUL SYLLABLE SIOS OE SSANGKIYEOK +0x914F 0xC26F #HANGUL SYLLABLE SIOS WI KIYEOKSIOS +0x9150 0xC271 #HANGUL SYLLABLE SIOS WI NIEUNCIEUC +0x9151 0xC272 #HANGUL SYLLABLE SIOS WI NIEUNHIEUH +0x9152 0xC273 #HANGUL SYLLABLE SIOS WI TIKEUT +0x9153 0xC275 #HANGUL SYLLABLE SIOS WI RIEULKIYEOK +0x9154 0xC276 #HANGUL SYLLABLE SIOS WI RIEULMIEUM +0x9155 0xC277 #HANGUL SYLLABLE SIOS WI RIEULPIEUP +0x9156 0xC278 #HANGUL SYLLABLE SIOS WI RIEULSIOS +0x9157 0xC279 #HANGUL SYLLABLE SIOS WI RIEULTHIEUTH +0x9158 0xC27A #HANGUL SYLLABLE SIOS WI RIEULPHIEUPH +0x9159 0xC27B #HANGUL SYLLABLE SIOS WI RIEULHIEUH +0x915A 0xC27E #HANGUL SYLLABLE SIOS WI PIEUPSIOS +0x9161 0xC282 #HANGUL SYLLABLE SIOS WI CIEUC +0x9162 0xC283 #HANGUL SYLLABLE SIOS WI CHIEUCH +0x9163 0xC284 #HANGUL SYLLABLE SIOS WI KHIEUKH +0x9164 0xC285 #HANGUL SYLLABLE SIOS WI THIEUTH +0x9165 0xC286 #HANGUL SYLLABLE SIOS WI PHIEUPH +0x9166 0xC287 #HANGUL SYLLABLE SIOS WI HIEUH +0x9167 0xC26E #HANGUL SYLLABLE SIOS WI SSANGKIYEOK +0x9168 0xC280 #HANGUL SYLLABLE SIOS WI SSANGSIOS +0x9169 0xC2C1 #HANGUL SYLLABLE SIOS YI KIYEOK +0x916A 0xC2C3 #HANGUL SYLLABLE SIOS YI KIYEOKSIOS +0x916B 0xC2C5 #HANGUL SYLLABLE SIOS YI NIEUNCIEUC +0x916C 0xC2C6 #HANGUL SYLLABLE SIOS YI NIEUNHIEUH +0x916D 0xC2C7 #HANGUL SYLLABLE SIOS YI TIKEUT +0x916E 0xC2C8 #HANGUL SYLLABLE SIOS YI RIEUL +0x916F 0xC2C9 #HANGUL SYLLABLE SIOS YI RIEULKIYEOK +0x9170 0xC2CA #HANGUL SYLLABLE SIOS YI RIEULMIEUM +0x9171 0xC2CB #HANGUL SYLLABLE SIOS YI RIEULPIEUP +0x9172 0xC2CC #HANGUL SYLLABLE SIOS YI RIEULSIOS +0x9173 0xC2CD #HANGUL SYLLABLE SIOS YI RIEULTHIEUTH +0x9174 0xC2CE #HANGUL SYLLABLE SIOS YI RIEULPHIEUPH +0x9175 0xC2CF #HANGUL SYLLABLE SIOS YI RIEULHIEUH +0x9176 0xC2D0 #HANGUL SYLLABLE SIOS YI MIEUM +0x9177 0xC2D1 #HANGUL SYLLABLE SIOS YI PIEUP +0x9178 0xC2D2 #HANGUL SYLLABLE SIOS YI PIEUPSIOS +0x9179 0xC2D3 #HANGUL SYLLABLE SIOS YI SIOS +0x917A 0xC2D5 #HANGUL SYLLABLE SIOS YI IEUNG +0x9181 0xC2D6 #HANGUL SYLLABLE SIOS YI CIEUC +0x9182 0xC2D7 #HANGUL SYLLABLE SIOS YI CHIEUCH +0x9183 0xC2D8 #HANGUL SYLLABLE SIOS YI KHIEUKH +0x9184 0xC2D9 #HANGUL SYLLABLE SIOS YI THIEUTH +0x9185 0xC2DA #HANGUL SYLLABLE SIOS YI PHIEUPH +0x9186 0xC2DB #HANGUL SYLLABLE SIOS YI HIEUH +0x9187 0xC2C2 #HANGUL SYLLABLE SIOS YI SSANGKIYEOK +0x9188 0xC2D4 #HANGUL SYLLABLE SIOS YI SSANGSIOS +0x9189 0xC1AB #HANGUL SYLLABLE SIOS WA KIYEOKSIOS +0x918A 0xC1AD #HANGUL SYLLABLE SIOS WA NIEUNCIEUC +0x918B 0xC1AE #HANGUL SYLLABLE SIOS WA NIEUNHIEUH +0x918C 0xC1AF #HANGUL SYLLABLE SIOS WA TIKEUT +0x918D 0xC1B1 #HANGUL SYLLABLE SIOS WA RIEULKIYEOK +0x918E 0xC1B2 #HANGUL SYLLABLE SIOS WA RIEULMIEUM +0x918F 0xC1B3 #HANGUL SYLLABLE SIOS WA RIEULPIEUP +0x9190 0xC1B4 #HANGUL SYLLABLE SIOS WA RIEULSIOS +0x9191 0xC1B5 #HANGUL SYLLABLE SIOS WA RIEULTHIEUTH +0x9192 0xC1B6 #HANGUL SYLLABLE SIOS WA RIEULPHIEUPH +0x9193 0xC1B7 #HANGUL SYLLABLE SIOS WA RIEULHIEUH +0x9194 0xC1B8 #HANGUL SYLLABLE SIOS WA MIEUM +0x9195 0xC1B9 #HANGUL SYLLABLE SIOS WA PIEUP +0x9196 0xC1BA #HANGUL SYLLABLE SIOS WA PIEUPSIOS +0x9197 0xC1BE #HANGUL SYLLABLE SIOS WA CIEUC +0x9198 0xC1BF #HANGUL SYLLABLE SIOS WA CHIEUCH +0x9199 0xC1C0 #HANGUL SYLLABLE SIOS WA KHIEUKH +0x919A 0xC1C1 #HANGUL SYLLABLE SIOS WA THIEUTH +0x919B 0xC1C2 #HANGUL SYLLABLE SIOS WA PHIEUPH +0x919C 0xC1C3 #HANGUL SYLLABLE SIOS WA HIEUH +0x919D 0xC1AA #HANGUL SYLLABLE SIOS WA SSANGKIYEOK +0x919E 0xC1BC #HANGUL SYLLABLE SIOS WA SSANGSIOS +0x919F 0xC235 #HANGUL SYLLABLE SIOS WEO KIYEOK +0x91A0 0xC237 #HANGUL SYLLABLE SIOS WEO KIYEOKSIOS +0x91A1 0xC238 #HANGUL SYLLABLE SIOS WEO NIEUN +0x91A2 0xC239 #HANGUL SYLLABLE SIOS WEO NIEUNCIEUC +0x91A3 0xC23A #HANGUL SYLLABLE SIOS WEO NIEUNHIEUH +0x91A4 0xC23B #HANGUL SYLLABLE SIOS WEO TIKEUT +0x91A5 0xC23C #HANGUL SYLLABLE SIOS WEO RIEUL +0x91A6 0xC23D #HANGUL SYLLABLE SIOS WEO RIEULKIYEOK +0x91A7 0xC23E #HANGUL SYLLABLE SIOS WEO RIEULMIEUM +0x91A8 0xC23F #HANGUL SYLLABLE SIOS WEO RIEULPIEUP +0x91A9 0xC240 #HANGUL SYLLABLE SIOS WEO RIEULSIOS +0x91AA 0xC241 #HANGUL SYLLABLE SIOS WEO RIEULTHIEUTH +0x91AB 0xC242 #HANGUL SYLLABLE SIOS WEO RIEULPHIEUPH +0x91AC 0xC243 #HANGUL SYLLABLE SIOS WEO RIEULHIEUH +0x91AD 0xC244 #HANGUL SYLLABLE SIOS WEO MIEUM +0x91AE 0xC245 #HANGUL SYLLABLE SIOS WEO PIEUP +0x91AF 0xC246 #HANGUL SYLLABLE SIOS WEO PIEUPSIOS +0x91B0 0xC247 #HANGUL SYLLABLE SIOS WEO SIOS +0x91B1 0xC249 #HANGUL SYLLABLE SIOS WEO IEUNG +0x91B2 0xC24A #HANGUL SYLLABLE SIOS WEO CIEUC +0x91B3 0xC24B #HANGUL SYLLABLE SIOS WEO CHIEUCH +0x91B4 0xC24C #HANGUL SYLLABLE SIOS WEO KHIEUKH +0x91B5 0xC24D #HANGUL SYLLABLE SIOS WEO THIEUTH +0x91B6 0xC24E #HANGUL SYLLABLE SIOS WEO PHIEUPH +0x91B7 0xC24F #HANGUL SYLLABLE SIOS WEO HIEUH +0x91B8 0xC236 #HANGUL SYLLABLE SIOS WEO SSANGKIYEOK +0x91B9 0xC1C5 #HANGUL SYLLABLE SIOS WAE KIYEOK +0x91BA 0xC1C7 #HANGUL SYLLABLE SIOS WAE KIYEOKSIOS +0x91BB 0xC1C9 #HANGUL SYLLABLE SIOS WAE NIEUNCIEUC +0x91BC 0xC1CA #HANGUL SYLLABLE SIOS WAE NIEUNHIEUH +0x91BD 0xC1CB #HANGUL SYLLABLE SIOS WAE TIKEUT +0x91BE 0xC1CD #HANGUL SYLLABLE SIOS WAE RIEULKIYEOK +0x91BF 0xC1CE #HANGUL SYLLABLE SIOS WAE RIEULMIEUM +0x91C0 0xC1CF #HANGUL SYLLABLE SIOS WAE RIEULPIEUP +0x91C1 0xC1D0 #HANGUL SYLLABLE SIOS WAE RIEULSIOS +0x91C2 0xC1D1 #HANGUL SYLLABLE SIOS WAE RIEULTHIEUTH +0x91C3 0xC1D2 #HANGUL SYLLABLE SIOS WAE RIEULPHIEUPH +0x91C4 0xC1D3 #HANGUL SYLLABLE SIOS WAE RIEULHIEUH +0x91C5 0xC1D5 #HANGUL SYLLABLE SIOS WAE PIEUP +0x91C6 0xC1D6 #HANGUL SYLLABLE SIOS WAE PIEUPSIOS +0x91C7 0xC1D9 #HANGUL SYLLABLE SIOS WAE IEUNG +0x91C8 0xC1DA #HANGUL SYLLABLE SIOS WAE CIEUC +0x91C9 0xC1DB #HANGUL SYLLABLE SIOS WAE CHIEUCH +0x91CA 0xC1DC #HANGUL SYLLABLE SIOS WAE KHIEUKH +0x91CB 0xC1DD #HANGUL SYLLABLE SIOS WAE THIEUTH +0x91CC 0xC1DE #HANGUL SYLLABLE SIOS WAE PHIEUPH +0x91CD 0xC1DF #HANGUL SYLLABLE SIOS WAE HIEUH +0x91CE 0xC1C6 #HANGUL SYLLABLE SIOS WAE SSANGKIYEOK +0x91CF 0xC253 #HANGUL SYLLABLE SIOS WE KIYEOKSIOS +0x91D0 0xC255 #HANGUL SYLLABLE SIOS WE NIEUNCIEUC +0x91D1 0xC256 #HANGUL SYLLABLE SIOS WE NIEUNHIEUH +0x91D2 0xC257 #HANGUL SYLLABLE SIOS WE TIKEUT +0x91D3 0xC259 #HANGUL SYLLABLE SIOS WE RIEULKIYEOK +0x91D4 0xC25A #HANGUL SYLLABLE SIOS WE RIEULMIEUM +0x91D5 0xC25B #HANGUL SYLLABLE SIOS WE RIEULPIEUP +0x91D6 0xC25C #HANGUL SYLLABLE SIOS WE RIEULSIOS +0x91D7 0xC25D #HANGUL SYLLABLE SIOS WE RIEULTHIEUTH +0x91D8 0xC25E #HANGUL SYLLABLE SIOS WE RIEULPHIEUPH +0x91D9 0xC25F #HANGUL SYLLABLE SIOS WE RIEULHIEUH +0x91DA 0xC262 #HANGUL SYLLABLE SIOS WE PIEUPSIOS +0x91DB 0xC263 #HANGUL SYLLABLE SIOS WE SIOS +0x91DC 0xC266 #HANGUL SYLLABLE SIOS WE CIEUC +0x91DD 0xC267 #HANGUL SYLLABLE SIOS WE CHIEUCH +0x91DE 0xC268 #HANGUL SYLLABLE SIOS WE KHIEUKH +0x91DF 0xC269 #HANGUL SYLLABLE SIOS WE THIEUTH +0x91E0 0xC26A #HANGUL SYLLABLE SIOS WE PHIEUPH +0x91E1 0xC26B #HANGUL SYLLABLE SIOS WE HIEUH +0x91E2 0xC252 #HANGUL SYLLABLE SIOS WE SSANGKIYEOK +0x91E3 0xC264 #HANGUL SYLLABLE SIOS WE SSANGSIOS +0x91E4 0xC793 #HANGUL SYLLABLE CIEUC A KIYEOKSIOS +0x91E5 0xC795 #HANGUL SYLLABLE CIEUC A NIEUNCIEUC +0x91E6 0xC799 #HANGUL SYLLABLE CIEUC A RIEULKIYEOK +0x91E7 0xC79B #HANGUL SYLLABLE CIEUC A RIEULPIEUP +0x91E8 0xC79C #HANGUL SYLLABLE CIEUC A RIEULSIOS +0x91E9 0xC79D #HANGUL SYLLABLE CIEUC A RIEULTHIEUTH +0x91EA 0xC79E #HANGUL SYLLABLE CIEUC A RIEULPHIEUPH +0x91EB 0xC79F #HANGUL SYLLABLE CIEUC A RIEULHIEUH +0x91EC 0xC7A2 #HANGUL SYLLABLE CIEUC A PIEUPSIOS +0x91ED 0xC7A7 #HANGUL SYLLABLE CIEUC A CHIEUCH +0x91EE 0xC7A8 #HANGUL SYLLABLE CIEUC A KHIEUKH +0x91EF 0xC7A9 #HANGUL SYLLABLE CIEUC A THIEUTH +0x91F0 0xC7AA #HANGUL SYLLABLE CIEUC A PHIEUPH +0x91F1 0xC7AB #HANGUL SYLLABLE CIEUC A HIEUH +0x91F2 0xC792 #HANGUL SYLLABLE CIEUC A SSANGKIYEOK +0x91F3 0xC7CB #HANGUL SYLLABLE CIEUC YA KIYEOKSIOS +0x91F4 0xC7CD #HANGUL SYLLABLE CIEUC YA NIEUNCIEUC +0x91F5 0xC7CF #HANGUL SYLLABLE CIEUC YA TIKEUT +0x91F6 0xC7D1 #HANGUL SYLLABLE CIEUC YA RIEULKIYEOK +0x91F7 0xC7D2 #HANGUL SYLLABLE CIEUC YA RIEULMIEUM +0x91F8 0xC7D3 #HANGUL SYLLABLE CIEUC YA RIEULPIEUP +0x91F9 0xC7D4 #HANGUL SYLLABLE CIEUC YA RIEULSIOS +0x91FA 0xC7D5 #HANGUL SYLLABLE CIEUC YA RIEULTHIEUTH +0x91FB 0xC7D6 #HANGUL SYLLABLE CIEUC YA RIEULPHIEUPH +0x91FC 0xC7D7 #HANGUL SYLLABLE CIEUC YA RIEULHIEUH +0x91FD 0xC7DA #HANGUL SYLLABLE CIEUC YA PIEUPSIOS +0x91FE 0xC7DB #HANGUL SYLLABLE CIEUC YA SIOS +0x9241 0xC7DE #HANGUL SYLLABLE CIEUC YA CIEUC +0x9242 0xC7DF #HANGUL SYLLABLE CIEUC YA CHIEUCH +0x9243 0xC7E0 #HANGUL SYLLABLE CIEUC YA KHIEUKH +0x9244 0xC7E1 #HANGUL SYLLABLE CIEUC YA THIEUTH +0x9245 0xC7E2 #HANGUL SYLLABLE CIEUC YA PHIEUPH +0x9246 0xC7E3 #HANGUL SYLLABLE CIEUC YA HIEUH +0x9247 0xC7CA #HANGUL SYLLABLE CIEUC YA SSANGKIYEOK +0x9248 0xC7DC #HANGUL SYLLABLE CIEUC YA SSANGSIOS +0x9249 0xC803 #HANGUL SYLLABLE CIEUC EO KIYEOKSIOS +0x924A 0xC805 #HANGUL SYLLABLE CIEUC EO NIEUNCIEUC +0x924B 0xC806 #HANGUL SYLLABLE CIEUC EO NIEUNHIEUH +0x924C 0xC807 #HANGUL SYLLABLE CIEUC EO TIKEUT +0x924D 0xC809 #HANGUL SYLLABLE CIEUC EO RIEULKIYEOK +0x924E 0xC80B #HANGUL SYLLABLE CIEUC EO RIEULPIEUP +0x924F 0xC80C #HANGUL SYLLABLE CIEUC EO RIEULSIOS +0x9250 0xC80D #HANGUL SYLLABLE CIEUC EO RIEULTHIEUTH +0x9251 0xC80E #HANGUL SYLLABLE CIEUC EO RIEULPHIEUPH +0x9252 0xC80F #HANGUL SYLLABLE CIEUC EO RIEULHIEUH +0x9253 0xC812 #HANGUL SYLLABLE CIEUC EO PIEUPSIOS +0x9254 0xC817 #HANGUL SYLLABLE CIEUC EO CHIEUCH +0x9255 0xC818 #HANGUL SYLLABLE CIEUC EO KHIEUKH +0x9256 0xC819 #HANGUL SYLLABLE CIEUC EO THIEUTH +0x9257 0xC81A #HANGUL SYLLABLE CIEUC EO PHIEUPH +0x9258 0xC81B #HANGUL SYLLABLE CIEUC EO HIEUH +0x9259 0xC802 #HANGUL SYLLABLE CIEUC EO SSANGKIYEOK +0x925A 0xC83B #HANGUL SYLLABLE CIEUC YEO KIYEOKSIOS +0x9261 0xC83D #HANGUL SYLLABLE CIEUC YEO NIEUNCIEUC +0x9262 0xC83E #HANGUL SYLLABLE CIEUC YEO NIEUNHIEUH +0x9263 0xC83F #HANGUL SYLLABLE CIEUC YEO TIKEUT +0x9264 0xC841 #HANGUL SYLLABLE CIEUC YEO RIEULKIYEOK +0x9265 0xC842 #HANGUL SYLLABLE CIEUC YEO RIEULMIEUM +0x9266 0xC843 #HANGUL SYLLABLE CIEUC YEO RIEULPIEUP +0x9267 0xC844 #HANGUL SYLLABLE CIEUC YEO RIEULSIOS +0x9268 0xC845 #HANGUL SYLLABLE CIEUC YEO RIEULTHIEUTH +0x9269 0xC846 #HANGUL SYLLABLE CIEUC YEO RIEULPHIEUPH +0x926A 0xC847 #HANGUL SYLLABLE CIEUC YEO RIEULHIEUH +0x926B 0xC84A #HANGUL SYLLABLE CIEUC YEO PIEUPSIOS +0x926C 0xC84E #HANGUL SYLLABLE CIEUC YEO CIEUC +0x926D 0xC84F #HANGUL SYLLABLE CIEUC YEO CHIEUCH +0x926E 0xC850 #HANGUL SYLLABLE CIEUC YEO KHIEUKH +0x926F 0xC851 #HANGUL SYLLABLE CIEUC YEO THIEUTH +0x9270 0xC852 #HANGUL SYLLABLE CIEUC YEO PHIEUPH +0x9271 0xC853 #HANGUL SYLLABLE CIEUC YEO HIEUH +0x9272 0xC83A #HANGUL SYLLABLE CIEUC YEO SSANGKIYEOK +0x9273 0xC873 #HANGUL SYLLABLE CIEUC O KIYEOKSIOS +0x9274 0xC875 #HANGUL SYLLABLE CIEUC O NIEUNCIEUC +0x9275 0xC876 #HANGUL SYLLABLE CIEUC O NIEUNHIEUH +0x9276 0xC877 #HANGUL SYLLABLE CIEUC O TIKEUT +0x9277 0xC879 #HANGUL SYLLABLE CIEUC O RIEULKIYEOK +0x9278 0xC87B #HANGUL SYLLABLE CIEUC O RIEULPIEUP +0x9279 0xC87C #HANGUL SYLLABLE CIEUC O RIEULSIOS +0x927A 0xC87D #HANGUL SYLLABLE CIEUC O RIEULTHIEUTH +0x9281 0xC87E #HANGUL SYLLABLE CIEUC O RIEULPHIEUPH +0x9282 0xC87F #HANGUL SYLLABLE CIEUC O RIEULHIEUH +0x9283 0xC882 #HANGUL SYLLABLE CIEUC O PIEUPSIOS +0x9284 0xC888 #HANGUL SYLLABLE CIEUC O KHIEUKH +0x9285 0xC889 #HANGUL SYLLABLE CIEUC O THIEUTH +0x9286 0xC88A #HANGUL SYLLABLE CIEUC O PHIEUPH +0x9287 0xC872 #HANGUL SYLLABLE CIEUC O SSANGKIYEOK +0x9288 0xC884 #HANGUL SYLLABLE CIEUC O SSANGSIOS +0x9289 0xC8E3 #HANGUL SYLLABLE CIEUC YO KIYEOKSIOS +0x928A 0xC8E5 #HANGUL SYLLABLE CIEUC YO NIEUNCIEUC +0x928B 0xC8E6 #HANGUL SYLLABLE CIEUC YO NIEUNHIEUH +0x928C 0xC8E7 #HANGUL SYLLABLE CIEUC YO TIKEUT +0x928D 0xC8E9 #HANGUL SYLLABLE CIEUC YO RIEULKIYEOK +0x928E 0xC8EA #HANGUL SYLLABLE CIEUC YO RIEULMIEUM +0x928F 0xC8EB #HANGUL SYLLABLE CIEUC YO RIEULPIEUP +0x9290 0xC8EC #HANGUL SYLLABLE CIEUC YO RIEULSIOS +0x9291 0xC8ED #HANGUL SYLLABLE CIEUC YO RIEULTHIEUTH +0x9292 0xC8EE #HANGUL SYLLABLE CIEUC YO RIEULPHIEUPH +0x9293 0xC8EF #HANGUL SYLLABLE CIEUC YO RIEULHIEUH +0x9294 0xC8F1 #HANGUL SYLLABLE CIEUC YO PIEUP +0x9295 0xC8F2 #HANGUL SYLLABLE CIEUC YO PIEUPSIOS +0x9296 0xC8F3 #HANGUL SYLLABLE CIEUC YO SIOS +0x9297 0xC8F6 #HANGUL SYLLABLE CIEUC YO CIEUC +0x9298 0xC8F7 #HANGUL SYLLABLE CIEUC YO CHIEUCH +0x9299 0xC8F8 #HANGUL SYLLABLE CIEUC YO KHIEUKH +0x929A 0xC8F9 #HANGUL SYLLABLE CIEUC YO THIEUTH +0x929B 0xC8FA #HANGUL SYLLABLE CIEUC YO PHIEUPH +0x929C 0xC8FB #HANGUL SYLLABLE CIEUC YO HIEUH +0x929D 0xC8E2 #HANGUL SYLLABLE CIEUC YO SSANGKIYEOK +0x929E 0xC8F4 #HANGUL SYLLABLE CIEUC YO SSANGSIOS +0x929F 0xC8FF #HANGUL SYLLABLE CIEUC U KIYEOKSIOS +0x92A0 0xC901 #HANGUL SYLLABLE CIEUC U NIEUNCIEUC +0x92A1 0xC902 #HANGUL SYLLABLE CIEUC U NIEUNHIEUH +0x92A2 0xC903 #HANGUL SYLLABLE CIEUC U TIKEUT +0x92A3 0xC907 #HANGUL SYLLABLE CIEUC U RIEULPIEUP +0x92A4 0xC908 #HANGUL SYLLABLE CIEUC U RIEULSIOS +0x92A5 0xC909 #HANGUL SYLLABLE CIEUC U RIEULTHIEUTH +0x92A6 0xC90A #HANGUL SYLLABLE CIEUC U RIEULPHIEUPH +0x92A7 0xC90B #HANGUL SYLLABLE CIEUC U RIEULHIEUH +0x92A8 0xC90E #HANGUL SYLLABLE CIEUC U PIEUPSIOS +0x92A9 0xC912 #HANGUL SYLLABLE CIEUC U CIEUC +0x92AA 0xC913 #HANGUL SYLLABLE CIEUC U CHIEUCH +0x92AB 0xC914 #HANGUL SYLLABLE CIEUC U KHIEUKH +0x92AC 0xC915 #HANGUL SYLLABLE CIEUC U THIEUTH +0x92AD 0xC916 #HANGUL SYLLABLE CIEUC U PHIEUPH +0x92AE 0xC917 #HANGUL SYLLABLE CIEUC U HIEUH +0x92AF 0xC8FE #HANGUL SYLLABLE CIEUC U SSANGKIYEOK +0x92B0 0xC910 #HANGUL SYLLABLE CIEUC U SSANGSIOS +0x92B1 0xC96D #HANGUL SYLLABLE CIEUC YU KIYEOK +0x92B2 0xC96F #HANGUL SYLLABLE CIEUC YU KIYEOKSIOS +0x92B3 0xC971 #HANGUL SYLLABLE CIEUC YU NIEUNCIEUC +0x92B4 0xC972 #HANGUL SYLLABLE CIEUC YU NIEUNHIEUH +0x92B5 0xC973 #HANGUL SYLLABLE CIEUC YU TIKEUT +0x92B6 0xC975 #HANGUL SYLLABLE CIEUC YU RIEULKIYEOK +0x92B7 0xC976 #HANGUL SYLLABLE CIEUC YU RIEULMIEUM +0x92B8 0xC977 #HANGUL SYLLABLE CIEUC YU RIEULPIEUP +0x92B9 0xC978 #HANGUL SYLLABLE CIEUC YU RIEULSIOS +0x92BA 0xC979 #HANGUL SYLLABLE CIEUC YU RIEULTHIEUTH +0x92BB 0xC97A #HANGUL SYLLABLE CIEUC YU RIEULPHIEUPH +0x92BC 0xC97B #HANGUL SYLLABLE CIEUC YU RIEULHIEUH +0x92BD 0xC97D #HANGUL SYLLABLE CIEUC YU PIEUP +0x92BE 0xC97E #HANGUL SYLLABLE CIEUC YU PIEUPSIOS +0x92BF 0xC97F #HANGUL SYLLABLE CIEUC YU SIOS +0x92C0 0xC982 #HANGUL SYLLABLE CIEUC YU CIEUC +0x92C1 0xC983 #HANGUL SYLLABLE CIEUC YU CHIEUCH +0x92C2 0xC984 #HANGUL SYLLABLE CIEUC YU KHIEUKH +0x92C3 0xC985 #HANGUL SYLLABLE CIEUC YU THIEUTH +0x92C4 0xC986 #HANGUL SYLLABLE CIEUC YU PHIEUPH +0x92C5 0xC987 #HANGUL SYLLABLE CIEUC YU HIEUH +0x92C6 0xC96E #HANGUL SYLLABLE CIEUC YU SSANGKIYEOK +0x92C7 0xC980 #HANGUL SYLLABLE CIEUC YU SSANGSIOS +0x92C8 0xC98B #HANGUL SYLLABLE CIEUC EU KIYEOKSIOS +0x92C9 0xC98D #HANGUL SYLLABLE CIEUC EU NIEUNCIEUC +0x92CA 0xC98E #HANGUL SYLLABLE CIEUC EU NIEUNHIEUH +0x92CB 0xC98F #HANGUL SYLLABLE CIEUC EU TIKEUT +0x92CC 0xC991 #HANGUL SYLLABLE CIEUC EU RIEULKIYEOK +0x92CD 0xC992 #HANGUL SYLLABLE CIEUC EU RIEULMIEUM +0x92CE 0xC993 #HANGUL SYLLABLE CIEUC EU RIEULPIEUP +0x92CF 0xC994 #HANGUL SYLLABLE CIEUC EU RIEULSIOS +0x92D0 0xC995 #HANGUL SYLLABLE CIEUC EU RIEULTHIEUTH +0x92D1 0xC996 #HANGUL SYLLABLE CIEUC EU RIEULPHIEUPH +0x92D2 0xC997 #HANGUL SYLLABLE CIEUC EU RIEULHIEUH +0x92D3 0xC99A #HANGUL SYLLABLE CIEUC EU PIEUPSIOS +0x92D4 0xC99E #HANGUL SYLLABLE CIEUC EU CIEUC +0x92D5 0xC99F #HANGUL SYLLABLE CIEUC EU CHIEUCH +0x92D6 0xC9A0 #HANGUL SYLLABLE CIEUC EU KHIEUKH +0x92D7 0xC9A1 #HANGUL SYLLABLE CIEUC EU THIEUTH +0x92D8 0xC9A2 #HANGUL SYLLABLE CIEUC EU PHIEUPH +0x92D9 0xC9A3 #HANGUL SYLLABLE CIEUC EU HIEUH +0x92DA 0xC98A #HANGUL SYLLABLE CIEUC EU SSANGKIYEOK +0x92DB 0xC99C #HANGUL SYLLABLE CIEUC EU SSANGSIOS +0x92DC 0xC9C3 #HANGUL SYLLABLE CIEUC I KIYEOKSIOS +0x92DD 0xC9C5 #HANGUL SYLLABLE CIEUC I NIEUNCIEUC +0x92DE 0xC9C6 #HANGUL SYLLABLE CIEUC I NIEUNHIEUH +0x92DF 0xC9C9 #HANGUL SYLLABLE CIEUC I RIEULKIYEOK +0x92E0 0xC9CB #HANGUL SYLLABLE CIEUC I RIEULPIEUP +0x92E1 0xC9CC #HANGUL SYLLABLE CIEUC I RIEULSIOS +0x92E2 0xC9CD #HANGUL SYLLABLE CIEUC I RIEULTHIEUTH +0x92E3 0xC9CE #HANGUL SYLLABLE CIEUC I RIEULPHIEUPH +0x92E4 0xC9CF #HANGUL SYLLABLE CIEUC I RIEULHIEUH +0x92E5 0xC9D2 #HANGUL SYLLABLE CIEUC I PIEUPSIOS +0x92E6 0xC9D7 #HANGUL SYLLABLE CIEUC I CHIEUCH +0x92E7 0xC9D8 #HANGUL SYLLABLE CIEUC I KHIEUKH +0x92E8 0xC9DB #HANGUL SYLLABLE CIEUC I HIEUH +0x92E9 0xC9C2 #HANGUL SYLLABLE CIEUC I SSANGKIYEOK +0x92EA 0xC9D4 #HANGUL SYLLABLE CIEUC I SSANGSIOS +0x92EB 0xC7AF #HANGUL SYLLABLE CIEUC AE KIYEOKSIOS +0x92EC 0xC7B1 #HANGUL SYLLABLE CIEUC AE NIEUNCIEUC +0x92ED 0xC7B2 #HANGUL SYLLABLE CIEUC AE NIEUNHIEUH +0x92EE 0xC7B3 #HANGUL SYLLABLE CIEUC AE TIKEUT +0x92EF 0xC7B5 #HANGUL SYLLABLE CIEUC AE RIEULKIYEOK +0x92F0 0xC7B6 #HANGUL SYLLABLE CIEUC AE RIEULMIEUM +0x92F1 0xC7B7 #HANGUL SYLLABLE CIEUC AE RIEULPIEUP +0x92F2 0xC7B8 #HANGUL SYLLABLE CIEUC AE RIEULSIOS +0x92F3 0xC7B9 #HANGUL SYLLABLE CIEUC AE RIEULTHIEUTH +0x92F4 0xC7BA #HANGUL SYLLABLE CIEUC AE RIEULPHIEUPH +0x92F5 0xC7BB #HANGUL SYLLABLE CIEUC AE RIEULHIEUH +0x92F6 0xC7BE #HANGUL SYLLABLE CIEUC AE PIEUPSIOS +0x92F7 0xC7C2 #HANGUL SYLLABLE CIEUC AE CIEUC +0x92F8 0xC7C3 #HANGUL SYLLABLE CIEUC AE CHIEUCH +0x92F9 0xC7C4 #HANGUL SYLLABLE CIEUC AE KHIEUKH +0x92FA 0xC7C5 #HANGUL SYLLABLE CIEUC AE THIEUTH +0x92FB 0xC7C6 #HANGUL SYLLABLE CIEUC AE PHIEUPH +0x92FC 0xC7C7 #HANGUL SYLLABLE CIEUC AE HIEUH +0x92FD 0xC7AE #HANGUL SYLLABLE CIEUC AE SSANGKIYEOK +0x92FE 0xC7E5 #HANGUL SYLLABLE CIEUC YAE KIYEOK +0x9341 0xC7E7 #HANGUL SYLLABLE CIEUC YAE KIYEOKSIOS +0x9342 0xC7E9 #HANGUL SYLLABLE CIEUC YAE NIEUNCIEUC +0x9343 0xC7EA #HANGUL SYLLABLE CIEUC YAE NIEUNHIEUH +0x9344 0xC7EB #HANGUL SYLLABLE CIEUC YAE TIKEUT +0x9345 0xC7ED #HANGUL SYLLABLE CIEUC YAE RIEULKIYEOK +0x9346 0xC7EE #HANGUL SYLLABLE CIEUC YAE RIEULMIEUM +0x9347 0xC7EF #HANGUL SYLLABLE CIEUC YAE RIEULPIEUP +0x9348 0xC7F0 #HANGUL SYLLABLE CIEUC YAE RIEULSIOS +0x9349 0xC7F1 #HANGUL SYLLABLE CIEUC YAE RIEULTHIEUTH +0x934A 0xC7F2 #HANGUL SYLLABLE CIEUC YAE RIEULPHIEUPH +0x934B 0xC7F3 #HANGUL SYLLABLE CIEUC YAE RIEULHIEUH +0x934C 0xC7F4 #HANGUL SYLLABLE CIEUC YAE MIEUM +0x934D 0xC7F5 #HANGUL SYLLABLE CIEUC YAE PIEUP +0x934E 0xC7F6 #HANGUL SYLLABLE CIEUC YAE PIEUPSIOS +0x934F 0xC7F7 #HANGUL SYLLABLE CIEUC YAE SIOS +0x9350 0xC7F9 #HANGUL SYLLABLE CIEUC YAE IEUNG +0x9351 0xC7FA #HANGUL SYLLABLE CIEUC YAE CIEUC +0x9352 0xC7FB #HANGUL SYLLABLE CIEUC YAE CHIEUCH +0x9353 0xC7FC #HANGUL SYLLABLE CIEUC YAE KHIEUKH +0x9354 0xC7FD #HANGUL SYLLABLE CIEUC YAE THIEUTH +0x9355 0xC7FE #HANGUL SYLLABLE CIEUC YAE PHIEUPH +0x9356 0xC7FF #HANGUL SYLLABLE CIEUC YAE HIEUH +0x9357 0xC7E6 #HANGUL SYLLABLE CIEUC YAE SSANGKIYEOK +0x9358 0xC7F8 #HANGUL SYLLABLE CIEUC YAE SSANGSIOS +0x9359 0xC81F #HANGUL SYLLABLE CIEUC E KIYEOKSIOS +0x935A 0xC821 #HANGUL SYLLABLE CIEUC E NIEUNCIEUC +0x9361 0xC822 #HANGUL SYLLABLE CIEUC E NIEUNHIEUH +0x9362 0xC823 #HANGUL SYLLABLE CIEUC E TIKEUT +0x9363 0xC825 #HANGUL SYLLABLE CIEUC E RIEULKIYEOK +0x9364 0xC826 #HANGUL SYLLABLE CIEUC E RIEULMIEUM +0x9365 0xC827 #HANGUL SYLLABLE CIEUC E RIEULPIEUP +0x9366 0xC828 #HANGUL SYLLABLE CIEUC E RIEULSIOS +0x9367 0xC829 #HANGUL SYLLABLE CIEUC E RIEULTHIEUTH +0x9368 0xC82A #HANGUL SYLLABLE CIEUC E RIEULPHIEUPH +0x9369 0xC82B #HANGUL SYLLABLE CIEUC E RIEULHIEUH +0x936A 0xC82E #HANGUL SYLLABLE CIEUC E PIEUPSIOS +0x936B 0xC832 #HANGUL SYLLABLE CIEUC E CIEUC +0x936C 0xC833 #HANGUL SYLLABLE CIEUC E CHIEUCH +0x936D 0xC834 #HANGUL SYLLABLE CIEUC E KHIEUKH +0x936E 0xC835 #HANGUL SYLLABLE CIEUC E THIEUTH +0x936F 0xC837 #HANGUL SYLLABLE CIEUC E HIEUH +0x9370 0xC81E #HANGUL SYLLABLE CIEUC E SSANGKIYEOK +0x9371 0xC855 #HANGUL SYLLABLE CIEUC YE KIYEOK +0x9372 0xC857 #HANGUL SYLLABLE CIEUC YE KIYEOKSIOS +0x9373 0xC859 #HANGUL SYLLABLE CIEUC YE NIEUNCIEUC +0x9374 0xC85A #HANGUL SYLLABLE CIEUC YE NIEUNHIEUH +0x9375 0xC85B #HANGUL SYLLABLE CIEUC YE TIKEUT +0x9376 0xC85D #HANGUL SYLLABLE CIEUC YE RIEULKIYEOK +0x9377 0xC85E #HANGUL SYLLABLE CIEUC YE RIEULMIEUM +0x9378 0xC85F #HANGUL SYLLABLE CIEUC YE RIEULPIEUP +0x9379 0xC860 #HANGUL SYLLABLE CIEUC YE RIEULSIOS +0x937A 0xC861 #HANGUL SYLLABLE CIEUC YE RIEULTHIEUTH +0x9381 0xC862 #HANGUL SYLLABLE CIEUC YE RIEULPHIEUPH +0x9382 0xC863 #HANGUL SYLLABLE CIEUC YE RIEULHIEUH +0x9383 0xC864 #HANGUL SYLLABLE CIEUC YE MIEUM +0x9384 0xC865 #HANGUL SYLLABLE CIEUC YE PIEUP +0x9385 0xC866 #HANGUL SYLLABLE CIEUC YE PIEUPSIOS +0x9386 0xC867 #HANGUL SYLLABLE CIEUC YE SIOS +0x9387 0xC869 #HANGUL SYLLABLE CIEUC YE IEUNG +0x9388 0xC86A #HANGUL SYLLABLE CIEUC YE CIEUC +0x9389 0xC86B #HANGUL SYLLABLE CIEUC YE CHIEUCH +0x938A 0xC86C #HANGUL SYLLABLE CIEUC YE KHIEUKH +0x938B 0xC86D #HANGUL SYLLABLE CIEUC YE THIEUTH +0x938C 0xC86E #HANGUL SYLLABLE CIEUC YE PHIEUPH +0x938D 0xC86F #HANGUL SYLLABLE CIEUC YE HIEUH +0x938E 0xC856 #HANGUL SYLLABLE CIEUC YE SSANGKIYEOK +0x938F 0xC868 #HANGUL SYLLABLE CIEUC YE SSANGSIOS +0x9390 0xC8C5 #HANGUL SYLLABLE CIEUC OE KIYEOK +0x9391 0xC8C7 #HANGUL SYLLABLE CIEUC OE KIYEOKSIOS +0x9392 0xC8C9 #HANGUL SYLLABLE CIEUC OE NIEUNCIEUC +0x9393 0xC8CA #HANGUL SYLLABLE CIEUC OE NIEUNHIEUH +0x9394 0xC8CB #HANGUL SYLLABLE CIEUC OE TIKEUT +0x9395 0xC8CD #HANGUL SYLLABLE CIEUC OE RIEULKIYEOK +0x9396 0xC8CE #HANGUL SYLLABLE CIEUC OE RIEULMIEUM +0x9397 0xC8CF #HANGUL SYLLABLE CIEUC OE RIEULPIEUP +0x9398 0xC8D0 #HANGUL SYLLABLE CIEUC OE RIEULSIOS +0x9399 0xC8D1 #HANGUL SYLLABLE CIEUC OE RIEULTHIEUTH +0x939A 0xC8D2 #HANGUL SYLLABLE CIEUC OE RIEULPHIEUPH +0x939B 0xC8D3 #HANGUL SYLLABLE CIEUC OE RIEULHIEUH +0x939C 0xC8D6 #HANGUL SYLLABLE CIEUC OE PIEUPSIOS +0x939D 0xC8DA #HANGUL SYLLABLE CIEUC OE CIEUC +0x939E 0xC8DB #HANGUL SYLLABLE CIEUC OE CHIEUCH +0x939F 0xC8DC #HANGUL SYLLABLE CIEUC OE KHIEUKH +0x93A0 0xC8DD #HANGUL SYLLABLE CIEUC OE THIEUTH +0x93A1 0xC8DE #HANGUL SYLLABLE CIEUC OE PHIEUPH +0x93A2 0xC8DF #HANGUL SYLLABLE CIEUC OE HIEUH +0x93A3 0xC8C6 #HANGUL SYLLABLE CIEUC OE SSANGKIYEOK +0x93A4 0xC953 #HANGUL SYLLABLE CIEUC WI KIYEOKSIOS +0x93A5 0xC955 #HANGUL SYLLABLE CIEUC WI NIEUNCIEUC +0x93A6 0xC956 #HANGUL SYLLABLE CIEUC WI NIEUNHIEUH +0x93A7 0xC959 #HANGUL SYLLABLE CIEUC WI RIEULKIYEOK +0x93A8 0xC95A #HANGUL SYLLABLE CIEUC WI RIEULMIEUM +0x93A9 0xC95B #HANGUL SYLLABLE CIEUC WI RIEULPIEUP +0x93AA 0xC95C #HANGUL SYLLABLE CIEUC WI RIEULSIOS +0x93AB 0xC95D #HANGUL SYLLABLE CIEUC WI RIEULTHIEUTH +0x93AC 0xC95E #HANGUL SYLLABLE CIEUC WI RIEULPHIEUPH +0x93AD 0xC95F #HANGUL SYLLABLE CIEUC WI RIEULHIEUH +0x93AE 0xC962 #HANGUL SYLLABLE CIEUC WI PIEUPSIOS +0x93AF 0xC965 #HANGUL SYLLABLE CIEUC WI IEUNG +0x93B0 0xC966 #HANGUL SYLLABLE CIEUC WI CIEUC +0x93B1 0xC967 #HANGUL SYLLABLE CIEUC WI CHIEUCH +0x93B2 0xC968 #HANGUL SYLLABLE CIEUC WI KHIEUKH +0x93B3 0xC969 #HANGUL SYLLABLE CIEUC WI THIEUTH +0x93B4 0xC96A #HANGUL SYLLABLE CIEUC WI PHIEUPH +0x93B5 0xC96B #HANGUL SYLLABLE CIEUC WI HIEUH +0x93B6 0xC952 #HANGUL SYLLABLE CIEUC WI SSANGKIYEOK +0x93B7 0xC964 #HANGUL SYLLABLE CIEUC WI SSANGSIOS +0x93B8 0xC9A5 #HANGUL SYLLABLE CIEUC YI KIYEOK +0x93B9 0xC9A7 #HANGUL SYLLABLE CIEUC YI KIYEOKSIOS +0x93BA 0xC9A8 #HANGUL SYLLABLE CIEUC YI NIEUN +0x93BB 0xC9A9 #HANGUL SYLLABLE CIEUC YI NIEUNCIEUC +0x93BC 0xC9AA #HANGUL SYLLABLE CIEUC YI NIEUNHIEUH +0x93BD 0xC9AB #HANGUL SYLLABLE CIEUC YI TIKEUT +0x93BE 0xC9AC #HANGUL SYLLABLE CIEUC YI RIEUL +0x93BF 0xC9AD #HANGUL SYLLABLE CIEUC YI RIEULKIYEOK +0x93C0 0xC9AE #HANGUL SYLLABLE CIEUC YI RIEULMIEUM +0x93C1 0xC9AF #HANGUL SYLLABLE CIEUC YI RIEULPIEUP +0x93C2 0xC9B0 #HANGUL SYLLABLE CIEUC YI RIEULSIOS +0x93C3 0xC9B1 #HANGUL SYLLABLE CIEUC YI RIEULTHIEUTH +0x93C4 0xC9B2 #HANGUL SYLLABLE CIEUC YI RIEULPHIEUPH +0x93C5 0xC9B3 #HANGUL SYLLABLE CIEUC YI RIEULHIEUH +0x93C6 0xC9B4 #HANGUL SYLLABLE CIEUC YI MIEUM +0x93C7 0xC9B5 #HANGUL SYLLABLE CIEUC YI PIEUP +0x93C8 0xC9B6 #HANGUL SYLLABLE CIEUC YI PIEUPSIOS +0x93C9 0xC9B7 #HANGUL SYLLABLE CIEUC YI SIOS +0x93CA 0xC9B9 #HANGUL SYLLABLE CIEUC YI IEUNG +0x93CB 0xC9BA #HANGUL SYLLABLE CIEUC YI CIEUC +0x93CC 0xC9BB #HANGUL SYLLABLE CIEUC YI CHIEUCH +0x93CD 0xC9BC #HANGUL SYLLABLE CIEUC YI KHIEUKH +0x93CE 0xC9BD #HANGUL SYLLABLE CIEUC YI THIEUTH +0x93CF 0xC9BE #HANGUL SYLLABLE CIEUC YI PHIEUPH +0x93D0 0xC9BF #HANGUL SYLLABLE CIEUC YI HIEUH +0x93D1 0xC9A6 #HANGUL SYLLABLE CIEUC YI SSANGKIYEOK +0x93D2 0xC9B8 #HANGUL SYLLABLE CIEUC YI SSANGSIOS +0x93D3 0xC88F #HANGUL SYLLABLE CIEUC WA KIYEOKSIOS +0x93D4 0xC891 #HANGUL SYLLABLE CIEUC WA NIEUNCIEUC +0x93D5 0xC892 #HANGUL SYLLABLE CIEUC WA NIEUNHIEUH +0x93D6 0xC893 #HANGUL SYLLABLE CIEUC WA TIKEUT +0x93D7 0xC895 #HANGUL SYLLABLE CIEUC WA RIEULKIYEOK +0x93D8 0xC896 #HANGUL SYLLABLE CIEUC WA RIEULMIEUM +0x93D9 0xC897 #HANGUL SYLLABLE CIEUC WA RIEULPIEUP +0x93DA 0xC898 #HANGUL SYLLABLE CIEUC WA RIEULSIOS +0x93DB 0xC899 #HANGUL SYLLABLE CIEUC WA RIEULTHIEUTH +0x93DC 0xC89A #HANGUL SYLLABLE CIEUC WA RIEULPHIEUPH +0x93DD 0xC89B #HANGUL SYLLABLE CIEUC WA RIEULHIEUH +0x93DE 0xC89C #HANGUL SYLLABLE CIEUC WA MIEUM +0x93DF 0xC89E #HANGUL SYLLABLE CIEUC WA PIEUPSIOS +0x93E0 0xC8A2 #HANGUL SYLLABLE CIEUC WA CIEUC +0x93E1 0xC8A3 #HANGUL SYLLABLE CIEUC WA CHIEUCH +0x93E2 0xC8A4 #HANGUL SYLLABLE CIEUC WA KHIEUKH +0x93E3 0xC8A5 #HANGUL SYLLABLE CIEUC WA THIEUTH +0x93E4 0xC8A6 #HANGUL SYLLABLE CIEUC WA PHIEUPH +0x93E5 0xC8A7 #HANGUL SYLLABLE CIEUC WA HIEUH +0x93E6 0xC88E #HANGUL SYLLABLE CIEUC WA SSANGKIYEOK +0x93E7 0xC8A0 #HANGUL SYLLABLE CIEUC WA SSANGSIOS +0x93E8 0xC919 #HANGUL SYLLABLE CIEUC WEO KIYEOK +0x93E9 0xC91B #HANGUL SYLLABLE CIEUC WEO KIYEOKSIOS +0x93EA 0xC91C #HANGUL SYLLABLE CIEUC WEO NIEUN +0x93EB 0xC91D #HANGUL SYLLABLE CIEUC WEO NIEUNCIEUC +0x93EC 0xC91E #HANGUL SYLLABLE CIEUC WEO NIEUNHIEUH +0x93ED 0xC91F #HANGUL SYLLABLE CIEUC WEO TIKEUT +0x93EE 0xC920 #HANGUL SYLLABLE CIEUC WEO RIEUL +0x93EF 0xC921 #HANGUL SYLLABLE CIEUC WEO RIEULKIYEOK +0x93F0 0xC922 #HANGUL SYLLABLE CIEUC WEO RIEULMIEUM +0x93F1 0xC923 #HANGUL SYLLABLE CIEUC WEO RIEULPIEUP +0x93F2 0xC924 #HANGUL SYLLABLE CIEUC WEO RIEULSIOS +0x93F3 0xC925 #HANGUL SYLLABLE CIEUC WEO RIEULTHIEUTH +0x93F4 0xC926 #HANGUL SYLLABLE CIEUC WEO RIEULPHIEUPH +0x93F5 0xC927 #HANGUL SYLLABLE CIEUC WEO RIEULHIEUH +0x93F6 0xC928 #HANGUL SYLLABLE CIEUC WEO MIEUM +0x93F7 0xC929 #HANGUL SYLLABLE CIEUC WEO PIEUP +0x93F8 0xC92A #HANGUL SYLLABLE CIEUC WEO PIEUPSIOS +0x93F9 0xC92B #HANGUL SYLLABLE CIEUC WEO SIOS +0x93FA 0xC92D #HANGUL SYLLABLE CIEUC WEO IEUNG +0x93FB 0xC92E #HANGUL SYLLABLE CIEUC WEO CIEUC +0x93FC 0xC92F #HANGUL SYLLABLE CIEUC WEO CHIEUCH +0x93FD 0xC930 #HANGUL SYLLABLE CIEUC WEO KHIEUKH +0x93FE 0xC931 #HANGUL SYLLABLE CIEUC WEO THIEUTH +0x9441 0xC932 #HANGUL SYLLABLE CIEUC WEO PHIEUPH +0x9442 0xC933 #HANGUL SYLLABLE CIEUC WEO HIEUH +0x9443 0xC91A #HANGUL SYLLABLE CIEUC WEO SSANGKIYEOK +0x9444 0xC8A9 #HANGUL SYLLABLE CIEUC WAE KIYEOK +0x9445 0xC8AB #HANGUL SYLLABLE CIEUC WAE KIYEOKSIOS +0x9446 0xC8AC #HANGUL SYLLABLE CIEUC WAE NIEUN +0x9447 0xC8AD #HANGUL SYLLABLE CIEUC WAE NIEUNCIEUC +0x9448 0xC8AE #HANGUL SYLLABLE CIEUC WAE NIEUNHIEUH +0x9449 0xC8AF #HANGUL SYLLABLE CIEUC WAE TIKEUT +0x944A 0xC8B0 #HANGUL SYLLABLE CIEUC WAE RIEUL +0x944B 0xC8B1 #HANGUL SYLLABLE CIEUC WAE RIEULKIYEOK +0x944C 0xC8B2 #HANGUL SYLLABLE CIEUC WAE RIEULMIEUM +0x944D 0xC8B3 #HANGUL SYLLABLE CIEUC WAE RIEULPIEUP +0x944E 0xC8B4 #HANGUL SYLLABLE CIEUC WAE RIEULSIOS +0x944F 0xC8B5 #HANGUL SYLLABLE CIEUC WAE RIEULTHIEUTH +0x9450 0xC8B6 #HANGUL SYLLABLE CIEUC WAE RIEULPHIEUPH +0x9451 0xC8B7 #HANGUL SYLLABLE CIEUC WAE RIEULHIEUH +0x9452 0xC8B8 #HANGUL SYLLABLE CIEUC WAE MIEUM +0x9453 0xC8B9 #HANGUL SYLLABLE CIEUC WAE PIEUP +0x9454 0xC8BA #HANGUL SYLLABLE CIEUC WAE PIEUPSIOS +0x9455 0xC8BB #HANGUL SYLLABLE CIEUC WAE SIOS +0x9456 0xC8BE #HANGUL SYLLABLE CIEUC WAE CIEUC +0x9457 0xC8BF #HANGUL SYLLABLE CIEUC WAE CHIEUCH +0x9458 0xC8C0 #HANGUL SYLLABLE CIEUC WAE KHIEUKH +0x9459 0xC8C1 #HANGUL SYLLABLE CIEUC WAE THIEUTH +0x945A 0xC8C2 #HANGUL SYLLABLE CIEUC WAE PHIEUPH +0x9461 0xC8C3 #HANGUL SYLLABLE CIEUC WAE HIEUH +0x9462 0xC8AA #HANGUL SYLLABLE CIEUC WAE SSANGKIYEOK +0x9463 0xC935 #HANGUL SYLLABLE CIEUC WE KIYEOK +0x9464 0xC937 #HANGUL SYLLABLE CIEUC WE KIYEOKSIOS +0x9465 0xC939 #HANGUL SYLLABLE CIEUC WE NIEUNCIEUC +0x9466 0xC93A #HANGUL SYLLABLE CIEUC WE NIEUNHIEUH +0x9467 0xC93B #HANGUL SYLLABLE CIEUC WE TIKEUT +0x9468 0xC93D #HANGUL SYLLABLE CIEUC WE RIEULKIYEOK +0x9469 0xC93E #HANGUL SYLLABLE CIEUC WE RIEULMIEUM +0x946A 0xC93F #HANGUL SYLLABLE CIEUC WE RIEULPIEUP +0x946B 0xC940 #HANGUL SYLLABLE CIEUC WE RIEULSIOS +0x946C 0xC941 #HANGUL SYLLABLE CIEUC WE RIEULTHIEUTH +0x946D 0xC942 #HANGUL SYLLABLE CIEUC WE RIEULPHIEUPH +0x946E 0xC943 #HANGUL SYLLABLE CIEUC WE RIEULHIEUH +0x946F 0xC946 #HANGUL SYLLABLE CIEUC WE PIEUPSIOS +0x9470 0xC947 #HANGUL SYLLABLE CIEUC WE SIOS +0x9471 0xC949 #HANGUL SYLLABLE CIEUC WE IEUNG +0x9472 0xC94A #HANGUL SYLLABLE CIEUC WE CIEUC +0x9473 0xC94B #HANGUL SYLLABLE CIEUC WE CHIEUCH +0x9474 0xC94C #HANGUL SYLLABLE CIEUC WE KHIEUKH +0x9475 0xC94D #HANGUL SYLLABLE CIEUC WE THIEUTH +0x9476 0xC94E #HANGUL SYLLABLE CIEUC WE PHIEUPH +0x9477 0xC94F #HANGUL SYLLABLE CIEUC WE HIEUH +0x9478 0xC936 #HANGUL SYLLABLE CIEUC WE SSANGKIYEOK +0x9479 0xCC2B #HANGUL SYLLABLE CHIEUCH A KIYEOKSIOS +0x947A 0xCC2D #HANGUL SYLLABLE CHIEUCH A NIEUNCIEUC +0x9481 0xCC2F #HANGUL SYLLABLE CHIEUCH A TIKEUT +0x9482 0xCC31 #HANGUL SYLLABLE CHIEUCH A RIEULKIYEOK +0x9483 0xCC32 #HANGUL SYLLABLE CHIEUCH A RIEULMIEUM +0x9484 0xCC33 #HANGUL SYLLABLE CHIEUCH A RIEULPIEUP +0x9485 0xCC34 #HANGUL SYLLABLE CHIEUCH A RIEULSIOS +0x9486 0xCC35 #HANGUL SYLLABLE CHIEUCH A RIEULTHIEUTH +0x9487 0xCC36 #HANGUL SYLLABLE CHIEUCH A RIEULPHIEUPH +0x9488 0xCC37 #HANGUL SYLLABLE CHIEUCH A RIEULHIEUH +0x9489 0xCC3A #HANGUL SYLLABLE CHIEUCH A PIEUPSIOS +0x948A 0xCC3F #HANGUL SYLLABLE CHIEUCH A CHIEUCH +0x948B 0xCC40 #HANGUL SYLLABLE CHIEUCH A KHIEUKH +0x948C 0xCC41 #HANGUL SYLLABLE CHIEUCH A THIEUTH +0x948D 0xCC42 #HANGUL SYLLABLE CHIEUCH A PHIEUPH +0x948E 0xCC43 #HANGUL SYLLABLE CHIEUCH A HIEUH +0x948F 0xCC2A #HANGUL SYLLABLE CHIEUCH A SSANGKIYEOK +0x9490 0xCC61 #HANGUL SYLLABLE CHIEUCH YA KIYEOK +0x9491 0xCC63 #HANGUL SYLLABLE CHIEUCH YA KIYEOKSIOS +0x9492 0xCC65 #HANGUL SYLLABLE CHIEUCH YA NIEUNCIEUC +0x9493 0xCC67 #HANGUL SYLLABLE CHIEUCH YA TIKEUT +0x9494 0xCC69 #HANGUL SYLLABLE CHIEUCH YA RIEULKIYEOK +0x9495 0xCC6A #HANGUL SYLLABLE CHIEUCH YA RIEULMIEUM +0x9496 0xCC6B #HANGUL SYLLABLE CHIEUCH YA RIEULPIEUP +0x9497 0xCC6C #HANGUL SYLLABLE CHIEUCH YA RIEULSIOS +0x9498 0xCC6D #HANGUL SYLLABLE CHIEUCH YA RIEULTHIEUTH +0x9499 0xCC6E #HANGUL SYLLABLE CHIEUCH YA RIEULPHIEUPH +0x949A 0xCC6F #HANGUL SYLLABLE CHIEUCH YA RIEULHIEUH +0x949B 0xCC72 #HANGUL SYLLABLE CHIEUCH YA PIEUPSIOS +0x949C 0xCC73 #HANGUL SYLLABLE CHIEUCH YA SIOS +0x949D 0xCC76 #HANGUL SYLLABLE CHIEUCH YA CIEUC +0x949E 0xCC77 #HANGUL SYLLABLE CHIEUCH YA CHIEUCH +0x949F 0xCC78 #HANGUL SYLLABLE CHIEUCH YA KHIEUKH +0x94A0 0xCC79 #HANGUL SYLLABLE CHIEUCH YA THIEUTH +0x94A1 0xCC7A #HANGUL SYLLABLE CHIEUCH YA PHIEUPH +0x94A2 0xCC7B #HANGUL SYLLABLE CHIEUCH YA HIEUH +0x94A3 0xCC62 #HANGUL SYLLABLE CHIEUCH YA SSANGKIYEOK +0x94A4 0xCC74 #HANGUL SYLLABLE CHIEUCH YA SSANGSIOS +0x94A5 0xCC9B #HANGUL SYLLABLE CHIEUCH EO KIYEOKSIOS +0x94A6 0xCC9D #HANGUL SYLLABLE CHIEUCH EO NIEUNCIEUC +0x94A7 0xCC9E #HANGUL SYLLABLE CHIEUCH EO NIEUNHIEUH +0x94A8 0xCC9F #HANGUL SYLLABLE CHIEUCH EO TIKEUT +0x94A9 0xCCA1 #HANGUL SYLLABLE CHIEUCH EO RIEULKIYEOK +0x94AA 0xCCA2 #HANGUL SYLLABLE CHIEUCH EO RIEULMIEUM +0x94AB 0xCCA3 #HANGUL SYLLABLE CHIEUCH EO RIEULPIEUP +0x94AC 0xCCA4 #HANGUL SYLLABLE CHIEUCH EO RIEULSIOS +0x94AD 0xCCA5 #HANGUL SYLLABLE CHIEUCH EO RIEULTHIEUTH +0x94AE 0xCCA6 #HANGUL SYLLABLE CHIEUCH EO RIEULPHIEUPH +0x94AF 0xCCA7 #HANGUL SYLLABLE CHIEUCH EO RIEULHIEUH +0x94B0 0xCCAA #HANGUL SYLLABLE CHIEUCH EO PIEUPSIOS +0x94B1 0xCCAE #HANGUL SYLLABLE CHIEUCH EO CIEUC +0x94B2 0xCCAF #HANGUL SYLLABLE CHIEUCH EO CHIEUCH +0x94B3 0xCCB0 #HANGUL SYLLABLE CHIEUCH EO KHIEUKH +0x94B4 0xCCB1 #HANGUL SYLLABLE CHIEUCH EO THIEUTH +0x94B5 0xCCB2 #HANGUL SYLLABLE CHIEUCH EO PHIEUPH +0x94B6 0xCCB3 #HANGUL SYLLABLE CHIEUCH EO HIEUH +0x94B7 0xCC9A #HANGUL SYLLABLE CHIEUCH EO SSANGKIYEOK +0x94B8 0xCCD3 #HANGUL SYLLABLE CHIEUCH YEO KIYEOKSIOS +0x94B9 0xCCD5 #HANGUL SYLLABLE CHIEUCH YEO NIEUNCIEUC +0x94BA 0xCCD6 #HANGUL SYLLABLE CHIEUCH YEO NIEUNHIEUH +0x94BB 0xCCD7 #HANGUL SYLLABLE CHIEUCH YEO TIKEUT +0x94BC 0xCCD9 #HANGUL SYLLABLE CHIEUCH YEO RIEULKIYEOK +0x94BD 0xCCDA #HANGUL SYLLABLE CHIEUCH YEO RIEULMIEUM +0x94BE 0xCCDB #HANGUL SYLLABLE CHIEUCH YEO RIEULPIEUP +0x94BF 0xCCDC #HANGUL SYLLABLE CHIEUCH YEO RIEULSIOS +0x94C0 0xCCDD #HANGUL SYLLABLE CHIEUCH YEO RIEULTHIEUTH +0x94C1 0xCCDE #HANGUL SYLLABLE CHIEUCH YEO RIEULPHIEUPH +0x94C2 0xCCDF #HANGUL SYLLABLE CHIEUCH YEO RIEULHIEUH +0x94C3 0xCCE0 #HANGUL SYLLABLE CHIEUCH YEO MIEUM +0x94C4 0xCCE1 #HANGUL SYLLABLE CHIEUCH YEO PIEUP +0x94C5 0xCCE2 #HANGUL SYLLABLE CHIEUCH YEO PIEUPSIOS +0x94C6 0xCCE3 #HANGUL SYLLABLE CHIEUCH YEO SIOS +0x94C7 0xCCE5 #HANGUL SYLLABLE CHIEUCH YEO IEUNG +0x94C8 0xCCE6 #HANGUL SYLLABLE CHIEUCH YEO CIEUC +0x94C9 0xCCE7 #HANGUL SYLLABLE CHIEUCH YEO CHIEUCH +0x94CA 0xCCE8 #HANGUL SYLLABLE CHIEUCH YEO KHIEUKH +0x94CB 0xCCE9 #HANGUL SYLLABLE CHIEUCH YEO THIEUTH +0x94CC 0xCCEA #HANGUL SYLLABLE CHIEUCH YEO PHIEUPH +0x94CD 0xCCEB #HANGUL SYLLABLE CHIEUCH YEO HIEUH +0x94CE 0xCCD2 #HANGUL SYLLABLE CHIEUCH YEO SSANGKIYEOK +0x94CF 0xCD0B #HANGUL SYLLABLE CHIEUCH O KIYEOKSIOS +0x94D0 0xCD0D #HANGUL SYLLABLE CHIEUCH O NIEUNCIEUC +0x94D1 0xCD0E #HANGUL SYLLABLE CHIEUCH O NIEUNHIEUH +0x94D2 0xCD0F #HANGUL SYLLABLE CHIEUCH O TIKEUT +0x94D3 0xCD11 #HANGUL SYLLABLE CHIEUCH O RIEULKIYEOK +0x94D4 0xCD12 #HANGUL SYLLABLE CHIEUCH O RIEULMIEUM +0x94D5 0xCD13 #HANGUL SYLLABLE CHIEUCH O RIEULPIEUP +0x94D6 0xCD14 #HANGUL SYLLABLE CHIEUCH O RIEULSIOS +0x94D7 0xCD15 #HANGUL SYLLABLE CHIEUCH O RIEULTHIEUTH +0x94D8 0xCD16 #HANGUL SYLLABLE CHIEUCH O RIEULPHIEUPH +0x94D9 0xCD17 #HANGUL SYLLABLE CHIEUCH O RIEULHIEUH +0x94DA 0xCD1A #HANGUL SYLLABLE CHIEUCH O PIEUPSIOS +0x94DB 0xCD1E #HANGUL SYLLABLE CHIEUCH O CIEUC +0x94DC 0xCD1F #HANGUL SYLLABLE CHIEUCH O CHIEUCH +0x94DD 0xCD20 #HANGUL SYLLABLE CHIEUCH O KHIEUKH +0x94DE 0xCD21 #HANGUL SYLLABLE CHIEUCH O THIEUTH +0x94DF 0xCD22 #HANGUL SYLLABLE CHIEUCH O PHIEUPH +0x94E0 0xCD23 #HANGUL SYLLABLE CHIEUCH O HIEUH +0x94E1 0xCD0A #HANGUL SYLLABLE CHIEUCH O SSANGKIYEOK +0x94E2 0xCD1C #HANGUL SYLLABLE CHIEUCH O SSANGSIOS +0x94E3 0xCD79 #HANGUL SYLLABLE CHIEUCH YO KIYEOK +0x94E4 0xCD7B #HANGUL SYLLABLE CHIEUCH YO KIYEOKSIOS +0x94E5 0xCD7D #HANGUL SYLLABLE CHIEUCH YO NIEUNCIEUC +0x94E6 0xCD7E #HANGUL SYLLABLE CHIEUCH YO NIEUNHIEUH +0x94E7 0xCD7F #HANGUL SYLLABLE CHIEUCH YO TIKEUT +0x94E8 0xCD81 #HANGUL SYLLABLE CHIEUCH YO RIEULKIYEOK +0x94E9 0xCD82 #HANGUL SYLLABLE CHIEUCH YO RIEULMIEUM +0x94EA 0xCD83 #HANGUL SYLLABLE CHIEUCH YO RIEULPIEUP +0x94EB 0xCD84 #HANGUL SYLLABLE CHIEUCH YO RIEULSIOS +0x94EC 0xCD85 #HANGUL SYLLABLE CHIEUCH YO RIEULTHIEUTH +0x94ED 0xCD86 #HANGUL SYLLABLE CHIEUCH YO RIEULPHIEUPH +0x94EE 0xCD87 #HANGUL SYLLABLE CHIEUCH YO RIEULHIEUH +0x94EF 0xCD89 #HANGUL SYLLABLE CHIEUCH YO PIEUP +0x94F0 0xCD8A #HANGUL SYLLABLE CHIEUCH YO PIEUPSIOS +0x94F1 0xCD8B #HANGUL SYLLABLE CHIEUCH YO SIOS +0x94F2 0xCD8D #HANGUL SYLLABLE CHIEUCH YO IEUNG +0x94F3 0xCD8E #HANGUL SYLLABLE CHIEUCH YO CIEUC +0x94F4 0xCD8F #HANGUL SYLLABLE CHIEUCH YO CHIEUCH +0x94F5 0xCD90 #HANGUL SYLLABLE CHIEUCH YO KHIEUKH +0x94F6 0xCD91 #HANGUL SYLLABLE CHIEUCH YO THIEUTH +0x94F7 0xCD92 #HANGUL SYLLABLE CHIEUCH YO PHIEUPH +0x94F8 0xCD93 #HANGUL SYLLABLE CHIEUCH YO HIEUH +0x94F9 0xCD7A #HANGUL SYLLABLE CHIEUCH YO SSANGKIYEOK +0x94FA 0xCD8C #HANGUL SYLLABLE CHIEUCH YO SSANGSIOS +0x94FB 0xCD97 #HANGUL SYLLABLE CHIEUCH U KIYEOKSIOS +0x94FC 0xCD99 #HANGUL SYLLABLE CHIEUCH U NIEUNCIEUC +0x94FD 0xCD9A #HANGUL SYLLABLE CHIEUCH U NIEUNHIEUH +0x94FE 0xCD9D #HANGUL SYLLABLE CHIEUCH U RIEULKIYEOK +0x9541 0xCD9E #HANGUL SYLLABLE CHIEUCH U RIEULMIEUM +0x9542 0xCD9F #HANGUL SYLLABLE CHIEUCH U RIEULPIEUP +0x9543 0xCDA0 #HANGUL SYLLABLE CHIEUCH U RIEULSIOS +0x9544 0xCDA1 #HANGUL SYLLABLE CHIEUCH U RIEULTHIEUTH +0x9545 0xCDA2 #HANGUL SYLLABLE CHIEUCH U RIEULPHIEUPH +0x9546 0xCDA3 #HANGUL SYLLABLE CHIEUCH U RIEULHIEUH +0x9547 0xCDA6 #HANGUL SYLLABLE CHIEUCH U PIEUPSIOS +0x9548 0xCDAA #HANGUL SYLLABLE CHIEUCH U CIEUC +0x9549 0xCDAB #HANGUL SYLLABLE CHIEUCH U CHIEUCH +0x954A 0xCDAC #HANGUL SYLLABLE CHIEUCH U KHIEUKH +0x954B 0xCDAD #HANGUL SYLLABLE CHIEUCH U THIEUTH +0x954C 0xCDAE #HANGUL SYLLABLE CHIEUCH U PHIEUPH +0x954D 0xCDAF #HANGUL SYLLABLE CHIEUCH U HIEUH +0x954E 0xCD96 #HANGUL SYLLABLE CHIEUCH U SSANGKIYEOK +0x954F 0xCDA8 #HANGUL SYLLABLE CHIEUCH U SSANGSIOS +0x9550 0xCE05 #HANGUL SYLLABLE CHIEUCH YU KIYEOK +0x9551 0xCE07 #HANGUL SYLLABLE CHIEUCH YU KIYEOKSIOS +0x9552 0xCE09 #HANGUL SYLLABLE CHIEUCH YU NIEUNCIEUC +0x9553 0xCE0A #HANGUL SYLLABLE CHIEUCH YU NIEUNHIEUH +0x9554 0xCE0B #HANGUL SYLLABLE CHIEUCH YU TIKEUT +0x9555 0xCE0D #HANGUL SYLLABLE CHIEUCH YU RIEULKIYEOK +0x9556 0xCE0E #HANGUL SYLLABLE CHIEUCH YU RIEULMIEUM +0x9557 0xCE0F #HANGUL SYLLABLE CHIEUCH YU RIEULPIEUP +0x9558 0xCE10 #HANGUL SYLLABLE CHIEUCH YU RIEULSIOS +0x9559 0xCE11 #HANGUL SYLLABLE CHIEUCH YU RIEULTHIEUTH +0x955A 0xCE12 #HANGUL SYLLABLE CHIEUCH YU RIEULPHIEUPH +0x9561 0xCE13 #HANGUL SYLLABLE CHIEUCH YU RIEULHIEUH +0x9562 0xCE15 #HANGUL SYLLABLE CHIEUCH YU PIEUP +0x9563 0xCE16 #HANGUL SYLLABLE CHIEUCH YU PIEUPSIOS +0x9564 0xCE17 #HANGUL SYLLABLE CHIEUCH YU SIOS +0x9565 0xCE1A #HANGUL SYLLABLE CHIEUCH YU CIEUC +0x9566 0xCE1B #HANGUL SYLLABLE CHIEUCH YU CHIEUCH +0x9567 0xCE1C #HANGUL SYLLABLE CHIEUCH YU KHIEUKH +0x9568 0xCE1D #HANGUL SYLLABLE CHIEUCH YU THIEUTH +0x9569 0xCE1E #HANGUL SYLLABLE CHIEUCH YU PHIEUPH +0x956A 0xCE1F #HANGUL SYLLABLE CHIEUCH YU HIEUH +0x956B 0xCE06 #HANGUL SYLLABLE CHIEUCH YU SSANGKIYEOK +0x956C 0xCE18 #HANGUL SYLLABLE CHIEUCH YU SSANGSIOS +0x956D 0xCE23 #HANGUL SYLLABLE CHIEUCH EU KIYEOKSIOS +0x956E 0xCE25 #HANGUL SYLLABLE CHIEUCH EU NIEUNCIEUC +0x956F 0xCE26 #HANGUL SYLLABLE CHIEUCH EU NIEUNHIEUH +0x9570 0xCE27 #HANGUL SYLLABLE CHIEUCH EU TIKEUT +0x9571 0xCE29 #HANGUL SYLLABLE CHIEUCH EU RIEULKIYEOK +0x9572 0xCE2A #HANGUL SYLLABLE CHIEUCH EU RIEULMIEUM +0x9573 0xCE2B #HANGUL SYLLABLE CHIEUCH EU RIEULPIEUP +0x9574 0xCE2C #HANGUL SYLLABLE CHIEUCH EU RIEULSIOS +0x9575 0xCE2D #HANGUL SYLLABLE CHIEUCH EU RIEULTHIEUTH +0x9576 0xCE2E #HANGUL SYLLABLE CHIEUCH EU RIEULPHIEUPH +0x9577 0xCE2F #HANGUL SYLLABLE CHIEUCH EU RIEULHIEUH +0x9578 0xCE32 #HANGUL SYLLABLE CHIEUCH EU PIEUPSIOS +0x9579 0xCE36 #HANGUL SYLLABLE CHIEUCH EU CIEUC +0x957A 0xCE37 #HANGUL SYLLABLE CHIEUCH EU CHIEUCH +0x9581 0xCE38 #HANGUL SYLLABLE CHIEUCH EU KHIEUKH +0x9582 0xCE39 #HANGUL SYLLABLE CHIEUCH EU THIEUTH +0x9583 0xCE3A #HANGUL SYLLABLE CHIEUCH EU PHIEUPH +0x9584 0xCE3B #HANGUL SYLLABLE CHIEUCH EU HIEUH +0x9585 0xCE22 #HANGUL SYLLABLE CHIEUCH EU SSANGKIYEOK +0x9586 0xCE34 #HANGUL SYLLABLE CHIEUCH EU SSANGSIOS +0x9587 0xCE5B #HANGUL SYLLABLE CHIEUCH I KIYEOKSIOS +0x9588 0xCE5D #HANGUL SYLLABLE CHIEUCH I NIEUNCIEUC +0x9589 0xCE5E #HANGUL SYLLABLE CHIEUCH I NIEUNHIEUH +0x958A 0xCE62 #HANGUL SYLLABLE CHIEUCH I RIEULMIEUM +0x958B 0xCE63 #HANGUL SYLLABLE CHIEUCH I RIEULPIEUP +0x958C 0xCE64 #HANGUL SYLLABLE CHIEUCH I RIEULSIOS +0x958D 0xCE65 #HANGUL SYLLABLE CHIEUCH I RIEULTHIEUTH +0x958E 0xCE66 #HANGUL SYLLABLE CHIEUCH I RIEULPHIEUPH +0x958F 0xCE67 #HANGUL SYLLABLE CHIEUCH I RIEULHIEUH +0x9590 0xCE6A #HANGUL SYLLABLE CHIEUCH I PIEUPSIOS +0x9591 0xCE6E #HANGUL SYLLABLE CHIEUCH I CIEUC +0x9592 0xCE6F #HANGUL SYLLABLE CHIEUCH I CHIEUCH +0x9593 0xCE70 #HANGUL SYLLABLE CHIEUCH I KHIEUKH +0x9594 0xCE71 #HANGUL SYLLABLE CHIEUCH I THIEUTH +0x9595 0xCE72 #HANGUL SYLLABLE CHIEUCH I PHIEUPH +0x9596 0xCE73 #HANGUL SYLLABLE CHIEUCH I HIEUH +0x9597 0xCE5A #HANGUL SYLLABLE CHIEUCH I SSANGKIYEOK +0x9598 0xCE6C #HANGUL SYLLABLE CHIEUCH I SSANGSIOS +0x9599 0xCC47 #HANGUL SYLLABLE CHIEUCH AE KIYEOKSIOS +0x959A 0xCC49 #HANGUL SYLLABLE CHIEUCH AE NIEUNCIEUC +0x959B 0xCC4A #HANGUL SYLLABLE CHIEUCH AE NIEUNHIEUH +0x959C 0xCC4B #HANGUL SYLLABLE CHIEUCH AE TIKEUT +0x959D 0xCC4D #HANGUL SYLLABLE CHIEUCH AE RIEULKIYEOK +0x959E 0xCC4E #HANGUL SYLLABLE CHIEUCH AE RIEULMIEUM +0x959F 0xCC4F #HANGUL SYLLABLE CHIEUCH AE RIEULPIEUP +0x95A0 0xCC50 #HANGUL SYLLABLE CHIEUCH AE RIEULSIOS +0x95A1 0xCC51 #HANGUL SYLLABLE CHIEUCH AE RIEULTHIEUTH +0x95A2 0xCC52 #HANGUL SYLLABLE CHIEUCH AE RIEULPHIEUPH +0x95A3 0xCC53 #HANGUL SYLLABLE CHIEUCH AE RIEULHIEUH +0x95A4 0xCC56 #HANGUL SYLLABLE CHIEUCH AE PIEUPSIOS +0x95A5 0xCC5A #HANGUL SYLLABLE CHIEUCH AE CIEUC +0x95A6 0xCC5B #HANGUL SYLLABLE CHIEUCH AE CHIEUCH +0x95A7 0xCC5C #HANGUL SYLLABLE CHIEUCH AE KHIEUKH +0x95A8 0xCC5D #HANGUL SYLLABLE CHIEUCH AE THIEUTH +0x95A9 0xCC5E #HANGUL SYLLABLE CHIEUCH AE PHIEUPH +0x95AA 0xCC5F #HANGUL SYLLABLE CHIEUCH AE HIEUH +0x95AB 0xCC46 #HANGUL SYLLABLE CHIEUCH AE SSANGKIYEOK +0x95AC 0xCC7D #HANGUL SYLLABLE CHIEUCH YAE KIYEOK +0x95AD 0xCC7F #HANGUL SYLLABLE CHIEUCH YAE KIYEOKSIOS +0x95AE 0xCC80 #HANGUL SYLLABLE CHIEUCH YAE NIEUN +0x95AF 0xCC81 #HANGUL SYLLABLE CHIEUCH YAE NIEUNCIEUC +0x95B0 0xCC82 #HANGUL SYLLABLE CHIEUCH YAE NIEUNHIEUH +0x95B1 0xCC83 #HANGUL SYLLABLE CHIEUCH YAE TIKEUT +0x95B2 0xCC84 #HANGUL SYLLABLE CHIEUCH YAE RIEUL +0x95B3 0xCC85 #HANGUL SYLLABLE CHIEUCH YAE RIEULKIYEOK +0x95B4 0xCC86 #HANGUL SYLLABLE CHIEUCH YAE RIEULMIEUM +0x95B5 0xCC87 #HANGUL SYLLABLE CHIEUCH YAE RIEULPIEUP +0x95B6 0xCC88 #HANGUL SYLLABLE CHIEUCH YAE RIEULSIOS +0x95B7 0xCC89 #HANGUL SYLLABLE CHIEUCH YAE RIEULTHIEUTH +0x95B8 0xCC8A #HANGUL SYLLABLE CHIEUCH YAE RIEULPHIEUPH +0x95B9 0xCC8B #HANGUL SYLLABLE CHIEUCH YAE RIEULHIEUH +0x95BA 0xCC8C #HANGUL SYLLABLE CHIEUCH YAE MIEUM +0x95BB 0xCC8D #HANGUL SYLLABLE CHIEUCH YAE PIEUP +0x95BC 0xCC8E #HANGUL SYLLABLE CHIEUCH YAE PIEUPSIOS +0x95BD 0xCC8F #HANGUL SYLLABLE CHIEUCH YAE SIOS +0x95BE 0xCC91 #HANGUL SYLLABLE CHIEUCH YAE IEUNG +0x95BF 0xCC92 #HANGUL SYLLABLE CHIEUCH YAE CIEUC +0x95C0 0xCC93 #HANGUL SYLLABLE CHIEUCH YAE CHIEUCH +0x95C1 0xCC94 #HANGUL SYLLABLE CHIEUCH YAE KHIEUKH +0x95C2 0xCC95 #HANGUL SYLLABLE CHIEUCH YAE THIEUTH +0x95C3 0xCC96 #HANGUL SYLLABLE CHIEUCH YAE PHIEUPH +0x95C4 0xCC97 #HANGUL SYLLABLE CHIEUCH YAE HIEUH +0x95C5 0xCC7E #HANGUL SYLLABLE CHIEUCH YAE SSANGKIYEOK +0x95C6 0xCC90 #HANGUL SYLLABLE CHIEUCH YAE SSANGSIOS +0x95C7 0xCCB7 #HANGUL SYLLABLE CHIEUCH E KIYEOKSIOS +0x95C8 0xCCB9 #HANGUL SYLLABLE CHIEUCH E NIEUNCIEUC +0x95C9 0xCCBA #HANGUL SYLLABLE CHIEUCH E NIEUNHIEUH +0x95CA 0xCCBB #HANGUL SYLLABLE CHIEUCH E TIKEUT +0x95CB 0xCCBD #HANGUL SYLLABLE CHIEUCH E RIEULKIYEOK +0x95CC 0xCCBE #HANGUL SYLLABLE CHIEUCH E RIEULMIEUM +0x95CD 0xCCBF #HANGUL SYLLABLE CHIEUCH E RIEULPIEUP +0x95CE 0xCCC0 #HANGUL SYLLABLE CHIEUCH E RIEULSIOS +0x95CF 0xCCC1 #HANGUL SYLLABLE CHIEUCH E RIEULTHIEUTH +0x95D0 0xCCC2 #HANGUL SYLLABLE CHIEUCH E RIEULPHIEUPH +0x95D1 0xCCC3 #HANGUL SYLLABLE CHIEUCH E RIEULHIEUH +0x95D2 0xCCC6 #HANGUL SYLLABLE CHIEUCH E PIEUPSIOS +0x95D3 0xCCCA #HANGUL SYLLABLE CHIEUCH E CIEUC +0x95D4 0xCCCB #HANGUL SYLLABLE CHIEUCH E CHIEUCH +0x95D5 0xCCCC #HANGUL SYLLABLE CHIEUCH E KHIEUKH +0x95D6 0xCCCD #HANGUL SYLLABLE CHIEUCH E THIEUTH +0x95D7 0xCCCE #HANGUL SYLLABLE CHIEUCH E PHIEUPH +0x95D8 0xCCCF #HANGUL SYLLABLE CHIEUCH E HIEUH +0x95D9 0xCCB6 #HANGUL SYLLABLE CHIEUCH E SSANGKIYEOK +0x95DA 0xCCED #HANGUL SYLLABLE CHIEUCH YE KIYEOK +0x95DB 0xCCEF #HANGUL SYLLABLE CHIEUCH YE KIYEOKSIOS +0x95DC 0xCCF1 #HANGUL SYLLABLE CHIEUCH YE NIEUNCIEUC +0x95DD 0xCCF2 #HANGUL SYLLABLE CHIEUCH YE NIEUNHIEUH +0x95DE 0xCCF3 #HANGUL SYLLABLE CHIEUCH YE TIKEUT +0x95DF 0xCCF4 #HANGUL SYLLABLE CHIEUCH YE RIEUL +0x95E0 0xCCF5 #HANGUL SYLLABLE CHIEUCH YE RIEULKIYEOK +0x95E1 0xCCF6 #HANGUL SYLLABLE CHIEUCH YE RIEULMIEUM +0x95E2 0xCCF7 #HANGUL SYLLABLE CHIEUCH YE RIEULPIEUP +0x95E3 0xCCF8 #HANGUL SYLLABLE CHIEUCH YE RIEULSIOS +0x95E4 0xCCF9 #HANGUL SYLLABLE CHIEUCH YE RIEULTHIEUTH +0x95E5 0xCCFA #HANGUL SYLLABLE CHIEUCH YE RIEULPHIEUPH +0x95E6 0xCCFB #HANGUL SYLLABLE CHIEUCH YE RIEULHIEUH +0x95E7 0xCCFC #HANGUL SYLLABLE CHIEUCH YE MIEUM +0x95E8 0xCCFD #HANGUL SYLLABLE CHIEUCH YE PIEUP +0x95E9 0xCCFE #HANGUL SYLLABLE CHIEUCH YE PIEUPSIOS +0x95EA 0xCCFF #HANGUL SYLLABLE CHIEUCH YE SIOS +0x95EB 0xCD02 #HANGUL SYLLABLE CHIEUCH YE CIEUC +0x95EC 0xCD03 #HANGUL SYLLABLE CHIEUCH YE CHIEUCH +0x95ED 0xCD04 #HANGUL SYLLABLE CHIEUCH YE KHIEUKH +0x95EE 0xCD05 #HANGUL SYLLABLE CHIEUCH YE THIEUTH +0x95EF 0xCD06 #HANGUL SYLLABLE CHIEUCH YE PHIEUPH +0x95F0 0xCD07 #HANGUL SYLLABLE CHIEUCH YE HIEUH +0x95F1 0xCCEE #HANGUL SYLLABLE CHIEUCH YE SSANGKIYEOK +0x95F2 0xCD00 #HANGUL SYLLABLE CHIEUCH YE SSANGSIOS +0x95F3 0xCD5D #HANGUL SYLLABLE CHIEUCH OE KIYEOK +0x95F4 0xCD5F #HANGUL SYLLABLE CHIEUCH OE KIYEOKSIOS +0x95F5 0xCD61 #HANGUL SYLLABLE CHIEUCH OE NIEUNCIEUC +0x95F6 0xCD62 #HANGUL SYLLABLE CHIEUCH OE NIEUNHIEUH +0x95F7 0xCD63 #HANGUL SYLLABLE CHIEUCH OE TIKEUT +0x95F8 0xCD65 #HANGUL SYLLABLE CHIEUCH OE RIEULKIYEOK +0x95F9 0xCD66 #HANGUL SYLLABLE CHIEUCH OE RIEULMIEUM +0x95FA 0xCD67 #HANGUL SYLLABLE CHIEUCH OE RIEULPIEUP +0x95FB 0xCD68 #HANGUL SYLLABLE CHIEUCH OE RIEULSIOS +0x95FC 0xCD69 #HANGUL SYLLABLE CHIEUCH OE RIEULTHIEUTH +0x95FD 0xCD6A #HANGUL SYLLABLE CHIEUCH OE RIEULPHIEUPH +0x95FE 0xCD6B #HANGUL SYLLABLE CHIEUCH OE RIEULHIEUH +0x9641 0xCD6E #HANGUL SYLLABLE CHIEUCH OE PIEUPSIOS +0x9642 0xCD72 #HANGUL SYLLABLE CHIEUCH OE CIEUC +0x9643 0xCD73 #HANGUL SYLLABLE CHIEUCH OE CHIEUCH +0x9644 0xCD74 #HANGUL SYLLABLE CHIEUCH OE KHIEUKH +0x9645 0xCD75 #HANGUL SYLLABLE CHIEUCH OE THIEUTH +0x9646 0xCD76 #HANGUL SYLLABLE CHIEUCH OE PHIEUPH +0x9647 0xCD77 #HANGUL SYLLABLE CHIEUCH OE HIEUH +0x9648 0xCD5E #HANGUL SYLLABLE CHIEUCH OE SSANGKIYEOK +0x9649 0xCD70 #HANGUL SYLLABLE CHIEUCH OE SSANGSIOS +0x964A 0xCDE9 #HANGUL SYLLABLE CHIEUCH WI KIYEOK +0x964B 0xCDEB #HANGUL SYLLABLE CHIEUCH WI KIYEOKSIOS +0x964C 0xCDED #HANGUL SYLLABLE CHIEUCH WI NIEUNCIEUC +0x964D 0xCDEE #HANGUL SYLLABLE CHIEUCH WI NIEUNHIEUH +0x964E 0xCDEF #HANGUL SYLLABLE CHIEUCH WI TIKEUT +0x964F 0xCDF1 #HANGUL SYLLABLE CHIEUCH WI RIEULKIYEOK +0x9650 0xCDF2 #HANGUL SYLLABLE CHIEUCH WI RIEULMIEUM +0x9651 0xCDF3 #HANGUL SYLLABLE CHIEUCH WI RIEULPIEUP +0x9652 0xCDF4 #HANGUL SYLLABLE CHIEUCH WI RIEULSIOS +0x9653 0xCDF5 #HANGUL SYLLABLE CHIEUCH WI RIEULTHIEUTH +0x9654 0xCDF6 #HANGUL SYLLABLE CHIEUCH WI RIEULPHIEUPH +0x9655 0xCDF7 #HANGUL SYLLABLE CHIEUCH WI RIEULHIEUH +0x9656 0xCDFA #HANGUL SYLLABLE CHIEUCH WI PIEUPSIOS +0x9657 0xCDFE #HANGUL SYLLABLE CHIEUCH WI CIEUC +0x9658 0xCDFF #HANGUL SYLLABLE CHIEUCH WI CHIEUCH +0x9659 0xCE00 #HANGUL SYLLABLE CHIEUCH WI KHIEUKH +0x965A 0xCE01 #HANGUL SYLLABLE CHIEUCH WI THIEUTH +0x9661 0xCE02 #HANGUL SYLLABLE CHIEUCH WI PHIEUPH +0x9662 0xCE03 #HANGUL SYLLABLE CHIEUCH WI HIEUH +0x9663 0xCDEA #HANGUL SYLLABLE CHIEUCH WI SSANGKIYEOK +0x9664 0xCDFC #HANGUL SYLLABLE CHIEUCH WI SSANGSIOS +0x9665 0xCE3D #HANGUL SYLLABLE CHIEUCH YI KIYEOK +0x9666 0xCE3F #HANGUL SYLLABLE CHIEUCH YI KIYEOKSIOS +0x9667 0xCE40 #HANGUL SYLLABLE CHIEUCH YI NIEUN +0x9668 0xCE41 #HANGUL SYLLABLE CHIEUCH YI NIEUNCIEUC +0x9669 0xCE42 #HANGUL SYLLABLE CHIEUCH YI NIEUNHIEUH +0x966A 0xCE43 #HANGUL SYLLABLE CHIEUCH YI TIKEUT +0x966B 0xCE44 #HANGUL SYLLABLE CHIEUCH YI RIEUL +0x966C 0xCE45 #HANGUL SYLLABLE CHIEUCH YI RIEULKIYEOK +0x966D 0xCE46 #HANGUL SYLLABLE CHIEUCH YI RIEULMIEUM +0x966E 0xCE47 #HANGUL SYLLABLE CHIEUCH YI RIEULPIEUP +0x966F 0xCE48 #HANGUL SYLLABLE CHIEUCH YI RIEULSIOS +0x9670 0xCE49 #HANGUL SYLLABLE CHIEUCH YI RIEULTHIEUTH +0x9671 0xCE4A #HANGUL SYLLABLE CHIEUCH YI RIEULPHIEUPH +0x9672 0xCE4B #HANGUL SYLLABLE CHIEUCH YI RIEULHIEUH +0x9673 0xCE4C #HANGUL SYLLABLE CHIEUCH YI MIEUM +0x9674 0xCE4D #HANGUL SYLLABLE CHIEUCH YI PIEUP +0x9675 0xCE4E #HANGUL SYLLABLE CHIEUCH YI PIEUPSIOS +0x9676 0xCE4F #HANGUL SYLLABLE CHIEUCH YI SIOS +0x9677 0xCE51 #HANGUL SYLLABLE CHIEUCH YI IEUNG +0x9678 0xCE52 #HANGUL SYLLABLE CHIEUCH YI CIEUC +0x9679 0xCE53 #HANGUL SYLLABLE CHIEUCH YI CHIEUCH +0x967A 0xCE54 #HANGUL SYLLABLE CHIEUCH YI KHIEUKH +0x9681 0xCE55 #HANGUL SYLLABLE CHIEUCH YI THIEUTH +0x9682 0xCE56 #HANGUL SYLLABLE CHIEUCH YI PHIEUPH +0x9683 0xCE57 #HANGUL SYLLABLE CHIEUCH YI HIEUH +0x9684 0xCE3E #HANGUL SYLLABLE CHIEUCH YI SSANGKIYEOK +0x9685 0xCE50 #HANGUL SYLLABLE CHIEUCH YI SSANGSIOS +0x9686 0xCD27 #HANGUL SYLLABLE CHIEUCH WA KIYEOKSIOS +0x9687 0xCD29 #HANGUL SYLLABLE CHIEUCH WA NIEUNCIEUC +0x9688 0xCD2A #HANGUL SYLLABLE CHIEUCH WA NIEUNHIEUH +0x9689 0xCD2B #HANGUL SYLLABLE CHIEUCH WA TIKEUT +0x968A 0xCD2D #HANGUL SYLLABLE CHIEUCH WA RIEULKIYEOK +0x968B 0xCD2E #HANGUL SYLLABLE CHIEUCH WA RIEULMIEUM +0x968C 0xCD2F #HANGUL SYLLABLE CHIEUCH WA RIEULPIEUP +0x968D 0xCD30 #HANGUL SYLLABLE CHIEUCH WA RIEULSIOS +0x968E 0xCD31 #HANGUL SYLLABLE CHIEUCH WA RIEULTHIEUTH +0x968F 0xCD32 #HANGUL SYLLABLE CHIEUCH WA RIEULPHIEUPH +0x9690 0xCD33 #HANGUL SYLLABLE CHIEUCH WA RIEULHIEUH +0x9691 0xCD34 #HANGUL SYLLABLE CHIEUCH WA MIEUM +0x9692 0xCD35 #HANGUL SYLLABLE CHIEUCH WA PIEUP +0x9693 0xCD36 #HANGUL SYLLABLE CHIEUCH WA PIEUPSIOS +0x9694 0xCD37 #HANGUL SYLLABLE CHIEUCH WA SIOS +0x9695 0xCD3A #HANGUL SYLLABLE CHIEUCH WA CIEUC +0x9696 0xCD3B #HANGUL SYLLABLE CHIEUCH WA CHIEUCH +0x9697 0xCD3C #HANGUL SYLLABLE CHIEUCH WA KHIEUKH +0x9698 0xCD3D #HANGUL SYLLABLE CHIEUCH WA THIEUTH +0x9699 0xCD3E #HANGUL SYLLABLE CHIEUCH WA PHIEUPH +0x969A 0xCD3F #HANGUL SYLLABLE CHIEUCH WA HIEUH +0x969B 0xCD26 #HANGUL SYLLABLE CHIEUCH WA SSANGKIYEOK +0x969C 0xCD38 #HANGUL SYLLABLE CHIEUCH WA SSANGSIOS +0x969D 0xCDB1 #HANGUL SYLLABLE CHIEUCH WEO KIYEOK +0x969E 0xCDB3 #HANGUL SYLLABLE CHIEUCH WEO KIYEOKSIOS +0x969F 0xCDB4 #HANGUL SYLLABLE CHIEUCH WEO NIEUN +0x96A0 0xCDB5 #HANGUL SYLLABLE CHIEUCH WEO NIEUNCIEUC +0x96A1 0xCDB6 #HANGUL SYLLABLE CHIEUCH WEO NIEUNHIEUH +0x96A2 0xCDB7 #HANGUL SYLLABLE CHIEUCH WEO TIKEUT +0x96A3 0xCDB8 #HANGUL SYLLABLE CHIEUCH WEO RIEUL +0x96A4 0xCDB9 #HANGUL SYLLABLE CHIEUCH WEO RIEULKIYEOK +0x96A5 0xCDBA #HANGUL SYLLABLE CHIEUCH WEO RIEULMIEUM +0x96A6 0xCDBB #HANGUL SYLLABLE CHIEUCH WEO RIEULPIEUP +0x96A7 0xCDBC #HANGUL SYLLABLE CHIEUCH WEO RIEULSIOS +0x96A8 0xCDBD #HANGUL SYLLABLE CHIEUCH WEO RIEULTHIEUTH +0x96A9 0xCDBE #HANGUL SYLLABLE CHIEUCH WEO RIEULPHIEUPH +0x96AA 0xCDBF #HANGUL SYLLABLE CHIEUCH WEO RIEULHIEUH +0x96AB 0xCDC0 #HANGUL SYLLABLE CHIEUCH WEO MIEUM +0x96AC 0xCDC1 #HANGUL SYLLABLE CHIEUCH WEO PIEUP +0x96AD 0xCDC2 #HANGUL SYLLABLE CHIEUCH WEO PIEUPSIOS +0x96AE 0xCDC5 #HANGUL SYLLABLE CHIEUCH WEO IEUNG +0x96AF 0xCDC6 #HANGUL SYLLABLE CHIEUCH WEO CIEUC +0x96B0 0xCDC7 #HANGUL SYLLABLE CHIEUCH WEO CHIEUCH +0x96B1 0xCDC8 #HANGUL SYLLABLE CHIEUCH WEO KHIEUKH +0x96B2 0xCDC9 #HANGUL SYLLABLE CHIEUCH WEO THIEUTH +0x96B3 0xCDCA #HANGUL SYLLABLE CHIEUCH WEO PHIEUPH +0x96B4 0xCDCB #HANGUL SYLLABLE CHIEUCH WEO HIEUH +0x96B5 0xCDB2 #HANGUL SYLLABLE CHIEUCH WEO SSANGKIYEOK +0x96B6 0xCD41 #HANGUL SYLLABLE CHIEUCH WAE KIYEOK +0x96B7 0xCD43 #HANGUL SYLLABLE CHIEUCH WAE KIYEOKSIOS +0x96B8 0xCD45 #HANGUL SYLLABLE CHIEUCH WAE NIEUNCIEUC +0x96B9 0xCD46 #HANGUL SYLLABLE CHIEUCH WAE NIEUNHIEUH +0x96BA 0xCD47 #HANGUL SYLLABLE CHIEUCH WAE TIKEUT +0x96BB 0xCD48 #HANGUL SYLLABLE CHIEUCH WAE RIEUL +0x96BC 0xCD49 #HANGUL SYLLABLE CHIEUCH WAE RIEULKIYEOK +0x96BD 0xCD4A #HANGUL SYLLABLE CHIEUCH WAE RIEULMIEUM +0x96BE 0xCD4B #HANGUL SYLLABLE CHIEUCH WAE RIEULPIEUP +0x96BF 0xCD4C #HANGUL SYLLABLE CHIEUCH WAE RIEULSIOS +0x96C0 0xCD4D #HANGUL SYLLABLE CHIEUCH WAE RIEULTHIEUTH +0x96C1 0xCD4E #HANGUL SYLLABLE CHIEUCH WAE RIEULPHIEUPH +0x96C2 0xCD4F #HANGUL SYLLABLE CHIEUCH WAE RIEULHIEUH +0x96C3 0xCD50 #HANGUL SYLLABLE CHIEUCH WAE MIEUM +0x96C4 0xCD51 #HANGUL SYLLABLE CHIEUCH WAE PIEUP +0x96C5 0xCD52 #HANGUL SYLLABLE CHIEUCH WAE PIEUPSIOS +0x96C6 0xCD53 #HANGUL SYLLABLE CHIEUCH WAE SIOS +0x96C7 0xCD55 #HANGUL SYLLABLE CHIEUCH WAE IEUNG +0x96C8 0xCD56 #HANGUL SYLLABLE CHIEUCH WAE CIEUC +0x96C9 0xCD57 #HANGUL SYLLABLE CHIEUCH WAE CHIEUCH +0x96CA 0xCD58 #HANGUL SYLLABLE CHIEUCH WAE KHIEUKH +0x96CB 0xCD59 #HANGUL SYLLABLE CHIEUCH WAE THIEUTH +0x96CC 0xCD5A #HANGUL SYLLABLE CHIEUCH WAE PHIEUPH +0x96CD 0xCD5B #HANGUL SYLLABLE CHIEUCH WAE HIEUH +0x96CE 0xCD42 #HANGUL SYLLABLE CHIEUCH WAE SSANGKIYEOK +0x96CF 0xCD54 #HANGUL SYLLABLE CHIEUCH WAE SSANGSIOS +0x96D0 0xCDCD #HANGUL SYLLABLE CHIEUCH WE KIYEOK +0x96D1 0xCDCF #HANGUL SYLLABLE CHIEUCH WE KIYEOKSIOS +0x96D2 0xCDD1 #HANGUL SYLLABLE CHIEUCH WE NIEUNCIEUC +0x96D3 0xCDD2 #HANGUL SYLLABLE CHIEUCH WE NIEUNHIEUH +0x96D4 0xCDD3 #HANGUL SYLLABLE CHIEUCH WE TIKEUT +0x96D5 0xCDD4 #HANGUL SYLLABLE CHIEUCH WE RIEUL +0x96D6 0xCDD5 #HANGUL SYLLABLE CHIEUCH WE RIEULKIYEOK +0x96D7 0xCDD6 #HANGUL SYLLABLE CHIEUCH WE RIEULMIEUM +0x96D8 0xCDD7 #HANGUL SYLLABLE CHIEUCH WE RIEULPIEUP +0x96D9 0xCDD8 #HANGUL SYLLABLE CHIEUCH WE RIEULSIOS +0x96DA 0xCDD9 #HANGUL SYLLABLE CHIEUCH WE RIEULTHIEUTH +0x96DB 0xCDDA #HANGUL SYLLABLE CHIEUCH WE RIEULPHIEUPH +0x96DC 0xCDDB #HANGUL SYLLABLE CHIEUCH WE RIEULHIEUH +0x96DD 0xCDDC #HANGUL SYLLABLE CHIEUCH WE MIEUM +0x96DE 0xCDDD #HANGUL SYLLABLE CHIEUCH WE PIEUP +0x96DF 0xCDDE #HANGUL SYLLABLE CHIEUCH WE PIEUPSIOS +0x96E0 0xCDDF #HANGUL SYLLABLE CHIEUCH WE SIOS +0x96E1 0xCDE1 #HANGUL SYLLABLE CHIEUCH WE IEUNG +0x96E2 0xCDE2 #HANGUL SYLLABLE CHIEUCH WE CIEUC +0x96E3 0xCDE3 #HANGUL SYLLABLE CHIEUCH WE CHIEUCH +0x96E4 0xCDE4 #HANGUL SYLLABLE CHIEUCH WE KHIEUKH +0x96E5 0xCDE5 #HANGUL SYLLABLE CHIEUCH WE THIEUTH +0x96E6 0xCDE6 #HANGUL SYLLABLE CHIEUCH WE PHIEUPH +0x96E7 0xCDE7 #HANGUL SYLLABLE CHIEUCH WE HIEUH +0x96E8 0xCDCE #HANGUL SYLLABLE CHIEUCH WE SSANGKIYEOK +0x96E9 0xCDE0 #HANGUL SYLLABLE CHIEUCH WE SSANGSIOS +0x96EA 0xCE77 #HANGUL SYLLABLE KHIEUKH A KIYEOKSIOS +0x96EB 0xCE79 #HANGUL SYLLABLE KHIEUKH A NIEUNCIEUC +0x96EC 0xCE7A #HANGUL SYLLABLE KHIEUKH A NIEUNHIEUH +0x96ED 0xCE7B #HANGUL SYLLABLE KHIEUKH A TIKEUT +0x96EE 0xCE7D #HANGUL SYLLABLE KHIEUKH A RIEULKIYEOK +0x96EF 0xCE7E #HANGUL SYLLABLE KHIEUKH A RIEULMIEUM +0x96F0 0xCE7F #HANGUL SYLLABLE KHIEUKH A RIEULPIEUP +0x96F1 0xCE80 #HANGUL SYLLABLE KHIEUKH A RIEULSIOS +0x96F2 0xCE81 #HANGUL SYLLABLE KHIEUKH A RIEULTHIEUTH +0x96F3 0xCE82 #HANGUL SYLLABLE KHIEUKH A RIEULPHIEUPH +0x96F4 0xCE83 #HANGUL SYLLABLE KHIEUKH A RIEULHIEUH +0x96F5 0xCE86 #HANGUL SYLLABLE KHIEUKH A PIEUPSIOS +0x96F6 0xCE8A #HANGUL SYLLABLE KHIEUKH A CIEUC +0x96F7 0xCE8B #HANGUL SYLLABLE KHIEUKH A CHIEUCH +0x96F8 0xCE8C #HANGUL SYLLABLE KHIEUKH A KHIEUKH +0x96F9 0xCE8D #HANGUL SYLLABLE KHIEUKH A THIEUTH +0x96FA 0xCE8F #HANGUL SYLLABLE KHIEUKH A HIEUH +0x96FB 0xCE76 #HANGUL SYLLABLE KHIEUKH A SSANGKIYEOK +0x96FC 0xCEAF #HANGUL SYLLABLE KHIEUKH YA KIYEOKSIOS +0x96FD 0xCEB1 #HANGUL SYLLABLE KHIEUKH YA NIEUNCIEUC +0x96FE 0xCEB2 #HANGUL SYLLABLE KHIEUKH YA NIEUNHIEUH +0x9741 0xCEB3 #HANGUL SYLLABLE KHIEUKH YA TIKEUT +0x9742 0xCEB4 #HANGUL SYLLABLE KHIEUKH YA RIEUL +0x9743 0xCEB5 #HANGUL SYLLABLE KHIEUKH YA RIEULKIYEOK +0x9744 0xCEB6 #HANGUL SYLLABLE KHIEUKH YA RIEULMIEUM +0x9745 0xCEB7 #HANGUL SYLLABLE KHIEUKH YA RIEULPIEUP +0x9746 0xCEB8 #HANGUL SYLLABLE KHIEUKH YA RIEULSIOS +0x9747 0xCEB9 #HANGUL SYLLABLE KHIEUKH YA RIEULTHIEUTH +0x9748 0xCEBA #HANGUL SYLLABLE KHIEUKH YA RIEULPHIEUPH +0x9749 0xCEBB #HANGUL SYLLABLE KHIEUKH YA RIEULHIEUH +0x974A 0xCEBE #HANGUL SYLLABLE KHIEUKH YA PIEUPSIOS +0x974B 0xCEBF #HANGUL SYLLABLE KHIEUKH YA SIOS +0x974C 0xCEC2 #HANGUL SYLLABLE KHIEUKH YA CIEUC +0x974D 0xCEC3 #HANGUL SYLLABLE KHIEUKH YA CHIEUCH +0x974E 0xCEC4 #HANGUL SYLLABLE KHIEUKH YA KHIEUKH +0x974F 0xCEC5 #HANGUL SYLLABLE KHIEUKH YA THIEUTH +0x9750 0xCEC6 #HANGUL SYLLABLE KHIEUKH YA PHIEUPH +0x9751 0xCEC7 #HANGUL SYLLABLE KHIEUKH YA HIEUH +0x9752 0xCEAE #HANGUL SYLLABLE KHIEUKH YA SSANGKIYEOK +0x9753 0xCEC0 #HANGUL SYLLABLE KHIEUKH YA SSANGSIOS +0x9754 0xCEE7 #HANGUL SYLLABLE KHIEUKH EO KIYEOKSIOS +0x9755 0xCEE9 #HANGUL SYLLABLE KHIEUKH EO NIEUNCIEUC +0x9756 0xCEEA #HANGUL SYLLABLE KHIEUKH EO NIEUNHIEUH +0x9757 0xCEED #HANGUL SYLLABLE KHIEUKH EO RIEULKIYEOK +0x9758 0xCEEE #HANGUL SYLLABLE KHIEUKH EO RIEULMIEUM +0x9759 0xCEEF #HANGUL SYLLABLE KHIEUKH EO RIEULPIEUP +0x975A 0xCEF0 #HANGUL SYLLABLE KHIEUKH EO RIEULSIOS +0x9761 0xCEF1 #HANGUL SYLLABLE KHIEUKH EO RIEULTHIEUTH +0x9762 0xCEF2 #HANGUL SYLLABLE KHIEUKH EO RIEULPHIEUPH +0x9763 0xCEF3 #HANGUL SYLLABLE KHIEUKH EO RIEULHIEUH +0x9764 0xCEF6 #HANGUL SYLLABLE KHIEUKH EO PIEUPSIOS +0x9765 0xCEFA #HANGUL SYLLABLE KHIEUKH EO CIEUC +0x9766 0xCEFB #HANGUL SYLLABLE KHIEUKH EO CHIEUCH +0x9767 0xCEFC #HANGUL SYLLABLE KHIEUKH EO KHIEUKH +0x9768 0xCEFF #HANGUL SYLLABLE KHIEUKH EO HIEUH +0x9769 0xCEE6 #HANGUL SYLLABLE KHIEUKH EO SSANGKIYEOK +0x976A 0xCF1D #HANGUL SYLLABLE KHIEUKH YEO KIYEOK +0x976B 0xCF1F #HANGUL SYLLABLE KHIEUKH YEO KIYEOKSIOS +0x976C 0xCF21 #HANGUL SYLLABLE KHIEUKH YEO NIEUNCIEUC +0x976D 0xCF22 #HANGUL SYLLABLE KHIEUKH YEO NIEUNHIEUH +0x976E 0xCF23 #HANGUL SYLLABLE KHIEUKH YEO TIKEUT +0x976F 0xCF25 #HANGUL SYLLABLE KHIEUKH YEO RIEULKIYEOK +0x9770 0xCF26 #HANGUL SYLLABLE KHIEUKH YEO RIEULMIEUM +0x9771 0xCF27 #HANGUL SYLLABLE KHIEUKH YEO RIEULPIEUP +0x9772 0xCF28 #HANGUL SYLLABLE KHIEUKH YEO RIEULSIOS +0x9773 0xCF29 #HANGUL SYLLABLE KHIEUKH YEO RIEULTHIEUTH +0x9774 0xCF2A #HANGUL SYLLABLE KHIEUKH YEO RIEULPHIEUPH +0x9775 0xCF2B #HANGUL SYLLABLE KHIEUKH YEO RIEULHIEUH +0x9776 0xCF2E #HANGUL SYLLABLE KHIEUKH YEO PIEUPSIOS +0x9777 0xCF32 #HANGUL SYLLABLE KHIEUKH YEO CIEUC +0x9778 0xCF33 #HANGUL SYLLABLE KHIEUKH YEO CHIEUCH +0x9779 0xCF34 #HANGUL SYLLABLE KHIEUKH YEO KHIEUKH +0x977A 0xCF35 #HANGUL SYLLABLE KHIEUKH YEO THIEUTH +0x9781 0xCF36 #HANGUL SYLLABLE KHIEUKH YEO PHIEUPH +0x9782 0xCF37 #HANGUL SYLLABLE KHIEUKH YEO HIEUH +0x9783 0xCF1E #HANGUL SYLLABLE KHIEUKH YEO SSANGKIYEOK +0x9784 0xCF57 #HANGUL SYLLABLE KHIEUKH O KIYEOKSIOS +0x9785 0xCF59 #HANGUL SYLLABLE KHIEUKH O NIEUNCIEUC +0x9786 0xCF5A #HANGUL SYLLABLE KHIEUKH O NIEUNHIEUH +0x9787 0xCF5B #HANGUL SYLLABLE KHIEUKH O TIKEUT +0x9788 0xCF5D #HANGUL SYLLABLE KHIEUKH O RIEULKIYEOK +0x9789 0xCF5E #HANGUL SYLLABLE KHIEUKH O RIEULMIEUM +0x978A 0xCF5F #HANGUL SYLLABLE KHIEUKH O RIEULPIEUP +0x978B 0xCF60 #HANGUL SYLLABLE KHIEUKH O RIEULSIOS +0x978C 0xCF61 #HANGUL SYLLABLE KHIEUKH O RIEULTHIEUTH +0x978D 0xCF62 #HANGUL SYLLABLE KHIEUKH O RIEULPHIEUPH +0x978E 0xCF63 #HANGUL SYLLABLE KHIEUKH O RIEULHIEUH +0x978F 0xCF66 #HANGUL SYLLABLE KHIEUKH O PIEUPSIOS +0x9790 0xCF6A #HANGUL SYLLABLE KHIEUKH O CIEUC +0x9791 0xCF6B #HANGUL SYLLABLE KHIEUKH O CHIEUCH +0x9792 0xCF6C #HANGUL SYLLABLE KHIEUKH O KHIEUKH +0x9793 0xCF6D #HANGUL SYLLABLE KHIEUKH O THIEUTH +0x9794 0xCF6E #HANGUL SYLLABLE KHIEUKH O PHIEUPH +0x9795 0xCF6F #HANGUL SYLLABLE KHIEUKH O HIEUH +0x9796 0xCF56 #HANGUL SYLLABLE KHIEUKH O SSANGKIYEOK +0x9797 0xCF68 #HANGUL SYLLABLE KHIEUKH O SSANGSIOS +0x9798 0xCFC5 #HANGUL SYLLABLE KHIEUKH YO KIYEOK +0x9799 0xCFC7 #HANGUL SYLLABLE KHIEUKH YO KIYEOKSIOS +0x979A 0xCFC8 #HANGUL SYLLABLE KHIEUKH YO NIEUN +0x979B 0xCFC9 #HANGUL SYLLABLE KHIEUKH YO NIEUNCIEUC +0x979C 0xCFCA #HANGUL SYLLABLE KHIEUKH YO NIEUNHIEUH +0x979D 0xCFCB #HANGUL SYLLABLE KHIEUKH YO TIKEUT +0x979E 0xCFCC #HANGUL SYLLABLE KHIEUKH YO RIEUL +0x979F 0xCFCD #HANGUL SYLLABLE KHIEUKH YO RIEULKIYEOK +0x97A0 0xCFCE #HANGUL SYLLABLE KHIEUKH YO RIEULMIEUM +0x97A1 0xCFCF #HANGUL SYLLABLE KHIEUKH YO RIEULPIEUP +0x97A2 0xCFD0 #HANGUL SYLLABLE KHIEUKH YO RIEULSIOS +0x97A3 0xCFD1 #HANGUL SYLLABLE KHIEUKH YO RIEULTHIEUTH +0x97A4 0xCFD2 #HANGUL SYLLABLE KHIEUKH YO RIEULPHIEUPH +0x97A5 0xCFD3 #HANGUL SYLLABLE KHIEUKH YO RIEULHIEUH +0x97A6 0xCFD4 #HANGUL SYLLABLE KHIEUKH YO MIEUM +0x97A7 0xCFD5 #HANGUL SYLLABLE KHIEUKH YO PIEUP +0x97A8 0xCFD6 #HANGUL SYLLABLE KHIEUKH YO PIEUPSIOS +0x97A9 0xCFD7 #HANGUL SYLLABLE KHIEUKH YO SIOS +0x97AA 0xCFD9 #HANGUL SYLLABLE KHIEUKH YO IEUNG +0x97AB 0xCFDA #HANGUL SYLLABLE KHIEUKH YO CIEUC +0x97AC 0xCFDB #HANGUL SYLLABLE KHIEUKH YO CHIEUCH +0x97AD 0xCFDC #HANGUL SYLLABLE KHIEUKH YO KHIEUKH +0x97AE 0xCFDD #HANGUL SYLLABLE KHIEUKH YO THIEUTH +0x97AF 0xCFDE #HANGUL SYLLABLE KHIEUKH YO PHIEUPH +0x97B0 0xCFDF #HANGUL SYLLABLE KHIEUKH YO HIEUH +0x97B1 0xCFC6 #HANGUL SYLLABLE KHIEUKH YO SSANGKIYEOK +0x97B2 0xCFD8 #HANGUL SYLLABLE KHIEUKH YO SSANGSIOS +0x97B3 0xCFE3 #HANGUL SYLLABLE KHIEUKH U KIYEOKSIOS +0x97B4 0xCFE5 #HANGUL SYLLABLE KHIEUKH U NIEUNCIEUC +0x97B5 0xCFE6 #HANGUL SYLLABLE KHIEUKH U NIEUNHIEUH +0x97B6 0xCFE7 #HANGUL SYLLABLE KHIEUKH U TIKEUT +0x97B7 0xCFE9 #HANGUL SYLLABLE KHIEUKH U RIEULKIYEOK +0x97B8 0xCFEA #HANGUL SYLLABLE KHIEUKH U RIEULMIEUM +0x97B9 0xCFEB #HANGUL SYLLABLE KHIEUKH U RIEULPIEUP +0x97BA 0xCFEC #HANGUL SYLLABLE KHIEUKH U RIEULSIOS +0x97BB 0xCFED #HANGUL SYLLABLE KHIEUKH U RIEULTHIEUTH +0x97BC 0xCFEE #HANGUL SYLLABLE KHIEUKH U RIEULPHIEUPH +0x97BD 0xCFEF #HANGUL SYLLABLE KHIEUKH U RIEULHIEUH +0x97BE 0xCFF2 #HANGUL SYLLABLE KHIEUKH U PIEUPSIOS +0x97BF 0xCFF6 #HANGUL SYLLABLE KHIEUKH U CIEUC +0x97C0 0xCFF7 #HANGUL SYLLABLE KHIEUKH U CHIEUCH +0x97C1 0xCFF8 #HANGUL SYLLABLE KHIEUKH U KHIEUKH +0x97C2 0xCFF9 #HANGUL SYLLABLE KHIEUKH U THIEUTH +0x97C3 0xCFFA #HANGUL SYLLABLE KHIEUKH U PHIEUPH +0x97C4 0xCFFB #HANGUL SYLLABLE KHIEUKH U HIEUH +0x97C5 0xCFE2 #HANGUL SYLLABLE KHIEUKH U SSANGKIYEOK +0x97C6 0xCFF4 #HANGUL SYLLABLE KHIEUKH U SSANGSIOS +0x97C7 0xD051 #HANGUL SYLLABLE KHIEUKH YU KIYEOK +0x97C8 0xD053 #HANGUL SYLLABLE KHIEUKH YU KIYEOKSIOS +0x97C9 0xD055 #HANGUL SYLLABLE KHIEUKH YU NIEUNCIEUC +0x97CA 0xD056 #HANGUL SYLLABLE KHIEUKH YU NIEUNHIEUH +0x97CB 0xD057 #HANGUL SYLLABLE KHIEUKH YU TIKEUT +0x97CC 0xD059 #HANGUL SYLLABLE KHIEUKH YU RIEULKIYEOK +0x97CD 0xD05A #HANGUL SYLLABLE KHIEUKH YU RIEULMIEUM +0x97CE 0xD05B #HANGUL SYLLABLE KHIEUKH YU RIEULPIEUP +0x97CF 0xD05C #HANGUL SYLLABLE KHIEUKH YU RIEULSIOS +0x97D0 0xD05D #HANGUL SYLLABLE KHIEUKH YU RIEULTHIEUTH +0x97D1 0xD05E #HANGUL SYLLABLE KHIEUKH YU RIEULPHIEUPH +0x97D2 0xD05F #HANGUL SYLLABLE KHIEUKH YU RIEULHIEUH +0x97D3 0xD061 #HANGUL SYLLABLE KHIEUKH YU PIEUP +0x97D4 0xD062 #HANGUL SYLLABLE KHIEUKH YU PIEUPSIOS +0x97D5 0xD063 #HANGUL SYLLABLE KHIEUKH YU SIOS +0x97D6 0xD065 #HANGUL SYLLABLE KHIEUKH YU IEUNG +0x97D7 0xD066 #HANGUL SYLLABLE KHIEUKH YU CIEUC +0x97D8 0xD067 #HANGUL SYLLABLE KHIEUKH YU CHIEUCH +0x97D9 0xD068 #HANGUL SYLLABLE KHIEUKH YU KHIEUKH +0x97DA 0xD069 #HANGUL SYLLABLE KHIEUKH YU THIEUTH +0x97DB 0xD06A #HANGUL SYLLABLE KHIEUKH YU PHIEUPH +0x97DC 0xD06B #HANGUL SYLLABLE KHIEUKH YU HIEUH +0x97DD 0xD052 #HANGUL SYLLABLE KHIEUKH YU SSANGKIYEOK +0x97DE 0xD064 #HANGUL SYLLABLE KHIEUKH YU SSANGSIOS +0x97DF 0xD06F #HANGUL SYLLABLE KHIEUKH EU KIYEOKSIOS +0x97E0 0xD071 #HANGUL SYLLABLE KHIEUKH EU NIEUNCIEUC +0x97E1 0xD072 #HANGUL SYLLABLE KHIEUKH EU NIEUNHIEUH +0x97E2 0xD073 #HANGUL SYLLABLE KHIEUKH EU TIKEUT +0x97E3 0xD075 #HANGUL SYLLABLE KHIEUKH EU RIEULKIYEOK +0x97E4 0xD076 #HANGUL SYLLABLE KHIEUKH EU RIEULMIEUM +0x97E5 0xD077 #HANGUL SYLLABLE KHIEUKH EU RIEULPIEUP +0x97E6 0xD078 #HANGUL SYLLABLE KHIEUKH EU RIEULSIOS +0x97E7 0xD079 #HANGUL SYLLABLE KHIEUKH EU RIEULTHIEUTH +0x97E8 0xD07A #HANGUL SYLLABLE KHIEUKH EU RIEULPHIEUPH +0x97E9 0xD07B #HANGUL SYLLABLE KHIEUKH EU RIEULHIEUH +0x97EA 0xD07E #HANGUL SYLLABLE KHIEUKH EU PIEUPSIOS +0x97EB 0xD07F #HANGUL SYLLABLE KHIEUKH EU SIOS +0x97EC 0xD082 #HANGUL SYLLABLE KHIEUKH EU CIEUC +0x97ED 0xD083 #HANGUL SYLLABLE KHIEUKH EU CHIEUCH +0x97EE 0xD084 #HANGUL SYLLABLE KHIEUKH EU KHIEUKH +0x97EF 0xD085 #HANGUL SYLLABLE KHIEUKH EU THIEUTH +0x97F0 0xD086 #HANGUL SYLLABLE KHIEUKH EU PHIEUPH +0x97F1 0xD087 #HANGUL SYLLABLE KHIEUKH EU HIEUH +0x97F2 0xD06E #HANGUL SYLLABLE KHIEUKH EU SSANGKIYEOK +0x97F3 0xD080 #HANGUL SYLLABLE KHIEUKH EU SSANGSIOS +0x97F4 0xD0A7 #HANGUL SYLLABLE KHIEUKH I KIYEOKSIOS +0x97F5 0xD0A9 #HANGUL SYLLABLE KHIEUKH I NIEUNCIEUC +0x97F6 0xD0AA #HANGUL SYLLABLE KHIEUKH I NIEUNHIEUH +0x97F7 0xD0AB #HANGUL SYLLABLE KHIEUKH I TIKEUT +0x97F8 0xD0AD #HANGUL SYLLABLE KHIEUKH I RIEULKIYEOK +0x97F9 0xD0AE #HANGUL SYLLABLE KHIEUKH I RIEULMIEUM +0x97FA 0xD0AF #HANGUL SYLLABLE KHIEUKH I RIEULPIEUP +0x97FB 0xD0B0 #HANGUL SYLLABLE KHIEUKH I RIEULSIOS +0x97FC 0xD0B1 #HANGUL SYLLABLE KHIEUKH I RIEULTHIEUTH +0x97FD 0xD0B2 #HANGUL SYLLABLE KHIEUKH I RIEULPHIEUPH +0x97FE 0xD0B3 #HANGUL SYLLABLE KHIEUKH I RIEULHIEUH +0x9841 0xD0B6 #HANGUL SYLLABLE KHIEUKH I PIEUPSIOS +0x9842 0xD0BA #HANGUL SYLLABLE KHIEUKH I CIEUC +0x9843 0xD0BB #HANGUL SYLLABLE KHIEUKH I CHIEUCH +0x9844 0xD0BC #HANGUL SYLLABLE KHIEUKH I KHIEUKH +0x9845 0xD0BD #HANGUL SYLLABLE KHIEUKH I THIEUTH +0x9846 0xD0BF #HANGUL SYLLABLE KHIEUKH I HIEUH +0x9847 0xD0A6 #HANGUL SYLLABLE KHIEUKH I SSANGKIYEOK +0x9848 0xD0B8 #HANGUL SYLLABLE KHIEUKH I SSANGSIOS +0x9849 0xCE93 #HANGUL SYLLABLE KHIEUKH AE KIYEOKSIOS +0x984A 0xCE95 #HANGUL SYLLABLE KHIEUKH AE NIEUNCIEUC +0x984B 0xCE96 #HANGUL SYLLABLE KHIEUKH AE NIEUNHIEUH +0x984C 0xCE97 #HANGUL SYLLABLE KHIEUKH AE TIKEUT +0x984D 0xCE99 #HANGUL SYLLABLE KHIEUKH AE RIEULKIYEOK +0x984E 0xCE9A #HANGUL SYLLABLE KHIEUKH AE RIEULMIEUM +0x984F 0xCE9B #HANGUL SYLLABLE KHIEUKH AE RIEULPIEUP +0x9850 0xCE9C #HANGUL SYLLABLE KHIEUKH AE RIEULSIOS +0x9851 0xCE9D #HANGUL SYLLABLE KHIEUKH AE RIEULTHIEUTH +0x9852 0xCE9E #HANGUL SYLLABLE KHIEUKH AE RIEULPHIEUPH +0x9853 0xCE9F #HANGUL SYLLABLE KHIEUKH AE RIEULHIEUH +0x9854 0xCEA2 #HANGUL SYLLABLE KHIEUKH AE PIEUPSIOS +0x9855 0xCEA6 #HANGUL SYLLABLE KHIEUKH AE CIEUC +0x9856 0xCEA7 #HANGUL SYLLABLE KHIEUKH AE CHIEUCH +0x9857 0xCEA8 #HANGUL SYLLABLE KHIEUKH AE KHIEUKH +0x9858 0xCEA9 #HANGUL SYLLABLE KHIEUKH AE THIEUTH +0x9859 0xCEAB #HANGUL SYLLABLE KHIEUKH AE HIEUH +0x985A 0xCE92 #HANGUL SYLLABLE KHIEUKH AE SSANGKIYEOK +0x9861 0xCEC9 #HANGUL SYLLABLE KHIEUKH YAE KIYEOK +0x9862 0xCECB #HANGUL SYLLABLE KHIEUKH YAE KIYEOKSIOS +0x9863 0xCECC #HANGUL SYLLABLE KHIEUKH YAE NIEUN +0x9864 0xCECD #HANGUL SYLLABLE KHIEUKH YAE NIEUNCIEUC +0x9865 0xCECE #HANGUL SYLLABLE KHIEUKH YAE NIEUNHIEUH +0x9866 0xCECF #HANGUL SYLLABLE KHIEUKH YAE TIKEUT +0x9867 0xCED0 #HANGUL SYLLABLE KHIEUKH YAE RIEUL +0x9868 0xCED1 #HANGUL SYLLABLE KHIEUKH YAE RIEULKIYEOK +0x9869 0xCED2 #HANGUL SYLLABLE KHIEUKH YAE RIEULMIEUM +0x986A 0xCED3 #HANGUL SYLLABLE KHIEUKH YAE RIEULPIEUP +0x986B 0xCED4 #HANGUL SYLLABLE KHIEUKH YAE RIEULSIOS +0x986C 0xCED5 #HANGUL SYLLABLE KHIEUKH YAE RIEULTHIEUTH +0x986D 0xCED6 #HANGUL SYLLABLE KHIEUKH YAE RIEULPHIEUPH +0x986E 0xCED7 #HANGUL SYLLABLE KHIEUKH YAE RIEULHIEUH +0x986F 0xCED8 #HANGUL SYLLABLE KHIEUKH YAE MIEUM +0x9870 0xCED9 #HANGUL SYLLABLE KHIEUKH YAE PIEUP +0x9871 0xCEDA #HANGUL SYLLABLE KHIEUKH YAE PIEUPSIOS +0x9872 0xCEDB #HANGUL SYLLABLE KHIEUKH YAE SIOS +0x9873 0xCEDD #HANGUL SYLLABLE KHIEUKH YAE IEUNG +0x9874 0xCEDE #HANGUL SYLLABLE KHIEUKH YAE CIEUC +0x9875 0xCEDF #HANGUL SYLLABLE KHIEUKH YAE CHIEUCH +0x9876 0xCEE0 #HANGUL SYLLABLE KHIEUKH YAE KHIEUKH +0x9877 0xCEE1 #HANGUL SYLLABLE KHIEUKH YAE THIEUTH +0x9878 0xCEE2 #HANGUL SYLLABLE KHIEUKH YAE PHIEUPH +0x9879 0xCEE3 #HANGUL SYLLABLE KHIEUKH YAE HIEUH +0x987A 0xCECA #HANGUL SYLLABLE KHIEUKH YAE SSANGKIYEOK +0x9881 0xCEDC #HANGUL SYLLABLE KHIEUKH YAE SSANGSIOS +0x9882 0xCF03 #HANGUL SYLLABLE KHIEUKH E KIYEOKSIOS +0x9883 0xCF05 #HANGUL SYLLABLE KHIEUKH E NIEUNCIEUC +0x9884 0xCF06 #HANGUL SYLLABLE KHIEUKH E NIEUNHIEUH +0x9885 0xCF07 #HANGUL SYLLABLE KHIEUKH E TIKEUT +0x9886 0xCF09 #HANGUL SYLLABLE KHIEUKH E RIEULKIYEOK +0x9887 0xCF0A #HANGUL SYLLABLE KHIEUKH E RIEULMIEUM +0x9888 0xCF0B #HANGUL SYLLABLE KHIEUKH E RIEULPIEUP +0x9889 0xCF0C #HANGUL SYLLABLE KHIEUKH E RIEULSIOS +0x988A 0xCF0D #HANGUL SYLLABLE KHIEUKH E RIEULTHIEUTH +0x988B 0xCF0E #HANGUL SYLLABLE KHIEUKH E RIEULPHIEUPH +0x988C 0xCF0F #HANGUL SYLLABLE KHIEUKH E RIEULHIEUH +0x988D 0xCF12 #HANGUL SYLLABLE KHIEUKH E PIEUPSIOS +0x988E 0xCF16 #HANGUL SYLLABLE KHIEUKH E CIEUC +0x988F 0xCF17 #HANGUL SYLLABLE KHIEUKH E CHIEUCH +0x9890 0xCF18 #HANGUL SYLLABLE KHIEUKH E KHIEUKH +0x9891 0xCF19 #HANGUL SYLLABLE KHIEUKH E THIEUTH +0x9892 0xCF1A #HANGUL SYLLABLE KHIEUKH E PHIEUPH +0x9893 0xCF1B #HANGUL SYLLABLE KHIEUKH E HIEUH +0x9894 0xCF02 #HANGUL SYLLABLE KHIEUKH E SSANGKIYEOK +0x9895 0xCF14 #HANGUL SYLLABLE KHIEUKH E SSANGSIOS +0x9896 0xCF39 #HANGUL SYLLABLE KHIEUKH YE KIYEOK +0x9897 0xCF3B #HANGUL SYLLABLE KHIEUKH YE KIYEOKSIOS +0x9898 0xCF3C #HANGUL SYLLABLE KHIEUKH YE NIEUN +0x9899 0xCF3D #HANGUL SYLLABLE KHIEUKH YE NIEUNCIEUC +0x989A 0xCF3E #HANGUL SYLLABLE KHIEUKH YE NIEUNHIEUH +0x989B 0xCF3F #HANGUL SYLLABLE KHIEUKH YE TIKEUT +0x989C 0xCF40 #HANGUL SYLLABLE KHIEUKH YE RIEUL +0x989D 0xCF41 #HANGUL SYLLABLE KHIEUKH YE RIEULKIYEOK +0x989E 0xCF42 #HANGUL SYLLABLE KHIEUKH YE RIEULMIEUM +0x989F 0xCF43 #HANGUL SYLLABLE KHIEUKH YE RIEULPIEUP +0x98A0 0xCF44 #HANGUL SYLLABLE KHIEUKH YE RIEULSIOS +0x98A1 0xCF45 #HANGUL SYLLABLE KHIEUKH YE RIEULTHIEUTH +0x98A2 0xCF46 #HANGUL SYLLABLE KHIEUKH YE RIEULPHIEUPH +0x98A3 0xCF47 #HANGUL SYLLABLE KHIEUKH YE RIEULHIEUH +0x98A4 0xCF48 #HANGUL SYLLABLE KHIEUKH YE MIEUM +0x98A5 0xCF49 #HANGUL SYLLABLE KHIEUKH YE PIEUP +0x98A6 0xCF4A #HANGUL SYLLABLE KHIEUKH YE PIEUPSIOS +0x98A7 0xCF4B #HANGUL SYLLABLE KHIEUKH YE SIOS +0x98A8 0xCF4D #HANGUL SYLLABLE KHIEUKH YE IEUNG +0x98A9 0xCF4E #HANGUL SYLLABLE KHIEUKH YE CIEUC +0x98AA 0xCF4F #HANGUL SYLLABLE KHIEUKH YE CHIEUCH +0x98AB 0xCF50 #HANGUL SYLLABLE KHIEUKH YE KHIEUKH +0x98AC 0xCF51 #HANGUL SYLLABLE KHIEUKH YE THIEUTH +0x98AD 0xCF52 #HANGUL SYLLABLE KHIEUKH YE PHIEUPH +0x98AE 0xCF53 #HANGUL SYLLABLE KHIEUKH YE HIEUH +0x98AF 0xCF3A #HANGUL SYLLABLE KHIEUKH YE SSANGKIYEOK +0x98B0 0xCF4C #HANGUL SYLLABLE KHIEUKH YE SSANGSIOS +0x98B1 0xCFA9 #HANGUL SYLLABLE KHIEUKH OE KIYEOK +0x98B2 0xCFAB #HANGUL SYLLABLE KHIEUKH OE KIYEOKSIOS +0x98B3 0xCFAC #HANGUL SYLLABLE KHIEUKH OE NIEUN +0x98B4 0xCFAD #HANGUL SYLLABLE KHIEUKH OE NIEUNCIEUC +0x98B5 0xCFAE #HANGUL SYLLABLE KHIEUKH OE NIEUNHIEUH +0x98B6 0xCFAF #HANGUL SYLLABLE KHIEUKH OE TIKEUT +0x98B7 0xCFB1 #HANGUL SYLLABLE KHIEUKH OE RIEULKIYEOK +0x98B8 0xCFB2 #HANGUL SYLLABLE KHIEUKH OE RIEULMIEUM +0x98B9 0xCFB3 #HANGUL SYLLABLE KHIEUKH OE RIEULPIEUP +0x98BA 0xCFB4 #HANGUL SYLLABLE KHIEUKH OE RIEULSIOS +0x98BB 0xCFB5 #HANGUL SYLLABLE KHIEUKH OE RIEULTHIEUTH +0x98BC 0xCFB6 #HANGUL SYLLABLE KHIEUKH OE RIEULPHIEUPH +0x98BD 0xCFB7 #HANGUL SYLLABLE KHIEUKH OE RIEULHIEUH +0x98BE 0xCFB8 #HANGUL SYLLABLE KHIEUKH OE MIEUM +0x98BF 0xCFB9 #HANGUL SYLLABLE KHIEUKH OE PIEUP +0x98C0 0xCFBA #HANGUL SYLLABLE KHIEUKH OE PIEUPSIOS +0x98C1 0xCFBB #HANGUL SYLLABLE KHIEUKH OE SIOS +0x98C2 0xCFBD #HANGUL SYLLABLE KHIEUKH OE IEUNG +0x98C3 0xCFBE #HANGUL SYLLABLE KHIEUKH OE CIEUC +0x98C4 0xCFBF #HANGUL SYLLABLE KHIEUKH OE CHIEUCH +0x98C5 0xCFC0 #HANGUL SYLLABLE KHIEUKH OE KHIEUKH +0x98C6 0xCFC1 #HANGUL SYLLABLE KHIEUKH OE THIEUTH +0x98C7 0xCFC2 #HANGUL SYLLABLE KHIEUKH OE PHIEUPH +0x98C8 0xCFC3 #HANGUL SYLLABLE KHIEUKH OE HIEUH +0x98C9 0xCFAA #HANGUL SYLLABLE KHIEUKH OE SSANGKIYEOK +0x98CA 0xCFBC #HANGUL SYLLABLE KHIEUKH OE SSANGSIOS +0x98CB 0xD037 #HANGUL SYLLABLE KHIEUKH WI KIYEOKSIOS +0x98CC 0xD039 #HANGUL SYLLABLE KHIEUKH WI NIEUNCIEUC +0x98CD 0xD03A #HANGUL SYLLABLE KHIEUKH WI NIEUNHIEUH +0x98CE 0xD03B #HANGUL SYLLABLE KHIEUKH WI TIKEUT +0x98CF 0xD03D #HANGUL SYLLABLE KHIEUKH WI RIEULKIYEOK +0x98D0 0xD03E #HANGUL SYLLABLE KHIEUKH WI RIEULMIEUM +0x98D1 0xD03F #HANGUL SYLLABLE KHIEUKH WI RIEULPIEUP +0x98D2 0xD040 #HANGUL SYLLABLE KHIEUKH WI RIEULSIOS +0x98D3 0xD041 #HANGUL SYLLABLE KHIEUKH WI RIEULTHIEUTH +0x98D4 0xD042 #HANGUL SYLLABLE KHIEUKH WI RIEULPHIEUPH +0x98D5 0xD043 #HANGUL SYLLABLE KHIEUKH WI RIEULHIEUH +0x98D6 0xD046 #HANGUL SYLLABLE KHIEUKH WI PIEUPSIOS +0x98D7 0xD04A #HANGUL SYLLABLE KHIEUKH WI CIEUC +0x98D8 0xD04B #HANGUL SYLLABLE KHIEUKH WI CHIEUCH +0x98D9 0xD04C #HANGUL SYLLABLE KHIEUKH WI KHIEUKH +0x98DA 0xD04D #HANGUL SYLLABLE KHIEUKH WI THIEUTH +0x98DB 0xD04E #HANGUL SYLLABLE KHIEUKH WI PHIEUPH +0x98DC 0xD04F #HANGUL SYLLABLE KHIEUKH WI HIEUH +0x98DD 0xD036 #HANGUL SYLLABLE KHIEUKH WI SSANGKIYEOK +0x98DE 0xD048 #HANGUL SYLLABLE KHIEUKH WI SSANGSIOS +0x98DF 0xD089 #HANGUL SYLLABLE KHIEUKH YI KIYEOK +0x98E0 0xD08B #HANGUL SYLLABLE KHIEUKH YI KIYEOKSIOS +0x98E1 0xD08C #HANGUL SYLLABLE KHIEUKH YI NIEUN +0x98E2 0xD08D #HANGUL SYLLABLE KHIEUKH YI NIEUNCIEUC +0x98E3 0xD08E #HANGUL SYLLABLE KHIEUKH YI NIEUNHIEUH +0x98E4 0xD08F #HANGUL SYLLABLE KHIEUKH YI TIKEUT +0x98E5 0xD090 #HANGUL SYLLABLE KHIEUKH YI RIEUL +0x98E6 0xD091 #HANGUL SYLLABLE KHIEUKH YI RIEULKIYEOK +0x98E7 0xD092 #HANGUL SYLLABLE KHIEUKH YI RIEULMIEUM +0x98E8 0xD093 #HANGUL SYLLABLE KHIEUKH YI RIEULPIEUP +0x98E9 0xD094 #HANGUL SYLLABLE KHIEUKH YI RIEULSIOS +0x98EA 0xD095 #HANGUL SYLLABLE KHIEUKH YI RIEULTHIEUTH +0x98EB 0xD096 #HANGUL SYLLABLE KHIEUKH YI RIEULPHIEUPH +0x98EC 0xD097 #HANGUL SYLLABLE KHIEUKH YI RIEULHIEUH +0x98ED 0xD098 #HANGUL SYLLABLE KHIEUKH YI MIEUM +0x98EE 0xD099 #HANGUL SYLLABLE KHIEUKH YI PIEUP +0x98EF 0xD09A #HANGUL SYLLABLE KHIEUKH YI PIEUPSIOS +0x98F0 0xD09B #HANGUL SYLLABLE KHIEUKH YI SIOS +0x98F1 0xD09D #HANGUL SYLLABLE KHIEUKH YI IEUNG +0x98F2 0xD09E #HANGUL SYLLABLE KHIEUKH YI CIEUC +0x98F3 0xD09F #HANGUL SYLLABLE KHIEUKH YI CHIEUCH +0x98F4 0xD0A0 #HANGUL SYLLABLE KHIEUKH YI KHIEUKH +0x98F5 0xD0A1 #HANGUL SYLLABLE KHIEUKH YI THIEUTH +0x98F6 0xD0A2 #HANGUL SYLLABLE KHIEUKH YI PHIEUPH +0x98F7 0xD0A3 #HANGUL SYLLABLE KHIEUKH YI HIEUH +0x98F8 0xD08A #HANGUL SYLLABLE KHIEUKH YI SSANGKIYEOK +0x98F9 0xD09C #HANGUL SYLLABLE KHIEUKH YI SSANGSIOS +0x98FA 0xCF73 #HANGUL SYLLABLE KHIEUKH WA KIYEOKSIOS +0x98FB 0xCF75 #HANGUL SYLLABLE KHIEUKH WA NIEUNCIEUC +0x98FC 0xCF76 #HANGUL SYLLABLE KHIEUKH WA NIEUNHIEUH +0x98FD 0xCF77 #HANGUL SYLLABLE KHIEUKH WA TIKEUT +0x98FE 0xCF79 #HANGUL SYLLABLE KHIEUKH WA RIEULKIYEOK +0x9941 0xCF7A #HANGUL SYLLABLE KHIEUKH WA RIEULMIEUM +0x9942 0xCF7B #HANGUL SYLLABLE KHIEUKH WA RIEULPIEUP +0x9943 0xCF7C #HANGUL SYLLABLE KHIEUKH WA RIEULSIOS +0x9944 0xCF7D #HANGUL SYLLABLE KHIEUKH WA RIEULTHIEUTH +0x9945 0xCF7E #HANGUL SYLLABLE KHIEUKH WA RIEULPHIEUPH +0x9946 0xCF7F #HANGUL SYLLABLE KHIEUKH WA RIEULHIEUH +0x9947 0xCF81 #HANGUL SYLLABLE KHIEUKH WA PIEUP +0x9948 0xCF82 #HANGUL SYLLABLE KHIEUKH WA PIEUPSIOS +0x9949 0xCF83 #HANGUL SYLLABLE KHIEUKH WA SIOS +0x994A 0xCF86 #HANGUL SYLLABLE KHIEUKH WA CIEUC +0x994B 0xCF87 #HANGUL SYLLABLE KHIEUKH WA CHIEUCH +0x994C 0xCF88 #HANGUL SYLLABLE KHIEUKH WA KHIEUKH +0x994D 0xCF89 #HANGUL SYLLABLE KHIEUKH WA THIEUTH +0x994E 0xCF8A #HANGUL SYLLABLE KHIEUKH WA PHIEUPH +0x994F 0xCF8B #HANGUL SYLLABLE KHIEUKH WA HIEUH +0x9950 0xCF72 #HANGUL SYLLABLE KHIEUKH WA SSANGKIYEOK +0x9951 0xCF84 #HANGUL SYLLABLE KHIEUKH WA SSANGSIOS +0x9952 0xCFFD #HANGUL SYLLABLE KHIEUKH WEO KIYEOK +0x9953 0xCFFF #HANGUL SYLLABLE KHIEUKH WEO KIYEOKSIOS +0x9954 0xD001 #HANGUL SYLLABLE KHIEUKH WEO NIEUNCIEUC +0x9955 0xD002 #HANGUL SYLLABLE KHIEUKH WEO NIEUNHIEUH +0x9956 0xD003 #HANGUL SYLLABLE KHIEUKH WEO TIKEUT +0x9957 0xD005 #HANGUL SYLLABLE KHIEUKH WEO RIEULKIYEOK +0x9958 0xD006 #HANGUL SYLLABLE KHIEUKH WEO RIEULMIEUM +0x9959 0xD007 #HANGUL SYLLABLE KHIEUKH WEO RIEULPIEUP +0x995A 0xD008 #HANGUL SYLLABLE KHIEUKH WEO RIEULSIOS +0x9961 0xD009 #HANGUL SYLLABLE KHIEUKH WEO RIEULTHIEUTH +0x9962 0xD00A #HANGUL SYLLABLE KHIEUKH WEO RIEULPHIEUPH +0x9963 0xD00B #HANGUL SYLLABLE KHIEUKH WEO RIEULHIEUH +0x9964 0xD00C #HANGUL SYLLABLE KHIEUKH WEO MIEUM +0x9965 0xD00D #HANGUL SYLLABLE KHIEUKH WEO PIEUP +0x9966 0xD00E #HANGUL SYLLABLE KHIEUKH WEO PIEUPSIOS +0x9967 0xD00F #HANGUL SYLLABLE KHIEUKH WEO SIOS +0x9968 0xD012 #HANGUL SYLLABLE KHIEUKH WEO CIEUC +0x9969 0xD013 #HANGUL SYLLABLE KHIEUKH WEO CHIEUCH +0x996A 0xD014 #HANGUL SYLLABLE KHIEUKH WEO KHIEUKH +0x996B 0xD015 #HANGUL SYLLABLE KHIEUKH WEO THIEUTH +0x996C 0xD016 #HANGUL SYLLABLE KHIEUKH WEO PHIEUPH +0x996D 0xD017 #HANGUL SYLLABLE KHIEUKH WEO HIEUH +0x996E 0xCFFE #HANGUL SYLLABLE KHIEUKH WEO SSANGKIYEOK +0x996F 0xD010 #HANGUL SYLLABLE KHIEUKH WEO SSANGSIOS +0x9970 0xCF8D #HANGUL SYLLABLE KHIEUKH WAE KIYEOK +0x9971 0xCF8F #HANGUL SYLLABLE KHIEUKH WAE KIYEOKSIOS +0x9972 0xCF91 #HANGUL SYLLABLE KHIEUKH WAE NIEUNCIEUC +0x9973 0xCF92 #HANGUL SYLLABLE KHIEUKH WAE NIEUNHIEUH +0x9974 0xCF93 #HANGUL SYLLABLE KHIEUKH WAE TIKEUT +0x9975 0xCF95 #HANGUL SYLLABLE KHIEUKH WAE RIEULKIYEOK +0x9976 0xCF96 #HANGUL SYLLABLE KHIEUKH WAE RIEULMIEUM +0x9977 0xCF97 #HANGUL SYLLABLE KHIEUKH WAE RIEULPIEUP +0x9978 0xCF98 #HANGUL SYLLABLE KHIEUKH WAE RIEULSIOS +0x9979 0xCF99 #HANGUL SYLLABLE KHIEUKH WAE RIEULTHIEUTH +0x997A 0xCF9A #HANGUL SYLLABLE KHIEUKH WAE RIEULPHIEUPH +0x9981 0xCF9B #HANGUL SYLLABLE KHIEUKH WAE RIEULHIEUH +0x9982 0xCF9C #HANGUL SYLLABLE KHIEUKH WAE MIEUM +0x9983 0xCF9D #HANGUL SYLLABLE KHIEUKH WAE PIEUP +0x9984 0xCF9E #HANGUL SYLLABLE KHIEUKH WAE PIEUPSIOS +0x9985 0xCF9F #HANGUL SYLLABLE KHIEUKH WAE SIOS +0x9986 0xCFA2 #HANGUL SYLLABLE KHIEUKH WAE CIEUC +0x9987 0xCFA3 #HANGUL SYLLABLE KHIEUKH WAE CHIEUCH +0x9988 0xCFA4 #HANGUL SYLLABLE KHIEUKH WAE KHIEUKH +0x9989 0xCFA5 #HANGUL SYLLABLE KHIEUKH WAE THIEUTH +0x998A 0xCFA6 #HANGUL SYLLABLE KHIEUKH WAE PHIEUPH +0x998B 0xCFA7 #HANGUL SYLLABLE KHIEUKH WAE HIEUH +0x998C 0xCF8E #HANGUL SYLLABLE KHIEUKH WAE SSANGKIYEOK +0x998D 0xCFA0 #HANGUL SYLLABLE KHIEUKH WAE SSANGSIOS +0x998E 0xD01B #HANGUL SYLLABLE KHIEUKH WE KIYEOKSIOS +0x998F 0xD01C #HANGUL SYLLABLE KHIEUKH WE NIEUN +0x9990 0xD01D #HANGUL SYLLABLE KHIEUKH WE NIEUNCIEUC +0x9991 0xD01E #HANGUL SYLLABLE KHIEUKH WE NIEUNHIEUH +0x9992 0xD01F #HANGUL SYLLABLE KHIEUKH WE TIKEUT +0x9993 0xD021 #HANGUL SYLLABLE KHIEUKH WE RIEULKIYEOK +0x9994 0xD022 #HANGUL SYLLABLE KHIEUKH WE RIEULMIEUM +0x9995 0xD023 #HANGUL SYLLABLE KHIEUKH WE RIEULPIEUP +0x9996 0xD024 #HANGUL SYLLABLE KHIEUKH WE RIEULSIOS +0x9997 0xD025 #HANGUL SYLLABLE KHIEUKH WE RIEULTHIEUTH +0x9998 0xD026 #HANGUL SYLLABLE KHIEUKH WE RIEULPHIEUPH +0x9999 0xD027 #HANGUL SYLLABLE KHIEUKH WE RIEULHIEUH +0x999A 0xD028 #HANGUL SYLLABLE KHIEUKH WE MIEUM +0x999B 0xD029 #HANGUL SYLLABLE KHIEUKH WE PIEUP +0x999C 0xD02A #HANGUL SYLLABLE KHIEUKH WE PIEUPSIOS +0x999D 0xD02B #HANGUL SYLLABLE KHIEUKH WE SIOS +0x999E 0xD02E #HANGUL SYLLABLE KHIEUKH WE CIEUC +0x999F 0xD02F #HANGUL SYLLABLE KHIEUKH WE CHIEUCH +0x99A0 0xD030 #HANGUL SYLLABLE KHIEUKH WE KHIEUKH +0x99A1 0xD031 #HANGUL SYLLABLE KHIEUKH WE THIEUTH +0x99A2 0xD032 #HANGUL SYLLABLE KHIEUKH WE PHIEUPH +0x99A3 0xD033 #HANGUL SYLLABLE KHIEUKH WE HIEUH +0x99A4 0xD01A #HANGUL SYLLABLE KHIEUKH WE SSANGKIYEOK +0x99A5 0xD02C #HANGUL SYLLABLE KHIEUKH WE SSANGSIOS +0x99A6 0xD0C3 #HANGUL SYLLABLE THIEUTH A KIYEOKSIOS +0x99A7 0xD0C5 #HANGUL SYLLABLE THIEUTH A NIEUNCIEUC +0x99A8 0xD0C6 #HANGUL SYLLABLE THIEUTH A NIEUNHIEUH +0x99A9 0xD0C7 #HANGUL SYLLABLE THIEUTH A TIKEUT +0x99AA 0xD0CA #HANGUL SYLLABLE THIEUTH A RIEULMIEUM +0x99AB 0xD0CB #HANGUL SYLLABLE THIEUTH A RIEULPIEUP +0x99AC 0xD0CC #HANGUL SYLLABLE THIEUTH A RIEULSIOS +0x99AD 0xD0CD #HANGUL SYLLABLE THIEUTH A RIEULTHIEUTH +0x99AE 0xD0CE #HANGUL SYLLABLE THIEUTH A RIEULPHIEUPH +0x99AF 0xD0CF #HANGUL SYLLABLE THIEUTH A RIEULHIEUH +0x99B0 0xD0D2 #HANGUL SYLLABLE THIEUTH A PIEUPSIOS +0x99B1 0xD0D6 #HANGUL SYLLABLE THIEUTH A CIEUC +0x99B2 0xD0D7 #HANGUL SYLLABLE THIEUTH A CHIEUCH +0x99B3 0xD0D8 #HANGUL SYLLABLE THIEUTH A KHIEUKH +0x99B4 0xD0D9 #HANGUL SYLLABLE THIEUTH A THIEUTH +0x99B5 0xD0DB #HANGUL SYLLABLE THIEUTH A HIEUH +0x99B6 0xD0C2 #HANGUL SYLLABLE THIEUTH A SSANGKIYEOK +0x99B7 0xD0F9 #HANGUL SYLLABLE THIEUTH YA KIYEOK +0x99B8 0xD0FB #HANGUL SYLLABLE THIEUTH YA KIYEOKSIOS +0x99B9 0xD0FD #HANGUL SYLLABLE THIEUTH YA NIEUNCIEUC +0x99BA 0xD0FE #HANGUL SYLLABLE THIEUTH YA NIEUNHIEUH +0x99BB 0xD0FF #HANGUL SYLLABLE THIEUTH YA TIKEUT +0x99BC 0xD100 #HANGUL SYLLABLE THIEUTH YA RIEUL +0x99BD 0xD101 #HANGUL SYLLABLE THIEUTH YA RIEULKIYEOK +0x99BE 0xD102 #HANGUL SYLLABLE THIEUTH YA RIEULMIEUM +0x99BF 0xD103 #HANGUL SYLLABLE THIEUTH YA RIEULPIEUP +0x99C0 0xD104 #HANGUL SYLLABLE THIEUTH YA RIEULSIOS +0x99C1 0xD105 #HANGUL SYLLABLE THIEUTH YA RIEULTHIEUTH +0x99C2 0xD106 #HANGUL SYLLABLE THIEUTH YA RIEULPHIEUPH +0x99C3 0xD107 #HANGUL SYLLABLE THIEUTH YA RIEULHIEUH +0x99C4 0xD108 #HANGUL SYLLABLE THIEUTH YA MIEUM +0x99C5 0xD109 #HANGUL SYLLABLE THIEUTH YA PIEUP +0x99C6 0xD10A #HANGUL SYLLABLE THIEUTH YA PIEUPSIOS +0x99C7 0xD10B #HANGUL SYLLABLE THIEUTH YA SIOS +0x99C8 0xD10E #HANGUL SYLLABLE THIEUTH YA CIEUC +0x99C9 0xD10F #HANGUL SYLLABLE THIEUTH YA CHIEUCH +0x99CA 0xD110 #HANGUL SYLLABLE THIEUTH YA KHIEUKH +0x99CB 0xD111 #HANGUL SYLLABLE THIEUTH YA THIEUTH +0x99CC 0xD112 #HANGUL SYLLABLE THIEUTH YA PHIEUPH +0x99CD 0xD113 #HANGUL SYLLABLE THIEUTH YA HIEUH +0x99CE 0xD0FA #HANGUL SYLLABLE THIEUTH YA SSANGKIYEOK +0x99CF 0xD10C #HANGUL SYLLABLE THIEUTH YA SSANGSIOS +0x99D0 0xD133 #HANGUL SYLLABLE THIEUTH EO KIYEOKSIOS +0x99D1 0xD135 #HANGUL SYLLABLE THIEUTH EO NIEUNCIEUC +0x99D2 0xD136 #HANGUL SYLLABLE THIEUTH EO NIEUNHIEUH +0x99D3 0xD137 #HANGUL SYLLABLE THIEUTH EO TIKEUT +0x99D4 0xD139 #HANGUL SYLLABLE THIEUTH EO RIEULKIYEOK +0x99D5 0xD13B #HANGUL SYLLABLE THIEUTH EO RIEULPIEUP +0x99D6 0xD13C #HANGUL SYLLABLE THIEUTH EO RIEULSIOS +0x99D7 0xD13D #HANGUL SYLLABLE THIEUTH EO RIEULTHIEUTH +0x99D8 0xD13E #HANGUL SYLLABLE THIEUTH EO RIEULPHIEUPH +0x99D9 0xD13F #HANGUL SYLLABLE THIEUTH EO RIEULHIEUH +0x99DA 0xD142 #HANGUL SYLLABLE THIEUTH EO PIEUPSIOS +0x99DB 0xD146 #HANGUL SYLLABLE THIEUTH EO CIEUC +0x99DC 0xD147 #HANGUL SYLLABLE THIEUTH EO CHIEUCH +0x99DD 0xD148 #HANGUL SYLLABLE THIEUTH EO KHIEUKH +0x99DE 0xD149 #HANGUL SYLLABLE THIEUTH EO THIEUTH +0x99DF 0xD14A #HANGUL SYLLABLE THIEUTH EO PHIEUPH +0x99E0 0xD14B #HANGUL SYLLABLE THIEUTH EO HIEUH +0x99E1 0xD132 #HANGUL SYLLABLE THIEUTH EO SSANGKIYEOK +0x99E2 0xD169 #HANGUL SYLLABLE THIEUTH YEO KIYEOK +0x99E3 0xD16B #HANGUL SYLLABLE THIEUTH YEO KIYEOKSIOS +0x99E4 0xD16D #HANGUL SYLLABLE THIEUTH YEO NIEUNCIEUC +0x99E5 0xD16E #HANGUL SYLLABLE THIEUTH YEO NIEUNHIEUH +0x99E6 0xD16F #HANGUL SYLLABLE THIEUTH YEO TIKEUT +0x99E7 0xD170 #HANGUL SYLLABLE THIEUTH YEO RIEUL +0x99E8 0xD171 #HANGUL SYLLABLE THIEUTH YEO RIEULKIYEOK +0x99E9 0xD172 #HANGUL SYLLABLE THIEUTH YEO RIEULMIEUM +0x99EA 0xD173 #HANGUL SYLLABLE THIEUTH YEO RIEULPIEUP +0x99EB 0xD174 #HANGUL SYLLABLE THIEUTH YEO RIEULSIOS +0x99EC 0xD175 #HANGUL SYLLABLE THIEUTH YEO RIEULTHIEUTH +0x99ED 0xD176 #HANGUL SYLLABLE THIEUTH YEO RIEULPHIEUPH +0x99EE 0xD177 #HANGUL SYLLABLE THIEUTH YEO RIEULHIEUH +0x99EF 0xD178 #HANGUL SYLLABLE THIEUTH YEO MIEUM +0x99F0 0xD179 #HANGUL SYLLABLE THIEUTH YEO PIEUP +0x99F1 0xD17A #HANGUL SYLLABLE THIEUTH YEO PIEUPSIOS +0x99F2 0xD17B #HANGUL SYLLABLE THIEUTH YEO SIOS +0x99F3 0xD17D #HANGUL SYLLABLE THIEUTH YEO IEUNG +0x99F4 0xD17E #HANGUL SYLLABLE THIEUTH YEO CIEUC +0x99F5 0xD17F #HANGUL SYLLABLE THIEUTH YEO CHIEUCH +0x99F6 0xD180 #HANGUL SYLLABLE THIEUTH YEO KHIEUKH +0x99F7 0xD181 #HANGUL SYLLABLE THIEUTH YEO THIEUTH +0x99F8 0xD182 #HANGUL SYLLABLE THIEUTH YEO PHIEUPH +0x99F9 0xD183 #HANGUL SYLLABLE THIEUTH YEO HIEUH +0x99FA 0xD16A #HANGUL SYLLABLE THIEUTH YEO SSANGKIYEOK +0x99FB 0xD1A3 #HANGUL SYLLABLE THIEUTH O KIYEOKSIOS +0x99FC 0xD1A5 #HANGUL SYLLABLE THIEUTH O NIEUNCIEUC +0x99FD 0xD1A6 #HANGUL SYLLABLE THIEUTH O NIEUNHIEUH +0x99FE 0xD1A7 #HANGUL SYLLABLE THIEUTH O TIKEUT +0x9A41 0xD1A9 #HANGUL SYLLABLE THIEUTH O RIEULKIYEOK +0x9A42 0xD1AA #HANGUL SYLLABLE THIEUTH O RIEULMIEUM +0x9A43 0xD1AB #HANGUL SYLLABLE THIEUTH O RIEULPIEUP +0x9A44 0xD1AC #HANGUL SYLLABLE THIEUTH O RIEULSIOS +0x9A45 0xD1AD #HANGUL SYLLABLE THIEUTH O RIEULTHIEUTH +0x9A46 0xD1AE #HANGUL SYLLABLE THIEUTH O RIEULPHIEUPH +0x9A47 0xD1AF #HANGUL SYLLABLE THIEUTH O RIEULHIEUH +0x9A48 0xD1B2 #HANGUL SYLLABLE THIEUTH O PIEUPSIOS +0x9A49 0xD1B6 #HANGUL SYLLABLE THIEUTH O CIEUC +0x9A4A 0xD1B7 #HANGUL SYLLABLE THIEUTH O CHIEUCH +0x9A4B 0xD1B8 #HANGUL SYLLABLE THIEUTH O KHIEUKH +0x9A4C 0xD1B9 #HANGUL SYLLABLE THIEUTH O THIEUTH +0x9A4D 0xD1BB #HANGUL SYLLABLE THIEUTH O HIEUH +0x9A4E 0xD1A2 #HANGUL SYLLABLE THIEUTH O SSANGKIYEOK +0x9A4F 0xD1B4 #HANGUL SYLLABLE THIEUTH O SSANGSIOS +0x9A50 0xD211 #HANGUL SYLLABLE THIEUTH YO KIYEOK +0x9A51 0xD213 #HANGUL SYLLABLE THIEUTH YO KIYEOKSIOS +0x9A52 0xD214 #HANGUL SYLLABLE THIEUTH YO NIEUN +0x9A53 0xD215 #HANGUL SYLLABLE THIEUTH YO NIEUNCIEUC +0x9A54 0xD216 #HANGUL SYLLABLE THIEUTH YO NIEUNHIEUH +0x9A55 0xD217 #HANGUL SYLLABLE THIEUTH YO TIKEUT +0x9A56 0xD218 #HANGUL SYLLABLE THIEUTH YO RIEUL +0x9A57 0xD219 #HANGUL SYLLABLE THIEUTH YO RIEULKIYEOK +0x9A58 0xD21A #HANGUL SYLLABLE THIEUTH YO RIEULMIEUM +0x9A59 0xD21B #HANGUL SYLLABLE THIEUTH YO RIEULPIEUP +0x9A5A 0xD21C #HANGUL SYLLABLE THIEUTH YO RIEULSIOS +0x9A61 0xD21D #HANGUL SYLLABLE THIEUTH YO RIEULTHIEUTH +0x9A62 0xD21E #HANGUL SYLLABLE THIEUTH YO RIEULPHIEUPH +0x9A63 0xD21F #HANGUL SYLLABLE THIEUTH YO RIEULHIEUH +0x9A64 0xD220 #HANGUL SYLLABLE THIEUTH YO MIEUM +0x9A65 0xD221 #HANGUL SYLLABLE THIEUTH YO PIEUP +0x9A66 0xD222 #HANGUL SYLLABLE THIEUTH YO PIEUPSIOS +0x9A67 0xD223 #HANGUL SYLLABLE THIEUTH YO SIOS +0x9A68 0xD225 #HANGUL SYLLABLE THIEUTH YO IEUNG +0x9A69 0xD226 #HANGUL SYLLABLE THIEUTH YO CIEUC +0x9A6A 0xD227 #HANGUL SYLLABLE THIEUTH YO CHIEUCH +0x9A6B 0xD228 #HANGUL SYLLABLE THIEUTH YO KHIEUKH +0x9A6C 0xD229 #HANGUL SYLLABLE THIEUTH YO THIEUTH +0x9A6D 0xD22A #HANGUL SYLLABLE THIEUTH YO PHIEUPH +0x9A6E 0xD22B #HANGUL SYLLABLE THIEUTH YO HIEUH +0x9A6F 0xD212 #HANGUL SYLLABLE THIEUTH YO SSANGKIYEOK +0x9A70 0xD224 #HANGUL SYLLABLE THIEUTH YO SSANGSIOS +0x9A71 0xD22F #HANGUL SYLLABLE THIEUTH U KIYEOKSIOS +0x9A72 0xD231 #HANGUL SYLLABLE THIEUTH U NIEUNCIEUC +0x9A73 0xD232 #HANGUL SYLLABLE THIEUTH U NIEUNHIEUH +0x9A74 0xD233 #HANGUL SYLLABLE THIEUTH U TIKEUT +0x9A75 0xD235 #HANGUL SYLLABLE THIEUTH U RIEULKIYEOK +0x9A76 0xD236 #HANGUL SYLLABLE THIEUTH U RIEULMIEUM +0x9A77 0xD237 #HANGUL SYLLABLE THIEUTH U RIEULPIEUP +0x9A78 0xD238 #HANGUL SYLLABLE THIEUTH U RIEULSIOS +0x9A79 0xD239 #HANGUL SYLLABLE THIEUTH U RIEULTHIEUTH +0x9A7A 0xD23A #HANGUL SYLLABLE THIEUTH U RIEULPHIEUPH +0x9A81 0xD23B #HANGUL SYLLABLE THIEUTH U RIEULHIEUH +0x9A82 0xD23E #HANGUL SYLLABLE THIEUTH U PIEUPSIOS +0x9A83 0xD242 #HANGUL SYLLABLE THIEUTH U CIEUC +0x9A84 0xD243 #HANGUL SYLLABLE THIEUTH U CHIEUCH +0x9A85 0xD244 #HANGUL SYLLABLE THIEUTH U KHIEUKH +0x9A86 0xD245 #HANGUL SYLLABLE THIEUTH U THIEUTH +0x9A87 0xD246 #HANGUL SYLLABLE THIEUTH U PHIEUPH +0x9A88 0xD247 #HANGUL SYLLABLE THIEUTH U HIEUH +0x9A89 0xD22E #HANGUL SYLLABLE THIEUTH U SSANGKIYEOK +0x9A8A 0xD240 #HANGUL SYLLABLE THIEUTH U SSANGSIOS +0x9A8B 0xD29D #HANGUL SYLLABLE THIEUTH YU KIYEOK +0x9A8C 0xD29F #HANGUL SYLLABLE THIEUTH YU KIYEOKSIOS +0x9A8D 0xD2A1 #HANGUL SYLLABLE THIEUTH YU NIEUNCIEUC +0x9A8E 0xD2A2 #HANGUL SYLLABLE THIEUTH YU NIEUNHIEUH +0x9A8F 0xD2A3 #HANGUL SYLLABLE THIEUTH YU TIKEUT +0x9A90 0xD2A5 #HANGUL SYLLABLE THIEUTH YU RIEULKIYEOK +0x9A91 0xD2A6 #HANGUL SYLLABLE THIEUTH YU RIEULMIEUM +0x9A92 0xD2A7 #HANGUL SYLLABLE THIEUTH YU RIEULPIEUP +0x9A93 0xD2A8 #HANGUL SYLLABLE THIEUTH YU RIEULSIOS +0x9A94 0xD2A9 #HANGUL SYLLABLE THIEUTH YU RIEULTHIEUTH +0x9A95 0xD2AA #HANGUL SYLLABLE THIEUTH YU RIEULPHIEUPH +0x9A96 0xD2AB #HANGUL SYLLABLE THIEUTH YU RIEULHIEUH +0x9A97 0xD2AD #HANGUL SYLLABLE THIEUTH YU PIEUP +0x9A98 0xD2AE #HANGUL SYLLABLE THIEUTH YU PIEUPSIOS +0x9A99 0xD2AF #HANGUL SYLLABLE THIEUTH YU SIOS +0x9A9A 0xD2B2 #HANGUL SYLLABLE THIEUTH YU CIEUC +0x9A9B 0xD2B3 #HANGUL SYLLABLE THIEUTH YU CHIEUCH +0x9A9C 0xD2B4 #HANGUL SYLLABLE THIEUTH YU KHIEUKH +0x9A9D 0xD2B5 #HANGUL SYLLABLE THIEUTH YU THIEUTH +0x9A9E 0xD2B6 #HANGUL SYLLABLE THIEUTH YU PHIEUPH +0x9A9F 0xD2B7 #HANGUL SYLLABLE THIEUTH YU HIEUH +0x9AA0 0xD29E #HANGUL SYLLABLE THIEUTH YU SSANGKIYEOK +0x9AA1 0xD2B0 #HANGUL SYLLABLE THIEUTH YU SSANGSIOS +0x9AA2 0xD2BB #HANGUL SYLLABLE THIEUTH EU KIYEOKSIOS +0x9AA3 0xD2BD #HANGUL SYLLABLE THIEUTH EU NIEUNCIEUC +0x9AA4 0xD2BE #HANGUL SYLLABLE THIEUTH EU NIEUNHIEUH +0x9AA5 0xD2C1 #HANGUL SYLLABLE THIEUTH EU RIEULKIYEOK +0x9AA6 0xD2C3 #HANGUL SYLLABLE THIEUTH EU RIEULPIEUP +0x9AA7 0xD2C4 #HANGUL SYLLABLE THIEUTH EU RIEULSIOS +0x9AA8 0xD2C5 #HANGUL SYLLABLE THIEUTH EU RIEULTHIEUTH +0x9AA9 0xD2C6 #HANGUL SYLLABLE THIEUTH EU RIEULPHIEUPH +0x9AAA 0xD2C7 #HANGUL SYLLABLE THIEUTH EU RIEULHIEUH +0x9AAB 0xD2CA #HANGUL SYLLABLE THIEUTH EU PIEUPSIOS +0x9AAC 0xD2CE #HANGUL SYLLABLE THIEUTH EU CIEUC +0x9AAD 0xD2CF #HANGUL SYLLABLE THIEUTH EU CHIEUCH +0x9AAE 0xD2D0 #HANGUL SYLLABLE THIEUTH EU KHIEUKH +0x9AAF 0xD2D1 #HANGUL SYLLABLE THIEUTH EU THIEUTH +0x9AB0 0xD2D2 #HANGUL SYLLABLE THIEUTH EU PHIEUPH +0x9AB1 0xD2D3 #HANGUL SYLLABLE THIEUTH EU HIEUH +0x9AB2 0xD2BA #HANGUL SYLLABLE THIEUTH EU SSANGKIYEOK +0x9AB3 0xD2CC #HANGUL SYLLABLE THIEUTH EU SSANGSIOS +0x9AB4 0xD2F3 #HANGUL SYLLABLE THIEUTH I KIYEOKSIOS +0x9AB5 0xD2F5 #HANGUL SYLLABLE THIEUTH I NIEUNCIEUC +0x9AB6 0xD2F6 #HANGUL SYLLABLE THIEUTH I NIEUNHIEUH +0x9AB7 0xD2F7 #HANGUL SYLLABLE THIEUTH I TIKEUT +0x9AB8 0xD2F9 #HANGUL SYLLABLE THIEUTH I RIEULKIYEOK +0x9AB9 0xD2FA #HANGUL SYLLABLE THIEUTH I RIEULMIEUM +0x9ABA 0xD2FB #HANGUL SYLLABLE THIEUTH I RIEULPIEUP +0x9ABB 0xD2FC #HANGUL SYLLABLE THIEUTH I RIEULSIOS +0x9ABC 0xD2FD #HANGUL SYLLABLE THIEUTH I RIEULTHIEUTH +0x9ABD 0xD2FE #HANGUL SYLLABLE THIEUTH I RIEULPHIEUPH +0x9ABE 0xD2FF #HANGUL SYLLABLE THIEUTH I RIEULHIEUH +0x9ABF 0xD302 #HANGUL SYLLABLE THIEUTH I PIEUPSIOS +0x9AC0 0xD306 #HANGUL SYLLABLE THIEUTH I CIEUC +0x9AC1 0xD307 #HANGUL SYLLABLE THIEUTH I CHIEUCH +0x9AC2 0xD308 #HANGUL SYLLABLE THIEUTH I KHIEUKH +0x9AC3 0xD309 #HANGUL SYLLABLE THIEUTH I THIEUTH +0x9AC4 0xD30A #HANGUL SYLLABLE THIEUTH I PHIEUPH +0x9AC5 0xD30B #HANGUL SYLLABLE THIEUTH I HIEUH +0x9AC6 0xD2F2 #HANGUL SYLLABLE THIEUTH I SSANGKIYEOK +0x9AC7 0xD304 #HANGUL SYLLABLE THIEUTH I SSANGSIOS +0x9AC8 0xD0DF #HANGUL SYLLABLE THIEUTH AE KIYEOKSIOS +0x9AC9 0xD0E1 #HANGUL SYLLABLE THIEUTH AE NIEUNCIEUC +0x9ACA 0xD0E2 #HANGUL SYLLABLE THIEUTH AE NIEUNHIEUH +0x9ACB 0xD0E3 #HANGUL SYLLABLE THIEUTH AE TIKEUT +0x9ACC 0xD0E5 #HANGUL SYLLABLE THIEUTH AE RIEULKIYEOK +0x9ACD 0xD0E6 #HANGUL SYLLABLE THIEUTH AE RIEULMIEUM +0x9ACE 0xD0E7 #HANGUL SYLLABLE THIEUTH AE RIEULPIEUP +0x9ACF 0xD0E8 #HANGUL SYLLABLE THIEUTH AE RIEULSIOS +0x9AD0 0xD0E9 #HANGUL SYLLABLE THIEUTH AE RIEULTHIEUTH +0x9AD1 0xD0EA #HANGUL SYLLABLE THIEUTH AE RIEULPHIEUPH +0x9AD2 0xD0EB #HANGUL SYLLABLE THIEUTH AE RIEULHIEUH +0x9AD3 0xD0EE #HANGUL SYLLABLE THIEUTH AE PIEUPSIOS +0x9AD4 0xD0F2 #HANGUL SYLLABLE THIEUTH AE CIEUC +0x9AD5 0xD0F3 #HANGUL SYLLABLE THIEUTH AE CHIEUCH +0x9AD6 0xD0F4 #HANGUL SYLLABLE THIEUTH AE KHIEUKH +0x9AD7 0xD0F5 #HANGUL SYLLABLE THIEUTH AE THIEUTH +0x9AD8 0xD0F7 #HANGUL SYLLABLE THIEUTH AE HIEUH +0x9AD9 0xD0DE #HANGUL SYLLABLE THIEUTH AE SSANGKIYEOK +0x9ADA 0xD115 #HANGUL SYLLABLE THIEUTH YAE KIYEOK +0x9ADB 0xD117 #HANGUL SYLLABLE THIEUTH YAE KIYEOKSIOS +0x9ADC 0xD118 #HANGUL SYLLABLE THIEUTH YAE NIEUN +0x9ADD 0xD119 #HANGUL SYLLABLE THIEUTH YAE NIEUNCIEUC +0x9ADE 0xD11A #HANGUL SYLLABLE THIEUTH YAE NIEUNHIEUH +0x9ADF 0xD11B #HANGUL SYLLABLE THIEUTH YAE TIKEUT +0x9AE0 0xD11C #HANGUL SYLLABLE THIEUTH YAE RIEUL +0x9AE1 0xD11D #HANGUL SYLLABLE THIEUTH YAE RIEULKIYEOK +0x9AE2 0xD11E #HANGUL SYLLABLE THIEUTH YAE RIEULMIEUM +0x9AE3 0xD11F #HANGUL SYLLABLE THIEUTH YAE RIEULPIEUP +0x9AE4 0xD120 #HANGUL SYLLABLE THIEUTH YAE RIEULSIOS +0x9AE5 0xD121 #HANGUL SYLLABLE THIEUTH YAE RIEULTHIEUTH +0x9AE6 0xD122 #HANGUL SYLLABLE THIEUTH YAE RIEULPHIEUPH +0x9AE7 0xD123 #HANGUL SYLLABLE THIEUTH YAE RIEULHIEUH +0x9AE8 0xD124 #HANGUL SYLLABLE THIEUTH YAE MIEUM +0x9AE9 0xD125 #HANGUL SYLLABLE THIEUTH YAE PIEUP +0x9AEA 0xD126 #HANGUL SYLLABLE THIEUTH YAE PIEUPSIOS +0x9AEB 0xD127 #HANGUL SYLLABLE THIEUTH YAE SIOS +0x9AEC 0xD129 #HANGUL SYLLABLE THIEUTH YAE IEUNG +0x9AED 0xD12A #HANGUL SYLLABLE THIEUTH YAE CIEUC +0x9AEE 0xD12B #HANGUL SYLLABLE THIEUTH YAE CHIEUCH +0x9AEF 0xD12C #HANGUL SYLLABLE THIEUTH YAE KHIEUKH +0x9AF0 0xD12D #HANGUL SYLLABLE THIEUTH YAE THIEUTH +0x9AF1 0xD12E #HANGUL SYLLABLE THIEUTH YAE PHIEUPH +0x9AF2 0xD12F #HANGUL SYLLABLE THIEUTH YAE HIEUH +0x9AF3 0xD116 #HANGUL SYLLABLE THIEUTH YAE SSANGKIYEOK +0x9AF4 0xD128 #HANGUL SYLLABLE THIEUTH YAE SSANGSIOS +0x9AF5 0xD14F #HANGUL SYLLABLE THIEUTH E KIYEOKSIOS +0x9AF6 0xD151 #HANGUL SYLLABLE THIEUTH E NIEUNCIEUC +0x9AF7 0xD152 #HANGUL SYLLABLE THIEUTH E NIEUNHIEUH +0x9AF8 0xD153 #HANGUL SYLLABLE THIEUTH E TIKEUT +0x9AF9 0xD155 #HANGUL SYLLABLE THIEUTH E RIEULKIYEOK +0x9AFA 0xD156 #HANGUL SYLLABLE THIEUTH E RIEULMIEUM +0x9AFB 0xD157 #HANGUL SYLLABLE THIEUTH E RIEULPIEUP +0x9AFC 0xD158 #HANGUL SYLLABLE THIEUTH E RIEULSIOS +0x9AFD 0xD159 #HANGUL SYLLABLE THIEUTH E RIEULTHIEUTH +0x9AFE 0xD15A #HANGUL SYLLABLE THIEUTH E RIEULPHIEUPH +0x9B41 0xD15B #HANGUL SYLLABLE THIEUTH E RIEULHIEUH +0x9B42 0xD15E #HANGUL SYLLABLE THIEUTH E PIEUPSIOS +0x9B43 0xD162 #HANGUL SYLLABLE THIEUTH E CIEUC +0x9B44 0xD163 #HANGUL SYLLABLE THIEUTH E CHIEUCH +0x9B45 0xD164 #HANGUL SYLLABLE THIEUTH E KHIEUKH +0x9B46 0xD165 #HANGUL SYLLABLE THIEUTH E THIEUTH +0x9B47 0xD167 #HANGUL SYLLABLE THIEUTH E HIEUH +0x9B48 0xD14E #HANGUL SYLLABLE THIEUTH E SSANGKIYEOK +0x9B49 0xD160 #HANGUL SYLLABLE THIEUTH E SSANGSIOS +0x9B4A 0xD185 #HANGUL SYLLABLE THIEUTH YE KIYEOK +0x9B4B 0xD187 #HANGUL SYLLABLE THIEUTH YE KIYEOKSIOS +0x9B4C 0xD189 #HANGUL SYLLABLE THIEUTH YE NIEUNCIEUC +0x9B4D 0xD18A #HANGUL SYLLABLE THIEUTH YE NIEUNHIEUH +0x9B4E 0xD18B #HANGUL SYLLABLE THIEUTH YE TIKEUT +0x9B4F 0xD18C #HANGUL SYLLABLE THIEUTH YE RIEUL +0x9B50 0xD18D #HANGUL SYLLABLE THIEUTH YE RIEULKIYEOK +0x9B51 0xD18E #HANGUL SYLLABLE THIEUTH YE RIEULMIEUM +0x9B52 0xD18F #HANGUL SYLLABLE THIEUTH YE RIEULPIEUP +0x9B53 0xD190 #HANGUL SYLLABLE THIEUTH YE RIEULSIOS +0x9B54 0xD191 #HANGUL SYLLABLE THIEUTH YE RIEULTHIEUTH +0x9B55 0xD192 #HANGUL SYLLABLE THIEUTH YE RIEULPHIEUPH +0x9B56 0xD193 #HANGUL SYLLABLE THIEUTH YE RIEULHIEUH +0x9B57 0xD194 #HANGUL SYLLABLE THIEUTH YE MIEUM +0x9B58 0xD195 #HANGUL SYLLABLE THIEUTH YE PIEUP +0x9B59 0xD196 #HANGUL SYLLABLE THIEUTH YE PIEUPSIOS +0x9B5A 0xD197 #HANGUL SYLLABLE THIEUTH YE SIOS +0x9B61 0xD199 #HANGUL SYLLABLE THIEUTH YE IEUNG +0x9B62 0xD19A #HANGUL SYLLABLE THIEUTH YE CIEUC +0x9B63 0xD19B #HANGUL SYLLABLE THIEUTH YE CHIEUCH +0x9B64 0xD19C #HANGUL SYLLABLE THIEUTH YE KHIEUKH +0x9B65 0xD19D #HANGUL SYLLABLE THIEUTH YE THIEUTH +0x9B66 0xD19E #HANGUL SYLLABLE THIEUTH YE PHIEUPH +0x9B67 0xD19F #HANGUL SYLLABLE THIEUTH YE HIEUH +0x9B68 0xD186 #HANGUL SYLLABLE THIEUTH YE SSANGKIYEOK +0x9B69 0xD198 #HANGUL SYLLABLE THIEUTH YE SSANGSIOS +0x9B6A 0xD1F5 #HANGUL SYLLABLE THIEUTH OE KIYEOK +0x9B6B 0xD1F7 #HANGUL SYLLABLE THIEUTH OE KIYEOKSIOS +0x9B6C 0xD1F9 #HANGUL SYLLABLE THIEUTH OE NIEUNCIEUC +0x9B6D 0xD1FA #HANGUL SYLLABLE THIEUTH OE NIEUNHIEUH +0x9B6E 0xD1FB #HANGUL SYLLABLE THIEUTH OE TIKEUT +0x9B6F 0xD1FC #HANGUL SYLLABLE THIEUTH OE RIEUL +0x9B70 0xD1FD #HANGUL SYLLABLE THIEUTH OE RIEULKIYEOK +0x9B71 0xD1FE #HANGUL SYLLABLE THIEUTH OE RIEULMIEUM +0x9B72 0xD1FF #HANGUL SYLLABLE THIEUTH OE RIEULPIEUP +0x9B73 0xD200 #HANGUL SYLLABLE THIEUTH OE RIEULSIOS +0x9B74 0xD201 #HANGUL SYLLABLE THIEUTH OE RIEULTHIEUTH +0x9B75 0xD202 #HANGUL SYLLABLE THIEUTH OE RIEULPHIEUPH +0x9B76 0xD203 #HANGUL SYLLABLE THIEUTH OE RIEULHIEUH +0x9B77 0xD204 #HANGUL SYLLABLE THIEUTH OE MIEUM +0x9B78 0xD205 #HANGUL SYLLABLE THIEUTH OE PIEUP +0x9B79 0xD206 #HANGUL SYLLABLE THIEUTH OE PIEUPSIOS +0x9B7A 0xD20A #HANGUL SYLLABLE THIEUTH OE CIEUC +0x9B81 0xD20B #HANGUL SYLLABLE THIEUTH OE CHIEUCH +0x9B82 0xD20C #HANGUL SYLLABLE THIEUTH OE KHIEUKH +0x9B83 0xD20D #HANGUL SYLLABLE THIEUTH OE THIEUTH +0x9B84 0xD20E #HANGUL SYLLABLE THIEUTH OE PHIEUPH +0x9B85 0xD20F #HANGUL SYLLABLE THIEUTH OE HIEUH +0x9B86 0xD1F6 #HANGUL SYLLABLE THIEUTH OE SSANGKIYEOK +0x9B87 0xD208 #HANGUL SYLLABLE THIEUTH OE SSANGSIOS +0x9B88 0xD283 #HANGUL SYLLABLE THIEUTH WI KIYEOKSIOS +0x9B89 0xD285 #HANGUL SYLLABLE THIEUTH WI NIEUNCIEUC +0x9B8A 0xD286 #HANGUL SYLLABLE THIEUTH WI NIEUNHIEUH +0x9B8B 0xD287 #HANGUL SYLLABLE THIEUTH WI TIKEUT +0x9B8C 0xD289 #HANGUL SYLLABLE THIEUTH WI RIEULKIYEOK +0x9B8D 0xD28A #HANGUL SYLLABLE THIEUTH WI RIEULMIEUM +0x9B8E 0xD28B #HANGUL SYLLABLE THIEUTH WI RIEULPIEUP +0x9B8F 0xD28C #HANGUL SYLLABLE THIEUTH WI RIEULSIOS +0x9B90 0xD28D #HANGUL SYLLABLE THIEUTH WI RIEULTHIEUTH +0x9B91 0xD28E #HANGUL SYLLABLE THIEUTH WI RIEULPHIEUPH +0x9B92 0xD28F #HANGUL SYLLABLE THIEUTH WI RIEULHIEUH +0x9B93 0xD292 #HANGUL SYLLABLE THIEUTH WI PIEUPSIOS +0x9B94 0xD293 #HANGUL SYLLABLE THIEUTH WI SIOS +0x9B95 0xD296 #HANGUL SYLLABLE THIEUTH WI CIEUC +0x9B96 0xD297 #HANGUL SYLLABLE THIEUTH WI CHIEUCH +0x9B97 0xD298 #HANGUL SYLLABLE THIEUTH WI KHIEUKH +0x9B98 0xD299 #HANGUL SYLLABLE THIEUTH WI THIEUTH +0x9B99 0xD29A #HANGUL SYLLABLE THIEUTH WI PHIEUPH +0x9B9A 0xD29B #HANGUL SYLLABLE THIEUTH WI HIEUH +0x9B9B 0xD282 #HANGUL SYLLABLE THIEUTH WI SSANGKIYEOK +0x9B9C 0xD294 #HANGUL SYLLABLE THIEUTH WI SSANGSIOS +0x9B9D 0xD2D5 #HANGUL SYLLABLE THIEUTH YI KIYEOK +0x9B9E 0xD2D7 #HANGUL SYLLABLE THIEUTH YI KIYEOKSIOS +0x9B9F 0xD2D9 #HANGUL SYLLABLE THIEUTH YI NIEUNCIEUC +0x9BA0 0xD2DA #HANGUL SYLLABLE THIEUTH YI NIEUNHIEUH +0x9BA1 0xD2DB #HANGUL SYLLABLE THIEUTH YI TIKEUT +0x9BA2 0xD2DD #HANGUL SYLLABLE THIEUTH YI RIEULKIYEOK +0x9BA3 0xD2DE #HANGUL SYLLABLE THIEUTH YI RIEULMIEUM +0x9BA4 0xD2DF #HANGUL SYLLABLE THIEUTH YI RIEULPIEUP +0x9BA5 0xD2E0 #HANGUL SYLLABLE THIEUTH YI RIEULSIOS +0x9BA6 0xD2E1 #HANGUL SYLLABLE THIEUTH YI RIEULTHIEUTH +0x9BA7 0xD2E2 #HANGUL SYLLABLE THIEUTH YI RIEULPHIEUPH +0x9BA8 0xD2E3 #HANGUL SYLLABLE THIEUTH YI RIEULHIEUH +0x9BA9 0xD2E6 #HANGUL SYLLABLE THIEUTH YI PIEUPSIOS +0x9BAA 0xD2E7 #HANGUL SYLLABLE THIEUTH YI SIOS +0x9BAB 0xD2E9 #HANGUL SYLLABLE THIEUTH YI IEUNG +0x9BAC 0xD2EA #HANGUL SYLLABLE THIEUTH YI CIEUC +0x9BAD 0xD2EB #HANGUL SYLLABLE THIEUTH YI CHIEUCH +0x9BAE 0xD2EC #HANGUL SYLLABLE THIEUTH YI KHIEUKH +0x9BAF 0xD2ED #HANGUL SYLLABLE THIEUTH YI THIEUTH +0x9BB0 0xD2EE #HANGUL SYLLABLE THIEUTH YI PHIEUPH +0x9BB1 0xD2EF #HANGUL SYLLABLE THIEUTH YI HIEUH +0x9BB2 0xD2D6 #HANGUL SYLLABLE THIEUTH YI SSANGKIYEOK +0x9BB3 0xD2E8 #HANGUL SYLLABLE THIEUTH YI SSANGSIOS +0x9BB4 0xD1BD #HANGUL SYLLABLE THIEUTH WA KIYEOK +0x9BB5 0xD1BF #HANGUL SYLLABLE THIEUTH WA KIYEOKSIOS +0x9BB6 0xD1C1 #HANGUL SYLLABLE THIEUTH WA NIEUNCIEUC +0x9BB7 0xD1C2 #HANGUL SYLLABLE THIEUTH WA NIEUNHIEUH +0x9BB8 0xD1C3 #HANGUL SYLLABLE THIEUTH WA TIKEUT +0x9BB9 0xD1C4 #HANGUL SYLLABLE THIEUTH WA RIEUL +0x9BBA 0xD1C5 #HANGUL SYLLABLE THIEUTH WA RIEULKIYEOK +0x9BBB 0xD1C6 #HANGUL SYLLABLE THIEUTH WA RIEULMIEUM +0x9BBC 0xD1C7 #HANGUL SYLLABLE THIEUTH WA RIEULPIEUP +0x9BBD 0xD1C8 #HANGUL SYLLABLE THIEUTH WA RIEULSIOS +0x9BBE 0xD1C9 #HANGUL SYLLABLE THIEUTH WA RIEULTHIEUTH +0x9BBF 0xD1CA #HANGUL SYLLABLE THIEUTH WA RIEULPHIEUPH +0x9BC0 0xD1CB #HANGUL SYLLABLE THIEUTH WA RIEULHIEUH +0x9BC1 0xD1CC #HANGUL SYLLABLE THIEUTH WA MIEUM +0x9BC2 0xD1CD #HANGUL SYLLABLE THIEUTH WA PIEUP +0x9BC3 0xD1CE #HANGUL SYLLABLE THIEUTH WA PIEUPSIOS +0x9BC4 0xD1CF #HANGUL SYLLABLE THIEUTH WA SIOS +0x9BC5 0xD1D1 #HANGUL SYLLABLE THIEUTH WA IEUNG +0x9BC6 0xD1D2 #HANGUL SYLLABLE THIEUTH WA CIEUC +0x9BC7 0xD1D3 #HANGUL SYLLABLE THIEUTH WA CHIEUCH +0x9BC8 0xD1D4 #HANGUL SYLLABLE THIEUTH WA KHIEUKH +0x9BC9 0xD1D5 #HANGUL SYLLABLE THIEUTH WA THIEUTH +0x9BCA 0xD1D6 #HANGUL SYLLABLE THIEUTH WA PHIEUPH +0x9BCB 0xD1D7 #HANGUL SYLLABLE THIEUTH WA HIEUH +0x9BCC 0xD1BE #HANGUL SYLLABLE THIEUTH WA SSANGKIYEOK +0x9BCD 0xD1D0 #HANGUL SYLLABLE THIEUTH WA SSANGSIOS +0x9BCE 0xD249 #HANGUL SYLLABLE THIEUTH WEO KIYEOK +0x9BCF 0xD24B #HANGUL SYLLABLE THIEUTH WEO KIYEOKSIOS +0x9BD0 0xD24C #HANGUL SYLLABLE THIEUTH WEO NIEUN +0x9BD1 0xD24D #HANGUL SYLLABLE THIEUTH WEO NIEUNCIEUC +0x9BD2 0xD24E #HANGUL SYLLABLE THIEUTH WEO NIEUNHIEUH +0x9BD3 0xD24F #HANGUL SYLLABLE THIEUTH WEO TIKEUT +0x9BD4 0xD250 #HANGUL SYLLABLE THIEUTH WEO RIEUL +0x9BD5 0xD251 #HANGUL SYLLABLE THIEUTH WEO RIEULKIYEOK +0x9BD6 0xD252 #HANGUL SYLLABLE THIEUTH WEO RIEULMIEUM +0x9BD7 0xD253 #HANGUL SYLLABLE THIEUTH WEO RIEULPIEUP +0x9BD8 0xD254 #HANGUL SYLLABLE THIEUTH WEO RIEULSIOS +0x9BD9 0xD255 #HANGUL SYLLABLE THIEUTH WEO RIEULTHIEUTH +0x9BDA 0xD256 #HANGUL SYLLABLE THIEUTH WEO RIEULPHIEUPH +0x9BDB 0xD257 #HANGUL SYLLABLE THIEUTH WEO RIEULHIEUH +0x9BDC 0xD258 #HANGUL SYLLABLE THIEUTH WEO MIEUM +0x9BDD 0xD259 #HANGUL SYLLABLE THIEUTH WEO PIEUP +0x9BDE 0xD25A #HANGUL SYLLABLE THIEUTH WEO PIEUPSIOS +0x9BDF 0xD25B #HANGUL SYLLABLE THIEUTH WEO SIOS +0x9BE0 0xD25D #HANGUL SYLLABLE THIEUTH WEO IEUNG +0x9BE1 0xD25E #HANGUL SYLLABLE THIEUTH WEO CIEUC +0x9BE2 0xD25F #HANGUL SYLLABLE THIEUTH WEO CHIEUCH +0x9BE3 0xD260 #HANGUL SYLLABLE THIEUTH WEO KHIEUKH +0x9BE4 0xD261 #HANGUL SYLLABLE THIEUTH WEO THIEUTH +0x9BE5 0xD262 #HANGUL SYLLABLE THIEUTH WEO PHIEUPH +0x9BE6 0xD263 #HANGUL SYLLABLE THIEUTH WEO HIEUH +0x9BE7 0xD24A #HANGUL SYLLABLE THIEUTH WEO SSANGKIYEOK +0x9BE8 0xD1D9 #HANGUL SYLLABLE THIEUTH WAE KIYEOK +0x9BE9 0xD1DB #HANGUL SYLLABLE THIEUTH WAE KIYEOKSIOS +0x9BEA 0xD1DC #HANGUL SYLLABLE THIEUTH WAE NIEUN +0x9BEB 0xD1DD #HANGUL SYLLABLE THIEUTH WAE NIEUNCIEUC +0x9BEC 0xD1DE #HANGUL SYLLABLE THIEUTH WAE NIEUNHIEUH +0x9BED 0xD1DF #HANGUL SYLLABLE THIEUTH WAE TIKEUT +0x9BEE 0xD1E0 #HANGUL SYLLABLE THIEUTH WAE RIEUL +0x9BEF 0xD1E1 #HANGUL SYLLABLE THIEUTH WAE RIEULKIYEOK +0x9BF0 0xD1E2 #HANGUL SYLLABLE THIEUTH WAE RIEULMIEUM +0x9BF1 0xD1E3 #HANGUL SYLLABLE THIEUTH WAE RIEULPIEUP +0x9BF2 0xD1E4 #HANGUL SYLLABLE THIEUTH WAE RIEULSIOS +0x9BF3 0xD1E5 #HANGUL SYLLABLE THIEUTH WAE RIEULTHIEUTH +0x9BF4 0xD1E6 #HANGUL SYLLABLE THIEUTH WAE RIEULPHIEUPH +0x9BF5 0xD1E7 #HANGUL SYLLABLE THIEUTH WAE RIEULHIEUH +0x9BF6 0xD1E8 #HANGUL SYLLABLE THIEUTH WAE MIEUM +0x9BF7 0xD1E9 #HANGUL SYLLABLE THIEUTH WAE PIEUP +0x9BF8 0xD1EA #HANGUL SYLLABLE THIEUTH WAE PIEUPSIOS +0x9BF9 0xD1EB #HANGUL SYLLABLE THIEUTH WAE SIOS +0x9BFA 0xD1ED #HANGUL SYLLABLE THIEUTH WAE IEUNG +0x9BFB 0xD1EE #HANGUL SYLLABLE THIEUTH WAE CIEUC +0x9BFC 0xD1EF #HANGUL SYLLABLE THIEUTH WAE CHIEUCH +0x9BFD 0xD1F0 #HANGUL SYLLABLE THIEUTH WAE KHIEUKH +0x9BFE 0xD1F1 #HANGUL SYLLABLE THIEUTH WAE THIEUTH +0x9C41 0xD1F2 #HANGUL SYLLABLE THIEUTH WAE PHIEUPH +0x9C42 0xD1F3 #HANGUL SYLLABLE THIEUTH WAE HIEUH +0x9C43 0xD1DA #HANGUL SYLLABLE THIEUTH WAE SSANGKIYEOK +0x9C44 0xD1EC #HANGUL SYLLABLE THIEUTH WAE SSANGSIOS +0x9C45 0xD265 #HANGUL SYLLABLE THIEUTH WE KIYEOK +0x9C46 0xD267 #HANGUL SYLLABLE THIEUTH WE KIYEOKSIOS +0x9C47 0xD269 #HANGUL SYLLABLE THIEUTH WE NIEUNCIEUC +0x9C48 0xD26A #HANGUL SYLLABLE THIEUTH WE NIEUNHIEUH +0x9C49 0xD26B #HANGUL SYLLABLE THIEUTH WE TIKEUT +0x9C4A 0xD26C #HANGUL SYLLABLE THIEUTH WE RIEUL +0x9C4B 0xD26D #HANGUL SYLLABLE THIEUTH WE RIEULKIYEOK +0x9C4C 0xD26E #HANGUL SYLLABLE THIEUTH WE RIEULMIEUM +0x9C4D 0xD26F #HANGUL SYLLABLE THIEUTH WE RIEULPIEUP +0x9C4E 0xD270 #HANGUL SYLLABLE THIEUTH WE RIEULSIOS +0x9C4F 0xD271 #HANGUL SYLLABLE THIEUTH WE RIEULTHIEUTH +0x9C50 0xD272 #HANGUL SYLLABLE THIEUTH WE RIEULPHIEUPH +0x9C51 0xD273 #HANGUL SYLLABLE THIEUTH WE RIEULHIEUH +0x9C52 0xD274 #HANGUL SYLLABLE THIEUTH WE MIEUM +0x9C53 0xD275 #HANGUL SYLLABLE THIEUTH WE PIEUP +0x9C54 0xD276 #HANGUL SYLLABLE THIEUTH WE PIEUPSIOS +0x9C55 0xD277 #HANGUL SYLLABLE THIEUTH WE SIOS +0x9C56 0xD279 #HANGUL SYLLABLE THIEUTH WE IEUNG +0x9C57 0xD27A #HANGUL SYLLABLE THIEUTH WE CIEUC +0x9C58 0xD27B #HANGUL SYLLABLE THIEUTH WE CHIEUCH +0x9C59 0xD27C #HANGUL SYLLABLE THIEUTH WE KHIEUKH +0x9C5A 0xD27D #HANGUL SYLLABLE THIEUTH WE THIEUTH +0x9C61 0xD27E #HANGUL SYLLABLE THIEUTH WE PHIEUPH +0x9C62 0xD27F #HANGUL SYLLABLE THIEUTH WE HIEUH +0x9C63 0xD266 #HANGUL SYLLABLE THIEUTH WE SSANGKIYEOK +0x9C64 0xD30F #HANGUL SYLLABLE PHIEUPH A KIYEOKSIOS +0x9C65 0xD311 #HANGUL SYLLABLE PHIEUPH A NIEUNCIEUC +0x9C66 0xD312 #HANGUL SYLLABLE PHIEUPH A NIEUNHIEUH +0x9C67 0xD313 #HANGUL SYLLABLE PHIEUPH A TIKEUT +0x9C68 0xD315 #HANGUL SYLLABLE PHIEUPH A RIEULKIYEOK +0x9C69 0xD317 #HANGUL SYLLABLE PHIEUPH A RIEULPIEUP +0x9C6A 0xD318 #HANGUL SYLLABLE PHIEUPH A RIEULSIOS +0x9C6B 0xD319 #HANGUL SYLLABLE PHIEUPH A RIEULTHIEUTH +0x9C6C 0xD31A #HANGUL SYLLABLE PHIEUPH A RIEULPHIEUPH +0x9C6D 0xD31B #HANGUL SYLLABLE PHIEUPH A RIEULHIEUH +0x9C6E 0xD31E #HANGUL SYLLABLE PHIEUPH A PIEUPSIOS +0x9C6F 0xD322 #HANGUL SYLLABLE PHIEUPH A CIEUC +0x9C70 0xD323 #HANGUL SYLLABLE PHIEUPH A CHIEUCH +0x9C71 0xD324 #HANGUL SYLLABLE PHIEUPH A KHIEUKH +0x9C72 0xD326 #HANGUL SYLLABLE PHIEUPH A PHIEUPH +0x9C73 0xD327 #HANGUL SYLLABLE PHIEUPH A HIEUH +0x9C74 0xD347 #HANGUL SYLLABLE PHIEUPH YA KIYEOKSIOS +0x9C75 0xD348 #HANGUL SYLLABLE PHIEUPH YA NIEUN +0x9C76 0xD349 #HANGUL SYLLABLE PHIEUPH YA NIEUNCIEUC +0x9C77 0xD34A #HANGUL SYLLABLE PHIEUPH YA NIEUNHIEUH +0x9C78 0xD34B #HANGUL SYLLABLE PHIEUPH YA TIKEUT +0x9C79 0xD34C #HANGUL SYLLABLE PHIEUPH YA RIEUL +0x9C7A 0xD34D #HANGUL SYLLABLE PHIEUPH YA RIEULKIYEOK +0x9C81 0xD34E #HANGUL SYLLABLE PHIEUPH YA RIEULMIEUM +0x9C82 0xD34F #HANGUL SYLLABLE PHIEUPH YA RIEULPIEUP +0x9C83 0xD350 #HANGUL SYLLABLE PHIEUPH YA RIEULSIOS +0x9C84 0xD351 #HANGUL SYLLABLE PHIEUPH YA RIEULTHIEUTH +0x9C85 0xD352 #HANGUL SYLLABLE PHIEUPH YA RIEULPHIEUPH +0x9C86 0xD353 #HANGUL SYLLABLE PHIEUPH YA RIEULHIEUH +0x9C87 0xD354 #HANGUL SYLLABLE PHIEUPH YA MIEUM +0x9C88 0xD355 #HANGUL SYLLABLE PHIEUPH YA PIEUP +0x9C89 0xD356 #HANGUL SYLLABLE PHIEUPH YA PIEUPSIOS +0x9C8A 0xD357 #HANGUL SYLLABLE PHIEUPH YA SIOS +0x9C8B 0xD359 #HANGUL SYLLABLE PHIEUPH YA IEUNG +0x9C8C 0xD35A #HANGUL SYLLABLE PHIEUPH YA CIEUC +0x9C8D 0xD35B #HANGUL SYLLABLE PHIEUPH YA CHIEUCH +0x9C8E 0xD35C #HANGUL SYLLABLE PHIEUPH YA KHIEUKH +0x9C8F 0xD35D #HANGUL SYLLABLE PHIEUPH YA THIEUTH +0x9C90 0xD35E #HANGUL SYLLABLE PHIEUPH YA PHIEUPH +0x9C91 0xD35F #HANGUL SYLLABLE PHIEUPH YA HIEUH +0x9C92 0xD346 #HANGUL SYLLABLE PHIEUPH YA SSANGKIYEOK +0x9C93 0xD358 #HANGUL SYLLABLE PHIEUPH YA SSANGSIOS +0x9C94 0xD37F #HANGUL SYLLABLE PHIEUPH EO KIYEOKSIOS +0x9C95 0xD381 #HANGUL SYLLABLE PHIEUPH EO NIEUNCIEUC +0x9C96 0xD382 #HANGUL SYLLABLE PHIEUPH EO NIEUNHIEUH +0x9C97 0xD383 #HANGUL SYLLABLE PHIEUPH EO TIKEUT +0x9C98 0xD385 #HANGUL SYLLABLE PHIEUPH EO RIEULKIYEOK +0x9C99 0xD386 #HANGUL SYLLABLE PHIEUPH EO RIEULMIEUM +0x9C9A 0xD387 #HANGUL SYLLABLE PHIEUPH EO RIEULPIEUP +0x9C9B 0xD388 #HANGUL SYLLABLE PHIEUPH EO RIEULSIOS +0x9C9C 0xD389 #HANGUL SYLLABLE PHIEUPH EO RIEULTHIEUTH +0x9C9D 0xD38A #HANGUL SYLLABLE PHIEUPH EO RIEULPHIEUPH +0x9C9E 0xD38B #HANGUL SYLLABLE PHIEUPH EO RIEULHIEUH +0x9C9F 0xD38E #HANGUL SYLLABLE PHIEUPH EO PIEUPSIOS +0x9CA0 0xD392 #HANGUL SYLLABLE PHIEUPH EO CIEUC +0x9CA1 0xD393 #HANGUL SYLLABLE PHIEUPH EO CHIEUCH +0x9CA2 0xD394 #HANGUL SYLLABLE PHIEUPH EO KHIEUKH +0x9CA3 0xD395 #HANGUL SYLLABLE PHIEUPH EO THIEUTH +0x9CA4 0xD396 #HANGUL SYLLABLE PHIEUPH EO PHIEUPH +0x9CA5 0xD397 #HANGUL SYLLABLE PHIEUPH EO HIEUH +0x9CA6 0xD37E #HANGUL SYLLABLE PHIEUPH EO SSANGKIYEOK +0x9CA7 0xD3B7 #HANGUL SYLLABLE PHIEUPH YEO KIYEOKSIOS +0x9CA8 0xD3B9 #HANGUL SYLLABLE PHIEUPH YEO NIEUNCIEUC +0x9CA9 0xD3BA #HANGUL SYLLABLE PHIEUPH YEO NIEUNHIEUH +0x9CAA 0xD3BB #HANGUL SYLLABLE PHIEUPH YEO TIKEUT +0x9CAB 0xD3BD #HANGUL SYLLABLE PHIEUPH YEO RIEULKIYEOK +0x9CAC 0xD3BE #HANGUL SYLLABLE PHIEUPH YEO RIEULMIEUM +0x9CAD 0xD3BF #HANGUL SYLLABLE PHIEUPH YEO RIEULPIEUP +0x9CAE 0xD3C0 #HANGUL SYLLABLE PHIEUPH YEO RIEULSIOS +0x9CAF 0xD3C1 #HANGUL SYLLABLE PHIEUPH YEO RIEULTHIEUTH +0x9CB0 0xD3C2 #HANGUL SYLLABLE PHIEUPH YEO RIEULPHIEUPH +0x9CB1 0xD3C3 #HANGUL SYLLABLE PHIEUPH YEO RIEULHIEUH +0x9CB2 0xD3C6 #HANGUL SYLLABLE PHIEUPH YEO PIEUPSIOS +0x9CB3 0xD3CA #HANGUL SYLLABLE PHIEUPH YEO CIEUC +0x9CB4 0xD3CB #HANGUL SYLLABLE PHIEUPH YEO CHIEUCH +0x9CB5 0xD3CC #HANGUL SYLLABLE PHIEUPH YEO KHIEUKH +0x9CB6 0xD3CD #HANGUL SYLLABLE PHIEUPH YEO THIEUTH +0x9CB7 0xD3CE #HANGUL SYLLABLE PHIEUPH YEO PHIEUPH +0x9CB8 0xD3CF #HANGUL SYLLABLE PHIEUPH YEO HIEUH +0x9CB9 0xD3B6 #HANGUL SYLLABLE PHIEUPH YEO SSANGKIYEOK +0x9CBA 0xD3EF #HANGUL SYLLABLE PHIEUPH O KIYEOKSIOS +0x9CBB 0xD3F1 #HANGUL SYLLABLE PHIEUPH O NIEUNCIEUC +0x9CBC 0xD3F2 #HANGUL SYLLABLE PHIEUPH O NIEUNHIEUH +0x9CBD 0xD3F3 #HANGUL SYLLABLE PHIEUPH O TIKEUT +0x9CBE 0xD3F5 #HANGUL SYLLABLE PHIEUPH O RIEULKIYEOK +0x9CBF 0xD3F6 #HANGUL SYLLABLE PHIEUPH O RIEULMIEUM +0x9CC0 0xD3F7 #HANGUL SYLLABLE PHIEUPH O RIEULPIEUP +0x9CC1 0xD3F8 #HANGUL SYLLABLE PHIEUPH O RIEULSIOS +0x9CC2 0xD3F9 #HANGUL SYLLABLE PHIEUPH O RIEULTHIEUTH +0x9CC3 0xD3FA #HANGUL SYLLABLE PHIEUPH O RIEULPHIEUPH +0x9CC4 0xD3FB #HANGUL SYLLABLE PHIEUPH O RIEULHIEUH +0x9CC5 0xD3FE #HANGUL SYLLABLE PHIEUPH O PIEUPSIOS +0x9CC6 0xD402 #HANGUL SYLLABLE PHIEUPH O CIEUC +0x9CC7 0xD403 #HANGUL SYLLABLE PHIEUPH O CHIEUCH +0x9CC8 0xD404 #HANGUL SYLLABLE PHIEUPH O KHIEUKH +0x9CC9 0xD405 #HANGUL SYLLABLE PHIEUPH O THIEUTH +0x9CCA 0xD406 #HANGUL SYLLABLE PHIEUPH O PHIEUPH +0x9CCB 0xD407 #HANGUL SYLLABLE PHIEUPH O HIEUH +0x9CCC 0xD3EE #HANGUL SYLLABLE PHIEUPH O SSANGKIYEOK +0x9CCD 0xD400 #HANGUL SYLLABLE PHIEUPH O SSANGSIOS +0x9CCE 0xD45D #HANGUL SYLLABLE PHIEUPH YO KIYEOK +0x9CCF 0xD45F #HANGUL SYLLABLE PHIEUPH YO KIYEOKSIOS +0x9CD0 0xD461 #HANGUL SYLLABLE PHIEUPH YO NIEUNCIEUC +0x9CD1 0xD462 #HANGUL SYLLABLE PHIEUPH YO NIEUNHIEUH +0x9CD2 0xD463 #HANGUL SYLLABLE PHIEUPH YO TIKEUT +0x9CD3 0xD465 #HANGUL SYLLABLE PHIEUPH YO RIEULKIYEOK +0x9CD4 0xD466 #HANGUL SYLLABLE PHIEUPH YO RIEULMIEUM +0x9CD5 0xD467 #HANGUL SYLLABLE PHIEUPH YO RIEULPIEUP +0x9CD6 0xD468 #HANGUL SYLLABLE PHIEUPH YO RIEULSIOS +0x9CD7 0xD469 #HANGUL SYLLABLE PHIEUPH YO RIEULTHIEUTH +0x9CD8 0xD46A #HANGUL SYLLABLE PHIEUPH YO RIEULPHIEUPH +0x9CD9 0xD46B #HANGUL SYLLABLE PHIEUPH YO RIEULHIEUH +0x9CDA 0xD46C #HANGUL SYLLABLE PHIEUPH YO MIEUM +0x9CDB 0xD46E #HANGUL SYLLABLE PHIEUPH YO PIEUPSIOS +0x9CDC 0xD471 #HANGUL SYLLABLE PHIEUPH YO IEUNG +0x9CDD 0xD472 #HANGUL SYLLABLE PHIEUPH YO CIEUC +0x9CDE 0xD473 #HANGUL SYLLABLE PHIEUPH YO CHIEUCH +0x9CDF 0xD474 #HANGUL SYLLABLE PHIEUPH YO KHIEUKH +0x9CE0 0xD475 #HANGUL SYLLABLE PHIEUPH YO THIEUTH +0x9CE1 0xD476 #HANGUL SYLLABLE PHIEUPH YO PHIEUPH +0x9CE2 0xD477 #HANGUL SYLLABLE PHIEUPH YO HIEUH +0x9CE3 0xD45E #HANGUL SYLLABLE PHIEUPH YO SSANGKIYEOK +0x9CE4 0xD470 #HANGUL SYLLABLE PHIEUPH YO SSANGSIOS +0x9CE5 0xD47B #HANGUL SYLLABLE PHIEUPH U KIYEOKSIOS +0x9CE6 0xD47D #HANGUL SYLLABLE PHIEUPH U NIEUNCIEUC +0x9CE7 0xD47E #HANGUL SYLLABLE PHIEUPH U NIEUNHIEUH +0x9CE8 0xD481 #HANGUL SYLLABLE PHIEUPH U RIEULKIYEOK +0x9CE9 0xD483 #HANGUL SYLLABLE PHIEUPH U RIEULPIEUP +0x9CEA 0xD484 #HANGUL SYLLABLE PHIEUPH U RIEULSIOS +0x9CEB 0xD485 #HANGUL SYLLABLE PHIEUPH U RIEULTHIEUTH +0x9CEC 0xD486 #HANGUL SYLLABLE PHIEUPH U RIEULPHIEUPH +0x9CED 0xD487 #HANGUL SYLLABLE PHIEUPH U RIEULHIEUH +0x9CEE 0xD48A #HANGUL SYLLABLE PHIEUPH U PIEUPSIOS +0x9CEF 0xD48E #HANGUL SYLLABLE PHIEUPH U CIEUC +0x9CF0 0xD48F #HANGUL SYLLABLE PHIEUPH U CHIEUCH +0x9CF1 0xD490 #HANGUL SYLLABLE PHIEUPH U KHIEUKH +0x9CF2 0xD491 #HANGUL SYLLABLE PHIEUPH U THIEUTH +0x9CF3 0xD492 #HANGUL SYLLABLE PHIEUPH U PHIEUPH +0x9CF4 0xD493 #HANGUL SYLLABLE PHIEUPH U HIEUH +0x9CF5 0xD47A #HANGUL SYLLABLE PHIEUPH U SSANGKIYEOK +0x9CF6 0xD48C #HANGUL SYLLABLE PHIEUPH U SSANGSIOS +0x9CF7 0xD4E9 #HANGUL SYLLABLE PHIEUPH YU KIYEOK +0x9CF8 0xD4EB #HANGUL SYLLABLE PHIEUPH YU KIYEOKSIOS +0x9CF9 0xD4ED #HANGUL SYLLABLE PHIEUPH YU NIEUNCIEUC +0x9CFA 0xD4EE #HANGUL SYLLABLE PHIEUPH YU NIEUNHIEUH +0x9CFB 0xD4EF #HANGUL SYLLABLE PHIEUPH YU TIKEUT +0x9CFC 0xD4F1 #HANGUL SYLLABLE PHIEUPH YU RIEULKIYEOK +0x9CFD 0xD4F2 #HANGUL SYLLABLE PHIEUPH YU RIEULMIEUM +0x9CFE 0xD4F3 #HANGUL SYLLABLE PHIEUPH YU RIEULPIEUP +0x9D41 0xD4F4 #HANGUL SYLLABLE PHIEUPH YU RIEULSIOS +0x9D42 0xD4F5 #HANGUL SYLLABLE PHIEUPH YU RIEULTHIEUTH +0x9D43 0xD4F6 #HANGUL SYLLABLE PHIEUPH YU RIEULPHIEUPH +0x9D44 0xD4F7 #HANGUL SYLLABLE PHIEUPH YU RIEULHIEUH +0x9D45 0xD4F9 #HANGUL SYLLABLE PHIEUPH YU PIEUP +0x9D46 0xD4FA #HANGUL SYLLABLE PHIEUPH YU PIEUPSIOS +0x9D47 0xD4FE #HANGUL SYLLABLE PHIEUPH YU CIEUC +0x9D48 0xD4FF #HANGUL SYLLABLE PHIEUPH YU CHIEUCH +0x9D49 0xD500 #HANGUL SYLLABLE PHIEUPH YU KHIEUKH +0x9D4A 0xD501 #HANGUL SYLLABLE PHIEUPH YU THIEUTH +0x9D4B 0xD502 #HANGUL SYLLABLE PHIEUPH YU PHIEUPH +0x9D4C 0xD503 #HANGUL SYLLABLE PHIEUPH YU HIEUH +0x9D4D 0xD4EA #HANGUL SYLLABLE PHIEUPH YU SSANGKIYEOK +0x9D4E 0xD4FC #HANGUL SYLLABLE PHIEUPH YU SSANGSIOS +0x9D4F 0xD505 #HANGUL SYLLABLE PHIEUPH EU KIYEOK +0x9D50 0xD507 #HANGUL SYLLABLE PHIEUPH EU KIYEOKSIOS +0x9D51 0xD509 #HANGUL SYLLABLE PHIEUPH EU NIEUNCIEUC +0x9D52 0xD50A #HANGUL SYLLABLE PHIEUPH EU NIEUNHIEUH +0x9D53 0xD50B #HANGUL SYLLABLE PHIEUPH EU TIKEUT +0x9D54 0xD50D #HANGUL SYLLABLE PHIEUPH EU RIEULKIYEOK +0x9D55 0xD50E #HANGUL SYLLABLE PHIEUPH EU RIEULMIEUM +0x9D56 0xD50F #HANGUL SYLLABLE PHIEUPH EU RIEULPIEUP +0x9D57 0xD510 #HANGUL SYLLABLE PHIEUPH EU RIEULSIOS +0x9D58 0xD511 #HANGUL SYLLABLE PHIEUPH EU RIEULTHIEUTH +0x9D59 0xD512 #HANGUL SYLLABLE PHIEUPH EU RIEULPHIEUPH +0x9D5A 0xD513 #HANGUL SYLLABLE PHIEUPH EU RIEULHIEUH +0x9D61 0xD516 #HANGUL SYLLABLE PHIEUPH EU PIEUPSIOS +0x9D62 0xD51A #HANGUL SYLLABLE PHIEUPH EU CIEUC +0x9D63 0xD51B #HANGUL SYLLABLE PHIEUPH EU CHIEUCH +0x9D64 0xD51C #HANGUL SYLLABLE PHIEUPH EU KHIEUKH +0x9D65 0xD51D #HANGUL SYLLABLE PHIEUPH EU THIEUTH +0x9D66 0xD51E #HANGUL SYLLABLE PHIEUPH EU PHIEUPH +0x9D67 0xD51F #HANGUL SYLLABLE PHIEUPH EU HIEUH +0x9D68 0xD506 #HANGUL SYLLABLE PHIEUPH EU SSANGKIYEOK +0x9D69 0xD518 #HANGUL SYLLABLE PHIEUPH EU SSANGSIOS +0x9D6A 0xD53F #HANGUL SYLLABLE PHIEUPH I KIYEOKSIOS +0x9D6B 0xD541 #HANGUL SYLLABLE PHIEUPH I NIEUNCIEUC +0x9D6C 0xD542 #HANGUL SYLLABLE PHIEUPH I NIEUNHIEUH +0x9D6D 0xD543 #HANGUL SYLLABLE PHIEUPH I TIKEUT +0x9D6E 0xD545 #HANGUL SYLLABLE PHIEUPH I RIEULKIYEOK +0x9D6F 0xD546 #HANGUL SYLLABLE PHIEUPH I RIEULMIEUM +0x9D70 0xD547 #HANGUL SYLLABLE PHIEUPH I RIEULPIEUP +0x9D71 0xD548 #HANGUL SYLLABLE PHIEUPH I RIEULSIOS +0x9D72 0xD549 #HANGUL SYLLABLE PHIEUPH I RIEULTHIEUTH +0x9D73 0xD54A #HANGUL SYLLABLE PHIEUPH I RIEULPHIEUPH +0x9D74 0xD54B #HANGUL SYLLABLE PHIEUPH I RIEULHIEUH +0x9D75 0xD54E #HANGUL SYLLABLE PHIEUPH I PIEUPSIOS +0x9D76 0xD552 #HANGUL SYLLABLE PHIEUPH I CIEUC +0x9D77 0xD553 #HANGUL SYLLABLE PHIEUPH I CHIEUCH +0x9D78 0xD554 #HANGUL SYLLABLE PHIEUPH I KHIEUKH +0x9D79 0xD555 #HANGUL SYLLABLE PHIEUPH I THIEUTH +0x9D7A 0xD556 #HANGUL SYLLABLE PHIEUPH I PHIEUPH +0x9D81 0xD557 #HANGUL SYLLABLE PHIEUPH I HIEUH +0x9D82 0xD53E #HANGUL SYLLABLE PHIEUPH I SSANGKIYEOK +0x9D83 0xD550 #HANGUL SYLLABLE PHIEUPH I SSANGSIOS +0x9D84 0xD32B #HANGUL SYLLABLE PHIEUPH AE KIYEOKSIOS +0x9D85 0xD32D #HANGUL SYLLABLE PHIEUPH AE NIEUNCIEUC +0x9D86 0xD32E #HANGUL SYLLABLE PHIEUPH AE NIEUNHIEUH +0x9D87 0xD32F #HANGUL SYLLABLE PHIEUPH AE TIKEUT +0x9D88 0xD331 #HANGUL SYLLABLE PHIEUPH AE RIEULKIYEOK +0x9D89 0xD332 #HANGUL SYLLABLE PHIEUPH AE RIEULMIEUM +0x9D8A 0xD333 #HANGUL SYLLABLE PHIEUPH AE RIEULPIEUP +0x9D8B 0xD334 #HANGUL SYLLABLE PHIEUPH AE RIEULSIOS +0x9D8C 0xD335 #HANGUL SYLLABLE PHIEUPH AE RIEULTHIEUTH +0x9D8D 0xD336 #HANGUL SYLLABLE PHIEUPH AE RIEULPHIEUPH +0x9D8E 0xD337 #HANGUL SYLLABLE PHIEUPH AE RIEULHIEUH +0x9D8F 0xD33A #HANGUL SYLLABLE PHIEUPH AE PIEUPSIOS +0x9D90 0xD33E #HANGUL SYLLABLE PHIEUPH AE CIEUC +0x9D91 0xD33F #HANGUL SYLLABLE PHIEUPH AE CHIEUCH +0x9D92 0xD340 #HANGUL SYLLABLE PHIEUPH AE KHIEUKH +0x9D93 0xD341 #HANGUL SYLLABLE PHIEUPH AE THIEUTH +0x9D94 0xD342 #HANGUL SYLLABLE PHIEUPH AE PHIEUPH +0x9D95 0xD343 #HANGUL SYLLABLE PHIEUPH AE HIEUH +0x9D96 0xD32A #HANGUL SYLLABLE PHIEUPH AE SSANGKIYEOK +0x9D97 0xD361 #HANGUL SYLLABLE PHIEUPH YAE KIYEOK +0x9D98 0xD363 #HANGUL SYLLABLE PHIEUPH YAE KIYEOKSIOS +0x9D99 0xD364 #HANGUL SYLLABLE PHIEUPH YAE NIEUN +0x9D9A 0xD365 #HANGUL SYLLABLE PHIEUPH YAE NIEUNCIEUC +0x9D9B 0xD366 #HANGUL SYLLABLE PHIEUPH YAE NIEUNHIEUH +0x9D9C 0xD367 #HANGUL SYLLABLE PHIEUPH YAE TIKEUT +0x9D9D 0xD368 #HANGUL SYLLABLE PHIEUPH YAE RIEUL +0x9D9E 0xD369 #HANGUL SYLLABLE PHIEUPH YAE RIEULKIYEOK +0x9D9F 0xD36A #HANGUL SYLLABLE PHIEUPH YAE RIEULMIEUM +0x9DA0 0xD36B #HANGUL SYLLABLE PHIEUPH YAE RIEULPIEUP +0x9DA1 0xD36C #HANGUL SYLLABLE PHIEUPH YAE RIEULSIOS +0x9DA2 0xD36D #HANGUL SYLLABLE PHIEUPH YAE RIEULTHIEUTH +0x9DA3 0xD36E #HANGUL SYLLABLE PHIEUPH YAE RIEULPHIEUPH +0x9DA4 0xD36F #HANGUL SYLLABLE PHIEUPH YAE RIEULHIEUH +0x9DA5 0xD370 #HANGUL SYLLABLE PHIEUPH YAE MIEUM +0x9DA6 0xD371 #HANGUL SYLLABLE PHIEUPH YAE PIEUP +0x9DA7 0xD372 #HANGUL SYLLABLE PHIEUPH YAE PIEUPSIOS +0x9DA8 0xD373 #HANGUL SYLLABLE PHIEUPH YAE SIOS +0x9DA9 0xD375 #HANGUL SYLLABLE PHIEUPH YAE IEUNG +0x9DAA 0xD376 #HANGUL SYLLABLE PHIEUPH YAE CIEUC +0x9DAB 0xD377 #HANGUL SYLLABLE PHIEUPH YAE CHIEUCH +0x9DAC 0xD378 #HANGUL SYLLABLE PHIEUPH YAE KHIEUKH +0x9DAD 0xD379 #HANGUL SYLLABLE PHIEUPH YAE THIEUTH +0x9DAE 0xD37A #HANGUL SYLLABLE PHIEUPH YAE PHIEUPH +0x9DAF 0xD37B #HANGUL SYLLABLE PHIEUPH YAE HIEUH +0x9DB0 0xD362 #HANGUL SYLLABLE PHIEUPH YAE SSANGKIYEOK +0x9DB1 0xD374 #HANGUL SYLLABLE PHIEUPH YAE SSANGSIOS +0x9DB2 0xD39B #HANGUL SYLLABLE PHIEUPH E KIYEOKSIOS +0x9DB3 0xD39D #HANGUL SYLLABLE PHIEUPH E NIEUNCIEUC +0x9DB4 0xD39E #HANGUL SYLLABLE PHIEUPH E NIEUNHIEUH +0x9DB5 0xD39F #HANGUL SYLLABLE PHIEUPH E TIKEUT +0x9DB6 0xD3A1 #HANGUL SYLLABLE PHIEUPH E RIEULKIYEOK +0x9DB7 0xD3A2 #HANGUL SYLLABLE PHIEUPH E RIEULMIEUM +0x9DB8 0xD3A3 #HANGUL SYLLABLE PHIEUPH E RIEULPIEUP +0x9DB9 0xD3A4 #HANGUL SYLLABLE PHIEUPH E RIEULSIOS +0x9DBA 0xD3A5 #HANGUL SYLLABLE PHIEUPH E RIEULTHIEUTH +0x9DBB 0xD3A6 #HANGUL SYLLABLE PHIEUPH E RIEULPHIEUPH +0x9DBC 0xD3A7 #HANGUL SYLLABLE PHIEUPH E RIEULHIEUH +0x9DBD 0xD3AA #HANGUL SYLLABLE PHIEUPH E PIEUPSIOS +0x9DBE 0xD3AE #HANGUL SYLLABLE PHIEUPH E CIEUC +0x9DBF 0xD3AF #HANGUL SYLLABLE PHIEUPH E CHIEUCH +0x9DC0 0xD3B0 #HANGUL SYLLABLE PHIEUPH E KHIEUKH +0x9DC1 0xD3B1 #HANGUL SYLLABLE PHIEUPH E THIEUTH +0x9DC2 0xD3B3 #HANGUL SYLLABLE PHIEUPH E HIEUH +0x9DC3 0xD39A #HANGUL SYLLABLE PHIEUPH E SSANGKIYEOK +0x9DC4 0xD3AC #HANGUL SYLLABLE PHIEUPH E SSANGSIOS +0x9DC5 0xD3D1 #HANGUL SYLLABLE PHIEUPH YE KIYEOK +0x9DC6 0xD3D3 #HANGUL SYLLABLE PHIEUPH YE KIYEOKSIOS +0x9DC7 0xD3D5 #HANGUL SYLLABLE PHIEUPH YE NIEUNCIEUC +0x9DC8 0xD3D6 #HANGUL SYLLABLE PHIEUPH YE NIEUNHIEUH +0x9DC9 0xD3D7 #HANGUL SYLLABLE PHIEUPH YE TIKEUT +0x9DCA 0xD3D9 #HANGUL SYLLABLE PHIEUPH YE RIEULKIYEOK +0x9DCB 0xD3DA #HANGUL SYLLABLE PHIEUPH YE RIEULMIEUM +0x9DCC 0xD3DB #HANGUL SYLLABLE PHIEUPH YE RIEULPIEUP +0x9DCD 0xD3DC #HANGUL SYLLABLE PHIEUPH YE RIEULSIOS +0x9DCE 0xD3DD #HANGUL SYLLABLE PHIEUPH YE RIEULTHIEUTH +0x9DCF 0xD3DE #HANGUL SYLLABLE PHIEUPH YE RIEULPHIEUPH +0x9DD0 0xD3DF #HANGUL SYLLABLE PHIEUPH YE RIEULHIEUH +0x9DD1 0xD3E0 #HANGUL SYLLABLE PHIEUPH YE MIEUM +0x9DD2 0xD3E2 #HANGUL SYLLABLE PHIEUPH YE PIEUPSIOS +0x9DD3 0xD3E5 #HANGUL SYLLABLE PHIEUPH YE IEUNG +0x9DD4 0xD3E6 #HANGUL SYLLABLE PHIEUPH YE CIEUC +0x9DD5 0xD3E7 #HANGUL SYLLABLE PHIEUPH YE CHIEUCH +0x9DD6 0xD3E8 #HANGUL SYLLABLE PHIEUPH YE KHIEUKH +0x9DD7 0xD3E9 #HANGUL SYLLABLE PHIEUPH YE THIEUTH +0x9DD8 0xD3EA #HANGUL SYLLABLE PHIEUPH YE PHIEUPH +0x9DD9 0xD3EB #HANGUL SYLLABLE PHIEUPH YE HIEUH +0x9DDA 0xD3D2 #HANGUL SYLLABLE PHIEUPH YE SSANGKIYEOK +0x9DDB 0xD3E4 #HANGUL SYLLABLE PHIEUPH YE SSANGSIOS +0x9DDC 0xD441 #HANGUL SYLLABLE PHIEUPH OE KIYEOK +0x9DDD 0xD443 #HANGUL SYLLABLE PHIEUPH OE KIYEOKSIOS +0x9DDE 0xD445 #HANGUL SYLLABLE PHIEUPH OE NIEUNCIEUC +0x9DDF 0xD446 #HANGUL SYLLABLE PHIEUPH OE NIEUNHIEUH +0x9DE0 0xD447 #HANGUL SYLLABLE PHIEUPH OE TIKEUT +0x9DE1 0xD448 #HANGUL SYLLABLE PHIEUPH OE RIEUL +0x9DE2 0xD449 #HANGUL SYLLABLE PHIEUPH OE RIEULKIYEOK +0x9DE3 0xD44A #HANGUL SYLLABLE PHIEUPH OE RIEULMIEUM +0x9DE4 0xD44B #HANGUL SYLLABLE PHIEUPH OE RIEULPIEUP +0x9DE5 0xD44C #HANGUL SYLLABLE PHIEUPH OE RIEULSIOS +0x9DE6 0xD44D #HANGUL SYLLABLE PHIEUPH OE RIEULTHIEUTH +0x9DE7 0xD44E #HANGUL SYLLABLE PHIEUPH OE RIEULPHIEUPH +0x9DE8 0xD44F #HANGUL SYLLABLE PHIEUPH OE RIEULHIEUH +0x9DE9 0xD450 #HANGUL SYLLABLE PHIEUPH OE MIEUM +0x9DEA 0xD451 #HANGUL SYLLABLE PHIEUPH OE PIEUP +0x9DEB 0xD452 #HANGUL SYLLABLE PHIEUPH OE PIEUPSIOS +0x9DEC 0xD453 #HANGUL SYLLABLE PHIEUPH OE SIOS +0x9DED 0xD455 #HANGUL SYLLABLE PHIEUPH OE IEUNG +0x9DEE 0xD456 #HANGUL SYLLABLE PHIEUPH OE CIEUC +0x9DEF 0xD457 #HANGUL SYLLABLE PHIEUPH OE CHIEUCH +0x9DF0 0xD458 #HANGUL SYLLABLE PHIEUPH OE KHIEUKH +0x9DF1 0xD459 #HANGUL SYLLABLE PHIEUPH OE THIEUTH +0x9DF2 0xD45A #HANGUL SYLLABLE PHIEUPH OE PHIEUPH +0x9DF3 0xD45B #HANGUL SYLLABLE PHIEUPH OE HIEUH +0x9DF4 0xD442 #HANGUL SYLLABLE PHIEUPH OE SSANGKIYEOK +0x9DF5 0xD454 #HANGUL SYLLABLE PHIEUPH OE SSANGSIOS +0x9DF6 0xD4CD #HANGUL SYLLABLE PHIEUPH WI KIYEOK +0x9DF7 0xD4CF #HANGUL SYLLABLE PHIEUPH WI KIYEOKSIOS +0x9DF8 0xD4D1 #HANGUL SYLLABLE PHIEUPH WI NIEUNCIEUC +0x9DF9 0xD4D2 #HANGUL SYLLABLE PHIEUPH WI NIEUNHIEUH +0x9DFA 0xD4D3 #HANGUL SYLLABLE PHIEUPH WI TIKEUT +0x9DFB 0xD4D5 #HANGUL SYLLABLE PHIEUPH WI RIEULKIYEOK +0x9DFC 0xD4D6 #HANGUL SYLLABLE PHIEUPH WI RIEULMIEUM +0x9DFD 0xD4D7 #HANGUL SYLLABLE PHIEUPH WI RIEULPIEUP +0x9DFE 0xD4D8 #HANGUL SYLLABLE PHIEUPH WI RIEULSIOS +0x9E41 0xD4D9 #HANGUL SYLLABLE PHIEUPH WI RIEULTHIEUTH +0x9E42 0xD4DA #HANGUL SYLLABLE PHIEUPH WI RIEULPHIEUPH +0x9E43 0xD4DB #HANGUL SYLLABLE PHIEUPH WI RIEULHIEUH +0x9E44 0xD4DD #HANGUL SYLLABLE PHIEUPH WI PIEUP +0x9E45 0xD4DE #HANGUL SYLLABLE PHIEUPH WI PIEUPSIOS +0x9E46 0xD4E1 #HANGUL SYLLABLE PHIEUPH WI IEUNG +0x9E47 0xD4E2 #HANGUL SYLLABLE PHIEUPH WI CIEUC +0x9E48 0xD4E3 #HANGUL SYLLABLE PHIEUPH WI CHIEUCH +0x9E49 0xD4E4 #HANGUL SYLLABLE PHIEUPH WI KHIEUKH +0x9E4A 0xD4E5 #HANGUL SYLLABLE PHIEUPH WI THIEUTH +0x9E4B 0xD4E6 #HANGUL SYLLABLE PHIEUPH WI PHIEUPH +0x9E4C 0xD4E7 #HANGUL SYLLABLE PHIEUPH WI HIEUH +0x9E4D 0xD4CE #HANGUL SYLLABLE PHIEUPH WI SSANGKIYEOK +0x9E4E 0xD4E0 #HANGUL SYLLABLE PHIEUPH WI SSANGSIOS +0x9E4F 0xD521 #HANGUL SYLLABLE PHIEUPH YI KIYEOK +0x9E50 0xD523 #HANGUL SYLLABLE PHIEUPH YI KIYEOKSIOS +0x9E51 0xD525 #HANGUL SYLLABLE PHIEUPH YI NIEUNCIEUC +0x9E52 0xD526 #HANGUL SYLLABLE PHIEUPH YI NIEUNHIEUH +0x9E53 0xD527 #HANGUL SYLLABLE PHIEUPH YI TIKEUT +0x9E54 0xD528 #HANGUL SYLLABLE PHIEUPH YI RIEUL +0x9E55 0xD529 #HANGUL SYLLABLE PHIEUPH YI RIEULKIYEOK +0x9E56 0xD52A #HANGUL SYLLABLE PHIEUPH YI RIEULMIEUM +0x9E57 0xD52B #HANGUL SYLLABLE PHIEUPH YI RIEULPIEUP +0x9E58 0xD52C #HANGUL SYLLABLE PHIEUPH YI RIEULSIOS +0x9E59 0xD52D #HANGUL SYLLABLE PHIEUPH YI RIEULTHIEUTH +0x9E5A 0xD52E #HANGUL SYLLABLE PHIEUPH YI RIEULPHIEUPH +0x9E61 0xD52F #HANGUL SYLLABLE PHIEUPH YI RIEULHIEUH +0x9E62 0xD530 #HANGUL SYLLABLE PHIEUPH YI MIEUM +0x9E63 0xD531 #HANGUL SYLLABLE PHIEUPH YI PIEUP +0x9E64 0xD532 #HANGUL SYLLABLE PHIEUPH YI PIEUPSIOS +0x9E65 0xD533 #HANGUL SYLLABLE PHIEUPH YI SIOS +0x9E66 0xD535 #HANGUL SYLLABLE PHIEUPH YI IEUNG +0x9E67 0xD536 #HANGUL SYLLABLE PHIEUPH YI CIEUC +0x9E68 0xD537 #HANGUL SYLLABLE PHIEUPH YI CHIEUCH +0x9E69 0xD538 #HANGUL SYLLABLE PHIEUPH YI KHIEUKH +0x9E6A 0xD539 #HANGUL SYLLABLE PHIEUPH YI THIEUTH +0x9E6B 0xD53A #HANGUL SYLLABLE PHIEUPH YI PHIEUPH +0x9E6C 0xD53B #HANGUL SYLLABLE PHIEUPH YI HIEUH +0x9E6D 0xD522 #HANGUL SYLLABLE PHIEUPH YI SSANGKIYEOK +0x9E6E 0xD534 #HANGUL SYLLABLE PHIEUPH YI SSANGSIOS +0x9E6F 0xD409 #HANGUL SYLLABLE PHIEUPH WA KIYEOK +0x9E70 0xD40B #HANGUL SYLLABLE PHIEUPH WA KIYEOKSIOS +0x9E71 0xD40C #HANGUL SYLLABLE PHIEUPH WA NIEUN +0x9E72 0xD40D #HANGUL SYLLABLE PHIEUPH WA NIEUNCIEUC +0x9E73 0xD40E #HANGUL SYLLABLE PHIEUPH WA NIEUNHIEUH +0x9E74 0xD40F #HANGUL SYLLABLE PHIEUPH WA TIKEUT +0x9E75 0xD410 #HANGUL SYLLABLE PHIEUPH WA RIEUL +0x9E76 0xD411 #HANGUL SYLLABLE PHIEUPH WA RIEULKIYEOK +0x9E77 0xD412 #HANGUL SYLLABLE PHIEUPH WA RIEULMIEUM +0x9E78 0xD413 #HANGUL SYLLABLE PHIEUPH WA RIEULPIEUP +0x9E79 0xD414 #HANGUL SYLLABLE PHIEUPH WA RIEULSIOS +0x9E7A 0xD415 #HANGUL SYLLABLE PHIEUPH WA RIEULTHIEUTH +0x9E81 0xD416 #HANGUL SYLLABLE PHIEUPH WA RIEULPHIEUPH +0x9E82 0xD417 #HANGUL SYLLABLE PHIEUPH WA RIEULHIEUH +0x9E83 0xD418 #HANGUL SYLLABLE PHIEUPH WA MIEUM +0x9E84 0xD419 #HANGUL SYLLABLE PHIEUPH WA PIEUP +0x9E85 0xD41A #HANGUL SYLLABLE PHIEUPH WA PIEUPSIOS +0x9E86 0xD41B #HANGUL SYLLABLE PHIEUPH WA SIOS +0x9E87 0xD41E #HANGUL SYLLABLE PHIEUPH WA CIEUC +0x9E88 0xD41F #HANGUL SYLLABLE PHIEUPH WA CHIEUCH +0x9E89 0xD420 #HANGUL SYLLABLE PHIEUPH WA KHIEUKH +0x9E8A 0xD421 #HANGUL SYLLABLE PHIEUPH WA THIEUTH +0x9E8B 0xD422 #HANGUL SYLLABLE PHIEUPH WA PHIEUPH +0x9E8C 0xD423 #HANGUL SYLLABLE PHIEUPH WA HIEUH +0x9E8D 0xD40A #HANGUL SYLLABLE PHIEUPH WA SSANGKIYEOK +0x9E8E 0xD41C #HANGUL SYLLABLE PHIEUPH WA SSANGSIOS +0x9E8F 0xD495 #HANGUL SYLLABLE PHIEUPH WEO KIYEOK +0x9E90 0xD497 #HANGUL SYLLABLE PHIEUPH WEO KIYEOKSIOS +0x9E91 0xD498 #HANGUL SYLLABLE PHIEUPH WEO NIEUN +0x9E92 0xD499 #HANGUL SYLLABLE PHIEUPH WEO NIEUNCIEUC +0x9E93 0xD49A #HANGUL SYLLABLE PHIEUPH WEO NIEUNHIEUH +0x9E94 0xD49B #HANGUL SYLLABLE PHIEUPH WEO TIKEUT +0x9E95 0xD49C #HANGUL SYLLABLE PHIEUPH WEO RIEUL +0x9E96 0xD49D #HANGUL SYLLABLE PHIEUPH WEO RIEULKIYEOK +0x9E97 0xD49E #HANGUL SYLLABLE PHIEUPH WEO RIEULMIEUM +0x9E98 0xD49F #HANGUL SYLLABLE PHIEUPH WEO RIEULPIEUP +0x9E99 0xD4A0 #HANGUL SYLLABLE PHIEUPH WEO RIEULSIOS +0x9E9A 0xD4A1 #HANGUL SYLLABLE PHIEUPH WEO RIEULTHIEUTH +0x9E9B 0xD4A2 #HANGUL SYLLABLE PHIEUPH WEO RIEULPHIEUPH +0x9E9C 0xD4A3 #HANGUL SYLLABLE PHIEUPH WEO RIEULHIEUH +0x9E9D 0xD4A4 #HANGUL SYLLABLE PHIEUPH WEO MIEUM +0x9E9E 0xD4A5 #HANGUL SYLLABLE PHIEUPH WEO PIEUP +0x9E9F 0xD4A6 #HANGUL SYLLABLE PHIEUPH WEO PIEUPSIOS +0x9EA0 0xD4A7 #HANGUL SYLLABLE PHIEUPH WEO SIOS +0x9EA1 0xD4AA #HANGUL SYLLABLE PHIEUPH WEO CIEUC +0x9EA2 0xD4AB #HANGUL SYLLABLE PHIEUPH WEO CHIEUCH +0x9EA3 0xD4AC #HANGUL SYLLABLE PHIEUPH WEO KHIEUKH +0x9EA4 0xD4AD #HANGUL SYLLABLE PHIEUPH WEO THIEUTH +0x9EA5 0xD4AE #HANGUL SYLLABLE PHIEUPH WEO PHIEUPH +0x9EA6 0xD4AF #HANGUL SYLLABLE PHIEUPH WEO HIEUH +0x9EA7 0xD496 #HANGUL SYLLABLE PHIEUPH WEO SSANGKIYEOK +0x9EA8 0xD4A8 #HANGUL SYLLABLE PHIEUPH WEO SSANGSIOS +0x9EA9 0xD424 #HANGUL SYLLABLE PHIEUPH WAE +0x9EAA 0xD425 #HANGUL SYLLABLE PHIEUPH WAE KIYEOK +0x9EAB 0xD427 #HANGUL SYLLABLE PHIEUPH WAE KIYEOKSIOS +0x9EAC 0xD428 #HANGUL SYLLABLE PHIEUPH WAE NIEUN +0x9EAD 0xD429 #HANGUL SYLLABLE PHIEUPH WAE NIEUNCIEUC +0x9EAE 0xD42A #HANGUL SYLLABLE PHIEUPH WAE NIEUNHIEUH +0x9EAF 0xD42B #HANGUL SYLLABLE PHIEUPH WAE TIKEUT +0x9EB0 0xD42C #HANGUL SYLLABLE PHIEUPH WAE RIEUL +0x9EB1 0xD42D #HANGUL SYLLABLE PHIEUPH WAE RIEULKIYEOK +0x9EB2 0xD42E #HANGUL SYLLABLE PHIEUPH WAE RIEULMIEUM +0x9EB3 0xD42F #HANGUL SYLLABLE PHIEUPH WAE RIEULPIEUP +0x9EB4 0xD430 #HANGUL SYLLABLE PHIEUPH WAE RIEULSIOS +0x9EB5 0xD431 #HANGUL SYLLABLE PHIEUPH WAE RIEULTHIEUTH +0x9EB6 0xD432 #HANGUL SYLLABLE PHIEUPH WAE RIEULPHIEUPH +0x9EB7 0xD433 #HANGUL SYLLABLE PHIEUPH WAE RIEULHIEUH +0x9EB8 0xD434 #HANGUL SYLLABLE PHIEUPH WAE MIEUM +0x9EB9 0xD435 #HANGUL SYLLABLE PHIEUPH WAE PIEUP +0x9EBA 0xD436 #HANGUL SYLLABLE PHIEUPH WAE PIEUPSIOS +0x9EBB 0xD437 #HANGUL SYLLABLE PHIEUPH WAE SIOS +0x9EBC 0xD439 #HANGUL SYLLABLE PHIEUPH WAE IEUNG +0x9EBD 0xD43A #HANGUL SYLLABLE PHIEUPH WAE CIEUC +0x9EBE 0xD43B #HANGUL SYLLABLE PHIEUPH WAE CHIEUCH +0x9EBF 0xD43C #HANGUL SYLLABLE PHIEUPH WAE KHIEUKH +0x9EC0 0xD43D #HANGUL SYLLABLE PHIEUPH WAE THIEUTH +0x9EC1 0xD43E #HANGUL SYLLABLE PHIEUPH WAE PHIEUPH +0x9EC2 0xD43F #HANGUL SYLLABLE PHIEUPH WAE HIEUH +0x9EC3 0xD426 #HANGUL SYLLABLE PHIEUPH WAE SSANGKIYEOK +0x9EC4 0xD438 #HANGUL SYLLABLE PHIEUPH WAE SSANGSIOS +0x9EC5 0xD4B0 #HANGUL SYLLABLE PHIEUPH WE +0x9EC6 0xD4B1 #HANGUL SYLLABLE PHIEUPH WE KIYEOK +0x9EC7 0xD4B3 #HANGUL SYLLABLE PHIEUPH WE KIYEOKSIOS +0x9EC8 0xD4B4 #HANGUL SYLLABLE PHIEUPH WE NIEUN +0x9EC9 0xD4B5 #HANGUL SYLLABLE PHIEUPH WE NIEUNCIEUC +0x9ECA 0xD4B6 #HANGUL SYLLABLE PHIEUPH WE NIEUNHIEUH +0x9ECB 0xD4B7 #HANGUL SYLLABLE PHIEUPH WE TIKEUT +0x9ECC 0xD4B8 #HANGUL SYLLABLE PHIEUPH WE RIEUL +0x9ECD 0xD4B9 #HANGUL SYLLABLE PHIEUPH WE RIEULKIYEOK +0x9ECE 0xD4BA #HANGUL SYLLABLE PHIEUPH WE RIEULMIEUM +0x9ECF 0xD4BB #HANGUL SYLLABLE PHIEUPH WE RIEULPIEUP +0x9ED0 0xD4BC #HANGUL SYLLABLE PHIEUPH WE RIEULSIOS +0x9ED1 0xD4BD #HANGUL SYLLABLE PHIEUPH WE RIEULTHIEUTH +0x9ED2 0xD4BE #HANGUL SYLLABLE PHIEUPH WE RIEULPHIEUPH +0x9ED3 0xD4BF #HANGUL SYLLABLE PHIEUPH WE RIEULHIEUH +0x9ED4 0xD4C0 #HANGUL SYLLABLE PHIEUPH WE MIEUM +0x9ED5 0xD4C1 #HANGUL SYLLABLE PHIEUPH WE PIEUP +0x9ED6 0xD4C2 #HANGUL SYLLABLE PHIEUPH WE PIEUPSIOS +0x9ED7 0xD4C3 #HANGUL SYLLABLE PHIEUPH WE SIOS +0x9ED8 0xD4C5 #HANGUL SYLLABLE PHIEUPH WE IEUNG +0x9ED9 0xD4C6 #HANGUL SYLLABLE PHIEUPH WE CIEUC +0x9EDA 0xD4C7 #HANGUL SYLLABLE PHIEUPH WE CHIEUCH +0x9EDB 0xD4C8 #HANGUL SYLLABLE PHIEUPH WE KHIEUKH +0x9EDC 0xD4C9 #HANGUL SYLLABLE PHIEUPH WE THIEUTH +0x9EDD 0xD4CA #HANGUL SYLLABLE PHIEUPH WE PHIEUPH +0x9EDE 0xD4CB #HANGUL SYLLABLE PHIEUPH WE HIEUH +0x9EDF 0xD4B2 #HANGUL SYLLABLE PHIEUPH WE SSANGKIYEOK +0x9EE0 0xD4C4 #HANGUL SYLLABLE PHIEUPH WE SSANGSIOS +0x9EE1 0xD55B #HANGUL SYLLABLE HIEUH A KIYEOKSIOS +0x9EE2 0xD55D #HANGUL SYLLABLE HIEUH A NIEUNCIEUC +0x9EE3 0xD55E #HANGUL SYLLABLE HIEUH A NIEUNHIEUH +0x9EE4 0xD55F #HANGUL SYLLABLE HIEUH A TIKEUT +0x9EE5 0xD561 #HANGUL SYLLABLE HIEUH A RIEULKIYEOK +0x9EE6 0xD562 #HANGUL SYLLABLE HIEUH A RIEULMIEUM +0x9EE7 0xD563 #HANGUL SYLLABLE HIEUH A RIEULPIEUP +0x9EE8 0xD564 #HANGUL SYLLABLE HIEUH A RIEULSIOS +0x9EE9 0xD566 #HANGUL SYLLABLE HIEUH A RIEULPHIEUPH +0x9EEA 0xD567 #HANGUL SYLLABLE HIEUH A RIEULHIEUH +0x9EEB 0xD56A #HANGUL SYLLABLE HIEUH A PIEUPSIOS +0x9EEC 0xD56E #HANGUL SYLLABLE HIEUH A CIEUC +0x9EED 0xD56F #HANGUL SYLLABLE HIEUH A CHIEUCH +0x9EEE 0xD570 #HANGUL SYLLABLE HIEUH A KHIEUKH +0x9EEF 0xD571 #HANGUL SYLLABLE HIEUH A THIEUTH +0x9EF0 0xD572 #HANGUL SYLLABLE HIEUH A PHIEUPH +0x9EF1 0xD573 #HANGUL SYLLABLE HIEUH A HIEUH +0x9EF2 0xD55A #HANGUL SYLLABLE HIEUH A SSANGKIYEOK +0x9EF3 0xD56C #HANGUL SYLLABLE HIEUH A SSANGSIOS +0x9EF4 0xD591 #HANGUL SYLLABLE HIEUH YA KIYEOK +0x9EF5 0xD593 #HANGUL SYLLABLE HIEUH YA KIYEOKSIOS +0x9EF6 0xD594 #HANGUL SYLLABLE HIEUH YA NIEUN +0x9EF7 0xD595 #HANGUL SYLLABLE HIEUH YA NIEUNCIEUC +0x9EF8 0xD596 #HANGUL SYLLABLE HIEUH YA NIEUNHIEUH +0x9EF9 0xD597 #HANGUL SYLLABLE HIEUH YA TIKEUT +0x9EFA 0xD598 #HANGUL SYLLABLE HIEUH YA RIEUL +0x9EFB 0xD599 #HANGUL SYLLABLE HIEUH YA RIEULKIYEOK +0x9EFC 0xD59A #HANGUL SYLLABLE HIEUH YA RIEULMIEUM +0x9EFD 0xD59B #HANGUL SYLLABLE HIEUH YA RIEULPIEUP +0x9EFE 0xD59C #HANGUL SYLLABLE HIEUH YA RIEULSIOS +0x9F41 0xD59D #HANGUL SYLLABLE HIEUH YA RIEULTHIEUTH +0x9F42 0xD59E #HANGUL SYLLABLE HIEUH YA RIEULPHIEUPH +0x9F43 0xD59F #HANGUL SYLLABLE HIEUH YA RIEULHIEUH +0x9F44 0xD5A0 #HANGUL SYLLABLE HIEUH YA MIEUM +0x9F45 0xD5A1 #HANGUL SYLLABLE HIEUH YA PIEUP +0x9F46 0xD5A2 #HANGUL SYLLABLE HIEUH YA PIEUPSIOS +0x9F47 0xD5A3 #HANGUL SYLLABLE HIEUH YA SIOS +0x9F48 0xD5A6 #HANGUL SYLLABLE HIEUH YA CIEUC +0x9F49 0xD5A7 #HANGUL SYLLABLE HIEUH YA CHIEUCH +0x9F4A 0xD5A8 #HANGUL SYLLABLE HIEUH YA KHIEUKH +0x9F4B 0xD5A9 #HANGUL SYLLABLE HIEUH YA THIEUTH +0x9F4C 0xD5AA #HANGUL SYLLABLE HIEUH YA PHIEUPH +0x9F4D 0xD5AB #HANGUL SYLLABLE HIEUH YA HIEUH +0x9F4E 0xD592 #HANGUL SYLLABLE HIEUH YA SSANGKIYEOK +0x9F4F 0xD5A4 #HANGUL SYLLABLE HIEUH YA SSANGSIOS +0x9F50 0xD5CB #HANGUL SYLLABLE HIEUH EO KIYEOKSIOS +0x9F51 0xD5CD #HANGUL SYLLABLE HIEUH EO NIEUNCIEUC +0x9F52 0xD5CE #HANGUL SYLLABLE HIEUH EO NIEUNHIEUH +0x9F53 0xD5CF #HANGUL SYLLABLE HIEUH EO TIKEUT +0x9F54 0xD5D1 #HANGUL SYLLABLE HIEUH EO RIEULKIYEOK +0x9F55 0xD5D3 #HANGUL SYLLABLE HIEUH EO RIEULPIEUP +0x9F56 0xD5D4 #HANGUL SYLLABLE HIEUH EO RIEULSIOS +0x9F57 0xD5D6 #HANGUL SYLLABLE HIEUH EO RIEULPHIEUPH +0x9F58 0xD5DA #HANGUL SYLLABLE HIEUH EO PIEUPSIOS +0x9F59 0xD5DE #HANGUL SYLLABLE HIEUH EO CIEUC +0x9F5A 0xD5DF #HANGUL SYLLABLE HIEUH EO CHIEUCH +0x9F61 0xD5E0 #HANGUL SYLLABLE HIEUH EO KHIEUKH +0x9F62 0xD5E1 #HANGUL SYLLABLE HIEUH EO THIEUTH +0x9F63 0xD5E2 #HANGUL SYLLABLE HIEUH EO PHIEUPH +0x9F64 0xD5E3 #HANGUL SYLLABLE HIEUH EO HIEUH +0x9F65 0xD5CA #HANGUL SYLLABLE HIEUH EO SSANGKIYEOK +0x9F66 0xD5DC #HANGUL SYLLABLE HIEUH EO SSANGSIOS +0x9F67 0xD603 #HANGUL SYLLABLE HIEUH YEO KIYEOKSIOS +0x9F68 0xD605 #HANGUL SYLLABLE HIEUH YEO NIEUNCIEUC +0x9F69 0xD606 #HANGUL SYLLABLE HIEUH YEO NIEUNHIEUH +0x9F6A 0xD607 #HANGUL SYLLABLE HIEUH YEO TIKEUT +0x9F6B 0xD609 #HANGUL SYLLABLE HIEUH YEO RIEULKIYEOK +0x9F6C 0xD60A #HANGUL SYLLABLE HIEUH YEO RIEULMIEUM +0x9F6D 0xD60B #HANGUL SYLLABLE HIEUH YEO RIEULPIEUP +0x9F6E 0xD60C #HANGUL SYLLABLE HIEUH YEO RIEULSIOS +0x9F6F 0xD60D #HANGUL SYLLABLE HIEUH YEO RIEULTHIEUTH +0x9F70 0xD60E #HANGUL SYLLABLE HIEUH YEO RIEULPHIEUPH +0x9F71 0xD60F #HANGUL SYLLABLE HIEUH YEO RIEULHIEUH +0x9F72 0xD612 #HANGUL SYLLABLE HIEUH YEO PIEUPSIOS +0x9F73 0xD616 #HANGUL SYLLABLE HIEUH YEO CIEUC +0x9F74 0xD617 #HANGUL SYLLABLE HIEUH YEO CHIEUCH +0x9F75 0xD618 #HANGUL SYLLABLE HIEUH YEO KHIEUKH +0x9F76 0xD619 #HANGUL SYLLABLE HIEUH YEO THIEUTH +0x9F77 0xD61A #HANGUL SYLLABLE HIEUH YEO PHIEUPH +0x9F78 0xD61B #HANGUL SYLLABLE HIEUH YEO HIEUH +0x9F79 0xD602 #HANGUL SYLLABLE HIEUH YEO SSANGKIYEOK +0x9F7A 0xD63B #HANGUL SYLLABLE HIEUH O KIYEOKSIOS +0x9F81 0xD63D #HANGUL SYLLABLE HIEUH O NIEUNCIEUC +0x9F82 0xD63E #HANGUL SYLLABLE HIEUH O NIEUNHIEUH +0x9F83 0xD641 #HANGUL SYLLABLE HIEUH O RIEULKIYEOK +0x9F84 0xD642 #HANGUL SYLLABLE HIEUH O RIEULMIEUM +0x9F85 0xD643 #HANGUL SYLLABLE HIEUH O RIEULPIEUP +0x9F86 0xD644 #HANGUL SYLLABLE HIEUH O RIEULSIOS +0x9F87 0xD646 #HANGUL SYLLABLE HIEUH O RIEULPHIEUPH +0x9F88 0xD647 #HANGUL SYLLABLE HIEUH O RIEULHIEUH +0x9F89 0xD64A #HANGUL SYLLABLE HIEUH O PIEUPSIOS +0x9F8A 0xD64E #HANGUL SYLLABLE HIEUH O CIEUC +0x9F8B 0xD64F #HANGUL SYLLABLE HIEUH O CHIEUCH +0x9F8C 0xD650 #HANGUL SYLLABLE HIEUH O KHIEUKH +0x9F8D 0xD652 #HANGUL SYLLABLE HIEUH O PHIEUPH +0x9F8E 0xD653 #HANGUL SYLLABLE HIEUH O HIEUH +0x9F8F 0xD63A #HANGUL SYLLABLE HIEUH O SSANGKIYEOK +0x9F90 0xD64C #HANGUL SYLLABLE HIEUH O SSANGSIOS +0x9F91 0xD6A9 #HANGUL SYLLABLE HIEUH YO KIYEOK +0x9F92 0xD6AB #HANGUL SYLLABLE HIEUH YO KIYEOKSIOS +0x9F93 0xD6AD #HANGUL SYLLABLE HIEUH YO NIEUNCIEUC +0x9F94 0xD6AE #HANGUL SYLLABLE HIEUH YO NIEUNHIEUH +0x9F95 0xD6AF #HANGUL SYLLABLE HIEUH YO TIKEUT +0x9F96 0xD6B1 #HANGUL SYLLABLE HIEUH YO RIEULKIYEOK +0x9F97 0xD6B2 #HANGUL SYLLABLE HIEUH YO RIEULMIEUM +0x9F98 0xD6B3 #HANGUL SYLLABLE HIEUH YO RIEULPIEUP +0x9F99 0xD6B4 #HANGUL SYLLABLE HIEUH YO RIEULSIOS +0x9F9A 0xD6B5 #HANGUL SYLLABLE HIEUH YO RIEULTHIEUTH +0x9F9B 0xD6B6 #HANGUL SYLLABLE HIEUH YO RIEULPHIEUPH +0x9F9C 0xD6B7 #HANGUL SYLLABLE HIEUH YO RIEULHIEUH +0x9F9D 0xD6B8 #HANGUL SYLLABLE HIEUH YO MIEUM +0x9F9E 0xD6BA #HANGUL SYLLABLE HIEUH YO PIEUPSIOS +0x9F9F 0xD6BD #HANGUL SYLLABLE HIEUH YO IEUNG +0x9FA0 0xD6BE #HANGUL SYLLABLE HIEUH YO CIEUC +0x9FA1 0xD6BF #HANGUL SYLLABLE HIEUH YO CHIEUCH +0x9FA2 0xD6C0 #HANGUL SYLLABLE HIEUH YO KHIEUKH +0x9FA3 0xD6C1 #HANGUL SYLLABLE HIEUH YO THIEUTH +0x9FA4 0xD6C2 #HANGUL SYLLABLE HIEUH YO PHIEUPH +0x9FA5 0xD6C3 #HANGUL SYLLABLE HIEUH YO HIEUH +0x9FA6 0xD6AA #HANGUL SYLLABLE HIEUH YO SSANGKIYEOK +0x9FA7 0xD6BC #HANGUL SYLLABLE HIEUH YO SSANGSIOS +0x9FA8 0xD6C7 #HANGUL SYLLABLE HIEUH U KIYEOKSIOS +0x9FA9 0xD6C9 #HANGUL SYLLABLE HIEUH U NIEUNCIEUC +0x9FAA 0xD6CA #HANGUL SYLLABLE HIEUH U NIEUNHIEUH +0x9FAB 0xD6CB #HANGUL SYLLABLE HIEUH U TIKEUT +0x9FAC 0xD6CD #HANGUL SYLLABLE HIEUH U RIEULKIYEOK +0x9FAD 0xD6CE #HANGUL SYLLABLE HIEUH U RIEULMIEUM +0x9FAE 0xD6CF #HANGUL SYLLABLE HIEUH U RIEULPIEUP +0x9FAF 0xD6D0 #HANGUL SYLLABLE HIEUH U RIEULSIOS +0x9FB0 0xD6D2 #HANGUL SYLLABLE HIEUH U RIEULPHIEUPH +0x9FB1 0xD6D3 #HANGUL SYLLABLE HIEUH U RIEULHIEUH +0x9FB2 0xD6D6 #HANGUL SYLLABLE HIEUH U PIEUPSIOS +0x9FB3 0xD6DA #HANGUL SYLLABLE HIEUH U CIEUC +0x9FB4 0xD6DB #HANGUL SYLLABLE HIEUH U CHIEUCH +0x9FB5 0xD6DC #HANGUL SYLLABLE HIEUH U KHIEUKH +0x9FB6 0xD6DD #HANGUL SYLLABLE HIEUH U THIEUTH +0x9FB7 0xD6DE #HANGUL SYLLABLE HIEUH U PHIEUPH +0x9FB8 0xD6DF #HANGUL SYLLABLE HIEUH U HIEUH +0x9FB9 0xD6C6 #HANGUL SYLLABLE HIEUH U SSANGKIYEOK +0x9FBA 0xD6D8 #HANGUL SYLLABLE HIEUH U SSANGSIOS +0x9FBB 0xD737 #HANGUL SYLLABLE HIEUH YU KIYEOKSIOS +0x9FBC 0xD739 #HANGUL SYLLABLE HIEUH YU NIEUNCIEUC +0x9FBD 0xD73A #HANGUL SYLLABLE HIEUH YU NIEUNHIEUH +0x9FBE 0xD73B #HANGUL SYLLABLE HIEUH YU TIKEUT +0x9FBF 0xD73D #HANGUL SYLLABLE HIEUH YU RIEULKIYEOK +0x9FC0 0xD73E #HANGUL SYLLABLE HIEUH YU RIEULMIEUM +0x9FC1 0xD73F #HANGUL SYLLABLE HIEUH YU RIEULPIEUP +0x9FC2 0xD740 #HANGUL SYLLABLE HIEUH YU RIEULSIOS +0x9FC3 0xD741 #HANGUL SYLLABLE HIEUH YU RIEULTHIEUTH +0x9FC4 0xD742 #HANGUL SYLLABLE HIEUH YU RIEULPHIEUPH +0x9FC5 0xD743 #HANGUL SYLLABLE HIEUH YU RIEULHIEUH +0x9FC6 0xD745 #HANGUL SYLLABLE HIEUH YU PIEUP +0x9FC7 0xD746 #HANGUL SYLLABLE HIEUH YU PIEUPSIOS +0x9FC8 0xD74A #HANGUL SYLLABLE HIEUH YU CIEUC +0x9FC9 0xD74B #HANGUL SYLLABLE HIEUH YU CHIEUCH +0x9FCA 0xD74C #HANGUL SYLLABLE HIEUH YU KHIEUKH +0x9FCB 0xD74D #HANGUL SYLLABLE HIEUH YU THIEUTH +0x9FCC 0xD74E #HANGUL SYLLABLE HIEUH YU PHIEUPH +0x9FCD 0xD74F #HANGUL SYLLABLE HIEUH YU HIEUH +0x9FCE 0xD736 #HANGUL SYLLABLE HIEUH YU SSANGKIYEOK +0x9FCF 0xD748 #HANGUL SYLLABLE HIEUH YU SSANGSIOS +0x9FD0 0xD753 #HANGUL SYLLABLE HIEUH EU KIYEOKSIOS +0x9FD1 0xD755 #HANGUL SYLLABLE HIEUH EU NIEUNCIEUC +0x9FD2 0xD75A #HANGUL SYLLABLE HIEUH EU RIEULMIEUM +0x9FD3 0xD75B #HANGUL SYLLABLE HIEUH EU RIEULPIEUP +0x9FD4 0xD75C #HANGUL SYLLABLE HIEUH EU RIEULSIOS +0x9FD5 0xD75E #HANGUL SYLLABLE HIEUH EU RIEULPHIEUPH +0x9FD6 0xD75F #HANGUL SYLLABLE HIEUH EU RIEULHIEUH +0x9FD7 0xD762 #HANGUL SYLLABLE HIEUH EU PIEUPSIOS +0x9FD8 0xD766 #HANGUL SYLLABLE HIEUH EU CIEUC +0x9FD9 0xD767 #HANGUL SYLLABLE HIEUH EU CHIEUCH +0x9FDA 0xD768 #HANGUL SYLLABLE HIEUH EU KHIEUKH +0x9FDB 0xD76A #HANGUL SYLLABLE HIEUH EU PHIEUPH +0x9FDC 0xD76B #HANGUL SYLLABLE HIEUH EU HIEUH +0x9FDD 0xD752 #HANGUL SYLLABLE HIEUH EU SSANGKIYEOK +0x9FDE 0xD764 #HANGUL SYLLABLE HIEUH EU SSANGSIOS +0x9FDF 0xD78B #HANGUL SYLLABLE HIEUH I KIYEOKSIOS +0x9FE0 0xD78D #HANGUL SYLLABLE HIEUH I NIEUNCIEUC +0x9FE1 0xD78E #HANGUL SYLLABLE HIEUH I NIEUNHIEUH +0x9FE2 0xD78F #HANGUL SYLLABLE HIEUH I TIKEUT +0x9FE3 0xD791 #HANGUL SYLLABLE HIEUH I RIEULKIYEOK +0x9FE4 0xD792 #HANGUL SYLLABLE HIEUH I RIEULMIEUM +0x9FE5 0xD793 #HANGUL SYLLABLE HIEUH I RIEULPIEUP +0x9FE6 0xD794 #HANGUL SYLLABLE HIEUH I RIEULSIOS +0x9FE7 0xD795 #HANGUL SYLLABLE HIEUH I RIEULTHIEUTH +0x9FE8 0xD796 #HANGUL SYLLABLE HIEUH I RIEULPHIEUPH +0x9FE9 0xD797 #HANGUL SYLLABLE HIEUH I RIEULHIEUH +0x9FEA 0xD79A #HANGUL SYLLABLE HIEUH I PIEUPSIOS +0x9FEB 0xD79E #HANGUL SYLLABLE HIEUH I CIEUC +0x9FEC 0xD79F #HANGUL SYLLABLE HIEUH I CHIEUCH +0x9FED 0xD7A0 #HANGUL SYLLABLE HIEUH I KHIEUKH +0x9FEE 0xD7A1 #HANGUL SYLLABLE HIEUH I THIEUTH +0x9FEF 0xD7A2 #HANGUL SYLLABLE HIEUH I PHIEUPH +0x9FF0 0xD7A3 #HANGUL SYLLABLE HIEUH I HIEUH +0x9FF1 0xD78A #HANGUL SYLLABLE HIEUH I SSANGKIYEOK +0x9FF2 0xD79C #HANGUL SYLLABLE HIEUH I SSANGSIOS +0x9FF3 0xD577 #HANGUL SYLLABLE HIEUH AE KIYEOKSIOS +0x9FF4 0xD579 #HANGUL SYLLABLE HIEUH AE NIEUNCIEUC +0x9FF5 0xD57A #HANGUL SYLLABLE HIEUH AE NIEUNHIEUH +0x9FF6 0xD57B #HANGUL SYLLABLE HIEUH AE TIKEUT +0x9FF7 0xD57D #HANGUL SYLLABLE HIEUH AE RIEULKIYEOK +0x9FF8 0xD57E #HANGUL SYLLABLE HIEUH AE RIEULMIEUM +0x9FF9 0xD57F #HANGUL SYLLABLE HIEUH AE RIEULPIEUP +0x9FFA 0xD580 #HANGUL SYLLABLE HIEUH AE RIEULSIOS +0x9FFB 0xD581 #HANGUL SYLLABLE HIEUH AE RIEULTHIEUTH +0x9FFC 0xD582 #HANGUL SYLLABLE HIEUH AE RIEULPHIEUPH +0x9FFD 0xD583 #HANGUL SYLLABLE HIEUH AE RIEULHIEUH +0x9FFE 0xD586 #HANGUL SYLLABLE HIEUH AE PIEUPSIOS +0xA041 0xD58A #HANGUL SYLLABLE HIEUH AE CIEUC +0xA042 0xD58B #HANGUL SYLLABLE HIEUH AE CHIEUCH +0xA043 0xD58C #HANGUL SYLLABLE HIEUH AE KHIEUKH +0xA044 0xD58D #HANGUL SYLLABLE HIEUH AE THIEUTH +0xA045 0xD58E #HANGUL SYLLABLE HIEUH AE PHIEUPH +0xA046 0xD58F #HANGUL SYLLABLE HIEUH AE HIEUH +0xA047 0xD576 #HANGUL SYLLABLE HIEUH AE SSANGKIYEOK +0xA048 0xD5AD #HANGUL SYLLABLE HIEUH YAE KIYEOK +0xA049 0xD5AF #HANGUL SYLLABLE HIEUH YAE KIYEOKSIOS +0xA04A 0xD5B0 #HANGUL SYLLABLE HIEUH YAE NIEUN +0xA04B 0xD5B1 #HANGUL SYLLABLE HIEUH YAE NIEUNCIEUC +0xA04C 0xD5B2 #HANGUL SYLLABLE HIEUH YAE NIEUNHIEUH +0xA04D 0xD5B3 #HANGUL SYLLABLE HIEUH YAE TIKEUT +0xA04E 0xD5B4 #HANGUL SYLLABLE HIEUH YAE RIEUL +0xA04F 0xD5B5 #HANGUL SYLLABLE HIEUH YAE RIEULKIYEOK +0xA050 0xD5B6 #HANGUL SYLLABLE HIEUH YAE RIEULMIEUM +0xA051 0xD5B7 #HANGUL SYLLABLE HIEUH YAE RIEULPIEUP +0xA052 0xD5B8 #HANGUL SYLLABLE HIEUH YAE RIEULSIOS +0xA053 0xD5B9 #HANGUL SYLLABLE HIEUH YAE RIEULTHIEUTH +0xA054 0xD5BA #HANGUL SYLLABLE HIEUH YAE RIEULPHIEUPH +0xA055 0xD5BB #HANGUL SYLLABLE HIEUH YAE RIEULHIEUH +0xA056 0xD5BC #HANGUL SYLLABLE HIEUH YAE MIEUM +0xA057 0xD5BD #HANGUL SYLLABLE HIEUH YAE PIEUP +0xA058 0xD5BE #HANGUL SYLLABLE HIEUH YAE PIEUPSIOS +0xA059 0xD5BF #HANGUL SYLLABLE HIEUH YAE SIOS +0xA05A 0xD5C1 #HANGUL SYLLABLE HIEUH YAE IEUNG +0xA061 0xD5C2 #HANGUL SYLLABLE HIEUH YAE CIEUC +0xA062 0xD5C3 #HANGUL SYLLABLE HIEUH YAE CHIEUCH +0xA063 0xD5C4 #HANGUL SYLLABLE HIEUH YAE KHIEUKH +0xA064 0xD5C5 #HANGUL SYLLABLE HIEUH YAE THIEUTH +0xA065 0xD5C6 #HANGUL SYLLABLE HIEUH YAE PHIEUPH +0xA066 0xD5C7 #HANGUL SYLLABLE HIEUH YAE HIEUH +0xA067 0xD5AE #HANGUL SYLLABLE HIEUH YAE SSANGKIYEOK +0xA068 0xD5C0 #HANGUL SYLLABLE HIEUH YAE SSANGSIOS +0xA069 0xD5E7 #HANGUL SYLLABLE HIEUH E KIYEOKSIOS +0xA06A 0xD5E9 #HANGUL SYLLABLE HIEUH E NIEUNCIEUC +0xA06B 0xD5EA #HANGUL SYLLABLE HIEUH E NIEUNHIEUH +0xA06C 0xD5EB #HANGUL SYLLABLE HIEUH E TIKEUT +0xA06D 0xD5ED #HANGUL SYLLABLE HIEUH E RIEULKIYEOK +0xA06E 0xD5EE #HANGUL SYLLABLE HIEUH E RIEULMIEUM +0xA06F 0xD5EF #HANGUL SYLLABLE HIEUH E RIEULPIEUP +0xA070 0xD5F0 #HANGUL SYLLABLE HIEUH E RIEULSIOS +0xA071 0xD5F1 #HANGUL SYLLABLE HIEUH E RIEULTHIEUTH +0xA072 0xD5F2 #HANGUL SYLLABLE HIEUH E RIEULPHIEUPH +0xA073 0xD5F3 #HANGUL SYLLABLE HIEUH E RIEULHIEUH +0xA074 0xD5F6 #HANGUL SYLLABLE HIEUH E PIEUPSIOS +0xA075 0xD5FA #HANGUL SYLLABLE HIEUH E CIEUC +0xA076 0xD5FB #HANGUL SYLLABLE HIEUH E CHIEUCH +0xA077 0xD5FC #HANGUL SYLLABLE HIEUH E KHIEUKH +0xA078 0xD5FD #HANGUL SYLLABLE HIEUH E THIEUTH +0xA079 0xD5FE #HANGUL SYLLABLE HIEUH E PHIEUPH +0xA07A 0xD5FF #HANGUL SYLLABLE HIEUH E HIEUH +0xA081 0xD5E6 #HANGUL SYLLABLE HIEUH E SSANGKIYEOK +0xA082 0xD61D #HANGUL SYLLABLE HIEUH YE KIYEOK +0xA083 0xD61F #HANGUL SYLLABLE HIEUH YE KIYEOKSIOS +0xA084 0xD621 #HANGUL SYLLABLE HIEUH YE NIEUNCIEUC +0xA085 0xD622 #HANGUL SYLLABLE HIEUH YE NIEUNHIEUH +0xA086 0xD623 #HANGUL SYLLABLE HIEUH YE TIKEUT +0xA087 0xD625 #HANGUL SYLLABLE HIEUH YE RIEULKIYEOK +0xA088 0xD626 #HANGUL SYLLABLE HIEUH YE RIEULMIEUM +0xA089 0xD627 #HANGUL SYLLABLE HIEUH YE RIEULPIEUP +0xA08A 0xD628 #HANGUL SYLLABLE HIEUH YE RIEULSIOS +0xA08B 0xD629 #HANGUL SYLLABLE HIEUH YE RIEULTHIEUTH +0xA08C 0xD62A #HANGUL SYLLABLE HIEUH YE RIEULPHIEUPH +0xA08D 0xD62B #HANGUL SYLLABLE HIEUH YE RIEULHIEUH +0xA08E 0xD62C #HANGUL SYLLABLE HIEUH YE MIEUM +0xA08F 0xD62E #HANGUL SYLLABLE HIEUH YE PIEUPSIOS +0xA090 0xD62F #HANGUL SYLLABLE HIEUH YE SIOS +0xA091 0xD631 #HANGUL SYLLABLE HIEUH YE IEUNG +0xA092 0xD632 #HANGUL SYLLABLE HIEUH YE CIEUC +0xA093 0xD633 #HANGUL SYLLABLE HIEUH YE CHIEUCH +0xA094 0xD634 #HANGUL SYLLABLE HIEUH YE KHIEUKH +0xA095 0xD635 #HANGUL SYLLABLE HIEUH YE THIEUTH +0xA096 0xD636 #HANGUL SYLLABLE HIEUH YE PHIEUPH +0xA097 0xD637 #HANGUL SYLLABLE HIEUH YE HIEUH +0xA098 0xD61E #HANGUL SYLLABLE HIEUH YE SSANGKIYEOK +0xA099 0xD630 #HANGUL SYLLABLE HIEUH YE SSANGSIOS +0xA09A 0xD68F #HANGUL SYLLABLE HIEUH OE KIYEOKSIOS +0xA09B 0xD691 #HANGUL SYLLABLE HIEUH OE NIEUNCIEUC +0xA09C 0xD692 #HANGUL SYLLABLE HIEUH OE NIEUNHIEUH +0xA09D 0xD693 #HANGUL SYLLABLE HIEUH OE TIKEUT +0xA09E 0xD695 #HANGUL SYLLABLE HIEUH OE RIEULKIYEOK +0xA09F 0xD696 #HANGUL SYLLABLE HIEUH OE RIEULMIEUM +0xA0A0 0xD697 #HANGUL SYLLABLE HIEUH OE RIEULPIEUP +0xA0A1 0xD698 #HANGUL SYLLABLE HIEUH OE RIEULSIOS +0xA0A2 0xD699 #HANGUL SYLLABLE HIEUH OE RIEULTHIEUTH +0xA0A3 0xD69A #HANGUL SYLLABLE HIEUH OE RIEULPHIEUPH +0xA0A4 0xD69B #HANGUL SYLLABLE HIEUH OE RIEULHIEUH +0xA0A5 0xD69C #HANGUL SYLLABLE HIEUH OE MIEUM +0xA0A6 0xD69E #HANGUL SYLLABLE HIEUH OE PIEUPSIOS +0xA0A7 0xD6A2 #HANGUL SYLLABLE HIEUH OE CIEUC +0xA0A8 0xD6A3 #HANGUL SYLLABLE HIEUH OE CHIEUCH +0xA0A9 0xD6A4 #HANGUL SYLLABLE HIEUH OE KHIEUKH +0xA0AA 0xD6A5 #HANGUL SYLLABLE HIEUH OE THIEUTH +0xA0AB 0xD6A6 #HANGUL SYLLABLE HIEUH OE PHIEUPH +0xA0AC 0xD6A7 #HANGUL SYLLABLE HIEUH OE HIEUH +0xA0AD 0xD68E #HANGUL SYLLABLE HIEUH OE SSANGKIYEOK +0xA0AE 0xD6A0 #HANGUL SYLLABLE HIEUH OE SSANGSIOS +0xA0AF 0xD71B #HANGUL SYLLABLE HIEUH WI KIYEOKSIOS +0xA0B0 0xD71D #HANGUL SYLLABLE HIEUH WI NIEUNCIEUC +0xA0B1 0xD71E #HANGUL SYLLABLE HIEUH WI NIEUNHIEUH +0xA0B2 0xD71F #HANGUL SYLLABLE HIEUH WI TIKEUT +0xA0B3 0xD721 #HANGUL SYLLABLE HIEUH WI RIEULKIYEOK +0xA0B4 0xD722 #HANGUL SYLLABLE HIEUH WI RIEULMIEUM +0xA0B5 0xD723 #HANGUL SYLLABLE HIEUH WI RIEULPIEUP +0xA0B6 0xD724 #HANGUL SYLLABLE HIEUH WI RIEULSIOS +0xA0B7 0xD725 #HANGUL SYLLABLE HIEUH WI RIEULTHIEUTH +0xA0B8 0xD726 #HANGUL SYLLABLE HIEUH WI RIEULPHIEUPH +0xA0B9 0xD727 #HANGUL SYLLABLE HIEUH WI RIEULHIEUH +0xA0BA 0xD72A #HANGUL SYLLABLE HIEUH WI PIEUPSIOS +0xA0BB 0xD72E #HANGUL SYLLABLE HIEUH WI CIEUC +0xA0BC 0xD72F #HANGUL SYLLABLE HIEUH WI CHIEUCH +0xA0BD 0xD730 #HANGUL SYLLABLE HIEUH WI KHIEUKH +0xA0BE 0xD731 #HANGUL SYLLABLE HIEUH WI THIEUTH +0xA0BF 0xD732 #HANGUL SYLLABLE HIEUH WI PHIEUPH +0xA0C0 0xD733 #HANGUL SYLLABLE HIEUH WI HIEUH +0xA0C1 0xD71A #HANGUL SYLLABLE HIEUH WI SSANGKIYEOK +0xA0C2 0xD72C #HANGUL SYLLABLE HIEUH WI SSANGSIOS +0xA0C3 0xD76D #HANGUL SYLLABLE HIEUH YI KIYEOK +0xA0C4 0xD76F #HANGUL SYLLABLE HIEUH YI KIYEOKSIOS +0xA0C5 0xD771 #HANGUL SYLLABLE HIEUH YI NIEUNCIEUC +0xA0C6 0xD772 #HANGUL SYLLABLE HIEUH YI NIEUNHIEUH +0xA0C7 0xD773 #HANGUL SYLLABLE HIEUH YI TIKEUT +0xA0C8 0xD775 #HANGUL SYLLABLE HIEUH YI RIEULKIYEOK +0xA0C9 0xD776 #HANGUL SYLLABLE HIEUH YI RIEULMIEUM +0xA0CA 0xD777 #HANGUL SYLLABLE HIEUH YI RIEULPIEUP +0xA0CB 0xD778 #HANGUL SYLLABLE HIEUH YI RIEULSIOS +0xA0CC 0xD779 #HANGUL SYLLABLE HIEUH YI RIEULTHIEUTH +0xA0CD 0xD77A #HANGUL SYLLABLE HIEUH YI RIEULPHIEUPH +0xA0CE 0xD77B #HANGUL SYLLABLE HIEUH YI RIEULHIEUH +0xA0CF 0xD77E #HANGUL SYLLABLE HIEUH YI PIEUPSIOS +0xA0D0 0xD77F #HANGUL SYLLABLE HIEUH YI SIOS +0xA0D1 0xD782 #HANGUL SYLLABLE HIEUH YI CIEUC +0xA0D2 0xD783 #HANGUL SYLLABLE HIEUH YI CHIEUCH +0xA0D3 0xD784 #HANGUL SYLLABLE HIEUH YI KHIEUKH +0xA0D4 0xD785 #HANGUL SYLLABLE HIEUH YI THIEUTH +0xA0D5 0xD786 #HANGUL SYLLABLE HIEUH YI PHIEUPH +0xA0D6 0xD787 #HANGUL SYLLABLE HIEUH YI HIEUH +0xA0D7 0xD76E #HANGUL SYLLABLE HIEUH YI SSANGKIYEOK +0xA0D8 0xD780 #HANGUL SYLLABLE HIEUH YI SSANGSIOS +0xA0D9 0xD657 #HANGUL SYLLABLE HIEUH WA KIYEOKSIOS +0xA0DA 0xD659 #HANGUL SYLLABLE HIEUH WA NIEUNCIEUC +0xA0DB 0xD65A #HANGUL SYLLABLE HIEUH WA NIEUNHIEUH +0xA0DC 0xD65B #HANGUL SYLLABLE HIEUH WA TIKEUT +0xA0DD 0xD65D #HANGUL SYLLABLE HIEUH WA RIEULKIYEOK +0xA0DE 0xD65E #HANGUL SYLLABLE HIEUH WA RIEULMIEUM +0xA0DF 0xD65F #HANGUL SYLLABLE HIEUH WA RIEULPIEUP +0xA0E0 0xD660 #HANGUL SYLLABLE HIEUH WA RIEULSIOS +0xA0E1 0xD661 #HANGUL SYLLABLE HIEUH WA RIEULTHIEUTH +0xA0E2 0xD662 #HANGUL SYLLABLE HIEUH WA RIEULPHIEUPH +0xA0E3 0xD663 #HANGUL SYLLABLE HIEUH WA RIEULHIEUH +0xA0E4 0xD666 #HANGUL SYLLABLE HIEUH WA PIEUPSIOS +0xA0E5 0xD66A #HANGUL SYLLABLE HIEUH WA CIEUC +0xA0E6 0xD66B #HANGUL SYLLABLE HIEUH WA CHIEUCH +0xA0E7 0xD66C #HANGUL SYLLABLE HIEUH WA KHIEUKH +0xA0E8 0xD66D #HANGUL SYLLABLE HIEUH WA THIEUTH +0xA0E9 0xD66E #HANGUL SYLLABLE HIEUH WA PHIEUPH +0xA0EA 0xD66F #HANGUL SYLLABLE HIEUH WA HIEUH +0xA0EB 0xD656 #HANGUL SYLLABLE HIEUH WA SSANGKIYEOK +0xA0EC 0xD668 #HANGUL SYLLABLE HIEUH WA SSANGSIOS +0xA0ED 0xD6E3 #HANGUL SYLLABLE HIEUH WEO KIYEOKSIOS +0xA0EE 0xD6E5 #HANGUL SYLLABLE HIEUH WEO NIEUNCIEUC +0xA0EF 0xD6E6 #HANGUL SYLLABLE HIEUH WEO NIEUNHIEUH +0xA0F0 0xD6E7 #HANGUL SYLLABLE HIEUH WEO TIKEUT +0xA0F1 0xD6E9 #HANGUL SYLLABLE HIEUH WEO RIEULKIYEOK +0xA0F2 0xD6EA #HANGUL SYLLABLE HIEUH WEO RIEULMIEUM +0xA0F3 0xD6EB #HANGUL SYLLABLE HIEUH WEO RIEULPIEUP +0xA0F4 0xD6EC #HANGUL SYLLABLE HIEUH WEO RIEULSIOS +0xA0F5 0xD6ED #HANGUL SYLLABLE HIEUH WEO RIEULTHIEUTH +0xA0F6 0xD6EE #HANGUL SYLLABLE HIEUH WEO RIEULPHIEUPH +0xA0F7 0xD6EF #HANGUL SYLLABLE HIEUH WEO RIEULHIEUH +0xA0F8 0xD6F1 #HANGUL SYLLABLE HIEUH WEO PIEUP +0xA0F9 0xD6F2 #HANGUL SYLLABLE HIEUH WEO PIEUPSIOS +0xA0FA 0xD6F3 #HANGUL SYLLABLE HIEUH WEO SIOS +0xA0FB 0xD6F6 #HANGUL SYLLABLE HIEUH WEO CIEUC +0xA0FC 0xD6F7 #HANGUL SYLLABLE HIEUH WEO CHIEUCH +0xA0FD 0xD6F8 #HANGUL SYLLABLE HIEUH WEO KHIEUKH +0xA0FE 0xD6F9 #HANGUL SYLLABLE HIEUH WEO THIEUTH +0xA141 0xD6FA #HANGUL SYLLABLE HIEUH WEO PHIEUPH +0xA142 0xD6FB #HANGUL SYLLABLE HIEUH WEO HIEUH +0xA143 0xD6E2 #HANGUL SYLLABLE HIEUH WEO SSANGKIYEOK +0xA144 0xD6F4 #HANGUL SYLLABLE HIEUH WEO SSANGSIOS +0xA145 0xD673 #HANGUL SYLLABLE HIEUH WAE KIYEOKSIOS +0xA146 0xD675 #HANGUL SYLLABLE HIEUH WAE NIEUNCIEUC +0xA147 0xD676 #HANGUL SYLLABLE HIEUH WAE NIEUNHIEUH +0xA148 0xD677 #HANGUL SYLLABLE HIEUH WAE TIKEUT +0xA149 0xD678 #HANGUL SYLLABLE HIEUH WAE RIEUL +0xA14A 0xD679 #HANGUL SYLLABLE HIEUH WAE RIEULKIYEOK +0xA14B 0xD67A #HANGUL SYLLABLE HIEUH WAE RIEULMIEUM +0xA14C 0xD67B #HANGUL SYLLABLE HIEUH WAE RIEULPIEUP +0xA14D 0xD67C #HANGUL SYLLABLE HIEUH WAE RIEULSIOS +0xA14E 0xD67D #HANGUL SYLLABLE HIEUH WAE RIEULTHIEUTH +0xA14F 0xD67E #HANGUL SYLLABLE HIEUH WAE RIEULPHIEUPH +0xA150 0xD67F #HANGUL SYLLABLE HIEUH WAE RIEULHIEUH +0xA151 0xD680 #HANGUL SYLLABLE HIEUH WAE MIEUM +0xA152 0xD681 #HANGUL SYLLABLE HIEUH WAE PIEUP +0xA153 0xD682 #HANGUL SYLLABLE HIEUH WAE PIEUPSIOS +0xA154 0xD686 #HANGUL SYLLABLE HIEUH WAE CIEUC +0xA155 0xD687 #HANGUL SYLLABLE HIEUH WAE CHIEUCH +0xA156 0xD688 #HANGUL SYLLABLE HIEUH WAE KHIEUKH +0xA157 0xD689 #HANGUL SYLLABLE HIEUH WAE THIEUTH +0xA158 0xD68A #HANGUL SYLLABLE HIEUH WAE PHIEUPH +0xA159 0xD68B #HANGUL SYLLABLE HIEUH WAE HIEUH +0xA15A 0xD672 #HANGUL SYLLABLE HIEUH WAE SSANGKIYEOK +0xA161 0xD6FF #HANGUL SYLLABLE HIEUH WE KIYEOKSIOS +0xA162 0xD701 #HANGUL SYLLABLE HIEUH WE NIEUNCIEUC +0xA163 0xD702 #HANGUL SYLLABLE HIEUH WE NIEUNHIEUH +0xA164 0xD703 #HANGUL SYLLABLE HIEUH WE TIKEUT +0xA165 0xD705 #HANGUL SYLLABLE HIEUH WE RIEULKIYEOK +0xA166 0xD706 #HANGUL SYLLABLE HIEUH WE RIEULMIEUM +0xA167 0xD707 #HANGUL SYLLABLE HIEUH WE RIEULPIEUP +0xA168 0xD708 #HANGUL SYLLABLE HIEUH WE RIEULSIOS +0xA169 0xD709 #HANGUL SYLLABLE HIEUH WE RIEULTHIEUTH +0xA16A 0xD70A #HANGUL SYLLABLE HIEUH WE RIEULPHIEUPH +0xA16B 0xD70B #HANGUL SYLLABLE HIEUH WE RIEULHIEUH +0xA16C 0xD70C #HANGUL SYLLABLE HIEUH WE MIEUM +0xA16D 0xD70D #HANGUL SYLLABLE HIEUH WE PIEUP +0xA16E 0xD70E #HANGUL SYLLABLE HIEUH WE PIEUPSIOS +0xA16F 0xD70F #HANGUL SYLLABLE HIEUH WE SIOS +0xA170 0xD712 #HANGUL SYLLABLE HIEUH WE CIEUC +0xA171 0xD713 #HANGUL SYLLABLE HIEUH WE CHIEUCH +0xA172 0xD714 #HANGUL SYLLABLE HIEUH WE KHIEUKH +0xA173 0xD715 #HANGUL SYLLABLE HIEUH WE THIEUTH +0xA174 0xD716 #HANGUL SYLLABLE HIEUH WE PHIEUPH +0xA175 0xD717 #HANGUL SYLLABLE HIEUH WE HIEUH +0xA176 0xD6FE #HANGUL SYLLABLE HIEUH WE SSANGKIYEOK +0xA177 0xD710 #HANGUL SYLLABLE HIEUH WE SSANGSIOS +0xA178 0xAE4F #HANGUL SYLLABLE SSANGKIYEOK A KIYEOKSIOS +0xA179 0xAE51 #HANGUL SYLLABLE SSANGKIYEOK A NIEUNCIEUC +0xA17A 0xAE52 #HANGUL SYLLABLE SSANGKIYEOK A NIEUNHIEUH +0xA181 0xAE55 #HANGUL SYLLABLE SSANGKIYEOK A RIEULKIYEOK +0xA182 0xAE57 #HANGUL SYLLABLE SSANGKIYEOK A RIEULPIEUP +0xA183 0xAE58 #HANGUL SYLLABLE SSANGKIYEOK A RIEULSIOS +0xA184 0xAE59 #HANGUL SYLLABLE SSANGKIYEOK A RIEULTHIEUTH +0xA185 0xAE5A #HANGUL SYLLABLE SSANGKIYEOK A RIEULPHIEUPH +0xA186 0xAE5B #HANGUL SYLLABLE SSANGKIYEOK A RIEULHIEUH +0xA187 0xAE5E #HANGUL SYLLABLE SSANGKIYEOK A PIEUPSIOS +0xA188 0xAE62 #HANGUL SYLLABLE SSANGKIYEOK A CIEUC +0xA189 0xAE63 #HANGUL SYLLABLE SSANGKIYEOK A CHIEUCH +0xA18A 0xAE64 #HANGUL SYLLABLE SSANGKIYEOK A KHIEUKH +0xA18B 0xAE66 #HANGUL SYLLABLE SSANGKIYEOK A PHIEUPH +0xA18C 0xAE67 #HANGUL SYLLABLE SSANGKIYEOK A HIEUH +0xA18D 0xAE87 #HANGUL SYLLABLE SSANGKIYEOK YA KIYEOKSIOS +0xA18E 0xAE89 #HANGUL SYLLABLE SSANGKIYEOK YA NIEUNCIEUC +0xA18F 0xAE8A #HANGUL SYLLABLE SSANGKIYEOK YA NIEUNHIEUH +0xA190 0xAE8B #HANGUL SYLLABLE SSANGKIYEOK YA TIKEUT +0xA191 0xAE8D #HANGUL SYLLABLE SSANGKIYEOK YA RIEULKIYEOK +0xA192 0xAE8E #HANGUL SYLLABLE SSANGKIYEOK YA RIEULMIEUM +0xA193 0xAE8F #HANGUL SYLLABLE SSANGKIYEOK YA RIEULPIEUP +0xA194 0xAE90 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULSIOS +0xA195 0xAE91 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULTHIEUTH +0xA196 0xAE92 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULPHIEUPH +0xA197 0xAE93 #HANGUL SYLLABLE SSANGKIYEOK YA RIEULHIEUH +0xA198 0xAE94 #HANGUL SYLLABLE SSANGKIYEOK YA MIEUM +0xA199 0xAE95 #HANGUL SYLLABLE SSANGKIYEOK YA PIEUP +0xA19A 0xAE96 #HANGUL SYLLABLE SSANGKIYEOK YA PIEUPSIOS +0xA19B 0xAE97 #HANGUL SYLLABLE SSANGKIYEOK YA SIOS +0xA19C 0xAE99 #HANGUL SYLLABLE SSANGKIYEOK YA IEUNG +0xA19D 0xAE9A #HANGUL SYLLABLE SSANGKIYEOK YA CIEUC +0xA19E 0xAE9B #HANGUL SYLLABLE SSANGKIYEOK YA CHIEUCH +0xA19F 0xAE9C #HANGUL SYLLABLE SSANGKIYEOK YA KHIEUKH +0xA1A0 0xAE9D #HANGUL SYLLABLE SSANGKIYEOK YA THIEUTH +0xA1A1 0x3000 #IDEOGRAPHIC SPACE +0xA1A2 0x3001 #IDEOGRAPHIC COMMA +0xA1A3 0x3002 #IDEOGRAPHIC FULL STOP +0xA1A4 0xFF0C #FULLWIDTH COMMA +0xA1A5 0xFF0E #FULLWIDTH FULL STOP +0xA1A6 0x00B7 #MIDDLE DOT +0xA1A7 0xFF1A #FULLWIDTH COLON +0xA1A8 0xFF1B #FULLWIDTH SEMICOLON +0xA1A9 0xFF1F #FULLWIDTH QUESTION MARK +0xA1AA 0xFF01 #FULLWIDTH EXCLAMATION MARK +0xA1AB 0x2025 #TWO DOT LEADER +0xA1AC 0x2026 #HORIZONTAL ELLIPSIS +0xA1AD 0xFF5E #FULLWIDTH TILDE +0xA1AE 0x3003 #DITTO MARK +0xA1AF 0x2015 #HORIZONTAL BAR +0xA1B0 0x2010 #HYPHEN +0xA1B1 0xFF3F #FULLWIDTH LOW LINE +0xA1B2 0xFFE3 #FULLWIDTH MACRON +0xA1B3 0xFF0F #FULLWIDTH SOLIDUS +0xA1B4 0xFF3C #FULLWIDTH REVERSE SOLIDUS +0xA1B5 0xFF5C #FULLWIDTH VERTICAL LINE +0xA1B6 0x2225 #PARALLEL TO +0xA1B7 0x2215 #DIVISION SLASH +0xA1B8 0x2216 #SET MINUS +0xA1B9 0x309B #KATAKANA-HIRAGANA VOICED SOUND MARK +0xA1BA 0x309C #KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +0xA1BB 0x00B4 #ACUTE ACCENT +0xA1BC 0xFF40 #FULLWIDTH GRAVE ACCENT +0xA1BD 0x00A8 #DIAERESIS +0xA1BE 0xFF3E #FULLWIDTH CIRCUMFLEX ACCENT +0xA1BF 0x02C7 #CARON +0xA1C0 0x02D9 #DOT ABOVE +0xA1C1 0x02BC #MODIFIER LETTER APOSTROPHE +0xA1C2 0x02DA #RING ABOVE +0xA1C3 0x02CA #MODIFIER LETTER ACUTE ACCENT +0xA1C4 0x22EE #VERTICAL ELLIPSIS +0xA1C5 0xF104 #vertical tilde +# 0xA1C5 0x2E2F #VERTICAL TILDE (assigned character with same name but different glyph) +0xA1C6 0x2018 #LEFT SINGLE QUOTATION MARK +0xA1C7 0x2019 #RIGHT SINGLE QUOTATION MARK +0xA1C8 0x201C #LEFT DOUBLE QUOTATION MARK +0xA1C9 0x201D #RIGHT DOUBLE QUOTATION MARK +0xA1CA 0xFF08 #FULLWIDTH LEFT PARENTHESIS +0xA1CB 0xFF09 #FULLWIDTH RIGHT PARENTHESIS +0xA1CC 0x3014 #LEFT TORTOISE SHELL BRACKET +0xA1CD 0x3015 #RIGHT TORTOISE SHELL BRACKET +0xA1CE 0xFF3B #FULLWIDTH LEFT SQUARE BRACKET +0xA1CF 0xFF3D #FULLWIDTH RIGHT SQUARE BRACKET +0xA1D0 0xFF5B #FULLWIDTH LEFT CURLY BRACKET +0xA1D1 0xFF5D #FULLWIDTH RIGHT CURLY BRACKET +0xA1D2 0x3008 #LEFT ANGLE BRACKET +0xA1D3 0x3009 #RIGHT ANGLE BRACKET +0xA1D4 0x300A #LEFT DOUBLE ANGLE BRACKET +0xA1D5 0x300B #RIGHT DOUBLE ANGLE BRACKET +0xA1D6 0x300C #LEFT CORNER BRACKET +0xA1D7 0x300D #RIGHT CORNER BRACKET +0xA1D8 0x300E #LEFT WHITE CORNER BRACKET +0xA1D9 0x300F #RIGHT WHITE CORNER BRACKET +0xA1DA 0x3010 #LEFT BLACK LENTICULAR BRACKET +0xA1DB 0x3011 #RIGHT BLACK LENTICULAR BRACKET +0xA1DC 0xF105 #right parenthesis with full stop +0xA1DD 0xF106 #right double angle bracket with full stop +0xA1DE 0x201A #SINGLE LOW-9 QUOTATION MARK +0xA1DF 0x201B #SINGLE HIGH-REVERSED-9 QUOTATION MARK +0xA1E0 0x201E #DOUBLE LOW-9 QUOTATION MARK +0xA1E1 0x201F #DOUBLE HIGH-REVERSED-9 QUOTATION MARK +0xA1E2 0xFE35 #PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS +0xA1E3 0xFE36 #PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS +0xA1E4 0xFE39 #PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET +0xA1E5 0xFE3A #PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET +0xA1E6 0xFE47 #PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET +0xA1E7 0xFE48 #PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET +0xA1E8 0xFE37 #PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET +0xA1E9 0xFE38 #PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET +0xA1EA 0xFE3F #PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET +0xA1EB 0xFE40 #PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET +0xA1EC 0xFE3D #PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET +0xA1ED 0xFE3E #PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET +0xA1EE 0xFE41 #PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +0xA1EF 0xFE42 #PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +0xA1F0 0xFE43 #PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +0xA1F1 0xFE44 #PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +0xA1F2 0xFE3B #PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET +0xA1F3 0xFE3C #PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET +0xA241 0xAE9E #HANGUL SYLLABLE SSANGKIYEOK YA PHIEUPH +0xA242 0xAE9F #HANGUL SYLLABLE SSANGKIYEOK YA HIEUH +0xA243 0xAE86 #HANGUL SYLLABLE SSANGKIYEOK YA SSANGKIYEOK +0xA244 0xAE98 #HANGUL SYLLABLE SSANGKIYEOK YA SSANGSIOS +0xA245 0xAEBF #HANGUL SYLLABLE SSANGKIYEOK EO KIYEOKSIOS +0xA246 0xAEC1 #HANGUL SYLLABLE SSANGKIYEOK EO NIEUNCIEUC +0xA247 0xAEC2 #HANGUL SYLLABLE SSANGKIYEOK EO NIEUNHIEUH +0xA248 0xAEC3 #HANGUL SYLLABLE SSANGKIYEOK EO TIKEUT +0xA249 0xAEC5 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULKIYEOK +0xA24A 0xAEC6 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULMIEUM +0xA24B 0xAEC7 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULPIEUP +0xA24C 0xAEC8 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULSIOS +0xA24D 0xAEC9 #HANGUL SYLLABLE SSANGKIYEOK EO RIEULTHIEUTH +0xA24E 0xAECA #HANGUL SYLLABLE SSANGKIYEOK EO RIEULPHIEUPH +0xA24F 0xAECB #HANGUL SYLLABLE SSANGKIYEOK EO RIEULHIEUH +0xA250 0xAECE #HANGUL SYLLABLE SSANGKIYEOK EO PIEUPSIOS +0xA251 0xAED2 #HANGUL SYLLABLE SSANGKIYEOK EO CIEUC +0xA252 0xAED3 #HANGUL SYLLABLE SSANGKIYEOK EO CHIEUCH +0xA253 0xAED4 #HANGUL SYLLABLE SSANGKIYEOK EO KHIEUKH +0xA254 0xAED5 #HANGUL SYLLABLE SSANGKIYEOK EO THIEUTH +0xA255 0xAED6 #HANGUL SYLLABLE SSANGKIYEOK EO PHIEUPH +0xA256 0xAED7 #HANGUL SYLLABLE SSANGKIYEOK EO HIEUH +0xA257 0xAEF5 #HANGUL SYLLABLE SSANGKIYEOK YEO KIYEOK +0xA258 0xAEF7 #HANGUL SYLLABLE SSANGKIYEOK YEO KIYEOKSIOS +0xA259 0xAEF9 #HANGUL SYLLABLE SSANGKIYEOK YEO NIEUNCIEUC +0xA25A 0xAEFA #HANGUL SYLLABLE SSANGKIYEOK YEO NIEUNHIEUH +0xA261 0xAEFB #HANGUL SYLLABLE SSANGKIYEOK YEO TIKEUT +0xA262 0xAEFD #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULKIYEOK +0xA263 0xAEFE #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULMIEUM +0xA264 0xAEFF #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULPIEUP +0xA265 0xAF00 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULSIOS +0xA266 0xAF01 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULTHIEUTH +0xA267 0xAF02 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULPHIEUPH +0xA268 0xAF03 #HANGUL SYLLABLE SSANGKIYEOK YEO RIEULHIEUH +0xA269 0xAF04 #HANGUL SYLLABLE SSANGKIYEOK YEO MIEUM +0xA26A 0xAF05 #HANGUL SYLLABLE SSANGKIYEOK YEO PIEUP +0xA26B 0xAF06 #HANGUL SYLLABLE SSANGKIYEOK YEO PIEUPSIOS +0xA26C 0xAF09 #HANGUL SYLLABLE SSANGKIYEOK YEO IEUNG +0xA26D 0xAF0A #HANGUL SYLLABLE SSANGKIYEOK YEO CIEUC +0xA26E 0xAF0B #HANGUL SYLLABLE SSANGKIYEOK YEO CHIEUCH +0xA26F 0xAF0C #HANGUL SYLLABLE SSANGKIYEOK YEO KHIEUKH +0xA270 0xAF0E #HANGUL SYLLABLE SSANGKIYEOK YEO PHIEUPH +0xA271 0xAF0F #HANGUL SYLLABLE SSANGKIYEOK YEO HIEUH +0xA272 0xAEF6 #HANGUL SYLLABLE SSANGKIYEOK YEO SSANGKIYEOK +0xA273 0xAF2F #HANGUL SYLLABLE SSANGKIYEOK O KIYEOKSIOS +0xA274 0xAF33 #HANGUL SYLLABLE SSANGKIYEOK O TIKEUT +0xA275 0xAF35 #HANGUL SYLLABLE SSANGKIYEOK O RIEULKIYEOK +0xA276 0xAF36 #HANGUL SYLLABLE SSANGKIYEOK O RIEULMIEUM +0xA277 0xAF37 #HANGUL SYLLABLE SSANGKIYEOK O RIEULPIEUP +0xA278 0xAF38 #HANGUL SYLLABLE SSANGKIYEOK O RIEULSIOS +0xA279 0xAF39 #HANGUL SYLLABLE SSANGKIYEOK O RIEULTHIEUTH +0xA27A 0xAF3A #HANGUL SYLLABLE SSANGKIYEOK O RIEULPHIEUPH +0xA281 0xAF3B #HANGUL SYLLABLE SSANGKIYEOK O RIEULHIEUH +0xA282 0xAF3E #HANGUL SYLLABLE SSANGKIYEOK O PIEUPSIOS +0xA283 0xAF44 #HANGUL SYLLABLE SSANGKIYEOK O KHIEUKH +0xA284 0xAF45 #HANGUL SYLLABLE SSANGKIYEOK O THIEUTH +0xA285 0xAF46 #HANGUL SYLLABLE SSANGKIYEOK O PHIEUPH +0xA286 0xAF47 #HANGUL SYLLABLE SSANGKIYEOK O HIEUH +0xA287 0xAF2E #HANGUL SYLLABLE SSANGKIYEOK O SSANGKIYEOK +0xA288 0xAF40 #HANGUL SYLLABLE SSANGKIYEOK O SSANGSIOS +0xA289 0xAF9D #HANGUL SYLLABLE SSANGKIYEOK YO KIYEOK +0xA28A 0xAF9F #HANGUL SYLLABLE SSANGKIYEOK YO KIYEOKSIOS +0xA28B 0xAFA0 #HANGUL SYLLABLE SSANGKIYEOK YO NIEUN +0xA28C 0xAFA1 #HANGUL SYLLABLE SSANGKIYEOK YO NIEUNCIEUC +0xA28D 0xAFA2 #HANGUL SYLLABLE SSANGKIYEOK YO NIEUNHIEUH +0xA28E 0xAFA3 #HANGUL SYLLABLE SSANGKIYEOK YO TIKEUT +0xA28F 0xAFA4 #HANGUL SYLLABLE SSANGKIYEOK YO RIEUL +0xA290 0xAFA5 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULKIYEOK +0xA291 0xAFA6 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULMIEUM +0xA292 0xAFA7 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULPIEUP +0xA293 0xAFA8 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULSIOS +0xA294 0xAFA9 #HANGUL SYLLABLE SSANGKIYEOK YO RIEULTHIEUTH +0xA295 0xAFAA #HANGUL SYLLABLE SSANGKIYEOK YO RIEULPHIEUPH +0xA296 0xAFAB #HANGUL SYLLABLE SSANGKIYEOK YO RIEULHIEUH +0xA297 0xAFAC #HANGUL SYLLABLE SSANGKIYEOK YO MIEUM +0xA298 0xAFAD #HANGUL SYLLABLE SSANGKIYEOK YO PIEUP +0xA299 0xAFAE #HANGUL SYLLABLE SSANGKIYEOK YO PIEUPSIOS +0xA29A 0xAFAF #HANGUL SYLLABLE SSANGKIYEOK YO SIOS +0xA29B 0xAFB1 #HANGUL SYLLABLE SSANGKIYEOK YO IEUNG +0xA29C 0xAFB2 #HANGUL SYLLABLE SSANGKIYEOK YO CIEUC +0xA29D 0xAFB3 #HANGUL SYLLABLE SSANGKIYEOK YO CHIEUCH +0xA29E 0xAFB4 #HANGUL SYLLABLE SSANGKIYEOK YO KHIEUKH +0xA29F 0xAFB5 #HANGUL SYLLABLE SSANGKIYEOK YO THIEUTH +0xA2A0 0xAFB6 #HANGUL SYLLABLE SSANGKIYEOK YO PHIEUPH +0xA2A1 0xFF0B #FULLWIDTH PLUS SIGN +0xA2A2 0xFF0D #FULLWIDTH HYPHEN-MINUS +0xA2A3 0x00B1 #PLUS-MINUS SIGN +0xA2A4 0x00D7 #MULTIPLICATION SIGN +0xA2A5 0x00F7 #DIVISION SIGN +0xA2A6 0xFF1D #FULLWIDTH EQUALS SIGN +0xA2A7 0x2260 #NOT EQUAL TO +0xA2A8 0xFF1C #FULLWIDTH LESS-THAN SIGN +0xA2A9 0xFF1E #FULLWIDTH GREATER-THAN SIGN +0xA2AA 0x2266 #LESS-THAN OVER EQUAL TO +0xA2AB 0x2267 #GREATER-THAN OVER EQUAL TO +0xA2AC 0x221E #INFINITY +0xA2AD 0x2234 #THEREFORE +0xA2AE 0x2642 #MALE SIGN +0xA2AF 0x2640 #FEMALE SIGN +0xA2B0 0x2220 #ANGLE +0xA2B1 0x22A5 #UP TACK +0xA2B2 0x2312 #ARC +0xA2B3 0x2202 #PARTIAL DIFFERENTIAL +0xA2B4 0x2207 #NABLA +0xA2B5 0x2261 #IDENTICAL TO +0xA2B6 0x2252 #APPROXIMATELY EQUAL TO OR THE IMAGE OF +0xA2B7 0x2248 #ALMOST EQUAL TO +0xA2B8 0x226A #MUCH LESS-THAN +0xA2B9 0x226B #MUCH GREATER-THAN +0xA2BA 0x221A #SQUARE ROOT +0xA2BB 0x223D #REVERSED TILDE +0xA2BC 0x221D #PROPORTIONAL TO +0xA2BD 0x2235 #BECAUSE +0xA2BE 0x222B #INTEGRAL +0xA2BF 0x222C #DOUBLE INTEGRAL +0xA2C0 0x222E #CONTOUR INTEGRAL +0xA2C1 0x2208 #ELEMENT OF +0xA2C2 0x220B #CONTAINS AS MEMBER +0xA2C3 0x2286 #SUBSET OF OR EQUAL TO +0xA2C4 0x2287 #SUPERSET OF OR EQUAL TO +0xA2C5 0x2282 #SUBSET OF +0xA2C6 0x2283 #SUPERSET OF +0xA2C7 0x2209 #NOT AN ELEMENT OF +0xA2C8 0x220C #DOES NOT CONTAIN AS MEMBER +0xA2C9 0x2288 #NEITHER A SUBSET OF NOR EQUAL TO +0xA2CA 0x2289 #NEITHER A SUPERSET OF NOR EQUAL TO +0xA2CB 0x2284 #NOT A SUBSET OF +0xA2CC 0x2285 #NOT A SUPERSET OF +0xA2CD 0x222A #UNION +0xA2CE 0x2229 #INTERSECTION +0xA2CF 0x2227 #LOGICAL AND +0xA2D0 0x2228 #LOGICAL OR +0xA2D1 0xFFE2 #FULLWIDTH NOT SIGN +0xA2D2 0x21D2 #RIGHTWARDS DOUBLE ARROW +0xA2D3 0x21D4 #LEFT RIGHT DOUBLE ARROW +0xA2D4 0x2200 #FOR ALL +0xA2D5 0x2203 #THERE EXISTS +0xA2D6 0x2211 #N-ARY SUMMATION +0xA2D7 0xFF03 #FULLWIDTH NUMBER SIGN +0xA2D8 0xFF06 #FULLWIDTH AMPERSAND +0xA2D9 0xFF0A #FULLWIDTH ASTERISK +0xA2DA 0xFF20 #FULLWIDTH COMMERCIAL AT +0xA2DB 0x00A7 #SECTION SIGN +0xA2DC 0x203B #REFERENCE MARK +0xA2DD 0x2606 #WHITE STAR +0xA2DE 0x2605 #BLACK STAR +0xA2DF 0x25CB #WHITE CIRCLE +0xA2E0 0x25CF #BLACK CIRCLE +0xA2E1 0x25CE #BULLSEYE +0xA2E2 0x25C7 #WHITE DIAMOND +0xA2E3 0x25C6 #BLACK DIAMOND +0xA2E4 0x25A1 #WHITE SQUARE +0xA2E5 0x25A0 #BLACK SQUARE +0xA2E6 0x25B3 #WHITE UP-POINTING TRIANGLE +0xA2E7 0x25B2 #BLACK UP-POINTING TRIANGLE +0xA2E8 0x25BD #WHITE DOWN-POINTING TRIANGLE +0xA2E9 0x25BC #BLACK DOWN-POINTING TRIANGLE +0xA2EA 0x25B7 #WHITE RIGHT-POINTING TRIANGLE +0xA2EB 0x25C1 #WHITE LEFT-POINTING TRIANGLE +0xA2EC 0x25B6 #BLACK RIGHT-POINTING TRIANGLE +0xA2ED 0x25C0 #BLACK LEFT-POINTING TRIANGLE +0xA2EE 0x2218 #RING OPERATOR +0xA2EF 0x2219 #BULLET OPERATOR +0xA2F0 0x2756 #BLACK DIAMOND MINUS WHITE X +0xA2F1 0xF10D #white up-pointing triangle with black triangle +0xA2F2 0xF10E #white up-pointing triangle with horizontal fill +0xA2F3 0xF10F #white up-pointing triangle with upper left to lower right fill +0xA2F4 0xF110 #white up-pointing triangle with upper right to lower left fill +0xA2F5 0x2690 #WHITE FLAG +0xA2F6 0x2691 #BLACK FLAG +0xA2F7 0x266F #MUSIC SHARP SIGN +0xA2F8 0x266D #MUSIC FLAT SIGN +0xA2F9 0x266A #EIGHTH NOTE +0xA2FA 0x2020 #DAGGER +0xA2FB 0x2021 #DOUBLE DAGGER +0xA2FC 0x00B6 #PILCROW SIGN +0xA2FD 0x2295 #CIRCLED PLUS +0xA2FE 0x2296 #CIRCLED MINUS +0xA341 0xAFB7 #HANGUL SYLLABLE SSANGKIYEOK YO HIEUH +0xA342 0xAF9E #HANGUL SYLLABLE SSANGKIYEOK YO SSANGKIYEOK +0xA343 0xAFB0 #HANGUL SYLLABLE SSANGKIYEOK YO SSANGSIOS +0xA344 0xAFBB #HANGUL SYLLABLE SSANGKIYEOK U KIYEOKSIOS +0xA345 0xAFBD #HANGUL SYLLABLE SSANGKIYEOK U NIEUNCIEUC +0xA346 0xAFBE #HANGUL SYLLABLE SSANGKIYEOK U NIEUNHIEUH +0xA347 0xAFC1 #HANGUL SYLLABLE SSANGKIYEOK U RIEULKIYEOK +0xA348 0xAFC2 #HANGUL SYLLABLE SSANGKIYEOK U RIEULMIEUM +0xA349 0xAFC3 #HANGUL SYLLABLE SSANGKIYEOK U RIEULPIEUP +0xA34A 0xAFC4 #HANGUL SYLLABLE SSANGKIYEOK U RIEULSIOS +0xA34B 0xAFC5 #HANGUL SYLLABLE SSANGKIYEOK U RIEULTHIEUTH +0xA34C 0xAFC6 #HANGUL SYLLABLE SSANGKIYEOK U RIEULPHIEUPH +0xA34D 0xAFCA #HANGUL SYLLABLE SSANGKIYEOK U PIEUPSIOS +0xA34E 0xAFCF #HANGUL SYLLABLE SSANGKIYEOK U CHIEUCH +0xA34F 0xAFD0 #HANGUL SYLLABLE SSANGKIYEOK U KHIEUKH +0xA350 0xAFD1 #HANGUL SYLLABLE SSANGKIYEOK U THIEUTH +0xA351 0xAFD2 #HANGUL SYLLABLE SSANGKIYEOK U PHIEUPH +0xA352 0xAFD3 #HANGUL SYLLABLE SSANGKIYEOK U HIEUH +0xA353 0xAFBA #HANGUL SYLLABLE SSANGKIYEOK U SSANGKIYEOK +0xA354 0xAFCC #HANGUL SYLLABLE SSANGKIYEOK U SSANGSIOS +0xA355 0xB029 #HANGUL SYLLABLE SSANGKIYEOK YU KIYEOK +0xA356 0xB02B #HANGUL SYLLABLE SSANGKIYEOK YU KIYEOKSIOS +0xA357 0xB02C #HANGUL SYLLABLE SSANGKIYEOK YU NIEUN +0xA358 0xB02D #HANGUL SYLLABLE SSANGKIYEOK YU NIEUNCIEUC +0xA359 0xB02E #HANGUL SYLLABLE SSANGKIYEOK YU NIEUNHIEUH +0xA35A 0xB02F #HANGUL SYLLABLE SSANGKIYEOK YU TIKEUT +0xA361 0xB030 #HANGUL SYLLABLE SSANGKIYEOK YU RIEUL +0xA362 0xB031 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULKIYEOK +0xA363 0xB032 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULMIEUM +0xA364 0xB033 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULPIEUP +0xA365 0xB034 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULSIOS +0xA366 0xB035 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULTHIEUTH +0xA367 0xB036 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULPHIEUPH +0xA368 0xB037 #HANGUL SYLLABLE SSANGKIYEOK YU RIEULHIEUH +0xA369 0xB038 #HANGUL SYLLABLE SSANGKIYEOK YU MIEUM +0xA36A 0xB039 #HANGUL SYLLABLE SSANGKIYEOK YU PIEUP +0xA36B 0xB03A #HANGUL SYLLABLE SSANGKIYEOK YU PIEUPSIOS +0xA36C 0xB03B #HANGUL SYLLABLE SSANGKIYEOK YU SIOS +0xA36D 0xB03D #HANGUL SYLLABLE SSANGKIYEOK YU IEUNG +0xA36E 0xB03E #HANGUL SYLLABLE SSANGKIYEOK YU CIEUC +0xA36F 0xB03F #HANGUL SYLLABLE SSANGKIYEOK YU CHIEUCH +0xA370 0xB040 #HANGUL SYLLABLE SSANGKIYEOK YU KHIEUKH +0xA371 0xB041 #HANGUL SYLLABLE SSANGKIYEOK YU THIEUTH +0xA372 0xB042 #HANGUL SYLLABLE SSANGKIYEOK YU PHIEUPH +0xA373 0xB043 #HANGUL SYLLABLE SSANGKIYEOK YU HIEUH +0xA374 0xB02A #HANGUL SYLLABLE SSANGKIYEOK YU SSANGKIYEOK +0xA375 0xB03C #HANGUL SYLLABLE SSANGKIYEOK YU SSANGSIOS +0xA376 0xB047 #HANGUL SYLLABLE SSANGKIYEOK EU KIYEOKSIOS +0xA377 0xB049 #HANGUL SYLLABLE SSANGKIYEOK EU NIEUNCIEUC +0xA378 0xB04B #HANGUL SYLLABLE SSANGKIYEOK EU TIKEUT +0xA379 0xB04D #HANGUL SYLLABLE SSANGKIYEOK EU RIEULKIYEOK +0xA37A 0xB04F #HANGUL SYLLABLE SSANGKIYEOK EU RIEULPIEUP +0xA381 0xB050 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULSIOS +0xA382 0xB051 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULTHIEUTH +0xA383 0xB052 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULPHIEUPH +0xA384 0xB056 #HANGUL SYLLABLE SSANGKIYEOK EU PIEUPSIOS +0xA385 0xB05A #HANGUL SYLLABLE SSANGKIYEOK EU CIEUC +0xA386 0xB05B #HANGUL SYLLABLE SSANGKIYEOK EU CHIEUCH +0xA387 0xB05C #HANGUL SYLLABLE SSANGKIYEOK EU KHIEUKH +0xA388 0xB05E #HANGUL SYLLABLE SSANGKIYEOK EU PHIEUPH +0xA389 0xB05F #HANGUL SYLLABLE SSANGKIYEOK EU HIEUH +0xA38A 0xB046 #HANGUL SYLLABLE SSANGKIYEOK EU SSANGKIYEOK +0xA38B 0xB058 #HANGUL SYLLABLE SSANGKIYEOK EU SSANGSIOS +0xA38C 0xB07F #HANGUL SYLLABLE SSANGKIYEOK I KIYEOKSIOS +0xA38D 0xB081 #HANGUL SYLLABLE SSANGKIYEOK I NIEUNCIEUC +0xA38E 0xB082 #HANGUL SYLLABLE SSANGKIYEOK I NIEUNHIEUH +0xA38F 0xB083 #HANGUL SYLLABLE SSANGKIYEOK I TIKEUT +0xA390 0xB085 #HANGUL SYLLABLE SSANGKIYEOK I RIEULKIYEOK +0xA391 0xB086 #HANGUL SYLLABLE SSANGKIYEOK I RIEULMIEUM +0xA392 0xB087 #HANGUL SYLLABLE SSANGKIYEOK I RIEULPIEUP +0xA393 0xB088 #HANGUL SYLLABLE SSANGKIYEOK I RIEULSIOS +0xA394 0xB089 #HANGUL SYLLABLE SSANGKIYEOK I RIEULTHIEUTH +0xA395 0xB08A #HANGUL SYLLABLE SSANGKIYEOK I RIEULPHIEUPH +0xA396 0xB08B #HANGUL SYLLABLE SSANGKIYEOK I RIEULHIEUH +0xA397 0xB08E #HANGUL SYLLABLE SSANGKIYEOK I PIEUPSIOS +0xA398 0xB092 #HANGUL SYLLABLE SSANGKIYEOK I CIEUC +0xA399 0xB093 #HANGUL SYLLABLE SSANGKIYEOK I CHIEUCH +0xA39A 0xB094 #HANGUL SYLLABLE SSANGKIYEOK I KHIEUKH +0xA39B 0xB095 #HANGUL SYLLABLE SSANGKIYEOK I THIEUTH +0xA39C 0xB096 #HANGUL SYLLABLE SSANGKIYEOK I PHIEUPH +0xA39D 0xB097 #HANGUL SYLLABLE SSANGKIYEOK I HIEUH +0xA39E 0xB07E #HANGUL SYLLABLE SSANGKIYEOK I SSANGKIYEOK +0xA39F 0xB090 #HANGUL SYLLABLE SSANGKIYEOK I SSANGSIOS +0xA3A0 0xAE6B #HANGUL SYLLABLE SSANGKIYEOK AE KIYEOKSIOS +0xA3B0 0xFF10 #FULLWIDTH DIGIT ZERO +0xA3B1 0xFF11 #FULLWIDTH DIGIT ONE +0xA3B2 0xFF12 #FULLWIDTH DIGIT TWO +0xA3B3 0xFF13 #FULLWIDTH DIGIT THREE +0xA3B4 0xFF14 #FULLWIDTH DIGIT FOUR +0xA3B5 0xFF15 #FULLWIDTH DIGIT FIVE +0xA3B6 0xFF16 #FULLWIDTH DIGIT SIX +0xA3B7 0xFF17 #FULLWIDTH DIGIT SEVEN +0xA3B8 0xFF18 #FULLWIDTH DIGIT EIGHT +0xA3B9 0xFF19 #FULLWIDTH DIGIT NINE +0xA3C1 0xFF21 #FULLWIDTH LATIN CAPITAL LETTER A +0xA3C2 0xFF22 #FULLWIDTH LATIN CAPITAL LETTER B +0xA3C3 0xFF23 #FULLWIDTH LATIN CAPITAL LETTER C +0xA3C4 0xFF24 #FULLWIDTH LATIN CAPITAL LETTER D +0xA3C5 0xFF25 #FULLWIDTH LATIN CAPITAL LETTER E +0xA3C6 0xFF26 #FULLWIDTH LATIN CAPITAL LETTER F +0xA3C7 0xFF27 #FULLWIDTH LATIN CAPITAL LETTER G +0xA3C8 0xFF28 #FULLWIDTH LATIN CAPITAL LETTER H +0xA3C9 0xFF29 #FULLWIDTH LATIN CAPITAL LETTER I +0xA3CA 0xFF2A #FULLWIDTH LATIN CAPITAL LETTER J +0xA3CB 0xFF2B #FULLWIDTH LATIN CAPITAL LETTER K +0xA3CC 0xFF2C #FULLWIDTH LATIN CAPITAL LETTER L +0xA3CD 0xFF2D #FULLWIDTH LATIN CAPITAL LETTER M +0xA3CE 0xFF2E #FULLWIDTH LATIN CAPITAL LETTER N +0xA3CF 0xFF2F #FULLWIDTH LATIN CAPITAL LETTER O +0xA3D0 0xFF30 #FULLWIDTH LATIN CAPITAL LETTER P +0xA3D1 0xFF31 #FULLWIDTH LATIN CAPITAL LETTER Q +0xA3D2 0xFF32 #FULLWIDTH LATIN CAPITAL LETTER R +0xA3D3 0xFF33 #FULLWIDTH LATIN CAPITAL LETTER S +0xA3D4 0xFF34 #FULLWIDTH LATIN CAPITAL LETTER T +0xA3D5 0xFF35 #FULLWIDTH LATIN CAPITAL LETTER U +0xA3D6 0xFF36 #FULLWIDTH LATIN CAPITAL LETTER V +0xA3D7 0xFF37 #FULLWIDTH LATIN CAPITAL LETTER W +0xA3D8 0xFF38 #FULLWIDTH LATIN CAPITAL LETTER X +0xA3D9 0xFF39 #FULLWIDTH LATIN CAPITAL LETTER Y +0xA3DA 0xFF3A #FULLWIDTH LATIN CAPITAL LETTER Z +0xA3E1 0xFF41 #FULLWIDTH LATIN SMALL LETTER A +0xA3E2 0xFF42 #FULLWIDTH LATIN SMALL LETTER B +0xA3E3 0xFF43 #FULLWIDTH LATIN SMALL LETTER C +0xA3E4 0xFF44 #FULLWIDTH LATIN SMALL LETTER D +0xA3E5 0xFF45 #FULLWIDTH LATIN SMALL LETTER E +0xA3E6 0xFF46 #FULLWIDTH LATIN SMALL LETTER F +0xA3E7 0xFF47 #FULLWIDTH LATIN SMALL LETTER G +0xA3E8 0xFF48 #FULLWIDTH LATIN SMALL LETTER H +0xA3E9 0xFF49 #FULLWIDTH LATIN SMALL LETTER I +0xA3EA 0xFF4A #FULLWIDTH LATIN SMALL LETTER J +0xA3EB 0xFF4B #FULLWIDTH LATIN SMALL LETTER K +0xA3EC 0xFF4C #FULLWIDTH LATIN SMALL LETTER L +0xA3ED 0xFF4D #FULLWIDTH LATIN SMALL LETTER M +0xA3EE 0xFF4E #FULLWIDTH LATIN SMALL LETTER N +0xA3EF 0xFF4F #FULLWIDTH LATIN SMALL LETTER O +0xA3F0 0xFF50 #FULLWIDTH LATIN SMALL LETTER P +0xA3F1 0xFF51 #FULLWIDTH LATIN SMALL LETTER Q +0xA3F2 0xFF52 #FULLWIDTH LATIN SMALL LETTER R +0xA3F3 0xFF53 #FULLWIDTH LATIN SMALL LETTER S +0xA3F4 0xFF54 #FULLWIDTH LATIN SMALL LETTER T +0xA3F5 0xFF55 #FULLWIDTH LATIN SMALL LETTER U +0xA3F6 0xFF56 #FULLWIDTH LATIN SMALL LETTER V +0xA3F7 0xFF57 #FULLWIDTH LATIN SMALL LETTER W +0xA3F8 0xFF58 #FULLWIDTH LATIN SMALL LETTER X +0xA3F9 0xFF59 #FULLWIDTH LATIN SMALL LETTER Y +0xA3FA 0xFF5A #FULLWIDTH LATIN SMALL LETTER Z +0xA441 0xAE6D #HANGUL SYLLABLE SSANGKIYEOK AE NIEUNCIEUC +0xA442 0xAE6E #HANGUL SYLLABLE SSANGKIYEOK AE NIEUNHIEUH +0xA443 0xAE6F #HANGUL SYLLABLE SSANGKIYEOK AE TIKEUT +0xA444 0xAE71 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULKIYEOK +0xA445 0xAE72 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULMIEUM +0xA446 0xAE73 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULPIEUP +0xA447 0xAE74 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULSIOS +0xA448 0xAE75 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULTHIEUTH +0xA449 0xAE76 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULPHIEUPH +0xA44A 0xAE77 #HANGUL SYLLABLE SSANGKIYEOK AE RIEULHIEUH +0xA44B 0xAE7A #HANGUL SYLLABLE SSANGKIYEOK AE PIEUPSIOS +0xA44C 0xAE7E #HANGUL SYLLABLE SSANGKIYEOK AE CIEUC +0xA44D 0xAE7F #HANGUL SYLLABLE SSANGKIYEOK AE CHIEUCH +0xA44E 0xAE80 #HANGUL SYLLABLE SSANGKIYEOK AE KHIEUKH +0xA44F 0xAE81 #HANGUL SYLLABLE SSANGKIYEOK AE THIEUTH +0xA450 0xAE82 #HANGUL SYLLABLE SSANGKIYEOK AE PHIEUPH +0xA451 0xAE83 #HANGUL SYLLABLE SSANGKIYEOK AE HIEUH +0xA452 0xAE6A #HANGUL SYLLABLE SSANGKIYEOK AE SSANGKIYEOK +0xA453 0xAEA1 #HANGUL SYLLABLE SSANGKIYEOK YAE KIYEOK +0xA454 0xAEA3 #HANGUL SYLLABLE SSANGKIYEOK YAE KIYEOKSIOS +0xA455 0xAEA4 #HANGUL SYLLABLE SSANGKIYEOK YAE NIEUN +0xA456 0xAEA5 #HANGUL SYLLABLE SSANGKIYEOK YAE NIEUNCIEUC +0xA457 0xAEA6 #HANGUL SYLLABLE SSANGKIYEOK YAE NIEUNHIEUH +0xA458 0xAEA7 #HANGUL SYLLABLE SSANGKIYEOK YAE TIKEUT +0xA459 0xAEA8 #HANGUL SYLLABLE SSANGKIYEOK YAE RIEUL +0xA45A 0xAEA9 #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULKIYEOK +0xA461 0xAEAA #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULMIEUM +0xA462 0xAEAB #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULPIEUP +0xA463 0xAEAC #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULSIOS +0xA464 0xAEAD #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULTHIEUTH +0xA465 0xAEAE #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULPHIEUPH +0xA466 0xAEAF #HANGUL SYLLABLE SSANGKIYEOK YAE RIEULHIEUH +0xA467 0xAEB0 #HANGUL SYLLABLE SSANGKIYEOK YAE MIEUM +0xA468 0xAEB1 #HANGUL SYLLABLE SSANGKIYEOK YAE PIEUP +0xA469 0xAEB2 #HANGUL SYLLABLE SSANGKIYEOK YAE PIEUPSIOS +0xA46A 0xAEB3 #HANGUL SYLLABLE SSANGKIYEOK YAE SIOS +0xA46B 0xAEB5 #HANGUL SYLLABLE SSANGKIYEOK YAE IEUNG +0xA46C 0xAEB6 #HANGUL SYLLABLE SSANGKIYEOK YAE CIEUC +0xA46D 0xAEB7 #HANGUL SYLLABLE SSANGKIYEOK YAE CHIEUCH +0xA46E 0xAEB8 #HANGUL SYLLABLE SSANGKIYEOK YAE KHIEUKH +0xA46F 0xAEB9 #HANGUL SYLLABLE SSANGKIYEOK YAE THIEUTH +0xA470 0xAEBA #HANGUL SYLLABLE SSANGKIYEOK YAE PHIEUPH +0xA471 0xAEBB #HANGUL SYLLABLE SSANGKIYEOK YAE HIEUH +0xA472 0xAEA2 #HANGUL SYLLABLE SSANGKIYEOK YAE SSANGKIYEOK +0xA473 0xAEB4 #HANGUL SYLLABLE SSANGKIYEOK YAE SSANGSIOS +0xA474 0xAEDB #HANGUL SYLLABLE SSANGKIYEOK E KIYEOKSIOS +0xA475 0xAEDD #HANGUL SYLLABLE SSANGKIYEOK E NIEUNCIEUC +0xA476 0xAEDE #HANGUL SYLLABLE SSANGKIYEOK E NIEUNHIEUH +0xA477 0xAEDF #HANGUL SYLLABLE SSANGKIYEOK E TIKEUT +0xA478 0xAEE1 #HANGUL SYLLABLE SSANGKIYEOK E RIEULKIYEOK +0xA479 0xAEE2 #HANGUL SYLLABLE SSANGKIYEOK E RIEULMIEUM +0xA47A 0xAEE3 #HANGUL SYLLABLE SSANGKIYEOK E RIEULPIEUP +0xA481 0xAEE4 #HANGUL SYLLABLE SSANGKIYEOK E RIEULSIOS +0xA482 0xAEE5 #HANGUL SYLLABLE SSANGKIYEOK E RIEULTHIEUTH +0xA483 0xAEE6 #HANGUL SYLLABLE SSANGKIYEOK E RIEULPHIEUPH +0xA484 0xAEE7 #HANGUL SYLLABLE SSANGKIYEOK E RIEULHIEUH +0xA485 0xAEEA #HANGUL SYLLABLE SSANGKIYEOK E PIEUPSIOS +0xA486 0xAEEE #HANGUL SYLLABLE SSANGKIYEOK E CIEUC +0xA487 0xAEEF #HANGUL SYLLABLE SSANGKIYEOK E CHIEUCH +0xA488 0xAEF0 #HANGUL SYLLABLE SSANGKIYEOK E KHIEUKH +0xA489 0xAEF1 #HANGUL SYLLABLE SSANGKIYEOK E THIEUTH +0xA48A 0xAEF2 #HANGUL SYLLABLE SSANGKIYEOK E PHIEUPH +0xA48B 0xAEF3 #HANGUL SYLLABLE SSANGKIYEOK E HIEUH +0xA48C 0xAEDA #HANGUL SYLLABLE SSANGKIYEOK E SSANGKIYEOK +0xA48D 0xAF11 #HANGUL SYLLABLE SSANGKIYEOK YE KIYEOK +0xA48E 0xAF13 #HANGUL SYLLABLE SSANGKIYEOK YE KIYEOKSIOS +0xA48F 0xAF14 #HANGUL SYLLABLE SSANGKIYEOK YE NIEUN +0xA490 0xAF15 #HANGUL SYLLABLE SSANGKIYEOK YE NIEUNCIEUC +0xA491 0xAF16 #HANGUL SYLLABLE SSANGKIYEOK YE NIEUNHIEUH +0xA492 0xAF17 #HANGUL SYLLABLE SSANGKIYEOK YE TIKEUT +0xA493 0xAF18 #HANGUL SYLLABLE SSANGKIYEOK YE RIEUL +0xA494 0xAF19 #HANGUL SYLLABLE SSANGKIYEOK YE RIEULKIYEOK +0xA495 0xAF1A #HANGUL SYLLABLE SSANGKIYEOK YE RIEULMIEUM +0xA496 0xAF1B #HANGUL SYLLABLE SSANGKIYEOK YE RIEULPIEUP +0xA497 0xAF1C #HANGUL SYLLABLE SSANGKIYEOK YE RIEULSIOS +0xA498 0xAF1D #HANGUL SYLLABLE SSANGKIYEOK YE RIEULTHIEUTH +0xA499 0xAF1E #HANGUL SYLLABLE SSANGKIYEOK YE RIEULPHIEUPH +0xA49A 0xAF1F #HANGUL SYLLABLE SSANGKIYEOK YE RIEULHIEUH +0xA49B 0xAF20 #HANGUL SYLLABLE SSANGKIYEOK YE MIEUM +0xA49C 0xAF21 #HANGUL SYLLABLE SSANGKIYEOK YE PIEUP +0xA49D 0xAF22 #HANGUL SYLLABLE SSANGKIYEOK YE PIEUPSIOS +0xA49E 0xAF23 #HANGUL SYLLABLE SSANGKIYEOK YE SIOS +0xA49F 0xAF25 #HANGUL SYLLABLE SSANGKIYEOK YE IEUNG +0xA4A0 0xAF26 #HANGUL SYLLABLE SSANGKIYEOK YE CIEUC +0xA4A1 0x3131 #HANGUL LETTER KIYEOK +0xA4A2 0x3134 #HANGUL LETTER NIEUN +0xA4A3 0x3137 #HANGUL LETTER TIKEUT +0xA4A4 0x3139 #HANGUL LETTER RIEUL +0xA4A5 0x3141 #HANGUL LETTER MIEUM +0xA4A6 0x3142 #HANGUL LETTER PIEUP +0xA4A7 0x3145 #HANGUL LETTER SIOS +0xA4A8 0x3147 #HANGUL LETTER IEUNG +0xA4A9 0x3148 #HANGUL LETTER CIEUC +0xA4AA 0x314A #HANGUL LETTER CHIEUCH +0xA4AB 0x314B #HANGUL LETTER KHIEUKH +0xA4AC 0x314C #HANGUL LETTER THIEUTH +0xA4AD 0x314D #HANGUL LETTER PHIEUPH +0xA4AE 0x314E #HANGUL LETTER HIEUH +0xA4AF 0x3132 #HANGUL LETTER SSANGKIYEOK +0xA4B0 0x3138 #HANGUL LETTER SSANGTIKEUT +0xA4B1 0x3143 #HANGUL LETTER SSANGPIEUP +0xA4B2 0x3146 #HANGUL LETTER SSANGSIOS +0xA4B3 0x3149 #HANGUL LETTER SSANGCIEUC +0xA4B4 0x314F #HANGUL LETTER A +0xA4B5 0x3151 #HANGUL LETTER YA +0xA4B6 0x3153 #HANGUL LETTER EO +0xA4B7 0x3155 #HANGUL LETTER YEO +0xA4B8 0x3157 #HANGUL LETTER O +0xA4B9 0x315B #HANGUL LETTER YO +0xA4BA 0x315C #HANGUL LETTER U +0xA4BB 0x3160 #HANGUL LETTER YU +0xA4BC 0x3161 #HANGUL LETTER EU +0xA4BD 0x3163 #HANGUL LETTER I +0xA4BE 0x3150 #HANGUL LETTER AE +0xA4BF 0x3152 #HANGUL LETTER YAE +0xA4C0 0x3154 #HANGUL LETTER E +0xA4C1 0x3156 #HANGUL LETTER YE +0xA4C2 0x315A #HANGUL LETTER OE +0xA4C3 0x315F #HANGUL LETTER WI +0xA4C4 0x3162 #HANGUL LETTER YI +0xA4C5 0x3158 #HANGUL LETTER WA +0xA4C6 0x315D #HANGUL LETTER WEO +0xA4C7 0x3159 #HANGUL LETTER WAE +0xA4C8 0x315E #HANGUL LETTER WE +0xA4C9 0x3133 #HANGUL LETTER KIYEOK-SIOS +0xA4CA 0x3135 #HANGUL LETTER NIEUN-CIEUC +0xA4CB 0x3136 #HANGUL LETTER NIEUN-HIEUH +0xA4CC 0x313A #HANGUL LETTER RIEUL-KIYEOK +0xA4CD 0x313B #HANGUL LETTER RIEUL-MIEUM +0xA4CE 0x313C #HANGUL LETTER RIEUL-PIEUP +0xA4CF 0x313D #HANGUL LETTER RIEUL-SIOS +0xA4D0 0x313E #HANGUL LETTER RIEUL-THIEUTH +0xA4D1 0x313F #HANGUL LETTER RIEUL-PHIEUPH +0xA4D2 0x3140 #HANGUL LETTER RIEUL-HIEUH +0xA4D3 0x3144 #HANGUL LETTER PIEUP-SIOS +0xA4D4 0x317F #HANGUL LETTER PANSIOS +0xA4D5 0x3181 #HANGUL LETTER YESIEUNG +0xA4D6 0x3186 #HANGUL LETTER YEORINHIEUH +0xA4D7 0x318D #HANGUL LETTER ARAEA +0xA4D8 0x113C #HANGUL CHOSEONG CHITUEUMSIOS +0xA4D9 0x113D #HANGUL CHOSEONG CHITUEUMSSANGSIOS +0xA4DA 0x113E #HANGUL CHOSEONG CEONGCHIEUMSIOS +0xA4DB 0x113F #HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS +0xA4DC 0x114E #HANGUL CHOSEONG CHITUEUMCIEUC +0xA4DD 0x114F #HANGUL CHOSEONG CHITUEUMSSANGCIEUC +0xA4DE 0x1150 #HANGUL CHOSEONG CEONGCHIEUMCIEUC +0xA4DF 0x1151 #HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC +0xA4E0 0x1154 #HANGUL CHOSEONG CHITUEUMCHIEUCH +0xA4E1 0x1155 #HANGUL CHOSEONG CEONGCHIEUMCHIEUCH +0xA4E8 0xF113 #emphasized korean letter kim inside kim il sung +0xA4E9 0xF114 #emphasized korean letter il inside kim il sung +0xA4EA 0xF115 #emphasized korean letter sung inside kim il sung +0xA4EB 0xF116 #emphasized korean letter kim inside kim jong il +0xA4EC 0xF117 #emphasized korean letter jong inside kim jong il +0xA4ED 0xF118 #emphasized korean letter il inside kim jong il +0xA541 0xAF27 #HANGUL SYLLABLE SSANGKIYEOK YE CHIEUCH +0xA542 0xAF28 #HANGUL SYLLABLE SSANGKIYEOK YE KHIEUKH +0xA543 0xAF29 #HANGUL SYLLABLE SSANGKIYEOK YE THIEUTH +0xA544 0xAF2A #HANGUL SYLLABLE SSANGKIYEOK YE PHIEUPH +0xA545 0xAF2B #HANGUL SYLLABLE SSANGKIYEOK YE HIEUH +0xA546 0xAF12 #HANGUL SYLLABLE SSANGKIYEOK YE SSANGKIYEOK +0xA547 0xAF24 #HANGUL SYLLABLE SSANGKIYEOK YE SSANGSIOS +0xA548 0xAF83 #HANGUL SYLLABLE SSANGKIYEOK OE KIYEOKSIOS +0xA549 0xAF85 #HANGUL SYLLABLE SSANGKIYEOK OE NIEUNCIEUC +0xA54A 0xAF86 #HANGUL SYLLABLE SSANGKIYEOK OE NIEUNHIEUH +0xA54B 0xAF87 #HANGUL SYLLABLE SSANGKIYEOK OE TIKEUT +0xA54C 0xAF89 #HANGUL SYLLABLE SSANGKIYEOK OE RIEULKIYEOK +0xA54D 0xAF8A #HANGUL SYLLABLE SSANGKIYEOK OE RIEULMIEUM +0xA54E 0xAF8B #HANGUL SYLLABLE SSANGKIYEOK OE RIEULPIEUP +0xA54F 0xAF8C #HANGUL SYLLABLE SSANGKIYEOK OE RIEULSIOS +0xA550 0xAF8D #HANGUL SYLLABLE SSANGKIYEOK OE RIEULTHIEUTH +0xA551 0xAF8E #HANGUL SYLLABLE SSANGKIYEOK OE RIEULPHIEUPH +0xA552 0xAF8F #HANGUL SYLLABLE SSANGKIYEOK OE RIEULHIEUH +0xA553 0xAF92 #HANGUL SYLLABLE SSANGKIYEOK OE PIEUPSIOS +0xA554 0xAF93 #HANGUL SYLLABLE SSANGKIYEOK OE SIOS +0xA555 0xAF96 #HANGUL SYLLABLE SSANGKIYEOK OE CIEUC +0xA556 0xAF97 #HANGUL SYLLABLE SSANGKIYEOK OE CHIEUCH +0xA557 0xAF98 #HANGUL SYLLABLE SSANGKIYEOK OE KHIEUKH +0xA558 0xAF99 #HANGUL SYLLABLE SSANGKIYEOK OE THIEUTH +0xA559 0xAF9A #HANGUL SYLLABLE SSANGKIYEOK OE PHIEUPH +0xA55A 0xAF9B #HANGUL SYLLABLE SSANGKIYEOK OE HIEUH +0xA561 0xAF82 #HANGUL SYLLABLE SSANGKIYEOK OE SSANGKIYEOK +0xA562 0xAF94 #HANGUL SYLLABLE SSANGKIYEOK OE SSANGSIOS +0xA563 0xB00D #HANGUL SYLLABLE SSANGKIYEOK WI KIYEOK +0xA564 0xB00F #HANGUL SYLLABLE SSANGKIYEOK WI KIYEOKSIOS +0xA565 0xB011 #HANGUL SYLLABLE SSANGKIYEOK WI NIEUNCIEUC +0xA566 0xB012 #HANGUL SYLLABLE SSANGKIYEOK WI NIEUNHIEUH +0xA567 0xB013 #HANGUL SYLLABLE SSANGKIYEOK WI TIKEUT +0xA568 0xB015 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULKIYEOK +0xA569 0xB016 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULMIEUM +0xA56A 0xB017 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULPIEUP +0xA56B 0xB018 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULSIOS +0xA56C 0xB019 #HANGUL SYLLABLE SSANGKIYEOK WI RIEULTHIEUTH +0xA56D 0xB01A #HANGUL SYLLABLE SSANGKIYEOK WI RIEULPHIEUPH +0xA56E 0xB01B #HANGUL SYLLABLE SSANGKIYEOK WI RIEULHIEUH +0xA56F 0xB01E #HANGUL SYLLABLE SSANGKIYEOK WI PIEUPSIOS +0xA570 0xB01F #HANGUL SYLLABLE SSANGKIYEOK WI SIOS +0xA571 0xB022 #HANGUL SYLLABLE SSANGKIYEOK WI CIEUC +0xA572 0xB023 #HANGUL SYLLABLE SSANGKIYEOK WI CHIEUCH +0xA573 0xB024 #HANGUL SYLLABLE SSANGKIYEOK WI KHIEUKH +0xA574 0xB025 #HANGUL SYLLABLE SSANGKIYEOK WI THIEUTH +0xA575 0xB026 #HANGUL SYLLABLE SSANGKIYEOK WI PHIEUPH +0xA576 0xB027 #HANGUL SYLLABLE SSANGKIYEOK WI HIEUH +0xA577 0xB00E #HANGUL SYLLABLE SSANGKIYEOK WI SSANGKIYEOK +0xA578 0xB020 #HANGUL SYLLABLE SSANGKIYEOK WI SSANGSIOS +0xA579 0xB060 #HANGUL SYLLABLE SSANGKIYEOK YI +0xA57A 0xB061 #HANGUL SYLLABLE SSANGKIYEOK YI KIYEOK +0xA581 0xB063 #HANGUL SYLLABLE SSANGKIYEOK YI KIYEOKSIOS +0xA582 0xB064 #HANGUL SYLLABLE SSANGKIYEOK YI NIEUN +0xA583 0xB065 #HANGUL SYLLABLE SSANGKIYEOK YI NIEUNCIEUC +0xA584 0xB066 #HANGUL SYLLABLE SSANGKIYEOK YI NIEUNHIEUH +0xA585 0xB067 #HANGUL SYLLABLE SSANGKIYEOK YI TIKEUT +0xA586 0xB068 #HANGUL SYLLABLE SSANGKIYEOK YI RIEUL +0xA587 0xB069 #HANGUL SYLLABLE SSANGKIYEOK YI RIEULKIYEOK +0xA588 0xB06A #HANGUL SYLLABLE SSANGKIYEOK YI RIEULMIEUM +0xA589 0xB06B #HANGUL SYLLABLE SSANGKIYEOK YI RIEULPIEUP +0xA58A 0xB06C #HANGUL SYLLABLE SSANGKIYEOK YI RIEULSIOS +0xA58B 0xB06D #HANGUL SYLLABLE SSANGKIYEOK YI RIEULTHIEUTH +0xA58C 0xB06E #HANGUL SYLLABLE SSANGKIYEOK YI RIEULPHIEUPH +0xA58D 0xB06F #HANGUL SYLLABLE SSANGKIYEOK YI RIEULHIEUH +0xA58E 0xB070 #HANGUL SYLLABLE SSANGKIYEOK YI MIEUM +0xA58F 0xB071 #HANGUL SYLLABLE SSANGKIYEOK YI PIEUP +0xA590 0xB072 #HANGUL SYLLABLE SSANGKIYEOK YI PIEUPSIOS +0xA591 0xB073 #HANGUL SYLLABLE SSANGKIYEOK YI SIOS +0xA592 0xB075 #HANGUL SYLLABLE SSANGKIYEOK YI IEUNG +0xA593 0xB076 #HANGUL SYLLABLE SSANGKIYEOK YI CIEUC +0xA594 0xB077 #HANGUL SYLLABLE SSANGKIYEOK YI CHIEUCH +0xA595 0xB078 #HANGUL SYLLABLE SSANGKIYEOK YI KHIEUKH +0xA596 0xB079 #HANGUL SYLLABLE SSANGKIYEOK YI THIEUTH +0xA597 0xB07A #HANGUL SYLLABLE SSANGKIYEOK YI PHIEUPH +0xA598 0xB07B #HANGUL SYLLABLE SSANGKIYEOK YI HIEUH +0xA599 0xB062 #HANGUL SYLLABLE SSANGKIYEOK YI SSANGKIYEOK +0xA59A 0xB074 #HANGUL SYLLABLE SSANGKIYEOK YI SSANGSIOS +0xA59B 0xAF4B #HANGUL SYLLABLE SSANGKIYEOK WA KIYEOKSIOS +0xA59C 0xAF4D #HANGUL SYLLABLE SSANGKIYEOK WA NIEUNCIEUC +0xA59D 0xAF4E #HANGUL SYLLABLE SSANGKIYEOK WA NIEUNHIEUH +0xA59E 0xAF4F #HANGUL SYLLABLE SSANGKIYEOK WA TIKEUT +0xA59F 0xAF51 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULKIYEOK +0xA5A0 0xAF52 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULMIEUM +0xA5A1 0x0410 #CYRILLIC CAPITAL LETTER A +0xA5A2 0x0411 #CYRILLIC CAPITAL LETTER BE +0xA5A3 0x0412 #CYRILLIC CAPITAL LETTER VE +0xA5A4 0x0413 #CYRILLIC CAPITAL LETTER GHE +0xA5A5 0x0414 #CYRILLIC CAPITAL LETTER DE +0xA5A6 0x0415 #CYRILLIC CAPITAL LETTER IE +0xA5A7 0x0401 #CYRILLIC CAPITAL LETTER IO +0xA5A8 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0xA5A9 0x0417 #CYRILLIC CAPITAL LETTER ZE +0xA5AA 0x0418 #CYRILLIC CAPITAL LETTER I +0xA5AB 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0xA5AC 0x041A #CYRILLIC CAPITAL LETTER KA +0xA5AD 0x041B #CYRILLIC CAPITAL LETTER EL +0xA5AE 0x041C #CYRILLIC CAPITAL LETTER EM +0xA5AF 0x041D #CYRILLIC CAPITAL LETTER EN +0xA5B0 0x041E #CYRILLIC CAPITAL LETTER O +0xA5B1 0x041F #CYRILLIC CAPITAL LETTER PE +0xA5B2 0x0420 #CYRILLIC CAPITAL LETTER ER +0xA5B3 0x0421 #CYRILLIC CAPITAL LETTER ES +0xA5B4 0x0422 #CYRILLIC CAPITAL LETTER TE +0xA5B5 0x0423 #CYRILLIC CAPITAL LETTER U +0xA5B6 0x0424 #CYRILLIC CAPITAL LETTER EF +0xA5B7 0x0425 #CYRILLIC CAPITAL LETTER HA +0xA5B8 0x0426 #CYRILLIC CAPITAL LETTER TSE +0xA5B9 0x0427 #CYRILLIC CAPITAL LETTER CHE +0xA5BA 0x0428 #CYRILLIC CAPITAL LETTER SHA +0xA5BB 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0xA5BC 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN +0xA5BD 0x042B #CYRILLIC CAPITAL LETTER YERU +0xA5BE 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0xA5BF 0x042D #CYRILLIC CAPITAL LETTER E +0xA5C0 0x042E #CYRILLIC CAPITAL LETTER YU +0xA5C1 0x042F #CYRILLIC CAPITAL LETTER YA +0xA5D1 0x0430 #CYRILLIC SMALL LETTER A +0xA5D2 0x0431 #CYRILLIC SMALL LETTER BE +0xA5D3 0x0432 #CYRILLIC SMALL LETTER VE +0xA5D4 0x0433 #CYRILLIC SMALL LETTER GHE +0xA5D5 0x0434 #CYRILLIC SMALL LETTER DE +0xA5D6 0x0435 #CYRILLIC SMALL LETTER IE +0xA5D7 0x0451 #CYRILLIC SMALL LETTER IO +0xA5D8 0x0436 #CYRILLIC SMALL LETTER ZHE +0xA5D9 0x0437 #CYRILLIC SMALL LETTER ZE +0xA5DA 0x0438 #CYRILLIC SMALL LETTER I +0xA5DB 0x0439 #CYRILLIC SMALL LETTER SHORT I +0xA5DC 0x043A #CYRILLIC SMALL LETTER KA +0xA5DD 0x043B #CYRILLIC SMALL LETTER EL +0xA5DE 0x043C #CYRILLIC SMALL LETTER EM +0xA5DF 0x043D #CYRILLIC SMALL LETTER EN +0xA5E0 0x043E #CYRILLIC SMALL LETTER O +0xA5E1 0x043F #CYRILLIC SMALL LETTER PE +0xA5E2 0x0440 #CYRILLIC SMALL LETTER ER +0xA5E3 0x0441 #CYRILLIC SMALL LETTER ES +0xA5E4 0x0442 #CYRILLIC SMALL LETTER TE +0xA5E5 0x0443 #CYRILLIC SMALL LETTER U +0xA5E6 0x0444 #CYRILLIC SMALL LETTER EF +0xA5E7 0x0445 #CYRILLIC SMALL LETTER HA +0xA5E8 0x0446 #CYRILLIC SMALL LETTER TSE +0xA5E9 0x0447 #CYRILLIC SMALL LETTER CHE +0xA5EA 0x0448 #CYRILLIC SMALL LETTER SHA +0xA5EB 0x0449 #CYRILLIC SMALL LETTER SHCHA +0xA5EC 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0xA5ED 0x044B #CYRILLIC SMALL LETTER YERU +0xA5EE 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0xA5EF 0x044D #CYRILLIC SMALL LETTER E +0xA5F0 0x044E #CYRILLIC SMALL LETTER YU +0xA5F1 0x044F #CYRILLIC SMALL LETTER YA +0xA641 0xAF53 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULPIEUP +0xA642 0xAF54 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULSIOS +0xA643 0xAF55 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULTHIEUTH +0xA644 0xAF56 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULPHIEUPH +0xA645 0xAF57 #HANGUL SYLLABLE SSANGKIYEOK WA RIEULHIEUH +0xA646 0xAF58 #HANGUL SYLLABLE SSANGKIYEOK WA MIEUM +0xA647 0xAF59 #HANGUL SYLLABLE SSANGKIYEOK WA PIEUP +0xA648 0xAF5A #HANGUL SYLLABLE SSANGKIYEOK WA PIEUPSIOS +0xA649 0xAF5E #HANGUL SYLLABLE SSANGKIYEOK WA CIEUC +0xA64A 0xAF5F #HANGUL SYLLABLE SSANGKIYEOK WA CHIEUCH +0xA64B 0xAF60 #HANGUL SYLLABLE SSANGKIYEOK WA KHIEUKH +0xA64C 0xAF61 #HANGUL SYLLABLE SSANGKIYEOK WA THIEUTH +0xA64D 0xAF62 #HANGUL SYLLABLE SSANGKIYEOK WA PHIEUPH +0xA64E 0xAF63 #HANGUL SYLLABLE SSANGKIYEOK WA HIEUH +0xA64F 0xAF4A #HANGUL SYLLABLE SSANGKIYEOK WA SSANGKIYEOK +0xA650 0xAFD5 #HANGUL SYLLABLE SSANGKIYEOK WEO KIYEOK +0xA651 0xAFD7 #HANGUL SYLLABLE SSANGKIYEOK WEO KIYEOKSIOS +0xA652 0xAFD9 #HANGUL SYLLABLE SSANGKIYEOK WEO NIEUNCIEUC +0xA653 0xAFDA #HANGUL SYLLABLE SSANGKIYEOK WEO NIEUNHIEUH +0xA654 0xAFDB #HANGUL SYLLABLE SSANGKIYEOK WEO TIKEUT +0xA655 0xAFDD #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULKIYEOK +0xA656 0xAFDE #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULMIEUM +0xA657 0xAFDF #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULPIEUP +0xA658 0xAFE0 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULSIOS +0xA659 0xAFE1 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULTHIEUTH +0xA65A 0xAFE2 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULPHIEUPH +0xA661 0xAFE3 #HANGUL SYLLABLE SSANGKIYEOK WEO RIEULHIEUH +0xA662 0xAFE4 #HANGUL SYLLABLE SSANGKIYEOK WEO MIEUM +0xA663 0xAFE6 #HANGUL SYLLABLE SSANGKIYEOK WEO PIEUPSIOS +0xA664 0xAFEA #HANGUL SYLLABLE SSANGKIYEOK WEO CIEUC +0xA665 0xAFEB #HANGUL SYLLABLE SSANGKIYEOK WEO CHIEUCH +0xA666 0xAFEC #HANGUL SYLLABLE SSANGKIYEOK WEO KHIEUKH +0xA667 0xAFED #HANGUL SYLLABLE SSANGKIYEOK WEO THIEUTH +0xA668 0xAFEE #HANGUL SYLLABLE SSANGKIYEOK WEO PHIEUPH +0xA669 0xAFEF #HANGUL SYLLABLE SSANGKIYEOK WEO HIEUH +0xA66A 0xAFD6 #HANGUL SYLLABLE SSANGKIYEOK WEO SSANGKIYEOK +0xA66B 0xAF67 #HANGUL SYLLABLE SSANGKIYEOK WAE KIYEOKSIOS +0xA66C 0xAF69 #HANGUL SYLLABLE SSANGKIYEOK WAE NIEUNCIEUC +0xA66D 0xAF6A #HANGUL SYLLABLE SSANGKIYEOK WAE NIEUNHIEUH +0xA66E 0xAF6B #HANGUL SYLLABLE SSANGKIYEOK WAE TIKEUT +0xA66F 0xAF6D #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULKIYEOK +0xA670 0xAF6E #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULMIEUM +0xA671 0xAF6F #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULPIEUP +0xA672 0xAF70 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULSIOS +0xA673 0xAF71 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULTHIEUTH +0xA674 0xAF72 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULPHIEUPH +0xA675 0xAF73 #HANGUL SYLLABLE SSANGKIYEOK WAE RIEULHIEUH +0xA676 0xAF74 #HANGUL SYLLABLE SSANGKIYEOK WAE MIEUM +0xA677 0xAF75 #HANGUL SYLLABLE SSANGKIYEOK WAE PIEUP +0xA678 0xAF76 #HANGUL SYLLABLE SSANGKIYEOK WAE PIEUPSIOS +0xA679 0xAF77 #HANGUL SYLLABLE SSANGKIYEOK WAE SIOS +0xA67A 0xAF7A #HANGUL SYLLABLE SSANGKIYEOK WAE CIEUC +0xA681 0xAF7B #HANGUL SYLLABLE SSANGKIYEOK WAE CHIEUCH +0xA682 0xAF7C #HANGUL SYLLABLE SSANGKIYEOK WAE KHIEUKH +0xA683 0xAF7D #HANGUL SYLLABLE SSANGKIYEOK WAE THIEUTH +0xA684 0xAF7E #HANGUL SYLLABLE SSANGKIYEOK WAE PHIEUPH +0xA685 0xAF7F #HANGUL SYLLABLE SSANGKIYEOK WAE HIEUH +0xA686 0xAF66 #HANGUL SYLLABLE SSANGKIYEOK WAE SSANGKIYEOK +0xA687 0xAF78 #HANGUL SYLLABLE SSANGKIYEOK WAE SSANGSIOS +0xA688 0xAFF3 #HANGUL SYLLABLE SSANGKIYEOK WE KIYEOKSIOS +0xA689 0xAFF5 #HANGUL SYLLABLE SSANGKIYEOK WE NIEUNCIEUC +0xA68A 0xAFF6 #HANGUL SYLLABLE SSANGKIYEOK WE NIEUNHIEUH +0xA68B 0xAFF7 #HANGUL SYLLABLE SSANGKIYEOK WE TIKEUT +0xA68C 0xAFF9 #HANGUL SYLLABLE SSANGKIYEOK WE RIEULKIYEOK +0xA68D 0xAFFA #HANGUL SYLLABLE SSANGKIYEOK WE RIEULMIEUM +0xA68E 0xAFFB #HANGUL SYLLABLE SSANGKIYEOK WE RIEULPIEUP +0xA68F 0xAFFC #HANGUL SYLLABLE SSANGKIYEOK WE RIEULSIOS +0xA690 0xAFFD #HANGUL SYLLABLE SSANGKIYEOK WE RIEULTHIEUTH +0xA691 0xAFFE #HANGUL SYLLABLE SSANGKIYEOK WE RIEULPHIEUPH +0xA692 0xAFFF #HANGUL SYLLABLE SSANGKIYEOK WE RIEULHIEUH +0xA693 0xB002 #HANGUL SYLLABLE SSANGKIYEOK WE PIEUPSIOS +0xA694 0xB003 #HANGUL SYLLABLE SSANGKIYEOK WE SIOS +0xA695 0xB006 #HANGUL SYLLABLE SSANGKIYEOK WE CIEUC +0xA696 0xB007 #HANGUL SYLLABLE SSANGKIYEOK WE CHIEUCH +0xA697 0xB008 #HANGUL SYLLABLE SSANGKIYEOK WE KHIEUKH +0xA698 0xB009 #HANGUL SYLLABLE SSANGKIYEOK WE THIEUTH +0xA699 0xB00A #HANGUL SYLLABLE SSANGKIYEOK WE PHIEUPH +0xA69A 0xB00B #HANGUL SYLLABLE SSANGKIYEOK WE HIEUH +0xA69B 0xAFF2 #HANGUL SYLLABLE SSANGKIYEOK WE SSANGKIYEOK +0xA69C 0xB533 #HANGUL SYLLABLE SSANGTIKEUT A KIYEOKSIOS +0xA69D 0xB535 #HANGUL SYLLABLE SSANGTIKEUT A NIEUNCIEUC +0xA69E 0xB536 #HANGUL SYLLABLE SSANGTIKEUT A NIEUNHIEUH +0xA69F 0xB537 #HANGUL SYLLABLE SSANGTIKEUT A TIKEUT +0xA6A0 0xB539 #HANGUL SYLLABLE SSANGTIKEUT A RIEULKIYEOK +0xA6A1 0x0391 #GREEK CAPITAL LETTER ALPHA +0xA6A2 0x0392 #GREEK CAPITAL LETTER BETA +0xA6A3 0x0393 #GREEK CAPITAL LETTER GAMMA +0xA6A4 0x0394 #GREEK CAPITAL LETTER DELTA +0xA6A5 0x0395 #GREEK CAPITAL LETTER EPSILON +0xA6A6 0x0396 #GREEK CAPITAL LETTER ZETA +0xA6A7 0x0397 #GREEK CAPITAL LETTER ETA +0xA6A8 0x0398 #GREEK CAPITAL LETTER THETA +0xA6A9 0x0399 #GREEK CAPITAL LETTER IOTA +0xA6AA 0x039A #GREEK CAPITAL LETTER KAPPA +0xA6AB 0x039B #GREEK CAPITAL LETTER LAMDA +0xA6AC 0x039C #GREEK CAPITAL LETTER MU +0xA6AD 0x039D #GREEK CAPITAL LETTER NU +0xA6AE 0x039E #GREEK CAPITAL LETTER XI +0xA6AF 0x039F #GREEK CAPITAL LETTER OMICRON +0xA6B0 0x03A0 #GREEK CAPITAL LETTER PI +0xA6B1 0x03A1 #GREEK CAPITAL LETTER RHO +0xA6B2 0x03A3 #GREEK CAPITAL LETTER SIGMA +0xA6B3 0x03A4 #GREEK CAPITAL LETTER TAU +0xA6B4 0x03A5 #GREEK CAPITAL LETTER UPSILON +0xA6B5 0x03A6 #GREEK CAPITAL LETTER PHI +0xA6B6 0x03A7 #GREEK CAPITAL LETTER CHI +0xA6B7 0x03A8 #GREEK CAPITAL LETTER PSI +0xA6B8 0x03A9 #GREEK CAPITAL LETTER OMEGA +0xA6C1 0x03B1 #GREEK SMALL LETTER ALPHA +0xA6C2 0x03B2 #GREEK SMALL LETTER BETA +0xA6C3 0x03B3 #GREEK SMALL LETTER GAMMA +0xA6C4 0x03B4 #GREEK SMALL LETTER DELTA +0xA6C5 0x03B5 #GREEK SMALL LETTER EPSILON +0xA6C6 0x03B6 #GREEK SMALL LETTER ZETA +0xA6C7 0x03B7 #GREEK SMALL LETTER ETA +0xA6C8 0x03B8 #GREEK SMALL LETTER THETA +0xA6C9 0x03B9 #GREEK SMALL LETTER IOTA +0xA6CA 0x03BA #GREEK SMALL LETTER KAPPA +0xA6CB 0x03BB #GREEK SMALL LETTER LAMDA +0xA6CC 0x03BC #GREEK SMALL LETTER MU +0xA6CD 0x03BD #GREEK SMALL LETTER NU +0xA6CE 0x03BE #GREEK SMALL LETTER XI +0xA6CF 0x03BF #GREEK SMALL LETTER OMICRON +0xA6D0 0x03C0 #GREEK SMALL LETTER PI +0xA6D1 0x03C1 #GREEK SMALL LETTER RHO +0xA6D2 0x03C3 #GREEK SMALL LETTER SIGMA +0xA6D3 0x03C4 #GREEK SMALL LETTER TAU +0xA6D4 0x03C5 #GREEK SMALL LETTER UPSILON +0xA6D5 0x03C6 #GREEK SMALL LETTER PHI +0xA6D6 0x03C7 #GREEK SMALL LETTER CHI +0xA6D7 0x03C8 #GREEK SMALL LETTER PSI +0xA6D8 0x03C9 #GREEK SMALL LETTER OMEGA +0xA6E1 0x2160 #ROMAN NUMERAL ONE +0xA6E2 0x2161 #ROMAN NUMERAL TWO +0xA6E3 0x2162 #ROMAN NUMERAL THREE +0xA6E4 0x2163 #ROMAN NUMERAL FOUR +0xA6E5 0x2164 #ROMAN NUMERAL FIVE +0xA6E6 0x2165 #ROMAN NUMERAL SIX +0xA6E7 0x2166 #ROMAN NUMERAL SEVEN +0xA6E8 0x2167 #ROMAN NUMERAL EIGHT +0xA6E9 0x2168 #ROMAN NUMERAL NINE +0xA6EA 0x2169 #ROMAN NUMERAL TEN +0xA6F1 0x2170 #SMALL ROMAN NUMERAL ONE +0xA6F2 0x2171 #SMALL ROMAN NUMERAL TWO +0xA6F3 0x2172 #SMALL ROMAN NUMERAL THREE +0xA6F4 0x2173 #SMALL ROMAN NUMERAL FOUR +0xA6F5 0x2174 #SMALL ROMAN NUMERAL FIVE +0xA6F6 0x2175 #SMALL ROMAN NUMERAL SIX +0xA6F7 0x2176 #SMALL ROMAN NUMERAL SEVEN +0xA6F8 0x2177 #SMALL ROMAN NUMERAL EIGHT +0xA6F9 0x2178 #SMALL ROMAN NUMERAL NINE +0xA6FA 0x2179 #SMALL ROMAN NUMERAL TEN +0xA741 0xB53A #HANGUL SYLLABLE SSANGTIKEUT A RIEULMIEUM +0xA742 0xB53B #HANGUL SYLLABLE SSANGTIKEUT A RIEULPIEUP +0xA743 0xB53C #HANGUL SYLLABLE SSANGTIKEUT A RIEULSIOS +0xA744 0xB53D #HANGUL SYLLABLE SSANGTIKEUT A RIEULTHIEUTH +0xA745 0xB53E #HANGUL SYLLABLE SSANGTIKEUT A RIEULPHIEUPH +0xA746 0xB542 #HANGUL SYLLABLE SSANGTIKEUT A PIEUPSIOS +0xA747 0xB546 #HANGUL SYLLABLE SSANGTIKEUT A CIEUC +0xA748 0xB547 #HANGUL SYLLABLE SSANGTIKEUT A CHIEUCH +0xA749 0xB548 #HANGUL SYLLABLE SSANGTIKEUT A KHIEUKH +0xA74A 0xB549 #HANGUL SYLLABLE SSANGTIKEUT A THIEUTH +0xA74B 0xB54A #HANGUL SYLLABLE SSANGTIKEUT A PHIEUPH +0xA74C 0xB569 #HANGUL SYLLABLE SSANGTIKEUT YA KIYEOK +0xA74D 0xB56B #HANGUL SYLLABLE SSANGTIKEUT YA KIYEOKSIOS +0xA74E 0xB56C #HANGUL SYLLABLE SSANGTIKEUT YA NIEUN +0xA74F 0xB56D #HANGUL SYLLABLE SSANGTIKEUT YA NIEUNCIEUC +0xA750 0xB56E #HANGUL SYLLABLE SSANGTIKEUT YA NIEUNHIEUH +0xA751 0xB56F #HANGUL SYLLABLE SSANGTIKEUT YA TIKEUT +0xA752 0xB571 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULKIYEOK +0xA753 0xB572 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULMIEUM +0xA754 0xB573 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULPIEUP +0xA755 0xB574 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULSIOS +0xA756 0xB575 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULTHIEUTH +0xA757 0xB576 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULPHIEUPH +0xA758 0xB577 #HANGUL SYLLABLE SSANGTIKEUT YA RIEULHIEUH +0xA759 0xB578 #HANGUL SYLLABLE SSANGTIKEUT YA MIEUM +0xA75A 0xB579 #HANGUL SYLLABLE SSANGTIKEUT YA PIEUP +0xA761 0xB57A #HANGUL SYLLABLE SSANGTIKEUT YA PIEUPSIOS +0xA762 0xB57B #HANGUL SYLLABLE SSANGTIKEUT YA SIOS +0xA763 0xB57D #HANGUL SYLLABLE SSANGTIKEUT YA IEUNG +0xA764 0xB57E #HANGUL SYLLABLE SSANGTIKEUT YA CIEUC +0xA765 0xB57F #HANGUL SYLLABLE SSANGTIKEUT YA CHIEUCH +0xA766 0xB580 #HANGUL SYLLABLE SSANGTIKEUT YA KHIEUKH +0xA767 0xB581 #HANGUL SYLLABLE SSANGTIKEUT YA THIEUTH +0xA768 0xB582 #HANGUL SYLLABLE SSANGTIKEUT YA PHIEUPH +0xA769 0xB583 #HANGUL SYLLABLE SSANGTIKEUT YA HIEUH +0xA76A 0xB56A #HANGUL SYLLABLE SSANGTIKEUT YA SSANGKIYEOK +0xA76B 0xB57C #HANGUL SYLLABLE SSANGTIKEUT YA SSANGSIOS +0xA76C 0xB5A3 #HANGUL SYLLABLE SSANGTIKEUT EO KIYEOKSIOS +0xA76D 0xB5A5 #HANGUL SYLLABLE SSANGTIKEUT EO NIEUNCIEUC +0xA76E 0xB5A6 #HANGUL SYLLABLE SSANGTIKEUT EO NIEUNHIEUH +0xA76F 0xB5A7 #HANGUL SYLLABLE SSANGTIKEUT EO TIKEUT +0xA770 0xB5A9 #HANGUL SYLLABLE SSANGTIKEUT EO RIEULKIYEOK +0xA771 0xB5AC #HANGUL SYLLABLE SSANGTIKEUT EO RIEULSIOS +0xA772 0xB5AD #HANGUL SYLLABLE SSANGTIKEUT EO RIEULTHIEUTH +0xA773 0xB5AE #HANGUL SYLLABLE SSANGTIKEUT EO RIEULPHIEUPH +0xA774 0xB5AF #HANGUL SYLLABLE SSANGTIKEUT EO RIEULHIEUH +0xA775 0xB5B2 #HANGUL SYLLABLE SSANGTIKEUT EO PIEUPSIOS +0xA776 0xB5B6 #HANGUL SYLLABLE SSANGTIKEUT EO CIEUC +0xA777 0xB5B7 #HANGUL SYLLABLE SSANGTIKEUT EO CHIEUCH +0xA778 0xB5B8 #HANGUL SYLLABLE SSANGTIKEUT EO KHIEUKH +0xA779 0xB5B9 #HANGUL SYLLABLE SSANGTIKEUT EO THIEUTH +0xA77A 0xB5BA #HANGUL SYLLABLE SSANGTIKEUT EO PHIEUPH +0xA781 0xB5A2 #HANGUL SYLLABLE SSANGTIKEUT EO SSANGKIYEOK +0xA782 0xB5D9 #HANGUL SYLLABLE SSANGTIKEUT YEO KIYEOK +0xA783 0xB5DB #HANGUL SYLLABLE SSANGTIKEUT YEO KIYEOKSIOS +0xA784 0xB5DC #HANGUL SYLLABLE SSANGTIKEUT YEO NIEUN +0xA785 0xB5DD #HANGUL SYLLABLE SSANGTIKEUT YEO NIEUNCIEUC +0xA786 0xB5DE #HANGUL SYLLABLE SSANGTIKEUT YEO NIEUNHIEUH +0xA787 0xB5DF #HANGUL SYLLABLE SSANGTIKEUT YEO TIKEUT +0xA788 0xB5E0 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEUL +0xA789 0xB5E1 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULKIYEOK +0xA78A 0xB5E2 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULMIEUM +0xA78B 0xB5E3 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULPIEUP +0xA78C 0xB5E4 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULSIOS +0xA78D 0xB5E5 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULTHIEUTH +0xA78E 0xB5E6 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULPHIEUPH +0xA78F 0xB5E7 #HANGUL SYLLABLE SSANGTIKEUT YEO RIEULHIEUH +0xA790 0xB5E8 #HANGUL SYLLABLE SSANGTIKEUT YEO MIEUM +0xA791 0xB5E9 #HANGUL SYLLABLE SSANGTIKEUT YEO PIEUP +0xA792 0xB5EA #HANGUL SYLLABLE SSANGTIKEUT YEO PIEUPSIOS +0xA793 0xB5EB #HANGUL SYLLABLE SSANGTIKEUT YEO SIOS +0xA794 0xB5ED #HANGUL SYLLABLE SSANGTIKEUT YEO IEUNG +0xA795 0xB5EE #HANGUL SYLLABLE SSANGTIKEUT YEO CIEUC +0xA796 0xB5EF #HANGUL SYLLABLE SSANGTIKEUT YEO CHIEUCH +0xA797 0xB5F0 #HANGUL SYLLABLE SSANGTIKEUT YEO KHIEUKH +0xA798 0xB5F1 #HANGUL SYLLABLE SSANGTIKEUT YEO THIEUTH +0xA799 0xB5F2 #HANGUL SYLLABLE SSANGTIKEUT YEO PHIEUPH +0xA79A 0xB5F3 #HANGUL SYLLABLE SSANGTIKEUT YEO HIEUH +0xA79B 0xB5DA #HANGUL SYLLABLE SSANGTIKEUT YEO SSANGKIYEOK +0xA79C 0xB613 #HANGUL SYLLABLE SSANGTIKEUT O KIYEOKSIOS +0xA79D 0xB615 #HANGUL SYLLABLE SSANGTIKEUT O NIEUNCIEUC +0xA79E 0xB616 #HANGUL SYLLABLE SSANGTIKEUT O NIEUNHIEUH +0xA79F 0xB617 #HANGUL SYLLABLE SSANGTIKEUT O TIKEUT +0xA7A0 0xB619 #HANGUL SYLLABLE SSANGTIKEUT O RIEULKIYEOK +0xA7A1 0x2460 #CIRCLED DIGIT ONE +0xA7A2 0x2461 #CIRCLED DIGIT TWO +0xA7A3 0x2462 #CIRCLED DIGIT THREE +0xA7A4 0x2463 #CIRCLED DIGIT FOUR +0xA7A5 0x2464 #CIRCLED DIGIT FIVE +0xA7A6 0x2465 #CIRCLED DIGIT SIX +0xA7A7 0x2466 #CIRCLED DIGIT SEVEN +0xA7A8 0x2467 #CIRCLED DIGIT EIGHT +0xA7A9 0x2468 #CIRCLED DIGIT NINE +0xA7AA 0x2469 #CIRCLED NUMBER TEN +0xA7AB 0x246A #CIRCLED NUMBER ELEVEN +0xA7AC 0x246B #CIRCLED NUMBER TWELVE +0xA7AD 0x246C #CIRCLED NUMBER THIRTEEN +0xA7AE 0x246D #CIRCLED NUMBER FOURTEEN +0xA7AF 0x246E #CIRCLED NUMBER FIFTEEN +0xA7B0 0x246F #CIRCLED NUMBER SIXTEEN +0xA7B1 0x2470 #CIRCLED NUMBER SEVENTEEN +0xA7B2 0x2471 #CIRCLED NUMBER EIGHTEEN +0xA7B3 0x2472 #CIRCLED NUMBER NINETEEN +0xA7B4 0x2473 #CIRCLED NUMBER TWENTY +0xA7B5 0x3251 #CIRCLED NUMBER TWENTY ONE +# 0xA7B5 0x24F0 #NEGATIVE CIRCLED NUMBER SIXTEEN (mapping error based on code point proposed in WG2 N2374) +0xA7B6 0x3252 #CIRCLED NUMBER TWENTY TWO +# 0xA7B6 0x24F1 #NEGATIVE CIRCLED NUMBER SEVENTEEN (mapping error based on code point proposed in WG2 N2374) +0xA7B7 0x3253 #CIRCLED NUMBER TWENTY THREE +# 0xA7B7 0x24F2 #NEGATIVE CIRCLED NUMBER EIGHTEEN (mapping error based on code point proposed in WG2 N2374) +0xA7B8 0x3254 #CIRCLED NUMBER TWENTY FOUR +# 0xA7B8 0x24F3 #NEGATIVE CIRCLED NUMBER NINETEEN (mapping error based on code point proposed in WG2 N2374) +0xA7B9 0x3255 #CIRCLED NUMBER TWENTY FIVE +# 0xA7B9 0x24F4 #NEGATIVE CIRCLED NUMBER TWENTY (mapping error based on code point proposed in WG2 N2374) +0xA7BA 0x3256 #CIRCLED NUMBER TWENTY SIX +# 0xA7BA 0x24F5 #DOUBLE CIRCLED DIGIT ONE (mapping error based on code point proposed in WG2 N2374) +0xA7BB 0x3257 #CIRCLED NUMBER TWENTY SEVEN +# 0xA7BB 0x24F6 #DOUBLE CIRCLED DIGIT TWO (mapping error based on code point proposed in WG2 N2374) +0xA7BC 0x3258 #CIRCLED NUMBER TWENTY EIGHT +# 0xA7BC 0x24F7 #DOUBLE CIRCLED DIGIT THREE (mapping error based on code point proposed in WG2 N2374) +0xA7BD 0x3259 #CIRCLED NUMBER TWENTY NINE +# 0xA7BD 0x24F8 #DOUBLE CIRCLED DIGIT FOUR (mapping error based on code point proposed in WG2 N2374) +0xA7BE 0x325A #CIRCLED NUMBER THIRTY +# 0xA7BE 0x24F9 #DOUBLE CIRCLED DIGIT FIVE (mapping error based on code point proposed in WG2 N2374) +0xA7C1 0x3260 #CIRCLED HANGUL KIYEOK +0xA7C2 0x3261 #CIRCLED HANGUL NIEUN +0xA7C3 0x3262 #CIRCLED HANGUL TIKEUT +0xA7C4 0x3263 #CIRCLED HANGUL RIEUL +0xA7C5 0x3264 #CIRCLED HANGUL MIEUM +0xA7C6 0x3265 #CIRCLED HANGUL PIEUP +0xA7C7 0x3266 #CIRCLED HANGUL SIOS +0xA7C8 0x3267 #CIRCLED HANGUL IEUNG +0xA7C9 0x3268 #CIRCLED HANGUL CIEUC +0xA7CA 0x3269 #CIRCLED HANGUL CHIEUCH +0xA7CB 0x326A #CIRCLED HANGUL KHIEUKH +0xA7CC 0x326B #CIRCLED HANGUL THIEUTH +0xA7CD 0x326C #CIRCLED HANGUL PHIEUPH +0xA7CE 0x326D #CIRCLED HANGUL HIEUH +0xA7D1 0x326E #CIRCLED HANGUL KIYEOK A +0xA7D2 0x326F #CIRCLED HANGUL NIEUN A +0xA7D3 0x3270 #CIRCLED HANGUL TIKEUT A +0xA7D4 0x3271 #CIRCLED HANGUL RIEUL A +0xA7D5 0x3272 #CIRCLED HANGUL MIEUM A +0xA7D6 0x3273 #CIRCLED HANGUL PIEUP A +0xA7D7 0x3274 #CIRCLED HANGUL SIOS A +0xA7D8 0x3275 #CIRCLED HANGUL IEUNG A +0xA7D9 0x3276 #CIRCLED HANGUL CIEUC A +0xA7DA 0x3277 #CIRCLED HANGUL CHIEUCH A +0xA7DB 0x3278 #CIRCLED HANGUL KHIEUKH A +0xA7DC 0x3279 #CIRCLED HANGUL THIEUTH A +0xA7DD 0x327A #CIRCLED HANGUL PHIEUPH A +0xA7DE 0x327B #CIRCLED HANGUL HIEUH A +0xA7E0 0x2070 #SUPERSCRIPT ZERO +0xA7E1 0x00B9 #SUPERSCRIPT ONE +0xA7E2 0x00B2 #SUPERSCRIPT TWO +0xA7E3 0x00B3 #SUPERSCRIPT THREE +0xA7E4 0x2074 #SUPERSCRIPT FOUR +0xA7E5 0x2075 #SUPERSCRIPT FIVE +0xA7E6 0x2076 #SUPERSCRIPT SIX +0xA7E7 0x2077 #SUPERSCRIPT SEVEN +0xA7E8 0x2078 #SUPERSCRIPT EIGHT +0xA7E9 0x2079 #SUPERSCRIPT NINE +0xA7EA 0x00BD #VULGAR FRACTION ONE HALF +0xA7EB 0x2153 #VULGAR FRACTION ONE THIRD +0xA7EC 0x2154 #VULGAR FRACTION TWO THIRDS +0xA7ED 0x00BC #VULGAR FRACTION ONE QUARTER +0xA7EE 0x00BE #VULGAR FRACTION THREE QUARTERS +0xA7F0 0x2080 #SUBSCRIPT ZERO +0xA7F1 0x2081 #SUBSCRIPT ONE +0xA7F2 0x2082 #SUBSCRIPT TWO +0xA7F3 0x2083 #SUBSCRIPT THREE +0xA7F4 0x2084 #SUBSCRIPT FOUR +0xA7F5 0x2085 #SUBSCRIPT FIVE +0xA7F6 0x2086 #SUBSCRIPT SIX +0xA7F7 0x2087 #SUBSCRIPT SEVEN +0xA7F8 0x2088 #SUBSCRIPT EIGHT +0xA7F9 0x2089 #SUBSCRIPT NINE +0xA7FA 0xF119 #vulgar fraction one half with horizontal bar +0xA7FB 0xF11A #vulgar fraction one third with horizontal bar +0xA7FC 0xF11B #vulgar fraction two thirds with horizontal bar +0xA7FD 0xF11C #vulgar fraction one quarter with horizontal bar +0xA7FE 0xF11D #vulgar fraction three quarters with horizontal bar +0xA841 0xB61A #HANGUL SYLLABLE SSANGTIKEUT O RIEULMIEUM +0xA842 0xB61B #HANGUL SYLLABLE SSANGTIKEUT O RIEULPIEUP +0xA843 0xB61C #HANGUL SYLLABLE SSANGTIKEUT O RIEULSIOS +0xA844 0xB61D #HANGUL SYLLABLE SSANGTIKEUT O RIEULTHIEUTH +0xA845 0xB61E #HANGUL SYLLABLE SSANGTIKEUT O RIEULPHIEUPH +0xA846 0xB61F #HANGUL SYLLABLE SSANGTIKEUT O RIEULHIEUH +0xA847 0xB622 #HANGUL SYLLABLE SSANGTIKEUT O PIEUPSIOS +0xA848 0xB626 #HANGUL SYLLABLE SSANGTIKEUT O CIEUC +0xA849 0xB627 #HANGUL SYLLABLE SSANGTIKEUT O CHIEUCH +0xA84A 0xB628 #HANGUL SYLLABLE SSANGTIKEUT O KHIEUKH +0xA84B 0xB629 #HANGUL SYLLABLE SSANGTIKEUT O THIEUTH +0xA84C 0xB62A #HANGUL SYLLABLE SSANGTIKEUT O PHIEUPH +0xA84D 0xB62B #HANGUL SYLLABLE SSANGTIKEUT O HIEUH +0xA84E 0xB612 #HANGUL SYLLABLE SSANGTIKEUT O SSANGKIYEOK +0xA84F 0xB624 #HANGUL SYLLABLE SSANGTIKEUT O SSANGSIOS +0xA850 0xB681 #HANGUL SYLLABLE SSANGTIKEUT YO KIYEOK +0xA851 0xB683 #HANGUL SYLLABLE SSANGTIKEUT YO KIYEOKSIOS +0xA852 0xB684 #HANGUL SYLLABLE SSANGTIKEUT YO NIEUN +0xA853 0xB685 #HANGUL SYLLABLE SSANGTIKEUT YO NIEUNCIEUC +0xA854 0xB686 #HANGUL SYLLABLE SSANGTIKEUT YO NIEUNHIEUH +0xA855 0xB687 #HANGUL SYLLABLE SSANGTIKEUT YO TIKEUT +0xA856 0xB688 #HANGUL SYLLABLE SSANGTIKEUT YO RIEUL +0xA857 0xB689 #HANGUL SYLLABLE SSANGTIKEUT YO RIEULKIYEOK +0xA858 0xB68A #HANGUL SYLLABLE SSANGTIKEUT YO RIEULMIEUM +0xA859 0xB68B #HANGUL SYLLABLE SSANGTIKEUT YO RIEULPIEUP +0xA85A 0xB68C #HANGUL SYLLABLE SSANGTIKEUT YO RIEULSIOS +0xA861 0xB68D #HANGUL SYLLABLE SSANGTIKEUT YO RIEULTHIEUTH +0xA862 0xB68E #HANGUL SYLLABLE SSANGTIKEUT YO RIEULPHIEUPH +0xA863 0xB68F #HANGUL SYLLABLE SSANGTIKEUT YO RIEULHIEUH +0xA864 0xB690 #HANGUL SYLLABLE SSANGTIKEUT YO MIEUM +0xA865 0xB691 #HANGUL SYLLABLE SSANGTIKEUT YO PIEUP +0xA866 0xB692 #HANGUL SYLLABLE SSANGTIKEUT YO PIEUPSIOS +0xA867 0xB693 #HANGUL SYLLABLE SSANGTIKEUT YO SIOS +0xA868 0xB695 #HANGUL SYLLABLE SSANGTIKEUT YO IEUNG +0xA869 0xB696 #HANGUL SYLLABLE SSANGTIKEUT YO CIEUC +0xA86A 0xB697 #HANGUL SYLLABLE SSANGTIKEUT YO CHIEUCH +0xA86B 0xB698 #HANGUL SYLLABLE SSANGTIKEUT YO KHIEUKH +0xA86C 0xB699 #HANGUL SYLLABLE SSANGTIKEUT YO THIEUTH +0xA86D 0xB69A #HANGUL SYLLABLE SSANGTIKEUT YO PHIEUPH +0xA86E 0xB69B #HANGUL SYLLABLE SSANGTIKEUT YO HIEUH +0xA86F 0xB682 #HANGUL SYLLABLE SSANGTIKEUT YO SSANGKIYEOK +0xA870 0xB694 #HANGUL SYLLABLE SSANGTIKEUT YO SSANGSIOS +0xA871 0xB69F #HANGUL SYLLABLE SSANGTIKEUT U KIYEOKSIOS +0xA872 0xB6A1 #HANGUL SYLLABLE SSANGTIKEUT U NIEUNCIEUC +0xA873 0xB6A2 #HANGUL SYLLABLE SSANGTIKEUT U NIEUNHIEUH +0xA874 0xB6A3 #HANGUL SYLLABLE SSANGTIKEUT U TIKEUT +0xA875 0xB6A5 #HANGUL SYLLABLE SSANGTIKEUT U RIEULKIYEOK +0xA876 0xB6A6 #HANGUL SYLLABLE SSANGTIKEUT U RIEULMIEUM +0xA877 0xB6A7 #HANGUL SYLLABLE SSANGTIKEUT U RIEULPIEUP +0xA878 0xB6A8 #HANGUL SYLLABLE SSANGTIKEUT U RIEULSIOS +0xA879 0xB6A9 #HANGUL SYLLABLE SSANGTIKEUT U RIEULTHIEUTH +0xA87A 0xB6AA #HANGUL SYLLABLE SSANGTIKEUT U RIEULPHIEUPH +0xA881 0xB6AE #HANGUL SYLLABLE SSANGTIKEUT U PIEUPSIOS +0xA882 0xB6AF #HANGUL SYLLABLE SSANGTIKEUT U SIOS +0xA883 0xB6B2 #HANGUL SYLLABLE SSANGTIKEUT U CIEUC +0xA884 0xB6B3 #HANGUL SYLLABLE SSANGTIKEUT U CHIEUCH +0xA885 0xB6B4 #HANGUL SYLLABLE SSANGTIKEUT U KHIEUKH +0xA886 0xB6B5 #HANGUL SYLLABLE SSANGTIKEUT U THIEUTH +0xA887 0xB6B6 #HANGUL SYLLABLE SSANGTIKEUT U PHIEUPH +0xA888 0xB6B7 #HANGUL SYLLABLE SSANGTIKEUT U HIEUH +0xA889 0xB69E #HANGUL SYLLABLE SSANGTIKEUT U SSANGKIYEOK +0xA88A 0xB6B0 #HANGUL SYLLABLE SSANGTIKEUT U SSANGSIOS +0xA88B 0xB70D #HANGUL SYLLABLE SSANGTIKEUT YU KIYEOK +0xA88C 0xB70F #HANGUL SYLLABLE SSANGTIKEUT YU KIYEOKSIOS +0xA88D 0xB710 #HANGUL SYLLABLE SSANGTIKEUT YU NIEUN +0xA88E 0xB711 #HANGUL SYLLABLE SSANGTIKEUT YU NIEUNCIEUC +0xA88F 0xB712 #HANGUL SYLLABLE SSANGTIKEUT YU NIEUNHIEUH +0xA890 0xB713 #HANGUL SYLLABLE SSANGTIKEUT YU TIKEUT +0xA891 0xB714 #HANGUL SYLLABLE SSANGTIKEUT YU RIEUL +0xA892 0xB715 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULKIYEOK +0xA893 0xB716 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULMIEUM +0xA894 0xB717 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULPIEUP +0xA895 0xB718 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULSIOS +0xA896 0xB719 #HANGUL SYLLABLE SSANGTIKEUT YU RIEULTHIEUTH +0xA897 0xB71A #HANGUL SYLLABLE SSANGTIKEUT YU RIEULPHIEUPH +0xA898 0xB71B #HANGUL SYLLABLE SSANGTIKEUT YU RIEULHIEUH +0xA899 0xB71C #HANGUL SYLLABLE SSANGTIKEUT YU MIEUM +0xA89A 0xB71D #HANGUL SYLLABLE SSANGTIKEUT YU PIEUP +0xA89B 0xB71E #HANGUL SYLLABLE SSANGTIKEUT YU PIEUPSIOS +0xA89C 0xB71F #HANGUL SYLLABLE SSANGTIKEUT YU SIOS +0xA89D 0xB721 #HANGUL SYLLABLE SSANGTIKEUT YU IEUNG +0xA89E 0xB722 #HANGUL SYLLABLE SSANGTIKEUT YU CIEUC +0xA89F 0xB723 #HANGUL SYLLABLE SSANGTIKEUT YU CHIEUCH +0xA8A0 0xB724 #HANGUL SYLLABLE SSANGTIKEUT YU KHIEUKH +0xA8A1 0x00B0 #DEGREE SIGN +0xA8A2 0x2032 #PRIME +0xA8A3 0x2033 #DOUBLE PRIME +0xA8A4 0x2103 #DEGREE CELSIUS +0xA8A5 0x2109 #DEGREE FAHRENHEIT +0xA8A6 0x20AC #EURO SIGN +# 0xA8A6 0x212A #KELVIN SIGN (mapping in KPS 9566-97, changed in KPS 9566-2003) +0xA8A7 0xFFE6 #FULLWIDTH WON SIGN +0xA8A8 0xFF04 #FULLWIDTH DOLLAR SIGN +0xA8A9 0xFFE0 #FULLWIDTH CENT SIGN +0xA8AA 0xFFE1 #FULLWIDTH POUND SIGN +0xA8AB 0xFFE5 #FULLWIDTH YEN SIGN +0xA8AC 0xFF05 #FULLWIDTH PERCENT SIGN +0xA8AD 0x2030 #PER MILLE SIGN +0xA8AE 0x212B #ANGSTROM SIGN +0xA8AF 0x33C4 #SQUARE CC +0xA8B0 0x33A1 #SQUARE M SQUARED +0xA8B1 0x33A5 #SQUARE M CUBED +0xA8B2 0x339D #SQUARE CM +0xA8B3 0x33A0 #SQUARE CM SQUARED +0xA8B4 0x33A4 #SQUARE CM CUBED +0xA8B5 0x339C #SQUARE MM +0xA8B6 0x339F #SQUARE MM SQUARED +0xA8B7 0x33A3 #SQUARE MM CUBED +0xA8B8 0x3377 #SQUARE DM +0xA8B9 0x3378 #SQUARE DM SQUARED +0xA8BA 0x3379 #SQUARE DM CUBED +0xA8BB 0x339E #SQUARE KM +0xA8BC 0x33A2 #SQUARE KM SQUARED +0xA8BD 0x33A6 #SQUARE KM CUBED +0xA8BE 0x3399 #SQUARE FM +0xA8BF 0x339A #SQUARE NM +0xA8C0 0x339B #SQUARE MU M +0xA8C1 0x33A7 #SQUARE M OVER S +0xA8C2 0x33A8 #SQUARE M OVER S SQUARED +0xA8C3 0x338D #SQUARE MU G +0xA8C4 0x338E #SQUARE MG +0xA8C5 0x338F #SQUARE KG +0xA8C6 0x33B4 #SQUARE PV +0xA8C7 0x33B5 #SQUARE NV +0xA8C8 0x33B6 #SQUARE MU V +0xA8C9 0x33B7 #SQUARE MV +0xA8CA 0x33B8 #SQUARE KV +0xA8CB 0x33B9 #SQUARE MV MEGA +0xA8CC 0x3380 #SQUARE PA AMPS +0xA8CD 0x3381 #SQUARE NA +0xA8CE 0x3382 #SQUARE MU A +0xA8CF 0x3383 #SQUARE MA +0xA8D0 0x3384 #SQUARE KA +0xA8D1 0x33BA #SQUARE PW +0xA8D2 0x33BB #SQUARE NW +0xA8D3 0x33BC #SQUARE MU W +0xA8D4 0x33BD #SQUARE MW +0xA8D5 0x33BE #SQUARE KW +0xA8D6 0x33BF #SQUARE MW MEGA +0xA8D7 0x2126 #OHM SIGN +0xA8D8 0x33C0 #SQUARE K OHM +0xA8D9 0x33C1 #SQUARE M OHM +0xA8DA 0x3390 #SQUARE HZ +0xA8DB 0x3391 #SQUARE KHZ +0xA8DC 0x3392 #SQUARE MHZ +0xA8DD 0x3393 #SQUARE GHZ +0xA8DE 0x3394 #SQUARE THZ +0xA8DF 0x33DE #SQUARE V OVER M +0xA8E0 0x33DF #SQUARE A OVER M +0xA8E1 0x33B0 #SQUARE PS +0xA8E2 0x33B1 #SQUARE NS +0xA8E3 0x33B2 #SQUARE MU S +0xA8E4 0x33B3 #SQUARE MS +0xA8E5 0x338A #SQUARE PF +0xA8E6 0x338B #SQUARE NF +0xA8E7 0x338C #SQUARE MU F +0xA8E8 0x33A9 #SQUARE PA +0xA8E9 0x33AA #SQUARE KPA +0xA8EA 0x33AB #SQUARE MPA +0xA8EB 0x33AC #SQUARE GPA +0xA8EC 0x2113 #SCRIPT SMALL L +0xA8ED 0x3395 #SQUARE MU L +0xA8EE 0x3396 #SQUARE ML +0xA8EF 0x3397 #SQUARE DL +0xA8F0 0x3398 #SQUARE KL +0xA8F1 0x33FF #SQUARE GAL +0xA8F2 0x3388 #SQUARE CAL +0xA8F3 0x3389 #SQUARE KCAL +0xA8F4 0x33AD #SQUARE RAD +0xA8F5 0x33AE #SQUARE RAD OVER S +0xA8F6 0x33AF #SQUARE RAD OVER S SQUARED +0xA8F7 0x32CC #SQUARE HG +0xA8F8 0x33DD #SQUARE WB +0xA8F9 0x33C8 #SQUARE DB +0xA8FA 0x32CD #SQUARE ERG +0xA8FB 0x32CE #SQUARE EV +0xA8FC 0x33D6 #SQUARE MOL +0xA8FD 0x33CB #SQUARE HP +0xA8FE 0x33CA #SQUARE HA +0xA941 0xB725 #HANGUL SYLLABLE SSANGTIKEUT YU THIEUTH +0xA942 0xB726 #HANGUL SYLLABLE SSANGTIKEUT YU PHIEUPH +0xA943 0xB727 #HANGUL SYLLABLE SSANGTIKEUT YU HIEUH +0xA944 0xB70E #HANGUL SYLLABLE SSANGTIKEUT YU SSANGKIYEOK +0xA945 0xB720 #HANGUL SYLLABLE SSANGTIKEUT YU SSANGSIOS +0xA946 0xB72B #HANGUL SYLLABLE SSANGTIKEUT EU KIYEOKSIOS +0xA947 0xB72D #HANGUL SYLLABLE SSANGTIKEUT EU NIEUNCIEUC +0xA948 0xB72E #HANGUL SYLLABLE SSANGTIKEUT EU NIEUNHIEUH +0xA949 0xB731 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULKIYEOK +0xA94A 0xB732 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULMIEUM +0xA94B 0xB733 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULPIEUP +0xA94C 0xB734 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULSIOS +0xA94D 0xB735 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULTHIEUTH +0xA94E 0xB736 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULPHIEUPH +0xA94F 0xB737 #HANGUL SYLLABLE SSANGTIKEUT EU RIEULHIEUH +0xA950 0xB73A #HANGUL SYLLABLE SSANGTIKEUT EU PIEUPSIOS +0xA951 0xB73E #HANGUL SYLLABLE SSANGTIKEUT EU CIEUC +0xA952 0xB73F #HANGUL SYLLABLE SSANGTIKEUT EU CHIEUCH +0xA953 0xB740 #HANGUL SYLLABLE SSANGTIKEUT EU KHIEUKH +0xA954 0xB741 #HANGUL SYLLABLE SSANGTIKEUT EU THIEUTH +0xA955 0xB742 #HANGUL SYLLABLE SSANGTIKEUT EU PHIEUPH +0xA956 0xB743 #HANGUL SYLLABLE SSANGTIKEUT EU HIEUH +0xA957 0xB72A #HANGUL SYLLABLE SSANGTIKEUT EU SSANGKIYEOK +0xA958 0xB73C #HANGUL SYLLABLE SSANGTIKEUT EU SSANGSIOS +0xA959 0xB763 #HANGUL SYLLABLE SSANGTIKEUT I KIYEOKSIOS +0xA95A 0xB765 #HANGUL SYLLABLE SSANGTIKEUT I NIEUNCIEUC +0xA961 0xB766 #HANGUL SYLLABLE SSANGTIKEUT I NIEUNHIEUH +0xA962 0xB767 #HANGUL SYLLABLE SSANGTIKEUT I TIKEUT +0xA963 0xB769 #HANGUL SYLLABLE SSANGTIKEUT I RIEULKIYEOK +0xA964 0xB76A #HANGUL SYLLABLE SSANGTIKEUT I RIEULMIEUM +0xA965 0xB76B #HANGUL SYLLABLE SSANGTIKEUT I RIEULPIEUP +0xA966 0xB76C #HANGUL SYLLABLE SSANGTIKEUT I RIEULSIOS +0xA967 0xB76D #HANGUL SYLLABLE SSANGTIKEUT I RIEULTHIEUTH +0xA968 0xB76E #HANGUL SYLLABLE SSANGTIKEUT I RIEULPHIEUPH +0xA969 0xB76F #HANGUL SYLLABLE SSANGTIKEUT I RIEULHIEUH +0xA96A 0xB772 #HANGUL SYLLABLE SSANGTIKEUT I PIEUPSIOS +0xA96B 0xB776 #HANGUL SYLLABLE SSANGTIKEUT I CIEUC +0xA96C 0xB777 #HANGUL SYLLABLE SSANGTIKEUT I CHIEUCH +0xA96D 0xB778 #HANGUL SYLLABLE SSANGTIKEUT I KHIEUKH +0xA96E 0xB779 #HANGUL SYLLABLE SSANGTIKEUT I THIEUTH +0xA96F 0xB77A #HANGUL SYLLABLE SSANGTIKEUT I PHIEUPH +0xA970 0xB77B #HANGUL SYLLABLE SSANGTIKEUT I HIEUH +0xA971 0xB762 #HANGUL SYLLABLE SSANGTIKEUT I SSANGKIYEOK +0xA972 0xB774 #HANGUL SYLLABLE SSANGTIKEUT I SSANGSIOS +0xA973 0xB54F #HANGUL SYLLABLE SSANGTIKEUT AE KIYEOKSIOS +0xA974 0xB551 #HANGUL SYLLABLE SSANGTIKEUT AE NIEUNCIEUC +0xA975 0xB552 #HANGUL SYLLABLE SSANGTIKEUT AE NIEUNHIEUH +0xA976 0xB553 #HANGUL SYLLABLE SSANGTIKEUT AE TIKEUT +0xA977 0xB555 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULKIYEOK +0xA978 0xB556 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULMIEUM +0xA979 0xB557 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULPIEUP +0xA97A 0xB558 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULSIOS +0xA981 0xB559 #HANGUL SYLLABLE SSANGTIKEUT AE RIEULTHIEUTH +0xA982 0xB55A #HANGUL SYLLABLE SSANGTIKEUT AE RIEULPHIEUPH +0xA983 0xB55B #HANGUL SYLLABLE SSANGTIKEUT AE RIEULHIEUH +0xA984 0xB55E #HANGUL SYLLABLE SSANGTIKEUT AE PIEUPSIOS +0xA985 0xB562 #HANGUL SYLLABLE SSANGTIKEUT AE CIEUC +0xA986 0xB563 #HANGUL SYLLABLE SSANGTIKEUT AE CHIEUCH +0xA987 0xB564 #HANGUL SYLLABLE SSANGTIKEUT AE KHIEUKH +0xA988 0xB565 #HANGUL SYLLABLE SSANGTIKEUT AE THIEUTH +0xA989 0xB566 #HANGUL SYLLABLE SSANGTIKEUT AE PHIEUPH +0xA98A 0xB567 #HANGUL SYLLABLE SSANGTIKEUT AE HIEUH +0xA98B 0xB54E #HANGUL SYLLABLE SSANGTIKEUT AE SSANGKIYEOK +0xA98C 0xB584 #HANGUL SYLLABLE SSANGTIKEUT YAE +0xA98D 0xB585 #HANGUL SYLLABLE SSANGTIKEUT YAE KIYEOK +0xA98E 0xB587 #HANGUL SYLLABLE SSANGTIKEUT YAE KIYEOKSIOS +0xA98F 0xB588 #HANGUL SYLLABLE SSANGTIKEUT YAE NIEUN +0xA990 0xB589 #HANGUL SYLLABLE SSANGTIKEUT YAE NIEUNCIEUC +0xA991 0xB58A #HANGUL SYLLABLE SSANGTIKEUT YAE NIEUNHIEUH +0xA992 0xB58B #HANGUL SYLLABLE SSANGTIKEUT YAE TIKEUT +0xA993 0xB58C #HANGUL SYLLABLE SSANGTIKEUT YAE RIEUL +0xA994 0xB58D #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULKIYEOK +0xA995 0xB58E #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULMIEUM +0xA996 0xB58F #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULPIEUP +0xA997 0xB590 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULSIOS +0xA998 0xB591 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULTHIEUTH +0xA999 0xB592 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULPHIEUPH +0xA99A 0xB593 #HANGUL SYLLABLE SSANGTIKEUT YAE RIEULHIEUH +0xA99B 0xB594 #HANGUL SYLLABLE SSANGTIKEUT YAE MIEUM +0xA99C 0xB595 #HANGUL SYLLABLE SSANGTIKEUT YAE PIEUP +0xA99D 0xB596 #HANGUL SYLLABLE SSANGTIKEUT YAE PIEUPSIOS +0xA99E 0xB597 #HANGUL SYLLABLE SSANGTIKEUT YAE SIOS +0xA99F 0xB599 #HANGUL SYLLABLE SSANGTIKEUT YAE IEUNG +0xA9A0 0xB59A #HANGUL SYLLABLE SSANGTIKEUT YAE CIEUC +0xA9A1 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL +0xA9A2 0x2502 #BOX DRAWINGS LIGHT VERTICAL +0xA9A3 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT +0xA9A4 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT +0xA9A5 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT +0xA9A6 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT +0xA9A7 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT +0xA9A8 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +0xA9A9 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT +0xA9AA 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL +0xA9AB 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +0xA9AC 0x2501 #BOX DRAWINGS HEAVY HORIZONTAL +0xA9AD 0x2503 #BOX DRAWINGS HEAVY VERTICAL +0xA9AE 0x250F #BOX DRAWINGS HEAVY DOWN AND RIGHT +0xA9AF 0x2513 #BOX DRAWINGS HEAVY DOWN AND LEFT +0xA9B0 0x251B #BOX DRAWINGS HEAVY UP AND LEFT +0xA9B1 0x2517 #BOX DRAWINGS HEAVY UP AND RIGHT +0xA9B2 0x2523 #BOX DRAWINGS HEAVY VERTICAL AND RIGHT +0xA9B3 0x2533 #BOX DRAWINGS HEAVY DOWN AND HORIZONTAL +0xA9B4 0x252B #BOX DRAWINGS HEAVY VERTICAL AND LEFT +0xA9B5 0x253B #BOX DRAWINGS HEAVY UP AND HORIZONTAL +0xA9B6 0x254B #BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL +0xA9B7 0x2520 #BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT +0xA9B8 0x252F #BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY +0xA9B9 0x2528 #BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT +0xA9BA 0x2537 #BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY +0xA9BB 0x253F #BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY +0xA9BC 0x251D #BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY +0xA9BD 0x2530 #BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT +0xA9BE 0x2525 #BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY +0xA9BF 0x2538 #BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT +0xA9C0 0x2542 #BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT +0xA9C1 0x2512 #BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT +0xA9C2 0x2511 #BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY +0xA9C3 0x251A #BOX DRAWINGS UP HEAVY AND LEFT LIGHT +0xA9C4 0x2519 #BOX DRAWINGS UP LIGHT AND LEFT HEAVY +0xA9C5 0x2516 #BOX DRAWINGS UP HEAVY AND RIGHT LIGHT +0xA9C6 0x2515 #BOX DRAWINGS UP LIGHT AND RIGHT HEAVY +0xA9C7 0x250E #BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT +0xA9C8 0x250D #BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY +0xA9C9 0x251E #BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT +0xA9CA 0x251F #BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT +0xA9CB 0x2521 #BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY +0xA9CC 0x2522 #BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY +0xA9CD 0x2526 #BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT +0xA9CE 0x2527 #BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT +0xA9CF 0x2529 #BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY +0xA9D0 0x252A #BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY +0xA9D1 0x252D #BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT +0xA9D2 0x252E #BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT +0xA9D3 0x2531 #BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY +0xA9D4 0x2532 #BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY +0xA9D5 0x2535 #BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT +0xA9D6 0x2536 #BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT +0xA9D7 0x2539 #BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY +0xA9D8 0x253A #BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY +0xA9D9 0x253D #BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT +0xA9DA 0x253E #BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT +0xA9DB 0x2540 #BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT +0xA9DC 0x2541 #BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT +0xA9DD 0x2543 #BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT +0xA9DE 0x2544 #BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT +0xA9DF 0x2545 #BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT +0xA9E0 0x2546 #BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT +0xA9E1 0x2547 #BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY +0xA9E2 0x2548 #BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY +0xA9E3 0x2549 #BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY +0xA9E4 0x254A #BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY +0xAA41 0xB59B #HANGUL SYLLABLE SSANGTIKEUT YAE CHIEUCH +0xAA42 0xB59C #HANGUL SYLLABLE SSANGTIKEUT YAE KHIEUKH +0xAA43 0xB59D #HANGUL SYLLABLE SSANGTIKEUT YAE THIEUTH +0xAA44 0xB59E #HANGUL SYLLABLE SSANGTIKEUT YAE PHIEUPH +0xAA45 0xB59F #HANGUL SYLLABLE SSANGTIKEUT YAE HIEUH +0xAA46 0xB586 #HANGUL SYLLABLE SSANGTIKEUT YAE SSANGKIYEOK +0xAA47 0xB598 #HANGUL SYLLABLE SSANGTIKEUT YAE SSANGSIOS +0xAA48 0xB5BF #HANGUL SYLLABLE SSANGTIKEUT E KIYEOKSIOS +0xAA49 0xB5C1 #HANGUL SYLLABLE SSANGTIKEUT E NIEUNCIEUC +0xAA4A 0xB5C2 #HANGUL SYLLABLE SSANGTIKEUT E NIEUNHIEUH +0xAA4B 0xB5C3 #HANGUL SYLLABLE SSANGTIKEUT E TIKEUT +0xAA4C 0xB5C5 #HANGUL SYLLABLE SSANGTIKEUT E RIEULKIYEOK +0xAA4D 0xB5C6 #HANGUL SYLLABLE SSANGTIKEUT E RIEULMIEUM +0xAA4E 0xB5C7 #HANGUL SYLLABLE SSANGTIKEUT E RIEULPIEUP +0xAA4F 0xB5C8 #HANGUL SYLLABLE SSANGTIKEUT E RIEULSIOS +0xAA50 0xB5C9 #HANGUL SYLLABLE SSANGTIKEUT E RIEULTHIEUTH +0xAA51 0xB5CA #HANGUL SYLLABLE SSANGTIKEUT E RIEULPHIEUPH +0xAA52 0xB5CB #HANGUL SYLLABLE SSANGTIKEUT E RIEULHIEUH +0xAA53 0xB5CE #HANGUL SYLLABLE SSANGTIKEUT E PIEUPSIOS +0xAA54 0xB5D2 #HANGUL SYLLABLE SSANGTIKEUT E CIEUC +0xAA55 0xB5D3 #HANGUL SYLLABLE SSANGTIKEUT E CHIEUCH +0xAA56 0xB5D4 #HANGUL SYLLABLE SSANGTIKEUT E KHIEUKH +0xAA57 0xB5D5 #HANGUL SYLLABLE SSANGTIKEUT E THIEUTH +0xAA58 0xB5D6 #HANGUL SYLLABLE SSANGTIKEUT E PHIEUPH +0xAA59 0xB5D7 #HANGUL SYLLABLE SSANGTIKEUT E HIEUH +0xAA5A 0xB5BE #HANGUL SYLLABLE SSANGTIKEUT E SSANGKIYEOK +0xAA61 0xB5F4 #HANGUL SYLLABLE SSANGTIKEUT YE +0xAA62 0xB5F5 #HANGUL SYLLABLE SSANGTIKEUT YE KIYEOK +0xAA63 0xB5F7 #HANGUL SYLLABLE SSANGTIKEUT YE KIYEOKSIOS +0xAA64 0xB5F8 #HANGUL SYLLABLE SSANGTIKEUT YE NIEUN +0xAA65 0xB5F9 #HANGUL SYLLABLE SSANGTIKEUT YE NIEUNCIEUC +0xAA66 0xB5FA #HANGUL SYLLABLE SSANGTIKEUT YE NIEUNHIEUH +0xAA67 0xB5FB #HANGUL SYLLABLE SSANGTIKEUT YE TIKEUT +0xAA68 0xB5FC #HANGUL SYLLABLE SSANGTIKEUT YE RIEUL +0xAA69 0xB5FD #HANGUL SYLLABLE SSANGTIKEUT YE RIEULKIYEOK +0xAA6A 0xB5FE #HANGUL SYLLABLE SSANGTIKEUT YE RIEULMIEUM +0xAA6B 0xB5FF #HANGUL SYLLABLE SSANGTIKEUT YE RIEULPIEUP +0xAA6C 0xB600 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULSIOS +0xAA6D 0xB601 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULTHIEUTH +0xAA6E 0xB602 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULPHIEUPH +0xAA6F 0xB603 #HANGUL SYLLABLE SSANGTIKEUT YE RIEULHIEUH +0xAA70 0xB604 #HANGUL SYLLABLE SSANGTIKEUT YE MIEUM +0xAA71 0xB605 #HANGUL SYLLABLE SSANGTIKEUT YE PIEUP +0xAA72 0xB606 #HANGUL SYLLABLE SSANGTIKEUT YE PIEUPSIOS +0xAA73 0xB607 #HANGUL SYLLABLE SSANGTIKEUT YE SIOS +0xAA74 0xB609 #HANGUL SYLLABLE SSANGTIKEUT YE IEUNG +0xAA75 0xB60A #HANGUL SYLLABLE SSANGTIKEUT YE CIEUC +0xAA76 0xB60B #HANGUL SYLLABLE SSANGTIKEUT YE CHIEUCH +0xAA77 0xB60C #HANGUL SYLLABLE SSANGTIKEUT YE KHIEUKH +0xAA78 0xB60D #HANGUL SYLLABLE SSANGTIKEUT YE THIEUTH +0xAA79 0xB60E #HANGUL SYLLABLE SSANGTIKEUT YE PHIEUPH +0xAA7A 0xB60F #HANGUL SYLLABLE SSANGTIKEUT YE HIEUH +0xAA81 0xB5F6 #HANGUL SYLLABLE SSANGTIKEUT YE SSANGKIYEOK +0xAA82 0xB608 #HANGUL SYLLABLE SSANGTIKEUT YE SSANGSIOS +0xAA83 0xB665 #HANGUL SYLLABLE SSANGTIKEUT OE KIYEOK +0xAA84 0xB667 #HANGUL SYLLABLE SSANGTIKEUT OE KIYEOKSIOS +0xAA85 0xB669 #HANGUL SYLLABLE SSANGTIKEUT OE NIEUNCIEUC +0xAA86 0xB66A #HANGUL SYLLABLE SSANGTIKEUT OE NIEUNHIEUH +0xAA87 0xB66B #HANGUL SYLLABLE SSANGTIKEUT OE TIKEUT +0xAA88 0xB66C #HANGUL SYLLABLE SSANGTIKEUT OE RIEUL +0xAA89 0xB66D #HANGUL SYLLABLE SSANGTIKEUT OE RIEULKIYEOK +0xAA8A 0xB66E #HANGUL SYLLABLE SSANGTIKEUT OE RIEULMIEUM +0xAA8B 0xB66F #HANGUL SYLLABLE SSANGTIKEUT OE RIEULPIEUP +0xAA8C 0xB670 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULSIOS +0xAA8D 0xB671 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULTHIEUTH +0xAA8E 0xB672 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULPHIEUPH +0xAA8F 0xB673 #HANGUL SYLLABLE SSANGTIKEUT OE RIEULHIEUH +0xAA90 0xB674 #HANGUL SYLLABLE SSANGTIKEUT OE MIEUM +0xAA91 0xB675 #HANGUL SYLLABLE SSANGTIKEUT OE PIEUP +0xAA92 0xB676 #HANGUL SYLLABLE SSANGTIKEUT OE PIEUPSIOS +0xAA93 0xB677 #HANGUL SYLLABLE SSANGTIKEUT OE SIOS +0xAA94 0xB679 #HANGUL SYLLABLE SSANGTIKEUT OE IEUNG +0xAA95 0xB67A #HANGUL SYLLABLE SSANGTIKEUT OE CIEUC +0xAA96 0xB67B #HANGUL SYLLABLE SSANGTIKEUT OE CHIEUCH +0xAA97 0xB67C #HANGUL SYLLABLE SSANGTIKEUT OE KHIEUKH +0xAA98 0xB67D #HANGUL SYLLABLE SSANGTIKEUT OE THIEUTH +0xAA99 0xB67E #HANGUL SYLLABLE SSANGTIKEUT OE PHIEUPH +0xAA9A 0xB67F #HANGUL SYLLABLE SSANGTIKEUT OE HIEUH +0xAA9B 0xB666 #HANGUL SYLLABLE SSANGTIKEUT OE SSANGKIYEOK +0xAA9C 0xB678 #HANGUL SYLLABLE SSANGTIKEUT OE SSANGSIOS +0xAA9D 0xB6F1 #HANGUL SYLLABLE SSANGTIKEUT WI KIYEOK +0xAA9E 0xB6F3 #HANGUL SYLLABLE SSANGTIKEUT WI KIYEOKSIOS +0xAA9F 0xB6F5 #HANGUL SYLLABLE SSANGTIKEUT WI NIEUNCIEUC +0xAAA0 0xB6F6 #HANGUL SYLLABLE SSANGTIKEUT WI NIEUNHIEUH +0xAAA1 0x3041 #HIRAGANA LETTER SMALL A +0xAAA2 0x3042 #HIRAGANA LETTER A +0xAAA3 0x3043 #HIRAGANA LETTER SMALL I +0xAAA4 0x3044 #HIRAGANA LETTER I +0xAAA5 0x3045 #HIRAGANA LETTER SMALL U +0xAAA6 0x3046 #HIRAGANA LETTER U +0xAAA7 0x3047 #HIRAGANA LETTER SMALL E +0xAAA8 0x3048 #HIRAGANA LETTER E +0xAAA9 0x3049 #HIRAGANA LETTER SMALL O +0xAAAA 0x304A #HIRAGANA LETTER O +0xAAAB 0x304B #HIRAGANA LETTER KA +0xAAAC 0x304C #HIRAGANA LETTER GA +0xAAAD 0x304D #HIRAGANA LETTER KI +0xAAAE 0x304E #HIRAGANA LETTER GI +0xAAAF 0x304F #HIRAGANA LETTER KU +0xAAB0 0x3050 #HIRAGANA LETTER GU +0xAAB1 0x3051 #HIRAGANA LETTER KE +0xAAB2 0x3052 #HIRAGANA LETTER GE +0xAAB3 0x3053 #HIRAGANA LETTER KO +0xAAB4 0x3054 #HIRAGANA LETTER GO +0xAAB5 0x3055 #HIRAGANA LETTER SA +0xAAB6 0x3056 #HIRAGANA LETTER ZA +0xAAB7 0x3057 #HIRAGANA LETTER SI +0xAAB8 0x3058 #HIRAGANA LETTER ZI +0xAAB9 0x3059 #HIRAGANA LETTER SU +0xAABA 0x305A #HIRAGANA LETTER ZU +0xAABB 0x305B #HIRAGANA LETTER SE +0xAABC 0x305C #HIRAGANA LETTER ZE +0xAABD 0x305D #HIRAGANA LETTER SO +0xAABE 0x305E #HIRAGANA LETTER ZO +0xAABF 0x305F #HIRAGANA LETTER TA +0xAAC0 0x3060 #HIRAGANA LETTER DA +0xAAC1 0x3061 #HIRAGANA LETTER TI +0xAAC2 0x3062 #HIRAGANA LETTER DI +0xAAC3 0x3063 #HIRAGANA LETTER SMALL TU +0xAAC4 0x3064 #HIRAGANA LETTER TU +0xAAC5 0x3065 #HIRAGANA LETTER DU +0xAAC6 0x3066 #HIRAGANA LETTER TE +0xAAC7 0x3067 #HIRAGANA LETTER DE +0xAAC8 0x3068 #HIRAGANA LETTER TO +0xAAC9 0x3069 #HIRAGANA LETTER DO +0xAACA 0x306A #HIRAGANA LETTER NA +0xAACB 0x306B #HIRAGANA LETTER NI +0xAACC 0x306C #HIRAGANA LETTER NU +0xAACD 0x306D #HIRAGANA LETTER NE +0xAACE 0x306E #HIRAGANA LETTER NO +0xAACF 0x306F #HIRAGANA LETTER HA +0xAAD0 0x3070 #HIRAGANA LETTER BA +0xAAD1 0x3071 #HIRAGANA LETTER PA +0xAAD2 0x3072 #HIRAGANA LETTER HI +0xAAD3 0x3073 #HIRAGANA LETTER BI +0xAAD4 0x3074 #HIRAGANA LETTER PI +0xAAD5 0x3075 #HIRAGANA LETTER HU +0xAAD6 0x3076 #HIRAGANA LETTER BU +0xAAD7 0x3077 #HIRAGANA LETTER PU +0xAAD8 0x3078 #HIRAGANA LETTER HE +0xAAD9 0x3079 #HIRAGANA LETTER BE +0xAADA 0x307A #HIRAGANA LETTER PE +0xAADB 0x307B #HIRAGANA LETTER HO +0xAADC 0x307C #HIRAGANA LETTER BO +0xAADD 0x307D #HIRAGANA LETTER PO +0xAADE 0x307E #HIRAGANA LETTER MA +0xAADF 0x307F #HIRAGANA LETTER MI +0xAAE0 0x3080 #HIRAGANA LETTER MU +0xAAE1 0x3081 #HIRAGANA LETTER ME +0xAAE2 0x3082 #HIRAGANA LETTER MO +0xAAE3 0x3083 #HIRAGANA LETTER SMALL YA +0xAAE4 0x3084 #HIRAGANA LETTER YA +0xAAE5 0x3085 #HIRAGANA LETTER SMALL YU +0xAAE6 0x3086 #HIRAGANA LETTER YU +0xAAE7 0x3087 #HIRAGANA LETTER SMALL YO +0xAAE8 0x3088 #HIRAGANA LETTER YO +0xAAE9 0x3089 #HIRAGANA LETTER RA +0xAAEA 0x308A #HIRAGANA LETTER RI +0xAAEB 0x308B #HIRAGANA LETTER RU +0xAAEC 0x308C #HIRAGANA LETTER RE +0xAAED 0x308D #HIRAGANA LETTER RO +0xAAEE 0x308E #HIRAGANA LETTER SMALL WA +0xAAEF 0x308F #HIRAGANA LETTER WA +0xAAF0 0x3090 #HIRAGANA LETTER WI +0xAAF1 0x3091 #HIRAGANA LETTER WE +0xAAF2 0x3092 #HIRAGANA LETTER WO +0xAAF3 0x3093 #HIRAGANA LETTER N +0xAB41 0xB6F7 #HANGUL SYLLABLE SSANGTIKEUT WI TIKEUT +0xAB42 0xB6F9 #HANGUL SYLLABLE SSANGTIKEUT WI RIEULKIYEOK +0xAB43 0xB6FA #HANGUL SYLLABLE SSANGTIKEUT WI RIEULMIEUM +0xAB44 0xB6FB #HANGUL SYLLABLE SSANGTIKEUT WI RIEULPIEUP +0xAB45 0xB6FC #HANGUL SYLLABLE SSANGTIKEUT WI RIEULSIOS +0xAB46 0xB6FD #HANGUL SYLLABLE SSANGTIKEUT WI RIEULTHIEUTH +0xAB47 0xB6FE #HANGUL SYLLABLE SSANGTIKEUT WI RIEULPHIEUPH +0xAB48 0xB6FF #HANGUL SYLLABLE SSANGTIKEUT WI RIEULHIEUH +0xAB49 0xB702 #HANGUL SYLLABLE SSANGTIKEUT WI PIEUPSIOS +0xAB4A 0xB703 #HANGUL SYLLABLE SSANGTIKEUT WI SIOS +0xAB4B 0xB706 #HANGUL SYLLABLE SSANGTIKEUT WI CIEUC +0xAB4C 0xB707 #HANGUL SYLLABLE SSANGTIKEUT WI CHIEUCH +0xAB4D 0xB708 #HANGUL SYLLABLE SSANGTIKEUT WI KHIEUKH +0xAB4E 0xB709 #HANGUL SYLLABLE SSANGTIKEUT WI THIEUTH +0xAB4F 0xB70A #HANGUL SYLLABLE SSANGTIKEUT WI PHIEUPH +0xAB50 0xB70B #HANGUL SYLLABLE SSANGTIKEUT WI HIEUH +0xAB51 0xB6F2 #HANGUL SYLLABLE SSANGTIKEUT WI SSANGKIYEOK +0xAB52 0xB704 #HANGUL SYLLABLE SSANGTIKEUT WI SSANGSIOS +0xAB53 0xB747 #HANGUL SYLLABLE SSANGTIKEUT YI KIYEOKSIOS +0xAB54 0xB749 #HANGUL SYLLABLE SSANGTIKEUT YI NIEUNCIEUC +0xAB55 0xB74A #HANGUL SYLLABLE SSANGTIKEUT YI NIEUNHIEUH +0xAB56 0xB74B #HANGUL SYLLABLE SSANGTIKEUT YI TIKEUT +0xAB57 0xB74D #HANGUL SYLLABLE SSANGTIKEUT YI RIEULKIYEOK +0xAB58 0xB74E #HANGUL SYLLABLE SSANGTIKEUT YI RIEULMIEUM +0xAB59 0xB74F #HANGUL SYLLABLE SSANGTIKEUT YI RIEULPIEUP +0xAB5A 0xB750 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULSIOS +0xAB61 0xB751 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULTHIEUTH +0xAB62 0xB752 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULPHIEUPH +0xAB63 0xB753 #HANGUL SYLLABLE SSANGTIKEUT YI RIEULHIEUH +0xAB64 0xB756 #HANGUL SYLLABLE SSANGTIKEUT YI PIEUPSIOS +0xAB65 0xB757 #HANGUL SYLLABLE SSANGTIKEUT YI SIOS +0xAB66 0xB75A #HANGUL SYLLABLE SSANGTIKEUT YI CIEUC +0xAB67 0xB75B #HANGUL SYLLABLE SSANGTIKEUT YI CHIEUCH +0xAB68 0xB75C #HANGUL SYLLABLE SSANGTIKEUT YI KHIEUKH +0xAB69 0xB75D #HANGUL SYLLABLE SSANGTIKEUT YI THIEUTH +0xAB6A 0xB75E #HANGUL SYLLABLE SSANGTIKEUT YI PHIEUPH +0xAB6B 0xB75F #HANGUL SYLLABLE SSANGTIKEUT YI HIEUH +0xAB6C 0xB746 #HANGUL SYLLABLE SSANGTIKEUT YI SSANGKIYEOK +0xAB6D 0xB758 #HANGUL SYLLABLE SSANGTIKEUT YI SSANGSIOS +0xAB6E 0xB62D #HANGUL SYLLABLE SSANGTIKEUT WA KIYEOK +0xAB6F 0xB62F #HANGUL SYLLABLE SSANGTIKEUT WA KIYEOKSIOS +0xAB70 0xB631 #HANGUL SYLLABLE SSANGTIKEUT WA NIEUNCIEUC +0xAB71 0xB632 #HANGUL SYLLABLE SSANGTIKEUT WA NIEUNHIEUH +0xAB72 0xB633 #HANGUL SYLLABLE SSANGTIKEUT WA TIKEUT +0xAB73 0xB635 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULKIYEOK +0xAB74 0xB636 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULMIEUM +0xAB75 0xB637 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULPIEUP +0xAB76 0xB638 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULSIOS +0xAB77 0xB639 #HANGUL SYLLABLE SSANGTIKEUT WA RIEULTHIEUTH +0xAB78 0xB63A #HANGUL SYLLABLE SSANGTIKEUT WA RIEULPHIEUPH +0xAB79 0xB63B #HANGUL SYLLABLE SSANGTIKEUT WA RIEULHIEUH +0xAB7A 0xB63C #HANGUL SYLLABLE SSANGTIKEUT WA MIEUM +0xAB81 0xB63D #HANGUL SYLLABLE SSANGTIKEUT WA PIEUP +0xAB82 0xB63E #HANGUL SYLLABLE SSANGTIKEUT WA PIEUPSIOS +0xAB83 0xB63F #HANGUL SYLLABLE SSANGTIKEUT WA SIOS +0xAB84 0xB641 #HANGUL SYLLABLE SSANGTIKEUT WA IEUNG +0xAB85 0xB642 #HANGUL SYLLABLE SSANGTIKEUT WA CIEUC +0xAB86 0xB643 #HANGUL SYLLABLE SSANGTIKEUT WA CHIEUCH +0xAB87 0xB644 #HANGUL SYLLABLE SSANGTIKEUT WA KHIEUKH +0xAB88 0xB645 #HANGUL SYLLABLE SSANGTIKEUT WA THIEUTH +0xAB89 0xB646 #HANGUL SYLLABLE SSANGTIKEUT WA PHIEUPH +0xAB8A 0xB647 #HANGUL SYLLABLE SSANGTIKEUT WA HIEUH +0xAB8B 0xB62E #HANGUL SYLLABLE SSANGTIKEUT WA SSANGKIYEOK +0xAB8C 0xB640 #HANGUL SYLLABLE SSANGTIKEUT WA SSANGSIOS +0xAB8D 0xB6B9 #HANGUL SYLLABLE SSANGTIKEUT WEO KIYEOK +0xAB8E 0xB6BB #HANGUL SYLLABLE SSANGTIKEUT WEO KIYEOKSIOS +0xAB8F 0xB6BC #HANGUL SYLLABLE SSANGTIKEUT WEO NIEUN +0xAB90 0xB6BD #HANGUL SYLLABLE SSANGTIKEUT WEO NIEUNCIEUC +0xAB91 0xB6BE #HANGUL SYLLABLE SSANGTIKEUT WEO NIEUNHIEUH +0xAB92 0xB6BF #HANGUL SYLLABLE SSANGTIKEUT WEO TIKEUT +0xAB93 0xB6C0 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEUL +0xAB94 0xB6C1 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULKIYEOK +0xAB95 0xB6C2 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULMIEUM +0xAB96 0xB6C3 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULPIEUP +0xAB97 0xB6C4 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULSIOS +0xAB98 0xB6C5 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULTHIEUTH +0xAB99 0xB6C6 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULPHIEUPH +0xAB9A 0xB6C7 #HANGUL SYLLABLE SSANGTIKEUT WEO RIEULHIEUH +0xAB9B 0xB6C8 #HANGUL SYLLABLE SSANGTIKEUT WEO MIEUM +0xAB9C 0xB6C9 #HANGUL SYLLABLE SSANGTIKEUT WEO PIEUP +0xAB9D 0xB6CA #HANGUL SYLLABLE SSANGTIKEUT WEO PIEUPSIOS +0xAB9E 0xB6CB #HANGUL SYLLABLE SSANGTIKEUT WEO SIOS +0xAB9F 0xB6CD #HANGUL SYLLABLE SSANGTIKEUT WEO IEUNG +0xABA0 0xB6CE #HANGUL SYLLABLE SSANGTIKEUT WEO CIEUC +0xABA1 0x30A1 #KATAKANA LETTER SMALL A +0xABA2 0x30A2 #KATAKANA LETTER A +0xABA3 0x30A3 #KATAKANA LETTER SMALL I +0xABA4 0x30A4 #KATAKANA LETTER I +0xABA5 0x30A5 #KATAKANA LETTER SMALL U +0xABA6 0x30A6 #KATAKANA LETTER U +0xABA7 0x30A7 #KATAKANA LETTER SMALL E +0xABA8 0x30A8 #KATAKANA LETTER E +0xABA9 0x30A9 #KATAKANA LETTER SMALL O +0xABAA 0x30AA #KATAKANA LETTER O +0xABAB 0x30AB #KATAKANA LETTER KA +0xABAC 0x30AC #KATAKANA LETTER GA +0xABAD 0x30AD #KATAKANA LETTER KI +0xABAE 0x30AE #KATAKANA LETTER GI +0xABAF 0x30AF #KATAKANA LETTER KU +0xABB0 0x30B0 #KATAKANA LETTER GU +0xABB1 0x30B1 #KATAKANA LETTER KE +0xABB2 0x30B2 #KATAKANA LETTER GE +0xABB3 0x30B3 #KATAKANA LETTER KO +0xABB4 0x30B4 #KATAKANA LETTER GO +0xABB5 0x30B5 #KATAKANA LETTER SA +0xABB6 0x30B6 #KATAKANA LETTER ZA +0xABB7 0x30B7 #KATAKANA LETTER SI +0xABB8 0x30B8 #KATAKANA LETTER ZI +0xABB9 0x30B9 #KATAKANA LETTER SU +0xABBA 0x30BA #KATAKANA LETTER ZU +0xABBB 0x30BB #KATAKANA LETTER SE +0xABBC 0x30BC #KATAKANA LETTER ZE +0xABBD 0x30BD #KATAKANA LETTER SO +0xABBE 0x30BE #KATAKANA LETTER ZO +0xABBF 0x30BF #KATAKANA LETTER TA +0xABC0 0x30C0 #KATAKANA LETTER DA +0xABC1 0x30C1 #KATAKANA LETTER TI +0xABC2 0x30C2 #KATAKANA LETTER DI +0xABC3 0x30C3 #KATAKANA LETTER SMALL TU +0xABC4 0x30C4 #KATAKANA LETTER TU +0xABC5 0x30C5 #KATAKANA LETTER DU +0xABC6 0x30C6 #KATAKANA LETTER TE +0xABC7 0x30C7 #KATAKANA LETTER DE +0xABC8 0x30C8 #KATAKANA LETTER TO +0xABC9 0x30C9 #KATAKANA LETTER DO +0xABCA 0x30CA #KATAKANA LETTER NA +0xABCB 0x30CB #KATAKANA LETTER NI +0xABCC 0x30CC #KATAKANA LETTER NU +0xABCD 0x30CD #KATAKANA LETTER NE +0xABCE 0x30CE #KATAKANA LETTER NO +0xABCF 0x30CF #KATAKANA LETTER HA +0xABD0 0x30D0 #KATAKANA LETTER BA +0xABD1 0x30D1 #KATAKANA LETTER PA +0xABD2 0x30D2 #KATAKANA LETTER HI +0xABD3 0x30D3 #KATAKANA LETTER BI +0xABD4 0x30D4 #KATAKANA LETTER PI +0xABD5 0x30D5 #KATAKANA LETTER HU +0xABD6 0x30D6 #KATAKANA LETTER BU +0xABD7 0x30D7 #KATAKANA LETTER PU +0xABD8 0x30D8 #KATAKANA LETTER HE +0xABD9 0x30D9 #KATAKANA LETTER BE +0xABDA 0x30DA #KATAKANA LETTER PE +0xABDB 0x30DB #KATAKANA LETTER HO +0xABDC 0x30DC #KATAKANA LETTER BO +0xABDD 0x30DD #KATAKANA LETTER PO +0xABDE 0x30DE #KATAKANA LETTER MA +0xABDF 0x30DF #KATAKANA LETTER MI +0xABE0 0x30E0 #KATAKANA LETTER MU +0xABE1 0x30E1 #KATAKANA LETTER ME +0xABE2 0x30E2 #KATAKANA LETTER MO +0xABE3 0x30E3 #KATAKANA LETTER SMALL YA +0xABE4 0x30E4 #KATAKANA LETTER YA +0xABE5 0x30E5 #KATAKANA LETTER SMALL YU +0xABE6 0x30E6 #KATAKANA LETTER YU +0xABE7 0x30E7 #KATAKANA LETTER SMALL YO +0xABE8 0x30E8 #KATAKANA LETTER YO +0xABE9 0x30E9 #KATAKANA LETTER RA +0xABEA 0x30EA #KATAKANA LETTER RI +0xABEB 0x30EB #KATAKANA LETTER RU +0xABEC 0x30EC #KATAKANA LETTER RE +0xABED 0x30ED #KATAKANA LETTER RO +0xABEE 0x30EE #KATAKANA LETTER SMALL WA +0xABEF 0x30EF #KATAKANA LETTER WA +0xABF0 0x30F0 #KATAKANA LETTER WI +0xABF1 0x30F1 #KATAKANA LETTER WE +0xABF2 0x30F2 #KATAKANA LETTER WO +0xABF3 0x30F3 #KATAKANA LETTER N +0xABF4 0x30F4 #KATAKANA LETTER VU +0xABF5 0x30F5 #KATAKANA LETTER SMALL KA +0xABF6 0x30F6 #KATAKANA LETTER SMALL KE +0xAC41 0xB6CF #HANGUL SYLLABLE SSANGTIKEUT WEO CHIEUCH +0xAC42 0xB6D0 #HANGUL SYLLABLE SSANGTIKEUT WEO KHIEUKH +0xAC43 0xB6D1 #HANGUL SYLLABLE SSANGTIKEUT WEO THIEUTH +0xAC44 0xB6D2 #HANGUL SYLLABLE SSANGTIKEUT WEO PHIEUPH +0xAC45 0xB6D3 #HANGUL SYLLABLE SSANGTIKEUT WEO HIEUH +0xAC46 0xB6BA #HANGUL SYLLABLE SSANGTIKEUT WEO SSANGKIYEOK +0xAC47 0xB64B #HANGUL SYLLABLE SSANGTIKEUT WAE KIYEOKSIOS +0xAC48 0xB64C #HANGUL SYLLABLE SSANGTIKEUT WAE NIEUN +0xAC49 0xB64D #HANGUL SYLLABLE SSANGTIKEUT WAE NIEUNCIEUC +0xAC4A 0xB64E #HANGUL SYLLABLE SSANGTIKEUT WAE NIEUNHIEUH +0xAC4B 0xB64F #HANGUL SYLLABLE SSANGTIKEUT WAE TIKEUT +0xAC4C 0xB650 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEUL +0xAC4D 0xB651 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULKIYEOK +0xAC4E 0xB652 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULMIEUM +0xAC4F 0xB653 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULPIEUP +0xAC50 0xB654 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULSIOS +0xAC51 0xB655 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULTHIEUTH +0xAC52 0xB656 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULPHIEUPH +0xAC53 0xB657 #HANGUL SYLLABLE SSANGTIKEUT WAE RIEULHIEUH +0xAC54 0xB658 #HANGUL SYLLABLE SSANGTIKEUT WAE MIEUM +0xAC55 0xB659 #HANGUL SYLLABLE SSANGTIKEUT WAE PIEUP +0xAC56 0xB65A #HANGUL SYLLABLE SSANGTIKEUT WAE PIEUPSIOS +0xAC57 0xB65B #HANGUL SYLLABLE SSANGTIKEUT WAE SIOS +0xAC58 0xB65D #HANGUL SYLLABLE SSANGTIKEUT WAE IEUNG +0xAC59 0xB65E #HANGUL SYLLABLE SSANGTIKEUT WAE CIEUC +0xAC5A 0xB65F #HANGUL SYLLABLE SSANGTIKEUT WAE CHIEUCH +0xAC61 0xB660 #HANGUL SYLLABLE SSANGTIKEUT WAE KHIEUKH +0xAC62 0xB661 #HANGUL SYLLABLE SSANGTIKEUT WAE THIEUTH +0xAC63 0xB662 #HANGUL SYLLABLE SSANGTIKEUT WAE PHIEUPH +0xAC64 0xB663 #HANGUL SYLLABLE SSANGTIKEUT WAE HIEUH +0xAC65 0xB64A #HANGUL SYLLABLE SSANGTIKEUT WAE SSANGKIYEOK +0xAC66 0xB65C #HANGUL SYLLABLE SSANGTIKEUT WAE SSANGSIOS +0xAC67 0xB6D5 #HANGUL SYLLABLE SSANGTIKEUT WE KIYEOK +0xAC68 0xB6D7 #HANGUL SYLLABLE SSANGTIKEUT WE KIYEOKSIOS +0xAC69 0xB6D8 #HANGUL SYLLABLE SSANGTIKEUT WE NIEUN +0xAC6A 0xB6D9 #HANGUL SYLLABLE SSANGTIKEUT WE NIEUNCIEUC +0xAC6B 0xB6DA #HANGUL SYLLABLE SSANGTIKEUT WE NIEUNHIEUH +0xAC6C 0xB6DB #HANGUL SYLLABLE SSANGTIKEUT WE TIKEUT +0xAC6D 0xB6DC #HANGUL SYLLABLE SSANGTIKEUT WE RIEUL +0xAC6E 0xB6DD #HANGUL SYLLABLE SSANGTIKEUT WE RIEULKIYEOK +0xAC6F 0xB6DE #HANGUL SYLLABLE SSANGTIKEUT WE RIEULMIEUM +0xAC70 0xB6DF #HANGUL SYLLABLE SSANGTIKEUT WE RIEULPIEUP +0xAC71 0xB6E0 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULSIOS +0xAC72 0xB6E1 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULTHIEUTH +0xAC73 0xB6E2 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULPHIEUPH +0xAC74 0xB6E3 #HANGUL SYLLABLE SSANGTIKEUT WE RIEULHIEUH +0xAC75 0xB6E4 #HANGUL SYLLABLE SSANGTIKEUT WE MIEUM +0xAC76 0xB6E5 #HANGUL SYLLABLE SSANGTIKEUT WE PIEUP +0xAC77 0xB6E6 #HANGUL SYLLABLE SSANGTIKEUT WE PIEUPSIOS +0xAC78 0xB6E7 #HANGUL SYLLABLE SSANGTIKEUT WE SIOS +0xAC79 0xB6E9 #HANGUL SYLLABLE SSANGTIKEUT WE IEUNG +0xAC7A 0xB6EA #HANGUL SYLLABLE SSANGTIKEUT WE CIEUC +0xAC81 0xB6EB #HANGUL SYLLABLE SSANGTIKEUT WE CHIEUCH +0xAC82 0xB6EC #HANGUL SYLLABLE SSANGTIKEUT WE KHIEUKH +0xAC83 0xB6ED #HANGUL SYLLABLE SSANGTIKEUT WE THIEUTH +0xAC84 0xB6EE #HANGUL SYLLABLE SSANGTIKEUT WE PHIEUPH +0xAC85 0xB6EF #HANGUL SYLLABLE SSANGTIKEUT WE HIEUH +0xAC86 0xB6D6 #HANGUL SYLLABLE SSANGTIKEUT WE SSANGKIYEOK +0xAC87 0xB6E8 #HANGUL SYLLABLE SSANGTIKEUT WE SSANGSIOS +0xAC88 0xBE63 #HANGUL SYLLABLE SSANGPIEUP A KIYEOKSIOS +0xAC89 0xBE65 #HANGUL SYLLABLE SSANGPIEUP A NIEUNCIEUC +0xAC8A 0xBE66 #HANGUL SYLLABLE SSANGPIEUP A NIEUNHIEUH +0xAC8B 0xBE67 #HANGUL SYLLABLE SSANGPIEUP A TIKEUT +0xAC8C 0xBE69 #HANGUL SYLLABLE SSANGPIEUP A RIEULKIYEOK +0xAC8D 0xBE6B #HANGUL SYLLABLE SSANGPIEUP A RIEULPIEUP +0xAC8E 0xBE6C #HANGUL SYLLABLE SSANGPIEUP A RIEULSIOS +0xAC8F 0xBE6D #HANGUL SYLLABLE SSANGPIEUP A RIEULTHIEUTH +0xAC90 0xBE6E #HANGUL SYLLABLE SSANGPIEUP A RIEULPHIEUPH +0xAC91 0xBE6F #HANGUL SYLLABLE SSANGPIEUP A RIEULHIEUH +0xAC92 0xBE72 #HANGUL SYLLABLE SSANGPIEUP A PIEUPSIOS +0xAC93 0xBE76 #HANGUL SYLLABLE SSANGPIEUP A CIEUC +0xAC94 0xBE77 #HANGUL SYLLABLE SSANGPIEUP A CHIEUCH +0xAC95 0xBE78 #HANGUL SYLLABLE SSANGPIEUP A KHIEUKH +0xAC96 0xBE79 #HANGUL SYLLABLE SSANGPIEUP A THIEUTH +0xAC97 0xBE7A #HANGUL SYLLABLE SSANGPIEUP A PHIEUPH +0xAC98 0xBE62 #HANGUL SYLLABLE SSANGPIEUP A SSANGKIYEOK +0xAC99 0xBE9B #HANGUL SYLLABLE SSANGPIEUP YA KIYEOKSIOS +0xAC9A 0xBE9D #HANGUL SYLLABLE SSANGPIEUP YA NIEUNCIEUC +0xAC9B 0xBE9E #HANGUL SYLLABLE SSANGPIEUP YA NIEUNHIEUH +0xAC9C 0xBE9F #HANGUL SYLLABLE SSANGPIEUP YA TIKEUT +0xAC9D 0xBEA0 #HANGUL SYLLABLE SSANGPIEUP YA RIEUL +0xAC9E 0xBEA1 #HANGUL SYLLABLE SSANGPIEUP YA RIEULKIYEOK +0xAC9F 0xBEA2 #HANGUL SYLLABLE SSANGPIEUP YA RIEULMIEUM +0xACA0 0xBEA3 #HANGUL SYLLABLE SSANGPIEUP YA RIEULPIEUP +0xACA1 0xF127 #hammer and sickle and brush +0xACA2 0xF128 #circled hammer and sickle and brush +0xACA3 0x235F #APL FUNCTIONAL SYMBOL CIRCLE STAR +0xACA4 0x2600 #BLACK SUN WITH RAYS +0xACA5 0x2602 #UMBRELLA +0xACA6 0x2614 #UMBRELLA WITH RAIN DROPS +0xACA7 0x2601 #CLOUD +0xACA8 0x2744 #SNOWFLAKE +0xACA9 0x26A1 #HIGH VOLTAGE SIGN +0xACAA 0x26A0 #WARNING SIGN +0xACAB 0x2116 #NUMERO SIGN +0xACAC 0x2192 #RIGHTWARDS ARROW +0xACAD 0x2190 #LEFTWARDS ARROW +0xACAE 0x2191 #UPWARDS ARROW +0xACAF 0x2193 #DOWNWARDS ARROW +0xACB0 0x2197 #NORTH EAST ARROW +0xACB1 0x2196 #NORTH WEST ARROW +0xACB2 0x2198 #SOUTH EAST ARROW +0xACB3 0x2199 #SOUTH WEST ARROW +0xACB4 0x2194 #LEFT RIGHT ARROW +0xACB5 0x2195 #UP DOWN ARROW +0xACB6 0x21E8 #RIGHTWARDS WHITE ARROW +0xACB7 0x21E6 #LEFTWARDS WHITE ARROW +0xACB8 0x21E7 #UPWARDS WHITE ARROW +0xACB9 0x21E9 #DOWNWARDS WHITE ARROW +0xACBA 0x2B00 #NORTH EAST WHITE ARROW +# 0xACBA 0x2B01 #NORTH WEST WHITE ARROW (mapping error, glyph in KPS 9566-97 shows correct direction) +0xACBB 0x2B01 #NORTH WEST WHITE ARROW +# 0xACBB 0x2B00 #NORTH EAST WHITE ARROW (mapping error, glyph in KPS 9566-97 shows correct direction) +0xACBC 0x2B02 #SOUTH EAST WHITE ARROW +0xACBD 0x2B03 #SOUTH WEST WHITE ARROW +0xACBE 0x2B04 #LEFT RIGHT WHITE ARROW +0xACBF 0x21F3 #UP DOWN WHITE ARROW +0xACC0 0x27A1 #BLACK RIGHTWARDS ARROW +0xACC1 0x2B05 #LEFTWARDS BLACK ARROW +0xACC2 0x2B06 #UPWARDS BLACK ARROW +0xACC3 0x2B07 #DOWNWARDS BLACK ARROW +0xACC4 0x2B08 #NORTH EAST BLACK ARROW +0xACC5 0x2B09 #NORTH WEST BLACK ARROW +0xACC6 0x2B0A #SOUTH EAST BLACK ARROW +0xACC7 0x2B0B #SOUTH WEST BLACK ARROW +0xACC8 0x2B0C #LEFT RIGHT BLACK ARROW +0xACC9 0x2B0D #UP DOWN BLACK ARROW +0xACCA 0x2663 #BLACK CLUB SUIT +0xACCB 0x2665 #BLACK HEART SUIT +0xACCC 0x2660 #BLACK SPADE SUIT +0xACCD 0x2666 #BLACK DIAMOND SUIT +0xACCE 0x3012 #POSTAL MARK +# 0xACCF #white down-pointing triangle with postal mark (mapping in KPS 9566-97, removed from KPS 9566-2003) +0xACD0 0x260F #WHITE TELEPHONE +0xACD1 0x260E #BLACK TELEPHONE +0xACD2 0x23CE #RETURN SYMBOL +0xACD3 0x261E #WHITE RIGHT POINTING INDEX +0xACD4 0xF13C #circled upward indication +0xACD5 0xF13D #leftwards scissors +0xACD6 0x2615 #HOT BEVERAGE +0xACD7 0x327C #CIRCLED KOREAN CHARACTER CHAMKO +0xACD8 0x327D #CIRCLED KOREAN CHARACTER JUEUI +0xACD9 0x321D #PARENTHESIZED KOREAN CHARACTER OJEON +0xACDA 0x321E #PARENTHESIZED KOREAN CHARACTER O HU +0xACDB 0x33C7 #SQUARE CO +0xACDC 0x32CF #LIMITED LIABILITY SIGN +0xACDD 0x3250 #PARTNERSHIP SIGN +0xACDE 0x2121 #TELEPHONE SIGN +0xACDF 0x213B #FACSIMILE SIGN +0xACE0 0x337A #SQUARE IU +0xACE1 0x00AE #REGISTERED SIGN +0xAD41 0xBEA4 #HANGUL SYLLABLE SSANGPIEUP YA RIEULSIOS +0xAD42 0xBEA5 #HANGUL SYLLABLE SSANGPIEUP YA RIEULTHIEUTH +0xAD43 0xBEA6 #HANGUL SYLLABLE SSANGPIEUP YA RIEULPHIEUPH +0xAD44 0xBEA7 #HANGUL SYLLABLE SSANGPIEUP YA RIEULHIEUH +0xAD45 0xBEA9 #HANGUL SYLLABLE SSANGPIEUP YA PIEUP +0xAD46 0xBEAA #HANGUL SYLLABLE SSANGPIEUP YA PIEUPSIOS +0xAD47 0xBEAB #HANGUL SYLLABLE SSANGPIEUP YA SIOS +0xAD48 0xBEAD #HANGUL SYLLABLE SSANGPIEUP YA IEUNG +0xAD49 0xBEAE #HANGUL SYLLABLE SSANGPIEUP YA CIEUC +0xAD4A 0xBEAF #HANGUL SYLLABLE SSANGPIEUP YA CHIEUCH +0xAD4B 0xBEB0 #HANGUL SYLLABLE SSANGPIEUP YA KHIEUKH +0xAD4C 0xBEB1 #HANGUL SYLLABLE SSANGPIEUP YA THIEUTH +0xAD4D 0xBEB2 #HANGUL SYLLABLE SSANGPIEUP YA PHIEUPH +0xAD4E 0xBEB3 #HANGUL SYLLABLE SSANGPIEUP YA HIEUH +0xAD4F 0xBE9A #HANGUL SYLLABLE SSANGPIEUP YA SSANGKIYEOK +0xAD50 0xBEAC #HANGUL SYLLABLE SSANGPIEUP YA SSANGSIOS +0xAD51 0xBED3 #HANGUL SYLLABLE SSANGPIEUP EO KIYEOKSIOS +0xAD52 0xBED5 #HANGUL SYLLABLE SSANGPIEUP EO NIEUNCIEUC +0xAD53 0xBED6 #HANGUL SYLLABLE SSANGPIEUP EO NIEUNHIEUH +0xAD54 0xBED9 #HANGUL SYLLABLE SSANGPIEUP EO RIEULKIYEOK +0xAD55 0xBEDA #HANGUL SYLLABLE SSANGPIEUP EO RIEULMIEUM +0xAD56 0xBEDB #HANGUL SYLLABLE SSANGPIEUP EO RIEULPIEUP +0xAD57 0xBEDC #HANGUL SYLLABLE SSANGPIEUP EO RIEULSIOS +0xAD58 0xBEDD #HANGUL SYLLABLE SSANGPIEUP EO RIEULTHIEUTH +0xAD59 0xBEDE #HANGUL SYLLABLE SSANGPIEUP EO RIEULPHIEUPH +0xAD5A 0xBEDF #HANGUL SYLLABLE SSANGPIEUP EO RIEULHIEUH +0xAD61 0xBEE1 #HANGUL SYLLABLE SSANGPIEUP EO PIEUP +0xAD62 0xBEE2 #HANGUL SYLLABLE SSANGPIEUP EO PIEUPSIOS +0xAD63 0xBEE6 #HANGUL SYLLABLE SSANGPIEUP EO CIEUC +0xAD64 0xBEE7 #HANGUL SYLLABLE SSANGPIEUP EO CHIEUCH +0xAD65 0xBEE8 #HANGUL SYLLABLE SSANGPIEUP EO KHIEUKH +0xAD66 0xBEE9 #HANGUL SYLLABLE SSANGPIEUP EO THIEUTH +0xAD67 0xBEEA #HANGUL SYLLABLE SSANGPIEUP EO PHIEUPH +0xAD68 0xBEEB #HANGUL SYLLABLE SSANGPIEUP EO HIEUH +0xAD69 0xBED2 #HANGUL SYLLABLE SSANGPIEUP EO SSANGKIYEOK +0xAD6A 0xBF0B #HANGUL SYLLABLE SSANGPIEUP YEO KIYEOKSIOS +0xAD6B 0xBF0C #HANGUL SYLLABLE SSANGPIEUP YEO NIEUN +0xAD6C 0xBF0D #HANGUL SYLLABLE SSANGPIEUP YEO NIEUNCIEUC +0xAD6D 0xBF0E #HANGUL SYLLABLE SSANGPIEUP YEO NIEUNHIEUH +0xAD6E 0xBF0F #HANGUL SYLLABLE SSANGPIEUP YEO TIKEUT +0xAD6F 0xBF10 #HANGUL SYLLABLE SSANGPIEUP YEO RIEUL +0xAD70 0xBF11 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULKIYEOK +0xAD71 0xBF12 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULMIEUM +0xAD72 0xBF13 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULPIEUP +0xAD73 0xBF14 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULSIOS +0xAD74 0xBF15 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULTHIEUTH +0xAD75 0xBF16 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULPHIEUPH +0xAD76 0xBF17 #HANGUL SYLLABLE SSANGPIEUP YEO RIEULHIEUH +0xAD77 0xBF1A #HANGUL SYLLABLE SSANGPIEUP YEO PIEUPSIOS +0xAD78 0xBF1E #HANGUL SYLLABLE SSANGPIEUP YEO CIEUC +0xAD79 0xBF1F #HANGUL SYLLABLE SSANGPIEUP YEO CHIEUCH +0xAD7A 0xBF20 #HANGUL SYLLABLE SSANGPIEUP YEO KHIEUKH +0xAD81 0xBF21 #HANGUL SYLLABLE SSANGPIEUP YEO THIEUTH +0xAD82 0xBF22 #HANGUL SYLLABLE SSANGPIEUP YEO PHIEUPH +0xAD83 0xBF23 #HANGUL SYLLABLE SSANGPIEUP YEO HIEUH +0xAD84 0xBF0A #HANGUL SYLLABLE SSANGPIEUP YEO SSANGKIYEOK +0xAD85 0xBF43 #HANGUL SYLLABLE SSANGPIEUP O KIYEOKSIOS +0xAD86 0xBF45 #HANGUL SYLLABLE SSANGPIEUP O NIEUNCIEUC +0xAD87 0xBF46 #HANGUL SYLLABLE SSANGPIEUP O NIEUNHIEUH +0xAD88 0xBF47 #HANGUL SYLLABLE SSANGPIEUP O TIKEUT +0xAD89 0xBF49 #HANGUL SYLLABLE SSANGPIEUP O RIEULKIYEOK +0xAD8A 0xBF4A #HANGUL SYLLABLE SSANGPIEUP O RIEULMIEUM +0xAD8B 0xBF4B #HANGUL SYLLABLE SSANGPIEUP O RIEULPIEUP +0xAD8C 0xBF4C #HANGUL SYLLABLE SSANGPIEUP O RIEULSIOS +0xAD8D 0xBF4D #HANGUL SYLLABLE SSANGPIEUP O RIEULTHIEUTH +0xAD8E 0xBF4E #HANGUL SYLLABLE SSANGPIEUP O RIEULPHIEUPH +0xAD8F 0xBF4F #HANGUL SYLLABLE SSANGPIEUP O RIEULHIEUH +0xAD90 0xBF52 #HANGUL SYLLABLE SSANGPIEUP O PIEUPSIOS +0xAD91 0xBF56 #HANGUL SYLLABLE SSANGPIEUP O CIEUC +0xAD92 0xBF57 #HANGUL SYLLABLE SSANGPIEUP O CHIEUCH +0xAD93 0xBF58 #HANGUL SYLLABLE SSANGPIEUP O KHIEUKH +0xAD94 0xBF59 #HANGUL SYLLABLE SSANGPIEUP O THIEUTH +0xAD95 0xBF5A #HANGUL SYLLABLE SSANGPIEUP O PHIEUPH +0xAD96 0xBF5B #HANGUL SYLLABLE SSANGPIEUP O HIEUH +0xAD97 0xBF42 #HANGUL SYLLABLE SSANGPIEUP O SSANGKIYEOK +0xAD98 0xBF54 #HANGUL SYLLABLE SSANGPIEUP O SSANGSIOS +0xAD99 0xBFB1 #HANGUL SYLLABLE SSANGPIEUP YO KIYEOK +0xAD9A 0xBFB3 #HANGUL SYLLABLE SSANGPIEUP YO KIYEOKSIOS +0xAD9B 0xBFB4 #HANGUL SYLLABLE SSANGPIEUP YO NIEUN +0xAD9C 0xBFB5 #HANGUL SYLLABLE SSANGPIEUP YO NIEUNCIEUC +0xAD9D 0xBFB6 #HANGUL SYLLABLE SSANGPIEUP YO NIEUNHIEUH +0xAD9E 0xBFB7 #HANGUL SYLLABLE SSANGPIEUP YO TIKEUT +0xAD9F 0xBFB8 #HANGUL SYLLABLE SSANGPIEUP YO RIEUL +0xADA0 0xBFB9 #HANGUL SYLLABLE SSANGPIEUP YO RIEULKIYEOK +0xAE41 0xBFBA #HANGUL SYLLABLE SSANGPIEUP YO RIEULMIEUM +0xAE42 0xBFBB #HANGUL SYLLABLE SSANGPIEUP YO RIEULPIEUP +0xAE43 0xBFBC #HANGUL SYLLABLE SSANGPIEUP YO RIEULSIOS +0xAE44 0xBFBD #HANGUL SYLLABLE SSANGPIEUP YO RIEULTHIEUTH +0xAE45 0xBFBE #HANGUL SYLLABLE SSANGPIEUP YO RIEULPHIEUPH +0xAE46 0xBFBF #HANGUL SYLLABLE SSANGPIEUP YO RIEULHIEUH +0xAE47 0xBFC0 #HANGUL SYLLABLE SSANGPIEUP YO MIEUM +0xAE48 0xBFC1 #HANGUL SYLLABLE SSANGPIEUP YO PIEUP +0xAE49 0xBFC2 #HANGUL SYLLABLE SSANGPIEUP YO PIEUPSIOS +0xAE4A 0xBFC3 #HANGUL SYLLABLE SSANGPIEUP YO SIOS +0xAE4B 0xBFC6 #HANGUL SYLLABLE SSANGPIEUP YO CIEUC +0xAE4C 0xBFC7 #HANGUL SYLLABLE SSANGPIEUP YO CHIEUCH +0xAE4D 0xBFC8 #HANGUL SYLLABLE SSANGPIEUP YO KHIEUKH +0xAE4E 0xBFC9 #HANGUL SYLLABLE SSANGPIEUP YO THIEUTH +0xAE4F 0xBFCA #HANGUL SYLLABLE SSANGPIEUP YO PHIEUPH +0xAE50 0xBFCB #HANGUL SYLLABLE SSANGPIEUP YO HIEUH +0xAE51 0xBFB2 #HANGUL SYLLABLE SSANGPIEUP YO SSANGKIYEOK +0xAE52 0xBFC4 #HANGUL SYLLABLE SSANGPIEUP YO SSANGSIOS +0xAE53 0xBFCF #HANGUL SYLLABLE SSANGPIEUP U KIYEOKSIOS +0xAE54 0xBFD1 #HANGUL SYLLABLE SSANGPIEUP U NIEUNCIEUC +0xAE55 0xBFD2 #HANGUL SYLLABLE SSANGPIEUP U NIEUNHIEUH +0xAE56 0xBFD3 #HANGUL SYLLABLE SSANGPIEUP U TIKEUT +0xAE57 0xBFD5 #HANGUL SYLLABLE SSANGPIEUP U RIEULKIYEOK +0xAE58 0xBFD6 #HANGUL SYLLABLE SSANGPIEUP U RIEULMIEUM +0xAE59 0xBFD7 #HANGUL SYLLABLE SSANGPIEUP U RIEULPIEUP +0xAE5A 0xBFD8 #HANGUL SYLLABLE SSANGPIEUP U RIEULSIOS +0xAE61 0xBFD9 #HANGUL SYLLABLE SSANGPIEUP U RIEULTHIEUTH +0xAE62 0xBFDA #HANGUL SYLLABLE SSANGPIEUP U RIEULPHIEUPH +0xAE63 0xBFDB #HANGUL SYLLABLE SSANGPIEUP U RIEULHIEUH +0xAE64 0xBFDE #HANGUL SYLLABLE SSANGPIEUP U PIEUPSIOS +0xAE65 0xBFE2 #HANGUL SYLLABLE SSANGPIEUP U CIEUC +0xAE66 0xBFE3 #HANGUL SYLLABLE SSANGPIEUP U CHIEUCH +0xAE67 0xBFE4 #HANGUL SYLLABLE SSANGPIEUP U KHIEUKH +0xAE68 0xBFE5 #HANGUL SYLLABLE SSANGPIEUP U THIEUTH +0xAE69 0xBFE6 #HANGUL SYLLABLE SSANGPIEUP U PHIEUPH +0xAE6A 0xBFE7 #HANGUL SYLLABLE SSANGPIEUP U HIEUH +0xAE6B 0xBFCE #HANGUL SYLLABLE SSANGPIEUP U SSANGKIYEOK +0xAE6C 0xBFE0 #HANGUL SYLLABLE SSANGPIEUP U SSANGSIOS +0xAE6D 0xC03D #HANGUL SYLLABLE SSANGPIEUP YU KIYEOK +0xAE6E 0xC03F #HANGUL SYLLABLE SSANGPIEUP YU KIYEOKSIOS +0xAE6F 0xC040 #HANGUL SYLLABLE SSANGPIEUP YU NIEUN +0xAE70 0xC041 #HANGUL SYLLABLE SSANGPIEUP YU NIEUNCIEUC +0xAE71 0xC042 #HANGUL SYLLABLE SSANGPIEUP YU NIEUNHIEUH +0xAE72 0xC043 #HANGUL SYLLABLE SSANGPIEUP YU TIKEUT +0xAE73 0xC044 #HANGUL SYLLABLE SSANGPIEUP YU RIEUL +0xAE74 0xC045 #HANGUL SYLLABLE SSANGPIEUP YU RIEULKIYEOK +0xAE75 0xC046 #HANGUL SYLLABLE SSANGPIEUP YU RIEULMIEUM +0xAE76 0xC047 #HANGUL SYLLABLE SSANGPIEUP YU RIEULPIEUP +0xAE77 0xC048 #HANGUL SYLLABLE SSANGPIEUP YU RIEULSIOS +0xAE78 0xC049 #HANGUL SYLLABLE SSANGPIEUP YU RIEULTHIEUTH +0xAE79 0xC04A #HANGUL SYLLABLE SSANGPIEUP YU RIEULPHIEUPH +0xAE7A 0xC04B #HANGUL SYLLABLE SSANGPIEUP YU RIEULHIEUH +0xAE81 0xC04C #HANGUL SYLLABLE SSANGPIEUP YU MIEUM +0xAE82 0xC04D #HANGUL SYLLABLE SSANGPIEUP YU PIEUP +0xAE83 0xC04E #HANGUL SYLLABLE SSANGPIEUP YU PIEUPSIOS +0xAE84 0xC04F #HANGUL SYLLABLE SSANGPIEUP YU SIOS +0xAE85 0xC052 #HANGUL SYLLABLE SSANGPIEUP YU CIEUC +0xAE86 0xC053 #HANGUL SYLLABLE SSANGPIEUP YU CHIEUCH +0xAE87 0xC054 #HANGUL SYLLABLE SSANGPIEUP YU KHIEUKH +0xAE88 0xC055 #HANGUL SYLLABLE SSANGPIEUP YU THIEUTH +0xAE89 0xC056 #HANGUL SYLLABLE SSANGPIEUP YU PHIEUPH +0xAE8A 0xC057 #HANGUL SYLLABLE SSANGPIEUP YU HIEUH +0xAE8B 0xC03E #HANGUL SYLLABLE SSANGPIEUP YU SSANGKIYEOK +0xAE8C 0xC050 #HANGUL SYLLABLE SSANGPIEUP YU SSANGSIOS +0xAE8D 0xC059 #HANGUL SYLLABLE SSANGPIEUP EU KIYEOK +0xAE8E 0xC05B #HANGUL SYLLABLE SSANGPIEUP EU KIYEOKSIOS +0xAE8F 0xC05D #HANGUL SYLLABLE SSANGPIEUP EU NIEUNCIEUC +0xAE90 0xC05E #HANGUL SYLLABLE SSANGPIEUP EU NIEUNHIEUH +0xAE91 0xC05F #HANGUL SYLLABLE SSANGPIEUP EU TIKEUT +0xAE92 0xC061 #HANGUL SYLLABLE SSANGPIEUP EU RIEULKIYEOK +0xAE93 0xC062 #HANGUL SYLLABLE SSANGPIEUP EU RIEULMIEUM +0xAE94 0xC063 #HANGUL SYLLABLE SSANGPIEUP EU RIEULPIEUP +0xAE95 0xC064 #HANGUL SYLLABLE SSANGPIEUP EU RIEULSIOS +0xAE96 0xC065 #HANGUL SYLLABLE SSANGPIEUP EU RIEULTHIEUTH +0xAE97 0xC066 #HANGUL SYLLABLE SSANGPIEUP EU RIEULPHIEUPH +0xAE98 0xC067 #HANGUL SYLLABLE SSANGPIEUP EU RIEULHIEUH +0xAE99 0xC06A #HANGUL SYLLABLE SSANGPIEUP EU PIEUPSIOS +0xAE9A 0xC06B #HANGUL SYLLABLE SSANGPIEUP EU SIOS +0xAE9B 0xC06D #HANGUL SYLLABLE SSANGPIEUP EU IEUNG +0xAE9C 0xC06E #HANGUL SYLLABLE SSANGPIEUP EU CIEUC +0xAE9D 0xC06F #HANGUL SYLLABLE SSANGPIEUP EU CHIEUCH +0xAE9E 0xC070 #HANGUL SYLLABLE SSANGPIEUP EU KHIEUKH +0xAE9F 0xC071 #HANGUL SYLLABLE SSANGPIEUP EU THIEUTH +0xAEA0 0xC072 #HANGUL SYLLABLE SSANGPIEUP EU PHIEUPH +0xAEA1 0x00A1 #INVERTED EXCLAMATION MARK +0xAEA2 0x00A2 #CENT SIGN +0xAEA3 0x00A3 #POUND SIGN +0xAEA4 0x00A4 #CURRENCY SIGN +0xAEA5 0x00A5 #YEN SIGN +0xAEA6 0x00A6 #BROKEN BAR +0xAEA9 0x00A9 #COPYRIGHT SIGN +0xAEAA 0x00AA #FEMININE ORDINAL INDICATOR +0xAEAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAEAC 0x00AC #NOT SIGN +0xAEAD 0x00AD #SOFT HYPHEN +0xAEAF 0x00AF #MACRON +0xAEB5 0x00B5 #MICRO SIGN +0xAEB8 0x00B8 #CEDILLA +0xAEBA 0x00BA #MASCULINE ORDINAL INDICATOR +0xAEBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAEBF 0x00BF #INVERTED QUESTION MARK +0xAEC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE +0xAEC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE +0xAEC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xAEC3 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE +0xAEC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS +0xAEC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE +0xAEC6 0x00C6 #LATIN CAPITAL LETTER AE +0xAEC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA +0xAEC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE +0xAEC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE +0xAECA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xAECB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS +0xAECC 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE +0xAECD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE +0xAECE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xAECF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS +0xAED0 0x00D0 #LATIN CAPITAL LETTER ETH +0xAED1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE +0xAED2 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE +0xAED3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE +0xAED4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xAED5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE +0xAED6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS +0xAED8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE +0xAED9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE +0xAEDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE +0xAEDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xAEDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS +0xAEDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE +0xAEDE 0x00DE #LATIN CAPITAL LETTER THORN +0xAEDF 0x00DF #LATIN SMALL LETTER SHARP S +0xAEE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE +0xAEE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE +0xAEE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX +0xAEE3 0x00E3 #LATIN SMALL LETTER A WITH TILDE +0xAEE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS +0xAEE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE +0xAEE6 0x00E6 #LATIN SMALL LETTER AE +0xAEE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA +0xAEE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE +0xAEE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE +0xAEEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX +0xAEEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS +0xAEEC 0x00EC #LATIN SMALL LETTER I WITH GRAVE +0xAEED 0x00ED #LATIN SMALL LETTER I WITH ACUTE +0xAEEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX +0xAEEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS +0xAEF0 0x00F0 #LATIN SMALL LETTER ETH +0xAEF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE +0xAEF2 0x00F2 #LATIN SMALL LETTER O WITH GRAVE +0xAEF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE +0xAEF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX +0xAEF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE +0xAEF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS +0xAEF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE +0xAEF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE +0xAEFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE +0xAEFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX +0xAEFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS +0xAEFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE +0xAEFE 0x00FE #LATIN SMALL LETTER THORN +0xAEFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS +0xAF41 0xC073 #HANGUL SYLLABLE SSANGPIEUP EU HIEUH +0xAF42 0xC05A #HANGUL SYLLABLE SSANGPIEUP EU SSANGKIYEOK +0xAF43 0xC06C #HANGUL SYLLABLE SSANGPIEUP EU SSANGSIOS +0xAF44 0xC093 #HANGUL SYLLABLE SSANGPIEUP I KIYEOKSIOS +0xAF45 0xC095 #HANGUL SYLLABLE SSANGPIEUP I NIEUNCIEUC +0xAF46 0xC096 #HANGUL SYLLABLE SSANGPIEUP I NIEUNHIEUH +0xAF47 0xC097 #HANGUL SYLLABLE SSANGPIEUP I TIKEUT +0xAF48 0xC099 #HANGUL SYLLABLE SSANGPIEUP I RIEULKIYEOK +0xAF49 0xC09A #HANGUL SYLLABLE SSANGPIEUP I RIEULMIEUM +0xAF4A 0xC09B #HANGUL SYLLABLE SSANGPIEUP I RIEULPIEUP +0xAF4B 0xC09C #HANGUL SYLLABLE SSANGPIEUP I RIEULSIOS +0xAF4C 0xC09D #HANGUL SYLLABLE SSANGPIEUP I RIEULTHIEUTH +0xAF4D 0xC09E #HANGUL SYLLABLE SSANGPIEUP I RIEULPHIEUPH +0xAF4E 0xC09F #HANGUL SYLLABLE SSANGPIEUP I RIEULHIEUH +0xAF4F 0xC0A2 #HANGUL SYLLABLE SSANGPIEUP I PIEUPSIOS +0xAF50 0xC0A6 #HANGUL SYLLABLE SSANGPIEUP I CIEUC +0xAF51 0xC0A7 #HANGUL SYLLABLE SSANGPIEUP I CHIEUCH +0xAF52 0xC0A8 #HANGUL SYLLABLE SSANGPIEUP I KHIEUKH +0xAF53 0xC0A9 #HANGUL SYLLABLE SSANGPIEUP I THIEUTH +0xAF54 0xC0AA #HANGUL SYLLABLE SSANGPIEUP I PHIEUPH +0xAF55 0xC0AB #HANGUL SYLLABLE SSANGPIEUP I HIEUH +0xAF56 0xC092 #HANGUL SYLLABLE SSANGPIEUP I SSANGKIYEOK +0xAF57 0xC0A4 #HANGUL SYLLABLE SSANGPIEUP I SSANGSIOS +0xAF58 0xBE7F #HANGUL SYLLABLE SSANGPIEUP AE KIYEOKSIOS +0xAF59 0xBE81 #HANGUL SYLLABLE SSANGPIEUP AE NIEUNCIEUC +0xAF5A 0xBE82 #HANGUL SYLLABLE SSANGPIEUP AE NIEUNHIEUH +0xAF61 0xBE83 #HANGUL SYLLABLE SSANGPIEUP AE TIKEUT +0xAF62 0xBE85 #HANGUL SYLLABLE SSANGPIEUP AE RIEULKIYEOK +0xAF63 0xBE86 #HANGUL SYLLABLE SSANGPIEUP AE RIEULMIEUM +0xAF64 0xBE87 #HANGUL SYLLABLE SSANGPIEUP AE RIEULPIEUP +0xAF65 0xBE88 #HANGUL SYLLABLE SSANGPIEUP AE RIEULSIOS +0xAF66 0xBE89 #HANGUL SYLLABLE SSANGPIEUP AE RIEULTHIEUTH +0xAF67 0xBE8A #HANGUL SYLLABLE SSANGPIEUP AE RIEULPHIEUPH +0xAF68 0xBE8B #HANGUL SYLLABLE SSANGPIEUP AE RIEULHIEUH +0xAF69 0xBE8E #HANGUL SYLLABLE SSANGPIEUP AE PIEUPSIOS +0xAF6A 0xBE92 #HANGUL SYLLABLE SSANGPIEUP AE CIEUC +0xAF6B 0xBE93 #HANGUL SYLLABLE SSANGPIEUP AE CHIEUCH +0xAF6C 0xBE94 #HANGUL SYLLABLE SSANGPIEUP AE KHIEUKH +0xAF6D 0xBE95 #HANGUL SYLLABLE SSANGPIEUP AE THIEUTH +0xAF6E 0xBE96 #HANGUL SYLLABLE SSANGPIEUP AE PHIEUPH +0xAF6F 0xBE97 #HANGUL SYLLABLE SSANGPIEUP AE HIEUH +0xAF70 0xBE7E #HANGUL SYLLABLE SSANGPIEUP AE SSANGKIYEOK +0xAF71 0xBEB5 #HANGUL SYLLABLE SSANGPIEUP YAE KIYEOK +0xAF72 0xBEB7 #HANGUL SYLLABLE SSANGPIEUP YAE KIYEOKSIOS +0xAF73 0xBEB8 #HANGUL SYLLABLE SSANGPIEUP YAE NIEUN +0xAF74 0xBEB9 #HANGUL SYLLABLE SSANGPIEUP YAE NIEUNCIEUC +0xAF75 0xBEBA #HANGUL SYLLABLE SSANGPIEUP YAE NIEUNHIEUH +0xAF76 0xBEBB #HANGUL SYLLABLE SSANGPIEUP YAE TIKEUT +0xAF77 0xBEBC #HANGUL SYLLABLE SSANGPIEUP YAE RIEUL +0xAF78 0xBEBD #HANGUL SYLLABLE SSANGPIEUP YAE RIEULKIYEOK +0xAF79 0xBEBE #HANGUL SYLLABLE SSANGPIEUP YAE RIEULMIEUM +0xAF7A 0xBEBF #HANGUL SYLLABLE SSANGPIEUP YAE RIEULPIEUP +0xAF81 0xBEC0 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULSIOS +0xAF82 0xBEC1 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULTHIEUTH +0xAF83 0xBEC2 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULPHIEUPH +0xAF84 0xBEC3 #HANGUL SYLLABLE SSANGPIEUP YAE RIEULHIEUH +0xAF85 0xBEC4 #HANGUL SYLLABLE SSANGPIEUP YAE MIEUM +0xAF86 0xBEC5 #HANGUL SYLLABLE SSANGPIEUP YAE PIEUP +0xAF87 0xBEC6 #HANGUL SYLLABLE SSANGPIEUP YAE PIEUPSIOS +0xAF88 0xBEC7 #HANGUL SYLLABLE SSANGPIEUP YAE SIOS +0xAF89 0xBEC9 #HANGUL SYLLABLE SSANGPIEUP YAE IEUNG +0xAF8A 0xBECA #HANGUL SYLLABLE SSANGPIEUP YAE CIEUC +0xAF8B 0xBECB #HANGUL SYLLABLE SSANGPIEUP YAE CHIEUCH +0xAF8C 0xBECC #HANGUL SYLLABLE SSANGPIEUP YAE KHIEUKH +0xAF8D 0xBECD #HANGUL SYLLABLE SSANGPIEUP YAE THIEUTH +0xAF8E 0xBECE #HANGUL SYLLABLE SSANGPIEUP YAE PHIEUPH +0xAF8F 0xBECF #HANGUL SYLLABLE SSANGPIEUP YAE HIEUH +0xAF90 0xBEB6 #HANGUL SYLLABLE SSANGPIEUP YAE SSANGKIYEOK +0xAF91 0xBEC8 #HANGUL SYLLABLE SSANGPIEUP YAE SSANGSIOS +0xAF92 0xBEEF #HANGUL SYLLABLE SSANGPIEUP E KIYEOKSIOS +0xAF93 0xBEF1 #HANGUL SYLLABLE SSANGPIEUP E NIEUNCIEUC +0xAF94 0xBEF2 #HANGUL SYLLABLE SSANGPIEUP E NIEUNHIEUH +0xAF95 0xBEF3 #HANGUL SYLLABLE SSANGPIEUP E TIKEUT +0xAF96 0xBEF5 #HANGUL SYLLABLE SSANGPIEUP E RIEULKIYEOK +0xAF97 0xBEF6 #HANGUL SYLLABLE SSANGPIEUP E RIEULMIEUM +0xAF98 0xBEF7 #HANGUL SYLLABLE SSANGPIEUP E RIEULPIEUP +0xAF99 0xBEF8 #HANGUL SYLLABLE SSANGPIEUP E RIEULSIOS +0xAF9A 0xBEF9 #HANGUL SYLLABLE SSANGPIEUP E RIEULTHIEUTH +0xAF9B 0xBEFA #HANGUL SYLLABLE SSANGPIEUP E RIEULPHIEUPH +0xAF9C 0xBEFB #HANGUL SYLLABLE SSANGPIEUP E RIEULHIEUH +0xAF9D 0xBEFD #HANGUL SYLLABLE SSANGPIEUP E PIEUP +0xAF9E 0xBEFE #HANGUL SYLLABLE SSANGPIEUP E PIEUPSIOS +0xAF9F 0xBEFF #HANGUL SYLLABLE SSANGPIEUP E SIOS +0xAFA0 0xBF02 #HANGUL SYLLABLE SSANGPIEUP E CIEUC +0xB041 0xBF03 #HANGUL SYLLABLE SSANGPIEUP E CHIEUCH +0xB042 0xBF04 #HANGUL SYLLABLE SSANGPIEUP E KHIEUKH +0xB043 0xBF05 #HANGUL SYLLABLE SSANGPIEUP E THIEUTH +0xB044 0xBF06 #HANGUL SYLLABLE SSANGPIEUP E PHIEUPH +0xB045 0xBF07 #HANGUL SYLLABLE SSANGPIEUP E HIEUH +0xB046 0xBEEE #HANGUL SYLLABLE SSANGPIEUP E SSANGKIYEOK +0xB047 0xBF00 #HANGUL SYLLABLE SSANGPIEUP E SSANGSIOS +0xB048 0xBF24 #HANGUL SYLLABLE SSANGPIEUP YE +0xB049 0xBF25 #HANGUL SYLLABLE SSANGPIEUP YE KIYEOK +0xB04A 0xBF27 #HANGUL SYLLABLE SSANGPIEUP YE KIYEOKSIOS +0xB04B 0xBF28 #HANGUL SYLLABLE SSANGPIEUP YE NIEUN +0xB04C 0xBF29 #HANGUL SYLLABLE SSANGPIEUP YE NIEUNCIEUC +0xB04D 0xBF2A #HANGUL SYLLABLE SSANGPIEUP YE NIEUNHIEUH +0xB04E 0xBF2B #HANGUL SYLLABLE SSANGPIEUP YE TIKEUT +0xB04F 0xBF2C #HANGUL SYLLABLE SSANGPIEUP YE RIEUL +0xB050 0xBF2D #HANGUL SYLLABLE SSANGPIEUP YE RIEULKIYEOK +0xB051 0xBF2E #HANGUL SYLLABLE SSANGPIEUP YE RIEULMIEUM +0xB052 0xBF2F #HANGUL SYLLABLE SSANGPIEUP YE RIEULPIEUP +0xB053 0xBF30 #HANGUL SYLLABLE SSANGPIEUP YE RIEULSIOS +0xB054 0xBF31 #HANGUL SYLLABLE SSANGPIEUP YE RIEULTHIEUTH +0xB055 0xBF32 #HANGUL SYLLABLE SSANGPIEUP YE RIEULPHIEUPH +0xB056 0xBF33 #HANGUL SYLLABLE SSANGPIEUP YE RIEULHIEUH +0xB057 0xBF34 #HANGUL SYLLABLE SSANGPIEUP YE MIEUM +0xB058 0xBF35 #HANGUL SYLLABLE SSANGPIEUP YE PIEUP +0xB059 0xBF36 #HANGUL SYLLABLE SSANGPIEUP YE PIEUPSIOS +0xB05A 0xBF37 #HANGUL SYLLABLE SSANGPIEUP YE SIOS +0xB061 0xBF39 #HANGUL SYLLABLE SSANGPIEUP YE IEUNG +0xB062 0xBF3A #HANGUL SYLLABLE SSANGPIEUP YE CIEUC +0xB063 0xBF3B #HANGUL SYLLABLE SSANGPIEUP YE CHIEUCH +0xB064 0xBF3C #HANGUL SYLLABLE SSANGPIEUP YE KHIEUKH +0xB065 0xBF3D #HANGUL SYLLABLE SSANGPIEUP YE THIEUTH +0xB066 0xBF3E #HANGUL SYLLABLE SSANGPIEUP YE PHIEUPH +0xB067 0xBF3F #HANGUL SYLLABLE SSANGPIEUP YE HIEUH +0xB068 0xBF26 #HANGUL SYLLABLE SSANGPIEUP YE SSANGKIYEOK +0xB069 0xBF38 #HANGUL SYLLABLE SSANGPIEUP YE SSANGSIOS +0xB06A 0xBF95 #HANGUL SYLLABLE SSANGPIEUP OE KIYEOK +0xB06B 0xBF97 #HANGUL SYLLABLE SSANGPIEUP OE KIYEOKSIOS +0xB06C 0xBF98 #HANGUL SYLLABLE SSANGPIEUP OE NIEUN +0xB06D 0xBF99 #HANGUL SYLLABLE SSANGPIEUP OE NIEUNCIEUC +0xB06E 0xBF9A #HANGUL SYLLABLE SSANGPIEUP OE NIEUNHIEUH +0xB06F 0xBF9B #HANGUL SYLLABLE SSANGPIEUP OE TIKEUT +0xB070 0xBF9C #HANGUL SYLLABLE SSANGPIEUP OE RIEUL +0xB071 0xBF9D #HANGUL SYLLABLE SSANGPIEUP OE RIEULKIYEOK +0xB072 0xBF9E #HANGUL SYLLABLE SSANGPIEUP OE RIEULMIEUM +0xB073 0xBF9F #HANGUL SYLLABLE SSANGPIEUP OE RIEULPIEUP +0xB074 0xBFA0 #HANGUL SYLLABLE SSANGPIEUP OE RIEULSIOS +0xB075 0xBFA1 #HANGUL SYLLABLE SSANGPIEUP OE RIEULTHIEUTH +0xB076 0xBFA2 #HANGUL SYLLABLE SSANGPIEUP OE RIEULPHIEUPH +0xB077 0xBFA3 #HANGUL SYLLABLE SSANGPIEUP OE RIEULHIEUH +0xB078 0xBFA4 #HANGUL SYLLABLE SSANGPIEUP OE MIEUM +0xB079 0xBFA5 #HANGUL SYLLABLE SSANGPIEUP OE PIEUP +0xB07A 0xBFA6 #HANGUL SYLLABLE SSANGPIEUP OE PIEUPSIOS +0xB081 0xBFA7 #HANGUL SYLLABLE SSANGPIEUP OE SIOS +0xB082 0xBFA9 #HANGUL SYLLABLE SSANGPIEUP OE IEUNG +0xB083 0xBFAA #HANGUL SYLLABLE SSANGPIEUP OE CIEUC +0xB084 0xBFAB #HANGUL SYLLABLE SSANGPIEUP OE CHIEUCH +0xB085 0xBFAC #HANGUL SYLLABLE SSANGPIEUP OE KHIEUKH +0xB086 0xBFAD #HANGUL SYLLABLE SSANGPIEUP OE THIEUTH +0xB087 0xBFAE #HANGUL SYLLABLE SSANGPIEUP OE PHIEUPH +0xB088 0xBFAF #HANGUL SYLLABLE SSANGPIEUP OE HIEUH +0xB089 0xBF96 #HANGUL SYLLABLE SSANGPIEUP OE SSANGKIYEOK +0xB08A 0xBFA8 #HANGUL SYLLABLE SSANGPIEUP OE SSANGSIOS +0xB08B 0xC021 #HANGUL SYLLABLE SSANGPIEUP WI KIYEOK +0xB08C 0xC023 #HANGUL SYLLABLE SSANGPIEUP WI KIYEOKSIOS +0xB08D 0xC024 #HANGUL SYLLABLE SSANGPIEUP WI NIEUN +0xB08E 0xC025 #HANGUL SYLLABLE SSANGPIEUP WI NIEUNCIEUC +0xB08F 0xC026 #HANGUL SYLLABLE SSANGPIEUP WI NIEUNHIEUH +0xB090 0xC027 #HANGUL SYLLABLE SSANGPIEUP WI TIKEUT +0xB091 0xC028 #HANGUL SYLLABLE SSANGPIEUP WI RIEUL +0xB092 0xC029 #HANGUL SYLLABLE SSANGPIEUP WI RIEULKIYEOK +0xB093 0xC02A #HANGUL SYLLABLE SSANGPIEUP WI RIEULMIEUM +0xB094 0xC02B #HANGUL SYLLABLE SSANGPIEUP WI RIEULPIEUP +0xB095 0xC02C #HANGUL SYLLABLE SSANGPIEUP WI RIEULSIOS +0xB096 0xC02D #HANGUL SYLLABLE SSANGPIEUP WI RIEULTHIEUTH +0xB097 0xC02E #HANGUL SYLLABLE SSANGPIEUP WI RIEULPHIEUPH +0xB098 0xC02F #HANGUL SYLLABLE SSANGPIEUP WI RIEULHIEUH +0xB099 0xC030 #HANGUL SYLLABLE SSANGPIEUP WI MIEUM +0xB09A 0xC031 #HANGUL SYLLABLE SSANGPIEUP WI PIEUP +0xB09B 0xC032 #HANGUL SYLLABLE SSANGPIEUP WI PIEUPSIOS +0xB09C 0xC033 #HANGUL SYLLABLE SSANGPIEUP WI SIOS +0xB09D 0xC035 #HANGUL SYLLABLE SSANGPIEUP WI IEUNG +0xB09E 0xC036 #HANGUL SYLLABLE SSANGPIEUP WI CIEUC +0xB09F 0xC037 #HANGUL SYLLABLE SSANGPIEUP WI CHIEUCH +0xB0A0 0xC038 #HANGUL SYLLABLE SSANGPIEUP WI KHIEUKH +0xB0A1 0xAC00 #HANGUL SYLLABLE KIYEOK A +0xB0A2 0xAC01 #HANGUL SYLLABLE KIYEOK A KIYEOK +0xB0A3 0xAC04 #HANGUL SYLLABLE KIYEOK A NIEUN +0xB0A4 0xAC07 #HANGUL SYLLABLE KIYEOK A TIKEUT +0xB0A5 0xAC08 #HANGUL SYLLABLE KIYEOK A RIEUL +0xB0A6 0xAC09 #HANGUL SYLLABLE KIYEOK A RIEULKIYEOK +0xB0A7 0xAC0A #HANGUL SYLLABLE KIYEOK A RIEULMIEUM +0xB0A8 0xAC10 #HANGUL SYLLABLE KIYEOK A MIEUM +0xB0A9 0xAC11 #HANGUL SYLLABLE KIYEOK A PIEUP +0xB0AA 0xAC12 #HANGUL SYLLABLE KIYEOK A PIEUPSIOS +0xB0AB 0xAC13 #HANGUL SYLLABLE KIYEOK A SIOS +0xB0AC 0xAC15 #HANGUL SYLLABLE KIYEOK A IEUNG +0xB0AD 0xAC16 #HANGUL SYLLABLE KIYEOK A CIEUC +0xB0AE 0xAC17 #HANGUL SYLLABLE KIYEOK A CHIEUCH +0xB0AF 0xAC19 #HANGUL SYLLABLE KIYEOK A THIEUTH +0xB0B0 0xAC1A #HANGUL SYLLABLE KIYEOK A PHIEUPH +0xB0B1 0xAC1B #HANGUL SYLLABLE KIYEOK A HIEUH +0xB0B2 0xAC14 #HANGUL SYLLABLE KIYEOK A SSANGSIOS +0xB0B3 0xAC38 #HANGUL SYLLABLE KIYEOK YA +0xB0B4 0xAC39 #HANGUL SYLLABLE KIYEOK YA KIYEOK +0xB0B5 0xAC3C #HANGUL SYLLABLE KIYEOK YA NIEUN +0xB0B6 0xAC40 #HANGUL SYLLABLE KIYEOK YA RIEUL +0xB0B7 0xAC48 #HANGUL SYLLABLE KIYEOK YA MIEUM +0xB0B8 0xAC4B #HANGUL SYLLABLE KIYEOK YA SIOS +0xB0B9 0xAC4D #HANGUL SYLLABLE KIYEOK YA IEUNG +0xB0BA 0xAC70 #HANGUL SYLLABLE KIYEOK EO +0xB0BB 0xAC71 #HANGUL SYLLABLE KIYEOK EO KIYEOK +0xB0BC 0xAC74 #HANGUL SYLLABLE KIYEOK EO NIEUN +0xB0BD 0xAC77 #HANGUL SYLLABLE KIYEOK EO TIKEUT +0xB0BE 0xAC78 #HANGUL SYLLABLE KIYEOK EO RIEUL +0xB0BF 0xAC79 #HANGUL SYLLABLE KIYEOK EO RIEULKIYEOK +0xB0C0 0xAC7A #HANGUL SYLLABLE KIYEOK EO RIEULMIEUM +0xB0C1 0xAC80 #HANGUL SYLLABLE KIYEOK EO MIEUM +0xB0C2 0xAC81 #HANGUL SYLLABLE KIYEOK EO PIEUP +0xB0C3 0xAC83 #HANGUL SYLLABLE KIYEOK EO SIOS +0xB0C4 0xAC85 #HANGUL SYLLABLE KIYEOK EO IEUNG +0xB0C5 0xAC86 #HANGUL SYLLABLE KIYEOK EO CIEUC +0xB0C6 0xAC89 #HANGUL SYLLABLE KIYEOK EO THIEUTH +0xB0C7 0xAC8A #HANGUL SYLLABLE KIYEOK EO PHIEUPH +0xB0C8 0xAC8B #HANGUL SYLLABLE KIYEOK EO HIEUH +0xB0C9 0xAC84 #HANGUL SYLLABLE KIYEOK EO SSANGSIOS +0xB0CA 0xACA8 #HANGUL SYLLABLE KIYEOK YEO +0xB0CB 0xACA9 #HANGUL SYLLABLE KIYEOK YEO KIYEOK +0xB0CC 0xACAC #HANGUL SYLLABLE KIYEOK YEO NIEUN +0xB0CD 0xACAF #HANGUL SYLLABLE KIYEOK YEO TIKEUT +0xB0CE 0xACB0 #HANGUL SYLLABLE KIYEOK YEO RIEUL +0xB0CF 0xACB8 #HANGUL SYLLABLE KIYEOK YEO MIEUM +0xB0D0 0xACB9 #HANGUL SYLLABLE KIYEOK YEO PIEUP +0xB0D1 0xACBB #HANGUL SYLLABLE KIYEOK YEO SIOS +0xB0D2 0xACBD #HANGUL SYLLABLE KIYEOK YEO IEUNG +0xB0D3 0xACC1 #HANGUL SYLLABLE KIYEOK YEO THIEUTH +0xB0D4 0xACAA #HANGUL SYLLABLE KIYEOK YEO SSANGKIYEOK +0xB0D5 0xACBC #HANGUL SYLLABLE KIYEOK YEO SSANGSIOS +0xB0D6 0xACE0 #HANGUL SYLLABLE KIYEOK O +0xB0D7 0xACE1 #HANGUL SYLLABLE KIYEOK O KIYEOK +0xB0D8 0xACE4 #HANGUL SYLLABLE KIYEOK O NIEUN +0xB0D9 0xACE7 #HANGUL SYLLABLE KIYEOK O TIKEUT +0xB0DA 0xACE8 #HANGUL SYLLABLE KIYEOK O RIEUL +0xB0DB 0xACEA #HANGUL SYLLABLE KIYEOK O RIEULMIEUM +0xB0DC 0xACEC #HANGUL SYLLABLE KIYEOK O RIEULSIOS +0xB0DD 0xACEF #HANGUL SYLLABLE KIYEOK O RIEULHIEUH +0xB0DE 0xACF0 #HANGUL SYLLABLE KIYEOK O MIEUM +0xB0DF 0xACF1 #HANGUL SYLLABLE KIYEOK O PIEUP +0xB0E0 0xACF3 #HANGUL SYLLABLE KIYEOK O SIOS +0xB0E1 0xACF5 #HANGUL SYLLABLE KIYEOK O IEUNG +0xB0E2 0xACF6 #HANGUL SYLLABLE KIYEOK O CIEUC +0xB0E3 0xACFA #HANGUL SYLLABLE KIYEOK O PHIEUPH +0xB0E4 0xAD50 #HANGUL SYLLABLE KIYEOK YO +0xB0E5 0xAD54 #HANGUL SYLLABLE KIYEOK YO NIEUN +0xB0E6 0xAD58 #HANGUL SYLLABLE KIYEOK YO RIEUL +0xB0E7 0xAD61 #HANGUL SYLLABLE KIYEOK YO PIEUP +0xB0E8 0xAD63 #HANGUL SYLLABLE KIYEOK YO SIOS +0xB0E9 0xAD6C #HANGUL SYLLABLE KIYEOK U +0xB0EA 0xAD6D #HANGUL SYLLABLE KIYEOK U KIYEOK +0xB0EB 0xAD70 #HANGUL SYLLABLE KIYEOK U NIEUN +0xB0EC 0xAD73 #HANGUL SYLLABLE KIYEOK U TIKEUT +0xB0ED 0xAD74 #HANGUL SYLLABLE KIYEOK U RIEUL +0xB0EE 0xAD75 #HANGUL SYLLABLE KIYEOK U RIEULKIYEOK +0xB0EF 0xAD76 #HANGUL SYLLABLE KIYEOK U RIEULMIEUM +0xB0F0 0xAD7B #HANGUL SYLLABLE KIYEOK U RIEULHIEUH +0xB0F1 0xAD7C #HANGUL SYLLABLE KIYEOK U MIEUM +0xB0F2 0xAD7D #HANGUL SYLLABLE KIYEOK U PIEUP +0xB0F3 0xAD7F #HANGUL SYLLABLE KIYEOK U SIOS +0xB0F4 0xAD81 #HANGUL SYLLABLE KIYEOK U IEUNG +0xB0F5 0xAD82 #HANGUL SYLLABLE KIYEOK U CIEUC +0xB0F6 0xADDC #HANGUL SYLLABLE KIYEOK YU +0xB0F7 0xADE0 #HANGUL SYLLABLE KIYEOK YU NIEUN +0xB0F8 0xADE4 #HANGUL SYLLABLE KIYEOK YU RIEUL +0xB0F9 0xADEC #HANGUL SYLLABLE KIYEOK YU MIEUM +0xB0FA 0xADF1 #HANGUL SYLLABLE KIYEOK YU IEUNG +0xB0FB 0xADF8 #HANGUL SYLLABLE KIYEOK EU +0xB0FC 0xADF9 #HANGUL SYLLABLE KIYEOK EU KIYEOK +0xB0FD 0xADFC #HANGUL SYLLABLE KIYEOK EU NIEUN +0xB0FE 0xADFF #HANGUL SYLLABLE KIYEOK EU TIKEUT +0xB141 0xC039 #HANGUL SYLLABLE SSANGPIEUP WI THIEUTH +0xB142 0xC03A #HANGUL SYLLABLE SSANGPIEUP WI PHIEUPH +0xB143 0xC03B #HANGUL SYLLABLE SSANGPIEUP WI HIEUH +0xB144 0xC022 #HANGUL SYLLABLE SSANGPIEUP WI SSANGKIYEOK +0xB145 0xC034 #HANGUL SYLLABLE SSANGPIEUP WI SSANGSIOS +0xB146 0xC075 #HANGUL SYLLABLE SSANGPIEUP YI KIYEOK +0xB147 0xC077 #HANGUL SYLLABLE SSANGPIEUP YI KIYEOKSIOS +0xB148 0xC078 #HANGUL SYLLABLE SSANGPIEUP YI NIEUN +0xB149 0xC079 #HANGUL SYLLABLE SSANGPIEUP YI NIEUNCIEUC +0xB14A 0xC07A #HANGUL SYLLABLE SSANGPIEUP YI NIEUNHIEUH +0xB14B 0xC07B #HANGUL SYLLABLE SSANGPIEUP YI TIKEUT +0xB14C 0xC07C #HANGUL SYLLABLE SSANGPIEUP YI RIEUL +0xB14D 0xC07D #HANGUL SYLLABLE SSANGPIEUP YI RIEULKIYEOK +0xB14E 0xC07E #HANGUL SYLLABLE SSANGPIEUP YI RIEULMIEUM +0xB14F 0xC07F #HANGUL SYLLABLE SSANGPIEUP YI RIEULPIEUP +0xB150 0xC080 #HANGUL SYLLABLE SSANGPIEUP YI RIEULSIOS +0xB151 0xC081 #HANGUL SYLLABLE SSANGPIEUP YI RIEULTHIEUTH +0xB152 0xC082 #HANGUL SYLLABLE SSANGPIEUP YI RIEULPHIEUPH +0xB153 0xC083 #HANGUL SYLLABLE SSANGPIEUP YI RIEULHIEUH +0xB154 0xC084 #HANGUL SYLLABLE SSANGPIEUP YI MIEUM +0xB155 0xC085 #HANGUL SYLLABLE SSANGPIEUP YI PIEUP +0xB156 0xC086 #HANGUL SYLLABLE SSANGPIEUP YI PIEUPSIOS +0xB157 0xC087 #HANGUL SYLLABLE SSANGPIEUP YI SIOS +0xB158 0xC089 #HANGUL SYLLABLE SSANGPIEUP YI IEUNG +0xB159 0xC08A #HANGUL SYLLABLE SSANGPIEUP YI CIEUC +0xB15A 0xC08B #HANGUL SYLLABLE SSANGPIEUP YI CHIEUCH +0xB161 0xC08C #HANGUL SYLLABLE SSANGPIEUP YI KHIEUKH +0xB162 0xC08D #HANGUL SYLLABLE SSANGPIEUP YI THIEUTH +0xB163 0xC08E #HANGUL SYLLABLE SSANGPIEUP YI PHIEUPH +0xB164 0xC08F #HANGUL SYLLABLE SSANGPIEUP YI HIEUH +0xB165 0xC076 #HANGUL SYLLABLE SSANGPIEUP YI SSANGKIYEOK +0xB166 0xC088 #HANGUL SYLLABLE SSANGPIEUP YI SSANGSIOS +0xB167 0xBF5D #HANGUL SYLLABLE SSANGPIEUP WA KIYEOK +0xB168 0xBF5F #HANGUL SYLLABLE SSANGPIEUP WA KIYEOKSIOS +0xB169 0xBF60 #HANGUL SYLLABLE SSANGPIEUP WA NIEUN +0xB16A 0xBF61 #HANGUL SYLLABLE SSANGPIEUP WA NIEUNCIEUC +0xB16B 0xBF62 #HANGUL SYLLABLE SSANGPIEUP WA NIEUNHIEUH +0xB16C 0xBF63 #HANGUL SYLLABLE SSANGPIEUP WA TIKEUT +0xB16D 0xBF64 #HANGUL SYLLABLE SSANGPIEUP WA RIEUL +0xB16E 0xBF65 #HANGUL SYLLABLE SSANGPIEUP WA RIEULKIYEOK +0xB16F 0xBF66 #HANGUL SYLLABLE SSANGPIEUP WA RIEULMIEUM +0xB170 0xBF67 #HANGUL SYLLABLE SSANGPIEUP WA RIEULPIEUP +0xB171 0xBF68 #HANGUL SYLLABLE SSANGPIEUP WA RIEULSIOS +0xB172 0xBF69 #HANGUL SYLLABLE SSANGPIEUP WA RIEULTHIEUTH +0xB173 0xBF6A #HANGUL SYLLABLE SSANGPIEUP WA RIEULPHIEUPH +0xB174 0xBF6B #HANGUL SYLLABLE SSANGPIEUP WA RIEULHIEUH +0xB175 0xBF6C #HANGUL SYLLABLE SSANGPIEUP WA MIEUM +0xB176 0xBF6D #HANGUL SYLLABLE SSANGPIEUP WA PIEUP +0xB177 0xBF6E #HANGUL SYLLABLE SSANGPIEUP WA PIEUPSIOS +0xB178 0xBF6F #HANGUL SYLLABLE SSANGPIEUP WA SIOS +0xB179 0xBF71 #HANGUL SYLLABLE SSANGPIEUP WA IEUNG +0xB17A 0xBF72 #HANGUL SYLLABLE SSANGPIEUP WA CIEUC +0xB181 0xBF73 #HANGUL SYLLABLE SSANGPIEUP WA CHIEUCH +0xB182 0xBF74 #HANGUL SYLLABLE SSANGPIEUP WA KHIEUKH +0xB183 0xBF75 #HANGUL SYLLABLE SSANGPIEUP WA THIEUTH +0xB184 0xBF76 #HANGUL SYLLABLE SSANGPIEUP WA PHIEUPH +0xB185 0xBF77 #HANGUL SYLLABLE SSANGPIEUP WA HIEUH +0xB186 0xBF5E #HANGUL SYLLABLE SSANGPIEUP WA SSANGKIYEOK +0xB187 0xBF70 #HANGUL SYLLABLE SSANGPIEUP WA SSANGSIOS +0xB188 0xBFE9 #HANGUL SYLLABLE SSANGPIEUP WEO KIYEOK +0xB189 0xBFEB #HANGUL SYLLABLE SSANGPIEUP WEO KIYEOKSIOS +0xB18A 0xBFEC #HANGUL SYLLABLE SSANGPIEUP WEO NIEUN +0xB18B 0xBFED #HANGUL SYLLABLE SSANGPIEUP WEO NIEUNCIEUC +0xB18C 0xBFEE #HANGUL SYLLABLE SSANGPIEUP WEO NIEUNHIEUH +0xB18D 0xBFEF #HANGUL SYLLABLE SSANGPIEUP WEO TIKEUT +0xB18E 0xBFF0 #HANGUL SYLLABLE SSANGPIEUP WEO RIEUL +0xB18F 0xBFF1 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULKIYEOK +0xB190 0xBFF2 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULMIEUM +0xB191 0xBFF3 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULPIEUP +0xB192 0xBFF4 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULSIOS +0xB193 0xBFF5 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULTHIEUTH +0xB194 0xBFF6 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULPHIEUPH +0xB195 0xBFF7 #HANGUL SYLLABLE SSANGPIEUP WEO RIEULHIEUH +0xB196 0xBFF8 #HANGUL SYLLABLE SSANGPIEUP WEO MIEUM +0xB197 0xBFF9 #HANGUL SYLLABLE SSANGPIEUP WEO PIEUP +0xB198 0xBFFA #HANGUL SYLLABLE SSANGPIEUP WEO PIEUPSIOS +0xB199 0xBFFB #HANGUL SYLLABLE SSANGPIEUP WEO SIOS +0xB19A 0xBFFD #HANGUL SYLLABLE SSANGPIEUP WEO IEUNG +0xB19B 0xBFFE #HANGUL SYLLABLE SSANGPIEUP WEO CIEUC +0xB19C 0xBFFF #HANGUL SYLLABLE SSANGPIEUP WEO CHIEUCH +0xB19D 0xC000 #HANGUL SYLLABLE SSANGPIEUP WEO KHIEUKH +0xB19E 0xC001 #HANGUL SYLLABLE SSANGPIEUP WEO THIEUTH +0xB19F 0xC002 #HANGUL SYLLABLE SSANGPIEUP WEO PHIEUPH +0xB1A0 0xC003 #HANGUL SYLLABLE SSANGPIEUP WEO HIEUH +0xB1A1 0xAE00 #HANGUL SYLLABLE KIYEOK EU RIEUL +0xB1A2 0xAE01 #HANGUL SYLLABLE KIYEOK EU RIEULKIYEOK +0xB1A3 0xAE07 #HANGUL SYLLABLE KIYEOK EU RIEULHIEUH +0xB1A4 0xAE08 #HANGUL SYLLABLE KIYEOK EU MIEUM +0xB1A5 0xAE09 #HANGUL SYLLABLE KIYEOK EU PIEUP +0xB1A6 0xAE0B #HANGUL SYLLABLE KIYEOK EU SIOS +0xB1A7 0xAE0D #HANGUL SYLLABLE KIYEOK EU IEUNG +0xB1A8 0xAE30 #HANGUL SYLLABLE KIYEOK I +0xB1A9 0xAE31 #HANGUL SYLLABLE KIYEOK I KIYEOK +0xB1AA 0xAE34 #HANGUL SYLLABLE KIYEOK I NIEUN +0xB1AB 0xAE37 #HANGUL SYLLABLE KIYEOK I TIKEUT +0xB1AC 0xAE38 #HANGUL SYLLABLE KIYEOK I RIEUL +0xB1AD 0xAE3A #HANGUL SYLLABLE KIYEOK I RIEULMIEUM +0xB1AE 0xAE40 #HANGUL SYLLABLE KIYEOK I MIEUM +0xB1AF 0xAE41 #HANGUL SYLLABLE KIYEOK I PIEUP +0xB1B0 0xAE43 #HANGUL SYLLABLE KIYEOK I SIOS +0xB1B1 0xAE45 #HANGUL SYLLABLE KIYEOK I IEUNG +0xB1B2 0xAE46 #HANGUL SYLLABLE KIYEOK I CIEUC +0xB1B3 0xAE47 #HANGUL SYLLABLE KIYEOK I CHIEUCH +0xB1B4 0xAE49 #HANGUL SYLLABLE KIYEOK I THIEUTH +0xB1B5 0xAE4A #HANGUL SYLLABLE KIYEOK I PHIEUPH +0xB1B6 0xAC1C #HANGUL SYLLABLE KIYEOK AE +0xB1B7 0xAC1D #HANGUL SYLLABLE KIYEOK AE KIYEOK +0xB1B8 0xAC20 #HANGUL SYLLABLE KIYEOK AE NIEUN +0xB1B9 0xAC24 #HANGUL SYLLABLE KIYEOK AE RIEUL +0xB1BA 0xAC2C #HANGUL SYLLABLE KIYEOK AE MIEUM +0xB1BB 0xAC2D #HANGUL SYLLABLE KIYEOK AE PIEUP +0xB1BC 0xAC2F #HANGUL SYLLABLE KIYEOK AE SIOS +0xB1BD 0xAC31 #HANGUL SYLLABLE KIYEOK AE IEUNG +0xB1BE 0xAC30 #HANGUL SYLLABLE KIYEOK AE SSANGSIOS +0xB1BF 0xAC54 #HANGUL SYLLABLE KIYEOK YAE +0xB1C0 0xAC58 #HANGUL SYLLABLE KIYEOK YAE NIEUN +0xB1C1 0xAC5C #HANGUL SYLLABLE KIYEOK YAE RIEUL +0xB1C2 0xAC8C #HANGUL SYLLABLE KIYEOK E +0xB1C3 0xAC8D #HANGUL SYLLABLE KIYEOK E KIYEOK +0xB1C4 0xAC90 #HANGUL SYLLABLE KIYEOK E NIEUN +0xB1C5 0xAC94 #HANGUL SYLLABLE KIYEOK E RIEUL +0xB1C6 0xAC9C #HANGUL SYLLABLE KIYEOK E MIEUM +0xB1C7 0xAC9D #HANGUL SYLLABLE KIYEOK E PIEUP +0xB1C8 0xAC9F #HANGUL SYLLABLE KIYEOK E SIOS +0xB1C9 0xACA1 #HANGUL SYLLABLE KIYEOK E IEUNG +0xB1CA 0xACA0 #HANGUL SYLLABLE KIYEOK E SSANGSIOS +0xB1CB 0xACC4 #HANGUL SYLLABLE KIYEOK YE +0xB1CC 0xACC8 #HANGUL SYLLABLE KIYEOK YE NIEUN +0xB1CD 0xACCC #HANGUL SYLLABLE KIYEOK YE RIEUL +0xB1CE 0xACD5 #HANGUL SYLLABLE KIYEOK YE PIEUP +0xB1CF 0xACD7 #HANGUL SYLLABLE KIYEOK YE SIOS +0xB1D0 0xAD34 #HANGUL SYLLABLE KIYEOK OE +0xB1D1 0xAD35 #HANGUL SYLLABLE KIYEOK OE KIYEOK +0xB1D2 0xAD38 #HANGUL SYLLABLE KIYEOK OE NIEUN +0xB1D3 0xAD3C #HANGUL SYLLABLE KIYEOK OE RIEUL +0xB1D4 0xAD44 #HANGUL SYLLABLE KIYEOK OE MIEUM +0xB1D5 0xAD45 #HANGUL SYLLABLE KIYEOK OE PIEUP +0xB1D6 0xAD47 #HANGUL SYLLABLE KIYEOK OE SIOS +0xB1D7 0xAD49 #HANGUL SYLLABLE KIYEOK OE IEUNG +0xB1D8 0xAD48 #HANGUL SYLLABLE KIYEOK OE SSANGSIOS +0xB1D9 0xADC0 #HANGUL SYLLABLE KIYEOK WI +0xB1DA 0xADC1 #HANGUL SYLLABLE KIYEOK WI KIYEOK +0xB1DB 0xADC4 #HANGUL SYLLABLE KIYEOK WI NIEUN +0xB1DC 0xADC8 #HANGUL SYLLABLE KIYEOK WI RIEUL +0xB1DD 0xADD0 #HANGUL SYLLABLE KIYEOK WI MIEUM +0xB1DE 0xADD1 #HANGUL SYLLABLE KIYEOK WI PIEUP +0xB1DF 0xADD3 #HANGUL SYLLABLE KIYEOK WI SIOS +0xB1E0 0xAE14 #HANGUL SYLLABLE KIYEOK YI +0xB1E1 0xACFC #HANGUL SYLLABLE KIYEOK WA +0xB1E2 0xACFD #HANGUL SYLLABLE KIYEOK WA KIYEOK +0xB1E3 0xAD00 #HANGUL SYLLABLE KIYEOK WA NIEUN +0xB1E4 0xAD03 #HANGUL SYLLABLE KIYEOK WA TIKEUT +0xB1E5 0xAD04 #HANGUL SYLLABLE KIYEOK WA RIEUL +0xB1E6 0xAD06 #HANGUL SYLLABLE KIYEOK WA RIEULMIEUM +0xB1E7 0xAD0C #HANGUL SYLLABLE KIYEOK WA MIEUM +0xB1E8 0xAD0D #HANGUL SYLLABLE KIYEOK WA PIEUP +0xB1E9 0xAD0F #HANGUL SYLLABLE KIYEOK WA SIOS +0xB1EA 0xAD11 #HANGUL SYLLABLE KIYEOK WA IEUNG +0xB1EB 0xAD10 #HANGUL SYLLABLE KIYEOK WA SSANGSIOS +0xB1EC 0xAD88 #HANGUL SYLLABLE KIYEOK WEO +0xB1ED 0xAD89 #HANGUL SYLLABLE KIYEOK WEO KIYEOK +0xB1EE 0xAD8C #HANGUL SYLLABLE KIYEOK WEO NIEUN +0xB1EF 0xAD90 #HANGUL SYLLABLE KIYEOK WEO RIEUL +0xB1F0 0xAD98 #HANGUL SYLLABLE KIYEOK WEO MIEUM +0xB1F1 0xAD9D #HANGUL SYLLABLE KIYEOK WEO IEUNG +0xB1F2 0xAD9C #HANGUL SYLLABLE KIYEOK WEO SSANGSIOS +0xB1F3 0xAD18 #HANGUL SYLLABLE KIYEOK WAE +0xB1F4 0xAD19 #HANGUL SYLLABLE KIYEOK WAE KIYEOK +0xB1F5 0xAD1C #HANGUL SYLLABLE KIYEOK WAE NIEUN +0xB1F6 0xAD20 #HANGUL SYLLABLE KIYEOK WAE RIEUL +0xB1F7 0xAD29 #HANGUL SYLLABLE KIYEOK WAE PIEUP +0xB1F8 0xAD2D #HANGUL SYLLABLE KIYEOK WAE IEUNG +0xB1F9 0xAD2C #HANGUL SYLLABLE KIYEOK WAE SSANGSIOS +0xB1FA 0xADA4 #HANGUL SYLLABLE KIYEOK WE +0xB1FB 0xADA5 #HANGUL SYLLABLE KIYEOK WE KIYEOK +0xB1FC 0xADB7 #HANGUL SYLLABLE KIYEOK WE SIOS +0xB1FD 0xB098 #HANGUL SYLLABLE NIEUN A +0xB1FE 0xB099 #HANGUL SYLLABLE NIEUN A KIYEOK +0xB241 0xBFEA #HANGUL SYLLABLE SSANGPIEUP WEO SSANGKIYEOK +0xB242 0xBFFC #HANGUL SYLLABLE SSANGPIEUP WEO SSANGSIOS +0xB243 0xBF78 #HANGUL SYLLABLE SSANGPIEUP WAE +0xB244 0xBF79 #HANGUL SYLLABLE SSANGPIEUP WAE KIYEOK +0xB245 0xBF7B #HANGUL SYLLABLE SSANGPIEUP WAE KIYEOKSIOS +0xB246 0xBF7C #HANGUL SYLLABLE SSANGPIEUP WAE NIEUN +0xB247 0xBF7D #HANGUL SYLLABLE SSANGPIEUP WAE NIEUNCIEUC +0xB248 0xBF7E #HANGUL SYLLABLE SSANGPIEUP WAE NIEUNHIEUH +0xB249 0xBF7F #HANGUL SYLLABLE SSANGPIEUP WAE TIKEUT +0xB24A 0xBF80 #HANGUL SYLLABLE SSANGPIEUP WAE RIEUL +0xB24B 0xBF81 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULKIYEOK +0xB24C 0xBF82 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULMIEUM +0xB24D 0xBF83 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULPIEUP +0xB24E 0xBF84 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULSIOS +0xB24F 0xBF85 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULTHIEUTH +0xB250 0xBF86 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULPHIEUPH +0xB251 0xBF87 #HANGUL SYLLABLE SSANGPIEUP WAE RIEULHIEUH +0xB252 0xBF88 #HANGUL SYLLABLE SSANGPIEUP WAE MIEUM +0xB253 0xBF89 #HANGUL SYLLABLE SSANGPIEUP WAE PIEUP +0xB254 0xBF8A #HANGUL SYLLABLE SSANGPIEUP WAE PIEUPSIOS +0xB255 0xBF8B #HANGUL SYLLABLE SSANGPIEUP WAE SIOS +0xB256 0xBF8D #HANGUL SYLLABLE SSANGPIEUP WAE IEUNG +0xB257 0xBF8E #HANGUL SYLLABLE SSANGPIEUP WAE CIEUC +0xB258 0xBF8F #HANGUL SYLLABLE SSANGPIEUP WAE CHIEUCH +0xB259 0xBF90 #HANGUL SYLLABLE SSANGPIEUP WAE KHIEUKH +0xB25A 0xBF91 #HANGUL SYLLABLE SSANGPIEUP WAE THIEUTH +0xB261 0xBF92 #HANGUL SYLLABLE SSANGPIEUP WAE PHIEUPH +0xB262 0xBF93 #HANGUL SYLLABLE SSANGPIEUP WAE HIEUH +0xB263 0xBF7A #HANGUL SYLLABLE SSANGPIEUP WAE SSANGKIYEOK +0xB264 0xBF8C #HANGUL SYLLABLE SSANGPIEUP WAE SSANGSIOS +0xB265 0xC004 #HANGUL SYLLABLE SSANGPIEUP WE +0xB266 0xC005 #HANGUL SYLLABLE SSANGPIEUP WE KIYEOK +0xB267 0xC007 #HANGUL SYLLABLE SSANGPIEUP WE KIYEOKSIOS +0xB268 0xC008 #HANGUL SYLLABLE SSANGPIEUP WE NIEUN +0xB269 0xC009 #HANGUL SYLLABLE SSANGPIEUP WE NIEUNCIEUC +0xB26A 0xC00A #HANGUL SYLLABLE SSANGPIEUP WE NIEUNHIEUH +0xB26B 0xC00B #HANGUL SYLLABLE SSANGPIEUP WE TIKEUT +0xB26C 0xC00C #HANGUL SYLLABLE SSANGPIEUP WE RIEUL +0xB26D 0xC00D #HANGUL SYLLABLE SSANGPIEUP WE RIEULKIYEOK +0xB26E 0xC00E #HANGUL SYLLABLE SSANGPIEUP WE RIEULMIEUM +0xB26F 0xC00F #HANGUL SYLLABLE SSANGPIEUP WE RIEULPIEUP +0xB270 0xC010 #HANGUL SYLLABLE SSANGPIEUP WE RIEULSIOS +0xB271 0xC011 #HANGUL SYLLABLE SSANGPIEUP WE RIEULTHIEUTH +0xB272 0xC012 #HANGUL SYLLABLE SSANGPIEUP WE RIEULPHIEUPH +0xB273 0xC013 #HANGUL SYLLABLE SSANGPIEUP WE RIEULHIEUH +0xB274 0xC014 #HANGUL SYLLABLE SSANGPIEUP WE MIEUM +0xB275 0xC015 #HANGUL SYLLABLE SSANGPIEUP WE PIEUP +0xB276 0xC016 #HANGUL SYLLABLE SSANGPIEUP WE PIEUPSIOS +0xB277 0xC017 #HANGUL SYLLABLE SSANGPIEUP WE SIOS +0xB278 0xC019 #HANGUL SYLLABLE SSANGPIEUP WE IEUNG +0xB279 0xC01A #HANGUL SYLLABLE SSANGPIEUP WE CIEUC +0xB27A 0xC01B #HANGUL SYLLABLE SSANGPIEUP WE CHIEUCH +0xB281 0xC01C #HANGUL SYLLABLE SSANGPIEUP WE KHIEUKH +0xB282 0xC01D #HANGUL SYLLABLE SSANGPIEUP WE THIEUTH +0xB283 0xC01E #HANGUL SYLLABLE SSANGPIEUP WE PHIEUPH +0xB284 0xC01F #HANGUL SYLLABLE SSANGPIEUP WE HIEUH +0xB285 0xC006 #HANGUL SYLLABLE SSANGPIEUP WE SSANGKIYEOK +0xB286 0xC018 #HANGUL SYLLABLE SSANGPIEUP WE SSANGSIOS +0xB287 0xC2FD #HANGUL SYLLABLE SSANGSIOS A NIEUNCIEUC +0xB288 0xC2FE #HANGUL SYLLABLE SSANGSIOS A NIEUNHIEUH +0xB289 0xC2FF #HANGUL SYLLABLE SSANGSIOS A TIKEUT +0xB28A 0xC301 #HANGUL SYLLABLE SSANGSIOS A RIEULKIYEOK +0xB28B 0xC302 #HANGUL SYLLABLE SSANGSIOS A RIEULMIEUM +0xB28C 0xC303 #HANGUL SYLLABLE SSANGSIOS A RIEULPIEUP +0xB28D 0xC304 #HANGUL SYLLABLE SSANGSIOS A RIEULSIOS +0xB28E 0xC305 #HANGUL SYLLABLE SSANGSIOS A RIEULTHIEUTH +0xB28F 0xC306 #HANGUL SYLLABLE SSANGSIOS A RIEULPHIEUPH +0xB290 0xC307 #HANGUL SYLLABLE SSANGSIOS A RIEULHIEUH +0xB291 0xC30A #HANGUL SYLLABLE SSANGSIOS A PIEUPSIOS +0xB292 0xC30E #HANGUL SYLLABLE SSANGSIOS A CIEUC +0xB293 0xC30F #HANGUL SYLLABLE SSANGSIOS A CHIEUCH +0xB294 0xC310 #HANGUL SYLLABLE SSANGSIOS A KHIEUKH +0xB295 0xC311 #HANGUL SYLLABLE SSANGSIOS A THIEUTH +0xB296 0xC312 #HANGUL SYLLABLE SSANGSIOS A PHIEUPH +0xB297 0xC2FA #HANGUL SYLLABLE SSANGSIOS A SSANGKIYEOK +0xB298 0xC331 #HANGUL SYLLABLE SSANGSIOS YA KIYEOK +0xB299 0xC333 #HANGUL SYLLABLE SSANGSIOS YA KIYEOKSIOS +0xB29A 0xC335 #HANGUL SYLLABLE SSANGSIOS YA NIEUNCIEUC +0xB29B 0xC336 #HANGUL SYLLABLE SSANGSIOS YA NIEUNHIEUH +0xB29C 0xC337 #HANGUL SYLLABLE SSANGSIOS YA TIKEUT +0xB29D 0xC339 #HANGUL SYLLABLE SSANGSIOS YA RIEULKIYEOK +0xB29E 0xC33A #HANGUL SYLLABLE SSANGSIOS YA RIEULMIEUM +0xB29F 0xC33B #HANGUL SYLLABLE SSANGSIOS YA RIEULPIEUP +0xB2A0 0xC33C #HANGUL SYLLABLE SSANGSIOS YA RIEULSIOS +0xB2A1 0xB09B #HANGUL SYLLABLE NIEUN A KIYEOKSIOS +0xB2A2 0xB09C #HANGUL SYLLABLE NIEUN A NIEUN +0xB2A3 0xB09F #HANGUL SYLLABLE NIEUN A TIKEUT +0xB2A4 0xB0A0 #HANGUL SYLLABLE NIEUN A RIEUL +0xB2A5 0xB0A1 #HANGUL SYLLABLE NIEUN A RIEULKIYEOK +0xB2A6 0xB0A2 #HANGUL SYLLABLE NIEUN A RIEULMIEUM +0xB2A7 0xB0A8 #HANGUL SYLLABLE NIEUN A MIEUM +0xB2A8 0xB0A9 #HANGUL SYLLABLE NIEUN A PIEUP +0xB2A9 0xB0AB #HANGUL SYLLABLE NIEUN A SIOS +0xB2AA 0xB0AD #HANGUL SYLLABLE NIEUN A IEUNG +0xB2AB 0xB0AE #HANGUL SYLLABLE NIEUN A CIEUC +0xB2AC 0xB0AF #HANGUL SYLLABLE NIEUN A CHIEUCH +0xB2AD 0xB0B1 #HANGUL SYLLABLE NIEUN A THIEUTH +0xB2AE 0xB0B3 #HANGUL SYLLABLE NIEUN A HIEUH +0xB2AF 0xB09A #HANGUL SYLLABLE NIEUN A SSANGKIYEOK +0xB2B0 0xB0AC #HANGUL SYLLABLE NIEUN A SSANGSIOS +0xB2B1 0xB0D0 #HANGUL SYLLABLE NIEUN YA +0xB2B2 0xB0D1 #HANGUL SYLLABLE NIEUN YA KIYEOK +0xB2B3 0xB0D4 #HANGUL SYLLABLE NIEUN YA NIEUN +0xB2B4 0xB0D8 #HANGUL SYLLABLE NIEUN YA RIEUL +0xB2B5 0xB0E0 #HANGUL SYLLABLE NIEUN YA MIEUM +0xB2B6 0xB0E1 #HANGUL SYLLABLE NIEUN YA PIEUP +0xB2B7 0xB0E5 #HANGUL SYLLABLE NIEUN YA IEUNG +0xB2B8 0xB108 #HANGUL SYLLABLE NIEUN EO +0xB2B9 0xB109 #HANGUL SYLLABLE NIEUN EO KIYEOK +0xB2BA 0xB10B #HANGUL SYLLABLE NIEUN EO KIYEOKSIOS +0xB2BB 0xB10C #HANGUL SYLLABLE NIEUN EO NIEUN +0xB2BC 0xB110 #HANGUL SYLLABLE NIEUN EO RIEUL +0xB2BD 0xB112 #HANGUL SYLLABLE NIEUN EO RIEULMIEUM +0xB2BE 0xB113 #HANGUL SYLLABLE NIEUN EO RIEULPIEUP +0xB2BF 0xB118 #HANGUL SYLLABLE NIEUN EO MIEUM +0xB2C0 0xB119 #HANGUL SYLLABLE NIEUN EO PIEUP +0xB2C1 0xB11B #HANGUL SYLLABLE NIEUN EO SIOS +0xB2C2 0xB11D #HANGUL SYLLABLE NIEUN EO IEUNG +0xB2C3 0xB122 #HANGUL SYLLABLE NIEUN EO PHIEUPH +0xB2C4 0xB123 #HANGUL SYLLABLE NIEUN EO HIEUH +0xB2C5 0xB10A #HANGUL SYLLABLE NIEUN EO SSANGKIYEOK +0xB2C6 0xB11C #HANGUL SYLLABLE NIEUN EO SSANGSIOS +0xB2C7 0xB140 #HANGUL SYLLABLE NIEUN YEO +0xB2C8 0xB141 #HANGUL SYLLABLE NIEUN YEO KIYEOK +0xB2C9 0xB144 #HANGUL SYLLABLE NIEUN YEO NIEUN +0xB2CA 0xB148 #HANGUL SYLLABLE NIEUN YEO RIEUL +0xB2CB 0xB150 #HANGUL SYLLABLE NIEUN YEO MIEUM +0xB2CC 0xB151 #HANGUL SYLLABLE NIEUN YEO PIEUP +0xB2CD 0xB153 #HANGUL SYLLABLE NIEUN YEO SIOS +0xB2CE 0xB155 #HANGUL SYLLABLE NIEUN YEO IEUNG +0xB2CF 0xB158 #HANGUL SYLLABLE NIEUN YEO KHIEUKH +0xB2D0 0xB154 #HANGUL SYLLABLE NIEUN YEO SSANGSIOS +0xB2D1 0xB178 #HANGUL SYLLABLE NIEUN O +0xB2D2 0xB179 #HANGUL SYLLABLE NIEUN O KIYEOK +0xB2D3 0xB17C #HANGUL SYLLABLE NIEUN O NIEUN +0xB2D4 0xB180 #HANGUL SYLLABLE NIEUN O RIEUL +0xB2D5 0xB182 #HANGUL SYLLABLE NIEUN O RIEULMIEUM +0xB2D6 0xB188 #HANGUL SYLLABLE NIEUN O MIEUM +0xB2D7 0xB189 #HANGUL SYLLABLE NIEUN O PIEUP +0xB2D8 0xB18B #HANGUL SYLLABLE NIEUN O SIOS +0xB2D9 0xB18D #HANGUL SYLLABLE NIEUN O IEUNG +0xB2DA 0xB192 #HANGUL SYLLABLE NIEUN O PHIEUPH +0xB2DB 0xB193 #HANGUL SYLLABLE NIEUN O HIEUH +0xB2DC 0xB1E8 #HANGUL SYLLABLE NIEUN YO +0xB2DD 0xB1E9 #HANGUL SYLLABLE NIEUN YO KIYEOK +0xB2DE 0xB1EC #HANGUL SYLLABLE NIEUN YO NIEUN +0xB2DF 0xB1F0 #HANGUL SYLLABLE NIEUN YO RIEUL +0xB2E0 0xB1F8 #HANGUL SYLLABLE NIEUN YO MIEUM +0xB2E1 0xB1F9 #HANGUL SYLLABLE NIEUN YO PIEUP +0xB2E2 0xB1FB #HANGUL SYLLABLE NIEUN YO SIOS +0xB2E3 0xB1FD #HANGUL SYLLABLE NIEUN YO IEUNG +0xB2E4 0xB204 #HANGUL SYLLABLE NIEUN U +0xB2E5 0xB205 #HANGUL SYLLABLE NIEUN U KIYEOK +0xB2E6 0xB208 #HANGUL SYLLABLE NIEUN U NIEUN +0xB2E7 0xB20B #HANGUL SYLLABLE NIEUN U TIKEUT +0xB2E8 0xB20C #HANGUL SYLLABLE NIEUN U RIEUL +0xB2E9 0xB214 #HANGUL SYLLABLE NIEUN U MIEUM +0xB2EA 0xB215 #HANGUL SYLLABLE NIEUN U PIEUP +0xB2EB 0xB217 #HANGUL SYLLABLE NIEUN U SIOS +0xB2EC 0xB219 #HANGUL SYLLABLE NIEUN U IEUNG +0xB2ED 0xB21E #HANGUL SYLLABLE NIEUN U PHIEUPH +0xB2EE 0xB274 #HANGUL SYLLABLE NIEUN YU +0xB2EF 0xB275 #HANGUL SYLLABLE NIEUN YU KIYEOK +0xB2F0 0xB278 #HANGUL SYLLABLE NIEUN YU NIEUN +0xB2F1 0xB27C #HANGUL SYLLABLE NIEUN YU RIEUL +0xB2F2 0xB284 #HANGUL SYLLABLE NIEUN YU MIEUM +0xB2F3 0xB285 #HANGUL SYLLABLE NIEUN YU PIEUP +0xB2F4 0xB289 #HANGUL SYLLABLE NIEUN YU IEUNG +0xB2F5 0xB290 #HANGUL SYLLABLE NIEUN EU +0xB2F6 0xB291 #HANGUL SYLLABLE NIEUN EU KIYEOK +0xB2F7 0xB294 #HANGUL SYLLABLE NIEUN EU NIEUN +0xB2F8 0xB298 #HANGUL SYLLABLE NIEUN EU RIEUL +0xB2F9 0xB299 #HANGUL SYLLABLE NIEUN EU RIEULKIYEOK +0xB2FA 0xB29A #HANGUL SYLLABLE NIEUN EU RIEULMIEUM +0xB2FB 0xB2A0 #HANGUL SYLLABLE NIEUN EU MIEUM +0xB2FC 0xB2A1 #HANGUL SYLLABLE NIEUN EU PIEUP +0xB2FD 0xB2A3 #HANGUL SYLLABLE NIEUN EU SIOS +0xB2FE 0xB2A5 #HANGUL SYLLABLE NIEUN EU IEUNG +0xB341 0xC33D #HANGUL SYLLABLE SSANGSIOS YA RIEULTHIEUTH +0xB342 0xC33E #HANGUL SYLLABLE SSANGSIOS YA RIEULPHIEUPH +0xB343 0xC33F #HANGUL SYLLABLE SSANGSIOS YA RIEULHIEUH +0xB344 0xC340 #HANGUL SYLLABLE SSANGSIOS YA MIEUM +0xB345 0xC341 #HANGUL SYLLABLE SSANGSIOS YA PIEUP +0xB346 0xC342 #HANGUL SYLLABLE SSANGSIOS YA PIEUPSIOS +0xB347 0xC343 #HANGUL SYLLABLE SSANGSIOS YA SIOS +0xB348 0xC346 #HANGUL SYLLABLE SSANGSIOS YA CIEUC +0xB349 0xC347 #HANGUL SYLLABLE SSANGSIOS YA CHIEUCH +0xB34A 0xC348 #HANGUL SYLLABLE SSANGSIOS YA KHIEUKH +0xB34B 0xC349 #HANGUL SYLLABLE SSANGSIOS YA THIEUTH +0xB34C 0xC34A #HANGUL SYLLABLE SSANGSIOS YA PHIEUPH +0xB34D 0xC34B #HANGUL SYLLABLE SSANGSIOS YA HIEUH +0xB34E 0xC332 #HANGUL SYLLABLE SSANGSIOS YA SSANGKIYEOK +0xB34F 0xC344 #HANGUL SYLLABLE SSANGSIOS YA SSANGSIOS +0xB350 0xC36B #HANGUL SYLLABLE SSANGSIOS EO KIYEOKSIOS +0xB351 0xC36D #HANGUL SYLLABLE SSANGSIOS EO NIEUNCIEUC +0xB352 0xC36E #HANGUL SYLLABLE SSANGSIOS EO NIEUNHIEUH +0xB353 0xC36F #HANGUL SYLLABLE SSANGSIOS EO TIKEUT +0xB354 0xC371 #HANGUL SYLLABLE SSANGSIOS EO RIEULKIYEOK +0xB355 0xC373 #HANGUL SYLLABLE SSANGSIOS EO RIEULPIEUP +0xB356 0xC374 #HANGUL SYLLABLE SSANGSIOS EO RIEULSIOS +0xB357 0xC375 #HANGUL SYLLABLE SSANGSIOS EO RIEULTHIEUTH +0xB358 0xC376 #HANGUL SYLLABLE SSANGSIOS EO RIEULPHIEUPH +0xB359 0xC377 #HANGUL SYLLABLE SSANGSIOS EO RIEULHIEUH +0xB35A 0xC37A #HANGUL SYLLABLE SSANGSIOS EO PIEUPSIOS +0xB361 0xC37E #HANGUL SYLLABLE SSANGSIOS EO CIEUC +0xB362 0xC37F #HANGUL SYLLABLE SSANGSIOS EO CHIEUCH +0xB363 0xC380 #HANGUL SYLLABLE SSANGSIOS EO KHIEUKH +0xB364 0xC381 #HANGUL SYLLABLE SSANGSIOS EO THIEUTH +0xB365 0xC382 #HANGUL SYLLABLE SSANGSIOS EO PHIEUPH +0xB366 0xC383 #HANGUL SYLLABLE SSANGSIOS EO HIEUH +0xB367 0xC3A1 #HANGUL SYLLABLE SSANGSIOS YEO KIYEOK +0xB368 0xC3A3 #HANGUL SYLLABLE SSANGSIOS YEO KIYEOKSIOS +0xB369 0xC3A4 #HANGUL SYLLABLE SSANGSIOS YEO NIEUN +0xB36A 0xC3A5 #HANGUL SYLLABLE SSANGSIOS YEO NIEUNCIEUC +0xB36B 0xC3A6 #HANGUL SYLLABLE SSANGSIOS YEO NIEUNHIEUH +0xB36C 0xC3A7 #HANGUL SYLLABLE SSANGSIOS YEO TIKEUT +0xB36D 0xC3A8 #HANGUL SYLLABLE SSANGSIOS YEO RIEUL +0xB36E 0xC3A9 #HANGUL SYLLABLE SSANGSIOS YEO RIEULKIYEOK +0xB36F 0xC3AA #HANGUL SYLLABLE SSANGSIOS YEO RIEULMIEUM +0xB370 0xC3AB #HANGUL SYLLABLE SSANGSIOS YEO RIEULPIEUP +0xB371 0xC3AC #HANGUL SYLLABLE SSANGSIOS YEO RIEULSIOS +0xB372 0xC3AD #HANGUL SYLLABLE SSANGSIOS YEO RIEULTHIEUTH +0xB373 0xC3AE #HANGUL SYLLABLE SSANGSIOS YEO RIEULPHIEUPH +0xB374 0xC3AF #HANGUL SYLLABLE SSANGSIOS YEO RIEULHIEUH +0xB375 0xC3B0 #HANGUL SYLLABLE SSANGSIOS YEO MIEUM +0xB376 0xC3B1 #HANGUL SYLLABLE SSANGSIOS YEO PIEUP +0xB377 0xC3B2 #HANGUL SYLLABLE SSANGSIOS YEO PIEUPSIOS +0xB378 0xC3B3 #HANGUL SYLLABLE SSANGSIOS YEO SIOS +0xB379 0xC3B5 #HANGUL SYLLABLE SSANGSIOS YEO IEUNG +0xB37A 0xC3B6 #HANGUL SYLLABLE SSANGSIOS YEO CIEUC +0xB381 0xC3B7 #HANGUL SYLLABLE SSANGSIOS YEO CHIEUCH +0xB382 0xC3B8 #HANGUL SYLLABLE SSANGSIOS YEO KHIEUKH +0xB383 0xC3B9 #HANGUL SYLLABLE SSANGSIOS YEO THIEUTH +0xB384 0xC3BA #HANGUL SYLLABLE SSANGSIOS YEO PHIEUPH +0xB385 0xC3BB #HANGUL SYLLABLE SSANGSIOS YEO HIEUH +0xB386 0xC3A2 #HANGUL SYLLABLE SSANGSIOS YEO SSANGKIYEOK +0xB387 0xC3B4 #HANGUL SYLLABLE SSANGSIOS YEO SSANGSIOS +0xB388 0xC3DB #HANGUL SYLLABLE SSANGSIOS O KIYEOKSIOS +0xB389 0xC3DD #HANGUL SYLLABLE SSANGSIOS O NIEUNCIEUC +0xB38A 0xC3DE #HANGUL SYLLABLE SSANGSIOS O NIEUNHIEUH +0xB38B 0xC3E1 #HANGUL SYLLABLE SSANGSIOS O RIEULKIYEOK +0xB38C 0xC3E3 #HANGUL SYLLABLE SSANGSIOS O RIEULPIEUP +0xB38D 0xC3E4 #HANGUL SYLLABLE SSANGSIOS O RIEULSIOS +0xB38E 0xC3E5 #HANGUL SYLLABLE SSANGSIOS O RIEULTHIEUTH +0xB38F 0xC3E6 #HANGUL SYLLABLE SSANGSIOS O RIEULPHIEUPH +0xB390 0xC3E7 #HANGUL SYLLABLE SSANGSIOS O RIEULHIEUH +0xB391 0xC3EA #HANGUL SYLLABLE SSANGSIOS O PIEUPSIOS +0xB392 0xC3EE #HANGUL SYLLABLE SSANGSIOS O CIEUC +0xB393 0xC3EF #HANGUL SYLLABLE SSANGSIOS O CHIEUCH +0xB394 0xC3F0 #HANGUL SYLLABLE SSANGSIOS O KHIEUKH +0xB395 0xC3F1 #HANGUL SYLLABLE SSANGSIOS O THIEUTH +0xB396 0xC3F2 #HANGUL SYLLABLE SSANGSIOS O PHIEUPH +0xB397 0xC3F3 #HANGUL SYLLABLE SSANGSIOS O HIEUH +0xB398 0xC3DA #HANGUL SYLLABLE SSANGSIOS O SSANGKIYEOK +0xB399 0xC3EC #HANGUL SYLLABLE SSANGSIOS O SSANGSIOS +0xB39A 0xC449 #HANGUL SYLLABLE SSANGSIOS YO KIYEOK +0xB39B 0xC44B #HANGUL SYLLABLE SSANGSIOS YO KIYEOKSIOS +0xB39C 0xC44D #HANGUL SYLLABLE SSANGSIOS YO NIEUNCIEUC +0xB39D 0xC44E #HANGUL SYLLABLE SSANGSIOS YO NIEUNHIEUH +0xB39E 0xC44F #HANGUL SYLLABLE SSANGSIOS YO TIKEUT +0xB39F 0xC451 #HANGUL SYLLABLE SSANGSIOS YO RIEULKIYEOK +0xB3A0 0xC452 #HANGUL SYLLABLE SSANGSIOS YO RIEULMIEUM +0xB3A1 0xB2A6 #HANGUL SYLLABLE NIEUN EU CIEUC +0xB3A2 0xB2AA #HANGUL SYLLABLE NIEUN EU PHIEUPH +0xB3A3 0xB2C8 #HANGUL SYLLABLE NIEUN I +0xB3A4 0xB2C9 #HANGUL SYLLABLE NIEUN I KIYEOK +0xB3A5 0xB2CC #HANGUL SYLLABLE NIEUN I NIEUN +0xB3A6 0xB2D0 #HANGUL SYLLABLE NIEUN I RIEUL +0xB3A7 0xB2D2 #HANGUL SYLLABLE NIEUN I RIEULMIEUM +0xB3A8 0xB2D8 #HANGUL SYLLABLE NIEUN I MIEUM +0xB3A9 0xB2D9 #HANGUL SYLLABLE NIEUN I PIEUP +0xB3AA 0xB2DB #HANGUL SYLLABLE NIEUN I SIOS +0xB3AB 0xB2DD #HANGUL SYLLABLE NIEUN I IEUNG +0xB3AC 0xB2E2 #HANGUL SYLLABLE NIEUN I PHIEUPH +0xB3AD 0xB0B4 #HANGUL SYLLABLE NIEUN AE +0xB3AE 0xB0B5 #HANGUL SYLLABLE NIEUN AE KIYEOK +0xB3AF 0xB0B8 #HANGUL SYLLABLE NIEUN AE NIEUN +0xB3B0 0xB0BC #HANGUL SYLLABLE NIEUN AE RIEUL +0xB3B1 0xB0C4 #HANGUL SYLLABLE NIEUN AE MIEUM +0xB3B2 0xB0C5 #HANGUL SYLLABLE NIEUN AE PIEUP +0xB3B3 0xB0C7 #HANGUL SYLLABLE NIEUN AE SIOS +0xB3B4 0xB0C9 #HANGUL SYLLABLE NIEUN AE IEUNG +0xB3B5 0xB0C8 #HANGUL SYLLABLE NIEUN AE SSANGSIOS +0xB3B6 0xB0EC #HANGUL SYLLABLE NIEUN YAE +0xB3B7 0xB124 #HANGUL SYLLABLE NIEUN E +0xB3B8 0xB125 #HANGUL SYLLABLE NIEUN E KIYEOK +0xB3B9 0xB128 #HANGUL SYLLABLE NIEUN E NIEUN +0xB3BA 0xB12C #HANGUL SYLLABLE NIEUN E RIEUL +0xB3BB 0xB134 #HANGUL SYLLABLE NIEUN E MIEUM +0xB3BC 0xB135 #HANGUL SYLLABLE NIEUN E PIEUP +0xB3BD 0xB137 #HANGUL SYLLABLE NIEUN E SIOS +0xB3BE 0xB139 #HANGUL SYLLABLE NIEUN E IEUNG +0xB3BF 0xB138 #HANGUL SYLLABLE NIEUN E SSANGSIOS +0xB3C0 0xB15C #HANGUL SYLLABLE NIEUN YE +0xB3C1 0xB160 #HANGUL SYLLABLE NIEUN YE NIEUN +0xB3C2 0xB1CC #HANGUL SYLLABLE NIEUN OE +0xB3C3 0xB1D0 #HANGUL SYLLABLE NIEUN OE NIEUN +0xB3C4 0xB1D4 #HANGUL SYLLABLE NIEUN OE RIEUL +0xB3C5 0xB1DC #HANGUL SYLLABLE NIEUN OE MIEUM +0xB3C6 0xB1DD #HANGUL SYLLABLE NIEUN OE PIEUP +0xB3C7 0xB1DF #HANGUL SYLLABLE NIEUN OE SIOS +0xB3C8 0xB258 #HANGUL SYLLABLE NIEUN WI +0xB3C9 0xB25C #HANGUL SYLLABLE NIEUN WI NIEUN +0xB3CA 0xB260 #HANGUL SYLLABLE NIEUN WI RIEUL +0xB3CB 0xB268 #HANGUL SYLLABLE NIEUN WI MIEUM +0xB3CC 0xB269 #HANGUL SYLLABLE NIEUN WI PIEUP +0xB3CD 0xB26D #HANGUL SYLLABLE NIEUN WI IEUNG +0xB3CE 0xB2AC #HANGUL SYLLABLE NIEUN YI +0xB3CF 0xB2B0 #HANGUL SYLLABLE NIEUN YI NIEUN +0xB3D0 0xB2B4 #HANGUL SYLLABLE NIEUN YI RIEUL +0xB3D1 0xB2BC #HANGUL SYLLABLE NIEUN YI MIEUM +0xB3D2 0xB2C1 #HANGUL SYLLABLE NIEUN YI IEUNG +0xB3D3 0xB194 #HANGUL SYLLABLE NIEUN WA +0xB3D4 0xB198 #HANGUL SYLLABLE NIEUN WA NIEUN +0xB3D5 0xB19C #HANGUL SYLLABLE NIEUN WA RIEUL +0xB3D6 0xB1A7 #HANGUL SYLLABLE NIEUN WA SIOS +0xB3D7 0xB1A8 #HANGUL SYLLABLE NIEUN WA SSANGSIOS +0xB3D8 0xB220 #HANGUL SYLLABLE NIEUN WEO +0xB3D9 0xB228 #HANGUL SYLLABLE NIEUN WEO RIEUL +0xB3DA 0xB233 #HANGUL SYLLABLE NIEUN WEO SIOS +0xB3DB 0xB234 #HANGUL SYLLABLE NIEUN WEO SSANGSIOS +0xB3DC 0xB1B0 #HANGUL SYLLABLE NIEUN WAE +0xB3DD 0xB23C #HANGUL SYLLABLE NIEUN WE +0xB3DE 0xB2E4 #HANGUL SYLLABLE TIKEUT A +0xB3DF 0xB2E5 #HANGUL SYLLABLE TIKEUT A KIYEOK +0xB3E0 0xB2E8 #HANGUL SYLLABLE TIKEUT A NIEUN +0xB3E1 0xB2EB #HANGUL SYLLABLE TIKEUT A TIKEUT +0xB3E2 0xB2EC #HANGUL SYLLABLE TIKEUT A RIEUL +0xB3E3 0xB2ED #HANGUL SYLLABLE TIKEUT A RIEULKIYEOK +0xB3E4 0xB2EE #HANGUL SYLLABLE TIKEUT A RIEULMIEUM +0xB3E5 0xB2EF #HANGUL SYLLABLE TIKEUT A RIEULPIEUP +0xB3E6 0xB2F2 #HANGUL SYLLABLE TIKEUT A RIEULPHIEUPH +0xB3E7 0xB2F3 #HANGUL SYLLABLE TIKEUT A RIEULHIEUH +0xB3E8 0xB2F4 #HANGUL SYLLABLE TIKEUT A MIEUM +0xB3E9 0xB2F5 #HANGUL SYLLABLE TIKEUT A PIEUP +0xB3EA 0xB2F7 #HANGUL SYLLABLE TIKEUT A SIOS +0xB3EB 0xB2F9 #HANGUL SYLLABLE TIKEUT A IEUNG +0xB3EC 0xB2FA #HANGUL SYLLABLE TIKEUT A CIEUC +0xB3ED 0xB2FB #HANGUL SYLLABLE TIKEUT A CHIEUCH +0xB3EE 0xB2FE #HANGUL SYLLABLE TIKEUT A PHIEUPH +0xB3EF 0xB2FF #HANGUL SYLLABLE TIKEUT A HIEUH +0xB3F0 0xB2E6 #HANGUL SYLLABLE TIKEUT A SSANGKIYEOK +0xB3F1 0xB2F8 #HANGUL SYLLABLE TIKEUT A SSANGSIOS +0xB3F2 0xB31C #HANGUL SYLLABLE TIKEUT YA +0xB3F3 0xB354 #HANGUL SYLLABLE TIKEUT EO +0xB3F4 0xB355 #HANGUL SYLLABLE TIKEUT EO KIYEOK +0xB3F5 0xB358 #HANGUL SYLLABLE TIKEUT EO NIEUN +0xB3F6 0xB35B #HANGUL SYLLABLE TIKEUT EO TIKEUT +0xB3F7 0xB35C #HANGUL SYLLABLE TIKEUT EO RIEUL +0xB3F8 0xB35E #HANGUL SYLLABLE TIKEUT EO RIEULMIEUM +0xB3F9 0xB35F #HANGUL SYLLABLE TIKEUT EO RIEULPIEUP +0xB3FA 0xB364 #HANGUL SYLLABLE TIKEUT EO MIEUM +0xB3FB 0xB365 #HANGUL SYLLABLE TIKEUT EO PIEUP +0xB3FC 0xB367 #HANGUL SYLLABLE TIKEUT EO SIOS +0xB3FD 0xB369 #HANGUL SYLLABLE TIKEUT EO IEUNG +0xB3FE 0xB36B #HANGUL SYLLABLE TIKEUT EO CHIEUCH +0xB441 0xC453 #HANGUL SYLLABLE SSANGSIOS YO RIEULPIEUP +0xB442 0xC454 #HANGUL SYLLABLE SSANGSIOS YO RIEULSIOS +0xB443 0xC455 #HANGUL SYLLABLE SSANGSIOS YO RIEULTHIEUTH +0xB444 0xC456 #HANGUL SYLLABLE SSANGSIOS YO RIEULPHIEUPH +0xB445 0xC457 #HANGUL SYLLABLE SSANGSIOS YO RIEULHIEUH +0xB446 0xC459 #HANGUL SYLLABLE SSANGSIOS YO PIEUP +0xB447 0xC45A #HANGUL SYLLABLE SSANGSIOS YO PIEUPSIOS +0xB448 0xC45B #HANGUL SYLLABLE SSANGSIOS YO SIOS +0xB449 0xC45E #HANGUL SYLLABLE SSANGSIOS YO CIEUC +0xB44A 0xC45F #HANGUL SYLLABLE SSANGSIOS YO CHIEUCH +0xB44B 0xC460 #HANGUL SYLLABLE SSANGSIOS YO KHIEUKH +0xB44C 0xC461 #HANGUL SYLLABLE SSANGSIOS YO THIEUTH +0xB44D 0xC462 #HANGUL SYLLABLE SSANGSIOS YO PHIEUPH +0xB44E 0xC463 #HANGUL SYLLABLE SSANGSIOS YO HIEUH +0xB44F 0xC44A #HANGUL SYLLABLE SSANGSIOS YO SSANGKIYEOK +0xB450 0xC45C #HANGUL SYLLABLE SSANGSIOS YO SSANGSIOS +0xB451 0xC467 #HANGUL SYLLABLE SSANGSIOS U KIYEOKSIOS +0xB452 0xC469 #HANGUL SYLLABLE SSANGSIOS U NIEUNCIEUC +0xB453 0xC46A #HANGUL SYLLABLE SSANGSIOS U NIEUNHIEUH +0xB454 0xC46B #HANGUL SYLLABLE SSANGSIOS U TIKEUT +0xB455 0xC46D #HANGUL SYLLABLE SSANGSIOS U RIEULKIYEOK +0xB456 0xC46E #HANGUL SYLLABLE SSANGSIOS U RIEULMIEUM +0xB457 0xC46F #HANGUL SYLLABLE SSANGSIOS U RIEULPIEUP +0xB458 0xC470 #HANGUL SYLLABLE SSANGSIOS U RIEULSIOS +0xB459 0xC471 #HANGUL SYLLABLE SSANGSIOS U RIEULTHIEUTH +0xB45A 0xC472 #HANGUL SYLLABLE SSANGSIOS U RIEULPHIEUPH +0xB461 0xC473 #HANGUL SYLLABLE SSANGSIOS U RIEULHIEUH +0xB462 0xC476 #HANGUL SYLLABLE SSANGSIOS U PIEUPSIOS +0xB463 0xC477 #HANGUL SYLLABLE SSANGSIOS U SIOS +0xB464 0xC47A #HANGUL SYLLABLE SSANGSIOS U CIEUC +0xB465 0xC47B #HANGUL SYLLABLE SSANGSIOS U CHIEUCH +0xB466 0xC47C #HANGUL SYLLABLE SSANGSIOS U KHIEUKH +0xB467 0xC47D #HANGUL SYLLABLE SSANGSIOS U THIEUTH +0xB468 0xC47E #HANGUL SYLLABLE SSANGSIOS U PHIEUPH +0xB469 0xC47F #HANGUL SYLLABLE SSANGSIOS U HIEUH +0xB46A 0xC466 #HANGUL SYLLABLE SSANGSIOS U SSANGKIYEOK +0xB46B 0xC478 #HANGUL SYLLABLE SSANGSIOS U SSANGSIOS +0xB46C 0xC4D5 #HANGUL SYLLABLE SSANGSIOS YU KIYEOK +0xB46D 0xC4D7 #HANGUL SYLLABLE SSANGSIOS YU KIYEOKSIOS +0xB46E 0xC4D9 #HANGUL SYLLABLE SSANGSIOS YU NIEUNCIEUC +0xB46F 0xC4DA #HANGUL SYLLABLE SSANGSIOS YU NIEUNHIEUH +0xB470 0xC4DB #HANGUL SYLLABLE SSANGSIOS YU TIKEUT +0xB471 0xC4DC #HANGUL SYLLABLE SSANGSIOS YU RIEUL +0xB472 0xC4DD #HANGUL SYLLABLE SSANGSIOS YU RIEULKIYEOK +0xB473 0xC4DE #HANGUL SYLLABLE SSANGSIOS YU RIEULMIEUM +0xB474 0xC4DF #HANGUL SYLLABLE SSANGSIOS YU RIEULPIEUP +0xB475 0xC4E0 #HANGUL SYLLABLE SSANGSIOS YU RIEULSIOS +0xB476 0xC4E1 #HANGUL SYLLABLE SSANGSIOS YU RIEULTHIEUTH +0xB477 0xC4E2 #HANGUL SYLLABLE SSANGSIOS YU RIEULPHIEUPH +0xB478 0xC4E3 #HANGUL SYLLABLE SSANGSIOS YU RIEULHIEUH +0xB479 0xC4E4 #HANGUL SYLLABLE SSANGSIOS YU MIEUM +0xB47A 0xC4E5 #HANGUL SYLLABLE SSANGSIOS YU PIEUP +0xB481 0xC4E6 #HANGUL SYLLABLE SSANGSIOS YU PIEUPSIOS +0xB482 0xC4EA #HANGUL SYLLABLE SSANGSIOS YU CIEUC +0xB483 0xC4EB #HANGUL SYLLABLE SSANGSIOS YU CHIEUCH +0xB484 0xC4EC #HANGUL SYLLABLE SSANGSIOS YU KHIEUKH +0xB485 0xC4ED #HANGUL SYLLABLE SSANGSIOS YU THIEUTH +0xB486 0xC4EE #HANGUL SYLLABLE SSANGSIOS YU PHIEUPH +0xB487 0xC4EF #HANGUL SYLLABLE SSANGSIOS YU HIEUH +0xB488 0xC4D6 #HANGUL SYLLABLE SSANGSIOS YU SSANGKIYEOK +0xB489 0xC4E8 #HANGUL SYLLABLE SSANGSIOS YU SSANGSIOS +0xB48A 0xC4F3 #HANGUL SYLLABLE SSANGSIOS EU KIYEOKSIOS +0xB48B 0xC4F5 #HANGUL SYLLABLE SSANGSIOS EU NIEUNCIEUC +0xB48C 0xC4F6 #HANGUL SYLLABLE SSANGSIOS EU NIEUNHIEUH +0xB48D 0xC4F7 #HANGUL SYLLABLE SSANGSIOS EU TIKEUT +0xB48E 0xC4F9 #HANGUL SYLLABLE SSANGSIOS EU RIEULKIYEOK +0xB48F 0xC4FB #HANGUL SYLLABLE SSANGSIOS EU RIEULPIEUP +0xB490 0xC4FC #HANGUL SYLLABLE SSANGSIOS EU RIEULSIOS +0xB491 0xC4FD #HANGUL SYLLABLE SSANGSIOS EU RIEULTHIEUTH +0xB492 0xC4FE #HANGUL SYLLABLE SSANGSIOS EU RIEULPHIEUPH +0xB493 0xC502 #HANGUL SYLLABLE SSANGSIOS EU PIEUPSIOS +0xB494 0xC503 #HANGUL SYLLABLE SSANGSIOS EU SIOS +0xB495 0xC506 #HANGUL SYLLABLE SSANGSIOS EU CIEUC +0xB496 0xC507 #HANGUL SYLLABLE SSANGSIOS EU CHIEUCH +0xB497 0xC508 #HANGUL SYLLABLE SSANGSIOS EU KHIEUKH +0xB498 0xC509 #HANGUL SYLLABLE SSANGSIOS EU THIEUTH +0xB499 0xC50A #HANGUL SYLLABLE SSANGSIOS EU PHIEUPH +0xB49A 0xC50B #HANGUL SYLLABLE SSANGSIOS EU HIEUH +0xB49B 0xC4F2 #HANGUL SYLLABLE SSANGSIOS EU SSANGKIYEOK +0xB49C 0xC504 #HANGUL SYLLABLE SSANGSIOS EU SSANGSIOS +0xB49D 0xC52B #HANGUL SYLLABLE SSANGSIOS I KIYEOKSIOS +0xB49E 0xC52D #HANGUL SYLLABLE SSANGSIOS I NIEUNCIEUC +0xB49F 0xC52E #HANGUL SYLLABLE SSANGSIOS I NIEUNHIEUH +0xB4A0 0xC531 #HANGUL SYLLABLE SSANGSIOS I RIEULKIYEOK +0xB4A1 0xB36E #HANGUL SYLLABLE TIKEUT EO PHIEUPH +0xB4A2 0xB36F #HANGUL SYLLABLE TIKEUT EO HIEUH +0xB4A3 0xB356 #HANGUL SYLLABLE TIKEUT EO SSANGKIYEOK +0xB4A4 0xB368 #HANGUL SYLLABLE TIKEUT EO SSANGSIOS +0xB4A5 0xB38C #HANGUL SYLLABLE TIKEUT YEO +0xB4A6 0xB390 #HANGUL SYLLABLE TIKEUT YEO NIEUN +0xB4A7 0xB394 #HANGUL SYLLABLE TIKEUT YEO RIEUL +0xB4A8 0xB3A1 #HANGUL SYLLABLE TIKEUT YEO IEUNG +0xB4A9 0xB3A0 #HANGUL SYLLABLE TIKEUT YEO SSANGSIOS +0xB4AA 0xB3C4 #HANGUL SYLLABLE TIKEUT O +0xB4AB 0xB3C5 #HANGUL SYLLABLE TIKEUT O KIYEOK +0xB4AC 0xB3C8 #HANGUL SYLLABLE TIKEUT O NIEUN +0xB4AD 0xB3CB #HANGUL SYLLABLE TIKEUT O TIKEUT +0xB4AE 0xB3CC #HANGUL SYLLABLE TIKEUT O RIEUL +0xB4AF 0xB3CE #HANGUL SYLLABLE TIKEUT O RIEULMIEUM +0xB4B0 0xB3D0 #HANGUL SYLLABLE TIKEUT O RIEULSIOS +0xB4B1 0xB3D4 #HANGUL SYLLABLE TIKEUT O MIEUM +0xB4B2 0xB3D5 #HANGUL SYLLABLE TIKEUT O PIEUP +0xB4B3 0xB3D7 #HANGUL SYLLABLE TIKEUT O SIOS +0xB4B4 0xB3D9 #HANGUL SYLLABLE TIKEUT O IEUNG +0xB4B5 0xB3DB #HANGUL SYLLABLE TIKEUT O CHIEUCH +0xB4B6 0xB3DD #HANGUL SYLLABLE TIKEUT O THIEUTH +0xB4B7 0xB434 #HANGUL SYLLABLE TIKEUT YO +0xB4B8 0xB450 #HANGUL SYLLABLE TIKEUT U +0xB4B9 0xB451 #HANGUL SYLLABLE TIKEUT U KIYEOK +0xB4BA 0xB454 #HANGUL SYLLABLE TIKEUT U NIEUN +0xB4BB 0xB458 #HANGUL SYLLABLE TIKEUT U RIEUL +0xB4BC 0xB460 #HANGUL SYLLABLE TIKEUT U MIEUM +0xB4BD 0xB461 #HANGUL SYLLABLE TIKEUT U PIEUP +0xB4BE 0xB463 #HANGUL SYLLABLE TIKEUT U SIOS +0xB4BF 0xB465 #HANGUL SYLLABLE TIKEUT U IEUNG +0xB4C0 0xB4C0 #HANGUL SYLLABLE TIKEUT YU +0xB4C1 0xB4C4 #HANGUL SYLLABLE TIKEUT YU NIEUN +0xB4C2 0xB4C8 #HANGUL SYLLABLE TIKEUT YU RIEUL +0xB4C3 0xB4D0 #HANGUL SYLLABLE TIKEUT YU MIEUM +0xB4C4 0xB4D5 #HANGUL SYLLABLE TIKEUT YU IEUNG +0xB4C5 0xB4DC #HANGUL SYLLABLE TIKEUT EU +0xB4C6 0xB4DD #HANGUL SYLLABLE TIKEUT EU KIYEOK +0xB4C7 0xB4E0 #HANGUL SYLLABLE TIKEUT EU NIEUN +0xB4C8 0xB4E3 #HANGUL SYLLABLE TIKEUT EU TIKEUT +0xB4C9 0xB4E4 #HANGUL SYLLABLE TIKEUT EU RIEUL +0xB4CA 0xB4E5 #HANGUL SYLLABLE TIKEUT EU RIEULKIYEOK +0xB4CB 0xB4E6 #HANGUL SYLLABLE TIKEUT EU RIEULMIEUM +0xB4CC 0xB4E7 #HANGUL SYLLABLE TIKEUT EU RIEULPIEUP +0xB4CD 0xB4EC #HANGUL SYLLABLE TIKEUT EU MIEUM +0xB4CE 0xB4ED #HANGUL SYLLABLE TIKEUT EU PIEUP +0xB4CF 0xB4EF #HANGUL SYLLABLE TIKEUT EU SIOS +0xB4D0 0xB4F1 #HANGUL SYLLABLE TIKEUT EU IEUNG +0xB4D1 0xB514 #HANGUL SYLLABLE TIKEUT I +0xB4D2 0xB515 #HANGUL SYLLABLE TIKEUT I KIYEOK +0xB4D3 0xB518 #HANGUL SYLLABLE TIKEUT I NIEUN +0xB4D4 0xB51B #HANGUL SYLLABLE TIKEUT I TIKEUT +0xB4D5 0xB51C #HANGUL SYLLABLE TIKEUT I RIEUL +0xB4D6 0xB524 #HANGUL SYLLABLE TIKEUT I MIEUM +0xB4D7 0xB525 #HANGUL SYLLABLE TIKEUT I PIEUP +0xB4D8 0xB527 #HANGUL SYLLABLE TIKEUT I SIOS +0xB4D9 0xB529 #HANGUL SYLLABLE TIKEUT I IEUNG +0xB4DA 0xB52A #HANGUL SYLLABLE TIKEUT I CIEUC +0xB4DB 0xB52E #HANGUL SYLLABLE TIKEUT I PHIEUPH +0xB4DC 0xB528 #HANGUL SYLLABLE TIKEUT I SSANGSIOS +0xB4DD 0xB300 #HANGUL SYLLABLE TIKEUT AE +0xB4DE 0xB301 #HANGUL SYLLABLE TIKEUT AE KIYEOK +0xB4DF 0xB304 #HANGUL SYLLABLE TIKEUT AE NIEUN +0xB4E0 0xB308 #HANGUL SYLLABLE TIKEUT AE RIEUL +0xB4E1 0xB310 #HANGUL SYLLABLE TIKEUT AE MIEUM +0xB4E2 0xB311 #HANGUL SYLLABLE TIKEUT AE PIEUP +0xB4E3 0xB313 #HANGUL SYLLABLE TIKEUT AE SIOS +0xB4E4 0xB315 #HANGUL SYLLABLE TIKEUT AE IEUNG +0xB4E5 0xB314 #HANGUL SYLLABLE TIKEUT AE SSANGSIOS +0xB4E6 0xB338 #HANGUL SYLLABLE TIKEUT YAE +0xB4E7 0xB370 #HANGUL SYLLABLE TIKEUT E +0xB4E8 0xB371 #HANGUL SYLLABLE TIKEUT E KIYEOK +0xB4E9 0xB374 #HANGUL SYLLABLE TIKEUT E NIEUN +0xB4EA 0xB377 #HANGUL SYLLABLE TIKEUT E TIKEUT +0xB4EB 0xB378 #HANGUL SYLLABLE TIKEUT E RIEUL +0xB4EC 0xB380 #HANGUL SYLLABLE TIKEUT E MIEUM +0xB4ED 0xB381 #HANGUL SYLLABLE TIKEUT E PIEUP +0xB4EE 0xB383 #HANGUL SYLLABLE TIKEUT E SIOS +0xB4EF 0xB385 #HANGUL SYLLABLE TIKEUT E IEUNG +0xB4F0 0xB384 #HANGUL SYLLABLE TIKEUT E SSANGSIOS +0xB4F1 0xB3A8 #HANGUL SYLLABLE TIKEUT YE +0xB4F2 0xB3AC #HANGUL SYLLABLE TIKEUT YE NIEUN +0xB4F3 0xB418 #HANGUL SYLLABLE TIKEUT OE +0xB4F4 0xB41C #HANGUL SYLLABLE TIKEUT OE NIEUN +0xB4F5 0xB420 #HANGUL SYLLABLE TIKEUT OE RIEUL +0xB4F6 0xB428 #HANGUL SYLLABLE TIKEUT OE MIEUM +0xB4F7 0xB429 #HANGUL SYLLABLE TIKEUT OE PIEUP +0xB4F8 0xB42B #HANGUL SYLLABLE TIKEUT OE SIOS +0xB4F9 0xB42D #HANGUL SYLLABLE TIKEUT OE IEUNG +0xB4FA 0xB42C #HANGUL SYLLABLE TIKEUT OE SSANGSIOS +0xB4FB 0xB4A4 #HANGUL SYLLABLE TIKEUT WI +0xB4FC 0xB4A5 #HANGUL SYLLABLE TIKEUT WI KIYEOK +0xB4FD 0xB4A8 #HANGUL SYLLABLE TIKEUT WI NIEUN +0xB4FE 0xB4AC #HANGUL SYLLABLE TIKEUT WI RIEUL +0xB541 0xC532 #HANGUL SYLLABLE SSANGSIOS I RIEULMIEUM +0xB542 0xC533 #HANGUL SYLLABLE SSANGSIOS I RIEULPIEUP +0xB543 0xC534 #HANGUL SYLLABLE SSANGSIOS I RIEULSIOS +0xB544 0xC535 #HANGUL SYLLABLE SSANGSIOS I RIEULTHIEUTH +0xB545 0xC536 #HANGUL SYLLABLE SSANGSIOS I RIEULPHIEUPH +0xB546 0xC537 #HANGUL SYLLABLE SSANGSIOS I RIEULHIEUH +0xB547 0xC53A #HANGUL SYLLABLE SSANGSIOS I PIEUPSIOS +0xB548 0xC53E #HANGUL SYLLABLE SSANGSIOS I CIEUC +0xB549 0xC53F #HANGUL SYLLABLE SSANGSIOS I CHIEUCH +0xB54A 0xC540 #HANGUL SYLLABLE SSANGSIOS I KHIEUKH +0xB54B 0xC541 #HANGUL SYLLABLE SSANGSIOS I THIEUTH +0xB54C 0xC542 #HANGUL SYLLABLE SSANGSIOS I PHIEUPH +0xB54D 0xC543 #HANGUL SYLLABLE SSANGSIOS I HIEUH +0xB54E 0xC52A #HANGUL SYLLABLE SSANGSIOS I SSANGKIYEOK +0xB54F 0xC317 #HANGUL SYLLABLE SSANGSIOS AE KIYEOKSIOS +0xB550 0xC319 #HANGUL SYLLABLE SSANGSIOS AE NIEUNCIEUC +0xB551 0xC31A #HANGUL SYLLABLE SSANGSIOS AE NIEUNHIEUH +0xB552 0xC31B #HANGUL SYLLABLE SSANGSIOS AE TIKEUT +0xB553 0xC31D #HANGUL SYLLABLE SSANGSIOS AE RIEULKIYEOK +0xB554 0xC31E #HANGUL SYLLABLE SSANGSIOS AE RIEULMIEUM +0xB555 0xC31F #HANGUL SYLLABLE SSANGSIOS AE RIEULPIEUP +0xB556 0xC320 #HANGUL SYLLABLE SSANGSIOS AE RIEULSIOS +0xB557 0xC321 #HANGUL SYLLABLE SSANGSIOS AE RIEULTHIEUTH +0xB558 0xC322 #HANGUL SYLLABLE SSANGSIOS AE RIEULPHIEUPH +0xB559 0xC323 #HANGUL SYLLABLE SSANGSIOS AE RIEULHIEUH +0xB55A 0xC326 #HANGUL SYLLABLE SSANGSIOS AE PIEUPSIOS +0xB561 0xC32A #HANGUL SYLLABLE SSANGSIOS AE CIEUC +0xB562 0xC32B #HANGUL SYLLABLE SSANGSIOS AE CHIEUCH +0xB563 0xC32C #HANGUL SYLLABLE SSANGSIOS AE KHIEUKH +0xB564 0xC32D #HANGUL SYLLABLE SSANGSIOS AE THIEUTH +0xB565 0xC32E #HANGUL SYLLABLE SSANGSIOS AE PHIEUPH +0xB566 0xC32F #HANGUL SYLLABLE SSANGSIOS AE HIEUH +0xB567 0xC316 #HANGUL SYLLABLE SSANGSIOS AE SSANGKIYEOK +0xB568 0xC34D #HANGUL SYLLABLE SSANGSIOS YAE KIYEOK +0xB569 0xC34F #HANGUL SYLLABLE SSANGSIOS YAE KIYEOKSIOS +0xB56A 0xC350 #HANGUL SYLLABLE SSANGSIOS YAE NIEUN +0xB56B 0xC351 #HANGUL SYLLABLE SSANGSIOS YAE NIEUNCIEUC +0xB56C 0xC352 #HANGUL SYLLABLE SSANGSIOS YAE NIEUNHIEUH +0xB56D 0xC353 #HANGUL SYLLABLE SSANGSIOS YAE TIKEUT +0xB56E 0xC354 #HANGUL SYLLABLE SSANGSIOS YAE RIEUL +0xB56F 0xC355 #HANGUL SYLLABLE SSANGSIOS YAE RIEULKIYEOK +0xB570 0xC356 #HANGUL SYLLABLE SSANGSIOS YAE RIEULMIEUM +0xB571 0xC357 #HANGUL SYLLABLE SSANGSIOS YAE RIEULPIEUP +0xB572 0xC358 #HANGUL SYLLABLE SSANGSIOS YAE RIEULSIOS +0xB573 0xC359 #HANGUL SYLLABLE SSANGSIOS YAE RIEULTHIEUTH +0xB574 0xC35A #HANGUL SYLLABLE SSANGSIOS YAE RIEULPHIEUPH +0xB575 0xC35B #HANGUL SYLLABLE SSANGSIOS YAE RIEULHIEUH +0xB576 0xC35C #HANGUL SYLLABLE SSANGSIOS YAE MIEUM +0xB577 0xC35D #HANGUL SYLLABLE SSANGSIOS YAE PIEUP +0xB578 0xC35E #HANGUL SYLLABLE SSANGSIOS YAE PIEUPSIOS +0xB579 0xC35F #HANGUL SYLLABLE SSANGSIOS YAE SIOS +0xB57A 0xC361 #HANGUL SYLLABLE SSANGSIOS YAE IEUNG +0xB581 0xC362 #HANGUL SYLLABLE SSANGSIOS YAE CIEUC +0xB582 0xC363 #HANGUL SYLLABLE SSANGSIOS YAE CHIEUCH +0xB583 0xC364 #HANGUL SYLLABLE SSANGSIOS YAE KHIEUKH +0xB584 0xC365 #HANGUL SYLLABLE SSANGSIOS YAE THIEUTH +0xB585 0xC366 #HANGUL SYLLABLE SSANGSIOS YAE PHIEUPH +0xB586 0xC367 #HANGUL SYLLABLE SSANGSIOS YAE HIEUH +0xB587 0xC34E #HANGUL SYLLABLE SSANGSIOS YAE SSANGKIYEOK +0xB588 0xC360 #HANGUL SYLLABLE SSANGSIOS YAE SSANGSIOS +0xB589 0xC387 #HANGUL SYLLABLE SSANGSIOS E KIYEOKSIOS +0xB58A 0xC389 #HANGUL SYLLABLE SSANGSIOS E NIEUNCIEUC +0xB58B 0xC38A #HANGUL SYLLABLE SSANGSIOS E NIEUNHIEUH +0xB58C 0xC38B #HANGUL SYLLABLE SSANGSIOS E TIKEUT +0xB58D 0xC38D #HANGUL SYLLABLE SSANGSIOS E RIEULKIYEOK +0xB58E 0xC38E #HANGUL SYLLABLE SSANGSIOS E RIEULMIEUM +0xB58F 0xC38F #HANGUL SYLLABLE SSANGSIOS E RIEULPIEUP +0xB590 0xC390 #HANGUL SYLLABLE SSANGSIOS E RIEULSIOS +0xB591 0xC391 #HANGUL SYLLABLE SSANGSIOS E RIEULTHIEUTH +0xB592 0xC392 #HANGUL SYLLABLE SSANGSIOS E RIEULPHIEUPH +0xB593 0xC393 #HANGUL SYLLABLE SSANGSIOS E RIEULHIEUH +0xB594 0xC396 #HANGUL SYLLABLE SSANGSIOS E PIEUPSIOS +0xB595 0xC397 #HANGUL SYLLABLE SSANGSIOS E SIOS +0xB596 0xC39A #HANGUL SYLLABLE SSANGSIOS E CIEUC +0xB597 0xC39B #HANGUL SYLLABLE SSANGSIOS E CHIEUCH +0xB598 0xC39C #HANGUL SYLLABLE SSANGSIOS E KHIEUKH +0xB599 0xC39D #HANGUL SYLLABLE SSANGSIOS E THIEUTH +0xB59A 0xC39E #HANGUL SYLLABLE SSANGSIOS E PHIEUPH +0xB59B 0xC39F #HANGUL SYLLABLE SSANGSIOS E HIEUH +0xB59C 0xC386 #HANGUL SYLLABLE SSANGSIOS E SSANGKIYEOK +0xB59D 0xC398 #HANGUL SYLLABLE SSANGSIOS E SSANGSIOS +0xB59E 0xC3BD #HANGUL SYLLABLE SSANGSIOS YE KIYEOK +0xB59F 0xC3BF #HANGUL SYLLABLE SSANGSIOS YE KIYEOKSIOS +0xB5A0 0xC3C1 #HANGUL SYLLABLE SSANGSIOS YE NIEUNCIEUC +0xB5A1 0xB4B4 #HANGUL SYLLABLE TIKEUT WI MIEUM +0xB5A2 0xB4B5 #HANGUL SYLLABLE TIKEUT WI PIEUP +0xB5A3 0xB4B7 #HANGUL SYLLABLE TIKEUT WI SIOS +0xB5A4 0xB4B9 #HANGUL SYLLABLE TIKEUT WI IEUNG +0xB5A5 0xB4F8 #HANGUL SYLLABLE TIKEUT YI +0xB5A6 0xB4FC #HANGUL SYLLABLE TIKEUT YI NIEUN +0xB5A7 0xB500 #HANGUL SYLLABLE TIKEUT YI RIEUL +0xB5A8 0xB509 #HANGUL SYLLABLE TIKEUT YI PIEUP +0xB5A9 0xB50D #HANGUL SYLLABLE TIKEUT YI IEUNG +0xB5AA 0xB3E0 #HANGUL SYLLABLE TIKEUT WA +0xB5AB 0xB3E4 #HANGUL SYLLABLE TIKEUT WA NIEUN +0xB5AC 0xB3E8 #HANGUL SYLLABLE TIKEUT WA RIEUL +0xB5AD 0xB46C #HANGUL SYLLABLE TIKEUT WEO +0xB5AE 0xB470 #HANGUL SYLLABLE TIKEUT WEO NIEUN +0xB5AF 0xB474 #HANGUL SYLLABLE TIKEUT WEO RIEUL +0xB5B0 0xB47C #HANGUL SYLLABLE TIKEUT WEO MIEUM +0xB5B1 0xB47F #HANGUL SYLLABLE TIKEUT WEO SIOS +0xB5B2 0xB480 #HANGUL SYLLABLE TIKEUT WEO SSANGSIOS +0xB5B3 0xB3FC #HANGUL SYLLABLE TIKEUT WAE +0xB5B4 0xB400 #HANGUL SYLLABLE TIKEUT WAE NIEUN +0xB5B5 0xB404 #HANGUL SYLLABLE TIKEUT WAE RIEUL +0xB5B6 0xB410 #HANGUL SYLLABLE TIKEUT WAE SSANGSIOS +0xB5B7 0xB488 #HANGUL SYLLABLE TIKEUT WE +0xB5B8 0xB49D #HANGUL SYLLABLE TIKEUT WE IEUNG +0xB5B9 0xB77C #HANGUL SYLLABLE RIEUL A +0xB5BA 0xB77D #HANGUL SYLLABLE RIEUL A KIYEOK +0xB5BB 0xB780 #HANGUL SYLLABLE RIEUL A NIEUN +0xB5BC 0xB784 #HANGUL SYLLABLE RIEUL A RIEUL +0xB5BD 0xB78C #HANGUL SYLLABLE RIEUL A MIEUM +0xB5BE 0xB78D #HANGUL SYLLABLE RIEUL A PIEUP +0xB5BF 0xB78F #HANGUL SYLLABLE RIEUL A SIOS +0xB5C0 0xB791 #HANGUL SYLLABLE RIEUL A IEUNG +0xB5C1 0xB792 #HANGUL SYLLABLE RIEUL A CIEUC +0xB5C2 0xB796 #HANGUL SYLLABLE RIEUL A PHIEUPH +0xB5C3 0xB797 #HANGUL SYLLABLE RIEUL A HIEUH +0xB5C4 0xB790 #HANGUL SYLLABLE RIEUL A SSANGSIOS +0xB5C5 0xB7B4 #HANGUL SYLLABLE RIEUL YA +0xB5C6 0xB7B5 #HANGUL SYLLABLE RIEUL YA KIYEOK +0xB5C7 0xB7B8 #HANGUL SYLLABLE RIEUL YA NIEUN +0xB5C8 0xB7BC #HANGUL SYLLABLE RIEUL YA RIEUL +0xB5C9 0xB7C4 #HANGUL SYLLABLE RIEUL YA MIEUM +0xB5CA 0xB7C5 #HANGUL SYLLABLE RIEUL YA PIEUP +0xB5CB 0xB7C7 #HANGUL SYLLABLE RIEUL YA SIOS +0xB5CC 0xB7C9 #HANGUL SYLLABLE RIEUL YA IEUNG +0xB5CD 0xB7EC #HANGUL SYLLABLE RIEUL EO +0xB5CE 0xB7ED #HANGUL SYLLABLE RIEUL EO KIYEOK +0xB5CF 0xB7F0 #HANGUL SYLLABLE RIEUL EO NIEUN +0xB5D0 0xB7F4 #HANGUL SYLLABLE RIEUL EO RIEUL +0xB5D1 0xB7FC #HANGUL SYLLABLE RIEUL EO MIEUM +0xB5D2 0xB7FD #HANGUL SYLLABLE RIEUL EO PIEUP +0xB5D3 0xB7FF #HANGUL SYLLABLE RIEUL EO SIOS +0xB5D4 0xB801 #HANGUL SYLLABLE RIEUL EO IEUNG +0xB5D5 0xB806 #HANGUL SYLLABLE RIEUL EO PHIEUPH +0xB5D6 0xB807 #HANGUL SYLLABLE RIEUL EO HIEUH +0xB5D7 0xB800 #HANGUL SYLLABLE RIEUL EO SSANGSIOS +0xB5D8 0xB824 #HANGUL SYLLABLE RIEUL YEO +0xB5D9 0xB825 #HANGUL SYLLABLE RIEUL YEO KIYEOK +0xB5DA 0xB828 #HANGUL SYLLABLE RIEUL YEO NIEUN +0xB5DB 0xB82C #HANGUL SYLLABLE RIEUL YEO RIEUL +0xB5DC 0xB834 #HANGUL SYLLABLE RIEUL YEO MIEUM +0xB5DD 0xB835 #HANGUL SYLLABLE RIEUL YEO PIEUP +0xB5DE 0xB837 #HANGUL SYLLABLE RIEUL YEO SIOS +0xB5DF 0xB839 #HANGUL SYLLABLE RIEUL YEO IEUNG +0xB5E0 0xB838 #HANGUL SYLLABLE RIEUL YEO SSANGSIOS +0xB5E1 0xB85C #HANGUL SYLLABLE RIEUL O +0xB5E2 0xB85D #HANGUL SYLLABLE RIEUL O KIYEOK +0xB5E3 0xB860 #HANGUL SYLLABLE RIEUL O NIEUN +0xB5E4 0xB864 #HANGUL SYLLABLE RIEUL O RIEUL +0xB5E5 0xB86C #HANGUL SYLLABLE RIEUL O MIEUM +0xB5E6 0xB86D #HANGUL SYLLABLE RIEUL O PIEUP +0xB5E7 0xB86F #HANGUL SYLLABLE RIEUL O SIOS +0xB5E8 0xB871 #HANGUL SYLLABLE RIEUL O IEUNG +0xB5E9 0xB876 #HANGUL SYLLABLE RIEUL O PHIEUPH +0xB5EA 0xB8CC #HANGUL SYLLABLE RIEUL YO +0xB5EB 0xB8D0 #HANGUL SYLLABLE RIEUL YO NIEUN +0xB5EC 0xB8D4 #HANGUL SYLLABLE RIEUL YO RIEUL +0xB5ED 0xB8DC #HANGUL SYLLABLE RIEUL YO MIEUM +0xB5EE 0xB8DD #HANGUL SYLLABLE RIEUL YO PIEUP +0xB5EF 0xB8DF #HANGUL SYLLABLE RIEUL YO SIOS +0xB5F0 0xB8E1 #HANGUL SYLLABLE RIEUL YO IEUNG +0xB5F1 0xB8E8 #HANGUL SYLLABLE RIEUL U +0xB5F2 0xB8E9 #HANGUL SYLLABLE RIEUL U KIYEOK +0xB5F3 0xB8EC #HANGUL SYLLABLE RIEUL U NIEUN +0xB5F4 0xB8F0 #HANGUL SYLLABLE RIEUL U RIEUL +0xB5F5 0xB8F8 #HANGUL SYLLABLE RIEUL U MIEUM +0xB5F6 0xB8F9 #HANGUL SYLLABLE RIEUL U PIEUP +0xB5F7 0xB8FB #HANGUL SYLLABLE RIEUL U SIOS +0xB5F8 0xB8FD #HANGUL SYLLABLE RIEUL U IEUNG +0xB5F9 0xB958 #HANGUL SYLLABLE RIEUL YU +0xB5FA 0xB959 #HANGUL SYLLABLE RIEUL YU KIYEOK +0xB5FB 0xB95C #HANGUL SYLLABLE RIEUL YU NIEUN +0xB5FC 0xB960 #HANGUL SYLLABLE RIEUL YU RIEUL +0xB5FD 0xB968 #HANGUL SYLLABLE RIEUL YU MIEUM +0xB5FE 0xB969 #HANGUL SYLLABLE RIEUL YU PIEUP +0xB641 0xC3C2 #HANGUL SYLLABLE SSANGSIOS YE NIEUNHIEUH +0xB642 0xC3C3 #HANGUL SYLLABLE SSANGSIOS YE TIKEUT +0xB643 0xC3C4 #HANGUL SYLLABLE SSANGSIOS YE RIEUL +0xB644 0xC3C5 #HANGUL SYLLABLE SSANGSIOS YE RIEULKIYEOK +0xB645 0xC3C6 #HANGUL SYLLABLE SSANGSIOS YE RIEULMIEUM +0xB646 0xC3C7 #HANGUL SYLLABLE SSANGSIOS YE RIEULPIEUP +0xB647 0xC3C8 #HANGUL SYLLABLE SSANGSIOS YE RIEULSIOS +0xB648 0xC3C9 #HANGUL SYLLABLE SSANGSIOS YE RIEULTHIEUTH +0xB649 0xC3CA #HANGUL SYLLABLE SSANGSIOS YE RIEULPHIEUPH +0xB64A 0xC3CB #HANGUL SYLLABLE SSANGSIOS YE RIEULHIEUH +0xB64B 0xC3CC #HANGUL SYLLABLE SSANGSIOS YE MIEUM +0xB64C 0xC3CD #HANGUL SYLLABLE SSANGSIOS YE PIEUP +0xB64D 0xC3CE #HANGUL SYLLABLE SSANGSIOS YE PIEUPSIOS +0xB64E 0xC3CF #HANGUL SYLLABLE SSANGSIOS YE SIOS +0xB64F 0xC3D1 #HANGUL SYLLABLE SSANGSIOS YE IEUNG +0xB650 0xC3D2 #HANGUL SYLLABLE SSANGSIOS YE CIEUC +0xB651 0xC3D3 #HANGUL SYLLABLE SSANGSIOS YE CHIEUCH +0xB652 0xC3D4 #HANGUL SYLLABLE SSANGSIOS YE KHIEUKH +0xB653 0xC3D5 #HANGUL SYLLABLE SSANGSIOS YE THIEUTH +0xB654 0xC3D6 #HANGUL SYLLABLE SSANGSIOS YE PHIEUPH +0xB655 0xC3D7 #HANGUL SYLLABLE SSANGSIOS YE HIEUH +0xB656 0xC3BE #HANGUL SYLLABLE SSANGSIOS YE SSANGKIYEOK +0xB657 0xC3D0 #HANGUL SYLLABLE SSANGSIOS YE SSANGSIOS +0xB658 0xC42F #HANGUL SYLLABLE SSANGSIOS OE KIYEOKSIOS +0xB659 0xC431 #HANGUL SYLLABLE SSANGSIOS OE NIEUNCIEUC +0xB65A 0xC432 #HANGUL SYLLABLE SSANGSIOS OE NIEUNHIEUH +0xB661 0xC433 #HANGUL SYLLABLE SSANGSIOS OE TIKEUT +0xB662 0xC435 #HANGUL SYLLABLE SSANGSIOS OE RIEULKIYEOK +0xB663 0xC436 #HANGUL SYLLABLE SSANGSIOS OE RIEULMIEUM +0xB664 0xC437 #HANGUL SYLLABLE SSANGSIOS OE RIEULPIEUP +0xB665 0xC438 #HANGUL SYLLABLE SSANGSIOS OE RIEULSIOS +0xB666 0xC439 #HANGUL SYLLABLE SSANGSIOS OE RIEULTHIEUTH +0xB667 0xC43A #HANGUL SYLLABLE SSANGSIOS OE RIEULPHIEUPH +0xB668 0xC43B #HANGUL SYLLABLE SSANGSIOS OE RIEULHIEUH +0xB669 0xC43E #HANGUL SYLLABLE SSANGSIOS OE PIEUPSIOS +0xB66A 0xC43F #HANGUL SYLLABLE SSANGSIOS OE SIOS +0xB66B 0xC441 #HANGUL SYLLABLE SSANGSIOS OE IEUNG +0xB66C 0xC442 #HANGUL SYLLABLE SSANGSIOS OE CIEUC +0xB66D 0xC443 #HANGUL SYLLABLE SSANGSIOS OE CHIEUCH +0xB66E 0xC444 #HANGUL SYLLABLE SSANGSIOS OE KHIEUKH +0xB66F 0xC445 #HANGUL SYLLABLE SSANGSIOS OE THIEUTH +0xB670 0xC446 #HANGUL SYLLABLE SSANGSIOS OE PHIEUPH +0xB671 0xC447 #HANGUL SYLLABLE SSANGSIOS OE HIEUH +0xB672 0xC42E #HANGUL SYLLABLE SSANGSIOS OE SSANGKIYEOK +0xB673 0xC4B9 #HANGUL SYLLABLE SSANGSIOS WI KIYEOK +0xB674 0xC4BB #HANGUL SYLLABLE SSANGSIOS WI KIYEOKSIOS +0xB675 0xC4BD #HANGUL SYLLABLE SSANGSIOS WI NIEUNCIEUC +0xB676 0xC4BE #HANGUL SYLLABLE SSANGSIOS WI NIEUNHIEUH +0xB677 0xC4BF #HANGUL SYLLABLE SSANGSIOS WI TIKEUT +0xB678 0xC4C0 #HANGUL SYLLABLE SSANGSIOS WI RIEUL +0xB679 0xC4C1 #HANGUL SYLLABLE SSANGSIOS WI RIEULKIYEOK +0xB67A 0xC4C2 #HANGUL SYLLABLE SSANGSIOS WI RIEULMIEUM +0xB681 0xC4C3 #HANGUL SYLLABLE SSANGSIOS WI RIEULPIEUP +0xB682 0xC4C4 #HANGUL SYLLABLE SSANGSIOS WI RIEULSIOS +0xB683 0xC4C5 #HANGUL SYLLABLE SSANGSIOS WI RIEULTHIEUTH +0xB684 0xC4C6 #HANGUL SYLLABLE SSANGSIOS WI RIEULPHIEUPH +0xB685 0xC4C7 #HANGUL SYLLABLE SSANGSIOS WI RIEULHIEUH +0xB686 0xC4C8 #HANGUL SYLLABLE SSANGSIOS WI MIEUM +0xB687 0xC4C9 #HANGUL SYLLABLE SSANGSIOS WI PIEUP +0xB688 0xC4CA #HANGUL SYLLABLE SSANGSIOS WI PIEUPSIOS +0xB689 0xC4CB #HANGUL SYLLABLE SSANGSIOS WI SIOS +0xB68A 0xC4CD #HANGUL SYLLABLE SSANGSIOS WI IEUNG +0xB68B 0xC4CE #HANGUL SYLLABLE SSANGSIOS WI CIEUC +0xB68C 0xC4CF #HANGUL SYLLABLE SSANGSIOS WI CHIEUCH +0xB68D 0xC4D0 #HANGUL SYLLABLE SSANGSIOS WI KHIEUKH +0xB68E 0xC4D1 #HANGUL SYLLABLE SSANGSIOS WI THIEUTH +0xB68F 0xC4D2 #HANGUL SYLLABLE SSANGSIOS WI PHIEUPH +0xB690 0xC4D3 #HANGUL SYLLABLE SSANGSIOS WI HIEUH +0xB691 0xC4BA #HANGUL SYLLABLE SSANGSIOS WI SSANGKIYEOK +0xB692 0xC4CC #HANGUL SYLLABLE SSANGSIOS WI SSANGSIOS +0xB693 0xC50D #HANGUL SYLLABLE SSANGSIOS YI KIYEOK +0xB694 0xC50F #HANGUL SYLLABLE SSANGSIOS YI KIYEOKSIOS +0xB695 0xC511 #HANGUL SYLLABLE SSANGSIOS YI NIEUNCIEUC +0xB696 0xC512 #HANGUL SYLLABLE SSANGSIOS YI NIEUNHIEUH +0xB697 0xC513 #HANGUL SYLLABLE SSANGSIOS YI TIKEUT +0xB698 0xC515 #HANGUL SYLLABLE SSANGSIOS YI RIEULKIYEOK +0xB699 0xC516 #HANGUL SYLLABLE SSANGSIOS YI RIEULMIEUM +0xB69A 0xC517 #HANGUL SYLLABLE SSANGSIOS YI RIEULPIEUP +0xB69B 0xC518 #HANGUL SYLLABLE SSANGSIOS YI RIEULSIOS +0xB69C 0xC519 #HANGUL SYLLABLE SSANGSIOS YI RIEULTHIEUTH +0xB69D 0xC51A #HANGUL SYLLABLE SSANGSIOS YI RIEULPHIEUPH +0xB69E 0xC51B #HANGUL SYLLABLE SSANGSIOS YI RIEULHIEUH +0xB69F 0xC51D #HANGUL SYLLABLE SSANGSIOS YI PIEUP +0xB6A0 0xC51E #HANGUL SYLLABLE SSANGSIOS YI PIEUPSIOS +0xB6A1 0xB96B #HANGUL SYLLABLE RIEUL YU SIOS +0xB6A2 0xB96D #HANGUL SYLLABLE RIEUL YU IEUNG +0xB6A3 0xB974 #HANGUL SYLLABLE RIEUL EU +0xB6A4 0xB975 #HANGUL SYLLABLE RIEUL EU KIYEOK +0xB6A5 0xB978 #HANGUL SYLLABLE RIEUL EU NIEUN +0xB6A6 0xB97C #HANGUL SYLLABLE RIEUL EU RIEUL +0xB6A7 0xB984 #HANGUL SYLLABLE RIEUL EU MIEUM +0xB6A8 0xB985 #HANGUL SYLLABLE RIEUL EU PIEUP +0xB6A9 0xB987 #HANGUL SYLLABLE RIEUL EU SIOS +0xB6AA 0xB989 #HANGUL SYLLABLE RIEUL EU IEUNG +0xB6AB 0xB98A #HANGUL SYLLABLE RIEUL EU CIEUC +0xB6AC 0xB98D #HANGUL SYLLABLE RIEUL EU THIEUTH +0xB6AD 0xB98E #HANGUL SYLLABLE RIEUL EU PHIEUPH +0xB6AE 0xB9AC #HANGUL SYLLABLE RIEUL I +0xB6AF 0xB9AD #HANGUL SYLLABLE RIEUL I KIYEOK +0xB6B0 0xB9B0 #HANGUL SYLLABLE RIEUL I NIEUN +0xB6B1 0xB9B4 #HANGUL SYLLABLE RIEUL I RIEUL +0xB6B2 0xB9BC #HANGUL SYLLABLE RIEUL I MIEUM +0xB6B3 0xB9BD #HANGUL SYLLABLE RIEUL I PIEUP +0xB6B4 0xB9BF #HANGUL SYLLABLE RIEUL I SIOS +0xB6B5 0xB9C1 #HANGUL SYLLABLE RIEUL I IEUNG +0xB6B6 0xB9C6 #HANGUL SYLLABLE RIEUL I PHIEUPH +0xB6B7 0xB798 #HANGUL SYLLABLE RIEUL AE +0xB6B8 0xB799 #HANGUL SYLLABLE RIEUL AE KIYEOK +0xB6B9 0xB79C #HANGUL SYLLABLE RIEUL AE NIEUN +0xB6BA 0xB7A0 #HANGUL SYLLABLE RIEUL AE RIEUL +0xB6BB 0xB7A8 #HANGUL SYLLABLE RIEUL AE MIEUM +0xB6BC 0xB7A9 #HANGUL SYLLABLE RIEUL AE PIEUP +0xB6BD 0xB7AB #HANGUL SYLLABLE RIEUL AE SIOS +0xB6BE 0xB7AD #HANGUL SYLLABLE RIEUL AE IEUNG +0xB6BF 0xB7AC #HANGUL SYLLABLE RIEUL AE SSANGSIOS +0xB6C0 0xB7D0 #HANGUL SYLLABLE RIEUL YAE +0xB6C1 0xB808 #HANGUL SYLLABLE RIEUL E +0xB6C2 0xB809 #HANGUL SYLLABLE RIEUL E KIYEOK +0xB6C3 0xB80C #HANGUL SYLLABLE RIEUL E NIEUN +0xB6C4 0xB810 #HANGUL SYLLABLE RIEUL E RIEUL +0xB6C5 0xB818 #HANGUL SYLLABLE RIEUL E MIEUM +0xB6C6 0xB819 #HANGUL SYLLABLE RIEUL E PIEUP +0xB6C7 0xB81B #HANGUL SYLLABLE RIEUL E SIOS +0xB6C8 0xB81D #HANGUL SYLLABLE RIEUL E IEUNG +0xB6C9 0xB81C #HANGUL SYLLABLE RIEUL E SSANGSIOS +0xB6CA 0xB840 #HANGUL SYLLABLE RIEUL YE +0xB6CB 0xB844 #HANGUL SYLLABLE RIEUL YE NIEUN +0xB6CC 0xB848 #HANGUL SYLLABLE RIEUL YE RIEUL +0xB6CD 0xB851 #HANGUL SYLLABLE RIEUL YE PIEUP +0xB6CE 0xB853 #HANGUL SYLLABLE RIEUL YE SIOS +0xB6CF 0xB8B0 #HANGUL SYLLABLE RIEUL OE +0xB6D0 0xB8B4 #HANGUL SYLLABLE RIEUL OE NIEUN +0xB6D1 0xB8B8 #HANGUL SYLLABLE RIEUL OE RIEUL +0xB6D2 0xB8C0 #HANGUL SYLLABLE RIEUL OE MIEUM +0xB6D3 0xB8C1 #HANGUL SYLLABLE RIEUL OE PIEUP +0xB6D4 0xB8C3 #HANGUL SYLLABLE RIEUL OE SIOS +0xB6D5 0xB8C5 #HANGUL SYLLABLE RIEUL OE IEUNG +0xB6D6 0xB8C4 #HANGUL SYLLABLE RIEUL OE SSANGSIOS +0xB6D7 0xB93C #HANGUL SYLLABLE RIEUL WI +0xB6D8 0xB93D #HANGUL SYLLABLE RIEUL WI KIYEOK +0xB6D9 0xB940 #HANGUL SYLLABLE RIEUL WI NIEUN +0xB6DA 0xB944 #HANGUL SYLLABLE RIEUL WI RIEUL +0xB6DB 0xB94C #HANGUL SYLLABLE RIEUL WI MIEUM +0xB6DC 0xB94F #HANGUL SYLLABLE RIEUL WI SIOS +0xB6DD 0xB951 #HANGUL SYLLABLE RIEUL WI IEUNG +0xB6DE 0xB990 #HANGUL SYLLABLE RIEUL YI +0xB6DF 0xB994 #HANGUL SYLLABLE RIEUL YI NIEUN +0xB6E0 0xB998 #HANGUL SYLLABLE RIEUL YI RIEUL +0xB6E1 0xB9A0 #HANGUL SYLLABLE RIEUL YI MIEUM +0xB6E2 0xB878 #HANGUL SYLLABLE RIEUL WA +0xB6E3 0xB87C #HANGUL SYLLABLE RIEUL WA NIEUN +0xB6E4 0xB889 #HANGUL SYLLABLE RIEUL WA PIEUP +0xB6E5 0xB88D #HANGUL SYLLABLE RIEUL WA IEUNG +0xB6E6 0xB904 #HANGUL SYLLABLE RIEUL WEO +0xB6E7 0xB918 #HANGUL SYLLABLE RIEUL WEO SSANGSIOS +0xB6E8 0xB894 #HANGUL SYLLABLE RIEUL WAE +0xB6E9 0xB8A8 #HANGUL SYLLABLE RIEUL WAE SSANGSIOS +0xB6EA 0xB920 #HANGUL SYLLABLE RIEUL WE +0xB6EB 0xB9C8 #HANGUL SYLLABLE MIEUM A +0xB6EC 0xB9C9 #HANGUL SYLLABLE MIEUM A KIYEOK +0xB6ED 0xB9CC #HANGUL SYLLABLE MIEUM A NIEUN +0xB6EE 0xB9CE #HANGUL SYLLABLE MIEUM A NIEUNHIEUH +0xB6EF 0xB9CF #HANGUL SYLLABLE MIEUM A TIKEUT +0xB6F0 0xB9D0 #HANGUL SYLLABLE MIEUM A RIEUL +0xB6F1 0xB9D1 #HANGUL SYLLABLE MIEUM A RIEULKIYEOK +0xB6F2 0xB9D2 #HANGUL SYLLABLE MIEUM A RIEULMIEUM +0xB6F3 0xB9D8 #HANGUL SYLLABLE MIEUM A MIEUM +0xB6F4 0xB9D9 #HANGUL SYLLABLE MIEUM A PIEUP +0xB6F5 0xB9DB #HANGUL SYLLABLE MIEUM A SIOS +0xB6F6 0xB9DD #HANGUL SYLLABLE MIEUM A IEUNG +0xB6F7 0xB9DE #HANGUL SYLLABLE MIEUM A CIEUC +0xB6F8 0xB9DF #HANGUL SYLLABLE MIEUM A CHIEUCH +0xB6F9 0xB9E1 #HANGUL SYLLABLE MIEUM A THIEUTH +0xB6FA 0xB9E3 #HANGUL SYLLABLE MIEUM A HIEUH +0xB6FB 0xBA00 #HANGUL SYLLABLE MIEUM YA +0xB6FC 0xBA01 #HANGUL SYLLABLE MIEUM YA KIYEOK +0xB6FD 0xBA04 #HANGUL SYLLABLE MIEUM YA NIEUN +0xB6FE 0xBA08 #HANGUL SYLLABLE MIEUM YA RIEUL +0xB741 0xC51F #HANGUL SYLLABLE SSANGSIOS YI SIOS +0xB742 0xC521 #HANGUL SYLLABLE SSANGSIOS YI IEUNG +0xB743 0xC522 #HANGUL SYLLABLE SSANGSIOS YI CIEUC +0xB744 0xC523 #HANGUL SYLLABLE SSANGSIOS YI CHIEUCH +0xB745 0xC524 #HANGUL SYLLABLE SSANGSIOS YI KHIEUKH +0xB746 0xC525 #HANGUL SYLLABLE SSANGSIOS YI THIEUTH +0xB747 0xC526 #HANGUL SYLLABLE SSANGSIOS YI PHIEUPH +0xB748 0xC527 #HANGUL SYLLABLE SSANGSIOS YI HIEUH +0xB749 0xC50E #HANGUL SYLLABLE SSANGSIOS YI SSANGKIYEOK +0xB74A 0xC520 #HANGUL SYLLABLE SSANGSIOS YI SSANGSIOS +0xB74B 0xC3F7 #HANGUL SYLLABLE SSANGSIOS WA KIYEOKSIOS +0xB74C 0xC3F9 #HANGUL SYLLABLE SSANGSIOS WA NIEUNCIEUC +0xB74D 0xC3FA #HANGUL SYLLABLE SSANGSIOS WA NIEUNHIEUH +0xB74E 0xC3FB #HANGUL SYLLABLE SSANGSIOS WA TIKEUT +0xB74F 0xC3FD #HANGUL SYLLABLE SSANGSIOS WA RIEULKIYEOK +0xB750 0xC3FE #HANGUL SYLLABLE SSANGSIOS WA RIEULMIEUM +0xB751 0xC3FF #HANGUL SYLLABLE SSANGSIOS WA RIEULPIEUP +0xB752 0xC400 #HANGUL SYLLABLE SSANGSIOS WA RIEULSIOS +0xB753 0xC401 #HANGUL SYLLABLE SSANGSIOS WA RIEULTHIEUTH +0xB754 0xC402 #HANGUL SYLLABLE SSANGSIOS WA RIEULPHIEUPH +0xB755 0xC403 #HANGUL SYLLABLE SSANGSIOS WA RIEULHIEUH +0xB756 0xC404 #HANGUL SYLLABLE SSANGSIOS WA MIEUM +0xB757 0xC405 #HANGUL SYLLABLE SSANGSIOS WA PIEUP +0xB758 0xC406 #HANGUL SYLLABLE SSANGSIOS WA PIEUPSIOS +0xB759 0xC40A #HANGUL SYLLABLE SSANGSIOS WA CIEUC +0xB75A 0xC40B #HANGUL SYLLABLE SSANGSIOS WA CHIEUCH +0xB761 0xC40C #HANGUL SYLLABLE SSANGSIOS WA KHIEUKH +0xB762 0xC40D #HANGUL SYLLABLE SSANGSIOS WA THIEUTH +0xB763 0xC40E #HANGUL SYLLABLE SSANGSIOS WA PHIEUPH +0xB764 0xC40F #HANGUL SYLLABLE SSANGSIOS WA HIEUH +0xB765 0xC3F6 #HANGUL SYLLABLE SSANGSIOS WA SSANGKIYEOK +0xB766 0xC481 #HANGUL SYLLABLE SSANGSIOS WEO KIYEOK +0xB767 0xC483 #HANGUL SYLLABLE SSANGSIOS WEO KIYEOKSIOS +0xB768 0xC484 #HANGUL SYLLABLE SSANGSIOS WEO NIEUN +0xB769 0xC485 #HANGUL SYLLABLE SSANGSIOS WEO NIEUNCIEUC +0xB76A 0xC486 #HANGUL SYLLABLE SSANGSIOS WEO NIEUNHIEUH +0xB76B 0xC487 #HANGUL SYLLABLE SSANGSIOS WEO TIKEUT +0xB76C 0xC488 #HANGUL SYLLABLE SSANGSIOS WEO RIEUL +0xB76D 0xC489 #HANGUL SYLLABLE SSANGSIOS WEO RIEULKIYEOK +0xB76E 0xC48A #HANGUL SYLLABLE SSANGSIOS WEO RIEULMIEUM +0xB76F 0xC48B #HANGUL SYLLABLE SSANGSIOS WEO RIEULPIEUP +0xB770 0xC48C #HANGUL SYLLABLE SSANGSIOS WEO RIEULSIOS +0xB771 0xC48D #HANGUL SYLLABLE SSANGSIOS WEO RIEULTHIEUTH +0xB772 0xC48E #HANGUL SYLLABLE SSANGSIOS WEO RIEULPHIEUPH +0xB773 0xC48F #HANGUL SYLLABLE SSANGSIOS WEO RIEULHIEUH +0xB774 0xC490 #HANGUL SYLLABLE SSANGSIOS WEO MIEUM +0xB775 0xC491 #HANGUL SYLLABLE SSANGSIOS WEO PIEUP +0xB776 0xC492 #HANGUL SYLLABLE SSANGSIOS WEO PIEUPSIOS +0xB777 0xC493 #HANGUL SYLLABLE SSANGSIOS WEO SIOS +0xB778 0xC495 #HANGUL SYLLABLE SSANGSIOS WEO IEUNG +0xB779 0xC496 #HANGUL SYLLABLE SSANGSIOS WEO CIEUC +0xB77A 0xC497 #HANGUL SYLLABLE SSANGSIOS WEO CHIEUCH +0xB781 0xC498 #HANGUL SYLLABLE SSANGSIOS WEO KHIEUKH +0xB782 0xC499 #HANGUL SYLLABLE SSANGSIOS WEO THIEUTH +0xB783 0xC49A #HANGUL SYLLABLE SSANGSIOS WEO PHIEUPH +0xB784 0xC49B #HANGUL SYLLABLE SSANGSIOS WEO HIEUH +0xB785 0xC482 #HANGUL SYLLABLE SSANGSIOS WEO SSANGKIYEOK +0xB786 0xC413 #HANGUL SYLLABLE SSANGSIOS WAE KIYEOKSIOS +0xB787 0xC414 #HANGUL SYLLABLE SSANGSIOS WAE NIEUN +0xB788 0xC415 #HANGUL SYLLABLE SSANGSIOS WAE NIEUNCIEUC +0xB789 0xC416 #HANGUL SYLLABLE SSANGSIOS WAE NIEUNHIEUH +0xB78A 0xC417 #HANGUL SYLLABLE SSANGSIOS WAE TIKEUT +0xB78B 0xC418 #HANGUL SYLLABLE SSANGSIOS WAE RIEUL +0xB78C 0xC419 #HANGUL SYLLABLE SSANGSIOS WAE RIEULKIYEOK +0xB78D 0xC41A #HANGUL SYLLABLE SSANGSIOS WAE RIEULMIEUM +0xB78E 0xC41B #HANGUL SYLLABLE SSANGSIOS WAE RIEULPIEUP +0xB78F 0xC41C #HANGUL SYLLABLE SSANGSIOS WAE RIEULSIOS +0xB790 0xC41D #HANGUL SYLLABLE SSANGSIOS WAE RIEULTHIEUTH +0xB791 0xC41E #HANGUL SYLLABLE SSANGSIOS WAE RIEULPHIEUPH +0xB792 0xC41F #HANGUL SYLLABLE SSANGSIOS WAE RIEULHIEUH +0xB793 0xC420 #HANGUL SYLLABLE SSANGSIOS WAE MIEUM +0xB794 0xC421 #HANGUL SYLLABLE SSANGSIOS WAE PIEUP +0xB795 0xC422 #HANGUL SYLLABLE SSANGSIOS WAE PIEUPSIOS +0xB796 0xC423 #HANGUL SYLLABLE SSANGSIOS WAE SIOS +0xB797 0xC425 #HANGUL SYLLABLE SSANGSIOS WAE IEUNG +0xB798 0xC426 #HANGUL SYLLABLE SSANGSIOS WAE CIEUC +0xB799 0xC427 #HANGUL SYLLABLE SSANGSIOS WAE CHIEUCH +0xB79A 0xC428 #HANGUL SYLLABLE SSANGSIOS WAE KHIEUKH +0xB79B 0xC429 #HANGUL SYLLABLE SSANGSIOS WAE THIEUTH +0xB79C 0xC42A #HANGUL SYLLABLE SSANGSIOS WAE PHIEUPH +0xB79D 0xC42B #HANGUL SYLLABLE SSANGSIOS WAE HIEUH +0xB79E 0xC412 #HANGUL SYLLABLE SSANGSIOS WAE SSANGKIYEOK +0xB79F 0xC49D #HANGUL SYLLABLE SSANGSIOS WE KIYEOK +0xB7A0 0xC49F #HANGUL SYLLABLE SSANGSIOS WE KIYEOKSIOS +0xB7A1 0xBA10 #HANGUL SYLLABLE MIEUM YA MIEUM +0xB7A2 0xBA15 #HANGUL SYLLABLE MIEUM YA IEUNG +0xB7A3 0xBA38 #HANGUL SYLLABLE MIEUM EO +0xB7A4 0xBA39 #HANGUL SYLLABLE MIEUM EO KIYEOK +0xB7A5 0xBA3C #HANGUL SYLLABLE MIEUM EO NIEUN +0xB7A6 0xBA40 #HANGUL SYLLABLE MIEUM EO RIEUL +0xB7A7 0xBA41 #HANGUL SYLLABLE MIEUM EO RIEULKIYEOK +0xB7A8 0xBA42 #HANGUL SYLLABLE MIEUM EO RIEULMIEUM +0xB7A9 0xBA48 #HANGUL SYLLABLE MIEUM EO MIEUM +0xB7AA 0xBA49 #HANGUL SYLLABLE MIEUM EO PIEUP +0xB7AB 0xBA4B #HANGUL SYLLABLE MIEUM EO SIOS +0xB7AC 0xBA4D #HANGUL SYLLABLE MIEUM EO IEUNG +0xB7AD 0xBA4E #HANGUL SYLLABLE MIEUM EO CIEUC +0xB7AE 0xBA53 #HANGUL SYLLABLE MIEUM EO HIEUH +0xB7AF 0xBA4C #HANGUL SYLLABLE MIEUM EO SSANGSIOS +0xB7B0 0xBA70 #HANGUL SYLLABLE MIEUM YEO +0xB7B1 0xBA71 #HANGUL SYLLABLE MIEUM YEO KIYEOK +0xB7B2 0xBA74 #HANGUL SYLLABLE MIEUM YEO NIEUN +0xB7B3 0xBA78 #HANGUL SYLLABLE MIEUM YEO RIEUL +0xB7B4 0xBA80 #HANGUL SYLLABLE MIEUM YEO MIEUM +0xB7B5 0xBA81 #HANGUL SYLLABLE MIEUM YEO PIEUP +0xB7B6 0xBA83 #HANGUL SYLLABLE MIEUM YEO SIOS +0xB7B7 0xBA85 #HANGUL SYLLABLE MIEUM YEO IEUNG +0xB7B8 0xBA87 #HANGUL SYLLABLE MIEUM YEO CHIEUCH +0xB7B9 0xBA84 #HANGUL SYLLABLE MIEUM YEO SSANGSIOS +0xB7BA 0xBAA8 #HANGUL SYLLABLE MIEUM O +0xB7BB 0xBAA9 #HANGUL SYLLABLE MIEUM O KIYEOK +0xB7BC 0xBAAB #HANGUL SYLLABLE MIEUM O KIYEOKSIOS +0xB7BD 0xBAAC #HANGUL SYLLABLE MIEUM O NIEUN +0xB7BE 0xBAAF #HANGUL SYLLABLE MIEUM O TIKEUT +0xB7BF 0xBAB0 #HANGUL SYLLABLE MIEUM O RIEUL +0xB7C0 0xBAB2 #HANGUL SYLLABLE MIEUM O RIEULMIEUM +0xB7C1 0xBAB8 #HANGUL SYLLABLE MIEUM O MIEUM +0xB7C2 0xBAB9 #HANGUL SYLLABLE MIEUM O PIEUP +0xB7C3 0xBABB #HANGUL SYLLABLE MIEUM O SIOS +0xB7C4 0xBABD #HANGUL SYLLABLE MIEUM O IEUNG +0xB7C5 0xBAC3 #HANGUL SYLLABLE MIEUM O HIEUH +0xB7C6 0xBB18 #HANGUL SYLLABLE MIEUM YO +0xB7C7 0xBB1C #HANGUL SYLLABLE MIEUM YO NIEUN +0xB7C8 0xBB20 #HANGUL SYLLABLE MIEUM YO RIEUL +0xB7C9 0xBB29 #HANGUL SYLLABLE MIEUM YO PIEUP +0xB7CA 0xBB2B #HANGUL SYLLABLE MIEUM YO SIOS +0xB7CB 0xBB34 #HANGUL SYLLABLE MIEUM U +0xB7CC 0xBB35 #HANGUL SYLLABLE MIEUM U KIYEOK +0xB7CD 0xBB38 #HANGUL SYLLABLE MIEUM U NIEUN +0xB7CE 0xBB3B #HANGUL SYLLABLE MIEUM U TIKEUT +0xB7CF 0xBB3C #HANGUL SYLLABLE MIEUM U RIEUL +0xB7D0 0xBB3D #HANGUL SYLLABLE MIEUM U RIEULKIYEOK +0xB7D1 0xBB3E #HANGUL SYLLABLE MIEUM U RIEULMIEUM +0xB7D2 0xBB44 #HANGUL SYLLABLE MIEUM U MIEUM +0xB7D3 0xBB45 #HANGUL SYLLABLE MIEUM U PIEUP +0xB7D4 0xBB47 #HANGUL SYLLABLE MIEUM U SIOS +0xB7D5 0xBB49 #HANGUL SYLLABLE MIEUM U IEUNG +0xB7D6 0xBB4D #HANGUL SYLLABLE MIEUM U THIEUTH +0xB7D7 0xBB4F #HANGUL SYLLABLE MIEUM U HIEUH +0xB7D8 0xBB36 #HANGUL SYLLABLE MIEUM U SSANGKIYEOK +0xB7D9 0xBBA4 #HANGUL SYLLABLE MIEUM YU +0xB7DA 0xBBA5 #HANGUL SYLLABLE MIEUM YU KIYEOK +0xB7DB 0xBBA8 #HANGUL SYLLABLE MIEUM YU NIEUN +0xB7DC 0xBBAC #HANGUL SYLLABLE MIEUM YU RIEUL +0xB7DD 0xBBB4 #HANGUL SYLLABLE MIEUM YU MIEUM +0xB7DE 0xBBB7 #HANGUL SYLLABLE MIEUM YU SIOS +0xB7DF 0xBBB9 #HANGUL SYLLABLE MIEUM YU IEUNG +0xB7E0 0xBBC0 #HANGUL SYLLABLE MIEUM EU +0xB7E1 0xBBC4 #HANGUL SYLLABLE MIEUM EU NIEUN +0xB7E2 0xBBC8 #HANGUL SYLLABLE MIEUM EU RIEUL +0xB7E3 0xBBD0 #HANGUL SYLLABLE MIEUM EU MIEUM +0xB7E4 0xBBD1 #HANGUL SYLLABLE MIEUM EU PIEUP +0xB7E5 0xBBD3 #HANGUL SYLLABLE MIEUM EU SIOS +0xB7E6 0xBBD5 #HANGUL SYLLABLE MIEUM EU IEUNG +0xB7E7 0xBBF8 #HANGUL SYLLABLE MIEUM I +0xB7E8 0xBBF9 #HANGUL SYLLABLE MIEUM I KIYEOK +0xB7E9 0xBBFC #HANGUL SYLLABLE MIEUM I NIEUN +0xB7EA 0xBBFF #HANGUL SYLLABLE MIEUM I TIKEUT +0xB7EB 0xBC00 #HANGUL SYLLABLE MIEUM I RIEUL +0xB7EC 0xBC02 #HANGUL SYLLABLE MIEUM I RIEULMIEUM +0xB7ED 0xBC08 #HANGUL SYLLABLE MIEUM I MIEUM +0xB7EE 0xBC09 #HANGUL SYLLABLE MIEUM I PIEUP +0xB7EF 0xBC0B #HANGUL SYLLABLE MIEUM I SIOS +0xB7F0 0xBC0D #HANGUL SYLLABLE MIEUM I IEUNG +0xB7F1 0xBC0F #HANGUL SYLLABLE MIEUM I CHIEUCH +0xB7F2 0xBC11 #HANGUL SYLLABLE MIEUM I THIEUTH +0xB7F3 0xBC0C #HANGUL SYLLABLE MIEUM I SSANGSIOS +0xB7F4 0xB9E4 #HANGUL SYLLABLE MIEUM AE +0xB7F5 0xB9E5 #HANGUL SYLLABLE MIEUM AE KIYEOK +0xB7F6 0xB9E8 #HANGUL SYLLABLE MIEUM AE NIEUN +0xB7F7 0xB9EC #HANGUL SYLLABLE MIEUM AE RIEUL +0xB7F8 0xB9F4 #HANGUL SYLLABLE MIEUM AE MIEUM +0xB7F9 0xB9F5 #HANGUL SYLLABLE MIEUM AE PIEUP +0xB7FA 0xB9F7 #HANGUL SYLLABLE MIEUM AE SIOS +0xB7FB 0xB9F9 #HANGUL SYLLABLE MIEUM AE IEUNG +0xB7FC 0xB9FA #HANGUL SYLLABLE MIEUM AE CIEUC +0xB7FD 0xB9F8 #HANGUL SYLLABLE MIEUM AE SSANGSIOS +0xB7FE 0xBA1C #HANGUL SYLLABLE MIEUM YAE +0xB841 0xC4A1 #HANGUL SYLLABLE SSANGSIOS WE NIEUNCIEUC +0xB842 0xC4A2 #HANGUL SYLLABLE SSANGSIOS WE NIEUNHIEUH +0xB843 0xC4A3 #HANGUL SYLLABLE SSANGSIOS WE TIKEUT +0xB844 0xC4A4 #HANGUL SYLLABLE SSANGSIOS WE RIEUL +0xB845 0xC4A5 #HANGUL SYLLABLE SSANGSIOS WE RIEULKIYEOK +0xB846 0xC4A6 #HANGUL SYLLABLE SSANGSIOS WE RIEULMIEUM +0xB847 0xC4A7 #HANGUL SYLLABLE SSANGSIOS WE RIEULPIEUP +0xB848 0xC4A8 #HANGUL SYLLABLE SSANGSIOS WE RIEULSIOS +0xB849 0xC4A9 #HANGUL SYLLABLE SSANGSIOS WE RIEULTHIEUTH +0xB84A 0xC4AA #HANGUL SYLLABLE SSANGSIOS WE RIEULPHIEUPH +0xB84B 0xC4AB #HANGUL SYLLABLE SSANGSIOS WE RIEULHIEUH +0xB84C 0xC4AC #HANGUL SYLLABLE SSANGSIOS WE MIEUM +0xB84D 0xC4AE #HANGUL SYLLABLE SSANGSIOS WE PIEUPSIOS +0xB84E 0xC4AF #HANGUL SYLLABLE SSANGSIOS WE SIOS +0xB84F 0xC4B1 #HANGUL SYLLABLE SSANGSIOS WE IEUNG +0xB850 0xC4B2 #HANGUL SYLLABLE SSANGSIOS WE CIEUC +0xB851 0xC4B3 #HANGUL SYLLABLE SSANGSIOS WE CHIEUCH +0xB852 0xC4B4 #HANGUL SYLLABLE SSANGSIOS WE KHIEUKH +0xB853 0xC4B5 #HANGUL SYLLABLE SSANGSIOS WE THIEUTH +0xB854 0xC4B6 #HANGUL SYLLABLE SSANGSIOS WE PHIEUPH +0xB855 0xC4B7 #HANGUL SYLLABLE SSANGSIOS WE HIEUH +0xB856 0xC49E #HANGUL SYLLABLE SSANGSIOS WE SSANGKIYEOK +0xB857 0xC4B0 #HANGUL SYLLABLE SSANGSIOS WE SSANGSIOS +0xB858 0xC9DF #HANGUL SYLLABLE SSANGCIEUC A KIYEOKSIOS +0xB859 0xC9E1 #HANGUL SYLLABLE SSANGCIEUC A NIEUNCIEUC +0xB85A 0xC9E3 #HANGUL SYLLABLE SSANGCIEUC A TIKEUT +0xB861 0xC9E5 #HANGUL SYLLABLE SSANGCIEUC A RIEULKIYEOK +0xB862 0xC9E6 #HANGUL SYLLABLE SSANGCIEUC A RIEULMIEUM +0xB863 0xC9E8 #HANGUL SYLLABLE SSANGCIEUC A RIEULSIOS +0xB864 0xC9E9 #HANGUL SYLLABLE SSANGCIEUC A RIEULTHIEUTH +0xB865 0xC9EA #HANGUL SYLLABLE SSANGCIEUC A RIEULPHIEUPH +0xB866 0xC9EB #HANGUL SYLLABLE SSANGCIEUC A RIEULHIEUH +0xB867 0xC9EE #HANGUL SYLLABLE SSANGCIEUC A PIEUPSIOS +0xB868 0xC9F2 #HANGUL SYLLABLE SSANGCIEUC A CIEUC +0xB869 0xC9F3 #HANGUL SYLLABLE SSANGCIEUC A CHIEUCH +0xB86A 0xC9F4 #HANGUL SYLLABLE SSANGCIEUC A KHIEUKH +0xB86B 0xC9F5 #HANGUL SYLLABLE SSANGCIEUC A THIEUTH +0xB86C 0xC9F6 #HANGUL SYLLABLE SSANGCIEUC A PHIEUPH +0xB86D 0xC9F7 #HANGUL SYLLABLE SSANGCIEUC A HIEUH +0xB86E 0xC9DE #HANGUL SYLLABLE SSANGCIEUC A SSANGKIYEOK +0xB86F 0xCA15 #HANGUL SYLLABLE SSANGCIEUC YA KIYEOK +0xB870 0xCA17 #HANGUL SYLLABLE SSANGCIEUC YA KIYEOKSIOS +0xB871 0xCA19 #HANGUL SYLLABLE SSANGCIEUC YA NIEUNCIEUC +0xB872 0xCA1A #HANGUL SYLLABLE SSANGCIEUC YA NIEUNHIEUH +0xB873 0xCA1B #HANGUL SYLLABLE SSANGCIEUC YA TIKEUT +0xB874 0xCA1C #HANGUL SYLLABLE SSANGCIEUC YA RIEUL +0xB875 0xCA1D #HANGUL SYLLABLE SSANGCIEUC YA RIEULKIYEOK +0xB876 0xCA1E #HANGUL SYLLABLE SSANGCIEUC YA RIEULMIEUM +0xB877 0xCA1F #HANGUL SYLLABLE SSANGCIEUC YA RIEULPIEUP +0xB878 0xCA20 #HANGUL SYLLABLE SSANGCIEUC YA RIEULSIOS +0xB879 0xCA21 #HANGUL SYLLABLE SSANGCIEUC YA RIEULTHIEUTH +0xB87A 0xCA22 #HANGUL SYLLABLE SSANGCIEUC YA RIEULPHIEUPH +0xB881 0xCA23 #HANGUL SYLLABLE SSANGCIEUC YA RIEULHIEUH +0xB882 0xCA25 #HANGUL SYLLABLE SSANGCIEUC YA PIEUP +0xB883 0xCA26 #HANGUL SYLLABLE SSANGCIEUC YA PIEUPSIOS +0xB884 0xCA27 #HANGUL SYLLABLE SSANGCIEUC YA SIOS +0xB885 0xCA2A #HANGUL SYLLABLE SSANGCIEUC YA CIEUC +0xB886 0xCA2B #HANGUL SYLLABLE SSANGCIEUC YA CHIEUCH +0xB887 0xCA2C #HANGUL SYLLABLE SSANGCIEUC YA KHIEUKH +0xB888 0xCA2D #HANGUL SYLLABLE SSANGCIEUC YA THIEUTH +0xB889 0xCA2E #HANGUL SYLLABLE SSANGCIEUC YA PHIEUPH +0xB88A 0xCA2F #HANGUL SYLLABLE SSANGCIEUC YA HIEUH +0xB88B 0xCA16 #HANGUL SYLLABLE SSANGCIEUC YA SSANGKIYEOK +0xB88C 0xCA28 #HANGUL SYLLABLE SSANGCIEUC YA SSANGSIOS +0xB88D 0xCA4F #HANGUL SYLLABLE SSANGCIEUC EO KIYEOKSIOS +0xB88E 0xCA51 #HANGUL SYLLABLE SSANGCIEUC EO NIEUNCIEUC +0xB88F 0xCA52 #HANGUL SYLLABLE SSANGCIEUC EO NIEUNHIEUH +0xB890 0xCA53 #HANGUL SYLLABLE SSANGCIEUC EO TIKEUT +0xB891 0xCA55 #HANGUL SYLLABLE SSANGCIEUC EO RIEULKIYEOK +0xB892 0xCA56 #HANGUL SYLLABLE SSANGCIEUC EO RIEULMIEUM +0xB893 0xCA58 #HANGUL SYLLABLE SSANGCIEUC EO RIEULSIOS +0xB894 0xCA59 #HANGUL SYLLABLE SSANGCIEUC EO RIEULTHIEUTH +0xB895 0xCA5A #HANGUL SYLLABLE SSANGCIEUC EO RIEULPHIEUPH +0xB896 0xCA5B #HANGUL SYLLABLE SSANGCIEUC EO RIEULHIEUH +0xB897 0xCA5E #HANGUL SYLLABLE SSANGCIEUC EO PIEUPSIOS +0xB898 0xCA62 #HANGUL SYLLABLE SSANGCIEUC EO CIEUC +0xB899 0xCA63 #HANGUL SYLLABLE SSANGCIEUC EO CHIEUCH +0xB89A 0xCA64 #HANGUL SYLLABLE SSANGCIEUC EO KHIEUKH +0xB89B 0xCA65 #HANGUL SYLLABLE SSANGCIEUC EO THIEUTH +0xB89C 0xCA66 #HANGUL SYLLABLE SSANGCIEUC EO PHIEUPH +0xB89D 0xCA67 #HANGUL SYLLABLE SSANGCIEUC EO HIEUH +0xB89E 0xCA4E #HANGUL SYLLABLE SSANGCIEUC EO SSANGKIYEOK +0xB89F 0xCA85 #HANGUL SYLLABLE SSANGCIEUC YEO KIYEOK +0xB8A0 0xCA87 #HANGUL SYLLABLE SSANGCIEUC YEO KIYEOKSIOS +0xB8A1 0xBA54 #HANGUL SYLLABLE MIEUM E +0xB8A2 0xBA55 #HANGUL SYLLABLE MIEUM E KIYEOK +0xB8A3 0xBA58 #HANGUL SYLLABLE MIEUM E NIEUN +0xB8A4 0xBA5C #HANGUL SYLLABLE MIEUM E RIEUL +0xB8A5 0xBA64 #HANGUL SYLLABLE MIEUM E MIEUM +0xB8A6 0xBA65 #HANGUL SYLLABLE MIEUM E PIEUP +0xB8A7 0xBA67 #HANGUL SYLLABLE MIEUM E SIOS +0xB8A8 0xBA69 #HANGUL SYLLABLE MIEUM E IEUNG +0xB8A9 0xBA68 #HANGUL SYLLABLE MIEUM E SSANGSIOS +0xB8AA 0xBA8C #HANGUL SYLLABLE MIEUM YE +0xB8AB 0xBA90 #HANGUL SYLLABLE MIEUM YE NIEUN +0xB8AC 0xBAFC #HANGUL SYLLABLE MIEUM OE +0xB8AD 0xBB00 #HANGUL SYLLABLE MIEUM OE NIEUN +0xB8AE 0xBB04 #HANGUL SYLLABLE MIEUM OE RIEUL +0xB8AF 0xBB0C #HANGUL SYLLABLE MIEUM OE MIEUM +0xB8B0 0xBB0D #HANGUL SYLLABLE MIEUM OE PIEUP +0xB8B1 0xBB0F #HANGUL SYLLABLE MIEUM OE SIOS +0xB8B2 0xBB11 #HANGUL SYLLABLE MIEUM OE IEUNG +0xB8B3 0xBB88 #HANGUL SYLLABLE MIEUM WI +0xB8B4 0xBB8C #HANGUL SYLLABLE MIEUM WI NIEUN +0xB8B5 0xBB90 #HANGUL SYLLABLE MIEUM WI RIEUL +0xB8B6 0xBBDC #HANGUL SYLLABLE MIEUM YI +0xB8B7 0xBBE0 #HANGUL SYLLABLE MIEUM YI NIEUN +0xB8B8 0xBBEC #HANGUL SYLLABLE MIEUM YI MIEUM +0xB8B9 0xBAC4 #HANGUL SYLLABLE MIEUM WA +0xB8BA 0xBAC8 #HANGUL SYLLABLE MIEUM WA NIEUN +0xB8BB 0xBAD9 #HANGUL SYLLABLE MIEUM WA IEUNG +0xB8BC 0xBAD8 #HANGUL SYLLABLE MIEUM WA SSANGSIOS +0xB8BD 0xBB50 #HANGUL SYLLABLE MIEUM WEO +0xB8BE 0xBB54 #HANGUL SYLLABLE MIEUM WEO NIEUN +0xB8BF 0xBB58 #HANGUL SYLLABLE MIEUM WEO RIEUL +0xB8C0 0xBB60 #HANGUL SYLLABLE MIEUM WEO MIEUM +0xB8C1 0xBB61 #HANGUL SYLLABLE MIEUM WEO PIEUP +0xB8C2 0xBB63 #HANGUL SYLLABLE MIEUM WEO SIOS +0xB8C3 0xBB64 #HANGUL SYLLABLE MIEUM WEO SSANGSIOS +0xB8C4 0xBAE0 #HANGUL SYLLABLE MIEUM WAE +0xB8C5 0xBB6C #HANGUL SYLLABLE MIEUM WE +0xB8C6 0xBC14 #HANGUL SYLLABLE PIEUP A +0xB8C7 0xBC15 #HANGUL SYLLABLE PIEUP A KIYEOK +0xB8C8 0xBC17 #HANGUL SYLLABLE PIEUP A KIYEOKSIOS +0xB8C9 0xBC18 #HANGUL SYLLABLE PIEUP A NIEUN +0xB8CA 0xBC1B #HANGUL SYLLABLE PIEUP A TIKEUT +0xB8CB 0xBC1C #HANGUL SYLLABLE PIEUP A RIEUL +0xB8CC 0xBC1D #HANGUL SYLLABLE PIEUP A RIEULKIYEOK +0xB8CD 0xBC1E #HANGUL SYLLABLE PIEUP A RIEULMIEUM +0xB8CE 0xBC1F #HANGUL SYLLABLE PIEUP A RIEULPIEUP +0xB8CF 0xBC24 #HANGUL SYLLABLE PIEUP A MIEUM +0xB8D0 0xBC25 #HANGUL SYLLABLE PIEUP A PIEUP +0xB8D1 0xBC27 #HANGUL SYLLABLE PIEUP A SIOS +0xB8D2 0xBC29 #HANGUL SYLLABLE PIEUP A IEUNG +0xB8D3 0xBC2D #HANGUL SYLLABLE PIEUP A THIEUTH +0xB8D4 0xBC16 #HANGUL SYLLABLE PIEUP A SSANGKIYEOK +0xB8D5 0xBC4C #HANGUL SYLLABLE PIEUP YA +0xB8D6 0xBC4D #HANGUL SYLLABLE PIEUP YA KIYEOK +0xB8D7 0xBC50 #HANGUL SYLLABLE PIEUP YA NIEUN +0xB8D8 0xBC5C #HANGUL SYLLABLE PIEUP YA MIEUM +0xB8D9 0xBC5D #HANGUL SYLLABLE PIEUP YA PIEUP +0xB8DA 0xBC84 #HANGUL SYLLABLE PIEUP EO +0xB8DB 0xBC85 #HANGUL SYLLABLE PIEUP EO KIYEOK +0xB8DC 0xBC88 #HANGUL SYLLABLE PIEUP EO NIEUN +0xB8DD 0xBC8B #HANGUL SYLLABLE PIEUP EO TIKEUT +0xB8DE 0xBC8C #HANGUL SYLLABLE PIEUP EO RIEUL +0xB8DF 0xBC8D #HANGUL SYLLABLE PIEUP EO RIEULKIYEOK +0xB8E0 0xBC8E #HANGUL SYLLABLE PIEUP EO RIEULMIEUM +0xB8E1 0xBC94 #HANGUL SYLLABLE PIEUP EO MIEUM +0xB8E2 0xBC95 #HANGUL SYLLABLE PIEUP EO PIEUP +0xB8E3 0xBC97 #HANGUL SYLLABLE PIEUP EO SIOS +0xB8E4 0xBC99 #HANGUL SYLLABLE PIEUP EO IEUNG +0xB8E5 0xBC9A #HANGUL SYLLABLE PIEUP EO CIEUC +0xB8E6 0xBC9C #HANGUL SYLLABLE PIEUP EO KHIEUKH +0xB8E7 0xBC98 #HANGUL SYLLABLE PIEUP EO SSANGSIOS +0xB8E8 0xBCBC #HANGUL SYLLABLE PIEUP YEO +0xB8E9 0xBCBD #HANGUL SYLLABLE PIEUP YEO KIYEOK +0xB8EA 0xBCC0 #HANGUL SYLLABLE PIEUP YEO NIEUN +0xB8EB 0xBCC4 #HANGUL SYLLABLE PIEUP YEO RIEUL +0xB8EC 0xBCCC #HANGUL SYLLABLE PIEUP YEO MIEUM +0xB8ED 0xBCCD #HANGUL SYLLABLE PIEUP YEO PIEUP +0xB8EE 0xBCCF #HANGUL SYLLABLE PIEUP YEO SIOS +0xB8EF 0xBCD1 #HANGUL SYLLABLE PIEUP YEO IEUNG +0xB8F0 0xBCD3 #HANGUL SYLLABLE PIEUP YEO CHIEUCH +0xB8F1 0xBCD5 #HANGUL SYLLABLE PIEUP YEO THIEUTH +0xB8F2 0xBCD0 #HANGUL SYLLABLE PIEUP YEO SSANGSIOS +0xB8F3 0xBCF4 #HANGUL SYLLABLE PIEUP O +0xB8F4 0xBCF5 #HANGUL SYLLABLE PIEUP O KIYEOK +0xB8F5 0xBCF8 #HANGUL SYLLABLE PIEUP O NIEUN +0xB8F6 0xBCFC #HANGUL SYLLABLE PIEUP O RIEUL +0xB8F7 0xBD04 #HANGUL SYLLABLE PIEUP O MIEUM +0xB8F8 0xBD05 #HANGUL SYLLABLE PIEUP O PIEUP +0xB8F9 0xBD07 #HANGUL SYLLABLE PIEUP O SIOS +0xB8FA 0xBD09 #HANGUL SYLLABLE PIEUP O IEUNG +0xB8FB 0xBD0F #HANGUL SYLLABLE PIEUP O HIEUH +0xB8FC 0xBCF6 #HANGUL SYLLABLE PIEUP O SSANGKIYEOK +0xB8FD 0xBD64 #HANGUL SYLLABLE PIEUP YO +0xB8FE 0xBD68 #HANGUL SYLLABLE PIEUP YO NIEUN +0xB941 0xCA88 #HANGUL SYLLABLE SSANGCIEUC YEO NIEUN +0xB942 0xCA89 #HANGUL SYLLABLE SSANGCIEUC YEO NIEUNCIEUC +0xB943 0xCA8A #HANGUL SYLLABLE SSANGCIEUC YEO NIEUNHIEUH +0xB944 0xCA8B #HANGUL SYLLABLE SSANGCIEUC YEO TIKEUT +0xB945 0xCA8C #HANGUL SYLLABLE SSANGCIEUC YEO RIEUL +0xB946 0xCA8D #HANGUL SYLLABLE SSANGCIEUC YEO RIEULKIYEOK +0xB947 0xCA8E #HANGUL SYLLABLE SSANGCIEUC YEO RIEULMIEUM +0xB948 0xCA8F #HANGUL SYLLABLE SSANGCIEUC YEO RIEULPIEUP +0xB949 0xCA90 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULSIOS +0xB94A 0xCA91 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULTHIEUTH +0xB94B 0xCA92 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULPHIEUPH +0xB94C 0xCA93 #HANGUL SYLLABLE SSANGCIEUC YEO RIEULHIEUH +0xB94D 0xCA94 #HANGUL SYLLABLE SSANGCIEUC YEO MIEUM +0xB94E 0xCA95 #HANGUL SYLLABLE SSANGCIEUC YEO PIEUP +0xB94F 0xCA96 #HANGUL SYLLABLE SSANGCIEUC YEO PIEUPSIOS +0xB950 0xCA97 #HANGUL SYLLABLE SSANGCIEUC YEO SIOS +0xB951 0xCA99 #HANGUL SYLLABLE SSANGCIEUC YEO IEUNG +0xB952 0xCA9A #HANGUL SYLLABLE SSANGCIEUC YEO CIEUC +0xB953 0xCA9B #HANGUL SYLLABLE SSANGCIEUC YEO CHIEUCH +0xB954 0xCA9C #HANGUL SYLLABLE SSANGCIEUC YEO KHIEUKH +0xB955 0xCA9D #HANGUL SYLLABLE SSANGCIEUC YEO THIEUTH +0xB956 0xCA9E #HANGUL SYLLABLE SSANGCIEUC YEO PHIEUPH +0xB957 0xCA9F #HANGUL SYLLABLE SSANGCIEUC YEO HIEUH +0xB958 0xCA86 #HANGUL SYLLABLE SSANGCIEUC YEO SSANGKIYEOK +0xB959 0xCABF #HANGUL SYLLABLE SSANGCIEUC O KIYEOKSIOS +0xB95A 0xCAC1 #HANGUL SYLLABLE SSANGCIEUC O NIEUNCIEUC +0xB961 0xCAC2 #HANGUL SYLLABLE SSANGCIEUC O NIEUNHIEUH +0xB962 0xCAC3 #HANGUL SYLLABLE SSANGCIEUC O TIKEUT +0xB963 0xCAC5 #HANGUL SYLLABLE SSANGCIEUC O RIEULKIYEOK +0xB964 0xCAC6 #HANGUL SYLLABLE SSANGCIEUC O RIEULMIEUM +0xB965 0xCAC7 #HANGUL SYLLABLE SSANGCIEUC O RIEULPIEUP +0xB966 0xCAC8 #HANGUL SYLLABLE SSANGCIEUC O RIEULSIOS +0xB967 0xCAC9 #HANGUL SYLLABLE SSANGCIEUC O RIEULTHIEUTH +0xB968 0xCACA #HANGUL SYLLABLE SSANGCIEUC O RIEULPHIEUPH +0xB969 0xCACB #HANGUL SYLLABLE SSANGCIEUC O RIEULHIEUH +0xB96A 0xCACE #HANGUL SYLLABLE SSANGCIEUC O PIEUPSIOS +0xB96B 0xCAD4 #HANGUL SYLLABLE SSANGCIEUC O KHIEUKH +0xB96C 0xCAD5 #HANGUL SYLLABLE SSANGCIEUC O THIEUTH +0xB96D 0xCAD6 #HANGUL SYLLABLE SSANGCIEUC O PHIEUPH +0xB96E 0xCABE #HANGUL SYLLABLE SSANGCIEUC O SSANGKIYEOK +0xB96F 0xCAD0 #HANGUL SYLLABLE SSANGCIEUC O SSANGSIOS +0xB970 0xCB2D #HANGUL SYLLABLE SSANGCIEUC YO KIYEOK +0xB971 0xCB2F #HANGUL SYLLABLE SSANGCIEUC YO KIYEOKSIOS +0xB972 0xCB31 #HANGUL SYLLABLE SSANGCIEUC YO NIEUNCIEUC +0xB973 0xCB32 #HANGUL SYLLABLE SSANGCIEUC YO NIEUNHIEUH +0xB974 0xCB33 #HANGUL SYLLABLE SSANGCIEUC YO TIKEUT +0xB975 0xCB34 #HANGUL SYLLABLE SSANGCIEUC YO RIEUL +0xB976 0xCB35 #HANGUL SYLLABLE SSANGCIEUC YO RIEULKIYEOK +0xB977 0xCB36 #HANGUL SYLLABLE SSANGCIEUC YO RIEULMIEUM +0xB978 0xCB37 #HANGUL SYLLABLE SSANGCIEUC YO RIEULPIEUP +0xB979 0xCB38 #HANGUL SYLLABLE SSANGCIEUC YO RIEULSIOS +0xB97A 0xCB39 #HANGUL SYLLABLE SSANGCIEUC YO RIEULTHIEUTH +0xB981 0xCB3A #HANGUL SYLLABLE SSANGCIEUC YO RIEULPHIEUPH +0xB982 0xCB3B #HANGUL SYLLABLE SSANGCIEUC YO RIEULHIEUH +0xB983 0xCB3D #HANGUL SYLLABLE SSANGCIEUC YO PIEUP +0xB984 0xCB3E #HANGUL SYLLABLE SSANGCIEUC YO PIEUPSIOS +0xB985 0xCB3F #HANGUL SYLLABLE SSANGCIEUC YO SIOS +0xB986 0xCB42 #HANGUL SYLLABLE SSANGCIEUC YO CIEUC +0xB987 0xCB43 #HANGUL SYLLABLE SSANGCIEUC YO CHIEUCH +0xB988 0xCB44 #HANGUL SYLLABLE SSANGCIEUC YO KHIEUKH +0xB989 0xCB45 #HANGUL SYLLABLE SSANGCIEUC YO THIEUTH +0xB98A 0xCB46 #HANGUL SYLLABLE SSANGCIEUC YO PHIEUPH +0xB98B 0xCB47 #HANGUL SYLLABLE SSANGCIEUC YO HIEUH +0xB98C 0xCB2E #HANGUL SYLLABLE SSANGCIEUC YO SSANGKIYEOK +0xB98D 0xCB40 #HANGUL SYLLABLE SSANGCIEUC YO SSANGSIOS +0xB98E 0xCB4B #HANGUL SYLLABLE SSANGCIEUC U KIYEOKSIOS +0xB98F 0xCB4D #HANGUL SYLLABLE SSANGCIEUC U NIEUNCIEUC +0xB990 0xCB4E #HANGUL SYLLABLE SSANGCIEUC U NIEUNHIEUH +0xB991 0xCB4F #HANGUL SYLLABLE SSANGCIEUC U TIKEUT +0xB992 0xCB51 #HANGUL SYLLABLE SSANGCIEUC U RIEULKIYEOK +0xB993 0xCB52 #HANGUL SYLLABLE SSANGCIEUC U RIEULMIEUM +0xB994 0xCB53 #HANGUL SYLLABLE SSANGCIEUC U RIEULPIEUP +0xB995 0xCB54 #HANGUL SYLLABLE SSANGCIEUC U RIEULSIOS +0xB996 0xCB55 #HANGUL SYLLABLE SSANGCIEUC U RIEULTHIEUTH +0xB997 0xCB56 #HANGUL SYLLABLE SSANGCIEUC U RIEULPHIEUPH +0xB998 0xCB57 #HANGUL SYLLABLE SSANGCIEUC U RIEULHIEUH +0xB999 0xCB5A #HANGUL SYLLABLE SSANGCIEUC U PIEUPSIOS +0xB99A 0xCB5E #HANGUL SYLLABLE SSANGCIEUC U CIEUC +0xB99B 0xCB5F #HANGUL SYLLABLE SSANGCIEUC U CHIEUCH +0xB99C 0xCB60 #HANGUL SYLLABLE SSANGCIEUC U KHIEUKH +0xB99D 0xCB61 #HANGUL SYLLABLE SSANGCIEUC U THIEUTH +0xB99E 0xCB62 #HANGUL SYLLABLE SSANGCIEUC U PHIEUPH +0xB99F 0xCB63 #HANGUL SYLLABLE SSANGCIEUC U HIEUH +0xB9A0 0xCB4A #HANGUL SYLLABLE SSANGCIEUC U SSANGKIYEOK +0xB9A1 0xBD6C #HANGUL SYLLABLE PIEUP YO RIEUL +0xB9A2 0xBD80 #HANGUL SYLLABLE PIEUP U +0xB9A3 0xBD81 #HANGUL SYLLABLE PIEUP U KIYEOK +0xB9A4 0xBD84 #HANGUL SYLLABLE PIEUP U NIEUN +0xB9A5 0xBD87 #HANGUL SYLLABLE PIEUP U TIKEUT +0xB9A6 0xBD88 #HANGUL SYLLABLE PIEUP U RIEUL +0xB9A7 0xBD89 #HANGUL SYLLABLE PIEUP U RIEULKIYEOK +0xB9A8 0xBD8A #HANGUL SYLLABLE PIEUP U RIEULMIEUM +0xB9A9 0xBD90 #HANGUL SYLLABLE PIEUP U MIEUM +0xB9AA 0xBD91 #HANGUL SYLLABLE PIEUP U PIEUP +0xB9AB 0xBD93 #HANGUL SYLLABLE PIEUP U SIOS +0xB9AC 0xBD95 #HANGUL SYLLABLE PIEUP U IEUNG +0xB9AD 0xBD99 #HANGUL SYLLABLE PIEUP U THIEUTH +0xB9AE 0xBD9A #HANGUL SYLLABLE PIEUP U PHIEUPH +0xB9AF 0xBDF0 #HANGUL SYLLABLE PIEUP YU +0xB9B0 0xBDF4 #HANGUL SYLLABLE PIEUP YU NIEUN +0xB9B1 0xBDF8 #HANGUL SYLLABLE PIEUP YU RIEUL +0xB9B2 0xBE00 #HANGUL SYLLABLE PIEUP YU MIEUM +0xB9B3 0xBE01 #HANGUL SYLLABLE PIEUP YU PIEUP +0xB9B4 0xBE03 #HANGUL SYLLABLE PIEUP YU SIOS +0xB9B5 0xBE05 #HANGUL SYLLABLE PIEUP YU IEUNG +0xB9B6 0xBE0C #HANGUL SYLLABLE PIEUP EU +0xB9B7 0xBE0D #HANGUL SYLLABLE PIEUP EU KIYEOK +0xB9B8 0xBE10 #HANGUL SYLLABLE PIEUP EU NIEUN +0xB9B9 0xBE14 #HANGUL SYLLABLE PIEUP EU RIEUL +0xB9BA 0xBE1C #HANGUL SYLLABLE PIEUP EU MIEUM +0xB9BB 0xBE1D #HANGUL SYLLABLE PIEUP EU PIEUP +0xB9BC 0xBE1F #HANGUL SYLLABLE PIEUP EU SIOS +0xB9BD 0xBE21 #HANGUL SYLLABLE PIEUP EU IEUNG +0xB9BE 0xBE44 #HANGUL SYLLABLE PIEUP I +0xB9BF 0xBE45 #HANGUL SYLLABLE PIEUP I KIYEOK +0xB9C0 0xBE48 #HANGUL SYLLABLE PIEUP I NIEUN +0xB9C1 0xBE4C #HANGUL SYLLABLE PIEUP I RIEUL +0xB9C2 0xBE4E #HANGUL SYLLABLE PIEUP I RIEULMIEUM +0xB9C3 0xBE54 #HANGUL SYLLABLE PIEUP I MIEUM +0xB9C4 0xBE55 #HANGUL SYLLABLE PIEUP I PIEUP +0xB9C5 0xBE57 #HANGUL SYLLABLE PIEUP I SIOS +0xB9C6 0xBE59 #HANGUL SYLLABLE PIEUP I IEUNG +0xB9C7 0xBE5A #HANGUL SYLLABLE PIEUP I CIEUC +0xB9C8 0xBE5B #HANGUL SYLLABLE PIEUP I CHIEUCH +0xB9C9 0xBC30 #HANGUL SYLLABLE PIEUP AE +0xB9CA 0xBC31 #HANGUL SYLLABLE PIEUP AE KIYEOK +0xB9CB 0xBC34 #HANGUL SYLLABLE PIEUP AE NIEUN +0xB9CC 0xBC37 #HANGUL SYLLABLE PIEUP AE TIKEUT +0xB9CD 0xBC38 #HANGUL SYLLABLE PIEUP AE RIEUL +0xB9CE 0xBC40 #HANGUL SYLLABLE PIEUP AE MIEUM +0xB9CF 0xBC41 #HANGUL SYLLABLE PIEUP AE PIEUP +0xB9D0 0xBC43 #HANGUL SYLLABLE PIEUP AE SIOS +0xB9D1 0xBC45 #HANGUL SYLLABLE PIEUP AE IEUNG +0xB9D2 0xBC49 #HANGUL SYLLABLE PIEUP AE THIEUTH +0xB9D3 0xBC44 #HANGUL SYLLABLE PIEUP AE SSANGSIOS +0xB9D4 0xBC68 #HANGUL SYLLABLE PIEUP YAE +0xB9D5 0xBCA0 #HANGUL SYLLABLE PIEUP E +0xB9D6 0xBCA1 #HANGUL SYLLABLE PIEUP E KIYEOK +0xB9D7 0xBCA4 #HANGUL SYLLABLE PIEUP E NIEUN +0xB9D8 0xBCA7 #HANGUL SYLLABLE PIEUP E TIKEUT +0xB9D9 0xBCA8 #HANGUL SYLLABLE PIEUP E RIEUL +0xB9DA 0xBCB0 #HANGUL SYLLABLE PIEUP E MIEUM +0xB9DB 0xBCB1 #HANGUL SYLLABLE PIEUP E PIEUP +0xB9DC 0xBCB3 #HANGUL SYLLABLE PIEUP E SIOS +0xB9DD 0xBCB5 #HANGUL SYLLABLE PIEUP E IEUNG +0xB9DE 0xBCB4 #HANGUL SYLLABLE PIEUP E SSANGSIOS +0xB9DF 0xBCD8 #HANGUL SYLLABLE PIEUP YE +0xB9E0 0xBCDC #HANGUL SYLLABLE PIEUP YE NIEUN +0xB9E1 0xBD48 #HANGUL SYLLABLE PIEUP OE +0xB9E2 0xBD49 #HANGUL SYLLABLE PIEUP OE KIYEOK +0xB9E3 0xBD4C #HANGUL SYLLABLE PIEUP OE NIEUN +0xB9E4 0xBD50 #HANGUL SYLLABLE PIEUP OE RIEUL +0xB9E5 0xBD58 #HANGUL SYLLABLE PIEUP OE MIEUM +0xB9E6 0xBD59 #HANGUL SYLLABLE PIEUP OE PIEUP +0xB9E7 0xBD5C #HANGUL SYLLABLE PIEUP OE SSANGSIOS +0xB9E8 0xBDD4 #HANGUL SYLLABLE PIEUP WI +0xB9E9 0xBDD5 #HANGUL SYLLABLE PIEUP WI KIYEOK +0xB9EA 0xBDD8 #HANGUL SYLLABLE PIEUP WI NIEUN +0xB9EB 0xBDDC #HANGUL SYLLABLE PIEUP WI RIEUL +0xB9EC 0xBDE9 #HANGUL SYLLABLE PIEUP WI IEUNG +0xB9ED 0xBE28 #HANGUL SYLLABLE PIEUP YI +0xB9EE 0xBE2C #HANGUL SYLLABLE PIEUP YI NIEUN +0xB9EF 0xBE30 #HANGUL SYLLABLE PIEUP YI RIEUL +0xB9F0 0xBE3D #HANGUL SYLLABLE PIEUP YI IEUNG +0xB9F1 0xBD10 #HANGUL SYLLABLE PIEUP WA +0xB9F2 0xBD14 #HANGUL SYLLABLE PIEUP WA NIEUN +0xB9F3 0xBD21 #HANGUL SYLLABLE PIEUP WA PIEUP +0xB9F4 0xBD23 #HANGUL SYLLABLE PIEUP WA SIOS +0xB9F5 0xBD24 #HANGUL SYLLABLE PIEUP WA SSANGSIOS +0xB9F6 0xBD9C #HANGUL SYLLABLE PIEUP WEO +0xB9F7 0xBDA4 #HANGUL SYLLABLE PIEUP WEO RIEUL +0xB9F8 0xBDAF #HANGUL SYLLABLE PIEUP WEO SIOS +0xB9F9 0xBDB4 #HANGUL SYLLABLE PIEUP WEO KHIEUKH +0xB9FA 0xBDB0 #HANGUL SYLLABLE PIEUP WEO SSANGSIOS +0xB9FB 0xBD2C #HANGUL SYLLABLE PIEUP WAE +0xB9FC 0xBD30 #HANGUL SYLLABLE PIEUP WAE NIEUN +0xB9FD 0xBD40 #HANGUL SYLLABLE PIEUP WAE SSANGSIOS +0xB9FE 0xBDB8 #HANGUL SYLLABLE PIEUP WE +0xBA41 0xCB5C #HANGUL SYLLABLE SSANGCIEUC U SSANGSIOS +0xBA42 0xCBB9 #HANGUL SYLLABLE SSANGCIEUC YU KIYEOK +0xBA43 0xCBBB #HANGUL SYLLABLE SSANGCIEUC YU KIYEOKSIOS +0xBA44 0xCBBC #HANGUL SYLLABLE SSANGCIEUC YU NIEUN +0xBA45 0xCBBD #HANGUL SYLLABLE SSANGCIEUC YU NIEUNCIEUC +0xBA46 0xCBBE #HANGUL SYLLABLE SSANGCIEUC YU NIEUNHIEUH +0xBA47 0xCBBF #HANGUL SYLLABLE SSANGCIEUC YU TIKEUT +0xBA48 0xCBC1 #HANGUL SYLLABLE SSANGCIEUC YU RIEULKIYEOK +0xBA49 0xCBC2 #HANGUL SYLLABLE SSANGCIEUC YU RIEULMIEUM +0xBA4A 0xCBC3 #HANGUL SYLLABLE SSANGCIEUC YU RIEULPIEUP +0xBA4B 0xCBC4 #HANGUL SYLLABLE SSANGCIEUC YU RIEULSIOS +0xBA4C 0xCBC5 #HANGUL SYLLABLE SSANGCIEUC YU RIEULTHIEUTH +0xBA4D 0xCBC6 #HANGUL SYLLABLE SSANGCIEUC YU RIEULPHIEUPH +0xBA4E 0xCBC7 #HANGUL SYLLABLE SSANGCIEUC YU RIEULHIEUH +0xBA4F 0xCBC8 #HANGUL SYLLABLE SSANGCIEUC YU MIEUM +0xBA50 0xCBC9 #HANGUL SYLLABLE SSANGCIEUC YU PIEUP +0xBA51 0xCBCA #HANGUL SYLLABLE SSANGCIEUC YU PIEUPSIOS +0xBA52 0xCBCB #HANGUL SYLLABLE SSANGCIEUC YU SIOS +0xBA53 0xCBCD #HANGUL SYLLABLE SSANGCIEUC YU IEUNG +0xBA54 0xCBCE #HANGUL SYLLABLE SSANGCIEUC YU CIEUC +0xBA55 0xCBCF #HANGUL SYLLABLE SSANGCIEUC YU CHIEUCH +0xBA56 0xCBD0 #HANGUL SYLLABLE SSANGCIEUC YU KHIEUKH +0xBA57 0xCBD1 #HANGUL SYLLABLE SSANGCIEUC YU THIEUTH +0xBA58 0xCBD2 #HANGUL SYLLABLE SSANGCIEUC YU PHIEUPH +0xBA59 0xCBD3 #HANGUL SYLLABLE SSANGCIEUC YU HIEUH +0xBA5A 0xCBBA #HANGUL SYLLABLE SSANGCIEUC YU SSANGKIYEOK +0xBA61 0xCBCC #HANGUL SYLLABLE SSANGCIEUC YU SSANGSIOS +0xBA62 0xCBD7 #HANGUL SYLLABLE SSANGCIEUC EU KIYEOKSIOS +0xBA63 0xCBD9 #HANGUL SYLLABLE SSANGCIEUC EU NIEUNCIEUC +0xBA64 0xCBDA #HANGUL SYLLABLE SSANGCIEUC EU NIEUNHIEUH +0xBA65 0xCBDB #HANGUL SYLLABLE SSANGCIEUC EU TIKEUT +0xBA66 0xCBDD #HANGUL SYLLABLE SSANGCIEUC EU RIEULKIYEOK +0xBA67 0xCBDE #HANGUL SYLLABLE SSANGCIEUC EU RIEULMIEUM +0xBA68 0xCBDF #HANGUL SYLLABLE SSANGCIEUC EU RIEULPIEUP +0xBA69 0xCBE0 #HANGUL SYLLABLE SSANGCIEUC EU RIEULSIOS +0xBA6A 0xCBE1 #HANGUL SYLLABLE SSANGCIEUC EU RIEULTHIEUTH +0xBA6B 0xCBE2 #HANGUL SYLLABLE SSANGCIEUC EU RIEULPHIEUPH +0xBA6C 0xCBE3 #HANGUL SYLLABLE SSANGCIEUC EU RIEULHIEUH +0xBA6D 0xCBE5 #HANGUL SYLLABLE SSANGCIEUC EU PIEUP +0xBA6E 0xCBE6 #HANGUL SYLLABLE SSANGCIEUC EU PIEUPSIOS +0xBA6F 0xCBEB #HANGUL SYLLABLE SSANGCIEUC EU CHIEUCH +0xBA70 0xCBEC #HANGUL SYLLABLE SSANGCIEUC EU KHIEUKH +0xBA71 0xCBED #HANGUL SYLLABLE SSANGCIEUC EU THIEUTH +0xBA72 0xCBEE #HANGUL SYLLABLE SSANGCIEUC EU PHIEUPH +0xBA73 0xCBEF #HANGUL SYLLABLE SSANGCIEUC EU HIEUH +0xBA74 0xCBD6 #HANGUL SYLLABLE SSANGCIEUC EU SSANGKIYEOK +0xBA75 0xCBE8 #HANGUL SYLLABLE SSANGCIEUC EU SSANGSIOS +0xBA76 0xCC0F #HANGUL SYLLABLE SSANGCIEUC I KIYEOKSIOS +0xBA77 0xCC11 #HANGUL SYLLABLE SSANGCIEUC I NIEUNCIEUC +0xBA78 0xCC12 #HANGUL SYLLABLE SSANGCIEUC I NIEUNHIEUH +0xBA79 0xCC13 #HANGUL SYLLABLE SSANGCIEUC I TIKEUT +0xBA7A 0xCC15 #HANGUL SYLLABLE SSANGCIEUC I RIEULKIYEOK +0xBA81 0xCC16 #HANGUL SYLLABLE SSANGCIEUC I RIEULMIEUM +0xBA82 0xCC17 #HANGUL SYLLABLE SSANGCIEUC I RIEULPIEUP +0xBA83 0xCC18 #HANGUL SYLLABLE SSANGCIEUC I RIEULSIOS +0xBA84 0xCC19 #HANGUL SYLLABLE SSANGCIEUC I RIEULTHIEUTH +0xBA85 0xCC1A #HANGUL SYLLABLE SSANGCIEUC I RIEULPHIEUPH +0xBA86 0xCC1B #HANGUL SYLLABLE SSANGCIEUC I RIEULHIEUH +0xBA87 0xCC1E #HANGUL SYLLABLE SSANGCIEUC I PIEUPSIOS +0xBA88 0xCC23 #HANGUL SYLLABLE SSANGCIEUC I CHIEUCH +0xBA89 0xCC24 #HANGUL SYLLABLE SSANGCIEUC I KHIEUKH +0xBA8A 0xCC25 #HANGUL SYLLABLE SSANGCIEUC I THIEUTH +0xBA8B 0xCC0E #HANGUL SYLLABLE SSANGCIEUC I SSANGKIYEOK +0xBA8C 0xCC20 #HANGUL SYLLABLE SSANGCIEUC I SSANGSIOS +0xBA8D 0xC9FB #HANGUL SYLLABLE SSANGCIEUC AE KIYEOKSIOS +0xBA8E 0xC9FD #HANGUL SYLLABLE SSANGCIEUC AE NIEUNCIEUC +0xBA8F 0xC9FE #HANGUL SYLLABLE SSANGCIEUC AE NIEUNHIEUH +0xBA90 0xC9FF #HANGUL SYLLABLE SSANGCIEUC AE TIKEUT +0xBA91 0xCA01 #HANGUL SYLLABLE SSANGCIEUC AE RIEULKIYEOK +0xBA92 0xCA02 #HANGUL SYLLABLE SSANGCIEUC AE RIEULMIEUM +0xBA93 0xCA03 #HANGUL SYLLABLE SSANGCIEUC AE RIEULPIEUP +0xBA94 0xCA04 #HANGUL SYLLABLE SSANGCIEUC AE RIEULSIOS +0xBA95 0xCA05 #HANGUL SYLLABLE SSANGCIEUC AE RIEULTHIEUTH +0xBA96 0xCA06 #HANGUL SYLLABLE SSANGCIEUC AE RIEULPHIEUPH +0xBA97 0xCA07 #HANGUL SYLLABLE SSANGCIEUC AE RIEULHIEUH +0xBA98 0xCA0A #HANGUL SYLLABLE SSANGCIEUC AE PIEUPSIOS +0xBA99 0xCA0E #HANGUL SYLLABLE SSANGCIEUC AE CIEUC +0xBA9A 0xCA0F #HANGUL SYLLABLE SSANGCIEUC AE CHIEUCH +0xBA9B 0xCA10 #HANGUL SYLLABLE SSANGCIEUC AE KHIEUKH +0xBA9C 0xCA11 #HANGUL SYLLABLE SSANGCIEUC AE THIEUTH +0xBA9D 0xCA12 #HANGUL SYLLABLE SSANGCIEUC AE PHIEUPH +0xBA9E 0xCA13 #HANGUL SYLLABLE SSANGCIEUC AE HIEUH +0xBA9F 0xC9FA #HANGUL SYLLABLE SSANGCIEUC AE SSANGKIYEOK +0xBAA0 0xCA31 #HANGUL SYLLABLE SSANGCIEUC YAE KIYEOK +0xBAA1 0xC0AC #HANGUL SYLLABLE SIOS A +0xBAA2 0xC0AD #HANGUL SYLLABLE SIOS A KIYEOK +0xBAA3 0xC0AF #HANGUL SYLLABLE SIOS A KIYEOKSIOS +0xBAA4 0xC0B0 #HANGUL SYLLABLE SIOS A NIEUN +0xBAA5 0xC0B3 #HANGUL SYLLABLE SIOS A TIKEUT +0xBAA6 0xC0B4 #HANGUL SYLLABLE SIOS A RIEUL +0xBAA7 0xC0B5 #HANGUL SYLLABLE SIOS A RIEULKIYEOK +0xBAA8 0xC0B6 #HANGUL SYLLABLE SIOS A RIEULMIEUM +0xBAA9 0xC0BC #HANGUL SYLLABLE SIOS A MIEUM +0xBAAA 0xC0BD #HANGUL SYLLABLE SIOS A PIEUP +0xBAAB 0xC0BF #HANGUL SYLLABLE SIOS A SIOS +0xBAAC 0xC0C1 #HANGUL SYLLABLE SIOS A IEUNG +0xBAAD 0xC0C5 #HANGUL SYLLABLE SIOS A THIEUTH +0xBAAE 0xC0C0 #HANGUL SYLLABLE SIOS A SSANGSIOS +0xBAAF 0xC0E4 #HANGUL SYLLABLE SIOS YA +0xBAB0 0xC0E5 #HANGUL SYLLABLE SIOS YA KIYEOK +0xBAB1 0xC0E8 #HANGUL SYLLABLE SIOS YA NIEUN +0xBAB2 0xC0EC #HANGUL SYLLABLE SIOS YA RIEUL +0xBAB3 0xC0F4 #HANGUL SYLLABLE SIOS YA MIEUM +0xBAB4 0xC0F5 #HANGUL SYLLABLE SIOS YA PIEUP +0xBAB5 0xC0F7 #HANGUL SYLLABLE SIOS YA SIOS +0xBAB6 0xC0F9 #HANGUL SYLLABLE SIOS YA IEUNG +0xBAB7 0xC11C #HANGUL SYLLABLE SIOS EO +0xBAB8 0xC11D #HANGUL SYLLABLE SIOS EO KIYEOK +0xBAB9 0xC11F #HANGUL SYLLABLE SIOS EO KIYEOKSIOS +0xBABA 0xC120 #HANGUL SYLLABLE SIOS EO NIEUN +0xBABB 0xC123 #HANGUL SYLLABLE SIOS EO TIKEUT +0xBABC 0xC124 #HANGUL SYLLABLE SIOS EO RIEUL +0xBABD 0xC126 #HANGUL SYLLABLE SIOS EO RIEULMIEUM +0xBABE 0xC127 #HANGUL SYLLABLE SIOS EO RIEULPIEUP +0xBABF 0xC12C #HANGUL SYLLABLE SIOS EO MIEUM +0xBAC0 0xC12D #HANGUL SYLLABLE SIOS EO PIEUP +0xBAC1 0xC12F #HANGUL SYLLABLE SIOS EO SIOS +0xBAC2 0xC131 #HANGUL SYLLABLE SIOS EO IEUNG +0xBAC3 0xC136 #HANGUL SYLLABLE SIOS EO PHIEUPH +0xBAC4 0xC11E #HANGUL SYLLABLE SIOS EO SSANGKIYEOK +0xBAC5 0xC130 #HANGUL SYLLABLE SIOS EO SSANGSIOS +0xBAC6 0xC154 #HANGUL SYLLABLE SIOS YEO +0xBAC7 0xC155 #HANGUL SYLLABLE SIOS YEO KIYEOK +0xBAC8 0xC158 #HANGUL SYLLABLE SIOS YEO NIEUN +0xBAC9 0xC15C #HANGUL SYLLABLE SIOS YEO RIEUL +0xBACA 0xC164 #HANGUL SYLLABLE SIOS YEO MIEUM +0xBACB 0xC165 #HANGUL SYLLABLE SIOS YEO PIEUP +0xBACC 0xC167 #HANGUL SYLLABLE SIOS YEO SIOS +0xBACD 0xC169 #HANGUL SYLLABLE SIOS YEO IEUNG +0xBACE 0xC168 #HANGUL SYLLABLE SIOS YEO SSANGSIOS +0xBACF 0xC18C #HANGUL SYLLABLE SIOS O +0xBAD0 0xC18D #HANGUL SYLLABLE SIOS O KIYEOK +0xBAD1 0xC190 #HANGUL SYLLABLE SIOS O NIEUN +0xBAD2 0xC193 #HANGUL SYLLABLE SIOS O TIKEUT +0xBAD3 0xC194 #HANGUL SYLLABLE SIOS O RIEUL +0xBAD4 0xC196 #HANGUL SYLLABLE SIOS O RIEULMIEUM +0xBAD5 0xC19C #HANGUL SYLLABLE SIOS O MIEUM +0xBAD6 0xC19D #HANGUL SYLLABLE SIOS O PIEUP +0xBAD7 0xC19F #HANGUL SYLLABLE SIOS O SIOS +0xBAD8 0xC1A1 #HANGUL SYLLABLE SIOS O IEUNG +0xBAD9 0xC1A5 #HANGUL SYLLABLE SIOS O THIEUTH +0xBADA 0xC18E #HANGUL SYLLABLE SIOS O SSANGKIYEOK +0xBADB 0xC1FC #HANGUL SYLLABLE SIOS YO +0xBADC 0xC1FD #HANGUL SYLLABLE SIOS YO KIYEOK +0xBADD 0xC200 #HANGUL SYLLABLE SIOS YO NIEUN +0xBADE 0xC204 #HANGUL SYLLABLE SIOS YO RIEUL +0xBADF 0xC20C #HANGUL SYLLABLE SIOS YO MIEUM +0xBAE0 0xC20D #HANGUL SYLLABLE SIOS YO PIEUP +0xBAE1 0xC20F #HANGUL SYLLABLE SIOS YO SIOS +0xBAE2 0xC211 #HANGUL SYLLABLE SIOS YO IEUNG +0xBAE3 0xC218 #HANGUL SYLLABLE SIOS U +0xBAE4 0xC219 #HANGUL SYLLABLE SIOS U KIYEOK +0xBAE5 0xC21C #HANGUL SYLLABLE SIOS U NIEUN +0xBAE6 0xC21F #HANGUL SYLLABLE SIOS U TIKEUT +0xBAE7 0xC220 #HANGUL SYLLABLE SIOS U RIEUL +0xBAE8 0xC228 #HANGUL SYLLABLE SIOS U MIEUM +0xBAE9 0xC229 #HANGUL SYLLABLE SIOS U PIEUP +0xBAEA 0xC22B #HANGUL SYLLABLE SIOS U SIOS +0xBAEB 0xC22D #HANGUL SYLLABLE SIOS U IEUNG +0xBAEC 0xC22F #HANGUL SYLLABLE SIOS U CHIEUCH +0xBAED 0xC231 #HANGUL SYLLABLE SIOS U THIEUTH +0xBAEE 0xC232 #HANGUL SYLLABLE SIOS U PHIEUPH +0xBAEF 0xC288 #HANGUL SYLLABLE SIOS YU +0xBAF0 0xC289 #HANGUL SYLLABLE SIOS YU KIYEOK +0xBAF1 0xC28C #HANGUL SYLLABLE SIOS YU NIEUN +0xBAF2 0xC290 #HANGUL SYLLABLE SIOS YU RIEUL +0xBAF3 0xC298 #HANGUL SYLLABLE SIOS YU MIEUM +0xBAF4 0xC299 #HANGUL SYLLABLE SIOS YU PIEUP +0xBAF5 0xC29B #HANGUL SYLLABLE SIOS YU SIOS +0xBAF6 0xC29D #HANGUL SYLLABLE SIOS YU IEUNG +0xBAF7 0xC2A4 #HANGUL SYLLABLE SIOS EU +0xBAF8 0xC2A5 #HANGUL SYLLABLE SIOS EU KIYEOK +0xBAF9 0xC2A8 #HANGUL SYLLABLE SIOS EU NIEUN +0xBAFA 0xC2AC #HANGUL SYLLABLE SIOS EU RIEUL +0xBAFB 0xC2AD #HANGUL SYLLABLE SIOS EU RIEULKIYEOK +0xBAFC 0xC2B2 #HANGUL SYLLABLE SIOS EU RIEULPHIEUPH +0xBAFD 0xC2B3 #HANGUL SYLLABLE SIOS EU RIEULHIEUH +0xBAFE 0xC2B4 #HANGUL SYLLABLE SIOS EU MIEUM +0xBB41 0xCA33 #HANGUL SYLLABLE SSANGCIEUC YAE KIYEOKSIOS +0xBB42 0xCA35 #HANGUL SYLLABLE SSANGCIEUC YAE NIEUNCIEUC +0xBB43 0xCA36 #HANGUL SYLLABLE SSANGCIEUC YAE NIEUNHIEUH +0xBB44 0xCA37 #HANGUL SYLLABLE SSANGCIEUC YAE TIKEUT +0xBB45 0xCA38 #HANGUL SYLLABLE SSANGCIEUC YAE RIEUL +0xBB46 0xCA39 #HANGUL SYLLABLE SSANGCIEUC YAE RIEULKIYEOK +0xBB47 0xCA3A #HANGUL SYLLABLE SSANGCIEUC YAE RIEULMIEUM +0xBB48 0xCA3B #HANGUL SYLLABLE SSANGCIEUC YAE RIEULPIEUP +0xBB49 0xCA3C #HANGUL SYLLABLE SSANGCIEUC YAE RIEULSIOS +0xBB4A 0xCA3D #HANGUL SYLLABLE SSANGCIEUC YAE RIEULTHIEUTH +0xBB4B 0xCA3E #HANGUL SYLLABLE SSANGCIEUC YAE RIEULPHIEUPH +0xBB4C 0xCA3F #HANGUL SYLLABLE SSANGCIEUC YAE RIEULHIEUH +0xBB4D 0xCA40 #HANGUL SYLLABLE SSANGCIEUC YAE MIEUM +0xBB4E 0xCA41 #HANGUL SYLLABLE SSANGCIEUC YAE PIEUP +0xBB4F 0xCA42 #HANGUL SYLLABLE SSANGCIEUC YAE PIEUPSIOS +0xBB50 0xCA43 #HANGUL SYLLABLE SSANGCIEUC YAE SIOS +0xBB51 0xCA45 #HANGUL SYLLABLE SSANGCIEUC YAE IEUNG +0xBB52 0xCA46 #HANGUL SYLLABLE SSANGCIEUC YAE CIEUC +0xBB53 0xCA47 #HANGUL SYLLABLE SSANGCIEUC YAE CHIEUCH +0xBB54 0xCA48 #HANGUL SYLLABLE SSANGCIEUC YAE KHIEUKH +0xBB55 0xCA49 #HANGUL SYLLABLE SSANGCIEUC YAE THIEUTH +0xBB56 0xCA4A #HANGUL SYLLABLE SSANGCIEUC YAE PHIEUPH +0xBB57 0xCA4B #HANGUL SYLLABLE SSANGCIEUC YAE HIEUH +0xBB58 0xCA32 #HANGUL SYLLABLE SSANGCIEUC YAE SSANGKIYEOK +0xBB59 0xCA44 #HANGUL SYLLABLE SSANGCIEUC YAE SSANGSIOS +0xBB5A 0xCA6B #HANGUL SYLLABLE SSANGCIEUC E KIYEOKSIOS +0xBB61 0xCA6D #HANGUL SYLLABLE SSANGCIEUC E NIEUNCIEUC +0xBB62 0xCA6E #HANGUL SYLLABLE SSANGCIEUC E NIEUNHIEUH +0xBB63 0xCA6F #HANGUL SYLLABLE SSANGCIEUC E TIKEUT +0xBB64 0xCA71 #HANGUL SYLLABLE SSANGCIEUC E RIEULKIYEOK +0xBB65 0xCA72 #HANGUL SYLLABLE SSANGCIEUC E RIEULMIEUM +0xBB66 0xCA73 #HANGUL SYLLABLE SSANGCIEUC E RIEULPIEUP +0xBB67 0xCA74 #HANGUL SYLLABLE SSANGCIEUC E RIEULSIOS +0xBB68 0xCA75 #HANGUL SYLLABLE SSANGCIEUC E RIEULTHIEUTH +0xBB69 0xCA76 #HANGUL SYLLABLE SSANGCIEUC E RIEULPHIEUPH +0xBB6A 0xCA77 #HANGUL SYLLABLE SSANGCIEUC E RIEULHIEUH +0xBB6B 0xCA7A #HANGUL SYLLABLE SSANGCIEUC E PIEUPSIOS +0xBB6C 0xCA7B #HANGUL SYLLABLE SSANGCIEUC E SIOS +0xBB6D 0xCA7E #HANGUL SYLLABLE SSANGCIEUC E CIEUC +0xBB6E 0xCA7F #HANGUL SYLLABLE SSANGCIEUC E CHIEUCH +0xBB6F 0xCA80 #HANGUL SYLLABLE SSANGCIEUC E KHIEUKH +0xBB70 0xCA81 #HANGUL SYLLABLE SSANGCIEUC E THIEUTH +0xBB71 0xCA82 #HANGUL SYLLABLE SSANGCIEUC E PHIEUPH +0xBB72 0xCA83 #HANGUL SYLLABLE SSANGCIEUC E HIEUH +0xBB73 0xCA6A #HANGUL SYLLABLE SSANGCIEUC E SSANGKIYEOK +0xBB74 0xCA7C #HANGUL SYLLABLE SSANGCIEUC E SSANGSIOS +0xBB75 0xCAA1 #HANGUL SYLLABLE SSANGCIEUC YE KIYEOK +0xBB76 0xCAA3 #HANGUL SYLLABLE SSANGCIEUC YE KIYEOKSIOS +0xBB77 0xCAA4 #HANGUL SYLLABLE SSANGCIEUC YE NIEUN +0xBB78 0xCAA5 #HANGUL SYLLABLE SSANGCIEUC YE NIEUNCIEUC +0xBB79 0xCAA6 #HANGUL SYLLABLE SSANGCIEUC YE NIEUNHIEUH +0xBB7A 0xCAA7 #HANGUL SYLLABLE SSANGCIEUC YE TIKEUT +0xBB81 0xCAA8 #HANGUL SYLLABLE SSANGCIEUC YE RIEUL +0xBB82 0xCAA9 #HANGUL SYLLABLE SSANGCIEUC YE RIEULKIYEOK +0xBB83 0xCAAA #HANGUL SYLLABLE SSANGCIEUC YE RIEULMIEUM +0xBB84 0xCAAB #HANGUL SYLLABLE SSANGCIEUC YE RIEULPIEUP +0xBB85 0xCAAC #HANGUL SYLLABLE SSANGCIEUC YE RIEULSIOS +0xBB86 0xCAAD #HANGUL SYLLABLE SSANGCIEUC YE RIEULTHIEUTH +0xBB87 0xCAAE #HANGUL SYLLABLE SSANGCIEUC YE RIEULPHIEUPH +0xBB88 0xCAAF #HANGUL SYLLABLE SSANGCIEUC YE RIEULHIEUH +0xBB89 0xCAB0 #HANGUL SYLLABLE SSANGCIEUC YE MIEUM +0xBB8A 0xCAB1 #HANGUL SYLLABLE SSANGCIEUC YE PIEUP +0xBB8B 0xCAB2 #HANGUL SYLLABLE SSANGCIEUC YE PIEUPSIOS +0xBB8C 0xCAB3 #HANGUL SYLLABLE SSANGCIEUC YE SIOS +0xBB8D 0xCAB5 #HANGUL SYLLABLE SSANGCIEUC YE IEUNG +0xBB8E 0xCAB6 #HANGUL SYLLABLE SSANGCIEUC YE CIEUC +0xBB8F 0xCAB7 #HANGUL SYLLABLE SSANGCIEUC YE CHIEUCH +0xBB90 0xCAB8 #HANGUL SYLLABLE SSANGCIEUC YE KHIEUKH +0xBB91 0xCAB9 #HANGUL SYLLABLE SSANGCIEUC YE THIEUTH +0xBB92 0xCABA #HANGUL SYLLABLE SSANGCIEUC YE PHIEUPH +0xBB93 0xCABB #HANGUL SYLLABLE SSANGCIEUC YE HIEUH +0xBB94 0xCAA2 #HANGUL SYLLABLE SSANGCIEUC YE SSANGKIYEOK +0xBB95 0xCAB4 #HANGUL SYLLABLE SSANGCIEUC YE SSANGSIOS +0xBB96 0xCB11 #HANGUL SYLLABLE SSANGCIEUC OE KIYEOK +0xBB97 0xCB13 #HANGUL SYLLABLE SSANGCIEUC OE KIYEOKSIOS +0xBB98 0xCB15 #HANGUL SYLLABLE SSANGCIEUC OE NIEUNCIEUC +0xBB99 0xCB16 #HANGUL SYLLABLE SSANGCIEUC OE NIEUNHIEUH +0xBB9A 0xCB17 #HANGUL SYLLABLE SSANGCIEUC OE TIKEUT +0xBB9B 0xCB19 #HANGUL SYLLABLE SSANGCIEUC OE RIEULKIYEOK +0xBB9C 0xCB1A #HANGUL SYLLABLE SSANGCIEUC OE RIEULMIEUM +0xBB9D 0xCB1B #HANGUL SYLLABLE SSANGCIEUC OE RIEULPIEUP +0xBB9E 0xCB1C #HANGUL SYLLABLE SSANGCIEUC OE RIEULSIOS +0xBB9F 0xCB1D #HANGUL SYLLABLE SSANGCIEUC OE RIEULTHIEUTH +0xBBA0 0xCB1E #HANGUL SYLLABLE SSANGCIEUC OE RIEULPHIEUPH +0xBBA1 0xC2B5 #HANGUL SYLLABLE SIOS EU PIEUP +0xBBA2 0xC2B7 #HANGUL SYLLABLE SIOS EU SIOS +0xBBA3 0xC2B9 #HANGUL SYLLABLE SIOS EU IEUNG +0xBBA4 0xC2DC #HANGUL SYLLABLE SIOS I +0xBBA5 0xC2DD #HANGUL SYLLABLE SIOS I KIYEOK +0xBBA6 0xC2E0 #HANGUL SYLLABLE SIOS I NIEUN +0xBBA7 0xC2E3 #HANGUL SYLLABLE SIOS I TIKEUT +0xBBA8 0xC2E4 #HANGUL SYLLABLE SIOS I RIEUL +0xBBA9 0xC2EB #HANGUL SYLLABLE SIOS I RIEULHIEUH +0xBBAA 0xC2EC #HANGUL SYLLABLE SIOS I MIEUM +0xBBAB 0xC2ED #HANGUL SYLLABLE SIOS I PIEUP +0xBBAC 0xC2EF #HANGUL SYLLABLE SIOS I SIOS +0xBBAD 0xC2F1 #HANGUL SYLLABLE SIOS I IEUNG +0xBBAE 0xC2F6 #HANGUL SYLLABLE SIOS I PHIEUPH +0xBBAF 0xC0C8 #HANGUL SYLLABLE SIOS AE +0xBBB0 0xC0C9 #HANGUL SYLLABLE SIOS AE KIYEOK +0xBBB1 0xC0CC #HANGUL SYLLABLE SIOS AE NIEUN +0xBBB2 0xC0D0 #HANGUL SYLLABLE SIOS AE RIEUL +0xBBB3 0xC0D8 #HANGUL SYLLABLE SIOS AE MIEUM +0xBBB4 0xC0D9 #HANGUL SYLLABLE SIOS AE PIEUP +0xBBB5 0xC0DB #HANGUL SYLLABLE SIOS AE SIOS +0xBBB6 0xC0DD #HANGUL SYLLABLE SIOS AE IEUNG +0xBBB7 0xC0DC #HANGUL SYLLABLE SIOS AE SSANGSIOS +0xBBB8 0xC100 #HANGUL SYLLABLE SIOS YAE +0xBBB9 0xC104 #HANGUL SYLLABLE SIOS YAE NIEUN +0xBBBA 0xC108 #HANGUL SYLLABLE SIOS YAE RIEUL +0xBBBB 0xC110 #HANGUL SYLLABLE SIOS YAE MIEUM +0xBBBC 0xC115 #HANGUL SYLLABLE SIOS YAE IEUNG +0xBBBD 0xC138 #HANGUL SYLLABLE SIOS E +0xBBBE 0xC139 #HANGUL SYLLABLE SIOS E KIYEOK +0xBBBF 0xC13C #HANGUL SYLLABLE SIOS E NIEUN +0xBBC0 0xC140 #HANGUL SYLLABLE SIOS E RIEUL +0xBBC1 0xC148 #HANGUL SYLLABLE SIOS E MIEUM +0xBBC2 0xC149 #HANGUL SYLLABLE SIOS E PIEUP +0xBBC3 0xC14B #HANGUL SYLLABLE SIOS E SIOS +0xBBC4 0xC14D #HANGUL SYLLABLE SIOS E IEUNG +0xBBC5 0xC151 #HANGUL SYLLABLE SIOS E THIEUTH +0xBBC6 0xC152 #HANGUL SYLLABLE SIOS E PHIEUPH +0xBBC7 0xC14C #HANGUL SYLLABLE SIOS E SSANGSIOS +0xBBC8 0xC170 #HANGUL SYLLABLE SIOS YE +0xBBC9 0xC174 #HANGUL SYLLABLE SIOS YE NIEUN +0xBBCA 0xC178 #HANGUL SYLLABLE SIOS YE RIEUL +0xBBCB 0xC185 #HANGUL SYLLABLE SIOS YE IEUNG +0xBBCC 0xC1E0 #HANGUL SYLLABLE SIOS OE +0xBBCD 0xC1E1 #HANGUL SYLLABLE SIOS OE KIYEOK +0xBBCE 0xC1E4 #HANGUL SYLLABLE SIOS OE NIEUN +0xBBCF 0xC1E8 #HANGUL SYLLABLE SIOS OE RIEUL +0xBBD0 0xC1F0 #HANGUL SYLLABLE SIOS OE MIEUM +0xBBD1 0xC1F1 #HANGUL SYLLABLE SIOS OE PIEUP +0xBBD2 0xC1F3 #HANGUL SYLLABLE SIOS OE SIOS +0xBBD3 0xC1F5 #HANGUL SYLLABLE SIOS OE IEUNG +0xBBD4 0xC1F4 #HANGUL SYLLABLE SIOS OE SSANGSIOS +0xBBD5 0xC26C #HANGUL SYLLABLE SIOS WI +0xBBD6 0xC26D #HANGUL SYLLABLE SIOS WI KIYEOK +0xBBD7 0xC270 #HANGUL SYLLABLE SIOS WI NIEUN +0xBBD8 0xC274 #HANGUL SYLLABLE SIOS WI RIEUL +0xBBD9 0xC27C #HANGUL SYLLABLE SIOS WI MIEUM +0xBBDA 0xC27D #HANGUL SYLLABLE SIOS WI PIEUP +0xBBDB 0xC27F #HANGUL SYLLABLE SIOS WI SIOS +0xBBDC 0xC281 #HANGUL SYLLABLE SIOS WI IEUNG +0xBBDD 0xC2C0 #HANGUL SYLLABLE SIOS YI +0xBBDE 0xC2C4 #HANGUL SYLLABLE SIOS YI NIEUN +0xBBDF 0xC1A8 #HANGUL SYLLABLE SIOS WA +0xBBE0 0xC1A9 #HANGUL SYLLABLE SIOS WA KIYEOK +0xBBE1 0xC1AC #HANGUL SYLLABLE SIOS WA NIEUN +0xBBE2 0xC1B0 #HANGUL SYLLABLE SIOS WA RIEUL +0xBBE3 0xC1BB #HANGUL SYLLABLE SIOS WA SIOS +0xBBE4 0xC1BD #HANGUL SYLLABLE SIOS WA IEUNG +0xBBE5 0xC234 #HANGUL SYLLABLE SIOS WEO +0xBBE6 0xC248 #HANGUL SYLLABLE SIOS WEO SSANGSIOS +0xBBE7 0xC1C4 #HANGUL SYLLABLE SIOS WAE +0xBBE8 0xC1C8 #HANGUL SYLLABLE SIOS WAE NIEUN +0xBBE9 0xC1CC #HANGUL SYLLABLE SIOS WAE RIEUL +0xBBEA 0xC1D4 #HANGUL SYLLABLE SIOS WAE MIEUM +0xBBEB 0xC1D7 #HANGUL SYLLABLE SIOS WAE SIOS +0xBBEC 0xC1D8 #HANGUL SYLLABLE SIOS WAE SSANGSIOS +0xBBED 0xC250 #HANGUL SYLLABLE SIOS WE +0xBBEE 0xC251 #HANGUL SYLLABLE SIOS WE KIYEOK +0xBBEF 0xC254 #HANGUL SYLLABLE SIOS WE NIEUN +0xBBF0 0xC258 #HANGUL SYLLABLE SIOS WE RIEUL +0xBBF1 0xC260 #HANGUL SYLLABLE SIOS WE MIEUM +0xBBF2 0xC261 #HANGUL SYLLABLE SIOS WE PIEUP +0xBBF3 0xC265 #HANGUL SYLLABLE SIOS WE IEUNG +0xBBF4 0xC790 #HANGUL SYLLABLE CIEUC A +0xBBF5 0xC791 #HANGUL SYLLABLE CIEUC A KIYEOK +0xBBF6 0xC794 #HANGUL SYLLABLE CIEUC A NIEUN +0xBBF7 0xC796 #HANGUL SYLLABLE CIEUC A NIEUNHIEUH +0xBBF8 0xC797 #HANGUL SYLLABLE CIEUC A TIKEUT +0xBBF9 0xC798 #HANGUL SYLLABLE CIEUC A RIEUL +0xBBFA 0xC79A #HANGUL SYLLABLE CIEUC A RIEULMIEUM +0xBBFB 0xC7A0 #HANGUL SYLLABLE CIEUC A MIEUM +0xBBFC 0xC7A1 #HANGUL SYLLABLE CIEUC A PIEUP +0xBBFD 0xC7A3 #HANGUL SYLLABLE CIEUC A SIOS +0xBBFE 0xC7A5 #HANGUL SYLLABLE CIEUC A IEUNG +0xBC41 0xCB1F #HANGUL SYLLABLE SSANGCIEUC OE RIEULHIEUH +0xBC42 0xCB22 #HANGUL SYLLABLE SSANGCIEUC OE PIEUPSIOS +0xBC43 0xCB23 #HANGUL SYLLABLE SSANGCIEUC OE SIOS +0xBC44 0xCB25 #HANGUL SYLLABLE SSANGCIEUC OE IEUNG +0xBC45 0xCB26 #HANGUL SYLLABLE SSANGCIEUC OE CIEUC +0xBC46 0xCB27 #HANGUL SYLLABLE SSANGCIEUC OE CHIEUCH +0xBC47 0xCB28 #HANGUL SYLLABLE SSANGCIEUC OE KHIEUKH +0xBC48 0xCB29 #HANGUL SYLLABLE SSANGCIEUC OE THIEUTH +0xBC49 0xCB2A #HANGUL SYLLABLE SSANGCIEUC OE PHIEUPH +0xBC4A 0xCB2B #HANGUL SYLLABLE SSANGCIEUC OE HIEUH +0xBC4B 0xCB12 #HANGUL SYLLABLE SSANGCIEUC OE SSANGKIYEOK +0xBC4C 0xCB9D #HANGUL SYLLABLE SSANGCIEUC WI KIYEOK +0xBC4D 0xCB9F #HANGUL SYLLABLE SSANGCIEUC WI KIYEOKSIOS +0xBC4E 0xCBA0 #HANGUL SYLLABLE SSANGCIEUC WI NIEUN +0xBC4F 0xCBA1 #HANGUL SYLLABLE SSANGCIEUC WI NIEUNCIEUC +0xBC50 0xCBA2 #HANGUL SYLLABLE SSANGCIEUC WI NIEUNHIEUH +0xBC51 0xCBA3 #HANGUL SYLLABLE SSANGCIEUC WI TIKEUT +0xBC52 0xCBA4 #HANGUL SYLLABLE SSANGCIEUC WI RIEUL +0xBC53 0xCBA5 #HANGUL SYLLABLE SSANGCIEUC WI RIEULKIYEOK +0xBC54 0xCBA6 #HANGUL SYLLABLE SSANGCIEUC WI RIEULMIEUM +0xBC55 0xCBA7 #HANGUL SYLLABLE SSANGCIEUC WI RIEULPIEUP +0xBC56 0xCBA8 #HANGUL SYLLABLE SSANGCIEUC WI RIEULSIOS +0xBC57 0xCBA9 #HANGUL SYLLABLE SSANGCIEUC WI RIEULTHIEUTH +0xBC58 0xCBAA #HANGUL SYLLABLE SSANGCIEUC WI RIEULPHIEUPH +0xBC59 0xCBAB #HANGUL SYLLABLE SSANGCIEUC WI RIEULHIEUH +0xBC5A 0xCBAC #HANGUL SYLLABLE SSANGCIEUC WI MIEUM +0xBC61 0xCBAD #HANGUL SYLLABLE SSANGCIEUC WI PIEUP +0xBC62 0xCBAE #HANGUL SYLLABLE SSANGCIEUC WI PIEUPSIOS +0xBC63 0xCBAF #HANGUL SYLLABLE SSANGCIEUC WI SIOS +0xBC64 0xCBB1 #HANGUL SYLLABLE SSANGCIEUC WI IEUNG +0xBC65 0xCBB2 #HANGUL SYLLABLE SSANGCIEUC WI CIEUC +0xBC66 0xCBB3 #HANGUL SYLLABLE SSANGCIEUC WI CHIEUCH +0xBC67 0xCBB4 #HANGUL SYLLABLE SSANGCIEUC WI KHIEUKH +0xBC68 0xCBB5 #HANGUL SYLLABLE SSANGCIEUC WI THIEUTH +0xBC69 0xCBB6 #HANGUL SYLLABLE SSANGCIEUC WI PHIEUPH +0xBC6A 0xCBB7 #HANGUL SYLLABLE SSANGCIEUC WI HIEUH +0xBC6B 0xCB9E #HANGUL SYLLABLE SSANGCIEUC WI SSANGKIYEOK +0xBC6C 0xCBB0 #HANGUL SYLLABLE SSANGCIEUC WI SSANGSIOS +0xBC6D 0xCBF1 #HANGUL SYLLABLE SSANGCIEUC YI KIYEOK +0xBC6E 0xCBF3 #HANGUL SYLLABLE SSANGCIEUC YI KIYEOKSIOS +0xBC6F 0xCBF5 #HANGUL SYLLABLE SSANGCIEUC YI NIEUNCIEUC +0xBC70 0xCBF6 #HANGUL SYLLABLE SSANGCIEUC YI NIEUNHIEUH +0xBC71 0xCBF7 #HANGUL SYLLABLE SSANGCIEUC YI TIKEUT +0xBC72 0xCBF8 #HANGUL SYLLABLE SSANGCIEUC YI RIEUL +0xBC73 0xCBF9 #HANGUL SYLLABLE SSANGCIEUC YI RIEULKIYEOK +0xBC74 0xCBFA #HANGUL SYLLABLE SSANGCIEUC YI RIEULMIEUM +0xBC75 0xCBFB #HANGUL SYLLABLE SSANGCIEUC YI RIEULPIEUP +0xBC76 0xCBFC #HANGUL SYLLABLE SSANGCIEUC YI RIEULSIOS +0xBC77 0xCBFD #HANGUL SYLLABLE SSANGCIEUC YI RIEULTHIEUTH +0xBC78 0xCBFE #HANGUL SYLLABLE SSANGCIEUC YI RIEULPHIEUPH +0xBC79 0xCBFF #HANGUL SYLLABLE SSANGCIEUC YI RIEULHIEUH +0xBC7A 0xCC00 #HANGUL SYLLABLE SSANGCIEUC YI MIEUM +0xBC81 0xCC01 #HANGUL SYLLABLE SSANGCIEUC YI PIEUP +0xBC82 0xCC02 #HANGUL SYLLABLE SSANGCIEUC YI PIEUPSIOS +0xBC83 0xCC03 #HANGUL SYLLABLE SSANGCIEUC YI SIOS +0xBC84 0xCC05 #HANGUL SYLLABLE SSANGCIEUC YI IEUNG +0xBC85 0xCC06 #HANGUL SYLLABLE SSANGCIEUC YI CIEUC +0xBC86 0xCC07 #HANGUL SYLLABLE SSANGCIEUC YI CHIEUCH +0xBC87 0xCC08 #HANGUL SYLLABLE SSANGCIEUC YI KHIEUKH +0xBC88 0xCC09 #HANGUL SYLLABLE SSANGCIEUC YI THIEUTH +0xBC89 0xCC0A #HANGUL SYLLABLE SSANGCIEUC YI PHIEUPH +0xBC8A 0xCC0B #HANGUL SYLLABLE SSANGCIEUC YI HIEUH +0xBC8B 0xCBF2 #HANGUL SYLLABLE SSANGCIEUC YI SSANGKIYEOK +0xBC8C 0xCC04 #HANGUL SYLLABLE SSANGCIEUC YI SSANGSIOS +0xBC8D 0xCADB #HANGUL SYLLABLE SSANGCIEUC WA KIYEOKSIOS +0xBC8E 0xCADD #HANGUL SYLLABLE SSANGCIEUC WA NIEUNCIEUC +0xBC8F 0xCADE #HANGUL SYLLABLE SSANGCIEUC WA NIEUNHIEUH +0xBC90 0xCADF #HANGUL SYLLABLE SSANGCIEUC WA TIKEUT +0xBC91 0xCAE1 #HANGUL SYLLABLE SSANGCIEUC WA RIEULKIYEOK +0xBC92 0xCAE2 #HANGUL SYLLABLE SSANGCIEUC WA RIEULMIEUM +0xBC93 0xCAE3 #HANGUL SYLLABLE SSANGCIEUC WA RIEULPIEUP +0xBC94 0xCAE4 #HANGUL SYLLABLE SSANGCIEUC WA RIEULSIOS +0xBC95 0xCAE5 #HANGUL SYLLABLE SSANGCIEUC WA RIEULTHIEUTH +0xBC96 0xCAE6 #HANGUL SYLLABLE SSANGCIEUC WA RIEULPHIEUPH +0xBC97 0xCAE7 #HANGUL SYLLABLE SSANGCIEUC WA RIEULHIEUH +0xBC98 0xCAE8 #HANGUL SYLLABLE SSANGCIEUC WA MIEUM +0xBC99 0xCAE9 #HANGUL SYLLABLE SSANGCIEUC WA PIEUP +0xBC9A 0xCAEA #HANGUL SYLLABLE SSANGCIEUC WA PIEUPSIOS +0xBC9B 0xCAEB #HANGUL SYLLABLE SSANGCIEUC WA SIOS +0xBC9C 0xCAEE #HANGUL SYLLABLE SSANGCIEUC WA CIEUC +0xBC9D 0xCAEF #HANGUL SYLLABLE SSANGCIEUC WA CHIEUCH +0xBC9E 0xCAF0 #HANGUL SYLLABLE SSANGCIEUC WA KHIEUKH +0xBC9F 0xCAF1 #HANGUL SYLLABLE SSANGCIEUC WA THIEUTH +0xBCA0 0xCAF2 #HANGUL SYLLABLE SSANGCIEUC WA PHIEUPH +0xBCA1 0xC7A6 #HANGUL SYLLABLE CIEUC A CIEUC +0xBCA2 0xC7A4 #HANGUL SYLLABLE CIEUC A SSANGSIOS +0xBCA3 0xC7C8 #HANGUL SYLLABLE CIEUC YA +0xBCA4 0xC7C9 #HANGUL SYLLABLE CIEUC YA KIYEOK +0xBCA5 0xC7CC #HANGUL SYLLABLE CIEUC YA NIEUN +0xBCA6 0xC7CE #HANGUL SYLLABLE CIEUC YA NIEUNHIEUH +0xBCA7 0xC7D0 #HANGUL SYLLABLE CIEUC YA RIEUL +0xBCA8 0xC7D8 #HANGUL SYLLABLE CIEUC YA MIEUM +0xBCA9 0xC7D9 #HANGUL SYLLABLE CIEUC YA PIEUP +0xBCAA 0xC7DD #HANGUL SYLLABLE CIEUC YA IEUNG +0xBCAB 0xC800 #HANGUL SYLLABLE CIEUC EO +0xBCAC 0xC801 #HANGUL SYLLABLE CIEUC EO KIYEOK +0xBCAD 0xC804 #HANGUL SYLLABLE CIEUC EO NIEUN +0xBCAE 0xC808 #HANGUL SYLLABLE CIEUC EO RIEUL +0xBCAF 0xC80A #HANGUL SYLLABLE CIEUC EO RIEULMIEUM +0xBCB0 0xC810 #HANGUL SYLLABLE CIEUC EO MIEUM +0xBCB1 0xC811 #HANGUL SYLLABLE CIEUC EO PIEUP +0xBCB2 0xC813 #HANGUL SYLLABLE CIEUC EO SIOS +0xBCB3 0xC815 #HANGUL SYLLABLE CIEUC EO IEUNG +0xBCB4 0xC816 #HANGUL SYLLABLE CIEUC EO CIEUC +0xBCB5 0xC814 #HANGUL SYLLABLE CIEUC EO SSANGSIOS +0xBCB6 0xC838 #HANGUL SYLLABLE CIEUC YEO +0xBCB7 0xC839 #HANGUL SYLLABLE CIEUC YEO KIYEOK +0xBCB8 0xC83C #HANGUL SYLLABLE CIEUC YEO NIEUN +0xBCB9 0xC840 #HANGUL SYLLABLE CIEUC YEO RIEUL +0xBCBA 0xC848 #HANGUL SYLLABLE CIEUC YEO MIEUM +0xBCBB 0xC849 #HANGUL SYLLABLE CIEUC YEO PIEUP +0xBCBC 0xC84B #HANGUL SYLLABLE CIEUC YEO SIOS +0xBCBD 0xC84D #HANGUL SYLLABLE CIEUC YEO IEUNG +0xBCBE 0xC84C #HANGUL SYLLABLE CIEUC YEO SSANGSIOS +0xBCBF 0xC870 #HANGUL SYLLABLE CIEUC O +0xBCC0 0xC871 #HANGUL SYLLABLE CIEUC O KIYEOK +0xBCC1 0xC874 #HANGUL SYLLABLE CIEUC O NIEUN +0xBCC2 0xC878 #HANGUL SYLLABLE CIEUC O RIEUL +0xBCC3 0xC87A #HANGUL SYLLABLE CIEUC O RIEULMIEUM +0xBCC4 0xC880 #HANGUL SYLLABLE CIEUC O MIEUM +0xBCC5 0xC881 #HANGUL SYLLABLE CIEUC O PIEUP +0xBCC6 0xC883 #HANGUL SYLLABLE CIEUC O SIOS +0xBCC7 0xC885 #HANGUL SYLLABLE CIEUC O IEUNG +0xBCC8 0xC886 #HANGUL SYLLABLE CIEUC O CIEUC +0xBCC9 0xC887 #HANGUL SYLLABLE CIEUC O CHIEUCH +0xBCCA 0xC88B #HANGUL SYLLABLE CIEUC O HIEUH +0xBCCB 0xC8E0 #HANGUL SYLLABLE CIEUC YO +0xBCCC 0xC8E1 #HANGUL SYLLABLE CIEUC YO KIYEOK +0xBCCD 0xC8E4 #HANGUL SYLLABLE CIEUC YO NIEUN +0xBCCE 0xC8E8 #HANGUL SYLLABLE CIEUC YO RIEUL +0xBCCF 0xC8F0 #HANGUL SYLLABLE CIEUC YO MIEUM +0xBCD0 0xC8F5 #HANGUL SYLLABLE CIEUC YO IEUNG +0xBCD1 0xC8FC #HANGUL SYLLABLE CIEUC U +0xBCD2 0xC8FD #HANGUL SYLLABLE CIEUC U KIYEOK +0xBCD3 0xC900 #HANGUL SYLLABLE CIEUC U NIEUN +0xBCD4 0xC904 #HANGUL SYLLABLE CIEUC U RIEUL +0xBCD5 0xC905 #HANGUL SYLLABLE CIEUC U RIEULKIYEOK +0xBCD6 0xC906 #HANGUL SYLLABLE CIEUC U RIEULMIEUM +0xBCD7 0xC90C #HANGUL SYLLABLE CIEUC U MIEUM +0xBCD8 0xC90D #HANGUL SYLLABLE CIEUC U PIEUP +0xBCD9 0xC90F #HANGUL SYLLABLE CIEUC U SIOS +0xBCDA 0xC911 #HANGUL SYLLABLE CIEUC U IEUNG +0xBCDB 0xC96C #HANGUL SYLLABLE CIEUC YU +0xBCDC 0xC970 #HANGUL SYLLABLE CIEUC YU NIEUN +0xBCDD 0xC974 #HANGUL SYLLABLE CIEUC YU RIEUL +0xBCDE 0xC97C #HANGUL SYLLABLE CIEUC YU MIEUM +0xBCDF 0xC981 #HANGUL SYLLABLE CIEUC YU IEUNG +0xBCE0 0xC988 #HANGUL SYLLABLE CIEUC EU +0xBCE1 0xC989 #HANGUL SYLLABLE CIEUC EU KIYEOK +0xBCE2 0xC98C #HANGUL SYLLABLE CIEUC EU NIEUN +0xBCE3 0xC990 #HANGUL SYLLABLE CIEUC EU RIEUL +0xBCE4 0xC998 #HANGUL SYLLABLE CIEUC EU MIEUM +0xBCE5 0xC999 #HANGUL SYLLABLE CIEUC EU PIEUP +0xBCE6 0xC99B #HANGUL SYLLABLE CIEUC EU SIOS +0xBCE7 0xC99D #HANGUL SYLLABLE CIEUC EU IEUNG +0xBCE8 0xC9C0 #HANGUL SYLLABLE CIEUC I +0xBCE9 0xC9C1 #HANGUL SYLLABLE CIEUC I KIYEOK +0xBCEA 0xC9C4 #HANGUL SYLLABLE CIEUC I NIEUN +0xBCEB 0xC9C7 #HANGUL SYLLABLE CIEUC I TIKEUT +0xBCEC 0xC9C8 #HANGUL SYLLABLE CIEUC I RIEUL +0xBCED 0xC9CA #HANGUL SYLLABLE CIEUC I RIEULMIEUM +0xBCEE 0xC9D0 #HANGUL SYLLABLE CIEUC I MIEUM +0xBCEF 0xC9D1 #HANGUL SYLLABLE CIEUC I PIEUP +0xBCF0 0xC9D3 #HANGUL SYLLABLE CIEUC I SIOS +0xBCF1 0xC9D5 #HANGUL SYLLABLE CIEUC I IEUNG +0xBCF2 0xC9D6 #HANGUL SYLLABLE CIEUC I CIEUC +0xBCF3 0xC9D9 #HANGUL SYLLABLE CIEUC I THIEUTH +0xBCF4 0xC9DA #HANGUL SYLLABLE CIEUC I PHIEUPH +0xBCF5 0xC7AC #HANGUL SYLLABLE CIEUC AE +0xBCF6 0xC7AD #HANGUL SYLLABLE CIEUC AE KIYEOK +0xBCF7 0xC7B0 #HANGUL SYLLABLE CIEUC AE NIEUN +0xBCF8 0xC7B4 #HANGUL SYLLABLE CIEUC AE RIEUL +0xBCF9 0xC7BC #HANGUL SYLLABLE CIEUC AE MIEUM +0xBCFA 0xC7BD #HANGUL SYLLABLE CIEUC AE PIEUP +0xBCFB 0xC7BF #HANGUL SYLLABLE CIEUC AE SIOS +0xBCFC 0xC7C1 #HANGUL SYLLABLE CIEUC AE IEUNG +0xBCFD 0xC7C0 #HANGUL SYLLABLE CIEUC AE SSANGSIOS +0xBCFE 0xC7E4 #HANGUL SYLLABLE CIEUC YAE +0xBD41 0xCAF3 #HANGUL SYLLABLE SSANGCIEUC WA HIEUH +0xBD42 0xCADA #HANGUL SYLLABLE SSANGCIEUC WA SSANGKIYEOK +0xBD43 0xCB65 #HANGUL SYLLABLE SSANGCIEUC WEO KIYEOK +0xBD44 0xCB67 #HANGUL SYLLABLE SSANGCIEUC WEO KIYEOKSIOS +0xBD45 0xCB68 #HANGUL SYLLABLE SSANGCIEUC WEO NIEUN +0xBD46 0xCB69 #HANGUL SYLLABLE SSANGCIEUC WEO NIEUNCIEUC +0xBD47 0xCB6A #HANGUL SYLLABLE SSANGCIEUC WEO NIEUNHIEUH +0xBD48 0xCB6B #HANGUL SYLLABLE SSANGCIEUC WEO TIKEUT +0xBD49 0xCB6C #HANGUL SYLLABLE SSANGCIEUC WEO RIEUL +0xBD4A 0xCB6D #HANGUL SYLLABLE SSANGCIEUC WEO RIEULKIYEOK +0xBD4B 0xCB6E #HANGUL SYLLABLE SSANGCIEUC WEO RIEULMIEUM +0xBD4C 0xCB6F #HANGUL SYLLABLE SSANGCIEUC WEO RIEULPIEUP +0xBD4D 0xCB70 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULSIOS +0xBD4E 0xCB71 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULTHIEUTH +0xBD4F 0xCB72 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULPHIEUPH +0xBD50 0xCB73 #HANGUL SYLLABLE SSANGCIEUC WEO RIEULHIEUH +0xBD51 0xCB74 #HANGUL SYLLABLE SSANGCIEUC WEO MIEUM +0xBD52 0xCB75 #HANGUL SYLLABLE SSANGCIEUC WEO PIEUP +0xBD53 0xCB76 #HANGUL SYLLABLE SSANGCIEUC WEO PIEUPSIOS +0xBD54 0xCB77 #HANGUL SYLLABLE SSANGCIEUC WEO SIOS +0xBD55 0xCB7A #HANGUL SYLLABLE SSANGCIEUC WEO CIEUC +0xBD56 0xCB7B #HANGUL SYLLABLE SSANGCIEUC WEO CHIEUCH +0xBD57 0xCB7C #HANGUL SYLLABLE SSANGCIEUC WEO KHIEUKH +0xBD58 0xCB7D #HANGUL SYLLABLE SSANGCIEUC WEO THIEUTH +0xBD59 0xCB7E #HANGUL SYLLABLE SSANGCIEUC WEO PHIEUPH +0xBD5A 0xCB7F #HANGUL SYLLABLE SSANGCIEUC WEO HIEUH +0xBD61 0xCB66 #HANGUL SYLLABLE SSANGCIEUC WEO SSANGKIYEOK +0xBD62 0xCAF5 #HANGUL SYLLABLE SSANGCIEUC WAE KIYEOK +0xBD63 0xCAF7 #HANGUL SYLLABLE SSANGCIEUC WAE KIYEOKSIOS +0xBD64 0xCAF8 #HANGUL SYLLABLE SSANGCIEUC WAE NIEUN +0xBD65 0xCAF9 #HANGUL SYLLABLE SSANGCIEUC WAE NIEUNCIEUC +0xBD66 0xCAFA #HANGUL SYLLABLE SSANGCIEUC WAE NIEUNHIEUH +0xBD67 0xCAFB #HANGUL SYLLABLE SSANGCIEUC WAE TIKEUT +0xBD68 0xCAFC #HANGUL SYLLABLE SSANGCIEUC WAE RIEUL +0xBD69 0xCAFD #HANGUL SYLLABLE SSANGCIEUC WAE RIEULKIYEOK +0xBD6A 0xCAFE #HANGUL SYLLABLE SSANGCIEUC WAE RIEULMIEUM +0xBD6B 0xCAFF #HANGUL SYLLABLE SSANGCIEUC WAE RIEULPIEUP +0xBD6C 0xCB00 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULSIOS +0xBD6D 0xCB01 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULTHIEUTH +0xBD6E 0xCB02 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULPHIEUPH +0xBD6F 0xCB03 #HANGUL SYLLABLE SSANGCIEUC WAE RIEULHIEUH +0xBD70 0xCB04 #HANGUL SYLLABLE SSANGCIEUC WAE MIEUM +0xBD71 0xCB05 #HANGUL SYLLABLE SSANGCIEUC WAE PIEUP +0xBD72 0xCB06 #HANGUL SYLLABLE SSANGCIEUC WAE PIEUPSIOS +0xBD73 0xCB07 #HANGUL SYLLABLE SSANGCIEUC WAE SIOS +0xBD74 0xCB09 #HANGUL SYLLABLE SSANGCIEUC WAE IEUNG +0xBD75 0xCB0A #HANGUL SYLLABLE SSANGCIEUC WAE CIEUC +0xBD76 0xCB0B #HANGUL SYLLABLE SSANGCIEUC WAE CHIEUCH +0xBD77 0xCB0C #HANGUL SYLLABLE SSANGCIEUC WAE KHIEUKH +0xBD78 0xCB0D #HANGUL SYLLABLE SSANGCIEUC WAE THIEUTH +0xBD79 0xCB0E #HANGUL SYLLABLE SSANGCIEUC WAE PHIEUPH +0xBD7A 0xCB0F #HANGUL SYLLABLE SSANGCIEUC WAE HIEUH +0xBD81 0xCAF6 #HANGUL SYLLABLE SSANGCIEUC WAE SSANGKIYEOK +0xBD82 0xCB81 #HANGUL SYLLABLE SSANGCIEUC WE KIYEOK +0xBD83 0xCB83 #HANGUL SYLLABLE SSANGCIEUC WE KIYEOKSIOS +0xBD84 0xCB84 #HANGUL SYLLABLE SSANGCIEUC WE NIEUN +0xBD85 0xCB85 #HANGUL SYLLABLE SSANGCIEUC WE NIEUNCIEUC +0xBD86 0xCB86 #HANGUL SYLLABLE SSANGCIEUC WE NIEUNHIEUH +0xBD87 0xCB87 #HANGUL SYLLABLE SSANGCIEUC WE TIKEUT +0xBD88 0xCB88 #HANGUL SYLLABLE SSANGCIEUC WE RIEUL +0xBD89 0xCB89 #HANGUL SYLLABLE SSANGCIEUC WE RIEULKIYEOK +0xBD8A 0xCB8A #HANGUL SYLLABLE SSANGCIEUC WE RIEULMIEUM +0xBD8B 0xCB8B #HANGUL SYLLABLE SSANGCIEUC WE RIEULPIEUP +0xBD8C 0xCB8C #HANGUL SYLLABLE SSANGCIEUC WE RIEULSIOS +0xBD8D 0xCB8D #HANGUL SYLLABLE SSANGCIEUC WE RIEULTHIEUTH +0xBD8E 0xCB8E #HANGUL SYLLABLE SSANGCIEUC WE RIEULPHIEUPH +0xBD8F 0xCB8F #HANGUL SYLLABLE SSANGCIEUC WE RIEULHIEUH +0xBD90 0xCB90 #HANGUL SYLLABLE SSANGCIEUC WE MIEUM +0xBD91 0xCB91 #HANGUL SYLLABLE SSANGCIEUC WE PIEUP +0xBD92 0xCB92 #HANGUL SYLLABLE SSANGCIEUC WE PIEUPSIOS +0xBD93 0xCB93 #HANGUL SYLLABLE SSANGCIEUC WE SIOS +0xBD94 0xCB95 #HANGUL SYLLABLE SSANGCIEUC WE IEUNG +0xBD95 0xCB96 #HANGUL SYLLABLE SSANGCIEUC WE CIEUC +0xBD96 0xCB97 #HANGUL SYLLABLE SSANGCIEUC WE CHIEUCH +0xBD97 0xCB98 #HANGUL SYLLABLE SSANGCIEUC WE KHIEUKH +0xBD98 0xCB99 #HANGUL SYLLABLE SSANGCIEUC WE THIEUTH +0xBD99 0xCB9A #HANGUL SYLLABLE SSANGCIEUC WE PHIEUPH +0xBD9A 0xCB9B #HANGUL SYLLABLE SSANGCIEUC WE HIEUH +0xBD9B 0xCB82 #HANGUL SYLLABLE SSANGCIEUC WE SSANGKIYEOK +0xBD9C 0xCB94 #HANGUL SYLLABLE SSANGCIEUC WE SSANGSIOS +0xBD9D 0xC547 #HANGUL SYLLABLE IEUNG A KIYEOKSIOS +0xBD9E 0xC54B #HANGUL SYLLABLE IEUNG A TIKEUT +0xBD9F 0xC54F #HANGUL SYLLABLE IEUNG A RIEULPIEUP +0xBDA0 0xC550 #HANGUL SYLLABLE IEUNG A RIEULSIOS +0xBDA1 0xC7E8 #HANGUL SYLLABLE CIEUC YAE NIEUN +0xBDA2 0xC7EC #HANGUL SYLLABLE CIEUC YAE RIEUL +0xBDA3 0xC81C #HANGUL SYLLABLE CIEUC E +0xBDA4 0xC81D #HANGUL SYLLABLE CIEUC E KIYEOK +0xBDA5 0xC820 #HANGUL SYLLABLE CIEUC E NIEUN +0xBDA6 0xC824 #HANGUL SYLLABLE CIEUC E RIEUL +0xBDA7 0xC82C #HANGUL SYLLABLE CIEUC E MIEUM +0xBDA8 0xC82D #HANGUL SYLLABLE CIEUC E PIEUP +0xBDA9 0xC82F #HANGUL SYLLABLE CIEUC E SIOS +0xBDAA 0xC831 #HANGUL SYLLABLE CIEUC E IEUNG +0xBDAB 0xC836 #HANGUL SYLLABLE CIEUC E PHIEUPH +0xBDAC 0xC830 #HANGUL SYLLABLE CIEUC E SSANGSIOS +0xBDAD 0xC854 #HANGUL SYLLABLE CIEUC YE +0xBDAE 0xC858 #HANGUL SYLLABLE CIEUC YE NIEUN +0xBDAF 0xC85C #HANGUL SYLLABLE CIEUC YE RIEUL +0xBDB0 0xC8C4 #HANGUL SYLLABLE CIEUC OE +0xBDB1 0xC8C8 #HANGUL SYLLABLE CIEUC OE NIEUN +0xBDB2 0xC8CC #HANGUL SYLLABLE CIEUC OE RIEUL +0xBDB3 0xC8D4 #HANGUL SYLLABLE CIEUC OE MIEUM +0xBDB4 0xC8D5 #HANGUL SYLLABLE CIEUC OE PIEUP +0xBDB5 0xC8D7 #HANGUL SYLLABLE CIEUC OE SIOS +0xBDB6 0xC8D9 #HANGUL SYLLABLE CIEUC OE IEUNG +0xBDB7 0xC8D8 #HANGUL SYLLABLE CIEUC OE SSANGSIOS +0xBDB8 0xC950 #HANGUL SYLLABLE CIEUC WI +0xBDB9 0xC951 #HANGUL SYLLABLE CIEUC WI KIYEOK +0xBDBA 0xC954 #HANGUL SYLLABLE CIEUC WI NIEUN +0xBDBB 0xC957 #HANGUL SYLLABLE CIEUC WI TIKEUT +0xBDBC 0xC958 #HANGUL SYLLABLE CIEUC WI RIEUL +0xBDBD 0xC960 #HANGUL SYLLABLE CIEUC WI MIEUM +0xBDBE 0xC961 #HANGUL SYLLABLE CIEUC WI PIEUP +0xBDBF 0xC963 #HANGUL SYLLABLE CIEUC WI SIOS +0xBDC0 0xC9A4 #HANGUL SYLLABLE CIEUC YI +0xBDC1 0xC88C #HANGUL SYLLABLE CIEUC WA +0xBDC2 0xC88D #HANGUL SYLLABLE CIEUC WA KIYEOK +0xBDC3 0xC890 #HANGUL SYLLABLE CIEUC WA NIEUN +0xBDC4 0xC894 #HANGUL SYLLABLE CIEUC WA RIEUL +0xBDC5 0xC89D #HANGUL SYLLABLE CIEUC WA PIEUP +0xBDC6 0xC89F #HANGUL SYLLABLE CIEUC WA SIOS +0xBDC7 0xC8A1 #HANGUL SYLLABLE CIEUC WA IEUNG +0xBDC8 0xC918 #HANGUL SYLLABLE CIEUC WEO +0xBDC9 0xC92C #HANGUL SYLLABLE CIEUC WEO SSANGSIOS +0xBDCA 0xC8A8 #HANGUL SYLLABLE CIEUC WAE +0xBDCB 0xC8BD #HANGUL SYLLABLE CIEUC WAE IEUNG +0xBDCC 0xC8BC #HANGUL SYLLABLE CIEUC WAE SSANGSIOS +0xBDCD 0xC934 #HANGUL SYLLABLE CIEUC WE +0xBDCE 0xC938 #HANGUL SYLLABLE CIEUC WE NIEUN +0xBDCF 0xC93C #HANGUL SYLLABLE CIEUC WE RIEUL +0xBDD0 0xC944 #HANGUL SYLLABLE CIEUC WE MIEUM +0xBDD1 0xC945 #HANGUL SYLLABLE CIEUC WE PIEUP +0xBDD2 0xC948 #HANGUL SYLLABLE CIEUC WE SSANGSIOS +0xBDD3 0xCC28 #HANGUL SYLLABLE CHIEUCH A +0xBDD4 0xCC29 #HANGUL SYLLABLE CHIEUCH A KIYEOK +0xBDD5 0xCC2C #HANGUL SYLLABLE CHIEUCH A NIEUN +0xBDD6 0xCC2E #HANGUL SYLLABLE CHIEUCH A NIEUNHIEUH +0xBDD7 0xCC30 #HANGUL SYLLABLE CHIEUCH A RIEUL +0xBDD8 0xCC38 #HANGUL SYLLABLE CHIEUCH A MIEUM +0xBDD9 0xCC39 #HANGUL SYLLABLE CHIEUCH A PIEUP +0xBDDA 0xCC3B #HANGUL SYLLABLE CHIEUCH A SIOS +0xBDDB 0xCC3D #HANGUL SYLLABLE CHIEUCH A IEUNG +0xBDDC 0xCC3E #HANGUL SYLLABLE CHIEUCH A CIEUC +0xBDDD 0xCC3C #HANGUL SYLLABLE CHIEUCH A SSANGSIOS +0xBDDE 0xCC60 #HANGUL SYLLABLE CHIEUCH YA +0xBDDF 0xCC64 #HANGUL SYLLABLE CHIEUCH YA NIEUN +0xBDE0 0xCC66 #HANGUL SYLLABLE CHIEUCH YA NIEUNHIEUH +0xBDE1 0xCC68 #HANGUL SYLLABLE CHIEUCH YA RIEUL +0xBDE2 0xCC70 #HANGUL SYLLABLE CHIEUCH YA MIEUM +0xBDE3 0xCC71 #HANGUL SYLLABLE CHIEUCH YA PIEUP +0xBDE4 0xCC75 #HANGUL SYLLABLE CHIEUCH YA IEUNG +0xBDE5 0xCC98 #HANGUL SYLLABLE CHIEUCH EO +0xBDE6 0xCC99 #HANGUL SYLLABLE CHIEUCH EO KIYEOK +0xBDE7 0xCC9C #HANGUL SYLLABLE CHIEUCH EO NIEUN +0xBDE8 0xCCA0 #HANGUL SYLLABLE CHIEUCH EO RIEUL +0xBDE9 0xCCA8 #HANGUL SYLLABLE CHIEUCH EO MIEUM +0xBDEA 0xCCA9 #HANGUL SYLLABLE CHIEUCH EO PIEUP +0xBDEB 0xCCAB #HANGUL SYLLABLE CHIEUCH EO SIOS +0xBDEC 0xCCAD #HANGUL SYLLABLE CHIEUCH EO IEUNG +0xBDED 0xCCAC #HANGUL SYLLABLE CHIEUCH EO SSANGSIOS +0xBDEE 0xCCD0 #HANGUL SYLLABLE CHIEUCH YEO +0xBDEF 0xCCD1 #HANGUL SYLLABLE CHIEUCH YEO KIYEOK +0xBDF0 0xCCD4 #HANGUL SYLLABLE CHIEUCH YEO NIEUN +0xBDF1 0xCCD8 #HANGUL SYLLABLE CHIEUCH YEO RIEUL +0xBDF2 0xCCE4 #HANGUL SYLLABLE CHIEUCH YEO SSANGSIOS +0xBDF3 0xCD08 #HANGUL SYLLABLE CHIEUCH O +0xBDF4 0xCD09 #HANGUL SYLLABLE CHIEUCH O KIYEOK +0xBDF5 0xCD0C #HANGUL SYLLABLE CHIEUCH O NIEUN +0xBDF6 0xCD10 #HANGUL SYLLABLE CHIEUCH O RIEUL +0xBDF7 0xCD18 #HANGUL SYLLABLE CHIEUCH O MIEUM +0xBDF8 0xCD19 #HANGUL SYLLABLE CHIEUCH O PIEUP +0xBDF9 0xCD1B #HANGUL SYLLABLE CHIEUCH O SIOS +0xBDFA 0xCD1D #HANGUL SYLLABLE CHIEUCH O IEUNG +0xBDFB 0xCD78 #HANGUL SYLLABLE CHIEUCH YO +0xBDFC 0xCD7C #HANGUL SYLLABLE CHIEUCH YO NIEUN +0xBDFD 0xCD80 #HANGUL SYLLABLE CHIEUCH YO RIEUL +0xBDFE 0xCD88 #HANGUL SYLLABLE CHIEUCH YO MIEUM +0xBE41 0xC551 #HANGUL SYLLABLE IEUNG A RIEULTHIEUTH +0xBE42 0xC556 #HANGUL SYLLABLE IEUNG A PIEUPSIOS +0xBE43 0xC55A #HANGUL SYLLABLE IEUNG A CIEUC +0xBE44 0xC55B #HANGUL SYLLABLE IEUNG A CHIEUCH +0xBE45 0xC55C #HANGUL SYLLABLE IEUNG A KHIEUKH +0xBE46 0xC546 #HANGUL SYLLABLE IEUNG A SSANGKIYEOK +0xBE47 0xC57F #HANGUL SYLLABLE IEUNG YA KIYEOKSIOS +0xBE48 0xC581 #HANGUL SYLLABLE IEUNG YA NIEUNCIEUC +0xBE49 0xC582 #HANGUL SYLLABLE IEUNG YA NIEUNHIEUH +0xBE4A 0xC585 #HANGUL SYLLABLE IEUNG YA RIEULKIYEOK +0xBE4B 0xC586 #HANGUL SYLLABLE IEUNG YA RIEULMIEUM +0xBE4C 0xC588 #HANGUL SYLLABLE IEUNG YA RIEULSIOS +0xBE4D 0xC589 #HANGUL SYLLABLE IEUNG YA RIEULTHIEUTH +0xBE4E 0xC58A #HANGUL SYLLABLE IEUNG YA RIEULPHIEUPH +0xBE4F 0xC58B #HANGUL SYLLABLE IEUNG YA RIEULHIEUH +0xBE50 0xC58E #HANGUL SYLLABLE IEUNG YA PIEUPSIOS +0xBE51 0xC592 #HANGUL SYLLABLE IEUNG YA CIEUC +0xBE52 0xC593 #HANGUL SYLLABLE IEUNG YA CHIEUCH +0xBE53 0xC594 #HANGUL SYLLABLE IEUNG YA KHIEUKH +0xBE54 0xC596 #HANGUL SYLLABLE IEUNG YA PHIEUPH +0xBE55 0xC57E #HANGUL SYLLABLE IEUNG YA SSANGKIYEOK +0xBE56 0xC5B7 #HANGUL SYLLABLE IEUNG EO KIYEOKSIOS +0xBE57 0xC5BA #HANGUL SYLLABLE IEUNG EO NIEUNHIEUH +0xBE58 0xC5BF #HANGUL SYLLABLE IEUNG EO RIEULPIEUP +0xBE59 0xC5C0 #HANGUL SYLLABLE IEUNG EO RIEULSIOS +0xBE5A 0xC5C1 #HANGUL SYLLABLE IEUNG EO RIEULTHIEUTH +0xBE61 0xC5C2 #HANGUL SYLLABLE IEUNG EO RIEULPHIEUPH +0xBE62 0xC5C3 #HANGUL SYLLABLE IEUNG EO RIEULHIEUH +0xBE63 0xC5CB #HANGUL SYLLABLE IEUNG EO CHIEUCH +0xBE64 0xC5CD #HANGUL SYLLABLE IEUNG EO THIEUTH +0xBE65 0xC5B6 #HANGUL SYLLABLE IEUNG EO SSANGKIYEOK +0xBE66 0xC5EF #HANGUL SYLLABLE IEUNG YEO KIYEOKSIOS +0xBE67 0xC5F1 #HANGUL SYLLABLE IEUNG YEO NIEUNCIEUC +0xBE68 0xC5F2 #HANGUL SYLLABLE IEUNG YEO NIEUNHIEUH +0xBE69 0xC5F5 #HANGUL SYLLABLE IEUNG YEO RIEULKIYEOK +0xBE6A 0xC5F8 #HANGUL SYLLABLE IEUNG YEO RIEULSIOS +0xBE6B 0xC5F9 #HANGUL SYLLABLE IEUNG YEO RIEULTHIEUTH +0xBE6C 0xC5FA #HANGUL SYLLABLE IEUNG YEO RIEULPHIEUPH +0xBE6D 0xC5FB #HANGUL SYLLABLE IEUNG YEO RIEULHIEUH +0xBE6E 0xC602 #HANGUL SYLLABLE IEUNG YEO CIEUC +0xBE6F 0xC603 #HANGUL SYLLABLE IEUNG YEO CHIEUCH +0xBE70 0xC604 #HANGUL SYLLABLE IEUNG YEO KHIEUKH +0xBE71 0xC627 #HANGUL SYLLABLE IEUNG O KIYEOKSIOS +0xBE72 0xC629 #HANGUL SYLLABLE IEUNG O NIEUNCIEUC +0xBE73 0xC62A #HANGUL SYLLABLE IEUNG O NIEUNHIEUH +0xBE74 0xC62B #HANGUL SYLLABLE IEUNG O TIKEUT +0xBE75 0xC62F #HANGUL SYLLABLE IEUNG O RIEULPIEUP +0xBE76 0xC631 #HANGUL SYLLABLE IEUNG O RIEULTHIEUTH +0xBE77 0xC632 #HANGUL SYLLABLE IEUNG O RIEULPHIEUPH +0xBE78 0xC636 #HANGUL SYLLABLE IEUNG O PIEUPSIOS +0xBE79 0xC63A #HANGUL SYLLABLE IEUNG O CIEUC +0xBE7A 0xC63C #HANGUL SYLLABLE IEUNG O KHIEUKH +0xBE81 0xC63D #HANGUL SYLLABLE IEUNG O THIEUTH +0xBE82 0xC63F #HANGUL SYLLABLE IEUNG O HIEUH +0xBE83 0xC626 #HANGUL SYLLABLE IEUNG O SSANGKIYEOK +0xBE84 0xC638 #HANGUL SYLLABLE IEUNG O SSANGSIOS +0xBE85 0xC697 #HANGUL SYLLABLE IEUNG YO KIYEOKSIOS +0xBE86 0xC699 #HANGUL SYLLABLE IEUNG YO NIEUNCIEUC +0xBE87 0xC69A #HANGUL SYLLABLE IEUNG YO NIEUNHIEUH +0xBE88 0xC69B #HANGUL SYLLABLE IEUNG YO TIKEUT +0xBE89 0xC69D #HANGUL SYLLABLE IEUNG YO RIEULKIYEOK +0xBE8A 0xC69E #HANGUL SYLLABLE IEUNG YO RIEULMIEUM +0xBE8B 0xC69F #HANGUL SYLLABLE IEUNG YO RIEULPIEUP +0xBE8C 0xC6A0 #HANGUL SYLLABLE IEUNG YO RIEULSIOS +0xBE8D 0xC6A1 #HANGUL SYLLABLE IEUNG YO RIEULTHIEUTH +0xBE8E 0xC6A2 #HANGUL SYLLABLE IEUNG YO RIEULPHIEUPH +0xBE8F 0xC6A3 #HANGUL SYLLABLE IEUNG YO RIEULHIEUH +0xBE90 0xC6A6 #HANGUL SYLLABLE IEUNG YO PIEUPSIOS +0xBE91 0xC6AA #HANGUL SYLLABLE IEUNG YO CIEUC +0xBE92 0xC6AB #HANGUL SYLLABLE IEUNG YO CHIEUCH +0xBE93 0xC6AC #HANGUL SYLLABLE IEUNG YO KHIEUKH +0xBE94 0xC6AD #HANGUL SYLLABLE IEUNG YO THIEUTH +0xBE95 0xC6AE #HANGUL SYLLABLE IEUNG YO PHIEUPH +0xBE96 0xC6AF #HANGUL SYLLABLE IEUNG YO HIEUH +0xBE97 0xC696 #HANGUL SYLLABLE IEUNG YO SSANGKIYEOK +0xBE98 0xC6A8 #HANGUL SYLLABLE IEUNG YO SSANGSIOS +0xBE99 0xC6B3 #HANGUL SYLLABLE IEUNG U KIYEOKSIOS +0xBE9A 0xC6B5 #HANGUL SYLLABLE IEUNG U NIEUNCIEUC +0xBE9B 0xC6B6 #HANGUL SYLLABLE IEUNG U NIEUNHIEUH +0xBE9C 0xC6B7 #HANGUL SYLLABLE IEUNG U TIKEUT +0xBE9D 0xC6BB #HANGUL SYLLABLE IEUNG U RIEULPIEUP +0xBE9E 0xC6BC #HANGUL SYLLABLE IEUNG U RIEULSIOS +0xBE9F 0xC6BD #HANGUL SYLLABLE IEUNG U RIEULTHIEUTH +0xBEA0 0xC6BE #HANGUL SYLLABLE IEUNG U RIEULPHIEUPH +0xBEA1 0xCD94 #HANGUL SYLLABLE CHIEUCH U +0xBEA2 0xCD95 #HANGUL SYLLABLE CHIEUCH U KIYEOK +0xBEA3 0xCD98 #HANGUL SYLLABLE CHIEUCH U NIEUN +0xBEA4 0xCD9B #HANGUL SYLLABLE CHIEUCH U TIKEUT +0xBEA5 0xCD9C #HANGUL SYLLABLE CHIEUCH U RIEUL +0xBEA6 0xCDA4 #HANGUL SYLLABLE CHIEUCH U MIEUM +0xBEA7 0xCDA5 #HANGUL SYLLABLE CHIEUCH U PIEUP +0xBEA8 0xCDA7 #HANGUL SYLLABLE CHIEUCH U SIOS +0xBEA9 0xCDA9 #HANGUL SYLLABLE CHIEUCH U IEUNG +0xBEAA 0xCE04 #HANGUL SYLLABLE CHIEUCH YU +0xBEAB 0xCE08 #HANGUL SYLLABLE CHIEUCH YU NIEUN +0xBEAC 0xCE0C #HANGUL SYLLABLE CHIEUCH YU RIEUL +0xBEAD 0xCE14 #HANGUL SYLLABLE CHIEUCH YU MIEUM +0xBEAE 0xCE19 #HANGUL SYLLABLE CHIEUCH YU IEUNG +0xBEAF 0xCE20 #HANGUL SYLLABLE CHIEUCH EU +0xBEB0 0xCE21 #HANGUL SYLLABLE CHIEUCH EU KIYEOK +0xBEB1 0xCE24 #HANGUL SYLLABLE CHIEUCH EU NIEUN +0xBEB2 0xCE28 #HANGUL SYLLABLE CHIEUCH EU RIEUL +0xBEB3 0xCE30 #HANGUL SYLLABLE CHIEUCH EU MIEUM +0xBEB4 0xCE31 #HANGUL SYLLABLE CHIEUCH EU PIEUP +0xBEB5 0xCE33 #HANGUL SYLLABLE CHIEUCH EU SIOS +0xBEB6 0xCE35 #HANGUL SYLLABLE CHIEUCH EU IEUNG +0xBEB7 0xCE58 #HANGUL SYLLABLE CHIEUCH I +0xBEB8 0xCE59 #HANGUL SYLLABLE CHIEUCH I KIYEOK +0xBEB9 0xCE5C #HANGUL SYLLABLE CHIEUCH I NIEUN +0xBEBA 0xCE5F #HANGUL SYLLABLE CHIEUCH I TIKEUT +0xBEBB 0xCE60 #HANGUL SYLLABLE CHIEUCH I RIEUL +0xBEBC 0xCE61 #HANGUL SYLLABLE CHIEUCH I RIEULKIYEOK +0xBEBD 0xCE68 #HANGUL SYLLABLE CHIEUCH I MIEUM +0xBEBE 0xCE69 #HANGUL SYLLABLE CHIEUCH I PIEUP +0xBEBF 0xCE6B #HANGUL SYLLABLE CHIEUCH I SIOS +0xBEC0 0xCE6D #HANGUL SYLLABLE CHIEUCH I IEUNG +0xBEC1 0xCC44 #HANGUL SYLLABLE CHIEUCH AE +0xBEC2 0xCC45 #HANGUL SYLLABLE CHIEUCH AE KIYEOK +0xBEC3 0xCC48 #HANGUL SYLLABLE CHIEUCH AE NIEUN +0xBEC4 0xCC4C #HANGUL SYLLABLE CHIEUCH AE RIEUL +0xBEC5 0xCC54 #HANGUL SYLLABLE CHIEUCH AE MIEUM +0xBEC6 0xCC55 #HANGUL SYLLABLE CHIEUCH AE PIEUP +0xBEC7 0xCC57 #HANGUL SYLLABLE CHIEUCH AE SIOS +0xBEC8 0xCC59 #HANGUL SYLLABLE CHIEUCH AE IEUNG +0xBEC9 0xCC58 #HANGUL SYLLABLE CHIEUCH AE SSANGSIOS +0xBECA 0xCC7C #HANGUL SYLLABLE CHIEUCH YAE +0xBECB 0xCCB4 #HANGUL SYLLABLE CHIEUCH E +0xBECC 0xCCB5 #HANGUL SYLLABLE CHIEUCH E KIYEOK +0xBECD 0xCCB8 #HANGUL SYLLABLE CHIEUCH E NIEUN +0xBECE 0xCCBC #HANGUL SYLLABLE CHIEUCH E RIEUL +0xBECF 0xCCC4 #HANGUL SYLLABLE CHIEUCH E MIEUM +0xBED0 0xCCC5 #HANGUL SYLLABLE CHIEUCH E PIEUP +0xBED1 0xCCC7 #HANGUL SYLLABLE CHIEUCH E SIOS +0xBED2 0xCCC9 #HANGUL SYLLABLE CHIEUCH E IEUNG +0xBED3 0xCCC8 #HANGUL SYLLABLE CHIEUCH E SSANGSIOS +0xBED4 0xCCEC #HANGUL SYLLABLE CHIEUCH YE +0xBED5 0xCCF0 #HANGUL SYLLABLE CHIEUCH YE NIEUN +0xBED6 0xCD01 #HANGUL SYLLABLE CHIEUCH YE IEUNG +0xBED7 0xCD5C #HANGUL SYLLABLE CHIEUCH OE +0xBED8 0xCD60 #HANGUL SYLLABLE CHIEUCH OE NIEUN +0xBED9 0xCD64 #HANGUL SYLLABLE CHIEUCH OE RIEUL +0xBEDA 0xCD6C #HANGUL SYLLABLE CHIEUCH OE MIEUM +0xBEDB 0xCD6D #HANGUL SYLLABLE CHIEUCH OE PIEUP +0xBEDC 0xCD6F #HANGUL SYLLABLE CHIEUCH OE SIOS +0xBEDD 0xCD71 #HANGUL SYLLABLE CHIEUCH OE IEUNG +0xBEDE 0xCDE8 #HANGUL SYLLABLE CHIEUCH WI +0xBEDF 0xCDEC #HANGUL SYLLABLE CHIEUCH WI NIEUN +0xBEE0 0xCDF0 #HANGUL SYLLABLE CHIEUCH WI RIEUL +0xBEE1 0xCDF8 #HANGUL SYLLABLE CHIEUCH WI MIEUM +0xBEE2 0xCDF9 #HANGUL SYLLABLE CHIEUCH WI PIEUP +0xBEE3 0xCDFB #HANGUL SYLLABLE CHIEUCH WI SIOS +0xBEE4 0xCDFD #HANGUL SYLLABLE CHIEUCH WI IEUNG +0xBEE5 0xCE3C #HANGUL SYLLABLE CHIEUCH YI +0xBEE6 0xCD24 #HANGUL SYLLABLE CHIEUCH WA +0xBEE7 0xCD25 #HANGUL SYLLABLE CHIEUCH WA KIYEOK +0xBEE8 0xCD28 #HANGUL SYLLABLE CHIEUCH WA NIEUN +0xBEE9 0xCD2C #HANGUL SYLLABLE CHIEUCH WA RIEUL +0xBEEA 0xCD39 #HANGUL SYLLABLE CHIEUCH WA IEUNG +0xBEEB 0xCDB0 #HANGUL SYLLABLE CHIEUCH WEO +0xBEEC 0xCDC3 #HANGUL SYLLABLE CHIEUCH WEO SIOS +0xBEED 0xCDC4 #HANGUL SYLLABLE CHIEUCH WEO SSANGSIOS +0xBEEE 0xCD40 #HANGUL SYLLABLE CHIEUCH WAE +0xBEEF 0xCD44 #HANGUL SYLLABLE CHIEUCH WAE NIEUN +0xBEF0 0xCDCC #HANGUL SYLLABLE CHIEUCH WE +0xBEF1 0xCDD0 #HANGUL SYLLABLE CHIEUCH WE NIEUN +0xBEF2 0xCE74 #HANGUL SYLLABLE KHIEUKH A +0xBEF3 0xCE75 #HANGUL SYLLABLE KHIEUKH A KIYEOK +0xBEF4 0xCE78 #HANGUL SYLLABLE KHIEUKH A NIEUN +0xBEF5 0xCE7C #HANGUL SYLLABLE KHIEUKH A RIEUL +0xBEF6 0xCE84 #HANGUL SYLLABLE KHIEUKH A MIEUM +0xBEF7 0xCE85 #HANGUL SYLLABLE KHIEUKH A PIEUP +0xBEF8 0xCE87 #HANGUL SYLLABLE KHIEUKH A SIOS +0xBEF9 0xCE89 #HANGUL SYLLABLE KHIEUKH A IEUNG +0xBEFA 0xCE8E #HANGUL SYLLABLE KHIEUKH A PHIEUPH +0xBEFB 0xCE88 #HANGUL SYLLABLE KHIEUKH A SSANGSIOS +0xBEFC 0xCEAC #HANGUL SYLLABLE KHIEUKH YA +0xBEFD 0xCEAD #HANGUL SYLLABLE KHIEUKH YA KIYEOK +0xBEFE 0xCEB0 #HANGUL SYLLABLE KHIEUKH YA NIEUN +0xBF41 0xC6BF #HANGUL SYLLABLE IEUNG U RIEULHIEUH +0xBF42 0xC6C2 #HANGUL SYLLABLE IEUNG U PIEUPSIOS +0xBF43 0xC6C6 #HANGUL SYLLABLE IEUNG U CIEUC +0xBF44 0xC6C7 #HANGUL SYLLABLE IEUNG U CHIEUCH +0xBF45 0xC6C8 #HANGUL SYLLABLE IEUNG U KHIEUKH +0xBF46 0xC6C9 #HANGUL SYLLABLE IEUNG U THIEUTH +0xBF47 0xC6CA #HANGUL SYLLABLE IEUNG U PHIEUPH +0xBF48 0xC6CB #HANGUL SYLLABLE IEUNG U HIEUH +0xBF49 0xC6B2 #HANGUL SYLLABLE IEUNG U SSANGKIYEOK +0xBF4A 0xC6C4 #HANGUL SYLLABLE IEUNG U SSANGSIOS +0xBF4B 0xC723 #HANGUL SYLLABLE IEUNG YU KIYEOKSIOS +0xBF4C 0xC725 #HANGUL SYLLABLE IEUNG YU NIEUNCIEUC +0xBF4D 0xC726 #HANGUL SYLLABLE IEUNG YU NIEUNHIEUH +0xBF4E 0xC727 #HANGUL SYLLABLE IEUNG YU TIKEUT +0xBF4F 0xC729 #HANGUL SYLLABLE IEUNG YU RIEULKIYEOK +0xBF50 0xC72A #HANGUL SYLLABLE IEUNG YU RIEULMIEUM +0xBF51 0xC72B #HANGUL SYLLABLE IEUNG YU RIEULPIEUP +0xBF52 0xC72C #HANGUL SYLLABLE IEUNG YU RIEULSIOS +0xBF53 0xC72D #HANGUL SYLLABLE IEUNG YU RIEULTHIEUTH +0xBF54 0xC72E #HANGUL SYLLABLE IEUNG YU RIEULPHIEUPH +0xBF55 0xC72F #HANGUL SYLLABLE IEUNG YU RIEULHIEUH +0xBF56 0xC732 #HANGUL SYLLABLE IEUNG YU PIEUPSIOS +0xBF57 0xC736 #HANGUL SYLLABLE IEUNG YU CIEUC +0xBF58 0xC738 #HANGUL SYLLABLE IEUNG YU KHIEUKH +0xBF59 0xC739 #HANGUL SYLLABLE IEUNG YU THIEUTH +0xBF5A 0xC73A #HANGUL SYLLABLE IEUNG YU PHIEUPH +0xBF61 0xC73B #HANGUL SYLLABLE IEUNG YU HIEUH +0xBF62 0xC722 #HANGUL SYLLABLE IEUNG YU SSANGKIYEOK +0xBF63 0xC734 #HANGUL SYLLABLE IEUNG YU SSANGSIOS +0xBF64 0xC73F #HANGUL SYLLABLE IEUNG EU KIYEOKSIOS +0xBF65 0xC741 #HANGUL SYLLABLE IEUNG EU NIEUNCIEUC +0xBF66 0xC742 #HANGUL SYLLABLE IEUNG EU NIEUNHIEUH +0xBF67 0xC746 #HANGUL SYLLABLE IEUNG EU RIEULMIEUM +0xBF68 0xC747 #HANGUL SYLLABLE IEUNG EU RIEULPIEUP +0xBF69 0xC748 #HANGUL SYLLABLE IEUNG EU RIEULSIOS +0xBF6A 0xC749 #HANGUL SYLLABLE IEUNG EU RIEULTHIEUTH +0xBF6B 0xC74B #HANGUL SYLLABLE IEUNG EU RIEULHIEUH +0xBF6C 0xC74E #HANGUL SYLLABLE IEUNG EU PIEUPSIOS +0xBF6D 0xC73E #HANGUL SYLLABLE IEUNG EU SSANGKIYEOK +0xBF6E 0xC750 #HANGUL SYLLABLE IEUNG EU SSANGSIOS +0xBF6F 0xC777 #HANGUL SYLLABLE IEUNG I KIYEOKSIOS +0xBF70 0xC779 #HANGUL SYLLABLE IEUNG I NIEUNCIEUC +0xBF71 0xC77A #HANGUL SYLLABLE IEUNG I NIEUNHIEUH +0xBF72 0xC77B #HANGUL SYLLABLE IEUNG I TIKEUT +0xBF73 0xC77F #HANGUL SYLLABLE IEUNG I RIEULPIEUP +0xBF74 0xC780 #HANGUL SYLLABLE IEUNG I RIEULSIOS +0xBF75 0xC781 #HANGUL SYLLABLE IEUNG I RIEULTHIEUTH +0xBF76 0xC782 #HANGUL SYLLABLE IEUNG I RIEULPHIEUPH +0xBF77 0xC786 #HANGUL SYLLABLE IEUNG I PIEUPSIOS +0xBF78 0xC78B #HANGUL SYLLABLE IEUNG I CHIEUCH +0xBF79 0xC78C #HANGUL SYLLABLE IEUNG I KHIEUKH +0xBF7A 0xC78D #HANGUL SYLLABLE IEUNG I THIEUTH +0xBF81 0xC78F #HANGUL SYLLABLE IEUNG I HIEUH +0xBF82 0xC776 #HANGUL SYLLABLE IEUNG I SSANGKIYEOK +0xBF83 0xC563 #HANGUL SYLLABLE IEUNG AE KIYEOKSIOS +0xBF84 0xC565 #HANGUL SYLLABLE IEUNG AE NIEUNCIEUC +0xBF85 0xC566 #HANGUL SYLLABLE IEUNG AE NIEUNHIEUH +0xBF86 0xC567 #HANGUL SYLLABLE IEUNG AE TIKEUT +0xBF87 0xC569 #HANGUL SYLLABLE IEUNG AE RIEULKIYEOK +0xBF88 0xC56A #HANGUL SYLLABLE IEUNG AE RIEULMIEUM +0xBF89 0xC56B #HANGUL SYLLABLE IEUNG AE RIEULPIEUP +0xBF8A 0xC56C #HANGUL SYLLABLE IEUNG AE RIEULSIOS +0xBF8B 0xC56D #HANGUL SYLLABLE IEUNG AE RIEULTHIEUTH +0xBF8C 0xC56E #HANGUL SYLLABLE IEUNG AE RIEULPHIEUPH +0xBF8D 0xC56F #HANGUL SYLLABLE IEUNG AE RIEULHIEUH +0xBF8E 0xC572 #HANGUL SYLLABLE IEUNG AE PIEUPSIOS +0xBF8F 0xC576 #HANGUL SYLLABLE IEUNG AE CIEUC +0xBF90 0xC577 #HANGUL SYLLABLE IEUNG AE CHIEUCH +0xBF91 0xC578 #HANGUL SYLLABLE IEUNG AE KHIEUKH +0xBF92 0xC579 #HANGUL SYLLABLE IEUNG AE THIEUTH +0xBF93 0xC57A #HANGUL SYLLABLE IEUNG AE PHIEUPH +0xBF94 0xC57B #HANGUL SYLLABLE IEUNG AE HIEUH +0xBF95 0xC562 #HANGUL SYLLABLE IEUNG AE SSANGKIYEOK +0xBF96 0xC599 #HANGUL SYLLABLE IEUNG YAE KIYEOK +0xBF97 0xC59B #HANGUL SYLLABLE IEUNG YAE KIYEOKSIOS +0xBF98 0xC59D #HANGUL SYLLABLE IEUNG YAE NIEUNCIEUC +0xBF99 0xC59E #HANGUL SYLLABLE IEUNG YAE NIEUNHIEUH +0xBF9A 0xC59F #HANGUL SYLLABLE IEUNG YAE TIKEUT +0xBF9B 0xC5A1 #HANGUL SYLLABLE IEUNG YAE RIEULKIYEOK +0xBF9C 0xC5A2 #HANGUL SYLLABLE IEUNG YAE RIEULMIEUM +0xBF9D 0xC5A3 #HANGUL SYLLABLE IEUNG YAE RIEULPIEUP +0xBF9E 0xC5A4 #HANGUL SYLLABLE IEUNG YAE RIEULSIOS +0xBF9F 0xC5A5 #HANGUL SYLLABLE IEUNG YAE RIEULTHIEUTH +0xBFA0 0xC5A6 #HANGUL SYLLABLE IEUNG YAE RIEULPHIEUPH +0xBFA1 0xCEBC #HANGUL SYLLABLE KHIEUKH YA MIEUM +0xBFA2 0xCEBD #HANGUL SYLLABLE KHIEUKH YA PIEUP +0xBFA3 0xCEC1 #HANGUL SYLLABLE KHIEUKH YA IEUNG +0xBFA4 0xCEE4 #HANGUL SYLLABLE KHIEUKH EO +0xBFA5 0xCEE5 #HANGUL SYLLABLE KHIEUKH EO KIYEOK +0xBFA6 0xCEE8 #HANGUL SYLLABLE KHIEUKH EO NIEUN +0xBFA7 0xCEEB #HANGUL SYLLABLE KHIEUKH EO TIKEUT +0xBFA8 0xCEEC #HANGUL SYLLABLE KHIEUKH EO RIEUL +0xBFA9 0xCEF4 #HANGUL SYLLABLE KHIEUKH EO MIEUM +0xBFAA 0xCEF5 #HANGUL SYLLABLE KHIEUKH EO PIEUP +0xBFAB 0xCEF7 #HANGUL SYLLABLE KHIEUKH EO SIOS +0xBFAC 0xCEF9 #HANGUL SYLLABLE KHIEUKH EO IEUNG +0xBFAD 0xCEFD #HANGUL SYLLABLE KHIEUKH EO THIEUTH +0xBFAE 0xCEFE #HANGUL SYLLABLE KHIEUKH EO PHIEUPH +0xBFAF 0xCEF8 #HANGUL SYLLABLE KHIEUKH EO SSANGSIOS +0xBFB0 0xCF1C #HANGUL SYLLABLE KHIEUKH YEO +0xBFB1 0xCF20 #HANGUL SYLLABLE KHIEUKH YEO NIEUN +0xBFB2 0xCF24 #HANGUL SYLLABLE KHIEUKH YEO RIEUL +0xBFB3 0xCF2C #HANGUL SYLLABLE KHIEUKH YEO MIEUM +0xBFB4 0xCF2D #HANGUL SYLLABLE KHIEUKH YEO PIEUP +0xBFB5 0xCF2F #HANGUL SYLLABLE KHIEUKH YEO SIOS +0xBFB6 0xCF31 #HANGUL SYLLABLE KHIEUKH YEO IEUNG +0xBFB7 0xCF30 #HANGUL SYLLABLE KHIEUKH YEO SSANGSIOS +0xBFB8 0xCF54 #HANGUL SYLLABLE KHIEUKH O +0xBFB9 0xCF55 #HANGUL SYLLABLE KHIEUKH O KIYEOK +0xBFBA 0xCF58 #HANGUL SYLLABLE KHIEUKH O NIEUN +0xBFBB 0xCF5C #HANGUL SYLLABLE KHIEUKH O RIEUL +0xBFBC 0xCF64 #HANGUL SYLLABLE KHIEUKH O MIEUM +0xBFBD 0xCF65 #HANGUL SYLLABLE KHIEUKH O PIEUP +0xBFBE 0xCF67 #HANGUL SYLLABLE KHIEUKH O SIOS +0xBFBF 0xCF69 #HANGUL SYLLABLE KHIEUKH O IEUNG +0xBFC0 0xCFC4 #HANGUL SYLLABLE KHIEUKH YO +0xBFC1 0xCFE0 #HANGUL SYLLABLE KHIEUKH U +0xBFC2 0xCFE1 #HANGUL SYLLABLE KHIEUKH U KIYEOK +0xBFC3 0xCFE4 #HANGUL SYLLABLE KHIEUKH U NIEUN +0xBFC4 0xCFE8 #HANGUL SYLLABLE KHIEUKH U RIEUL +0xBFC5 0xCFF0 #HANGUL SYLLABLE KHIEUKH U MIEUM +0xBFC6 0xCFF1 #HANGUL SYLLABLE KHIEUKH U PIEUP +0xBFC7 0xCFF3 #HANGUL SYLLABLE KHIEUKH U SIOS +0xBFC8 0xCFF5 #HANGUL SYLLABLE KHIEUKH U IEUNG +0xBFC9 0xD050 #HANGUL SYLLABLE KHIEUKH YU +0xBFCA 0xD054 #HANGUL SYLLABLE KHIEUKH YU NIEUN +0xBFCB 0xD058 #HANGUL SYLLABLE KHIEUKH YU RIEUL +0xBFCC 0xD060 #HANGUL SYLLABLE KHIEUKH YU MIEUM +0xBFCD 0xD06C #HANGUL SYLLABLE KHIEUKH EU +0xBFCE 0xD06D #HANGUL SYLLABLE KHIEUKH EU KIYEOK +0xBFCF 0xD070 #HANGUL SYLLABLE KHIEUKH EU NIEUN +0xBFD0 0xD074 #HANGUL SYLLABLE KHIEUKH EU RIEUL +0xBFD1 0xD07C #HANGUL SYLLABLE KHIEUKH EU MIEUM +0xBFD2 0xD07D #HANGUL SYLLABLE KHIEUKH EU PIEUP +0xBFD3 0xD081 #HANGUL SYLLABLE KHIEUKH EU IEUNG +0xBFD4 0xD0A4 #HANGUL SYLLABLE KHIEUKH I +0xBFD5 0xD0A5 #HANGUL SYLLABLE KHIEUKH I KIYEOK +0xBFD6 0xD0A8 #HANGUL SYLLABLE KHIEUKH I NIEUN +0xBFD7 0xD0AC #HANGUL SYLLABLE KHIEUKH I RIEUL +0xBFD8 0xD0B4 #HANGUL SYLLABLE KHIEUKH I MIEUM +0xBFD9 0xD0B5 #HANGUL SYLLABLE KHIEUKH I PIEUP +0xBFDA 0xD0B7 #HANGUL SYLLABLE KHIEUKH I SIOS +0xBFDB 0xD0B9 #HANGUL SYLLABLE KHIEUKH I IEUNG +0xBFDC 0xD0BE #HANGUL SYLLABLE KHIEUKH I PHIEUPH +0xBFDD 0xCE90 #HANGUL SYLLABLE KHIEUKH AE +0xBFDE 0xCE91 #HANGUL SYLLABLE KHIEUKH AE KIYEOK +0xBFDF 0xCE94 #HANGUL SYLLABLE KHIEUKH AE NIEUN +0xBFE0 0xCE98 #HANGUL SYLLABLE KHIEUKH AE RIEUL +0xBFE1 0xCEA0 #HANGUL SYLLABLE KHIEUKH AE MIEUM +0xBFE2 0xCEA1 #HANGUL SYLLABLE KHIEUKH AE PIEUP +0xBFE3 0xCEA3 #HANGUL SYLLABLE KHIEUKH AE SIOS +0xBFE4 0xCEA5 #HANGUL SYLLABLE KHIEUKH AE IEUNG +0xBFE5 0xCEAA #HANGUL SYLLABLE KHIEUKH AE PHIEUPH +0xBFE6 0xCEA4 #HANGUL SYLLABLE KHIEUKH AE SSANGSIOS +0xBFE7 0xCEC8 #HANGUL SYLLABLE KHIEUKH YAE +0xBFE8 0xCF00 #HANGUL SYLLABLE KHIEUKH E +0xBFE9 0xCF01 #HANGUL SYLLABLE KHIEUKH E KIYEOK +0xBFEA 0xCF04 #HANGUL SYLLABLE KHIEUKH E NIEUN +0xBFEB 0xCF08 #HANGUL SYLLABLE KHIEUKH E RIEUL +0xBFEC 0xCF10 #HANGUL SYLLABLE KHIEUKH E MIEUM +0xBFED 0xCF11 #HANGUL SYLLABLE KHIEUKH E PIEUP +0xBFEE 0xCF13 #HANGUL SYLLABLE KHIEUKH E SIOS +0xBFEF 0xCF15 #HANGUL SYLLABLE KHIEUKH E IEUNG +0xBFF0 0xCF38 #HANGUL SYLLABLE KHIEUKH YE +0xBFF1 0xCFA8 #HANGUL SYLLABLE KHIEUKH OE +0xBFF2 0xCFB0 #HANGUL SYLLABLE KHIEUKH OE RIEUL +0xBFF3 0xD034 #HANGUL SYLLABLE KHIEUKH WI +0xBFF4 0xD035 #HANGUL SYLLABLE KHIEUKH WI KIYEOK +0xBFF5 0xD038 #HANGUL SYLLABLE KHIEUKH WI NIEUN +0xBFF6 0xD03C #HANGUL SYLLABLE KHIEUKH WI RIEUL +0xBFF7 0xD044 #HANGUL SYLLABLE KHIEUKH WI MIEUM +0xBFF8 0xD045 #HANGUL SYLLABLE KHIEUKH WI PIEUP +0xBFF9 0xD047 #HANGUL SYLLABLE KHIEUKH WI SIOS +0xBFFA 0xD049 #HANGUL SYLLABLE KHIEUKH WI IEUNG +0xBFFB 0xD088 #HANGUL SYLLABLE KHIEUKH YI +0xBFFC 0xCF70 #HANGUL SYLLABLE KHIEUKH WA +0xBFFD 0xCF71 #HANGUL SYLLABLE KHIEUKH WA KIYEOK +0xBFFE 0xCF74 #HANGUL SYLLABLE KHIEUKH WA NIEUN +0xC041 0xC5A7 #HANGUL SYLLABLE IEUNG YAE RIEULHIEUH +0xC042 0xC5A8 #HANGUL SYLLABLE IEUNG YAE MIEUM +0xC043 0xC5AA #HANGUL SYLLABLE IEUNG YAE PIEUPSIOS +0xC044 0xC5AB #HANGUL SYLLABLE IEUNG YAE SIOS +0xC045 0xC5AD #HANGUL SYLLABLE IEUNG YAE IEUNG +0xC046 0xC5AE #HANGUL SYLLABLE IEUNG YAE CIEUC +0xC047 0xC5AF #HANGUL SYLLABLE IEUNG YAE CHIEUCH +0xC048 0xC5B0 #HANGUL SYLLABLE IEUNG YAE KHIEUKH +0xC049 0xC5B1 #HANGUL SYLLABLE IEUNG YAE THIEUTH +0xC04A 0xC5B2 #HANGUL SYLLABLE IEUNG YAE PHIEUPH +0xC04B 0xC5B3 #HANGUL SYLLABLE IEUNG YAE HIEUH +0xC04C 0xC59A #HANGUL SYLLABLE IEUNG YAE SSANGKIYEOK +0xC04D 0xC5AC #HANGUL SYLLABLE IEUNG YAE SSANGSIOS +0xC04E 0xC5D3 #HANGUL SYLLABLE IEUNG E KIYEOKSIOS +0xC04F 0xC5D5 #HANGUL SYLLABLE IEUNG E NIEUNCIEUC +0xC050 0xC5D6 #HANGUL SYLLABLE IEUNG E NIEUNHIEUH +0xC051 0xC5D7 #HANGUL SYLLABLE IEUNG E TIKEUT +0xC052 0xC5D9 #HANGUL SYLLABLE IEUNG E RIEULKIYEOK +0xC053 0xC5DA #HANGUL SYLLABLE IEUNG E RIEULMIEUM +0xC054 0xC5DB #HANGUL SYLLABLE IEUNG E RIEULPIEUP +0xC055 0xC5DC #HANGUL SYLLABLE IEUNG E RIEULSIOS +0xC056 0xC5DD #HANGUL SYLLABLE IEUNG E RIEULTHIEUTH +0xC057 0xC5DE #HANGUL SYLLABLE IEUNG E RIEULPHIEUPH +0xC058 0xC5DF #HANGUL SYLLABLE IEUNG E RIEULHIEUH +0xC059 0xC5E2 #HANGUL SYLLABLE IEUNG E PIEUPSIOS +0xC05A 0xC5E6 #HANGUL SYLLABLE IEUNG E CIEUC +0xC061 0xC5E7 #HANGUL SYLLABLE IEUNG E CHIEUCH +0xC062 0xC5E8 #HANGUL SYLLABLE IEUNG E KHIEUKH +0xC063 0xC5E9 #HANGUL SYLLABLE IEUNG E THIEUTH +0xC064 0xC5EA #HANGUL SYLLABLE IEUNG E PHIEUPH +0xC065 0xC5EB #HANGUL SYLLABLE IEUNG E HIEUH +0xC066 0xC5D2 #HANGUL SYLLABLE IEUNG E SSANGKIYEOK +0xC067 0xC609 #HANGUL SYLLABLE IEUNG YE KIYEOK +0xC068 0xC60B #HANGUL SYLLABLE IEUNG YE KIYEOKSIOS +0xC069 0xC60D #HANGUL SYLLABLE IEUNG YE NIEUNCIEUC +0xC06A 0xC60E #HANGUL SYLLABLE IEUNG YE NIEUNHIEUH +0xC06B 0xC60F #HANGUL SYLLABLE IEUNG YE TIKEUT +0xC06C 0xC611 #HANGUL SYLLABLE IEUNG YE RIEULKIYEOK +0xC06D 0xC612 #HANGUL SYLLABLE IEUNG YE RIEULMIEUM +0xC06E 0xC613 #HANGUL SYLLABLE IEUNG YE RIEULPIEUP +0xC06F 0xC614 #HANGUL SYLLABLE IEUNG YE RIEULSIOS +0xC070 0xC615 #HANGUL SYLLABLE IEUNG YE RIEULTHIEUTH +0xC071 0xC616 #HANGUL SYLLABLE IEUNG YE RIEULPHIEUPH +0xC072 0xC617 #HANGUL SYLLABLE IEUNG YE RIEULHIEUH +0xC073 0xC61A #HANGUL SYLLABLE IEUNG YE PIEUPSIOS +0xC074 0xC61E #HANGUL SYLLABLE IEUNG YE CIEUC +0xC075 0xC61F #HANGUL SYLLABLE IEUNG YE CHIEUCH +0xC076 0xC620 #HANGUL SYLLABLE IEUNG YE KHIEUKH +0xC077 0xC621 #HANGUL SYLLABLE IEUNG YE THIEUTH +0xC078 0xC622 #HANGUL SYLLABLE IEUNG YE PHIEUPH +0xC079 0xC623 #HANGUL SYLLABLE IEUNG YE HIEUH +0xC07A 0xC60A #HANGUL SYLLABLE IEUNG YE SSANGKIYEOK +0xC081 0xC67B #HANGUL SYLLABLE IEUNG OE KIYEOKSIOS +0xC082 0xC67D #HANGUL SYLLABLE IEUNG OE NIEUNCIEUC +0xC083 0xC67E #HANGUL SYLLABLE IEUNG OE NIEUNHIEUH +0xC084 0xC67F #HANGUL SYLLABLE IEUNG OE TIKEUT +0xC085 0xC681 #HANGUL SYLLABLE IEUNG OE RIEULKIYEOK +0xC086 0xC682 #HANGUL SYLLABLE IEUNG OE RIEULMIEUM +0xC087 0xC683 #HANGUL SYLLABLE IEUNG OE RIEULPIEUP +0xC088 0xC684 #HANGUL SYLLABLE IEUNG OE RIEULSIOS +0xC089 0xC685 #HANGUL SYLLABLE IEUNG OE RIEULTHIEUTH +0xC08A 0xC686 #HANGUL SYLLABLE IEUNG OE RIEULPHIEUPH +0xC08B 0xC687 #HANGUL SYLLABLE IEUNG OE RIEULHIEUH +0xC08C 0xC68A #HANGUL SYLLABLE IEUNG OE PIEUPSIOS +0xC08D 0xC68E #HANGUL SYLLABLE IEUNG OE CIEUC +0xC08E 0xC68F #HANGUL SYLLABLE IEUNG OE CHIEUCH +0xC08F 0xC690 #HANGUL SYLLABLE IEUNG OE KHIEUKH +0xC090 0xC691 #HANGUL SYLLABLE IEUNG OE THIEUTH +0xC091 0xC692 #HANGUL SYLLABLE IEUNG OE PHIEUPH +0xC092 0xC693 #HANGUL SYLLABLE IEUNG OE HIEUH +0xC093 0xC67A #HANGUL SYLLABLE IEUNG OE SSANGKIYEOK +0xC094 0xC68C #HANGUL SYLLABLE IEUNG OE SSANGSIOS +0xC095 0xC707 #HANGUL SYLLABLE IEUNG WI KIYEOKSIOS +0xC096 0xC709 #HANGUL SYLLABLE IEUNG WI NIEUNCIEUC +0xC097 0xC70A #HANGUL SYLLABLE IEUNG WI NIEUNHIEUH +0xC098 0xC70B #HANGUL SYLLABLE IEUNG WI TIKEUT +0xC099 0xC70D #HANGUL SYLLABLE IEUNG WI RIEULKIYEOK +0xC09A 0xC70E #HANGUL SYLLABLE IEUNG WI RIEULMIEUM +0xC09B 0xC70F #HANGUL SYLLABLE IEUNG WI RIEULPIEUP +0xC09C 0xC710 #HANGUL SYLLABLE IEUNG WI RIEULSIOS +0xC09D 0xC711 #HANGUL SYLLABLE IEUNG WI RIEULTHIEUTH +0xC09E 0xC712 #HANGUL SYLLABLE IEUNG WI RIEULPHIEUPH +0xC09F 0xC713 #HANGUL SYLLABLE IEUNG WI RIEULHIEUH +0xC0A0 0xC716 #HANGUL SYLLABLE IEUNG WI PIEUPSIOS +0xC0A1 0xCF78 #HANGUL SYLLABLE KHIEUKH WA RIEUL +0xC0A2 0xCF80 #HANGUL SYLLABLE KHIEUKH WA MIEUM +0xC0A3 0xCF85 #HANGUL SYLLABLE KHIEUKH WA IEUNG +0xC0A4 0xCFFC #HANGUL SYLLABLE KHIEUKH WEO +0xC0A5 0xD000 #HANGUL SYLLABLE KHIEUKH WEO NIEUN +0xC0A6 0xD004 #HANGUL SYLLABLE KHIEUKH WEO RIEUL +0xC0A7 0xD011 #HANGUL SYLLABLE KHIEUKH WEO IEUNG +0xC0A8 0xCF8C #HANGUL SYLLABLE KHIEUKH WAE +0xC0A9 0xCF90 #HANGUL SYLLABLE KHIEUKH WAE NIEUN +0xC0AA 0xCF94 #HANGUL SYLLABLE KHIEUKH WAE RIEUL +0xC0AB 0xCFA1 #HANGUL SYLLABLE KHIEUKH WAE IEUNG +0xC0AC 0xD018 #HANGUL SYLLABLE KHIEUKH WE +0xC0AD 0xD019 #HANGUL SYLLABLE KHIEUKH WE KIYEOK +0xC0AE 0xD020 #HANGUL SYLLABLE KHIEUKH WE RIEUL +0xC0AF 0xD02D #HANGUL SYLLABLE KHIEUKH WE IEUNG +0xC0B0 0xD0C0 #HANGUL SYLLABLE THIEUTH A +0xC0B1 0xD0C1 #HANGUL SYLLABLE THIEUTH A KIYEOK +0xC0B2 0xD0C4 #HANGUL SYLLABLE THIEUTH A NIEUN +0xC0B3 0xD0C8 #HANGUL SYLLABLE THIEUTH A RIEUL +0xC0B4 0xD0C9 #HANGUL SYLLABLE THIEUTH A RIEULKIYEOK +0xC0B5 0xD0D0 #HANGUL SYLLABLE THIEUTH A MIEUM +0xC0B6 0xD0D1 #HANGUL SYLLABLE THIEUTH A PIEUP +0xC0B7 0xD0D3 #HANGUL SYLLABLE THIEUTH A SIOS +0xC0B8 0xD0D5 #HANGUL SYLLABLE THIEUTH A IEUNG +0xC0B9 0xD0DA #HANGUL SYLLABLE THIEUTH A PHIEUPH +0xC0BA 0xD0D4 #HANGUL SYLLABLE THIEUTH A SSANGSIOS +0xC0BB 0xD0F8 #HANGUL SYLLABLE THIEUTH YA +0xC0BC 0xD0FC #HANGUL SYLLABLE THIEUTH YA NIEUN +0xC0BD 0xD10D #HANGUL SYLLABLE THIEUTH YA IEUNG +0xC0BE 0xD130 #HANGUL SYLLABLE THIEUTH EO +0xC0BF 0xD131 #HANGUL SYLLABLE THIEUTH EO KIYEOK +0xC0C0 0xD134 #HANGUL SYLLABLE THIEUTH EO NIEUN +0xC0C1 0xD138 #HANGUL SYLLABLE THIEUTH EO RIEUL +0xC0C2 0xD13A #HANGUL SYLLABLE THIEUTH EO RIEULMIEUM +0xC0C3 0xD140 #HANGUL SYLLABLE THIEUTH EO MIEUM +0xC0C4 0xD141 #HANGUL SYLLABLE THIEUTH EO PIEUP +0xC0C5 0xD143 #HANGUL SYLLABLE THIEUTH EO SIOS +0xC0C6 0xD145 #HANGUL SYLLABLE THIEUTH EO IEUNG +0xC0C7 0xD144 #HANGUL SYLLABLE THIEUTH EO SSANGSIOS +0xC0C8 0xD168 #HANGUL SYLLABLE THIEUTH YEO +0xC0C9 0xD16C #HANGUL SYLLABLE THIEUTH YEO NIEUN +0xC0CA 0xD17C #HANGUL SYLLABLE THIEUTH YEO SSANGSIOS +0xC0CB 0xD1A0 #HANGUL SYLLABLE THIEUTH O +0xC0CC 0xD1A1 #HANGUL SYLLABLE THIEUTH O KIYEOK +0xC0CD 0xD1A4 #HANGUL SYLLABLE THIEUTH O NIEUN +0xC0CE 0xD1A8 #HANGUL SYLLABLE THIEUTH O RIEUL +0xC0CF 0xD1B0 #HANGUL SYLLABLE THIEUTH O MIEUM +0xC0D0 0xD1B1 #HANGUL SYLLABLE THIEUTH O PIEUP +0xC0D1 0xD1B3 #HANGUL SYLLABLE THIEUTH O SIOS +0xC0D2 0xD1B5 #HANGUL SYLLABLE THIEUTH O IEUNG +0xC0D3 0xD1BA #HANGUL SYLLABLE THIEUTH O PHIEUPH +0xC0D4 0xD210 #HANGUL SYLLABLE THIEUTH YO +0xC0D5 0xD22C #HANGUL SYLLABLE THIEUTH U +0xC0D6 0xD22D #HANGUL SYLLABLE THIEUTH U KIYEOK +0xC0D7 0xD230 #HANGUL SYLLABLE THIEUTH U NIEUN +0xC0D8 0xD234 #HANGUL SYLLABLE THIEUTH U RIEUL +0xC0D9 0xD23C #HANGUL SYLLABLE THIEUTH U MIEUM +0xC0DA 0xD23D #HANGUL SYLLABLE THIEUTH U PIEUP +0xC0DB 0xD23F #HANGUL SYLLABLE THIEUTH U SIOS +0xC0DC 0xD241 #HANGUL SYLLABLE THIEUTH U IEUNG +0xC0DD 0xD29C #HANGUL SYLLABLE THIEUTH YU +0xC0DE 0xD2A0 #HANGUL SYLLABLE THIEUTH YU NIEUN +0xC0DF 0xD2A4 #HANGUL SYLLABLE THIEUTH YU RIEUL +0xC0E0 0xD2AC #HANGUL SYLLABLE THIEUTH YU MIEUM +0xC0E1 0xD2B1 #HANGUL SYLLABLE THIEUTH YU IEUNG +0xC0E2 0xD2B8 #HANGUL SYLLABLE THIEUTH EU +0xC0E3 0xD2B9 #HANGUL SYLLABLE THIEUTH EU KIYEOK +0xC0E4 0xD2BC #HANGUL SYLLABLE THIEUTH EU NIEUN +0xC0E5 0xD2BF #HANGUL SYLLABLE THIEUTH EU TIKEUT +0xC0E6 0xD2C0 #HANGUL SYLLABLE THIEUTH EU RIEUL +0xC0E7 0xD2C2 #HANGUL SYLLABLE THIEUTH EU RIEULMIEUM +0xC0E8 0xD2C8 #HANGUL SYLLABLE THIEUTH EU MIEUM +0xC0E9 0xD2C9 #HANGUL SYLLABLE THIEUTH EU PIEUP +0xC0EA 0xD2CB #HANGUL SYLLABLE THIEUTH EU SIOS +0xC0EB 0xD2CD #HANGUL SYLLABLE THIEUTH EU IEUNG +0xC0EC 0xD2F0 #HANGUL SYLLABLE THIEUTH I +0xC0ED 0xD2F1 #HANGUL SYLLABLE THIEUTH I KIYEOK +0xC0EE 0xD2F4 #HANGUL SYLLABLE THIEUTH I NIEUN +0xC0EF 0xD2F8 #HANGUL SYLLABLE THIEUTH I RIEUL +0xC0F0 0xD300 #HANGUL SYLLABLE THIEUTH I MIEUM +0xC0F1 0xD301 #HANGUL SYLLABLE THIEUTH I PIEUP +0xC0F2 0xD303 #HANGUL SYLLABLE THIEUTH I SIOS +0xC0F3 0xD305 #HANGUL SYLLABLE THIEUTH I IEUNG +0xC0F4 0xD0DC #HANGUL SYLLABLE THIEUTH AE +0xC0F5 0xD0DD #HANGUL SYLLABLE THIEUTH AE KIYEOK +0xC0F6 0xD0E0 #HANGUL SYLLABLE THIEUTH AE NIEUN +0xC0F7 0xD0E4 #HANGUL SYLLABLE THIEUTH AE RIEUL +0xC0F8 0xD0EC #HANGUL SYLLABLE THIEUTH AE MIEUM +0xC0F9 0xD0ED #HANGUL SYLLABLE THIEUTH AE PIEUP +0xC0FA 0xD0EF #HANGUL SYLLABLE THIEUTH AE SIOS +0xC0FB 0xD0F1 #HANGUL SYLLABLE THIEUTH AE IEUNG +0xC0FC 0xD0F6 #HANGUL SYLLABLE THIEUTH AE PHIEUPH +0xC0FD 0xD0F0 #HANGUL SYLLABLE THIEUTH AE SSANGSIOS +0xC0FE 0xD114 #HANGUL SYLLABLE THIEUTH YAE +0xC141 0xC71A #HANGUL SYLLABLE IEUNG WI CIEUC +0xC142 0xC71B #HANGUL SYLLABLE IEUNG WI CHIEUCH +0xC143 0xC71C #HANGUL SYLLABLE IEUNG WI KHIEUKH +0xC144 0xC71D #HANGUL SYLLABLE IEUNG WI THIEUTH +0xC145 0xC71E #HANGUL SYLLABLE IEUNG WI PHIEUPH +0xC146 0xC71F #HANGUL SYLLABLE IEUNG WI HIEUH +0xC147 0xC706 #HANGUL SYLLABLE IEUNG WI SSANGKIYEOK +0xC148 0xC718 #HANGUL SYLLABLE IEUNG WI SSANGSIOS +0xC149 0xC759 #HANGUL SYLLABLE IEUNG YI KIYEOK +0xC14A 0xC75B #HANGUL SYLLABLE IEUNG YI KIYEOKSIOS +0xC14B 0xC75D #HANGUL SYLLABLE IEUNG YI NIEUNCIEUC +0xC14C 0xC75E #HANGUL SYLLABLE IEUNG YI NIEUNHIEUH +0xC14D 0xC75F #HANGUL SYLLABLE IEUNG YI TIKEUT +0xC14E 0xC761 #HANGUL SYLLABLE IEUNG YI RIEULKIYEOK +0xC14F 0xC762 #HANGUL SYLLABLE IEUNG YI RIEULMIEUM +0xC150 0xC763 #HANGUL SYLLABLE IEUNG YI RIEULPIEUP +0xC151 0xC764 #HANGUL SYLLABLE IEUNG YI RIEULSIOS +0xC152 0xC765 #HANGUL SYLLABLE IEUNG YI RIEULTHIEUTH +0xC153 0xC766 #HANGUL SYLLABLE IEUNG YI RIEULPHIEUPH +0xC154 0xC767 #HANGUL SYLLABLE IEUNG YI RIEULHIEUH +0xC155 0xC769 #HANGUL SYLLABLE IEUNG YI PIEUP +0xC156 0xC76A #HANGUL SYLLABLE IEUNG YI PIEUPSIOS +0xC157 0xC76D #HANGUL SYLLABLE IEUNG YI IEUNG +0xC158 0xC76E #HANGUL SYLLABLE IEUNG YI CIEUC +0xC159 0xC76F #HANGUL SYLLABLE IEUNG YI CHIEUCH +0xC15A 0xC770 #HANGUL SYLLABLE IEUNG YI KHIEUKH +0xC161 0xC771 #HANGUL SYLLABLE IEUNG YI THIEUTH +0xC162 0xC772 #HANGUL SYLLABLE IEUNG YI PHIEUPH +0xC163 0xC773 #HANGUL SYLLABLE IEUNG YI HIEUH +0xC164 0xC75A #HANGUL SYLLABLE IEUNG YI SSANGKIYEOK +0xC165 0xC76C #HANGUL SYLLABLE IEUNG YI SSANGSIOS +0xC166 0xC643 #HANGUL SYLLABLE IEUNG WA KIYEOKSIOS +0xC167 0xC645 #HANGUL SYLLABLE IEUNG WA NIEUNCIEUC +0xC168 0xC646 #HANGUL SYLLABLE IEUNG WA NIEUNHIEUH +0xC169 0xC649 #HANGUL SYLLABLE IEUNG WA RIEULKIYEOK +0xC16A 0xC64A #HANGUL SYLLABLE IEUNG WA RIEULMIEUM +0xC16B 0xC64B #HANGUL SYLLABLE IEUNG WA RIEULPIEUP +0xC16C 0xC64C #HANGUL SYLLABLE IEUNG WA RIEULSIOS +0xC16D 0xC64D #HANGUL SYLLABLE IEUNG WA RIEULTHIEUTH +0xC16E 0xC64E #HANGUL SYLLABLE IEUNG WA RIEULPHIEUPH +0xC16F 0xC64F #HANGUL SYLLABLE IEUNG WA RIEULHIEUH +0xC170 0xC652 #HANGUL SYLLABLE IEUNG WA PIEUPSIOS +0xC171 0xC656 #HANGUL SYLLABLE IEUNG WA CIEUC +0xC172 0xC657 #HANGUL SYLLABLE IEUNG WA CHIEUCH +0xC173 0xC658 #HANGUL SYLLABLE IEUNG WA KHIEUKH +0xC174 0xC659 #HANGUL SYLLABLE IEUNG WA THIEUTH +0xC175 0xC65A #HANGUL SYLLABLE IEUNG WA PHIEUPH +0xC176 0xC65B #HANGUL SYLLABLE IEUNG WA HIEUH +0xC177 0xC642 #HANGUL SYLLABLE IEUNG WA SSANGKIYEOK +0xC178 0xC6CF #HANGUL SYLLABLE IEUNG WEO KIYEOKSIOS +0xC179 0xC6D1 #HANGUL SYLLABLE IEUNG WEO NIEUNCIEUC +0xC17A 0xC6D2 #HANGUL SYLLABLE IEUNG WEO NIEUNHIEUH +0xC181 0xC6D3 #HANGUL SYLLABLE IEUNG WEO TIKEUT +0xC182 0xC6D5 #HANGUL SYLLABLE IEUNG WEO RIEULKIYEOK +0xC183 0xC6D6 #HANGUL SYLLABLE IEUNG WEO RIEULMIEUM +0xC184 0xC6D7 #HANGUL SYLLABLE IEUNG WEO RIEULPIEUP +0xC185 0xC6D8 #HANGUL SYLLABLE IEUNG WEO RIEULSIOS +0xC186 0xC6D9 #HANGUL SYLLABLE IEUNG WEO RIEULTHIEUTH +0xC187 0xC6DA #HANGUL SYLLABLE IEUNG WEO RIEULPHIEUPH +0xC188 0xC6DB #HANGUL SYLLABLE IEUNG WEO RIEULHIEUH +0xC189 0xC6DE #HANGUL SYLLABLE IEUNG WEO PIEUPSIOS +0xC18A 0xC6E2 #HANGUL SYLLABLE IEUNG WEO CIEUC +0xC18B 0xC6E3 #HANGUL SYLLABLE IEUNG WEO CHIEUCH +0xC18C 0xC6E4 #HANGUL SYLLABLE IEUNG WEO KHIEUKH +0xC18D 0xC6E5 #HANGUL SYLLABLE IEUNG WEO THIEUTH +0xC18E 0xC6E6 #HANGUL SYLLABLE IEUNG WEO PHIEUPH +0xC18F 0xC6E7 #HANGUL SYLLABLE IEUNG WEO HIEUH +0xC190 0xC6CE #HANGUL SYLLABLE IEUNG WEO SSANGKIYEOK +0xC191 0xC65F #HANGUL SYLLABLE IEUNG WAE KIYEOKSIOS +0xC192 0xC661 #HANGUL SYLLABLE IEUNG WAE NIEUNCIEUC +0xC193 0xC662 #HANGUL SYLLABLE IEUNG WAE NIEUNHIEUH +0xC194 0xC663 #HANGUL SYLLABLE IEUNG WAE TIKEUT +0xC195 0xC664 #HANGUL SYLLABLE IEUNG WAE RIEUL +0xC196 0xC665 #HANGUL SYLLABLE IEUNG WAE RIEULKIYEOK +0xC197 0xC666 #HANGUL SYLLABLE IEUNG WAE RIEULMIEUM +0xC198 0xC667 #HANGUL SYLLABLE IEUNG WAE RIEULPIEUP +0xC199 0xC668 #HANGUL SYLLABLE IEUNG WAE RIEULSIOS +0xC19A 0xC669 #HANGUL SYLLABLE IEUNG WAE RIEULTHIEUTH +0xC19B 0xC66A #HANGUL SYLLABLE IEUNG WAE RIEULPHIEUPH +0xC19C 0xC66B #HANGUL SYLLABLE IEUNG WAE RIEULHIEUH +0xC19D 0xC66D #HANGUL SYLLABLE IEUNG WAE PIEUP +0xC19E 0xC66E #HANGUL SYLLABLE IEUNG WAE PIEUPSIOS +0xC19F 0xC672 #HANGUL SYLLABLE IEUNG WAE CIEUC +0xC1A0 0xC673 #HANGUL SYLLABLE IEUNG WAE CHIEUCH +0xC1A1 0xD14C #HANGUL SYLLABLE THIEUTH E +0xC1A2 0xD14D #HANGUL SYLLABLE THIEUTH E KIYEOK +0xC1A3 0xD150 #HANGUL SYLLABLE THIEUTH E NIEUN +0xC1A4 0xD154 #HANGUL SYLLABLE THIEUTH E RIEUL +0xC1A5 0xD15C #HANGUL SYLLABLE THIEUTH E MIEUM +0xC1A6 0xD15D #HANGUL SYLLABLE THIEUTH E PIEUP +0xC1A7 0xD15F #HANGUL SYLLABLE THIEUTH E SIOS +0xC1A8 0xD161 #HANGUL SYLLABLE THIEUTH E IEUNG +0xC1A9 0xD166 #HANGUL SYLLABLE THIEUTH E PHIEUPH +0xC1AA 0xD184 #HANGUL SYLLABLE THIEUTH YE +0xC1AB 0xD188 #HANGUL SYLLABLE THIEUTH YE NIEUN +0xC1AC 0xD1F4 #HANGUL SYLLABLE THIEUTH OE +0xC1AD 0xD1F8 #HANGUL SYLLABLE THIEUTH OE NIEUN +0xC1AE 0xD207 #HANGUL SYLLABLE THIEUTH OE SIOS +0xC1AF 0xD209 #HANGUL SYLLABLE THIEUTH OE IEUNG +0xC1B0 0xD280 #HANGUL SYLLABLE THIEUTH WI +0xC1B1 0xD281 #HANGUL SYLLABLE THIEUTH WI KIYEOK +0xC1B2 0xD284 #HANGUL SYLLABLE THIEUTH WI NIEUN +0xC1B3 0xD288 #HANGUL SYLLABLE THIEUTH WI RIEUL +0xC1B4 0xD290 #HANGUL SYLLABLE THIEUTH WI MIEUM +0xC1B5 0xD291 #HANGUL SYLLABLE THIEUTH WI PIEUP +0xC1B6 0xD295 #HANGUL SYLLABLE THIEUTH WI IEUNG +0xC1B7 0xD2D4 #HANGUL SYLLABLE THIEUTH YI +0xC1B8 0xD2D8 #HANGUL SYLLABLE THIEUTH YI NIEUN +0xC1B9 0xD2DC #HANGUL SYLLABLE THIEUTH YI RIEUL +0xC1BA 0xD2E4 #HANGUL SYLLABLE THIEUTH YI MIEUM +0xC1BB 0xD2E5 #HANGUL SYLLABLE THIEUTH YI PIEUP +0xC1BC 0xD1BC #HANGUL SYLLABLE THIEUTH WA +0xC1BD 0xD1C0 #HANGUL SYLLABLE THIEUTH WA NIEUN +0xC1BE 0xD248 #HANGUL SYLLABLE THIEUTH WEO +0xC1BF 0xD25C #HANGUL SYLLABLE THIEUTH WEO SSANGSIOS +0xC1C0 0xD1D8 #HANGUL SYLLABLE THIEUTH WAE +0xC1C1 0xD264 #HANGUL SYLLABLE THIEUTH WE +0xC1C2 0xD268 #HANGUL SYLLABLE THIEUTH WE NIEUN +0xC1C3 0xD278 #HANGUL SYLLABLE THIEUTH WE SSANGSIOS +0xC1C4 0xD30C #HANGUL SYLLABLE PHIEUPH A +0xC1C5 0xD30D #HANGUL SYLLABLE PHIEUPH A KIYEOK +0xC1C6 0xD310 #HANGUL SYLLABLE PHIEUPH A NIEUN +0xC1C7 0xD314 #HANGUL SYLLABLE PHIEUPH A RIEUL +0xC1C8 0xD316 #HANGUL SYLLABLE PHIEUPH A RIEULMIEUM +0xC1C9 0xD31C #HANGUL SYLLABLE PHIEUPH A MIEUM +0xC1CA 0xD31D #HANGUL SYLLABLE PHIEUPH A PIEUP +0xC1CB 0xD31F #HANGUL SYLLABLE PHIEUPH A SIOS +0xC1CC 0xD321 #HANGUL SYLLABLE PHIEUPH A IEUNG +0xC1CD 0xD325 #HANGUL SYLLABLE PHIEUPH A THIEUTH +0xC1CE 0xD30E #HANGUL SYLLABLE PHIEUPH A SSANGKIYEOK +0xC1CF 0xD320 #HANGUL SYLLABLE PHIEUPH A SSANGSIOS +0xC1D0 0xD344 #HANGUL SYLLABLE PHIEUPH YA +0xC1D1 0xD345 #HANGUL SYLLABLE PHIEUPH YA KIYEOK +0xC1D2 0xD37C #HANGUL SYLLABLE PHIEUPH EO +0xC1D3 0xD37D #HANGUL SYLLABLE PHIEUPH EO KIYEOK +0xC1D4 0xD380 #HANGUL SYLLABLE PHIEUPH EO NIEUN +0xC1D5 0xD384 #HANGUL SYLLABLE PHIEUPH EO RIEUL +0xC1D6 0xD38C #HANGUL SYLLABLE PHIEUPH EO MIEUM +0xC1D7 0xD38D #HANGUL SYLLABLE PHIEUPH EO PIEUP +0xC1D8 0xD38F #HANGUL SYLLABLE PHIEUPH EO SIOS +0xC1D9 0xD391 #HANGUL SYLLABLE PHIEUPH EO IEUNG +0xC1DA 0xD390 #HANGUL SYLLABLE PHIEUPH EO SSANGSIOS +0xC1DB 0xD3B4 #HANGUL SYLLABLE PHIEUPH YEO +0xC1DC 0xD3B5 #HANGUL SYLLABLE PHIEUPH YEO KIYEOK +0xC1DD 0xD3B8 #HANGUL SYLLABLE PHIEUPH YEO NIEUN +0xC1DE 0xD3BC #HANGUL SYLLABLE PHIEUPH YEO RIEUL +0xC1DF 0xD3C4 #HANGUL SYLLABLE PHIEUPH YEO MIEUM +0xC1E0 0xD3C5 #HANGUL SYLLABLE PHIEUPH YEO PIEUP +0xC1E1 0xD3C7 #HANGUL SYLLABLE PHIEUPH YEO SIOS +0xC1E2 0xD3C9 #HANGUL SYLLABLE PHIEUPH YEO IEUNG +0xC1E3 0xD3C8 #HANGUL SYLLABLE PHIEUPH YEO SSANGSIOS +0xC1E4 0xD3EC #HANGUL SYLLABLE PHIEUPH O +0xC1E5 0xD3ED #HANGUL SYLLABLE PHIEUPH O KIYEOK +0xC1E6 0xD3F0 #HANGUL SYLLABLE PHIEUPH O NIEUN +0xC1E7 0xD3F4 #HANGUL SYLLABLE PHIEUPH O RIEUL +0xC1E8 0xD3FC #HANGUL SYLLABLE PHIEUPH O MIEUM +0xC1E9 0xD3FD #HANGUL SYLLABLE PHIEUPH O PIEUP +0xC1EA 0xD3FF #HANGUL SYLLABLE PHIEUPH O SIOS +0xC1EB 0xD401 #HANGUL SYLLABLE PHIEUPH O IEUNG +0xC1EC 0xD45C #HANGUL SYLLABLE PHIEUPH YO +0xC1ED 0xD460 #HANGUL SYLLABLE PHIEUPH YO NIEUN +0xC1EE 0xD464 #HANGUL SYLLABLE PHIEUPH YO RIEUL +0xC1EF 0xD46D #HANGUL SYLLABLE PHIEUPH YO PIEUP +0xC1F0 0xD46F #HANGUL SYLLABLE PHIEUPH YO SIOS +0xC1F1 0xD478 #HANGUL SYLLABLE PHIEUPH U +0xC1F2 0xD479 #HANGUL SYLLABLE PHIEUPH U KIYEOK +0xC1F3 0xD47C #HANGUL SYLLABLE PHIEUPH U NIEUN +0xC1F4 0xD47F #HANGUL SYLLABLE PHIEUPH U TIKEUT +0xC1F5 0xD480 #HANGUL SYLLABLE PHIEUPH U RIEUL +0xC1F6 0xD482 #HANGUL SYLLABLE PHIEUPH U RIEULMIEUM +0xC1F7 0xD488 #HANGUL SYLLABLE PHIEUPH U MIEUM +0xC1F8 0xD489 #HANGUL SYLLABLE PHIEUPH U PIEUP +0xC1F9 0xD48B #HANGUL SYLLABLE PHIEUPH U SIOS +0xC1FA 0xD48D #HANGUL SYLLABLE PHIEUPH U IEUNG +0xC1FB 0xD4E8 #HANGUL SYLLABLE PHIEUPH YU +0xC1FC 0xD4EC #HANGUL SYLLABLE PHIEUPH YU NIEUN +0xC1FD 0xD4F0 #HANGUL SYLLABLE PHIEUPH YU RIEUL +0xC1FE 0xD4F8 #HANGUL SYLLABLE PHIEUPH YU MIEUM +0xC241 0xC674 #HANGUL SYLLABLE IEUNG WAE KHIEUKH +0xC242 0xC675 #HANGUL SYLLABLE IEUNG WAE THIEUTH +0xC243 0xC676 #HANGUL SYLLABLE IEUNG WAE PHIEUPH +0xC244 0xC677 #HANGUL SYLLABLE IEUNG WAE HIEUH +0xC245 0xC65E #HANGUL SYLLABLE IEUNG WAE SSANGKIYEOK +0xC246 0xC670 #HANGUL SYLLABLE IEUNG WAE SSANGSIOS +0xC247 0xC6EB #HANGUL SYLLABLE IEUNG WE KIYEOKSIOS +0xC248 0xC6ED #HANGUL SYLLABLE IEUNG WE NIEUNCIEUC +0xC249 0xC6EE #HANGUL SYLLABLE IEUNG WE NIEUNHIEUH +0xC24A 0xC6EF #HANGUL SYLLABLE IEUNG WE TIKEUT +0xC24B 0xC6F1 #HANGUL SYLLABLE IEUNG WE RIEULKIYEOK +0xC24C 0xC6F2 #HANGUL SYLLABLE IEUNG WE RIEULMIEUM +0xC24D 0xC6F3 #HANGUL SYLLABLE IEUNG WE RIEULPIEUP +0xC24E 0xC6F4 #HANGUL SYLLABLE IEUNG WE RIEULSIOS +0xC24F 0xC6F5 #HANGUL SYLLABLE IEUNG WE RIEULTHIEUTH +0xC250 0xC6F6 #HANGUL SYLLABLE IEUNG WE RIEULPHIEUPH +0xC251 0xC6F7 #HANGUL SYLLABLE IEUNG WE RIEULHIEUH +0xC252 0xC6FA #HANGUL SYLLABLE IEUNG WE PIEUPSIOS +0xC253 0xC6FE #HANGUL SYLLABLE IEUNG WE CIEUC +0xC254 0xC6FF #HANGUL SYLLABLE IEUNG WE CHIEUCH +0xC255 0xC700 #HANGUL SYLLABLE IEUNG WE KHIEUKH +0xC256 0xC702 #HANGUL SYLLABLE IEUNG WE PHIEUPH +0xC257 0xC703 #HANGUL SYLLABLE IEUNG WE HIEUH +0xC258 0xC6EA #HANGUL SYLLABLE IEUNG WE SSANGKIYEOK +0xC259 0xC6FC #HANGUL SYLLABLE IEUNG WE SSANGSIOS +0xC2A1 0xD4FB #HANGUL SYLLABLE PHIEUPH YU SIOS +0xC2A2 0xD4FD #HANGUL SYLLABLE PHIEUPH YU IEUNG +0xC2A3 0xD504 #HANGUL SYLLABLE PHIEUPH EU +0xC2A4 0xD508 #HANGUL SYLLABLE PHIEUPH EU NIEUN +0xC2A5 0xD50C #HANGUL SYLLABLE PHIEUPH EU RIEUL +0xC2A6 0xD514 #HANGUL SYLLABLE PHIEUPH EU MIEUM +0xC2A7 0xD515 #HANGUL SYLLABLE PHIEUPH EU PIEUP +0xC2A8 0xD517 #HANGUL SYLLABLE PHIEUPH EU SIOS +0xC2A9 0xD519 #HANGUL SYLLABLE PHIEUPH EU IEUNG +0xC2AA 0xD53C #HANGUL SYLLABLE PHIEUPH I +0xC2AB 0xD53D #HANGUL SYLLABLE PHIEUPH I KIYEOK +0xC2AC 0xD540 #HANGUL SYLLABLE PHIEUPH I NIEUN +0xC2AD 0xD544 #HANGUL SYLLABLE PHIEUPH I RIEUL +0xC2AE 0xD54C #HANGUL SYLLABLE PHIEUPH I MIEUM +0xC2AF 0xD54D #HANGUL SYLLABLE PHIEUPH I PIEUP +0xC2B0 0xD54F #HANGUL SYLLABLE PHIEUPH I SIOS +0xC2B1 0xD551 #HANGUL SYLLABLE PHIEUPH I IEUNG +0xC2B2 0xD328 #HANGUL SYLLABLE PHIEUPH AE +0xC2B3 0xD329 #HANGUL SYLLABLE PHIEUPH AE KIYEOK +0xC2B4 0xD32C #HANGUL SYLLABLE PHIEUPH AE NIEUN +0xC2B5 0xD330 #HANGUL SYLLABLE PHIEUPH AE RIEUL +0xC2B6 0xD338 #HANGUL SYLLABLE PHIEUPH AE MIEUM +0xC2B7 0xD339 #HANGUL SYLLABLE PHIEUPH AE PIEUP +0xC2B8 0xD33B #HANGUL SYLLABLE PHIEUPH AE SIOS +0xC2B9 0xD33D #HANGUL SYLLABLE PHIEUPH AE IEUNG +0xC2BA 0xD33C #HANGUL SYLLABLE PHIEUPH AE SSANGSIOS +0xC2BB 0xD360 #HANGUL SYLLABLE PHIEUPH YAE +0xC2BC 0xD398 #HANGUL SYLLABLE PHIEUPH E +0xC2BD 0xD399 #HANGUL SYLLABLE PHIEUPH E KIYEOK +0xC2BE 0xD39C #HANGUL SYLLABLE PHIEUPH E NIEUN +0xC2BF 0xD3A0 #HANGUL SYLLABLE PHIEUPH E RIEUL +0xC2C0 0xD3A8 #HANGUL SYLLABLE PHIEUPH E MIEUM +0xC2C1 0xD3A9 #HANGUL SYLLABLE PHIEUPH E PIEUP +0xC2C2 0xD3AB #HANGUL SYLLABLE PHIEUPH E SIOS +0xC2C3 0xD3AD #HANGUL SYLLABLE PHIEUPH E IEUNG +0xC2C4 0xD3B2 #HANGUL SYLLABLE PHIEUPH E PHIEUPH +0xC2C5 0xD3D0 #HANGUL SYLLABLE PHIEUPH YE +0xC2C6 0xD3D4 #HANGUL SYLLABLE PHIEUPH YE NIEUN +0xC2C7 0xD3D8 #HANGUL SYLLABLE PHIEUPH YE RIEUL +0xC2C8 0xD3E1 #HANGUL SYLLABLE PHIEUPH YE PIEUP +0xC2C9 0xD3E3 #HANGUL SYLLABLE PHIEUPH YE SIOS +0xC2CA 0xD440 #HANGUL SYLLABLE PHIEUPH OE +0xC2CB 0xD444 #HANGUL SYLLABLE PHIEUPH OE NIEUN +0xC2CC 0xD4CC #HANGUL SYLLABLE PHIEUPH WI +0xC2CD 0xD4D0 #HANGUL SYLLABLE PHIEUPH WI NIEUN +0xC2CE 0xD4D4 #HANGUL SYLLABLE PHIEUPH WI RIEUL +0xC2CF 0xD4DC #HANGUL SYLLABLE PHIEUPH WI MIEUM +0xC2D0 0xD4DF #HANGUL SYLLABLE PHIEUPH WI SIOS +0xC2D1 0xD520 #HANGUL SYLLABLE PHIEUPH YI +0xC2D2 0xD524 #HANGUL SYLLABLE PHIEUPH YI NIEUN +0xC2D3 0xD408 #HANGUL SYLLABLE PHIEUPH WA +0xC2D4 0xD41D #HANGUL SYLLABLE PHIEUPH WA IEUNG +0xC2D5 0xD494 #HANGUL SYLLABLE PHIEUPH WEO +0xC2D6 0xD4A9 #HANGUL SYLLABLE PHIEUPH WEO IEUNG +0xC2D7 0xD558 #HANGUL SYLLABLE HIEUH A +0xC2D8 0xD559 #HANGUL SYLLABLE HIEUH A KIYEOK +0xC2D9 0xD55C #HANGUL SYLLABLE HIEUH A NIEUN +0xC2DA 0xD560 #HANGUL SYLLABLE HIEUH A RIEUL +0xC2DB 0xD565 #HANGUL SYLLABLE HIEUH A RIEULTHIEUTH +0xC2DC 0xD568 #HANGUL SYLLABLE HIEUH A MIEUM +0xC2DD 0xD569 #HANGUL SYLLABLE HIEUH A PIEUP +0xC2DE 0xD56B #HANGUL SYLLABLE HIEUH A SIOS +0xC2DF 0xD56D #HANGUL SYLLABLE HIEUH A IEUNG +0xC2E0 0xD590 #HANGUL SYLLABLE HIEUH YA +0xC2E1 0xD5A5 #HANGUL SYLLABLE HIEUH YA IEUNG +0xC2E2 0xD5C8 #HANGUL SYLLABLE HIEUH EO +0xC2E3 0xD5C9 #HANGUL SYLLABLE HIEUH EO KIYEOK +0xC2E4 0xD5CC #HANGUL SYLLABLE HIEUH EO NIEUN +0xC2E5 0xD5D0 #HANGUL SYLLABLE HIEUH EO RIEUL +0xC2E6 0xD5D2 #HANGUL SYLLABLE HIEUH EO RIEULMIEUM +0xC2E7 0xD5D5 #HANGUL SYLLABLE HIEUH EO RIEULTHIEUTH +0xC2E8 0xD5D7 #HANGUL SYLLABLE HIEUH EO RIEULHIEUH +0xC2E9 0xD5D8 #HANGUL SYLLABLE HIEUH EO MIEUM +0xC2EA 0xD5D9 #HANGUL SYLLABLE HIEUH EO PIEUP +0xC2EB 0xD5DB #HANGUL SYLLABLE HIEUH EO SIOS +0xC2EC 0xD5DD #HANGUL SYLLABLE HIEUH EO IEUNG +0xC2ED 0xD600 #HANGUL SYLLABLE HIEUH YEO +0xC2EE 0xD601 #HANGUL SYLLABLE HIEUH YEO KIYEOK +0xC2EF 0xD604 #HANGUL SYLLABLE HIEUH YEO NIEUN +0xC2F0 0xD608 #HANGUL SYLLABLE HIEUH YEO RIEUL +0xC2F1 0xD610 #HANGUL SYLLABLE HIEUH YEO MIEUM +0xC2F2 0xD611 #HANGUL SYLLABLE HIEUH YEO PIEUP +0xC2F3 0xD613 #HANGUL SYLLABLE HIEUH YEO SIOS +0xC2F4 0xD615 #HANGUL SYLLABLE HIEUH YEO IEUNG +0xC2F5 0xD614 #HANGUL SYLLABLE HIEUH YEO SSANGSIOS +0xC2F6 0xD638 #HANGUL SYLLABLE HIEUH O +0xC2F7 0xD639 #HANGUL SYLLABLE HIEUH O KIYEOK +0xC2F8 0xD63C #HANGUL SYLLABLE HIEUH O NIEUN +0xC2F9 0xD63F #HANGUL SYLLABLE HIEUH O TIKEUT +0xC2FA 0xD640 #HANGUL SYLLABLE HIEUH O RIEUL +0xC2FB 0xD645 #HANGUL SYLLABLE HIEUH O RIEULTHIEUTH +0xC2FC 0xD648 #HANGUL SYLLABLE HIEUH O MIEUM +0xC2FD 0xD649 #HANGUL SYLLABLE HIEUH O PIEUP +0xC2FE 0xD64B #HANGUL SYLLABLE HIEUH O SIOS +0xC3A1 0xD64D #HANGUL SYLLABLE HIEUH O IEUNG +0xC3A2 0xD651 #HANGUL SYLLABLE HIEUH O THIEUTH +0xC3A3 0xD6A8 #HANGUL SYLLABLE HIEUH YO +0xC3A4 0xD6AC #HANGUL SYLLABLE HIEUH YO NIEUN +0xC3A5 0xD6B0 #HANGUL SYLLABLE HIEUH YO RIEUL +0xC3A6 0xD6B9 #HANGUL SYLLABLE HIEUH YO PIEUP +0xC3A7 0xD6BB #HANGUL SYLLABLE HIEUH YO SIOS +0xC3A8 0xD6C4 #HANGUL SYLLABLE HIEUH U +0xC3A9 0xD6C5 #HANGUL SYLLABLE HIEUH U KIYEOK +0xC3AA 0xD6C8 #HANGUL SYLLABLE HIEUH U NIEUN +0xC3AB 0xD6CC #HANGUL SYLLABLE HIEUH U RIEUL +0xC3AC 0xD6D1 #HANGUL SYLLABLE HIEUH U RIEULTHIEUTH +0xC3AD 0xD6D4 #HANGUL SYLLABLE HIEUH U MIEUM +0xC3AE 0xD6D5 #HANGUL SYLLABLE HIEUH U PIEUP +0xC3AF 0xD6D7 #HANGUL SYLLABLE HIEUH U SIOS +0xC3B0 0xD6D9 #HANGUL SYLLABLE HIEUH U IEUNG +0xC3B1 0xD734 #HANGUL SYLLABLE HIEUH YU +0xC3B2 0xD735 #HANGUL SYLLABLE HIEUH YU KIYEOK +0xC3B3 0xD738 #HANGUL SYLLABLE HIEUH YU NIEUN +0xC3B4 0xD73C #HANGUL SYLLABLE HIEUH YU RIEUL +0xC3B5 0xD744 #HANGUL SYLLABLE HIEUH YU MIEUM +0xC3B6 0xD747 #HANGUL SYLLABLE HIEUH YU SIOS +0xC3B7 0xD749 #HANGUL SYLLABLE HIEUH YU IEUNG +0xC3B8 0xD750 #HANGUL SYLLABLE HIEUH EU +0xC3B9 0xD751 #HANGUL SYLLABLE HIEUH EU KIYEOK +0xC3BA 0xD754 #HANGUL SYLLABLE HIEUH EU NIEUN +0xC3BB 0xD756 #HANGUL SYLLABLE HIEUH EU NIEUNHIEUH +0xC3BC 0xD757 #HANGUL SYLLABLE HIEUH EU TIKEUT +0xC3BD 0xD758 #HANGUL SYLLABLE HIEUH EU RIEUL +0xC3BE 0xD759 #HANGUL SYLLABLE HIEUH EU RIEULKIYEOK +0xC3BF 0xD75D #HANGUL SYLLABLE HIEUH EU RIEULTHIEUTH +0xC3C0 0xD760 #HANGUL SYLLABLE HIEUH EU MIEUM +0xC3C1 0xD761 #HANGUL SYLLABLE HIEUH EU PIEUP +0xC3C2 0xD763 #HANGUL SYLLABLE HIEUH EU SIOS +0xC3C3 0xD765 #HANGUL SYLLABLE HIEUH EU IEUNG +0xC3C4 0xD769 #HANGUL SYLLABLE HIEUH EU THIEUTH +0xC3C5 0xD788 #HANGUL SYLLABLE HIEUH I +0xC3C6 0xD789 #HANGUL SYLLABLE HIEUH I KIYEOK +0xC3C7 0xD78C #HANGUL SYLLABLE HIEUH I NIEUN +0xC3C8 0xD790 #HANGUL SYLLABLE HIEUH I RIEUL +0xC3C9 0xD798 #HANGUL SYLLABLE HIEUH I MIEUM +0xC3CA 0xD799 #HANGUL SYLLABLE HIEUH I PIEUP +0xC3CB 0xD79B #HANGUL SYLLABLE HIEUH I SIOS +0xC3CC 0xD79D #HANGUL SYLLABLE HIEUH I IEUNG +0xC3CD 0xD574 #HANGUL SYLLABLE HIEUH AE +0xC3CE 0xD575 #HANGUL SYLLABLE HIEUH AE KIYEOK +0xC3CF 0xD578 #HANGUL SYLLABLE HIEUH AE NIEUN +0xC3D0 0xD57C #HANGUL SYLLABLE HIEUH AE RIEUL +0xC3D1 0xD584 #HANGUL SYLLABLE HIEUH AE MIEUM +0xC3D2 0xD585 #HANGUL SYLLABLE HIEUH AE PIEUP +0xC3D3 0xD587 #HANGUL SYLLABLE HIEUH AE SIOS +0xC3D4 0xD589 #HANGUL SYLLABLE HIEUH AE IEUNG +0xC3D5 0xD588 #HANGUL SYLLABLE HIEUH AE SSANGSIOS +0xC3D6 0xD5AC #HANGUL SYLLABLE HIEUH YAE +0xC3D7 0xD5E4 #HANGUL SYLLABLE HIEUH E +0xC3D8 0xD5E5 #HANGUL SYLLABLE HIEUH E KIYEOK +0xC3D9 0xD5E8 #HANGUL SYLLABLE HIEUH E NIEUN +0xC3DA 0xD5EC #HANGUL SYLLABLE HIEUH E RIEUL +0xC3DB 0xD5F4 #HANGUL SYLLABLE HIEUH E MIEUM +0xC3DC 0xD5F5 #HANGUL SYLLABLE HIEUH E PIEUP +0xC3DD 0xD5F7 #HANGUL SYLLABLE HIEUH E SIOS +0xC3DE 0xD5F9 #HANGUL SYLLABLE HIEUH E IEUNG +0xC3DF 0xD5F8 #HANGUL SYLLABLE HIEUH E SSANGSIOS +0xC3E0 0xD61C #HANGUL SYLLABLE HIEUH YE +0xC3E1 0xD620 #HANGUL SYLLABLE HIEUH YE NIEUN +0xC3E2 0xD624 #HANGUL SYLLABLE HIEUH YE RIEUL +0xC3E3 0xD62D #HANGUL SYLLABLE HIEUH YE PIEUP +0xC3E4 0xD68C #HANGUL SYLLABLE HIEUH OE +0xC3E5 0xD68D #HANGUL SYLLABLE HIEUH OE KIYEOK +0xC3E6 0xD690 #HANGUL SYLLABLE HIEUH OE NIEUN +0xC3E7 0xD694 #HANGUL SYLLABLE HIEUH OE RIEUL +0xC3E8 0xD69D #HANGUL SYLLABLE HIEUH OE PIEUP +0xC3E9 0xD69F #HANGUL SYLLABLE HIEUH OE SIOS +0xC3EA 0xD6A1 #HANGUL SYLLABLE HIEUH OE IEUNG +0xC3EB 0xD718 #HANGUL SYLLABLE HIEUH WI +0xC3EC 0xD719 #HANGUL SYLLABLE HIEUH WI KIYEOK +0xC3ED 0xD71C #HANGUL SYLLABLE HIEUH WI NIEUN +0xC3EE 0xD720 #HANGUL SYLLABLE HIEUH WI RIEUL +0xC3EF 0xD728 #HANGUL SYLLABLE HIEUH WI MIEUM +0xC3F0 0xD729 #HANGUL SYLLABLE HIEUH WI PIEUP +0xC3F1 0xD72B #HANGUL SYLLABLE HIEUH WI SIOS +0xC3F2 0xD72D #HANGUL SYLLABLE HIEUH WI IEUNG +0xC3F3 0xD76C #HANGUL SYLLABLE HIEUH YI +0xC3F4 0xD770 #HANGUL SYLLABLE HIEUH YI NIEUN +0xC3F5 0xD774 #HANGUL SYLLABLE HIEUH YI RIEUL +0xC3F6 0xD77C #HANGUL SYLLABLE HIEUH YI MIEUM +0xC3F7 0xD77D #HANGUL SYLLABLE HIEUH YI PIEUP +0xC3F8 0xD781 #HANGUL SYLLABLE HIEUH YI IEUNG +0xC3F9 0xD654 #HANGUL SYLLABLE HIEUH WA +0xC3FA 0xD655 #HANGUL SYLLABLE HIEUH WA KIYEOK +0xC3FB 0xD658 #HANGUL SYLLABLE HIEUH WA NIEUN +0xC3FC 0xD65C #HANGUL SYLLABLE HIEUH WA RIEUL +0xC3FD 0xD664 #HANGUL SYLLABLE HIEUH WA MIEUM +0xC3FE 0xD665 #HANGUL SYLLABLE HIEUH WA PIEUP +0xC4A1 0xD667 #HANGUL SYLLABLE HIEUH WA SIOS +0xC4A2 0xD669 #HANGUL SYLLABLE HIEUH WA IEUNG +0xC4A3 0xD6E0 #HANGUL SYLLABLE HIEUH WEO +0xC4A4 0xD6E1 #HANGUL SYLLABLE HIEUH WEO KIYEOK +0xC4A5 0xD6E4 #HANGUL SYLLABLE HIEUH WEO NIEUN +0xC4A6 0xD6E8 #HANGUL SYLLABLE HIEUH WEO RIEUL +0xC4A7 0xD6F0 #HANGUL SYLLABLE HIEUH WEO MIEUM +0xC4A8 0xD6F5 #HANGUL SYLLABLE HIEUH WEO IEUNG +0xC4A9 0xD670 #HANGUL SYLLABLE HIEUH WAE +0xC4AA 0xD671 #HANGUL SYLLABLE HIEUH WAE KIYEOK +0xC4AB 0xD674 #HANGUL SYLLABLE HIEUH WAE NIEUN +0xC4AC 0xD683 #HANGUL SYLLABLE HIEUH WAE SIOS +0xC4AD 0xD685 #HANGUL SYLLABLE HIEUH WAE IEUNG +0xC4AE 0xD684 #HANGUL SYLLABLE HIEUH WAE SSANGSIOS +0xC4AF 0xD6FC #HANGUL SYLLABLE HIEUH WE +0xC4B0 0xD6FD #HANGUL SYLLABLE HIEUH WE KIYEOK +0xC4B1 0xD700 #HANGUL SYLLABLE HIEUH WE NIEUN +0xC4B2 0xD704 #HANGUL SYLLABLE HIEUH WE RIEUL +0xC4B3 0xD711 #HANGUL SYLLABLE HIEUH WE IEUNG +0xC4B4 0xAE4C #HANGUL SYLLABLE SSANGKIYEOK A +0xC4B5 0xAE4D #HANGUL SYLLABLE SSANGKIYEOK A KIYEOK +0xC4B6 0xAE50 #HANGUL SYLLABLE SSANGKIYEOK A NIEUN +0xC4B7 0xAE53 #HANGUL SYLLABLE SSANGKIYEOK A TIKEUT +0xC4B8 0xAE54 #HANGUL SYLLABLE SSANGKIYEOK A RIEUL +0xC4B9 0xAE56 #HANGUL SYLLABLE SSANGKIYEOK A RIEULMIEUM +0xC4BA 0xAE5C #HANGUL SYLLABLE SSANGKIYEOK A MIEUM +0xC4BB 0xAE5D #HANGUL SYLLABLE SSANGKIYEOK A PIEUP +0xC4BC 0xAE5F #HANGUL SYLLABLE SSANGKIYEOK A SIOS +0xC4BD 0xAE61 #HANGUL SYLLABLE SSANGKIYEOK A IEUNG +0xC4BE 0xAE65 #HANGUL SYLLABLE SSANGKIYEOK A THIEUTH +0xC4BF 0xAE4E #HANGUL SYLLABLE SSANGKIYEOK A SSANGKIYEOK +0xC4C0 0xAE60 #HANGUL SYLLABLE SSANGKIYEOK A SSANGSIOS +0xC4C1 0xAE84 #HANGUL SYLLABLE SSANGKIYEOK YA +0xC4C2 0xAE85 #HANGUL SYLLABLE SSANGKIYEOK YA KIYEOK +0xC4C3 0xAE88 #HANGUL SYLLABLE SSANGKIYEOK YA NIEUN +0xC4C4 0xAE8C #HANGUL SYLLABLE SSANGKIYEOK YA RIEUL +0xC4C5 0xAEBC #HANGUL SYLLABLE SSANGKIYEOK EO +0xC4C6 0xAEBD #HANGUL SYLLABLE SSANGKIYEOK EO KIYEOK +0xC4C7 0xAEC0 #HANGUL SYLLABLE SSANGKIYEOK EO NIEUN +0xC4C8 0xAEC4 #HANGUL SYLLABLE SSANGKIYEOK EO RIEUL +0xC4C9 0xAECC #HANGUL SYLLABLE SSANGKIYEOK EO MIEUM +0xC4CA 0xAECD #HANGUL SYLLABLE SSANGKIYEOK EO PIEUP +0xC4CB 0xAECF #HANGUL SYLLABLE SSANGKIYEOK EO SIOS +0xC4CC 0xAED1 #HANGUL SYLLABLE SSANGKIYEOK EO IEUNG +0xC4CD 0xAEBE #HANGUL SYLLABLE SSANGKIYEOK EO SSANGKIYEOK +0xC4CE 0xAED0 #HANGUL SYLLABLE SSANGKIYEOK EO SSANGSIOS +0xC4CF 0xAEF4 #HANGUL SYLLABLE SSANGKIYEOK YEO +0xC4D0 0xAEF8 #HANGUL SYLLABLE SSANGKIYEOK YEO NIEUN +0xC4D1 0xAEFC #HANGUL SYLLABLE SSANGKIYEOK YEO RIEUL +0xC4D2 0xAF07 #HANGUL SYLLABLE SSANGKIYEOK YEO SIOS +0xC4D3 0xAF0D #HANGUL SYLLABLE SSANGKIYEOK YEO THIEUTH +0xC4D4 0xAF08 #HANGUL SYLLABLE SSANGKIYEOK YEO SSANGSIOS +0xC4D5 0xAF2C #HANGUL SYLLABLE SSANGKIYEOK O +0xC4D6 0xAF2D #HANGUL SYLLABLE SSANGKIYEOK O KIYEOK +0xC4D7 0xAF30 #HANGUL SYLLABLE SSANGKIYEOK O NIEUN +0xC4D8 0xAF31 #HANGUL SYLLABLE SSANGKIYEOK O NIEUNCIEUC +0xC4D9 0xAF32 #HANGUL SYLLABLE SSANGKIYEOK O NIEUNHIEUH +0xC4DA 0xAF34 #HANGUL SYLLABLE SSANGKIYEOK O RIEUL +0xC4DB 0xAF3C #HANGUL SYLLABLE SSANGKIYEOK O MIEUM +0xC4DC 0xAF3D #HANGUL SYLLABLE SSANGKIYEOK O PIEUP +0xC4DD 0xAF3F #HANGUL SYLLABLE SSANGKIYEOK O SIOS +0xC4DE 0xAF41 #HANGUL SYLLABLE SSANGKIYEOK O IEUNG +0xC4DF 0xAF42 #HANGUL SYLLABLE SSANGKIYEOK O CIEUC +0xC4E0 0xAF43 #HANGUL SYLLABLE SSANGKIYEOK O CHIEUCH +0xC4E1 0xAF9C #HANGUL SYLLABLE SSANGKIYEOK YO +0xC4E2 0xAFB8 #HANGUL SYLLABLE SSANGKIYEOK U +0xC4E3 0xAFB9 #HANGUL SYLLABLE SSANGKIYEOK U KIYEOK +0xC4E4 0xAFBC #HANGUL SYLLABLE SSANGKIYEOK U NIEUN +0xC4E5 0xAFBF #HANGUL SYLLABLE SSANGKIYEOK U TIKEUT +0xC4E6 0xAFC0 #HANGUL SYLLABLE SSANGKIYEOK U RIEUL +0xC4E7 0xAFC7 #HANGUL SYLLABLE SSANGKIYEOK U RIEULHIEUH +0xC4E8 0xAFC8 #HANGUL SYLLABLE SSANGKIYEOK U MIEUM +0xC4E9 0xAFC9 #HANGUL SYLLABLE SSANGKIYEOK U PIEUP +0xC4EA 0xAFCB #HANGUL SYLLABLE SSANGKIYEOK U SIOS +0xC4EB 0xAFCD #HANGUL SYLLABLE SSANGKIYEOK U IEUNG +0xC4EC 0xAFCE #HANGUL SYLLABLE SSANGKIYEOK U CIEUC +0xC4ED 0xB028 #HANGUL SYLLABLE SSANGKIYEOK YU +0xC4EE 0xB044 #HANGUL SYLLABLE SSANGKIYEOK EU +0xC4EF 0xB045 #HANGUL SYLLABLE SSANGKIYEOK EU KIYEOK +0xC4F0 0xB048 #HANGUL SYLLABLE SSANGKIYEOK EU NIEUN +0xC4F1 0xB04A #HANGUL SYLLABLE SSANGKIYEOK EU NIEUNHIEUH +0xC4F2 0xB04C #HANGUL SYLLABLE SSANGKIYEOK EU RIEUL +0xC4F3 0xB04E #HANGUL SYLLABLE SSANGKIYEOK EU RIEULMIEUM +0xC4F4 0xB053 #HANGUL SYLLABLE SSANGKIYEOK EU RIEULHIEUH +0xC4F5 0xB054 #HANGUL SYLLABLE SSANGKIYEOK EU MIEUM +0xC4F6 0xB055 #HANGUL SYLLABLE SSANGKIYEOK EU PIEUP +0xC4F7 0xB057 #HANGUL SYLLABLE SSANGKIYEOK EU SIOS +0xC4F8 0xB059 #HANGUL SYLLABLE SSANGKIYEOK EU IEUNG +0xC4F9 0xB05D #HANGUL SYLLABLE SSANGKIYEOK EU THIEUTH +0xC4FA 0xB07C #HANGUL SYLLABLE SSANGKIYEOK I +0xC4FB 0xB07D #HANGUL SYLLABLE SSANGKIYEOK I KIYEOK +0xC4FC 0xB080 #HANGUL SYLLABLE SSANGKIYEOK I NIEUN +0xC4FD 0xB084 #HANGUL SYLLABLE SSANGKIYEOK I RIEUL +0xC4FE 0xB08C #HANGUL SYLLABLE SSANGKIYEOK I MIEUM +0xC5A1 0xB08D #HANGUL SYLLABLE SSANGKIYEOK I PIEUP +0xC5A2 0xB08F #HANGUL SYLLABLE SSANGKIYEOK I SIOS +0xC5A3 0xB091 #HANGUL SYLLABLE SSANGKIYEOK I IEUNG +0xC5A4 0xAE68 #HANGUL SYLLABLE SSANGKIYEOK AE +0xC5A5 0xAE69 #HANGUL SYLLABLE SSANGKIYEOK AE KIYEOK +0xC5A6 0xAE6C #HANGUL SYLLABLE SSANGKIYEOK AE NIEUN +0xC5A7 0xAE70 #HANGUL SYLLABLE SSANGKIYEOK AE RIEUL +0xC5A8 0xAE78 #HANGUL SYLLABLE SSANGKIYEOK AE MIEUM +0xC5A9 0xAE79 #HANGUL SYLLABLE SSANGKIYEOK AE PIEUP +0xC5AA 0xAE7B #HANGUL SYLLABLE SSANGKIYEOK AE SIOS +0xC5AB 0xAE7D #HANGUL SYLLABLE SSANGKIYEOK AE IEUNG +0xC5AC 0xAE7C #HANGUL SYLLABLE SSANGKIYEOK AE SSANGSIOS +0xC5AD 0xAEA0 #HANGUL SYLLABLE SSANGKIYEOK YAE +0xC5AE 0xAED8 #HANGUL SYLLABLE SSANGKIYEOK E +0xC5AF 0xAED9 #HANGUL SYLLABLE SSANGKIYEOK E KIYEOK +0xC5B0 0xAEDC #HANGUL SYLLABLE SSANGKIYEOK E NIEUN +0xC5B1 0xAEE0 #HANGUL SYLLABLE SSANGKIYEOK E RIEUL +0xC5B2 0xAEE8 #HANGUL SYLLABLE SSANGKIYEOK E MIEUM +0xC5B3 0xAEE9 #HANGUL SYLLABLE SSANGKIYEOK E PIEUP +0xC5B4 0xAEEB #HANGUL SYLLABLE SSANGKIYEOK E SIOS +0xC5B5 0xAEED #HANGUL SYLLABLE SSANGKIYEOK E IEUNG +0xC5B6 0xAEEC #HANGUL SYLLABLE SSANGKIYEOK E SSANGSIOS +0xC5B7 0xAF10 #HANGUL SYLLABLE SSANGKIYEOK YE +0xC5B8 0xAF80 #HANGUL SYLLABLE SSANGKIYEOK OE +0xC5B9 0xAF81 #HANGUL SYLLABLE SSANGKIYEOK OE KIYEOK +0xC5BA 0xAF84 #HANGUL SYLLABLE SSANGKIYEOK OE NIEUN +0xC5BB 0xAF88 #HANGUL SYLLABLE SSANGKIYEOK OE RIEUL +0xC5BC 0xAF90 #HANGUL SYLLABLE SSANGKIYEOK OE MIEUM +0xC5BD 0xAF91 #HANGUL SYLLABLE SSANGKIYEOK OE PIEUP +0xC5BE 0xAF95 #HANGUL SYLLABLE SSANGKIYEOK OE IEUNG +0xC5BF 0xB00C #HANGUL SYLLABLE SSANGKIYEOK WI +0xC5C0 0xB010 #HANGUL SYLLABLE SSANGKIYEOK WI NIEUN +0xC5C1 0xB014 #HANGUL SYLLABLE SSANGKIYEOK WI RIEUL +0xC5C2 0xB01C #HANGUL SYLLABLE SSANGKIYEOK WI MIEUM +0xC5C3 0xB01D #HANGUL SYLLABLE SSANGKIYEOK WI PIEUP +0xC5C4 0xB021 #HANGUL SYLLABLE SSANGKIYEOK WI IEUNG +0xC5C5 0xAF48 #HANGUL SYLLABLE SSANGKIYEOK WA +0xC5C6 0xAF49 #HANGUL SYLLABLE SSANGKIYEOK WA KIYEOK +0xC5C7 0xAF4C #HANGUL SYLLABLE SSANGKIYEOK WA NIEUN +0xC5C8 0xAF50 #HANGUL SYLLABLE SSANGKIYEOK WA RIEUL +0xC5C9 0xAF5B #HANGUL SYLLABLE SSANGKIYEOK WA SIOS +0xC5CA 0xAF5D #HANGUL SYLLABLE SSANGKIYEOK WA IEUNG +0xC5CB 0xAF5C #HANGUL SYLLABLE SSANGKIYEOK WA SSANGSIOS +0xC5CC 0xAFD4 #HANGUL SYLLABLE SSANGKIYEOK WEO +0xC5CD 0xAFD8 #HANGUL SYLLABLE SSANGKIYEOK WEO NIEUN +0xC5CE 0xAFDC #HANGUL SYLLABLE SSANGKIYEOK WEO RIEUL +0xC5CF 0xAFE5 #HANGUL SYLLABLE SSANGKIYEOK WEO PIEUP +0xC5D0 0xAFE7 #HANGUL SYLLABLE SSANGKIYEOK WEO SIOS +0xC5D1 0xAFE9 #HANGUL SYLLABLE SSANGKIYEOK WEO IEUNG +0xC5D2 0xAFE8 #HANGUL SYLLABLE SSANGKIYEOK WEO SSANGSIOS +0xC5D3 0xAF64 #HANGUL SYLLABLE SSANGKIYEOK WAE +0xC5D4 0xAF65 #HANGUL SYLLABLE SSANGKIYEOK WAE KIYEOK +0xC5D5 0xAF68 #HANGUL SYLLABLE SSANGKIYEOK WAE NIEUN +0xC5D6 0xAF6C #HANGUL SYLLABLE SSANGKIYEOK WAE RIEUL +0xC5D7 0xAF79 #HANGUL SYLLABLE SSANGKIYEOK WAE IEUNG +0xC5D8 0xAFF0 #HANGUL SYLLABLE SSANGKIYEOK WE +0xC5D9 0xAFF1 #HANGUL SYLLABLE SSANGKIYEOK WE KIYEOK +0xC5DA 0xAFF4 #HANGUL SYLLABLE SSANGKIYEOK WE NIEUN +0xC5DB 0xAFF8 #HANGUL SYLLABLE SSANGKIYEOK WE RIEUL +0xC5DC 0xB000 #HANGUL SYLLABLE SSANGKIYEOK WE MIEUM +0xC5DD 0xB001 #HANGUL SYLLABLE SSANGKIYEOK WE PIEUP +0xC5DE 0xB005 #HANGUL SYLLABLE SSANGKIYEOK WE IEUNG +0xC5DF 0xB004 #HANGUL SYLLABLE SSANGKIYEOK WE SSANGSIOS +0xC5E0 0xB530 #HANGUL SYLLABLE SSANGTIKEUT A +0xC5E1 0xB531 #HANGUL SYLLABLE SSANGTIKEUT A KIYEOK +0xC5E2 0xB534 #HANGUL SYLLABLE SSANGTIKEUT A NIEUN +0xC5E3 0xB538 #HANGUL SYLLABLE SSANGTIKEUT A RIEUL +0xC5E4 0xB53F #HANGUL SYLLABLE SSANGTIKEUT A RIEULHIEUH +0xC5E5 0xB540 #HANGUL SYLLABLE SSANGTIKEUT A MIEUM +0xC5E6 0xB541 #HANGUL SYLLABLE SSANGTIKEUT A PIEUP +0xC5E7 0xB543 #HANGUL SYLLABLE SSANGTIKEUT A SIOS +0xC5E8 0xB545 #HANGUL SYLLABLE SSANGTIKEUT A IEUNG +0xC5E9 0xB54B #HANGUL SYLLABLE SSANGTIKEUT A HIEUH +0xC5EA 0xB532 #HANGUL SYLLABLE SSANGTIKEUT A SSANGKIYEOK +0xC5EB 0xB544 #HANGUL SYLLABLE SSANGTIKEUT A SSANGSIOS +0xC5EC 0xB568 #HANGUL SYLLABLE SSANGTIKEUT YA +0xC5ED 0xB570 #HANGUL SYLLABLE SSANGTIKEUT YA RIEUL +0xC5EE 0xB5A0 #HANGUL SYLLABLE SSANGTIKEUT EO +0xC5EF 0xB5A1 #HANGUL SYLLABLE SSANGTIKEUT EO KIYEOK +0xC5F0 0xB5A4 #HANGUL SYLLABLE SSANGTIKEUT EO NIEUN +0xC5F1 0xB5A8 #HANGUL SYLLABLE SSANGTIKEUT EO RIEUL +0xC5F2 0xB5AA #HANGUL SYLLABLE SSANGTIKEUT EO RIEULMIEUM +0xC5F3 0xB5AB #HANGUL SYLLABLE SSANGTIKEUT EO RIEULPIEUP +0xC5F4 0xB5B0 #HANGUL SYLLABLE SSANGTIKEUT EO MIEUM +0xC5F5 0xB5B1 #HANGUL SYLLABLE SSANGTIKEUT EO PIEUP +0xC5F6 0xB5B3 #HANGUL SYLLABLE SSANGTIKEUT EO SIOS +0xC5F7 0xB5B5 #HANGUL SYLLABLE SSANGTIKEUT EO IEUNG +0xC5F8 0xB5BB #HANGUL SYLLABLE SSANGTIKEUT EO HIEUH +0xC5F9 0xB5B4 #HANGUL SYLLABLE SSANGTIKEUT EO SSANGSIOS +0xC5FA 0xB5D8 #HANGUL SYLLABLE SSANGTIKEUT YEO +0xC5FB 0xB5EC #HANGUL SYLLABLE SSANGTIKEUT YEO SSANGSIOS +0xC5FC 0xB610 #HANGUL SYLLABLE SSANGTIKEUT O +0xC5FD 0xB611 #HANGUL SYLLABLE SSANGTIKEUT O KIYEOK +0xC5FE 0xB614 #HANGUL SYLLABLE SSANGTIKEUT O NIEUN +0xC6A1 0xB618 #HANGUL SYLLABLE SSANGTIKEUT O RIEUL +0xC6A2 0xB620 #HANGUL SYLLABLE SSANGTIKEUT O MIEUM +0xC6A3 0xB621 #HANGUL SYLLABLE SSANGTIKEUT O PIEUP +0xC6A4 0xB623 #HANGUL SYLLABLE SSANGTIKEUT O SIOS +0xC6A5 0xB625 #HANGUL SYLLABLE SSANGTIKEUT O IEUNG +0xC6A6 0xB680 #HANGUL SYLLABLE SSANGTIKEUT YO +0xC6A7 0xB69C #HANGUL SYLLABLE SSANGTIKEUT U +0xC6A8 0xB69D #HANGUL SYLLABLE SSANGTIKEUT U KIYEOK +0xC6A9 0xB6A0 #HANGUL SYLLABLE SSANGTIKEUT U NIEUN +0xC6AA 0xB6A4 #HANGUL SYLLABLE SSANGTIKEUT U RIEUL +0xC6AB 0xB6AB #HANGUL SYLLABLE SSANGTIKEUT U RIEULHIEUH +0xC6AC 0xB6AC #HANGUL SYLLABLE SSANGTIKEUT U MIEUM +0xC6AD 0xB6AD #HANGUL SYLLABLE SSANGTIKEUT U PIEUP +0xC6AE 0xB6B1 #HANGUL SYLLABLE SSANGTIKEUT U IEUNG +0xC6AF 0xB70C #HANGUL SYLLABLE SSANGTIKEUT YU +0xC6B0 0xB728 #HANGUL SYLLABLE SSANGTIKEUT EU +0xC6B1 0xB729 #HANGUL SYLLABLE SSANGTIKEUT EU KIYEOK +0xC6B2 0xB72C #HANGUL SYLLABLE SSANGTIKEUT EU NIEUN +0xC6B3 0xB72F #HANGUL SYLLABLE SSANGTIKEUT EU TIKEUT +0xC6B4 0xB730 #HANGUL SYLLABLE SSANGTIKEUT EU RIEUL +0xC6B5 0xB738 #HANGUL SYLLABLE SSANGTIKEUT EU MIEUM +0xC6B6 0xB739 #HANGUL SYLLABLE SSANGTIKEUT EU PIEUP +0xC6B7 0xB73B #HANGUL SYLLABLE SSANGTIKEUT EU SIOS +0xC6B8 0xB73D #HANGUL SYLLABLE SSANGTIKEUT EU IEUNG +0xC6B9 0xB760 #HANGUL SYLLABLE SSANGTIKEUT I +0xC6BA 0xB761 #HANGUL SYLLABLE SSANGTIKEUT I KIYEOK +0xC6BB 0xB764 #HANGUL SYLLABLE SSANGTIKEUT I NIEUN +0xC6BC 0xB768 #HANGUL SYLLABLE SSANGTIKEUT I RIEUL +0xC6BD 0xB770 #HANGUL SYLLABLE SSANGTIKEUT I MIEUM +0xC6BE 0xB771 #HANGUL SYLLABLE SSANGTIKEUT I PIEUP +0xC6BF 0xB773 #HANGUL SYLLABLE SSANGTIKEUT I SIOS +0xC6C0 0xB775 #HANGUL SYLLABLE SSANGTIKEUT I IEUNG +0xC6C1 0xB54C #HANGUL SYLLABLE SSANGTIKEUT AE +0xC6C2 0xB54D #HANGUL SYLLABLE SSANGTIKEUT AE KIYEOK +0xC6C3 0xB550 #HANGUL SYLLABLE SSANGTIKEUT AE NIEUN +0xC6C4 0xB554 #HANGUL SYLLABLE SSANGTIKEUT AE RIEUL +0xC6C5 0xB55C #HANGUL SYLLABLE SSANGTIKEUT AE MIEUM +0xC6C6 0xB55D #HANGUL SYLLABLE SSANGTIKEUT AE PIEUP +0xC6C7 0xB55F #HANGUL SYLLABLE SSANGTIKEUT AE SIOS +0xC6C8 0xB561 #HANGUL SYLLABLE SSANGTIKEUT AE IEUNG +0xC6C9 0xB560 #HANGUL SYLLABLE SSANGTIKEUT AE SSANGSIOS +0xC6CA 0xB5BC #HANGUL SYLLABLE SSANGTIKEUT E +0xC6CB 0xB5BD #HANGUL SYLLABLE SSANGTIKEUT E KIYEOK +0xC6CC 0xB5C0 #HANGUL SYLLABLE SSANGTIKEUT E NIEUN +0xC6CD 0xB5C4 #HANGUL SYLLABLE SSANGTIKEUT E RIEUL +0xC6CE 0xB5CC #HANGUL SYLLABLE SSANGTIKEUT E MIEUM +0xC6CF 0xB5CD #HANGUL SYLLABLE SSANGTIKEUT E PIEUP +0xC6D0 0xB5CF #HANGUL SYLLABLE SSANGTIKEUT E SIOS +0xC6D1 0xB5D1 #HANGUL SYLLABLE SSANGTIKEUT E IEUNG +0xC6D2 0xB5D0 #HANGUL SYLLABLE SSANGTIKEUT E SSANGSIOS +0xC6D3 0xB664 #HANGUL SYLLABLE SSANGTIKEUT OE +0xC6D4 0xB668 #HANGUL SYLLABLE SSANGTIKEUT OE NIEUN +0xC6D5 0xB6F0 #HANGUL SYLLABLE SSANGTIKEUT WI +0xC6D6 0xB6F4 #HANGUL SYLLABLE SSANGTIKEUT WI NIEUN +0xC6D7 0xB6F8 #HANGUL SYLLABLE SSANGTIKEUT WI RIEUL +0xC6D8 0xB700 #HANGUL SYLLABLE SSANGTIKEUT WI MIEUM +0xC6D9 0xB701 #HANGUL SYLLABLE SSANGTIKEUT WI PIEUP +0xC6DA 0xB705 #HANGUL SYLLABLE SSANGTIKEUT WI IEUNG +0xC6DB 0xB744 #HANGUL SYLLABLE SSANGTIKEUT YI +0xC6DC 0xB745 #HANGUL SYLLABLE SSANGTIKEUT YI KIYEOK +0xC6DD 0xB748 #HANGUL SYLLABLE SSANGTIKEUT YI NIEUN +0xC6DE 0xB74C #HANGUL SYLLABLE SSANGTIKEUT YI RIEUL +0xC6DF 0xB754 #HANGUL SYLLABLE SSANGTIKEUT YI MIEUM +0xC6E0 0xB755 #HANGUL SYLLABLE SSANGTIKEUT YI PIEUP +0xC6E1 0xB759 #HANGUL SYLLABLE SSANGTIKEUT YI IEUNG +0xC6E2 0xB62C #HANGUL SYLLABLE SSANGTIKEUT WA +0xC6E3 0xB630 #HANGUL SYLLABLE SSANGTIKEUT WA NIEUN +0xC6E4 0xB634 #HANGUL SYLLABLE SSANGTIKEUT WA RIEUL +0xC6E5 0xB6B8 #HANGUL SYLLABLE SSANGTIKEUT WEO +0xC6E6 0xB6CC #HANGUL SYLLABLE SSANGTIKEUT WEO SSANGSIOS +0xC6E7 0xB648 #HANGUL SYLLABLE SSANGTIKEUT WAE +0xC6E8 0xB649 #HANGUL SYLLABLE SSANGTIKEUT WAE KIYEOK +0xC6E9 0xB6D4 #HANGUL SYLLABLE SSANGTIKEUT WE +0xC6EA 0xBE60 #HANGUL SYLLABLE SSANGPIEUP A +0xC6EB 0xBE61 #HANGUL SYLLABLE SSANGPIEUP A KIYEOK +0xC6EC 0xBE64 #HANGUL SYLLABLE SSANGPIEUP A NIEUN +0xC6ED 0xBE68 #HANGUL SYLLABLE SSANGPIEUP A RIEUL +0xC6EE 0xBE6A #HANGUL SYLLABLE SSANGPIEUP A RIEULMIEUM +0xC6EF 0xBE70 #HANGUL SYLLABLE SSANGPIEUP A MIEUM +0xC6F0 0xBE71 #HANGUL SYLLABLE SSANGPIEUP A PIEUP +0xC6F1 0xBE73 #HANGUL SYLLABLE SSANGPIEUP A SIOS +0xC6F2 0xBE75 #HANGUL SYLLABLE SSANGPIEUP A IEUNG +0xC6F3 0xBE7B #HANGUL SYLLABLE SSANGPIEUP A HIEUH +0xC6F4 0xBE74 #HANGUL SYLLABLE SSANGPIEUP A SSANGSIOS +0xC6F5 0xBE98 #HANGUL SYLLABLE SSANGPIEUP YA +0xC6F6 0xBE99 #HANGUL SYLLABLE SSANGPIEUP YA KIYEOK +0xC6F7 0xBE9C #HANGUL SYLLABLE SSANGPIEUP YA NIEUN +0xC6F8 0xBEA8 #HANGUL SYLLABLE SSANGPIEUP YA MIEUM +0xC6F9 0xBED0 #HANGUL SYLLABLE SSANGPIEUP EO +0xC6FA 0xBED1 #HANGUL SYLLABLE SSANGPIEUP EO KIYEOK +0xC6FB 0xBED4 #HANGUL SYLLABLE SSANGPIEUP EO NIEUN +0xC6FC 0xBED7 #HANGUL SYLLABLE SSANGPIEUP EO TIKEUT +0xC6FD 0xBED8 #HANGUL SYLLABLE SSANGPIEUP EO RIEUL +0xC6FE 0xBEE0 #HANGUL SYLLABLE SSANGPIEUP EO MIEUM +0xC7A1 0xBEE3 #HANGUL SYLLABLE SSANGPIEUP EO SIOS +0xC7A2 0xBEE5 #HANGUL SYLLABLE SSANGPIEUP EO IEUNG +0xC7A3 0xBEE4 #HANGUL SYLLABLE SSANGPIEUP EO SSANGSIOS +0xC7A4 0xBF08 #HANGUL SYLLABLE SSANGPIEUP YEO +0xC7A5 0xBF09 #HANGUL SYLLABLE SSANGPIEUP YEO KIYEOK +0xC7A6 0xBF18 #HANGUL SYLLABLE SSANGPIEUP YEO MIEUM +0xC7A7 0xBF19 #HANGUL SYLLABLE SSANGPIEUP YEO PIEUP +0xC7A8 0xBF1B #HANGUL SYLLABLE SSANGPIEUP YEO SIOS +0xC7A9 0xBF1D #HANGUL SYLLABLE SSANGPIEUP YEO IEUNG +0xC7AA 0xBF1C #HANGUL SYLLABLE SSANGPIEUP YEO SSANGSIOS +0xC7AB 0xBF40 #HANGUL SYLLABLE SSANGPIEUP O +0xC7AC 0xBF41 #HANGUL SYLLABLE SSANGPIEUP O KIYEOK +0xC7AD 0xBF44 #HANGUL SYLLABLE SSANGPIEUP O NIEUN +0xC7AE 0xBF48 #HANGUL SYLLABLE SSANGPIEUP O RIEUL +0xC7AF 0xBF50 #HANGUL SYLLABLE SSANGPIEUP O MIEUM +0xC7B0 0xBF51 #HANGUL SYLLABLE SSANGPIEUP O PIEUP +0xC7B1 0xBF53 #HANGUL SYLLABLE SSANGPIEUP O SIOS +0xC7B2 0xBF55 #HANGUL SYLLABLE SSANGPIEUP O IEUNG +0xC7B3 0xBFB0 #HANGUL SYLLABLE SSANGPIEUP YO +0xC7B4 0xBFC5 #HANGUL SYLLABLE SSANGPIEUP YO IEUNG +0xC7B5 0xBFCC #HANGUL SYLLABLE SSANGPIEUP U +0xC7B6 0xBFCD #HANGUL SYLLABLE SSANGPIEUP U KIYEOK +0xC7B7 0xBFD0 #HANGUL SYLLABLE SSANGPIEUP U NIEUN +0xC7B8 0xBFD4 #HANGUL SYLLABLE SSANGPIEUP U RIEUL +0xC7B9 0xBFDC #HANGUL SYLLABLE SSANGPIEUP U MIEUM +0xC7BA 0xBFDD #HANGUL SYLLABLE SSANGPIEUP U PIEUP +0xC7BB 0xBFDF #HANGUL SYLLABLE SSANGPIEUP U SIOS +0xC7BC 0xBFE1 #HANGUL SYLLABLE SSANGPIEUP U IEUNG +0xC7BD 0xC03C #HANGUL SYLLABLE SSANGPIEUP YU +0xC7BE 0xC051 #HANGUL SYLLABLE SSANGPIEUP YU IEUNG +0xC7BF 0xC058 #HANGUL SYLLABLE SSANGPIEUP EU +0xC7C0 0xC05C #HANGUL SYLLABLE SSANGPIEUP EU NIEUN +0xC7C1 0xC060 #HANGUL SYLLABLE SSANGPIEUP EU RIEUL +0xC7C2 0xC068 #HANGUL SYLLABLE SSANGPIEUP EU MIEUM +0xC7C3 0xC069 #HANGUL SYLLABLE SSANGPIEUP EU PIEUP +0xC7C4 0xC090 #HANGUL SYLLABLE SSANGPIEUP I +0xC7C5 0xC091 #HANGUL SYLLABLE SSANGPIEUP I KIYEOK +0xC7C6 0xC094 #HANGUL SYLLABLE SSANGPIEUP I NIEUN +0xC7C7 0xC098 #HANGUL SYLLABLE SSANGPIEUP I RIEUL +0xC7C8 0xC0A0 #HANGUL SYLLABLE SSANGPIEUP I MIEUM +0xC7C9 0xC0A1 #HANGUL SYLLABLE SSANGPIEUP I PIEUP +0xC7CA 0xC0A3 #HANGUL SYLLABLE SSANGPIEUP I SIOS +0xC7CB 0xC0A5 #HANGUL SYLLABLE SSANGPIEUP I IEUNG +0xC7CC 0xBE7C #HANGUL SYLLABLE SSANGPIEUP AE +0xC7CD 0xBE7D #HANGUL SYLLABLE SSANGPIEUP AE KIYEOK +0xC7CE 0xBE80 #HANGUL SYLLABLE SSANGPIEUP AE NIEUN +0xC7CF 0xBE84 #HANGUL SYLLABLE SSANGPIEUP AE RIEUL +0xC7D0 0xBE8C #HANGUL SYLLABLE SSANGPIEUP AE MIEUM +0xC7D1 0xBE8D #HANGUL SYLLABLE SSANGPIEUP AE PIEUP +0xC7D2 0xBE8F #HANGUL SYLLABLE SSANGPIEUP AE SIOS +0xC7D3 0xBE91 #HANGUL SYLLABLE SSANGPIEUP AE IEUNG +0xC7D4 0xBE90 #HANGUL SYLLABLE SSANGPIEUP AE SSANGSIOS +0xC7D5 0xBEB4 #HANGUL SYLLABLE SSANGPIEUP YAE +0xC7D6 0xBEEC #HANGUL SYLLABLE SSANGPIEUP E +0xC7D7 0xBEED #HANGUL SYLLABLE SSANGPIEUP E KIYEOK +0xC7D8 0xBEF0 #HANGUL SYLLABLE SSANGPIEUP E NIEUN +0xC7D9 0xBEF4 #HANGUL SYLLABLE SSANGPIEUP E RIEUL +0xC7DA 0xBEFC #HANGUL SYLLABLE SSANGPIEUP E MIEUM +0xC7DB 0xBF01 #HANGUL SYLLABLE SSANGPIEUP E IEUNG +0xC7DC 0xBF94 #HANGUL SYLLABLE SSANGPIEUP OE +0xC7DD 0xC020 #HANGUL SYLLABLE SSANGPIEUP WI +0xC7DE 0xC074 #HANGUL SYLLABLE SSANGPIEUP YI +0xC7DF 0xBF5C #HANGUL SYLLABLE SSANGPIEUP WA +0xC7E0 0xBFE8 #HANGUL SYLLABLE SSANGPIEUP WEO +0xC7E1 0xC2F8 #HANGUL SYLLABLE SSANGSIOS A +0xC7E2 0xC2F9 #HANGUL SYLLABLE SSANGSIOS A KIYEOK +0xC7E3 0xC2FB #HANGUL SYLLABLE SSANGSIOS A KIYEOKSIOS +0xC7E4 0xC2FC #HANGUL SYLLABLE SSANGSIOS A NIEUN +0xC7E5 0xC300 #HANGUL SYLLABLE SSANGSIOS A RIEUL +0xC7E6 0xC308 #HANGUL SYLLABLE SSANGSIOS A MIEUM +0xC7E7 0xC309 #HANGUL SYLLABLE SSANGSIOS A PIEUP +0xC7E8 0xC30B #HANGUL SYLLABLE SSANGSIOS A SIOS +0xC7E9 0xC30D #HANGUL SYLLABLE SSANGSIOS A IEUNG +0xC7EA 0xC313 #HANGUL SYLLABLE SSANGSIOS A HIEUH +0xC7EB 0xC30C #HANGUL SYLLABLE SSANGSIOS A SSANGSIOS +0xC7EC 0xC330 #HANGUL SYLLABLE SSANGSIOS YA +0xC7ED 0xC334 #HANGUL SYLLABLE SSANGSIOS YA NIEUN +0xC7EE 0xC338 #HANGUL SYLLABLE SSANGSIOS YA RIEUL +0xC7EF 0xC345 #HANGUL SYLLABLE SSANGSIOS YA IEUNG +0xC7F0 0xC368 #HANGUL SYLLABLE SSANGSIOS EO +0xC7F1 0xC369 #HANGUL SYLLABLE SSANGSIOS EO KIYEOK +0xC7F2 0xC36C #HANGUL SYLLABLE SSANGSIOS EO NIEUN +0xC7F3 0xC370 #HANGUL SYLLABLE SSANGSIOS EO RIEUL +0xC7F4 0xC372 #HANGUL SYLLABLE SSANGSIOS EO RIEULMIEUM +0xC7F5 0xC378 #HANGUL SYLLABLE SSANGSIOS EO MIEUM +0xC7F6 0xC379 #HANGUL SYLLABLE SSANGSIOS EO PIEUP +0xC7F7 0xC37B #HANGUL SYLLABLE SSANGSIOS EO SIOS +0xC7F8 0xC37D #HANGUL SYLLABLE SSANGSIOS EO IEUNG +0xC7F9 0xC36A #HANGUL SYLLABLE SSANGSIOS EO SSANGKIYEOK +0xC7FA 0xC37C #HANGUL SYLLABLE SSANGSIOS EO SSANGSIOS +0xC7FB 0xC3A0 #HANGUL SYLLABLE SSANGSIOS YEO +0xC7FC 0xC3D8 #HANGUL SYLLABLE SSANGSIOS O +0xC7FD 0xC3D9 #HANGUL SYLLABLE SSANGSIOS O KIYEOK +0xC7FE 0xC3DC #HANGUL SYLLABLE SSANGSIOS O NIEUN +0xC8A1 0xC3DF #HANGUL SYLLABLE SSANGSIOS O TIKEUT +0xC8A2 0xC3E0 #HANGUL SYLLABLE SSANGSIOS O RIEUL +0xC8A3 0xC3E2 #HANGUL SYLLABLE SSANGSIOS O RIEULMIEUM +0xC8A4 0xC3E8 #HANGUL SYLLABLE SSANGSIOS O MIEUM +0xC8A5 0xC3E9 #HANGUL SYLLABLE SSANGSIOS O PIEUP +0xC8A6 0xC3EB #HANGUL SYLLABLE SSANGSIOS O SIOS +0xC8A7 0xC3ED #HANGUL SYLLABLE SSANGSIOS O IEUNG +0xC8A8 0xC448 #HANGUL SYLLABLE SSANGSIOS YO +0xC8A9 0xC44C #HANGUL SYLLABLE SSANGSIOS YO NIEUN +0xC8AA 0xC450 #HANGUL SYLLABLE SSANGSIOS YO RIEUL +0xC8AB 0xC458 #HANGUL SYLLABLE SSANGSIOS YO MIEUM +0xC8AC 0xC45D #HANGUL SYLLABLE SSANGSIOS YO IEUNG +0xC8AD 0xC464 #HANGUL SYLLABLE SSANGSIOS U +0xC8AE 0xC465 #HANGUL SYLLABLE SSANGSIOS U KIYEOK +0xC8AF 0xC468 #HANGUL SYLLABLE SSANGSIOS U NIEUN +0xC8B0 0xC46C #HANGUL SYLLABLE SSANGSIOS U RIEUL +0xC8B1 0xC474 #HANGUL SYLLABLE SSANGSIOS U MIEUM +0xC8B2 0xC475 #HANGUL SYLLABLE SSANGSIOS U PIEUP +0xC8B3 0xC479 #HANGUL SYLLABLE SSANGSIOS U IEUNG +0xC8B4 0xC4D4 #HANGUL SYLLABLE SSANGSIOS YU +0xC8B5 0xC4D8 #HANGUL SYLLABLE SSANGSIOS YU NIEUN +0xC8B6 0xC4E7 #HANGUL SYLLABLE SSANGSIOS YU SIOS +0xC8B7 0xC4E9 #HANGUL SYLLABLE SSANGSIOS YU IEUNG +0xC8B8 0xC4F0 #HANGUL SYLLABLE SSANGSIOS EU +0xC8B9 0xC4F1 #HANGUL SYLLABLE SSANGSIOS EU KIYEOK +0xC8BA 0xC4F4 #HANGUL SYLLABLE SSANGSIOS EU NIEUN +0xC8BB 0xC4F8 #HANGUL SYLLABLE SSANGSIOS EU RIEUL +0xC8BC 0xC4FA #HANGUL SYLLABLE SSANGSIOS EU RIEULMIEUM +0xC8BD 0xC4FF #HANGUL SYLLABLE SSANGSIOS EU RIEULHIEUH +0xC8BE 0xC500 #HANGUL SYLLABLE SSANGSIOS EU MIEUM +0xC8BF 0xC501 #HANGUL SYLLABLE SSANGSIOS EU PIEUP +0xC8C0 0xC505 #HANGUL SYLLABLE SSANGSIOS EU IEUNG +0xC8C1 0xC528 #HANGUL SYLLABLE SSANGSIOS I +0xC8C2 0xC529 #HANGUL SYLLABLE SSANGSIOS I KIYEOK +0xC8C3 0xC52C #HANGUL SYLLABLE SSANGSIOS I NIEUN +0xC8C4 0xC52F #HANGUL SYLLABLE SSANGSIOS I TIKEUT +0xC8C5 0xC530 #HANGUL SYLLABLE SSANGSIOS I RIEUL +0xC8C6 0xC538 #HANGUL SYLLABLE SSANGSIOS I MIEUM +0xC8C7 0xC539 #HANGUL SYLLABLE SSANGSIOS I PIEUP +0xC8C8 0xC53B #HANGUL SYLLABLE SSANGSIOS I SIOS +0xC8C9 0xC53D #HANGUL SYLLABLE SSANGSIOS I IEUNG +0xC8CA 0xC53C #HANGUL SYLLABLE SSANGSIOS I SSANGSIOS +0xC8CB 0xC314 #HANGUL SYLLABLE SSANGSIOS AE +0xC8CC 0xC315 #HANGUL SYLLABLE SSANGSIOS AE KIYEOK +0xC8CD 0xC318 #HANGUL SYLLABLE SSANGSIOS AE NIEUN +0xC8CE 0xC31C #HANGUL SYLLABLE SSANGSIOS AE RIEUL +0xC8CF 0xC324 #HANGUL SYLLABLE SSANGSIOS AE MIEUM +0xC8D0 0xC325 #HANGUL SYLLABLE SSANGSIOS AE PIEUP +0xC8D1 0xC327 #HANGUL SYLLABLE SSANGSIOS AE SIOS +0xC8D2 0xC329 #HANGUL SYLLABLE SSANGSIOS AE IEUNG +0xC8D3 0xC328 #HANGUL SYLLABLE SSANGSIOS AE SSANGSIOS +0xC8D4 0xC34C #HANGUL SYLLABLE SSANGSIOS YAE +0xC8D5 0xC384 #HANGUL SYLLABLE SSANGSIOS E +0xC8D6 0xC385 #HANGUL SYLLABLE SSANGSIOS E KIYEOK +0xC8D7 0xC388 #HANGUL SYLLABLE SSANGSIOS E NIEUN +0xC8D8 0xC38C #HANGUL SYLLABLE SSANGSIOS E RIEUL +0xC8D9 0xC394 #HANGUL SYLLABLE SSANGSIOS E MIEUM +0xC8DA 0xC395 #HANGUL SYLLABLE SSANGSIOS E PIEUP +0xC8DB 0xC399 #HANGUL SYLLABLE SSANGSIOS E IEUNG +0xC8DC 0xC3BC #HANGUL SYLLABLE SSANGSIOS YE +0xC8DD 0xC3C0 #HANGUL SYLLABLE SSANGSIOS YE NIEUN +0xC8DE 0xC42C #HANGUL SYLLABLE SSANGSIOS OE +0xC8DF 0xC42D #HANGUL SYLLABLE SSANGSIOS OE KIYEOK +0xC8E0 0xC430 #HANGUL SYLLABLE SSANGSIOS OE NIEUN +0xC8E1 0xC434 #HANGUL SYLLABLE SSANGSIOS OE RIEUL +0xC8E2 0xC43C #HANGUL SYLLABLE SSANGSIOS OE MIEUM +0xC8E3 0xC43D #HANGUL SYLLABLE SSANGSIOS OE PIEUP +0xC8E4 0xC440 #HANGUL SYLLABLE SSANGSIOS OE SSANGSIOS +0xC8E5 0xC4B8 #HANGUL SYLLABLE SSANGSIOS WI +0xC8E6 0xC4BC #HANGUL SYLLABLE SSANGSIOS WI NIEUN +0xC8E7 0xC50C #HANGUL SYLLABLE SSANGSIOS YI +0xC8E8 0xC510 #HANGUL SYLLABLE SSANGSIOS YI NIEUN +0xC8E9 0xC514 #HANGUL SYLLABLE SSANGSIOS YI RIEUL +0xC8EA 0xC51C #HANGUL SYLLABLE SSANGSIOS YI MIEUM +0xC8EB 0xC3F4 #HANGUL SYLLABLE SSANGSIOS WA +0xC8EC 0xC3F5 #HANGUL SYLLABLE SSANGSIOS WA KIYEOK +0xC8ED 0xC3F8 #HANGUL SYLLABLE SSANGSIOS WA NIEUN +0xC8EE 0xC3FC #HANGUL SYLLABLE SSANGSIOS WA RIEUL +0xC8EF 0xC407 #HANGUL SYLLABLE SSANGSIOS WA SIOS +0xC8F0 0xC409 #HANGUL SYLLABLE SSANGSIOS WA IEUNG +0xC8F1 0xC408 #HANGUL SYLLABLE SSANGSIOS WA SSANGSIOS +0xC8F2 0xC480 #HANGUL SYLLABLE SSANGSIOS WEO +0xC8F3 0xC494 #HANGUL SYLLABLE SSANGSIOS WEO SSANGSIOS +0xC8F4 0xC410 #HANGUL SYLLABLE SSANGSIOS WAE +0xC8F5 0xC411 #HANGUL SYLLABLE SSANGSIOS WAE KIYEOK +0xC8F6 0xC424 #HANGUL SYLLABLE SSANGSIOS WAE SSANGSIOS +0xC8F7 0xC49C #HANGUL SYLLABLE SSANGSIOS WE +0xC8F8 0xC4A0 #HANGUL SYLLABLE SSANGSIOS WE NIEUN +0xC8F9 0xC4AD #HANGUL SYLLABLE SSANGSIOS WE PIEUP +0xC8FA 0xC9DC #HANGUL SYLLABLE SSANGCIEUC A +0xC8FB 0xC9DD #HANGUL SYLLABLE SSANGCIEUC A KIYEOK +0xC8FC 0xC9E0 #HANGUL SYLLABLE SSANGCIEUC A NIEUN +0xC8FD 0xC9E2 #HANGUL SYLLABLE SSANGCIEUC A NIEUNHIEUH +0xC8FE 0xC9E4 #HANGUL SYLLABLE SSANGCIEUC A RIEUL +0xC9A1 0xC9E7 #HANGUL SYLLABLE SSANGCIEUC A RIEULPIEUP +0xC9A2 0xC9EC #HANGUL SYLLABLE SSANGCIEUC A MIEUM +0xC9A3 0xC9ED #HANGUL SYLLABLE SSANGCIEUC A PIEUP +0xC9A4 0xC9EF #HANGUL SYLLABLE SSANGCIEUC A SIOS +0xC9A5 0xC9F1 #HANGUL SYLLABLE SSANGCIEUC A IEUNG +0xC9A6 0xC9F0 #HANGUL SYLLABLE SSANGCIEUC A SSANGSIOS +0xC9A7 0xCA14 #HANGUL SYLLABLE SSANGCIEUC YA +0xC9A8 0xCA18 #HANGUL SYLLABLE SSANGCIEUC YA NIEUN +0xC9A9 0xCA24 #HANGUL SYLLABLE SSANGCIEUC YA MIEUM +0xC9AA 0xCA29 #HANGUL SYLLABLE SSANGCIEUC YA IEUNG +0xC9AB 0xCA4C #HANGUL SYLLABLE SSANGCIEUC EO +0xC9AC 0xCA4D #HANGUL SYLLABLE SSANGCIEUC EO KIYEOK +0xC9AD 0xCA50 #HANGUL SYLLABLE SSANGCIEUC EO NIEUN +0xC9AE 0xCA54 #HANGUL SYLLABLE SSANGCIEUC EO RIEUL +0xC9AF 0xCA57 #HANGUL SYLLABLE SSANGCIEUC EO RIEULPIEUP +0xC9B0 0xCA5C #HANGUL SYLLABLE SSANGCIEUC EO MIEUM +0xC9B1 0xCA5D #HANGUL SYLLABLE SSANGCIEUC EO PIEUP +0xC9B2 0xCA5F #HANGUL SYLLABLE SSANGCIEUC EO SIOS +0xC9B3 0xCA61 #HANGUL SYLLABLE SSANGCIEUC EO IEUNG +0xC9B4 0xCA60 #HANGUL SYLLABLE SSANGCIEUC EO SSANGSIOS +0xC9B5 0xCA84 #HANGUL SYLLABLE SSANGCIEUC YEO +0xC9B6 0xCA98 #HANGUL SYLLABLE SSANGCIEUC YEO SSANGSIOS +0xC9B7 0xCABC #HANGUL SYLLABLE SSANGCIEUC O +0xC9B8 0xCABD #HANGUL SYLLABLE SSANGCIEUC O KIYEOK +0xC9B9 0xCAC0 #HANGUL SYLLABLE SSANGCIEUC O NIEUN +0xC9BA 0xCAC4 #HANGUL SYLLABLE SSANGCIEUC O RIEUL +0xC9BB 0xCACC #HANGUL SYLLABLE SSANGCIEUC O MIEUM +0xC9BC 0xCACD #HANGUL SYLLABLE SSANGCIEUC O PIEUP +0xC9BD 0xCACF #HANGUL SYLLABLE SSANGCIEUC O SIOS +0xC9BE 0xCAD1 #HANGUL SYLLABLE SSANGCIEUC O IEUNG +0xC9BF 0xCAD2 #HANGUL SYLLABLE SSANGCIEUC O CIEUC +0xC9C0 0xCAD3 #HANGUL SYLLABLE SSANGCIEUC O CHIEUCH +0xC9C1 0xCAD7 #HANGUL SYLLABLE SSANGCIEUC O HIEUH +0xC9C2 0xCB2C #HANGUL SYLLABLE SSANGCIEUC YO +0xC9C3 0xCB30 #HANGUL SYLLABLE SSANGCIEUC YO NIEUN +0xC9C4 0xCB3C #HANGUL SYLLABLE SSANGCIEUC YO MIEUM +0xC9C5 0xCB41 #HANGUL SYLLABLE SSANGCIEUC YO IEUNG +0xC9C6 0xCB48 #HANGUL SYLLABLE SSANGCIEUC U +0xC9C7 0xCB49 #HANGUL SYLLABLE SSANGCIEUC U KIYEOK +0xC9C8 0xCB4C #HANGUL SYLLABLE SSANGCIEUC U NIEUN +0xC9C9 0xCB50 #HANGUL SYLLABLE SSANGCIEUC U RIEUL +0xC9CA 0xCB58 #HANGUL SYLLABLE SSANGCIEUC U MIEUM +0xC9CB 0xCB59 #HANGUL SYLLABLE SSANGCIEUC U PIEUP +0xC9CC 0xCB5B #HANGUL SYLLABLE SSANGCIEUC U SIOS +0xC9CD 0xCB5D #HANGUL SYLLABLE SSANGCIEUC U IEUNG +0xC9CE 0xCBB8 #HANGUL SYLLABLE SSANGCIEUC YU +0xC9CF 0xCBC0 #HANGUL SYLLABLE SSANGCIEUC YU RIEUL +0xC9D0 0xCBD4 #HANGUL SYLLABLE SSANGCIEUC EU +0xC9D1 0xCBD5 #HANGUL SYLLABLE SSANGCIEUC EU KIYEOK +0xC9D2 0xCBD8 #HANGUL SYLLABLE SSANGCIEUC EU NIEUN +0xC9D3 0xCBDC #HANGUL SYLLABLE SSANGCIEUC EU RIEUL +0xC9D4 0xCBE4 #HANGUL SYLLABLE SSANGCIEUC EU MIEUM +0xC9D5 0xCBE7 #HANGUL SYLLABLE SSANGCIEUC EU SIOS +0xC9D6 0xCBE9 #HANGUL SYLLABLE SSANGCIEUC EU IEUNG +0xC9D7 0xCBEA #HANGUL SYLLABLE SSANGCIEUC EU CIEUC +0xC9D8 0xCC0C #HANGUL SYLLABLE SSANGCIEUC I +0xC9D9 0xCC0D #HANGUL SYLLABLE SSANGCIEUC I KIYEOK +0xC9DA 0xCC10 #HANGUL SYLLABLE SSANGCIEUC I NIEUN +0xC9DB 0xCC14 #HANGUL SYLLABLE SSANGCIEUC I RIEUL +0xC9DC 0xCC1C #HANGUL SYLLABLE SSANGCIEUC I MIEUM +0xC9DD 0xCC1D #HANGUL SYLLABLE SSANGCIEUC I PIEUP +0xC9DE 0xCC1F #HANGUL SYLLABLE SSANGCIEUC I SIOS +0xC9DF 0xCC21 #HANGUL SYLLABLE SSANGCIEUC I IEUNG +0xC9E0 0xCC22 #HANGUL SYLLABLE SSANGCIEUC I CIEUC +0xC9E1 0xCC26 #HANGUL SYLLABLE SSANGCIEUC I PHIEUPH +0xC9E2 0xCC27 #HANGUL SYLLABLE SSANGCIEUC I HIEUH +0xC9E3 0xC9F8 #HANGUL SYLLABLE SSANGCIEUC AE +0xC9E4 0xC9F9 #HANGUL SYLLABLE SSANGCIEUC AE KIYEOK +0xC9E5 0xC9FC #HANGUL SYLLABLE SSANGCIEUC AE NIEUN +0xC9E6 0xCA00 #HANGUL SYLLABLE SSANGCIEUC AE RIEUL +0xC9E7 0xCA08 #HANGUL SYLLABLE SSANGCIEUC AE MIEUM +0xC9E8 0xCA09 #HANGUL SYLLABLE SSANGCIEUC AE PIEUP +0xC9E9 0xCA0B #HANGUL SYLLABLE SSANGCIEUC AE SIOS +0xC9EA 0xCA0D #HANGUL SYLLABLE SSANGCIEUC AE IEUNG +0xC9EB 0xCA0C #HANGUL SYLLABLE SSANGCIEUC AE SSANGSIOS +0xC9EC 0xCA30 #HANGUL SYLLABLE SSANGCIEUC YAE +0xC9ED 0xCA34 #HANGUL SYLLABLE SSANGCIEUC YAE NIEUN +0xC9EE 0xCA68 #HANGUL SYLLABLE SSANGCIEUC E +0xC9EF 0xCA69 #HANGUL SYLLABLE SSANGCIEUC E KIYEOK +0xC9F0 0xCA6C #HANGUL SYLLABLE SSANGCIEUC E NIEUN +0xC9F1 0xCA70 #HANGUL SYLLABLE SSANGCIEUC E RIEUL +0xC9F2 0xCA78 #HANGUL SYLLABLE SSANGCIEUC E MIEUM +0xC9F3 0xCA79 #HANGUL SYLLABLE SSANGCIEUC E PIEUP +0xC9F4 0xCA7D #HANGUL SYLLABLE SSANGCIEUC E IEUNG +0xC9F5 0xCAA0 #HANGUL SYLLABLE SSANGCIEUC YE +0xC9F6 0xCB10 #HANGUL SYLLABLE SSANGCIEUC OE +0xC9F7 0xCB14 #HANGUL SYLLABLE SSANGCIEUC OE NIEUN +0xC9F8 0xCB18 #HANGUL SYLLABLE SSANGCIEUC OE RIEUL +0xC9F9 0xCB20 #HANGUL SYLLABLE SSANGCIEUC OE MIEUM +0xC9FA 0xCB21 #HANGUL SYLLABLE SSANGCIEUC OE PIEUP +0xC9FB 0xCB24 #HANGUL SYLLABLE SSANGCIEUC OE SSANGSIOS +0xC9FC 0xCB9C #HANGUL SYLLABLE SSANGCIEUC WI +0xC9FD 0xCBF0 #HANGUL SYLLABLE SSANGCIEUC YI +0xC9FE 0xCBF4 #HANGUL SYLLABLE SSANGCIEUC YI NIEUN +0xCAA1 0xCAD8 #HANGUL SYLLABLE SSANGCIEUC WA +0xCAA2 0xCAD9 #HANGUL SYLLABLE SSANGCIEUC WA KIYEOK +0xCAA3 0xCADC #HANGUL SYLLABLE SSANGCIEUC WA NIEUN +0xCAA4 0xCAE0 #HANGUL SYLLABLE SSANGCIEUC WA RIEUL +0xCAA5 0xCAED #HANGUL SYLLABLE SSANGCIEUC WA IEUNG +0xCAA6 0xCAEC #HANGUL SYLLABLE SSANGCIEUC WA SSANGSIOS +0xCAA7 0xCB64 #HANGUL SYLLABLE SSANGCIEUC WEO +0xCAA8 0xCB79 #HANGUL SYLLABLE SSANGCIEUC WEO IEUNG +0xCAA9 0xCB78 #HANGUL SYLLABLE SSANGCIEUC WEO SSANGSIOS +0xCAAA 0xCAF4 #HANGUL SYLLABLE SSANGCIEUC WAE +0xCAAB 0xCB08 #HANGUL SYLLABLE SSANGCIEUC WAE SSANGSIOS +0xCAAC 0xCB80 #HANGUL SYLLABLE SSANGCIEUC WE +0xCAAD 0xC544 #HANGUL SYLLABLE IEUNG A +0xCAAE 0xC545 #HANGUL SYLLABLE IEUNG A KIYEOK +0xCAAF 0xC548 #HANGUL SYLLABLE IEUNG A NIEUN +0xCAB0 0xC549 #HANGUL SYLLABLE IEUNG A NIEUNCIEUC +0xCAB1 0xC54A #HANGUL SYLLABLE IEUNG A NIEUNHIEUH +0xCAB2 0xC54C #HANGUL SYLLABLE IEUNG A RIEUL +0xCAB3 0xC54D #HANGUL SYLLABLE IEUNG A RIEULKIYEOK +0xCAB4 0xC54E #HANGUL SYLLABLE IEUNG A RIEULMIEUM +0xCAB5 0xC552 #HANGUL SYLLABLE IEUNG A RIEULPHIEUPH +0xCAB6 0xC553 #HANGUL SYLLABLE IEUNG A RIEULHIEUH +0xCAB7 0xC554 #HANGUL SYLLABLE IEUNG A MIEUM +0xCAB8 0xC555 #HANGUL SYLLABLE IEUNG A PIEUP +0xCAB9 0xC557 #HANGUL SYLLABLE IEUNG A SIOS +0xCABA 0xC559 #HANGUL SYLLABLE IEUNG A IEUNG +0xCABB 0xC55D #HANGUL SYLLABLE IEUNG A THIEUTH +0xCABC 0xC55E #HANGUL SYLLABLE IEUNG A PHIEUPH +0xCABD 0xC55F #HANGUL SYLLABLE IEUNG A HIEUH +0xCABE 0xC558 #HANGUL SYLLABLE IEUNG A SSANGSIOS +0xCABF 0xC57C #HANGUL SYLLABLE IEUNG YA +0xCAC0 0xC57D #HANGUL SYLLABLE IEUNG YA KIYEOK +0xCAC1 0xC580 #HANGUL SYLLABLE IEUNG YA NIEUN +0xCAC2 0xC583 #HANGUL SYLLABLE IEUNG YA TIKEUT +0xCAC3 0xC584 #HANGUL SYLLABLE IEUNG YA RIEUL +0xCAC4 0xC587 #HANGUL SYLLABLE IEUNG YA RIEULPIEUP +0xCAC5 0xC58C #HANGUL SYLLABLE IEUNG YA MIEUM +0xCAC6 0xC58D #HANGUL SYLLABLE IEUNG YA PIEUP +0xCAC7 0xC58F #HANGUL SYLLABLE IEUNG YA SIOS +0xCAC8 0xC591 #HANGUL SYLLABLE IEUNG YA IEUNG +0xCAC9 0xC595 #HANGUL SYLLABLE IEUNG YA THIEUTH +0xCACA 0xC597 #HANGUL SYLLABLE IEUNG YA HIEUH +0xCACB 0xC590 #HANGUL SYLLABLE IEUNG YA SSANGSIOS +0xCACC 0xC5B4 #HANGUL SYLLABLE IEUNG EO +0xCACD 0xC5B5 #HANGUL SYLLABLE IEUNG EO KIYEOK +0xCACE 0xC5B8 #HANGUL SYLLABLE IEUNG EO NIEUN +0xCACF 0xC5B9 #HANGUL SYLLABLE IEUNG EO NIEUNCIEUC +0xCAD0 0xC5BB #HANGUL SYLLABLE IEUNG EO TIKEUT +0xCAD1 0xC5BC #HANGUL SYLLABLE IEUNG EO RIEUL +0xCAD2 0xC5BD #HANGUL SYLLABLE IEUNG EO RIEULKIYEOK +0xCAD3 0xC5BE #HANGUL SYLLABLE IEUNG EO RIEULMIEUM +0xCAD4 0xC5C4 #HANGUL SYLLABLE IEUNG EO MIEUM +0xCAD5 0xC5C5 #HANGUL SYLLABLE IEUNG EO PIEUP +0xCAD6 0xC5C6 #HANGUL SYLLABLE IEUNG EO PIEUPSIOS +0xCAD7 0xC5C7 #HANGUL SYLLABLE IEUNG EO SIOS +0xCAD8 0xC5C9 #HANGUL SYLLABLE IEUNG EO IEUNG +0xCAD9 0xC5CA #HANGUL SYLLABLE IEUNG EO CIEUC +0xCADA 0xC5CC #HANGUL SYLLABLE IEUNG EO KHIEUKH +0xCADB 0xC5CE #HANGUL SYLLABLE IEUNG EO PHIEUPH +0xCADC 0xC5CF #HANGUL SYLLABLE IEUNG EO HIEUH +0xCADD 0xC5C8 #HANGUL SYLLABLE IEUNG EO SSANGSIOS +0xCADE 0xC5EC #HANGUL SYLLABLE IEUNG YEO +0xCADF 0xC5ED #HANGUL SYLLABLE IEUNG YEO KIYEOK +0xCAE0 0xC5F0 #HANGUL SYLLABLE IEUNG YEO NIEUN +0xCAE1 0xC5F3 #HANGUL SYLLABLE IEUNG YEO TIKEUT +0xCAE2 0xC5F4 #HANGUL SYLLABLE IEUNG YEO RIEUL +0xCAE3 0xC5F6 #HANGUL SYLLABLE IEUNG YEO RIEULMIEUM +0xCAE4 0xC5F7 #HANGUL SYLLABLE IEUNG YEO RIEULPIEUP +0xCAE5 0xC5FC #HANGUL SYLLABLE IEUNG YEO MIEUM +0xCAE6 0xC5FD #HANGUL SYLLABLE IEUNG YEO PIEUP +0xCAE7 0xC5FE #HANGUL SYLLABLE IEUNG YEO PIEUPSIOS +0xCAE8 0xC5FF #HANGUL SYLLABLE IEUNG YEO SIOS +0xCAE9 0xC601 #HANGUL SYLLABLE IEUNG YEO IEUNG +0xCAEA 0xC605 #HANGUL SYLLABLE IEUNG YEO THIEUTH +0xCAEB 0xC606 #HANGUL SYLLABLE IEUNG YEO PHIEUPH +0xCAEC 0xC607 #HANGUL SYLLABLE IEUNG YEO HIEUH +0xCAED 0xC5EE #HANGUL SYLLABLE IEUNG YEO SSANGKIYEOK +0xCAEE 0xC600 #HANGUL SYLLABLE IEUNG YEO SSANGSIOS +0xCAEF 0xC624 #HANGUL SYLLABLE IEUNG O +0xCAF0 0xC625 #HANGUL SYLLABLE IEUNG O KIYEOK +0xCAF1 0xC628 #HANGUL SYLLABLE IEUNG O NIEUN +0xCAF2 0xC62C #HANGUL SYLLABLE IEUNG O RIEUL +0xCAF3 0xC62D #HANGUL SYLLABLE IEUNG O RIEULKIYEOK +0xCAF4 0xC62E #HANGUL SYLLABLE IEUNG O RIEULMIEUM +0xCAF5 0xC630 #HANGUL SYLLABLE IEUNG O RIEULSIOS +0xCAF6 0xC633 #HANGUL SYLLABLE IEUNG O RIEULHIEUH +0xCAF7 0xC634 #HANGUL SYLLABLE IEUNG O MIEUM +0xCAF8 0xC635 #HANGUL SYLLABLE IEUNG O PIEUP +0xCAF9 0xC637 #HANGUL SYLLABLE IEUNG O SIOS +0xCAFA 0xC639 #HANGUL SYLLABLE IEUNG O IEUNG +0xCAFB 0xC63B #HANGUL SYLLABLE IEUNG O CHIEUCH +0xCAFC 0xC63E #HANGUL SYLLABLE IEUNG O PHIEUPH +0xCAFD 0xC694 #HANGUL SYLLABLE IEUNG YO +0xCAFE 0xC695 #HANGUL SYLLABLE IEUNG YO KIYEOK +0xCBA1 0xC698 #HANGUL SYLLABLE IEUNG YO NIEUN +0xCBA2 0xC69C #HANGUL SYLLABLE IEUNG YO RIEUL +0xCBA3 0xC6A4 #HANGUL SYLLABLE IEUNG YO MIEUM +0xCBA4 0xC6A5 #HANGUL SYLLABLE IEUNG YO PIEUP +0xCBA5 0xC6A7 #HANGUL SYLLABLE IEUNG YO SIOS +0xCBA6 0xC6A9 #HANGUL SYLLABLE IEUNG YO IEUNG +0xCBA7 0xC6B0 #HANGUL SYLLABLE IEUNG U +0xCBA8 0xC6B1 #HANGUL SYLLABLE IEUNG U KIYEOK +0xCBA9 0xC6B4 #HANGUL SYLLABLE IEUNG U NIEUN +0xCBAA 0xC6B8 #HANGUL SYLLABLE IEUNG U RIEUL +0xCBAB 0xC6B9 #HANGUL SYLLABLE IEUNG U RIEULKIYEOK +0xCBAC 0xC6BA #HANGUL SYLLABLE IEUNG U RIEULMIEUM +0xCBAD 0xC6C0 #HANGUL SYLLABLE IEUNG U MIEUM +0xCBAE 0xC6C1 #HANGUL SYLLABLE IEUNG U PIEUP +0xCBAF 0xC6C3 #HANGUL SYLLABLE IEUNG U SIOS +0xCBB0 0xC6C5 #HANGUL SYLLABLE IEUNG U IEUNG +0xCBB1 0xC720 #HANGUL SYLLABLE IEUNG YU +0xCBB2 0xC721 #HANGUL SYLLABLE IEUNG YU KIYEOK +0xCBB3 0xC724 #HANGUL SYLLABLE IEUNG YU NIEUN +0xCBB4 0xC728 #HANGUL SYLLABLE IEUNG YU RIEUL +0xCBB5 0xC730 #HANGUL SYLLABLE IEUNG YU MIEUM +0xCBB6 0xC731 #HANGUL SYLLABLE IEUNG YU PIEUP +0xCBB7 0xC733 #HANGUL SYLLABLE IEUNG YU SIOS +0xCBB8 0xC735 #HANGUL SYLLABLE IEUNG YU IEUNG +0xCBB9 0xC737 #HANGUL SYLLABLE IEUNG YU CHIEUCH +0xCBBA 0xC73C #HANGUL SYLLABLE IEUNG EU +0xCBBB 0xC73D #HANGUL SYLLABLE IEUNG EU KIYEOK +0xCBBC 0xC740 #HANGUL SYLLABLE IEUNG EU NIEUN +0xCBBD 0xC743 #HANGUL SYLLABLE IEUNG EU TIKEUT +0xCBBE 0xC744 #HANGUL SYLLABLE IEUNG EU RIEUL +0xCBBF 0xC745 #HANGUL SYLLABLE IEUNG EU RIEULKIYEOK +0xCBC0 0xC74A #HANGUL SYLLABLE IEUNG EU RIEULPHIEUPH +0xCBC1 0xC74C #HANGUL SYLLABLE IEUNG EU MIEUM +0xCBC2 0xC74D #HANGUL SYLLABLE IEUNG EU PIEUP +0xCBC3 0xC74F #HANGUL SYLLABLE IEUNG EU SIOS +0xCBC4 0xC751 #HANGUL SYLLABLE IEUNG EU IEUNG +0xCBC5 0xC752 #HANGUL SYLLABLE IEUNG EU CIEUC +0xCBC6 0xC753 #HANGUL SYLLABLE IEUNG EU CHIEUCH +0xCBC7 0xC754 #HANGUL SYLLABLE IEUNG EU KHIEUKH +0xCBC8 0xC755 #HANGUL SYLLABLE IEUNG EU THIEUTH +0xCBC9 0xC756 #HANGUL SYLLABLE IEUNG EU PHIEUPH +0xCBCA 0xC757 #HANGUL SYLLABLE IEUNG EU HIEUH +0xCBCB 0xC774 #HANGUL SYLLABLE IEUNG I +0xCBCC 0xC775 #HANGUL SYLLABLE IEUNG I KIYEOK +0xCBCD 0xC778 #HANGUL SYLLABLE IEUNG I NIEUN +0xCBCE 0xC77C #HANGUL SYLLABLE IEUNG I RIEUL +0xCBCF 0xC77D #HANGUL SYLLABLE IEUNG I RIEULKIYEOK +0xCBD0 0xC77E #HANGUL SYLLABLE IEUNG I RIEULMIEUM +0xCBD1 0xC783 #HANGUL SYLLABLE IEUNG I RIEULHIEUH +0xCBD2 0xC784 #HANGUL SYLLABLE IEUNG I MIEUM +0xCBD3 0xC785 #HANGUL SYLLABLE IEUNG I PIEUP +0xCBD4 0xC787 #HANGUL SYLLABLE IEUNG I SIOS +0xCBD5 0xC789 #HANGUL SYLLABLE IEUNG I IEUNG +0xCBD6 0xC78A #HANGUL SYLLABLE IEUNG I CIEUC +0xCBD7 0xC78E #HANGUL SYLLABLE IEUNG I PHIEUPH +0xCBD8 0xC788 #HANGUL SYLLABLE IEUNG I SSANGSIOS +0xCBD9 0xC560 #HANGUL SYLLABLE IEUNG AE +0xCBDA 0xC561 #HANGUL SYLLABLE IEUNG AE KIYEOK +0xCBDB 0xC564 #HANGUL SYLLABLE IEUNG AE NIEUN +0xCBDC 0xC568 #HANGUL SYLLABLE IEUNG AE RIEUL +0xCBDD 0xC570 #HANGUL SYLLABLE IEUNG AE MIEUM +0xCBDE 0xC571 #HANGUL SYLLABLE IEUNG AE PIEUP +0xCBDF 0xC573 #HANGUL SYLLABLE IEUNG AE SIOS +0xCBE0 0xC575 #HANGUL SYLLABLE IEUNG AE IEUNG +0xCBE1 0xC574 #HANGUL SYLLABLE IEUNG AE SSANGSIOS +0xCBE2 0xC598 #HANGUL SYLLABLE IEUNG YAE +0xCBE3 0xC59C #HANGUL SYLLABLE IEUNG YAE NIEUN +0xCBE4 0xC5A0 #HANGUL SYLLABLE IEUNG YAE RIEUL +0xCBE5 0xC5A9 #HANGUL SYLLABLE IEUNG YAE PIEUP +0xCBE6 0xC5D0 #HANGUL SYLLABLE IEUNG E +0xCBE7 0xC5D1 #HANGUL SYLLABLE IEUNG E KIYEOK +0xCBE8 0xC5D4 #HANGUL SYLLABLE IEUNG E NIEUN +0xCBE9 0xC5D8 #HANGUL SYLLABLE IEUNG E RIEUL +0xCBEA 0xC5E0 #HANGUL SYLLABLE IEUNG E MIEUM +0xCBEB 0xC5E1 #HANGUL SYLLABLE IEUNG E PIEUP +0xCBEC 0xC5E3 #HANGUL SYLLABLE IEUNG E SIOS +0xCBED 0xC5E5 #HANGUL SYLLABLE IEUNG E IEUNG +0xCBEE 0xC5E4 #HANGUL SYLLABLE IEUNG E SSANGSIOS +0xCBEF 0xC608 #HANGUL SYLLABLE IEUNG YE +0xCBF0 0xC60C #HANGUL SYLLABLE IEUNG YE NIEUN +0xCBF1 0xC610 #HANGUL SYLLABLE IEUNG YE RIEUL +0xCBF2 0xC618 #HANGUL SYLLABLE IEUNG YE MIEUM +0xCBF3 0xC619 #HANGUL SYLLABLE IEUNG YE PIEUP +0xCBF4 0xC61B #HANGUL SYLLABLE IEUNG YE SIOS +0xCBF5 0xC61D #HANGUL SYLLABLE IEUNG YE IEUNG +0xCBF6 0xC61C #HANGUL SYLLABLE IEUNG YE SSANGSIOS +0xCBF7 0xC678 #HANGUL SYLLABLE IEUNG OE +0xCBF8 0xC679 #HANGUL SYLLABLE IEUNG OE KIYEOK +0xCBF9 0xC67C #HANGUL SYLLABLE IEUNG OE NIEUN +0xCBFA 0xC680 #HANGUL SYLLABLE IEUNG OE RIEUL +0xCBFB 0xC688 #HANGUL SYLLABLE IEUNG OE MIEUM +0xCBFC 0xC689 #HANGUL SYLLABLE IEUNG OE PIEUP +0xCBFD 0xC68B #HANGUL SYLLABLE IEUNG OE SIOS +0xCBFE 0xC68D #HANGUL SYLLABLE IEUNG OE IEUNG +0xCCA1 0xC704 #HANGUL SYLLABLE IEUNG WI +0xCCA2 0xC705 #HANGUL SYLLABLE IEUNG WI KIYEOK +0xCCA3 0xC708 #HANGUL SYLLABLE IEUNG WI NIEUN +0xCCA4 0xC70C #HANGUL SYLLABLE IEUNG WI RIEUL +0xCCA5 0xC714 #HANGUL SYLLABLE IEUNG WI MIEUM +0xCCA6 0xC715 #HANGUL SYLLABLE IEUNG WI PIEUP +0xCCA7 0xC717 #HANGUL SYLLABLE IEUNG WI SIOS +0xCCA8 0xC719 #HANGUL SYLLABLE IEUNG WI IEUNG +0xCCA9 0xC758 #HANGUL SYLLABLE IEUNG YI +0xCCAA 0xC75C #HANGUL SYLLABLE IEUNG YI NIEUN +0xCCAB 0xC760 #HANGUL SYLLABLE IEUNG YI RIEUL +0xCCAC 0xC768 #HANGUL SYLLABLE IEUNG YI MIEUM +0xCCAD 0xC76B #HANGUL SYLLABLE IEUNG YI SIOS +0xCCAE 0xC640 #HANGUL SYLLABLE IEUNG WA +0xCCAF 0xC641 #HANGUL SYLLABLE IEUNG WA KIYEOK +0xCCB0 0xC644 #HANGUL SYLLABLE IEUNG WA NIEUN +0xCCB1 0xC647 #HANGUL SYLLABLE IEUNG WA TIKEUT +0xCCB2 0xC648 #HANGUL SYLLABLE IEUNG WA RIEUL +0xCCB3 0xC650 #HANGUL SYLLABLE IEUNG WA MIEUM +0xCCB4 0xC651 #HANGUL SYLLABLE IEUNG WA PIEUP +0xCCB5 0xC653 #HANGUL SYLLABLE IEUNG WA SIOS +0xCCB6 0xC655 #HANGUL SYLLABLE IEUNG WA IEUNG +0xCCB7 0xC654 #HANGUL SYLLABLE IEUNG WA SSANGSIOS +0xCCB8 0xC6CC #HANGUL SYLLABLE IEUNG WEO +0xCCB9 0xC6CD #HANGUL SYLLABLE IEUNG WEO KIYEOK +0xCCBA 0xC6D0 #HANGUL SYLLABLE IEUNG WEO NIEUN +0xCCBB 0xC6D4 #HANGUL SYLLABLE IEUNG WEO RIEUL +0xCCBC 0xC6DC #HANGUL SYLLABLE IEUNG WEO MIEUM +0xCCBD 0xC6DD #HANGUL SYLLABLE IEUNG WEO PIEUP +0xCCBE 0xC6DF #HANGUL SYLLABLE IEUNG WEO SIOS +0xCCBF 0xC6E1 #HANGUL SYLLABLE IEUNG WEO IEUNG +0xCCC0 0xC6E0 #HANGUL SYLLABLE IEUNG WEO SSANGSIOS +0xCCC1 0xC65C #HANGUL SYLLABLE IEUNG WAE +0xCCC2 0xC65D #HANGUL SYLLABLE IEUNG WAE KIYEOK +0xCCC3 0xC660 #HANGUL SYLLABLE IEUNG WAE NIEUN +0xCCC4 0xC66C #HANGUL SYLLABLE IEUNG WAE MIEUM +0xCCC5 0xC66F #HANGUL SYLLABLE IEUNG WAE SIOS +0xCCC6 0xC671 #HANGUL SYLLABLE IEUNG WAE IEUNG +0xCCC7 0xC6E8 #HANGUL SYLLABLE IEUNG WE +0xCCC8 0xC6E9 #HANGUL SYLLABLE IEUNG WE KIYEOK +0xCCC9 0xC6EC #HANGUL SYLLABLE IEUNG WE NIEUN +0xCCCA 0xC6F0 #HANGUL SYLLABLE IEUNG WE RIEUL +0xCCCB 0xC6F8 #HANGUL SYLLABLE IEUNG WE MIEUM +0xCCCC 0xC6F9 #HANGUL SYLLABLE IEUNG WE PIEUP +0xCCCD 0xC6FB #HANGUL SYLLABLE IEUNG WE SIOS +0xCCCE 0xC6FD #HANGUL SYLLABLE IEUNG WE IEUNG +0xCCCF 0xC701 #HANGUL SYLLABLE IEUNG WE THIEUTH +0xCDA1 0x4F3D #CJK UNIFIED IDEOGRAPH +0xCDA2 0x4F73 #CJK UNIFIED IDEOGRAPH +0xCDA3 0x5047 #CJK UNIFIED IDEOGRAPH +0xCDA4 0x50F9 #CJK UNIFIED IDEOGRAPH +0xCDA5 0x52A0 #CJK UNIFIED IDEOGRAPH +0xCDA6 0x53EF #CJK UNIFIED IDEOGRAPH +0xCDA7 0x5475 #CJK UNIFIED IDEOGRAPH +0xCDA8 0x54E5 #CJK UNIFIED IDEOGRAPH +0xCDA9 0x5609 #CJK UNIFIED IDEOGRAPH +0xCDAA 0x5AC1 #CJK UNIFIED IDEOGRAPH +0xCDAB 0x5BB6 #CJK UNIFIED IDEOGRAPH +0xCDAC 0x6687 #CJK UNIFIED IDEOGRAPH +0xCDAD 0x67B6 #CJK UNIFIED IDEOGRAPH +0xCDAE 0x67B7 #CJK UNIFIED IDEOGRAPH +0xCDAF 0x67EF #CJK UNIFIED IDEOGRAPH +0xCDB0 0x6B4C #CJK UNIFIED IDEOGRAPH +0xCDB1 0x73C2 #CJK UNIFIED IDEOGRAPH +0xCDB2 0x75C2 #CJK UNIFIED IDEOGRAPH +0xCDB3 0x7A3C #CJK UNIFIED IDEOGRAPH +0xCDB4 0x82DB #CJK UNIFIED IDEOGRAPH +0xCDB5 0x8304 #CJK UNIFIED IDEOGRAPH +0xCDB6 0x8857 #CJK UNIFIED IDEOGRAPH +0xCDB7 0x8888 #CJK UNIFIED IDEOGRAPH +0xCDB8 0x8A36 #CJK UNIFIED IDEOGRAPH +0xCDB9 0x8DCF #CJK UNIFIED IDEOGRAPH +0xCDBA 0x8EFB #CJK UNIFIED IDEOGRAPH +0xCDBB 0x8FE6 #CJK UNIFIED IDEOGRAPH +0xCDBC 0x99D5 #CJK UNIFIED IDEOGRAPH +0xCDBD 0x523B #CJK UNIFIED IDEOGRAPH +0xCDBE 0x5374 #CJK UNIFIED IDEOGRAPH +0xCDBF 0x5404 #CJK UNIFIED IDEOGRAPH +0xCDC0 0x54AF #CJK UNIFIED IDEOGRAPH +0xCDC1 0x606A #CJK UNIFIED IDEOGRAPH +0xCDC2 0x6164 #CJK UNIFIED IDEOGRAPH +0xCDC3 0x6BBC #CJK UNIFIED IDEOGRAPH +0xCDC4 0x73CF #CJK UNIFIED IDEOGRAPH +0xCDC5 0x811A #CJK UNIFIED IDEOGRAPH +0xCDC6 0x89BA #CJK UNIFIED IDEOGRAPH +0xCDC7 0x89D2 #CJK UNIFIED IDEOGRAPH +0xCDC8 0x95A3 #CJK UNIFIED IDEOGRAPH +0xCDC9 0x4F83 #CJK UNIFIED IDEOGRAPH +0xCDCA 0x520A #CJK UNIFIED IDEOGRAPH +0xCDCB 0x58BE #CJK UNIFIED IDEOGRAPH +0xCDCC 0x5978 #CJK UNIFIED IDEOGRAPH +0xCDCD 0x59E6 #CJK UNIFIED IDEOGRAPH +0xCDCE 0x5E72 #CJK UNIFIED IDEOGRAPH +0xCDCF 0x5E79 #CJK UNIFIED IDEOGRAPH +0xCDD0 0x61C7 #CJK UNIFIED IDEOGRAPH +0xCDD1 0x63C0 #CJK UNIFIED IDEOGRAPH +0xCDD2 0x6746 #CJK UNIFIED IDEOGRAPH +0xCDD3 0x67EC #CJK UNIFIED IDEOGRAPH +0xCDD4 0x687F #CJK UNIFIED IDEOGRAPH +0xCDD5 0x6F97 #CJK UNIFIED IDEOGRAPH +0xCDD6 0x764E #CJK UNIFIED IDEOGRAPH +0xCDD7 0x770B #CJK UNIFIED IDEOGRAPH +0xCDD8 0x78F5 #CJK UNIFIED IDEOGRAPH +0xCDD9 0x7A08 #CJK UNIFIED IDEOGRAPH +0xCDDA 0x7AFF #CJK UNIFIED IDEOGRAPH +0xCDDB 0x7C21 #CJK UNIFIED IDEOGRAPH +0xCDDC 0x809D #CJK UNIFIED IDEOGRAPH +0xCDDD 0x826E #CJK UNIFIED IDEOGRAPH +0xCDDE 0x8271 #CJK UNIFIED IDEOGRAPH +0xCDDF 0x8AEB #CJK UNIFIED IDEOGRAPH +0xCDE0 0x9593 #CJK UNIFIED IDEOGRAPH +0xCDE1 0x4E6B #CJK UNIFIED IDEOGRAPH +0xCDE2 0x559D #CJK UNIFIED IDEOGRAPH +0xCDE3 0x66F7 #CJK UNIFIED IDEOGRAPH +0xCDE4 0x6E34 #CJK UNIFIED IDEOGRAPH +0xCDE5 0x78A3 #CJK UNIFIED IDEOGRAPH +0xCDE6 0x7AED #CJK UNIFIED IDEOGRAPH +0xCDE7 0x845B #CJK UNIFIED IDEOGRAPH +0xCDE8 0x874E #CJK UNIFIED IDEOGRAPH +0xCDE9 0x8910 #CJK UNIFIED IDEOGRAPH +0xCDEA 0x97A8 #CJK UNIFIED IDEOGRAPH +0xCDEB 0x52D8 #CJK UNIFIED IDEOGRAPH +0xCDEC 0x574E #CJK UNIFIED IDEOGRAPH +0xCDED 0x582A #CJK UNIFIED IDEOGRAPH +0xCDEE 0x5D4C #CJK UNIFIED IDEOGRAPH +0xCDEF 0x611F #CJK UNIFIED IDEOGRAPH +0xCDF0 0x61BE #CJK UNIFIED IDEOGRAPH +0xCDF1 0x6221 #CJK UNIFIED IDEOGRAPH +0xCDF2 0x64BC #CJK UNIFIED IDEOGRAPH +0xCDF3 0x6562 #CJK UNIFIED IDEOGRAPH +0xCDF4 0x67D1 #CJK UNIFIED IDEOGRAPH +0xCDF5 0x6A44 #CJK UNIFIED IDEOGRAPH +0xCDF6 0x6E1B #CJK UNIFIED IDEOGRAPH +0xCDF7 0x7518 #CJK UNIFIED IDEOGRAPH +0xCDF8 0x75B3 #CJK UNIFIED IDEOGRAPH +0xCDF9 0x76E3 #CJK UNIFIED IDEOGRAPH +0xCDFA 0x77B0 #CJK UNIFIED IDEOGRAPH +0xCDFB 0x7D3A #CJK UNIFIED IDEOGRAPH +0xCDFC 0x90AF #CJK UNIFIED IDEOGRAPH +0xCDFD 0x9451 #CJK UNIFIED IDEOGRAPH +0xCDFE 0x9452 #CJK UNIFIED IDEOGRAPH +0xCEA1 0x9F95 #CJK UNIFIED IDEOGRAPH +0xCEA2 0x5323 #CJK UNIFIED IDEOGRAPH +0xCEA3 0x5CAC #CJK UNIFIED IDEOGRAPH +0xCEA4 0x7532 #CJK UNIFIED IDEOGRAPH +0xCEA5 0x80DB #CJK UNIFIED IDEOGRAPH +0xCEA6 0x9240 #CJK UNIFIED IDEOGRAPH +0xCEA7 0x9598 #CJK UNIFIED IDEOGRAPH +0xCEA8 0x525B #CJK UNIFIED IDEOGRAPH +0xCEA9 0x5808 #CJK UNIFIED IDEOGRAPH +0xCEAA 0x59DC #CJK UNIFIED IDEOGRAPH +0xCEAB 0x5CA1 #CJK UNIFIED IDEOGRAPH +0xCEAC 0x5D17 #CJK UNIFIED IDEOGRAPH +0xCEAD 0x5EB7 #CJK UNIFIED IDEOGRAPH +0xCEAE 0x5F3A #CJK UNIFIED IDEOGRAPH +0xCEAF 0x5F4A #CJK UNIFIED IDEOGRAPH +0xCEB0 0x6177 #CJK UNIFIED IDEOGRAPH +0xCEB1 0x6C5F #CJK UNIFIED IDEOGRAPH +0xCEB2 0x757A #CJK UNIFIED IDEOGRAPH +0xCEB3 0x7586 #CJK UNIFIED IDEOGRAPH +0xCEB4 0x7CE0 #CJK UNIFIED IDEOGRAPH +0xCEB5 0x7D73 #CJK UNIFIED IDEOGRAPH +0xCEB6 0x7DB1 #CJK UNIFIED IDEOGRAPH +0xCEB7 0x7F8C #CJK UNIFIED IDEOGRAPH +0xCEB8 0x8154 #CJK UNIFIED IDEOGRAPH +0xCEB9 0x8221 #CJK UNIFIED IDEOGRAPH +0xCEBA 0x8591 #CJK UNIFIED IDEOGRAPH +0xCEBB 0x8941 #CJK UNIFIED IDEOGRAPH +0xCEBC 0x8B1B #CJK UNIFIED IDEOGRAPH +0xCEBD 0x92FC #CJK UNIFIED IDEOGRAPH +0xCEBE 0x964D #CJK UNIFIED IDEOGRAPH +0xCEBF 0x9C47 #CJK UNIFIED IDEOGRAPH +0xCEC0 0x5028 #CJK UNIFIED IDEOGRAPH +0xCEC1 0x53BB #CJK UNIFIED IDEOGRAPH +0xCEC2 0x5C45 #CJK UNIFIED IDEOGRAPH +0xCEC3 0x5DE8 #CJK UNIFIED IDEOGRAPH +0xCEC4 0x62D2 #CJK UNIFIED IDEOGRAPH +0xCEC5 0x636E #CJK UNIFIED IDEOGRAPH +0xCEC6 0x64DA #CJK UNIFIED IDEOGRAPH +0xCEC7 0x6E20 #CJK UNIFIED IDEOGRAPH +0xCEC8 0x64E7 #CJK UNIFIED IDEOGRAPH +0xCEC9 0x70AC #CJK UNIFIED IDEOGRAPH +0xCECA 0x795B #CJK UNIFIED IDEOGRAPH +0xCECB 0x8DDD #CJK UNIFIED IDEOGRAPH +0xCECC 0x8E1E #CJK UNIFIED IDEOGRAPH +0xCECD 0x907D #CJK UNIFIED IDEOGRAPH +0xCECE 0x91B5 #CJK UNIFIED IDEOGRAPH +0xCECF 0x9245 #CJK UNIFIED IDEOGRAPH +0xCED0 0x92F8 #CJK UNIFIED IDEOGRAPH +0xCED1 0x5DEA #CJK UNIFIED IDEOGRAPH +0xCED2 0x4E7E #CJK UNIFIED IDEOGRAPH +0xCED3 0x4EF6 #CJK UNIFIED IDEOGRAPH +0xCED4 0x5065 #CJK UNIFIED IDEOGRAPH +0xCED5 0x5DFE #CJK UNIFIED IDEOGRAPH +0xCED6 0x5EFA #CJK UNIFIED IDEOGRAPH +0xCED7 0x6106 #CJK UNIFIED IDEOGRAPH +0xCED8 0x6957 #CJK UNIFIED IDEOGRAPH +0xCED9 0x8171 #CJK UNIFIED IDEOGRAPH +0xCEDA 0x8654 #CJK UNIFIED IDEOGRAPH +0xCEDB 0x8E47 #CJK UNIFIED IDEOGRAPH +0xCEDC 0x9375 #CJK UNIFIED IDEOGRAPH +0xCEDD 0x9A2B #CJK UNIFIED IDEOGRAPH +0xCEDE 0x4E5E #CJK UNIFIED IDEOGRAPH +0xCEDF 0x5091 #CJK UNIFIED IDEOGRAPH +0xCEE0 0x6770 #CJK UNIFIED IDEOGRAPH +0xCEE1 0x6840 #CJK UNIFIED IDEOGRAPH +0xCEE2 0x5109 #CJK UNIFIED IDEOGRAPH +0xCEE3 0x528D #CJK UNIFIED IDEOGRAPH +0xCEE4 0x5292 #CJK UNIFIED IDEOGRAPH +0xCEE5 0x6AA2 #CJK UNIFIED IDEOGRAPH +0xCEE6 0x77BC #CJK UNIFIED IDEOGRAPH +0xCEE7 0x9210 #CJK UNIFIED IDEOGRAPH +0xCEE8 0x9ED4 #CJK UNIFIED IDEOGRAPH +0xCEE9 0x52AB #CJK UNIFIED IDEOGRAPH +0xCEEA 0x602F #CJK UNIFIED IDEOGRAPH +0xCEEB 0x8FF2 #CJK UNIFIED IDEOGRAPH +0xCEEC 0x64CA #CJK UNIFIED IDEOGRAPH +0xCEED 0x683C #CJK UNIFIED IDEOGRAPH +0xCEEE 0x6A84 #CJK UNIFIED IDEOGRAPH +0xCEEF 0x6FC0 #CJK UNIFIED IDEOGRAPH +0xCEF0 0x8188 #CJK UNIFIED IDEOGRAPH +0xCEF1 0x89A1 #CJK UNIFIED IDEOGRAPH +0xCEF2 0x9694 #CJK UNIFIED IDEOGRAPH +0xCEF3 0x5805 #CJK UNIFIED IDEOGRAPH +0xCEF4 0x727D #CJK UNIFIED IDEOGRAPH +0xCEF5 0x72AC #CJK UNIFIED IDEOGRAPH +0xCEF6 0x7504 #CJK UNIFIED IDEOGRAPH +0xCEF7 0x7D79 #CJK UNIFIED IDEOGRAPH +0xCEF8 0x7E6D #CJK UNIFIED IDEOGRAPH +0xCEF9 0x80A9 #CJK UNIFIED IDEOGRAPH +0xCEFA 0x898B #CJK UNIFIED IDEOGRAPH +0xCEFB 0x8B74 #CJK UNIFIED IDEOGRAPH +0xCEFC 0x9063 #CJK UNIFIED IDEOGRAPH +0xCEFD 0x9D51 #CJK UNIFIED IDEOGRAPH +0xCEFE 0x6289 #CJK UNIFIED IDEOGRAPH +0xCFA1 0x6C7A #CJK UNIFIED IDEOGRAPH +0xCFA2 0x6F54 #CJK UNIFIED IDEOGRAPH +0xCFA3 0x7D50 #CJK UNIFIED IDEOGRAPH +0xCFA4 0x7F3A #CJK UNIFIED IDEOGRAPH +0xCFA5 0x8A23 #CJK UNIFIED IDEOGRAPH +0xCFA6 0x517C #CJK UNIFIED IDEOGRAPH +0xCFA7 0x614A #CJK UNIFIED IDEOGRAPH +0xCFA8 0x7B9D #CJK UNIFIED IDEOGRAPH +0xCFA9 0x8B19 #CJK UNIFIED IDEOGRAPH +0xCFAA 0x9257 #CJK UNIFIED IDEOGRAPH +0xCFAB 0x938C #CJK UNIFIED IDEOGRAPH +0xCFAC 0x4EAC #CJK UNIFIED IDEOGRAPH +0xCFAD 0x4FD3 #CJK UNIFIED IDEOGRAPH +0xCFAE 0x501E #CJK UNIFIED IDEOGRAPH +0xCFAF 0x50BE #CJK UNIFIED IDEOGRAPH +0xCFB0 0x5106 #CJK UNIFIED IDEOGRAPH +0xCFB1 0x52C1 #CJK UNIFIED IDEOGRAPH +0xCFB2 0x52CD #CJK UNIFIED IDEOGRAPH +0xCFB3 0x537F #CJK UNIFIED IDEOGRAPH +0xCFB4 0x5770 #CJK UNIFIED IDEOGRAPH +0xCFB5 0x5883 #CJK UNIFIED IDEOGRAPH +0xCFB6 0x5E9A #CJK UNIFIED IDEOGRAPH +0xCFB7 0x5F91 #CJK UNIFIED IDEOGRAPH +0xCFB8 0x6176 #CJK UNIFIED IDEOGRAPH +0xCFB9 0x61AC #CJK UNIFIED IDEOGRAPH +0xCFBA 0x64CE #CJK UNIFIED IDEOGRAPH +0xCFBB 0x656C #CJK UNIFIED IDEOGRAPH +0xCFBC 0x666F #CJK UNIFIED IDEOGRAPH +0xCFBD 0x66BB #CJK UNIFIED IDEOGRAPH +0xCFBE 0x66F4 #CJK UNIFIED IDEOGRAPH +0xCFBF 0x6897 #CJK UNIFIED IDEOGRAPH +0xCFC0 0x6D87 #CJK UNIFIED IDEOGRAPH +0xCFC1 0x7085 #CJK UNIFIED IDEOGRAPH +0xCFC2 0x70F1 #CJK UNIFIED IDEOGRAPH +0xCFC3 0x749F #CJK UNIFIED IDEOGRAPH +0xCFC4 0x74A5 #CJK UNIFIED IDEOGRAPH +0xCFC5 0x74CA #CJK UNIFIED IDEOGRAPH +0xCFC6 0x75D9 #CJK UNIFIED IDEOGRAPH +0xCFC7 0x786C #CJK UNIFIED IDEOGRAPH +0xCFC8 0x78EC #CJK UNIFIED IDEOGRAPH +0xCFC9 0x7ADF #CJK UNIFIED IDEOGRAPH +0xCFCA 0x7AF6 #CJK UNIFIED IDEOGRAPH +0xCFCB 0x7D45 #CJK UNIFIED IDEOGRAPH +0xCFCC 0x7D93 #CJK UNIFIED IDEOGRAPH +0xCFCD 0x8015 #CJK UNIFIED IDEOGRAPH +0xCFCE 0x803F #CJK UNIFIED IDEOGRAPH +0xCFCF 0x811B #CJK UNIFIED IDEOGRAPH +0xCFD0 0x8396 #CJK UNIFIED IDEOGRAPH +0xCFD1 0x8B66 #CJK UNIFIED IDEOGRAPH +0xCFD2 0x8F15 #CJK UNIFIED IDEOGRAPH +0xCFD3 0x9015 #CJK UNIFIED IDEOGRAPH +0xCFD4 0x93E1 #CJK UNIFIED IDEOGRAPH +0xCFD5 0x9803 #CJK UNIFIED IDEOGRAPH +0xCFD6 0x9838 #CJK UNIFIED IDEOGRAPH +0xCFD7 0x9A5A #CJK UNIFIED IDEOGRAPH +0xCFD8 0x9BE8 #CJK UNIFIED IDEOGRAPH +0xCFD9 0x53E4 #CJK UNIFIED IDEOGRAPH +0xCFDA 0x53E9 #CJK UNIFIED IDEOGRAPH +0xCFDB 0x544A #CJK UNIFIED IDEOGRAPH +0xCFDC 0x5471 #CJK UNIFIED IDEOGRAPH +0xCFDD 0x56FA #CJK UNIFIED IDEOGRAPH +0xCFDE 0x59D1 #CJK UNIFIED IDEOGRAPH +0xCFDF 0x5B64 #CJK UNIFIED IDEOGRAPH +0xCFE0 0x5C3B #CJK UNIFIED IDEOGRAPH +0xCFE1 0x5EAB #CJK UNIFIED IDEOGRAPH +0xCFE2 0x62F7 #CJK UNIFIED IDEOGRAPH +0xCFE3 0x6537 #CJK UNIFIED IDEOGRAPH +0xCFE4 0x6545 #CJK UNIFIED IDEOGRAPH +0xCFE5 0x6572 #CJK UNIFIED IDEOGRAPH +0xCFE6 0x66A0 #CJK UNIFIED IDEOGRAPH +0xCFE7 0x67AF #CJK UNIFIED IDEOGRAPH +0xCFE8 0x69C1 #CJK UNIFIED IDEOGRAPH +0xCFE9 0x6CBD #CJK UNIFIED IDEOGRAPH +0xCFEA 0x75FC #CJK UNIFIED IDEOGRAPH +0xCFEB 0x7690 #CJK UNIFIED IDEOGRAPH +0xCFEC 0x777E #CJK UNIFIED IDEOGRAPH +0xCFED 0x7A3F #CJK UNIFIED IDEOGRAPH +0xCFEE 0x7F94 #CJK UNIFIED IDEOGRAPH +0xCFEF 0x8003 #CJK UNIFIED IDEOGRAPH +0xCFF0 0x80A1 #CJK UNIFIED IDEOGRAPH +0xCFF1 0x818F #CJK UNIFIED IDEOGRAPH +0xCFF2 0x82E6 #CJK UNIFIED IDEOGRAPH +0xCFF3 0x82FD #CJK UNIFIED IDEOGRAPH +0xCFF4 0x83F0 #CJK UNIFIED IDEOGRAPH +0xCFF5 0x85C1 #CJK UNIFIED IDEOGRAPH +0xCFF6 0x8831 #CJK UNIFIED IDEOGRAPH +0xCFF7 0x88B4 #CJK UNIFIED IDEOGRAPH +0xCFF8 0x8A41 #CJK UNIFIED IDEOGRAPH +0xCFF9 0x8AA5 #CJK UNIFIED IDEOGRAPH +0xCFFA 0x8CC8 #CJK UNIFIED IDEOGRAPH +0xCFFB 0x8F9C #CJK UNIFIED IDEOGRAPH +0xCFFC 0x932E #CJK UNIFIED IDEOGRAPH +0xCFFD 0x96C7 #CJK UNIFIED IDEOGRAPH +0xCFFE 0x9867 #CJK UNIFIED IDEOGRAPH +0xD0A1 0x9AD8 #CJK UNIFIED IDEOGRAPH +0xD0A2 0x9F13 #CJK UNIFIED IDEOGRAPH +0xD0A3 0x54ED #CJK UNIFIED IDEOGRAPH +0xD0A4 0x659B #CJK UNIFIED IDEOGRAPH +0xD0A5 0x66F2 #CJK UNIFIED IDEOGRAPH +0xD0A6 0x688F #CJK UNIFIED IDEOGRAPH +0xD0A7 0x7A40 #CJK UNIFIED IDEOGRAPH +0xD0A8 0x8C37 #CJK UNIFIED IDEOGRAPH +0xD0A9 0x9D60 #CJK UNIFIED IDEOGRAPH +0xD0AA 0x56F0 #CJK UNIFIED IDEOGRAPH +0xD0AB 0x5764 #CJK UNIFIED IDEOGRAPH +0xD0AC 0x5D11 #CJK UNIFIED IDEOGRAPH +0xD0AD 0x6606 #CJK UNIFIED IDEOGRAPH +0xD0AE 0x68B1 #CJK UNIFIED IDEOGRAPH +0xD0AF 0x68CD #CJK UNIFIED IDEOGRAPH +0xD0B0 0x6EFE #CJK UNIFIED IDEOGRAPH +0xD0B1 0x7428 #CJK UNIFIED IDEOGRAPH +0xD0B2 0x889E #CJK UNIFIED IDEOGRAPH +0xD0B3 0x9BE4 #CJK UNIFIED IDEOGRAPH +0xD0B4 0x6C68 #CJK UNIFIED IDEOGRAPH +0xD0B5 0x9AA8 #CJK UNIFIED IDEOGRAPH +0xD0B6 0x4F9B #CJK UNIFIED IDEOGRAPH +0xD0B7 0x516C #CJK UNIFIED IDEOGRAPH +0xD0B8 0x5171 #CJK UNIFIED IDEOGRAPH +0xD0B9 0x529F #CJK UNIFIED IDEOGRAPH +0xD0BA 0x5B54 #CJK UNIFIED IDEOGRAPH +0xD0BB 0x5DE5 #CJK UNIFIED IDEOGRAPH +0xD0BC 0x6050 #CJK UNIFIED IDEOGRAPH +0xD0BD 0x606D #CJK UNIFIED IDEOGRAPH +0xD0BE 0x62F1 #CJK UNIFIED IDEOGRAPH +0xD0BF 0x63A7 #CJK UNIFIED IDEOGRAPH +0xD0C0 0x653B #CJK UNIFIED IDEOGRAPH +0xD0C1 0x73D9 #CJK UNIFIED IDEOGRAPH +0xD0C2 0x7A7A #CJK UNIFIED IDEOGRAPH +0xD0C3 0x86A3 #CJK UNIFIED IDEOGRAPH +0xD0C4 0x8CA2 #CJK UNIFIED IDEOGRAPH +0xD0C5 0x978F #CJK UNIFIED IDEOGRAPH +0xD0C6 0x4EA4 #CJK UNIFIED IDEOGRAPH +0xD0C7 0x50D1 #CJK UNIFIED IDEOGRAPH +0xD0C8 0x54AC #CJK UNIFIED IDEOGRAPH +0xD0C9 0x55AC #CJK UNIFIED IDEOGRAPH +0xD0CA 0x5B0C #CJK UNIFIED IDEOGRAPH +0xD0CB 0x5DA0 #CJK UNIFIED IDEOGRAPH +0xD0CC 0x5DE7 #CJK UNIFIED IDEOGRAPH +0xD0CD 0x652A #CJK UNIFIED IDEOGRAPH +0xD0CE 0x654E #CJK UNIFIED IDEOGRAPH +0xD0CF 0x6821 #CJK UNIFIED IDEOGRAPH +0xD0D0 0x6A4B #CJK UNIFIED IDEOGRAPH +0xD0D1 0x72E1 #CJK UNIFIED IDEOGRAPH +0xD0D2 0x768E #CJK UNIFIED IDEOGRAPH +0xD0D3 0x77EF #CJK UNIFIED IDEOGRAPH +0xD0D4 0x7D5E #CJK UNIFIED IDEOGRAPH +0xD0D5 0x7FF9 #CJK UNIFIED IDEOGRAPH +0xD0D6 0x81A0 #CJK UNIFIED IDEOGRAPH +0xD0D7 0x854E #CJK UNIFIED IDEOGRAPH +0xD0D8 0x86DF #CJK UNIFIED IDEOGRAPH +0xD0D9 0x8F03 #CJK UNIFIED IDEOGRAPH +0xD0DA 0x8F4E #CJK UNIFIED IDEOGRAPH +0xD0DB 0x90CA #CJK UNIFIED IDEOGRAPH +0xD0DC 0x9903 #CJK UNIFIED IDEOGRAPH +0xD0DD 0x9A55 #CJK UNIFIED IDEOGRAPH +0xD0DE 0x9BAB #CJK UNIFIED IDEOGRAPH +0xD0DF 0x4E18 #CJK UNIFIED IDEOGRAPH +0xD0E0 0x4E45 #CJK UNIFIED IDEOGRAPH +0xD0E1 0x4E5D #CJK UNIFIED IDEOGRAPH +0xD0E2 0x4EC7 #CJK UNIFIED IDEOGRAPH +0xD0E3 0x4FF1 #CJK UNIFIED IDEOGRAPH +0xD0E4 0x5177 #CJK UNIFIED IDEOGRAPH +0xD0E5 0x52FE #CJK UNIFIED IDEOGRAPH +0xD0E6 0x5340 #CJK UNIFIED IDEOGRAPH +0xD0E7 0x53E3 #CJK UNIFIED IDEOGRAPH +0xD0E8 0x53E5 #CJK UNIFIED IDEOGRAPH +0xD0E9 0x548E #CJK UNIFIED IDEOGRAPH +0xD0EA 0x5614 #CJK UNIFIED IDEOGRAPH +0xD0EB 0x5775 #CJK UNIFIED IDEOGRAPH +0xD0EC 0x57A2 #CJK UNIFIED IDEOGRAPH +0xD0ED 0x5BC7 #CJK UNIFIED IDEOGRAPH +0xD0EE 0x5D87 #CJK UNIFIED IDEOGRAPH +0xD0EF 0x5ED0 #CJK UNIFIED IDEOGRAPH +0xD0F0 0x61FC #CJK UNIFIED IDEOGRAPH +0xD0F1 0x62D8 #CJK UNIFIED IDEOGRAPH +0xD0F2 0x6551 #CJK UNIFIED IDEOGRAPH +0xD0F3 0x6677 #CJK UNIFIED IDEOGRAPH +0xD0F4 0x67B8 #CJK UNIFIED IDEOGRAPH +0xD0F5 0x67E9 #CJK UNIFIED IDEOGRAPH +0xD0F6 0x69CB #CJK UNIFIED IDEOGRAPH +0xD0F7 0x6B50 #CJK UNIFIED IDEOGRAPH +0xD0F8 0x6BC6 #CJK UNIFIED IDEOGRAPH +0xD0F9 0x6BEC #CJK UNIFIED IDEOGRAPH +0xD0FA 0x6C42 #CJK UNIFIED IDEOGRAPH +0xD0FB 0x6E9D #CJK UNIFIED IDEOGRAPH +0xD0FC 0x7078 #CJK UNIFIED IDEOGRAPH +0xD0FD 0x72D7 #CJK UNIFIED IDEOGRAPH +0xD0FE 0x7396 #CJK UNIFIED IDEOGRAPH +0xD1A1 0x7403 #CJK UNIFIED IDEOGRAPH +0xD1A2 0x77BF #CJK UNIFIED IDEOGRAPH +0xD1A3 0x77E9 #CJK UNIFIED IDEOGRAPH +0xD1A4 0x7A76 #CJK UNIFIED IDEOGRAPH +0xD1A5 0x7D7F #CJK UNIFIED IDEOGRAPH +0xD1A6 0x8009 #CJK UNIFIED IDEOGRAPH +0xD1A7 0x81FC #CJK UNIFIED IDEOGRAPH +0xD1A8 0x8205 #CJK UNIFIED IDEOGRAPH +0xD1A9 0x820A #CJK UNIFIED IDEOGRAPH +0xD1AA 0x82DF #CJK UNIFIED IDEOGRAPH +0xD1AB 0x8862 #CJK UNIFIED IDEOGRAPH +0xD1AC 0x8B33 #CJK UNIFIED IDEOGRAPH +0xD1AD 0x8CFC #CJK UNIFIED IDEOGRAPH +0xD1AE 0x8EC0 #CJK UNIFIED IDEOGRAPH +0xD1AF 0x9011 #CJK UNIFIED IDEOGRAPH +0xD1B0 0x90B1 #CJK UNIFIED IDEOGRAPH +0xD1B1 0x9264 #CJK UNIFIED IDEOGRAPH +0xD1B2 0x92B6 #CJK UNIFIED IDEOGRAPH +0xD1B3 0x99D2 #CJK UNIFIED IDEOGRAPH +0xD1B4 0x9A45 #CJK UNIFIED IDEOGRAPH +0xD1B5 0x9CE9 #CJK UNIFIED IDEOGRAPH +0xD1B6 0x9DD7 #CJK UNIFIED IDEOGRAPH +0xD1B7 0x9F9C #CJK UNIFIED IDEOGRAPH +0xD1B8 0x570B #CJK UNIFIED IDEOGRAPH +0xD1B9 0x5C40 #CJK UNIFIED IDEOGRAPH +0xD1BA 0x83CA #CJK UNIFIED IDEOGRAPH +0xD1BB 0x97A0 #CJK UNIFIED IDEOGRAPH +0xD1BC 0x97AB #CJK UNIFIED IDEOGRAPH +0xD1BD 0x9EB4 #CJK UNIFIED IDEOGRAPH +0xD1BE 0x541B #CJK UNIFIED IDEOGRAPH +0xD1BF 0x7A98 #CJK UNIFIED IDEOGRAPH +0xD1C0 0x7FA4 #CJK UNIFIED IDEOGRAPH +0xD1C1 0x88D9 #CJK UNIFIED IDEOGRAPH +0xD1C2 0x8ECD #CJK UNIFIED IDEOGRAPH +0xD1C3 0x90E1 #CJK UNIFIED IDEOGRAPH +0xD1C4 0x5800 #CJK UNIFIED IDEOGRAPH +0xD1C5 0x5C48 #CJK UNIFIED IDEOGRAPH +0xD1C6 0x6398 #CJK UNIFIED IDEOGRAPH +0xD1C7 0x7A9F #CJK UNIFIED IDEOGRAPH +0xD1C8 0x5BAE #CJK UNIFIED IDEOGRAPH +0xD1C9 0x5F13 #CJK UNIFIED IDEOGRAPH +0xD1CA 0x7A79 #CJK UNIFIED IDEOGRAPH +0xD1CB 0x7AAE #CJK UNIFIED IDEOGRAPH +0xD1CC 0x828E #CJK UNIFIED IDEOGRAPH +0xD1CD 0x8EAC #CJK UNIFIED IDEOGRAPH +0xD1CE 0x53EB #CJK UNIFIED IDEOGRAPH +0xD1CF 0x572D #CJK UNIFIED IDEOGRAPH +0xD1D0 0x594E #CJK UNIFIED IDEOGRAPH +0xD1D1 0x63C6 #CJK UNIFIED IDEOGRAPH +0xD1D2 0x69FB #CJK UNIFIED IDEOGRAPH +0xD1D3 0x73EA #CJK UNIFIED IDEOGRAPH +0xD1D4 0x7845 #CJK UNIFIED IDEOGRAPH +0xD1D5 0x7566 #CJK UNIFIED IDEOGRAPH +0xD1D6 0x7ABA #CJK UNIFIED IDEOGRAPH +0xD1D7 0x7AC5 #CJK UNIFIED IDEOGRAPH +0xD1D8 0x7CFE #CJK UNIFIED IDEOGRAPH +0xD1D9 0x8475 #CJK UNIFIED IDEOGRAPH +0xD1DA 0x898F #CJK UNIFIED IDEOGRAPH +0xD1DB 0x8D73 #CJK UNIFIED IDEOGRAPH +0xD1DC 0x9035 #CJK UNIFIED IDEOGRAPH +0xD1DD 0x95A8 #CJK UNIFIED IDEOGRAPH +0xD1DE 0x52FB #CJK UNIFIED IDEOGRAPH +0xD1DF 0x5747 #CJK UNIFIED IDEOGRAPH +0xD1E0 0x7547 #CJK UNIFIED IDEOGRAPH +0xD1E1 0x7B60 #CJK UNIFIED IDEOGRAPH +0xD1E2 0x83CC #CJK UNIFIED IDEOGRAPH +0xD1E3 0x921E #CJK UNIFIED IDEOGRAPH +0xD1E4 0x6A58 #CJK UNIFIED IDEOGRAPH +0xD1E5 0x514B #CJK UNIFIED IDEOGRAPH +0xD1E6 0x524B #CJK UNIFIED IDEOGRAPH +0xD1E7 0x5287 #CJK UNIFIED IDEOGRAPH +0xD1E8 0x621F #CJK UNIFIED IDEOGRAPH +0xD1E9 0x68D8 #CJK UNIFIED IDEOGRAPH +0xD1EA 0x6975 #CJK UNIFIED IDEOGRAPH +0xD1EB 0x9699 #CJK UNIFIED IDEOGRAPH +0xD1EC 0x50C5 #CJK UNIFIED IDEOGRAPH +0xD1ED 0x52A4 #CJK UNIFIED IDEOGRAPH +0xD1EE 0x52E4 #CJK UNIFIED IDEOGRAPH +0xD1EF 0x61C3 #CJK UNIFIED IDEOGRAPH +0xD1F0 0x65A4 #CJK UNIFIED IDEOGRAPH +0xD1F1 0x6839 #CJK UNIFIED IDEOGRAPH +0xD1F2 0x69FF #CJK UNIFIED IDEOGRAPH +0xD1F3 0x747E #CJK UNIFIED IDEOGRAPH +0xD1F4 0x7B4B #CJK UNIFIED IDEOGRAPH +0xD1F5 0x82B9 #CJK UNIFIED IDEOGRAPH +0xD1F6 0x83EB #CJK UNIFIED IDEOGRAPH +0xD1F7 0x89B2 #CJK UNIFIED IDEOGRAPH +0xD1F8 0x8B39 #CJK UNIFIED IDEOGRAPH +0xD1F9 0x8FD1 #CJK UNIFIED IDEOGRAPH +0xD1FA 0x9949 #CJK UNIFIED IDEOGRAPH +0xD1FB 0x4ECA #CJK UNIFIED IDEOGRAPH +0xD1FC 0x5997 #CJK UNIFIED IDEOGRAPH +0xD1FD 0x64D2 #CJK UNIFIED IDEOGRAPH +0xD1FE 0x6611 #CJK UNIFIED IDEOGRAPH +0xD2A1 0x6A8E #CJK UNIFIED IDEOGRAPH +0xD2A2 0x7434 #CJK UNIFIED IDEOGRAPH +0xD2A3 0x7981 #CJK UNIFIED IDEOGRAPH +0xD2A4 0x79BD #CJK UNIFIED IDEOGRAPH +0xD2A5 0x82A9 #CJK UNIFIED IDEOGRAPH +0xD2A6 0x887E #CJK UNIFIED IDEOGRAPH +0xD2A7 0x887F #CJK UNIFIED IDEOGRAPH +0xD2A8 0x895F #CJK UNIFIED IDEOGRAPH +0xD2A9 0x91D1 #CJK UNIFIED IDEOGRAPH +0xD2AA 0x9326 #CJK UNIFIED IDEOGRAPH +0xD2AB 0x4F0B #CJK UNIFIED IDEOGRAPH +0xD2AC 0x53CA #CJK UNIFIED IDEOGRAPH +0xD2AD 0x6025 #CJK UNIFIED IDEOGRAPH +0xD2AE 0x6271 #CJK UNIFIED IDEOGRAPH +0xD2AF 0x6C72 #CJK UNIFIED IDEOGRAPH +0xD2B0 0x7D1A #CJK UNIFIED IDEOGRAPH +0xD2B1 0x7D66 #CJK UNIFIED IDEOGRAPH +0xD2B2 0x4E98 #CJK UNIFIED IDEOGRAPH +0xD2B3 0x5162 #CJK UNIFIED IDEOGRAPH +0xD2B4 0x77DC #CJK UNIFIED IDEOGRAPH +0xD2B5 0x80AF #CJK UNIFIED IDEOGRAPH +0xD2B6 0x4F01 #CJK UNIFIED IDEOGRAPH +0xD2B7 0x4F0E #CJK UNIFIED IDEOGRAPH +0xD2B8 0x5176 #CJK UNIFIED IDEOGRAPH +0xD2B9 0x5180 #CJK UNIFIED IDEOGRAPH +0xD2BA 0x55DC #CJK UNIFIED IDEOGRAPH +0xD2BB 0x5668 #CJK UNIFIED IDEOGRAPH +0xD2BC 0x573B #CJK UNIFIED IDEOGRAPH +0xD2BD 0x57FA #CJK UNIFIED IDEOGRAPH +0xD2BE 0x57FC #CJK UNIFIED IDEOGRAPH +0xD2BF 0x5914 #CJK UNIFIED IDEOGRAPH +0xD2C0 0x5947 #CJK UNIFIED IDEOGRAPH +0xD2C1 0x5993 #CJK UNIFIED IDEOGRAPH +0xD2C2 0x5BC4 #CJK UNIFIED IDEOGRAPH +0xD2C3 0x5C90 #CJK UNIFIED IDEOGRAPH +0xD2C4 0x5D0E #CJK UNIFIED IDEOGRAPH +0xD2C5 0x5DF1 #CJK UNIFIED IDEOGRAPH +0xD2C6 0x5E7E #CJK UNIFIED IDEOGRAPH +0xD2C7 0x5FCC #CJK UNIFIED IDEOGRAPH +0xD2C8 0x6280 #CJK UNIFIED IDEOGRAPH +0xD2C9 0x65D7 #CJK UNIFIED IDEOGRAPH +0xD2CA 0x65E3 #CJK UNIFIED IDEOGRAPH +0xD2CB 0x671E #CJK UNIFIED IDEOGRAPH +0xD2CC 0x671F #CJK UNIFIED IDEOGRAPH +0xD2CD 0x675E #CJK UNIFIED IDEOGRAPH +0xD2CE 0x68CB #CJK UNIFIED IDEOGRAPH +0xD2CF 0x68C4 #CJK UNIFIED IDEOGRAPH +0xD2D0 0x6A5F #CJK UNIFIED IDEOGRAPH +0xD2D1 0x6B3A #CJK UNIFIED IDEOGRAPH +0xD2D2 0x6C23 #CJK UNIFIED IDEOGRAPH +0xD2D3 0x6C7D #CJK UNIFIED IDEOGRAPH +0xD2D4 0x6C82 #CJK UNIFIED IDEOGRAPH +0xD2D5 0x6DC7 #CJK UNIFIED IDEOGRAPH +0xD2D6 0x7398 #CJK UNIFIED IDEOGRAPH +0xD2D7 0x7426 #CJK UNIFIED IDEOGRAPH +0xD2D8 0x742A #CJK UNIFIED IDEOGRAPH +0xD2D9 0x7482 #CJK UNIFIED IDEOGRAPH +0xD2DA 0x74A3 #CJK UNIFIED IDEOGRAPH +0xD2DB 0x7578 #CJK UNIFIED IDEOGRAPH +0xD2DC 0x757F #CJK UNIFIED IDEOGRAPH +0xD2DD 0x7881 #CJK UNIFIED IDEOGRAPH +0xD2DE 0x78EF #CJK UNIFIED IDEOGRAPH +0xD2DF 0x7941 #CJK UNIFIED IDEOGRAPH +0xD2E0 0x7947 #CJK UNIFIED IDEOGRAPH +0xD2E1 0x7948 #CJK UNIFIED IDEOGRAPH +0xD2E2 0x797A #CJK UNIFIED IDEOGRAPH +0xD2E3 0x7B95 #CJK UNIFIED IDEOGRAPH +0xD2E4 0x7D00 #CJK UNIFIED IDEOGRAPH +0xD2E5 0x7DBA #CJK UNIFIED IDEOGRAPH +0xD2E6 0x7F88 #CJK UNIFIED IDEOGRAPH +0xD2E7 0x8006 #CJK UNIFIED IDEOGRAPH +0xD2E8 0x802D #CJK UNIFIED IDEOGRAPH +0xD2E9 0x808C #CJK UNIFIED IDEOGRAPH +0xD2EA 0x8A18 #CJK UNIFIED IDEOGRAPH +0xD2EB 0x8B4F #CJK UNIFIED IDEOGRAPH +0xD2EC 0x8C48 #CJK UNIFIED IDEOGRAPH +0xD2ED 0x8D77 #CJK UNIFIED IDEOGRAPH +0xD2EE 0x9321 #CJK UNIFIED IDEOGRAPH +0xD2EF 0x9324 #CJK UNIFIED IDEOGRAPH +0xD2F0 0x98E2 #CJK UNIFIED IDEOGRAPH +0xD2F1 0x9951 #CJK UNIFIED IDEOGRAPH +0xD2F2 0x9A0E #CJK UNIFIED IDEOGRAPH +0xD2F3 0x9A0F #CJK UNIFIED IDEOGRAPH +0xD2F4 0x9A65 #CJK UNIFIED IDEOGRAPH +0xD2F5 0x9E92 #CJK UNIFIED IDEOGRAPH +0xD2F6 0x55AB #CJK UNIFIED IDEOGRAPH +0xD2F7 0x7DCA #CJK UNIFIED IDEOGRAPH +0xD2F8 0x4F76 #CJK UNIFIED IDEOGRAPH +0xD2F9 0x5409 #CJK UNIFIED IDEOGRAPH +0xD2FA 0x62EE #CJK UNIFIED IDEOGRAPH +0xD2FB 0x6854 #CJK UNIFIED IDEOGRAPH +0xD2FC 0x4ECB #CJK UNIFIED IDEOGRAPH +0xD2FD 0x4EF7 #CJK UNIFIED IDEOGRAPH +0xD2FE 0x500B #CJK UNIFIED IDEOGRAPH +0xD3A1 0x51F1 #CJK UNIFIED IDEOGRAPH +0xD3A2 0x584F #CJK UNIFIED IDEOGRAPH +0xD3A3 0x6137 #CJK UNIFIED IDEOGRAPH +0xD3A4 0x613E #CJK UNIFIED IDEOGRAPH +0xD3A5 0x6168 #CJK UNIFIED IDEOGRAPH +0xD3A6 0x6539 #CJK UNIFIED IDEOGRAPH +0xD3A7 0x69EA #CJK UNIFIED IDEOGRAPH +0xD3A8 0x6F11 #CJK UNIFIED IDEOGRAPH +0xD3A9 0x75A5 #CJK UNIFIED IDEOGRAPH +0xD3AA 0x7686 #CJK UNIFIED IDEOGRAPH +0xD3AB 0x76D6 #CJK UNIFIED IDEOGRAPH +0xD3AC 0x7B87 #CJK UNIFIED IDEOGRAPH +0xD3AD 0x82A5 #CJK UNIFIED IDEOGRAPH +0xD3AE 0x84CB #CJK UNIFIED IDEOGRAPH +0xD3AF 0x93A7 #CJK UNIFIED IDEOGRAPH +0xD3B0 0x958B #CJK UNIFIED IDEOGRAPH +0xD3B1 0x5580 #CJK UNIFIED IDEOGRAPH +0xD3B2 0x5BA2 #CJK UNIFIED IDEOGRAPH +0xD3B3 0x5751 #CJK UNIFIED IDEOGRAPH +0xD3B4 0x7CB3 #CJK UNIFIED IDEOGRAPH +0xD3B5 0x7FB9 #CJK UNIFIED IDEOGRAPH +0xD3B6 0x5048 #CJK UNIFIED IDEOGRAPH +0xD3B7 0x63ED #CJK UNIFIED IDEOGRAPH +0xD3B8 0x4FC2 #CJK UNIFIED IDEOGRAPH +0xD3B9 0x5553 #CJK UNIFIED IDEOGRAPH +0xD3BA 0x583A #CJK UNIFIED IDEOGRAPH +0xD3BB 0x5951 #CJK UNIFIED IDEOGRAPH +0xD3BC 0x5B63 #CJK UNIFIED IDEOGRAPH +0xD3BD 0x5C46 #CJK UNIFIED IDEOGRAPH +0xD3BE 0x61A9 #CJK UNIFIED IDEOGRAPH +0xD3BF 0x60B8 #CJK UNIFIED IDEOGRAPH +0xD3C0 0x6212 #CJK UNIFIED IDEOGRAPH +0xD3C1 0x6842 #CJK UNIFIED IDEOGRAPH +0xD3C2 0x68B0 #CJK UNIFIED IDEOGRAPH +0xD3C3 0x68E8 #CJK UNIFIED IDEOGRAPH +0xD3C4 0x6EAA #CJK UNIFIED IDEOGRAPH +0xD3C5 0x754C #CJK UNIFIED IDEOGRAPH +0xD3C6 0x7678 #CJK UNIFIED IDEOGRAPH +0xD3C7 0x78CE #CJK UNIFIED IDEOGRAPH +0xD3C8 0x7A3D #CJK UNIFIED IDEOGRAPH +0xD3C9 0x7CFB #CJK UNIFIED IDEOGRAPH +0xD3CA 0x7E6B #CJK UNIFIED IDEOGRAPH +0xD3CB 0x7E7C #CJK UNIFIED IDEOGRAPH +0xD3CC 0x8A08 #CJK UNIFIED IDEOGRAPH +0xD3CD 0x8AA1 #CJK UNIFIED IDEOGRAPH +0xD3CE 0x8C3F #CJK UNIFIED IDEOGRAPH +0xD3CF 0x968E #CJK UNIFIED IDEOGRAPH +0xD3D0 0x9DC4 #CJK UNIFIED IDEOGRAPH +0xD3D1 0x4E56 #CJK UNIFIED IDEOGRAPH +0xD3D2 0x5080 #CJK UNIFIED IDEOGRAPH +0xD3D3 0x584A #CJK UNIFIED IDEOGRAPH +0xD3D4 0x58DE #CJK UNIFIED IDEOGRAPH +0xD3D5 0x602A #CJK UNIFIED IDEOGRAPH +0xD3D6 0x6127 #CJK UNIFIED IDEOGRAPH +0xD3D7 0x62D0 #CJK UNIFIED IDEOGRAPH +0xD3D8 0x69D0 #CJK UNIFIED IDEOGRAPH +0xD3D9 0x84AF #CJK UNIFIED IDEOGRAPH +0xD3DA 0x9B41 #CJK UNIFIED IDEOGRAPH +0xD3DB 0x5B8F #CJK UNIFIED IDEOGRAPH +0xD3DC 0x7D18 #CJK UNIFIED IDEOGRAPH +0xD3DD 0x80B1 #CJK UNIFIED IDEOGRAPH +0xD3DE 0x8F5F #CJK UNIFIED IDEOGRAPH +0xD3DF 0x6B78 #CJK UNIFIED IDEOGRAPH +0xD3E0 0x8CB4 #CJK UNIFIED IDEOGRAPH +0xD3E1 0x9B3C #CJK UNIFIED IDEOGRAPH +0xD3E2 0x5BE1 #CJK UNIFIED IDEOGRAPH +0xD3E3 0x6208 #CJK UNIFIED IDEOGRAPH +0xD3E4 0x679C #CJK UNIFIED IDEOGRAPH +0xD3E5 0x74DC #CJK UNIFIED IDEOGRAPH +0xD3E6 0x79D1 #CJK UNIFIED IDEOGRAPH +0xD3E7 0x83D3 #CJK UNIFIED IDEOGRAPH +0xD3E8 0x8A87 #CJK UNIFIED IDEOGRAPH +0xD3E9 0x8AB2 #CJK UNIFIED IDEOGRAPH +0xD3EA 0x8DE8 #CJK UNIFIED IDEOGRAPH +0xD3EB 0x904E #CJK UNIFIED IDEOGRAPH +0xD3EC 0x934B #CJK UNIFIED IDEOGRAPH +0xD3ED 0x9846 #CJK UNIFIED IDEOGRAPH +0xD3EE 0x5ED3 #CJK UNIFIED IDEOGRAPH +0xD3EF 0x69E8 #CJK UNIFIED IDEOGRAPH +0xD3F0 0x85FF #CJK UNIFIED IDEOGRAPH +0xD3F1 0x90ED #CJK UNIFIED IDEOGRAPH +0xD3F2 0x4E32 #CJK UNIFIED IDEOGRAPH +0xD3F3 0x51A0 #CJK UNIFIED IDEOGRAPH +0xD3F4 0x5B98 #CJK UNIFIED IDEOGRAPH +0xD3F5 0x5BEC #CJK UNIFIED IDEOGRAPH +0xD3F6 0x6163 #CJK UNIFIED IDEOGRAPH +0xD3F7 0x68FA #CJK UNIFIED IDEOGRAPH +0xD3F8 0x6B3E #CJK UNIFIED IDEOGRAPH +0xD3F9 0x704C #CJK UNIFIED IDEOGRAPH +0xD3FA 0x742F #CJK UNIFIED IDEOGRAPH +0xD3FB 0x74D8 #CJK UNIFIED IDEOGRAPH +0xD3FC 0x7BA1 #CJK UNIFIED IDEOGRAPH +0xD3FD 0x7F50 #CJK UNIFIED IDEOGRAPH +0xD3FE 0x83C5 #CJK UNIFIED IDEOGRAPH +0xD4A1 0x89C0 #CJK UNIFIED IDEOGRAPH +0xD4A2 0x8CAB #CJK UNIFIED IDEOGRAPH +0xD4A3 0x95DC #CJK UNIFIED IDEOGRAPH +0xD4A4 0x9928 #CJK UNIFIED IDEOGRAPH +0xD4A5 0x522E #CJK UNIFIED IDEOGRAPH +0xD4A6 0x605D #CJK UNIFIED IDEOGRAPH +0xD4A7 0x62EC #CJK UNIFIED IDEOGRAPH +0xD4A8 0x9002 #CJK UNIFIED IDEOGRAPH +0xD4A9 0x4F8A #CJK UNIFIED IDEOGRAPH +0xD4AA 0x5149 #CJK UNIFIED IDEOGRAPH +0xD4AB 0x5321 #CJK UNIFIED IDEOGRAPH +0xD4AC 0x58D9 #CJK UNIFIED IDEOGRAPH +0xD4AD 0x5EE3 #CJK UNIFIED IDEOGRAPH +0xD4AE 0x66E0 #CJK UNIFIED IDEOGRAPH +0xD4AF 0x6D38 #CJK UNIFIED IDEOGRAPH +0xD4B0 0x709A #CJK UNIFIED IDEOGRAPH +0xD4B1 0x72C2 #CJK UNIFIED IDEOGRAPH +0xD4B2 0x73D6 #CJK UNIFIED IDEOGRAPH +0xD4B3 0x7B50 #CJK UNIFIED IDEOGRAPH +0xD4B4 0x80F1 #CJK UNIFIED IDEOGRAPH +0xD4B5 0x945B #CJK UNIFIED IDEOGRAPH +0xD4B6 0x5026 #CJK UNIFIED IDEOGRAPH +0xD4B7 0x5238 #CJK UNIFIED IDEOGRAPH +0xD4B8 0x52F8 #CJK UNIFIED IDEOGRAPH +0xD4B9 0x5377 #CJK UNIFIED IDEOGRAPH +0xD4BA 0x5708 #CJK UNIFIED IDEOGRAPH +0xD4BB 0x62F3 #CJK UNIFIED IDEOGRAPH +0xD4BC 0x6372 #CJK UNIFIED IDEOGRAPH +0xD4BD 0x6B0A #CJK UNIFIED IDEOGRAPH +0xD4BE 0x6DC3 #CJK UNIFIED IDEOGRAPH +0xD4BF 0x7737 #CJK UNIFIED IDEOGRAPH +0xD4C0 0x53A5 #CJK UNIFIED IDEOGRAPH +0xD4C1 0x7357 #CJK UNIFIED IDEOGRAPH +0xD4C2 0x8568 #CJK UNIFIED IDEOGRAPH +0xD4C3 0x8E76 #CJK UNIFIED IDEOGRAPH +0xD4C4 0x95D5 #CJK UNIFIED IDEOGRAPH +0xD4C5 0x5366 #CJK UNIFIED IDEOGRAPH +0xD4C6 0x639B #CJK UNIFIED IDEOGRAPH +0xD4C7 0x7F6B #CJK UNIFIED IDEOGRAPH +0xD4C8 0x51E0 #CJK UNIFIED IDEOGRAPH +0xD4C9 0x673A #CJK UNIFIED IDEOGRAPH +0xD4CA 0x6AC3 #CJK UNIFIED IDEOGRAPH +0xD4CB 0x6F70 #CJK UNIFIED IDEOGRAPH +0xD4CC 0x8A6D #CJK UNIFIED IDEOGRAPH +0xD4CD 0x8ECC #CJK UNIFIED IDEOGRAPH +0xD4CE 0x994B #CJK UNIFIED IDEOGRAPH +0xD4CF 0x513A #CJK UNIFIED IDEOGRAPH +0xD4D0 0x5A1C #CJK UNIFIED IDEOGRAPH +0xD4D1 0x61E6 #CJK UNIFIED IDEOGRAPH +0xD4D2 0x62CF #CJK UNIFIED IDEOGRAPH +0xD4D3 0x62FF #CJK UNIFIED IDEOGRAPH +0xD4D4 0x90A3 #CJK UNIFIED IDEOGRAPH +0xD4D5 0x8AFE #CJK UNIFIED IDEOGRAPH +0xD4D6 0x6696 #CJK UNIFIED IDEOGRAPH +0xD4D7 0x7156 #CJK UNIFIED IDEOGRAPH +0xD4D8 0x96E3 #CJK UNIFIED IDEOGRAPH +0xD4D9 0x634F #CJK UNIFIED IDEOGRAPH +0xD4DA 0x637A #CJK UNIFIED IDEOGRAPH +0xD4DB 0x6D85 #CJK UNIFIED IDEOGRAPH +0xD4DC 0x5357 #CJK UNIFIED IDEOGRAPH +0xD4DD 0x5A1A #CJK UNIFIED IDEOGRAPH +0xD4DE 0x678F #CJK UNIFIED IDEOGRAPH +0xD4DF 0x6960 #CJK UNIFIED IDEOGRAPH +0xD4E0 0x6E73 #CJK UNIFIED IDEOGRAPH +0xD4E1 0x7537 #CJK UNIFIED IDEOGRAPH +0xD4E2 0x7D0D #CJK UNIFIED IDEOGRAPH +0xD4E3 0x8872 #CJK UNIFIED IDEOGRAPH +0xD4E4 0x56CA #CJK UNIFIED IDEOGRAPH +0xD4E5 0x5973 #CJK UNIFIED IDEOGRAPH +0xD4E6 0x5E74 #CJK UNIFIED IDEOGRAPH +0xD4E7 0x79CA #CJK UNIFIED IDEOGRAPH +0xD4E8 0x5FF5 #CJK UNIFIED IDEOGRAPH +0xD4E9 0x606C #CJK UNIFIED IDEOGRAPH +0xD4EA 0x637B #CJK UNIFIED IDEOGRAPH +0xD4EB 0x5BE7 #CJK UNIFIED IDEOGRAPH +0xD4EC 0x5BD7 #CJK UNIFIED IDEOGRAPH +0xD4ED 0x7370 #CJK UNIFIED IDEOGRAPH +0xD4EE 0x52AA #CJK UNIFIED IDEOGRAPH +0xD4EF 0x5974 #CJK UNIFIED IDEOGRAPH +0xD4F0 0x5F29 #CJK UNIFIED IDEOGRAPH +0xD4F1 0x6012 #CJK UNIFIED IDEOGRAPH +0xD4F2 0x7459 #CJK UNIFIED IDEOGRAPH +0xD4F3 0x99D1 #CJK UNIFIED IDEOGRAPH +0xD4F4 0x6FC3 #CJK UNIFIED IDEOGRAPH +0xD4F5 0x81BF #CJK UNIFIED IDEOGRAPH +0xD4F6 0x8FB2 #CJK UNIFIED IDEOGRAPH +0xD4F7 0x5C3F #CJK UNIFIED IDEOGRAPH +0xD4F8 0x9B27 #CJK UNIFIED IDEOGRAPH +0xD4F9 0x5AE9 #CJK UNIFIED IDEOGRAPH +0xD4FA 0x8A25 #CJK UNIFIED IDEOGRAPH +0xD4FB 0x677B #CJK UNIFIED IDEOGRAPH +0xD4FC 0x7D10 #CJK UNIFIED IDEOGRAPH +0xD4FD 0x80FD #CJK UNIFIED IDEOGRAPH +0xD4FE 0x5C3C #CJK UNIFIED IDEOGRAPH +0xD5A1 0x6CE5 #CJK UNIFIED IDEOGRAPH +0xD5A2 0x533F #CJK UNIFIED IDEOGRAPH +0xD5A3 0x6EBA #CJK UNIFIED IDEOGRAPH +0xD5A4 0x4E43 #CJK UNIFIED IDEOGRAPH +0xD5A5 0x5167 #CJK UNIFIED IDEOGRAPH +0xD5A6 0x5948 #CJK UNIFIED IDEOGRAPH +0xD5A7 0x67F0 #CJK UNIFIED IDEOGRAPH +0xD5A8 0x8010 #CJK UNIFIED IDEOGRAPH +0xD5A9 0x60F1 #CJK UNIFIED IDEOGRAPH +0xD5AA 0x8166 #CJK UNIFIED IDEOGRAPH +0xD5AB 0x591A #CJK UNIFIED IDEOGRAPH +0xD5AC 0x8336 #CJK UNIFIED IDEOGRAPH +0xD5AD 0x4E39 #CJK UNIFIED IDEOGRAPH +0xD5AE 0x4EB6 #CJK UNIFIED IDEOGRAPH +0xD5AF 0x4F46 #CJK UNIFIED IDEOGRAPH +0xD5B0 0x55AE #CJK UNIFIED IDEOGRAPH +0xD5B1 0x5718 #CJK UNIFIED IDEOGRAPH +0xD5B2 0x58C7 #CJK UNIFIED IDEOGRAPH +0xD5B3 0x5F56 #CJK UNIFIED IDEOGRAPH +0xD5B4 0x65B7 #CJK UNIFIED IDEOGRAPH +0xD5B5 0x65E6 #CJK UNIFIED IDEOGRAPH +0xD5B6 0x6A80 #CJK UNIFIED IDEOGRAPH +0xD5B7 0x6BB5 #CJK UNIFIED IDEOGRAPH +0xD5B8 0x6E4D #CJK UNIFIED IDEOGRAPH +0xD5B9 0x77ED #CJK UNIFIED IDEOGRAPH +0xD5BA 0x7AEF #CJK UNIFIED IDEOGRAPH +0xD5BB 0x7C1E #CJK UNIFIED IDEOGRAPH +0xD5BC 0x7DDE #CJK UNIFIED IDEOGRAPH +0xD5BD 0x86CB #CJK UNIFIED IDEOGRAPH +0xD5BE 0x8892 #CJK UNIFIED IDEOGRAPH +0xD5BF 0x9132 #CJK UNIFIED IDEOGRAPH +0xD5C0 0x935B #CJK UNIFIED IDEOGRAPH +0xD5C1 0x64BB #CJK UNIFIED IDEOGRAPH +0xD5C2 0x6FBE #CJK UNIFIED IDEOGRAPH +0xD5C3 0x6A7D #CJK UNIFIED IDEOGRAPH +0xD5C4 0x737A #CJK UNIFIED IDEOGRAPH +0xD5C5 0x75B8 #CJK UNIFIED IDEOGRAPH +0xD5C6 0x9054 #CJK UNIFIED IDEOGRAPH +0xD5C7 0x5556 #CJK UNIFIED IDEOGRAPH +0xD5C8 0x574D #CJK UNIFIED IDEOGRAPH +0xD5C9 0x61BA #CJK UNIFIED IDEOGRAPH +0xD5CA 0x64D4 #CJK UNIFIED IDEOGRAPH +0xD5CB 0x66C7 #CJK UNIFIED IDEOGRAPH +0xD5CC 0x6DE1 #CJK UNIFIED IDEOGRAPH +0xD5CD 0x6E5B #CJK UNIFIED IDEOGRAPH +0xD5CE 0x6F6D #CJK UNIFIED IDEOGRAPH +0xD5CF 0x6FB9 #CJK UNIFIED IDEOGRAPH +0xD5D0 0x75F0 #CJK UNIFIED IDEOGRAPH +0xD5D1 0x8043 #CJK UNIFIED IDEOGRAPH +0xD5D2 0x81BD #CJK UNIFIED IDEOGRAPH +0xD5D3 0x8541 #CJK UNIFIED IDEOGRAPH +0xD5D4 0x8983 #CJK UNIFIED IDEOGRAPH +0xD5D5 0x8AC7 #CJK UNIFIED IDEOGRAPH +0xD5D6 0x8B5A #CJK UNIFIED IDEOGRAPH +0xD5D7 0x931F #CJK UNIFIED IDEOGRAPH +0xD5D8 0x6C93 #CJK UNIFIED IDEOGRAPH +0xD5D9 0x7553 #CJK UNIFIED IDEOGRAPH +0xD5DA 0x7B54 #CJK UNIFIED IDEOGRAPH +0xD5DB 0x8E0F #CJK UNIFIED IDEOGRAPH +0xD5DC 0x905D #CJK UNIFIED IDEOGRAPH +0xD5DD 0x5510 #CJK UNIFIED IDEOGRAPH +0xD5DE 0x5802 #CJK UNIFIED IDEOGRAPH +0xD5DF 0x5858 #CJK UNIFIED IDEOGRAPH +0xD5E0 0x5E62 #CJK UNIFIED IDEOGRAPH +0xD5E1 0x6207 #CJK UNIFIED IDEOGRAPH +0xD5E2 0x649E #CJK UNIFIED IDEOGRAPH +0xD5E3 0x68E0 #CJK UNIFIED IDEOGRAPH +0xD5E4 0x7576 #CJK UNIFIED IDEOGRAPH +0xD5E5 0x7CD6 #CJK UNIFIED IDEOGRAPH +0xD5E6 0x87B3 #CJK UNIFIED IDEOGRAPH +0xD5E7 0x9EE8 #CJK UNIFIED IDEOGRAPH +0xD5E8 0x5FB7 #CJK UNIFIED IDEOGRAPH +0xD5E9 0x60B3 #CJK UNIFIED IDEOGRAPH +0xD5EA 0x5012 #CJK UNIFIED IDEOGRAPH +0xD5EB 0x515C #CJK UNIFIED IDEOGRAPH +0xD5EC 0x5200 #CJK UNIFIED IDEOGRAPH +0xD5ED 0x5230 #CJK UNIFIED IDEOGRAPH +0xD5EE 0x5716 #CJK UNIFIED IDEOGRAPH +0xD5EF 0x5835 #CJK UNIFIED IDEOGRAPH +0xD5F0 0x5857 #CJK UNIFIED IDEOGRAPH +0xD5F1 0x5C0E #CJK UNIFIED IDEOGRAPH +0xD5F2 0x5C60 #CJK UNIFIED IDEOGRAPH +0xD5F3 0x5CF6 #CJK UNIFIED IDEOGRAPH +0xD5F4 0x5D8B #CJK UNIFIED IDEOGRAPH +0xD5F5 0x5EA6 #CJK UNIFIED IDEOGRAPH +0xD5F6 0x5F92 #CJK UNIFIED IDEOGRAPH +0xD5F7 0x60BC #CJK UNIFIED IDEOGRAPH +0xD5F8 0x6311 #CJK UNIFIED IDEOGRAPH +0xD5F9 0x6389 #CJK UNIFIED IDEOGRAPH +0xD5FA 0x6417 #CJK UNIFIED IDEOGRAPH +0xD5FB 0x6843 #CJK UNIFIED IDEOGRAPH +0xD5FC 0x68F9 #CJK UNIFIED IDEOGRAPH +0xD5FD 0x6AC2 #CJK UNIFIED IDEOGRAPH +0xD5FE 0x6DD8 #CJK UNIFIED IDEOGRAPH +0xD6A1 0x6E21 #CJK UNIFIED IDEOGRAPH +0xD6A2 0x6ED4 #CJK UNIFIED IDEOGRAPH +0xD6A3 0x6FE4 #CJK UNIFIED IDEOGRAPH +0xD6A4 0x71FE #CJK UNIFIED IDEOGRAPH +0xD6A5 0x76DC #CJK UNIFIED IDEOGRAPH +0xD6A6 0x7779 #CJK UNIFIED IDEOGRAPH +0xD6A7 0x79B1 #CJK UNIFIED IDEOGRAPH +0xD6A8 0x7A3B #CJK UNIFIED IDEOGRAPH +0xD6A9 0x8404 #CJK UNIFIED IDEOGRAPH +0xD6AA 0x89A9 #CJK UNIFIED IDEOGRAPH +0xD6AB 0x8CED #CJK UNIFIED IDEOGRAPH +0xD6AC 0x8DF3 #CJK UNIFIED IDEOGRAPH +0xD6AD 0x8E48 #CJK UNIFIED IDEOGRAPH +0xD6AE 0x9003 #CJK UNIFIED IDEOGRAPH +0xD6AF 0x9014 #CJK UNIFIED IDEOGRAPH +0xD6B0 0x9053 #CJK UNIFIED IDEOGRAPH +0xD6B1 0x90FD #CJK UNIFIED IDEOGRAPH +0xD6B2 0x934D #CJK UNIFIED IDEOGRAPH +0xD6B3 0x9676 #CJK UNIFIED IDEOGRAPH +0xD6B4 0x97DC #CJK UNIFIED IDEOGRAPH +0xD6B5 0x6BD2 #CJK UNIFIED IDEOGRAPH +0xD6B6 0x7006 #CJK UNIFIED IDEOGRAPH +0xD6B7 0x7258 #CJK UNIFIED IDEOGRAPH +0xD6B8 0x72A2 #CJK UNIFIED IDEOGRAPH +0xD6B9 0x7368 #CJK UNIFIED IDEOGRAPH +0xD6BA 0x7763 #CJK UNIFIED IDEOGRAPH +0xD6BB 0x79BF #CJK UNIFIED IDEOGRAPH +0xD6BC 0x7BE4 #CJK UNIFIED IDEOGRAPH +0xD6BD 0x7E9B #CJK UNIFIED IDEOGRAPH +0xD6BE 0x8B80 #CJK UNIFIED IDEOGRAPH +0xD6BF 0x58A9 #CJK UNIFIED IDEOGRAPH +0xD6C0 0x60C7 #CJK UNIFIED IDEOGRAPH +0xD6C1 0x6566 #CJK UNIFIED IDEOGRAPH +0xD6C2 0x65FD #CJK UNIFIED IDEOGRAPH +0xD6C3 0x66BE #CJK UNIFIED IDEOGRAPH +0xD6C4 0x6C8C #CJK UNIFIED IDEOGRAPH +0xD6C5 0x711E #CJK UNIFIED IDEOGRAPH +0xD6C6 0x71C9 #CJK UNIFIED IDEOGRAPH +0xD6C7 0x7364 #CJK UNIFIED IDEOGRAPH +0xD6C8 0x8C5A #CJK UNIFIED IDEOGRAPH +0xD6C9 0x9813 #CJK UNIFIED IDEOGRAPH +0xD6CA 0x4E6D #CJK UNIFIED IDEOGRAPH +0xD6CB 0x5817 #CJK UNIFIED IDEOGRAPH +0xD6CC 0x7A81 #CJK UNIFIED IDEOGRAPH +0xD6CD 0x4EDD #CJK UNIFIED IDEOGRAPH +0xD6CE 0x51AC #CJK UNIFIED IDEOGRAPH +0xD6CF 0x51CD #CJK UNIFIED IDEOGRAPH +0xD6D0 0x52D5 #CJK UNIFIED IDEOGRAPH +0xD6D1 0x540C #CJK UNIFIED IDEOGRAPH +0xD6D2 0x61A7 #CJK UNIFIED IDEOGRAPH +0xD6D3 0x6771 #CJK UNIFIED IDEOGRAPH +0xD6D4 0x6850 #CJK UNIFIED IDEOGRAPH +0xD6D5 0x68DF #CJK UNIFIED IDEOGRAPH +0xD6D6 0x6D1E #CJK UNIFIED IDEOGRAPH +0xD6D7 0x6F7C #CJK UNIFIED IDEOGRAPH +0xD6D8 0x75BC #CJK UNIFIED IDEOGRAPH +0xD6D9 0x77B3 #CJK UNIFIED IDEOGRAPH +0xD6DA 0x7AE5 #CJK UNIFIED IDEOGRAPH +0xD6DB 0x80F4 #CJK UNIFIED IDEOGRAPH +0xD6DC 0x8463 #CJK UNIFIED IDEOGRAPH +0xD6DD 0x9285 #CJK UNIFIED IDEOGRAPH +0xD6DE 0x6597 #CJK UNIFIED IDEOGRAPH +0xD6DF 0x675C #CJK UNIFIED IDEOGRAPH +0xD6E0 0x6793 #CJK UNIFIED IDEOGRAPH +0xD6E1 0x75D8 #CJK UNIFIED IDEOGRAPH +0xD6E2 0x7AC7 #CJK UNIFIED IDEOGRAPH +0xD6E3 0x8373 #CJK UNIFIED IDEOGRAPH +0xD6E4 0x8C46 #CJK UNIFIED IDEOGRAPH +0xD6E5 0x9017 #CJK UNIFIED IDEOGRAPH +0xD6E6 0x982D #CJK UNIFIED IDEOGRAPH +0xD6E7 0x5C6F #CJK UNIFIED IDEOGRAPH +0xD6E8 0x81C0 #CJK UNIFIED IDEOGRAPH +0xD6E9 0x829A #CJK UNIFIED IDEOGRAPH +0xD6EA 0x9041 #CJK UNIFIED IDEOGRAPH +0xD6EB 0x906F #CJK UNIFIED IDEOGRAPH +0xD6EC 0x920D #CJK UNIFIED IDEOGRAPH +0xD6ED 0x5F97 #CJK UNIFIED IDEOGRAPH +0xD6EE 0x5D9D #CJK UNIFIED IDEOGRAPH +0xD6EF 0x6A59 #CJK UNIFIED IDEOGRAPH +0xD6F0 0x71C8 #CJK UNIFIED IDEOGRAPH +0xD6F1 0x767B #CJK UNIFIED IDEOGRAPH +0xD6F2 0x7B49 #CJK UNIFIED IDEOGRAPH +0xD6F3 0x85E4 #CJK UNIFIED IDEOGRAPH +0xD6F4 0x8B04 #CJK UNIFIED IDEOGRAPH +0xD6F5 0x9127 #CJK UNIFIED IDEOGRAPH +0xD6F6 0x9A30 #CJK UNIFIED IDEOGRAPH +0xD6F7 0x4EE3 #CJK UNIFIED IDEOGRAPH +0xD6F8 0x5788 #CJK UNIFIED IDEOGRAPH +0xD6F9 0x576E #CJK UNIFIED IDEOGRAPH +0xD6FA 0x5927 #CJK UNIFIED IDEOGRAPH +0xD6FB 0x5C0D #CJK UNIFIED IDEOGRAPH +0xD6FC 0x5CB1 #CJK UNIFIED IDEOGRAPH +0xD6FD 0x5E36 #CJK UNIFIED IDEOGRAPH +0xD6FE 0x5F85 #CJK UNIFIED IDEOGRAPH +0xD7A1 0x6234 #CJK UNIFIED IDEOGRAPH +0xD7A2 0x64E1 #CJK UNIFIED IDEOGRAPH +0xD7A3 0x73B3 #CJK UNIFIED IDEOGRAPH +0xD7A4 0x81FA #CJK UNIFIED IDEOGRAPH +0xD7A5 0x888B #CJK UNIFIED IDEOGRAPH +0xD7A6 0x8CB8 #CJK UNIFIED IDEOGRAPH +0xD7A7 0x968A #CJK UNIFIED IDEOGRAPH +0xD7A8 0x9EDB #CJK UNIFIED IDEOGRAPH +0xD7A9 0x5587 #CJK UNIFIED IDEOGRAPH +0xD7AA 0x61F6 #CJK UNIFIED IDEOGRAPH +0xD7AB 0x7669 #CJK UNIFIED IDEOGRAPH +0xD7AC 0x7F85 #CJK UNIFIED IDEOGRAPH +0xD7AD 0x863F #CJK UNIFIED IDEOGRAPH +0xD7AE 0x87BA #CJK UNIFIED IDEOGRAPH +0xD7AF 0x88F8 #CJK UNIFIED IDEOGRAPH +0xD7B0 0x908F #CJK UNIFIED IDEOGRAPH +0xD7B1 0x6A02 #CJK UNIFIED IDEOGRAPH +0xD7B2 0x6D1B #CJK UNIFIED IDEOGRAPH +0xD7B3 0x70D9 #CJK UNIFIED IDEOGRAPH +0xD7B4 0x73DE #CJK UNIFIED IDEOGRAPH +0xD7B5 0x7D61 #CJK UNIFIED IDEOGRAPH +0xD7B6 0x843D #CJK UNIFIED IDEOGRAPH +0xD7B7 0x916A #CJK UNIFIED IDEOGRAPH +0xD7B8 0x99F1 #CJK UNIFIED IDEOGRAPH +0xD7B9 0x4E82 #CJK UNIFIED IDEOGRAPH +0xD7BA 0x5375 #CJK UNIFIED IDEOGRAPH +0xD7BB 0x6B04 #CJK UNIFIED IDEOGRAPH +0xD7BC 0x6B12 #CJK UNIFIED IDEOGRAPH +0xD7BD 0x703E #CJK UNIFIED IDEOGRAPH +0xD7BE 0x721B #CJK UNIFIED IDEOGRAPH +0xD7BF 0x862D #CJK UNIFIED IDEOGRAPH +0xD7C0 0x9E1E #CJK UNIFIED IDEOGRAPH +0xD7C1 0x524C #CJK UNIFIED IDEOGRAPH +0xD7C2 0x8FA3 #CJK UNIFIED IDEOGRAPH +0xD7C3 0x5D50 #CJK UNIFIED IDEOGRAPH +0xD7C4 0x64E5 #CJK UNIFIED IDEOGRAPH +0xD7C5 0x652C #CJK UNIFIED IDEOGRAPH +0xD7C6 0x6B16 #CJK UNIFIED IDEOGRAPH +0xD7C7 0x6FEB #CJK UNIFIED IDEOGRAPH +0xD7C8 0x7C43 #CJK UNIFIED IDEOGRAPH +0xD7C9 0x7E9C #CJK UNIFIED IDEOGRAPH +0xD7CA 0x85CD #CJK UNIFIED IDEOGRAPH +0xD7CB 0x8964 #CJK UNIFIED IDEOGRAPH +0xD7CC 0x89BD #CJK UNIFIED IDEOGRAPH +0xD7CD 0x62C9 #CJK UNIFIED IDEOGRAPH +0xD7CE 0x81D8 #CJK UNIFIED IDEOGRAPH +0xD7CF 0x881F #CJK UNIFIED IDEOGRAPH +0xD7D0 0x945E #CJK UNIFIED IDEOGRAPH +0xD7D1 0x5A18 #CJK UNIFIED IDEOGRAPH +0xD7D2 0x5ECA #CJK UNIFIED IDEOGRAPH +0xD7D3 0x6717 #CJK UNIFIED IDEOGRAPH +0xD7D4 0x6D6A #CJK UNIFIED IDEOGRAPH +0xD7D5 0x72FC #CJK UNIFIED IDEOGRAPH +0xD7D6 0x7405 #CJK UNIFIED IDEOGRAPH +0xD7D7 0x746F #CJK UNIFIED IDEOGRAPH +0xD7D8 0x8782 #CJK UNIFIED IDEOGRAPH +0xD7D9 0x90DE #CJK UNIFIED IDEOGRAPH +0xD7DA 0x63A0 #CJK UNIFIED IDEOGRAPH +0xD7DB 0x7565 #CJK UNIFIED IDEOGRAPH +0xD7DC 0x4EAE #CJK UNIFIED IDEOGRAPH +0xD7DD 0x5006 #CJK UNIFIED IDEOGRAPH +0xD7DE 0x5169 #CJK UNIFIED IDEOGRAPH +0xD7DF 0x51C9 #CJK UNIFIED IDEOGRAPH +0xD7E0 0x6881 #CJK UNIFIED IDEOGRAPH +0xD7E1 0x6A11 #CJK UNIFIED IDEOGRAPH +0xD7E2 0x7CAE #CJK UNIFIED IDEOGRAPH +0xD7E3 0x7CB1 #CJK UNIFIED IDEOGRAPH +0xD7E4 0x7CE7 #CJK UNIFIED IDEOGRAPH +0xD7E5 0x826F #CJK UNIFIED IDEOGRAPH +0xD7E6 0x8AD2 #CJK UNIFIED IDEOGRAPH +0xD7E7 0x8F1B #CJK UNIFIED IDEOGRAPH +0xD7E8 0x91CF #CJK UNIFIED IDEOGRAPH +0xD7E9 0x4FB6 #CJK UNIFIED IDEOGRAPH +0xD7EA 0x5137 #CJK UNIFIED IDEOGRAPH +0xD7EB 0x52F5 #CJK UNIFIED IDEOGRAPH +0xD7EC 0x53B2 #CJK UNIFIED IDEOGRAPH +0xD7ED 0x5442 #CJK UNIFIED IDEOGRAPH +0xD7EE 0x5EEC #CJK UNIFIED IDEOGRAPH +0xD7EF 0x616E #CJK UNIFIED IDEOGRAPH +0xD7F0 0x623E #CJK UNIFIED IDEOGRAPH +0xD7F1 0x65C5 #CJK UNIFIED IDEOGRAPH +0xD7F2 0x6ADA #CJK UNIFIED IDEOGRAPH +0xD7F3 0x6FFE #CJK UNIFIED IDEOGRAPH +0xD7F4 0x792A #CJK UNIFIED IDEOGRAPH +0xD7F5 0x85DC #CJK UNIFIED IDEOGRAPH +0xD7F6 0x8823 #CJK UNIFIED IDEOGRAPH +0xD7F7 0x95AD #CJK UNIFIED IDEOGRAPH +0xD7F8 0x9A62 #CJK UNIFIED IDEOGRAPH +0xD7F9 0x9A6A #CJK UNIFIED IDEOGRAPH +0xD7FA 0x9E97 #CJK UNIFIED IDEOGRAPH +0xD7FB 0x9ECE #CJK UNIFIED IDEOGRAPH +0xD7FC 0x529B #CJK UNIFIED IDEOGRAPH +0xD7FD 0x66C6 #CJK UNIFIED IDEOGRAPH +0xD7FE 0x6B77 #CJK UNIFIED IDEOGRAPH +0xD8A1 0x701D #CJK UNIFIED IDEOGRAPH +0xD8A2 0x792B #CJK UNIFIED IDEOGRAPH +0xD8A3 0x9742 #CJK UNIFIED IDEOGRAPH +0xD8A4 0x6190 #CJK UNIFIED IDEOGRAPH +0xD8A5 0x6200 #CJK UNIFIED IDEOGRAPH +0xD8A6 0x6523 #CJK UNIFIED IDEOGRAPH +0xD8A7 0x6F23 #CJK UNIFIED IDEOGRAPH +0xD8A8 0x7149 #CJK UNIFIED IDEOGRAPH +0xD8A9 0x7489 #CJK UNIFIED IDEOGRAPH +0xD8AA 0x7DF4 #CJK UNIFIED IDEOGRAPH +0xD8AB 0x806F #CJK UNIFIED IDEOGRAPH +0xD8AC 0x84EE #CJK UNIFIED IDEOGRAPH +0xD8AD 0x8F26 #CJK UNIFIED IDEOGRAPH +0xD8AE 0x9023 #CJK UNIFIED IDEOGRAPH +0xD8AF 0x934A #CJK UNIFIED IDEOGRAPH +0xD8B0 0x51BD #CJK UNIFIED IDEOGRAPH +0xD8B1 0x5217 #CJK UNIFIED IDEOGRAPH +0xD8B2 0x52A3 #CJK UNIFIED IDEOGRAPH +0xD8B3 0x6D0C #CJK UNIFIED IDEOGRAPH +0xD8B4 0x70C8 #CJK UNIFIED IDEOGRAPH +0xD8B5 0x88C2 #CJK UNIFIED IDEOGRAPH +0xD8B6 0x5EC9 #CJK UNIFIED IDEOGRAPH +0xD8B7 0x6582 #CJK UNIFIED IDEOGRAPH +0xD8B8 0x6BAE #CJK UNIFIED IDEOGRAPH +0xD8B9 0x6FC2 #CJK UNIFIED IDEOGRAPH +0xD8BA 0x7C3E #CJK UNIFIED IDEOGRAPH +0xD8BB 0x7375 #CJK UNIFIED IDEOGRAPH +0xD8BC 0x4EE4 #CJK UNIFIED IDEOGRAPH +0xD8BD 0x4F36 #CJK UNIFIED IDEOGRAPH +0xD8BE 0x56F9 #CJK UNIFIED IDEOGRAPH +0xD8BF 0x5CBA #CJK UNIFIED IDEOGRAPH +0xD8C0 0x5DBA #CJK UNIFIED IDEOGRAPH +0xD8C1 0x601C #CJK UNIFIED IDEOGRAPH +0xD8C2 0x73B2 #CJK UNIFIED IDEOGRAPH +0xD8C3 0x7B2D #CJK UNIFIED IDEOGRAPH +0xD8C4 0x7F9A #CJK UNIFIED IDEOGRAPH +0xD8C5 0x7FCE #CJK UNIFIED IDEOGRAPH +0xD8C6 0x8046 #CJK UNIFIED IDEOGRAPH +0xD8C7 0x901E #CJK UNIFIED IDEOGRAPH +0xD8C8 0x9234 #CJK UNIFIED IDEOGRAPH +0xD8C9 0x96F6 #CJK UNIFIED IDEOGRAPH +0xD8CA 0x9748 #CJK UNIFIED IDEOGRAPH +0xD8CB 0x9818 #CJK UNIFIED IDEOGRAPH +0xD8CC 0x9F61 #CJK UNIFIED IDEOGRAPH +0xD8CD 0x52DE #CJK UNIFIED IDEOGRAPH +0xD8CE 0x6488 #CJK UNIFIED IDEOGRAPH +0xD8CF 0x64C4 #CJK UNIFIED IDEOGRAPH +0xD8D0 0x6AD3 #CJK UNIFIED IDEOGRAPH +0xD8D1 0x6F5E #CJK UNIFIED IDEOGRAPH +0xD8D2 0x7018 #CJK UNIFIED IDEOGRAPH +0xD8D3 0x7210 #CJK UNIFIED IDEOGRAPH +0xD8D4 0x76E7 #CJK UNIFIED IDEOGRAPH +0xD8D5 0x8001 #CJK UNIFIED IDEOGRAPH +0xD8D6 0x8606 #CJK UNIFIED IDEOGRAPH +0xD8D7 0x865C #CJK UNIFIED IDEOGRAPH +0xD8D8 0x8DEF #CJK UNIFIED IDEOGRAPH +0xD8D9 0x8F05 #CJK UNIFIED IDEOGRAPH +0xD8DA 0x9732 #CJK UNIFIED IDEOGRAPH +0xD8DB 0x9B6F #CJK UNIFIED IDEOGRAPH +0xD8DC 0x9DFA #CJK UNIFIED IDEOGRAPH +0xD8DD 0x9E75 #CJK UNIFIED IDEOGRAPH +0xD8DE 0x788C #CJK UNIFIED IDEOGRAPH +0xD8DF 0x797F #CJK UNIFIED IDEOGRAPH +0xD8E0 0x7DA0 #CJK UNIFIED IDEOGRAPH +0xD8E1 0x83C9 #CJK UNIFIED IDEOGRAPH +0xD8E2 0x9304 #CJK UNIFIED IDEOGRAPH +0xD8E3 0x9E7F #CJK UNIFIED IDEOGRAPH +0xD8E4 0x9E93 #CJK UNIFIED IDEOGRAPH +0xD8E5 0x8AD6 #CJK UNIFIED IDEOGRAPH +0xD8E6 0x58DF #CJK UNIFIED IDEOGRAPH +0xD8E7 0x5F04 #CJK UNIFIED IDEOGRAPH +0xD8E8 0x6727 #CJK UNIFIED IDEOGRAPH +0xD8E9 0x7027 #CJK UNIFIED IDEOGRAPH +0xD8EA 0x74CF #CJK UNIFIED IDEOGRAPH +0xD8EB 0x7C60 #CJK UNIFIED IDEOGRAPH +0xD8EC 0x807E #CJK UNIFIED IDEOGRAPH +0xD8ED 0x4E86 #CJK UNIFIED IDEOGRAPH +0xD8EE 0x50DA #CJK UNIFIED IDEOGRAPH +0xD8EF 0x5BEE #CJK UNIFIED IDEOGRAPH +0xD8F0 0x5ED6 #CJK UNIFIED IDEOGRAPH +0xD8F1 0x6599 #CJK UNIFIED IDEOGRAPH +0xD8F2 0x71CE #CJK UNIFIED IDEOGRAPH +0xD8F3 0x7642 #CJK UNIFIED IDEOGRAPH +0xD8F4 0x77AD #CJK UNIFIED IDEOGRAPH +0xD8F5 0x804A #CJK UNIFIED IDEOGRAPH +0xD8F6 0x84FC #CJK UNIFIED IDEOGRAPH +0xD8F7 0x907C #CJK UNIFIED IDEOGRAPH +0xD8F8 0x9F8D #CJK UNIFIED IDEOGRAPH +0xD8F9 0x58D8 #CJK UNIFIED IDEOGRAPH +0xD8FA 0x5A41 #CJK UNIFIED IDEOGRAPH +0xD8FB 0x5C62 #CJK UNIFIED IDEOGRAPH +0xD8FC 0x6A13 #CJK UNIFIED IDEOGRAPH +0xD8FD 0x6DDA #CJK UNIFIED IDEOGRAPH +0xD8FE 0x6F0F #CJK UNIFIED IDEOGRAPH +0xD9A1 0x763B #CJK UNIFIED IDEOGRAPH +0xD9A2 0x7D2F #CJK UNIFIED IDEOGRAPH +0xD9A3 0x7E37 #CJK UNIFIED IDEOGRAPH +0xD9A4 0x851E #CJK UNIFIED IDEOGRAPH +0xD9A5 0x8938 #CJK UNIFIED IDEOGRAPH +0xD9A6 0x93E4 #CJK UNIFIED IDEOGRAPH +0xD9A7 0x964B #CJK UNIFIED IDEOGRAPH +0xD9A8 0x5289 #CJK UNIFIED IDEOGRAPH +0xD9A9 0x65D2 #CJK UNIFIED IDEOGRAPH +0xD9AA 0x67F3 #CJK UNIFIED IDEOGRAPH +0xD9AB 0x69B4 #CJK UNIFIED IDEOGRAPH +0xD9AC 0x6D41 #CJK UNIFIED IDEOGRAPH +0xD9AD 0x6E9C #CJK UNIFIED IDEOGRAPH +0xD9AE 0x700F #CJK UNIFIED IDEOGRAPH +0xD9AF 0x7409 #CJK UNIFIED IDEOGRAPH +0xD9B0 0x7460 #CJK UNIFIED IDEOGRAPH +0xD9B1 0x7559 #CJK UNIFIED IDEOGRAPH +0xD9B2 0x7624 #CJK UNIFIED IDEOGRAPH +0xD9B3 0x786B #CJK UNIFIED IDEOGRAPH +0xD9B4 0x8B2C #CJK UNIFIED IDEOGRAPH +0xD9B5 0x985E #CJK UNIFIED IDEOGRAPH +0xD9B6 0x516D #CJK UNIFIED IDEOGRAPH +0xD9B7 0x622E #CJK UNIFIED IDEOGRAPH +0xD9B8 0x9678 #CJK UNIFIED IDEOGRAPH +0xD9B9 0x4F96 #CJK UNIFIED IDEOGRAPH +0xD9BA 0x502B #CJK UNIFIED IDEOGRAPH +0xD9BB 0x5D19 #CJK UNIFIED IDEOGRAPH +0xD9BC 0x6DEA #CJK UNIFIED IDEOGRAPH +0xD9BD 0x7DB8 #CJK UNIFIED IDEOGRAPH +0xD9BE 0x8F2A #CJK UNIFIED IDEOGRAPH +0xD9BF 0x5F8B #CJK UNIFIED IDEOGRAPH +0xD9C0 0x6144 #CJK UNIFIED IDEOGRAPH +0xD9C1 0x6817 #CJK UNIFIED IDEOGRAPH +0xD9C2 0x9686 #CJK UNIFIED IDEOGRAPH +0xD9C3 0x52D2 #CJK UNIFIED IDEOGRAPH +0xD9C4 0x808B #CJK UNIFIED IDEOGRAPH +0xD9C5 0x8F62 #CJK UNIFIED IDEOGRAPH +0xD9C6 0x51DC #CJK UNIFIED IDEOGRAPH +0xD9C7 0x51CC #CJK UNIFIED IDEOGRAPH +0xD9C8 0x695E #CJK UNIFIED IDEOGRAPH +0xD9C9 0x7A1C #CJK UNIFIED IDEOGRAPH +0xD9CA 0x7DBE #CJK UNIFIED IDEOGRAPH +0xD9CB 0x83F1 #CJK UNIFIED IDEOGRAPH +0xD9CC 0x9675 #CJK UNIFIED IDEOGRAPH +0xD9CD 0x4FDA #CJK UNIFIED IDEOGRAPH +0xD9CE 0x5229 #CJK UNIFIED IDEOGRAPH +0xD9CF 0x5398 #CJK UNIFIED IDEOGRAPH +0xD9D0 0x540F #CJK UNIFIED IDEOGRAPH +0xD9D1 0x550E #CJK UNIFIED IDEOGRAPH +0xD9D2 0x5C65 #CJK UNIFIED IDEOGRAPH +0xD9D3 0x60A7 #CJK UNIFIED IDEOGRAPH +0xD9D4 0x674E #CJK UNIFIED IDEOGRAPH +0xD9D5 0x68A8 #CJK UNIFIED IDEOGRAPH +0xD9D6 0x6D6C #CJK UNIFIED IDEOGRAPH +0xD9D7 0x7281 #CJK UNIFIED IDEOGRAPH +0xD9D8 0x72F8 #CJK UNIFIED IDEOGRAPH +0xD9D9 0x7406 #CJK UNIFIED IDEOGRAPH +0xD9DA 0x7483 #CJK UNIFIED IDEOGRAPH +0xD9DB 0x75E2 #CJK UNIFIED IDEOGRAPH +0xD9DC 0x7C6C #CJK UNIFIED IDEOGRAPH +0xD9DD 0x7F79 #CJK UNIFIED IDEOGRAPH +0xD9DE 0x7FB8 #CJK UNIFIED IDEOGRAPH +0xD9DF 0x8389 #CJK UNIFIED IDEOGRAPH +0xD9E0 0x88CF #CJK UNIFIED IDEOGRAPH +0xD9E1 0x88E1 #CJK UNIFIED IDEOGRAPH +0xD9E2 0x91CC #CJK UNIFIED IDEOGRAPH +0xD9E3 0x91D0 #CJK UNIFIED IDEOGRAPH +0xD9E4 0x96E2 #CJK UNIFIED IDEOGRAPH +0xD9E5 0x9BC9 #CJK UNIFIED IDEOGRAPH +0xD9E6 0x541D #CJK UNIFIED IDEOGRAPH +0xD9E7 0x6F7E #CJK UNIFIED IDEOGRAPH +0xD9E8 0x71D0 #CJK UNIFIED IDEOGRAPH +0xD9E9 0x7498 #CJK UNIFIED IDEOGRAPH +0xD9EA 0x85FA #CJK UNIFIED IDEOGRAPH +0xD9EB 0x8EAA #CJK UNIFIED IDEOGRAPH +0xD9EC 0x96A3 #CJK UNIFIED IDEOGRAPH +0xD9ED 0x9C57 #CJK UNIFIED IDEOGRAPH +0xD9EE 0x9E9F #CJK UNIFIED IDEOGRAPH +0xD9EF 0x6797 #CJK UNIFIED IDEOGRAPH +0xD9F0 0x6DCB #CJK UNIFIED IDEOGRAPH +0xD9F1 0x7433 #CJK UNIFIED IDEOGRAPH +0xD9F2 0x81E8 #CJK UNIFIED IDEOGRAPH +0xD9F3 0x9716 #CJK UNIFIED IDEOGRAPH +0xD9F4 0x782C #CJK UNIFIED IDEOGRAPH +0xD9F5 0x7ACB #CJK UNIFIED IDEOGRAPH +0xD9F6 0x7B20 #CJK UNIFIED IDEOGRAPH +0xD9F7 0x7C92 #CJK UNIFIED IDEOGRAPH +0xD9F8 0x4F86 #CJK UNIFIED IDEOGRAPH +0xD9F9 0x5D0D #CJK UNIFIED IDEOGRAPH +0xD9FA 0x5FA0 #CJK UNIFIED IDEOGRAPH +0xD9FB 0x840A #CJK UNIFIED IDEOGRAPH +0xD9FC 0x51B7 #CJK UNIFIED IDEOGRAPH +0xD9FD 0x4F8B #CJK UNIFIED IDEOGRAPH +0xD9FE 0x6FA7 #CJK UNIFIED IDEOGRAPH +0xDAA1 0x79AE #CJK UNIFIED IDEOGRAPH +0xDAA2 0x91B4 #CJK UNIFIED IDEOGRAPH +0xDAA3 0x5121 #CJK UNIFIED IDEOGRAPH +0xDAA4 0x7028 #CJK UNIFIED IDEOGRAPH +0xDAA5 0x7262 #CJK UNIFIED IDEOGRAPH +0xDAA6 0x78CA #CJK UNIFIED IDEOGRAPH +0xDAA7 0x8CC2 #CJK UNIFIED IDEOGRAPH +0xDAA8 0x8CDA #CJK UNIFIED IDEOGRAPH +0xDAA9 0x8CF4 #CJK UNIFIED IDEOGRAPH +0xDAAA 0x96F7 #CJK UNIFIED IDEOGRAPH +0xDAAB 0x6469 #CJK UNIFIED IDEOGRAPH +0xDAAC 0x746A #CJK UNIFIED IDEOGRAPH +0xDAAD 0x75F2 #CJK UNIFIED IDEOGRAPH +0xDAAE 0x78BC #CJK UNIFIED IDEOGRAPH +0xDAAF 0x78E8 #CJK UNIFIED IDEOGRAPH +0xDAB0 0x99AC #CJK UNIFIED IDEOGRAPH +0xDAB1 0x9B54 #CJK UNIFIED IDEOGRAPH +0xDAB2 0x9EBB #CJK UNIFIED IDEOGRAPH +0xDAB3 0x5BDE #CJK UNIFIED IDEOGRAPH +0xDAB4 0x5E55 #CJK UNIFIED IDEOGRAPH +0xDAB5 0x6F20 #CJK UNIFIED IDEOGRAPH +0xDAB6 0x819C #CJK UNIFIED IDEOGRAPH +0xDAB7 0x83AB #CJK UNIFIED IDEOGRAPH +0xDAB8 0x9088 #CJK UNIFIED IDEOGRAPH +0xDAB9 0x4E07 #CJK UNIFIED IDEOGRAPH +0xDABA 0x534D #CJK UNIFIED IDEOGRAPH +0xDABB 0x5A29 #CJK UNIFIED IDEOGRAPH +0xDABC 0x5DD2 #CJK UNIFIED IDEOGRAPH +0xDABD 0x5F4E #CJK UNIFIED IDEOGRAPH +0xDABE 0x6162 #CJK UNIFIED IDEOGRAPH +0xDABF 0x633D #CJK UNIFIED IDEOGRAPH +0xDAC0 0x6669 #CJK UNIFIED IDEOGRAPH +0xDAC1 0x66FC #CJK UNIFIED IDEOGRAPH +0xDAC2 0x6EFF #CJK UNIFIED IDEOGRAPH +0xDAC3 0x6F2B #CJK UNIFIED IDEOGRAPH +0xDAC4 0x7063 #CJK UNIFIED IDEOGRAPH +0xDAC5 0x779E #CJK UNIFIED IDEOGRAPH +0xDAC6 0x842C #CJK UNIFIED IDEOGRAPH +0xDAC7 0x8513 #CJK UNIFIED IDEOGRAPH +0xDAC8 0x883B #CJK UNIFIED IDEOGRAPH +0xDAC9 0x8B3E #CJK UNIFIED IDEOGRAPH +0xDACA 0x8F13 #CJK UNIFIED IDEOGRAPH +0xDACB 0x9945 #CJK UNIFIED IDEOGRAPH +0xDACC 0x9C3B #CJK UNIFIED IDEOGRAPH +0xDACD 0x551C #CJK UNIFIED IDEOGRAPH +0xDACE 0x62B9 #CJK UNIFIED IDEOGRAPH +0xDACF 0x672B #CJK UNIFIED IDEOGRAPH +0xDAD0 0x6CAB #CJK UNIFIED IDEOGRAPH +0xDAD1 0x8309 #CJK UNIFIED IDEOGRAPH +0xDAD2 0x896A #CJK UNIFIED IDEOGRAPH +0xDAD3 0x977A #CJK UNIFIED IDEOGRAPH +0xDAD4 0x4EA1 #CJK UNIFIED IDEOGRAPH +0xDAD5 0x5984 #CJK UNIFIED IDEOGRAPH +0xDAD6 0x5FD8 #CJK UNIFIED IDEOGRAPH +0xDAD7 0x5FD9 #CJK UNIFIED IDEOGRAPH +0xDAD8 0x671B #CJK UNIFIED IDEOGRAPH +0xDAD9 0x7DB2 #CJK UNIFIED IDEOGRAPH +0xDADA 0x7F54 #CJK UNIFIED IDEOGRAPH +0xDADB 0x8292 #CJK UNIFIED IDEOGRAPH +0xDADC 0x832B #CJK UNIFIED IDEOGRAPH +0xDADD 0x83BD #CJK UNIFIED IDEOGRAPH +0xDADE 0x8F1E #CJK UNIFIED IDEOGRAPH +0xDADF 0x9099 #CJK UNIFIED IDEOGRAPH +0xDAE0 0x51AA #CJK UNIFIED IDEOGRAPH +0xDAE1 0x8993 #CJK UNIFIED IDEOGRAPH +0xDAE2 0x514D #CJK UNIFIED IDEOGRAPH +0xDAE3 0x5195 #CJK UNIFIED IDEOGRAPH +0xDAE4 0x52C9 #CJK UNIFIED IDEOGRAPH +0xDAE5 0x68C9 #CJK UNIFIED IDEOGRAPH +0xDAE6 0x6C94 #CJK UNIFIED IDEOGRAPH +0xDAE7 0x7704 #CJK UNIFIED IDEOGRAPH +0xDAE8 0x7720 #CJK UNIFIED IDEOGRAPH +0xDAE9 0x7DBF #CJK UNIFIED IDEOGRAPH +0xDAEA 0x7DEC #CJK UNIFIED IDEOGRAPH +0xDAEB 0x9762 #CJK UNIFIED IDEOGRAPH +0xDAEC 0x9EB5 #CJK UNIFIED IDEOGRAPH +0xDAED 0x6EC5 #CJK UNIFIED IDEOGRAPH +0xDAEE 0x8511 #CJK UNIFIED IDEOGRAPH +0xDAEF 0x51A5 #CJK UNIFIED IDEOGRAPH +0xDAF0 0x540D #CJK UNIFIED IDEOGRAPH +0xDAF1 0x547D #CJK UNIFIED IDEOGRAPH +0xDAF2 0x660E #CJK UNIFIED IDEOGRAPH +0xDAF3 0x669D #CJK UNIFIED IDEOGRAPH +0xDAF4 0x6927 #CJK UNIFIED IDEOGRAPH +0xDAF5 0x6E9F #CJK UNIFIED IDEOGRAPH +0xDAF6 0x76BF #CJK UNIFIED IDEOGRAPH +0xDAF7 0x7791 #CJK UNIFIED IDEOGRAPH +0xDAF8 0x8317 #CJK UNIFIED IDEOGRAPH +0xDAF9 0x84C2 #CJK UNIFIED IDEOGRAPH +0xDAFA 0x879F #CJK UNIFIED IDEOGRAPH +0xDAFB 0x9169 #CJK UNIFIED IDEOGRAPH +0xDAFC 0x9298 #CJK UNIFIED IDEOGRAPH +0xDAFD 0x9CF4 #CJK UNIFIED IDEOGRAPH +0xDAFE 0x4FAE #CJK UNIFIED IDEOGRAPH +0xDBA1 0x5192 #CJK UNIFIED IDEOGRAPH +0xDBA2 0x52DF #CJK UNIFIED IDEOGRAPH +0xDBA3 0x59C6 #CJK UNIFIED IDEOGRAPH +0xDBA4 0x5E3D #CJK UNIFIED IDEOGRAPH +0xDBA5 0x6155 #CJK UNIFIED IDEOGRAPH +0xDBA6 0x6478 #CJK UNIFIED IDEOGRAPH +0xDBA7 0x6479 #CJK UNIFIED IDEOGRAPH +0xDBA8 0x66AE #CJK UNIFIED IDEOGRAPH +0xDBA9 0x67D0 #CJK UNIFIED IDEOGRAPH +0xDBAA 0x6A21 #CJK UNIFIED IDEOGRAPH +0xDBAB 0x6BCD #CJK UNIFIED IDEOGRAPH +0xDBAC 0x6BDB #CJK UNIFIED IDEOGRAPH +0xDBAD 0x725F #CJK UNIFIED IDEOGRAPH +0xDBAE 0x7261 #CJK UNIFIED IDEOGRAPH +0xDBAF 0x7441 #CJK UNIFIED IDEOGRAPH +0xDBB0 0x7738 #CJK UNIFIED IDEOGRAPH +0xDBB1 0x77DB #CJK UNIFIED IDEOGRAPH +0xDBB2 0x8017 #CJK UNIFIED IDEOGRAPH +0xDBB3 0x82BC #CJK UNIFIED IDEOGRAPH +0xDBB4 0x8305 #CJK UNIFIED IDEOGRAPH +0xDBB5 0x8B00 #CJK UNIFIED IDEOGRAPH +0xDBB6 0x8B28 #CJK UNIFIED IDEOGRAPH +0xDBB7 0x8C8C #CJK UNIFIED IDEOGRAPH +0xDBB8 0x6728 #CJK UNIFIED IDEOGRAPH +0xDBB9 0x6C90 #CJK UNIFIED IDEOGRAPH +0xDBBA 0x7267 #CJK UNIFIED IDEOGRAPH +0xDBBB 0x76EE #CJK UNIFIED IDEOGRAPH +0xDBBC 0x7766 #CJK UNIFIED IDEOGRAPH +0xDBBD 0x7A46 #CJK UNIFIED IDEOGRAPH +0xDBBE 0x9DA9 #CJK UNIFIED IDEOGRAPH +0xDBBF 0x6B7F #CJK UNIFIED IDEOGRAPH +0xDBC0 0x6C92 #CJK UNIFIED IDEOGRAPH +0xDBC1 0x5922 #CJK UNIFIED IDEOGRAPH +0xDBC2 0x6726 #CJK UNIFIED IDEOGRAPH +0xDBC3 0x8499 #CJK UNIFIED IDEOGRAPH +0xDBC4 0x536F #CJK UNIFIED IDEOGRAPH +0xDBC5 0x5893 #CJK UNIFIED IDEOGRAPH +0xDBC6 0x5999 #CJK UNIFIED IDEOGRAPH +0xDBC7 0x5EDF #CJK UNIFIED IDEOGRAPH +0xDBC8 0x63CF #CJK UNIFIED IDEOGRAPH +0xDBC9 0x6634 #CJK UNIFIED IDEOGRAPH +0xDBCA 0x6773 #CJK UNIFIED IDEOGRAPH +0xDBCB 0x6E3A #CJK UNIFIED IDEOGRAPH +0xDBCC 0x732B #CJK UNIFIED IDEOGRAPH +0xDBCD 0x755D #CJK UNIFIED IDEOGRAPH +0xDBCE 0x7AD7 #CJK UNIFIED IDEOGRAPH +0xDBCF 0x82D7 #CJK UNIFIED IDEOGRAPH +0xDBD0 0x9328 #CJK UNIFIED IDEOGRAPH +0xDBD1 0x52D9 #CJK UNIFIED IDEOGRAPH +0xDBD2 0x5DEB #CJK UNIFIED IDEOGRAPH +0xDBD3 0x61AE #CJK UNIFIED IDEOGRAPH +0xDBD4 0x61CB #CJK UNIFIED IDEOGRAPH +0xDBD5 0x620A #CJK UNIFIED IDEOGRAPH +0xDBD6 0x62C7 #CJK UNIFIED IDEOGRAPH +0xDBD7 0x64AB #CJK UNIFIED IDEOGRAPH +0xDBD8 0x65E0 #CJK UNIFIED IDEOGRAPH +0xDBD9 0x6959 #CJK UNIFIED IDEOGRAPH +0xDBDA 0x6B66 #CJK UNIFIED IDEOGRAPH +0xDBDB 0x6BCB #CJK UNIFIED IDEOGRAPH +0xDBDC 0x7121 #CJK UNIFIED IDEOGRAPH +0xDBDD 0x73F7 #CJK UNIFIED IDEOGRAPH +0xDBDE 0x7E46 #CJK UNIFIED IDEOGRAPH +0xDBDF 0x821E #CJK UNIFIED IDEOGRAPH +0xDBE0 0x8302 #CJK UNIFIED IDEOGRAPH +0xDBE1 0x856A #CJK UNIFIED IDEOGRAPH +0xDBE2 0x8AA3 #CJK UNIFIED IDEOGRAPH +0xDBE3 0x8CBF #CJK UNIFIED IDEOGRAPH +0xDBE4 0x9727 #CJK UNIFIED IDEOGRAPH +0xDBE5 0x9D61 #CJK UNIFIED IDEOGRAPH +0xDBE6 0x58A8 #CJK UNIFIED IDEOGRAPH +0xDBE7 0x9ED8 #CJK UNIFIED IDEOGRAPH +0xDBE8 0x5011 #CJK UNIFIED IDEOGRAPH +0xDBE9 0x520E #CJK UNIFIED IDEOGRAPH +0xDBEA 0x543B #CJK UNIFIED IDEOGRAPH +0xDBEB 0x554F #CJK UNIFIED IDEOGRAPH +0xDBEC 0x6587 #CJK UNIFIED IDEOGRAPH +0xDBED 0x6C76 #CJK UNIFIED IDEOGRAPH +0xDBEE 0x7D0A #CJK UNIFIED IDEOGRAPH +0xDBEF 0x7D0B #CJK UNIFIED IDEOGRAPH +0xDBF0 0x805E #CJK UNIFIED IDEOGRAPH +0xDBF1 0x868A #CJK UNIFIED IDEOGRAPH +0xDBF2 0x9580 #CJK UNIFIED IDEOGRAPH +0xDBF3 0x96EF #CJK UNIFIED IDEOGRAPH +0xDBF4 0x52FF #CJK UNIFIED IDEOGRAPH +0xDBF5 0x7269 #CJK UNIFIED IDEOGRAPH +0xDBF6 0x5473 #CJK UNIFIED IDEOGRAPH +0xDBF7 0x5A9A #CJK UNIFIED IDEOGRAPH +0xDBF8 0x5C3E #CJK UNIFIED IDEOGRAPH +0xDBF9 0x5D4B #CJK UNIFIED IDEOGRAPH +0xDBFA 0x5F4C #CJK UNIFIED IDEOGRAPH +0xDBFB 0x5FAE #CJK UNIFIED IDEOGRAPH +0xDBFC 0x672A #CJK UNIFIED IDEOGRAPH +0xDBFD 0x68B6 #CJK UNIFIED IDEOGRAPH +0xDBFE 0x6963 #CJK UNIFIED IDEOGRAPH +0xDCA1 0x6E3C #CJK UNIFIED IDEOGRAPH +0xDCA2 0x6E44 #CJK UNIFIED IDEOGRAPH +0xDCA3 0x7709 #CJK UNIFIED IDEOGRAPH +0xDCA4 0x7C73 #CJK UNIFIED IDEOGRAPH +0xDCA5 0x7F8E #CJK UNIFIED IDEOGRAPH +0xDCA6 0x8587 #CJK UNIFIED IDEOGRAPH +0xDCA7 0x8B0E #CJK UNIFIED IDEOGRAPH +0xDCA8 0x8FF7 #CJK UNIFIED IDEOGRAPH +0xDCA9 0x9761 #CJK UNIFIED IDEOGRAPH +0xDCAA 0x9EF4 #CJK UNIFIED IDEOGRAPH +0xDCAB 0x5CB7 #CJK UNIFIED IDEOGRAPH +0xDCAC 0x60B6 #CJK UNIFIED IDEOGRAPH +0xDCAD 0x610D #CJK UNIFIED IDEOGRAPH +0xDCAE 0x61AB #CJK UNIFIED IDEOGRAPH +0xDCAF 0x654F #CJK UNIFIED IDEOGRAPH +0xDCB0 0x65FB #CJK UNIFIED IDEOGRAPH +0xDCB1 0x65FC #CJK UNIFIED IDEOGRAPH +0xDCB2 0x6C11 #CJK UNIFIED IDEOGRAPH +0xDCB3 0x6CEF #CJK UNIFIED IDEOGRAPH +0xDCB4 0x739F #CJK UNIFIED IDEOGRAPH +0xDCB5 0x73C9 #CJK UNIFIED IDEOGRAPH +0xDCB6 0x7DE1 #CJK UNIFIED IDEOGRAPH +0xDCB7 0x9594 #CJK UNIFIED IDEOGRAPH +0xDCB8 0x5BC6 #CJK UNIFIED IDEOGRAPH +0xDCB9 0x871C #CJK UNIFIED IDEOGRAPH +0xDCBA 0x8B10 #CJK UNIFIED IDEOGRAPH +0xDCBB 0x57CB #CJK UNIFIED IDEOGRAPH +0xDCBC 0x59B9 #CJK UNIFIED IDEOGRAPH +0xDCBD 0x5A92 #CJK UNIFIED IDEOGRAPH +0xDCBE 0x5BD0 #CJK UNIFIED IDEOGRAPH +0xDCBF 0x6627 #CJK UNIFIED IDEOGRAPH +0xDCC0 0x679A #CJK UNIFIED IDEOGRAPH +0xDCC1 0x6885 #CJK UNIFIED IDEOGRAPH +0xDCC2 0x6BCF #CJK UNIFIED IDEOGRAPH +0xDCC3 0x6C95 #CJK UNIFIED IDEOGRAPH +0xDCC4 0x7164 #CJK UNIFIED IDEOGRAPH +0xDCC5 0x7F75 #CJK UNIFIED IDEOGRAPH +0xDCC6 0x8CB7 #CJK UNIFIED IDEOGRAPH +0xDCC7 0x8CE3 #CJK UNIFIED IDEOGRAPH +0xDCC8 0x9081 #CJK UNIFIED IDEOGRAPH +0xDCC9 0x9B45 #CJK UNIFIED IDEOGRAPH +0xDCCA 0x8108 #CJK UNIFIED IDEOGRAPH +0xDCCB 0x8C8A #CJK UNIFIED IDEOGRAPH +0xDCCC 0x964C #CJK UNIFIED IDEOGRAPH +0xDCCD 0x9A40 #CJK UNIFIED IDEOGRAPH +0xDCCE 0x9EA5 #CJK UNIFIED IDEOGRAPH +0xDCCF 0x5B5F #CJK UNIFIED IDEOGRAPH +0xDCD0 0x6C13 #CJK UNIFIED IDEOGRAPH +0xDCD1 0x731B #CJK UNIFIED IDEOGRAPH +0xDCD2 0x76DF #CJK UNIFIED IDEOGRAPH +0xDCD3 0x76F2 #CJK UNIFIED IDEOGRAPH +0xDCD4 0x840C #CJK UNIFIED IDEOGRAPH +0xDCD5 0x8882 #CJK UNIFIED IDEOGRAPH +0xDCD6 0x525D #CJK UNIFIED IDEOGRAPH +0xDCD7 0x535A #CJK UNIFIED IDEOGRAPH +0xDCD8 0x62CD #CJK UNIFIED IDEOGRAPH +0xDCD9 0x640F #CJK UNIFIED IDEOGRAPH +0xDCDA 0x64B2 #CJK UNIFIED IDEOGRAPH +0xDCDB 0x6734 #CJK UNIFIED IDEOGRAPH +0xDCDC 0x6A38 #CJK UNIFIED IDEOGRAPH +0xDCDD 0x6CCA #CJK UNIFIED IDEOGRAPH +0xDCDE 0x73C0 #CJK UNIFIED IDEOGRAPH +0xDCDF 0x749E #CJK UNIFIED IDEOGRAPH +0xDCE0 0x7B94 #CJK UNIFIED IDEOGRAPH +0xDCE1 0x7C95 #CJK UNIFIED IDEOGRAPH +0xDCE2 0x7E1B #CJK UNIFIED IDEOGRAPH +0xDCE3 0x818A #CJK UNIFIED IDEOGRAPH +0xDCE4 0x8236 #CJK UNIFIED IDEOGRAPH +0xDCE5 0x8584 #CJK UNIFIED IDEOGRAPH +0xDCE6 0x8FEB #CJK UNIFIED IDEOGRAPH +0xDCE7 0x96F9 #CJK UNIFIED IDEOGRAPH +0xDCE8 0x99C1 #CJK UNIFIED IDEOGRAPH +0xDCE9 0x4F34 #CJK UNIFIED IDEOGRAPH +0xDCEA 0x534A #CJK UNIFIED IDEOGRAPH +0xDCEB 0x53CD #CJK UNIFIED IDEOGRAPH +0xDCEC 0x53DB #CJK UNIFIED IDEOGRAPH +0xDCED 0x62CC #CJK UNIFIED IDEOGRAPH +0xDCEE 0x642C #CJK UNIFIED IDEOGRAPH +0xDCEF 0x6500 #CJK UNIFIED IDEOGRAPH +0xDCF0 0x6591 #CJK UNIFIED IDEOGRAPH +0xDCF1 0x69C3 #CJK UNIFIED IDEOGRAPH +0xDCF2 0x6CEE #CJK UNIFIED IDEOGRAPH +0xDCF3 0x6F58 #CJK UNIFIED IDEOGRAPH +0xDCF4 0x73ED #CJK UNIFIED IDEOGRAPH +0xDCF5 0x7554 #CJK UNIFIED IDEOGRAPH +0xDCF6 0x7622 #CJK UNIFIED IDEOGRAPH +0xDCF7 0x76E4 #CJK UNIFIED IDEOGRAPH +0xDCF8 0x76FC #CJK UNIFIED IDEOGRAPH +0xDCF9 0x78D0 #CJK UNIFIED IDEOGRAPH +0xDCFA 0x78FB #CJK UNIFIED IDEOGRAPH +0xDCFB 0x792C #CJK UNIFIED IDEOGRAPH +0xDCFC 0x7D46 #CJK UNIFIED IDEOGRAPH +0xDCFD 0x822C #CJK UNIFIED IDEOGRAPH +0xDCFE 0x87E0 #CJK UNIFIED IDEOGRAPH +0xDDA1 0x8FD4 #CJK UNIFIED IDEOGRAPH +0xDDA2 0x9812 #CJK UNIFIED IDEOGRAPH +0xDDA3 0x98EF #CJK UNIFIED IDEOGRAPH +0xDDA4 0x52C3 #CJK UNIFIED IDEOGRAPH +0xDDA5 0x62D4 #CJK UNIFIED IDEOGRAPH +0xDDA6 0x64A5 #CJK UNIFIED IDEOGRAPH +0xDDA7 0x6E24 #CJK UNIFIED IDEOGRAPH +0xDDA8 0x6F51 #CJK UNIFIED IDEOGRAPH +0xDDA9 0x767C #CJK UNIFIED IDEOGRAPH +0xDDAA 0x8DCB #CJK UNIFIED IDEOGRAPH +0xDDAB 0x91B1 #CJK UNIFIED IDEOGRAPH +0xDDAC 0x9262 #CJK UNIFIED IDEOGRAPH +0xDDAD 0x9AEE #CJK UNIFIED IDEOGRAPH +0xDDAE 0x9B43 #CJK UNIFIED IDEOGRAPH +0xDDAF 0x5023 #CJK UNIFIED IDEOGRAPH +0xDDB0 0x508D #CJK UNIFIED IDEOGRAPH +0xDDB1 0x574A #CJK UNIFIED IDEOGRAPH +0xDDB2 0x59A8 #CJK UNIFIED IDEOGRAPH +0xDDB3 0x5C28 #CJK UNIFIED IDEOGRAPH +0xDDB4 0x5E47 #CJK UNIFIED IDEOGRAPH +0xDDB5 0x5F77 #CJK UNIFIED IDEOGRAPH +0xDDB6 0x623F #CJK UNIFIED IDEOGRAPH +0xDDB7 0x653E #CJK UNIFIED IDEOGRAPH +0xDDB8 0x65B9 #CJK UNIFIED IDEOGRAPH +0xDDB9 0x65C1 #CJK UNIFIED IDEOGRAPH +0xDDBA 0x6609 #CJK UNIFIED IDEOGRAPH +0xDDBB 0x678B #CJK UNIFIED IDEOGRAPH +0xDDBC 0x699C #CJK UNIFIED IDEOGRAPH +0xDDBD 0x6EC2 #CJK UNIFIED IDEOGRAPH +0xDDBE 0x78C5 #CJK UNIFIED IDEOGRAPH +0xDDBF 0x7D21 #CJK UNIFIED IDEOGRAPH +0xDDC0 0x80AA #CJK UNIFIED IDEOGRAPH +0xDDC1 0x8180 #CJK UNIFIED IDEOGRAPH +0xDDC2 0x822B #CJK UNIFIED IDEOGRAPH +0xDDC3 0x82B3 #CJK UNIFIED IDEOGRAPH +0xDDC4 0x84A1 #CJK UNIFIED IDEOGRAPH +0xDDC5 0x868C #CJK UNIFIED IDEOGRAPH +0xDDC6 0x8A2A #CJK UNIFIED IDEOGRAPH +0xDDC7 0x8B17 #CJK UNIFIED IDEOGRAPH +0xDDC8 0x90A6 #CJK UNIFIED IDEOGRAPH +0xDDC9 0x9632 #CJK UNIFIED IDEOGRAPH +0xDDCA 0x9F90 #CJK UNIFIED IDEOGRAPH +0xDDCB 0x5E61 #CJK UNIFIED IDEOGRAPH +0xDDCC 0x6A0A #CJK UNIFIED IDEOGRAPH +0xDDCD 0x7169 #CJK UNIFIED IDEOGRAPH +0xDDCE 0x71D4 #CJK UNIFIED IDEOGRAPH +0xDDCF 0x756A #CJK UNIFIED IDEOGRAPH +0xDDD0 0x7E41 #CJK UNIFIED IDEOGRAPH +0xDDD1 0x8543 #CJK UNIFIED IDEOGRAPH +0xDDD2 0x85E9 #CJK UNIFIED IDEOGRAPH +0xDDD3 0x98DC #CJK UNIFIED IDEOGRAPH +0xDDD4 0x4F10 #CJK UNIFIED IDEOGRAPH +0xDDD5 0x7B4F #CJK UNIFIED IDEOGRAPH +0xDDD6 0x7F70 #CJK UNIFIED IDEOGRAPH +0xDDD7 0x95A5 #CJK UNIFIED IDEOGRAPH +0xDDD8 0x51E1 #CJK UNIFIED IDEOGRAPH +0xDDD9 0x5E06 #CJK UNIFIED IDEOGRAPH +0xDDDA 0x68B5 #CJK UNIFIED IDEOGRAPH +0xDDDB 0x6C3E #CJK UNIFIED IDEOGRAPH +0xDDDC 0x6C4E #CJK UNIFIED IDEOGRAPH +0xDDDD 0x6CDB #CJK UNIFIED IDEOGRAPH +0xDDDE 0x72AF #CJK UNIFIED IDEOGRAPH +0xDDDF 0x7BC4 #CJK UNIFIED IDEOGRAPH +0xDDE0 0x8303 #CJK UNIFIED IDEOGRAPH +0xDDE1 0x6CD5 #CJK UNIFIED IDEOGRAPH +0xDDE2 0x743A #CJK UNIFIED IDEOGRAPH +0xDDE3 0x50FB #CJK UNIFIED IDEOGRAPH +0xDDE4 0x5288 #CJK UNIFIED IDEOGRAPH +0xDDE5 0x58C1 #CJK UNIFIED IDEOGRAPH +0xDDE6 0x64D8 #CJK UNIFIED IDEOGRAPH +0xDDE7 0x6A97 #CJK UNIFIED IDEOGRAPH +0xDDE8 0x74A7 #CJK UNIFIED IDEOGRAPH +0xDDE9 0x7656 #CJK UNIFIED IDEOGRAPH +0xDDEA 0x78A7 #CJK UNIFIED IDEOGRAPH +0xDDEB 0x8617 #CJK UNIFIED IDEOGRAPH +0xDDEC 0x95E2 #CJK UNIFIED IDEOGRAPH +0xDDED 0x9739 #CJK UNIFIED IDEOGRAPH +0xDDEE 0x535E #CJK UNIFIED IDEOGRAPH +0xDDEF 0x5F01 #CJK UNIFIED IDEOGRAPH +0xDDF0 0x5FA7 #CJK UNIFIED IDEOGRAPH +0xDDF1 0x8B8A #CJK UNIFIED IDEOGRAPH +0xDDF2 0x8FA8 #CJK UNIFIED IDEOGRAPH +0xDDF3 0x8FAF #CJK UNIFIED IDEOGRAPH +0xDDF4 0x908A #CJK UNIFIED IDEOGRAPH +0xDDF5 0x5225 #CJK UNIFIED IDEOGRAPH +0xDDF6 0x77A5 #CJK UNIFIED IDEOGRAPH +0xDDF7 0x9C49 #CJK UNIFIED IDEOGRAPH +0xDDF8 0x9F08 #CJK UNIFIED IDEOGRAPH +0xDDF9 0x4E19 #CJK UNIFIED IDEOGRAPH +0xDDFA 0x5002 #CJK UNIFIED IDEOGRAPH +0xDDFB 0x5175 #CJK UNIFIED IDEOGRAPH +0xDDFC 0x5C5B #CJK UNIFIED IDEOGRAPH +0xDDFD 0x5E77 #CJK UNIFIED IDEOGRAPH +0xDDFE 0x661E #CJK UNIFIED IDEOGRAPH +0xDEA1 0x663A #CJK UNIFIED IDEOGRAPH +0xDEA2 0x67C4 #CJK UNIFIED IDEOGRAPH +0xDEA3 0x68C5 #CJK UNIFIED IDEOGRAPH +0xDEA4 0x70B3 #CJK UNIFIED IDEOGRAPH +0xDEA5 0x7501 #CJK UNIFIED IDEOGRAPH +0xDEA6 0x75C5 #CJK UNIFIED IDEOGRAPH +0xDEA7 0x79C9 #CJK UNIFIED IDEOGRAPH +0xDEA8 0x7ADD #CJK UNIFIED IDEOGRAPH +0xDEA9 0x8F27 #CJK UNIFIED IDEOGRAPH +0xDEAA 0x9920 #CJK UNIFIED IDEOGRAPH +0xDEAB 0x9A08 #CJK UNIFIED IDEOGRAPH +0xDEAC 0x4FDD #CJK UNIFIED IDEOGRAPH +0xDEAD 0x5831 #CJK UNIFIED IDEOGRAPH +0xDEAE 0x5821 #CJK UNIFIED IDEOGRAPH +0xDEAF 0x5BF6 #CJK UNIFIED IDEOGRAPH +0xDEB0 0x666E #CJK UNIFIED IDEOGRAPH +0xDEB1 0x6B65 #CJK UNIFIED IDEOGRAPH +0xDEB2 0x6E7A #CJK UNIFIED IDEOGRAPH +0xDEB3 0x6F7D #CJK UNIFIED IDEOGRAPH +0xDEB4 0x73E4 #CJK UNIFIED IDEOGRAPH +0xDEB5 0x752B #CJK UNIFIED IDEOGRAPH +0xDEB6 0x83E9 #CJK UNIFIED IDEOGRAPH +0xDEB7 0x88DC #CJK UNIFIED IDEOGRAPH +0xDEB8 0x8913 #CJK UNIFIED IDEOGRAPH +0xDEB9 0x8B5C #CJK UNIFIED IDEOGRAPH +0xDEBA 0x8F14 #CJK UNIFIED IDEOGRAPH +0xDEBB 0x4F0F #CJK UNIFIED IDEOGRAPH +0xDEBC 0x50D5 #CJK UNIFIED IDEOGRAPH +0xDEBD 0x5310 #CJK UNIFIED IDEOGRAPH +0xDEBE 0x535C #CJK UNIFIED IDEOGRAPH +0xDEBF 0x5B93 #CJK UNIFIED IDEOGRAPH +0xDEC0 0x5FA9 #CJK UNIFIED IDEOGRAPH +0xDEC1 0x670D #CJK UNIFIED IDEOGRAPH +0xDEC2 0x6D11 #CJK UNIFIED IDEOGRAPH +0xDEC3 0x798F #CJK UNIFIED IDEOGRAPH +0xDEC4 0x8179 #CJK UNIFIED IDEOGRAPH +0xDEC5 0x832F #CJK UNIFIED IDEOGRAPH +0xDEC6 0x8514 #CJK UNIFIED IDEOGRAPH +0xDEC7 0x8907 #CJK UNIFIED IDEOGRAPH +0xDEC8 0x8986 #CJK UNIFIED IDEOGRAPH +0xDEC9 0x8F39 #CJK UNIFIED IDEOGRAPH +0xDECA 0x99A5 #CJK UNIFIED IDEOGRAPH +0xDECB 0x9C12 #CJK UNIFIED IDEOGRAPH +0xDECC 0x672C #CJK UNIFIED IDEOGRAPH +0xDECD 0x4E76 #CJK UNIFIED IDEOGRAPH +0xDECE 0x4E30 #CJK UNIFIED IDEOGRAPH +0xDECF 0x4FF8 #CJK UNIFIED IDEOGRAPH +0xDED0 0x5949 #CJK UNIFIED IDEOGRAPH +0xDED1 0x5C01 #CJK UNIFIED IDEOGRAPH +0xDED2 0x5CEF #CJK UNIFIED IDEOGRAPH +0xDED3 0x5CF0 #CJK UNIFIED IDEOGRAPH +0xDED4 0x6367 #CJK UNIFIED IDEOGRAPH +0xDED5 0x68D2 #CJK UNIFIED IDEOGRAPH +0xDED6 0x70FD #CJK UNIFIED IDEOGRAPH +0xDED7 0x71A2 #CJK UNIFIED IDEOGRAPH +0xDED8 0x742B #CJK UNIFIED IDEOGRAPH +0xDED9 0x7E2B #CJK UNIFIED IDEOGRAPH +0xDEDA 0x84EC #CJK UNIFIED IDEOGRAPH +0xDEDB 0x8702 #CJK UNIFIED IDEOGRAPH +0xDEDC 0x9022 #CJK UNIFIED IDEOGRAPH +0xDEDD 0x92D2 #CJK UNIFIED IDEOGRAPH +0xDEDE 0x9CF3 #CJK UNIFIED IDEOGRAPH +0xDEDF 0x4ED8 #CJK UNIFIED IDEOGRAPH +0xDEE0 0x4FEF #CJK UNIFIED IDEOGRAPH +0xDEE1 0x5085 #CJK UNIFIED IDEOGRAPH +0xDEE2 0x5256 #CJK UNIFIED IDEOGRAPH +0xDEE3 0x526F #CJK UNIFIED IDEOGRAPH +0xDEE4 0x5426 #CJK UNIFIED IDEOGRAPH +0xDEE5 0x5490 #CJK UNIFIED IDEOGRAPH +0xDEE6 0x57E0 #CJK UNIFIED IDEOGRAPH +0xDEE7 0x592B #CJK UNIFIED IDEOGRAPH +0xDEE8 0x5A66 #CJK UNIFIED IDEOGRAPH +0xDEE9 0x5B5A #CJK UNIFIED IDEOGRAPH +0xDEEA 0x5B75 #CJK UNIFIED IDEOGRAPH +0xDEEB 0x5BCC #CJK UNIFIED IDEOGRAPH +0xDEEC 0x5E9C #CJK UNIFIED IDEOGRAPH +0xDEED 0x6276 #CJK UNIFIED IDEOGRAPH +0xDEEE 0x6577 #CJK UNIFIED IDEOGRAPH +0xDEEF 0x65A7 #CJK UNIFIED IDEOGRAPH +0xDEF0 0x6D6E #CJK UNIFIED IDEOGRAPH +0xDEF1 0x6EA5 #CJK UNIFIED IDEOGRAPH +0xDEF2 0x7236 #CJK UNIFIED IDEOGRAPH +0xDEF3 0x7B26 #CJK UNIFIED IDEOGRAPH +0xDEF4 0x7C3F #CJK UNIFIED IDEOGRAPH +0xDEF5 0x7F36 #CJK UNIFIED IDEOGRAPH +0xDEF6 0x8150 #CJK UNIFIED IDEOGRAPH +0xDEF7 0x8151 #CJK UNIFIED IDEOGRAPH +0xDEF8 0x819A #CJK UNIFIED IDEOGRAPH +0xDEF9 0x8240 #CJK UNIFIED IDEOGRAPH +0xDEFA 0x8299 #CJK UNIFIED IDEOGRAPH +0xDEFB 0x83A9 #CJK UNIFIED IDEOGRAPH +0xDEFC 0x8A03 #CJK UNIFIED IDEOGRAPH +0xDEFD 0x8CA0 #CJK UNIFIED IDEOGRAPH +0xDEFE 0x8CE6 #CJK UNIFIED IDEOGRAPH +0xDFA1 0x8CFB #CJK UNIFIED IDEOGRAPH +0xDFA2 0x8D74 #CJK UNIFIED IDEOGRAPH +0xDFA3 0x8DBA #CJK UNIFIED IDEOGRAPH +0xDFA4 0x90E8 #CJK UNIFIED IDEOGRAPH +0xDFA5 0x91DC #CJK UNIFIED IDEOGRAPH +0xDFA6 0x961C #CJK UNIFIED IDEOGRAPH +0xDFA7 0x9644 #CJK UNIFIED IDEOGRAPH +0xDFA8 0x99D9 #CJK UNIFIED IDEOGRAPH +0xDFA9 0x9CE7 #CJK UNIFIED IDEOGRAPH +0xDFAA 0x5317 #CJK UNIFIED IDEOGRAPH +0xDFAB 0x5206 #CJK UNIFIED IDEOGRAPH +0xDFAC 0x5429 #CJK UNIFIED IDEOGRAPH +0xDFAD 0x5674 #CJK UNIFIED IDEOGRAPH +0xDFAE 0x58B3 #CJK UNIFIED IDEOGRAPH +0xDFAF 0x5954 #CJK UNIFIED IDEOGRAPH +0xDFB0 0x596E #CJK UNIFIED IDEOGRAPH +0xDFB1 0x5FFF #CJK UNIFIED IDEOGRAPH +0xDFB2 0x61A4 #CJK UNIFIED IDEOGRAPH +0xDFB3 0x626E #CJK UNIFIED IDEOGRAPH +0xDFB4 0x6610 #CJK UNIFIED IDEOGRAPH +0xDFB5 0x6C7E #CJK UNIFIED IDEOGRAPH +0xDFB6 0x711A #CJK UNIFIED IDEOGRAPH +0xDFB7 0x76C6 #CJK UNIFIED IDEOGRAPH +0xDFB8 0x7C89 #CJK UNIFIED IDEOGRAPH +0xDFB9 0x7CDE #CJK UNIFIED IDEOGRAPH +0xDFBA 0x7D1B #CJK UNIFIED IDEOGRAPH +0xDFBB 0x82AC #CJK UNIFIED IDEOGRAPH +0xDFBC 0x8CC1 #CJK UNIFIED IDEOGRAPH +0xDFBD 0x96F0 #CJK UNIFIED IDEOGRAPH +0xDFBE 0x4E0D #CJK UNIFIED IDEOGRAPH +0xDFBF 0x4F5B #CJK UNIFIED IDEOGRAPH +0xDFC0 0x5F17 #CJK UNIFIED IDEOGRAPH +0xDFC1 0x5F7F #CJK UNIFIED IDEOGRAPH +0xDFC2 0x62C2 #CJK UNIFIED IDEOGRAPH +0xDFC3 0x5D29 #CJK UNIFIED IDEOGRAPH +0xDFC4 0x670B #CJK UNIFIED IDEOGRAPH +0xDFC5 0x68DA #CJK UNIFIED IDEOGRAPH +0xDFC6 0x787C #CJK UNIFIED IDEOGRAPH +0xDFC7 0x7E43 #CJK UNIFIED IDEOGRAPH +0xDFC8 0x9D6C #CJK UNIFIED IDEOGRAPH +0xDFC9 0x4E15 #CJK UNIFIED IDEOGRAPH +0xDFCA 0x5099 #CJK UNIFIED IDEOGRAPH +0xDFCB 0x5315 #CJK UNIFIED IDEOGRAPH +0xDFCC 0x532A #CJK UNIFIED IDEOGRAPH +0xDFCD 0x5351 #CJK UNIFIED IDEOGRAPH +0xDFCE 0x5983 #CJK UNIFIED IDEOGRAPH +0xDFCF 0x5A62 #CJK UNIFIED IDEOGRAPH +0xDFD0 0x5E87 #CJK UNIFIED IDEOGRAPH +0xDFD1 0x60B2 #CJK UNIFIED IDEOGRAPH +0xDFD2 0x618A #CJK UNIFIED IDEOGRAPH +0xDFD3 0x6249 #CJK UNIFIED IDEOGRAPH +0xDFD4 0x6279 #CJK UNIFIED IDEOGRAPH +0xDFD5 0x6590 #CJK UNIFIED IDEOGRAPH +0xDFD6 0x6787 #CJK UNIFIED IDEOGRAPH +0xDFD7 0x69A7 #CJK UNIFIED IDEOGRAPH +0xDFD8 0x6BD4 #CJK UNIFIED IDEOGRAPH +0xDFD9 0x6BD6 #CJK UNIFIED IDEOGRAPH +0xDFDA 0x6BD7 #CJK UNIFIED IDEOGRAPH +0xDFDB 0x6BD8 #CJK UNIFIED IDEOGRAPH +0xDFDC 0x6CB8 #CJK UNIFIED IDEOGRAPH +0xDFDD 0x6CCC #CJK UNIFIED IDEOGRAPH +0xDFDE 0x7435 #CJK UNIFIED IDEOGRAPH +0xDFDF 0x75FA #CJK UNIFIED IDEOGRAPH +0xDFE0 0x7812 #CJK UNIFIED IDEOGRAPH +0xDFE1 0x7891 #CJK UNIFIED IDEOGRAPH +0xDFE2 0x79D5 #CJK UNIFIED IDEOGRAPH +0xDFE3 0x79D8 #CJK UNIFIED IDEOGRAPH +0xDFE4 0x7C83 #CJK UNIFIED IDEOGRAPH +0xDFE5 0x7DCB #CJK UNIFIED IDEOGRAPH +0xDFE6 0x7FE1 #CJK UNIFIED IDEOGRAPH +0xDFE7 0x80A5 #CJK UNIFIED IDEOGRAPH +0xDFE8 0x813E #CJK UNIFIED IDEOGRAPH +0xDFE9 0x81C2 #CJK UNIFIED IDEOGRAPH +0xDFEA 0x83F2 #CJK UNIFIED IDEOGRAPH +0xDFEB 0x871A #CJK UNIFIED IDEOGRAPH +0xDFEC 0x88E8 #CJK UNIFIED IDEOGRAPH +0xDFED 0x8AB9 #CJK UNIFIED IDEOGRAPH +0xDFEE 0x8B6C #CJK UNIFIED IDEOGRAPH +0xDFEF 0x8CBB #CJK UNIFIED IDEOGRAPH +0xDFF0 0x9119 #CJK UNIFIED IDEOGRAPH +0xDFF1 0x975E #CJK UNIFIED IDEOGRAPH +0xDFF2 0x98DB #CJK UNIFIED IDEOGRAPH +0xDFF3 0x9F3B #CJK UNIFIED IDEOGRAPH +0xDFF4 0x56AC #CJK UNIFIED IDEOGRAPH +0xDFF5 0x5B2A #CJK UNIFIED IDEOGRAPH +0xDFF6 0x5F6C #CJK UNIFIED IDEOGRAPH +0xDFF7 0x658C #CJK UNIFIED IDEOGRAPH +0xDFF8 0x6AB3 #CJK UNIFIED IDEOGRAPH +0xDFF9 0x6BAF #CJK UNIFIED IDEOGRAPH +0xDFFA 0x6D5C #CJK UNIFIED IDEOGRAPH +0xDFFB 0x6FF1 #CJK UNIFIED IDEOGRAPH +0xDFFC 0x7015 #CJK UNIFIED IDEOGRAPH +0xDFFD 0x725D #CJK UNIFIED IDEOGRAPH +0xDFFE 0x73AD #CJK UNIFIED IDEOGRAPH +0xE0A1 0x8CA7 #CJK UNIFIED IDEOGRAPH +0xE0A2 0x8CD3 #CJK UNIFIED IDEOGRAPH +0xE0A3 0x8D07 #CJK UNIFIED IDEOGRAPH +0xE0A4 0x983B #CJK UNIFIED IDEOGRAPH +0xE0A5 0x6C37 #CJK UNIFIED IDEOGRAPH +0xE0A6 0x6191 #CJK UNIFIED IDEOGRAPH +0xE0A7 0x8058 #CJK UNIFIED IDEOGRAPH +0xE0A8 0x99AE #CJK UNIFIED IDEOGRAPH +0xE0A9 0x9A01 #CJK UNIFIED IDEOGRAPH +0xE0AA 0x500D #CJK UNIFIED IDEOGRAPH +0xE0AB 0x4FF3 #CJK UNIFIED IDEOGRAPH +0xE0AC 0x57F9 #CJK UNIFIED IDEOGRAPH +0xE0AD 0x5F98 #CJK UNIFIED IDEOGRAPH +0xE0AE 0x62DC #CJK UNIFIED IDEOGRAPH +0xE0AF 0x6392 #CJK UNIFIED IDEOGRAPH +0xE0B0 0x676F #CJK UNIFIED IDEOGRAPH +0xE0B1 0x6E43 #CJK UNIFIED IDEOGRAPH +0xE0B2 0x7119 #CJK UNIFIED IDEOGRAPH +0xE0B3 0x76C3 #CJK UNIFIED IDEOGRAPH +0xE0B4 0x80CC #CJK UNIFIED IDEOGRAPH +0xE0B5 0x80DA #CJK UNIFIED IDEOGRAPH +0xE0B6 0x88F4 #CJK UNIFIED IDEOGRAPH +0xE0B7 0x88F5 #CJK UNIFIED IDEOGRAPH +0xE0B8 0x8919 #CJK UNIFIED IDEOGRAPH +0xE0B9 0x8CE0 #CJK UNIFIED IDEOGRAPH +0xE0BA 0x8F29 #CJK UNIFIED IDEOGRAPH +0xE0BB 0x914D #CJK UNIFIED IDEOGRAPH +0xE0BC 0x966A #CJK UNIFIED IDEOGRAPH +0xE0BD 0x4F2F #CJK UNIFIED IDEOGRAPH +0xE0BE 0x4F70 #CJK UNIFIED IDEOGRAPH +0xE0BF 0x5E1B #CJK UNIFIED IDEOGRAPH +0xE0C0 0x67CF #CJK UNIFIED IDEOGRAPH +0xE0C1 0x6822 #CJK UNIFIED IDEOGRAPH +0xE0C2 0x767D #CJK UNIFIED IDEOGRAPH +0xE0C3 0x767E #CJK UNIFIED IDEOGRAPH +0xE0C4 0x9B44 #CJK UNIFIED IDEOGRAPH +0xE0C5 0x4E4D #CJK UNIFIED IDEOGRAPH +0xE0C6 0x4E8B #CJK UNIFIED IDEOGRAPH +0xE0C7 0x4E9B #CJK UNIFIED IDEOGRAPH +0xE0C8 0x4ED5 #CJK UNIFIED IDEOGRAPH +0xE0C9 0x4F3A #CJK UNIFIED IDEOGRAPH +0xE0CA 0x4F3C #CJK UNIFIED IDEOGRAPH +0xE0CB 0x4F7F #CJK UNIFIED IDEOGRAPH +0xE0CC 0x4FDF #CJK UNIFIED IDEOGRAPH +0xE0CD 0x53F2 #CJK UNIFIED IDEOGRAPH +0xE0CE 0x53F8 #CJK UNIFIED IDEOGRAPH +0xE0CF 0x5506 #CJK UNIFIED IDEOGRAPH +0xE0D0 0x55E3 #CJK UNIFIED IDEOGRAPH +0xE0D1 0x56DB #CJK UNIFIED IDEOGRAPH +0xE0D2 0x58EB #CJK UNIFIED IDEOGRAPH +0xE0D3 0x5962 #CJK UNIFIED IDEOGRAPH +0xE0D4 0x5A11 #CJK UNIFIED IDEOGRAPH +0xE0D5 0x5BEB #CJK UNIFIED IDEOGRAPH +0xE0D6 0x5BFA #CJK UNIFIED IDEOGRAPH +0xE0D7 0x5C04 #CJK UNIFIED IDEOGRAPH +0xE0D8 0x5DF3 #CJK UNIFIED IDEOGRAPH +0xE0D9 0x5E2B #CJK UNIFIED IDEOGRAPH +0xE0DA 0x5F99 #CJK UNIFIED IDEOGRAPH +0xE0DB 0x601D #CJK UNIFIED IDEOGRAPH +0xE0DC 0x6368 #CJK UNIFIED IDEOGRAPH +0xE0DD 0x659C #CJK UNIFIED IDEOGRAPH +0xE0DE 0x65AF #CJK UNIFIED IDEOGRAPH +0xE0DF 0x67F6 #CJK UNIFIED IDEOGRAPH +0xE0E0 0x67FB #CJK UNIFIED IDEOGRAPH +0xE0E1 0x68AD #CJK UNIFIED IDEOGRAPH +0xE0E2 0x6B7B #CJK UNIFIED IDEOGRAPH +0xE0E3 0x6C99 #CJK UNIFIED IDEOGRAPH +0xE0E4 0x6CD7 #CJK UNIFIED IDEOGRAPH +0xE0E5 0x6E23 #CJK UNIFIED IDEOGRAPH +0xE0E6 0x7009 #CJK UNIFIED IDEOGRAPH +0xE0E7 0x7345 #CJK UNIFIED IDEOGRAPH +0xE0E8 0x7802 #CJK UNIFIED IDEOGRAPH +0xE0E9 0x793E #CJK UNIFIED IDEOGRAPH +0xE0EA 0x7940 #CJK UNIFIED IDEOGRAPH +0xE0EB 0x7960 #CJK UNIFIED IDEOGRAPH +0xE0EC 0x79C1 #CJK UNIFIED IDEOGRAPH +0xE0ED 0x7BE9 #CJK UNIFIED IDEOGRAPH +0xE0EE 0x7D17 #CJK UNIFIED IDEOGRAPH +0xE0EF 0x7D72 #CJK UNIFIED IDEOGRAPH +0xE0F0 0x8086 #CJK UNIFIED IDEOGRAPH +0xE0F1 0x820D #CJK UNIFIED IDEOGRAPH +0xE0F2 0x838E #CJK UNIFIED IDEOGRAPH +0xE0F3 0x84D1 #CJK UNIFIED IDEOGRAPH +0xE0F4 0x86C7 #CJK UNIFIED IDEOGRAPH +0xE0F5 0x88DF #CJK UNIFIED IDEOGRAPH +0xE0F6 0x8A5E #CJK UNIFIED IDEOGRAPH +0xE0F7 0x8A50 #CJK UNIFIED IDEOGRAPH +0xE0F8 0x8B1D #CJK UNIFIED IDEOGRAPH +0xE0F9 0x8CDC #CJK UNIFIED IDEOGRAPH +0xE0FA 0x8D66 #CJK UNIFIED IDEOGRAPH +0xE0FB 0x8FAD #CJK UNIFIED IDEOGRAPH +0xE0FC 0x90AA #CJK UNIFIED IDEOGRAPH +0xE0FD 0x98FC #CJK UNIFIED IDEOGRAPH +0xE0FE 0x99DF #CJK UNIFIED IDEOGRAPH +0xE1A1 0x9E9D #CJK UNIFIED IDEOGRAPH +0xE1A2 0x524A #CJK UNIFIED IDEOGRAPH +0xE1A3 0x6714 #CJK UNIFIED IDEOGRAPH +0xE1A4 0x5098 #CJK UNIFIED IDEOGRAPH +0xE1A5 0x522A #CJK UNIFIED IDEOGRAPH +0xE1A6 0x5C71 #CJK UNIFIED IDEOGRAPH +0xE1A7 0x6563 #CJK UNIFIED IDEOGRAPH +0xE1A8 0x6C55 #CJK UNIFIED IDEOGRAPH +0xE1A9 0x73CA #CJK UNIFIED IDEOGRAPH +0xE1AA 0x7523 #CJK UNIFIED IDEOGRAPH +0xE1AB 0x759D #CJK UNIFIED IDEOGRAPH +0xE1AC 0x7B97 #CJK UNIFIED IDEOGRAPH +0xE1AD 0x849C #CJK UNIFIED IDEOGRAPH +0xE1AE 0x9178 #CJK UNIFIED IDEOGRAPH +0xE1AF 0x9730 #CJK UNIFIED IDEOGRAPH +0xE1B0 0x4E77 #CJK UNIFIED IDEOGRAPH +0xE1B1 0x6492 #CJK UNIFIED IDEOGRAPH +0xE1B2 0x6BBA #CJK UNIFIED IDEOGRAPH +0xE1B3 0x715E #CJK UNIFIED IDEOGRAPH +0xE1B4 0x85A9 #CJK UNIFIED IDEOGRAPH +0xE1B5 0x4E09 #CJK UNIFIED IDEOGRAPH +0xE1B6 0x6749 #CJK UNIFIED IDEOGRAPH +0xE1B7 0x68EE #CJK UNIFIED IDEOGRAPH +0xE1B8 0x6EF2 #CJK UNIFIED IDEOGRAPH +0xE1B9 0x829F #CJK UNIFIED IDEOGRAPH +0xE1BA 0x8518 #CJK UNIFIED IDEOGRAPH +0xE1BB 0x886B #CJK UNIFIED IDEOGRAPH +0xE1BC 0x63F7 #CJK UNIFIED IDEOGRAPH +0xE1BD 0x6F81 #CJK UNIFIED IDEOGRAPH +0xE1BE 0x970E #CJK UNIFIED IDEOGRAPH +0xE1BF 0x9212 #CJK UNIFIED IDEOGRAPH +0xE1C0 0x9364 #CJK UNIFIED IDEOGRAPH +0xE1C1 0x98AF #CJK UNIFIED IDEOGRAPH +0xE1C2 0x4E0A #CJK UNIFIED IDEOGRAPH +0xE1C3 0x50B7 #CJK UNIFIED IDEOGRAPH +0xE1C4 0x50CF #CJK UNIFIED IDEOGRAPH +0xE1C5 0x511F #CJK UNIFIED IDEOGRAPH +0xE1C6 0x5546 #CJK UNIFIED IDEOGRAPH +0xE1C7 0x55AA #CJK UNIFIED IDEOGRAPH +0xE1C8 0x5617 #CJK UNIFIED IDEOGRAPH +0xE1C9 0x5B40 #CJK UNIFIED IDEOGRAPH +0xE1CA 0x5C19 #CJK UNIFIED IDEOGRAPH +0xE1CB 0x5CE0 #CJK UNIFIED IDEOGRAPH +0xE1CC 0x5E38 #CJK UNIFIED IDEOGRAPH +0xE1CD 0x5E8A #CJK UNIFIED IDEOGRAPH +0xE1CE 0x5EA0 #CJK UNIFIED IDEOGRAPH +0xE1CF 0x5EC2 #CJK UNIFIED IDEOGRAPH +0xE1D0 0x60F3 #CJK UNIFIED IDEOGRAPH +0xE1D1 0x6851 #CJK UNIFIED IDEOGRAPH +0xE1D2 0x6A61 #CJK UNIFIED IDEOGRAPH +0xE1D3 0x6E58 #CJK UNIFIED IDEOGRAPH +0xE1D4 0x723D #CJK UNIFIED IDEOGRAPH +0xE1D5 0x7240 #CJK UNIFIED IDEOGRAPH +0xE1D6 0x72C0 #CJK UNIFIED IDEOGRAPH +0xE1D7 0x76F8 #CJK UNIFIED IDEOGRAPH +0xE1D8 0x7965 #CJK UNIFIED IDEOGRAPH +0xE1D9 0x7BB1 #CJK UNIFIED IDEOGRAPH +0xE1DA 0x7FD4 #CJK UNIFIED IDEOGRAPH +0xE1DB 0x88F3 #CJK UNIFIED IDEOGRAPH +0xE1DC 0x89F4 #CJK UNIFIED IDEOGRAPH +0xE1DD 0x8A73 #CJK UNIFIED IDEOGRAPH +0xE1DE 0x8C61 #CJK UNIFIED IDEOGRAPH +0xE1DF 0x8CDE #CJK UNIFIED IDEOGRAPH +0xE1E0 0x971C #CJK UNIFIED IDEOGRAPH +0xE1E1 0x5885 #CJK UNIFIED IDEOGRAPH +0xE1E2 0x58FB #CJK UNIFIED IDEOGRAPH +0xE1E3 0x5DBC #CJK UNIFIED IDEOGRAPH +0xE1E4 0x5E8F #CJK UNIFIED IDEOGRAPH +0xE1E5 0x5EB6 #CJK UNIFIED IDEOGRAPH +0xE1E6 0x5F90 #CJK UNIFIED IDEOGRAPH +0xE1E7 0x6055 #CJK UNIFIED IDEOGRAPH +0xE1E8 0x6292 #CJK UNIFIED IDEOGRAPH +0xE1E9 0x637F #CJK UNIFIED IDEOGRAPH +0xE1EA 0x654D #CJK UNIFIED IDEOGRAPH +0xE1EB 0x6691 #CJK UNIFIED IDEOGRAPH +0xE1EC 0x66D9 #CJK UNIFIED IDEOGRAPH +0xE1ED 0x66F8 #CJK UNIFIED IDEOGRAPH +0xE1EE 0x6816 #CJK UNIFIED IDEOGRAPH +0xE1EF 0x68F2 #CJK UNIFIED IDEOGRAPH +0xE1F0 0x7280 #CJK UNIFIED IDEOGRAPH +0xE1F1 0x745E #CJK UNIFIED IDEOGRAPH +0xE1F2 0x7B6E #CJK UNIFIED IDEOGRAPH +0xE1F3 0x7D6E #CJK UNIFIED IDEOGRAPH +0xE1F4 0x7DD6 #CJK UNIFIED IDEOGRAPH +0xE1F5 0x7F72 #CJK UNIFIED IDEOGRAPH +0xE1F6 0x80E5 #CJK UNIFIED IDEOGRAPH +0xE1F7 0x8212 #CJK UNIFIED IDEOGRAPH +0xE1F8 0x85AF #CJK UNIFIED IDEOGRAPH +0xE1F9 0x897F #CJK UNIFIED IDEOGRAPH +0xE1FA 0x8A93 #CJK UNIFIED IDEOGRAPH +0xE1FB 0x901D #CJK UNIFIED IDEOGRAPH +0xE1FC 0x92E4 #CJK UNIFIED IDEOGRAPH +0xE1FD 0x9ECD #CJK UNIFIED IDEOGRAPH +0xE1FE 0x9F20 #CJK UNIFIED IDEOGRAPH +0xE2A1 0x5915 #CJK UNIFIED IDEOGRAPH +0xE2A2 0x596D #CJK UNIFIED IDEOGRAPH +0xE2A3 0x5E2D #CJK UNIFIED IDEOGRAPH +0xE2A4 0x60DC #CJK UNIFIED IDEOGRAPH +0xE2A5 0x6614 #CJK UNIFIED IDEOGRAPH +0xE2A6 0x6673 #CJK UNIFIED IDEOGRAPH +0xE2A7 0x6790 #CJK UNIFIED IDEOGRAPH +0xE2A8 0x6C50 #CJK UNIFIED IDEOGRAPH +0xE2A9 0x6DC5 #CJK UNIFIED IDEOGRAPH +0xE2AA 0x6F5F #CJK UNIFIED IDEOGRAPH +0xE2AB 0x77F3 #CJK UNIFIED IDEOGRAPH +0xE2AC 0x78A9 #CJK UNIFIED IDEOGRAPH +0xE2AD 0x84C6 #CJK UNIFIED IDEOGRAPH +0xE2AE 0x91CB #CJK UNIFIED IDEOGRAPH +0xE2AF 0x932B #CJK UNIFIED IDEOGRAPH +0xE2B0 0x4ED9 #CJK UNIFIED IDEOGRAPH +0xE2B1 0x50CA #CJK UNIFIED IDEOGRAPH +0xE2B2 0x5148 #CJK UNIFIED IDEOGRAPH +0xE2B3 0x5584 #CJK UNIFIED IDEOGRAPH +0xE2B4 0x5B0B #CJK UNIFIED IDEOGRAPH +0xE2B5 0x5BA3 #CJK UNIFIED IDEOGRAPH +0xE2B6 0x6247 #CJK UNIFIED IDEOGRAPH +0xE2B7 0x657E #CJK UNIFIED IDEOGRAPH +0xE2B8 0x65CB #CJK UNIFIED IDEOGRAPH +0xE2B9 0x6E32 #CJK UNIFIED IDEOGRAPH +0xE2BA 0x717D #CJK UNIFIED IDEOGRAPH +0xE2BB 0x7401 #CJK UNIFIED IDEOGRAPH +0xE2BC 0x7444 #CJK UNIFIED IDEOGRAPH +0xE2BD 0x7487 #CJK UNIFIED IDEOGRAPH +0xE2BE 0x74BF #CJK UNIFIED IDEOGRAPH +0xE2BF 0x766C #CJK UNIFIED IDEOGRAPH +0xE2C0 0x79AA #CJK UNIFIED IDEOGRAPH +0xE2C1 0x7DDA #CJK UNIFIED IDEOGRAPH +0xE2C2 0x7E55 #CJK UNIFIED IDEOGRAPH +0xE2C3 0x7FA8 #CJK UNIFIED IDEOGRAPH +0xE2C4 0x817A #CJK UNIFIED IDEOGRAPH +0xE2C5 0x81B3 #CJK UNIFIED IDEOGRAPH +0xE2C6 0x8239 #CJK UNIFIED IDEOGRAPH +0xE2C7 0x861A #CJK UNIFIED IDEOGRAPH +0xE2C8 0x87EC #CJK UNIFIED IDEOGRAPH +0xE2C9 0x8A75 #CJK UNIFIED IDEOGRAPH +0xE2CA 0x8DE3 #CJK UNIFIED IDEOGRAPH +0xE2CB 0x9078 #CJK UNIFIED IDEOGRAPH +0xE2CC 0x9291 #CJK UNIFIED IDEOGRAPH +0xE2CD 0x9425 #CJK UNIFIED IDEOGRAPH +0xE2CE 0x994D #CJK UNIFIED IDEOGRAPH +0xE2CF 0x9BAE #CJK UNIFIED IDEOGRAPH +0xE2D0 0x5368 #CJK UNIFIED IDEOGRAPH +0xE2D1 0x5C51 #CJK UNIFIED IDEOGRAPH +0xE2D2 0x6954 #CJK UNIFIED IDEOGRAPH +0xE2D3 0x6CC4 #CJK UNIFIED IDEOGRAPH +0xE2D4 0x6D29 #CJK UNIFIED IDEOGRAPH +0xE2D5 0x6E2B #CJK UNIFIED IDEOGRAPH +0xE2D6 0x820C #CJK UNIFIED IDEOGRAPH +0xE2D7 0x859B #CJK UNIFIED IDEOGRAPH +0xE2D8 0x893B #CJK UNIFIED IDEOGRAPH +0xE2D9 0x8A2D #CJK UNIFIED IDEOGRAPH +0xE2DA 0x8AAA #CJK UNIFIED IDEOGRAPH +0xE2DB 0x96EA #CJK UNIFIED IDEOGRAPH +0xE2DC 0x9F67 #CJK UNIFIED IDEOGRAPH +0xE2DD 0x5261 #CJK UNIFIED IDEOGRAPH +0xE2DE 0x66B9 #CJK UNIFIED IDEOGRAPH +0xE2DF 0x6BB2 #CJK UNIFIED IDEOGRAPH +0xE2E0 0x7E96 #CJK UNIFIED IDEOGRAPH +0xE2E1 0x87FE #CJK UNIFIED IDEOGRAPH +0xE2E2 0x8D0D #CJK UNIFIED IDEOGRAPH +0xE2E3 0x9583 #CJK UNIFIED IDEOGRAPH +0xE2E4 0x965D #CJK UNIFIED IDEOGRAPH +0xE2E5 0x651D #CJK UNIFIED IDEOGRAPH +0xE2E6 0x6D89 #CJK UNIFIED IDEOGRAPH +0xE2E7 0x71EE #CJK UNIFIED IDEOGRAPH +0xE2E8 0x57CE #CJK UNIFIED IDEOGRAPH +0xE2E9 0x59D3 #CJK UNIFIED IDEOGRAPH +0xE2EA 0x5BAC #CJK UNIFIED IDEOGRAPH +0xE2EB 0x6027 #CJK UNIFIED IDEOGRAPH +0xE2EC 0x60FA #CJK UNIFIED IDEOGRAPH +0xE2ED 0x6210 #CJK UNIFIED IDEOGRAPH +0xE2EE 0x661F #CJK UNIFIED IDEOGRAPH +0xE2EF 0x665F #CJK UNIFIED IDEOGRAPH +0xE2F0 0x7329 #CJK UNIFIED IDEOGRAPH +0xE2F1 0x73F9 #CJK UNIFIED IDEOGRAPH +0xE2F2 0x76DB #CJK UNIFIED IDEOGRAPH +0xE2F3 0x7701 #CJK UNIFIED IDEOGRAPH +0xE2F4 0x7B6C #CJK UNIFIED IDEOGRAPH +0xE2F5 0x8056 #CJK UNIFIED IDEOGRAPH +0xE2F6 0x8072 #CJK UNIFIED IDEOGRAPH +0xE2F7 0x8165 #CJK UNIFIED IDEOGRAPH +0xE2F8 0x8AA0 #CJK UNIFIED IDEOGRAPH +0xE2F9 0x9192 #CJK UNIFIED IDEOGRAPH +0xE2FA 0x53EC #CJK UNIFIED IDEOGRAPH +0xE2FB 0x562F #CJK UNIFIED IDEOGRAPH +0xE2FC 0x5851 #CJK UNIFIED IDEOGRAPH +0xE2FD 0x5BB5 #CJK UNIFIED IDEOGRAPH +0xE2FE 0x5C0F #CJK UNIFIED IDEOGRAPH +0xE3A1 0x5C11 #CJK UNIFIED IDEOGRAPH +0xE3A2 0x5DE2 #CJK UNIFIED IDEOGRAPH +0xE3A3 0x6240 #CJK UNIFIED IDEOGRAPH +0xE3A4 0x6383 #CJK UNIFIED IDEOGRAPH +0xE3A5 0x6414 #CJK UNIFIED IDEOGRAPH +0xE3A6 0x662D #CJK UNIFIED IDEOGRAPH +0xE3A7 0x68B3 #CJK UNIFIED IDEOGRAPH +0xE3A8 0x6CBC #CJK UNIFIED IDEOGRAPH +0xE3A9 0x6D88 #CJK UNIFIED IDEOGRAPH +0xE3AA 0x6EAF #CJK UNIFIED IDEOGRAPH +0xE3AB 0x701F #CJK UNIFIED IDEOGRAPH +0xE3AC 0x70A4 #CJK UNIFIED IDEOGRAPH +0xE3AD 0x71D2 #CJK UNIFIED IDEOGRAPH +0xE3AE 0x7526 #CJK UNIFIED IDEOGRAPH +0xE3AF 0x758F #CJK UNIFIED IDEOGRAPH +0xE3B0 0x758E #CJK UNIFIED IDEOGRAPH +0xE3B1 0x7619 #CJK UNIFIED IDEOGRAPH +0xE3B2 0x7B11 #CJK UNIFIED IDEOGRAPH +0xE3B3 0x7BE0 #CJK UNIFIED IDEOGRAPH +0xE3B4 0x7C2B #CJK UNIFIED IDEOGRAPH +0xE3B5 0x7D20 #CJK UNIFIED IDEOGRAPH +0xE3B6 0x7D39 #CJK UNIFIED IDEOGRAPH +0xE3B7 0x852C #CJK UNIFIED IDEOGRAPH +0xE3B8 0x856D #CJK UNIFIED IDEOGRAPH +0xE3B9 0x8607 #CJK UNIFIED IDEOGRAPH +0xE3BA 0x8A34 #CJK UNIFIED IDEOGRAPH +0xE3BB 0x900D #CJK UNIFIED IDEOGRAPH +0xE3BC 0x9061 #CJK UNIFIED IDEOGRAPH +0xE3BD 0x90B5 #CJK UNIFIED IDEOGRAPH +0xE3BE 0x92B7 #CJK UNIFIED IDEOGRAPH +0xE3BF 0x97F6 #CJK UNIFIED IDEOGRAPH +0xE3C0 0x9A37 #CJK UNIFIED IDEOGRAPH +0xE3C1 0x4FD7 #CJK UNIFIED IDEOGRAPH +0xE3C2 0x5C6C #CJK UNIFIED IDEOGRAPH +0xE3C3 0x675F #CJK UNIFIED IDEOGRAPH +0xE3C4 0x6D91 #CJK UNIFIED IDEOGRAPH +0xE3C5 0x7C9F #CJK UNIFIED IDEOGRAPH +0xE3C6 0x7E8C #CJK UNIFIED IDEOGRAPH +0xE3C7 0x8B16 #CJK UNIFIED IDEOGRAPH +0xE3C8 0x8D16 #CJK UNIFIED IDEOGRAPH +0xE3C9 0x901F #CJK UNIFIED IDEOGRAPH +0xE3CA 0x5B6B #CJK UNIFIED IDEOGRAPH +0xE3CB 0x5DFD #CJK UNIFIED IDEOGRAPH +0xE3CC 0x640D #CJK UNIFIED IDEOGRAPH +0xE3CD 0x84C0 #CJK UNIFIED IDEOGRAPH +0xE3CE 0x905C #CJK UNIFIED IDEOGRAPH +0xE3CF 0x98E1 #CJK UNIFIED IDEOGRAPH +0xE3D0 0x7387 #CJK UNIFIED IDEOGRAPH +0xE3D1 0x5B8B #CJK UNIFIED IDEOGRAPH +0xE3D2 0x609A #CJK UNIFIED IDEOGRAPH +0xE3D3 0x677E #CJK UNIFIED IDEOGRAPH +0xE3D4 0x6DDE #CJK UNIFIED IDEOGRAPH +0xE3D5 0x8A1F #CJK UNIFIED IDEOGRAPH +0xE3D6 0x8AA6 #CJK UNIFIED IDEOGRAPH +0xE3D7 0x9001 #CJK UNIFIED IDEOGRAPH +0xE3D8 0x980C #CJK UNIFIED IDEOGRAPH +0xE3D9 0x4FEE #CJK UNIFIED IDEOGRAPH +0xE3DA 0x53D7 #CJK UNIFIED IDEOGRAPH +0xE3DB 0x552E #CJK UNIFIED IDEOGRAPH +0xE3DC 0x55FD #CJK UNIFIED IDEOGRAPH +0xE3DD 0x56DA #CJK UNIFIED IDEOGRAPH +0xE3DE 0x5782 #CJK UNIFIED IDEOGRAPH +0xE3DF 0x58FD #CJK UNIFIED IDEOGRAPH +0xE3E0 0x5AC2 #CJK UNIFIED IDEOGRAPH +0xE3E1 0x5B88 #CJK UNIFIED IDEOGRAPH +0xE3E2 0x5CAB #CJK UNIFIED IDEOGRAPH +0xE3E3 0x5CC0 #CJK UNIFIED IDEOGRAPH +0xE3E4 0x5E25 #CJK UNIFIED IDEOGRAPH +0xE3E5 0x6101 #CJK UNIFIED IDEOGRAPH +0xE3E6 0x620D #CJK UNIFIED IDEOGRAPH +0xE3E7 0x624B #CJK UNIFIED IDEOGRAPH +0xE3E8 0x6388 #CJK UNIFIED IDEOGRAPH +0xE3E9 0x641C #CJK UNIFIED IDEOGRAPH +0xE3EA 0x6536 #CJK UNIFIED IDEOGRAPH +0xE3EB 0x6578 #CJK UNIFIED IDEOGRAPH +0xE3EC 0x6A39 #CJK UNIFIED IDEOGRAPH +0xE3ED 0x6B8A #CJK UNIFIED IDEOGRAPH +0xE3EE 0x6C34 #CJK UNIFIED IDEOGRAPH +0xE3EF 0x6D19 #CJK UNIFIED IDEOGRAPH +0xE3F0 0x6F31 #CJK UNIFIED IDEOGRAPH +0xE3F1 0x71E7 #CJK UNIFIED IDEOGRAPH +0xE3F2 0x72E9 #CJK UNIFIED IDEOGRAPH +0xE3F3 0x7378 #CJK UNIFIED IDEOGRAPH +0xE3F4 0x7407 #CJK UNIFIED IDEOGRAPH +0xE3F5 0x74B2 #CJK UNIFIED IDEOGRAPH +0xE3F6 0x7626 #CJK UNIFIED IDEOGRAPH +0xE3F7 0x7761 #CJK UNIFIED IDEOGRAPH +0xE3F8 0x79C0 #CJK UNIFIED IDEOGRAPH +0xE3F9 0x7A57 #CJK UNIFIED IDEOGRAPH +0xE3FA 0x7AEA #CJK UNIFIED IDEOGRAPH +0xE3FB 0x7CB9 #CJK UNIFIED IDEOGRAPH +0xE3FC 0x7D8F #CJK UNIFIED IDEOGRAPH +0xE3FD 0x7DAC #CJK UNIFIED IDEOGRAPH +0xE3FE 0x7E61 #CJK UNIFIED IDEOGRAPH +0xE4A1 0x7F9E #CJK UNIFIED IDEOGRAPH +0xE4A2 0x8129 #CJK UNIFIED IDEOGRAPH +0xE4A3 0x8331 #CJK UNIFIED IDEOGRAPH +0xE4A4 0x8490 #CJK UNIFIED IDEOGRAPH +0xE4A5 0x84DA #CJK UNIFIED IDEOGRAPH +0xE4A6 0x85EA #CJK UNIFIED IDEOGRAPH +0xE4A7 0x8896 #CJK UNIFIED IDEOGRAPH +0xE4A8 0x8AB0 #CJK UNIFIED IDEOGRAPH +0xE4A9 0x8B90 #CJK UNIFIED IDEOGRAPH +0xE4AA 0x8F38 #CJK UNIFIED IDEOGRAPH +0xE4AB 0x9042 #CJK UNIFIED IDEOGRAPH +0xE4AC 0x9083 #CJK UNIFIED IDEOGRAPH +0xE4AD 0x916C #CJK UNIFIED IDEOGRAPH +0xE4AE 0x9296 #CJK UNIFIED IDEOGRAPH +0xE4AF 0x92B9 #CJK UNIFIED IDEOGRAPH +0xE4B0 0x968B #CJK UNIFIED IDEOGRAPH +0xE4B1 0x96A7 #CJK UNIFIED IDEOGRAPH +0xE4B2 0x96A8 #CJK UNIFIED IDEOGRAPH +0xE4B3 0x96D6 #CJK UNIFIED IDEOGRAPH +0xE4B4 0x9700 #CJK UNIFIED IDEOGRAPH +0xE4B5 0x9808 #CJK UNIFIED IDEOGRAPH +0xE4B6 0x9996 #CJK UNIFIED IDEOGRAPH +0xE4B7 0x9AD3 #CJK UNIFIED IDEOGRAPH +0xE4B8 0x9B1A #CJK UNIFIED IDEOGRAPH +0xE4B9 0x53D4 #CJK UNIFIED IDEOGRAPH +0xE4BA 0x587E #CJK UNIFIED IDEOGRAPH +0xE4BB 0x5919 #CJK UNIFIED IDEOGRAPH +0xE4BC 0x5B70 #CJK UNIFIED IDEOGRAPH +0xE4BD 0x5BBF #CJK UNIFIED IDEOGRAPH +0xE4BE 0x6DD1 #CJK UNIFIED IDEOGRAPH +0xE4BF 0x6F5A #CJK UNIFIED IDEOGRAPH +0xE4C0 0x719F #CJK UNIFIED IDEOGRAPH +0xE4C1 0x7421 #CJK UNIFIED IDEOGRAPH +0xE4C2 0x74B9 #CJK UNIFIED IDEOGRAPH +0xE4C3 0x8085 #CJK UNIFIED IDEOGRAPH +0xE4C4 0x83FD #CJK UNIFIED IDEOGRAPH +0xE4C5 0x5DE1 #CJK UNIFIED IDEOGRAPH +0xE4C6 0x5F87 #CJK UNIFIED IDEOGRAPH +0xE4C7 0x5FAA #CJK UNIFIED IDEOGRAPH +0xE4C8 0x6042 #CJK UNIFIED IDEOGRAPH +0xE4C9 0x65EC #CJK UNIFIED IDEOGRAPH +0xE4CA 0x6812 #CJK UNIFIED IDEOGRAPH +0xE4CB 0x696F #CJK UNIFIED IDEOGRAPH +0xE4CC 0x6A53 #CJK UNIFIED IDEOGRAPH +0xE4CD 0x6B89 #CJK UNIFIED IDEOGRAPH +0xE4CE 0x6D35 #CJK UNIFIED IDEOGRAPH +0xE4CF 0x6DF3 #CJK UNIFIED IDEOGRAPH +0xE4D0 0x73E3 #CJK UNIFIED IDEOGRAPH +0xE4D1 0x76FE #CJK UNIFIED IDEOGRAPH +0xE4D2 0x77AC #CJK UNIFIED IDEOGRAPH +0xE4D3 0x7B4D #CJK UNIFIED IDEOGRAPH +0xE4D4 0x7D14 #CJK UNIFIED IDEOGRAPH +0xE4D5 0x8123 #CJK UNIFIED IDEOGRAPH +0xE4D6 0x821C #CJK UNIFIED IDEOGRAPH +0xE4D7 0x8340 #CJK UNIFIED IDEOGRAPH +0xE4D8 0x84F4 #CJK UNIFIED IDEOGRAPH +0xE4D9 0x8563 #CJK UNIFIED IDEOGRAPH +0xE4DA 0x8A62 #CJK UNIFIED IDEOGRAPH +0xE4DB 0x8AC4 #CJK UNIFIED IDEOGRAPH +0xE4DC 0x9187 #CJK UNIFIED IDEOGRAPH +0xE4DD 0x931E #CJK UNIFIED IDEOGRAPH +0xE4DE 0x9806 #CJK UNIFIED IDEOGRAPH +0xE4DF 0x99B4 #CJK UNIFIED IDEOGRAPH +0xE4E0 0x620C #CJK UNIFIED IDEOGRAPH +0xE4E1 0x8853 #CJK UNIFIED IDEOGRAPH +0xE4E2 0x8FF0 #CJK UNIFIED IDEOGRAPH +0xE4E3 0x9265 #CJK UNIFIED IDEOGRAPH +0xE4E4 0x5D07 #CJK UNIFIED IDEOGRAPH +0xE4E5 0x5D27 #CJK UNIFIED IDEOGRAPH +0xE4E6 0x5D69 #CJK UNIFIED IDEOGRAPH +0xE4E7 0x745F #CJK UNIFIED IDEOGRAPH +0xE4E8 0x819D #CJK UNIFIED IDEOGRAPH +0xE4E9 0x8768 #CJK UNIFIED IDEOGRAPH +0xE4EA 0x6FD5 #CJK UNIFIED IDEOGRAPH +0xE4EB 0x62FE #CJK UNIFIED IDEOGRAPH +0xE4EC 0x7FD2 #CJK UNIFIED IDEOGRAPH +0xE4ED 0x8936 #CJK UNIFIED IDEOGRAPH +0xE4EE 0x8972 #CJK UNIFIED IDEOGRAPH +0xE4EF 0x4E1E #CJK UNIFIED IDEOGRAPH +0xE4F0 0x4E58 #CJK UNIFIED IDEOGRAPH +0xE4F1 0x50E7 #CJK UNIFIED IDEOGRAPH +0xE4F2 0x52DD #CJK UNIFIED IDEOGRAPH +0xE4F3 0x5347 #CJK UNIFIED IDEOGRAPH +0xE4F4 0x627F #CJK UNIFIED IDEOGRAPH +0xE4F5 0x6607 #CJK UNIFIED IDEOGRAPH +0xE4F6 0x7E69 #CJK UNIFIED IDEOGRAPH +0xE4F7 0x8805 #CJK UNIFIED IDEOGRAPH +0xE4F8 0x965E #CJK UNIFIED IDEOGRAPH +0xE4F9 0x4F8D #CJK UNIFIED IDEOGRAPH +0xE4FA 0x5319 #CJK UNIFIED IDEOGRAPH +0xE4FB 0x5636 #CJK UNIFIED IDEOGRAPH +0xE4FC 0x59CB #CJK UNIFIED IDEOGRAPH +0xE4FD 0x5AA4 #CJK UNIFIED IDEOGRAPH +0xE4FE 0x5C38 #CJK UNIFIED IDEOGRAPH +0xE5A1 0x5C4E #CJK UNIFIED IDEOGRAPH +0xE5A2 0x5C4D #CJK UNIFIED IDEOGRAPH +0xE5A3 0x5E02 #CJK UNIFIED IDEOGRAPH +0xE5A4 0x5F11 #CJK UNIFIED IDEOGRAPH +0xE5A5 0x6043 #CJK UNIFIED IDEOGRAPH +0xE5A6 0x65BD #CJK UNIFIED IDEOGRAPH +0xE5A7 0x662F #CJK UNIFIED IDEOGRAPH +0xE5A8 0x6642 #CJK UNIFIED IDEOGRAPH +0xE5A9 0x676E #CJK UNIFIED IDEOGRAPH +0xE5AA 0x67F4 #CJK UNIFIED IDEOGRAPH +0xE5AB 0x731C #CJK UNIFIED IDEOGRAPH +0xE5AC 0x77E2 #CJK UNIFIED IDEOGRAPH +0xE5AD 0x793A #CJK UNIFIED IDEOGRAPH +0xE5AE 0x7FC5 #CJK UNIFIED IDEOGRAPH +0xE5AF 0x8494 #CJK UNIFIED IDEOGRAPH +0xE5B0 0x84CD #CJK UNIFIED IDEOGRAPH +0xE5B1 0x8996 #CJK UNIFIED IDEOGRAPH +0xE5B2 0x8A66 #CJK UNIFIED IDEOGRAPH +0xE5B3 0x8A69 #CJK UNIFIED IDEOGRAPH +0xE5B4 0x8AE1 #CJK UNIFIED IDEOGRAPH +0xE5B5 0x8C55 #CJK UNIFIED IDEOGRAPH +0xE5B6 0x8C7A #CJK UNIFIED IDEOGRAPH +0xE5B7 0x57F4 #CJK UNIFIED IDEOGRAPH +0xE5B8 0x5BD4 #CJK UNIFIED IDEOGRAPH +0xE5B9 0x5F0F #CJK UNIFIED IDEOGRAPH +0xE5BA 0x606F #CJK UNIFIED IDEOGRAPH +0xE5BB 0x62ED #CJK UNIFIED IDEOGRAPH +0xE5BC 0x690D #CJK UNIFIED IDEOGRAPH +0xE5BD 0x6B96 #CJK UNIFIED IDEOGRAPH +0xE5BE 0x6E5C #CJK UNIFIED IDEOGRAPH +0xE5BF 0x7184 #CJK UNIFIED IDEOGRAPH +0xE5C0 0x7BD2 #CJK UNIFIED IDEOGRAPH +0xE5C1 0x8B58 #CJK UNIFIED IDEOGRAPH +0xE5C2 0x8EFE #CJK UNIFIED IDEOGRAPH +0xE5C3 0x98DF #CJK UNIFIED IDEOGRAPH +0xE5C4 0x98FE #CJK UNIFIED IDEOGRAPH +0xE5C5 0x8755 #CJK UNIFIED IDEOGRAPH +0xE5C6 0x4F38 #CJK UNIFIED IDEOGRAPH +0xE5C7 0x4F81 #CJK UNIFIED IDEOGRAPH +0xE5C8 0x4FE1 #CJK UNIFIED IDEOGRAPH +0xE5C9 0x547B #CJK UNIFIED IDEOGRAPH +0xE5CA 0x5A20 #CJK UNIFIED IDEOGRAPH +0xE5CB 0x5BB8 #CJK UNIFIED IDEOGRAPH +0xE5CC 0x613C #CJK UNIFIED IDEOGRAPH +0xE5CD 0x65B0 #CJK UNIFIED IDEOGRAPH +0xE5CE 0x6668 #CJK UNIFIED IDEOGRAPH +0xE5CF 0x71FC #CJK UNIFIED IDEOGRAPH +0xE5D0 0x7533 #CJK UNIFIED IDEOGRAPH +0xE5D1 0x795E #CJK UNIFIED IDEOGRAPH +0xE5D2 0x7D33 #CJK UNIFIED IDEOGRAPH +0xE5D3 0x814E #CJK UNIFIED IDEOGRAPH +0xE5D4 0x81E3 #CJK UNIFIED IDEOGRAPH +0xE5D5 0x8398 #CJK UNIFIED IDEOGRAPH +0xE5D6 0x85AA #CJK UNIFIED IDEOGRAPH +0xE5D7 0x85CE #CJK UNIFIED IDEOGRAPH +0xE5D8 0x8703 #CJK UNIFIED IDEOGRAPH +0xE5D9 0x8A0A #CJK UNIFIED IDEOGRAPH +0xE5DA 0x8EAB #CJK UNIFIED IDEOGRAPH +0xE5DB 0x8F9B #CJK UNIFIED IDEOGRAPH +0xE5DC 0x8FC5 #CJK UNIFIED IDEOGRAPH +0xE5DD 0x5931 #CJK UNIFIED IDEOGRAPH +0xE5DE 0x5BA4 #CJK UNIFIED IDEOGRAPH +0xE5DF 0x5BE6 #CJK UNIFIED IDEOGRAPH +0xE5E0 0x6089 #CJK UNIFIED IDEOGRAPH +0xE5E1 0x5BE9 #CJK UNIFIED IDEOGRAPH +0xE5E2 0x5C0B #CJK UNIFIED IDEOGRAPH +0xE5E3 0x5FC3 #CJK UNIFIED IDEOGRAPH +0xE5E4 0x6116 #CJK UNIFIED IDEOGRAPH +0xE5E5 0x6C81 #CJK UNIFIED IDEOGRAPH +0xE5E6 0x6DF1 #CJK UNIFIED IDEOGRAPH +0xE5E7 0x700B #CJK UNIFIED IDEOGRAPH +0xE5E8 0x751A #CJK UNIFIED IDEOGRAPH +0xE5E9 0x82AF #CJK UNIFIED IDEOGRAPH +0xE5EA 0x8AF6 #CJK UNIFIED IDEOGRAPH +0xE5EB 0x4EC0 #CJK UNIFIED IDEOGRAPH +0xE5EC 0x5341 #CJK UNIFIED IDEOGRAPH +0xE5ED 0x50FF #CJK UNIFIED IDEOGRAPH +0xE5EE 0x74BD #CJK UNIFIED IDEOGRAPH +0xE5EF 0x8CFD #CJK UNIFIED IDEOGRAPH +0xE5F0 0x55C7 #CJK UNIFIED IDEOGRAPH +0xE5F1 0x585E #CJK UNIFIED IDEOGRAPH +0xE5F2 0x7A61 #CJK UNIFIED IDEOGRAPH +0xE5F3 0x7D22 #CJK UNIFIED IDEOGRAPH +0xE5F4 0x8272 #CJK UNIFIED IDEOGRAPH +0xE5F5 0x7272 #CJK UNIFIED IDEOGRAPH +0xE5F6 0x751F #CJK UNIFIED IDEOGRAPH +0xE5F7 0x7525 #CJK UNIFIED IDEOGRAPH +0xE5F8 0x7B19 #CJK UNIFIED IDEOGRAPH +0xE5F9 0x4E16 #CJK UNIFIED IDEOGRAPH +0xE5FA 0x52E2 #CJK UNIFIED IDEOGRAPH +0xE5FB 0x6B72 #CJK UNIFIED IDEOGRAPH +0xE5FC 0x6D17 #CJK UNIFIED IDEOGRAPH +0xE5FD 0x7A05 #CJK UNIFIED IDEOGRAPH +0xE5FE 0x7B39 #CJK UNIFIED IDEOGRAPH +0xE6A1 0x7D30 #CJK UNIFIED IDEOGRAPH +0xE6A2 0x8CB0 #CJK UNIFIED IDEOGRAPH +0xE6A3 0x8870 #CJK UNIFIED IDEOGRAPH +0xE6A4 0x91D7 #CJK UNIFIED IDEOGRAPH +0xE6A5 0x5237 #CJK UNIFIED IDEOGRAPH +0xE6A6 0x7051 #CJK UNIFIED IDEOGRAPH +0xE6A7 0x788E #CJK UNIFIED IDEOGRAPH +0xE6A8 0x9396 #CJK UNIFIED IDEOGRAPH +0xE6A9 0x4ED4 #CJK UNIFIED IDEOGRAPH +0xE6AA 0x523A #CJK UNIFIED IDEOGRAPH +0xE6AB 0x54A8 #CJK UNIFIED IDEOGRAPH +0xE6AC 0x59C9 #CJK UNIFIED IDEOGRAPH +0xE6AD 0x59FF #CJK UNIFIED IDEOGRAPH +0xE6AE 0x5B50 #CJK UNIFIED IDEOGRAPH +0xE6AF 0x5B57 #CJK UNIFIED IDEOGRAPH +0xE6B0 0x5B5C #CJK UNIFIED IDEOGRAPH +0xE6B1 0x6063 #CJK UNIFIED IDEOGRAPH +0xE6B2 0x6148 #CJK UNIFIED IDEOGRAPH +0xE6B3 0x6ECB #CJK UNIFIED IDEOGRAPH +0xE6B4 0x7099 #CJK UNIFIED IDEOGRAPH +0xE6B5 0x716E #CJK UNIFIED IDEOGRAPH +0xE6B6 0x7386 #CJK UNIFIED IDEOGRAPH +0xE6B7 0x74F7 #CJK UNIFIED IDEOGRAPH +0xE6B8 0x75B5 #CJK UNIFIED IDEOGRAPH +0xE6B9 0x78C1 #CJK UNIFIED IDEOGRAPH +0xE6BA 0x7D2B #CJK UNIFIED IDEOGRAPH +0xE6BB 0x8005 #CJK UNIFIED IDEOGRAPH +0xE6BC 0x81EA #CJK UNIFIED IDEOGRAPH +0xE6BD 0x8328 #CJK UNIFIED IDEOGRAPH +0xE6BE 0x8517 #CJK UNIFIED IDEOGRAPH +0xE6BF 0x85C9 #CJK UNIFIED IDEOGRAPH +0xE6C0 0x8AEE #CJK UNIFIED IDEOGRAPH +0xE6C1 0x8CC7 #CJK UNIFIED IDEOGRAPH +0xE6C2 0x8D6D #CJK UNIFIED IDEOGRAPH +0xE6C3 0x96CC #CJK UNIFIED IDEOGRAPH +0xE6C4 0x4F5C #CJK UNIFIED IDEOGRAPH +0xE6C5 0x52FA #CJK UNIFIED IDEOGRAPH +0xE6C6 0x56BC #CJK UNIFIED IDEOGRAPH +0xE6C7 0x65AB #CJK UNIFIED IDEOGRAPH +0xE6C8 0x6628 #CJK UNIFIED IDEOGRAPH +0xE6C9 0x707C #CJK UNIFIED IDEOGRAPH +0xE6CA 0x70B8 #CJK UNIFIED IDEOGRAPH +0xE6CB 0x7235 #CJK UNIFIED IDEOGRAPH +0xE6CC 0x7DBD #CJK UNIFIED IDEOGRAPH +0xE6CD 0x828D #CJK UNIFIED IDEOGRAPH +0xE6CE 0x914C #CJK UNIFIED IDEOGRAPH +0xE6CF 0x96C0 #CJK UNIFIED IDEOGRAPH +0xE6D0 0x9D72 #CJK UNIFIED IDEOGRAPH +0xE6D1 0x5B71 #CJK UNIFIED IDEOGRAPH +0xE6D2 0x68E7 #CJK UNIFIED IDEOGRAPH +0xE6D3 0x6B98 #CJK UNIFIED IDEOGRAPH +0xE6D4 0x6F7A #CJK UNIFIED IDEOGRAPH +0xE6D5 0x76DE #CJK UNIFIED IDEOGRAPH +0xE6D6 0x5C91 #CJK UNIFIED IDEOGRAPH +0xE6D7 0x66AB #CJK UNIFIED IDEOGRAPH +0xE6D8 0x6F5B #CJK UNIFIED IDEOGRAPH +0xE6D9 0x7BB4 #CJK UNIFIED IDEOGRAPH +0xE6DA 0x7C2A #CJK UNIFIED IDEOGRAPH +0xE6DB 0x8836 #CJK UNIFIED IDEOGRAPH +0xE6DC 0x96DC #CJK UNIFIED IDEOGRAPH +0xE6DD 0x4E08 #CJK UNIFIED IDEOGRAPH +0xE6DE 0x4ED7 #CJK UNIFIED IDEOGRAPH +0xE6DF 0x5320 #CJK UNIFIED IDEOGRAPH +0xE6E0 0x5834 #CJK UNIFIED IDEOGRAPH +0xE6E1 0x58BB #CJK UNIFIED IDEOGRAPH +0xE6E2 0x58EF #CJK UNIFIED IDEOGRAPH +0xE6E3 0x596C #CJK UNIFIED IDEOGRAPH +0xE6E4 0x5C07 #CJK UNIFIED IDEOGRAPH +0xE6E5 0x5E33 #CJK UNIFIED IDEOGRAPH +0xE6E6 0x5E84 #CJK UNIFIED IDEOGRAPH +0xE6E7 0x5F35 #CJK UNIFIED IDEOGRAPH +0xE6E8 0x638C #CJK UNIFIED IDEOGRAPH +0xE6E9 0x66B2 #CJK UNIFIED IDEOGRAPH +0xE6EA 0x6756 #CJK UNIFIED IDEOGRAPH +0xE6EB 0x6A1F #CJK UNIFIED IDEOGRAPH +0xE6EC 0x6AA3 #CJK UNIFIED IDEOGRAPH +0xE6ED 0x6B0C #CJK UNIFIED IDEOGRAPH +0xE6EE 0x6F3F #CJK UNIFIED IDEOGRAPH +0xE6EF 0x7246 #CJK UNIFIED IDEOGRAPH +0xE6F0 0x7350 #CJK UNIFIED IDEOGRAPH +0xE6F1 0x748B #CJK UNIFIED IDEOGRAPH +0xE6F2 0x7AE0 #CJK UNIFIED IDEOGRAPH +0xE6F3 0x7CA7 #CJK UNIFIED IDEOGRAPH +0xE6F4 0x8178 #CJK UNIFIED IDEOGRAPH +0xE6F5 0x81DF #CJK UNIFIED IDEOGRAPH +0xE6F6 0x81E7 #CJK UNIFIED IDEOGRAPH +0xE6F7 0x838A #CJK UNIFIED IDEOGRAPH +0xE6F8 0x846C #CJK UNIFIED IDEOGRAPH +0xE6F9 0x8523 #CJK UNIFIED IDEOGRAPH +0xE6FA 0x8594 #CJK UNIFIED IDEOGRAPH +0xE6FB 0x85CF #CJK UNIFIED IDEOGRAPH +0xE6FC 0x88DD #CJK UNIFIED IDEOGRAPH +0xE6FD 0x8D13 #CJK UNIFIED IDEOGRAPH +0xE6FE 0x91AC #CJK UNIFIED IDEOGRAPH +0xE7A1 0x9577 #CJK UNIFIED IDEOGRAPH +0xE7A2 0x969C #CJK UNIFIED IDEOGRAPH +0xE7A3 0x4F47 #CJK UNIFIED IDEOGRAPH +0xE7A4 0x4F4E #CJK UNIFIED IDEOGRAPH +0xE7A5 0x5132 #CJK UNIFIED IDEOGRAPH +0xE7A6 0x5480 #CJK UNIFIED IDEOGRAPH +0xE7A7 0x59D0 #CJK UNIFIED IDEOGRAPH +0xE7A8 0x5E95 #CJK UNIFIED IDEOGRAPH +0xE7A9 0x62B5 #CJK UNIFIED IDEOGRAPH +0xE7AA 0x6775 #CJK UNIFIED IDEOGRAPH +0xE7AB 0x696E #CJK UNIFIED IDEOGRAPH +0xE7AC 0x6A17 #CJK UNIFIED IDEOGRAPH +0xE7AD 0x6CAE #CJK UNIFIED IDEOGRAPH +0xE7AE 0x6E1A #CJK UNIFIED IDEOGRAPH +0xE7AF 0x72D9 #CJK UNIFIED IDEOGRAPH +0xE7B0 0x732A #CJK UNIFIED IDEOGRAPH +0xE7B1 0x75BD #CJK UNIFIED IDEOGRAPH +0xE7B2 0x7BB8 #CJK UNIFIED IDEOGRAPH +0xE7B3 0x7D35 #CJK UNIFIED IDEOGRAPH +0xE7B4 0x82E7 #CJK UNIFIED IDEOGRAPH +0xE7B5 0x83F9 #CJK UNIFIED IDEOGRAPH +0xE7B6 0x8457 #CJK UNIFIED IDEOGRAPH +0xE7B7 0x85F7 #CJK UNIFIED IDEOGRAPH +0xE7B8 0x8A5B #CJK UNIFIED IDEOGRAPH +0xE7B9 0x8CAF #CJK UNIFIED IDEOGRAPH +0xE7BA 0x8E87 #CJK UNIFIED IDEOGRAPH +0xE7BB 0x9019 #CJK UNIFIED IDEOGRAPH +0xE7BC 0x90B8 #CJK UNIFIED IDEOGRAPH +0xE7BD 0x96CE #CJK UNIFIED IDEOGRAPH +0xE7BE 0x9F5F #CJK UNIFIED IDEOGRAPH +0xE7BF 0x52E3 #CJK UNIFIED IDEOGRAPH +0xE7C0 0x540A #CJK UNIFIED IDEOGRAPH +0xE7C1 0x5AE1 #CJK UNIFIED IDEOGRAPH +0xE7C2 0x5BC2 #CJK UNIFIED IDEOGRAPH +0xE7C3 0x6458 #CJK UNIFIED IDEOGRAPH +0xE7C4 0x6575 #CJK UNIFIED IDEOGRAPH +0xE7C5 0x6EF4 #CJK UNIFIED IDEOGRAPH +0xE7C6 0x72C4 #CJK UNIFIED IDEOGRAPH +0xE7C7 0x7684 #CJK UNIFIED IDEOGRAPH +0xE7C8 0x78E7 #CJK UNIFIED IDEOGRAPH +0xE7C9 0x7A4D #CJK UNIFIED IDEOGRAPH +0xE7CA 0x7B1B #CJK UNIFIED IDEOGRAPH +0xE7CB 0x7C4D #CJK UNIFIED IDEOGRAPH +0xE7CC 0x7E3E #CJK UNIFIED IDEOGRAPH +0xE7CD 0x7FDF #CJK UNIFIED IDEOGRAPH +0xE7CE 0x837B #CJK UNIFIED IDEOGRAPH +0xE7CF 0x8B2B #CJK UNIFIED IDEOGRAPH +0xE7D0 0x8CCA #CJK UNIFIED IDEOGRAPH +0xE7D1 0x8D64 #CJK UNIFIED IDEOGRAPH +0xE7D2 0x8DE1 #CJK UNIFIED IDEOGRAPH +0xE7D3 0x8E5F #CJK UNIFIED IDEOGRAPH +0xE7D4 0x8FEA #CJK UNIFIED IDEOGRAPH +0xE7D5 0x8FF9 #CJK UNIFIED IDEOGRAPH +0xE7D6 0x9069 #CJK UNIFIED IDEOGRAPH +0xE7D7 0x93D1 #CJK UNIFIED IDEOGRAPH +0xE7D8 0x4F43 #CJK UNIFIED IDEOGRAPH +0xE7D9 0x4F7A #CJK UNIFIED IDEOGRAPH +0xE7DA 0x50B3 #CJK UNIFIED IDEOGRAPH +0xE7DB 0x5168 #CJK UNIFIED IDEOGRAPH +0xE7DC 0x5178 #CJK UNIFIED IDEOGRAPH +0xE7DD 0x524D #CJK UNIFIED IDEOGRAPH +0xE7DE 0x526A #CJK UNIFIED IDEOGRAPH +0xE7DF 0x5861 #CJK UNIFIED IDEOGRAPH +0xE7E0 0x587C #CJK UNIFIED IDEOGRAPH +0xE7E1 0x5960 #CJK UNIFIED IDEOGRAPH +0xE7E2 0x5C08 #CJK UNIFIED IDEOGRAPH +0xE7E3 0x5C55 #CJK UNIFIED IDEOGRAPH +0xE7E4 0x5EDB #CJK UNIFIED IDEOGRAPH +0xE7E5 0x609B #CJK UNIFIED IDEOGRAPH +0xE7E6 0x6230 #CJK UNIFIED IDEOGRAPH +0xE7E7 0x6813 #CJK UNIFIED IDEOGRAPH +0xE7E8 0x6BBF #CJK UNIFIED IDEOGRAPH +0xE7E9 0x6C08 #CJK UNIFIED IDEOGRAPH +0xE7EA 0x6FB1 #CJK UNIFIED IDEOGRAPH +0xE7EB 0x714E #CJK UNIFIED IDEOGRAPH +0xE7EC 0x7420 #CJK UNIFIED IDEOGRAPH +0xE7ED 0x7530 #CJK UNIFIED IDEOGRAPH +0xE7EE 0x7538 #CJK UNIFIED IDEOGRAPH +0xE7EF 0x7551 #CJK UNIFIED IDEOGRAPH +0xE7F0 0x7672 #CJK UNIFIED IDEOGRAPH +0xE7F1 0x7B4C #CJK UNIFIED IDEOGRAPH +0xE7F2 0x7B8B #CJK UNIFIED IDEOGRAPH +0xE7F3 0x7BAD #CJK UNIFIED IDEOGRAPH +0xE7F4 0x7BC6 #CJK UNIFIED IDEOGRAPH +0xE7F5 0x7E8F #CJK UNIFIED IDEOGRAPH +0xE7F6 0x8A6E #CJK UNIFIED IDEOGRAPH +0xE7F7 0x8F3E #CJK UNIFIED IDEOGRAPH +0xE7F8 0x8F49 #CJK UNIFIED IDEOGRAPH +0xE7F9 0x923F #CJK UNIFIED IDEOGRAPH +0xE7FA 0x9293 #CJK UNIFIED IDEOGRAPH +0xE7FB 0x9322 #CJK UNIFIED IDEOGRAPH +0xE7FC 0x942B #CJK UNIFIED IDEOGRAPH +0xE7FD 0x96FB #CJK UNIFIED IDEOGRAPH +0xE7FE 0x985A #CJK UNIFIED IDEOGRAPH +0xE8A1 0x986B #CJK UNIFIED IDEOGRAPH +0xE8A2 0x991E #CJK UNIFIED IDEOGRAPH +0xE8A3 0x5207 #CJK UNIFIED IDEOGRAPH +0xE8A4 0x622A #CJK UNIFIED IDEOGRAPH +0xE8A5 0x6298 #CJK UNIFIED IDEOGRAPH +0xE8A6 0x6D59 #CJK UNIFIED IDEOGRAPH +0xE8A7 0x7664 #CJK UNIFIED IDEOGRAPH +0xE8A8 0x7ACA #CJK UNIFIED IDEOGRAPH +0xE8A9 0x7BC0 #CJK UNIFIED IDEOGRAPH +0xE8AA 0x7D76 #CJK UNIFIED IDEOGRAPH +0xE8AB 0x5360 #CJK UNIFIED IDEOGRAPH +0xE8AC 0x5CBE #CJK UNIFIED IDEOGRAPH +0xE8AD 0x5E97 #CJK UNIFIED IDEOGRAPH +0xE8AE 0x62C8 #CJK UNIFIED IDEOGRAPH +0xE8AF 0x6F38 #CJK UNIFIED IDEOGRAPH +0xE8B0 0x70B9 #CJK UNIFIED IDEOGRAPH +0xE8B1 0x7C98 #CJK UNIFIED IDEOGRAPH +0xE8B2 0x9711 #CJK UNIFIED IDEOGRAPH +0xE8B3 0x9B8E #CJK UNIFIED IDEOGRAPH +0xE8B4 0x9EDE #CJK UNIFIED IDEOGRAPH +0xE8B5 0x63A5 #CJK UNIFIED IDEOGRAPH +0xE8B6 0x647A #CJK UNIFIED IDEOGRAPH +0xE8B7 0x6904 #CJK UNIFIED IDEOGRAPH +0xE8B8 0x8776 #CJK UNIFIED IDEOGRAPH +0xE8B9 0x4E01 #CJK UNIFIED IDEOGRAPH +0xE8BA 0x4E95 #CJK UNIFIED IDEOGRAPH +0xE8BB 0x4EAD #CJK UNIFIED IDEOGRAPH +0xE8BC 0x505C #CJK UNIFIED IDEOGRAPH +0xE8BD 0x5075 #CJK UNIFIED IDEOGRAPH +0xE8BE 0x5448 #CJK UNIFIED IDEOGRAPH +0xE8BF 0x59C3 #CJK UNIFIED IDEOGRAPH +0xE8C0 0x5B9A #CJK UNIFIED IDEOGRAPH +0xE8C1 0x5E40 #CJK UNIFIED IDEOGRAPH +0xE8C2 0x5EAD #CJK UNIFIED IDEOGRAPH +0xE8C3 0x5EF7 #CJK UNIFIED IDEOGRAPH +0xE8C4 0x5F81 #CJK UNIFIED IDEOGRAPH +0xE8C5 0x60C5 #CJK UNIFIED IDEOGRAPH +0xE8C6 0x633A #CJK UNIFIED IDEOGRAPH +0xE8C7 0x653F #CJK UNIFIED IDEOGRAPH +0xE8C8 0x6574 #CJK UNIFIED IDEOGRAPH +0xE8C9 0x65CC #CJK UNIFIED IDEOGRAPH +0xE8CA 0x6676 #CJK UNIFIED IDEOGRAPH +0xE8CB 0x6678 #CJK UNIFIED IDEOGRAPH +0xE8CC 0x67FE #CJK UNIFIED IDEOGRAPH +0xE8CD 0x6968 #CJK UNIFIED IDEOGRAPH +0xE8CE 0x6A89 #CJK UNIFIED IDEOGRAPH +0xE8CF 0x6B63 #CJK UNIFIED IDEOGRAPH +0xE8D0 0x6C40 #CJK UNIFIED IDEOGRAPH +0xE8D1 0x6DC0 #CJK UNIFIED IDEOGRAPH +0xE8D2 0x6DE8 #CJK UNIFIED IDEOGRAPH +0xE8D3 0x6E1F #CJK UNIFIED IDEOGRAPH +0xE8D4 0x6E5E #CJK UNIFIED IDEOGRAPH +0xE8D5 0x701E #CJK UNIFIED IDEOGRAPH +0xE8D6 0x70A1 #CJK UNIFIED IDEOGRAPH +0xE8D7 0x738E #CJK UNIFIED IDEOGRAPH +0xE8D8 0x73FD #CJK UNIFIED IDEOGRAPH +0xE8D9 0x753A #CJK UNIFIED IDEOGRAPH +0xE8DA 0x775B #CJK UNIFIED IDEOGRAPH +0xE8DB 0x7887 #CJK UNIFIED IDEOGRAPH +0xE8DC 0x798E #CJK UNIFIED IDEOGRAPH +0xE8DD 0x7A0B #CJK UNIFIED IDEOGRAPH +0xE8DE 0x7A7D #CJK UNIFIED IDEOGRAPH +0xE8DF 0x7CBE #CJK UNIFIED IDEOGRAPH +0xE8E0 0x7D8E #CJK UNIFIED IDEOGRAPH +0xE8E1 0x8247 #CJK UNIFIED IDEOGRAPH +0xE8E2 0x8A02 #CJK UNIFIED IDEOGRAPH +0xE8E3 0x8AEA #CJK UNIFIED IDEOGRAPH +0xE8E4 0x8C9E #CJK UNIFIED IDEOGRAPH +0xE8E5 0x912D #CJK UNIFIED IDEOGRAPH +0xE8E6 0x914A #CJK UNIFIED IDEOGRAPH +0xE8E7 0x91D8 #CJK UNIFIED IDEOGRAPH +0xE8E8 0x9266 #CJK UNIFIED IDEOGRAPH +0xE8E9 0x92CC #CJK UNIFIED IDEOGRAPH +0xE8EA 0x9320 #CJK UNIFIED IDEOGRAPH +0xE8EB 0x9706 #CJK UNIFIED IDEOGRAPH +0xE8EC 0x9756 #CJK UNIFIED IDEOGRAPH +0xE8ED 0x975C #CJK UNIFIED IDEOGRAPH +0xE8EE 0x9802 #CJK UNIFIED IDEOGRAPH +0xE8EF 0x9F0E #CJK UNIFIED IDEOGRAPH +0xE8F0 0x4FCE #CJK UNIFIED IDEOGRAPH +0xE8F1 0x5146 #CJK UNIFIED IDEOGRAPH +0xE8F2 0x51CB #CJK UNIFIED IDEOGRAPH +0xE8F3 0x52A9 #CJK UNIFIED IDEOGRAPH +0xE8F4 0x5632 #CJK UNIFIED IDEOGRAPH +0xE8F5 0x5F14 #CJK UNIFIED IDEOGRAPH +0xE8F6 0x5F6B #CJK UNIFIED IDEOGRAPH +0xE8F7 0x63AA #CJK UNIFIED IDEOGRAPH +0xE8F8 0x64CD #CJK UNIFIED IDEOGRAPH +0xE8F9 0x65E9 #CJK UNIFIED IDEOGRAPH +0xE8FA 0x6641 #CJK UNIFIED IDEOGRAPH +0xE8FB 0x66FA #CJK UNIFIED IDEOGRAPH +0xE8FC 0x66F9 #CJK UNIFIED IDEOGRAPH +0xE8FD 0x671D #CJK UNIFIED IDEOGRAPH +0xE8FE 0x689D #CJK UNIFIED IDEOGRAPH +0xE9A1 0x68D7 #CJK UNIFIED IDEOGRAPH +0xE9A2 0x69FD #CJK UNIFIED IDEOGRAPH +0xE9A3 0x6F15 #CJK UNIFIED IDEOGRAPH +0xE9A4 0x6F6E #CJK UNIFIED IDEOGRAPH +0xE9A5 0x7167 #CJK UNIFIED IDEOGRAPH +0xE9A6 0x71E5 #CJK UNIFIED IDEOGRAPH +0xE9A7 0x722A #CJK UNIFIED IDEOGRAPH +0xE9A8 0x74AA #CJK UNIFIED IDEOGRAPH +0xE9A9 0x773A #CJK UNIFIED IDEOGRAPH +0xE9AA 0x7956 #CJK UNIFIED IDEOGRAPH +0xE9AB 0x795A #CJK UNIFIED IDEOGRAPH +0xE9AC 0x79DF #CJK UNIFIED IDEOGRAPH +0xE9AD 0x7A20 #CJK UNIFIED IDEOGRAPH +0xE9AE 0x7A95 #CJK UNIFIED IDEOGRAPH +0xE9AF 0x7C97 #CJK UNIFIED IDEOGRAPH +0xE9B0 0x7CDF #CJK UNIFIED IDEOGRAPH +0xE9B1 0x7D44 #CJK UNIFIED IDEOGRAPH +0xE9B2 0x7E70 #CJK UNIFIED IDEOGRAPH +0xE9B3 0x8087 #CJK UNIFIED IDEOGRAPH +0xE9B4 0x85FB #CJK UNIFIED IDEOGRAPH +0xE9B5 0x86A4 #CJK UNIFIED IDEOGRAPH +0xE9B6 0x8A54 #CJK UNIFIED IDEOGRAPH +0xE9B7 0x8ABF #CJK UNIFIED IDEOGRAPH +0xE9B8 0x8D99 #CJK UNIFIED IDEOGRAPH +0xE9B9 0x8E81 #CJK UNIFIED IDEOGRAPH +0xE9BA 0x9020 #CJK UNIFIED IDEOGRAPH +0xE9BB 0x906D #CJK UNIFIED IDEOGRAPH +0xE9BC 0x91E3 #CJK UNIFIED IDEOGRAPH +0xE9BD 0x963B #CJK UNIFIED IDEOGRAPH +0xE9BE 0x96D5 #CJK UNIFIED IDEOGRAPH +0xE9BF 0x9CE5 #CJK UNIFIED IDEOGRAPH +0xE9C0 0x65CF #CJK UNIFIED IDEOGRAPH +0xE9C1 0x7C07 #CJK UNIFIED IDEOGRAPH +0xE9C2 0x8DB3 #CJK UNIFIED IDEOGRAPH +0xE9C3 0x93C3 #CJK UNIFIED IDEOGRAPH +0xE9C4 0x5B58 #CJK UNIFIED IDEOGRAPH +0xE9C5 0x5C0A #CJK UNIFIED IDEOGRAPH +0xE9C6 0x5352 #CJK UNIFIED IDEOGRAPH +0xE9C7 0x62D9 #CJK UNIFIED IDEOGRAPH +0xE9C8 0x731D #CJK UNIFIED IDEOGRAPH +0xE9C9 0x5027 #CJK UNIFIED IDEOGRAPH +0xE9CA 0x5B97 #CJK UNIFIED IDEOGRAPH +0xE9CB 0x5F9E #CJK UNIFIED IDEOGRAPH +0xE9CC 0x60B0 #CJK UNIFIED IDEOGRAPH +0xE9CD 0x616B #CJK UNIFIED IDEOGRAPH +0xE9CE 0x68D5 #CJK UNIFIED IDEOGRAPH +0xE9CF 0x6DD9 #CJK UNIFIED IDEOGRAPH +0xE9D0 0x742E #CJK UNIFIED IDEOGRAPH +0xE9D1 0x7A2E #CJK UNIFIED IDEOGRAPH +0xE9D2 0x7D42 #CJK UNIFIED IDEOGRAPH +0xE9D3 0x7D9C #CJK UNIFIED IDEOGRAPH +0xE9D4 0x7E31 #CJK UNIFIED IDEOGRAPH +0xE9D5 0x816B #CJK UNIFIED IDEOGRAPH +0xE9D6 0x8E2A #CJK UNIFIED IDEOGRAPH +0xE9D7 0x8E35 #CJK UNIFIED IDEOGRAPH +0xE9D8 0x8E64 #CJK UNIFIED IDEOGRAPH +0xE9D9 0x937E #CJK UNIFIED IDEOGRAPH +0xE9DA 0x9418 #CJK UNIFIED IDEOGRAPH +0xE9DB 0x4E3B #CJK UNIFIED IDEOGRAPH +0xE9DC 0x4F4F #CJK UNIFIED IDEOGRAPH +0xE9DD 0x4F8F #CJK UNIFIED IDEOGRAPH +0xE9DE 0x505A #CJK UNIFIED IDEOGRAPH +0xE9DF 0x59DD #CJK UNIFIED IDEOGRAPH +0xE9E0 0x80C4 #CJK UNIFIED IDEOGRAPH +0xE9E1 0x546A #CJK UNIFIED IDEOGRAPH +0xE9E2 0x5468 #CJK UNIFIED IDEOGRAPH +0xE9E3 0x594F #CJK UNIFIED IDEOGRAPH +0xE9E4 0x5B99 #CJK UNIFIED IDEOGRAPH +0xE9E5 0x5DDE #CJK UNIFIED IDEOGRAPH +0xE9E6 0x5EDA #CJK UNIFIED IDEOGRAPH +0xE9E7 0x665D #CJK UNIFIED IDEOGRAPH +0xE9E8 0x6731 #CJK UNIFIED IDEOGRAPH +0xE9E9 0x67F1 #CJK UNIFIED IDEOGRAPH +0xE9EA 0x682A #CJK UNIFIED IDEOGRAPH +0xE9EB 0x6CE8 #CJK UNIFIED IDEOGRAPH +0xE9EC 0x6D32 #CJK UNIFIED IDEOGRAPH +0xE9ED 0x6E4A #CJK UNIFIED IDEOGRAPH +0xE9EE 0x6F8D #CJK UNIFIED IDEOGRAPH +0xE9EF 0x70B7 #CJK UNIFIED IDEOGRAPH +0xE9F0 0x73E0 #CJK UNIFIED IDEOGRAPH +0xE9F1 0x7587 #CJK UNIFIED IDEOGRAPH +0xE9F2 0x7C4C #CJK UNIFIED IDEOGRAPH +0xE9F3 0x7D02 #CJK UNIFIED IDEOGRAPH +0xE9F4 0x7D2C #CJK UNIFIED IDEOGRAPH +0xE9F5 0x7DA2 #CJK UNIFIED IDEOGRAPH +0xE9F6 0x821F #CJK UNIFIED IDEOGRAPH +0xE9F7 0x86DB #CJK UNIFIED IDEOGRAPH +0xE9F8 0x8A3B #CJK UNIFIED IDEOGRAPH +0xE9F9 0x8A85 #CJK UNIFIED IDEOGRAPH +0xE9FA 0x8D70 #CJK UNIFIED IDEOGRAPH +0xE9FB 0x8E8A #CJK UNIFIED IDEOGRAPH +0xE9FC 0x8F33 #CJK UNIFIED IDEOGRAPH +0xE9FD 0x9031 #CJK UNIFIED IDEOGRAPH +0xE9FE 0x914E #CJK UNIFIED IDEOGRAPH +0xEAA1 0x9152 #CJK UNIFIED IDEOGRAPH +0xEAA2 0x9444 #CJK UNIFIED IDEOGRAPH +0xEAA3 0x99D0 #CJK UNIFIED IDEOGRAPH +0xEAA4 0x7AF9 #CJK UNIFIED IDEOGRAPH +0xEAA5 0x7CA5 #CJK UNIFIED IDEOGRAPH +0xEAA6 0x4FCA #CJK UNIFIED IDEOGRAPH +0xEAA7 0x5101 #CJK UNIFIED IDEOGRAPH +0xEAA8 0x51C6 #CJK UNIFIED IDEOGRAPH +0xEAA9 0x57C8 #CJK UNIFIED IDEOGRAPH +0xEAAA 0x5BEF #CJK UNIFIED IDEOGRAPH +0xEAAB 0x5CFB #CJK UNIFIED IDEOGRAPH +0xEAAC 0x6659 #CJK UNIFIED IDEOGRAPH +0xEAAD 0x6A3D #CJK UNIFIED IDEOGRAPH +0xEAAE 0x6D5A #CJK UNIFIED IDEOGRAPH +0xEAAF 0x6E96 #CJK UNIFIED IDEOGRAPH +0xEAB0 0x6FEC #CJK UNIFIED IDEOGRAPH +0xEAB1 0x710C #CJK UNIFIED IDEOGRAPH +0xEAB2 0x3ED0 #CJK UNIFIED IDEOGRAPH +0xEAB3 0x756F #CJK UNIFIED IDEOGRAPH +0xEAB4 0x7AE3 #CJK UNIFIED IDEOGRAPH +0xEAB5 0x8822 #CJK UNIFIED IDEOGRAPH +0xEAB6 0x9021 #CJK UNIFIED IDEOGRAPH +0xEAB7 0x9075 #CJK UNIFIED IDEOGRAPH +0xEAB8 0x96CB #CJK UNIFIED IDEOGRAPH +0xEAB9 0x99FF #CJK UNIFIED IDEOGRAPH +0xEABA 0x8301 #CJK UNIFIED IDEOGRAPH +0xEABB 0x4E2D #CJK UNIFIED IDEOGRAPH +0xEABC 0x4EF2 #CJK UNIFIED IDEOGRAPH +0xEABD 0x8846 #CJK UNIFIED IDEOGRAPH +0xEABE 0x91CD #CJK UNIFIED IDEOGRAPH +0xEABF 0x537D #CJK UNIFIED IDEOGRAPH +0xEAC0 0x6ADB #CJK UNIFIED IDEOGRAPH +0xEAC1 0x696B #CJK UNIFIED IDEOGRAPH +0xEAC2 0x6C41 #CJK UNIFIED IDEOGRAPH +0xEAC3 0x847A #CJK UNIFIED IDEOGRAPH +0xEAC4 0x589E #CJK UNIFIED IDEOGRAPH +0xEAC5 0x618E #CJK UNIFIED IDEOGRAPH +0xEAC6 0x62EF #CJK UNIFIED IDEOGRAPH +0xEAC7 0x66FE #CJK UNIFIED IDEOGRAPH +0xEAC8 0x70DD #CJK UNIFIED IDEOGRAPH +0xEAC9 0x7511 #CJK UNIFIED IDEOGRAPH +0xEACA 0x75C7 #CJK UNIFIED IDEOGRAPH +0xEACB 0x7E52 #CJK UNIFIED IDEOGRAPH +0xEACC 0x84B8 #CJK UNIFIED IDEOGRAPH +0xEACD 0x8B49 #CJK UNIFIED IDEOGRAPH +0xEACE 0x8D08 #CJK UNIFIED IDEOGRAPH +0xEACF 0x4E4B #CJK UNIFIED IDEOGRAPH +0xEAD0 0x53EA #CJK UNIFIED IDEOGRAPH +0xEAD1 0x54AB #CJK UNIFIED IDEOGRAPH +0xEAD2 0x5730 #CJK UNIFIED IDEOGRAPH +0xEAD3 0x5740 #CJK UNIFIED IDEOGRAPH +0xEAD4 0x5FD7 #CJK UNIFIED IDEOGRAPH +0xEAD5 0x6301 #CJK UNIFIED IDEOGRAPH +0xEAD6 0x6307 #CJK UNIFIED IDEOGRAPH +0xEAD7 0x646F #CJK UNIFIED IDEOGRAPH +0xEAD8 0x652F #CJK UNIFIED IDEOGRAPH +0xEAD9 0x65E8 #CJK UNIFIED IDEOGRAPH +0xEADA 0x667A #CJK UNIFIED IDEOGRAPH +0xEADB 0x679D #CJK UNIFIED IDEOGRAPH +0xEADC 0x67B3 #CJK UNIFIED IDEOGRAPH +0xEADD 0x6B62 #CJK UNIFIED IDEOGRAPH +0xEADE 0x6C60 #CJK UNIFIED IDEOGRAPH +0xEADF 0x6C9A #CJK UNIFIED IDEOGRAPH +0xEAE0 0x6F2C #CJK UNIFIED IDEOGRAPH +0xEAE1 0x75E3 #CJK UNIFIED IDEOGRAPH +0xEAE2 0x77E5 #CJK UNIFIED IDEOGRAPH +0xEAE3 0x7825 #CJK UNIFIED IDEOGRAPH +0xEAE4 0x7949 #CJK UNIFIED IDEOGRAPH +0xEAE5 0x7957 #CJK UNIFIED IDEOGRAPH +0xEAE6 0x7D19 #CJK UNIFIED IDEOGRAPH +0xEAE7 0x80A2 #CJK UNIFIED IDEOGRAPH +0xEAE8 0x8102 #CJK UNIFIED IDEOGRAPH +0xEAE9 0x81F3 #CJK UNIFIED IDEOGRAPH +0xEAEA 0x829D #CJK UNIFIED IDEOGRAPH +0xEAEB 0x82B7 #CJK UNIFIED IDEOGRAPH +0xEAEC 0x8718 #CJK UNIFIED IDEOGRAPH +0xEAED 0x8A8C #CJK UNIFIED IDEOGRAPH +0xEAEE 0x8D04 #CJK UNIFIED IDEOGRAPH +0xEAEF 0x8DBE #CJK UNIFIED IDEOGRAPH +0xEAF0 0x9072 #CJK UNIFIED IDEOGRAPH +0xEAF1 0x76F4 #CJK UNIFIED IDEOGRAPH +0xEAF2 0x7A19 #CJK UNIFIED IDEOGRAPH +0xEAF3 0x7A37 #CJK UNIFIED IDEOGRAPH +0xEAF4 0x7E54 #CJK UNIFIED IDEOGRAPH +0xEAF5 0x8077 #CJK UNIFIED IDEOGRAPH +0xEAF6 0x5507 #CJK UNIFIED IDEOGRAPH +0xEAF7 0x55D4 #CJK UNIFIED IDEOGRAPH +0xEAF8 0x5875 #CJK UNIFIED IDEOGRAPH +0xEAF9 0x632F #CJK UNIFIED IDEOGRAPH +0xEAFA 0x6422 #CJK UNIFIED IDEOGRAPH +0xEAFB 0x6649 #CJK UNIFIED IDEOGRAPH +0xEAFC 0x664B #CJK UNIFIED IDEOGRAPH +0xEAFD 0x686D #CJK UNIFIED IDEOGRAPH +0xEAFE 0x699B #CJK UNIFIED IDEOGRAPH +0xEBA1 0x6B84 #CJK UNIFIED IDEOGRAPH +0xEBA2 0x6D25 #CJK UNIFIED IDEOGRAPH +0xEBA3 0x6EB1 #CJK UNIFIED IDEOGRAPH +0xEBA4 0x73CD #CJK UNIFIED IDEOGRAPH +0xEBA5 0x7468 #CJK UNIFIED IDEOGRAPH +0xEBA6 0x74A1 #CJK UNIFIED IDEOGRAPH +0xEBA7 0x755B #CJK UNIFIED IDEOGRAPH +0xEBA8 0x75B9 #CJK UNIFIED IDEOGRAPH +0xEBA9 0x76E1 #CJK UNIFIED IDEOGRAPH +0xEBAA 0x771E #CJK UNIFIED IDEOGRAPH +0xEBAB 0x778B #CJK UNIFIED IDEOGRAPH +0xEBAC 0x79E6 #CJK UNIFIED IDEOGRAPH +0xEBAD 0x7E09 #CJK UNIFIED IDEOGRAPH +0xEBAE 0x7E1D #CJK UNIFIED IDEOGRAPH +0xEBAF 0x81FB #CJK UNIFIED IDEOGRAPH +0xEBB0 0x852F #CJK UNIFIED IDEOGRAPH +0xEBB1 0x8897 #CJK UNIFIED IDEOGRAPH +0xEBB2 0x8A3A #CJK UNIFIED IDEOGRAPH +0xEBB3 0x8CD1 #CJK UNIFIED IDEOGRAPH +0xEBB4 0x8EEB #CJK UNIFIED IDEOGRAPH +0xEBB5 0x8FB0 #CJK UNIFIED IDEOGRAPH +0xEBB6 0x9032 #CJK UNIFIED IDEOGRAPH +0xEBB7 0x93AD #CJK UNIFIED IDEOGRAPH +0xEBB8 0x9663 #CJK UNIFIED IDEOGRAPH +0xEBB9 0x9673 #CJK UNIFIED IDEOGRAPH +0xEBBA 0x9707 #CJK UNIFIED IDEOGRAPH +0xEBBB 0x4F84 #CJK UNIFIED IDEOGRAPH +0xEBBC 0x53F1 #CJK UNIFIED IDEOGRAPH +0xEBBD 0x59EA #CJK UNIFIED IDEOGRAPH +0xEBBE 0x5AC9 #CJK UNIFIED IDEOGRAPH +0xEBBF 0x5E19 #CJK UNIFIED IDEOGRAPH +0xEBC0 0x684E #CJK UNIFIED IDEOGRAPH +0xEBC1 0x74C6 #CJK UNIFIED IDEOGRAPH +0xEBC2 0x75BE #CJK UNIFIED IDEOGRAPH +0xEBC3 0x79E9 #CJK UNIFIED IDEOGRAPH +0xEBC4 0x7A92 #CJK UNIFIED IDEOGRAPH +0xEBC5 0x81A3 #CJK UNIFIED IDEOGRAPH +0xEBC6 0x86ED #CJK UNIFIED IDEOGRAPH +0xEBC7 0x8CEA #CJK UNIFIED IDEOGRAPH +0xEBC8 0x8DCC #CJK UNIFIED IDEOGRAPH +0xEBC9 0x8FED #CJK UNIFIED IDEOGRAPH +0xEBCA 0x6715 #CJK UNIFIED IDEOGRAPH +0xEBCB 0x57F7 #CJK UNIFIED IDEOGRAPH +0xEBCC 0x6F57 #CJK UNIFIED IDEOGRAPH +0xEBCD 0x7DDD #CJK UNIFIED IDEOGRAPH +0xEBCE 0x8F2F #CJK UNIFIED IDEOGRAPH +0xEBCF 0x93F6 #CJK UNIFIED IDEOGRAPH +0xEBD0 0x96C6 #CJK UNIFIED IDEOGRAPH +0xEBD1 0x5FB5 #CJK UNIFIED IDEOGRAPH +0xEBD2 0x61F2 #CJK UNIFIED IDEOGRAPH +0xEBD3 0x6F84 #CJK UNIFIED IDEOGRAPH +0xEBD4 0x518D #CJK UNIFIED IDEOGRAPH +0xEBD5 0x54C9 #CJK UNIFIED IDEOGRAPH +0xEBD6 0x5728 #CJK UNIFIED IDEOGRAPH +0xEBD7 0x5BB0 #CJK UNIFIED IDEOGRAPH +0xEBD8 0x624D #CJK UNIFIED IDEOGRAPH +0xEBD9 0x6750 #CJK UNIFIED IDEOGRAPH +0xEBDA 0x683D #CJK UNIFIED IDEOGRAPH +0xEBDB 0x6893 #CJK UNIFIED IDEOGRAPH +0xEBDC 0x6E3D #CJK UNIFIED IDEOGRAPH +0xEBDD 0x6ED3 #CJK UNIFIED IDEOGRAPH +0xEBDE 0x707D #CJK UNIFIED IDEOGRAPH +0xEBDF 0x7E21 #CJK UNIFIED IDEOGRAPH +0xEBE0 0x88C1 #CJK UNIFIED IDEOGRAPH +0xEBE1 0x8CA1 #CJK UNIFIED IDEOGRAPH +0xEBE2 0x8F09 #CJK UNIFIED IDEOGRAPH +0xEBE3 0x9F4B #CJK UNIFIED IDEOGRAPH +0xEBE4 0x9F4E #CJK UNIFIED IDEOGRAPH +0xEBE5 0x722D #CJK UNIFIED IDEOGRAPH +0xEBE6 0x7B8F #CJK UNIFIED IDEOGRAPH +0xEBE7 0x8ACD #CJK UNIFIED IDEOGRAPH +0xEBE8 0x931A #CJK UNIFIED IDEOGRAPH +0xEBE9 0x5236 #CJK UNIFIED IDEOGRAPH +0xEBEA 0x5291 #CJK UNIFIED IDEOGRAPH +0xEBEB 0x557C #CJK UNIFIED IDEOGRAPH +0xEBEC 0x5824 #CJK UNIFIED IDEOGRAPH +0xEBED 0x5E1D #CJK UNIFIED IDEOGRAPH +0xEBEE 0x5F1F #CJK UNIFIED IDEOGRAPH +0xEBEF 0x608C #CJK UNIFIED IDEOGRAPH +0xEBF0 0x63D0 #CJK UNIFIED IDEOGRAPH +0xEBF1 0x68AF #CJK UNIFIED IDEOGRAPH +0xEBF2 0x6FDF #CJK UNIFIED IDEOGRAPH +0xEBF3 0x796D #CJK UNIFIED IDEOGRAPH +0xEBF4 0x7B2C #CJK UNIFIED IDEOGRAPH +0xEBF5 0x81CD #CJK UNIFIED IDEOGRAPH +0xEBF6 0x85BA #CJK UNIFIED IDEOGRAPH +0xEBF7 0x88FD #CJK UNIFIED IDEOGRAPH +0xEBF8 0x8AF8 #CJK UNIFIED IDEOGRAPH +0xEBF9 0x8E44 #CJK UNIFIED IDEOGRAPH +0xEBFA 0x918D #CJK UNIFIED IDEOGRAPH +0xEBFB 0x9664 #CJK UNIFIED IDEOGRAPH +0xEBFC 0x969B #CJK UNIFIED IDEOGRAPH +0xEBFD 0x973D #CJK UNIFIED IDEOGRAPH +0xEBFE 0x984C #CJK UNIFIED IDEOGRAPH +0xECA1 0x9F4A #CJK UNIFIED IDEOGRAPH +0xECA2 0x7F6A #CJK UNIFIED IDEOGRAPH +0xECA3 0x4F50 #CJK UNIFIED IDEOGRAPH +0xECA4 0x5750 #CJK UNIFIED IDEOGRAPH +0xECA5 0x5DE6 #CJK UNIFIED IDEOGRAPH +0xECA6 0x5EA7 #CJK UNIFIED IDEOGRAPH +0xECA7 0x632B #CJK UNIFIED IDEOGRAPH +0xECA8 0x4E14 #CJK UNIFIED IDEOGRAPH +0xECA9 0x501F #CJK UNIFIED IDEOGRAPH +0xECAA 0x53C9 #CJK UNIFIED IDEOGRAPH +0xECAB 0x55DF #CJK UNIFIED IDEOGRAPH +0xECAC 0x5D6F #CJK UNIFIED IDEOGRAPH +0xECAD 0x5DEE #CJK UNIFIED IDEOGRAPH +0xECAE 0x6B21 #CJK UNIFIED IDEOGRAPH +0xECAF 0x6B64 #CJK UNIFIED IDEOGRAPH +0xECB0 0x78CB #CJK UNIFIED IDEOGRAPH +0xECB1 0x7B9A #CJK UNIFIED IDEOGRAPH +0xECB2 0x8E49 #CJK UNIFIED IDEOGRAPH +0xECB3 0x8ECA #CJK UNIFIED IDEOGRAPH +0xECB4 0x906E #CJK UNIFIED IDEOGRAPH +0xECB5 0x91F5 #CJK UNIFIED IDEOGRAPH +0xECB6 0x6349 #CJK UNIFIED IDEOGRAPH +0xECB7 0x643E #CJK UNIFIED IDEOGRAPH +0xECB8 0x7740 #CJK UNIFIED IDEOGRAPH +0xECB9 0x7A84 #CJK UNIFIED IDEOGRAPH +0xECBA 0x932F #CJK UNIFIED IDEOGRAPH +0xECBB 0x947F #CJK UNIFIED IDEOGRAPH +0xECBC 0x9F6A #CJK UNIFIED IDEOGRAPH +0xECBD 0x64B0 #CJK UNIFIED IDEOGRAPH +0xECBE 0x6FAF #CJK UNIFIED IDEOGRAPH +0xECBF 0x71E6 #CJK UNIFIED IDEOGRAPH +0xECC0 0x74A8 #CJK UNIFIED IDEOGRAPH +0xECC1 0x74DA #CJK UNIFIED IDEOGRAPH +0xECC2 0x7AC4 #CJK UNIFIED IDEOGRAPH +0xECC3 0x7C12 #CJK UNIFIED IDEOGRAPH +0xECC4 0x7E82 #CJK UNIFIED IDEOGRAPH +0xECC5 0x7CB2 #CJK UNIFIED IDEOGRAPH +0xECC6 0x7E98 #CJK UNIFIED IDEOGRAPH +0xECC7 0x8B9A #CJK UNIFIED IDEOGRAPH +0xECC8 0x8D0A #CJK UNIFIED IDEOGRAPH +0xECC9 0x947D #CJK UNIFIED IDEOGRAPH +0xECCA 0x9910 #CJK UNIFIED IDEOGRAPH +0xECCB 0x994C #CJK UNIFIED IDEOGRAPH +0xECCC 0x5239 #CJK UNIFIED IDEOGRAPH +0xECCD 0x5BDF #CJK UNIFIED IDEOGRAPH +0xECCE 0x64E6 #CJK UNIFIED IDEOGRAPH +0xECCF 0x672D #CJK UNIFIED IDEOGRAPH +0xECD0 0x7D2E #CJK UNIFIED IDEOGRAPH +0xECD1 0x50ED #CJK UNIFIED IDEOGRAPH +0xECD2 0x53C3 #CJK UNIFIED IDEOGRAPH +0xECD3 0x5879 #CJK UNIFIED IDEOGRAPH +0xECD4 0x5D84 #CJK UNIFIED IDEOGRAPH +0xECD5 0x6158 #CJK UNIFIED IDEOGRAPH +0xECD6 0x6159 #CJK UNIFIED IDEOGRAPH +0xECD7 0x61FA #CJK UNIFIED IDEOGRAPH +0xECD8 0x65AC #CJK UNIFIED IDEOGRAPH +0xECD9 0x7AD9 #CJK UNIFIED IDEOGRAPH +0xECDA 0x8B92 #CJK UNIFIED IDEOGRAPH +0xECDB 0x8B56 #CJK UNIFIED IDEOGRAPH +0xECDC 0x8B96 #CJK UNIFIED IDEOGRAPH +0xECDD 0x5009 #CJK UNIFIED IDEOGRAPH +0xECDE 0x5021 #CJK UNIFIED IDEOGRAPH +0xECDF 0x5275 #CJK UNIFIED IDEOGRAPH +0xECE0 0x5531 #CJK UNIFIED IDEOGRAPH +0xECE1 0x5A3C #CJK UNIFIED IDEOGRAPH +0xECE2 0x5EE0 #CJK UNIFIED IDEOGRAPH +0xECE3 0x5F70 #CJK UNIFIED IDEOGRAPH +0xECE4 0x6134 #CJK UNIFIED IDEOGRAPH +0xECE5 0x655E #CJK UNIFIED IDEOGRAPH +0xECE6 0x660C #CJK UNIFIED IDEOGRAPH +0xECE7 0x6636 #CJK UNIFIED IDEOGRAPH +0xECE8 0x66A2 #CJK UNIFIED IDEOGRAPH +0xECE9 0x69CD #CJK UNIFIED IDEOGRAPH +0xECEA 0x6EC4 #CJK UNIFIED IDEOGRAPH +0xECEB 0x6F32 #CJK UNIFIED IDEOGRAPH +0xECEC 0x7316 #CJK UNIFIED IDEOGRAPH +0xECED 0x7621 #CJK UNIFIED IDEOGRAPH +0xECEE 0x7A93 #CJK UNIFIED IDEOGRAPH +0xECEF 0x8139 #CJK UNIFIED IDEOGRAPH +0xECF0 0x8259 #CJK UNIFIED IDEOGRAPH +0xECF1 0x83D6 #CJK UNIFIED IDEOGRAPH +0xECF2 0x84BC #CJK UNIFIED IDEOGRAPH +0xECF3 0x51C4 #CJK UNIFIED IDEOGRAPH +0xECF4 0x59BB #CJK UNIFIED IDEOGRAPH +0xECF5 0x60BD #CJK UNIFIED IDEOGRAPH +0xECF6 0x8655 #CJK UNIFIED IDEOGRAPH +0xECF7 0x501C #CJK UNIFIED IDEOGRAPH +0xECF8 0x5254 #CJK UNIFIED IDEOGRAPH +0xECF9 0x5C3A #CJK UNIFIED IDEOGRAPH +0xECFA 0x617D #CJK UNIFIED IDEOGRAPH +0xECFB 0x621A #CJK UNIFIED IDEOGRAPH +0xECFC 0x62D3 #CJK UNIFIED IDEOGRAPH +0xECFD 0x64F2 #CJK UNIFIED IDEOGRAPH +0xECFE 0x65A5 #CJK UNIFIED IDEOGRAPH +0xEDA1 0x6ECC #CJK UNIFIED IDEOGRAPH +0xEDA2 0x7620 #CJK UNIFIED IDEOGRAPH +0xEDA3 0x810A #CJK UNIFIED IDEOGRAPH +0xEDA4 0x8E60 #CJK UNIFIED IDEOGRAPH +0xEDA5 0x965F #CJK UNIFIED IDEOGRAPH +0xEDA6 0x96BB #CJK UNIFIED IDEOGRAPH +0xEDA7 0x4EDF #CJK UNIFIED IDEOGRAPH +0xEDA8 0x5343 #CJK UNIFIED IDEOGRAPH +0xEDA9 0x5598 #CJK UNIFIED IDEOGRAPH +0xEDAA 0x5929 #CJK UNIFIED IDEOGRAPH +0xEDAB 0x5DDD #CJK UNIFIED IDEOGRAPH +0xEDAC 0x64C5 #CJK UNIFIED IDEOGRAPH +0xEDAD 0x6CC9 #CJK UNIFIED IDEOGRAPH +0xEDAE 0x6DFA #CJK UNIFIED IDEOGRAPH +0xEDAF 0x7394 #CJK UNIFIED IDEOGRAPH +0xEDB0 0x7A7F #CJK UNIFIED IDEOGRAPH +0xEDB1 0x821B #CJK UNIFIED IDEOGRAPH +0xEDB2 0x85A6 #CJK UNIFIED IDEOGRAPH +0xEDB3 0x8CE4 #CJK UNIFIED IDEOGRAPH +0xEDB4 0x8E10 #CJK UNIFIED IDEOGRAPH +0xEDB5 0x9077 #CJK UNIFIED IDEOGRAPH +0xEDB6 0x91E7 #CJK UNIFIED IDEOGRAPH +0xEDB7 0x95E1 #CJK UNIFIED IDEOGRAPH +0xEDB8 0x9621 #CJK UNIFIED IDEOGRAPH +0xEDB9 0x97C6 #CJK UNIFIED IDEOGRAPH +0xEDBA 0x51F8 #CJK UNIFIED IDEOGRAPH +0xEDBB 0x54F2 #CJK UNIFIED IDEOGRAPH +0xEDBC 0x5586 #CJK UNIFIED IDEOGRAPH +0xEDBD 0x5FB9 #CJK UNIFIED IDEOGRAPH +0xEDBE 0x64A4 #CJK UNIFIED IDEOGRAPH +0xEDBF 0x6F88 #CJK UNIFIED IDEOGRAPH +0xEDC0 0x7DB4 #CJK UNIFIED IDEOGRAPH +0xEDC1 0x8F1F #CJK UNIFIED IDEOGRAPH +0xEDC2 0x8F4D #CJK UNIFIED IDEOGRAPH +0xEDC3 0x9435 #CJK UNIFIED IDEOGRAPH +0xEDC4 0x50C9 #CJK UNIFIED IDEOGRAPH +0xEDC5 0x5C16 #CJK UNIFIED IDEOGRAPH +0xEDC6 0x6CBE #CJK UNIFIED IDEOGRAPH +0xEDC7 0x6DFB #CJK UNIFIED IDEOGRAPH +0xEDC8 0x751B #CJK UNIFIED IDEOGRAPH +0xEDC9 0x77BB #CJK UNIFIED IDEOGRAPH +0xEDCA 0x7C3D #CJK UNIFIED IDEOGRAPH +0xEDCB 0x7C64 #CJK UNIFIED IDEOGRAPH +0xEDCC 0x8A79 #CJK UNIFIED IDEOGRAPH +0xEDCD 0x8AC2 #CJK UNIFIED IDEOGRAPH +0xEDCE 0x581E #CJK UNIFIED IDEOGRAPH +0xEDCF 0x59BE #CJK UNIFIED IDEOGRAPH +0xEDD0 0x5E16 #CJK UNIFIED IDEOGRAPH +0xEDD1 0x6377 #CJK UNIFIED IDEOGRAPH +0xEDD2 0x7252 #CJK UNIFIED IDEOGRAPH +0xEDD3 0x758A #CJK UNIFIED IDEOGRAPH +0xEDD4 0x776B #CJK UNIFIED IDEOGRAPH +0xEDD5 0x8ADC #CJK UNIFIED IDEOGRAPH +0xEDD6 0x8CBC #CJK UNIFIED IDEOGRAPH +0xEDD7 0x8F12 #CJK UNIFIED IDEOGRAPH +0xEDD8 0x5EF3 #CJK UNIFIED IDEOGRAPH +0xEDD9 0x6674 #CJK UNIFIED IDEOGRAPH +0xEDDA 0x6DF8 #CJK UNIFIED IDEOGRAPH +0xEDDB 0x807D #CJK UNIFIED IDEOGRAPH +0xEDDC 0x83C1 #CJK UNIFIED IDEOGRAPH +0xEDDD 0x8ACB #CJK UNIFIED IDEOGRAPH +0xEDDE 0x9751 #CJK UNIFIED IDEOGRAPH +0xEDDF 0x9BD6 #CJK UNIFIED IDEOGRAPH +0xEDE0 0x521D #CJK UNIFIED IDEOGRAPH +0xEDE1 0x527F #CJK UNIFIED IDEOGRAPH +0xEDE2 0x54E8 #CJK UNIFIED IDEOGRAPH +0xEDE3 0x6194 #CJK UNIFIED IDEOGRAPH +0xEDE4 0x6284 #CJK UNIFIED IDEOGRAPH +0xEDE5 0x62DB #CJK UNIFIED IDEOGRAPH +0xEDE6 0x68A2 #CJK UNIFIED IDEOGRAPH +0xEDE7 0x6912 #CJK UNIFIED IDEOGRAPH +0xEDE8 0x695A #CJK UNIFIED IDEOGRAPH +0xEDE9 0x6A35 #CJK UNIFIED IDEOGRAPH +0xEDEA 0x7092 #CJK UNIFIED IDEOGRAPH +0xEDEB 0x7126 #CJK UNIFIED IDEOGRAPH +0xEDEC 0x785D #CJK UNIFIED IDEOGRAPH +0xEDED 0x7901 #CJK UNIFIED IDEOGRAPH +0xEDEE 0x790E #CJK UNIFIED IDEOGRAPH +0xEDEF 0x79D2 #CJK UNIFIED IDEOGRAPH +0xEDF0 0x7A0D #CJK UNIFIED IDEOGRAPH +0xEDF1 0x8096 #CJK UNIFIED IDEOGRAPH +0xEDF2 0x8278 #CJK UNIFIED IDEOGRAPH +0xEDF3 0x82D5 #CJK UNIFIED IDEOGRAPH +0xEDF4 0x8349 #CJK UNIFIED IDEOGRAPH +0xEDF5 0x8549 #CJK UNIFIED IDEOGRAPH +0xEDF6 0x8C82 #CJK UNIFIED IDEOGRAPH +0xEDF7 0x8D85 #CJK UNIFIED IDEOGRAPH +0xEDF8 0x9162 #CJK UNIFIED IDEOGRAPH +0xEDF9 0x918B #CJK UNIFIED IDEOGRAPH +0xEDFA 0x91AE #CJK UNIFIED IDEOGRAPH +0xEDFB 0x4FC3 #CJK UNIFIED IDEOGRAPH +0xEDFC 0x55FE #CJK UNIFIED IDEOGRAPH +0xEDFD 0x56D1 #CJK UNIFIED IDEOGRAPH +0xEDFE 0x71ED #CJK UNIFIED IDEOGRAPH +0xEEA1 0x77D7 #CJK UNIFIED IDEOGRAPH +0xEEA2 0x8700 #CJK UNIFIED IDEOGRAPH +0xEEA3 0x89F8 #CJK UNIFIED IDEOGRAPH +0xEEA4 0x5BF8 #CJK UNIFIED IDEOGRAPH +0xEEA5 0x5FD6 #CJK UNIFIED IDEOGRAPH +0xEEA6 0x6751 #CJK UNIFIED IDEOGRAPH +0xEEA7 0x90A8 #CJK UNIFIED IDEOGRAPH +0xEEA8 0x53E2 #CJK UNIFIED IDEOGRAPH +0xEEA9 0x585A #CJK UNIFIED IDEOGRAPH +0xEEAA 0x5BF5 #CJK UNIFIED IDEOGRAPH +0xEEAB 0x60A4 #CJK UNIFIED IDEOGRAPH +0xEEAC 0x6181 #CJK UNIFIED IDEOGRAPH +0xEEAD 0x6460 #CJK UNIFIED IDEOGRAPH +0xEEAE 0x7E3D #CJK UNIFIED IDEOGRAPH +0xEEAF 0x8070 #CJK UNIFIED IDEOGRAPH +0xEEB0 0x8525 #CJK UNIFIED IDEOGRAPH +0xEEB1 0x9283 #CJK UNIFIED IDEOGRAPH +0xEEB2 0x589C #CJK UNIFIED IDEOGRAPH +0xEEB3 0x62BD #CJK UNIFIED IDEOGRAPH +0xEEB4 0x63A8 #CJK UNIFIED IDEOGRAPH +0xEEB5 0x690E #CJK UNIFIED IDEOGRAPH +0xEEB6 0x6978 #CJK UNIFIED IDEOGRAPH +0xEEB7 0x6A1E #CJK UNIFIED IDEOGRAPH +0xEEB8 0x6E6B #CJK UNIFIED IDEOGRAPH +0xEEB9 0x76BA #CJK UNIFIED IDEOGRAPH +0xEEBA 0x79CB #CJK UNIFIED IDEOGRAPH +0xEEBB 0x82BB #CJK UNIFIED IDEOGRAPH +0xEEBC 0x8429 #CJK UNIFIED IDEOGRAPH +0xEEBD 0x8ACF #CJK UNIFIED IDEOGRAPH +0xEEBE 0x8DA8 #CJK UNIFIED IDEOGRAPH +0xEEBF 0x8FFD #CJK UNIFIED IDEOGRAPH +0xEEC0 0x9112 #CJK UNIFIED IDEOGRAPH +0xEEC1 0x914B #CJK UNIFIED IDEOGRAPH +0xEEC2 0x919C #CJK UNIFIED IDEOGRAPH +0xEEC3 0x9310 #CJK UNIFIED IDEOGRAPH +0xEEC4 0x9318 #CJK UNIFIED IDEOGRAPH +0xEEC5 0x939A #CJK UNIFIED IDEOGRAPH +0xEEC6 0x96DB #CJK UNIFIED IDEOGRAPH +0xEEC7 0x9A36 #CJK UNIFIED IDEOGRAPH +0xEEC8 0x9C0D #CJK UNIFIED IDEOGRAPH +0xEEC9 0x4E11 #CJK UNIFIED IDEOGRAPH +0xEECA 0x755C #CJK UNIFIED IDEOGRAPH +0xEECB 0x795D #CJK UNIFIED IDEOGRAPH +0xEECC 0x7AFA #CJK UNIFIED IDEOGRAPH +0xEECD 0x7B51 #CJK UNIFIED IDEOGRAPH +0xEECE 0x7BC9 #CJK UNIFIED IDEOGRAPH +0xEECF 0x7E2E #CJK UNIFIED IDEOGRAPH +0xEED0 0x84C4 #CJK UNIFIED IDEOGRAPH +0xEED1 0x8E59 #CJK UNIFIED IDEOGRAPH +0xEED2 0x8E74 #CJK UNIFIED IDEOGRAPH +0xEED3 0x8EF8 #CJK UNIFIED IDEOGRAPH +0xEED4 0x9010 #CJK UNIFIED IDEOGRAPH +0xEED5 0x6625 #CJK UNIFIED IDEOGRAPH +0xEED6 0x693F #CJK UNIFIED IDEOGRAPH +0xEED7 0x7443 #CJK UNIFIED IDEOGRAPH +0xEED8 0x51FA #CJK UNIFIED IDEOGRAPH +0xEED9 0x672E #CJK UNIFIED IDEOGRAPH +0xEEDA 0x9EDC #CJK UNIFIED IDEOGRAPH +0xEEDB 0x5145 #CJK UNIFIED IDEOGRAPH +0xEEDC 0x5FE0 #CJK UNIFIED IDEOGRAPH +0xEEDD 0x6C96 #CJK UNIFIED IDEOGRAPH +0xEEDE 0x87F2 #CJK UNIFIED IDEOGRAPH +0xEEDF 0x885D #CJK UNIFIED IDEOGRAPH +0xEEE0 0x8877 #CJK UNIFIED IDEOGRAPH +0xEEE1 0x4EC4 #CJK UNIFIED IDEOGRAPH +0xEEE2 0x5074 #CJK UNIFIED IDEOGRAPH +0xEEE3 0x53A0 #CJK UNIFIED IDEOGRAPH +0xEEE4 0x60FB #CJK UNIFIED IDEOGRAPH +0xEEE5 0x6E2C #CJK UNIFIED IDEOGRAPH +0xEEE6 0x95D6 #CJK UNIFIED IDEOGRAPH +0xEEE7 0x5C64 #CJK UNIFIED IDEOGRAPH +0xEEE8 0x4F88 #CJK UNIFIED IDEOGRAPH +0xEEE9 0x5024 #CJK UNIFIED IDEOGRAPH +0xEEEA 0x55E4 #CJK UNIFIED IDEOGRAPH +0xEEEB 0x5CD9 #CJK UNIFIED IDEOGRAPH +0xEEEC 0x5E5F #CJK UNIFIED IDEOGRAPH +0xEEED 0x6065 #CJK UNIFIED IDEOGRAPH +0xEEEE 0x6894 #CJK UNIFIED IDEOGRAPH +0xEEEF 0x6CBB #CJK UNIFIED IDEOGRAPH +0xEEF0 0x6DC4 #CJK UNIFIED IDEOGRAPH +0xEEF1 0x71BE #CJK UNIFIED IDEOGRAPH +0xEEF2 0x75D4 #CJK UNIFIED IDEOGRAPH +0xEEF3 0x75F4 #CJK UNIFIED IDEOGRAPH +0xEEF4 0x7661 #CJK UNIFIED IDEOGRAPH +0xEEF5 0x7A1A #CJK UNIFIED IDEOGRAPH +0xEEF6 0x7A49 #CJK UNIFIED IDEOGRAPH +0xEEF7 0x7DC7 #CJK UNIFIED IDEOGRAPH +0xEEF8 0x7DFB #CJK UNIFIED IDEOGRAPH +0xEEF9 0x7F6E #CJK UNIFIED IDEOGRAPH +0xEEFA 0x81F4 #CJK UNIFIED IDEOGRAPH +0xEEFB 0x86A9 #CJK UNIFIED IDEOGRAPH +0xEEFC 0x8F1C #CJK UNIFIED IDEOGRAPH +0xEEFD 0x96C9 #CJK UNIFIED IDEOGRAPH +0xEEFE 0x99B3 #CJK UNIFIED IDEOGRAPH +0xEFA1 0x9F52 #CJK UNIFIED IDEOGRAPH +0xEFA2 0x5247 #CJK UNIFIED IDEOGRAPH +0xEFA3 0x52C5 #CJK UNIFIED IDEOGRAPH +0xEFA4 0x98ED #CJK UNIFIED IDEOGRAPH +0xEFA5 0x89AA #CJK UNIFIED IDEOGRAPH +0xEFA6 0x4E03 #CJK UNIFIED IDEOGRAPH +0xEFA7 0x67D2 #CJK UNIFIED IDEOGRAPH +0xEFA8 0x6F06 #CJK UNIFIED IDEOGRAPH +0xEFA9 0x4FB5 #CJK UNIFIED IDEOGRAPH +0xEFAA 0x5BE2 #CJK UNIFIED IDEOGRAPH +0xEFAB 0x659F #CJK UNIFIED IDEOGRAPH +0xEFAC 0x6795 #CJK UNIFIED IDEOGRAPH +0xEFAD 0x6C88 #CJK UNIFIED IDEOGRAPH +0xEFAE 0x6D78 #CJK UNIFIED IDEOGRAPH +0xEFAF 0x741B #CJK UNIFIED IDEOGRAPH +0xEFB0 0x7827 #CJK UNIFIED IDEOGRAPH +0xEFB1 0x91DD #CJK UNIFIED IDEOGRAPH +0xEFB2 0x937C #CJK UNIFIED IDEOGRAPH +0xEFB3 0x87C4 #CJK UNIFIED IDEOGRAPH +0xEFB4 0x79E4 #CJK UNIFIED IDEOGRAPH +0xEFB5 0x7A31 #CJK UNIFIED IDEOGRAPH +0xEFB6 0x50B5 #CJK UNIFIED IDEOGRAPH +0xEFB7 0x57F0 #CJK UNIFIED IDEOGRAPH +0xEFB8 0x5BC0 #CJK UNIFIED IDEOGRAPH +0xEFB9 0x5BE8 #CJK UNIFIED IDEOGRAPH +0xEFBA 0x5F69 #CJK UNIFIED IDEOGRAPH +0xEFBB 0x63A1 #CJK UNIFIED IDEOGRAPH +0xEFBC 0x7826 #CJK UNIFIED IDEOGRAPH +0xEFBD 0x7DB5 #CJK UNIFIED IDEOGRAPH +0xEFBE 0x83DC #CJK UNIFIED IDEOGRAPH +0xEFBF 0x8521 #CJK UNIFIED IDEOGRAPH +0xEFC0 0x91C7 #CJK UNIFIED IDEOGRAPH +0xEFC1 0x518A #CJK UNIFIED IDEOGRAPH +0xEFC2 0x67F5 #CJK UNIFIED IDEOGRAPH +0xEFC3 0x7B56 #CJK UNIFIED IDEOGRAPH +0xEFC4 0x8CAC #CJK UNIFIED IDEOGRAPH +0xEFC5 0x4F53 #CJK UNIFIED IDEOGRAPH +0xEFC6 0x5243 #CJK UNIFIED IDEOGRAPH +0xEFC7 0x66FF #CJK UNIFIED IDEOGRAPH +0xEFC8 0x6D95 #CJK UNIFIED IDEOGRAPH +0xEFC9 0x6EEF #CJK UNIFIED IDEOGRAPH +0xEFCA 0x7DE0 #CJK UNIFIED IDEOGRAPH +0xEFCB 0x8AE6 #CJK UNIFIED IDEOGRAPH +0xEFCC 0x902E #CJK UNIFIED IDEOGRAPH +0xEFCD 0x905E #CJK UNIFIED IDEOGRAPH +0xEFCE 0x9AD4 #CJK UNIFIED IDEOGRAPH +0xEFCF 0x50AC #CJK UNIFIED IDEOGRAPH +0xEFD0 0x5D14 #CJK UNIFIED IDEOGRAPH +0xEFD1 0x6700 #CJK UNIFIED IDEOGRAPH +0xEFD2 0x53D6 #CJK UNIFIED IDEOGRAPH +0xEFD3 0x5439 #CJK UNIFIED IDEOGRAPH +0xEFD4 0x5634 #CJK UNIFIED IDEOGRAPH +0xEFD5 0x5A36 #CJK UNIFIED IDEOGRAPH +0xEFD6 0x5C31 #CJK UNIFIED IDEOGRAPH +0xEFD7 0x708A #CJK UNIFIED IDEOGRAPH +0xEFD8 0x7FE0 #CJK UNIFIED IDEOGRAPH +0xEFD9 0x805A #CJK UNIFIED IDEOGRAPH +0xEFDA 0x8106 #CJK UNIFIED IDEOGRAPH +0xEFDB 0x81B5 #CJK UNIFIED IDEOGRAPH +0xEFDC 0x81ED #CJK UNIFIED IDEOGRAPH +0xEFDD 0x8DA3 #CJK UNIFIED IDEOGRAPH +0xEFDE 0x9189 #CJK UNIFIED IDEOGRAPH +0xEFDF 0x9A5F #CJK UNIFIED IDEOGRAPH +0xEFE0 0x9DF2 #CJK UNIFIED IDEOGRAPH +0xEFE1 0x64AE #CJK UNIFIED IDEOGRAPH +0xEFE2 0x60B4 #CJK UNIFIED IDEOGRAPH +0xEFE3 0x8D05 #CJK UNIFIED IDEOGRAPH +0xEFE4 0x8403 #CJK UNIFIED IDEOGRAPH +0xEFE5 0x5FEB #CJK UNIFIED IDEOGRAPH +0xEFE6 0x4ED6 #CJK UNIFIED IDEOGRAPH +0xEFE7 0x4F98 #CJK UNIFIED IDEOGRAPH +0xEFE8 0x54A4 #CJK UNIFIED IDEOGRAPH +0xEFE9 0x553E #CJK UNIFIED IDEOGRAPH +0xEFEA 0x58AE #CJK UNIFIED IDEOGRAPH +0xEFEB 0x59A5 #CJK UNIFIED IDEOGRAPH +0xEFEC 0x60F0 #CJK UNIFIED IDEOGRAPH +0xEFED 0x6253 #CJK UNIFIED IDEOGRAPH +0xEFEE 0x62D6 #CJK UNIFIED IDEOGRAPH +0xEFEF 0x6736 #CJK UNIFIED IDEOGRAPH +0xEFF0 0x6955 #CJK UNIFIED IDEOGRAPH +0xEFF1 0x6A62 #CJK UNIFIED IDEOGRAPH +0xEFF2 0x8235 #CJK UNIFIED IDEOGRAPH +0xEFF3 0x9640 #CJK UNIFIED IDEOGRAPH +0xEFF4 0x99DD #CJK UNIFIED IDEOGRAPH +0xEFF5 0x502C #CJK UNIFIED IDEOGRAPH +0xEFF6 0x5353 #CJK UNIFIED IDEOGRAPH +0xEFF7 0x5544 #CJK UNIFIED IDEOGRAPH +0xEFF8 0x577C #CJK UNIFIED IDEOGRAPH +0xEFF9 0x6258 #CJK UNIFIED IDEOGRAPH +0xEFFA 0x64E2 #CJK UNIFIED IDEOGRAPH +0xEFFB 0x666B #CJK UNIFIED IDEOGRAPH +0xEFFC 0x67DD #CJK UNIFIED IDEOGRAPH +0xEFFD 0x6FC1 #CJK UNIFIED IDEOGRAPH +0xEFFE 0x6FEF #CJK UNIFIED IDEOGRAPH +0xF0A1 0x7422 #CJK UNIFIED IDEOGRAPH +0xF0A2 0x7438 #CJK UNIFIED IDEOGRAPH +0xF0A3 0x8A17 #CJK UNIFIED IDEOGRAPH +0xF0A4 0x9438 #CJK UNIFIED IDEOGRAPH +0xF0A5 0x5451 #CJK UNIFIED IDEOGRAPH +0xF0A6 0x5606 #CJK UNIFIED IDEOGRAPH +0xF0A7 0x5766 #CJK UNIFIED IDEOGRAPH +0xF0A8 0x5F48 #CJK UNIFIED IDEOGRAPH +0xF0A9 0x619A #CJK UNIFIED IDEOGRAPH +0xF0AA 0x6B4E #CJK UNIFIED IDEOGRAPH +0xF0AB 0x7058 #CJK UNIFIED IDEOGRAPH +0xF0AC 0x70AD #CJK UNIFIED IDEOGRAPH +0xF0AD 0x7DBB #CJK UNIFIED IDEOGRAPH +0xF0AE 0x8A95 #CJK UNIFIED IDEOGRAPH +0xF0AF 0x596A #CJK UNIFIED IDEOGRAPH +0xF0B0 0x812B #CJK UNIFIED IDEOGRAPH +0xF0B1 0x63A2 #CJK UNIFIED IDEOGRAPH +0xF0B2 0x7708 #CJK UNIFIED IDEOGRAPH +0xF0B3 0x803D #CJK UNIFIED IDEOGRAPH +0xF0B4 0x8CAA #CJK UNIFIED IDEOGRAPH +0xF0B5 0x5854 #CJK UNIFIED IDEOGRAPH +0xF0B6 0x642D #CJK UNIFIED IDEOGRAPH +0xF0B7 0x69BB #CJK UNIFIED IDEOGRAPH +0xF0B8 0x5B95 #CJK UNIFIED IDEOGRAPH +0xF0B9 0x5E11 #CJK UNIFIED IDEOGRAPH +0xF0BA 0x6E6F #CJK UNIFIED IDEOGRAPH +0xF0BB 0x8569 #CJK UNIFIED IDEOGRAPH +0xF0BC 0x6504 #CJK UNIFIED IDEOGRAPH +0xF0BD 0x514E #CJK UNIFIED IDEOGRAPH +0xF0BE 0x5410 #CJK UNIFIED IDEOGRAPH +0xF0BF 0x571F #CJK UNIFIED IDEOGRAPH +0xF0C0 0x8A0E #CJK UNIFIED IDEOGRAPH +0xF0C1 0x615F #CJK UNIFIED IDEOGRAPH +0xF0C2 0x6876 #CJK UNIFIED IDEOGRAPH +0xF0C3 0x75DB #CJK UNIFIED IDEOGRAPH +0xF0C4 0x7B52 #CJK UNIFIED IDEOGRAPH +0xF0C5 0x7B69 #CJK UNIFIED IDEOGRAPH +0xF0C6 0x7D71 #CJK UNIFIED IDEOGRAPH +0xF0C7 0x901A #CJK UNIFIED IDEOGRAPH +0xF0C8 0x5078 #CJK UNIFIED IDEOGRAPH +0xF0C9 0x5957 #CJK UNIFIED IDEOGRAPH +0xF0CA 0x59AC #CJK UNIFIED IDEOGRAPH +0xF0CB 0x6295 #CJK UNIFIED IDEOGRAPH +0xF0CC 0x900F #CJK UNIFIED IDEOGRAPH +0xF0CD 0x9B2A #CJK UNIFIED IDEOGRAPH +0xF0CE 0x615D #CJK UNIFIED IDEOGRAPH +0xF0CF 0x7279 #CJK UNIFIED IDEOGRAPH +0xF0D0 0x514C #CJK UNIFIED IDEOGRAPH +0xF0D1 0x53F0 #CJK UNIFIED IDEOGRAPH +0xF0D2 0x592A #CJK UNIFIED IDEOGRAPH +0xF0D3 0x6020 #CJK UNIFIED IDEOGRAPH +0xF0D4 0x614B #CJK UNIFIED IDEOGRAPH +0xF0D5 0x6B86 #CJK UNIFIED IDEOGRAPH +0xF0D6 0x6C70 #CJK UNIFIED IDEOGRAPH +0xF0D7 0x6CF0 #CJK UNIFIED IDEOGRAPH +0xF0D8 0x7B1E #CJK UNIFIED IDEOGRAPH +0xF0D9 0x80CE #CJK UNIFIED IDEOGRAPH +0xF0DA 0x82D4 #CJK UNIFIED IDEOGRAPH +0xF0DB 0x8DC6 #CJK UNIFIED IDEOGRAPH +0xF0DC 0x90B0 #CJK UNIFIED IDEOGRAPH +0xF0DD 0x98B1 #CJK UNIFIED IDEOGRAPH +0xF0DE 0x99B1 #CJK UNIFIED IDEOGRAPH +0xF0DF 0x5B85 #CJK UNIFIED IDEOGRAPH +0xF0E0 0x64C7 #CJK UNIFIED IDEOGRAPH +0xF0E1 0x6FA4 #CJK UNIFIED IDEOGRAPH +0xF0E2 0x6491 #CJK UNIFIED IDEOGRAPH +0xF0E3 0x5806 #CJK UNIFIED IDEOGRAPH +0xF0E4 0x69CC #CJK UNIFIED IDEOGRAPH +0xF0E5 0x817F #CJK UNIFIED IDEOGRAPH +0xF0E6 0x892A #CJK UNIFIED IDEOGRAPH +0xF0E7 0x9000 #CJK UNIFIED IDEOGRAPH +0xF0E8 0x9839 #CJK UNIFIED IDEOGRAPH +0xF0E9 0x5761 #CJK UNIFIED IDEOGRAPH +0xF0EA 0x5A46 #CJK UNIFIED IDEOGRAPH +0xF0EB 0x5DF4 #CJK UNIFIED IDEOGRAPH +0xF0EC 0x628A #CJK UNIFIED IDEOGRAPH +0xF0ED 0x64AD #CJK UNIFIED IDEOGRAPH +0xF0EE 0x64FA #CJK UNIFIED IDEOGRAPH +0xF0EF 0x6777 #CJK UNIFIED IDEOGRAPH +0xF0F0 0x6CE2 #CJK UNIFIED IDEOGRAPH +0xF0F1 0x6D3E #CJK UNIFIED IDEOGRAPH +0xF0F2 0x722C #CJK UNIFIED IDEOGRAPH +0xF0F3 0x7436 #CJK UNIFIED IDEOGRAPH +0xF0F4 0x7834 #CJK UNIFIED IDEOGRAPH +0xF0F5 0x7F77 #CJK UNIFIED IDEOGRAPH +0xF0F6 0x82AD #CJK UNIFIED IDEOGRAPH +0xF0F7 0x8DDB #CJK UNIFIED IDEOGRAPH +0xF0F8 0x9642 #CJK UNIFIED IDEOGRAPH +0xF0F9 0x9817 #CJK UNIFIED IDEOGRAPH +0xF0FA 0x5224 #CJK UNIFIED IDEOGRAPH +0xF0FB 0x5742 #CJK UNIFIED IDEOGRAPH +0xF0FC 0x677F #CJK UNIFIED IDEOGRAPH +0xF0FD 0x7248 #CJK UNIFIED IDEOGRAPH +0xF0FE 0x74E3 #CJK UNIFIED IDEOGRAPH +0xF1A1 0x8CA9 #CJK UNIFIED IDEOGRAPH +0xF1A2 0x8FA6 #CJK UNIFIED IDEOGRAPH +0xF1A3 0x9211 #CJK UNIFIED IDEOGRAPH +0xF1A4 0x962A #CJK UNIFIED IDEOGRAPH +0xF1A5 0x516B #CJK UNIFIED IDEOGRAPH +0xF1A6 0x53ED #CJK UNIFIED IDEOGRAPH +0xF1A7 0x634C #CJK UNIFIED IDEOGRAPH +0xF1A8 0x610E #CJK UNIFIED IDEOGRAPH +0xF1A9 0x4FBF #CJK UNIFIED IDEOGRAPH +0xF1AA 0x504F #CJK UNIFIED IDEOGRAPH +0xF1AB 0x6241 #CJK UNIFIED IDEOGRAPH +0xF1AC 0x7247 #CJK UNIFIED IDEOGRAPH +0xF1AD 0x7BC7 #CJK UNIFIED IDEOGRAPH +0xF1AE 0x7DE8 #CJK UNIFIED IDEOGRAPH +0xF1AF 0x7FE9 #CJK UNIFIED IDEOGRAPH +0xF1B0 0x904D #CJK UNIFIED IDEOGRAPH +0xF1B1 0x97AD #CJK UNIFIED IDEOGRAPH +0xF1B2 0x9A19 #CJK UNIFIED IDEOGRAPH +0xF1B3 0x8CB6 #CJK UNIFIED IDEOGRAPH +0xF1B4 0x576A #CJK UNIFIED IDEOGRAPH +0xF1B5 0x5E73 #CJK UNIFIED IDEOGRAPH +0xF1B6 0x67B0 #CJK UNIFIED IDEOGRAPH +0xF1B7 0x840D #CJK UNIFIED IDEOGRAPH +0xF1B8 0x8A55 #CJK UNIFIED IDEOGRAPH +0xF1B9 0x4F48 #CJK UNIFIED IDEOGRAPH +0xF1BA 0x5305 #CJK UNIFIED IDEOGRAPH +0xF1BB 0x530D #CJK UNIFIED IDEOGRAPH +0xF1BC 0x530F #CJK UNIFIED IDEOGRAPH +0xF1BD 0x5486 #CJK UNIFIED IDEOGRAPH +0xF1BE 0x54FA #CJK UNIFIED IDEOGRAPH +0xF1BF 0x5703 #CJK UNIFIED IDEOGRAPH +0xF1C0 0x5E03 #CJK UNIFIED IDEOGRAPH +0xF1C1 0x6016 #CJK UNIFIED IDEOGRAPH +0xF1C2 0x629B #CJK UNIFIED IDEOGRAPH +0xF1C3 0x62B1 #CJK UNIFIED IDEOGRAPH +0xF1C4 0x6355 #CJK UNIFIED IDEOGRAPH +0xF1C5 0x66B4 #CJK UNIFIED IDEOGRAPH +0xF1C6 0x66DD #CJK UNIFIED IDEOGRAPH +0xF1C7 0x6CE1 #CJK UNIFIED IDEOGRAPH +0xF1C8 0x6D66 #CJK UNIFIED IDEOGRAPH +0xF1C9 0x75B1 #CJK UNIFIED IDEOGRAPH +0xF1CA 0x7832 #CJK UNIFIED IDEOGRAPH +0xF1CB 0x80DE #CJK UNIFIED IDEOGRAPH +0xF1CC 0x812F #CJK UNIFIED IDEOGRAPH +0xF1CD 0x82DE #CJK UNIFIED IDEOGRAPH +0xF1CE 0x8461 #CJK UNIFIED IDEOGRAPH +0xF1CF 0x84B2 #CJK UNIFIED IDEOGRAPH +0xF1D0 0x888D #CJK UNIFIED IDEOGRAPH +0xF1D1 0x8912 #CJK UNIFIED IDEOGRAPH +0xF1D2 0x900B #CJK UNIFIED IDEOGRAPH +0xF1D3 0x92EA #CJK UNIFIED IDEOGRAPH +0xF1D4 0x98FD #CJK UNIFIED IDEOGRAPH +0xF1D5 0x9B91 #CJK UNIFIED IDEOGRAPH +0xF1D6 0x5E45 #CJK UNIFIED IDEOGRAPH +0xF1D7 0x7011 #CJK UNIFIED IDEOGRAPH +0xF1D8 0x7206 #CJK UNIFIED IDEOGRAPH +0xF1D9 0x8F3B #CJK UNIFIED IDEOGRAPH +0xF1DA 0x4FF5 #CJK UNIFIED IDEOGRAPH +0xF1DB 0x527D #CJK UNIFIED IDEOGRAPH +0xF1DC 0x5F6A #CJK UNIFIED IDEOGRAPH +0xF1DD 0x6153 #CJK UNIFIED IDEOGRAPH +0xF1DE 0x6753 #CJK UNIFIED IDEOGRAPH +0xF1DF 0x6A19 #CJK UNIFIED IDEOGRAPH +0xF1E0 0x6F02 #CJK UNIFIED IDEOGRAPH +0xF1E1 0x74E2 #CJK UNIFIED IDEOGRAPH +0xF1E2 0x7968 #CJK UNIFIED IDEOGRAPH +0xF1E3 0x8868 #CJK UNIFIED IDEOGRAPH +0xF1E4 0x8C79 #CJK UNIFIED IDEOGRAPH +0xF1E5 0x98C4 #CJK UNIFIED IDEOGRAPH +0xF1E6 0x98C7 #CJK UNIFIED IDEOGRAPH +0xF1E7 0x9A43 #CJK UNIFIED IDEOGRAPH +0xF1E8 0x54C1 #CJK UNIFIED IDEOGRAPH +0xF1E9 0x7A1F #CJK UNIFIED IDEOGRAPH +0xF1EA 0x6953 #CJK UNIFIED IDEOGRAPH +0xF1EB 0x8AF7 #CJK UNIFIED IDEOGRAPH +0xF1EC 0x8C4A #CJK UNIFIED IDEOGRAPH +0xF1ED 0x98A8 #CJK UNIFIED IDEOGRAPH +0xF1EE 0x5F7C #CJK UNIFIED IDEOGRAPH +0xF1EF 0x62AB #CJK UNIFIED IDEOGRAPH +0xF1F0 0x75B2 #CJK UNIFIED IDEOGRAPH +0xF1F1 0x76AE #CJK UNIFIED IDEOGRAPH +0xF1F2 0x88AB #CJK UNIFIED IDEOGRAPH +0xF1F3 0x907F #CJK UNIFIED IDEOGRAPH +0xF1F4 0x5339 #CJK UNIFIED IDEOGRAPH +0xF1F5 0x5F3C #CJK UNIFIED IDEOGRAPH +0xF1F6 0x5FC5 #CJK UNIFIED IDEOGRAPH +0xF1F7 0x73CC #CJK UNIFIED IDEOGRAPH +0xF1F8 0x7562 #CJK UNIFIED IDEOGRAPH +0xF1F9 0x758B #CJK UNIFIED IDEOGRAPH +0xF1FA 0x7B46 #CJK UNIFIED IDEOGRAPH +0xF1FB 0x82FE #CJK UNIFIED IDEOGRAPH +0xF1FC 0x999D #CJK UNIFIED IDEOGRAPH +0xF1FD 0x4E4F #CJK UNIFIED IDEOGRAPH +0xF1FE 0x903C #CJK UNIFIED IDEOGRAPH +0xF2A1 0x4F69 #CJK UNIFIED IDEOGRAPH +0xF2A2 0x5504 #CJK UNIFIED IDEOGRAPH +0xF2A3 0x6096 #CJK UNIFIED IDEOGRAPH +0xF2A4 0x6557 #CJK UNIFIED IDEOGRAPH +0xF2A5 0x6C9B #CJK UNIFIED IDEOGRAPH +0xF2A6 0x6D7F #CJK UNIFIED IDEOGRAPH +0xF2A7 0x724C #CJK UNIFIED IDEOGRAPH +0xF2A8 0x72FD #CJK UNIFIED IDEOGRAPH +0xF2A9 0x7A17 #CJK UNIFIED IDEOGRAPH +0xF2AA 0x8C9D #CJK UNIFIED IDEOGRAPH +0xF2AB 0x8987 #CJK UNIFIED IDEOGRAPH +0xF2AC 0x5F6D #CJK UNIFIED IDEOGRAPH +0xF2AD 0x6F8E #CJK UNIFIED IDEOGRAPH +0xF2AE 0x70F9 #CJK UNIFIED IDEOGRAPH +0xF2AF 0x81A8 #CJK UNIFIED IDEOGRAPH +0xF2B0 0x5420 #CJK UNIFIED IDEOGRAPH +0xF2B1 0x5B16 #CJK UNIFIED IDEOGRAPH +0xF2B2 0x5E63 #CJK UNIFIED IDEOGRAPH +0xF2B3 0x5EE2 #CJK UNIFIED IDEOGRAPH +0xF2B4 0x5F0A #CJK UNIFIED IDEOGRAPH +0xF2B5 0x6583 #CJK UNIFIED IDEOGRAPH +0xF2B6 0x80BA #CJK UNIFIED IDEOGRAPH +0xF2B7 0x853D #CJK UNIFIED IDEOGRAPH +0xF2B8 0x9589 #CJK UNIFIED IDEOGRAPH +0xF2B9 0x965B #CJK UNIFIED IDEOGRAPH +0xF2BA 0x4E0B #CJK UNIFIED IDEOGRAPH +0xF2BB 0x4F55 #CJK UNIFIED IDEOGRAPH +0xF2BC 0x53A6 #CJK UNIFIED IDEOGRAPH +0xF2BD 0x590F #CJK UNIFIED IDEOGRAPH +0xF2BE 0x5EC8 #CJK UNIFIED IDEOGRAPH +0xF2BF 0x6630 #CJK UNIFIED IDEOGRAPH +0xF2C0 0x6CB3 #CJK UNIFIED IDEOGRAPH +0xF2C1 0x7455 #CJK UNIFIED IDEOGRAPH +0xF2C2 0x8377 #CJK UNIFIED IDEOGRAPH +0xF2C3 0x8766 #CJK UNIFIED IDEOGRAPH +0xF2C4 0x8CC0 #CJK UNIFIED IDEOGRAPH +0xF2C5 0x9050 #CJK UNIFIED IDEOGRAPH +0xF2C6 0x971E #CJK UNIFIED IDEOGRAPH +0xF2C7 0x9C15 #CJK UNIFIED IDEOGRAPH +0xF2C8 0x58D1 #CJK UNIFIED IDEOGRAPH +0xF2C9 0x5B78 #CJK UNIFIED IDEOGRAPH +0xF2CA 0x7627 #CJK UNIFIED IDEOGRAPH +0xF2CB 0x8650 #CJK UNIFIED IDEOGRAPH +0xF2CC 0x8B14 #CJK UNIFIED IDEOGRAPH +0xF2CD 0x9DB4 #CJK UNIFIED IDEOGRAPH +0xF2CE 0x5BD2 #CJK UNIFIED IDEOGRAPH +0xF2CF 0x6068 #CJK UNIFIED IDEOGRAPH +0xF2D0 0x608D #CJK UNIFIED IDEOGRAPH +0xF2D1 0x65F1 #CJK UNIFIED IDEOGRAPH +0xF2D2 0x6C57 #CJK UNIFIED IDEOGRAPH +0xF2D3 0x6F22 #CJK UNIFIED IDEOGRAPH +0xF2D4 0x6FA3 #CJK UNIFIED IDEOGRAPH +0xF2D5 0x701A #CJK UNIFIED IDEOGRAPH +0xF2D6 0x7F55 #CJK UNIFIED IDEOGRAPH +0xF2D7 0x7FF0 #CJK UNIFIED IDEOGRAPH +0xF2D8 0x9592 #CJK UNIFIED IDEOGRAPH +0xF2D9 0x9591 #CJK UNIFIED IDEOGRAPH +0xF2DA 0x9650 #CJK UNIFIED IDEOGRAPH +0xF2DB 0x97D3 #CJK UNIFIED IDEOGRAPH +0xF2DC 0x5272 #CJK UNIFIED IDEOGRAPH +0xF2DD 0x8F44 #CJK UNIFIED IDEOGRAPH +0xF2DE 0x51FD #CJK UNIFIED IDEOGRAPH +0xF2DF 0x542B #CJK UNIFIED IDEOGRAPH +0xF2E0 0x54B8 #CJK UNIFIED IDEOGRAPH +0xF2E1 0x5563 #CJK UNIFIED IDEOGRAPH +0xF2E2 0x558A #CJK UNIFIED IDEOGRAPH +0xF2E3 0x6657 #CJK UNIFIED IDEOGRAPH +0xF2E4 0x6ABB #CJK UNIFIED IDEOGRAPH +0xF2E5 0x6DB5 #CJK UNIFIED IDEOGRAPH +0xF2E6 0x7DD8 #CJK UNIFIED IDEOGRAPH +0xF2E7 0x8266 #CJK UNIFIED IDEOGRAPH +0xF2E8 0x929C #CJK UNIFIED IDEOGRAPH +0xF2E9 0x9677 #CJK UNIFIED IDEOGRAPH +0xF2EA 0x9E79 #CJK UNIFIED IDEOGRAPH +0xF2EB 0x5408 #CJK UNIFIED IDEOGRAPH +0xF2EC 0x54C8 #CJK UNIFIED IDEOGRAPH +0xF2ED 0x76D2 #CJK UNIFIED IDEOGRAPH +0xF2EE 0x86E4 #CJK UNIFIED IDEOGRAPH +0xF2EF 0x95A4 #CJK UNIFIED IDEOGRAPH +0xF2F0 0x95D4 #CJK UNIFIED IDEOGRAPH +0xF2F1 0x4EA2 #CJK UNIFIED IDEOGRAPH +0xF2F2 0x4F09 #CJK UNIFIED IDEOGRAPH +0xF2F3 0x59EE #CJK UNIFIED IDEOGRAPH +0xF2F4 0x5AE6 #CJK UNIFIED IDEOGRAPH +0xF2F5 0x5DF7 #CJK UNIFIED IDEOGRAPH +0xF2F6 0x6052 #CJK UNIFIED IDEOGRAPH +0xF2F7 0x6297 #CJK UNIFIED IDEOGRAPH +0xF2F8 0x676D #CJK UNIFIED IDEOGRAPH +0xF2F9 0x6841 #CJK UNIFIED IDEOGRAPH +0xF2FA 0x6C86 #CJK UNIFIED IDEOGRAPH +0xF2FB 0x6E2F #CJK UNIFIED IDEOGRAPH +0xF2FC 0x7F38 #CJK UNIFIED IDEOGRAPH +0xF2FD 0x809B #CJK UNIFIED IDEOGRAPH +0xF2FE 0x822A #CJK UNIFIED IDEOGRAPH +0xF3A1 0x9805 #CJK UNIFIED IDEOGRAPH +0xF3A2 0x4EAB #CJK UNIFIED IDEOGRAPH +0xF3A3 0x5411 #CJK UNIFIED IDEOGRAPH +0xF3A4 0x56AE #CJK UNIFIED IDEOGRAPH +0xF3A5 0x73E6 #CJK UNIFIED IDEOGRAPH +0xF3A6 0x9115 #CJK UNIFIED IDEOGRAPH +0xF3A7 0x97FF #CJK UNIFIED IDEOGRAPH +0xF3A8 0x9909 #CJK UNIFIED IDEOGRAPH +0xF3A9 0x9957 #CJK UNIFIED IDEOGRAPH +0xF3AA 0x9999 #CJK UNIFIED IDEOGRAPH +0xF3AB 0x5653 #CJK UNIFIED IDEOGRAPH +0xF3AC 0x589F #CJK UNIFIED IDEOGRAPH +0xF3AD 0x865B #CJK UNIFIED IDEOGRAPH +0xF3AE 0x8A31 #CJK UNIFIED IDEOGRAPH +0xF3AF 0x61B2 #CJK UNIFIED IDEOGRAPH +0xF3B0 0x6AF6 #CJK UNIFIED IDEOGRAPH +0xF3B1 0x737B #CJK UNIFIED IDEOGRAPH +0xF3B2 0x8ED2 #CJK UNIFIED IDEOGRAPH +0xF3B3 0x6B47 #CJK UNIFIED IDEOGRAPH +0xF3B4 0x96AA #CJK UNIFIED IDEOGRAPH +0xF3B5 0x9A57 #CJK UNIFIED IDEOGRAPH +0xF3B6 0x5955 #CJK UNIFIED IDEOGRAPH +0xF3B7 0x7200 #CJK UNIFIED IDEOGRAPH +0xF3B8 0x8D6B #CJK UNIFIED IDEOGRAPH +0xF3B9 0x9769 #CJK UNIFIED IDEOGRAPH +0xF3BA 0x4FD4 #CJK UNIFIED IDEOGRAPH +0xF3BB 0x5CF4 #CJK UNIFIED IDEOGRAPH +0xF3BC 0x5F26 #CJK UNIFIED IDEOGRAPH +0xF3BD 0x61F8 #CJK UNIFIED IDEOGRAPH +0xF3BE 0x665B #CJK UNIFIED IDEOGRAPH +0xF3BF 0x6CEB #CJK UNIFIED IDEOGRAPH +0xF3C0 0x70AB #CJK UNIFIED IDEOGRAPH +0xF3C1 0x73B9 #CJK UNIFIED IDEOGRAPH +0xF3C2 0x73FE #CJK UNIFIED IDEOGRAPH +0xF3C3 0x7384 #CJK UNIFIED IDEOGRAPH +0xF3C4 0x7729 #CJK UNIFIED IDEOGRAPH +0xF3C5 0x774D #CJK UNIFIED IDEOGRAPH +0xF3C6 0x7D43 #CJK UNIFIED IDEOGRAPH +0xF3C7 0x7D62 #CJK UNIFIED IDEOGRAPH +0xF3C8 0x7E23 #CJK UNIFIED IDEOGRAPH +0xF3C9 0x8237 #CJK UNIFIED IDEOGRAPH +0xF3CA 0x8852 #CJK UNIFIED IDEOGRAPH +0xF3CB 0x8CE2 #CJK UNIFIED IDEOGRAPH +0xF3CC 0x9249 #CJK UNIFIED IDEOGRAPH +0xF3CD 0x986F #CJK UNIFIED IDEOGRAPH +0xF3CE 0x5B51 #CJK UNIFIED IDEOGRAPH +0xF3CF 0x7A74 #CJK UNIFIED IDEOGRAPH +0xF3D0 0x8840 #CJK UNIFIED IDEOGRAPH +0xF3D1 0x9801 #CJK UNIFIED IDEOGRAPH +0xF3D2 0x5ACC #CJK UNIFIED IDEOGRAPH +0xF3D3 0x4FE0 #CJK UNIFIED IDEOGRAPH +0xF3D4 0x5354 #CJK UNIFIED IDEOGRAPH +0xF3D5 0x593E #CJK UNIFIED IDEOGRAPH +0xF3D6 0x5CFD #CJK UNIFIED IDEOGRAPH +0xF3D7 0x633E #CJK UNIFIED IDEOGRAPH +0xF3D8 0x6D79 #CJK UNIFIED IDEOGRAPH +0xF3D9 0x72F9 #CJK UNIFIED IDEOGRAPH +0xF3DA 0x8105 #CJK UNIFIED IDEOGRAPH +0xF3DB 0x8107 #CJK UNIFIED IDEOGRAPH +0xF3DC 0x83A2 #CJK UNIFIED IDEOGRAPH +0xF3DD 0x92CF #CJK UNIFIED IDEOGRAPH +0xF3DE 0x965C #CJK UNIFIED IDEOGRAPH +0xF3DF 0x9830 #CJK UNIFIED IDEOGRAPH +0xF3E0 0x4EA8 #CJK UNIFIED IDEOGRAPH +0xF3E1 0x5144 #CJK UNIFIED IDEOGRAPH +0xF3E2 0x5211 #CJK UNIFIED IDEOGRAPH +0xF3E3 0x578B #CJK UNIFIED IDEOGRAPH +0xF3E4 0x5F62 #CJK UNIFIED IDEOGRAPH +0xF3E5 0x6CC2 #CJK UNIFIED IDEOGRAPH +0xF3E6 0x6ECE #CJK UNIFIED IDEOGRAPH +0xF3E7 0x7005 #CJK UNIFIED IDEOGRAPH +0xF3E8 0x7050 #CJK UNIFIED IDEOGRAPH +0xF3E9 0x70AF #CJK UNIFIED IDEOGRAPH +0xF3EA 0x7192 #CJK UNIFIED IDEOGRAPH +0xF3EB 0x73E9 #CJK UNIFIED IDEOGRAPH +0xF3EC 0x834A #CJK UNIFIED IDEOGRAPH +0xF3ED 0x87A2 #CJK UNIFIED IDEOGRAPH +0xF3EE 0x8861 #CJK UNIFIED IDEOGRAPH +0xF3EF 0x9008 #CJK UNIFIED IDEOGRAPH +0xF3F0 0x90A2 #CJK UNIFIED IDEOGRAPH +0xF3F1 0x93A3 #CJK UNIFIED IDEOGRAPH +0xF3F2 0x99A8 #CJK UNIFIED IDEOGRAPH +0xF3F3 0x4E4E #CJK UNIFIED IDEOGRAPH +0xF3F4 0x4E92 #CJK UNIFIED IDEOGRAPH +0xF3F5 0x547C #CJK UNIFIED IDEOGRAPH +0xF3F6 0x58D5 #CJK UNIFIED IDEOGRAPH +0xF3F7 0x58FA #CJK UNIFIED IDEOGRAPH +0xF3F8 0x597D #CJK UNIFIED IDEOGRAPH +0xF3F9 0x5CB5 #CJK UNIFIED IDEOGRAPH +0xF3FA 0x5F27 #CJK UNIFIED IDEOGRAPH +0xF3FB 0x6236 #CJK UNIFIED IDEOGRAPH +0xF3FC 0x6248 #CJK UNIFIED IDEOGRAPH +0xF3FD 0x660A #CJK UNIFIED IDEOGRAPH +0xF3FE 0x6667 #CJK UNIFIED IDEOGRAPH +0xF4A1 0x6BEB #CJK UNIFIED IDEOGRAPH +0xF4A2 0x6D69 #CJK UNIFIED IDEOGRAPH +0xF4A3 0x6DCF #CJK UNIFIED IDEOGRAPH +0xF4A4 0x6E56 #CJK UNIFIED IDEOGRAPH +0xF4A5 0x6EF8 #CJK UNIFIED IDEOGRAPH +0xF4A6 0x6F94 #CJK UNIFIED IDEOGRAPH +0xF4A7 0x6FE0 #CJK UNIFIED IDEOGRAPH +0xF4A8 0x6FE9 #CJK UNIFIED IDEOGRAPH +0xF4A9 0x705D #CJK UNIFIED IDEOGRAPH +0xF4AA 0x72D0 #CJK UNIFIED IDEOGRAPH +0xF4AB 0x7425 #CJK UNIFIED IDEOGRAPH +0xF4AC 0x745A #CJK UNIFIED IDEOGRAPH +0xF4AD 0x74E0 #CJK UNIFIED IDEOGRAPH +0xF4AE 0x7693 #CJK UNIFIED IDEOGRAPH +0xF4AF 0x795C #CJK UNIFIED IDEOGRAPH +0xF4B0 0x7CCA #CJK UNIFIED IDEOGRAPH +0xF4B1 0x7E1E #CJK UNIFIED IDEOGRAPH +0xF4B2 0x80E1 #CJK UNIFIED IDEOGRAPH +0xF4B3 0x82A6 #CJK UNIFIED IDEOGRAPH +0xF4B4 0x846B #CJK UNIFIED IDEOGRAPH +0xF4B5 0x84BF #CJK UNIFIED IDEOGRAPH +0xF4B6 0x864E #CJK UNIFIED IDEOGRAPH +0xF4B7 0x865F #CJK UNIFIED IDEOGRAPH +0xF4B8 0x8774 #CJK UNIFIED IDEOGRAPH +0xF4B9 0x8B77 #CJK UNIFIED IDEOGRAPH +0xF4BA 0x8C6A #CJK UNIFIED IDEOGRAPH +0xF4BB 0x93AC #CJK UNIFIED IDEOGRAPH +0xF4BC 0x9800 #CJK UNIFIED IDEOGRAPH +0xF4BD 0x9865 #CJK UNIFIED IDEOGRAPH +0xF4BE 0x60D1 #CJK UNIFIED IDEOGRAPH +0xF4BF 0x6216 #CJK UNIFIED IDEOGRAPH +0xF4C0 0x9177 #CJK UNIFIED IDEOGRAPH +0xF4C1 0x5A5A #CJK UNIFIED IDEOGRAPH +0xF4C2 0x660F #CJK UNIFIED IDEOGRAPH +0xF4C3 0x6DF7 #CJK UNIFIED IDEOGRAPH +0xF4C4 0x6E3E #CJK UNIFIED IDEOGRAPH +0xF4C5 0x743F #CJK UNIFIED IDEOGRAPH +0xF4C6 0x9B42 #CJK UNIFIED IDEOGRAPH +0xF4C7 0x5FFD #CJK UNIFIED IDEOGRAPH +0xF4C8 0x60DA #CJK UNIFIED IDEOGRAPH +0xF4C9 0x7B0F #CJK UNIFIED IDEOGRAPH +0xF4CA 0x54C4 #CJK UNIFIED IDEOGRAPH +0xF4CB 0x5F18 #CJK UNIFIED IDEOGRAPH +0xF4CC 0x6C5E #CJK UNIFIED IDEOGRAPH +0xF4CD 0x6CD3 #CJK UNIFIED IDEOGRAPH +0xF4CE 0x6D2A #CJK UNIFIED IDEOGRAPH +0xF4CF 0x70D8 #CJK UNIFIED IDEOGRAPH +0xF4D0 0x7D05 #CJK UNIFIED IDEOGRAPH +0xF4D1 0x8679 #CJK UNIFIED IDEOGRAPH +0xF4D2 0x8A0C #CJK UNIFIED IDEOGRAPH +0xF4D3 0x9D3B #CJK UNIFIED IDEOGRAPH +0xF4D4 0x54EE #CJK UNIFIED IDEOGRAPH +0xF4D5 0x5686 #CJK UNIFIED IDEOGRAPH +0xF4D6 0x5B5D #CJK UNIFIED IDEOGRAPH +0xF4D7 0x6548 #CJK UNIFIED IDEOGRAPH +0xF4D8 0x6585 #CJK UNIFIED IDEOGRAPH +0xF4D9 0x66C9 #CJK UNIFIED IDEOGRAPH +0xF4DA 0x689F #CJK UNIFIED IDEOGRAPH +0xF4DB 0x6D8D #CJK UNIFIED IDEOGRAPH +0xF4DC 0x6DC6 #CJK UNIFIED IDEOGRAPH +0xF4DD 0x723B #CJK UNIFIED IDEOGRAPH +0xF4DE 0x80B4 #CJK UNIFIED IDEOGRAPH +0xF4DF 0x9175 #CJK UNIFIED IDEOGRAPH +0xF4E0 0x9A4D #CJK UNIFIED IDEOGRAPH +0xF4E1 0x4FAF #CJK UNIFIED IDEOGRAPH +0xF4E2 0x5019 #CJK UNIFIED IDEOGRAPH +0xF4E3 0x539A #CJK UNIFIED IDEOGRAPH +0xF4E4 0x540E #CJK UNIFIED IDEOGRAPH +0xF4E5 0x543C #CJK UNIFIED IDEOGRAPH +0xF4E6 0x5589 #CJK UNIFIED IDEOGRAPH +0xF4E7 0x55C5 #CJK UNIFIED IDEOGRAPH +0xF4E8 0x5E3F #CJK UNIFIED IDEOGRAPH +0xF4E9 0x5F8C #CJK UNIFIED IDEOGRAPH +0xF4EA 0x673D #CJK UNIFIED IDEOGRAPH +0xF4EB 0x7166 #CJK UNIFIED IDEOGRAPH +0xF4EC 0x73DD #CJK UNIFIED IDEOGRAPH +0xF4ED 0x9005 #CJK UNIFIED IDEOGRAPH +0xF4EE 0x9B0D #CJK UNIFIED IDEOGRAPH +0xF4EF 0x52DB #CJK UNIFIED IDEOGRAPH +0xF4F0 0x52F3 #CJK UNIFIED IDEOGRAPH +0xF4F1 0x5864 #CJK UNIFIED IDEOGRAPH +0xF4F2 0x58CE #CJK UNIFIED IDEOGRAPH +0xF4F3 0x7104 #CJK UNIFIED IDEOGRAPH +0xF4F4 0x6688 #CJK UNIFIED IDEOGRAPH +0xF4F5 0x718F #CJK UNIFIED IDEOGRAPH +0xF4F6 0x71FB #CJK UNIFIED IDEOGRAPH +0xF4F7 0x85B0 #CJK UNIFIED IDEOGRAPH +0xF4F8 0x8A13 #CJK UNIFIED IDEOGRAPH +0xF4F9 0x85A8 #CJK UNIFIED IDEOGRAPH +0xF4FA 0x4F11 #CJK UNIFIED IDEOGRAPH +0xF4FB 0x643A #CJK UNIFIED IDEOGRAPH +0xF4FC 0x70CB #CJK UNIFIED IDEOGRAPH +0xF4FD 0x8667 #CJK UNIFIED IDEOGRAPH +0xF4FE 0x6064 #CJK UNIFIED IDEOGRAPH +0xF5A1 0x8B4E #CJK UNIFIED IDEOGRAPH +0xF5A2 0x9DF8 #CJK UNIFIED IDEOGRAPH +0xF5A3 0x5147 #CJK UNIFIED IDEOGRAPH +0xF5A4 0x51F6 #CJK UNIFIED IDEOGRAPH +0xF5A5 0x5308 #CJK UNIFIED IDEOGRAPH +0xF5A6 0x6D36 #CJK UNIFIED IDEOGRAPH +0xF5A7 0x80F8 #CJK UNIFIED IDEOGRAPH +0xF5A8 0x9ED1 #CJK UNIFIED IDEOGRAPH +0xF5A9 0x6615 #CJK UNIFIED IDEOGRAPH +0xF5AA 0x6B23 #CJK UNIFIED IDEOGRAPH +0xF5AB 0x7098 #CJK UNIFIED IDEOGRAPH +0xF5AC 0x75D5 #CJK UNIFIED IDEOGRAPH +0xF5AD 0x5403 #CJK UNIFIED IDEOGRAPH +0xF5AE 0x5C79 #CJK UNIFIED IDEOGRAPH +0xF5AF 0x7D07 #CJK UNIFIED IDEOGRAPH +0xF5B0 0x8A16 #CJK UNIFIED IDEOGRAPH +0xF5B1 0x6B20 #CJK UNIFIED IDEOGRAPH +0xF5B2 0x6B3D #CJK UNIFIED IDEOGRAPH +0xF5B3 0x6B46 #CJK UNIFIED IDEOGRAPH +0xF5B4 0x5438 #CJK UNIFIED IDEOGRAPH +0xF5B5 0x6070 #CJK UNIFIED IDEOGRAPH +0xF5B6 0x6D3D #CJK UNIFIED IDEOGRAPH +0xF5B7 0x7FD5 #CJK UNIFIED IDEOGRAPH +0xF5B8 0x8208 #CJK UNIFIED IDEOGRAPH +0xF5B9 0x8A70 #CJK UNIFIED IDEOGRAPH +0xF5BA 0x4EA5 #CJK UNIFIED IDEOGRAPH +0xF5BB 0x5055 #CJK UNIFIED IDEOGRAPH +0xF5BC 0x54B3 #CJK UNIFIED IDEOGRAPH +0xF5BD 0x5793 #CJK UNIFIED IDEOGRAPH +0xF5BE 0x595A #CJK UNIFIED IDEOGRAPH +0xF5BF 0x5B69 #CJK UNIFIED IDEOGRAPH +0xF5C0 0x5BB3 #CJK UNIFIED IDEOGRAPH +0xF5C1 0x61C8 #CJK UNIFIED IDEOGRAPH +0xF5C2 0x6977 #CJK UNIFIED IDEOGRAPH +0xF5C3 0x6D77 #CJK UNIFIED IDEOGRAPH +0xF5C4 0x7023 #CJK UNIFIED IDEOGRAPH +0xF5C5 0x87F9 #CJK UNIFIED IDEOGRAPH +0xF5C6 0x89E3 #CJK UNIFIED IDEOGRAPH +0xF5C7 0x8A72 #CJK UNIFIED IDEOGRAPH +0xF5C8 0x8AE7 #CJK UNIFIED IDEOGRAPH +0xF5C9 0x9082 #CJK UNIFIED IDEOGRAPH +0xF5CA 0x99ED #CJK UNIFIED IDEOGRAPH +0xF5CB 0x9AB8 #CJK UNIFIED IDEOGRAPH +0xF5CC 0x52BE #CJK UNIFIED IDEOGRAPH +0xF5CD 0x6838 #CJK UNIFIED IDEOGRAPH +0xF5CE 0x5016 #CJK UNIFIED IDEOGRAPH +0xF5CF 0x5E78 #CJK UNIFIED IDEOGRAPH +0xF5D0 0x674F #CJK UNIFIED IDEOGRAPH +0xF5D1 0x8347 #CJK UNIFIED IDEOGRAPH +0xF5D2 0x884C #CJK UNIFIED IDEOGRAPH +0xF5D3 0x516E #CJK UNIFIED IDEOGRAPH +0xF5D4 0x5F57 #CJK UNIFIED IDEOGRAPH +0xF5D5 0x60E0 #CJK UNIFIED IDEOGRAPH +0xF5D6 0x6167 #CJK UNIFIED IDEOGRAPH +0xF5D7 0x66B3 #CJK UNIFIED IDEOGRAPH +0xF5D8 0x8559 #CJK UNIFIED IDEOGRAPH +0xF5D9 0x8E4A #CJK UNIFIED IDEOGRAPH +0xF5DA 0x91AF #CJK UNIFIED IDEOGRAPH +0xF5DB 0x978B #CJK UNIFIED IDEOGRAPH +0xF5DC 0x532F #CJK UNIFIED IDEOGRAPH +0xF5DD 0x56DE #CJK UNIFIED IDEOGRAPH +0xF5DE 0x5EFB #CJK UNIFIED IDEOGRAPH +0xF5DF 0x5F8A #CJK UNIFIED IDEOGRAPH +0xF5E0 0x6062 #CJK UNIFIED IDEOGRAPH +0xF5E1 0x6094 #CJK UNIFIED IDEOGRAPH +0xF5E2 0x61F7 #CJK UNIFIED IDEOGRAPH +0xF5E3 0x6666 #CJK UNIFIED IDEOGRAPH +0xF5E4 0x6703 #CJK UNIFIED IDEOGRAPH +0xF5E5 0x6A9C #CJK UNIFIED IDEOGRAPH +0xF5E6 0x6DEE #CJK UNIFIED IDEOGRAPH +0xF5E7 0x6FAE #CJK UNIFIED IDEOGRAPH +0xF5E8 0x7070 #CJK UNIFIED IDEOGRAPH +0xF5E9 0x736A #CJK UNIFIED IDEOGRAPH +0xF5EA 0x7E6A #CJK UNIFIED IDEOGRAPH +0xF5EB 0x81BE #CJK UNIFIED IDEOGRAPH +0xF5EC 0x8334 #CJK UNIFIED IDEOGRAPH +0xF5ED 0x86D4 #CJK UNIFIED IDEOGRAPH +0xF5EE 0x8AA8 #CJK UNIFIED IDEOGRAPH +0xF5EF 0x8CC4 #CJK UNIFIED IDEOGRAPH +0xF5F0 0x5283 #CJK UNIFIED IDEOGRAPH +0xF5F1 0x7372 #CJK UNIFIED IDEOGRAPH +0xF5F2 0x5B96 #CJK UNIFIED IDEOGRAPH +0xF5F3 0x6A6B #CJK UNIFIED IDEOGRAPH +0xF5F4 0x5F59 #CJK UNIFIED IDEOGRAPH +0xF5F5 0x5FBD #CJK UNIFIED IDEOGRAPH +0xF5F6 0x63EE #CJK UNIFIED IDEOGRAPH +0xF5F7 0x6689 #CJK UNIFIED IDEOGRAPH +0xF5F8 0x7147 #CJK UNIFIED IDEOGRAPH +0xF5F9 0x8AF1 #CJK UNIFIED IDEOGRAPH +0xF5FA 0x8F1D #CJK UNIFIED IDEOGRAPH +0xF5FB 0x9EBE #CJK UNIFIED IDEOGRAPH +0xF5FC 0x50D6 #CJK UNIFIED IDEOGRAPH +0xF5FD 0x51DE #CJK UNIFIED IDEOGRAPH +0xF5FE 0x559C #CJK UNIFIED IDEOGRAPH +0xF6A1 0x566B #CJK UNIFIED IDEOGRAPH +0xF6A2 0x56CD #CJK UNIFIED IDEOGRAPH +0xF6A3 0x59EC #CJK UNIFIED IDEOGRAPH +0xF6A4 0x5B09 #CJK UNIFIED IDEOGRAPH +0xF6A5 0x5E0C #CJK UNIFIED IDEOGRAPH +0xF6A6 0x6199 #CJK UNIFIED IDEOGRAPH +0xF6A7 0x6198 #CJK UNIFIED IDEOGRAPH +0xF6A8 0x6231 #CJK UNIFIED IDEOGRAPH +0xF6A9 0x665E #CJK UNIFIED IDEOGRAPH +0xF6AA 0x66E6 #CJK UNIFIED IDEOGRAPH +0xF6AB 0x7199 #CJK UNIFIED IDEOGRAPH +0xF6AC 0x71B9 #CJK UNIFIED IDEOGRAPH +0xF6AD 0x71BA #CJK UNIFIED IDEOGRAPH +0xF6AE 0x72A7 #CJK UNIFIED IDEOGRAPH +0xF6AF 0x79A7 #CJK UNIFIED IDEOGRAPH +0xF6B0 0x7A00 #CJK UNIFIED IDEOGRAPH +0xF6B1 0x7FB2 #CJK UNIFIED IDEOGRAPH +0xF6B2 0x5316 #CJK UNIFIED IDEOGRAPH +0xF6B3 0x548C #CJK UNIFIED IDEOGRAPH +0xF6B4 0x5B05 #CJK UNIFIED IDEOGRAPH +0xF6B5 0x6A3A #CJK UNIFIED IDEOGRAPH +0xF6B6 0x706B #CJK UNIFIED IDEOGRAPH +0xF6B7 0x7575 #CJK UNIFIED IDEOGRAPH +0xF6B8 0x798D #CJK UNIFIED IDEOGRAPH +0xF6B9 0x79BE #CJK UNIFIED IDEOGRAPH +0xF6BA 0x82B1 #CJK UNIFIED IDEOGRAPH +0xF6BB 0x83EF #CJK UNIFIED IDEOGRAPH +0xF6BC 0x8A71 #CJK UNIFIED IDEOGRAPH +0xF6BD 0x8B41 #CJK UNIFIED IDEOGRAPH +0xF6BE 0x8CA8 #CJK UNIFIED IDEOGRAPH +0xF6BF 0x9774 #CJK UNIFIED IDEOGRAPH +0xF6C0 0x64F4 #CJK UNIFIED IDEOGRAPH +0xF6C1 0x652B #CJK UNIFIED IDEOGRAPH +0xF6C2 0x78BA #CJK UNIFIED IDEOGRAPH +0xF6C3 0x78BB #CJK UNIFIED IDEOGRAPH +0xF6C4 0x7A6B #CJK UNIFIED IDEOGRAPH +0xF6C5 0x4E38 #CJK UNIFIED IDEOGRAPH +0xF6C6 0x559A #CJK UNIFIED IDEOGRAPH +0xF6C7 0x5950 #CJK UNIFIED IDEOGRAPH +0xF6C8 0x5BA6 #CJK UNIFIED IDEOGRAPH +0xF6C9 0x5E7B #CJK UNIFIED IDEOGRAPH +0xF6CA 0x60A3 #CJK UNIFIED IDEOGRAPH +0xF6CB 0x63DB #CJK UNIFIED IDEOGRAPH +0xF6CC 0x6853 #CJK UNIFIED IDEOGRAPH +0xF6CD 0x6B61 #CJK UNIFIED IDEOGRAPH +0xF6CE 0x6665 #CJK UNIFIED IDEOGRAPH +0xF6CF 0x6E19 #CJK UNIFIED IDEOGRAPH +0xF6D0 0x7165 #CJK UNIFIED IDEOGRAPH +0xF6D1 0x74B0 #CJK UNIFIED IDEOGRAPH +0xF6D2 0x7D08 #CJK UNIFIED IDEOGRAPH +0xF6D3 0x9084 #CJK UNIFIED IDEOGRAPH +0xF6D4 0x9A69 #CJK UNIFIED IDEOGRAPH +0xF6D5 0x9C25 #CJK UNIFIED IDEOGRAPH +0xF6D6 0x6D3B #CJK UNIFIED IDEOGRAPH +0xF6D7 0x6ED1 #CJK UNIFIED IDEOGRAPH +0xF6D8 0x733E #CJK UNIFIED IDEOGRAPH +0xF6D9 0x8C41 #CJK UNIFIED IDEOGRAPH +0xF6DA 0x95CA #CJK UNIFIED IDEOGRAPH +0xF6DB 0x51F0 #CJK UNIFIED IDEOGRAPH +0xF6DC 0x5E4C #CJK UNIFIED IDEOGRAPH +0xF6DD 0x5FA8 #CJK UNIFIED IDEOGRAPH +0xF6DE 0x604D #CJK UNIFIED IDEOGRAPH +0xF6DF 0x60F6 #CJK UNIFIED IDEOGRAPH +0xF6E0 0x6130 #CJK UNIFIED IDEOGRAPH +0xF6E1 0x614C #CJK UNIFIED IDEOGRAPH +0xF6E2 0x6643 #CJK UNIFIED IDEOGRAPH +0xF6E3 0x6644 #CJK UNIFIED IDEOGRAPH +0xF6E4 0x69A5 #CJK UNIFIED IDEOGRAPH +0xF6E5 0x6CC1 #CJK UNIFIED IDEOGRAPH +0xF6E6 0x6E5F #CJK UNIFIED IDEOGRAPH +0xF6E7 0x6EC9 #CJK UNIFIED IDEOGRAPH +0xF6E8 0x6F62 #CJK UNIFIED IDEOGRAPH +0xF6E9 0x714C #CJK UNIFIED IDEOGRAPH +0xF6EA 0x749C #CJK UNIFIED IDEOGRAPH +0xF6EB 0x7687 #CJK UNIFIED IDEOGRAPH +0xF6EC 0x7BC1 #CJK UNIFIED IDEOGRAPH +0xF6ED 0x7C27 #CJK UNIFIED IDEOGRAPH +0xF6EE 0x8352 #CJK UNIFIED IDEOGRAPH +0xF6EF 0x8757 #CJK UNIFIED IDEOGRAPH +0xF6F0 0x9051 #CJK UNIFIED IDEOGRAPH +0xF6F1 0x9404 #CJK UNIFIED IDEOGRAPH +0xF6F2 0x968D #CJK UNIFIED IDEOGRAPH +0xF6F3 0x9EC3 #CJK UNIFIED IDEOGRAPH +0xF6F4 0x55A7 #CJK UNIFIED IDEOGRAPH +0xF6F5 0x6684 #CJK UNIFIED IDEOGRAPH +0xF6F6 0x714A #CJK UNIFIED IDEOGRAPH +0xF6F7 0x8431 #CJK UNIFIED IDEOGRAPH +0xF6F8 0x5349 #CJK UNIFIED IDEOGRAPH +0xF6F9 0x5599 #CJK UNIFIED IDEOGRAPH +0xF6FA 0x6BC1 #CJK UNIFIED IDEOGRAPH +0xF6FB 0x96D9 #CJK UNIFIED IDEOGRAPH +0xF6FC 0x6C0F #CJK UNIFIED IDEOGRAPH +0xF6FD 0x4E9E #CJK UNIFIED IDEOGRAPH +0xF6FE 0x4FC4 #CJK UNIFIED IDEOGRAPH +0xF7A1 0x5152 #CJK UNIFIED IDEOGRAPH +0xF7A2 0x555E #CJK UNIFIED IDEOGRAPH +0xF7A3 0x5A25 #CJK UNIFIED IDEOGRAPH +0xF7A4 0x5CE8 #CJK UNIFIED IDEOGRAPH +0xF7A5 0x6211 #CJK UNIFIED IDEOGRAPH +0xF7A6 0x7259 #CJK UNIFIED IDEOGRAPH +0xF7A7 0x82BD #CJK UNIFIED IDEOGRAPH +0xF7A8 0x83AA #CJK UNIFIED IDEOGRAPH +0xF7A9 0x86FE #CJK UNIFIED IDEOGRAPH +0xF7AA 0x8859 #CJK UNIFIED IDEOGRAPH +0xF7AB 0x8A1D #CJK UNIFIED IDEOGRAPH +0xF7AC 0x963F #CJK UNIFIED IDEOGRAPH +0xF7AD 0x96C5 #CJK UNIFIED IDEOGRAPH +0xF7AE 0x9913 #CJK UNIFIED IDEOGRAPH +0xF7AF 0x9D09 #CJK UNIFIED IDEOGRAPH +0xF7B0 0x9D5D #CJK UNIFIED IDEOGRAPH +0xF7B1 0x580A #CJK UNIFIED IDEOGRAPH +0xF7B2 0x5CB3 #CJK UNIFIED IDEOGRAPH +0xF7B3 0x5DBD #CJK UNIFIED IDEOGRAPH +0xF7B4 0x5E44 #CJK UNIFIED IDEOGRAPH +0xF7B5 0x60E1 #CJK UNIFIED IDEOGRAPH +0xF7B6 0x6115 #CJK UNIFIED IDEOGRAPH +0xF7B7 0x63E1 #CJK UNIFIED IDEOGRAPH +0xF7B8 0x6E25 #CJK UNIFIED IDEOGRAPH +0xF7B9 0x9102 #CJK UNIFIED IDEOGRAPH +0xF7BA 0x9354 #CJK UNIFIED IDEOGRAPH +0xF7BB 0x984E #CJK UNIFIED IDEOGRAPH +0xF7BC 0x9C10 #CJK UNIFIED IDEOGRAPH +0xF7BD 0x9F77 #CJK UNIFIED IDEOGRAPH +0xF7BE 0x5B89 #CJK UNIFIED IDEOGRAPH +0xF7BF 0x5CB8 #CJK UNIFIED IDEOGRAPH +0xF7C0 0x6309 #CJK UNIFIED IDEOGRAPH +0xF7C1 0x664F #CJK UNIFIED IDEOGRAPH +0xF7C2 0x6848 #CJK UNIFIED IDEOGRAPH +0xF7C3 0x773C #CJK UNIFIED IDEOGRAPH +0xF7C4 0x96C1 #CJK UNIFIED IDEOGRAPH +0xF7C5 0x978D #CJK UNIFIED IDEOGRAPH +0xF7C6 0x9854 #CJK UNIFIED IDEOGRAPH +0xF7C7 0x9B9F #CJK UNIFIED IDEOGRAPH +0xF7C8 0x65A1 #CJK UNIFIED IDEOGRAPH +0xF7C9 0x8B01 #CJK UNIFIED IDEOGRAPH +0xF7CA 0x8ECB #CJK UNIFIED IDEOGRAPH +0xF7CB 0x95BC #CJK UNIFIED IDEOGRAPH +0xF7CC 0x5535 #CJK UNIFIED IDEOGRAPH +0xF7CD 0x5CA9 #CJK UNIFIED IDEOGRAPH +0xF7CE 0x5DD6 #CJK UNIFIED IDEOGRAPH +0xF7CF 0x5EB5 #CJK UNIFIED IDEOGRAPH +0xF7D0 0x6697 #CJK UNIFIED IDEOGRAPH +0xF7D1 0x764C #CJK UNIFIED IDEOGRAPH +0xF7D2 0x83F4 #CJK UNIFIED IDEOGRAPH +0xF7D3 0x95C7 #CJK UNIFIED IDEOGRAPH +0xF7D4 0x58D3 #CJK UNIFIED IDEOGRAPH +0xF7D5 0x62BC #CJK UNIFIED IDEOGRAPH +0xF7D6 0x72CE #CJK UNIFIED IDEOGRAPH +0xF7D7 0x9D28 #CJK UNIFIED IDEOGRAPH +0xF7D8 0x4EF0 #CJK UNIFIED IDEOGRAPH +0xF7D9 0x592E #CJK UNIFIED IDEOGRAPH +0xF7DA 0x600F #CJK UNIFIED IDEOGRAPH +0xF7DB 0x663B #CJK UNIFIED IDEOGRAPH +0xF7DC 0x6B83 #CJK UNIFIED IDEOGRAPH +0xF7DD 0x79E7 #CJK UNIFIED IDEOGRAPH +0xF7DE 0x9D26 #CJK UNIFIED IDEOGRAPH +0xF7DF 0x4E5F #CJK UNIFIED IDEOGRAPH +0xF7E0 0x503B #CJK UNIFIED IDEOGRAPH +0xF7E1 0x51B6 #CJK UNIFIED IDEOGRAPH +0xF7E2 0x591C #CJK UNIFIED IDEOGRAPH +0xF7E3 0x60F9 #CJK UNIFIED IDEOGRAPH +0xF7E4 0x63F6 #CJK UNIFIED IDEOGRAPH +0xF7E5 0x6930 #CJK UNIFIED IDEOGRAPH +0xF7E6 0x723A #CJK UNIFIED IDEOGRAPH +0xF7E7 0x8036 #CJK UNIFIED IDEOGRAPH +0xF7E8 0x91CE #CJK UNIFIED IDEOGRAPH +0xF7E9 0x5F31 #CJK UNIFIED IDEOGRAPH +0xF7EA 0x7D04 #CJK UNIFIED IDEOGRAPH +0xF7EB 0x82E5 #CJK UNIFIED IDEOGRAPH +0xF7EC 0x846F #CJK UNIFIED IDEOGRAPH +0xF7ED 0x84BB #CJK UNIFIED IDEOGRAPH +0xF7EE 0x85E5 #CJK UNIFIED IDEOGRAPH +0xF7EF 0x8E8D #CJK UNIFIED IDEOGRAPH +0xF7F0 0x4F6F #CJK UNIFIED IDEOGRAPH +0xF7F1 0x58E4 #CJK UNIFIED IDEOGRAPH +0xF7F2 0x5B43 #CJK UNIFIED IDEOGRAPH +0xF7F3 0x6059 #CJK UNIFIED IDEOGRAPH +0xF7F4 0x63DA #CJK UNIFIED IDEOGRAPH +0xF7F5 0x6518 #CJK UNIFIED IDEOGRAPH +0xF7F6 0x656D #CJK UNIFIED IDEOGRAPH +0xF7F7 0x6698 #CJK UNIFIED IDEOGRAPH +0xF7F8 0x694A #CJK UNIFIED IDEOGRAPH +0xF7F9 0x6A23 #CJK UNIFIED IDEOGRAPH +0xF7FA 0x6D0B #CJK UNIFIED IDEOGRAPH +0xF7FB 0x7001 #CJK UNIFIED IDEOGRAPH +0xF7FC 0x716C #CJK UNIFIED IDEOGRAPH +0xF7FD 0x75D2 #CJK UNIFIED IDEOGRAPH +0xF7FE 0x760D #CJK UNIFIED IDEOGRAPH +0xF8A1 0x79B3 #CJK UNIFIED IDEOGRAPH +0xF8A2 0x7A70 #CJK UNIFIED IDEOGRAPH +0xF8A3 0x7F8A #CJK UNIFIED IDEOGRAPH +0xF8A4 0x8944 #CJK UNIFIED IDEOGRAPH +0xF8A5 0x8B93 #CJK UNIFIED IDEOGRAPH +0xF8A6 0x91C0 #CJK UNIFIED IDEOGRAPH +0xF8A7 0x967D #CJK UNIFIED IDEOGRAPH +0xF8A8 0x990A #CJK UNIFIED IDEOGRAPH +0xF8A9 0x5704 #CJK UNIFIED IDEOGRAPH +0xF8AA 0x5FA1 #CJK UNIFIED IDEOGRAPH +0xF8AB 0x65BC #CJK UNIFIED IDEOGRAPH +0xF8AC 0x6F01 #CJK UNIFIED IDEOGRAPH +0xF8AD 0x7600 #CJK UNIFIED IDEOGRAPH +0xF8AE 0x79A6 #CJK UNIFIED IDEOGRAPH +0xF8AF 0x8A9E #CJK UNIFIED IDEOGRAPH +0xF8B0 0x99AD #CJK UNIFIED IDEOGRAPH +0xF8B1 0x9B5A #CJK UNIFIED IDEOGRAPH +0xF8B2 0x9F6C #CJK UNIFIED IDEOGRAPH +0xF8B3 0x5104 #CJK UNIFIED IDEOGRAPH +0xF8B4 0x61B6 #CJK UNIFIED IDEOGRAPH +0xF8B5 0x6291 #CJK UNIFIED IDEOGRAPH +0xF8B6 0x6A8D #CJK UNIFIED IDEOGRAPH +0xF8B7 0x81C6 #CJK UNIFIED IDEOGRAPH +0xF8B8 0x5043 #CJK UNIFIED IDEOGRAPH +0xF8B9 0x5830 #CJK UNIFIED IDEOGRAPH +0xF8BA 0x5F66 #CJK UNIFIED IDEOGRAPH +0xF8BB 0x7109 #CJK UNIFIED IDEOGRAPH +0xF8BC 0x8A00 #CJK UNIFIED IDEOGRAPH +0xF8BD 0x8AFA #CJK UNIFIED IDEOGRAPH +0xF8BE 0x5B7C #CJK UNIFIED IDEOGRAPH +0xF8BF 0x6AF1 #CJK UNIFIED IDEOGRAPH +0xF8C0 0x4FFA #CJK UNIFIED IDEOGRAPH +0xF8C1 0x513C #CJK UNIFIED IDEOGRAPH +0xF8C2 0x56B4 #CJK UNIFIED IDEOGRAPH +0xF8C3 0x5944 #CJK UNIFIED IDEOGRAPH +0xF8C4 0x63A9 #CJK UNIFIED IDEOGRAPH +0xF8C5 0x6DF9 #CJK UNIFIED IDEOGRAPH +0xF8C6 0x5DAA #CJK UNIFIED IDEOGRAPH +0xF8C7 0x696D #CJK UNIFIED IDEOGRAPH +0xF8C8 0x4E88 #CJK UNIFIED IDEOGRAPH +0xF8C9 0x4F59 #CJK UNIFIED IDEOGRAPH +0xF8CA 0x5982 #CJK UNIFIED IDEOGRAPH +0xF8CB 0x6B5F #CJK UNIFIED IDEOGRAPH +0xF8CC 0x6C5D #CJK UNIFIED IDEOGRAPH +0xF8CD 0x74B5 #CJK UNIFIED IDEOGRAPH +0xF8CE 0x7916 #CJK UNIFIED IDEOGRAPH +0xF8CF 0x8207 #CJK UNIFIED IDEOGRAPH +0xF8D0 0x8245 #CJK UNIFIED IDEOGRAPH +0xF8D1 0x8339 #CJK UNIFIED IDEOGRAPH +0xF8D2 0x8F3F #CJK UNIFIED IDEOGRAPH +0xF8D3 0x8F5D #CJK UNIFIED IDEOGRAPH +0xF8D4 0x9918 #CJK UNIFIED IDEOGRAPH +0xF8D5 0x4EA6 #CJK UNIFIED IDEOGRAPH +0xF8D6 0x57DF #CJK UNIFIED IDEOGRAPH +0xF8D7 0x5F79 #CJK UNIFIED IDEOGRAPH +0xF8D8 0x6613 #CJK UNIFIED IDEOGRAPH +0xF8D9 0x75AB #CJK UNIFIED IDEOGRAPH +0xF8DA 0x7E79 #CJK UNIFIED IDEOGRAPH +0xF8DB 0x8B6F #CJK UNIFIED IDEOGRAPH +0xF8DC 0x9006 #CJK UNIFIED IDEOGRAPH +0xF8DD 0x9A5B #CJK UNIFIED IDEOGRAPH +0xF8DE 0x56A5 #CJK UNIFIED IDEOGRAPH +0xF8DF 0x5827 #CJK UNIFIED IDEOGRAPH +0xF8E0 0x59F8 #CJK UNIFIED IDEOGRAPH +0xF8E1 0x5A1F #CJK UNIFIED IDEOGRAPH +0xF8E2 0x5BB4 #CJK UNIFIED IDEOGRAPH +0xF8E3 0x5EF6 #CJK UNIFIED IDEOGRAPH +0xF8E4 0x6350 #CJK UNIFIED IDEOGRAPH +0xF8E5 0x633B #CJK UNIFIED IDEOGRAPH +0xF8E6 0x649A #CJK UNIFIED IDEOGRAPH +0xF8E7 0x693D #CJK UNIFIED IDEOGRAPH +0xF8E8 0x6C87 #CJK UNIFIED IDEOGRAPH +0xF8E9 0x6CBF #CJK UNIFIED IDEOGRAPH +0xF8EA 0x6D8E #CJK UNIFIED IDEOGRAPH +0xF8EB 0x6D93 #CJK UNIFIED IDEOGRAPH +0xF8EC 0x6DF5 #CJK UNIFIED IDEOGRAPH +0xF8ED 0x6F14 #CJK UNIFIED IDEOGRAPH +0xF8EE 0x70DF #CJK UNIFIED IDEOGRAPH +0xF8EF 0x7136 #CJK UNIFIED IDEOGRAPH +0xF8F0 0x7159 #CJK UNIFIED IDEOGRAPH +0xF8F1 0x71D5 #CJK UNIFIED IDEOGRAPH +0xF8F2 0x71C3 #CJK UNIFIED IDEOGRAPH +0xF8F3 0x784F #CJK UNIFIED IDEOGRAPH +0xF8F4 0x786F #CJK UNIFIED IDEOGRAPH +0xF8F5 0x7B75 #CJK UNIFIED IDEOGRAPH +0xF8F6 0x7DE3 #CJK UNIFIED IDEOGRAPH +0xF8F7 0x7E2F #CJK UNIFIED IDEOGRAPH +0xF8F8 0x884D #CJK UNIFIED IDEOGRAPH +0xF8F9 0x8EDF #CJK UNIFIED IDEOGRAPH +0xF8FA 0x925B #CJK UNIFIED IDEOGRAPH +0xF8FB 0x9CF6 #CJK UNIFIED IDEOGRAPH +0xF8FC 0x6085 #CJK UNIFIED IDEOGRAPH +0xF8FD 0x71B1 #CJK UNIFIED IDEOGRAPH +0xF8FE 0x95B1 #CJK UNIFIED IDEOGRAPH +0xF9A1 0x53AD #CJK UNIFIED IDEOGRAPH +0xF9A2 0x67D3 #CJK UNIFIED IDEOGRAPH +0xF9A3 0x708E #CJK UNIFIED IDEOGRAPH +0xF9A4 0x7130 #CJK UNIFIED IDEOGRAPH +0xF9A5 0x7430 #CJK UNIFIED IDEOGRAPH +0xF9A6 0x7A14 #CJK UNIFIED IDEOGRAPH +0xF9A7 0x8276 #CJK UNIFIED IDEOGRAPH +0xF9A8 0x82D2 #CJK UNIFIED IDEOGRAPH +0xF9A9 0x95BB #CJK UNIFIED IDEOGRAPH +0xF9AA 0x9AE5 #CJK UNIFIED IDEOGRAPH +0xF9AB 0x9E7D #CJK UNIFIED IDEOGRAPH +0xF9AC 0x66C4 #CJK UNIFIED IDEOGRAPH +0xF9AD 0x71C1 #CJK UNIFIED IDEOGRAPH +0xF9AE 0x8449 #CJK UNIFIED IDEOGRAPH +0xF9AF 0x584B #CJK UNIFIED IDEOGRAPH +0xF9B0 0x5DB8 #CJK UNIFIED IDEOGRAPH +0xF9B1 0x5F71 #CJK UNIFIED IDEOGRAPH +0xF9B2 0x6620 #CJK UNIFIED IDEOGRAPH +0xF9B3 0x668E #CJK UNIFIED IDEOGRAPH +0xF9B4 0x6979 #CJK UNIFIED IDEOGRAPH +0xF9B5 0x69AE #CJK UNIFIED IDEOGRAPH +0xF9B6 0x6C38 #CJK UNIFIED IDEOGRAPH +0xF9B7 0x6CF3 #CJK UNIFIED IDEOGRAPH +0xF9B8 0x6E36 #CJK UNIFIED IDEOGRAPH +0xF9B9 0x6F41 #CJK UNIFIED IDEOGRAPH +0xF9BA 0x6FDA #CJK UNIFIED IDEOGRAPH +0xF9BB 0x701B #CJK UNIFIED IDEOGRAPH +0xF9BC 0x702F #CJK UNIFIED IDEOGRAPH +0xF9BD 0x7150 #CJK UNIFIED IDEOGRAPH +0xF9BE 0x71DF #CJK UNIFIED IDEOGRAPH +0xF9BF 0x745B #CJK UNIFIED IDEOGRAPH +0xF9C0 0x7469 #CJK UNIFIED IDEOGRAPH +0xF9C1 0x74D4 #CJK UNIFIED IDEOGRAPH +0xF9C2 0x76C8 #CJK UNIFIED IDEOGRAPH +0xF9C3 0x7A4E #CJK UNIFIED IDEOGRAPH +0xF9C4 0x7E93 #CJK UNIFIED IDEOGRAPH +0xF9C5 0x82F1 #CJK UNIFIED IDEOGRAPH +0xF9C6 0x8A60 #CJK UNIFIED IDEOGRAPH +0xF9C7 0x8FCE #CJK UNIFIED IDEOGRAPH +0xF9C8 0x9348 #CJK UNIFIED IDEOGRAPH +0xF9C9 0x9719 #CJK UNIFIED IDEOGRAPH +0xF9CA 0x4E94 #CJK UNIFIED IDEOGRAPH +0xF9CB 0x4F0D #CJK UNIFIED IDEOGRAPH +0xF9CC 0x4FC9 #CJK UNIFIED IDEOGRAPH +0xF9CD 0x50B2 #CJK UNIFIED IDEOGRAPH +0xF9CE 0x5348 #CJK UNIFIED IDEOGRAPH +0xF9CF 0x543E #CJK UNIFIED IDEOGRAPH +0xF9D0 0x5433 #CJK UNIFIED IDEOGRAPH +0xF9D1 0x55DA #CJK UNIFIED IDEOGRAPH +0xF9D2 0x5862 #CJK UNIFIED IDEOGRAPH +0xF9D3 0x58BA #CJK UNIFIED IDEOGRAPH +0xF9D4 0x5967 #CJK UNIFIED IDEOGRAPH +0xF9D5 0x5A1B #CJK UNIFIED IDEOGRAPH +0xF9D6 0x5BE4 #CJK UNIFIED IDEOGRAPH +0xF9D7 0x609F #CJK UNIFIED IDEOGRAPH +0xF9D8 0x61CA #CJK UNIFIED IDEOGRAPH +0xF9D9 0x6556 #CJK UNIFIED IDEOGRAPH +0xF9DA 0x65FF #CJK UNIFIED IDEOGRAPH +0xF9DB 0x6664 #CJK UNIFIED IDEOGRAPH +0xF9DC 0x68A7 #CJK UNIFIED IDEOGRAPH +0xF9DD 0x6C5A #CJK UNIFIED IDEOGRAPH +0xF9DE 0x6FB3 #CJK UNIFIED IDEOGRAPH +0xF9DF 0x70CF #CJK UNIFIED IDEOGRAPH +0xF9E0 0x71AC #CJK UNIFIED IDEOGRAPH +0xF9E1 0x7352 #CJK UNIFIED IDEOGRAPH +0xF9E2 0x7B7D #CJK UNIFIED IDEOGRAPH +0xF9E3 0x8708 #CJK UNIFIED IDEOGRAPH +0xF9E4 0x8AA4 #CJK UNIFIED IDEOGRAPH +0xF9E5 0x9C32 #CJK UNIFIED IDEOGRAPH +0xF9E6 0x9F07 #CJK UNIFIED IDEOGRAPH +0xF9E7 0x5C4B #CJK UNIFIED IDEOGRAPH +0xF9E8 0x6C83 #CJK UNIFIED IDEOGRAPH +0xF9E9 0x7344 #CJK UNIFIED IDEOGRAPH +0xF9EA 0x7389 #CJK UNIFIED IDEOGRAPH +0xF9EB 0x923A #CJK UNIFIED IDEOGRAPH +0xF9EC 0x6EAB #CJK UNIFIED IDEOGRAPH +0xF9ED 0x7465 #CJK UNIFIED IDEOGRAPH +0xF9EE 0x761F #CJK UNIFIED IDEOGRAPH +0xF9EF 0x7A69 #CJK UNIFIED IDEOGRAPH +0xF9F0 0x7E15 #CJK UNIFIED IDEOGRAPH +0xF9F1 0x860A #CJK UNIFIED IDEOGRAPH +0xF9F2 0x5140 #CJK UNIFIED IDEOGRAPH +0xF9F3 0x58C5 #CJK UNIFIED IDEOGRAPH +0xF9F4 0x64C1 #CJK UNIFIED IDEOGRAPH +0xF9F5 0x74EE #CJK UNIFIED IDEOGRAPH +0xF9F6 0x7515 #CJK UNIFIED IDEOGRAPH +0xF9F7 0x7670 #CJK UNIFIED IDEOGRAPH +0xF9F8 0x7FC1 #CJK UNIFIED IDEOGRAPH +0xF9F9 0x9095 #CJK UNIFIED IDEOGRAPH +0xF9FA 0x96CD #CJK UNIFIED IDEOGRAPH +0xF9FB 0x9954 #CJK UNIFIED IDEOGRAPH +0xF9FC 0x50E5 #CJK UNIFIED IDEOGRAPH +0xF9FD 0x51F9 #CJK UNIFIED IDEOGRAPH +0xF9FE 0x582F #CJK UNIFIED IDEOGRAPH +0xFAA1 0x592D #CJK UNIFIED IDEOGRAPH +0xFAA2 0x5996 #CJK UNIFIED IDEOGRAPH +0xFAA3 0x59DA #CJK UNIFIED IDEOGRAPH +0xFAA4 0x5DA2 #CJK UNIFIED IDEOGRAPH +0xFAA5 0x62D7 #CJK UNIFIED IDEOGRAPH +0xFAA6 0x6416 #CJK UNIFIED IDEOGRAPH +0xFAA7 0x6493 #CJK UNIFIED IDEOGRAPH +0xFAA8 0x64FE #CJK UNIFIED IDEOGRAPH +0xFAA9 0x66DC #CJK UNIFIED IDEOGRAPH +0xFAAA 0x6A48 #CJK UNIFIED IDEOGRAPH +0xFAAB 0x71FF #CJK UNIFIED IDEOGRAPH +0xFAAC 0x7464 #CJK UNIFIED IDEOGRAPH +0xFAAD 0x7A88 #CJK UNIFIED IDEOGRAPH +0xFAAE 0x7AAF #CJK UNIFIED IDEOGRAPH +0xFAAF 0x7E47 #CJK UNIFIED IDEOGRAPH +0xFAB0 0x7E5E #CJK UNIFIED IDEOGRAPH +0xFAB1 0x8000 #CJK UNIFIED IDEOGRAPH +0xFAB2 0x8170 #CJK UNIFIED IDEOGRAPH +0xFAB3 0x87EF #CJK UNIFIED IDEOGRAPH +0xFAB4 0x8981 #CJK UNIFIED IDEOGRAPH +0xFAB5 0x8B20 #CJK UNIFIED IDEOGRAPH +0xFAB6 0x9059 #CJK UNIFIED IDEOGRAPH +0xFAB7 0x9080 #CJK UNIFIED IDEOGRAPH +0xFAB8 0x9952 #CJK UNIFIED IDEOGRAPH +0xFAB9 0x617E #CJK UNIFIED IDEOGRAPH +0xFABA 0x6B32 #CJK UNIFIED IDEOGRAPH +0xFABB 0x6D74 #CJK UNIFIED IDEOGRAPH +0xFABC 0x7E1F #CJK UNIFIED IDEOGRAPH +0xFABD 0x8925 #CJK UNIFIED IDEOGRAPH +0xFABE 0x8FB1 #CJK UNIFIED IDEOGRAPH +0xFABF 0x4FD1 #CJK UNIFIED IDEOGRAPH +0xFAC0 0x50AD #CJK UNIFIED IDEOGRAPH +0xFAC1 0x5197 #CJK UNIFIED IDEOGRAPH +0xFAC2 0x52C7 #CJK UNIFIED IDEOGRAPH +0xFAC3 0x57C7 #CJK UNIFIED IDEOGRAPH +0xFAC4 0x5889 #CJK UNIFIED IDEOGRAPH +0xFAC5 0x5BB9 #CJK UNIFIED IDEOGRAPH +0xFAC6 0x5EB8 #CJK UNIFIED IDEOGRAPH +0xFAC7 0x6142 #CJK UNIFIED IDEOGRAPH +0xFAC8 0x6995 #CJK UNIFIED IDEOGRAPH +0xFAC9 0x6D8C #CJK UNIFIED IDEOGRAPH +0xFACA 0x6E67 #CJK UNIFIED IDEOGRAPH +0xFACB 0x6EB6 #CJK UNIFIED IDEOGRAPH +0xFACC 0x7194 #CJK UNIFIED IDEOGRAPH +0xFACD 0x7462 #CJK UNIFIED IDEOGRAPH +0xFACE 0x7528 #CJK UNIFIED IDEOGRAPH +0xFACF 0x752C #CJK UNIFIED IDEOGRAPH +0xFAD0 0x8073 #CJK UNIFIED IDEOGRAPH +0xFAD1 0x8338 #CJK UNIFIED IDEOGRAPH +0xFAD2 0x84C9 #CJK UNIFIED IDEOGRAPH +0xFAD3 0x8E0A #CJK UNIFIED IDEOGRAPH +0xFAD4 0x9394 #CJK UNIFIED IDEOGRAPH +0xFAD5 0x93DE #CJK UNIFIED IDEOGRAPH +0xFAD6 0x4E8E #CJK UNIFIED IDEOGRAPH +0xFAD7 0x4F51 #CJK UNIFIED IDEOGRAPH +0xFAD8 0x5076 #CJK UNIFIED IDEOGRAPH +0xFAD9 0x512A #CJK UNIFIED IDEOGRAPH +0xFADA 0x53C8 #CJK UNIFIED IDEOGRAPH +0xFADB 0x53CB #CJK UNIFIED IDEOGRAPH +0xFADC 0x53F3 #CJK UNIFIED IDEOGRAPH +0xFADD 0x5B87 #CJK UNIFIED IDEOGRAPH +0xFADE 0x5BD3 #CJK UNIFIED IDEOGRAPH +0xFADF 0x5C24 #CJK UNIFIED IDEOGRAPH +0xFAE0 0x611A #CJK UNIFIED IDEOGRAPH +0xFAE1 0x6182 #CJK UNIFIED IDEOGRAPH +0xFAE2 0x65F4 #CJK UNIFIED IDEOGRAPH +0xFAE3 0x725B #CJK UNIFIED IDEOGRAPH +0xFAE4 0x7397 #CJK UNIFIED IDEOGRAPH +0xFAE5 0x7440 #CJK UNIFIED IDEOGRAPH +0xFAE6 0x76C2 #CJK UNIFIED IDEOGRAPH +0xFAE7 0x7950 #CJK UNIFIED IDEOGRAPH +0xFAE8 0x7991 #CJK UNIFIED IDEOGRAPH +0xFAE9 0x79B9 #CJK UNIFIED IDEOGRAPH +0xFAEA 0x7D06 #CJK UNIFIED IDEOGRAPH +0xFAEB 0x7FBD #CJK UNIFIED IDEOGRAPH +0xFAEC 0x828B #CJK UNIFIED IDEOGRAPH +0xFAED 0x85D5 #CJK UNIFIED IDEOGRAPH +0xFAEE 0x865E #CJK UNIFIED IDEOGRAPH +0xFAEF 0x8FC2 #CJK UNIFIED IDEOGRAPH +0xFAF0 0x9047 #CJK UNIFIED IDEOGRAPH +0xFAF1 0x90F5 #CJK UNIFIED IDEOGRAPH +0xFAF2 0x91EA #CJK UNIFIED IDEOGRAPH +0xFAF3 0x9685 #CJK UNIFIED IDEOGRAPH +0xFAF4 0x96E8 #CJK UNIFIED IDEOGRAPH +0xFAF5 0x96E9 #CJK UNIFIED IDEOGRAPH +0xFAF6 0x52D6 #CJK UNIFIED IDEOGRAPH +0xFAF7 0x5F67 #CJK UNIFIED IDEOGRAPH +0xFAF8 0x65ED #CJK UNIFIED IDEOGRAPH +0xFAF9 0x6631 #CJK UNIFIED IDEOGRAPH +0xFAFA 0x682F #CJK UNIFIED IDEOGRAPH +0xFAFB 0x715C #CJK UNIFIED IDEOGRAPH +0xFAFC 0x7A36 #CJK UNIFIED IDEOGRAPH +0xFAFD 0x90C1 #CJK UNIFIED IDEOGRAPH +0xFAFE 0x980A #CJK UNIFIED IDEOGRAPH +0xFBA1 0x4E91 #CJK UNIFIED IDEOGRAPH +0xFBA2 0x6A52 #CJK UNIFIED IDEOGRAPH +0xFBA3 0x6B9E #CJK UNIFIED IDEOGRAPH +0xFBA4 0x6F90 #CJK UNIFIED IDEOGRAPH +0xFBA5 0x7189 #CJK UNIFIED IDEOGRAPH +0xFBA6 0x8018 #CJK UNIFIED IDEOGRAPH +0xFBA7 0x82B8 #CJK UNIFIED IDEOGRAPH +0xFBA8 0x8553 #CJK UNIFIED IDEOGRAPH +0xFBA9 0x904B #CJK UNIFIED IDEOGRAPH +0xFBAA 0x9695 #CJK UNIFIED IDEOGRAPH +0xFBAB 0x96F2 #CJK UNIFIED IDEOGRAPH +0xFBAC 0x97FB #CJK UNIFIED IDEOGRAPH +0xFBAD 0x851A #CJK UNIFIED IDEOGRAPH +0xFBAE 0x9B31 #CJK UNIFIED IDEOGRAPH +0xFBAF 0x718A #CJK UNIFIED IDEOGRAPH +0xFBB0 0x96C4 #CJK UNIFIED IDEOGRAPH +0xFBB1 0x4E73 #CJK UNIFIED IDEOGRAPH +0xFBB2 0x4F91 #CJK UNIFIED IDEOGRAPH +0xFBB3 0x5112 #CJK UNIFIED IDEOGRAPH +0xFBB4 0x516A #CJK UNIFIED IDEOGRAPH +0xFBB5 0x552F #CJK UNIFIED IDEOGRAPH +0xFBB6 0x55A9 #CJK UNIFIED IDEOGRAPH +0xFBB7 0x5B7A #CJK UNIFIED IDEOGRAPH +0xFBB8 0x5BA5 #CJK UNIFIED IDEOGRAPH +0xFBB9 0x5E7C #CJK UNIFIED IDEOGRAPH +0xFBBA 0x5E7D #CJK UNIFIED IDEOGRAPH +0xFBBB 0x5EBE #CJK UNIFIED IDEOGRAPH +0xFBBC 0x60A0 #CJK UNIFIED IDEOGRAPH +0xFBBD 0x60DF #CJK UNIFIED IDEOGRAPH +0xFBBE 0x6108 #CJK UNIFIED IDEOGRAPH +0xFBBF 0x6109 #CJK UNIFIED IDEOGRAPH +0xFBC0 0x63C4 #CJK UNIFIED IDEOGRAPH +0xFBC1 0x6538 #CJK UNIFIED IDEOGRAPH +0xFBC2 0x6709 #CJK UNIFIED IDEOGRAPH +0xFBC3 0x67D4 #CJK UNIFIED IDEOGRAPH +0xFBC4 0x67DA #CJK UNIFIED IDEOGRAPH +0xFBC5 0x6961 #CJK UNIFIED IDEOGRAPH +0xFBC6 0x6962 #CJK UNIFIED IDEOGRAPH +0xFBC7 0x6CB9 #CJK UNIFIED IDEOGRAPH +0xFBC8 0x6D27 #CJK UNIFIED IDEOGRAPH +0xFBC9 0x6E38 #CJK UNIFIED IDEOGRAPH +0xFBCA 0x6FE1 #CJK UNIFIED IDEOGRAPH +0xFBCB 0x7336 #CJK UNIFIED IDEOGRAPH +0xFBCC 0x7337 #CJK UNIFIED IDEOGRAPH +0xFBCD 0x745C #CJK UNIFIED IDEOGRAPH +0xFBCE 0x7531 #CJK UNIFIED IDEOGRAPH +0xFBCF 0x7652 #CJK UNIFIED IDEOGRAPH +0xFBD0 0x7DAD #CJK UNIFIED IDEOGRAPH +0xFBD1 0x81FE #CJK UNIFIED IDEOGRAPH +0xFBD2 0x8438 #CJK UNIFIED IDEOGRAPH +0xFBD3 0x88D5 #CJK UNIFIED IDEOGRAPH +0xFBD4 0x8A98 #CJK UNIFIED IDEOGRAPH +0xFBD5 0x8ADB #CJK UNIFIED IDEOGRAPH +0xFBD6 0x8AED #CJK UNIFIED IDEOGRAPH +0xFBD7 0x8E30 #CJK UNIFIED IDEOGRAPH +0xFBD8 0x8E42 #CJK UNIFIED IDEOGRAPH +0xFBD9 0x904A #CJK UNIFIED IDEOGRAPH +0xFBDA 0x903E #CJK UNIFIED IDEOGRAPH +0xFBDB 0x907A #CJK UNIFIED IDEOGRAPH +0xFBDC 0x9149 #CJK UNIFIED IDEOGRAPH +0xFBDD 0x91C9 #CJK UNIFIED IDEOGRAPH +0xFBDE 0x936E #CJK UNIFIED IDEOGRAPH +0xFBDF 0x5809 #CJK UNIFIED IDEOGRAPH +0xFBE0 0x6BD3 #CJK UNIFIED IDEOGRAPH +0xFBE1 0x8089 #CJK UNIFIED IDEOGRAPH +0xFBE2 0x80B2 #CJK UNIFIED IDEOGRAPH +0xFBE3 0x5141 #CJK UNIFIED IDEOGRAPH +0xFBE4 0x596B #CJK UNIFIED IDEOGRAPH +0xFBE5 0x5C39 #CJK UNIFIED IDEOGRAPH +0xFBE6 0x6F64 #CJK UNIFIED IDEOGRAPH +0xFBE7 0x73A7 #CJK UNIFIED IDEOGRAPH +0xFBE8 0x80E4 #CJK UNIFIED IDEOGRAPH +0xFBE9 0x9217 #CJK UNIFIED IDEOGRAPH +0xFBEA 0x958F #CJK UNIFIED IDEOGRAPH +0xFBEB 0x807F #CJK UNIFIED IDEOGRAPH +0xFBEC 0x620E #CJK UNIFIED IDEOGRAPH +0xFBED 0x701C #CJK UNIFIED IDEOGRAPH +0xFBEE 0x7D68 #CJK UNIFIED IDEOGRAPH +0xFBEF 0x878D #CJK UNIFIED IDEOGRAPH +0xFBF0 0x57A0 #CJK UNIFIED IDEOGRAPH +0xFBF1 0x6069 #CJK UNIFIED IDEOGRAPH +0xFBF2 0x6147 #CJK UNIFIED IDEOGRAPH +0xFBF3 0x6BB7 #CJK UNIFIED IDEOGRAPH +0xFBF4 0x8ABE #CJK UNIFIED IDEOGRAPH +0xFBF5 0x9280 #CJK UNIFIED IDEOGRAPH +0xFBF6 0x96B1 #CJK UNIFIED IDEOGRAPH +0xFBF7 0x4E59 #CJK UNIFIED IDEOGRAPH +0xFBF8 0x541F #CJK UNIFIED IDEOGRAPH +0xFBF9 0x6DEB #CJK UNIFIED IDEOGRAPH +0xFBFA 0x852D #CJK UNIFIED IDEOGRAPH +0xFBFB 0x9670 #CJK UNIFIED IDEOGRAPH +0xFBFC 0x97F3 #CJK UNIFIED IDEOGRAPH +0xFBFD 0x98EE #CJK UNIFIED IDEOGRAPH +0xFBFE 0x63D6 #CJK UNIFIED IDEOGRAPH +0xFCA1 0x6CE3 #CJK UNIFIED IDEOGRAPH +0xFCA2 0x9091 #CJK UNIFIED IDEOGRAPH +0xFCA3 0x51DD #CJK UNIFIED IDEOGRAPH +0xFCA4 0x61C9 #CJK UNIFIED IDEOGRAPH +0xFCA5 0x81BA #CJK UNIFIED IDEOGRAPH +0xFCA6 0x9DF9 #CJK UNIFIED IDEOGRAPH +0xFCA7 0x4E8C #CJK UNIFIED IDEOGRAPH +0xFCA8 0x4EE5 #CJK UNIFIED IDEOGRAPH +0xFCA9 0x4F0A #CJK UNIFIED IDEOGRAPH +0xFCAA 0x5937 #CJK UNIFIED IDEOGRAPH +0xFCAB 0x59E8 #CJK UNIFIED IDEOGRAPH +0xFCAC 0x5DF2 #CJK UNIFIED IDEOGRAPH +0xFCAD 0x5F1B #CJK UNIFIED IDEOGRAPH +0xFCAE 0x5F5B #CJK UNIFIED IDEOGRAPH +0xFCAF 0x6021 #CJK UNIFIED IDEOGRAPH +0xFCB0 0x723E #CJK UNIFIED IDEOGRAPH +0xFCB1 0x73E5 #CJK UNIFIED IDEOGRAPH +0xFCB2 0x7570 #CJK UNIFIED IDEOGRAPH +0xFCB3 0x75CD #CJK UNIFIED IDEOGRAPH +0xFCB4 0x79FB #CJK UNIFIED IDEOGRAPH +0xFCB5 0x800C #CJK UNIFIED IDEOGRAPH +0xFCB6 0x8033 #CJK UNIFIED IDEOGRAPH +0xFCB7 0x8084 #CJK UNIFIED IDEOGRAPH +0xFCB8 0x82E1 #CJK UNIFIED IDEOGRAPH +0xFCB9 0x8351 #CJK UNIFIED IDEOGRAPH +0xFCBA 0x8CB3 #CJK UNIFIED IDEOGRAPH +0xFCBB 0x8CBD #CJK UNIFIED IDEOGRAPH +0xFCBC 0x9087 #CJK UNIFIED IDEOGRAPH +0xFCBD 0x98F4 #CJK UNIFIED IDEOGRAPH +0xFCBE 0x990C #CJK UNIFIED IDEOGRAPH +0xFCBF 0x7037 #CJK UNIFIED IDEOGRAPH +0xFCC0 0x76CA #CJK UNIFIED IDEOGRAPH +0xFCC1 0x7FCA #CJK UNIFIED IDEOGRAPH +0xFCC2 0x7FCC #CJK UNIFIED IDEOGRAPH +0xFCC3 0x7FFC #CJK UNIFIED IDEOGRAPH +0xFCC4 0x8B1A #CJK UNIFIED IDEOGRAPH +0xFCC5 0x4EBA #CJK UNIFIED IDEOGRAPH +0xFCC6 0x4EC1 #CJK UNIFIED IDEOGRAPH +0xFCC7 0x5203 #CJK UNIFIED IDEOGRAPH +0xFCC8 0x5370 #CJK UNIFIED IDEOGRAPH +0xFCC9 0x54BD #CJK UNIFIED IDEOGRAPH +0xFCCA 0x56E0 #CJK UNIFIED IDEOGRAPH +0xFCCB 0x59FB #CJK UNIFIED IDEOGRAPH +0xFCCC 0x5BC5 #CJK UNIFIED IDEOGRAPH +0xFCCD 0x5F15 #CJK UNIFIED IDEOGRAPH +0xFCCE 0x5FCD #CJK UNIFIED IDEOGRAPH +0xFCCF 0x6E6E #CJK UNIFIED IDEOGRAPH +0xFCD0 0x7D6A #CJK UNIFIED IDEOGRAPH +0xFCD1 0x8335 #CJK UNIFIED IDEOGRAPH +0xFCD2 0x8693 #CJK UNIFIED IDEOGRAPH +0xFCD3 0x8A8D #CJK UNIFIED IDEOGRAPH +0xFCD4 0x976D #CJK UNIFIED IDEOGRAPH +0xFCD5 0x9777 #CJK UNIFIED IDEOGRAPH +0xFCD6 0x4E00 #CJK UNIFIED IDEOGRAPH +0xFCD7 0x4F5A #CJK UNIFIED IDEOGRAPH +0xFCD8 0x4F7E #CJK UNIFIED IDEOGRAPH +0xFCD9 0x58F9 #CJK UNIFIED IDEOGRAPH +0xFCDA 0x65E5 #CJK UNIFIED IDEOGRAPH +0xFCDB 0x6EA2 #CJK UNIFIED IDEOGRAPH +0xFCDC 0x9038 #CJK UNIFIED IDEOGRAPH +0xFCDD 0x93B0 #CJK UNIFIED IDEOGRAPH +0xFCDE 0x99B9 #CJK UNIFIED IDEOGRAPH +0xFCDF 0x4EFB #CJK UNIFIED IDEOGRAPH +0xFCE0 0x58EC #CJK UNIFIED IDEOGRAPH +0xFCE1 0x598A #CJK UNIFIED IDEOGRAPH +0xFCE2 0x59D9 #CJK UNIFIED IDEOGRAPH +0xFCE3 0x6041 #CJK UNIFIED IDEOGRAPH +0xFCE4 0x834F #CJK UNIFIED IDEOGRAPH +0xFCE5 0x8CC3 #CJK UNIFIED IDEOGRAPH +0xFCE6 0x5165 #CJK UNIFIED IDEOGRAPH +0xFCE7 0x5344 #CJK UNIFIED IDEOGRAPH +0xFCE8 0x4ECD #CJK UNIFIED IDEOGRAPH +0xFCE9 0x5269 #CJK UNIFIED IDEOGRAPH +0xFCEA 0x5B55 #CJK UNIFIED IDEOGRAPH +0xFCEB 0x82BF #CJK UNIFIED IDEOGRAPH +0xFCEC 0x5208 #CJK UNIFIED IDEOGRAPH +0xFCED 0x5393 #CJK UNIFIED IDEOGRAPH +0xFCEE 0x54C0 #CJK UNIFIED IDEOGRAPH +0xFCEF 0x57C3 #CJK UNIFIED IDEOGRAPH +0xFCF0 0x5D16 #CJK UNIFIED IDEOGRAPH +0xFCF1 0x611B #CJK UNIFIED IDEOGRAPH +0xFCF2 0x66D6 #CJK UNIFIED IDEOGRAPH +0xFCF3 0x6DAF #CJK UNIFIED IDEOGRAPH +0xFCF4 0x788D #CJK UNIFIED IDEOGRAPH +0xFCF5 0x7E0A #CJK UNIFIED IDEOGRAPH +0xFCF6 0x827E #CJK UNIFIED IDEOGRAPH +0xFCF7 0x9698 #CJK UNIFIED IDEOGRAPH +0xFCF8 0x9744 #CJK UNIFIED IDEOGRAPH +0xFCF9 0x5384 #CJK UNIFIED IDEOGRAPH +0xFCFA 0x627C #CJK UNIFIED IDEOGRAPH +0xFCFB 0x6396 #CJK UNIFIED IDEOGRAPH +0xFCFC 0x6DB2 #CJK UNIFIED IDEOGRAPH +0xFCFD 0x814B #CJK UNIFIED IDEOGRAPH +0xFCFE 0x984D #CJK UNIFIED IDEOGRAPH +0xFDA1 0x6AFB #CJK UNIFIED IDEOGRAPH +0xFDA2 0x7F4C #CJK UNIFIED IDEOGRAPH +0xFDA3 0x9DAF #CJK UNIFIED IDEOGRAPH +0xFDA4 0x9E1A #CJK UNIFIED IDEOGRAPH +0xFDA5 0x5186 #CJK UNIFIED IDEOGRAPH +0xFDA6 0x4E42 #CJK UNIFIED IDEOGRAPH +0xFDA7 0x502A #CJK UNIFIED IDEOGRAPH +0xFDA8 0x53E1 #CJK UNIFIED IDEOGRAPH +0xFDA9 0x66F3 #CJK UNIFIED IDEOGRAPH +0xFDAA 0x6C6D #CJK UNIFIED IDEOGRAPH +0xFDAB 0x6FCA #CJK UNIFIED IDEOGRAPH +0xFDAC 0x730A #CJK UNIFIED IDEOGRAPH +0xFDAD 0x777F #CJK UNIFIED IDEOGRAPH +0xFDAE 0x7A62 #CJK UNIFIED IDEOGRAPH +0xFDAF 0x82AE #CJK UNIFIED IDEOGRAPH +0xFDB0 0x85DD #CJK UNIFIED IDEOGRAPH +0xFDB1 0x8602 #CJK UNIFIED IDEOGRAPH +0xFDB2 0x88D4 #CJK UNIFIED IDEOGRAPH +0xFDB3 0x8A63 #CJK UNIFIED IDEOGRAPH +0xFDB4 0x8B7D #CJK UNIFIED IDEOGRAPH +0xFDB5 0x8C6B #CJK UNIFIED IDEOGRAPH +0xFDB6 0x92B3 #CJK UNIFIED IDEOGRAPH +0xFDB7 0x96B7 #CJK UNIFIED IDEOGRAPH +0xFDB8 0x9713 #CJK UNIFIED IDEOGRAPH +0xFDB9 0x9810 #CJK UNIFIED IDEOGRAPH +0xFDBA 0x5582 #CJK UNIFIED IDEOGRAPH +0xFDBB 0x5916 #CJK UNIFIED IDEOGRAPH +0xFDBC 0x5D6C #CJK UNIFIED IDEOGRAPH +0xFDBD 0x5DCD #CJK UNIFIED IDEOGRAPH +0xFDBE 0x6B6A #CJK UNIFIED IDEOGRAPH +0xFDBF 0x7325 #CJK UNIFIED IDEOGRAPH +0xFDC0 0x754F #CJK UNIFIED IDEOGRAPH +0xFDC1 0x4F4D #CJK UNIFIED IDEOGRAPH +0xFDC2 0x5049 #CJK UNIFIED IDEOGRAPH +0xFDC3 0x50DE #CJK UNIFIED IDEOGRAPH +0xFDC4 0x5371 #CJK UNIFIED IDEOGRAPH +0xFDC5 0x570D #CJK UNIFIED IDEOGRAPH +0xFDC6 0x59D4 #CJK UNIFIED IDEOGRAPH +0xFDC7 0x5A01 #CJK UNIFIED IDEOGRAPH +0xFDC8 0x5C09 #CJK UNIFIED IDEOGRAPH +0xFDC9 0x6170 #CJK UNIFIED IDEOGRAPH +0xFDCA 0x6690 #CJK UNIFIED IDEOGRAPH +0xFDCB 0x6E2D #CJK UNIFIED IDEOGRAPH +0xFDCC 0x7232 #CJK UNIFIED IDEOGRAPH +0xFDCD 0x744B #CJK UNIFIED IDEOGRAPH +0xFDCE 0x7DEF #CJK UNIFIED IDEOGRAPH +0xFDCF 0x80C3 #CJK UNIFIED IDEOGRAPH +0xFDD0 0x840E #CJK UNIFIED IDEOGRAPH +0xFDD1 0x8466 #CJK UNIFIED IDEOGRAPH +0xFDD2 0x853F #CJK UNIFIED IDEOGRAPH +0xFDD3 0x875F #CJK UNIFIED IDEOGRAPH +0xFDD4 0x885B #CJK UNIFIED IDEOGRAPH +0xFDD5 0x8918 #CJK UNIFIED IDEOGRAPH +0xFDD6 0x8B02 #CJK UNIFIED IDEOGRAPH +0xFDD7 0x9055 #CJK UNIFIED IDEOGRAPH +0xFDD8 0x97CB #CJK UNIFIED IDEOGRAPH +0xFDD9 0x9B4F #CJK UNIFIED IDEOGRAPH +0xFDDA 0x4F9D #CJK UNIFIED IDEOGRAPH +0xFDDB 0x501A #CJK UNIFIED IDEOGRAPH +0xFDDC 0x5100 #CJK UNIFIED IDEOGRAPH +0xFDDD 0x5B9C #CJK UNIFIED IDEOGRAPH +0xFDDE 0x610F #CJK UNIFIED IDEOGRAPH +0xFDDF 0x61FF #CJK UNIFIED IDEOGRAPH +0xFDE0 0x64EC #CJK UNIFIED IDEOGRAPH +0xFDE1 0x6905 #CJK UNIFIED IDEOGRAPH +0xFDE2 0x6BC5 #CJK UNIFIED IDEOGRAPH +0xFDE3 0x7591 #CJK UNIFIED IDEOGRAPH +0xFDE4 0x77E3 #CJK UNIFIED IDEOGRAPH +0xFDE5 0x7FA9 #CJK UNIFIED IDEOGRAPH +0xFDE6 0x8264 #CJK UNIFIED IDEOGRAPH +0xFDE7 0x858F #CJK UNIFIED IDEOGRAPH +0xFDE8 0x87FB #CJK UNIFIED IDEOGRAPH +0xFDE9 0x8863 #CJK UNIFIED IDEOGRAPH +0xFDEA 0x8ABC #CJK UNIFIED IDEOGRAPH +0xFDEB 0x8B70 #CJK UNIFIED IDEOGRAPH +0xFDEC 0x91AB #CJK UNIFIED IDEOGRAPH +0xFDED 0x5A03 #CJK UNIFIED IDEOGRAPH +0xFDEE 0x6E26 #CJK UNIFIED IDEOGRAPH +0xFDEF 0x74E6 #CJK UNIFIED IDEOGRAPH +0xFDF0 0x7AA9 #CJK UNIFIED IDEOGRAPH +0xFDF1 0x7AAA #CJK UNIFIED IDEOGRAPH +0xFDF2 0x81E5 #CJK UNIFIED IDEOGRAPH +0xFDF3 0x86D9 #CJK UNIFIED IDEOGRAPH +0xFDF4 0x8778 #CJK UNIFIED IDEOGRAPH +0xFDF5 0x8A1B #CJK UNIFIED IDEOGRAPH +0xFDF6 0x5A49 #CJK UNIFIED IDEOGRAPH +0xFDF7 0x5B8C #CJK UNIFIED IDEOGRAPH +0xFDF8 0x5B9B #CJK UNIFIED IDEOGRAPH +0xFDF9 0x68A1 #CJK UNIFIED IDEOGRAPH +0xFDFA 0x6900 #CJK UNIFIED IDEOGRAPH +0xFDFB 0x6D63 #CJK UNIFIED IDEOGRAPH +0xFDFC 0x73A9 #CJK UNIFIED IDEOGRAPH +0xFDFD 0x7413 #CJK UNIFIED IDEOGRAPH +0xFDFE 0x742C #CJK UNIFIED IDEOGRAPH +0xFEA1 0x7897 #CJK UNIFIED IDEOGRAPH +0xFEA2 0x7DE9 #CJK UNIFIED IDEOGRAPH +0xFEA3 0x7FEB #CJK UNIFIED IDEOGRAPH +0xFEA4 0x8118 #CJK UNIFIED IDEOGRAPH +0xFEA5 0x8155 #CJK UNIFIED IDEOGRAPH +0xFEA6 0x839E #CJK UNIFIED IDEOGRAPH +0xFEA7 0x8C4C #CJK UNIFIED IDEOGRAPH +0xFEA8 0x962E #CJK UNIFIED IDEOGRAPH +0xFEA9 0x9811 #CJK UNIFIED IDEOGRAPH +0xFEAA 0x66F0 #CJK UNIFIED IDEOGRAPH +0xFEAB 0x5F80 #CJK UNIFIED IDEOGRAPH +0xFEAC 0x65FA #CJK UNIFIED IDEOGRAPH +0xFEAD 0x6789 #CJK UNIFIED IDEOGRAPH +0xFEAE 0x6C6A #CJK UNIFIED IDEOGRAPH +0xFEAF 0x738B #CJK UNIFIED IDEOGRAPH +0xFEB0 0x5143 #CJK UNIFIED IDEOGRAPH +0xFEB1 0x539F #CJK UNIFIED IDEOGRAPH +0xFEB2 0x54E1 #CJK UNIFIED IDEOGRAPH +0xFEB3 0x5713 #CJK UNIFIED IDEOGRAPH +0xFEB4 0x5712 #CJK UNIFIED IDEOGRAPH +0xFEB5 0x57A3 #CJK UNIFIED IDEOGRAPH +0xFEB6 0x5A9B #CJK UNIFIED IDEOGRAPH +0xFEB7 0x5AC4 #CJK UNIFIED IDEOGRAPH +0xFEB8 0x5BC3 #CJK UNIFIED IDEOGRAPH +0xFEB9 0x6028 #CJK UNIFIED IDEOGRAPH +0xFEBA 0x613F #CJK UNIFIED IDEOGRAPH +0xFEBB 0x63F4 #CJK UNIFIED IDEOGRAPH +0xFEBC 0x6C85 #CJK UNIFIED IDEOGRAPH +0xFEBD 0x6D39 #CJK UNIFIED IDEOGRAPH +0xFEBE 0x6E72 #CJK UNIFIED IDEOGRAPH +0xFEBF 0x6E90 #CJK UNIFIED IDEOGRAPH +0xFEC0 0x7230 #CJK UNIFIED IDEOGRAPH +0xFEC1 0x733F #CJK UNIFIED IDEOGRAPH +0xFEC2 0x7457 #CJK UNIFIED IDEOGRAPH +0xFEC3 0x82D1 #CJK UNIFIED IDEOGRAPH +0xFEC4 0x83C0 #CJK UNIFIED IDEOGRAPH +0xFEC5 0x8881 #CJK UNIFIED IDEOGRAPH +0xFEC6 0x8F45 #CJK UNIFIED IDEOGRAPH +0xFEC7 0x9060 #CJK UNIFIED IDEOGRAPH +0xFEC8 0x9662 #CJK UNIFIED IDEOGRAPH +0xFEC9 0x9858 #CJK UNIFIED IDEOGRAPH +0xFECA 0x9D1B #CJK UNIFIED IDEOGRAPH +0xFECB 0x6708 #CJK UNIFIED IDEOGRAPH +0xFECC 0x8D8A #CJK UNIFIED IDEOGRAPH +0xFECD 0x925E #CJK UNIFIED IDEOGRAPH +0xFECE 0x502D #CJK UNIFIED IDEOGRAPH +0xFECF 0x77EE #CJK UNIFIED IDEOGRAPH ADDED freshlib/data/_encodings/_sources/NEXTSTEP.TXT Index: freshlib/data/_encodings/_sources/NEXTSTEP.TXT ================================================================== --- /dev/null +++ freshlib/data/_encodings/_sources/NEXTSTEP.TXT @@ -0,0 +1,173 @@ +# +# Name: NextStep Encoding to Unicode +# Unicode version: 1.1 +# Table version: 0.1 +# Table format: Format A +# Date: 1999 September 23 +# Authors: Rick McGowan +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# NextStep Encoding characters map into Unicode. Since the first +# 128 characters (0x0 - 0x7f) are identical to ASCII and Unicode, +# this table only maps the NextStep range from 0x80 - 0xFF. +# +# This file is provided for historical reference only and pertains +# to NextStep and OpenStep products shipped prior to the aquisition +# of NeXT by Apple Computer, Inc. See http://www.apple.com for +# further information. +# +# Format: Three tab-separated columns +# Column #1 is the NextStep code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 NextStep name, Unicode name (follows a comment sign, '#') +# +# The entries are in NextStep order +# +# Any comments or problems, contact info@unicode.org +# +0x80 0x00a0 # NO-BREAK SPACE +0x81 0x00c0 # LATIN CAPITAL LETTER A WITH GRAVE +0x82 0x00c1 # LATIN CAPITAL LETTER A WITH ACUTE +0x83 0x00c2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0x84 0x00c3 # LATIN CAPITAL LETTER A WITH TILDE +0x85 0x00c4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0x86 0x00c5 # LATIN CAPITAL LETTER A WITH RING +0x87 0x00c7 # LATIN CAPITAL LETTER C WITH CEDILLA +0x88 0x00c8 # LATIN CAPITAL LETTER E WITH GRAVE +0x89 0x00c9 # LATIN CAPITAL LETTER E WITH ACUTE +0x8a 0x00ca # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0x8b 0x00cb # LATIN CAPITAL LETTER E WITH DIAERESIS +0x8c 0x00cc # LATIN CAPITAL LETTER I WITH GRAVE +0x8d 0x00cd # LATIN CAPITAL LETTER I WITH ACUTE +0x8e 0x00ce # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0x8f 0x00cf # LATIN CAPITAL LETTER I WITH DIAERESIS +0x90 0x00d0 # LATIN CAPITAL LETTER ETH +0x91 0x00d1 # LATIN CAPITAL LETTER N WITH TILDE +0x92 0x00d2 # LATIN CAPITAL LETTER O WITH GRAVE +0x93 0x00d3 # LATIN CAPITAL LETTER O WITH ACUTE +0x94 0x00d4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0x95 0x00d5 # LATIN CAPITAL LETTER O WITH TILDE +0x96 0x00d6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0x97 0x00d9 # LATIN CAPITAL LETTER U WITH GRAVE +0x98 0x00da # LATIN CAPITAL LETTER U WITH ACUTE +0x99 0x00db # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0x9a 0x00dc # LATIN CAPITAL LETTER U WITH DIAERESIS +0x9b 0x00dd # LATIN CAPITAL LETTER Y WITH ACUTE +0x9c 0x00de # LATIN CAPITAL LETTER THORN +0x9d 0x00b5 # MICRO SIGN +0x9e 0x00d7 # MULTIPLICATION SIGN +0x9f 0x00f7 # DIVISION SIGN +0xa0 0x00a9 # COPYRIGHT SIGN +0xa1 0x00a1 # INVERTED EXCLAMATION MARK +0xa2 0x00a2 # CENT SIGN +0xa3 0x00a3 # POUND SIGN +0xa4 0x2044 # FRACTION SLASH +0xa5 0x00a5 # YEN SIGN +0xa6 0x0192 # LATIN SMALL LETTER F WITH HOOK +0xa7 0x00a7 # SECTION SIGN +0xa8 0x00a4 # CURRENCY SIGN +0xa9 0x2019 # RIGHT SINGLE QUOTATION MARK +0xaa 0x201c # LEFT DOUBLE QUOTATION MARK +0xab 0x00ab # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xac 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK +0xad 0x203a # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +0xae 0xfb01 # LATIN SMALL LIGATURE FI +0xaf 0xfb02 # LATIN SMALL LIGATURE FL +0xb0 0x00ae # REGISTERED SIGN +0xb1 0x2013 # EN DASH +0xb2 0x2020 # DAGGER +0xb3 0x2021 # DOUBLE DAGGER +0xb4 0x00b7 # MIDDLE DOT +0xb5 0x00a6 # BROKEN BAR +0xb6 0x00b6 # PILCROW SIGN +0xb7 0x2022 # BULLET +0xb8 0x201a # SINGLE LOW-9 QUOTATION MARK +0xb9 0x201e # DOUBLE LOW-9 QUOTATION MARK +0xba 0x201d # RIGHT DOUBLE QUOTATION MARK +0xbb 0x00bb # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xbc 0x2026 # HORIZONTAL ELLIPSIS +0xbd 0x2030 # PER MILLE SIGN +0xbe 0x00ac # NOT SIGN +0xbf 0x00bf # INVERTED QUESTION MARK +0xc0 0x00b9 # SUPERSCRIPT ONE +0xc1 0x02cb # MODIFIER LETTER GRAVE ACCENT +0xc2 0x00b4 # ACUTE ACCENT +0xc3 0x02c6 # MODIFIER LETTER CIRCUMFLEX ACCENT +0xc4 0x02dc # SMALL TILDE +0xc5 0x00af # MACRON +0xc6 0x02d8 # BREVE +0xc7 0x02d9 # DOT ABOVE +0xc8 0x00a8 # DIAERESIS +0xc9 0x00b2 # SUPERSCRIPT TWO +0xca 0x02da # RING ABOVE +0xcb 0x00b8 # CEDILLA +0xcc 0x00b3 # SUPERSCRIPT THREE +0xcd 0x02dd # DOUBLE ACUTE ACCENT +0xce 0x02db # OGONEK +0xcf 0x02c7 # CARON +0xd0 0x2014 # EM DASH +0xd1 0x00b1 # PLUS-MINUS SIGN +0xd2 0x00bc # VULGAR FRACTION ONE QUARTER +0xd3 0x00bd # VULGAR FRACTION ONE HALF +0xd4 0x00be # VULGAR FRACTION THREE QUARTERS +0xd5 0x00e0 # LATIN SMALL LETTER A WITH GRAVE +0xd6 0x00e1 # LATIN SMALL LETTER A WITH ACUTE +0xd7 0x00e2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xd8 0x00e3 # LATIN SMALL LETTER A WITH TILDE +0xd9 0x00e4 # LATIN SMALL LETTER A WITH DIAERESIS +0xda 0x00e5 # LATIN SMALL LETTER A WITH RING ABOVE +0xdb 0x00e7 # LATIN SMALL LETTER C WITH CEDILLA +0xdc 0x00e8 # LATIN SMALL LETTER E WITH GRAVE +0xdd 0x00e9 # LATIN SMALL LETTER E WITH ACUTE +0xde 0x00ea # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xdf 0x00eb # LATIN SMALL LETTER E WITH DIAERESIS +0xe0 0x00ec # LATIN SMALL LETTER I WITH GRAVE +0xe1 0x00c6 # LATIN CAPITAL LETTER AE +0xe2 0x00ed # LATIN SMALL LETTER I WITH ACUTE +0xe3 0x00aa # FEMININE ORDINAL INDICATOR +0xe4 0x00ee # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xe5 0x00ef # LATIN SMALL LETTER I WITH DIAERESIS +0xe6 0x00f0 # LATIN SMALL LETTER ETH +0xe7 0x00f1 # LATIN SMALL LETTER N WITH TILDE +0xe8 0x0141 # LATIN CAPITAL LETTER L WITH STROKE +0xe9 0x00d8 # LATIN CAPITAL LETTER O WITH STROKE +0xea 0x0152 # LATIN CAPITAL LIGATURE OE +0xeb 0x00ba # MASCULINE ORDINAL INDICATOR +0xec 0x00f2 # LATIN SMALL LETTER O WITH GRAVE +0xed 0x00f3 # LATIN SMALL LETTER O WITH ACUTE +0xee 0x00f4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xef 0x00f5 # LATIN SMALL LETTER O WITH TILDE +0xf0 0x00f6 # LATIN SMALL LETTER O WITH DIAERESIS +0xf1 0x00e6 # LATIN SMALL LETTER AE +0xf2 0x00f9 # LATIN SMALL LETTER U WITH GRAVE +0xf3 0x00fa # LATIN SMALL LETTER U WITH ACUTE +0xf4 0x00fb # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xf5 0x0131 # LATIN SMALL LETTER DOTLESS I +0xf6 0x00fc # LATIN SMALL LETTER U WITH DIAERESIS +0xf7 0x00fd # LATIN SMALL LETTER Y WITH ACUTE +0xf8 0x0142 # LATIN SMALL LETTER L WITH STROKE +0xf9 0x00f8 # LATIN SMALL LETTER O WITH STROKE +0xfa 0x0153 # LATIN SMALL LIGATURE OE +0xfb 0x00df # LATIN SMALL LETTER SHARP S +0xfc 0x00fe # LATIN SMALL LETTER THORN +0xfd 0x00ff # LATIN SMALL LETTER Y WITH DIAERESIS +0xfe 0xfffd # .notdef, REPLACEMENT CHARACTER +0xff 0xfffd # .notdef, REPLACEMENT CHARACTER ADDED freshlib/data/_encodings/build Index: freshlib/data/_encodings/build ================================================================== --- /dev/null +++ freshlib/data/_encodings/build cannot compute difference between binary files ADDED freshlib/data/_encodings/buildall Index: freshlib/data/_encodings/buildall ================================================================== --- /dev/null +++ freshlib/data/_encodings/buildall @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "module 'Encoding tables'" > ./encodings.inc + +for i in _sources/*.TXT; do + dst=$(basename "$i" .TXT) + lbl=$(echo -n $dst | tr '-' '_') + + if [[ $lbl =~ ^[0-9] ]]; then + lbl="ISO$lbl" + fi + + ./build "$i" "./$dst.tbl" + + echo "EncodingTable $lbl, './$dst.tbl'" >> ./encodings.inc +done + +echo "endmodule" >> ./encodings.inc + ADDED freshlib/data/_encodings/encodings.inc Index: freshlib/data/_encodings/encodings.inc ================================================================== --- /dev/null +++ freshlib/data/_encodings/encodings.inc @@ -0,0 +1,56 @@ +module 'Encoding tables' +EncodingTable ISO8859_10, './8859-10.tbl' +EncodingTable ISO8859_11, './8859-11.tbl' +EncodingTable ISO8859_13, './8859-13.tbl' +EncodingTable ISO8859_14, './8859-14.tbl' +EncodingTable ISO8859_15, './8859-15.tbl' +EncodingTable ISO8859_16, './8859-16.tbl' +EncodingTable ISO8859_1, './8859-1.tbl' +EncodingTable ISO8859_2, './8859-2.tbl' +EncodingTable ISO8859_3, './8859-3.tbl' +EncodingTable ISO8859_4, './8859-4.tbl' +EncodingTable ISO8859_5, './8859-5.tbl' +EncodingTable ISO8859_6, './8859-6.tbl' +EncodingTable ISO8859_7, './8859-7.tbl' +EncodingTable ISO8859_8, './8859-8.tbl' +EncodingTable ISO8859_9, './8859-9.tbl' +EncodingTable CP037, './CP037.tbl' +EncodingTable CP1006, './CP1006.tbl' +EncodingTable CP1026, './CP1026.tbl' +EncodingTable CP1250, './CP1250.tbl' +EncodingTable CP1251, './CP1251.tbl' +EncodingTable CP1252, './CP1252.tbl' +EncodingTable CP1253, './CP1253.tbl' +EncodingTable CP1254, './CP1254.tbl' +EncodingTable CP1255, './CP1255.tbl' +EncodingTable CP1256, './CP1256.tbl' +EncodingTable CP1257, './CP1257.tbl' +EncodingTable CP1258, './CP1258.tbl' +EncodingTable CP424, './CP424.tbl' +EncodingTable CP437, './CP437.tbl' +EncodingTable CP500, './CP500.tbl' +EncodingTable CP737, './CP737.tbl' +EncodingTable CP775, './CP775.tbl' +EncodingTable CP850, './CP850.tbl' +EncodingTable CP852, './CP852.tbl' +EncodingTable CP855, './CP855.tbl' +EncodingTable CP856, './CP856.tbl' +EncodingTable CP857, './CP857.tbl' +EncodingTable CP860, './CP860.tbl' +EncodingTable CP861, './CP861.tbl' +EncodingTable CP862, './CP862.tbl' +EncodingTable CP863, './CP863.tbl' +EncodingTable CP864, './CP864.tbl' +EncodingTable CP865, './CP865.tbl' +EncodingTable CP866, './CP866.tbl' +EncodingTable CP869, './CP869.tbl' +EncodingTable CP874, './CP874.tbl' +EncodingTable CP875, './CP875.tbl' +EncodingTable CP932, './CP932.tbl' +EncodingTable CP936, './CP936.tbl' +EncodingTable CP949, './CP949.tbl' +EncodingTable KOI8_R, './KOI8-R.tbl' +EncodingTable KOI8_U, './KOI8-U.tbl' +EncodingTable KPS9566, './KPS9566.tbl' +EncodingTable NEXTSTEP, './NEXTSTEP.tbl' +endmodule ADDED freshlib/data/_encodings/tools/BuildEncodingTable.fpz Index: freshlib/data/_encodings/tools/BuildEncodingTable.fpz ================================================================== --- /dev/null +++ freshlib/data/_encodings/tools/BuildEncodingTable.fpz @@ -0,0 +1,7 @@ +;FreshProject_v3 +Compiler.Memory = 300000 +Compiler.BinaryNameAuto = 0 +Compiler.BinaryName = "../build" +Compiler.MainFile = "build.asm" +Aliases.TargetOS = "Linux|Win32|KolibriOS" +ProjectTree.Documents/ = 2 ADDED freshlib/data/_encodings/tools/build.asm Index: freshlib/data/_encodings/tools/build.asm ================================================================== --- /dev/null +++ freshlib/data/_encodings/tools/build.asm @@ -0,0 +1,245 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console + +include "%lib%/freshlib.asm" + +; include your includes here. + +start: + InitializeAll + + stdcall GetCmdArguments + jc .error_arg + + mov edi, eax + +.check_params: + cmp [edi+TArray.count], 2 + jb .error_arg + + stdcall FileOpen, [edi+TArray.array+4] + jc .file_not_found + + mov [hSourceFile], eax + + call InitArrays + +.line_loop: + stdcall FileReadLine, [hSourceFile] + jc .error_read + + test eax, eax + jz .end_of_file + + stdcall ProcessOneLine, eax + stdcall StrDel, eax + + jmp .line_loop + + +.end_of_file: + stdcall FileClose, ebx + +; sort the second table + xor ecx, ecx + +.outer: + lea ebx, [ecx+1] +.inner: + mov ax, [Table2+2*ecx] + cmp ax, [Table2+2*ebx] + jb .next + + xchg ax, [Table2+2*ebx] + mov [Table2+2*ecx], ax + + mov al, [Table3+ecx] + xchg al, [Table3+ebx] + mov [Table3+ecx], al + +.next: + inc ebx + cmp ebx, $80 + jne .inner + + inc ecx + cmp ecx, $80-1 + jne .outer + + + cmp [edi+TArray.count], 3 + jb .default_file + + mov eax, [edi+TArray.array+8] + jmp .save + +.default_file: + mov eax, cDefaultOutput + +.save: + stdcall SaveBinaryFile, eax, Table1, 384 + stdcall ListFree, edi, StrDel + jmp .finish + +cDefaultOutput text 'table.bin' + + +.error_read: + stdcall FileWriteString, [STDERR], <'Source file read error.', 13, 10> + jmp .end_of_file + + +.file_not_found: + stdcall FileWriteString, [STDERR], <'Source file not found.', 13, 10> + jmp .finish + +.error_arg: + stdcall FileWriteString, [STDERR], <'Use: build SOURCE DESTINATION', 13, 10> + + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + + +proc ProcessOneLine, .hString +begin + pushad + +; stdcall FileWriteString, [STDOUT], [.hString] +; stdcall FileWriteString, [STDOUT], cCRLF + + mov eax, [.hString] + stdcall StrClipSpacesR, eax + stdcall StrClipSpacesL, eax + stdcall StrCleanDupSpaces, eax + stdcall StrLCase, eax + + stdcall StrPtr, eax + mov esi, eax + + cmp byte [esi], '#' + je .finish ; comment line + + mov edi, esi + +.loop1: + lodsb + cmp al, ' ' + ja .loop1 + + test al, al + jz .finish ; the string is invalid, skip it. + + dec esi + + mov eax, esi + sub eax, edi + stdcall StrExtract, edi, 0, eax + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + jc .finish ; invalid number + + cmp eax, $ff + ja .finish ; multibyte code page. + + mov ebx, eax ; remember for now. + +.loop2: + lodsb + test al, al + jz .finish ; there is no second number + cmp al, ' ' + jb .loop2 + + lea edi, [esi-1] + +.loop3: + lodsb + cmp al, ' ' + ja .loop3 + + dec esi + mov eax, esi + sub eax, edi + stdcall StrExtract, edi, 0, eax + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + jnc .numok ; invalid second number - undefined character. + + mov eax, $fffd ; replace with space + +.numok: + cmp eax, $ffff + ja .finish ; too big unicode letter. Should be fixed maybe, but the tables are 16 bit. + + cmp ebx, $80 + jae .addit + + cmp ebx, eax + je .finish ; it is + +; int3 ; is it not possible ? + jmp .finish + +.addit: + mov ecx, ebx + sub ecx, $80 + + mov word [Table1+2*ecx], ax + mov word [Table2+2*ecx], ax + mov byte [Table3+ecx], bl + + +.finish: + popad + return +endp + + +proc InitArrays +begin + push ecx + + mov ecx, 80h + +.loop: + mov [Table1+2*ecx-256], cx + mov [Table2+2*ecx-256], cx + mov [Table3+ecx-256], cl + inc cl + jnz .loop + + pop ecx + return +endp + + + +uglobal + hSourceFile dd ? + Table1 rw 128 ; table for ANSI -> Unicode translation. + Table3 rb 128 + Table2 rw 128 ; needed only for the sorting of the index. +endg + +cCRLF text 13, 10 + ADDED freshlib/data/all.asm Index: freshlib/data/all.asm ================================================================== --- /dev/null +++ freshlib/data/all.asm @@ -0,0 +1,17 @@ +include 'i18n.asm' +include 'arrays.asm' +include 'trees.asm' +include 'strlib.asm' +include 'base64.asm' +include 'uconfig.asm' +include 'memstream.asm' +include 'hashes.asm' + +include 'bitstream.asm' +include 'bytestream.asm' +include 'deflate.asm' + +include 'named_array.asm' +include 'buffergap.asm' +include 'counter_array.asm' +include 'random.asm' Index: freshlib/data/arrays.asm ================================================================== --- freshlib/data/arrays.asm +++ freshlib/data/arrays.asm @@ -1,24 +1,20 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshLib::.. - portable, assembler library and GUI toolkit. | -;|____________________________________________________________________| -;| | -;| This file | -;| _________ | -;| Author: John Found | -;| | -;| Title: arrays.asm - OS independent dynamic arrays library. | -;| | -;| OS: Any | -;| | -;| Notes and changes: | -;| Uses memory.asm library for memory functions. | -;|____________________________________________________________________| - +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent dynamic arrays library. +; +; Target OS: Any +; +; Dependencies: memory.asm +; +; Notes: +;_________________________________________________________________________________________ + +module "Arrays library" struct TArray .count dd ? ; Count of elements in dynamic array .capacity dd ? ; Capacity of the array allocated memory. .itemsize dd ? ; Size of one element in dynamic array. Aligned on dword. @@ -50,11 +46,10 @@ mov edx, ecx imul ecx, cInitialCapacity add ecx, sizeof.TArray stdcall GetMem, ecx -.retaddr: jc .finish mov [eax+TArray.itemsize], edx mov [eax+TArray.capacity], cInitialCapacity clc @@ -63,19 +58,54 @@ pop edx ecx return endp +; returns a pointer to the array item. +; Arguments: +; .array - pointer to TArray +; .index - index of the array element. +; +; Returns: +; CF=0; EAX = pointer to the array element. +; CF=1 - indicates that [.index] is bigger than the array element count; +; in this case EAX = points after the last element of the array. + +proc GetArrayItem, .array, .index +begin + push ecx esi + + mov esi, [.array] + mov eax, [.index] + mov ecx, [esi+TArray.count] + + cmp eax, ecx + cmovae eax, ecx + + imul eax, [esi+TArray.itemsize] + lea eax, [esi+TArray.array+eax] + +; set CF + sub ecx, 1 + jc @f + cmp ecx, [.index] +@@: + pop esi ecx + return +endp + + ;____________________________________________________________________ ; -; proc AddArrayItem - adds new item at the end of TArray +; proc AddArrayItems - adds new item at the end of TArray ; dynamic array. ; Arguments: ; -; ptrArray - pointer to dword variable containing pointer +; .ptrArray - pointer to dword variable containing pointer ; to TArray structure. +; .count - count of the elements to be added. ; ; Returns: ; CF=1 if error: edx - pointer to the original array. ; ; CF=0 if OK: eax - pointer to new created element. @@ -88,11 +118,11 @@ ; to the array. It is safe to save the pointer before check of CF ; for error, because the procedure returns original pointer in case ; of memory allocation error. ;____________________________________________________________________ -proc AddArrayItem, .ptrArray +proc AddArrayItems, .ptrArray, .count begin push ebx ecx mov edx, [.ptrArray] test edx, edx @@ -101,78 +131,88 @@ stc pop ecx ebx return @@: + mov eax, [edx+TArray.count] mov ecx, [edx+TArray.capacity] - cmp ecx, [edx+TArray.count] - ja .memallocated + add eax, [.count] + cmp ecx, eax + jae .memallocated ; enlarge the array. Strategy here is not clear. - call [ResizeIt] + mov ecx, eax + call dword [ResizeIt] jc .finish mov ebx, ecx imul ecx, [edx+TArray.itemsize] add ecx, sizeof.TArray stdcall ResizeMem, edx, ecx -.retaddr: jc .finish mov edx, eax mov [edx+TArray.capacity], ebx .memallocated: mov eax, [edx+TArray.count] - inc [edx+TArray.count] + mov ecx, [.count] + add [edx+TArray.count], ecx + imul eax, [edx+TArray.itemsize] lea eax, [edx+eax+TArray.array] clc + .finish: pop ecx ebx return endp ;____________________________________________________________________ ; -; proc InsertArrayItem - inserts new item in the array. -; -; If .iElement is larger or equal to [TArray.count] the element is -; appended at the end of the array. Otherwise, all elements are moved -; to make room for the new element. If the capacity of the array is -; not enough to hold new element, the array is resized. +; proc InsertArrayItems - inserts new item in the array. ; ; Arguments: ; -; ptrArray - pointer to TArray structure. +; .ptrArray - pointer to TArray structure. +; .iElement - on what index to be inserted the new elements. +; .count - how many elements to be inserted. ; ; Returns: -; CF=1 if error: edx - pointer to the original array; new element is +; CF=1 if error: edx - pointer to the original array; new elements are ; not inserted. ; -; CF=0 if OK: eax - pointer to new created element. +; CF=0 if OK: eax - pointer to the first of the new inserted elements. ; edx - pointer to the array. ; ; Notes: +; If .iElement is larger or equal to [TArray.count] the elements are +; appended at the end of the array. Otherwise, all elements are moved +; to make room for the new elements. If the capacity of the array is +; not enough to hold the new elements, the array is resized. +; ; The procedure returns in edx pointer to the TArray. This pointer ; can differs from .ptrArray argument, if the memory was ; reallocated. The user should save the pointer for future access ; to the array. It is safe to save the pointer before check of CF ; for error, because the procedure returns original pointer in case ; of memory allocation error. ;____________________________________________________________________ -proc InsertArrayItem, .ptrArray, .iElement +proc InsertArrayItems, .ptrArray, .iElement, .count begin - stdcall AddArrayItem, [.ptrArray] + stdcall AddArrayItems, [.ptrArray], [.count] jc .end1 push ecx + mov ecx, [.iElement] - inc ecx + add ecx, [.count] + jc .end2 + cmp ecx, [edx+TArray.count] jae .end2 push esi edi @@ -196,56 +236,65 @@ std ; scroll the data. rep movsd -; clear the new item. +; clear the new items. mov ecx, [edx+TArray.itemsize] + imul ecx, [.count] shr ecx, 2 xor eax, eax rep stosd + lea eax, [edi+4] - cld pop edi esi + .end2: pop ecx + clc .end1: return endp ;************************************************************** -; proc DeleteArrayItem - deletes the item with the specified -; index from TArray dynamic array. +; proc DeleteArrayItems - deletes the items with the specified +; index and specified count from TArray +; dynamic array. ; If the capacity of the array is bigger than the recomended ; for the new count, then the array is resized. ; The recomended size is calculated using ResizeIt procedure ; from memory library. ; ; Arguments: ; .ptrArray - pointer to TArray structure. ; .iElement - index of the element to be deleted. +; .count - how many elements to be deleted. ; ; Returns: edx - pointer to the TArray. In the most cases -; this pointer can not be changed, but this -; also depents on the current OS memory +; this pointer will not be changed, but this +; also depends on the current OS memory ; allocation API, so it is safer to store -; the pointer for future use, instead of +; the pointer for future use instead of ; passed to the procedure. ; ; Notes: ; This function can't fail, because delete is ; always possible in already allocated array. ; in some cases shrinking resize possibly can fail ; but this will not affect the data in the array. +; +; if [.iElement]+[.count] is bigger that the [TArray.count] +; of the array, only the elements to the end of the array +; will be deleted. ; ;******************************************************* -proc DeleteArrayItem, .ptrArray, .iElement +proc DeleteArrayItems, .ptrArray, .iElement, .count begin - push edi esi ecx ebx + push edi esi ecx ebx eax mov edx, [.ptrArray] test edx, edx jz .exit @@ -256,20 +305,22 @@ js .exit cmp ecx, eax jae .exit ; index greater or equal to the count... - dec eax + add ecx, [.count] cmp ecx, eax - je .movedone ; if deleted element is the last, don't move + jae .movedone ; if there is no more elements after the last deleted element, don't move mov eax, [edx+TArray.itemsize] + imul ecx, eax + lea esi, [edx+ecx+TArray.array] ; the first after deleted + + mov ecx, [.iElement] imul ecx, eax ; offset of the deleted element. lea edi, [edx+ecx+TArray.array] ; destination address. - mov esi, eax - add esi, edi ; pointer to the next array element. mov ecx, [edx+TArray.count] imul ecx, eax lea ecx, [ecx+edx+TArray.array] sub ecx, esi ; bytes to be moved. It should be dword aligned count. @@ -276,13 +327,19 @@ shr ecx, 2 rep movsd ; move the data. .movedone: - dec [edx+TArray.count] - mov ecx, [edx+TArray.count] + mov eax, [.iElement] + sub ecx, [.count] + cmp ecx, eax + ja @f + mov ecx, eax +@@: + mov [edx+TArray.count], ecx + call [ResizeIt] jc .exit ; the array is OK, but the resize failed. cmp ecx, [edx+TArray.capacity] jae .exit ; the array have smaller capacity than recomended, so don't resize. @@ -295,18 +352,41 @@ mov edx, eax mov [edx+TArray.capacity], ecx ; set new capacity. .exit: - pop ebx ecx esi edi + pop eax ebx ecx esi edi return endp - - +;************************************************************** +; proc VacuumArray - deletes the reserved memory from the array. +; +; Arguments: +; .ptrArray - pointer to TArray structure. +; +; Returns: edx - pointer to the TArray. In the most cases +; this pointer will not be changed, but this +; also depends on the current OS memory +; allocation API, so it is safer to store +; the pointer for future use instead of +; passed to the procedure. +; CF=1 - there is a error on vacuuming. This is not +; exactly error, because this case indicates +; simply some memory manager unabiliry to reallocate +; memory. Although the array will not be changed. +; +; This procedure removes all reserved space in the array. +; Vacuum can save a lot of memory space, but takes time and +; also will make future inserts of new elements +; slower at least for the first add/insert. +; +; it is wise to vacuum the array after it is filled with +; most/all of the needed elements. +; proc VacuumArray, .ptrArray begin push eax ecx mov edx, [.ptrArray] @@ -325,10 +405,180 @@ .exit: pop ecx eax return endp + + +;*************************************************** +; Returns the result in the flags CF and ZF in a way +; to be used with JB,JA,JE: +; +; if E1<E2 -> CF = 1, ZF=0 (JB to be taken) +; if E1=E2 -> CF = 0, ZF=1 (JE to be taken) +; if E1>E2 -> CF=0, ZF=0 (JA to be taken) +; +;**************************************************** +interface CompareProc, .pElement1, .pElement2, .param + +;**************************************************** +; Quick sort of the array in the memory. +; Arguments: +; .ptrArray - pointer to TArray structure. +; .ptrCompareProc - pointer to procedure that compares two elements. +; .param - parameter that is directly passed to the +; comparison procedure. +; +; .ptrCompareProc has interface: +; +; proc CompareSomething, .ptrElement1, .ptrElement2, .param +; +; Returns the result in the flags CF and ZF in a way +; to be used with JB,JA,JE: +; +; if E1<E2 -> CF = 1, ZF=0 (JB to be taken) +; if E1=E2 -> CF = 0, ZF=1 (JE to be taken) +; if E1>E2 -> CF=0, ZF=0 (JA to be taken) +; +;**************************************************** + +proc SortArray, .ptrArray, .ptrCompareProc, .param +begin + pushad + + mov esi, [.ptrArray] + mov edi, [.ptrCompareProc] + mov ebx, [esi+TArray.itemsize] + + mov edx, [esi+TArray.count] + dec edx + xor ecx, ecx + + lea esi, [esi+TArray.array] + mov [.ptrArray], esi + + call .DoQSort + + popad + return + +; ECX = LEFT +; EDX = RIGHT +.DoQSort: + push eax + + cmp ecx, edx + jge .finish + + push edx ecx + + mov esi, edx + sub esi, ecx + sar esi, 1 + add esi, ecx + + imul esi, ebx + imul ecx, ebx + imul edx, ebx + add esi, [.ptrArray] + add ecx, [.ptrArray] + add edx, [.ptrArray] + +; copy the pivot element. + sub esp, ebx + mov edi, esp + + push ecx + mov ecx, ebx + rep movsb + pop ecx + + mov edi, esp + +; here edi contains pointer to the copied element. +; partition + sub ecx, ebx + add edx, ebx + +.whilei: + add ecx, ebx + stdcall [.ptrCompareProc], ecx, edi, [.param] + jb .whilei ; search for the left element >= pivote + + cmp ecx, edx + jg .next + +.whilej: + sub edx, ebx + stdcall [.ptrCompareProc], edi, edx, [.param] + jb .whilej ; search for the right element <= pivote + + cmp ecx, edx + jg .next ;i>j + je .whilei + +; swap elements: + push ebx + +.swap_loop: + dec ebx + js .end_swap + + mov al, [ecx+ebx] + xchg al, [edx+ebx] + mov [ecx+ebx], al + jmp .swap_loop + +.end_swap: + pop ebx + jmp .whilei + +.next: + add esp, ebx + + mov eax, edx ; j + sub eax, [.ptrArray] + cdq + idiv ebx + mov edi, eax + + mov eax, ecx ; i + sub eax, [.ptrArray] + cdq + idiv ebx + + pop ecx + mov edx, edi + call .DoQSort ; Left, j + + mov ecx, eax + pop edx + call .DoQSort ; i, Right + +.finish: + pop eax + retn +endp + + + + + +proc CompareIntAscending as CompareProc +begin + push eax esi edi + + mov esi, [.pElement1] + mov edi, [.pElement2] + + mov eax, [esi] + cmp eax, [edi] + pop edi esi eax + return +endp + + @@ -378,22 +628,78 @@ mov eax, ecx pop ecx edi return endp + + + +;____________________________________________________________________ +; +; proc ListIndexOfStr, .ptrArray, .hString - searches dynamic list of +; strings for the the given string. +; +; List is a special case of dynamic array, where the size of the +; elements is dword (4 bytes). +; +; Arguments: +; .ptrList - pointer to TArray dynamic array. +; .hString - value of the element. +; Returns: +; CF = 0 if the element was found. eax contains index of +; the element. +; CF = 1 the element is not found. +;____________________________________________________________________ + + +proc ListIndexOfStr, .ptrList, .hString +begin + push edi ecx + + mov edi, [.ptrList] + + cmp [edi+TArray.itemsize], 4 + jne .notfound + + mov ecx, [edi+TArray.count] + jecxz .notfound + +.loop: + dec ecx + js .notfound + + stdcall StrCompCase, [.hString], [edi+TArray.array+4*ecx] + jnc .loop + + clc + mov eax, ecx + pop ecx edi + return + +.notfound: + stc + pop ecx edi + return +endp + + + ;-------------------------------------------- ; Frees all elements of the list calling ; [FreeProc] on every element. ; (proc FreeProc, ptrItem) ; Frees the array of items ;-------------------------------------------- proc ListFree, .ptrList, .FreeProc begin - push edi ebx + pushad mov edi, [.ptrList] + test edi, edi + jz .finish + mov ebx, [edi+TArray.count] cmp [.FreeProc], 0 je .endwhile @@ -406,8 +712,11 @@ .endwhile: stdcall FreeMem, edi .finish: - pop ebx edi + popad return endp + + +endmodule ADDED freshlib/data/base64.asm Index: freshlib/data/base64.asm ================================================================== --- /dev/null +++ freshlib/data/base64.asm @@ -0,0 +1,236 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent string manipulation library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Author of this library is Decard (Mateusz Tymek) +; +;_________________________________________________________________________________________ + +module "Base64 library" + +if used base64_table + base64_table db "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + db "abcdefghijklmnopqrstuvwxyz" + db "0123456789+/" +end if + + +; calculates size of base64 stream after encoding + +proc Base64Size, .DataLen +begin + push ebx ecx edx + + mov eax, [.DataLen] + mov ebx, eax + add eax, 2 + + xor edx, edx + + mov ecx, 3 + div ecx + + add ebx, 3 + + sub ebx, edx + + mov eax, ebx + + xor edx, edx + div ecx + shl eax, 2 + + pop edx ecx ebx + return +endp + + +; encodes given buffer into base64 stream + +proc EncodeBase64, .pData, .Length +begin + push ecx edx esi edi + + mov esi, [.pData] + mov ecx, [.Length] + + stdcall StrNew + mov edi, eax + + stdcall Base64Size, ecx + stdcall StrSetCapacity, edi, eax + + push edi + + stdcall StrPtr, edi + mov edi, eax + + push edi + +.loop: + mov edx, [esi] + cmp ecx, 3 + jae .remainder_ok + and edx, 0xffff + cmp ecx, 2 + jae .remainder_ok + and edx, 0xff + +.remainder_ok: + bswap edx + + mov eax, edx + shr eax, 26 + and eax, 111111b + mov al, [base64_table+eax] + mov [edi], al + inc edi + + mov eax, edx + shr eax, 20 + and eax, 111111b + mov al, [base64_table+eax] + mov [edi], al + inc edi + dec ecx + jz .r2 + + mov eax, edx + shr eax, 14 + and eax, 111111b + mov al, [base64_table+eax] + mov [edi], al + inc edi + dec ecx + jz .r1 + + mov eax, edx + shr eax, 8 + and eax, 111111b + mov al, [base64_table+eax] + mov [edi], al + inc edi + + add esi, 3 + dec ecx + jnz .loop + jmp .finish + +.r2: + mov byte [edi], '=' + inc edi + +.r1: + mov byte [edi], '=' + inc edi + +.finish: + mov byte [edi], 0 + + mov ecx, edi + pop edi + + sub ecx, edi ; string length. + mov [edi+string.len], ecx + + pop eax ; string handle + + pop edi esi edx ecx + return +endp + + + + + +; decodes base64 stream into given buffer + +proc DecodeBase64, .hString +.decode_table rb 0x100 +.ret dd ? +begin + push ebx ecx edx esi edi + + xor eax, eax + mov ebx, 63 + +.make_table: + mov al, [base64_table+ebx] + mov [.decode_table+eax], bl + dec ebx + jns .make_table + + mov [.decode_table+'-'], 0 + mov [.decode_table+'='], 0 + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall StrLen, [.hString] + mov ecx, eax + + lea eax, [ecx+4] + stdcall GetMem, eax + lea edi, [eax+4] + mov [.ret], edi + + xor ebx, ebx + xor eax, eax + +.load_dword: + mov edx, [esi] + bswap edx + add esi, 4 + mov al, dl + mov al, [.decode_table+eax] + shrd ebx, eax, 6 + shr edx, 8 + mov al, dl + mov al, [.decode_table+eax] + shrd ebx, eax, 6 + shr edx, 8 + mov al, dl + mov al, [.decode_table+eax] + shrd ebx, eax, 6 + shr edx, 8 + mov al, dl + mov al, [.decode_table+eax] + shrd ebx, eax, 6 + bswap ebx + + mov [edi], ebx + add edi, 3 + sub ecx, 4 + js .exit_loop ; this jump should be never taken + jnz .load_dword ; (src_size should be a multiple of four) + +.exit_loop: + sub edi, 2 + cmp byte [edi], 0 + je .size_ok + + inc edi + cmp byte [edi], 0 + je .size_ok + + inc edi + +.size_ok: + mov eax, [.ret] + sub edi, eax + mov [eax-4], edi + + pop edi esi edx ecx ebx + return +endp + + + +endmodule ADDED freshlib/data/bbcode.asm Index: freshlib/data/bbcode.asm ================================================================== --- /dev/null +++ freshlib/data/bbcode.asm @@ -0,0 +1,1016 @@ +module "BBCode translator" + +match =HTML_IMG_ATTR, HTML_IMG_ATTR { + HTML_IMG_ATTR equ ' crossorigin="anonymous" ' +} + +iglobal +PHashTable tableBBtags, tpl_func, \ + 'b', tagStrong, \ + '*', tagListItem, \ + 'i', tagEm, \ + 'u', tagUnderlined, \ + 's', tagDel, \ + 'c', tagInlineCode, \ + 'url', tagURL, \ + 'img', tagImg, \ + 'quote', tagQuote, \ + 'code', tagCode, \ + 'size', tagSize, \ + 'color', tagColor, \ + 'list', tagUL, \ + 'ul', tagUL, \ + 'ol', tagOL, \ + 'table', tagTable, \ + 'tr', tagTR, \ + 'th', tagTH, \ + 'td', tagTD, \ + 'spoiler', tagSpoiler, \ + 'email', tagEmail, \ + 'h1', tagH1, \ + 'h2', tagH2, \ + 'h3', tagH3, \ + 'h4', tagH4, \ + 'h5', tagH5, \ + 'h6', tagH6, \ + ':)', emoSmile, \ + ':d', emoLol, \ + ':rofl:', emoRofl, \ + ';)', emoWink, \ + ':p', emoTongue, \ + ':(', emoSad, \ + ':`(', emoCry, \ + '>:(', emoAngry +endg + +struct TOneTag + .pOpenP dd ? ; Open tag prefix. for example '<img src="' + .lOpenP dd ? + .pOpenS dd ? ; Open tag suffix. for example '" alt="' + .lOpenS dd ? + .pClose dd ? ; Close tag. for example '" />' + .lClose dd ? + .flags dd ? ; encoding flags for this tag. the first byte contain flags for the text between .pOpenP and .pOpenS + ; the second byte for the text between .pOpenS and .pClose +ends + +; examples: +; [b]: '<b>', 0, '</b>' +; [quote=title]text[/quote]: '<blockquote><header>', '</header>', '</blockquote>' +; [img]image_url[/img]: '<img alt="', '" src="', '" />' +; [code=language][/code]: '<code class="', '">', '</code>' + + +struc flex [arg] { +common + local f1, f2, cnt, sz + cnt = 0 + sz = 0 + f1 = 1 + f2 equ FALSE +forward + match any, arg \{ + match `arg, arg \\{ f2 equ TRUE \\} + \} + + cnt = cnt + 1 + if arg eqtype '' + virtual at 0 + db arg + sz = sz + $ + end virtual + end if + +common + local lbl + + match =txt string, arg \{ + f1 = 0 + lbl text string + f2 equ FALSE + \} + + if (sz > 4) | (cnt>1) + f1 = 0 + end if + + if f1 + . = arg + .length = 0 + else + . = lbl + .length = lbl#\.length + end if + match =TRUE, f2 \{ lbl text arg \} +} + + +struc onetag prefix, suffix, close, flags { +common + local ..pref, ..suff, ..close + local ..fpr, ..fsf, ..fcl + + label . dword +if used . + ..pref flex prefix + ..suff flex suffix + ..close flex close + + .pOpenP dd ..pref + .lOpenP dd ..pref#\.length + .pOpenS dd ..suff + .lOpenS dd ..suff#\.length + .pClose dd ..close + .lClose dd ..close#\.length + .flags dd flags +end if +} + + +fEmptyAttr = $00000001 ; empty value of the attribute is acceptable. +fBlockTag = $00000002 ; This is a block tag. Allows paragraph generation and resets its state. +fDisableTags = $00000004 ; Disable tag generation inside this block; The only tag that is recongized is the respective closing tag. +fLines = $00000008 ; the tag can contain text lines. +fInlineTag = $00000010 +fURLAttribute = $00000020 ; the attribute of the tag contains URL, that need to be sanitized. +fURLContent = $00000040 ; the content of the tag is an URL. +fMixedDist = $00000080 ; The argument of the tag should be formatted as mixed ascii-unicode text. +fMinimagBlock = $80000000 ; The tags, that are open/close by ;tagname/;end in MiniMagAsm + + +iglobal + align 4 + + tagStrong onetag txt '<strong>', 0, txt '</strong>', fInlineTag + tagEm onetag txt '<em>', 0, txt '</em>', fInlineTag + tagUnderlined onetag txt '<span class="underlined">', 0, txt '</span>', fInlineTag + tagDel onetag txt '<del>', 0, txt '</del>', fInlineTag + tagInlineCode onetag txt '<code>', 0, txt '</code>', fInlineTag or fDisableTags + tagCode onetag txt '<pre><code class="', txt '">', txt '</code></pre>', fBlockTag or fEmptyAttr or fDisableTags or fMinimagBlock + tagQuote onetag txt '<blockquote><header>', txt '</header>',txt '</blockquote>',fBlockTag or fEmptyAttr or fMinimagBlock or fMixedDist + tagUL onetag txt '<ul>', 0, txt '</ul>', fBlockTag or fMinimagBlock + tagOL onetag txt '<ol type="', txt '">', txt '</ol>', fBlockTag or fEmptyAttr or fMinimagBlock + tagListItem onetag txt '<li>', 0, txt '</li>', fBlockTag + tagTable onetag txt '<table>', 0, txt '</table>', fBlockTag or fMinimagBlock + tagTR onetag txt '<tr>', 0, txt '</tr>', fBlockTag + tagTH onetag txt '<th>', 0, txt '</th>', fBlockTag + tagTD onetag txt '<td>', 0, txt '</td>', fBlockTag + tagSpoiler onetag txt '<details><summary>', txt '</summary>',txt '</details>', fBlockTag or fMinimagBlock + tagURL onetag txt '<a href="', txt '">', txt '</a>', fURLAttribute or fInlineTag + tagAnchor onetag txt '<a href="', txt '" id="', txt '"></a>', fURLAttribute or fInlineTag + tagImg onetag <txt '<img class="block"', HTML_IMG_ATTR, 'alt="'>, txt '" src="', txt '" />', fBlockTag or fDisableTags or fURLContent + tagInlineImg onetag <txt '<img class="inline"', HTML_IMG_ATTR,'alt="'>, txt '" src="', txt '" />', fInlineTag or fDisableTags or fURLContent + tagSize onetag txt '<span style="font-size:', txt '">', txt '</span>', fInlineTag + tagColor onetag txt '<span style="color:', txt '">', txt '</span>', fInlineTag + tagEmail onetag txt '<a href="mailto:', txt '">', txt '</a>', 0 + tagH1 onetag txt '<h1>', 0, txt '</h1>', fBlockTag or fLines + tagH2 onetag txt '<h2>', 0, txt '</h2>', fBlockTag or fLines + tagH3 onetag txt '<h3>', 0, txt '</h3>', fBlockTag or fLines + tagH4 onetag txt '<h4>', 0, txt '</h4>', fBlockTag or fLines + tagH5 onetag txt '<h5>', 0, txt '</h5>', fBlockTag or fLines + tagH6 onetag txt '<h6>', 0, txt '</h6>', fBlockTag or fLines + tagPara onetag txt '<p>', 0, txt '</p>', fLines + tagHR onetag txt '<hr>', 0, 0, 0 + + tagImgMM onetag <txt '<img class="block"', HTML_IMG_ATTR, 'src="'>, txt '" alt="', txt '" />', fBlockTag or fDisableTags + tagInlineImgMM onetag <txt '<img class="inline"', HTML_IMG_ATTR,'src="'>, txt '" alt="', txt '" />', fInlineTag or fDisableTags + tagVideoMM onetag <txt '<video', HTML_IMG_ATTR, 'controls><source src="'>, txt '">', txt '</video>', 0 + + ; Emoticons tags. + + emoSmile onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'smile.gif" alt=":)">'>, 0, 0, 0 + emoLol onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'lol.gif" alt=":D">'>, 0, 0, 0 + emoRofl onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'rofl.gif" alt=":D">'>, 0, 0, 0 + emoWink onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'wink.gif" alt=";)">'>, 0, 0, 0 + emoTongue onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'tongue.gif" alt=":P">'>, 0, 0, 0 + emoSad onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'sad.gif" alt=":(">'>, 0, 0, 0 + emoCry onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'cry.gif" alt=":`(">'>, 0, 0, 0 + emoAngry onetag <'<img class="emoticon" src="', EMOTICONS_PATH, 'angry.gif" alt=">:(">'>, 0, 0, 0 + + emoJ onetag txt '<span class="emoji"><span>', 0, txt '</span></span>', 0 +endg + +; 1 - paragraph starts on every new line. +; 2 - paragraph starts on every two consecutive new lines (like in MarkDown) +NEW_PARAGRAPH_EMPTY_LINES = 1 + +;-------------------------------------------------------------- +; Converts BB code into HTML. Starts from the position [.from] +; and ends at the end of the text or at first NULL character. +; +; Arguments: +; .pBBCode - pointer to the TText structure with the BBCode +; formatted text. +; .from - the position where to start. +; +; Returns: +; edx - The same structure (possibly reallocated) with +; the translated to html code text. +; + +proc TranslateBBCode, .pBBCode, .from, .procSanitizeURL +.pStack dd ? +.ofsStart dd ? +.tagType dd ? +.tagAddr dd ? +.tagFlags dd ? + +.tagMix dd ? +.char rb 4 + +.fNewLine dd ? + +.emoj = emoJ ; use this label. +begin + pushad + + stdcall CreateArray, 4 + mov [.pStack], eax + + mov [.fNewLine], NEW_PARAGRAPH_EMPTY_LINES ; first new line implicit. + and [.tagFlags], 0 + + mov edx, [.pBBCode] + + OutputValue "BBCode TText.GapBegin: ", [edx+TText.GapBegin], 10, -1 + OutputValue " GapEnd: ", [edx+TText.GapEnd], 10, -1 + OutputValue " Length: ", [edx+TText.Length], 10, -1 + OutputValue " Translate from: ", [.from], 10, -1 + + mov ebx, [.from] + jmp .loop + +.next: + inc ebx + +.loop: + mov ecx, [edx+TText.GapEnd] + cmp ebx, [edx+TText.GapBegin] + cmovb ecx, [edx+TText.GapBegin] + sub ecx, [edx+TText.GapBegin] + add ecx, ebx + cmp ecx, [edx+TText.Length] + jae .end_of_text + + movzx eax, byte [edx+ecx] + + test al, al + jz .end_of_text + + cmp al, $0d + je .new_line + + cmp al, $0a + je .new_line + + cmp al, $20 + jbe .next ; skip all whitespace + + cmp [.fNewLine], NEW_PARAGRAPH_EMPTY_LINES + mov [.fNewLine], 0 + jb .paragraph_ok + + test [.tagFlags], fDisableTags + jnz .paragraph_ok + + push eax + stdcall TextMoveGap, edx, ebx + stdcall TextSetGapSize, edx, 4 + mov eax, [edx+TText.GapBegin] + mov dword [edx+eax], "<p>" + add [edx+TText.GapBegin], 3 + add ebx, 3 + pop eax + +.paragraph_ok: + + cmp al, "[" + je .start_tag + +; here check for emoticons + + cmp al, $f0 ; emoji? + jb .continue + + stdcall TextMoveGap, edx, ebx + + mov ecx, [edx+TText.GapEnd] + mov esi, ecx ; the start of thet emoji + +.loop_emoji: + stdcall IsEmoji, [edx+ecx] + jnc .end_emoji + + add ecx, eax + cmp ecx, [edx+TText.Length] + jb .loop_emoji + +.end_emoji: + sub ecx, esi + jz .loop ; no emoji here... + + add ebx, ecx + + mov eax, [emoJ.lOpenP] + add eax, [emoJ.lClose] + stdcall TextSetGapSize, edx, eax + + mov edi, [edx+TText.GapBegin] + add edi, edx + + mov esi, [emoJ.pOpenP] + mov ecx, [emoJ.lOpenP] + add ebx, ecx + add [edx+TText.GapBegin], ecx + + rep movsb + + stdcall TextMoveGap, edx, ebx + + mov edi, [edx+TText.GapBegin] + add edi, edx + + mov esi, [emoJ.pClose] + mov ecx, [emoJ.lClose] + add ebx, ecx + add [edx+TText.GapBegin], ecx + + rep movsb + + jmp .loop + +.continue: + +; html encoding from here + + test al, al ; all values > 127 are unicode and should not be encoded. + js .next + + movzx eax, byte [tbl_html+eax] + test al, al + jz .del_char + jns .next ; the same as above + + lea esi, [eax+tbl_html] ; the address of the replacement string. + lodsb + movzx ecx, al ; length + +; insert the replacement html encoding from esi + stdcall TextMoveGap, edx, ebx + stdcall TextSetGapSize, edx, ecx + inc [edx+TText.GapEnd] ; delete the previous char. + + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + add ebx, ecx + + rep movsb + jmp .loop + +.del_char: + stdcall TextMoveGap, edx, ebx + inc [edx+TText.GapEnd] ; delete the current char. + jmp .loop + +.not_a_tag_pop: + + add esp, 4 + +.not_a_tag: + + mov ebx, [.ofsStart] + mov eax, "[" + jmp .continue + +;------------------------------------------------------------------------------------ + +.new_line: + inc ebx + + mov ecx, [edx+TText.GapEnd] + cmp ebx, [edx+TText.GapBegin] + cmovb ecx, [edx+TText.GapBegin] + sub ecx, [edx+TText.GapBegin] + add ecx, ebx + cmp ecx, [edx+TText.Length] + jae .end_of_text + + inc [.fNewLine] + + xor al, byte [edx+ecx] + cmp al, $0a xor $0d + jne .loop + jmp .next ; skip the next char. it is part of CRLF (or LFCR sequence). + +;----------------------------------------------------------------------------- + +.start_tag: + + xor ecx, ecx + mov [.ofsStart], ebx + +.first_non_ws: + inc ebx + + mov esi, [edx+TText.GapEnd] + cmp ebx, [edx+TText.GapBegin] + cmovb esi, [edx+TText.GapBegin] + sub esi, [edx+TText.GapBegin] + add esi, ebx + cmp esi, [edx+TText.Length] + jae .not_a_tag + + mov al, [edx+esi] + + test al, al + jz .not_a_tag + + cmp al, ' ' + jbe .first_non_ws + + mov edi, ebx ; the start of the hash name + + cmp al, "/" + je .closing_tag + + test [.tagFlags], fDisableTags + jnz .loop + +.hash1: + cmp al, "=" + je .tag_found + cmp al, "]" + je .tag_found + + mov ah, al + and ah, $40 + shr ah, 1 + or al, ah ; case insensitive hash. + + xor cl, al + mov cl, [ tpl_func + ecx] + + inc ebx + + mov esi, [edx+TText.GapEnd] + cmp ebx, [edx+TText.GapBegin] + cmovb esi, [edx+TText.GapBegin] + sub esi, [edx+TText.GapBegin] + add esi, ebx + cmp esi, [edx+TText.Length] + jae .not_a_tag + + mov al, [edx+esi] + jmp .hash1 + + +.tag_found: + + mov [.tagType], eax ; al = "=" or "]" + + mov esi, [tableBBtags + sizeof.TPHashItem * ecx + TPHashItem.pKeyname] + test esi, esi + jz .not_a_tag ; empty hash table cell. + + push ecx + + mov eax, ebx + sub eax, edi ; the length of the tag + movzx ecx, byte [esi-1] ; the length of the string in the hash table. + cmp ecx, eax + jne .not_a_tag_pop + + lea eax, [ebx+1] + stdcall TextMoveGap, edx, eax ; the gap is after the tag, so, the offset and the position are the same. + + add edi, edx ; = pointer to the tag start. (edi contains the offset); + xchg esi, edi + +.cmp_loop: + dec ecx + js .equal + + lodsb + + mov ah, al + and ah, $40 + shr ah, 1 + or al, ah + + scasb + je .cmp_loop + jmp .not_a_tag_pop ; the strings are different, so it is a collision. Ignore. + +.equal: + pop ecx + +; the tag name is the same! + + mov eax, [tableBBtags + sizeof.TPHashItem * ecx + TPHashItem.Value] + cmp [eax+TOneTag.pClose], 0 + je .stack_ok ; no need to push to the stack tags without closing tag. + + push edx + stdcall AddArrayItems, [.pStack], 1 + mov [.pStack], edx + mov [eax], ecx ; the last tag for close. + pop edx + +.stack_ok: + + mov edi, ebx ; edi points one char before the attribute value or to the tag content value, depending on the tag type (with or without attribute). + add edi, [edx+TText.GapEnd] + sub edi, [edx+TText.GapBegin] + +.skip_ws1: + inc edi + cmp edi, [edx+TText.Length] + jae .attr_here ; it is an empty attribute actually... + + cmp byte [edx+edi], 0 + je .attr_here + + cmp byte [edx+edi], ' ' + jbe .skip_ws1 + +.attr_here: + add edi, [edx+TText.GapBegin] + sub edi, [edx+TText.GapEnd] + +; Here edi contains the position of the first non whitespace character of the attribute. +; Don't forget to increment it accordingly on inserting text before it. + + OutputValue "Open tag with hash=", ecx, 10, -1 + + mov eax, [edx+TText.GapBegin] + sub eax, [.ofsStart] + + sub [edx+TText.GapBegin], eax ; delete the start of the tag. + sub ebx, eax ; move ebx back, because of the deleted tag text. + sub edi, eax + + mov eax, [tableBBtags + sizeof.TPHashItem * ecx + TPHashItem.Value] + + mov [.tagAddr], eax + + push [eax+TOneTag.flags] + pop [.tagFlags] + +; remove the last paragraph (if exists) if the tag is block tag: + test [.tagFlags], fBlockTag + jz @f + + mov ecx, [edx+TText.GapBegin] + mov ecx, [edx+ecx-3] + and ecx, $ffffff + cmp ecx, '<p>' + jne .clear_newline + + sub [edx+TText.GapBegin], 3 + sub ebx, 3 + sub edi, 3 + + jmp .clear_newline + +@@: + cmp [.fNewLine], 1 + jbe .copy_tag_prefix + + mov esi, [tagPara.pOpenP] + mov ecx, [tagPara.lOpenP] + add edi, ecx + call .copy_tag + +.clear_newline: + + and [.fNewLine], 0 + +.copy_tag_prefix: + mov esi, [eax+TOneTag.pOpenP] + mov ecx, [eax+TOneTag.lOpenP] + add edi, ecx + call .copy_tag + + mov esi, [eax+TOneTag.pOpenS] + mov ecx, [eax+TOneTag.lOpenS] + test esi, esi + jz .mono_open_tag ; the open tag consists of only one part, without attributes. + + cmp byte [.tagType], '=' + je .process_attribute + + test [eax+TOneTag.flags], fEmptyAttr ; if the tag allows empty attribute, simply copy + jnz .copy ; the tag suffix without trying to replace the attribute. + +; here copy and encode the attribute value: +.process_attribute: +; inc ebx + + push esi ecx [edx+TText.GapBegin] + + lea esi, [edi-1] + + mov [.tagMix], '<u >' + + mov eax, edi ; == esi+1 + add eax, [edx+TText.GapEnd] + sub eax, [edx+TText.GapBegin] ; eax = eax + (GapEnd - GapBegin) + mov al, byte [edx+eax] + mov [.char], al + +.attr_loop: + inc esi + + mov eax, esi + add eax, [edx+TText.GapEnd] + sub eax, [edx+TText.GapBegin] ; eax = eax + (GapEnd - GapBegin) + cmp eax, [edx+TText.Length] + jae .end_of_attr2 + + movzx eax, byte [edx+eax] + + test al, al + jz .end_of_attr2 + + cmp al, "]" + je .end_of_attr1 + + cmp al, "[" + je .end_of_attr2 + +; check the mix flag + + test [.tagFlags], fMixedDist + jz .mixed_ok + + xor [.char], al + mov [.char], al + jns .mixed_ok + + stdcall TextSetGapSize, edx, 4 + mov edi, [edx+TText.GapBegin] + pushd [.tagMix] + popd [edx+edi] + add [edx+TText.GapBegin], 4 + add ebx, 4 + add esi, 4 + xor [.tagMix], '<u >' xor '</u>' + +.mixed_ok: +; encode with HTML encoding. + + test al, al ; all values > 127 are unicode and should not be encoded. + js .store_char + + movzx eax, byte [tbl_html+eax] + test al, al + jz .attr_loop + jns .store_char ; it is non-encodable character, just copy it. + + push esi + + lea esi, [eax+tbl_html] ; the address of the replacement string. + lodsb + movzx ecx, al ; length + + stdcall TextSetGapSize, edx, ecx + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + add ebx, ecx + add [esp], ecx ; increase ESI that is in the stack right now. + + rep movsb + pop esi + jmp .attr_loop + +.store_char: + stdcall TextSetGapSize, edx, 1 + mov edi, [edx+TText.GapBegin] + mov [edx+edi], al + inc [edx+TText.GapBegin] + inc ebx + inc esi + jmp .attr_loop + + +.end_of_attr1: + inc esi ; delete "]" + + add esi, [edx+TText.GapEnd] + sub esi, [edx+TText.GapBegin] + mov [edx+TText.GapEnd], esi + +.end_of_attr2: + cmp [.tagMix], '</u>' + jne .mix_closed + + stdcall TextSetGapSize, edx, 4 + mov edi, [edx+TText.GapBegin] + pushd [.tagMix] + popd [edx+edi] + add [edx+TText.GapBegin], 4 + add ebx, 4 + add esi, 4 + xor [.tagMix], '<u >' xor '</u>' + +.mix_closed: + pop edi ; the start [edx+TText.GapBegin] - this is the start of the copied attribute. + + test [.tagFlags], fURLAttribute + jz .url_ok + + mov ecx, [edx+TText.GapBegin] + sub ecx, edi + + add edi, edx + + sub ebx, ecx + sub [edx+TText.GapBegin], ecx + + stdcall [.procSanitizeURL], edi, ecx + push eax + + stdcall StrPtr, eax + + mov esi, eax + mov ecx, [eax+string.len] + + stdcall TextSetGapSize, edx, ecx + + add ebx, ecx + add [edx+TText.GapBegin], ecx + + rep movsb + + stdcall StrDel ; from the stack + +.url_ok: + pop ecx esi + +.copy: + call .copy_tag + test [.tagFlags], fBlockTag + jz .next + + mov [.fNewLine], NEW_PARAGRAPH_EMPTY_LINES ; after start of a block tag, the first text starts a paragraph. + jmp .next + + +.mono_open_tag: + + cmp byte [.tagType], '=' + jne .next + +; search the end of the attribute + + dec edi + add edi, [edx+TText.GapEnd] + sub edi, [edx+TText.GapBegin] ; edi = edi + (GapEnd - GapBegin) + +.attr_loop2: + inc edi + cmp edi, [edx+TText.Length] + jae .end_of_attr3 + + cmp byte [edx+edi], 0 + je .end_of_attr3 + + cmp byte [edx+edi], "]" + jne .attr_loop2 + + inc edi + +.end_of_attr3: + mov [edx+TText.GapEnd], edi + jmp .next + + +.closing_tag: + +.hash2: + inc ebx + + mov esi, [edx+TText.GapEnd] + cmp ebx, [edx+TText.GapBegin] + cmovb esi, [edx+TText.GapBegin] + sub esi, [edx+TText.GapBegin] + add esi, ebx + cmp esi, [edx+TText.Length] + jae .not_a_tag + + mov al, [edx+esi] + test al, al + jz .not_a_tag + + cmp al, "]" + je .close_here + + mov ah, al + and ah, $40 + shr ah, 1 + or al, ah ; case insensitive hash. + + xor cl, al + mov cl, [ tpl_func + ecx] + jmp .hash2 + +.close_here: + + OutputValue "Closing tag with hash=", ecx, 10, -1 + + inc edi ; skip "/" char. + + mov esi, [tableBBtags + sizeof.TPHashItem * ecx + TPHashItem.pKeyname] + test esi, esi + jz .not_a_tag + + test [.tagFlags], fDisableTags + jz .process_closing + + mov eax, [tableBBtags + sizeof.TPHashItem * ecx + TPHashItem.Value] + cmp eax, [.tagAddr] + jne .not_a_tag + +.process_closing: + and [.tagFlags], 0 + + push ecx + + mov eax, ebx + sub eax, edi ; the length of the tag + movzx ecx, byte [esi-1] ; the length of the string in the hash table. + cmp ecx, eax + jne .not_a_closing_tag + + lea eax, [ebx+1] + stdcall TextMoveGap, edx, eax ; the gap is after the tag, so, the offset and the position are the same. + + add edi, edx ; the pointer to the tag start. + xchg esi, edi + +.cmp_loop2: + dec ecx + js .equal2 + + lodsb + + mov ah, al + and ah, $40 + shr ah, 1 + or al, ah + + scasb + je .cmp_loop2 + +.not_a_closing_tag: + pop ecx + jmp .not_a_tag ; the strings are different, so it is a collision. Ignore. + +.equal2: + pop ecx + +; the tag name is the same! + + mov eax, [edx+TText.GapBegin] + sub eax, [.ofsStart] + + sub ebx, eax ; move ebx back, because of the deleted tag text. + sub [edx+TText.GapBegin], eax ; delete the start of the tag. + + mov edi, [.pStack] + mov eax, [edi+TArray.count] + test eax, eax + jz .next ; the stack is empty, so ignore the closing tag! + +.close_loop: + dec eax + js .error_stack + + push ecx + mov esi, [edi+TArray.array + 4*eax] + mov esi, [tableBBtags + sizeof.TPHashItem * esi + TPHashItem.Value] + mov ecx, [esi+TOneTag.lClose] + mov esi, [esi+TOneTag.pClose] + call .copy_tag + pop ecx + + cmp ecx, [edi+TArray.array + 4*eax] + jne .close_loop + + mov [edi+TArray.count], eax + jmp .next + +.error_stack: + inc eax + mov [edi+TArray.count], eax + jmp .next + + +.end_of_text: +; here, close all open tags and free the stack array. + + stdcall TextMoveGap, edx, ebx + + mov edi, [.pStack] + mov eax, [edi+TArray.count] + +.closeall: + dec eax + js .finish + + mov esi, [edi+TArray.array + 4*eax] + mov esi, [tableBBtags + sizeof.TPHashItem * esi + TPHashItem.Value] + + mov ecx, [esi+TOneTag.lClose] + mov esi, [esi+TOneTag.pClose] + call .copy_tag + jmp .closeall + +.finish: + stdcall FreeMem, edi + + mov [esp+4*regEDX], edx + popad + return + + +.copy_tag: + push edi + stdcall TextSetGapSize, edx, ecx + + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + add ebx, ecx + + rep movsb + pop edi + retn +endp + + + +macro HtmlEntities name, [char, encoding] { +common + local ..tabl + + label ..tabl byte + if used name + label name byte + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c, $2d, $2e, $2f + db $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $3a, $3b, $3c, $3d, $3e, $3f + db $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $4a, $4b, $4c, $4d, $4e, $4f + db $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5a, $5b, $5c, $5d, $5e, $5f + db $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $6a, $6b, $6c, $6d, $6e, $6f + db $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7a, $7b, $7c, $7d, $7e, $7f + +forward + local ..offs, ..name, ..len + + if encoding eqtype '' + ..name db ..len, encoding + ..len = $ - ..name - 1 + ..offs = ..name - ..tabl + else + ..offs = encoding + end if + + assert ..offs < 256 + +forward + local ..char, ..ascii + virtual at 0 + ..char db char + load ..ascii byte from ..char + end virtual + assert ..ascii < 128 + store byte ..offs at ..tabl + ..ascii + +common + end if + DispSize "HTML entities table:", $-..tabl +} + + +iglobal + HtmlEntities tbl_html, \ + $09, $0d, \ + $0a, $0a, \ + $0d, $0d, \ + '<', '<', \ + '>', '>', \ + '"', '"', \ + "'", ''', \ + '&', '&' +endg + + + + + +endmodule + ADDED freshlib/data/bitstream.asm Index: freshlib/data/bitstream.asm ================================================================== --- /dev/null +++ freshlib/data/bitstream.asm @@ -0,0 +1,358 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic bit streams library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Based on works of Mateusz Tymek. +;_________________________________________________________________________________________ + + +module "BitStream" + +;struct TBitStream2 +; .dwLength dd ? ; length of the stream in dwords +; .dwCurrent dd ? ; current bit dword. +; +; .bitLength db ? ; remainder of length in bits [0..31] +; .bitCurrent db ? ; current bit number [0..31] +; rb 2 ; align +; +; .capacity dd ? ; capacity in dwords +; label .data dword +;ends + + +struct TBitStream + .bitLength dd ? ; length of the stream data in bits. + .capacity dd ? ; in dword + .biCurrent dd ? ; current bit index... + .lparam dd ? ; user defined value. + label .data dword +ends + + +; creates bits stream and returns pointer +; free it with FreeMem +proc BitsCreate, .length +begin + push ecx + + mov ecx, [.length] + add ecx, 3 + and ecx, $fffffffc + add ecx, sizeof.TBitStream + + stdcall GetMem, ecx + jc .finish + + sub ecx, sizeof.TBitStream + shr ecx, 2 ; length in dwords. + mov [eax+TBitStream.capacity], ecx + + clc + +.finish: + pop ecx + return +endp + + + +; puts given number of bits into stream +; returns in EAX the address of the +; stream. It can be changed if the stream was resized. + +proc BitsPut, .pStream, .bits, .bit_count +begin + pushad + + and [.bit_count], $1f ; max of 32 bits at once. + + mov ebx, [.pStream] + +; provide some room first: + + mov ecx, [ebx+TBitStream.biCurrent] + shr ecx, 5 ; dword index + add ecx, 2 ; at least two dword reserve. + cmp ecx, [ebx+TBitStream.capacity] + jbe .sizeok + + call [ResizeIt] + mov edx, ecx + + shl ecx, 2 ; in bytes + add ecx, sizeof.TBitStream + + stdcall ResizeMem, ebx, ecx + jc .error ; can't be resized; the stream buffer is full + + mov ebx, eax + mov [ebx+TBitStream.capacity], edx + +.sizeok: + ; generate mask in edi:esi + xor eax, eax + dec eax + mov esi, eax + mov edi, eax + + mov ecx, [.bit_count] + + shl esi, cl + mov ecx, [ebx+TBitStream.biCurrent] + and ecx, $1f + + shld edi, esi, cl + shld esi, eax, cl + + ; load new bits into edx:ecx; at this point ecx == [ebx+TBitStream.bitCurrent] + xor edx, edx + mov eax, [.bits] + shld edx, eax, cl + shl eax, cl + mov ecx, eax + +; finally, store new bits using + mov eax, [ebx+TBitStream.biCurrent] + shr eax, 5 + + and [ebx+TBitStream.data+4*eax], esi + or [ebx+TBitStream.data+4*eax], ecx + + inc eax + + and [ebx+TBitStream.data+4*eax], edi + or [ebx+TBitStream.data+4*eax], edx + +; and fix the pointers +.done: + mov eax, [.bit_count] + add eax, [ebx+TBitStream.biCurrent] + + cmp eax, [ebx+TBitStream.bitLength] + jbe @f + mov [ebx+TBitStream.bitLength], eax +@@: + mov [ebx+TBitStream.biCurrent], eax + +.finish: + mov [esp+4*regEAX], ebx + clc + popad + return + +.error: + popad + stc + return +endp + + + +; reads given number of bits form the stream +proc BitsGet, .pStream, .bit_count +begin + pushad + + and [.bit_count], $1f + + ; generate mask (in esi) + xor esi, esi + dec esi + mov ecx, [.bit_count] + shl esi, cl + not esi + + mov ebx, [.pStream] + + mov eax, [ebx+TBitStream.biCurrent] + mov edx, [.bit_count] + add edx, eax + cmp edx, [ebx+TBitStream.bitLength] + ja .error + + mov ecx, eax + shr eax, 5 + and ecx, $1f + + mov edx, [ebx+TBitStream.data+4*eax+4] + mov eax, [ebx+TBitStream.data+4*eax] + + shrd eax, edx, cl + and eax, esi + +; update the current position + mov edx, [.bit_count] + add [ebx+TBitStream.biCurrent], edx + + mov [esp+4*regEAX], eax + popad + clc + return + +.error: + popad + stc + return +endp + + +proc BitsSkipToByte, .pStream +begin + mov eax, [.pStream] + add [eax+TBitStream.biCurrent], 7 + and [eax+TBitStream.biCurrent], $fffffff8 + mov eax, [eax+TBitStream.biCurrent] + shr eax, 3 + return +endp + +; returns the pointer at the begining of the requested block in EAX +; returns the stream pointer in EDX (it can be changed on reallocation) +proc BitsGetRoom, .pStream, .room +begin + push ebx ecx + + mov edx, [.pStream] + + mov ebx, [edx+TBitStream.biCurrent] + add ebx, 7 + and ebx, $fffffff8 + shr ebx, 3 ; index in bytes. + + mov ecx, [edx+TBitStream.capacity] + shl ecx, 2 ; capacity in bytes. + + mov eax, [.room] + add eax, ebx ; the total size needed + + cmp eax, ecx + jbe .sizeok + + mov ecx, eax + call [ResizeIt] + +; align to dword + add ecx, 3 + and ecx, $fffffffc + lea eax, [ecx+sizeof.TBitStream] + + stdcall ResizeMem, edx, eax + jc .error ;.finish ; CF=1 + + shr ecx, 2 + mov edx, eax + mov [eax+TBitStream.capacity], ecx + + mov eax, [.room] + +.sizeok: + mov eax, [.room] + add eax, ebx + lea eax, [8*eax] + mov [edx+TBitStream.biCurrent], eax + cmp eax, [edx+TBitStream.bitLength] + jbe @f + mov [edx+TBitStream.bitLength], eax +@@: + lea eax, [edx+ebx+sizeof.TBitStream] + clc + +.finish: + pop ecx ebx + return + +.error: + int3 + jmp .finish + +endp + + + +; returns the current size (in bytes) of the given stream + +proc BitsGetSize, .pStream +begin + mov eax, [.pStream] + mov eax, [eax+TBitStream.bitLength] + add eax, $7 + shr eax, 3 + return +endp + + + +proc BitsLoadFromFile, .ptrFileName +begin + push esi edi ebx + + stdcall FileOpen, [.ptrFileName] + jc .error + + mov edi, eax + + stdcall FileSize, edi + jc .errorclose + + mov ebx, eax + lea ecx, [eax+3] + and ecx, $fffffffc + + lea ecx, [eax+8+sizeof.TBitStream] ; It is for the case that the file is + ; text and we want to use it as null terminated + ; string. + + stdcall GetMem, ecx + jc .errorclose + mov esi, eax + + mov eax, ebx + mov ecx, ebx + shl eax, 3 ; bit length + lea ecx, [eax+3] + shr ecx, 2 ; capacity in dword; + + mov [esi + TBitStream.bitLength], eax + mov [esi + TBitStream.capacity], ecx + + lea eax, [esi+TBitStream.data] + stdcall FileRead, edi, eax, ebx + jc .errorclosemem + + mov ecx, eax + + stdcall FileClose, edi + + mov eax, esi + clc + pop ebx edi esi + return + +.errorclosemem: + stdcall FreeMem, esi + +.errorclose: + push eax + stdcall FileClose, edi + pop eax + +.error: + xor ecx, ecx + stc + pop ebx edi esi + return +endp + + + + + +endmodule ADDED freshlib/data/buffergap.asm Index: freshlib/data/buffergap.asm ================================================================== --- /dev/null +++ freshlib/data/buffergap.asm @@ -0,0 +1,1128 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TText structure and handling library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: TText is so called "buffer gap" method of editing text information. +; it allows fast insert and delete operations. +;_________________________________________________________________________________________ +module "Buffer gap engine" + + +gapDefaultSize = 4096 ; 256 + +; There are 3 coordinate systems in the TText structure: +; +; 1. "Offset" - this is simple offset inside the memory, relative to the begining of the structure. +; +; 2. "Position" - this is the coordinate of the bytes in the buffer, excluding the gap (which can be placed anywhere in the text). +; +; 3. "Index" - character position - the coordinate of a character in the text buffer. In the case the buffer contains only ANSI characters index=pos; +; In the case when the buffer contains UTF-8 characters, the relation is not so direct and has to be computed for every character. +; This coordinate is not easy to be calculated, but it is rarely needed. +; +; The structure TText is backward structure. All members has negative offsets and the +; pointer to the structure points to its end, not to the start. +; +; The structure has fixed header and variable, dynamically changed length. +; All the text in the structure has positive offsets and all the header fields, negative. + +rstruct TText + .Length dd ? ; The total length of the buffer in bytes + .GapBegin dd ? ; In offset units. + .GapEnd dd ? ; In offset units. + .struc_size dd ? ; the size of the structure (it can be extended up). + label . byte ; the text in UTF-8 encoding. +ends + + + +proc TextIndexToPos, .pText, .index +begin + pushad + + mov esi, [.pText] + xor edx, edx + mov ebx, [.index] + +.loop: + dec ebx + js .finish + + mov eax, [esi+TText.GapBegin] + cmp edx, eax + cmovae eax, [esi+TText.GapEnd] + sub eax, [esi+TText.GapBegin] + add eax, edx + + cmp eax, [esi+TText.Length] + jae .error + + movzx eax, byte [esi+eax] + + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not al ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr eax, eax ; eax = 7, 5, 4, 3, 2, 1 + sub eax, 7 ; eax = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not eax ; eax = -1, +1, +2, +3, +4, +5 + sbb eax, -2 ; eax = edx + 2 - CF = +1, +2, +3, +4, +5, +6 + + add edx, eax + jmp .loop + +.finish: + mov [esp+4*regEAX], edx + clc + popad + return + +.error: + mov eax, [esi+TText.Length] + sub eax, [esi+TText.GapEnd] + add eax, [esi+TText.GapBegin] + mov [esp+4*regEAX], eax + stc + popad + return +endp + + + + +proc TextPosToIndex, .pText, .Pos +begin + pushad + + mov edx, [.pText] + mov ecx, [.Pos] + + mov eax, [edx+TText.Length] + sub eax, [edx+TText.GapEnd] + add eax, [edx+TText.GapBegin] + + cmp ecx, eax + cmova ecx, eax + + xor ebx, ebx + +.loop: + dec ecx + js .finish + + mov esi, [edx+TText.GapEnd] + cmp ecx, [edx+TText.GapBegin] + cmovb esi, [edx+TText.GapBegin] + sub esi, [edx+TText.GapBegin] + add esi, ecx + + mov al, [edx+esi] + and al, 11000000b + cmp al, 10000000b + je .loop + + inc ebx + jmp .loop + + +.finish: + mov [esp+4*regEAX], ebx + popad + return +endp + + + + + + +; Converts from text position (in bytes) to buffer position (in bytes). +; returns CF=1 if the position is outside the text. +; the returned position is relative to the text start. +; +; esi == .buffer; eax = .pos +; +; If eax is above the size of the text, the position of the buffer end is returned. +; All positions are unsigned, so passing eax = $ffffffff will return the end of the +; data in the buffer. +; +; See also the pos2ofs macro. Because of the simple operation it is better to use it +; or even explicit processing. + +proc TextPosToOffset, .pText, .pos +begin + push ebx + mov eax, [.pos] + mov ebx, [.pText] + + cmp eax, [ebx+TText.GapBegin] + jb @f + add eax, [ebx+TText.GapEnd] + sub eax, [ebx+TText.GapBegin] +@@: + cmp eax, [ebx+TText.Length] + cmova eax, [ebx+TText.Length] + pop ebx + return +endp + + +macro pos2ofs pos, text { +local ..skip + + if pos eqtype eax & text eqtype eax + cmp pos, [text+TText.GapBegin] + jb ..skip + add pos, [text+TText.GapEnd] + sub pos, [text+TText.GapBegin] +..skip: + cmp pos, [text+TText.Length] ; ????????? + cmova pos, [text+TText.Length] ; ????????? + else + error "Error! Arguments must be registers!" + err + end if +} + + +; Converts from buffer offset to the text position. +; Arguments: +; .pText: points to the TText strucure, eax is the offset +; .offs: offset in bytes. +; +; if the buffer offset is placed inside the gap, the start of the gap is returned. +; +; See also ofs2pos macro. Very often it is better to use the macro or explicit processing, +; instead of procedure call, because the operation is very simple. + +proc TextOffsetToPos, .pText, .offs +begin + push ebx + mov eax, [.offs] + mov ebx, [.pText] + + cmp eax, [ebx+TText.Length] + cmova eax, [ebx+TText.Length] + + cmp eax, [ebx+TText.GapBegin] + jb .finish + + add eax, [ebx+TText.GapEnd] + sub eax, [ebx+TText.GapBegin] + + cmp eax, [ebx+TText.GapBegin] + cmovb eax, [ebx+TText.GapBegin] + +.finish: + pop ebx + return +endp + + +macro ofs2pos ofs, text { +local ..skip + + if ofs eqtype eax & text eqtype eax + cmp ofs, [text+TText.Length] + cmova ofs, [text+TText.Length] + + cmp ofs, [text+TText.GapBegin] + jb ..skip + + add ofs, [text+TText.GapBegin] + sub ofs, [text+TText.GapEnd] + + cmp ofs, [text+TText.GapBegin] + cmovb ofs, [text+TText.GapBegin] +..skip: + else + error "Error! Arguments must be registers!" + err + end if +} + + +; Moves the gap to the desired position. +; Arguments: +; .pText - pointer to the TText +; .position - position of the gap in position units. +; Returns: +; Nothing +; +; This operation can't fail. Preserves all registers. + +proc TextMoveGap, .pText, .position +begin + pushad + + mov edx, [.pText] + mov ecx, [.position] + + mov eax, [edx+TText.Length] + mov edi, [edx+TText.GapBegin] + mov esi, [edx+TText.GapEnd] + + sub eax, esi + add eax, edi + + cmp ecx, eax + cmova ecx, eax ; the maximal possible position for the gap. + + sub ecx, edi ; [edx+TText.GapBegin] ; ecx is the distance to move the gap. + jz .finish ; source and destination are the same - no move. + + add [edx+TText.GapBegin], ecx + add [edx+TText.GapEnd], ecx + + cmp esi, edi + je .finish ; the gap length is 0 nothing to move + + add edi, edx + add esi, edx + + test ecx, ecx + js .move_back + + push ecx + shr ecx, 2 + rep movsd + pop ecx + and ecx, 3 + rep movsb + +.finish: + +; fill the gap with placeholder char in order to make debug easy! It lowers the performance a lot!!! +if defined options.DebugMode & options.DebugMode + call __fill_the_gap +end if + + popad + return + +.move_back: + std + + neg ecx + xchg esi, edi + + dec esi + dec edi + + push ecx + and ecx, 3 + rep movsb + + sub esi, 3 + sub edi, 3 + + pop ecx + shr ecx, 2 + rep movsd + + cld + jmp .finish +endp + + +proc __fill_the_gap +begin + push edi ecx eax + + mov edi, [edx+TText.GapBegin] + mov ecx, [edx+TText.GapEnd] + sub ecx, edi + add edi, edx + mov al, '*' + rep stosb + + pop eax ecx edi + return +endp + + + +proc TextCreate, .struc_size +begin + push ecx + + mov ecx, [.struc_size] + mov eax, ecx + add eax, gapDefaultSize + + stdcall GetMem, eax + jc .finish + + lea eax, [eax+ecx] + mov [eax+TText.struc_size], ecx + xor ecx, ecx + mov [eax+TText.GapBegin], ecx + mov [eax+TText.GapEnd], gapDefaultSize + mov [eax+TText.Length], gapDefaultSize + +.finish: + pop ecx + return +endp + + +;--------------------------------------------------------------------------------- +; Duplicates TText structure of any size. Returns pointer to the structure in EAX +; The returned pointer have to be freed with TextFree when not needed anymore. +; +; Arguments: +; .pText - pointer to the source structure +; +; Returns: +; CF = 0 if everithing is OK. In this case EAX is a pointer to the new TText structure. +; CF = 1 if there is an error. The TText is not duplicated and EAX contains the value +; before the call. +;--------------------------------------------------------------------------------- + +proc TextDup, .pText +begin + pushad + + mov esi, [.pText] + test esi, esi + stc + jz .finish + + mov ecx, [esi+TText.Length] + add ecx, [esi+TText.struc_size] + + stdcall GetMem, ecx + jc .finish + mov edi, eax + + mov edx, [esi+TText.struc_size] + + add eax, edx + mov [esp+4*regEAX], eax + + sub esi, edx + + mov ebx, ecx + shr ecx, 2 + and ebx, 3 + + rep movsd + + mov ecx, ebx + rep movsb + clc + +.finish: + popad + return +endp + + + +proc TextFree, .pText +begin + push eax + mov eax, [.pText] + test eax, eax + jz .exit + + sub eax, [eax+TText.struc_size] + stdcall FreeMem, eax + +.exit: + pop eax + return +endp + + + +; Ensures that the gap size is at least [.desired_size] bytes long. +; If needed, reallocates the TText +; +; In order to provide less frequent reallocations, the procedure +; always allocates bigger gap than requested. +; max([.desired_size]*2, gapDefaultSize) memory is allocated, +; if the buffer is to be reallocated. +; +; Arguments: +; .pText - pointer to TText +; .desired_size - desired size of the gap. +; +; Returns +; edx - pointer to the same TText. Can be changed because of memory reallocation. +; CF = 0 if OK +; CF = 1 if the memory reallocation failed. +; + +proc TextSetGapSize, .pText, .desired_size +begin + pushad + + mov edx, [.pText] + mov ecx, [.desired_size] + mov eax, [edx+TText.GapEnd] + sub eax, [edx+TText.GapBegin] + + cmp eax, ecx + jae .finish ; CF==0 + + lea ecx, [2*ecx] + mov eax, gapDefaultSize + cmp ecx, eax + cmovl ecx, eax ; ecx is the new gap size here. + + mov ebx, [edx+TText.Length] ; current data size. text+gap + add ebx, [edx+TText.GapBegin] + sub ebx, [edx+TText.GapEnd] + add ebx, ecx + add ebx, [edx+TText.struc_size] ; the new buffer size. it will always be higher than the current. + add ebx, $0000000f + and ebx, $fffffff0 + + push [edx+TText.struc_size] + sub edx, [edx+TText.struc_size] + stdcall ResizeMem, edx, ebx + pop edx + lea edx, [edx+eax] + jc .finish ; well, it is just an error, but how to proceed? + + sub ebx, [edx+TText.struc_size] ; total size of the buffer + + lea edi, [edx+ebx] + xchg ebx,[edx+TText.Length] ; ebx is now the old buffer length. + + lea esi, [edx+ebx] + +; the space is allocated and there are 2 gaps. So, merge them now. The new gap is always at the end. +; the size of the new gap is + + mov ecx, ebx + sub ecx, [edx+TText.GapEnd] + + std + + dec esi + dec edi + + push ecx + and ecx, 3 + + rep movsb + + sub esi, 3 + sub edi, 3 + + pop ecx + shr ecx, 2 + + rep movsd + + cld + + sub edi, edx + add edi, 4 + mov [edx+TText.GapEnd], edi + + clc + +.finish: + mov [esp+4*regEDX], edx + +; fill the gap with placeholder char in order to make debug easy! It lowers the performance a lot!!! +if defined options.DebugMode & options.DebugMode + call __fill_the_gap +end if + popad + return +endp + + + + + +; Inserts on the current gap position up to 4 bytes of character data. +; They can be 4 ANSI characters, or one 4 byte encoded UTF-8 or +; two 2-byte encoded UTF-8, one ASCII and one 2 byte UTF-8 and so on. +; +; .pText - pointer to the TText, +; .char - from 0 to 4 bytes character data. + +proc TextAddChar, .pText, .char +begin + push eax ecx + + mov edx, [.pText] + + stdcall TextSetGapSize, edx, 8 + jc .finish + + mov eax, [edx+TText.GapBegin] + + pushd 0 [.char] + popd [edx+eax] [edx+eax+4] + + mov ecx, 4 + +.len_loop: + cmp byte [edx+eax], 0 + je .len_ok + inc eax + loop .len_loop + +.len_ok: + mov [edx+TText.GapBegin], eax + clc + +.finish: + pop ecx eax + return +endp + + + + +; Deletes one UTF-8 character at the current gap position. +; esi - pointer to TText + +proc TextDelChar, .pText +begin + push eax edx + mov edx, [.pText] + + mov eax, [edx+TText.GapEnd] + cmp eax, [edx+TText.Length] + jae .len_ok + + movzx eax, byte [edx+eax] + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not al ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr eax, eax ; eax = 7, 5, 4, 3, 2, 1 + sub eax, 7 ; eax = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not eax ; eax = -1, +1, +2, +3, +4, +5 + sbb eax, -2 ; eax = eax + 2 - CF = +1, +2, +3, +4, +5, +6 + + add [edx+TText.GapEnd], eax + +.len_ok: + pop edx eax + return +endp + + + +; returns eax - the character in utf-8 +; edx - the length of the char in bytes. +; CF = 1 if the gap is after the text. + +proc TextGetChar, .pText +begin + pushad + mov esi, [.pText] + + mov eax, [esi+TText.GapEnd] + cmp eax, [esi+TText.Length] + + cmc ; + jc .finish ; == jae, but CF == 1 + + movzx edx, byte [esi+eax] + mov eax, dword [esi+eax] + + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not dl ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr edx, edx ; edx = 7, 5, 4, 3, 2, 1 + sub edx, 7 ; edx = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not edx ; edx = -1, +1, +2, +3, +4, +5 + sbb edx, -2 ; edx = edx + 2 - CF = +1, +2, +3, +4, +5, +6 + + lea ecx, [8*edx] + xor ebx, ebx + dec ebx + shl ebx, cl + not ebx + and eax, ebx + + mov [esp+4*regEAX], eax + mov [esp+4*regEDX], edx + +.finish: + popad + return +endp + + + + +; Inserts a string in the TText structure +; which can be pointer to NULL terminated string or +; string handle. +; +; Arguments: +; .pText - pointer to the TText structure +; .position - position where the string to be inserted. +; .hString - pointer or handle of string to be inserted. +; Returns: +; edx: pointer to TText structure. Can be changed because of reallocations. +; eax: length of the string added. + +proc TextAddString, .pText, .position, .hString +begin + pushad + + mov edx, [.pText] + + stdcall StrLen, [.hString] + mov ecx, eax + mov ebx, eax + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall TextSetGapSize, edx, ecx + jc .finish + + stdcall TextMoveGap, edx, [.position] + + mov edi, [edx+TText.GapBegin] + add edi, edx + + shr ecx, 2 + rep movsd + mov ecx, ebx + and ecx, 3 + rep movsb + + add [edx+TText.GapBegin], ebx + +.finish: + mov [esp+4*regEAX], ebx + mov [esp+4*regEDX], edx + popad + return +endp + + + + + +proc TextAddStr2, .pText, .position, .hString, .maxLength +begin + pushad + mov edx, [.pText] + + mov eax, [.hString] + cmp eax, [StrHandleOffs] + jb .proceed + cmp eax, [StrHandleEnd] + jae .proceed + + stdcall StrLen, [.hString] + mov [.maxLength], eax + + stdcall StrPtr, [.hString] + +.proceed: + mov esi, eax + + add [.maxLength], 4 ; some reserve + stdcall TextSetGapSize, edx, [.maxLength] + jc .finish + + stdcall TextMoveGap, edx, [.position] + + mov edi, [edx+TText.GapBegin] + add edi, edx + +.copy_loop: + lodsd + stosd + + mov ebx, eax + not eax + sub ebx, $01010101 + and eax, ebx + and eax, $80808080 + jz .copy_loop + + xor eax, eax + sub edi, 5 + +.final_loop: + inc edi + cmp [edi], al + jne .final_loop + + sub edi, edx + sub edi, [edx+TText.GapBegin] + add [edx+TText.GapBegin], edi + + clc + mov [esp+4*regEAX], edi + +.finish: + mov [esp+4*regEDX], edx + popad + return +endp + + + +proc TextAddBytes, .pText, .position, .pData, .DataLen +begin + pushad + mov edx, [.pText] + mov esi, [.pData] + + stdcall TextSetGapSize, edx, [.DataLen] + jc .finish + + stdcall TextMoveGap, edx, [.position] + + mov edi, [edx+TText.GapBegin] + add edi, edx + mov ebx, [.DataLen] + + mov ecx, ebx + shr ecx, 2 + rep movsd + + mov ecx, ebx + and ecx, 3 + rep movsb + + add [edx+TText.GapBegin], ebx + +.finish: + mov [esp+4*regEDX], edx + popad + return +endp + + + + +proc TextAddText, .pText, .position, .pTextSrc +begin + pushad + + mov edx, [.pText] + mov ebx, [.pTextSrc] + + mov ecx, [ebx+TText.Length] + sub ecx, [ebx+TText.GapEnd] + add ecx, [ebx+TText.GapBegin] ; total length + mov [esp+4*regEAX], ecx + + stdcall TextSetGapSize, edx, ecx + stdcall TextMoveGap, edx, [.position] + + mov edi, edx + mov esi, ebx + + add edi, [edx+TText.GapBegin] + mov eax, [ebx+TText.GapBegin] + + mov ecx, eax + and eax, 3 + shr ecx, 2 + + rep movsd + mov ecx, eax + rep movsb + + mov eax, [ebx+TText.Length] + mov esi, ebx + + sub eax, [ebx+TText.GapEnd] + add esi, [ebx+TText.GapEnd] + + mov ecx, eax + and eax, 3 + shr ecx, 2 + + rep movsd + mov ecx, eax + rep movsb + + sub edi, edx + mov [edx+TText.GapBegin], edi + + mov [esp+4*regEDX], edx + popad + return +endp + + + +; Moves the gap to the end of the text and if possible inserts byte 0 after it, so +; the buffer can be used as an ASCIIZ string. +; returns the length of the string in eax and the pointer to the TText object in edx (it can be changed!) + +proc TextCompact, .pText +begin + mov edx, [.pText] + stdcall TextMoveGap, edx, -1 + stdcall TextSetGapSize, edx, 4 + + mov eax, [edx+TText.GapBegin] ; the length of the text. + and dword [edx+eax], 0 + return +endp + + +tsfCaseIgnore = 0 +tsfCaseSensitive = 1 + +; Returns the prepared index table for the substring search algorithm. +; After use need to be freed by FreeMem. +; The Knuth-Morris-Pratt prefix function is used. +proc TextPrepareSearch, .hSubstr, .flags +begin + pushad + + stdcall StrPtr, [.hSubstr] + mov esi, eax + + stdcall StrLen, [.hSubstr] + shl eax, 2 + + stdcall GetMem, eax + mov edi, eax + mov [esp + 4*regEAX], eax + + xor ebx, ebx ; i + xor edx, edx ; j + + mov [edi], ebx ; pf[0] = 0 + +.loop: + inc ebx + mov al, [esi+ebx] ; s[i] + + test al, al + jz .finish + + test [.flags], tsfCaseSensitive + jnz .inner + + and al, $40 + shr al, 1 + or al, [esi+ebx] ; locase(s[i]) + +.inner: + mov ah, [esi+edx] + + test [.flags], tsfCaseSensitive + jnz .case_ok + + and ah, $40 + shr ah, 1 + or ah, [esi+edx] ; locase(s[j]) + +.case_ok: + test edx, edx + jz .nexti ; j == 0 + + cmp al, ah ; s[i] == s[j]? + je .nexti ; == + + mov edx, [edi + 4*edx - 4] ; j = pf[j-1] + jmp .inner + +.nexti: + cmp al, ah ; s[i] == s[j]? + lea eax, [edx + 1] + cmove edx, eax ; if s[i] == s[j] j++ + + mov [edi + 4*ebx], edx ; pf[i] = j + jmp .loop + +.finish: + popad + return +endp + + +; Searches a substring in the TText, starting from position .From. +; Returns the substring Position +; Knuth-Morris-Pratt search is implemented. +; For the index - call TextPrepareSearch procedure. +proc TextSearch, .pText, .hSubstr, .From, .pIndex, .flags +.slen dd ? +begin + pushad + + mov edx, [.pText] + mov edi, [.pIndex] + + stdcall StrLen, [.hSubstr] + mov [.slen], eax + + stdcall StrPtr, [.hSubstr] + mov esi, eax + + mov ebx, [.From] ; i + xor ecx, ecx ; j + + dec ebx + +.loop: + inc ebx + cmp ebx, [edx+TText.GapBegin] + jb .iok + cmp ebx, [edx+TText.GapEnd] + jae .iok + + add ebx, [edx+TText.GapEnd] + sub ebx, [edx+TText.GapBegin] + +.iok: + cmp ebx, [edx+TText.Length] + jae .not_found + + mov al, [edx+ebx] ; s[i] + test [.flags], tsfCaseSensitive + jnz .inner + + and al, $40 + shr al, 1 + or al, [edx+ebx] ; locase(s[i]) + +.inner: + mov ah, [esi+ecx] ; p[j] + test [.flags], tsfCaseSensitive + jnz .case_ok + + and ah, $40 + shr ah, 1 + or ah, [esi+ecx] ; loCase(p[j]) + +.case_ok: + jecxz .nexti + + cmp al, ah + je .nexti + + mov ecx, [edi+4*ecx-4] ; j = pf[j-1] + jmp .inner + +.nexti: + cmp al, ah ; s[i] == p[j] + lea eax, [ecx+1] + cmove ecx, eax ; j++ if s[i] == p[j] + + cmp ecx, [.slen] + jb .loop + +; found + inc ebx + sub ebx, ecx + cmp ebx, [edx+TText.GapBegin] + jb .pos_ok + + sub ebx, [edx+TText.GapEnd] + add ebx, [edx+TText.GapBegin] + +.pos_ok: + mov [esp+4*regEAX], ebx + stc + popad + return + +.not_found: + clc + popad + return +endp + + + + +proc TextDebugInfo, .pText, .hLabel +begin + pushad + + mov esi, [.pText] + + stdcall FileWriteString, [STDOUT], [.hLabel] + stdcall FileWriteString, [STDOUT], <txt 13, 10, "START OF INFO BLOCK ==============================", 13, 10> + + stdcall FileWriteString, [STDOUT], txt "TText content length: " + stdcall NumToStr, [esi+TText.Length], ntsUnsigned or ntsDec + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack. + stdcall FileWriteString, [STDOUT], <txt "bytes", 13, 10> + + + stdcall FileWriteString, [STDOUT], txt "Text length: " + mov eax, [esi+TText.Length] + sub eax, [esi+TText.GapEnd] + add eax, [esi+TText.GapBegin] + stdcall NumToStr, eax, ntsUnsigned or ntsDec + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack. + stdcall FileWriteString, [STDOUT], <txt "bytes", 13, 10> + + + stdcall FileWriteString, [STDOUT], txt "Gap begin: " + stdcall NumToStr, [esi+TText.GapBegin], ntsUnsigned or ntsDec + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack. + stdcall FileWriteString, [STDOUT], txt ", end: " + + stdcall NumToStr, [esi+TText.GapEnd], ntsUnsigned or ntsDec + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack. + stdcall FileWriteString, [STDOUT], <txt 13, 10, 13, 10> + + stdcall FileWriteString, [STDOUT], <txt "The text before gap: ", 13, 10, ">>>>"> + + cmp [esi+TText.GapBegin], 0 + jle @f + stdcall FileWrite, [STDOUT], esi, [esi+TText.GapBegin] +@@: + stdcall FileWriteString, [STDOUT], <txt "<<<<", 13, 10, 13, 10, "The text after the gap:", 13, 10, ">>>>"> + + mov ecx, [esi+TText.Length] + mov eax, [esi+TText.GapEnd] + + add eax, esi + + sub ecx, [esi+TText.GapEnd] + jle @f + stdcall FileWrite, [STDOUT], eax, ecx +@@: + stdcall FileWriteString, [STDOUT], <txt "<<<<", 13, 10, 13, 10> + + stdcall FileWriteString, [STDOUT], <txt 13, 10, "END OF INFO BLOCK ==============================", 13, 10> + + popad + return +endp + + + + + + + + + + + + + + +endmodule ADDED freshlib/data/bytestream.asm Index: freshlib/data/bytestream.asm ================================================================== --- /dev/null +++ freshlib/data/bytestream.asm @@ -0,0 +1,150 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic byte streams library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Based on works of Mateusz Tymek. +;_________________________________________________________________________________________ + +module "ByteStream" + + +struct TByteStream + .capacity dd ? + .size dd ? + .offset dd ? + .lparam dd ? + label .data byte +ends + + + +; creates byte stream and returns pointer +; free it with FreeMem +proc BytesCreate, .length +begin + push ecx + + mov ecx, [.length] + add ecx, sizeof.TByteStream + + stdcall GetMem, ecx + jc .finish + + sub ecx, sizeof.TByteStream + mov [eax+TByteStream.capacity], ecx + + clc + +.finish: + pop ecx + return +endp + + + +; returns the pointer at the begining of the requested block in EDI +; returns the stream pointer in EBX (it can be changed on reallocation) +proc BytesGetRoom, .pStream, .room +begin + push eax ecx edx + + mov ebx, [.pStream] + mov edi, [ebx+TByteStream.offset] + + mov edx, [.room] + add edx, edi ; the total size needed + + cmp edx, [ebx+TByteStream.capacity] + jbe .sizeok + + lea ecx, [2*edx] + lea eax, [ecx+sizeof.TByteStream] + + stdcall ResizeMem, ebx, eax + jc .finish ; CF=1 + + mov ebx, eax + mov [eax+TByteStream.capacity], ecx + +.sizeok: + mov [ebx+TByteStream.offset], edx + + cmp edx, [ebx+TByteStream.size] + jbe @f + mov [ebx+TByteStream.size], edx +@@: + lea edi, [edi+ebx+sizeof.TByteStream] + clc + +.finish: + pop edx ecx eax + return +endp + + + + + + +proc BytesLoadFromFile, .ptrFileName +begin + push esi edi ebx ecx + + stdcall FileOpen, [.ptrFileName] + jc .error + + mov edi, eax + + stdcall FileSize, edi + jc .errorclose + + mov ebx, eax + lea ecx, [eax+8+sizeof.TByteStream] ; It is for the case that the file is + ; text and we want to use it as null terminated + ; string. + + stdcall GetMem, ecx + jc .errorclose + mov esi, eax + + mov eax, ebx + + mov [esi + TByteStream.size], ebx + mov [esi + TByteStream.capacity], ebx + + lea eax, [esi+TByteStream.data] + stdcall FileRead, edi, eax, ebx + jc .errorclosemem + + stdcall FileClose, edi + + mov eax, esi + clc + pop ecx ebx edi esi + return + +.errorclosemem: + stdcall FreeMem, esi + +.errorclose: + push eax + stdcall FileClose, edi + pop eax + +.error: + stc + pop ecx ebx edi esi + return +endp + + + + +endmodule ADDED freshlib/data/counter_array.asm Index: freshlib/data/counter_array.asm ================================================================== --- /dev/null +++ freshlib/data/counter_array.asm @@ -0,0 +1,145 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Sorted counter array. +; +; Target OS: Any +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +module "Value counter array library" + + +struct TCounter + .value dd ? + .count dd ? +ends + + +; returns: +; edx - the new pointer to the array. +; eax - pointer to the element incremented. + +proc IncCount, .pArray, .value +begin + mov edx, [.pArray] + stdcall __SearchCountArray, edx, [.value] + jc .add_new + + lea eax, [edx+TArray.array+sizeof.TCounter*eax] + inc [eax+TCounter.count] + js .error + return + +.add_new: + stdcall InsertArrayItems, edx, eax, 1 + push [.value] + pop [eax+TCounter.value] + mov [eax+TCounter.count], 1 + return + +.error: + int3 + return +endp + + + +; returns: +; edx - the new pointer to the array. +; eax - pointer to the element incremented or NULL, if the element has been deleted from the array. + +proc DecCount, .pArray, .value +begin + push ecx + + mov edx, [.pArray] + stdcall __SearchCountArray, edx, [.value] + jc .error ; can't decrement not existing element! + + lea ecx, [edx+TArray.array+sizeof.TCounter*eax] + dec [ecx+TCounter.count] + js .error + jnz .finish + + stdcall DeleteArrayItems, edx, eax, 1 + xor ecx, ecx + +.finish: + mov eax, ecx + pop ecx + return + +.error: + int3 + jmp .finish +endp + + +; binary search [.value] in the array. +; returns: +; eax, the index where the element has been found or the index where the element has to be inserted, if not found +; CF = 0 - element has been found. +; CF = 1 - element not found. + +proc __SearchCountArray, .pArray, .value +begin + pushad + + mov esi, [.pArray] + + xor eax, eax + xor ecx, ecx ; left + mov edx, [esi+TArray.count] ; right + + dec edx + js .not_found + + mov ebx, [.value] + +.loop: + cmp edx, ecx + jl .not_found + + lea eax, [ecx+edx] + sar eax, 1 + + cmp ebx, [esi+TArray.array+ sizeof.TCounter*eax+TCounter.value] + je .found + + ja .goto_right + +; goto left + lea edx, [eax-1] + jmp .loop + + +.goto_right: + inc eax + mov ecx, eax + jmp .loop + +.found: + clc + +.finish: + mov [esp+4*regEAX], eax + popad + return + +.not_found: + stc + jmp .finish +endp + + + + + + +endmodule ADDED freshlib/data/deflate.asm Index: freshlib/data/deflate.asm ================================================================== --- /dev/null +++ freshlib/data/deflate.asm @@ -0,0 +1,831 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Deflate uncompress library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +module "Deflate" + + +DEFLATE_MAX_BITS = 15 + +DEFLATE_SIZE_LEN_TREE = 320*2 +DEFLATE_SIZE_DIST_TREE = 32*2 +DEFLATE_SIZE_LL_TREE = 32*2 +DEFLATE_SIZE_LEN_BUF = 300+300 + + +; Decompress the block in memory. +; Arguments: +; .pDest points to a buffer of type TBitStream for the uncompressed data. +; .pSrc points to a source memory buffer. +; .bitOffs bit offset of the start of the stream, related to [.pSrc]. +; .srcCount byte size of the source buffer, measured from [.pSrc]. +; +; Returns: +; CF=0; The stream is decompressed without errors. +; +; CF=1: There was error on decompression, because of malformed stream or memory +; allocations. +; +; EAX: Pointer to the destination stream. (It can be changed on reallocations) +; +; NOTE: Even on error, the stream can be partially decompressed in the destination +; stream; +; +proc Inflate, .pDest, .dstCount, .pSrc, .srcCount + + .len_tree rd DEFLATE_SIZE_LEN_TREE + .dist_tree rd DEFLATE_SIZE_DIST_TREE + .ll_tree rd DEFLATE_SIZE_LL_TREE + .lengths rb DEFLATE_SIZE_LEN_BUF + + .final dd ? + + .pEndSrc dd ? + .pEndDst dd ? + .pCurrent dd ? + + .p_lengths_end dd ? + + .LLCount dd ? + .DCount dd ? + + .b_type dd ? + +begin + pushad + + mov eax, [.pDest] + mov [.pCurrent], eax + add eax, [.dstCount] + mov [.pEndDst], eax + +; prepare the stream pointers. + + mov esi, [.pSrc] + + mov eax, esi + add eax, [.srcCount] + mov [.pEndSrc], eax + + mov ch, $10 + mov eax, [esi] + +.main_loop: + +; read 1 bit header BFINAL + + mov [.final], eax + shr eax, 1 + + and [.final], 1 + + dec ch + jnz @f + + add esi, 2 + cmp esi, [.pEndSrc] + jae .error2 + + mov eax, [esi] + mov ch, $10 + +@@: + +; read 2 bit header BTYPE + mov edx, eax + shr eax, 2 + and edx, 3 + + sub ch, 2 + + dec edx + js .uncompressed ; BTYPE == 0 uncompressed type + + mov [.b_type], edx ; 0 if fixed tree; <>0 if dynamic tree + jnz .dynamic_tree + +; BTYPE == 1 compressed with fixed huffman tree. + +; load the fixed huffman tree for literal/lengths. + pushad + + lea edi, [.lengths] + lea esi, [.TreeFixed] + mov ebx, edi + + xor eax, eax + xor ecx, ecx + mov dl, 4 ; edx == 0 here. + +.loop_fx: + lodsw + mov cl, ah + rep stosb + dec edx + jnz .loop_fx + + sub edi, ebx + lea eax, [.len_tree] + + stdcall __tree_by_lengths, ebx, edi, eax + + popad + + jmp .decode + + +.dynamic_tree: + dec edx + jnz .error3 ; BTYPE == 3 invalid block type + +; Compressed with dynamic huffman table. Read it from the stream. + +; first read the counts + +; 5 bits HLIT - Number of Literal/length codes - 257. +; 5 bits HDIST - Number of distance codes - 1. +; 4 bits HCLEN - Number of code length codes - 4. + + mov edi, eax + mov ebx, eax + mov edx, eax + + shr ebx, 5 + shr edx, 10 + shr eax, 14 + + and edi, $1f + and ebx, $1f + and edx, $0f + + sub ch, 14 + jg @f + + add esi, 2 + cmp esi, [.pEndSrc] + jae .error4 + + mov cl, ch + mov eax, [esi] + add ch, $10 + rol eax, cl + +@@: + add edi, 257 + inc ebx + add edx, 4 + + mov [.LLCount], edi + mov [.DCount], ebx + +; second, read the fixed 3bit table for the code lengths. + +; clear the lengths array + + lea edi, [.lengths] + xor ebx, ebx + + mov [edi], ebx + mov [edi+4], ebx + mov [edi+8], ebx + mov [edi+12], ebx +; mov [edi+16], ebx ; codes 16, 17 and 18 are always transmitted, no need to clear; + mov bl, $0f + +.loop_hc: + movzx ebx, [.clclOrder2+ebx] + + mov [edi+ebx], al + shr eax, 3 + + and byte [edi+ebx], $07 + + sub ch, 3 + jg @f + + add esi, 2 + cmp esi, [.pEndSrc] + jae .error5 + + mov cl, ch + mov eax, [esi] + add ch, $10 + rol eax, cl + +@@: + dec edx + jnz .loop_hc + + lea ebx, [.ll_tree] + stdcall __tree_by_lengths, edi, 19, ebx + jnz .error6 + +; now create the two remaining huffman trees: for literal/lengths and for distances. + +; First the literal/lengths huffman tree + + mov edx, [.LLCount] + lea edi, [.len_tree] + call .decode_lengths + jnz .error9 + +; Second, the distances huffman tree. + + mov edx, [.DCount] + lea edi, [.dist_tree] + call .decode_lengths + jnz .error10 + +; At the end - trees are ready, so decode the compressed block. + + mov edi, [.pCurrent] + +.decode: + cmp esi, [.pEndSrc] + jae .error7 + +; read literal/length code + + xor edx, edx + +.bitloop1: + shr eax, 1 + rcl edx, 1 ; edx = 2*edx+CF + + dec ch + jnz @f + + add esi, 2 + + mov eax, [esi] + mov ch, $10 + +@@: + xor edx, [.len_tree+4*edx] + jns .bitloop1 + + not edx + + cmp edx, 255 + ja .copy_from_older ; if EDX <= 255 then it is simple encoded byte, so store it. + + +; OutputValue "Literal: ", edx, 16, 2 + + +; Store literal value. + cmp edi, [.pEndDst] + jae .error14 + + mov [edi], dl + inc edi + jmp .decode + + + +.copy_from_older: +; OutputValue "Length code:", edx, 10, 3 + + sub edx, 257 + js .next_block ; if EDX == 256 then end of block flag. + +; The code is a length code. Compute the length of string to be copied from the previous decoded data. + +; Compute the additional length and the extra bit count. +; 2^n(4 + edx mod 4) + + xor ebx, ebx + + cmp edx, 4 + jb .length_ok + + sub edx, 4 + mov cl, dl + and edx, 3 ; edx = edx mod 4 + shr cl, 2 ; cl = edx div 4 + lea edx, [edx+4] + jz .length_ok + shl edx, cl + + dec edx + cmp cl, 6 ; damn exceptions! + jae .length_ok + + adc ebx, edx ; CF = 1 here! + +; read CL bits from the stream + or edx, -1 + shl edx, cl + not edx + + and edx, eax + shr eax, cl + +; OutputValue "Additional value:", edx, 10, 2 + + sub ch, cl + jg .length_ok + + add esi, 2 + + mov cl, ch + mov eax, [esi] + add ch, $10 + rol eax, cl + +.length_ok: + lea ebx, [ebx+edx+3] + + +; OutputValue "Copy length:", ebx, 10, 3 + +; ... so now decode the distance code + + cmp [.b_type], 0 + jne .decode_dist ; when there is fixed huffman table, then the distances are encoded with 5 bit fixed code + +; read fixed 5 bit distance. + + mov cl, 5 + xor edx, edx + +.bitloop4: + shr eax, 1 + rcl edx, 1 + + dec cl + jnz .bitloop4 + +; OutputValue "Distance code:", edx, 10, 2 + + sub ch, 5 + jg .compute_distance + + add esi, 2 + + mov cl, ch + mov eax, [esi] + add ch, $10 + rol eax, cl + + jmp .compute_distance + + +.decode_dist: + xor edx, edx + +.bitloop2: + shr eax, 1 + rcl edx, 1 ; edx = 2*edx+CF + + dec ch + jnz @f + + add esi, 2 + + mov eax, [esi] + mov ch, $10 + +@@: + xor edx, [.dist_tree+4*edx] + jns .bitloop2 + + not edx + +.compute_distance: + cmp edx, 30 + jae .error8 + +; 2^n(2 + edx mod 2) +; compute the additional distance and extra bit count for the distance. + + xor cl, cl + cmp edx, 2 + jb .distance_ok + + sub edx, 2 + mov cl, dl ; + and edx, 1 ; edx = edx mod 2 + shr cl, 1 ; cl = edx div 2 + lea edx, [edx+2] + jz .distance_ok + + shl edx, cl ; edx = 2^cl * (edx mod 2 + 2) + +; read CL bits from the stream in EBX + push ebx + + or ebx, -1 ; mask + shl ebx, cl ; mask + not ebx ; mask + + and ebx, eax + shr eax, cl + + add edx, ebx + pop ebx + + sub ch, cl + jg .distance_ok + + add esi, 2 + + mov cl, ch + mov eax, [esi] + add ch, $10 + rol eax, cl + +.distance_ok: + inc edx + +; copy the string + push esi ecx + + neg edx + mov ecx, ebx + + lea esi, [edi+edx] + lea ebx, [edi+ecx] + + cmp esi, [.pDest] + jb .error_cp1 + + cmp ebx, [.pEndDst] + ja .error_cp2 + + rep movsb + + pop ecx esi + jmp .decode + +.error_cp1: + dbrk +.error_cp2: + dbrk + pop ecx esi + +; these all "error" labels are equal in release mode. In debug mode, there are int3 instructions inbetween in order to allow error tracing. +.error2: + dbrk +.error3: + dbrk +.error4: + dbrk +.error5: + dbrk +.error6: + dbrk +.error7: + dbrk +.error8: + dbrk +.error9: + dbrk +.error10: + dbrk +.error11: + dbrk +.error12: + dbrk +.error13: + dbrk +.error14: + dbrk +.error: + dbrk + not [.final] ; Tricky makes CF=1 on exit. + +.next_block: + mov [.pCurrent], edi + cmp [.final], 0 + je .main_loop + + shl [.final], 1 ; If normal end [.final] is always 1; If error, [.final] is $ffffffff or $fffffffe + + popad + return + + +; not compressed block +;----------------------------------------------------------- +.uncompressed: + +; align to byte + mov cl, 16 + sub cl, ch + movzx ecx, cl + add ecx, 7 + shr ecx, 3 + + add esi, ecx + + cmp esi, [.pEndSrc] + jae .error11 + + mov edi, [.pCurrent] + + xor eax, eax + + lodsw ; LEN + mov ecx, eax + lodsw ; NLEN + not ax + cmp ecx, eax + jne .error12 + + add eax, edi + cmp eax, [.pEndDst] + ja .error13 + + rep movsb + +; resync stream + mov ch, $10 + mov eax, [esi] + jmp .next_block + + +; ebx = pointer to the .ll_tree huffman tree +; edx = count of the encoded lengths +; edi = pointer to the tree memory + +.decode_lengths: + +; arguments. + push edi + push edx + lea edi, [.lengths] + push edi + +; buffer overflow? + add edx, edi + mov [.p_lengths_end], edx + +.loop_len: + xor edx, edx + cmp esi, [.pEndSrc] + jae .errordl + +.bitloop3: + shr eax, 1 + rcl edx, 1 ; edx = 2*edx+CF + + dec ch + jnz @f + + add esi, 2 + mov eax, [esi] + mov ch, $10 + +@@: + xor edx, [ebx+4*edx] + jns .bitloop3 + +; here dh = $ff + xor dh, dl ; dh = not dl because dh is always $ff for this tree. + + mov dl, 1 ; count + cmp dh, 16 + jb .rep_loop + + mov cl, 7 + mov dl, 11 + sub dh, 18 + jz .repeat ; dh = 18 + + mov cl, 3 + mov dl, 3 + inc dh + jz .repeat ; dh = 17 + + cmp edi, [esp] + je .errordl ; it is the first length, there is no previous. + + mov cl, 2 + mov dh, [edi-1] ; previous length; dl=3 here + +.repeat: + shl edx, 8 + +; read CL bits from the stream: CL = 2, 3 or 7 + or dl, -1 + shl dl, cl + not dl + + and dl, al + shr eax, cl + + sub ch, cl + jg @f + + add esi, 2 + + mov cl, ch + mov eax, [esi] + add ch, $10 + rol eax, cl + +@@: + add dh, dl + shr edx, 8 ; now dl is the count, dh is the byte to be repeat! + +.rep_loop: + mov [edi], dh + inc edi + dec dl + jnz .rep_loop + +; next length + cmp edi, [.p_lengths_end] + jb .loop_len + ja .errordl + + stdcall __tree_by_lengths ; the arguments are already in the stack. + retn + +; The assembly way of error handling. ;) +.errordl: + add esp, 3*4 + 4 ; pushed arguments and the return address. + jmp .error + +; .clclOrder db 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ; original order. +.clclOrder2 db 8, 15, 14, 13, 12, 11, 10, 9, 7, 6, 5, 4, 3, 2, 1, 16, 17, 18, 0 ; recoded in order to make better lookup code. + +; The fixed Huffman table, encoded in RLE. +; bits, count, ... total 288 codes. +.TreeFixed db 8, 144, 9, 112, 7, 24, 8, 8 + + + +endp + + +; Restores the Huffman tree from given code lengths. +; .pTree - pointer to memory for the huffman tree structure. +; .pLengths - array of bytes, containing the lengths for every code needed. +; .count - count of the array elements. +; +; Returns: +; ZF=1; The tree is properly created on [.pTree]; The tree is an array of qwords +; Every element represents one node of the binary tree. The low order dword +; contains index to the left (0) child and the high order dword, index to +; the right (1) child. +; The indexes are a number of a qword element of the array xored with the index of the current element. +; If the high order bit of the word (bit 15) is set, the word is a leaf +; and contains NOT-ed symbol value instead of index in the array. +; +; ZF=0 Error. The provided length list describes not valid Huffman tree. +; In this case no values are filled in the tree. +; +; The comments in the code are according to the RFC-1951 +; +proc __tree_by_lengths, .pLengths, .count, .pTree + +.bl_count rd DEFLATE_MAX_BITS + 1 +.next_code rd DEFLATE_MAX_BITS + 1 ; keep immediately after .bl_count + +begin + pushad + + xor eax, eax + + lea edi, [.bl_count] + mov ecx, 2*(DEFLATE_MAX_BITS+1) + rep stosd ; initializes both: .bl_count and .next_code arrays! + +; 1) Count the number of codes for each code length. Let bl_count[N] be the number of +; codes of length N, N >= 1. + + mov esi, [.pLengths] + mov ecx, [.count] + +.loop: + lodsb ; tree[i].len + inc dword [.bl_count+4*eax] ; count one code length + loop .loop + +; 2) Find the numerical value of the smallest code for each code length: +; loop from 1 to [.max_bits] + +; xor ecx, ecx ; bits - 1 ; here ecx == 0, see the previous instr. + xor eax, eax ; bl_count[0] = 0 ; but we still need to keep the original bl_count[0]. + cdq ; edx = 0 = code + lea ebx, [eax+2] ; ebx = 2 + +.loop2: + inc ecx + + add edx, eax ; code = code + bl_count[bits-1] + shl edx, 1 ; code = code << 1 + + mov eax, [.bl_count+4*ecx] ; for the next loop + mov [.next_code+4*ecx], edx ; next_code[bits] = code + + sub ebx, eax ; data validity control. + shl ebx, 1 + + cmp ecx, DEFLATE_MAX_BITS + jb .loop2 + +; 3) Assign numerical values to all codes, using consecutive +; values for all codes of the same length with the base +; values determined at step 2. Codes that are never used +; (which have a bit length of zero) must not be assigned a +; value. +; +; The assigned codes are put inside the binary tree, represented in +; an array pointed by EDI + + mov ecx, [.count] ; count of all elements + sub ecx, [.bl_count] ; minus the count of zero elements .bl_count[0] + +; PKZIP exception when the Huffman tree contains single 1bit long element, the second +; is allowed to be not defined and ebx will not be zero... damn exceptions! + + cmp ecx, 1 + jne .check + + cmp [.bl_count+4], 0 ; count of codes with length 1 bit. + jne .valid + +.check: + test ebx, ebx + jnz .finish ; it is invalid Huffman tree if EBX <> 0 here. + +.valid: + +; clear the tree area + shl ecx, 1 + mov edi, [.pTree] ; the needed nodes memory is (K-1)*8 bytes, + or eax, -1 ; where K is the count of the codes with length <> 0; + rep stosd ; but we allocate one element more in order to work-around the + ; above described exception. + + mov edi, [.pTree] ; the huffman tree array. + xor ebx, ebx ; offset to the last free element of the tree. + + mov esi, [.pLengths] + +.loop3: + movzx ecx, byte [esi] ; ecx = length of the code. + jecxz .next + + mov eax, [.next_code+4*ecx] ; next_code[len] + inc [.next_code+4*ecx] + + ror eax, cl ; start from the high order bit. + xor edx, edx ; the traversing index in the tree array. + +.bit_loop: + shl eax, 1 ; the high order bit in CF + rcl edx, 1 ; edx = 2*edx + CF ; edx now points to the needed WORD element of the tree. + + dec ecx + jz .put_code ; this is the last bit, so put the code here. + +.next_node: + xor edx, [edi+4*edx] + jns .bit_loop + + not edx + + inc ebx + mov [edi+4*edx], edx ; the current free element. + xor [edi+4*edx], ebx ; it is tricky here - the idea is to allow the next node offset to be obtained not by MOV, but by XOR instuction. + ; for details see the tree traversing code on "bitloop1" label. + jmp .next_node + +.put_code: + mov ecx, esi + sub ecx, [.pLengths] + not ecx + xor ecx, edx + mov [edi+4*edx], ecx + +.next: + inc esi + dec [.count] + jnz .loop3 + +.finish: ; here ZF = 1 if OK and 0 if error! + popad + return +endp + + + + +endmodule + + + ADDED freshlib/data/encodings.asm Index: freshlib/data/encodings.asm ================================================================== --- /dev/null +++ freshlib/data/encodings.asm @@ -0,0 +1,471 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent text encodings translation library. +; +; Target OS: Any +; +; Dependencies: StrLib.asm +; +; Notes: +; +;_________________________________________________________________________________________ + + + +; AnsiToUnicodeChar converts an Ansi character into Unicode +; +; arguments: +; .SrcEncoding - pointer to 256 ansi2unicode conversion table. +; .char - ansi char. +; returns: +; eax - unicode for the char. + +proc AnsiToUnicodeChar, .SrcEncoding, .char +begin + push ebx + + mov ebx, [.SrcEncoding] + movzx eax, byte [.char] + cmp eax, $80 + jb .finish + + sub eax, $80 + movzx eax, word [ebx+2*eax] + +.finish: + pop ebx + return +endp + + + + +; AnsiToUtf8 converts string from ANSI to UTF-8 +; +; arguments: +; .SrcEncoding - pointer to 256 ansi2unicode conversion table. +; .hString - handle or pointer to the source string. +; returns: +; eax - handle of new created string with utf-8 encoded text. + + +proc AnsiToUtf8, .SrcEncoding, .hString +.result dd ? +.start dd ? +begin + pushad + + stdcall StrLen, [.hString] + lea ecx, [4*eax+16] + + stdcall StrNew + mov [.result], eax + + jecxz .finish2 + + stdcall StrSetCapacity, [.result], ecx + mov edi, eax + mov [.start], eax + + stdcall StrPtr, [.hString] + mov esi, eax + + mov ebx, [.SrcEncoding] + +.loop: + movzx eax, byte [esi] + lea esi, [esi+1] + test eax, eax + jz .finish + + mov edx, 1 + cmp eax, $80 + jb .direct + + sub eax, $80 + movzx eax, word [ebx+2*eax] + stdcall EncodeUtf8, eax + +.direct: + mov [edi], eax + add edi, edx + + jmp .loop + +.finish: + xor eax, eax + mov [edi], eax + + mov eax, [.start] + sub edi, eax + mov [eax+string.len], edi + +.finish2: + popad + mov eax, [.result] + return +endp + + +; Utf8ToAnsi converts string from UTF-8 to some ANSI encoding. +; +; arguments: +; .hString - pointer of handle of utf-8 string. +; .DstEncoding - pointer to utf2ansi conversion table. +; returns: +; eax - handle of new created string with ansi encoded text. + + +proc Utf8ToAnsi, .hString, .DstEncoding +.result dd ? +.char dd ? +begin + pushad + mov ebx, [.DstEncoding] + + stdcall StrLen, [.hString] + mov ecx, eax + + stdcall StrNew + mov [.result], eax + + stdcall StrSetCapacity, eax, ecx + mov edi, eax + + stdcall StrPtr, [.hString] + mov esi, eax + +.loop: + stdcall DecodeUtf8, [esi] + lea esi, [esi+edx] + jnc .ok + + test edx, edx + jz .end_of_string ; invalid unicode char + +.ok: + test eax, eax + jz .end_of_string ; zero terminated + + cmp eax, $ffff + ja .not_found + + cmp eax, $80 + jb .store + +; search in the table + + mov [.char], eax + xor edx, edx + xor cl, cl ; start + mov ch, $7f ; end + +.search_loop: + cmp cl, ch + ja .not_found + + mov dl, cl + add dl, ch + shr edx, 1 + + movzx eax, byte [ebx+256+edx] + movzx eax, word [ebx+2*eax-$100] ; unicode character + + cmp [.char], eax + je .found + ja .bigger + + mov ch, dl + sub ch, 1 + jc .not_found + jmp .search_loop + +.bigger: + mov cl, dl + inc cl + jmp .search_loop + +.found: + mov al, [ebx+256+edx] + +.store: + stosb + jmp .loop + +.not_found: + mov al, '?' + stosb + jmp .loop + +.end_of_string: + mov dword [edi], 0 + stdcall StrPtr, [.result] + sub edi, eax + mov [eax+string.len], edi + + popad + mov eax, [.result] + return +endp + + + + + +; converts unicode character [.unichar] to UTF-8 encoding (max to 4 bytes) +; +; returns: CF=0 +; EAX = utf-8 character +; EDX = lenfth of the character in bytes. +; CF=1 - the encoding can not be provided. +; eax = 0 +; edx = 0 + +proc EncodeUtf8, .unichar +begin + push ebx ecx edi + + xor eax, eax + mov edi, 1 + mov ebx, [.unichar] + cmp ebx, $80 + jb .one_byte + + mov edx, $ffffffc0 ; mask + +.loop: + inc edi + cmp edi, 4 + ja .error + + sar edx, 1 + + movzx ecx, bl + and cl, $3f + or cl, $80 + + shl eax, 8 + shr ebx, 6 + or eax, ecx ; eax == result + + test ebx, edx + jnz .loop + + lea ecx, [2*edx] + xor ecx, edx + + or ebx, edx + xor ebx, ecx + + shl eax, 8 + mov al, bl + +.finish: + mov edx, edi + pop edi ecx ebx + clc + return + +.one_byte: + mov eax, ebx + jmp .finish + +.error: + xor eax, eax + xor edx, edx + pop edi ecx ebx + stc + return +endp + + + + +; decodes 4 bytes in [.chars] to UNICODE dword value. +; returns: +; CF=0 - no error +; eax - unicode value. +; edx - byte count of the char. [1..4] +; CF=1 - invalid utf-8 char; +; eax = edx = 0 the character can not be decoded. +; edx <> 0 -> eax = the overlong encoded character. edx = byte count of the char. +; +; Note: When CF=1 and [.chars] are overlong encoded char. +; eax contains the proper value and edx contains the proper length. +; But it is still invalid character, according to the standards. +proc DecodeUtf8, .chars +begin + push ebx ecx + + xor ecx, ecx + +.loop1: + shl byte [.chars], 1 + jnc .countok + inc ecx + jmp .loop1 + +.countok: + jecxz .ascii + + cmp ecx, 1 + je .error ; internal byte + cmp ecx, 4 + ja .error ; more than 4 bytes + + mov edx, 1 + xor ebx, ebx + movzx eax, byte [.chars] + shr eax, cl + shr eax, 1 + +.loop2: + mov bl, byte [.chars+edx] + and bl, $c0 + cmp bl, $80 + jne .error + mov bl, byte [.chars+edx] + and bl, $3f + shl eax, 6 + or eax, ebx + inc edx + cmp edx, ecx + jne .loop2 + + and eax, $1fffff + cmp eax, $10ffff + ja .error + + cmp eax, [._minimal+4*edx-8] + jb .overlong ; overlong coding. + + clc + pop ecx ebx + return + +.ascii: + movzx eax, byte [.chars] + shr eax, 1 + mov edx, 1 + pop ecx ebx + clc + return + +.error: + xor eax, eax + xor edx, edx + +.overlong: + stc + pop ecx ebx + return + +._minimal dd $80, $800, $10000 + +endp + + + + +; decodes 2 words in [.chars] to UNICODE dword value. +; returns: +; CF=0 - no error +; eax - unicode value. +; edx - byte count of the char. [2 or 4] +; CF=1 - invalid utf-8 char; +; eax = edx = 0 the character can not be decoded. +; edx <> 0 -> eax = the overlong encoded character. edx = byte count of the char. +; +; Note: When CF=1 and [.chars] are overlong encoded char. +; eax contains the proper value and edx contains the proper length. +; But it is still invalid character, according to the standards. + + +proc DecodeUtf16, .chars +begin + mov eax, [.chars] + cmp ax, $d800 + jb .direct + cmp ax, $dc00 + jae .direct + + sub ax, $d800 + movzx ecx, ax + shr eax, 16 + shl ecx, 10 + sub ax, $dc00 + or eax, ecx + + mov edx, 4 + cmp eax, $110000 + jb .decoded + + xor eax, eax + xor edx, edx + stc + return + +.direct: + mov edx, 2 + and eax, $ffff + +.decoded: + clc + return +endp + + + +; Returns CF = 0 if the string contains only utf-8 encoded characters. +; CF = 1 if the string contains at least one not utf-8 character. +; Registers are preserved, the string is not changed. + +proc CheckUtf8, .hString +begin + pushad + + stdcall StrPtr, [.hString] + mov esi, eax + +.loop: + stdcall DecodeUtf8, [esi] + jc .finish + + test eax, eax + jz .finish ; CF=0 after test. + + add esi, edx + jmp .loop + +.finish: + popad + return +endp + + + + + + + +; Encoding tables + + +macro EncodingTable name, filename { + name#.@here = 1 + if used name + align 4 + label name word + file filename + end if +} + + +align 4 +include "_encodings/encodings.inc" + + + ADDED freshlib/data/hashes.asm Index: freshlib/data/hashes.asm ================================================================== --- /dev/null +++ freshlib/data/hashes.asm @@ -0,0 +1,693 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent hashes algorithm library. +; +; Target OS: Any +; +; Dependencies: memory.asm +; +; Notes: Contains: MD5, ADLER32, FNV1b, CRC32 +; +;_________________________________________________________________________________________ + +module "Hashes library" + +include "sha1.asm" + + +; MD5 algorithm. +;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +struct TContextMD5 + .__cntx rb 88 + .value rb 16 +ends + + +iglobal + if used ___MD5InternalData + ___MD5InternalData db 0,1,1,5,5,3,0,7, \ + 7,5,5,5,5,4,5,6, \ + 4,7,5,7,6,4,5,6 + end if +endg + + +uglobal + if used ___MD5SineTable + ___MD5SineTable rd 65 + end if +endg + + + +if used md5_Init +initialize ___md5_init +begin + xor eax, eax + finit + pushd 4F800000h + pushd 0 + fstcw word [esp+2] + fstcw word [esp] + or word [esp], 0F3Fh + fldcw word [esp] + push 1 + @@: fild dword [esp] + fsin + fabs + fmul dword [esp+8] + fistp qword [eax*4+___MD5SineTable] + inc dword [esp] + inc eax + test al, 40h + jz @b + fldcw word [esp+6] + add esp, 12 + return +endp +end if + + + + +;****************************************************** +; Computes MD5 hash of the data block from [.pData] with +; length in [.pLen] +; Returns new string handle in eax containing the hash of +; the data. +;****************************************************** +proc DataMD5, .pData, .pLen +begin + push ebx ecx esi edi + + stdcall md5_Init + mov ebx, eax + + stdcall md5_Update, ebx, [.pData], [.pLen] + stdcall md5_GetValue, ebx + + stdcall StrNew + mov edi, eax + lea esi, [ebx+TContextMD5.value] + mov ecx, 16 + +.loop: + movzx eax, byte [esi] + inc esi + stdcall NumToStr, eax, ntsUnsigned or ntsHex or ntsFixedWidth + 2 + push eax + stdcall StrCat, edi, eax + stdcall StrDel ; from the stack + loop .loop + + stdcall StrLCase, edi + stdcall FreeMem, ebx + + mov eax, edi + pop edi esi ecx ebx + return +endp + + + + + + +;............................................................................ +; md5_Init is used to allocate and initialize TContextMD5 structure for use with +; subsequent processing. +; +; Arguments: +; no +; +; Return Value: EAX - pointer to the allocated TContextMD5 structure. +; +; Modifies Registers: EAX +;............................................................................ +proc md5_Init +begin + push edi + + stdcall GetMem, sizeof.TContextMD5 + mov edi, eax + push eax + + mov al, 01h + + @@: stosb + add al, 22h + jnc @b + + mov al, 0FEh + @@: stosb + sub al, 22h + jnc @b + + xor eax, eax + stosd + stosd + + pop eax edi + return +endp + + + + +;............................................................................ +; md5_Update scans a block of data and updates the working context. Call it +; once on a single block of data, or call it multiple times on consecutive +; blocks of data, before retrieving the MD5 signature with MD5_Digest +; +; Arguments: +; lpMD5CTXT - address of an initialized MD5CTXT structure +; lpBuf - address of a contiguous block of data +; bufLen - the size, in bytes, of the block of data +; +; Return Value: None +; +; Modifies Registers: None +;............................................................................ +proc md5_Update ;, .lpMD5CTXT, .lpBuf, .bufLen +begin + pushad + mov esi, [esp+40] + mov ebp, [esp+36] + lea edi, [ebp+24] + mov edx, [esp+44] + mov ebx, edi + mov eax, edx + shl eax, 3 + mov ecx, edx + shr ecx, 29 + push dword [ebp+16] + add [ebp+16], eax + adc [ebp+20], ecx + pop eax + shr eax, 3 + and eax, 3Fh + .mn: xor ecx, ecx + mov cl, 40h + sub ecx, eax + cmp ecx, edx + jbe @f + mov ecx, edx + @@: sub edx, ecx + add edi, eax + add eax, ecx + rep movsb + mov edi, ebx + cmp eax, 40h + jb @f + + stdcall ___md5_BTrnsf, ebp, edi + + @@: xor eax, eax + or edx, edx + jnz .mn + popad + ret 12 +endp + + + + +;............................................................................ +; md5_GetValue is used to retrieve the MD5 hash for the working context. It may +; be called at any point during a buffer read to get the current MD5 hash for +; all data scanned up to that point. It does not modify the contexutal data, +; so this procedure may be called as many times as needed. +; The value is stored in the context structure TContextMD5.value +; +; Arguments: +; .pContextMD5 - address of an TContextMD5 structure +; +; Return Value: None +; +; Modifies Registers: None +;............................................................................ +proc md5_GetValue ;, .pContextMD5 +begin + pushad + mov esi, dword [esp+36] + lea edi, [esi+TContextMD5.value] + lea ebp, [esi+16] + mov ebx, edi + sub esp, 64 + movsd + movsd + movsd + movsd + lodsd + shr eax, 3 + add esi, 4 + and eax, 3Fh + mov edi, esp + mov ecx, eax + rep movsb + inc eax + sub ecx, eax + mov al, 80h + stosb + xor eax, eax + cmp ecx, -56 + jae @f + xor eax, eax + add ecx, 64 + rep stosb + mov edi, esp + + stdcall ___md5_BTrnsf, ebx, edi + + @@: xor eax, eax + add ecx, 56 + rep stosb + mov esi, ebp + movsd + movsd + + stdcall ___md5_BTrnsf, ebx, esp + + add esp, 64 + popad + ret 4 +endp + + + + +proc ___md5_BTrnsf ;, .phash, .lpBlock +begin + pushad + mov eax, dword [esp+36] + xor ecx, ecx + mov cl, 4 + @@: push dword [eax] + add eax, 4 + loop @b + .mn: mov ebp, ecx + shr ebp, 12 + add dl, dh + and dl, 0Fh + test ch, 03h + jnz @f + xor cl, cl + test ch, 0Fh + jnz @f + mov esi, ___MD5InternalData + mov edx, dword [esi+ebp*2] + mov ebx, dword [esi+ebp*4+8] + @@: add cl, bl + ror ebx, 8 + push edx + push ecx + push ebx + mov ebx, dword [esp+20] + mov ecx, dword [esp+16] + mov edx, dword [esp+12] + test ebp, 02h + jnz .hi + test ebp, 01h + jnz @f + mov eax, ebx + and ebx, ecx + not eax + and eax, edx + or eax, ebx + jmp .fghi + @@: mov eax, edx + and edx, ebx + not eax + and eax, ecx + or eax, edx + jmp .fghi + .hi: test ebp, 01h + jnz @f + mov eax, ebx + xor eax, ecx + xor eax, edx + jmp .fghi + @@: mov eax, edx + not eax + or eax, ebx + xor eax, ecx + .fghi: pop ebx + pop ecx + pop edx + add eax, dword [esp+12] + mov esi, dword [esp+56] + movzx edi, dl + add eax, dword [esi+edi*4] + movzx esi, ch + add eax, dword [___MD5SineTable+esi*4] + rol eax, cl + add eax, dword [esp+8] + mov dword [esp+12], eax + mov esi, esp + mov edi, esp + lodsd + movsd + movsd + movsd + stosd + inc ch + test ch, 40h + jz .mn + mov eax, dword [esp+52] + xor ecx, ecx + mov cl, 4 + sub eax, ecx + @@: pop edx + add dword [eax+ecx*4], edx + loop @b + popad + ret 8 +endp + + + +; ADLER32 algorithm. +;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + +iAdlerBase = 65521 + +if used DataAdler32 + +DataAdler32: ;, .pBuffer, .length + + pop eax ; return address + push 1 ; one more argument + push eax + +end if + +if used DataAdler32 | used adler32_Update + +adler32_Update: ;, .adler, .pBuffer, .length + +virtual at esp+4+32 + .adler dd ? + .pBuffer dd ? + .length dd ? +end virtual + + pushad + + mov ebx, [.adler] + mov eax, ebx + + and ebx, $ffff ; ebx = s1 + shr eax, 16 ; eax = s2 + + mov esi, [.pBuffer] + mov edi, [.length] + add edi, esi + + mov ecx, iAdlerBase + +.loop: + cmp esi, edi + jae .mod ; last mod + + test eax, eax + jns .not_yet ; there is still not overflow. + +.mod: + xor edx, edx + div ecx + mov eax, ebx + mov ebx, edx ; ebx is s2 now + xor edx, edx + div ecx ; edx is s1 now + + cmp esi, edi + jae .end_loop + + mov eax, ebx ; eax = s2 + mov ebx, edx ; ebx = s1 + +.not_yet: + movzx edx, byte [esi] + add ebx, edx + add eax, ebx + inc esi + jmp .loop + +.end_loop: + shl ebx, 16 + or ebx, edx + mov [esp+4*regEAX], ebx + + popad + retn 3*4 + +end if + + + +; FNV-1b algorithm +;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + +proc DataFNV1b, .ptrData, .len +begin + push ecx edx esi + + mov esi, [.ptrData] + mov ecx, [.len] + mov eax, $811C9DC5 ; 2166136261 ; FNV offset basis + inc ecx + +.hashloop: + dec ecx + jz .exit + movzx edx, byte [esi] + xor eax, edx + inc esi + imul eax, $01000193 ; ; 16777619 ; FNV prime + jmp .hashloop + +.exit: + pop esi edx ecx + return +endp + + +; CRC32B algorithm, as needed for PNG handling. +;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + +uglobal + if used __CRC32Table + __CRC32Table rd 256 + end if +endg + + +if used crc32_Update +initialize InitCRC32Table +begin + mov edi, __CRC32Table + xor ecx, ecx + +.outer: + movzx eax, cl + mov ch, 8 + +.inner: + shr eax, 1 + jnc @f + xor eax, $edb88320 +@@: + dec ch + jnz .inner + + mov [__CRC32Table+4*ecx], eax + + dec cl + jnz .outer + + return +endp +end if + + + +proc crc32_Update, .crc, .pBuffer, .length +begin + push esi edx + + mov esi, [.pBuffer] + add [.length], esi + mov eax, [.crc] + +.loop: + cmp esi, [.length] + jae .finish + + movzx edx, byte [esi] + inc esi + xor dl, al + shr eax, 8 + mov edx, [__CRC32Table+4*edx] + xor eax, edx + jmp .loop + +.finish: + pop edx esi + return +endp + + + +proc DataCRC32, .pBuffer, .length +begin + xor eax, eax + dec eax + stdcall crc32_Update, eax, [.pBuffer], [.length] + not eax + return +endp + + + + +; Pearson hash function. + + + + + +proc PearsonHash, .pData, .DataSize, .pFuncTable, .pResult, .ResultSize +begin + pushad + + mov ebx, [.pFuncTable] + mov esi, [.pData] + mov edi, [.pResult] + mov edx, [.ResultSize] + + xor eax, eax + +.outer_loop: + dec edx + js .finish + + mov ecx, [.DataSize] + jecxz .byte_ok + + add al, dl + xor al, [esi] + mov al, [ebx+eax] + +.inner_loop: + dec ecx + jz .byte_ok + + xor al, byte [esi+ecx] + mov al, [ebx+eax] + jmp .inner_loop + +.byte_ok: + mov [edi+edx], al + jmp .outer_loop + +.finish: + popad + return +endp + + + +proc StrPearsonHash, .hString, .pFuncTable +begin + pushad + + mov ebx, [.pFuncTable] + xor edx, edx + + stdcall StrLen, [.hString] + mov ecx, eax + jecxz .byte_ok + + stdcall StrPtr, [.hString] + mov esi, eax + +.loop: + lodsb + xor dl, al + mov dl, [ebx+edx] + loop .loop + +.byte_ok: + mov [esp+4*regEAX], edx + popad + return +endp + + + +; +; +; Gets the array of strings and generates a table for PersonHash, that +; allows non-collision hash of the given set. +; +; Arguments: +; +; .pStringArray - TArray of dword containing the strings of the set. +; +; Returns: +; +; eax: pointer to a 256 byte table fill of values for using as a +; .pFuncTable parameter in PearsonHash procedure. +; +; + + +proc GeneratePerfectPearsonFunction, .pStringArray +begin + + + + + + + + + + int3 + return +endp + + + +if used test_func + +test_func db 141, 227, 251, 2, 201, 179, 30, 63, 93, 145, 92, 46, 6, 95, 105, 1 + db 90, 112, 60, 84, 110, 205, 0, 253, 215, 118, 244, 218, 231, 31, 192, 67 + db 189, 23, 66, 144, 59, 115, 248, 237, 216, 82, 217, 72, 147, 143, 125, 170 + db 152, 154, 57, 4, 44, 131, 157, 111, 209, 185, 35, 81, 41, 182, 202, 176 + db 113, 193, 114, 254, 39, 194, 94, 190, 37, 42, 15, 195, 188, 169, 12, 7 + db 175, 88, 245, 127, 203, 135, 181, 178, 99, 164, 76, 235, 21, 86, 160, 243 + db 223, 126, 136, 129, 77, 239, 132, 174, 122, 233, 87, 108, 47, 146, 158, 128 + db 97, 162, 219, 91, 229, 222, 104, 71, 150, 55, 242, 75, 151, 206, 119, 36 + db 58, 236, 117, 43, 74, 155, 246, 116, 153, 148, 68, 159, 210, 161, 19, 64 + db 247, 186, 83, 29, 5, 249, 177, 196, 250, 197, 167, 230, 26, 134, 124, 240 + db 69, 149, 65, 62, 101, 38, 183, 45, 24, 166, 33, 123, 207, 107, 241, 191 + db 208, 85, 78, 184, 32, 89, 20, 165, 27, 22, 11, 130, 98, 80, 17, 198 + db 200, 211, 16, 100, 51, 232, 3, 96, 73, 187, 14, 53, 121, 199, 18, 103 + db 228, 180, 156, 252, 168, 49, 8, 171, 79, 204, 10, 139, 40, 61, 220, 212 + db 13, 221, 109, 25, 255, 120, 70, 28, 48, 213, 234, 50, 138, 9, 52, 142 + db 225, 172, 106, 54, 214, 163, 140, 34, 238, 224, 56, 226, 102, 137, 133, 173 + +end if + + + + +endmodule ADDED freshlib/data/hashtree.asm Index: freshlib/data/hashtree.asm ================================================================== --- /dev/null +++ freshlib/data/hashtree.asm @@ -0,0 +1,250 @@ +module "Hash tree" + +; The hash tree is a TArray of THashTreeNode elements. +; .bit0 and .bit1 elements contain the offset to the next element of the array +; for the hash bit respectively 0 and 1. +; +; The procedure of searching in the tree is by separating the every next bit of the +; hash and jumping to the offset written in the [.bit0] or [.bit1] of the current node. +; +; if on some loop, the [.bitX] is 0 then, the string is not inside the tree. +; +; The offset on the 32th bit points to the THashTreeLeaf element (it takes 2 elements of +; the array). Here, direct comparison with [THashTreeLeaf.hString] element has to be done +; +; If the strings match, then the element has been found. If not, then a hash collision occured. +; In this case, the strings with equal hashes are added in a linear list linked through the +; [THashTreeLeaf.next] field. Follow the links and compare the strings until 0 (string not found) +; or string match. +; +; The searching in the tree is slower than the classic hash table, but is still O(1) +; and has the great advantage, that allows using of 32 bit hashes where the collisions +; are very rare, and still keeps the hash tree pretty small. Something like O(n.log n) +; +; This structure worth to be used when very big amount of strings need to be searched. + + +struct THashTreeNode + .bit0 dd ? + .bit1 dd ? +ends + +struct THashTreeLeaf + .hString dd ? ; a handle of the string stored. + .next dd ? ; the next element in the cases of collisions. (well, it is very case, but still happens sometimes). + .lparam dd ? ; user defined parameter. + .wparam dd ? ; user defined parameter. +ends + + +; Searches the hash tree for the given string. +; if [.fAdd] is TRUE and if the string is not in the tree it will be added. +; +; Arguments: +; .pHashTree - pointer to TArray with elements size sizeof.THashTreeNode (8 bytes) +; .hString - handle/pointer to the string to be searched/added. Notice, that exactly this +; string will be added to the THashTreeLeaf element. The caller is responsible +; to not free this string until the hash tree is needed. +; .fAdd - flag indicating whether to add the string to the tree if is not included. +; +; Returns: +; edx - pointer to the array. Can be reallocated! +; eax - index in the TArray of the THashTreeLeaf of the string. +; CF = 1: the string is already in the tree. +; CF = 0: the string is not in the tree. +; [.fAdd] <> 0: eax contains a pointer to the new added leaf. +; eax == 0 means there is an out of memory error on +; the attempt to add the string. +; [.fAdd] = 0: eax == 0 + +proc SearchHashTree, .pHashTree, .hString, .fAdd +.hash dd ? +begin + pushad + + mov edx, [.pHashTree] + + stdcall StrHash, [.hString] + mov [.hash], eax + + mov ecx, 32 ; the depth of the tree + mov ebx, TArray.array + + cmp [edx+TArray.count], 0 + jne .treeseek + + stdcall AddArrayItems, edx, 1 + and dword [eax+THashTreeNode.bit0], 0 + and dword [eax+THashTreeNode.bit1], 0 + +.treeseek: + xor edi, edi + ror [.hash], 1 + adc edi, edi + lea edi, [ebx+4*edi] + + cmp dword [edx + edi], 0 ; edi is offset from the begining of the array. + je .notfound + + mov ebx, [edx + edi] + loop .treeseek + +; The hash exists in the hash tree. Process the possible collisions. +; here ebx is the offset to the THashTreeLeaf ! + +.cmp_loop: + stdcall StrCompCase, [.hString], [edx+ebx+THashTreeLeaf.hString] + jc .finish ; the string is already in the hash tree!!! + +; OutputValue "Collision at offset:", ebx, 10, -1 + + lea edi, [ebx + THashTreeLeaf.next] + + cmp dword [edx + edi], 0 + je .add_in_list + + mov ebx, [edx + edi] + jmp .cmp_loop + +.add_in_list: + cmp [.fAdd], 0 + je .finish_zero + + stdcall AddArrayItems, edx, 2 + jc .finish_zero + + sub eax, edx + jmp .do_add + + +.notfound: + cmp [.fAdd], 0 + je .finish_zero + +; edx - pointer to the tree array, ebx - offset of the last found element. +; eax - 0 or 1 depending of the last bit checked. ecx - remaining bits count. +; edi - the offset to the [.bitX] field of the last node. + +.add_remaining: + + lea eax, [ecx+1] + stdcall AddArrayItems, edx, eax ; add all needed (THashTreeNode) + THashTreeLeaf + jc .finish_zero + + sub eax, edx + + dec ecx + jz .do_add + +.addloop: + mov [edx + edi], eax + and dword [edx + eax + THashTreeNode.bit0], 0 + and dword [edx + eax + THashTreeNode.bit1], 0 + + xor edi, edi + ror [.hash], 1 + adc edi, edi + + lea edi, [eax + 4*edi] + add eax, sizeof.THashTreeNode + loop .addloop + +.do_add: + mov [edx + edi], eax + lea ebx, [edx+eax] + + mov ecx, [.hString] + xor eax, eax + + mov [ebx+THashTreeLeaf.hString], ecx + mov [ebx+THashTreeLeaf.next], eax + mov [ebx+THashTreeLeaf.lparam], eax + mov [ebx+THashTreeLeaf.wparam], eax + + clc + +.finish: + mov [esp+4*regEAX], ebx + mov [esp+4*regEDX], edx + popad + return + + +.finish_zero: + xor ebx, ebx + clc + jmp .finish +endp + + + + +proc FreeHashTree, .pHashTree +begin + pushad + + mov edx, [.pHashTree] + cmp [edx+TArray.count], 32 + jb .free_array + + pushd 0 0 + + mov ebx, TArray.array + mov ecx, 32 + +.scan: + dec ecx + js .free_leaf + + mov esi, [edx+ebx+THashTreeNode.bit0] + mov ebx, [edx+ebx+THashTreeNode.bit1] + + test ebx, ebx + jz .bit0 + + test esi, esi + jz .scan + + push esi ecx + jmp .scan + +.bit0: + mov ebx, esi + jmp .scan + +.free_leaf: + +.free_loop: + + mov eax, [edx+ebx+THashTreeLeaf.hString] + cmp eax, [StrHandleOffs] + jb .free_ok + cmp eax, [StrHandleEnd] + jae .free_ok + stdcall StrDel, eax +.free_ok: + mov ebx, [edx+ebx+THashTreeLeaf.next] + test ebx, ebx + jnz .free_loop + + pop ecx ebx + test ebx, ebx + jnz .scan + +.free_array: + stdcall FreeMem, edx + + popad + return +endp + + + + + + + + + + +endmodule ADDED freshlib/data/i18n.asm Index: freshlib/data/i18n.asm ================================================================== --- /dev/null +++ freshlib/data/i18n.asm @@ -0,0 +1,60 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Internationalization strings library. +; +; Target OS: Any +; +; Dependencies: None +; +; Notes: +;_________________________________________________________________________________________ + + +; Switches the itext strings array to some language. +; Arguments: +; .lang - dword containing the language name in human readable char form. For example: "EN", "BG", etc. +; The names of the languages are defined by the user, when creating internationalized strings with +; "itext" macro. +; Returns: +; CF = 0 - the language is switched successfuly. +; CF = 1 - unknown language. +; + +proc SetLanguage, .lang +begin + pushad + mov esi, I18nLanguages + +; search for the language strings set address. +.loop: + lodsd + test eax, eax + jz .language_not_found + + cmp eax, [.lang] + je .found + + lea esi, [esi+4] + jmp .loop + +; copy the language strings set to the itext placeholder array. +.found: + lodsd + mov esi, eax + mov edi, I18nStrings + mov ecx, I18nStrings.length + + rep movsb + + clc + popad + return + +.language_not_found: + stc + popad + return +endp ADDED freshlib/data/markdown.asm Index: freshlib/data/markdown.asm ================================================================== --- /dev/null +++ freshlib/data/markdown.asm @@ -0,0 +1,2015 @@ +module "MiniMagAsm markdown dialect parser" + +struct TMarkdownResults + .hContent dd ? + .hIndex dd ? + .hKeywords dd ? + .hDescription dd ? +ends + +fcloseLink = 1 +fcloseImage = 2 +fcloseInlineImage = 3 +fcloseObject = 4 + + +fblkQuote = 1 +fblkTable = 2 +fblkUList = 3 +fblkOLIst = 4 +fblkSpoiler = 5 + +fstateHeader = $01 +fstatePara = $02 +fstateWhite = $04 +fstateBold = $08 +fstateUnderline = $20 +fstateStrikeout = $40 +fstateItalic = $80 + +fstateTextNow = $200 ; don't use the second byte for any other flags. +fstateTextPrev = $100 + +fstateInlineSource = $10000 +fstateBlockSource = $20000 +fstateTable = $100000 + + +; Translates some markdown text to HTML +; Arguments: +; .markdown - pointer or handler of the markdown text. +; .procFixLink - [proc .ptrLink] procedure that process the link address and returns +; handle to the processed link address. if [.procFixLink]=NULL, the links +; are inserted as they are in the HTML. +; .fBacklinks - flag, that defines whether to insert after the headers back links to the +; table of contents item. +; .pResult - pointer to TMarkdownResults structure where the result strings are returned. +; .lParam - caller supplied parameter that is passed to procFixLink. +; +; Returns: +; The procedure returns 4 string handles in the TMarkdownResults structure pointed by +; .pResult argument. + +proc TranslateMarkdown2, .markdown, .procFixLink, .fBacklinks, .pResult, .lParam + +.result dd ? +.index dd ? +.keywords dd ? +.description dd ? + + ; first and second pass local variables + .IdString rb 256 + .IdLen dd ? + + .cntH2 dd ? + .cntH3 dd ? + .cntH4 dd ? + .cntH5 dd ? + .cntH6 dd ? + +.pHashTable dd ? +.pHTML dd ? +.limit dd ? + + .blocks rb 1024 + .pblock dd ? + +begin + pushad + + stdcall GetMem, 4*65536 + mov [.pHashTable], eax + stdcall GetMem, 16384 + mov [.pHTML], eax + add eax, 8192 + mov [.limit], eax + + stdcall StrNew + mov [.result], eax + + stdcall StrNew + mov [.index], eax + + stdcall StrNew + mov [.keywords], eax + + stdcall StrNew + mov [.description], eax + + stdcall StrPtr, [.markdown] + mov esi, eax + + call .FirstPass + + stdcall StrPtr, [.markdown] + mov esi, eax + call .SecondPass + + stdcall FreeMem, [.pHTML] + stdcall FreeMem, [.pHashTable] + + mov edi, [.pResult] + + mov eax, [.result] + mov edx, [.index] + mov ebx, [.keywords] + mov ecx, [.description] + + mov [edi+TMarkdownResults.hContent], eax + mov [edi+TMarkdownResults.hIndex], edx + mov [edi+TMarkdownResults.hKeywords], ebx + mov [edi+TMarkdownResults.hDescription], ecx + + popad + return + +;.... start of .FirstPass .......................................... + +.FirstPass: + mov edi, [.pHTML] + mov [.cntH2], 0 + mov [.cntH3], 0 + mov [.cntH4], 0 + mov [.cntH5], 0 + mov [.cntH6], 0 + +.line_start: + cmp edi, [.limit] + jb @f + + mov dword [edi], 0 + stdcall StrCat, [.index], [.pHTML] + mov edi, [.pHTML] + +@@: + cmp byte [esi], '#' + je .header + + cmp byte [esi], '[' + je .link + +.skip_to_eol: + mov al, [esi] + lea esi, [esi+1] + cmp al, $0d + je .line_start + cmp al, $0a + je .line_start + test al, al + jnz .skip_to_eol + +.end_of_file: + mov dword [edi], 0 + stdcall StrCat, [.index], [.pHTML] + + retn + +; ----- return from .FirstPass ------------------- + +; create table of contents item. +.header: + xor ecx, ecx + +.scan_level: + inc ecx +.scan_space: + lea esi, [esi+1] + mov al, [esi] + cmp al, '#' + je .scan_level + cmp al, ' ' + je .scan_space + cmp al, $09 + je .scan_space + + cmp al, $0d + je .line_start + cmp al, $0a + je .line_start + + cmp ecx, 6 + jbe @f + mov ecx, 6 +@@: + call .BuildID + + mov dword [edi], '<a i' + lea edi, [edi+4] + mov dword [edi], 'd="B' + lea edi, [edi+4] + + call .InsertID + + mov dword [edi], '" hr' + mov dword [edi+4], 'ef="' + mov word [edi+8], '#H' + lea edi, [edi+10] + + call .InsertID + + mov dword [edi], '" st' + mov dword [edi+4], 'yle=' + mov dword [edi+8], '"pad' + mov dword [edi+12], 'ding' + mov dword [edi+16], '-lef' + mov word [edi+20], 't:' + lea edi, [edi+22] + + push ecx + mov eax, ecx + mov ecx, 10 + sub eax, 2 + jns @f + xor eax, eax +@@: + call _NumToStrU + pop ecx + + mov dword [edi], 'em">' + lea edi, [edi+4] + + cmp ecx, 1 + je @f + call .InsertID +@@: +; copy the header text + +.copy_loop: + mov al, [esi] + lea esi, [esi+1] + cmp al, $0d + je .end_header + cmp al, $0a + je .end_header + test al, al + jz .end_header + + mov [edi], al + lea edi, [edi+1] + jmp .copy_loop + +.end_header: + dec esi + mov dword [edi], '</a>' + mov dword [edi+4], '<br ' + mov word [edi+8], '/>' + lea edi, [edi+10] + jmp .line_start + +;link processing +.link: + cmp byte [esi+1], '#' + je .skip_to_eol + + mov edx, $811C9DC5 ; 2166136261 ; FNV offset basis + mov ecx, esi + and [.link_level], 0 + +.label_loop: + mov al, [esi] + lea esi, [esi+1] + + cmp al, $20 + je .label_loop + cmp al, $09 + je .label_loop + + cmp al, $0d + je .line_start + cmp al, $0a + je .line_start + + cmp al, "[" + jne @f + inc [.link_level] +@@: + test al, al + jz .end_of_file + + xor dl, al + imul edx, $01000193 ; 16777619 ; FNV prime + cmp al, ']' + jne .label_loop + + dec [.link_level] + jnz .label_loop + + +; fold the hash to 16 bit value... + mov ebx, edx + shr ebx, 16 + xor ebx, edx + and ebx, $ffff + mov edx, ebx + +; search free slot +.search_slot: + mov eax, [.pHashTable] + xchg ecx, [eax+4*ebx] + test ecx, ecx + jz .skip_to_eol + +; conflict... +; compare the labels on ecx (the old content of the slot) with [HashTable+4*ebx] (the new pointer) + push edi ecx + + mov edi, [eax+4*ebx] + and [.link_level], 0 + +.first: + mov al, [ecx] + lea ecx, [ecx+1] + + cmp al, $20 + je .first + cmp al, $09 + je .first + +.second: + mov ah, [edi] + lea edi, [edi+1] + cmp ah, $20 + je .second + cmp ah, $09 + je .second + + cmp al, ah + jne .add_not_equal + + cmp ah, '[' + jne @f + inc [.link_level] +@@: + cmp ah, ']' + jne .first + + dec [.link_level] + jnz .first + + pop ecx edi + jmp .skip_to_eol + +; save it to the next slot +.add_not_equal: + pop ecx edi + + inc ebx + and ebx, $ffff + cmp ebx, edx + jne .search_slot + + int3 ; full hash table -> to be implemented error processing + +;---- End of .FirstPass -------------------------------- + + +;.... Start of .SecondPass ............................. + +locals + ; .SecondPass only local variables + .state dd ? + .last_header dd ? + .linkID_end dd ? + .link_level dd ? + + .close_now dd ? + .close_index dd ? + .close_stack rb 256 ; 256 levels of nested links. +endl + +.SecondPass: + mov edi, [.pHTML] + + xor eax, eax + mov [.state], eax + mov [.close_index], eax + mov [.cntH2], eax + mov [.cntH3], eax + mov [.cntH4], eax + mov [.cntH5], eax + mov [.cntH6], eax + mov [.pblock], eax + + +.line_start2: + shr byte [.state+1], 1 ; fstateTextPrev = fstateTextNow; fStateTextNow = 0 + + cmp edi, [.limit] + jb @f + mov dword [edi], 0 + stdcall StrCat, [.result], [.pHTML] + mov edi, [.pHTML] +@@: + + test [.state], fstateBlockSource + jnz .copy_source + + cmp byte [esi], '[' + je .link_definition + + cmp byte [esi], '#' + je .header2 + + cmp byte [esi], ';' + je .block_element + + cmp dword [esi], '----' + je .horiz_rule + + +.scan_line2: + lodsb + + cmp al, ' ' + je .white_space + cmp al, $09 ; tab + je .white_space + + cmp al, $0d + je .end_of_line + cmp al, $0a + je .end_of_line + test al, al + jz .end_of_line + +; it is not white space character... + test [.state], fstateTextPrev or fstateTextNow or fstateHeader + jz .start_para + +.process_char: + or [.state], fstateTextNow + + test [.state], fstateInlineSource + jnz .inline_source + + cmp al, '*' + je .process_bold + + cmp al, '_' + je .process_underline + + cmp al, '-' + je .process_strikeout + + cmp al, '/' + je .process_italic + + cmp al, '[' + je .is_link_begin + + cmp al, ']' + je .is_link_end + + cmp al, '\' + je .escape_next + +.inline_source: + cmp al, '`' + je .process_inline_code + + +.normal_char: + and [.state], not fstateWhite + +.markup_ok: + + call .store_char + jmp .scan_line2 + + +.escape_next: + + cmp byte [esi], $20 + jbe .normal_char + + lodsb + jmp .normal_char + + +; stores the char from al in [edi], and +; replaces the invalid HTML characters +; with their &name; representation. + +.store_char: + cmp al, 'A' + jb @f + + mov [edi], al + inc edi + retn + +@@: + cmp al, '<' + je .char_less_then + cmp al, '>' + je .char_greater_then + cmp al, '"' + je .char_quote + cmp al, '&' + je .char_amp +; cmp al, "'" +; je .char_apos + + mov [edi], al + lea edi, [edi+1] + retn + +.char_less_then: + mov dword [edi], '<' + lea edi, [edi+4] + retn + +.char_greater_then: + mov dword [edi], '>' + lea edi, [edi+4] + retn + +.char_quote: + mov dword [edi], '&quo' + mov word [edi+4], 't;' + lea edi, [edi+6] + retn + +;.char_apos: +; mov dword [edi], '&apo' +; mov word [edi+4], 's;' +; lea edi, [edi+6] +; retn + +.char_amp: + mov dword [edi], '&' + mov byte [edi+4], ';' + lea edi, [edi+5] + retn + + +.start_para: + test [.state], fstateTable + jz .not_td_open + + mov dword [edi], '<td>' + lea edi, [edi+4] + + cmp al, '(' ; col, row span + jne .td_ok + + dec edi + + mov dword [edi], ' col' + mov dword [edi+4], 'span' + mov word [edi+8], '="' + lea edi, [edi+10] + +.copy_span: + mov al, [esi] + lea esi, [esi+1] + cmp al, ',' + je .row_span + cmp al, ')' + je .end_span + + call .store_char + jmp .copy_span + +.row_span: + mov dword [edi], '" ro' + mov dword [edi+4], 'wspa' + mov dword [edi+8], 'n="' + lea edi, [edi+11] + jmp .copy_span + +.end_span: + mov word [edi], '">' + lea edi, [edi+2] + + mov al, [esi] + lea esi, [esi+1] + +.td_ok: + or [.state], fstatePara + jmp .process_char + +.not_td_open: + cmp al, '*' + jne .simple_p_tag + + cmp byte [esi], ' ' + jne .simple_p_tag + + mov dword [edi], '<li>' + add edi, 4 + or [.state], fstatePara + + inc esi + mov al, [esi] + inc esi + jmp .process_char + +.simple_p_tag: + mov dword [edi], '<p>' + add edi, 3 + jmp .process_char + +.process_inline_code: + mov ecx, fstateInlineSource + mov ebx, cInlineCodeTag + jmp .ProcessTag + +cInlineCodeTag text "code" + +.process_bold: + mov ecx, fstateBold + mov ebx, cBoldTag + jmp .ProcessTag + +cBoldTag text "strong" + +.process_italic: + mov ecx, fstateItalic + mov ebx, cItalicTag + jmp .ProcessTag + +cItalicTag text "em" + +.process_underline: + mov ecx, fstateUnderline + mov ebx, cUnderlinedTag + jmp .ProcessTag + +cUnderlinedTag text 'span class="underlined"' + +.process_strikeout: + mov ecx, fstateStrikeout + mov ebx, cStrikedTag + +cStrikedTag text "del" + +; ecx = state mask +; ebx = pointer to html tag string +.ProcessTag: + mov dl, al + + test [.state], ecx + jz .start_tag + +; close tag + not ecx + and [.state], ecx + + mov word [edi], '</' + lea edi, [edi+2] + jmp .finish_tag + +.start_tag: + test [.state], fstateWhite + jz .normal_char + cmp byte [esi], $20 + je .normal_char + cmp byte [esi], $09 + je .normal_char + cmp byte [esi], $0d + je .normal_char + cmp byte [esi], $0a + je .normal_char + + or [.state], ecx + +; open tag + mov byte [edi], '<' + lea edi, [edi+1] + +.copy_start: + mov al, [ebx] + inc ebx + test al, al + jz .end_tag + + stosb + jmp .copy_start + + +.finish_tag: + mov al, [ebx] + lea ebx, [ebx+1] + cmp al, " " + jbe .end_tag + + stosb + jmp .finish_tag + +.end_tag: + mov byte [edi], '>' + lea edi, [edi+1] + + jmp .scan_line2 + + +.white_space: + test [.state], fstateWhite + jnz .scan_line2 + + or [.state], fstateWhite + mov [edi], al + lea edi, [edi+1] + jmp .scan_line2 + +; end of line and end of file processing +.end_of_line: + test al, al + jz @f + + xor al, $0d xor $0a + cmp [esi], al + jne @f + inc esi + +@@: + or [.state], fstateWhite + + test al, al + jz .close_p_eof + + test [.state], fstateTextNow + jnz .para_ok + +.close_p_eof: + call .close_paragraph + +.para_ok: + test [.state], fstateHeader + jz .crlf + +; insert back link + cmp [.fBacklinks], 0 + je .backlink_ok + + mov dword [edi], '<a c' + mov dword [edi+4], 'lass' + mov dword [edi+8], '="ba' + mov dword [edi+12], 'ck" ' + lea edi, [edi+16] + + mov dword [edi], 'href' + mov dword [edi+4], '="#B' + lea edi, [edi+8] + + call .InsertID + + mov word [edi], '">' + mov dword [edi+2], '</a>' + lea edi, [edi+6] + +.backlink_ok: + mov byte [edi], '<' + lea edi, [edi+1] + + mov ecx, [.last_header] + add ecx, '/h0>' + mov [edi], ecx + lea edi, [edi+4] + + and [.state], not (fstateHeader or fstateTextNow) ; For the paragraph flow, the header loops like empty line. + +.crlf: + test [.state], fstateTextPrev or fstateTextNow + jz @f + mov word [edi], $0a0d + lea edi, [edi+2] +@@: + test al, al + jnz .line_start2 + +.finish: + mov dword [edi], 0 + stdcall StrCat, [.result], [.pHTML] + retn + + +.is_link_begin: +; test [.state], fstateWhite +; jz .normal_char + +.searchID: + dec esi + +;.SearchLink: + push edi + push esi + +; first compute the hash for the link label + mov edx, $811C9DC5 ; 2166136261 ; FNV offset basis + and [.link_level], 0 + +.hashloop: + mov al, [esi] + lea esi, [esi+1] + + cmp al, $20 + je .hashloop + cmp al, $09 + je .hashloop + + cmp al, $0d + je .not_a_link + cmp al, $0a + je .not_a_link + test al, al + je .not_a_link + + cmp al, '[' + jne @f + inc [.link_level] +@@: + + xor dl, al + imul edx, $01000193 ; 16777619 ; FNV prime + cmp al, ']' + jne .hashloop + + dec [.link_level] + jnz .hashloop + +; fold the hash to 16 bit value... + mov [.linkID_end], esi + + mov ebx, edx + shr ebx, 16 + xor ebx, edx + dec ebx + +.hash_table_loop: + lea ebx, [ebx+1] + and ebx, $ffff + + mov eax, [.pHashTable] + mov edi, [eax+4*ebx] + mov esi, [esp] + + test edi, edi + jnz .cmp_labels + +;.inline_link: ; the linkID was not found in the hash table. So, it should be inline link address. + + mov edi, esi ; the address of the link is in esi + mov esi, [.linkID_end] ; the address of the end of the linkID. + jmp .create_link + +.not_a_link: + pop esi edi + mov al, [esi] + lea esi, [esi+1] + jmp .normal_char ; the link address was not found, so it is not link at all. + +.cmp_labels: + + and [.link_level], 0 + +.cmp_labels_loop: + mov al, [esi] + lea esi, [esi+1] + + cmp al, ' ' + je .cmp_labels_loop + cmp al, $09 + je .cmp_labels_loop + +.target: + mov ah, [edi] + lea edi, [edi+1] + + cmp ah, ' ' + je .target + cmp ah, $09 + je .target + + cmp al, ah + jne .hash_table_loop ; it is not the same label - try again. + + cmp ah, '[' + jne @f + + inc [.link_level] + jmp .cmp_labels_loop +@@: + cmp ah, ']' + jne .cmp_labels_loop + + dec [.link_level] + jnz .cmp_labels_loop + +; the labels are equal, so search the address. + +.create_link: + mov [.close_now], fcloseLink + + mov edx, [esp] ; the start of the linkID. + + cmp byte [esi], '[' ; is the link has separate ID and text? + jne @f + mov [esp], esi ; replace the source address. +@@: + inc edx + cmp byte [edx], '#' ; is it internal link? + je .firstnw + +; inline image? + cmp byte [edx], '?' ; is it inline image? + jne .maybe_block_image + + mov [.close_now], fcloseInlineImage + jmp .firstnw + +.maybe_block_image: + cmp byte [edx], '!' ; is it an image? + jne .maybe_object + + mov [.close_now], fcloseImage + jmp .firstnw + +.maybe_object: + cmp byte [edx], '$' + jne .firstnw + + mov [.close_now], fcloseObject + +.firstnw: + and [.link_level], 0 + cmp byte [edi], '[' ; inline address. + jne .firstnw_loop + + inc edi + +.firstnw_loop: + mov al, [edi] + inc edi + + cmp al, ' ' + je .firstnw_loop + cmp al, $09 + je .firstnw_loop + + dec edi + mov edx, edi + +.internal_link_address: + pop esi edi + + cmp [.close_now], fcloseLink + je .it_is_link + + cmp [.close_now], fcloseObject + je .it_is_object + +; it is image. + mov dword [edi], '<img' + mov dword [edi+4], ' cla' + mov dword [edi+8], 'ss="' + + cmp [.close_now], fcloseImage + je .block_image + + mov dword [edi+12], 'ico' + jmp .check_style + +.block_image: + mov dword [edi+12], 'txt' + +; copy the style number if any: +.check_style: + lea edi, [edi+15] + + push esi + mov esi, edx + + lodsb + + cmp al, '!' + je .copy_style + cmp al, '?' + je .copy_style + + dec esi + +.copy_style: + lodsb + cmp al, '0' + jb .style_ok + cmp al, '9' + ja .style_ok + + stosb + jmp .copy_style + + +.style_ok: + lea edx, [esi-1] + pop esi + +.img_tag_end: + mov dword [edi], '" sr' + mov dword [edi+4], 'c="' + lea edi, [edi+7] + jmp .link_tag_ok + +.it_is_object: + push esi + + mov esi, edx + cmp byte [edx], '$' + jne @f + inc esi +@@: + mov dword [edi], '<vid' + mov dword [edi+4], 'eo c' + mov dword [edi+8], 'ontr' + mov dword [edi+12],'ols ' + add edi, 16 + + cmp byte [esi], '0' + jb .par_data + cmp byte [esi], '9' + ja .par_data + + mov dword [edi], ' wid' + mov dword [edi+4],'th="' + add edi, 8 + +.copy_width: + lodsb + cmp al, 'x' + je .width_ok + cmp al, ' ' + jb .height_ok + cmp al, ']' + je .height_ok + cmp al, '0' + jb .height_ok + cmp al, '9' + ja .height_ok + + stosb + jmp .copy_width + +.width_ok: + mov dword [edi], '" he' + mov dword [edi+4], 'ight' + mov word [edi+8], '="' + add edi, 10 + +.copy_height: + lodsb + cmp al, ':' + je .height_ok + cmp al, ' ' + jb .height_ok + cmp al, ']' + je .height_ok + cmp al, '0' + jb .height_ok + cmp al, '9' + ja .height_ok + + stosb + jmp .copy_height + +.height_ok: + mov word [edi], '" ' + add edi, 2 + +.par_data: + mov dword [edi], '><so' + mov dword [edi+4], 'urce' + mov dword [edi+8], ' src' + mov word [edi+12], '="' + add edi, 14 + + lea edx, [esi-1] + pop esi + jmp .link_tag_ok + + +; yes the link was found. +.it_is_link: + mov dword [edi], '<a h' + mov dword [edi+4], 'ref=' + mov byte [edi+8], '"' + lea edi, [edi+9] + +.link_tag_ok: + push ecx esi + +; push the close flag: + + mov esi, [.close_index] + mov ecx, [.close_now] + mov [.close_stack+esi], cl + inc [.close_index] + +; copy link address + + mov esi, edx + + cmp byte [esi], '?' + je .skip_img_char + + cmp byte [esi], ':' + je .skip_img_char + cmp byte [esi], '$' + je .skip_img_char + + cmp byte [esi], '!' + jne .copy_link_prefix + +.skip_img_char: + + inc esi + +.copy_link_prefix: + cmp [.procFixLink], 0 + je .copy_link_proc + + stdcall [.procFixLink], esi, edi, [.lParam] + mov edi, eax + mov esi, edx + +.copy_link_proc: + + call .CopyToEndOfLink + pop esi ecx + + cmp [.close_now], fcloseImage + je .finalize_image + cmp [.close_now], fcloseInlineImage + je .finalize_image + +; finalize link and object tags. + + mov word [edi], '">' + add edi, 2 + +.go_link_text: + and [.state], not fstateWhite + + inc esi ; skip the leading "[" + cmp byte [esi], '#' + jne .scan_line2 + inc esi + jmp .scan_line2 + +.finalize_image: + + mov dword [edi], '" al' + mov dword [edi+4], 't="' + lea edi, [edi+7] + + inc esi + call .CopyToEndOfLink + + dec esi + jmp .scan_line2 + + +.CopyToEndOfLink: + +.copy_eol: + lodsb + + cmp al, $0d + je .end_link + cmp al, $0a + je .end_link + + cmp al, '[' + jne @f + inc [.link_level] +@@: + cmp al, ']' + je .end_link_check + + test al, al + jz .end_link + +.store_link_char: + call .store_char + jmp .copy_eol + +.end_link_check: + cmp [.link_level], 0 + je .end_link + + dec [.link_level] + jmp .store_link_char +; jnz .store_link_char + +.end_link: + retn + +;.................................................................... + +.is_link_end: + call .close_one_link + jc .normal_char + + jmp .scan_line2 + + +.close_all_links: + call .close_one_link + jnc .close_all_links + retn + +; closes one link from the stack. +; returns CF=1 on empty stack. + +.close_one_link: + + mov ecx, [.close_index] + sub ecx, 1 + jnc .close_pop + + retn + +.close_pop: + mov [.close_index], ecx + mov al, [.close_stack+ecx] + + cmp al, fcloseObject + je .close_object_tag + + cmp al, fcloseLink + je .close_link_tag + +; close the image tag + + mov dword [edi], '" />' + add edi, 4 + +.close_end: + retn + + +.close_link_tag: + + mov dword [edi], '</a>' + add edi, 4 + retn + +.close_object_tag: + mov dword [edi], '</vi' + mov dword [edi+4], 'deo>' + add edi, 8 + retn + +;.................................................................... +; Processing of block source code +.copy_source: + +.source_line: + + cmp edi, [.limit] + jb @f + mov dword [edi], 0 + stdcall StrCat, [.result], [.pHTML] + mov edi, [.pHTML] +@@: + + cmp dword [esi], ';end' + je .end_source_block + +.copy_source_line: + mov al, [esi] + lea esi, [esi+1] + + call .store_char + + test al, al + jz .end_source_block2 + + cmp al, $0d + je .end_source_line + cmp al, $0a + jne .copy_source_line + +.end_source_line: + xor al, $0d xor $0a + cmp [esi], al + jne .source_line + + inc esi + mov [edi], al + lea edi, [edi+1] + jmp .source_line + +.end_source_block2: + dec esi + +.end_source_block: + mov dword [edi], '</pr' + mov word [edi+4], 'e>' + mov word [edi+6], $0a0d + lea edi, [edi+8] + + and [.state], not fstateBlockSource + jmp .skip2 + +;.................................................................... + +.close_paragraph: ; the <p> and <li> tags are not closed actually. Only the <td> tags. +; test [.state], fstatePara +; jz .close_para_ok + + call .close_inlines + call .close_all_links + + test [.state], fstateTable + jnz .close_td + + jmp .close_para_ok + +.close_td: + mov dword [edi], '</td' + mov dword [edi+4], '>'+($0a0d shl 8) + lea edi, [edi+7] + +.close_para_ok: + and [.state], not fstatePara + retn + +;.................................................................... +; closes all open inline tags. + +.close_inlines: + push esi + + test [.state], fstateBold + jz .bold_ok + + mov esi, cBoldTag + call .copy_one_close_tag + +.bold_ok: + test [.state], fstateItalic + jz .italic_ok + + mov esi, cItalicTag + call .copy_one_close_tag + +.italic_ok: + test [.state], fstateUnderline + jz .underline_ok + + mov esi, cUnderlinedTag + call .copy_one_close_tag + +.underline_ok: + test [.state], fstateStrikeout + jz .strike_ok + + mov esi, cStrikedTag + call .copy_one_close_tag + +.strike_ok: + test [.state], fstateInlineSource + jz .inline_source_ok + + mov esi, cInlineCodeTag + call .copy_one_close_tag + +.inline_source_ok: + and [.state], not (fstateBold or fstateItalic or fstateUnderline or fstateStrikeout or fstateInlineSource) + pop esi + retn + +.copy_one_close_tag: + mov ax, '</' + stosw + +.coct_loop: + lodsb + cmp al, " " + jbe .end_coct + stosb + jmp .coct_loop + +.end_coct: + mov al, '>' + stosb + retn + + +;.................................................................... +; horizontal rule element + +.horiz_rule: + call .close_paragraph + + mov dword [edi], '<hr ' + mov dword [edi+4], '/>'+($0a0d shl 16) + lea edi, [edi+8] + jmp .skip2 + +;.................................................................... +; Processing of the block elements. + +.block_element: + cmp dword [esi], ';end' + je .end_block + + cmp dword [esi], ';kil' + jne .not_kill + cmp byte [esi+4], 'l' + je .end_all_blocks + + +.not_kill: + cmp dword [esi], ';beg' + jne .not_code + cmp word [esi+4], 'in' + jne .not_code + +; code block + call .close_paragraph + + mov dword [edi], '<pre' + mov dword [edi+4], ' cla' + mov dword [edi+8], 'ss="' + lea edi, [edi+12] + + push esi + add esi, 6 + call .CopyName + pop esi + + mov word [edi], '">' + lea edi, [edi+2] + + or [.state], fstateBlockSource + jmp .skip2 + + +.not_code: + cmp dword [esi], ';tab' + jne .not_table + cmp word [esi+4], 'le' + jne .not_table + +; table block; + call .close_paragraph + + mov al, fblkTable + call .PushBlock + + mov dword [edi], '<tab' + mov dword [edi+4], 'le>' + add edi, 7 + + or [.state], fstateTable + jmp .skip2 + + +.not_table: + cmp dword [esi], ';---' + jne .not_row + +.table_row: + call .close_paragraph + + mov dword [edi], '</tr' + mov dword [edi+4], '><tr' + mov byte [edi+8], '>' + lea edi, [edi+9] + jmp .skip2 + + +.not_row: + cmp dword [esi], ';quo' + jne .not_quote + cmp word [esi+4], 'te' + jne .not_quote + +; block quote + call .close_paragraph + + mov al, fblkQuote + call .PushBlock + + mov dword [edi], '<blo' + mov dword [edi+4], 'ckqu' + mov dword [edi+8], 'ote>' + mov dword [edi+12], '<hea' + mov dword [edi+16], 'der>' + lea edi, [edi+20] + + push esi + add esi, 6 + + call .CopyName + + mov dword [edi], '</he' + mov dword [edi+4], 'ader' + mov byte [edi+8], '>' + lea edi, [edi+9] + + pop esi + jmp .skip2 + + +.not_quote: + cmp dword [esi], ';uli' + jne .not_ulist + cmp word [esi+4], 'st' + jne .not_ulist + +; unnumbered list + call .close_paragraph + + mov al, fblkUList + call .PushBlock + + mov dword [edi], '<ul>' + add edi, 4 + jmp .skip2 + +.not_ulist: + cmp dword [esi], ';oli' + jne .not_olist + cmp word [esi+4], 'st' + jne .not_olist + +; numbered list + call .close_paragraph + + mov al, fblkOLIst + call .PushBlock + + mov dword [edi], '<ol>' + add edi, 4 + jmp .skip2 + +.not_olist: + cmp dword [esi], ';spo' + jne .not_spoiler + cmp dword [esi+4], 'iler' + jne .not_spoiler + +; spoiler + call .close_paragraph + + mov al, fblkSpoiler + call .PushBlock + + mov dword [edi], '<det' ;<details><summary>Spoiler</summary> + mov dword [edi+4], 'ails' + mov dword [edi+8], '><su' + mov dword [edi+12], 'mmar' + mov word [edi+16], 'y>' + add edi, 18 + + push esi + add esi, 8 + call .CopyName + + mov dword [edi], '</su' + mov dword [edi+4], 'mmar' + mov word [edi+8], 'y>' + add edi, 10 + + pop esi + jmp .skip2 + +.not_spoiler: + cmp dword [esi], ';key' + jne .not_keywords + cmp dword [esi+4], 'word' + jne .not_keywords + cmp byte [esi+8], 's' + jne .not_keywords + + add esi, 9 + mov ecx, [.keywords] + jmp .append_line_to_string + +.not_keywords: + cmp dword [esi], ';des' + jne .not_desc + cmp dword [esi+4], 'crip' + jne .not_desc + cmp dword [esi+8], 'tion' + jne .not_desc + + add esi, 12 + mov ecx, [.description] + +.append_line_to_string: + + + push esi ; first argument of + + nop + +.seek_eoa: + mov al, [esi] + lea esi, [esi+1] + + test al, al + jz .end_of_appended + + cmp al, $0d + je .end_of_appended + + cmp al, $0a + jne .seek_eoa + +.end_of_appended: + dec esi + mov byte [esi], 0 + + stdcall StrCat, ecx ; start address from the stack + mov [esi], al ; restore the text + jmp .skip2 + + +.not_desc: + jmp .skip2 ; ";" at the begining without keyword is comment. The line is ignored. + + +.end_block: + call .close_paragraph + call .do_end_block + jmp .skip2 + +.end_all_blocks: + call .close_paragraph + +.end_all_loop: + call .do_end_block + jnc .end_all_loop + jmp .skip2 + + +.do_end_block: + call .PopBlock + test eax, eax + jnz .what_block + stc + retn + +.what_block: + cmp eax, fblkQuote + je .end_quote + cmp eax, fblkTable + je .end_table + cmp eax, fblkUList + je .end_ulist + cmp eax, fblkOLIst + je .end_olist + cmp eax, fblkSpoiler + je .end_spoiler + + clc + retn + +.end_quote: + mov dword [edi], '</bl' + mov dword [edi+4], 'ockq' + mov dword [edi+8], 'uote' + mov byte [edi+12], '>' + lea edi, [edi+13] + clc + retn + +.end_table: + mov dword [edi], '</tr' + mov dword [edi+4], '>'+($0a0d shl 8) + mov dword [edi+7], '</ta' + mov dword [edi+11],'ble>' + mov word [edi+15], $0a0d + lea edi, [edi+17] + and [.state], not fstateTable + clc + retn + +.end_olist: + mov dword [edi], '</ol' + jmp .end_list + +.end_ulist: + mov dword [edi], '</ul' +.end_list: + mov dword [edi+4], '>' + ($0a0d shl 8) + add edi, 7 + clc + retn + +.end_spoiler: + mov dword [edi], '</de' + mov dword [edi+4], 'tail' + mov word [edi+8], 's>' + add edi, 10 + clc + retn + +;.................................................................... +.PushBlock: + push ecx + mov ecx, [.pblock] + mov [.blocks+ecx], al + inc ecx + cmp ecx, 1024 + jb @f + dec ecx +@@: + mov [.pblock], ecx + pop ecx + retn + +.PopBlock: + mov eax, [.pblock] + dec eax + jns @f + xor eax, eax + mov [.pblock], eax + retn +@@: + mov [.pblock], eax + movzx eax, [.blocks+eax] + retn + +;.................................................................... +; processing link definitions in the second pass. +.link_definition: + + mov al, [esi+1] + cmp al, '#' + je .define_anchor + + cmp al, '^' + jne .skip2 + + +;.define_footnote: + + jmp .skip2 ; any other variant should be + ; stripped from the text. + +.define_anchor: + add esi, 2 + mov dword [edi], '<p>' + lea edi, [edi+3] + or [.state], fstatePara or fstateTextNow + + mov dword [edi], '<a c' + mov dword [edi+4], 'lass' + mov dword [edi+8], '="a"' + mov dword [edi+12], ' id=' + mov byte [edi+16], '"' + add edi, 17 + + push esi + call .copy_id + + mov dword [edi], '" hr' + mov dword [edi+4], 'ef="' + mov byte [edi+8], '#' + lea edi, [edi+9] + + pop esi + call .copy_id + + mov word [edi], '">' + lea edi, [edi+2] + + mov dword [edi], '</a>' + lea edi, [edi+4] + + mov al, [esi] + jmp .normal_char + +.copy_id: + mov [.link_level], 1 + +.copy_id_loop: + mov al, [esi] + lea esi, [esi+1] + + cmp al, '[' + jne @f + inc [.link_level] +@@: + cmp al, ']' + je .cpid_ok + cmp al, $0d + je .cpid_ok + cmp al, $0a + je .cpid_ok + test al, al + jz .cpid_ok + +.store: + mov [edi], al + lea edi, [edi+1] + jmp .copy_id_loop + +.cpid_ok: + dec [.link_level] + jnz .store + + retn + +;.................................................................... + +; processing header items and building of the table of contents. + +.header2: + xor ecx, ecx + +.scan_level2: + inc ecx +.scan_space2: + lea esi, [esi+1] + mov al, [esi] + cmp al, '#' + je .scan_level2 + cmp al, ' ' + je .scan_space2 + cmp al, $09 + je .scan_space2 + + cmp al, $0d + je .end_of_line + cmp al, $0a + je .end_of_line + + cmp ecx, 6 + jbe @f + mov ecx, 6 +@@: + +; create ID + call .BuildID + + shl ecx, 16 + mov [.last_header], ecx + + add ecx, '<h0 ' + mov [edi], ecx + mov dword [edi+4], 'id="' + mov byte [edi+8], 'H' + lea edi, [edi+9] + +; insert the id here. + + call .InsertID + + mov word [edi], '">' + lea edi, [edi+2] + + cmp [.last_header], 1 shl 16 + je @f + call .InsertID + mov dword [edi], '&nbs' + mov word [edi+4], 'p;' + lea edi, [edi+6] +@@: + or [.state], fstateHeader + jmp .scan_line2 + +.skip2: + mov al, [esi] + lea esi, [esi+1] + + test al, al + jz .finish + cmp al, $0d + je .skip_eol + cmp al, $0a + jne .skip2 + +.skip_eol: + xor al, $0d xor $0a + cmp [esi], al + jne .line_start2 + inc esi + jmp .line_start2 + +;----- End of .SecondPass ------------------------------ + + +; ecx - level of the header 1..6 +.BuildID: + push eax ebx ecx edx edi + + lea edi, [.IdString] + cmp ecx, 1 + jbe .main + + sub ecx, 2 + push ecx + + inc [.cntH2+4*ecx] + +.zero: + inc ecx + cmp ecx, 5 + je .end_zero + mov [.cntH2+4*ecx], 0 + jmp .zero + +.end_zero: + xor ebx, ebx + mov ecx, 10 + +.loop_numbers: + mov eax, [.cntH2+4*ebx] + call _NumToStrU + mov al, '.' + stosb + inc ebx + cmp ebx, [esp] + jbe .loop_numbers + + dec edi + pop ecx + jmp .finID + +.main: + mov eax, 'main' + stosd + +.finID: + lea eax, [.IdString] + sub edi, eax + mov [.IdLen], edi + + pop edi edx ecx ebx eax + retn + +.InsertID: + push ecx esi + + lea esi, [.IdString] + mov ecx, [.IdLen] + + rep movsb + + pop esi ecx + retn + + + +.CopyName: + push ecx edx + +.sp_loop: + lodsb + cmp al, $0a + je .end_cp_name + cmp al, $0d + je .end_cp_name + + cmp al, ' ' + jbe .sp_loop + + dec esi + +.found: + mov ecx, esi + mov edx, esi + +.name_eof: + lodsb + + test al, al + jz .eol + cmp al, $0a + je .eol + cmp al, $0d + je .eol + cmp al, ' ' + jbe .name_eof + + lea ecx, [esi] + jmp .name_eof + +.eol: + sub ecx, edx + jz .end_cp_name + + xchg esi, edx + +.copy_name_loop: + lodsb + call .store_char + loop .copy_name_loop + + mov esi, edx + +.end_cp_name: + pop edx ecx + retn +endp + + + + +endmodule Index: freshlib/data/memstream.asm ================================================================== --- freshlib/data/memstream.asm +++ freshlib/data/memstream.asm @@ -22,12 +22,18 @@ cmp eax, [.room] ; check for enough room jge .sizeok mov ecx, [ebx+TMemoryStream.size] call [ResizeIt] - push ecx + mov eax, [ebx+TMemoryStream.offset] + add eax, [.room] + add eax, 1024 ; 1k more... + cmp eax, ecx + jbe @f + mov ecx, eax +@@: stdcall ResizeMem, ebx, ecx mov ebx, eax mov [esi], eax ; new pointer jc .exit ADDED freshlib/data/minimag.asm Index: freshlib/data/minimag.asm ================================================================== --- /dev/null +++ freshlib/data/minimag.asm @@ -0,0 +1,2332 @@ +module "MiniMag translator" + + +struct TMDItem + .type dd ? + .indent dd ? +ends + + +;-------------------------------------------------------------- +; Converts MiniMag code into HTML. Starts from the position [.from] +; and ends at the end of the text or at first NULL character. +; +; Arguments: +; .pMiniMag - pointer to the TText structure with the BBCode +; formatted text. +; .from - the position where to start. +; +; Returns: +; edx - The same structure (possibly reallocated) with +; the translated to html code text. +; + +mmfDontFormat = $80000000 +mmfNoInline = $40000000 +mmfNoHTML = $20000000 + +proc TranslateMiniMag, .pText, .from, .procSanitizeURL +.pStack dd ? + +.whspc dd ? ; whitespace symbols count; +.flags dd ? +.hdr dd ? ; header level + +.pLinks dd ? + +.lbl_hash dd ? +.tmp_link dd ? + +.emoj = emoJ ; use this label. + +begin + pushad + + xor eax, eax + mov [.flags], eax + + stdcall GetMem, 256*4 + mov [.pLinks], eax + + stdcall CreateArray, sizeof.TMDItem + mov [.pStack], eax + + mov edx, [.pText] + stdcall TextMoveGap, edx, [.from] + + mov ecx, [.from] + add ecx, [edx+TText.GapEnd] + sub ecx, [edx+TText.GapBegin] + dec ecx + +.fp_new_line: + inc ecx + cmp ecx, [edx+TText.Length] + jae .second_pass + + mov al, [edx+ecx] + test al, al + jz .second_pass + + cmp al, '[' + je .link_def_found + jmp .fp_check_eol + +.fp_skip_eol: + inc ecx + cmp ecx, [edx+TText.Length] + jae .second_pass + + mov al, [edx+ecx] + test al, al + jz .second_pass + +.fp_check_eol: + cmp al, $0d + je .fp_new_line + + cmp al, $0a + je .fp_new_line + +; encode HTML. + + test al, al + js .fp_skip_eol + + and eax, $ff + movzx eax, byte [tbl_html+eax] + + test al, al + jns .fp_skip_eol + +.do_encode: + lea esi, [eax+tbl_html] + lodsb + + stdcall TextSetGapSize, edx, eax + + xchg eax, ecx + sub eax, [edx+TText.GapEnd] + add eax, [edx+TText.GapBegin] + stdcall TextMoveGap, edx, eax + inc [edx+TText.GapEnd] ; delete the replaced char. + + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + rep movsb + + mov ecx, [edx+TText.GapEnd] + dec ecx + jmp .fp_skip_eol + + +.link_def_found: + mov eax, ecx + sub eax, [edx+TText.GapEnd] + add eax, [edx+TText.GapBegin] + + stdcall TextMoveGap, edx, eax ; move the gap to the beginning of the link. + + lea edi, [ecx+1] ; the start of the label. + xor esi, esi + xor eax, eax + +.hash_loop: + inc ecx + cmp ecx, [edx+TText.Length] + jae .end_of_lbl ;.second_pass + + mov al, [edx+ecx] + test al, al + jz .end_of_lbl ;.second_pass + + cmp al, ']' + je .end_of_lbl + + test al, al + js .add_hash + + mov al, [tbl_html+eax] + test al, al + jz .fp_skip_eol ;???????????? + jns .add_hash + + push ecx edx + + mov edx, esi + mov esi, eax + add esi, tbl_html + + lodsb + mov ecx, eax + +.html_hash: + lodsb + xor edx, eax + mov dl, [tpl_func + edx] + loop .html_hash + + mov esi, edx + pop edx ecx + jmp .hash_loop + +.add_hash: + xor esi, eax + movzx esi, byte [tpl_func + esi] + jmp .hash_loop + +.end_of_lbl: + mov [.lbl_hash], esi + + mov esi, ecx + + inc ecx + cmp ecx, [edx+TText.Length] + jae .second_pass + + mov al, [edx+ecx] + cmp al, ' ' + jne .fp_invalid_link + +; valid label has been found... +; first: extract the label. + + sub esi, edi + jz .fp_invalid_link + + cmp esi, $ff + ja .fp_invalid_link + + lea edi, [edx+edi] + + stdcall StrNew + stdcall StrCharCat, eax, esi + stdcall StrCatMemHTML, eax, edi, esi + mov [.tmp_link], eax + +; fix the label length. + stdcall StrPtr, eax + mov esi, eax + mov eax, [esi+string.len] + dec eax + cmp eax, $ff + ja .free_link + mov byte [esi], al + +.link_url_start: + inc ecx + cmp ecx, [edx+TText.Length] + jae .free_link + + mov al, [edx+ecx] + test al, al + jz .free_link + + cmp al, $0d + je .free_link + cmp al, $0a + je .free_link + + cmp al, ' ' + jbe .link_url_start + + mov edi, ecx + mov esi, ecx + +.loop_to_end_of_link: + inc ecx + cmp ecx, [edx+TText.Length] + jae .free_link + + mov al, [edx+ecx] + test al, al + jz .end_found + + cmp al, $0d + je .end_of_link + cmp al, $0a + je .end_of_link + + cmp al, ' ' + jbe .loop_to_end_of_link + + lea esi, [ecx+1] + jmp .loop_to_end_of_link + + +.end_of_link: + xor al, $0d xor $0a + + inc ecx + cmp ecx, [edx+TText.Length] + jae .end_found + + cmp al, [edx+ecx] + jne .end_found + + inc ecx + +.end_found: + sub esi, edi + jz .free_link + + lea edi, [edx+edi] + stdcall StrCatMemHTML, [.tmp_link], edi, esi + +; for debugging links handing; +; stdcall FileWriteString, [STDERR], [.tmp_link] +; stdcall FileWriteString, [STDERR], <txt 13, 10> + + mov eax, [.lbl_hash] + mov edi, [.pLinks] + mov esi, [.tmp_link] + +.hash_search_slot: ; resolve possible hash collisions. + xchg esi, [edi+4*eax] + test esi, esi + jz .end_link + + inc al + cmp eax, [.lbl_hash] + jne .hash_search_slot + + stdcall StrDel, esi ; the hash table is full, so simply delete the remaining link. + +.end_link: + mov [edx+TText.GapEnd], ecx ; delete the entire line of the link definition. + dec ecx + jmp .fp_new_line + +.free_link: + stdcall StrDel, [.tmp_link] + +.fp_invalid_link: + mov ecx, [edx+TText.GapEnd] + jmp .fp_skip_eol + + +; Second processing pass. It will format all the tags. + +.second_pass: + + mov ebx, [.from] +; int3 + +.start_of_line: + + xor eax, eax + mov [.hdr], eax + mov byte [.flags], al + and [.flags], not mmfNoInline + + stdcall TextMoveGap, edx, ebx + + xor eax, eax + mov [.whspc], eax + +.loop: + mov ecx, ebx + add ecx, [edx+TText.GapEnd] + sub ecx, [edx+TText.GapBegin] + cmp ecx, [edx+TText.Length] + jae .empty_line_found + + mov al, [edx+ecx] + + test al, al + jz .empty_line_found + + cmp al, ';' + je .command_found + + test [.flags], mmfDontFormat + jnz .non_empty_line_found + + cmp al, '#' + je .header_found + + cmp al, '*' + je .list_item_found + + cmp al, $0d + je .empty_line_found + cmp al, $0a + je .empty_line_found + + cmp al, ' ' + ja .non_empty_line_found + + inc [.whspc] + inc [edx+TText.GapEnd] + jmp .loop + + +.command_found: + + cmp [.whspc], 0 + jne .non_empty_line_found + + test [.flags], mmfDontFormat + jnz .check_for_end + + lea eax, [ecx+8] ; spoiler + cmp eax, [edx+TText.Length] + jae .less_than_8 + + cmp dword [edx+ecx], ';spo' + jne .not_spoiler + cmp dword [edx+ecx+4], 'iler' + jne .not_spoiler + cmp byte [edx+ecx+8], ' ' + ja .not_spoiler + + call .close_all_non_minimag + + push ecx + mov eax, tagSpoiler + call .add_to_stack + pop ecx + + mov eax, tagSpoiler + call .prefix_tag + + add ecx, 8 + add [edx+TText.GapEnd], 8 + + push ebx + call .skip_tag_arg + pop eax + cmp eax, ebx + jne .sum_ok + + mov ecx, [edx+TText.GapBegin] + mov dword [edx+ecx], 'Spoi' + mov dword [edx+ecx+4], 'ler ' + add [edx+TText.GapBegin], 7 + add ebx, 7 + +.sum_ok: + mov eax, tagSpoiler + call .suffix_tag + + jmp .start_of_line + + +.not_spoiler: +.less_than_8: + lea eax, [ecx+6] + cmp eax, [edx+TText.Length] + jae .less_than_6 + + cmp dword [edx+ecx], ';quo' + jne .not_quote + cmp word [edx+ecx+4], 'te' + jne .not_quote + cmp byte [edx+ecx+6], ' ' + ja .not_quote + +; quote command here + + call .close_all_non_minimag + + push ecx + mov eax, tagQuote + call .add_to_stack + pop ecx + + mov eax, tagQuote + call .prefix_tag + + add ecx, 6 + add [edx+TText.GapEnd], 6 + + call .skip_tag_arg_quote + + mov eax, tagQuote + call .suffix_tag + + jmp .start_of_line + + +.not_quote: + + cmp dword [edx+ecx], ';tab' + jne .not_table + cmp word [edx+ecx+4], 'le' + jne .not_table + cmp byte [edx+ecx+6], ' ' + ja .not_table + +; table command here + + call .close_all_non_minimag + + mov eax, tagTable + call .open_tag + + jmp .delete_to_eol + + +.not_table: + cmp dword [edx+ecx], ';beg' + jne .not_begin + cmp word [edx+ecx+4], 'in' + jne .not_begin + cmp byte [edx+ecx+6], ' ' + ja .not_begin + + or [.flags], mmfDontFormat + + call .close_all_non_minimag + + push ecx + mov eax, tagCode + call .add_to_stack + pop ecx + + mov eax, tagCode + call .prefix_tag + + add ecx, 6 + add [edx+TText.GapEnd], 6 + + call .skip_tag_arg + + mov eax, tagCode + call .suffix_tag + + jmp .start_of_line + + +.not_begin: + + cmp dword [edx+ecx], ';uli' + jne .not_ulist + cmp word [edx+ecx+4], 'st' + jne .not_ulist + cmp byte [edx+ecx+6], ' ' + ja .not_ulist + + call .close_all_non_minimag + + mov eax, tagUL + call .open_tag + + jmp .delete_to_eol + + +.not_ulist: + cmp dword [edx+ecx], ';oli' + jne .not_olist + cmp word [edx+ecx+4], 'st' + jne .not_olist + cmp byte [edx+ecx+6], ' ' + ja .not_olist + + call .close_all_non_minimag + + mov eax, tagOL + call .open_tag + + jmp .delete_to_eol + + +.not_olist: + +.less_than_6: +.less_than_5: + +.check_for_end: + + lea eax, [ecx+4] + cmp eax, [edx+TText.Length] + jae .less_than_4 + + cmp dword [edx+ecx], ';end' + jne .not_end + + cmp byte [edx+ecx+4], ' ' + ja .not_end + +; end command here + + call .close_all_non_minimag + call .pop_one_tag + + and [.flags], not mmfDontFormat + + jmp .delete_to_eol + + +.not_end: + test [.flags], mmfDontFormat + jnz .non_empty_line_found + + cmp dword [edx+ecx], ';---' + jne .not_ruler + +; it is a horizontal ruller command. It can separate paragraphs by <hr> tag, or the table rows by <tr> tags. + + push ecx + mov esi, [.pStack] + + +.row_close: + mov ecx, [esi+TArray.count] + dec ecx + js .put_hr ; empty stack! + + mov eax, [esi+TArray.array + sizeof.TMDItem * ecx + TMDItem.type] + + cmp eax, tagTD + je .close_this + cmp eax, tagTH + je .close_this + cmp eax, tagTR + je .close_this + + cmp eax, tagTable + je .open_tr + +.put_hr: + mov eax, tagHR + call .prefix_tag + jmp .end_hr + +.close_this: + mov [esi+TArray.count], ecx + call .close_tag + jmp .row_close + +.open_tr: + mov eax, tagTR + call .open_tag + +.end_hr: + pop ecx + jmp .delete_to_eol + + +.less_than_4: +.not_ruler: + +; it is simply a comment. Delete it up to the end of the line. + +.delete_to_eol: + inc ecx + cmp ecx, [edx+TText.Length] + jae .eol_ok + + mov al, [edx+ecx] + test al, al + jz .eol_ok + cmp al, $0d + je .eol_found2 + + cmp al, $0a + jne .delete_to_eol + +.eol_found2: + inc ecx + xor al, $0d xor $0a + cmp al, [edx+ecx] + jne .eol_ok + inc ecx +.eol_ok: + mov [edx+TText.GapEnd], ecx + jmp .start_of_line + + +.list_item_found: + + inc ecx + cmp ecx, [edx+TText.Length] + jae .non_empty_line_found + + cmp byte [edx+ecx], ' ' + ja .non_empty_line_found + + add [edx+TText.GapEnd], 2 + +; here list item begins: + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .add_leaf + + mov eax, [esi + TArray.array + sizeof.TMDItem * ecx + TMDItem.type] + cmp eax, tagUL + je .open_li + cmp eax, tagOL + jne .add_leaf + +.open_li: + mov eax, tagListItem + call .open_tag + jmp .add_leaf + + +.headers dd tagH1, tagH2, tagH3, tagH4, tagH5, tagH6 + +.header_found: + xor eax, eax + +.hcnt: + inc eax + inc ecx + cmp ecx, [edx+TText.Length] + jae .non_empty_line_found ; not a header? + + cmp byte [edx+ecx], '#' + je .hcnt + + cmp eax, 6 + ja .non_empty_line_found + + cmp byte [edx+ecx], ' ' + jne .non_empty_line_found ; not a header? + + stc + adc [edx+TText.GapEnd], eax + + mov [.hdr], eax + + +.non_empty_line_found: + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .add_leaf + + mov eax, [esi + TArray.array + sizeof.TMDItem * ecx + TMDItem.type] ; don't add paragraphs inside elements that can handle text by themselves. + test [eax+TOneTag.flags], fLines + jnz .skip_to_eol + + cmp eax, tagCode + je .skip_to_eol + + cmp eax, tagTable + jne .check_for_row + + mov eax, tagTR + call .open_tag + jmp .open_td_th + +.check_for_row: + cmp eax, tagTR + jne .add_leaf + +.open_td_th: + mov eax, tagTD + cmp [.hdr], 0 + je .open_td + mov eax, tagTH + and [.hdr], 0 +.open_td: + call .open_tag + +.add_leaf: + mov eax, tagPara + + mov ecx, [.hdr] + dec ecx + js .do_add_leaf + mov eax, [.headers + 4*ecx] + +.do_add_leaf: + call .open_tag + jmp .skip_to_eol + + +.empty_line_found: + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + +.loop_empty_line: + dec ecx + js .skip_to_eol ; the empty line is not inside code block because there is no blocks at all. + + mov eax, [esi + TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + test [eax+TOneTag.flags], fLines or fInlineTag + jz .check_wrap + + cmp eax, tagInlineCode + jne .inline_code_ok + and [.flags], not mmfDontFormat +.inline_code_ok: + + mov [esi+TArray.count], ecx ; close text leaf blocks. + call .close_tag + jmp .loop_empty_line + + dec ecx + js .skip_to_eol ; the empty line is not inside code block because there is no blocks at all. + +.check_wrap: + cmp eax, tagTD + je .close_wrap + cmp eax, tagTH + je .close_wrap + cmp eax, tagListItem + jne .skip_to_eol + +.close_wrap: + mov [esi+TArray.count], ecx + call .close_tag + jmp .skip_to_eol + +; Here seems to be a good place for processing the inline formatting elements, together with the HTML encoding. + +.skip_to_eol: + + xor eax, eax + mov ecx, ebx + add ecx, [edx+TText.GapEnd] + sub ecx, [edx+TText.GapBegin] + cmp ecx, [edx+TText.Length] + jae .end_of_text + + mov al, [edx+ecx] + test al, al + jz .end_of_text + cmp al, $0d + je .eol_found + cmp al, $0a + je .eol_found + + test [.flags], mmfDontFormat + jnz .next + + cmp al, '>' + je .end_int_html + + test [.flags], mmfNoHTML + jnz .next + + cmp al, '<' + je .internal_html + + cmp al, '`' + je .code + + test [.flags], mmfNoInline + jnz .next + + cmp al, '*' + je .bold + cmp al, '/' + je .italic + cmp al, '_' + je .underline + cmp al, '-' + je .del + + cmp al, $f0 ; emoji? + jb .inline_ok + + stdcall TextMoveGap, edx, ebx + + mov ecx, [edx+TText.GapEnd] + mov esi, ecx ; the start of thet emoji + +.loop_emoji: + stdcall IsEmoji, [edx+ecx] + jnc .end_emoji + + add ecx, eax + cmp ecx, [edx+TText.Length] + jb .loop_emoji + +.end_emoji: + sub ecx, esi + jz .next ; no emoji here... + + add ebx, ecx + + mov eax, [emoJ.lOpenP] + add eax, [emoJ.lClose] + stdcall TextSetGapSize, edx, eax + + mov edi, [edx+TText.GapBegin] + add edi, edx + + mov esi, [emoJ.pOpenP] + mov ecx, [emoJ.lOpenP] + add ebx, ecx + add [edx+TText.GapBegin], ecx + + rep movsb + + stdcall TextMoveGap, edx, ebx + + mov edi, [edx+TText.GapBegin] + add edi, edx + + mov esi, [emoJ.pClose] + mov ecx, [emoJ.lClose] + add ebx, ecx + add [edx+TText.GapBegin], ecx + + rep movsb + + jmp .skip_to_eol + + +.inline_ok: + cmp al, '[' + je .link + + mov byte [.flags], al ; the previous character. + +.next: + inc ebx + jmp .skip_to_eol + +.internal_html: + or [.flags], mmfNoHTML + jmp .next + +.end_int_html: + and [.flags], not mmfNoHTML + jmp .next + + +.eol_found: + mov ah, al + xor ah, $0d xor $0a + + inc ecx + inc ebx + cmp [edx+ecx], ah + jne .start_of_line + inc ebx + jmp .start_of_line + + +.link: +locals + .linkT dd ? + .imgW dd ? + .imgH dd ? + .linkStart dd ? + .lblStart dd ? + .lblLen dd ? + .urlLen dd ? + .level dd ? +endl + mov ebx, ecx + sub ebx, [edx+TText.GapEnd] + add ebx, [edx+TText.GapBegin] + stdcall TextMoveGap, edx, ebx + + inc ecx + cmp ecx, [edx+TText.Length] + jae .next + + xor eax, eax + mov [.linkT], eax + + mov al, [edx+ecx] + test al, al + jz .next + + cmp al, '!' + je .block_image + + cmp al, '?' + je .inline_image + + cmp al, '$' + je .video + + cmp al, '#' + je .anchor + + mov [.linkT], tagURL + jmp .image_ok + +.anchor: + mov [.linkT], tagAnchor + jmp .image_ok + +.video: + mov [.linkT], tagVideoMM + jmp .image + +.block_image: + mov [.linkT], tagImgMM + jmp .image + +.inline_image: + + mov [.linkT], tagInlineImgMM + +.image: + inc ecx + cmp ecx, [edx+TText.Length] + jae .next + + mov al, [edx+ecx] + test al, al + jz .next + + cmp al, '0' + jb .image_ok + cmp al, '9' + ja .image_ok + +; For now... +.ignore_size: + inc ecx + cmp ecx, [edx+TText.Length] + jae .next + + mov al, [edx+ecx] + test al, al + jz .next + + cmp al, ':' + jne .ignore_size + + inc ecx + cmp ecx, [edx+TText.Length] + jae .next + + mov al, [edx+ecx] + test al, al + jz .next + +.image_ok: +; here eax contains the current byte of the address label. +; The first value of the hash is computed outside the hash loop. + + mov edi, ecx ; the start of the label. + movzx esi, byte [tpl_func + eax] ; the initial value of the hash. + +.hash_loop2: + inc ecx + cmp ecx, [edx+TText.Length] + jae .next + + mov al, [edx+ecx] + test al, al + jz .next + + cmp al, ']' + je .end_of_link_lbl + + xor esi, eax + movzx esi, byte [tpl_func + esi] + jmp .hash_loop2 + +.end_of_link_lbl: + mov [.lbl_hash], esi + + mov eax, ecx + sub eax, edi + + mov [.lblStart], edi + mov [.lblLen], eax + +; search the label in the hash table. + + push ebx ecx + + mov ebx, [.lbl_hash] + +.lbl_search: + mov edi, [.pLinks] + mov eax, [edi+4*ebx] + test eax, eax + jz .hash_not_found + + stdcall StrPtr, eax + mov esi, eax + mov edi, edx + add edi, [.lblStart] + mov ecx, [.lblLen] + + mov eax, [esi+string.len] + mov [.urlLen], eax + + movzx eax, byte [esi] ; the first byte is the length of the label part. + inc esi + + sub [.urlLen], eax + dec [.urlLen] + + cmp ecx, eax + jne .not_this_hash + + repe cmpsb + je .insert_link + +.not_this_hash: + inc bl + cmp ebx, [.lbl_hash] + jne .lbl_search + +.hash_not_found: +; the link is not in the hash table, so it is a inline link. + + mov esi, [.lblStart] + add esi, edx + + mov eax, [.lblLen] + mov [.urlLen], eax + +; here esi point to the URL. [.urlLen] contains the length of the url. + +.insert_link: +; the label matches! Insert the tag prefix. + + pop ecx ebx + + mov eax, [.lblStart] + mov [edx+TText.GapEnd], eax ; delete the start "[" + + mov eax, [.linkT] + call .prefix_tag + +; copy the URL here + + stdcall [.procSanitizeURL], esi, [.urlLen] + push eax + + stdcall StrPtr, eax + mov esi, eax + mov ecx, [eax+string.len] + + stdcall TextSetGapSize, edx, ecx + + mov edi, [edx+TText.GapBegin] + add edi, edx + + add ebx, ecx + add [edx+TText.GapBegin], ecx + + rep movsb + + stdcall StrDel ; from the stack + + mov eax, [.linkT] + call .suffix_tag + +; Here check for additional link content/alt content. + + mov ecx, [edx+TText.GapEnd] + add ecx, [.lblLen] + + inc ecx + cmp ecx, [edx+TText.Length] + jae .skip_link_content + + mov al, [edx+ecx] + cmp al, '[' + jne .skip_link_content + + lea eax, [ecx+1] + mov [.lblStart], eax + + and [.level], 0 + +.search_second_end: + inc ecx ; How about [] empty label? + cmp ecx, [edx+TText.Length] + jae .skip_link_content + + mov al, [edx+ecx] + test al, al + jz .skip_link_content + + cmp al, $0d + je .skip_link_content + cmp al, $0a + je .skip_link_content + + cmp al, '[' ; nested link + jne .nested_ok + inc [.level] + +.nested_ok: + cmp al, ']' + jne .search_second_end + + cmp [.level], 0 + je .second_end + + dec [.level] + jmp .search_second_end + + +.second_end: + sub ecx, [.lblStart] + mov [.lblLen], ecx + + mov ecx, [.lblStart] + mov [edx+TText.GapEnd], ecx ; delete the link URL/label part, because there is second one. + + push ebx ; save ebx, because the link text should be processed again for nested structures. + + add ebx, [.lblLen] + stdcall TextMoveGap, edx, ebx + inc [edx+TText.GapEnd] + + mov eax, [.linkT] + call .close_tag + + pop ebx + stdcall TextMoveGap, edx, ebx + + mov eax, [.linkT] + test [eax+TOneTag.flags], fDisableTags + jz .skip_to_eol + + or [.flags], mmfNoHTML + jmp .skip_to_eol + + +.skip_link_content: + cmp [.linkT], tagAnchor + jne @f + inc [edx+TText.GapEnd] + dec [.lblLen] +@@: + + + add ebx, [.lblLen] + stdcall TextMoveGap, edx, ebx + inc [edx+TText.GapEnd] + + mov eax, [.linkT] + call .close_tag + + and [.flags], not mmfNoInline + jmp .skip_to_eol + + + +.bold: + mov eax, tagStrong + jmp .inline_tag + +.italic: + mov eax, tagEm + jmp .inline_tag + +.underline: + mov eax, tagUnderlined + jmp .inline_tag + +.del: + mov eax, tagDel + jmp .inline_tag + +.code: + mov eax, tagInlineCode + +.inline_tag: + + stdcall TextMoveGap, edx, ebx + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .open_inline + + cmp eax, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + jne .open_inline + + mov [esi+TArray.count], ecx + cmp eax, tagInlineCode + jne @f + and [.flags], not mmfNoInline +@@: + call .close_tag + jmp .end_inline + +.open_inline: + cmp byte [.flags], ' ' ; the previous character. + ja .next + + mov ecx, ebx + add ecx, [edx+TText.GapEnd] + sub ecx, [edx+TText.GapBegin] + cmp byte [edx+ecx+1], ' ' + jbe .next + + cmp eax, tagInlineCode + jne @f + or [.flags], mmfNoInline +@@: + call .open_tag + +.end_inline: + inc [edx+TText.GapEnd] + jmp .skip_to_eol + + +.end_of_text: + +; Close all not closed tags: + + stdcall TextMoveGap, edx, ebx + mov edi, [.pStack] + mov ecx, [edi+TArray.count] + +.close_all: + dec ecx + js .finalize + + mov eax, [edi + TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + call .close_tag + jmp .close_all + +.finalize: + mov esi, [.pLinks] + mov ecx, $ff + +.freelinks: + stdcall StrDel, [esi+4*ecx] + dec ecx + jns .freelinks + + stdcall FreeMem, esi + stdcall FreeMem, [.pStack] + + mov [esp + 4*regEDX], edx + popad + return + + + +.close_all_non_minimag: + push ecx esi + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + +.close_loop: + dec ecx + js .end_close + + mov eax, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + test [eax+TOneTag.flags], fMinimagBlock + jnz .end_close + + mov [esi+TArray.count], ecx + call .close_tag + jmp .close_loop + +.end_close: + pop esi ecx + retn + + +.pop_one_tag: + push ecx esi + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .end_pop_one + + mov [esi+TArray.count], ecx + mov eax, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + call .close_tag + +.end_pop_one: + pop esi ecx + retn + + +.open_tag: + push ecx esi edi + push eax eax + call .add_to_stack + pop eax + call .prefix_tag + pop eax + call .suffix_tag + pop edi esi ecx + retn + + +.suffix_tag: + lea eax, [eax+TOneTag.pOpenS] + jmp .copy_tag + +.close_tag: + lea eax, [eax+TOneTag.pClose] + +.prefix_tag: +.copy_tag: + push ecx esi edi + + mov esi, [eax] + mov ecx, [eax+4] + test esi, esi + jz .tag_copy_end + + add ebx, ecx + + stdcall TextSetGapSize, edx, ecx + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + + rep movsb + +.tag_copy_end: + pop edi esi ecx + retn + + +.add_to_stack: + push edx eax + stdcall AddArrayItems, [.pStack], 1 + mov [.pStack], edx + pop [eax + TMDItem.type] + pop edx + retn + + +.skip_tag_arg: + push eax ecx esi + +.skip_tag_loop: + inc ecx + cmp ecx, [edx+TText.Length] + jae .end_arg + + mov al, [edx+ecx] + test al, al + jz .end_arg + + cmp al, $0a + je .eol1 + cmp al, $0d + je .eol1 + + cmp al, ' ' + jbe .skip_tag_loop + + mov [edx+TText.GapEnd], ecx + + mov esi, ebx + dec ecx + +.search_eol: + inc ecx + inc esi + cmp ecx, [edx+TText.Length] + jae .end_arg + + movzx eax, byte [edx+ecx] + test al, al + jz .end_arg + + cmp al, $0a + je .eol1 + + cmp al, $0d + je .eol1 + + cmp al, ' ' + cmova ebx, esi + jmp .search_eol + +.eol1: + inc ecx + xor al, $0d xor $0a + cmp al, [edx+ecx] + jne .end_arg + inc ecx + +.end_arg: + stdcall TextMoveGap, edx, ebx + mov [edx+TText.GapEnd], ecx + + pop esi ecx eax + retn + + + +.skip_tag_arg_quote: + + stdcall TextSetGapSize, edx, 16 + mov edi, [edx+TText.GapBegin] + mov esi, [edx+TText.GapEnd] + mov ebx, edi + + mov ecx, '<u >' + dec esi + +.skip_tag_loop2: + inc esi + cmp esi, [edx+TText.Length] + jae .end_arg2 + + mov al, [edx+esi] + test al, al + jz .end_arg2 + + cmp al, $0a + je .eol2 + cmp al, $0d + je .eol2 + + cmp al, ' ' + jbe .skip_tag_loop2 + + mov [edx+TText.GapEnd], esi ; delete the spaces on the begining of the arguments. + + mov ah, al + dec esi + +.search_eol2: + inc esi + cmp esi, [edx+TText.Length] + jae .end_arg2 + + mov ah, al + mov al, [edx+esi] + test al, al + jz .end_arg2 + + cmp al, $0a + je .eol2 + cmp al, $0d + je .eol2 + + xor ah, al + jns .store + + mov [edx+TText.GapBegin], ebx + mov [edx+TText.GapEnd], esi + stdcall TextSetGapSize, edx, 4 + mov esi, [edx+TText.GapEnd] + mov [edx+edi], ecx + add edi, 4 + mov ebx, edi + xor ecx, '<u >' xor '</u>' + +.store: + mov [edx+edi], al + inc [edx+TText.GapEnd] + inc edi + + cmp al, ' ' + cmova ebx, edi ; the last non-space character. + jmp .search_eol2 + +.eol2: + inc esi + xor al, $0d xor $0a + cmp al, [edx+esi] + jne .end_arg2 + inc esi + +.end_arg2: + cmp ecx, '</u>' + jne .fin_arg2 + + mov [edx+TText.GapBegin], ebx + mov [edx+TText.GapEnd], esi + stdcall TextSetGapSize, edx, 4 + mov esi, [edx+TText.GapEnd] + mov [edx+edi], ecx + add edi, 4 + mov ebx, edi + +.fin_arg2: + mov [edx+TText.GapBegin], ebx ; delete the final whitespace chars. + mov [edx+TText.GapEnd], esi ; delete up to the end of the line. + + retn + +endp + + + +; Debug procedure. Not used in production. + +proc DumpStack, .pStack +begin + pushad + + mov esi, [.pStack] + xor ecx, ecx + +.loop: + cmp ecx, [esi+TArray.count] + jae .finish + + mov edi, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + + stdcall FileWrite, [STDERR], [edi+TOneTag.pOpenP], [edi+TOneTag.lOpenP] + stdcall FileWrite, [STDERR], [edi+TOneTag.pOpenS], [edi+TOneTag.lOpenS] + + stdcall FileWriteString, [STDERR], txt ": " + + stdcall NumToStr, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.indent], ntsDec + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDERR], <txt 13, 10> + + inc ecx + jmp .loop + +.finish: + popad + return + +endp + + + +proc StrCatMemHTML, .dest, .psource, .length +begin + pushad + + mov esi, [.psource] + mov ecx, [.length] + + stdcall StrLen, [.dest] + lea edx, [eax+8*ecx+4] + + stdcall StrSetCapacity, [.dest], edx + mov edi, eax + mov ebx, eax + add edi, [edi+string.len] + + xor eax, eax + +.loop: + dec ecx + js .finish + + lodsb + test al, al + js .store + + mov al, [tbl_html+eax] + test al, al + jz .loop + js .encode + +.store: + stosb + jmp .loop + +.encode: + push esi ecx + + lea esi, [eax+tbl_html] + movzx ecx, byte [esi] + inc esi + + rep movsb + pop ecx esi + jmp .loop + +.finish: + mov ecx, edi + xor eax, eax + sub ecx, ebx + stosd + mov [ebx+string.len], ecx + + popad + return +endp + + + + + +proc IsEmoji, .chars +begin + push edx + + stdcall DecodeUtf8, [.chars] + xchg eax, edx + jc .no + + cmp edx, $200d + je .yes + + cmp edx, $1f300 + jb .no + + cmp edx, $1fae0 + ja .no + +.yes: + stc + pop edx + return + +.no: + clc + pop edx + return +endp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; Not finished, not working!!! + +proc TranslateMarkdown, .pText, .from +.pStack dd ? + +.qlvl dd ? ; quote level. +.whspc dd ? ; whitespace symbols count; +.flags dd ? +.hdr dd ? ; header level + +.q_from dd ? + +.prev dd ? + +begin + pushad + + stdcall CreateArray, sizeof.TMDItem + mov [.pStack], eax + + mov edx, [.pText] + mov ebx, [.from] + +.start_of_line: + + xor eax, eax + mov [.qlvl], eax + mov [.flags], eax + mov [.hdr], eax + + dec eax + mov [.q_from], eax ; start from -1 on every line. + + stdcall TextMoveGap, edx, ebx + +.zerospc: + xor eax, eax + mov [.whspc], eax + +.loop: + mov ecx, ebx + add ecx, [edx+TText.GapEnd] + sub ecx, [edx+TText.GapBegin] + + mov al, [edx+ecx] + + test al, al + jz .empty_line_found + + cmp al, '>' + je .quote_found + + cmp al, '-' + je .ul_found + cmp al, '*' + je .ul_found + cmp al, '+' + je .ul_found + + cmp al, '#' + je .header_found + + cmp al, $0d + je .empty_line_found + cmp al, $0a + je .empty_line_found + + cmp al, ' ' + ja .non_empty_line_found + + inc [.whspc] + inc [edx+TText.GapEnd] + jmp .loop + + +; closes all tags up to position ecx (excluding the tag on ecx) +.close_to_ecx: + push eax + +.ecx_loop: + mov eax, [esi+TArray.count] + dec eax + cmp eax, ecx + je .end_close_ecx + + mov [esi+TArray.count], eax + mov eax, [esi+TArray.array + sizeof.TMDItem*eax + TMDItem.type] + call .close_tag + jmp .ecx_loop + +.end_close_ecx: + pop eax + retn + + +; closes all tags up to position ecx (includig the tag on ecx) +.close_to_ecx_inc: + push eax + +.ecx_loop2: + mov eax, [esi+TArray.count] + dec eax + cmp eax, ecx + jl .end_close_ecx + + mov [esi+TArray.count], eax + mov eax, [esi+TArray.array + sizeof.TMDItem*eax + TMDItem.type] + call .close_tag + jmp .ecx_loop2 + + +; Searches the tags stack for listitem and returns it's index in the stack. +; Arguments: +; esi - pointer to the stack array. +; Returns: +; esi - pointer to the tag stack. +; If the list item has been found: CF = 0; ecx = index in the array; +; If the list item has not been found: CF = 1 +; Modifies eax + +.search_for_li: + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + +.search_li: + dec ecx + cmp ecx, [.q_from] + jle .li_not_found + + mov eax, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + + cmp eax, tagListItem + je .li_found + + cmp eax, tagQuote + jne .search_li + +.li_not_found: + stc + retn + +.li_found: + clc + retn + + +.search_for_bq: + + mov esi, [.pStack] + mov ecx, [.q_from] + +.search_bq: + inc ecx + cmp ecx, [esi+TArray.count] + jae .bq_not_found + + cmp [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type], tagQuote + jne .search_bq + + clc + retn + +.bq_not_found: + stc + retn + + +.ul_found: + call .check_for_code_block + jc .skip_to_eol + + inc ecx + cmp ecx, [edx+TText.Length] + jae .empty_line_found + + cmp byte [edx+ecx], ' ' ; mandatory space + ja .non_empty_line_found + + add [edx+TText.GapEnd], 2 ; remove the marker. + +.search_list: + + call .search_for_li + jnc .list_found + + call .close_to_ecx + jmp .create_new_ul + + +.list_found: + + OutputValue "List found at: ", [.whspc], 10, -1 + + mov edi, [.whspc] + sub edi, [esi + TArray.array + sizeof.TMDItem*ecx + TMDItem.indent] + + call .close_to_ecx + + cmp edi, 4 + jge .create_new_ul ; create list one level of nesting up. + + mov [esi + TArray.count], ecx ; close the current listitem. + call .close_tag + + cmp edi, -4 + jg .create_new_li + + dec ecx + + mov eax, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] ; eax should be tagUL or tagOL and nothing else! + mov [esi+TArray.count], ecx + call .close_tag ; close the list as well. (can be UL or OL!) + + jmp .search_list ; and then search back for the list on the previous level. + + +.create_new_ul: + + mov eax, tagUL + call .open_tag + +.create_new_li: + OutputValue "List item created on:", [.whspc], 10, -1 + + mov eax, tagListItem + call .open_tag + jmp .loop ; after creating list items, the whitespace for the current line should not be reset. + + +.check_for_code_block: + + mov esi, [.pStack] + mov eax, [esi+TArray.count] + dec eax + js .not_a_code_block + + cmp [esi+TArray.array + sizeof.TMDItem*eax + TMDItem.type], tagCode + jne .not_a_code_block + +; there is open code block + cmp [.whspc], 4 + jb .close_code_block + + stc + retn + +.close_code_block: + + mov eax, tagCode + call .close_tag + +.not_a_code_block: + clc + retn + + +.quote_found: + + DebugMsg "Quote found" + + mov eax, [.q_from] + OutputValue "Search quote from: ", eax, 10, -1 + +.quote_search: + inc eax + mov [.q_from], eax + cmp eax, [esi+TArray.count] + jae .create_new_quote + + cmp [esi+TArray.array+sizeof.TMDItem*eax+TMDItem.type], tagQuote + je .del_marker + jmp .quote_search + +.create_new_quote: + + DebugMsg "New quote created" + + call .check_for_code_block + jc .skip_to_eol + + mov eax, tagQuote + call .open_tag + + mov eax, [esi+TArray.count] + dec eax + mov [.q_from], eax + + +.del_marker: + + DebugMsg "Delete quote marker." + inc [edx+TText.GapEnd] + + inc ecx + cmp ecx, [edx+TText.Length] + jae .empty_line_found + + cmp byte [edx+ecx], ' ' ; optional space. + jne .zerospc + + inc [edx+TText.GapEnd] + jmp .zerospc + + + + +.headers dd tagH1, tagH2, tagH3, tagH4, tagH5, tagH6 + +.header_found: + + cmp [.whspc], 4 + jae .code_block + + xor eax, eax + +.hcnt: + inc eax + inc ecx + cmp ecx, [edx+TText.Length] + jae .non_empty_line_found ; not a header? + + cmp byte [edx+ecx], '#' + je .hcnt + + cmp eax, 6 + ja .non_empty_line_found + + cmp byte [edx+ecx], ' ' + jne .non_empty_line_found ; not a header? + + stc + adc [edx+TText.GapEnd], eax + + mov [.hdr], eax + +.non_empty_line_found: + + OutputValue "Non empty line indent: ", [.whspc], 10, -1 + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .add_leaf + + mov ecx, [esi + TArray.array + sizeof.TMDItem * ecx + TMDItem.type] ; don't add paragraphs inside elements that can handle text by themselves. + test [ecx+TOneTag.flags], fLines + jnz .skip_to_eol + +.add_leaf: + call .search_for_bq + jc .quote_ok + + call .close_to_ecx_inc + +.quote_ok: + + call .search_for_li + mov eax, [.whspc] + + jc .indent_ok + sub eax, [esi + TArray.array + sizeof.TMDItem*ecx+TMDItem.indent] +.indent_ok: + + cmp eax, 4 + jge .code_block + + cmp eax, -4 + jg .para + + call .close_to_ecx_inc + + dec ecx + mov eax, [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + mov [esi+TArray.count], ecx + call .close_tag + + jmp .add_leaf + +.para: + mov eax, tagPara + mov ecx, [.hdr] + dec ecx + js .do_add_leaf + mov eax, [.headers + 4*ecx] + +.do_add_leaf: + call .open_tag + jmp .skip_to_eol + + +.empty_line_found: + + call .search_for_bq + jc .quote_ok2 + + call .close_to_ecx_inc + +.quote_ok2: + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .skip_to_eol ; the empty line is not inside code block because there is no blocks at all. + + mov eax, [esi + TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + test [eax+TOneTag.flags], fLines + jz .close_list + + mov [esi+TArray.count], ecx ; close text leaf blocks. + call .close_tag + jmp .skip_to_eol + +.close_list: + DebugMsg "Close list on second empty line." + + cmp eax, tagListItem + jne .skip_to_eol + + call .close_tag + + mov [esi+TArray.count], ecx + dec ecx + js .skip_to_eol + + mov eax, [esi + TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + cmp eax, tagUL + jne .skip_to_eol + + call .close_tag + mov [esi+TArray.count], ecx + jmp .skip_to_eol + + +.code_block: + + DebugMsg "Code block detected!" + + mov esi, [.pStack] + mov ecx, [esi+TArray.count] + dec ecx + js .add_new_code_block + + cmp [esi+TArray.array + sizeof.TMDItem*ecx + TMDItem.type], tagCode + je .skip_to_eol + +.add_new_code_block: + + mov eax, tagCode + call .open_tag + +; add [edx+TText.GapEnd], 4 ; the gap should be properly positioned here! + jmp .skip_to_eol + + +.open_new: + cmp ecx, [esi + TArray.count] ; esi = indicators list + jae .skip_to_eol + + mov eax, [esi + TArray.array + sizeof.TMDItem*ecx + TMDItem.indent] + mov [.whspc], eax + mov eax, [esi + TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + call .open_tag + + inc ecx + jmp .open_new + +; Here seems to be a good place for processing the inline formatting elements, together with the HTML encoding. + +.skip_to_eol: + + xor eax, eax + mov ecx, ebx + add ecx, [edx+TText.GapEnd] + sub ecx, [edx+TText.GapBegin] + cmp ecx, [edx+TText.Length] + jae .end_of_text + + mov al, [edx+ecx] + test al, al + jz .end_of_text + cmp al, $0d + je .eol_found + cmp al, $0a + je .eol_found + +; html encoding from here + + test al, al ; all values > 127 are unicode and should not be encoded. + js .next + + movzx eax, byte [tbl_html+eax] + test al, al + jns .next ; the same as above + + lea esi, [eax+tbl_html] ; the address of the replacement string. + lodsb + movzx ecx, al ; length + +; insert the replacement html encoding from esi + + stdcall TextSetGapSize, edx, ecx + stdcall TextMoveGap, edx, ebx + inc [edx+TText.GapEnd] ; delete the previous char. + + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + add ebx, ecx + + rep movsb + +.next: + inc ebx + jmp .skip_to_eol + + +.eol_found: + mov ah, al + xor ah, $0d xor $0a + + inc ecx + inc ebx + cmp [edx+ecx], ah + jne .start_of_line + inc ebx + jmp .start_of_line + +.end_of_text: + +; Close all not closed tags: + + stdcall TextMoveGap, edx, ebx + mov edi, [.pStack] + mov ecx, [edi+TArray.count] + +.close_all: + dec ecx + js .finalize + + mov eax, [edi + TArray.array + sizeof.TMDItem*ecx + TMDItem.type] + call .close_tag + jmp .close_all + +.finalize: + stdcall FreeMem, [.pStack] +; stdcall FreeMem, [.pIList] + + mov [esp + 4*regEDX], edx + popad + return + + +.open_tag: + push ecx esi edi + push eax eax + call .add_to_stack + pop eax + call .prefix_tag + pop eax + call .suffix_tag + pop edi esi ecx + retn + + +.suffix_tag: + lea eax, [eax+TOneTag.pOpenS] + jmp .copy_tag + +.close_tag: + lea eax, [eax+TOneTag.pClose] + +.prefix_tag: +.copy_tag: + push ecx esi edi + + mov esi, [eax] + mov ecx, [eax+4] + test esi, esi + jz .tag_copy_end + + add ebx, ecx + + stdcall TextSetGapSize, edx, ecx + mov edi, [edx+TText.GapBegin] + add edi, edx + add [edx+TText.GapBegin], ecx + + rep movsb + +.tag_copy_end: + pop edi esi ecx + retn + + +.add_to_stack: + push edx eax [.whspc] + stdcall AddArrayItems, [.pStack], 1 + mov [.pStack], edx + pop [eax+TMDItem.indent] + pop [eax + TMDItem.type] + pop edx + retn + +endp + + + + + + +endmodule + + + + + ADDED freshlib/data/named_array.asm Index: freshlib/data/named_array.asm ================================================================== --- /dev/null +++ freshlib/data/named_array.asm @@ -0,0 +1,776 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Macros and code for support of NamedArray data structure. +; This is a data array, that contains named fields and can be serialized +; into a text string/file in run-time. +; This structure is aimed to be used in the user settings and interfaces +; that need to be easy for changing by the user, by using GUI interfaces or +; human readable text config files. +; +; Target OS: Any +; +; Dependencies: StrLib, GUI library. +; +;_________________________________________________________________________________________ + + +struct TMetaHeader + .pData dd ? ; pointer to the NamedArray data fields. + .length dd ? ; total length of the NamedArray structure: fields+static data+meta data. + .count dd ? ; count of the TMetaFields following. +ends + +struct TMetaField + .pName dd ? + .type dw ? + .len dw ? ; length of the field in dwords + .offset dd ? ; offset of the field, relative to the start of the array. +ends + + +; +; The NamedArray is a type of structure that contains +; the fields names together with the field values. +; This way, the values of the array can be write to +; text files and then restored in runtime, based not +; on the fields offsets (that can differ) but based on +; field names. +; + + +___natNUM = 0 ; NUM, Stored as decimal, signed. +___natHEX = 1 ; HEX, Stored as hex, unsigned. +___natTXT = 2 ; TXT, Stored as string. Needs postprocessing. +___natFONT = 3 ; FONT, Stored as multivalue: face, size, flags, etc. +___natPNG = 4 ; PNG, Stored as a hex array. Need postprocessing. +___natFILE = 5 ; FILE, Stored as a hex array. + + +macro NamedArray lbl, [name, type, value] { +common + local ..fake_lbl + + label ..fake_lbl dword + label lbl dword + +; data fields + +forward + local ..len, ..fake_name + + ..len = 0 + + label ..fake_name dword + + if used lbl#.#name | (defined options.WholeTheme & options.WholeTheme) + label lbl#.#name dword + irp val, value \{ + + ..len = ..len + 1 + + if (type eq NUM)|(type eq HEX) + dd val + else + if type eq TXT + if val eqtype 1 + dd val + else + dd 0 ; will be changed later in the macro + end if + else + if (type eq FONT) | (type eq PNG) + dd 0 ; will be changed later in the macro. + dd 0 + else + if type eq FILE + dd 0 ; pointer to data + else + Error! Unknown `type type. + end if + end if + end if + end if + \} + end if + +; data for the strings, images, files, etc. +forward +local ..index + + ..index = 0 + + irp val, value \{ + \local ..dta, ..len + + if used lbl\#.\#name | (defined options.WholeTheme & options.WholeTheme) + if type eq TXT + if ~ val eqtype 1 + ..dta db val + db 0 + end if + end if + + if type eq FONT + match face : size : weight : flags, val \\{ ; For the Linux port, this structure is enough and not need FontCreate call. + \\local ..font_face + + ..dta dd ..font_face ; font face string + dd size ; NUM + dd weight ; NUM + dd flags ; HEX + + ..font_face db face, 0 + \\} + + ..index = ..index + 4 + end if + + if type eq PNG + dd ..len + ..dta file val + ..len = $ - ..dta + + ..index = ..index + 4 + end if + + if type eq FILE + dd ..len + ..dta file val + ..len = $ - ..dta + end if + + if defined ..dta + store dword ..dta at ..fake_name + ..index + end if + end if + + ..index = ..index + 4 + \} + +; Header of the meta data. +common + local ..cnt, ..total, ..fake_meta + ..cnt = 0 + + if used lbl#.#meta | (defined options.WholeTheme & options.WholeTheme) + + label lbl#.#meta dword + label ..fake_meta dword + + dd ..fake_lbl + dd lbl#.#size + dd ..total + +; metadata +forward + local ..namestr + +; array with the fields names and offsets. + if defined lbl#.#name + + dd ..namestr + dw ___nat#type + dw ..len ; dwords + dd ..fake_name - ..fake_lbl + + ..cnt = ..cnt + 1 + + end if + +; field names +forward + + if used ..namestr | (defined options.WholeTheme & options.WholeTheme) + ..namestr db `name, 0 + end if + +; Initialization code +common + end if + + if used lbl#.#Init | (defined options.WholeTheme & options.WholeTheme) + lbl#.#Init: + +forward + +local ..index + + ..index = 0 + + irp val, value \{ + if used lbl\#.\#name | (defined options.WholeTheme & options.WholeTheme) + if type eq FONT + mov eax, [..fake_name+..index+4] + stdcall FontCreate, [eax+__TFont.hFontFace], [eax+__TFont.height], [eax+__TFont.weight], [eax+__TFont.flags] + mov [..fake_name+..index], eax + + ..index = ..index + 4 + end if + + if (type eq PNG) + mov eax, [..fake_name+..index+4] + stdcall CreateImagePNG, eax, [eax-4] + mov [..fake_name+..index], eax + + ..index = ..index + 4 + end if + end if + + ..index = ..index + 4 + \} + +common + retn + end if + +; Finalization code +common + if used lbl#.#Finalize | (defined options.WholeTheme & options.WholeTheme) + lbl#.#Finalize: + +forward + +local ..index + + ..index = 0 + + irp val, value \{ + if used lbl\#.\#name | (defined options.WholeTheme & options.WholeTheme) + if type eq FONT + stdcall __metaFontDestroy, ..fake_name+..index + ..index = ..index + 4 + end if + + if (type eq PNG) + stdcall DestroyImage, [..fake_name+..index] + ..index = ..index + 4 + end if + end if + + ..index = ..index + 4 + \} + +common + retn + end if + +common + lbl#.#size = $ - ..fake_lbl + + ..total = ..cnt +} + + + +proc __metaFontDestroy, .pFontRec +begin + push eax + + mov eax, [.pFontRec] + stdcall FontDestroy, [eax] ; the font handle. + mov eax, [eax+4] + stdcall StrDel, [eax+__TFont.hFontFace] + + pop eax + return +endp + + + +; Serializes the NamedArray to a string. +; .pMeta - poitner to the meta data of the named array structure. + +proc NamedArrayToString, .pMeta +.array dd ? +.data2string dd ? +.datalen dd ? +begin + pushad + + mov esi, [.pMeta] + stdcall StrNew + mov edi, eax + + lodsd + mov [.array], eax + + lodsd ; TMetaHeader.length + + lodsd + mov ecx, eax ; count of the meta records. + +.loop: + dec ecx + js .end_loop + + lodsd ; pointer to the field name. + + stdcall StrCat, edi, eax + stdcall StrCharCat, edi, " = " + + lodsw ; data type + movzx eax, ax + push [.data_handlers+4*eax] + push [.data_len+4*eax] + + pop [.datalen] + pop [.data2string] + + lodsw + movzx edx, ax ; number of sub values + + lodsd ; offset, relative to [.array] + mov ebx, eax + add ebx, [.array] ; pointer to the values + +.loop2: + dec edx + js .end_loop2 + + stdcall [.data2string], ebx + push eax + + stdcall StrCat, edi, eax + stdcall StrDel ; from the stack + + add ebx, [.datalen] + + test edx, edx + jz .loop2 + + stdcall StrCharCat, edi, ", " + jmp .loop2 + +.end_loop2: + stdcall StrCharCat, edi, $0a0d + jmp .loop + +.end_loop: + mov [esp+regEAX*4], edi + popad + return + + +.data_handlers dd __DataToNum, __DataToHex, __DataToTxt, __DataToFont, __DataToPng, __DataToFile +.data_len dd 4, 4, 4, 8, 8, 4 + +endp + + +proc __DataToNum, .pData +begin + mov eax, [.pData] + stdcall NumToStr, [eax], ntsDec or ntsSigned + return +endp + + + +proc __DataToHex, .pData +begin + mov eax, [.pData] + stdcall NumToStr, [eax], ntsHex or ntsUnsigned + stdcall StrCharInsert, eax, '$', 0 + return +endp + + + +proc __DataToTxt, .pData +begin + mov eax, [.pData] + stdcall StrDupMem, [eax] + stdcall StrSetQuotes, eax, 0 + return +endp + + + +proc __DataToFont, .pData +begin + push esi ebx + + mov esi, [.pData] + mov esi, [esi+4] + + stdcall StrDup, [esi+__TFont.hFontFace] ; face name + stdcall StrSetQuotes, eax, 0 + mov ebx, eax + + stdcall StrCharCat, ebx, " : " + + stdcall NumToStr, [esi+__TFont.height], ntsDec or ntsUnsigned ; size + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + stdcall StrCharCat, ebx, " : " + + stdcall NumToStr, [esi+__TFont.weight], ntsDec or ntsUnsigned ; weight + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + stdcall StrCharCat, ebx, " : $" + + stdcall NumToStr, [esi+__TFont.flags], ntsHex or ntsUnsigned ; flags + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + mov eax, ebx + + pop ebx esi + return +endp + + + +proc __DataToPng, .pData +begin + pushad + + mov esi, [.pData] + mov esi, [esi+4] ; pointer to the compressed file. + mov ecx, [esi-4] ; length + jmp __DataToFile.convert_file +endp + + + +proc __DataToFile, .pData +begin + pushad + + mov esi, [.pData] + mov esi, [esi] ; pointer to the compressed file. + mov ecx, [esi-4] ; length + +.convert_file: + stdcall NumToStr, ecx, ntsDec or ntsUnsigned + mov ebx, eax + + stdcall StrCharCat, ebx, ":" + + stdcall EncodeBase64, esi, ecx + push eax + + stdcall StrCat, ebx, eax + stdcall StrDel ; from the stack + + mov [esp+regEAX*4], ebx + popad + return +endp + + +proc StringToNamedArray, .pMeta, .hString +.string2data dd ? +.free_data dd ? +.data_start dd ? +.data_end dd ? +begin + pushad + + mov esi, [.pMeta] + mov eax, [esi+TMetaHeader.pData] + mov [.data_start], eax + add eax, [esi+TMetaHeader.length] + mov [.data_end], eax + + stdcall StrSplitList, [.hString], $0a, FALSE + mov esi, eax + + xor ecx, ecx + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_loop + + stdcall StrSplitList, [esi+TArray.array+4*ecx], "=", TRUE + mov edi, eax + + cmp [edi+TArray.count], 2 + je .value_ok + +; join the strings + + mov ebx, 2 + +.join: + cmp ebx, [edi+TArray.count] + jae .value_ok + + stdcall StrCat, [edi+TArray.array+4], txt "=" + xor eax, eax + xchg eax, [edi+TArray.array+4*ebx] + stdcall StrCat, [edi+TArray.array+4], eax + stdcall StrDel, eax + + inc ebx + jmp .join + + +.value_ok: + stdcall __SearchName, [.pMeta], [edi+TArray.array] + test eax, eax + jz .free1 + + push esi ecx + + mov ebx, eax + + stdcall StrSplitList, [edi+TArray.array+4], ',', FALSE + mov edx, eax + + movzx ecx, [ebx+TMetaField.len] + cmp ecx, [edx+TArray.count] + jb .free2 ; there is no place to restore this parameter. + + movzx eax, [ebx+TMetaField.type] + push [.data_handlers+4*eax] + push [.free_handlers+4*eax] + + pop [.free_data] + pop [.string2data] + + mov esi, [ebx+TMetaField.offset] + add esi, [.data_start] ; pointer to the data field. + + xor ecx, ecx + +.loop2: + cmp ecx, [edx+TArray.count] + jae .free2 + + call [.free_data] + stdcall [.string2data], [edx+TArray.array+4*ecx] + + inc ecx + jmp .loop2 + + +.free2: + stdcall ListFree, edx, StrDel + + pop ecx esi + +.free1: + stdcall ListFree, edi, StrDel + +.next_line: + inc ecx + jmp .loop + +.end_loop: + stdcall ListFree, esi, StrDel + popad + return + +.data_handlers dd __NumToData, __NumToData, __TxtToData, __FontToData, __PngToData, __FileToData +.free_handlers dd .end_free, .end_free, .free_txt, .free_font, .free_png, .free_file + + +.check_ptr: + test eax, eax + jz .out + + cmp eax, [.data_start] + jb .out + cmp eax, [.data_end] + ja .out +;in + stc + retn + +.out: + clc + retn + +.free_txt: + stdcall StrDel, [esi] + retn + +.free_font: + cmp dword [esi], 0 + je .end_free + + stdcall FontDestroy, [esi] + mov eax, [esi+4] + call .check_ptr + jnc .end_free ; + + stdcall StrDel, [eax+__TFont.hFontFace] + mov [eax+__TFont.hFontFace], 0 + retn + +.free_png: + stdcall DestroyImage, [esi] + mov eax, [esi+4] + +.free_ptr: + sub eax, 4 + call .check_ptr + jc .end_free ; don't free structure internal memory + + stdcall FreeMem, eax + +.end_free: + retn + + +.free_file: + mov eax, [esi] + jmp .free_ptr + +endp + + + + +proc __NumToData, .hString +begin + stdcall StrToNumEx, [.hString] + mov [esi], eax + add esi, 4 + return +endp + + +proc __TxtToData, .hString +begin + stdcall StrDup, [.hString] + stdcall StrClipQuotes, eax + mov [esi], eax + add esi, 4 + return +endp + + + +proc __FontToData, .hString +begin + push ebx ecx edx edi + + xor eax, eax + mov [esi], eax + + mov edi, [esi+4] ; pointer to the font parameters. + + stdcall StrSplitList, [.hString], ":", FALSE + mov edx, eax + + cmp [edx+TArray.count], 4 + jne .finish + + stdcall StrClipQuotes, [edx+TArray.array] + stdcall StrDup, [edx+TArray.array] + + xchg eax, [edi+__TFont.hFontFace] + stdcall StrDel, eax + + stdcall StrToNumEx, [edx+TArray.array+4] ; size + mov [edi+__TFont.height], eax + mov ebx, eax + + stdcall StrToNumEx, [edx+TArray.array+8] ; weight + mov [edi+__TFont.weight], eax + mov ecx, eax + + stdcall StrToNumEx, [edx+TArray.array+12] ; flags + mov [edi+__TFont.flags], eax + mov edi, eax + + stdcall StrPtr, [edx+TArray.array] + stdcall FontCreate, eax, ebx, ecx, edi + + stdcall ListFree, edx, StrDel + + mov [esi], eax + add esi, 8 + +.finish: + pop edi edx ecx ebx + return +endp + + + +proc __PngToData, .hString +begin + push edx + + stdcall StrSplitList, [.hString], ":", FALSE + mov edx, eax + + cmp [edx+TArray.count], 2 + jne .finish + + stdcall DecodeBase64, [edx+TArray.array+4] + mov [esi+4], eax + + stdcall CreateImagePNG, eax, [eax-4] + mov [esi], eax + +.finish: + stdcall ListFree, edx, StrDel + add esi, 8 + pop edx + return +endp + + + +proc __FileToData, .hString +begin + push edx + + stdcall StrSplitList, [.hString], ":", FALSE + mov edx, eax + + cmp [edx+TArray.count], 2 + jne .finish + + stdcall DecodeBase64, [edx+TArray.array+4] + mov [esi], eax + +.finish: + stdcall ListFree, edx, StrDel + add esi, 4 + pop edx + return +endp + + + +; returns a pointer to the parameter description block: name, count, offset. + +proc __SearchName, .pMeta, .hName +begin + push esi ecx + + mov esi, [.pMeta] + + mov ecx, [esi+TMetaHeader.count] + add esi, sizeof.TMetaHeader + +.search: + dec ecx + js .not_found + + stdcall StrCompCase, [esi+TMetaField.pName], [.hName] + jc .found + + add esi, sizeof.TMetaField + jmp .search + +.not_found: + xor esi, esi + +.found: + mov eax, esi + pop ecx esi + return +endp + + ADDED freshlib/data/random.asm Index: freshlib/data/random.asm ================================================================== --- /dev/null +++ freshlib/data/random.asm @@ -0,0 +1,98 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent part of different random number generators. +; +; Target OS: Any +; +; Dependencies: memory.asm, strlib.asm +; +; Notes: +; +;_________________________________________________________________________________________ + +module "Random library" + + +; Cryptographically strong random generator. Possibly slow. OS dependent implementation. +; Returns: +; eax - pointer to memory block of random bytes. + +interface GetRandomBytes, .count + + + + +proc GetRandomString, .size +begin + pushad + + mov eax, [.size] + shr eax, 1 + adc eax, 0 + jz .error + + stdcall GetRandomBytes, eax + jc .error + + mov esi, eax + mov ebx, eax + + stdcall StrNew + mov [esp+4*regEAX], eax + + stdcall StrSetCapacity, eax, [.size] + mov edi, eax + mov ecx, [.size] + mov [edi+string.len], ecx + + xor eax, eax + +.loop: + lodsb + mov dl, al + and al, $0f + shr dl, 4 + + cmp al,$0a + sbb al,$69 + das + + stosb + + dec ecx + jz .string_ok + + mov al, dl + cmp al,$0a + sbb al,$69 + das + + stosb + dec ecx + jnz .loop + +.string_ok: + xor eax, eax + stosd + stdcall FreeMem, ebx + + clc + popad + return + +.error: + stc + popad + return +endp + + + +include '%TargetOS%/random.asm' + + + +endmodule ADDED freshlib/data/sha1.asm Index: freshlib/data/sha1.asm ================================================================== --- /dev/null +++ freshlib/data/sha1.asm @@ -0,0 +1,255 @@ + + + +; Computes the SHA-1 hash for the data in [.pData] with length in [.len] +; The memory buffer in [.pData] must have size higher than [.len] and multiply of 64 bytes (512 bits) +; +; + +proc DataSHA1, .pData, .len +.hash rd 5 ; the h[0]..h[4] accumulators +.abcde rd 5 ; the chunk hashes +.words rd 80 ; the 80 dword chunks. +begin + pushad + +; init the accumulators + mov ecx, 4 + +.init_acc: + mov eax, [.sha1_h + 4*ecx] + mov [.hash+4*ecx], eax + mov [.abcde+4*ecx], eax + dec ecx + jns .init_acc + +; pad the data + + mov edx, [.len] + + mov edi, [.pData] + add edi, edx + lea ecx, [edx+1] + mov al, $80 + stosb + + add edx, $40 + and edx, not $3f + sub ecx, edx + neg ecx + + sub ecx, 8 + jge @f + add ecx, $40 + add edx, $40 +@@: + xor eax, eax + rep stosb + stosd + + mov eax, [.len] + shl eax, 3 ; in bits!!! + bswap eax + stosd + +; edx contains the padded length of the block. multiply of 64 + + shr edx, 2 ; the size in dwords + mov esi, [.pData] + +.chunk_loop: + + xor ebx, ebx + +.get16dw: + lodsd + bswap eax + mov [.words + 4*ebx], eax + + inc ebx + cmp ebx, 16 + jne .get16dw + +.fill80: + mov eax, [.words + 4*ebx - 3*4] + xor eax, [.words + 4*ebx - 8*4] + xor eax, [.words + 4*ebx - 14*4] + xor eax, [.words + 4*ebx - 16*4] + rol eax, 1 + mov [.words + 4*ebx], eax + + inc ebx + cmp ebx, 80 + jne .fill80 + +; process one chunk. + + xor ebx, ebx + +.process0_19: + mov ecx, [.abcde + 1*4] ; b + mov eax, ecx + not ecx ; not b + + and eax, [.abcde + 2*4] ; c + and ecx, [.abcde + 3*4] ; d + or ecx, eax ; f + + mov eax, [.abcde + 0*4] + rol eax, 5 ; a rol 5 + lea eax, [eax + ecx + $5A827999]; f + k + add eax, [.abcde + 4*4] ; e + add eax, [.words + 4*ebx] ; temp + + mov ecx, [.abcde + 1*4] + rol ecx, 30 + push eax [.abcde + 0*4] ecx [.abcde + 2*4] [.abcde + 3*4] + pop [.abcde + 4*4] [.abcde + 3*4] [.abcde + 2*4] [.abcde + 1*4] [.abcde + 0*4] + + inc ebx + cmp ebx, 20 + jne .process0_19 + +.process20_39: + + mov ecx, [.abcde + 1*4] + xor ecx, [.abcde + 2*4] + xor ecx, [.abcde + 3*4] ; f + + mov eax, [.abcde + 0*4] + rol eax, 5 + lea eax, [eax + ecx + $6ED9EBA1] + add eax, [.abcde + 4*4] + add eax, [.words + 4*ebx] ; temp + + mov ecx, [.abcde + 1*4] + rol ecx, 30 + push eax [.abcde + 0*4] ecx [.abcde + 2*4] [.abcde + 3*4] + pop [.abcde + 4*4] [.abcde + 3*4] [.abcde + 2*4] [.abcde + 1*4] [.abcde + 0*4] + + inc ebx + cmp ebx, 40 + jne .process20_39 + + +.process40_59: + + mov ecx, [.abcde+1*4] ; b + mov eax, ecx ; b + mov edi, [.abcde+2*4] ; c + + and ecx, edi ; b and c + and eax, [.abcde+3*4] ; b and d + and edi, [.abcde+3*4] ; c and d + + or ecx, eax + or ecx, edi ; f + + mov eax, [.abcde+0*4] + rol eax, 5 + lea eax, [eax+ecx+$8F1BBCDC] + add eax, [.abcde+4*4] + add eax, [.words+4*ebx] ; temp + + mov ecx, [.abcde+1*4] + rol ecx, 30 + push eax [.abcde+0*4] ecx [.abcde+2*4] [.abcde+3*4] + pop [.abcde+4*4] [.abcde+3*4] [.abcde+2*4] [.abcde+1*4] [.abcde+0*4] + + inc ebx + cmp ebx, 60 + jne .process40_59 + +.process60_79: + mov ecx, [.abcde+1*4] + xor ecx, [.abcde+2*4] + xor ecx, [.abcde+3*4] ; f + + mov eax, [.abcde+0*4] + rol eax, 5 + lea eax, [eax+ecx+$CA62C1D6] + add eax, [.abcde+4*4] + add eax, [.words+4*ebx] ; temp + + mov ecx, [.abcde+1*4] + rol ecx, 30 + push eax [.abcde+0*4] ecx [.abcde+2*4] [.abcde+3*4] + pop [.abcde+4*4] [.abcde+3*4] [.abcde+2*4] [.abcde+1*4] [.abcde+0*4] + + inc ebx + cmp ebx, 80 + jne .process60_79 + +; the word array is processed + + mov ecx, 4 + +.add_loop: + mov eax, [.abcde+4*ecx] + add eax, [.hash+4*ecx] + mov [.abcde+4*ecx], eax + mov [.hash+4*ecx], eax + dec ecx + jns .add_loop + + sub edx, 16 + jnz .chunk_loop + + + stdcall GetMem, 20 + mov edi, eax + + mov eax, [.hash+0*4] + mov ebx, [.hash+1*4] + mov ecx, [.hash+2*4] + mov edx, [.hash+3*4] + mov esi, [.hash+4*4] + + bswap eax + bswap ebx + bswap ecx + bswap edx + bswap esi + + mov [edi], eax + mov [edi+4], ebx + mov [edi+8], ecx + mov [edi+12], edx + mov [edi+16], esi + + mov [esp+4*regEAX], edi + popad + return + +.sha1_h dd 0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0 + +endp + + + +proc StrSHA1, .pSha1 +begin + push ebx ecx esi + + mov esi, [.pSha1] + stdcall StrNew + mov ebx, eax + mov ecx, 20 + +.loop: + movzx eax, byte [esi] + inc esi + + stdcall NumToStr, eax, ntsHex or ntsFixedWidth or ntsUnsigned + 2 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + dec ecx + jnz .loop + + mov eax, ebx + + pop esi ecx ebx + return +endp + + Index: freshlib/data/strlib.asm ================================================================== --- freshlib/data/strlib.asm +++ freshlib/data/strlib.asm @@ -1,156 +1,33 @@ -;___| StrLib |________________________________________________________________________ -; -; FASM dynamic string library. -; -; (c)2003, 2010 John Found -; (c)2003 Mateusz Tymek (aka decard) -; (c)2003 Victor Loh (aka roticv) -; -; You can use and modify this library, as long as modifyed -; versions are clearly marked (author of the modification -; and what is changed), copyright notice is not -; removed and the library remains free. -; Copyright for the library concept and parts written by -; me, remains to me, John Found -; Copyright for the modifyed/new parts remains to their -; authors. -; -; Versions: -; dd.mm.yyyy version author of modification -; - description -;_____________________________________________________________________________________ -; -; 09.07.2003 v1.0 John Found -; - the first public version. -; 15.07.2003 v1.0.1 John Found -; - minor bug with string table expand. Look in NewStr -; 17.09.2003 v1.1.0 Mateusz Tymek -; - made all functions stdcall -; - added StrCat and StrPos, and modified StrLen -; 25.09.2003 v1.1.2 Mateusz Tymek, Victor Loh -; - added StrLCase, StrUCase, StrCopyMMX, StrInsert -; - added new NumToStr, old version renamed to _NumStr -; - some small optimizations & bugfixes -; 26.09.2003 v1.1.3 JohnFound -; - some bug fixes and style corections. -; 29.09.2003 v1.1.4 John Found, Mateusz Tymek -; - library rewtiten to use John Found's stdcall macros -; - added two new low-level NumToStr routines: NumToStrF and NumToStrUF -; - NumToStr rewriten -; - some small bugfixes & modifications -; - added StrExtract -; 01.11.2003 v1.1.4.1 Mateusz Tymek -; - preserved ecx in StrDel (it was destroyed by API calls) -; 21.11.2003 v1.1.5 John Found -; - StrComp splitted to 2 functions: StrCompCase and StrCompNoCase -; IMPORTANT: inversed return result: CARRY = 1 mean strings equal. -; This is because the using is more natural this way: -; stdcall StrCompCase, str1, str2 -; jc .equal -; 27.11.2003 v1.2 John Found -; - Added function StrHash, that produces 32bit hash value of the string. -; The hash function is based on FASM hash function and have to be compatible. -; 03.12.2003 v1.2.3 Mateusz Tymek -; - Added StrCharPos and StrToNum -; 13.12.2003 v1.2.4 Materusz Tymek -; - added StrCharCat and StrInsertChar -; 04.01.2005 v1.2.5 John Found -; - Fixed bug in StrSetLength -; - Added function StrURLEncode -; -; xx.12.2010 v2.0 John Found -; - StrLib was almost completely rewrote in order to be integrated in FreshLib. -; - The source code was changed in order to allow more than 65536 strings -; in the list. -; - Introduced new format for strings with precomputed length field. -; - Most of the procedures was optimized for speed. -; - StrLib is fully portable now. Uses memory.asm for memory allocations -; and arrays.asm to manage the list of strings. -; - NumToStr is changed to always create new string. Now it have only 2 -; arguments: .number and .flags -;_____________________________________________________________________________________ - -;___| How to use it |_________________________________________________________________ -; -; 1. StrLib is part of FreshLib - portable library for Win32 and Linux. -; 2. StrLib needs some other parts of FreshLib: -; - "macros/allmacros.inc" -; - "data/memory.asm" -; - "data/arrays.asm" -; These files have to be included before StrLib.asm itself. -; Here is an example of the include statements needed: -; -; include '%lib%/macros/allmacros.inc' -; include '%lib%/system/memory.asm' -; include '%lib%/data/arrays.asm' -; include '%lib%/data/strlib.asm' -; -; 3. You should call "InitStrings" procedure, before using any procedure -; from StrLib. -; The best way to do it, is to use macro "InitializeAll", that will -; automatically initialize all libraries, that needs initialization. -; 4. You should call "FreeStrings" when don't need StrLib anymore. -; Again, the best way to do this is to use macro "FinalizeAll", just before -; termination of your application. -; -; NOTE: You can use StrLib for every OS you want. You only have to provide suitable -; library for memory.asm, because it is the only OS dependent library needed. -; FreshLib itself contains memory.asm for Win32 and Linux. -;_____________________________________________________________________________________ - -;___|Internals|_______________________________________________________________________ -; -; New format for string handles: -; -; As a common between Win32 and Linux, the handle have set bits 30 and 31. -; That means all handles are above $C0000000. -; To check whether some 32bit integer is a handle or direct pointer, the library uses: -; -; xor [handle], $c0000000 -; test [handle], $c0000000 -; jnz .pointer -; -; -; New format for dynamic strings: -; -; The string format supports additional fields, besides string data in order to -; allow fast processing. Here is the format: -; -;+-----------+--------+--------+--------------------------------------------------------------------------------+ -;| Name | Offset | Len | Description | -;+-----------+--------+--------+--------------------------------------------------------------------------------+ -;| capacity | -8 |dword | Capacity of the string - it is the maximal possible length that | -;| | | | the string can accommodate without reallocation of the memory. | -;| | | | Note: the capaciry is related only to bytes as elements of the string. | -;| | | | the additional fields (capacity, len and zero terminators) are not included | -;| | | | in this number. | -;+-----------+--------+--------+--------------------------------------------------------------------------------+ -;| len | -4 |dword | Length - the actuall length of the string in bytes. | -;+-----------+--------+--------+--------------------------------------------------------------------------------+ -;| | 0 |N bytes | The string data. | -;+-----------+--------+--------+--------------------------------------------------------------------------------+ -;| | N | 1..4 | NULL termination characters. At the end of the string NULL characters | -;| | | | are appended to align the buffer to dword. | -;| | | | The string is always terminated with at least one byte of zero. | -;+-----------+--------+--------+--------------------------------------------------------------------------------+ -; -; - -STR_MINSTRLEN = 15 ; must be N*8-1 - - -struc string { +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent string manipulation library. +; +; Target OS: Any +; +; Dependencies: memory.asm; arrays.asm +; +; Notes: +; +;_________________________________________________________________________________________ + +module "String library" + +STR_MINSTRLEN = 127 ; must be N*8-1 +STR_SEARCH_ONE_ATEMPT = 100 + + +rstruct string .capacity dd ? .len dd ? - label .data byte -} + . rb 0 +ends -virtual at -(sizeof.string) - string string - sizeof.string = $-string -end virtual +cNewLine text bNEWLINE ; NumToStr flags ntsSigned = $00000 ntsUnsigned = $10000 @@ -164,68 +41,187 @@ ntsHex = $1000 ; Global variable, storing parameters of dynamic strings list. uglobal - ptrStrTable dd ? ; StrLib strings arrray. Contains pointers to the memory allocated for strings. + if used InitStrings - flagStringFastAdd dd ? ; Flag: when TRUE, enables "Fast addition mode" where new strings are allocated - ; without searching the ptrStrTable array for empty slots. - ; This can increase allocation speed, but at the expense of more memory allocated - ; in the array and not using possibly free handles. This mode should to be used - ; carefully and set to FALSE after the end of mass allocations. + StrHandleOffs dd ? + StrHandleCnt dd ? + StrHandleEnd dd ? + + ptrStrHandleSpace dd ? + + ptrStrTable dd ? ; StrLib strings arrray. Contains pointers to the memory allocated for strings. + + if options.Threads + align 4 + StrMutex TMutex ; mutex that allows thread safety of StrLib + end if + + end if endg ; < OS independent library functions > + +STR_HANDLE_CNT = 32*1024*1024 ;************************************************************************************ ; Allocates memory for string table and allocates memory for strings. ; Start it before any work with strings. (Or better use InitializeAll macro) ; Returns 0 if failed to allocate needed memory. ;************************************************************************************ +if used ptrStrTable initialize InitStrings begin StrLib = 1 + + mov [StrHandleOffs], $c0000000 + mov [StrHandleCnt], STR_HANDLE_CNT + mov [ptrStrHandleSpace], 0 + + if TargetOS eq Linux + + mov eax, sys_personality + xor ebx, ebx + dec ebx + int $80 + + test eax, ADDR_LIMIT_3GB + jnz .space_ok + + mov eax, sys_mmap2 + xor ebx, ebx + mov ecx, STR_HANDLE_CNT ; 32M size of the address space for string handles. this memory will never be allocated. + + mov edx, PROT_NONE + mov esi, MAP_ANONYMOUS or MAP_PRIVATE + xor edi, edi + dec edi + xor ebp, ebp + int $80 + + mov [StrHandleOffs], eax + mov [ptrStrHandleSpace], eax + +.space_ok: + end if + + mov eax, [StrHandleOffs] + add eax, [StrHandleCnt] + mov [StrHandleEnd], eax + + OutputValue "String handles start from: ", [StrHandleOffs], 16, 8 + OutputValue "String handles ends on: ", [StrHandleEnd], 16, 8 + + if options.Threads + stdcall MutexCreate, 0, StrMutex + end if stdcall CreateArray, 4 jc .finish mov [ptrStrTable], eax - or [eax+TArray.lparam], -1 ; lParam is the last allocated handle number + mov [eax+TArray.lparam], 0 ; lParam is the last allocated handle number .finish: + + if options.Threads + stdcall MutexRelease, StrMutex + end if + return endp +end if ;************************************************************************************** ; Frees all memory used for strings library ; Call it before exit of the program or use FinalizeAll macro. ;************************************************************************************** +if used InitStrings + finalize FreeStrings +if defined options.DebugMode & options.DebugMode + .allocated dd ? +end if begin + DebugMsg "Strings finalizing." + + if options.Threads + stdcall WaitForMutex, StrMutex, -1 + end if + mov esi, [ptrStrTable] mov ecx, [esi+TArray.count] xor ebx,ebx + +if defined options.DebugMode & options.DebugMode + mov [.allocated], ebx +end if .freeloop: dec ecx js .endloop cmp [esi+TArray.array+4*ecx], ebx je .freeloop + +if defined options.DebugMode & options.DebugMode + inc [.allocated] + + mov eax, ecx + add eax, [StrHandleOffs] + + OutputNumber eax, 16, 8 + + stdcall FileWriteString, [STDERR], txt " >>>" + mov eax, [esi+TArray.array+4*ecx] + add eax, sizeof.string + stdcall FileWriteString, [STDERR], eax + stdcall FileWriteString, [STDERR], <txt "<<<", 13, 10> +end if stdcall FreeMem, [esi+TArray.array+4*ecx] jmp .freeloop .endloop: stdcall FreeMem, esi mov [ptrStrTable], ebx + OutputValue "Not deleted strings: ", [.allocated], 10, -1 + DebugMsg "Strings mutex destroy." + + if options.Threads + stdcall MutexDestroy, StrMutex + end if + + + if TargetOS eq Linux + + cmp [ptrStrHandleSpace], 0 + je .space_ok + + mov eax, sys_munmap + mov ebx, [StrHandleOffs] + mov ecx, [StrHandleCnt] + int $80 + + mov [StrHandleOffs], 0 + mov [ptrStrHandleSpace], 0 + +.space_ok: + + + end if + + DebugMsg "Strings finalized." return endp + +end if ;************************************************************************************** ; Returns: @@ -233,17 +229,22 @@ ; CF=1 on error - hString is handle, but is not in the table.* ;************************************************************************************** proc StrPtr, .hString begin mov eax, [.hString] + cmp eax, [StrHandleOffs] + jb .pointer + cmp eax, [StrHandleEnd] + jae .pointer - xor eax, $c0000000 - test eax, $c0000000 - jnz .pointer + if options.Threads + stdcall WaitForMutex, StrMutex, -1 + end if push ebx + sub eax, [StrHandleOffs] mov ebx, [ptrStrTable] cmp eax, [ebx+TArray.count] jae .notfound mov eax, [ebx+TArray.array+4*eax] @@ -251,101 +252,140 @@ jz .notfound add eax, sizeof.string pop ebx clc + +.finish: + if options.Threads + stdcall MutexRelease, StrMutex + end if + return .pointer: - xor eax, $c0000000 clc return .notfound: - stc pop ebx + stc + + if options.Threads + jmp .finish + else return + end if endp ;************************************************************************************** ; Creates new empty string and returns handle ; Return: handle of the new created string. ;************************************************************************************** proc StrNew begin push ecx edx esi + + if options.Threads + stdcall WaitForMutex, StrMutex, -1 + end if ; Search for first empty place. mov edx, [ptrStrTable] + mov ecx, STR_SEARCH_ONE_ATEMPT ; search only limited count of items + cmp ecx, [edx+TArray.count] + jb @f mov ecx, [edx+TArray.count] - - cmp [flagStringFastAdd], 0 - jne .notfound - +@@: mov esi,[edx+TArray.lparam] xor eax,eax .search: dec ecx js .notfound inc esi cmp esi, [edx+TArray.count] - jne @f + jb @f xor esi,esi @@: - cmp [edx+TArray.array+4*esi],eax + cmp [edx+TArray.array+4*esi], eax je .found jmp .search .notfound: + mov [edx+TArray.lparam], esi ; store the place where the search ends this time. mov esi, [edx+TArray.count] - stdcall AddArrayItem, edx + stdcall AddArrayItems, edx, 1 mov [ptrStrTable], edx .found: mov [edx+TArray.lparam], esi - stdcall GetMem, STR_MINSTRLEN + sizeof.string + 1 + stdcall GetMem, STR_MINSTRLEN + sizeof.string + 4 + 1 mov [edx+TArray.array+4*esi], eax mov [eax+sizeof.string+string.capacity], STR_MINSTRLEN mov eax, esi - or eax, $c0000000 + add eax, [StrHandleOffs] + + if options.Threads + stdcall MutexRelease, StrMutex + end if pop esi edx ecx return endp ;************************************************************************** ; Deletes the string if it is possible. +; Preserves EFLAGS. Allows .hString == 0 ;************************************************************************** proc StrDel, .hString begin - push eax ecx esi + push ecx + mov ecx, [.hString] + jecxz .end ; must be jecxz! Because StrDel preserves FLAGS! + + pushf + push eax esi + + + if options.Threads + stdcall WaitForMutex, StrMutex, -1 + end if mov esi, [ptrStrTable] - mov ecx, [.hString] - jecxz .finish - xor ecx, $c0000000 - test ecx, $c0000000 - jnz .pointer + cmp ecx, [StrHandleOffs] + jb .pointer + cmp ecx, [StrHandleEnd] + jae .pointer + sub ecx, [StrHandleOffs] cmp ecx, [esi+TArray.count] jae .finish .free: stdcall FreeMem, [esi+TArray.array+4*ecx] - mov [esi+TArray.array+4*ecx], 0 + and [esi+TArray.array+4*ecx], 0 .finish: - pop esi ecx eax + if options.Threads + stdcall MutexRelease, StrMutex + end if + + pop esi eax + popf + +.end: + pop ecx return .pointer: - xor ecx, $c0000000 + OutputValue "WARNING: StrDel on pointer: ", ecx, 16, 8 + OutputValue " call from: ", [ebp+4], 16, 8 ; search the pointer in the table. lea eax, [ecx-sizeof.string] mov ecx, [esi+TArray.count] @@ -366,10 +406,45 @@ stdcall StrNew stdcall StrCopy, eax, [.hSource] return endp + +proc StrDupMem, .ptrSource +begin + pushf + push ecx edx esi edi + cld + + mov esi, [.ptrSource] + + stdcall StrNew + mov edx, eax + + mov ecx, [.ptrSource] + +.len: + cmp byte [ecx], 0 + lea ecx, [ecx+1] + jne .len + sub ecx, esi + dec ecx + + lea eax, [ecx+4] + stdcall StrSetCapacity, edx, eax + mov edi, eax + mov [edi+string.len], ecx + + rep movsb + xor eax, eax + stosd + + mov eax, edx + pop edi esi edx ecx + popf + return +endp ;************************************************************************** ; Arguments: ; hString - handle or pointer to the string (static or dynamic) ; Returns: @@ -379,95 +454,151 @@ ; ; If pointer is passed the the procedure, it should be dword aligned and ; all bytes of the string including zero terminator to be accessed on ; qword boundary. Although, the zero terminator can be single byte zero. ; -; The performance of the procedure is high for pointers and +; The performance of the procedure is very high for pointers and ; instant for handles (the StrLib created string doesn't need any ; search, because the length is precomputed) +; The code depends on the options.DisableMMX option. If set to 1 +; regular x86 code is generated, if not set ot set to 0, MMX code is generated. +; The MMX code is faster and smaller, so it is recommended. ;************************************************************************** proc StrLen, .hString ; proc StrLen [hString] +;.__info.codesize begin - push esi - - mov esi, [ptrStrTable] mov eax, [.hString] - - xor eax, $c0000000 - test eax, $c0000000 - jnz .pointer - - cmp eax, [esi+TArray.count] - jae .error - - mov eax, [esi+TArray.array+4*eax] - test eax, eax - jz .error - - mov eax, [eax+sizeof.string+string.len] - clc - pop esi + cmp eax, [StrHandleOffs] + jb .pointer + cmp eax, [StrHandleEnd] + jae .pointer + + stdcall StrPtr, eax + jc .error + + mov eax, [eax+string.len] return .error: xor eax, eax - stc - pop esi return .pointer: - push ecx edx edi - - xor eax, $c0000000 - -; align on dword -.byte1: - test eax, 3 - jz .scan - - cmp byte [eax], 0 - je .found - - inc eax - jmp .byte1 - -.scan: - mov ecx, [eax] - mov edx, [eax+4] - - lea eax, [eax+8] - - lea esi, [ecx-$01010101] - lea edi, [edx-$01010101] - - not ecx - not edx - - and esi, ecx - and edi, edx - - and esi, $80808080 - and edi, $80808080 - - or esi, edi - jz .scan - - sub eax, 9 - -; byte 0 was found: so search by bytes. -.byteloop: - lea eax, [eax+1] - cmp byte [eax], 0 - jne .byteloop - -.found: - sub eax, [.hString] - clc - pop edi edx ecx esi - return -endp + +if defined options.DisableMMX & options.DisableMMX + +; Regular x86 implementation, optimized by Alexander Yefremov and R22 (FASM forum) + push ebx ecx edx esi edi ebp + + mov ebx, -01010101h + mov ebp, $80808080 + + ; align on dword + .byte1: + test eax, 3 + jz .start_scan + cmp byte [eax], 0 + je .found + + inc eax + + test eax, 3 + jz .start_scan + cmp byte [eax], 0 + je .found + + inc eax + + test eax, 3 + jz .start_scan + cmp byte [eax], 0 + je .found + + inc eax + + .start_scan: + lea eax, [eax-8] + + .scan: + lea eax, [eax+8] + + mov esi, [eax] + mov edi, [eax+4] + + lea ecx, [esi+ebx] + lea edx, [edi+ebx] + + not esi + not edi + + and ecx, esi + and edx, edi + + and ecx, ebp + jnz .bytesearch ; zero in the first dword + and edx, ebp + jz .scan + + lea eax, [eax+4] + mov ecx, edx + + .bytesearch: + bsf ecx, ecx + shr ecx, 3 + add eax, ecx + + .found: + pop ebp + sub eax, [.hString] + clc + pop edi esi edx ecx ebx + return + +else ; if MMX is not disabled by an explicit option. + +; MMX implementation + push ecx + + pxor mm1, mm1 + mov ecx, eax + + .byte_loop: + test eax, $07 + jz .inner + + cmp byte [eax], 0 + je .finish + + inc eax + jmp .byte_loop + + .inner: + movq mm0, [ecx] + add ecx, 8 + + pcmpeqb mm0, mm1 + packsswb mm0, mm0 + + movd eax, mm0 + test eax, eax + jz .inner + + bsf eax, eax + shr eax, 2 + lea eax, [ecx+eax-8] + + .finish: + sub eax, [.hString] + + emms + pop ecx + return +end if + +endp + @@ -494,82 +625,103 @@ ; If the hString is smaller than length -> set the length of string to length ; returns pointer to the new (old) string ; ; Arguments: ; hString - string handle. /not pointer!/ -; length - new string length. +; capacity - new string length. ; Returns: ; eax: pointer to the string. ; CF: error flag. If 1 the pointer to the string is returned, but ; the capacity is not changed. ;*************************************************************************** proc StrSetCapacity, .hString, .capacity begin - push ebx ecx esi - mov eax, [.hString] - xor eax, $c0000000 - test eax, $c0000000 - jnz .pointer + cmp eax, [StrHandleOffs] + jb .error0 + cmp eax, [StrHandleEnd] + jae .error0 + + push ebx ecx esi mov esi, eax + sub esi, [StrHandleOffs] + + if options.Threads + stdcall WaitForMutex, StrMutex, -1 + end if mov ebx, [ptrStrTable] cmp esi, [ebx+TArray.count] jae .pointer mov eax, [ebx+TArray.array+4*esi] ; pointer to the string. mov ecx, [.capacity] - + cmp ecx, STR_MINSTRLEN + jge @f + mov ecx, STR_MINSTRLEN +@@: cmp [eax+sizeof.string+string.capacity], ecx jae .sizeok - add ecx, sizeof.string+8 + shl ecx, 1 + add ecx, sizeof.string+4+7 and cl, $f8 ; align the size to 8 bytes stdcall ResizeMem, eax, ecx jc .error - lea ecx, [ecx-(sizeof.string+1)] + lea ecx, [ecx-(sizeof.string+4)] mov [ebx+TArray.array+4*esi], eax mov [eax+sizeof.string+string.capacity], ecx .sizeok: add eax, sizeof.string + clc + +.finish: + + if options.Threads + stdcall MutexRelease, StrMutex + end if + pop esi ecx ebx return .error: + int3 add eax, sizeof.string - stc - pop esi ecx ebx - return .pointer: - xor eax, $c0000000 stc - pop esi ecx ebx + jmp .finish + +.error0: + stc return endp ;*************************************************************************************** -; Copyes source to destination string. +; Copies source to destination string. ; Arguments: -; source - destination string (handle only) -; dest - source string (handle or pointer) -; Returs: nothing +; dest - destination string (handle only) +; source - source string (handle or pointer) +; Returns: nothing ;*************************************************************************************** proc StrCopy, .dest, .source begin push esi edi eax ecx stdcall StrLen, [.source] mov ecx, eax + stdcall StrSetCapacity, [.dest], ecx mov edi, eax + jc .finish + stdcall StrPtr, [.source] mov esi, eax mov [edi+string.len], ecx @@ -578,14 +730,356 @@ shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb + clc +.finish: pop ecx eax edi esi return endp + + + +proc CharLCase, .char +begin + mov eax, [.char] + cmp eax, 'A' + jb .end + cmp eax, 'Z' + ja .end + + add eax, 'a'-'A' +.end: + return +endp + + +;*************************************************************************************** +; proc StrMatchPattern +; +; Provides pattern matching of the [.pattern] in the [.string]. +; Returns CF=1 if the pattern MATCH +; CF=0 if the pattern DOES NOT MATCH +; +; In the pattern, "*" char match 0 or more characters and "?" char match +; exactly 1 character. If the characters "*" and "?" have to be directly matched +; they can be escaped with "\". "\\" escapes the backslash itself. If the backslash +; is located at the end of the pattern, it is treated as a normal character. +; +; If a character between "@" and "_" is escaped, a controll code is generated equal +; to the ascii code of the char - $40. +; +;*************************************************************************************** +; StrMatchPattern.__info.codesize + +proc StrMatchPattern, .pattern, .string +begin + pushad + + stdcall StrPtr, [.pattern] + mov esi, eax + + stdcall StrPtr, [.string] + mov edi, eax + + xor ecx, ecx + +.main_loop: + mov ah, [edi] ; from the string + inc edi + +.main_loop2: + mov al, [esi] ; from the pattern + inc esi + + test al, al + jz .eo_pattern + + cmp al, '*' + jne .not_star + + mov ecx, esi ; the address after the star. + mov ebx, edi + jmp .main_loop2 + +.not_star: + test ah, ah + jz .not_match ; the string ended, but the pattern not. + + cmp al, '?' + je .main_loop + + cmp al, '\' + jne .compare + + cmp byte [esi], 0 + je .compare + + mov al, [esi] + inc esi + + cmp al, $40 + jb .compare + cmp al, $60 + jae .compare + + sub al, $40 ; the control codes escaped. + +.compare: + cmp al, ah + je .main_loop + + jecxz .not_match + +.char_ne: + mov edi, ebx + mov esi, ecx + inc ebx + jmp .main_loop + +.eo_pattern: + test ah, ah + jz .match + + jecxz .not_match + + cmp byte [ecx], 0 + jne .char_ne + +.match: + stc + popad + return + +.not_match: + stdcall StrPtr, [.string] + sub edi, eax + dec edi + mov [esp+4*regEAX], edi ; where not matches... + + clc + popad + return +endp + + + +;*************************************************************************************** +; proc StrMatchPattern +; +; Provides pattern matching of the [.pattern] in the [.string]. +; Returns CF=1 if the pattern MATCH +; CF=0 if the pattern DOES NOT MATCH +; +; In the pattern, "*" char match 0 or more characters and "?" char match +; exactly 1 character. If the characters "*" and "?" have to be directly matched +; they can be escaped with "\". "\\" escapes the backslash itself. If the backslash +; is located at the end of the pattern, it is treated as a normal character. +; +; If a character between "@" and "_" is escaped, a controll code is generated equal +; to the ascii code of the char - $40. +; +;*************************************************************************************** +; StrMatchPattern.__info.codesize + +proc StrMatchPatternNoCase, .pattern, .string +begin + pushad + + stdcall StrPtr, [.pattern] + mov esi, eax + + stdcall StrPtr, [.string] + mov edi, eax + + xor ecx, ecx + +.main_loop: + mov ah, [edi] ; from the string + inc edi + +.main_loop2: + mov al, [esi] ; from the pattern + inc esi + + test al, al + jz .eo_pattern + + cmp al, '*' + jne .not_star + + mov ecx, esi ; the address after the star. + mov ebx, edi + jmp .main_loop2 + +.not_star: + test ah, ah + jz .not_match ; the string ended, but the pattern not. + + cmp al, '?' + je .main_loop + + cmp al, '\' + jne .compare + + cmp byte [esi], 0 + je .compare + + mov al, [esi] + inc esi + + cmp al, $40 + jb .compare + cmp al, $60 + jae .compare + + sub al, $40 ; the control codes escaped. + +.compare: + cmp al, 'A' + jb .compare2 + cmp al, 'Z' + ja .compare2 + + or al, $20 + +.compare2: + cmp ah, 'A' + jb .compare3 + cmp ah, 'Z' + ja .compare3 + + or ah, $20 + +.compare3: + cmp al, ah + je .main_loop + + jecxz .not_match + +.char_ne: + mov edi, ebx + mov esi, ecx + inc ebx + jmp .main_loop + +.eo_pattern: + test ah, ah + jz .match + + jecxz .not_match + + cmp byte [ecx], 0 + jne .char_ne + +.match: + stc + popad + return + +.not_match: + stdcall StrPtr, [.string] + sub edi, eax + dec edi + mov [esp+4*regEAX], edi ; where not matches... + + clc + popad + return +endp + + + +; Use this procedure as callback for SortArray procedure for arrays of strings. + +proc StrCompSort, .ppStr1, .ppStr2, .fCaseSensitive +begin + push eax edx + + mov eax, [.ppStr1] + mov edx, [.ppStr2] + + stdcall StrCompSort2, [eax], [edx], [.fCaseSensitive] + shl eax, 1 + + pop edx eax + return +endp + + +;*************************************************************************************** +; Compares two strings for greater, equal or less. +; Returns eax = 0 if the strings are equal. +; eax = 1 if .str1 is grater than .str2 +; eax = -1 if .str1 is less than .str2 +;*************************************************************************************** +proc StrCompSort2, .str1, .str2, .fCaseSensitive +begin + push ebx ecx edx esi edi + + mov eax, [.str1] + mov ecx, [.str2] + + cmp eax, ecx + je .equal + + stdcall StrPtr, [.str1] + mov esi,eax + stdcall StrPtr, [.str2] + mov edi,eax + + +.cmp_loop: + stdcall DecodeUtf8, [esi] + add esi, edx + cmp [.fCaseSensitive], 0 + jne @f + stdcall CharLCase, eax +@@: + mov ecx, eax + + stdcall DecodeUtf8, [edi] + add edi, edx + cmp [.fCaseSensitive], 0 + jne @f + stdcall CharLCase, eax +@@: + test ecx, ecx + jz .endstr + test eax, eax + jz .endstr + + cmp ecx, eax + je .cmp_loop + + ja .greater + jmp .less + +.endstr: + cmp ecx, eax + ja .greater + jb .less + +.equal: + xor eax, eax + +.finish: + pop edi esi edx ecx ebx + return + +.greater: + mov eax, 1 + jmp .finish + +.less: + mov eax, -1 + jmp .finish +endp + + ;*************************************************************************************** ; Compares two strings - case sensitive. @@ -623,11 +1117,11 @@ mov esi,eax stdcall StrPtr, [.str2] mov edi,eax mov eax, ecx - and cl, $fc + shr ecx, 2 repe cmpsd jne .noteq mov ecx, eax and ecx, 3 repe cmpsb @@ -758,11 +1252,20 @@ test eax, eax jnz @f stdcall StrNew @@: mov [esi], eax - stdcall StrCopy, eax, [.ptrSource] + stdcall StrPtr, eax + mov dword [eax], 0 + mov [eax+string.len], 0 + + cmp [.ptrSource], 0 + je .finish + + stdcall StrCopy, [esi], [.ptrSource] + +.finish: pop esi eax return endp @@ -772,11 +1275,11 @@ ; dest - destination string (handle only) ; source - source string ;********************************************************************************** proc StrCat, .dest, .source begin - push eax ebx ecx esi edi + pushad stdcall StrLen, [.dest] mov ebx,eax ; store dest length in ebx stdcall StrLen, [.source] @@ -787,23 +1290,75 @@ mov [eax+string.len], ecx lea edi, [eax+ebx] stdcall StrPtr, [.source] - lea ecx, [esi+1] + mov ecx, esi mov esi, eax + mov ebx, ecx + shr ecx, 2 + rep movsd + mov ecx, ebx + and ecx, 3 + rep movsb + + xor eax, eax + stosd + + popad + return +endp + + + +;********************************************************************************** +; StrCat appends string from memory buffer, specified by its address and length to +; destination string (handle) +; +; Arguments: +; dest - destination string (handle only) +; psource - source memory buffer +; length - the length in bytes of the source string. +; +;********************************************************************************** + +proc StrCatMem, .dest, .psource, .length +begin + pushad + + stdcall StrLen, [.dest] + mov ebx,eax ; store dest length in ebx + + mov esi, [.length] + lea ecx, [esi+ebx] + + stdcall StrSetCapacity, [.dest], ecx + + mov [eax+string.len], ecx + lea edi, [eax+ebx] + + mov ecx, esi + mov esi, [.psource] + mov ebx, ecx shr ecx, 2 rep movsd mov ecx, ebx and ecx, 3 rep movsb - pop edi esi ecx ebx eax + xor eax, eax + stosd + + popad return endp + + + + ;********************************************************************************** ; StrCharPos returns a pointer to the first occurence of a given char ; in specified string @@ -818,18 +1373,18 @@ push esi stdcall StrPtr, [.hString] mov esi,eax - mov eax, [.char] - xchg al,ah + mov ah, byte [.char] +; xchg al,ah .search: mov al,[esi] inc esi or al,al - je .not_found + jz .not_found cmp al,ah jne .search mov eax, esi dec eax @@ -876,12 +1431,12 @@ sub ecx, ebx ; there is no need to search to the end, but only to len(string)-len(pattern)-1 .search: repne scasb jne .not_found - cmp ecx,ebx - jb .not_found +; cmp ecx,ebx +; jb .not_found push edi esi ecx or ebx,ebx ; ebx==0 means that we were searching for one jz .got_it ; character. We found it, so we stop. mov ecx,ebx repe cmpsb @@ -909,29 +1464,24 @@ proc StrCopyPart, .dest, .source, .pos, .len begin - push eax ecx esi edi + pushad stdcall StrPtr, [.source] mov esi, eax + stdcall StrLen, [.source] mov ecx, eax - mov eax, [.pos] - cmp eax, ecx - jae .finish - sub ecx, [.pos] - mov eax, [.len] + jc .cleardest -; ecx = min(ecx, eax) - sub eax, ecx - sbb edi, edi - and edi, eax - add ecx, edi +; ecx = min(ecx, [.len]) + cmp ecx, [.len] + cmova ecx, [.len] add esi, [.pos] stdcall StrSetCapacity, [.dest], ecx jc .finish @@ -940,22 +1490,30 @@ mov [edi+string.len], ecx push ecx shr ecx, 2 rep movsd + pop ecx and ecx, 3 rep movsb - lea ecx, [edi+3] - and cl, $fc - sub ecx, edi xor eax, eax - rep stosb + stosd + + clc .finish: - pop edi esi ecx eax + popad + return + +.cleardest: + stdcall StrSetCapacity, [.dest], STR_MINSTRLEN + mov [eax+string.len], 0 + mov dword [eax], 0 + clc + popad return endp @@ -971,10 +1529,25 @@ return endp + +proc StrExtractMem, .pMem, .ofs, .len +begin + push [.len] + mov eax, [.pMem] + add eax, [.ofs] + push eax + + stdcall StrNew + stdcall StrCatMem, eax ; remaining arguments from the stack. + return +endp + + + ;__________________________________________________________________________________ ; Splits the string on two strings, at position [.pos] ; Arguments: ; .pString - pointer to string to be splitted. @@ -985,35 +1558,55 @@ ; and the pointer will remains the same. ;__________________________________________________________________________________ proc StrSplit, .hString, .pos begin - push ecx edi - stdcall StrExtract, [.hString], [.pos], -1 - push eax + stdcall StrTrim, [.hString], [.pos] + return +endp - stdcall StrLen, eax - mov ecx, eax + + + +;__________________________________________________________________________________ +; Trims the string at position [.pos] +; Arguments: +; .pString - pointer to string to be splitted. +; .pos - position where to split the string. +; Returns: nothing. +;__________________________________________________________________________________ +proc StrTrim, .hString, .pos +begin + push eax ecx edi + + mov ecx, [.pos] + + stdcall StrLen, [.hString] + cmp eax, ecx + jbe .endtrim + stdcall StrPtr, [.hString] - sub [eax+string.len], ecx ; new length of the source string. - add eax, [eax+string.len] + mov [eax+string.len], ecx ; new length of the source string. + add eax, ecx mov edi, eax lea ecx, [eax+3] and cl, $fc sub ecx, eax + jnz @f + inc ecx +@@: xor eax, eax + cld rep stosb - pop eax - pop edi ecx +.endtrim: + pop edi ecx eax return endp - - ;__________________________________________________________________________________ ; StrInsert inserts one string into another at specified pos @@ -1025,20 +1618,96 @@ ; nothing. ;__________________________________________________________________________________ proc StrInsert, .dest, .source, .pos begin push eax + stdcall StrSplit, [.dest], [.pos] push eax eax + stdcall StrCat, [.dest], [.source] stdcall StrCat, [.dest] ; source from the stack. stdcall StrDel; from the stack. + pop eax return endp +; TODO: +; String case functions are giving weird results in linux, so +; here are two functons I wrote some time ago. +; I have tested the following functions in win32 and worked well +; Perhaps it is time to fully support UTF encoded strings. +; These functions here are faster (20-25%), but the results are +; exactly the same as the strlib ones. +; pelaillo + +; ----------------------------------------------- +; str_ucase: +; Author: pelaillo +; Date: Jan. 16, 2002 +; Converts also accented characters: ÑÚ <--> ñú +; ----------------------------------------------- + +proc StrUCase2, .hString +begin + push eax edx edi + + stdcall StrPtr, [.hString] + mov edi, eax +.str_ucase: + mov eax, [edi] + mov edx, eax + and edx, 40404040h + ror edx, 1 + xor edx, -1 + and eax, edx + mov [edi], eax + add edi, 4 + lea edx, [eax-01010101h] + xor eax, edx + and eax, 80808080h + jz .str_ucase + and eax, edx + jz .str_ucase + + pop edi edx eax + return +endp + +; ----------------------------------------------- +; str_lcase: +; Author: pelaillo +; Date: Jan. 16, 2002 +; Converts also accented characters: ÑÚ <--> ñú +; ----------------------------------------------- + +proc StrLCase2, .hString +begin + push eax edx edi + + stdcall StrPtr, [.hString] + mov edi, eax +.str_lcase: + mov eax, [edi] + mov edx, eax + and edx, 40404040h + ror edx, 1 + or eax, edx + mov [edi], eax + add edi, 4 + lea edx, [eax-01010101h] + xor eax, edx + and eax, 80808080h + jz .str_lcase + and eax, edx + jz .str_lcase + + pop edi edx eax + return +endp ;********************************************************************************** ; Converts strings to Lower Case ;********************************************************************************** @@ -1051,16 +1720,19 @@ stdcall StrLen, [.hString] mov ecx, eax mov ebx, edi - and ebx, 3 + add ebx, 7 + and ebx, $fffffff8 + sub ebx, edi + jz .ddword + sub ecx, ebx - jbe .byte2 ; the string is small enough, so process it by bytes. .byte1: - test edi, 3 + test edi, 7 jz .ddword mov al, [edi] and al, $40 shr al, 1 @@ -1069,12 +1741,12 @@ inc edi jmp .byte1 .ddword: mov ebx, ecx - and ebx, 3 - shr ecx, 2 + and ebx, 7 + shr ecx, 3 jecxz .byte .qword: mov eax, [edi] mov edx, [edi+4] @@ -1295,11 +1967,10 @@ ; byte 0 - number of digits if ntsFixedWidth is set. ; byte 1 - contains radix for the convertion. ; byte 2,3 - flags. ; Returns: ; eax - handle of the string. -; edx - pointer to the string. ;*********************************************************** proc NumToStr, .num, .flags begin push ebx ecx edx esi edi @@ -1333,10 +2004,209 @@ endp + +;********************************************************************************** +; _NumToStr64 converts the number in esi:ebx to the string in any radix approx. [2..26] +; Arguments: +; [edi] - pointer to the string buffer +; ecx - radix +; esi:ebx - number to convert. +; There is no parameter check, so be careful. +; returns: edi points to the end of a converted number +;********************************************************************************** +proc _NumToStr64 +begin + test esi, esi + jns _NumToStrU64 + not ebx + not esi + add ebx, 1 + adc esi, 0 + mov byte [edi],"-" + inc edi +endp + +proc _NumToStrU64 +begin + xor edx,edx + test esi, esi + jz .low + mov eax, esi ; high order + div ecx + mov esi, eax +.low: + mov eax, ebx ; low order + test edx, edx + jnz .cont + cmp eax, ecx + jb .lessA +.cont: + div ecx + mov ebx, eax + push edx + call _NumToStrU64 + pop eax +.lessA: + cmp al, 10 + sbb al, 69h + das + stosb + return +endp + + + +;***************************************************** +; NumToStrF64: +; Converts signed integer value to string. +; NumToStrUF64: +; Converts unsigned integer value to string. +; +; edi - pointer to string buffer +; esi:ebx - Number to convert +; ecx - radix from 2 to $ff +; edx - length of the number in chars +; +; returns: edi - pointer to the end of converted num +; +; Note: Don't use 1 as radix. +;***************************************************** +proc _NumToStrF64 +begin + test esi,esi + jns _NumToStrUF64 + not ebx + not esi + add ebx, 1 + adc esi, 0 + mov byte [edi],'-' + inc edi +endp + + +proc _NumToStrUF64 +begin + dec edi + push edi + add edi, edx + push edi + +.loopc: + xor edx,edx + mov eax, esi + div ecx + mov esi, eax + mov eax, ebx + div ecx + mov ebx, eax + + mov al, dl + cmp al,$0a + sbb al,$69 + das + mov [edi],al + dec edi + cmp edi, [esp+4] + jne .loopc + pop edi + pop edx + sub edx, edi + inc edi + neg edx + return +endp + + + +proc NumToStr64, .low, .high, .flags +begin + pushad + + stdcall StrNew + mov [esp+4*regEAX], eax + + stdcall StrSetCapacity, eax, 80 + mov edi, eax + push eax ; pointer for the length. + +; determine which conversion func to use + movzx eax, byte [.flags+2] ; signed/fixed + and eax, (ntsUnsigned or ntsFixedWidth) shr 16 + mov eax, [.NumToStrFunc+4*eax] + + movzx ecx, byte [.flags+1] ; load radix into ecx + movzx edx, byte [.flags] ; digit number + mov ebx, [.low] + mov esi, [.high] + + call eax ; call low-level convertion routine + mov dword [edi], 0 + + pop eax + sub edi, eax + mov [eax+string.len], edi + + popad + return + +.NumToStrFunc dd _NumToStr64, _NumToStrU64, _NumToStrF64, _NumToStrUF64 + +endp + + + +proc StrInsertDecimalPoint, .hString, .digits +begin + pushad + + stdcall StrNew + mov ebx, eax + + stdcall StrLen, [.hString] + mov ecx, eax + + stdcall StrPtr, [.hString] + mov esi, eax + cmp byte [esi], '-' + jne .sign_ok + + stdcall StrCharCat, ebx, '-' + dec ecx + inc esi + +.sign_ok: + sub ecx, [.digits] + jg .len_ok + + neg ecx + inc ecx + +.zero_loop: + stdcall StrCharCat, ebx, '0' + dec ecx + jnz .zero_loop + +.len_ok: + stdcall StrCat, ebx, esi + + stdcall StrLen, ebx + sub eax, [.digits] + cmp [.digits], 0 + je @f + stdcall StrCharInsert, ebx, '.', eax +@@: + stdcall StrCopy, [.hString], ebx + stdcall StrDel, ebx + + popad + return +endp + + ;------------------------------------------------------- ; function StrToNum ; Converts specified string into a number ; @@ -1346,20 +2216,22 @@ ; NULL, any other character will stop conversion. ; Number to convert must be decimal. ; ; Return: ; eax - converted number +; edx - offset to the byte where convertion ended. ; ; Note: in case of failture (first char of given pointer ; isn't a number) function returns -1. ;------------------------------------------------------- proc StrToNum, .hString begin - push ebx edx esi + push ebx esi edi xor ebx,ebx ; ebx will store our number stdcall StrPtr, [.hString] + mov edi, eax mov esi,eax xor eax,eax mov al,[esi] cmp al,'0' jb .error @@ -1379,20 +2251,171 @@ shl ebx,3 add ebx,edx add ebx,edx jmp .digit .finish: - mov eax,ebx - pop esi edx ebx + + mov eax, ebx + mov edx, esi + sub edx, edi + clc + pop edi esi ebx return .error: - xor eax,eax - dec eax - pop esi edx ebx + mov eax, -1 + stc + pop edi esi ebx + return +endp + + + +; Converts a string to dword integer, using FASM number formats. +; Return: +; CF=0; eax = converted number +; CF=1; eax = 0 on invalid number + +proc StrToNumEx, .hstring +.sign dd ? +begin + push ebx edx esi edi + + stdcall StrPtr, [.hstring] + test eax, eax + jz .finish + + mov esi, eax + mov edi, eax + +; search the end: +.end_loop: + lodsb + test al, al + jz .end_found + + cmp al, '$' + je .end_loop + cmp al, '-' + je .end_loop + + cmp al, '0' + jb .end_found + cmp al, '9' + jbe .end_loop + cmp al, '@' + ja .end_loop + +.end_found: + dec esi + xchg esi, edi + cmp esi, edi + je .invalid_number + +; sign? + mov [.sign], 0 + cmp byte [esi], '-' + jne .radix + + mov [.sign], -1 + inc esi + +; determine what is the radix. +.radix: + cmp byte [esi], '$' + je .hex + cmp word [esi], '0x' + jne .postfix + inc esi +.hex: + inc esi + mov edx, 16 + jmp .decode + +.postfix: +; search for 'h' or 'b' or 'o' + mov al, [edi-1] + or al, $20 + + mov edx, 16 + cmp al, 'h' + je .postok + + mov edx, 8 + cmp al, 'o' + je .postok + + mov edx, 2 + cmp al, 'b' + je .postok + + mov edx, 10 + inc edi + +.postok: + dec edi + +; here, edx contains the radix, esi - begin of the number; edi - end of the number. +.decode: + xor ebx, ebx + cmp esi, edi + jae .invalid_number + +.decode_loop: + lodsb + + cmp al, '0' + jb .invalid_number + cmp al, '9' + jbe .digit + + or al, $20 + cmp al, 'z' ; common + ja .invalid_number + cmp al, 'a' + jb .invalid_number + + sub al, 'a'-'0'-10 + +.digit: + sub al, '0' + movzx eax, al + + cmp eax, edx + jae .invalid_number + + imul ebx, edx + add ebx, eax + + cmp esi, edi + jne .decode_loop + +; set the sign: + xor ebx, [.sign] + sub ebx, [.sign] + + clc + mov eax, ebx + + pop edi esi edx ebx + return + +.invalid_number: + xor eax, eax + +.finish: + stc + pop edi esi edx ebx return endp + + + + + + + ;------------------------------------------------------- ; function StrCharCat ; Appends up to 4 chard at the end of the string. ; @@ -1409,10 +2432,13 @@ stdcall StrLen, [.hString] mov ecx, eax add eax, 8 stdcall StrSetCapacity, [.hString], eax + jnc @f + int3 +@@: pushd [.char] popd [eax+ecx] mov dword [eax+ecx+4], 0 dec ecx @@ -1436,23 +2462,410 @@ ; hString - string to append ; char - char to add ; pos - position where to add the char ;------------------------------------------------------------- proc StrCharInsert, .hString, .char, .pos -.str rd 2 begin push eax - push [.char] - pop [.str] - mov [.str+4], 0 - lea eax, [.str] + stdcall GetMem, 16 + + pushd [.char] + popd [eax] + mov dword [eax+4], 0 + mov dword [eax+8], 0 + stdcall StrInsert, [.hString], eax, [.pos] + stdcall FreeMem, eax + pop eax return endp + + +;_______________________________________________________________________ +; proc StrClipSpacesR +; Removes the spaces and control chars from the right of the string. +; Arguments: +; hString - string to be processed +; Returns: +; CF=1 - invalid string handle. +;_______________________________________________________________________ +proc StrClipSpacesR, .hString +begin + pushad + + stdcall StrPtr, [.hString] + jc .exit + + mov ebx, eax + mov esi, eax + add esi, [eax+string.len] + +.loop: + cmp esi, ebx + je .finish + + dec esi + call ScanBackUtf8 + stdcall DecodeUtf8, [esi] + + cmp eax, ' ' + jbe .loop + + cmp eax, $85 + je .loop + + cmp eax, $a0 + je .loop + + cmp eax, $180e + je .loop + + cmp eax, $feff + je .loop + + cmp eax, $2000 + jb .non_space + + cmp eax, $200f + jbe .loop + + cmp eax, $2028 + jb .non_space + + cmp eax, $202f + jbe .loop + + cmp eax, $205f + jb .non_space + + cmp eax, $206f + jbe .loop + +.non_space: + add esi, edx + +.finish: + xor eax, eax + mov dword [esi], eax + + sub esi, ebx + mov [ebx+string.len], esi + +.exit: + popad + return +endp + + +;_______________________________________________________________________ +; proc StrClipSpacesL +; Removes the spaces from the left of the string. +; Arguments: +; hString - string to be processed +; Returns: +; CF=1 - invalid string handle. +;_______________________________________________________________________ +;proc StrClipSpacesL, .hString +;begin +; push esi edi eax ecx +; +; stdcall StrPtr, [.hString] +; jc .finish +; +; mov ecx, [eax+string.len] +; mov esi, eax +; mov edi, eax +; +;.loop: +; jecxz .copy +; cmp byte [esi], ' ' +; ja .copy +; +; inc esi +; dec ecx +; jmp .loop +; +;.copy: +; mov [edi+string.len], ecx +; jecxz .finish +; cmp esi, edi +; je .finish +; +; add ecx, 4 +; rep movsb +; +;.finish: +; pop ecx eax edi esi +; return +;endp + +proc StrClipSpacesL, .hString +begin + pushad + + stdcall StrPtr, [.hString] + jc .finish + + mov ecx, [eax+string.len] + mov esi, eax + mov edi, eax + +; search first non whitespace... + + xor edx, edx + +.loop: + sub ecx, edx + ja .decode + + xor ecx, ecx + jmp .copy + +.decode: + add esi, edx + stdcall DecodeUtf8, [esi] + + cmp eax, ' ' + jbe .loop + + cmp eax, $85 + je .loop + + cmp eax, $a0 + je .loop + + cmp eax, $180e + je .loop + + cmp eax, $feff + je .loop + + cmp eax, $2000 + jb .copy + + cmp eax, $200f + jbe .loop + + cmp eax, $2028 + jb .copy + + cmp eax, $202f + jbe .loop + + cmp eax, $205f + jb .copy + + cmp eax, $206f + jbe .loop + +.copy: + mov [edi+string.len], ecx + jecxz .finish + cmp esi, edi + je .finish + + add ecx, 4 + rep movsb + +.finish: + popad + return +endp + + + +;_______________________________________________________________________ +; proc StrClipQuotes +; First removes the spaced from the beginning and from the end of the +; string. Then chech whether the string is quoted string - i.e. starts +; and ends with equal characters single or double quote. If so, removes +; them as well. +; +; Arguments: +; hString - string to be processed +; Returns: +; CF=1 - invalid string handle. +;_______________________________________________________________________ + + +proc StrClipQuotes, .hString +begin + pushad + + stdcall StrClipSpacesR, [.hString] + jc .finish + stdcall StrClipSpacesL, [.hString] + jc .finish + + stdcall StrPtr, [.hString] + jc .finish + mov ecx, [eax+string.len] + mov esi, eax + mov edi, eax + + cmp ecx, 2 + jl .finish + + sub ecx, 2 + + lodsb + cmp al, [esi+ecx] + jne .finish + + cmp al, '"' + je .clip + + cmp al, "'" + jne .finish + +.clip: + mov [edi+string.len], ecx + rep movsb + mov [edi], ecx + clc + +.finish: + popad + return +endp + + +;_______________________________________________________________________ +; proc SetQuotes, .hString, .char +; +; Encloses the string in quotes marks, if it is necessary, i.e. if the +; string contains spaces, tabs or any other of the provided characters. +; If the string contains single quote, double quote is used. If the +; string contains double quote, single quote is used. +; If the string contains all: single quote, double quote and spaces, the error +; is returned. +;_______________________________________________________________________ +proc StrSetQuotes, .hString, .char +begin + pushad + + stdcall StrLen, [.hString] + jc .error + + mov ecx, eax + jecxz .error + + stdcall StrPtr, [.hString] + mov esi, eax + xor edx, edx ; quote flag + xor ebx, ebx ; space flag + +.loop: + lodsb + + cmp al, "'" + jne @f + mov dl, al +@@: + cmp al, '"' + jne @f + mov dh, al +@@: + cmp al, ' ' + jne @f + mov bl, al +@@: + cmp al, $09 ; tab + jne @f + mov bl, al +@@: + cmp al, byte [.char] + jne @f + mov bl, al +@@: + loop .loop + + test ebx, ebx + jz .finish ; no quotes are necessary. + +; do quote + test dl, dl + jnz @f + shr edx, 8 +@@: + test dh, dh + jnz .error ; both dh and dl <> 0 + + test dl, dl ; both are 0, so set "'" + jnz @f + mov dl, '"' +@@: + xor dl, '"' xor "'" ; turn the quote to the other. + + stdcall StrCharInsert, [.hString], edx, 0 + stdcall StrCharCat, [.hString], edx + +.finish: + clc + popad + return + +.error: + stc + popad + return +endp + + + + +;_______________________________________________________________________ +; proc StrCleanDupSpaces +; Removes duplicating spaces from the string. +; Arguments: +; hString - string to be processed +; Returns: +; CF=1 - invalid string handle. +;_______________________________________________________________________ +proc StrCleanDupSpaces, .hString +begin + push esi edi eax ecx edx + + stdcall StrPtr, [.hString] + jc .finish + + mov ecx, [eax+string.len] + lea edx, [eax+string.len] + mov esi, eax + mov edi, eax + + jecxz .endcopy + +.loop: + lodsb + cmp al, ' ' + jne .store + cmp byte [esi], ' ' + jne .store +; skip + dec dword [edx] + jmp .next + +.store: + stosb + +.next: + dec ecx + jnz .loop + +.endcopy: + xor eax, eax + stosd + +.finish: + pop edx ecx eax edi esi + return +endp + @@ -1461,42 +2874,28 @@ ; proc StrHash ; Computes 32 bit hash value from the string. ; This procedure implements the hash algoritm: FNV-1b ; ; Arguments: -; ptrString - pointer to PASCAL string with dword length at [ptr-4] +; .hString - handle of string. ; ; Return: ; eax - 32bit hash value. ; ; Changes: ; eax ;_______________________________________________________________________ proc StrHash, .hString begin - push edx ecx esi - - stdcall StrPtr, [.hString] - mov esi, eax stdcall StrLen, [.hString] - mov ecx, eax - mov eax, $811C9DC5 ; 2166136261 ; FNV offset basis - - jecxz .exit - -.hashloop: - movzx edx, byte [esi] - xor eax, edx - inc esi - imul eax, $01000193 ; 16777619 ; FNV prime - dec ecx - jnz .hashloop - -.exit: - pop esi ecx edx + push eax + stdcall StrPtr, [.hString] + push eax + call DataFNV1b return endp + proc StrURLEncode, .hstr @@ -1506,11 +2905,11 @@ stdcall StrPtr, [.hstr] mov esi, eax stdcall StrLen, esi mov ecx, eax - lea edx, [2*eax+eax] ; the encoded string can be max 3x long as original string. + lea edx, [3*eax] ; the encoded string can be max 3x long as original string. stdcall StrNew mov [.res], eax jecxz .finish @@ -1521,19 +2920,20 @@ push eax .encode: lodsb cmp al, $80 - jae .store ; it is a hack, but I hope save enough. + jae .do_encode ; encode all above $7f mov dl, al mov bl, al shr edx, 5 and ebx, $1f bt dword [URLCharTable+4*edx], ebx jnc .store +.do_encode: mov ah, al mov al, '%' stosb mov al, ah shr al, 4 @@ -1561,23 +2961,1446 @@ .finish: mov eax, [.res] pop edi esi edx ecx ebx return endp + ; Contains 1 where the character must be % encoded and 0 where it is save to pass it directly +if used URLCharTable URLCharTable db 11111111b ; db 11111111b ; db 11111111b ; db 11111111b ; 0..31 -control chars | encoded db 11111111b ; $27 - $20: '&%$#"! | encoded - db 11111111b ; $2f - $28: /.-,+*)( | encoded + db 10011111b ; $2f - $28: /.-,+*)( | encoded db 00000000b ; $37 - $30: 76543210 | not encoded db 11111100b ; $3f - $38: ?>=<;:98 | partially db 00000001b ; $47 - $40: GFEDCBA@ | partially db 00000000b ; $4f - $48: ONMLKJIH | not encoded db 00000000b ; $57 - $50: WVUTSRQP | not encoded - db 11111000b ; $5f - $58: _^]\[ZYX | partially + db 01111000b ; $5f - $58: _^]\[ZYX | partially db 00000001b ; $67 - $60: gfedcba` | partially db 00000000b ; $6f - $68: onmlkjih | not encoded db 00000000b ; $77 - $70: wvutsrqp | not encoded - db 11111000b ; $7f - $78: ~}|{zyx | partially + db 10111000b ; $7f - $78: ~}|{zyx | partially +end if + + +;_______________________________________________________________________ +; +; proc StrURLDecode +; Decodes URL encoded string. Does not change registers. +; Notice, that the string is decoded in place. +; +; Arguments: +; .hString - handle or pointer of string. +; +; Return: +; nothing +; +; Changes: +; flags +;_______________________________________________________________________ + +proc StrURLDecode, .hstring +begin + pushad + + stdcall StrLen, [.hstring] + mov ecx, eax + jecxz .finish + + stdcall StrPtr, [.hstring] + mov esi, eax + mov edi, eax + mov ebx, eax + +.loop: + lodsb + + test al, al + jz .end_of_string + + cmp al, '+' + je .space + + cmp al, '%' + jne .store + + lodsb + cmp al, '9' + jbe @f + add al, $09 +@@: + shl al, 4 + mov ah, al + + lodsb + cmp al, '9' + jbe @f + add al, $09 +@@: + and al, $0f + or al, ah + jmp .store + +.space: + mov al, ' ' + +.store: + stosb + loop .loop + +.end_of_string: + mov ecx, edi + sub ecx, ebx + xor eax, eax + stosd + + mov [ebx+string.len], ecx + +.finish: + popad + return + +endp + + +; UTF-8 support functions. +; Some of the above functions also need some revision in order to support +; utf-8 strings properly. +; Bug - on [.len]=-1 sometimes in Linux returns error on normal strings. + +proc StrLenUtf8, .hString, .len +begin + push ebx ecx edx esi + + stdcall StrPtr, [.hString] + mov esi, eax + + mov ebx, [.len] + test ebx, ebx + js @f + add ebx, esi +@@: + xor ecx, ecx + +.loop: + cmp esi, ebx + jae .endofstring + + stdcall DecodeUtf8, [esi] + jc .error + + test eax, eax + jz .endofstring + + add esi, edx + inc ecx + jmp .loop + +.endofstring: + mov eax, ecx + pop esi edx ecx ebx + clc + return + +.error: + xor eax, eax + stc + pop esi edx ecx ebx + return +endp + + + +proc StrOffsUtf8, .hString, .pos +begin + push edx esi + + stdcall StrPtr, [.hString] + mov esi, eax + +.loop: + dec [.pos] + js .finish + + stdcall DecodeUtf8, [esi] + jc .error + + test eax, eax + jz .finish + + add esi, edx + jmp .loop + +.finish: + clc + mov eax, esi + pop esi edx + return + +.error: + xor eax, eax + pop esi edx + return +endp + + + +proc StrByteUtf8, .hString, .pos +begin + push edx esi edi + + stdcall StrPtr, [.hString] + mov esi, eax + mov edi, eax + +.loop: + dec [.pos] + js .finish + + stdcall DecodeUtf8, [esi] + jc .error + + test eax, eax + jz .finish + + add esi, edx + jmp .loop + +.finish: + clc + sub esi, edi + mov eax, esi + pop edi esi edx + return + +.error: + xor eax, eax + pop edi esi edx + return +endp + + + + + +proc ScanForwardUtf8 +begin + push eax + + mov al, [esi] + test al, al + jns .finish + + and al, 11000000b + cmp al, 11000000b + je .finish + +; inc forward +.loopf: + inc esi + mov al, [esi] + and al, 11000000b + cmp al, 10000000b + je .loopf + +.finish: + pop eax + return +endp + + + +proc ScanBackUtf8 +begin + push eax + + mov al, [esi] + test al, al + jns .finish + + and al, 11000000b + cmp al, 11000000b + je .finish + +; inc back +.loopf: + dec esi + mov al, [esi] + and al, 11000000b + cmp al, 10000000b + je .loopf + +.finish: + pop eax + return +endp + + + +proc ExpandTabs, .hstring, .tabstop +.start dd ? +.count dd ? +.correction dd ? +begin + pushad + + mov [.count], 0 + mov [.correction], 0 + + stdcall StrLen, [.hstring] + mov ecx, eax + stdcall StrPtr, [.hstring] + mov [.start], eax + mov esi, eax + add ecx, eax + xor ebx, ebx + + jecxz .end_scan + +.scan_loop: + stdcall DecodeUtf8, [esi] + cmp eax, $09 + jne .next + + mov byte [esi], $20 + + push edx + mov eax, ebx + cdq + div [.tabstop] + imul eax, [.tabstop] + pop edx + add eax, [.tabstop] + sub eax, ebx + dec eax + jz .next + + add ebx, eax + add [.correction], eax + push eax ; space count + + mov eax, esi + sub eax, [.start] + push eax ; offset + + inc [.count] + +.next: + inc ebx + add esi, edx + cmp esi, ecx + jb .scan_loop + +.end_scan: + cmp [.count], 0 + je .finish + +.expand: + pop ebx ; offset + pop eax ; count + +.ins_spc: + stdcall StrCharInsert, [.hstring], ' ', ebx + dec eax + jnz .ins_spc + +.next_tab: + dec [.count] + jnz .expand + +.finish: + popad + mov eax, [.correction] + return +endp + + + +proc StrIP2Num, .hString +begin + push ebx edx esi + + xor ebx, ebx + stdcall StrPtr, [.hString] + mov esi, eax + +; string to IP +.iploop: + stdcall StrToNum, esi + cmp eax, $100 + jae .invalid_ip + + cmp ebx, $1000000 + jae .invalid_ip + + shl ebx, 8 + or bl, al + + cmp byte [esi+edx], 0 + je .end_of_ip + + cmp byte [esi+edx], '.' + jne .invalid_ip + + lea esi, [esi+edx+1] + jmp .iploop + +.invalid_ip: + stc + mov eax, ebx + pop esi edx ebx + return + +.end_of_ip: + clc + mov eax, ebx + pop esi edx ebx + return +endp + + + +proc IP2Str, .ip +begin + push ebx + + movzx eax, byte [.ip+3] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + mov ebx, eax + stdcall StrCat, ebx, txt '.' + + movzx eax, byte [.ip+2] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + stdcall StrCat, ebx, eax + stdcall StrDel, eax + stdcall StrCat, ebx, txt '.' + + movzx eax, byte [.ip+1] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + stdcall StrCat, ebx, eax + stdcall StrDel, eax + stdcall StrCat, ebx, txt '.' + + movzx eax, byte [.ip] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + mov eax, ebx + pop ebx + return +endp + + +proc StrEncodeHTML, .hString +begin + pushad + + stdcall StrLen, [.hString] + mov ecx, eax + + stdcall StrNew + mov [esp+4*regEAX], eax + + shl ecx, 3 ; memory x8 + + stdcall StrSetCapacity, eax, ecx + mov edi, eax + mov ebx, eax + + stdcall StrPtr, [.hString] + mov esi, eax + + xor eax, eax + +.loop: + lodsb + + test al, al + jz .end_of_string + + cmp al, '<' + je .char_less_then + cmp al, '>' + je .char_greater_then + cmp al, '"' + je .char_quote + cmp al, '&' + je .char_amp + + stosb + jmp .loop + +.end_of_string: + mov [edi], eax + sub edi, ebx + mov [ebx+string.len], edi + + popad + return + + +.char_less_then: + mov dword [edi], '<' + add edi, 4 + jmp .loop + +.char_greater_then: + mov dword [edi], '>' + add edi, 4 + jmp .loop + + +.char_quote: + mov dword [edi], '&quo' + mov word [edi+4],'t;' + add edi, 6 + jmp .loop + +.char_amp: + mov dword [edi], '&' + mov byte [edi+4], ';' + add edi, 5 + jmp .loop + +endp + + + + +proc StrDecodeHTML, .hString +begin + pushad + + stdcall StrPtr, [.hString] + mov esi, eax + mov edi, eax + mov ebx, eax + +.loop: + lodsb + + test al, al + jz .end_of_string + + cmp al, '&' + je .collapse + +.store: + stosb + jmp .loop + +.collapse: + cmp dword [esi], 'nbsp' + jne .not_nbsp + cmp byte [esi+4], ';' + jne .not_nbsp + + add esi, 5 + mov al, ' ' + jmp .store + +.not_nbsp: + mov ecx, [esi] + and ecx, $ffffff + + cmp ecx, 'lt;' + je .lessthen + cmp ecx, 'gt;' + jne .not_gt + + add esi, 3 + mov al, '>' + jmp .store + +.lessthen: + add esi, 3 + mov al, '<' + jmp .store + +.not_gt: + cmp dword [esi], 'quot' + jne .not_quote + cmp byte [esi+4], ';' + jne .not_quote + + add esi, 5 + mov al, '"' + jmp .store + +.not_quote: + cmp dword [esi], 'apos' + jne .not_apos + cmp byte [esi+4], ';' + jne .not_apos + + add esi, 5 + mov al, "'" + jmp .store + +.not_apos: + cmp dword [esi], 'amp;' + jne .store + + add esi, 4 + mov al, '&' + jmp .store + + +.end_of_string: + mov dword [edi], 0 + sub edi, ebx + mov [ebx+string.len], edi + + popad + return +endp + + + + +proc DateTimeToStr, .pDateTime, .format +begin + push ebx esi + + mov esi, [.pDateTime] + +; date + stdcall NumToStr, [esi+TDateTime.date], ntsUnsigned or ntsFixedWidth or ntsDec + 2 + mov ebx, eax + stdcall StrCharCat, ebx, '.' + stdcall NumToStr, [esi+TDateTime.month], ntsUnsigned or ntsFixedWidth or ntsDec + 2 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + stdcall StrCharCat, ebx, '.' + stdcall NumToStr, [esi+TDateTime.year], ntsSigned or ntsFixedWidth or ntsDec + 4 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + stdcall StrCharCat, ebx, ' ' + +; time + stdcall NumToStr, [esi+TDateTime.hour], ntsUnsigned or ntsFixedWidth or ntsDec + 2 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + stdcall StrCharCat, ebx, ':' + stdcall NumToStr, [esi+TDateTime.minute], ntsUnsigned or ntsFixedWidth or ntsDec + 2 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + stdcall StrCharCat, ebx, ':' + stdcall NumToStr, [esi+TDateTime.second], ntsUnsigned or ntsFixedWidth or ntsDec + 2 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + mov eax, ebx + pop esi ebx + return +endp + + + +proc StrExtractFilename, .hFilename +begin + push ebx ecx esi + + stdcall StrLen, [.hFilename] + mov ecx, eax + + stdcall StrPtr, [.hFilename] + lea esi, [eax+ecx] + mov ebx, eax + +.loop: + cmp esi, ebx + je .found2 + + dec esi + mov al, [esi] + + cmp al, '/' + je .found + cmp al, '\' + je .found + jmp .loop + +.found: + inc esi + +.found2: + stdcall StrExtract, esi, 0, $7fffffff + + pop esi ecx ebx + return +endp + + +; Splits the given [.hFullPath] into path and filename. +; The path remains in the input string, and the filename is returned in eax. +proc StrSplitFilename, .hFullPath +begin + push ebx ecx esi + + stdcall StrLen, [.hFullPath] + mov ecx, eax + + stdcall StrPtr, [.hFullPath] + lea esi, [eax+ecx] + mov ebx, eax + +.loop: + cmp esi, ebx + je .found2 + + dec esi + mov al, [esi] + + cmp al, '/' + je .found + cmp al, '\' + je .found + jmp .loop + +.found: + inc esi + +.found2: + sub esi, ebx + + stdcall StrSplit, [.hFullPath], esi + pop esi ecx ebx + return +endp + + + +proc StrExtractExt, .hFilename +begin + pushad + + stdcall StrLen, [.hFilename] + mov ecx, eax + mov edx, eax + + stdcall StrPtr, [.hFilename] + mov esi, eax + +.search: + dec ecx + jz .no_ext + + cmp byte [esi+ecx], '/' + je .no_ext + + cmp byte [esi+ecx], '\' + je .no_ext + + cmp byte [esi+ecx], '.' + jne .search + +; found: + sub edx, ecx + stdcall StrExtract, [.hFilename], ecx, edx + mov [esp+4*regEAX], eax + + clc + popad + return + +.no_ext: + stc + popad + return +endp + + + +proc StrChangeExt, .hFilename, .hNewExt +begin + push ecx edx esi + + stdcall StrDup, [.hFilename] + mov edx, eax + + stdcall StrLen, edx + mov ecx, eax + + stdcall StrPtr, edx + mov esi, eax + +.search: + test ecx, ecx + jz .append + + dec ecx + + cmp byte [esi+ecx], '/' + je .append + cmp byte [esi+ecx], '\' + je .append + + cmp byte [esi+ecx], '.' + jne .search + + mov dword [esi+ecx], 0 + mov [esi+string.len], ecx + +.append: + stdcall StrCat, edx, [.hNewExt] + mov eax, edx + pop esi edx ecx + return +endp + + +; Normalizes some path to the minimal possible path. If the path contains ".." removes the +; previous directory and ".." directory if possible. If not possible converts until it is +; possible and returns CF=1 +; +; Arguments: +; .hPath - handle of string with the path. As long as the string will be changed, it must +; be a handle or static string but in the same format. At least the previous +; dword should contain the length of the string. +; .separators - the first two bytes of this argument specifies two possible directory +; separators. For example "/\" will accept both slashes as a valid separators. +; all separators in the result string will be converted to the first of them. +; These two characters should be equal if only one separator is to be used. +; Returns: +; CF=0 if the path was normalized without errors. +; CF=1 if the path can not be normalized to not contain ".." directory. + +proc StrNormalizePath, .hPath, .separators +begin + pushad + + stdcall StrPtr, [.hPath] + mov edx, eax + +.outer: + mov esi, edx + mov edi, edx + + + mov eax, [.separators] + + cmp word [esi], '..' + jne .loop + + add esi, 2 + cmp [esi], al + je .error + cmp [esi], ah + je .error + +.loop: + cmp [esi], al + je .found + cmp [esi], ah + je .found + cmp byte [esi], 0 + je .end_ok + + inc esi + jmp .loop + +.found: + mov [esi], al + inc esi + + cmp word [esi], '..' + jne .cont + + cmp byte [esi+2], al + je .back + cmp byte [esi+2], ah + je .back + +.cont: + mov edi, esi + inc esi + jmp .loop + +.back: + cmp [edi], al + je .inc + cmp [edi], ah + jne .do_copy + +.inc: + inc edi + +.do_copy: + cmp edi, esi + jz .error + + add esi, 3 + +.copy: + lodsb + stosb + test al, al + jnz .copy + + dec edi + xor eax, eax + mov [edi], eax + sub edi, edx + mov [edx+string.len], edi + + jmp .outer + +.error: + stc + popad + return + +.end_ok: + clc + +.finish: +; pushf +; mov edi, esi +; sub esi, edx +; xor eax, eax +; stosd +; mov [edx+string.len], esi +; popf + popad + return + +endp + + + + +; Normalizes some path to the minimal possible path. +; Removes ".." and "." from the path in all cases. In the incorrect cases the result path +; is of course not equivalent to the beginning. +; +; Arguments: +; .hPath - handle or pointer of string with the path. The processing is in-place and +; the result string is always shorter or equal to the input string. +; If the string is in memory, it MUST be in the format of FreshLib string +; (i.e. on the offset -4 to be placed the length of the string and the +; string to be terminated at least with dword of 0) The length of the string +; is not used, but is updated with the result string length. +; +; .separators - the first two bytes of this argument specifies two possible directory +; separators. For example "/\" will accept both slashes as a valid separators. +; all separators in the result string will be converted to the first of them. +; These two characters should be equal if only one separator is to be used. +; Returns: +; Nothing. Preserves all registers. +; +; Note: StrNormalizePath2 is more "paranoid" about the invalid paths than StrNormalizePath +; it removes ".." and "." even if the result path is not equivalent. + +proc StrNormalizePath2, .hPath, .separators +.back dd ? +begin + pushad + + mov ebx, esp + + stdcall StrPtr, [.hPath] + mov esi, eax + mov edi, eax + mov edx, eax + xor eax, eax + mov [.back], eax + + mov cl, byte [.separators] + mov ch, cl + mov byte [.back], cl + mov byte [.back+2], cl + mov al, cl + rol ecx, 16 + mov cx, '..' + mov byte [.back+1], cl + rol ecx, 8 + +.loop: + shl eax, 8 + lodsb + stosb + + test al, al + jz .end_of_string + + cmp al, byte [.separators] + je .separator1 + cmp al, byte [.separators+1] + jne .loop + +.separator2: + mov al, byte [.separators] + mov [edi-1], al + +.separator1: + cmp eax, ecx ;ecx == '/../' + je .dir_back + + and eax, $ffffff + cmp eax, [.back] ; [.back] == '/./' + je .dir_remove + + push edi + jmp .loop + +.dir_remove: + sub edi, 2 + cmp edi, edx + cmovb edi, edx + jmp .loop + +.dir_back: + cmp esp, ebx + cmove edi, edx + je .loop + + add esp, 4 + cmp esp, ebx + cmove edi, edx + je .loop + + mov edi, [esp] + jmp .loop + +.end_of_string: + dec edi + and dword [edi], 0 + sub edi, edx + mov [edx+string.len], edi + mov esp, ebx + + popad + return +endp + + + + + + +;****************************************************** +; Computes MD5 hash of the string .hString and returns +; new string handle in eax containing the hash of the +; string. +;****************************************************** +proc StrMD5, .hString +begin + stdcall StrLen, [.hString] + push eax + stdcall StrPtr, [.hString] + stdcall DataMD5, eax ; length from the stack. + return +endp + + + + + +; Splits the string .hString on multiply items, separated by [.separator] char. +; +; Arguments: +; .hString - handle or pointer to the string that have to be split. +; .Separator - contains UNICODE separator character. +; .fAllowEmpty - if TRUE, empty strings are allowed. if FALSE, the empty strings are not +; included in the list. +; +; Returns: +; EAX: TArray of dword containing the parts of the string. +; If the string does not contains any items, returns empty TArray +; +; The returned array should be freed when not needed with: +; stdcall ListFree, [RetPtr], StrDel +; where [RetPtr] is the pointer, returned by StrSplitList + +proc StrSplitList, .hString, .Separator, .fAllowEmpty +begin + pushad + + stdcall CreateArray, 4 + mov edi, eax + + stdcall StrPtr, [.hString] + jc .finish + + mov esi, eax + +.outer: + mov ebx, esi + xor ecx, ecx + +.loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + + test eax, eax + jz .split_here + + test ecx, ecx + jz .not_in_quote + + cmp eax, ecx + jne .loop + + xor ecx, ecx + jmp .loop + +.not_in_quote: + cmp eax, '"' + je .quote_start + cmp eax, "'" + jne .continue + +.quote_start: + mov ecx, eax + jmp .loop + +.continue: + cmp eax, [.Separator] + jne .loop + +.split_here: + push eax + + mov edx, esi + sub edx, ebx + dec edx + + stdcall StrNew + stdcall StrCatMem, eax, ebx, edx + mov ebx, eax + + stdcall StrClipSpacesR, ebx + stdcall StrClipSpacesL, ebx + + cmp [.fAllowEmpty], 0 + jne .add_it + + stdcall StrLen, ebx + test eax, eax + jnz .add_it + + stdcall StrDel, ebx + jmp .next + +.add_it: + stdcall AddArrayItems, edi, 1 + mov edi, edx + mov [eax], ebx + +.next: + pop eax + test eax, eax + jnz .outer + + clc + +.finish: + mov [esp+4*regEAX], edi + popad + return +endp + + + +struct TSplitURL + .scheme dd ? + .host dd ? + .port dd ? + .path dd ? + .query dd ? + .fragment dd ? +ends + + +proc StrSplitURL, .hURL, .pResult +begin + push eax + push [.pResult] + stdcall StrLen, [.hURL] + push eax + stdcall StrPtr, [.hURL] + stdcall StrSplitURLMem, eax ; remaining arguments from the stack. + pop eax + return +endp + +debug_split_url = 1 + +proc StrSplitURLMem, .pString, .len, .pResult +begin + pushad + + mov edi, [.pResult] + xor eax, eax + mov ecx, sizeof.TSplitURL/4 + rep stosd + + mov edi, [.pResult] + + mov ecx, [.len] + mov esi, [.pString] + + test ecx, ecx + jz .end_of_url + + mov ebx, esi ; start of the substring. + +; scan for scheme... +.parse1: + cmp byte [esi], ':' + jne .not_scheme + + cmp byte [esi+1], '0' + jb .scheme_here + cmp byte [esi+1], '9' + ja .scheme_here + jmp .host_here + +.not_scheme: + cmp byte [esi], '/' + je .host_here + + cmp byte [esi], '?' + je .path_here + + cmp byte [esi], '#' + je .path_here + + cmp byte [esi], '.' + je .parse4 + + inc esi + dec ecx + jnz .parse1 + + jmp .host_here + +.scheme_here: + call .extract + mov [edi + TSplitURL.scheme], eax + + inc esi + inc ebx + dec ecx + jz .end_of_url + + cmp word [esi], '//' + jne .parse4 + + add esi, 2 + add ebx, 2 + sub ecx, 2 + jle .end_of_url + +.parse2: + cmp byte [esi], '/' + je .host_here + + cmp byte [esi], ':' + jne .next + + cmp byte [esi+1], '0' + jb .next + + cmp byte [esi+1], '9' + jbe .host_here + +.next: + inc esi + dec ecx + jnz .parse2 + +.host_here: + call .extract + mov [edi + TSplitURL.host], eax + + test ecx, ecx + jz .end_of_url + + cmp byte [esi], '/' + je .parse4 ; scan for path + +;scan for port + + inc esi + inc ebx + dec ecx + +.parse3: + cmp byte [esi], '/' + je .port_here + + cmp byte [esi], '?' + je .port_here + + cmp byte [esi], '#' + je .port_here + + inc esi + dec ecx + jnz .parse3 + +.port_here: + call .extract + mov [edi + TSplitURL.port], eax + + test ecx, ecx + jz .end_of_url + +; inc esi +; inc ebx +; dec ecx +; jz .end_of_url + + cmp byte [esi], '?' + je .parse5 ; scan for query + cmp byte [esi], '#' + je .fragment_here + +; scan for path + +.parse4: + cmp byte [esi], '?' + je .path_here + + cmp byte [esi], '#' + je .path_here + + inc esi + dec ecx + jnz .parse4 + +; cmp byte [esi-1], '/' +; jne .parse4 + +.path_here: + call .extract + mov [edi + TSplitURL.path], eax + + test ecx, ecx + jz .end_of_url + + inc esi + inc ebx + dec ecx + jz .end_of_url + + cmp byte [esi-1], '#' + je .fragment_here + +; scan for query + +.parse5: + cmp byte [esi], '#' + je .query_here + + inc esi + dec ecx + jnz .parse5 + +.query_here: + + call .extract + mov [edi + TSplitURL.query], eax + + test ecx, ecx + jz .end_of_url + + inc esi + inc ebx + dec ecx + jz .end_of_url + +; extract the fragment. + +.fragment_here: + + add esi, ecx + call .extract + mov [edi + TSplitURL.fragment], eax + +.end_of_url: + cmp [edi + TSplitURL.path], 0 + je @f + stdcall StrNormalizePath2, [edi + TSplitURL.path], '/\' +@@: + +if debug_split_url + stdcall FileWriteString, [STDERR], 'Scheme: ' + cmp [edi+TSplitURL.scheme], 0 + je @f + stdcall FileWriteString, [STDERR], [edi+TSplitURL.scheme] +@@: + stdcall FileWriteString, [STDERR], <txt 13, 10> + + + stdcall FileWriteString, [STDERR], 'Host: ' + cmp [edi+TSplitURL.host], 0 + je @f + stdcall FileWriteString, [STDERR], [edi+TSplitURL.host] +@@: + stdcall FileWriteString, [STDERR], <txt 13, 10> + + + stdcall FileWriteString, [STDERR], 'Port: ' + cmp [edi+TSplitURL.port], 0 + je @f + stdcall FileWriteString, [STDERR], [edi+TSplitURL.port] +@@: + stdcall FileWriteString, [STDERR], <txt 13, 10> + + + stdcall FileWriteString, [STDERR], 'Path: ' + cmp [edi+TSplitURL.path], 0 + je @f + stdcall FileWriteString, [STDERR], [edi+TSplitURL.path] +@@: + stdcall FileWriteString, [STDERR], <txt 13, 10> + + + stdcall FileWriteString, [STDERR], 'Query: ' + cmp [edi+TSplitURL.query], 0 + je @f + stdcall FileWriteString, [STDERR], [edi+TSplitURL.query] +@@: + stdcall FileWriteString, [STDERR], <txt 13, 10> + + + stdcall FileWriteString, [STDERR], 'Fragment: ' + cmp [edi+TSplitURL.fragment], 0 + je @f + stdcall FileWriteString, [STDERR], [edi+TSplitURL.fragment] +@@: + stdcall FileWriteString, [STDERR], <txt 13, 10, 13, 10, 13, 10> + +end if + + + + popad + return + +.extract: + mov eax, esi + sub eax, ebx + jz .end_extr + stdcall StrExtract, ebx, 0, eax + mov ebx, esi +.end_extr: + retn +endp + +include 'encodings.asm' + +include '%TargetOS%/utf8.asm' + + + +endmodule ADDED freshlib/data/trees.asm Index: freshlib/data/trees.asm ================================================================== --- /dev/null +++ freshlib/data/trees.asm @@ -0,0 +1,323 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent tree library. +; +; Target OS: Any +; +; Dependencies: memory.asm +; +; Notes: +;_________________________________________________________________________________________ + +module "Tree library" + +struct TTItem + .prev dd ? ; 0 if first. + .next dd ? ; 0 if last. + .parent dd ? ; 0 if root + + .firstChild dd ? + .lastChild dd ? +ends + + + +; Inserts TTItem after the specified TTItem +; .item - pointer to the inserted item. +; .after - pointer to the item after which to insert .item +; Returns: +; Nothing + +proc TreeInsAfter, .item, .after +begin + push eax esi edi + + mov esi, [.item] + mov edi, [.after] + + test edi, edi + jz .finish + + mov eax, [edi+TTItem.next] + mov [esi+TTItem.prev], edi + mov [esi+TTItem.next], eax + mov [edi+TTItem.next], esi + + test eax, eax + jz .next_ok + + mov [eax+TTItem.prev], esi + +.next_ok: + mov eax, [edi+TTItem.parent] + mov [esi+TTItem.parent], eax + + test eax, eax + jz .finish + + cmp [eax+TTItem.lastChild], edi + jne .finish + + mov [eax+TTItem.lastChild], esi + +.finish: + pop edi esi eax + return +endp + + +; Inserts TTItem before the specified TTItem +; .item - pointer to the inserted item. +; .before - pointer to the item after which to insert .item +; Returns: +; Nothing + +proc TreeInsBefore, .item, .before +begin + push eax esi edi + + mov esi, [.item] + mov edi, [.before] + mov eax, [edi+TTItem.prev] + + mov [esi+TTItem.prev], eax + mov [esi+TTItem.next], edi + mov [edi+TTItem.prev], esi + + test eax, eax + jz .prev_ok + + mov [eax+TTItem.next], esi + +.prev_ok: + mov eax, [edi+TTItem.parent] + mov [esi+TTItem.parent], eax + + test eax, eax + jz .finish + + cmp [eax+TTItem.firstChild], edi + jne .finish + + mov [eax+TTItem.firstChild], esi + +.finish: + pop edi esi eax + return +endp + +; Appends .item as a last child of the .parent element. + +proc TreeAppendChild, .item, .parent +begin + push edx esi edi + mov edi, [.parent] + test edi, edi + jz .finish + + mov esi, [.item] + mov edx, [edi+TTItem.lastChild] + + test edx, edx + jnz .insert_after + + mov [edi+TTItem.firstChild], esi + mov [edi+TTItem.lastChild], esi + mov [esi+TTItem.parent], edi + jmp .finish + +.insert_after: + stdcall TreeInsAfter, esi, edx + +.finish: + pop edi esi edx + return +endp + + +; Adds .item as a first child of the .parent element. + +proc TreePushChild, .item, .parent +begin + push edx esi edi + + mov esi, [.item] + mov edi, [.parent] + mov edx, [edi+TTItem.firstChild] + + test edx, edx + jnz .insert_before + + mov [edi+TTItem.firstChild], esi + mov [edi+TTItem.lastChild], esi + mov [esi+TTItem.parent], edi + jmp .finish + +.insert_before: + stdcall TreeInsBefore, esi, edx + +.finish: + pop edi esi edx + return +endp + + +; Tears the specified item from the tree it belongs to. +; Does not free the memory. +; The specified item becomes root element of its own tree, +; with all its children. +; Returns: +; eax = pointer to the next item after the teared item. +; or if it is NULL, the pointer to the previous +; item. + +proc TreeTearItem, .item +begin + pushad + + mov ecx, [.item] + mov esi, [ecx + TTItem.prev] + mov edi, [ecx + TTItem.next] + mov edx, [ecx + TTItem.parent] + +; remove the item from the list. + + test esi, esi + jz @f + mov [esi + TTItem.next], edi +@@: + test edi, edi + jz @f + mov [edi + TTItem.prev], esi +@@: + +; fix the first/last children links of the parent if needed. + test edx, edx + jz .parent_ok + + mov eax, [edx + TTItem.firstChild] + mov ebx, [edx + TTItem.lastChild] + + cmp eax, ecx + cmove eax, edi + + cmp ebx, ecx + cmove ebx, esi + + mov [edx + TTItem.firstChild], eax + mov [edx + TTItem.lastChild], ebx + +.parent_ok: + +; fix the item fields. + + xor eax, eax + mov [ecx + TTItem.prev], eax + mov [ecx + TTItem.next], eax + mov [ecx + TTItem.parent], eax + + test edi, edi + cmovz edi, esi + mov [esp+4*regEAX], edi + + popad + return +endp + + +; Recursively frees all the memory of the item and all its children. + +interface TreeNodeFree, .item + +proc TreeFree, .item, .FreeProc +begin + push eax + + mov eax, [.item] + mov eax, [eax+TTItem.firstChild] + +.loop: + test eax, eax + jz .children_ok + + push [eax+TTItem.next] + stdcall TreeFree, eax, [.FreeProc] + pop eax + jmp .loop + +.children_ok: + pop eax + pushad + stdcall [.FreeProc], [.item] + popad + return +endp + + + +; Combines TreeTearItem and TreeFree in one procedure. +; Notice that free without first tearing will break the remaining tree. +; Returns the value from TreeTearItem. +proc TreeTearAndFree, .item, .FreeProc +begin + stdcall TreeTearItem, [.item] + stdcall TreeFree, [.item], [.FreeProc] + return +endp + + +; Destroys the whole root list of the tree and recursively all its children. +proc TreeTearAndFreeAll, .item, .FreeProc +begin + push eax + mov eax, [.item] + +.loop: + test eax, eax + jz .finish + stdcall TreeTearAndFree, eax, [.FreeProc] + jmp .loop + +.finish: + pop eax + return +endp + + +; Returns the next item in the tree. If there is no such item, +; traces back to the parent and their next item and so on to the root. +; Arguments: +; .item - pointer to TTItem +; Returns: +; CF = 0, eax = pointer to the next TTItem +; CF = 1, eax = 0 - next TTItem does not exists. + +proc GetNextItem, .item +begin + push esi + mov esi, [.item] + +.loop: + mov eax, [esi+TTItem.next] + test eax, eax + jnz .exit_ok + + mov esi, [esi+TTItem.parent] + test esi, esi + jnz .loop + + stc + pop esi + return + +.exit_ok: + clc + pop esi + return +endp + + +endmodule ADDED freshlib/data/uconfig.asm Index: freshlib/data/uconfig.asm ================================================================== --- /dev/null +++ freshlib/data/uconfig.asm @@ -0,0 +1,487 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS independent micro configuration files library. +; +; Target OS: Any +; +; Dependencies: strlib.asm; arrays.asm; +; +; Notes: +; +;_________________________________________________________________________________________ +module "uConfig library" + +struct TCfgRecord + .key dd ? + .value dd ? +ends + +iglobal + var procCfgMatchPattern = StrMatchPattern ; StrMatchPattern or StrMatchPatternNoCase +endg + + +proc CfgFreeSection, .ptrRecordArray +begin + push eax + mov eax, [.ptrRecordArray] + + cmp [eax+TArray.itemsize], sizeof.TCfgRecord + jne .error + + shl [eax+TArray.count], 1 ; make + stdcall ListFree, eax, StrDel + clc + pop eax + return + +.error: + stc + pop eax + return +endp + + +;****************************************************************** +; Returns CF=0 and eax=pointer to TArray with TCfgRecord elements. +; CF=1 only if the file does not exists. +; +; Notse: +; 1. if the section does not exists, empty array will be returned. +; 2. The user must free the array after use passing the pointer +; to CfgFreeSection - it will free the array and the contained +; strings as well. +; +;****************************************************************** + +proc CfgGetSection, .cfgFile, .section +begin + pushad + + mov eax, [.cfgFile] + test eax, $ffff0000 + jz .file_ok + + stdcall FileOpenAccess, eax, faReadOnly + jc .finish + +.file_ok: + mov ebx, eax + stdcall FileSeek, ebx, 0, fsFromBegin + + stdcall CreateArray, 8 ; TCfgSectionRecord + jc .finish + + mov edi, eax + + stdcall StrDup, [.section] + mov esi, eax + stdcall StrCharCat, esi, '.*' + +.loop: + stdcall _CfgScanForKey, ebx, esi + jc .end_of_file + + push eax + push ecx + + stdcall AddArrayItems, edi, 1 + mov edi, edx + mov edx, eax + pop [edx+TCfgRecord.key] + pop [edx+TCfgRecord.value] + + stdcall [procCfgMatchPattern], [.section], [edx+TCfgRecord.key] + jc .loop ;??? + inc eax + stdcall StrSplit, [edx+TCfgRecord.key], eax + xchg [edx+TCfgRecord.key], eax + stdcall StrDel, eax + jmp .loop + +.end_of_file: + stdcall StrDel, esi + + test [.cfgFile], $ffff0000 + jz .close_ok + + stdcall FileClose, ebx + +.close_ok: + mov [esp+4*regEAX], edi + clc + +.finish: + popad + return + +endp + + + +proc CfgSaveSection, .cfgFile, .section, .ptr_array +begin + pushad + +; first clean the whole section: + + stdcall CfgGetSection, [.cfgFile], [.section] + jc .error + + mov esi, eax + +; clean all items: + + mov ecx, [esi+TArray.count] + +.clean: + dec ecx + js .end_clean + + stdcall CfgSetStr, [.cfgFile], [.section], [esi+TArray.array+8*ecx+TCfgRecord.key], 0 + jmp .clean + +.end_clean: + mov esi, [.ptr_array] + test esi, esi + jz .end_loop + + cmp [esi+TArray.itemsize], 8 ; two dwords TArray + jne .error + xor ecx, ecx + +.loop: + cmp ecx, [esi+TArray.count] + je .end_loop + + stdcall CfgSetStr, [.cfgFile], [.section], [esi+8*ecx+TArray.array+TCfgRecord.key], [esi+8*ecx+TArray.array+TCfgRecord.value] + inc ecx + jmp .loop + +.end_loop: + clc + popad + return + +.error: + stc + popad + return +endp + + + + +;_________________________________________________________________ +; proc CfgGetInt +; +; Reads an integer number from the config file. +; +; If the key is missing, the value is not a number or some +; other error occurs, returns [.default] and CF=1 +; +; If the value has been found and contains a number +; encoded in FASM format, this number is returned and CF=0 +;_________________________________________________________________ + +proc CfgGetInt, .cfgFile, .section, .key, .default +begin + stdcall CfgGetStr, [.cfgFile], [.section], [.key] + jc .get_default + + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + jc .get_default + + clc + return + +.get_default: + mov eax, [.default] + return +endp + + + +proc CfgSetInt, .cfgFile, .section, .key, .value +begin + push eax + stdcall NumToStr, [.value], ntsDec or ntsSigned + push eax + stdcall CfgSetStr, [.cfgFile], [.section], [.key], eax + stdcall StrDel ; from the stack + pop eax + return +endp + + +;___________________________________________________________________ +; proc CfgGetStr +; +; Reads a string value from the config file. +; +; Arguments: +; .cfgFile - handle of an open file, or string of filename string. +; .section - string with the section of the value +; .key - string with the key of the value. +; +; Returns: +; CF=0; eax - string with the value of the key. +; CF=1; eax=0 - The key is missing or something is wrong with the file, +;___________________________________________________________________ + +proc CfgGetStr, .cfgFile, .section, .key +begin + push ebx ecx edx + + mov eax, [.cfgFile] ; name or handle + test eax, $ffff0000 + jz .file_ok + +; if defined options.DebugMode & options.DebugMode +; pushad +; stdcall StrPtr, eax +; stdcall Output, "Config file path: " +; stdcall Output, eax +; stdcall Output, cDbgNewLine +; popad +; end if + + stdcall FileOpenAccess, eax, faReadOnly + jc .error + +; OutputValue "CfgGetStr file open success. Handle = ", eax, 16, 8 + +.file_ok: + mov ebx, eax + + stdcall FileSeek, ebx, 0, fsFromBegin + + stdcall StrDup, [.section] + stdcall StrCharCat, eax, '.' + stdcall StrCat, eax, [.key] + push eax + + stdcall _CfgScanForKey, ebx, eax + stdcall StrDel ; from the stack + pushf + + test [.cfgFile], $ffff0000 + jz .close_ok + + push eax + stdcall FileClose, ebx + pop eax + +.close_ok: + popf + jc .finish + + stdcall StrDel, ecx + +.finish: + pop edx ecx ebx + return + +.error: + DebugMsg "CfgGetStr open file error!" + stc + jmp .finish + +endp + + + +;___________________________________________________________________ +; proc CfgSetStr +; +; If the specified key exists in the config file, its value is +; replaced with [.value]. +; +; If the key does not exists, it is appended at the end of the file. +; +; If some error occurs - CF=1; +;___________________________________________________________________ + +proc CfgSetStr, .cfgFile, .section, .key, .value +begin + push ebx ecx edx edi + + mov eax, [.cfgFile] + test eax, $ffff0000 + jz .file_ok + + stdcall FileOpenAccess, eax, faReadWrite + faOpenAlways + jc .exit + +.file_ok: + mov ebx, eax + + stdcall FileSeek, ebx, 0, fsFromBegin + + xor edi, edi + + stdcall StrDup, [.section] + stdcall StrCharCat, eax, '.' + stdcall StrCat, eax, [.key] + push eax + + stdcall _CfgScanForKey, ebx, eax + jnc .read_remaining + + pop ecx + jmp .append + +.read_remaining: + stdcall StrDel, eax + stdcall StrDel ; from the stack + + stdcall StrNew + mov edi, eax + +.loop: + stdcall FileReadLine, ebx + jc .end_read + test eax, eax + jz .end_read + + stdcall StrCat, edi, eax + stdcall StrCharCat, edi, $0a0d ;??? + stdcall StrDel, eax + jmp .loop + +.end_read: + stdcall FileSeek, ebx, edx, fsFromBegin + +.append: + cmp [.value], 0 + je .end_append ; if [.value]==0 then the key is simply deleted. + + stdcall StrSetQuotes, ecx, '=' + stdcall StrCharCat, ecx, ' = ' + + stdcall StrDup, [.value] + stdcall StrSetQuotes, eax, '=' + stdcall StrCat, ecx, eax + stdcall StrDel, eax + + stdcall StrCharCat, ecx, $0a0d + stdcall FileWriteString, ebx, ecx + +.end_append: + test edi, edi + jz .finish + + stdcall FileWriteString, ebx, edi ; remaining part of the file... + stdcall StrDel, edi + +.finish: + stdcall FileTruncate, ebx + stdcall StrDel, ecx + + test [.cfgFile], $ffff0000 + jz .close_ok + + stdcall FileClose, ebx + +.close_ok: + clc +.exit: + pop edi edx ecx ebx + return +endp + + + + +proc CfgDelKey, .cfgFile, .section, .key +begin + stdcall CfgSetStr, [.cfgFile], [.section], [.key], 0 + return +endp + + + +;___________________________________________________________________________________ +; proc CfgScanForKey +; +; This is "low-level" procedure that searches already open file for +; a key with the given name. +; +; if the line has been found, returns: +; eax - string handle of the value of the line (the right part of key=value pair). +; ecx - string handle of the key of the line (the left part of key=value pair). +; edx - position in the file where the key/value are located. +; the file is positioned on the start of the next line in the file. +; +; The returned string handle has to be free when not needed. +;___________________________________________________________________________________ + +proc _CfgScanForKey, .hFile, .fullkey +begin +.loop: + stdcall FileSeek, [.hFile], 0, fsFromCurrent + mov edx, eax ; the current possition. + + stdcall FileReadLine, [.hFile] + jc .not_found + test eax, eax + jz .not_found + + mov ecx, eax + + stdcall StrClipSpacesR, ecx + stdcall StrClipSpacesL, ecx + + stdcall StrPtr, ecx + cmp byte [eax], ';' + jne .not_comment + + stdcall StrDel, ecx + jmp .loop + +.not_comment: + stdcall StrSplitList, ecx, '=', TRUE + stdcall StrDel, ecx + + mov ecx, eax + cmp [ecx+TArray.count], 2 + jne .next + + stdcall StrClipQuotes, [ecx+TArray.array] + + stdcall [procCfgMatchPattern], [.fullkey], [ecx+TArray.array] + jc .found + +.next: + stdcall ListFree, ecx, StrDel + jmp .loop + +; found, eax is a hangle of the value. +.found: + push dword [ecx+TArray.array+4] + push dword [ecx+TArray.array] + stdcall FreeMem, ecx + pop ecx + pop eax + stdcall StrClipQuotes, eax + clc + return + +.not_found: + xor eax, eax + stc + return +endp + + + + + + + +endmodule ADDED freshlib/equates/Dummy/allequates.inc Index: freshlib/equates/Dummy/allequates.inc ================================================================== --- /dev/null +++ freshlib/equates/Dummy/allequates.inc @@ -0,0 +1,15 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all equate files. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + ADDED freshlib/equates/KolibriOS/_geometry.inc Index: freshlib/equates/KolibriOS/_geometry.inc ================================================================== --- /dev/null +++ freshlib/equates/KolibriOS/_geometry.inc @@ -0,0 +1,35 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Different geometry structures. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +struct RECT + .left dd ? + .top dd ? + .right dd ? + .bottom dd ? +ends + +struct POINT + .x dd ? + .y dd ? +ends + + +struct TBounds + .x dd ? + .y dd ? + .width dd ? + .height dd ? +ends + ADDED freshlib/equates/KolibriOS/_libFT.inc Index: freshlib/equates/KolibriOS/_libFT.inc ================================================================== --- /dev/null +++ freshlib/equates/KolibriOS/_libFT.inc @@ -0,0 +1,289 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: FreeType library constants and structures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +FT_FACE_FLAG_SCALABLE = $0001 +FT_FACE_FLAG_FIXED_SIZES = $0002 +FT_FACE_FLAG_FIXED_WIDTH = $0004 +FT_FACE_FLAG_SFNT = $0008 +FT_FACE_FLAG_HORIZONTAL = $0010 +FT_FACE_FLAG_VERTICAL = $0020 +FT_FACE_FLAG_KERNING = $0040 +FT_FACE_FLAG_FAST_GLYPHS = $0080 +FT_FACE_FLAG_MULTIPLE_MASTERS = $0100 +FT_FACE_FLAG_GLYPH_NAMES = $0200 +FT_FACE_FLAG_EXTERNAL_STREAM = $0400 +FT_FACE_FLAG_HINTER = $0800 +FT_FACE_FLAG_CID_KEYED = $1000 +FT_FACE_FLAG_TRICKY = $2000 + + +FT_LOAD_DEFAULT = $0 +FT_LOAD_NO_SCALE = $1 +FT_LOAD_NO_HINTING = $2 +FT_LOAD_RENDER = $4 +FT_LOAD_NO_BITMAP = $8 +FT_LOAD_VERTICAL_LAYOUT = $10 +FT_LOAD_FORCE_AUTOHINT = $20 +FT_LOAD_CROP_BITMAP = $40 ; deprecated, ignored +FT_LOAD_PEDANTIC = $80 +FT_LOAD_ADVANCE_ONLY = $100 +FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = $200 ; deprecated, ignored +FT_LOAD_NO_RECURSE = $400 +FT_LOAD_IGNORE_TRANSFORM = $800 +FT_LOAD_MONOCHROME = $1000 +FT_LOAD_LINEAR_DESIGN = $2000 +FT_LOAD_SBITS_ONLY = $4000 +FT_LOAD_NO_AUTOHINT = $8000 +FT_LOAD_COLOR = $100000 + +FT_ADVANCE_FLAG_FAST_ONLY = $20000000 + + +FT_RENDER_MODE_NORMAL = 0 +FT_RENDER_MODE_LIGHT = 1 +FT_RENDER_MODE_MONO = 2 +FT_RENDER_MODE_LCD = 3 +FT_RENDER_MODE_LCD_V = 4 +FT_RENDER_MODE_MAX = 5 + +struc FT_LOAD_TARGET x { + . = (x and 15) shl 16 +} + +FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET FT_RENDER_MODE_NORMAL +FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET FT_RENDER_MODE_LIGHT +FT_LOAD_TARGET_MONO FT_LOAD_TARGET FT_RENDER_MODE_MONO +FT_LOAD_TARGET_LCD FT_LOAD_TARGET FT_RENDER_MODE_LCD +FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET FT_RENDER_MODE_LCD_V + + + +FT_PIXEL_MODE_NONE = 0 +FT_PIXEL_MODE_MONO = 1 +FT_PIXEL_MODE_GRAY = 2 +FT_PIXEL_MODE_GRAY2 = 3 +FT_PIXEL_MODE_GRAY4 = 4 +FT_PIXEL_MODE_LCD = 5 +FT_PIXEL_MODE_LCD_V = 6 +FT_PIXEL_MODE_BGRA = 7 + + +struct FT_Generic + .data dd ? + .finalizer dd ? ; pointer to procedure with one argument. +ends + +struct FT_BBox + .xMin dd ? + .yMin dd ? + .xMax dd ? + .yMax dd ? +ends + +struct FT_Vector + .x dd ? + .y dd ? +ends + +struct FT_Bitmap + .rows dd ? + .width dd ? + .pitch dd ? + .buffer dd ? ; pointer to the buffer. + .num_grays dw ? + .pixel_mode db ? + .palette_mode db ? + .palette dd ? ; pointer to the palette. +ends + + + + +struct FT_Outline + .n_contours dw ? + .n_points dw ? + .points dd ? ; pointer to array of FT_Vector elements. + .tags dd ? ; pointer to byte array. + .contours dd ? ; pointer to word array. + .flags dd ? +ends + + + +struct FT_Glyph_Metrics + .width dd ? + .height dd ? + .horiBearingX dd ? + .horiBearingY dd ? + .horiAdvance dd ? + + .vertBearingX dd ? + .vertBearingY dd ? + .vertAdvance dd ? +ends + + + +struct FT_GlyphSlot + .library dd ? + .face dd ? ; parent FT_Face object + .next dd ? ; pointer tp FT_GlyphSlot + .reserved dd ? + .generic FT_Generic + + .metrics FT_Glyph_Metrics + .linearHoriAdvance dd ? + .linearVertAdvance dd ? + + .advance FT_Vector + + .format dd ? + + .bitmap FT_Bitmap + .bitmap_left dd ? + .bitmap_top dd ? + + .outline FT_Outline + + .num_subglyphs dd ? + .subglyphs dd ? ; pointer to array of FT_SubGlyphRec elements. + + .control_data dd ? + .control_len dd ? + + .lsb_delta dd ? + .rsb_delta dd ? + + .other dd ? + .internal dd ? ; pointer to FT_Slot_InternalRec +ends + + +struct FT_FaceRec + .num_faces dd ? + .face_index dd ? + .face_flags dd ? + .style_flags dd ? + .num_glyphs dd ? + .family_name dd ? + .style_name dd ? + + .num_fixed_sizes dd ? + .available_sizes dd ? + + .num_charmaps dd ? + .charmaps dd ? + .generic FT_Generic + +; scalable fonts members down to .underline_thickness + + .bbpx FT_BBox + + .units_per_EM dw ? + .ascender dw ? + .descender dw ? + .height dw ? + + .max_advance_width dw ? + .max_advance_height dw ? + + .underline_position dw ? + .underline_thickness dw ? + + + .glyph dd ? ; pointer to FT_GlyphSlot + .size dd ? ; pointer to FT_Size + .charmap dd ? ; pointer to FT_CharMap + +; down is the private part. + +ends + + +struct FT_GlyphRec + .library dd ? + .clazz dd ? + .format dd ? + .advance FT_Vector +ends + + +struct FT_BitmapGlyphRec + .root FT_GlyphRec + .left dd ? + .top dd ? + .bitmap FT_Bitmap +ends + + +FT_SIZE_REQUEST_TYPE_NOMINAL = 0 +FT_SIZE_REQUEST_TYPE_REAL_DIM = 1 +FT_SIZE_REQUEST_TYPE_BBOX = 2 +FT_SIZE_REQUEST_TYPE_CELL = 3 +FT_SIZE_REQUEST_TYPE_SCALES = 4 + + +struct FT_Size_RequestRec + .type dd ? + .width dd ? + .height dd ? + .horiResolution dd ? + .vertResolution dd ? +ends + + +struct FT_Size_Metrics + .x_ppem dw ? ; horizontal pixels per EM + .y_ppem dw ? ; vertical pixels per EM + + .x_scale dd ? ; scaling values used to convert font + .y_scale dd ? ; units to 26.6 fractional pixels + + .ascender dd ? ; ascender in 26.6 frac. pixels + .descender dd ? ; descender in 26.6 frac. pixels + .height dd ? ; text height in 26.6 frac. pixels + .max_advance dd ? ; max horizontal advance, in 26.6 pixels +ends + + +struct FT_SizeRec + .face dd ? ; parent face object + .generic FT_Generic ; generic pointer for client uses + .metrics FT_Size_Metrics ; size metrics + .internal: +ends + + +struct FTC_ScalerRec + .face_id dd ? + .width dd ? + .height dd ? + .pixel dd ? + .x_res dd ? + .y_res dd ? +ends + + +struct FTC_ImageType + .face_id dd ? + .width dd ? + .height dd ? + .flags dd ? +ends + + + + +interface FT_Face_Requester, .face_id, .library, .request_data, .pFace ADDED freshlib/equates/KolibriOS/_network.inc Index: freshlib/equates/KolibriOS/_network.inc ================================================================== --- /dev/null +++ freshlib/equates/KolibriOS/_network.inc @@ -0,0 +1,93 @@ +UNIX_PATH_MAX = 108 + + +;Protocol family +AF_UNSPEC = 0 +AF_LOCAL = 1 +AF_INET4 = 2 +AF_INET6 = 10 +AF_PPP = 777 ; FIXME + +AF_INET = AF_INET4 + +PF_UNSPEC = AF_UNSPEC +PF_LOCAL = AF_LOCAL +PF_INET4 = AF_INET4 +PF_INET6 = AF_INET6 +PF_PPP = AF_PPP + +PF_INET = AF_INET + +; Socket types +SOCK_STREAM = 1 +SOCK_DGRAM = 2 +SOCK_RAW = 3 + +; Socket level +SOL_SOCKET = 0xffff + +; Socket options +SO_ACCEPTCON = 1 shl 0 +SO_BROADCAST = 1 shl 1 +SO_DEBUG = 1 shl 2 +SO_DONTROUTE = 1 shl 3 +SO_KEEPALIVE = 1 shl 4 +SO_OOBINLINE = 1 shl 5 +SO_REUSEADDR = 1 shl 6 +SO_REUSEPORT = 1 shl 7 +SO_USELOOPBACK = 1 shl 8 +SO_BINDTODEVICE = 1 shl 9 + +SO_NONBLOCK = 1 shl 31 + +SO_RCVBUF = 0 +SO_SNDBUF = 0 +SO_RCVTIMEO = 0 +SO_SNDTIMEO = 0 +SO_LINGER = 0 + +SO_RCVBUF = 0 +SO_SNDBUF = 0 +SO_RCVTIMEO = 0 +SO_SNDTIMEO = 0 +SO_LINGER = 0 + + +; Socket States +SS_NOFDREF = 0x0001 ; no file table ref any more +SS_ISCONNECTED = 0x0002 ; socket connected to a peer +SS_ISCONNECTING = 0x0004 ; in process of connecting to peer +SS_ISDISCONNECTING = 0x0008 ; in process of disconnecting +SS_CANTSENDMORE = 0x0010 ; can't send more data to peer +SS_CANTRCVMORE = 0x0020 ; can't receive more data from peer +SS_RCVATMARK = 0x0040 ; at mark on input +SS_ISABORTING = 0x0080 ; aborting fd references - close() +SS_RESTARTSYS = 0x0100 ; restart blocked system calls +SS_ISDISCONNECTED = 0x0800 ; socket disconnected from peer + +SS_ASYNC = 0x1000 ; async i/o notify +SS_ISCONFIRMING = 0x2000 ; deciding to accept connection req +SS_MORETOCOME = 0x4000 + +SS_BLOCKED = 0x8000 + + +SOCKET_MAXDATA = 4096*64 ; must be 4096*(power of 2) where 'power of 2' is at least 8 + + +; Error Codes +ENOBUFS = 1 +EINPROGRESS = 2 +EOPNOTSUPP = 4 +EWOULDBLOCK = 6 +ENOTCONN = 9 +EALREADY = 10 +EINVAL = 11 +EMSGSIZE = 12 +ENOMEM = 18 +EADDRINUSE = 20 +ECONNREFUSED = 61 +ECONNRESET = 52 +EISCONN = 56 +ETIMEDOUT = 60 +ECONNABORTED = 53 ADDED freshlib/equates/KolibriOS/_syscalls.inc Index: freshlib/equates/KolibriOS/_syscalls.inc ================================================================== --- /dev/null +++ freshlib/equates/KolibriOS/_syscalls.inc @@ -0,0 +1,214 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license. | +;|_______________________________________________________________________________________| +; +; Description: KolibriOS system functions and related constants. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +sys_drawwindow = 0 ; DrawWindow +syscall_setpixel = 1 ; SetPixel +sys_getkey = 2 ; GetKey +sys_clock = 3 ; GetTime +sys_writetext = 4 ; WriteText +sys_delay_hs = 5 ; DelayHs +sys_openramdiskfile = 6 ; OpenRamdiskFile +sys_putimage = 7 ; PutImage +sys_button = 8 ; DefineButton +sys_cpuusage = 9 ; GetProcessInfo +sys_waitforevent = 10 ; WaitForEvent +sys_getevent = 11 ; CheckForEvent +sys_redrawstat = 12 ; BeginDraw and EndDraw +sys_drawrect = 13 ; DrawRect +sys_getscreensize = 14 ; GetScreenSize +sys_background = 15 ; bgr +sys_cachetodiskette = 16 ; FlushFloppyCache +sys_getbutton = 17 ; GetButton +sys_system = 18 ; System Services +sys_midi = 20 ; ResetMidi and OutputMidi +sys_setup = 21 ; SetMidiBase,SetKeymap,SetShiftKeymap,. +sys_settime = 22 ; setting date,time,clock and alarm ; clock +sys_wait_event_timeout = 23 ; TimeOutWaitForEvent +sys_cdaudio = 24 ; PlayCdTrack,StopCd and GetCdPlaylist +sys_getsetup = 26 ; GetMidiBase,GetKeymap,GetShiftKeymap,. +sys_date = 29 ; GetDate +sys_current_directory = 30 ; Get/SetCurrentDirectory +sys_getpixel = 35 ; GetPixel +sys_getarea = 36 ; GetArea +sys_readmousepos = 37 ; GetMousePosition_ScreenRelative,. +syscall_drawline = 38 ; DrawLine +sys_getbackground = 39 ; GetBackgroundSize,ReadBgrData,. +sys_set_app_param = 40 ; WantEvents +sys_get_irq_owner = 41 ; GetIrqOwner +sys_get_irq_data = 42 ; ReadIrqData +sys_outport = 43 ; SendDeviceData +sys_program_irq = 44 ; ProgramIrqs +sys_reserve_free_irq = 45 ; ReserveIrq and FreeIrq +sys_reserveportarea = 46 ; ReservePortArea and FreePortArea +sys_display_number = 47 ; WriteNum +sys_display_settings = 48 ; SetRedrawType and SetButtonType +sys_apm = 49 ; Advanced Power Management (APM) +sys_random_shaped_window= 50 ; Window shape & scale +sys_threads = 51 ; Threads +sys_stack_driver_stat = 52 ; Stack driver status +sys_socket_old = 53 ; Socket interface + +sys_sound_interface = 55 ; Sound interface +sys_pcibios = 57 ; PCI BIOS32 +sys_file_system = 58 ; Common file system interface +sys_IPC = 60 ; Inter Process Communication +sys_gs = 61 ; Direct graphics access +sys_pci = 62 ; PCI functions +sys_msg_board = 63 ; System message board +sys_resize_app_memory = 64 ; Resize application memory usage +sys_putimage_palette = 65 ; PutImagePalette +sys_process_def = 66 ; Process definitions - keyboard +sys_window_move = 67 ; Window move or resize +sys_f68 = 68 ; Some internal services +sys_debug_services = 69 ; Debug +sys_file_system_lfn = 70 ; Common file system interface, version 2 +sys_windowsettings = 71 ; Window settings +sys_sendwindowmsg = 72 ; Send window message +sys_socket = 75 ; http://wiki.kolibrios.org/wiki/New_network_api +sys_end = -1 ; end application + + + + +; sys_socket subfunctions + +sockOpen = 0 +sockClose = 1 +sockBind = 2 +sockListen = 3 +sockConnect = 4 +sockAccept = 5 +sockSend = 6 +sockReceive = 7 +sockSetOptions = 8 +sockGetOptions = 9 +sockPair = 10 + + +; sys_file_system_lfn subfunctions + +fsfRead = 0 +fsfReadDir = 1 +fsfCreate = 2 +fsfWrite = 3 +fsfSetSize = 4 +fsfFileInfo = 5 +fsfSetAttr = 6 +fsfExec = 7 +fsfDel = 8 ; for files and directories +fsfCreateDir = 9 + + + + + + +; windows/thread events + +eventRedraw = 1 +eventKeyboard = 2 +eventGUIButton = 3 +eventReserved = 4 ; reserved, not used +eventDesktopRepainted = 5 +eventMouse = 6 ; move or key pressed +eventIPC = 7 +eventNetwork = 8 +eventDebug = 9 +eventIRQ0 = 16 +eventIRQ1 = 17 +eventIRQ2 = 18 +eventIRQ3 = 19 +eventIRQ4 = 20 +eventIRQ5 = 21 +eventIRQ6 = 22 +eventIRQ7 = 23 +eventIRQ8 = 24 +eventIRQ9 = 25 +eventIRQ10 = 26 +eventIRQ11 = 27 +eventIRQ12 = 28 +eventIRQ13 = 29 +eventIRQ14 = 30 +eventIRQ15 = 31 + +emaskRedraw = 1 +emaskKeyboard = 2 +emaskGUIButton = 4 +emaskReserved = 8 +emaskDesktopRedraw = 16 +emaskMouse = 32 +emaskIPCEvent = 64 +emaskNetwork = 128 +emaskDebug = 256 + + +struct __TThreadInfo + .cpu_usage dd ? + .zposWindow dw ? + .nWindowSlot dw ? + .reserve1 dw ? + .ProcessName rb 11 + .reserve2 db ? + .processAddr dd ? + .processSize dd ? + .TID dd ? + .wndPosX dd ? + .wndPosY dd ? + .wndSizeX dd ? + .wndSizeY dd ? + .ThreadState dw ? + .reserve3 dw ? + .ClientPosX dd ? + .ClientPosY dd ? + .ClientWidth dd ? + .ClientHeight dd ? + .WindowState db ? + .EventMask dd ? + .min_size = $$ - $ + rb 1024 - .min_size +ends + + +accessRead = 1 +accessWrite = 2 + + + +; Error codes + +errSuccess = 0 + +errBaseNotDefined = 1 ; base and/or partition of a hard disk is not defined + ; (by subfunctions 7, 8 of function 21) + +errFunctionNotSupported = 2 ; function is not supported for the given file system +errUnknownFileSystem = 3 ; unknown file system +;errReserved = 4 ; reserved, is never returned in the current implementation +errFileNotFound = 5 ; file not found +errEndOfFile = 6 ; end of file, EOF +errBadPointer = 7 ; pointer lies outside of application memory +errDiskFull = 8 ; disk is full +errBadFat = 9 ; FAT table is destroyed +errAccessDenied = 10 ; access denied +errDeviceError = 11 ; device error + + +errFileAlreadyExists = 100 ; FreshLib error code on faCreateOnly + +; Application start functions can return also following errors: + +errNotEnoughMemory = 30 ; not enough memory +errNotExecutable = 31 ; file is not executable +errTooManyProcesses = 32 ; too many processes ADDED freshlib/equates/KolibriOS/allequates.inc Index: freshlib/equates/KolibriOS/allequates.inc ================================================================== --- /dev/null +++ freshlib/equates/KolibriOS/allequates.inc @@ -0,0 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all KolibriOS equate files. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +include '_syscalls.inc' +include '_geometry.inc' +include '_network.inc' +include '_libFT.inc' Index: freshlib/equates/Linux/XftCompat.inc ================================================================== --- freshlib/equates/Linux/XftCompat.inc +++ freshlib/equates/Linux/XftCompat.inc @@ -1,161 +1,161 @@ -; -; * $Id: XftCompat.h,v 1.4 2005/07/03 07:00:57 daniels Exp $ -; * -; * Copyright © 2001 Keith Packard -; * -; * Permission to use, copy, modify, distribute, and sell this software and its -; * documentation for any purpose is hereby granted without fee, provided that -; * the above copyright notice appear in all copies and that both that -; * copyright notice and this permission notice appear in supporting -; * documentation, and that the name of Keith Packard not be used in -; * advertising or publicity pertaining to distribution of the software without -; * specific, written prior permission. Keith Packard makes no -; * representations about the suitability of this software for any purpose. It -; * is provided "as is" without express or implied warranty. -; * -; * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -; * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -; * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR -; * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -; * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -; * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -; * PERFORMANCE OF THIS SOFTWARE. -; - -if ~defined _XFTCOMPAT_H_ | defined @f -@@: -_XFTCOMPAT_H_ = 1 -include "X11/Xfuncproto.h" - - -; -; * Compatibility definitions -- map Fc names to Xft names -; - -XftChar8 equ FcChar8 -XftChar16 equ FcChar16 -XftChar32 equ FcChar32 - -XFT_FAMILY equ FC_FAMILY -XFT_STYLE equ FC_STYLE -XFT_SLANT equ FC_SLANT -XFT_WEIGHT equ FC_WEIGHT -XFT_SIZE equ FC_SIZE -XFT_PIXEL_SIZE equ FC_PIXEL_SIZE -XFT_SPACING equ FC_SPACING -XFT_FOUNDRY equ FC_FOUNDRY -XFT_ANTIALIAS equ FC_ANTIALIAS -XFT_FILE equ FC_FILE -XFT_INDEX equ FC_INDEX -XFT_RASTERIZER equ FC_RASTERIZER -XFT_OUTLINE equ FC_OUTLINE -XFT_SCALABLE equ FC_SCALABLE -XFT_RGBA equ FC_RGBA - -; defaults from resources -XFT_SCALE equ FC_SCALE -XFT_MINSPACE equ FC_MINSPACE -XFT_DPI equ FC_DPI - -; specific to FreeType rasterizer -XFT_CHAR_WIDTH equ FC_CHAR_WIDTH -XFT_CHAR_HEIGHT equ FC_CHAR_HEIGHT -XFT_MATRIX equ FC_MATRIX - -XFT_WEIGHT_LIGHT equ FC_WEIGHT_LIGHT -XFT_WEIGHT_MEDIUM equ FC_WEIGHT_MEDIUM -XFT_WEIGHT_DEMIBOLD equ FC_WEIGHT_DEMIBOLD -XFT_WEIGHT_BOLD equ FC_WEIGHT_BOLD -XFT_WEIGHT_BLACK equ FC_WEIGHT_BLACK - -XFT_SLANT_ROMAN equ FC_SLANT_ROMAN -XFT_SLANT_ITALIC equ FC_SLANT_ITALIC -XFT_SLANT_OBLIQUE equ FC_SLANT_OBLIQUE - -XFT_PROPORTIONAL equ FC_PROPORTIONAL -XFT_MONO equ FC_MONO -XFT_CHARCELL equ FC_CHARCELL - -XFT_RGBA_UNKNOWN equ FC_RGBA_UNKNOWN -XFT_RGBA_RGB equ FC_RGBA_RGB -XFT_RGBA_BGR equ FC_RGBA_BGR -XFT_RGBA_VRGB equ FC_RGBA_VRGB -XFT_RGBA_VBGR equ FC_RGBA_VBGR -XFT_RGBA_NONE equ FC_RGBA_NONE - -; -; * Old constants -; -XFT_ENCODING equ "encoding" - -XftType equ FcType - -XftMatrix equ FcMatrix - - -XftResult equ FcResult - -XftResultMatch equ FcResultMatch -XftResultNoMatch equ FcResultNoMatch -XftResultTypeMismatch equ FcResultTypeMismatch -XftResultNoId equ FcResultNoId - -XftValue equ FcValue -XftPattern equ FcPattern -XftFontSet equ FcFontSet -XftObjectSet equ FcObjectSet - -XftGlyphExists equ XftCharExists - -XftObjectSetCreate equ FcObjectSetCreate -XftObjectSetAdd equ FcObjectSetAdd -XftObjectSetDestroy equ FcObjectSetDestroy -XftObjectSetVaBuild equ FcObjectSetVaBuild -XftObjectSetBuild equ FcObjectSetBuild - -XftFontSetMatch equ FcFontSetMatch -XftFontSetDestroy equ FcFontSetDestroy - -XftMatrixEqual equ FcMatrixEqual -XftMatrixMultiply equ FcMatrixMultiply -XftMatrixRotate equ FcMatrixRotate -XftMatrixScale equ FcMatrixScale -XftMatrixShear equ FcMatrixShear - -XftPatternCreate equ FcPatternCreate -XftPatternDuplicate equ FcPatternDuplicate -XftValueDestroy equ FcValueDestroy -XftValueListDestroy equ FcValueListDestroy -XftPatternDestroy equ FcPatternDestroy -XftPatternFind equ FcPatternFind -XftPatternAdd equ FcPatternAdd -XftPatternGet equ FcPatternGet -XftPatternDel equ FcPatternDel -XftPatternAddInteger equ FcPatternAddInteger -XftPatternAddDouble equ FcPatternAddDouble -XftPatternAddMatrix equ FcPatternAddMatrix -XftPatternAddBool equ FcPatternAddBool -XftPatternGetInteger equ FcPatternGetInteger -XftPatternGetDouble equ FcPatternGetDouble -XftPatternGetMatrix equ FcPatternGetMatrix -XftPatternGetBool equ FcPatternGetBool -XftPatternVaBuild equ FcPatternVaBuild -XftPatternBuild equ FcPatternBuild - -XftUtf8ToUcs = 4 - FcUtf8ToUcs4 -XftUtf = 8 -Len FcUtf8Len - -XftTypeVoid equ FcTypeVoid -XftTypeInteger equ FcTypeInteger -XftTypeDouble equ FcTypeDouble -XftTypeString equ FcTypeString -XftTypeBool equ FcTypeBool -XftTypeMatrix equ FcTypeMatrix - - - - - -end if +; +; * $Id: XftCompat.h,v 1.4 2005/07/03 07:00:57 daniels Exp $ +; * +; * Copyright © 2001 Keith Packard +; * +; * Permission to use, copy, modify, distribute, and sell this software and its +; * documentation for any purpose is hereby granted without fee, provided that +; * the above copyright notice appear in all copies and that both that +; * copyright notice and this permission notice appear in supporting +; * documentation, and that the name of Keith Packard not be used in +; * advertising or publicity pertaining to distribution of the software without +; * specific, written prior permission. Keith Packard makes no +; * representations about the suitability of this software for any purpose. It +; * is provided "as is" without express or implied warranty. +; * +; * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +; * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +; * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR +; * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +; * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +; * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +; * PERFORMANCE OF THIS SOFTWARE. +; + +if ~defined _XFTCOMPAT_H_ | defined @f +@@: +_XFTCOMPAT_H_ = 1 +include "X11/Xfuncproto.h" + + +; +; * Compatibility definitions -- map Fc names to Xft names +; + +XftChar8 equ FcChar8 +XftChar16 equ FcChar16 +XftChar32 equ FcChar32 + +XFT_FAMILY equ FC_FAMILY +XFT_STYLE equ FC_STYLE +XFT_SLANT equ FC_SLANT +XFT_WEIGHT equ FC_WEIGHT +XFT_SIZE equ FC_SIZE +XFT_PIXEL_SIZE equ FC_PIXEL_SIZE +XFT_SPACING equ FC_SPACING +XFT_FOUNDRY equ FC_FOUNDRY +XFT_ANTIALIAS equ FC_ANTIALIAS +XFT_FILE equ FC_FILE +XFT_INDEX equ FC_INDEX +XFT_RASTERIZER equ FC_RASTERIZER +XFT_OUTLINE equ FC_OUTLINE +XFT_SCALABLE equ FC_SCALABLE +XFT_RGBA equ FC_RGBA + +; defaults from resources +XFT_SCALE equ FC_SCALE +XFT_MINSPACE equ FC_MINSPACE +XFT_DPI equ FC_DPI + +; specific to FreeType rasterizer +XFT_CHAR_WIDTH equ FC_CHAR_WIDTH +XFT_CHAR_HEIGHT equ FC_CHAR_HEIGHT +XFT_MATRIX equ FC_MATRIX + +XFT_WEIGHT_LIGHT equ FC_WEIGHT_LIGHT +XFT_WEIGHT_MEDIUM equ FC_WEIGHT_MEDIUM +XFT_WEIGHT_DEMIBOLD equ FC_WEIGHT_DEMIBOLD +XFT_WEIGHT_BOLD equ FC_WEIGHT_BOLD +XFT_WEIGHT_BLACK equ FC_WEIGHT_BLACK + +XFT_SLANT_ROMAN equ FC_SLANT_ROMAN +XFT_SLANT_ITALIC equ FC_SLANT_ITALIC +XFT_SLANT_OBLIQUE equ FC_SLANT_OBLIQUE + +XFT_PROPORTIONAL equ FC_PROPORTIONAL +XFT_MONO equ FC_MONO +XFT_CHARCELL equ FC_CHARCELL + +XFT_RGBA_UNKNOWN equ FC_RGBA_UNKNOWN +XFT_RGBA_RGB equ FC_RGBA_RGB +XFT_RGBA_BGR equ FC_RGBA_BGR +XFT_RGBA_VRGB equ FC_RGBA_VRGB +XFT_RGBA_VBGR equ FC_RGBA_VBGR +XFT_RGBA_NONE equ FC_RGBA_NONE + +; +; * Old constants +; +XFT_ENCODING equ "encoding" + +XftType equ FcType + +XftMatrix equ FcMatrix + + +XftResult equ FcResult + +XftResultMatch equ FcResultMatch +XftResultNoMatch equ FcResultNoMatch +XftResultTypeMismatch equ FcResultTypeMismatch +XftResultNoId equ FcResultNoId + +XftValue equ FcValue +XftPattern equ FcPattern +XftFontSet equ FcFontSet +XftObjectSet equ FcObjectSet + +XftGlyphExists equ XftCharExists + +XftObjectSetCreate equ FcObjectSetCreate +XftObjectSetAdd equ FcObjectSetAdd +XftObjectSetDestroy equ FcObjectSetDestroy +XftObjectSetVaBuild equ FcObjectSetVaBuild +XftObjectSetBuild equ FcObjectSetBuild + +XftFontSetMatch equ FcFontSetMatch +XftFontSetDestroy equ FcFontSetDestroy + +XftMatrixEqual equ FcMatrixEqual +XftMatrixMultiply equ FcMatrixMultiply +XftMatrixRotate equ FcMatrixRotate +XftMatrixScale equ FcMatrixScale +XftMatrixShear equ FcMatrixShear + +XftPatternCreate equ FcPatternCreate +XftPatternDuplicate equ FcPatternDuplicate +XftValueDestroy equ FcValueDestroy +XftValueListDestroy equ FcValueListDestroy +XftPatternDestroy equ FcPatternDestroy +XftPatternFind equ FcPatternFind +XftPatternAdd equ FcPatternAdd +XftPatternGet equ FcPatternGet +XftPatternDel equ FcPatternDel +XftPatternAddInteger equ FcPatternAddInteger +XftPatternAddDouble equ FcPatternAddDouble +XftPatternAddMatrix equ FcPatternAddMatrix +XftPatternAddBool equ FcPatternAddBool +XftPatternGetInteger equ FcPatternGetInteger +XftPatternGetDouble equ FcPatternGetDouble +XftPatternGetMatrix equ FcPatternGetMatrix +XftPatternGetBool equ FcPatternGetBool +XftPatternVaBuild equ FcPatternVaBuild +XftPatternBuild equ FcPatternBuild + +XftUtf8ToUcs = 4 + FcUtf8ToUcs4 +XftUtf = 8 +Len FcUtf8Len + +XftTypeVoid equ FcTypeVoid +XftTypeInteger equ FcTypeInteger +XftTypeDouble equ FcTypeDouble +XftTypeString equ FcTypeString +XftTypeBool equ FcTypeBool +XftTypeMatrix equ FcTypeMatrix + + + + + +end if ADDED freshlib/equates/Linux/_XLib.inc Index: freshlib/equates/Linux/_XLib.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_XLib.inc @@ -0,0 +1,1532 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: XLib specific constants and structures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +; X Protocol + X_PROTOCOL = 11 + X_PROTOCOL_REVISION = 0 + +;X Constants + +None = 0 +ParentRelative = 1 +CopyFromParent = 0 +PointerWindow = 0 +InputFocus = 1 +PointerRoot = 1 +AnyPropertyType = 0 +AnyKey = 0 +AnyButton = 0 +AllTemporary = 0 +CurrentTime = 0 +NoSymbol = 0 + +;Event Masks + +NoEventMask = 0h +KeyPressMask = 1h +KeyReleaseMask = 2h +ButtonPressMask = 4h +ButtonReleaseMask = 8h +EnterWindowMask = 10h +LeaveWindowMask = 20h +PointerMotionMask = 40h +PointerMotionHintMask = 80h +Button1MotionMask = 100h +Button2MotionMask = 200h +Button3MotionMask = 400h +Button4MotionMask = 800h +Button5MotionMask = 1000h +ButtonMotionMask = 2000h +KeymapStateMask = 4000h +ExposureMask = 8000h +VisibilityChangeMask = 10000h +StructureNotifyMask = 20000h +ResizeRedirectMask = 40000h +SubstructureNotifyMask = 80000h +SubstructureRedirectMask = 100000h +FocusChangeMask = 200000h +PropertyChangeMask = 400000h +ColormapChangeMask = 800000h +OwnerGrabButtonMask = 1000000h + +AllEventsMask = 1fbff7fh ;1ffffffh + + +QueuedAlready = 0 +QueuedAfterReading = 1 +QueuedAfterFlush = 2 + + +;Event Names + +KeyPress = 2 +KeyRelease = 3 +ButtonPress = 4 +ButtonRelease = 5 +MotionNotify = 6 +EnterNotify = 7 +LeaveNotify = 8 +FocusIn = 9 +FocusOut = 10 +KeymapNotify = 11 +Expose = 12 +GraphicsExpose = 13 +NoExpose = 14 +VisibilityNotify = 15 +CreateNotify = 16 +DestroyNotify = 17 +UnmapNotify = 18 +MapNotify = 19 +MapRequest = 20 +ReparentNotify = 21 +ConfigureNotify = 22 +ConfigureRequest = 23 +GravityNotify = 24 +ResizeRequest = 25 +CirculateNotify = 26 +CirculateRequest = 27 +PropertyNotify = 28 +SelectionClear = 29 +SelectionRequest = 30 +SelectionNotify = 31 +ColormapNotify = 32 +ClientMessage = 33 +MappingNotify = 34 +LASTEvent = 35 + +;Key Masks + +ShiftMask = 1h +LockMask = 2h +ControlMask = 4h +Mod1Mask = 8h +Mod2Mask = 10h +Mod3Mask = 20h +Mod4Mask = 40h +Mod5Mask = 80h + +;Modifier Names + +ShiftMapIndex = 0 +LockMapIndex = 1 +ControlMapIndex = 2 +Mod1MapIndex = 3 +Mod2MapIndex = 4 +Mod3MapIndex = 5 +Mod4MapIndex = 6 +Mod5MapIndex = 7 + +;Button Masks + +Button1Mask = 100h +Button2Mask = 200h +Button3Mask = 400h +Button4Mask = 800h +Button5Mask = 1000h +AnyModifier = 10000h + +;Button Names + +Button1 = 1 +Button2 = 2 +Button3 = 3 +Button4 = 4 +Button5 = 5 + +;Notify Modes +NotifyNormal = 0 +NotifyGrab = 1 +NotifyUngrab = 2 +NotifyWhileGrabbed = 3 +NotifyHint = 1 + +;Notify Detail + +NotifyAncestor = 0 +NotifyVirtual = 1 +NotifyInferior = 2 +NotifyNonlinear = 3 +NotifyNonlinearVirtual = 4 +NotifyPointer = 5 +NotifyPointerRoot = 6 +NotifyDetailNone = 7 + +;Visibility Notify + +VisibilityUnobscured = 0 +VisibilityPartiallyObscured = 1 +VisibilityFullyObscured = 2 + +;Circulation request + +PlaceOnTop = 0 +PlaceOnBottom = 1 + +;Protocol Families + +FamilyInternet = 0 +FamilyDECnet = 1 +FamilyChaos = 2 +FamilyInternet6 = 6 + +;Unspecific authentication families + +FamilyServerInterpreted = 5 + +;Property Notification + +PropertyNewValue = 0 +PropertyDelete = 1 + +;Color Map notification + +ColormapUninstalled = 0 +ColormapInstalled = 1 + +;Grab Modes +GrabModeSync = 0 +GrabModeAsync = 1 + +;Grab reply status +GrabSuccess = 0 +AlreadyGrabbed = 1 +GrabInvalidTime = 2 +GrabNotViewable = 3 +GrabFrozen = 4 + +;AllowEvents modes +AsyncPointer = 0 +SyncPointer = 1 +ReplayPointer = 2 +AsyncKeyboard = 3 +SyncKeyboard = 4 +ReplayKeyboard = 5 +AsyncBoth = 6 +SyncBoth = 7 + +;InputFocus specific + +RevertToNone = None +RevertToPointerRoot = PointerRoot +RevertToParent = 2 + +;Error Codes +Success = 0 +BadRequest = 1 +BadValue = 2 +BadWindow = 3 +BadPixmap = 4 +BadAtom = 5 +BadCursor = 6 +BadFont = 7 +BadMatch = 8 +BadDrawable = 9 +BadAccess = 10 +BadAlloc = 11 +BadColor = 12 +BadGC = 13 +BadIDChoice = 14 +BadName = 15 +BadLength = 16 +BadImplementation = 17 +FirstExtensionError = 128 +LastExtensionError = 255 + +;Window Classes + +InputOutput = 1 +InputOnly = 2 + +;Window Attributes +CWBackPixmap = 1h +CWBackPixel = 2h +CWBorderPixmap = 4h +CWBorderPixel = 8h +CWBitGravity = 10h +CWWinGravity = 20h +CWBackingStore = 40h +CWBackingPlanes = 80h +CWBackingPixel = 100h +CWOverrideRedirect = 200h +CWSaveUnder = 400h +CWEventMask = 800h +CWDontPropagate = 1000h +CWColormap = 2000h +CWCursor = 4000h + +;ConfigureWindow Structure +CWX = 1h +CWY = 2h +CWWidth = 4h +CWHeight = 8h +CWBorderWidth = 10h +CWSibling = 20h +CWStackMode = 40h + +;Bit Gravity +ForgetGravity = 0 +NorthWestGravity = 1 +NorthGravity = 2 +NorthEastGravity = 3 +WestGravity = 4 +CenterGravity = 5 +EastGravity = 6 +SouthWestGravity = 7 +SouthGravity = 8 +SouthEastGravity = 9 +StaticGravity = 10 + +;Window Gravity +UnmapGravity = 0 + +;CreateWindow backing-store hint +NotUseful = 0 +WhenMapped = 1 +Always = 2 + +;GetWindowAttributes reply +IsUnmapped = 0 +IsUnviewable = 1 +IsViewable = 2 + +;Used in ChangeSaveSet +SetModeInsert = 0 +SetModeDelete = 1 + +;Used in ChangeCloseDownMode +DestroyAll = 0 +RetainPermanent = 1 +RetainTemporary = 2 + +;Window stacking method (in configureWindow) +Above = 0 +Below = 1 +TopIf = 2 +BottomIf = 3 +Opposite = 4 + +;Circulation direction +RaiseLowest = 0 +LowerHighest = 1 + +;Property modes +PropModeReplace = 0 +PropModePrepend = 1 +PropModeAppend = 2 + +;Graphics Functions +GXclear = 0 +GXand = 1 +GXandReverse = 2 +GXcopy = 3 +GXandInverted = 4 +GXnoop = 5 +GXxor = 6 +GXor = 7 +GXnor = 8 +GXequiv = 9 +GXinvert = 10 +GXorReverse = 11 +GXcopyInverted = 12 +GXorInverted = 13 +GXnand = 14 +GXset = 15 + +;LineStyle +LineSolid = 0 +LineOnOffDash = 1 +LineDoubleDash = 2 + +;capStyle +CapNotLast = 0 +CapButt = 1 +CapRound = 2 +CapProjecting = 3 + +;joinStyle +JoinMiter = 0 +JoinRound = 1 +JoinBevel = 2 + +;fillStyle +FillSolid = 0 +FillTiled = 1 +FillStippled = 2 +FillOpaqueStippled = 3 + +;fillRule + +EvenOddRule = 0 +WindingRule = 1 + +;subwindow mode + +ClipByChildren = 0 +IncludeInferiors = 1 + +;SetClipRectangles ordering + +Unsorted = 0 +YSorted = 1 +YXSorted = 2 +YXBanded = 3 + +;CoordinateMode for drawing routines + +CoordModeOrigin = 0 +CoordModePrevious = 1 + +;Polygon shapes + +Complex = 0 +Nonconvex = 1 +Convex = 2 + +;Arc modes for PolyFillArc + +ArcChord = 0 +ArcPieSlice = 1 + +;GC components + +GCFunction = 1h +GCPlaneMask = 2h +GCForeground = 4h +GCBackground = 8h +GCLineWidth = 10h +GCLineStyle = 20h +GCCapStyle = 40h +GCJoinStyle = 80h +GCFillStyle = 100h +GCFillRule = 200h +GCTile = 400h +GCStipple = 800h +GCTileStipXOrigin = 1000h +GCTileStipYOrigin = 2000h +GCFont = 4000h +GCSubwindowMode = 8000h +GCGraphicsExposures = 10000h +GCClipXOrigin = 20000h +GCClipYOrigin = 40000h +GCClipMask = 80000h +GCDashOffset = 100000h +GCDashList = 200000h +GCArcMode = 400000h + +GCLastBit = 22 + +struct XRectangle + .x dw ? + .y dw ? + .width dw ? + .height dw ? +ends + + +GCAll = (1 shl (GCLastBit+1)) -1 + +struct XGCValues + .function dd ? ; logical operation + .plane_mask dd ? ; plane mask + .foreground dd ? ; foreground pixel + .background dd ? ; background pixel + .line_width dd ? ; line width (in pixels) + .line_style dd ? ; LineSolid, LineOnOffDash, LineDoubleDash + .cap_style dd ? ; CapNotLast, CapButt, CapRound, CapProjecting + .join_style dd ? ; JoinMiter, JoinRound, JoinBevel + .fill_style dd ? ; FillSolid, FillTiled, FillStippled FillOpaqueStippled + .fill_rule dd ? ; EvenOddRule, WindingRule + .arc_mode dd ? ; ArcChord, ArcPieSlice + .tile dd ? ; tile pixmap for tiling operations + .stipple dd ? ; stipple 1 plane pixmap for stippling + .ts_x_origin dd ? ; offset for tile or stipple operations + .ts_y_origin dd ? + .font dd ? ; default text font for text operations + .subwindow_mode dd ? ; ClipByChildren, IncludeInferiors + .fraphics_exposures dd ? ; boolean, should exposures be generated + .clip_x_origin dd ? ; origin for clipping + .clip_y_origin dd ? + .clip_mask dd ? ; bitmap clipping; other calls for rects + .dash_offset dd ? ; patterned/dashed line information + .dashes dd ? +ends + + +;used in QueryFont -- draw direction + +FontLeftToRight = 0 +FontRightToLeft = 1 + +FontChange = 255 + +;ImageFormat -- PutImage, GetImage + +XYBitmap = 0 +XYPixmap = 1 +ZPixmap = 2 + +;For CreateColormap + +AllocNone = 0 +AllocAll = 1 + + +;Flags used in StoreNamedColor, StoreColors + +DoRed = 1h +DoGreen = 2h +DoBlue = 4h + +;QueryBestSize Class + +CursorShape = 0 +TileShape = 1 +StippleShape = 2 + +;Keyboard pointer stuff + +AutoRepeatModeOff = 0 +AutoRepeatModeOn = 1 +AutoRepeatModeDefault = 2 + +LedModeOff = 0 +LedModeOn = 1 + +;masks for ChangeKeyboardControl + +KBKeyClickPercent = 1h +KBBellPercent = 2h +KBBellPitch = 4h +KBBellDuration = 8h +KBLed = 10h +KBLedMode = 20h +KBKey = 40h +KBAutoRepeatMode = 80h + +MappingSuccess = 0 +MappingBusy = 1 +MappingFailed = 2 + +MappingModifier = 0 +MappingKeyboard = 1 +MappingPointer = 2 + +;Screensaver stuff + +DontPreferBlanking = 0 +PreferBlanking = 1 +DefaultBlanking = 2 + +DisableScreenSaver = 0 +DisableScreenInterval = 0 + +DontAllowExposures = 0 +AllowExposures = 1 +DefaultExposures = 2 + +;for ForceScreenSaver + +ScreenSaverReset = 0 +ScreenSaverActive = 1 + +;for ChangeHosts + +HostInsert = 0 +HostDelete = 1 + +;for ChangeAccessControl + +EnableAccess = 1 +DisableAccess = 0 + +;display classes + +StaticGray = 0 +GrayScale = 1 +StaticColor = 2 +PseudoColor = 3 +TrueColor = 4 +DirectColor = 5 + + +;Byte order used in imageByteOrder and bitmapBitOrder + +LSBFirst = 0 +MSBFirst = 1 + +;Keyboard and Pointer Event Structures + +struct XButtonEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .root rd 1 + .subwindow rd 1 + .time rd 1 + .x rd 1 + .y rd 1 + .x_root rd 1 + .y_root rd 1 + .state rd 1 + .button rd 1 + .same_screen rd 1 +ends + + +struct XButtonPressedEvent + . XButtonEvent +ends + +struct XButtonReleasedEvent + . XButtonEvent +ends + +struct XKeyEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .root rd 1 + .subwindow rd 1 + .time rd 1 + .x rd 1 + .y rd 1 + .x_root rd 1 + .y_root rd 1 + .state rd 1 + .keycode rd 1 + .same_screen rd 1 +ends + + +struct XKeyPressedEvent + . XKeyEvent +ends + +struct XKeyReleasedEvent + . XKeyEvent +ends + + +struct XMotionEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .root rd 1 + .subwindow rd 1 + .time rd 1 + .x rd 1 + .y rd 1 + .x_root rd 1 + .y_root rd 1 + .state rd 1 + .is_hint rb 1 + .same_screen rd 1 +ends + + +struct XPointerMovedEvent + . XMotionEvent +ends + +;Window Entry/Exit Events + +struct XCrossingEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .root rd 1 + .subwindow rd 1 + .time rd 1 + .x rd 1 + .y rd 1 + .x_root rd 1 + .y_root rd 1 + .mode rd 1 + .detail rd 1 + .same_screen rd 1 + .focus rd 1 + .state rd 1 +ends + +struct XEnterWindowEvent + . XCrossingEvent +ends + +struct XLeaveWindowEvent + . XCrossingEvent +ends + +; Input Focus Events + +struct XFocusChangeEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .mode rd 1 + .detail rd 1 +ends + + + +struct XFocusInEvent + . XFocusChangeEvent +ends + +struct XFocusOutEvent + . XFocusChangeEvent +ends + +; Keymap Notification Events + +struct XKeymapEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .key_vector rb 32 +ends + +; Exposure/Update Events + +struct XExposeEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .x rd 1 + .y rd 1 + .width rd 1 + .height rd 1 + .count rd 1 +ends + + +struct XGraphicsExposeEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .drawable rd 1 + .x rd 1 + .y rd 1 + .width rd 1 + .height rd 1 + .count rd 1 + .major_code rd 1 + .minor_code rd 1 +ends + + +struct XNoExposeEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .drawable rd 1 + .major_code rd 1 + .minor_code rd 1 +ends + + +; CirculateNotify Events + +struct XCirculateEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 + .place rd 1 +ends + + +struct XCirculateRequestEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .parent rd 1 + .window rd 1 + .place rd 1 +ends + +; Configuration Change Events + +struct XConfigureEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 + .x rd 1 + .y rd 1 + .width rd 1 + .height rd 1 + .border_width rd 1 + .above rd 1 + .override_redirect rd 1 +ends + +struct XConfigureRequestEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .parent rd 1 + .window rd 1 + .x rd 1 + .y rd 1 + .width rd 1 + .height rd 1 + .border_width rd 1 + .above rd 1 + .detail rd 1 + .value_mask rd 1 +ends + +struct XPropertyEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .atom rd 1 + .time rd 1 + .state rd 1 +ends + +struct XResizeEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .width rd 1 + .height rd 1 +ends + +struct XColormapEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .colormap rd 1 + .new rd 1 + .state rd 1 +ends + +; Creation/Destruction Notifications + +struct XCreateWindowEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .parent rd 1 + .window rd 1 + .x rd 1 + .y rd 1 + .width rd 1 + .heigth rd 1 + .border_width rd 1 + .override_redirect rd 1 +ends + + +struct XDestroyWindowEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 +ends + +; Parent Movement Events + +struct XGravityEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 + .x rd 1 + .y rd 1 +ends + +; Mapping Events + +struct XMapEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 + .override_redirect rd 1 +ends + +struct XMappingEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .request rd 1 + .first_keycode rd 1 + .count rd 1 +ends + + +struct XMapRequestEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .parent rd 1 + .window rd 1 +ends + +; Parent Change Events + +struct XReparentEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 + .parent rd 1 + .x rd 1 + .y rd 1 + .override_redirect rd 1 +ends + +struct XSelectionClearEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .selection rd 1 + .time rd 1 +ends + +struct XSelectionRequestEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .owner rd 1 + .requestor rd 1 + .selection rd 1 + .target rd 1 + .property rd 1 + .time rd 1 +ends + +struct XSelectionEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .requestor rd 1 + .selection rd 1 + .target rd 1 + .property rd 1 + .time rd 1 +ends + +; Hidden Window Events + +struct XUnmapEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .event rd 1 + .window rd 1 + .from_configure rd 1 +ends + +struct XVisibilityEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .state rd 1 +ends + +; Client Messages (XSendEvent) + +struct XClientMessageEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 + .message_type rd 1 + .format rd 1 + .data rb 20 +ends + + +struct XErrorEvent + .type dd ? + .display dd ? + .resourceid dd ? + .serial dd ? + .error_code db ? + .request_code db ? + .minor_code db ? +ends + + + +struct XAnyEvent + .type rd 1 + .serial rd 1 + .send_event rd 1 + .display rd 1 + .window rd 1 +ends + + +struct XEvent + .xany XAnyEvent + .pad rb 24*4 - sizeof.XAnyEvent + + virtual at .xany + . XAnyEvent + end virtual +; +; +; virtual at .xany +; .xkey XKeyEvent +; end virtual +; +; virtual at .xany +; .xbutton XButtonEvent +; end virtual +; +; virtual at .xany +; .xmotion XMotionEvent +; end virtual +; +; virtual at .xany +; .xcrossing XCrossingEvent +; end virtual +; +; virtual at .xany +; .xfocus XFocusChangeEvent +; end virtual +; +; virtual at .xany +; .xexpose XExposeEvent +; end virtual +; +; virtual at .xany +; .xgraphicsexpose XGraphicsExposeEvent +; end virtual +; +; virtual at .xany +; .xnoexpose XNoExposeEvent +; end virtual +; +; virtual at .xany +; .xvisibility XVisibilityEvent +; end virtual +; +; virtual at .xany +; .xcreatewindow XCreateWindowEvent +; end virtual +; +; virtual at .xany +; .xdestroywindow XDestroyWindowEvent +; end virtual +; +; virtual at .xany +; .xunmap XUnmapEvent +; end virtual +; +; virtual at .xany +; .xmap XMapEvent +; end virtual +; +; virtual at .xany +; .xmaprequest XMapRequestEvent +; end virtual +; +; virtual at .xany +; .xreparent XReparentEvent +; end virtual +; +; virtual at .xany +; .xconfigure XConfigureEvent +; end virtual +; +; virtual at .xany +; .xgravity XGravityEvent +; end virtual +; +; virtual at .xany +; .xresizerequest XResizeEvent +; end virtual +; +; virtual at .xany +; .xconfigurerequest XConfigureRequestEvent +; end virtual +; +; virtual at .xany +; .xcirculate XCirculateEvent +; end virtual +; +; virtual at .xany +; .xcirculaterequest XCirculateRequestEvent +; end virtual +; +; virtual at .xany +; .xproperty XPropertyEvent +; end virtual +; +; virtual at .xany +; .xselectionclear XSelectionClearEvent +; end virtual +; +; virtual at .xany +; .xselectionrequest XSelectionRequestEvent +; end virtual +; +; virtual at .xany +; .xselection XSelectionEvent +; end virtual +; +; virtual at .xany +; .xcolormap XColormapEvent +; end virtual +; +; virtual at .xany +; .xclient XClientMessageEvent +; end virtual +; +; virtual at .xany +; .xmapping XMappingEvent +; end virtual +; +; virtual at .xany +; .xerror XErrorEvent +; end virtual +; +; virtual at .xany +; .xkeymap XKeymapEvent +; end virtual +ends + + +; Misc. Structures + +struct XKeyboardControl + .key_click_percent rd 1 + .bell_percent rd 1 + .bell_pitch rd 1 + .bell_duration rd 1 + .led rd 1 + .led_mode rd 1 + .key rd 1 + .auto_repeat_mode rd 1 +ends + + + +struct XModifierKeymap + .max_keypermod rd 1 + .modifiermap rd 1 +ends + + +struct XVisualInfo + .Visual dd ? + .VisualID dd ? + .screen dd ? + .depth dd ? + .class dd ? + .red_mask dd ? + .green_mask dd ? + .blue_mask dd ? + .colormap_size dd ? + .bits_per_rgb dd ? +ends + + + + +struct XWindowAttributes + .x dd ? ; location of window + .y dd ? ; + .width dd ? ; width and height of window + .height dd ? ; + .border_width dd ? ; border width of window + .depth dd ? ; depth of window + .pVisual dd ? ; the associated visual structure + .root dd ? ; root of screen containing window + .class dd ? ; InputOutput, InputOnly + + .bit_gravity dd ? ; one of the bit gravity values + .win_gravity dd ? ; one of the window gravity values + .backing_store dd ? ; NotUseful, WhenMapped, Always + .backing_planes dd ? ; planes to be preserved if possible + .backing_pixel dd ? ; value to be used when restoring planes + .save_under dd ? ; boolean, should bits under be saved? + .colormap dd ? ; color map to be associated with window + .map_installed dd ? ; boolean, is color map currently installed + .map_state dd ? ; IsUnmapped, IsUnviewable, IsViewable + .all_event_masks dd ? ; set of events all people have interest in + .your_event_mask dd ? ; my event mask + .do_not_propagate_mask dd ? ; set of events that should not propagate + .override_redirect dd ? ; boolean value for override-redirect + .pScreen dd ? ; back pointer to correct screen +ends + + +struct XSetWindowAttributes + .background_pixmap dd ? ; background, None, or ParentRelative + .background_pixel dd ? ; background pixel + .border_pixmap dd ? ; border of the window or CopyFromParent + .border_pixel dd ? ; border pixel value + .bit_gravity dd ? ; one of bit gravity values + .win_gravity dd ? ; one of the window gravity values + .backing_store dd ? ; NotUseful, WhenMapped, Always + .backing_planes dd ? ; planes to be preserved if possible + .backing_pixel dd ? ; value to use in restoring planes + .save_under dd ? ; should bits under be saved? (popups) + .event_mask dd ? ; set of events that should be saved + .do_not_propagate_mask dd ? ; set of events that should not propagate + .override_redirect dd ? ; boolean value for override_redirect + .colormap dd ? ; color map to be associated with window + .cursor dd ? ; cursor to be displayed (or None) +ends + + + +struct XCharStruct + .lbearing dw ? ; origin to left edge of raster + .rbearing dw ? ; origin to right edge of raster + .width dw ? ; advance to next char's origin + .ascent dw ? ; baseline to top edge of raster + .descent dw ? ; baseline to bottom edge of raster + .attributes dw ? ; per char flags (not predefined) +ends + + +struct XFontStruct + .ext_data dd ? ; hook for extension to hang data + .fid dd ? ; Font id for this font + .direction dd ? ; hint about the direction font is painted + .min_char_or_byte2 dd ? ; first character + .max_char_or_byte2 dd ? ; last character + .min_byte1 dd ? ; first row that exists + .max_byte1 dd ? ; last row that exists + .all_chars_exist dd ? ; flag if all characters have nonzero size + .default_char dd ? ; char to print for undefined character + .n_properties dd ? ; how many properties there are + .properties dd ? ; pointer to array of additional properties + .min_bounds XCharStruct ; minimum bounds over all existing char + .max_bounds XCharStruct ; maximum bounds over all existing char + .per_char dd ? ; first_char to last_char information + .ascent dd ? ; logical extent above baseline for spacing + .descent dd ? ; logical decent below baseline for spacing +ends + + +struct XWindowChanges + .x dd ? + .y dd ? + .width dd ? + .height dd ? + .border_width dd ? + .sibling dd ? + .stack_mode dd ? +ends + + +struct XImage + .width dd ? ; size of image + .height dd ? + .xoffset dd ? ; number of pixels offset in X direction + .format dd ? ; XYBitmap, XYPixmap, ZPixmap + .pData dd ? ; pointer to image data + .byte_order dd ? ; data byte order, LSBFirst=0, MSBFirst=1 + .bitmap_unit dd ? ; quantity of scan line 8, 16, 32 + .bitmap_bit_order dd ? ; LSBFirst, MSBFirst + .bitmap_pad dd ? ; 8, 16, 32 either XY or ZPixmap + .depth dd ? ; depth of image + .bytes_per_line dd ? ; accelerator to next line + .bits_per_pixel dd ? ; bits per pixel (ZPixmap) + .red_mask dd ? ; bits in z arrangment + .green_mask dd ? ; bits in z arrangment + .blue_mask dd ? ; bits in z arrangment + .ptrObData dd ? ; hook for object routines to hang on + + .funcCreateImage dd ? ; image manipulation routines + .funcDestroyImage dd ? ; + .funcGetPixel dd ? + .funcPutPixel dd ? + .funcSubImage dd ? + .funcAddPixel dd ? +ends + + +struct XWMHints + .flags dd ? + .input dd ? + .initial_state dd ? + .icon_pixmap dd ? + .icon_window dd ? + .icon_x dd ? + .icon_y dd ? + .icon_mask dd ? + .window_group dd ? +ends + + +InputHint = 1 +StateHint = 2 +IconPixmapHint = 4 +IconWindowHint = 8 +IconPositionHint= 16 +IconMaskHint = 32 +WindowGroupHint = 64 +UrgencyHint = 128 +AllHints = InputHint or StateHint or IconPixmapHint or IconWindowHint or IconPositionHint or IconMaskHint or WindowGroupHint or UrgencyHint + + +WithdrawnState = 0 +NormalState = 1 +IconicState = 3 + + +; RequestCodes +Xrequests = 0 +.CreateWindow =1 +.ChangeWindowAttributes =2 +.GetWindowAttributes =3 +.DestroyWindow =4 +.DestroySubwindows =5 +.ChangeSaveSet =6 +.ReparentWindow =7 +.MapWindow =8 +.MapSubwindows =9 +.UnmapWindow =10 +.UnmapSubwindows =11 +.ConfigureWindow =12 +.CirculateWindow =13 +.GetGeometry =14 +.QueryTree =15 +.InternAtom =16 +.GetAtomName =17 +.ChangeProperty =18 +.DeleteProperty =19 +.GetProperty =20 +.ListProperties =21 +.SetSelectionOwner =22 +.GetSelectionOwner =23 +.ConvertSelection =24 +.SendEvent =25 +.GrabPointer =26 +.UngrabPointer =27 +.GrabButton =28 +.UngrabButton =29 +.ChangeActivePointerGrab =30 +.GrabKeyboard =31 +.UngrabKeyboard =32 +.GrabKey =33 +.UngrabKey =34 +.AllowEvents =35 +.GrabServer =36 +.UngrabServer =37 +.QueryPointer =38 +.GetMotionEvents =39 +.TranslateCoords =40 +.WarpPointer =41 +.SetInputFocus =42 +.GetInputFocus =43 +.QueryKeymap =44 +.OpenFont =45 +.CloseFont =46 +.QueryFont =47 +.QueryTextExtents =48 +.ListFonts =49 +.ListFontsWithInfo =50 +.SetFontPath =51 +.GetFontPath =52 +.CreatePixmap =53 +.FreePixmap =54 +.CreateGC =55 +.ChangeGC =56 +.CopyGC =57 +.SetDashes =58 +.SetClipRectangles =59 +.FreeGC =60 +.ClearArea =61 +.CopyArea =62 +.CopyPlane =63 +.PolyPoint =64 +.PolyLine =65 +.PolySegment =66 +.PolyRectangle =67 +.PolyArc =68 +.FillPoly =69 +.PolyFillRectangle =70 +.PolyFillArc =71 +.PutImage =72 +.GetImage =73 +.PolyText8 =74 +.PolyText16 =75 +.ImageText8 =76 +.ImageText16 =77 +.CreateColormap =78 +.FreeColormap =79 +.CopyColormapAndFree =80 +.InstallColormap =81 +.UninstallColormap =82 +.ListInstalledColormaps =83 +.AllocColor =84 +.AllocNamedColor =85 +.AllocColorCells =86 +.AllocColorPlanes =87 +.FreeColors =88 +.StoreColors =89 +.StoreNamedColor =90 +.QueryColors =91 +.LookupColor =92 +.CreateCursor =93 +.CreateGlyphCursor =94 +.FreeCursor =95 +.RecolorCursor =96 +.QueryBestSize =97 +.QueryExtension =98 +.ListExtensions =99 +.ChangeKeyboardMapping =100 +.GetKeyboardMapping =101 +.ChangeKeyboardControl =102 +.GetKeyboardControl =103 +.Bell =104 +.ChangePointerControl =105 +.GetPointerControl =106 +.SetScreenSaver =107 +.GetScreenSaver =108 +.ChangeHosts =109 +.ListHosts =110 +.SetAccessControl =111 +.SetCloseDownMode =112 +.KillClient =113 +.RotateProperties =114 +.ForceScreenSaver =115 +.SetPointerMapping =116 +.GetPointerMapping =117 +.SetModifierMapping =118 +.GetModifierMapping =119 +.NoOperation =127 + + +; Predefined atoms from the X server. + +XA_PRIMARY = 1 +XA_SECONDARY = 2 +XA_ARC = 3 +XA_ATOM = 4 +XA_BITMAP = 5 +XA_CARDINAL = 6 +XA_COLORMAP = 7 +XA_CURSOR = 8 +XA_CUT_BUFFER0 = 9 +XA_CUT_BUFFER1 = 10 +XA_CUT_BUFFER2 = 11 +XA_CUT_BUFFER3 = 12 +XA_CUT_BUFFER4 = 13 +XA_CUT_BUFFER5 = 14 +XA_CUT_BUFFER6 = 15 +XA_CUT_BUFFER7 = 16 +XA_DRAWABLE = 17 +XA_FONT = 18 +XA_INTEGER = 19 +XA_PIXMAP = 20 +XA_POINT = 21 +XA_RECTANGLE = 22 +XA_RESOURCE_MANAGER = 23 +XA_RGB_COLOR_MAP = 24 +XA_RGB_BEST_MAP = 25 +XA_RGB_BLUE_MAP = 26 +XA_RGB_DEFAULT_MAP = 27 +XA_RGB_GRAY_MAP = 28 +XA_RGB_GREEN_MAP = 29 +XA_RGB_RED_MAP = 30 +XA_STRING = 31 +XA_VISUALID = 32 +XA_WINDOW = 33 +XA_WM_COMMAND = 34 +XA_WM_HINTS = 35 +XA_WM_CLIENT_MACHINE = 36 +XA_WM_ICON_NAME = 37 +XA_WM_ICON_SIZE = 38 +XA_WM_NAME = 39 +XA_WM_NORMAL_HINTS = 40 +XA_WM_SIZE_HINTS = 41 +XA_WM_ZOOM_HINTS = 42 +XA_MIN_SPACE = 43 +XA_NORM_SPACE = 44 +XA_MAX_SPACE = 45 +XA_END_SPACE = 46 +XA_SUPERSCRIPT_X = 47 +XA_SUPERSCRIPT_Y = 48 +XA_SUBSCRIPT_X = 49 +XA_SUBSCRIPT_Y = 50 +XA_UNDERLINE_POSITION = 51 +XA_UNDERLINE_THICKNESS = 52 +XA_STRIKEOUT_ASCENT = 53 +XA_STRIKEOUT_DESCENT = 54 +XA_ITALIC_ANGLE = 55 +XA_X_HEIGHT = 56 +XA_QUAD_WIDTH = 57 +XA_WEIGHT = 58 +XA_POINT_SIZE = 59 +XA_RESOLUTION = 60 +XA_COPYRIGHT = 61 +XA_NOTICE = 62 +XA_FONT_NAME = 63 +XA_FAMILY_NAME = 64 +XA_FULL_NAME = 65 +XA_CAP_HEIGHT = 66 +XA_WM_CLASS = 67 +XA_WM_TRANSIENT_FOR = 68 + +XA_LAST_PREDEFINED = 68 Index: freshlib/equates/Linux/_geometry.inc ================================================================== --- freshlib/equates/Linux/_geometry.inc +++ freshlib/equates/Linux/_geometry.inc @@ -1,5 +1,29 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Different geometry structures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +struct TBounds + .x dd ? + .y dd ? + .width dd ? + .height dd ? +ends + + + struct RECT .left dd ? .top dd ? .right dd ? .bottom dd ? @@ -6,6 +30,8 @@ ends struct POINT .x dd ? .y dd ? -ends +ends + + ADDED freshlib/equates/Linux/_ipc.inc Index: freshlib/equates/Linux/_ipc.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_ipc.inc @@ -0,0 +1,81 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: IPC constants for libC functions. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +IPC_PRIVATE = 0 + +IPC_W = $080 +IPC_R = $100 +IPC_CREAT = $200 +IPC_EXCL = $400 +IPC_NOWAIT = $800 + +IPC_RMID = 0 ; remove identifier +IPC_SET = 1 ; set options +IPC_STAT = 2 ; get options +IPC_INFO = 3 + +IPC_64 = $100 + +struct ipc_perm + .key dd ? + .uid dw ? ; owner euid and egid + .gid dw ? ; + .cuid dw ? ; creator euid and egid + .cgid dw ? ; + .mode dw ? ; access modes see mode flags below + .seq dw ? ; slot usage sequence number +ends + + +struct shmid_ds + .shm_perm ipc_perm ; Ownership and permissions + .shm_segsz dd ? ; Size of segment (bytes) + .shm_atime dd ? ; Last attach time + .shm_dtime dd ? ; Last detach time + .shm_ctime dd ? ; Last change time + .shm_cpid dw ? ; PID of creator + .shm_lpid dw ? ; PID of last SHMAT/SHMDT + .shm_nattch dw ? ; Number of current attaches + .shm_unused dw ? ; Not used + .shm_unused2 dd ? ; Not used + .shm_unused3 dd ? ; Not used +ends + + +struct ipc64_perm + .key dd ? + .uid dd ? ; owner euid and egid + .gid dd ? ; + .cuid dd ? ; creator euid and egid + .cgid dd ? ; + .mode dd ? ; access modes see mode flags below (only lower 16 bit are used) + .seq dd ? ; slot usage sequence number (only lower 16 bit are used) + dd ? + dd ? +ends + + +struct shmid64_ds + .shm_perm ipc64_perm ; Ownership and permissions + .shm_segsz dd ? ; Size of segment (bytes) + .shm_atime dq ? ; Last attach time + .shm_dtime dq ? ; Last detach time + .shm_ctime dq ? ; Last change time + .shm_cpid dd ? ; PID of creator + .shm_lpid dd ? ; PID of last SHMAT/SHMDT + .shm_nattch dd ? ; Number of current attaches + dd ? ; Not used + dd ? ; Not used +ends ADDED freshlib/equates/Linux/_libFT.inc Index: freshlib/equates/Linux/_libFT.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_libFT.inc @@ -0,0 +1,297 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: FreeType library constants and structures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +FT_FACE_FLAG_SCALABLE = $0001 +FT_FACE_FLAG_FIXED_SIZES = $0002 +FT_FACE_FLAG_FIXED_WIDTH = $0004 +FT_FACE_FLAG_SFNT = $0008 +FT_FACE_FLAG_HORIZONTAL = $0010 +FT_FACE_FLAG_VERTICAL = $0020 +FT_FACE_FLAG_KERNING = $0040 +FT_FACE_FLAG_FAST_GLYPHS = $0080 +FT_FACE_FLAG_MULTIPLE_MASTERS = $0100 +FT_FACE_FLAG_GLYPH_NAMES = $0200 +FT_FACE_FLAG_EXTERNAL_STREAM = $0400 +FT_FACE_FLAG_HINTER = $0800 +FT_FACE_FLAG_CID_KEYED = $1000 +FT_FACE_FLAG_TRICKY = $2000 + + +FT_LOAD_DEFAULT = $0 +FT_LOAD_NO_SCALE = $1 +FT_LOAD_NO_HINTING = $2 +FT_LOAD_RENDER = $4 +FT_LOAD_NO_BITMAP = $8 +FT_LOAD_VERTICAL_LAYOUT = $10 +FT_LOAD_FORCE_AUTOHINT = $20 +FT_LOAD_CROP_BITMAP = $40 ; deprecated, ignored +FT_LOAD_PEDANTIC = $80 +FT_LOAD_ADVANCE_ONLY = $100 +FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = $200 ; deprecated, ignored +FT_LOAD_NO_RECURSE = $400 +FT_LOAD_IGNORE_TRANSFORM = $800 +FT_LOAD_MONOCHROME = $1000 +FT_LOAD_LINEAR_DESIGN = $2000 +FT_LOAD_SBITS_ONLY = $4000 +FT_LOAD_NO_AUTOHINT = $8000 +FT_LOAD_COLOR = $100000 + +FT_ADVANCE_FLAG_FAST_ONLY = $20000000 + + +FT_RENDER_MODE_NORMAL = 0 +FT_RENDER_MODE_LIGHT = 1 +FT_RENDER_MODE_MONO = 2 +FT_RENDER_MODE_LCD = 3 +FT_RENDER_MODE_LCD_V = 4 +FT_RENDER_MODE_MAX = 5 + +struc FT_LOAD_TARGET x { + . = (x and 15) shl 16 +} + +FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET FT_RENDER_MODE_NORMAL +FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET FT_RENDER_MODE_LIGHT +FT_LOAD_TARGET_MONO FT_LOAD_TARGET FT_RENDER_MODE_MONO +FT_LOAD_TARGET_LCD FT_LOAD_TARGET FT_RENDER_MODE_LCD +FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET FT_RENDER_MODE_LCD_V + + + +FT_PIXEL_MODE_NONE = 0 +FT_PIXEL_MODE_MONO = 1 +FT_PIXEL_MODE_GRAY = 2 +FT_PIXEL_MODE_GRAY2 = 3 +FT_PIXEL_MODE_GRAY4 = 4 +FT_PIXEL_MODE_LCD = 5 +FT_PIXEL_MODE_LCD_V = 6 +FT_PIXEL_MODE_BGRA = 7 + + +struct FT_Generic + .data dd ? + .finalizer dd ? ; pointer to procedure with one argument. +ends + +struct FT_BBox + .xMin dd ? + .yMin dd ? + .xMax dd ? + .yMax dd ? +ends + +struct FT_Vector + .x dd ? + .y dd ? +ends + +struct FT_Bitmap + .rows dd ? + .width dd ? + .pitch dd ? + .buffer dd ? ; pointer to the buffer. + .num_grays dw ? + .pixel_mode db ? + .palette_mode db ? + .palette dd ? ; pointer to the palette. +ends + + +struct FT_Bitmap_Size + .height dw ? + .width dw ? + .size dd ? ; 26.6 fixed size format. + .x_ppem dd ? ; 26.6 fixed size format. + .y_ppem dd ? ; 26.6 fixed size format. +ends + + + +struct FT_Outline + .n_contours dw ? + .n_points dw ? + .points dd ? ; pointer to array of FT_Vector elements. + .tags dd ? ; pointer to byte array. + .contours dd ? ; pointer to word array. + .flags dd ? +ends + + + +struct FT_Glyph_Metrics + .width dd ? + .height dd ? + .horiBearingX dd ? + .horiBearingY dd ? + .horiAdvance dd ? + + .vertBearingX dd ? + .vertBearingY dd ? + .vertAdvance dd ? +ends + + + +struct FT_GlyphSlot + .library dd ? + .face dd ? ; parent FT_Face object + .next dd ? ; pointer tp FT_GlyphSlot + .reserved dd ? + .generic FT_Generic + + .metrics FT_Glyph_Metrics + .linearHoriAdvance dd ? + .linearVertAdvance dd ? + + .advance FT_Vector + + .format dd ? + + .bitmap FT_Bitmap + .bitmap_left dd ? + .bitmap_top dd ? + + .outline FT_Outline + + .num_subglyphs dd ? + .subglyphs dd ? ; pointer to array of FT_SubGlyphRec elements. + + .control_data dd ? + .control_len dd ? + + .lsb_delta dd ? + .rsb_delta dd ? + + .other dd ? + .internal dd ? ; pointer to FT_Slot_InternalRec +ends + + +struct FT_FaceRec + .num_faces dd ? + .face_index dd ? + .face_flags dd ? + .style_flags dd ? + .num_glyphs dd ? + .family_name dd ? + .style_name dd ? + + .num_fixed_sizes dd ? + .available_sizes dd ? + + .num_charmaps dd ? + .charmaps dd ? + .generic FT_Generic + +; scalable fonts members down to .underline_thickness + + .bbpx FT_BBox + + .units_per_EM dw ? + .ascender dw ? + .descender dw ? + .height dw ? + + .max_advance_width dw ? + .max_advance_height dw ? + + .underline_position dw ? + .underline_thickness dw ? + + + .glyph dd ? ; pointer to FT_GlyphSlot + .size dd ? ; pointer to FT_Size + .charmap dd ? ; pointer to FT_CharMap + +; down is the private part. + +ends + + +struct FT_GlyphRec + .library dd ? + .clazz dd ? + .format dd ? + .advance FT_Vector +ends + + +struct FT_BitmapGlyphRec + .root FT_GlyphRec + .left dd ? + .top dd ? + .bitmap FT_Bitmap +ends + + +FT_SIZE_REQUEST_TYPE_NOMINAL = 0 +FT_SIZE_REQUEST_TYPE_REAL_DIM = 1 +FT_SIZE_REQUEST_TYPE_BBOX = 2 +FT_SIZE_REQUEST_TYPE_CELL = 3 +FT_SIZE_REQUEST_TYPE_SCALES = 4 + + +struct FT_Size_RequestRec + .type dd ? + .width dd ? + .height dd ? + .horiResolution dd ? + .vertResolution dd ? +ends + + +struct FT_Size_Metrics + .x_ppem dw ? ; horizontal pixels per EM + .y_ppem dw ? ; vertical pixels per EM + + .x_scale dd ? ; scaling values used to convert font + .y_scale dd ? ; units to 26.6 fractional pixels + + .ascender dd ? ; ascender in 26.6 frac. pixels + .descender dd ? ; descender in 26.6 frac. pixels + .height dd ? ; text height in 26.6 frac. pixels + .max_advance dd ? ; max horizontal advance, in 26.6 pixels +ends + + +struct FT_SizeRec + .face dd ? ; parent face object + .generic FT_Generic ; generic pointer for client uses + .metrics FT_Size_Metrics ; size metrics + .internal: +ends + + +struct FTC_ScalerRec + .face_id dd ? + .width dd ? + .height dd ? + .pixel dd ? + .x_res dd ? + .y_res dd ? +ends + + +struct FTC_ImageType + .face_id dd ? + .width dd ? + .height dd ? + .flags dd ? +ends + + + + +interface FT_Face_Requester, .face_id, .library, .request_data, .pFace ADDED freshlib/equates/Linux/_libXrender.inc Index: freshlib/equates/Linux/_libXrender.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_libXrender.inc @@ -0,0 +1,357 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: libXrender constants and structures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +struct XRenderDirectFormat + .red dw ? + .redMask dw ? + .green dw ? + .greenMask dw ? + .blue dw ? + .blueMask dw ? + .alpha dw ? + .alphaMask dw ? +ends + + +struct XRenderPictFormat + .id dd ? + .type dd ? + .depth dd ? + .direct XRenderDirectFormat + .colormap dd ? +ends + +PictFormatID = (1 shl 0) +PictFormatType = (1 shl 1) +PictFormatDepth = (1 shl 2) +PictFormatRed = (1 shl 3) +PictFormatRedMask = (1 shl 4) +PictFormatGreen = (1 shl 5) +PictFormatGreenMask = (1 shl 6) +PictFormatBlue = (1 shl 7) +PictFormatBlueMask = (1 shl 8) +PictFormatAlpha = (1 shl 9) +PictFormatAlphaMask = (1 shl 10) +PictFormatColormap = (1 shl 11) + +struct XRenderPictureAttributes + .repeat dd ? + .alpha_map dd ? + .alpha_x_origin dd ? + .alpha_y_origin dd ? + .clip_x_origin dd ? + .clip_y_origin dd ? + .clip_mask dd ? + .graphics_exposures dd ? + .subwindow_mode dd ? + .poly_edge dd ? + .poly_mode dd ? + .dither dd ? + .component_alpha dd ? +ends + + +struct XRenderColor + .red dw ? + .green dw ? + .blue dw ? + .alpha dw ? +ends + + +struct XGlyphInfo + .width dw ? + .height dw ? + .x dw ? + .y dw ? + .xOff dw ? + .yOff dw ? +ends + + +struct XGlyphElt + .glyphset dd ? + .chars dd ? ; pointer to an array of bytes + .nchars dd ? + .xOff dd ? + .yOff dd ? +ends + +struct XPointDouble + .x dq ? ; double floating point + .y dq ? +ends + +struct XPointFixed ; the coordinate multiplied by 65536. + .x dd ? + .y dd ? +ends + +struct XLineFixed + .p1 XPointFixed + .p2 XPointFixed +ends + + +struct XTriangle + .p1 XPointFixed + .p2 XPointFixed + .p3 XPointFixed +ends + + +struct XCircle + .x dd ? + .y dd ? + .radius dd ? +ends + + +struct XTrapezoid + .top dd ? + .bottom dd ? + .left XLineFixed + .right XLineFixed +ends + +struct XTransform + .matrix rd 9 +ends + +struct XFilters + .nfilter dd ? + .filter dd ? ; **char + .nalias dd ? + .alias dd ? ; pointer to an array of word +ends + +struct XIndexValue + .pixel dd ? + .red dw ? + .green dw ? + .blue dw ? + .alpha dw ? +ends + + +struct XAnimCursor + .cursor dd ? + .delay dd ? +ends + +struct XSpanFix + .left dd ? + .right dd ? + .y dd ? +ends + +struct XTrap + .top XSpanFix + .botton XSpanFix +ends + +struct XLinearGradient + .p1 XPointFixed + .p2 XPointFixed +ends + +struct XRadialGradient + .inner XCircle + .outer XCircle +ends + +struct XConicalGradient + .center XPointFixed + .angle dd ? ; in degrees +ends + + +PictStandardARGB32 = 0 +PictStandardRGB24 = 1 +PictStandardA8 = 2 +PictStandardA4 = 3 +PictStandardA1 = 4 +PictStandardNUM = 5 + + +X_RenderQueryVersion = 0 +X_RenderQueryPictFormats = 1 +X_RenderQueryPictIndexValues = 2 ; 0.7 +X_RenderQueryDithers = 3 +X_RenderCreatePicture = 4 +X_RenderChangePicture = 5 +X_RenderSetPictureClipRectangles = 6 +X_RenderFreePicture = 7 +X_RenderComposite = 8 +X_RenderScale = 9 +X_RenderTrapezoids = 10 +X_RenderTriangles = 11 +X_RenderTriStrip = 12 +X_RenderTriFan = 13 +X_RenderColorTrapezoids = 14 +X_RenderColorTriangles = 15 +; X_RenderTransform = 16 +X_RenderCreateGlyphSet = 17 +X_RenderReferenceGlyphSet = 18 +X_RenderFreeGlyphSet = 19 +X_RenderAddGlyphs = 20 +X_RenderAddGlyphsFromPicture = 21 +X_RenderFreeGlyphs = 22 +X_RenderCompositeGlyphs8 = 23 +X_RenderCompositeGlyphs16 = 24 +X_RenderCompositeGlyphs32 = 25 +X_RenderFillRectangles = 26 +; 0.5 +X_RenderCreateCursor = 27 +; 0.6 +X_RenderSetPictureTransform = 28 +X_RenderQueryFilters = 29 +X_RenderSetPictureFilter = 30 +; 0.8 +X_RenderCreateAnimCursor = 31 +; 0.9 +X_RenderAddTraps = 32 +; 0.10 +X_RenderCreateSolidFill = 33 +X_RenderCreateLinearGradient = 34 +X_RenderCreateRadialGradient = 35 +X_RenderCreateConicalGradient = 36 +RenderNumberRequests = (X_RenderCreateConicalGradient+1) + +BadPictFormat = 0 +BadPicture = 1 +BadPictOp = 2 +BadGlyphSet = 3 +BadGlyph = 4 +RenderNumberErrors = (BadGlyph+1) + +PictTypeIndexed = 0 +PictTypeDirect = 1 + +PictOpMinimum = 0 +PictOpClear = 0 +PictOpSrc = 1 +PictOpDst = 2 +PictOpOver = 3 +PictOpOverReverse = 4 +PictOpIn = 5 +PictOpInReverse = 6 +PictOpOut = 7 +PictOpOutReverse = 8 +PictOpAtop = 9 +PictOpAtopReverse = 10 +PictOpXor = 11 +PictOpAdd = 12 +PictOpSaturate = 13 +PictOpMaximum = 13 + +; Operators only available in version 0.2 + +PictOpDisjointMinimum = $10 +PictOpDisjointClear = $10 +PictOpDisjointSrc = $11 +PictOpDisjointDst = $12 +PictOpDisjointOver = $13 +PictOpDisjointOverReverse = $14 +PictOpDisjointIn = $15 +PictOpDisjointInReverse = $16 +PictOpDisjointOut = $17 +PictOpDisjointOutReverse = $18 +PictOpDisjointAtop = $19 +PictOpDisjointAtopReverse = $1a +PictOpDisjointXor = $1b +PictOpDisjointMaximum = $1b + +PictOpConjointMinimum = $20 +PictOpConjointClear = $20 +PictOpConjointSrc = $21 +PictOpConjointDst = $22 +PictOpConjointOver = $23 +PictOpConjointOverReverse = $24 +PictOpConjointIn = $25 +PictOpConjointInReverse = $26 +PictOpConjointOut = $27 +PictOpConjointOutReverse = $28 +PictOpConjointAtop = $29 +PictOpConjointAtopReverse = $2a +PictOpConjointXor = $2b +PictOpConjointMaximum = $2b + +; Operators only available in version 0.11 + +PictOpBlendMinimum = $30 +PictOpMultiply = $30 +PictOpScreen = $31 +PictOpOverlay = $32 +PictOpDarken = $33 +PictOpLighten = $34 +PictOpColorDodge = $35 +PictOpColorBurn = $36 +PictOpHardLight = $37 +PictOpSoftLight = $38 +PictOpDifference = $39 +PictOpExclusion = $3a +PictOpHSLHue = $3b +PictOpHSLSaturation = $3c +PictOpHSLColor = $3d +PictOpHSLLuminosity = $3e +PictOpBlendMaximum = $3e + +PolyEdgeSharp = 0 +PolyEdgeSmooth = 1 + +PolyModePrecise = 0 +PolyModeImprecise = 1 + +CPRepeat = (1 shl 0) +CPAlphaMap = (1 shl 1) +CPAlphaXOrigin = (1 shl 2) +CPAlphaYOrigin = (1 shl 3) +CPClipXOrigin = (1 shl 4) +CPClipYOrigin = (1 shl 5) +CPClipMask = (1 shl 6) +CPGraphicsExposure = (1 shl 7) +CPSubwindowMode = (1 shl 8) +CPPolyEdge = (1 shl 9) +CPPolyMode = (1 shl 10) +CPDither = (1 shl 11) +CPComponentAlpha = (1 shl 12) +CPLastBit = 12 + +; Filters included in 0.6 +FilterNearest text "nearest" +FilterBilinear text "bilinear" +; Filters included in 0.10 +FilterConvolution text "convolution" + +FilterFast text "fast" +FilterGood text "good" +FilterBest text "best" + +FilterAliasNone = -1 + +; Subpixel orders included in 0.6 +SubPixelUnknown = 0 +SubPixelHorizontalRGB = 1 +SubPixelHorizontalBGR = 2 +SubPixelVerticalRGB = 3 +SubPixelVerticalBGR = 4 +SubPixelNone = 5 + +; Extended repeat attributes included in 0.10 +RepeatNone = 0 +RepeatNormal = 1 +RepeatPad = 2 +RepeatReflect = 3 ADDED freshlib/equates/Linux/_libdl.inc Index: freshlib/equates/Linux/_libdl.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_libdl.inc @@ -0,0 +1,34 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Common LibDL constants and definitions. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +; constants for runtime dynamic linking functions. + +RTLD_LAZY = 1 +RTLD_NOW = 2 + +RTLD_BINDING_MASK = 3 + +RTLD_NOLOAD = 4 +RTLD_DEEPBIND = 8 + +RTLD_LOCAL = 0 +RTLD_GLOBAL = $100 +RTLD_NODELETE = $1000 + + +; pseudo-handles for dlsym() + +RTLD_DEFAULT = 0 +RTLD_NEXT = -1 ADDED freshlib/equates/Linux/_linux.inc Index: freshlib/equates/Linux/_linux.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_linux.inc @@ -0,0 +1,1442 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Common Linux equates. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +UNIX_PATH_MAX = 108 + + +; Error numbers from the kernel + +EPERM = 1 ; Operation not permitted +ENOENT = 2 ; No such file or directory +ESRCH = 3 ; No such process +EINTR = 4 ; Interrupted system call +EIO = 5 ; I/O error +ENXIO = 6 ; No such device or address +E2BIG = 7 ; Argument list too long +ENOEXEC = 8 ; Exec format error +EBADF = 9 ; Bad file number +ECHILD = 10 ; No child processes +EAGAIN = 11 ; Try again +ENOMEM = 12 ; Out of memory +EACCES = 13 ; Permission denied +EFAULT = 14 ; Bad address +ENOTBLK = 15 ; Block device required +EBUSY = 16 ; Device or resource busy +EEXIST = 17 ; File exists +EXDEV = 18 ; Cross-device link +ENODEV = 19 ; No such device +ENOTDIR = 20 ; Not a directory +EISDIR = 21 ; Is a directory +EINVAL = 22 ; Invalid argument +ENFILE = 23 ; File table overflow +EMFILE = 24 ; Too many open files +ENOTTY = 25 ; Not a typewriter +ETXTBSY = 26 ; Text file busy +EFBIG = 27 ; File too large +ENOSPC = 28 ; No space left on device +ESPIPE = 29 ; Illegal seek +EROFS = 30 ; Read-only file system +EMLINK = 31 ; Too many links +EPIPE = 32 ; Broken pipe +EDOM = 33 ; Math argument out of domain of func +ERANGE = 34 ; Math result not representable + +EDEADLK = 35 ; Resource deadlock would occur +ENAMETOOLONG = 36 ; File name too long +ENOLCK = 37 ; No record locks available +ENOSYS = 38 ; Function not implemented +ENOTEMPTY = 39 ; Directory not empty +ELOOP = 40 ; Too many symbolic links encountered +EWOULDBLOCK = EAGAIN ; Operation would block +ENOMSG = 42 ; No message of desired type +EIDRM = 43 ; Identifier removed +ECHRNG = 44 ; Channel number out of range +EL2NSYNC = 45 ; Level 2 not synchronized +EL3HLT = 46 ; Level 3 halted +EL3RST = 47 ; Level 3 reset +ELNRNG = 48 ; Link number out of range +EUNATCH = 49 ; Protocol driver not attached +ENOCSI = 50 ; No CSI structure available +EL2HLT = 51 ; Level 2 halted +EBADE = 52 ; Invalid exchange +EBADR = 53 ; Invalid request descriptor +EXFULL = 54 ; Exchange full +ENOANO = 55 ; No anode +EBADRQC = 56 ; Invalid request code +EBADSLT = 57 ; Invalid slot + +EDEADLOCK = EDEADLK + +EBFONT = 59 ; Bad font file format +ENOSTR = 60 ; Device not a stream +ENODATA = 61 ; No data available +ETIME = 62 ; Timer expired +ENOSR = 63 ; Out of streams resources +ENONET = 64 ; Machine is not on the network +ENOPKG = 65 ; Package not installed +EREMOTE = 66 ; Object is remote +ENOLINK = 67 ; Link has been severed +EADV = 68 ; Advertise error +ESRMNT = 69 ; Srmount error +ECOMM = 70 ; Communication error on send +EPROTO = 71 ; Protocol error +EMULTIHOP = 72 ; Multihop attempted +EDOTDOT = 73 ; RFS specific error +EBADMSG = 74 ; Not a data message +EOVERFLOW = 75 ; Value too large for defined data type +ENOTUNIQ = 76 ; Name not unique on network +EBADFD = 77 ; File descriptor in bad state +EREMCHG = 78 ; Remote address changed +ELIBACC = 79 ; Can not access a needed shared library +ELIBBAD = 80 ; Accessing a corrupted shared library +ELIBSCN = 81 ; .lib section in a.out corrupted +ELIBMAX = 82 ; Attempting to link in too many shared libraries +ELIBEXEC = 83 ; Cannot exec a shared library directly +EILSEQ = 84 ; Illegal byte sequence +ERESTART = 85 ; Interrupted system call should be restarted +ESTRPIPE = 86 ; Streams pipe error +EUSERS = 87 ; Too many users +ENOTSOCK = 88 ; Socket operation on non-socket +EDESTADDRREQ = 89 ; Destination address required +EMSGSIZE = 90 ; Message too long +EPROTOTYPE = 91 ; Protocol wrong type for socket +ENOPROTOOPT = 92 ; Protocol not available +EPROTONOSUPPORT =93 ; Protocol not supported +ESOCKTNOSUPPORT =94 ; Socket type not supported +EOPNOTSUPP =95 ; Operation not supported on transport endpoint +EPFNOSUPPORT = 96 ; Protocol family not supported +EAFNOSUPPORT = 97 ; Address family not supported by protocol +EADDRINUSE = 98 ; Address already in use +EADDRNOTAVAIL = 99 ; Cannot assign requested address +ENETDOWN = 100 ; Network is down +ENETUNREACH = 101 ; Network is unreachable +ENETRESET = 102 ; Network dropped connection because of reset +ECONNABORTED = 103 ; Software caused connection abort +ECONNRESET = 104 ; Connection reset by peer +ENOBUFS = 105 ; No buffer space available +EISCONN = 106 ; Transport endpoint is already connected +ENOTCONN = 107 ; Transport endpoint is not connected +ESHUTDOWN = 108 ; Cannot send after transport endpoint shutdown +ETOOMANYREFS = 109 ; Too many references: cannot splice +ETIMEDOUT = 110 ; Connection timed out +ECONNREFUSED = 111 ; Connection refused +EHOSTDOWN = 112 ; Host is down +EHOSTUNREACH = 113 ; No route to host +EALREADY = 114 ; Operation already in progress +EINPROGRESS = 115 ; Operation now in progress +ESTALE = 116 ; Stale NFS file handle +EUCLEAN = 117 ; Structure needs cleaning +ENOTNAM = 118 ; Not a XENIX named type file +ENAVAIL = 119 ; No XENIX semaphores available +EISNAM = 120 ; Is a named type file +EREMOTEIO = 121 ; Remote I/O error +EDQUOT = 122 ; Quota exceeded + +ENOMEDIUM = 123 ; No medium found +EMEDIUMTYPE = 124 ; Wrong medium type +ECANCELED = 125 ; Operation Canceled +ENOKEY = 126 ; Required key not available +EKEYEXPIRED = 127 ; Key has expired +EKEYREVOKED = 128 ; Key has been revoked +EKEYREJECTED = 129 ; Key was rejected by service + +; for robust mutexes +EOWNERDEAD = 130 ; Owner died +ENOTRECOVERABLE= 131 ; State not recoverable + + + + + +; System functions ( int $80 ) + +; Name EAX + +sys_restart_syscall = $00 +sys_exit = $01 +sys_fork = $02 +sys_read = $03 +sys_write = $04 +sys_open = $05 +sys_close = $06 +sys_waitpid = $07 +sys_creat = $08 +sys_link = $09 +sys_unlink = $0a +sys_execve = $0b +sys_chdir = $0c +sys_time = $0d +sys_mknod = $0e +sys_chmod = $0f +sys_lchown16 = $10 +sys_stat = $12 +sys_lseek = $13 +sys_getpid = $14 +sys_mount = $15 +sys_oldumount = $16 +sys_setuid16 = $17 +sys_getuid16 = $18 +sys_stime = $19 +sys_ptrace = $1a +sys_alarm = $1b +sys_fstat = $1c +sys_pause = $1d +sys_utime = $1e +sys_access = $21 +sys_nice = $22 +sys_sync = $24 +sys_kill = $25 +sys_rename = $26 +sys_mkdir = $27 +sys_rmdir = $28 +sys_dup = $29 +sys_pipe = $2a +sys_times = $2b +sys_brk = $2d +sys_setgid16 = $2e +sys_getgid16 = $2f +sys_signal = $30 +sys_geteuid16 = $31 +sys_getegid16 = $32 +sys_acct = $33 +sys_umount = $34 +sys_ioctl = $36 +sys_fcntl = $37 +sys_setpgid = $39 +sys_olduname = $3b +sys_umask = $3c +sys_chroot = $3d +sys_ustat = $3e +sys_dup2 = $3f +sys_getppid = $40 +sys_getpgrp = $41 +sys_setsid = $42 +sys_sigaction = $43 +sys_sgetmask = $44 +sys_ssetmask = $45 +sys_setreuid16 = $46 +sys_setregid16 = $47 +sys_sigsuspend = $48 +sys_sigpending = $49 +sys_sethostname = $4a +sys_setrlimit = $4b +sys_old_getrlimit = $4c +sys_getrusage = $4d +sys_gettimeofday = $4e +sys_settimeofday = $4f +sys_getgroups16 = $50 +sys_setgroups16 = $51 +sys_old_select = $52 +sys_symlink = $53 +sys_lstat = $54 +sys_readlink = $55 +sys_uselib = $56 +sys_swapon = $57 +sys_reboot = $58 +sys_old_readdir = $59 +sys_old_mmap = $5a +sys_munmap = $5b +sys_truncate = $5c +sys_ftruncate = $5d +sys_fchmod = $5e +sys_fchown16 = $5f +sys_getpriority = $60 +sys_setpriority = $61 +sys_statfs = $63 +sys_fstatfs = $64 +sys_ioperm = $65 +sys_socketcall = $66 +sys_syslog = $67 +sys_setitimer = $68 +sys_getitimer = $69 +sys_newstat = $6a +sys_newlstat = $6b +sys_newfstat = $6c +sys_uname = $6d +sys_iopl = $6e +sys_vhangup = $6f +sys_vm86old = $71 +sys_wait4 = $72 +sys_swapoff = $73 +sys_sysinfo = $74 +sys_ipc = $75 +sys_fsync = $76 +sys_sigreturn = $77 +sys_clone = $78 +sys_setdomainname = $79 +sys_newuname = $7a +sys_modify_ldt = $7b +sys_adjtimex = $7c +sys_mprotect = $7d +sys_sigprocmask = $7e +sys_init_module = $80 +sys_delete_module = $81 +sys_quotactl = $83 +sys_getpgid = $84 +sys_fchdir = $85 +sys_bdflush = $86 +sys_sysfs = $87 +sys_personality = $88 +sys_setfsuid16 = $8a +sys_setfsgid16 = $8b +sys_llseek = $8c +sys_getdents = $8d +sys_select = $8e +sys_flock = $8f +sys_msync = $90 +sys_readv = $91 +sys_writev = $92 +sys_getsid = $93 +sys_fdatasync = $94 +sys_sysctl = $95 +sys_mlock = $96 +sys_munlock = $97 +sys_mlockall = $98 +sys_munlockall = $99 +sys_sched_setparam = $9a +sys_sched_getparam = $9b +sys_sched_setscheduler = $9c +sys_sched_getscheduler = $9d +sys_sched_yield = $9e +sys_sched_get_priority_m = $9f +sys_sched_get_priority_m = $a0 +sys_sched_rr_get_interva = $a1 +sys_nanosleep = $a2 +sys_mremap = $a3 +sys_setresuid16 = $a4 +sys_getresuid16 = $a5 +sys_vm86 = $a6 +sys_poll = $a8 +sys_nfsservctl = $a9 +sys_setresgid16 = $aa +sys_getresgid16 = $ab +sys_prctl = $ac +sys_rt_sigreturn = $ad +sys_rt_sigaction = $ae +sys_rt_sigprocmask = $af +sys_rt_sigpending = $b0 +sys_rt_sigtimedwait = $b1 +sys_rt_sigqueueinfo = $b2 +sys_rt_sigsuspend = $b3 +sys_pread64 = $b4 +sys_pwrite64 = $b5 +sys_chown16 = $b6 +sys_getcwd = $b7 +sys_capget = $b8 +sys_capset = $b9 +sys_sigaltstack = $ba +sys_sendfile = $bb +sys_vfork = $be +sys_getrlimit = $bf +sys_mmap2 = $c0 +sys_truncate64 = $c1 +sys_ftruncate64 = $c2 +sys_stat64 = $c3 +sys_lstat64 = $c4 +sys_fstat64 = $c5 +sys_lchown = $c6 +sys_getuid = $c7 +sys_getgid = $c8 +sys_geteuid = $c9 +sys_getegid = $ca +sys_setreuid = $cb +sys_setregid = $cc +sys_getgroups = $cd +sys_setgroups = $ce +sys_fchown = $cf +sys_setresuid = $d0 +sys_getresuid = $d1 +sys_setresgid = $d2 +sys_getresgid = $d3 +sys_chown = $d4 +sys_setuid = $d5 +sys_setgid = $d6 +sys_setfsuid = $d7 +sys_setfsgid = $d8 +sys_pivot_root = $d9 +sys_mincore = $da +sys_madvise = $db +sys_getdents64 = $dc +sys_fcntl64 = $dd +sys_gettid = $e0 +sys_readahead = $e1 +sys_setxattr = $e2 +sys_lsetxattr = $e3 +sys_fsetxattr = $e4 +sys_getxattr = $e5 +sys_lgetxattr = $e6 +sys_fgetxattr = $e7 +sys_listxattr = $e8 +sys_llistxattr = $e9 +sys_flistxattr = $ea +sys_removexattr = $eb +sys_lremovexattr = $ec +sys_fremovexattr = $ed +sys_tkill = $ee +sys_sendfile64 = $ef +sys_futex = $f0 +sys_sched_setaffinity = $f1 +sys_sched_getaffinity = $f2 +sys_set_thread_area = $f3 +sys_get_thread_area = $f4 +sys_io_setup = $f5 +sys_io_destroy = $f6 +sys_io_getevents = $f7 +sys_io_submit = $f8 +sys_io_cancel = $f9 +sys_fadvise64 = $fa +sys_exit_group = $fc +sys_lookup_dcookie = $fd +sys_epoll_create = $fe +sys_epoll_ctl = $ff +sys_epoll_wait = $100 +sys_remap_file_pages = $101 +sys_set_tid_address = $102 +sys_timer_create = $103 +sys_timer_settime = $104 +sys_timer_gettime = $105 +sys_timer_getoverrun = $106 +sys_timer_delete = $107 +sys_clock_settime = $108 +sys_clock_gettime = $109 +sys_clock_getres = $10a +sys_clock_nanosleep = $10b +sys_statfs64 = $10c +sys_fstatfs64 = $10d +sys_tgkill = $10e +sys_utimes = $10f +sys_fadvise64_64 = $110 +sys_mbind = $112 +sys_get_mempolicy = $113 +sys_set_mempolicy = $114 +sys_mq_open = $115 +sys_mq_unlink = $116 +sys_mq_timedsend = $117 +sys_mq_timedreceive = $118 +sys_mq_notify = $119 +sys_mq_getsetattr = $11a +sys_kexec_load = $11b +sys_waitid = $11c +sys_add_key = $11e +sys_request_key = $11f +sys_keyctl = $120 +sys_ioprio_set = $121 +sys_ioprio_get = $122 +sys_inotify_init = $123 +sys_inotify_add_watch = $124 +sys_inotify_rm_watch = $125 +sys_migrate_pages = $126 +sys_openat = $127 +sys_mkdirat = $128 +sys_mknodat = $129 +sys_fchownat = $12a +sys_futimesat = $12b +sys_fstatat64 = $12c +sys_unlinkat = $12d +sys_renameat = $12e +sys_linkat = $12f +sys_symlinkat = $130 +sys_readlinkat = $131 +sys_fchmodat = $132 +sys_faccessat = $133 +sys_pselect6 = $134 +sys_ppoll = $135 +sys_unshare = $136 +sys_set_robust_list = $137 +sys_get_robust_list = $138 +sys_splice = $139 +sys_sync_file_range = $13a +sys_tee = $13b +sys_vmsplice = $13c +sys_move_pages = $13d +sys_getcpu = $13e +sys_epoll_pwait = $13f +sys_utimensat = $140 +sys_signalfd = $141 +sys_timerfd_create = $142 +sys_eventfd = $143 +sys_fallocate = $144 +sys_timerfd_settime = $145 +sys_timerfd_gettime = $146 +sys_signalfd4 = $147 +sys_eventfd2 = $148 +sys_epoll_create1 = $149 +sys_dup3 = $14a +sys_pipe2 = $14b +sys_inotify_init1 = $14c +sys_preadv = $14d +sys_pwritev = $14e +sys_rt_tgsigqueueinfo = $14f +sys_perf_event_open = $150 +sys_recvmmsg = $151 + + +; file open access flags to be used with sys_open and other file functions. +O_ACCMODE = 0003o +O_RDONLY = 00o +O_WRONLY = 01o +O_RDWR = 02o +O_CREAT = 0100o +O_EXCL = 0200o +O_NOCTTY = 0400o +O_TRUNC = 01000o +O_APPEND = 02000o +O_NONBLOCK = 04000o +O_NDELAY = O_NONBLOCK +O_SYNC = 010000o ;specific to ext2 fs and block devices +FASYNC = 020000o ;fcntl, for BSD compatibility +O_DIRECT = 040000o ;direct disk access hint - currently ignored +O_LARGEFILE = 0100000o +O_DIRECTORY = 0200000o ;must be a directory +O_NOFOLLOW = 0400000o ;don't follow links +O_NOATIME = 01000000o + +; file permissions flags +S_ISUID = 04000o ;set user ID on execution +S_ISGID = 02000o ;set group ID on execution +S_ISVTX = 01000o ;sticky bit +S_IRUSR = 00400o ;read by owner (S_IREAD) +S_IWUSR = 00200o ;write by owner (S_IWRITE) +S_IXUSR = 00100o ;execute/search by owner (S_IEXEC) +S_IRGRP = 00040o ;read by group +S_IWGRP = 00020o ;write by group +S_IXGRP = 00010o ;execute/search by group +S_IROTH = 00004o ;read by others (R_OK) +S_IWOTH = 00002o ;write by others (W_OK) +S_IXOTH = 00001o ;execute/search by others (X_OK) + + + +;socket commands + +SYS_SOCKET = 1 +SYS_BIND = 2 +SYS_CONNECT = 3 +SYS_LISTEN = 4 +SYS_ACCEPT = 5 +SYS_GETSOCKNAME = 6 +SYS_GETPEERNAME = 7 +SYS_SOCKETPAIR = 8 +SYS_SEND = 9 +SYS_RECV = 10 +SYS_SENDTO = 11 +SYS_RECVFROM = 12 +SYS_SHUTDOWN = 13 +SYS_SETSOCKOPT = 14 +SYS_GETSOCKOPT = 15 +SYS_SENDMSG = 16 +SYS_RECVMSG = 17 + +;socket constants + +; SYS_SHUTDOWN argument: + +SHUT_RD = 0 +SHUT_WR = 1 +SHUT_RDWR = 2 + +; + +AF_UNSPEC = 0 +AF_UNIX = 1 +AF_LOCAL = 1 +AF_INET = 2 +AF_AX25 = 3 +AF_IPX = 4 +AF_APPLETALK = 5 +AF_NETROM = 6 +AF_BRIDGE = 7 +AF_ATMPVC = 8 +AF_X25 = 9 +AF_INET6 = 10 +AF_ROSE = 11 +AF_DECnet = 12 +AF_NETBEUI = 13 +AF_SECURITY = 14 +AF_KEY = 15 +AF_NETLINK = 16 +AF_ROUTE = AF_NETLINK +AF_PACKET = 17 +AF_ASH = 18 +AF_ECONET = 19 +AF_ATMSVC = 20 +AF_SNA = 22 +AF_IRDA = 23 +AF_PPPOX = 24 +AF_WANPIPE = 25 +AF_LLC = 26 +AF_TIPC = 30 +AF_BLUETOOTH = 31 +AF_MAX = 32 + +PF_UNSPEC = AF_UNSPEC +PF_UNIX = AF_UNIX +PF_LOCAL = AF_LOCAL +PF_INET = AF_INET +PF_AX25 = AF_AX25 +PF_IPX = AF_IPX +PF_APPLETALK = AF_APPLETALK +PF_NETROM = AF_NETROM +PF_BRIDGE = AF_BRIDGE +PF_ATMPVC = AF_ATMPVC +PF_X25 = AF_X25 +PF_INET6 = AF_INET6 +PF_ROSE = AF_ROSE +PF_DECnet = AF_DECnet +PF_NETBEUI = AF_NETBEUI +PF_SECURITY = AF_SECURITY +PF_KEY = AF_KEY +PF_NETLINK = AF_NETLINK +PF_ROUTE = AF_ROUTE +PF_PACKET = AF_PACKET +PF_ASH = AF_ASH +PF_ECONET = AF_ECONET +PF_ATMSVC = AF_ATMSVC +PF_SNA = AF_SNA +PF_IRDA = AF_IRDA +PF_PPPOX = AF_PPPOX +PF_WANPIPE = AF_WANPIPE +PF_LLC = AF_LLC +PF_TIPC = AF_TIPC +PF_BLUETOOTH = AF_BLUETOOTH +PF_MAX = AF_MAX + +SOCK_STREAM = 1 +SOCK_DGRAM = 2 +SOCK_RAW = 3 +SOCK_RDM = 4 +SOCK_SEQPACKET = 5 +SOCK_DCCP = 6 +SOCK_PACKET = 10 + + +; socket flags +MSG_OOB = 1 +MSG_PEEK = 2 +MSG_DONTROUTE = 4 +MSG_TRYHARD = 4 +MSG_CTRUNC = 8 +MSG_PROBE = 0x10 +MSG_TRUNC = 0x20 +MSG_DONTWAIT = 0x40 +MSG_EOR = 0x80 +MSG_WAITALL = 0x100 +MSG_FIN = 0x200 +MSG_SYN = 0x400 +MSG_CONFIRM = 0x800 +MSG_RST = 0x1000 +MSG_ERRQUEUE = 0x2000 +MSG_NOSIGNAL = 0x4000 +MSG_MORE = 0x8000 + + +SOL_SOCKET = 1 + +SO_DEBUG = 1 +SO_REUSEADDR = 2 +SO_TYPE = 3 +SO_ERROR = 4 +SO_DONTROUTE = 5 +SO_BROADCAST = 6 +SO_SNDBUF = 7 +SO_RCVBUF = 8 +SO_SNDBUFFORCE = 32 +SO_RCVBUFFORCE = 33 +SO_KEEPALIVE = 9 +SO_OOBINLINE = 10 +SO_NO_CHECK = 11 +SO_PRIORITY = 12 +SO_LINGER = 13 +SO_BSDCOMPAT = 14 +SO_PASSCRED = 16 +SO_PEERCRED = 17 +SO_RCVLOWAT = 18 +SO_SNDLOWAT = 19 +SO_RCVTIMEO = 20 +SO_SNDTIMEO = 21 + + +IPPROTO_IP = 0 ; dummy for IP +IPPROTO_HOPOPTS = 0 ; IPv6 hop-by-hop options +IPPROTO_ICMP = 1 ; control message protocol +IPPROTO_IGMP = 2 ; group mgmt protocol +IPPROTO_IPV4 = 4 +IPPROTO_TCP = 6 ; tcp +IPPROTO_EGP = 8 ; exterior gateway protocol +IPPROTO_PIGP = 9 +IPPROTO_UDP = 17 ; user datagram protocol +IPPROTO_DCCP = 33 ; datagram congestion control protocol +IPPROTO_IPV6 = 41 +IPPROTO_ROUTING = 43 ; IPv6 routing header +IPPROTO_FRAGMENT = 44 ; IPv6 fragmentation header +IPPROTO_RSVP = 46 ; resource reservation +IPPROTO_GRE = 47 ; General Routing Encap. +IPPROTO_ESP = 50 ; SIPP Encap Sec. Payload +IPPROTO_AH = 51 ; SIPP Auth Header +IPPROTO_MOBILE = 55 +IPPROTO_ICMPV6 = 58 ; ICMPv6 +IPPROTO_NONE = 59 ; IPv6 no next header +IPPROTO_DSTOPTS = 60 ; IPv6 destination options +IPPROTO_MOBILITY_OLD = 62 +IPPROTO_ND = 77 ; Sun net disk proto (temp.) +IPPROTO_EIGRP = 88 ; Cisco/GXS IGRP +IPPROTO_OSPF = 89 +IPPROTO_PIM = 103 +IPPROTO_IPCOMP = 108 +IPPROTO_VRRP = 112 +IPPROTO_PGM = 113 +IPPROTO_SCTP = 132 +IPPROTO_MOBILITY = 135 + + + +; sys_ipc commands and constants + + +SEMOP = 1 +SEMGET = 2 +SEMCTL = 3 +SEMTIMEDOP = 4 + +MSGSND = 11 +MSGRCV = 12 +MSGGET = 13 +MSGCTL = 14 + +SHMAT = 21 +SHMDT = 22 +SHMGET = 23 +SHMCTL = 24 + +; shm_mode upper byte flags + +SHM_DEST = $200 ; segment will be destroyed on last detach +SHM_LOCKED = $400 ; segment will not be swapped +SHM_HUGETLB = $800 ; segment is mapped via hugetlb +SHM_NORESERVE = $1000 ; don't check for reservations + + + + + + +; Signal values +; default action is: "Term" - terminate; "Core" - terminate with core dump; "Ign" - ignore; "Stop" - stop the process; "Cont" - continue the process. + +macro signal name, value { + name = value + name#.mask = 1 shl value +} + +signal SIGHUP , 1 ; Term Hangup detected on controlling terminal or death of controlling process +signal SIGINT , 2 ; Term Interrupt from keyboard +signal SIGQUIT , 3 ; Core Quit from keyboard +signal SIGILL , 4 ; Core Illegal Instruction +signal SIGTRAP , 5 ; Core Trace/breakpoint trap +signal SIGABRT , 6 ; Core Abort signal from abort(3) +signal SIGIOT , 6 ; Core IOT trap. A synonym for SIGABRT +signal SIGBUS , 7 ; Core Bus error (bad memory access) +signal SIGFPE , 8 ; Core Floating point exception +signal SIGKILL , 9 ; Term Kill signal +signal SIGUSR1 , 10 ; Term User-defined signal 1 +signal SIGSEGV , 11 ; Core Invalid memory reference +signal SIGUSR2 , 12 ; Term User-defined signal 2 +signal SIGPIPE , 13 ; Term Broken pipe: write to pipe with no readers +signal SIGALRM , 14 ; Term Timer signal from alarm(2) +signal SIGTERM , 15 ; Term Termination signal +signal SIGSTKFLT, 16 ; Term Stack fault on coprocessor (unused) +signal SIGCHLD , 17 ; Ign Child stopped or terminated +signal SIGCONT , 18 ; Cont Continue if stopped +signal SIGSTOP , 19 ; Stop Stop process +signal SIGTSTP , 20 ; Stop Stop typed at tty +signal SIGTTIN , 21 ; Stop tty input for background process +signal SIGTTOU , 22 ; Stop tty output for background process +signal SIGURG , 23 ; Ign Urgent condition on socket (4.2BSD) +signal SIGXCPU , 24 ; Core CPU time limit exceeded (4.2BSD) +signal SIGXFSZ , 25 ; Core File size limit exceeded (4.2BSD) +signal SIGVTALRM, 26 ; Term Virtual alarm clock (4.2BSD) +signal SIGPROF , 27 ; Term Profiling timer expired +signal SIGWINCH , 28 ; Ign Window resize signal (4.3BSD, Sun) +signal SIGIO , 29 ; Term I/O now possible (4.2BSD) +signal SIGPWR , 30 ; Term Power failure (System V) +signal SIGSYS , 31 ; Core Bad argument to routine (SVr4) +signal SIGUNUSED, 31 ; Core Synonymous with SIGSYS + +SIGRTMIN = 34 +SIGRTMAX = 64 + +; signal flags + +SA_ONSTACK = $00000001 ; Call the signal handler on an alternate signal stack provided by + ; sigaltstack(2). If an alternate stack is not available, the + ; default stack will be used. This flag is only meaningful when + ; establishing a signal handler. + + + +SA_RESETHAND = $00000004 ; Restore the signal action to the default state once the signal + ; handler has been called. This flag is only meaningful when + ; establishing a signal handler. SA_ONESHOT is an obsolete, + ; nonstandard synonym for this flag. + + +SA_NOCLDSTOP = $00000008 ; If signum is SIGCHLD, do not receive notification when child + ; processes stop (i.e., when they receive one of SIGSTOP, SIGTSTP, + ; SIGTTIN or SIGTTOU) or resume (i.e., they receive SIGCONT) (see + ; wait(2)). This flag is only meaningful when establishing a handler + ; for SIGCHLD. + + +SA_SIGINFO = $00000010 ; The signal handler takes 3 arguments, not one. In this case, + ; sa_sigaction should be set instead of sa_handler. This flag is + ; only meaningful when establishing a signal handler. + + +SA_NODEFER = $00000020 ; Do not prevent the signal from being received from within its own + ; signal handler. This flag is only meaningful when establishing a + ; signal handler. SA_NOMASK is an obsolete, nonstandard synonym for + ; this flag. + + +SA_RESTART = $00000040 ; Provide behavior compatible with BSD signal semantics by making + ; certain system calls restartable across signals. This flag is only + ; meaningful when establishing a signal handler. See signal(7) for a + ; discussion of system call restarting. + + +SA_NOCLDWAIT = $00000080 ; If signum is SIGCHLD, do not transform children into zombies when + ; they terminate. See also waitpid(2). This flag is only meaningful + ; when establishing a handler for SIGCHLD, or when setting that + ; signal's disposition to SIG_DFL. + ; + ; If the SA_NOCLDWAIT flag is set when establishing a handler for + ; SIGCHLD, POSIX.1 leaves it unspecified whether a SIGCHLD signal is + ; generated when a child process terminates. On Linux, a SIGCHLD + ; signal is generated in this case; on some other implementations, it + ; is not. + + +SA_NOMASK = SA_NODEFER +SA_ONESHOT = SA_RESETHAND +SA_INTERRUPT = $20000000 ; dummy -- ignored +SA_RESTORER = $04000000 ; obsolete -- ignored + +; Signals hanlers constants + +SIG_DFL = 0 ; default signal handling +SIG_IGN = 1 ; ignore signal +SIG_ERR = -1 ; error return from signal + + +; Interval timers structures + +ITIMER_REAL = 0 +ITIMER_VIRTUAL = 1 +ITIMER_PROF = 2 + + +struct lnx_sigaction + .sa_handler dd ? ; SIG_DFL, SIG_IGN or ptr proc Handler, .signal + .sa_sigaction dd ? ; ptr proc SigAction, .signal, .ptrSignalInfo, .ptr + .sa_mask dd ? ; mask of the signals + .sa_flags dd ? ; + .sa_restorer dd ? ; obsolete, don't use +ends + + +struct sig_context + .gs dd ? + .fs dd ? + .es dd ? + .ds dd ? + + .edi dd ? + .esi dd ? + .ebp dd ? + .esp dd ? + .ebx dd ? + .edx dd ? + .ecx dd ? + .eax dd ? + + .trapno dd ? + .err dd ? + .eip dd ? + .cs dd ? + .eflags dd ? + .esp_at_signal dd ? + .ss dd ? + .fpstate dd ? + .oldmask dd ? + .cr2 dd ? +ends + + + +struct lnx_timeval + .tv_sec dd ? + .tv_usec dd ? +ends + +struct lnx_timezone + .tz_minuteswest dd ? + .tz_dsttime dd ? +ends + + + +struct lnx_itimerval + .it_interval lnx_timeval + .it_value lnx_timeval +ends + + +; structures and equates for timer_xxxx POSIX functions + + +CLOCK_REALTIME = 0 ; Identifier for system-wide realtime clock. +CLOCK_MONOTONIC = 1 ; Monotonic system-wide clock. +CLOCK_PROCESS_CPUTIME_ID = 2 ; High-resolution timer from the CPU. +CLOCK_THREAD_CPUTIME_ID = 3 ; Thread-specific CPU-time clock. + +SIGEV_SIGNAL = 0 ; Notify via signal. +SIGEV_NONE = 1 ; Other notification: meaningless. +SIGEV_THREAD = 2 ; Deliver via thread creation. +SIGEV_THREAD_ID = 4 ; Send signal to specific thread. + + +struct lnx_sigval + .sival_int dd ? + virtual at .sival_int + .sival_ptr dd ? + end virtual +ends + +struct lnx_sigev_thread + .function dd ? + .attribute dd ? +ends + + +struct lnx_sigevent + .value lnx_sigval + .signo dd ? + .notify dd ? + ._pad rd 13 + + virtual at ._pad + ._tid dd ? + end virtual + + virtual at ._pad + .thread lnx_sigev_thread + end virtual +ends + + +struct lnx_timespec + .tv_sec dd ? ; time in seconds + .tv_nsec dd ? ; time is nano seconds +ends + + +struct lnx_itimerspec + .it_interval lnx_timespec + .it_value lnx_timespec +ends + + +; sys_clone function flags + +CLONE_VM = $00000100 ; set if VM shared between processes +CLONE_FS = $00000200 ; set if fs info shared between processes +CLONE_FILES = $00000400 ; set if open files shared between processes +CLONE_SIGHAND = $00000800 ; set if signal handlers and blocked signals shared +CLONE_PTRACE = $00002000 ; set if we want to let tracing continue on the child too +CLONE_VFORK = $00004000 ; set if the parent wants the child to wake it up on mm_release +CLONE_PARENT = $00008000 ; set if we want to have the same parent as the cloner +CLONE_THREAD = $00010000 ; Same thread group? +CLONE_NEWNS = $00020000 ; New namespace group? +CLONE_SYSVSEM = $00040000 ; share system V SEM_UNDO semantics +CLONE_SETTLS = $00080000 ; create a new TLS for the child +CLONE_PARENT_SETTID = $00100000 ; set the TID in the parent +CLONE_CHILD_CLEARTID = $00200000 ; clear the TID in the child +CLONE_DETACHED = $00400000 ; Unused, ignored +CLONE_UNTRACED = $00800000 ; set if the tracing process can't force CLONE_PTRACE on this clone +CLONE_CHILD_SETTID = $01000000 ; set the TID in the child +CLONE_STOPPED = $02000000 ; Start in stopped state +CLONE_NEWUTS = $04000000 ; New utsname group? +CLONE_NEWIPC = $08000000 ; New ipcs +CLONE_NEWUSER = $10000000 ; New user namespace +CLONE_NEWPID = $20000000 ; New pid namespace +CLONE_NEWNET = $40000000 ; New network namespace +CLONE_IO = $80000000 ; Clone io context + + +; Memory constants + +; Protections are chosen from these bits, OR'd together. The +; implementation does not necessarily support PROT_EXEC or PROT_WRITE +; without PROT_READ. The only guarantees are that no writing will be +; allowed without PROT_WRITE and no access will be allowed for PROT_NONE. + +PROT_READ = $1 ; Page can be read. +PROT_WRITE = $2 ; Page can be written. +PROT_EXEC = $4 ; Page can be executed. +PROT_NONE = $0 ; Page can not be accessed. +PROT_GROWSDOWN = $01000000 ; Extend change to start of + ; growsdown vma (mprotect only). +PROT_GROWSUP = $02000000 ; Extend change to start of + ; growsup vma (mprotect only). + +; Sharing types (must choose one and only one of these). +MAP_SHARED = $01 ; Share changes. +MAP_PRIVATE = $02 ; Changes are private. +MAP_TYPE = $0f ; Mask for type of mapping. + + +; Other flags. +MAP_FIXED = $10 ; Interpret addr exactly. +MAP_ANONYMOUS = $20 ; Don't use a file. +MAP_32BIT = $40 ; Only give out 32-bit addresses. + + +; These are Linux-specific. +MAP_GROWSDOWN = $00100 ; Stack-like segment. +MAP_DENYWRITE = $00800 ; ETXTBSY +MAP_EXECUTABLE = $01000 ; Mark it as an executable. +MAP_LOCKED = $02000 ; Lock the mapping. +MAP_NORESERVE = $04000 ; Don't check for reservations. +MAP_POPULATE = $08000 ; Populate (prefault) pagetables. +MAP_NONBLOCK = $10000 ; Do not block on IO. +MAP_STACK = $20000 ; Allocation is for a stack. + + +; Flags to `msync'. +MS_ASYNC = 1 ; Sync memory asynchronously. +MS_SYNC = 4 ; Synchronous memory sync. +MS_INVALIDATE = 2 ; Invalidate the caches. + + +; Flags for `mlockall'. +MCL_CURRENT = 1 ; Lock all currently mapped pages. +MCL_FUTURE = 2 ; Lock all additions to address space. + +; Flags for `mremap'. +MREMAP_MAYMOVE = 1 +MREMAP_FIXED = 2 + +; Advice to `madvise'. +MADV_NORMAL = 0 ; No further special treatment. +MADV_RANDOM = 1 ; Expect random page references. +MADV_SEQUENTIAL = 2 ; Expect sequential page references. +MADV_WILLNEED = 3 ; Will need these pages. +MADV_DONTNEED = 4 ; Don't need these pages. +MADV_REMOVE = 9 ; Remove these pages and resources. +MADV_DONTFORK = 10 ; Do not inherit across fork. +MADV_DOFORK = 11 ; Do inherit across fork. + + +; The POSIX people had to invent similar names for the same things. +POSIX_MADV_NORMAL = 0 ; No further special treatment. +POSIX_MADV_RANDOM = 1 ; Expect random page references. +POSIX_MADV_SEQUENTIAL = 2 ; Expect sequential page references. +POSIX_MADV_WILLNEED = 3 ; Will need these pages. +POSIX_MADV_DONTNEED = 4 ; Don't need these pages. + + + +; sys_futex constants + + +FUTEX_WAIT = 0 +FUTEX_WAKE = 1 +FUTEX_FD = 2 +FUTEX_REQUEUE = 3 +FUTEX_CMP_REQUEUE = 4 +FUTEX_WAKE_OP = 5 +FUTEX_LOCK_PI = 6 +FUTEX_UNLOCK_PI = 7 +FUTEX_TRYLOCK_PI = 8 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAKE_BITSET = 10 + +FUTEX_PRIVATE_FLAG = $80 + +; sys_fstat and similar structures + +struct STAT + .st_dev dw ? ; ID of device containing file + .pad1 dw ? + .st_ino dd ? ; inode number + .st_mode dw ? ; protection + .st_nlink dw ? ; number of hard links + .st_uid dw ? ; user ID of owner + .st_gid dw ? ; group ID of owner + .st_rdev dw ? ; device ID (if special file) + .pad2 dw ? + .st_size dd ? ; total size, in bytes + .st_blksize dd ? ; block size + .st_blocks dd ? + + .st_atime dd ? ; time of last access + .unused1 dd ? + + .st_mtime dd ? ; time of last modification + .unused2 dd ? + + .st_ctime dd ? ; time of last status change + .unused3 dd ? + .unused4 dd ? + .unused5 dd ? +ends + + +struct STAT64 + .st_dev rq 1 + .__pad0 rb 4 + .__st_ino rd 1 + .st_mode rd 1 + .st_nlink rd 1 + .st_uid rd 1 + .st_gid rd 1 + .st_rdev rq 1 + .__pad3 rb 4 + .st_size rq 1 + .st_blksize rd 1 + .st_blocks rq 1 + .st_atime rd 1 + .st_atime_nsec rd 1 + .st_mtime rd 1 + .st_mtime_nsec rd 1 + .st_ctime rd 1 + .st_ctime_nsec rd 1 + .st_ino rq 1 +ends + +; sys_getdents + +; it is variable length structure. +struct linux_dirent + .d_ino dd ? + .d_off dd ? + .d_reclen dw ? + label .d_name byte +ends + +struct linux_dirent64 + .d_ino dq ? + .d_off dq ? + .d_reclen dw ? + .d_type db ? + label .d_name byte +ends + + +; file types for the above structure. +; this value is written at the last byte of the structure. (linux_dirent.d_reclen-1) + +DT_UNKNOWN = 0 +DT_FIFO = 1 +DT_CHR = 2 +DT_DIR = 4 +DT_BLK = 6 +DT_REG = 8 ; regular file +DT_LNK = 10 +DT_SOCK = 12 +DT_WHT = 14 + + +; sys_ioctl constants and structures. + +_IOC_NONE = 0 +_IOC_WRITE = 1 +_IOC_READ = 2 +_IOC_NRBITS = 8 +_IOC_TYPEBITS = 8 +_IOC_SIZEBITS = 14 +_IOC_DIRBITS = 2 +_IOC_NRSHIFT = 0 +_IOC_TYPESHIFT = (_IOC_NRSHIFT+_IOC_NRBITS) +_IOC_SIZESHIFT = (_IOC_TYPESHIFT+_IOC_TYPEBITS) +_IOC_DIRSHIFT = (_IOC_SIZESHIFT+_IOC_SIZEBITS) + + +TCGETS = 0x5401 +TCSETS = 0x5402 +TCSETSW = 0x5403 +TCSETSF = 0x5404 +TCGETA = 0x5405 +TCSETA = 0x5406 +TCSETAW = 0x5407 +TCSETAF = 0x5408 +TCSBRK = 0x5409 +TCXONC = 0x540A +TCFLSH = 0x540B +TIOCEXCL = 0x540C +TIOCNXCL = 0x540D +TIOCSCTTY = 0x540E +TIOCGPGRP = 0x540F +TIOCSPGRP = 0x5410 +TIOCOUTQ = 0x5411 +TIOCSTI = 0x5412 +TIOCGWINSZ = 0x5413 +TIOCSWINSZ = 0x5414 +TIOCMGET = 0x5415 +TIOCMBIS = 0x5416 +TIOCMBIC = 0x5417 +TIOCMSET = 0x5418 +TIOCGSOFTCAR = 0x5419 +TIOCSSOFTCAR = 0x541A +FIONREAD = 0x541B +TIOCINQ = FIONREAD +TIOCLINUX = 0x541C +TIOCCONS = 0x541D +TIOCGSERIAL = 0x541E +TIOCSSERIAL = 0x541F +TIOCPKT = 0x5420 +FIONBIO = 0x5421 +TIOCNOTTY = 0x5422 +TIOCSETD = 0x5423 +TIOCGETD = 0x5424 +TCSBRKP = 0x542 +TIOCSBRK = 0x5427 +TIOCCBRK = 0x5428 +TIOCGSID = 0x5429 +TIOCGPTN = ((_IOC_READ shl _IOC_DIRSHIFT) or ("T" shl _IOC_TYPESHIFT) or (0x30 shl _IOC_NRSHIFT) or (4 shl _IOC_SIZESHIFT)) +TIOCSPTLCK = ((_IOC_WRITE shl _IOC_DIRSHIFT) or ("T" shl _IOC_TYPESHIFT) or (0x31 shl _IOC_NRSHIFT) or (4 shl _IOC_SIZESHIFT)) +FIONCLEX = 0x5450 +FIOCLEX = 0x5451 +FIOASYNC = 0x5452 +TIOCSERCONFIG = 0x5453 +TIOCSERGWILD = 0x5454 +TIOCSERSWILD = 0x5455 +TIOCGLCKTRMIOS = 0x5456 +TIOCSLCKTRMIOS = 0x5457 +TIOCSERGSTRUCT = 0x5458 +TIOCSERGETLSR = 0x5459 +TIOCSERGETMULTI = 0x545A +TIOCSERSETMULTI = 0x545B +TIOCMIWAIT = 0x545C +TIOCGICOUNT = 0x545D +TIOCGHAYESESP = 0x545E +TIOCSHAYESESP = 0x545F +FIOQSIZE = 0x5460 + + +NCCS = 19 + +struct termios +.c_iflag rd 1 ; input mode flags +.c_oflag rd 1 ; output mode flags +.c_cflag rd 1 ; control mode flags +.c_lflag rd 1 ; local mode flags +.c_line rb 1 ; line discipline +.c_cc rb NCCS ; control characters +ends + + +;termios entries. + +; c_cc characters +VINTR = 0 +VQUIT = 1 +VERASE = 2 +VKILL = 3 +VEOF = 4 +VTIME = 5 +VMIN = 6 +VSWTC = 7 +VSTART = 8 +VSTOP = 9 +VSUSP = 10 +VEOL = 11 +VREPRINT = 12 +VDISCARD = 13 +VWERASE = 14 +VLNEXT = 15 +VEOL2 = 16 + +; c_iflag bits +IGNBRK = 0000001o +BRKINT = 0000002o +IGNPAR = 0000004o +PARMRK = 0000010o +INPCK = 0000020o +ISTRIP = 0000040o +INLCR = 0000100o +IGNCR = 0000200o +ICRNL = 0000400o +IUCLC = 0001000o +IXON = 0002000o +IXANY = 0004000o +IXOFF = 0010000o +IMAXBEL = 0020000o +IUTF8 = 0040000o + +; c_oflag bits +OPOST = 0000001o +OLCUC = 0000002o +ONLCR = 0000004o +OCRNL = 0000010o +ONOCR = 0000020o +ONLRET = 0000040o +OFILL = 0000100o +OFDEL = 0000200o +NLDLY = 0000400o +NL0 = 0000000o +NL1 = 0000400o +CRDLY = 0003000o +cCR0 = 0000000o +cCR1 = 0001000o +cCR2 = 0002000o +cCR3 = 0003000o +TABDLY = 0014000o +TAB0 = 0000000o +TAB1 = 0004000o +TAB2 = 0010000o +TAB3 = 0014000o +XTABS = 0014000o +BSDLY = 0020000o +BS0 = 0000000o +BS1 = 0020000o +VTDLY = 0040000o +VT0 = 0000000o +VT1 = 0040000o +FFDLY = 0100000o +FF0 = 0000000o +FF1 = 0100000o + +; c_cflag bit meaning +CBAUD = 0010017o +B0 = 0000000o +B50 = 0000001o +B75 = 0000002o +B110 = 0000003o +B134 = 0000004o +B150 = 0000005o +B200 = 0000006o +B300 = 0000007o +B600 = 0000010o +B1200 = 0000011o +B1800 = 0000012o +B2400 = 0000013o +B4800 = 0000014o +B9600 = 0000015o +B19200 = 0000016o +B38400 = 0000017o +EXTA = B19200 +EXTB = B38400 +CSIZE = 0000060o +CS5 = 0000000o +CS6 = 0000020o +CS7 = 0000040o +CS8 = 0000060o +CSTOPB = 0000100o +CREAD = 0000200o +PARENB = 0000400o +PARODD = 0001000o +HUPCL = 0002000o +CLOCAL = 0004000o +CBAUDEX = 0010000o +B57600 = 0010001o +B115200 = 0010002o +B230400 = 0010003o +B460800 = 0010004o +B500000 = 0010005o +B576000 = 0010006o +B921600 = 0010007o +B1000000 = 0010010o +B1152000 = 0010011o +B1500000 = 0010012o +B2000000 = 0010013o +B2500000 = 0010014o +B3000000 = 0010015o +B3500000 = 0010016o +B4000000 = 0010017o +CIBAUD = 002003600000o +CMSPAR = 010000000000o +CRTSCTS = 020000000000o + +; c_lflag bits +ISIG = 0000001o +ICANON = 0000002o +XCASE = 0000004o +ECHO = 0000010o +ECHOE = 0000020o +ECHOK = 0000040o +ECHONL = 0000100o +NOFLSH = 0000200o +TOSTOP = 0000400o +ECHOCTL = 0001000o +ECHOPRT = 0002000o +ECHOKE = 0004000o +FLUSHO = 0010000o +PENDIN = 0040000o +IEXTEN = 0100000o + +;end of termios entries. + + + +; Constants for sys_personality + + +ADDR_NO_RANDOMIZE = $00040000 +MMAP_PAGE_ZERO = $00100000 +ADDR_COMPAT_LAYOUT = $00200000 +READ_IMPLIES_EXEC = $00400000 +ADDR_LIMIT_32BIT = $00800000 +SHORT_INODE = $01000000 +WHOLE_SECONDS = $02000000 +STICKY_TIMEOUTS = $04000000 +ADDR_LIMIT_3GB = $08000000 + + +; Personality types. + +; These go in the low byte. Avoid using the top bit, it will conflict with error returns. + +PER_LINUX = $0000 +PER_LINUX_32BIT = $0000 or ADDR_LIMIT_32BIT +PER_SVR4 = $0001 or STICKY_TIMEOUTS or MMAP_PAGE_ZERO +PER_SVR3 = $0002 or STICKY_TIMEOUTS or SHORT_INODE +PER_SCOSVR3 = $0003 or STICKY_TIMEOUTS or WHOLE_SECONDS or SHORT_INODE +PER_OSR5 = $0003 or STICKY_TIMEOUTS or WHOLE_SECONDS +PER_WYSEV386 = $0004 or STICKY_TIMEOUTS or SHORT_INODE +PER_ISCR4 = $0005 or STICKY_TIMEOUTS +PER_BSD = $0006 +PER_SUNOS = $0006 or STICKY_TIMEOUTS +PER_XENIX = $0007 or STICKY_TIMEOUTS or SHORT_INODE +PER_LINUX32 = $0008 +PER_LINUX32_3GB = $0008 or ADDR_LIMIT_3GB +PER_IRIX32 = $0009 or STICKY_TIMEOUTS ; IRIX5 32-bit +PER_IRIXN32 = $000a or STICKY_TIMEOUTS ; IRIX6 new 32-bit +PER_IRIX64 = $000b or STICKY_TIMEOUTS ; IRIX6 64-bit +PER_RISCOS = $000c +PER_SOLARIS = $000d or STICKY_TIMEOUTS +PER_UW7 = $000e or STICKY_TIMEOUTS or MMAP_PAGE_ZERO +PER_OSF4 = $000f +PER_HPUX = $0010 +PER_MASK = $00ff + + + +; sys_flock operations + +LOCK_SH = $01 ; shared file lock +LOCK_EX = $02 ; exclusive file lock +LOCK_NB = $04 ; don't block when locking +LOCK_UN = $08 ; unlock file ADDED freshlib/equates/Linux/_pthreads.inc Index: freshlib/equates/Linux/_pthreads.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_pthreads.inc @@ -0,0 +1,23 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Equates for pthread library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; mutex types. + +PTHREAD_MUTEX_NORMAL = 0 +PTHREAD_MUTEX_RECURSIVE = 1 +PTHREAD_MUTEX_ERRORCHECK = 2 +PTHREAD_MUTEX_ERRORCHECK_NP = PTHREAD_MUTEX_ERRORCHECK +PTHREAD_MUTEX_RECURSIVE_NP = PTHREAD_MUTEX_RECURSIVE +PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL + Index: freshlib/equates/Linux/_x.inc ================================================================== --- freshlib/equates/Linux/_x.inc +++ freshlib/equates/Linux/_x.inc @@ -1,60 +1,292 @@ -; X Protocol - X_PROTOCOL = 11 - X_PROTOCOL_REVISION = 0 - -;X Constants - -None = 0 -ParentRelative = 1 -CopyFromParent = 0 -PointerWindow = 0 -InputFocus = 1 -PointerRoot = 1 -AnyPropertyType = 0 -AnyKey = 0 -AnyButton = 0 -AllTemporary = 0 -CurrentTime = 0 -NoSymbol = 0 - -;Event Masks - -NoEventMask = 0h -KeyPressMask = 1h -KeyReleaseMask = 2h -ButtonPressMask = 4h -ButtonReleaseMask = 8h -EnterWindowMask = 10h -LeaveWindowMask = 20h -PointerMotionMask = 40h -PointerMotionHintMask = 80h -Button1MotionMask = 100h -Button2MotionMask = 200h -Button3MotionMask = 400h -Button4MotionMask = 800h -Button5MotionMask = 1000h -ButtonMotionMask = 2000h -KeymapStateMask = 4000h -ExposureMask = 8000h -VisibilityChangeMask = 10000h -StructureNotifyMask = 20000h -ResizeRedirectMask = 40000h -SubstructureNotifyMask = 80000h -SubstructureRedirectMask = 100000h -FocusChangeMask = 200000h -PropertyChangeMask = 400000h -ColormapChangeMask = 800000h -OwnerGrabButtonMask = 1000000h - -AllEventsMask = 1fbff7fh ;1ffffffh - - - - -;Event Names +; Predefined atoms + +atomPRIMARY = 1 +atomSECONDARY = 2 +atomARC = 3 +atomATOM = 4 +atomBITMAP = 5 +atomCARDINAL = 6 +atomCOLORMAP = 7 +atomCURSOR = 8 +atomCUT_BUFFER0 = 9 +atomCUT_BUFFER1 = 10 +atomCUT_BUFFER2 = 11 +atomCUT_BUFFER3 = 12 +atomCUT_BUFFER4 = 13 +atomCUT_BUFFER5 = 14 +atomCUT_BUFFER6 = 15 +atomCUT_BUFFER7 = 16 +atomDRAWABLE = 17 +atomFONT = 18 +atomINTEGER = 19 +atomPIXMAP = 20 +atomPOINT = 21 +atomRECTANGLE = 22 +atomRESOURCE_MANAGER = 23 +atomRGB_COLOR_MAP = 24 +atomRGB_BEST_MAP = 25 +atomRGB_BLUE_MAP = 26 +atomRGB_DEFAULT_MAP = 27 +atomRGB_GRAY_MAP = 28 +atomRGB_GREEN_MAP = 29 +atomRGB_RED_MAP = 30 +atomSTRING = 31 +atomVISUALID = 32 +atomWINDOW = 33 +atomWM_COMMAND = 34 +atomWM_HINTS = 35 +atomWM_CLIENT_MACHINE = 36 +atomWM_ICON_NAME = 37 +atomWM_ICON_SIZE = 38 +atomWM_NAME = 39 +atomWM_NORMAL_HINTS = 40 +atomWM_SIZE_HINTS = 41 +atomWM_ZOOM_HINTS = 42 +atomMIN_SPACE = 43 +atomNORM_SPACE = 44 +atomMAX_SPACE = 45 +atomEND_SPACE = 46 +atomSUPERSCRIPT_X = 47 +atomSUPERSCRIPT_Y = 48 +atomSUBSCRIPT_X = 49 +atomSUBSCRIPT_Y = 50 +atomUNDERLINE_POSITION = 51 +atomUNDERLINE_THICKNESS= 52 +atomSTRIKEOUT_ASCENT = 53 +atomSTRIKEOUT_DESCENT = 54 +atomITALIC_ANGLE = 55 +atomX_HEIGHT = 56 +atomQUAD_WIDTH = 57 +atomWEIGHT = 58 +atomPOINT_SIZE = 59 +atomRESOLUTION = 60 +atomCOPYRIGHT = 61 +atomNOTICE = 62 +atomFONT_NAME = 63 +atomFAMILY_NAME = 64 +atomFULL_NAME = 65 +atomCAP_HEIGHT = 66 +atomWM_CLASS = 67 +atomWM_TRANSIENT_FOR = 68 + +;display classes + +StaticGray = 0 +GrayScale = 1 +StaticColor = 2 +PseudoColor = 3 +TrueColor = 4 +DirectColor = 5 + + +; Window classes. + +CopyFromParent = 0 +InputOutput = 1 +InputOnly = 2 + +; Image byte order + +LSBFirst = 0 +MSBFirst = 1 + +; Bitmap format bit order + +LeastSignificant = 0 +MostSignificant = 1 + +;ImageFormat -- PutImage, GetImage + +XYBitmap = 0 +XYPixmap = 1 +ZPixmap = 2 + +;For CreateColormap + +AllocNone = 0 +AllocAll = 1 + + +; X major opcodes + +opCreateWindow = 1 +opChangeWindowAttributes= 2 +opDestroyWindow = 4 +opMapWindow = 8 +opConfigureRequest = 12 +opInternAtom = 16 +opChangeProperty = 18 +opDeleteProperty = 19 +opGetProperty = 20 +opSetSelectionOwner = 22 +opGetSelectionOwner = 23 +opConvertSelection = 24 +opSendEvent = 25 +opWarpPointer = 41 +opSetInputFocus = 42 +opOpenFont = 45 +opCloseFont = 46 +opCreatePixmap = 53 +opFreePixmap = 54 +opCreateGC = 55 +opFreeGC = 60 +opClearArea = 61 +opPutImage = 72 +opCreateColorMap = 78 +opCreateCursor = 93 +opCreateGlyphCursor = 94 +opFreeCursor = 95 +opQueryExtension = 98 +opGetKeyboardMapping = 101 + +; XFIXES minor opcodes + +opfixQueryVersion = 0 + + +; SYNC minor opcodes + +opCreateCounter = 2 +opDestroyCounter = 6 +opSetCounter = 3 + +; XKB minor opcodes +opXkbUseExtension = 0 +opXkbSelectEvents = 1 +opXkbGetMap = 8 + +; Xkb KB_DEVICESPEC values + +xkbUseCoreKbd = $100 +xkbUseCorePtr = $200 +xkbDfltXIClass = $300 +xkbDfltXIId = $400 +xkbAllXIClass = $500 +xkbAllXIId = $600 +xkbXINone = $ff00 + +; Xkb map parts + +mxkbKeyTypes = 1 +mxkbKeySyms = 2 +mxkbModifierMap = 4 +mxkbExplicitComponents = 8 +mxkbKeyActions = 16 +mxkbKeyBehaviors = 32 +mxkbVirtualMods = 64 +mxkbVirtualModMap = 128 + +; Xkb EventType mask + +mxkbNewKeyboardNotify = 1 +mxkbMapNotify = 2 +mxkbStateNotify = 4 +mxkbControlsNotify = 8 +mxkbIndicatorStateNotify = 16 +mxkbIndicatorMapNotify = 32 +mxkbNamesNotify = 64 +mxkbCompatMapNotify = 128 +mxkbBellNotify = 256 +mxkbActionMessage = 512 +mxkbAccessXNotify = 1024 +mxkbExtensionDeviceNotify = 2048 + + +; XKB map structure + +; treatment of the out-of-range groups. +xkbWrapIntoRange = 0 +xkbClampIntoRange = $40 +xkbRedirectIntoRange = $80 + + +; These values represents the standard key types, written in the xkbKeysymMapItem.ktIndex array +; separately for every key group. The group count is (.nSyms div .width) +xkbOneLevelIndex = 0 +xkbTwoLevelIndex = 1 +xkbAlphabeticIndex = 2 +xkbKeypadIndex = 3 + + +struct xkbKeysymMapItem + .ktIndex rb 4 ; array[0..3] the keytype for every of up to 4 groups. + .groupInfo db ? ; how to treat out-of-range groups. + .width db ? ; count of the keysyms in a group. + .nSyms dw ? ; count of the dword keysyms in the array + .keysyms: +ends + + + + +; ID identifiers for xGetID if there is no pointer associated + +objColorMap = 1 +objCounter = 2 +objContext = 3 +objCursor = 4 +objXFont = 5 +objPixmap = 6 + +objMax = 6 + +; bit masks for window attributes + +maskBkPixmap = $0001 +maskBkPixel = $0002 +maskBorderPixmap = $0004 +maskBorderPixel = $0008 +maskBitGravity = $0010 +maskWinGravity = $0020 +maskBackingStore = $0040 +maskBackingPlains = $0080 +maskBackingPixel = $0100 +maskOverrideRedirect = $0200 +maskSaveUnder = $0400 +maskEventMask = $0800 +maskDontPropagateMask = $1000 +maskColorMap = $2000 +maskCursor = $4000 + +; event masks + +maskNoEvent = 0h +maskKeyPress = 1h +maskKeyRelease = 2h +maskButtonPress = 4h +maskButtonRelease = 8h +maskEnterWindow = 10h +maskLeaveWindow = 20h +maskPointerMotion = 40h +maskPointerMotionHint = 80h +maskButton1Motion = 100h +maskButton2Motion = 200h +maskButton3Motion = 400h +maskButton4Motion = 800h +maskButton5Motion = 1000h +maskButtonMotion = 2000h +maskKeymapState = 4000h +maskExposure = 8000h +maskVisibilityChange = 10000h +maskStructureNotify = 20000h +maskResizeRedirect = 40000h +maskSubstructureNotify = 80000h +maskSubstructureRedirect = 100000h +maskFocusChange = 200000h +maskPropertyChange = 400000h +maskColormapChange = 800000h +maskOwnerGrabButton = 1000000h + + +;Property modes +PropModeReplace = 0 +PropModePrepend = 1 +PropModeAppend = 2 + +; Event codes KeyPress = 2 KeyRelease = 3 ButtonPress = 4 ButtonRelease = 5 @@ -87,1102 +319,890 @@ ColormapNotify = 32 ClientMessage = 33 MappingNotify = 34 LASTEvent = 35 -;Key Masks - -ShiftMask = 1h -LockMask = 2h -ControlMask = 4h -Mod1Mask = 8h -Mod2Mask = 10h -Mod3Mask = 20h -Mod4Mask = 40h -Mod5Mask = 80h - -;Modifier Names - -ShiftMapIndex = 0 -LockMapIndex = 1 -ControlMapIndex = 2 -Mod1MapIndex = 3 -Mod2MapIndex = 4 -Mod3MapIndex = 5 -Mod4MapIndex = 6 -Mod5MapIndex = 7 - -;Button Masks - -Button1Mask = 100h -Button2Mask = 200h -Button3Mask = 400h -Button4Mask = 800h -Button5Mask = 1000h -AnyModifier = 10000h - -;Button Names - -Button1 = 1 -Button2 = 2 -Button3 = 3 -Button4 = 4 -Button5 = 5 - -;Notify Modes -NotifyNormal = 0 -NotifyGrab = 1 -NotifyUngrab = 2 -NotifyWhileGrabbed = 3 -NotifyHint = 1 - -;Notify Detail - -NotifyAncestor = 0 -NotifyVirtual = 1 -NotifyInferior = 2 -NotifyNonlinear = 3 -NotifyNonlinearVirtual = 4 -NotifyPointer = 5 -NotifyPointerRoot = 6 -NotifyDetailNone = 7 - -;Visibility Notify - -VisibilityUnobscured = 0 -VisibilityPartiallyObscured = 1 -VisibilityFullyObscured = 2 - -;Circulation request - -PlaceOnTop = 0 -PlaceOnBottom = 1 - -;Protocol Families - -FamilyInternet = 0 -FamilyDECnet = 1 -FamilyChaos = 2 -FamilyInternet6 = 6 - -;Unspecific authentication families - -FamilyServerInterpreted = 5 - -;Property Notification - -PropertyNewValue = 0 -PropertyDelete = 1 - -;Color Map notification - -ColormapUninstalled = 0 -ColormapInstalled = 1 - -;Grab Modes -GrabModeSync = 0 -GrabModeAsync = 1 - -;Grab reply status -GrabSuccess = 0 -AlreadyGrabbed = 1 -GrabInvalidTime = 2 -GrabNotViewable = 3 -GrabFrozen = 4 - -;AllowEvents modes -AsyncPointer = 0 -SyncPointer = 1 -ReplayPointer = 2 -AsyncKeyboard = 3 -SyncKeyboard = 4 -ReplayKeyboard = 5 -AsyncBoth = 6 -SyncBoth = 7 - -;InputFocus specific - -RevertToNone = None -RevertToPointerRoot = PointerRoot -RevertToParent = 2 - -;Error Codes -Success = 0 -BadRequest = 1 -BadValue = 2 -BadWindow = 3 -BadPixmap = 4 -BadAtom = 5 -BadCursor = 6 -BadFont = 7 -BadMatch = 8 -BadDrawable = 9 -BadAccess = 10 -BadAlloc = 11 -BadColor = 12 -BadGC = 13 -BadIDChoice = 14 -BadName = 15 -BadLength = 16 -BadImplementation = 17 -FirstExtensionError = 128 -LastExtensionError = 255 - -;Window Classes - -InputOutput = 1 -InputOnly = 2 - -;Window Attributes -CWBackPixmap = 1h -CWBackPixel = 2h -CWBorderPixmap = 4h -CWBorderPixel = 8h -CWBitGravity = 10h -CWWinGravity = 20h -CWBackingStore = 40h -CWBackingPlanes = 80h -CWBackingPixel = 100h -CWOverrideRedirect = 200h -CWSaveUnder = 400h -CWEventMask = 800h -CWDontPropagate = 1000h -CWColormap = 2000h -CWCursor = 4000h - -;ConfigureWindow Structure -CWX = 1h -CWY = 2h -CWWidth = 4h -CWHeight = 8h -CWBorderWidth = 10h -CWSibling = 20h -CWStackMode = 40h - -;Bit Gravity -ForgetGravity = 0 -NorthWestGravity = 1 -NorthGravity = 2 -NorthEastGravity = 3 -WestGravity = 4 -CenterGravity = 5 -EastGravity = 6 -SouthWestGravity = 7 -SouthGravity = 8 -SouthEastGravity = 9 -StaticGravity = 10 - -;Window Gravity -UnmapGravity = 0 - -;CreateWindow backing-store hint -NotUseful = 0 -WhenMapped = 1 -Always = 2 - -;GetWindowAttributes reply -IsUnmapped = 0 -IsUnviewable = 1 -IsViewable = 2 - -;Used in ChangeSaveSet -SetModeInsert = 0 -SetModeDelete = 1 - -;Used in ChangeCloseDownMode -DestroyAll = 0 -RetainPermanent = 1 -RetainTemporary = 2 - -;Window stacking method (in configureWindow) -Above = 0 -Below = 1 -TopIf = 2 -BottomIf = 3 -Opposite = 4 - -;Circulation direction -RaiseLowest = 0 -LowerHighest = 1 - -;Property modes -PropModeReplace = 0 -PropModePrepend = 1 -PropModeAppend = 2 - -;Graphics Functions -GXclear = 0h -GXand = 1h -GXandReverse = 2h -GXcopy = 3h -GXandInverted = 4h -GXnoop = 5h -GXxor = 6h -GXor = 7h -GXnor = 8h -GXequiv = 9h -GXinvert = 10h -GXorReverse = 11h -GXcopyInverted = 12h -GXorInverted = 13h -GXnand = 14h -GXset = 15h - -;LineStyle -LineSolid = 0 -LineOnOffDash = 1 -LineDoubleDash = 2 - -;capStyle -CapNotLast = 0 -CapButt = 1 -CapRound = 2 -CapProjecting = 3 - -;joinStyle -JoinMiter = 0 -JoinRound = 1 -JoinBevel = 2 - -;fillStyle -FillSolid = 0 -FillTiled = 1 -FillStippled = 2 -FillOpaqueStippled = 3 - -;fillRule - -EvenOddRule = 0 -WindingRule = 1 - -;subwindow mode - -ClipByChildren = 0 -IncludeInferiors = 1 - -;SetClipRectangles ordering - -Unsorted = 0 -YSorted = 1 -YXSorted = 2 -YXBanded = 3 - -;CoordinateMode for drawing routines - -CoordModeOrigin = 0 -CoordModePrevious = 1 - -;Polygon shapes - -Complex = 0 -Nonconvex = 1 -Convex = 2 - -;Arc modes for PolyFillArc - -ArcChord = 0 -ArcPieSlice = 1 - -;GC components - -GCFunction = 1h -GCPlaneMask = 2h -GCForeground = 4h -GCBackground = 8h -GCLineWidth = 10h -GCLineStyle = 20h -GCCapStyle = 40h -GCJoinStyle = 80h -GCFillStyle = 100h -GCFillRule = 200h -GCTile = 400h -GCStipple = 800h -GCTileStipXOrigin = 1000h -GCTileStipYOrigin = 2000h -GCFont = 4000h -GCSubwindowMode = 8000h -GCGraphicsExposures = 10000h -GCClipXOrigin = 20000h -GCClipYOrigin = 40000h -GCClipMask = 80000h -GCDashOffset = 100000h -GCDashList = 200000h -GCArcMode = 400000h - -GCLastBit = 22 - -;used in QueryFont -- draw direction - -FontLeftToRight = 0 -FontRightToLeft = 1 - -FontChange = 255 - -;ImageFormat -- PutImage, GetImage - -XYBitmap = 0 -XYPixmap = 1 -ZPixmap = 2 - -;For CreateColormap - -AllocNone = 0 -AllocAll = 1 - - -;Flags used in StoreNamedColor, StoreColors - -DoRed = 1h -DoGreen = 2h -DoBlue = 4h - -;QueryBestSize Class - -CursorShape = 0 -TileShape = 1 -StippleShape = 2 - -;Keyboard pointer stuff - -AutoRepeatModeOff = 0 -AutoRepeatModeOn = 1 -AutoRepeatModeDefault = 2 - -LedModeOff = 0 -LedModeOn = 1 - -;masks for ChangeKeyboardControl - -KBKeyClickPercent = 1h -KBBellPercent = 2h -KBBellPitch = 4h -KBBellDuration = 8h -KBLed = 10h -KBLedMode = 20h -KBKey = 40h -KBAutoRepeatMode = 80h - -MappingSuccess = 0 -MappingBusy = 1 -MappingFailed = 2 - -MappingModifier = 0 -MappingKeyboard = 1 -MappingPointer = 2 - -;Screensaver stuff - -DontPreferBlanking = 0 -PreferBlanking = 1 -DefaultBlanking = 2 - -DisableScreenSaver = 0 -DisableScreenInterval = 0 - -DontAllowExposures = 0 -AllowExposures = 1 -DefaultExposures = 2 - -;for ForceScreenSaver - -ScreenSaverReset = 0 -ScreenSaverActive = 1 - -;for ChangeHosts - -HostInsert = 0 -HostDelete = 1 - -;for ChangeAccessControl - -EnableAccess = 1 -DisableAccess = 0 - -;display classes - -StaticGray = 0 -GrayScale = 1 -StaticColor = 2 -PseudoColor = 3 -TrueColor = 4 -DirectColor = 5 - - -;Byte order used in imageByteOrder and bitmapBitOrder - -LSBFirst = 0 -MSBFirst = 1 - -;Keyboard and Pointer Event Structures - -struct XButtonEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .root rd 1 - .subwindow rd 1 - .time rd 1 - .x rd 1 - .y rd 1 - .x_root rd 1 - .y_root rd 1 - .state rd 1 - .button rd 1 - .same_screen rd 1 -ends - - -virtual at 0 -XButtonPressedEvent XButtonEvent -end virtual - -virtual at 0 -XButtonReleasedEvent XButtonEvent -end virtual - -struct XKeyEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .root rd 1 - .subwindow rd 1 - .time rd 1 - .x rd 1 - .y rd 1 - .x_root rd 1 - .y_root rd 1 - .state rd 1 - .keycode rd 1 - .same_screen rd 1 -ends - - -virtual at 0 -XKeyPressedEvent XKeyEvent -end virtual - -virtual at 0 -XKeyReleasedEvent XKeyEvent -end virtual - - -struct XMotionEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .root rd 1 - .subwindow rd 1 - .time rd 1 - .x rd 1 - .y rd 1 - .x_root rd 1 - .y_root rd 1 - .state rd 1 - .is_hint rb 1 - .same_screen rd 1 -ends - - -virtual at 0 -XPointerMovedEvent XMotionEvent -end virtual - -;Window Entry/Exit Events - -struct XCrossingEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .root rd 1 - .subwindow rd 1 - .time rd 1 - .x rd 1 - .y rd 1 - .x_root rd 1 - .y_root rd 1 - .mode rd 1 - .detail rd 1 - .same_screen rd 1 - .focus rd 1 - .state rd 1 -ends - -virtual at 0 -XEnterWindowEvent XCrossingEvent -end virtual - -virtual at 0 -XLeaveWindowEvent XCrossingEvent -end virtual - -; Input Focus Events - -struct XFocusChangeEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .mode rd 1 - .detail rd 1 -ends - - - -virtual at 0 -XFocusInEvent XFocusChangeEvent -end virtual - -virtual at 0 -XFocusOutEvent XFocusChangeEvent -end virtual - -; Keymap Notification Events - -struct XKeymapEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .key_vector rb 32 -ends - -; Exposure/Update Events - -struct XExposeEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .x rd 1 - .y rd 1 - .width rd 1 - .height rd 1 - .count rd 1 -ends - - -struct XGraphicsExposeEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .drawable rd 1 - .x rd 1 - .y rd 1 - .width rd 1 - .height rd 1 - .count rd 1 - .major_code rd 1 - .minor_code rd 1 -ends - - -struct XNoExposeEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .drawable rd 1 - .major_code rd 1 - .minor_code rd 1 -ends - - -; CirculateNotify Events - -struct XCirculateEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 - .place rd 1 -ends - - -struct XCirculateRequestEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .parent rd 1 - .window rd 1 - .place rd 1 -ends - -; Configuration Change Events - -struct XConfigureEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 - .x rd 1 - .y rd 1 - .width rd 1 - .height rd 1 - .border_width rd 1 - .above rd 1 - .override_redirect rd 1 -ends - -struct XConfigureRequestEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .parent rd 1 - .window rd 1 - .x rd 1 - .y rd 1 - .width rd 1 - .height rd 1 - .border_width rd 1 - .above rd 1 - .detail rd 1 - .value_mask rd 1 -ends - -struct XPropertyEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .atom rd 1 - .time rd 1 - .state rd 1 -ends - -struct XResizeEvent - .type rd 1 - .serial rd 1 - .display rd 1 - .window rd 1 - .width rd 1 - .height rd 1 -ends - -struct XColormapEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .colormap rd 1 - .new rd 1 - .state rd 1 -ends - -; Creation/Destruction Notifications - -struct XCreateWindowEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .parent rd 1 - .window rd 1 - .x rd 1 - .y rd 1 - .width rd 1 - .heigth rd 1 - .border_width rd 1 - .override_redirect rd 1 -ends - - -struct XDestroyWindowEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 -ends - -; Parent Movement Events - -struct XGravityEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 - .x rd 1 - .y rd 1 -ends - -; Mapping Events - -struct XMapEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 - .override_redirect rd 1 -ends - -struct XMappingEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .request rd 1 - .first_keycode rd 1 - .count rd 1 -ends - - -struct XMapRequestEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .parent rd 1 - .window rd 1 -ends - -; Parent Change Events - -struct XReparentEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 - .parent rd 1 - .x rd 1 - .y rd 1 - .override_redirect rd 1 -ends - -struct XSelectionClearEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .selection rd 1 - .time rd 1 -ends - -struct XSelectionRequestEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .owner rd 1 - .requestor rd 1 - .selection rd 1 - .target rd 1 - .property rd 1 - .time rd 1 -ends - -struct XSelectionEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .requestor rd 1 - .selection rd 1 - .target rd 1 - .property rd 1 - .time rd 1 -ends - -; Hidden Window Events - -struct XUnmapEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .event rd 1 - .window rd 1 - .from_configure rd 1 -ends - -struct XVisibilityEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .state rd 1 -ends - -; Client Messages (XSendEvent) - -struct XClientMessageEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 - .message_type rd 1 - .format rd 1 - .data rb 20 -ends - - -struct XErrorEvent - .type rd 1 - .serial rd 1 - .error_code rd 1 - .request_code rd 1 - .minor_code rd 1 - .resourceid rd 1 -ends - - - -struct XAnyEvent - .type rd 1 - .serial rd 1 - .send_event rd 1 - .display rd 1 - .window rd 1 -ends - - -struct XEvent - .xany XAnyEvent - .pad rb 24*4 - sizeof.XAnyEvent - - virtual at .xany - . XAnyEvent - end virtual - - - virtual at .xany - .xkey XKeyEvent - end virtual - - virtual at .xany - .xbutton XButtonEvent - end virtual - - virtual at .xany - .xmotion XMotionEvent - end virtual - - virtual at .xany - .xcrossing XCrossingEvent - end virtual - - virtual at .xany - .xfocus XFocusChangeEvent - end virtual - - virtual at .xany - .xexpose XExposeEvent - end virtual - - virtual at .xany - .xgraphicsexpose XGraphicsExposeEvent - end virtual - - virtual at .xany - .xnoexpose XNoExposeEvent - end virtual - - virtual at .xany - .xvisibility XVisibilityEvent - end virtual - - virtual at .xany - .xcreatewindow XCreateWindowEvent - end virtual - - virtual at .xany - .xdestroywindow XDestroyWindowEvent - end virtual - - virtual at .xany - .xunmap XUnmapEvent - end virtual - - virtual at .xany - .xmap XMapEvent - end virtual - - virtual at .xany - .xmaprequest XMapRequestEvent - end virtual - - virtual at .xany - .xreparent XReparentEvent - end virtual - - virtual at .xany - .xconfigure XConfigureEvent - end virtual - - virtual at .xany - .xgravity XGravityEvent - end virtual - - virtual at .xany - .xresizerequest XResizeEvent - end virtual - - virtual at .xany - .xconfigurerequest XConfigureRequestEvent - end virtual - - virtual at .xany - .xcirculate XCirculateEvent - end virtual - - virtual at .xany - .xcirculaterequest XCirculateRequestEvent - end virtual - - virtual at .xany - .xproperty XPropertyEvent - end virtual - - virtual at .xany - .xselectionclear XSelectionClearEvent - end virtual - - virtual at .xany - .xselectionrequest XSelectionRequestEvent - end virtual - - virtual at .xany - .xselection XSelectionEvent - end virtual - - virtual at .xany - .xcolormap XColormapEvent - end virtual - - virtual at .xany - .xclient XClientMessageEvent - end virtual - - virtual at .xany - .xmapping XMappingEvent - end virtual - - virtual at .xany - .xerror XErrorEvent - end virtual - - virtual at .xany - .xkeymap XKeymapEvent - end virtual -ends - - -; Misc. Structures - -struct XKeyboardControl - .key_click_percent rd 1 - .bell_percent rd 1 - .bell_pitch rd 1 - .bell_duration rd 1 - .led rd 1 - .led_mode rd 1 - .key rd 1 - .auto_repeat_mode rd 1 -ends - - - -struct XModifierKeymap - .max_keypermod rd 1 - .modifiermap rd 1 -ends - - - - -struct XWindowAttributes - .x dd ? ; location of window - .y dd ? ; - .width dd ? ; width and height of window - .height dd ? ; - .border_width dd ? ; border width of window - .depth dd ? ; depth of window - .pVisual dd ? ; the associated visual structure - .root dd ? ; root of screen containing window - .class dd ? ; InputOutput, InputOnly - .bit_gravity dd ? ; one of the bit gravity values - .win_gravity dd ? ; one of the window gravity values - .backing_store dd ? ; NotUseful, WhenMapped, Always - .backing_planes dd ? ; planes to be preserved if possible - .backing_pixel dd ? ; value to be used when restoring planes - .save_under dd ? ; boolean, should bits under be saved? - .colormap dd ? ; color map to be associated with window - .map_installed dd ? ; boolean, is color map currently installed - .map_state dd ? ; IsUnmapped, IsUnviewable, IsViewable - .all_event_masks dd ? ; set of events all people have interest in - .your_event_mask dd ? ; my event mask - .do_not_propagate_mask dd ? ; set of events that should not propagate - .override_redirect dd ? ; boolean value for override-redirect - .pScreen dd ? ; back pointer to correct screen -ends - - - -struct XCharStruct - .lbearing dw ? ; origin to left edge of raster - .rbearing dw ? ; origin to right edge of raster - .width dw ? ; advance to next char's origin - .ascent dw ? ; baseline to top edge of raster - .descent dw ? ; baseline to bottom edge of raster - .attributes dw ? ; per char flags (not predefined) -ends - - -struct XFontStruct - .ext_data dd ? ; hook for extension to hang data - .fid dd ? ; Font id for this font - .direction dd ? ; hint about the direction font is painted - .min_char_or_byte2 dd ? ; first character - .max_char_or_byte2 dd ? ; last character - .min_byte1 dd ? ; first row that exists - .max_byte1 dd ? ; last row that exists - .all_chars_exist dd ? ; flag if all characters have nonzero size - .default_char dd ? ; char to print for undefined character - .n_properties dd ? ; how many properties there are - .properties dd ? ; pointer to array of additional properties - .min_bounds XCharStruct ; minimum bounds over all existing char - .max_bounds XCharStruct ; maximum bounds over all existing char - .per_char dd ? ; first_char to last_char information - .ascent dd ? ; logical extent above baseline for spacing - .descent dd ? ; logical decent below baseline for spacing -ends - - -struct XWindowChanges - .x dd ? - .y dd ? - .width dd ? - .height dd ? - .border_width dd ? - .sibling dd ? - .stack_mode dd ? -ends + + + + +struct __xBeginReq + .byte_order db ? + db ? + .ver_major dw ? + .ver_minor dw ? + .auth_proto_len dw ? + .auth_data_len dw ? + dw ? +ends + +struct __xConnectServerInfo + .resp db ? ; 1 == Success. + .not_used1 db ? + + .major_ver dw ? + .minor_ver dw ? + + .data_length dw ? ; additional data length in dword units. +ends + +struct __xConnectAdditionalInfo + .release_num dd ? + .res_id_base dd ? + .res_id_mask dd ? + .motion_buffer_size dd ? + .len_vendor dw ? + .max_request_len dw ? + .screen_num db ? + .format_num db ? + .img_byte_order db ? + .bmp_format_bit_order db ? + .bmp_scanline_unit db ? + .bmp_scanline_pad db ? + .min_keycode db ? + .max_keycode db ? + .not_used2 dd ? + + .stream_data: +ends + + +struct __xscreen + .root_window dd ? + .colormap dd ? + .white_pixel dd ? + .black_pixel dd ? + .event_mask dd ? + .width_px dw ? + .height_px dw ? + .width_mm dw ? + .height_mm dw ? + .min_maps dw ? + .max_maps dw ? + .root_visual dd ? + .back_store db ? + .save_under db ? + .root_depth db ? + .num_depths db ? + .depths: +ends + + +struct __xdepth + .depth db ? + db ? + .num_visual dw ? + dd ? + .visual_types: +ends + +struct __xvisualtype + .id dd ? + .class db ? + .bits_per_rgb db ? + .map_entries dw ? + .red_mask dd ? + .green_mask dd ? + .blue_mask dd ? + dd ? +ends + + + + +struct __xCreateColorMapReq + .op db ? ; must be 78 = opCreateColorMap + .alloc db ? ; AllocNone = 0, AllocAll = 1 + .length dw ? ; must be 4 + .map_id dd ? ; map id + .win_id dd ? ; window id + .vis_id dd ? ; visual id +ends + +struct __xCreatePixmapReq + .op db ? ; opCreatePixmap == 53 + .depth db ? ; + .length dw ? ; == 4 + .pid dd ? ; Pixmap ID + .drawable dd ? ; + .width dw ? + .height dw ? +ends + +struct __xFreePixmapReq + .op db ? ; opFreePixmap == 54 + db ? + .length dw ? ; == 2 + .pid dd ? ; Pixmap ID +ends + +struct __xCreateContextReq + .op db ? ; opCreateGC == 55 + db ? + .length dw ? ; 4 + n + .gcID dd ? ; + .drawable dd ? ; ? + .value_mask dd ? ; can be 0? + label .data dword +ends + +struct __xFreeContextReq + .op db ? ; op + db ? + .length dw ? ; = 2 + .gcID dd ? +ends + +struct __xClearAreaReq + .op db ? ; opClearArea == 61 + .exposures db ? ; + .length dw ? ; == 4 + .window dd ? + .x dw ? + .y dw ? + .width dw ? + .height dw ? +ends + + + +struct __xCreateWindowReq + .op db ? ;opCreateWindow + .depth db ? ; 32 + .length dw ? ; 8 + N ; length in dword + .wid dd ? ; window ID + .parent dd ? ; parent window ID + .x dw ? + .y dw ? + .w dw ? + .h dw ? + .border dw ? ; 0 usually + .class dw ? ; 1 = InputOutput + .visid dd ? ; visual ID + .attr_mask dd ? + .values: +ends + +struct __xChangeWindowAttributesReq + .op db ? ; opChangeWindowAttributes + db ? + .length dw ? + .window dd ? + .mask dd ? ; maskXXXX as in CreateWindow + label .values dword +ends + + +struct __xDestroyWindowReq + .op db ? ; opDestroyWindow + db ? + .length dw ? ; == 2 + .wid dd ? +ends + +struct __xMapWindowReq + .op db ? ; opMapWindow + db ? + .length dw ? ; == 2 + .wid dd ? ; window ID +ends + + +struct __xChangePropertyReq + .op db ? ; opChangeProperty + .mode db ? ; PropModeXXXXX + .length dw ? ; length in dword + .wid dd ? ; window ID + .prop dd ? ; atom + .type dd ? ; atom + .format db ? ; 8, 16, 32 + rb 3 ; + .datalen dd ? ; In format units + .data: +ends + + +struct __xGetPropertyReq + .op db ? ; opGetProperty == 20 + .delete db ? ; BOOL + .length dw ? ; 6 + .window dd ? + .property dd ? ; ATOM + .type dd ? ; ATOM 0 == AnyPropertyType + .data_ofs dd ? ; + .data_len dd ? ; +ends + +struct __xGetPropertyRep + .reply db ? ; == 1 + .format db ? ; 0, 8, 16, 32 + .seq dw ? + .length dd ? ; (n+p)/4 + .type dd ? ; ATOM 0 == None + .bytesafter dd ? + .datalen dd ? ; in format units! + rb 12 + .data: +ends + +cwmX = $01 +cwmY = $02 +cwmWidth = $04 +cwmHeight = $08 +cwmBorderWidth = $10 +cwmSibling = $20 +cwmStackMode = $40 + + +struct __xConfigureWindowReq + .op db ? ; opConfigureRequest + db ? + .length dw ? ; 3 + n depending of the set bits in the value_mask + .window dd ? + .value_mask dw ? ; 1=x, 2=y, + dw ? + .params: +ends + + +struct __xCreateCounterReq + .op db ? ; Sync extension major opcode + .minor db ? ; = opCreateCounter = 2 + .length dw ? ; = 4 + .counterID dd ? ; ID + .valueHi dd ? + .valueLo dd ? +ends + +struct __xDestroyCounterReq + .op db ? ; Sync extension major opcode + .minor db ? ; = opDestroyCounter = 6 + .length dw ? ; = 2 + .counterID dd ? ; ID +ends + +struct __xSetCounterReq + .op db ? ; Sync extension major opcode + .minor db ? ; = opSetCounter = 3 + .length dw ? ; = 4 + .counterID dd ? ; ID + .valueHi dd ? + .valueLo dd ? +ends + +struct __xGetKeyboardMappingReq + .op db ? ; opGetKeyboardMapping + db ? + .length dw ? ; = 2 in dword + .first db ? + .count db ? + rb 2 +ends + +struct __xGetKeyboardMappingRep + .op db ? ; = 1 Replay + .row_len db ? ; keysyms per keycode + .seq dw ? ; + .length dd ? ; in dwords + rb 24 +ends + + + +struct __xXkbSelectEventsReq + .op db ? + .minor db ? ; = opXkbSelectEvents + .length dw ? ; 4 + (V+p)/4 + .deviceSpec dw ? + .affectWhich dw ? + .clear dw ? + .selectAll dw ? + .affectMap dw ? + .map dw ? + .details: ; V bytes and p pad +ends + + +struct __xXkbGetMapReq + .op db ? + .minor db ? + .length dw ? ; == 7 + .deviceSpec dw ? + .full dw ? ; what full maps to be returned. + .partial dw ? ; what partial maps to be returned. + .firstType db ? + .nTypes db ? + .firstKeySym db ? + .nKeySyms db ? + .firstKeyAction db ? + .nKeyActions db ? + .firstKeyBehavior db ? + .nKeyBehaviors db ? + .virtualMods dw ? + .firstKeyExplicit db ? + .nKeyExplicit db ? + .firstModMapKey db ? + .nModMapKeys db ? + .firstVModMapKey db ? + .nVModMapKeys db ? + rb 2 +ends + +struct __xXkbGetMapRep + .op db ? ; = 1 Reply + .deviceID db ? + .seq dw ? + .length dd ? ; in dwords + rb 2 + .minKeyCode db ? + .maxKeyCode db ? + .present dw ? + .firstType db ? + .nTypes db ? + .totalTypes db ? + .firstKeySym db ? + .totalSyms dw ? + .nKeySyms db ? + .firstKeyAction db ? + .totalActions dw ? + .nKeyActions db ? + .firstKeyBehavior db ? + .nKeyBehaviors db ? + .totalKeyBehaviors db ? + .firstKeyExplicit db ? + .nKeyExplicit db ? + .totalKeyExplicit db ? + .firstModMapKey db ? +ends + +; this is the header of the remaining part of the reply, +; transmitted with the [__xXkbGetMapRep.length] long extra +; part of the reply. +struct __xXkbGetMapRep2 + .nModMapKeys db ? + .totalModMapKeys db ? + .firstVModMapKey db ? + .nVModMapKeys db ? + .totalVModMapKeys db ? + rb 1 + .virtualMods dw ? + + .map: +ends + + + + +struct __xPutImageReq + .op db ? ; = opPutImage + .format db ? ; 0 bitmap, 1 XYpixmap, 2 Zpixmap + .length dw ? ; 0 == BIG_REQUEST + .long_len dd ? ; BIG REQUEST Length + .drawable dd ? ; where to draw the image + .gc dd ? + .width dw ? + .height dw ? + .dst_x dw ? + .dst_y dw ? + .left_pad db ? + .depth db ? + rb 2 + label .data dword +ends + + +struct __xPutImageShortReq + .op db ? ; = opPutImage + .format db ? ; 0 bitmap, 1 XYpixmap, 2 Zpixmap + .length dw ? ; 6 + datalen + .drawable dd ? ; where to draw the image + .gc dd ? + .width dw ? + .height dw ? + .dst_x dw ? + .dst_y dw ? + .left_pad db ? + .depth db ? + rb 2 + label .data dword +ends + + +struct __xSetSelectionOwnerReq + .op db ? ; opSetSelectionOwner == 22 + db ? + .length dw ? ; == 4 + .owner dd ? ; 0 == None + .selection dd ? ; ATOM + .time dd ? ; 0 == CurrentTime (server time) +ends + +struct __xGetSelectionOwnerReq + .op db ? ; opGetSelectionOwner == 23 + db ? + .length dw ? ; ==2 + .selection dd ? ; ATOM +ends + +struct __xGetSelectionOwnerRep + .reply db ? ; == 1 + db ? + .seq dw ? + .length dd ? ; == 0 + .owner dd ? ; Window ID, 0 == None + rb 20 +ends + +struct __xConvertSelectionReq + .op db ? ; opConvertSelection == 24 + db ? + .length dw ? ; 6 + .requestor dd ? ; Window, requestor + .selection dd ? ; ATOM, usually "Clipboard" + .target dd ? ; ATOM, requested data type. For example "UTF8_STRING" + .property dd ? ; ATOM, where to put the data. 0 == None + .time dd ? ; timestamp. 0 == current server time. +ends + +struct __xSetInputFocus + .op db ? ; opSetInputFocus + .revert_to db ? ; 0 - None, 1 - PointerRoot, 2 - Parent + .length dw ? ; == 3 + .wid dd ? ; Window ID; 0 - None, 1 - PointerRoot + .timestamp dd ? ; timestamp; 0 = CurrentTime +ends + + + +struct __xSendEventReq + .op db ? + .propagate db ? + .length dw ? ; == 11 + .dest dd ? ; window ID + .event_mask dd ? ; ? + .event: +ends + + +struct __xWarpPointerReq + .op db ? + db ? + .length dw ? ; == 6 + .srcWin dd ? ; 0 == none + .dstWin dd ? ; 0 == none + .srcX dw ? + .srcY dw ? + .srcW dw ? + .srcH dw ? + .dstX dw ? + .dstY dw ? +ends + + +struct __xOpenFontReq + .op db ? ; == opOpenFont == 45 + db ? + .length dw ? ; 3 + namelen/4 + pad + .fontid dd ? ; client allocates it. + .namelen dw ? + dw ? + label .name byte +ends + +; notice, that __xCloseFontReq is the same as __xOpenFontReq in the first 2 dwords. +struct __xCloseFontReq + .op db ? ; == opCloseFont == 46 + db ? + .length dw ? ; 2 + .fontid dd ? +ends + + +struct __xCreateCursorReq + .op db ? ; == opCreateCursor == 93 + db ? + .length dw ? ; 8 + .cursorid dd ? + .source dd ? ; pixmap + .mask dd ? ; 0 == none + .fg_red dw ? + .fg_green dw ? + .fg_blue dw ? + .bg_red dw ? + .bg_green dw ? + .bg_blue dw ? + .x dw ? + .y dw ? +ends + + +struct __xCreateGlyphCursorReq + .op db ? ; == opCreateGlyphCursor == 94 + db ? + .length dw ? ; 8 + .cursorid dd ? + .src_font dd ? + .mask_font dd ? + .src_char dw ? + .mask_char dw ? + .fg_red dw ? + .fg_green dw ? + .fg_blue dw ? + .bg_red dw ? + .bg_green dw ? + .bg_blue dw ? +ends + +struct __xFreeCursorReq + .op db ? ; == opFreeCursor == 95 + db ? + .length dw ? ; 2 + .cursor dd ? +ends + + +; Structure for _MOTIF_WM_HINTS type of window property. + +struct __MwmHints + .flags dd ? + .functions dd ? + .decorations dd ? + .input_mode dd ? + .status dd ? +ends + +MWM_HINTS_FUNCTIONS = 1 +MWM_HINTS_DECORATIONS = 2 + +MWM_FUNC_ALL = $01 +MWM_FUNC_RESIZE = $02 +MWM_FUNC_MOVE = $04 +MWM_FUNC_MINIMIZE = $08 +MWM_FUNC_MAXIMIZE = $10 +MWM_FUNC_CLOSE = $20 + + + +struc xQueryExtension name { +.@here = 1 +if used . +label . byte +local ..n, ..p + .op db opQueryExtension ; opQueryExtension + db 0 + .req_len dw 2 + ..p + .name_len dw ..n ; N in chars + dw ? + .name db name + ..n = $ - .name + rb ((..n + 3) and $fffffffc) - ..n + ..p = ($ - .name)/4 + .length = $ - .op +end if +} + +struct xReply + .reply db ? ; 1 = Success, 0 = Error + db ? + .sequence dw ? + .length dd ? + .data rb 24 +ends + +struct xRespQueryExt + .reply db ? ; 1 = Success, 0 = Error, 2 = + db ? + .sequence dw ? + .length dd ? + .present db ? ; bool. + .OpCode db ? + .first_event db ? + .first_error db ? + rb 20 +ends + +struct xExtension + .Active dd ? ; boolean + .OpCode dd ? ; Major OpCode + .FirstEvent dd ? ; First event number + .FirstError dd ? ; First error number +ends + + + + + + + + + + +; X events structures + +struct evKeyPress + .event db ? ; = 2, 3, 4, 5 or 6 + .detail db ? + .seq dw ? + .time dd ? + .root dd ? ; the root window. + .window dd ? ; the event window ID + .child dd ? ; ??? + .root_x dw ? ; + .root_y dw ? ; + .x dw ? + .y dw ? + .state dw ? ; bitmask + .same_scr db ? + db ? +ends + +struct evKeyRelease + . evKeyPress +ends + +struct evButtonPress + . evKeyPress +ends + +struct evButtonRelease + . evKeyPress +ends + +struct evMotionNotify + . evKeyPress +ends + +enAncestor = 0 +enVirtual = 1 +enInferior = 2 +enNonlinear = 3 +enNonlinearVirtual = 4 + +struct evEnterNotify + .event db ? ; = 7 or 8 + .detail db ? ; enAncestor .. enNonlinearVirtual + .seq dw ? + .time dd ? + .root dd ? ; the root window. + .window dd ? ; the event window ID + .child dd ? ; ??? + .root_x dw ? ; + .root_y dw ? ; + .x dw ? + .y dw ? + .state dw ? ; bitmask + .mode db ? ; Normal, Grab, Ungrab + .same_scr db ? ; ? +ends + +struct evLeaveNotify + . evEnterNotify +ends + +struct evFocusIn + .event db ? + .detail db ? + .seq dw ? + .window dd ? + .mode db ? + rb 23 +ends + +struct evFocusOut + . evFocusIn +ends + +struct evExpose + .event db ? + db ? + .seq dw ? + .window dd ? + .x dw ? + .y dw ? + .width dw ? + .height dw ? + .count dw ? + rb 14 +ends + + +struct evDestroyNotify + .event db ? + db ? + .seq dw ? + .window dd ? + .dst_win dd ? + rb 20 +ends + + +struct evConfigureNotify + .event db ? ; == 22 + db ? + .seq dw ? + .window dd ? + .conf_win dd ? + .above dd ? + .x dw ? + .y dw ? + .width dw ? + .height dw ? + .border dw ? + .ovr_red db ? + rb 5 +ends + + +struct evSelectionClear + .event db ? ; == 29 + db ? + .seq dw ? + .time dd ? ; TIMESTAMP + .owner dd ? ; WINDOW + .selection dd ? ; ATOM + rb 16 +ends + + +struct evSelectionRequest + .event db ? ; == 30 + db ? + .seq dw ? + .time dd ? ; TIMESTAMP 0 == CurrentTime + .owner dd ? ; WINDOW + .requestor dd ? ; WINDOW + .selection dd ? ; ATOM + .target dd ? ; ATOM (the type of the data) + .property dd ? ; ATOM (where to place the data) 0 == None + dd ? +ends + + +struct evSelectionNotify + .event db ? ; == 31 + db ? + .seq dw ? + .time dd ? ; TIMESTAMP 0 == CurrentTime + .requestor dd ? ; WINDOW + .selection dd ? ; ATOM + .target dd ? ; ATOM (the type of the data) + .property dd ? ; ATOM (where to place the data) 0 == None + rd 2 +ends + + +struct evPropertyChanged + .event db ? ; PropertyNotify = 28 + db ? + .seq dw ? + .window dd ? + .property dd ? ; atom of the property changed. + .timestamp dd ? + .state db ? ; 0 == NewValue, 1 == Deleted +ends + + +struct evClientMessage + .event db ? ; == 33 + .format db ? + .seq dw ? + .window dd ? + .type dd ? ; ATOM + .data rd 5 +ends + + +struct evMappingNotify + .event db ? ; == 34 + db ? + .seq dw ? + .request db ? ; Modifier, Keyboard, Pointer + .keycode db ? + .count db ? + rb 25 +ends + + +struct evXkbMapNotify + .event db ? + .detail db ? ; == 1 + .seq dw ? + .time dd ? ; timestamp. + .deviceID db ? + .btnAction db ? ; mask of BUTMASK + .changed dw ? ; set of KB_MAPPART - what is changed + .minkeycode db ? + .maxkeycode db ? + .firstType db ? + .nTypes db ? + .firstKeySym db ? + .nKeySyms db ? + .firstKeyAct db ? + .nKeyActs db ? + .firstKeyBehavior db ? + .nKeyBehavior db ? + .firstKeyExplicit db ? + .nKeyExplicit db ? + .firstModMapKey db ? + .nModMapKeys db ? + .firstVModMapKey db ? + .nVModMapKeys db ? + .virtualMods dw ? ; set of KB_VMOD + dw ? +ends + + +; Common X structures. + +struct xRequest + .op db ? ; X operation code (major part) + .minor db ? ; minor X operation code. + .length dw ? ; length of the request in dword units. + + label .data dword +ends + +struct xBigRequest + .op db ? ; X operation code (major part) + .minor db ? ; minor X operation code. + .length dw ? ; must be 0 for BIG_REQUEST request. + .biglen dd ? ; length of the request in dword units. + + label .data dword +ends + + +rspError = 0 +rspReply = 1 +rspFirstEvent = 2 + +struct xResponse + .code db ? + .data rb 31 +ends + + +struct xAnyError + .code db ? ; 0 == error + .error db ? ; the error code + .seq dw ? ; sequence number + .bad_num dd ? ; the value that causes the problem. Not on all errors. + .minor dw ? ; minor opcode of the operation + .major db ? ; major opcode of the operation + .data rb 21 +ends + +struct xAnyReply + .code db ? ; 1 == reply + .detail db ? + .seq dw ? + .length dd ? ; in dwords + .data rb 24 +ends + +struct xAnyEvent + .event db ? ; >= 2 + .detail db ? + .seq dw ? + .data rb 28 +ends + ADDED freshlib/equates/Linux/_xcb.inc Index: freshlib/equates/Linux/_xcb.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_xcb.inc @@ -0,0 +1,227 @@ +; Pre-defined constants + +; Current protocol version +X_PROTOCOL = 11 + +; Current minor version +X_PROTOCOL_REVISION = 0 + +; X_TCP_PORT + display number = server port for TCP transport +X_TCP_PORT = 6000 + +; xcb connection errors because of socket, pipe and other stream errors. +XCB_CONN_ERROR = 1 + +; xcb connection shutdown because of extension not supported +XCB_CONN_CLOSED_EXT_NOTSUPPORTED = 2 + +; malloc(), calloc() and realloc() error upon failure, for eg ENOMEM +XCB_CONN_CLOSED_MEM_INSUFFICIENT = 3 + +; Connection closed, exceeding request length that server accepts. +XCB_CONN_CLOSED_REQ_LEN_EXCEED = 4 + +; Connection closed, error during parsing display string. +XCB_CONN_CLOSED_PARSE_ERR = 5 + +; Connection closed because the server does not have a screen matching the display. +XCB_CONN_CLOSED_INVALID_SCREEN = 6 + +; Connection closed because some FD passing operation failed +XCB_CONN_CLOSED_FDPASSING_FAILED = 7 + +; Opaque structures + +; XCB Connection structure. +; A structure that contain all data that XCB needs to communicate with an X server. + +; Other types + +; Generic iterator. +; A generic iterator structure. + +struct xcb_generic_iterator_t + .p_data dd ? ; Data of the current iterator + .rem dd ? ; remaining elements + .index dd ? ; index of the current iterator +ends + + +; Generic reply. +; A generic reply structure. + +struct xcb_generic_reply_t + .response_type db ? ; Type of the response + .pad0 db ? ; Padding + .sequence dw ? ; Sequence number + .length dd ? ; Length of the response +ends + + +; Generic event. +; A generic event structure. + +struct xcb_generic_event_t + .response_type db ? ; Type of the response + .pad0 db ? ; Padding + .sequence dw ? ; Sequence number + .pad rd 7 ; Padding + .full_sequence dd ? ; full sequence +ends + + +; Raw Generic event. +; A generic event structure as used on the wire, i.e., without the full_sequence field + +struct xcb_raw_generic_event_t + .response_type db ? ; Type of the response + .pad0 db ? ; Padding + .sequence dw ? ; Sequence number + .pad rd 7 ; Padding +ends + + +; GE event +; +; An event as sent by the XGE extension. The length field specifies the +; number of 4-byte blocks trailing the struct. +; +; DEPRECATED: Since some fields in this struct have unfortunate names, it is +; recommended to use xcb_ge_generic_event_t instead. + +struct xcb_ge_event_t + .response_type db ? ; Type of the response + .pad0 db ? ; Padding + .sequence dw ? ; Sequence number + .length dd ? + .event_type dw ? + .pad1 dw ? + .pad rd 5 ; Padding + .full_sequence dd ? ; full sequence +ends + + +; Generic error. +; A generic error structure. + +struct xcb_generic_error_t + .response_type db ? ; Type of the response + .error_code db ? ; Error code + .sequence dw ? ; Sequence number + .resource_id dd ? ; Resource ID for requests with side effects only + .minor_code dw ? ; Minor opcode of the failed request + .major_code db ? ; Major opcode of the failed request + .pad0 db ? ; + .pad rd 5 ; Padding + .full_sequence dd ? ; full sequence +ends + + +; XCB_NONE is the universal null resource or null atom parameter value for many core X requests +XCB_NONE = 0 + +; XCB_COPY_FROM_PARENT can be used for many xcb_create_window parameters +XCB_COPY_FROM_PARENT = 0 + +; XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_t +XCB_CURRENT_TIME = 0 + +; XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tables +XCB_NO_SYMBOL = 0 + + +; Container for authorization information. +; A container for authorization information to be sent to the X server. + +struct xcb_auth_info_t + .namelen dd ? ; Length of the string name (as returned by strlen). + .p_name dd ? ; String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1". + .datalen dd ? ; Length of the data member. + .p_data dd ? ; Data interpreted in a protocol-specific manner. +ends + + + + +struct xcb_screen_t + .root dd ? ; Window ID + .default_colormap dd ? + .white_pixel dd ? + .black_pixel dd ? + .current_input_masks dd ? + .width_in_pixels dw ? + .height_in_pixels dw ? + .width_in_millimeters dw ? + .height_in_millimeters dw ? + .min_installed_maps dw ? + .max_installed_maps dw ? + .root_visual dd ? + .backing_stores db ? + .save_unders db ? + .root_depth db ? + .allowed_depths_len db ? +ends + + +struct xcb_screen_iterator_t + .p_data dd ? ; xcb_screen_t record pointer. + .rem dd ? + .index dd ? +ends + + + + + + + + + + + + + + + + + + + +; XCB extensions const and structures. + +struct xcb_extension_t + .p_name dd ? + .global_id dd ? +ends + + +struct xcb_protocol_request_t + .count dd ? + .ext dd ? + .opcode db ? + .isvoid db ? +ends + + +XCB_REQUEST_CHECKED = 1 +XCB_REQUEST_RAW = 2 +XCB_REQUEST_DISCARD_REPLY = 4 +XCB_REQUEST_REPLY_FDS = 8 + + +struct xcb_query_extension_reply_t + .response_type db ? + .pad0 db ? + .sesequence dw ? + .length dd ? + .present db ? + .major_opcode db ? + .first_event db ? + .first_error db ? +ends + + + +; XCB SHM extensions. + +XCB_SHM_COMPLETION = 0 ADDED freshlib/equates/Linux/_xfixes.inc Index: freshlib/equates/Linux/_xfixes.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_xfixes.inc @@ -0,0 +1,111 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: MIT_SHM extension equates. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; XFIXES minor opcodes + +; ver 1 + +opFixQueryVersion = 0 +opFixChangeSaveSet = 1 +opFixSelectSelectionInput = 2 +opFixSelectCursorInput = 3 +opFixGetCursorImage = 4 + +; ver 2 + +opFixCreateRegion = 5 +opFixCreateRegionFromBitmap = 6 +opFixCreateRegionFromWindow = 7 +opFixCreateRegionFromGC = 8 +opFixCreateRegionFromPicture = 9 +opFixDestroyRegion = 10 +opFixSetRegion = 11 +opFixCopyRegion = 12 +opFixUnionRegion = 13 +opFixIntersectRegion = 14 +opFixSubtractRegion = 15 +opFixInvertRegion = 16 +opFixTranslateRegion = 17 +opFixRegionExtents = 18 +opFixFetchRegion = 19 +opFixSetGCClipRegion = 20 +opFixSetWindowShapeRegion = 21 +opFixSetPictureClipRegion = 22 +opFixSetCursorName = 23 +opFixGetCursorName = 24 +opFixGetCursorImageAndName = 25 +opFixChangeCursor = 26 +opFixChangeCursorByName = 27 + +; ver 3 + +opFixExpandRegion = 28 +opFixHideCursor = 29 +opFixShowCursor = 30 + + +; Event subcodes + +evFixSetSelectionOwner = 0 +evFixSelectionWindowDestroy = 1 +evFixSelectionClientClose = 2 + +; Event selection mask + +maskFixSetSelectionOwner = 1 shl evFixSetSelectionOwner +maskFixSelectionWindowDestroy = 1 shl evFixSelectionWindowDestroy +maskFixSelectionClientClose = 1 shl evFixSelectionClientClose + +; Structures + +struct __xfixQueryVersionReq + .op db ? + .minor db ? + .length dw ? + .client_major_version dd ? + .client_minor_version dd ? +ends + + +struct __xfixQueryVersionRep + .code db ? ; 1 == reply + .detail db ? + .seq dw ? + .length dd ? ; in dwords == 0 + .major_version dd ? + .minor_version dd ? + rb 16 +ends + + +struct __xfixSelectSelectionInputReq + .op db ? + .minor db ? ; == opFixSelectSelectionInput == 2 + .length dw ? ; == 4 + .window dd ? ; Window ID + .selection dd ? ; ATOM + .event_mask dd ? ; set of maskFixXXXXXXXXXXXX masks +ends + + +struct evFixSelectionNotify + .event db ? ; + .subtype db ? ; + .seq dw ? + .window dd ? ; window ID + .owner dd ? ; window ID or None + .selection dd ? ; ATOM + .timestamp dd ? + .sel_timestamp dd ? +ends Index: freshlib/equates/Linux/_xft.inc ================================================================== --- freshlib/equates/Linux/_xft.inc +++ freshlib/equates/Linux/_xft.inc @@ -1,11 +1,19 @@ -struct XRenderColor - .red dw ? - .green dw ? - .blue dw ? - .alpha dw ? -ends +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: XFT library constants and structures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + XFT_MAJOR = 2 XFT_MINOR = 1 XFT_REVISION = 8 @@ -16,10 +24,48 @@ XFT_XLFD equ "xlfd" XFT_MAX_GLYPH_MEMORY equ "maxglyphmemory" XFT_MAX_UNREF_FONTS equ "maxunreffonts" +FcTypeVoid = 0 +FcTypeInteger = 1 +FcTypeDouble = 2 +FcTypeString = 3 +FcTypeBool = 4 +FcTypeMatrix = 5 +FcTypeCharSet = 6 +FcTypeFTFace = 7 +FcTypeLangSet = 8 + +XftTypeVoid = FcTypeVoid +XftTypeInteger = FcTypeInteger +XftTypeDouble = FcTypeDouble +XftTypeString = FcTypeString +XftTypeBool = FcTypeBool +XftTypeMatrix = FcTypeMatrix +XftTypeCharSet = FcTypeCharSet +XftTypeFTFace = FcTypeFTFace +XftTypeLangSet = FcTypeLangSet + +FC_SLANT_ROMAN = 0 +FC_SLANT_ITALIC = 100 +FC_SLANT_OBLIQUE = 110 + +XFT_SLANT_ROMAN = FC_SLANT_ROMAN +XFT_SLANT_ITALIC = FC_SLANT_ITALIC +XFT_SLANT_OBLIQUE = FC_SLANT_OBLIQUE + +FC_PROPORTIONAL = 0 +FC_DUAL = 90 +FC_MONO = 100 +FC_CHARCELL = 110 + +XFT_PROPORTIONAL = FC_PROPORTIONAL +XFT_DUAL = FC_DUAL +XFT_MONO = FC_MONO +XFT_CHARCELL = FC_CHARCELL + struct _XftFont .ascent dd ? .descent dd ? .height dd ? ADDED freshlib/equates/Linux/_xshm.inc Index: freshlib/equates/Linux/_xshm.inc ================================================================== --- /dev/null +++ freshlib/equates/Linux/_xshm.inc @@ -0,0 +1,81 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: MIT_SHM extension equates. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +; MIT-SHM minor opcodes + +opShmEnable = 0 +opShmAttach = 1 +opShmDetach = 2 +opShmPutImage = 3 + + + +struct evShmCompletion + .event db ? + db ? + .seq dw ? + .drawable dd ? + .minor_event dw ? + .major_event db ? + db ? + .segID dd ? + .offset dd ? + rd 3 +ends + + +struct __xShmAttachReq + .op db ? ; SHM extension major opcode. + .minor db ? ; = opShmAttach + .length dw ? ; = 4 + .shmSeg dd ? ; X ID of the segment. + .shmID dd ? ; + .read_only dd ? +ends + + +struct __xShmDetachReq + .op db ? ; SHM extension major opcode. + .minor db ? ; = opShmDetach + .length dw ? ; = 2 + .shmSeg dd ? +ends + + +struct __xShmPutImageReq + .op db ? ; SHM extension major opcode. + .minor db ? ; = opShmAttach = 1 + .length dw ? ; = 10 + .drawable dd ? ; where to draw + .context dd ? + .total_w dw ? + .total_h dw ? + .src_x dw ? + .src_y dw ? + .src_w dw ? + .src_h dw ? + .dst_x dw ? + .dst_y dw ? + .depth db ? + .format db ? + .send_event db ? + db ? + .shmSeg dd ? + .offset dd ? +ends + + + +ShmCompletion = 0 Index: freshlib/equates/Linux/allequates.inc ================================================================== --- freshlib/equates/Linux/allequates.inc +++ freshlib/equates/Linux/allequates.inc @@ -1,4 +1,34 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all Linux equates. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; New line symbol + +bNEWLINE equ $0a +wNEWLINE equ $000a +dNEWLINE equ $0000000a + ; Linux programming constants +include '_libdl.inc' include '_geometry.inc' +include '_linux.inc' +include '_ipc.inc' +include '_libXrender.inc' +include '_xft.inc' +include '_libFT.inc' + +include '_pthreads.inc' + include '_x.inc' -include '_xft.inc' +include '_xshm.inc' +include '_xfixes.inc' Index: freshlib/equates/Win32/_COMCTL32.INC ================================================================== --- freshlib/equates/Win32/_COMCTL32.INC +++ freshlib/equates/Win32/_COMCTL32.INC @@ -1,7 +1,18 @@ - -; COMCTL32.DLL structures and constants +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: COMCTL32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ struct PROPSHEETPAGE .dwSize dd ? .dwFlags dd ? .hInstance dd ? @@ -1054,10 +1065,17 @@ .hinst dd ? .uFlags dd ? ends +struct TOOLTIPTEXTW + .hdr NMHDR + .lpszText dd ? + .char rw 80 + .hinst dd ? + .uFlags dd ? +ends ; Status bar styles Index: freshlib/equates/Win32/_COMDLG32.INC ================================================================== --- freshlib/equates/Win32/_COMDLG32.INC +++ freshlib/equates/Win32/_COMDLG32.INC @@ -1,7 +1,20 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: COMDLG32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ -; COMDLG32.DLL structures and constants + struct OPENFILENAME .lStructSize dd ? .hwndOwner dd ? .hInstance dd ? Index: freshlib/equates/Win32/_GDI32.INC ================================================================== --- freshlib/equates/Win32/_GDI32.INC +++ freshlib/equates/Win32/_GDI32.INC @@ -1,7 +1,18 @@ - -; GDI32.DLL structures and constants +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: GDI32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ struct SIZE .cx dd ? .cy dd ? ends @@ -35,18 +46,61 @@ .biXPelsPerMeter dd ? .biYPelsPerMeter dd ? .biClrUsed dd ? .biClrImportant dd ? ends + + +struct CIEXYZ + .ciexyzX dd ? + .ciexyzY dd ? + .ciexyzZ dd ? +ends + + +struct CIEXYZTRIPLE + .ciexyzRed CIEXYZ + .ciexyzGreen CIEXYZ + .ciexyzBlue CIEXYZ +ends + + +struct BITMAPV4HEADER + .biSize dd ? + .biWidth dd ? + .biHeight dd ? + .biPlanes dw ? + .biBitCount dw ? + .biCompression dd ? + .biSizeImage dd ? + .biXPelsPerMeter dd ? + .biYPelsPerMeter dd ? + .biClrUsed dd ? + .biClrImportant dd ? + + .RedMask dd ? + .GreenMask dd ? + .BlueMask dd ? + .AlphaMask dd ? + .CSType dd ? + .Endpoints CIEXYZTRIPLE + .GamaRed dd ? + .GammaGreen dd ? + .GammaBlue dd ? +ends + + + struct BITMAPFILEHEADER .bfType dw ? .bfSize dd ? .bfReserved1 dw ? .bfReserved2 dw ? .bfOffBits dd ? ends + struct TEXTMETRIC .tmHeight dd ? .tmAscent dd ? .tmDescent dd ? @@ -65,17 +119,22 @@ .tmItalic db ? .tmUnderlined db ? .tmStruckOut db ? .tmPitchAndFamily db ? .tmCharSet db ? + .__align rb 7 ends + + struct LOGBRUSH .lbStyle dd ? .lbColor dd ? .lbHatch dd ? ends + + struct LOGPEN .lopnStyle dd ? .lopnWidth POINT .lopnColor dd ? @@ -105,10 +164,29 @@ .lfClipPrecision db ? .lfQuality db ? .lfPitchAndFamily db ? .lfFaceName rb 32 ends + + +struct LOGFONTW + .lfHeight dd ? + .lfWidth dd ? + .lfEscapement dd ? + .lfOrientation dd ? + .lfWeight dd ? + .lfItalic db ? + .lfUnderline db ? + .lfStrikeOut db ? + .lfCharSet db ? + .lfOutPrecision db ? + .lfClipPrecision db ? + .lfQuality db ? + .lfPitchAndFamily db ? + .lfFaceName rw 32 +ends + struct ENUMLOGFONT .elfLogFont LOGFONT .elfFullName rb 64 .elfStyle rb 32 @@ -147,10 +225,50 @@ .bReserved db ? .dwLayerMask dd ? .dwVisibleMask dd ? .dwDamageMask dd ? ends + + +; This must be in _USER32.INC, but it uses LOGFONT and this caused circular dependencies. +struct NONCLIENTMETRICS + .cbSize dd ? + .iBorderWidth dd ? + .iScrollWidth dd ? + .iScrollHeight dd ? + .iCaptionWidth dd ? + .iCaptionHeight dd ? + .lfCaptionFont LOGFONT + .iSmCaptionWidth dd ? + .iSmCaptionHeight dd ? + .lfSmCaptionFont LOGFONT + .iMenuWidth dd ? + .iMenuHeight dd ? + .lfMenuFont LOGFONT + .lfStatusFont LOGFONT + .lfMessageFont LOGFONT +ends + + +struct NONCLIENTMETRICSW + .cbSize dd ? + .iBorderWidth dd ? + .iScrollWidth dd ? + .iScrollHeight dd ? + .iCaptionWidth dd ? + .iCaptionHeight dd ? + .lfCaptionFont LOGFONTW + .iSmCaptionWidth dd ? + .iSmCaptionHeight dd ? + .lfSmCaptionFont LOGFONTW + .iMenuWidth dd ? + .iMenuHeight dd ? + .lfMenuFont LOGFONTW + .lfStatusFont LOGFONTW + .lfMessageFont LOGFONTW +ends + ; General constants GDI_ERROR = 0FFFFFFFFh HGDI_ERROR = 0FFFFFFFFh @@ -478,5 +596,9 @@ OBJ_PEN = 1 OBJ_BRUSH = 2 OBJ_PAL = 5 OBJ_FONT = 6 OBJ_BITMAP = 7 + +; Additional constants for GetObjectType +OBJ_DC = $03 +OBJ_MEMDC = $0a Index: freshlib/equates/Win32/_HTMLHELP.INC ================================================================== --- freshlib/equates/Win32/_HTMLHELP.INC +++ freshlib/equates/Win32/_HTMLHELP.INC @@ -1,9 +1,18 @@ -; HtmlHelp.h -; Copyright (c) 1996-1997, Microsoft Corp. All rights reserved. -; converted to fasm format - +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: HtmlHelp constants and structures. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ ; Commands to pass to HtmlHelp() HH_DISPLAY_TOPIC = 0x0000 HH_HELP_FINDER = 0x0000 ; WinHelp equivalent Index: freshlib/equates/Win32/_KERNEL32.INC ================================================================== --- freshlib/equates/Win32/_KERNEL32.INC +++ freshlib/equates/Win32/_KERNEL32.INC @@ -1,7 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: KERNEL32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ -; KERNEL32.DLL structures and constants struct SYSTEM_INFO .wProcessorArchitecture dw ? .wReserved dw ? .dwPageSize dd ? @@ -103,17 +115,51 @@ .dwReserved1 dd ? .cFileName rb 260 .cAlternateFileName rb 14 ends +struct FINDDATAW + .dwFileAttributes dd ? + .ftCreationTime FILETIME + .ftLastAccessTime FILETIME + .ftLastWriteTime FILETIME + .nFileSizeHigh dd ? + .nFileSizeLow dd ? + .dwReserved0 dd ? + .dwReserved1 dd ? + .cFileName rw 260 + .cAlternateFileName rw 14 +ends + +; findnext error + +ERROR_NO_MORE_FILES = 18 + struct PROCESSINFO .hProcess dd ? .hThread dd ? .dwProcessId dd ? .dwThreadId dd ? ends + + + +struct TIME_ZONE_INFORMATION + .bias dd ? + .StandardName rw 32 + .StandardDate SYSTEMTIME + .StandardBias dd ? + .DaylightName rw 32 + .DaylightDate SYSTEMTIME + .DaylightBias dd ? +ends + +TIME_ZODE_ID_UNKNOWN = 0 +TIME_ZONE_ID_STANDARD = 1 +TIME_ZONE_ID_DAYLIGHT = 2 + ; General constants NULL = 0 TRUE = 1 @@ -307,10 +353,12 @@ PIPE_TYPE_MESSAGE = 4 PIPE_UNLIMITED_INSTANCES = 255 ; file/pipe error codes +ERROR_FILE_NOT_FOUND = 2 +ERROR_PATH_NOT_FOUND = 3 ERROR_MORE_DATA = 234 ; Global memory flags GMEM_FIXED = 0000h @@ -749,5 +797,95 @@ VFT2_DRV_INPUTMETHOD = 0000000Bh VFT2_DRV_VERSIONED_PRINTER = 0000000Ch VFT2_FONT_RASTER = 00000001h VFT2_FONT_VECTOR = 00000002h VFT2_FONT_TRUETYPE = 00000003h + + +; MultiByteToWideChar constants + +CP_ACP = 0 +CP_OEMCP = 1 +CP_MACCP = 2 +CP_THREAD_ACP = 3 +CP_SYMBOL = 42 +CP_UTF7 = 65000 +CP_UTF8 = 65001 + +; .flags: +MB_PRECOMPOSED = $00000001 ; use precomposed chars +MB_COMPOSITE = $00000002 ; use composite chars +MB_USEGLYPHCHARS = $00000004 ; use glyph chars, not ctrl chars +MB_ERR_INVALID_CHARS = $00000008 ; error for invalid chars + + +struct DCB + .DCBlength dd ? ; // sizeof(DCB) + .BaudRate dd ? ; // current baud rate + .fBinary dd ? ; // binary mode, no EOF check + .fParity dd ? ; // enable parity checking + .fOutxCtsFlow dd ? ; // CTS output flow control + .fOutxDsrFlow dd ? ; // DSR output flow control + .fDtrControl dd ? ;:2; // DTR flow control type + .fDsrSensitivity dd ? ;:1; // DSR sensitivity + + .fTXContinueOnXoff dd ? ;:1; // XOFF continues Tx + .fOutX dd ? ;: 1; // XON/XOFF out flow control + .fInX dd ? ;: 1; // XON/XOFF in flow control + .fErrorChar dd ? ;: 1; // enable error replacement + .fNull dd ? ;: 1; // enable null stripping + .fRtsControl dd ? ;:2; // RTS flow control + .fAbortOnError dd ? ;:1; // abort reads/writes on error + .fDummy2 dd ? ;:17; // reserved + .wReserved dw ? ; // not currently used + + .XonLim dw ? ; // transmit XON threshold + .XoffLim dw ? ; // transmit XOFF threshold + .ByteSize db ? ; // number of bits/byte, 4-8 + .Parity db ? ; // 0-4=no,odd,even,mark,space + .StopBits db ? ; // 0,1,2 = 1, 1.5, 2 + .XonChar db ? ; // Tx and Rx XON character + .XoffChar db ? ; // Tx and Rx XOFF character + .ErrorChar db ? ; // error replacement character + + .EofChar db ? ; // end of input character + .EvtChar db ? ; // received event character + .wReserved1 dw ? ; // reserved; do not use +ends + + +struct smallDCB + .DCBLength dd ? + .BaudRate dd ? + .fBinary dd ? + .fReserved1 dd ? + .wReserved1 dw ? + .XonLim dw ? + .XoffLim dw ? + .ByteSize db ? + .Parity db ? + .EoffChar db ? + .EvtChar db ? + .wReserved2 dw ? +ends + + + +struct COMMTIMEOUTS + .ReadIntervalTimeout dd ? + .ReadTotalTimeoutMultiplier dd ? + .ReadTotalTimeoutConstant dd ? + .WriteTotalTimeoutMultiplier dd ? + .WriteTotalTimeoutConstant dd ? +ends + + +struct CRITICAL_SECTION + .DebugInfo dd ? + .LockCount dd ? + .RecursionCount dd ? + .OwningThread dd ? + .LockSemaphore dd ? + .SpinCount dd ? +ends + + Index: freshlib/equates/Win32/_ODBC32.INC ================================================================== --- freshlib/equates/Win32/_ODBC32.INC +++ freshlib/equates/Win32/_ODBC32.INC @@ -1,5 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: ODBC constants and structures. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + SQL_NULL_DATA = -1 SQL_DATA_AT_EXEC = -2 SQL_SUCCESS = 0 SQL_SUCCESS_WITH_INFO = 1 SQL_NODATA = 100 Index: freshlib/equates/Win32/_RichEdit32.inc ================================================================== --- freshlib/equates/Win32/_RichEdit32.inc +++ freshlib/equates/Win32/_RichEdit32.inc @@ -1,5 +1,20 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: RichEdit32.dll constants and structures. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + MAX_TAB_STOPS = 32 struct CHARFORMAT .cbSize dd ? Index: freshlib/equates/Win32/_SHELL32.INC ================================================================== --- freshlib/equates/Win32/_SHELL32.INC +++ freshlib/equates/Win32/_SHELL32.INC @@ -1,16 +1,28 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SHELL32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ -; SHELL32.DLL structures and constants struct NOTIFYICONDATA .cbSize dd ? .hWnd dd ? .uID dd ? .uFlags dd ? .uCallbackMessage dd ? .hIcon dd ? - .szTip CHAR 64 + .szTip du 64 ends ; Taskbar icon messages NIM_ADD = 0 Index: freshlib/equates/Win32/_USER32.INC ================================================================== --- freshlib/equates/Win32/_USER32.INC +++ freshlib/equates/Win32/_USER32.INC @@ -1,7 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: USER32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ -; USER32.DLL structures and constants struct POINT .x dd ? .y dd ? ends @@ -130,13 +142,13 @@ .cbData dd ? .lpData dd ? ends struct ACCEL - fVirt dw ? - key dw ? - cmd dw ? + .fVirt dw ? + .key dw ? + .cmd dw ? ends struct PAINTSTRUCT .hdc dd ? .fErase dd ? @@ -199,10 +211,19 @@ .lpszIcon dd ? .dwContextHelpId dd ? .lpfnMsgBoxCallback dd ? .dwLanguageId dd ? ends + + +struct MONITORINFO + .cbSize dd ? + .rcMonitor RECT + .rcWork RECT + .dwFlags dd ? +ends + ; MessageBox type flags MB_OK = 000000h MB_OKCANCEL = 000001h @@ -301,31 +322,32 @@ WS_ICONIC = WS_MINIMIZE WS_SIZEBOX = WS_THICKFRAME ; Extended Window Styles -WS_EX_DLGMODALFRAME = 00001h -WS_EX_DRAGOBJECT = 00002h -WS_EX_NOPARENTNOTIFY = 00004h -WS_EX_TOPMOST = 00008h -WS_EX_ACCEPTFILES = 00010h -WS_EX_TRANSPARENT = 00020h -WS_EX_MDICHILD = 00040h -WS_EX_TOOLWINDOW = 00080h -WS_EX_WINDOWEDGE = 00100h -WS_EX_CLIENTEDGE = 00200h -WS_EX_CONTEXTHELP = 00400h -WS_EX_RIGHT = 01000h -WS_EX_LEFT = 00000h -WS_EX_RTLREADING = 02000h -WS_EX_LTRREADING = 00000h -WS_EX_LEFTSCROLLBAR = 04000h -WS_EX_RIGHTSCROLLBAR = 00000h -WS_EX_CONTROLPARENT = 10000h -WS_EX_STATICEDGE = 20000h -WS_EX_APPWINDOW = 40000h -WS_EX_LAYERED = 80000h +WS_EX_DLGMODALFRAME = 00000001h +WS_EX_DRAGOBJECT = 00000002h +WS_EX_NOPARENTNOTIFY = 00000004h +WS_EX_TOPMOST = 00000008h +WS_EX_ACCEPTFILES = 00000010h +WS_EX_TRANSPARENT = 00000020h +WS_EX_MDICHILD = 00000040h +WS_EX_TOOLWINDOW = 00000080h +WS_EX_WINDOWEDGE = 00000100h +WS_EX_CLIENTEDGE = 00000200h +WS_EX_CONTEXTHELP = 00000400h +WS_EX_RIGHT = 00001000h +WS_EX_LEFT = 00000000h +WS_EX_RTLREADING = 00002000h +WS_EX_LTRREADING = 00000000h +WS_EX_LEFTSCROLLBAR = 00004000h +WS_EX_RIGHTSCROLLBAR = 00000000h +WS_EX_CONTROLPARENT = 00010000h +WS_EX_STATICEDGE = 00020000h +WS_EX_APPWINDOW = 00040000h +WS_EX_LAYERED = 00080000h +WS_EX_NOACTIVATE = 08000000h WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE or WS_EX_CLIENTEDGE WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE or WS_EX_TOOLWINDOW or WS_EX_TOPMOST ; MDI client style bits @@ -384,10 +406,16 @@ GW_HWNDLAST = 1 GW_HWNDNEXT = 2 GW_HWNDPREV = 3 GW_OWNER = 4 GW_CHILD = 5 + +; GetAncestor constants + +GA_PARENT = 1 +GA_ROOT = 2 +GA_ROOTOWNER = 3 ; RedrawWindow flags RDW_INVALIDATE = 0001h RDW_INTERNALPAINT = 0002h @@ -405,10 +433,55 @@ ; PeekMessage Options PM_NOREMOVE = 0000h PM_REMOVE = 0001h PM_NOYIELD = 0002h + +; MsgWaitForMultipleObjectsEx for .dwFlags: + +MWMO_ALERTABLE = 0x0002 ; The function also returns if an APC has been queued to the thread with QueueUserAPC while the thread is in the waiting state. +MWMO_INPUTAVAILABLE = 0x0004 ; The function returns if input exists for the queue, even if the input has been seen (but not removed) using a call to another function, such as PeekMessage. +MWMO_WAITALL = 0x0001 ; The function returns when all objects in the pHandles array are signaled and an input event has been received, all at the same time. + +; MsgWaitForMultipleObjectsEx for .dwWakeMask: + +QS_ALLEVENTS = 0x04BF ; An input, WM_TIMER, WM_PAINT, WM_HOTKEY, or posted message is in the queue. + ; This value is a combination of QS_INPUT, QS_POSTMESSAGE, QS_TIMER, QS_PAINT, and QS_HOTKEY. + +QS_ALLINPUT = 0x04FF ; Any message is in the queue. + ; This value is a combination of QS_INPUT, QS_POSTMESSAGE, QS_TIMER, QS_PAINT, QS_HOTKEY, and QS_SENDMESSAGE. + +QS_ALLPOSTMESSAGE = 0x0100 ; A posted message is in the queue. + ; This value is cleared when you call GetMessage or PeekMessage without filtering messages. + +QS_HOTKEY = 0x0080 ; A WM_HOTKEY message is in the queue. + +QS_INPUT = 0x0407 ; An input message is in the queue. + ; This value is a combination of QS_MOUSE, QS_KEY, and QS_RAWINPUT. + +QS_KEY = 0x0001 ; A WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP, or WM_SYSKEYDOWN message is in the queue. + +QS_MOUSE = 0x0006 ; A WM_MOUSEMOVE message or mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on). + ; This value is a combination of QS_MOUSEMOVE and QS_MOUSEBUTTON. + +QS_MOUSEBUTTON = 0x0004 ; A mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on). + +QS_MOUSEMOVE = 0x0002 ; A WM_MOUSEMOVE message is in the queue. + +QS_PAINT = 0x0020 ; A WM_PAINT message is in the queue. + +QS_POSTMESSAGE = 0x0008 ; A posted message is in the queue. + ; This value is cleared when you call GetMessage or PeekMessage, whether or not you are filtering messages. + +QS_RAWINPUT = 0x0400 ; A raw input message is in the queue. + +QS_SENDMESSAGE = 0x0040 ; A message sent by another thread or application is in the queue. + +QS_TIMER = 0x0010 ; A WM_TIMER message is in the queue. + + + ; Window state messages WM_STATE = 0000h WM_NULL = 0000h @@ -738,12 +811,12 @@ PRF_OWNED = 20h ; Virtual key codes VK_LBUTTON = 001h -VK_CANCEL = 003h VK_RBUTTON = 002h +VK_CANCEL = 003h VK_MBUTTON = 004h VK_BACK = 008h VK_TAB = 009h VK_CLEAR = 00Ch VK_RETURN = 00Dh Index: freshlib/equates/Win32/_WSOCK32.INC ================================================================== --- freshlib/equates/Win32/_WSOCK32.INC +++ freshlib/equates/Win32/_WSOCK32.INC @@ -1,7 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: WSOCK32.DLL structures and constants +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ -; WSOCK32.DLL structures and constants struct WSADATA .wVersion dw ? .wHighVersion dw ? .szDescription rb 256+1 @@ -28,10 +40,18 @@ struct sockaddr .sa_family dw ? .sa_data rb 14 ends + +; Socket error + +SOCKET_ERROR = -1 +INVALID_SOCKET = -1 + +UNIX_PATH_MAX = 108 + ; Socket types SOCK_STREAM = 1 SOCK_DGRAM = 2 @@ -46,11 +66,11 @@ AF_INET = 2 AF_IMPLINK = 3 AF_PUP = 4 AF_CHAOS = 5 AF_NS = 6 -AF_IPX = 6 +AF_IPX = AF_NS AF_ISO = 7 AF_OSI = AF_ISO AF_ECMA = 8 AF_DATAKIT = 9 AF_CCITT = 10 @@ -59,10 +79,20 @@ AF_DLI = 13 AF_LAT = 14 AF_HYLINK = 15 AF_APPLETALK = 16 AF_NETBIOS = 17 +AF_VOICEVIEW = 18 ; VoiceView +AF_FIREFOX = 19 ; Protocols from Firefox +AF_UNKNOWN1 = 20 ; Somebody is using this! +AF_BAN = 21 ; Banyan +AF_ATM = 22 ; Native ATM Services +AF_INET6 = 23 ; Internetwork Version 6 +AF_CLUSTER = 24 ; Microsoft Wolfpack +AF_12844 = 25 ; IEEE 1284.4 WG AF + +AF_MAX = 26 ; Protocol formats PF_UNSPEC = 0 PF_UNIX = 1 @@ -82,10 +112,28 @@ PF_DLI = 13 PF_LAT = 14 PF_HYLINK = 15 PF_APPLETALK = 16 PF_NETBIOS = 17 + + +; IPPROTO_ constants +; Protocols + +IPPROTO_IP = 0 ; dummy for IP +IPPROTO_ICMP = 1 ; control message protocol +IPPROTO_IGMP = 2 ; internet group management protocol +IPPROTO_GGP = 3 ; gateway^2 (deprecated) +IPPROTO_TCP = 6 ; tcp +IPPROTO_PUP = 12 ; pup +IPPROTO_UDP = 17 ; user datagram protocol +IPPROTO_IDP = 22 ; xns idp +IPPROTO_ND = 77 ; UNOFFICIAL net disk proto + +IPPROTO_RAW = 255 ; raw IP packet +IPPROTO_MAX = 256 + ; IP Ports IPPORT_ECHO = 7 IPPORT_DISCARD = 9 @@ -125,5 +173,116 @@ ; commands for ioctlsocket FIONBIO = 8004667Eh FIONSYNC = 8004667Dh FIONREAD = 4004667Fh + +; Commands for shutdown + +SD_RECEIVE = 0 +SD_SEND = 1 +SD_BOTH = 2 + + +; flags + +MSG_OOB = 1 +MSG_PEEK = 2 +MSG_DONTROUTE = 4 +MSG_MAXIOVLEN = 16 +MSG_PARTIAL = 0x8000 + +; options + +SOL_SOCKET = $FFFF + +SO_DEBUG = $01 +SO_ACCEPTCONN = $02 +SO_REUSEADDR = $04 +SO_KEEPALIVE = $08 +SO_DONTROUTE = $10 +SO_BROADCAST = $20 +SO_USELOOPBACK = $40 +SO_LINGER = $80 +SO_OOBINLINE = $100 +SO_SNDBUF = $1001 +SO_RCVBUF = $1002 +SO_SNDTIMEO = $1005 +SO_RCVTIMEO = $1006 + + +WSA_INVALID_HANDLE = 6 +WSA_NOT_ENOUGH_MEMORY = 8 +WSA_INVALID_PARAMETER = 87 +WSA_OPERATION_ABORTED = 995 +WSA_IO_INCOMPLETE = 996 +WSA_IO_PENDING = 997 + +WSABASEERR = 10000 + +WSAEINTR = WSABASEERR+4 +WSAEBADF = WSABASEERR+9 +WSAEACCES = WSABASEERR+13 +WSAEFAULT = WSABASEERR+14 +WSAEINVAL = WSABASEERR+22 +WSAEMFILE = WSABASEERR+24 + +WSAEWOULDBLOCK = WSABASEERR+35 +WSAEINPROGRESS = WSABASEERR+36 +WSAEALREADY = WSABASEERR+37 +WSAENOTSOCK = WSABASEERR+38 +WSAEDESTADDRREQ = WSABASEERR+39 +WSAEMSGSIZE = WSABASEERR+40 +WSAEPROTOTYPE = WSABASEERR+41 +WSAENOPROTOOPT = WSABASEERR+42 +WSAEPROTONOSUPPORT = WSABASEERR+43 +WSAESOCKTNOSUPPORT = WSABASEERR+44 +WSAEOPNOTSUPP = WSABASEERR+45 +WSAEPFNOSUPPORT = WSABASEERR+46 +WSAEAFNOSUPPORT = WSABASEERR+47 +WSAEADDRINUSE = WSABASEERR+48 +WSAEADDRNOTAVAIL = WSABASEERR+49 +WSAENETDOWN = WSABASEERR+50 +WSAENETUNREACH = WSABASEERR+51 +WSAENETRESET = WSABASEERR+52 +WSAECONNABORTED = WSABASEERR+53 +WSAECONNRESET = WSABASEERR+54 +WSAENOBUFS = WSABASEERR+55 +WSAEISCONN = WSABASEERR+56 +WSAENOTCONN = WSABASEERR+57 +WSAESHUTDOWN = WSABASEERR+58 +WSAETOOMANYREFS = WSABASEERR+59 +WSAETIMEDOUT = WSABASEERR+60 +WSAECONNREFUSED = WSABASEERR+61 +WSAELOOP = WSABASEERR+62 +WSAENAMETOOLONG = WSABASEERR+63 +WSAEHOSTDOWN = WSABASEERR+64 +WSAEHOSTUNREACH = WSABASEERR+65 +WSAENOTEMPTY = WSABASEERR+66 +WSAEUSERS = WSABASEERR+68 +WSAEDQUOT = WSABASEERR+69 +WSAESTALE = WSABASEERR+70 +WSAEREMOTE = WSABASEERR+71 + +; Extended Windows Sockets error codes + +WSASYSNOTREADY = WSABASEERR+91 +WSAVERNOTSUPPORTED = WSABASEERR+92 +WSANOTINITIALISED = WSABASEERR+93 +WSAEDISCON = WSABASEERR+101 +WSAENOMORE = WSABASEERR+102 +WSAECANCELLED = WSABASEERR+103 +WSAEINVALIDPROCTABLE = WSABASEERR+104 +WSAEINVALIDPROVIDER = WSABASEERR+105 +WSAEPROVIDERFAILEDINIT = WSABASEERR+106 +WSASYSCALLFAILURE = WSABASEERR+107 +WSASERVICE_NOT_FOUND = WSABASEERR+108 +WSATYPE_NOT_FOUND = WSABASEERR+109 +WSA_E_NO_MORE = WSABASEERR+110 +WSA_E_CANCELLED = WSABASEERR+111 +WSAEREFUSED = WSABASEERR+112 + +WSAHOST_NOT_FOUND = WSABASEERR+1001 +WSATRY_AGAIN = WSABASEERR+1002 +WSANO_RECOVERY = WSABASEERR+1003 +WSANO_DATA = WSABASEERR+1004 +WSANO_ADDRESS = WSANO_DATA ADDED freshlib/equates/Win32/_com32.inc Index: freshlib/equates/Win32/_com32.inc ================================================================== --- /dev/null +++ freshlib/equates/Win32/_com32.inc @@ -0,0 +1,410 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: COM interfaces. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; error codes +S_OK = 0 +S_FALSE = 1 +E_NOTIMPL = $80004001 ; Not implemented +E_NOINTERFACE = $80004002 ; No such interface supported +E_ABORT = $80004004 ; Operation aborted +E_ACCESSDENIED = $80070005 ; General access denied error +E_FAIL = $80004005 ; Unspecified failure +E_HANDLE = $80070006 ; Handle that is not valid +E_INVALIDARG = $80070057 ; One or more arguments are not valid +E_OUTOFMEMORY = $8007000E ; Failed to allocate necessary memory +E_POINTER = $80004003 ; Pointer that is not valid +E_UNEXPECTED = $8000FFFF ; Unexpected failure + +OLECLOSE_SAVEIFDIRTY = 0 +OLECLOSE_NOSAVE = 1 +OLECLOSE_PROMPTSAVE = 2 + +CLSCTX_INPROC_SERVER = 1 +CLSCTX_INPROC_HANDLER = 2 +CLSCTX_INPROC = CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER + +OLEIVERB_SHOW = -1 +OLEIVERB_OPEN = -2 +OLEIVERB_HIDE = -3 +OLEIVERB_UIACTIVATE = -4 +OLEIVERB_INPLACEACTIVATE = -5 +OLEIVERB_DISCARDUNDOSTATE = -6 + +; VARIANT TYPE + +VT_EMPTY = 0 +VT_NULL = 1 +VT_I2 = 2 +VT_I4 = 3 +VT_R4 = 4 +VT_R8 = 5 +VT_CY = 6 +VT_DATE = 7 +VT_BSTR = 8 +VT_DISPATCH = 9 +VT_ERROR = 10 +VT_BOOL = 11 +VT_VARIANT = 12 +VT_UNKNOWN = 13 +VT_DECIMAL = 14 +VT_I1 = 16 +VT_UI1 = 17 +VT_UI2 = 18 +VT_UI4 = 19 +VT_I8 = 20 +VT_UI8 = 21 +VT_INT = 22 +VT_UINT = 23 +VT_VOID = 24 +VT_HRESULT = 25 +VT_PTR = 26 +VT_SAFEARRAY = 27 +VT_CARRAY = 28 +VT_USERDEFINED = 29 +VT_LPSTR = 30 +VT_LPWSTR = 31 +VT_RECORD = 36 +VT_INT_PTR = 37 +VT_UINT_PTR = 38 +VT_FILETIME = 64 +VT_BLOB = 65 +VT_STREAM = 66 +VT_STORAGE = 67 +VT_STREAMED_OBJECT = 68 +VT_STORED_OBJECT = 69 +VT_BLOB_OBJECT = 70 +VT_CF = 71 +VT_CLSID = 72 +VT_VERSIONED_STREAM = 73 +VT_BSTR_BLOB = $fff +VT_VECTOR = $1000 +VT_ARRAY = $2000 +VT_BYREF = $4000 + + +struct VARIANT + .vType dw ? + .res_zero rb 6 + .Data0 dd ? + .Data1 dd ? +ends + + + + +com_interface IWebBrowser2, \ + QueryInterface,\ + AddRef,\ + Release,\ +\ + GetTypeInfoCount, \ + GetTypeInfo, \ + GetIDsOfNames, \ + xInvoke, \ + GoBack, \ + GoForward, \ + GoHome, \ + GoSearch, \ + Navigate, \ + Refresh, \ + Refresh2, \ + Stop, \ + get_Application, \ + get_Parent, \ + get_Container, \ + get_Document, \ + get_TopLevelContainer, \ + get_Type, \ + get_Left, \ + put_Left, \ + get_Top, \ + put_Top, \ + get_Width, \ + put_Width, \ + get_Height, \ + put_Height, \ + get_LocationName, \ + get_LocationURL, \ + get_Busy, \ + Quit, \ + ClientToWindow, \ + PutProperty, \ + GetProperty, \ + get_Name, \ + get_HWND, \ + get_FullName, \ + get_Path, \ + get_Visible, \ + put_Visible, \ + get_StatusBar, \ + put_StatusBar, \ + get_StatusText, \ + put_StatusText, \ + get_ToolBar, \ + put_ToolBar, \ + get_MenuBar, \ + put_MenuBar, \ + get_FullScreen, \ + put_FullScreen, \ + Navigate2, \ + QueryStatusWB, \ + ExecWB, \ + ShowBrowserBar, \ + get_ReadyState, \ + get_Offline, \ + put_Offline, \ + get_Silent, \ + put_Silent, \ + get_RegisterAsBrowser, \ + put_RegisterAsBrowser, \ + get_RegisterAsDropTarget, \ + put_RegisterAsDropTarget, \ + get_TheaterMode, \ + put_TheaterMode, \ + get_AddressBar, \ + put_AddressBar, \ + get_Resizable, \ + put_Resizable + + + +; IWebBrowser2 ready states: + +READYSTATE_UNINITIALIZED = 0 +READYSTATE_LOADING = 1 +READYSTATE_LOADED = 2 +READYSTATE_INTERACTIVE = 3 +READYSTATE_COMPLETE = 4 + + + +com_interface IOleObject, \ + QueryInterface, \ + AddRef, \ + Release, \ +\ + SetClientSite, \ + GetClientSite, \ + SetHostNames, \ + Close, \ + SetMoniker, \ + GetMoniker, \ + InitFromData, \ + GetClipboardData, \ + DoVerb, \ + EnumVerbs, \ + Update, \ + IsUpToDate, \ + GetUserClassID, \ + GetUserType, \ + SetExtent, \ + GetExtent, \ + Advise, \ + Unadvise, \ + EnumAdvise, \ + GetMiscStatus, \ + SetColorScheme + + +struct OLEINPLACEFRAMEINFO + .cb dd ? + .fMDIApp dd ? + .hwndFrame dd ? + .haccel dd ? + .cAccelEntries dd ? +ends + + + +com_interface IOleInPlaceObject, \ + QueryInterface, \ + AddRef, \ + Release, \ +\ + GetWindow, \ + ContextSensitiveHelp, \ + InPlaceDeactivate, \ + UIDeactivate, \ + SetObjectRects, \ + ReactivateAndUndo + + + +com_interface IHTMLDocument2, \ + QueryInterface, \ + AddRef, \ + Release, \ +\ + GetTypeInfoCount, \ + GetTypeInfo, \ + GetIDsOfNames, \ + Invoke, \ +\ + get_Script, \ +\ + get_all, \ + get_body, \ + get_activeElement, \ + get_images, \ + get_applets, \ + get_links, \ + get_forms, \ + get_anchors, \ + put_title, \ + get_title, \ + get_scripts, \ + put_designMode, \ + get_designMode, \ + get_selection, \ + get_readyState, \ + get_frames, \ + get_embeds, \ + get_plugins, \ + put_alinkColor, \ + get_alinkColor, \ + put_bgColor, \ + get_bgColor, \ + put_fgColor, \ + get_fgColor, \ + put_linkColor, \ + get_linkColor, \ + put_vlinkColor, \ + get_vlinkColor, \ + get_referrer, \ + get_location, \ + get_lastModified, \ + put_URL, \ + get_URL, \ + put_domain, \ + get_domain, \ + put_cookie, \ + get_cookie, \ + put_expands, \ + get_expands, \ + put_charset, \ + get_charset, \ + put_defaultCharset, \ + get_defaultCharset, \ + get_mimeType, \ + get_fileSize, \ + get_fileCreatedDate, \ + get_fileModifiedDate, \ + get_fileUpdatedDate, \ + get_security, \ + get_protocol, \ + get_nameProp, \ + write, \ + writeln, \ + open, \ + close, \ + clear, \ + queryCommandSupported, \ + queryCommandEnabled, \ + queryCommandState, \ + queryCommandIndeterm, \ + queryCommandText, \ + queryCommandValue, \ + execCommand, \ + execCommandShowHelp, \ + createElement, \ + put_onhelp, \ + get_onhelp, \ + put_onclick, \ + get_onclick, \ + put_ondblclick, \ + get_ondblclick, \ + put_onkeyup, \ + get_onkeyup, \ + put_onkeydown, \ + get_onkeydown, \ + put_onkeypress, \ + get_onkeypress, \ + put_onmouseup, \ + get_onmouseup, \ + put_onmousedown, \ + get_onmousedown, \ + put_onmousemove, \ + get_onmousemove, \ + put_onmouseout, \ + get_onmouseout, \ + put_onmouseover, \ + get_onmouseover, \ + put_onreadystatechange, \ + get_onreadystatechange, \ + put_onafterupdate, \ + get_onafterupdate, \ + put_onrowexit, \ + get_onrowexit, \ + put_onrowenter, \ + get_onrowenter, \ + put_ondragstart, \ + get_ondragstart, \ + put_onselectstart, \ + get_onselectstart, \ + elementFromPoint, \ + get_parentWindow, \ + get_styleSheets, \ + put_onbeforeupdate, \ + get_onbeforeupdate, \ + put_onerrorupdate, \ + get_onerrorupdate, \ + toString, \ + createStyleSheet + + + +struct SAFEARRAYBOUND + .cElements dd ? + .lLbound dd ? +ends + + +struct SAFEARRAY + .fFeatures dw ? + .cbElements dd ? + .cLocks dd ? + .pvData dd ? + .rgsabound0 SAFEARRAYBOUND + .rgsabound1 SAFEARRAYBOUND +ends + + + + +com_interface IDispatch, \ + QueryInterface, \ + AddRef, \ + Release, \ +\ + .GetTypeInfoCount, \ + .GetTypeInfo, \ + .GetIDsOfNames, \ + .Invoke + + +com_interface IClassFactory, \ + QueryInterface, \ + AddRef, \ + Release, \ +\ + CreateInstance, \ + LockServer + + +;com_interface IHTMLElement, \ +; QueryInterface, \ +; AddRef, \ +; Release, \ +;\ + Index: freshlib/equates/Win32/_exceptions.inc ================================================================== --- freshlib/equates/Win32/_exceptions.inc +++ freshlib/equates/Win32/_exceptions.inc @@ -1,5 +1,20 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Exception handling constants and structures. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + EXCEPTION_MAXIMUM_PARAMETERS = 15 DBG_CONTINUE = 00010002h DBG_TERMINATE_THREAD = 40010003h DBG_TERMINATE_PROCESS = 40010004h ADDED freshlib/equates/Win32/_geometry.inc Index: freshlib/equates/Win32/_geometry.inc ================================================================== --- /dev/null +++ freshlib/equates/Win32/_geometry.inc @@ -0,0 +1,22 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Different geometry structures. +; +; Target OS: Windows +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +struct TBounds + .x dd ? + .y dd ? + .width dd ? + .height dd ? +ends + ADDED freshlib/equates/Win32/_mshtmhst.inc Index: freshlib/equates/Win32/_mshtmhst.inc ================================================================== --- /dev/null +++ freshlib/equates/Win32/_mshtmhst.inc @@ -0,0 +1,60 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Some equates for HTML control COM interfaces. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +DOCHOSTUIFLAG_DIALOG = $00000001 +DOCHOSTUIFLAG_DISABLE_HELP_MENU = $00000002 +DOCHOSTUIFLAG_NO3DBORDER = $00000004 +DOCHOSTUIFLAG_SCROLL_NO = $00000008 +DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = $00000010 +DOCHOSTUIFLAG_OPENNEWWIN = $00000020 +DOCHOSTUIFLAG_DISABLE_OFFSCREEN = $00000040 +DOCHOSTUIFLAG_FLAT_SCROLLBAR = $00000080 +DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = $00000100 +DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = $00000200 +DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = $00000400 +DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = $00000800 +DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = $00001000 +DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = $00002000 +DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = $00004000 +DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = $00010000 +DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = $00020000 +DOCHOSTUIFLAG_THEME = $00040000 +DOCHOSTUIFLAG_NOTHEME = $00080000 +DOCHOSTUIFLAG_NOPICS = $00100000 +DOCHOSTUIFLAG_NO3DOUTERBORDER = $00200000 +DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP = $00400000 +DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK = $00800000 +DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL = $01000000 +DOCHOSTUIFLAG_HOST_NAVIGATES = $02000000 +DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION = $04000000 +DOCHOSTUIFLAG_USE_WINDOWLESS_SELECTCONTROL = $08000000 +DOCHOSTUIFLAG_USE_WINDOWED_SELECTCONTROL = $10000000 +DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE = $20000000 +DOCHOSTUIFLAG_DPI_AWARE = $40000000 + +DOCHOSTUIDBLCLK_DEFAULT = 0 +DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1 +DOCHOSTUIDBLCLK_SHOWCODE = 2 + + + + +struct DOCHOSTUIINFO + .cbSize dd ? + .dwFlags dd ? + .dwDoubleClick dd ? + .pchHostCss dd ? + .pchHostNS dd ? +ends DELETED freshlib/equates/Win32/_string_apia.inc Index: freshlib/equates/Win32/_string_apia.inc ================================================================== --- freshlib/equates/Win32/_string_apia.inc +++ /dev/null @@ -1,5 +0,0 @@ -struc CHAR count { rb count } - -;macro TEXT lbl,[txt] { -; lbl db txt -;} DELETED freshlib/equates/Win32/_string_apiw.inc Index: freshlib/equates/Win32/_string_apiw.inc ================================================================== --- freshlib/equates/Win32/_string_apiw.inc +++ /dev/null @@ -1,5 +0,0 @@ -struc CHAR count { rw count } - -macro TEXT lbl, [txt] { - lbl du txt -} Index: freshlib/equates/Win32/allequates.inc ================================================================== --- freshlib/equates/Win32/allequates.inc +++ freshlib/equates/Win32/allequates.inc @@ -1,14 +1,32 @@ -; Win32 programming constants -include '_string_apia.inc' - -include '_kernel32.inc' -include '_user32.inc' -include '_gdi32.inc' -include '_comctl32.inc' -include '_comdlg32.inc' -include '_shell32.inc' -include '_wsock32.inc' +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all Win32 equate files. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +bNEWLINE equ $0d, $0a +wNEWLINE equ $0a0d +dNEWLINE equ $00000a0d + +include '_geometry.inc' +include '_KERNEL32.INC' +include '_USER32.INC' +include '_GDI32.INC' +include '_COMCTL32.INC' +include '_COMDLG32.INC' +include '_SHELL32.INC' +include '_WSOCK32.INC' include '_RichEdit32.inc' -include '_ODBC32.inc' -include '_HTMLHelp.inc' +include '_ODBC32.INC' +include '_HTMLHELP.INC' include '_exceptions.inc' +include '_com32.inc' +include '_mshtmhst.inc' ADDED freshlib/equates/_sdl.inc Index: freshlib/equates/_sdl.inc ================================================================== --- /dev/null +++ freshlib/equates/_sdl.inc @@ -0,0 +1,804 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SDL v1.2.11 equates definitions. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +; +; SDL 1.2.11 includes written by Raedwulf +; a.k.a. Tai Chi Minh Ralph Eastwood +; +; There's no warranty for the correctness nor completeness of this file +; However, please mail me at tcmreastwood@ntlworld.com if you spot +; any errors in here. +; +; Version Date: 07/11/2006 (dd/mm/yyyy) +; +; Note: Thanks to gunblade about the padding ;) +; +;_________________________________________________________________________________________ + +SDL_INIT_TIMER = 00000001h +SDL_INIT_AUDIO = 00000010h +SDL_INIT_VIDEO = 00000020h +SDL_INIT_CDROM = 00000100h +SDL_INIT_JOYSTICK = 00000200h +SDL_INIT_NOPARACHUTE = 00100000h +SDL_INIT_EVENTTHREAD = 01000000h +SDL_INIT_EVERYTHING = 0000FFFFh +SDL_APPMOUSEFOCUS = 01h +SDL_APPINPUTFOCUS = 02h +SDL_APPACTIVE = 04h + + +struct SDL_AudioSpec + .freq rd 1 + .format rw 1 + .channels rb 1 + .silence rb 1 + .samples rw 1 + .padding rw 1 + .size rd 1 + .callback rd 1 + .userdata rd 1 +ends + +AUDIO_U8 = 0008h +AUDIO_S8 = 8008h +AUDIO_U16LSB = 0010h +AUDIO_S16LSB = 8010h +AUDIO_U16MSB = 1010h +AUDIO_S16MSB = 9010h +AUDIO_U16 = AUDIO_U16LSB +AUDIO_S16 = AUDIO_S16LSB +AUDIO_U16SYS = AUDIO_U16LSB +AUDIO_S16SYS = AUDIO_S16LSB + + +struct SDL_AudioCVT + .needed rd 1 + .src_format rw 1 + .dst_format rw 1 + .rate_incr rq 1 + .buf rd 1 + .len rd 1 + .len_cvt rd 1 + .len_mult rd 1 + .len_ratio rq 1 + .filters rd 10 + .filter_index rd 1 +ends + + +SDL_MIX_MAXVOLUME = 128 +SDL_MAX_TRACKS = 99 +SDL_AUDIO_TRACK = 00h +SDL_DATA_TRACK = 04h + +CD_TRAYEMPTY = 0 +CD_STOPPED = 1 +CD_PLAYING = 2 +CD_PAUSED = 3 +CD_ERROR = -1 + +struct SDL_CDtrack + .id rb 1 + .type rb 1 + .unused rw 1 + .length rd 1 + .offset rd 1 +ends + +TRACK_COUNT = (SDL_MAX_TRACKS+1) + +struct SDL_CD + .id rd 1 + .status rd 1 + .numtracks rd 1 + .cur_track rd 1 + .cur_frame rd 1 + .track SDL_CDtrack + rb sizeof.SDL_CDtrack * SDL_MAX_TRACKS +ends + +SDL_LIL_ENDIAN = 1234 +SDL_BIG_ENDIAN = 4321 + +SDL_BYTEORDER equ SDL_LIL_ENDIAN +SDL_ENOMEM = 0 +SDL_EFREAD = 1 +SDL_EFWRITE = 2 +SDL_EFSEEK = 3 +SDL_UNSUPPORTED = 4 +SDL_LASTERROR = 5 +SDL_RELEASED = 0 +SDL_PRESSED = 1 + +SDL_NOEVENT = 0 +SDL_ACTIVEEVENT = 1 +SDL_KEYDOWN = 2 +SDL_KEYUP = 3 +SDL_MOUSEMOTION = 4 +SDL_MOUSEBUTTONDOWN = 5 +SDL_MOUSEBUTTONUP = 6 +SDL_JOYAXISMOTION = 7 +SDL_JOYBALLMOTION = 8 +SDL_JOYHATMOTION = 9 +SDL_JOYBUTTONDOWN = 10 +SDL_JOYBUTTONUP = 11 +SDL_QUIT = 12 +SDL_SYSWMEVENT = 13 +SDL_EVENT_RESERVEDA = 14 +SDL_EVENT_RESERVEDB = 15 +SDL_VIDEORESIZE = 16 +SDL_VIDEOEXPOSE = 17 +SDL_EVENT_RESERVED2 = 18 +SDL_EVENT_RESERVED3 = 19 +SDL_EVENT_RESERVED4 = 20 +SDL_EVENT_RESERVED5 = 21 +SDL_EVENT_RESERVED6 = 22 +SDL_EVENT_RESERVED7 = 23 + +SDL_USEREVENT = 24 +SDL_NUMEVENTS = 32 + +SDL_ACTIVEEVENTMASK = 2 +SDL_KEYDOWNMASK = 4 +SDL_KEYUPMASK = 8 +SDL_KEYEVENTMASK = 12 +SDL_MOUSEMOTIONMASK = 16 +SDL_MOUSEBUTTONDOWNMASK = 32 +SDL_MOUSEBUTTONUPMASK = 64 +SDL_MOUSEEVENTMASK = 102 +SDL_JOYAXISMOTIONMASK = 128 +SDL_JOYBALLMOTIONMASK = 256 +SDL_JOYHATMOTIONMASK = 512 +SDL_JOYBUTTONDOWNMASK = 1024 +SDL_JOYBUTTONUPMASK = 2048 +SDL_JOYEVENTMASK = 3968 +SDL_VIDEORESIZEMASK = 65536 +SDL_VIDEOEXPOSEMASK = 131072 +SDL_QUITMASK = 4096 +SDL_SYSWMEVENTMASK = 8192 +SDL_ALLEVENTS = 0FFFFFFFFh + +struct SDL_keysym + .scancode rb 1 + .pad0 rb 3 + .sym rd 1 + .mod rd 1 + .unicode rw 1 +ends + +struct SDL_ActiveEvent + .type rb 1 + .gain rb 1 + .state rb 1 + .pad0 rb 1 +ends + + +struct SDL_KeyboardEvent + .type rb 1 + .which rb 1 + .state rb 1 + .pad0 rb 1 + .keysym SDL_keysym +ends + + +struct SDL_MouseMotionEvent + .type rb 1 + .which rb 1 + .state rb 1 + .pad0 rb 1 + .x rw 1 + .y rw 1 + .xrel rw 1 + .yrel rw 1 +ends + + +struct SDL_MouseButtonEvent + .type rb 1 + .which rb 1 + .button rb 1 + .state rb 1 + .x rw 1 + .y rw 1 +ends + + +struct SDL_JoyAxisEvent + .type rb 1 + .which rb 1 + .axis rb 1 + .pad0 rb 1 + .value rw 1 +ends + + +struct SDL_JoyBallEvent + .type rb 1 + .which rb 1 + .ball rb 1 + .pad0 rb 1 + .xrel rw 1 + .yrel rw 1 +ends + + +struct SDL_JoyHatEvent + .type rb 1 + .which rb 1 + .hat rb 1 + .value rb 1 +ends + + +struct SDL_JoyButtonEvent + .type rb 1 + .which rb 1 + .button rb 1 + .state rb 1 +ends + + +struct SDL_ResizeEvent + .type rb 1 + .pad0 rb 3 + .w rd 1 + .h rd 1 +ends + + +struct SDL_ExposeEvent + .type rb 1 +ends + + +struct SDL_QuitEvent + .type rb 1 +ends + + +struct SDL_UserEvent + .type rb 1 + .pad0 rb 3 + .code rd 1 + .data1 rd 1 + .data2 rd 1 +ends + + +SDL_SysWMmsg equ SDL_SysWMmsg + +struct SDL_SysWMEvent + .type rb 1 + .pad0 rb 3 + .msg rd 1 +ends + + +struc SDL_Event +{ + virtual + .type rb 1 + end virtual + virtual + .active SDL_ActiveEvent + end virtual + virtual + .key SDL_KeyboardEvent + end virtual + virtual + .motion SDL_MouseMotionEvent + end virtual + virtual + .button SDL_MouseButtonEvent + end virtual + virtual + .jaxis SDL_JoyAxisEvent + end virtual + virtual + .jball SDL_JoyBallEvent + end virtual + virtual + .jhat SDL_JoyHatEvent + end virtual + virtual + .jbutton SDL_JoyButtonEvent + end virtual + virtual + .resize SDL_ResizeEvent + end virtual + virtual + .expose SDL_ExposeEvent + end virtual + virtual + .quit SDL_QuitEvent + end virtual + virtual + .user SDL_UserEvent + end virtual + .syswm SDL_SysWMEvent +} + +SDL_ADDEVENT = 0 +SDL_PEEKEVENT = 1 +SDL_GETEVENT = 2 +SDL_QUERY = -1 +SDL_IGNORE = 0 +SDL_DISABLE = 0 +SDL_ENABLE = 1 +SDL_HAT_CENTERED = 00h +SDL_HAT_UP = 01h +SDL_HAT_RIGHT = 02h +SDL_HAT_DOWN = 04h +SDL_HAT_LEFT = 08h + + + + +SDL_ALL_HOTKEYS = 0FFFFFFFFh +SDL_DEFAULT_REPEAT_DELAY = 500 +SDL_DEFAULT_REPEAT_INTERVAL = 30 + + +SDLK_UNKNOWN = 0 +SDLK_FIRST = 0 +SDLK_BACKSPACE = 8 +SDLK_TAB = 9 +SDLK_CLEAR = 12 +SDLK_RETURN = 13 +SDLK_PAUSE = 19 +SDLK_ESCAPE = 27 +SDLK_SPACE = 32 +SDLK_EXCLAIM = 33 +SDLK_QUOTEDBL = 34 +SDLK_HASH = 35 +SDLK_DOLLAR = 36 +SDLK_AMPERSAND = 38 +SDLK_QUOTE = 39 +SDLK_LEFTPAREN = 40 +SDLK_RIGHTPAREN = 41 +SDLK_ASTERISK = 42 +SDLK_PLUS = 43 +SDLK_COMMA = 44 +SDLK_MINUS = 45 +SDLK_PERIOD = 46 +SDLK_SLASH = 47 +SDLK_0 = 48 +SDLK_1 = 49 +SDLK_2 = 50 +SDLK_3 = 51 +SDLK_4 = 52 +SDLK_5 = 53 +SDLK_6 = 54 +SDLK_7 = 55 +SDLK_8 = 56 +SDLK_9 = 57 +SDLK_COLON = 58 +SDLK_SEMICOLON = 59 +SDLK_LESS = 60 +SDLK_EQUALS = 61 +SDLK_GREATER = 62 +SDLK_QUESTION = 63 +SDLK_AT = 64 +SDLK_LEFTBRACKET = 91 +SDLK_BACKSLASH = 92 +SDLK_RIGHTBRACKET = 93 +SDLK_CARET = 94 +SDLK_UNDERSCORE = 95 +SDLK_BACKQUOTE = 96 +SDLK_a = 97 +SDLK_b = 98 +SDLK_c = 99 +SDLK_d = 100 +SDLK_e = 101 +SDLK_f = 102 +SDLK_g = 103 +SDLK_h = 104 +SDLK_i = 105 +SDLK_j = 106 +SDLK_k = 107 +SDLK_l = 108 +SDLK_m = 109 +SDLK_n = 110 +SDLK_o = 111 +SDLK_p = 112 +SDLK_q = 113 +SDLK_r = 114 +SDLK_s = 115 +SDLK_t = 116 +SDLK_u = 117 +SDLK_v = 118 +SDLK_w = 119 +SDLK_x = 120 +SDLK_y = 121 +SDLK_z = 122 +SDLK_DELETE = 127 + +SDLK_WORLD_0 = 160 +SDLK_WORLD_1 = 161 +SDLK_WORLD_2 = 162 +SDLK_WORLD_3 = 163 +SDLK_WORLD_4 = 164 +SDLK_WORLD_5 = 165 +SDLK_WORLD_6 = 166 +SDLK_WORLD_7 = 167 +SDLK_WORLD_8 = 168 +SDLK_WORLD_9 = 169 +SDLK_WORLD_10 = 170 +SDLK_WORLD_11 = 171 +SDLK_WORLD_12 = 172 +SDLK_WORLD_13 = 173 +SDLK_WORLD_14 = 174 +SDLK_WORLD_15 = 175 +SDLK_WORLD_16 = 176 +SDLK_WORLD_17 = 177 +SDLK_WORLD_18 = 178 +SDLK_WORLD_19 = 179 +SDLK_WORLD_20 = 180 +SDLK_WORLD_21 = 181 +SDLK_WORLD_22 = 182 +SDLK_WORLD_23 = 183 +SDLK_WORLD_24 = 184 +SDLK_WORLD_25 = 185 +SDLK_WORLD_26 = 186 +SDLK_WORLD_27 = 187 +SDLK_WORLD_28 = 188 +SDLK_WORLD_29 = 189 +SDLK_WORLD_30 = 190 +SDLK_WORLD_31 = 191 +SDLK_WORLD_32 = 192 +SDLK_WORLD_33 = 193 +SDLK_WORLD_34 = 194 +SDLK_WORLD_35 = 195 +SDLK_WORLD_36 = 196 +SDLK_WORLD_37 = 197 +SDLK_WORLD_38 = 198 +SDLK_WORLD_39 = 199 +SDLK_WORLD_40 = 200 +SDLK_WORLD_41 = 201 +SDLK_WORLD_42 = 202 +SDLK_WORLD_43 = 203 +SDLK_WORLD_44 = 204 +SDLK_WORLD_45 = 205 +SDLK_WORLD_46 = 206 +SDLK_WORLD_47 = 207 +SDLK_WORLD_48 = 208 +SDLK_WORLD_49 = 209 +SDLK_WORLD_50 = 210 +SDLK_WORLD_51 = 211 +SDLK_WORLD_52 = 212 +SDLK_WORLD_53 = 213 +SDLK_WORLD_54 = 214 +SDLK_WORLD_55 = 215 +SDLK_WORLD_56 = 216 +SDLK_WORLD_57 = 217 +SDLK_WORLD_58 = 218 +SDLK_WORLD_59 = 219 +SDLK_WORLD_60 = 220 +SDLK_WORLD_61 = 221 +SDLK_WORLD_62 = 222 +SDLK_WORLD_63 = 223 +SDLK_WORLD_64 = 224 +SDLK_WORLD_65 = 225 +SDLK_WORLD_66 = 226 +SDLK_WORLD_67 = 227 +SDLK_WORLD_68 = 228 +SDLK_WORLD_69 = 229 +SDLK_WORLD_70 = 230 +SDLK_WORLD_71 = 231 +SDLK_WORLD_72 = 232 +SDLK_WORLD_73 = 233 +SDLK_WORLD_74 = 234 +SDLK_WORLD_75 = 235 +SDLK_WORLD_76 = 236 +SDLK_WORLD_77 = 237 +SDLK_WORLD_78 = 238 +SDLK_WORLD_79 = 239 +SDLK_WORLD_80 = 240 +SDLK_WORLD_81 = 241 +SDLK_WORLD_82 = 242 +SDLK_WORLD_83 = 243 +SDLK_WORLD_84 = 244 +SDLK_WORLD_85 = 245 +SDLK_WORLD_86 = 246 +SDLK_WORLD_87 = 247 +SDLK_WORLD_88 = 248 +SDLK_WORLD_89 = 249 +SDLK_WORLD_90 = 250 +SDLK_WORLD_91 = 251 +SDLK_WORLD_92 = 252 +SDLK_WORLD_93 = 253 +SDLK_WORLD_94 = 254 +SDLK_WORLD_95 = 255 +SDLK_KP0 = 256 +SDLK_KP1 = 257 +SDLK_KP2 = 258 +SDLK_KP3 = 259 +SDLK_KP4 = 260 +SDLK_KP5 = 261 +SDLK_KP6 = 262 +SDLK_KP7 = 263 +SDLK_KP8 = 264 +SDLK_KP9 = 265 +SDLK_KP_PERIOD = 266 +SDLK_KP_DIVIDE = 267 +SDLK_KP_MULTIPLY = 268 +SDLK_KP_MINUS = 269 +SDLK_KP_PLUS = 270 +SDLK_KP_ENTER = 271 +SDLK_KP_EQUALS = 272 +SDLK_UP = 273 +SDLK_DOWN = 274 +SDLK_RIGHT = 275 +SDLK_LEFT = 276 +SDLK_INSERT = 277 +SDLK_HOME = 278 +SDLK_END = 279 +SDLK_PAGEUP = 280 +SDLK_PAGEDOWN = 281 +SDLK_F1 = 282 +SDLK_F2 = 283 +SDLK_F3 = 284 +SDLK_F4 = 285 +SDLK_F5 = 286 +SDLK_F6 = 287 +SDLK_F7 = 288 +SDLK_F8 = 289 +SDLK_F9 = 290 +SDLK_F10 = 291 +SDLK_F11 = 292 +SDLK_F12 = 293 +SDLK_F13 = 294 +SDLK_F14 = 295 +SDLK_F15 = 296 +SDLK_NUMLOCK = 300 +SDLK_CAPSLOCK = 301 +SDLK_SCROLLOCK = 302 +SDLK_RSHIFT = 303 +SDLK_LSHIFT = 304 +SDLK_RCTRL = 305 +SDLK_LCTRL = 306 +SDLK_RALT = 307 +SDLK_LALT = 308 +SDLK_RMETA = 309 +SDLK_LMETA = 310 +SDLK_LSUPER = 311 +SDLK_RSUPER = 312 +SDLK_MODE = 313 +SDLK_COMPOSE = 314 +SDLK_HELP = 315 +SDLK_PRINT = 316 +SDLK_SYSREQ = 317 +SDLK_BREAK = 318 +SDLK_MENU = 319 +SDLK_POWER = 320 +SDLK_EURO = 321 +SDLK_UNDO = 322 +SDLK_LAST = 324 +KMOD_NONE = 0000h +KMOD_LSHIFT = 0001h +KMOD_RSHIFT = 0002h +KMOD_LCTRL = 0040h +KMOD_RCTRL = 0080h +KMOD_LALT = 0100h +KMOD_RALT = 0200h +KMOD_LMETA = 0400h +KMOD_RMETA = 0800h +KMOD_NUM = 1000h +KMOD_CAPS = 2000h +KMOD_MODE = 4000h +KMOD_RESERVED = 8000h + +KMOD_CTRL = 00C0h +KMOD_SHIFT = 0003h +KMOD_ALT = 0300h +KMOD_META = 0C00h + +WMcursor equ WMcursor + +struct SDL_Rect + .x rw 1 + .y rw 1 + .w rw 1 + .h rw 1 +ends + +struct SDL_Cursor + .area SDL_Rect + .hot_x rw 1 + .hot_y rw 1 + .data rd 1 + .mask rd 1 + .save rd 2 + .wm_cursor rd 1 +ends + +SDL_BUTTON_LEFT = 1 +SDL_BUTTON_MIDDLE = 2 +SDL_BUTTON_RIGHT = 3 +SDL_BUTTON_WHEELUP = 4 +SDL_BUTTON_WHEELDOWN = 5 + +SDL_BUTTON_LMASK = 1 +SDL_BUTTON_MMASK = 2 +SDL_BUTTON_RMASK = 4 + +SDL_MUTEX_TIMEDOUT = 1 + + +RW_SEEK_SET = 0 +RW_SEEK_CUR = 1 +RW_SEEK_END = 2 + + +struct SDL_RWops + .seek rd 1 + .read rd 1 + .write rd 1 + .close rd 1 + .type rd 1 + .append rd 1 + .h rd 1 +ends + +SDL_MAJOR_VERSION = 1 +SDL_MINOR_VERSION = 2 +SDL_PATCHLEVEL = 11 + +struct SDL_version + .major rb 1 + .minor rb 1 + .patch rb 1 + .pad0 rb 1 +ends + + +SDL_ALPHA_OPAQUE = 255 +SDL_ALPHA_TRANSPARENT = 0 + +struct SDL_Color + .r rb 1 + .g rb 1 + .b rb 1 + .unused rb 1 +ends + +SDL_Colour equ SDL_Color +struct SDL_Palette + .ncolors rd 1 + .colors rd 1 +ends + + +struct SDL_PixelFormat + .palette rd 1 + .BitsPerPixel rb 1 + .BytesPerPixel rb 1 + .Rloss rb 1 + .Gloss rb 1 + .Bloss rb 1 + .Aloss rb 1 + .Rshift rb 1 + .Gshift rb 1 + .Bshift rb 1 + .Ashift rb 1 + .pad0 rb 2 + .Rmask rd 1 + .Gmask rd 1 + .Bmask rd 1 + .Amask rd 1 + .colorkey rd 1 + .alpha rb 1 + .pad1 rb 3 +ends + +struct SDL_Surface + .flags rd 1 + .format rd 1 + .w rd 1 + .h rd 1 + .pitch rw 1 + .pad0 rb 2 + .pixels rd 1 + .offset rd 1 + .hwdata rd 1 + .clip_rect SDL_Rect + .unused1 rd 1 + .locked rd 1 + .map rd 1 + .format_version rd 1 + .refcount rd 1 +ends + + +SDL_SWSURFACE = 00000000h +SDL_HWSURFACE = 00000001h +SDL_ASYNCBLIT = 00000004h +SDL_ANYFORMAT = 10000000h +SDL_HWPALETTE = 20000000h +SDL_DOUBLEBUF = 40000000h +SDL_FULLSCREEN = 80000000h +SDL_OPENGL = 00000002h +SDL_OPENGLBLIT = 0000000Ah +SDL_RESIZABLE = 00000010h +SDL_NOFRAME = 00000020h +SDL_HWACCEL = 00000100h +SDL_SRCCOLORKEY = 00001000h +SDL_RLEACCELOK = 00002000h +SDL_RLEACCEL = 00004000h +SDL_SRCALPHA = 00010000h +SDL_PREALLOC = 01000000h +SDL_YV12_OVERLAY = 32315659h +SDL_IYUV_OVERLAY = 56555949h +SDL_YUY2_OVERLAY = 32595559h +SDL_UYVY_OVERLAY = 59565955h +SDL_YVYU_OVERLAY = 55595659h + +struct SDL_Overlay + .format rd 1 + .w rd 1 + .h rd 1 + .planes rd 1 + .pitches rd 1 + .pixels rd 1 + .hwfuncs rd 1 + .hwdata rd 1 + .hw_overlay rd 1 + .UnusedBits rd 1 +ends + + +SDL_GL_RED_SIZE = 0 +SDL_GL_GREEN_SIZE = 1 +SDL_GL_BLUE_SIZE = 2 +SDL_GL_ALPHA_SIZE = 3 +SDL_GL_BUFFER_SIZE = 4 +SDL_GL_DOUBLEBUFFER = 5 +SDL_GL_DEPTH_SIZE = 6 +SDL_GL_STENCIL_SIZE = 7 +SDL_GL_ACCUM_RED_SIZE = 8 +SDL_GL_ACCUM_GREEN_SIZE = 9 +SDL_GL_ACCUM_BLUE_SIZE = 10 +SDL_GL_ACCUM_ALPHA_SIZE = 11 +SDL_GL_STEREO = 12 +SDL_GL_MULTISAMPLEBUFFERS = 13 +SDL_GL_MULTISAMPLESAMPLES = 14 +SDL_GL_ACCELERATED_VISUAL = 15 +SDL_GL_SWAP_CONTROL = 16 +SDL_LOGPAL = 01h +SDL_PHYSPAL = 02h + +SDL_GRAB_QUERY = -1 +SDL_GRAB_OFF = 0 +SDL_GRAB_ON = 1 +SDL_GRAB_FULLSCREEN = 2 + +macro SDL_MUSTLOCK reg, surfaceptr +{ + local surface + + if reg in <eax,ebx,ecx,edx,esi,edi> + virtual at surfaceptr + surface SDL_Surface + end virtual + mov reg, [surface.flags] + and reg, SDL_HWSURFACE or SDL_ASYNCBLIT or SDL_RLEACCEL + or reg, [surface.offset] + test reg, reg + else + display 'SDL_MUSTLOCK error' + error + end if + +} Index: freshlib/equates/_sqlite3.inc ================================================================== --- freshlib/equates/_sqlite3.inc +++ freshlib/equates/_sqlite3.inc @@ -1,5 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SQLite equates definitions. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + ; SQLite result codes SQLITE_OK = 0 ; Successful result SQLITE_ERROR = 1 ; SQL error or missing database SQLITE_INTERNAL = 2 ; An internal logic error in SQLite @@ -22,12 +36,78 @@ SQLITE_CONSTRAINT = 19 ; Abort due to constraint violation SQLITE_MISMATCH = 20 ; Data type mismatch SQLITE_MISUSE = 21 ; Library used incorrectly SQLITE_NOLFS = 22 ; Uses OS features not supported on host SQLITE_AUTH = 23 ; Authorization denied +SQLITE_FORMAT = 24 ; Auxiliary database format error +SQLITE_RANGE = 25 ; 2nd parameter to sqlite3_bind out of range +SQLITE_NOTADB = 26 ; File opened that is not a database file +SQLITE_NOTICE = 27 ; Notifications from sqlite3_log() +SQLITE_WARNING = 28 ; Warnings from sqlite3_log() SQLITE_ROW = 100 ; sqlite_step() has another row ready SQLITE_DONE = 101 ; sqlite_step() has finished executing + + +; SQLite extended result codes. + +SQLITE_IOERR_READ = SQLITE_IOERR or (1 shl 8) +SQLITE_IOERR_SHORT_READ = SQLITE_IOERR or (2 shl 8) +SQLITE_IOERR_WRITE = SQLITE_IOERR or (3 shl 8) +SQLITE_IOERR_FSYNC = SQLITE_IOERR or (4 shl 8) +SQLITE_IOERR_DIR_FSYNC = SQLITE_IOERR or (5 shl 8) +SQLITE_IOERR_TRUNCATE = SQLITE_IOERR or (6 shl 8) +SQLITE_IOERR_FSTAT = SQLITE_IOERR or (7 shl 8) +SQLITE_IOERR_UNLOCK = SQLITE_IOERR or (8 shl 8) +SQLITE_IOERR_RDLOCK = SQLITE_IOERR or (9 shl 8) +SQLITE_IOERR_DELETE = SQLITE_IOERR or (10 shl 8) +SQLITE_IOERR_BLOCKED = SQLITE_IOERR or (11 shl 8) +SQLITE_IOERR_NOMEM = SQLITE_IOERR or (12 shl 8) +SQLITE_IOERR_ACCESS = SQLITE_IOERR or (13 shl 8) +SQLITE_IOERR_CHECKRESERVEDLOCK = SQLITE_IOERR or (14 shl 8) +SQLITE_IOERR_LOCK = SQLITE_IOERR or (15 shl 8) +SQLITE_IOERR_CLOSE = SQLITE_IOERR or (16 shl 8) +SQLITE_IOERR_DIR_CLOSE = SQLITE_IOERR or (17 shl 8) +SQLITE_IOERR_SHMOPEN = SQLITE_IOERR or (18 shl 8) +SQLITE_IOERR_SHMSIZE = SQLITE_IOERR or (19 shl 8) +SQLITE_IOERR_SHMLOCK = SQLITE_IOERR or (20 shl 8) +SQLITE_IOERR_SHMMAP = SQLITE_IOERR or (21 shl 8) +SQLITE_IOERR_SEEK = SQLITE_IOERR or (22 shl 8) +SQLITE_IOERR_DELETE_NOENT = SQLITE_IOERR or (23 shl 8) +SQLITE_IOERR_MMAP = SQLITE_IOERR or (24 shl 8) +SQLITE_IOERR_GETTEMPPATH = SQLITE_IOERR or (25 shl 8) +SQLITE_IOERR_CONVPATH = SQLITE_IOERR or (26 shl 8) +SQLITE_IOERR_VNODE = SQLITE_IOERR or (27 shl 8) +SQLITE_IOERR_AUTH = SQLITE_IOERR or (28 shl 8) +SQLITE_LOCKED_SHAREDCACHE = SQLITE_LOCKED or (1 shl 8) +SQLITE_BUSY_RECOVERY = SQLITE_BUSY or (1 shl 8) +SQLITE_BUSY_SNAPSHOT = SQLITE_BUSY or (2 shl 8) +SQLITE_CANTOPEN_NOTEMPDIR = SQLITE_CANTOPEN or (1 shl 8) +SQLITE_CANTOPEN_ISDIR = SQLITE_CANTOPEN or (2 shl 8) +SQLITE_CANTOPEN_FULLPATH = SQLITE_CANTOPEN or (3 shl 8) +SQLITE_CANTOPEN_CONVPATH = SQLITE_CANTOPEN or (4 shl 8) +SQLITE_CORRUPT_VTAB = SQLITE_CORRUPT or (1 shl 8) +SQLITE_READONLY_RECOVERY = SQLITE_READONLY or (1 shl 8) +SQLITE_READONLY_CANTLOCK = SQLITE_READONLY or (2 shl 8) +SQLITE_READONLY_ROLLBACK = SQLITE_READONLY or (3 shl 8) +SQLITE_READONLY_DBMOVED = SQLITE_READONLY or (4 shl 8) +SQLITE_ABORT_ROLLBACK = SQLITE_ABORT or (2 shl 8) +SQLITE_CONSTRAINT_CHECK = SQLITE_CONSTRAINT or (1 shl 8) +SQLITE_CONSTRAINT_COMMITHOOK = SQLITE_CONSTRAINT or (2 shl 8) +SQLITE_CONSTRAINT_FOREIGNKEY = SQLITE_CONSTRAINT or (3 shl 8) +SQLITE_CONSTRAINT_FUNCTION = SQLITE_CONSTRAINT or (4 shl 8) +SQLITE_CONSTRAINT_NOTNULL = SQLITE_CONSTRAINT or (5 shl 8) +SQLITE_CONSTRAINT_PRIMARYKEY = SQLITE_CONSTRAINT or (6 shl 8) +SQLITE_CONSTRAINT_TRIGGER = SQLITE_CONSTRAINT or (7 shl 8) +SQLITE_CONSTRAINT_UNIQUE = SQLITE_CONSTRAINT or (8 shl 8) +SQLITE_CONSTRAINT_VTAB = SQLITE_CONSTRAINT or (9 shl 8) +SQLITE_CONSTRAINT_ROWID = SQLITE_CONSTRAINT or (10 shl 8) +SQLITE_NOTICE_RECOVER_WAL = SQLITE_NOTICE or (1 shl 8) +SQLITE_NOTICE_RECOVER_ROLLBACK = SQLITE_NOTICE or (2 shl 8) +SQLITE_WARNING_AUTOINDEX = SQLITE_WARNING or (1 shl 8) +SQLITE_AUTH_USER = SQLITE_AUTH or (1 shl 8) + + SQLITE_CREATE_INDEX = 1 ; // Index Name Table Name */ SQLITE_CREATE_TABLE = 2 ; // Table Name NULL */ SQLITE_CREATE_TEMP_INDEX = 3 ; // Index Name Table Name */ @@ -64,10 +144,12 @@ SQLITE_UTF8 = 1 SQLITE_UTF16LE = 2 SQLITE_UTF16BE = 3 SQLITE_UTF16 = 4 ; Use native byte order SQLITE_ANY = 5 + +SQLITE_DETERMINISTIC = $800 ; values returned by sqliteColumnType SQLITE_INTEGER = 1 SQLITE_FLOAT = 2 SQLITE_TEXT = 3 @@ -74,6 +156,57 @@ SQLITE_BLOB = 4 SQLITE_NULL = 5 SQLITE_STATIC = 0 -SQLITE_TRANSIENT = -1 +SQLITE_TRANSIENT = -1 + + + +; SQLITE configuration parameters + +SQLITE_CONFIG_SINGLETHREAD = 1 ; nil +SQLITE_CONFIG_MULTITHREAD = 2 ; nil +SQLITE_CONFIG_SERIALIZED = 3 ; nil +SQLITE_CONFIG_MALLOC = 4 ; sqlite3_mem_methods* +SQLITE_CONFIG_GETMALLOC = 5 ; sqlite3_mem_methods* +SQLITE_CONFIG_SCRATCH = 6 ; void*, int sz, int N +SQLITE_CONFIG_PAGECACHE = 7 ; void*, int sz, int N +SQLITE_CONFIG_HEAP = 8 ; void*, int nByte, int min +SQLITE_CONFIG_MEMSTATUS = 9 ; boolean +SQLITE_CONFIG_MUTEX = 10 ; sqlite3_mutex_methods* +SQLITE_CONFIG_GETMUTEX = 11 ; sqlite3_mutex_methods* + + +; SQLite open_v2 flags: + +SQLITE_OPEN_READONLY = $00000001 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_READWRITE = $00000002 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_CREATE = $00000004 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_DELETEONCLOSE = $00000008 ; VFS only +SQLITE_OPEN_EXCLUSIVE = $00000010 ; VFS only +SQLITE_OPEN_AUTOPROXY = $00000020 ; VFS only +SQLITE_OPEN_URI = $00000040 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_MEMORY = $00000080 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_MAIN_DB = $00000100 ; VFS only +SQLITE_OPEN_TEMP_DB = $00000200 ; VFS only +SQLITE_OPEN_TRANSIENT_DB = $00000400 ; VFS only +SQLITE_OPEN_MAIN_JOURNAL = $00000800 ; VFS only +SQLITE_OPEN_TEMP_JOURNAL = $00001000 ; VFS only +SQLITE_OPEN_SUBJOURNAL = $00002000 ; VFS only +SQLITE_OPEN_MASTER_JOURNAL = $00004000 ; VFS only +SQLITE_OPEN_NOMUTEX = $00008000 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_FULLMUTEX = $00010000 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_SHAREDCACHE = $00020000 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_PRIVATECACHE = $00040000 ; Ok for sqlite3_open_v2() +SQLITE_OPEN_WAL = $00080000 ; VFS only + + +; These constants define all valid values for the "checkpoint mode" passed +; as the third parameter to the [sqlite3_wal_checkpoint_v2()] interface. +; See the sqlite3_wal_checkpoint_v2() documentation for details on the +; meaning of each of these checkpoint modes. + +SQLITE_CHECKPOINT_PASSIVE = 0 ; Do as much as possible w/o blocking +SQLITE_CHECKPOINT_FULL = 1 ; Wait for writers, then checkpoint +SQLITE_CHECKPOINT_RESTART = 2 ; Like FULL but wait for readers +SQLITE_CHECKPOINT_TRUNCATE = 3 ; Like RESTART but also truncate WAL Index: freshlib/equates/_zlib1.inc ================================================================== --- freshlib/equates/_zlib1.inc +++ freshlib/equates/_zlib1.inc @@ -1,5 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Constants and structures definitions for ZLIB library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + ; zlib.h -- interface of the 'zlib' general purpose compression library ; version 1.2.3, July 18th, 2005 ; ; Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler ; @@ -41,29 +55,29 @@ ZLIB_VERNUM = $1230 struct z_stream - ptrNextIn dd ? ; next input byte - AvailIn dd ? ; number of bytes available at next_in - TotalIn dd ? ; total nb of input bytes read so far - - ptrNextOut dd ? ; next output byte should be put there - AvailOut dd ? ; remaining free space at next_out - TotalOut dd ? ; total nb of bytes output so far - - ptrMsg dd ? ; last error message, NULL if no error - - ptrState dd ? ; not visible by applications - - zalloc dd ? ; used to allocate the internal state - zfree dd ? ; used to free the internal state - opaque dd ? ; private data object passed to zalloc and zfree - - data_type dd ? ; best guess about the data type: binary or text - adler dd ? ; adler32 value of the uncompressed data - reserved dd ? ; reserved for future use + .ptrNextIn dd ? ; next input byte + .AvailIn dd ? ; number of bytes available at next_in + .TotalIn dd ? ; total nb of input bytes read so far + + .ptrNextOut dd ? ; next output byte should be put there + .AvailOut dd ? ; remaining free space at next_out + .TotalOut dd ? ; total nb of bytes output so far + + .ptrMsg dd ? ; last error message, NULL if no error + + .ptrState dd ? ; not visible by applications + + .zalloc dd ? ; used to allocate the internal state + .zfree dd ? ; used to free the internal state + .opaque dd ? ; private data object passed to zalloc and zfree + + .data_type dd ? ; best guess about the data type: binary or text + .adler dd ? ; adler32 value of the uncompressed data + .reserved dd ? ; reserved for future use ends ; constants Index: freshlib/equates/allequates.inc ================================================================== --- freshlib/equates/allequates.inc +++ freshlib/equates/allequates.inc @@ -1,10 +1,37 @@ -; Win32 programming constants +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all equates. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; Very generic constants! + TRUE = 1 FALSE = 0 NULL = 0 + +regEDI = 0 +regESI = 1 +regEBP = 2 +regESP = 3 +regEBX = 4 +regEDX = 5 +regECX = 6 +regEAX = 7 + + include '%TargetOS%/allequates.inc' include '_sqlite3.inc' -include '_zlib1.inc' +include '_zlib1.inc' +include '_sdl.inc' ADDED freshlib/freshlib.asm Index: freshlib/freshlib.asm ================================================================== --- /dev/null +++ freshlib/freshlib.asm @@ -0,0 +1,23 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: FreshLib amalgamation include file for the library code. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +include 'simpledebug/debug.asm' + +include 'system/all.asm' +include 'data/all.asm' + +match =GUI, LIB_MODE { + include 'graphics/all.asm' + include 'gui/all.asm' +} ADDED freshlib/freshlib.inc Index: freshlib/freshlib.inc ================================================================== --- /dev/null +++ freshlib/freshlib.inc @@ -0,0 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: FreshLib amalgamation include file for the non code definitions. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +LIB_MODE equ GUI + +include 'macros/allmacros.inc' +include 'equates/allequates.inc' + ADDED freshlib/graphics/Dummy/draw.asm Index: freshlib/graphics/Dummy/draw.asm ================================================================== --- /dev/null +++ freshlib/graphics/Dummy/draw.asm @@ -0,0 +1,46 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Draw library contains procedures for drawing oprtations. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +lsEndCapRound = 0 +lsEndCapSquare = 0 +lsEndCapFlat = 0 + +lsJoinRound = 0 +lsJoinBevel = 0 +lsJoinMiter = 0 + + + +proc DrawLine, .context, .x1, .y1, .x2, .y2 +begin + return +endp + + + + +proc DrawFillRect, .context, .x, .y, .width, .height, .color +begin + return +endp + + + + + +proc Draw, .raster, .pDrawPoints +begin + return +endp + ADDED freshlib/graphics/Dummy/fonts.asm Index: freshlib/graphics/Dummy/fonts.asm ================================================================== --- /dev/null +++ freshlib/graphics/Dummy/fonts.asm @@ -0,0 +1,26 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Fonts managing library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +proc FontCreate, .fontface, .size, .weight, .flags +begin + stc + return +endp + + +proc FontDestroy, .font +begin + return +endp ADDED freshlib/graphics/Dummy/images.asm Index: freshlib/graphics/Dummy/images.asm ================================================================== --- /dev/null +++ freshlib/graphics/Dummy/images.asm @@ -0,0 +1,36 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Memory based images manipulation library. +; +; Target OS: Dummy +; +; Dependencies: memory.asm +; +; Notes: +;_________________________________________________________________________________________ + + +; only 16, 24 and 32 bpp are supported. +; It is stupid to support palleted modes and even 24bpp is not good... +body CreateImage +begin + stc + return +endp + + +body DestroyImage +begin + return +endp + + + +body DrawImage +begin + return +endp + ADDED freshlib/graphics/Dummy/text.asm Index: freshlib/graphics/Dummy/text.asm ================================================================== --- /dev/null +++ freshlib/graphics/Dummy/text.asm @@ -0,0 +1,55 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Text drawing library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + +proc DrawString, .context, .ptrString, .len, .x, .y, .font, .color +begin + return +endp + + + +proc DrawStringOpaque, .context, .ptrString, .len, .x, .y, .font, .color, .background +begin + return +endp + + + + +proc DrawColoredString, .context, .ptrString, .pCharAttr, .str_len_bytes, .x, .y, .char_offs, .fontwidth, .fontheight +begin + return +endp + + + + + + +proc GetTextBounds, .context, .ptrString, .len, .font +begin + return +endp + + +; returns: +; eax - x offset of the baseline of the string. +; edx - y offset of the baseline of the string. + +proc GetTextOffset, .context, .ptrString, .len, .font +begin + return +endp ADDED freshlib/graphics/KolibriOS/draw.asm Index: freshlib/graphics/KolibriOS/draw.asm ================================================================== --- /dev/null +++ freshlib/graphics/KolibriOS/draw.asm @@ -0,0 +1,54 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Draw library contains procedures for drawing oprtations. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +lsEndCapRound = 0 +lsEndCapSquare = 0 +lsEndCapFlat = 0 + +lsJoinRound = 0 +lsJoinBevel = 0 +lsJoinMiter = 0 + + + +proc DrawLine, .context, .x1, .y1, .x2, .y2 +begin + mov ebx, [.x1] + mov ecx, [.y1] + shl ebx, 16 + shl ecx, 16 + mov bx, word [.x2] + mov cx, word [.y2] + mov edx, [.context] + mov edx, [edx+TContext.drawmode] + return +endp + + + + +proc DrawFillRect, .context, .x, .y, .width, .height, .color +begin + return +endp + + + + + +proc Draw, .raster, .pDrawPoints +begin + return +endp + ADDED freshlib/graphics/KolibriOS/fonts.asm Index: freshlib/graphics/KolibriOS/fonts.asm ================================================================== --- /dev/null +++ freshlib/graphics/KolibriOS/fonts.asm @@ -0,0 +1,54 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Fonts managing library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + +; needed for FreeType support. + +proc FTCRequester as FT_Face_Requester +begin + + + + return +endp + + + + + +body FontCreate +begin + + return +endp + + + + +body FontDestroy +begin + + return +endp + + + + + +body GetFontMetrics +begin + + return +endp ADDED freshlib/graphics/KolibriOS/images.asm Index: freshlib/graphics/KolibriOS/images.asm ================================================================== --- /dev/null +++ freshlib/graphics/KolibriOS/images.asm @@ -0,0 +1,102 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Memory based images manipulation library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + + +body CreateImage +begin + pushad + + stdcall GetMem, sizeof.TImage + jc .finish + mov esi, eax + + xor eax, eax + xor ebx, ebx + inc eax + + mov ecx, [.width] + mov edx, [.height] + + cmp ecx, ebx + cmovle ecx, eax + + cmp edx, ebx + cmovle edx, eax + + mov [esi+TImage.width], ecx + mov [esi+TImage.height], edx + + mov [esi+TImage.orgX], ebx + mov [esi+TImage.orgY], ebx + mov [esi+TImage.wrapW], ecx + mov [esi+TImage.wrapH], edx + + lea eax, [4*ecx] + imul eax, edx + + stdcall GetMem, eax + jc .error + + mov [esi+TImage.pPixels], eax + + mov [esp+4*regEAX], esi + + lea esi, [esi+TImage.lock] + stdcall MutexCreate, 0, esi + stdcall MutexRelease, esi + + clc + +.finish: + popad + return + +.error: + stdcall FreeMem, esi + stc + jmp .finish +endp + + +body DestroyImage +begin + pushad + + mov esi, [.ptrImage] + test esi, esi + jz .finish + + stdcall FreeMem, [esi+TImage.pPixels] + + lea edi, [esi+TImage.lock] + stdcall MutexDestroy, edi + stdcall FreeMem, esi + +.finish: + popad + return +endp + + + + + + +body DrawImageRect +begin + return +endp + ADDED freshlib/graphics/KolibriOS/text.asm Index: freshlib/graphics/KolibriOS/text.asm ================================================================== --- /dev/null +++ freshlib/graphics/KolibriOS/text.asm @@ -0,0 +1,888 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Text drawing library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +iglobal + var flagFreeTypeLoadFlags = FT_LOAD_RENDER or FT_LOAD_TARGET_LCD or FT_LOAD_NO_AUTOHINT or FT_LOAD_COLOR +endg + + +uglobal + var FTC_CMapCache_Lookup = 0 + var FTC_ImageCache_LookupScaler = 0 + +endg + + + +body DrawDecomposedString ;, .pImage, .pArray, .x, .y, .font, .color +.scaler FTC_ScalerRec +.glyph dd ? + +.startX dd ? +begin + pushad + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + mov eax, [.x] + mov [.startX], eax + + mov esi, [.pArray] + xor edi, edi + dec edi + +.char_loop: + inc edi + cmp edi, [esi+TArray.count] + jae .finish + + cmp word [esi+TArray.array+8*edi+TTextChar.width], 0 + je .char_ok + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, [esi+TArray.array+8*edi+TTextChar.code] + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [flagFreeTypeLoadFlags], eax, edx, 0 + + test eax, eax + jnz .char_ok + + mov ebx, [.glyph] + mov ecx, [.x] + mov edx, [.y] + + add ecx, [ebx+FT_BitmapGlyphRec.left] + sub edx, [ebx+FT_BitmapGlyphRec.top] + + lea eax, [ebx+FT_BitmapGlyphRec.bitmap] + stdcall __DrawGlyph, [.pImage], eax, ecx, edx, [.color] + + movzx eax, word [esi+TArray.array+8*edi+TTextChar.width] + add [.x], eax + +.char_ok: +; check for new line. + movzx eax, word [esi+TArray.array+8*edi+TTextChar.height] + test eax, eax + jz .char_loop + + add [.y], eax + mov eax, [.startX] + mov [.x], eax + jmp .char_loop + + +.finish: + popad + return +endp + + + + +; Draws the string on the image using the specified font and color. +; The string is drawn in one line. The control symbols are not +; processed. The tabs are not expanded or replaced with spaces. +; +; Arguments: +; .pImage - pointer to the image where to draw the text. +; .pString - pointer to a UTF-8 string. +; .len - how many bytes from the string to be drawn. If -1, the whole string will be drawn. +; .x - X coordinate, where to start drawing. +; .y - Y coordinate of the baseline where to draw the string. +; .font - the font to be used. +; .color - ARGB color to draw the glyphs. +; +;;;;;;;; Returns: +;;;;;;;; EAX - the width of the string in pixels. +;;;;;;;; EBX - the ascender of the string. It is negative. +;;;;;;;; EDX - the height of the string in pixels. + + +body DrawString ;, .pImage, .pString, .len, .x, .y, .font, .color + +.scaler FTC_ScalerRec +.glyph dd ? + +.miny dd ? +.maxy dd ? +.startX dd ? + +begin + pushad + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + ror ecx, 1 ; ecx = $80000000 + mov [.maxy], ecx + dec ecx + mov [.miny], ecx ; ecx = $7fffffff + + mov eax, [.x] + mov [.startX], eax + + mov esi, [.pString] + +.char_loop: + + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + + sub [.len], edx + jb .finish + + test eax, eax + jz .finish + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [flagFreeTypeLoadFlags], eax, edx, 0 + + test eax, eax + jnz .char_loop + + mov ebx, [.glyph] + + mov ecx, [.x] + mov edx, [.y] + + add ecx, [ebx+FT_BitmapGlyphRec.left] + sub edx, [ebx+FT_BitmapGlyphRec.top] + + cmp edx, [.miny] + jge @f + mov [.miny], edx +@@: + mov eax, edx + add eax, [ebx+FT_BitmapGlyphRec.bitmap.rows] + cmp eax, [.maxy] + jle @f + mov [.maxy], eax +@@: + lea eax, [ebx+FT_BitmapGlyphRec.bitmap] + stdcall __DrawGlyph, [.pImage], eax, ecx, edx, [.color] + + mov eax, [ebx+FT_BitmapGlyphRec.root.advance.x] + sar eax, 16 ; format 16.16 fixed decimal point. + add [.x], eax + + jmp .char_loop + + +.finish: +; mov eax, [.x] +; mov edx, [.maxy] +; mov ebx, [.miny] +; sub eax, [.startX] +; sub edx, ebx +; sub ebx, [.y] + +; mov [esp+4*regEAX], eax +; mov [esp+4*regEBX], ebx +; mov [esp+4*regEDX], edx + + popad + return +endp + + + +; returns: +; EAX - array with decomposed string. +; EDX - maximal bearing_Y of the string. +; ECX - maximal descender of the string. + +body TextDecompose ;, .hString, .font + + .scaler FTC_ScalerRec + .glyph dd ? + + .miny dd ? + .maxy dd ? + +begin + pushad + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + ror ecx, 1 ; ecx = $80000000 + mov [.maxy], ecx + dec ecx + mov [.miny], ecx ; ecx = $7fffffff + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall CreateArray, sizeof.TTextChar + mov edi, eax + +.char_loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + mov ebx, eax + + test eax, eax + jz .end + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [flagFreeTypeLoadFlags], eax, edx, 0 + + xor ecx, ecx + + test eax, eax + jnz .glyph_size_ok ; zero width glyph ???? + + mov ecx, [.glyph] + + mov eax, [ecx+FT_BitmapGlyphRec.top] + neg eax + + cmp eax, [.miny] + jge @f + mov [.miny], eax +@@: + + add eax, [ecx+FT_BitmapGlyphRec.bitmap.rows] + cmp eax, [.maxy] + jle @f + mov [.maxy], eax +@@: + mov ecx, [ecx+FT_BitmapGlyphRec.root.advance.x] ; format 16.16 fixed decimal point. + sar ecx, 16 ; format 16.16 + + +.glyph_size_ok: + + stdcall AddArrayItems, edi, 1 + mov edi, edx + mov dword [eax+TTextChar.width], ecx + mov [eax+TTextChar.code], ebx + jmp .char_loop + +.end: + clc + +.finish: + mov [esp+4*regEAX], edi + + mov eax, [.miny] + neg eax + mov ecx, [.maxy] + + mov [esp+4*regEDX], eax + mov [esp+4*regECX], ecx + + add ecx, eax + mov [edi+TArray.lparam], ecx + + popad + return +endp + + + +; Returns an array with the widths from the begining of the text to the every character inside the string. + + +proc GetTextWidthsArray, .hString, .font + + .scaler FTC_ScalerRec + .glyph dd ? + + .x dd ? + +begin + pushad + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall CreateArray, 4 + mov edi, eax + + xor ebx, ebx + +.char_loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + test eax, eax + jz .end + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [flagFreeTypeLoadFlags], eax, edx, 0 + + test eax, eax + jnz .glyph_size_ok ; zero width glyph ???? + + + mov ecx, [.glyph] + mov ecx, [ecx+FT_BitmapGlyphRec.root.advance.x] ; format 16.16 fixed decimal point. + + add ebx, ecx + + +.glyph_size_ok: + + stdcall AddArrayItems, edi, 1 + mov edi, edx + + mov edx, ebx + sar edx, 16 ; format 16.16 + mov [eax], edx + jmp .char_loop + +.end: + clc + +.finish: + mov [esp+4*regEAX], edi + popad + return + +.error: + stc + popad + return +endp + + + + + + + + + + + +; Computes the width and height of the text. +; +; Arguments: +; .pString - pointer to a UTF-8 string. +; .len - how many bytes from the string to be used. If -1 the whole string will be scanned. +; .font - the font to be used for the computations. +; +; Returns: +; EAX - the width of the string in pixels. +; EBX - the ascender of the string. It is negative. +; EDX - the height of the string in pixels. + + +body GetTextBounds ;, .pString, .len, .font + +.scaler FTC_ScalerRec +.glyph dd ? + +.x dd ? + +.miny dd ? +.maxy dd ? + +.charlen dd ? + +begin + pushad + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov [.x], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + ror ecx, 1 ; ecx = $80000000 + mov [.maxy], ecx + dec ecx + mov [.miny], ecx ; ecx = $7fffffff + + mov esi, [.pString] + +.char_loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + mov [.charlen], edx + + test eax, eax + jz .finish + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [flagFreeTypeLoadFlags], eax, edx, 0 + + test eax, eax + jnz .char_loop + + mov ebx, [.glyph] + + sub eax, [ebx+FT_BitmapGlyphRec.top] ; eax = 0 here + mov edx, eax + add edx, [ebx+FT_BitmapGlyphRec.bitmap.rows] + + cmp eax, [.miny] + jge @f + mov [.miny], eax +@@: + cmp edx, [.maxy] + jle @f + mov [.maxy], edx +@@: + + mov eax, [ebx+FT_GlyphRec.advance.x] + sar eax, 16 ; format 16.16 fixed decimal point. + add [.x], eax + + mov eax, [.charlen] + sub [.len], eax + ja .char_loop + + +.finish: + mov eax, [.x] + mov edx, [.maxy] + mov ebx, [.miny] + sub edx, ebx + + mov [esp+4*regEAX], eax + mov [esp+4*regEBX], ebx + mov [esp+4*regEDX], edx + + popad + return +endp + + + + + + + +proc __DrawGlyph, .pImage, .pFTBitmap, .x, .y, .color +.spitch dd ? +.dpitch dd ? + +.drect RECT +.srect RECT + +.pixel_mode dd ? + +.sstart dd ? +.dstart dd ? + +.xsize dd ? + +.bpp dd ? +.bit_ofs dd ? + +begin + pushad + + stdcall __fix_color, [.color], regEAX + mov [.color], eax + + mov ebx, [.pImage] + mov edi, [.pFTBitmap] + +; the glyph pixel mode handling. + movzx eax, [edi+FT_Bitmap.pixel_mode] + cmp eax, FT_PIXEL_MODE_BGRA + ja .finish + + mov [.pixel_mode], eax + movzx eax, [.bpp_const+eax] + mov [.bpp], eax + +; Clip the glyph to the image surface. + + mov eax, [ebx+TImage.width] + mov ecx, [ebx+TImage.height] + mov [.drect.right], eax + mov [.drect.bottom], ecx + xor eax, eax + mov [.drect.left], eax + mov [.drect.top], eax + + mov eax, [.x] + mov ecx, [.y] + mov [.srect.left], eax + mov [.srect.top], ecx + + mov eax, [edi+FT_Bitmap.width] + cmp [.pixel_mode], FT_PIXEL_MODE_LCD + jne @f + + cdq + mov ecx, 3 + div ecx + +@@: + add eax, [.srect.left] + mov [.srect.right], eax + + mov eax, [.srect.top] + add eax, [edi+FT_Bitmap.rows] + mov [.srect.bottom], eax + + lea eax, [.srect] + lea ecx, [.drect] + stdcall RectIntersect, ecx, eax, ecx + jc .finish ; the rectangles does not intersect! + + mov eax, [.drect.left] + mov ecx, [.drect.top] + sub eax, [.x] + sub ecx, [.y] + mov [.srect.left], eax + mov [.srect.top], ecx + + mov eax, [.drect.right] + mov ecx, [.drect.bottom] + sub eax, [.drect.left] + sub ecx, [.drect.top] + mov [.srect.right], eax ; width! + mov [.srect.bottom], ecx ; height! + +; End of clipping code - [.srect] contains the rectangle of the glyph that have to be drawn (left, top, width, height). +; [.drect] contains the destination rectangle. Both have the same size. + + mov ecx, [edi+FT_Bitmap.pitch] + mov [.spitch], ecx + +; glyph pixel pointer + + mov esi, [edi+FT_Bitmap.buffer] + test esi, esi + jz .finish + + mov eax, [.srect.top] + mov ecx, [.srect.left] + + imul eax, [.spitch] + imul ecx, [.bpp] + mov [.bit_ofs], ecx + shr ecx, 3 ; byte offs + and [.bit_ofs], 7 ; bit offs + + add esi, ecx + add esi, eax + +; TImage destination pixel pointer + + mov edi, [ebx+TImage.pPixels] + + mov ecx, [ebx+TImage.width] + mov eax, [.drect.top] + imul eax, ecx + add eax, [.drect.left] + lea edi, [edi+4*eax] ; in bytes. + + shl ecx, 2 + mov [.dpitch], ecx + + +; prepare MMX constants + + pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 + pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff + psrlw mm1, 15 ; mm1 = 0001 0001 0001 0001 + psllw mm1, 8 ; mm1 = 0100 0100 0100 0100 + + movq mm2, mm1 ; mm2 = 0001 0001 0001 0001 + psllq mm2, 48 ; mm2 = 0100 0000 0000 0000 + + +.loopy: + + mov [.sstart], esi + mov [.dstart], edi + + mov eax, [.srect.right] ; width! + mov [.xsize], eax + + cmp [.pixel_mode], FT_PIXEL_MODE_BGRA + je .loopx32 + + cmp [.pixel_mode], FT_PIXEL_MODE_LCD + je .loopx24 + + cmp [.pixel_mode], FT_PIXEL_MODE_GRAY + je .loopx8 + + cmp [.pixel_mode], FT_PIXEL_MODE_MONO + jne .finish + + lodsd + bswap eax + mov ch, 32 + mov cl, byte [.bit_ofs] + shl eax, cl + sub ch, cl + +.loopx1: + shl eax, 1 + dec ch + jnz @f + + lodsd + bswap eax + mov ch, 32 + +@@: + jnc .next_x + + movd mm7, [.color] ; source pixel. + movd mm6, [edi] ; destination pixel. + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + + punpckldq mm5, mm5 ; + punpcklbw mm6, mm0 ; byte to word destination pixel + packssdw mm5, mm5 ; mm5 = As, As, As, As + punpcklbw mm7, mm0 ; byte to word source pixel + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + psrlq mm5, 16 ; mm5 = 0 As As As + por mm5, mm2 ; mm5 = $100 As As As + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + pmullw mm7, mm5 ; Cs = Cs * As (For alpha As = $100*As ) + + paddusw mm6, mm7 ; Cd = Cs + Cd (For alpha Ad = $100*As + Ad*Bs) + psrlw mm6, 8 ; Cd = Cd/256 (For alpha Ad = As + Ad*Bs/$100) + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi], mm6 + +.next_x: + add edi, 4 + dec [.xsize] + jnz .loopx1 + jmp .nexty + + + +.loopx8: + movzx eax, byte [esi] ; intensity + add esi, 1 + + movd mm6, [.color] + movd mm7, eax + + punpcklbw mm6, mm0 ; byte to word color. + punpckldq mm7, mm7 ; + packssdw mm7, mm7 ; mm7 = I, I, I, I + + pmullw mm7, mm6 ; mm7 is the color to blend = Cs*256 + + movd mm6, [edi] ; Destination color + punpcklbw mm6, mm0 ; byte to word destination pixel + + movq mm5, mm7 + psrlq mm5, 56 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs + paddusw mm6, mm7 ; Cd = 256*Cs + Cd*(256-As) + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi], mm6 + + add edi, 4 + + dec [.xsize] + jnz .loopx8 + jmp .nexty + + +.loopx24: + + movzx eax, byte [esi] + movzx edx, byte [esi+1] + + lea eax, [eax+2*edx] + movzx edx, byte [esi+2] + + add eax, edx + shr eax, 2 ; grayscale. + + movd mm6, [.color] + movd mm7, eax + + punpcklbw mm6, mm0 ; byte to word color. + punpckldq mm7, mm7 ; + packssdw mm7, mm7 ; mm7 = I, I, I, I + + pmullw mm7, mm6 ; mm7 is the color to blend = Cs*256 + + movd mm6, [edi] ; Destination color + punpcklbw mm6, mm0 ; byte to word destination pixel + + movq mm5, mm7 + psrlq mm5, 56 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs + paddusw mm6, mm7 ; Cd = 256*Cs + Cd*(256-As) + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi], mm6 + + + add esi, 3 + add edi, 4 + + dec [.xsize] + jnz .loopx24 + jmp .nexty + + +.loopx32: + movd mm7, [esi] ; source pixel. + movd mm6, [edi] ; destination pixel. + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + + punpckldq mm5, mm5 ; + punpcklbw mm6, mm0 ; byte to word destination pixel + packssdw mm5, mm5 ; mm5 = As, As, As, As + punpcklbw mm7, mm0 ; byte to word source pixel + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + psrlq mm5, 16 ; mm5 = 0 As As As + por mm5, mm2 ; mm5 = $100 As As As + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + pmullw mm7, mm5 ; Cs = Cs * As (For alpha As = $100*As ) + + paddusw mm6, mm7 ; Cd = Cs + Cd (For alpha Ad = $100*As + Ad*Bs) + psrlw mm6, 8 ; Cd = Cd/256 (For alpha Ad = As + Ad*Bs/$100) + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi], mm6 + + add edi, 4 + add esi, 4 + + dec [.xsize] + jnz .loopx32 + jmp .nexty + + +.nexty: + mov esi, [.sstart] + add esi, [.spitch] + + mov edi, [.dstart] + add edi, [.dpitch] + + dec [.srect.bottom] ; height + jnz .loopy + + +.finish: + emms + popad + return + +.bpp_const db 0, 1, 8, 2, 4, 24, 8, 32 + +endp + + + DELETED freshlib/graphics/Linux/draw.asm Index: freshlib/graphics/Linux/draw.asm ================================================================== --- freshlib/graphics/Linux/draw.asm +++ /dev/null @@ -1,150 +0,0 @@ -uglobal - _CurrentRaster dd ? - _CurrentX dd ? - _CurrentY dd ? - _DefaultGC dd ? -endg - -lsEndCapRound = CapRound -lsEndCapSquare = CapButt -lsEndCapFlat = CapProjecting - -lsJoinRound = JoinRound shl 8 -lsJoinBevel = JoinBevel shl 8 -lsJoinMiter = JoinMiter shl 8 - -struct TDashList - .count dd ? ; count of the list in dwords - .dash dd ? - .space dd ? -ends - - - -finalize _DestroyDefaultGC -begin - cinvoke XFreeGC, [hApplicationDisplay], [_DefaultGC] - return -endp - - -proc _FixGC -begin - - cmp [_DefaultGC], 0 - jne .exit - - cmp [hApplicationDisplay], 0 - je .exit - - push eax - cinvoke XDefaultRootWindow, [hApplicationDisplay] - cinvoke XCreateGC, [hApplicationDisplay], eax, 0, 0 - mov [_DefaultGC], eax - pop eax - -.exit: - return -endp - - -proc _FixCurrentPos, .raster -begin - push eax - mov eax, [.raster] - cmp eax, [_CurrentRaster] - je .fixed - push eax 0 0 - pop [_CurrentY] [_CurrentX] [_CurrentRaster] -.fixed: - pop eax - return -endp - - - -proc SetLineStyle, .color, .width, .style, .dashlist -begin - push eax ebx ecx edx - - stdcall _FixGC - mov eax, [.style] - mov ecx, eax - shr ecx, 8 - and eax, $ff ; cap_style - and ecx, $ff ; join_style - cinvoke XSetLineAttributes, [hApplicationDisplay], [_DefaultGC], [.width], LineSolid, eax, ecx - cinvoke XSetForeground, [hApplicationDisplay], [_DefaultGC], [.color] - - pop edx ecx ebx eax - return -endp - - -proc GetCurrentXY, .raster -begin - stdcall _FixCurrentPos, [.raster] - mov eax, [_CurrentX] - mov edx, [_CurrentY] - return -endp - - -proc MoveTo, .raster, .x, .y -begin - push [.raster] [.x] [.y] - pop [_CurrentY] [_CurrentX] [_CurrentRaster] - return -endp - - -proc DrawLine, .raster, .x, .y -begin - push eax ecx edx - stdcall _FixGC - stdcall _FixCurrentPos, [.raster] - cinvoke XDrawLine, [hApplicationDisplay], [.raster], [_DefaultGC], [_CurrentX], [_CurrentY], [.x], [.y] - push [.x] [.y] - pop [_CurrentY] [_CurrentX] - pop edx ecx eax - return -endp - - -proc DrawFillRect, .raster, .x, .y, .width, .height, .color -begin - push eax ecx edx - stdcall _FixGC - cinvoke XSetForeground, [hApplicationDisplay], [_DefaultGC], [.color] - cinvoke XFillRectangle, [hApplicationDisplay], [.raster], [_DefaultGC], [.x], [.y], [.width], [.height] - pop edx ecx eax - return -endp - - - -macro Outline [type, x, y] { - common -local ..types, ..points, ..count - dd ..count - dd ..types - dd ..points - common - label ..types byte - forward - db type - common - label ..points dword - forward - dd x - dd y -} - - - -proc Draw, .raster, .pDrawPoints -begin - - return -endp - ADDED freshlib/graphics/Linux/fonts.asm Index: freshlib/graphics/Linux/fonts.asm ================================================================== --- /dev/null +++ freshlib/graphics/Linux/fonts.asm @@ -0,0 +1,356 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Fonts managing library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +iglobal + if used FontAttr.mono | used FontAttr.size | used FontAttr.weight | used FontAttr.italic + label FontAttr byte + .mono db ':spacing=mono', 0 + .size db ':pixelsize=', 0 + .weight db ':weight=', 0 + .italic db ':slant=italic', 0 + .regular db ':slant=roman', 0 + + +;fwLight = 0 +;fwDemilight = 1 +;fwNormal = 2 +;fwMedium = 3 +;fwDemibold = 4 +;fwBold = 5 +;fwExtraBold = 6 +;fwBlack = 7 + + .font_weights db 0, 55, 80, 100, 180, 200, 205, 210 + end if +endg + + +;initialize InitFonts +;begin +; cinvoke FcInit +; return +;endp +; +; +;finalize FinalizeFonts +;begin +; cinvoke FcFini +; return +;endp + + + +proc FTCRequester as FT_Face_Requester +.res dd ? +.idx dd ? +.face dd ? +begin + pushad + + mov esi, [.face_id] + + stdcall StrDup, [esi+__TFont.hFontFace] + mov ebx, eax + + test [esi+__TFont.flags], ffMonospaced + jz @f + stdcall StrCat, ebx, FontAttr.mono +@@: + mov eax, [esi+__TFont.weight] + and eax, 7 + movzx eax, byte [FontAttr.font_weights+eax] + + stdcall StrCat, ebx, FontAttr.weight + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax + stdcall StrCat, ebx, eax + stdcall StrDel ; from the stack + + mov eax, FontAttr.regular + test [esi+__TFont.flags], ffItalic + jz @f + mov eax, FontAttr.italic +@@: + stdcall StrCat, ebx, eax + stdcall StrPtr, ebx + +; OutputLn eax + + cinvoke FcNameParse, eax + stdcall StrDel, ebx + + test eax, eax + jnz @f + + cinvoke FcNameParse, txt "Helvetica" + DebugMsg "Error: Bad pattern fallback." + +@@: + mov ebx, eax + + cinvoke FcDefaultSubstitute, ebx + cinvoke FcConfigSubstitute, 0, ebx, 0 + + lea eax, [.res] + cinvoke FcFontMatch, 0, ebx, eax + push eax + + cinvoke FcPatternDestroy, ebx + pop ebx + +; if defined options.DebugMode & options.DebugMode +; cinvoke FcPatternPrint, ebx +; end if + + lea eax, [.res] + cinvoke FcPatternGetString, ebx, FC_FILE, 0, eax + + OutputLn [.res] + + lea eax, [.idx] + cinvoke FcPatternGetInteger, ebx, FC_INDEX, 0, eax + + mov edi, [.pFace] + mov eax, [.res] + cinvoke FT_New_Face, [FTLibrary], eax, [.idx], edi + +.finish: + mov [esp+4*regEAX], eax + cinvoke FcPatternDestroy, ebx + popad + cret +endp + + + +FC_FILE text 'file' +FC_INDEX text 'index' +FC_PIXEL_SIZE text 'pixelsize' + + + +body FontCreate +begin + push edx + + stdcall GetMem, sizeof.__TFont + mov edx, eax + + stdcall StrDup, [.font_name] + mov [edx+__TFont.hFontFace], eax + + mov eax, [.size] + mov [edx+__TFont.height], eax + mov eax, [.weight] + mov [edx+__TFont.weight], eax + mov eax, [.flags] + mov [edx+__TFont.flags], eax + + mov eax, edx + pop edx + return +endp + + + +body FontDestroy +begin + pushad + mov edi, [.pFont] + + cinvoke FTC_Manager_RemoveFaceID, [FTCManager], edi + stdcall StrDel, [edi+__TFont.hFontFace] + stdcall FreeMem, edi + + popad + return +endp + + +; returns some font metrics +; +; Arguments: +; .font - the font +; Returns: +; EAX - the line height of the font. +; EBX - the ascender of the font. +; EDX - the descender of the font. + +body GetFontMetrics +.face dd ? +.scaler FTC_ScalerRec +.size dd ? +begin + push esi ecx + + mov edx, [.font] + mov ecx, [edx+__TFont.height] + xor eax, eax + + mov [.scaler.face_id], edx + mov [.scaler.width], eax + mov [.scaler.height], ecx + + mov [.scaler.pixel], 1 + mov [.scaler.x_res], eax + mov [.scaler.y_res], eax + + lea eax, [.scaler] + lea edx, [.size] + cinvoke FTC_Manager_LookupSize, [FTCManager], eax, edx + test eax, eax + jnz .error + +.size_found: + mov edx, [.size] + mov eax, [edx+FT_SizeRec.metrics.height] + mov ebx, [edx+FT_SizeRec.metrics.ascender] + mov edx, [edx+FT_SizeRec.metrics.descender] + + sar eax, 6 + sar ebx, 6 + sar edx, 6 + +.finish: + clc + pop ecx esi + return + +.error: + OutputValue "FTC_Manager_LookupSize error: $", eax, 16, -1 + + lea eax, [.face] + cinvoke FTC_Manager_LookupFace, [FTCManager], [.font], eax + test eax, eax + jnz .fall_back + + mov edx, [.face] + mov esi, [edx+FT_FaceRec.num_fixed_sizes] + dec esi + js .fall_back + + imul esi, sizeof.FT_Bitmap_Size + add esi, [edx+FT_FaceRec.available_sizes] + + movzx eax, [esi+FT_Bitmap_Size.height] + + mov [.scaler.height], eax + mov edx, [.font] + mov [edx+__TFont.height], eax + + lea eax, [.scaler] + lea edx, [.size] + cinvoke FTC_Manager_LookupSize, [FTCManager], eax, edx + test eax, eax + jz .size_found + +; Very stupid fallback. + movzx eax, [esi+FT_Bitmap_Size.height] + mov edx, -2 + lea ebx, [eax-2] + jmp .finish + +; Event more stupid fallback... +.fall_back: + mov eax, 1 + mov ebx, 1 + mov edx, 1 + jmp .finish +endp + + + +struct _FcFontSet + .nFont dd ? + .sFont dd ? + .pList dd ? +ends + + +body GetFontList ;, .font +.pPat dd ? ; pattern +.pOs dd ? ; object set +.res dd ? +begin + pushad + stdcall CreateArray, 4 + mov edi, eax + + mov esi, [.font] + + cinvoke FcPatternCreate + mov [.pPat], eax + + cinvoke FcObjectSetBuild, txt "family", 0 + mov [.pOs], eax + + cinvoke FcFontList, 0, [.pPat], [.pOs] + mov esi, eax + mov ebx, [esi+_FcFontSet.pList] + mov ecx, [esi+_FcFontSet.nFont] + +.loop: + dec ecx + js .end_loop + + push ecx + + lea eax, [.res] + cinvoke FcPatternGetString, [ebx], txt "family", 0, eax + pop ecx + + test eax, eax + jnz .next + + call .search_list + jc .next + + stdcall StrDupMem, [.res] ; Some font structure??? + push eax + + stdcall AddArrayItems, edi, 1 + mov edi, edx + pop dword [eax] + +.next: + lea ebx, [ebx+4] + jmp .loop + +.end_loop: + cinvoke FcFontSetDestroy, esi + cinvoke FcObjectSetDestroy, [.pOs] + cinvoke FcPatternDestroy, [.pPat] + + stdcall SortArray, edi, StrCompSort, FALSE + + mov [esp+4*regEAX], edi + popad + return + +; Returns CF = 1 if the string is already in the list. +.search_list: + push ecx + mov ecx, [edi+TArray.count] + clc +.sloop: + dec ecx + js .ends ; CF here is always 0 + + stdcall StrCompNoCase, [.res], [edi+TArray.array+4*ecx] + jnc .sloop +.ends: + pop ecx + retn +endp Index: freshlib/graphics/Linux/images.asm ================================================================== --- freshlib/graphics/Linux/images.asm +++ freshlib/graphics/Linux/images.asm @@ -1,76 +1,650 @@ -; only 16, 24 and 32 bpp are supported. -; It is stupid to support palleted modes and even 24bpp is not good... -proc CreateImage, .width, .height, .bpp -.scanline dd ? +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Memory based images manipulation library. +; +; Target OS: Linux +; +; Dependencies: memory.asm +; +; Notes: +;_________________________________________________________________________________________ + + +struct TLinuxImage + . TImage + +; os dependent data + .readonly dd ? + .shmSeg dd ? + .shmID dd ? +ends + + +body CreateImage2 +.atch __xShmAttachReq begin - push ebx ecx edx esi + pushad - stdcall GetMem, sizeof.TImage + stdcall GetMem, sizeof.TLinuxImage jc .finish - mov esi, eax - push [.width] [.height] [.bpp] - pop [esi+TImage.bpp] [esi+TImage.height] [esi+TImage.width] - -; allocate image data - - mov ecx, [.bpp] - mov eax, [.height] - shr ecx, 3 - imul ecx, [.width] - add ecx, 3 - and ecx, $fffffffc ; align scanline to dword. - imul eax, ecx - mov [.scanline], ecx - - stdcall GetMem, eax - jc .error_free - mov [esi+TImage.pData], eax - - cinvoke XDefaultVisual, [hApplicationDisplay], 1 - cinvoke XCreateImage, [hApplicationDisplay], eax, [.bpp], XYPixmap, 0, [esi+TImage.pData], [.width], [.height], 32, [.scanline] - mov [esi+TImage.raster], eax - + + xor eax, eax + xor ebx, ebx + inc eax + + mov ecx, [.width] + mov edx, [.height] + + test ecx, ecx + cmovz ecx, eax + + cmp edx, ebx + cmovle edx, eax + + mov [esi+TLinuxImage.width], ecx + mov [esi+TLinuxImage.height], edx + + mov [esi+TLinuxImage.orgX], ebx + mov [esi+TLinuxImage.orgY], ebx + mov [esi+TLinuxImage.wrapW], ecx + mov [esi+TLinuxImage.wrapH], edx + + mov [esi+TLinuxImage.shmSeg], ebx + mov [esi+TLinuxImage.shmID], ebx + + mov [esi+TLinuxImage.readonly], ebx + + lea eax, [4*ecx] + imul eax, edx + + cmp [flagSharedMemory], 0 + je .fall_back + + cmp [.fScreen], 0 + je .fall_back + + cinvoke shmget, IPC_PRIVATE, eax, IPC_CREAT or 666o + test eax, eax + js .error + + mov [esi+TLinuxImage.shmID], eax + + cinvoke shmat, eax, 0, 0 + cmp eax, -1 + je .error + + mov [esi+TLinuxImage.pPixels], eax + + cinvoke shmctl, [esi+TLinuxImage.shmID], IPC_RMID, 0 + + stdcall xGetID, appConn, esi + mov [esi+TLinuxImage.shmSeg], eax + + mov ecx, [appConn.exShm.OpCode] + mov edx, [esi+TLinuxImage.shmID] + mov [.atch.op], cl + mov [.atch.minor], opShmAttach + mov [.atch.length], sizeof.__xShmAttachReq/4 + mov [.atch.shmSeg], eax + mov [.atch.shmID], edx + mov [.atch.read_only], 0 + + lea eax, [.atch] + stdcall xSend, appConn, eax + +.exit_ok: + mov [esp+4*regEAX], esi + + lea esi, [esi+TLinuxImage.lock] + stdcall MutexCreate, 0, esi + stdcall MutexRelease, esi clc - mov eax, esi + .finish: - pop esi edx ecx ebx + popad return -.error_free: +.error: +; int3 stdcall FreeMem, esi stc jmp .finish -endp - - -proc DestroyImage, .ptrImage -begin - push eax ecx edx esi - - mov esi, [.ptrImage] - - cinvoke XDestroyImage, [esi+TImage.raster] -; stdcall FreeMem, [esi+TImage.pData] - stdcall FreeMem, esi - - pop esi edx ecx eax - return -endp - - -proc DrawImage, .raster, .pImage, .x, .y -begin - push eax ecx edx esi edi - - mov esi, [.pImage] - - stdcall _FixGC -; cinvoke XPutImage, [hApplicationDisplay], [.raster], [_DefaultGC], [esi+TImage.raster], 0, 0, [.x], [.y], [esi+TImage.width], [esi+TImage.height] - - stdcall OutputRegister, regEAX, 16 - stdcall DrawFillRect, [.raster], [.x], [.y], [esi+TImage.width],[esi+TImage.height], $00ff00 - pop edi esi edx ecx eax - return -endp - + +.fall_back: + stdcall GetMem, eax + mov [esi+TLinuxImage.pPixels], eax + test eax, eax + jz .error + jmp .exit_ok +endp + + + + +body DestroyImage +.dtch __xShmDetachReq +begin + pushad + + mov esi, [.ptrImage] + test esi, esi + jz .finish + +.lock_wait: + stdcall LockImg, esi + jc .lock_wait ; possible hang! + + + mov edx, [esi+TLinuxImage.shmSeg] + test edx, edx + jz .fall_back + + mov eax, [appConn.exShm.OpCode] + mov [.dtch.op], al + mov [.dtch.minor], opShmDetach + mov [.dtch.length], sizeof.__xShmDetachReq/4 + mov [.dtch.shmSeg], edx + +; DebugMsg +; OutputValue "Dettach ShmID: ", [esi+TLinuxImage.shmID], 16, 8 +; OutputValue " Shm address: ", [esi+TLinuxImage.pPixels], 16, 8 + + lea eax, [.dtch] + stdcall xSend, appConn, eax + +; OutputValue "DestroyImage Sequence: ", [appConn.Sequence], 10, -1 +; DebugMsg + + xor eax, eax + xchg eax, [esi+TLinuxImage.pPixels] + cinvoke shmdt, eax + test eax, eax + jz @f + int3 +@@: + stdcall xFreeID, appConn, [esi+TLinuxImage.shmSeg] + +.exit_ok: + lea edi, [esi+TLinuxImage.lock] + stdcall MutexDestroy, edi + stdcall FreeMem, esi + +.finish: + popad + return + + +.fall_back: + xor eax, eax + xchg eax, [esi+TLinuxImage.pPixels] + stdcall FreeMem, eax + jmp .exit_ok +endp + + + +body LockImg ;, .pImage +begin + push eax edx + + mov edx, [.pImage] + lea eax, [edx+TLinuxImage.lock] + stdcall WaitForMutex, eax, -1 + + pop edx eax + return +endp + + + +body UnlockImg ;, .pImage +begin + push eax + mov eax, [.pImage] + test eax, eax + jz .unlocked + + lea eax, [eax+TLinuxImage.lock] + stdcall MutexRelease, eax + +.unlocked: + clc + pop eax + return +endp + + + + +body DrawImageRect + +.maskUL RECT ; upper left +.maskUR RECT ; upper right +.maskLL RECT ; lower left +.maskLR RECT ; lower right + +.sRect RECT ; the rectangle used for intersecting the source rectangle. + +.fDraw rd 1 + +begin + pushad + + mov esi, [.pImage] + test esi, esi + jz .finish + + lea eax, [esi+TImage.lock] + stdcall WaitForMutex, eax, -1 + jc .finish + + + inc [esi+TLinuxImage.readonly] + + xor eax, eax + mov [.fDraw], eax + + mov ecx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + mov [.maskUL.left], eax ; UL + mov [.maskUL.top], eax ; UL + mov [.maskLL.left], eax ; LL + mov [.maskUR.top], eax ; UR + + mov [.maskUL.right], ecx ; UL + mov [.maskUL.bottom], edx ; UL + mov [.maskLR.left], ecx ; LR + mov [.maskLR.top], edx ; LR + mov [.maskLL.top], edx ; LL + mov [.maskLL.right], ecx ; LL + mov [.maskUR.left], ecx ; UR + mov [.maskUR.bottom], edx ; UR + + shl ecx, 1 + shl edx, 1 + + mov [.maskUR.right], ecx ; UR + mov [.maskLL.bottom], edx ; LL + mov [.maskLR.right], ecx ; LR + mov [.maskLR.bottom], edx ; LR + + mov ecx, [.xSrc] + mov edx, [.ySrc] + mov [.sRect.left], ecx + mov [.sRect.top], edx + add ecx, [.width] + add edx, [.height] + mov [.sRect.right], ecx + mov [.sRect.bottom], edx + + lea eax, [.sRect] + lea edx, [.maskUL] + stdcall RectIntersect2, eax, edx + jc .exit + +; at least some part of the image, has to be drawn. + + mov ebx, [esi+TImage.orgX] + mov edx, [esi+TImage.orgY] + + add [.sRect.left], ebx + add [.sRect.top], edx + add [.sRect.right], ebx + add [.sRect.bottom], edx + + mov ebx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + lea edi, [.maskUL] + lea ecx, [.sRect] + + mov eax, 3 + +.loop_rect: + + stdcall RectIntersect2, edi, ecx + cmc + rcl [.fDraw], 1 + + test eax, 1 ; horizontal + jnz .h_ok + + sub [edi+RECT.left], ebx + sub [edi+RECT.right], ebx + +.h_ok: + test eax, 2 ; vertical + jnz .v_ok + + sub [edi+RECT.top], edx + sub [edi+RECT.bottom], edx + +.v_ok: + stdcall RectToBounds, edi, edi + + add edi, sizeof.RECT + dec eax + jns .loop_rect + +; Now draw the rectangles. + + + lea ebx, [.maskLR] + mov edi, 3 + +.draw_loop: + shr [.fDraw], 1 + jnc .next + + setz cl ; is it the last rectangle to draw? + movzx ecx, cl + + mov eax, [.xDst] + mov edx, [.yDst] + + test edi, 1 + jz .x_ok + add eax, [.maskUL.right] +.x_ok: + test edi, 2 + jz .y_ok + add edx, [.maskUR.bottom] +.y_ok: + + stdcall xPutImage, [.where], esi, [ebx+RECT.left], [ebx+RECT.top], eax, edx, [ebx+RECT.right], [ebx+RECT.bottom], ecx + +.next: + cmp [.fDraw], 0 + je .end_draw + + sub ebx, sizeof.RECT + dec edi + jns .draw_loop + +.end_draw: + cmp [esi+TLinuxImage.shmSeg], 0 ; The image will be unlocked elsewhere, when the X server finish drawing. + jne .finish + +.exit: + mov [esi+TLinuxImage.readonly], 0 + +.finish: + stdcall UnlockImg, esi + popad + return +endp + + +proc xPutImage, .drawable, .image, .srcX, .srcY, .dstX, .dstY, .width, .height, .events +.shm __xShmPutImageReq +.put __xPutImageReq +.gc __xCreateContextReq +.fc __xFreeContextReq +begin + pushad + + mov esi, [.image] + + mov ecx, [esi+TLinuxImage.shmSeg] + test ecx, ecx + jz .fall_back + + mov ebx, [.drawable] + stdcall xGetObj, appConn, ebx + jc .finish + + mov edx, [eax+TWindow.context] + + mov eax, [appConn.exShm.OpCode] + + mov [.shm.op], al + mov [.shm.minor], opShmPutImage + mov [.shm.length], sizeof.__xShmPutImageReq/4 + mov [.shm.drawable], ebx + mov [.shm.context], edx + mov [.shm.shmSeg], ecx + mov [.shm.offset], 0 + + mov eax, [esi+TLinuxImage.width] + mov ebx, [esi+TLinuxImage.height] + mov [.shm.total_w], ax + mov [.shm.total_h], bx + + mov eax, [.srcX] + mov ebx, [.srcY] + mov ecx, [.width] + mov edx, [.height] + mov [.shm.src_x], ax + mov [.shm.src_y], bx + mov [.shm.src_w], cx + mov [.shm.src_h], dx + + mov eax, [.dstX] + mov ebx, [.dstY] + mov ecx, [.events] + mov [.shm.dst_x], ax + mov [.shm.dst_y], bx + mov [.shm.depth], $20 + mov [.shm.format], ZPixmap + mov [.shm.send_event], cl + + lea eax, [.shm] + stdcall xSend, appConn, eax + +.finish: + popad + return + +.fall_back: + mov [.gc.op], 0 + mov [.fc.op], 0 + + mov [.put.op], opPutImage + mov [.put.format], ZPixmap + mov [.put.length], 0 + + mov ebx, [.drawable] + stdcall xGetObj, appConn, ebx + jc .finish + + cmp eax, objPixmap + jne .window + + call .create_context + jmp .context_ok + +.window: + mov eax, [eax+TWindow.context] + +.context_ok: + mov [.put.drawable], ebx + mov [.put.gc], eax + + mov ecx, [.width] + mov edx, [.height] + mov eax, [.dstX] + mov ebx, [.dstY] + + mov [.put.width], cx + mov [.put.height], dx + + imul ecx, edx + add ecx, sizeof.__xPutImageReq/4 + mov [.put.long_len], ecx + + mov [.put.dst_x], ax + mov [.put.dst_y], bx + mov [.put.left_pad], 0 + mov [.put.depth], $20 + + mov ebx, [.image] + mov esi, [ebx+TImage.pPixels] + mov eax, [.srcY] + mov edx, [ebx+TImage.width] + + imul eax, edx + add eax, [.srcX] + lea esi, [esi+4*eax] + + mov ecx, [.width] + shl ecx, 2 + + mov ebx, [.height] + + stdcall xReqStart, appConn + + lea eax, [.put] + stdcall xReqSend, appConn, eax, sizeof.__xPutImageReq + +.row_loop: + stdcall xReqSend, appConn, esi, ecx + lea esi, [esi+4*edx] + dec ebx + jnz .row_loop + + stdcall xReqEnd, appConn + + cmp [.fc.op], 0 + je .finish + + lea eax, [.fc] + stdcall xSend, appConn, eax + stdcall xFreeID, appConn, [.fc.gcID] + + jmp .finish + +.create_context: + stdcall xGetID, appConn, objContext + mov edx, [.drawable] + + mov [.gc.op], opCreateGC + mov [.fc.op], opFreeGC + + mov [.gc.length], sizeof.__xCreateContextReq/4 + mov [.fc.length], sizeof.__xFreeContextReq/4 + + mov [.gc.gcID], eax + mov [.fc.gcID], eax + + mov [.gc.drawable], edx + mov [.gc.value_mask], 0 ; foreground and background + + lea edx, [.gc] + stdcall xSend, appConn, edx + retn +endp + + + + +proc __xPutImageToBitmap, .pixmap, .image, .srcX, .srcY, .dstX, .dstY, .width, .height +.gc __xCreateContextReq +.fc __xFreeContextReq +.put __xPutImageShortReq +.data dd ? +begin + pushad + +; create graphic context. + + stdcall xGetID, appConn, objContext + mov edx, [.pixmap] + + mov [.gc.op], opCreateGC + mov [.fc.op], opFreeGC + + mov [.gc.length], sizeof.__xCreateContextReq/4 + mov [.fc.length], sizeof.__xFreeContextReq/4 + + mov [.gc.gcID], eax + mov [.fc.gcID], eax + mov [.put.gc], eax + + mov [.gc.drawable], edx + mov [.put.drawable], edx + + mov [.gc.value_mask], 0 ; foreground and background + + lea edx, [.gc] + stdcall xSend, appConn, edx + +; put the image + + mov eax, [.width] + add eax, 31 + and eax, $ffffffe0 + mov edx, [.height] + mov ecx, eax + imul ecx, edx + shr ecx, 5 + add ecx, 6 + + mov [.put.op], opPutImage + mov [.put.format], 0 ; + mov [.put.length], cx + mov [.put.width], ax + mov [.put.height], dx + + mov eax, [.dstX] + mov edx, [.dstY] + + mov [.put.dst_x], ax + mov [.put.dst_y], dx + mov [.put.left_pad], 0 + mov [.put.depth], 1 + + stdcall xReqStart, appConn + lea eax, [.put] + stdcall xReqSend, appConn, eax, sizeof.__xPutImageShortReq + + mov esi, [.image] + mov eax, [.srcY] + mov edx, [.srcX] + imul eax, [esi+TImage.width] + add edx, eax + lea edx, [4*edx] + add edx, [esi+TImage.pPixels] + + mov edi, [.height] + +.loopy: + xor ecx, ecx + mov ebx, [.width] + +.loopx: + cmp byte [edx+4*ecx], $80 + rcr [.data], 1 + + inc ecx + dec ebx + + test ebx, $1f + jnz .loopx + + lea eax, [.data] + stdcall xReqSend, appConn, eax, 4 + + test ebx, ebx + jnz .loopx + + mov eax, [esi+TImage.width] + lea edx, [edx+4*eax] + + dec edi + jnz .loopy + + stdcall xReqEnd, appConn + +; free the context + lea eax, [.fc] + stdcall xSend, appConn, eax + stdcall xFreeID, appConn, [.fc.gcID] + + popad + return +endp Index: freshlib/graphics/Linux/text.asm ================================================================== --- freshlib/graphics/Linux/text.asm +++ freshlib/graphics/Linux/text.asm @@ -1,86 +1,937 @@ -uglobal - _TextColor _XftColor -endg - - -initialize InitText -begin - mov [_TextColor.color.alpha], $ffff - return -endp - - - -proc DrawString, .raster, .ptrString, .len, .x, .y, .font - .extents _XGlyphInfo -begin - push eax ebx ecx edx esi - - cmp [.font], 0 - jne @f - - mov eax, [_SystemFont] - mov [.font], eax - -@@: - lea esi, [.extents] - cinvoke XftTextExtents8, [hApplicationDisplay], [.font], [.ptrString], [.len], esi - - cinvoke XDefaultVisual, [hApplicationDisplay], 0 - cinvoke XftDrawCreate, [hApplicationDisplay], [.raster], eax, 0 - mov ebx, eax - - cinvoke XftDrawString8, ebx, _TextColor, [.font], [.x], [.y], [.ptrString], [.len] - cinvoke XftDrawDestroy, ebx - - pop esi edx ecx ebx ax - return -endp - - - -proc GetTextBounds, .raster, .ptrString, .len, .font -.extents _XGlyphInfo -begin - push esi ecx - - cmp [.font], 0 - jne @f - - mov eax, [_SystemFont] - mov [.font], eax - -@@: - lea esi, [.extents] - cinvoke XftTextExtents8, [hApplicationDisplay], [.font], [.ptrString], [.len], esi - - movzx eax, [esi+_XGlyphInfo.xOff] - movzx edx, [esi+_XGlyphInfo.height] - add edx, 2 - - pop ecx esi - return -endp - - -proc GetTextOffset, .raster, .ptrString, .len, .font -.extents _XGlyphInfo -begin - push esi ecx - - cmp [.font], 0 - jne @f - - mov eax, [_SystemFont] - mov [.font], eax - -@@: - lea esi, [.extents] - cinvoke XftTextExtents8, [hApplicationDisplay], [.font], [.ptrString], [.len], esi - - movzx eax, [esi+_XGlyphInfo.x] - movzx edx, [esi+_XGlyphInfo.y] - - pop ecx esi - return -endp +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Text drawing library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Uses XFT library to renter the text. +;_________________________________________________________________________________________ + +uses libFT, libFC + + +iglobal +if used FTLoadFlags + FTLoadFlags dd FT_LOAD_RENDER or FT_LOAD_COLOR or FT_LOAD_TARGET_LCD or FT_LOAD_TARGET_LIGHT + dd FT_LOAD_RENDER or FT_LOAD_COLOR or FT_LOAD_TARGET_NORMAL + dd FT_LOAD_RENDER or FT_LOAD_COLOR or FT_LOAD_TARGET_MONO + dd FT_LOAD_RENDER or FT_LOAD_COLOR or FT_LOAD_TARGET_LCD_V +end if +endg + + + +body DrawDecomposedString ;, .pImage, .pArray, .x, .y, .font, .color +.scaler FTC_ScalerRec +.glyph dd ? + +.startX dd ? + +.flags dd ? +begin + pushad + + stdcall LockImg, [.pImage] + jc .exit + + mov eax, [TextRenderOptions] + and eax, 3 + mov eax, [FTLoadFlags+4*eax] + mov [.flags], eax + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + mov eax, [.x] + mov [.startX], eax + + mov esi, [.pArray] + xor edi, edi + dec edi + +.char_loop: + inc edi + cmp edi, [esi+TArray.count] + jae .finish + + cmp word [esi+TArray.array+8*edi+TTextChar.width], 0 + je .char_ok + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, [esi+TArray.array+8*edi+TTextChar.code] + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [.flags], eax, edx, 0 + + test eax, eax + jnz .char_ok + + mov ebx, [.glyph] + mov ecx, [.x] + mov edx, [.y] + + add ecx, [ebx+FT_BitmapGlyphRec.left] + sub edx, [ebx+FT_BitmapGlyphRec.top] + + lea eax, [ebx+FT_BitmapGlyphRec.bitmap] + stdcall __DrawGlyph, [.pImage], eax, ecx, edx, [.color] + + movzx eax, word [esi+TArray.array+8*edi+TTextChar.width] + add [.x], eax + +.char_ok: +; check for new line. + movzx eax, word [esi+TArray.array+8*edi+TTextChar.height] + test eax, eax + jz .char_loop + + add [.y], eax + mov eax, [.startX] + mov [.x], eax + jmp .char_loop + + +.finish: + stdcall UnlockImg, [.pImage] + +.exit: + popad + return +endp + + + + +; Draws the string on the image using the specified font and color. +; The string is drawn in one line. The control symbols are not +; processed. The tabs are not expanded or replaced with spaces. +; +; Arguments: +; .pImage - pointer to the image where to draw the text. +; .pString - pointer to a UTF-8 string. +; .len - how many bytes from the string to be drawn. If -1, the whole string will be drawn. +; .x - X coordinate, where to start drawing. +; .y - Y coordinate of the baseline where to draw the string. +; .font - the font to be used. +; .color - ARGB color to draw the glyphs. +; +;;;;;;;; Returns: +;;;;;;;; EAX - the width of the string in pixels. +;;;;;;;; EBX - the ascender of the string. +;;;;;;;; EDX - the height of the string in pixels. + + +body DrawString ;, .pImage, .pString, .len, .x, .y, .font, .color + +.scaler FTC_ScalerRec +.glyph dd ? + +.miny dd ? +.maxy dd ? +.startX dd ? + +.flags dd ? + +begin + pushad + + stdcall LockImg, [.pImage] + jc .exit + + mov eax, [TextRenderOptions] + and eax, 3 + mov eax, [FTLoadFlags+4*eax] + mov [.flags], eax + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + ror ecx, 1 ; ecx = $80000000 + mov [.maxy], ecx + dec ecx + mov [.miny], ecx ; ecx = $7fffffff + + mov eax, [.x] + mov [.startX], eax + + mov esi, [.pString] + +.char_loop: + + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + + sub [.len], edx + jc .finish + + test eax, eax + jz .finish + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [.flags], eax, edx, 0 + + test eax, eax + jnz .char_loop + + mov ebx, [.glyph] + + mov ecx, [.x] + mov edx, [.y] + + add ecx, [ebx+FT_BitmapGlyphRec.left] + sub edx, [ebx+FT_BitmapGlyphRec.top] + + cmp edx, [.miny] + jge @f + mov [.miny], edx +@@: + mov eax, edx + add eax, [ebx+FT_BitmapGlyphRec.bitmap.rows] + cmp eax, [.maxy] + jle @f + mov [.maxy], eax +@@: + lea eax, [ebx+FT_BitmapGlyphRec.bitmap] + stdcall __DrawGlyph, [.pImage], eax, ecx, edx, [.color] + + mov eax, [ebx+FT_BitmapGlyphRec.root.advance.x] + sar eax, 16 ; format 16.16 fixed decimal point. + add [.x], eax + + jmp .char_loop + + +.finish: + stdcall UnlockImg, [.pImage] + + mov eax, [.x] + mov ebx, [.miny] + mov edx, [.maxy] + + sub eax, [.startX] + sub edx, ebx + sub ebx, [.y] + + neg ebx + + mov [esp+4*regEAX], eax + mov [esp+4*regEBX], ebx + mov [esp+4*regEDX], edx + +.exit: + popad + return +endp + + + +; returns: +; EAX - TArray of TTextChar with decomposed string. +; EDX - maximal bearing_Y of the string. +; ECX - maximal descender of the string. + +body TextDecompose ;, .hString, .font + + .scaler FTC_ScalerRec + .glyph dd ? + .flags dd ? + +begin + pushad + + mov eax, [TextRenderOptions] + and eax, 3 + mov eax, [FTLoadFlags+4*eax] + mov [.flags], eax + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall CreateArray, sizeof.TTextChar + mov edi, eax + +.char_loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + mov ebx, eax + + test eax, eax + jz .end + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [.flags], eax, edx, 0 + + xor ecx, ecx + + test eax, eax + jnz .glyph_size_ok ; zero width glyph ???? + + mov ecx, [.glyph] + + mov eax, [ecx+FT_BitmapGlyphRec.top] + neg eax + + add eax, [ecx+FT_BitmapGlyphRec.bitmap.rows] + + mov ecx, [ecx+FT_BitmapGlyphRec.root.advance.x] ; format 16.16 fixed decimal point. + sar ecx, 16 ; format 16.16 + + +.glyph_size_ok: + + stdcall AddArrayItems, edi, 1 + mov edi, edx + mov dword [eax+TTextChar.width], ecx + mov [eax+TTextChar.code], ebx + jmp .char_loop + +.end: + clc + +.finish: + mov [esp+4*regEAX], edi + popad + return +endp + + + +; Returns an array with the widths from the begining of the text to the every character inside the string. + + +proc GetTextWidthsArray, .hString, .font + + .scaler FTC_ScalerRec + .glyph dd ? + + .x dd ? + +begin + pushad + + mov edx, [.font] + xor ecx, ecx + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + + mov eax, [edx+__TFont.height] + inc ecx + + mov [.scaler.height], eax + mov [.scaler.pixel], ecx ; ecx = 1 + + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall CreateArray, 4 + mov edi, eax + + xor ebx, ebx + +.char_loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + test eax, eax + jz .end + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea ecx, [.scaler] + lea edx, [.glyph] + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [flagFreeTypeLoadFlags], eax, edx, 0 + + test eax, eax + jnz .glyph_size_ok ; zero width glyph ???? + + + mov ecx, [.glyph] + mov ecx, [ecx+FT_BitmapGlyphRec.root.advance.x] ; format 16.16 fixed decimal point. + + add ebx, ecx + + +.glyph_size_ok: + + stdcall AddArrayItems, edi, 1 + mov edi, edx + + mov edx, ebx + sar edx, 16 ; format 16.16 + mov [eax], edx + jmp .char_loop + +.end: + clc + +.finish: + mov [esp+4*regEAX], edi + popad + return + +.error: + stc + popad + return +endp + + + + + + + + + + + +; Computes the width and height of the text. +; +; Arguments: +; .pString - pointer to a UTF-8 string. +; .len - how many bytes from the string to be used. If -1 the whole string will be scanned. +; .font - the font to be used for the computations. +; +; Returns: +; EAX - the width of the string in pixels. +; EDX - the height of the string in pixels. + + +body GetTextBounds ;, .pString, .len, .font + +.scaler FTC_ScalerRec +.glyph dd ? + +.x dd ? + +.miny dd ? +.maxy dd ? + +.charlen dd ? + +.flags dd ? + +begin + pushad + + mov eax, [TextRenderOptions] + and eax, 3 + mov eax, [FTLoadFlags+4*eax] + mov [.flags], eax + + mov edx, [.font] + xor ecx, ecx + mov eax, [edx+__TFont.height] + + mov [.scaler.face_id], edx + mov [.scaler.width], ecx + mov [.scaler.height], eax + mov [.scaler.pixel], 1 + + mov [.x], ecx + + stc + rcr ecx, 1 ; ecx = $80000000 + mov [.maxy], ecx + dec ecx + mov [.miny], ecx ; ecx = $7fffffff + + mov esi, [.pString] + +.char_loop: + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + mov [.charlen], edx + + test eax, eax + jz .finish + + cinvoke FTC_CMapCache_Lookup, [FTCCMapCache], [.font], -1, eax + + lea edx, [.glyph] + lea ecx, [.scaler] + + cinvoke FTC_ImageCache_LookupScaler, [FTCImageCache], ecx, [.flags], eax, edx, 0 + test eax, eax + jnz .char_loop + + mov ebx, [.glyph] + + sub eax, [ebx+FT_BitmapGlyphRec.top] ; eax = 0 here + mov edx, eax + add edx, [ebx+FT_BitmapGlyphRec.bitmap.rows] + + cmp eax, [.miny] + jge @f + mov [.miny], eax +@@: + cmp edx, [.maxy] + jle @f + mov [.maxy], edx +@@: + + mov eax, [ebx+FT_GlyphRec.advance.x] + add eax, $8000 + sar eax, 16 ; format 16.16 fixed decimal point. + add [.x], eax + + mov eax, [.charlen] + sub [.len], eax + ja .char_loop + + +.finish: + mov eax, [.x] + mov edx, [.maxy] + sub edx, [.miny] + + mov [esp+4*regEAX], eax + mov [esp+4*regEDX], edx + + popad + return +endp + + + + + + + +proc __DrawGlyph, .pImage, .pFTBitmap, .x, .y, .color +.spitch dd ? +.dpitch dd ? + +.drect RECT +.srect RECT + +.pixel_mode dd ? + +.sstart dd ? +.dstart dd ? + +.xsize dd ? + +.bpp dd ? +.bit_ofs dd ? + +.wrapx dd ? +.wrapy dd ? + +begin + pushad + + stdcall __fix_color, [.color], regEAX + mov [.color], eax + + mov ebx, [.pImage] + mov edi, [.pFTBitmap] + +; the glyph pixel mode handling. + movzx eax, [edi+FT_Bitmap.pixel_mode] + cmp eax, FT_PIXEL_MODE_BGRA + ja .finish + + mov [.pixel_mode], eax + movzx eax, [.bpp_const+eax] + mov [.bpp], eax + +; Clip the glyph to the image surface. + + mov eax, [ebx+TImage.wrapW] + mov ecx, [ebx+TImage.wrapH] + mov [.drect.right], eax + mov [.drect.bottom], ecx + xor eax, eax + mov [.drect.left], eax + mov [.drect.top], eax + + mov eax, [.x] + mov ecx, [.y] + mov [.srect.left], eax + mov [.srect.top], ecx + + mov eax, [edi+FT_Bitmap.width] + cmp [.pixel_mode], FT_PIXEL_MODE_LCD + jne @f + + cdq + mov ecx, 3 + div ecx + +@@: + add eax, [.srect.left] + mov [.srect.right], eax + + mov eax, [.srect.top] + add eax, [edi+FT_Bitmap.rows] + mov [.srect.bottom], eax + + lea eax, [.srect] + lea ecx, [.drect] + stdcall RectIntersect, ecx, eax, ecx + jc .finish ; the rectangles does not intersect! + + mov eax, [.drect.left] + mov ecx, [.drect.top] + sub eax, [.x] + sub ecx, [.y] + mov [.srect.left], eax + mov [.srect.top], ecx + + mov eax, [.drect.right] + mov ecx, [.drect.bottom] + sub eax, [.drect.left] + sub ecx, [.drect.top] + mov [.srect.right], eax ; width! + mov [.srect.bottom], ecx ; height! + +; End of clipping code - [.srect] contains the rectangle of the glyph that have to be drawn (left, top, width, height). +; [.drect] contains the destination rectangle. Both have the same size. + + mov ecx, [edi+FT_Bitmap.pitch] + mov [.spitch], ecx + +; glyph pixel pointer + + mov esi, [edi+FT_Bitmap.buffer] + test esi, esi + jz .finish + + mov eax, [.srect.top] + mov ecx, [.srect.left] + + imul eax, [.spitch] + imul ecx, [.bpp] + mov [.bit_ofs], ecx + shr ecx, 3 ; byte offs + and [.bit_ofs], 7 ; bit offs + + add esi, ecx + add esi, eax + +; TImage destination pixel pointer + + mov edi, [ebx+TImage.pPixels] + mov edx, [ebx+TImage.wrapH] + mov ecx, [ebx+TImage.width] + mov eax, [.drect.top] + add eax, [ebx+TImage.orgY] + cmp eax, edx + jb @f + sub eax, edx +@@: + imul eax, ecx + imul edx, ecx + + lea edx, [edi+4*edx] ; pointer to wrapy point. + lea edi, [edi+4*eax] ; pointer to the start of character line. + + shl ecx, 2 + mov [.wrapy], edx + mov [.dpitch], ecx + + +; prepare MMX constants + + pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 + pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff + psrlw mm1, 15 ; mm1 = 0001 0001 0001 0001 + psllw mm1, 8 ; mm1 = 0100 0100 0100 0100 + + movq mm2, mm1 ; mm2 = 0001 0001 0001 0001 + psllq mm2, 48 ; mm2 = 0100 0000 0000 0000 + + +.loopy: + mov [.sstart], esi + + mov edx, [.drect.left] ; X coordinate + mov ecx, [ebx+TImage.wrapW] + + add edx, [ebx+TImage.orgX] + cmp edx, ecx + jb @f + sub edx, ecx +@@: + mov ecx, [.srect.right] ; width! + mov [.xsize], ecx + + cmp [.pixel_mode], FT_PIXEL_MODE_BGRA + je .loopx32 + + cmp [.pixel_mode], FT_PIXEL_MODE_LCD + je .loopx24 + + cmp [.pixel_mode], FT_PIXEL_MODE_GRAY + je .loopx8 + + cmp [.pixel_mode], FT_PIXEL_MODE_MONO + jne .finish + + lodsd + bswap eax + mov ch, 32 + mov cl, byte [.bit_ofs] + shl eax, cl + sub ch, cl + +.loopx1: + shl eax, 1 + dec ch + jnz @f + + lodsd + bswap eax + mov ch, 32 + +@@: + jnc .next_x + + movd mm7, [.color] ; source pixel. + movd mm6, [edi+4*edx] ; destination pixel. + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + + punpckldq mm5, mm5 ; + punpcklbw mm6, mm0 ; byte to word destination pixel + packssdw mm5, mm5 ; mm5 = As, As, As, As + punpcklbw mm7, mm0 ; byte to word source pixel + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + psrlq mm5, 16 ; mm5 = 0 As As As + por mm5, mm2 ; mm5 = $100 As As As + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + pmullw mm7, mm5 ; Cs = Cs * As (For alpha As = $100*As ) + + paddusw mm6, mm7 ; Cd = Cs + Cd (For alpha Ad = $100*As + Ad*Bs) + psrlw mm6, 8 ; Cd = Cd/256 (For alpha Ad = As + Ad*Bs/$100) + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi+4*edx], mm6 + +.next_x: + inc edx + cmp edx, [ebx+TImage.wrapW] + jb @f + xor edx, edx +@@: + dec [.xsize] + jnz .loopx1 + jmp .nexty + + + +.loopx8: + movzx eax, byte [esi] ; intensity + add esi, 1 + + movd mm6, [.color] + movd mm7, eax + + punpcklbw mm6, mm0 ; byte to word color. + punpckldq mm7, mm7 ; + packssdw mm7, mm7 ; mm7 = I, I, I, I + + pmullw mm7, mm6 ; mm7 is the color to blend = Cs*256 + + movd mm6, [edi+4*edx] ; Destination color + punpcklbw mm6, mm0 ; byte to word destination pixel + + movq mm5, mm7 + psrlq mm5, 56 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs + paddusw mm6, mm7 ; Cd = 256*Cs + Cd*(256-As) + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi+4*edx], mm6 + + inc edx + cmp edx, [ebx+TImage.wrapW] + jb @f + xor edx, edx +@@: + dec [.xsize] + jnz .loopx8 + jmp .nexty + + +.loopx24: + movzx eax, byte [.color+3] ; color alpha. + movd mm5, eax ; mm5 = 00 00 00 00 00 00 00 Ac + + mov eax, [esi] ; source alpha Ab, Ag, Ar (for RGB display, for BGR is in reverse order.) + bswap eax + shr eax, 8 + or eax, $ff000000 ; eax = $ff Ar Ag Ab + add esi, 3 + movd mm6, eax ; mm6 = 00 00 00 00 ff Ar Ag Ab + + punpckldq mm5, mm5 ; + punpcklbw mm6, mm0 ; mm6 = ff Ar Ag Ab ; byte to word source alpha. + packssdw mm5, mm5 ; mm5 = Ac Ac Ac Ac + + pmullw mm5, mm6 + psrlw mm5, 8 ; mm5 = Ac, Ac*Ar, Ac*Ag, Ac*Ab ; total alpha. + + movd mm6, [edi+4*edx] ; destination pixel. + movd mm7, [.color] ; source pixel. + + punpcklbw mm6, mm0 ; byte to word destination pixel + punpcklbw mm7, mm0 ; byte to word source pixel + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + psllq mm5, 16 ; mm5 = Ac*Ar Ac*Ag Ac*Ab 0 + psrlq mm5, 16 ; mm5 = 0 Ac*Ar Ac*Ag Ac*Ab + por mm5, mm2 ; mm5 = $100 Ac*Ar Ac*Ag Ac*Ab + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + pmullw mm7, mm5 ; Cs = Cs * As (For alpha As = $100*As ) + + paddusw mm6, mm7 ; Cd = Cs + Cd (For alpha Ad = $100*As + Ad*Bs) + psrlw mm6, 8 ; Cd = Cd/256 (For alpha Ad = As + Ad*Bs/$100) + + packuswb mm6, mm0 + + movd [edi+4*edx], mm6 + + inc edx + cmp edx, [ebx+TImage.wrapW] + jb @f + xor edx, edx +@@: + dec ecx + jnz .loopx24 + jmp .nexty + + + +.loopx32: + movd mm7, [esi] ; source pixel. + movd mm6, [edi+4*edx] ; destination pixel. + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + + punpckldq mm5, mm5 ; + punpcklbw mm6, mm0 ; byte to word destination pixel + packssdw mm5, mm5 ; mm5 = As, As, As, As + punpcklbw mm7, mm0 ; byte to word source pixel + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + psrlq mm5, 16 ; mm5 = 0 As As As + por mm5, mm2 ; mm5 = $100 As As As + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + pmullw mm7, mm5 ; Cs = Cs * As (For alpha As = $100*As ) + + paddusw mm6, mm7 ; Cd = Cs + Cd (For alpha Ad = $100*As + Ad*Bs) + psrlw mm6, 8 ; Cd = Cd/256 (For alpha Ad = As + Ad*Bs/$100) + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi], mm6 + + add esi, 4 + + inc edx + cmp edx, [ebx+TImage.wrapW] + jb @f + xor edx, edx +@@: + dec [.xsize] + jnz .loopx32 + jmp .nexty + + +.nexty: + mov esi, [.sstart] + add esi, [.spitch] + + add edi, [.dpitch] + cmp edi, [.wrapy] + jne @f + mov edi, [ebx+TImage.pPixels] +@@: + dec [.srect.bottom] ; height + jnz .loopy + + +.finish: + emms + popad + return + +.bpp_const db 0, 1, 8, 2, 4, 24, 8, 32 + +endp + + + + + + DELETED freshlib/graphics/Win32/draw.asm Index: freshlib/graphics/Win32/draw.asm ================================================================== --- freshlib/graphics/Win32/draw.asm +++ /dev/null @@ -1,143 +0,0 @@ -uglobal - __Brush dd ? - __Pen dd ? -endg - - -lsEndCapRound = PS_ENDCAP_ROUND -lsEndCapSquare = PS_ENDCAP_SQUARE -lsEndCapFlat = PS_ENDCAP_FLAT - -lsJoinRound = PS_JOIN_ROUND -lsJoinBevel = PS_JOIN_BEVEL -lsJoinMiter = PS_JOIN_MITER - - -struct TDashList - .count dd ? ; count of the list in dwords - .dash dd ? - .space dd ? -ends - - -proc SetLineStyle, .color, .width, .style, .dashlist -.brush LOGBRUSH -begin - push eax ebx ecx edx - invoke DeleteObject, [__Pen] - - mov [.brush.lbStyle], BS_SOLID - mov eax, [.color] - bswap eax - ror eax, 8 - mov [.brush.lbColor], eax - - mov edx, PS_SOLID - cmp [.dashlist], 0 - je @f - mov edx, PS_USERSTYLE -@@: - cmp [.width], 0 - je @f - or edx, PS_GEOMETRIC -@@: - or edx, [.style] - - cmp [.width], 0 - jne @f - inc [.width] -@@: - xor ebx, ebx - mov ecx, [.dashlist] - jecxz @f - lea ebx, [ecx+4] ; pointer to the dash/space values - mov ecx, [ecx] -@@: - lea eax, [.brush] - invoke ExtCreatePen, edx, [.width], eax, ecx, ebx - mov [__Pen], eax - pop edx ecx ebx eax - return -endp - - -proc GetCurrentXY, .raster -.point POINT -begin - push ecx - lea eax, [.point] - invoke MoveToEx, [.raster], 0, 0, eax - invoke MoveToEx, [.raster], [.point.x], [.point.y], 0 - mov eax, [.point.x] - mov edx, [.point.y] - pop ecx - return -endp - - -proc MoveTo, .raster, .x, .y -begin - push eax ecx edx - invoke MoveToEx, [.raster], [.x], [.y], 0 - pop edx ecx eax - return -endp - - -proc DrawLine, .raster, .x, .y -begin - push eax ecx edx - invoke SelectObject, [.raster], [__Pen] - push eax - invoke LineTo, [.raster], [.x], [.y] - invoke SelectObject, [.raster] ; from the stack. - pop edx ecx eax - return -endp - - -proc DrawFillRect, .raster, .x, .y, .width, .height, .color -begin - push eax ecx edx - - mov eax, [.x] - mov ecx, [.y] - add [.width], eax - add [.height], ecx - - invoke CreateSolidBrush, [.color] - push eax - lea ecx, [.x] - invoke FillRect, [.raster], ecx, eax - - invoke DeleteObject ; brush from the stack. - pop edx ecx eax - return -endp - - -macro Outline [type, x, y] { - common -local ..types, ..points, ..count - dd ..count - dd ..types - dd ..points - common - label ..types byte - forward - db type - common - label ..points dword - forward - dd x - dd y -} - - - -proc Draw, .raster, .pDrawPoints -begin - - return -endp - ADDED freshlib/graphics/Win32/fonts.asm Index: freshlib/graphics/Win32/fonts.asm ================================================================== --- /dev/null +++ freshlib/graphics/Win32/fonts.asm @@ -0,0 +1,211 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Fonts managing library. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +iglobal + if used FontAttr.font_weights + +;fwLight = 0 +;fwDemilight = 1 +;fwNormal = 2 +;fwMedium = 3 +;fwDemibold = 4 +;fwBold = 5 +;fwExtraBold = 6 +;fwBlack = 7 + + FontAttr: + .font_weights dw FW_THIN, FW_EXTRALIGHT, FW_NORMAL, FW_MEDIUM, FW_SEMIBOLD, FW_BOLD, FW_EXTRABOLD, FW_HEAVY + end if +endg + + + +body FontCreate +.pwc dd ? +begin + push ebx ecx edx esi edi + + mov eax, [.weight] + and eax, 7 + movzx eax, [FontAttr.font_weights+2*eax] + + mov [.weight], eax + + neg [.size] + + stdcall StrLen, [.font_name] + mov ebx, eax + + stdcall StrPtr, [.font_name] + mov [.font_name], eax + + lea ecx, [8*ebx] + stdcall GetMem, ecx + mov edi, eax + + invoke MultiByteToWideChar, CP_UTF8, 0, [.font_name], ebx, edi, ecx + + mov eax, [.flags] + mov ebx, eax + mov ecx, eax + mov edx, eax + and ebx, ffItalic + and ecx, ffUnderline + and edx, ffStrikeOut + and eax, ffMonospaced + jz @f + mov eax, FIXED_PITCH +@@: + invoke CreateFontW, [.size], 0, 0, 0, [.weight], ebx, ecx, edx, \ + DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, \ + CLIP_DEFAULT_PRECIS, PROOF_QUALITY, eax, \ + edi + + if defined options.DebugMode & options.DebugMode + pushad + mov esi, eax + + invoke CreateCompatibleDC, 0 + mov ebx, eax + + invoke SelectObject, ebx, esi + push eax + + invoke GetTextFaceA, ebx, 1024, fontName + + OutputLn fontName + + invoke SelectObject, ebx ; from the stack + invoke DeleteObject, ebx + + popad + end if + + stdcall FreeMem, edi + pop edi esi edx ecx ebx + return +endp + +uglobal + if defined options.DebugMode & options.DebugMode + fontName rb 1024 + end if +endg + +body FontDestroy +begin + push eax ecx edx + invoke DeleteObject, [.pFont] + pop edx ecx eax + return +endp + + +; returns some font metrics +; +; Arguments: +; .font - the font +; Returns: +; EAX - the line height of the font. +; EBX - the ascender of the font. +; EDX - the descender of the font. + +body GetFontMetrics +.tm TEXTMETRIC +begin + push ecx + + invoke CreateCompatibleDC, 0 + mov ebx, eax + + invoke SelectObject, ebx, [.font] + push eax + + lea eax, [.tm] + invoke GetTextMetricsW, ebx, eax + + invoke SelectObject, ebx ; from the stack + + invoke DeleteDC, ebx + + mov eax, [.tm.tmHeight] + mov ebx, [.tm.tmAscent] + mov edx, [.tm.tmDescent] + + pop ecx + return +endp + + + +body GetFontList ;, .font +.list dd ? +begin + pushad + + invoke CreateCompatibleDC, 0 + mov ebx, eax + + stdcall CreateArray, 4 + mov [.list], eax + + lea eax, [.list] + invoke EnumFontFamiliesExW, ebx, 0, __enum_fonts, eax, 0 + + mov eax, [.list] + mov [esp+4*regEAX], eax + + invoke DeleteObject, ebx + popad + return +endp + + +proc __enum_fonts, .pLogFont, .pAttr, .FontType, .lparam +begin + push esi edi + + mov eax, [.pLogFont] + lea eax, [eax+LOGFONTW.lfFaceName] + + stdcall WideCharToUtf8, eax + push eax + + mov esi, [.lparam] + mov edx, [esi] + + stdcall ListIndexOfStr, edx, eax + jnc .exists + + stdcall AddArrayItems, edx, 1 + pop dword [eax] + mov [esi], edx + + or eax, -1 + pop edi esi + return + +.exists: + stdcall StrDel ; from the stack + or eax, -1 + pop edi esi + return +endp + + + + + + Index: freshlib/graphics/Win32/images.asm ================================================================== --- freshlib/graphics/Win32/images.asm +++ freshlib/graphics/Win32/images.asm @@ -1,72 +1,368 @@ -; only 16, 24 and 32 bpp are supported. -; It is stupid to support palleted modes and even 24bpp is not good... -proc CreateImage, .width, .height, .bpp -.bmi BITMAPINFOHEADER -begin - push ebx ecx edx esi - - stdcall GetMem, sizeof.TImage - jc .finish - - mov esi, eax - push [.width] [.height] [.bpp] - pop [esi+TImage.bpp] [esi+TImage.height] [esi+TImage.width] - - lea eax, [.bmi] - mov [eax+BITMAPINFOHEADER.biSize], sizeof.BITMAPINFOHEADER - mov [eax+BITMAPINFOHEADER.biPlanes], 1 - mov [eax+BITMAPINFOHEADER.biCompression], BI_RGB - mov [eax+BITMAPINFOHEADER.biSizeImage], 0 - mov [eax+BITMAPINFOHEADER.biXPelsPerMeter], 96 ; ??? - mov [eax+BITMAPINFOHEADER.biYPelsPerMeter], 96 ; ??? - mov [eax+BITMAPINFOHEADER.biClrUsed], 0 - mov [eax+BITMAPINFOHEADER.biClrImportant], 0 - - mov ecx, [.bpp] - mov [eax+BITMAPINFOHEADER.biBitCount], cx - push [.width] [.height] - neg dword [esp] - pop [eax+BITMAPINFOHEADER.biHeight] [eax+BITMAPINFOHEADER.biWidth] - - lea ecx, [esi+TImage.pData] - invoke CreateDIBSection, 0, eax, DIB_RGB_COLORS, ecx, 0, 0 - mov ebx, eax - - invoke CreateCompatibleDC, 0 - mov [esi+TImage.raster], eax - invoke SelectObject, eax, ebx - - clc - mov eax, esi -.finish: - pop esi edx ecx ebx - return -endp - - -proc DestroyImage, .ptrImage -begin - push eax ecx edx esi - - mov esi, [.ptrImage] - - invoke GetCurrentObject, [esi+TImage.raster], OBJ_BITMAP - invoke DeleteObject, eax - - invoke DeleteDC, [esi+TImage.raster] - stdcall FreeMem, esi - - pop esi edx ecx eax - return -endp - - -proc DrawImage, .raster, .pImage, .x, .y -begin - push esi - mov esi, [.pImage] - invoke BitBlt, [.raster], [.x], [.y], [esi+TImage.width], [esi+TImage.height], [esi+TImage.raster], 0, 0, SRCCOPY - pop esi - return -endp - +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Memory based images manipulation library. +; +; Target OS: Win32 +; +; Dependencies: memory.asm +; +; Notes: +;_________________________________________________________________________________________ + +uses msimg32, gdi32 + + +struct TWinImage + . TImage +; os dependent data + .hBitmap dd ? +ends + + + +body CreateImage2 + .bmi BITMAPV4HEADER +begin + pushad + + stdcall GetMem, sizeof.TWinImage + jc .finish + + mov esi, eax + + xor eax, eax + lea edi, [.bmi] + mov ecx, sizeof.BITMAPV4HEADER/4 + rep stosd + + inc eax + + mov ecx, [.width] + mov edx, [.height] + + cmp ecx, 0 + cmovle ecx, eax + + cmp edx, 0 + cmovle edx, eax + + mov [esi+TWinImage.width], ecx + mov [esi+TWinImage.height], edx + mov [esi+TWinImage.wrapW], ecx + mov [esi+TWinImage.wrapH], edx + + mov [.bmi.biSize], sizeof.BITMAPV4HEADER + mov [.bmi.biPlanes], 1 + +; it is already 0 +; mov [.bmi.biCompression], BI_RGB +; mov [.bmi.biSizeImage], 0 +; mov [.bmi.biClrUsed], 0 +; mov [.bmi.biClrImportant], 0 + + mov [.bmi.BlueMask], $000000ff + mov [.bmi.GreenMask], $0000ff00 + mov [.bmi.RedMask], $00ff0000 + mov [.bmi.AlphaMask], $ff000000 + + mov [.bmi.biBitCount], 32 + neg edx + mov [.bmi.biWidth], ecx + mov [.bmi.biHeight], edx + + lea eax, [.bmi] + lea ecx, [esi+TWinImage.pPixels] + xor edx, edx + invoke CreateDIBSection, edx, eax, DIB_RGB_COLORS, ecx, edx, edx + mov [esi+TWinImage.hBitmap], eax + + mov [esp+4*regEAX], esi + + lea esi, [esi+TWinImage.lock] + stdcall MutexCreate, 0, esi + stdcall MutexRelease, esi + + clc + +.finish: + popad + return +endp + + + + + +body DestroyImage +begin + pushad + + mov esi, [.ptrImage] + test esi, esi + jz .finish + +.lock_wait: + stdcall LockImg, esi + jc .lock_wait + + + invoke GdiFlush + invoke DeleteObject, [esi+TWinImage.hBitmap] + + lea edi, [esi+TWinImage.lock] + stdcall MutexDestroy, edi + + stdcall FreeMem, esi + +.finish: + popad + return +endp + + + +body LockImg ;, .pImage +begin + push eax + mov eax, [.pImage] + lea eax, [eax+TImage.lock] + stdcall WaitForMutex, eax, -1 + pop eax + return +endp + + + +body UnlockImg ;, .pImage +begin + push eax + mov eax, [.pImage] + test eax, eax + jz .unlocked + + lea eax, [eax+TImage.lock] + stdcall MutexRelease, eax + +.unlocked: + pop eax + return +endp + + + + +;;AC_SRC_OVER = $00000000 +;;AC_SRC_ALPHA = $01000000 +;; +;;struct BLENDFUNCTION +;; .BlendOp db ? +;; .BlendFlags db ? +;; .SourceConstantAlpha db ? +;; .AlphaFormat db ? +;;ends +; +;body DrawImageRect +;begin +; push eax ecx edx esi edi +; +; mov esi, [.pImage] +; test esi, esi +; jz .exit +; +; stdcall LockImg, esi +; jc .exit +; +; invoke CreateCompatibleDC, 0 +; mov ebx, eax +; +; invoke SelectObject, ebx, [esi+TWinImage.hBitmap] +; push eax +; +; invoke BitBlt, [.where], [.xDst], [.yDst], [.width], [.height], ebx, [.xSrc], [.ySrc], SRCCOPY +; +; invoke SelectObject, ebx ; from the stack +; invoke DeleteDC, ebx +; +; stdcall UnlockImg, esi +; +;.exit: +; pop edi esi edx ecx eax +; return +;endp +; + + +body DrawImageRect + +.maskUL RECT ; upper left +.maskUR RECT ; upper right +.maskLL RECT ; lower left +.maskLR RECT ; lower right + +.sRect RECT ; the rectangle used for intersecting the source rectangle. + +.dc dd ? +.oldbmp dd ? + +begin + pushad + + mov esi, [.pImage] + test esi, esi + jz .finish + + stdcall LockImg, esi + jc .finish + + xor eax, eax + mov ecx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + mov [.maskUL.left], eax ; UL + mov [.maskUL.top], eax ; UL + mov [.maskLL.left], eax ; LL + mov [.maskUR.top], eax ; UR + + mov [.maskUL.right], ecx ; UL + mov [.maskUL.bottom], edx ; UL + mov [.maskLR.left], ecx ; LR + mov [.maskLR.top], edx ; LR + mov [.maskLL.top], edx ; LL + mov [.maskLL.right], ecx ; LL + mov [.maskUR.left], ecx ; UR + mov [.maskUR.bottom], edx ; UR + + shl ecx, 1 + shl edx, 1 + + mov [.maskUR.right], ecx ; UR + mov [.maskLL.bottom], edx ; LL + mov [.maskLR.right], ecx ; LR + mov [.maskLR.bottom], edx ; LR + + mov ecx, [.xSrc] + mov edx, [.ySrc] + mov [.sRect.left], ecx + mov [.sRect.top], edx + add ecx, [.width] + add edx, [.height] + mov [.sRect.right], ecx + mov [.sRect.bottom], edx + + lea eax, [.sRect] + lea edx, [.maskUL] + stdcall RectIntersect, eax, eax, edx + jc .exit + +; at least some part of the image, has to be drawn. + + invoke CreateCompatibleDC, 0 + mov [.dc], eax + + invoke SelectObject, [.dc], [esi+TWinImage.hBitmap] + mov [.oldbmp], eax + + mov ebx, [esi+TImage.orgX] + mov edx, [esi+TImage.orgY] + + add [.sRect.left], ebx + add [.sRect.top], edx + add [.sRect.right], ebx + add [.sRect.bottom], edx + + mov ebx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + lea ecx, [.sRect] + + lea eax, [.maskUL] + stdcall RectIntersect2, eax, ecx + jc .upper_left_ok + + call .DoDraw ; the upper left rect is always drawn + +.upper_left_ok: + lea eax, [.maskUR] + stdcall RectIntersect2, eax, ecx + jc .upper_right_ok + + sub [.maskUR.left], ebx + sub [.maskUR.right], ebx + + mov edi, [.maskUL.right] ; width + sub edi, [.maskUL.left] + add [.xDst], edi + + call .DoDraw + + sub [.xDst], edi + + +.upper_right_ok: + lea eax, [.maskLL] + stdcall RectIntersect2, eax, ecx + jc .lower_left_ok + + sub [.maskLL.top], edx + sub [.maskLL.bottom], edx + + mov edi, [.maskUR.bottom] + sub edi, [.maskUR.top] + add [.yDst], edi + + call .DoDraw + + sub [.yDst], edi + +.lower_left_ok: + lea eax, [.maskLR] + stdcall RectIntersect2, eax, ecx + jc .lower_right_ok + + sub [.maskLR.left], ebx + sub [.maskLR.top], edx + sub [.maskLR.right], ebx + sub [.maskLR.bottom], edx + + mov edi, [.maskUL.right] + sub edi, [.maskUL.left] + add [.xDst], edi + mov edi, [.maskUR.bottom] + sub edi, [.maskUR.top] + add [.yDst], edi + + call .DoDraw + +.lower_right_ok: + + invoke SelectObject, [.dc], [.oldbmp] + invoke DeleteDC, [.dc] + +.exit: + stdcall UnlockImg, esi + +.finish: + popad + return + + +; Draws the rectangle pointed by EAX + +.DoDraw: + pushad + +; computes in right/bottom, width/height + mov ebx, [eax+RECT.bottom] + mov edx, [eax+RECT.right] + sub ebx, [eax+RECT.top] + sub edx, [eax+RECT.left] + +; draws + invoke BitBlt, [.where], [.xDst], [.yDst], edx, ebx, [.dc], [eax+RECT.left], [eax+RECT.top], SRCCOPY + + popad + retn + +endp Index: freshlib/graphics/Win32/text.asm ================================================================== --- freshlib/graphics/Win32/text.asm +++ freshlib/graphics/Win32/text.asm @@ -1,67 +1,571 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Text drawing library. +; +; Target OS: Win32 +; +; Dependencies: memory.asm +; +; Notes: +;_________________________________________________________________________________________ + + + + +body DrawDecomposedString ;, .pImage, .pArray, .x, .y, .font, .color + +.startX dd ? + +.old_font dd ? +.old_bmp dd ? + +.img dd ? + +begin + pushad + + mov eax, [.x] + mov [.startX], eax + + stdcall GetFontMetrics, [.font] + sub [.y], ebx + + mov ebx, [.pImage] + stdcall CreateImage2, 100, 100, FALSE + mov [.img], eax + + invoke CreateCompatibleDC, 0 + mov ebx, eax + + mov eax, [.img] + invoke SelectObject, ebx, [eax+TWinImage.hBitmap] + mov [.old_bmp], eax + + invoke SelectObject, ebx, [.font] + mov [.old_font], eax + + invoke SetBkMode, ebx, TRANSPARENT + invoke SelectClipRgn, ebx, 0 + invoke SetTextColor, ebx, $ffffff + invoke SetTextAlign, ebx, TA_TOP or TA_LEFT + + mov esi, [.pArray] + xor edi, edi + dec edi + +.char_loop: + inc edi + cmp edi, [esi+TArray.count] + jae .finish + + cmp word [esi+TArray.array+8*edi+TTextChar.width], 0 + je .char_ok + + movzx ecx, word [esi+TArray.array+8*edi+TTextChar.width] + stdcall DrawSolidRect, [.img], 0, 0, ecx, [esi+TArray.lparam], 0 + + lea eax, [esi+TArray.array+8*edi+TTextChar.code] + movzx ecx, word [esi+TArray.array+8*edi+TTextChar.width] + invoke ExtTextOutW, ebx, 0, 0, 0, 0, eax, 1, 0 + + movzx ecx, word [esi+TArray.array+8*edi+TTextChar.width] + stdcall __BlendAlphaMask, [.pImage], [.x], [.y], [.img], 0, 0, ecx, [esi+TArray.lparam], [.color] + + movzx eax, word [esi+TArray.array+8*edi+TTextChar.width] + add [.x], eax + +.char_ok: +; check for new line. + movzx eax, word [esi+TArray.array+8*edi+TTextChar.height] + test eax, eax + jz .char_loop + + add [.y], eax + mov eax, [.startX] + mov [.x], eax + jmp .char_loop + + +.finish: + invoke SelectObject, ebx, [.old_font] + invoke SelectObject, ebx, [.old_bmp] + invoke DeleteDC, ebx + + stdcall DestroyImage, [.img] + + popad + return +endp + + + + +body TextDecompose ;, .hString, .font + + .miny dd ? + .maxy dd ? + + .more dd ? + .string rd 2 + .code dd ? + + .size SIZE + + .old_font dd ? + +begin + pushad + + invoke CreateCompatibleDC, 0 + mov ebx, eax + + invoke SelectClipRgn, ebx, 0 + invoke SelectObject, ebx, [.font] + mov [.old_font], eax + + xor ecx, ecx + + mov [.string], ecx + mov [.string+4], ecx + + inc ecx + + ror ecx, 1 ; ecx = $80000000 + mov [.maxy], ecx + dec ecx + mov [.miny], ecx ; ecx = $7fffffff + + + mov word [.string], '|' + mov word [.string+2], '|' + + lea ecx, [.string] + lea eax, [.size] + invoke GetTextExtentPoint32W, ebx, ecx, 1, eax + + mov eax, [.size.cx] + mov [.more], eax + + stdcall StrPtr, [.hString] + mov esi, eax + + stdcall CreateArray, sizeof.TTextChar + mov edi, eax + +.char_loop: + + stdcall DecodeUtf8, [esi] + jc .finish + + add esi, edx + + test eax, eax + jz .end + + mov [.code], eax + mov word [.string], ax + + lea ecx, [.string] + lea eax, [.size] + invoke GetTextExtentPoint32W, ebx, ecx, 2, eax + + stdcall AddArrayItems, edi, 1 + mov edi, edx + + mov ecx, [.size.cx] + sub ecx, [.more] + + mov dword [eax+TTextChar.width], ecx + mov ecx, [.code] + mov [eax+TTextChar.code], ecx + + jmp .char_loop + +.end: + clc + +.finish: + pushf + invoke SelectObject, ebx, [.old_font] ; old font from the stack. + invoke DeleteDC, ebx + + stdcall GetFontMetrics, [.font] + popf + + mov [esp+4*regEDX], ebx ; font ascent + mov [esp+4*regECX], edx ; font descent + mov [edi+TArray.lparam], eax ; line height + + mov [esp+4*regEAX], edi + + popad + return +endp + + + + +;interface DrawString, .pImage, .pString, .len, .x, .y, .font, .color + +body DrawString ;, .pImage, .pString, .len, .x, .y, .font, .color +.pwc dd ? +.charlen dd ? + +.img dd ? +.size SIZE + +.tm TEXTMETRIC + +begin + push eax ebx ecx edx + + invoke CreateCompatibleDC, 0 + mov ebx, eax + + invoke SelectObject, ebx, [.font] + push eax + + invoke SetBkMode, ebx, TRANSPARENT + invoke SetTextAlign, ebx, TA_TOP or TA_LEFT + invoke SelectClipRgn, ebx, 0 + invoke SetTextColor, ebx, $ffffff + + lea eax, [.tm] + invoke GetTextMetricsW, ebx, eax + + mov eax, [.tm.tmAscent] + sub [.y], eax + +; convert the string: + + mov ecx, [.len] + shl ecx, 2 + stdcall GetMem, ecx + mov [.pwc], eax + shr ecx, 1 + + invoke MultiByteToWideChar, CP_UTF8, 0, [.pString], [.len], [.pwc], ecx + mov [.charlen], eax + + lea eax, [.size] + invoke GetTextExtentPoint32W, ebx, [.pwc], [.charlen], eax + + stdcall CreateImage2, [.size.cx], [.size.cy], FALSE + mov [.img], eax + + invoke SelectObject, ebx, [eax+TWinImage.hBitmap] + push eax + + xor eax, eax + invoke ExtTextOutW, ebx, eax, eax, eax, eax, [.pwc], [.charlen], eax + + invoke SelectObject, ebx ; old bitmap from the stack. + invoke SelectObject, ebx ; old font from the stack. + invoke DeleteDC, ebx + + stdcall __BlendAlphaMask, [.pImage], [.x], [.y], [.img], 0, 0, [.size.cx], [.size.cy], [.color] + + stdcall DestroyImage, [.img] + stdcall FreeMem, [.pwc] + + pop edx ecx ebx eax + + mov eax, [.size.cx] + mov ebx, [.tm.tmAscent] + mov edx, [.size.cy] + + return +endp + + + + + +proc __BlendAlphaMask, .pDstImage, .xDst, .yDst, .pSrcImage, .xSrc, .ySrc, .width, .height, .color +.srect RECT +.drect RECT +.rect RECT + +.stepSrc dd ? +.stepDst dd ? +.wrapY dd ? +begin + pushad + + stdcall __fix_color, [.color], regEAX + mov [.color], eax + + mov esi, [.pSrcImage] + mov edi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.srect.left], eax + mov [.srect.top], eax + mov [.srect.right], ecx + mov [.srect.bottom], edx + + mov ecx, [edi+TImage.wrapW] + mov edx, [edi+TImage.wrapH] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.xSrc] + mov edx, [.ySrc] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.srect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + mov ecx, [.xSrc] + mov edx, [.ySrc] + sub ecx, [.xDst] + sub edx, [.yDst] + +; convert the rect to the destination coordinates. + sub [.srect.left], ecx + sub [.srect.top], edx + sub [.srect.right], ecx + sub [.srect.bottom], edx + + lea eax, [.srect] + lea ebx, [.drect] + stdcall RectIntersect, ebx, ebx, eax + jc .finish + + stdcall RectCopy, eax, ebx ; srect = drect + +;convert back to source coordinates. + add [.srect.left], ecx + add [.srect.top], edx + add [.srect.right], ecx + add [.srect.bottom], edx + +; here [.srect] contains the source rectange +; [.drect] contains the destination rectangle +; the width and height of the rectangles is the same. + + mov ecx, [.srect.left] + mov edx, [.srect.top] + sub [.srect.right], ecx + sub [.srect.bottom], edx + + mov ecx, [esi+TImage.width] + mov edx, [edi+TImage.width] + shl ecx, 2 + shl edx, 2 + mov [.stepSrc], ecx + mov [.stepDst], edx + + mov ecx, [.srect.top] + imul ecx, [esi+TImage.width] + add ecx, [.srect.left] + mov esi, [esi+TImage.pPixels] + lea esi, [esi+4*ecx] + + mov eax, [edi+TImage.wrapH] + imul eax, [.stepDst] + add eax, [edi+TImage.pPixels] + mov [.wrapY], eax + + mov edx, [.drect.top] + add edx, [edi+TImage.orgY] + cmp edx, [edi+TImage.wrapH] + jb @f + sub edx, [edi+TImage.wrapH] +@@: + imul edx, [.stepDst] + add edx, [edi+TImage.pPixels] + +; prepare MMX constants + + pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 + pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff + psrlw mm1, 15 ; mm1 = 0001 0001 0001 0001 + psllw mm1, 8 ; mm1 = 0100 0100 0100 0100 + +.loopY: + + xor ebx, ebx + mov ecx, [.drect.left] ; the width of the source rectangle + add ecx, [edi+TImage.orgX] + cmp ecx, [edi+TImage.wrapW] + jb .loopX + sub ecx, [edi+TImage.wrapW] + +.loopX: + push edx + + movzx eax, byte [esi+4*ebx] + movzx edx, byte [esi+4*ebx+1] + + lea eax, [eax+2*edx] + movzx edx, byte [esi+4*ebx+2] + + add eax, edx + shr eax, 2 ; grayscale. + + pop edx + + movd mm6, [.color] + movd mm7, eax + + punpcklbw mm6, mm0 ; byte to word color. + punpckldq mm7, mm7 ; + packssdw mm7, mm7 ; mm7 = I, I, I, I + + pmullw mm7, mm6 ; mm7 is the color to blend = Cs*256 + + movd mm6, [edx+4*ecx] ; Destination color + punpcklbw mm6, mm0 ; byte to word destination pixel + + movq mm5, mm7 + psrlq mm5, 56 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs + paddusw mm6, mm7 ; Cd = 256*Cs + Cd*(256-As) + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edx+4*ecx], mm6 + + inc ecx + cmp ecx, [edi+TImage.wrapW] + jb @f + xor ecx, ecx +@@: + + inc ebx + cmp ebx, [.srect.right] + jne .loopX + +; next Y + add esi, [.stepSrc] + add edx, [.stepDst] + cmp edx, [.wrapY] + jb @f + mov edx, [edi+TImage.pPixels] +@@: + + dec [.srect.bottom] + jnz .loopY + +.finish: + emms + popad + return +endp + + + + +;interface GetTextBounds, .pString, .len, .font -proc DrawString, .raster, .ptrString, .len, .x, .y, .font +body GetTextBounds ;, .pString, .len, .font +.size SIZE +.pwc dd ? +.charlen dd ? begin - push eax ecx edx - - cmp [.font], 0 - jne @f - - invoke GetStockObject, DEFAULT_GUI_FONT - mov [.font], eax - + push ebx ecx + + invoke CreateCompatibleDC, 0 + mov ebx, eax + +; first convert the string: + mov ecx, [.len] + test ecx, ecx + jns @f + stdcall StrLen, [.pString] + mov ecx, eax @@: - invoke SelectObject, [.raster], [.font] + shl ecx, 3 + stdcall GetMem, ecx + mov [.pwc], eax + invoke MultiByteToWideChar, CP_UTF8, 0, [.pString], [.len], [.pwc], ecx + mov [.charlen], eax + + invoke SelectClipRgn, ebx, 0 + invoke SelectObject, ebx, [.font] push eax - invoke SetBkMode, [.raster], TRANSPARENT - invoke SetTextAlign, [.raster], TA_NOUPDATECP or TA_LEFT or TA_BASELINE + lea eax, [.size] + invoke GetTextExtentPoint32W, ebx, [.pwc], [.charlen], eax + invoke SelectObject, ebx ; from the stack. + invoke DeleteDC, ebx - invoke TextOut, [.raster], [.x], [.y], [.ptrString], [.len] + mov eax, [.size.cx] + mov edx, [.size.cy] - invoke SelectObject, [.raster] ; old font from the stack. - pop edx ecx eax + stdcall FreeMem, [.pwc] + pop ecx ebx return endp +; returns: +; eax - x offset of the baseline of the string. +; edx - y offset of the baseline of the string. -proc GetTextBounds, .raster, .ptrString, .len, .font -.size SIZE +proc GetTextOffset, .context, .ptrString, .len, .font +.metrics TEXTMETRIC +.pwc dd ? +.charlen dd ? begin - push ecx + push ebx ecx + +; first convert the string: + + mov ecx, [.len] + shl ecx, 3 + stdcall GetMem, ecx + mov [.pwc], eax + invoke MultiByteToWideChar, CP_UTF8, 0, [.ptrString], [.len], [.pwc], ecx + mov [.charlen], eax + + mov ebx, [.context] cmp [.font], 0 jne @f invoke GetStockObject, DEFAULT_GUI_FONT mov [.font], eax @@: - invoke SelectObject, [.raster], [.font] + invoke SelectObject, [ebx+TContext.handle], [.font] push eax - lea eax, [.size] - invoke GetTextExtentPoint32, [.raster], [.ptrString], [.len], eax - invoke SelectObject, [.raster] ; from the stack. - - mov eax, [.size.cx] - mov edx, [.size.cy] - - pop ecx - return -endp - - -proc GetTextOffset, .raster, .ptrString, .len, .font -.metrics TEXTMETRIC -begin - push ecx lea eax, [.metrics] - invoke GetTextMetrics, [.raster], eax + invoke GetTextMetricsW, [ebx+TContext.handle], eax + invoke SelectObject, [ebx+TContext.handle] ; from the stack. xor eax, eax mov edx, [.metrics.tmAscent] sub edx, [.metrics.tmInternalLeading] - pop ecx + + stdcall FreeMem, [.pwc] + pop ecx ebx return endp ADDED freshlib/graphics/all.asm Index: freshlib/graphics/all.asm ================================================================== --- /dev/null +++ freshlib/graphics/all.asm @@ -0,0 +1,20 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Graphics amalgamation include file. +; Includes all graphic libraries of FreshLib +; +; Target OS: Any +;_________________________________________________________________________________________ + + +include 'rectangles.asm' +include 'images.asm' +include 'draw.asm' +include 'giflib.asm' +include 'pnglib.asm' +include 'fonts.asm' +include 'text.asm' +include 'recycler.asm' Index: freshlib/graphics/draw.asm ================================================================== --- freshlib/graphics/draw.asm +++ freshlib/graphics/draw.asm @@ -1,62 +1,1151 @@ -include "%TargetOS%/draw.asm" - -struct TBounds - .x dd ? - .y dd ? - .width dd ? - .height dd ? -ends - - -bxRaised = 1 -bxSunken = 2 -bxFlat = 3 - -proc DrawBox, .raster, .x, .y, .width, .height, .bkground, .border -begin - push eax ecx edx - - dec [.width] - dec [.height] - dec [.width] - dec [.height] - - push [.bkground] - push [.height] - push [.width] - - inc [.width] - inc [.height] - - mov eax, [.x] - mov ecx, [.y] - add [.width], eax - add [.height], ecx - - mov eax, $ffffff - mov ecx, $101010 - mov edx, [.border] - - cmp edx, 1 - je .colorok - - xchg eax, ecx - cmp edx, 2 - je .colorok - - mov ecx, eax - -.colorok: - stdcall SetLineStyle, eax, 0, 0, 0 - stdcall MoveTo, [.raster], 0, [.height] - stdcall DrawLine, [.raster], 0, 0 - stdcall DrawLine, [.raster], [.width], 0 - stdcall SetLineStyle, ecx, 0, 0, 0 - stdcall DrawLine, [.raster], [.width], [.height] - stdcall DrawLine, [.raster], 0, [.height] - - stdcall DrawFillRect, [.raster], 1, 1 ; remaining from the stack - - pop edx ecx eax - return -endp +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Draw library contains procedures for drawing oprtations. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains OS independent part and includes OS dependent files. +;_________________________________________________________________________________________ +module "Draw library" + + + +proc DrawSolidRect, .pDstImage, .x, .y, .width, .height, .color +.drect RECT +.rect RECT +.stepy dd ? +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + stdcall LockImg, esi + jc .finish + +; [.drect] contains the destination rectangle + + mov eax, [esi+TImage.width] + shl eax, 2 + mov [.stepy], eax + + mov edi, [.drect.top] + add edi, [esi+TImage.orgY] + cmp edi, [esi+TImage.wrapH] + jb @f + sub edi, [esi+TImage.wrapH] +@@: + imul edi, [.stepy] + add edi, [esi+TImage.pPixels] ; the address of the starting line of the rectangle. + + mov eax, [.drect.left] + mov edx, [.drect.right] + + add eax, [esi+TImage.orgX] + add edx, [esi+TImage.orgX] + + cmp eax, [esi+TImage.wrapW] + jbe @f + sub eax, [esi+TImage.wrapW] +@@: + cmp edx, [esi+TImage.wrapW] + jbe @f + sub edx, [esi+TImage.wrapW] +@@: + mov [.drect.left], eax + mov [.drect.right], edx + + mov ecx, [.drect.bottom] + add ecx, [esi+TImage.orgY] + cmp ecx, [esi+TImage.wrapH] + jb @f + sub ecx, [esi+TImage.wrapH] +@@: + imul ecx, [.stepy] + add ecx, [esi+TImage.pPixels] ; the address of the end of the rectangle. + + mov edx, [esi+TImage.wrapH] + imul edx, [.stepy] + add edx, [esi+TImage.pPixels] ; the address of the Y wrap + + stdcall __fix_color, [.color], regEAX + +.loopY: + + mov ebx, [.drect.right] ; the end of the rect. + +.loopX: + dec ebx + cmovs ebx, [esi+TImage.wrapW] + + mov [edi+4*ebx], eax ; fill the color, does not affect the flags. + + cmp ebx, [.drect.left] + jne .loopX + + add edi, [.stepy] + + cmp edi, edx + jb @f + mov edi, [esi+TImage.pPixels] +@@: + cmp edi, ecx + jne .loopY + + stdcall UnlockImg, [.pDstImage] + clc + +.finish: + popad + return +endp + + + + + +proc BlendSolidRect, .pDstImage, .x, .y, .width, .height, .color +.drect RECT +.rect RECT +.stepY dd ? +.wrapY dd ? +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + stdcall LockImg, esi + jc .finish + +; [.drect] contains the destination rectangle + + mov ecx, [.drect.left] + mov edx, [.drect.top] + sub [.drect.right], ecx + sub [.drect.bottom], edx + + mov ebx, [esi+TImage.width] + mov ecx, [esi+TImage.wrapH] + + shl ebx, 2 + mov [.stepY], ebx + + mov edi, [.drect.top] + add edi, [esi+TImage.orgY] + cmp edi, ecx + jb @f + sub edi, ecx +@@: + imul edi, ebx + imul ecx, ebx + add edi, [esi+TImage.pPixels] + add ecx, [esi+TImage.pPixels] + + mov [.wrapY], ecx + + mov edx, [esi+TImage.wrapW] + + mov ecx, [.drect.left] + add ecx, [esi+TImage.orgX] + cmp ecx, edx + jb @f + sub ecx, edx +@@: + mov [.drect.left], ecx + + stdcall __fix_color, [.color], regEAX + +; prepare MMX constants + + pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 + pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff + psrlw mm1, 8 ; mm1 = 00ff 00ff 00ff 00ff + +; the color + movd mm7, eax + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + punpcklbw mm7, mm0 ; byte to word source pixel + psllw mm7, 8 ; Cs = Cs*256 + + xor edx, edx + +.loopY: + mov ecx, [.drect.right] + mov ebx, [.drect.left] + +.loopX: + movd mm6, [edi+4*ebx] ; destination pixel. + punpcklbw mm6, mm0 ; byte to word destination pixel + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + paddusw mm6, mm7 ; Cd = Cs + Cd + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi+4*ebx], mm6 + + inc ebx + cmp ebx, [esi+TImage.wrapW] + cmove ebx, edx + + dec ecx + jnz .loopX + +; next Y + add edi, [.stepY] + cmp edi, [.wrapY] + cmove edi, [esi+TImage.pPixels] + + dec [.drect.bottom] + jnz .loopY + + emms + stdcall UnlockImg, [.pDstImage] + +.finish: + popad + return +endp + + + + +proc XorRect, .pDstImage, .x, .y, .width, .height, .mask +.drect RECT +.rect RECT +.stepy dd ? +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + stdcall LockImg, esi + jc .finish + +; [.drect] contains the destination rectangle + + mov eax, [esi+TImage.width] + shl eax, 2 + mov [.stepy], eax + + mov edi, [.drect.top] + add edi, [esi+TImage.orgY] + cmp edi, [esi+TImage.wrapH] + jb @f + sub edi, [esi+TImage.wrapH] +@@: + imul edi, [.stepy] + add edi, [esi+TImage.pPixels] ; the address of the starting line of the rectangle. + + mov eax, [.drect.left] + mov edx, [.drect.right] + + add eax, [esi+TImage.orgX] + add edx, [esi+TImage.orgX] + + cmp eax, [esi+TImage.wrapW] + jbe @f + sub eax, [esi+TImage.wrapW] +@@: + cmp edx, [esi+TImage.wrapW] + jbe @f + sub edx, [esi+TImage.wrapW] +@@: + mov [.drect.left], eax + mov [.drect.right], edx + + mov ecx, [.drect.bottom] + add ecx, [esi+TImage.orgY] + cmp ecx, [esi+TImage.wrapH] + jb @f + sub ecx, [esi+TImage.wrapH] +@@: + imul ecx, [.stepy] + add ecx, [esi+TImage.pPixels] ; the address of the end of the rectangle. + + mov edx, [esi+TImage.wrapH] + imul edx, [.stepy] + add edx, [esi+TImage.pPixels] ; the address of the Y wrap + + mov eax, [.mask] + +.loopY: + + mov ebx, [.drect.right] ; the end of the rect. + +.loopX: + dec ebx + cmovs ebx, [esi+TImage.wrapW] + + xor dword [edi+4*ebx], eax ; fill the color, does not affect the flags. + + cmp ebx, [.drect.left] + jne .loopX + + add edi, [.stepy] + + cmp edi, edx + jb @f + mov edi, [esi+TImage.pPixels] +@@: + cmp edi, ecx + jne .loopY + + stdcall UnlockImg, [.pDstImage] + clc + +.finish: + popad + return +endp + + + + + +proc __fix_color, .color, .reg +begin + pushad + + movzx ebx, byte [.color+3] ; alpha + mov ecx, ebx + + mov esi, $ff + + movzx eax, byte [.color+2] ; red + mul ebx + div esi + + shl ecx, 8 + mov cl, al + + movzx eax, byte [.color+1] ; green + mul ebx + div esi + + shl ecx, 8 + mov cl, al + + movzx eax, byte [.color] ; blue + mul ebx + div esi + + shl ecx, 8 + mov cl, al + + mov eax, [.reg] + lea eax, [esp+4*eax] + + mov [eax], ecx + popad + return +endp + + + + +trtUpper = 0 +trtLower = 1 +trtLeft = 0 +trtRight = 2 + + +proc BlendTriangle, .pDstImage, .x, .y, .size, .kind, .color +.drect RECT +.rect RECT +.back dd ? +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.size] + add edx, [.size] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + stdcall LockImg, esi + jc .finish + +; [.drect] contains the destination rectangle + + mov ecx, [.drect.right] + mov edx, [.drect.bottom] + sub ecx, [.drect.left] + sub edx, [.drect.top] + + mov edi, [.drect.top] + imul edi, [esi+TImage.width] + add edi, [.drect.left] + lea edi, [edi*4] + add edi, [esi+TImage.pPixels] + + mov esi, [esi+TImage.width] + lea esi, [4*esi] + + stdcall __fix_color, [.color], regEAX + mov [.color], eax + and [.back], 0 + +.loopY: + mov ebx, ecx ; the width of the source rectangle + +.loopX: + dec ebx + js .next_y + + cmp [.kind], trtUpper or trtLeft ; 0 + je .upperleft + + cmp [.kind], trtLower or trtLeft ; 1 + je .lowerleft + + cmp [.kind], trtUpper or trtRight ; 2 + je .upperright + + cmp [.kind], trtLower or trtRight ; 3 + je .lowerright + +.put_pixel: + stdcall _BlendPixel, [edi+4*ebx], [.color] + mov [edi+4*ebx], eax + jmp .loopX + +.upperleft: + cmp ebx, edx + jae .loopX + jmp .put_pixel + +.lowerleft: + cmp ebx, [.back] + jae .loopX + jmp .put_pixel + +.upperright: + cmp ebx, [.back] + jb .loopX + jmp .put_pixel + +.lowerright: + cmp ebx, edx + jb .loopX + jmp .put_pixel + +.next_y: + add edi, esi + inc [.back] + dec edx + jnz .loopY + + stdcall UnlockImg, [.pDstImage] + +.finish: + popad + return +endp + + + + + +; Draws horizontal line from .x1 to .x2 on y with color [.color] +; +; + +proc DrawHLine, .pImage, .x1, .x2, .y, .color +begin + + + + + + + return +endp + + + + + + +proc DrawVLine, .pImage, .y1, .y2, .x, .color +begin + + + return +endp + + + + +proc ScrollImageH, .pImage, .dist +begin + pushad + + mov esi, [.pImage] + mov ecx, [esi+TImage.wrapW] + + mov eax, [esi+TImage.orgX] + add eax, [.dist] + jns @f + add eax, ecx +@@: + cmp eax, ecx + jl @f + sub eax, ecx +@@: + mov [esi+TImage.orgX], eax + + popad + return +endp + + +proc ScrollImageV, .pImage, .dist +begin + pushad + + mov esi, [.pImage] + mov ecx, [esi+TImage.wrapH] + + mov eax, [esi+TImage.orgY] + add eax, [.dist] + jns @f + add eax, ecx +@@: + cmp eax, ecx + jl @f + sub eax, ecx +@@: + mov [esi+TImage.orgY], eax + popad + return +endp + + + + + + + + + + +proc ScrollRectUp2, .pDstImage, .x, .y, .width, .height, .lines +.drect RECT +.rect RECT +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + + stdcall LockImg, esi + jc .finish + +; here [.srect] contains the source rectange +; [.drect] contains the destination rectangle +; the width and height of the rectangles is the same. + + mov ebx, [.drect.right] + mov edx, [.drect.bottom] + sub ebx, [.drect.left] ; width of the rect in pixels. + sub edx, [.drect.top] + sub edx, [.lines] ; height of the rect. + jc .end_scroll + + mov edi, [.drect.top] + imul edi, [esi+TImage.width] + add edi, [.drect.left] + lea edi, [edi*4] + add edi, [esi+TImage.pPixels] + + mov eax, [esi+TImage.width] + mov ecx, eax + sub eax, ebx + lea eax, [4*eax] ; the skip count in bytes. + + imul ecx, [.lines] + lea esi, [edi+4*ecx] ; the source address. + +.loopY: + mov ecx, ebx + rep movsd ; loop X + + lea esi, [esi+eax] + lea edi, [edi+eax] + + dec edx + jnz .loopY + +.end_scroll: + stdcall UnlockImg, [.pDstImage] + +.finish: + popad + return +endp + + + +proc ScrollRectDn2, .pDstImage, .x, .y, .width, .height, .lines +.drect RECT +.rect RECT +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + stdcall LockImg, esi + jc .finish + + mov ebx, [.drect.right] + mov edx, [.drect.bottom] + sub ebx, [.drect.left] ; width of the rect in pixels. + sub edx, [.drect.top] + sub edx, [.lines] ; height of the rect. + jc .end_scroll + + mov edi, [.drect.bottom] + dec edi + imul edi, [esi+TImage.width] + add edi, [.drect.left] + + lea edi, [edi*4] + add edi, [esi+TImage.pPixels] + + mov eax, [esi+TImage.width] + mov ecx, eax + add eax, ebx + lea eax, [4*eax] ; the skip count in bytes. + neg eax + + imul ecx, [.lines] + neg ecx + lea esi, [edi+4*ecx] ; the source address. + neg ecx + +.loopY: + mov ecx, ebx + rep movsd ; loop X + + lea esi, [esi+eax] + lea edi, [edi+eax] + + dec edx + jnz .loopY + +.end_scroll: + + cld + stdcall UnlockImg, [.pDstImage] + +.finish: + popad + return +endp + + + + + + +proc ScrollRectLeft2, .pDstImage, .x, .y, .width, .height, .cols +.drect RECT +.rect RECT +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + + stdcall LockImg, esi + jc .finish + +; [.drect] contains the destination rectangle + + mov ebx, [.drect.bottom] + mov edx, [.drect.right] + sub ebx, [.drect.top] ; height of the rect. + sub edx, [.drect.left] ; width of the rect in pixels. + sub edx, [.cols] + jc .end_scroll + + mov edi, [.drect.top] + imul edi, [esi+TImage.width] + add edi, [.drect.left] + lea edi, [edi*4] + add edi, [esi+TImage.pPixels] ; pointer to the begining of the drect + + mov eax, [esi+TImage.width] + mov ecx, [.cols] + sub eax, edx + + lea esi, [edi+4*ecx] ; the source address. + +.loopY: + mov ecx, edx + rep movsd ; loop X + + lea esi, [esi+4*eax] + lea edi, [edi+4*eax] + + dec ebx + jnz .loopY + +.end_scroll: + stdcall UnlockImg, [.pDstImage] + +.finish: + popad + return +endp + + + + +proc ScrollRectRight2, .pDstImage, .x, .y, .width, .height, .cols +.drect RECT +.rect RECT +begin + pushad + + mov esi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + + stdcall LockImg, esi + jc .finish + +; [.drect] contains the destination rectangle + + mov ebx, [.drect.bottom] + mov edx, [.drect.right] + sub ebx, [.drect.top] ; height of the rect. + sub edx, [.drect.left] ; width of the rect in pixels. + sub edx, [.cols] + jc .end_scroll + + mov edi, [.drect.top] + imul edi, [esi+TImage.width] + add edi, [.drect.left] + add edi, edx + + lea edi, [edi*4-4] + add edi, [esi+TImage.pPixels] ; pointer to the begining of the drect + + mov eax, [esi+TImage.width] + mov ecx, [.cols] + add eax, edx + + neg ecx + lea esi, [edi+4*ecx] ; the source address. + + std + +.loopY: + mov ecx, edx + rep movsd ; loop X + + lea esi, [esi+4*eax] + lea edi, [edi+4*eax] + + dec ebx + jnz .loopY + + cld + +.end_scroll: + stdcall UnlockImg, [.pDstImage] + +.finish: + popad + return +endp + + + + +proc ApplyAlphaRect, .pImage, .x, .y, .width, .height, .alpha +.drect RECT +.rect RECT +begin + pushad + + mov edi, [.pImage] + + xor eax, eax + mov ecx, [edi+TImage.width] + mov edx, [edi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.x] + mov edx, [.y] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.drect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + + stdcall LockImg, edi + +; here [.drect] contains the destination rectangle + + mov ecx, [.drect.left] + mov edx, [.drect.top] + sub [.drect.right], ecx + sub [.drect.bottom], edx + + imul edx, [edi+TImage.width] + add edx, [.drect.left] + shl edx, 2 + + add edx, [edi+TImage.pPixels] ; pointer to the upper left corner of the rect. + + mov edi, [edi+TImage.width] + lea edi, [4*edi] + + +.loopY: + mov ebx, [.drect.right] ; the width of the source rectangle + +.loopX: + dec ebx ; The ZF will not be changed later in the inner loop. + js .nextY + + + movzx eax, byte [edx+4*ebx+3] ; dest alpha. + movzx ecx, byte [.alpha] + +; Ad = Ad * [.alpha]/256 + + imul eax, ecx + sar eax, 8 + + mov [edx+4*ebx+3], al + jmp .loopX + +.nextY: + add edx, edi + dec [.drect.bottom] + jnz .loopY + + + stdcall UnlockImg, [.pImage] + +.finish: + popad + return +endp + + + + +proc FilterDisabled, .pImage, .no_alpha +.gray dd ? +.alpha dd ? +begin + pushad + + mov edi, [.pImage] + + stdcall LockImg, edi + + mov ebx, [edi+TImage.width] + mov ecx, [edi+TImage.height] + + mov edi, [edi+TImage.pPixels] + + +.outloop: + dec ecx + js .finish + + mov esi, ebx ; Counter from 0 to IconWidth-1 + inc esi + +.inloop: + dec esi + jz .outloop + + movzx eax, byte [edi] ; blue + movzx edx, byte [edi+1] ; green + + lea edx, [edx+2*eax] ; 2*Blue + Green + + movzx eax, byte [edi+2] + add edx, eax ; + Red + + movzx eax, byte [edi+3] ; Alpha + mov [.alpha], eax + + shr edx, 2 ; div 4 -> Grayscale pixel. + ; This formula gives more realistic view. + + mov [.gray], edx + +; blend alpha + + cmp [.no_alpha], 0 + jne .store + + imul eax, esi + cdq + div ebx + mov [.alpha], eax + + mov eax, [.gray] + imul eax, esi + cdq + div ebx + mov [.gray], eax + +.store: + + mov al, byte [.alpha] + shl eax, 8 + mov al ,byte [.gray] + shl eax, 8 + mov al ,byte [.gray] + shl eax, 8 + mov al ,byte [.gray] + + stosd + jmp .inloop + +.finish: + stdcall UnlockImg, [.pImage] + + popad + return +endp + + +endmodule ADDED freshlib/graphics/fonts.asm Index: freshlib/graphics/fonts.asm ================================================================== --- /dev/null +++ freshlib/graphics/fonts.asm @@ -0,0 +1,67 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Fonts managing library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains OS independent part of the library and includes respective +; OS dependent files. +;_________________________________________________________________________________________ +module "Fonts library" + +ffItalic = 1 +ffUnderline = 2 +ffStrikeOut = 4 + +ffMonospaced = $80 + + +fwLight = 0 +fwDemilight = 1 +fwNormal = 2 +fwMedium = 3 +fwDemibold = 4 +fwBold = 5 +fwExtraBold = 6 +fwBlack = 7 + +fwMask = 7 + + +struct __TFont + .hFontFace dd ? ; The name of the font face. + .height dd ? ; The character height in pixels. + .weight dd ? ; The weight of the characters. + .flags dd ? ; ffItalic, ffMonospaced, etc. +ends + + +interface FontCreate, .font_name, .size, .weight, .flags + +interface FontDestroy, .pFont + + +; returns some font metrics +; +; Arguments: +; .font - the font +; Returns: +; EAX - the line height of the font. +; EBX - the ascender of the font. +; EDX - the descender of the font. + +interface GetFontMetrics, .font + + +; returns TArray of fontface names. +interface GetFontList, .font + + +include '%TargetOS%/fonts.asm' + +endmodule Index: freshlib/graphics/giflib.asm ================================================================== --- freshlib/graphics/giflib.asm +++ freshlib/graphics/giflib.asm @@ -1,21 +1,22 @@ -GifLib: -;=============================================================================== -; FreshGif v1.2 - (C) Copyright by Exagone -;=============================================================================== -; The included Fresh artistic license (see license.txt) applies to this source -; code. By using this code, you agree to the terms of the license. -; -; Original source code by Exagone -; http://exagone.cjb.net | http://www.exagone.org -; _thomas_@mailroom.com -;=============================================================================== -; (c)2004 John Found - Port for FASM/Fresh cleanup and improvements. -; http://flatassembler.net -; http://fresh.flatassembler.net -;=============================================================================== - +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: GIF images decoding library. +; +; Target OS: Any +; +; Dependencies: memory.asm; files.asm +; +; Notes: +; Original source code by Exagone +; http://exagone.cjb.net | http://www.exagone.org +; _thomas_@mailroom.com +;_________________________________________________________________________________________ +module "GIF library" struct TGifInfo ;--- Header --- .GIFVersion rb 3 ; 3 byte string (not 0-terminated) that identifies ; the GIF Version (like 97a or 98a) @@ -103,11 +104,11 @@ stdcall CreateImage, [esi+TGifInfo.dwImageWidth], [esi+TGifInfo.dwImageHeight], 32 jc .error mov edi, eax - push [edi+TImage.pData] + push [edi+TImage.pPixels] pop [esi+TGifInfo.lpImageData] stdcall _GIFDecompress, esi jz .quit @@ -125,11 +126,11 @@ ;=============================================================================== ; GIFLoadFile ;=============================================================================== ; Loads gif data from a file ; returns pointer to TImage -proc ImageGifLoafFromFile, .lpFile +proc ImageGifLoadFromFile, .lpFile begin push ecx stdcall LoadBinaryFile, [.lpFile] push eax @@ -308,10 +309,12 @@ ; --- If no space left, make the table bigger: cmp ebx, ecx jne .sizeok +; lea ecx, [3*ecx] +; shr ecx, 1 shl ecx, 1 ;Table size doubles mov [esi+TGifInfo.dwLZWTableSize], ecx ; --- Reallocate memory --- stdcall ResizeMem, [esi+TGifInfo.lpLZWTable], ecx @@ -947,6 +950,6 @@ inc eax return endp -DispSize 'GifLib', $ - GifLib +endmodule Index: freshlib/graphics/images.asm ================================================================== --- freshlib/graphics/images.asm +++ freshlib/graphics/images.asm @@ -1,10 +1,917 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Memory based images manipulation library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Include respective OS dependent files. +;_________________________________________________________________________________________ +module "Images library" + struct TImage - .width dd ? ; width in pixels. - .height dd ? ; height in pixels. - .bpp dd ? ; bits per pixel. - .pData dd ? ; pointer to memory buffer with scanlines. all scanlines are aligned on dword. - .raster dd ? ; OS handle to be used with procedures from other graphics libraries. + .width dd ? ; width in pixels. + .height dd ? ; height in pixels. + .pPixels dd ? ; pointer to the pixel memory. + + .orgX dd ? + .orgY dd ? + .wrapW dd ? + .wrapH dd ? + + .lock TMutex ends -include '%TargetOS%/images.asm' +; Creates memory image with parameters specified. +interface CreateImage2, .width, .height, .fScreen + + +interface DestroyImage, .ptrImage + + +; Draws the image on a OS provided window surface. +interface DrawImageRect, .where, .pImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height + + +interface LockImg, .pImage +interface UnlockImg, .pImage + + + +; Sets the wrap parameters of the image. +; Arguments: +; .pImage - pointer to the TImage +; .newWrapW - new wrap width +; .newWrapH - new wrap height +; +; After this operation, the orgX and orgY of the image are set both to 0 +; without affecting the image itself. +; +; As long as on moving orgX and orgY, the image need to be rearanged, +; the operation is relatively slow. +; So, use it carefully. + +proc SetImageWrap, .pImage, .newWrapW, .newWrapH +begin + pushad + mov ebx, [.pImage] + test ebx, ebx + jz .finish + + stdcall LockImg, ebx + jc .finish + + stdcall ZeroOrgImage, ebx + + mov ecx, [.newWrapW] + mov edx, [.newWrapH] + cmp ecx, [ebx+TImage.width] + cmova ecx, [ebx+TImage.width] + cmp edx, [ebx+TImage.height] + cmova edx, [ebx+TImage.height] + + mov eax, 1 + test ecx, ecx + cmovz ecx, eax + test edx, edx + cmovz edx, eax + + mov [ebx+TImage.wrapW], ecx + mov [ebx+TImage.wrapH], edx + + stdcall UnlockImg, ebx + clc + +.finish: + popad + return +endp + + + + +proc ZeroOrgImage, .pImage +.imgL dd ? +.imgU dd ? +begin + pushad + + mov ebx, [.pImage] + + test ebx, ebx + jz .finish + + xor edx, edx + mov [.imgL], edx + mov [.imgU], edx + + cmp [ebx+TImage.orgX], edx + je .imgL_ok + + stdcall CreateImage2, [ebx+TImage.orgX], [ebx+TImage.wrapH], FALSE + jc .imgL_ok + + mov [.imgL], eax + stdcall CopyImageRect, eax, 0, 0, ebx, 0, 0, [ebx+TImage.orgX], [ebx+TImage.wrapH] + +.imgL_ok: + cmp [ebx+TImage.orgY], edx + je .imgU_ok + + stdcall CreateImage2, [ebx+TImage.wrapW], [ebx+TImage.orgY], FALSE + jc .imgU_ok + + mov [.imgU], eax + mov ecx, [ebx+TImage.wrapW] + sub ecx, [ebx+TImage.orgX] + stdcall CopyImageRect, eax, 0, 0, ebx, [ebx+TImage.orgX], 0, ecx, [ebx+TImage.orgY] + +.imgU_ok: + mov ecx, [ebx+TImage.wrapW] + mov edi, [ebx+TImage.wrapH] + sub ecx, [ebx+TImage.orgX] + sub edi, [ebx+TImage.orgY] + xor esi, esi + + cmp [ebx+TImage.orgX], edx + je .scrollx_ok + + inc esi + stdcall ScrollRectLeft2, ebx, 0, [ebx+TImage.orgY], [ebx+TImage.wrapW], edi, [ebx+TImage.orgX] + stdcall CopyImageRect, ebx, ecx, [ebx+TImage.orgY], [.imgL], 0, [ebx+TImage.orgY], [ebx+TImage.orgX], edi + +.scrollx_ok: + + cmp [ebx+TImage.orgY], edx + je .scrolly_ok + + inc esi + stdcall ScrollRectUp2, ebx, 0, 0, [ebx+TImage.wrapW], [ebx+TImage.wrapH], [ebx+TImage.orgY] + stdcall CopyImageRect, ebx, 0, edi, [.imgU], 0, 0, ecx, [ebx+TImage.orgY] + +.scrolly_ok: + cmp esi, 2 + jne .lower_right_ok + + stdcall CopyImageRect, ebx, ecx, edi, [.imgL], 0, 0, [ebx+TImage.orgX], [ebx+TImage.orgY] + +.lower_right_ok: + + mov [ebx+TImage.orgX], edx + mov [ebx+TImage.orgY], edx + + + stdcall DestroyImage, [.imgL] + stdcall DestroyImage, [.imgU] + +.finish: + popad + return +endp + + + +proc BlendImage, .pDstImage, .xDst, .yDst, .pSrcImage, .xSrc, .ySrc, .width, .height +.srect RECT +.drect RECT +.rect RECT + +.srcYstep dd ? +.dstYstep dd ? + +.srcWrapX dd ? +.dstWrapX dd ? + +.srcWrapY dd ? +.dstWrapY dd ? + +.srcStartX dd ? +.dstStartX dd ? + +begin + pushad + + mov esi, [.pSrcImage] + mov edi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.wrapW] + mov edx, [esi+TImage.wrapH] + + mov [.srect.left], eax + mov [.srect.top], eax + mov [.srect.right], ecx + mov [.srect.bottom], edx + + mov ecx, [edi+TImage.wrapW] + mov edx, [edi+TImage.wrapH] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.xSrc] + mov edx, [.ySrc] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.srect] + lea edx, [.rect] + stdcall RectIntersect2, ecx, edx + jc .finish + + mov ecx, [.xSrc] + mov edx, [.ySrc] + sub ecx, [.xDst] + sub edx, [.yDst] + +; convert the rect to the destination coordinates. + sub [.srect.left], ecx + sub [.srect.top], edx + sub [.srect.right], ecx + sub [.srect.bottom], edx + + lea eax, [.srect] + lea ebx, [.drect] + stdcall RectIntersect2, ebx, eax + jc .finish + + stdcall RectCopy, eax, ebx ; srect = drect + +;convert back to source coordinates. + add [.srect.left], ecx + add [.srect.top], edx + add [.srect.right], ecx + add [.srect.bottom], edx + +; here [.srect] contains the source rectange +; [.drect] contains the destination rectangle +; the width and height of the rectangles is the same. + + mov eax, [.srect.top] + sub [.srect.bottom], eax ; only the rect height is important. + + mov ecx, [esi+TImage.width] + mov edx, [edi+TImage.width] + lea ecx, [4*ecx] + lea edx, [4*edx] + + mov [.srcYstep], ecx + mov [.dstYstep], edx + + mov ecx, [esi+TImage.wrapH] + mov edx, [edi+TImage.wrapH] + imul ecx, [.srcYstep] + imul edx, [.dstYstep] + add ecx, [esi+TImage.pPixels] + add edx, [edi+TImage.pPixels] + mov [.srcWrapY], ecx + mov [.dstWrapY], edx + + + mov eax, [.srect.right] + mov ebx, [.drect.right] + + add eax, [esi+TImage.orgX] + add ebx, [edi+TImage.orgY] + + cmp eax, [esi+TImage.wrapW] + jb @f + sub eax, [esi+TImage.wrapW] +@@: + + cmp ebx, [edi+TImage.wrapW] + jb @f + sub ebx, [edi+TImage.wrapW] +@@: + mov [.srcStartX], eax + mov [.dstStartX], ebx + + mov eax, [esi+TImage.wrapW] + mov ebx, [edi+TImage.wrapW] + dec eax + dec ebx + mov [.srcWrapX], eax + mov [.dstWrapX], ebx + + mov ecx, [.srect.top] + mov edx, [.drect.top] + add ecx, [esi+TImage.orgY] + add edx, [edi+TImage.orgY] + + cmp ecx, [esi+TImage.wrapH] + jb @f + sub ecx, [esi+TImage.wrapH] +@@: + + cmp edx, [edi+TImage.wrapH] + jb @f + sub edx, [edi+TImage.wrapH] +@@: + imul ecx, [.srcYstep] + imul edx, [.dstYstep] + add ecx, [esi+TImage.pPixels] + add edx, [edi+TImage.pPixels] + +; lock the images. + stdcall LockImg, esi + jc .finish + + stdcall LockImg, edi + jc .finish2 + +; prepare MMX constants + + pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 + pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff + psrlw mm1, 8 ; mm1 = 00ff 00ff 00ff 00ff + +; psrlw mm1, 15 ; mm1 = 0001 0001 0001 0001 +; psllw mm1, 8 ; mm1 = 0100 0100 0100 0100 + +.loopY: + mov eax, [.srect.right] + sub eax, [.srect.left] + mov [.width], eax + + mov eax, [.srcStartX] + mov ebx, [.dstStartX] + +.loopX: + dec eax + cmovs eax, [.srcWrapX] + + dec ebx + cmovs ebx, [.dstWrapX] + + movd mm7, [ecx+4*eax] ; source pixel. + movd mm6, [edx+4*ebx] ; destination pixel. + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + punpcklbw mm6, mm0 ; byte to word destination pixel + punpcklbw mm7, mm0 ; byte to word source pixel + psllw mm7, 8 ; Cs = Cs*256 + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + paddusw mm6, mm7 ; Cd = Cs + Cd + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edx+4*ebx], mm6 + + dec [.width] + jnz .loopX + +.nextY: + add ecx, [.srcYstep] + cmp ecx, [.srcWrapY] + cmove ecx, [esi+TImage.pPixels] + + add edx, [.dstYstep] + cmp edx, [.dstWrapY] + cmove edx, [edi+TImage.pPixels] + + dec [.srect.bottom] + jnz .loopY + + emms + +; unlock the images. + stdcall UnlockImg, edi + +.finish2: + stdcall UnlockImg, esi + +.finish: + popad + return +endp + + + +proc BlendImageTileWrap, .pDstImage, .xDst, .yDst, .wDst, .hDst, .pSrcImage + +.srcXOffs dd ? +.srcXwrap dd ? + +.srcYoffs dd ? +.srcYwrap dd ? + +.dstXbegn dd ? +.dstXwrap dd ? +.dstYoffs dd ? +.dstYwrap dd ? + +.stepYSrc dd ? +.stepYDst dd ? + +.srcY0 dd ? +.dstY0 dd ? + +begin + pushad + + mov esi, [.pSrcImage] + mov edi, [.pDstImage] + +; lock the images. + stdcall LockImg, esi + jc .finish + + stdcall LockImg, edi + jc .finish2 + +; step Y, source, destination + + mov ecx, [esi+TImage.width] + mov edx, [edi+TImage.width] + shl ecx, 2 + shl edx, 2 + mov [.stepYSrc], ecx + mov [.stepYDst], edx + +; Destination Y offset + wrap: + + mov eax, [.yDst] + mov ebx, [edi+TImage.wrapH] + + add eax, [edi+TImage.orgY] + cmp eax, ebx + jb @f + sub eax, ebx +@@: + mov ecx, [edi+TImage.pPixels] + + imul eax, edx + imul ebx, edx + add eax, ecx + add ebx, ecx + + mov [.dstYoffs], eax + mov [.dstYwrap], ebx + mov [.dstY0], ecx + + mov ecx, [edi+TImage.wrapW] + mov [.dstXwrap], ecx + +; Destination X start: + + mov eax, [.xDst] + add eax, [edi+TImage.orgX] + cmp eax, ecx + jb @f + sub eax, ecx +@@: + mov [.dstXbegn], eax + +; Source offset X,Y + + mov eax, [.xDst] + mov ecx, [esi+TImage.wrapW] + cdq + div ecx + add edx, [esi+TImage.orgX] + cmp edx, ecx + jb @f + sub edx, ecx +@@: + mov [.srcXOffs], edx + mov [.srcXwrap], ecx + + mov eax, [.yDst] + mov ecx, [esi+TImage.wrapH] + mov ebx, [esi+TImage.pPixels] + cdq + div ecx + add edx, [esi+TImage.orgY] + cmp edx, ecx + jb @f + sub edx, ecx +@@: + imul edx, [.stepYSrc] + imul ecx, [.stepYSrc] + add edx, ebx + add ecx, ebx + mov [.srcYoffs], edx + mov [.srcYwrap], ecx + mov [.srcY0], ebx + +; prepare MMX constants + + pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 + pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff + psrlw mm1, 8 ; mm1 = 00ff 00ff 00ff 00ff + +; psrlw mm1, 15 ; mm1 = 0001 0001 0001 0001 +; psllw mm1, 8 ; mm1 = 0100 0100 0100 0100 + + xor ebx, ebx + mov esi, [.srcYoffs] + mov edi, [.dstYoffs] + + +.loopY: + dec [.hDst] + js .exit + + mov ecx, [.srcXOffs] + mov edx, [.dstXbegn] + mov eax, [.wDst] + +.loopX: + dec eax + js .nextY + + movd mm7, [esi+4*ecx] ; source pixel. + movd mm6, [edi+4*edx] ; destination pixel. + + movq mm5, mm7 + psrlq mm5, 24 ; alpha source + punpckldq mm5, mm5 + packssdw mm5, mm5 ; mm5 = As, As, As, As + + movq mm4, mm1 + psubw mm4, mm5 ; mm4 = Bs Bs Bs Bs (Bs = $100 - As) + + punpcklbw mm6, mm0 ; byte to word destination pixel + punpcklbw mm7, mm0 ; byte to word source pixel + psllw mm7, 8 ; Cs = Cs*256 + + pmullw mm6, mm4 ; mm6 = Cd = Cd * (256-As) = Cd * Bs (For alpha Ad = Ad*Bs) + paddusw mm6, mm7 ; Cd = Cs + Cd + psrlw mm6, 8 ; Cd = Cd/256 + + packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB + movd [edi+4*edx], mm6 + + inc ecx + inc edx + + cmp ecx, [.srcXwrap] + cmovae ecx, ebx + + cmp edx, [.dstXwrap] + cmovae edx, ebx + + jmp .loopX + +.nextY: + add esi, [.stepYSrc] + cmp esi, [.srcYwrap] + cmovae esi, [.srcY0] + + add edi, [.stepYDst] + cmp edi, [.dstYwrap] + cmovae edi, [.dstY0] + jmp .loopY + +.exit: + emms + +; unlock the images. + stdcall UnlockImg, [.pDstImage] + +.finish2: + stdcall UnlockImg, [.pSrcImage] + +.finish: + popad + return +endp + + + + + + +proc CopyImageRect, .pDstImage, .xDst, .yDst, .pSrcImage, .xSrc, .ySrc, .width, .height +.srect RECT +.drect RECT +.rect RECT +begin + pushad + + mov esi, [.pSrcImage] + mov edi, [.pDstImage] + + xor eax, eax + mov ecx, [esi+TImage.width] + mov edx, [esi+TImage.height] + + mov [.srect.left], eax + mov [.srect.top], eax + mov [.srect.right], ecx + mov [.srect.bottom], edx + + mov ecx, [edi+TImage.width] + mov edx, [edi+TImage.height] + + mov [.drect.left], eax + mov [.drect.top], eax + mov [.drect.right], ecx + mov [.drect.bottom], edx + + mov ecx, [.xSrc] + mov edx, [.ySrc] + + mov [.rect.left], ecx + mov [.rect.top], edx + + add ecx, [.width] + add edx, [.height] + + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea ecx, [.srect] + lea edx, [.rect] + stdcall RectIntersect, ecx, ecx, edx + jc .finish + + mov ecx, [.xSrc] + mov edx, [.ySrc] + sub ecx, [.xDst] + sub edx, [.yDst] + +; convert the rect to the destination coordinates. + sub [.srect.left], ecx + sub [.srect.top], edx + sub [.srect.right], ecx + sub [.srect.bottom], edx + + lea eax, [.srect] + lea ebx, [.drect] + stdcall RectIntersect, ebx, ebx, eax + jc .finish + + stdcall RectCopy, eax, ebx ; srect = drect + +;convert back to source coordinates. + add [.srect.left], ecx + add [.srect.top], edx + add [.srect.right], ecx + add [.srect.bottom], edx + +; here [.srect] contains the source rectange +; [.drect] contains the destination rectangle +; the width and height of the rectangles is the same. + + mov ecx, [.srect.left] + mov edx, [.srect.top] + sub [.srect.right], ecx + sub [.srect.bottom], edx + + mov ecx, [.srect.top] + mov edx, [.drect.top] + + imul ecx, [esi+TImage.width] + imul edx, [edi+TImage.width] + + add ecx, [.srect.left] + add edx, [.drect.left] + + shl ecx, 2 + shl edx, 2 + + add ecx, [esi+TImage.pPixels] + add edx, [edi+TImage.pPixels] + + stdcall LockImg, esi + jc .finish + + stdcall LockImg, edi + jc .finish2 + + mov esi, [esi+TImage.width] + mov edi, [edi+TImage.width] + lea esi, [4*esi] + lea edi, [4*edi] + + +.loopY: + mov ebx, [.srect.right] ; the width of the source rectangle + test ebx, 1 + jz .loopX + +; copy 1 dword + + dec ebx + mov eax, [ecx+4*ebx] + mov [edx+4*ebx], eax + jz .nextY + +.loopX: + sub ebx, 2 + + movq mm0, [ecx+4*ebx] + movq [edx+4*ebx], mm0 + + jnz .loopX + +.nextY: + add ecx, esi + add edx, edi + + dec [.srect.bottom] + jnz .loopY + + emms + stdcall UnlockImg, [.pDstImage] + +.finish2: + stdcall UnlockImg, [.pSrcImage] + +.finish: + popad + return +endp + + + +;proc ImageMulAlpha2, .pImage, .x, .y, .width, .height +;.drect RECT +;.rect RECT +;begin +; pushad +; +; mov edi, [.pImage] +; +; xor eax, eax +; mov ecx, [edi+TImage.width] +; mov edx, [edi+TImage.height] +; +; mov [.drect.left], eax +; mov [.drect.top], eax +; mov [.drect.right], ecx +; mov [.drect.bottom], edx +; +; mov ecx, [.x] +; mov edx, [.y] +; +; mov [.rect.left], ecx +; mov [.rect.top], edx +; +; add ecx, [.width] +; add edx, [.height] +; +; mov [.rect.right], ecx +; mov [.rect.bottom], edx +; +; lea ecx, [.drect] +; lea edx, [.rect] +; stdcall RectIntersect, ecx, ecx, edx +; jc .finish +; +; mov ecx, [.drect.left] +; mov edx, [.drect.top] +; sub [.drect.right], ecx +; sub [.drect.bottom], edx +; +; mov esi, [.drect.top] +; imul esi, [edi+TImage.width] +; +; add esi, [.drect.left] +; lea esi, [4*esi] +; add esi, [edi+TImage.pPixels] +; +; mov edi, [edi+TImage.width] +; lea edi, [4*edi] +; +;; prepare MMX constants +; +; pxor mm0, mm0 ; mm0 = 0000 0000 0000 0000 +; pcmpeqw mm1, mm1 ; mm1 = ffff ffff ffff ffff +; psrlw mm1, 15 ; mm1 = 0001 0001 0001 0001 +; psllw mm1, 8 ; mm1 = 0100 0100 0100 0100 +; psllq mm1, 48 ; mm1 = 0100 0000 0000 0000 +; +;.loopY: +; mov ebx, [.drect.right] ; the width of the source rectangle +; +;.loopX: +; dec ebx ; The ZF will not be changed later in the inner loop. +; +; movd mm6, [esi+4*ebx] ; destination pixel. +; +; movq mm5, mm6 +; psrlq mm5, 24 ; alpha +; +; punpckldq mm5, mm5 ; +; punpcklbw mm6, mm0 ; byte to word destination pixel +; packssdw mm5, mm5 ; mm5 = Ad, Ad, Ad, Ad +; +; psrlq mm5, 16 ; mm5 = 0 Ad Ad Ad +; por mm5, mm1 ; mm5 = $100 Ad Ad Ad +; +; pmullw mm6, mm5 ; mm6 = Cd = Cd * Ad (For alpha Ad = Ad * 256) +; psrlw mm6, 8 ; Cd = Cd/256 (For alpha Ad = Ad) +; +; packuswb mm6, mm0 ; pack words to bytes 0A 0R 0G 0B -> 0000ARGB +; movd [esi+4*ebx], mm6 +; +; jnz .loopX +; +;.nextY: +; add esi, edi +; +; dec [.drect.bottom] +; jnz .loopY +; +;.finish: +; emms +; popad +; return +;endp + + +; the colors must be pre-multiplied ARGB. + +proc _BlendPixel, .dstColor, .srcColor +begin + pushad + + movzx ecx, byte [.srcColor+3] ; As + mov ebx, $ff + mov esi, ebx + + sub ebx, ecx ; 1 - As + + movzx eax, byte [.dstColor+3] ; Ad + imul ecx, esi + mul ebx + add eax, ecx + adc edx, 0 + div esi + + mov byte [esp+4*regEAX+3], al + + + movzx eax, byte [.dstColor] ; Bd + movzx ecx, byte [.srcColor] ; Bs + + imul ecx, esi + mul ebx + add eax, ecx + adc edx, 0 + div esi + + mov byte [esp+4*regEAX], al + + + + movzx eax, byte [.dstColor+1] ; Gd + movzx ecx, byte [.srcColor+1] ; Gs + + imul ecx, esi + mul ebx + add eax, ecx + adc edx, 0 + div esi + + mov byte [esp+4*regEAX+1], al + + + + movzx eax, byte [.dstColor+2] ; Rd + movzx ecx, byte [.srcColor+2] ; Rs + + imul ecx, esi + mul ebx + add eax, ecx + adc edx, 0 + div esi + + mov byte [esp+4*regEAX+2], al + + + popad + return +endp + + + + + +include '%TargetOS%/images.asm' + +endmodule ADDED freshlib/graphics/pnglib.asm Index: freshlib/graphics/pnglib.asm ================================================================== --- /dev/null +++ freshlib/graphics/pnglib.asm @@ -0,0 +1,758 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: PNG images decoding library. +; +; Target OS: Any +; +; Dependencies: memory.asm; files.asm +; +; Notes: +;_________________________________________________________________________________________ +module "PNG library" + + +;struct TPNGChunk +; .length dd ? +; .type dd ? ; 4 bytes ascii data - chunk name. Such as 'IDAT', 'iTXt', etc. +; .data: ; data itself. [.lenght] bytes. +;ends + +; dword check sum follows the variable length data field. + +; ALL integers in PNG are big-endian! + +struct TchunkIHDR + .Width dd ? + .Height dd ? + .BitDepth db ? + .ColorType db ? + .Compression db ? + .Filter db ? + .Interlaced db ? +ends + +ctPngGrayscale = 0 ; .BitDepth = 1, 2, 4, 8 and 16 +ctPngTrueColor = 2 ; .BitDepth = 8, 16 +ctPngIndexedColor = 3 ; .BitDepth = 1, 2, 4, 8 +ctPngAlphaGrayscale = 4 ; .BitDepth = 8, 16 +ctPngAlphaTrueColor = 6 ; .BitDepth = 8, 16 + + +pngCTPalette = 1 +pngCTColor = 2 +pngCTAlpha = 4 + + +pngFilterNone = 0 +pngFilterSub = 1 +pngFilterUp = 2 +pngFilterAverage = 3 +pngFilterPaeth = 4 + +pngFilterCount = 5 + + +; Creates TImage from the compressed PNG image. +; +; Arguments: +; .pPNGImage - pointer to memory, where compressed image resides. +; .size - size of the image in bytes. +; +; Returns: +; CF=1 if error; +; CF=0 and eax=TImage if success. + +proc CreateImagePNG, .pPNGImage, .size + + .pEnd dd ? + + .start: + + .Width dd ? ; + .Height dd ? + .BitDepth dd ? + .ColorType dd ? + + .flags dd ? + .pPalette dd ? + .PaletteCnt dd ? + + .pData dd ? ; compressed data. + .DataSize dd ? + .DataCapacity dd ? + + .BitsPerPixel dd ? + .SampleMask dd ? ; bit mask of one sample. + + .BytesPerPixel dd ? ; for the filtering algorithms. rounded up to 1 bytes always. + .BytesPerLine dd ? + + .end: + + .i dd ? ; loop counter. + .j dd ? + +begin + pushad + +; OutputValue "CreateImagePNG called from: ", [ebp+4], 16, 8 + + mov ecx, (.end - .start)/4 + lea edi, [.start] + xor eax, eax + rep stosd + + mov esi, [.pPNGImage] + mov edx, [.size] + and edx, $7fffffff ; allows using of -1 for images with undefined size. + + cmp edx, 8 + 12 + 13 + 12 ; header + IHDR + IEND the minimal size. + jb .error_unexpected_end + + add edx, esi ; the end pointer of the image. + mov [.pEnd], edx + +; first, check the header. + + xor ecx, ecx + add ecx, 4 + + mov edi, .hdrPNGImage + repe cmpsd + jne .error_structure + +; we are now in IHDR chunk - it is always the first after the signature! + + lea eax, [esi-4] + stdcall DataCRC32, eax, sizeof.TchunkIHDR + 4 + bswap eax + cmp eax, [esi+sizeof.TchunkIHDR] + jne .error_checksum + + cmp [esi+TchunkIHDR.Filter], 0 + jne .error_structure ; unsupported filter type! + + cmp [esi+TchunkIHDR.Compression], 0 + jne .error_structure ; unsupported compression method! + +; The following is my (johnfound) decision, as long as this library will never be used for progressive image display. +; Support of Adam-7 interlacing will cost a lot of code, work and speed. The interlaced images are bigger, so +; there is no single argument for supporting them. + + cmp [esi+TchunkIHDR.Interlaced], 0 + jne .error_structure ; unsupported Interlaced images! + + movzx ecx, [esi+TchunkIHDR.BitDepth] + movzx eax, [esi+TchunkIHDR.ColorType] + mov [.BitDepth], ecx + mov [.ColorType], eax + +; OutputValue "Color type:", eax, 10, 2 +; OutputValue "Bit depth:", ecx, 10, 2 + + + xor edx, edx + dec edx + shr edx, cl + not edx + mov [.SampleMask], edx + + mov edx, ecx + + test [.ColorType], pngCTPalette + jnz .size_raw_ok + + test [.ColorType], pngCTColor + jz .raw_color_ok + + lea edx, [3*edx] + +.raw_color_ok: + test [.ColorType], pngCTAlpha + jz .size_raw_ok + + add edx, ecx ; one more sample for the alpha channel. + +.size_raw_ok: + mov [.BitsPerPixel], edx + mov eax, edx + + shr eax, 3 + jnz .bytes_per_pixel + + inc eax + +.bytes_per_pixel: + mov [.BytesPerPixel], eax + +; Image size: + mov eax, [esi+TchunkIHDR.Width] + mov ecx, [esi+TchunkIHDR.Height] + bswap eax + bswap ecx + mov [.Width], eax + mov [.Height], ecx + + imul eax, edx ; line length in bits. + add eax, 7 + shr eax, 3 ; align to byte + mov [.BytesPerLine], eax + + +; end of IHDR chunk: + add esi, sizeof.TchunkIHDR + 4 + +.chunk_loop: + cmp esi, [.pEnd] + jae .error_unexpected_end + + lodsd + bswap eax + mov ecx, eax ; chunk length in bytes + lea edx, [eax+4] + lea eax, [esi+edx] + + cmp eax, [.pEnd] + jae .error_unexpected_end + + stdcall DataCRC32, esi, edx + bswap eax + cmp eax, [esi+edx] + jne .error_checksum + + lodsd + + cmp eax, 'PLTE' + je .PLTE + + cmp eax, 'IDAT' + je .IDAT + + cmp eax, 'IEND' + je .IEND + + cmp eax, 'tRNS' + je .tRNS + +; ignore chunk if unknown + + add esi, ecx + +.next_chunk: + add esi, 4 ; check sum + jmp .chunk_loop + + +.tRNS: + mov edi, [.pPalette] + test edi, edi + jz .error_structure + + cmp ecx, [.PaletteCnt] + ja .error_structure + +.trns_loop: + lodsb + mov [edi+3], al + add edi, 4 + loop .trns_loop + + jmp .next_chunk + + +.PLTE: + cmp [.pPalette], 0 + jne .error_structure ; the palette can be only one! + +; But for the way of processing in this library, this is not mandatory, actually. +; cmp [.pData], 0 +; jne .error_structure ; the palette must resides before the first IDAT! + + + mov eax, ecx + cdq + mov ebx, 3 + div ebx + test edx, edx + jnz .error_structure ; the palette must contains multiple of 3 bytes. + + mov [.PaletteCnt], eax + mov ecx, eax + shl eax, 2 ; we need 4 bytes palette entries. + + stdcall GetMem, eax + jc .error_memory_allocation + + mov [.pPalette], eax + + mov edi, eax + +.pal_loop: + or ah, -1 ; alpha. + lodsb ; red. + shl eax, 8 + lodsb ; green. + shl eax, 8 + lodsb ; blue. + + stosd + loop .pal_loop + + jmp .next_chunk + +.IDAT: + mov edi, [.pData] + test edi, edi + jnz .buffer_allocated + + lea eax, [ecx*2] + mov [.DataCapacity], eax + stdcall GetMem, eax + jc .error_memory_allocation + + mov edi, eax + mov [.pData], eax + +.buffer_allocated: + + mov eax, ecx + add eax, [.DataSize] + cmp eax, [.DataCapacity] + jbe .capacity_enough + + shl eax, 1 + mov [.DataCapacity], eax + + stdcall ResizeMem, edi, eax + jc .error_memory_allocation + + mov [.pData], eax + mov edi, eax + +.capacity_enough: + add edi, [.DataSize] + add [.DataSize], ecx + + rep movsb + jmp .next_chunk + + +.IEND: +; so, all data must be collected - process it. + + cmp [.pData], 0 + je .error_no_image + + +; decompressed data buffer: + + mov edx, [.Width] + imul edx, [.BitsPerPixel] + add edx, 7 + shr edx, 3 ; round up and compute the byte count. + inc edx ; one more byte for the filter byte. + imul edx, [.Height] + + stdcall GetMem, edx + mov edi, eax + + mov esi, [.pData] + mov ecx, [.DataSize] + + add esi, 2 ; first 2 bytes are ZLIB data format header. Ignore them. + sub ecx, 2+4 ; the last 4 bytes + + stdcall Inflate, edi, edx, esi, ecx + jc .error_decompression + + stdcall FreeMem, [.pData] + mov [.pData], edi + mov [.DataSize], edx + +; Apply filters + + xor esi, esi ; previous line. + mov eax, [.Height] + mov [.i], eax + +.outer: + movzx eax, byte [edi] + inc edi + xor ecx, ecx ; x coordinate + + cmp eax, pngFilterCount + jae .error_invalid_filter + + mov edx, [.filters+4*eax] ; filter procedure. + +.inner: + call edx + inc ecx + cmp ecx, [.BytesPerLine] + jne .inner + + mov esi, edi + add edi, [.BytesPerLine] + dec [.i] + jnz .outer + + +; convert to 32 bit TImage + + stdcall CreateImage2, [.Width], [.Height], FALSE + jc .error_memory_allocation + + mov [esp+4*regEAX], eax + mov edi, [eax+TImage.pPixels] ; the TImage pixels array. + mov esi, [.pData] ; the png image pixels. + + mov eax, [.Height] + mov [.i], eax + + mov ecx, [.BitDepth] + +.outer2: + mov eax, [.Width] + mov [.j], eax + + inc esi ; one byte for the filter. + lodsd + bswap eax + + mov ch, $20 + +.inner2: + xor edx, edx + + mov ebx, eax + and ebx, [.SampleMask] + + shl eax, cl + sub ch, cl + jnz @f + + mov ch, $20 + lodsd + bswap eax + +@@: + test [.ColorType], pngCTPalette + jnz .get_palette_color + + push ecx + mov ch, 8 + xor edx, edx + +.pxloop1: + or edx, ebx + shr ebx, cl + sub ch, cl + jge .pxloop1 + + and edx, $ff000000 + mov ebx, edx + pop ecx + + test [.ColorType], pngCTColor + jnz .read_more + +; duplicate gray value two more times. + rol edx, 8 + or edx, ebx + rol edx, 8 + or edx, ebx + + jmp .color_ok + + +.read_more: + mov ebx, eax + and ebx, [.SampleMask] + + shl eax, cl + sub ch, cl + jnz @f + + mov ch, $20 + lodsd + bswap eax + +@@: + push ecx edx + mov ch, 8 + mov edx, ebx + +.pxloop2: + or ebx, edx + shr edx, cl + sub ch, cl + jge .pxloop2 + + and ebx, $ff000000 + pop edx ecx + + rol edx, 8 + or edx, ebx + + mov ebx, eax + and ebx, [.SampleMask] + + shl eax, cl + sub ch, cl + jnz @f + + mov ch, $20 + lodsd + bswap eax + +@@: + push ecx edx + mov ch, 8 + mov edx, ebx + +.pxloop3: + or ebx, edx + shr edx, cl + sub ch, cl + jge .pxloop3 + + and ebx, $ff000000 + pop edx ecx + + rol edx, 8 + or edx, ebx + +.color_ok: + + test [.ColorType], pngCTAlpha + jnz .read_alpha + + rol edx, 8 + or edx, $ff000000 + jmp .store_px + + +.read_alpha: + mov ebx, eax + and ebx, [.SampleMask] + + shl eax, cl + sub ch, cl + jnz @f + + mov ch, $20 + lodsd + bswap eax + +@@: + push ecx edx + mov ch, 8 + mov edx, ebx + +.pxloop4: + or ebx, edx + shr edx, cl + sub ch, cl + jge .pxloop4 + + and ebx, $ff000000 + pop edx ecx + + rol edx, 8 + or edx, ebx + + jmp .store_px + +.get_palette_color: + + rol ebx, cl + shl ebx, 2 + add ebx, [.pPalette] + mov edx, [ebx] + +.store_px: + + stdcall __fix_color, edx, regEDX ; pre-multiply alpha + + mov [edi], edx + add edi, 4 + + dec [.j] + jnz .inner2 + + movzx eax, ch + shr eax, 3 + sub esi, eax + + dec [.i] + jnz .outer2 + +; cleanup the allocated buffers... + + stdcall FreeMem, [.pPalette] + stdcall FreeMem, [.pData] + + clc + popad + return + + +.error_invalid_filter: + dbrk + +.error_decompression: + dbrk + +.error_no_image: + dbrk + +.error_memory_allocation: + dbrk + +.error_checksum: + dbrk + +.error_structure: + dbrk + +.error_unexpected_end: + dbrk + + stc + popad + return + + + .hdrPNGImage dd $474e5089, $0a1a0a0d, $0d000000, 'IHDR' + + .filters dd .none, .sub, .up, .average, .paeth + + +; sub filter. +.sub: + mov ebx, ecx + sub ebx, [.BytesPerPixel] + jl .none + + mov al, [edi+ebx] + add [edi+ecx], al + +.none: + retn + + +; up filter +.up: + test esi, esi + jz .none + + mov al, [esi+ecx] + add [edi+ecx], al + + retn + + +; average filter +.average: + xor eax, eax + + mov ebx, ecx + sub ebx, [.BytesPerPixel] + jl .left_ok + + add al, [edi+ebx] + +.left_ok: + test esi, esi + jz .up_ok + + add al, [esi+ecx] + +.up_ok: + rcr al, 1 ; 9-bit average + add [edi+ecx], al + retn + + +; paeth filter +.paeth: + push ecx edx + + xor eax, eax ; A - left + + mov ebx, ecx + sub ebx, [.BytesPerPixel] + jl .left_ok2 + + movzx eax, byte [edi+ebx] + +.left_ok2: + xor edx, edx ; B - above + xor ebx, ebx ; C - left, above + test esi, esi + jz .up_ok2 + + movzx edx, byte [esi+ecx] + + sub ecx, [.BytesPerPixel] + jl .up_ok2 + + movzx ebx, byte [esi+ecx] + +.up_ok2: + push ebx edx eax + + mov ecx, eax + add ecx, edx + sub ecx, ebx ; p + + sub [esp], ecx ; pa + sub [esp+4], ecx ; pb + sub [esp+8], ecx ; pc + +.abs1: + neg dword [esp] + jl .abs1 + +.abs2: + neg dword [esp+4] + jl .abs2 + +.abs3: + neg dword [esp+8] + jl .abs3 + + mov ecx, [esp] ; pa + cmp ecx, [esp+4] ; pb + ja .not_a + cmp ecx, [esp+8] ; pc + jbe .end_pp + +.not_a: + mov ecx, [esp+4] + cmp ecx, [esp+8] + ja .not_b + + mov eax, edx + jmp .end_pp + +.not_b: + mov eax, ebx + +.end_pp: + add esp, 12 ; free temp variables. + pop edx ecx + + add [edi+ecx], al + + retn + +endp + + + + +endmodule ADDED freshlib/graphics/rectangles.asm Index: freshlib/graphics/rectangles.asm ================================================================== --- /dev/null +++ freshlib/graphics/rectangles.asm @@ -0,0 +1,883 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TGrid object class +; +; Target OS: Any +; +; Dependencies: +; Notes: +;_________________________________________________________________________________________ +module "Rectangles library" + + +; Calculates the bounding rectangle of two source rectangles, pointed by [.src1] and [.src2] +; The result rectangle is placed in RECT structure pointed by [.dest] +; +; All three rectangles may point to the same structures. +; +; Procedure preserves all registers. + +proc RectBounding, .dest, .src1, .src2 +begin + pushad + + + mov esi, [.src1] + mov edi, [.src2] + mov ebx, [.dest] + +; min left1, left2 + + mov eax, [esi+RECT.left] + mov edx, [edi+RECT.left] + + sub edx, eax + sbb ecx, ecx + and ecx, edx + add eax, ecx + + mov [ebx+RECT.left], eax + + +; min top1, top2 + + mov eax, [esi+RECT.top] + mov edx, [edi+RECT.top] + + sub edx, eax + sbb ecx, ecx + and ecx, edx + add eax, ecx + + mov [ebx+RECT.top], eax + + +; max right1, right2 + + mov eax, [esi+RECT.right] + mov edx, [edi+RECT.right] + + sub edx, eax + sbb ecx, ecx + not ecx + and ecx, edx + add eax, ecx + + mov [ebx+RECT.right], eax + + +; max bottom1, bottom2 + + mov eax, [esi+RECT.bottom] + mov edx, [edi+RECT.bottom] + + sub edx, eax + sbb ecx, ecx + not ecx + and ecx, edx + add eax, ecx + + mov [ebx+RECT.bottom], eax + + popad + return +endp + + + +; Calculates the intersection of two source rectangles, pointed by [.src1] and [.src2] +; The result rectangle is placed in RECT structure pointed by [.dest] +; All three rectangles may point to the same structures. +; +; Returns CF=0 if rectangles intersect and CF=1 if not. +; If the rectangles does not intersect, the [.dest] rectangle will contain all fields = 0 +; +; Procedure preserves all registers. + +proc RectIntersect, .dest, .src1, .src2 +begin + pushad + + mov esi, [.src1] + mov edi, [.src2] + mov ebx, [.dest] + +; max left1, left2 + mov ecx, [esi+RECT.left] + mov eax, [edi+RECT.left] + cmp ecx, eax + cmovl ecx, eax + mov [ebx+RECT.left], ecx + +; min right1, right2 + mov edx, [esi+RECT.right] + mov eax, [edi+RECT.right] + cmp edx, eax + cmovg edx, eax + mov [ebx+RECT.right], edx + + cmp ecx, edx + jge .null + +; max top1, top2 + mov ecx, [esi+RECT.top] + mov eax, [edi+RECT.top] + cmp ecx, eax + cmovl ecx, eax + mov [ebx+RECT.top], ecx + +; min bottom1, bottom2 + mov edx, [esi+RECT.bottom] + mov eax, [edi+RECT.bottom] + cmp edx, eax + cmovg edx, eax + mov [ebx+RECT.bottom], edx + + cmp ecx, edx + jge .null + + clc + popad + return + +.null: + xor eax, eax + mov [ebx+RECT.left], eax + mov [ebx+RECT.top], eax + mov [ebx+RECT.right], eax + mov [ebx+RECT.bottom], eax + stc + popad + return +endp + + + +; Calculates the intersection of two source rectangles, pointed by [.dst] and [.src] +; The result rectangle is placed in RECT structure pointed by [.dest] +; +; Returns CF=0 if rectangles intersect and CF=1 if not. +; If the rectangles does not intersect, the [.dest] rectangle will contain all fields = 0 +; +; Procedure preserves all registers. + +proc RectIntersect2, .dest, .src +begin + pushad + + mov esi, [.src] + mov edi, [.dest] + xor ebx, ebx ; the result + +; max left1, left2 + mov ecx, [esi+RECT.left] + mov eax, [edi+RECT.left] + cmp ecx, eax + cmovl ecx, eax + mov [edi+RECT.left], ecx + +; min right1, right2 + mov edx, [esi+RECT.right] + mov eax, [edi+RECT.right] + cmp edx, eax + cmovg edx, eax + mov [edi+RECT.right], edx + + cmp ecx, edx + jl .width_ok + + xor ecx, ecx + mov [edi+RECT.right], ecx + mov [edi+RECT.left], ecx + dec ebx + +.width_ok: +; max top1, top2 + mov ecx, [esi+RECT.top] + mov eax, [edi+RECT.top] + cmp ecx, eax + cmovl ecx, eax + mov [edi+RECT.top], ecx + +; min bottom1, bottom2 + mov edx, [esi+RECT.bottom] + mov eax, [edi+RECT.bottom] + cmp edx, eax + cmovg edx, eax + mov [edi+RECT.bottom], edx + + cmp ecx, edx + jl .finish + + xor ecx, ecx + mov [edi+RECT.top], ecx + mov [edi+RECT.bottom], ecx + dec ebx + +.finish: + shl ebx, 1 ; set CF + popad + return +endp + + + + + +proc RectCopy, .dest, .src +begin + pushad + + mov esi, [.src] + mov edi, [.dest] + + mov eax, [esi+RECT.left] + mov ecx, [esi+RECT.top] + mov edx, [esi+RECT.right] + mov ebx, [esi+RECT.bottom] + + mov [edi+RECT.left], eax + mov [edi+RECT.top], ecx + mov [edi+RECT.right], edx + mov [edi+RECT.bottom], ebx + + popad + return +endp + + + +proc RectSort, .src +begin + push eax ecx esi + + mov esi, [.src] + + mov eax, [esi+RECT.left] + mov ecx, [esi+RECT.right] + cmp ecx, eax + jge @f + mov [esi+RECT.right], eax + mov [esi+RECT.left],ecx +@@: + mov eax, [esi+RECT.top] + mov ecx, [esi+RECT.bottom] + cmp ecx, eax + jg @f + mov [esi+RECT.top],ecx + mov [esi+RECT.bottom], eax +@@: + pop esi ecx eax + return +endp + + + +proc PointInRect, .pRect, .x, .y +begin + push eax esi + + mov esi, [.pRect] + mov eax, [.x] + + cmp eax, [esi+RECT.left] + jl .no + cmp eax, [esi+RECT.right] + jge .no + + mov eax, [.y] + cmp eax, [esi+RECT.top] + jl .no + cmp eax, [esi+RECT.bottom] + jge .no + + stc + pop esi eax + return + +.no: + clc + pop esi eax + return +endp + + +; converts RECT to TBounds structure. + +proc RectToBounds, .ptrBounds, .ptrRect +begin + pushad + + mov esi, [.ptrRect] + mov edi, [.ptrBounds] + + mov ebx, [esi+RECT.left] + mov edx, [esi+RECT.top] + mov eax, [esi+RECT.right] + mov ecx, [esi+RECT.bottom] + + sub eax, ebx + sub ecx, edx + + mov [edi+TBounds.x], ebx + mov [edi+TBounds.y], edx + mov [edi+TBounds.width], eax + mov [edi+TBounds.height], ecx + + popad + return +endp + + + +proc IsRectZero, .pRect +begin + pushad + mov eax, [.pRect] + mov ecx, [eax+RECT.right] + mov edx, [eax+RECT.bottom] + sub ecx, [eax+RECT.left] + jz .zero + + sub edx, [eax+RECT.top] + jz .zero + + clc + popad + return + +.zero: + stc + popad + return +endp + + + +; See RectListAdd + +proc RectListAddXY, .pList, .x, .y, .width, .height +begin + push eax + + mov edx, [.x] + mov eax, [.y] + add [.width], edx + add [.height], eax + + lea eax, [.x] + stdcall RectListAdd, [.pList], eax + + pop eax + return +endp + + +; +; Adds new rect to the rectangles list (region). +; Only non intersecting part of the rectangle is added and the resulting +; set of rectangles is always optimal. +; +; As a result some previously added rectangles can be changed or removed. +; The total count of rectangles after this operation can be any. +; +; All rectangles in the array are sorted - i.e. defined by their top/left +; and bottom/right corner, even if [.pRect] contains not sorted rectangle. +; +; Arguments: +; .pList - pointer to TArray of RECT. +; .pRect - pointer to RECT to be added to the array. +; +; Returns: +; edx - pointer to the resulting TArray. Can be the same or reallocated [.pList], depending on the operations. +; + +proc RectListAdd, .pList, .pRect +.end dd ? +.sRect RECT + +begin + pushad + + lea eax, [.sRect] + stdcall RectCopy, eax, [.pRect] + stdcall RectSort, eax + + + push 0 ; end of queued commands. + + xor ecx, ecx ; from where to start. + +.main_loop: + mov esi, [.pList] + + mov edx, [esi+TArray.count] + + shl ecx, 4 + shl edx, 4 + + lea edx, [esi+TArray.array+edx] ; the end of the array. + lea esi, [esi+TArray.array+ecx] ; the start element. + + mov [.end], edx + +.loop: + cmp esi, [.end] + jae .end_loop + + +.again: + mov eax, [.sRect.right] + mov ecx, [.sRect.bottom] + + cmp eax, [.sRect.left] + je .rect_added ; empty rectangle. + cmp ecx, [.sRect.top] + je .rect_added ; empty rectangle. + + dec eax + dec ecx + + stdcall PointToRect, eax, ecx, esi + lea ecx, [9*eax] + + stdcall PointToRect, [.sRect.left], [.sRect.top], esi + add ecx, eax + + movzx eax, byte [.cases+ecx] ; what case for this rectangle? + + test eax, eax + jnz .process_it + + stdcall RectSort, esi + jmp .again + + +.process_it: + cmp eax, 1 + je .rect_added ; the rectangle is entirely inside the target rectangle. No need to be added. + + cmp eax, 2 + je .try_to_join + + cmp eax, 6 + jbe .case_3456 + + cmp eax, 7 + je .case_7 ; remove the old rectangle. + + cmp eax, 11 + jbe .case_89ab ; clip the new rectangle. + + cmp eax, 15 + jbe .case_cdef ; split the new rectangle on two rectangles. + + +; case_gh: ;Split the new rectangle on two rectangles another way + + sub eax, 16 ; dest index. + + lea ecx, [eax+2] ; src index + and ecx, 3 + + pushd [.sRect.bottom] [.sRect.right] [.sRect.top] [.sRect.left] ; the remaning rectangle. + + mov edx, [esi+4*ecx] + mov [esp+4*eax], edx ; fix remaining rectangle. + + mov edx, [esi+4*eax] + mov [.sRect + 4*ecx], edx + + lea eax, [esi-TArray.array] + sub eax, [.pList] + sar eax, 4 + inc eax + + push eax ; from where to start. + push 2 ; add rect command. + + jmp .try_to_join + + +.case_3456: ; clip the target rectangle. + + sub eax, 3 ; offset in target rect. + + mov edx, [.sRect+4*eax] ; (X0,Y0,X1,Y1) + + lea eax, [eax+2] + and eax, 3 + + mov [esi+4*eax], edx ; (A0,B0,A1,B1) + +; If the resulting rectangle is zero rectange, it is case_7 (remove the target rectangle) + mov eax, [esi+RECT.right] + cmp eax, [esi+RECT.left] + je .case_7 + + mov eax, [esi+RECT.bottom] + cmp eax, [esi+RECT.top] + je .case_7 + + jmp .try_to_join + + +.case_7: ; the target rectanlge should be removed from the list. The comparison continues with the next rect in the list. + + lea eax, [esi-TArray.array] + sub eax, [.pList] + sar eax, 4 ; sizeof.RECT = 16 + + push eax ; the index of the rectangle that have to be deleted. + push 1 ; delete command. + jmp .next_rect + + +.case_89ab: ; clip the inserted rectangle and continue to the next target rectangle + + sub eax, 8 ; offset in target rect. + + mov edx, [esi+4*eax] + + lea eax, [eax+2] + and eax, 3 + + mov [.sRect+4*eax], edx + + jmp .try_to_join + + +.case_cdef: ; split the new rectangle on two rectangles. + + sub eax, 12 ; src index + + lea ecx, [eax+2] ; dest index + and ecx, 3 + + pushd [.sRect.bottom] [.sRect.right] [.sRect.top] [.sRect.left] ; the remaning rectangle. + + mov edx, [esi+4*eax] + mov [esp+4*eax], edx ; fix remaining first value. + mov [.sRect + 4*ecx], edx ; fix current rectangle + + inc eax + and eax, 3 + lea ecx, [eax+2] + and ecx, 3 + + mov edx, [esi+4*eax] + mov [esp+4*ecx], edx ; fix remaining second value. + + lea eax, [esi-TArray.array] + sub eax, [.pList] + sar eax, 4 + inc eax + + push eax ; from where to start. + push 2 ; add rect command. + + jmp .next_rect + + +; try to join the rectangle to the current rectangle + +.try_to_join: ; can be optimized for SIZE!!! + + mov eax, [.sRect.right] + mov ecx, [.sRect.bottom] + dec eax + dec ecx + + stdcall PointToRect, eax, ecx, esi + mov ecx, eax + + stdcall PointToRect, [.sRect.left], [.sRect.top], esi + + cmp ecx, eax + jne .next_rect + + shr ecx, 1 + jnc .next_rect ; only odd numbers can be joined. + + jz .jcase_0 + + dec ecx + + jz .jcase_1 + + dec ecx + + jz .jcase_2 + +; join case 3 + + mov eax, [.sRect.left] + mov ecx, [.sRect.right] + mov edx, [.sRect.top] + + cmp eax, [esi+RECT.left] + jne .next_rect + + cmp ecx, [esi+RECT.right] + jne .next_rect + + cmp edx, [esi+RECT.bottom] + jne .next_rect + + push [esi+RECT.top] + pop [.sRect.top] + + jmp .del_the_current + + +.jcase_2: + mov eax, [.sRect.top] + mov ecx, [.sRect.bottom] + mov edx, [.sRect.left] + + cmp eax, [esi+RECT.top] + jne .next_rect + + cmp ecx, [esi+RECT.bottom] + jne .next_rect + + cmp edx, [esi+RECT.right] + jne .next_rect + + push [esi+RECT.left] + pop [.sRect.left] + + jmp .del_the_current + + +.jcase_1: + mov eax, [.sRect.top] + mov ecx, [.sRect.bottom] + mov edx, [.sRect.right] + + cmp eax, [esi+RECT.top] + jne .next_rect + + cmp ecx, [esi+RECT.bottom] + jne .next_rect + + cmp edx, [esi+RECT.left] + jne .next_rect + + push [esi+RECT.right] + pop [.sRect.right] + + jmp .del_the_current + + +.jcase_0: + mov eax, [.sRect.left] + mov ecx, [.sRect.right] + mov edx, [.sRect.bottom] + + cmp eax, [esi+RECT.left] + jne .next_rect + + cmp ecx, [esi+RECT.right] + jne .next_rect + + cmp edx, [esi+RECT.top] + jne .next_rect + + push [esi+RECT.bottom] + pop [.sRect.bottom] + + +.del_the_current: +; queue the current rect for deleting. + + lea eax, [esi-TArray.array] + sub eax, [.pList] + sar eax, 4 ; sizeof.RECT = 16 + + push eax ; the index of the rectangle that have to be deleted. + push 1 ; delete command. + +.next_rect: + add esi, sizeof.RECT + jmp .loop + + +.end_loop: + +; here add the rectangle + + mov eax, [.sRect.right] + sub eax, [.sRect.left] + jz .rect_added + + mov eax, [.sRect.bottom] + sub eax, [.sRect.top] + jz .rect_added + + stdcall AddArrayItems, [.pList], 1 + mov [.pList], edx + +; add the new rectangle to the list. + pushd [.sRect.bottom] [.sRect.right] [.sRect.top] [.sRect.left] + popd [eax+RECT.left] [eax+RECT.top] [eax+RECT.right] [eax+RECT.bottom] + +.rect_added: + + pop eax ; pop the command + + test eax, eax + jz .finish_ok + + cmp eax, 1 + je .delete_element + + pop ecx ; from index? + popd [.sRect+RECT.left] [.sRect+RECT.top] [.sRect+RECT.right] [.sRect+RECT.bottom] + + jmp .main_loop + + +.delete_element: + + pop eax ; the index of the element that have to be removed. + stdcall DeleteArrayItems, [.pList], eax, 1 + mov [.pList], edx + jmp .rect_added + +.finish_ok: + popad + mov edx, [.pList] + +; OutputValue "Rectangles list count:", [edx+TArray.count], 10, -1 + + return + +.cases db 2, 0, 0, 0, 0, 0, 0, 0, 0 + db 2, 2, 0, 0, 0, 0, 0, 0, 0 + db 2, 2, 2, 0, 0, 0, 0, 0, 0 + db 2, 0, 0, 2, 0, 0, 0, 0, 0 + db 12, 9, 0, 8, 1, 0, 0, 0, 0 + db 6, 13, 2, 16, 10, 2, 0, 0, 0 + db 2, 0, 0, 2, 0, 0, 2, 0, 0 + db 5, 17, 0, 15, 11, 0, 2, 2, 0 + db 7, 3, 2, 4, 14, 2, 2, 2, 2 +endp + + +; Computes where [.pPoint] is located relative to [.pRect] +; and returns one of the following values: (4 is the rectangle itself) +; +; +---+---+---+ +; | 0 | 1 | 2 | +; +---+---+---+ +; | 3 | 4 | 5 | +; +---+---+---+ +; | 6 | 7 | 8 | +; +---+---+---+ + + +proc PointToRect, .x, .y, .pRect +begin + pushad + + mov edi, [.pRect] + + xor ecx, ecx + + mov eax, [.x] + mov edx, [.y] + + cmp eax, [edi+RECT.left] + jl .x_ok + + inc ecx + + cmp eax, [edi+RECT.right] + jl .x_ok + + inc ecx + +.x_ok: + cmp edx, [edi+RECT.top] + jl .y_ok + + add ecx, 3 + + cmp edx, [edi+RECT.bottom] + jl .y_ok + + add ecx, 3 + +.y_ok: + mov [esp+4*regEAX], ecx + popad + return +endp + + + + + +proc PrintRectList, .pRectList +begin + pushad + + mov esi, [.pRectList] + mov ecx, [esi+TArray.count] + lea esi, [esi+TArray.array] + + stdcall FileWriteString, [STDERR], <txt 13, 10, 13, 10> + +.loop: + dec ecx + js .end_of_loop + + stdcall FileWriteString, [STDERR], txt "Rectangle: " + + stdcall NumToStr, [esi+RECT.left], ntsDec or ntsSigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack. + + stdcall FileWriteString, [STDERR], txt ", " + stdcall NumToStr, [esi+RECT.top], ntsDec or ntsSigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack. + + stdcall FileWriteString, [STDERR], txt ", " + mov eax, [esi+RECT.right] + sub eax, [esi+RECT.left] + stdcall NumToStr, eax, ntsDec or ntsSigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack. + + stdcall FileWriteString, [STDERR], txt ", " + mov eax, [esi+RECT.bottom] + sub eax, [esi+RECT.top] + stdcall NumToStr, eax, ntsDec or ntsSigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack. + + stdcall FileWriteString, [STDERR], <txt 13, 10> + + add esi, sizeof.RECT + jmp .loop + +.end_of_loop: + stdcall FileWriteString, [STDERR], <txt 13, 10, 13, 10> + +.finish: + popad + return +endp + + + +endmodule ADDED freshlib/graphics/recycler.asm Index: freshlib/graphics/recycler.asm ================================================================== --- /dev/null +++ freshlib/graphics/recycler.asm @@ -0,0 +1,182 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Small library that allows already allocated images to be recycled in order +; to avoid frequent allocation/deallocation of memory. +; +; Target OS: Any +; +; Dependencies: +;_________________________________________________________________________________________ + +module "Image recycling library" + +uglobal + align 4 + var pFirstRecycledImage = ? +endg + + +; proc RecycleImage +; stores the image in the image pool for recycling. + +proc RecycleImage, .pImage +begin + push esi edi + + mov esi, [.pImage] + test esi, esi + jz .finish + + and [esi+TImage.wrapW], 0 + mov edi, esi + + lock xchg edi, [pFirstRecycledImage] + + mov [esi+TImage.wrapW], edi + +.finish: + pop edi esi + return +endp + + +griExactWidth = 0 +griMoreWidth = 1 + +griExactHeight = 0 +griMoreHeight = 2 + + +; Searches the image pool for image having desired width and height. +; Notice, that this search is a fuzzy process. The returned image +; is guaranteed to have width and height greater or equal to the desired. +; the TImage.wrapW and TImage.wrapH are set to be exactly equal to .w and .h +; arguments. TImage.orgX and TImage.orgY are set to 0. +; The image pixel data can be random and should be considered invalid. +; +; Notice, that if the relevant image is not found in the pool, new +; image will be allocated. I.e. in the worst case scenario, the speed of +; this procedure degrades to the default CreateImage. +; +proc GetRecycledImage, .w, .h, .flags + +if defined options.RecyclerBenchmark & options.RecyclerBenchmark +.start dd ? +end if + +begin + pushad + + xor edi, edi + +if defined options.RecyclerBenchmark & options.RecyclerBenchmark + stdcall GetFineTimestamp + mov [.start], eax +end if + + mov ecx, [.w] + test [.flags], griMoreWidth + jz .max_width_ok + + lea ecx, [ecx*3+32] + shr ecx, 1 + +.max_width_ok: + mov edx, [.h] + test [.flags], griMoreHeight + jz .max_height_ok + + lea edx, [edx*3+32] + shr edx, 1 + +.max_height_ok: + + mov ebx, pFirstRecycledImage + +.search: + mov esi, [ebx] + test esi, esi + jz .not_found + + mov eax, [.w] + cmp [esi+TImage.width], eax + jl .next + cmp [esi+TImage.width], ecx + jg .next + + mov eax, [.h] + cmp [esi+TImage.height], eax + jl .next + cmp [esi+TImage.height], edx + jle .found + +.next: + inc edi + lea ebx, [esi+TImage.wrapW] ; the previous image. + jmp .search + +.not_found: + + stdcall CreateImage2, ecx, edx, FALSE + mov esi, eax + jmp .set_size + +.found: +; remove from the list. + + mov eax, [esi+TImage.wrapW] ; the .next field. + mov [ebx], eax + +.set_size: + mov eax, [.w] + mov ecx, [.h] + xor edx, edx + + mov [esi+TImage.orgX], edx + mov [esi+TImage.orgY], edx + mov [esi+TImage.wrapW], eax + mov [esi+TImage.wrapH], ecx + + mov [esp+4*regEAX], esi + +if defined options.RecyclerBenchmark & options.RecyclerBenchmark + stdcall GetFineTimestamp + sub eax, [.start] + + OutputValue "Image recycler work[us]: ", eax, 10, -1 + OutputValue "Searched images: ", edi, 10, -1 +end if + + popad + return +endp + + + +; Frees all images from the pool. + +proc FreeImagePool +begin + push esi + mov esi, [pFirstRecycledImage] + +.free_loop: + test esi, esi + jz .finish + + push esi + mov esi, [esi+TImage.wrapW] + stdcall DestroyImage ; from the stack + jmp .free_loop + +.finish: + mov [pFirstRecycledImage], 0 + pop esi + return +endp + + +endmodule Index: freshlib/graphics/text.asm ================================================================== --- freshlib/graphics/text.asm +++ freshlib/graphics/text.asm @@ -1,364 +1,576 @@ -include "%TargetOS%/text.asm" - - -macro min a, b, use { - sub b, a - sbb use, use - and use, b - add a, use -} - -macro max a, b, use { - sub b, a - sbb use, use - not use - and use, b - add a, use -} +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Text drawing library. +; +; Target OS: Any +; +; Dependencies: StrLib +; +; Notes: This file contains OS independent part of the library and includes respective +; OS dependent files. +;_________________________________________________________________________________________ +module "Text library" + +; troXXXX - text rendering options. + +troSubpixel = 0 +troGrayscale = 1 +troMonochrome = 2 +troSubpixelV = 3 + +iglobal + var TextRenderOptions = troSubpixel ;troGrayscale +endg + + +; dtfXXX means "draw text flag" + +dtfHAlignMask = $3 +dtfVAlignMask = $c + + +; horizontal align +dtfAlignLeft = 0 +dtfAlignRight = 1 +dtfAlignCenter = 2 +dtfAlignJustify = 3 + + +; vertical align +dtfAlignTop = 0 shl 2 +dtfAlignBottom = 1 shl 2 +dtfAlignMiddle = 2 shl 2 + + +; Text layout +dtfCRLF = $0100 +dtfWordWrap = $0200 +dtfTableTabs = $0400 +dtfSingleLine = $0800 + +; Text suppress + +dtfNone = $80000000 + struct TTextExtent .width dd ? .height dd ? .OffsX dd ? .OffsY dd ? ends - -; dtfXXX means "draw text flag" - -; horizontal align -dtfAlignLeft = 0 -dtfAlignRight = 1 -dtfAlignCenter = 2 -dtfAlignJustify = 3 - -; vertical align -dtfAlignTop = 0 shl 2 -dtfAlignBottom = 1 shl 2 -dtfAlignMiddle = 2 shl 2 - -; Text layout -dtfCRLF = $0100 -dtfWordWrap = $0200 -dtfTableTabs = $0400 +struct TCharAttr + .font dd ? + .color dd ? + .background dd ? + .flags dd ? ; for free use of the client. +ends + + +struct TChunkFormat + .length dd ? + .font dd ? + .color dd ? + .flags dd ? +ends + + +struct TChunkColor + .length dd ? + .color dd ? + .bkgnd dd ? + .flags dd ? +ends + struct _TTextChunk .y dd ? .width dd ? - .height dd ? .len dd ? .ptr dd ? ends -proc DrawTextBox, .raster, .text, .bounds, .flags, .font -.len dd ? -.count dd ? -.height dd ? -.y dd ? - -.low dd ? -.high dd ? - -.linew dd ? -.lineh dd ? - -.DrawProc dd ? + +struct TTextChar + .code dd ? ; unicode of the character. + .width dw ? ; width increment in pixels. + .height dw ? ; height increment in pixels - if <> 0 this char must be written on new line. +ends + + + + + +interface DrawString, .pImage, .pString, .len, .x, .y, .font, .color + + +interface TextDecompose, .hString, .font + + +interface DrawDecomposedString, .pImage, .pArray, .x, .y, .font, .color + + +interface GetTextBounds, .pString, .len, .font + + +; Draws a rectangle of TText object with monospaced font. +; +; .pImage - where to draw. +; .pText - pointer to TText structure. +; +; .pColors - pointer to TArray of TChunkColor to be used for drawing. +; .pFont - font to be used. Must be monospaced. +; .wChar, .hChar - width and height of the font characters. +; +; .xOrg, .yOrg - the upper left corner in pixels of the whole text. +; .xFrom, .yFrom - the upper left corner in characters from where to draw. +; .width, height - the width and height in characters of the rectangle to draw. + +interface DrawFormattedMonoText, .pImage, .pText, .pColors, .pFont, .wChar, .hChar, .xOrg, .yOrg, .xFrom, .yFrom, .width, .height + + + + + +proc AdjustCountUtf8 +begin + push esi + lea esi, [esi+ebx] + stdcall ScanBackUtf8 + mov ebx, esi + pop esi + sub ebx, esi + return +endp + + + +proc JustifyLine, .CharArray, .from, .to, .current_width, .align_width +begin + pushad + + dec [.to] ; don't change the last character width. + + mov edi, [.CharArray] + mov ecx, [.to] + sub ecx, [.from] + jle .finish + + mov edx, [.align_width] + sub edx, [.current_width] + jle .finish + + mov esi, edx + + mov ebx, [.from] + +.align_loop: + inc ebx + cmp ebx, [.to] + jae .finish + + cmp word [edi+TArray.array+8*ebx+TTextChar.width], 0 + je .skip_this + +.sub: + test esi, esi + js .negative + + sub esi, ecx + inc word [edi+TArray.array+8*ebx+TTextChar.width] + jmp .sub + +.negative: + add esi, edx + jmp .align_loop + +.skip_this: + dec ecx + jnz .align_loop + +.finish: + popad + return +endp + + + + +proc DrawTextBox, .pImage, .text, .x, .y, .width, .height, .extra_line, .flags, .font, .color + +.ascender dd ? +.descender dd ? +.line_height dd ? + +.txt_height dd ? + +.last_word dd ? +.lw_width dd ? + +.no_just dd ? + +begin + + pushad + + stdcall GetFontMetrics, [.font] + mov [.line_height], eax + mov [.ascender], ebx + mov [.descender], edx + + add [.y], ebx + + stdcall TextDecompose, [.text], [.font] + mov edi, eax + + xor ecx, ecx + mov [.txt_height], ecx + + cmp [edi+TArray.count], ecx + je .finish + +.main_loop: ; start of new line + xor ebx, ebx ; current X coordinate. + or [.last_word], -1 ; end of the word -1 means there is no word from the beginning of the line. + + mov eax, [.txt_height] + cmp eax, [.height] + jb .format_it + + mov eax, [.extra_line] + sub [.txt_height], eax + + mov [edi+TArray.count], ecx + jmp .draw_all2 + + +.format_it: + stdcall InsertArrayItems, edi, ecx, 1 + mov edi, edx + mov [eax+TTextChar.code], $20 + mov dword [eax+TTextChar.width], ebx ; Set to zero TTextChar.height as well! + + mov esi, ecx ; start of the line! + inc ecx + +.slice_loop: + +; Is it end of a word? + cmp [edi+TArray.array+8*ecx+TTextChar.code], $20 + ja .white_ok + + test ecx, ecx + jz .white_ok + + cmp [edi+TArray.array+8*ecx-8+TTextChar.code], $20 ; previous character + jbe .white_ok + + mov [.last_word], ecx ; edx is a pointer to the end of the last word. + mov [.lw_width], ebx + +.white_ok: + test [.flags], dtfCRLF + jz .crlf_ok + + mov [.no_just], 1 + + cmp [edi+TArray.array+8*ecx+TTextChar.code], $0d + je .new_line + + cmp [edi+TArray.array+8*ecx+TTextChar.code], $0a + je .new_line + +.crlf_ok: + mov [.no_just], 0 + + test [.flags], dtfTableTabs + jz .tabs_ok + +; implement here check for tab and tabs expanding. + +.tabs_ok: + +; check the current line width + + movzx eax, word [edi+TArray.array+8*ecx+TTextChar.width] + add eax, ebx + + cmp eax, [.width] + ja .wider + + mov ebx, eax + + inc ecx + cmp ecx, [edi+TArray.count] + jb .slice_loop + + mov [.no_just], 1 + call .RowAlign + jmp .draw_all + + +.wider: + test [.flags], dtfSingleLine + jnz .del_remaining + + mov eax, ecx + sub eax, esi + cmp eax, 1 + jbe .finish ; Even single char can not be displayed on this [.width] + +; next line +.new_line: + + test [.flags], dtfWordWrap + jz .word_ok + +; word wrap + cmp [.last_word], 0 + jl .word_ok ; there is no previous word, so split on the current pos. + + mov ecx, [.last_word] + mov ebx, [.lw_width] + +.word_ok: + call .RowAlign + + mov eax, [.line_height] + add eax, [.extra_line] + + add [.txt_height], eax + mov word [edi+TArray.array+8*ecx-8+TTextChar.height], ax + + test [.flags], dtfCRLF + jz .skip_ws_loop + + mov eax, [edi+TArray.array+8*ecx+TTextChar.code] + cmp eax, $0d + je .skip_cr + + cmp eax, $0a + jne .skip_ws_loop + +.skip_cr: + mov word [edi+TArray.array+8*ecx+TTextChar.width], 0 ; zero width, skip it. + inc ecx + cmp ecx, [edi+TArray.count] + je .draw_all + + xor eax, $0d xor $0a + cmp [edi+TArray.array+8*ecx+TTextChar.code], eax + jne .main_loop + + mov word [edi+TArray.array+8*ecx+TTextChar.width], 0 ; zero width, skip it. + + inc ecx + cmp ecx, [edi+TArray.count] + jae .draw_all + jmp .main_loop + +.del_remaining: + + mov eax, [edi+TArray.count] + sub eax, ecx + stdcall DeleteArrayItems, edi, ecx, eax + jmp .draw_all + + +.skip_ws_loop: + cmp [edi+TArray.array+8*ecx+TTextChar.code], $20 + ja .main_loop + + mov word [edi+TArray.array+8*ecx+TTextChar.width], 0 ; zero width, skip it. + + inc ecx + cmp ecx, [edi+TArray.count] + jb .skip_ws_loop + + +.draw_all: +; compute the vertical align. + + mov eax, [.line_height] + add [.txt_height], eax + +.draw_all2: + mov ecx, [.height] + sub ecx, [.txt_height] + + mov eax, [.flags] + and eax, dtfVAlignMask + + cmp eax, dtfAlignTop + je .drawit + + add [.y], ecx + + cmp eax, dtfAlignBottom + je .drawit + + sar ecx, 1 + sub [.y], ecx + +.drawit: + stdcall DrawDecomposedString, [.pImage], edi, [.x], [.y], [.font], [.color] + + +.finish: + stdcall FreeMem, edi + popad + return + + + + +.RowAlign: + mov eax, [.flags] + and eax, dtfHAlignMask + + cmp eax, dtfAlignLeft + je .align_ok ; no need for extra space + + cmp eax, dtfAlignJustify + jne .align_center_right + + cmp [.no_just], 1 + je .align_ok + + stdcall JustifyLine, edi, esi, ecx, ebx, [.width] + jmp .align_ok + +.align_center_right: + + mov edx, [.width] + sub edx, ebx + cmp eax, dtfAlignRight + je .set_align + + sar edx, 1 + +.set_align: + mov word [edi+TArray.array+8*esi+TTextChar.width], dx + +.align_ok: + retn + +endp + + + + + +proc DrawStringFormatted, .pImage, .pString, .len, .x, .y, .pFormat begin pushad - mov ecx, DrawString - - mov eax, [.flags] - and eax, $03 - cmp eax, dtfAlignJustify - jne @f - mov ecx, DrawStringJustified -@@: - mov [.DrawProc], ecx - - stdcall StrLen, [.text] - mov [.len], eax - stdcall StrPtr, [.text] - mov esi, eax - - mov edi, [.bounds] - mov eax, [edi+TBounds.height] - mov ecx, [edi+TBounds.y] - mov [.height], eax - mov [.y], ecx - -; slice the string on chunks, depending on flags, rectangle width and the string content. -; push _TTextChunk for every chunk in stack. - mov [.count], 0 -.slice: + mov esi, [.pString] + mov edi, [.pFormat] mov ecx, [.len] - - test [.flags], dtfCRLF - jz .cropit - - xor ecx, ecx -.scanCRLF: - cmp ecx, [.len] - jae .cropit - - mov al, [esi+ecx] - cmp al, $0d - je .cropit - cmp al, $0a - je .cropit - inc ecx - jmp .scanCRLF - -.cropit: - mov ebx, ecx ; high limit - stdcall GetTextBounds, [.raster], esi, ebx, [.font] - - cmp edx, [.height] - jg .drawchunks - - mov [.lineh], edx - - cmp eax, [edi+TBounds.width] - jle .itfits - - mov [.high], ebx - mov [.low], 0 - -.croploop: - mov ebx, [.low] - add ebx, [.high] - shr ebx, 1 - - stdcall GetTextBounds, [.raster], esi, ebx, [.font] - cmp eax, [edi+TBounds.width] - je .itfits - - jg .above - - cmp ebx, [.low] - je .itfits - - mov [.low], ebx - jmp .croploop - -.above: - mov [.high], ebx - jmp .croploop - -.itfits: ; here ebx contains the len of string that fits in the rectangle. - mov ecx, ebx - mov [.linew], eax - - test [.flags], dtfWordWrap - jz .pushit - -; search the last space or tab that separates words: - mov edx, ecx - cmp byte [esi+edx], $0d - je .found - cmp byte [esi+edx], $0a - je .found - -.searchword: - cmp byte [esi+edx], 0 - je .found - cmp byte [esi+edx], ' ' - je .found - cmp byte [esi+edx], $09 - je .found - dec edx - jnz .searchword - cmovz edx, ecx -.found: - mov ecx, edx - - stdcall GetTextBounds, [.raster], esi, ecx, [.font] - mov [.linew], eax - mov [.lineh], edx - -.pushit: - push esi ; pointer to the string. - push ecx ; length of the string. - push [.lineh] - push [.linew] - push [.y] - - inc [.count] - - mov eax, [.lineh] - add [.y], eax - sub [.height], eax - - lea esi, [esi+ecx] - sub [.len], ecx - jz .drawchunks - xor ecx, ecx - -; search for the whitespace that have to be skip - -.skiploop: - mov al, [esi] - cmp al, $0d - je .skipcrlf - cmp al, $0a - je .skipcrlf - cmp al, $20 - je .skipspace - cmp al, $09 - je .skipspace - - jmp .slice - -.skipspace: - inc esi - dec [.len] - jnz .skiploop - jmp .drawchunks - -.skipcrlf: - inc esi - dec [.len] - xor al, $0d xor $0a - cmp [esi], al - jne .slice - inc esi - dec [.len] - jnz .slice - -; pop the _TTextChunk structures and draw, depending on flags. -.drawchunks: - mov edx, [.flags] - and edx, $0c - - mov ecx, [edi+TBounds.height] - sub ecx, [.y] - - cmp edx, dtfAlignBottom - je .drawloop - - shr ecx, 1 - cmp edx, dtfAlignMiddle - je .drawloop - - xor ecx, ecx - -.drawloop: - cmp [.count], 0 - je .finish - - mov ebx, esp - - mov eax, [edi+TBounds.width] - sub eax, [ebx+_TTextChunk.width] - - mov edx, [.flags] - and edx, $03 - - cmp edx, dtfAlignRight - je .hready - - shr eax, 1 - cmp edx, dtfAlignCenter - je .hready - - xor eax, eax - -.hready: - add eax, [edi+TBounds.x] - - push eax - stdcall GetTextOffset, [.raster], [ebx+_TTextChunk.ptr], [ebx+_TTextChunk.len], [.font] - add edx, ecx - add edx, [ebx+_TTextChunk.y] - add edx, [edi+TBounds.y] - pop eax - - stdcall [.DrawProc], [.raster], [ebx+_TTextChunk.ptr], [ebx+_TTextChunk.len], eax, edx, [.font] - -; draws lines on every row of text. For debug purposes. -; stdcall SetLineStyle, $0000ff, 1, 0, 0 -; stdcall MoveTo, [.raster], 0, edx -; stdcall DrawLine, [.raster], [edi+TBounds.width], edx - - add esp, sizeof._TTextChunk - dec [.count] - jmp .drawloop + test ecx, ecx + jns .loop + + stdcall StrLen, esi + mov ecx, eax + +.loop: + mov eax, [edi+TChunkFormat.length] + test eax, eax + jns @f + + stdcall StrLen, esi +@@: + stdcall DrawString, [.pImage], esi, eax, [.x], [.y], [edi+TChunkFormat.font], [edi+TChunkFormat.color] + + add [.x], eax + + mov eax, [edi+TChunkFormat.length] + test eax, eax + js .finish + + add edi, sizeof.TChunkFormat + add esi, eax + sub ecx, eax + jae .loop .finish: popad return endp -proc DrawStringJustified, .raster, .ptrString, .len, .x, .y, .font -.XX dd ? -.rem dd ? -.ind dd ? -.crem dd ? + +proc GetTextBounds2D, .pText, .font +.line dd ? begin pushad - mov esi, [.ptrString] - - stdcall GetTextBounds, [.raster], esi, [.len], [.font] - - sub eax, [edi+TBounds.width] - neg eax - - mov ecx, [.len] - dec ecx - - cdq - div ecx - - cmp eax, 4 - jge .cantjustify ; the needed space is too big for justify, so just draw it left aligned - - mov ecx, eax - mov [.rem], edx - mov [.crem], edx - - mov ebx, [.len] - push [.x] - pop [.XX] - push [.len] - pop [.ind] - -.drawloop: - cmp [.ind], 0 - jle .finish - - stdcall DrawString, [.raster], esi, 1, [.XX], [.y], [.font] - stdcall GetTextBounds, [.raster], esi, 1, [.font] - add [.XX], eax - add [.XX], ecx - - cmp [.crem], 0 - je @f - - sub ebx, [.rem] - jge @f - - inc [.XX] - dec [.crem] - mov ebx, [.len] - sub ebx, [.rem] - -@@: + stdcall GetFontMetrics, [.font] + mov [.line], eax + + xor ebx, ebx + xor ecx, ecx + + mov esi, [.pText] + +.loopy: + + mov edi, esi ; start of the line. + +.loopx: + lodsb + test al, al + jz .eol + + cmp al, $0d + je .eol + cmp al, $a0 + jne .loopx + +.eol: + lea edx, [esi-1] + sub edx, edi ; the string length + + xor al, $0d xor $0a + cmp al, byte [esi] + jne .cr_ok inc esi - dec [.ind] - jmp .drawloop +.cr_ok: + cmp al, $0d xor $0a + pushf + + stdcall GetTextBounds, edi, edx, [.font] + + cmp ebx, eax + cmovb ebx, eax + + add ecx, [.line] + + popf + jne .loopy -.finish: +.end: + mov [esp+4*regEAX], ebx + mov [esp+4*regEDX], ecx + popad return +endp + + + + +include "%TargetOS%/text.asm" + + + -.cantjustify: - stdcall DrawString, [.raster], [.ptrString], [.len], [.x], [.y], [.font] - jmp .finish -endp +endmodule ADDED freshlib/gui/Dummy/Main.asm Index: freshlib/gui/Dummy/Main.asm ================================================================== --- /dev/null +++ freshlib/gui/Dummy/Main.asm @@ -0,0 +1,58 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Main procedure of GUI application library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: Organize the main message/event loop needed by every GUI engine. +;_________________________________________________________________________________________ + +proc ProcessSystemEvents +begin + stc + return +endp + + + +proc WaitForSystemEvent +begin + return +endp + + + +;---------------------------------------------------------------------------------------------------------- +; This procedure makes following: +; 1. Takes as arguments one windows message +; 2. Converts this message to FreshLib system event (or not, depending on the message) +; 3. Calls SysEventHandler procedures for the given object (if any) with the created event structure. +; 4. returns CF=0 if the event was properly processed. +; 5. returns CF=1 if the event was not processed. +; +; The event can be not processed in the following cases: +; 1. The window that receives the message is not FreshLib object. +; 2. TObjectClass.procSysEventHandler = 0 for the given class and all parents. +; 3. All procSysEventHandler procedures refuse to process the event (CF=1) +;---------------------------------------------------------------------------------------------------------- + +dproc __ProcessOneSystemEvent, .hwnd, .wmsg, .wparam, .lparam +begin + + dispatch [.wmsg] + +.ondefault: + stc + return + +oncase 0 + clc + return +enddp + + ADDED freshlib/gui/Dummy/TApplication.asm Index: freshlib/gui/Dummy/TApplication.asm ================================================================== --- /dev/null +++ freshlib/gui/Dummy/TApplication.asm @@ -0,0 +1,45 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TApplication object class. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +proc TApplication.Create, .obj +begin + clc + return +endp + + + +proc TApplication.Get, .obj, .paramID +begin + stc + return +endp + + + + +proc TApplication.Set, .obj, .paramID, .value +begin + stc + return +endp + + + +proc TApplication.SysEventHandler, .obj, .event +begin + stc + return +endp ADDED freshlib/gui/Dummy/keycodes.inc Index: freshlib/gui/Dummy/keycodes.inc ================================================================== --- /dev/null +++ freshlib/gui/Dummy/keycodes.inc @@ -0,0 +1,77 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains scan code values for control keyboard keys. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +keyHomeNumpad = $47 +keyUpNumpad = $48 +keyPgUpNumpad = $49 +keyLeftNumpad = $4b +key5Numpad = $4c +keyRightNumpad = $4d +keyEndNumpad = $4f +keyDownNumpad = $50 +keyPgDnNumpad = $51 +keyInsNumpad = $52 +keyDelNumpad = $53 +keyEnterNumpad = $1c ; it is ASCII $0d +keyPlusNumpad = $4e +keyMinusNumpad = $4a +keyAsteriskNumpad = $37 +keySlashNumpad = $35 + +keyNumLock = $45 +keyScrollLock = $46 +keyPause = $45 +keyPrtScr = $37 + + +keyLeft = $4b +keyRight = $4d +keyUp = $48 +keyDown = $50 + +keyInsert = $52 +keyDelete = $53 +keyHome = $47 +keyEnd = $4f +keyPgUp = $49 +keyPgDown = $51 + +keyF1 = $3b +keyF2 = $3c +keyF3 = $3d +keyF4 = $3e + +keyF5 = $3f +keyF6 = $40 +keyF7 = $41 +keyF8 = $42 + +keyF9 = $43 +keyF10 = $44 ; used for menu and does not generate WM_KEYDOWN. +keyF11 = $57 +keyF12 = $58 + +keyCapsLock = $3a +keyShiftLeft = $2a +keyCtrlLeft = $1d +keyWndLeft = $5b +keyWndRight = $5c +keyAltLeft = $38 +keyAltRight = $38 +keyPopupMenu = $5d +keyShiftRight = $36 +keyCtrlRight = $1d + +keyBackSpace = $0e + ADDED freshlib/gui/Dummy/mouse.asm Index: freshlib/gui/Dummy/mouse.asm ================================================================== --- /dev/null +++ freshlib/gui/Dummy/mouse.asm @@ -0,0 +1,32 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Provides unified access to standard mouse cursors. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +proc SetMouseCursor, .hCursor +begin + return +endp + + + +proc GetStockCursor, .index +begin + return +endp + + +proc MouseCapture, .hwnd +begin + return +endp ADDED freshlib/gui/Dummy/windows.asm Index: freshlib/gui/Dummy/windows.asm ================================================================== --- /dev/null +++ freshlib/gui/Dummy/windows.asm @@ -0,0 +1,205 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Window management OS interface functions. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +;_________________________________________________________________________________________ + + +proc _CreateNullWindow +begin + return +endp + +;_________________________________________________________________________________________ + + + +proc _DestroyWindow, .hwnd +begin + return +endp + + +;_________________________________________________________________________________________ + + +proc _GetParent, .hwnd +begin + return +endp + +;_________________________________________________________________________________________ + + +proc _GetChildren, .hwnd +begin + return +endp + + +;_________________________________________________________________________________________ + + + +proc _GetVisible, .hwnd +begin + return +endp + +;_________________________________________________________________________________________ + + +proc _GetWindowBounds, .hwnd, .pBounds +begin + return +endp + + + +;_________________________________________________________________________________________ + + +proc _SetWindowBounds, .hwnd, .pBounds +begin + return +endp + + + + + +;_________________________________________________________________________________________ + +proc _SetWindowBorder, .hwnd, .brdType +begin + return +endp + +;_________________________________________________________________________________________ + +proc _ShowWindow, .hwnd, .flag +begin + return +endp + + +;_________________________________________________________________________________________ + + +proc _RefreshWindow, .hwnd +begin + return +endp + + +;_________________________________________________________________________________________ + + +proc _SetFocus, .hwnd +begin + return +endp + +;_________________________________________________________________________________________ + +proc _AddChild, .hwnd, .child +begin + return +endp + +;_________________________________________________________________________________________ + + +; Common utility procedures. + + +;_________________________________________________________________________________________ +; +; Returns the window TObject structure, from the window handle. +;_________________________________________________________________________________________ + +proc _GetWindowStruct, .hwin +begin + return +endp + + + +;_________________________________________________________________________________________ + + + +proc _SetWindowStruct, .hwin, .value +begin + return +endp + + +;_________________________________________________________________________________________ + + + +proc _SetWindowTextUtf8, .hwnd, .ptrUtf8 +begin + return +endp + + + +;_________________________________________________________________________________________ + + + +proc _GetWindowTextUtf8, .hwnd, .ptrUtf8 +begin + return +endp + + + +;_________________________________________________________________________________________ + + +proc _EnableWindow, .hwnd, .flag +begin + return +endp + + +;_________________________________________________________________________________________ + + +proc _SetModalTowards, .hwnd, .hwndParent +begin + return +endp + + +;_________________________________________________________________________________________ + + +proc _FinalizeModal, .hwnd, .hwndParent +begin + return +endp + + +;_________________________________________________________________________________________ + + +proc __CommonWindowProc, .hwnd, .wmsg, .wparam, .lparam +begin + return +endp + ADDED freshlib/gui/KolibriOS/Main.asm Index: freshlib/gui/KolibriOS/Main.asm ================================================================== --- /dev/null +++ freshlib/gui/KolibriOS/Main.asm @@ -0,0 +1,58 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Main procedure of GUI application library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: Organize the main message/event loop needed by every GUI engine. +;_________________________________________________________________________________________ + +proc ProcessSystemEvents +begin + stc + return +endp + + + +proc WaitForSystemEvent +begin + return +endp + + + +;---------------------------------------------------------------------------------------------------------- +; This procedure makes following: +; 1. Takes as arguments one windows message +; 2. Converts this message to FreshLib system event (or not, depending on the message) +; 3. Calls SysEventHandler procedures for the given object (if any) with the created event structure. +; 4. returns CF=0 if the event was properly processed. +; 5. returns CF=1 if the event was not processed. +; +; The event can be not processed in the following cases: +; 1. The window that receives the message is not FreshLib object. +; 2. TObjectClass.procSysEventHandler = 0 for the given class and all parents. +; 3. All procSysEventHandler procedures refuse to process the event (CF=1) +;---------------------------------------------------------------------------------------------------------- + +proc __ProcessOneSystemEvent, .hwnd, .wmsg, .wparam, .lparam +begin + + dispatch [.wmsg] + +.ondefault: + stc + return + +oncase 0 + clc + return + + enddispatch +endp ADDED freshlib/gui/KolibriOS/application.asm Index: freshlib/gui/KolibriOS/application.asm ================================================================== --- /dev/null +++ freshlib/gui/KolibriOS/application.asm @@ -0,0 +1,37 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TApplication object class. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + + +uglobal + var FTLibrary = ? + var FTCManager = ? + var FTCImageCache = ? + var FTCCMapCache = ? +endg + + + + +proc InitGUIApplication +begin + return +endp + + +proc TerminateGUI +begin + return +endp ADDED freshlib/gui/KolibriOS/clipboard.asm Index: freshlib/gui/KolibriOS/clipboard.asm ================================================================== --- /dev/null +++ freshlib/gui/KolibriOS/clipboard.asm @@ -0,0 +1,29 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Clipboard management library. +; +; Target OS: KolibriOS +; +; Dependencies: +;_________________________________________________________________________________________ + +; returns eax = handle to string with the clipboard data. +body ClipboardRead +begin + return +endp + + + +; writes the string .hstring to the clipboard. +; returns nothing. + +body ClipboardWrite;, .hstring +begin + return +endp + + ADDED freshlib/gui/KolibriOS/keycodes.inc Index: freshlib/gui/KolibriOS/keycodes.inc ================================================================== --- /dev/null +++ freshlib/gui/KolibriOS/keycodes.inc @@ -0,0 +1,106 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains scan code values for control keyboard keys. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +keyHomeNumpad = $47 +keyUpNumpad = $48 +keyPgUpNumpad = $49 +keyLeftNumpad = $4b +key5Numpad = $4c +keyRightNumpad = $4d +keyEndNumpad = $4f +keyDownNumpad = $50 +keyPgDnNumpad = $51 +keyInsNumpad = $52 +keyDelNumpad = $53 +keyEnterNumpad = $1c ; it is ASCII $0d +keyPlusNumpad = $4e +keyMinusNumpad = $4a +keyAsteriskNumpad = $37 +keySlashNumpad = $35 + +keyNumLock = $45 +keyScrollLock = $46 +keyPause = $45 +keyPrtScr = $37 + + +keyLeft = $4b +keyRight = $4d +keyUp = $48 ; 72 +keyDown = $50 + +keyInsert = $52 +keyDelete = $53 +keyHome = $47 +keyEnd = $4f +keyPgUp = $49 +keyPgDown = $51 + +keyF1 = $3b +keyF2 = $3c +keyF3 = $3d +keyF4 = $3e + +keyF5 = $3f +keyF6 = $40 +keyF7 = $41 +keyF8 = $42 + +keyF9 = $43 +keyF10 = $44 ; used for menu and does not generate WM_KEYDOWN. +keyF11 = $57 +keyF12 = $58 + +keyCapsLock = $3a +keyShiftLeft = $2a +keyCtrlLeft = $1d +keyWndLeft = $5b +keyWndRight = $5c +keyAltLeft = $38 +keyAltRight = $38 +keyPopupMenu = $5d +keyShiftRight = $36 +keyCtrlRight = $1d + +keyBackSpace = $0e + +keyTab = $ff00 + +keyA = 'a' +keyB = 'b' +keyC = 'c' +keyD = 'd' +keyE = 'e' +keyF = 'f' +keyG = 'g' +keyH = 'h' +keyI = 'i' +keyJ = 'j' +keyK = 'k' +keyL = 'l' +keyM = 'm' +keyN = 'n' +keyO = 'o' +keyP = 'p' +keyQ = 'q' +keyR = 'r' +keyS = 's' +keyT = 't' +keyU = 'u' +keyV = 'v' +keyW = 'w' +keyX = 'x' +keyY = 'y' +keyZ = 'z' + ADDED freshlib/gui/KolibriOS/mouse.asm Index: freshlib/gui/KolibriOS/mouse.asm ================================================================== --- /dev/null +++ freshlib/gui/KolibriOS/mouse.asm @@ -0,0 +1,40 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Provides unified access to standard mouse cursors. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +body SetMouseCursor ;, .hWindow, .hCursor +begin + return +endp + + + +body GetStockCursor ;, .index +begin + return +endp + + + +body __MouseCapture ;, .hwnd +begin + return +endp + + + +body ZeroMouseMove +begin + return +endp ADDED freshlib/gui/KolibriOS/windows.asm Index: freshlib/gui/KolibriOS/windows.asm ================================================================== --- /dev/null +++ freshlib/gui/KolibriOS/windows.asm @@ -0,0 +1,107 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Window management OS interface functions. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + +body _CreateWindow +begin + return +endp + +;_________________________________________________________________________________________ + + + +body _DestroyWindow +begin + return +endp + + +;_________________________________________________________________________________________ + + + + +body _ClientToScreen +begin + + return +endp + + + +;_________________________________________________________________________________________ + + + +body _RefreshWindowRect +begin + return +endp + + +;_________________________________________________________________________________________ + + +body _SetWindowTextUtf8 +begin + return +endp + +;_________________________________________________________________________________________ + + + +body _SetModalTowards +begin + return +endp + + +body _FinalizeModal +begin + return +endp + +;_________________________________________________________________________________________ + + +; Common utility procedures. + + +;_________________________________________________________________________________________ +; +; Returns the window TObject structure, from the window handle. +;_________________________________________________________________________________________ + +body _GetWindowStruct +begin + return +endp + + + +;_________________________________________________________________________________________ + + + +body _SetWindowStruct +begin + return +endp + + +;_________________________________________________________________________________________ + ADDED freshlib/gui/Linux/Main.asm Index: freshlib/gui/Linux/Main.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/Main.asm @@ -0,0 +1,1516 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Main procedure of GUI application library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Organize the main message/event loop needed by every GUI engine. +;_________________________________________________________________________________________ + +uglobal + if used fGlobalTerminate + fGlobalTerminate dd ? + end if + + if used __PrevClick + __PrevClick evButtonPress + end if + + + if used __pExposeList + __pExposeList dd ? + end if + + if used __pMotionEvent + __pMotionEvent dd ? + end if +endg + + + +body ProcessSystemEvents + .evExpose evExpose +begin + pushad + + xor eax, eax + xchg eax, [__pMotionEvent] + test eax, eax + jz .event_loop + + stdcall FreeMem, eax + +.event_loop: + cmp [fGlobalTerminate], 0 ; check for quit + jne .terminate + + stdcall xRecv, appConn, FALSE + jc .noevents + + test eax, eax + jz .noevents ; because of some reason the read mutex can't be locked. Try the next time. + + mov ebx, eax + +;.process: + cmp [ebx+xResponse.code], rspError ; error + je .error + + cmp [ebx+xResponse.code], rspReply ; reply + je .reply + +; its event here + + cmp [ebx+xAnyEvent.event], Expose + jne .expose_ok + +; expose event. + + mov edx, [__pExposeList] + test edx, edx + jnz .lst_ok + + stdcall CreateArray, sizeof.RECT + mov edx, eax + +.lst_ok: + mov eax, [ebx+evExpose.window] + cmp eax, [edx+TArray.lparam] + je .add_expose + + call .flush_expose + +.add_expose: + movzx eax, [ebx+evExpose.x] + movzx ecx, [ebx+evExpose.y] + movzx esi, [ebx+evExpose.width] + movzx edi, [ebx+evExpose.height] + stdcall RectListAddXY, edx, eax, ecx, esi, edi + mov eax, [ebx+evExpose.window] + mov [edx+TArray.lparam], eax + + mov [__pExposeList], edx + jmp .next + +.expose_ok: + cmp [ebx+xAnyEvent.event], MotionNotify + jne .process_event + + mov eax, [ebx+evMotionNotify.window] + xchg ebx, [__pMotionEvent] + + test ebx, ebx + jz .event_loop + + cmp eax, [ebx+evMotionNotify.window] + je .next + +.process_event: + stdcall __ProcessOneSystemEvent, ebx + +.next: + stdcall FreeMem, ebx + jmp .event_loop + + +.flush_expose: + push edx + + mov edi, [edx+TArray.count] + + mov eax, [edx+TArray.lparam] + mov [.evExpose.window], eax + + mov [.evExpose.event], Expose + mov [.evExpose.count], 0 + mov [.evExpose.seq], 0 + + lea edx, [edx+TArray.array] + +.flush_loop: + dec edi + js .end_flush + + mov eax, [edx+RECT.left] + mov ecx, [edx+RECT.top] + + mov [.evExpose.x], ax + mov [.evExpose.y], cx + + mov eax, [edx+RECT.right] + mov ecx, [edx+RECT.bottom] + sub eax, [edx+RECT.left] + sub ecx, [edx+RECT.top] + + mov [.evExpose.width], ax + mov [.evExpose.height], cx + + lea eax, [.evExpose] + stdcall __ProcessOneSystemEvent, eax + + add edx, sizeof.RECT + jmp .flush_loop + +.end_flush: + pop edx + mov [edx+TArray.count], 0 + retn + + + + +; process replies. + +.reply: + +; Dispatch the replies to the callbacks if any. Else, discard. + movzx ecx, [ebx+xAnyReply.seq] + + OutputValue "Reply for sequence: ", ecx, 10, -1 + + xor esi, esi + xchg [appConn.pFCallback], esi ;(xchg is always atomic regardless of lock prefix) + + test esi, esi + jz .next ; there is no records in the queue + +.loop_forward: + cmp cx, word [esi+xCallback.sequence] + jl .processed ; it is too early for this callback, restore the queue. + jg .discard ; + +; call the callback + pushad + stdcall [esi+xCallback.proc], ebx, [esi+xCallback.lparam] + popad + +.discard: + push esi ; for calling FreeMem below. + + mov eax, esi ; Either it was the last record (esi == .pLCallback) so + lea edx, [appConn.pFCallback] ; reset the queue, or it is not the last and it is safe to + lock cmpxchg [appConn.pLCallback], edx ; manipulate the .p_next field and write to the .pFCallback field. + je .free + +; possible race condition here if new pointer is written to .pLCallback, but +; the previous element xCallback.p_next is not updated yet. + + xor eax, eax + +.wait: + pause + xchg [esi+xCallback.p_next], eax + test eax, eax + jz .wait + + mov esi, eax ; next element in the queue + + stdcall FreeMem ; from the stack + jmp .loop_forward + +.free: + stdcall FreeMem ; from the stack + jmp .next + +.processed: + mov [appConn.pFCallback], esi ; it is safe to write here, because there is at least one element in the queue + jmp .next ; so, the pFCallback field should not be written from another thread. + + +.error: + stdcall OutputErrorMessage, ebx + jmp .next + + +.noevents: + xor edx, edx + xchg edx, [__pExposeList] + test edx, edx + jz .exp_ok + + call .flush_expose + stdcall FreeMem, edx + +.exp_ok: + xor ebx, ebx + xchg ebx, [__pMotionEvent] + test ebx, ebx + jz .finish + + stdcall __ProcessOneSystemEvent, ebx + stdcall FreeMem, ebx + +.finish: + clc + popad + return + +.terminate: + stc + popad + return +endp + + + +; call this function on freeing window ID (in xFreeID). + +proc __CleanupDeferedEvents, .id +begin + push eax edx + + mov eax, [.id] + mov edx, [__pExposeList] + test edx, edx + jz .expose_ok + + cmp eax, [edx+TArray.lparam] + jne .expose_ok + + xor edx, edx + xchg edx, [__pExposeList] + stdcall FreeMem, edx + +.expose_ok: + mov edx, [__pMotionEvent] + test edx, edx + jz .finish + + cmp eax, [edx+evMotionNotify.window] + jne .finish + + xor edx, edx + xchg edx, [__pMotionEvent] + stdcall FreeMem, edx + +.finish: + pop edx eax + return +endp + + + + + + + +proc OutputErrorMessage, .xerror +begin + pushad + + stdcall DebugLock + + mov esi, [.xerror] + + stdcall FileWriteString, [STDERR], txt "XError code: " + + movzx ecx, [ebx+xAnyError.error] + cmp ecx, .count + ja .show_number + + stdcall FileWriteString, [STDERR], txt "Bad" + + lea ecx, [2*ecx] + lea ecx, [8*ecx+.noerror] + stdcall FileWrite, [STDERR], ecx, 16 + jmp .errnum_ok + +.show_number: + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + +.errnum_ok: + stdcall FileWrite, [STDERR], <txt 13, 10>, 2 + +; bad sequence + stdcall FileWriteString, [STDERR], "Sequence number: " + + movzx eax, [ebx+xAnyError.seq] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + + stdcall FileWrite, [STDERR], <txt 13, 10>, 2 + +; on operation: + stdcall FileWriteString, [STDERR], "Operation opcode: " + + movzx eax, [ebx+xAnyError.major] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDERR], txt "." + + movzx eax, [ebx+xAnyError.minor] + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + + stdcall FileWrite, [STDERR], <txt 13, 10>, 2 + +; Bad value + movzx eax, [ebx+xAnyError.error] + cmp [.hasval + eax], 0 + je .value_ok + + stdcall FileWriteString, [STDERR], "Bad value: $" + + mov eax, [ebx+xAnyError.bad_num] + stdcall NumToStr, eax, ntsHex or ntsUnsigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDERR], txt " (" + + mov eax, [ebx+xAnyError.bad_num] + stdcall NumToStr, eax, ntsDec or ntsSigned + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDERR], <txt ")", 13, 10> + +.value_ok: + stdcall FileWrite, [STDERR], <txt 13, 10>, 2 + stdcall DebugUnlock + + popad + return + +.noerror dq "NoError ", " " +.request dq "Request ", " " +.value dq "Value ", " " +.window dq "Window ", " " +.pixmap dq "Pixmap ", " " +.atom dq "Atom ", " " +.cursor dq "Cursor ", " " +.font dq "Font ", " " +.match dq "Match ", " " +.drawable dq "Drawable", " " +.access dq "Access ", " " +.alloc dq "Alloc ", " " +.colormap dq "Colormap", " " +.gcontext dq "GContext", " " +.idchoice dq "IDChoise", " " +.name dq "Name ", " " +.length dq "Length ", " " +.implem dq "Implemen", "tation " +.count = ($ - .noerror)/16 + +.hasval db 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0 +endp + + + + +; Wait for events, but with timeout. +; Somehow tricky implementation. + +body WaitForSystemEvent +.timeout lnx_timeval +.fd_set rb 128 +begin + pushad + + lea edi, [.fd_set] + xor eax, eax + mov ecx, 32 + rep stosd + + mov [.timeout.tv_sec], eax + mov [.timeout.tv_usec], 50000 + + mov ecx, [appConn.socket] + mov eax, ecx + and ecx, 11111b + shr eax, 5 + bts dword [.fd_set+4*eax], ecx + + mov eax, sys_select + mov ebx, [appConn.socket] + inc ebx + lea ecx, [.fd_set] + xor edx, edx + xor esi, esi + lea edi, [.timeout] + int 80h + + test eax, eax + jz .its_timeout + +.finish_ok: + clc + popad + return + +.its_timeout: + stc + popad + return +endp + + + + + + +proc __ProcessOneSystemEvent, .xevent +begin + pushad + + mov ebx, [.xevent] + +.base: + movzx ecx, [ebx+xAnyEvent.event] + and ecx, $7f ; the bit 7 indicates messages sent by SendMessage. + +; clipboard events + + cmp ecx, [appConn.exFixes.FirstEvent] + je .sel_owner_changed + + cmp ecx, SelectionRequest + je .sel_req_event + + cmp ecx, SelectionNotify + je .sel_notify_event + +; events without window + + cmp ecx, [appConn.exKbd.FirstEvent] + je .xkb_event + + cmp ecx, [appConn.exShm.FirstEvent] + je .shm_complete + + cmp ecx, MappingNotify + je .mapping_notify + +; events with window + cmp ecx, LASTEvent + jae .notprocessed + + movzx eax, [.jump_table+4*ecx+2] + movzx ecx, [.jump_table+4*ecx] + jecxz .notprocessed + + test eax, eax + jz .notprocessed ; the event is not about window + + add ecx, .base + + mov esi, dword [ebx+eax] ; eax is the offset inside the raw event structure of the window ID + stdcall xGetObj, appConn, esi + jc .notprocessed + + mov esi, eax + + jmp ecx + +.notprocessed: + popad + stc + return + +.finish: + popad + clc + return + + +.xkb_event: + OutputValue "XKB Event #", ecx, 10, -1 + OutputMemoryByte ebx, 32 + + jmp .mapping_notify + + +.shm_complete: + stdcall xGetObj, appConn, [ebx+evShmCompletion.segID] + jc .finish + + mov [eax+TLinuxImage.readonly], 0 + jmp .finish + +; refreshes keyboard mapping information, stored locally. +.mapping_notify: +locals +.getmap __xXkbGetMapReq +endl + mov eax, [appConn.exKbd.OpCode] + mov [.getmap.op], al + mov [.getmap.minor], opXkbGetMap + mov [.getmap.length], sizeof.__xXkbGetMapReq/4 + mov [.getmap.deviceSpec], xkbUseCoreKbd + mov [.getmap.full], mxkbKeySyms + mov [.getmap.partial], 0 + + lea eax, [.getmap] + stdcall xSendWithCallback, appConn, eax, __IndexKeymap, 0 + jmp .finish + + +;......................................................................... +; seMove and seResize events. +;------------------------------------------------------------------------- +.moveresize: +; ConfigureNotify event + + test [ebx+evConfigureNotify.event], $80 + jz .is_resize ; the correct move events are only from the window manager, i.e. through SendEvent + + movsx eax, [ebx+evConfigureNotify.x] + movsx edx, [ebx+evConfigureNotify.y] + + cmp eax, [esi+TWindow._x] + jne .move + + cmp edx, [esi+TWindow._y] + je .is_resize + +.move: + exec esi, TWindow:ExtMove, eax, edx + +; resize event... +.is_resize: + movzx eax, [ebx+evConfigureNotify.width] + movzx edx, [ebx+evConfigureNotify.height] + + cmp eax, [esi+TWindow._width] + jne .resize + + cmp edx, [esi+TWindow._height] + je .finish + +.resize: + exec esi, TWindow:ExtResize, eax, edx + jmp .finish + +;......................................................................... +; DestroyNotify handler it invalidates the handle in TWindow structure and then destroys TWindow. +; Do we need it??? +.destroy: + test esi, esi + jz .finish + +; mov [esi+TWindow.handle], 0 + +; destroy esi + jmp .finish + + +;......................................................................... +; Mouse event handlers + +.mousemove: + movsx ecx, [ebx+evMotionNotify.x] + movsx edx, [ebx+evMotionNotify.y] + movzx eax, [ebx+evMotionNotify.state] + + stdcall ServeMenuMouseMove, esi, ecx, edx, eax + jc .finish + + mov edi, [__MouseTarget] + test edi, edi + jz .search_target_move + + ; returns coordinates in ecx, edx + stdcall __GetRelativeXY, edi, ecx, edx + jmp .target_move + +.search_target_move: + ; returns coordinates in ecx, edx + exec esi, TWindow:ChildByXY, ecx, edx, TRUE + mov edi, eax + +.target_move: + cmp edi, [__LastPointedWindow] + je .move_event + + cmp [__LastPointedWindow], 0 + je .leave_ok + + exec [__LastPointedWindow], TWindow:EventMouseLeave + +.leave_ok: + mov [__LastPointedWindow], edi + exec edi, TWindow:EventMouseEnter + +.move_event: + movzx eax, [ebx+evMotionNotify.state] + exec edi, TWindow:EventMouseMove, ecx, edx, eax + jmp .finish + + +.mouseleave: + xor eax, eax + xchg eax, [__LastPointedWindow] + test eax, eax + jz .finish + + exec eax, TWindow:EventMouseLeave + jmp .finish + + +;......................................................................... + +.mouse_btn_press: + movsx ecx, [ebx+evButtonPress.x] + movsx edx, [ebx+evButtonPress.y] + movzx eax, [ebx+evButtonPress.state] + movzx edi, [ebx+evButtonPress.detail] + + stdcall ServeMenuButtonPress, esi, edi, eax, ecx, edx + jc .finish + + mov edi, [__MouseTarget] + test edi, edi + jz .search_target_press + + stdcall __GetRelativeXY, edi, ecx, edx + jmp .target_press + + +.search_target_press: + exec esi, TWindow:ChildByXY, ecx, edx, TRUE + mov edi, eax + +.target_press: + get eax, edi, TWindow:GlobalEnabled + test eax, eax + jz .finish + + cmp [ebx+evButtonPress.detail], mbScrollUp ; the codes for the scroll are 4, 5, 6 and 7 + jae .wheelscroll + +; deal with focus + stdcall __SetIntFocused, edi + +; now detect double clicks: + + mov al, [ebx+evButtonPress.detail] + cmp al, [__PrevClick.detail] + jne .single + + mov eax, [ebx+evButtonPress.time] + sub eax, [__PrevClick.time] + cmp eax, [GUI.DoubleClickTime] + ja .single + + xor eax, eax + mov ax, [ebx+evButtonPress.x] + sub ax, [__PrevClick.x] + jns @f + neg ax +@@: + cmp eax, [GUI.DoubleClickDistance] + ja .single + + mov ax, [ebx+evButtonPress.y] + sub ax, [__PrevClick.y] + jns @f + neg ax +@@: + cmp eax, [GUI.DoubleClickDistance] + ja .single + +; double click detected + movzx eax, [ebx+evButtonPress.detail] + movzx ebx, [ebx+evButtonPress.state] + push eax + + exec edi, TWindow:EventButtonPress, eax, ebx, ecx, edx + pop eax + exec edi, TWindow:EventButtonDoubleClick, eax, ebx, ecx, edx + +;clear the previous + mov edi, __PrevClick + mov ecx, sizeof.evButtonPress / 4 + xor eax, eax + rep stosd + jmp .finish + + +.single: + movzx eax, [ebx+evButtonPress.detail] + movzx ebx, [ebx+evButtonPress.state] + exec edi, TWindow:EventButtonPress, eax, ebx, ecx, edx + +; copy the previous event + mov esi, [.xevent] + mov edi, __PrevClick + mov ecx, sizeof.evButtonPress / 4 + rep movsd + jmp .finish + + +.wheelscroll: + movzx ecx, [ebx+evButtonPress.detail] + + mov edx, scrollY + cmp ecx, mbScrollLeft + jae .scrollx + test [ebx+evButtonPress.state], maskShift ; generate horizontal scroll events when the Shift button is pressed during the scroll. + jz .dir_ok + +.scrollx: + mov edx, scrollX + and ecx, $5 ; converts mbScrollLeft/mbScrollRight to scWheelUp/scWheelDn (number magic!!!) + +.dir_ok: + exec edi, TWindow:EventScroll, edx, ecx, 1 + jmp .finish + +;......................................................................... + +.mouse_btn_release: + mov edi, [__MouseTarget] + test edi, edi + jz .search_target_release + +; OutputValue "Release mouse target: ", edi, 16, 8 + + movsx ecx, [ebx+evButtonRelease.x] + movsx edx, [ebx+evButtonRelease.y] + + stdcall __GetRelativeXY, edi, ecx, edx + jmp .target_release + +.search_target_release: + +; OutputValue "Search for mouse target in: ", esi, 16, 8 + + movsx ecx, [ebx+evButtonRelease.x] + movsx edx, [ebx+evButtonRelease.y] + + exec esi, TWindow:ChildByXY, ecx, edx, TRUE + mov edi, eax + +.target_release: +; OutputValue "Release mouse target found: ", edi, 16, 8 + + get eax, eax, TWindow:GlobalEnabled + test eax, eax + jz .finish + + movzx eax, [ebx+evButtonRelease.detail] + movzx ebx, [ebx+evButtonRelease.state] + exec edi, TWindow:EventButtonRelease, eax, ebx, ecx, edx + jmp .finish + + +;......................................................................... +; Window paint event + +.expose: + get edi, esi, TWindow:Screen + test edi, edi + jz .finish + +if defined Caret + stdcall __PaintCaret, esi, edi +end if + + movzx eax, [ebx+evExpose.count] + + movzx ecx, [ebx+evExpose.width] + movzx edx, [ebx+evExpose.height] + movsx eax, [ebx+evExpose.x] + movsx ebx, [ebx+evExpose.y] + +; OutputValue "Expose width: ", ecx, 10, -1 +; OutputValue "Expose height: ", edx, 10, -1 + + stdcall DrawImageRect, [esi+TWindow.handle], edi, eax, ebx, eax, ebx, ecx, edx + + mov eax, [.xevent] + movzx eax, [eax+evExpose.count] + + test eax, eax + jnz .finish ; there are other expose events waiting. + +if defined options.DebugMode.ComputeFPS & options.DebugMode.ComputeFPS + stdcall FramesPerSecond +end if + + xor eax, eax + xor edx, edx + + xchg eax, [esi+TWindow.sync_valueLo] + xchg edx, [esi+TWindow.sync_valueHi] + + test eax, eax + jnz .set_counter + + test edx, edx + jz .finish + +; XSYNC handling of the window resize by the window manager. +.set_counter: +locals + .cnt __xSetCounterReq +endl + mov ecx, [esi+TWindow.sync_counter] + test ecx, ecx + jz .finish + + mov [.cnt.counterID], ecx + + OutputValue "SetCounter valueLo: ", eax, 10, -1 + OutputValue "SetCounter valueHi: ", edx, 10, -1 + + mov [.cnt.valueHi], edx + mov [.cnt.valueLo], eax + + mov eax, [appConn.exSync.OpCode] + mov [.cnt.op], al + mov [.cnt.minor], opSetCounter + mov [.cnt.length], sizeof.__xSetCounterReq/4 + + lea eax, [.cnt] + stdcall xSend, appConn, eax + jmp .finish + + +;......................................................................... +; Keyboard events. +.key_press: + + movzx eax, [ebx+evKeyPress.detail] + movzx edx, [ebx+evKeyPress.state] + stdcall KeycodeToKeysym, [appConn.pKeymap], eax, edx + mov ecx, eax + + stdcall KeysymToUnicode, eax, edx + stdcall EncodeUtf8, eax + mov edx, eax + + mov edi, [__ActiveMenu] + test edi, edi + jnz .send_key_event + + mov edi, [__FocusedWindow] + test edi, edi + jz .active_form + +.send_key_event: + movzx eax, [ebx+evKeyPress.state] + exec edi, TWindow:EventKeyPress, edx, ecx, eax + jc .finish + +.active_form: + cmp [__ActiveForm], 0 + je .finish + + get edi, [__ActiveForm], TForm:ActionList + test edi, edi + jz .finish + + movzx eax, [ebx+evKeyPress.state] + exec edi, TActionList:EventKeyPress, edx, ecx, eax + jmp .finish + +;......................................................................... + +.key_release: + + cmp [__FocusedWindow], 0 + je .finish + + + movzx eax, [ebx+evKeyRelease.detail] + movzx ebx, [ebx+evKeyRelease.state] + stdcall KeycodeToKeysym, [appConn.pKeymap], eax, ebx + mov ecx, eax + + stdcall KeysymToUnicode, eax, ebx + stdcall EncodeUtf8, eax + mov edx, eax + + exec [__FocusedWindow], TWindow:EventKeyRelease, edx, ecx, ebx + jmp .finish + +;......................................................................... +; Some property was changed. Check for the Window state +.property_changed: +locals + .pget __xGetPropertyReq +endl + +;options.DebugMode = 1 +; OutputValue "Property changed event: ", [ebx+evPropertyChanged.property], 16, 8 +; OutputValue "_NET_WM_STATE = ", [cNetWMState], 16, 8 +; DebugMsg +;options.DebugMode = 0 + + + mov eax, [ebx+evPropertyChanged.property] + cmp eax, [atomState] + jne .finish + + mov ecx, [ebx+evPropertyChanged.window] + + mov [.pget.op], opGetProperty + mov [.pget.delete], FALSE + mov [.pget.length], sizeof.__xGetPropertyReq/4 + mov [.pget.window], ecx + mov [.pget.property], eax + mov [.pget.type], atomATOM + mov [.pget.data_ofs], 0 + mov [.pget.data_len], 4 + + lea eax, [.pget] + stdcall xSendWithCallback, appConn, eax, WindowStateChanged, ecx + jmp .finish + + +;......................................................................... +; This event is sent from the window manager or other X client application + +.clientmessage: + + mov eax, dword [ebx+evClientMessage.data] ; data[0] + + cmp eax, [wmProtocols.atomWMPing] + jne .maybe_delete + +; _NET_WM_PING protocol handling +locals + .ping __xSendEventReq +endl + mov eax, [appConn.rootID] + mov [ebx+evClientMessage.window], eax + + mov [.ping.op], opSendEvent + mov [.ping.propagate], 0 + mov [.ping.length], sizeof.evClientMessage/4 + sizeof.__xSendEventReq/4 + mov [.ping.dest], eax + mov [.ping.event_mask], maskSubstructureNotify or maskSubstructureRedirect + + stdcall xReqStart, appConn + lea eax, [.ping] + stdcall xReqSend, appConn, eax, sizeof.__xSendEventReq + stdcall xReqSend, appConn, ebx, sizeof.evClientMessage + stdcall xReqEnd, appConn + + OutputValue "_NET_WM_PING sequence: ", [appConn.Sequence], 10, -1 + + jmp .finish + + +.maybe_delete: + cmp eax, [wmProtocols.atomWMDelete] + jne .maybe_sync + +; The window is closed by click on close button or by pressing Alt+F4 or by other WM method +;.close_from_wm: + + exec esi, TWindow:CloseRequest, cerFromUser + jmp .finish + +.maybe_sync: + cmp eax, [wmProtocols.atomWMSyncRequest] + jne .unknown_client_msg + +; XSYNC protocol message. It contains a value for the counter that +; to be set when all the repaints of the window are finished. +; See the .expose handling above. + +;if defined options.DebugMode & options.DebugMode +; stdcall NumToStr64, [ebx+evClientMessage.data + 8], [ebx+evClientMessage.data + 12], ntsDec or ntsSigned +; push eax +; stdcall FileWriteString, [STDERR], <txt 13, 10, "_NET_WM_SYNC_REQUEST counter: "> +; mov eax, [esp] +; stdcall FileWriteString, [STDERR], eax +; stdcall FileWriteString, [STDERR], <txt 13, 10> +; stdcall StrDel ; from the stack +;end if + +; store the value for later XSyncSetCounter + mov eax, [ebx+evClientMessage.data + 8] + mov edx, [ebx+evClientMessage.data + 12] + + xchg eax, [esi+TWindow.sync_valueLo] + xchg edx, [esi+TWindow.sync_valueHi] + +;if defined options.DebugMode & options.DebugMode +; test eax, eax +; jnz .err_prev +; +; test edx, edx +; jz .finish +; +;.err_prev: +; OutputValue "ERROR! Previous value not set to the counter: ", eax, 10, -1 +;end if + jmp .finish + +.unknown_client_msg: + jmp .finish + +;......................................................................... +; Focus handling events. + +.focusin: + call .hide_menu + + istype esi, TForm + jne @f + mov [__ActiveForm], esi +@@: + stdcall __SetIntFocused, esi + jmp .finish + + +.focusout: + call .hide_menu + + stdcall __SetIntFocused, 0 + + istype esi, TForm + jne .finish + + mov [__ActiveForm], 0 + jmp .finish + +.hideall: + set eax, TMenu:Visible, FALSE + +.hide_menu: + xor eax, eax + xchg eax, [__ActiveMenu] + test eax, eax + jnz .hideall + retn + + +.sel_owner_changed: + DebugMsg "SelectionOwnerChanged event!" + + cmp [ebx+evFixSelectionNotify.subtype], evFixSetSelectionOwner + jne .notprocessed + + mov eax, [ebx+evFixSelectionNotify.owner] + cmp eax, [__idClipboardWindow] + je .finish ; we already have this selection. + +locals + .conv __xConvertSelectionReq +endl + mov eax, [atomClipboard] + cmp [ebx+evFixSelectionNotify.selection], eax + jne .finish ; we are working only with Clipboard selection. + + mov ebx, [__idClipboardWindow] + mov ecx, [atomTargets] + + mov [.conv.op], opConvertSelection + mov [.conv.length], sizeof.__xConvertSelectionReq/4 + mov [.conv.requestor], ebx + mov [.conv.selection], eax + mov [.conv.target], ecx + mov [.conv.property], atomCUT_BUFFER0 ; reuse predefined atoms! + and [.conv.time], 0 + + lea eax, [.conv] + stdcall xSend, appConn, eax + + jmp .finish + + +.sel_notify_event: + DebugMsg "SelectionNotify event!" + +locals + .getprop __xGetPropertyReq +endl + + cmp [ebx+evSelectionNotify.property], 0 ; not converted. + je .empty + + mov [.getprop.op], opGetProperty + mov [.getprop.delete], TRUE + mov [.getprop.length], sizeof.__xGetPropertyReq/4 + + mov eax, [ebx+evSelectionNotify.requestor] + mov edx, [ebx+evSelectionNotify.property] + mov ecx, [ebx+evSelectionNotify.target] + mov [.getprop.window], eax + mov [.getprop.property], edx + mov [.getprop.type], 0 ; ecx + mov [.getprop.data_ofs], 0 + mov [.getprop.data_len], $7fffffff + + lea eax, [.getprop] + stdcall xSendWithCallback, appConn, eax, GetClipboardCallback, [ebx+evSelectionNotify.target] + jmp .finish + +.empty: + xor eax, eax + xchg eax, [pClipboard] + stdcall __ClipboardFree, eax + jmp .finish + +; +; For proper handling of the SelectionRequest event, carefully read the following article: +; +; [Peer-to-Peer Communication by Means of Selections] https://tronche.com/gui/x/icccm/sec-2.html +; + +.sel_req_event: + +locals + .chprop __xChangePropertyReq + .targets rd 3 + + .selntf __xSendEventReq + .selntfev evSelectionNotify +endl + + DebugMsg "SelectionRequest event!" + + OutputValue "Selection request selection: ", [ebx+evSelectionRequest.selection], 16, 8 + OutputValue " owner: ", [ebx+evSelectionRequest.owner], 16, 8 + OutputValue " requestor: ", [ebx+evSelectionRequest.requestor], 16, 8 + OutputValue " target: ", [ebx+evSelectionRequest.target], 10, -1 + OutputValue " property: ", [ebx+evSelectionRequest.property], 10, -1 + + mov eax, [ebx+evSelectionRequest.requestor] + mov edx, [ebx+evSelectionRequest.selection] + + mov [.selntf.op], opSendEvent + mov [.selntf.propagate], FALSE + mov [.selntf.length], (sizeof.__xSendEventReq + sizeof.evSelectionNotify)/4 + mov [.selntf.dest], eax + mov [.selntf.event_mask], 0 + + mov [.selntfev.event], SelectionNotify + mov [.selntfev.requestor], eax + mov [.selntfev.time], 0 + mov [.selntfev.selection], edx + + mov [.chprop.op], opChangeProperty + mov [.chprop.mode], PropModeReplace + mov [.chprop.wid], eax + + cmp edx, [atomClipboard] + jne .refuse + + mov eax, [ebx+evSelectionRequest.property] + mov ecx, [ebx+evSelectionRequest.target] + test eax, eax + cmovz eax, ecx ; obsolete clients support. + + mov [.selntfev.property], eax + mov [.selntfev.target], ecx + + mov [.chprop.prop], eax + + cmp ecx, [atomTargets] + je .send_targets + + cmp ecx, [atomStringUtf8] + je .target_ok + cmp ecx, atomSTRING + jne .refuse + +.target_ok: + mov [.chprop.type], ecx + mov [.chprop.format], 8 + + mov ebx, [pClipboard] + stdcall __ClipboardLock, ebx + + mov eax, [ebx+TClipboard.Length] + mov [.chprop.datalen], eax + + lea ecx, [eax+3] + and ecx, $fffffffc ; align to 4 bytes + + mov eax, ecx + shr eax, 2 + add eax, sizeof.__xChangePropertyReq/4 + mov [.chprop.length], ax + +; sent opChangeProperty request + + stdcall xReqStart, appConn + + lea eax, [.chprop] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + + lea eax, [ebx+TClipboard.data] + stdcall xReqSend, appConn, eax, ecx + + stdcall xReqEnd, appConn + + stdcall __ClipboardUnlock, ebx + jmp .send_event + +.refuse: + mov [.selntfev.property], 0 ; None + +; send SelectionNotify event to the requestor. +.send_event: + lea eax, [.selntf] + stdcall xSend, appConn, eax + jmp .finish + +.send_targets: + mov [.chprop.type], atomATOM + mov [.chprop.format], 32 + mov [.chprop.length], 3 + sizeof.__xChangePropertyReq/4 + mov [.chprop.datalen], 3 ; in format units. + + mov eax, [atomTargets] + mov [.targets], eax + mov [.targets+4], atomSTRING + mov eax, [atomStringUtf8] + mov [.targets+8], eax + + lea eax, [.chprop] + stdcall xSend, appConn, eax + jmp .send_event + + +;......................................................................... + +.jump_table dw 0, 0 ; event 0 + dw 0, 0 ; event 1 + dw .key_press - .base, evKeyPress.window ; KeyPress = 2 + dw .key_release - .base, evKeyRelease.window ; KeyRelease = 3 + dw .mouse_btn_press - .base, evButtonPress.window ; ButtonPress = 4 + dw .mouse_btn_release - .base, evButtonRelease.window ; ButtonRelease = 5 + dw .mousemove - .base, evMotionNotify.window ; MotionNotify = 6 + dw 0, 0 ; EnterNotify = 7 + dw .mouseleave - .base, evLeaveNotify.window ; LeaveNotify = 8 + dw .focusin - .base, evFocusIn.window ; FocusIn = 9 + dw .focusout - .base, evFocusOut.window ; FocusOut = 10 + dw 0, 0 ; KeymapNotify = 11 + dw .expose - .base, evExpose.window ; Expose = 12 + dw 0, 0 ; GraphicsExpose = 13 + dw 0, 0 ; NoExpose = 14 + dw 0, 0 ; VisibilityNotify = 15 + dw 0, 0 ; CreateNotify = 16 + dw .destroy - .base, evDestroyNotify.window ; DestroyNotify = 17 + dw 0, 0 ; UnmapNotify = 18 + dw 0, 0 ; MapNotify = 19 + dw 0, 0 ; MapRequest = 20 + dw 0, 0 ; ReparentNotify = 21 + dw .moveresize - .base, evConfigureNotify.window ; ConfigureNotify = 22 + dw 0, 0 ; ConfigureRequest = 23 + dw 0, 0 ; GravityNotify = 24 + dw 0, 0 ; ResizeRequest = 25 + dw 0, 0 ; CirculateNotify = 26 + dw 0, 0 ; CirculateRequest = 27 + dw .property_changed - .base, evPropertyChanged.window ; PropertyNotify = 28 + dw 0, 0 ; SelectionClear = 29 + dw 0, 0 ; SelectionRequest = 30 + dw 0, 0 ; SelectionNotify = 31 + dw 0, 0 ; ColormapNotify = 32 + dw .clientmessage - .base, evClientMessage.window ; ClientMessage = 33 + dw 0, 0 ; MappingNotify = 34 +endp + + + + + +proc __IndexKeymap as xCallbackProc +.size dd ? +begin + DebugMsg "Keymap callback procedure." + + mov ebx, [.pReply] + + lea esi, [ebx + sizeof.__xXkbGetMapRep] ; the start of the keymap + + mov eax, [ebx + __xXkbGetMapRep.length] + mov ecx, eax + lea eax, [4*eax + 256*4] + + mov [.size], eax + + stdcall GetMem, eax + jc .memory_error + + push eax + + lea edi, [eax + 256*4] ; the keymap in the allocated buffer. + rep movsd + + mov edi, eax ; the start of the index + lea esi, [eax + 256*4] ; the start of the copied keymap + + movzx ecx, [ebx + __xXkbGetMapRep.minKeyCode] + movzx edx, [ebx + __xXkbGetMapRep.maxKeyCode] + sub edx, ecx ; the total count of keycodes in the map - 1 + + xor eax, eax + rep stosd ; fill the first ECX index items with 0 + + mov ecx, edx + lea esi, [esi + sizeof.__xXkbGetMapRep2] ; the remaining header of the reply. we don't need it. + +.loop: + dec ecx + js .end_loop + + mov [edi], esi + add edi, 4 + + movzx eax, [esi + xkbKeysymMapItem.nSyms] + lea esi, [esi + 4*eax + sizeof.xkbKeysymMapItem] + jmp .loop + +.end_loop: + pop eax + xchg eax, [appConn.pKeymap] + stdcall FreeMem, eax + + return + +.memory_error: + int3 + return +endp + + + + +proc GetClipboardCallback as xCallbackProc + .conv __xConvertSelectionReq +begin + DebugMsg "GetClipboardCallback" + + mov edi, [.pReply] + + mov eax, [atomTargets] + cmp eax, [.lparam] + je .get_targets + + xor eax, eax + movzx edx, [edi+__xGetPropertyRep.format] + shr edx, 3 ; from bits to bytes, size of the data elements. + jz .finish + + lea eax, [edi+__xGetPropertyRep.data] + mov ecx, [edi+__xGetPropertyRep.datalen] + imul ecx, edx + + stdcall __ClipboardFromMem, eax, ecx, clipboardString + jnc .finish + + xor eax, eax + +.finish: + xchg eax, [pClipboard] + stdcall __ClipboardFree, eax + return + +.get_targets: + lea esi, [edi+__xGetPropertyRep.data] + mov ecx, [edi+__xGetPropertyRep.datalen] + xor ebx, ebx + +.loop: + dec ecx + js .end_loop + lodsd + + cmp eax, [atomStringUtf8] + cmove ebx, eax + + test ebx, ebx + jnz .loop + + cmp eax, atomSTRING + cmove ebx, eax + jmp .loop + +.end_loop: + test ebx, ebx + jnz .get_string + +; Clear the clipboard. There is no compatible target. + xor eax, eax + jmp .finish + +.get_string: + mov eax, [__idClipboardWindow] + mov ecx, [atomClipboard] + + mov [.conv.op], opConvertSelection + mov [.conv.length], sizeof.__xConvertSelectionReq/4 + mov [.conv.requestor], eax + mov [.conv.selection], ecx + mov [.conv.target], ebx + mov [.conv.property], atomCUT_BUFFER0 ; reuse predefined atoms! + and [.conv.time], 0 + + lea eax, [.conv] + stdcall xSend, appConn, eax +.exit: + return +endp + + + +proc WindowStateChanged as xCallbackProc +begin + mov esi, [.pReply] + + DebugMsg "Window state changed" + + stdcall xGetObj, appConn, [.lparam] + jc .finish + + test eax, eax + jz .finish + + mov edi, eax + + mov ecx, [esi+__xGetPropertyRep.datalen] + xor ebx, ebx ; the new window state + +.loop: + dec ecx + js .endloop + + mov eax, [esi+__xGetPropertyRep.data+4*ecx] + cmp eax, [atomStateMaximizedVert] + jne .not_vert + or ebx, wstMaximizedVert + jmp .loop + +.not_vert: + cmp eax, [atomStateMaximizedHorz] + jne .not_horz + or ebx, wstMaximizedHorz + jmp .loop + +.not_horz: + cmp eax, [atomStateHidden] + jne .loop + or ebx, wstMinimized + jmp .loop + +.endloop: + mov [edi+TWindow._window_state], ebx + +.finish: + return +endp + ADDED freshlib/gui/Linux/__encodings/BuildKeysymTable.fpr Index: freshlib/gui/Linux/__encodings/BuildKeysymTable.fpr ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/BuildKeysymTable.fpr cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/build.asm Index: freshlib/gui/Linux/__encodings/build.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/build.asm @@ -0,0 +1,309 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console + +options.DebugMode = 0 + +include "%lib%/freshlib.asm" + +options.DebugMode = 1 + +; include your includes here. + +start: + InitializeAll + + mov ecx, 65536/2 + mov edi, Table + xor eax, eax + + mov [TableLen], eax + rep stosd + + mov [MaxKeycode], eax + dec eax + mov [MinKeycode], eax + + stdcall GetCmdArguments + jc .error_arg + + mov edi, eax + +.check_params: + cmp [edi+TArray.count], 2 + jb .error_arg + + stdcall FileOpen, [edi+TArray.array+4] ; "keysyms_encoding.txt" + jc .file_not_found + + mov [hSourceFile], eax + +.line_loop: + stdcall FileReadLine, [hSourceFile] + jc .error_read + + test eax, eax + jz .end_of_file + + stdcall ProcessOneLine, eax + stdcall StrDel, eax + + jmp .line_loop + + +.end_of_file: + stdcall FileClose, ebx + + cmp [edi+TArray.count], 3 + jb .default_file + + mov eax, [edi+TArray.array+8] + jmp .save + +.default_file: + mov eax, cDefaultOutput + +.save: + stdcall SaveSimpleTable, eax + +; mov ecx, [TableLen] +; inc ecx +; shl ecx, 1 +; OutputValue "Table length: ", ecx, 10, -1 +; OutputMemoryByte Table, ecx +; +; stdcall SaveBinaryFile, eax, Table, ecx + stdcall ListFree, edi, StrDel + jmp .finish + +cDefaultOutput text 'table.bin' + + +.error_read: + stdcall FileWriteString, [STDERR], <'Source file read error.', 13, 10> + jmp .end_of_file + + +.file_not_found: + stdcall FileWriteString, [STDERR], <'Source file not found.', 13, 10> + jmp .finish + +.error_arg: + stdcall FileWriteString, [STDERR], <'Use: build.exe SOURCE DESTINATION', 13, 10> + + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + + +proc ProcessOneLine, .hString +begin + pushad + + mov eax, [.hString] + stdcall StrClipSpacesR, eax + stdcall StrClipSpacesL, eax + stdcall StrCleanDupSpaces, eax + stdcall StrLCase, eax + +; push eax +; stdcall FileWriteString, [STDOUT], [.hString] +; stdcall FileWriteString, [STDOUT], cCRLF +; pop eax + + stdcall StrPtr, eax + mov esi, eax + + cmp byte [esi], '#' + je .finish ; comment line + + mov edi, esi + +.loop1: + lodsb + cmp al, ' ' + ja .loop1 + + test al, al + jz .finish ; the string is invalid, skip it. + + dec esi + + mov eax, esi + sub eax, edi + stdcall StrExtract, edi, 0, eax + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + jc .finish ; invalid number + + mov ebx, eax ; remember for now. + +; OutputValue "Keysym: ", ebx, 16, 8 + +.loop2: + lodsb + test al, al + jz .finish ; there is no second number + cmp al, ' ' + jbe .loop2 + + dec esi + mov edi, esi + +.loop3: + lodsb + cmp al, ' ' + ja .loop3 + + dec esi + mov eax, esi + sub eax, edi + stdcall StrExtract, edi, 0, eax + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + jc .finish ; invalid second number - undefined character. + +; OutputValue "Unicode: ", eax, 16, 8 + + cmp eax, $ffff + ja .finish ; too big unicode letter. Should be fixed maybe, but the tables are 16 bit. + +; stdcall AddToHashTable, ebx, eax, 7 + stdcall AddToSimpleTable, ebx, eax + +.finish: + popad + return +endp + + + +proc AddToSimpleTable, .keysym, .unicode +begin + pushad + + movzx eax, byte [.keysym] + movzx edx, word [.unicode] + + mov word [Table+2*eax], dx + + mov ebx, [MinKeycode] + mov ecx, [MaxKeycode] + + cmp ebx, eax + cmova ebx, eax + cmp ecx, eax + cmovb ecx, eax + + mov [MinKeycode], ebx + mov [MaxKeycode], ecx + + popad + return +endp + + +proc SaveSimpleTable, .hFilename +begin + pushad + + mov ebx, [MinKeycode] + mov ecx, [MaxKeycode] + sub ecx, ebx + + lea edi, [Table+2*ebx-2] + mov [edi], bl + mov [edi+1], cl + +; sub ecx, ebx + add ecx, 2 + add ecx, ecx + + OutputValue "Table length: ", ecx, 10, -1 + OutputMemoryByte edi, ecx + + stdcall SaveBinaryFile, [.hFilename], edi, ecx + + popad + return +endp + + + +proc AddToHashTable, .keysym, .unicode, .bits +begin + pushad + + xor ebx, ebx + mov ecx, [.bits] + +.loop: + dec ecx + js .end_loop + + xor eax, eax + bt [.keysym], ecx + adc eax, eax + + movzx edx, byte [Table+2*ebx+eax] + test edx, edx + jnz .offset_ok + + inc [TableLen] + mov edx, [TableLen] + sub edx, ebx + mov byte [Table+2*ebx+eax], dl + + test dh, dh + jz .offset_ok + + OutputValue "Keysym: ", [.keysym], 16, 8 + OutputValue "Bit:", ecx, 10, -1 + OutputValue "Offset: ", edx, 10, -1 + +.offset_ok: + add ebx, edx + jmp .loop + +.end_loop: + mov eax, [.unicode] + mov word [Table+2*ebx], ax + + popad + return +endp + + + + + + + + +uglobal + hSourceFile dd ? + TableLen dd ? + MinKeycode dd ? + MaxKeycode dd ? + + Table rw 65536 +endg + ADDED freshlib/gui/Linux/__encodings/build.sh Index: freshlib/gui/Linux/__encodings/build.sh ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/build.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +./build ./keysyms1.txt ./keysyms1.tbl +./build ./keysyms2.txt ./keysyms2.tbl +./build ./keysyms3.txt ./keysyms3.tbl +./build ./keysyms4.txt ./keysyms4.tbl +./build ./keysyms5.txt ./keysyms5.tbl +./build ./keysyms6.txt ./keysyms6.tbl +./build ./keysyms7.txt ./keysyms7.tbl +./build ./keysyms10.txt ./keysyms10.tbl +./build ./keysyms12.txt ./keysyms12.tbl +./build ./keysyms13.txt ./keysyms13.tbl ADDED freshlib/gui/Linux/__encodings/keysyms1.tbl Index: freshlib/gui/Linux/__encodings/keysyms1.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms1.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms1.txt Index: freshlib/gui/Linux/__encodings/keysyms1.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms1.txt @@ -0,0 +1,57 @@ +0x01A1 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK +0x01A2 0x02D8 #BREVE +0x01A3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0x01A5 0x013D #LATIN CAPITAL LETTER L WITH CARON +0x01A6 0x015A #LATIN CAPITAL LETTER S WITH ACUTE +0x01A9 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0x01AA 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA +0x01AB 0x0164 #LATIN CAPITAL LETTER T WITH CARON +0x01AC 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE +0x01AE 0x017D #LATIN CAPITAL LETTER Z WITH CARON +0x01AF 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE +0x01B1 0x0105 #LATIN SMALL LETTER A WITH OGONEK +0x01B2 0x02DB #OGONEK +0x01B3 0x0142 #LATIN SMALL LETTER L WITH STROKE +0x01B5 0x013E #LATIN SMALL LETTER L WITH CARON +0x01B6 0x015B #LATIN SMALL LETTER S WITH ACUTE +0x01B7 0x02C7 #CARON +0x01B9 0x0161 #LATIN SMALL LETTER S WITH CARON +0x01BA 0x015F #LATIN SMALL LETTER S WITH CEDILLA +0x01BB 0x0165 #LATIN SMALL LETTER T WITH CARON +0x01BC 0x017A #LATIN SMALL LETTER Z WITH ACUTE +0x01BD 0x02DD #DOUBLE ACUTE ACCENT +0x01BE 0x017E #LATIN SMALL LETTER Z WITH CARON +0x01BF 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE +0x01C0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE +0x01C3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE +0x01C5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE +0x01C6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE +0x01C8 0x010C #LATIN CAPITAL LETTER C WITH CARON +0x01CA 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK +0x01CC 0x011A #LATIN CAPITAL LETTER E WITH CARON +0x01CF 0x010E #LATIN CAPITAL LETTER D WITH CARON +0x01D0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE +0x01D1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE +0x01D2 0x0147 #LATIN CAPITAL LETTER N WITH CARON +0x01D5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0x01D8 0x0158 #LATIN CAPITAL LETTER R WITH CARON +0x01D9 0x016E #LATIN CAPITAL LETTER U WITH RING ABOVE +0x01DB 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0x01DE 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA +0x01E0 0x0155 #LATIN SMALL LETTER R WITH ACUTE +0x01E3 0x0103 #LATIN SMALL LETTER A WITH BREVE +0x01E5 0x013A #LATIN SMALL LETTER L WITH ACUTE +0x01E6 0x0107 #LATIN SMALL LETTER C WITH ACUTE +0x01E8 0x010D #LATIN SMALL LETTER C WITH CARON +0x01EA 0x0119 #LATIN SMALL LETTER E WITH OGONEK +0x01EC 0x011B #LATIN SMALL LETTER E WITH CARON +0x01EF 0x010F #LATIN SMALL LETTER D WITH CARON +0x01F0 0x0111 #LATIN SMALL LETTER D WITH STROKE +0x01F1 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0x01F2 0x0148 #LATIN SMALL LETTER N WITH CARON +0x01F5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE +0x01F8 0x0159 #LATIN SMALL LETTER R WITH CARON +0x01F9 0x016F #LATIN SMALL LETTER U WITH RING ABOVE +0x01FB 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE +0x01FE 0x0163 #LATIN SMALL LETTER T WITH CEDILLA +0x01FF 0x02D9 #DOT ABOVE ADDED freshlib/gui/Linux/__encodings/keysyms10.tbl Index: freshlib/gui/Linux/__encodings/keysyms10.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms10.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms10.txt Index: freshlib/gui/Linux/__encodings/keysyms10.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms10.txt @@ -0,0 +1,58 @@ +0x0AA1 0x2003 #EM SPACE Publish +0x0AA2 0x2002 #EN SPACE Publish +0x0AA3 0x2004 #3/EM SPACE Publish +0x0AA4 0x2005 #4/EM SPACE Publish +0x0AA5 0x2007 #DIGIT SPACE Publish +0x0AA6 0x2008 #PUNCTUATION SPACE Publish +0x0AA7 0x2009 #THIN SPACE Publish +0x0AA8 0x200A #HAIR SPACE Publish +0x0AA9 0x2014 #EM DASH Publish +0x0AAA 0x2013 #EN DASH Publish +0x0AAC 0x2423 #SIGNIFICANT BLANK SYMBOL Publish +0x0AAE 0x2026 #ELLIPSIS Publish +0x0AAF 0x2025 #DOUBLE BASELINE DOT Publish +0x0AB0 0x2153 #VULGAR FRACTION ONE THIRD Publish +0x0AB1 0x2154 #VULGAR FRACTION TWO THIRDS Publish +0x0AB2 0x2155 #VULGAR FRACTION ONE FIFTH Publish +0x0AB3 0x2156 #VULGAR FRACTION TWO FIFTHS Publish +0x0AB4 0x2157 #VULGAR FRACTION THREE FIFTHS Publish +0x0AB5 0x2158 #VULGAR FRACTION FOUR FIFTHS Publish +0x0AB6 0x2159 #VULGAR FRACTION ONE SIXTH Publish +0x0AB7 0x215A #VULGAR FRACTION FIVE SIXTHS Publish +0x0AB8 0x2105 #CARE OF Publish +0x0ABB 0x2012 #FIGURE DASH Publish +0x0ABC 0x3008 #LEFT ANGLE BRACKET Publish +0x0ABD 0x002e #DECIMAL POINT Publish +0x0ABE 0x3009 #RIGHT ANGLE BRACKET Publish +0x0AC3 0x215B #VULGAR FRACTION ONE EIGHTH Publish +0x0AC4 0x215C #VULGAR FRACTION THREE EIGHTHS Publish +0x0AC5 0x215D #VULGAR FRACTION FIVE EIGHTHS Publish +0x0AC6 0x215E #VULGAR FRACTION SEVEN EIGHTHS Publish +0x0AC9 0x2122 #TRADEMARK SIGN Publish +0x0AD0 0x2018 #LEFT SINGLE QUOTATION MARK Publish +0x0AD1 0x2019 #RIGHT SINGLE QUOTATION MARK Publish +0x0AD2 0x201C #LEFT DOUBLE QUOTATION MARK Publish +0x0AD3 0x201D #RIGHT DOUBLE QUOTATION MARK Publish +0x0AD4 0x211E #PRESCRIPTION, TAKE, RECIPE Publish +0x0AD5 0x2030 #PER MILLE SIGN Publish +0x0AD6 0x2032 #MINUTES Publish +0x0AD7 0x2033 #SECONDS Publish +0x0AD9 0x271D #LATIN CROSS Publish +0x0AEC 0x2663 #CLUB Publish +0x0AED 0x2666 #DIAMOND Publish +0x0AEE 0x2665 #HEART Publish +0x0AF0 0x2720 #MALTESE CROSS Publish +0x0AF1 0x2020 #DAGGER Publish +0x0AF2 0x2021 #DOUBLE DAGGER Publish +0x0AF3 0x2713 #CHECK MARK, TICK Publish +0x0AF4 0x2717 #BALLOT CROSS Publish +0x0AF5 0x266F #MUSICAL SHARP Publish +0x0AF6 0x266D #MUSICAL FLAT Publish +0x0AF7 0x2642 #MALE SYMBOL Publish +0x0AF8 0x2640 #FEMALE SYMBOL Publish +0x0AF9 0x260E #TELEPHONE SYMBOL Publish +0x0AFA 0x2315 #TELEPHONE RECORDER SYMBOL Publish +0x0AFB 0x2117 #PHONOGRAPH COPYRIGHT SIGN Publish +0x0AFC 0x2038 #CARET Publish +0x0AFD 0x201A #SINGLE LOW QUOTATION MARK Publish +0x0AFE 0x201E #DOUBLE LOW QUOTATION MARK Publish ADDED freshlib/gui/Linux/__encodings/keysyms12.tbl Index: freshlib/gui/Linux/__encodings/keysyms12.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms12.tbl @@ -0,0 +1,1 @@ +  ADDED freshlib/gui/Linux/__encodings/keysyms12.txt Index: freshlib/gui/Linux/__encodings/keysyms12.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms12.txt @@ -0,0 +1,28 @@ +0x0CDF 0x2017 #DOUBLE LOW LINE +0x0CE0 0x05D0 #HEBREW LETTER ALEF +0x0CE1 0x05D1 #HEBREW LETTER BET +0x0CE2 0x05D2 #HEBREW LETTER GIMEL +0x0CE3 0x05D3 #HEBREW LETTER DALET +0x0CE4 0x05D4 #HEBREW LETTER HE +0x0CE5 0x05D5 #HEBREW LETTER VAV +0x0CE6 0x05D6 #HEBREW LETTER ZAYIN +0x0CE7 0x05D7 #HEBREW LETTER HET +0x0CE8 0x05D8 #HEBREW LETTER TET +0x0CE9 0x05D9 #HEBREW LETTER YOD +0x0CEA 0x05DA #HEBREW LETTER FINAL KAF +0x0CEB 0x05DB #HEBREW LETTER KAF +0x0CEC 0x05DC #HEBREW LETTER LAMED +0x0CED 0x05DD #HEBREW LETTER FINAL MEM +0x0CEE 0x05DE #HEBREW LETTER MEM +0x0CEF 0x05DF #HEBREW LETTER FINAL NUN +0x0CF0 0x05E0 #HEBREW LETTER NUN +0x0CF1 0x05E1 #HEBREW LETTER SAMEKH +0x0CF2 0x05E2 #HEBREW LETTER AYIN +0x0CF3 0x05E3 #HEBREW LETTER FINAL PE +0x0CF4 0x05E4 #HEBREW LETTER PE +0x0CF5 0x05E5 #HEBREW LETTER FINAL TSADI +0x0CF6 0x05E6 #HEBREW LETTER TSADI +0x0CF7 0x05E7 #HEBREW LETTER QOF +0x0CF8 0x05E8 #HEBREW LETTER RESH +0x0CF9 0x05E9 #HEBREW LETTER SHIN +0x0CFA 0x05EA #HEBREW LETTER TAV ADDED freshlib/gui/Linux/__encodings/keysyms13.tbl Index: freshlib/gui/Linux/__encodings/keysyms13.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms13.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms13.txt Index: freshlib/gui/Linux/__encodings/keysyms13.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms13.txt @@ -0,0 +1,83 @@ +0x0DA1 0x0E01 #THAI CHARACTER KO KAI +0x0DA2 0x0E02 #THAI CHARACTER KHO KHAI +0x0DA3 0x0E03 #THAI CHARACTER KHO KHUAT +0x0DA4 0x0E04 #THAI CHARACTER KHO KHWAI +0x0DA5 0x0E05 #THAI CHARACTER KHO KHON +0x0DA6 0x0E06 #THAI CHARACTER KHO RAKHANG +0x0DA7 0x0E07 #THAI CHARACTER NGO NGU +0x0DA8 0x0E08 #THAI CHARACTER CHO CHAN +0x0DA9 0x0E09 #THAI CHARACTER CHO CHING +0x0DAA 0x0E0A #THAI CHARACTER CHO CHANG +0x0DAB 0x0E0B #THAI CHARACTER SO SO +0x0DAC 0x0E0C #THAI CHARACTER CHO CHOE +0x0DAD 0x0E0D #THAI CHARACTER YO YING +0x0DAE 0x0E0E #THAI CHARACTER DO CHADA +0x0DAF 0x0E0F #THAI CHARACTER TO PATAK +0x0DB0 0x0E10 #THAI CHARACTER THO THAN +0x0DB1 0x0E11 #THAI CHARACTER THO NANGMONTHO +0x0DB2 0x0E12 #THAI CHARACTER THO PHUTHAO +0x0DB3 0x0E13 #THAI CHARACTER NO NEN +0x0DB4 0x0E14 #THAI CHARACTER DO DEK +0x0DB5 0x0E15 #THAI CHARACTER TO TAO +0x0DB6 0x0E16 #THAI CHARACTER THO THUNG +0x0DB7 0x0E17 #THAI CHARACTER THO THAHAN +0x0DB8 0x0E18 #THAI CHARACTER THO THONG +0x0DB9 0x0E19 #THAI CHARACTER NO NU +0x0DBA 0x0E1A #THAI CHARACTER BO BAIMAI +0x0DBB 0x0E1B #THAI CHARACTER PO PLA +0x0DBC 0x0E1C #THAI CHARACTER PHO PHUNG +0x0DBD 0x0E1D #THAI CHARACTER FO FA +0x0DBE 0x0E1E #THAI CHARACTER PHO PHAN +0x0DBF 0x0E1F #THAI CHARACTER FO FAN +0x0DC0 0x0E20 #THAI CHARACTER PHO SAMPHAO +0x0DC1 0x0E21 #THAI CHARACTER MO MA +0x0DC2 0x0E22 #THAI CHARACTER YO YAK +0x0DC3 0x0E23 #THAI CHARACTER RO RUA +0x0DC4 0x0E24 #THAI CHARACTER RU +0x0DC5 0x0E25 #THAI CHARACTER LO LING +0x0DC6 0x0E26 #THAI CHARACTER LU +0x0DC7 0x0E27 #THAI CHARACTER WO WAEN +0x0DC8 0x0E28 #THAI CHARACTER SO SALA +0x0DC9 0x0E29 #THAI CHARACTER SO RUSI +0x0DCA 0x0E2A #THAI CHARACTER SO SUA +0x0DCB 0x0E2B #THAI CHARACTER HO HIP +0x0DCC 0x0E2C #THAI CHARACTER LO CHULA +0x0DCD 0x0E2D #THAI CHARACTER O ANG +0x0DCE 0x0E2E #THAI CHARACTER HO NOKHUK +0x0DCF 0x0E2F #THAI CHARACTER PAIYANNOI +0x0DD0 0x0E30 #THAI CHARACTER SARA A +0x0DD1 0x0E31 #THAI CHARACTER MAI HAN-AKAT +0x0DD2 0x0E32 #THAI CHARACTER SARA AA +0x0DD3 0x0E33 #THAI CHARACTER SARA AM +0x0DD4 0x0E34 #THAI CHARACTER SARA I +0x0DD5 0x0E35 #THAI CHARACTER SARA II +0x0DD6 0x0E36 #THAI CHARACTER SARA UE +0x0DD7 0x0E37 #THAI CHARACTER SARA UEE +0x0DD8 0x0E38 #THAI CHARACTER SARA U +0x0DD9 0x0E39 #THAI CHARACTER SARA UU +0x0DDA 0x0E3A #THAI CHARACTER PHINTHU +0x0DDF 0x0E3F #THAI CURRENCY SYMBOL BAHT +0x0DE0 0x0E40 #THAI CHARACTER SARA E +0x0DE1 0x0E41 #THAI CHARACTER SARA AE +0x0DE2 0x0E42 #THAI CHARACTER SARA O +0x0DE3 0x0E43 #THAI CHARACTER SARA AI MAIMUAN +0x0DE4 0x0E44 #THAI CHARACTER SARA AI MAIMALAI +0x0DE5 0x0E45 #THAI CHARACTER LAKKHANGYAO +0x0DE6 0x0E46 #THAI CHARACTER MAIYAMOK +0x0DE7 0x0E47 #THAI CHARACTER MAITAIKHU +0x0DE8 0x0E48 #THAI CHARACTER MAI EK +0x0DE9 0x0E49 #THAI CHARACTER MAI THO +0x0DEA 0x0E4A #THAI CHARACTER MAI TRI +0x0DEB 0x0E4B #THAI CHARACTER MAI CHATTAWA +0x0DEC 0x0E4C #THAI CHARACTER THANTHAKHAT +0x0DED 0x0E4D #THAI CHARACTER NIKHAHIT +0x0DF0 0x0E50 #THAI DIGIT ZERO +0x0DF1 0x0E51 #THAI DIGIT ONE +0x0DF2 0x0E52 #THAI DIGIT TWO +0x0DF3 0x0E53 #THAI DIGIT THREE +0x0DF4 0x0E54 #THAI DIGIT FOUR +0x0DF5 0x0E55 #THAI DIGIT FIVE +0x0DF6 0x0E56 #THAI DIGIT SIX +0x0DF7 0x0E57 #THAI DIGIT SEVEN +0x0DF8 0x0E58 #THAI DIGIT EIGHT +0x0DF9 0x0E59 #THAI DIGIT NINE ADDED freshlib/gui/Linux/__encodings/keysyms2.tbl Index: freshlib/gui/Linux/__encodings/keysyms2.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms2.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms2.txt Index: freshlib/gui/Linux/__encodings/keysyms2.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms2.txt @@ -0,0 +1,22 @@ +0x02A1 0x0126 #LATIN CAPITAL LETTER H WITH STROKE +0x02A6 0x0124 #LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0x02A9 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE +0x02AB 0x011E #LATIN CAPITAL LETTER G WITH BREVE +0x02AC 0x0134 #LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0x02B1 0x0127 #LATIN SMALL LETTER H WITH STROKE +0x02B6 0x0125 #LATIN SMALL LETTER H WITH CIRCUMFLEX +0x02B9 0x0131 #LATIN SMALL LETTER DOTLESS I +0x02BB 0x011F #LATIN SMALL LETTER G WITH BREVE +0x02BC 0x0135 #LATIN SMALL LETTER J WITH CIRCUMFLEX +0x02C5 0x010A #LATIN CAPITAL LETTER C WITH DOT ABOVE +0x02C6 0x0108 #LATIN CAPITAL LETTER C WITH CIRCUMFLEX +0x02D5 0x0120 #LATIN CAPITAL LETTER G WITH DOT ABOVE +0x02D8 0x011C #LATIN CAPITAL LETTER G WITH CIRCUMFLEX +0x02DD 0x016C #LATIN CAPITAL LETTER U WITH BREVE +0x02DE 0x015C #LATIN CAPITAL LETTER S WITH CIRCUMFLEX +0x02E5 0x010B #LATIN SMALL LETTER C WITH DOT ABOVE +0x02E6 0x0109 #LATIN SMALL LETTER C WITH CIRCUMFLEX +0x02F5 0x0121 #LATIN SMALL LETTER G WITH DOT ABOVE +0x02F8 0x011D #LATIN SMALL LETTER G WITH CIRCUMFLEX +0x02FD 0x016D #LATIN SMALL LETTER U WITH BREVE +0x02FE 0x015D #LATIN SMALL LETTER S WITH CIRCUMFLEX ADDED freshlib/gui/Linux/__encodings/keysyms3.tbl Index: freshlib/gui/Linux/__encodings/keysyms3.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms3.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms3.txt Index: freshlib/gui/Linux/__encodings/keysyms3.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms3.txt @@ -0,0 +1,35 @@ +0x03A2 0x0138 #LATIN SMALL LETTER KRA +0x03A3 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA +0x03A5 0x0128 #LATIN CAPITAL LETTER I WITH TILDE +0x03A6 0x013B #LATIN CAPITAL LETTER L WITH CEDILLA +0x03AA 0x0112 #LATIN CAPITAL LETTER E WITH MACRON +0x03AB 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA +0x03AC 0x0166 #LATIN CAPITAL LETTER T WITH STROKE +0x03B3 0x0157 #LATIN SMALL LETTER R WITH CEDILLA +0x03B5 0x0129 #LATIN SMALL LETTER I WITH TILDE +0x03B6 0x013C #LATIN SMALL LETTER L WITH CEDILLA +0x03BA 0x0113 #LATIN SMALL LETTER E WITH MACRON +0x03BB 0x0123 #LATIN SMALL LETTER G WITH CEDILLA +0x03BC 0x0167 #LATIN SMALL LETTER T WITH STROKE +0x03BD 0x014A #LATIN CAPITAL LETTER ENG +0x03BF 0x014B #LATIN SMALL LETTER ENG +0x03C0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON +0x03C7 0x012E #LATIN CAPITAL LETTER I WITH OGONEK +0x03CC 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE +0x03CF 0x012A #LATIN CAPITAL LETTER I WITH MACRON +0x03D1 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA +0x03D2 0x014C #LATIN CAPITAL LETTER O WITH MACRON +0x03D3 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA +0x03D9 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK +0x03DD 0x0168 #LATIN CAPITAL LETTER U WITH TILDE +0x03DE 0x016A #LATIN CAPITAL LETTER U WITH MACRON +0x03E0 0x0101 #LATIN SMALL LETTER A WITH MACRON +0x03E7 0x012F #LATIN SMALL LETTER I WITH OGONEK +0x03EC 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE +0x03EF 0x012B #LATIN SMALL LETTER I WITH MACRON +0x03F1 0x0146 #LATIN SMALL LETTER N WITH CEDILLA +0x03F2 0x014D #LATIN SMALL LETTER O WITH MACRON +0x03F3 0x0137 #LATIN SMALL LETTER K WITH CEDILLA +0x03F9 0x0173 #LATIN SMALL LETTER U WITH OGONEK +0x03FD 0x0169 #LATIN SMALL LETTER U WITH TILDE +0x03FE 0x016B #LATIN SMALL LETTER U WITH MACRON ADDED freshlib/gui/Linux/__encodings/keysyms4.tbl Index: freshlib/gui/Linux/__encodings/keysyms4.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms4.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms4.txt Index: freshlib/gui/Linux/__encodings/keysyms4.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms4.txt @@ -0,0 +1,65 @@ +0x047E 0x203E #OVERLINE +0x04A1 0x3002 #KANA FULL STOP +0x04A2 0x300C #KANA OPENING BRACKET +0x04A3 0x300D #KANA CLOSING BRACKET +0x04A4 0x3001 #KANA COMMA +0x04A5 0x30FB #KANA CONJUNCTIVE +0x04A6 0x30F2 #KANA LETTER WO +0x04A7 0x30A1 #KANA LETTER SMALL A +0x04A8 0x30A3 #KANA LETTER SMALL I +0x04A9 0x30A5 #KANA LETTER SMALL U +0x04AA 0x30A7 #KANA LETTER SMALL E +0x04AB 0x30A9 #KANA LETTER SMALL O +0x04AC 0x30E3 #KANA LETTER SMALL YA +0x04AD 0x30E5 #KANA LETTER SMALL YU +0x04AE 0x30E7 #KANA LETTER SMALL YO +0x04AF 0x30C3 #KANA LETTER SMALL TSU +0x04B0 0x30FC #PROLONGED SOUND SYMBOL +0x04B1 0x30A2 #KANA LETTER A +0x04B2 0x30A4 #KANA LETTER I +0x04B3 0x30A6 #KANA LETTER U +0x04B4 0x30A8 #KANA LETTER E +0x04B5 0x30AA #KANA LETTER O +0x04B6 0x30AB #KANA LETTER KA +0x04B7 0x30AD #KANA LETTER KI +0x04B8 0x30AF #KANA LETTER KU +0x04B9 0x30B1 #KANA LETTER KE +0x04BA 0x30B3 #KANA LETTER KO +0x04BB 0x30B5 #KANA LETTER SA +0x04BC 0x30B7 #KANA LETTER SHI +0x04BD 0x30B9 #KANA LETTER SU +0x04BE 0x30BB #KANA LETTER SE +0x04BF 0x30BD #KANA LETTER SO +0x04C0 0x30BF #KANA LETTER TA +0x04C1 0x30C1 #KANA LETTER CHI +0x04C2 0x30C4 #KANA LETTER TSU +0x04C3 0x30C6 #KANA LETTER TE +0x04C4 0x30C8 #KANA LETTER TO +0x04C5 0x30CA #KANA LETTER NA +0x04C6 0x30CB #KANA LETTER NI +0x04C7 0x30CC #KANA LETTER NU +0x04C8 0x30CD #KANA LETTER NE +0x04C9 0x30CE #KANA LETTER NO +0x04CA 0x30CF #KANA LETTER HA +0x04CB 0x30D2 #KANA LETTER HI +0x04CC 0x30D5 #KANA LETTER FU +0x04CD 0x30D8 #KANA LETTER HE +0x04CE 0x30DB #KANA LETTER HO +0x04CF 0x30DE #KANA LETTER MA +0x04D0 0x30DF #KANA LETTER MI +0x04D1 0x30E0 #KANA LETTER MU +0x04D2 0x30E1 #KANA LETTER ME +0x04D3 0x30E2 #KANA LETTER MO +0x04D4 0x30E4 #KANA LETTER YA +0x04D5 0x30E6 #KANA LETTER YU +0x04D6 0x30E8 #KANA LETTER YO +0x04D7 0x30E9 #KANA LETTER RA +0x04D8 0x30EA #KANA LETTER RI +0x04D9 0x30EB #KANA LETTER RU +0x04DA 0x30EC #KANA LETTER RE +0x04DB 0x30ED #KANA LETTER RO +0x04DC 0x30EF #KANA LETTER WA +0x04DD 0x30F3 #KANA LETTER N +0x04DE 0x309B #VOICED SOUND SYMBOL +0x04DF 0x309C #SEMIVOICED SOUND SYMBOL + ADDED freshlib/gui/Linux/__encodings/keysyms5.tbl Index: freshlib/gui/Linux/__encodings/keysyms5.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms5.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms5.txt Index: freshlib/gui/Linux/__encodings/keysyms5.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms5.txt @@ -0,0 +1,49 @@ +0x05AC 0x060C #ARABIC COMMA +0x05BB 0x061B #ARABIC SEMICOLON +0x05BF 0x061F #ARABIC QUESTION MARK +0x05C1 0x0621 #ARABIC LETTER HAMZA +0x05C2 0x0622 #ARABIC LETTER ALEF WITH MADDA ABOVE +0x05C3 0x0623 #ARABIC LETTER ALEF WITH HAMZA ABOVE +0x05C4 0x0624 #ARABIC LETTER WAW WITH HAMZA ABOVE +0x05C5 0x0625 #ARABIC LETTER ALEF WITH HAMZA BELOW +0x05C6 0x0626 #ARABIC LETTER YEH WITH HAMZA ABOVE +0x05C7 0x0627 #ARABIC LETTER ALEF +0x05C8 0x0628 #ARABIC LETTER BEH +0x05C9 0x0629 #ARABIC LETTER TEH MARBUTA +0x05CA 0x062A #ARABIC LETTER TEH +0x05CB 0x062B #ARABIC LETTER THEH +0x05CC 0x062C #ARABIC LETTER JEEM +0x05CD 0x062D #ARABIC LETTER HAH +0x05CE 0x062E #ARABIC LETTER KHAH +0x05CF 0x062F #ARABIC LETTER DAL +0x05D0 0x0630 #ARABIC LETTER THAL +0x05D1 0x0631 #ARABIC LETTER REH +0x05D2 0x0632 #ARABIC LETTER ZAIN +0x05D3 0x0633 #ARABIC LETTER SEEN +0x05D4 0x0634 #ARABIC LETTER SHEEN +0x05D5 0x0635 #ARABIC LETTER SAD +0x05D6 0x0636 #ARABIC LETTER DAD +0x05D7 0x0637 #ARABIC LETTER TAH +0x05D8 0x0638 #ARABIC LETTER ZAH +0x05D9 0x0639 #ARABIC LETTER AIN +0x05DA 0x063A #ARABIC LETTER GHAIN +0x05E0 0x0640 #ARABIC TATWEEL +0x05E1 0x0641 #ARABIC LETTER FEH +0x05E2 0x0642 #ARABIC LETTER QAF +0x05E3 0x0643 #ARABIC LETTER KAF +0x05E4 0x0644 #ARABIC LETTER LAM +0x05E5 0x0645 #ARABIC LETTER MEEM +0x05E6 0x0646 #ARABIC LETTER NOON +0x05E7 0x0647 #ARABIC LETTER HEH +0x05E8 0x0648 #ARABIC LETTER WAW +0x05E9 0x0649 #ARABIC LETTER ALEF MAKSURA +0x05EA 0x064A #ARABIC LETTER YEH +0x05EB 0x064B #ARABIC FATHATAN +0x05EC 0x064C #ARABIC DAMMATAN +0x05ED 0x064D #ARABIC KASRATAN +0x05EE 0x064E #ARABIC FATHA +0x05EF 0x064F #ARABIC DAMMA +0x05F0 0x0650 #ARABIC KASRA +0x05F1 0x0651 #ARABIC SHADDA +0x05F2 0x0652 #ARABIC SUKUN + ADDED freshlib/gui/Linux/__encodings/keysyms6.tbl Index: freshlib/gui/Linux/__encodings/keysyms6.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms6.tbl @@ -0,0 +1,2 @@ +^RSQTUVWXYZ[\^_!  +  N01F45D3E89:;<=>?O@ABC62LK7HMIGJ.&$%/ !"#,+(-)'* ADDED freshlib/gui/Linux/__encodings/keysyms6.txt Index: freshlib/gui/Linux/__encodings/keysyms6.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms6.txt @@ -0,0 +1,96 @@ +0x06A1 0x0452 #CYRILLIC SMALL LETTER DJE +0x06A2 0x0453 #CYRILLIC SMALL LETTER GJE +0x06A3 0x0451 #CYRILLIC SMALL LETTER IO +0x06A4 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE +0x06A5 0x0455 #CYRILLIC SMALL LETTER DZE +0x06A6 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0x06A7 0x0457 #CYRILLIC SMALL LETTER YI +0x06A8 0x0458 #CYRILLIC SMALL LETTER JE +0x06A9 0x0459 #CYRILLIC SMALL LETTER LJE +0x06AA 0x045A #CYRILLIC SMALL LETTER NJE +0x06AB 0x045B #CYRILLIC SMALL LETTER TSHE +0x06AC 0x045C #CYRILLIC SMALL LETTER KJE +0x06AD 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN +0x06AE 0x045E #CYRILLIC SMALL LETTER SHORT U +0x06AF 0x045F #CYRILLIC SMALL LETTER DZHE +0x06B0 0x2116 #NUMERO SIGN +0x06B1 0x0402 #CYRILLIC CAPITAL LETTER DJE +0x06B2 0x0403 #CYRILLIC CAPITAL LETTER GJE +0x06B3 0x0401 #CYRILLIC CAPITAL LETTER IO +0x06B4 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE +0x06B5 0x0405 #CYRILLIC CAPITAL LETTER DZE +0x06B6 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0x06B7 0x0407 #CYRILLIC CAPITAL LETTER YI +0x06B8 0x0408 #CYRILLIC CAPITAL LETTER JE +0x06B9 0x0409 #CYRILLIC CAPITAL LETTER LJE +0x06BA 0x040A #CYRILLIC CAPITAL LETTER NJE +0x06BB 0x040B #CYRILLIC CAPITAL LETTER TSHE +0x06BC 0x040C #CYRILLIC CAPITAL LETTER KJE +0x06BD 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0x06BE 0x040E #CYRILLIC CAPITAL LETTER SHORT U +0x06BF 0x040F #CYRILLIC CAPITAL LETTER DZHE +0x06C0 0x044E #CYRILLIC SMALL LETTER YU +0x06C1 0x0430 #CYRILLIC SMALL LETTER A +0x06C2 0x0431 #CYRILLIC SMALL LETTER BE +0x06C3 0x0446 #CYRILLIC SMALL LETTER TSE +0x06C4 0x0434 #CYRILLIC SMALL LETTER DE +0x06C5 0x0435 #CYRILLIC SMALL LETTER IE +0x06C6 0x0444 #CYRILLIC SMALL LETTER EF +0x06C7 0x0433 #CYRILLIC SMALL LETTER GHE +0x06C8 0x0445 #CYRILLIC SMALL LETTER HA +0x06C9 0x0438 #CYRILLIC SMALL LETTER I +0x06CA 0x0439 #CYRILLIC SMALL LETTER SHORT I +0x06CB 0x043A #CYRILLIC SMALL LETTER KA +0x06CC 0x043B #CYRILLIC SMALL LETTER EL +0x06CD 0x043C #CYRILLIC SMALL LETTER EM +0x06CE 0x043D #CYRILLIC SMALL LETTER EN +0x06CF 0x043E #CYRILLIC SMALL LETTER O +0x06D0 0x043F #CYRILLIC SMALL LETTER PE +0x06D1 0x044F #CYRILLIC SMALL LETTER YA +0x06D2 0x0440 #CYRILLIC SMALL LETTER ER +0x06D3 0x0441 #CYRILLIC SMALL LETTER ES +0x06D4 0x0442 #CYRILLIC SMALL LETTER TE +0x06D5 0x0443 #CYRILLIC SMALL LETTER U +0x06D6 0x0436 #CYRILLIC SMALL LETTER ZHE +0x06D7 0x0432 #CYRILLIC SMALL LETTER VE +0x06D8 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0x06D9 0x044B #CYRILLIC SMALL LETTER YERU +0x06DA 0x0437 #CYRILLIC SMALL LETTER ZE +0x06DB 0x0448 #CYRILLIC SMALL LETTER SHA +0x06DC 0x044D #CYRILLIC SMALL LETTER E +0x06DD 0x0449 #CYRILLIC SMALL LETTER SHCHA +0x06DE 0x0447 #CYRILLIC SMALL LETTER CHE +0x06DF 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0x06E0 0x042E #CYRILLIC CAPITAL LETTER YU +0x06E1 0x0410 #CYRILLIC CAPITAL LETTER A +0x06E2 0x0411 #CYRILLIC CAPITAL LETTER BE +0x06E3 0x0426 #CYRILLIC CAPITAL LETTER TSE +0x06E4 0x0414 #CYRILLIC CAPITAL LETTER DE +0x06E5 0x0415 #CYRILLIC CAPITAL LETTER IE +0x06E6 0x0424 #CYRILLIC CAPITAL LETTER EF +0x06E7 0x0413 #CYRILLIC CAPITAL LETTER GHE +0x06E8 0x0425 #CYRILLIC CAPITAL LETTER HA +0x06E9 0x0418 #CYRILLIC CAPITAL LETTER I +0x06EA 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0x06EB 0x041A #CYRILLIC CAPITAL LETTER KA +0x06EC 0x041B #CYRILLIC CAPITAL LETTER EL +0x06ED 0x041C #CYRILLIC CAPITAL LETTER EM +0x06EE 0x041D #CYRILLIC CAPITAL LETTER EN +0x06EF 0x041E #CYRILLIC CAPITAL LETTER O +0x06F0 0x041F #CYRILLIC CAPITAL LETTER PE +0x06F1 0x042F #CYRILLIC CAPITAL LETTER YA +0x06F2 0x0420 #CYRILLIC CAPITAL LETTER ER +0x06F3 0x0421 #CYRILLIC CAPITAL LETTER ES +0x06F4 0x0422 #CYRILLIC CAPITAL LETTER TE +0x06F5 0x0423 #CYRILLIC CAPITAL LETTER U +0x06F6 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0x06F7 0x0412 #CYRILLIC CAPITAL LETTER VE +0x06F8 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0x06F9 0x042B #CYRILLIC CAPITAL LETTER YERU +0x06FA 0x0417 #CYRILLIC CAPITAL LETTER ZE +0x06FB 0x0428 #CYRILLIC CAPITAL LETTER SHA +0x06FC 0x042D #CYRILLIC CAPITAL LETTER E +0x06FD 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0x06FE 0x0427 #CYRILLIC CAPITAL LETTER CHE +0x06FF 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN + ADDED freshlib/gui/Linux/__encodings/keysyms7.tbl Index: freshlib/gui/Linux/__encodings/keysyms7.tbl ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms7.tbl cannot compute difference between binary files ADDED freshlib/gui/Linux/__encodings/keysyms7.txt Index: freshlib/gui/Linux/__encodings/keysyms7.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms7.txt @@ -0,0 +1,72 @@ +0x07A1 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS +0x07A2 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS +0x07A3 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS +0x07A4 0x038A #GREEK CAPITAL LETTER IOTA WITH TONOS +0x07A5 0x03AA #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0x07A7 0x038C #GREEK CAPITAL LETTER OMICRON WITH TONOS +0x07A8 0x038E #GREEK CAPITAL LETTER UPSILON WITH TONOS +0x07A9 0x03AB #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0x07AB 0x038F #GREEK CAPITAL LETTER OMEGA WITH TONOS +0x07AE 0x0385 #GREEK DIALYTIKA TONOS +0x07AF 0x2015 #HORIZONTAL BAR +0x07B1 0x03AC #GREEK SMALL LETTER ALPHA WITH TONOS +0x07B2 0x03AD #GREEK SMALL LETTER EPSILON WITH TONOS +0x07B3 0x03AE #GREEK SMALL LETTER ETA WITH TONOS +0x07B4 0x03AF #GREEK SMALL LETTER IOTA WITH TONOS +0x07B5 0x03CA #GREEK SMALL LETTER IOTA WITH DIALYTIKA +0x07B6 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0x07B7 0x03CC #GREEK SMALL LETTER OMICRON WITH TONOS +0x07B8 0x03CD #GREEK SMALL LETTER UPSILON WITH TONOS +0x07B9 0x03CB #GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0x07BA 0x03B0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0x07BB 0x03CE #GREEK SMALL LETTER OMEGA WITH TONOS +0x07C1 0x0391 #GREEK CAPITAL LETTER ALPHA +0x07C2 0x0392 #GREEK CAPITAL LETTER BETA +0x07C3 0x0393 #GREEK CAPITAL LETTER GAMMA +0x07C4 0x0394 #GREEK CAPITAL LETTER DELTA +0x07C5 0x0395 #GREEK CAPITAL LETTER EPSILON +0x07C6 0x0396 #GREEK CAPITAL LETTER ZETA +0x07C7 0x0397 #GREEK CAPITAL LETTER ETA +0x07C8 0x0398 #GREEK CAPITAL LETTER THETA +0x07C9 0x0399 #GREEK CAPITAL LETTER IOTA +0x07CA 0x039A #GREEK CAPITAL LETTER KAPPA +0x07CB 0x039B #GREEK CAPITAL LETTER LAMDA +0x07CC 0x039C #GREEK CAPITAL LETTER MU +0x07CD 0x039D #GREEK CAPITAL LETTER NU +0x07CE 0x039E #GREEK CAPITAL LETTER XI +0x07CF 0x039F #GREEK CAPITAL LETTER OMICRON +0x07D0 0x03A0 #GREEK CAPITAL LETTER PI +0x07D1 0x03A1 #GREEK CAPITAL LETTER RHO +0x07D2 0x03A3 #GREEK CAPITAL LETTER SIGMA +0x07D4 0x03A4 #GREEK CAPITAL LETTER TAU +0x07D5 0x03A5 #GREEK CAPITAL LETTER UPSILON +0x07D6 0x03A6 #GREEK CAPITAL LETTER PHI +0x07D7 0x03A7 #GREEK CAPITAL LETTER CHI +0x07D8 0x03A8 #GREEK CAPITAL LETTER PSI +0x07D9 0x03A9 #GREEK CAPITAL LETTER OMEGA +0x07E1 0x03B1 #GREEK SMALL LETTER ALPHA +0x07E2 0x03B2 #GREEK SMALL LETTER BETA +0x07E3 0x03B3 #GREEK SMALL LETTER GAMMA +0x07E4 0x03B4 #GREEK SMALL LETTER DELTA +0x07E5 0x03B5 #GREEK SMALL LETTER EPSILON +0x07E6 0x03B6 #GREEK SMALL LETTER ZETA +0x07E7 0x03B7 #GREEK SMALL LETTER ETA +0x07E8 0x03B8 #GREEK SMALL LETTER THETA +0x07E9 0x03B9 #GREEK SMALL LETTER IOTA +0x07EA 0x03BA #GREEK SMALL LETTER KAPPA +0x07EB 0x03BB #GREEK SMALL LETTER LAMDA +0x07EC 0x03BC #GREEK SMALL LETTER MU +0x07ED 0x03BD #GREEK SMALL LETTER NU +0x07EE 0x03BE #GREEK SMALL LETTER XI +0x07EF 0x03BF #GREEK SMALL LETTER OMICRON +0x07F0 0x03C0 #GREEK SMALL LETTER PI +0x07F1 0x03C1 #GREEK SMALL LETTER RHO +0x07F2 0x03C3 #GREEK SMALL LETTER SIGMA +0x07F3 0x03C2 #GREEK SMALL LETTER FINAL SIGMA +0x07F4 0x03C4 #GREEK SMALL LETTER TAU +0x07F5 0x03C5 #GREEK SMALL LETTER UPSILON +0x07F6 0x03C6 #GREEK SMALL LETTER PHI +0x07F7 0x03C7 #GREEK SMALL LETTER CHI +0x07F8 0x03C8 #GREEK SMALL LETTER PSI +0x07F9 0x03C9 #GREEK SMALL LETTER OMEGA + ADDED freshlib/gui/Linux/__encodings/keysyms_encoding.txt Index: freshlib/gui/Linux/__encodings/keysyms_encoding.txt ================================================================== --- /dev/null +++ freshlib/gui/Linux/__encodings/keysyms_encoding.txt @@ -0,0 +1,584 @@ +0x01A1 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK +0x01A2 0x02D8 #BREVE +0x01A3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE +0x01A5 0x013D #LATIN CAPITAL LETTER L WITH CARON +0x01A6 0x015A #LATIN CAPITAL LETTER S WITH ACUTE +0x01A9 0x0160 #LATIN CAPITAL LETTER S WITH CARON +0x01AA 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA +0x01AB 0x0164 #LATIN CAPITAL LETTER T WITH CARON +0x01AC 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE +0x01AE 0x017D #LATIN CAPITAL LETTER Z WITH CARON +0x01AF 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE +0x01B1 0x0105 #LATIN SMALL LETTER A WITH OGONEK +0x01B2 0x02DB #OGONEK +0x01B3 0x0142 #LATIN SMALL LETTER L WITH STROKE +0x01B5 0x013E #LATIN SMALL LETTER L WITH CARON +0x01B6 0x015B #LATIN SMALL LETTER S WITH ACUTE +0x01B7 0x02C7 #CARON +0x01B9 0x0161 #LATIN SMALL LETTER S WITH CARON +0x01BA 0x015F #LATIN SMALL LETTER S WITH CEDILLA +0x01BB 0x0165 #LATIN SMALL LETTER T WITH CARON +0x01BC 0x017A #LATIN SMALL LETTER Z WITH ACUTE +0x01BD 0x02DD #DOUBLE ACUTE ACCENT +0x01BE 0x017E #LATIN SMALL LETTER Z WITH CARON +0x01BF 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE +0x01C0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE +0x01C3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE +0x01C5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE +0x01C6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE +0x01C8 0x010C #LATIN CAPITAL LETTER C WITH CARON +0x01CA 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK +0x01CC 0x011A #LATIN CAPITAL LETTER E WITH CARON +0x01CF 0x010E #LATIN CAPITAL LETTER D WITH CARON +0x01D0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE +0x01D1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE +0x01D2 0x0147 #LATIN CAPITAL LETTER N WITH CARON +0x01D5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0x01D8 0x0158 #LATIN CAPITAL LETTER R WITH CARON +0x01D9 0x016E #LATIN CAPITAL LETTER U WITH RING ABOVE +0x01DB 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0x01DE 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA +0x01E0 0x0155 #LATIN SMALL LETTER R WITH ACUTE +0x01E3 0x0103 #LATIN SMALL LETTER A WITH BREVE +0x01E5 0x013A #LATIN SMALL LETTER L WITH ACUTE +0x01E6 0x0107 #LATIN SMALL LETTER C WITH ACUTE +0x01E8 0x010D #LATIN SMALL LETTER C WITH CARON +0x01EA 0x0119 #LATIN SMALL LETTER E WITH OGONEK +0x01EC 0x011B #LATIN SMALL LETTER E WITH CARON +0x01EF 0x010F #LATIN SMALL LETTER D WITH CARON +0x01F0 0x0111 #LATIN SMALL LETTER D WITH STROKE +0x01F1 0x0144 #LATIN SMALL LETTER N WITH ACUTE +0x01F2 0x0148 #LATIN SMALL LETTER N WITH CARON +0x01F5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE +0x01F8 0x0159 #LATIN SMALL LETTER R WITH CARON +0x01F9 0x016F #LATIN SMALL LETTER U WITH RING ABOVE +0x01FB 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE +0x01FE 0x0163 #LATIN SMALL LETTER T WITH CEDILLA +0x01FF 0x02D9 #DOT ABOVE +0x02A1 0x0126 #LATIN CAPITAL LETTER H WITH STROKE +0x02A6 0x0124 #LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0x02A9 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE +0x02AB 0x011E #LATIN CAPITAL LETTER G WITH BREVE +0x02AC 0x0134 #LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0x02B1 0x0127 #LATIN SMALL LETTER H WITH STROKE +0x02B6 0x0125 #LATIN SMALL LETTER H WITH CIRCUMFLEX +0x02B9 0x0131 #LATIN SMALL LETTER DOTLESS I +0x02BB 0x011F #LATIN SMALL LETTER G WITH BREVE +0x02BC 0x0135 #LATIN SMALL LETTER J WITH CIRCUMFLEX +0x02C5 0x010A #LATIN CAPITAL LETTER C WITH DOT ABOVE +0x02C6 0x0108 #LATIN CAPITAL LETTER C WITH CIRCUMFLEX +0x02D5 0x0120 #LATIN CAPITAL LETTER G WITH DOT ABOVE +0x02D8 0x011C #LATIN CAPITAL LETTER G WITH CIRCUMFLEX +0x02DD 0x016C #LATIN CAPITAL LETTER U WITH BREVE +0x02DE 0x015C #LATIN CAPITAL LETTER S WITH CIRCUMFLEX +0x02E5 0x010B #LATIN SMALL LETTER C WITH DOT ABOVE +0x02E6 0x0109 #LATIN SMALL LETTER C WITH CIRCUMFLEX +0x02F5 0x0121 #LATIN SMALL LETTER G WITH DOT ABOVE +0x02F8 0x011D #LATIN SMALL LETTER G WITH CIRCUMFLEX +0x02FD 0x016D #LATIN SMALL LETTER U WITH BREVE +0x02FE 0x015D #LATIN SMALL LETTER S WITH CIRCUMFLEX +0x03A2 0x0138 #LATIN SMALL LETTER KRA +0x03A3 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA +0x03A5 0x0128 #LATIN CAPITAL LETTER I WITH TILDE +0x03A6 0x013B #LATIN CAPITAL LETTER L WITH CEDILLA +0x03AA 0x0112 #LATIN CAPITAL LETTER E WITH MACRON +0x03AB 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA +0x03AC 0x0166 #LATIN CAPITAL LETTER T WITH STROKE +0x03B3 0x0157 #LATIN SMALL LETTER R WITH CEDILLA +0x03B5 0x0129 #LATIN SMALL LETTER I WITH TILDE +0x03B6 0x013C #LATIN SMALL LETTER L WITH CEDILLA +0x03BA 0x0113 #LATIN SMALL LETTER E WITH MACRON +0x03BB 0x0123 #LATIN SMALL LETTER G WITH CEDILLA +0x03BC 0x0167 #LATIN SMALL LETTER T WITH STROKE +0x03BD 0x014A #LATIN CAPITAL LETTER ENG +0x03BF 0x014B #LATIN SMALL LETTER ENG +0x03C0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON +0x03C7 0x012E #LATIN CAPITAL LETTER I WITH OGONEK +0x03CC 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE +0x03CF 0x012A #LATIN CAPITAL LETTER I WITH MACRON +0x03D1 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA +0x03D2 0x014C #LATIN CAPITAL LETTER O WITH MACRON +0x03D3 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA +0x03D9 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK +0x03DD 0x0168 #LATIN CAPITAL LETTER U WITH TILDE +0x03DE 0x016A #LATIN CAPITAL LETTER U WITH MACRON +0x03E0 0x0101 #LATIN SMALL LETTER A WITH MACRON +0x03E7 0x012F #LATIN SMALL LETTER I WITH OGONEK +0x03EC 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE +0x03EF 0x012B #LATIN SMALL LETTER I WITH MACRON +0x03F1 0x0146 #LATIN SMALL LETTER N WITH CEDILLA +0x03F2 0x014D #LATIN SMALL LETTER O WITH MACRON +0x03F3 0x0137 #LATIN SMALL LETTER K WITH CEDILLA +0x03F9 0x0173 #LATIN SMALL LETTER U WITH OGONEK +0x03FD 0x0169 #LATIN SMALL LETTER U WITH TILDE +0x03FE 0x016B #LATIN SMALL LETTER U WITH MACRON +0x047E 0x203E #OVERLINE +0x04A1 0x3002 #KANA FULL STOP +0x04A2 0x300C #KANA OPENING BRACKET +0x04A3 0x300D #KANA CLOSING BRACKET +0x04A4 0x3001 #KANA COMMA +0x04A5 0x30FB #KANA CONJUNCTIVE +0x04A6 0x30F2 #KANA LETTER WO +0x04A7 0x30A1 #KANA LETTER SMALL A +0x04A8 0x30A3 #KANA LETTER SMALL I +0x04A9 0x30A5 #KANA LETTER SMALL U +0x04AA 0x30A7 #KANA LETTER SMALL E +0x04AB 0x30A9 #KANA LETTER SMALL O +0x04AC 0x30E3 #KANA LETTER SMALL YA +0x04AD 0x30E5 #KANA LETTER SMALL YU +0x04AE 0x30E7 #KANA LETTER SMALL YO +0x04AF 0x30C3 #KANA LETTER SMALL TSU +0x04B0 0x30FC #PROLONGED SOUND SYMBOL +0x04B1 0x30A2 #KANA LETTER A +0x04B2 0x30A4 #KANA LETTER I +0x04B3 0x30A6 #KANA LETTER U +0x04B4 0x30A8 #KANA LETTER E +0x04B5 0x30AA #KANA LETTER O +0x04B6 0x30AB #KANA LETTER KA +0x04B7 0x30AD #KANA LETTER KI +0x04B8 0x30AF #KANA LETTER KU +0x04B9 0x30B1 #KANA LETTER KE +0x04BA 0x30B3 #KANA LETTER KO +0x04BB 0x30B5 #KANA LETTER SA +0x04BC 0x30B7 #KANA LETTER SHI +0x04BD 0x30B9 #KANA LETTER SU +0x04BE 0x30BB #KANA LETTER SE +0x04BF 0x30BD #KANA LETTER SO +0x04C0 0x30BF #KANA LETTER TA +0x04C1 0x30C1 #KANA LETTER CHI +0x04C2 0x30C4 #KANA LETTER TSU +0x04C3 0x30C6 #KANA LETTER TE +0x04C4 0x30C8 #KANA LETTER TO +0x04C5 0x30CA #KANA LETTER NA +0x04C6 0x30CB #KANA LETTER NI +0x04C7 0x30CC #KANA LETTER NU +0x04C8 0x30CD #KANA LETTER NE +0x04C9 0x30CE #KANA LETTER NO +0x04CA 0x30CF #KANA LETTER HA +0x04CB 0x30D2 #KANA LETTER HI +0x04CC 0x30D5 #KANA LETTER FU +0x04CD 0x30D8 #KANA LETTER HE +0x04CE 0x30DB #KANA LETTER HO +0x04CF 0x30DE #KANA LETTER MA +0x04D0 0x30DF #KANA LETTER MI +0x04D1 0x30E0 #KANA LETTER MU +0x04D2 0x30E1 #KANA LETTER ME +0x04D3 0x30E2 #KANA LETTER MO +0x04D4 0x30E4 #KANA LETTER YA +0x04D5 0x30E6 #KANA LETTER YU +0x04D6 0x30E8 #KANA LETTER YO +0x04D7 0x30E9 #KANA LETTER RA +0x04D8 0x30EA #KANA LETTER RI +0x04D9 0x30EB #KANA LETTER RU +0x04DA 0x30EC #KANA LETTER RE +0x04DB 0x30ED #KANA LETTER RO +0x04DC 0x30EF #KANA LETTER WA +0x04DD 0x30F3 #KANA LETTER N +0x04DE 0x309B #VOICED SOUND SYMBOL +0x04DF 0x309C #SEMIVOICED SOUND SYMBOL +0x05AC 0x060C #ARABIC COMMA +0x05BB 0x061B #ARABIC SEMICOLON +0x05BF 0x061F #ARABIC QUESTION MARK +0x05C1 0x0621 #ARABIC LETTER HAMZA +0x05C2 0x0622 #ARABIC LETTER ALEF WITH MADDA ABOVE +0x05C3 0x0623 #ARABIC LETTER ALEF WITH HAMZA ABOVE +0x05C4 0x0624 #ARABIC LETTER WAW WITH HAMZA ABOVE +0x05C5 0x0625 #ARABIC LETTER ALEF WITH HAMZA BELOW +0x05C6 0x0626 #ARABIC LETTER YEH WITH HAMZA ABOVE +0x05C7 0x0627 #ARABIC LETTER ALEF +0x05C8 0x0628 #ARABIC LETTER BEH +0x05C9 0x0629 #ARABIC LETTER TEH MARBUTA +0x05CA 0x062A #ARABIC LETTER TEH +0x05CB 0x062B #ARABIC LETTER THEH +0x05CC 0x062C #ARABIC LETTER JEEM +0x05CD 0x062D #ARABIC LETTER HAH +0x05CE 0x062E #ARABIC LETTER KHAH +0x05CF 0x062F #ARABIC LETTER DAL +0x05D0 0x0630 #ARABIC LETTER THAL +0x05D1 0x0631 #ARABIC LETTER REH +0x05D2 0x0632 #ARABIC LETTER ZAIN +0x05D3 0x0633 #ARABIC LETTER SEEN +0x05D4 0x0634 #ARABIC LETTER SHEEN +0x05D5 0x0635 #ARABIC LETTER SAD +0x05D6 0x0636 #ARABIC LETTER DAD +0x05D7 0x0637 #ARABIC LETTER TAH +0x05D8 0x0638 #ARABIC LETTER ZAH +0x05D9 0x0639 #ARABIC LETTER AIN +0x05DA 0x063A #ARABIC LETTER GHAIN +0x05E0 0x0640 #ARABIC TATWEEL +0x05E1 0x0641 #ARABIC LETTER FEH +0x05E2 0x0642 #ARABIC LETTER QAF +0x05E3 0x0643 #ARABIC LETTER KAF +0x05E4 0x0644 #ARABIC LETTER LAM +0x05E5 0x0645 #ARABIC LETTER MEEM +0x05E6 0x0646 #ARABIC LETTER NOON +0x05E7 0x0647 #ARABIC LETTER HEH +0x05E8 0x0648 #ARABIC LETTER WAW +0x05E9 0x0649 #ARABIC LETTER ALEF MAKSURA +0x05EA 0x064A #ARABIC LETTER YEH +0x05EB 0x064B #ARABIC FATHATAN +0x05EC 0x064C #ARABIC DAMMATAN +0x05ED 0x064D #ARABIC KASRATAN +0x05EE 0x064E #ARABIC FATHA +0x05EF 0x064F #ARABIC DAMMA +0x05F0 0x0650 #ARABIC KASRA +0x05F1 0x0651 #ARABIC SHADDA +0x05F2 0x0652 #ARABIC SUKUN +0x06A1 0x0452 #CYRILLIC SMALL LETTER DJE +0x06A2 0x0453 #CYRILLIC SMALL LETTER GJE +0x06A3 0x0451 #CYRILLIC SMALL LETTER IO +0x06A4 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE +0x06A5 0x0455 #CYRILLIC SMALL LETTER DZE +0x06A6 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0x06A7 0x0457 #CYRILLIC SMALL LETTER YI +0x06A8 0x0458 #CYRILLIC SMALL LETTER JE +0x06A9 0x0459 #CYRILLIC SMALL LETTER LJE +0x06AA 0x045A #CYRILLIC SMALL LETTER NJE +0x06AB 0x045B #CYRILLIC SMALL LETTER TSHE +0x06AC 0x045C #CYRILLIC SMALL LETTER KJE +0x06AD 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN +0x06AE 0x045E #CYRILLIC SMALL LETTER SHORT U +0x06AF 0x045F #CYRILLIC SMALL LETTER DZHE +0x06B0 0x2116 #NUMERO SIGN +0x06B1 0x0402 #CYRILLIC CAPITAL LETTER DJE +0x06B2 0x0403 #CYRILLIC CAPITAL LETTER GJE +0x06B3 0x0401 #CYRILLIC CAPITAL LETTER IO +0x06B4 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE +0x06B5 0x0405 #CYRILLIC CAPITAL LETTER DZE +0x06B6 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0x06B7 0x0407 #CYRILLIC CAPITAL LETTER YI +0x06B8 0x0408 #CYRILLIC CAPITAL LETTER JE +0x06B9 0x0409 #CYRILLIC CAPITAL LETTER LJE +0x06BA 0x040A #CYRILLIC CAPITAL LETTER NJE +0x06BB 0x040B #CYRILLIC CAPITAL LETTER TSHE +0x06BC 0x040C #CYRILLIC CAPITAL LETTER KJE +0x06BD 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0x06BE 0x040E #CYRILLIC CAPITAL LETTER SHORT U +0x06BF 0x040F #CYRILLIC CAPITAL LETTER DZHE +0x06C0 0x044E #CYRILLIC SMALL LETTER YU +0x06C1 0x0430 #CYRILLIC SMALL LETTER A +0x06C2 0x0431 #CYRILLIC SMALL LETTER BE +0x06C3 0x0446 #CYRILLIC SMALL LETTER TSE +0x06C4 0x0434 #CYRILLIC SMALL LETTER DE +0x06C5 0x0435 #CYRILLIC SMALL LETTER IE +0x06C6 0x0444 #CYRILLIC SMALL LETTER EF +0x06C7 0x0433 #CYRILLIC SMALL LETTER GHE +0x06C8 0x0445 #CYRILLIC SMALL LETTER HA +0x06C9 0x0438 #CYRILLIC SMALL LETTER I +0x06CA 0x0439 #CYRILLIC SMALL LETTER SHORT I +0x06CB 0x043A #CYRILLIC SMALL LETTER KA +0x06CC 0x043B #CYRILLIC SMALL LETTER EL +0x06CD 0x043C #CYRILLIC SMALL LETTER EM +0x06CE 0x043D #CYRILLIC SMALL LETTER EN +0x06CF 0x043E #CYRILLIC SMALL LETTER O +0x06D0 0x043F #CYRILLIC SMALL LETTER PE +0x06D1 0x044F #CYRILLIC SMALL LETTER YA +0x06D2 0x0440 #CYRILLIC SMALL LETTER ER +0x06D3 0x0441 #CYRILLIC SMALL LETTER ES +0x06D4 0x0442 #CYRILLIC SMALL LETTER TE +0x06D5 0x0443 #CYRILLIC SMALL LETTER U +0x06D6 0x0436 #CYRILLIC SMALL LETTER ZHE +0x06D7 0x0432 #CYRILLIC SMALL LETTER VE +0x06D8 0x044C #CYRILLIC SMALL LETTER SOFT SIGN +0x06D9 0x044B #CYRILLIC SMALL LETTER YERU +0x06DA 0x0437 #CYRILLIC SMALL LETTER ZE +0x06DB 0x0448 #CYRILLIC SMALL LETTER SHA +0x06DC 0x044D #CYRILLIC SMALL LETTER E +0x06DD 0x0449 #CYRILLIC SMALL LETTER SHCHA +0x06DE 0x0447 #CYRILLIC SMALL LETTER CHE +0x06DF 0x044A #CYRILLIC SMALL LETTER HARD SIGN +0x06E0 0x042E #CYRILLIC CAPITAL LETTER YU +0x06E1 0x0410 #CYRILLIC CAPITAL LETTER A +0x06E2 0x0411 #CYRILLIC CAPITAL LETTER BE +0x06E3 0x0426 #CYRILLIC CAPITAL LETTER TSE +0x06E4 0x0414 #CYRILLIC CAPITAL LETTER DE +0x06E5 0x0415 #CYRILLIC CAPITAL LETTER IE +0x06E6 0x0424 #CYRILLIC CAPITAL LETTER EF +0x06E7 0x0413 #CYRILLIC CAPITAL LETTER GHE +0x06E8 0x0425 #CYRILLIC CAPITAL LETTER HA +0x06E9 0x0418 #CYRILLIC CAPITAL LETTER I +0x06EA 0x0419 #CYRILLIC CAPITAL LETTER SHORT I +0x06EB 0x041A #CYRILLIC CAPITAL LETTER KA +0x06EC 0x041B #CYRILLIC CAPITAL LETTER EL +0x06ED 0x041C #CYRILLIC CAPITAL LETTER EM +0x06EE 0x041D #CYRILLIC CAPITAL LETTER EN +0x06EF 0x041E #CYRILLIC CAPITAL LETTER O +0x06F0 0x041F #CYRILLIC CAPITAL LETTER PE +0x06F1 0x042F #CYRILLIC CAPITAL LETTER YA +0x06F2 0x0420 #CYRILLIC CAPITAL LETTER ER +0x06F3 0x0421 #CYRILLIC CAPITAL LETTER ES +0x06F4 0x0422 #CYRILLIC CAPITAL LETTER TE +0x06F5 0x0423 #CYRILLIC CAPITAL LETTER U +0x06F6 0x0416 #CYRILLIC CAPITAL LETTER ZHE +0x06F7 0x0412 #CYRILLIC CAPITAL LETTER VE +0x06F8 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN +0x06F9 0x042B #CYRILLIC CAPITAL LETTER YERU +0x06FA 0x0417 #CYRILLIC CAPITAL LETTER ZE +0x06FB 0x0428 #CYRILLIC CAPITAL LETTER SHA +0x06FC 0x042D #CYRILLIC CAPITAL LETTER E +0x06FD 0x0429 #CYRILLIC CAPITAL LETTER SHCHA +0x06FE 0x0427 #CYRILLIC CAPITAL LETTER CHE +0x06FF 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN +0x07A1 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS +0x07A2 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS +0x07A3 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS +0x07A4 0x038A #GREEK CAPITAL LETTER IOTA WITH TONOS +0x07A5 0x03AA #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0x07A7 0x038C #GREEK CAPITAL LETTER OMICRON WITH TONOS +0x07A8 0x038E #GREEK CAPITAL LETTER UPSILON WITH TONOS +0x07A9 0x03AB #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0x07AB 0x038F #GREEK CAPITAL LETTER OMEGA WITH TONOS +0x07AE 0x0385 #GREEK DIALYTIKA TONOS +0x07AF 0x2015 #HORIZONTAL BAR +0x07B1 0x03AC #GREEK SMALL LETTER ALPHA WITH TONOS +0x07B2 0x03AD #GREEK SMALL LETTER EPSILON WITH TONOS +0x07B3 0x03AE #GREEK SMALL LETTER ETA WITH TONOS +0x07B4 0x03AF #GREEK SMALL LETTER IOTA WITH TONOS +0x07B5 0x03CA #GREEK SMALL LETTER IOTA WITH DIALYTIKA +0x07B6 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0x07B7 0x03CC #GREEK SMALL LETTER OMICRON WITH TONOS +0x07B8 0x03CD #GREEK SMALL LETTER UPSILON WITH TONOS +0x07B9 0x03CB #GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0x07BA 0x03B0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0x07BB 0x03CE #GREEK SMALL LETTER OMEGA WITH TONOS +0x07C1 0x0391 #GREEK CAPITAL LETTER ALPHA +0x07C2 0x0392 #GREEK CAPITAL LETTER BETA +0x07C3 0x0393 #GREEK CAPITAL LETTER GAMMA +0x07C4 0x0394 #GREEK CAPITAL LETTER DELTA +0x07C5 0x0395 #GREEK CAPITAL LETTER EPSILON +0x07C6 0x0396 #GREEK CAPITAL LETTER ZETA +0x07C7 0x0397 #GREEK CAPITAL LETTER ETA +0x07C8 0x0398 #GREEK CAPITAL LETTER THETA +0x07C9 0x0399 #GREEK CAPITAL LETTER IOTA +0x07CA 0x039A #GREEK CAPITAL LETTER KAPPA +0x07CB 0x039B #GREEK CAPITAL LETTER LAMDA +0x07CC 0x039C #GREEK CAPITAL LETTER MU +0x07CD 0x039D #GREEK CAPITAL LETTER NU +0x07CE 0x039E #GREEK CAPITAL LETTER XI +0x07CF 0x039F #GREEK CAPITAL LETTER OMICRON +0x07D0 0x03A0 #GREEK CAPITAL LETTER PI +0x07D1 0x03A1 #GREEK CAPITAL LETTER RHO +0x07D2 0x03A3 #GREEK CAPITAL LETTER SIGMA +0x07D4 0x03A4 #GREEK CAPITAL LETTER TAU +0x07D5 0x03A5 #GREEK CAPITAL LETTER UPSILON +0x07D6 0x03A6 #GREEK CAPITAL LETTER PHI +0x07D7 0x03A7 #GREEK CAPITAL LETTER CHI +0x07D8 0x03A8 #GREEK CAPITAL LETTER PSI +0x07D9 0x03A9 #GREEK CAPITAL LETTER OMEGA +0x07E1 0x03B1 #GREEK SMALL LETTER ALPHA +0x07E2 0x03B2 #GREEK SMALL LETTER BETA +0x07E3 0x03B3 #GREEK SMALL LETTER GAMMA +0x07E4 0x03B4 #GREEK SMALL LETTER DELTA +0x07E5 0x03B5 #GREEK SMALL LETTER EPSILON +0x07E6 0x03B6 #GREEK SMALL LETTER ZETA +0x07E7 0x03B7 #GREEK SMALL LETTER ETA +0x07E8 0x03B8 #GREEK SMALL LETTER THETA +0x07E9 0x03B9 #GREEK SMALL LETTER IOTA +0x07EA 0x03BA #GREEK SMALL LETTER KAPPA +0x07EB 0x03BB #GREEK SMALL LETTER LAMDA +0x07EC 0x03BC #GREEK SMALL LETTER MU +0x07ED 0x03BD #GREEK SMALL LETTER NU +0x07EE 0x03BE #GREEK SMALL LETTER XI +0x07EF 0x03BF #GREEK SMALL LETTER OMICRON +0x07F0 0x03C0 #GREEK SMALL LETTER PI +0x07F1 0x03C1 #GREEK SMALL LETTER RHO +0x07F2 0x03C3 #GREEK SMALL LETTER SIGMA +0x07F3 0x03C2 #GREEK SMALL LETTER FINAL SIGMA +0x07F4 0x03C4 #GREEK SMALL LETTER TAU +0x07F5 0x03C5 #GREEK SMALL LETTER UPSILON +0x07F6 0x03C6 #GREEK SMALL LETTER PHI +0x07F7 0x03C7 #GREEK SMALL LETTER CHI +0x07F8 0x03C8 #GREEK SMALL LETTER PSI +0x07F9 0x03C9 #GREEK SMALL LETTER OMEGA + + +0x0AA1 0x2003 #EM SPACE Publish +0x0AA2 0x2002 #EN SPACE Publish +0x0AA3 0x2004 #3/EM SPACE Publish +0x0AA4 0x2005 #4/EM SPACE Publish +0x0AA5 0x2007 #DIGIT SPACE Publish +0x0AA6 0x2008 #PUNCTUATION SPACE Publish +0x0AA7 0x2009 #THIN SPACE Publish +0x0AA8 0x200A #HAIR SPACE Publish +0x0AA9 0x2014 #EM DASH Publish +0x0AAA 0x2013 #EN DASH Publish +0x0AAC 0x2423 #SIGNIFICANT BLANK SYMBOL Publish +0x0AAE 0x2026 #ELLIPSIS Publish +0x0AAF 0x2025 #DOUBLE BASELINE DOT Publish +0x0AB0 0x2153 #VULGAR FRACTION ONE THIRD Publish +0x0AB1 0x2154 #VULGAR FRACTION TWO THIRDS Publish +0x0AB2 0x2155 #VULGAR FRACTION ONE FIFTH Publish +0x0AB3 0x2156 #VULGAR FRACTION TWO FIFTHS Publish +0x0AB4 0x2157 #VULGAR FRACTION THREE FIFTHS Publish +0x0AB5 0x2158 #VULGAR FRACTION FOUR FIFTHS Publish +0x0AB6 0x2159 #VULGAR FRACTION ONE SIXTH Publish +0x0AB7 0x215A #VULGAR FRACTION FIVE SIXTHS Publish +0x0AB8 0x2105 #CARE OF Publish +0x0ABB 0x2012 #FIGURE DASH Publish +0x0ABC 0x3008 #LEFT ANGLE BRACKET Publish +0x0ABD 0x002e #DECIMAL POINT Publish +0x0ABE 0x3009 #RIGHT ANGLE BRACKET Publish +0x0AC3 0x215B #VULGAR FRACTION ONE EIGHTH Publish +0x0AC4 0x215C #VULGAR FRACTION THREE EIGHTHS Publish +0x0AC5 0x215D #VULGAR FRACTION FIVE EIGHTHS Publish +0x0AC6 0x215E #VULGAR FRACTION SEVEN EIGHTHS Publish +0x0AC9 0x2122 #TRADEMARK SIGN Publish +0x0AD0 0x2018 #LEFT SINGLE QUOTATION MARK Publish +0x0AD1 0x2019 #RIGHT SINGLE QUOTATION MARK Publish +0x0AD2 0x201C #LEFT DOUBLE QUOTATION MARK Publish +0x0AD3 0x201D #RIGHT DOUBLE QUOTATION MARK Publish +0x0AD4 0x211E #PRESCRIPTION, TAKE, RECIPE Publish +0x0AD5 0x2030 #PER MILLE SIGN Publish +0x0AD6 0x2032 #MINUTES Publish +0x0AD7 0x2033 #SECONDS Publish +0x0AD9 0x271D #LATIN CROSS Publish +0x0AEC 0x2663 #CLUB Publish +0x0AED 0x2666 #DIAMOND Publish +0x0AEE 0x2665 #HEART Publish +0x0AF0 0x2720 #MALTESE CROSS Publish +0x0AF1 0x2020 #DAGGER Publish +0x0AF2 0x2021 #DOUBLE DAGGER Publish +0x0AF3 0x2713 #CHECK MARK, TICK Publish +0x0AF4 0x2717 #BALLOT CROSS Publish +0x0AF5 0x266F #MUSICAL SHARP Publish +0x0AF6 0x266D #MUSICAL FLAT Publish +0x0AF7 0x2642 #MALE SYMBOL Publish +0x0AF8 0x2640 #FEMALE SYMBOL Publish +0x0AF9 0x260E #TELEPHONE SYMBOL Publish +0x0AFA 0x2315 #TELEPHONE RECORDER SYMBOL Publish +0x0AFB 0x2117 #PHONOGRAPH COPYRIGHT SIGN Publish +0x0AFC 0x2038 #CARET Publish +0x0AFD 0x201A #SINGLE LOW QUOTATION MARK Publish +0x0AFE 0x201E #DOUBLE LOW QUOTATION MARK Publish + + +0x0CDF 0x2017 #DOUBLE LOW LINE +0x0CE0 0x05D0 #HEBREW LETTER ALEF +0x0CE1 0x05D1 #HEBREW LETTER BET +0x0CE2 0x05D2 #HEBREW LETTER GIMEL +0x0CE3 0x05D3 #HEBREW LETTER DALET +0x0CE4 0x05D4 #HEBREW LETTER HE +0x0CE5 0x05D5 #HEBREW LETTER VAV +0x0CE6 0x05D6 #HEBREW LETTER ZAYIN +0x0CE7 0x05D7 #HEBREW LETTER HET +0x0CE8 0x05D8 #HEBREW LETTER TET +0x0CE9 0x05D9 #HEBREW LETTER YOD +0x0CEA 0x05DA #HEBREW LETTER FINAL KAF +0x0CEB 0x05DB #HEBREW LETTER KAF +0x0CEC 0x05DC #HEBREW LETTER LAMED +0x0CED 0x05DD #HEBREW LETTER FINAL MEM +0x0CEE 0x05DE #HEBREW LETTER MEM +0x0CEF 0x05DF #HEBREW LETTER FINAL NUN +0x0CF0 0x05E0 #HEBREW LETTER NUN +0x0CF1 0x05E1 #HEBREW LETTER SAMEKH +0x0CF2 0x05E2 #HEBREW LETTER AYIN +0x0CF3 0x05E3 #HEBREW LETTER FINAL PE +0x0CF4 0x05E4 #HEBREW LETTER PE +0x0CF5 0x05E5 #HEBREW LETTER FINAL TSADI +0x0CF6 0x05E6 #HEBREW LETTER TSADI +0x0CF7 0x05E7 #HEBREW LETTER QOF +0x0CF8 0x05E8 #HEBREW LETTER RESH +0x0CF9 0x05E9 #HEBREW LETTER SHIN +0x0CFA 0x05EA #HEBREW LETTER TAV + +0x0DA1 0x0E01 #THAI CHARACTER KO KAI +0x0DA2 0x0E02 #THAI CHARACTER KHO KHAI +0x0DA3 0x0E03 #THAI CHARACTER KHO KHUAT +0x0DA4 0x0E04 #THAI CHARACTER KHO KHWAI +0x0DA5 0x0E05 #THAI CHARACTER KHO KHON +0x0DA6 0x0E06 #THAI CHARACTER KHO RAKHANG +0x0DA7 0x0E07 #THAI CHARACTER NGO NGU +0x0DA8 0x0E08 #THAI CHARACTER CHO CHAN +0x0DA9 0x0E09 #THAI CHARACTER CHO CHING +0x0DAA 0x0E0A #THAI CHARACTER CHO CHANG +0x0DAB 0x0E0B #THAI CHARACTER SO SO +0x0DAC 0x0E0C #THAI CHARACTER CHO CHOE +0x0DAD 0x0E0D #THAI CHARACTER YO YING +0x0DAE 0x0E0E #THAI CHARACTER DO CHADA +0x0DAF 0x0E0F #THAI CHARACTER TO PATAK +0x0DB0 0x0E10 #THAI CHARACTER THO THAN +0x0DB1 0x0E11 #THAI CHARACTER THO NANGMONTHO +0x0DB2 0x0E12 #THAI CHARACTER THO PHUTHAO +0x0DB3 0x0E13 #THAI CHARACTER NO NEN +0x0DB4 0x0E14 #THAI CHARACTER DO DEK +0x0DB5 0x0E15 #THAI CHARACTER TO TAO +0x0DB6 0x0E16 #THAI CHARACTER THO THUNG +0x0DB7 0x0E17 #THAI CHARACTER THO THAHAN +0x0DB8 0x0E18 #THAI CHARACTER THO THONG +0x0DB9 0x0E19 #THAI CHARACTER NO NU +0x0DBA 0x0E1A #THAI CHARACTER BO BAIMAI +0x0DBB 0x0E1B #THAI CHARACTER PO PLA +0x0DBC 0x0E1C #THAI CHARACTER PHO PHUNG +0x0DBD 0x0E1D #THAI CHARACTER FO FA +0x0DBE 0x0E1E #THAI CHARACTER PHO PHAN +0x0DBF 0x0E1F #THAI CHARACTER FO FAN +0x0DC0 0x0E20 #THAI CHARACTER PHO SAMPHAO +0x0DC1 0x0E21 #THAI CHARACTER MO MA +0x0DC2 0x0E22 #THAI CHARACTER YO YAK +0x0DC3 0x0E23 #THAI CHARACTER RO RUA +0x0DC4 0x0E24 #THAI CHARACTER RU +0x0DC5 0x0E25 #THAI CHARACTER LO LING +0x0DC6 0x0E26 #THAI CHARACTER LU +0x0DC7 0x0E27 #THAI CHARACTER WO WAEN +0x0DC8 0x0E28 #THAI CHARACTER SO SALA +0x0DC9 0x0E29 #THAI CHARACTER SO RUSI +0x0DCA 0x0E2A #THAI CHARACTER SO SUA +0x0DCB 0x0E2B #THAI CHARACTER HO HIP +0x0DCC 0x0E2C #THAI CHARACTER LO CHULA +0x0DCD 0x0E2D #THAI CHARACTER O ANG +0x0DCE 0x0E2E #THAI CHARACTER HO NOKHUK +0x0DCF 0x0E2F #THAI CHARACTER PAIYANNOI +0x0DD0 0x0E30 #THAI CHARACTER SARA A +0x0DD1 0x0E31 #THAI CHARACTER MAI HAN-AKAT +0x0DD2 0x0E32 #THAI CHARACTER SARA AA +0x0DD3 0x0E33 #THAI CHARACTER SARA AM +0x0DD4 0x0E34 #THAI CHARACTER SARA I +0x0DD5 0x0E35 #THAI CHARACTER SARA II +0x0DD6 0x0E36 #THAI CHARACTER SARA UE +0x0DD7 0x0E37 #THAI CHARACTER SARA UEE +0x0DD8 0x0E38 #THAI CHARACTER SARA U +0x0DD9 0x0E39 #THAI CHARACTER SARA UU +0x0DDA 0x0E3A #THAI CHARACTER PHINTHU +0x0DDF 0x0E3F #THAI CURRENCY SYMBOL BAHT +0x0DE0 0x0E40 #THAI CHARACTER SARA E +0x0DE1 0x0E41 #THAI CHARACTER SARA AE +0x0DE2 0x0E42 #THAI CHARACTER SARA O +0x0DE3 0x0E43 #THAI CHARACTER SARA AI MAIMUAN +0x0DE4 0x0E44 #THAI CHARACTER SARA AI MAIMALAI +0x0DE5 0x0E45 #THAI CHARACTER LAKKHANGYAO +0x0DE6 0x0E46 #THAI CHARACTER MAIYAMOK +0x0DE7 0x0E47 #THAI CHARACTER MAITAIKHU +0x0DE8 0x0E48 #THAI CHARACTER MAI EK +0x0DE9 0x0E49 #THAI CHARACTER MAI THO +0x0DEA 0x0E4A #THAI CHARACTER MAI TRI +0x0DEB 0x0E4B #THAI CHARACTER MAI CHATTAWA +0x0DEC 0x0E4C #THAI CHARACTER THANTHAKHAT +0x0DED 0x0E4D #THAI CHARACTER NIKHAHIT +0x0DF0 0x0E50 #THAI DIGIT ZERO +0x0DF1 0x0E51 #THAI DIGIT ONE +0x0DF2 0x0E52 #THAI DIGIT TWO +0x0DF3 0x0E53 #THAI DIGIT THREE +0x0DF4 0x0E54 #THAI DIGIT FOUR +0x0DF5 0x0E55 #THAI DIGIT FIVE +0x0DF6 0x0E56 #THAI DIGIT SIX +0x0DF7 0x0E57 #THAI DIGIT SEVEN +0x0DF8 0x0E58 #THAI DIGIT EIGHT +0x0DF9 0x0E59 #THAI DIGIT NINE + +0x13BC 0x0152 #LATIN CAPITAL LIGATURE OE +0x13BD 0x0153 #LATIN SMALL LIGATURE OE +0x13BE 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS + +0x20A0 0x20A0 #CURRENCY ECU SIGN +0x20A1 0x20A1 #CURRENCY COLON SIGN +0x20A2 0x20A2 #CURRENCY CRUZEIRO SIGN +0x20A3 0x20A3 #CURRENCY FRENCH FRANC SIGN +0x20A4 0x20A4 #CURRENCY LIRA SIGN +0x20A5 0x20A5 #CURRENCY MILL SIGN +0x20A6 0x20A6 #CURRENCY NAIRA SIGN +0x20A7 0x20A7 #CURRENCY PESETA SIGN +0x20A8 0x20A8 #CURRENCY RUPEE SIGN +0x20A9 0x20A9 #CURRENCY WON SIGN +0x20AA 0x20AA #CURRENCY NEW SHEQEL SIGN +0x20AB 0x20AB #CURRENCY DONG SIGN +0x20AC 0x20AC #CURRENCY EURO SIGN ADDED freshlib/gui/Linux/__images/cursors.png Index: freshlib/gui/Linux/__images/cursors.png ================================================================== --- /dev/null +++ freshlib/gui/Linux/__images/cursors.png cannot compute difference between binary files ADDED freshlib/gui/Linux/application.asm Index: freshlib/gui/Linux/application.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/application.asm @@ -0,0 +1,283 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TApplication object class. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: TApplication by the idea is the base of GUI application, but the implementation +; somehow need fixing... +;_________________________________________________________________________________________ + + +uglobal + if used appConn + appConn xConnection + + var flagSharedMemory = ? + + var atomWMProtocols = ? + wmProtocols: + .atomWMDelete dd ? + .atomWMSyncRequest dd ? + .atomWMPing dd ? + .count = ($ - wmProtocols)/4 + + var atomWMSyncCounter = ? + + var atomState = ? + var atomStateAbove = ? + var atomStateModal = ? + var atomStateMaximizedVert = ? + var atomStateMaximizedHorz = ? + var atomStateHidden = ? + var atomStateSkipTaskbar = ? + var atomStateSkipPager = ? + + var atomAllowedActions = ? + var atomActionMove = ? + var atomActionResize = ? + var atomActionMinimize = ? + var atomActionShade = ? + var atomActionStick = ? + var atomActionMaximizeHorz = ? + var atomActionMaximizeVert = ? + var atomActionFullscreen = ? + var atomActionChangeDesktop = ? + var atomActionClose = ? + + var atomWindowType = ? + var atomWindowTypePopupMenu = ? + var atomWindowTypeUtility = ? + var atomWindowTypeToolbar = ? + var atomWindowTypeMenu = ? + var atomWindowTypeDialog = ? + var atomWindowTypeNormal = ? + var atomWindowTypeDock = ? + + var atomWindowName = ? + var atomIcon = ? + + var atomClientLeader = ? + + var atomClipboard = ? + var atomTargets = ? + var atomStringUtf8 = ? + + var FTLibrary = ? + var FTCManager = ? + var FTCImageCache = ? + var FTCCMapCache = ? + + var applicationClass = ? ; contains the application class name to be set to WM_CLASS property of the windows. + + end if +endg + + + +iglobal + if used allAtoms + allAtoms dd cWMProtocols, atomWMProtocols + dd cWMDeleteWindow, wmProtocols.atomWMDelete + dd cNetWMSyncRequest, wmProtocols.atomWMSyncRequest + dd cNetWMPing, wmProtocols.atomWMPing + dd cNetWMSyncRequestCounter, atomWMSyncCounter + dd cNetWMState, atomState + dd cNetWMStateAbove, atomStateAbove + dd cNetWMStateModal, atomStateModal + dd cNetWMStateSkipTaskbar, atomStateSkipTaskbar + dd cNetWMStateSkipPager, atomStateSkipPager + dd cNetWMStateMaximizedVert, atomStateMaximizedVert + dd cNetWMStateMaximizedHorz, atomStateMaximizedHorz + dd cNetWMStateHidden, atomStateHidden + dd cNetWMWindowType, atomWindowType + dd cNetWMWindowTypePopupMenu, atomWindowTypePopupMenu + dd cNetWMWindowTypeUtility, atomWindowTypeUtility + dd cNetWMWindowTypeToolbar, atomWindowTypeToolbar + dd cNetWMWindowTypeMenu, atomWindowTypeMenu + dd cNetWMWindowTypeDialog, atomWindowTypeDialog + dd cNetWMWindowTypeNormal, atomWindowTypeNormal + dd cNetWMWindowTypeDock, atomWindowTypeDock + dd cNetWMWindowName, atomWindowName + dd cNetWMIcon, atomIcon + dd cWMClientLeader, atomClientLeader + dd cClipboard, atomClipboard + dd cTargets, atomTargets + dd cStringUtf8, atomStringUtf8 + .count = ($ - allAtoms)/8 + end if + + cWMProtocols xAtom "WM_PROTOCOLS" + cWMDeleteWindow xAtom "WM_DELETE_WINDOW" + cNetWMSyncRequest xAtom "_NET_WM_SYNC_REQUEST" + cNetWMPing xAtom "_NET_WM_PING" + cNetWMSyncRequestCounter xAtom "_NET_WM_SYNC_REQUEST_COUNTER" + + cNetWMState xAtom "_NET_WM_STATE" + cNetWMStateAbove xAtom "_NET_WM_STATE_ABOVE" + cNetWMStateModal xAtom "_NET_WM_STATE_MODAL" + cNetWMStateSkipTaskbar xAtom "_NET_WM_STATE_SKIP_TASKBAR" + cNetWMStateSkipPager xAtom "_NET_WM_STATE_SKIP_PAGER" + cNetWMStateMaximizedVert xAtom "_NET_WM_STATE_MAXIMIZED_VERT" + cNetWMStateMaximizedHorz xAtom "_NET_WM_STATE_MAXIMIZED_HORZ" + cNetWMStateHidden xAtom "_NET_WM_STATE_HIDDEN" + + cNetWMWindowType xAtom "_NET_WM_WINDOW_TYPE" + cNetWMWindowTypePopupMenu xAtom "_NET_WM_WINDOW_TYPE_POPUP_MENU" + cNetWMWindowTypeUtility xAtom "_NET_WM_WINDOW_TYPE_UTILITY" + cNetWMWindowTypeToolbar xAtom "_NET_WM_WINDOW_TYPE_TOOLBAR" + cNetWMWindowTypeMenu xAtom "_NET_WM_WINDOW_TYPE_MENU" + cNetWMWindowTypeDialog xAtom "_NET_WM_WINDOW_TYPE_DIALOG" + cNetWMWindowTypeNormal xAtom "_NET_WM_WINDOW_TYPE_NORMAL" + cNetWMWindowTypeDock xAtom "_NET_WM_WINDOW_TYPE_DOCK" + + cNetWMWindowName xAtom "_NET_WM_NAME" + cNetWMIcon xAtom "_NET_WM_ICON" + + cWMClientLeader xAtom "WM_CLIENT_LEADER" + + cClipboard xAtom "CLIPBOARD" + cTargets xAtom "TARGETS" + cStringUtf8 xAtom "UTF8_STRING" + +endg + + + + +proc InitGUIApplication +.ptr dd ? +.getmap __xXkbGetMapReq +.selevents __xXkbSelectEventsReq +begin + stdcall xOpenConnection, appConn, 32 + jc .error_disp + + OutputValue "X server connection opened. Socket: ", [appConn.socket], 10, -1 + OutputValue "Root window: ", [appConn.rootID], 16, 8 + +; Creating InternAtom's that to be used with Window manager of the application windows... + + mov esi, allAtoms + mov ecx, allAtoms.count + +.atom_loop: + stdcall xInternAtom, [esi] + jc .next_atom + + mov edx, [esi+4] + mov [edx], eax + +.next_atom: + add esi, 8 + loop .atom_loop + + +; stdcall InitMouseCursors + stdcall InitMouseCursors2 + +; Extract the application filename and use it as WM_CLASS + + stdcall GetCmdArguments + push StrDel + push eax + stdcall StrExtractFilename, [eax+TArray.array] ; the first argument is the application name. + stdcall ListFree ; from the stack + + mov [applicationClass], eax + +; XShm extension check + +if defined options.DebugMode.DisableSHM & options.DebugMode.DisableSHM + mov [flagSharedMemory], 0 +else + mov eax, [appConn.exShm.Active] + mov [flagSharedMemory], eax +end if + + OutputValue "MIT-SHM extension available:", [flagSharedMemory], 10, -1 + + mov eax, [appConn.exKbd.OpCode] + mov [.selevents.op], al + mov [.selevents.minor], opXkbSelectEvents + mov [.selevents.length], sizeof.__xXkbSelectEventsReq/4 + mov [.selevents.deviceSpec], xkbUseCoreKbd + mov [.selevents.affectWhich], mxkbMapNotify; or mxkbCompatMapNotify + mov [.selevents.clear], 0 + mov [.selevents.selectAll], mxkbMapNotify; or mxkbCompatMapNotify + mov [.selevents.affectMap], mxkbKeySyms + mov [.selevents.map], mxkbKeySyms + + lea eax, [.selevents] + stdcall xSend, appConn, eax + +; Get the keyboard mapping + + mov eax, [appConn.exKbd.OpCode] + mov [.getmap.op], al + mov [.getmap.minor], opXkbGetMap + mov [.getmap.length], sizeof.__xXkbGetMapReq/4 + mov [.getmap.deviceSpec], xkbUseCoreKbd + mov [.getmap.full], mxkbKeySyms + mov [.getmap.partial], 0 + + lea eax, [.getmap] + stdcall xSendWithCallback, appConn, eax, __IndexKeymap, 0 + +; Init freetype library. + + cinvoke FT_Init_FreeType, FTLibrary + test eax, eax + jnz .error_ft + + cinvoke FTC_Manager_New, [FTLibrary], 0, 0, 0, FTCRequester, 0, FTCManager + cinvoke FTC_ImageCache_New, [FTCManager], FTCImageCache + cinvoke FTC_CMapCache_New, [FTCManager], FTCCMapCache + +; clipboard initialization. +if __UseClipboard = 1 + stdcall __InitLinuxClipboard +end if + + clc + return + +.error_ft: + + DebugMsg 'Error initializing FreeType library.' + jmp .exit_error + +.error_disp: + DebugMsg 'Error open display.' + +.exit_error: + stc + return + +endp + + + +proc TerminateGUI +begin + DebugMsg "Terminate GUI" + + stdcall FreeMouseCursors + stdcall xCloseConnection, appConn + stdcall StrDel, [applicationClass] + + return +endp + + + +proc CloseGUIApplication +begin + inc [fGlobalTerminate] + return +endp ADDED freshlib/gui/Linux/clipboard.asm Index: freshlib/gui/Linux/clipboard.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/clipboard.asm @@ -0,0 +1,307 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Clipboard management library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +if used ClipboardRead | used ClipboardWrite + __UseClipboard = 1 +else + __UseClipboard = 0 +end if + +; Clipboard data type constants. + +clipboardNull = 0 ; empty clipboard. +clipboardString = 1 +clipboardBinary = 2 + +struct TClipboard + .type dd ? + .Length dd ? + .mutex TMutex + + label .data byte +ends + + + +uglobal + var pClipboard = 0 ; String handle with the clipboard text. + var __idClipboardWindow = 0 +endg + + +body ClipboardType +begin + mov eax, [pClipboard] + test eax, eax + jz .finish + + mov eax, [eax+TClipboard.type] + +.finish: + return +endp + + + +body ClipboardRead +begin + stdcall __StringFromClipboard, [pClipboard] + return +endp + + + +body ClipboardWrite ; .hstring +.sso __xSetSelectionOwnerReq +begin + pushad + + stdcall StrLen, [.hstring] + mov ecx, eax + + stdcall StrPtr, [.hstring] + + stdcall __ClipboardFromMem, eax, ecx, clipboardString + jc .finish + + xchg eax, [pClipboard] + stdcall __ClipboardFree, eax + + mov eax, [__idClipboardWindow] + mov edx, [atomClipboard] + + mov [.sso.op], opSetSelectionOwner + mov [.sso.length], sizeof.__xSetSelectionOwnerReq/4 + mov [.sso.owner], eax + mov [.sso.selection], edx + mov [.sso.time], 0 ; CurrentTime + lea eax, [.sso] + stdcall xSend, appConn, eax + + clc + +.finish: + popad + return +endp + + + +proc __ClipboardCreate, .datalength +begin + push ecx + + mov ecx, [.datalength] + lea eax, [ecx+sizeof.TClipboard] + add eax, 3 + and al, $fc ; align 4 bytes + stdcall GetMem, eax + jc .finish + + lea ecx, [eax+TClipboard.mutex] + stdcall MutexCreate, 0, ecx + stdcall MutexRelease, ecx + clc + +.finish: + pop ecx + return +endp + + + +proc __ClipboardFree, .pClipboard +begin + push eax ebx esi + + mov esi, [.pClipboard] + test esi, esi + jz .finish + + lea ebx, [esi+TClipboard.mutex] + stdcall WaitForMutex, ebx, 1000 + stdcall MutexDestroy, ebx + + stdcall FreeMem, esi + +.finish: + pop esi ebx eax + return +endp + + + +proc __ClipboardLock, .pClipboard +begin + push eax + mov eax, [.pClipboard] + lea eax, [eax+TClipboard.mutex] + stdcall WaitForMutex, eax, 1000 + pop eax + return +endp + + + +proc __ClipboardUnlock, .pClipboard +begin + push eax + mov eax, [.pClipboard] + lea eax, [eax+TClipboard.mutex] + stdcall MutexRelease, eax + pop eax + return +endp + + + +proc __ClipboardFromMem, .pMemory, .length, .type +begin + pushad + + mov ecx, [.length] + mov esi, [.pMemory] + + stdcall __ClipboardCreate, ecx + jc .finish + + mov ebx, [.type] + mov [eax+TClipboard.type], ebx + mov [eax+TClipboard.Length], ecx + + lea edi, [eax+TClipboard.data] + + mov ebx, ecx + shr ecx, 2 + rep movsd + + mov ecx, ebx + and ecx, 3 + rep movsb + + mov [esp+4*regEAX], eax + clc + +.finish: + popad + return +endp + + + +proc __StringFromClipboard, .pClipboard +begin + push esi + + xor eax, eax + mov esi, [.pClipboard] + test esi, esi + jz .error + + stdcall __ClipboardLock, esi + jc .error + + stdcall StrExtractMem, esi, TClipboard.data, [esi+TClipboard.Length] + stdcall __ClipboardUnlock, esi + + clc + pop esi + return + +.error: + stc + pop esi + return +endp + + + + + +proc __InitLinuxClipboard +.win __xCreateWindowReq +.ev __xfixSelectSelectionInputReq +.conv __xConvertSelectionReq +begin + pushad + + mov [.win.op], opCreateWindow + mov [.win.depth], 0 + mov [.win.length], sizeof.__xCreateWindowReq/4 + + stdcall xGetID, appConn, __idClipboardWindow + + push eax + + mov ebx, [appConn.rootID] + xor ecx, ecx + mov edx, [appConn.visualID] + + mov [.win.wid], eax + mov [.win.parent], ebx + mov [.win.x], cx + mov [.win.y], cx + mov [.win.border], cx + inc ecx + mov [.win.w], cx + mov [.win.h], cx + mov [.win.class], InputOnly + mov [.win.visid], edx + mov [.win.attr_mask], 0 + + mov [.ev.window], eax + + lea eax, [.win] + stdcall xSend, appConn, eax + + mov eax, [appConn.exFixes.OpCode] + mov edx, [atomClipboard] + + mov [.ev.op], al + mov [.ev.minor], opFixSelectSelectionInput + mov [.ev.length], sizeof.__xfixSelectSelectionInputReq/4 + mov [.ev.selection], edx + mov [.ev.event_mask], maskFixSetSelectionOwner + +; subscribe for XFIXES event SetSelectionOwner + lea eax, [.ev] + stdcall xSend, appConn, eax + + pop [__idClipboardWindow] + OutputValue "Clipboard window created: ", [__idClipboardWindow], 16, 8 + +; Send the first opConvertSelection request in order to start the clipboard engine. + + mov eax, [__idClipboardWindow] + mov ebx, [atomClipboard] + mov ecx, [atomStringUtf8] + + mov [.conv.op], opConvertSelection + mov [.conv.length], sizeof.__xConvertSelectionReq/4 + mov [.conv.requestor], eax + mov [.conv.selection], ebx + mov [.conv.target], ecx + mov [.conv.property], atomCUT_BUFFER0 ; reuse predefined atoms! + and [.conv.time], 0 + + lea eax, [.conv] + stdcall xSend, appConn, eax + + + popad + return +endp + + ADDED freshlib/gui/Linux/keycodes.inc Index: freshlib/gui/Linux/keycodes.inc ================================================================== --- /dev/null +++ freshlib/gui/Linux/keycodes.inc @@ -0,0 +1,110 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains scan code values for control keyboard keys. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +keyHomeNumpad = $ff95 +keyUpNumpad = $ff97 +keyPgUpNumpad = $ff9a +keyLeftNumpad = $ff96 +key5Numpad = $ff9d +keyRightNumpad = $ff98 +keyEndNumpad = $ff9c +keyDownNumpad = $ff99 +keyPgDnNumpad = $ff9b +keyInsNumpad = $ff9e +keyDelNumpad = $ff9f +keyEnterNumpad = $ff8d +keyPlusNumpad = $ffab +keyMinusNumpad = $ffad +keyAsteriskNumpad = $ffaa +keySlashNumpad = $ffaf + +keyNumLock = $ff7f +keyScrollLock = $ff14 +keyPause = $ff13 + + +keyLeft = $ff51 +keyRight = $ff53 +keyUp = $ff52 +keyDown = $ff54 + +keyInsert = $ff63 +keyDelete = $ffff +keyHome = $ff50 +keyEnd = $ff57 +keyPgUp = $ff55 +keyPgDown = $ff56 + +keyF1 = $ffbe +keyF2 = $ffbf +keyF3 = $ffc0 +keyF4 = $ffc1 + +keyF5 = $ffc2 +keyF6 = $ffc3 +keyF7 = $ffc4 +keyF8 = $ffc5 + +keyF9 = $ffc6 +keyF10 = $ffc7 +keyF11 = $ffc8 +keyF12 = $ffc9 + +keyCapsLock = $ffe5 +keyShiftLeft = $ffe1 +keyCtrlLeft = $ffe3 +;keyWndLeft = +;keyWndRight = +keyAltLeft = $ffe9 +keyAltRight = $ffea +keyPopupMenu = $ff67 +keyShiftRight = $ffe2 +keyCtrlRight = $ffe4 +keyBackSpace = $ff08 + +keyTab = $ff09 +keyLeftTab = $fe20 +keyEscape = $ff1b +keyEnter = $ff0d + +keySpace = ' ' + +keyA = 'a' +keyB = 'b' +keyC = 'c' +keyD = 'd' +keyE = 'e' +keyF = 'f' +keyG = 'g' +keyH = 'h' +keyI = 'i' +keyJ = 'j' +keyK = 'k' +keyL = 'l' +keyM = 'm' +keyN = 'n' +keyO = 'o' +keyP = 'p' +keyQ = 'q' +keyR = 'r' +keyS = 's' +keyT = 't' +keyU = 'u' +keyV = 'v' +keyW = 'w' +keyX = 'x' +keyY = 'y' +keyZ = 'z' + + ADDED freshlib/gui/Linux/mouse.asm Index: freshlib/gui/Linux/mouse.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/mouse.asm @@ -0,0 +1,319 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Provides unified access to standard mouse cursors. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +uses xcursor + +iglobal + if used _Xcursors + _Xcursors db 68, 152, 34, 108, 116, 40, 40, 150, 58, 52, 86 ; X standard cursor font + end if + + getfile _Xcursors2, "%lib%/gui/Linux/__images/cursors.png" + _XcursorsXY db 1, 1 ; mcArrow + db 3, 8 ; mcText + db 11,11 ; mcCross + db 13,13 ; mcSizeH + db 13,13 ; mcSizeV + db 13,13 ; mcSizeUL_LR + db 13,13 ; mcSizeLL_UR + db 7, 11 ; mcWait + db 1, 1 ; mcArrowWait + db 6, 3 ; mcHand + db 12, 3 ; mcDragHand + db 1, 30 ; mcPencil +endg + + +uglobal + if used StockCursors + StockCursors rd mcCount + end if +endg + + +proc InitMouseCursors +.fnt __xOpenFontReq + rd 2 + +.cc __xCreateGlyphCursorReq +begin + push eax ebx ecx edx + + stdcall xGetID, appConn, objXFont + mov ecx, eax + + mov [.fnt.op], opOpenFont + mov [.fnt.length], sizeof.__xOpenFontReq/4 + 2 + mov [.fnt.fontid], ecx + mov [.fnt.namelen], 6 ;'cursor' + mov dword [.fnt.name], 'curs' + mov dword [.fnt.name+4], 'or' + lea eax, [.fnt] + stdcall xSend, appConn, eax + + xor eax, eax + dec eax + mov [.cc.op], opCreateGlyphCursor + mov [.cc.length], sizeof.__xCreateGlyphCursorReq/4 + mov [.cc.cursorid], eax + mov [.cc.src_font], ecx + mov [.cc.mask_font], ecx + mov [.cc.fg_red], ax + mov [.cc.fg_green], ax + mov [.cc.fg_blue], ax + inc eax + mov [.cc.bg_red], ax + mov [.cc.bg_green], ax + mov [.cc.bg_blue], ax + + mov ebx, mcCount-1 + +.create_cursor_loop: + movzx eax, [_Xcursors+ebx] + mov [.cc.src_char], ax + inc ax + mov [.cc.mask_char], ax + + stdcall xGetID, appConn, objCursor + mov [StockCursors+4*ebx], eax + mov [.cc.cursorid], eax + + lea eax, [.cc] + stdcall xSend, appConn, eax + + dec ebx + jns .create_cursor_loop + +; close the font. + mov [.fnt.op], opCloseFont + mov [.fnt.length], sizeof.__xFreeCursorReq/4 + + lea eax, [.fnt] + stdcall xSend, appConn, eax + stdcall xFreeID, appConn, ecx + + pop edx ecx ebx eax + return +endp + + +proc InitMouseCursors2 + +.cc __xCreateCursorReq +.px __xCreatePixmapReq +.pxm __xCreatePixmapReq +.fr __xFreePixmapReq +.frm __xFreePixmapReq + +.img dd ? +begin + push eax ebx ecx edx + + stdcall CreateImagePNG, _Xcursors2, _Xcursors2.size + mov [.img], eax + +; create pixmaps + + mov [.px.op], opCreatePixmap + mov [.pxm.op], opCreatePixmap + mov [.fr.op], opFreePixmap + mov [.frm.op], opFreePixmap + + mov [.px.depth], 1 + mov [.pxm.depth], 1 + + mov [.px.length], sizeof.__xCreatePixmapReq/4 + mov [.pxm.length], sizeof.__xCreatePixmapReq/4 + mov [.fr.length], sizeof.__xFreePixmapReq/4 + mov [.frm.length], sizeof.__xFreePixmapReq/4 + + stdcall xGetID, appConn, objPixmap + + mov [.px.pid], eax + mov [.fr.pid], eax + mov [.cc.source], eax + + stdcall xGetID, appConn, objPixmap + + mov [.pxm.pid], eax + mov [.frm.pid], eax + mov [.cc.mask], eax + + mov edx, [appConn.rootID] + mov [.px.drawable], edx + mov [.pxm.drawable], edx + + mov [.px.width], 32 + mov [.px.height], 32 + mov [.pxm.width], 32 + mov [.pxm.height], 32 + + lea eax, [.px] + stdcall xSend, appConn, eax + + lea eax, [.pxm] + stdcall xSend, appConn, eax + + xor edi, edi + xor ebx, ebx + +.loop: +; put the image on the pixmaps. + + stdcall __xPutImageToBitmap, [.px.pid], [.img], edi, 0, 0, 0, 32, 32 + add edi, 32 + stdcall __xPutImageToBitmap, [.pxm.pid], [.img], edi, 0, 0, 0, 32, 32 + add edi, 32 + +; create the cursor from the pixmap. + stdcall xGetID, appConn, objCursor + + mov [.cc.op], opCreateCursor + mov [.cc.length], sizeof.__xCreateCursorReq/4 + + mov [.cc.cursorid], eax + mov [StockCursors+4*ebx], eax + + mov [.cc.fg_red], $ffff + mov [.cc.fg_green], $ffff + mov [.cc.fg_blue], $ffff + mov [.cc.bg_red], $0000 + mov [.cc.bg_green], $0000 + mov [.cc.bg_blue], $0000 + + movzx eax, [_XcursorsXY+2*ebx] + movzx edx, [_XcursorsXY+2*ebx+1] + + mov [.cc.x], ax + mov [.cc.y], dx + + lea eax, [.cc] + stdcall xSend, appConn, eax + + inc ebx + cmp ebx, mcCount + jne .loop + +; free the image + + stdcall DestroyImage, [.img] + + +; free the pixmaps + lea eax, [.fr] + stdcall xSend, appConn, eax + + lea eax, [.frm] + stdcall xSend, appConn, eax + + stdcall xFreeID, appConn, [.fr.pid] + stdcall xFreeID, appConn, [.frm.pid] + + pop edx ecx ebx eax + return +endp + + + + + + +proc FreeMouseCursors +.fc __xFreeCursorReq +begin + mov ebx, mcCount-1 + + mov [.fc.op], opFreeCursor + mov [.fc.length], sizeof.__xFreeCursorReq/4 + lea esi, [.fc] + +.free_cursor_loop: + mov eax, [StockCursors+4*ebx] + mov [.fc.cursor], eax + + stdcall xFreeID, appConn, eax + stdcall xSend, appConn, esi + + dec ebx + jns .free_cursor_loop + +DebugMsg "Mouse cursors destroyed." + return +endp + + + +body SetMouseCursor ;, .hWindow, .hCursor +.attr __xChangeWindowAttributesReq + dd ? +begin + push eax edx + + mov eax, [.hWindow] + mov edx, [.hCursor] + + mov [.attr.op], opChangeWindowAttributes + mov [.attr.length], sizeof.__xChangeWindowAttributesReq/4 + 1 + mov [.attr.window], eax + mov [.attr.mask], maskCursor + mov [.attr.values], edx + + lea eax, [.attr] + stdcall xSend, appConn, eax + + pop edx eax + return +endp + + + +body GetStockCursor ;, .index +begin + mov eax, [.index] + cmp eax, mcCount + jb @f + xor eax, eax +@@: + mov eax, [StockCursors+4*eax] + return +endp + + + +body __MouseCapture ; .hwnd +begin + return +endp + + + +body ZeroMouseMove +.wrp __xWarpPointerReq +begin + push eax ecx edi + + mov ecx, sizeof.__xWarpPointerReq/4 + lea edi, [.wrp] + xor eax, eax + rep stosd + + mov [.wrp.op], opWarpPointer + mov [.wrp.length], sizeof.__xWarpPointerReq/4 + + lea edi, [.wrp] + stdcall xSend, appConn, edi + + pop edi ecx eax + return +endp ADDED freshlib/gui/Linux/windows.asm Index: freshlib/gui/Linux/windows.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/windows.asm @@ -0,0 +1,805 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Window management OS interface functions. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +include "xraw.asm" + +struct __xCreateFreshWindowReq + . __xCreateWindowReq + + .BrPixel dd ? ; border color + .ovr_redir dd ? ; override redirect + .event_mask dd ? ; event mask + .colormap dd ? ; color map ID + .cursor dd ? +ends + + +body _CreateWindow +.create __xCreateFreshWindowReq +.map __xMapWindowReq +.cnt __xCreateCounterReq +.gc __xCreateContextReq +.change __xChangePropertyReq +.prop rd 16 ; MUST be immediately after .change +begin + pushad + + mov esi, [.pWindow] +; OutputValue "_CreateWindow for TWindow: ", esi, 16, 8 + +; create the window + stdcall xGetID, appConn, esi + mov [.create.wid], eax + mov [.map.wid], eax + mov [.change.wid], eax + mov [.gc.drawable], eax + mov [esp+4*regEAX], eax ; return value + + mov [.create.op], opCreateWindow + mov [.map.op], opMapWindow + mov [.map.length], sizeof.__xMapWindowReq/4 + + + mov eax, [appConn.colormap] + mov ecx, [appConn.visualID] + mov edx, [appConn.rootID] + + mov [.create.colormap], eax + mov [.create.visid], ecx + mov [.create.parent], edx + + mov [.create.attr_mask], maskBorderPixel or maskOverrideRedirect or maskEventMask or maskColorMap or maskCursor + mov [.create.length], sizeof.__xCreateFreshWindowReq/4 + +; border + + mov ecx, [esi+TWindow._border] + test ecx, ecx ; borderNone = 0 + setz al + movzx eax, al + mov [.create.ovr_redir], eax + + and ecx, $3 + mov eax, [.types+4*ecx] + mov eax, [eax] + mov [.prop], eax + + mov [.create.event_mask], maskExposure or maskFocusChange or \ + maskKeyPress or maskKeyRelease or \ + maskButtonPress or maskButtonRelease or \ + maskEnterWindow or maskLeaveWindow or \ + maskPointerMotion or maskStructureNotify or \ + maskPropertyChange + + mov eax, [GUI.clDialogBk] + mov [.create.BrPixel], eax + + mov eax, [esi+TWindow._x] + mov ebx, [esi+TWindow._y] + mov ecx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + + mov [.create.x], ax + mov [.create.y], bx + mov [.create.w], cx + mov [.create.h], dx + + stdcall GetStockCursor, [esi+TWindow._cursor] + mov [.create.cursor], eax + + mov [.create.depth], $20 + mov [.create.border], 0 + mov [.create.class], InputOutput + + lea eax, [.create] + stdcall xSend, appConn, eax + +; Set _NET_WM_WINDOW_TYPE + mov [.change.op], opChangeProperty + mov [.change.mode], PropModeReplace + mov [.change.length], 7 + + mov eax, [atomWindowType] ; _NET_WM_WINDOW_TYPE + mov [.change.prop], eax + mov [.change.type], atomATOM + mov [.change.format], 32 + mov [.change.datalen], 1 + + lea eax, [.change] + stdcall xSend, appConn, eax + +; Set WM_NORMAL_HINTS + +; mov [.change.prop], atomWM_NORMAL_HINTS +; mov [.change.type], atomWM_SIZE_HINTS +; mov [.change.length], 3 + 6 +; mov [.change.datalen], 3 +; mov [.prop], 4 ; PProgram - program specified position +; mov eax, [esi+TWindow._x] +; mov ecx, [esi+TWindow._y] +; mov [.prop+4], eax +; mov [.prop+8], ecx +; +; lea eax, [.change] +; stdcall xSend, appConn, eax + +; Set window protocols. + mov eax, [atomWMProtocols] + mov [.change.prop], eax + mov [.change.type], atomATOM + mov [.change.length], 6 + wmProtocols.count + mov [.change.datalen], wmProtocols.count + + stdcall xReqStart, appConn + lea eax, [.change] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + stdcall xReqSend, appConn, wmProtocols, 4*wmProtocols.count + stdcall xReqEnd, appConn + +; Set window caption. + + mov [.change.prop], atomWM_NAME + mov [.change.type], atomSTRING + mov [.change.format], 8 + + mov eax, [esi+TWindow._caption] + test eax, eax + jz .caption_ok + + stdcall StrLen, eax + test eax, eax + jz .caption_ok + + lea ecx, [eax+3] + shr ecx, 2 + mov [.change.datalen], eax ; in bytes + lea eax, [ecx+6] + mov [.change.length], ax + + stdcall xReqStart, appConn + + lea eax, [.change] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + + shl ecx, 2 + + stdcall StrPtr, [esi+TWindow._caption] + stdcall xReqSend, appConn, eax, ecx + stdcall xReqEnd, appConn + +.caption_ok: +; set window class + + cmp [applicationClass], 0 + je .class_ok + + mov [.change.mode], PropModeAppend + mov [.change.prop], atomWM_CLASS + + stdcall StrLen, [applicationClass] + inc eax + lea ecx, [eax+3] + shr ecx, 2 + mov [.change.datalen], eax ; in bytes + lea eax, [ecx+6] + mov [.change.length], ax + + stdcall xReqStart, appConn + + lea eax, [.change] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + + shl ecx, 2 + jz .class_ok1 + + stdcall StrPtr, [applicationClass] + stdcall xReqSend, appConn, eax, ecx + +.class_ok1: + stdcall xReqEnd, appConn + + stdcall xReqStart, appConn + + lea eax, [.change] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + + stdcall StrPtr, [applicationClass] + stdcall xReqSend, appConn, eax, ecx + + stdcall xReqEnd, appConn + +.class_ok: + +; Set window icons + + mov edx, [esi+TWindow._winicons] + test edx, edx + jz .icons_ok + + mov ecx, [edx+TArray.count] + +.loop: + dec ecx + js .icons_ok + + stdcall _AddWindowIcon, [.change.wid], [edx+TArray.array + 4*ecx] + jmp .loop + +.icons_ok: + +; create graphic context + + mov [.gc.op], opCreateGC + mov [.gc.length], sizeof.__xCreateContextReq/4 + + stdcall xGetID, appConn, objContext + mov [.gc.gcID], eax + mov [esi+TWindow.context], eax + mov [.gc.value_mask], 0 + +; DebugMsg "Graphic context is about to be created." + + lea eax, [.gc] + stdcall xSend, appConn, eax + +; DebugMsg "Graphic context created." + +; create sync counter + mov eax, [appConn.exSync.OpCode] + mov [.cnt.op], al + mov [.cnt.minor], opCreateCounter + mov [.cnt.length], sizeof.__xCreateCounterReq/4 + + stdcall xGetID, appConn, objCounter + mov [.cnt.counterID], eax + mov [esi+TWindow.sync_counter], eax + mov [.prop], eax + + xor eax, eax + mov [.cnt.valueHi], eax + mov [.cnt.valueLo], eax + + lea eax, [.cnt] + stdcall xSend, appConn, eax + +; set property _NET_WM_SYNC_REQUEST_COUNTER + + mov eax, [atomWMSyncCounter] + mov [.change.mode], PropModeReplace + mov [.change.prop], eax + mov [.change.type], atomCARDINAL + mov [.change.format], 32 + mov [.change.datalen], 1 + mov [.change.length], 7 + + lea eax, [.change] + stdcall xSend, appConn, eax + +; Set transient-for if the owner is set. + + mov ebx, [esi+TWindow.__owner] + test ebx, ebx + jz .no_owner + + istype ebx, TWindow + jne .no_owner + + mov eax, [ebx+TWindow.handle] + test eax, eax + jz .no_owner + + mov [.prop], eax + mov [.change.prop], atomWM_TRANSIENT_FOR + mov [.change.type], atomWINDOW + mov [.change.length], 7 + mov [.change.datalen], 1 + + lea eax, [.change] + stdcall xSend, appConn, eax + +.no_owner: + +; map the window at the end. + + lea eax, [.map] + stdcall xSend, appConn, eax + + popad + return + + +.types dd atomWindowTypePopupMenu, atomWindowTypeNormal, atomWindowTypeDialog, atomWindowTypeToolbar + + +endp + +;_________________________________________________________________________________________ + +body _MoveWindow +.conf __xConfigureWindowReq +.params rd 4 +begin + pushad + mov esi, [.pWindow] + + mov eax, [esi+TWindow.handle] + test eax, eax + jz .error + + mov [.conf.op], opConfigureRequest + mov [.conf.length], 3+2 + mov [.conf.window], eax + mov [.conf.value_mask], cwmX or cwmY + + mov ecx, [esi+TWindow._x] + mov edx, [esi+TWindow._y] + mov [.conf.params], ecx + mov [.conf.params+4], edx + + lea eax, [.conf] + stdcall xSend, appConn, eax + + clc + popad + return + +.error: + stc + popad + return +endp + + +body _ResizeWindow +.conf __xConfigureWindowReq +.params rd 4 +begin + pushad + mov esi, [.pWindow] + + mov eax, [esi+TWindow.handle] + test eax, eax + jz .error + + mov [.conf.op], opConfigureRequest + mov [.conf.length], 3+2 + mov [.conf.window], eax + mov [.conf.value_mask], cwmWidth or cwmHeight + + mov ecx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + mov [.conf.params], ecx + mov [.conf.params+4], edx + + lea eax, [.conf] + stdcall xSend, appConn, eax + + clc + popad + return + +.error: + stc + popad + return +endp + + +;_________________________________________________________________________________________ + + + +body _DestroyWindow +.req __xDestroyWindowReq +.gc __xFreeContextReq +.cnt __xDestroyCounterReq +begin + push eax ecx edx + + mov [.req.op], opDestroyWindow + mov [.req.length], 2 + + mov edx, [.hwnd] + mov [.req.wid], edx + + lea eax, [.req] + stdcall xSend, appConn, eax + + stdcall xFreeID, appConn, edx ; returns the previous object pointer. + mov edx, eax + + xor eax, eax + xchg eax, [edx+TWindow.sync_counter] + test eax, eax + jz .counter_ok + + mov [.cnt.counterID], eax + stdcall xFreeID, appConn, eax + + mov eax, [appConn.exSync.OpCode] + mov [.cnt.op], al + mov [.cnt.minor], opDestroyCounter + mov [.cnt.length], sizeof.__xDestroyCounterReq/4 + + lea eax, [.cnt] + stdcall xSend, appConn, eax + +.counter_ok: + xor eax, eax + xchg eax, [edx+TWindow.context] + test eax, eax + jz .finish + + mov [.gc.op], opFreeGC + mov [.gc.length], sizeof.__xFreeContextReq/4 + mov [.gc.gcID], eax + + stdcall xFreeID, appConn, eax + + lea eax, [.gc] + stdcall xSend, appConn, eax + +.finish: + pop edx ecx eax + return +endp + + + +;_________________________________________________________________________________________ + + +;body _RefreshWindowRect +;.exp __xSendEventReq +;.ev evExpose +;begin +; push eax ecx edx +; +; mov eax, [.x] +; mov ecx, [.y] +; mov [.ev.x], ax +; mov [.ev.y], cx +; +; mov [.ev.event], Expose +; +; mov eax, [.width] +; mov ecx, [.height] +; mov [.ev.width], ax +; mov [.ev.height], cx +; +; mov eax, [.hwnd] +; mov [.ev.window], eax +; mov [.exp.dest], eax +; +; xor eax, eax +; mov [.ev.count], ax +; +; mov [.exp.op], opSendEvent +; mov [.exp.propagate], 0 +; mov [.exp.length], (sizeof.__xSendEventReq + sizeof.evExpose)/4 +; mov [.exp.event_mask], 0 +; +; lea ecx, [.exp] +; stdcall xSend, appConn, ecx +; +; pop edx ecx eax +; return +;endp + + + +body _RefreshWindowRect +.clr __xClearAreaReq +begin + push eax ecx edx + + mov eax, [.x] + mov ecx, [.y] + mov [.clr.x], ax + mov [.clr.y], cx + + mov [.clr.op], opClearArea + mov [.clr.exposures], TRUE + mov [.clr.length], sizeof.__xClearAreaReq/4 + + mov eax, [.width] + mov ecx, [.height] + mov [.clr.width], ax + mov [.clr.height], cx + + mov eax, [.hwnd] + mov [.clr.window], eax + + lea ecx, [.clr] + stdcall xSend, appConn, ecx + + pop edx ecx eax + return +endp + + +;_________________________________________________________________________________________ + + +body _SetWindowTextUtf8 +.prop __xChangePropertyReq +begin + push eax ebx ecx edx + + mov edx, [.hString] + test edx, edx + jz .finish + + mov eax, [.hwnd] + mov ecx, [atomWindowName] + mov ebx, [atomStringUtf8] + + mov [.prop.op], opChangeProperty + mov [.prop.mode], PropModeReplace + mov [.prop.length], sizeof.__xChangePropertyReq/4 ; the name length addred below. + mov [.prop.wid], eax + mov [.prop.prop], ecx + mov [.prop.type], ebx + mov [.prop.format], 8 + + stdcall StrLen, edx + mov [.prop.datalen], eax + add eax, 3 + shr eax, 2 ; in dwords + add [.prop.length], ax + lea ecx, [4*eax] + + stdcall xReqStart, appConn + lea eax, [.prop] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + + stdcall StrPtr, edx + stdcall xReqSend, appConn, eax, ecx + + stdcall xReqEnd, appConn + +.finish: + pop edx ecx ebx eax + return +endp + +;_________________________________________________________________________________________ + + +body _SetModalTowards +.prop __xChangePropertyReq + rd 2 +begin + push eax ecx edx + + mov [.prop.op], opChangeProperty + mov [.prop.mode], PropModeReplace + mov [.prop.length], sizeof.__xChangePropertyReq/4 + 1 + + mov eax, [.hwnd] + mov edx, [.hwndParent] + mov [.prop.wid], eax + mov [.prop.prop], atomWM_TRANSIENT_FOR + mov [.prop.type], atomWINDOW + mov [.prop.format], 32 + mov [.prop.datalen], 1 + mov [.prop.data], edx + + lea ebx, [.prop] + stdcall xSend, appConn, ebx + +; With this property the modal windows are displayed as a separate window +; in the window manager which is not very good +; + mov [.prop.mode], PropModeAppend + mov eax, [atomState] + mov ecx, [atomStateModal] + mov [.prop.prop], eax + mov [.prop.type], atomATOM + mov [.prop.data], ecx + + stdcall xSend, appConn, ebx + + mov ecx, [atomStateSkipTaskbar] + mov [.prop.data], ecx + + stdcall xSend, appConn, ebx + + mov ecx, [atomStateSkipPager] + mov [.prop.data], ecx + + stdcall xSend, appConn, ebx + + pop edx ecx eax + return +endp + + +;_________________________________________________________________________________________ + + + +body _FinalizeModal +begin + return +endp + + +;_________________________________________________________________________________________ + +; does not accepts 0 for .hwnd + +body _SetFocus + .focus __xSetInputFocus +begin + push eax + + mov eax, [.hwnd] + test eax, eax + jz .finish + + mov [.focus.op], opSetInputFocus + mov [.focus.revert_to], 2 ; 0 = None, 1 = PointerRoot, 2 = Parent + mov [.focus.length], 3 + mov [.focus.wid], eax + mov [.focus.timestamp], 0 + + lea eax, [.focus] + stdcall xSend, appConn, eax + +.finish: + pop eax + return +endp + + +;_________________________________________________________________________________________ + + +body _SetWindowState +.req __xSendEventReq +.msg evClientMessage +begin + pushad + + mov esi, [.pWindow] + + mov [.req.op], opSendEvent + mov [.req.propagate], 0 + mov [.req.length], (sizeof.__xSendEventReq + sizeof.evClientMessage)/4 + mov eax, [appConn.rootID] + mov [.req.dest], eax + mov [.req.event_mask], maskSubstructureNotify + + mov eax, [esi+TWindow.handle] + mov edx, [atomState] + + test eax, eax + jz .error + + mov [.msg.event], ClientMessage + mov [.msg.format], 32 + mov [.msg.seq], 0 + mov [.msg.window], eax + mov [.msg.type], edx + + mov eax, [atomStateMaximizedVert] + mov ebx, [atomStateMaximizedHorz] + xor edx, edx + xor ecx, ecx + inc ecx ; 1 == add state + test [esi+TWindow._window_state], wstMaximizedVert or wstMaximizedHorz + cmovz ecx, edx ; 0 == remove + + mov [.msg.data], ecx ; operation add or remove + mov [.msg.data+4], eax + mov [.msg.data+8], ebx + mov [.msg.data+12], edx + mov [.msg.data+16], edx + + lea eax, [.req] + stdcall xSend, appConn, eax + + mov eax, [atomStateHidden] + xor ecx, ecx + inc ecx ; 1 == add state + test [esi+TWindow._window_state], wstMinimized + cmovz ecx, edx ; 0 == remove + + mov [.msg.data], ecx ; operation add or remove + mov [.msg.data+4], eax + mov [.msg.data+8], edx + + lea eax, [.req] + stdcall xSend, appConn, eax + +.finish: + clc + popad + return + +.error: + stc + popad + return + +endp + + + + +body _GetScreenSize +begin + mov eax, [appConn.size_x_px] + mov ebx, [appConn.size_y_px] + return +endp + + + + + + + +;_________________________________________________________________________________________ + +proc _AddWindowIcon, .wID, .pImage +.change __xChangePropertyReq +begin + pushad + + mov eax, [.wID] + mov ebx, [atomIcon] + mov esi, [.pImage] + + mov [.change.op], opChangeProperty + mov [.change.mode], PropModePrepend + mov [.change.wid], eax + mov [.change.prop], ebx + mov [.change.type], atomCARDINAL + mov [.change.format], 32 + + mov ecx, [esi+TImage.width] + imul ecx, [esi+TImage.height] + add ecx, 2 ; width and height + + mov [.change.datalen], ecx ; in dwords. + + add ecx, 6 + mov [.change.length], cx + + stdcall xReqStart, appConn + + lea eax, [.change] + stdcall xReqSend, appConn, eax, sizeof.__xChangePropertyReq + + lea eax, [esi+TImage.width] + stdcall xReqSend, appConn, eax, 4 ; width + + lea eax, [esi+TImage.height] + stdcall xReqSend, appConn, eax, 4 ; width + + mov ecx, [esi+TImage.width] + imul ecx, [esi+TImage.height] + shl ecx, 2 + stdcall xReqSend, appConn, [esi+TImage.pPixels], ecx + + stdcall xReqEnd, appConn + + popad + return +endp + + + ADDED freshlib/gui/Linux/xraw.asm Index: freshlib/gui/Linux/xraw.asm ================================================================== --- /dev/null +++ freshlib/gui/Linux/xraw.asm @@ -0,0 +1,1573 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Main procedure of GUI application library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Organize the main message/event loop needed by every GUI engine. +;_________________________________________________________________________________________ + +module "xraw library" + + +xPath text "/tmp/.X11-unix/X" +xBasePort = 6000 + + +struct xConnection + .socket dd ? + .host dd ? + .disp dd ? + .fRemote dd ? + + .id_base dd ? + .id_mask dd ? + .min_keycode dd ? + .max_keycode dd ? + .screenID dd ? + .rootID dd ? + .visualID dd ? + .colormap dd ? + .id_list dd ? + + .size_x_px dd ? + .size_y_px dd ? + + .wait_timeout dd ? + .Sequence dd ? + + .pFCallback dd ? + .pLCallback dd ? + + .exBig xExtension + .exSync xExtension + .exShm xExtension + .exKbd xExtension + .exFixes xExtension + + .mutex_rd TMutex + .mutex_wr TMutex + + .pKeymap dd ? ; pointer to last __xXkbGetMapRep replay + keycode index ahead. +ends + + +struct xCallback + .p_next dd ? + .sequence dd ? + .proc dd ? + .lparam dd ? +ends + + +iglobal + qeBigRequests xQueryExtension "BIG-REQUESTS" + qeSync xQueryExtension "SYNC" + qeMitShm xQueryExtension "MIT-SHM" + qeKeyboard xQueryExtension "XKEYBOARD" + qeFixes xQueryExtension "XFIXES" +endg + + +WAIT_FOR_XREQUEST_TIMEOUT = 100 ; 100ms for now. + + +interface xCallbackProc, .pReply, .lparam + +; Sends fully prepared request to the server. + +proc xSend, .pConnection, .pRequest +begin + pushad + + mov edi, [.pConnection] + mov esi, [.pRequest] + + stdcall xReqStart, edi + + movzx ecx, [esi+xRequest.length] + test ecx, ecx + cmovz ecx, [esi+xBigRequest.biglen] + lea ecx, [4*ecx] + +.send_loop: + stdcall SocketSend, [edi+xConnection.socket], esi, ecx, 0 + jc .finish ; Some error processing? + + add esi, eax + sub ecx, eax + jnz .send_loop + + +.finish: + stdcall xReqEnd, edi + popad + return +endp + + +proc xSendWithCallback, .pConnection, .pRequest, .ReplyCallback, .lparam +begin + pushad + + mov edi, [.pConnection] + mov esi, [.pRequest] + + stdcall xReqStart, edi + + movzx ecx, [esi+xRequest.length] + test ecx, ecx + cmovz ecx, [esi+xBigRequest.biglen] + lea ecx, [4*ecx] + +.send_loop: + stdcall SocketSend, [edi+xConnection.socket], esi, ecx, 0 + jc .finish ; Some error processing? + + add esi, eax + sub ecx, eax + jnz .send_loop + + +.finish: + stdcall xReqEndCallback, edi, [.ReplyCallback], [.lparam] + popad + return +endp + + + +; Receives one reply, error ot event from the server. + +proc xRecv, .pConnection, .fBlocking +begin + pushad + mov esi, [.pConnection] + + lea eax, [esi+xConnection.mutex_rd] + stdcall WaitForMutex, eax, [esi+xConnection.wait_timeout] + jc .timeout + + stdcall GetMem, sizeof.xAnyReply + jc .error_mem + mov edi, eax + + mov ebx, edi + mov ecx, sizeof.xResponse + + mov eax, MSG_WAITALL + + cmp [.fBlocking], 0 + jne .read_loop + + mov eax, MSG_DONTWAIT + +.read_loop: + stdcall SocketReceive, [esi+xConnection.socket], ebx, ecx, eax + jc .error + + add ebx, eax + sub ecx, eax + mov eax, MSG_WAITALL ; if the read is started, wait for the whole response. + jnz .read_loop + + cmp byte [edi+xResponse.code], rspReply + jne .all_received + +; process a reply here + + mov ecx, [edi+xAnyReply.length] + shl ecx, 2 + jz .all_received + + lea eax, [ecx+sizeof.xResponse] + stdcall ResizeMem, edi, eax + mov edi, eax + + lea ebx, [edi+sizeof.xResponse] + +.read_data_loop: + stdcall SocketReceive, [esi+xConnection.socket], ebx, ecx, MSG_WAITALL + jc .error + + add ebx, eax + sub ecx, eax + jnz .read_data_loop + +.all_received: + clc + +.finish: + mov [esp+4*regEAX], edi + + lea eax, [esi+xConnection.mutex_rd] + stdcall MutexRelease, eax + + popad + return + +.error: + stdcall FreeMem, edi + +.error_mem: + xor edi, edi + stc + jmp .finish + +.timeout: + xor edi, edi + clc + mov [esp+4*regEAX], edi + popad + return +endp + + + +; Starts a request that can be sent by several writes to the socket. + +proc xReqStart, .pConnection +begin + push eax + mov eax, [.pConnection] + + push [eax+xConnection.wait_timeout] + lea eax, [eax+xConnection.mutex_wr] + stdcall WaitForMutex, eax ; timeout from the stack. + + pop eax + return +endp + + +; Sends a part of the request to the socket. The full request can be sent by several calls to xReqSend + +proc xReqSend, .pConnection, .pRequest, .length +begin + push eax + mov eax, [.pConnection] + stdcall SocketSend, [eax+xConnection.socket], [.pRequest], [.length], 0 + pop eax + return +endp + + +; Ends the request without callback. +proc xReqEnd, .pConnection +begin + push esi eax + + mov esi, [.pConnection] + + xor eax, eax + inc eax + lock xadd [esi+xConnection.Sequence], eax + + lea eax, [esi+xConnection.mutex_wr] + stdcall MutexRelease, eax + + pop eax esi + return +endp + + + +; Finalizes a request. Increments the sequence number. Unlocks the write socket, optionally registers a callback for the reply (if any). + +proc xReqEndCallback, .pConnection, .ReplyCallback, .lparam +begin + pushad + mov esi, [.pConnection] + + xor ebx, ebx + inc ebx + lock xadd [esi+xConnection.Sequence], ebx + inc ebx ; the sequence number of the current request. + + cmp [.ReplyCallback], 0 + je .callback_ok + + stdcall GetMem, sizeof.xCallback + mov edi, eax + +; fill all the fields of the xCallback record. + xor eax, eax + mov ecx, [.ReplyCallback] + mov edx, [.lparam] + + mov [edi+xCallback.p_next], eax + mov [edi+xCallback.sequence], ebx + mov [edi+xCallback.proc], ecx + mov [edi+xCallback.lparam], edx + +; now atomically replace the last element in the queue. + mov eax, edi + xchg [esi+xConnection.pLCallback], eax ; xConnection.pLCallback always contains valid pointer. + +; if there is a previous last element, try to follow it to the end and attach the record as next. +; although, it is possible that in this moment, there are already other elements in the chain, because of other threads. +; i.e. in this point the [edi+xCallback.p_next] is possibly already <> 0 +.loop_last: + mov ecx, eax + xor eax, eax + lock cmpxchg [ecx+xCallback.p_next], edi + jne .loop_last + +.callback_ok: + lea eax, [esi+xConnection.mutex_wr] + stdcall MutexRelease, eax + + popad + return +endp + + + + + +proc xOpenConnection, .pConnection, .depth +.disp dd ? +.name dd ? +.data dd ? +.req __xBeginReq +.resp __xConnectServerInfo +.pmore dd ? +.req_map __xCreateColorMapReq +.ext_resp xReply +begin + pushad + + xor eax, eax + mov [.disp], eax + mov [.name], eax + mov [.data], eax + mov [.pmore], eax + + mov edi, [.pConnection] + + lea eax, [edi+xConnection.mutex_rd] + stdcall MutexCreate, 0, eax + + lea eax, [edi+xConnection.mutex_wr] + stdcall MutexCreate, 0, eax + + mov [edi+xConnection.wait_timeout], WAIT_FOR_XREQUEST_TIMEOUT + + lea eax, [edi+xConnection.pFCallback] ; this is a little big tricky + mov [edi+xConnection.pLCallback], eax ; the .pFCallback field will be threated as a xCallback element on adding new elements. + + + stdcall __xConnectToServer, edi + jc .sock_closed + + OutputValue "Server connected! Socket: ", [edi+xConnection.socket], 10, -1 + + and [edi + xConnection.Sequence], 0 + + stdcall __xSearchForAuth, [edi+xConnection.disp] + mov [.name], eax + mov [.data], edx + +if defined options.DebugMode & options.DebugMode + test eax, eax + jz @f + + stdcall FileWriteString, [STDERR], txt "Name string: " + stdcall FileWriteString, [STDERR], [.name] + stdcall FileWriteString, [STDERR], <txt 13, 10> + + stdcall FileWriteString, [STDERR], <txt "Data string: ", 13, 10> + stdcall StrPtr, [.data] + stdcall OutputMemoryByte, eax, [eax+string.len] + +@@: +end if + + mov [.req.byte_order], 'l' + mov [.req.ver_major], 11 + mov [.req.ver_minor], 0 + + mov ecx, [.name] + test ecx, ecx + jz .cookie_ok + + stdcall StrLen, ecx + mov ecx, eax + +.cookie_ok: + mov edx, [.data] + test edx, edx + jz .data_ok + + stdcall StrLen, edx + mov edx, eax + +.data_ok: + mov [.req.auth_proto_len], cx + mov [.req.auth_data_len], dx + + lea eax, [.req] + stdcall SocketSend, [edi+xConnection.socket], eax, sizeof.__xBeginReq, 0 + jc .error_close_sock + + test ecx, ecx + jz .cookie_sent + + add ecx, 3 + and ecx, $fffffffc + stdcall StrPtr, [.name] + + stdcall SocketSend, [edi+xConnection.socket], eax, ecx, 0 ; the string always can be aligned to dword + jc .error_close_sock + +.cookie_sent: + test edx, edx + jz .data_sent + + add edx, 3 + and edx, $fffffffc + stdcall StrPtr, [.data] + + stdcall SocketSend, [edi+xConnection.socket], eax, edx, 0 + jc .error_close_sock + +.data_sent: + DebugMsg "Start request sent!" + + lea eax, [.resp] + stdcall SocketReceive, [edi+xConnection.socket], eax, sizeof.__xConnectServerInfo, MSG_WAITALL + jc .error_close_sock + + cmp eax, sizeof.__xConnectServerInfo + jb .error_close_sock + + cmp [.resp.resp], 1 + jne .connection_failed + + DebugMsg "Response OK!" + + movzx ecx, [.resp.data_length] + shl ecx, 2 + + stdcall GetMem, ecx + mov [.pmore], eax + mov esi, eax + + stdcall SocketReceive, [edi+xConnection.socket], esi, ecx, MSG_WAITALL + jc .error_close_sock + + cmp eax, ecx + jne .error_close_sock + + DebugMsg "Additional info received!" + + mov eax, [esi+__xConnectAdditionalInfo.res_id_base] + mov edx, [esi+__xConnectAdditionalInfo.res_id_mask] + mov [edi+xConnection.id_base], eax + mov [edi+xConnection.id_mask], edx + + movzx eax, [esi+__xConnectAdditionalInfo.min_keycode] + movzx edx, [esi+__xConnectAdditionalInfo.max_keycode] + mov [edi+xConnection.min_keycode], eax + mov [edi+xConnection.max_keycode], edx + + lea edx, [esi+__xConnectAdditionalInfo.stream_data] + movzx eax, [esi+__xConnectAdditionalInfo.len_vendor] + add eax, 3 + and eax, $fffffffc + add edx, eax ; skip the vendor string. + + movzx eax, [esi+__xConnectAdditionalInfo.format_num] + lea edx, [edx+8*eax] ; the start of the screens list. + + movzx ecx, [esi+__xConnectAdditionalInfo.screen_num] + +.screen_loop: + mov eax, [edx + __xscreen.root_window] + mov [edi+xConnection.rootID], eax + + movzx eax, [edx+__xscreen.width_px] + mov [edi+xConnection.size_x_px], eax + movzx eax, [edx+__xscreen.height_px] + mov [edi+xConnection.size_y_px], eax + + mov ch, [edx + __xscreen.num_depths] + lea edx, [edx + __xscreen.depths] + +.depth_loop: + movzx eax, [edx + __xdepth.depth] + cmp eax, [.depth] + je .depth_found + + movzx eax, [edx + __xdepth.num_visual] + lea eax, [3*eax] + lea edx, [edx+8*eax+sizeof.__xdepth] ; on the next depth. + +.next_depth: + dec ch + jnz .depth_loop + + dec cl + jnz .screen_loop + +.depth_not_found: + jmp .error_close_sock + +.depth_found: + DebugMsg "Depth found!" + + movzx eax, [edx + __xdepth.num_visual] + lea edx, [edx + __xdepth.visual_types] + +.vis_loop: + cmp [edx + __xvisualtype.class], TrueColor + je .visual_found + + add edx, sizeof.__xvisualtype + dec eax + jnz .vis_loop + jmp .next_depth + +.visual_found: + + DebugMsg "Visual found!" + + mov eax, [edx + __xvisualtype.id] + mov [edi+xConnection.visualID], eax + +; Query all needed extensions. + + stdcall xSend, edi, qeBigRequests + + lea esi, [.ext_resp] + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + cmp [esi+xRespQueryExt.reply], rspReply + jne .big_requests_ok + + lea eax, [edi+xConnection.exBig] + stdcall __CopyExtensionParameters, eax, esi + +; enable Big Requests extension. + mov eax, [edi+xConnection.exBig.OpCode] + mov [esi+xRequest.op], al + mov [esi+xRequest.minor], 0 + mov [esi+xRequest.length], 1 + + stdcall xSend, edi, esi + + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + OutputValue "Big requests extension OpCode: ", [edi+xConnection.exBig.OpCode], 10, -1 + +.big_requests_ok: + + stdcall xSend, edi, qeSync + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + cmp [esi+xRespQueryExt.reply], rspReply + jne .sync_ok + + lea eax, [edi+xConnection.exSync] + stdcall __CopyExtensionParameters, eax, esi + + mov eax, [edi+xConnection.exSync.OpCode] + mov [esi+xRequest.op], al + mov [esi+xRequest.minor], 0 + mov [esi+xRequest.length], 2 + mov [esi+xRequest.data], 3 + mov [esi+xRequest.data+1], 1 + + stdcall xSend, edi, esi + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + OutputValue "Sync extension OpCode: ", [edi+xConnection.exSync.OpCode], 10, -1 + +.sync_ok: +; MIT-SHM extension. Check it only if not remote connection + cmp [edi+xConnection.fRemote], 0 + jne .shm_ok + + stdcall xSend, edi, qeMitShm + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + cmp [esi+xRespQueryExt.reply], rspReply + jne .shm_ok + + lea eax, [edi+xConnection.exShm] + stdcall __CopyExtensionParameters, eax, esi + + ; ShmQueryVersion + mov eax, [edi+xConnection.exShm.OpCode] + mov [esi+xRequest.op], al + mov [esi+xRequest.minor], opShmEnable + mov [esi+xRequest.length], 1 + + stdcall xSend, edi, esi + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + OutputValue "MIT-SHM extension OpCode: ", [edi+xConnection.exShm.OpCode], 10, -1 + +.shm_ok: + stdcall xSend, edi, qeKeyboard + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + cmp [esi+xRespQueryExt.reply], rspReply + jne .xkeyboard_ok + + lea eax, [edi+xConnection.exKbd] + stdcall __CopyExtensionParameters, eax, esi + + mov eax, [edi+xConnection.exKbd.OpCode] + mov [esi+xRequest.op], al + mov [esi+xRequest.minor], opXkbUseExtension + mov [esi+xRequest.length], 2 + mov word [esi+xRequest.data], 1 ; major version + mov word [esi+xRequest.data+2], 0 ; minor version + + stdcall xSend, edi, esi + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + OutputValue "XKEYBOARD extension OpCode: ", [edi+xConnection.exKbd.OpCode], 10, -1 + OutputValue "XKEYBOARD extension Event: ", [edi+xConnection.exKbd.FirstEvent], 10, -1 + OutputMemoryByte esi, 32 + +.xkeyboard_ok: +; XFIXES extension + stdcall xSend, edi, qeFixes + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + cmp [esi+xRespQueryExt.reply], rspReply + jne .xfixes_ok + + lea eax, [edi+xConnection.exFixes] + stdcall __CopyExtensionParameters, eax, esi + + mov eax, [edi+xConnection.exFixes.OpCode] + mov [esi+__xfixQueryVersionReq.op], al + mov [esi+__xfixQueryVersionReq.minor], opfixQueryVersion + mov [esi+__xfixQueryVersionReq.length], sizeof.__xfixQueryVersionReq/4 + mov [esi+__xfixQueryVersionReq.client_major_version], 5 ; major version + mov [esi+__xfixQueryVersionReq.client_minor_version], 0 ; minor version + + stdcall xSend, edi, esi + stdcall SocketReceive, [edi+xConnection.socket], esi, 32, MSG_WAITALL + + OutputValue "XFIXES extension OpCode: ", [edi+xConnection.exFixes.OpCode], 10, -1 + OutputValue "XFIXES extension Event: ", [edi+xConnection.exFixes.FirstEvent], 10, -1 + OutputMemoryByte esi, 32 + +.xfixes_ok: + +; create color map. + + mov [.req_map.op], opCreateColorMap + mov [.req_map.alloc], AllocNone + mov [.req_map.length], sizeof.__xCreateColorMapReq/4 + + stdcall xGetID, edi, objColorMap + mov [.req_map.map_id], eax + mov [edi+xConnection.colormap], eax + + mov eax, [edi+xConnection.rootID] + mov edx, [edi+xConnection.visualID] + mov [.req_map.win_id], eax + mov [.req_map.vis_id], edx + + lea ebx, [.req_map] + stdcall xSend, edi, ebx + + clc + +; finalize and release the mutexes. + +.finish: + pushf + + lea eax, [edi+xConnection.mutex_rd] + stdcall MutexRelease, eax + lea eax, [edi+xConnection.mutex_wr] + stdcall MutexRelease, eax + + stdcall StrDel, [.name] + stdcall StrDel, [.data] + stdcall FreeMem, [.pmore] + + popf + popad + return + +.connection_failed: +.error_close_sock: + + xor eax, eax + xchg eax, [edi+xConnection.socket] + test eax, eax + jz .sock_closed + + stdcall SocketClose, eax + +.sock_closed: + lea eax, [edi+xConnection.mutex_rd] + stdcall MutexDestroy, eax + lea eax, [edi+xConnection.mutex_wr] + stdcall MutexDestroy, eax + + stdcall StrDel, [.name] + stdcall StrDel, [.data] + stdcall FreeMem, [.pmore] + + stc + popad + return +endp + + + + +proc xCloseConnection, .pConnection +begin + DebugMsg "Close connection!" + + push ecx edx + + mov edx, [.pConnection] + + xor ecx, ecx + xchg ecx, [edx+xConnection.socket] + test ecx, ecx + jz .sock_ok + + stdcall SocketShutDown, ecx + stdcall SocketClose, ecx + +.sock_ok: + stdcall StrDel, [edx+xConnection.host] + + xor ecx, ecx + xchg ecx, [edx+xConnection.id_list] + stdcall FreeMem, ecx + + lea ecx, [edx+xConnection.mutex_rd] + stdcall MutexDestroy, ecx + + lea ecx, [edx+xConnection.mutex_wr] + stdcall MutexDestroy, ecx + + pop edx ecx + return +endp + + + + +proc __CopyExtensionParameters, .extension, .server_resp +begin + pushad + mov esi, [.server_resp] + mov edi, [.extension] + + movzx eax, [esi+xRespQueryExt.present] + movzx ebx, [esi+xRespQueryExt.OpCode] + movzx ecx, [esi+xRespQueryExt.first_event] + movzx edx, [esi+xRespQueryExt.first_error] + + mov [edi+xExtension.Active], eax + mov [edi+xExtension.OpCode], ebx + mov [edi+xExtension.FirstEvent], ecx + mov [edi+xExtension.FirstError], edx + + popad + return +endp + + + +proc __xConnectToServer, .pConnection +.addr: rb sizeof.TSocketAddressUn +begin + pushad + + xor eax, eax + + lea edi, [.addr] + mov ecx, sizeof.TSocketAddressUn + rep stosb + + mov edi, [.pConnection] + + mov [edi+xConnection.host], eax + mov [edi+xConnection.disp], eax + mov [edi+xConnection.fRemote], eax + + stdcall GetEnvVariable, txt "DISPLAY" + jnc .addr_ok + stdcall StrDupMem, txt ":0.0" +.addr_ok: + mov ebx, eax + stdcall StrPtr, eax + mov esi, eax + xor ecx, ecx + +.loop1: + mov al, [esi+ecx] + + test al, al + jz .host_fin + + cmp al, ':' + je .host_found + + inc ecx + jmp .loop1 + +.host_found: + test ecx, ecx + jz .host_ok + + stdcall StrNew + mov [edi+xConnection.host], eax + stdcall StrCatMem, eax, esi, ecx + +.host_ok: + lea esi, [esi+ecx+1] + +.host_fin: + xor ecx, ecx + +.loop2: + mov al, [esi+ecx] + + test al, al + jz .disp_found + + cmp al, '.' + je .disp_found + + inc ecx + jmp .loop2 + +.disp_found: + + test ecx, ecx + jz .disp_ok + + stdcall StrNew + push eax + stdcall StrCatMem, eax, esi, ecx + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + + mov [edi+xConnection.disp], eax + +.disp_ok: + stdcall StrDel, ebx + cmp [edi+xConnection.host], 0 + je .unix_sock + + stdcall StrPos, [edi+xConnection.host], txt "/unix" + test eax, eax + jnz .unix_sock + + inc [edi+xConnection.fRemote] + + mov [.addr + TSocketAddressIn.saFamily], AF_INET6 + + stdcall ResolveDomainIP6, [edi+xConnection.host] + jc .finish + + mov [.addr + TSocketAddressIn6.saAddress.addr32], eax + mov [.addr + TSocketAddressIn6.saAddress.addr32+4], ebx + mov [.addr + TSocketAddressIn6.saAddress.addr32+8], ecx + mov [.addr + TSocketAddressIn6.saAddress.addr32+12], edx + + mov eax, [edi+xConnection.disp] + add eax, xBasePort + xchg al, ah + mov [.addr + TSocketAddressIn6.saPort], ax + + jmp .connect + + +.unix_sock: + mov [.addr + TSocketAddressUn.saFamily], AF_UNIX + stdcall StrDupMem, xPath + mov ebx, eax + + stdcall NumToStr, [edi+xConnection.disp], ntsDec or ntsUnsigned + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + push edi + + lea edi, [.addr + TSocketAddressUn.saPath] + stdcall StrPtr, ebx + mov ecx, [eax+string.len] + mov esi, eax + inc ecx + + rep movsb + + stdcall StrDel, ebx + pop edi + +.connect: + movzx eax, [.addr + TSocketAddress.saFamily] + stdcall SocketCreate, eax, SOCK_STREAM, 0 + jc .finish + + mov [edi+xConnection.socket], eax + + lea ecx, [.addr] + stdcall SocketConnect, [edi+xConnection.socket], ecx + jc .error_close_sock + +.finish: + popad + return + +.error_close_sock: + stdcall SocketClose, ebx + stc + jmp .finish + +endp + + + + +xAuth text "/.Xauthority" + + +; returns magic cookie in eax and edx + +proc __xSearchForAuth, .disp +.xauth dd ? +.name dd ? +.data dd ? +begin + pushad + + xor eax, eax + mov [.xauth], eax + mov [.name], eax + mov [.data], eax + + stdcall GetEnvVariable, txt "XAUTHORITY" + jnc .auth_file + + stdcall GetEnvVariable, txt "HOME" + jc .end_of_file + + stdcall StrCatMem, eax, xAuth, xAuth.length + +.auth_file: + push eax + stdcall LoadBinaryFile, eax + stdcall StrDel ; from the stack + jc .end_of_file + + mov [.xauth], eax + + mov esi, eax + lea ebx, [esi+ecx] ; the end of the file. + +.loop: + xor eax, eax + lodsw + + cmp esi, ebx + jae .end_of_file + + lodsw + xchg al, ah ; host string length. + + add esi, eax ; skip the host string. + cmp esi, ebx + jae .end_of_file + + lodsw + xchg al, ah ; display number length + + mov edx, ebx + sub edx, esi + + cmp eax, edx + jae .end_of_file + + mov edx, eax + stdcall StrNew + stdcall StrCatMem, eax, esi, edx + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + + add esi, edx + cmp esi, ebx + jae .end_of_file + + cmp eax, [.disp] + je .auth_found + +; skip the name and the data + xor eax, eax + lodsw + xchg al, ah ; the length of the name + add esi, eax + cmp esi, ebx + jae .end_of_file + + lodsw + xchg al, ah + add esi, eax + cmp esi, ebx + jb .loop + +.end_of_file: + stdcall FreeMem, [.xauth] + stdcall StrDel, [.name] + popad + + xor eax, eax + xor edx, edx + return + +.auth_found: + + lodsw + xchg al, ah + movzx edx, ax + + mov eax, ebx + sub eax, esi + cmp edx, eax + ja .end_of_file + + stdcall StrNew + mov [.name], eax + stdcall StrCatMem, eax, esi, edx + + add esi, edx + cmp esi, ebx + jae .end_of_file + + lodsw + xchg al, ah + movzx edx, ax + + mov eax, ebx + sub eax, esi + cmp edx, eax + ja .end_of_file + + stdcall StrNew + mov [.data], eax + stdcall StrCatMem, eax, esi, edx + + stdcall FreeMem, [.xauth] + popad + clc + mov eax, [.name] + mov edx, [.data] + return +endp + + +ID_SEARCH_ONE_ATTEMPT = 100 + + +proc xGetID, .conn, .obj +begin + pushad + + mov edi, [.conn] + lea eax, [edi+xConnection.mutex_wr] + stdcall WaitForMutex, eax, -1 + + mov edx, [edi+xConnection.id_list] + test edx, edx + jnz @f + + stdcall CreateArray, 4 + mov edx, eax +@@: + +; Search for first empty place. + mov ecx, ID_SEARCH_ONE_ATTEMPT ; search only limited count of items + cmp ecx, [edx+TArray.count] + cmova ecx, [edx+TArray.count] + mov esi,[edx+TArray.lparam] + xor eax,eax + +.search: + dec ecx + js .notfound + + inc esi + cmp esi, [edx+TArray.count] + cmovae esi, eax + + cmp [edx+TArray.array+4*esi], eax + je .found + jmp .search + +.notfound: + mov [edx+TArray.lparam], esi ; store the place where the search ends this time. + mov esi, [edx+TArray.count] + stdcall AddArrayItems, edx, 1 + +.found: + mov eax, [.obj] + mov [edx+TArray.array+4*esi], eax + + and esi, [edi+xConnection.id_mask] + or esi, [edi+xConnection.id_base] + + mov [edi+xConnection.id_list], edx + + lea eax, [edi+xConnection.mutex_wr] + stdcall MutexRelease, eax + +; OutputValue "ID allocated: ", esi, 16,8 + + mov [esp+4*regEAX], esi + popad + return +endp + + + +; try not to use this procedure, because if causes the ID space to always increase and makes the ID recycling not effective. + +proc xGetNewID, .conn, .obj +begin + pushad + + mov edi, [.conn] + lea eax, [edi+xConnection.mutex_wr] + stdcall WaitForMutex, eax, -1 + + mov edx, [edi+xConnection.id_list] + test edx, edx + jnz @f + + stdcall CreateArray, 4 + mov edx, eax +@@: + mov esi, [edx+TArray.count] + stdcall AddArrayItems, edx, 1 + + mov eax, [.obj] + mov [edx+TArray.array+4*esi], eax + + and esi, [edi+xConnection.id_mask] + or esi, [edi+xConnection.id_base] + + mov [edi+xConnection.id_list], edx + + lea eax, [edi+xConnection.mutex_wr] + stdcall MutexRelease, eax + + mov [esp+4*regEAX], esi + popad + return +endp + + + +proc xGetObj, .conn, .id +begin + push edx esi + + mov esi, [.conn] + mov eax, [esi+xConnection.id_base] + mov edx, [esi+xConnection.id_list] + cmp [.id], eax + jb .error + + not eax + and eax, [.id] + cmp eax, [esi+xConnection.id_mask] + ja .error + + cmp eax, [edx+TArray.count] + jae .error + + mov eax, [edx+TArray.array+4*eax] + test eax, eax + jz .error + + clc + pop esi edx + return + +.error: + stc + pop esi edx + return +endp + + + +proc xFreeID, .conn, .id +begin + pushad + + mov esi, [.conn] + lea edx, [esi+xConnection.mutex_wr] + stdcall WaitForMutex, edx, -1 + + mov ecx, [esi+xConnection.id_base] + mov edx, [esi+xConnection.id_list] + not ecx + and ecx, [.id] + +; OutputValue "ID freed: ", [.id], 16,8 + + cmp ecx, [esi+xConnection.id_mask] + ja .error + + cmp ecx, [edx+TArray.count] + jae .error + + stdcall __CleanupDeferedEvents, [.id] ; this is a kind of cross-level call (from lower level abstraction to the upper level abstraction, but we need somehow to clear the stored window IDs stored for defered processing. + + mov [edx+TArray.lparam], ecx + + xor eax, eax + xchg eax, [edx+TArray.array+4*ecx] + mov [esp+4*regEAX], eax + + clc + +.finish: + lea edx, [esi+xConnection.mutex_wr] + stdcall MutexRelease, edx + popad + return + +.error: + OutputValue "Error ID free: ", [.id], 16,8 + stc + jmp .finish +endp + + + +struct __xInternAtomReq + .op db ? ; opInternAtom + .ifexists db ? ; bool + .length dw ? ; total length in dword = 2 + string/4 + .name_len dw ? ; in chars + dw ? + .name: +ends + +struct __xInternAtomResp + .resp db ? + db ? + .sequence dw ? + .length dd ? ; 0 usually + .atom dd ? ; 0 == None + rb 20 +ends + + +struc xAtom name { +.@here = 1 +if used . +label . byte +local ..name, ..start, ..len_all, ..len +..start db opInternAtom + db 1 + dw ..len_all + dw ..len + dw ? +..name db name +..len = $ - ..name + align 4 +..len_all = ($ - ..start)/4 +.size = $ - ..start +end if +} + + +macro xEncoding name, filename { + name#.@here = 1 + if used name + align 4 + label name word + file filename + end if +} + + +proc xInternAtom, .xAtom +begin + stdcall xSend, appConn, [.xAtom] + stdcall xRecv, appConn, TRUE + + push eax + mov eax, [eax+__xInternAtomResp.atom] + stdcall FreeMem ; from the stack + +if defined options.DebugMode & options.DebugMode + push eax ecx + + stdcall Output, "Atom name: " + mov eax, [.xAtom] + movzx ecx, [eax+__xInternAtomReq.name_len] + lea eax, [eax+__xInternAtomReq.name] + + stdcall OutputSz, eax, ecx + pop ecx eax +end if + OutputValue " == #", eax, 10, -1 + + clc + return +endp + + + +proc KeysymToUnicode, .keysym, .kbdstate +begin + push edx + + mov eax, [.keysym] + + test [.kbdstate], maskCtrl + jz .normal + + cmp eax, $61 + jb .normal + cmp eax, $7f + ja .normal + + sub eax, $60 + jmp .finish + +.normal: + cmp eax, $ff + jbe .finish ; latin1 == unicode + + test eax, $01000000 + jz .legacy_keysym + + and eax, $00ffffff + jmp .finish + +.legacy_keysym: + cmp ah, $20 + je .finish ; the group 20 == unicode. + + cmp ah, $ff + jne .not_func + +; ah = ff, special keys, KP, Fx, etc. + + xor ah, ah + + cmp al, ' ' + jb .finish + + cmp al, $80 ; space + jne .not_space + + mov eax, ' ' + jmp .finish + +.not_space: + cmp al, $90 + jae .not_ctrl + + cmp al, $80 + jb .not_possible + + and al, $0f + jmp .finish + +.not_ctrl: + cmp al, $a0 + jb .not_possible + + cmp al, $be + jae .not_possible + + and al, $7f + jmp .finish + +.not_func: + cmp ah, 13 + ja .not_possible + + movzx edx, ah + movzx eax, al + dec edx + mov edx, [.table+4*edx] + test edx, edx + jz .not_possible + + sub al, byte [edx] ; minimal keycode + jc .not_possible + + cmp al, byte [edx+1] ; max offset in the table + ja .not_possible + + movzx eax, word [edx+2+2*eax] + +.finish: + clc + pop edx + return + +.not_possible: + xor eax, eax + stc + pop edx + return + +.table dd .xLatin2, .xLatin3, .xLatin4, .xKana + dd .xArabic, .xCyrillic, .xGreek, 0 + dd 0, .xPublish, 0, .xHebrew + dd .xThai + +EncodingTable .xLatin2, "__encodings/keysyms1.tbl" +EncodingTable .xLatin3, "__encodings/keysyms2.tbl" +EncodingTable .xLatin4, "__encodings/keysyms3.tbl" +EncodingTable .xKana, "__encodings/keysyms4.tbl" +EncodingTable .xArabic, "__encodings/keysyms5.tbl" +EncodingTable .xCyrillic, "__encodings/keysyms6.tbl" +EncodingTable .xGreek, "__encodings/keysyms7.tbl" +EncodingTable .xPublish, "__encodings/keysyms10.tbl" +EncodingTable .xHebrew, "__encodings/keysyms12.tbl" +EncodingTable .xThai, "__encodings/keysyms13.tbl" + +endp + + + +proc KeycodeToKeysym, .keyMap, .keycode, .kbdstate +begin + pushad + + mov esi, [.keyMap] + test esi, esi + jz .null + + mov ecx, [.kbdstate] + mov edx, [.keycode] + + mov esi, [esi+4*edx] ; pointer to xkbKeysymMapItem + test esi, esi + jz .null + +; OutputValue "Keyboard state: ", ecx, 2, 32 +; OutputMemoryByte esi, 8 +; movzx ebx, [esi+xkbKeysymMapItem.nSyms] +; shl ebx, 2 +; lea eax, [esi+xkbKeysymMapItem.keysyms] +; OutputMemoryByte eax, ebx + + xor ebx, ebx + test ecx, maskCtrl or maskAlt + cmovnz ecx, ebx ; if Ctrl state, zero ecx in order to get the first character from the table. + jnz .getit + +; compute the number of the groups. + + mov ax, [esi+xkbKeysymMapItem.nSyms] + div [esi+xkbKeysymMapItem.width] ; al = group count. ah should be 0 + mov bl, al + + mov eax, ecx + shr eax, 13 + and eax, 3 ; the group number. + + div bl + movzx ebx, ah ; ebx - group number. + + cmp [esi+xkbKeysymMapItem.ktIndex+ebx], xkbOneLevelIndex + je .one_level + + cmp [esi+xkbKeysymMapItem.ktIndex+ebx], xkbTwoLevelIndex + je .two_levels + + cmp [esi+xkbKeysymMapItem.ktIndex+ebx], xkbKeypadIndex + je .keypad + +; all remaining is xkbAlphabeticIndex - (Shift cancels CapsLock) + mov eax, ecx + shr eax, 1 ; maskCapsLock = 2 + xor ecx, eax + and ecx, 1 + + mov eax, [.kbdstate] + and eax, maskLevel3 + shr eax, 6 ; 0 or 2 + add ecx, eax + jmp .getit + +; only the first level is important. +.one_level: + xor ecx, ecx + jmp .getit + +; Only Shift modifier matters +.two_levels: + and ecx, maskShift + jmp .getit + +; Keypad (numpad) key type. (Shift cancels NumLock) +.keypad: + mov eax, ecx + shr eax, 4 ; maskNumLock = $10 + xor ecx, eax + and ecx, 1 +; jmp .getit + + +.getit: +; OutputValue "Group number: ", ebx, 10, -1 + + mov eax, ecx + div [esi+xkbKeysymMapItem.width] + movzx ecx, ah + +; OutputValue "Level offset: ", ecx, 10, -1 + + movzx eax, [esi+xkbKeysymMapItem.width] + imul ebx, eax ; group offset + + add ecx, ebx + +.get_loop: + mov eax, [esi + xkbKeysymMapItem.keysyms + 4*ecx] + test eax, eax + jnz .char_ok + + sub ecx, 2 + jns .get_loop + +.char_ok: + mov [esp+4*regEAX], eax + clc + popad + return + +.null: + xor eax, eax + mov [esp+4*regEAX], eax + stc + popad + return +endp + + +endmodule + ADDED freshlib/gui/Main.asm Index: freshlib/gui/Main.asm ================================================================== --- /dev/null +++ freshlib/gui/Main.asm @@ -0,0 +1,553 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Main procedure of GUI application library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Organize the main message/event loop needed by every GUI engine. +; This file contains only OS independent part and includes OS dependent files. +;_________________________________________________________________________________________ +module "Main library" + +uglobal + var __LastPointedWindow = ? + var __ActiveForm = ? ; The form that get the focus from the OS. + var __FocusedWindow = ? ; The current focused window. It should be a child of [__ActiveForm] + var __MouseTarget = ? ; The control that holds the mouse capture in the moment. + + var __ActiveMenu = ? +endg + + +;_________________________________________________________________________________________ +; +; Process all the events queued from the system and exits. +; Arguments: none +; Returns: CF = 1 if the termination event has been received. +;_________________________________________________________________________________________ + +interface ProcessSystemEvents + + + + +;_________________________________________________________________________________________ +; +; Waits for system events to arive. +; During the wait, the application +; does not use CPU resources. +;_________________________________________________________________________________________ + +interface WaitForSystemEvent + + + + + +proc Run +begin +.mainloop: + stdcall ProcessSystemEvents + jc .terminate + + call ProcessIdleStates + +.eventok: +if defined Caret & (~ defined options.DebugMode.NoTimers | options.DebugMode.NoTimers = 0) + stdcall __CaretTimerProc +end if + + stdcall WaitForSystemEvent + jc .eventok + jmp .mainloop + +.terminate: + DebugMsg "Terminate GUI application!" + return +endp + + +proc ProcessIdleStates +begin + cmp [__ActiveForm], 0 + je .finish + exec [__ActiveForm], TForm:ProcessIdle +.finish: + return +endp + + + +proc ServeMenuMouseMove, .window, .x, .y, .kbdState +begin + cmp [__ActiveMenu], 0 + jne .serve_menu + + clc + return + +.serve_menu: + pushad + + exec [.window], TWindow:ClientToScreenXY, [.x], [.y] + exec [__ActiveMenu], TWindow:EventMouseMove, ecx, edx, [.kbdState] + + popad + stc + return +endp + + + +proc ServeMenuButtonPress, .window, .button, .kbdState, .x, .y +begin + pushad + + cmp [__ActiveMenu], 0 + jne .serve_menu + +.not_processed: + clc + popad + return + +.serve_menu: + + exec [.window], TWindow:ClientToScreenXY, [.x], [.y] + exec [__ActiveMenu], TWindow:EventButtonPress, [.button], [.kbdState], ecx, edx + + popad + return +endp + + + +iglobal + if used tplModalActionList + tplModalActionList: + ObjTemplate tfParent or tfEnd, TActionList, 0 + ObjTemplate tfChild, TAction, 0, Accelerator = "Esc", OnExecute = OnModalCancel + ObjTemplate tfChild or tfEnd, TAction, 0, Accelerator = "Enter", OnExecute = OnModalOK + end if +endg + + +proc ShowModal, .pForm, .pParent +.prev dd ? +begin + push ebx ecx edx + + mov ecx, [.pParent] + mov edx, [.pForm] + test ecx, ecx + jz .modal_parent_ok + +; center the window on the parent. + + mov eax, [ecx+TWindow._width] + mov ebx, [ecx+TWindow._height] + sub eax, [edx+TWindow._width] + sub ebx, [edx+TWindow._height] + sar eax, 1 + sar ebx, 1 + add eax, [ecx+TWindow._x] + add ebx, [ecx+TWindow._y] + +;TODO: Min/Max coordinates range check. + + exec edx, TWindow:Move, eax, ebx + +.modal_parent_ok: + + set edx, TForm:Visible, TRUE + + test ecx, ecx + jz .parent_ok2 + + stdcall _SetModalTowards, [edx+TForm.handle], [ecx+TWindow.handle] + set ecx, TWindow:Enabled, FALSE + +.parent_ok2: + stdcall CreateFromTemplate, tplModalActionList, 0 + get eax, edx, TForm:ActionList + set edx, TForm:ActionList, ebx + + test eax, eax + jz @f + destroy eax +@@: + set edx, TForm:ModalResult, mrNone + + get eax, edx, TForm:OnClose + mov [.prev], eax + + set edx, TForm:OnClose, __ModalOnClose + +.modal_loop: + stdcall ProcessSystemEvents + jc .exit_modal + + get eax, edx, TForm:ModalResult + test eax, eax + jnz .exit_modal + + get eax, edx, TWindow:Visible + test eax, eax + jz .exit_modal + + cmp [__ActiveForm], 0 + je .vis_ok + + exec [__ActiveForm], TForm:ProcessIdle + +.vis_ok: +if defined Caret & (~ defined options.DebugMode.NoTimers | options.DebugMode.NoTimers = 0) + stdcall __CaretTimerProc +end if + stdcall WaitForSystemEvent + jmp .modal_loop + +.exit_modal: + jecxz @f + set ecx, TWindow:Enabled, TRUE +@@: + + set edx, TForm:OnClose, [.prev] + + jecxz @f + stdcall _FinalizeModal, [edx+TForm.handle], [ecx+TWindow.handle] +@@: + set edx, TForm:Visible, FALSE + + xor ebx, ebx + xchg ebx, [edx+TForm._action_list] + destroy ebx + + stdcall SetFocusedWindow, ecx + + get eax, edx, TForm:ModalResult + pop edx ecx ebx + return +endp + + +proc OnModalCancel as TAction.OnExecute +begin + push eax + + get eax, [.Action], TAction:Parent + get eax, eax, TActionList:Form + + set eax, TForm:ModalResult, mrCancel + pop eax + return +endp + +proc OnModalOK as TAction.OnExecute +begin + push eax + + get eax, [.Action], TAction:Parent + get eax, eax, TActionList:Form + + set eax, TForm:ModalResult, mrOK + pop eax + return +endp + + +; prevent destroy of the form from the close button or Alt+F4 +proc __ModalOnClose, .self, .reason +begin + set [.self], TForm:ModalResult, mrCancel + stc + return +endp + + + + + +proc __GetRelativeXY, .window, .x, .y +begin + push eax esi + + mov ecx, [.x] + mov edx, [.y] + mov esi, [.window] + +.loop: + get eax, esi, TWindow:Parent + test eax, eax + jz .finish + + sub ecx, [esi+TWindow._x] + sub edx, [esi+TWindow._y] + + mov esi, eax + jmp .loop + +.finish: + pop esi eax + return +endp + + +proc SetFocusedWindow, .pWindow +begin + push eax + + stdcall __SetIntFocused, [.pWindow] + jc .finish + + mov eax, [__FocusedWindow] + test eax, eax + jz .set_os + + exec eax, TWindow:GetOSWindow + test eax, eax + jz .set_os + + mov eax, [eax+TWindow.handle] + +.set_os: + stdcall _SetFocus, eax + +.finish: + pop eax + return +endp + + + +; Only registers in __FocusedWindow already focused window. +; To be used only internally in SetFocusedWindow and the events from the OS +; for already focused by the OS windows. + +proc __SetIntFocused, .pWindow +begin + push eax edx + + mov edx, [.pWindow] + cmp edx, [__FocusedWindow] + je .ignore + + test edx, edx + jz .setit + + istype edx, TWindow + jne .ignore + + stdcall CanGetFocus, edx + jz .ignore + +.setit: + xchg edx, [__FocusedWindow] + test edx, edx + jz .prev_ok + + exec edx, TWindow:EventFocusOut + +.prev_ok: + cmp [__FocusedWindow], 0 + je .finish + + exec [__FocusedWindow], TWindow:EventFocusIn + +.finish: + clc + pop edx eax + return + +.ignore: + stc + pop edx eax + return +endp + + + + +proc FocusNext +begin + push eax edx + mov eax, [__FocusedWindow] + test eax, eax + jz .target_ok + +.loop: + stdcall NextLeaf, eax + je .setit + cmp eax, [__FocusedWindow] + je .setit + + stdcall CanGetFocus, eax + jz .loop + +.setit: + stdcall CanGetFocus, eax + jnz .target_ok + xor eax, eax +.target_ok: + stdcall SetFocusedWindow, eax + +.finish: + pop edx eax + return + +endp + + + + +proc FocusPrev +begin + push eax edx + mov eax, [__FocusedWindow] + test eax, eax + jz .target_ok + +.loop: + stdcall PrevLeaf, eax + je .setit + cmp eax, [__FocusedWindow] + je .setit + + stdcall CanGetFocus, eax + jz .loop + +.setit: + stdcall CanGetFocus, eax + jnz .target_ok + xor eax, eax +.target_ok: + stdcall SetFocusedWindow, eax + +.finish: + pop edx eax + return +endp + + +; Returns ZF = 1 if the window can not be focused. +; ZF = 0 if the window can be foculed. +proc CanGetFocus, .window +begin + push eax + + get eax, [.window], TWindow:Visible + test eax, eax + jz .fin + + get eax, [.window], TWindow:Enabled + test eax, eax + jz .fin + + get eax, [.window], TWindow:WantFocus + test eax, eax + +.fin: + pop eax + return +endp + + + + + +iglobal + +if used FramesPerSecond + + fpsTime dd 0 + + fps dd 0 + fpsmin dd $ffffffff + fpsmax dd 0 + + fpscnt dd 0 + +end if + +endg + +fpsCount = 16 + +proc FramesPerSecond +begin + pushad + + inc [fpscnt] + cmp [fpscnt], fpsCount + jne .finish + + mov [fpscnt], 0 + + stdcall GetFineTimestamp + mov ecx, eax + + xchg ecx, [fpsTime] + test ecx, ecx + jz .finish + + sub ecx, [fpsTime] + neg ecx + mov eax, fpsCount*1000000 + xor edx, edx + + div ecx + + mov [fps], eax + + cmp eax, [fpsmin] + jae @f + mov [fpsmin], eax +@@: + + cmp eax, [fpsmax] + jb @f + mov [fpsmax], eax +@@: + + +if defined options.DebugMode.ShowFPS & options.DebugMode.ShowFPS + stdcall FileWriteString, [STDOUT], <txt ' FPS: '> + stdcall NumToStr, [fps], ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDOUT], <txt ', min: '> + stdcall NumToStr, [fpsmin], ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDOUT], <txt ', max: '> + stdcall NumToStr, [fpsmax], ntsDec or ntsUnsigned + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack + stdcall FileWriteString, [STDOUT], <txt " ", 13> + + if defined options.DebugMode & options.DebugMode + stdcall FileWriteString, [STDOUT], <txt 10> + end if +end if + +.finish: + popad + return +endp + + + + +include '%TargetOS%/Main.asm' + +endmodule ADDED freshlib/gui/ObjTemplates.asm Index: freshlib/gui/ObjTemplates.asm ================================================================== --- /dev/null +++ freshlib/gui/ObjTemplates.asm @@ -0,0 +1,223 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Objects template engine +; +; Target OS: Any +; +; Dependencies: objects.asm +; +; Notes: +;_________________________________________________________________________________________ +module "Templates library" + +tfChild = 0 +tfParent = 1 +tfEnd = 2 + + +struct TObjTemplate + .flags dd ? ; tfParent; tfEnd. + .size dd ? ; size of the instance structure. + .vtable dd ? ; pointer to the virtual methods table. + .paramsize dd ? + .ptrVar dd ? + .params: +ends + + +macro ObjTemplate flags, class, name, [idparam] { +common +local ..paramsize, ..prms, ..here + + if ~defined used.#class | defined ..here + used.#class = 1 + ..here = 1 + end if + + dd flags + dd sizeof.#class + dd vtables.#class + dd ..paramsize +if ~ name eq NONE + dd name +else + dd 0 +end if + +..prms: + +forward +local ..value, ..ofs, ..valid + if ~idparam eq + ..valid equ FALSE + match id == param, idparam \{ + ..ofs dd class\#.\#id\#.#set + dd ..value + + if defined class\#.\#id\#.#set.arg + + if class\#.\#id\#.#set.arg = 2 + dd class\#.\#id, -1 + end if + + if class\#.\#id\#.#set.arg = 3 + dd class\#.\#id, class\#.\#id\#.#get + end if + + else + dd 0, -1 + end if + + ..valid EQU TRUE + \} + + match =FALSE, ..valid \{ + error Invalid parameter definition in template. + \} + end if + +common + dd -1 + +forward + + match id == param, idparam \{ + if param eqtype 2 + ..value = param + else + if param eqtype [2] + match =[par=], param \\{ + ..value = par + \\} + store byte $fe at ..ofs+3 + else + ..value db param, 0 + end if + end if + \} + +common +local ..here + + if ~(name eq NONE) & (~defined name | defined ..here) + name dd ? + ..here = 1 + end if + ..paramsize = $ - ..prms +} + + +; returns the last created window in ebx. +proc CreateFromTemplate, .ptrTemplate, .parent +begin + push esi + + mov esi, [.ptrTemplate] + stdcall _DoCreateFromTemplate, [.parent] + + pop esi + return +endp + + +proc _DoCreateFromTemplate, .parent +begin + push eax ecx edx edi + +.createloop: + stdcall GetMem, [esi+TObjTemplate.size] + mov ebx, eax + mov edi, [esi+TObjTemplate.vtable] + mov [ebx], edi + + exec ebx, TObject:Create, [.parent] + + lea ecx, [esi+TObjTemplate.params] + +.paramloop: + cmp dword [ecx], -1 + je .paramsok + + mov eax, [ecx] + bswap eax + + mov edx, [ecx+4] ; value + + cmp al, $fe ; Is it indirect? + jne @f + mov edx, [edx] ; the value is an address of a variable. +@@: + bswap eax + + test eax, $00ff0000 + movzx eax, ax ; not changing flags! + jnz .method + + mov [ebx+eax], edx + jmp .param_set + +.method: + push edx ; value + + cmp dword [ecx+12], -1 + je .get_ok + push dword [ecx+12] +.get_ok: + cmp dword [ecx+8], 0 ; the parameter ID. <>0 if to be pushed during the method call. + je .param_ok + push dword [ecx+8] +.param_ok: + + stdcall dword [edi+4*eax+8], ebx + +.param_set: + add ecx, 16 + jmp .paramloop + +.paramsok: + mov eax, [esi+TObjTemplate.ptrVar] + test eax, eax + jz .var_ok + + mov [eax], ebx ; returned pointer/handle to the object. + set ebx, TObject:ptrVar, eax + +.var_ok: + get eax, ebx, TObject:OnCreate + test eax, eax + jz .gonext + +; execute user OnCreate event. + + pushad + stdcall eax, ebx + popad + +.gonext: + mov edx, [esi+TObjTemplate.flags] + + mov eax, sizeof.TObjTemplate + add eax, [esi+TObjTemplate.paramsize] + add esi, eax + + test edx, tfParent + jz .childrenok + + push ebx + stdcall _DoCreateFromTemplate, ebx + pop ebx + +.childrenok: + test edx, tfEnd + jz .createloop + +.exit: + pop edi edx ecx eax + return +endp + + +endmodule ADDED freshlib/gui/OldTemplates.inc Index: freshlib/gui/OldTemplates.inc ================================================================== --- /dev/null +++ freshlib/gui/OldTemplates.inc @@ -0,0 +1,212 @@ +; This macro aims to provide some limited use of the old visual editor +; with the new template engine, until the new one is created. + + +macro __define_one_property class, subtype, style, property { +common + local ..txt, ..set, ..subtype + + match id==value, property \{ + + ; class + if class eq 'TForm' + ..set = TForm.\#id\#.set + else + if class eq 'BUTTON' + + if subtype = 0 ; BS_PUSHBUTTON + ..set = TButton.\#id\#.set + end if + + if subtype = 2 ; BS_CHECKBOX + ..set = TButton.\#id\#.set + end if + + else + + if class eq 'EDIT' + if (style and 4) ;ES_MULTILINE + ..set = TAsmEdit.\#id\#.set + else + ..set = TEdit.\#id\#.set + end if + else + + if class eq 'STATIC' + ..set = TLabel.\#id\#.set + else + if class eq 'msctls_progress32' + ..set = TProgress.\#id\#.set + else + if class eq 'SysTreeView32' + ..set = TTreeView.\#id\#.set + end if + end if + end if + end if + end if + end if + + + dd ..set + if value eqtype 2 + dd value + else + if value eqtype 'A' + dd ..txt + else + dd value + end if + end if + ..txt text value + \} +} + + + +macro Window name, flags, walign, class, txt, style, styleEx, ID, left, top, width, height, [props] { +common + local ..paramsize, ..prms, ..caption, ..name, ..subtype, ..txtalign, ..class, ..size, ..here, ..capset, ..alset + + ..subtype = style and $0f + + ..txtalign = 0 + ..alset = 0 + + if ~name eq NONE + name#.template#: + end if + + ..class = vtables.TWindow + ..size = sizeof.TWindow + ..capset = 0 + + ; class + if class eq 'TForm' + ..class = vtables.TForm + ..size = sizeof.TForm + else + if class eq 'BUTTON' + + + if ..subtype = 0 ; BS_PUSHBUTTON + ..class = vtables.TButton + ..size = sizeof.TButton + ..txtalign = dtfAlignCenter or dtfAlignMiddle + ..alset = TButton.TextAlign.set + ..capset = TButton.Caption.set + end if + + if ..subtype = 2 ; BS_CHECKBOX + ..class = vtables.TCheckbox + ..size = sizeof.TCheckbox + ..capset = TCheckbox.Caption.set + end if + + else + + if class eq 'EDIT' + if (style and 4) ;ES_MULTILINE + ..class = vtables.TAsmEdit ; it is not good to use TAsmEdit, but we don't have light multiline edit. + ..size = sizeof.TAsmEdit + ..capset = TAsmEdit.Text.set + else + ..class = vtables.TEdit + ..size = sizeof.TEdit + ..capset = TEdit.Text.set + end if + else + + if class eq 'STATIC' + ..class = vtables.TLabel + ..size = sizeof.TLabel + ..capset = TLabel.Caption.set + ..alset = TLabel.TextAlign.set + + if ..subtype = 1 ; SS_CENTER + ..txtalign = ..txtalign or dtfAlignCenter + end if + + if ..subtype = 2 ; SS_RIGHT + ..txtalign = ..txtalign or dtfAlignCenter + end if + + if (style and $200) ;SS_CENTERIMAGE + ..txtalign = ..txtalign or dtfAlignMiddle + end if + + else + if class eq 'msctls_progress32' + ..class = vtables.TProgress + ..size = sizeof.TProgress + else + if class eq 'SysTreeView32' + ..class = vtables.TTreeView + ..size = sizeof.TTreeView + end if + end if + end if + end if + + end if + end if + + + dd flags ; flags - the values are the same + dd ..size + dd ..class + dd ..paramsize ;parameters size + + ; name + if name eq NONE + dd ..name + else + dd name + end if + + +..prms: + dd TWindow.x.set + dd left + + dd TWindow.y.set + dd top + + dd TWindow.width.set + dd width + + dd TWindow.height.set + dd height + + if ..capset + dd ..capset + dd ..caption + end if + + if (style and $10000000) <> 0 ; WS_VISIBLE + dd TWindow.Visible.set + dd TRUE + end if + + if ..txtalign + dd ..alset + dd ..txtalign + end if + +forward + __define_one_property class, ..subtype, style, props + +common + dd -1 ; end of params + + if name eq NONE + ..name dd ? + else + name dd ? + end if + + ..paramsize = $ - ..prms + + ..caption text txt + +} ADDED freshlib/gui/SplitGrid.asm Index: freshlib/gui/SplitGrid.asm ================================================================== --- /dev/null +++ freshlib/gui/SplitGrid.asm @@ -0,0 +1,647 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Objects template engine +; +; Target OS: Any +; +; Dependencies: objects.asm +; +; Notes: +;_________________________________________________________________________________________ +module "SplitGrid" + + +stOriginBR = $08 ; the origin of the cell splitter is on the right (or bottom) + ; edge of the cell. + +stHoriz = $00 ; the cell is splitted on left and right parts. +stVert = $04 ; the cell is splitted on up and down parts. + +stNone = $80 ; the cell is not splitted. + +stAutosize = 1 shl 11 + +stMaxHidden = 1 shl 12 ; the pos is assumed to be equal to the max value (but the real value is not changed). +stHidden = 1 shl 13 ; the pos is assumed to be 0 (but the real value is not changed) +stRelative = 1 shl 14 ; the pos field is a part of a whole rectangle (in 1/32768 units) +stJustGap = 1 shl 15 ; the rectangle is splitted, but not resizeable. + + + +struct TSplitRect + .rect RECT ; the rectangle of the area. + .spRect RECT ; rectangle of the splitter. + .pWindow dd ? ; pointer to TWindow descendent, bound to the grid cell. + .pos dd ? ; in pixels or as part of the whole. + .min dd ? ; minimal size + .max dd ? ; maximal size + .type dd ? ; one or more of stXXXXX flags defined above. + .spWidth dd ? ; width of the spliter + .id dd ? + .reserve dd ? ; in order the size to be power of 2 +ends + + +struct TSplitTemplate + .type dw ? ; stXXXXXXXXX flags + .width dw ? ; width of the splitter + .pos dd ? ; current position + .min dd ? ; min + .max dd ? ; max +ends + + +struct TCellTemplate + .type dw ? + .id dw ? +ends + + +macro SplitStart name { + local ..expected, ..id + ..expected = 1 + ..id = 0 + + cell@expected equ ..expected + cell@id equ ..id + cell@name equ name + + label name byte + + macro Split type, width, pos, min, max \{ + dw type, width + dd pos, min, max + cell@id = cell@id + 1 + cell@expected = cell@expected + 1 + \} + + macro Cell name \{ + .\#name = cell@id + dw stNone, cell@id + cell@id = cell@id + 1 + cell@expected = cell@expected - 1 + \} + +} + + +macro SplitEnd { + match name, cell@name \{ cell@namestr equ `name \} + if cell@expected<>0 + disp 1, 'WARNING! "', cell@namestr, '" split template is not consistent! Automatically added ', <cell@expected, 10>, " empty cells. FIXIT!", 13 + repeat cell@expected + dw stNone, 0 + end repeat + end if + match name, cell@name \{ sizeof.\#name = $ - name \} + purge Cell, Split + restore cell@expected, cell@id, cell@name +} + + +struc SplitTemplate [name, type, width, pos, min, max] { +common + .: + local ..expected, ..index + ..expected = 1 + ..index = 0 +forward + if ~name eq NONE + name = ..index + end if + dw type + dw width + dd pos + dd min + dd max + if (type <> stNone) + ..expected = ..expected + 1 + else + ..expected = ..expected - 1 + end if + + ..index = ..index + 1 +common + repeat ..expected + dw stNone, 0 + dd 0, 0, 0 + end repeat + + if ..expected <> 0 + disp 1, 'WARNING! "', `., '" split template is not consistent! Automatically added ', <..expected, 10>, " empty cells. FIXIT!", 13 + end if +} + + + +proc RealignGrid, .ptrSplitter, .ptrRect +.rect RECT +begin + pushad + + mov edi, [.ptrSplitter] + mov esi, [.ptrRect] + call _DoRealign + + popad + return +endp + + +; edi is pointer to the current TSplitRect +; esi is pointer to the rect that have to be assigned to the current TSplitRect +proc _DoRealign +.rect1 RECT +.rect2 RECT +begin + +; copy the rect to the target rectangles. + mov eax, [esi+RECT.left] + mov ecx, [esi+RECT.top] + + mov [edi+TSplitRect.rect.left], eax + mov [edi+TSplitRect.rect.top], ecx + + mov [edi+TSplitRect.spRect.left], eax + mov [edi+TSplitRect.spRect.top], ecx + + mov [.rect1.left], eax + mov [.rect1.top], ecx + mov [.rect2.left], eax + mov [.rect2.top], ecx + + mov eax, [esi+RECT.right] + mov ecx, [esi+RECT.bottom] + + mov [edi+TSplitRect.rect.right], eax + mov [edi+TSplitRect.rect.bottom], ecx + + mov [edi+TSplitRect.spRect.right], eax + mov [edi+TSplitRect.spRect.bottom], ecx + + mov [.rect1.right], eax + mov [.rect1.bottom], ecx + mov [.rect2.right], eax + mov [.rect2.bottom], ecx + + mov esi, edi ; current TSplitRect + add edi, sizeof.TSplitRect ; goto next one + + mov ecx, [esi+TSplitRect.type] + test ecx, stNone + jnz .resize_window + +; There is split, so compute it. + and ecx, stVert ; it is 0 for stHoriz and 4 for stVert + + mov ebx, [esi+TSplitRect.rect.right+ecx] + sub ebx, [esi+TSplitRect.rect.left+ecx] ; ebx = size of rect (x or y depending on type) + mov edx, [esi+TSplitRect.spWidth] + + test [esi+TSplitRect.type], stHidden or stMaxHidden + jz .hidden_ok1 + xor edx, edx +.hidden_ok1: + + sub ebx, edx + + mov eax, [esi+TSplitRect.pos] ; limit the .pos value + + test [esi+TSplitRect.type], stAutosize + jz .autosize_ok + + call __GetSplitAutosize + +.autosize_ok: + + cmp eax, [esi+TSplitRect.min] + cmovl eax, [esi+TSplitRect.min] + + cmp eax, [esi+TSplitRect.max] + cmovg eax, [esi+TSplitRect.max] + + mov [esi+TSplitRect.pos],eax ; EAX = position of the splitter. + + test [esi+TSplitRect.type], stHidden + jz .hidden_ok2 + xor eax, eax +.hidden_ok2: + + test [esi+TSplitRect.type], stMaxHidden + jz .hidden_ok3 + mov eax, [esi+TSplitRect.max] +.hidden_ok3: + + mov ecx, [esi+TSplitRect.type] + and ecx, $ff ; Here ECX = 0, 4, 8 or 12 depending on stVert and stOriginBR + + test [esi+TSplitRect.type], stRelative + jz .posready + + imul eax, ebx + sar eax, 15 ; div $8000 + +.posready: + test ecx, stOriginBR + jz .readyofs ; it is Left or Top + + neg edx ; EDX is the width of the splitter + neg eax ; EAX is the position of the splitter + +.readyofs: + add eax, [.rect1.left+ecx] ; .left or .top, depending on the ECX (0 or 4) + + mov [.rect1.right+ecx], eax ; .right or .bottom, depending on the ECX + mov [esi+TSplitRect.spRect.left+ecx], eax ; spRect.left or spRect.top + + add ecx, 8 ; right or bottom + and ecx, $0f ; ecx = 8, 12, 0 or 4 depending on stVert and stOriginBR + + add eax, edx + mov [.rect1.right+ecx], eax ; it is rect2.left or .top !!!!!! + mov [esi+TSplitRect.spRect.left+ecx], eax ; spRect.right or spRect.bottom + + + push esi + + lea esi, [.rect1] + call _DoRealign + + lea esi, [.rect2] + call _DoRealign + + pop esi + return + +.resize_window: + mov ebx, [esi+TSplitRect.pWindow] + test ebx, ebx + jz .endresize + + mov eax, [esi+TSplitRect.rect.left] + mov ecx, [esi+TSplitRect.rect.top] + + exec ebx, TWindow:Move, eax, ecx + + mov eax, [esi+TSplitRect.rect.right] + mov ecx, [esi+TSplitRect.rect.bottom] + sub eax, [esi+TSplitRect.rect.left] + sub ecx, [esi+TSplitRect.rect.top] + + xor edx, edx + + test eax, eax + cmovs eax, edx + + test ecx, ecx + cmovs ecx, edx + +; Visible + test eax, eax + setnz dl + test ecx, ecx + setnz dh + and dl, dh + movzx edx, dl + + set ebx, TWindow:Visible, edx + exec ebx, TWindow:Resize, eax, ecx + +.endresize: + return +endp + + + +proc __GetSplitAutosize +.rect RECT +begin + pushad + mov ebx, [esi+TSplitRect.pWindow] + test ebx, ebx + jz .finish + + mov ebx, [esi+ebx+TSplitRect.pWindow] + test ebx, ebx + jz .finish + + exec ebx, TWindow:Autosize ; returns eax - width; edx - height; + + test [esi+TSplitRect.type], stVert + cmovnz eax, edx ; here edx is the pos of the splitter + + mov [esp+4*regEAX], eax + +.finish: + popad + return +endp + + + + + + + + +proc DrawSplitters, .pImage, .ptrSplitters, .xDst, .yDst, .width, .height, .ofsx, .ofsy, .proc_draw_splitter +.rect RECT +begin + pushad + + mov eax, [.xDst] + mov edx, [.yDst] + add [.width], eax + add [.height], edx + + lea ebx, [.xDst] + + mov esi, [.ptrSplitters] + lea edi, [.rect] + call .DoDrawSplitters + popad + return + +; esi - pointer to TSplitRect +.DoDrawSplitters: + + lea eax, [esi+TSplitRect.spRect] + stdcall RectCopy, edi, eax + + mov eax, [.ofsx] + mov edx, [.ofsy] + add [edi+RECT.left], eax + add [edi+RECT.top], edx + add [edi+RECT.right], eax + add [edi+RECT.bottom], edx + + mov edx, [esi+TSplitRect.type] + add esi, sizeof.TSplitRect + + test edx, stNone + jnz .exit + + test edx, stJustGap + jnz .next + + stdcall [.proc_draw_splitter], [.pImage], edi, edx, ebx + +.next: + call .DoDrawSplitters ; first + call .DoDrawSplitters ; second + +.exit: + retn +endp + + + +; Returns: +; CF=1; the splitter has been found. EAX=pointer to TSplitRect structure. +; CF=0; the splitter has not been found. EAX not changed. + +proc FindSplitter, .ptrSplitters, .ptrPoint +begin + pushad + + mov esi, [.ptrSplitters] + mov edi, [.ptrPoint] + + call _DoFindSplitter + jnc .exit + mov [esp+4*regEAX], ebx +.exit: + popad + return +endp + + +proc _DoFindSplitter +begin + mov ebx, esi + add esi, sizeof.TSplitRect + + test [ebx+TSplitRect.type], stNone + jnz .exit + + lea eax, [ebx+TSplitRect.spRect] + + stdcall PointInRect, eax, [edi+POINT.x], [edi+POINT.y] + jnc .next + return + +.next: + call _DoFindSplitter ; first + jc .exit + + call _DoFindSplitter ; second +.exit: + return +endp + + + +proc FindSplitterCell, .ptrSplitters, .ptrPoint +begin + pushad + mov esi, [.ptrSplitters] + mov edi, [.ptrPoint] + mov ecx, 1 ; one splitter expected. + +.loop: + add ecx, 2 + test [esi+TSplitRect.type], stNone + jz .next + + sub ecx, 2 + + lea eax, [esi+TSplitRect.rect] + stdcall PointInRect, esi, [edi+POINT.x], [edi+POINT.y] + jc .found + +.next: + lea esi, [esi+sizeof.TSplitRect] + dec ecx + jnz .loop +; here CF=0 + popad + return + +.found: +; here CF=1 + mov [esp+regEAX*4], esi + popad + return +endp + + + +proc ReadSplitGridTemplate, .ptrTemplate +begin + pushad + + mov edx, [.ptrTemplate] + test edx, edx + jz .finish + + mov esi, edx + + stdcall CreateArray, sizeof.TSplitRect + mov edx, eax + + mov ecx, 1 + +.read_loop: + stdcall AddArrayItems, edx, 1 + + push eax ecx + + mov edi, eax + mov ecx, sizeof.TSplitRect/4 + xor eax, eax + rep stosd + + pop ecx edi + + xor eax, eax + lodsw ; the stXXX values. + + mov [edi+TSplitRect.type], eax + + test eax, stNone + jnz .empty_cell + + lodsw ; the width + mov [edi+TSplitRect.spWidth], eax + + xor ebx, ebx + lodsd + test [edi+TSplitRect.type], stAutosize + jz @f + + mov ebx, eax ; the index of the auto + sub ebx, [edx+TArray.count] + inc ebx + imul ebx, sizeof.TSplitRect + xor eax, eax + +@@: + mov [edi+TSplitRect.pWindow], ebx + mov [edi+TSplitRect.pos], eax + lodsd + mov [edi+TSplitRect.min], eax + lodsd + mov [edi+TSplitRect.max], eax + + inc ecx + jmp .read_loop + +.empty_cell: + lodsw + mov [edi+TSplitRect.id], eax + dec ecx + jnz .read_loop + +.finish: + mov [esp+regEAX*4], edx + popad + return +endp + + + +cdspHide = 0 +cdspShow = 1 +cdspToggle = 2 + +; fDisplay = 0 -> hide, 1->show, 2->switch + +proc CellMinMax, .pForm, .cellID, .fDisplay +begin + pushad + + get esi, [.pForm], TForm:SplitGrid + test esi, esi + jz .error + + lea esi, [esi+TArray.array] + mov edi, esi + + mov eax, [.cellID] + shl eax, 6 ; * sizeof.TSplitRect + add esi, eax + + xor ecx, ecx + +; Search for the split element of this cell + +.loop: + sub esi, sizeof.TSplitRect + cmp esi, edi + jb .error + + bt [esi+TSplitRect.type], 7 ; stNone + sbb edx, edx ; -1 if the element is a cell and 0 if split + lea edx, [2*edx+1] ; -1 if the element is a cell and +1 if split + + add ecx, edx + jl .loop + +; here ecx = 0 if the cell is the second cell +; ecx = +1 if the cell is the first cell + + test [esi+TSplitRect.type], stOriginBR + jz @f + xor ecx, 1 ; reverse it if the split is stOriginBR +@@: + add ecx, 12 ; stMaxHidden = 2^12; stHidden = 2^13 + + xor edx, edx + inc edx + + shl edx, cl ; edx = stHidden or stMaxHidden depending on the cell that has to be hidden or shown. + + mov ecx, edx + not ecx ; AND mask. + +; found + cmp [.fDisplay], 0 + sete al + shr al, 1 + sbb eax, eax ; eax = $ffffffff or 0 depending on the .fDisplay flag. + + cmp [.fDisplay], 2 + je .xor + + and edx, eax + + and [esi+TSplitRect.type], ecx + or [esi+TSplitRect.type], edx ; set only one. + jmp .realign + +.xor: + xor [esi+TSplitRect.type], edx + +.realign: + stdcall RealignGrid, esi, esi ; realign on its own rectangle. + + mov eax, [esi+TSplitRect.type] + mov [esp+4*regEAX], eax ; return the result split type. + + clc + popad + return + +.error: + stc + popad + return +endp + + + + +endmodule ADDED freshlib/gui/TAction.asm Index: freshlib/gui/TAction.asm ================================================================== --- /dev/null +++ freshlib/gui/TAction.asm @@ -0,0 +1,492 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Actions management library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: "Action" is set of executable code, combined with user interface attributes - +; caption, accelerator keys, enable/disable status flag etc. +; Different UI elements, such as buttons, menu items etc. can be attached to +; the action object and to use its attributes. When the programmer changes +; something in the action, all UI elements are updated automatically. +;_________________________________________________________________________________________ + +module "TAction" + +Ctrl = maskCtrl +Alt = maskAlt +Shift = maskShift + + +struct TFastKey + .flags dd ? + .key dd ? +ends + + +object TAction, TObject + + ._caption dd ? + ._hint_text dd ? + ._icon_index dd ? + ._enabled dd ? + ._checked dd ? + + ._accel TFastKey + + ._on_execute dd ? + ._on_idle dd ? + + ._ctrl_list dd ? + + ._icon_cache_gray dd ? + ._icon_cache dd ? + + param .Caption, .GetCaption, .SetCaption + param .HintText, ._hint_text, .SetHintText + param .IconIndex, ._icon_index, .SetIconIndex + param .Enabled, ._enabled, .SetEnabled + param .Checked, ._checked, .SetChecked + param .Accelerator, .GetAccelStr, .SetAccelStr + param .Icon, .GetIcon, NONE + + param .OnExecute, ._on_execute, ._on_execute + param .OnIdle, ._on_idle, ._on_idle + + method .GetIcon + method .GetAccelStr + method .SetAccelStr, .value + method .GetCaption + + method .SetParent, .value + + method .SetCaption, .value + method .SetHintText, .value + method .SetIconIndex, .value + method .SetEnabled, .value + method .SetChecked, .value + + method .UpdateControls + + method .SetAccelerator, .flags, .key + + method .Execute, .fromCtrl + method .Attach, .ctrl + method .Detach, .ctrl + + method .Create, .parent + method .Destroy + + method .__clear_cache + +endobj + + + +interface TAction.OnExecute, .Action, .Ctrl +interface TAction.OnIdle, .Action + + + +method TAction.Create +begin + inherited [.parent] + + pushad + mov eax, [.self] + mov [eax+TAction._enabled], 1 + return +endp + + + + +method TAction.Destroy +begin + pushad + + get eax, [.self], TAction:Caption + stdcall StrDel, eax + + mov esi, [.self] + exec esi, TAction:__clear_cache + + xor edi, edi + xchg edi, [esi+TAction._ctrl_list] + test edi, edi + jz .finish + + mov ecx, [edi+TArray.count] + +.loop: + dec ecx + js .end_loop + + mov eax, [edi+TArray.array+4*ecx] + test eax, eax + jz .loop + + set eax, TWindow:Action, 0 + jmp .loop + +.end_loop: + stdcall FreeMem, edi + + +.finish: + popad + inherited + return +endp + + + +method TAction.SetParent +begin + inherited [.value] + exec [.self], TAction:UpdateControls + return +endp + + + +method TAction.Execute +begin + pushad + + mov esi, [.self] + + cmp [esi+TAction._enabled], 0 + je .finish + + mov edi, [esi+TAction._on_execute] + test edi, edi + jz .finish + + stdcall edi, esi, [.fromCtrl] + +.finish: + popad + return +endp + + + + +method TAction.Attach +begin + pushad + + mov esi, [.self] + mov edx, [esi+TAction._ctrl_list] + test edx, edx + jnz .list_ok + + stdcall CreateArray, 4 + mov edx, eax + jmp .add_it + +.list_ok: + stdcall ListIndexOf, edx, [.ctrl] + jnc .finish + +.add_it: + stdcall AddArrayItems, edx, 1 + mov ecx, [.ctrl] + mov [eax], ecx + mov [esi+TAction._ctrl_list], edx + +.finish: + popad + return +endp + + + + +method TAction.Detach +begin + pushad + + mov esi, [.self] + mov edx, [esi+TAction._ctrl_list] + test edx, edx + jz .finish + + stdcall ListIndexOf, edx, [.ctrl] + jc .finish ; not found + + stdcall DeleteArrayItems, edx, eax, 1 + + cmp [edx+TArray.count], 0 + jne @f + + stdcall FreeMem, edx + xor edx, edx + +@@: + mov [esi+TAction._ctrl_list], edx + +.finish: + popad + return +endp + + + + +method TAction.GetIcon +.list dd ? +begin + pushad + mov esi, [.self] + + mov edi, [esi+TAction._enabled] + and edi, 1 + + mov eax, [esi+TAction._icon_cache_gray+4*edi] + test eax, eax + jnz .finish + + mov edx, [esi+TAction._icon_index] + test edx, edx + js .finish ; return 0 + + get [.list], esi, TAction:Parent + get ecx, [.list], TActionList:IconSize + + stdcall CreateImage2, ecx, ecx, FALSE + mov [esi+TAction._icon_cache_gray+4*edi], eax + + imul edx, ecx ; x coordinate. + + get ebx, [.list], TActionList:ImgIcons + test ebx, ebx + jz .finish + + stdcall CopyImageRect, eax, 0, 0, ebx, edx, 0, ecx, ecx + test edi, edi + jnz .finish + + stdcall FilterDisabled, eax, FALSE + +.finish: + mov [esp+regEAX*4], eax + popad + return +endp + + +method TAction.GetAccelStr +begin + mov eax, [.self] + lea eax, [eax+TAction._accel] + stdcall AcceleratorToStr, eax + return +endp + + +method TAction.SetAccelStr; , .value +begin + push eax edx + stdcall StrToAccelerator, [.value] + exec [.self], TAction:SetAccelerator, eax, edx + pop edx eax + return +endp + + + +method TAction.__clear_cache +begin + push eax edx + mov edx, [.self] + + xor eax, eax + xchg eax, [edx+TAction._icon_cache] + test eax, eax + jz .cache_ok1 + + stdcall DestroyImage, eax + +.cache_ok1: + xor eax, eax + xchg eax, [edx+TAction._icon_cache_gray] + test eax, eax + jz .cache_ok2 + + stdcall DestroyImage, eax + +.cache_ok2: + + pop edx eax + return +endp + + + +method TAction.UpdateControls +begin + push eax ecx edx + + mov edx, [.self] + + exec edx, TAction:__clear_cache + + mov edx, [edx+TAction._ctrl_list] + test edx, edx + jz .finish + + mov ecx, [edx+TArray.count] +.loop: + dec ecx + js .finish + + cmp [edx+TArray.array+4*ecx], 0 + je .loop + +; OutputValue "Update action for window: ", [edx+TArray.array+4*ecx], 16, 8 + + exec [edx+TArray.array+4*ecx], TWindow:UpdateAction, [.self] + jmp .loop + +.finish: + pop edx ecx eax + return +endp + + + +method TAction.GetCaption +begin + mov eax, [.self] + mov eax, [eax+TAction._caption] + test eax, eax + jz .finish + + stdcall StrDup, eax + +.finish: + return +endp + + +method TAction.SetCaption ;, .value +begin + pushad + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TAction._caption] + je .finish + + mov [esi+TAction._caption], eax + exec esi, TAction:UpdateControls + +.finish: + popad + return +endp + + + +method TAction.SetHintText ;, .value +begin + pushad + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TAction._hint_text] + je .finish + + mov [esi+TAction._hint_text], eax + exec esi, TAction:UpdateControls + +.finish: + popad + return +endp + + + +method TAction.SetIconIndex ;, .value +begin + pushad + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TAction._icon_index] + je .finish + + mov [esi+TAction._icon_index], eax + exec esi, TAction:UpdateControls + +.finish: + popad + return +endp + + + +method TAction.SetEnabled ;, .value +begin + pushad + mov esi, [.self] + mov eax, [.value] + test eax, eax + setnz al + movzx eax, al + + cmp eax, [esi+TAction._enabled] + je .finish + + mov [esi+TAction._enabled], eax + exec esi, TAction:UpdateControls + +.finish: + popad + return +endp + + + +method TAction.SetChecked ;, .value +begin + pushad + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TAction._checked] + je .finish + + mov [esi+TAction._checked], eax + + exec esi, TAction:UpdateControls + +.finish: + popad + return +endp + + + +method TAction.SetAccelerator +begin + pushad + + mov esi, [.self] + + mov eax, [.flags] + mov ecx, [.key] + mov [esi+TAction._accel.flags], eax + mov [esi+TAction._accel.key], ecx + + exec esi, TAction:UpdateControls + + popad + return +endp + + +endmodule ADDED freshlib/gui/TActionList.asm Index: freshlib/gui/TActionList.asm ================================================================== --- /dev/null +++ freshlib/gui/TActionList.asm @@ -0,0 +1,171 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Actions management library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: TActionList is set of TAction that provides some common functionality +; for example the common icons. It is implemented as a parent object for +; several TAction objects. +;_________________________________________________________________________________________ + +module "TActionList" + + +object TActionList, TObject + + ._img_icons dd ? + ._icon_size dd ? + ._form dd ? + + param .ImgIcons, ._img_icons, .SetIcons + param .IconSize, ._icon_size, .SetIconSize + + param .Form, ._form, ._form + + method .Create, .parent + method .Destroy + + method .SetIcons, .value + method .SetIconSize, .value + + method .UpdateActions + method .EventKeyPress, .utf8, .keycode, .kbdState ; returns CF=1 if an accelerator key has been detected and executed. + +endobj + + + +method TActionList.Create +begin + inherited [.parent] + set [.self], TActionList:IconSize, 16 + return +endp + + +method TActionList.Destroy +begin + get eax, [.self], TActionList:ImgIcons + stdcall DestroyImage, eax + inherited + return +endp + + +method TActionList.SetIconSize +begin + push eax ecx + + mov ecx, [.self] + mov eax, [.value] + xchg eax, [ecx+TActionList._icon_size] + cmp eax, [ecx+TActionList._icon_size] + je .finish + + exec ecx, TActionList:UpdateActions + +.finish: + pop ecx eax + return +endp + + + +method TActionList.UpdateActions +begin + pushad + + get edx, [.self], TActionList:FirstChild + +.loop: + test edx, edx + jz .finish + + exec edx, TAction:UpdateControls + + mov edx, [edx+TObject.__next] + jmp .loop + +.finish: + popad + return +endp + + + +method TActionList.SetIcons +begin + pushad + +; the .value parameter points to a PNG image in the memory. + mov esi, [.self] + + get ecx, esi, TActionList:ImgIcons + jecxz .old_ok + + stdcall DestroyImage, ecx + +.old_ok: + mov eax, [.value] + test eax, eax + jz .new_ok + + stdcall CreateImagePNG, eax, -1 + +.new_ok: + mov [esi+TActionList._img_icons], eax + exec [.self], TActionList:UpdateActions + popad + return +endp + + + +method TActionList.EventKeyPress +begin + push eax edx + get edx, [.self], TActionList:FirstChild + +.loop: + test edx, edx + jz .finish_no + + cmp [edx+TAction._accel.key], 0 + je .next + + mov eax, [.keycode] + cmp eax, [edx+TAction._accel.key] + jne .next + + mov eax, [.kbdState] + and eax, Alt or Ctrl or Shift + cmp eax, [edx+TAction._accel.flags] + je .execute + +.next: + mov edx, [edx+TObject.__next] + jmp .loop + +.execute: + exec edx, TAction:Execute, 0 + stc + pop edx eax + return + +.finish_no: + clc + pop edx eax + return +endp + + + + + +endmodule ADDED freshlib/gui/TAsmEdit.asm Index: freshlib/gui/TAsmEdit.asm ================================================================== --- /dev/null +++ freshlib/gui/TAsmEdit.asm @@ -0,0 +1,6496 @@ +; ______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TAsmEdit object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Advanced text editor. +;_________________________________________________________________________________________ + +module "TAsmEdit" + +; view options: how the editor looks +aeoLeftMargin = $01 +aeoLineNumbers = $02 +aeoStripedBackground = $04 +aeoConsoleCaret = $08 + +; navigation options +aeoScrollYMore = $0100 ; scroll Y more than needed in order to scroll less and to scroll more readable. +aeoScrollXMore = $0200 ; scroll X more than needed + +; editing options + +aeoAutoIndents = $010000 +aeoAutoBrackets = $020000 +aeoSmartTabs = $040000 +aeoPersistentSelection = $080000 + +aeoDefault = aeoLeftMargin or aeoLineNumbers or aeoConsoleCaret or aeoAutoIndents or aeoSmartTabs or aeoScrollXMore or aeoStripedBackground + +; editor mode flags + +aemOverwrite = 1 +aemBlockSelection = 2 + + + +; Operations for undo/redo: + +chopInserted = 0 +chopDeleted = 1 +chopChanged = 2 + + +struct TUndoInfo + .pNext dd ? ; pointer to the next TUndoInfo structure in the chain. + + .caretPos POINT + .selStart POINT + .selEnd POINT + .modified dd ? ; the modified status. + .operation dd ? ; change operation. + .group dd ? ; + .line dd ? ; the line number affected. + .pText dd ? ; pointer to the previous TTextLine of the affected line for chopChanged and chopDeleted +ends + + +; The element of the [TTextLine.syn_array] array. Contains information about text highlighting + +struct TTextChunk + .bytes dw ? ; the length of the text chunk in bytes. (UTF-8 characters???) + .color db ? ; byte, index of the color/background of the text chunk. + .flags db ? ; the text formatting flags. not used, reserved. For example underlining, bold, etc... +ends + + +; Constants for the TTextLine.flags + +tlfWrapText = $00000001 ; The text is wrapped to fit to the wrap width of the editor. Not used/not implemented yet!!! +tlfBookmark = $00000002 ; There is a bookmark on the line. +tlfBreakpoint = $00000004 +tlfRendered = $80000000 ; The line is properly rendered. +tlfHighlightNeutral = $40000000 ; The line is highlighted with neutral color. +tlfHighlightError = $20000000 ; the line is highlighted with error color. +tlfmClearHighlight = not (tlfHighlightNeutral or tlfHighlightError) + +; The structure for one text line. This structure is expanded TText gap buffer structure. +; contains the line/IDE related information and UTF-8 encoded text of the line. +; For example the line colorization, format, syntax context, pointer to the debug data, etc. + +rstruct TTextLine + .flags dd ? ; line flags + .ch_len dd ? ; the length of the text in utf-8 characters. + ; + .debugdata dd ? ; pointer to debug data, associated to this line + ; + .syn_array dd ? ; TArray of TTextChunk items for syntax colorization. + ; Should be updated by calling the syntax highlighting proc. + ; + .syn_context dd ? ; Syntax context after the line + ; + .fold_level dd ? ; the level of folding. + + .imgRendered dd ? ; the TImage with the rendered line. + rd 1 + ; + . TText +ends + + +; Search options constants + +srchCaseSensitive = tsfCaseSensitive +srchWholeWords = 2 + + +object TAsmEdit, TScrollable + +; private fields + + ._lines dd ? ; pointer to TText structure that contains pointers to TTextLine structures. + ._line_widths dd ? ; TArray of TCounter for counting the line width. Must be kept in consistency. + + ._end_of_line rd 1 ; string (not a pointer) with up to 3 characters for EOL termination. Usually only 1 or 2 are used. + + ._imgMargin dd ? + ._img_margin_valid dd ? + + ._pUndo dd ? + ._pRedo dd ? + ._UndoLevel dd ? + ._prev_char dd ? + + ._options dd ? ; behaviour bit options: aeoXXXXXX values. + ._mode dd ? ; set of aemXXXXX flags. + + ._modified dd ? + + ._font_height dd ? + ._font_asc dd ? + ._font_desc dd ? + + ._font_width dd ? + + ._numfont_width dd ? + + ._left_margin dd ? + ._num_margin dd ? + + ._caretPos POINT ; the position of the caret in absolute text coordinates. + + ._selStart POINT ; The selection start point + ._selEnd POINT ; + ._selAreaUpdate dd ? + + ._selCmd dd ? ; ==0 if the shift key wasn't pressed on the last keyboard interaction. + ._selCmdPrev dd ? ; the previous value of the _selCmd field. + + ._drag_button dd ? + + ._width_ch dd ? ; width and + ._height_ch dd ? ; height of the window in chars. Partial rows and columns are counted + + ._width_ch_nav dd ? ; width and + ._height_ch_nav dd ? ; height of the window in chars. For caret navigation purposes. Only full rows and columns. + + ._prev_y_from dd ? ; what lines were on the screen when the previous lines images cache + ._prev_y_to dd ? ; was cleaned up. Used in the .__InvalidateImgCache method. + + ._syntax_proc dd ? + + ._on_mode_change dd ? + ._on_caret_move dd ? + +; Current editor search data + ._search_index dd ? ; index of the found instances of ._search_str: array of POINT + ._search_str dd ? ; handle of the last search string + ._search_options dd ? ; search options + +; parameters + + param .Options, ._options, .SetOptions + param .Mode, ._mode, .SetMode + param .EndOfLine, ._end_of_line, .SetEOL + + param .Selection, .GetSelection, NONE + param .Text, .GetText, .SetText ; This property works with pointer to a asciiz terminated string for "set" and TText for "get" instructions. + + param .LMImage, .GetLeftMargin, NONE + + param .CaretX, ._caretPos.x, .SetCaretX + param .CaretY, ._caretPos.y, .SetCaretY + param .SelStartX, ._selStart.x, NONE + param .SelStartY, ._selStart.y, NONE + param .SelEndX, ._selEnd.x, NONE + param .SelEndY, ._selEnd.y, NONE + + param .WordAtCaret, .GetWordAtCaret, NONE + + param .SyntaxProc, ._syntax_proc, .SetSyntaxProc + + param .OnModeChange, ._on_mode_change, ._on_mode_change + param .OnCaretMove, ._on_caret_move, ._on_caret_move + + param .Modified, ._modified, ._modified + +; param methods + + method .SetCaretX, .value + method .SetCaretY, .value + + method .SetOptions, .value + method .SetMode, .value + method .SetEOL, .value + + + method .HasSelection + method .GetSelection + + method .GetText + method .SetText, .value + + method .GetWordAtCaret + method .ReplaceWordAtCaret, .new_word + + method .GetLeftMargin + + method .ComputeLeftMarginWidth + method .ComputeScreenInChars + + method .SetSyntaxProc, .value + + method ._AddSelRectangles, .pRectList + method ._AddSelRectanglesAbs, .pRectList + +; common methods + + method .Create, .parent + method .Destroy + + method .UpdateThemeParams + + method .__InvalidateImgCache + + method .__UpdateImages + method .Resize, .newWidth, .newHeight + method .Move, .newX, .newY + + method .UpdateScrollBar + + method .UpdateCaretPos + +; rendering methods + + method .GetLineImg, .lineNumber + + method .__RenderLine, .pTextLine, .clBackground + method ._RenderLM, .pImage, .from, .to ; .from, .to in character positions, relative to the begining of the window. + +; Painting methods + + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + + method .__DrawScrollbar, .scrollbar ; .scrollbar == scrollX or scrollY + +; Text navigarion methods + + method .Highlight, .LineNum, .fHighlight + + method .TextLine, .LineNum, .fAddMissing + + method .ScrollToCaretX + method .ScrollToCaretY + method .CenterCaretY + + method .CaretLeftRight, .count + method .CaretUpDown, .count, .scroll + + +; Selection control methods. + + method .SelStartHere + method .SelEndHere + + method .SelChangeBegin + method .SelChangeEnd + + +; undo/redo + + method .SaveForUndo, .LineNum, .operation + method .ClearUndoRedo + +; Text editing methods + + method .AddChar, .utf8 + + method .InsertNewLine, .LineNum + method .DeleteLine, .LineNum + method .DeleteChar, .LineNum, .CharPos + + method .JoinNextLine, .LineNum ; if .LineNum < 0; joins the current caret line + method .SplitLine, .LineNum, .PosX ; if .LineNum < 0 splits on caret position. + + method .DeleteSelection + method .ReplaceSelection, .text + + method .InsertString, .text + + method .AddTrailingSpaces, .LineNum, .PosX ; if the caret is positioned after the line end, fills with spaces + method .DelTrailingSpaces, .LineNum ; deletes the trailing spaces from the line end. + + method .PrefixInsert, .LineFrom, .LineTo, .char + method .PrefixRemove, .LineFrom, .LineTo, .char + method .SelectionPrefix, .op, .char + + method .GetSmartTab, .lineNum, .fromX + +; Text searching methods + + method .Search, .pattern, .options + method .SearchHere + method .SearchNext + method .SearchPrev + +; OS event handlers + + method .EventFocusIn + method .EventFocusOut + + method .EventScroll, .direction, .command, .value + method .EventKeyPress, .utf8, .scancode, .kbdState + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + method .EventButtonDoubleClick, .button, .kbdState, .x, .y + method .EventMouseMove, .x, .y, .kbdState + + +; Keyboard UI direct methods. + + ; usually assigned to: + + method .CaretLeft ; Left arrow + method .CaretRight ; Right arrow + method .CaretUp ; Up arrow + method .CaretDown ; Down arrow + + method .CaretHome ; Home + method .CaretEnd ; End + method .CaretTxtHome ; Ctrl+PgUp + method .CaretTxtEnd ; Ctrl+PgDn + method .CaretScrHome ; Ctrl+Home + method .CaretScrEnd ; Ctrl+End + + method .CaretWordBack ; Ctrl+Left + method .CaretWordForward ; Ctrl+Right + + method .Undo ; Ctrl+Z + method .CanUndo + + method .Redo ; Ctrl+Shift+Z + method .CanRedo + + method .Cut ; Ctrl+X + method .Copy ; Ctrl+C + method .Paste ; Ctrl+V + + method .ToggleBookmark + method .GoPrevBookmark + method .GoNextBookmark + method .ClearBookmarks + + method .IndentSelection + method .OutdentSelection + method .CommentSelection + method .UncommentSelection + +endobj + + + +; Create/destroy methods + +method TAsmEdit.Create +begin + inherited [.parent] + + pushad + + mov edi, [.self] + + set edi, TAsmEdit:Cursor, mcText + set edi, TAsmEdit:WantFocus, TRUE + set edi, TAsmEdit:Behavior, wbUseTabKeys or wbUseEnterKey + exec edi, TAsmEdit:UpdateThemeParams + + set edi, TAsmEdit:Text, 0 + set edi, TAsmEdit:Options, aeoDefault + set edi, TAsmEdit:EndOfLine, dNEWLINE + + popad + return +endp + + + +method TAsmEdit.Destroy +begin + push ecx + mov ecx, [.self] + + DebugMsg "TAsmEdit DESTROY!!!" + + set ecx, TAsmEdit:Text, 0 ; Clear all the text. + stdcall TextFree, [ecx+TAsmEdit._lines] ; Release the lines TText structure. + + stdcall DestroyImage, [ecx+TAsmEdit._imgMargin] + + pop ecx + inherited + return +endp + + + +method TAsmEdit.UpdateThemeParams +begin + pushad + + mov edi, [.self] + + set edi, TAsmEdit:StepX, [ASM.MouseWheel] + set edi, TAsmEdit:StepY, [ASM.MouseWheel] + + stdcall GetFontMetrics, [ASM.Font] + jc .finish + + mov [edi+TAsmEdit._font_height], eax + mov [edi+TAsmEdit._font_asc], ebx + mov [edi+TAsmEdit._font_desc], edx + +; OutputValue " Font height:", eax, 10, -1 +; OutputValue " Font ascender:", ebx, 10, -1 +; OutputValue "Font descender:", edx, 10, -1 + + stdcall GetTextBounds, "ABCDEFGH", 8, [ASM.Font] + sar eax, 3 + jnz @f + inc eax +@@: + mov [edi+TAsmEdit._font_width], eax + +; OutputValue " Font width:", eax, 10, -1 + + stdcall GetTextBounds, "99999999", 8, [ASM.NumFont] + sar eax, 3 + jnz @f + inc eax +@@: + mov [edi+TAsmEdit._numfont_width], eax + + cmp [edi+TAsmEdit._lines], 0 + je .finish + + stdcall FreeImagePool + + mov esi, [edi+TAsmEdit._lines] + test esi, esi + jz .end_free_loop + + xor ecx, ecx + +.free_loop: + mov eax, [esi+TText.GapBegin] + cmp ecx, eax + cmovae eax, [esi+TText.GapEnd] + sub eax, [esi+TText.GapBegin] + add eax, ecx + + cmp eax, [esi+TText.Length] + jae .end_free_loop + + mov edx, [esi+eax] + + xor eax, eax + xchg eax, [edx+TTextLine.imgRendered] + stdcall DestroyImage, eax + + and [edx+TTextLine.flags], not tlfRendered + + add ecx, 4 + jmp .free_loop + +.end_free_loop: + + and [edi+TAsmEdit._img_margin_valid], 0 + exec edi, TAsmEdit:ComputeScreenInChars + exec edi, TAsmEdit:UpdateCaretPos + + exec edi, TAsmEdit:RectChanged2, 0 + +.finish: + popad + return +endp + + + + +method TAsmEdit.GetLineImg ; .lineNumber +begin + pushad + + mov eax, [.self] + + xor edx, edx + test [esi+TAsmEdit._options], aeoStripedBackground + cmovnz edx, [.lineNumber] + and edx, 1 + mov edx, [ASM.clBackground+4*edx] ; the background color later for __RenderLine + + mov esi, [eax+TAsmEdit._lines] + + xor ebx, ebx + + mov eax, [.lineNumber] + shl eax, 2 + + cmp eax, [esi+TText.GapBegin] + jb @f + add eax, [esi+TText.GapEnd] + sub eax, [esi+TText.GapBegin] +@@: + cmp eax, [esi+TText.Length] + jae .finish + + mov edi, [esi+eax] ; TTextLine + + mov eax, [edi+TTextLine.flags] + shr eax, 29 ; tlfHighlightNeutral or tlfHighlightError + and eax, 3 + jz .color_ok + cmp eax, 3 + je .color_ok + + mov edx, [ASM.clBackground+4+4*eax] + +.color_ok: + + mov ebx, [edi+TTextLine.imgRendered] + + mov esi, [.self] + mov ecx, [edi+TTextLine.ch_len] + imul ecx, [esi+TAsmEdit._font_width] + + test ebx, ebx + jz .create + + test ecx, ecx + jz .destroy + + cmp ecx, [ebx+TImage.wrapW] + je .render_it + + and [edi+TTextLine.flags], not tlfRendered + +;.check_width: + cmp ecx, [ebx+TImage.width] + jle .set_wrap + +.destroy: + xor ebx, ebx + xchg ebx, [edi+TTextLine.imgRendered] + + stdcall RecycleImage, ebx + xor ebx, ebx + +.create: + test ecx, ecx + jz .finish ; here ebx == 0 always. + + stdcall GetRecycledImage, ecx, [esi+TAsmEdit._font_height], griMoreWidth or griExactHeight + mov [edi+TTextLine.imgRendered], eax + mov ebx, eax + +.set_wrap: + stdcall SetImageWrap, ebx, ecx, [esi+TAsmEdit._font_height] + +.render_it: + test [edi+TTextLine.flags], tlfRendered + jnz .finish + + exec esi, TAsmEdit:__RenderLine, edi, edx + +.finish: + mov [esp+4*regEAX], ebx + popad + return +endp + + +method TAsmEdit.GetLeftMargin +begin + pushad + mov esi, [.self] + mov edx, [esi+TAsmEdit._imgMargin] + + cmp [esi+TAsmEdit._img_margin_valid], 0 + jne @f + exec esi, TAsmEdit:_RenderLM, edx, 0, [esi+TAsmEdit._height_ch] + inc [esi+TAsmEdit._img_margin_valid] +@@: + mov [esp+4*regEAX], edx + popad + return +endp + + +; This method should be called on every operation that changes +; what text lines are displayed on the screen. +; 1. On any scroll in Y direction. +; 2. On inserting or deleting line in the text. +; 3. On window resize in Y direction. +; The call should be made after the actual parameter has been changed, +; but before the editor window has been rendered. +; +; The method removes the TTextLine.imgRendered images from the lines +; that are off the screen (with possible support for some reserve off +; the screen for faster rendering. +; +; Also, it is possible to render offscreen lines and cache cleanup +; in a separate thread in order to provide the best possible speed. +; +; prev: x0|=======|y0 +; current: x1|-------|y1 +; +; x0|=======|y0 +; x1|-------|y1 +; +; x0|=======|y0 +; x1|--------|y1 +; +; x0|=======|y0 +; x1|-------|y1 +; +; +; x0|=======|y0 +; x1|---------------|y1 +; +; x0|===============|y0 +; x1|-------|y1 +; +;Left interval to recycle: +; from min(x0, x1) to min(y0, x1) +; +;Right interval to recycle: +; from max(x0, y1) to max(y0, y1) +; + +method TAsmEdit.__InvalidateImgCache +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._lines] + + get ebx, esi, TAsmEdit:PosY ; x1 + + mov ecx, [esi+TAsmEdit._prev_y_from] ; x0 + mov edx, [esi+TAsmEdit._prev_y_to] ; y0 + +; left interval + + cmp ecx, ebx ; x0, x1 + cmovg ecx, ebx ; ecx = min(x0, x1) = from left + + cmp edx, ebx ; y1, x1 + cmovg edx, ebx ; edx = min(y0, x1) = to left + + call .recycle_loop + + mov ecx, [esi+TAsmEdit._prev_y_from] ; x0 + mov edx, [esi+TAsmEdit._prev_y_to] ; y0 + +; store the new "previous" values. + mov [esi+TAsmEdit._prev_y_from], ebx + add ebx, [esi+TAsmEdit._height_ch] ; y1 + mov [esi+TAsmEdit._prev_y_to], ebx + + cmp ecx, ebx ; x0, y1 + cmovl ecx, ebx ; ecx = max(x0, y1) + + cmp edx, ebx ; y0, y1 + cmovl edx, ebx ; edx = max(y0, y1) + + call .recycle_loop + + popad + return + + +; iterates the lines from ecx to edx and recycles the line rendered images for future use. + +.recycle_loop: + cmp ecx, edx + jae .end_recycle + + lea eax, [4*ecx] + cmp eax, [edi+TText.GapBegin] + jb .ofs_ok + add eax, [edi+TText.GapEnd] + sub eax, [edi+TText.GapBegin] +.ofs_ok: + cmp eax, [edi+TText.Length] + jae .end_recycle + + mov eax, [edi+eax] + cmp [eax+TTextLine.imgRendered], 0 + je .next_line + + stdcall RecycleImage, [eax+TTextLine.imgRendered] + and [eax+TTextLine.imgRendered], 0 + and [eax+TTextLine.flags], not tlfRendered + +.next_line: + inc ecx + jmp .recycle_loop + +.end_recycle: + retn + +endp + + + + +; TAsmEdit.SelfPaint method + +method TAsmEdit.SelfPaint ;.pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + +.offs_x dd ? +.offs_y dd ? + +.line_x_offs dd ? +.y dd ? + +.rect_src RECT ; the rectangle on the client that need to be drawn. +.rect_ln RECT ; the rectangle of the current line that need to be drawn in line image coordinates. +.rect_rm RECT ; the rectangle of the remaining area after the end of the current line. + +.rect_dst RECT + +begin + pushad + + mov esi, [.self] + + mov ecx, [.xDst] ; + mov edx, [.yDst] ; + sub ecx, [.xSrc] ; + sub edx, [.ySrc] ; + mov [.offs_x], ecx ; + mov [.offs_y], edx ; the offset between the source and destination rectangles. + + mov ecx, [.xSrc] ; + mov edx, [.ySrc] ; + mov [.rect_src.left], ecx ; + mov [.rect_src.top], edx ; + add ecx, [.width] ; + add edx, [.height] ; + mov [.rect_src.right], ecx ; + mov [.rect_src.bottom], edx ; clip everything to the source rectangle + +; draw all lines in the rectangle... + + get eax, esi, TAsmEdit:PosX + imul eax, [esi+TAsmEdit._font_width] ; horizontal offset of the line images in pixels. + mov [.line_x_offs], eax ; from where the line image should be drawn on the client text area. (client coordinates, not related to the drawing rectangle). + + get ebx, esi, TAsmEdit:PosY + + mov eax, [.ySrc] + xor edx, edx + mov ecx, eax + div [esi+TAsmEdit._font_height] + + add ebx, eax ; the first line in the source rectangle. + + sub ecx, edx ; == ySrc - ySrc mod font_height + mov [.y], ecx ; the top Y coordinate of the first line in client coordinates. + +.line_loop: + + mov eax, [.y] + cmp eax, [.rect_src.bottom] + jge .end_lines + + mov [.rect_ln.top], eax + mov [.rect_rm.top], eax + add eax, [esi+TAsmEdit._font_height] + mov [.rect_ln.bottom], eax + mov [.rect_rm.bottom], eax + + mov ecx, [esi+TAsmEdit._left_margin] + mov [.rect_ln.left], ecx + + exec esi, TAsmEdit:GetLineImg, ebx ; returns valid, rendered TImage for the given line. + mov edx, eax + + xor eax, eax + test edx, edx + jz @f + mov eax, [edx+TImage.wrapW] +@@: + add eax, ecx + sub eax, [.line_x_offs] + cmovge ecx, eax + mov [.rect_ln.right], ecx + mov [.rect_rm.left], ecx + jle .line_ok + + lea eax, [.rect_ln] + lea ecx, [.rect_src] + stdcall RectIntersect2, eax, ecx + jc .line_ok + + mov ecx, [.rect_ln.left] + mov eax, [.rect_ln.top] + sub [.rect_ln.right], ecx + sub [.rect_ln.bottom], eax + + push ecx eax + + add ecx, [.line_x_offs] + sub ecx, [esi+TAsmEdit._left_margin] + sub eax, [.y] + mov [.rect_ln.left], ecx + mov [.rect_ln.top], eax + + pop eax ecx + add ecx, [.offs_x] + add eax, [.offs_y] + + stdcall CopyImageRect, [.pDstImage], ecx, eax, edx, [.rect_ln.left], [.rect_ln.top], [.rect_ln.right], [.rect_ln.bottom] + +.line_ok: + +; draw the remaining background if any. + + mov eax, [.rect_src.right] + mov [.rect_rm.right], eax + + lea eax, [.rect_rm] + lea ecx, [.rect_src] + stdcall RectIntersect2, eax, ecx + jc .background_ok + + xor edx, edx + exec esi, TAsmEdit:TextLine, ebx, FALSE + jc .high_ok + mov eax, [eax] + mov eax, [eax+TTextLine.flags] + shr eax, 29 + and eax, 3 + jz .high_ok + lea edx, [eax+1] + and edx, 3 +.high_ok: + + mov ecx, [.rect_rm.left] + mov eax, [.rect_rm.top] + sub [.rect_rm.right], ecx + sub [.rect_rm.bottom], eax + + add ecx, [.offs_x] + add eax, [.offs_y] ; to destination coordinates. + + test edx, edx + jnz .bgcol_ok + + test [esi+TAsmEdit._options], aeoStripedBackground + cmovnz edx, ebx + and edx, 1 + +.bgcol_ok: + stdcall DrawSolidRect, [.pDstImage], ecx, eax, [.rect_rm.right], [.rect_rm.bottom], [ASM.clBackground+4*edx] + +.background_ok: + + inc ebx + + mov eax, [esi+TAsmEdit._font_height] + add [.y], eax + jmp .line_loop + + +.end_lines: + +; Here, draw the left margin. + + xor eax, eax + mov ecx, [esi+TAsmEdit._left_margin] + mov edx, [esi+TAsmEdit._height] + mov [.rect_dst.top], eax + mov [.rect_dst.left], eax + mov [.rect_dst.right], ecx + mov [.rect_dst.bottom], edx + + lea edx, [.rect_dst] + lea ecx, [.rect_src] + stdcall RectIntersect2, edx, ecx + jc .margin_ok + + mov ecx, [.rect_dst.left] + mov eax, [.rect_dst.top] + sub [.rect_dst.right], ecx + sub [.rect_dst.bottom], eax + + add ecx, [.offs_x] + add eax, [.offs_y] + + get edx, esi, TAsmEdit:LMImage + stdcall CopyImageRect, [.pDstImage], ecx, eax, edx, [.rect_dst.left], [.rect_dst.top], [.rect_dst.right], [.rect_dst.bottom] + +.margin_ok: + +; Here, draw the selection if any. + + exec esi, TAsmEdit:_AddSelRectangles, 0 + push edx + + mov ecx, [edx+TArray.count] + test ecx, ecx + jz .selection_ok + + mov eax, [.xSrc] + mov ebx, [.ySrc] + mov [.rect_dst.left], eax + mov [.rect_dst.top], ebx + + add eax, [.width] + add ebx, [.height] + mov [.rect_dst.right], eax + mov [.rect_dst.bottom], ebx + + lea edi, [edx+TArray.array] + lea ebx, [.rect_dst] + +.loop: + mov eax, [edi+RECT.left] + mov edx, [edi+RECT.top] + + imul eax, [esi+TAsmEdit._font_width] + imul edx, [esi+TAsmEdit._font_height] + + add eax, [esi+TAsmEdit._left_margin] + + mov [edi+RECT.left], eax + mov [edi+RECT.top], edx + + mov eax, [edi+RECT.right] + mov edx, [edi+RECT.bottom] + + imul eax, [esi+TAsmEdit._font_width] + imul edx, [esi+TAsmEdit._font_height] + + add eax, [esi+TAsmEdit._left_margin] + + mov [edi+RECT.right], eax + mov [edi+RECT.bottom], edx + + stdcall RectIntersect2, edi, ebx + jc .next + + push [ASM.clSelection] + + mov edx, [edi+RECT.bottom] + mov eax, [edi+RECT.right] + sub edx, [edi+RECT.top] + sub eax, [edi+RECT.left] + + push edx ; height + push eax ; width + + mov eax, [edi+RECT.left] + mov edx, [edi+RECT.top] + add eax, [.offs_x] + add edx, [.offs_y] + +; stdcall BlendSolidRect, [.pDstImage], eax, edx ; remaining arguments from the stack. + stdcall XorRect, [.pDstImage], eax, edx ; remaining from the stack + +.next: + add edi, sizeof.RECT + dec ecx + jnz .loop + +.selection_ok: + stdcall FreeMem ; from the stack + + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + + + +method TAsmEdit.__DrawScrollbar ; .scrollbar +begin + pushad + + cmp [.scrollbar], scrollX + je .finish + + mov esi, [.self] + mov edi, [esi+TAsmEdit._search_index] + test edi, edi + jz .finish + + mov ebx, [esi+TAsmEdit._imgY] + test ebx, ebx + jz .finish + + cmp [esi+TAsmEdit._scrXY.max+4], 0 + je .finish + + mov eax, [ebx+TImage.wrapW] + mov ebx, [ebx+TImage.wrapH] + sub ebx, eax + + lea eax, [esi+TAsmEdit._scrXY] + stdcall _SliderPixels2, eax, scrollY, ebx + + sub ebx, edx ; the height of the scroller without the slider. + mov ecx, [edi+TArray.count] + +.loop: + dec ecx + js .finish + + mov eax, [edi + TArray.array + sizeof.POINT*ecx + POINT.y] + mul ebx + div [esi+TAsmEdit._scrXY.max+4] + + stdcall DrawSolidRect, [esi+TAsmEdit._imgY], 0, eax, [GUI.scrollWidth], 1, $ffff0000 + jmp .loop + +.finish: + inherited [.scrollbar] + pushad + return +endp + + + +method TAsmEdit.__RenderLine ;, .pTextLine, .clBackground + +.img dd ? +.gap_start dd ? +.gap_end dd ? +.txt_end dd ? +.x dd ? +.y dd ? + +begin + pushad + + mov esi, [.self] + mov eax, [esi+TAsmEdit._font_asc] + mov [.y], eax + + mov esi, [.pTextLine] ; Should not be called with invalid [.pTextLine] + mov edi, [esi+TTextLine.syn_array] + test edi, edi + jnz .syntax_ok + + get eax, [.self], TAsmEdit:SyntaxProc + test eax, eax + jz .syntax_ok + + stdcall eax, esi, 0 ; the syntax context is set to 0 here, but should be read from the previous line. + mov edi, [esi+TTextLine.syn_array] + +.syntax_ok: + mov eax, [esi+TTextLine.imgRendered] + mov [.img], eax + + mov eax, [esi+TTextLine.GapBegin] + mov ecx, [esi+TTextLine.GapEnd] + mov edx, [esi+TTextLine.Length] + + add eax, esi + add ecx, esi + add edx, esi + + mov [.gap_start], eax + mov [.gap_end], ecx + mov [.txt_end], edx + + xor ebx, ebx ; position inside the TTextChunk array. + mov [.x], ebx + dec ebx + +.loop: + cmp esi, [.txt_end] + jae .end_of_line + + test edi, edi + jz .default_color + + inc ebx + cmp ebx, [edi + TArray.count] + jae .default_color + + movzx ecx, byte [edi + TArray.array + sizeof.TTextChunk * ebx + TTextChunk.color] + movzx edx, word [edi + TArray.array + sizeof.TTextChunk * ebx + TTextChunk.bytes] + and ecx, ciExtended + $0f + + test ecx, ciExtended + jz .chunk_ok + + inc ebx ; next chunk contains only the second word of the length. + movzx eax, word [edi + TArray.array + sizeof.TTextChunk * ebx + TTextChunk.bytes] + shl eax, 16 + add edx, eax + and ecx, $0f + +.chunk_ok: + lea eax, [edx+esi] + + cmp esi, [.gap_end] + jae .ofs_ok + + cmp eax, [.gap_start] + jbe .ofs_ok + + mov eax, [.gap_start] + sub eax, esi + jz @f + + call .draw_current_chunk + +@@: + mov esi, [.gap_end] + sub edx, eax ; remaining of the chunk on the other side of the gap. + +.ofs_ok: + mov eax, edx + test eax, eax + jz .loop + + call .draw_current_chunk + add esi, edx + jmp .loop + +.default_color: + xor ecx, ecx + mov edx, [.txt_end] + sub edx, esi + jnz .chunk_ok + +.end_of_line: + mov esi, [.pTextLine] + or [esi+TTextLine.flags], tlfRendered + + popad + return + + +.draw_current_chunk: + push eax ebx edx + + push [ASM.clText+4*ecx] + push [ASM.Font] + push [.y] + push [.x] + push eax + push esi + push [.img] + + stdcall GetTextBounds, esi, eax, [ASM.Font] + mov edx, [.img] + stdcall DrawSolidRect, edx, [.x], 0, eax, [edx+TImage.wrapH], [.clBackground] + + stdcall DrawString ; the arguments are in the stack: [.img], esi, eax, [.x], [.y], [ASM.Font], [ASM.clText+4*ecx] + add [.x], eax + pop edx ebx eax + retn +endp + + + + + + + + +method TAsmEdit.EventMouseMove ;, .x, .y, .kbdState +begin + inherited [.x], [.y], [.kbdState] + jc .processed + + pushad + mov esi, [.self] + + cmp [esi+TAsmEdit._drag_button], mbLeft + jne .finish + + xor ecx, ecx + + exec esi, TAsmEdit:SelChangeBegin + + mov eax, [.x] + sub eax, [esi+TAsmEdit._left_margin] + cdq + idiv [esi+TAsmEdit._font_width] + shl edx, 1 + sbb eax, 0 + + get ebx, esi, TAsmEdit:PosX + add eax, ebx + cmovs eax, ecx + set esi, TAsmEdit:CaretX, eax + mov [esi+TAsmEdit._selEnd.x], eax + + mov eax, [.y] + cdq + idiv [esi+TAsmEdit._font_height] + shl edx, 1 + sbb eax, 0 + + get ebx, esi, TAsmEdit:PosY + add eax, ebx + cmovs eax, ecx + set esi, TAsmEdit:CaretY, eax + mov [esi+TAsmEdit._selEnd.y], eax + + exec esi, TAsmEdit:UpdateCaretPos + exec esi, TAsmEdit:SelChangeEnd + + exec esi, TAsmEdit:ScrollToCaretX + mov ecx, eax + exec esi, TAsmEdit:ScrollToCaretY + or ecx, eax + jz .finish + +; repeat the scroll if the mouse is outside the window! + stdcall ZeroMouseMove + +.finish: + popad + +.processed: + return +endp + + + +method TAsmEdit.EventButtonPress ;, .button, .kbdState, .x, .y +begin + inherited [.button], [.kbdState], [.x], [.y] + jc .processed + + pushad + mov esi, [.self] + mov edx, [.button] + + cmp edx, mbRight + jne .set_drag + + exec esi, TAsmEdit:HasSelection + jc .processed + +.set_drag: + mov [esi+TAsmEdit._drag_button], edx + + stdcall SetMouseCapture, esi + + exec esi, TAsmEdit:SelChangeBegin + + xor ecx, ecx + + mov eax, [.x] + sub eax, [esi+TAsmEdit._left_margin] + cdq + idiv [esi+TAsmEdit._font_width] + + get ebx, esi, TAsmEdit:PosX + add eax, ebx + cmovs eax, ecx + set esi, TAsmEdit:CaretX, eax + mov [esi+TAsmEdit._selStart.x], eax + mov [esi+TAsmEdit._selEnd.x], eax + + mov eax, [.y] + cdq + idiv [esi+TAsmEdit._font_height] + get ebx, esi, TAsmEdit:PosY + add eax, ebx + cmovs eax, ecx + set esi, TAsmEdit:CaretY, eax + mov [esi+TAsmEdit._selStart.y], eax + mov [esi+TAsmEdit._selEnd.y], eax + + exec esi, TAsmEdit:UpdateCaretPos + exec esi, TAsmEdit:SelChangeEnd + + popad + +.processed: + return +endp + + + +method TAsmEdit.EventButtonRelease ;, .button, .kbdState, .x, .y +begin + push eax + + mov eax, [.self] + and [eax+TAsmEdit._drag_button], 0 + stdcall SetMouseCapture, 0 + + pop eax + + inherited [.button], [.kbdState], [.x], [.y] + return +endp + + +method TAsmEdit.EventButtonDoubleClick +begin + inherited [.button], [.kbdState], [.x], [.y] + jc .finish + + pushad + + mov esi, [.self] + + mov edi, [esi+TAsmEdit._lines] + mov ecx, [esi+TAsmEdit._caretPos.y] + shl ecx, 2 + + mov eax, [edi+TText.GapBegin] + cmp ecx, eax + cmovae eax, [edi+TText.GapEnd] + sub eax, [edi+TText.GapBegin] + add eax, ecx + + cmp eax, [edi+TText.Length] + jae .not_a_word + + mov edi, [edi+eax] + + stdcall TextIndexToPos, edi, [esi+TAsmEdit._caretPos.x] + jc .not_a_word + mov ebx, eax + + stdcall TextMoveGap, edi, ebx + + cmp ebx, [edi+TTextLine.GapBegin] + ja .not_a_word + + push ebx + +.loop_back: + dec ebx + js .start_is_here + + mov al, [edi+ebx+TTextLine] + stdcall RecognizeChar, SepMapSansPoints + jnc .loop_back + +.start_is_here: + inc ebx + stdcall TextMoveGap, edi, ebx ; the whole word is after the gap. + + add ebx, [edi+TTextLine.GapEnd] + sub ebx, [edi+TTextLine.GapBegin] + mov ecx, ebx ; start of the word. + + pop ebx + add ebx, [edi+TTextLine.GapEnd] + sub ebx, [edi+TTextLine.GapBegin] + dec ebx + +.loop_forward: + inc ebx + + cmp ebx, [edi+TTextLine.Length] + jae .end_is_here + + mov al, [edi+ebx+TTextLine] + + stdcall RecognizeChar, SepMapWithPoints + jnc .loop_forward + +.end_is_here: + cmp ebx, ecx + je .not_a_word + + ofs2pos ecx, edi + stdcall TextPosToIndex, edi, ecx + mov ecx, eax + + ofs2pos ebx, edi + stdcall TextPosToIndex, edi, ebx + mov ebx, eax + + set esi, TAsmEdit:CaretX, ecx + exec esi, TAsmEdit:SelStartHere + set esi, TAsmEdit:CaretX, ebx + exec esi, TAsmEdit:SelEndHere + exec esi, TAsmEdit:UpdateCaretPos + + popad + return + +.not_a_word: + xor eax, eax + stc + +.exit: + popad + +.finish: + return +endp + + + +method TAsmEdit.EventScroll +begin + inherited [.direction], [.command], [.value] + jc .finish + + push esi + mov esi, [.self] + + cmp [.direction], scrollX + je .y_ok + + exec esi, TAsmEdit:__InvalidateImgCache + mov [esi+TAsmEdit._img_margin_valid], 0 + +.y_ok: + exec esi, TAsmEdit:UpdateCaretPos + exec esi, TAsmEdit:RectChanged2, 0 + + pop esi + +.finish: + return +endp + + + + + +; returns in EDX the rectangle list. + +method TAsmEdit._AddSelRectanglesAbs ;, .pRectList +begin + pushad + + mov esi, [.self] + mov edx, [.pRectList] + + test edx, edx + jnz .array_ok + + stdcall CreateArray, sizeof.RECT + mov edx, eax + +.array_ok: + + mov eax, [esi+TAsmEdit._selStart.x] + mov ecx, [esi+TAsmEdit._selStart.y] + mov ebx, [esi+TAsmEdit._selEnd.x] + mov edi, [esi+TAsmEdit._selEnd.y] + + test [esi+TAsmEdit._mode], aemBlockSelection + jz .add_char + +; block selection + + push eax + stdcall AddArrayItems, edx, 1 + mov esi, eax + pop eax + + mov [esi+RECT.left], eax + mov [esi+RECT.right], ebx + mov [esi+RECT.top], ecx + mov [esi+RECT.bottom], edi + stdcall RectSort, esi + inc [esi+RECT.bottom] + jmp .end_sel + +.add_char: + cmp ecx, edi ; caret_y and selection_y + jl .order_ok + jg .reverse + + cmp eax, ebx ; caret_x and caret_y + je .end_sel + jl .order_ok + +.reverse: + xchg eax, ebx + xchg ecx, edi + +; now eax,ecx are the begining of the selection and ebx, edi the end of the selection. +.order_ok: + test eax, eax + jz .more_than_one + + push eax + stdcall AddArrayItems, edx, 1 + mov esi, eax + pop eax + + mov [esi+RECT.left], eax + mov [esi+RECT.top], ecx + inc ecx + mov [esi+RECT.bottom], ecx + mov [esi+RECT.right], $7fffffff + + cmp ecx, edi + je .maybe_one + jb .more_than_one + +; one line selection. + mov [esi+RECT.right], ebx + jmp .end_sel + +.maybe_one: + test ebx, ebx + jz .end_sel + +.more_than_one: + cmp ecx, edi + je .final_rect + + stdcall AddArrayItems, edx, 1 + mov esi, eax + + mov [esi+RECT.left], 0 + mov [esi+RECT.top], ecx + mov [esi+RECT.right], $7fffffff + mov [esi+RECT.bottom], edi + +.final_rect: + test ebx, ebx + jz .end_sel + + stdcall AddArrayItems, edx, 1 + mov esi, eax + + mov [esi+RECT.left], 0 + mov [esi+RECT.top], edi + inc edi + mov [esi+RECT.right], ebx + mov [esi+RECT.bottom], edi + +.end_sel: + mov [esp+4*regEDX], edx + popad + return +endp + + + + +; returns in EDX the rectangle list. + +method TAsmEdit._AddSelRectangles ;, .pRectList +.rect1 RECT +.rect2 RECT +.rect3 RECT + +.client RECT +begin + pushad + + xor eax, eax + lea edi, [.rect1] + mov ecx, sizeof.RECT * 4 / 4 + + rep stosd + + mov esi, [.self] + mov edx, [.pRectList] + + test edx, edx + jnz .array_ok + stdcall CreateArray, sizeof.RECT + mov edx, eax +.array_ok: + + mov eax, [esi+TAsmEdit._width_ch] + mov ecx, [esi+TAsmEdit._height_ch] + mov [.client.right], eax + mov [.client.bottom], ecx + + mov eax, [esi+TAsmEdit._selStart.x] + mov ecx, [esi+TAsmEdit._selStart.y] + mov ebx, [esi+TAsmEdit._selEnd.x] + mov edi, [esi+TAsmEdit._selEnd.y] + + test [esi+TAsmEdit._mode], aemBlockSelection + jnz .add_block + + cmp ecx, edi ; caret_y and selection_y + jl .order_ok + jg .reverse + + cmp eax, ebx ; caret_x and caret_y + je .finish + jl .order_ok + +.reverse: + xchg eax, ebx + xchg ecx, edi + +; now eax,ecx is the begining of the selection and ebx, edi the end of the selection. +.order_ok: + mov [.rect1.left], eax + mov [.rect1.top], ecx + mov [.rect1.right], $7fffffff + inc ecx + mov [.rect1.bottom], ecx + + cmp ecx, edi ; begin_y and end_y + jl .first_ok + je .middle_ok + +; there is only one line selection + + mov [.rect1.right], ebx + jmp .rect1_only + +.first_ok: +; mov [.rect2.left], 0 ; already 0 + mov [.rect2.top], ecx + mov [.rect2.right], $7fffffff + mov [.rect2.bottom], edi + +.middle_ok: +; mov [.rect3.left], 0 ; already 0 + mov [.rect3.top], edi + mov [.rect3.right], ebx + + inc edi + mov [.rect3.bottom], edi + +; now offset rectangles + + get eax, esi, TAsmEdit:PosX + get ecx, esi, TAsmEdit:PosY + + sub [.rect1.left], eax + sub [.rect1.top], ecx + sub [.rect1.right], eax + sub [.rect1.bottom], ecx + + sub [.rect2.left], eax + sub [.rect2.top], ecx + sub [.rect2.right], eax + sub [.rect2.bottom], ecx + + sub [.rect3.left], eax + sub [.rect3.top], ecx + sub [.rect3.right], eax + sub [.rect3.bottom], ecx + + lea ecx, [.client] + lea eax, [.rect1] + + stdcall RectIntersect2, eax, ecx + jc .rect1_ok + + stdcall RectListAdd, edx, eax + +.rect1_ok: + lea eax, [.rect2] + stdcall RectIntersect2, eax, ecx + jc .rect2_ok + + stdcall RectListAdd, edx, eax + +.rect2_ok: + lea eax, [.rect3] + stdcall RectIntersect2, eax, ecx + jc .finish + + stdcall RectListAdd, edx, eax + jmp .finish + + +.add_block: + mov [.rect1.left], eax + mov [.rect1.right], ebx + mov [.rect1.top], ecx + mov [.rect1.bottom], edi + lea eax, [.rect1] + stdcall RectSort, eax + inc [.rect1.bottom] + +.rect1_only: + get eax, esi, TAsmEdit:PosX + get ecx, esi, TAsmEdit:PosY + + sub [.rect1.left], eax + sub [.rect1.top], ecx + sub [.rect1.right], eax + sub [.rect1.bottom], ecx + + lea eax, [.rect1] + lea ecx, [.client] + stdcall RectIntersect2, eax, ecx + jc .finish + + stdcall RectListAdd, edx, eax + +.finish: + mov [esp+4*regEDX], edx + popad + return +endp + + + + + + +method TAsmEdit.SetSyntaxProc +begin + pushad + mov esi, [.self] + mov eax, [.value] + xchg eax, [esi+TAsmEdit._syntax_proc] + cmp eax, [.value] + je .finish + +; if the syntax procedure were changed, then +; free all syntax arrays from the lines and +; invalidate the rendered images. + + mov edi, [esi+TAsmEdit._lines] + xor ecx, ecx + +.loop: + mov eax, ecx + shl eax, 2 + cmp eax, [edi+TText.GapBegin] + jb @f + add eax, [edi+TText.GapEnd] + sub eax, [edi+TText.GapBegin] +@@: + cmp eax, [edi+TText.Length] + jae .refresh + + mov eax, [edi+eax] + + xor edx, edx + xchg edx, [eax+TTextLine.syn_array] + stdcall FreeMem, edx + + and [eax+TTextLine.flags], not tlfRendered ; set the line not rendered. + + inc ecx + jmp .loop + +.refresh: + and [esi+TAsmEdit._img_margin_valid], 0 + exec esi, TAsmEdit:RectChanged2, 0 + +.finish: + popad + return +endp + + + + +method TAsmEdit.AddChar ;, .utf8 +begin + pushad + + mov esi, [.self] + mov ebx, [esi+TAsmEdit._caretPos.y] + exec esi, TAsmEdit:TextLine, ebx, TRUE + mov edi, eax + +; change the undo group level for every space character in the line. + mov eax, [.utf8] + cmp eax, ' ' + jne .level_ok + + cmp [esi+TAsmEdit._prev_char], ' ' + je .level_ok + + inc [esi+TAsmEdit._UndoLevel] + +.level_ok: + mov [esi+TAsmEdit._prev_char], eax + + exec esi, TAsmEdit:SaveForUndo, ebx, chopChanged + exec esi, TAsmEdit:AddTrailingSpaces, ebx, [esi+TAsmEdit._caretPos.x] + + test [esi+TAsmEdit._mode], aemOverwrite + jz .ins_ok + + exec esi, TAsmEdit:DeleteChar, ebx, [esi+TAsmEdit._caretPos.x] + +.ins_ok: + stdcall TextIndexToPos, [edi], [esi+TAsmEdit._caretPos.x] + stdcall TextMoveGap, [edi], eax + stdcall TextAddChar, [edi], [.utf8] + mov [edi], edx + + push [edx+TTextLine.ch_len] + inc [edx+TTextLine.ch_len] + push [edx+TTextLine.ch_len] + + stdcall IncCount, [esi+TAsmEdit._line_widths] ; count from the stack! + stdcall DecCount, edx ; count from the stack! + mov [esi+TAsmEdit._line_widths], edx + + and [edx+TTextLine.flags], not tlfRendered + + exec esi, TAsmEdit:DelTrailingSpaces, [esi+TAsmEdit._caretPos.y] + exec esi, TAsmEdit:CaretLeftRight, 1 + + popad + return +endp + + + + +method TAsmEdit.EventKeyPress +.selCmd dd ? +.rect RECT +begin + inherited [.utf8], [.scancode], [.kbdState] + jnc .not_processed + + return + +.not_processed: + pushad + + mov esi, [.self] + +; check the keys + + mov eax, [.utf8] + +; OutputValue "Key status: ", [.kbdState], 16, 8 +; OutputValue "Key utf8: ", eax, 16, 8 +; OutputValue "Key scancode: ", [.scancode], 16, 8 + + test eax, eax + jz .no_char + + cmp eax, $20 + jb .ctrl_char + + cmp eax, $7f + je .no_char + +; here handle usual typing! + + OutputValue "Character pressed: ", eax, 16, 8 + + test [.kbdState], Alt or Ctrl ; here Alt and Ctrl should be not pressed. + jnz .finish_not_processed + + call .line_render_rect + + push eax + exec esi, TAsmEdit:DeleteSelection + pop eax + exec esi, TAsmEdit:AddChar, eax + + call .render_changed_line + jmp .finish_processed + +.ctrl_char: + + cmp eax, 8 ; BackSpace + je .backspacekey + + cmp eax, 9 ; tab + je .tabkey + + cmp eax, 13 ; Enter + je .enterkey + +.no_char: + mov eax, [.scancode] + + cmp eax, keyF5 + je .refresh + +; moving commands + +; ignore the modifier keys because they break the _selCmd field in TAsmEdit +; and they are not used for control of the editor. + + cmp eax, keyShiftLeft + je .finish_not_processed + cmp eax, keyShiftRight + je .finish_not_processed + cmp eax, keyCtrlLeft + je .finish_not_processed + cmp eax, keyCtrlRight + je .finish_not_processed + cmp eax, keyAltLeft + je .finish_not_processed + cmp eax, keyAltRight + je .finish_not_processed + +; what is the selection command? + mov ecx, [.kbdState] + and ecx, maskShift + xchg ecx, [esi+TAsmEdit._selCmd] + mov [esi+TAsmEdit._selCmdPrev], ecx + + cmp [esi+TAsmEdit._selCmd], 0 + je .first_sel_ok + + exec esi, TAsmEdit:SelChangeBegin + + cmp [esi+TAsmEdit._selCmdPrev], 0 + jne .first_sel_ok + + exec esi, TAsmEdit:SelStartHere + exec esi, TAsmEdit:SelEndHere + +.first_sel_ok: + mov eax, [.scancode] + + inc [esi+TAsmEdit._UndoLevel] + + cmp eax, keyLeftNumpad + je .left + cmp eax, keyLeft + je .left + + cmp eax, keyRightNumpad + je .right + cmp eax, keyRight + je .right + + cmp eax, keyHomeNumpad + je .homekey + cmp eax, keyHome + je .homekey + + cmp eax, keyEndNumpad + je .endkey + cmp eax, keyEnd + je .endkey + + cmp eax, keyPgUpNumpad + je .pgupkey + cmp eax, keyPgUp + je .pgupkey + + cmp eax, keyPgDnNumpad + je .pgdnkey + cmp eax, keyPgDown + je .pgdnkey + + cmp eax, keyUpNumpad + je .up + cmp eax, keyUp + je .up + + cmp eax, keyDownNumpad + je .down + cmp eax, keyDown + je .down + + dec [esi+TAsmEdit._UndoLevel] + +; end of moving commands + + cmp eax, keyInsNumpad + je .insertkey + cmp eax, keyInsert + je .insertkey + + cmp eax, keyDelNumpad + je .delkey + cmp eax, keyDelete + je .delkey + + jmp .endselect_not_processed + + +.tabkey: + test [.kbdState], maskCtrl or maskAlt + jnz .finish_not_processed + + call .line_render_rect + + test [esi+TAsmEdit._options], aeoSmartTabs + jz .classic_tabs + + mov eax, [esi+TAsmEdit._caretPos.x] + inc eax + exec esi, TAsmEdit:GetSmartTab, [esi+TAsmEdit._caretPos.y], eax + mov ecx, eax + jnc .tab_pos + +.classic_tabs: + mov ecx, [esi+TAsmEdit._caretPos.x] + add ecx, 8 + and ecx, $fffffff8 +.tab_pos: + sub ecx, [esi+TAsmEdit._caretPos.x] + +.spadd: + dec ecx + js .end_tab + exec esi, TAsmEdit:AddChar, ' ' + jmp .spadd + +.end_tab: + call .render_changed_line + jmp .finish_processed + + +.enterkey: + test [.kbdState], maskCtrl or maskShift or maskAlt + jnz .finish_not_processed + + xor eax, eax + test [esi+TAsmEdit._mode], aemOverwrite + jnz .split_ok + + exec esi, TAsmEdit:SplitLine, -1, 0 + inc [esi+TAsmEdit._UndoLevel] + +.split_ok: + set esi, TAsmEdit:CaretX, eax + exec esi, TAsmEdit:ScrollToCaretX + + exec esi, TAsmEdit:CaretUpDown, 1, FALSE + + exec esi, TAsmEdit:ComputeLeftMarginWidth + exec esi, TAsmEdit:__UpdateImages + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:UpdateCaretPos + + and [esi+TAsmEdit._img_margin_valid], 0 + exec esi, TAsmEdit:RectChanged2, 0 + jmp .finish_processed + +.refresh: + xor eax, eax + mov [esi+TAsmEdit._img_margin_valid], eax + exec esi, TAsmEdit:RectChanged2, eax + jmp .finish_processed + + +; caret moving commands! + +.left: + test [.kbdState], maskCtrl + jnz .left_word + + exec esi, TAsmEdit:CaretLeftRight, -1 + jmp .endmove + +.left_word: + exec esi, TAsmEdit:CaretWordBack + jmp .endmove + + +.right: + test [.kbdState], maskCtrl + jnz .right_word + + exec esi, TAsmEdit:CaretLeftRight, 1 + jmp .endmove + +.right_word: + exec esi, TAsmEdit:CaretWordForward + jmp .endmove + +.up: + test [.kbdState], maskCtrl + jnz .prev_bookmark + + exec esi, TAsmEdit:CaretUpDown, -1, FALSE + jmp .endmove + +.prev_bookmark: + exec esi, TAsmEdit:GoPrevBookmark + jmp .endmove + +.down: + test [.kbdState], maskCtrl + jnz .next_bookmark + + exec esi, TAsmEdit:CaretUpDown, 1, FALSE + jmp .endmove + +.next_bookmark: + exec esi, TAsmEdit:GoNextBookmark + jmp .endmove + +.homekey: + test [.kbdState], maskCtrl + jnz .start_of_scr + + exec esi, TAsmEdit:CaretHome + jmp .endmove + +.start_of_scr: + exec esi, TAsmEdit:CaretScrHome + jmp .endmove + + +.endkey: + test [.kbdState], maskCtrl + jnz .end_of_scr + + exec esi, TAsmEdit:CaretEnd + jmp .endmove + +.end_of_scr: + exec esi, TAsmEdit:CaretScrEnd + jmp .endmove + +.pgupkey: + test [.kbdState], maskCtrl + jnz .start_of_text + + mov eax, [esi+TAsmEdit._height_ch_nav] + neg eax + exec esi, TAsmEdit:CaretUpDown, eax, TRUE + jmp .endmove + +.start_of_text: + exec esi, TAsmEdit:CaretTxtHome + jmp .endmove + + +.pgdnkey: + test [.kbdState], maskCtrl + jnz .end_of_text + + exec esi, TAsmEdit:CaretUpDown, [esi+TAsmEdit._height_ch_nav], TRUE + jmp .endmove + +.end_of_text: + exec esi, TAsmEdit:CaretTxtEnd + jmp .endmove + + +.insertkey: + get eax, esi, TAsmEdit:Mode + + mov edx, aemOverwrite + mov ecx, [.kbdState] + and ecx, maskCtrl + maskAlt + cmp ecx, maskCtrl + maskAlt + jne .ins_mask_ok + + mov edx, aemBlockSelection + +.ins_mask_ok: + xor eax, edx + set esi, TAsmEdit:Mode, eax + jmp .endselect_processed + +.backspacekey: + cmp [esi+TAsmEdit._caretPos.x], 0 + jne .do_back + + test [esi+TAsmEdit._mode], aemOverwrite + jnz .do_back + + cmp [esi+TAsmEdit._caretPos.y], 0 + je .finish_processed + + exec esi, TAsmEdit:CaretUpDown, -1, FALSE + exec esi, TAsmEdit:CaretEnd + jmp .delkey + +.do_back: + exec esi, TAsmEdit:AddTrailingSpaces, -1, 0 + exec esi, TAsmEdit:CaretLeftRight, -1 + +.delkey: + exec esi, TAsmEdit:DeleteSelection + jnc .del_refresh + + exec esi, TAsmEdit:AddTrailingSpaces, -1, 0 + + test [esi+TAsmEdit._mode], aemOverwrite + jz .del_it + + exec esi, TAsmEdit:AddChar, ' ' + exec esi, TAsmEdit:CaretLeftRight, -1 + jmp .del_refresh + +.del_it: + exec esi, TAsmEdit:DeleteChar, -1, 0 + jnc .del_refresh ; notice that the undo/redo group is not increased in order to allow + ; another change operations on this line to be grouped in one TUndoInfo + ; structure. + exec esi, TAsmEdit:JoinNextLine, -1 + inc [esi+TAsmEdit._UndoLevel] + +.del_refresh: + exec esi, TAsmEdit:DelTrailingSpaces, -1 + + and [esi+TAsmEdit._img_margin_valid], 0 + + exec esi, TAsmEdit:RectChanged2, 0 + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:UpdateCaretPos + + exec esi, TAsmEdit:SelChangeBegin + exec esi, TAsmEdit:SelStartHere + exec esi, TAsmEdit:SelEndHere + exec esi, TAsmEdit:SelChangeEnd + + jmp .finish_processed + + +.endmove: + cmp [esi+TAsmEdit._selCmd], 0 + jne .endselect_processed + + test [esi+TAsmEdit._options], aeoPersistentSelection + jnz .endselect_processed + + exec esi, TAsmEdit:SelStartHere + exec esi, TAsmEdit:SelEndHere + exec esi, TAsmEdit:SelChangeEnd + jmp .finish_processed + +.endselect_processed: + cmp [esi+TAsmEdit._selCmd], 0 + je .finish_processed + + exec esi, TAsmEdit:SelEndHere + exec esi, TAsmEdit:SelChangeEnd + +.finish_processed: + stc + popad + return + + +.endselect_not_processed: + cmp [esi+TAsmEdit._selCmd], 0 + je .finish_not_processed + + exec esi, TAsmEdit:SelChangeEnd + +.finish_not_processed: + clc + popad + return + + +; ------------------------------------- + +.line_render_rect: + push eax + + mov ecx, [esi+TAsmEdit._caretPos.x] + mov edx, [esi+TAsmEdit._caretPos.y] + + get eax, esi, TAsmEdit:PosX + get ebx, esi, TAsmEdit:PosY + + sub ecx, eax + sub edx, ebx + + mov [.rect.left], ecx + mov [.rect.top], edx + + inc edx + mov [.rect.bottom], edx + + mov ecx, [esi+TAsmEdit._width_ch] + mov [.rect.right], ecx + + pop eax + retn + +.render_changed_line: + +; see if the left margin needs update. + + exec esi, TAsmEdit:ComputeLeftMarginWidth + jnc .images_ok + + exec esi, TAsmEdit:__UpdateImages ; If the left margin is changed, the text image may need an update! + exec esi, TAsmEdit:RectChanged2, 0 + +.images_ok: + +; render the text of the line. + + mov eax, [.rect.top] + imul eax, [esi+TAsmEdit._font_height] + + mov edx, [esi+TAsmEdit._width] + sub edx, [esi+TAsmEdit._left_margin] + + exec esi, TAsmEdit:RectChangedXY2, [esi+TAsmEdit._left_margin], eax, edx, [esi+TAsmEdit._font_height] + + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:UpdateCaretPos + retn + + +endp + + + + +method TAsmEdit.EventFocusIn +begin + pushad + + stdcall CaretAttach, [.self] + exec [.self], TAsmEdit:UpdateCaretPos + + mov eax, [.self] + cmp [eax+TAsmEdit._on_mode_change], 0 + je .mode_ok + + stdcall [eax+TAsmEdit._on_mode_change], eax + +.mode_ok: + mov eax, [.self] + cmp [eax+TAsmEdit._on_caret_move], 0 + je .finish + + stdcall [eax+TAsmEdit._on_caret_move], eax + +.finish: + popad + inherited + return +endp + + + + +method TAsmEdit.EventFocusOut +begin + pushad + stdcall CaretAttach, 0 + + mov eax, [.self] + cmp [eax+TAsmEdit._on_mode_change], 0 + je .mode_ok + + stdcall [eax+TAsmEdit._on_mode_change], 0 + +.mode_ok: + mov eax, [.self] + cmp [eax+TAsmEdit._on_caret_move], 0 + je .finish + + stdcall [eax+TAsmEdit._on_caret_move], 0 + +.finish: + popad + inherited + return +endp + + +; Call after scrolling the content in order to move the caret to the proper position. + +method TAsmEdit.UpdateCaretPos +.zero dd ? +begin + pushad + + mov esi, [.self] + + xor edi, edi + mov [.zero], edi + inc edi + + mov eax, [esi+TAsmEdit._caretPos.x] + mov ebx, [esi+TAsmEdit._caretPos.y] + + get edx, esi, TAsmEdit:PosX + sub eax, edx + cmovs edi, [.zero] ; hide + + imul eax, [esi+TAsmEdit._font_width] + add eax, [esi+TAsmEdit._left_margin] + + cmp eax, [esi+TAsmEdit._width] + cmovae edi, [.zero] + + get edx, esi, TAsmEdit:PosY + sub ebx, edx + cmovs edi, [.zero] + + mov edx, 2 + mov ecx, 2 + test [esi+TAsmEdit._mode], aemOverwrite + cmovnz ecx, [esi+TAsmEdit._font_width] + cmovnz edx, [esi+TAsmEdit._font_height] + + test [esi+TAsmEdit._options], aeoConsoleCaret + cmovnz ecx, [esi+TAsmEdit._font_width] + cmovz edx, [esi+TAsmEdit._font_height] + + imul ebx, [esi+TAsmEdit._font_height] + add ebx, [esi+TAsmEdit._font_height] + + cmp ebx, [esi+TAsmEdit._height] + cmovae edi, [.zero] + + sub ebx, edx + + stdcall CaretChange, [.self], eax, ebx, ecx, edx, edi + + cmp [esi+TAsmEdit._on_caret_move], 0 + je .finish + + stdcall [esi+TAsmEdit._on_caret_move], esi + +.finish: + popad + return +endp + + + + + +method TAsmEdit._RenderLM ; .pImage, .from, .to +.last dd ? +begin + pushad + + cmp [.pImage], 0 + je .end_lines + + mov esi, [.self] + + mov eax, [esi+TAsmEdit._height_ch] + xor ebx, ebx + mov ecx, [.from] + mov edx, [.to] + + cmp ecx, ebx ; .from should be >=0 + cmovl ecx, ebx + + cmp edx, ebx + cmovl edx, ebx + + cmp edx, eax + cmova edx, eax ; edx = max(PosY+height_ch, [.to]) + + cmp ecx, edx + jae .end_lines + + mov [.from], ecx + mov [.to], edx + + get ebx, esi, TAsmEdit:PosY + lea ebx, [ebx+ecx+1] ; line numbers are from 1 + + mov eax, [esi+TAsmEdit._font_height] + imul ecx, eax + imul edx, eax + + push edx + + mov edx, [esi+TAsmEdit._lines] + mov eax, [edx+TText.Length] + add eax, [edx+TText.GapBegin] + sub eax, [edx+TText.GapEnd] + shr eax, 2 + mov [.last], eax + + pop edx + +.lines_loop: + cmp ecx, edx + jae .end_lines + +; background + + mov eax, [esi+TAsmEdit._left_margin] + dec eax + stdcall DrawSolidRect, [.pImage], 0, ecx, eax, [esi+TAsmEdit._font_height], [ASM.clLeftMargin] + stdcall DrawSolidRect, [.pImage], eax, ecx, 1, [esi+TAsmEdit._font_height], [ASM.clLeftMarginEdge] + +; the number + + cmp ebx, [.last] + ja .next + + pushad + + add ecx, [esi+TAsmEdit._font_asc] + + stdcall NumToStr, ebx, ntsDec or ntsUnsigned + push eax + + stdcall StrPtr, eax + push eax + + stdcall GetTextBounds, eax, [eax+string.len], [ASM.NumFont] + mov edx, [esi+TAsmEdit._num_margin] + sub edx, eax + + pop eax + stdcall DrawString, [.pImage], eax, [eax+string.len], edx, ecx, [ASM.NumFont], [ASM.clLeftMarginText] + + stdcall StrDel ; from the stack + + popad + +; get the line on y = ebx-1 + + lea eax, [4*ebx-4] + + mov edi, [esi+TAsmEdit._lines] + cmp eax, [edi+TText.GapBegin] + jb @f + add eax, [edi+TText.GapEnd] + sub eax, [edi+TText.GapBegin] +@@: + cmp eax, [edi+TText.Length] + jae .next + + mov edi, [edi+eax] + test edi, edi + jz .next + +; edi contains a pointer to the current drawn TTextLine + + pushad + +; start position of the icons. + + mov eax, [esi+TAsmEdit._num_margin] + add eax, [ASM.xSpcIcons] + +; draw bookmark + + mov edx, [ASM.iconBookmark] + + test [edi+TTextLine.flags], tlfBookmark + jz .bookmark_ok + + + OutputValue "Bookmark on line: ", ebx, 10, -1 + + push [edx+TImage.wrapH] + push [edx+TImage.wrapW] + push 0 0 + push edx + + mov ebx, [esi+TAsmEdit._font_height] + sub ebx, [edx+TImage.wrapH] + shr ebx, 1 + add ebx, ecx + + stdcall BlendImage, [.pImage], eax, ebx ; remaining from the stack + +.bookmark_ok: + +; draw breakpoint + + mov edx, [ASM.iconBreakpoints] + + test [edi+TTextLine.flags], tlfBreakpoint + jz .breakpoint_ok + + push [edx+TImage.wrapH] + push [edx+TImage.wrapW] + push 0 0 + push edx + + mov ebx, [esi+TAsmEdit._font_height] + sub ebx, [edx+TImage.wrapH] + shr ebx, 1 + add ebx, ecx + + stdcall BlendImage, [.pImage], eax, ebx ; remaining from the stack + +.breakpoint_ok: + + popad + +.next: + inc ebx + add ecx, [esi+TAsmEdit._font_height] + jmp .lines_loop + + +.end_lines: + popad + return +endp + + + +method TAsmEdit.UpdateScrollBar +begin + pushad + mov esi, [.self] + + xor eax, eax + cmp [esi+TAsmEdit._font_width], eax + lea eax, [eax+1] + je .xpage_ok + + + mov eax, [esi+TAsmEdit._width_ch_nav] + cmp eax, 0 + jg .xpage_ok + + xor eax, eax + inc eax + +.xpage_ok: + set esi, TAsmEdit:PageX, eax + + mov ecx, [esi+TAsmEdit._line_widths] + mov edx, [ecx+TArray.count] + test edx, edx + jz .xsize_ok + mov edx, [ecx+TArray.array+sizeof.TCounter*edx+TCounter.value - sizeof.TCounter] + sub edx, eax + jg .xsize_ok + + xor edx, edx ; hide the scrollbar. + + set esi, TAsmEdit:PosX, edx ; scroll to 0 in this case. + +.xsize_ok: + set esi, TAsmEdit:MaxX, edx + + get eax, esi, TAsmEdit:PosX + cmp eax, edx + cmovg eax, edx + set esi, TAsmEdit:PosX, eax + +; set Y scrollers page + + xor eax, eax + cmp [esi+TAsmEdit._font_height], eax + lea eax, [eax+1] + je .ypage_ok + + mov eax, [esi+TAsmEdit._height_ch_nav] + cmp eax, 0 + jg .ypage_ok + + xor eax, eax + inc eax + +.ypage_ok: + set esi, TAsmEdit:PageY, eax + + mov edx, [esi+TAsmEdit._lines] + mov ecx, [edx+TText.Length] + add ecx, [edx+TText.GapBegin] + sub ecx, [edx+TText.GapEnd] + shr ecx, 2 + + sub ecx, eax + jg .ymax_ok + + xor ecx, ecx ; hide the scrollbar + set esi, TAsmEdit:PosY, ecx ; scroll to 0 in this case. + +.ymax_ok: + set esi, TAsmEdit:MaxY, ecx + + get eax, esi, TAsmEdit:PosY + cmp eax, ecx + cmovg eax, ecx + set esi, TAsmEdit:PosY, eax + + popad + return +endp + + + +; general methods + + +method TAsmEdit.__UpdateImages +begin + inherited + pushad + mov esi, [.self] + +; Process ._imgLeftMargin + + mov edi, [esi+TAsmEdit._imgMargin] + mov ecx, [esi+TAsmEdit._left_margin] + mov edx, [esi+TAsmEdit._height] + mov eax, [esi+TAsmEdit._img_margin_valid] + + test edi, edi + jz .create_new + + jecxz .destroy + + cmp ecx, [edi+TImage.width] + ja .destroy + + cmp edx, [edi+TImage.height] + jbe .set_wrap + +.destroy: + stdcall DestroyImage, edi + xor edi, edi + xor eax, eax + +.create_new: + jecxz .store + + lea ebx, [edx+SCREEN_MORE_Y] + xor eax, eax ; on error, CreateImage does not change eax! + stdcall CreateImage2, ecx, ebx, FALSE + mov edi, eax + xor eax, eax + +.set_wrap: + xor ebx, ebx + cmp edx, [edi+TImage.wrapH] + cmova eax, ebx ; clear valid flag, if the new size is bigger than the old. + + stdcall SetImageWrap, edi, ecx, edx + +.store: + mov [esi+TAsmEdit._imgMargin], edi + mov [esi+TAsmEdit._img_margin_valid], eax + + test eax, eax + jnz .finish + + exec esi, TAsmEdit:RectChangedXY2, 0, 0, ecx, edx + +.finish: + popad + return +endp + + + + +method TAsmEdit.Resize +.rect RECT +.rect_ch RECT +begin + pushad + + mov esi, [.self] + + mov ebx, [esi+TAsmEdit._width] ; the old values + mov ecx, [esi+TAsmEdit._height] ; of the height and width + mov edi, [esi+TAsmEdit._width_ch] ; + mov edx, [esi+TAsmEdit._height_ch] + + inherited [.newWidth], [.newHeight] + + exec [.self], TAsmEdit:ComputeScreenInChars + + cmp [esi+TAsmEdit._width], ebx + jbe .render_right_ok + + dec edi + jns @f + xor edi, edi +@@: + + mov [.rect.left], ebx + mov [.rect_ch.left], edi + + mov ebx, [esi+TAsmEdit._width] + mov edi, [esi+TAsmEdit._width_ch] + mov [.rect.right], ebx + mov [.rect_ch.right], edi + + xor eax, eax + mov [.rect.top], eax + mov [.rect_ch.top], eax + + mov eax, [esi+TAsmEdit._height] + mov ebx, [esi+TAsmEdit._height_ch] + mov [.rect.bottom], eax + mov [.rect_ch.bottom], edx + + lea eax, [.rect] + exec esi, TAsmEdit:RectChanged2, eax + +.render_right_ok: + + cmp [esi+TAsmEdit._height], ecx + jbe .render_bottom_ok + + dec edx + jns @f + xor edx, edx +@@: + + mov [.rect.top], ecx + mov [.rect_ch.top], edx + + mov ecx, [esi+TAsmEdit._height] + mov edx, [esi+TAsmEdit._height_ch] + mov [.rect.bottom], ecx + mov [.rect_ch.bottom], edx + + xor eax, eax + mov [.rect.left], eax + mov [.rect_ch.left], eax + + mov eax, [esi+TAsmEdit._width] + mov edx, [esi+TAsmEdit._width_ch] + mov [.rect.right], eax + mov [.rect_ch.right], edx + + exec esi, TAsmEdit:_RenderLM, [esi+TAsmEdit._imgMargin], [.rect_ch.top], [.rect_ch.bottom] + + lea eax, [.rect] + exec esi, TAsmEdit:RectChanged2, eax + +.render_bottom_ok: + exec esi, TAsmEdit:__InvalidateImgCache + + exec esi, TAsmEdit:UpdateScrollBar + exec [.self], TAsmEdit:ComputeScreenInChars + exec esi, TAsmEdit:UpdateScrollBar + + exec esi, TAsmEdit:__UpdateImages + + popad + return +endp + + + +method TAsmEdit.Move +begin + mov eax, [Caret.pWindow] + push eax + cmp eax, [.self] + jne @f + stdcall CaretAttach, 0 +@@: + inherited [.newX], [.newY] + + pop eax + cmp eax, [.self] + jne @f + stdcall CaretAttach, eax + exec [.self], TAsmEdit:UpdateCaretPos +@@: + return +endp + + +; parameters get/set methods + +method TAsmEdit.SetCaretX +begin + push eax esi + + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TAsmEdit._caretPos.x] + je .finish + + mov [esi+TAsmEdit._caretPos.x], eax + exec esi, TAsmEdit:Highlight, [esi+TAsmEdit._caretPos.y], 0 + +.finish: + pop esi eax + return +endp + + +method TAsmEdit.SetCaretY +begin + push eax esi + + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TAsmEdit._caretPos.y] + je .finish + + xchg eax, [esi+TAsmEdit._caretPos.y] + exec esi, TAsmEdit:Highlight, eax, 0 + +.finish: + pop esi eax + return +endp + + +method TAsmEdit.SetOptions +begin + pushad + + mov esi, [.self] + mov eax, [.value] + + cmp eax, [esi+TAsmEdit._options] + je .finish + + mov [esi+TAsmEdit._options], eax + + xor eax, eax + mov [esi+TAsmEdit._img_margin_valid], eax + + exec esi, TAsmEdit:RectChanged2, eax + exec esi, TAsmEdit:ComputeLeftMarginWidth + exec esi, TAsmEdit:UpdateCaretPos + +.finish: + popad + return +endp + + +method TAsmEdit.SetMode +begin + pushad + + mov esi, [.self] + mov eax, [.value] + + xchg eax, [esi+TAsmEdit._mode] + cmp eax, [esi+TAsmEdit._mode] + je .finish + + xor eax, eax + exec esi, TAsmEdit:RectChanged2, eax + exec esi, TAsmEdit:UpdateCaretPos + + cmp [esi+TAsmEdit._on_mode_change], 0 + je .finish + + stdcall [esi+TAsmEdit._on_mode_change], esi + +.finish: + popad + return +endp + + +method TAsmEdit.SetEOL +begin + pushad + mov esi, [.self] + mov eax, [.value] + xchg eax, [esi+TAsmEdit._end_of_line] + cmp eax, [esi+TAsmEdit._end_of_line] + je .finish + + set esi, TAsmEdit:Modified, TRUE + +.finish: + popad + return +endp + + + +method TAsmEdit.HasSelection +begin + pushad + + mov esi, [.self] + test [esi+TAsmEdit._mode], aemBlockSelection + jnz .block + + mov eax, [esi+TAsmEdit._selStart.x] + cmp eax, [esi+TAsmEdit._selEnd.x] + jne .yes + + mov eax, [esi+TAsmEdit._selStart.y] + cmp eax, [esi+TAsmEdit._selEnd.y] + je .no + +.yes: + stc + popad + return + +.no: + clc + popad + return + +.block: + mov eax, [esi+TAsmEdit._selEnd.x] + mov ecx, [esi+TAsmEdit._selEnd.y] + sub eax, [esi+TAsmEdit._selStart.x] + sub ecx, [esi+TAsmEdit._selStart.y] + + test eax, eax + jns @f + neg eax +@@: + test ecx, ecx + jns @f + neg ecx +@@: + imul eax, ecx + test eax, eax + jz .no + jmp .yes +endp + + + +method TAsmEdit.GetSelection +.lines dd ? +begin + pushad + + exec [.self], TAsmEdit:_AddSelRectanglesAbs, 0 + mov [.lines], edx + + lea edi, [edx+TArray.array] + mov ecx, [edx+TArray.count] + + stdcall StrNew + mov edx, eax + + test ecx, ecx + jz .finish + +.rect_loop: + mov ebx, [edi+RECT.top] + +.y_loop: + exec [.self], TAsmEdit:TextLine, ebx, TRUE + mov esi, [eax] + + mov eax, [esi+TTextLine.ch_len] + cmp eax, [edi+RECT.right] + cmova eax, [edi+RECT.right] + + stdcall TextIndexToPos, esi, eax ; move the gap after the rectangle right bound. + push eax + + stdcall TextMoveGap, esi, eax + stdcall TextIndexToPos, esi, [edi+RECT.left] + + add esi, eax + sub [esp], eax + stdcall StrCatMem, edx, esi ; length from the stack + + cmp [edi+RECT.right], $7fffffff + jne .eol_ok + + stdcall StrCat, edx, cNewLine + +.eol_ok: + inc ebx + cmp ebx, [edi+RECT.bottom] + jl .y_loop + +.next_rect: + add edi, sizeof.RECT + dec ecx + jnz .rect_loop + +.finish: + stdcall FreeMem, [.lines] + + mov [esp+4*regEAX], edx ; the result string. StrDel when not needed. + popad + return +endp + + + + + +; CF = 0 if the width was not changed. +; CF = 1 if the width has been changed. + +method TAsmEdit.ComputeLeftMarginWidth +begin + pushad + + mov esi, [.self] + xor ebx, ebx + + mov [esi+TAsmEdit._num_margin], ebx + + test [esi+TAsmEdit._options], aeoLeftMargin + jz .marginok + + test [esi+TAsmEdit._options], aeoLineNumbers + jz .marginok1 + + mov ecx, [esi+TAsmEdit._lines] + jecxz .marginok1 + + mov eax, [ecx+TText.Length] + add eax, [ecx+TText.GapBegin] + sub eax, [ecx+TText.GapEnd] + shr eax, 2 ; the number of the lines. + test eax, eax + jz .marginok1 + + call .digits + imul ecx, [esi+TAsmEdit._numfont_width] + add ebx, ecx + add ebx, [ASM.xspcLMPadding] + + mov [esi+TAsmEdit._num_margin], ebx + +.marginok1: + + mov eax, [ASM.iconBreakpoints] + mov ebx, [eax+TImage.width] + + mov eax, [ASM.iconBookmark] + cmp ebx, [eax+TImage.width] + cmovl ebx, [eax+TImage.width] + + mov eax, [ASM.iconDebugInfo] + cmp ebx, [eax+TImage.width] + cmovl ebx, [eax+TImage.width] + + add ebx, [ASM.xSpcIcons] + add ebx, [ASM.xSpcIcons] + + add ebx, [esi+TAsmEdit._num_margin] + +.marginok: + xchg [esi+TAsmEdit._left_margin], ebx + cmp ebx, [esi+TAsmEdit._left_margin] + je .finish + + xor eax, eax + mov [esi+TAsmEdit._img_margin_valid], eax + + exec [.self], TAsmEdit:ComputeScreenInChars + stc + +.finish: + popad + return + + +.digits: + xor ecx, ecx + cmp eax, 1 ; 0 + jb .edig + + inc ecx + cmp eax, 10 ; 1 + jb .edig + + inc ecx + cmp eax, 100 ; 2 + jb .edig + + inc ecx + cmp eax, 1000 ; 3 + jb .edig + + inc ecx + cmp eax, 10000 ; 4 + jb .edig + + inc ecx + cmp eax, 100000 ; 5 + jb .edig + + inc ecx + cmp eax, 1000000 ; 6 + jb .edig + + inc ecx + cmp eax, 10000000 ; 7 + jb .edig + + inc ecx + cmp eax, 100000000 ; 8 + jb .edig + + inc ecx + cmp eax, 1000000000 ; 9 + jb .edig + + inc ecx ; 10 + +.edig: + retn + +endp + + + + + +method TAsmEdit.ComputeScreenInChars +begin + pushad + mov esi, [.self] + + mov ebx, [esi+TAsmEdit._font_width] + mov ecx, [esi+TAsmEdit._font_height] + +; width_ch + mov eax, [esi+TAsmEdit._width] + lea eax, [eax+ebx-1] + sub eax, [esi+TAsmEdit._left_margin] + cdq + + idiv ebx + mov [esi+TAsmEdit._width_ch], eax + +; height_ch + mov eax, [esi+TAsmEdit._height] + lea eax, [eax+ecx-1] + cdq + + idiv ecx + mov [esi+TAsmEdit._height_ch], eax + +; width_ch_nav + + xor edx, edx + get eax, esi, TAsmEdit:MaxY + test eax, eax ; is the vertical scrollbar hidden? + cmovnz edx, [GUI.scrollWidth] + + mov eax, [esi+TAsmEdit._width] + sub eax, [esi+TAsmEdit._left_margin] + sub eax, edx + cdq + idiv ebx + + mov [esi+TAsmEdit._width_ch_nav], eax + +; height_ch_nav + + xor edx, edx + get eax, esi, TAsmEdit:MaxX + test eax, eax ; is the horizontal scrollbar hidden? + cmovnz edx, [GUI.scrollWidth] + + mov eax, [esi+TAsmEdit._height] + sub eax, edx + cdq + idiv ecx + + mov [esi+TAsmEdit._height_ch_nav], eax + + popad + return +endp + + + +method TAsmEdit.ReplaceWordAtCaret +begin + pushad + mov esi, [.self] + + exec esi, TAsmEdit:TextLine, -1, TRUE + mov edi, [eax] + + exec esi, TAsmEdit:SaveForUndo, -1, chopChanged + exec esi, TAsmEdit:AddTrailingSpaces, -1, 0 + + mov ecx, [esi+TAsmEdit._caretPos.x] ; the current caret position. + + stdcall TextIndexToPos, edi, ecx + jc .not_a_word + mov esi, eax + + stdcall TextMoveGap, edi, esi + + cmp esi, [edi+TTextLine.GapBegin] + ja .not_a_word + + mov ebx, [.self] + stdcall DecCount, [ebx+TAsmEdit._line_widths], [edi+TTextLine.ch_len] + mov [ebx+TAsmEdit._line_widths], edx + + push esi + lea esi, [edi+esi] + +.loop_back: + dec esi + call ScanBackUtf8 + + dec ecx + dec [edi+TTextLine.ch_len] + + cmp esi, edi + jb .start_is_here + + mov al, [esi] + stdcall RecognizeChar, SepMapWithPoints + jnc .loop_back + +.start_is_here: + inc ecx + inc [edi+TTextLine.ch_len] + + inc esi + sub esi, edi + stdcall TextMoveGap, edi, esi ; the whole word is after the gap. + + pop esi + add esi, [edi+TTextLine.GapEnd] + sub esi, [edi+TTextLine.GapBegin] + + lea esi, [edi+esi] + mov ebx, [edi+TTextLine.Length] ; the end of the line. + add ebx, edi ; maximal address. + +.loop_forward: + cmp esi, ebx + jae .end_is_here + + mov al, [esi] + stdcall RecognizeChar, SepMapWithPoints + jc .end_is_here + + inc esi + call ScanForwardUtf8 + + dec [edi+TTextLine.ch_len] + jmp .loop_forward + +.end_is_here: + sub esi, edi ; position of the end + mov [edi+TTextLine.GapEnd], esi ; delete the prev word. + + stdcall StrLenUtf8, [.new_word], -1 + add ecx, eax + add [edi+TTextLine.ch_len], eax + + mov ebx, [.self] + stdcall IncCount, [ebx+TAsmEdit._line_widths], [edi+TTextLine.ch_len] + mov [ebx+TAsmEdit._line_widths], edx + + set [.self], TAsmEdit:CaretX, ecx + exec [.self], TAsmEdit:UpdateCaretPos + + stdcall StrLen, [.new_word] + mov ecx, eax + + stdcall StrPtr, [.new_word] + mov esi, eax + + stdcall TextSetGapSize, edi, ecx + mov edi, edx + jc .finish + + and [edi+TTextLine.flags], not tlfRendered ; the line will be changed so needs to be rendered. + xor eax, eax + xchg eax, [edi+TTextLine.syn_array] ; the syntax highlight need to be recreated. + stdcall FreeMem, eax + + add [edi+TTextLine.GapBegin], ecx + add edi, [edi+TTextLine.GapBegin] + sub edi, ecx + + rep movsb + +; refresh the line. ONLY the current line should be updated... and don't forget for the syntax highlighting. + + mov esi, [.self] + exec esi, TAsmEdit:__UpdateImages + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:ScrollToCaretX + + exec esi, TAsmEdit:RectChanged2, 0 + clc + +.finish: + popad + return + +.not_a_word: + xor eax, eax + stc + jmp .finish +endp + + +method TAsmEdit.GetWordAtCaret +begin + pushad + mov esi, [.self] + + mov edi, [esi+TAsmEdit._lines] + mov ecx, [esi+TAsmEdit._caretPos.y] + shl ecx, 2 + + mov eax, [edi+TText.GapBegin] + cmp ecx, eax + cmovae eax, [edi+TText.GapEnd] + sub eax, [edi+TText.GapBegin] + add eax, ecx + + cmp eax, [edi+TText.Length] + jae .not_a_word + + mov edi, [edi+eax] + + stdcall TextIndexToPos, edi, [esi+TAsmEdit._caretPos.x] + jc .not_a_word + mov ebx, eax + + stdcall TextMoveGap, edi, ebx + + cmp ebx, [edi+TTextLine.GapBegin] + ja .not_a_word + + push ebx + +.loop_back: + dec ebx + js .start_is_here + + mov al, [edi+ebx+TTextLine] + stdcall RecognizeChar, SepMapSansPoints + jnc .loop_back + +.start_is_here: + inc ebx + stdcall TextMoveGap, edi, ebx ; the whole word is after the gap. + + add ebx, [edi+TTextLine.GapEnd] + sub ebx, [edi+TTextLine.GapBegin] + mov ecx, ebx ; start of the word. + + pop ebx + add ebx, [edi+TTextLine.GapEnd] + sub ebx, [edi+TTextLine.GapBegin] + dec ebx + +.loop_forward: + inc ebx + + cmp ebx, [edi+TTextLine.Length] + jae .end_is_here + + mov al, [edi+ebx+TTextLine] + + stdcall RecognizeChar, SepMapWithPoints + jnc .loop_forward + +.end_is_here: + sub ebx, ecx + jz .not_a_word + + lea ecx, [edi+ecx] + + stdcall StrNew + stdcall StrCatMem, eax, ecx, ebx + clc +.finish: + mov [esp+4*regEAX], eax + popad + return + +.not_a_word: + xor eax, eax + stc + jmp .finish +endp + + +; Arguments: +; al - the first byte of utf8 char. +; .map - pointer to the SeparatorsMap array (16 bytes) where each bit is 1 if the char is +; separator and 0 if not. +; Returns: +; CF = 0 if the character is a regular character. +; CF = 1 if the character is a "word separator character": one of: ; +-*/=<>()[]{}:,|&~#`"' +proc RecognizeChar, .map +begin + push eax ecx + test al, $80 + jnz .finish ; after test, CF = 0 + + movzx eax, al + + mov ecx, eax + and ecx, 7 ; 0..7 + shr eax, 3 + add eax, [.map] + + movzx eax, byte [eax] + bt eax, ecx + +.finish: + pop ecx eax + return +endp + + +struc SeparatorsMap [sep] { +common + if used . + . db 16 dup(0) + forward + local ..val, ..ofs, ..mask + + if sep < $80 + ..ofs = sep / 8 + ..mask = 1 shl (sep mod 8) + + load ..val byte from . + ..ofs + ..val = ..val or ..mask + store byte ..val at . + ..ofs + end if +common + end if +} + + +iglobal + ; For use with GetWordAtCaret + SepMapSansPoints SeparatorsMap $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, \ + $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, ' ', '"', '#', '%', '&', '`', \ + '(', ')', '*', '+', ',', '-', '/', '<', '=', '>', '[', '\', ']', '^', '{', '|', \ + '}', '~', ';' + + ; For use with Code completion. + SepMapWithPoints SeparatorsMap $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, \ + $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, ' ', '"', '#', '%', '&', '`', \ + '(', ')', '*', '+', ',', '-', '/', '<', '=', '>', '[', '\', ']', '^', '{', '|', \ + '}', '~', ';', '.', ':' +endg + + + +method TAsmEdit.GetText +begin + pushad + stdcall TextCreate, sizeof.TText + mov edx, eax + + mov ebx, [.self] + mov esi, [ebx+TAsmEdit._lines] + xor ecx, ecx + +.loop: + mov eax, [esi+TText.GapBegin] + cmp ecx, eax + cmovae eax, [esi+TText.GapEnd] + sub eax, [esi+TText.GapBegin] + add eax, ecx + + cmp eax, [esi+TText.Length] + jae .end_of_text + + stdcall TextAddText, edx, -1, [esi+eax] + lea eax, [ebx+TAsmEdit._end_of_line] + stdcall TextAddStr2, edx, -1, eax, 4 + + add ecx, 4 + jmp .loop + +.end_of_text: + mov [esp+4*regEAX], edx + popad + return +endp + + + + +method TAsmEdit.SetText +.context dd ? +.first_eol dd ? +.temp_eol dd ? +begin + pushad + + mov ebx, [.self] + + xor eax, eax + mov [.context], eax + mov [.first_eol], eax + mov [.temp_eol], eax + +; free the previous TText structure for the TAsmEdit._lines + + mov esi, [ebx+TAsmEdit._lines] + test esi, esi + jz .create_new_lines + + xor ecx, ecx + +.free_loop: + mov eax, [esi+TText.GapBegin] + cmp ecx, eax + cmovae eax, [esi+TText.GapEnd] + sub eax, [esi+TText.GapBegin] + add eax, ecx + + cmp eax, [esi+TText.Length] + jae .end_free_loop + + mov edx, [esi+eax] + stdcall FreeMem, [edx+TTextLine.syn_array] + + stdcall RecycleImage, [edx+TTextLine.imgRendered] + stdcall TextFree, edx + + add ecx, 4 + jmp .free_loop + +.end_free_loop: + + stdcall TextFree, esi + +.create_new_lines: + + stdcall TextCreate, sizeof.TText + mov [ebx+TAsmEdit._lines], eax + +; new line widths array. + + stdcall FreeMem, [ebx+TAsmEdit._line_widths] + stdcall CreateArray, sizeof.TCounter + mov [ebx+TAsmEdit._line_widths], eax + + mov edi, [.value] + test edi, edi + jz .end_text + + stdcall StrPtr, edi + mov edi, eax + +.text_loop: + + cmp byte [edi], 0 + je .end_text + + exec ebx, TAsmEdit:InsertNewLine, -1 + mov esi, eax + + xor ecx, ecx + +.line_loop: + stdcall DecodeUtf8, [edi] + jnc .char_ok + + mov eax, '?' + xor edx, edx + inc edx + +.char_ok: + add edi, edx + + test eax, eax + jz .cr_ok + + cmp eax, $0d + je .new_line + cmp eax, $0a + je .new_line + + cmp eax, $09 + je .tab_to_spc + + cmp eax, ' ' + jae .ctrl_ok + + mov eax, '?' + +.ctrl_ok: + stdcall EncodeUtf8, eax + jc .end_text + + stdcall TextAddChar, [esi], eax + mov [esi], edx + jc .end_text + + inc ecx ; ecx counts the characters! + jmp .line_loop + +.tab_to_spc: + stdcall TextAddChar, [esi], $20 + mov [esi], edx + jc .end_text + + inc ecx + test ecx, $7 + jnz .tab_to_spc + + jmp .line_loop + + +.new_line: + and [.temp_eol], 0 + mov byte [.temp_eol], al + + xor eax, $0d xor $0a + cmp [edi], al + jne .cr_ok + + inc edi + mov byte [.temp_eol+1], al + +.cr_ok: + cmp [.first_eol], 0 + jne .eol_ok + + push [.temp_eol] + pop [.first_eol] + +.eol_ok: + push eax + + mov esi, [esi] + mov [esi+TTextLine.ch_len], ecx + stdcall IncCount, [ebx+TAsmEdit._line_widths], ecx + mov [ebx+TAsmEdit._line_widths], edx + + mov eax, [ebx+TAsmEdit._syntax_proc] + test eax, eax + jz .syntax_ok + + stdcall eax, esi, [.context] + mov [.context], eax + +.syntax_ok: + pop eax + test eax, eax + jnz .text_loop + +.end_text: + mov eax, [ebx+TAsmEdit._end_of_line] + cmp [.first_eol], 0 + cmovne eax, [.first_eol] + mov [ebx+TAsmEdit._end_of_line], eax + + exec ebx, TAsmEdit:ComputeLeftMarginWidth + exec ebx, TAsmEdit:UpdateScrollBar + exec ebx, TAsmEdit:RectChanged2, 0 + + set ebx, TAsmEdit:Modified, FALSE + + DebugMsg "SetText method." + + popad + return +endp + + + +method TAsmEdit.Highlight +begin + push eax ecx edx + + exec [.self], TAsmEdit:TextLine, [.LineNum], FALSE + jc .finish + + mov eax, [eax] + mov edx, [.fHighlight] + + mov ecx, [eax+TTextLine.flags] + and [eax+TTextLine.flags], tlfmClearHighlight + or [eax+TTextLine.flags], edx + cmp ecx, [eax+TTextLine.flags] + je .finish + + and [eax+TTextLine.flags], not tlfRendered + exec [.self], TAsmEdit:RectChanged2, 0 ; only one line need to be refreshed!!! + +.finish: + pop edx ecx eax + return +endp + + + + +; Navigation manipulation methods. + +; Returns a pointer to variable where TTextLine with absolute coordinate [.y] is stored. +; If [.y] is outside the text, appends new lines up to [.y] and returns the result. +method TAsmEdit.TextLine ; .LineNum, .fAddMissing +begin + push esi ebx + + mov ebx, [.self] + mov esi, [ebx+TAsmEdit._lines] + + mov eax, [.LineNum] + test eax, eax + cmovs eax, [ebx+TAsmEdit._caretPos.y] + mov [.LineNum], eax + + shl eax, 2 + + cmp eax, [esi+TText.GapBegin] + jb @f + add eax, [esi+TText.GapEnd] + sub eax, [esi+TText.GapBegin] +@@: + cmp eax, [esi+TText.Length] + jae .create_new + + lea eax, [esi+eax] + +.finish: + clc + pop ebx esi + return + +.error: + stc + pop ebx esi + return + +.create_new: + cmp [.fAddMissing], 0 + je .error + + mov ebx, [esi+TText.Length] + sub ebx, [esi+TText.GapEnd] + add ebx, [esi+TText.GapBegin] + shr ebx, 2 + +.loop: + exec [.self], TAsmEdit:InsertNewLine, ebx + push eax + exec [.self], TAsmEdit:SaveForUndo, ebx, chopInserted + pop eax + + cmp ebx, [.LineNum] + lea ebx, [ebx+1] + jne .loop + + push eax + + mov ebx, [.self] + and [ebx+TAsmEdit._img_margin_valid], 0 + exec ebx, TAsmEdit:ComputeLeftMarginWidth + jnc .width_ok + + exec ebx, TAsmEdit:__UpdateImages + exec ebx, TAsmEdit:UpdateScrollBar + exec ebx, TAsmEdit:UpdateCaretPos + +.width_ok: + exec ebx, TAsmEdit:RectChanged2, 0 + pop eax + + inc [ebx+TAsmEdit._UndoLevel] + jmp .finish +endp + + + +method TAsmEdit.ScrollToCaretX +begin + pushad + + mov esi, [.self] + xor ecx, ecx + mov [esp+4*regEAX], ecx + + mov ebx, [esi+TAsmEdit._width_ch_nav] + mov eax, ebx + + dec ebx ; max column number where to not scroll. + + shr eax, 2 + test [esi+TAsmEdit._options], aeoScrollXMore + cmovz edi, ecx + cmovnz edi, eax ; scroll more than needed. + + get edx, esi, TAsmEdit:PosX + + mov eax, [esi+TAsmEdit._caretPos.x] + sub eax, edx ; offset from the screen home. + jz .finish ; no need to scroll + js .do_scroll + + sub eax, ebx + jle .finish + + neg edi + +.do_scroll: + sub eax, edi + add edx, eax + cmovs edx, ecx + + exec esi, TAsmEdit:EventScroll, scrollX, scTrack, edx + inc dword [esp+4*regEAX] + +.finish: + exec esi, TAsmEdit:UpdateCaretPos + popad + return +endp + + + + +method TAsmEdit.ScrollToCaretY +begin + pushad + + mov esi, [.self] + xor ecx, ecx + mov [esp+4*regEAX], ecx + + mov ebx, [esi+TAsmEdit._height_ch_nav] + mov eax, ebx + + dec ebx ; max row number where to not scroll. + + shr eax, 2 + test [esi+TAsmEdit._options], aeoScrollYMore + cmovz edi, ecx + cmovnz edi, eax ; scroll more than needed. + + get edx, esi, TAsmEdit:PosY + + mov eax, [esi+TAsmEdit._caretPos.y] + sub eax, edx ; offset from the screen home. + jz .finish ; no need to scroll + js .do_scroll + + sub eax, ebx + jle .finish + + neg edi + +.do_scroll: + + sub eax, edi + add edx, eax + cmovs edx, ecx + + exec esi, TAsmEdit:EventScroll, scrollY, scTrack, edx + inc dword [esp+4*regEAX] + +.finish: + popad + return +endp + + +method TAsmEdit.CenterCaretY +begin + pushad + + mov esi, [.self] + + mov ebx, [esi+TAsmEdit._height_ch_nav] + get edx, esi, TAsmEdit:CaretY + get ecx, esi, TAsmEdit:PosY + + sub ecx, edx + add ecx, ebx + + cmp ecx, ebx + jg .scroll + + cmp ecx, 0 + jg .finish + +.scroll: + shr ebx, 1 ; center of the screen + xor ecx, ecx + + sub edx, ebx + cmovs edx, ecx ; the new PosY + + exec esi, TAsmEdit:EventScroll, scrollY, scTrack, edx + +.finish: + popad + return +endp + + + + + + +method TAsmEdit.CaretLeftRight +begin + pushad + + mov esi, [.self] + xor edx, edx ; minimal caret pos 0 + + mov ebx, [esi+TAsmEdit._caretPos.x] + add ebx, [.count] + jns .set_pos + + xor ebx, ebx + +.set_pos: + set esi, TAsmEdit:CaretX, ebx + exec esi, TAsmEdit:ScrollToCaretX + + popad + return +endp + + + + + +method TAsmEdit.CaretUpDown +.rect RECT +begin + pushad + + mov esi, [.self] + xor edx, edx ; minimal caret pos 0 + + mov ebx, [esi+TAsmEdit._caretPos.y] + get ecx, esi, TAsmEdit:PosY + + add ebx, [.count] + cmovs ebx, edx + + add ecx, [.count] + cmovs ecx, edx + + mov edi, [esi+TAsmEdit._lines] + + mov eax, [edi+TText.Length] + add eax, [edi+TText.GapBegin] + sub eax, [edi+TText.GapEnd] + shr eax, 2 + dec eax ; max line number. + + cmp ebx, eax + cmova ebx, eax + + add eax, 2 + sub eax, [esi+TAsmEdit._height_ch] + cmovs eax, edx + + cmp ecx, eax + cmova ecx, eax + + set esi, TAsmEdit:CaretY, ebx + + cmp [.scroll], edx + je .finish + + set esi, TAsmEdit:PosY, ecx + jc .finish + + exec esi, TAsmEdit:__InvalidateImgCache + and [esi+TAsmEdit._img_margin_valid], edx + exec esi, TAsmEdit:RectChanged2, edx + +.finish: + exec esi, TAsmEdit:ScrollToCaretY + exec esi, TAsmEdit:UpdateCaretPos + popad + return +endp + + + + +; Keyboard UI methods. + +method TAsmEdit.CaretLeft +begin + exec esi, TAsmEdit:CaretLeftRight, -1 + return +endp + + + +method TAsmEdit.CaretRight +begin + exec esi, TAsmEdit:CaretLeftRight, 1 + return +endp + + + +method TAsmEdit.CaretUp +begin + exec esi, TAsmEdit:CaretUpDown, -1, FALSE + return +endp + + + +method TAsmEdit.CaretDown +begin + exec esi, TAsmEdit:CaretUpDown, 1, FALSE + return +endp + + + +method TAsmEdit.CaretHome +begin + push eax + mov eax, [.self] + set eax, TAsmEdit:CaretX, 0 + exec eax, TAsmEdit:ScrollToCaretX + pop eax + return +endp + + + +method TAsmEdit.CaretEnd +begin + push esi + mov esi, [.self] + + exec esi, TAsmEdit:TextLine, -1, TRUE + mov eax, [eax] + mov eax, [eax+TTextLine.ch_len] + + set esi, TAsmEdit:CaretX, eax + exec esi, TAsmEdit:ScrollToCaretX + + pop esi + return +endp + + +method TAsmEdit.CaretScrHome +begin + push esi + + mov esi, [.self] + + get eax, esi, TAsmEdit:PosY + + set esi, TAsmEdit:CaretY, eax + exec esi, TAsmEdit:UpdateCaretPos + + pop esi + return +endp + + +method TAsmEdit.CaretScrEnd +begin + push esi edx + + mov esi, [.self] + + mov eax, [esi+TAsmEdit._height_ch_nav] + add eax, [esi + TAsmEdit._scrXY.pos + 4] + dec eax + js .finish + + set esi, TAsmEdit:CaretY, eax + exec esi, TAsmEdit:UpdateCaretPos + +.finish: + pop edx esi + return +endp + + + +method TAsmEdit.CaretTxtHome +begin + push ebx + mov ebx, [.self] + set ebx, TAsmEdit:CaretY, 0 + exec ebx, TAsmEdit:ScrollToCaretY + pop ebx + return +endp + + +method TAsmEdit.CaretTxtEnd +begin + push esi edx + + mov esi, [.self] + mov edx, [esi+TAsmEdit._lines] + + mov eax, [edx+TText.Length] + add eax, [edx+TText.GapBegin] + sub eax, [edx+TText.GapEnd] + shr eax, 2 + dec eax + + set esi, TAsmEdit:CaretY, eax + exec esi, TAsmEdit:ScrollToCaretY + + pop edx esi + return +endp + + +method TAsmEdit.CaretWordBack +begin + pushad + + mov edi, [.self] + mov ebx, [edi+TAsmEdit._caretPos.y] + mov ecx, [edi+TAsmEdit._caretPos.x] + +.loopy: + exec edi, TAsmEdit:TextLine, ebx, FALSE + jc .prevline + + mov edx, [eax] + + cmp ecx, -1 + jne .xok + + mov ecx, [edx+TText.Length] ; ecx at the end of the line if this is not the first line. + sub ecx, [edx+TText.GapEnd] + add ecx, [edx+TText.GapBegin] + +.xok: + dec ecx + js .prevline + + stdcall TextIndexToPos, edx, ecx + mov ecx, eax + + xor ah, ah + +.loopx: + mov esi, [edx+TText.GapEnd] + cmp ecx, [edx+TText.GapBegin] + cmovb esi, [edx+TText.GapBegin] + sub esi, [edx+TText.GapBegin] + add esi, ecx + cmp esi, [edx+TText.Length] + jae .prevx + + mov al, [edx+esi] + stdcall RecognizeChar, SepMapWithPoints + jnc .regular + + test ah, ah + jz .prevx + + inc ecx + jmp .word_edge_found + +.regular: + mov ah, al + +.prevx: + dec ecx + jns .loopx + + test ah, ah + jz .prevline + + inc ecx + jmp .word_edge_found + +.prevline: + xor ecx, ecx + dec ecx + + dec ebx + jns .loopy + + inc ecx + inc ebx + +.word_edge_found: + + set edi, TAsmEdit:CaretY, ebx + + stdcall TextPosToIndex, edx, ecx + set edi, TAsmEdit:CaretX, eax + + exec edi, TAsmEdit:ScrollToCaretX + exec edi, TAsmEdit:ScrollToCaretY + exec edi, TAsmEdit:UpdateCaretPos + + popad + return +endp + + +method TAsmEdit.CaretWordForward +.lenx dd ? +.eax dd ? +begin + pushad + + mov edi, [.self] + mov ebx, [edi+TAsmEdit._caretPos.y] + mov ecx, [edi+TAsmEdit._caretPos.x] + + xor ah, ah + + +.loopy: + mov [.eax], eax + + xor edx, edx + exec edi, TAsmEdit:TextLine, ebx, FALSE + jc .end_of_text + + mov edx, [eax] + + mov eax, [edx+TText.Length] + sub eax, [edx+TText.GapEnd] + add eax, [edx+TText.GapBegin] + mov [.lenx], eax + + inc ecx + + stdcall TextIndexToPos, edx, ecx + mov ecx, eax + + mov eax, [.eax] + +.loopx: + mov esi, [edx+TText.GapEnd] + cmp ecx, [edx+TText.GapBegin] + cmovb esi, [edx+TText.GapBegin] + sub esi, [edx+TText.GapBegin] + add esi, ecx + cmp esi, [edx+TText.Length] + jae .nextx + + mov al, [edx+esi] + stdcall RecognizeChar, SepMapWithPoints + jnc .regular + + mov ah, al + jmp .nextx + +.regular: + test ah, ah + jnz .word_edge_found + +.nextx: + inc ecx + cmp ecx, [.lenx] + jb .loopx + +.nextline: + xor ecx, ecx + dec ecx + mov ah, cl + + inc ebx + jmp .loopy + +.end_of_text: + inc ecx + +.word_edge_found: + test edx, edx + cmovz eax, edx + jz .indx_ok + + stdcall TextPosToIndex, edx, ecx + +.indx_ok: + set edi, TAsmEdit:CaretX, eax + set edi, TAsmEdit:CaretY, ebx + + exec edi, TAsmEdit:ScrollToCaretX + exec edi, TAsmEdit:ScrollToCaretY + exec edi, TAsmEdit:UpdateCaretPos + + popad + return +endp + +; Selection control methods + + +method TAsmEdit.SelStartHere +begin + pushad + + mov esi, [.self] + exec esi, TAsmEdit:SelChangeBegin + mov eax, [esi+TAsmEdit._caretPos.x] + mov edx, [esi+TAsmEdit._caretPos.y] + mov [esi+TAsmEdit._selStart.x], eax + mov [esi+TAsmEdit._selStart.y], edx + exec esi, TAsmEdit:SelChangeEnd + + popad + return +endp + + + +method TAsmEdit.SelEndHere +begin + pushad + + mov esi, [.self] + exec esi, TAsmEdit:SelChangeBegin + mov eax, [esi+TAsmEdit._caretPos.x] + mov edx, [esi+TAsmEdit._caretPos.y] + mov [esi+TAsmEdit._selEnd.x], eax + mov [esi+TAsmEdit._selEnd.y], edx + exec esi, TAsmEdit:SelChangeEnd + + popad + return +endp + + +method TAsmEdit.SelChangeBegin +begin + pushad + mov esi, [.self] + xor edx, edx + xchg edx, [esi+TAsmEdit._selAreaUpdate] + test edx, edx + jz .old_ok + + stdcall FreeMem, edx + xor edx, edx + +.old_ok: + exec esi, TAsmEdit:_AddSelRectangles, edx + mov [esi+TAsmEdit._selAreaUpdate], edx + + popad + return +endp + + +method TAsmEdit.SelChangeEnd +begin + pushad + mov esi, [.self] + mov edx, [esi+TAsmEdit._selAreaUpdate] + + exec esi, TAsmEdit:_AddSelRectangles, edx + mov ecx, [edx+TArray.count] + lea edi, [edx+TArray.array] + +.loop: + dec ecx + js .freelist + + mov eax, [edi+RECT.left] + mov ebx, [edi+RECT.top] + + imul eax, [esi+TAsmEdit._font_width] + imul ebx, [esi+TAsmEdit._font_height] + + add eax, [esi+TAsmEdit._left_margin] + + mov [edi+RECT.left], eax + mov [edi+RECT.top], ebx + + mov eax, [edi+RECT.right] + mov ebx, [edi+RECT.bottom] + + imul eax, [esi+TAsmEdit._font_width] + imul ebx, [esi+TAsmEdit._font_height] + + add eax, [esi+TAsmEdit._left_margin] + + mov [edi+RECT.right], eax + mov [edi+RECT.bottom], ebx + + exec esi, TAsmEdit:RectChanged2, edi + + add edi, sizeof.RECT + jmp .loop + +.freelist: + stdcall FreeMem, edx + xor edx, edx + mov [esi+TAsmEdit._selAreaUpdate], edx + + popad + return +endp + + +; Line handling and formatting methods. + + + +; Undo/Redo methods + + +method TAsmEdit.SaveForUndo +begin + pushad + + mov esi, [.self] + mov edx, [esi+TAsmEdit._pUndo] + mov ecx, [.operation] + + mov ebx, [.LineNum] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + + test edx, edx + jz .add_new + + cmp [edx+TUndoInfo.line], ebx + jne .add_new + + cmp ecx, chopChanged + jne .add_new + + mov eax, [esi+TAsmEdit._UndoLevel] + cmp eax, [edx+TUndoInfo.group] + jne .add_new + + cmp [edx+TUndoInfo.operation], ecx + je .finish ; group the chopChanged for the same line. + +; add new record in the chain. + +.add_new: + OutputValue "Add new TUndoInfo for operation: ", ecx, 10, -1 + + stdcall GetMem, sizeof.TUndoInfo + jc .finish + + mov edi, eax + + mov [edi+TUndoInfo.pNext], edx + mov [edi+TUndoInfo.operation], ecx + + mov eax, [esi+TAsmEdit._UndoLevel] + mov [edi+TUndoInfo.group], eax + + mov [esi+TAsmEdit._pUndo], edi + + mov ecx, [esi+TAsmEdit._caretPos.x] + mov edx, [esi+TAsmEdit._caretPos.y] + + mov [edi+TUndoInfo.line], ebx + mov [edi+TUndoInfo.caretPos.x], ecx + mov [edi+TUndoInfo.caretPos.y], edx + + mov ecx, [esi+TAsmEdit._selStart.x] + mov edx, [esi+TAsmEdit._selStart.y] + mov [edi+TUndoInfo.selStart.x], ecx + mov [edi+TUndoInfo.selStart.y], edx + + mov ecx, [esi+TAsmEdit._selEnd.x] + mov edx, [esi+TAsmEdit._selEnd.y] + mov [edi+TUndoInfo.selEnd.x], ecx + mov [edi+TUndoInfo.selEnd.y], edx + + mov ecx, [esi+TAsmEdit._modified] + mov [edi+TUndoInfo.modified], ecx + + exec esi, TAsmEdit:TextLine, ebx, TRUE + stdcall TextDup, [eax] + +.store: + mov [edi+TUndoInfo.pText], eax + mov [eax+TTextLine.syn_array], 0 ; don't copy syntax array pointer! + mov [eax+TTextLine.imgRendered], 0 ; and the image. + and [eax+TTextLine.flags], not tlfRendered + +; now free all redo records, because every new stored undo point invalidates the whole redo list. + +.clean_redo: + xor ecx, ecx + xchg ecx, [esi+TAsmEdit._pRedo] + call __do_clean_list + +.finish: + set esi, TAsmEdit:Modified, TRUE + popad + return +endp + + +method TAsmEdit.ClearUndoRedo +begin + pushad + mov esi, [.self] + + xor ecx, ecx + xchg ecx, [esi+TAsmEdit._pUndo] + call __do_clean_list + + xor ecx, ecx + xchg ecx, [esi+TAsmEdit._pRedo] + call __do_clean_list + + popad + return + +endp + + +proc __do_clean_list +begin +.clean_loop: + jecxz .end_clean + + stdcall TextFree, [ecx+TUndoInfo.pText] + + push ecx + mov ecx, [ecx+TUndoInfo.pNext] + + stdcall FreeMem ; from the stack + jmp .clean_loop + +.end_clean: + return +endp + + +method TAsmEdit.CanUndo +begin + mov eax, [.self] + mov eax, [eax+TAsmEdit._pUndo] + test eax, eax + setnz al + movzx eax, al + return +endp + + +method TAsmEdit.Undo +.group dd ? +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._pUndo] + + test edi, edi + jz .finish ; nothing to undo. + + mov eax, [edi+TUndoInfo.group] + mov [.group], eax + +.loop: + mov edx, [edi+TUndoInfo.pNext] + mov [esi+TAsmEdit._pUndo], edx ; remove from the UNDO list. + + mov edx, [esi+TAsmEdit._pRedo] + mov [edi+TUndoInfo.pNext], edx + mov [esi+TAsmEdit._pRedo], edi ; insert in the REDO list. + + call __ApplyUndo + + mov edi, [esi+TAsmEdit._pUndo] + test edi, edi + jz .refresh + + mov eax, [edi+TUndoInfo.group] + cmp eax, [.group] + je .loop + +.refresh: + exec esi, TAsmEdit:ScrollToCaretY + exec esi, TAsmEdit:ScrollToCaretX + + and [esi+TAsmEdit._img_margin_valid], 0 + exec esi, TAsmEdit:RectChanged2, 0 + + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:UpdateCaretPos + +.finish: + popad + return +endp + + + +method TAsmEdit.CanRedo +begin + mov eax, [.self] + mov eax, [eax+TAsmEdit._pRedo] + test eax, eax + setnz al + movzx eax, al + return +endp + + +method TAsmEdit.Redo +.group dd ? +begin + pushad + + mov esi, [.self] + mov ebx, [esi+TAsmEdit._lines] + + mov edi, [esi+TAsmEdit._pRedo] + + test edi, edi + jz .finish + + mov eax, [edi+TUndoInfo.group] + mov [.group], eax + +.loop: + mov edx, [edi+TUndoInfo.pNext] + mov [esi+TAsmEdit._pRedo], edx ; remove from the REDO list. + + mov edx, [esi+TAsmEdit._pUndo] + mov [edi+TUndoInfo.pNext], edx + mov [esi+TAsmEdit._pUndo], edi ; insert in the UNDO list. + + call __ApplyUndo + + mov edi, [esi+TAsmEdit._pRedo] + test edi, edi + jz .refresh + + mov eax, [edi+TUndoInfo.group] + cmp eax, [.group] + je .loop + +.refresh: + set esi, TAsmEdit:Modified, TRUE + exec esi, TAsmEdit:ScrollToCaretY + exec esi, TAsmEdit:ScrollToCaretX + + and [esi+TAsmEdit._img_margin_valid], 0 + exec esi, TAsmEdit:RectChanged2, 0 + + exec esi, TAsmEdit:UpdateCaretPos + exec esi, TAsmEdit:UpdateScrollBar + +.finish: + popad + return +endp + + +; esi - pointer to TAsmEdit +; edi - pointer to TUndoInfo + +proc __ApplyUndo +begin + pushad + + mov eax, [esi+TAsmEdit._caretPos.x] + xchg eax, [edi+TUndoInfo.caretPos.x] + set esi, TAsmEdit:CaretX, eax ; xchg caret_x + + mov eax, [esi+TAsmEdit._caretPos.y] + xchg eax, [edi+TUndoInfo.caretPos.y] + set esi, TAsmEdit:CaretY, eax ; xchg caret_y + + mov eax, [esi+TAsmEdit._selStart.x] + xchg eax, [edi+TUndoInfo.selStart.x] + mov [esi+TAsmEdit._selStart.x], eax ; xchg selStart_x + + mov eax, [esi+TAsmEdit._selStart.y] + xchg eax, [edi+TUndoInfo.selStart.y] + mov [esi+TAsmEdit._selStart.y], eax ; xchg selStart_y + + mov eax, [esi+TAsmEdit._selEnd.x] + xchg eax, [edi+TUndoInfo.selEnd.x] + mov [esi+TAsmEdit._selEnd.x], eax ; xchg selEnd_x + + mov eax, [esi+TAsmEdit._selEnd.y] + xchg eax, [edi+TUndoInfo.selEnd.y] + mov [esi+TAsmEdit._selEnd.y], eax ; xchg selEnd_y + + mov eax, [esi+TAsmEdit._modified] + xchg eax, [edi+TUndoInfo.modified] + mov [esi+TAsmEdit._modified], eax ; xchg _modified + + mov ebx, [esi+TAsmEdit._lines] + mov eax, [edi+TUndoInfo.operation] + + cmp eax, chopChanged + je .op_changed + + cmp eax, chopDeleted + je .op_deleted + + cmp eax, chopInserted + je .op_inserted + + int3 ; INVALID OPERATION + jmp .finish + +.op_inserted: + mov [edi+TUndoInfo.operation], chopDeleted + + mov eax, [edi+TUndoInfo.line] + shl eax, 2 + stdcall TextMoveGap, ebx, eax + + mov eax, [ebx+TText.GapEnd] + mov ecx, [ebx+eax] + + mov [edi+TUndoInfo.pText], ecx + + xor edx, edx + xchg edx, [ecx+TTextLine.syn_array] + stdcall FreeMem, edx + + and [ecx+TTextLine.flags], not tlfRendered + + add [ebx+TText.GapEnd], 4 + stdcall DecCount, [esi+TAsmEdit._line_widths], [ecx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + + jmp .finish + +.op_deleted: + + mov [edi+TUndoInfo.operation], chopInserted + + mov eax, [edi+TUndoInfo.line] + shl eax, 2 + stdcall TextMoveGap, ebx, eax + stdcall TextSetGapSize, ebx, 4 + mov [esi+TAsmEdit._lines], edx + + mov ebx, edx + mov eax, [ebx+TText.GapBegin] + + and dword [ebx+eax], 0 + add [ebx+TText.GapBegin], 4 + jmp .restore_txt + + +.op_changed: + mov eax, [edi+TUndoInfo.line] + shl eax, 2 ; in bytes + pos2ofs eax, ebx + +.restore_txt: + pushd [edi+TUndoInfo.pText] [ebx+eax] + popd [edi+TUndoInfo.pText] [ebx+eax] ; xchg TTextLine structures of the line. + + mov ecx, [edi+TUndoInfo.pText] + jecxz @f + + xor edx, edx + xchg edx, [ecx+TTextLine.syn_array] + stdcall FreeMem, edx + + and [ecx+TTextLine.flags], not tlfRendered + +@@: + mov ecx, [ebx+eax] ; the restored TTextLine + + and [ecx+TTextLine.syn_array], 0 + and [ecx+TTextLine.flags], not tlfRendered + +; fix the horizontal scrollbar size. + + stdcall IncCount, [esi+TAsmEdit._line_widths], [ecx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + + mov ecx, [edi+TUndoInfo.pText] + jecxz @f + stdcall DecCount, [esi+TAsmEdit._line_widths], [ecx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx +@@: + + exec esi, TAsmEdit:DelTrailingSpaces, [edi+TUndoInfo.line] + +.finish: + popad + return +endp + + + + +method TAsmEdit.Cut +begin + push eax ebx + + get ebx, [.self], TAsmEdit:Selection + stdcall StrLen, ebx + test eax, eax + jz .finish + + stdcall ClipboardWrite, ebx + exec [.self], TAsmEdit:DeleteSelection + +.finish: + pop ebx eax + return +endp + + + +method TAsmEdit.Copy +begin + push eax ebx + + get ebx, [.self], TAsmEdit:Selection + stdcall StrLen, ebx + test eax, eax + jz .finish + + stdcall ClipboardWrite, ebx + +.finish: + pop ebx eax + return +endp + + + +method TAsmEdit.Paste +begin + push eax + + stdcall ClipboardRead + jc .finish + + exec [.self], TAsmEdit:ReplaceSelection, eax + +.finish: + pop eax + return +endp + + + +; Text editing methods + + + + +method TAsmEdit.InsertNewLine ;, .LineNum +begin + pushad + + mov esi, [.self] + mov edx, [esi+TAsmEdit._lines] + + stdcall TextSetGapSize, edx, 4 + mov [esi+TAsmEdit._lines], edx + jc .finish + + xor edi, edi + + mov eax, [.LineNum] + shl eax, 2 + + stdcall TextMoveGap, edx, eax + + mov ebx, [edx+TText.GapBegin] + add ebx, edx + + stdcall TextCreate, sizeof.TTextLine + jc .finish + + mov [ebx], eax + mov [esp+4*regEAX], ebx ; return value in EAX is the pointer to the new inserted TText. + +; Init the TTextLine part of the structure to 0. + lea edi, [eax - sizeof.TTextLine] + mov ecx, (sizeof.TTextLine - sizeof.TText)/4 + xor eax, eax + rep stosd + + add [edx+TText.GapBegin], 4 + + stdcall IncCount, [esi+TAsmEdit._line_widths], 0 + mov [esi+TAsmEdit._line_widths], edx + + clc + +.finish: + popad + return +endp + + + +method TAsmEdit.DeleteLine ;, .LineNum +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._lines] + mov ebx, [.LineNum] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + mov [.LineNum], ebx + + shl ebx, 2 + stdcall TextMoveGap, edi, ebx + + mov ebx, [edi+TText.GapEnd] + cmp ebx, [edi+TText.Length] + jae .not_deleted + + exec esi, TAsmEdit:SaveForUndo, [.LineNum], chopDeleted + + mov edx, [edi+ebx] + stdcall FreeMem, [edx+TTextLine.syn_array] + stdcall RecycleImage, [edx+TTextLine.imgRendered] + stdcall TextFree, edx + + add [edi+TText.GapEnd], 4 + + clc + popad + return + +.not_deleted: + stc + popad + return +endp + + +method TAsmEdit.DeleteChar ; .LineNum, .CharPos +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._lines] + mov ebx, [.LineNum] + mov eax, [.CharPos] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + cmovs eax, [esi+TAsmEdit._caretPos.x] + mov [.CharPos], eax + mov [.LineNum], ebx + + shl ebx, 2 + cmp ebx, [edi+TText.GapBegin] + jb .skip + add ebx, [edi+TText.GapEnd] + sub ebx, [edi+TText.GapBegin] +.skip: + cmp ebx, [edi+TText.Length] + jae .not_deleted + + mov ebx, [edi+ebx] + stdcall TextIndexToPos, ebx, [.CharPos] + jc .not_deleted + + stdcall TextMoveGap, ebx, eax + mov edx, [ebx+TTextLine.GapEnd] + cmp edx, [ebx+TTextLine.Length] + jae .not_deleted + + exec esi, TAsmEdit:SaveForUndo, [.LineNum], chopChanged + + movzx eax, byte [ebx+edx] + + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not al ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr eax, eax ; eax = 7, 5, 4, 3, 2, 1 + sub eax, 7 ; eax = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not eax ; eax = -1, +1, +2, +3, +4, +5 + sbb eax, -2 ; eax = edx + 2 - CF = +1, +2, +3, +4, +5, +6 + + add edx, eax + cmp edx, [ebx+TTextLine.Length] + cmova edx, [ebx+TTextLine.Length] + mov [ebx+TTextLine.GapEnd], edx + + xor eax, eax + xchg eax, [ebx+TTextLine.syn_array] ; reset the syntax array of the line... + stdcall FreeMem, eax + + and [ebx+TTextLine.flags], not tlfRendered + + stdcall DecCount, [esi+TAsmEdit._line_widths], [ebx+TTextLine.ch_len] + dec [ebx+TTextLine.ch_len] + stdcall IncCount, edx, [ebx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + + and [esi+TAsmEdit._img_margin_valid], 0 + exec esi, TAsmEdit:RectChanged2, 0 + exec esi, TAsmEdit:UpdateCaretPos + + clc + popad + return + +.not_deleted: + stc + popad + return +endp + + +method TAsmEdit.JoinNextLine ; .LineNum +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._lines] + mov ebx, [.LineNum] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + mov [.LineNum], ebx + + shl ebx, 2 + lea ecx, [ebx+4] + + stdcall TextMoveGap, edi, ecx ; move the gap between the two lines. + +; here ebx is before the gap and ecx is after! + + add ecx, [edi+TText.GapEnd] + sub ecx, [edi+TText.GapBegin] + cmp ecx, [edi+TText.Length] + jae .finish ; nothing to join + + cmp ebx, [edi+TText.Length] + jae .finish + + exec esi, TAsmEdit:SaveForUndo, [.LineNum], chopChanged + inc [.LineNum] + exec esi, TAsmEdit:SaveForUndo, [.LineNum], chopDeleted + + add [edi+TText.GapEnd], 4 ; free the place of the next line... + +; first fix the new line widths... + + mov edx, [esi+TAsmEdit._line_widths] + + mov eax, [edi+ebx] + push [eax+TTextLine.ch_len] + stdcall DecCount, edx, [eax+TTextLine.ch_len] + + mov eax, [edi+ecx] + push [eax+TTextLine.ch_len] + stdcall DecCount, edx, [eax+TTextLine.ch_len] + + mov [esi+TAsmEdit._line_widths], edx + + pop eax edx + add eax, edx + mov edx, [edi+ebx] + mov [edx+TTextLine.ch_len], eax + + stdcall IncCount, [esi+TAsmEdit._line_widths], eax + mov [esi+TAsmEdit._line_widths], edx + +; then join the texts + + stdcall TextAddText, [edi+ebx], -1, [edi+ecx] + mov [edi+ebx], edx + +; then free the next line TTextLine structure... + + mov eax, [edi+ecx] + mov edx, [eax+TTextLine.flags] + + stdcall FreeMem, [eax+TTextLine.syn_array] + stdcall RecycleImage, [eax+TTextLine.imgRendered] + stdcall TextFree, eax ; delete the next line... but what about the debug info and other attributes? + +; reset the syntax coloring of the result line + mov eax, [edi+ebx] + or [eax+TTextLine.flags], edx + + stdcall FreeMem, [eax+TTextLine.syn_array] + and [eax+TTextLine.syn_array], 0 + +.finish: + popad + return +endp + + + +method TAsmEdit.SplitLine +begin + pushad + + mov esi, [.self] + mov ebx, [.LineNum] + mov ecx, [.PosX] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + cmovs ecx, [esi+TAsmEdit._caretPos.x] + mov [.LineNum], ebx + mov [.PosX], ecx + + exec esi, TAsmEdit:TextLine, ebx, TRUE ; ensure the line ebx exists. + + inc ebx + exec esi, TAsmEdit:InsertNewLine, ebx + mov edi, eax + exec esi, TAsmEdit:SaveForUndo, ebx, chopInserted + + mov edx, [esi+TAsmEdit._lines] + mov ebx, [edx+4*ebx-4] ; the gap, after the InsertNewLine is located just after the ebx line. + + stdcall TextIndexToPos, ebx, [.PosX] + + push eax + exec esi, TAsmEdit:SaveForUndo, [.LineNum], chopChanged + pop eax + + stdcall TextMoveGap, ebx, eax + stdcall DecCount, [esi+TAsmEdit._line_widths], [ebx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + + mov eax, [ebx+TTextLine.GapEnd] + mov ecx, [ebx+TTextLine.Length] + mov [ebx+TTextLine.GapEnd], ecx + sub ecx, eax ; the length in bytes of the remaining text in the splitted line. + add eax, ebx ; the address of the remaining of the splitted line. + + push eax ecx + + stdcall StrLenUtf8, eax, ecx + push eax eax ; the length in utf-8 chars. + + test [esi+TAsmEdit._options], aeoAutoIndents + jz .indent_ok + + mov eax, [.LineNum] + inc eax + exec esi, TAsmEdit:GetSmartTab, eax, 0 + mov edx, [edi] + mov [edx+TTextLine.ch_len], eax + +.spc: + dec eax + js .end_spc + + stdcall TextAddChar, edx, ' ' + jmp .spc + +.end_spc: + mov [edi], edx + +.indent_ok: + mov ecx, [edi] + + xor edx, edx + xchg edx, [ecx+TTextLine.syn_array] + stdcall FreeMem, edx + and [ecx+TTextLine.flags], not tlfRendered ; mark the new line as not rendered. + + xor edx, edx + xchg edx, [ebx+TTextLine.syn_array] + stdcall FreeMem, edx + and [ebx+TTextLine.flags], not tlfRendered ; mark the old line as not rendered. + + stdcall DecCount, [esi+TAsmEdit._line_widths], 0 ; the initial length of the new line was incremented in InsertLine + + pop eax + add [ecx+TTextLine.ch_len], eax + + stdcall IncCount, edx, [ecx+TTextLine.ch_len] ; the width of the new line. + + pop eax + sub [ebx+TTextLine.ch_len], eax + + stdcall IncCount, edx, [ebx+TTextLine.ch_len] ; the width of the old line. + mov [esi+TAsmEdit._line_widths], edx + + pop ecx eax + + mov ebx, [edi] + mov ebx, [ebx+TTextLine.GapBegin] + mov [esp+4*regEAX], ebx ; the caret position is returned in EAX. Notice, that from the begining of + ; the line up to the caret, there can be only $20 spaces, so the GapBegin + ; is always equal to the caret position X. + + stdcall TextAddBytes, [edi], -1, eax, ecx ; copy the text from the old line into the new. + mov [edi], edx + + exec esi, TAsmEdit:DelTrailingSpaces, [.LineNum] + +.finish: + popad + return +endp + + + +method TAsmEdit.DeleteSelection +.list dd ? +begin + pushad + + exec [.self], TAsmEdit:_AddSelRectanglesAbs, 0 + mov [.list], edx + + lea edi, [edx+TArray.array] + mov ecx, [edx+TArray.count] + test ecx, ecx + jz .exit_empty + + mov eax, ecx + shl eax, 4 ; sizeof.RECT + add edi, eax + +.rect_loop: + + sub edi, sizeof.RECT + dec ecx + js .finish + + mov ebx, [edi+RECT.bottom] + +.y_loop: + dec ebx + cmp ebx, [edi+RECT.top] + jl .rect_loop + + exec [.self], TAsmEdit:SaveForUndo, ebx, chopChanged + + exec [.self], TAsmEdit:AddTrailingSpaces, ebx, [edi+RECT.left] + exec [.self], TAsmEdit:TextLine, ebx, TRUE + mov esi, [eax] + + stdcall TextIndexToPos, esi, [edi+RECT.left] + stdcall TextMoveGap, esi, eax + + mov eax, [esi+TTextLine.ch_len] + cmp eax, [edi+RECT.right] + cmova eax, [edi+RECT.right] ; delete up to the min(length, RECT.right) utf-8 character position! + + push ecx + push eax ; char count + mov ecx, [.self] + + stdcall TextIndexToPos, esi, eax + sub eax, [esi+TTextLine.GapBegin] + add [esi+TTextLine.GapEnd], eax ; delete eax bytes! + + stdcall DecCount, [ecx+TAsmEdit._line_widths], [esi+TTextLine.ch_len] + + pop eax + sub eax, [edi+RECT.left] ; deleted characters! + sub [esi+TTextLine.ch_len], eax + + stdcall IncCount, edx, [esi+TTextLine.ch_len] + mov [ecx+TAsmEdit._line_widths], edx + + pop ecx + +; join the lines, if the selection is right to infinity: + + cmp [edi+RECT.right], $7fffffff + je .joinnext + + exec [.self], TAsmEdit:DelTrailingSpaces, ebx + jmp .y_loop + +.joinnext: + exec [.self], TAsmEdit:JoinNextLine, ebx + jmp .y_loop + +.finish: + mov esi, [.self] + + get eax, esi, TAsmEdit:SelStartX + get ecx, esi, TAsmEdit:SelEndX + cmp eax, ecx + cmovg eax, ecx + + get edx, esi, TAsmEdit:SelStartY + get ecx, esi, TAsmEdit:SelEndY + cmp edx, ecx + cmovg edx, ecx + + set esi, TAsmEdit:CaretX, eax + set esi, TAsmEdit:CaretY, edx + + exec esi, TAsmEdit:SelChangeBegin + exec esi, TAsmEdit:SelStartHere + exec esi, TAsmEdit:SelEndHere + exec esi, TAsmEdit:SelChangeEnd + + exec esi, TAsmEdit:UpdateScrollBar + xor eax, eax + xchg eax, [esi+TAsmEdit._img_margin_valid] + exec esi, TAsmEdit:RectChanged2, 0 + exec esi, TAsmEdit:ScrollToCaretX + exec esi, TAsmEdit:ScrollToCaretY + +.exit: + inc [esi+TAsmEdit._UndoLevel] + stdcall FreeMem, [.list] + clc + popad + return + +.exit_empty: + + stdcall FreeMem, [.list] + stc + popad + return +endp + + + +method TAsmEdit.InsertString ;, .text +.varline dd ? +.options dd ? +begin + pushad + + mov edi, [.self] + + inc [edi+TAsmEdit._UndoLevel] + get ebx, edi, TAsmEdit:CaretY + get ecx, edi, TAsmEdit:CaretX + + push [edi+TAsmEdit._options] + and [edi+TAsmEdit._options], not aeoAutoIndents + + stdcall StrPtr, [.text] + mov esi, eax + +.loopy: + exec [.self], TAsmEdit:TextLine, ebx, TRUE + mov [.varline], eax + mov edx, [eax] + + exec [.self], TAsmEdit:SaveForUndo, ebx, chopChanged + exec [.self], TAsmEdit:AddTrailingSpaces, ebx, ecx + + and [edx+TTextLine.flags], not tlfRendered + xor eax, eax + xchg eax, [edx+TTextLine.syn_array] + stdcall FreeMem, eax + + stdcall TextIndexToPos, edx, ecx + stdcall TextMoveGap, edx, eax + + xor ecx, ecx ; inserted characters. + +.loopx: + stdcall TextSetGapSize, edx, 4 + + mov eax, [esi] + + cmp al, $20 + jae .insert + +; ctrl characters + test al, al + jz .end_of_line + + cmp al, $0d + je .end_of_line + + cmp al, $0a + je .end_of_line + +; cmp al, $09 +; je .tab + +; ignore the remaining ctrl characters. + inc esi + jmp .loopx + +.insert: + mov edi, [edx+TTextLine.GapBegin] + mov [edx+edi], eax + + movzx eax, al + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not al ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr eax, eax ; eax = 7, 5, 4, 3, 2, 1 + sub eax, 7 ; eax = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not eax ; eax = -1, +1, +2, +3, +4, +5 + sbb eax, -2 ; eax = eax + 2 - CF = +1, +2, +3, +4, +5, +6 + + add [edx+TTextLine.GapBegin], eax + add esi, eax + inc ecx + jmp .loopx + +.end_of_line: + xor ah, $0d xor $0a + cmp al, ah ; ah is the next char. + jne .crlf_ok + + inc esi + +.crlf_ok: + push eax + + inc esi + mov edi, [.self] + + get eax, edi, TAsmEdit:CaretX + add eax, ecx + set edi, TAsmEdit:CaretX, eax + + mov eax, [.varline] + mov [eax], edx ; save the modified line. + + add ecx, [edx+TTextLine.ch_len] + push [edx+TTextLine.ch_len] + mov [edx+TTextLine.ch_len], ecx + + stdcall DecCount, [edi+TAsmEdit._line_widths] ; from the stack + stdcall IncCount, edx, ecx + mov [edi+TAsmEdit._line_widths], edx + + pop eax + test al, al + jz .end_of_text + + exec edi, TAsmEdit:SplitLine, ebx, [edi+TAsmEdit._caretPos.x] + + mov ecx, eax + set edi, TAsmEdit:CaretX, eax + + inc ebx + set edi, TAsmEdit:CaretY, ebx + jmp .loopy + +.end_of_text: + mov edi, [.self] + + pop [edi+TAsmEdit._options] + + exec edi, TAsmEdit:ScrollToCaretX + exec edi, TAsmEdit:ScrollToCaretY + + exec edi, TAsmEdit:ComputeLeftMarginWidth + + and [edi+TAsmEdit._img_margin_valid], 0 + exec edi, TAsmEdit:__UpdateImages + exec edi, TAsmEdit:UpdateScrollBar + exec edi, TAsmEdit:UpdateCaretPos + exec edi, TAsmEdit:RectChanged2, 0 + + popad + return +endp + + + +method TAsmEdit.ReplaceSelection ;, .text +begin + exec [.self], TAsmEdit:DeleteSelection + exec [.self], TAsmEdit:InsertString, [.text] + return +endp + + + +method TAsmEdit.AddTrailingSpaces ; .LineNum, .CharX +begin + pushad + + mov esi, [.self] + mov ebx, [.LineNum] + mov eax, [.PosX] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + cmovs eax, [esi+TAsmEdit._caretPos.x] + mov [.PosX], eax + + mov edi, [esi+TAsmEdit._lines] + + shl ebx, 2 + cmp ebx, [edi+TText.GapBegin] + jb .skip + add ebx, [edi+TText.GapEnd] + sub ebx, [edi+TText.GapBegin] +.skip: + cmp ebx, [edi+TText.Length] + jae .finish ; the line is outside the text. Add empty lines??? + + mov edx, [edi+ebx] + + mov ecx, [.PosX] + sub ecx, [edx+TTextLine.ch_len] + jle .finish ; the caret is inside the line. + + push edx + stdcall DecCount, [esi+TAsmEdit._line_widths], [edx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + pop edx + + add [edx+TTextLine.ch_len], ecx + + push edx + stdcall IncCount, [esi+TAsmEdit._line_widths], [edx+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + pop edx + + stdcall TextMoveGap, edx, -1 + stdcall TextSetGapSize, edx, ecx + mov [edi+ebx], edx + + mov edi, edx + add edi, [edx+TTextLine.GapBegin] + add [edx+TTextLine.GapBegin], ecx + mov al, " " + rep stosb + +.finish: + popad + return +endp + + + + +method TAsmEdit.DelTrailingSpaces ;, ;.LineNum +begin + pushad + + mov esi, [.self] + mov ebx, [.LineNum] + test ebx, ebx + cmovs ebx, [esi+TAsmEdit._caretPos.y] + + mov edi, [esi+TAsmEdit._lines] + + shl ebx, 2 + cmp ebx, [edi+TText.GapBegin] + jb .skip + add ebx, [edi+TText.GapEnd] + sub ebx, [edi+TText.GapBegin] +.skip: + cmp ebx, [edi+TText.Length] + jae .finish ; the line is outside the text. Add empty lines??? + + mov edi, [edi+ebx] + + stdcall TextMoveGap, edi, -1 + + mov edx, edi + add edx, [edi+TTextLine.GapBegin] + +; search back the first non-whitespace... + +.loop: + dec edx + cmp edx, edi + jl .found + + cmp byte [edx], ' ' + jbe .loop + +.found: + inc edx + mov ecx, edx + sub ecx, edi + + xchg ecx, [edi+TTextLine.GapBegin] + sub ecx, [edi+TTextLine.GapBegin] + + stdcall DecCount, [esi+TAsmEdit._line_widths], [edi+TTextLine.ch_len] + sub [edi+TTextLine.ch_len], ecx + stdcall IncCount, edx, [edi+TTextLine.ch_len] + mov [esi+TAsmEdit._line_widths], edx + + xor eax, eax + xchg eax, [edi+TTextLine.syn_array] + stdcall FreeMem, eax + + and [edi+TTextLine.flags], not tlfRendered + +.finish: + popad + return +endp + + + +method TAsmEdit.PrefixInsert +begin + pushad + + movzx ecx, byte [.char] + + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not cl ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr ecx, ecx ; eax = 7, 5, 4, 3, 2, 1 + sub ecx, 7 ; eax = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not ecx ; eax = -1, +1, +2, +3, +4, +5 + sbb ecx, -2 ; eax = edx + 2 - CF = +1, +2, +3, +4, +5, +6 + + shl ecx, 3 ; *8 bits + xor eax, eax + dec eax + shl eax, cl + not eax + and [.char], eax ; only one utf8 char is allowed. + + mov esi, [.self] + inc [esi+TAsmEdit._UndoLevel] + + mov ebx, [.LineFrom] + dec ebx + +.loop: + inc ebx + cmp ebx, [.LineTo] + je .end_loop + + exec esi, TAsmEdit:SaveForUndo, ebx, chopChanged + + exec esi, TAsmEdit:TextLine, ebx, FALSE + jc .end_loop + + mov edx, [eax] + + stdcall TextMoveGap, edx, 0 + stdcall TextAddChar, edx, [.char] + mov [eax], edx + + mov eax, [edx+TTextLine.ch_len] + inc [edx+TTextLine.ch_len] + mov ecx, [edx+TTextLine.ch_len] + + stdcall DecCount, [esi+TAsmEdit._line_widths], eax + stdcall IncCount, edx, ecx + mov [esi+TAsmEdit._line_widths], edx + + exec esi, TAsmEdit:DelTrailingSpaces, ebx + jmp .loop + +.end_loop: + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:RectChanged2, 0 + + popad + return +endp + + + +method TAsmEdit.PrefixRemove +begin + pushad + + movzx ecx, byte [.char] + + ; compute the length of the UTF-8 character by its first byte (version without branches) Is it fast? + not cl ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr ecx, ecx ; ecx = 7, 5, 4, 3, 2, 1 + sub ecx, 7 ; ecx = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not ecx ; ecx = -1, +1, +2, +3, +4, +5 + sbb ecx, -2 ; ecx = ecx + 2 - CF = +1, +2, +3, +4, +5, +6 + + shl ecx, 3 ; *8 bits + xor eax, eax + dec eax + shl eax, cl + not eax + and [.char], eax ; only one utf8 char is allowed. + + mov esi, [.self] + + mov ebx, [.LineFrom] + dec ebx + +.loop1: + inc ebx + cmp ebx, [.LineTo] + je .end_loop1 + + exec esi, TAsmEdit:TextLine, ebx, FALSE + jc .end_loop1 + + mov edx, [eax] + + stdcall TextMoveGap, edx, 0 + stdcall TextGetChar, edx + jc .finish + + cmp eax, [.char] + je .loop1 + jmp .finish + + +.end_loop1: + + mov ebx, [.LineFrom] + dec ebx + + inc [esi+TAsmEdit._UndoLevel] + +.loop2: + inc ebx + cmp ebx, [.LineTo] + je .end_loop2 + + exec esi, TAsmEdit:SaveForUndo, ebx, chopChanged + exec esi, TAsmEdit:TextLine, ebx, FALSE + jc .end_loop2 + + mov edx, [eax] + stdcall TextDelChar, edx + + mov eax, [edx+TTextLine.ch_len] + dec [edx+TTextLine.ch_len] + mov ecx, [edx+TTextLine.ch_len] + + stdcall DecCount, [esi+TAsmEdit._line_widths], eax + stdcall IncCount, edx, ecx + mov [esi+TAsmEdit._line_widths], edx + + exec esi, TAsmEdit:DelTrailingSpaces, ebx + jmp .loop2 + +.end_loop2: + exec esi, TAsmEdit:UpdateScrollBar + exec esi, TAsmEdit:RectChanged2, 0 + +.finish: + popad + return +endp + + + +; method .SelectionPrefix, .op, .char + +selprInsert = 0 +selprRemove = 1 + +method TAsmEdit.SelectionPrefix +begin + pushad + + mov esi, [.self] + exec esi, TAsmEdit:HasSelection + jnc .finish + + exec esi, TAsmEdit:SelChangeBegin + + get eax, esi, TAsmEdit:Mode + and eax, not aemBlockSelection + set esi, TAsmEdit:Mode, eax + + mov eax, [esi+TAsmEdit._selStart.x] + mov ebx, [esi+TAsmEdit._selStart.y] + mov ecx, [esi+TAsmEdit._selEnd.x] + mov edx, [esi+TAsmEdit._selEnd.y] + + cmp ebx, edx + jb .sel_ok + ja .swap + + cmp eax, ecx + jbe .sel_ok + +.swap: + xchg ebx, edx + xchg eax, ecx + +.sel_ok: + xor eax, eax ; from the start of the line. + + test ecx, ecx + jz .sel_ok2 + + inc edx + xor ecx, ecx + +.sel_ok2: + mov [esi+TAsmEdit._selStart.x], eax + mov [esi+TAsmEdit._selStart.y], ebx + mov [esi+TAsmEdit._selEnd.x], ecx + mov [esi+TAsmEdit._selEnd.y], edx + mov [esi+TAsmEdit._caretPos.x], ecx + mov [esi+TAsmEdit._caretPos.y], edx + + exec esi, TAsmEdit:SelChangeEnd + exec esi, TAsmEdit:UpdateCaretPos + + cmp [.op], 0 + jne .remove + +;insert + exec esi, TAsmEdit:PrefixInsert, ebx, edx, [.char] + jmp .finish + +.remove: + exec esi, TAsmEdit:PrefixRemove, ebx, edx, [.char] + +.finish: + popad + return +endp + + + + +method TAsmEdit.GetSmartTab ;, .lineNum, .fromX +begin + pushad + + mov eax, [.lineNum] + test eax, eax + jz .missing + + dec eax + exec [.self], TAsmEdit:TextLine, eax, FALSE + jc .missing + + mov esi, [eax] + stdcall TextIndexToPos, esi, [.fromX] + mov ebx, eax + + xor ecx, ecx + test ebx, ebx + cmovz ecx, esi ; esi is only <>0 here! + jz .start + + dec ebx + cmp ebx, [esi+TText.GapBegin] + jb @f + cmp ebx, [esi+TText.GapEnd] + jae @f + add ebx, [esi+TText.GapEnd] + sub ebx, [esi+TText.GapBegin] +@@: + cmp ebx, [esi+TText.Length] + jae .missing + + cmp byte [esi+ebx], ' ' + cmove ecx, esi + jmp .search + +.start: + dec ebx + +.search: + inc ebx + + cmp ebx, [esi+TText.GapBegin] + jb @f + cmp ebx, [esi+TText.GapEnd] + jae @f + add ebx, [esi+TText.GapEnd] + sub ebx, [esi+TText.GapBegin] +@@: + cmp ebx, [esi+TText.Length] + jae .missing + + cmp byte [esi+ebx], ' ' + cmove ecx, esi + je .search + + test ecx, ecx + jz .search + + cmp ebx, [esi+TText.GapBegin] + jb .finish + + sub ebx, [esi+TText.GapEnd] + add ebx, [esi+TText.GapBegin] + +.finish: + stdcall TextPosToIndex, esi, ebx + mov [esp+4*regEAX], eax + clc + popad + return + + +.missing: + mov dword [esp+4*regEAX], 0 + stc + popad + return +endp + + + + + + +; Search methods + +method TAsmEdit.Search ;, .pattern, .options +.lines dd ? +begin + pushad + + mov esi, [.self] + + xor eax, eax + xchg eax, [esi+TAsmEdit._search_str] + test eax, eax + jz .ready + + stdcall StrDel, eax + + xor eax, eax + xchg eax, [esi+TAsmEdit._search_index] + test eax, eax + jz .ready + + stdcall FreeMem, eax + + +.ready: + cmp [.pattern], 0 + je .finish + + xor edx, edx + + stdcall StrLen, [.pattern] + test eax, eax + jz .end_search + + stdcall StrDup, [.pattern] + mov [esi+TAsmEdit._search_str], eax + + mov eax, [.options] + mov [esi+TAsmEdit._search_options], eax + + stdcall TextPrepareSearch, [esi+TAsmEdit._search_str], [esi+TAsmEdit._search_options] + mov edi, eax + + stdcall CreateArray, sizeof.POINT + mov edx, eax + + mov ebx, [esi+TAsmEdit._lines] + mov eax, [ebx+TText.Length] + sub eax, [ebx+TText.GapEnd] + add eax, [ebx+TText.GapBegin] + shr eax, 2 + mov [.lines], eax + + xor ebx, ebx + dec ebx + +.next_line: + inc ebx + cmp ebx, [.lines] + jae .end_search + + exec esi, TAsmEdit:TextLine, ebx, FALSE + jc .end_search + + mov ecx, [eax] + xor eax, eax + +.loop: + stdcall TextSearch, ecx, [esi+TAsmEdit._search_str], eax, edi, [esi+TAsmEdit._search_options] + jnc .next_line + + push eax ebx eax + + stdcall AddArrayItems, edx, 1 + + pop [eax+POINT.x] [eax+POINT.y] + + pop eax + inc eax + jmp .loop + +.end_search: + mov [esi+TAsmEdit._search_index], edx + exec esi, TAsmEdit:SearchHere + +.finish: + popad + return +endp + + + + +method TAsmEdit.SearchHere +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._search_index] + test edi, edi + jz .deselect + + get eax, esi, TAsmEdit:CaretY + get edx, esi, TAsmEdit:CaretX + + xor ecx, ecx + dec ecx + +.search: + inc ecx + cmp ecx, [edi+TArray.count] + jge .not_found + + cmp eax, [edi+TArray.array+8*ecx+POINT.y] + jg .search + jl .found + + cmp edx, [edi+TArray.array+8*ecx+POINT.x] + jg .search + +.found: + set esi, TAsmEdit:CaretY, [edi+TArray.array+8*ecx+POINT.y] + + stdcall StrLenUtf8, [esi+TAsmEdit._search_str] + add eax, [edi+TArray.array+8*ecx+POINT.x] + set esi, TAsmEdit:CaretX, eax + exec esi, TAsmEdit:SelStartHere + + set esi, TAsmEdit:CaretX, [edi+TArray.array+8*ecx+POINT.x] + exec esi, TAsmEdit:SelEndHere + + exec esi, TAsmEdit:ScrollToCaretX + exec esi, TAsmEdit:CenterCaretY, [edi+TArray.array+8*ecx+POINT.y] + +.finish: + exec esi, TAsmEdit:__ClearScrollbar, scrollY + exec esi, TAsmEdit:__DrawScrollbar, scrollY + exec esi, TAsmEdit:__Invalidate, scrollY + + popad + return + +.deselect: + exec esi, TAsmEdit:SelStartHere + exec esi, TAsmEdit:SelEndHere + jmp .finish + +.not_found: + or eax, edx + jz .deselect + + xor ecx, ecx + dec ecx + xor eax, eax + xor edx, edx + jmp .search +endp + + + + +method TAsmEdit.SearchNext +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._search_index] + test edi, edi + jz .finish + +; sort selection first + + mov eax, [esi+TAsmEdit._selEnd.y] + cmp eax, [esi+TAsmEdit._selStart.y] + jne .do_search + + cmp eax, [esi+TAsmEdit._caretPos.y] + jne .do_search + + mov eax, [esi+TAsmEdit._selEnd.x] + mov edx, [esi+TAsmEdit._selStart.x] + + cmp eax, [esi+TAsmEdit._caretPos.x] + je .sort + cmp edx, [esi+TAsmEdit._caretPos.x] + jne .do_search +.sort: + cmp eax, edx + cmovb eax, edx + + set esi, TAsmEdit:CaretX, eax + +.do_search: + get eax, esi, TAsmEdit:CaretY + get edx, esi, TAsmEdit:CaretX + + xor ecx, ecx + dec ecx + +.search: + inc ecx + cmp ecx, [edi+TArray.count] + jge .not_found + + cmp eax, [edi+TArray.array+8*ecx+POINT.y] + jg .search + jl .found + + cmp edx, [edi+TArray.array+8*ecx+POINT.x] + jg .search + +.found: + set esi, TAsmEdit:CaretY, [edi+TArray.array+8*ecx+POINT.y] + set esi, TAsmEdit:CaretX, [edi+TArray.array+8*ecx+POINT.x] + exec esi, TAsmEdit:SelStartHere + + stdcall StrLenUtf8, [esi+TAsmEdit._search_str] + add eax, [edi+TArray.array+8*ecx+POINT.x] + set esi, TAsmEdit:CaretX, eax + exec esi, TAsmEdit:SelEndHere + + exec esi, TAsmEdit:CenterCaretY, [edi+TArray.array+8*ecx+POINT.y] + exec esi, TAsmEdit:ScrollToCaretX + + exec esi, TAsmEdit:__ClearScrollbar, scrollY + exec esi, TAsmEdit:__DrawScrollbar, scrollY + exec esi, TAsmEdit:__Invalidate, scrollY + +.finish: + popad + return + +.not_found: + or eax, edx + jz .finish + + xor ecx, ecx + dec ecx + xor eax, eax + xor edx, edx + jmp .search +endp + + +method TAsmEdit.SearchPrev +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._search_index] + test edi, edi + jz .finish + +; sort selection first + + mov eax, [esi+TAsmEdit._selStart.y] + cmp eax, [esi+TAsmEdit._selEnd.y] + jne .do_search + + cmp eax, [esi+TAsmEdit._caretPos.y] + jne .do_search + + mov eax, [esi+TAsmEdit._selStart.x] + mov edx, [esi+TAsmEdit._selEnd.x] + + cmp eax, [esi+TAsmEdit._caretPos.x] + je .sort + cmp edx, [esi+TAsmEdit._caretPos.x] + jne .do_search +.sort: + cmp eax, edx + cmova eax, edx + + set esi, TAsmEdit:CaretX, eax + +.do_search: + get eax, esi, TAsmEdit:CaretY + get edx, esi, TAsmEdit:CaretX + + mov ecx, [edi+TArray.count] + +.search: + dec ecx + js .not_found + + cmp eax, [edi+TArray.array+8*ecx+POINT.y] + jl .search + jg .found + + cmp edx, [edi+TArray.array+8*ecx+POINT.x] + jle .search + +.found: + set esi, TAsmEdit:CaretY, [edi+TArray.array+8*ecx+POINT.y] + + stdcall StrLenUtf8, [esi+TAsmEdit._search_str] + add eax, [edi+TArray.array+8*ecx+POINT.x] + set esi, TAsmEdit:CaretX, eax + exec esi, TAsmEdit:SelStartHere + + set esi, TAsmEdit:CaretX, [edi+TArray.array+8*ecx+POINT.x] + exec esi, TAsmEdit:SelEndHere + + exec esi, TAsmEdit:CenterCaretY, [edi+TArray.array+8*ecx+POINT.y] + exec esi, TAsmEdit:ScrollToCaretX + + exec esi, TAsmEdit:__ClearScrollbar, scrollY + exec esi, TAsmEdit:__DrawScrollbar, scrollY + exec esi, TAsmEdit:__Invalidate, scrollY + +.finish: + popad + return + +.not_found: + or eax, edx + cmp eax, -1 + je .finish + + mov ecx, [edi+TArray.count] + mov eax, [edi+TArray.array+8*ecx-8+POINT.y] + inc eax + xor edx, edx + jmp .search +endp + + + + + +method TAsmEdit.ToggleBookmark +begin + pushad + + mov esi, [.self] + + exec esi, TAsmEdit:TextLine, -1, FALSE + jc .finish + + mov eax, [eax] + xor [eax+TTextLine.flags], tlfBookmark + + + xor eax, eax + xchg eax, [esi+TAsmEdit._img_margin_valid] + exec esi, TWindow:RectChangedXY2, 0, 0, [esi+TAsmEdit._left_margin], [esi+TAsmEdit._height] + +.finish: + popad + return +endp + + +method TAsmEdit.GoPrevBookmark +begin + pushad + + get ebx, [.self], TAsmEdit:CaretY + +.loop: + dec ebx + js .finish + + exec [.self], TAsmEdit:TextLine, ebx, FALSE + jc .finish + + mov eax, [eax] + test [eax+TTextLine.flags], tlfBookmark + jz .loop + + set [.self], TAsmEdit:CaretY, ebx + exec [.self], TAsmEdit:CenterCaretY + exec [.self], TAsmEdit:UpdateCaretPos + +.finish: + popad + return +endp + + + +method TAsmEdit.GoNextBookmark +begin + pushad + + get ebx, [.self], TAsmEdit:CaretY + +.loop: + inc ebx + + exec [.self], TAsmEdit:TextLine, ebx, FALSE + jc .finish + + mov eax, [eax] + test [eax+TTextLine.flags], tlfBookmark + jz .loop + + set [.self], TAsmEdit:CaretY, ebx + exec [.self], TAsmEdit:CenterCaretY + exec [.self], TAsmEdit:UpdateCaretPos + +.finish: + popad + return +endp + + + +method TAsmEdit.ClearBookmarks +begin + pushad + + mov esi, [.self] + mov edi, [esi+TAsmEdit._lines] + xor ebx, ebx + +.loop: + cmp ebx, [edi+TText.GapBegin] + jb .ofs_ok + cmp ebx, [edi+TText.GapEnd] + jae .ofs_ok + + add ebx, [edi+TText.GapEnd] + sub ebx, [edi+TText.GapBegin] + +.ofs_ok: + cmp ebx, [edi+TText.Length] + jae .end_loop + + mov eax, [edi+ebx] + and [eax+TTextLine.flags], not tlfBookmark + + add ebx, 4 + jmp .loop + +.end_loop: + + and [esi+TAsmEdit._img_margin_valid], 0 + exec esi, TWindow:RectChangedXY2, 0, 0, [esi+TAsmEdit._left_margin], [esi+TAsmEdit._height] + + popad + return +endp + + + +method TAsmEdit.IndentSelection +begin + exec [.self], TAsmEdit:SelectionPrefix, selprInsert, ' ' + return +endp + + + + +method TAsmEdit.OutdentSelection +begin + exec [.self], TAsmEdit:SelectionPrefix, selprRemove, ' ' + return +endp + + + +method TAsmEdit.CommentSelection +begin + exec [.self], TAsmEdit:SelectionPrefix, selprInsert, ';' + return +endp + + +method TAsmEdit.UncommentSelection +begin + exec [.self], TAsmEdit:SelectionPrefix, selprRemove, ';' + return +endp + + +endmodule + + +include "themes/asmedit.asm" +include "syntax/SyntaxFASM.asm" ADDED freshlib/gui/TBackWindow.asm Index: freshlib/gui/TBackWindow.asm ================================================================== --- /dev/null +++ freshlib/gui/TBackWindow.asm @@ -0,0 +1,203 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TBackWindow object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: TBackWindow is a window that have TBackBuffer object associated and all drawing +; happens in the back buffer. This way the repainting events are processed +; flicker free on all supported OSes. +;_________________________________________________________________________________________ +module "TBackWindow library" + + +object TBackWindow, TWindow +; private fields + ._pShadow dd ? ; pointer to TBackBuffer + ._fShadowReady dd ? + +; parameters + param .pShadow, ._pShadow, .SetShadow + +; methods + method .Destroy + method .SetShadow, .value + + method .SysEventHandler, .pEvent + + abstract ._RedrawShadow ; abstract method to be implemented in descending classes. +endobj + + +;_________________________________________________________________________________________ + + +method TBackWindow.Destroy +begin + set [.self], TBackWindow:pShadow, 0 + return +endp + + +;_________________________________________________________________________________________ + + +method TBackWindow.SetShadow +begin + push eax esi + + mov esi, [.self] + mov eax, [.value] + xchg eax, [esi+TBackWindow._pShadow] + cmp eax, [esi+TBackWindow._pShadow] + je .finish + + test eax, eax + jz .finish + + stdcall DestroyBackBuffer, eax + +.finish: + mov [esi+TBackWindow._fShadowReady], 0 + pop esi eax + return +endp + + +;_________________________________________________________________________________________ + + +method TBackWindow.SysEventHandler +begin + pushad + + mov esi, [.self] + mov ebx, [.pEvent] + + cmp [ebx+TSysEvent.event], sePaint + je .paint + + cmp [ebx+TSysEvent.event], seResize + je .resize + + inherited [.pEvent] + +.continue: + popad + return + +;......................................................................................... +.resize: +; DebugMsg "Window resized!" +; OutputValue " width=", [ebx+TMoveResizeEvent.newWidth], 10, -1 +; OutputValue "height=", [ebx+TMoveResizeEvent.newHeight], 10, -1 + + mov [esi+TBackWindow._fShadowReady], 0 + jmp .continue + +;......................................................................................... + +.paint: +locals + .clip_bounds TBounds +endl + stdcall SetClipRectangle, [ebx+TPaintEvent.context], 0 + + get edi, esi, TBackWindow:pShadow + + get ecx, esi, TBackWindow:height + get eax, esi, TBackWindow:width + + test edi, edi + jz .create_new_shadow + + cmp eax, [edi+TBackBuffer.width] + ja .create_new_shadow + + cmp ecx, [edi+TBackBuffer.height] + ja .create_new_shadow + + shl eax, 1 + shl ecx, 1 + add eax, 100 + add ecx, 100 + + cmp eax, [edi+TBackBuffer.width] + ja .shadow_size_ok + cmp ecx, [edi+TBackBuffer.height] + ja .shadow_size_ok + + sub eax, 100 + sub ecx, 100 + shr eax, 1 + shr ecx, 1 + +.create_new_shadow: + cmp [esi+TBackWindow.handle], 0 + je .end_paint + + lea eax, [3*eax] + lea ecx, [3*ecx] + sar eax, 1 + sar ecx, 1 + add eax, 100 + add ecx, 100 + +; DebugMsg "Back buffer created." +; OutputValue " width=", eax, 10, -1 +; OutputValue "height=", ecx, 10, -1 + + stdcall CreateBackBuffer, [esi+TBackWindow.handle], eax, ecx + jc .end_paint + + set esi, TBackWindow:pShadow, eax + jmp .draw + +.shadow_size_ok: + cmp [esi+TBackWindow._fShadowReady], FALSE + jne .shadowok + +.draw: +; stdcall Get, esi, TWindow.FreeArea + + exec esi, TBackWindow:_RedrawShadow + mov [esi+TBackWindow._fShadowReady], TRUE + +; DebugMsg "Back buffer repainted." + +.shadowok: + lea eax, [.clip_bounds] + lea ecx, [ebx+TPaintEvent.rect] + stdcall RectToBounds, eax, ecx + stdcall SetClipRectangle, [ebx+TPaintEvent.context], eax + stdcall DrawBackBuffer, [ebx+TPaintEvent.context], [esi+TBackWindow._pShadow], 0, 0 + + inc [esi+TWindow.___counter] ; debug code + +; DebugMsg "Window painted." +; OutputValue " X=", [.clip_bounds.x], 10, -1 +; OutputValue " Y=", [.clip_bounds.y], 10, -1 +; OutputValue " width=", [.clip_bounds.width], 10, -1 +; OutputValue "height=", [.clip_bounds.height], 10, -1 + + +.end_paint: + clc + popad + return + +endp + + +;_________________________________________________________________________________________ + + + + + +endmodule ADDED freshlib/gui/TButton.asm Index: freshlib/gui/TButton.asm ================================================================== --- /dev/null +++ freshlib/gui/TButton.asm @@ -0,0 +1,674 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TButton object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Represents GUI button. +;_________________________________________________________________________________________ +module "TButton library" + + +; Button states for the field TButton._state; The height of TButton._canvas = btnStateCount * TButton._height + +bsNeutral = 0 +bsHovered = 1 +bsPressed = 2 +bsDisabled = 3 +btnStateCount = 4 + +; icon positions + +iposLeft = 0 +iposRight = 1 +iposTop = 2 +iposBottom = 3 +iposCenter = 4 + + +object TButton, TWindow + +; private fields + + ._state dd ? ; internal state variable. + + ._textalign dd ? + ._icon dd ? + ._iconpos dd ? + + ._OnClick dd ? + + ._ModalResult dd ? + + ._canvas dd ? + ._canvas_valid dd ? + +; parameters + + param .OnClick, ._OnClick, ._OnClick + + param .TextAlign, ._textalign, .SimpleSetParam:3 + param .Icon, ._icon, .SetIcon + param .IconPosition, ._iconpos, .SimpleSetParam:3 + + param .State, .GetState, ._state + + param .ModalResult, ._ModalResult, ._ModalResult + +; methods + + ; parameters handling methods + + method .GetState + + method .SetIcon, .value + method .SimpleSetParam, .param, .get, .value + + ; system events methods + + method .Create, .Parent + method .Destroy + method .ForceRefresh + + method ._RenderView + method .UpdateAction, .action + + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height + method .Resize, .newWidth, .newHeight + method .SetCaption, .value + + method .EventFocusIn + method .EventFocusOut + + method .EventMouseEnter + method .EventMouseLeave + method .EventMouseMove, .x, .y, .kbdState + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + + method .EventKeyPress, .utf8, .scancode, .kbdState + method .EventKeyRelease, .utf8, .scancode, .kbdState + +endobj + + +interface TButton.OnClick, .self, .button + + +; new + +method TButton.Create +begin + inherited [.Parent] + + mov eax, [.self] + mov [eax+TButton._cursor], mcHand + set eax, TButton:WantFocus, TRUE + + return +endp + + +method TButton.Destroy +begin + push ebx + mov ebx, [.self] + stdcall DestroyImage, [ebx+TButton._canvas] + stdcall DestroyImage, [ebx+TButton._icon] + pop ebx + inherited + return +endp + + + +method TButton.ForceRefresh +begin + mov eax, [.self] + and [eax+TButton._canvas_valid], 0 + inherited + return +endp + + +method TButton.SelfPaint +begin + pushad + mov esi, [.self] + + cmp [esi+TButton._canvas_valid], 0 + jne @f + exec esi, TButton:_RenderView +@@: + mov ebx, [esi+TButton._canvas] + test ebx, ebx + jz .finish + + get edx, esi, TButton:State + imul edx, [esi+TButton._height] + add edx, [.ySrc] + + stdcall BlendImage, [.pDstImage], [.xDst], [.yDst], ebx, [.xSrc], edx, [.width], [.height] + +.finish: + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + + +method TButton.Resize ; .newWidth, .newHeight +begin + inherited [.newWidth], [.newHeight] + pushad + + mov esi, [.self] + mov ecx, [.newWidth] + mov edx, [.newHeight] + shl edx, 2 + + mov ebx, [esi+TButton._canvas] + test ebx, ebx + jz .create_new + + cmp ecx, [ebx+TImage.width] + jg .destroy + + cmp edx, [ebx+TImage.height] + jle .size_ok + +.destroy: + stdcall DestroyImage, ebx + and [esi+TButton._canvas], 0 + +.create_new: + test ecx, ecx + jz .size_ok + + test edx, edx + jz .size_ok + + stdcall CreateImage2, ecx, edx, FALSE + mov [esi+TButton._canvas], eax + +.size_ok: + and [esi+TButton._canvas_valid], 0 + exec esi, TButton:RectChanged2, 0 + popad + return +endp + + + + +method TButton.GetState +begin + pushad + + mov esi, [.self] + get edi, esi, TButton:Action + test edi, edi + cmovz ecx, [esi+TButton._enabled] + jz .test_en + + get ecx, edi, TAction:Enabled + +.test_en: + mov eax, bsDisabled + test ecx, ecx + cmovnz eax, [esi+TButton._state] + + mov [esp+4*regEAX], eax + popad + return +endp + + + +method TButton.SetCaption ;, .value +begin + inherited [.value] + + push eax + mov eax, [.self] + and [eax+TButton._canvas_valid], 0 + pop eax + exec [.self], TButton:RectChanged2, 0 + return +endp + + + +method TButton.SetIcon;, .value +begin + pushad + + mov esi, [.self] + mov eax, [esi+TButton._icon] + test eax, eax + jz .load_new + + stdcall DestroyImage, eax + xor eax, eax + +.load_new: + + cmp [.value], 0 + je @f + + stdcall CreateImagePNG, [.value], -1 + +@@: + mov [esi+TButton._icon], eax + + and [esi+TButton._canvas_valid], 0 + exec esi, TButton:RectChanged2, 0 + + popad + return +endp + + + +method TButton.UpdateAction +begin + exec [.self], TButton:_RenderView + exec [.self], TWindow:RectChanged2, 0 + return +endp + + + + +method TButton._RenderView + + .bounds TBounds + .client TBounds + + .clTxt dd ? + .canvas dd ? + + .caption dd ? + .enabled dd ? + .icon dd ? + .icon_x dd ? + .icon_y dd ? + +begin + pushad + + mov esi, [.self] + mov eax, [esi+TButton._canvas] + test eax, eax + jz .finish + + mov [.canvas], eax + + get edx, esi, TButton:Action + test edx, edx + jz .get_normal + + get [.caption], edx, TAction:Caption + get [.icon], edx, TAction:Icon + jmp .render_states + +.get_normal: + + get [.caption], esi, TButton:Caption + get [.icon], esi, TButton:Icon + +.render_states: + + xor eax, eax ; Y coordinate + mov ecx, [esi+TButton._width] + mov edx, [esi+TButton._height] + + mov [.icon_x], eax + mov [.icon_y], eax + + mov [.bounds.x], eax + mov [.client.x], eax + mov [.bounds.y], eax + mov [.client.y], eax + mov [.bounds.width], ecx + mov [.client.width], ecx + mov [.bounds.height], edx + mov [.client.height], edx + + mov ebx, [GUI.btnMarginX] + mov edx, [GUI.btnMarginY] + + add [.bounds.x], ebx + add [.bounds.y], edx + sub [.bounds.width], ebx + sub [.bounds.height], edx + sub [.bounds.width], ebx + sub [.bounds.height], edx + + mov edi, [.icon] + test edi, edi + jz .icon_pos_ok + + mov eax, [.bounds.width] + sub eax, [edi+TImage.width] + sar eax, 1 + add eax, [.bounds.x] ; x coordinate of the icon. + + mov ecx, [.bounds.height] + sub ecx, [edi+TImage.height] + sar ecx, 1 + add ecx, [.bounds.y] ; y coordinate of the icon. + + cmp [esi+TButton._iconpos], iposCenter + je .icon_pos_store + + cmp [esi+TButton._iconpos], iposLeft + jne @f + +; align left + mov eax, [.bounds.x] + + add ebx, [edi+TImage.width] + add [.bounds.x], ebx + sub [.bounds.width], ebx + jmp .icon_pos_store + +@@: + cmp [esi+TButton._iconpos], iposRight + jne @f + +; align right + mov eax, [.bounds.x] + add eax, [.bounds.width] + sub eax, [edi+TImage.width] + + add ebx, [edi+TImage.width] + sub [.bounds.width], ebx + jmp .icon_pos_store + +@@: + cmp [esi+TButton._iconpos], iposTop + jne @f + +; align top + mov ecx, [.bounds.y] + add edx, [edi+TImage.height] + + add [.bounds.y], edx + sub [.bounds.height], edx + jmp .icon_pos_store + +@@: + cmp [esi+TButton._iconpos], iposBottom + jne .icon_pos_ok + +; align bottom + mov ecx, [.bounds.y] + add ecx, [.bounds.height] + sub ecx, [edi+TImage.height] + + add edx, [edi+TImage.height] + sub [.bounds.height], edx + +.icon_pos_store: + + mov [.icon_x], eax + mov [.icon_y], ecx + +.icon_pos_ok: + + xor ebx, ebx ; 0 == bsNeutral + +.loop_y: + +; draw the border and the background + + lea eax, [.client] + stdcall [DrawBox], [.canvas], eax, [GUI.clBtnBk+4*ebx], [GUI.btnBorder+4*ebx], [GUI.boxBorderWidth] + +; draw the icon + + mov edi, [.icon] + test edi, edi + jz .draw_text + + mov ecx, [.icon_y] + mov eax, [.icon_x] + add ecx, [.client.y] + + cmp ebx, bsPressed + jne .blend_icon + + add eax, [GUI.btnPressedOfsX] + add ecx, [GUI.btnPressedOfsY] + +.blend_icon: + xor edx, edx + stdcall BlendImage, [.canvas], eax, ecx, edi, edx, edx, [edi+TImage.width], [edi+TImage.height] + +.draw_text: + + get edi, esi, TButton:TextAlign + cmp [.caption], 0 + je .textok + + test edi, dtfNone + jnz .textok + + mov eax, [.bounds.x] + mov ecx, [.bounds.y] + + cmp ebx, bsPressed + jne @f + add eax, [GUI.btnPressedOfsX] + add ecx, [GUI.btnPressedOfsY] +@@: + + stdcall DrawTextBox, [.canvas], [.caption], eax, ecx, [.bounds.width], [.bounds.height], 2, edi, [GUI.DefaultFont], [GUI.clBtnTxt+4*ebx] + +.textok: + cmp esi, [__FocusedWindow] + jne .focus_ok + + mov eax, [.client.y] + add eax, [.client.height] + sub eax, 2 + stdcall DrawSolidRect, [.canvas], 0, eax, [esi+TButton._width], 2, [GUI.clBorderFocused] + +.focus_ok: + + get eax, esi, TWindow:height + add [.bounds.y], eax + add [.client.y], eax + + inc ebx + cmp ebx, bsDisabled + jbe .loop_y + +.finish: + stdcall StrDel, [.caption] + inc [esi+TButton._canvas_valid] + popad + return +endp + + + + + +method TButton.SimpleSetParam +begin + push eax esi edi + + mov esi, [.self] + mov edi, esi + add esi, [.get] + + mov eax, [.value] + cmp eax, [esi] + je .finish + + mov [esi], eax + cmp [.param], 0 + je @f + and [edi+TButton._canvas_valid], 0 +@@: + exec edi, TButton:RectChanged2, 0 + +.finish: + pop edi esi eax + return +endp + + + +method TButton.EventFocusIn +begin + push eax + mov eax, [.self] + and [eax+TButton._canvas_valid], 0 + exec eax, TWindow:RectChanged2, 0 + pop eax + inherited + return +endp + + +method TButton.EventFocusOut +begin + push eax + mov eax, [.self] + and [eax+TButton._canvas_valid], 0 + exec eax, TWindow:RectChanged2, 0 + pop eax + inherited + return +endp + + + +method TButton.EventMouseEnter +begin + exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsHovered + inherited + return +endp + + +method TButton.EventMouseLeave +begin + exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsNeutral + inherited + return +endp + + +method TButton.EventMouseMove +begin +; exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsHovered + inherited [.x], [.y], [.kbdState] + return +endp + + +method TButton.EventButtonPress +begin + exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsPressed + return +endp + + + +method TButton.EventButtonRelease +begin + pushad + + mov esi, [.self] + + cmp [esi+TButton._state], bsPressed + jne .finish + + cmp [.x], -1 ; when called from the keyboard event as a mouse emulation the .x and .y parameters are both -1. + jne .hover + + cmp [.y], -1 + je .state_ok + +.hover: + exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsHovered + +.state_ok: + cmp [esi+TButton._ModalResult], mrNone + je @f + + get eax, esi, TButton:Parent + + istype eax, TForm + jne @f + + set eax, TForm:ModalResult, [esi+TButton._ModalResult] + +@@: + get eax, esi, TButton:Menu + test eax, eax + jz .menu_ok + + exec eax, TMenu:Show, esi, 0, 0 + +.menu_ok: + get eax, esi, TButton:OnClick + test eax, eax + jz .click_ok + + stdcall eax, esi, [.button] ; OnClick event + +.click_ok: + get eax, esi, TButton:Action + test eax, eax + jz .finish + + exec eax, TAction:Execute, [.self] + +.finish: + popad + return +endp + + + + +method TButton.EventKeyPress +begin + inherited [.utf8], [.scancode], [.kbdState] + jc .finish + + cmp [.utf8], ' ' + clc + jne .finish + + exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsPressed + exec [.self], TWindow:EventButtonRelease, mbLeft, [.kbdState], -1, -1 + stc + +.finish: + return +endp + + + +method TButton.EventKeyRelease +begin + exec [.self], TButton:SimpleSetParam, 0, TButton._state, bsNeutral + return +endp + + + +endmodule ADDED freshlib/gui/TCanvasWindow.asm Index: freshlib/gui/TCanvasWindow.asm ================================================================== --- /dev/null +++ freshlib/gui/TCanvasWindow.asm @@ -0,0 +1,180 @@ +module "TCanvasWindow" + + +object TCanvasWindow, TWindow + ._canvas dd ? ; TImage containing the image of the window only. + ._canvas_valid dd ? + ._OnPaint dd ? + + param .Canvas, ._canvas, NONE + param .OnPaint, ._OnPaint, .SetOnPaint + + + method .SetOnPaint, .value + + method .ForceRefresh + method .__RenderView + method .__UpdateImages + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + +endobj + + +interface TCanvasWindow.OnPaint, .self, .pCanvas + + + +method TCanvasWindow.ForceRefresh +begin + mov eax, [.self] + and [eax+TCanvasWindow._canvas_valid], 0 + inherited + return +endp + + +method TCanvasWindow.SelfPaint ; .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height +begin + pushad + mov esi, [.self] + + cmp [esi+TCanvasWindow._canvas_valid], 0 + jne @f + exec esi, TCanvasWindow:__RenderView +@@: + mov ebx, [esi+TCanvasWindow._canvas] + test ebx, ebx + jz .finish + + stdcall BlendImage, [.pDstImage], [.xDst], [.yDst], ebx, [.xSrc], [.ySrc], [.width], [.height] + +.finish: + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + + + +method TCanvasWindow.__UpdateImages +begin + pushad + mov esi, [.self] + +; DebugMsg "TCanvasWindow update canvas." + + mov ebx, [esi+TCanvasWindow._visible] + mov edi, [esi+TCanvasWindow._canvas] + + mov ecx, [esi+TCanvasWindow._width] + mov edx, [esi+TCanvasWindow._height] + + test ebx, ebx + jz .destroy + + test edi, edi + jz .create_new + +; check the size + + cmp ecx, [edi+TImage.width] + ja .destroy + + cmp edx, [edi+TImage.height] + jbe .setwrap + +.destroy: +; DebugMsg "Destroy old canvas." + + stdcall DestroyImage, edi ; canvas + + xor eax, eax + mov [esi+TCanvasWindow._canvas], eax + + test ebx, ebx + jz .exit + + +.create_new: + +; DebugMsg "Create new canvas." + +; new size - get it with x1.5 reserve in order to allow easy resizing. +; lea ecx, [ecx*3] +; lea edx, [edx*3] +; shr ecx, 1 +; shr edx, 1 + +; The above reserve is too big. Lets make it more RAM-friendly. + + lea eax, [ecx+256] + lea ebx, [edx+256] + + stdcall CreateImage2, eax, ebx, FALSE + mov [esi+TCanvasWindow._canvas], eax + mov edi, eax + + +; OutputValue "Canvas created: ", eax, 16, 8 + +.setwrap: + mov [edi+TImage.wrapW], ecx + mov [edi+TImage.wrapH], edx + +.exit: + and [esi+TCanvasWindow._canvas_valid], 0 + popad + inherited + return +endp + + + + +method TCanvasWindow.__RenderView +begin + pushad + + mov esi, [.self] + + get eax, esi, TCanvasWindow:OnPaint + test eax, eax + jz .user_paint_ok + + get ecx, esi, TCanvasWindow:Canvas + test ecx, ecx + jz .user_paint_ok + + stdcall eax, esi, ecx ; user OnPaint handler. + +.user_paint_ok: + inc [esi+TCanvasWindow._canvas_valid] + popad + return +endp + + + +method TCanvasWindow.SetOnPaint +begin + push eax esi + + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TCanvasWindow._OnPaint] + je .finish + + mov [esi+TCanvasWindow._OnPaint], eax + exec esi, TWindow:RectChanged2, 0 + +.finish: + pop esi eax + return +endp + +;_________________________________________________________________________________________ + + + +endmodule ADDED freshlib/gui/TCheckbox.asm Index: freshlib/gui/TCheckbox.asm ================================================================== --- /dev/null +++ freshlib/gui/TCheckbox.asm @@ -0,0 +1,468 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TCheckbox object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Represents GUI checkbox. +;_________________________________________________________________________________________ +module "TCheckbox library" + + +; Button states for the field TCheckbox._state + +cbsNeutral = 0 +cbsHovered = 1 +cbsPressed = 2 + +cbsDisabled = 3 + + +object TCheckbox, TCanvasWindow + +; private fields + + ._state dd ? ; internal state variable. + + ._OnClick dd ? + ._OnChange dd ? + + ._checked dd ? + ._value dd ? + +; parameters + + param .Checked, .GetChecked, .SetChecked + param .Value, .GetValue, ._value + + param .OnClick, ._OnClick, ._OnClick + param .OnChange, ._OnChange, ._OnChange + +; methods + + ; parameters handling methods + + method .GetChecked + method .SetChecked, .value + method .GetValue + + ; system events methods + + method .Create, .Parent + + method .Autosize + + method .__RenderView + method .UpdateAction, .action + + method .EventMouseEnter + method .EventMouseLeave + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + + method .EventKeyPress, .utf8, .scancode, .kbdState + method .EventKeyRelease, .utf8, .scancode, .kbdState + + method .EventFocusIn + method .EventFocusOut + +endobj + + +; new + + +method TCheckbox.Create +begin + inherited [.Parent] + + set [.self], TCheckbox:Enabled, TRUE + set [.self], TCheckbox:Cursor, mcHand + set [.self], TCheckbox:WantFocus, TRUE + return +endp + + +method TCheckbox.Autosize +begin + mov edx, [GUI.cbIconSize] + + get eax, [.self], TCheckbox:Caption + test eax, eax + cmovz eax, [GUI.cbIconSize] + jz .finish + + push eax + + stdcall StrPtr, eax + + stdcall GetTextBounds, eax, [eax+string.len], [GUI.DefaultFont] + + stdcall StrDel ; from the stack + + add eax, [GUI.cbIconSize] + add eax, [GUI.cbMargin] + + cmp edx, [GUI.cbIconSize] + cmovl edx, [GUI.cbIconSize] + +.finish: + return +endp + + + +method TCheckbox.EventFocusIn +begin + push eax + mov eax, [.self] + and [eax+TCheckbox._canvas_valid], 0 + exec eax, TWindow:RectChanged2, 0 + pop eax + inherited + return +endp + + +method TCheckbox.EventFocusOut +begin + push eax + mov eax, [.self] + and [eax+TCheckbox._canvas_valid], 0 + exec eax, TWindow:RectChanged2, 0 + pop eax + inherited + return +endp + + + +method TCheckbox.__RenderView + + .bounds TBounds + .canvas dd ? + + .caption dd ? + .enabled dd ? + .checked dd ? + +begin + pushad + + mov esi, [.self] + + get edx, esi, TCheckbox:Action + test edx, edx + jz .get_normal + + get eax, edx, TAction:Caption + + stdcall StrDup, eax + mov [.caption], eax + + get [.checked], edx, TAction:Checked + jmp .get_enabled + +.get_normal: + + get [.caption], esi, TCheckbox:Caption + get [.checked], esi, TCheckbox:Checked + + +.get_enabled: + get [.enabled], esi, TCheckbox:Enabled + +.paint_it: + get eax, esi, TCanvasWindow:Canvas + mov [.canvas], eax + + test eax, eax + jz .finish + + + mov eax, [esi+TCheckbox._state] + cmp [.enabled], 0 + jne .state_ok + + mov eax, cbsDisabled + +.state_ok: + mov edi, [GUI.clCheckboxBack+4*eax] ; background color + + get ecx, esi, TCheckbox:height + mov edx, [GUI.cbIconSize] + sub ecx, edx + sar ecx, 1 + + mov [.bounds.x], 0 + mov [.bounds.y], ecx + mov [.bounds.width], edx + mov [.bounds.height], edx + + stdcall DrawSolidRect, [.canvas], 0, 0, [esi+TCheckbox._width], [esi+TCheckbox._height], [GUI.clDialogBk] + + lea eax, [.bounds] + + mov ebx, [GUI.borderCheckbox] + cmp [.enabled], 0 + jne .border_ok + + or ebx, bxDisabled + +.border_ok: + stdcall [DrawBox], [.canvas], eax, edi, ebx, [GUI.boxBorderWidth] + + mov [.bounds.x], 0 + mov [.bounds.y], ecx + mov [.bounds.width], edx + mov [.bounds.height], edx + +; first draw the icon and then resize bounds for the text. + + cmp [.checked], 0 + je .icon_ok + + mov eax, [GUI.iconCheckedGray] + cmp [.enabled], 0 + je .draw_icon + + mov eax, [GUI.iconChecked] + +.draw_icon: + + stdcall BlendImage, [.canvas], [.bounds.x], [.bounds.y], eax, 0, 0, [eax+TImage.width], [eax+TImage.height] + +.icon_ok: + mov ecx, [.bounds.width] + mov edx, [esi+TCheckbox._width] + mov ebx, [esi+TCheckbox._height] + + add ecx, [GUI.cbMargin] + sub edx, ecx + + mov eax, [.caption] + test eax, eax + jz .textok + + mov edi, [GUI.clCheckboxTxt] + cmp [.enabled], 0 + jne .txt_color_ok + + mov edi, [GUI.clCheckboxTxtGray] + +.txt_color_ok: + stdcall DrawTextBox, [.canvas], eax, ecx, 0, edx, ebx, 0, dtfAlignLeft or dtfAlignMiddle, [GUI.DefaultFont], edi + stdcall StrDel, eax + +.textok: + cmp esi, [__FocusedWindow] + jne .not_focused + + mov eax, [.bounds.y] + add eax, 15 + stdcall DrawSolidRect, [.canvas], 0, eax, 13, 2, [GUI.clBorderFocused] + +.not_focused: +.finish: + + inherited + + popad + return +endp + + +method TCheckbox.UpdateAction +begin + exec [.self], TWindow:RectChanged2, 0 + return +endp + + + +method TCheckbox.EventMouseEnter +begin + mov eax, [.self] + mov [eax+TCheckbox._state], cbsHovered + exec eax, TCheckbox:RectChanged2, 0 + + inherited + return +endp + + + + +method TCheckbox.EventMouseLeave +begin + mov eax, [.self] + + mov [eax+TCheckbox._state], cbsNeutral + exec eax, TCheckbox:ForceRefresh + + inherited + return +endp + + + + +method TCheckbox.EventButtonPress +begin + push eax + + mov eax, [.self] + mov [eax+TCheckbox._state], cbsPressed + + get eax, [.self], TCheckbox:Checked + xor eax, 1 + set [.self], TCheckbox:Checked, eax + + get eax, [.self], TCheckbox:OnClick + test eax, eax + jz .finish + + stdcall eax, [.self], [.button] + +.finish: + exec [.self], TCheckbox:ForceRefresh + pop eax + return +endp + + + +method TCheckbox.EventButtonRelease +begin + pushad + + mov esi, [.self] + mov [esi+TCheckbox._state], cbsHovered + exec esi, TCheckbox:ForceRefresh + + popad + return +endp + + + + +method TCheckbox.EventKeyPress +begin + inherited [.utf8], [.scancode], [.kbdState] + jc .exit + + cmp [.utf8], ' ' + clc + jne .exit + + push ecx + mov ecx, [.self] + + cmp [ecx+TCheckbox._state], cbsPressed + je .processed + + exec ecx, TWindow:EventButtonPress, mbLeft, [.kbdState], 0, 0 + + mov [ecx+TCheckbox._state], cbsPressed + exec ecx, TCheckbox:ForceRefresh + +.processed: + stc + pop ecx + +.exit: + return +endp + + + + +method TCheckbox.EventKeyRelease +begin + push ecx + mov ecx, [.self] + mov [ecx+TCheckbox._state], cbsNeutral + exec ecx, TCheckbox:ForceRefresh + pop ecx + return +endp + + + +method TCheckbox.GetChecked +begin + push ecx edx + + mov edx, [.self] + mov ecx, [edx+TCheckbox.__action] + jecxz .native + + get eax, ecx, TAction:Checked + jmp .finish + +.native: + mov eax, [edx+TCheckbox._checked] + +.finish: + pop edx ecx + return +endp + + + +method TCheckbox.SetChecked +begin + pushad + + mov ecx, [.self] + mov eax, [.value] + + get edx, ecx, TCheckbox:Checked + + cmp eax, edx + je .finish + + cmp [ecx+TCheckbox.__action], 0 + je .action_ok + + set [ecx+TCheckbox.__action], TAction:Checked, eax + +.action_ok: + mov [ecx+TCheckbox._checked], eax + exec ecx, TCheckbox:ForceRefresh + + cmp [ecx+TCheckbox._OnChange], 0 + je .finish + + stdcall [ecx+TCheckbox._OnChange], ecx ; MUST BE IMMEDIATELY BEFORE THE EXIT + +.finish: + popad + return +endp + + + +method TCheckbox.GetValue +begin + get eax, [.self], TCheckbox:Checked + test eax, eax + jz .finish + + mov eax, [.self] + mov eax, [eax+TCheckbox._value] + +.finish: + return +endp + + + +endmodule ADDED freshlib/gui/TColorSample.asm Index: freshlib/gui/TColorSample.asm ================================================================== --- /dev/null +++ freshlib/gui/TColorSample.asm @@ -0,0 +1,75 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TColorSample object class +; +; Target OS: Any +; +; Dependencies: TCanvasWindow +; +; Notes: Represents GUI window that displays assigned color on a chessboard background. +;_________________________________________________________________________________________ +module "TColorSample library" + + +object TColorSample, TCanvasWindow + ._color dd ? + ._prev dd ? + + param .Color, ._color, .SetColor + + method .SetColor, .value + method .__RenderView +endobj + + + + +method TColorSample.SetColor +begin + push eax ecx edx + + mov edx, [.self] + mov eax, [.value] + + xchg eax, [edx+TColorSample._color] + cmp eax, [edx+TColorSample._color] + je .finish + + exec edx, TColorSample:__RenderView + exec edx, TColorSample:RectChanged2, 0 + +.finish: + pop edx ecx eax + return +endp + + + +method TColorSample.__RenderView +.border TBounds +begin + pushad + + mov esi, [.self] + get ebx, esi, TColorSample:Canvas + + xor eax, eax + mov ecx, [esi+TColorSample._width] + mov edx, [esi+TColorSample._height] + mov [.border.x], eax + mov [.border.y], eax + mov [.border.width], ecx + mov [.border.height], edx + + stdcall BlendImageTileWrap, ebx, eax, eax, ecx, edx, [GUI.bgChessboard] + stdcall BlendSolidRect, ebx, eax, eax, ecx, edx, [esi+TColorSample._color] + + popad + inherited + return +endp + +endmodule ADDED freshlib/gui/TEdit.asm Index: freshlib/gui/TEdit.asm ================================================================== --- /dev/null +++ freshlib/gui/TEdit.asm @@ -0,0 +1,846 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TEdit object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Represents single line edit control. +;_________________________________________________________________________________________ +module "TEdit library" + + +object TEdit, TCanvasWindow + ._Text dd ? + ._Len dd ? ; the length of the string in characters. (UTF-8) + ._Start dd ? ; Where the string begins to be displayed in the edit window. + ._Pos dd ? ; Position of the caret in the string. + ._Sel dd ? ; Position of the selection in the string. + + ._drag_mode dd ? + + ._MarginLeft dd ? + ._MarginRight dd ? + + ._OnChange dd ? + + ._Lock dd ? + + + param .Text, .GetText, .SetText + param .Selection, .GetSel, .ReplaceSel + + param .MarginLeft, ._MarginLeft, ._MarginLeft + param .MarginRight, ._MarginRight, ._MarginRight + + param .OnChange, ._OnChange, ._OnChange + + param .CaretPos, ._Pos, .SetCaretPos + +; System methods + + method .Create, .parent + method .Destroy + + method .__RenderView + +; parameters get/set methods + + method .GetText + + method .GetSel + method .ReplaceSel, .hString + + method .SetText, .value + method .SetCaretPos, .value + +; public methods + + method .HitTest, .x, .select + +; system event methods + + method .UpdateCaretPos + + + method .EventKeyPress, .utf8, .scancode, .kbdState + method .EventKeyRelease, .utf8, .scancode, .kbdState + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventMouseMove, .x, .y, .kbdState + method .EventButtonRelease, .button, .kbdState, .x, .y + + method .EventFocusIn + method .EventFocusOut + +endobj + +interface TEdit.OnChange, .self + + + +method TEdit.Create +begin + push ecx eax + + inherited [.parent] + + stdcall StrNew + mov ecx, [.self] + mov [ecx+TEdit._Text], eax + mov [ecx+TEdit._cursor], mcText + set ecx, TEdit:WantFocus, TRUE + + pop eax ecx + return +endp + + + + +method TEdit.Destroy +begin + mov eax, [.self] + stdcall StrDel, [eax+TEdit._Text] + inherited + return +endp + + + + + +method TEdit.GetText +begin + mov eax, [.self] + stdcall StrDup, [eax+TEdit._Text] + return +endp + + + +method TEdit.GetSel +begin + pushad + mov esi, [.self] + + xor edx, edx + mov ebx, [esi+TEdit._Pos] + mov ecx, [esi+TEdit._Sel] + + cmp ebx, [esi+TEdit._Sel] + je .finish + + jl @f + xchg ebx, ecx ; ebx=beg_selection; ecx=end_selection +@@: + stdcall StrOffsUtf8, [esi+TEdit._Text], ecx + mov ecx, eax + + stdcall StrOffsUtf8, [esi+TEdit._Text], ebx + mov ebx, eax + + stdcall StrPtr, [esi+TEdit._Text] + sub ebx, eax ; begin of the selection + sub ecx, eax + sub ecx, ebx + + stdcall StrNew + mov edx, eax + + stdcall StrCopyPart, edx, [esi+TEdit._Text], ebx, ecx + +.finish: + mov [esp+4*regEAX], edx + popad + return +endp + + +; returns CF=1 if there was no selection. +; CF=0 if some text was deleted. + +method TEdit.ReplaceSel ;, .hString +.beg dd ? +.end dd ? +begin + pushad + mov esi, [.self] + + xor edx, edx + + mov ebx, [esi+TEdit._Pos] + mov ecx, [esi+TEdit._Sel] + + cmp ebx, [esi+TEdit._Sel] + jne @f + lea edx, [edx+1] ; ret CF=1 +@@: + jle @f + xchg ebx, ecx ; ebx=beg_selection; ecx=end_selection +@@: + add [esi+TEdit._Len], ebx + sub [esi+TEdit._Len], ecx + + stdcall StrOffsUtf8, [esi+TEdit._Text], ecx + mov [.end], eax + + stdcall StrOffsUtf8, [esi+TEdit._Text], ebx + mov [.beg], eax + + stdcall StrPtr, [esi+TEdit._Text] + sub [.beg], eax ; begin of the selection + sub [.end], eax + + + stdcall StrSplit, [esi+TEdit._Text], [.end] ; end of the string + mov ecx, eax + + stdcall StrSplit, [esi+TEdit._Text], [.beg] + stdcall StrDel, eax + + cmp [.hString], 0 + je .string_ok + + stdcall StrCat, [esi+TEdit._Text], [.hString] + stdcall StrLenUtf8, [.hString], -1 + + add ebx, eax + add [esi+TEdit._Len], eax + +.string_ok: + mov [esi+TEdit._Sel], ebx + mov [esi+TEdit._Pos], ebx + + stdcall StrCat, [esi+TEdit._Text], ecx + stdcall StrDel, ecx + + cmp [esi+TEdit._OnChange], 0 + je .event_ok + + pushad + stdcall [esi+TEdit._OnChange], esi + popad + +.event_ok: + cmp [esi+TEdit._Lock], 0 + jne .refresh_ok + + and [esi+TCanvasWindow._canvas_valid], 0 + exec esi, TProgress:RectChanged2, 0 + +.refresh_ok: + shr edx, 1 ; CF = return value + popad + return +endp + + + + + +method TEdit.SetText +begin + push esi eax + mov esi, [.self] + + mov [esi+TEdit._Start], 0 + mov [esi+TEdit._Pos], 0 + mov [esi+TEdit._Sel], 0 + + lea eax, [esi+TEdit._Text] + stdcall SetString, eax, [.value] + + stdcall StrLenUtf8, [esi+TEdit._Text], -1 + mov [esi+TEdit._Len], eax + + and [esi+TCanvasWindow._canvas_valid], 0 + exec esi, TProgress:RectChanged2, 0 + pop eax esi + return +endp + + + +method TEdit.__RenderView + .bounds TBounds + .selbeg dd ? + .selend dd ? + + .clBack dd ? + .border dd ? + +begin + pushad + + mov esi, [.self] + cmp [esi+TCanvasWindow._canvas], 0 + je .finish + + mov eax, [GUI.clEditBk] + mov ecx, [GUI.editBorder] + + cmp esi, [__FocusedWindow] + jne @f + mov eax, [GUI.clEditBkFocused] + mov ecx, [GUI.editBorderFocused] +@@: + mov [.clBack], eax + mov [.border], ecx + +; selection sort positions. + mov eax, [esi+TEdit._Pos] + mov ecx, [esi+TEdit._Sel] + cmp eax,ecx + jle @f + xchg eax, ecx +@@: + mov [.selbeg], eax + mov [.selend], ecx + +; drawing bounds + mov ecx, [esi+TEdit._width] + mov eax, [esi+TEdit._height] + + mov [.bounds.x], 0 + mov [.bounds.y], 0 + mov [.bounds.width], ecx + mov [.bounds.height], eax + + lea eax, [.bounds] + + stdcall [DrawBox], [esi+TCanvasWindow._canvas], eax, [.clBack], [.border], [GUI.boxBorderWidth] + + mov eax, [GUI.boxBorderWidth] + add [.bounds.x], eax + add [.bounds.y], eax + shl eax, 1 + sub [.bounds.width], eax + sub [.bounds.height], eax + + mov eax, [esi+TEdit._MarginLeft] + mov ecx, [esi+TEdit._MarginRight] + add [.bounds.x], eax + sub [.bounds.width], eax + sub [.bounds.width], ecx + cmp [.bounds.width], 0 + jle .enddraw + + stdcall StrOffsUtf8, [esi+TEdit._Text], [esi+TEdit._Start] + mov edi, eax + + stdcall DrawTextBox, [esi+TEdit._canvas], edi, [.bounds.x], [.bounds.y], [.bounds.width], [.bounds.height], 0, dtfAlignLeft or dtfAlignMiddle or dtfSingleLine, [GUI.DefaultFont], [GUI.clEditTxt] + +; determine the selection + + mov eax, [.selbeg] + xor ecx, ecx + + sub eax, [esi+TEdit._Start] + jle .xsel_ok + + stdcall StrOffsUtf8, edi, eax + sub eax, edi + + stdcall GetTextBounds, edi, eax, [GUI.DefaultFont] + mov ecx, eax + +.xsel_ok: + mov eax, [.selend] + sub eax, [esi+TEdit._Start] + jle .enddraw + + stdcall StrOffsUtf8, edi, eax + sub eax, edi + + stdcall GetTextBounds, edi, eax, [GUI.DefaultFont] + + mov edx, [.bounds.width] + add edx, [.bounds.x] + + cmp eax, edx + cmovg eax, edx + sub eax, ecx + + add ecx, [.bounds.x] + stdcall BlendSolidRect, [esi+TCanvasWindow._canvas], ecx, [.bounds.y], eax, [.bounds.height], [GUI.clEditSel] + +.enddraw: + inherited + inc [esi+TCanvasWindow._canvas_valid] + +.finish: + popad + return +endp + + + + +method TEdit.EventKeyPress ;, .utf8, .scancode, .kbdState +begin + inherited [.utf8], [.scancode], [.kbdState] + jnc .editor_keys ; the key was not processed by the parent class. + return + +.editor_keys: + + pushad + + mov esi, [.self] + mov [esi+TEdit._Lock], 1 + + get ebx, esi, TEdit:CaretPos + + mov eax, [.utf8] + + test eax, eax + jz .no_char + + cmp eax, $20 + jb .ctrl_char + + cmp eax, $7f + je .not_processed + + + stdcall StrNew + stdcall StrCharCat, eax, [.utf8] + push eax + + exec esi, TEdit:ReplaceSel, eax + + stdcall StrDel ; from the stack + + mov ebx, [esi+TEdit._Pos] + jmp .set_pos + +.ctrl_char: + + OutputValue "Ascii:", eax, 10, 4 + + cmp eax, 1 ; Ctrl+A + je .select_all + + cmp eax, 3 ; Ctrl+C + je .copy + + cmp eax, 22 ; Ctrl+V + je .paste + + jmp .no_char + +.select_all: + + mov ebx, [esi+TEdit._Len] + mov [esi+TEdit._Sel], 0 + jmp .set_pos + + +.copy: + DebugMsg "Copy" + + exec esi, TEdit:GetSel + test eax, eax + jz .processed + + stdcall ClipboardWrite, eax + stdcall StrDel, eax + jmp .processed + +.paste: + DebugMsg "Paste" + + stdcall ClipboardRead + test eax, eax + jz .processed + + push eax + + exec esi, TEdit:ReplaceSel, eax + mov ebx, [esi+TEdit._Pos] + + stdcall StrDel + jmp .endmove + + +.no_char: + mov eax, [.scancode] + + cmp eax, keyLeftNumpad + je .left + cmp eax, keyLeft + je .left + + cmp eax, keyRightNumpad + je .right + cmp eax, keyRight + je .right + + cmp eax, keyHomeNumpad + je .home + cmp eax, keyHome + je .home + + cmp eax, keyEndNumpad + je .end + cmp eax, keyEnd + je .end + + cmp eax, keyDelNumpad + je .del + cmp eax, keyDelete + je .del + + cmp eax, keyBackSpace + je .backdel + + jmp .not_processed + +.left: + cmp ebx, 0 + jle .endmove + + dec ebx + jmp .endmove + +.right: + cmp ebx, [esi+TEdit._Len] + jae .endmove + + inc ebx + jmp .endmove + +.home: + xor ebx, ebx + jmp .endmove + + +.end: + mov ebx, [esi+TEdit._Len] + jmp .endmove + + +.backdel: + cmp ebx, [esi+TEdit._Sel] + jne .pos_ok + + test ebx, ebx + jz .pos_ok ; can't delete more than the begning + + dec ebx + mov [esi+TEdit._Pos], ebx + jmp .pos_ok + + +.del: + cmp ebx, [esi+TEdit._Sel] + jne .pos_ok + + cmp ebx, [esi+TEdit._Len] + jae .endmove ; can't delete past the end. + + inc ebx + mov [esi+TEdit._Pos], ebx + +.pos_ok: + exec esi, TEdit:ReplaceSel, 0 + mov ebx, [esi+TEdit._Pos] + +.endmove: + test [.kbdState], maskShift + jnz .set_pos + + mov [esi+TEdit._Sel], ebx + +.set_pos: + mov [esi+TEdit._Lock], 0 + set esi, TEdit:CaretPos, ebx + + and [esi+TCanvasWindow._canvas_valid], 0 + exec esi, TProgress:RectChanged2, 0 + +.processed: + stc + popad + return + +.not_processed: + clc + popad + return +endp + + + +method TEdit.EventKeyRelease ;, .scancode, .kbdState +begin + + return +endp + + + +method TEdit.SetCaretPos +begin + pushad + + mov ecx, [.self] + mov eax, [.value] + mov [ecx+TEdit._Pos], eax + + and [ecx+TCanvasWindow._canvas_valid], 0 + exec ecx, TEdit:RectChanged2, 0 + exec ecx, TEdit:UpdateCaretPos + + popad + return +endp + + + +method TEdit.UpdateCaretPos +.refresh dd ? +begin + pushad + mov esi, [.self] + + xor eax, eax + mov [.refresh], eax + + mov eax, [esi+TEdit._Pos] + cmp eax, [esi+TEdit._Start] + jge .compute_x + +; scroll the text + and eax, $fffffff8 + mov [esi+TEdit._Start], eax + inc [.refresh] + +.compute_x: + stdcall StrPtr, [esi+TEdit._Text] + mov edi, eax + + stdcall StrOffsUtf8, edi, [esi+TEdit._Pos] + mov ecx, eax + + stdcall StrOffsUtf8, edi, [esi+TEdit._Start] + sub ecx, eax ; offset to char under cursor. + js .finish + + +.leftok: + mov edi, eax ; StrOffsUtf8 returns pointer to start of the text. + + mov eax, ecx + jecxz @f + + stdcall GetTextBounds, edi, ecx, [GUI.DefaultFont] + +@@: + lea ecx, [eax-1] ; x coordinate of the cursor. + add ecx, [esi+TEdit._MarginLeft] + add ecx, [GUI.boxBorderWidth] + + mov eax, [esi+TEdit._width] + sub eax, [esi+TEdit._MarginRight] + sub eax, [GUI.boxBorderWidth] + + cmp eax, ecx + jg .caretok + + mov eax, [esi+TEdit._Start] + add eax, 8 + cmp eax, [esi+TEdit._Len] + jle @f + mov eax, [esi+TEdit._Len] +@@: + mov [esi+TEdit._Start], eax + inc [.refresh] + jmp .compute_x + + +.caretok: + cmp [.refresh], 0 + je .canvas_ok + + and [esi+TCanvasWindow._canvas_valid], 0 + +.canvas_ok: + mov edx, [esi+TEdit._height] + sub edx, 6 + +; add ecx, [GUI.boxBorderWidth] + stdcall CaretChange, [.self], ecx, 3, 2, edx, TRUE + +.finish: + popad + return +endp + + +method TEdit.EventButtonPress +begin + inherited [.button], [.kbdState], [.x], [.y] + + push ecx + mov ecx, [.self] + mov [ecx+TEdit._drag_mode], 1 + + stdcall SetMouseCapture, ecx + exec [.self], TEdit:HitTest, [.x], FALSE + + pop ecx + return +endp + + +method TEdit.EventMouseMove +begin + inherited [.x], [.y], [.kbdState] + + push ecx + mov ecx, [.self] + + cmp [ecx+TEdit._drag_mode], 0 + je .finish + + exec [.self], TEdit:HitTest, [.x], TRUE + +.finish: + pop ecx + return +endp + + +method TEdit.EventButtonRelease +begin + inherited [.button], [.kbdState], [.x], [.y] + push ecx + + mov ecx, [.self] + mov [ecx+TEdit._drag_mode], 0 + stdcall SetMouseCapture, 0 + pop ecx + return +endp + + + + +method TEdit.HitTest +.target dd ? +.start dd ? +.offset dd ? +begin + pushad + mov ebx, [.self] + + mov ecx, [.x] + sub ecx, [GUI.boxBorderWidth] + sub ecx, [ebx+TEdit._MarginLeft] + + mov [.target], ecx + + stdcall StrPtr, [ebx+TEdit._Text] + mov [.start], eax + + stdcall StrOffsUtf8, [.start], [ebx+TEdit._Start] + sub eax, [.start] + + stdcall GetTextBounds, [.start], eax, [GUI.DefaultFont] + mov [.offset], eax ; the offset in pixels of the leftmost edge of the window. + + +; Binary search of the position. + + mov edi, [ebx+TEdit._Len] ; current + mov esi, [ebx+TEdit._Len] ; upper limit + xor ecx, ecx ; lower limit + +.search_loop: + stdcall StrOffsUtf8, [ebx+TEdit._Text], edi + sub eax, [.start] + + stdcall GetTextBounds, [.start], eax, [GUI.DefaultFont] + sub eax, [.offset] + + cmp eax, [.target] + jg .go_down + +; go up + cmp edi, esi + je .found + + mov ecx, edi + add edi, esi + sar edi, 1 + + cmp edi, ecx + je .found + jmp .search_loop + + +.go_down: + cmp edi, ecx + je .found + + mov esi, edi + add edi, ecx + sar edi, 1 + + cmp edi, esi + je .found + jmp .search_loop + + +.found: + mov eax, [ebx+TEdit._Start] + add eax, edi + + cmp [.select], 0 + jne @f + mov [ebx+TEdit._Sel], edi +@@: + set ebx, TEdit:CaretPos, edi + and [ebx+TCanvasWindow._canvas_valid], 0 + exec ebx, TProgress:RectChanged2, 0 + +.finish: + popad + return + +endp + + + + + +method TEdit.EventFocusIn +begin + stdcall CaretAttach, [.self] + exec [.self], TEdit:UpdateCaretPos + exec [.self], TEdit:ForceRefresh + inherited + return +endp + + +method TEdit.EventFocusOut +begin + stdcall CaretAttach, 0 + exec [.self], TEdit:ForceRefresh + inherited + return +endp + + + + +endmodule + + ADDED freshlib/gui/TForm.asm Index: freshlib/gui/TForm.asm ================================================================== --- /dev/null +++ freshlib/gui/TForm.asm @@ -0,0 +1,537 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TForm object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Represents form window that to serve as parent window for other controls. +;_________________________________________________________________________________________ + +module "TForm library" + + +mrNone = 0 +mrOK = 1 +mrCancel = 2 +mrAbort = 3 +mrRetry = 4 +mrIgnore = 5 +mrYes = 6 +mrNo = 7 +mrMaybe = 8 + + +object TForm, TWindow + + ._modal_result dd ? + ._OnClose dd ? ; On close window event handler. + + ._action_list dd ? + + ._p_split_grid dd ? + ._p_split_template dd ? + ._drag_splitter dd ? + + ._padding_top dd ? + ._padding_right dd ? + ._padding_bottom dd ? + ._padding_left dd ? + + ._transparent dd ? + + .DrawSplitterProc dd ? + + param .ActionList, ._action_list, .SetActionList + + param .Transparent, ._transparent, ._transparent ; if the form is fully covered with controls set to TRUE in order to not paint the form background. + + param .ModalResult, ._modal_result, ._modal_result + param .OnClose, ._OnClose, ._OnClose + + param .SplitGrid, ._p_split_grid, .SetSplitGrid + param .PaddingLeft, ._padding_left, ._padding_left + param .PaddingTop, ._padding_top, ._padding_top + param .PaddingRight, ._padding_right, ._padding_right + param .PaddingBottom, ._padding_bottom, ._padding_bottom + + method .Create, .parent + method .Destroy + method .ProcessIdle + + method .__RealignSplitGrid, .newW, .newH + method .SplitCellChanged + + method .SetActionList, .value + + method .SetSplitGrid, .value + method .AttachControlToCell, .pWindow, .idCell + + method .EventMouseMove, .x, .y, .kbdState + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + + method .ExtResize, .newWidth, .newHeight + + method .CloseRequest, .reason + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + +endobj + + + +;---------------------------------------------------------------------- +; Interface for TForm.OnClose user handler. +; Arguments: +; .self - pointer to the TForm object +; .reason - the reason for the close request. +; +; Returns: +; CF = 1 - Ignore the request. The form will not be closed. +; CF = 0 - Destroy the object. +; +; If the OnClose event handler is not set, the form will be destroyed. +;---------------------------------------------------------------------- +interface TForm.OnClose, .self, .reason + + +method TForm.Create +begin + inherited [.parent] + push eax edx + mov eax, [.self] + mov edx, [DrawSplitter] + mov [eax+TForm.DrawSplitterProc], edx + pop edx eax + return +endp + +method TForm.Destroy +begin + OutputValue "TForm.Destroy of $", [.self], 16, 8 + + set [.self], TForm:ActionList, 0 + set [.self], TForm:SplitGrid, 0 + inherited + return +endp + + +method TForm.ProcessIdle +begin + pushad + + mov esi, [.self] + get ebx, esi, TForm:ActionList + test ebx, ebx + jz .end_actions + + get edx, ebx, TActionList:FirstChild + +.loop: + test edx, edx + jz .end_actions + + get eax, edx, TAction:OnIdle + test eax, eax + jz .idle_ok + + pushad + stdcall eax, edx + popad + +.idle_ok: + mov edx, [edx+TObject.__next] + jmp .loop + +.end_actions: + popad + return +endp + + + +method TForm.SelfPaint +begin + get eax, [.self], TForm:Transparent + test eax, eax + jnz .draw_ok + + stdcall DrawSolidRect, [.pDstImage], [.xDst], [.yDst], [.width], [.height], [GUI.clDialogBk] + +.draw_ok: + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + + pushad + mov esi, [.self] + mov eax, [esi+TForm._p_split_grid] + test eax, eax + jz .finish + + mov ecx, [.xDst] + mov edx, [.yDst] + sub ecx, [.xSrc] + sub edx, [.ySrc] + + lea eax, [eax+TArray.array] + stdcall DrawSplitters, [.pDstImage], eax, [.xDst], [.yDst], [.width], [.height], ecx, edx, [esi+TForm.DrawSplitterProc] + +.finish: + popad + return +endp + + + + +method TForm.ExtResize ;, .newWidth, .newHeight +begin + exec [.self], TForm:__RealignSplitGrid, [.newWidth], [.newHeight] + inherited [.newWidth], [.newHeight] + return +endp + + + + +method TForm.CloseRequest ;, .reason +begin + push eax + + DebugMsg "Form close request." + + get eax, [.self], TForm:OnClose + + test eax, eax + jz .destroy + + stdcall eax, [.self], [.reason] + jc .finish + +.destroy: + destroy [.self] + +.finish: + pop eax + return +endp + + + +method TForm.SetActionList +begin + pushad + mov esi, [.self] + mov edx, [.value] + + mov edi, esi + xor ecx, ecx + + test edx, edx + jz @f + xchg edi, [edx+TActionList._form] + test edi, edi + jz @f + mov [edi+TForm._action_list], ecx +@@: + xchg edx, [esi+TForm._action_list] + test edx, edx + jz @f + mov [edx+TActionList._form], ecx +@@: + popad + return +endp + + +; sets the splitgrid from a template. + +method TForm.SetSplitGrid +begin + pushad + mov esi, [.self] + mov edx, [.value] + cmp edx, [esi+TForm._p_split_template] + je .finish + + mov [esi+TForm._p_split_template], edx + + xor ecx, ecx + xchg ecx, [esi+TForm._p_split_grid] + stdcall FreeMem, ecx + + test edx, edx + jz .finish + + stdcall ReadSplitGridTemplate, edx + mov [esi+TForm._p_split_grid], eax + + exec esi, TForm:__RealignSplitGrid, [esi+TWindow._width], [esi+TWindow._height] + +.finish: + popad + return +endp + + + + + +method TForm.AttachControlToCell;, .pWindow, .idCell +begin + pushad + mov esi, [.self] + mov edi, [esi+TForm._p_split_grid] + test edi, edi + jz .finish + + mov eax, [.idCell] + cmp eax, [edi+TArray.count] + jae .finish + + imul eax, sizeof.TSplitRect + lea edi, [edi+TArray.array+eax] + + mov ecx, [.pWindow] + xchg ecx, [edi+TSplitRect.pWindow] + + cmp ecx, [edi+TSplitRect.pWindow] + je .realign + + test ecx, ecx + jz .old_ok + + set ecx, TWindow:Visible, FALSE ; hide the previous window + +.old_ok: + cmp [edi+TSplitRect.pWindow], 0 + je .realign + + set [edi+TSplitRect.pWindow], TWindow:Visible, TRUE + +.realign: + exec esi, TForm:__RealignSplitGrid, [esi+TWindow._width], [esi+TWindow._height] + +.finish: + popad + return +endp + + + +method TForm.__RealignSplitGrid +.rect RECT +begin + pushad + + mov esi, [.self] + mov ebx, [esi+TForm._p_split_grid] + test ebx, ebx + jz .finish + + lea ebx, [ebx+TArray.array] + + mov eax, [esi+TForm._padding_left] + mov edi, [esi+TForm._padding_top] + mov ecx, [.newW] + mov edx, [.newH] + sub ecx, [esi+TForm._padding_right] + sub edx, [esi+TForm._padding_bottom] + + mov [.rect.left], eax + mov [.rect.top], edi + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea eax, [.rect] + stdcall RealignGrid, ebx, eax + +.finish: + popad + return +endp + + +method TForm.SplitCellChanged +begin + push eax esi + mov esi, [.self] + exec esi, TForm:__RealignSplitGrid, [esi+TForm._width], [esi+TForm._height] + pop esi eax + return +endp + + + + +method TForm.EventMouseMove ;, .x, .y, .kbdState +begin + pushad + + mov ebx, [.self] + + mov esi, [ebx+TForm._drag_splitter] + test esi, esi + jz .find_splitter + + mov ecx, [esi+TSplitRect.type] + and ecx, stVert + mov eax, [.x+ecx] ; the respective coordinate. + + sub eax, [esi+TSplitRect.rect.left+ecx] + + mov edx, [esi+TSplitRect.spWidth] + sar edx, 1 + sub eax, edx + + test [esi+TSplitRect.type], stOriginBR + jz .sizeok + + mov edx, [esi+TSplitRect.rect.right+ecx] + sub edx, [esi+TSplitRect.rect.left+ecx] + sub eax, edx + neg eax + + sub eax, [esi+TSplitRect.spWidth] + +.sizeok: + test [esi+TSplitRect.type], stRelative + jz .posok + + cdq + mov ebx, $8000 + imul ebx + + mov ebx, [esi+ecx+TSplitRect.rect.right] + sub ebx, [esi+ecx+TSplitRect.rect.left] ; size of rect (x or y depending on type) + sub ebx, [esi+TSplitRect.spWidth] + + idiv ebx + +.posok: + push eax + push esi + + call .invalidate_splitters + + pop esi + pop [esi+TSplitRect.pos] + stdcall RealignGrid, esi, esi + + call .invalidate_splitters + +.finish: + popad + inherited [.x], [.y], [.kbdState] + return + + +.find_splitter: + mov edi, [ebx+TForm._p_split_grid] + test edi, edi + jnz .found + +.set_default: + mov ecx, [ebx+TForm._cursor] + jmp .setit + +.found: + lea edi, [edi+TArray.array] + + lea eax, [.x] + stdcall FindSplitter, edi, eax + jnc .set_default + + test [eax+TSplitRect.type], stJustGap + jnz .finish + + mov ecx, mcSizeH + test [eax+TSplitRect.type], stVert + jz .setit + mov ecx, mcSizeV + +.setit: + stdcall GetStockCursor, ecx + + get edx, ebx, TWindow:OSWindow + stdcall SetMouseCursor, [edx+TWindow.handle], eax + jmp .finish + + +.invalidate_splitters: + + test [esi+TSplitRect.type], stNone + lea eax, [esi+TSplitRect.spRect] + lea esi, [esi+sizeof.TSplitRect] + jnz .end_spl + + exec [.self], TForm:RectChanged2, eax + call .invalidate_splitters + call .invalidate_splitters + +.end_spl: + retn +endp + + + +method TForm.EventButtonPress ;, .button, .kbdState, .x, .y + .pnt POINT + .cliprect RECT +begin + pushad + + mov esi, [.self] + mov ebx, [esi+TForm._p_split_grid] + test ebx, ebx + jz .finish + + lea ebx, [ebx+TArray.array] + + mov eax, [.x] + mov ecx, [.y] + mov [.pnt.x], eax + mov [.pnt.y], ecx + + lea eax, [.pnt] + stdcall FindSplitter, ebx, eax + jnc .finish + + test [eax+TSplitRect.type], stJustGap + jnz .finish + + mov [esi+TForm._drag_splitter], eax + + stdcall SetMouseCapture, esi + +.finish: + popad + inherited [.button], [.kbdState], [.x], [.y] + return +endp + + + +method TForm.EventButtonRelease ;, .button, .kbdState, .x, .y +begin + push eax + + mov eax, [.self] + mov [eax+TForm._drag_splitter], 0 + stdcall SetMouseCapture, 0 + +.finish: + pop eax + inherited [.button], [.kbdState], [.x], [.y] + return +endp + + + + +endmodule + ADDED freshlib/gui/TGrid.asm Index: freshlib/gui/TGrid.asm ================================================================== --- /dev/null +++ freshlib/gui/TGrid.asm @@ -0,0 +1,1999 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TGrid object class +; +; Target OS: Any +; +; Dependencies: +; Notes: +;_________________________________________________________________________________________ +module "TGrid library" + + + +object TGrid, TScrollable + +; private fields + + ._canvas dd ? ; To be split later on 4 different canvases. One for fixed[0,0], one for fixed columns, one for the fixed rows and one for the regular cells. + ; this way the amount of drawing on refresh will be minimized. + ._canvas_valid dd ? + + + ._captured dd ? + +; properties + .ColCount dd ? + .RowCount dd ? + .ColWidth dd ? ; default column width - every column can have different width though. + .RowHeight dd ? ; default row height - every row can have diferent height. + + ._FixedCols dd ? ; count of the fixed columns [0.._FixedCols-1] + ._FixedRows dd ? ; count of the fixed rows [0.._FixedRows-1] + ._flags dd ? ; grid flags ( dgf* flags) + + .ptrGridData dd ? ; one pointer for the user. + + ._focused POINT ; coordinates of the focused cell. + ._on_focus_change dd ? ; event handler for focus changed. + +; These 2 arrays contains respectively ColCount+1 and RowCount+1 elements. + .ptrColX dd ? ; pointer to array of dwords with X coordinates of the columns. + .ptrRowY dd ? ; pointer to array of dwords with Y coordinates of the rows. + + .selection RECT ; rectangle with current selection. + .sel_flags dd ? ; see gsfXXXXX constants below + .resize_rc dd ? ; row or column to resize. + .resize_ofs dd ? + +; Parameters + + param .Flags, ._flags, ._flags + param .FocusedX, ._focused.x, NONE + param .FocusedY, ._focused.y, NONE + param .OnFocusChange, ._on_focus_change, ._on_focus_change + param .FixedCols, ._FixedCols, ._FixedCols + param .FixedRows, ._FixedRows, ._FixedRows + +; Abstract methods + + abstract .DrawCell, .canvas, .ptrRect, .Col, .Row + +; Methods + + method .ForceRefresh + method .__UpdateImages + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + + method .__RenderGrid + method .__AdjustScrollbars + method .__AdjustOneScroller, .kind, .ptrArray, .Count, .Fixed, .client, .meansize + + method .Create, .parent + method .Destroy + + method .Resize, .newW, .newH + + + method .EnsureVisible, .Col, .Row + method .HitTest, .x, .y + method .GetCellXY, .Col, .Row + method .SetCounts, .ColCount, .RowCount + method .SetColWidth, .Col, .Width + method .SetColumnsWidth, .BegCol, .EndCol, .Width + method .SetRowHeight, .Row, .Height + method .SetRowsHeight, .BegRow, .EndRow, .Height + + method .SetFocused, .x, .y + +; system event handlers + + method .EventMouseMove, .x, .y, .kbdState +; method .EventMouseLeave + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + method .EventScroll, .direction, .command, .value + + method .EventKeyPress, .utf8, .scancode, .kbdState + + method .EventFocusIn + method .EventFocusOut + +endobj + + +fcfUnfocused = 0 +fcfFocused = 1 + +interface TGrid.OnFocusChange, .pGrid, .x, .y, .fFocused + + +; TGrid features flags + +; implemented +gfGridLines = 1 +gfGridLinesFixed = 2 +gfResizeColumns = 4 +gfResizeRows = 8 +gfRowFocus = $10 +gfSingleCellSelect = $20 + +; not implemented +;gfSelectRows = $10 ; clicks on the fixed column selects entire row. Else, click column event. +;gfSelectColumns = $20 ; clicks on the fixed row selects entire column. Else, click row event. +;gfSelectCells = $40 ; rectangle of cells can be selected. Else, only focused cell is changed or + ; if gfSelectRows or gfSelectColumns is set, select the respective row or column. + + + +; grid selections flags for the field TGrid.sel_flags + +gsfSelectEntireRow = 1 +gsfSelectEntireCol = 2 +gsfResizeColWidth = 4 +gsfResizeRowHeight = 8 + + +; cell possible states: + +cellRegular = 0 +cellFixed = 1 +cellSelected = 2 +cellFocused = 3 +cellFocused2 = 4 + + +method TGrid.Create +begin + inherited [.parent] + push eax esi + + mov esi, [.self] + + stdcall GetMem, 4 + mov [esi+TGrid.ptrColX], eax + stdcall GetMem, 4 + mov [esi+TGrid.ptrRowY], eax + +; Default values for sizes. + + set esi, TGrid:WantFocus, TRUE + + mov [esi+TGrid.ColWidth], 64 + mov [esi+TGrid.RowHeight], 20 + mov [esi+TGrid._flags], gfResizeColumns or gfResizeRows or gfGridLinesFixed or gfGridLines ;gfGridLinesFixed or gfGridLines or gfResizeColumns or gfResizeRows + + set esi, TGrid:StepX, 64 + set esi, TGrid:StepY, 20 + + or eax, -1 + mov [esi+TGrid._focused.x], eax + mov [esi+TGrid._focused.y], eax + mov [esi+TGrid.selection.left], eax + mov [esi+TGrid.selection.top], eax + mov [esi+TGrid.selection.right], eax + mov [esi+TGrid.selection.bottom], eax + + exec esi, TGrid:SetCounts, 1, 1 + pop esi eax + return +endp + + +method TGrid.Destroy +begin + pushad + mov esi, [.self] + stdcall FreeMem, [esi+TGrid.ptrColX] + stdcall FreeMem, [esi+TGrid.ptrRowY] + + popad + inherited + return +endp + + + + + +method TGrid.ForceRefresh +begin + mov eax, [.self] + and [eax+TGrid._canvas_valid], 0 + inherited + return +endp + + + +method TGrid.SelfPaint ; .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height +begin + pushad + mov esi, [.self] + + cmp [esi+TGrid._canvas_valid], 0 + jne @f + exec esi, TGrid:__RenderGrid +@@: + mov ebx, [esi+TGrid._canvas] + test ebx, ebx + jz .finish + + stdcall BlendImage, [.pDstImage], [.xDst], [.yDst], ebx, [.xSrc], [.ySrc], [.width], [.height] + +.finish: + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + + + +; returns CF = 1 if the focus has been changed. + +method TGrid.SetFocused ; .x, .y +begin + pushad + + mov esi, [.self] + mov ecx, [.x] + mov edx, [.y] + mov edi, [esi+TGrid._on_focus_change] + + mov eax, [esi+TGrid.ColCount] + mov ebx, [esi+TGrid.RowCount] + dec eax + dec ebx + + cmp ecx, eax + cmova ecx, eax + + cmp edx, ebx + cmova edx, ebx + + cmp ecx, [esi+TGrid._focused.x] + jne .changeit + + cmp edx, [esi+TGrid._focused.y] + je .finish + +.changeit: + test edi, edi + jz .old_ok + + pushad + stdcall edi, esi, [esi+TGrid._focused.x], [esi+TGrid._focused.y], fcfUnfocused + popad + +.old_ok: + mov [esi+TGrid._focused.x], ecx + mov [esi+TGrid._focused.y], edx + test edi, edi + jz .end_ok + + stdcall edi, esi, ecx, edx, fcfFocused + +.end_ok: + stc + +.finish: + popad + return +endp + + + +method TGrid.__UpdateImages +begin + pushad + mov esi, [.self] + + mov ebx, [esi+TGrid._visible] + mov edi, [esi+TGrid._canvas] + + mov ecx, [esi+TGrid._width] + mov edx, [esi+TGrid._height] + + test ebx, ebx + jz .destroy + + test edi, edi + jz .create_new + +; check the size + + cmp ecx, [edi+TImage.width] + ja .destroy + + cmp edx, [edi+TImage.height] + jbe .setwrap + +.destroy: + stdcall DestroyImage, edi ; canvas + + xor eax, eax + mov [esi+TGrid._canvas], eax + + test ebx, ebx + jz .exit + + +.create_new: + +; new size - make it a little bit bigger. + + lea eax, [ecx+256] + lea ebx, [edx+256] + + stdcall CreateImage2, eax, ebx, FALSE + mov [esi+TGrid._canvas], eax + mov edi, eax + +.setwrap: + mov [edi+TImage.wrapW], ecx + mov [edi+TImage.wrapH], edx + +.exit: + and [esi+TGrid._canvas_valid], 0 + popad + inherited + return +endp + + + + +method TGrid.Resize +begin + inherited [.newW], [.newH] + exec [.self], TGrid:__AdjustScrollbars + return +endp + + + +method TGrid.EventScroll ; , .direction, .command, .value +begin + inherited [.direction], [.command], [.value] + jc .finish + + pushad + mov esi, [.self] + and [esi+TGrid._canvas_valid], 0 + exec esi, TGrid:RectChanged2, 0 + popad + +.finish: + return +endp + + + + +method TGrid.EventMouseMove ;, .x, .y, .kbdState +begin + inherited [.x], [.y], [.kbdState] + jc .processed + + pushad + mov esi, [.self] + +; first the mouse cursor: + + mov ebx, mcArrow + + exec esi, TGrid:HitTest, [.x], [.y] + cmovc eax, [esi+TGrid.selection.right] + cmovc edx, [esi+TGrid.selection.bottom] + jc .cursor_ok + + test eax, eax + jns @f + mov ebx, mcSizeV +@@: + test edx, edx + jns @f + mov ebx, mcSizeH +@@: + +.cursor_ok: + cmp [esi+TGrid.sel_flags], 0 + jne .mouse_cursor_ok + + push eax edx + + mov [esi+TWindow._cursor], ebx + stdcall GetStockCursor, ebx + + get ecx, esi, TGrid:OSWindow + stdcall SetMouseCursor, [ecx+TWindow.handle], eax + + pop edx eax + + test eax, eax + js .end_mouse_move + test edx, edx + js .end_mouse_move + +.mouse_cursor_ok: + cmp [esi+TGrid._captured], 0 + je .end_mouse_move + +; here process the drag operations: + + mov edi, [esi+TGrid.sel_flags] + + test edi, gsfResizeColWidth or gsfResizeRowHeight + jnz .resize_row_col + + cmp edi, gsfSelectEntireRow + cmove eax, [esi+TGrid.ColCount] + + cmp edi, gsfSelectEntireCol + cmove edx, [esi+TGrid.RowCount] + + mov [esi + TGrid.selection.right], eax + mov [esi + TGrid.selection.bottom], edx + + cmp edi, gsfSelectEntireRow + cmove eax, [esi+TGrid._FixedCols] + + cmp edi, gsfSelectEntireCol + cmove edx, [esi+TGrid._FixedRows] + + exec esi, TGrid:SetFocused, eax, edx + jnc .end_mouse_move + +.ensure: + exec esi, TGrid:EnsureVisible, [esi+TGrid.selection.right], [esi+TGrid.selection.bottom] + and [esi+TGrid._canvas_valid], 0 + exec esi, TGrid:RectChanged2, 0 + +.end_mouse_move: + popad + +.processed: + return + + +.resize_row_col: + + test edi, gsfResizeColWidth + jz .col_width_ok + + mov ebx, [esi+TGrid.ptrColX] + mov eax, [esi+TGrid.resize_rc] + mov ecx, [.x] + sub ecx, [ebx+4*eax] ; the start coordinate. + cmp eax, [esi+TGrid._FixedCols] + jb .xpos_ok + add ecx, [esi + TGrid._scrXY.pos] +.xpos_ok: + sub ecx, [esi+TGrid.resize_ofs] + cmp ecx, 4 + jge @f + mov ecx, 4 +@@: + exec esi, TGrid:SetColWidth, eax, ecx + + mov eax, [esi+TGrid.resize_rc] + xor edx, edx + jmp .ensure + +.col_width_ok: + test edi, gsfResizeRowHeight + jz .end_mouse_move + + mov ebx, [esi+TGrid.ptrRowY] + mov eax, [esi+TGrid.resize_rc] + mov ecx, [.y] + sub ecx, [ebx+4*eax] ; the start coordinate. + cmp eax, [esi+TGrid._FixedCols] + jb .ypos_ok + add ecx, [esi + TGrid._scrXY.pos + 4] +.ypos_ok: + sub ecx, [esi + TGrid.resize_ofs] + cmp ecx, 4 + jge @f + mov ecx, 4 +@@: + exec esi, TGrid:SetRowHeight, eax, ecx + + mov edx, [esi + TGrid.resize_rc] + xor eax, eax + jmp .ensure +endp + + + + +method TGrid.EventButtonPress ;, .button, .kbdState, .x, .y +begin + inherited [.button], [.kbdState], [.x], [.y] + jc .processed + + pushad + + mov esi, [.self] + + exec esi, TGrid:HitTest, [.x], [.y] + jc .finish + + stdcall SetMouseCapture, [.self] + mov [esi+TGrid._captured], 1 + + test eax, eax + js .resize_row + test edx, edx + js .resize_col + + and [esi+TGrid.sel_flags], 0 + mov [esi+TGrid.selection.left], eax + mov [esi+TGrid.selection.top], edx + mov [esi+TGrid.selection.right], eax + mov [esi+TGrid.selection.bottom], edx + + cmp eax, [esi+TGrid._FixedCols] + jge .notleft + +; if the cursor is on the left fixed cells + or [esi+TGrid.sel_flags], gsfSelectEntireRow + mov ebx, [esi+TGrid._FixedCols] ; xbeg + mov ecx, [esi+TGrid.ColCount] ; xend + mov [esi+TGrid.selection.left], ebx + mov [esi+TGrid.selection.right], ecx + mov eax, [esi+TGrid._FixedCols] + +.notleft: + cmp edx, [esi+TGrid._FixedRows] + jge .nottop + +; if the cursor is on the top fixed cells + or [esi+TGrid.sel_flags], gsfSelectEntireCol + mov ebx, [esi+TGrid._FixedRows] ; ybeg + mov ecx, [esi+TGrid.RowCount] ; yend + mov [esi+TGrid.selection.top], ebx + mov [esi+TGrid.selection.bottom], ecx + mov edx, [esi+TGrid._FixedCols] + +.nottop: + + exec esi, TGrid:SetFocused, eax, edx + + and [esi+TGrid._canvas_valid], 0 + exec esi, TGrid:RectChanged2, 0 + +.finish: + popad + +.processed: + return + + +.resize_row: + mov [esi+TGrid.sel_flags], gsfResizeRowHeight + mov eax, edx + mov ecx, [esi+TGrid.ptrRowY] + mov edx, [.y] + cmp eax, [esi+TGrid._FixedRows] + jb .do_resize + add edx, [esi + TGrid._scrXY.pos + 4] + jmp .do_resize + +.resize_col: + mov [esi+TGrid.sel_flags], gsfResizeColWidth + mov ecx, [esi+TGrid.ptrColX] + mov edx, [.x] + cmp eax, [esi+TGrid._FixedCols] + jb .do_resize + add edx, [esi + TGrid._scrXY.pos] + +.do_resize: + mov [esi+TGrid.resize_rc], eax + sub edx, [ecx+4*eax+4] ; Y coordinate on the next cell. + mov [esi+TGrid.resize_ofs], edx + jmp .finish +endp + + + + + +method TGrid.EventButtonRelease ;, .button, .kbdState, .x, .y +begin + inherited [.button], [.kbdState], [.x], [.y] + pushad + + mov esi, [.self] + cmp [esi+TGrid._captured], 0 + je .finish + + stdcall SetMouseCapture, 0 + mov [esi+TGrid._captured], 0 + + and [esi+TGrid.sel_flags], 0 + lea edi, [esi+TGrid.selection] + stdcall RectSort, edi + + and [esi+TGrid._canvas_valid], 0 + exec esi, TGrid:RectChanged2, 0 + +.finish: + popad + return +endp + + + + + +method TGrid.EventKeyPress ;, .utf8, .scancode, .kbdState +begin + inherited [.utf8], [.scancode], [.kbdState] + jc .finish ; CF == 1 + + mov eax, [.utf8] + test eax, eax + jnz .finish ; CF == 0 + + pushad + + mov esi, [.self] + mov eax, [.scancode] + + mov ecx, [esi+TGrid._focused.x] + mov edx, [esi+TGrid._focused.y] + + cmp eax, keyUpNumpad + je .up + cmp eax, keyUp + je .up + + cmp eax, keyDownNumpad + je .down + cmp eax, keyDown + je .down + + cmp eax, keyPgUpNumpad + je .pageup + cmp eax, keyPgUp + je .pageup + + cmp eax, keyPgDnNumpad + je .pagedown + cmp eax, keyPgDown + je .pagedown + + cmp eax, keyLeftNumpad + je .left + cmp eax, keyLeft + je .left + + cmp eax, keyRightNumpad + je .right + cmp eax, keyRight + je .right + + cmp eax, keyHomeNumpad + je .home + cmp eax, keyHome + je .home + + cmp eax, keyEndNumpad + je .end + cmp eax, keyEnd + je .end + +; key not processed. + clc + popad + +.finish: + return + + +.xy_ok: + mov [esi+TGrid.selection.right], ecx + mov [esi+TGrid.selection.bottom], edx + + test [.kbdState], maskShift + jnz .selection_ok + + mov [esi+TGrid.selection.left], ecx + mov [esi+TGrid.selection.top], edx + +.selection_ok: + + exec esi, TGrid:SetFocused, ecx, edx + jnc .key_processed + + exec esi, TGrid:EnsureVisible, [esi+TGrid._focused.x], [esi+TGrid._focused.y] + exec esi, TGrid:__AdjustScrollbars + + xor eax, eax + mov [esi+TGrid._canvas_valid], eax + exec esi, TGrid:RectChanged2, eax + +.key_processed: + stc + popad + return + +;------------------------------------------------------------------ + +.up: + dec edx + cmp edx, [esi+TGrid._FixedRows] + cmovl edx, [esi+TGrid._FixedRows] + jmp .xy_ok + +.down: + mov eax, [esi+TGrid.RowCount] + dec eax + + inc edx + cmp edx, eax + cmovg edx, eax + jmp .xy_ok + + +.left: + dec ecx + cmp ecx, [esi+TGrid._FixedCols] + cmovl ecx, [esi+TGrid._FixedCols] + jmp .xy_ok + +.right: + mov eax, [esi+TGrid.ColCount] + dec eax + + inc ecx + cmp ecx, eax + cmovg ecx, eax + jmp .xy_ok + + +.home: + mov edx, [esi+TGrid._FixedRows] + jmp .xy_ok + + +.end: + mov edx, [esi+TGrid.RowCount] + dec edx + jmp .xy_ok + + +; It is a little bit more complex. + +.pageup: + push ecx + + mov ebx, [esi+TGrid.ptrRowY] + mov ecx, [esi+TGrid._height] + + mov eax, [esi+TGrid._FixedRows] + sub ecx, [ebx+eax*4] + sub ecx, [GUI.boxBorderWidth] ; ecx = height of the floating area. + + mov eax, [ebx+edx*4] ; Yabs of the focused row. + sub eax, ecx ; the new Yabs + get ecx, esi, TGrid:PosY + sub ecx, [ebx+edx*4] ; the offset of the current focused row from the page start. Negative! + +.loop_up: + dec edx + cmp edx, [esi+TGrid._FixedRows] + jb .end_up + + cmp eax, [ebx+edx*4] + jl .loop_up + +.end_up: + inc edx + add ecx, [ebx+edx*4] ; ecx is negative here! + jns @f + xor ecx, ecx +@@: + set esi, TGrid:PosY, ecx + + pop ecx + jmp .xy_ok + + +.pagedown: + push ecx + + mov ebx, [esi+TGrid.ptrRowY] + mov ecx, [esi+TGrid._height] + + mov eax, [esi+TGrid._FixedRows] + sub ecx, [ebx+eax*4] + sub ecx, [GUI.boxBorderWidth] ; ecx = height of the floating area. + + mov eax, [ebx+edx*4] ; Yabs of the focused row. + add eax, ecx ; the new Yabs + get ecx, esi, TGrid:PosY + sub ecx, [ebx+edx*4] ; the offset of the current focused row from the page start. Negative! + +.loop_dn: + inc edx + cmp edx, [esi+TGrid.RowCount] + jae .end_dn + + cmp eax, [ebx+edx*4] + ja .loop_dn + +.end_dn: + dec edx + add ecx, [ebx+edx*4] ; ecx is negative here! + + get eax, esi, TGrid:MaxY + cmp ecx, eax + cmova ecx, eax + + set esi, TGrid:PosY, ecx + + pop ecx + jmp .xy_ok +endp + + + + + +method TGrid.__RenderGrid +.rcFixedTL RECT ; fixed cells top-left quadrant. +.rcFixedT RECT ; fixed cells on the top +.rcFixedL RECT ; fixed cells on the left +.rcFloat RECT ; the float zode of the grid that can be scrolled. +.rcClient RECT ; the TGrid client rect. +.ptrRect dd ? +begin + pushad + + mov esi, [.self] + + lea eax, [.rcClient] + mov [.ptrRect], eax + + mov eax, [esi+TGrid._width] + mov ecx, [esi+TGrid._height] + + mov edx, [GUI.boxBorderWidth] + neg edx + lea eax, [eax+2*edx] + lea ecx, [ecx+2*edx] + + xor edx, edx + + mov [.rcClient.left], edx + mov [.rcClient.top], edx + + mov [.rcClient.right], eax + mov [.rcClient.bottom], ecx + + mov [.rcFixedT.right], eax + mov [.rcFixedL.bottom], ecx + + mov [.rcFloat.right], eax + mov [.rcFloat.bottom], ecx + + mov [.rcFixedTL.left], edx + mov [.rcFixedTL.top], edx + + mov [.rcFixedT.top], edx + mov [.rcFixedL.left], edx + + mov ecx, [esi+TGrid._FixedCols] + mov eax, [esi+TGrid.ptrColX] + test eax, eax + jnz .colsizeok + + imul ecx, [esi+TGrid.ColWidth] ; default width if there is no size array + jmp .x1ok + +.colsizeok: + mov ecx, [eax+4*ecx] + +.x1ok: + mov edx, [esi+TGrid._FixedRows] + mov eax, [esi+TGrid.ptrRowY] + test eax, eax + jnz .rowsizeok + + imul edx, [esi+TGrid.ColWidth] ; default width if there is no size array + jmp .y1ok + +.rowsizeok: + mov edx, [eax+4*edx] +.y1ok: + mov [.rcFixedTL.right], ecx + mov [.rcFixedTL.bottom], edx + + mov [.rcFixedT.left], ecx + mov [.rcFixedT.bottom], edx + + mov [.rcFixedL.right], ecx + mov [.rcFixedL.top], edx + + mov [.rcFloat.left], ecx + mov [.rcFloat.top], edx + + +; Here all 4 rectangles are ready. Some of them can be empty of course. +; Lets make intersections with the invalidated rectangle. + +.drawFloat: + lea eax, [.rcFloat] + stdcall RectIntersect, eax, eax, [.ptrRect] + jc .drawFixedT + + lea eax, [.rcFloat] + stdcall TGrid.__DrawCellArea, [esi+TGrid._canvas], eax, 0, [GUI.boxBorderWidth] + +.drawFixedT: + lea eax, [.rcFixedT] + stdcall RectIntersect, eax, eax, [.ptrRect] + jc .drawFixedL + +;options.DebugMode = 1 +; OutputValue "Fixed top: left = ", [.rcFixedT.left], 10, -1 +; OutputValue "Fixed top: top = ", [.rcFixedT.top], 10, -1 +; OutputValue "Fixed top: right = ", [.rcFixedT.right], 10, -1 +; OutputValue "Fixed top: bottom = ", [.rcFixedT.bottom], 10, -1 +;options.DebugMode = 0 + + stdcall TGrid.__DrawCellArea, [esi+TGrid._canvas], eax, fxVertical, [GUI.boxBorderWidth] + +.drawFixedL: + lea eax, [.rcFixedL] + stdcall RectIntersect, eax, eax, [.ptrRect] + jc .drawFixedTL + + stdcall TGrid.__DrawCellArea, [esi+TGrid._canvas], eax, fxHorizontal, [GUI.boxBorderWidth] + +.drawFixedTL: + lea eax, [.rcFixedTL] + stdcall RectIntersect, eax, eax, [.ptrRect] + jc .finish + + stdcall TGrid.__DrawCellArea, [esi+TGrid._canvas], eax, fxHorizontal or fxVertical, [GUI.boxBorderWidth] + +.finish: + xor edx, edx + mov ecx, [esi+TGrid._width] + mov eax, [esi+TGrid._height] + mov [.rcClient.left], edx + mov [.rcClient.top], edx + mov [.rcClient.right], ecx + mov [.rcClient.bottom], eax + + lea edi, [.rcClient] + stdcall DrawBoxDefault, [esi+TGrid._canvas], edi, 0, bxFlat or bxNoFill, [GUI.boxBorderWidth] + + popad + return +endp + + + + +; .fFixed contains flags: +fxHorizontal = 1 ; columns +fxVertical = 2 ; rows + +proc TGrid.__DrawCellArea, .canvas, .ptrClipRect, .fFixed, .offset + .Cell RECT + .xofs dd ? + .yofs dd ? + .clip RECT + .sel RECT + .bnd TBounds +begin + pushad + +; selection rectangle in cells coordinates. + + lea edi, [.sel] + lea eax, [esi+TGrid.selection] + stdcall RectCopy, edi, eax + stdcall RectSort, edi + inc [.sel.right] + inc [.sel.bottom] + + mov eax, [esi+TGrid._FixedRows] + mov ecx, [esi+TGrid._FixedCols] + +; The fixed cells can not be selected!!! +; [edi+RECT.top] := max([edi+RECT.top], [esi+TGrid._FixedRows]) +; [edi+RECT.left] := max([edi+RECT.left], [esi+TGrid._FixedCols]) + + cmp eax, [edi+RECT.top] + cmovl eax, [edi+RECT.top] + + cmp ecx, [edi+RECT.left] + cmovl ecx, [edi+RECT.left] + + mov [edi+RECT.top], eax + mov [edi+RECT.left], ecx + + mov eax, [esi+TGrid._FixedCols] + mov ecx, [esi+TGrid.ColCount] + + test [esi+TGrid._flags], gfRowFocus + jz @f + + mov [edi+RECT.left], eax + mov [edi+RECT.right], ecx + +@@: + +; drawing clip rectange. + lea eax, [.bnd] + stdcall RectToBounds, eax, [.ptrClipRect] + +; erase the background + cmp [.fFixed], 0 + cmove eax, [GUI.clGridCellBk + 4*cellRegular] + cmovne eax, [GUI.clGridCellBk + 4*cellFixed] + + push eax ; color + + mov edi, [.ptrClipRect] + +;options.DebugMode = 1 +; OutputValue "Rect left: ", [edi+RECT.left], 10, -1 +; OutputValue "Rect top: ", [edi+RECT.top], 10, -1 +; OutputValue "Rect right: ", [edi+RECT.right], 10, -1 +; OutputValue "Rect bottom: ", [edi+RECT.bottom], 10, -1 +;options.DebugMode = 0 + + mov eax, [edi+RECT.left] + mov ebx, [edi+RECT.top] + mov ecx, [edi+RECT.right] + mov edx, [edi+RECT.bottom] + + sub ecx, eax + sub edx, ebx + + add eax, [.offset] + add ebx, [.offset] + + stdcall DrawSolidRect, [.canvas], eax, ebx, ecx, edx ; color from the stack. + +; If the cells are not fixed, compute the real coordinates of the rectangle. + xor eax, eax + mov [.xofs], eax + mov [.yofs], eax + + test [.fFixed], fxHorizontal + jnz .horizOK + + mov eax, [esi + TGrid._scrXY.pos] + + add [edi+RECT.left], eax + add [edi+RECT.right], eax + + mov [.xofs], eax + +.horizOK: + test [.fFixed], fxVertical + jnz .vertOK + + mov eax, [esi + TGrid._scrXY.pos + 4] + add [edi+RECT.top], eax + add [edi+RECT.bottom], eax + + mov [.yofs], eax + +; Determine the cell range for the given clip rectangle. +.vertOK: + xor eax, eax + stdcall __SearchCoordinate, [edi+RECT.left], [esi+TGrid.ptrColX], 0, [esi+TGrid.ColCount] + mov [.Cell.left], eax + +; OutputValue "Cell.left: ", eax, 10, -1 + + mov eax, [esi+TGrid.ColCount] + stdcall __SearchCoordinate, [edi+RECT.right], [esi+TGrid.ptrColX], 0, eax + mov [.Cell.right], eax + +; OutputValue "Cell.right: ", eax, 10, -1 + + xor eax, eax + stdcall __SearchCoordinate, [edi+RECT.top], [esi+TGrid.ptrRowY], 0, [esi+TGrid.RowCount] + mov [.Cell.top], eax + +; OutputValue "Cell.top: ", eax, 10, -1 + + mov eax, [esi+TGrid.RowCount] + stdcall __SearchCoordinate, [edi+RECT.bottom], [esi+TGrid.ptrRowY], 0, eax + mov [.Cell.bottom], eax + +; OutputValue "Cell.bottom: ", eax, 10, -1 + + mov ebx, [.Cell.top] + +.yloop: + cmp ebx, [.Cell.bottom] + jg .endyloop + + test [.fFixed], fxVertical + cmovnz eax, [esi+TGrid._FixedRows] + cmovz eax, [esi+TGrid.RowCount] + + cmp ebx, eax + jge .endyloop + + + mov eax, [esi+TGrid.ptrRowY] + mov ecx, [4*ebx+eax+4] ; bottom + mov eax, [4*ebx+eax] ; top + sub ecx, [.yofs] + sub eax, [.yofs] + + add eax, [.offset] + add ecx, [.offset] + + mov [.clip.bottom], ecx + mov [.clip.top], eax + + mov edi, [.Cell.left] + +.xloop: + cmp edi, [.Cell.right] + jg .endxloop + + test [.fFixed], fxHorizontal + cmovnz eax, [esi+TGrid._FixedCols] + cmovz eax, [esi+TGrid.ColCount] + + cmp edi, eax + jge .endxloop + + + mov eax, [esi+TGrid.ptrColX] + mov ecx, [4*edi+eax+4] + mov eax, [4*edi+eax] + sub ecx, [.xofs] + sub eax, [.xofs] + + add eax, [.offset] + add ecx, [.offset] + + mov [.clip.right], ecx + mov [.clip.left], eax + +; draw the background if the cell is selected or focused: + + cmp ebx, [esi+TGrid._focused.y] + jne .is_selected + + test [esi+TGrid._flags], gfRowFocus + jnz .cell_focused + + cmp edi, [esi+TGrid._focused.x] + jne .is_selected + +.cell_focused: + mov edx, [GUI.clGridCellBk+4*cellFocused] + cmp esi, [__FocusedWindow] + je .draw_bk + + mov edx, [GUI.clGridCellBk+4*cellFocused2] + jmp .draw_bk + +.is_selected: + + lea eax, [.sel] + stdcall PointInRect, eax, edi, ebx + jnc .bkgroundok + + mov edx, [GUI.clGridCellBk + 4*cellSelected] + +.draw_bk: + mov eax, [.clip.right] + mov ecx, [.clip.bottom] + sub eax, [.clip.left] + sub ecx, [.clip.top] + stdcall DrawSolidRect, [.canvas], [.clip.left], [.clip.top], eax, ecx, edx + +.bkgroundok: + lea eax, [.clip] + exec esi, TGrid:DrawCell, [.canvas], eax, edi, ebx + +; draw the gridlines: + + push ebx + + xor ebx, ebx + mov eax, gfGridLines + + cmp [.fFixed], 0 + je .datagridline + + mov ebx, 8 + mov eax, gfGridLinesFixed + +.datagridline: +; OutputValue "Flags: ", [esi+TGrid._flags], 16, 8 + + test [esi+TGrid._flags], eax + jz .gridok + + mov edx, [.clip.left] + mov ecx, [.clip.right] + mov eax, [.clip.bottom] + dec ecx + sub eax, [.clip.top] + + stdcall BlendSolidRect, [.canvas], edx, [.clip.top], 1, eax, [GUI.clGridLines+ebx] ; left + stdcall BlendSolidRect, [.canvas], ecx, [.clip.top], 1, eax, [GUI.clGridLines+4+ebx] ; right + + mov edx, [.clip.top] + mov ecx, [.clip.right] + mov eax, [.clip.bottom] + dec eax + sub ecx, [.clip.left] + + stdcall BlendSolidRect, [.canvas], [.clip.left], edx, ecx, 1, [GUI.clGridLines+ebx] ; top + stdcall BlendSolidRect, [.canvas], [.clip.left], eax, ecx, 1, [GUI.clGridLines+4+ebx] ; bottom + +.gridok: + pop ebx + + inc edi + jmp .xloop + +.endxloop: + inc ebx + jmp .yloop + +.endyloop: + + popad + return +endp + + + + + + +;------------------------------------------------------------------ +; If .Col, .Row is inside the visible client area, does nothing. +; , if .Col, .Row is outside this area, provides scrolling to +; make it visible to the center of the client area. +;------------------------------------------------------------------ +method TGrid.EnsureVisible ;, .Col, .Row +.client RECT +begin + pushad + mov edi, [.self] + + mov ebx, [edi+TGrid._FixedCols] + mov ecx, [edi+TGrid._FixedRows] + shl ebx, 2 + shl ecx, 2 + add ebx, [edi+TGrid.ptrColX] + add ecx, [edi+TGrid.ptrRowY] + mov ebx, [ebx] + mov ecx, [ecx] + mov [.client.left], ebx + mov [.client.top], ecx + + mov ebx, [edi+TGrid._width] + mov ecx, [edi+TGrid._height] + mov eax, [GUI.boxBorderWidth] + shl eax, 1 + sub ebx, eax + sub ecx, eax + + mov [.client.right], ebx + mov [.client.bottom], ecx + + mov eax, [.Col] + cmp eax, [edi+TGrid._FixedCols] + jb .posvertical ; fixed columns are always inside the screen + + get ecx, edi, TGrid:PosX + add [.client.left], ecx + add [.client.right], ecx + + mov edx, [edi+TGrid.ptrColX] + mov ecx, [.Col] + mov ebx, [edx+4*ecx] + mov ecx, [edx+4*ecx+4] + + cmp ecx, [.client.right] + jle .rightok + + sub ecx, [.client.right] + add ecx, [.client.left] + + get eax, edi, TGrid:PosX + sub eax, [.client.left] + add ecx, eax + + set edi, TGrid:PosX, ecx + jmp .posvertical + +.rightok: + cmp ebx, [.client.left] + jge .posvertical + + get eax, edi, TGrid:PosX + sub eax, [.client.left] + add ebx, eax + + set edi, TGrid:PosX, ebx + +.posvertical: + + +; This logic is somehow strange. Up to .bottomok; To be checked... + + + mov eax, [.Row] + cmp eax, [edi+TGrid._FixedRows] + jb .endpos + + get ecx, edi, TGrid:PosY + add [.client.top], ecx + add [.client.bottom], ecx + + mov edx, [edi+TGrid.ptrRowY] + mov ecx, [.Row] + mov ebx, [edx+4*ecx] + mov ecx, [edx+4*ecx+4] + + cmp ecx, [.client.bottom] + jle .bottomok + + sub ecx, [.client.bottom] + add ecx, [.client.top] + + get eax, edi, TGrid:PosY + sub eax, [.client.top] + add ecx, eax + + set edi, TGrid:PosY, ecx + jmp .endpos + +.bottomok: + cmp ebx, [.client.top] + jge .endpos + + get eax, edi, TGrid:PosY + sub eax, [.client.top] + add ebx, eax + + set edi, TGrid:PosY, ebx + +.endpos: + popad + return +endp + + + +; Return: +; CF = 1: no cell on the given coordinates. +; CF = 0: a cell has been found on these coordinates. +; eax: column pointed or -1. +; edx: row pointed or -1 +; If eax = -1 then the cursor is in the row resize area for the row in edx +; if edx = -1 then the cursor is in the column resize area for the column in eax + +method TGrid.HitTest ; .x, .y +begin + pushad + + mov esi, [.self] + + mov edx, [GUI.boxBorderWidth] + sub [.x], edx + sub [.y], edx + + stdcall __SearchCoordinate, [.y], [esi+TGrid.ptrRowY], 0, [esi+TGrid._FixedRows] + jc .col_not_resize + + mov ebx, eax + + mov edi, [.x] + stdcall __SearchCoordinate, edi, [esi+TGrid.ptrColX], 0, [esi+TGrid._FixedCols] + jnc .maybe_col_resize + + add edi, [esi + TGrid._scrXY.pos] + stdcall __SearchCoordinate, edi, [esi+TGrid.ptrColX], [esi+TGrid._FixedCols], [esi+TGrid.ColCount] + jc .cell_not_found + +.maybe_col_resize: + + test [esi+TGrid._flags], gfResizeColumns + jz .col_select + + sub edx, edi + sub edi, ecx + + cmp edx, 3 + jle .col_resize + + cmp edi, 2 + jg .col_select + + dec eax + +.col_resize: + mov [esp+4*regEAX], eax + mov dword [esp+4*regEDX], -1 + + clc + popad + return + +.col_select: + cmp eax, [esi+TGrid._FixedCols] + jb .col_not_resize + + mov [esp+4*regEAX], eax + mov [esp+4*regEDX], ebx + + clc + popad + return + +.cell_not_found: + stc + popad + return + +; the Y coordinate is not on the fixed rows, so it is either row resize or simple data cell selection. + +.col_not_resize: + + stdcall __SearchCoordinate, [.x], [esi+TGrid.ptrColX], 0, [esi+TGrid._FixedCols] + jc .select_data_cell + + mov ebx, eax + + mov edi, [.y] + stdcall __SearchCoordinate, edi, [esi+TGrid.ptrRowY], 0, [esi+TGrid._FixedRows] + jnc .maybe_row_resize + + add edi, [esi + TGrid._scrXY.pos + 4] + stdcall __SearchCoordinate, edi, [esi+TGrid.ptrRowY], [esi+TGrid._FixedRows], [esi+TGrid.RowCount] + jc .cell_not_found + +.maybe_row_resize: + test [esi+TGrid._flags], gfResizeRows + jz .row_select + + sub edx, edi + sub edi, ecx + + cmp edx, 3 + jle .row_resize + + cmp edi, 2 + jg .row_select + + dec eax + +.row_resize: + mov [esp+4*regEDX], eax + mov dword [esp+4*regEAX], -1 + clc + popad + return + + +.select_data_cell: + mov edi, [.x] + add edi, [esi + TGrid._scrXY.pos] + stdcall __SearchCoordinate, edi, [esi+TGrid.ptrColX], [esi+TGrid._FixedCols], [esi+TGrid.ColCount] + jc .cell_not_found + + mov ebx, eax + + mov edi, [.y] + add edi, [esi + TGrid._scrXY.pos + 4] + stdcall __SearchCoordinate, edi, [esi+TGrid.ptrRowY], [esi+TGrid._FixedRows], [esi+TGrid.RowCount] + jc .cell_not_found + +.row_select: + mov [esp+4*regEAX], ebx + mov [esp+4*regEDX], eax + clc + popad + return + + +endp + + + + + + +method TGrid.GetCellXY ;, .Col, .Row +begin + push esi + + mov esi, [.self] + mov eax, [.Col] + mov edx, [.Row] + shl eax, 2 + shl edx, 2 + add eax, [esi+TGrid.ptrColX] + add edx, [esi+TGrid.ptrRowY] + mov eax, [eax] + mov edx, [edx] + + pop esi + return +endp + + + +method TGrid.SetCounts ;, .ColCount, .RowCount +.ycount dd ? +.ptrNewColX dd ? +.ptrNewRowY dd ? +begin + pushad + + mov [.ptrNewColX], 0 + mov [.ptrNewRowY], 0 + mov ebx, [.self] + +; resize column coordinates array... + mov eax, [ebx+TGrid.ptrColX] + mov [.ptrNewColX], eax + + mov eax, [.ColCount] + cmp eax, [ebx+TGrid.ColCount] + je .resizey + + mov eax, [.ColCount] + lea eax, [4*eax+4] ; byte size of the array. + stdcall ResizeMem, [ebx+TGrid.ptrColX], eax + mov [.ptrNewColX], eax + test eax, eax + jz .finish + + mov edi, eax + + mov ecx, [ebx+TGrid.ColCount] + cmp ecx, [.ColCount] + jge .resizey + + mov eax, [edi+4*ecx] + +.newsizesx: + inc ecx + cmp ecx, [.ColCount] + jg .resizey + + add eax, [ebx+TGrid.ColWidth] + mov [edi+4*ecx], eax + jmp .newsizesx + +.resizey: +; resize row coordinates array... + mov eax, [ebx+TGrid.ptrRowY] + mov [.ptrNewRowY], eax + + mov eax, [.RowCount] + cmp eax, [ebx+TGrid.RowCount] + je .finish + + mov eax, [.RowCount] + lea eax, [4*eax+4] ; byte size of the array. + stdcall ResizeMem,[ebx+TGrid.ptrRowY], eax + mov [.ptrNewRowY], eax + test eax, eax + jz .finish + + mov edi, eax + + mov ecx, [ebx+TGrid.RowCount] + cmp ecx, [.RowCount] + jg .finish + + mov eax, [edi+4*ecx] + +.newsizesy: + inc ecx + cmp ecx, [.RowCount] + jg .finish + + add eax, [ebx+TGrid.RowHeight] + mov [edi+4*ecx], eax + jmp .newsizesy + +.finish: + xor eax, eax + cmp eax, [.ptrNewColX] + je .error1 + cmp eax, [.ptrNewRowY] + je .error2 + + mov ecx, [.RowCount] + mov edx, [.ColCount] + mov [ebx+TGrid.RowCount], ecx + mov [ebx+TGrid.ColCount], edx + + mov ecx, [.ptrNewColX] + mov edx, [.ptrNewRowY] + mov [ebx+TGrid.ptrColX], ecx + mov [ebx+TGrid.ptrRowY], edx + + exec ebx, TGrid:__AdjustScrollbars + + clc + popad + return + +.error2: + stdcall FreeMem, [.ptrNewColX] + +.error1: + stc + popad + return +endp + + +method TGrid.SetColWidth;, .Col, .Width +begin + pushad + mov edi, [.self] + mov eax, [edi+TGrid.ptrColX] + mov ecx, [.Col] + + lea eax, [eax+4*ecx+4] + + mov edx, [.Width] + sub ecx, [edi+TGrid.ColCount] + jge .finish ; error, the index is greater than count. + + sub edx, [eax] + neg ecx + add edx, [eax-4] + +.loop: + add [eax], edx + lea eax, [eax+4] + loop .loop + + exec edi, TGrid:__AdjustScrollbars + +.finish: + popad + return +endp + + + +method TGrid.SetColumnsWidth ;, .BegCol, .EndCol, .Width +begin + pushad + + mov edi, [.self] + mov ebx, [.BegCol] + cmp ebx, [edi+TGrid.ColCount] + jae .endloop + + mov eax, [edi+TGrid.ColCount] + cmp [.EndCol], eax + jl .do_resize + + dec eax + mov [.EndCol], eax + +.do_resize: + mov esi, [edi+TGrid.ptrColX] + mov ecx, [esi+4*ebx] ; the start X coordinate. + +.loop: + add ecx, [.Width] + inc ebx + cmp ebx, [.EndCol] + ja .endloop + + mov [esi+4*ebx], ecx + jmp .loop + +.endloop: + sub ecx, [esi+4*ebx] ; the delta. + +.loop2: + cmp ebx, [edi+TGrid.ColCount] + ja .endloop2 + + add [esi+4*ebx], ecx + inc ebx + jmp .loop2 + +.endloop2: + + exec edi, TGrid:__AdjustScrollbars + + popad + return +endp + + + +method TGrid.SetRowHeight ;, .Row, .Height +begin + pushad + mov edi, [.self] + mov eax, [edi+TGrid.ptrRowY] + mov ecx, [.Row] + + lea eax, [eax+4*ecx+4] + + mov edx, [.Height] + sub ecx, [edi+TGrid.RowCount] + jge .finish ; error, the index is greater than count. + + sub edx, [eax] + neg ecx + add edx, [eax-4] + +.loop: + add [eax], edx + lea eax, [eax+4] + loop .loop + + exec edi, TGrid:__AdjustScrollbars + +.finish: + popad + return +endp + + + +method TGrid.SetRowsHeight ;.BegRow, .EndRow, .Height +begin + pushad + + mov edi, [.self] + mov ebx, [.BegRow] + cmp ebx, [edi+TGrid.RowCount] + jae .endloop + + mov eax, [edi+TGrid.RowCount] + cmp [.EndRow], eax + jl .do_resize + + dec eax + mov [.EndRow], eax + +.do_resize: + mov esi, [edi+TGrid.ptrRowY] + mov ecx, [esi+4*ebx] ; the start Y coordinate. + +.loop: + add ecx, [.Height] + inc ebx + cmp ebx, [.EndRow] + ja .endloop + + mov [esi+4*ebx], ecx + jmp .loop + +.endloop: + sub ecx, [esi+4*ebx] ; the delta. + +.loop2: + cmp ebx, [edi+TGrid.RowCount] + ja .endloop2 + + add [esi+4*ebx], ecx + inc ebx + jmp .loop2 + +.endloop2: + + exec edi, TGrid:__AdjustScrollbars + + popad + return +endp + + + +; Arguments: +; .x : some coordinate. +; .xarray: array or dword with coordinates of the cells. +; .from: the count of the array. It contains N+1 elements where N is the number of cells in the table. +; .to: from which cell to search. +; returns: +; eax - the index of the cell where the coordinate is located. +; ecx - the left coordinate of the cell. +; edx - the right coordinate of the cell+1 (the left coordinate of the next cell). + +proc __SearchCoordinate, .x, .xarray, .from, .to +begin + pushad + + mov esi, [.xarray] + mov eax, [.from] ; left + mov edx, [.to] ; right + + cmp eax, edx + jge .not_found + + mov ebx, [.x] + cmp ebx, [esi+4*eax] + jl .not_found ; it is less than the first element. + + cmp ebx, [esi+4*edx] + jge .not_found ; it is greater than the last column. + +; binary search between + +.loop: + cmp eax, edx + je .found + + lea ecx, [eax+edx] + shr ecx, 1 + + cmp ebx, [esi+4*ecx] + cmovl edx, ecx + jl .loop + + cmp ebx, [esi+4*ecx+4] + cmovge eax, ecx + jge .loop + +.found: + mov [esp+4*regEAX], ecx ; the index of the + mov eax, [esi+4*ecx] + mov edx, [esi+4*ecx+4] + mov [esp+4*regECX], eax + mov [esp+4*regEDX], edx + clc + popad + return + +.not_found: + stc + popad + return +endp + + + +;------------------------------------------------------------------------ +; TGrid private methods. +; These functions are for internal use. Don't call them outside TGrid +; control. +;------------------------------------------------------------------------ + +;--------------------------------------------------------- +; Auto adjusts the scrollbars +;--------------------------------------------------------- + +sbHorz = 0 +sbVert = 1 + +method TGrid.__AdjustScrollbars +begin + pushad + + mov ebx, [.self] + get eax, ebx, TGrid:height + get ecx, ebx, TGrid:width + + mov edx, [GUI.boxBorderWidth] + neg edx + + lea eax, [eax+2*edx] + lea ecx, [ecx+2*edx] + + exec ebx, TGrid:__AdjustOneScroller, sbVert, [ebx+TGrid.ptrRowY], [ebx+TGrid.RowCount], [ebx+TGrid._FixedRows], eax, [ebx+TGrid.RowHeight] + exec ebx, TGrid:__AdjustOneScroller, sbHorz, [ebx+TGrid.ptrColX], [ebx+TGrid.ColCount], [ebx+TGrid._FixedCols], ecx, [ebx+TGrid.ColWidth] + + popad + return +endp + + +method TGrid.__AdjustOneScroller ;, .kind, .ptrArray, .Count, .Fixed, .client, .meansize +begin + pushad + + mov ebx, [.self] + + mov esi, [.ptrArray] + test esi, esi + jz .finish + + mov ecx, [.Count] + mov edx, [.Fixed] + + mov ecx, [esi+4*ecx] ; total height of all cells + mov eax, [esi+4*edx] ; height of the fixed cells + + mov edx, [.client] + sub edx, eax + jge @f + xor edx, edx +@@: + + sub ecx, eax + sub ecx, edx + jns @f + xor ecx, ecx +@@: + cmp [.kind], sbHorz + jne .vert + +; horizonal + get eax, ebx, TGrid:PosX + cmp eax, ecx + cmova eax, ecx + + set ebx, TGrid:PosX, eax + set ebx, TGrid:MaxX, ecx + set ebx, TGrid:PageX, edx + +.finish: + popad + return + +.vert: + get eax, ebx, TGrid:PosY + cmp eax, ecx + cmova eax, ecx + + set ebx, TGrid:PosY, eax + set ebx, TGrid:MaxY, ecx + set ebx, TGrid:PageY, edx + jmp .finish + +endp + + + + +method TGrid.EventFocusIn +begin + push eax + mov eax, [.self] + and [eax+TGrid._canvas_valid], 0 + exec eax, TGrid:RectChanged2, 0 + pop eax + inherited + return +endp + + +method TGrid.EventFocusOut +begin + push eax + mov eax, [.self] + and [eax+TGrid._canvas_valid], 0 + exec eax, TGrid:RectChanged2, 0 + pop eax + inherited + return +endp + + +endmodule + + + ADDED freshlib/gui/TImageLabel.asm Index: freshlib/gui/TImageLabel.asm ================================================================== --- /dev/null +++ freshlib/gui/TImageLabel.asm @@ -0,0 +1,141 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TImageLabel object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Represents GUI picture or image. +;_________________________________________________________________________________________ +module "TImageLabel library" + + +iaLeft = 0 +iaRight = 1 +iaCenter = 2 +iaStretchH = 3 + +iaTop = $0 +iaBottom = $100 +iaMiddle = $200 +iaStrechV = $300 + + +object TImageLabel, TCanvasWindow + ._ImageAlign dd ? + ._Image dd ? + + param .ImageAlign, ._ImageAlign, .SetImageAlign ; image align flags. + param .Image, ._Image, .SetImage ; TImage object + + method .SetImageAlign, .value + method .SetImage, .value + + method .__RenderView +endobj + + +method TImageLabel.SetImageAlign +begin + push eax + + mov eax, [.self] + push [.value] + pop [eax+TImageLabel._ImageAlign] + + and [eax+TImageLabel._canvas_valid], 0 + exec [.self], TWindow:RectChanged2, 0 + pop eax + return +endp + + + +method TImageLabel.SetImage +begin + push eax + + mov eax, [.self] + push [.value] + pop [eax+TImageLabel._Image] + + and [eax+TImageLabel._canvas_valid], 0 + exec [.self], TWindow:RectChanged2, 0 + pop eax + return +endp + + + +method TImageLabel.__RenderView +begin + pushad + + mov esi, [.self] + mov edi, [esi+TImageLabel._canvas] + test edi, edi + jz .finish + + mov ecx, [esi+TImageLabel._width] + mov edx, [esi+TImageLabel._height] + xor eax, eax + + stdcall DrawSolidRect, edi, eax, eax, ecx, edx, eax ; clear with transparency. + + mov eax, [esi+TImageLabel._ImageAlign] + mov esi, [esi+TImageLabel._Image] + + test esi, esi + jz .finish + + sub ecx, [esi+TImage.width] + sub edx, [esi+TImage.height] + + cmp al, iaRight + je .x_ok + + cmp al, iaCenter + je .x_center + + xor ecx, ecx + jmp .x_ok + +.x_center: + sar ecx, 1 + +.x_ok: + cmp ah, iaBottom /256 + je .y_ok + + cmp ah, iaMiddle / 256 + je .y_center + + xor edx, edx + jmp .y_ok + +.y_center: + sar edx, 1 + +.y_ok: + + xor eax, eax +; stdcall BlendImage, edi, ecx, edx, esi, eax, eax, [esi+TImage.width], [esi+TImage.height] + stdcall CopyImageRect, edi, ecx, edx, esi, eax, eax, [esi+TImage.width], [esi+TImage.height] + +.finish: + popad + inherited + return +endp + + + + + + + +endmodule ADDED freshlib/gui/TLabel.asm Index: freshlib/gui/TLabel.asm ================================================================== --- /dev/null +++ freshlib/gui/TLabel.asm @@ -0,0 +1,165 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TLabel object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Not finished. +;_________________________________________________________________________________________ +module "TLabel library" + + + +object TLabel, TCanvasWindow + +; private fields + ._textalign dd ? + ._textcolor dd ? + ._background dd ? + ._default_colors dd ? + +; parameters + param .TextAlign, ._textalign, .SetTextAlign ; text align flags. + param .Color, ._textcolor, .SetColor:2 + param .Background, ._background, .SetColor:2 + param .fDefaultColors, ._default_colors, ._default_colors + +; parameter methods + method .SetColor, .param, .value + method .SetTextAlign, .value + method .SetCaption, .value + +; other methods + method .Create, .parent + + method .__RenderView + +endobj + + + +method TLabel.Create +begin + push eax + + inherited [.parent] + + mov eax, [.self] + mov [eax+TLabel._textalign], dtfAlignLeft or dtfAlignMiddle or dtfCRLF or dtfWordWrap + mov [eax+TLabel._default_colors], 1 + + pop eax + return +endp + + + +method TLabel.SetTextAlign +begin + push eax ecx + + mov eax, [.self] + mov ecx, [.value] + + xchg ecx, [eax+TLabel._textalign] + cmp ecx, [eax+TLabel._textalign] + je .finish + + xor ecx, ecx + and [eax+TLabel._canvas_valid], ecx + exec eax, TWindow:RectChanged2, ecx + +.finish: + pop ecx eax + return +endp + + + +method TLabel.SetColor +begin + push eax ebx ecx + + mov eax, [.param] + mov ebx, [.self] + mov ecx, [.value] + + sub eax, TLabel.Color + + xchg ecx, [ebx+TLabel._textcolor+4*eax] + cmp ecx, [ebx+TLabel._textcolor+4*eax] + je .finish + + xor ecx, ecx + and [ebx+TLabel._canvas_valid], ecx + exec ebx, TWindow:RectChanged2, ecx + +.finish: + pop ecx ebx eax + return +endp + + + + +method TLabel.SetCaption ;, .value +begin + inherited [.value] + + push eax + mov eax, [.self] + and [eax+TLabel._canvas_valid], 0 + pop eax + exec [.self], TLabel:RectChanged2, 0 + return +endp + + + +method TLabel.__RenderView + .bounds TBounds +begin + pushad + + mov esi, [.self] + mov edi, [esi+TLabel._canvas] + test edi, edi + jz .finish + + xor edx, edx + mov ecx, [esi+TLabel._width] + mov eax, [esi+TLabel._height] + mov [.bounds.x], edx + mov [.bounds.y], edx + mov [.bounds.width], ecx + mov [.bounds.height], eax + + cmp [esi+TLabel._default_colors], 0 + cmove ecx, [esi+TLabel._background] + cmove edx, [esi+TLabel._textcolor] + cmovne ecx, [GUI.clLabelBk] + cmovne edx, [GUI.clLabelTxt] + + lea eax, [.bounds] + stdcall [DrawBox], edi, eax, ecx, bxNone, [GUI.boxBorderWidth] + + get eax, esi, TWindow:Caption + test eax, eax + jz .finish + + stdcall DrawTextBox, edi, eax, [.bounds.x], [.bounds.y], [.bounds.width], [.bounds.height], 2, [esi+TLabel._textalign], [GUI.DefaultFont], edx + stdcall StrDel, eax + +.finish: + popad + return +endp + + + +endmodule ADDED freshlib/gui/TListView.asm Index: freshlib/gui/TListView.asm ================================================================== --- /dev/null +++ freshlib/gui/TListView.asm @@ -0,0 +1,842 @@ + + +struct TLvItem + .captions dd ? ; pointer to TArray of dword with strings for the item and subitems. + .icon dd ? ; index into ._img_icons + .data dd ? ; user data, attached to the item. + dd ? ; + + .shift = 4 +ends + + +lvsTiles = 0 +lvsList = 1 +lvsDetails = 2 + + +object TListView, TGrid + + ._img_icons dd ? + ._items dd ? ; TArray of TLvItem elements. + ._style dd ? + ._headers dd ? ; TArray of dword with strings, captions of the header. + + param .Icons, ._img_icons, .SetIcons + param .Style, ._style, .SetStyle + param .Items, ._items, NONE + + method .Destroy + + method .Resize, .newWidth, .newHeight + + method .GetItem, .index ; returns pointer to TLvItem + + method .SetIcons, .value + method .SetStyle, .value + method .SetVisible, .value + + method .DrawCell, .canvas, .ptrRect, .Col, .Row + + method .InsertItem, .index, .caption, .icon, .data + method .AddSubItem, .iItem, .strSubitem + method .RemoveItem, .iItem + method .Clear + method .Sort, .icolumn + + method .AddHeader, .hString + method .ClearHeaders + + method .ArangeItems + +endobj + + +interface TListView.OnFocusChange, .pListView, .x, .y, .fFocused + + +method TListView.Destroy +begin + push eax + get eax, [.self], TListView:Icons + stdcall DestroyImage, eax + + exec [.self], TListView:Clear + exec [.self], TListView:ClearHeaders + + pop eax + inherited + return +endp + + +method TListView.Resize +begin + inherited [.newWidth], [.newHeight] + exec [.self], TListView:ArangeItems + return +endp + + + +method TListView.AddHeader ; .hString +begin + pushad + mov esi, [.self] + mov edx, [esi+TListView._headers] + test edx, edx + jnz .array_ok + + stdcall CreateArray, 4 + mov edx, eax + +.array_ok: + stdcall AddArrayItems, edx, 1 + mov [esi+TListView._headers], edx + mov edx, eax + + stdcall StrDup, [.hString] + mov [edx], eax + + popad + return +endp + + + +method TListView.ClearHeaders +begin + push eax edx + mov edx, [.self] + xor eax, eax + xchg eax, [edx+TListView._headers] + + stdcall ListFree, eax, StrDel + pop edx eax + return +endp + + + +method TListView.GetItem ; .index +begin + pushad + mov esi, [.self] + get ebx, esi, TListView:Items + test ebx, ebx + jz .notfound + + mov ecx, [.index] + + cmp ecx, [ebx+TArray.count] + jae .notfound + + shl ecx, TLvItem.shift + lea eax, [ebx+TArray.array+ecx] + mov [esp+4*regEAX], eax + + clc + popad + return + +.notfound: + stc + popad + return +endp + + + +method TListView.SetIcons ; .value +begin + push esi eax + mov esi, [.self] + + stdcall CreateImagePNG, [.value], -1 + jc .finish + + xchg eax, [esi+TListView._img_icons] + stdcall DestroyImage, eax + + xor eax, eax + and [esi+TListView._canvas_valid], eax + exec esi, TListView:RectChanged2, eax + +.finish: + pop eax esi + return +endp + + + + +method TListView.SetStyle ; .value +begin + pushad + mov esi, [.self] + + mov eax, [.value] + xchg eax, [esi+TListView._style] + cmp eax, [esi+TListView._style] + je .finish + + exec [.self], TListView:ArangeItems + exec [.self], TListView:ForceRefresh + +.finish: + popad + return +endp + + +method TListView.SetVisible +begin + inherited [.value] + + cmp [.value], 0 + je .finish + + push eax esi + mov esi, [.self] + + exec esi, TListView:ArangeItems + + xor eax, eax + mov [esi+TListView._canvas_valid], eax + exec esi, TListView:RectChanged2, eax + pop esi eax + +.finish: + return +endp + + + +method TListView.DrawCell ; .canvas, .ptrRect, .Col, .Row +.sel RECT +begin + pushad + + mov edx, [.self] + + mov ecx, cellFixed + mov esi, [.Col] + mov edi, [.Row] + cmp esi, [edx+TListView._FixedCols] + jl .status_ok + cmp edi, [edx+TListView._FixedRows] + jl .status_ok + + cmp edi, [edx+TListView._focused.y] + jne .is_selected + + test [edx+TListView._flags], gfRowFocus + jnz .focused + + cmp esi, [edx+TListView._focused.x] + jne .is_selected + +.focused: + mov ecx, cellFocused + cmp edx, [__FocusedWindow] + je .status_ok + + mov ecx, cellFocused2 + jmp .status_ok + +.is_selected: + lea ecx, [edx+TListView.selection] + lea eax, [.sel] + stdcall RectCopy, eax, ecx + stdcall RectSort, eax + inc [eax+RECT.right] + inc [eax+RECT.bottom] + + mov ecx, cellSelected + stdcall PointInRect, eax, esi, edi + jc .status_ok + + mov ecx, cellRegular + +.status_ok: + mov eax, [edx+TListView._style] + and eax, 3 ;(0..3) + + mov ebx, [.Row] + sub ebx, [edx+TListView._FixedRows] + cmovl ebx, [edx+TListView._headers] + jl .drawit + + mov edi, [edx+TListView._items] + test edi, edi + jz .finish + + cmp ebx, [edi+TArray.count] + jae .finish + + shl ebx, TLvItem.shift + lea ebx, [edi+ebx+TArray.array] + +.drawit: + get edx, edx, TListView:Font + test edx, edx + cmovz edx, [GUI.DefaultFont] + stdcall [__lv_draw_proc+4*eax], [.canvas], [.ptrRect], ebx, [.Col], ecx, edx ; ebx can be pointer to TLvItem or string handle. + +.finish: + popad + return +endp + + + +method TListView.Clear +begin + pushad + + mov esi, [.self] + + xor edx, edx + xchg edx, [esi+TListView._items] + + test edx, edx + jz .finish + + mov ecx, [edx+TArray.count] + lea edi, [edx+TArray.array] + +.loop: + dec ecx + js .free_array + + stdcall ListFree, [edi+TLvItem.captions], StrDel + add edi, sizeof.TLvItem + jmp .loop + +.free_array: + stdcall FreeMem, edx + + or eax, -1 + mov [esi+TListView._focused.x], eax + mov [esi+TListView._focused.y], eax + mov [esi+TListView.selection.left], eax + mov [esi+TListView.selection.top], eax + mov [esi+TListView.selection.right], eax + mov [esi+TListView.selection.bottom], eax + + xor eax, eax + mov [esi+TListView._canvas_valid], eax + mov [esi+TListView.ColCount], eax + mov [esi+TListView.RowCount], eax + + exec esi, TListView:RectChanged2, eax + +.finish: + popad + return +endp + + + +; In success returns: +; eax - the index of the element inserted. It can differs from the [.index] argument. +; edx - a pointer to the TLvItem inserted. + +method TListView.InsertItem ; .index, .caption, .icon, .data +begin + pushad + mov esi, [.self] + mov edx, [esi+TListView._items] + + test edx, edx + jnz @f + stdcall CreateArray, sizeof.TLvItem + jc .finish + mov edx, eax +@@: + + stdcall InsertArrayItems, edx, [.index], 1 + jc .finish + + mov [esi+TListView._items], edx + mov edi, eax + + stdcall CreateArray, 4 + stdcall AddArrayItems, eax, 1 + mov [edi+TLvItem.captions], edx + mov edx, eax + + stdcall StrDup, [.caption] + mov [edx], eax + + mov eax, [.icon] + mov ecx, [.data] + mov [edi+TLvItem.icon], eax + mov [edi+TLvItem.data], ecx + + cmp [esi+TListView._visible], FALSE + je .return + + exec esi, TListView:ArangeItems + + xor eax, eax + mov [esi+TListView._canvas_valid], eax + exec esi, TListView:RectChanged2, eax + +.return: + mov [esp+4*regEDX], edi ; + + mov eax, [esi+TListView._items] + lea eax, [eax+TArray.array] + sub edi, eax + shr edi, TLvItem.shift ; the index of the inserted element + mov [esp+4*regEAX], edi + + clc + +.finish: + popad + return +endp + + + +method TListView.AddSubItem ; .iItem, .strSubitem +begin + pushad + + mov esi, [.self] + mov edi, [esi+TListView._items] + mov ecx, [.iItem] + cmp ecx, [edi+TArray.count] + jae .error + + shl ecx, TLvItem.shift + lea edi, [edi + TArray.array + ecx] + + mov edx, [edi+TLvItem.captions] + stdcall AddArrayItems, edx, 1 + jc .error + + mov [edi+TLvItem.captions], edx + mov edx, eax + + stdcall StrDup, [.strSubitem] + mov [edx], eax + + clc + popad + return + +.error: + stc + popad + return +endp + + + + +method TListView.RemoveItem +begin + pushad + mov esi, [.self] + + mov edi, [esi+TListView._items] + mov ecx, [.iItem] + cmp ecx, [edi+TArray.count] + jae .error + + shl ecx, TLvItem.shift + lea ebx, [edi + TArray.array + ecx] + + stdcall ListFree, [ebx+TLvItem.captions], StrDel + stdcall DeleteArrayItems, edi, [.iItem], 1 + mov [esi+TListView._items], edx + + mov eax, [esi+TListView._focused.y] + cmp eax, [edx+TArray.count] + cmova eax, [edx+TArray.count] + mov [esi+TListView._focused.y], eax + + exec esi, TListView:ArangeItems + + xor eax, eax + mov [esi+TListView._canvas_valid], eax + exec esi, TListView:RectChanged2, eax + + clc + popad + return + +.error: + stc + popad + return +endp + + + + +method TListView.ArangeItems +begin + push eax + mov eax, [.self] + + mov eax, [eax+TListView._style] + and eax, 3 ;(0..3) + + stdcall [__lv_count_proc+4*eax], [.self] + + pop eax + return +endp + + +iglobal + if used __lv_count_proc + __lv_count_proc dd __LVTileCount, __LVListCount, __LVDetailsCount, 0 + end if + + if used __lv_draw_proc + __lv_draw_proc dd __LVTileDraw, __LVListDraw, __LVDetailsDraw, 0 + end if +endg + + +proc __LVTileCount, .self +begin + + return +endp + + + +proc __LVListCount, .self +begin + pushad + + stdcall GetFontMetrics, [GUI.DefaultFont] + mov ebx, eax + + mov esi, [.self] + + xor ecx, ecx + mov edx, [esi+TListView._items] + test edx, edx + jz .set_count + + mov ecx, [edx+TArray.count] + +.set_count: + exec esi, TListView:SetCounts, 1, ecx + + get eax, esi, TListView:width + sub eax, [GUI.boxBorderWidth] + sub eax, [GUI.boxBorderWidth] + exec esi, TListView:SetColWidth, 0, eax + + test ecx, ecx + jz .finish + +; height: + lea edi, [edx+TArray.array] + +.loop: + dec ecx + js .end_loop + + mov eax, [edi+TLvItem.icon] + test eax, eax + jz .next + + cmp ebx, [eax+TImage.height] + cmovb ebx, [eax+TImage.height] + +.next: + add edi, sizeof.TLvItem + jmp .loop + +.end_loop: + add ebx, [GUI.lvIconMargin] + add ebx, [GUI.lvIconMargin] + + mov [esi+TListView.RowHeight], ebx + set esi, TListView:StepY, ebx + + mov eax, [edx+TArray.count] + dec eax + exec esi, TListView:SetRowsHeight, 0, eax, ebx + +.finish: + popad + return +endp + + + + +proc __LVDetailsCount, .self +begin + pushad + + stdcall GetFontMetrics, [GUI.DefaultFont] + mov ebx, eax + + mov esi, [.self] + + xor edi, edi ; columns count + inc edi + mov edx, [esi+TListView._headers] + test edx, edx + jz .columns_ok + + mov edi, [edx+TArray.count] + test edi, edi + jnz .columns_ok + + inc edi + +.columns_ok: + xor ecx, ecx + mov edx, [esi+TListView._items] + test edx, edx + jz .set_count + + mov ecx, [edx+TArray.count] + +.set_count: + push edx + + get eax, esi, TListView:width + sub eax, [GUI.boxBorderWidth] + sub eax, [GUI.boxBorderWidth] + + sar eax, 1 + xor edx, edx + + dec edi + jz @f + div edi ; column_count-1 +@@: + inc edi + pop edx + + mov [esi+TListView.ColWidth], eax + set esi, TListView:StepX, eax + + add ecx, [esi+TListView._FixedRows] + exec esi, TListView:SetCounts, edi, ecx + + dec edi + exec esi, TListView:SetColumnsWidth, 0, edi, [esi+TListView.ColWidth] + + imul edi, [esi+TListView.ColWidth] + + get eax, esi, TListView:width + sub eax, [GUI.boxBorderWidth] + sub eax, [GUI.boxBorderWidth] + + sub eax, edi + exec esi, TListView:SetColWidth, 0, eax + + cmp ecx, 1 + jbe .finish + +;.height: + lea edi, [edx+TArray.array] + +.loop: + dec ecx + jz .end_loop + + mov eax, [edi+TLvItem.icon] + test eax, eax + jz .next + + cmp ebx, [eax+TImage.height] + cmovb ebx, [eax+TImage.height] + +.next: + add edi, sizeof.TLvItem + jmp .loop + +.end_loop: + mov eax, [GUI.lvIconMargin] + lea ebx, [ebx+2*eax] + + mov [esi+TListView.RowHeight], ebx + set esi, TListView:StepY, ebx + + mov eax, [edx+TArray.count] + dec eax + exec esi, TListView:SetRowsHeight, 0, eax, ebx + +.finish: + popad + return +endp + + + + +proc __LVTileDraw, .canvas, .ptrRect, .pItem, .iSubitem, .sel, .font +begin + return +endp + + + +proc __LVListDraw, .canvas, .ptrRect, .pItem, .iSubitem, .sel, .font +begin + + pushad + + mov esi, [.pItem] + mov edi, [.ptrRect] + mov ecx, [edi+RECT.left] + mov edx, [edi+RECT.top] + mov ebx, [esi+TLvItem.icon] + test ebx, ebx + jz .icon_ok + + mov eax, [edi+RECT.bottom] + sub eax, [edi+RECT.top] + stdcall DrawSolidRect, [.canvas], ecx, edx, [ebx+TImage.wrapW], eax, [GUI.clGridCellBk] + + mov eax, ecx + add eax, [GUI.lvIconMargin] + add edx, [GUI.lvIconMargin] + + stdcall BlendImage, [.canvas], eax, edx, ebx, 0, 0, [ebx+TImage.wrapW], [ebx+TImage.wrapH] + + add ecx, [ebx+TImage.wrapW] + add ecx, [GUI.lvIconMargin] + +.icon_ok: + add ecx, [GUI.lvIconMargin] + mov eax, [edi+RECT.right] + mov edx, [edi+RECT.bottom] + + sub eax, ecx + sub edx, [edi+RECT.top] + + mov ebx, [.sel] + mov esi, [esi+TLvItem.captions] + stdcall DrawTextBox, [.canvas], [esi+TArray.array], ecx, [edi+RECT.top], eax, edx, 0, dtfAlignLeft or dtfSingleLine or dtfAlignMiddle, [GUI.DefaultFont], [GUI.clGridCellTxt + 4*ebx] + popad + return +endp + + + +proc __LVDetailsDraw, .canvas, .ptrRect, .pItem, .iSubitem, .sel, .font +.draw_flags dd ? +begin + pushad + + mov esi, [.pItem] + mov edi, [.ptrRect] + + mov [.draw_flags], dtfAlignCenter or dtfSingleLine or dtfAlignMiddle + + mov eax, [edi+RECT.left] + mov ecx, eax + + cmp [.sel], cellFixed + je .draw_text_from_array ; in this case, pItem is an array with the header strings. + + mov [.draw_flags], dtfAlignLeft or dtfSingleLine or dtfAlignMiddle + + cmp [.iSubitem], 0 + je .draw_icon + + mov [.draw_flags], dtfAlignLeft or dtfSingleLine or dtfAlignMiddle + jmp .icon_ok + +.draw_icon: + mov edx, [edi+RECT.top] + mov ebx, [esi+TLvItem.icon] + test ebx, ebx + jz .icon_ok + + add eax, [GUI.lvIconMargin] + add edx, [GUI.lvIconMargin] + + stdcall BlendSolidRect, [.canvas], eax, edx, [ebx+TImage.wrapW], [ebx+TImage.wrapH], $c0ffffff;[GUI.clGridCellBk] + stdcall BlendImage, [.canvas], eax, edx, ebx, 0, 0, [ebx+TImage.wrapW], [ebx+TImage.wrapH] + + add ecx, [ebx+TImage.wrapW] + add ecx, [GUI.lvIconMargin] + +.icon_ok: + add ecx, [GUI.lvIconMargin] + mov esi, [esi+TLvItem.captions] + +.draw_text_from_array: + test esi, esi + jz .finish + + mov eax, [.iSubitem] + cmp eax, [esi+TArray.count] + jae .finish + + mov esi, [esi+TArray.array+4*eax] ; string handle of the cell content. + + mov eax, [edi+RECT.right] + mov edx, [edi+RECT.bottom] + + sub eax, ecx + sub eax, [GUI.lvIconMargin] + sub eax, [GUI.lvIconMargin] + sub edx, [edi+RECT.top] + + mov ebx, [.sel] + stdcall DrawTextBox, [.canvas], esi, ecx, [edi+RECT.top], eax, edx, 0, [.draw_flags], [.font], [GUI.clGridCellTxt + 4*ebx] + +.finish: + popad + return +endp + + + + + + +method TListView.Sort +begin + push eax + + mov eax, [.self] + cmp [eax+TListView._items], 0 + je .finish + + stdcall SortArray, [eax+TListView._items], __CompareLvItems, [.icolumn] + exec eax, TListView:ForceRefresh + +.finish: + pop eax + return +endp + + + +proc __CompareLvItems as CompareProc +begin + pushad + + mov esi, [.pElement1] + mov edi, [.pElement2] + + mov ebx, [esi+TLvItem.captions] + mov edx, [edi+TLvItem.captions] + + mov ecx, [.param] + + stdcall StrCompSort2, [ebx+TArray.array+4*ecx], [edx+TArray.array+4*ecx], FALSE + shl eax, 1 + + popad + return +endp ADDED freshlib/gui/TMenu.asm Index: freshlib/gui/TMenu.asm ================================================================== --- /dev/null +++ freshlib/gui/TMenu.asm @@ -0,0 +1,1628 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TMenu object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Represents main menu or popup menu objects. +;_________________________________________________________________________________________ +module "TMenu library" + +; menu item types for the menu templates. + +mitSeparator = 0 +mitAction = 1 +mitSubmenu = 2 +mitString = 3 ; contains simple text string can't have accelerator and icons. + + + +struct TMenuItem + .type dd ? + .item dd ? ; different for the different types of items: NULL, pointer to TAction, pointer to TMenu, handle of string. + .itemID dd ? ; user assigned ID + .height dd ? +ends + + +mitEnd = $80 + + +macro MenuTemplate name { + + macro action actvar, id \{ + \local ..sz, ..beg + ..beg = $ + db ..sz + db mitAction + dd actvar + if ~id eq + dd id + else + dd 0 + end if + ..sz = $-..beg + \} + + macro submenu text, id \{ + \local ..sz, ..beg, ..lbl + ..beg = $ + db ..sz + db mitSubmenu + if ~id eq + dd id + else + dd 0 + end if + ..lbl db text, 0 + ..sz = $-..beg + \} + + macro text txt, id \{ + \local ..sz, ..beg, ..lbl + ..beg = $ + db ..sz + db mitString + if ~id eq + dd id + else + dd 0 + end if + ..lbl db txt, 0 + ..sz = $-..beg + \} + + macro separator \{ + db 2 + db mitSeparator + \} + + macro endsub \{ + db 2 + db mitEnd + \} + + label name byte +} + + +macro EndMenu { + endsub + purge action + purge submenu + purge text + purge separator + purge endsub +} + + + +object TMenu, TCanvasWindow + ._p_items dd ? + ._selected dd ? + .__caller dd ? + + .__icon_size dd ? + + ._ActiveSubmenu dd ? + + ._onstring dd ? + ._beforeshow dd ? + + param .OnString, ._onstring, ._onstring + param .BeforeShow, ._beforeshow, ._beforeshow + + param .Selected, ._selected, .SetSelected + param .Items, ._p_items, .SetItems + + method .SetSelected, .value + method .SetItems, .menu_template + method .SetVisible, .value + + method .AddItem, .Type, .Item, .itemID + method .InsertItem, .Type, .Item, .itemID, .position + method .DeleteItem, .item_index + + method .SetAction, .value + method .UpdateAction, .action + + method .__RenderView + + method .Create, .Parent + method .Destroy + + method .Show, .parent, .x, .y + + method .ExecuteItem, .iItem + method .HideAll + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventMouseMove, .x, .y, .kbdState + method .EventKeyPress, .utf8, .scancode, .kbdState + +endobj + + +interface TMenu.OnString, .self, .item +interface TMenu.BeforeShow, .self + + +method TMenu.Create +begin + inherited 0 + + stdcall CreateArray, sizeof.TMenuItem + push eax + + mov eax, [.self] + pop [eax+TMenu._p_items] + + set eax, TMenu:WantFocus, FALSE + mov [eax+TMenu._selected], -1 + + set [.self], TWindow:border, borderNone + return +endp + + +method TMenu.Destroy +begin + pushad + mov esi, [.self] + mov edx, [esi+TMenu._p_items] + mov ecx, [edx+TArray.count] + lea edx, [edx+TArray.array] + +.loop: + dec ecx + js .end_loop + + mov eax, [edx+TMenuItem.type] + + cmp eax, mitSeparator + je .next + + cmp eax, mitSubmenu + je .submenu + + cmp eax, mitAction + je .action + + cmp eax, mitString + je .string + +.next: + add edx, sizeof.TMenuItem + jmp .loop + +.submenu: + destroy [edx+TMenuItem.item] + jmp .next + +.string: + stdcall StrDel, [edx+TMenuItem.item] + jmp .next + +.action: + exec [edx+TMenuItem.item], TAction:Detach, esi + jmp .next + +.end_loop: + stdcall FreeMem, [esi+TMenu._p_items] + popad + inherited + return +endp + + + +method TMenu.SetItems +begin + pushad + + + + + popad + return +endp + + +method TMenu.AddItem +begin + pushad + + mov esi, [.self] + mov edx, [esi+TMenu._p_items] + + stdcall AddArrayItems, edx, 1 + mov [esi+TMenu._p_items], edx + + pushd [.Type] + pushd [.Item] + pushd [.itemID] + popd [eax+TMenuItem.itemID] + popd [eax+TMenuItem.item] + popd [eax+TMenuItem.type] + + mov [eax+TMenuItem.height], 10 + + cmp [eax+TMenuItem.type], mitAction + jne .action_ok + + exec [eax+TMenuItem.item], TAction:Attach, [.self] + +.action_ok: + popad + return +endp + + +method TMenu.InsertItem +begin + pushad + + mov esi, [.self] + mov edx, [esi+TMenu._p_items] + + stdcall InsertArrayItems, edx, [.position], 1 + mov [esi+TMenu._p_items], edx + + pushd [.Type] + pushd [.Item] + pushd [.itemID] + popd [eax+TMenuItem.itemID] + popd [eax+TMenuItem.item] + popd [eax+TMenuItem.type] + + mov [eax+TMenuItem.height], 10 + + cmp [eax+TMenuItem.type], mitAction + jne .action_ok + + exec [eax+TMenuItem.item], TAction:Attach, [.self] + +.action_ok: + popad + return +endp + + +method TMenu.DeleteItem +begin + pushad + + mov esi, [.self] + mov edx, [esi+TMenu._p_items] + stdcall GetArrayItem, edx, [.item_index] + jc .finish + + cmp [eax+TMenuItem.type], mitAction + jne .action_ok + + exec [eax+TMenuItem.item], TAction:Detach, esi + +.action_ok: + cmp [eax+TMenuItem.type], mitSubmenu + jne .submenu_ok + + destroy [eax+TMenuItem.item] + jmp .delete_item + +.submenu_ok: + cmp [eax+TMenuItem.type], mitString + jne .delete_item + + stdcall StrDel, [eax+TMenuItem.item] + +.delete_item: + stdcall DeleteArrayItems, edx, [.item_index], 1 + clc + +.finish: + popad + return +endp + + + + + + +; TMenu does not support actions to the menu. + +method TMenu.SetAction +begin + push eax + mov eax, [.self] + mov [eax+TMenu.__action], 0 + pop eax + return +endp + + +method TMenu.UpdateAction ; .action +begin + exec [.self], TMenu:ForceRefresh + return +endp + + + +method TMenu.SetVisible ; + +.maxW dd ? +.sumH dd ? +.str dd ? + +begin + pushad + + mov esi, [.self] + + mov eax, [.value] + cmp eax, [esi+TMenu._visible] + je .finish + + test eax, eax + jz .switch_off + + get edi, esi, TMenu:Items + + mov ecx, [edi+TArray.count] + test ecx, ecx + jnz .compute_width + + stdcall GetTextBounds, "Empty menu", 10, [GUI.DefaultFont] + add eax, 20 + jmp .set_width + + +.compute_width: +; first scan for the icon height + + lea edx, [edi+TArray.array-sizeof.TMenuItem] + mov [esi+TMenu.__icon_size], 0 + +.loop_icon: + add edx, sizeof.TMenuItem + dec ecx + js .height_ok + + cmp [edx+TMenuItem.type], mitAction + jne .loop_icon + + get eax, [edx+TMenuItem.item], TAction:Icon + test eax, eax + jz .loop_icon + + mov eax, [eax+TImage.height] + cmp eax, [esi+TMenu.__icon_size] + cmovb eax, [esi+TMenu.__icon_size] + mov [esi+TMenu.__icon_size], eax + jmp .loop_icon + +.height_ok: + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array-sizeof.TMenuItem] ; edi points to the current TMenuItem + + xor eax, eax + mov [.maxW], eax ; the width of the menu window + mov [.sumH], eax ; the total height of the menu window + +.loop: + add edi, sizeof.TMenuItem + dec ecx + js .end_width + + cmp [edi+TMenuItem.type], mitSeparator + je .separator + + cmp [edi+TMenuItem.type], mitAction + je .action + + cmp [edi+TMenuItem.type], mitSubmenu + je .submenu + +; it is string. + + stdcall StrDup, [edi+TMenuItem.item] + push eax + jmp .str_width + +.separator: + + mov edx, [GUI.menuSeparatorHeight] + jmp .set_height + +.submenu: + get eax, [edi+TMenuItem.item], TMenu:Caption + push eax + + stdcall StrCat, eax, txt " >" + jmp .str_width + + +.action: + get eax, [edi+TMenuItem.item], TAction:Accelerator + push eax + + get edx, [edi+TMenuItem.item], TAction:Caption + stdcall StrCat, eax, edx + stdcall StrDel, edx + + +.str_width: + stdcall StrPtr, eax + stdcall GetTextBounds, eax, [eax+string.len], [GUI.DefaultFont] + + stdcall StrDel ; from the stack + + cmp eax, [.maxW] + jbe .comp_height + + mov [.maxW], eax + +.comp_height: + + mov eax, [esi+TMenu.__icon_size] + add eax, [GUI.menuIconMargin] + add edx, [GUI.menuIconMargin] ; edx = height + + cmp edx, eax + cmovb edx, eax + +.set_height: + mov [edi+TMenuItem.height], edx + add [.sumH], edx + + jmp .loop + +.end_width: + +; here compute the size of the menu and set .width and .height fields. + + mov edx, [GUI.iconMenuChecked] + mov eax, [edx+TImage.width] + add eax, [esi+TMenu.__icon_size] + + add eax, [.maxW] + add eax, [GUI.menuMinTextDist] + + mov edx, [GUI.menuIconMargin] + lea edx, [3*edx] + add eax, edx + mov edx, [GUI.boxBorderWidth] + lea eax, [eax+2*edx] + + +.set_width: + set esi, TWindow:width, eax + + mov edx, [.sumH] + mov eax, [GUI.boxBorderWidth] + lea edx, [edx+2*eax] + + mov eax, [GUI.menuIconMargin] + lea edx, [edx+2*eax] + + set esi, TWindow:height, edx + +.finish: + popad + inherited [.value] + return + + +.switch_off: +; close the active submenu if any + xor ecx, ecx + xchg ecx, [esi+TMenu._ActiveSubmenu] + test ecx, ecx + jz .submenu_ok + + set ecx, TMenu:Visible, FALSE + +.submenu_ok: + xor ecx, ecx + mov eax, [esi+TMenu.__caller] + test eax, eax + jz .set_active + + istype eax, TMenu + cmove ecx, eax + je .set_active + +.set_active: + stdcall SetMouseCapture, ecx + mov [__ActiveMenu], ecx + jmp .finish + +endp + + + +method TMenu.__RenderView + +.bounds TBounds + +.y dd ? +.ytxt dd ? +.xTxt dd ? +.clTxt dd ? + +.txtline dd ? +.ascender dd ? + +.count dd ? + +.canvas dd ? + +; item parameters, depend on the item type. + +.text dd ? +.accel dd ? +.icon dd ? +.check dd ? +.enabled dd ? +.subicon dd ? + +begin + pushad + mov esi, [.self] + +; exec esi, TMenu:__UpdateCanvas + + mov ebx, [esi+TMenu._canvas] + mov [.canvas], ebx + test ebx, ebx + jz .end_loop + + xor eax, eax + mov [.bounds.x], eax + mov [.bounds.y], eax + + mov eax, [esi+TWindow._width] + mov ecx, [esi+TWindow._height] + mov [.bounds.width], eax + mov [.bounds.height], ecx + + lea eax, [.bounds] + stdcall [DrawBox], [.canvas], eax, [GUI.clMenuBack], [GUI.borderMenu], [GUI.boxBorderWidth] + + get edi, esi, TMenu:Items + test edi, edi + jz .end_loop + + +; compute the text base line. + + stdcall GetFontMetrics, [GUI.DefaultFont] + mov [.txtline], eax + lea ebx, [2*ebx] + mov [.ascender], ebx + + mov ecx, [GUI.boxBorderWidth] + add ecx, [GUI.menuIconMargin] + mov [.y], ecx + + mov ecx, [GUI.menuIconMargin] + lea ecx, [3*ecx] + mov eax, [esi+TMenu.__icon_size] + + add ecx, eax + add ecx, [GUI.boxBorderWidth] + + mov eax, [GUI.iconMenuChecked] + add ecx, [eax+TImage.width] + + mov [.xTxt], ecx + + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array] + + mov [.count], ecx + + xor ecx, ecx + dec ecx + +.loop: + inc ecx + cmp ecx, [.count] + jae .end_loop + + mov eax, [edi+TMenuItem.type] + + cmp eax, mitSeparator + je .draw_separator + + cmp eax, mitAction + je .action + + cmp eax, mitSubmenu + je .submenu + + cmp eax, mitString + jne .next_item + +.string: + stdcall StrDup, [edi+TMenuItem.item] + mov [.text], eax + + xor eax, eax + mov [.accel], eax + mov [.icon], eax + mov [.check], eax + mov [.subicon], eax + inc eax + mov [.enabled], eax + jmp .draw_background + +.submenu: + get eax, [edi+TMenuItem.item], TMenu:Caption + mov [.text], eax + + get eax, [edi+TMenuItem.item], TMenu:Enabled + mov [.enabled], eax + + mov ebx, [GUI.menuSubIconGray] + test eax, eax + jz @f + + mov ebx, [GUI.menuSubIcon] + + cmp ecx, [esi+TMenu._selected] + jne @f + mov ebx, [GUI.menuSubIconSel] + +@@: + mov [.subicon], ebx + + xor eax, eax + mov [.icon], eax + mov [.check], eax + mov [.accel], eax + jmp .draw_background + + +.action: + mov [.subicon], 0 + + get eax, [edi+TMenuItem.item], TAction:Caption + mov [.text], eax + + get eax, [edi+TMenuItem.item], TAction:Accelerator + mov [.accel], eax + + get eax, [edi+TMenuItem.item], TAction:Enabled + mov [.enabled], eax + + get eax, [edi+TMenuItem.item], TAction:Icon + mov [.icon], eax + + get eax, [edi+TMenuItem.item], TAction:Checked + mov [.check], eax + jmp .draw_background + + +.draw_separator: + mov eax, [.bounds.x] + mov ebx, [.bounds.width] + mov edx, [GUI.menuIconMargin] + add eax, edx + sub ebx, edx + sub ebx, edx + + mov edx, [edi+TMenuItem.height] + add edx, [.y] + add edx, [.y] + sar edx, 1 + + stdcall DrawSolidRect, [.canvas], eax, edx, ebx, 1, [GUI.clBorderDark] + inc edx + stdcall DrawSolidRect, [.canvas], eax, edx, ebx, 1, [GUI.clBorderLight] + jmp .next_item + + +; draw the background +.draw_background: + cmp ecx, [esi+TMenu._selected] + jne .selected_ok + + cmp [.enabled], 0 + je .selected_ok + + mov eax, [.bounds.x] + mov edx, [.bounds.width] + + add eax, [GUI.boxBorderWidth] + sub edx, [GUI.boxBorderWidth] + sub edx, [GUI.boxBorderWidth] + + stdcall DrawSolidRect, [.canvas], eax, [.y], edx, [edi+TMenuItem.height], [GUI.clMenuSelection] + + mov ebx, [.icon] + test ebx, ebx + jz .selected_ok + + mov edx, [ebx+TImage.width] + add edx, [GUI.menuIconMargin] + + mov ebx, [GUI.iconMenuChecked] + add eax, [ebx+TImage.width] + + mov ebx, [GUI.menuIconMargin] + add eax, ebx + shr ebx, 1 + add eax, ebx + + stdcall DrawSolidRect, [.canvas], eax, [.y], edx, [edi+TMenuItem.height], [GUI.clMenuSelIcon] + +.selected_ok: + +; draw the icon + + cmp [.icon], 0 + je .icon_ok + + mov ebx, [GUI.iconMenuChecked] + mov eax, [ebx+TImage.width] + + add eax, [GUI.menuIconMargin] + add eax, [GUI.menuIconMargin] + add eax, [GUI.boxBorderWidth] ; x-coordinate + + mov ebx, [.icon] + test ebx, ebx + jz .icon_ok + + mov edx, [edi+TMenuItem.height] + sub edx, [ebx+TImage.height] + add edx, [.y] + add edx, [.y] + sar edx, 1 + + stdcall BlendImage, [.canvas], eax, edx, ebx, 0, 0, [ebx+TImage.width], [ebx+TImage.height] + +.icon_ok: + +; draw the checkbox + + cmp [.check], 0 + je .draw_text + + mov eax, [GUI.menuIconMargin] + add eax, [GUI.boxBorderWidth] + + mov ebx, [GUI.iconMenuChecked] + + cmp [.enabled], 0 + jne .check_ok + + mov ebx, [GUI.iconMenuCheckedGray] + +.check_ok: + mov edx, [edi+TMenuItem.height] + sub edx, [ebx+TImage.height] + add edx, [.y] + add edx, [.y] + sar edx, 1 + + stdcall BlendImage, [.canvas], eax, edx, ebx, 0, 0, [ebx+TImage.width], [ebx+TImage.height] + + +.draw_text: + + mov eax, [GUI.clMenuTextGray] + + cmp [.enabled], 0 + je .txt_color_ok + + mov eax, [GUI.clMenuText] + + cmp ecx, [esi+TMenu._selected] + jne .txt_color_ok + + mov eax, [GUI.clEditSelTxt] + +.txt_color_ok: + mov [.clTxt], eax + + push eax + push [GUI.DefaultFont] + + mov eax, [edi+TMenuItem.height] + sub eax, [.txtline] + add eax, [.ascender] + sar eax, 1 + add eax, [.y] + mov [.ytxt], eax + + push eax + pushd [.xTxt] + + stdcall StrLen, [.text] + push eax + + stdcall StrPtr, [.text] + + stdcall DrawString, [.canvas], eax ; remaining from the stack + + stdcall StrDel, [.text] + +; draw the submenu arrow + mov ebx, [.subicon] + test ebx, ebx + jz .draw_accelerator + + mov eax, [.bounds.width] + sub eax, [ebx+TImage.width] + sub eax, [GUI.menuIconMargin] + + mov edx, [edi+TMenuItem.height] + sub edx, [ebx+TImage.height] + add edx, [.y] + add edx, [.y] + sar edx, 1 + + stdcall BlendImage, [.canvas], eax, edx, ebx, 0, 0, [ebx+TImage.width], [ebx+TImage.height] + jmp .next_item + +; draw the accelerator +.draw_accelerator: + cmp [.accel], 0 + je .next_item + + stdcall StrPtr, [.accel] + push eax + + stdcall GetTextBounds, eax, [eax+string.len], [GUI.DefaultFont] + + mov edx, [.bounds.width] + sub edx, [GUI.boxBorderWidth] + sub edx, [GUI.menuIconMargin] + sub edx, eax + + pop eax + stdcall DrawString, [.canvas], eax, [eax+string.len], edx, [.ytxt], [GUI.DefaultFont], [.clTxt] + + stdcall StrDel, [.accel] + + +.next_item: + mov eax, [edi+TMenuItem.height] + add [.y], eax + + add edi, sizeof.TMenuItem + jmp .loop + + +.end_loop: + + popad + return + +.empty_menu: + stdcall DrawString, [.canvas], "Empty menu", 10, 10, 14, [GUI.DefaultFont], [GUI.clMenuText] + stdcall FilterDisabled, [.canvas], FALSE + jmp .end_loop + +endp + + + + +method TMenu.Show +begin + pushad + + mov esi, [.self] + mov edi, [.parent] + + mov [esi+TMenu.__caller], edi + istype edi, TMenu + jne .submenu_ok + + mov eax, esi + xchg eax, [edi+TMenu._ActiveSubmenu] + + test eax, eax + jz .submenu_ok + + set eax, TMenu:Visible, FALSE + stdcall SetMouseCapture, edi + +.submenu_ok: + cmp [esi+TMenu._beforeshow], 0 + je @f + + push esi + stdcall [esi+TMenu._beforeshow], esi + pop esi +@@: + set esi, TMenu:Visible, TRUE + set esi, TMenu:Selected, -1 + mov [__ActiveMenu], esi + + + exec edi, TWindow:ClientToScreenXY, [.x], [.y] + + stdcall _GetScreenSize + + sub eax, [esi+TMenu._width] + sub ebx, [esi+TMenu._height] + + cmp ecx, eax + cmovg ecx, eax + + cmp edx, ebx + cmovg edx, ebx + + exec esi, TMenu:Move, ecx, edx + + popad + return +endp + + + + +proc AcceleratorToStr, .pFastKey +begin + mov eax, [.pFastKey] + test eax, eax + jz .empty + + stdcall CreateKeyName, [eax+TFastKey.key], [eax+TFastKey.flags] + jnc .finish + +.empty: + stdcall StrNew + stc + +.finish: + return +endp + + +; Converts the string representation of an accelerator key to +; TFastKey structure. +; +; Returns: +; eax - keyboard flags (TFastKey.flags) +; edx - keyboard key (TFastKey.key) +; +; ToDo: more modifiers need to be processed + +proc StrToAccelerator, .hString +.res TFastKey +begin + pushad + + stdcall StrSplitList, [.hString], "+", FALSE + mov edx, eax + xor ecx, ecx + mov [.res.flags], ecx + mov [.res.key], ecx + dec ecx + +.loop: + inc ecx + cmp ecx, [edx+TArray.count] + jae .finish + + mov ebx, Ctrl + stdcall StrCompNoCase, [edx+TArray.array + 4*ecx], txt "Ctrl" + jc .setflag + stdcall StrCompNoCase, [edx+TArray.array + 4*ecx], txt "Control" + jc .setflag + stdcall StrCompNoCase, [edx+TArray.array + 4*ecx], txt "Ctl" + jc .setflag + + mov ebx, Alt + stdcall StrCompNoCase, [edx+TArray.array + 4*ecx], txt "Alt" + jc .setflag + + mov ebx, Shift + stdcall StrCompNoCase, [edx+TArray.array + 4*ecx], txt "Shift" + jc .setflag + + stdcall KbdNameToCode, [edx+TArray.array + 4*ecx] + jc .loop + mov [.res.key], eax + jmp .loop + +.setflag: + or [.res.flags], ebx + jmp .loop + +.finish: + stdcall ListFree, edx, StrDel + mov eax, [.res.flags] + mov edx, [.res.key] + mov [esp+4*regEAX], eax + mov [esp+4*regEDX], edx + + OutputValue "Accelerator key: ", edx, 16, 8 + OutputValue "Accelerator flags: ", eax, 16, 8 + + popad + return +endp + + + + +method TMenu.SetSelected +begin + pushad + + mov esi, [.self] + mov ecx, [.value] + cmp ecx, [esi+TMenu._selected] + je .finish + + get edi, esi, TMenu:Items + test edi, edi + jz .finish + + mov eax, [esi+TMenu._selected] + mov [esi+TMenu._selected], ecx + + cmp eax, [edi+TArray.count] + jae .old_ok + + imul eax, sizeof.TMenuItem + cmp [edi + TArray.array + eax + TMenuItem.type], mitSubmenu + jne .old_ok + + set [edi + TArray.array + eax + TMenuItem.item], TMenu:Visible, FALSE + +.old_ok: + cmp ecx, [edi+TArray.count] + jae .finish + +; compute Y coordinate + + lea edi, [edi+TArray.array] + xor ebx, ebx + +.loop: + dec ecx + js .height_ok + + add ebx, [edi+TMenuItem.height] + add edi, sizeof.TMenuItem + jmp .loop + +.height_ok: + + mov eax, ebx + add eax, [edi+TMenuItem.height] + exec esi, TMenu:RectChanged2, 0;, ebx, [esi+TWindow._width], eax + + cmp [edi+TMenuItem.type], mitSubmenu + jne .hide_old + + get eax, [edi+TMenuItem.item], TMenu:Enabled + test eax, eax + jz .hide_old + + mov eax, [esi+TMenu._width] + sub eax, [GUI.menuIconMargin] + + exec [edi+TMenuItem.item], TMenu:Show, esi, eax, ebx ; will hide the previous open submenu! + jmp .finish + +; hide old menu if active: +.hide_old: + cmp [esi+TMenu._ActiveSubmenu], 0 + je .finish + + set [esi+TMenu._ActiveSubmenu], TMenu:Visible, FALSE + and [esi+TMenu._ActiveSubmenu], 0 + +.finish: + popad + return +endp + + + +method TMenu.EventMouseMove +begin + pushad + + mov esi, [.self] + + mov ecx, [.x] + mov edx, [.y] + sub ecx, [esi+TMenu._x] + js .check_caller + sub edx, [esi+TMenu._y] + js .check_caller + + cmp ecx, [esi+TMenu._width] + jge .check_caller + + cmp edx, [esi+TMenu._height] + jge .check_caller + + sub edx, [GUI.boxBorderWidth] + js .exit + + sub edx, [GUI.menuIconMargin] + js .exit + +; search for item. + + get edi, esi, TMenu:Items + + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array] + + xor ebx, ebx ; index + xor eax, eax ; Y coordinate + +.loop: + dec ecx + js .exit + + add eax, [edi+TMenuItem.height] + cmp edx, eax + jl .found + + inc ebx + add edi, sizeof.TMenuItem + jmp .loop + +.found: + set esi, TMenu:Selected, ebx + +.exit: + popad + return + +.check_caller: + mov esi, [esi+TMenu.__caller] + test esi, esi + jz .exit + + istype esi, TMenu + jne .exit + + exec esi, TMenu:EventMouseMove, [.x], [.y], [.kbdState] + jmp .exit +endp + + + + + +; returns CF = 1 if the item was executed. Else CF = 0 + +method TMenu.ExecuteItem ;, .iItem +begin + pushad + mov esi, [.self] + get edx, esi, TMenu:Items + + test edx, edx + jz .finish + + mov ecx, [.iItem] + cmp ecx, [edx+TArray.count] + jae .finish + + shl ecx, 4 ; sizeof.TMenuItem = $10 + lea edi, [edx+TArray.array+ecx] + + cmp [edi+TMenuItem.type], mitSeparator + je .finish + + cmp [edi+TMenuItem.type], mitString + je .onstring + + cmp [edi+TMenuItem.type], mitSubmenu + je .finish + + cmp [edi+TMenuItem.type], mitAction + je .onaction + + jmp .finish + +.onstring: + get edx, esi, TMenu:OnString + test edx, edx + jz .finish + + exec esi, TMenu:HideAll + stdcall edx, esi, edi + jmp .finish + + +.onaction: + get eax, [edi+TMenuItem.item], TAction:Enabled + test eax, eax + jz .finish + + exec esi, TMenu:HideAll + exec [edi+TMenuItem.item], TAction:Execute, [.self] ; execute the action. + +.finish_true: + stc + +.finish: + popad + return +endp + + + +method TMenu.HideAll +begin + push ecx esi + mov esi, [.self] + +.loop: + mov ecx, [esi+TMenu.__caller] + jecxz .closeit + + istype ecx, TMenu + cmove esi, ecx + je .loop + +.closeit: + set esi, TMenu:Visible, FALSE + pop esi ecx + return +endp + + + +method TMenu.EventButtonPress +begin + inherited [.button], [.kbdState], [.x], [.y] + jc .exit + + pushad + mov esi, [.self] + + get eax, esi, TMenu:Visible + test eax, eax + jz .finish + + mov ecx, [.x] + mov edx, [.y] + + sub ecx, [esi+TMenu._x] + js .check_caller + sub edx, [esi+TMenu._y] + js .check_caller + cmp ecx, [esi+TMenu._width] + jge .check_caller + cmp edx, [esi+TMenu._height] + jge .check_caller + + exec esi, TMenu:ExecuteItem, [esi+TMenu._selected] + stc + +.finish: + popad +.exit: + return + + +.check_caller: + set esi, TMenu:Visible, FALSE ; hide the menu + + mov esi, [esi+TMenu.__caller] + test esi, esi + jz .finish + + istype esi, TMenu + clc + jne .finish + + mov [esi+TMenu._selected], -1 + exec esi, TMenu:EventMouseMove, [.x], [.y], [.kbdState] + exec esi, TMenu:EventButtonPress, [.button], [.kbdState], [.x], [.y] ; what about converting coordinates to the caller ??? + jmp .finish +endp + + + + +method TMenu.EventKeyPress +begin + pushad + + OutputValue "Key pressed: ", [.scancode], 10, -1 + + mov esi, [.self] + get edx, esi, TMenu:Items + test edx, edx + jz .finish + + get ebx, esi, TMenu:Selected + cmp ebx, -1 + jne .continue + + istype [esi+TMenu.__caller], TMenu + jne .continue + + exec [esi+TMenu.__caller], TMenu:EventKeyPress, [.utf8], [.scancode], [.kbdState] + jmp .finish + +.continue: + xor edi, edi + + mov eax, [.scancode] + + cmp eax, keyDownNumpad + je .down + cmp eax, keyDown + je .down + + cmp eax, keyUpNumpad + je .up + cmp eax, keyUp + je .up + + cmp eax, keyLeftNumpad + je .left + cmp eax, keyLeft + je .left + + cmp eax, keyRightNumpad + je .right + cmp eax, keyRight + je .right + + cmp [.utf8], $1b + je .escape + + cmp [.utf8], $0d + je .enter + + jmp .finish + +.down: + inc edi ; == +1 + jmp .inc_pos + +.up: + dec edi ; == -1 + +.inc_pos: + xor ecx, ecx + mov eax, [edx+TArray.count] + dec eax + js .finish + + add ebx, edi + + cmp ebx, eax + cmovg ebx, ecx + + test ebx, ebx + cmovs ebx, eax + + lea ecx, [4*ebx] + cmp [edx+TArray.array + 4*ecx + TMenuItem.type], mitSeparator + je .next + + cmp [edx+TArray.array + 4*ecx + TMenuItem.type], mitAction + jne .set_selected + + get eax, [edx+TArray.array + 4*ecx + TMenuItem.item], TAction:Enabled + test eax, eax + jz .next + +.set_selected: + set esi, TMenu:Selected, ebx + jmp .finish + +.next: + get eax, esi, TMenu:Selected + cmp eax, ebx ; only one item can be selected!!! + je .finish + jmp .inc_pos + +.escape: + set esi, TMenu:Visible, FALSE + jmp .finish + + +.left: + cmp [esi+TMenu.__caller], 0 + je .maybe_not_active + + istype [esi+TMenu.__caller], TMenu + jne .maybe_not_active + + set esi, TMenu:Visible, FALSE + jmp .finish + +.maybe_not_active: + cmp [esi+TMenu._ActiveSubmenu], 0 + je .finish + + set [esi+TMenu._ActiveSubmenu], TMenu:Visible, FALSE + jmp .finish + +.right: + test ebx, ebx + js .finish + + lea ecx, [4*ebx] + lea ecx, [edx + TArray.array + 4*ecx] + cmp [ecx+TMenuItem.type], mitSubmenu + jne .finish + + get eax, [ecx+TMenuItem.item], TMenu:Enabled + test eax, eax + jz .finish + + mov eax, [esi+TMenu._width] + sub eax, [GUI.menuIconMargin] + + mov [esi+TMenu._selected], -1 + set esi, TMenu:Selected, ebx + set [ecx+TMenuItem.item], TMenu:Selected, 0 + jmp .finish + +.enter: +; execute the item. + + exec esi, TMenu:ExecuteItem, ebx + +.finish: + popad + return +endp + + + + + +proc ___MenuFromTemplate +begin + push ebx ecx edx edi + + create ebx, TMenu, 0 + +.loop: + movzx edx, byte [esi+1] ; the type of the item + + cmp edx, mitEnd + je .end_of_menu + + cmp edx, mitSeparator + je .separator + + cmp edx, mitAction + je .action + + cmp edx, mitString + je .string + + cmp edx, mitSubmenu + je .submenu + + jne .next_item + +.separator: + + xor ecx, ecx + xor edi, edi + jmp .add_item + +.action: + mov edi, [esi+6] ; the item ID + mov ecx, [esi+2] + mov ecx, [ecx] + jmp .add_item + +.string: + mov edi, [esi+2] ; the item ID + lea ecx, [esi+6] + stdcall StrDupMem, ecx + mov ecx, eax + jmp .add_item + +.submenu: + mov edi, [esi+2] ; the item ID + lea ecx, [esi+6] + movzx eax, byte [esi] + add esi, eax + + call ___MenuFromTemplate + set eax, TMenu:Caption, ecx + set eax, TMenu:Enabled, TRUE + set eax, TMenu:Visible, FALSE + mov ecx, eax + +.add_item: + exec ebx, TMenu:AddItem, edx, ecx, edi + +.next_item: + movzx eax, byte [esi] + add esi, eax + jmp .loop + +.end_of_menu: + mov eax, ebx + pop edi edx ecx ebx + return +endp + + + +proc MenuFromTemplate, .pTemplate +begin + push esi + mov esi, [.pTemplate] + call ___MenuFromTemplate + pop esi + return +endp + + +; Searches menu item with the given itemID. +; Returns: +; CF = 1; The item has been found. EAX = pointer the TMenuItem, EDX = pointer to TMenu. +; CF = 0; The item has not been found. + +proc SearchMenuItem, .pMenu, .itemID +begin + push ebx ecx eax edx + + mov edx, [.pMenu] + mov eax, [edx+TMenu._p_items] + mov ecx, [eax+TArray.count] + lea eax, [eax+TArray.array] + +.loop: + dec ecx + js .not_found + + mov ebx, [eax+TMenuItem.itemID] + cmp ebx, [.itemID] + je .found + + cmp [eax+TMenuItem.type], mitSubmenu + jne .next + + stdcall SearchMenuItem, [eax+TMenuItem.item], [.itemID] + jc .found + +.next: + add eax, sizeof.TMenuItem + jmp .loop + +.found: + lea esp, [esp+8] ; remove edx and eax from the stack + stc + pop ecx ebx + return + +.not_found: + clc + pop edx eax ecx ebx + return +endp + + + + + + +endmodule + + ADDED freshlib/gui/TObject.asm Index: freshlib/gui/TObject.asm ================================================================== --- /dev/null +++ freshlib/gui/TObject.asm @@ -0,0 +1,373 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TObject object class. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: TObject is the root member of FreshLib objects tree. +;_________________________________________________________________________________________ +module "TObject library" + + + + +object TObject +; fields + if options.Threads + ._mxAccess TMutex ; access mutex. Procedures from objects.asm will use it to ensure thread safety. + end if + + ._OnCreate dd ? + ._OnDestroy dd ? + ._ptrVar dd ? + + .__parent dd ? + .__first_child dd ? + .__last_child dd ? + + .__prev dd ? + .__next dd ? + + .__owner dd ? + + +; parameters + + param .Parent, .__parent, .SetParent + param .FirstChild, .__first_child, NONE + param .LastChild, .__last_child, NONE + param .NextSibling, .__next, NONE + param .PrevSibling, .__prev, NONE + + param .Owner, .__owner, .__owner + + param .OnCreate, ._OnCreate, ._OnCreate + param .OnDestroy, ._OnDestroy, ._OnDestroy + param .ptrVar, ._ptrVar, ._ptrVar + +; methods + + method .Create, .parent + method .Destroy + + method .SetParent, .value + + method .AddChild, .objchild + method .RemoveChild, .objchild +endobj + + + +interface TObject.OnCreate, .self +interface TObject.OnDestroy, .self + + + + + +method TObject.Create +begin +if defined options.Threads & options.Threads + push eax + mov eax, [.self] + lea eax, [eax+TObject._mxAccess] + stdcall MutexCreate, 0, eax + stdcall MutexRelease, eax + pop eax +end if + set [.self], TWindow:Parent, [.parent] + return +endp + + + + +method TObject.Destroy +begin + pushad + + mov esi, [.self] + + get ecx, esi, TObject:OnDestroy + jecxz .event_ok + + push esi + stdcall dword ecx, [.self] + pop esi + +.event_ok: + +; destroy all children + +.loop: + get ebx, esi, TObject:LastChild + test ebx, ebx + jz .end_children + + destroy ebx + jmp .loop + +.end_children: + + set esi, TObject:Parent, 0 ; detach from the parent. + + get ecx, esi, TObject:ptrVar + jecxz .varok + mov dword [ecx], 0 +.varok: + +if defined options.Threads & options.Threads + lea ecx, [esi+TObject._mxAccess] + stdcall MutexDestroy, ecx +end if + popad + return +endp + + + + + +;_________________________________________________________________________________________ + + + +method TObject.AddChild +begin + pushad + + mov esi, [.self] + mov ebx, [.objchild] + xor ecx, ecx + + test ebx, ebx + jz .not_object + + istype ebx, TObject + jne .not_object + +; remove the object from the previous parent list, if any. + mov eax, [ebx+TObject.__parent] + test eax, eax + jz @f + exec eax, TObject:RemoveChild, ebx +@@: + mov [ebx+TObject.__next], ecx ; it is the last child in the chain. + mov [ebx+TObject.__parent], esi + +; connect to the new parent structures. + mov eax, [esi+TObject.__first_child] + test eax, eax + cmovz eax, ebx + + mov edx, [esi+TObject.__last_child] + test edx, edx + jz @f + mov [edx+TObject.__next], ebx +@@: + mov [ebx+TObject.__prev], edx + mov [esi+TObject.__first_child], eax + mov [esi+TObject.__last_child], ebx + + clc + popad + return + + +.not_object: + stc + popad + return +endp + + +;_________________________________________________________________________________________ + + +;---------------------------------------------------------------------- +; Returns: +; CF = 1 - if the object specified was not found as a window child. +; CF = 0 - the child was removed from the list of childrens. +;---------------------------------------------------------------------- + +method TObject.RemoveChild +begin + pushad + + mov esi, [.self] + mov ebx, [.objchild] + xor ecx, ecx + + test ebx, ebx + jz .error + + istype ebx, TObject + jne .error + + cmp [ebx+TObject.__parent], esi + jne .error + + mov [ebx+TObject.__parent], ecx + + mov eax, [ebx+TObject.__prev] + mov edx, [ebx+TObject.__next] + + test eax, eax + jz .prev_ok + mov [eax+TObject.__next], edx + +.prev_ok: + test edx, edx + jz .next_ok + mov [edx+TObject.__prev], eax + +.next_ok: + + cmp [esi+TObject.__first_child], ebx + jne .first_child_ok + mov [esi+TObject.__first_child], edx + +.first_child_ok: + + cmp [esi+TObject.__last_child], ebx + jne .last_child_ok + mov [esi+TObject.__last_child], eax + +.last_child_ok: + clc + popad + return + +.error: + stc + popad + return +endp + + + +;_________________________________________________________________________________________ + + + +method TObject.SetParent +begin + pushad + + mov esi, [.self] + mov ebx, [.value] + + get edx, esi, TObject:Parent + + cmp ebx, edx ; if the parent is already set to the same value, ignore. + je .finish + + test edx, edx + je .parent_ok + + exec edx, TObject:RemoveChild, esi ; remove the window from the old parent. + +.parent_ok: + test ebx, ebx + jz .finish + + exec ebx, TObject:AddChild, esi + +.finish: + popad + return +endp + + + +; Returns the next leaf object in the tree, relative to the input object. +; The search is circular, if pObject is the last leaf of the tree, +; the first leaf is returned. +; +; Arguments: +; .pObject - pointer to TObject; +; +; Returns: +; eax - pointer to the next object if any, or the same object if next was not found. +; ZF = 1 - next object not found. +; ZF = 0 - next object returned. + +proc NextLeaf, .pObject +begin + mov eax, [.pObject] + +.next: + cmp [eax+TObject.__next], 0 + cmovne eax, [eax+TObject.__next] + jne .down_to_leaf + + cmp [eax+TObject.__parent], 0 + cmovne eax, [eax+TObject.__parent] + jne .next + +.back_to_first: + cmp [eax+TObject.__prev], 0 + cmovne eax, [eax+TObject.__prev] + jne .back_to_first + +.down_to_leaf: + cmp [eax+TObject.__first_child], 0 + cmovne eax, [eax+TObject.__first_child] + jne .down_to_leaf + + cmp eax, [.pObject] + return +endp + + + +; Returns the previous leaf object in the tree, relative to the input object. +; The search is circular, if pObject is the first leaf of the tree, +; the last leaf is returned. +; +; Arguments: +; .pObject - pointer to TObject; +; +; Returns: +; eax - pointer to the previous leaf, if any, or the same leaf if next was not found. +; ZF = 1 - previous object not found. +; ZF = 0 - previous object returned. + +proc PrevLeaf, .pObject +begin + mov eax, [.pObject] + +.prev: + cmp [eax+TObject.__prev], 0 + cmovne eax, [eax+TObject.__prev] + jne .down_to_leaf + + cmp [eax+TObject.__parent], 0 + cmovne eax, [eax+TObject.__parent] + jne .prev + +.back_to_first: + cmp [eax+TObject.__next], 0 + cmovne eax, [eax+TObject.__next] + jne .back_to_first + +.down_to_leaf: + cmp [eax+TObject.__last_child], 0 + cmovne eax, [eax+TObject.__last_child] + jne .down_to_leaf + + cmp eax, [.pObject] + return +endp + + + + + + +endmodule ADDED freshlib/gui/TProgressbar.asm Index: freshlib/gui/TProgressbar.asm ================================================================== --- /dev/null +++ freshlib/gui/TProgressbar.asm @@ -0,0 +1,192 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TProgressBar object class; Simple progress bar control. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ +module "TProgressbar library" + + +object TProgress, TCanvasWindow + ._Pos dd ? + ._Max dd ? + ._Color dd ? + ._embeded dd ? + + param .Pos, ._Pos, .SetPos + param .Max, ._Max, .SetMax + param .Embeded, ._embeded, .SetEmbeded + + method .Step + method .SetPos, .value + method .SetMax, .value + method .SetEmbeded, .value + + method .Create, .pParent + + method .__RenderView +endobj + + + +method TProgress.Create +begin + mov eax, [.self] + set eax, TProgress:WantFocus, FALSE + + inherited [.pParent] + return +endp + + +method TProgress.Step +begin + push eax ecx + + mov ecx, [.self] + mov eax, [ecx+TProgress._Pos] + cmp eax, [ecx+TProgress._Max] + jge .exit + + inc [ecx+TProgress._Pos] + + and [ecx+TProgress._canvas_valid], 0 + exec ecx, TProgress:RectChanged2, 0 + +.exit: + pop ecx eax + clc + return +endp + + +method TProgress.SetPos +begin + push eax ecx + mov ecx, [.self] + mov eax, [.value] + + xchg eax, [ecx+TProgress._Pos] + cmp eax, [ecx+TProgress._Pos] + je .finish + + and [ecx+TProgress._canvas_valid], 0 + exec ecx, TProgress:RectChanged2, 0 + +.finish: + pop ecx eax + return +endp + + +method TProgress.SetMax +begin + push eax ecx + mov ecx, [.self] + mov eax, [.value] + + xchg eax, [ecx+TProgress._Max] + cmp eax, [ecx+TProgress._Max] + je .finish + + and [ecx+TProgress._canvas_valid], 0 + exec ecx, TProgress:RectChanged2, 0 + +.finish: + pop ecx eax + return +endp + + +method TProgress.SetEmbeded +begin + push ecx eax + + mov ecx, [.self] + mov eax, [.value] + + xchg eax, [ecx+TProgress._embeded] + cmp eax, [ecx+TProgress._embeded] + je .finish + + and [ecx+TProgress._canvas_valid], 0 + exec ecx, TProgress:RectChanged2, 0 + +.finish: + pop eax ecx + return +endp + + + + +method TProgress.__RenderView + .bounds TBounds +begin + pushad + + mov esi, [.self] + cmp [esi+TProgress._canvas], 0 + je .finish + + stdcall LockImg, [esi+TProgress._canvas] + jc .finish + + mov [.bounds.x], 0 + mov [.bounds.y], 0 + mov eax, [esi+TProgress._width] + mov ecx, [esi+TProgress._height] + mov [.bounds.width], eax + mov [.bounds.height], ecx + + mov edx, [GUI.progressBorder] + + cmp [esi+TProgress._embeded], 0 + je .border_ok + + mov edx, bxNone + +.border_ok: + lea eax, [.bounds] + stdcall [DrawBox], [esi+TProgress._canvas], eax, [GUI.clProgressBk], edx, [GUI.boxBorderWidth] + + mov eax, [GUI.boxBorderWidth] + inc eax + + add [.bounds.x], eax + add [.bounds.y], eax + shl eax, 1 + sub [.bounds.width], eax + sub [.bounds.height], eax + + mov eax, [esi+TProgress._Pos] + mov ecx, [esi+TProgress._Max] + + test ecx, ecx + jnz @f + inc ecx +@@: + cmp eax, ecx + cmovg eax, ecx + + imul [.bounds.width] + idiv ecx + + stdcall DrawSolidRect, [esi+TProgress._canvas], [.bounds.x], [.bounds.y], eax, [.bounds.height], [GUI.clProgressBar] + stdcall UnlockImg, [esi+TProgress._canvas] + +.finish: + popad + return +endp + + + +endmodule ADDED freshlib/gui/TScrollable.asm Index: freshlib/gui/TScrollable.asm ================================================================== --- /dev/null +++ freshlib/gui/TScrollable.asm @@ -0,0 +1,975 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TScrollWindow object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: TScrollWindow is window that may have scrollers to scroll the client area. +;_________________________________________________________________________________________ +module "TScrollable library" + + +struct TScrollerXY + .pos rd 2 + .page rd 2 + .max rd 2 + .step rd 2 + .state rd 2 +ends + +; Constants for TScroller.state - the state of the particular scrollbar. + +sbsNormal = 0 ; when the mouse is outside the scrollbar +sbsActive = 1 ; when the mouse points on the scrollbar + +; Constants for TScrollable._state - the state of the window as a whole. + +scsReleased = 0 ; no scrollbar is in drag state. +scsDragHorizontal = 1 ; the horizontal scrollbar is in drag state. +scsDragVertical = 2 ; the vertical scrollbar is in drag state. + + + +object TScrollable, TWindow + + ._scrXY TScrollerXY + + ._drag_ofs dd ? + + ._state dd ? + + ._imgX dd ? + ._imgY dd ? + + param .PosX, ._scrXY.pos, .SetPos:2 + param .PageX, ._scrXY.page, .SetPage:2 + param .MaxX, ._scrXY.max, .SetMax:2 + param .StepX, ._scrXY.step, ._scrXY.step + + param .PosY, ._scrXY.pos+4, .SetPos:2 + param .PageY, ._scrXY.page+4, .SetPage:2 + param .MaxY, ._scrXY.max+4, .SetMax:2 + param .StepY, ._scrXY.step+4, ._scrXY.step+4 + + method .SetPos, .param, .value + method .SetPage, .param, .value + method .SetMax, .param, .value + + method .Create, .parent + method .Destroy + + method .__UpdateImages + method .__ClearScrollbar, .scrollbar ; .scrollbar == scrollX or scrollY + method .__DrawScrollbar, .scrollbar ; .scrollbar == scrollX or scrollY + method .__Invalidate, .scrollbar + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + + method .EventMouseMove, .x, .y, .kbdState + method .EventMouseLeave + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + method .EventScroll, .direction, .command, .value + +endobj + + +;_________________________________________________________________________________________ + + +method TScrollable.Create +begin + inherited [.parent] + + set [.self], TScrollable:StepX, 1 + set [.self], TScrollable:StepY, 1 + + return +endp + + +method TScrollable.Destroy +begin + push esi + mov esi, [.self] + stdcall DestroyImage, [esi+TScrollable._imgX] + and [esi+TScrollable._imgX], 0 + + stdcall DestroyImage, [esi+TScrollable._imgY] + and [esi+TScrollable._imgY], 0 + + pop esi + inherited + return +endp + + + +method TScrollable.__Invalidate ; .scrollbar +begin + pushad + mov esi, [.self] + + cmp [.scrollbar], scrollY + je .invalidateY + + xor eax, eax + mov edx, [GUI.scrollWidth] + mov ebx, [esi+TScrollable._height] + mov ecx, [esi+TScrollable._width] + sub ebx, edx + jmp .invalidate + +.invalidateY: + + xor ebx, ebx + mov ecx, [GUI.scrollWidth] + + mov eax, [esi+TScrollable._width] + mov edx, [esi+TScrollable._height] + sub eax, ecx + +.invalidate: + + exec esi, TScrollable:RectChangedXY2, eax, ebx, ecx, edx + popad + return +endp + +;_________________________________________________________________________________________ + + +method TScrollable.__UpdateImages +begin + inherited + pushad + + mov esi, [.self] + + mov edi, [esi+TScrollable._imgX] + mov ecx, [esi+TScrollable._width] + mov edx, [GUI.scrollWidth] + + test edi, edi + jz .createx + + cmp [edi+TImage.wrapW], ecx + jne .destroyx + cmp [edi+TImage.wrapH], edx + je .ximg_ok + +.destroyx: + + stdcall DestroyImage, edi + +.createx: + stdcall CreateImage2, ecx, edx, FALSE + mov [esi+TScrollable._imgX], eax + +.ximg_ok: + + mov edi, [esi+TScrollable._imgY] + mov ecx, [esi+TScrollable._height] + mov edx, [GUI.scrollWidth] + + test edi, edi + jz .createy + + cmp [edi+TImage.wrapH], ecx + jne .destroyy + cmp [edi+TImage.wrapW], edx + je .yimg_ok + +.destroyy: + + stdcall DestroyImage, edi + +.createy: + stdcall CreateImage2, edx, ecx, FALSE + mov [esi+TScrollable._imgY], eax + +.yimg_ok: + exec esi, TScrollable:__ClearScrollbar, scrollX + exec esi, TScrollable:__DrawScrollbar, scrollX + + exec esi, TScrollable:__ClearScrollbar, scrollY + exec esi, TScrollable:__DrawScrollbar, scrollY + popad + return +endp + + +;_________________________________________________________________________________________ + + +method TScrollable.SetPos ;, .param, .value +begin + pushad + + mov esi, [.self] + mov eax, [.value] + + xor edx, edx ; == scrollX + cmp [.param], TScrollable.PosX + je @f + inc edx +@@: + cmp eax, [esi + TScrollable._scrXY.pos + 4*edx] + je .finish + + mov [esi + TScrollable._scrXY.pos + 4*edx], eax + + exec esi, TScrollable:__ClearScrollbar, edx + exec esi, TScrollable:__DrawScrollbar, edx + exec esi, TScrollable:__Invalidate, edx + + clc ; position changed. refresh. + popad + return + +.finish: + stc ; no need to refresh. + popad + return +endp + +;_________________________________________________________________________________________ + + +method TScrollable.SetPage ; .param, .value +begin + pushad + + mov esi, [.self] + mov eax, [.value] + + xor edx, edx ; == scrollX + cmp [.param], TScrollable.PageX + je @f + inc edx +@@: + cmp eax, [esi + TScrollable._scrXY.page + 4*edx] + je .finish + + mov [esi + TScrollable._scrXY.page + 4*edx], eax + exec esi, TScrollable:__ClearScrollbar, edx + exec esi, TScrollable:__DrawScrollbar, edx + exec esi, TScrollable:__Invalidate, edx + +.finish: + popad + return +endp + +;_________________________________________________________________________________________ + + +method TScrollable.SetMax ;, .param, .value +begin + pushad + + mov esi, [.self] + mov eax, [.value] + + xor edx, edx + cmp [.param], TScrollable.MaxX + je @f + inc edx +@@: + cmp eax, [esi + TScrollable._scrXY.max + 4*edx] + je .finish + + mov [esi + TScrollable._scrXY.max + 4*edx], eax + exec esi, TScrollable:__ClearScrollbar, edx + exec esi, TScrollable:__DrawScrollbar, edx + exec esi, TScrollable:__Invalidate, edx + +.finish: + popad + return +endp + + + +;_________________________________________________________________________________________ + + +method TScrollable.SelfPaint ;, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height +.src RECT ; the rectangle that need paint. +.vscr RECT ; the vertical scroller rect. +.hscr RECT ; the horizontal scroller rect. +.res RECT +begin + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + pushad + + mov esi, [.self] + + mov eax, [.xSrc] + mov ecx, [.ySrc] + mov [.src.left], eax + mov [.src.top], ecx + add eax, [.width] + add ecx, [.height] + mov [.src.right], eax + mov [.src.bottom], ecx + + xor eax, eax + mov [.vscr.top], eax + mov [.hscr.left], eax + + mov ecx, [esi+TScrollable._width] + mov edx, [esi+TScrollable._height] + + mov [.vscr.right], ecx + mov [.vscr.bottom], edx + + mov [.hscr.right], ecx + mov [.hscr.bottom], edx + + sub ecx, [GUI.scrollWidth] + sub edx, [GUI.scrollWidth] + + mov [.vscr.left], ecx + mov [.hscr.top], edx + + lea edx, [.src] + lea ebx, [.vscr] + lea eax, [.res] + + stdcall RectIntersect, eax, ebx, edx + jc .vscr_ok + + cmp [esi + TScrollable._scrXY.max + 4], 0 + je .vscr_ok + + mov eax, [.res.left] + mov ebx, [.res.top] + mov ecx, eax + mov edx, ebx + sub [.res.right], eax + sub [.res.bottom], ebx + sub eax, [.vscr.left] + sub ebx, [.vscr.top] + + add ecx, [.xDst] + add edx, [.yDst] + sub ecx, [.xSrc] + sub edx, [.ySrc] + + stdcall BlendImage, [.pDstImage], ecx, edx, [esi+TScrollable._imgY], eax, ebx, [.res.right], [.res.bottom] + +.vscr_ok: + lea edx, [.src] + lea ebx, [.hscr] + lea eax, [.res] + stdcall RectIntersect, eax, ebx, edx + jc .hscr_ok + + cmp [esi+TScrollable._scrXY.max], 0 + je .hscr_ok + + mov eax, [.res.left] + mov ebx, [.res.top] + mov ecx, eax + mov edx, ebx + sub [.res.right], eax + sub [.res.bottom], ebx + sub eax, [.hscr.left] + sub ebx, [.hscr.top] + + add ecx, [.xDst] + add edx, [.yDst] + sub ecx, [.xSrc] + sub edx, [.ySrc] + + stdcall BlendImage, [.pDstImage], ecx, edx, [esi+TScrollable._imgX], eax, ebx, [.res.right], [.res.bottom] + +.hscr_ok: + popad + return +endp + + +method TScrollable.__ClearScrollbar +begin + pushad + mov esi, [.self] + mov ebx, [.scrollbar] + mov ebx, [esi+TScrollable._imgX+4*ebx] + test ebx, ebx + jz .finish + stdcall DrawSolidRect, ebx, 0, 0, [ebx+TImage.wrapW], [ebx+TImage.wrapH], $00;ffffff +.finish: + popad + return +endp + + + +method TScrollable.__DrawScrollbar +begin + pushad + mov esi, [.self] + + cmp [.scrollbar], scrollX + je .draw_x + + mov ebx, [esi+TScrollable._imgY] + test ebx, ebx + jz .scry_ok + + mov edi, [esi + TScrollable._scrXY.state + 4] + +; Draw background Y + + mov ecx, [ebx+TImage.wrapH] + mov edx, [GUI.scrollWidth] + sub ecx, edx + stdcall BlendSolidRect, ebx, 0, 0, edx, ecx, [GUI.clScrollBk+4*edi] + stdcall BlendTriangle, ebx, 0, ecx, edx, trtUpper or trtRight, [GUI.clScrollBk+4*edi] + +; Draw slider Y + lea eax, [esi + TScrollable._scrXY] + stdcall _SliderPixels2, eax, scrollY, ecx + + cmp eax, ecx + cmovg eax, ecx + + mov ecx, [esi + TScrollable._scrXY.pos + 4] + cmp ecx, [esi + TScrollable._scrXY.max + 4] + cmovg ecx, [GUI.clScrollSliderOvf+4*edi] + cmovle ecx, [GUI.clScrollSlider+4*edi] + + stdcall BlendSolidRect, ebx, 0, eax, [GUI.scrollWidth], edx, ecx + add eax, edx + stdcall BlendTriangle, ebx, 0, eax, [GUI.scrollWidth], trtUpper or trtRight, ecx + +.scry_ok: + popad + return + + +.draw_x: + mov ebx, [esi+TScrollable._imgX] + test ebx, ebx + jz .scrx_ok + + mov edi, [esi+TScrollable._scrXY.state] + +; Draw background X + + mov ecx, [ebx+TImage.wrapW] + mov edx, [GUI.scrollWidth] + sub ecx, edx + stdcall BlendSolidRect, ebx, 0, 0, ecx, edx, [GUI.clScrollBk+4*edi] + stdcall BlendTriangle, ebx, ecx, 0, edx, trtLower or trtLeft, [GUI.clScrollBk+4*edi] + +; Draw slider X + + lea eax, [esi+TScrollable._scrXY] + stdcall _SliderPixels2, eax, scrollX, ecx + + cmp eax, ecx + cmovg eax, ecx + + mov ecx, [esi+TScrollable._scrXY.pos] + cmp ecx, [esi+TScrollable._scrXY.max] + cmovg ecx, [GUI.clScrollSliderOvf+4*edi] + cmovle ecx, [GUI.clScrollSlider+4*edi] + + stdcall BlendSolidRect, ebx, eax, 0, edx, [GUI.scrollWidth], ecx + add eax, edx + stdcall BlendTriangle, ebx, eax, 0, [GUI.scrollWidth], trtLower or trtLeft, ecx + +.scrx_ok: + popad + return +endp + + + +; returns: +; EAX: +; -1 - the coordinates are outside the scrollbars +; 0 - the coordinates are in the horizontal scrollbar +; 1 - the coordinates are in the vertical scrollbar + +proc __FindScroller, .scrollable, .x, .y +begin + push esi ecx edx + + mov esi, [.scrollable] + + xor eax, eax + dec eax ; -1 + + mov ecx, [esi+TScrollable._width] + mov edx, [esi+TScrollable._height] + sub ecx, [.x] + sub edx, [.y] + + cmp ecx, [GUI.scrollWidth] + jl .y_scroller + + cmp edx, [GUI.scrollWidth] + jge .finish + + cmp ecx, edx + jl .yes_y_scroller + +.yes_x_scroller: + cmp [esi+TScrollable._scrXY.max], 0 + je .finish ; hidden X scroller. + + inc eax + jmp .finish + +.y_scroller: + + cmp ecx, edx + jge .yes_x_scroller + +.yes_y_scroller: + + cmp [esi+TScrollable._scrXY.max+4], 0 + je .finish ; hidden Y scroller. + + inc eax + inc eax + +.finish: + pop edx ecx esi + return +endp + + + + +method TScrollable.EventMouseLeave +begin + pushad + + mov esi, [.self] + cmp [esi+TScrollable._state], 0 + jne .finish ; there is a drag operation active. + + xor ecx, ecx + xor edx, edx + xchg ecx, [esi+TScrollable._scrXY.state] + xchg edx, [esi+TScrollable._scrXY.state + 4] + or ecx, edx + jz .finish + + xor edx, edx ; == scrollX + exec esi, TScrollable:__ClearScrollbar, edx + exec esi, TScrollable:__DrawScrollbar, edx + exec esi, TScrollable:__Invalidate, edx + inc edx ; == scrollY + exec esi, TScrollable:__ClearScrollbar, edx + exec esi, TScrollable:__DrawScrollbar, edx + exec esi, TScrollable:__Invalidate, edx + +.finish: + inherited + popad + return +endp + + + +method TScrollable.EventMouseMove +.dummy dd ? +.stateH dd ? +.stateV dd ? +begin + pushad + + mov esi, [.self] + mov ebx, [esi + TScrollable._state] + + test ebx, ebx + jnz .process_drag + + xor ecx, ecx + mov [.stateH], ecx + mov [.stateV], ecx + + stdcall __FindScroller, esi, [.x], [.y] + inc [.stateH+4*eax] ; notice the .dummy variable for eax = -1 + + mov ecx, [esi+TWindow._cursor] + inc eax + jz @f + mov ecx, mcArrow +@@: + get edx, esi, TWindow:OSWindow + stdcall GetStockCursor, ecx + stdcall SetMouseCursor, [edx+TWindow.handle], eax + + xor eax, eax + mov ebx, [.stateH] + xchg ebx, [esi+TScrollable._scrXY.state] + xor ebx, [esi+TScrollable._scrXY.state] + jz .statex_ok + + exec esi, TScrollable:__ClearScrollbar, scrollX + exec esi, TScrollable:__DrawScrollbar, scrollX + exec esi, TScrollable:__Invalidate, scrollX + +.statex_ok: + mov ebx, [.stateV] + xchg ebx, [esi+TScrollable._scrXY.state+4] + xor ebx, [esi+TScrollable._scrXY.state+4] + or eax, ebx + jz .statey_ok ; if the state has not be changed. + + exec esi, TScrollable:__ClearScrollbar, scrollY + exec esi, TScrollable:__DrawScrollbar, scrollY + exec esi, TScrollable:__Invalidate, scrollY + +.statey_ok: + inherited [.x], [.y], [.kbdState] + clc + popad + return + + +.process_drag: + + dec ebx + + mov eax, [.x + 4*ebx] + mov ecx, [esi+TScrollable._width + 4*ebx] + sub ecx, [GUI.scrollWidth] + jle .finish + + sub eax, [esi+TScrollable._drag_ofs] + lea edx, [esi+TScrollable._scrXY] + + stdcall _ComputeSliderPos, edx, ebx, eax, ecx + jc .finish + + exec esi, TScrollable:EventScroll, ebx, scTrack, eax + +.finish: + stc + popad + return +endp + + + +; computes the position of the slider from screen pixel coordinates. +proc _ComputeSliderPos, .pScroller, .direction, .x, .lengthpx +begin + push ecx edx + + stdcall _SliderPixels2, [.pScroller], [.direction], [.lengthpx] ; the length of the slider. + + mov ecx, [.direction] + shl ecx, 2 + add ecx, [.pScroller] + + sub [.lengthpx], edx + jz .zero + + mov eax, [ecx + TScrollerXY.max] + imul [.x] + idiv [.lengthpx] + + xor edx, edx + + cmp eax, edx + cmovl eax, edx + + mov edx, [ecx + TScrollerXY.max] + cmp eax, edx + cmovg eax, edx + clc + +.ok: + pop edx ecx + return + +.zero: + stc + xor eax, eax + jmp .ok +endp + + + + +method TScrollable.EventButtonPress +begin + pushad + + cmp [.button], mbLeft + jne .not_processed + + mov esi, [.self] + +.again: + stdcall __FindScroller, esi, [.x], [.y] + test eax, eax + js .not_processed + + mov ebx, eax + + lea eax, [esi + TScrollable._scrXY] + stdcall _SliderPixels2, eax, ebx, [esi+TScrollable._width + 4*ebx] + mov edi, [.x + 4*ebx] + + mov ecx, [esi + TScrollable._width + 4*ebx] ; if pos is > max + sub ecx, edx + cmp eax, ecx + cmovg eax, ecx + + sub edi, eax + jl .before + + cmp edi, edx + jg .after + +; inside the slider - capture the mouse. + + mov [esi + TScrollable._drag_ofs], edi + inc ebx + mov [esi + TScrollable._state], ebx + + stdcall SetMouseCapture, esi + +.processed: + stc + popad + return + +.after: + lea eax, [esi+TScrollable._scrXY] + stdcall _ComputeSliderPos, eax, ebx, [.x+4*ebx], [esi+TScrollable._width+4*ebx] + add eax, [esi+TScrollable._scrXY.page+4*ebx] + jmp .teleport + +.before: + lea eax, [esi+TScrollable._scrXY] + stdcall _ComputeSliderPos, eax, ebx, [.x+4*ebx], [esi+TScrollable._width+4*ebx] + +.teleport: + mov ecx, [esi+TScrollable._scrXY.page+4*ebx] + shr ecx, 1 + xor edx, edx + sub eax, ecx + cmovl eax, edx + cmp eax, [esi+TScrollable._scrXY.max+4*ebx] + cmova eax, [esi+TScrollable._scrXY.max+4*ebx] + + cmp eax, [esi+TScrollable._scrXY.pos+4*ebx] + je .processed + + exec esi, TScrollable:EventScroll, ebx, scTrack, eax + jmp .again ; possible hang... + + +.not_processed: + inherited [.button], [.kbdState], [.x], [.y] + + clc + popad + return +endp + + + +method TScrollable.EventButtonRelease +begin + pushad + + mov esi, [.self] + xor eax, eax + cmp [esi+TScrollable._state], eax + je .finish + + mov [esi+TScrollable._drag_ofs], eax + mov [esi+TScrollable._state], eax + stdcall SetMouseCapture, eax + + exec esi, TScrollable:EventMouseMove, [.x], [.y], [.kbdState] + +.finish: + popad + + inherited [.button], [.kbdState], [.x], [.y] + return +endp + + + +method TScrollable.EventScroll +begin + pushad + + mov esi, [.self] + + cmp [.direction], scrollX + je .horiz_scroll + + cmp [.command], scWheelUp + je .scrollupy + + cmp [.command], scWheelDn + je .scrolldny + + cmp [.command], scTrack + je .track + + clc + popad + return + + +.finish: + popad + return + +.track: + set esi, TScrollable:PosY, [.value] + jmp .finish + + +.scrollupy: + get ecx, esi, TScrollable:StepY + get eax, esi, TScrollable:PosY + + sub eax, ecx + jns @f + xor eax, eax +@@: + set esi, TScrollable:PosY, eax + jmp .finish + + +.scrolldny: + get edx, esi, TScrollable:MaxY + get ecx, esi, TScrollable:StepY + get eax, esi, TScrollable:PosY + + add eax, ecx + cmp eax, edx + cmovg eax, edx + + set [.self], TScrollable:PosY, eax + jmp .finish + + +.horiz_scroll: + cmp [.command], scWheelUp + je .scrollupx + + cmp [.command], scWheelDn + je .scrolldnx + + cmp [.command], scTrack + jne .finish + + set esi, TScrollable:PosX, [.value] + jmp .finish + + +.scrollupx: + get ecx, esi, TScrollable:StepX + get eax, esi, TScrollable:PosX + + sub eax, ecx + jns @f + xor eax, eax +@@: + set esi, TScrollable:PosX, eax + jmp .finish + +.scrolldnx: + get edx, esi, TScrollable:MaxX + get ecx, esi, TScrollable:StepX + get eax, esi, TScrollable:PosX + + add eax, ecx + cmp eax, edx + cmovg eax, edx + + set [.self], TScrollable:PosX, eax + jmp .finish +endp + + + + + + +; returns: +; eax - position in pixels +; edx - size in pixels + + +proc _SliderPixels2, .pScroller, .direction, .length +begin + push ecx esi + + mov ecx, [.pScroller] + mov eax, [.direction] + lea ecx, [ecx+4*eax] + +; page size in pixels. + mov esi, [ecx + TScrollerXY.max] + mov eax, [.length] + + add esi, [ecx + TScrollerXY.page] + test esi, esi + jz .lengthok + + imul [ecx + TScrollerXY.page] + idiv esi + +.lengthok: + cmp eax, [GUI.minSliderHeight] + cmovl eax, [GUI.minSliderHeight] + + cmp eax, [.length] + cmovg eax, [.length] + + push eax ; width + +; position in pixels + + sub eax, [.length] + mov esi, [ecx + TScrollerXY.max] + test esi, esi + jnz @f + inc esi +@@: + neg eax + mul [ecx + TScrollerXY.pos] + div esi + + pop edx ; width + + pop esi ecx + return +endp + + + + + + + + + +endmodule + + + ADDED freshlib/gui/TTabBar.asm Index: freshlib/gui/TTabBar.asm ================================================================== --- /dev/null +++ freshlib/gui/TTabBar.asm @@ -0,0 +1,972 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TTabBar object class +; +; Target OS: Any +; +; Dependencies: +;_________________________________________________________________________________________ +module "TTabBar library" + + +tsNeutral = 0 +tsHovered = 1 +tsSelected = 2 + + +struct TTab + .caption dd ? + .icon dd ? + ._width dd ? + ._x dd ? + .user_data dd ? +ends + + +object TTabBar, TWindow + +; private fields + + ._RequestHeight dd ? + + ._canvas dd ? + ._canvas_valid dd ? + + ._items dd ? ; TArray of TTab structures. + + ._hovered dd ? + ._selected dd ? + + .x_start dd ? + + ._on_sel_change dd ? + +; params + + param .Selected, ._selected, .SetSelected + param .Hovered, ._hovered, .SetHovered + + param .OnSelChange, ._on_sel_change, ._on_sel_change + +; methods + + method .SetSelected, .value + method .SetHovered, .value + + method .ScrollToSelected + + method .Next + method .Prev + + method .Create, .Parent + method .Destroy + + method .ForceRefresh + + method .HitTest, .x, .y + + method .InsertTab, .index, .caption, .icon, .userdata + method .DeleteTab, .index, .userFreeCallback + + method .__UpdateImages + method ._UpdateX, .from + method ._UpdateW, .tab + method ._RenderView + + method .DrawTab, .pTab, .state + + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height + + method .Autosize + + ; system events methods + + method .EventMouseLeave + method .EventMouseMove, .x, .y, .kbdState + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventScroll, .direction, .command, .value + +endobj + + +interface TTabBar.OnSelChange, .self, .pTabUnselected, .iTabUnselected, .pTabSelected, .iTabSelected + + +; new + +method TTabBar.Create +begin + inherited [.Parent] + push esi + + mov esi, [.self] + mov [esi+TTabBar._cursor], mcArrow + set esi, TTabBar:WantFocus, FALSE + + stdcall CreateArray, sizeof.TTab + mov [esi+TTabBar._items], eax + + xor eax, eax + dec eax + mov [esi+TTabBar._selected], eax + mov [esi+TTabBar._hovered], eax + + mov [esi+TTabBar._RequestHeight], 10 ; just as initial value. It will be recalculated in __UpdateImages. + + pop esi + return +endp + + +method TTabBar.Destroy +begin + pushad + + mov ebx, [.self] + mov edx, [ebx+TTabBar._items] + test edx, edx + jz .finish + + mov ecx, [edx+TArray.count] + lea edx, [edx+TArray.array] + +.free: + dec ecx + js .end_free + + stdcall StrDel, [edx+TTab.caption] ; but how about the icons? + add edx, sizeof.TTab + jmp .free + +.end_free: + xor eax, eax + xchg eax, [ebx+TTabBar._items] + stdcall FreeMem, eax + +.finish: + popad + inherited + return +endp + + +method TTabBar.ForceRefresh +begin + mov eax, [.self] + and [eax+TTabBar._canvas_valid], 0 + inherited + return +endp + + +method TTabBar.SelfPaint +begin + pushad + mov esi, [.self] + + cmp [esi+TTabBar._canvas_valid], 0 + jne @f + exec esi, TTabBar:_RenderView +@@: + mov ebx, [esi+TTabBar._canvas] + test ebx, ebx + jz .finish + + stdcall DrawSolidRect, [.pDstImage], [.xDst], [.yDst], [.width], [.height], [GUI.clDialogBk] + + mov eax, [esi+TTabBar.x_start] + add eax, [.xSrc] + stdcall BlendImage, [.pDstImage], [.xDst], [.yDst], ebx, eax, [.ySrc], [.width], [.height] + +.finish: + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + +method TTabBar.HitTest +begin + pushad + + mov esi, [.self] + mov edi, [esi+TTabBar._items] + mov eax, [esi+TTabBar.x_start] + add [.x], eax + + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array] + xor edx, edx + +.loop: + dec ecx + js .not_found + + mov eax, [edi+TTab._width] + cmp [.x], eax + jl .found + + sub [.x], eax + inc edx + add edi, sizeof.TTab + jmp .loop + +.found: + mov [esp+4*regEAX], edi + mov [esp+4*regEDX], edx + clc + popad + return + +.not_found: + stc + popad + return +endp + + +method TTabBar.InsertTab +begin + pushad + + mov esi, [.self] + mov edx, [esi+TTabBar._items] + mov eax, [.index] + cmp eax, [edx+TArray.count] + cmova eax, [edx+TArray.count] + mov [.index], eax + + stdcall InsertArrayItems, edx, eax, 1 + mov [esi+TTabBar._items], edx + mov edi, eax + + stdcall StrDup, [.caption] + mov [edi+TTab.caption], eax + + mov eax, [.icon] + mov edx, [.userdata] + mov [edi+TTab.icon], eax + mov [edi+TTab.user_data], edx + + exec esi, TTabBar:_UpdateW, edi + exec esi, TTabBar:_UpdateX, [.index] + + exec esi, TTabBar:__UpdateImages + + and [esi+TTabBar._canvas_valid], 0 + exec esi, TTabBar:RectChanged2, 0 + popad + return +endp + + + + +method TTabBar.DeleteTab ;, .index, .userFreeCallback +begin + pushad + + mov esi, [.self] + mov ebx, [esi+TTabBar._selected] + set esi, TTabBar:Selected, -1 + + mov edx, [esi+TTabBar._items] + + stdcall GetArrayItem, edx, [.index] + jc .finish + + stdcall StrDel, [eax+TTab.caption] + cmp [.userFreeCallback], 0 + je .element_empty + + pushad + stdcall [.userFreeCallback], [eax+TTab.user_data] + popad + + and [eax+TTab.user_data], 0 + +.element_empty: + + stdcall DeleteArrayItems, edx, [.index], 1 + mov [esi+TTabBar._items], edx + + cmp ebx, [.index] + jb .selected_ok + + dec ebx + jns .selected_ok + + xor ebx, ebx + cmp [edx+TArray.count], ebx + jne .selected_ok + + dec ebx + +.selected_ok: + set esi, TTabBar:Selected, ebx + + exec esi, TTabBar:_UpdateX, [.index] + exec esi, TTabBar:__UpdateImages + + and [esi+TTabBar._canvas_valid], 0 + exec esi, TTabBar:RectChanged2, 0 + +.finish: + popad + return +endp + + +method TTabBar._UpdateX +begin + pushad + mov esi, [.self] + mov edx, [esi+TTabBar._items] + mov edi, [edx+TArray.count] + + xor ecx, ecx + + mov ebx, [.from] + cmp ebx, edi + jae .finish + + mov eax, ebx + imul eax, sizeof.TTab + sub eax, sizeof.TTab + lea edx, [edx+TArray.array+eax] + js .set + + mov ecx, [edx+TTab._x] + +.loop: + add ecx, [edx+TTab._width] + +.set: + inc ebx + add edx, sizeof.TTab + mov [edx+TTab._x], ecx + cmp ebx, edi + jb .loop + +.finish: + popad + return +endp + + + +method TTabBar._UpdateW +begin + pushad + mov esi, [.tab] + mov eax, [esi+TTab.icon] + + xor ecx, ecx + xor edx, edx + mov ebx, [GUI.tabMarginX] + test eax, eax + jz @f + mov ecx, [eax+TImage.wrapW] + mov edx, ebx +@@: + shl ebx, 1 + add ecx, edx + add ecx, ebx + mov [edi+TTab._width], ecx + + stdcall StrPtr, [esi+TTab.caption] + stdcall GetTextBounds, eax, -1, [GUI.DefaultFont] + cmp eax, [GUI.maxTabWidth] + cmova eax, [GUI.maxTabWidth] + + add [edi+TTab._width], eax + + popad + return +endp + + + +method TTabBar._RenderView +begin + pushad + + mov esi, [.self] + mov edi, [esi+TTabBar._items] + mov ebx, [edi+TArray.count] + + mov ecx, [esi+TTabBar._canvas] + jecxz .finish + + stdcall DrawSolidRect, ecx, 0, 0, [ecx+TImage.wrapW], [ecx+TImage.wrapH], 0 + + lea edi, [edi + TArray.array] + xor ecx, ecx + dec ecx + +.loop: + inc ecx + cmp ecx, ebx + jae .finish + + mov eax, tsSelected + cmp ecx, [esi+TTabBar._selected] + je .drawit + + mov eax, tsHovered + cmp ecx, [esi+TTabBar._hovered] + je .drawit + + mov eax, tsNeutral + +.drawit: + exec esi, TTabBar:DrawTab, edi, eax + + add edi, sizeof.TTab + jmp .loop + + +.finish: + inc [esi+TTabBar._canvas_valid] + popad + return +endp + + + + +method TTabBar.DrawTab;, .pTab, .state +.bounds TBounds +begin + pushad + + mov esi, [.pTab] + mov edi, [.self] + mov edi, [edi+TTabBar._canvas] + test edi, edi + jz .finish + + mov eax, [esi+TTab._x] + xor ecx, ecx + mov [.bounds.x], eax + mov [.bounds.y], ecx + + mov eax, [esi+TTab._width] + mov ecx, [edi+TImage.wrapH] + mov [.bounds.width], eax + mov [.bounds.height], ecx + + mov ebx, [.state] + stdcall DrawSolidRect, edi, [.bounds.x], [.bounds.y], [.bounds.width], [.bounds.height], [GUI.clTabBk+4*ebx] + + cmp ebx, tsSelected + jne .selected_ok + + stdcall DrawSolidRect, edi, [.bounds.x], 0, [.bounds.width], 2, [GUI.clBorderFocused] + +.selected_ok: + add [.bounds.y], 2 + sub [.bounds.height], 2 + + mov eax, [GUI.tabMarginX] + mov ecx, [GUI.tabMarginY] + add [.bounds.x], eax + add [.bounds.y], ecx + shl eax, 1 + shl ecx, 1 + sub [.bounds.width], eax + sub [.bounds.height], ecx + + mov ebx, [esi+TTab.icon] + test ebx, ebx + jz .icon_ok + + mov ecx, [ebx+TImage.wrapW] + stdcall BlendImage, edi, [.bounds.x], [.bounds.y], ebx, 0, 0, ecx, [ebx+TImage.wrapH] + + mov eax, [GUI.tabMarginX] + add [.bounds.x], ecx + add [.bounds.x], eax + sub [.bounds.width], ecx + +.icon_ok: + + stdcall DrawTextBox, edi, [esi+TTab.caption], [.bounds.x], [.bounds.y], [.bounds.width], [.bounds.height], 0, dtfAlignLeft or dtfAlignMiddle or dtfSingleLine, [GUI.DefaultFont], [GUI.clTabTxt] + +.finish: + popad + return +endp + + + +method TTabBar.Autosize +begin + inherited + xor eax, eax + mov edx, [.self] + mov edx, [edx+TTabBar._items] + mov edx, [edx+TArray.count] + test edx, edx + jz .finish + + mov edx, [.self] + mov edx, [edx+TTabBar._RequestHeight] + +.finish: + return +endp + + + +method TTabBar.EventMouseLeave +begin + set [.self], TTabBar:Hovered, -1 + exec [.self], TTabBar:ScrollToSelected + return +endp + + +method TTabBar.EventMouseMove +begin + push eax edx + or edx, -1 + exec [.self], TTabBar:HitTest, [.x], [.y] + set [.self], TTabBar:Hovered, edx + pop edx eax + return +endp + + +method TTabBar.EventButtonPress +begin + inherited [.button], [.kbdState], [.x], [.y] + jnc .process + return + +.process: + push eax edx + + exec [.self], TTabBar:HitTest, [.x], [.y] + jc .finish + + set [.self], TTabBar:Selected, edx + clc + +.finish: + cmc + pop edx eax + return +endp + + +method TTabBar.EventScroll +begin + pushad + mov esi, [.self] + mov edx, [esi+TTabBar._items] + + mov ecx, [esi+TTabBar.x_start] + + cmp [.command], scWheelUp + je .scrollup + + cmp [.command], scWheelDn + je .scrolldn + +.finish: + popad + return + +.scrolldn: + mov eax, [edx+TArray.count] + dec eax + js .finish + + imul eax, sizeof.TTab + lea eax, [edx+eax+TArray.array] + mov ebx, [eax+TTab._x] + add ebx, [eax+TTab._width] + sub ebx, [esi+TTabBar._width] + js .finish + + add ecx, 32 + cmp ecx, ebx + cmova ecx, ebx + +.set: + mov [esi+TTabBar.x_start], ecx + exec esi, TTabBar:RectChanged2, 0 + jmp .finish + + +.scrollup: + xor eax, eax + sub ecx, 32 + cmovs ecx, eax + jmp .set +endp + + + +method TTabBar.SetHovered +begin + pushad + mov esi, [.self] + mov edi, 64 + mov eax, [esi+TTabBar._canvas] + test eax, eax + jnz .height_ok + + mov edi, [eax+TImage.wrapH] + +.height_ok: + + mov edx, [.value] + cmp edx, [esi+TTabBar._hovered] + je .finish + + xchg edx, [esi+TTabBar._hovered] + test edx, edx + js .old_ok + + cmp edx, [esi+TTabBar._selected] + je .old_ok + + mov eax, [esi+TTabBar._items] + cmp edx, [eax+TArray.count] + jae .old_ok + + imul edx, sizeof.TTab + lea edx, [eax+edx+TArray.array] + + exec esi, TTabBar:DrawTab, edx, tsNeutral + + mov eax, [edx+TTab._x] + sub eax, [esi+TTabBar.x_start] + exec esi, TTabBar:RectChangedXY2, eax, 0, [edx+TTab._width], edi + +.old_ok: + mov edx, [esi+TTabBar._hovered] + test edx, edx + js .finish + + cmp edx, [esi+TTabBar._selected] + je .finish + + mov eax, [esi+TTabBar._items] + cmp edx, [eax+TArray.count] + jae .finish + + imul edx, sizeof.TTab + lea edx, [eax+edx+TArray.array] + + exec esi, TTabBar:DrawTab, edx, tsHovered + + mov eax, [edx+TTab._x] + sub eax, [esi+TTabBar.x_start] + exec esi, TTabBar:RectChangedXY2, eax, 0, [edx+TTab._width], edi + +.finish: + popad + return +endp + + + +method TTabBar.SetSelected +.tab_prev dd ? +.tab_prev_i dd ? +.tab_new dd ? +.tab_new_i dd ? +begin + pushad + + xor eax, eax + mov [.tab_prev], eax + mov [.tab_new], eax + dec eax + mov [.tab_prev_i], eax + mov [.tab_new_i], eax + + mov esi, [.self] + mov edi, 64 + mov eax, [esi+TTabBar._canvas] + test eax, eax + jz .height_ok + + mov edi, [eax+TImage.wrapH] + +.height_ok: + mov edx, [.value] +; cmp edx, [esi+TTabBar._selected] +; je .finish + + test edx, edx + js .value_ok + + mov eax, [esi+TTabBar._items] + cmp edx, [eax+TArray.count] + jae .finish + +.value_ok: + xchg edx, [esi+TTabBar._selected] + test edx, edx + js .old_ok + + mov eax, [esi+TTabBar._items] + cmp edx, [eax+TArray.count] + jae .old_ok + + mov ebx, edx + imul ebx, sizeof.TTab + lea ebx, [eax+ebx+TArray.array] + + exec esi, TTabBar:DrawTab, ebx, tsNeutral + + mov eax, [ebx+TTab._x] + sub eax, [esi+TTabBar.x_start] + exec esi, TTabBar:RectChangedXY2, eax, 0, [ebx+TTab._width], edi + + mov [.tab_prev], ebx + mov [.tab_prev_i], edx + +.old_ok: + mov edx, [esi+TTabBar._selected] + test edx, edx + js .finish + + mov eax, [esi+TTabBar._items] + cmp edx, [eax+TArray.count] + jae .finish + + mov ebx, edx + imul ebx, sizeof.TTab + lea ebx, [eax+ebx+TArray.array] + + exec esi, TTabBar:DrawTab, ebx, tsSelected + exec esi, TTabBar:ScrollToSelected + + mov eax, [ebx+TTab._x] + sub eax, [esi+TTabBar.x_start] + exec esi, TTabBar:RectChangedXY2, eax, 0, [ebx+TTab._width], edi + + mov [.tab_new], ebx + mov [.tab_new_i], edx + +.finish: +; mov eax, [.tab_prev] +; or eax, [.tab_new] +; jz .exit + + get eax, esi, TTabBar:OnSelChange + test eax, eax + jz .exit + +; interface TTabBar.OnSelChange, .self, .pTabUnselected, .iTabUnselected, .pTabSelected, .iTabSelected + + stdcall eax, esi, [.tab_prev], [.tab_prev_i], [.tab_new], [.tab_new_i] + +.exit: + popad + return +endp + + +method TTabBar.Next +begin + pushad + + mov esi, [.self] + mov ecx, [esi+TTabBar._items] + + or eax, -1 + mov edx, [ecx+TArray.count] ; to + test edx, edx + jz .set + + xor ebx, ebx ; from + + mov eax, [esi+TTabBar._selected] + inc eax + + cmp eax, ebx + cmovl eax, ebx + + cmp eax, edx + cmovge eax, ebx + +.set: + set [.self], TTabBar:Selected, eax + + popad + return +endp + + +method TTabBar.Prev +begin + pushad + + mov esi, [.self] + mov ecx, [esi+TTabBar._items] + + or eax, -1 + mov edx, [ecx+TArray.count] ; to + test edx, edx + jz .set + + dec edx + + mov eax, [esi+TTabBar._selected] + dec eax + cmovs eax, edx + +.set: + set [.self], TTabBar:Selected, eax + + popad + return +endp + + + + + + +method TTabBar.ScrollToSelected +begin + pushad + mov esi, [.self] + mov edx, [esi+TTabBar._items] + mov ecx, [esi+TTabBar._selected] + cmp ecx, [edx+TArray.count] + jae .finish + + imul ecx, sizeof.TTab + lea ecx, [edx+ecx+TArray.array] + + mov eax, [ecx+TTab._x] + sub eax, [esi+TTabBar.x_start] + js .scroll_right + cmp eax, [esi+TTabBar._width] + jge .scroll_left + + add eax, [ecx+TTab._width] + cmp eax, [esi+TTabBar._width] + jge .scroll_left + +.finish: + popad + return + +.scroll_right: + + mov eax, [ecx+TTab._x] + sub eax, 32 + jns .set_ofs + xor eax, eax + +.set_ofs: + mov [esi+TTabBar.x_start], eax + + exec esi, TTabBar:RectChanged2, 0 + jmp .finish + +.scroll_left: + mov eax, [ecx+TTab._x] + add eax, [ecx+TTab._width] + sub eax, [esi+TTabBar._width] + + mov ebx, [edx+TArray.count] + dec ebx + cmp ebx, [esi+TTabBar._selected] + jbe .set_ofs + add eax, 32 + jmp .set_ofs +endp + + + +method TTabBar.__UpdateImages +begin + inherited + pushad + + mov esi, [.self] + + stdcall GetFontMetrics, [GUI.DefaultFont] + mov edi, eax ; min tabbar height + + mov edx, [esi+TTabBar._items] + test edx, edx + jz .finish + + mov ecx, [edx+TArray.count] + lea edx, [edx+TArray.array] + xor ebx, ebx ; total width + +.loop: + dec ecx + js .endloop + + add ebx, [edx+TTab._width] + mov eax, [edx+TTab.icon] + + add edx, sizeof.TTab + + test eax, eax + jz .loop + + cmp edi, [eax+TImage.wrapH] + cmovl edi, [eax+TImage.wrapH] + jmp .loop + +.endloop: + add edi, 2 ; for the select mark. + add edi, [GUI.tabMarginY] + add edi, [GUI.tabMarginY] ; height + + mov [esi+TTabBar._RequestHeight], edi + +; OutputValue "Tab height = ", edi, 10, -1 + + mov edx, [esi+TTabBar._canvas] + test edx, edx + jz .create_new + + cmp ebx, [edx+TImage.wrapW] + ja .destroy + + cmp edi, [edx+TImage.wrapH] + ja .destroy + + popad + return + +.destroy: + + stdcall DestroyImage, edx + and [esi+TTabBar._canvas], 0 + +.create_new: + cmp [esi+TTabBar._visible], 0 + je .finish + + stdcall CreateImage2, ebx, edi, FALSE + mov [esi+TTabBar._canvas], eax + and [esi+TTabBar._canvas_valid], 0 + +.finish: + popad + return + +endp + + + + +endmodule ADDED freshlib/gui/TToolbar.asm Index: freshlib/gui/TToolbar.asm ================================================================== --- /dev/null +++ freshlib/gui/TToolbar.asm @@ -0,0 +1,571 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TToolbar object class +; +; Target OS: Any +; +; Dependencies: +;_________________________________________________________________________________________ +module "TToolbar library" + +tbbSeparator = 0 + +tbsNeutral = bsNeutral +tbsHovered = bsHovered +tbsPressed = bsPressed + + +struct TToolButton + .action dd ? ; can be pointer to TAction object, or TMenu or tbbSeparator (0) + .state dd ? + .width dd ? + .icon dd ? ; if the .action field contains TMenu +ends + + +object TToolbar, TWindow + +; private fields + + ._canvas dd ? + ._canvas_valid dd ? + + ._btn_height dd ? + + ._buttons dd ? ; TArray of TToolButton structures. + +; methods + + method .Create, .Parent + method .Destroy + method .ForceRefresh + + method .SetAction, .value + method .UpdateAction, .action + + method .HitTest, .x, .y + method .ClearState + + method .AddButton, .action, .icon + + method ._RenderView + + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height + + method .Autosize + + ; system events methods + + method .EventMouseEnter + method .EventMouseLeave + method .EventMouseMove, .x, .y, .kbdState + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + +endobj + + +interface TToolbar.OnClick, .self, .button + + +; new + +method TToolbar.Create +begin + inherited [.Parent] + push esi + + mov esi, [.self] + mov [esi+TToolbar._cursor], mcArrow + set esi, TToolbar:WantFocus, FALSE + + stdcall CreateArray, sizeof.TToolButton + mov [esi+TToolbar._buttons], eax + mov [esi+TToolbar._btn_height], 24 + + pop esi + return +endp + + +method TToolbar.Destroy +begin + pushad + + mov esi, [.self] + xor eax, eax + xchg eax, [esi+TToolbar._canvas] + stdcall DestroyImage, eax + + mov edx, [esi+TToolbar._buttons] + mov ecx, [edx+TArray.count] + lea edx, [edx+TArray.array] + +.loop: + dec ecx + js .end_loop + + mov eax, [edx+TToolButton.action] + add edx, sizeof.TToolButton + + test eax, eax + jz .loop + + istype eax, TAction + jne .loop + + exec eax, TAction:Detach, [.self] + jmp .loop + +.end_loop: + stdcall FreeMem, [esi+TToolbar._buttons] + + popad + inherited + return +endp + + + +method TToolbar.SetAction +begin + push eax + mov eax, [.self] + mov [eax+TToolbar.__action], 0 + pop eax + return +endp + + + +method TToolbar.UpdateAction +begin + exec [.self], TToolbar:ForceRefresh + return +endp + + + +method TToolbar.ForceRefresh +begin + mov eax, [.self] + and [eax+TToolbar._canvas_valid], 0 + inherited + return +endp + + +method TToolbar.SelfPaint +begin + pushad + mov esi, [.self] + + cmp [esi+TToolbar._canvas_valid], 0 + jne @f + exec esi, TToolbar:_RenderView +@@: + mov ebx, [esi+TToolbar._canvas] + test ebx, ebx + jz .finish + + stdcall DrawSolidRect, [.pDstImage], [.xDst], [.yDst], [.width], [.height], [GUI.clDialogBk] + stdcall BlendImage, [.pDstImage], [.xDst], [.yDst], ebx, [.xSrc], [.ySrc], [.width], [.height] + +.finish: + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + +method TToolbar.HitTest +begin + pushad + + mov esi, [.self] + mov edi, [esi+TToolbar._buttons] + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array] + +.loop: + dec ecx + js .not_found + + mov eax, [edi+TToolButton.width] + cmp [.x], eax + jl .found + + sub [.x], eax + add edi, sizeof.TToolButton + jmp .loop + +.found: + cmp [edi+TToolButton.action], 0 + je .not_found + + mov [esp+4*regEAX], edi + clc + popad + return + +.not_found: + stc + popad + return +endp + + +method TToolbar.AddButton +begin + pushad + + mov esi, [.self] + mov edx, [esi+TToolbar._buttons] + mov ecx, [.action] + mov ebx, [.icon] + + stdcall AddArrayItems, edx, 1 + mov [esi+TToolbar._buttons], edx + + mov [esp+4*regEAX], eax + + test ecx, ecx + cmovz edx, [GUI.tbSeparatorWidth] + cmovnz edx, [esi+TToolbar._btn_height] + + mov [eax+TToolButton.action], ecx + mov [eax+TToolButton.state], tbsNeutral + mov [eax+TToolButton.width], edx + mov [eax+TToolButton.icon], ebx + + jecxz .action_ok + + istype ecx, TAction + jne .action_ok + + exec ecx, TAction:Attach, [.self] + +.action_ok: + exec esi, TToolbar:ForceRefresh + popad + return +endp + + + +method TToolbar.ClearState +begin + pushad + mov esi, [.self] + mov edi, [esi+TToolbar._buttons] + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array] + +.loop: + dec ecx + js .finish + + mov [edi+TToolButton.state], tbsNeutral + add edi, sizeof.TToolButton + jmp .loop + +.finish: + popad + return +endp + + + +method TToolbar._RenderView +begin + pushad + + mov esi, [.self] + mov edi, [esi+TToolbar._buttons] + mov ecx, [edi+TArray.count] + jecxz .finish + + mov ebx, [esi+TToolbar._canvas] + test ebx, ebx + jnz .canvas_ok + + mov eax, ecx + imul eax, [esi+TToolbar._btn_height] + stdcall CreateImage2, eax, [esi+TToolbar._btn_height], FALSE + mov [esi+TToolbar._canvas], eax + mov ebx, eax + +.canvas_ok: + + lea edi, [edi + TArray.array] + xor edx, edx + +.loop: + dec ecx + js .finish + + stdcall DrawToolbarBtn, ebx, edi, edx, 0, [esi+TToolbar._btn_height] + + add edx, [edi+TToolButton.width] + add edi, sizeof.TToolButton + jmp .loop + + +.finish: + inc [esi+TToolbar._canvas_valid] + popad + return +endp + + +proc IsToolButtonDisabled, .btn +begin + push ecx + mov ecx, [.btn] + jecxz .done + + mov ecx, [ecx+TToolButton.action] + jecxz .done + + istype ecx, TMenu + cmove ecx, [ecx+TMenu._enabled] + je .done + + istype ecx, TAction + cmove ecx, [ecx+TAction._enabled] + je .done + + xor ecx, ecx + +.done: + shr ecx, 1 + cmc + pop ecx + return +endp + + + +proc DrawToolbarBtn, .canvas, .pButton, .x, .y, .height +.bounds TBounds +begin + pushad + mov edi, [.pButton] + + mov eax, [.x] + mov ecx, [.y] + mov [.bounds.x], eax + mov [.bounds.y], ecx + + mov eax, [edi+TToolButton.width] + mov ecx, [.height] + mov [.bounds.width], eax + mov [.bounds.height], ecx + + mov ebx, [edi+TToolButton.state] + + lea eax, [.bounds] + stdcall [DrawBox], [.canvas], eax, [GUI.clToolBtnBk+4*ebx], [GUI.tbBorder+4*ebx], [GUI.tbBorderWidth] + + cmp [edi+TToolButton.action], 0 + je .draw_separator + + mov eax, 4 + imul eax, [edi+TToolButton.width] + xor edx, edx + div [esi+TToolbar._btn_height] + + add [.bounds.x], eax + add [.bounds.y], 4 + + mov eax, [GUI.tbPressedOfsX] + mov edx, [GUI.tbPressedOfsY] + + cmp [edi+TToolButton.state], tbsHovered + jne @f + neg eax + neg edx +@@: + cmp [edi+TToolButton.state], tbsPressed + je @f + cmp [edi+TToolButton.state], tbsHovered + je @f + xor eax, eax + xor edx, edx +@@: + add [.bounds.x], eax + add [.bounds.y], edx + + istype [edi+TToolButton.action], TAction + je .action_icon + + mov ecx, [edi+TToolButton.icon] + test ecx, ecx + jz .finish + jmp .draw_icon + +.action_icon: + get ecx, [edi+TToolButton.action], TAction:Icon + test ecx, ecx + jz .finish + +.draw_icon: + stdcall BlendImage, [.canvas], [.bounds.x], [.bounds.y], ecx, 0, 0, [ecx+TImage.width], [ecx+TImage.height] + +.finish: + popad + return + +.draw_separator: + + mov ecx, [edi+TToolButton.width] + sub ecx, 2 + sub [.bounds.height], ecx + shr ecx, 1 + add [.bounds.x], ecx + add [.bounds.y], ecx + mov [.bounds.width], 2 + + lea eax, [.bounds] + stdcall DrawBoxDefault, [.canvas], eax, 0, [GUI.tbSeparatorType], 1 +; stdcall DrawSolidRect, [.canvas], ecx, [.bounds.y], 2, [.bounds.height], [GUI.clToolSeparator] +; stdcall DrawSolidRect, [.canvas], [.bounds.x], 0, [edi+TToolButton.width], 2, clAlizarin + + jmp .finish + + +endp + + + +method TToolbar.Autosize +begin + inherited + mov edx, [.self] + mov edx, [edx+TToolbar._btn_height] + return +endp + + + +method TToolbar.EventMouseEnter +begin +; exec [.self], TToolbar:SimpleSetParam, 0, TToolbar._state, tbsHovered + inherited + return +endp + + +method TToolbar.EventMouseLeave +begin + exec [.self], TToolbar:ClearState + exec [.self], TToolbar:ForceRefresh + inherited + return +endp + + +method TToolbar.EventMouseMove +begin + test [.kbdState], maskBtnLeft + jnz .exit + + exec [.self], TToolbar:ClearState + exec [.self], TToolbar:HitTest, [.x], [.y] + jc .finish + + stdcall IsToolButtonDisabled, eax + jc .finish + + mov [eax+TToolButton.state], tbsHovered + +.finish: + exec [.self], TToolbar:ForceRefresh + +.exit: + inherited [.x], [.y], [.kbdState] + return +endp + + +method TToolbar.EventButtonPress +begin + exec [.self], TToolbar:ClearState + + exec [.self], TToolbar:HitTest, [.x], [.y] + jc .finish + + mov ecx, [eax+TToolButton.action] + jecxz .finish + + stdcall IsToolButtonDisabled, eax + jc .finish + + mov [eax+TToolButton.state], tbsPressed + stdcall SetMouseCapture, [.self] + +.finish: + exec [.self], TToolbar:ForceRefresh + return +endp + + + +method TToolbar.EventButtonRelease +begin + pushad + + stdcall SetMouseCapture, 0 + + mov esi, [.self] + mov edi, [esi+TToolbar._buttons] + mov ecx, [edi+TArray.count] + lea edi, [edi+TArray.array] + + xor edx, edx + +.loop: + dec ecx + js .finish + + cmp [edi+TToolButton.state], tbsPressed + je .end_scan + + add edx, [edi+TToolButton.width] + add edi, sizeof.TToolButton + jmp .loop + +.end_scan: + exec esi, TToolbar:HitTest, [.x], [.y] + jc .finish + + cmp eax, edi + jne .finish + + mov [edi+TToolButton.state], tbsHovered + exec esi, TToolbar:ForceRefresh + + istype [edi+TToolButton.action], TAction + jne .maybe_menu + + exec [edi+TToolButton.action], TAction:Execute, esi + jmp .finish + +.maybe_menu: + istype [edi+TToolButton.action], TMenu + jne .finish + + exec [edi+TToolButton.action], TMenu:Show, esi, edx, [esi+TToolbar._btn_height] + +.finish: + popad + return +endp + + + +endmodule ADDED freshlib/gui/TTreeView.asm Index: freshlib/gui/TTreeView.asm ================================================================== --- /dev/null +++ freshlib/gui/TTreeView.asm @@ -0,0 +1,1554 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TTreeView object class +; +; Target OS: Any +; +; Dependencies: +; Notes: +;_________________________________________________________________________________________ +module "TreeView library" + + +; tree-view item state flags. +tvisExpanded = 1 +tvisSelected = 2 + +; iterate visible items flags + +iifViewport = 1 ; iterate only items that are in the viewport of the control. + ; if not set, the items that are "visible" because of the expanded parent items + ; will cause callback call as well. + + +; TTreeView:HitTest return flags + +tvhtNone = 0 +tvhtIndentation = 1 +tvhtExpandIcon = 2 +tvhtItemIcon = 3 +tvhtItemText = 4 + + +struct TTVItem + . TTItem + + .caption dd ? + .state dd ? + .imgNormal dd ? ; TImage + .imgSelected dd ? ; TImage + + .xwidth dd ? + + .UserData0 dd ? ; 6 dword for user data. + .UserData1 dd ? + .UserData2 dd ? + .UserData3 dd ? + .UserData4 dd ? + .UserData5 dd ? + + .shift = 6 +ends + + + +object TTreeView, TScrollable + + ._canvas dd ? + ._canvas_valid dd ? + + ._root dd ? ; The first root TTVItem element. Its siblings stay on root. + ._index dd ? ; TArray with dword index to the displayable items of ._items array. + + ._focused dd ? + + ._line_height dd ? + ._text_offset dd ? + ._margin_top dd ? + ._margin_left dd ? + + ._max_width dd ? ; 0 means unknown + + ._on_focused_change dd ? + + ._free_item_proc dd ? + + param .root, ._root, .SetRoot + + param .OnFocusItem, ._on_focused_change, ._on_focused_change + param .FocusedItem, ._focused, .SetFocused + param .FreeItemProc, ._free_item_proc, ._free_item_proc + + method .SetRoot, .value + + method .SetFocused, .value + + method .Create, .parent + method .Destroy + + method .ClearSelection, .mask + method .IterateVisibleItems, .start_item, .flags, .callback, .user + method .HitTest, .x, .y + + method .ScrollToBottom + + method .ContentChanged + + method .__RebuildIndex + method .__RebuildWidths + + method .ForceRefresh + method .__UpdateImages + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + + method .__RenderTree + method .UpdateScrollBar + + method .Resize, .newWidth, .newHeight + + method .EventKeyPress, .utf8, .scancode, .kbdState + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonDoubleClick, .button, .kbdState, .x, .y + method .EventScroll, .direction, .command, .value + + method .EventFocusIn + method .EventFocusOut + + method .SearchOrCreate, .MatchProc, .InitProc, .pParent, .UserParam ; searches the children of the [.iParent] element and returns the first matched (according to the MatchProc) + ; If none match adds new element and returns its index (in EAX) and pointer (in EDX) +endobj + + + +interface TTreeView.IterateCallback, .pTreeView, .pItem, .yItem, .user +interface TTreeView.OnFocusItem, .pTreeView, .pFocused, .pUnfocused +interface TTreeView.ItemProcess, .pItem, .user_data + + +proc TTreeView.FreeItem, .pItem +begin + push eax + + mov eax, [.pItem] + stdcall StrDel, [eax+TTVItem.caption] + stdcall FreeMem, eax + + pop eax + return +endp + + + +method TTreeView.Create ; .parent +begin + inherited [.parent] + + pushad + mov esi, [.self] + + mov [esi+TTreeView._margin_top], 4 + mov [esi+TTreeView._margin_left], 4 + + stdcall GetFontMetrics, [GUI.DefaultFont] + add eax, 4 + add ebx, 2 + mov [esi+TTreeView._line_height], eax + mov [esi+TTreeView._text_offset], ebx + + set esi, TTreeView:WantFocus, TRUE + + mov [esi+TTreeView._free_item_proc], TTreeView.FreeItem + popad + return +endp + + + + +method TTreeView.Destroy +begin + push ebx + + mov ebx, [.self] + + set ebx, TTreeView:Visible, FALSE ; in order to not try to update the view. + + stdcall FreeMem, [ebx+TTreeView._index] + stdcall TreeTearAndFreeAll, [ebx+TTreeView._root], [ebx+TTreeView._free_item_proc] + + pop ebx + + inherited + return +endp + + +method TTreeView.ContentChanged +begin + push esi + mov esi, [.self] + + exec esi, TTreeView:__RebuildWidths + exec esi, TTreeView:__RebuildIndex + exec esi, TTreeView:UpdateScrollBar + + and [esi+TTreeView._canvas_valid], 0 + exec esi, TTreeView:RectChanged2, 0 + + pop esi + return +endp + + + +method TTreeView.UpdateScrollBar +begin + pushad + + mov esi, [.self] + mov ecx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + mov edi, [GUI.boxBorderWidth] + + mov ebx, edx + + sub ecx, [GUI.scrollWidth] ; width - scrollWidth + sub ebx, [GUI.scrollWidth] ; height - scrollWidth + + sub ecx, edi ; width - boxBorderWidth + sub ebx, edi ; height - boxBorderWidth + + shl edi, 1 + + sub edx, edi ; total client height - borders. + js .finish + + set esi, TTreeView:PageX, ecx + + mov eax, [esi+TTreeView._max_width] + sub eax, ecx + jns @f + xor eax, eax +@@: + cmp eax, [esi + TTreeView._scrXY.pos] + jge .set_max_x + + set esi, TTreeView:PosX, eax + +.set_max_x: + set esi, TTreeView:MaxX, eax + + mov ecx, [esi+TTreeView._line_height] + mov eax, edx + cdq + + div ecx + test edx, edx + jz @f + inc eax +@@: + set esi, TTreeView:PageY, eax + + mov ebx, [esi+TTreeView._index] + test ebx, ebx + jz .finish + + mov ebx, [ebx+TArray.count] + sub ebx, eax + inc ebx + jns @f + xor ebx, ebx +@@: + cmp ebx, [esi+TTreeView._scrXY.pos + 4] + jge .set_start_y + + set esi, TTreeView:PosY, ebx + +.set_start_y: + set esi, TTreeView:MaxY, ebx + +.finish: + popad + return +endp + + + +method TTreeView.ScrollToBottom +begin + push eax ebx + + mov ebx, [.self] + + mov eax, [ebx+TTreeView._index] + mov eax, [eax+TArray.count] + sub eax, [ebx+TTreeView._scrXY.page+4] + jbe .finish + + inc eax + set ebx, TTreeView:PosY, eax + +.finish: + pop ebx eax + return +endp + + + + + +method TTreeView.ForceRefresh +begin + mov eax, [.self] + and [eax+TTreeView._canvas_valid], 0 + inherited + return +endp + + + +method TTreeView.SelfPaint ; .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height +begin + pushad + mov esi, [.self] + + cmp [esi+TTreeView._canvas_valid], 0 + jne @f + exec esi, TTreeView:__RenderTree +@@: + mov ebx, [esi+TTreeView._canvas] + test ebx, ebx + jz .finish + + stdcall BlendImage, [.pDstImage], [.xDst], [.yDst], ebx, [.xSrc], [.ySrc], [.width], [.height] + +.finish: + popad + inherited [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + return +endp + + + + +method TTreeView.__UpdateImages +begin + pushad + mov esi, [.self] + + mov ebx, [esi+TTreeView._visible] + mov edi, [esi+TTreeView._canvas] + + mov ecx, [esi+TTreeView._width] + mov edx, [esi+TTreeView._height] + + test ebx, ebx + jz .destroy + + test edi, edi + jz .create_new + +; check the size + + cmp ecx, [edi+TImage.width] + ja .destroy + + cmp edx, [edi+TImage.height] + jbe .setwrap + +.destroy: + stdcall DestroyImage, edi ; canvas + + xor eax, eax + mov [esi+TTreeView._canvas], eax + + test ebx, ebx + jz .exit + + +.create_new: + +; new size - make it a little bit bigger. + + lea eax, [ecx+256] + lea ebx, [edx+256] + + stdcall CreateImage2, eax, ebx, FALSE + mov [esi+TTreeView._canvas], eax + mov edi, eax + +.setwrap: + mov [edi+TImage.wrapW], ecx + mov [edi+TImage.wrapH], edx + +.exit: + and [esi+TTreeView._canvas_valid], 0 + popad + inherited + return +endp + + + + + +method TTreeView.Resize +begin + inherited [.newWidth], [.newHeight] + exec [.self], TTreeView:UpdateScrollBar + return +endp + + + + +method TTreeView.__RebuildIndex +begin + pushad + + mov esi, [.self] + xor ebx, ebx ; max_width + + stdcall CreateArray, 4 + mov edx, eax + + mov edi, [esi+TTreeView._root] + test edi, edi + jz .finish + +.loop: + stdcall AddArrayItems, edx, 1 + mov [eax], edi + + cmp ebx, [edi+TTVItem.xwidth] + cmovl ebx, [edi+TTVItem.xwidth] + + test [edi+TTVItem.state], tvisExpanded + jz .next + + mov eax, [edi+TTVItem.firstChild] + test eax, eax + cmovnz edi, eax + jnz .loop + +.next: + mov eax, [edi+TTVItem.next] + test eax, eax + cmovnz edi, eax + jnz .loop + + mov eax, [edi+TTVItem.parent] + test eax, eax + cmovnz edi, eax + jnz .next + +.finish: + xchg edx, [esi+TTreeView._index] + stdcall FreeMem, edx + + mov [esi+TTreeView._max_width], ebx + + + popad + return +endp + + + +method TTreeView.__RebuildWidths +begin + pushad + mov esi, [.self] + mov ebx, [esi+TTreeView._line_height] + add ebx, [esi+TTreeView._margin_left] + + mov edi, [esi+TTreeView._root] + test edi, edi + jz .finish + +.loop_in: + add ebx, [esi+TTreeView._line_height] +.loop: +; cmp [edi+TTVItem.xwidth], 0 ; +; jne .next + +; compute xwidth + stdcall StrPtr, [edi+TTVItem.caption] + stdcall GetTextBounds, eax, [eax+string.len], [GUI.DefaultFont] + add eax, ebx + mov [edi+TTVItem.xwidth], eax + +; go to the children + +.next: + mov eax, [edi+TTVItem.firstChild] + test eax, eax + cmovnz edi, eax + jnz .loop_in + +; go to next sibling. +.nexts: + mov eax, [edi+TTVItem.next] + test eax, eax + cmovnz edi, eax + jnz .loop + +; go to the parent. + sub ebx, [esi+TTreeView._line_height] + mov eax, [edi+TTVItem.parent] + test eax, eax + cmovnz edi, eax + jnz .nexts + +.finish: + popad + return +endp + + + + +method TTreeView.__RenderTree +.bounds TBounds +begin + pushad + mov esi, [.self] + +; clear the background + xor eax, eax + mov [.bounds.x], eax + mov [.bounds.y], eax + + mov ecx, [esi+TTreeView._width] + mov edx, [esi+TTreeView._height] + mov [.bounds.width], ecx + mov [.bounds.height], edx + + lea eax, [.bounds] + stdcall [DrawBox], [esi+TTreeView._canvas], eax, [GUI.clTreeViewBack], bxNone, 0 + +; check the index + mov edi, [esi+TTreeView._index] + test edi, edi + jz .end_paint + + get ecx, esi, TTreeView:PosY + cmp ecx, [edi+TArray.count] + jae .end_paint + + mov edi, [edi + TArray.array + 4*ecx] ; The first TTVItem + + mov ebx, -2 ; current tree level -1 (at .loop_in it is incremented and becomes the exact value). + mov eax, edi +.lvl: + inc ebx + mov eax, [eax+TTVItem.parent] + test eax, eax + jnz .lvl + + mov edx, [esi+TTreeView._margin_top] + +.loop_in: + inc ebx + +.loop: + stdcall TTreeView.__PaintOneItem, esi, edi, ebx, edx + add edx, [esi+TTreeView._line_height] + cmp edx, [esi+TTreeView._height] + jae .end_paint + + test [edi+TTVItem.state], tvisExpanded + jz .nexts + +.next: + mov eax, [edi+TTVItem.firstChild] + test eax, eax + cmovnz edi, eax + jnz .loop_in + +.nexts: + mov eax, [edi+TTVItem.next] + test eax, eax + cmovnz edi, eax + jnz .loop + + dec ebx + mov eax, [edi+TTVItem.parent] + test eax, eax + cmovnz edi, eax + jnz .nexts + +.end_paint: + + lea eax, [.bounds] + mov ecx, [GUI.tvBorder] + or ecx, bxNoFill + stdcall [DrawBox], [esi+TTreeView._canvas], eax, [GUI.clTreeViewBack], ecx, [GUI.boxBorderWidth] + + + inc [esi+TTreeView._canvas_valid] + popad + return +endp + + + + +proc TTreeView.__PaintOneItem, .pTreeView, .pItem, .Level, .y +.back dd ? +.text dd ? +begin + pushad + + mov esi, [.pTreeView] + mov edi, [.pItem] + + mov ecx, [.Level] + imul ecx, [esi+TTreeView._line_height] + add ecx, [esi+TTreeView._margin_left] + sub ecx, [esi+TTreeView._scrXY.pos] ; X coordinate of the text! + +; choose colors + mov eax, [GUI.clTreeViewText] + mov ebx, [GUI.clTreeViewBack] + + test [edi+TTVItem.state], tvisSelected + jz .sel_ok + + mov eax, [GUI.clTreeSelectedTxt] + mov ebx, [GUI.clTreeSelected] + +.sel_ok: + + cmp edi, [esi+TTreeView._focused] + jne .focus_ok + + mov eax, [GUI.clTreeFocusedTxt] + mov ebx, [GUI.clTreeFocused] + + cmp esi, [__FocusedWindow] + je .focus_ok + + mov eax, [GUI.clTreeFocused2Txt] + mov ebx, [GUI.clTreeFocused2] + +.focus_ok: + + mov [.text], eax + mov [.back], ebx + + mov edx, [.y] + +; draw lines + + push ecx edx edi + + mov eax, [esi+TTreeView._line_height] + sar eax, 1 + add ecx, eax + lea ebx, [edx+eax] + +; cmp [edi+TTVItem.firstChild], 0 +; jne .skip_line + + stdcall BlendSolidRect, [esi+TTreeView._canvas], ecx, ebx, eax, 1, [GUI.clTreeViewLines] + + mov ebx, eax + cmp [edi+TTVItem.next], 0 + cmovnz ebx, [esi+TTreeView._line_height] + +.line_loop: + stdcall BlendSolidRect, [esi+TTreeView._canvas], ecx, edx, 1, ebx, [GUI.clTreeViewLines] + +.skip_line: + mov ebx, [esi+TTreeView._line_height] + sub ecx, ebx + js .end_lines + + mov edi, [edi+TTVItem.parent] + test edi, edi + jz .end_lines + + cmp [edi+TTVItem.next], 0 + jne .line_loop + jmp .skip_line + +.end_lines: + pop edi edx ecx + +; draw state icon + + cmp [edi+TTVItem.firstChild], 0 + je .state_icon_ok + +; which icon + mov ebx, [edi+TTVItem.state] + and ebx, tvisExpanded + mov ebx, [GUI.tvIcons+8*ebx] ; TImage with the expand/collapse icon + + push ecx edx + +; center the icon in X + mov eax, [esi+TTreeView._line_height] + sub eax, [ebx+TImage.width] + sar eax, 1 + adc ecx, eax + +; center the icon in Y + mov eax, [esi+TTreeView._line_height] + sub eax, [ebx+TImage.height] + sar eax, 1 + adc edx, eax + + stdcall BlendImage, [esi+TTreeView._canvas], ecx, edx, ebx, 0, 0, [ebx+TImage.width], [ebx+TImage.height] + pop edx ecx + +.state_icon_ok: + +; draw item icon + + add ecx, [esi+TTreeView._line_height] + + mov ebx, [edi+TTVItem.imgSelected] + test ebx, ebx + jz .icon_normal + + test [edi+TTVItem.state], tvisSelected + jnz .draw_icon + +.icon_normal: + mov ebx, [edi+TTVItem.imgNormal] + test ebx, ebx + jz .icon_ok + +.draw_icon: + push ecx edx + +; center the icon + mov eax, [esi+TTreeView._line_height] + sub eax, [ebx+TImage.width] + sar eax, 1 + add ecx, eax + + mov eax, [esi+TTreeView._line_height] + sub eax, [ebx+TImage.height] + sar eax, 1 + add edx, eax + + stdcall BlendImage, [esi+TTreeView._canvas], ecx, edx, ebx, 0, 0, [ebx+TImage.width], [ebx+TImage.height] + + pop edx ecx + + add ecx, [esi+TTreeView._line_height] + +.icon_ok: + stdcall StrPtr, [edi+TTVItem.caption] + jc .finish + + test eax, eax + jz .finish + + push edx + stdcall GetTextBounds, eax, [eax+string.len], [GUI.DefaultFont] + pop edx + add eax, 4 + + stdcall BlendSolidRect, [esi+TTreeView._canvas], ecx, edx, eax, [esi+TTreeView._line_height], [.back] + + add edx, [esi+TTreeView._text_offset] + add ecx, 2 + + stdcall StrPtr, [edi+TTVItem.caption] + stdcall DrawString, [esi+TTreeView._canvas], eax, [eax+string.len], ecx, edx, [GUI.DefaultFont], [.text] + +.finish: + popad + return +endp + + + + +method TTreeView.EventKeyPress ;, .utf8, .scancode, .kbdState +begin + inherited [.utf8], [.scancode], [.kbdState] + jc .exit + + pushad + + mov esi, [.self] + mov edi, [esi+TTreeView._index] + test edi, edi + jz .not_processed + + mov eax, [.utf8] + test eax, eax + jz .no_char + +; search the treeview??? + +.not_processed: + clc + popad + +.exit: + return + +.no_char: + mov eax, [.scancode] + test [.kbdState], maskCtrl + jnz .move_nodes + + cmp eax, keyUpNumpad + je .up + cmp eax, keyUp + je .up + + cmp eax, keyDownNumpad + je .down + cmp eax, keyDown + je .down + + cmp eax, keyPgUpNumpad + je .pgup + cmp eax, keyPgUp + je .pgup + + cmp eax, keyPgDnNumpad + je .pgdn + cmp eax, keyPgDown + je .pgdn + + cmp eax, keyHomeNumpad + je .home + cmp eax, keyHome + je .home + + cmp eax, keyEndNumpad + je .end + cmp eax, keyEnd + je .end + + cmp eax, keyLeftNumpad + je .left + cmp eax, keyLeft + je .left + + cmp eax, keyRightNumpad + je .right + cmp eax, keyRight + je .right + + jmp .not_processed + + +.move_nodes: + cmp eax, keyUpNumpad + je .move_node_up + cmp eax, keyUp + je .move_node_up + + cmp eax, keyDownNumpad + je .move_node_down + cmp eax, keyDown + je .move_node_down + + jmp .not_processed + + +.move_node_up: + mov edx, [esi+TTreeView._focused] + test edx, edx + jz .processed + + cmp edx, [esi+TTreeView._root] + je .processed + + stdcall ListIndexOf, edi, edx + jc .processed + + dec eax + js .processed + + mov ecx, [edi + TArray.array + 4*eax] + test ecx, ecx + jz .processed + + stdcall TreeTearItem, edx + stdcall TreeInsBefore, edx, ecx + + cmp ecx, [esi+TTreeView._root] + jne .refresh_after_move + + mov [esi+TTreeView._root], edx + +.refresh_after_move: + exec esi, TTreeView:ContentChanged + jmp .processed + + +.move_node_down: + mov edx, [esi+TTreeView._focused] + test edx, edx + jz .processed + + stdcall ListIndexOf, edi, edx + jc .processed + + inc eax + cmp eax, [edi+TArray.count] + jae .processed + + mov ecx, [edi + TArray.array + 4*eax] + test ecx, ecx + jz .processed + + stdcall TreeTearItem, edx + stdcall TreeInsAfter, edx, ecx + + cmp edx, [esi+TTreeView._root] + jne .refresh_after_move + + mov [esi+TTreeView._root], ecx + jmp .refresh_after_move + +;------------------------------------------------------------------ + +.left: + mov eax, [esi+TTreeView._focused] + cmp [eax+TTVItem.firstChild], 0 + je .goto_parent + + test [eax+TTVItem.state], tvisExpanded + jnz .collapse + +.goto_parent: + mov eax, [eax+TTVItem.parent] + test eax, eax + jz .exit_processed + + push eax + stdcall ListIndexOf, edi, eax + mov ebx, eax + pop eax + jmp .set_focused + +.collapse: + and [eax+TTVItem.state], not tvisExpanded + + and [esi+TTreeView._canvas_valid], 0 + exec esi, TTreeView:__RebuildIndex + exec esi, TTreeView:UpdateScrollBar + jmp .processed + +.right: + mov eax, [esi+TTreeView._focused] + cmp [eax+TTVItem.firstChild], 0 + je .down + + test [eax+TTVItem.state], tvisExpanded + jnz .down + +;expand + call .prev_selection + + or [eax+TTVItem.state], tvisExpanded + + and [esi+TTreeView._canvas_valid], 0 + exec esi, TTreeView:__RebuildIndex + exec esi, TTreeView:UpdateScrollBar + jmp .processed + + +.home: + mov edx, [edi+TArray.count] + jmp .moveup + +.up: + mov edx, 1 + jmp .moveup + +.pgup: + get edx, esi, TTreeView:PageY + dec edx + + +.moveup: + mov eax, [esi+TTreeView._focused] + test eax, eax + jz .focus_the_first + + stdcall ListIndexOf, edi, eax + jc .focus_the_first + + mov ebx, eax + sub ebx, edx + jns .index_ok + +.focus_the_first: + xor ebx, ebx + +.index_ok: + cmp ebx, [edi+TArray.count] + jae .processed + + mov eax, [edi + TArray.array + 4*ebx] + test eax, eax + jz .processed + +.set_focused: + call .prev_selection + set esi, TTreeView:FocusedItem, eax + + mov eax, [esi+TTreeView._scrXY.pos + 4] + add eax, [esi+TTreeView._scrXY.page + 4] + + cmp ebx, eax + jae .scroll_y + + cmp ebx, [esi+TTreeView._scrXY.pos + 4] + jae .processed + +.scroll_y: + set esi, TTreeView:PosY, ebx + +.processed: + exec esi, TTreeView:RectChanged2, 0 + +.exit_processed: + stc + popad + return + + +.end: + mov edx, [edi+TArray.count] + jmp .move_down + +.down: + mov edx, 1 + jmp .move_down + +.pgdn: + get edx, esi, TTreeView:PageY + dec edx + + +.move_down: + mov eax, [esi+TTreeView._focused] + test eax, eax + jz .focus_the_first + + stdcall ListIndexOf, edi, eax + jc .focus_the_first + + mov ebx, eax + add ebx, edx + jc .processed + + cmp ebx, [edi+TArray.count] + jb .posok + +.focus_last: + mov ebx, [edi+TArray.count] + dec ebx + js .processed + +.posok: + call .prev_selection + + mov eax, [edi + TArray.array + 4*ebx] + test eax, eax + jz .processed + + set esi, TTreeView:FocusedItem, eax + + get ecx, esi, TTreeView:PageY + jecxz .processed + + sub ecx, 2 + sub ebx, ecx + + cmp ebx, [esi+TTreeView._scrXY.pos + 4] + jle .processed + + set esi, TTreeView:PosY, ebx + jmp .processed + +; local procedure +.prev_selection: + push eax + test [.kbdState], maskShift + jnz .sel_up_ok + + exec esi, TTreeView:ClearSelection, not tvisSelected + +.sel_up_ok: + pop eax + retn +endp + + + +method TTreeView.EventButtonPress ;, .button, .kbdState, .x, .y +begin + inherited [.button], [.kbdState], [.x], [.y] + jc .processed + + pushad + + mov esi, [.self] + + exec esi, TTreeView:HitTest, [.x], [.y] + + cmp eax, tvhtNone + je .finish + + cmp eax, tvhtExpandIcon + je .expand_collapse + + test [.kbdState], maskShift or maskCtrl + jnz @f + + exec esi, TTreeView:ClearSelection, not tvisSelected + +@@: + set esi, TTreeView:FocusedItem, edx + jmp .finish + +.expand_collapse: + + xor [edx+TTVItem.state], tvisExpanded + + and [esi+TTreeView._canvas_valid], 0 + exec esi, TTreeView:__RebuildIndex + exec esi, TTreeView:UpdateScrollBar + +.finish: + exec [.self], TWindow:RectChanged2, 0 + + popad + +.processed: + return +endp + + +method TTreeView.EventButtonDoubleClick ;, .button, .kbdState, .x, .y +begin + pushad + + mov esi, [.self] + + exec esi, TTreeView:HitTest, [.x], [.y] + + cmp eax, tvhtNone + je .processed + + cmp eax, tvhtExpandIcon + je .expand_collapse + cmp eax, tvhtItemIcon + je .expand_collapse + cmp eax, tvhtItemText + jne .processed + +.expand_collapse: + + xor [edx+TTVItem.state], tvisExpanded + + exec [.self], TTreeView:ContentChanged + popad + +.processed: + inherited [.button], [.kbdState], [.x], [.y] + return +endp + + + + + +; method .IterateVisibleItems, .start_item, .flags, .callback, .user +method TTreeView.IterateVisibleItems +.end dd ? + +.min_item dd ? +.maxy dd ? +begin + pushad + +; mov esi, [.self] +; +; mov eax, [esi+TTreeView._height] +; mov [.maxy], eax +; +; mov eax, [esi+TTreeView._items] +; mov eax, [eax+TArray.count] +; +; mov ecx, [.start_item] +; get edx, esi, TTreeView:PosY +; +; shl eax, TTVItem.shift +; shl ecx, TTVItem.shift +; shl edx, TTVItem.shift +; +; add eax, [esi+TTreeView._items] +; add ecx, [esi+TTreeView._items] +; add edx, [esi+TTreeView._items] +; +; lea eax, [eax+TArray.array] +; lea ecx, [ecx+TArray.array] +; lea edx, [edx+TArray.array] +; +; mov [.end], eax +; mov [.min_item], edx +; +; xor edx, edx +; dec edx ; current level = $ffffffff - unsigned cmp +; +; xor edi, edi ; current Y coordinate. +; add edi, [esi+TTreeView._margin_top] ; top margin. +; +;.item_loop: +; cmp ecx, [.end] +; jae .end_items +; +;; cmp [ecx+TTVItem.level], edx +; ja .next_item +; je .equal +; +;; below +;; mov edx, [ecx+TTVItem.level] +; +;.equal: +; test [ecx+TTVItem.state], tvisExpanded +; jz .visible +; +; inc edx +; +;.visible: +; test [.flags], iifViewport +; jz .yes +; +; cmp ecx, [.min_item] +; jb .next_item +; +; cmp edi, [.maxy] +; ja .end_items +; +;.yes: +; pushad +; stdcall [.callback], esi, ecx, edi, [.user] +; popad +; jc .found +; +; add edi, [esi+TTreeView._line_height] +; +;.next_item: +; add ecx, sizeof.TTVItem +; jmp .item_loop +; +;.end_items: +; clc +; popad +; return +; +;.found: +; mov [esp+regEAX*4], ecx + popad + return +endp + + + + +; returns: +; eax - hit test flag tvhtXXXXXXXXX +; edx - TTVItem (if eax in [tvhtExpandIcon, tvhtItemIcon, tvhtItemText) +; ecx - the index of the TTVItem in the _index array. + +method TTreeView.HitTest +begin + pushad + + mov esi, [.self] + + mov eax, [.y] + sub eax, [esi+TTreeView._margin_top] + mov ecx, [esi+TTreeView._line_height] + + xor edx, edx + + div [esi+TTreeView._line_height] + mov ecx, eax + add ecx, [esi+TTreeView._scrXY.pos + 4] ; index + + mov ebx, [esi+TTreeView._index] + test ebx, ebx + jz .not_found + + cmp ecx, [ebx+TArray.count] + jae .not_found + + mov edi, [ebx+4*ecx+TArray.array] ; pointer to TTVItem + + or edx, -1 + mov eax, edi + +.lvl_loop: + inc edx + mov eax, [eax+TTVItem.parent] + test eax, eax + jnz .lvl_loop + + imul edx, [esi+TTreeView._line_height] + add edx, [esi+TTreeView._margin_left] + + mov eax, tvhtIndentation + + cmp [.x], edx + jb .finish + + add edx, [esi+TTreeView._line_height] + mov eax, tvhtExpandIcon + + cmp [.x], edx + jb .finish + + add edx, [esi+TTreeView._line_height] + + mov eax, tvhtItemIcon + + cmp [.x], edx + jb .finish + + mov eax, tvhtItemText + +.finish: + mov [esp+regEDX*4], edi + mov [esp+regEAX*4], eax + mov [esp+regECX*4], ecx + popad + return + +.not_found: + xor edi, edi + mov eax, tvhtNone + jmp .finish + +endp + + + +method TTreeView.ClearSelection +begin + pushad + + mov esi, [.self] + mov edi, [esi+TTreeView._root] + test edi, edi + jz .finish + + mov ebx, [.mask] + +.loop: + and [edi+TTVItem.state], ebx + + mov eax, [edi+TTVItem.firstChild] + test eax, eax + cmovnz edi, eax + jnz .loop + +.next: + mov eax, [edi+TTVItem.next] + test eax, eax + cmovnz edi, eax + jnz .loop + + mov eax, [edi+TTVItem.parent] + test eax, eax + cmovnz edi, eax + jnz .next + +.finish: + and [esi+TTreeView._canvas_valid], 0 + popad + return +endp + + + + +method TTreeView.SetRoot ; , .value +begin + pushad + + mov esi, [.self] + mov edx, [.value] + + xchg edx, [esi+TTreeView._root] + + stdcall TreeTearAndFreeAll, edx, [esi+TTreeView._free_item_proc] + + xor eax, eax + xchg eax, [esi+TTreeView._focused] + + exec esi, TTreeView:ContentChanged + + popad + return +endp + + +method TTreeView.SetFocused ;, .value +begin + pushad + mov esi, [.self] + mov ecx, [.value] + + test ecx, ecx + jz .selected_ok + + or [ecx+TTVItem.state], tvisSelected + +.selected_ok: + xchg ecx, [esi+TTreeView._focused] + + cmp ecx, [esi+TTreeView._focused] + je .finish + + mov eax, [esi+TTreeView._on_focused_change] + test eax, eax + jz .finish + + push esi + stdcall eax, esi, [esi+TTreeView._focused], ecx ; interface TTreeView.OnFocusItem2, .pTreeView, .pFocused, .pUnfocused + pop esi + +.finish: + and [esi+TTreeView._canvas_valid], 0 + exec esi, TWindow:RectChanged2, 0 + + popad + return +endp + + +; method .SearchOrCreate, .MatchProc, .InitProc, .pParent, .UserParam +method TTreeView.SearchOrCreate +begin + pushad + + mov esi, [.self] + mov edx, [.pParent] + + test edx, edx + cmovz edx, [esi+TTreeView._root] + jz @f + mov edx, [edx+TTVItem.firstChild] +@@: + mov ecx, edx ; previous item + +.search_loop: + test edx, edx + jz .not_found + + pushad + stdcall [.MatchProc], edx, [.UserParam] + popad + jc .found + + mov ecx, edx + mov edx, [edx+TTVItem.next] + jmp .search_loop + +.found: + mov [esp+4*regEAX], edx + + stc + popad + return + + +.not_found: + stdcall GetMem, sizeof.TTVItem + mov [esp+4*regEAX], eax + + test ecx, ecx + jnz .add_after + + cmp [.pParent], ecx ; ecx == 0 here! + jne .add_child + + mov ecx, [esi+TTreeView._root] + test ecx, ecx + jnz .append_to_root + +; it is the first root element! + mov [esi+TTreeView._root], eax + jmp .do_init + +.append_to_root: + cmp [ecx+TTVItem.next], 0 + cmovne ecx, [ecx+TTVItem.next] + jne .append_to_root + jmp .add_after + +.add_child: + stdcall TreeAppendChild, eax, [.pParent] + jmp .do_init + +.add_after: + stdcall TreeInsAfter, eax, ecx + +.do_init: + pushad + stdcall [.InitProc], eax, [.UserParam] + popad + + clc + popad + return +endp + + + +method TTreeView.EventScroll ; , .direction, .command, .value +begin + inherited [.direction], [.command], [.value] + mov eax, [.self] + and [eax+TTreeView._canvas_valid], 0 + exec eax, TTreeView:RectChanged2, 0 + return +endp + + + +method TTreeView.EventFocusIn +begin + push eax + mov eax, [.self] + and [eax+TTreeView._canvas_valid], 0 + exec eax, TTreeView:RectChanged2, 0 + pop eax + inherited + return +endp + + +method TTreeView.EventFocusOut +begin + push eax + mov eax, [.self] + and [eax+TTreeView._canvas_valid], 0 + exec eax, TTreeView:RectChanged2, 0 + pop eax + inherited + return +endp + + +endmodule ADDED freshlib/gui/TWindow.asm Index: freshlib/gui/TWindow.asm ================================================================== --- /dev/null +++ freshlib/gui/TWindow.asm @@ -0,0 +1,1937 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TWindow object class +; +; Target OS: Any +; +; Dependencies: +; +; Notes: TWindow is the common ancestor of all visible on the screen controls. +; This file contains only OS independent part of the library and includes +; the OS dependent files. +;_________________________________________________________________________________________ +module "TWindow library" + +; Interfaces for the OS dependent procedures + +; NOTICE: Some of them are not needed, so can be removed. + + +;----------------------------------------------------------------------------------------- +; Creates OS window, according to the content of TWindow structure [.pWindow] +; +; Notice, that this OS windows are created ONLY for the visible top level windows. +; +;----------------------------------------------------------------------------------------- +interface _CreateWindow, .pWindow + +;----------------------------------------------------------------------------------------- +; Destroy the OS window. The OS windows are actually destroyed when invisible and then +; recreated when needed. +;----------------------------------------------------------------------------------------- +interface _DestroyWindow, .hwnd + + +interface _RefreshWindowRect, .hwnd, .x, .y, .width, .height +interface _SetWindowTextUtf8, .hwnd, .hString +interface _SetModalTowards, .hwnd, .hwndParent +interface _FinalizeModal, .hwnd, .hwndParent + +; Moves the window to the position from the TWindow._x, TWindow._y fields. +interface _MoveWindow, .pWindow +interface _ResizeWindow, .pWindow + +interface _SetFocus, .hwnd + +interface _SetWindowState, .pWindow + +; returns in EAX:EBX X and Y size of the screen. +interface _GetScreenSize + +; probably not needed, but will keep them for some time. + +;interface _ClientToScreen, .hwnd, .x, .y +;interface _GetWindowStruct, .hwin +;interface _SetWindowStruct, .hwin, .value +;interface _ShowWindow, .hwnd, .flag +;interface _SetWindowBorder, .hwnd, .brdType +;interface _GetWindowBounds, .hwnd, .pBounds +;interface _SetWindowBounds, .hwnd, .pBounds +;interface _CreateNullWindow +;interface _GetParent, .hwnd +;interface _GetChildren, .hwnd +;interface _GetVisible, .hwnd +;interface _AddChild, .hwnd, .child +;interface _GetWindowTextUtf8, .hwnd, .ptrUtf8 +;interface _EnableWindow, .hwnd, .flag +;interface _SetTransientTowards, .hwnd, .hwndParent + + +include '%TargetOS%/windows.asm' + + + +; Border kind of window. +borderNone = 0 +borderFull = 1 +borderModal = 2 +borderToolbox = 3 + +; Window behavior flags for the param .Behavior / ._behavior + +wbUseTabKeys = 1 ; if set, the Tab/Shift+Tab will not work for passing focus to the next/previous window. +wbUseEnterKey = 2 ; if set, Enter key will not be used for submitting forms. +wbUseEscapeKey = 4 ; if set, Escape key will not be used for canceling forms. + +wstMaximizedVert = 1 +wstMaximizedHorz = 2 +wstMinimized = 4 + +; SelfPaint operations + +object TWindow, TObject + + .handle dd ? ; it is handle to the system provided window. + +if TargetOS eq Linux + .sync_counter dd ? + .sync_valueLo dd ? + .sync_valueHi dd ? + .context dd ? +end if + + ._x dd ? + ._y dd ? + ._width dd ? + ._height dd ? + + ._border dd ? ; has meaning only for the top level windows! + + ._cursor dd ? ; mouse cursor. + + ._winicons dd ? ; TArray of pointers to TImage. How these images will be used is OS dependent. + + ._caption dd ? ; string handle with window caption. + + ._enabled dd ? + + ._visible dd ? + ._window_state dd ? ; has meaning only for top-level windows. Constants wstXXXXXXX + + ._font dd ? + + ._behavior dd ? + + .__self_focus dd ? + .__focused_child dd ? ; what child of the window is last focused. + + .__action dd ? + .__menu dd ? + +; window screen image + + ._screen dd ? ; TImage containing the image of the window with all children composited. + ._rect_list dd ? ; array of rectangles containing all the changed rectangles of the window. + + ._user_data dd ? + + if defined options.Threads & options.Threads + ._rect_mx TMutex + end if + +; window user event handlers + + ._OnSelfPaint dd ? + ._OnScroll dd ? + ._OnKeyPressed dd ? + ._OnKeyReleased dd ? + ._OnFocusIn dd ? + ._OnFocusOut dd ? + +; user mouse events handlers + + ._OnMouseMove dd ? + ._OnButtonPressed dd ? + ._OnButtonReleased dd ? + ._OnDoubleClick dd ? + +; parameters + + param .OSWindow, .GetOSWindow, NONE ; the first window down the tree, that has window handle. + + param .Action, .__action, .SetAction + param .Menu, .__menu, .__menu + + param .x, ._x, .SetX + param .y, ._y, .SetY + param .width, ._width, .SetWidth + param .height, ._height, .SetHeight + param .SplitCell, NONE, .SetSplitCell + + param .border, ._border, ._border + param .WinIcons, ._winicons, .AddWinIcon + + param .Cursor, ._cursor, ._cursor + + param .Font, ._font, ._font + + param .Visible, ._visible, .SetVisible + param .Behavior, ._behavior, ._behavior + param .WindowState, ._window_state, .SetWindowState + + param .OnScreen, .GetOnScreen, NONE + param .Caption, .GetCaption, .SetCaption + + param .Enabled, .GetEnabled, .SetEnabled + param .GlobalEnabled, .GetGlobalEnabled, NONE + + param .WantFocus, .GetWantFocus, .__self_focus + + param .Screen, .GetImgScreen, NONE + +; Event handlers + + param .OnFocusIn, ._OnFocusIn, ._OnFocusIn + param .OnFocusOut, ._OnFocusOut, ._OnFocusOut + + param .OnSelfPaint, ._OnSelfPaint, .SetSelfPaint + + param .OnScroll, ._OnScroll, ._OnScroll + param .OnKeyPressed, ._OnKeyPressed, ._OnKeyPressed + param .OnKeyReleased, ._OnKeyReleased, ._OnKeyReleased + + param .OnMouseMove, ._OnMouseMove, ._OnMouseMove + param .OnButtonPressed, ._OnButtonPressed, ._OnButtonPressed + param .OnButtonReleased, ._OnButtonReleased, ._OnButtonReleased + param .OnDoubleClick, ._OnDoubleClick, ._OnDoubleClick + + param .UserData, ._user_data, ._user_data + +; private methods + + method .__UpdateHandle + method .__UpdateImages + method .__UpdateFocus + + +; parameter methods + + method .SetParent, .value + + method .SetAction, .value + + abstract .UpdateAction, .action ; to be defined only for controls that can be attached to TAction + + method .SetX, .value + method .SetY, .value + method .SetWidth, .value + method .SetHeight, .value + + method .Move, .newX, .newY + method .Resize, .newWidth, .newHeight + + method .ExtMove, .newX, .newY + method .ExtResize, .newWidth, .newHeight + + method .GetOnScreen + + method .GetEnabled + method .SetEnabled, .value + + method .GetGlobalEnabled + + method .GetCaption + method .SetCaption, .value + + method .SetVisible, .value + method .SetWindowState, .value + method .SetSelfPaint, .value + + method .SetSplitCell, .value + + method .AddWinIcon, .value + + method .GetWantFocus + + method .GetImgScreen + + method .GetOSWindow + + +; other methods + + method .Create, .parent + method .Destroy + + + method .RemoveChild, .objchild + +; Parent/child methods definitions of abstract methods, inherited from TObject + + method .ChildByXY, .x, .y, .onlyenabled + + method .RectChanged2, .pRect ; invalidates the rectangle, so all children windows in this rectangle are + ; to be redrawn. Called from the children window on any visual changes. + ; notice, that if the child changed the size ot position, it needs special + ; processing of the rectangle. Actually the changed rectangle is the + ; bounding rectangle of the new and old rectangles. + + method .RectChangedXY2, .x, .y, .width, .height +; method .RectChangedList, .pRectList + + method .ForceRefresh ; Use this method only for serious refresh tasks, for example on global theme change. + + method .ClientToScreenXY, .x, .y + +; Painting methods + + method .HoleXY, .x, .y ; Returns TRUE, if the specified point contains transparent "hole", alowing the control below to be seen/clicked. + method .SelfPaint, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height ; Paints itself on the caller provided TImage. + +; Layout methods + + method .Autosize ; Returns in EAX the prefered width and in EDX the prefered height of the Window + ; By default (in TWindow) returns the width and height of the window + ; Called by the splitgrid layout library. + +; System event methods + + method .EventFocusIn + method .EventFocusOut + + method .EventMouseEnter + method .EventMouseLeave + + method .EventMouseMove, .x, .y, .kbdState + + method .EventButtonPress, .button, .kbdState, .x, .y + method .EventButtonRelease, .button, .kbdState, .x, .y + method .EventButtonDoubleClick, .button, .kbdState, .x, .y + + method .EventScroll, .direction, .command, .value + + method .EventKeyPress, .utf8, .scancode, .kbdState + method .EventKeyRelease, .utf8, .scancode, .kbdState + + method .CloseRequest, .reason + +endobj + + +interface TWindow.OnFocus, .self +interface TWindow.OnSelfPaint, .self, .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height +interface TWindow.OnScroll, .self, .direction, .command, .value +interface TWindow.OnKeyEvent, .self, .utf8, .scancode, .kbdState +interface TWindow.OnMouseMove, .self, .x, .y, .kbdState +interface TWindow.OnMouseButton, .self, .button, .kbdState, .x, .y +interface TWindow.OnChange, .self ; not used here, but it is general OnChange event handler. + + + +; OS independent code. +;_________________________________________________________________________________________ + + + +method TWindow.Create +begin + inherited [.parent] + + set [.self], TWindow:Enabled, TRUE + set [.self], TWindow:Cursor, mcArrow + set [.self], TWindow:border, borderFull + set [.self], TWindow:Behavior, 0 + +if defined options.Threads & options.Threads + push esi + mov esi, [.self] + lea esi, [esi+TWindow._rect_mx] + stdcall MutexCreate, 0, esi + stdcall MutexRelease, esi + pop esi +end if + return +endp + + +;_________________________________________________________________________________________ + + + +method TWindow.Destroy +begin + pushad + + mov esi, [.self] + +; hide the window, destroy the handle and remove the focus. + + set esi, TWindow:Visible, FALSE + + xor edx, edx + + mov eax, esi + lock cmpxchg [__LastPointedWindow], edx + + mov eax, esi + lock cmpxchg [__ActiveForm], edx + + mov eax, esi + lock cmpxchg [__MouseTarget], edx + jne @f + stdcall __MouseCapture, edx +@@: + mov eax, esi + lock cmpxchg [__FocusedWindow], edx + +; detach from action if any + + mov ecx, [esi+TWindow.__action] + jecxz @f + + exec ecx, TAction:Detach, esi + +@@: + +; Free the icons array. + + xor eax, eax + xchg eax, [esi+TWindow._winicons] + stdcall ListFree, eax, DestroyImage + +; free the string handles + + stdcall StrDel, [esi+TWindow._caption] + +if defined options.Threads & options.Threads + lea eax, [esi+TWindow._rect_mx] + stdcall MutexDestroy, eax +end if + + popad + + inherited + return +endp + + + +method TWindow.RemoveChild +begin + inherited [.objchild] + + jc .finish + + push eax edx + mov edx, [.objchild] + mov eax, [.self] + + cmp [eax+TWindow.__focused_child], edx + jne .exit + +.loop: + mov [eax+TWindow.__focused_child], 0 + get eax, eax, TWindow:Parent + test eax, eax + jnz .loop + +.exit: + pop edx eax + +.finish: + return +endp + + + + +method TWindow.HoleXY ; .x, .y +begin + xor eax, eax + return +endp + +;_________________________________________________________________________________________ + +; Paints itself on the caller provided TImage. +; The base implementation in TWindow simply calls the user event handler TWindow:OnPaint and +; renders the children windows on the provided TImage/rectangle. +; The implementations for the controls can use any method of paint, but must to call +; "inherited" at the end; + +method TWindow.SelfPaint ; .pDstImage, .xDst, .yDst, .xSrc, .ySrc, .width, .height +.src RECT +.dest RECT +.ofsx dd ? +.ofsy dd ? +begin + pushad + + mov esi, [.self] + stdcall LockImg, [.pDstImage] + + mov eax, [esi+TWindow._OnSelfPaint] + test eax, eax + jz .user_event_processed + + push esi + stdcall eax, esi, [.pDstImage], [.xDst], [.yDst], [.xSrc], [.ySrc], [.width], [.height] + pop esi + +.user_event_processed: + +; The source rectangle: + + mov ecx, [.xDst] + mov edx, [.yDst] + sub ecx, [.xSrc] + sub edx, [.ySrc] + mov [.ofsx], ecx ; .ofsx and .ofsy actually are the X and Y position of the top-left corner + mov [.ofsy], edx ; of the window on the destination image. + + mov ecx, [.xDst] + mov edx, [.yDst] + mov [.src.left], ecx + mov [.src.top], edx + add ecx, [.width] + add edx, [.height] + mov [.src.right], ecx + mov [.src.bottom], edx + lea edi, [.src] + +; then blend the children windows + + get esi, esi, TObject:FirstChild + +.children_loop: + test esi, esi + jz .end_loop + + istype esi, TWindow + jne .next + + get eax, esi, TWindow:Visible + test eax, eax + jz .next + + mov eax, [esi+TWindow._x] + mov edx, [esi+TWindow._y] + add eax, [.ofsx] + add edx, [.ofsy] + mov [.dest.left], eax + mov [.dest.top], edx + add eax, [esi+TWindow._width] + add edx, [esi+TWindow._height] + mov [.dest.right], eax + mov [.dest.bottom], edx + + lea eax, [.dest] + stdcall RectIntersect, eax, eax, edi + jc .next + + mov eax, [.dest.left] + mov edx, [.dest.top] + sub [.dest.right], eax ; source rectangle width + sub [.dest.bottom], edx ; source rectangle height + + sub eax, [esi+TWindow._x] + sub edx, [esi+TWindow._y] + sub eax, [.ofsx] + sub edx, [.ofsy] + + exec esi, TWindow:SelfPaint, [.pDstImage], [.dest.left], [.dest.top], eax, edx, [.dest.right], [.dest.bottom] + +.next: + mov esi, [esi+TObject.__next] + jmp .children_loop + +.end_loop: + stdcall UnlockImg, [.pDstImage] + popad + return +endp + + +method TWindow.GetOnScreen +begin + push esi + mov esi, [.self] + +.loop: + get eax, esi, TWindow:Visible + test eax, eax + jz .finish + + get esi, esi, TWindow:Parent + test esi, esi + jnz .loop + +.finish: + pop esi + return +endp + +;_________________________________________________________________________________________ + +method TWindow.GetWantFocus +begin + push esi + mov esi, [.self] + mov eax, [esi+TWindow.__self_focus] + test eax, eax + jz .check_children + + get eax, esi, TWindow:OnScreen + test eax, eax + jz .finish + + get eax, esi, TWindow:Enabled + +.finish: + pop esi + return + + +.check_children: + get esi, esi, TWindow:FirstChild + +.loop: + test esi, esi + jz .finish + + get eax, esi, TWindow:WantFocus + test eax, eax + jnz .finish + + mov esi, [esi+TWindow.__next] + jmp .loop + +endp + + +;_________________________________________________________________________________________ + +method TWindow.GetImgScreen +.client RECT +.rect RECT +begin + pushad + + mov esi, [.self] + + mov eax, [esi+TWindow._screen] + test eax, eax + jz .finish_screen + + stdcall LockImg, [esi+TWindow._screen] + jc .finish_screen + +if defined options.Threads & options.Threads + lea eax, [esi+TWindow._rect_mx] + stdcall WaitForMutex, eax, 1000 + jc .finish_unlock +end if + + mov edi, [esi+TWindow._rect_list] ; list of the rectangles that need rendering. + test edi, edi + jz .finish_release ; no changes, the screen is up to date. + + mov ecx, [edi+TArray.count] + test ecx, ecx + jz .finish_free + + lea edi, [edi+TArray.array] + + xor eax, eax + mov ebx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + + mov [.client.left], eax + mov [.client.top], eax + mov [.client.right], ebx + mov [.client.bottom], edx + + lea ebx, [.client] + lea edx, [.rect] + +.rect_loop: + stdcall RectIntersect, edx, ebx, edi + jc .next_rect + + mov eax, [edx+RECT.left] + sub [edx+RECT.right], eax + + mov eax, [edx+RECT.top] + sub [edx+RECT.bottom], eax + + exec esi, TWindow:SelfPaint, [esi+TWindow._screen], [edx+RECT.left], [edx+RECT.top], [edx+RECT.left], [edx+RECT.top], [edx+RECT.right], [edx+RECT.bottom] + +.next_rect: + + add edi, sizeof.RECT + loop .rect_loop + +.finish_free: + + xor eax, eax + xchg eax, [esi+TWindow._rect_list] + + stdcall FreeMem, eax + +.finish_release: + +if defined options.Threads & options.Threads + lea eax, [esi+TWindow._rect_mx] + stdcall MutexRelease, eax +end if + +.finish_unlock: + + stdcall UnlockImg, [esi+TWindow._screen] + +.finish_screen: + mov eax, [esi+TWindow._screen] + mov [esp+4*regEAX], eax + popad + return +endp + +;_________________________________________________________________________________________ + + + +method TWindow.SetAction +begin + pushad + + mov esi, [.self] + mov ecx, [.value] + mov edx, [esi+TWindow.__action] + + cmp ecx, edx + je .finish + + mov [esi+TWindow.__action], ecx + + test edx, edx + jz .old_ok + + exec edx, TAction:Detach, esi + +.old_ok: + test ecx, ecx + jz .new_ok + + exec ecx, TAction:Attach, esi + +.new_ok: + getm eax, esi, TWindow:UpdateAction + test eax, eax + jz .finish + + stdcall eax, esi, ecx + +.finish: + popad + return +endp + + +;_________________________________________________________________________________________ + + +method TWindow.GetCaption +begin + mov eax, [.self] + mov eax, [eax+TWindow._caption] + test eax, eax + jz .finish + stdcall StrDup, eax +.finish: + return +endp + + +;_________________________________________________________________________________________ + + +method TWindow.SetCaption +begin + push eax esi + + mov esi, [.self] + + lea eax, [esi+TWindow._caption] + stdcall SetString, eax, [.value] + + cmp [esi+TWindow.handle], 0 + je @f + + stdcall _SetWindowTextUtf8, [esi+TWindow.handle], [eax] + +@@: + pop esi eax + return +endp + + +;_________________________________________________________________________________________ + + + +method TWindow.SetVisible +begin + push eax esi + + mov esi, [.self] + + mov eax, [.value] + cmp eax, [esi+TWindow._visible] + je .finish + + mov [esi+TWindow._visible], eax + + exec esi, TWindow:__UpdateHandle + exec esi, TWindow:__UpdateImages + exec esi, TWindow:__UpdateFocus + + exec esi, TWindow:RectChanged2, 0 + +.finish: + pop esi eax + return +endp + +;_________________________________________________________________________________________ + + +method TWindow.SetWindowState +begin + push eax esi + mov esi, [.self] + mov eax, [.value] + + xchg eax, [esi+TWindow._window_state] + cmp eax, [esi+TWindow._window_state] + je .finish + + stdcall _SetWindowState, esi + +.finish: + pop esi eax + return +endp + +;_________________________________________________________________________________________ + +method TWindow.SetSelfPaint +begin + push esi eax + + mov esi, [.self] + mov eax, [.value] + cmp eax, [esi+TWindow._OnSelfPaint] + je .finish + + mov [esi+TWindow._OnSelfPaint], eax + exec esi, TWindow:RectChanged2, 0 ; repaint on change of the paint handler. + +.finish: + pop eax esi + return +endp + +;_________________________________________________________________________________________ + + +method TWindow.SetSplitCell +begin + push eax + + get eax, [.self], TWindow:Parent + istype eax, TForm + jne .finish + + exec eax, TForm:AttachControlToCell, [.self], [.value] + +.finish: + pop eax + return +endp + + +;_________________________________________________________________________________________ + + +method TWindow.AddWinIcon +begin + pushad + + mov edi, [.self] + + stdcall CreateImagePNG, [.value], -1 + mov esi, eax + + mov edx, [edi+TWindow._winicons] + test edx, edx + jnz .addit + + stdcall CreateArray, 4 + mov edx, eax + +.addit: + stdcall AddArrayItems, edx, 1 + mov [eax], esi + + mov [edi+TWindow._winicons], edx + popad + return +endp + +;_________________________________________________________________________________________ + +method TWindow.GetGlobalEnabled +begin + push ecx + + mov ecx, [.self] + + get eax, ecx, TWindow:Action + test eax, eax + jz .action_ok + + get eax, eax, TAction:Enabled + jmp .check_parent + +.action_ok: + mov eax, [ecx+TWindow._enabled] + +.check_parent: + test eax, eax + jz .finish + + get ecx, [.self], TWindow:Parent + jecxz .finish + + get eax, ecx, TWindow:GlobalEnabled + +.finish: + pop ecx + return +endp + + + +;_________________________________________________________________________________________ + + + +method TWindow.GetEnabled +begin + push ecx + + mov ecx, [.self] + + get eax, ecx, TWindow:Action + test eax, eax + jz .action_ok + + get eax, eax, TAction:Enabled + jmp .finish + +.action_ok: + mov eax, [ecx+TWindow._enabled] + +.finish: + pop ecx + return +endp + + + + +method TWindow.SetEnabled +begin + push ecx eax + mov ecx, [.self] + + mov eax, [.value] + test eax, eax + setnz al + movzx eax, al + + xchg eax, [ecx+TWindow._enabled] + cmp eax, [ecx+TWindow._enabled] + je .finish + + exec ecx, TWindow:__UpdateFocus + + get eax, ecx, TWindow:OnScreen + test eax, eax + jz .finish + + exec ecx, TWindow:ForceRefresh + +.finish: + pop eax ecx + return +endp + + + + + +method TWindow.GetOSWindow +begin + push esi + + mov esi, [.self] + +.loop: + cmp [esi+TWindow.handle], 0 + jne .finish + + get esi, esi, TWindow:Parent + test esi, esi + jnz .loop + +.finish: + mov eax, esi + pop esi + return +endp + + +;_________________________________________________________________________________________ + +;--------------------------------------------------------------------------------- +; Arguments: +; .self +; .x +; .y +; .onlyenabled +; +; Returns: +; eax - pointer to TWindow +; ecx - X coordinates, translated to the client coordinates of the child. +; edx - Y coordinates, translated to the client coordinates of the child. +; +; If children window was not found, the method returns: +; eax = [.self] +; ecx = [.x] +; edx = [.y] +;--------------------------------------------------------------------------------- + +method TWindow.ChildByXY +.tmp TImage +.pixels rd 16 +begin + push ebx + + mov eax, [.self] + mov ecx, [.x] + mov edx, [.y] + + get ebx, eax, TObject:LastChild + +.loop: + test ebx, ebx + jz .finish + + istype ebx, TWindow + jne .next + + cmp [ebx+TWindow._visible], 0 + je .next + + sub ecx, [ebx+TWindow._x] + jl .no2 + + sub edx, [ebx+TWindow._y] + jl .no + + cmp ecx, [ebx+TWindow._width] + jge .no + + cmp edx, [ebx+TWindow._height] + jge .no + + cmp [.onlyenabled], FALSE + je .enabled_ok + + push eax + get eax, ebx, TWindow:GlobalEnabled + test eax, eax + pop eax + jz .no + +.enabled_ok: + exec ebx, TWindow:HoleXY, ecx, edx + test eax, eax + jz .yes + +.no: + add edx, [ebx+TWindow._y] +.no2: + add ecx, [ebx+TWindow._x] + +.next: + mov ebx, [ebx+TObject.__prev] + jmp .loop + +.yes: + mov eax, ebx + exec eax, TWindow:ChildByXY, ecx, edx, [.onlyenabled] + +.finish: + pop ebx + return + +endp + + + + +;______________________________________________________________________________________________ +; +; Includes the passed rectangle in the invalid rectangles list. Later this rectangle will need +; to be repainted, but only when the screen image is required. +; + +method TWindow.RectChanged2 ;, .pRect + +.prect RECT +.rect RECT +.client RECT + +begin + pushad + + mov esi, [.self] + + mov ecx, [.pRect] + jecxz .prect_ok + + lea eax, [.prect] + stdcall RectCopy, eax, [.pRect] + mov [.pRect], eax + +.prect_ok: + get ecx, esi, TWindow:width + get edx, esi, TWindow:height + xor eax, eax + + mov [.client.left], eax + mov [.client.top], eax + mov [.client.right], ecx + mov [.client.bottom], edx + lea edi, [.client] + + mov eax, [.pRect] + test eax, eax + jz .rect_ok + + mov eax, edi + lea edi, [.rect] + stdcall RectIntersect, edi, eax, [.pRect] + jc .notify_parent + +.rect_ok: + cmp [esi+TWindow._screen], 0 + je .notify_parent + +if defined options.Threads & options.Threads + lea eax, [esi+TWindow._rect_mx] + stdcall WaitForMutex, eax, 1000 + jc .finish +end if + + mov edx, [esi+TWindow._rect_list] + test edx, edx + jnz .list_ok + + stdcall CreateArray, sizeof.RECT + mov edx, eax + +.list_ok: + stdcall RectListAdd, edx, edi + +.rect_added_ok: + mov [esi+TWindow._rect_list], edx + +if defined options.Threads & options.Threads + lea eax, [esi+TWindow._rect_mx] + stdcall MutexRelease, eax +end if + +; now send some redraw events if needed. + + mov ecx, [esi+TWindow.handle] + jecxz .notify_parent + + mov eax, [edi+RECT.right] ;[.rect.right] + mov edx, [edi+RECT.bottom] ;[.rect.bottom] + sub eax, [edi+RECT.left] ;[.rect.left] + sub edx, [edi+RECT.top] ;[.rect.top] + + stdcall _RefreshWindowRect, ecx, [edi+RECT.left], [edi+RECT.top], eax, edx + jmp .finish ; only root windows have handle, so no need to notify further. + +; now do the same for the parent window + +.notify_parent: + + get ebx, esi, TWindow:Parent + test ebx, ebx + jz .finish + + get ecx, esi, TWindow:x ; shift the rectangle for the parent coordinates. + get edx, esi, TWindow:y + + mov edi, [.pRect] + lea eax, [.client] + test edi, edi + cmovz edi, eax + + add [edi+RECT.left], ecx + add [edi+RECT.top], edx + add [edi+RECT.right], ecx + add [edi+RECT.bottom], edx + + exec ebx, TWindow:RectChanged2, edi + +.finish: + popad + return +endp + + + + +method TWindow.RectChangedXY2 +begin + push eax + + mov eax, [.x] + add [.width], eax + + mov eax, [.y] + add [.height], eax + + lea eax, [.x] + exec [.self], TWindow:RectChanged2, eax + + pop eax + return +endp + + + +method TWindow.ForceRefresh +begin + pushad + mov esi, [.self] + + exec esi, TWindow:RectChanged2, 0 + + get ebx, esi, TObject:LastChild + + +.children_loop: + test ebx, ebx + jz .end_loop + + istype ebx, TWindow + jne .next + + exec ebx, TWindow:ForceRefresh + +.next: + mov ebx, [ebx+TObject.__next] + jmp .children_loop + +.end_loop: + popad + return +endp + + + + +;method TWindow.RectChangedList ;, .pRectList +;begin +; pushad +; mov esi, [.self] +; mov edx, [.pRectList] +; mov ecx, [edx+TArray.count] +; lea edx, [edx+TArray.array] +; +;.loop: +; dec ecx +; js .end_loop +; +; exec esi, TWindow:RectChanged2, edx +; add edx, sizeof.RECT +; jmp .loop +; +;.end_loop: +; popad +; return +;endp + + + +;_________________________________________________________________________________________ + + + +method TWindow.SetParent +begin + inherited [.value] + exec [.self], TWindow:__UpdateHandle ; create/destroy handle of the OS window, according to the window state. + return +endp + + +;_________________________________________________________________________________________ + + + +method TWindow.__UpdateHandle +begin + pushad + + mov esi, [.self] + + xor ecx, ecx + + get eax, esi, TWindow:Visible + test eax, eax + jz .no_handle + + get eax, esi, TWindow:Parent + test eax, eax + jnz .no_handle + +; need handle + + cmp [esi+TWindow.handle], ecx + jne .finish ; the window needs OS handle and has one. + +; The window has no handle, but needs it. + + + stdcall _CreateWindow, esi + mov [esi+TWindow.handle], eax + +.finish: + popad + return + + +.no_handle: + + cmp [esi+TWindow.handle], ecx + je .finish ; no need for handle and there is no such. + + stdcall _DestroyWindow, [esi+TWindow.handle] ; destroy not needed window handle. + + mov [esi+TWindow.handle], ecx + jmp .finish + +endp + + + + +method TWindow.__UpdateFocus +begin + mov eax, [.self] + cmp eax, [__FocusedWindow] + jne .finish + + get eax, [.self], TWindow:Visible + test eax, eax + jz .clear + + get eax, [.self], TWindow:Enabled + test eax, eax + jz .clear + + get eax, [.self], TWindow:WantFocus + test eax, eax + jz .clear + +.finish: + return + +.clear: + stdcall FocusNext + return +endp + + +SCREEN_MORE_X = 256 +SCREEN_MORE_Y = 256 + + +method TWindow.__UpdateImages +begin + pushad + + xor eax, eax + mov esi, [.self] + + mov ebx, [esi+TWindow._visible] + mov edi, [esi+TWindow._screen] + get eax, esi, TWindow:Parent + + mov ecx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + + xor ebx, 1 ; ebx = FALSE, if the window is visible + + test eax, eax + cmovnz ebx, eax ; if the window has parent, it should have no screen image! + + test edi, edi + jz .check_hidden + + test ebx, ebx + jnz .destroy + +; check the size + + cmp ecx, [edi+TImage.width] + ja .destroy + + cmp edx, [edi+TImage.height] + ja .destroy + +.set_wrap: + + stdcall SetImageWrap, edi, ecx, edx + +.exit: + popad + return + + +.destroy: + stdcall DestroyImage, edi ; screen + + xor eax, eax + mov [esi+TWindow._screen], eax + +.check_hidden: + + test ebx, ebx + jnz .exit + + +.create_new: + + lea eax, [ecx + SCREEN_MORE_X] + lea ebx, [edx + SCREEN_MORE_Y] + + stdcall CreateImage2, eax, ebx, TRUE + mov edi, eax + mov [esi+TWindow._screen], edi + + exec esi, TWindow:RectChanged2, 0 + jmp .set_wrap + +endp + + + + + + + +;_________________________________________________________________________________________ +; +; Geometry methods. + + +method TWindow.SetX +begin + push eax + mov eax, [.self] + exec eax, TWindow:Move, [.value], [eax+TWindow._y] + pop eax + return +endp + + + +method TWindow.SetY +begin + push eax + mov eax, [.self] + exec eax, TWindow:Move, [eax+TWindow._x], [.value] + pop eax + return +endp + + + +method TWindow.SetWidth +begin + push eax + mov eax, [.self] + exec eax, TWindow:Resize, [.value], [eax+TWindow._height] + pop eax + return +endp + + + +method TWindow.SetHeight +begin + push eax + mov eax, [.self] + exec eax, TWindow:Resize, [eax+TWindow._width], [.value] + pop eax + return +endp + + + + +method TWindow.Move +begin + exec [.self], TWindow:ExtMove, [.newX], [.newY] + stdcall _MoveWindow, [.self] + return +endp + + + +method TWindow.ExtMove +begin + pushad + mov esi, [.self] + + mov ebx, [.newX] + mov ecx, [.newY] + xchg ebx, [esi+TWindow._x] + xchg ecx, [esi+TWindow._y] + + cmp ebx, [esi+TWindow._x] + jne .update + + cmp ecx, [esi+TWindow._y] + je .finish + +.update: + get edx, esi, TWindow:Parent + test edx, edx + jz .finish + + exec edx, TWindow:RectChangedXY2, ebx, ecx, [esi+TWindow._width], [esi+TWindow._height] ; previous position. + exec edx, TWindow:RectChangedXY2, [esi+TWindow._x], [esi+TWindow._y], [esi+TWindow._width], [esi+TWindow._height] ; new position. + +.finish: + popad + return +endp + + + + +method TWindow.Resize ;, .newWidth, .newHeight +begin + exec [.self], TWindow:ExtResize, [.newWidth], [.newHeight] + stdcall _ResizeWindow, [.self] + return +endp + + + +method TWindow.ExtResize ;, .newWidth, .newHeight +begin + pushad + + mov esi, [.self] + mov ecx, [.newWidth] + mov ebx, [.newHeight] + + xchg ecx, [esi+TWindow._width] + xchg ebx, [esi+TWindow._height] + + cmp ecx, [esi+TWindow._width] ; oldW, newW + jne .refresh + + cmp ebx, [esi+TWindow._height] ; oldH, newH + je .exit + +.refresh: + exec esi, TWindow:__UpdateImages + exec esi, TWindow:RectChanged2, 0 ; refresh the window itself. + +;now notify the parent window, if there are parts not covered by the new window size: + + get edx, esi, TWindow:Parent + test edx, edx + jz .exit + + sub ecx, [esi+TWindow._width] ; oldW, newW + jbe .check_height + + mov eax, [esi+TWindow._width] + add eax, [esi+TWindow._x] + exec edx, TWindow:RectChangedXY2, eax, [esi+TWindow._y], ecx, ebx + +.check_height: + sub ebx, [esi+TWindow._height] + jbe .exit + + mov eax, [esi+TWindow._height] + add eax, [esi+TWindow._y] + exec edx, TWindow:RectChangedXY2, [esi+TWindow._x], eax, [esi+TWindow._width], ebx + +.exit: + popad + return +endp + + + +method TWindow.EventFocusIn +begin + push esi eax + mov esi, [.self] + + cmp [esi+TWindow._OnFocusIn], 0 + je .user_event_ok + + pushad + stdcall [esi+TWindow._OnFocusIn], esi + popad + +.user_event_ok: + mov eax, [esi+TWindow.__self_focus] + test eax, eax + jz .check_children + + get eax, esi, TWindow:Visible + test eax, eax + jz .clear_focus + + get eax, esi, TWindow:Enabled + test eax, eax + jnz .set_last_focused + +.clear_focus: + xor esi, esi + +.pass_focus: + + stdcall __SetIntFocused, esi + +.finish: + pop eax esi + return + +;................................................ + +.set_last_focused: + mov eax, esi + +.parent_loop: + get eax, eax, TWindow:Parent + test eax, eax + jz .finish + + mov [eax+TWindow.__focused_child], esi + jmp .parent_loop + +;................................................ + +.check_children: + cmp [esi+TWindow.__focused_child], 0 + cmove esi, [esi+TWindow.__first_child] + cmovne esi, [esi+TWindow.__focused_child] + +.loop: + test esi, esi + jz .pass_focus + + get eax, esi, TWindow:WantFocus + test eax, eax + jnz .pass_focus + + mov esi, [esi+TWindow.__next] + jmp .loop +endp + + + +method TWindow.EventFocusOut +begin + push eax + mov eax, [.self] + cmp [eax+TWindow._OnFocusOut], 0 + je .user_event_ok + + pushad + stdcall [eax+TWindow._OnFocusOut], eax + popad + +.user_event_ok: + pop eax + return +endp + + +method TWindow.EventMouseEnter +begin + push esi edx eax + + mov esi, [.self] + get edx, esi, TWindow:OSWindow + + stdcall GetStockCursor, [esi+TWindow._cursor] + stdcall SetMouseCursor, [edx+TWindow.handle], eax + + pop eax edx esi + return +endp + + + + +method TWindow.EventMouseLeave +begin + + return +endp + + + + +method TWindow.EventMouseMove ;, .x, .y, .kbdState +begin + push ecx + get ecx, [.self], TWindow:OnMouseMove + jecxz .finish + pushad + stdcall ecx, [.self], [.x], [.y], [.kbdState] + popad +.finish: + pop ecx + return +endp + + + + +method TWindow.EventButtonPress ;, .button, .kbdState, .x, .y +begin + push ecx + get ecx, [.self], TWindow:OnButtonPressed + clc + jecxz .finish + + pushad + stdcall ecx, [.self], [.button], [.kbdState], [.x], [.y] + popad + +.finish: + pop ecx + return +endp + + + +method TWindow.EventButtonRelease ;, .button, .kbdState, .x, .y +begin + push ecx + + cmp [.button], mbRight + jne .menu_ok + + get ecx, [.self], TWindow:Menu + jecxz .menu_ok + + exec ecx, TMenu:Show, [.self], [.x], [.y] + +.menu_ok: + get ecx, [.self], TWindow:OnButtonReleased + jecxz .finish + pushad + stdcall ecx, [.self], [.button], [.kbdState], [.x], [.y] + popad +.finish: + pop ecx + return +endp + + +method TWindow.EventButtonDoubleClick ;, .button, .kbdState, .x, .y +begin + push ecx + get ecx, [.self], TWindow:OnDoubleClick + clc + jecxz .finish + + pushad + stdcall ecx, [.self], [.button], [.kbdState], [.x], [.y] + popad +.finish: + pop ecx + return +endp + + + +method TWindow.EventScroll ;, .direction, .command, .value +begin + mov eax, [.self] + cmp [eax+TWindow._OnScroll], 0 + je .finish + + pushad + stdcall [eax+TWindow._OnScroll], [.self], [.direction], [.command], [.value] + popad + +.finish: + return +endp + + + + +method TWindow.CloseRequest ;, .reason +begin + destroy [.self] + return +endp + + + + +method TWindow.EventKeyPress ;, .utf8, .scancode, .kbdState +begin + push eax ebx edx + + mov edx, [.self] + cmp edx, [__FocusedWindow] + jne .focus_ok + + mov ebx, [.kbdState] + and ebx, Ctrl+Alt+Shift + jz .mod_ok + + cmp ebx, Shift + jne .focus_ok ; other than Shift modifier is pressed. + +.mod_ok: + test [edx+TWindow._behavior], wbUseTabKeys + jnz .focus_ok + +if defined keyLeftTab + cmp [.scancode], keyLeftTab + jne .left_tab_ok + + test ebx, ebx + jnz .prev + jmp .next + +.left_tab_ok: +end if + cmp [.scancode], keyTab + jne .focus_ok + + test ebx, ebx + jz .next + +.prev: + stdcall FocusPrev + stc + jmp .finish + +.next: + stdcall FocusNext + stc + jmp .finish + +.focus_ok: + cmp [edx+TWindow._OnKeyPressed], 0 + je .send_to_parent + + push edx + stdcall [edx+TWindow._OnKeyPressed], edx, [.utf8], [.scancode], [.kbdState] + pop edx + jc .finish + +.send_to_parent: + get eax, edx, TWindow:Parent + test eax, eax + jz .finish ; CF = 0 after "test eax, eax" + + exec eax, TWindow:EventKeyPress, [.utf8], [.scancode], [.kbdState] + +.finish: + pop edx ebx eax + return +endp + + + +method TWindow.EventKeyRelease ;, .utf8, .scancode, .kbdState +begin + push eax + mov eax, [.self] + cmp [eax+TWindow._OnKeyReleased], 0 + je .finish + + stdcall [eax+TWindow._OnKeyReleased], eax, [.utf8], [.scancode], [.kbdState] + +.finish: + pop eax + return +endp + + +; Utility procedures. + + +method TWindow.ClientToScreenXY; , .window, .x, .y +begin + push eax esi + + mov ecx, [.x] + mov edx, [.y] + mov esi, [.self] + +.loop: + add ecx, [esi+TWindow._x] + add edx, [esi+TWindow._y] + + get esi, esi, TWindow:Parent + test esi, esi + jnz .loop + + pop esi eax + return +endp + + + +method TWindow.Autosize +begin + mov eax, [.self] + mov edx, [eax+TWindow._height] + mov eax, [eax+TWindow._width] + return +endp + + + +endmodule + ADDED freshlib/gui/Win32/Main.asm Index: freshlib/gui/Win32/Main.asm ================================================================== --- /dev/null +++ freshlib/gui/Win32/Main.asm @@ -0,0 +1,673 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Main procedure of GUI application library. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: Organize the main message/event loop needed by every GUI engine. +;_________________________________________________________________________________________ + + + + + +body ProcessSystemEvents +.msg MSG +.msg2 MSG +begin + push ecx edx esi edi + +.msgloop: + lea esi, [.msg] + + invoke PeekMessageW, esi, [.msg.hwnd], WM_PAINT, WM_PAINT, PM_REMOVE + test eax, eax + jnz .processit + +; eax is always 0 here because of the previous call... +; xor eax, eax + invoke PeekMessageW, esi, eax, eax, eax, PM_REMOVE + test eax, eax + jz .exitok + + cmp [.msg.message], WM_TIMER + jne .timer_ok + + xor eax, eax + stdcall __TimerProc, eax, eax, eax, eax + jmp .msgloop + +.timer_ok: + cmp [.msg.message], WM_MOUSEMOVE + jne .move_ok + +.loop: + invoke PeekMessageW, esi, [.msg.hwnd], WM_MOUSEMOVE, WM_MOUSEMOVE, PM_REMOVE + test eax, eax + jnz .loop + jmp .processit + +.move_ok: + cmp [.msg.message], WM_KEYDOWN + jne .processit + +; cleaning the message queue from the keyboard autorepeat messages. + + lea edi, [.msg2] + +.loop2: + invoke PeekMessageW, edi, [.msg.hwnd], WM_KEYDOWN, WM_KEYDOWN, PM_NOREMOVE + test eax, eax + jz .processit + + mov eax, [.msg2.wParam] + mov ecx, [.msg2.lParam] + + cmp eax, [.msg.wParam] + jne .processit + + cmp ecx, [.msg.lParam] + jne .processit + + invoke PeekMessageW, edi, [.msg.hwnd], WM_KEYDOWN, WM_KEYDOWN, PM_REMOVE + jmp .loop2 + + +.processit: + cmp [.msg.message], WM_QUIT + je .terminate + + stdcall __ProcessOneSystemEvent, [.msg.hwnd], [.msg.message], [.msg.wParam], [.msg.lParam] + jnc .msgloop + + invoke DefWindowProcW, [.msg.hwnd], [.msg.message], [.msg.wParam], [.msg.lParam] + +; invoke TranslateMessage, esi +; invoke DispatchMessageW, esi + + jmp .msgloop + + +.exitok: + clc + pop edi esi edx ecx + return + + +.terminate: + mov eax, [.msg.wParam] + stc + pop edi esi edx ecx + return +endp + + + +proc WaitForSystemEvent +begin + push eax ecx edx + + invoke MsgWaitForMultipleObjectsEx, 0, 0, 100, QS_ALLINPUT, MWMO_INPUTAVAILABLE + cmp eax, WAIT_TIMEOUT + je .timeout + + clc + pop edx ecx eax + return + +.timeout: + stc + pop edx ecx eax + return +endp + + + + +;---------------------------------------------------------------------------------------------------------- +; This procedure makes following: +; 1. Takes as arguments one windows message +; 2. Analizes the message and finds the target child window for it (only top level windows receive messages) +; 3. Calls the respective event handling method of the target window object. +; 4. returns CF=0 if the event was properly processed. +; 5. returns CF=1 if the event was not processed. +; +; The event can be not processed in the following cases: +; 1. The window that receives the message is not FreshLib object. +; 2. The respective event handler refuse to process the event (return CF=1) +;---------------------------------------------------------------------------------------------------------- + +proc __ProcessOneSystemEvent, .hwnd, .wmsg, .wparam, .lparam +begin + pushad + + invoke GetWindowLongW, [.hwnd], ofsWindowStruct + test eax, eax + jz .ondefault + + mov esi, eax + + dispatch [.wmsg] + +.ondefault: + popad + stc + return + + +.ret_null: + xor eax, eax + +.processed: + mov [esp+4*regEAX], eax + popad + clc + return + +;......................................................................................... + +oncase WM_NCACTIVATE +oncase WM_ACTIVATE +oncase WM_ACTIVATEAPP + + movzx eax, word [.wparam] + test eax, eax + jz .ret_null + + istype esi, TForm + jne @f + mov [__ActiveForm], esi +@@: + jmp .ret_null +;......................................................................................... + + +oncase WM_MOUSEWHEEL +locals + .point POINT +endl + movsx ecx, word [.lparam] + movsx edx, word [.lparam+2] + mov [.point.x], ecx + mov [.point.y], edx + + lea eax, [.point] + invoke ScreenToClient, [.hwnd], eax + + mov ecx, [.point.y] + shl ecx, 16 + mov cx, word [.point.x] + + mov [.lparam], ecx + + movsx ecx, word [.lparam] + movsx edx, word [.lparam+2] + call .get_mouse_target + + mov eax, [.wparam] + sar eax, 16 + mov ecx, scWheelUp + test eax, eax + jns @f + mov ecx, scWheelDn + neg eax +@@: + mov ebx, 120 + cdq + div ebx + + exec edi, TWindow:EventScroll, scrollY, ecx, eax + jmp .ret_null + +;......................................................................................... + +oncase WM_WINDOWPOSCHANGED + +locals + .rect RECT +endl + +; current state + + invoke GetWindowLongW, [.hwnd], GWL_STYLE + + xor ecx, ecx + and eax, WS_MAXIMIZE or WS_MINIMIZE + jz .state_ok + + mov ecx, wstMaximizedVert or wstMaximizedHorz + or ecx, [esi+TWindow._window_state] + test eax, WS_MAXIMIZE + jnz .state_ok + + mov ecx, wstMinimized + or ecx, [esi+TWindow._window_state] + +.state_ok: + mov [esi+TWindow._window_state], ecx + +; resize/move + + mov ebx, [.lparam] + + test [ebx+WINDOWPOS.flags], SWP_NOMOVE + jnz .move_ok + + xor eax, eax + mov [.rect.left], eax + mov [.rect.top], eax + lea eax, [.rect] + invoke ClientToScreen, [.hwnd], eax + + exec esi, TWindow:ExtMove, [.rect.left], [.rect.top] + +.move_ok: + test [ebx+WINDOWPOS.flags], SWP_NOSIZE + jnz .ret_null + + lea eax, [.rect] + invoke GetClientRect, [esi+TWindow.handle], eax + + exec esi, TWindow:ExtResize, [.rect.right], [.rect.bottom] + jmp .ret_null + +options.DebugMode = 0 + + +;......................................................................................... + +oncase WM_SYSKEYDOWN +oncase WM_SYSKEYUP +oncase WM_KEYDOWN +oncase WM_KEYUP + +locals + .keyboard rb 256 + .unicode rw 16 + .utf8buff rb 16 + .scancode dd ? +endl + + lea ebx, [.keyboard] + invoke GetKeyboardState, ebx + + mov eax, [.lparam] + mov ecx, eax + shr eax, 16 + and ecx, $80000000 + and eax, $ff + mov [.scancode], eax + + mov dword [.utf8buff], 0 + + or eax, ecx + lea edx, [.unicode] + invoke ToUnicode, [.wparam], eax, ebx, edx, 16, 0 + xor ecx, ecx + test eax, eax + jz .key_translated ; the key can not be translated. + js .key_translated ; it is a dead key. What we have to do??? + + lea edx, [.utf8buff] + xor ecx, ecx + mov [edx], ecx + mov [edx+4], ecx + lea ecx, [.unicode] + invoke WideCharToMultiByte, CP_UTF8, 0, ecx, eax, edx, 8, 0, 0 + +.key_translated: + xor ebx, ebx + + test [.keyboard+VK_CONTROL], $80 + jz @f + or ebx, maskCtrl +@@: + test [.keyboard+VK_SHIFT], $80 + jz @f + or ebx, maskShift +@@: + test [.keyboard+VK_MENU], $80 + jz @f + or ebx, maskAlt +@@: + test [.keyboard+VK_SCROLL], $01 + jz @f + or ebx, maskScrLk +@@: + test [.keyboard+VK_CAPITAL], $01 + jz @f + or ebx, maskCapsLock +@@: + test [.keyboard+VK_LBUTTON], $80 + jz @f + or ebx, maskBtnLeft +@@: + test [.keyboard+VK_RBUTTON], $80 + jz @f + or ebx, maskBtnRight +@@: + test [.keyboard+VK_MBUTTON], $80 + jz @f + or ebx, maskBtnMiddle +@@: + + cmp [.wmsg], WM_KEYUP + je .key_up + cmp [.wmsg], WM_SYSKEYUP + je .key_up + + OutputValue "Scan code: ", [.scancode], 16, 8 + +;.key_down: + + mov edi, [__ActiveMenu] + test edi, edi + jnz .send_key_event + + mov edi, [__ActiveForm] + test edi, edi + jz .pass_to_focused + + get edi, edi, TForm:ActionList + test edi, edi + jz .pass_to_focused + + exec edi, TActionList:EventKeyPress, dword [.utf8buff], [.scancode], ebx + jc .end_key_msg + +.pass_to_focused: + mov edi, [__FocusedWindow] + test edi, edi + jz .end_key_msg + +.send_key_event: + exec edi, TWindow:EventKeyPress, dword [.utf8buff], [.scancode], ebx + jmp .end_key_msg + +.key_up: + cmp [__FocusedWindow], 0 + jz .end_key_msg + + exec [__FocusedWindow], TWindow:EventKeyRelease, dword [.utf8buff], [.scancode], ebx + +.end_key_msg: + cmp [.wmsg], WM_SYSKEYDOWN + je .ondefault + + cmp [.wmsg], WM_SYSKEYUP + je .ondefault + + jmp .ret_null + +;......................................................................................... + + +oncase WM_SETFOCUS + istype esi, TForm + jne @f + mov [__ActiveForm], esi +@@: + stdcall SetFocusedWindow, esi + jmp .ret_null + +oncase WM_KILLFOCUS + istype esi, TForm + jne @f + mov [__ActiveForm], 0 +@@: + cmp [.wparam], 0 + jne .ret_null + stdcall SetFocusedWindow, 0 + jmp .ret_null + +;......................................................................................... + + +oncase WM_MOUSEMOVE + + movsx ecx, word [.lparam] + movsx edx, word [.lparam+2] + + stdcall ServeMenuMouseMove, esi, ecx, edx, 0 + jc .ret_null + + call .get_mouse_target + + get eax, edi, TWindow:Enabled + test eax, eax + jz .ret_null + + cmp edi, [__LastPointedWindow] + je .move_event + + cmp [__LastPointedWindow], 0 + je .leave_ok + + exec [__LastPointedWindow], TWindow:EventMouseLeave + +.leave_ok: + + mov [__LastPointedWindow], edi + exec edi, TWindow:EventMouseEnter + +.move_event: + + exec edi, TWindow:EventMouseMove, ecx, edx, 0 + jmp .ret_null + + +;......................................................................................... + + +oncase WM_PAINT + +locals + .ps PAINTSTRUCT + .hdc dd ? +endl + + get edi, esi, TWindow:Screen + + lea eax, [.ps] + invoke BeginPaint, [.hwnd], eax + mov [.hdc], eax + + test edi, edi + jz .paint_ok + +if defined Caret + stdcall __PaintCaret, esi, edi +end if + + mov ecx, [.ps.rcPaint.right] + mov edx, [.ps.rcPaint.bottom] + sub ecx, [.ps.rcPaint.left] + sub edx, [.ps.rcPaint.top] + + stdcall DrawImageRect, [.hdc], edi, [.ps.rcPaint.left], [.ps.rcPaint.top], [.ps.rcPaint.left], [.ps.rcPaint.top], ecx, edx + +if defined options.DebugMode.ComputeFPS & options.DebugMode.ComputeFPS + stdcall FramesPerSecond +end if + +.paint_ok: + lea eax, [.ps] + invoke EndPaint, [.hwnd], eax + + jmp .ret_null + + +;......................................................................................... + + +oncase WM_CLOSE + + exec esi, TWindow:CloseRequest, cerFromUser + jmp .ret_null + + +oncase WM_DESTROY + mov [esi+TWindow.handle], 0 + jmp .ondefault + +;......................................................................................... + + +oncase WM_LBUTTONUP +oncase WM_RBUTTONUP +oncase WM_MBUTTONUP + movsx ecx, word [.lparam] + movsx edx, word [.lparam+2] + call .get_mouse_target + + get eax, edi, TWindow:Enabled + test eax, eax + jz .ret_null + + mov ebx, [.wmsg] + sub ebx, WM_LBUTTONDOWN + movzx ebx, byte [.__mouse_button_table+ebx] + + stdcall __KeyStatus, [.wparam] + + exec edi, TWindow:EventButtonRelease, ebx, eax, ecx, edx + jmp .ret_null + + +oncase WM_LBUTTONDOWN +oncase WM_RBUTTONDOWN +oncase WM_MBUTTONDOWN + +locals + .kbdState dd ? +endl + + movsx ecx, word [.lparam] + movsx edx, word [.lparam+2] + + mov ebx, [.wmsg] + sub ebx, WM_LBUTTONDOWN + movzx ebx, byte [.__mouse_button_table+ebx] + + stdcall __KeyStatus, [.wparam] + mov [.kbdState], eax + + stdcall ServeMenuButtonPress, esi, ebx, eax, ecx, edx + jc .ret_null + + call .get_mouse_target + + get eax, edi, TWindow:Enabled + test eax, eax + jz .ret_null + +; deal with focus + + cmp edi, [__FocusedWindow] + je .focusok + + get eax, edi, TWindow:WantFocus + test eax, eax + jz .focusok + + mov eax, [__FocusedWindow] + mov [__FocusedWindow], edi + + + test eax, eax + jz @f + exec eax, TWindow:EventFocusOut +@@: + + exec edi, TWindow:EventFocusIn + +.focusok: + exec edi, TWindow:EventButtonPress, ebx, [.kbdState], ecx, edx + jmp .ret_null + + +; Double clicks are not supported for now... + +oncase WM_LBUTTONDBLCLK +oncase WM_RBUTTONDBLCLK +oncase WM_MBUTTONDBLCLK + + movsx ecx, word [.lparam] + movsx edx, word [.lparam+2] + + mov ebx, [.wmsg] + sub ebx, WM_LBUTTONDOWN + movzx ebx, byte [.__mouse_button_table+ebx] + + stdcall __KeyStatus, [.wparam] + mov [.kbdState], eax + + call .get_mouse_target + + get eax, edi, TWindow:Enabled + test eax, eax + jz .ret_null + + exec edi, TWindow:EventButtonDoubleClick, ebx, [.kbdState], ecx, edx + jmp .ret_null + + enddispatch + + +.get_mouse_target: + mov edi, [__MouseTarget] + test edi, edi + jz .search_target_move + + stdcall __GetRelativeXY, edi, ecx, edx + jmp .target_move + +.search_target_move: + exec esi, TWindow:ChildByXY, ecx, edx, FALSE + mov edi, eax + +.target_move: + retn + + + .__mouse_button_table db mbLeft, mbLeft, mbLeft + db mbRight, mbRight, mbRight + db mbMiddle, mbMiddle, mbMiddle +endp + + +;......................................................................................... + + + +proc __KeyStatus, .status +begin + xor eax, eax + test [.status], MK_LBUTTON + jz @f + or eax, maskBtnLeft +@@: + test [.status], MK_RBUTTON + jz @f + or eax, maskBtnRight +@@: + test [.status], MK_MBUTTON + jz @f + or eax, maskBtnMiddle +@@: + test [.status], MK_SHIFT + jz @f + or eax, maskShift +@@: + test [.status], MK_CONTROL + jz @f + or eax, maskCtrl +@@: + return +endp + ADDED freshlib/gui/Win32/application.asm Index: freshlib/gui/Win32/application.asm ================================================================== --- /dev/null +++ freshlib/gui/Win32/application.asm @@ -0,0 +1,42 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TApplication object class. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: TApplication by the idea is the base of GUI application, but the implementation +; somehow need fixing... +;_________________________________________________________________________________________ + +uglobal + if used hInstance + hInstance dd ? + end if +endg + + +proc InitGUIApplication +begin + invoke GetModuleHandleW, 0 + mov [hInstance], eax + clc + return +endp + + +proc TerminateGUI +begin + return +endp + + +proc CloseGUIApplication +begin + invoke PostQuitMessage, 0 + return +endp ADDED freshlib/gui/Win32/clipboard.asm Index: freshlib/gui/Win32/clipboard.asm ================================================================== --- /dev/null +++ freshlib/gui/Win32/clipboard.asm @@ -0,0 +1,116 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Clipboard management library. +; +; Target OS: Win32 +; +; Dependencies: +;_________________________________________________________________________________________ +uses kernel32, user32 + +clipboardNull = 0 ; empty clipboard. +clipboardString = CF_UNICODETEXT +clipboardBinary = CF_BITMAP + + +; returns eax = handle to string with the clipboard data. + +body ClipboardRead +.result dd ? +begin + pushad + xor eax, eax + mov [.result], eax + + invoke OpenClipboard, eax + test eax, eax + jz .finish + + invoke GetClipboardData, CF_UNICODETEXT + test eax, eax + jz .close + + mov ebx, eax + + invoke GlobalSize, ebx + mov edi, eax + + invoke GlobalLock, ebx + mov esi, eax + + lea ecx, [8*edi] + + stdcall GetMem, ecx + jc .close3 + mov edi, eax + + invoke WideCharToMultiByte, CP_UTF8, 0, esi, -1, edi, ecx, 0, 0 + test eax, eax + jz .close2 + + mov dword [edi+eax], 0 + + stdcall StrDup, edi + mov [.result], eax + +.close2: + stdcall FreeMem, edi +.close3: + invoke GlobalUnlock, ebx +.close: + invoke CloseClipboard + popad +.finish: + mov eax, [.result] + return +endp + + + +; writes the string .hstring to the clipboard. +; returns nothing. + +body ClipboardWrite ;, .hstring +begin + pushad + xor eax, eax + invoke OpenClipboard, eax + test eax, eax + jz .finish + + invoke EmptyClipboard + + stdcall utf8ToWideChar, [.hstring] + mov esi, eax + shl ecx, 3 + + invoke GlobalAlloc, GMEM_MOVEABLE or GMEM_ZEROINIT or GMEM_DDESHARE, ecx + test eax, eax + jz .close + mov ebx, eax + + invoke GlobalLock, ebx + mov edi, eax + invoke lstrcpyW, edi, esi + invoke GlobalUnlock, ebx + + invoke SetClipboardData, CF_UNICODETEXT, ebx + +.close: + stdcall FreeMem, esi + invoke CloseClipboard +.finish: + popad + return +endp + + + +body ClipboardType +begin + mov eax, 1 + return +endp ADDED freshlib/gui/Win32/keycodes.inc Index: freshlib/gui/Win32/keycodes.inc ================================================================== --- /dev/null +++ freshlib/gui/Win32/keycodes.inc @@ -0,0 +1,107 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains scan code values for control keyboard keys. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +keyHomeNumpad = $47 +keyUpNumpad = $48 +keyPgUpNumpad = $49 +keyLeftNumpad = $4b +key5Numpad = $4c +keyRightNumpad = $4d +keyEndNumpad = $4f +keyDownNumpad = $50 +keyPgDnNumpad = $51 +keyInsNumpad = $52 +keyDelNumpad = $53 +keyEnterNumpad = $1c ; it is ASCII $0d +keyPlusNumpad = $4e +keyMinusNumpad = $4a +keyAsteriskNumpad = $37 +keySlashNumpad = $35 + +keyNumLock = $45 +keyScrollLock = $46 +keyPause = $45 +keyPrtScr = $37 + + +keyLeft = $4b +keyRight = $4d +keyUp = $48 +keyDown = $50 + +keyInsert = $52 +keyDelete = $53 +keyHome = $47 +keyEnd = $4f +keyPgUp = $49 +keyPgDown = $51 + +keyF1 = $3b +keyF2 = $3c +keyF3 = $3d +keyF4 = $3e + +keyF5 = $3f +keyF6 = $40 +keyF7 = $41 +keyF8 = $42 + +keyF9 = $43 +keyF10 = $44 ; used for menu and does not generate WM_KEYDOWN. +keyF11 = $57 +keyF12 = $58 + +keyCapsLock = $3a +keyShiftLeft = $2a +keyCtrlLeft = $1d +keyWndLeft = $5b +keyWndRight = $5c +keyAltLeft = $38 +keyAltRight = $38 +keyPopupMenu = $5d +keyShiftRight = $36 +keyCtrlRight = $1d + +keyBackSpace = $0e +keyTab = $0f +keyEscape = $01 +keyEnter = $1c + +keySpace = $39 +keyA = $1e +keyB = $30 +keyC = $2e +keyD = $20 +keyE = $12 +keyF = $21 +keyG = $22 +keyH = $23 +keyI = $17 +keyJ = $24 +keyK = $25 +keyL = $26 +keyM = $32 +keyN = $31 +keyO = $18 +keyP = $19 +keyQ = $10 +keyR = $13 +keyS = $1f +keyT = $14 +keyU = $16 +keyV = $2f +keyW = $11 +keyX = $2d +keyY = $15 +keyZ = $2c ADDED freshlib/gui/Win32/mouse.asm Index: freshlib/gui/Win32/mouse.asm ================================================================== --- /dev/null +++ freshlib/gui/Win32/mouse.asm @@ -0,0 +1,78 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Provides unified access to standard mouse cursors. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; ToDo: Arbitrary mouse cursors, B&W for the begining. + + +body SetMouseCursor ;, .hWindow, .hCursor +begin + push ecx edx + invoke SetCursor, [.hCursor] + pop edx ecx + return +endp + + + +body GetStockCursor ;, .index +begin + push ecx edx + mov eax, [.index] + cmp eax, mcCount + jb @f + xor eax, eax +@@: + movzx eax, [_cursors+2*eax] + invoke LoadCursorW, 0, eax + pop edx ecx + return +endp + +if used _cursors + _cursors dw IDC_ARROW, IDC_IBEAM, IDC_CROSS, IDC_SIZEWE, IDC_SIZENS, IDC_SIZENWSE, IDC_SIZENESW, IDC_WAIT, IDC_APPSTARTING, IDC_HAND, IDC_HAND, IDC_ARROW +end if + + + +body __MouseCapture ;, .hwnd +begin + push eax ecx edx + cmp [.hwnd], 0 + je .release + + invoke SetCapture, [.hwnd] + +.finish: + pop edx ecx eax + return + +.release: + invoke ReleaseCapture + jmp .finish +endp + + +body ZeroMouseMove +.point POINT +begin + pushad + + lea eax, [.point] + invoke GetCursorPos, eax + invoke SetCursorPos, [.point.x], [.point.y] + + popad + return +endp + ADDED freshlib/gui/Win32/windows.asm Index: freshlib/gui/Win32/windows.asm ================================================================== --- /dev/null +++ freshlib/gui/Win32/windows.asm @@ -0,0 +1,485 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Window management OS interface functions. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +iglobal +if used cWindowClassName + cWindowClassName du 'FreshWin', 0 +end if +endg + +nWindowExtraBytes = 32 +ofsWindowStruct = nWindowExtraBytes - 4 + +;_________________________________________________________________________________________ +; +; Registers common window class +; Call only once +;_________________________________________________________________________________________ + +if used _CreateWindow +initialize __RegisterWindowClass + +.wc WNDCLASS + +begin + xor eax, eax + lea edi, [.wc] + mov ecx, sizeof.WNDCLASS / 4 + rep stosd + + mov [.wc.style], CS_PARENTDC or CS_DBLCLKS ;or CS_VREDRAW or CS_HREDRAW + mov [.wc.lpfnWndProc], __CommonWindowProc + mov [.wc.cbWndExtra], nWindowExtraBytes + + mov eax,[hInstance] + mov [.wc.hInstance],eax + mov [.wc.lpszClassName], cWindowClassName + + lea eax, [.wc] + invoke RegisterClassW, eax + + return +endp +end if + + + +;_________________________________________________________________________________________ + + + +body _CreateWindow + +.pwc dd ? +.charlen dd ? + +.style dd ? +.exstyle dd ? + +.rect RECT + +begin + pushad + mov esi, [.pWindow] + + mov [.pwc], 0 + + cmp [esi+TWindow._caption], 0 + je .caption_ok + + stdcall StrLen, [esi+TWindow._caption] + lea ecx, [eax*4] + + stdcall GetMem, ecx + mov [.pwc], eax + + stdcall StrPtr, [esi+TWindow._caption] + + invoke MultiByteToWideChar, CP_UTF8, 0, eax, -1, [.pwc], ecx + mov [.charlen], eax + +.caption_ok: + +; now styles + mov eax, [esi+TWindow._border] + and eax, $3 + + mov ecx, [.styles+4*eax] + mov edx, [.exstyles+4*eax] + + mov [.style], ecx + mov [.exstyle], edx + +; the coordinates and size + + xor eax, eax + mov [.rect.left], eax + mov [.rect.top], eax + mov ecx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea eax, [.rect] + invoke AdjustWindowRectEx, eax, [.style], 0, [.exstyle] + + mov ecx, [.rect.right] + mov edx, [.rect.bottom] + sub ecx, [.rect.left] + sub edx, [.rect.top] + +; the owner + get eax, esi, TWindow:Owner + test eax, eax + jz .owner_ok + + mov eax, [eax+TWindow.handle] + +.owner_ok: + invoke CreateWindowExW, [.exstyle], cWindowClassName, [.pwc], [.style], [esi+TWindow._x], [esi+TWindow._y], ecx, edx, eax, 0, [hInstance], 0 + mov [esp+4*regEAX], eax + mov ebx, eax + + invoke SetWindowLongW, ebx, ofsWindowStruct, esi + +; set window icons if any + + mov edx, [esi+TWindow._winicons] + test edx, edx + jz .icons_ok + + mov ecx, [edx+TArray.count] + +.loop: + dec ecx + js .icons_ok + + stdcall _AddWindowIcon, ebx, [edx+TArray.array + 4*ecx] + jmp .loop + +.icons_ok: + + invoke ShowWindow, ebx, SW_SHOWNORMAL + invoke SendMessageW, ebx, WM_ACTIVATE, TRUE, 0 + + stdcall FreeMem, [.pwc] + + popad + return + + +.styles dd WS_POPUP + dd WS_BORDER or WS_CAPTION or WS_SYSMENU or WS_SIZEBOX or WS_MINIMIZEBOX or WS_MAXIMIZEBOX + dd WS_CAPTION or WS_SYSMENU or WS_VISIBLE + dd WS_BORDER or WS_CAPTION or WS_SYSMENU or WS_SIZEBOX + +.exstyles dd WS_EX_TOPMOST or WS_EX_TOOLWINDOW or WS_EX_NOACTIVATE + dd WS_EX_APPWINDOW + dd WS_EX_DLGMODALFRAME + dd WS_EX_TOOLWINDOW +endp + + + +struct __ICONINFO + .fIcon dd ? + .xHotSpot dd ? + .yHotSpot dd ? + .hbmMask dd ? + .hbmColor dd ? +ends + + +proc _AddWindowIcon, .hwnd, .pImage +.ii __ICONINFO +begin + pushad + + mov [.ii.fIcon], TRUE + mov [.ii.xHotSpot], 0 + mov [.ii.yHotSpot], 0 + mov [.ii.hbmMask], 0 + + mov esi, [.pImage] + mov eax, [esi+TWinImage.hBitmap] + mov [.ii.hbmMask], eax + mov [.ii.hbmColor], eax + + lea eax, [.ii] + invoke CreateIconIndirect, eax + mov ebx, eax + + mov eax, ICON_SMALL + cmp [esi+TWinImage.width], 24 + jb @f + mov eax, ICON_BIG +@@: + invoke SendMessageW, [.hwnd], WM_SETICON, eax, ebx + + popad + return +endp + +;_________________________________________________________________________________________ + + +body _MoveWindow +begin + pushad + mov esi, [.pWindow] + mov eax, [esi+TWindow.handle] + test eax, eax + jz .error + + + invoke SetWindowPos, eax, 0, [esi+TWindow._x], [esi+TWindow._y], 0, 0, SWP_NOSIZE or SWP_NOREPOSITION + + + clc + popad + return + +.error: + stc + popad + return +endp + + +body _ResizeWindow +.rect RECT +begin + pushad + mov esi, [.pWindow] + + cmp [esi+TWindow.handle], 0 + je .error + +; now styles + mov eax, [esi+TWindow._border] + and eax, $3 + + mov ebx, [_CreateWindow.styles+4*eax] + mov edi, [_CreateWindow.exstyles+4*eax] + + xor eax, eax + mov [.rect.left], eax + mov [.rect.top], eax + mov ecx, [esi+TWindow._width] + mov edx, [esi+TWindow._height] + mov [.rect.right], ecx + mov [.rect.bottom], edx + + lea eax, [.rect] + invoke AdjustWindowRectEx, eax, ebx, 0, edi + + mov ecx, [.rect.right] + mov edx, [.rect.bottom] + sub ecx, [.rect.left] + sub edx, [.rect.top] + + invoke SetWindowPos, [esi+TWindow.handle], 0, 0, 0, ecx, edx, SWP_NOMOVE or SWP_NOREPOSITION + + clc + popad + return + +.error: + stc + popad + return +endp + + + +;_________________________________________________________________________________________ + + +body _DestroyWindow +begin + push eax ecx edx + invoke DestroyWindow, [.hwnd] + pop edx ecx eax + return +endp + + +;_________________________________________________________________________________________ + + +body _RefreshWindowRect +.rect RECT +begin + push eax ecx edx ebx + +;; WAY 1 - direct paint on the window surface, without sending any messages. +; +; invoke GetDC, [.hwnd] +; mov ebx, eax +; +; stdcall _GetWindowStruct, [.hwnd] +; get eax, eax, TWindow:Screen +; +; stdcall DrawImageRect, ebx, eax, [.x], [.y], [.x], [.y], [.width], [.height] +; +; invoke ReleaseDC, [.hwnd], ebx + +; Needed for WAY2 and WAY3 + + mov eax, [.x] + mov ecx, [.y] + mov [.rect.left], eax + mov [.rect.top], ecx + add eax, [.width] + add ecx, [.height] + mov [.rect.right], eax + mov [.rect.bottom], ecx + + lea eax, [.rect] + xor ecx, ecx + +;; WAY2 - generates messages before returning. +; +; invoke RedrawWindow, [.hwnd], eax, ecx, RDW_INVALIDATE or RDW_NOERASE or RDW_UPDATENOW + +; WAY3 - returns immediately and posts messages to the queue. +; In the real Windows, on intensive changes it delays the update and that can be unwanted. +; + invoke InvalidateRect, [.hwnd], eax, ecx + + pop ebx edx ecx eax + return +endp + + +;_________________________________________________________________________________________ + + + +body _SetWindowTextUtf8 +.pwc dd ? +.charlen dd ? +begin + push eax ecx edx + + cmp [.hString], 0 + je .finish + + stdcall StrLen, [.hString] + lea ecx, [eax*4] + + stdcall GetMem, ecx + mov [.pwc], eax + + stdcall StrPtr, [.hString] + + invoke MultiByteToWideChar, CP_UTF8, 0, eax, -1, [.pwc], ecx + mov [.charlen], eax + + invoke SendMessageW, [.hwnd], WM_SETTEXT, 0, [.pwc] + stdcall FreeMem, [.pwc] + +.finish: + pop edx ecx eax + return +endp + + + +;_________________________________________________________________________________________ + + +body _SetModalTowards +begin + push eax ecx edx + + invoke SetWindowLongW, [.hwnd], GWL_HWNDPARENT, [.hwndParent] + invoke EnableWindow, [.hwndParent], FALSE + + pop edx ecx eax + return +endp + + +;_________________________________________________________________________________________ + + +body _FinalizeModal +begin + push eax ecx edx + invoke EnableWindow, [.hwndParent], TRUE + invoke SetFocus, [.hwndParent] + pop edx ecx eax + return +endp + +;_________________________________________________________________________________________ + + +body _SetFocus +begin + push eax ecx edx + invoke SetFocus, [.hwnd] + pop edx ecx eax + return +endp + + +;_________________________________________________________________________________________ + +body _SetWindowState +begin + pushad + + mov esi, [.pWindow] + mov edi, [esi+TWindow.handle] + test edi, edi + jz .error + + mov ecx, SW_SHOWMAXIMIZED + mov ebx, SW_RESTORE + test [esi+TWindow._window_state], wstMaximizedVert or wstMaximizedHorz + cmovz ecx, ebx + + invoke ShowWindowAsync, edi, ecx + + test [esi+TWindow._window_state], wstMinimized + jz .finish + + invoke ShowWindowAsync, edi, SW_SHOWMINIMIZED + +.finish: + clc + popad + return + +.error: + stc + popad + return +endp + + + + +body _GetScreenSize +begin + pushad + + invoke GetSystemMetrics, SM_CYSCREEN + mov [esp+4*regEBX], eax + + invoke GetSystemMetrics, SM_CXSCREEN + mov [esp+4*regEAX], eax + + popad + return +endp + + + +;_________________________________________________________________________________________ + + +proc __CommonWindowProc, .hwnd, .wmsg, .wparam, .lparam +begin + stdcall __ProcessOneSystemEvent, [.hwnd], [.wmsg], [.wparam], [.lparam] ; sometimes windows calls winproc directly instead of using postmessage. + jnc .finish + + invoke DefWindowProcW, [.hwnd], [.wmsg], [.wparam], [.lparam] + +.finish: + return +endp + ADDED freshlib/gui/all.asm Index: freshlib/gui/all.asm ================================================================== --- /dev/null +++ freshlib/gui/all.asm @@ -0,0 +1,76 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: All GUI libraries combined include. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Includes all GUI libraries at once. +;_________________________________________________________________________________________ + +AlignLeft = 0 +AlignRight = 1 +AlignTop = 2 +AlignBottom = 3 + +include 'sysevents.asm' + +include 'mouse.asm' +include 'textcaret.asm' +include 'clipboard.asm' +include 'application.asm' + +; OS independent support code + +; Limited support for the old visual editor. Contains only macro definitions. +;include 'OldTemplates.inc' + +; OS independent components + +include 'TObject.asm' +include 'TAction.asm' +include 'TActionList.asm' + +include 'TWindow.asm' +include 'TScrollable.asm' +include 'TCanvasWindow.asm' + +include 'TForm.asm' +include 'TButton.asm' +include 'TCheckbox.asm' +include 'TEdit.asm' +include 'TLabel.asm' +include 'TImageLabel.asm' +include 'TMenu.asm' +include 'TProgressbar.asm' +include 'TTreeView.asm' +include 'TToolbar.asm' +include 'TTabBar.asm' +include 'TGrid.asm' +include 'TListView.asm' +include 'TColorSample.asm' + +include 'dialogs.asm' +include 'file_dialogs.asm' + +include 'SplitGrid.asm' + +; OS independent main procedures. +include 'Main.asm' + +; OS independent template engine. +include 'ObjTemplates.asm' + +; Way to change the GUI themes in Runtime. +include 'themes.asm' + +match theme, ThemeGUI { + include 'themes/'#`theme#'.asm' +} + +;include 'themes/flat_gui.asm' +;include 'themes/win_gui.asm' ADDED freshlib/gui/application.asm Index: freshlib/gui/application.asm ================================================================== --- /dev/null +++ freshlib/gui/application.asm @@ -0,0 +1,18 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: GUI Application global initialization. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ +module "Application library" + +include '%TargetOS%/application.asm' + +endmodule ADDED freshlib/gui/clipboard.asm Index: freshlib/gui/clipboard.asm ================================================================== --- /dev/null +++ freshlib/gui/clipboard.asm @@ -0,0 +1,36 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Clipboard functions for inter-program communications. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains the OS independent part of the library and includes the +; respective OS dependent file. +;_________________________________________________________________________________________ + +module "Clipboard library" + + +; Returns EAX handle to string with the content of the clipboard. + +interface ClipboardRead + + + +interface ClipboardWrite, .hstring + + + +interface ClipboardType + + +include '%TargetOS%/clipboard.asm' + + + +endmodule ADDED freshlib/gui/dialogs.asm Index: freshlib/gui/dialogs.asm ================================================================== --- /dev/null +++ freshlib/gui/dialogs.asm @@ -0,0 +1,375 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Common dialogs procedures library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ +module "Common dialogs library" + + +iglobal + if used _CommonDialogTemplate + + __defaultTitles dd ttlError, ttlInformation, ttlQuestion, ttlWarning + + _CommonDialogTemplate: + ObjTemplate tfParent or tfEnd, TForm, frmCommonDialog, width = 480, height = 100, border = borderModal + ObjTemplate tfChild, TImageLabel, .imgIcon, x = 4, y = 4, width = 70, height = 70, Visible = TRUE, ImageAlign = iaCenter or iaMiddle + ObjTemplate tfChild, TLabel, .LblText, x = 74, y = 4, width = 10, height = 10, TextAlign = dtfAlignLeft or dtfAlignMiddle or dtfWordWrap or dtfCRLF, Visible = TRUE + + ObjTemplate tfChild, TButton, .btnOK, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'OK', ModalResult = mrOK + ObjTemplate tfChild, TButton, .btnCancel, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Cancel', ModalResult = mrCancel + ObjTemplate tfChild, TButton, .btnAbort, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Abort', ModalResult = mrAbort + ObjTemplate tfChild, TButton, .btnRetry, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Retry', ModalResult = mrRetry + ObjTemplate tfChild, TButton, .btnIgnore, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Ignore', ModalResult = mrIgnore + ObjTemplate tfChild, TButton, .btnYes, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Yes', ModalResult = mrYes + ObjTemplate tfChild, TButton, .btnNo, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'No', ModalResult = mrNo + ObjTemplate tfChild, TButton, .btnMaybe, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Maybe', ModalResult = mrMaybe + ObjTemplate tfEnd, TButton, .btnHelp, x = 0, y = 0, width = 64, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Help', ModalResult = mrNone + end if +endg + +ttlError text "Error!" +ttlInformation text "Information" +ttlQuestion text "Question" +ttlWarning text "Warning!" + + + +; buttons flags used: +smbOK = $01 +smbCancel = $02 +smbAbort = $04 +smbRetry = $08 +smbIgnore = $10 +smbYes = $20 +smbNo = $40 +smbMaybe = $80 +smbHelp = $100 +smbMaxButton = smbHelp + +smiError = 0 +smiInformation = 1 +smiQuestion = 2 +smiWarning = 3 + + + +proc ShowMessage, .parent, .icon, .hTitle, .hMessage, .maskButtons +.xrow dd ? +.yrow dd ? +begin + push ebx ecx edx esi + stdcall CreateFromTemplate, _CommonDialogTemplate, 0 + +; First set the position and size of the dialog box, depending on the flags, and the size of the message. + +; Set the message text: + set [frmCommonDialog.LblText], TLabel:Caption, [.hMessage] + +; Set the message title: + + mov eax, [.hTitle] + test eax, eax + jnz .set_caption + + mov eax, [.icon] + and eax, 3 + mov eax, [__defaultTitles + 4*eax] + +.set_caption: + set ebx, TForm:Caption, eax + +; arrange the buttons + mov eax, [.maskButtons] + mov ecx, 32 + xor edx, edx +.count: + rol eax, 1 + adc edx, 0 + loop .count + + mov ecx, edx + imul edx, 64 ; button width + jecxz @f + dec ecx + imul ecx, 16 +@@: + add edx, ecx ; edx contains the width of the button row in pixels. + + get eax, ebx, TForm:width + cmp eax, edx + jge .widthok + + lea eax, [edx+32] + set ebx, TForm:width, eax + +.widthok: + + sub eax, edx + sar eax, 1 ; eax is the begin X coordinate of the row + mov [.xrow], eax + + get eax, ebx, TForm:height + sub eax, 24+8 + mov [.yrow], eax + + mov edx, .btnTable + mov ecx, $1 + +.btnLoop: + test [.maskButtons], ecx + jz @f + + mov esi, [edx] + + set [esi], TButton:x, [.xrow] + set [esi], TButton:y, [.yrow] + + set [esi], TButton:Visible, TRUE + add [.xrow], 64+16 + +@@: + add edx, 4 + shl ecx, 1 + cmp ecx, smbMaxButton + jbe .btnLoop + +; set the icon + mov eax, [.icon] + and eax, $3 ; + set [frmCommonDialog.imgIcon], TImageLabel:Image, [GUI.iconDialogs+8*eax] + +; set the text position and size. + mov ecx, [.yrow] + sub ecx, 8 + + set [frmCommonDialog.imgIcon], TImageLabel:height, ecx + + get eax, [frmCommonDialog], TForm:width + get edx, [frmCommonDialog.LblText], TLabel:x + sub eax, edx + + exec [frmCommonDialog.LblText], TLabel:Resize, eax, ecx + exec [frmCommonDialog.LblText], TWindow:RectChanged2, 0 + + stdcall ShowModal, ebx, [.parent] + + destroy ebx + + pop esi edx ecx ebx + return + +.btnTable dd frmCommonDialog.btnOK, \ + frmCommonDialog.btnCancel, \ + frmCommonDialog.btnAbort, \ + frmCommonDialog.btnRetry, \ + frmCommonDialog.btnIgnore, \ + frmCommonDialog.btnYes, \ + frmCommonDialog.btnNo, \ + frmCommonDialog.btnMaybe, \ + frmCommonDialog.btnHelp +endp + + + + + + +proc InputString, .parent +begin + + + return +endp + + + + +iglobal + if used _FontDialogTemplate + + _FontDialogTemplate: + ObjTemplate tfParent or tfEnd, TForm, frmFontDialog, \ + width = 320, height = 240, \ + border = borderModal, \ + SplitGrid = _splitFontDialog, \ + PaddingLeft=8, PaddingRight=8, \ + PaddingTop=8,PaddingBottom=8, \ + Caption = "Select font", \ + Visible=FALSE + + ObjTemplate tfChild, TLabel, NONE, SplitCell = _splitFontDialog.cellLabelFamily, Caption = "Font family:", TextAlign = dtfAlignLeft or dtfAlignMiddle + ObjTemplate tfChild, TListView, .lvFamily, SplitCell = _splitFontDialog.cellListview, Style = lvsList, Flags = gfRowFocus or gfSingleCellSelect + + ObjTemplate tfChild, TLabel, NONE, SplitCell = _splitFontDialog.cellLabelWeight, Caption = "Weight: ", TextAlign = dtfAlignLeft or dtfAlignMiddle + ObjTemplate tfChild, TListView, .lvWeight, SplitCell = _splitFontDialog.cellWeight, Style = lvsList, Flags = gfRowFocus or gfSingleCellSelect + + ObjTemplate tfChild, TLabel, NONE, SplitCell = _splitFontDialog.cellLabelSize, Caption = "Size:", TextAlign = dtfAlignLeft or dtfAlignMiddle + ObjTemplate tfChild, TEdit, .editSize, SplitCell = _splitFontDialog.cellEditSize + + ObjTemplate tfChild, TButton, .btnOK, SplitCell = _splitFontDialog.cellOK, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'OK', ModalResult = mrOK + ObjTemplate tfChild or tfEnd, TButton, .btnCancel, SplitCell = _splitFontDialog.cellCancel, height = 24, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Cancel', ModalResult = mrCancel + + SplitStart _splitFontDialog + Split stHoriz or stOriginBR or stJustGap, 8, 140, 0, 1000 + Split stVert or stJustGap, 0, 21, 0, 100 + Cell cellLabelFamily + Cell cellListview + Split stVert or stJustGap, 0, 21, 0, 100 + Cell cellLabelSize + Split stVert or stJustGap, 8, 21, 0, 100 + Cell cellEditSize + Split stVert or stJustGap, 0, 21, 0, 100 + Cell cellLabelWeight + Split stVert or stJustGap or stOriginBR, 8, 24, 0, 100 + Cell cellWeight + Split stHoriz or stJustGap or stOriginBR, 8, 64, 0, 100 + Split stHoriz or stJustGap or stOriginBR, 0, 64, 0, 100 + Cell cellEmpty2 + Cell cellCancel + Cell cellOK + SplitEnd + end if +endg + + + + +cFontWeights: IndexedStrings \ + fwLight, "Light", \ + fwDemilight, "Demilight", \ + fwNormal, "Normal", \ + fwMedium, "Medium", \ + fwDemibold, "Demibold", \ + fwBold, "Bold", \ + fwExtraBold, "Extra bold", \ + fwBlack, "Black" + + +proc SelectFont, .parent, .pFontInfo +begin + pushad + + mov edi, [.pFontInfo] + + stdcall CreateFromTemplate, _FontDialogTemplate, 0 + + mov esi, cFontWeights +.wloop: + lodsd + test eax, eax + jz .weights_ok + exec [frmFontDialog.lvWeight], TListView:InsertItem, -1, eax, 0, 0 + + lea esi, [esi+4] + jmp .wloop + +.weights_ok: + + mov edx, [edi+__TFont.weight] + and edx, fwMask + exec [frmFontDialog.lvWeight], TListView:SetFocused, 0, edx + exec [frmFontDialog.lvWeight], TListView:EnsureVisible, 0, edx + + + stdcall GetFontList, [.pFontInfo] + jc .list_ok + + mov esi, eax + xor ecx, ecx + xor edx, edx + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_list + + push edx + exec [frmFontDialog.lvFamily], TListView:InsertItem, -1, [esi+4*ecx+TArray.array], 0, 0 + pop edx + + cmp [edi+__TFont.hFontFace], 0 + je .next + + stdcall StrCompNoCase, [edi+__TFont.hFontFace], [esi+4*ecx+TArray.array] + cmovc edx, ecx + +.next: + inc ecx + jmp .loop + +.end_list: + stdcall ListFree, esi, StrDel + + exec [frmFontDialog.lvFamily], TListView:SetFocused, 0, edx + exec [frmFontDialog.lvFamily], TListView:EnsureVisible, 0, edx + +.list_ok: + stdcall NumToStr, [edi+__TFont.height], ntsDec or ntsUnsigned + push eax + + set [frmFontDialog.editSize], TEdit:Text, eax + stdcall StrDel ; from the stack. + + stdcall ShowModal, ebx, [.parent] + cmp eax, mrOK + jne .finish_NOK + +; font family name + + mov edi, [.pFontInfo] + + get ecx, [frmFontDialog.lvFamily], TListView:FocusedY + exec [frmFontDialog.lvFamily], TListView:GetItem, ecx + + mov eax, [eax+TLvItem.captions] + stdcall StrDup, [eax+TArray.array] + + xchg eax, [edi+__TFont.hFontFace] + stdcall StrDel, eax + +; size + get eax, [frmFontDialog.editSize], TEdit:Text + push eax + stdcall StrToNumEx, eax + stdcall StrDel ; from the stack + jc .size_ok + + mov [edi+__TFont.height], eax + +.size_ok: + +; Weight + get eax, [frmFontDialog.lvWeight], TListView:FocusedY + mov [edi+__TFont.weight], eax + + destroy ebx + +;.finish_OK: + clc + popad + return + +.finish_NOK: + destroy ebx + stc + popad + return +endp + + + + + + + + + +endmodule ADDED freshlib/gui/file_dialogs.asm Index: freshlib/gui/file_dialogs.asm ================================================================== --- /dev/null +++ freshlib/gui/file_dialogs.asm @@ -0,0 +1,591 @@ +iglobal + if used _FileDialogTemplate + + __file_dialog_titles dd ttlOpenDialog, ttlSaveDialog + + ttlOpenDialog text "Open file" + ttlSaveDialog text "Save file" + + _FileDialogTemplate: + ObjTemplate tfParent or tfEnd, TForm, frmFileDlg, \ + width = 640, height = 480, border = borderModal, \ + SplitGrid = _filegrid, \ + PaddingLeft = 8, PaddingRight = 8, \ + PaddingTop = 8, PaddingBottom = 8 + + ObjTemplate tfChild, TTabBar, .tbPath, Visible = TRUE, SplitCell = _filegrid.cellPath + ObjTemplate tfChild, TEdit, .editFilename, Visible = TRUE, SplitCell = _filegrid.cellEdit + ObjTemplate tfChild, TListView, .lvFiles, SplitCell = _filegrid.cellList, Style = lvsDetails, OnFocusChange = __FileListFocusChange, OnDoubleClick = __FileListDoubleClick, OnKeyPressed = __FileListKeyPressed + ObjTemplate tfChild, TButton, .btnOK, Visible = TRUE, SplitCell = _filegrid.cellOK, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'OK', ModalResult = mrOK + ObjTemplate tfEnd, TButton, .btnCancel, Visible = TRUE, SplitCell = _filegrid.cellCancel, TextAlign = dtfAlignCenter or dtfAlignMiddle, Caption = 'Cancel', ModalResult = mrCancel + + SplitStart _filegrid + Split stVert or stJustGap, 8, 24, 0, 100 + Cell cellPath + Split stVert or stJustGap, 8, 24, 0, 100 + Cell cellEdit + Split stVert or stJustGap or stOriginBR, 8, 24, 0, 100 + Cell cellList + Split stHoriz or stJustGap or stOriginBR, 8, 64, 0, 100 + Split stHoriz or stJustGap or stOriginBR, 8, 64, 0, 100 + Cell empty + Cell cellCancel + Cell cellOK + SplitEnd + end if +endg + + +; Used defined callback to return TImage for the file item icon. +; Returns: +; CF = 0, eax = pointer to TImage +; CF = 1, eax not changed. + +interface FileIconCallback, .pDirItem + +uglobal + pFileIconsCallback dd ? +endg + + + +fdtOpenFile = 0 +fdtSaveFile = 1 +fdtMultipleSelect = 2 + +; Returns: +; 1. [.type] and fdtMultipleSelect == 0 +; eax - handle of a string with the full pathname of the file. +; 2. [.type] and fdtMultipleSelect <> 0 +; eax - pointer to TArray of dword with the filenames. + +proc FileDialog, .pParent, .type, .start_filename, .filters_list +begin + pushad + stdcall CreateFromTemplate, _FileDialogTemplate, 0 + + mov eax, [.type] + and eax, 1 + set ebx, TForm:UserData, eax + set ebx, TForm:Caption, [__file_dialog_titles+4*eax] + + xor eax, eax + mov esi, [frmFileDlg.lvFiles] + set esi, TListView:FixedCols, eax + inc eax + set esi, TListView:FixedRows, eax + + mov eax, gfGridLinesFixed or gfResizeColumns or gfRowFocus + test [.type], fdtMultipleSelect + jnz @f + or eax, gfSingleCellSelect +@@: + set esi, TListView:Flags, eax + + exec esi, TListView:AddHeader, txt "Filename" + exec esi, TListView:AddHeader, txt "Size" + exec esi, TListView:AddHeader, txt "Type" + exec esi, TListView:AddHeader, txt "Modified" + + set [frmFileDlg.tbPath], TTabBar:OnSelChange, __FileDlgPathChanged + + stdcall GetFullPathName, [.start_filename] + push eax eax eax + + stdcall StrSplitFilename, eax + push eax + + set [frmFileDlg.editFilename], TEdit:Text, eax + stdcall StrDel ; from the stack + + stdcall StrPtr ; from the stack + cmp byte [eax], DIR_SLASH + jne @f + exec [frmFileDlg.tbPath], TTabBar:InsertTab, -1, txt DIR_SLASH, 0, 0 +@@: + pop eax + stdcall StrSplitList, eax, DIR_SLASH, FALSE + stdcall StrDel ; from the stack + mov edx, eax + xor ecx, ecx + +.dir_loop: + cmp ecx, [edx+TArray.count] + jae .end_dir + + stdcall StrCat, [edx+TArray.array+4*ecx], txt DIR_SLASH + exec [frmFileDlg.tbPath], TTabBar:InsertTab, -1, [edx+TArray.array+4*ecx], 0, 0 + inc ecx + jmp .dir_loop + +.end_dir: + stdcall ListFree, edx, StrDel + + mov ecx, [frmFileDlg.tbPath] + mov ecx, [ecx+TTabBar._items] + mov ecx, [ecx+TArray.count] + dec ecx + set [frmFileDlg.tbPath], TTabBar:Selected, ecx + + stdcall ShowModal, ebx, [.pParent] + cmp eax, mrOK + jne .ignore + +; finish ok: + + mov edi, [frmFileDlg.tbPath] + mov edx, [edi+TTabBar._items] + mov ecx, [edi+TTabBar._selected] + lea edx, [edx+TArray.array] + + stdcall StrNew + mov edi, eax + +.restore_path: + stdcall StrCat, edi, [edx+TTab.caption] + add edx, sizeof.TTab + dec ecx + jns .restore_path + + test [.type], fdtMultipleSelect + jnz .get_multiple + + get eax, [frmFileDlg.editFilename], TEdit:Text + push eax + + stdcall StrCat, edi, eax + stdcall StrDel ; from the stack. + + mov [esp+4*regEAX], edi + +.finish: + destroy ebx + clc + popad + return + + +.get_multiple: +locals + .path dd ? + .end dd ? +endl + + stdcall CreateArray, 4 + jc .cant_allocate_array + + push ebx + + mov edx, eax + mov [.path], edi + + mov esi, [frmFileDlg.lvFiles] + mov ebx, [esi+TListView._items] + lea ebx, [ebx+TArray.array] + + mov ecx, [esi+TListView.selection.top] + mov eax, [esi+TListView.selection.bottom] + + cmp ecx, eax + jle .order_ok + xchg ecx, eax +.order_ok: + + dec ecx + js .end_files + + dec eax ; because of the header line! + js .end_files + + mov [.end], eax + + OutputValue "Item from: ", ecx, 10, -1 + OutputValue "Item to: ", [.end], 10, -1 + + lea ebx, [ebx+8*ecx] + lea ebx, [ebx+8*ecx] ; sizeof.TLvItem = $10 + +.file_loop: + cmp ecx, [.end] + jg .end_files + + stdcall StrDup, [.path] + mov edi, [ebx+TLvItem.captions] + stdcall StrCat, eax, [edi+TArray.array] + push eax + + stdcall AddArrayItems, edx, 1 + pop dword [eax] + + add ebx, sizeof.TLvItem + inc ecx + jmp .file_loop + +.end_files: + stdcall StrDel, [.path] + + pop ebx + mov [esp+4*regEAX], edx + jmp .finish + +.cant_allocate_array: + + stdcall StrDel, edi + +.ignore: + xor eax, eax + mov [esp+4*regEAX], eax + destroy ebx + stc + popad + return + +endp + + + +; interface TTabBar.OnSelChange, .self, .pTabUnselected, .iTabUnselected, .pTabSelected, .iTabSelected + +proc __FileDlgPathChanged as TTabBar.OnSelChange +begin + cmp [.pTabSelected], 0 + je .finish + + mov esi, [.self] + +; create active path + + stdcall StrNew + mov ebx, eax + + mov edi, [esi+TTabBar._items] + mov ecx, [edi+TArray.count] + dec ecx + js .dir_ok + + cmp ecx, [esi+TTabBar._selected] + cmova ecx, [esi+TTabBar._selected] + lea edi, [edi+TArray.array] + +.loop: + stdcall StrCat, ebx, [edi + TTab.caption] + add edi, sizeof.TTab + dec ecx + jns .loop + +.dir_ok: + stdcall __FillListView, ebx, [frmFileDlg.lvFiles] + stdcall StrDel, ebx + + exec [frmFileDlg.lvFiles], TListView:SetFocused, 0, 1 + stdcall SetFocusedWindow, [frmFileDlg.lvFiles] + +.finish: + return +endp + + + +proc __FillListView, .hDir, .list_view +.date_time TDateTime +begin + pushad + + mov edi, [.list_view] + + set edi, TListView:Visible, FALSE + exec edi, TListView:Clear + + stdcall DirectoryRead, [.hDir] + jc .finish + + mov esi, eax ; TArray of TDirItem + push eax + + stdcall SortArray, esi, DirItemCompare, dsByName or fdsDirsFirst + + mov ecx, [esi+TArray.count] + lea esi, [esi+TArray.array] + +.loop: + dec ecx + js .end_of_files + + xor eax, eax + xor ebx, ebx + + stdcall StrPtr, [esi+TDirItem.hFilename] + cmp word [eax], '.' + je .next + + mov edx, [esi+TDirItem.Type] + test edx, ftLinkMask + setnz bl + + and edx, not ftLinkMask + + cmp [pFileIconsCallback], 0 + je .default_icon + + stdcall [pFileIconsCallback], esi + jnc .icon_ok + +.default_icon: + cmp edx, ftDirectory + cmove eax, [GUI.iconDirectory+8*ebx] + + cmp edx, ftFile + cmove eax, [GUI.iconFile+8*ebx] + +.icon_ok: + exec edi, TListView:InsertItem, -1, [esi+TDirItem.hFilename], eax, 0 + mov ebx, eax + +; size + mov edx, [esi+TDirItem.Type] + and edx, not ftLinkMask + cmp edx, ftDirectory + jne .get_size + + stdcall StrNew + jmp .set_size + +.get_size: + stdcall NumToStr64, dword [esi+TDirItem.Size], dword [esi+TDirItem.Size+4], ntsDec or ntsUnsigned + +.set_size: + push eax + exec edi, TListView:AddSubItem, ebx, eax + stdcall StrDel ; from the stack + +; extension + + cmp edx, ftDirectory + jne .get_ext + + stdcall StrDupMem, txt "DIR" + jmp .set_type + +.get_ext: + stdcall StrExtractExt, [esi+TDirItem.hFilename] + jnc .set_type + + stdcall StrNew + +.set_type: + mov edx, eax + exec edi, TListView:AddSubItem, ebx, edx + stdcall StrDel, edx + +; time modified + + lea eax, [.date_time] + lea edx, [esi+TDirItem.mTime] + stdcall TimeToDateTime, edx, eax + stdcall DateTimeToStr, eax, 0 + push eax + exec edi, TListView:AddSubItem, ebx, eax + stdcall StrDel ; from the stack + +.next: + add esi, sizeof.TDirItem + jmp .loop + +.end_of_files: + + stdcall FreeDirArray ; from the stack + +.finish: + set edi, TListView:Visible, TRUE + popad + return +endp + + + + + +proc __FileListFocusChange as TListView.OnFocusChange +begin + pushad + + mov esi, [.pListView] + mov edx, [esi+TListView._items] + + mov ebx, [.y] + sub ebx, [esi+TListView._FixedRows] + js .finish + + test [esi+TListView._flags], gfRowFocus + jnz @f + imul ebx, [esi+TListView.ColCount] + add ebx, [.x] + sub ebx, [esi+TListView._FixedCols] +@@: + +; here ebx is the item index in TArray + + cmp ebx, [edx+TArray.count] + jae .finish + + shl ebx, TLvItem.shift + lea ebx, [edx+ebx+TArray.array] + + mov edx, [ebx+TLvItem.captions] + + stdcall StrLen, [edx + TArray.array + 4] ; is it a directory? + test eax, eax + jz .finish + + set [frmFileDlg.editFilename], TEdit:Text, [edx+TArray.array] + +.finish: + popad + return +endp + + + + +proc __FileDialogChangeDir +begin + pushad + + mov esi, [frmFileDlg.lvFiles] + mov edx, [esi+TListView._items] + + mov ebx, [esi+TListView._focused.y] + sub ebx, [esi+TListView._FixedRows] + js .finish_false + + test [esi+TListView._flags], gfRowFocus + jnz @f + imul ebx, [esi+TListView.ColCount] + add ebx, [esi+TListView._focused.x] + sub ebx, [esi+TListView._FixedCols] +@@: + +; here ebx is the item index in TArray + + cmp ebx, [edx+TArray.count] + jae .finish_false + + shl ebx, TLvItem.shift + lea ebx, [edx+ebx+TArray.array] + +; is it directory? + + mov edx, [ebx+TLvItem.captions] + cmp [edx+TArray.count], 2 + jb .finish_false + + stdcall StrLen, [edx + TArray.array + 4] + test eax, eax + jnz .finish_false + +; directory!!! + + push edx + + get eax, [frmFileDlg], TForm:UserData + test eax, eax + jnz .filename_ok + + set [frmFileDlg.editFilename], TEdit:Text, 0 + +.filename_ok: + stdcall StrCompCase, [edx+TArray.array], txt '..' + jnc .change_up + + pop edx + + exec [frmFileDlg.tbPath], TTabBar:Prev + jmp .finish_true + +.change_up: +; change directory. + + mov edi, [frmFileDlg.tbPath] + mov edx, [edi+TTabBar._items] + sub eax, [edi+TTabBar._selected] + mov ecx, [edx+TArray.count] + set edi, TTabBar:OnSelChange, 0 + +.free_loop: + dec ecx + cmp ecx, [edi+TTabBar._selected] + je .add_new + + exec edi, TTabBar:DeleteTab, ecx, 0 + jmp .free_loop + +.add_new: + set edi, TTabBar:OnSelChange, __FileDlgPathChanged + pop edx + + stdcall StrDup, [edx+TArray.array] + stdcall StrCat, eax, txt DIR_SLASH + push eax + + exec edi, TTabBar:InsertTab, -1, eax, 0, 0 + stdcall StrDel ; from the stack + + mov eax, [edi+TTabBar._selected] + inc eax + set edi, TTabBar:Selected, eax + +.finish_true: + stc + popad + return + +.finish_false: + clc + popad + return +endp + + + + +proc __FileListDoubleClick as TWindow.OnMouseButton +begin + stdcall __FileDialogChangeDir + jc .finish + + set [frmFileDlg], TForm:ModalResult, mrOK + +.finish: + return +endp + + + +proc __FileListKeyPressed as TWindow.OnKeyEvent +begin + cmp [.utf8], $08 + je .directory_back_forward + + cmp [.utf8], $0d + clc + jne .finish + + stdcall __FileDialogChangeDir + jmp .finish + +.directory_back_forward: + test [.kbdState], maskCtrl or maskShift + jz .directory_back + + exec [frmFileDlg.tbPath], TTabBar:Next + stc + jmp .finish + +.directory_back: + exec [frmFileDlg.tbPath], TTabBar:Prev + stc + +.finish: + return +endp + ADDED freshlib/gui/images/_theme_circle/error.png Index: freshlib/gui/images/_theme_circle/error.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_circle/error.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_circle/information.png Index: freshlib/gui/images/_theme_circle/information.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_circle/information.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_circle/question.png Index: freshlib/gui/images/_theme_circle/question.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_circle/question.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_circle/warning.png Index: freshlib/gui/images/_theme_circle/warning.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_circle/warning.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_rhomb/error.png Index: freshlib/gui/images/_theme_rhomb/error.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_rhomb/error.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_rhomb/information.png Index: freshlib/gui/images/_theme_rhomb/information.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_rhomb/information.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_rhomb/question.png Index: freshlib/gui/images/_theme_rhomb/question.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_rhomb/question.png cannot compute difference between binary files ADDED freshlib/gui/images/_theme_rhomb/warning.png Index: freshlib/gui/images/_theme_rhomb/warning.png ================================================================== --- /dev/null +++ freshlib/gui/images/_theme_rhomb/warning.png cannot compute difference between binary files ADDED freshlib/gui/images/checkbox/check.png Index: freshlib/gui/images/checkbox/check.png ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check.png cannot compute difference between binary files ADDED freshlib/gui/images/checkbox/check.svg Index: freshlib/gui/images/checkbox/check.svg ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check.svg @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="13" + height="13" + viewBox="0 0 13 13" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/checkbox/check.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="43.153846" + inkscape:cx="2.6648841" + inkscape:cy="6.5" + inkscape:current-layer="Capa_1" /><g + id="g3" + transform="matrix(0.22441969,0,0,0.22441969,1.4999414,1.5000527)" + style="fill:#0000ff;fill-opacity:1"><g + id="g5" + style="fill:#0000ff;fill-opacity:1"><path + d="m 23.297,38.74 c -1.17,1.588 -2.992,2.564 -4.962,2.661 -1.97,0.098 -3.878,-0.696 -5.198,-2.162 L 1.308,26.112 c -1.88,-2.085 -1.713,-5.299 0.372,-7.179 2.087,-1.88 5.299,-1.712 7.179,0.374 l 8.369,9.288 c 0.124,0.138 0.304,0.212 0.489,0.203 0.186,-0.009 0.356,-0.102 0.467,-0.25 L 35.386,5.217 c 1.665,-2.26 4.847,-2.741 7.108,-1.075 2.259,1.666 2.739,4.848 1.073,7.107 L 23.297,38.74 Z" + id="path7" + inkscape:connector-curvature="0" + style="fill:#0000ff;fill-opacity:1" /></g></g><g + id="g9" + transform="translate(0,-31.560001)" /><g + id="g11" + transform="translate(0,-31.560001)" /><g + id="g13" + transform="translate(0,-31.560001)" /><g + id="g15" + transform="translate(0,-31.560001)" /><g + id="g17" + transform="translate(0,-31.560001)" /><g + id="g19" + transform="translate(0,-31.560001)" /><g + id="g21" + transform="translate(0,-31.560001)" /><g + id="g23" + transform="translate(0,-31.560001)" /><g + id="g25" + transform="translate(0,-31.560001)" /><g + id="g27" + transform="translate(0,-31.560001)" /><g + id="g29" + transform="translate(0,-31.560001)" /><g + id="g31" + transform="translate(0,-31.560001)" /><g + id="g33" + transform="translate(0,-31.560001)" /><g + id="g35" + transform="translate(0,-31.560001)" /><g + id="g37" + transform="translate(0,-31.560001)" /></svg> ADDED freshlib/gui/images/checkbox/check_flat.png Index: freshlib/gui/images/checkbox/check_flat.png ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check_flat.png cannot compute difference between binary files ADDED freshlib/gui/images/checkbox/check_flat.svg Index: freshlib/gui/images/checkbox/check_flat.svg ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check_flat.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="13" + height="13" + viewBox="0 0 13 13" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check_flat.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/checkbox/check_flat.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="43.153846" + inkscape:cx="6.5" + inkscape:cy="6.5" + inkscape:current-layer="Capa_1" /><g + id="g9" + transform="translate(0,-31.560001)" /><g + id="g11" + transform="translate(0,-31.560001)" /><g + id="g13" + transform="translate(0,-31.560001)" /><g + id="g15" + transform="translate(0,-31.560001)" /><g + id="g17" + transform="translate(0,-31.560001)" /><g + id="g19" + transform="translate(0,-31.560001)" /><g + id="g21" + transform="translate(0,-31.560001)" /><g + id="g23" + transform="translate(0,-31.560001)" /><g + id="g25" + transform="translate(0,-31.560001)" /><g + id="g27" + transform="translate(0,-31.560001)" /><g + id="g29" + transform="translate(0,-31.560001)" /><g + id="g31" + transform="translate(0,-31.560001)" /><g + id="g33" + transform="translate(0,-31.560001)" /><g + id="g35" + transform="translate(0,-31.560001)" /><g + id="g37" + transform="translate(0,-31.560001)" /><rect + style="fill:#e74c3c;fill-opacity:1;stroke:none;stroke-width:1.02100003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="5" + height="5" + x="4" + y="4" /></svg> ADDED freshlib/gui/images/checkbox/check_flat_gray.png Index: freshlib/gui/images/checkbox/check_flat_gray.png ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check_flat_gray.png cannot compute difference between binary files ADDED freshlib/gui/images/checkbox/check_flat_gray.svg Index: freshlib/gui/images/checkbox/check_flat_gray.svg ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check_flat_gray.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="13" + height="13" + viewBox="0 0 13 13" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check_flat_gray.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/checkbox/check_flat_gray.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="96.432248" + inkscape:cx="4.7837691" + inkscape:cy="6.4536542" + inkscape:current-layer="Capa_1" /><g + id="g9" + transform="translate(0,-31.560001)" /><g + id="g11" + transform="translate(0,-31.560001)" /><g + id="g13" + transform="translate(0,-31.560001)" /><g + id="g15" + transform="translate(0,-31.560001)" /><g + id="g17" + transform="translate(0,-31.560001)" /><g + id="g19" + transform="translate(0,-31.560001)" /><g + id="g21" + transform="translate(0,-31.560001)" /><g + id="g23" + transform="translate(0,-31.560001)" /><g + id="g25" + transform="translate(0,-31.560001)" /><g + id="g27" + transform="translate(0,-31.560001)" /><g + id="g29" + transform="translate(0,-31.560001)" /><g + id="g31" + transform="translate(0,-31.560001)" /><g + id="g33" + transform="translate(0,-31.560001)" /><g + id="g35" + transform="translate(0,-31.560001)" /><g + id="g37" + transform="translate(0,-31.560001)" /><rect + style="fill:#6f6f6f;fill-opacity:1;stroke:none;stroke-width:1.02100003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="5" + height="5" + x="4" + y="4" /></svg> ADDED freshlib/gui/images/checkbox/check_gray.png Index: freshlib/gui/images/checkbox/check_gray.png ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check_gray.png cannot compute difference between binary files ADDED freshlib/gui/images/checkbox/check_gray.svg Index: freshlib/gui/images/checkbox/check_gray.svg ================================================================== --- /dev/null +++ freshlib/gui/images/checkbox/check_gray.svg @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="13" + height="13" + viewBox="0 0 13 13" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check_gray.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/checkbox/check_gray.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="43.153846" + inkscape:cx="2.6648841" + inkscape:cy="6.5" + inkscape:current-layer="Capa_1" /><g + id="g3" + transform="matrix(0.22441969,0,0,0.22441969,1.4999414,1.5000527)" + style="fill:#404040;fill-opacity:1"><g + id="g5" + style="fill:#404040;fill-opacity:1"><path + d="m 23.297,38.74 c -1.17,1.588 -2.992,2.564 -4.962,2.661 -1.97,0.098 -3.878,-0.696 -5.198,-2.162 L 1.308,26.112 c -1.88,-2.085 -1.713,-5.299 0.372,-7.179 2.087,-1.88 5.299,-1.712 7.179,0.374 l 8.369,9.288 c 0.124,0.138 0.304,0.212 0.489,0.203 0.186,-0.009 0.356,-0.102 0.467,-0.25 L 35.386,5.217 c 1.665,-2.26 4.847,-2.741 7.108,-1.075 2.259,1.666 2.739,4.848 1.073,7.107 L 23.297,38.74 Z" + id="path7" + inkscape:connector-curvature="0" + style="fill:#404040;fill-opacity:1" /></g></g><g + id="g9" + transform="translate(0,-31.560001)" /><g + id="g11" + transform="translate(0,-31.560001)" /><g + id="g13" + transform="translate(0,-31.560001)" /><g + id="g15" + transform="translate(0,-31.560001)" /><g + id="g17" + transform="translate(0,-31.560001)" /><g + id="g19" + transform="translate(0,-31.560001)" /><g + id="g21" + transform="translate(0,-31.560001)" /><g + id="g23" + transform="translate(0,-31.560001)" /><g + id="g25" + transform="translate(0,-31.560001)" /><g + id="g27" + transform="translate(0,-31.560001)" /><g + id="g29" + transform="translate(0,-31.560001)" /><g + id="g31" + transform="translate(0,-31.560001)" /><g + id="g33" + transform="translate(0,-31.560001)" /><g + id="g35" + transform="translate(0,-31.560001)" /><g + id="g37" + transform="translate(0,-31.560001)" /></svg> ADDED freshlib/gui/images/error.png Index: freshlib/gui/images/error.png ================================================================== --- /dev/null +++ freshlib/gui/images/error.png cannot compute difference between binary files ADDED freshlib/gui/images/information.png Index: freshlib/gui/images/information.png ================================================================== --- /dev/null +++ freshlib/gui/images/information.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/check.png Index: freshlib/gui/images/menu/check.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/check.svg Index: freshlib/gui/images/menu/check.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check.svg @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="8" + height="16" + viewBox="0 0 8 16" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/check.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="35.0625" + inkscape:cx="-0.7201426" + inkscape:cy="8" + inkscape:current-layer="Capa_1" + inkscape:snap-page="true" /><g + id="g3" + transform="matrix(0.17953575,0,0,0.1795327,-4.6834361e-5,4.0001102)" + style="fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><g + id="g5" + style="fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><path + d="m 23.297,38.74 c -1.17,1.588 -2.992,2.564 -4.962,2.661 -1.97,0.098 -3.878,-0.696 -5.198,-2.162 L 1.308,26.112 c -1.88,-2.085 -1.713,-5.299 0.372,-7.179 2.087,-1.88 5.299,-1.712 7.179,0.374 l 8.369,9.288 c 0.124,0.138 0.304,0.212 0.489,0.203 0.186,-0.009 0.356,-0.102 0.467,-0.25 L 35.386,5.217 c 1.665,-2.26 4.847,-2.741 7.108,-1.075 2.259,1.666 2.739,4.848 1.073,7.107 L 23.297,38.74 Z" + id="path7" + inkscape:connector-curvature="0" + style="fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g></g><g + id="g9" + transform="translate(0,-28.560001)" /><g + id="g11" + transform="translate(0,-28.560001)" /><g + id="g13" + transform="translate(0,-28.560001)" /><g + id="g15" + transform="translate(0,-28.560001)" /><g + id="g17" + transform="translate(0,-28.560001)" /><g + id="g19" + transform="translate(0,-28.560001)" /><g + id="g21" + transform="translate(0,-28.560001)" /><g + id="g23" + transform="translate(0,-28.560001)" /><g + id="g25" + transform="translate(0,-28.560001)" /><g + id="g27" + transform="translate(0,-28.560001)" /><g + id="g29" + transform="translate(0,-28.560001)" /><g + id="g31" + transform="translate(0,-28.560001)" /><g + id="g33" + transform="translate(0,-28.560001)" /><g + id="g35" + transform="translate(0,-28.560001)" /><g + id="g37" + transform="translate(0,-28.560001)" /></svg> ADDED freshlib/gui/images/menu/check_flat.png Index: freshlib/gui/images/menu/check_flat.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check_flat.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/check_flat.svg Index: freshlib/gui/images/menu/check_flat.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check_flat.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="7" + height="16" + viewBox="0 0 7 16" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check_flat.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/check_flat.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="33.519231" + inkscape:cx="-0.93746414" + inkscape:cy="8" + inkscape:current-layer="Capa_1" + inkscape:snap-page="true" /><g + id="g3" + transform="matrix(0.17953575,0,0,0.1795327,-4.6834361e-5,4.0001102)" + style="fill:#e67e22;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><g + id="g5" + style="fill:#e67e22;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><g + id="g9" + transform="translate(0,-28.560001)" /><g + id="g11" + transform="translate(0,-28.560001)" /><g + id="g13" + transform="translate(0,-28.560001)" /><g + id="g15" + transform="translate(0,-28.560001)" /><g + id="g17" + transform="translate(0,-28.560001)" /><g + id="g19" + transform="translate(0,-28.560001)" /><g + id="g21" + transform="translate(0,-28.560001)" /><g + id="g23" + transform="translate(0,-28.560001)" /><g + id="g25" + transform="translate(0,-28.560001)" /><g + id="g27" + transform="translate(0,-28.560001)" /><g + id="g29" + transform="translate(0,-28.560001)" /><g + id="g31" + transform="translate(0,-28.560001)" /><g + id="g33" + transform="translate(0,-28.560001)" /><g + id="g35" + transform="translate(0,-28.560001)" /><g + id="g37" + transform="translate(0,-28.560001)" /><rect + style="fill:#e74c3c;fill-opacity:1;stroke:none;stroke-width:1.02100003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="7" + height="7" + x="0" + y="4.5" /></svg> ADDED freshlib/gui/images/menu/check_flat_gray.png Index: freshlib/gui/images/menu/check_flat_gray.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check_flat_gray.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/check_flat_gray.svg Index: freshlib/gui/images/menu/check_flat_gray.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check_flat_gray.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="7" + height="16" + viewBox="0 0 7 16" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check_flat_gray.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/check_flat_gray.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="33.519231" + inkscape:cx="-0.93746414" + inkscape:cy="8" + inkscape:current-layer="Capa_1" + inkscape:snap-page="true" /><g + id="g3" + transform="matrix(0.17953575,0,0,0.1795327,-4.6834361e-5,4.0001102)" + style="fill:#e67e22;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><g + id="g5" + style="fill:#e67e22;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><g + id="g9" + transform="translate(0,-28.560001)" /><g + id="g11" + transform="translate(0,-28.560001)" /><g + id="g13" + transform="translate(0,-28.560001)" /><g + id="g15" + transform="translate(0,-28.560001)" /><g + id="g17" + transform="translate(0,-28.560001)" /><g + id="g19" + transform="translate(0,-28.560001)" /><g + id="g21" + transform="translate(0,-28.560001)" /><g + id="g23" + transform="translate(0,-28.560001)" /><g + id="g25" + transform="translate(0,-28.560001)" /><g + id="g27" + transform="translate(0,-28.560001)" /><g + id="g29" + transform="translate(0,-28.560001)" /><g + id="g31" + transform="translate(0,-28.560001)" /><g + id="g33" + transform="translate(0,-28.560001)" /><g + id="g35" + transform="translate(0,-28.560001)" /><g + id="g37" + transform="translate(0,-28.560001)" /><rect + style="fill:#6e6e6e;fill-opacity:1;stroke:none;stroke-width:1.02100003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="7" + height="7" + x="0" + y="4.5" /></svg> ADDED freshlib/gui/images/menu/check_gray.png Index: freshlib/gui/images/menu/check_gray.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check_gray.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/check_gray.svg Index: freshlib/gui/images/menu/check_gray.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/check_gray.svg @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="8" + height="16" + viewBox="0 0 8 16" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="check_gray.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/check_gray.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata43"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs41" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview39" + showgrid="false" + inkscape:zoom="35.0625" + inkscape:cx="-0.7201426" + inkscape:cy="8" + inkscape:current-layer="Capa_1" + inkscape:snap-page="true" /><g + id="g3" + transform="matrix(0.17953575,0,0,0.1795327,-4.6834361e-5,4.0001102)" + style="fill:#3f3f3f;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><g + id="g5" + style="fill:#3f3f3f;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><path + d="m 23.297,38.74 c -1.17,1.588 -2.992,2.564 -4.962,2.661 -1.97,0.098 -3.878,-0.696 -5.198,-2.162 L 1.308,26.112 c -1.88,-2.085 -1.713,-5.299 0.372,-7.179 2.087,-1.88 5.299,-1.712 7.179,0.374 l 8.369,9.288 c 0.124,0.138 0.304,0.212 0.489,0.203 0.186,-0.009 0.356,-0.102 0.467,-0.25 L 35.386,5.217 c 1.665,-2.26 4.847,-2.741 7.108,-1.075 2.259,1.666 2.739,4.848 1.073,7.107 L 23.297,38.74 Z" + id="path7" + inkscape:connector-curvature="0" + style="fill:#3f3f3f;fill-opacity:1;stroke:none;stroke-width:4.55629396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g></g><g + id="g9" + transform="translate(0,-28.560001)" /><g + id="g11" + transform="translate(0,-28.560001)" /><g + id="g13" + transform="translate(0,-28.560001)" /><g + id="g15" + transform="translate(0,-28.560001)" /><g + id="g17" + transform="translate(0,-28.560001)" /><g + id="g19" + transform="translate(0,-28.560001)" /><g + id="g21" + transform="translate(0,-28.560001)" /><g + id="g23" + transform="translate(0,-28.560001)" /><g + id="g25" + transform="translate(0,-28.560001)" /><g + id="g27" + transform="translate(0,-28.560001)" /><g + id="g29" + transform="translate(0,-28.560001)" /><g + id="g31" + transform="translate(0,-28.560001)" /><g + id="g33" + transform="translate(0,-28.560001)" /><g + id="g35" + transform="translate(0,-28.560001)" /><g + id="g37" + transform="translate(0,-28.560001)" /></svg> ADDED freshlib/gui/images/menu/submenu.png Index: freshlib/gui/images/menu/submenu.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/submenu.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/submenu.svg Index: freshlib/gui/images/menu/submenu.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/submenu.svg @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="6" + height="11" + viewBox="0 0 5.9999999 11" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="submenu.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/submenu.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata42"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs40" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1061" + id="namedview38" + showgrid="false" + inkscape:zoom="51" + inkscape:cx="-0.24509804" + inkscape:cy="5.5" + inkscape:window-x="-4" + inkscape:window-y="-4" + inkscape:window-maximized="1" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><g + id="g3" + transform="matrix(0.02139037,0,0,0.03081232,-0.81818182,1.9073486e-6)" + style="fill:#000000;fill-opacity:1"><g + id="play-arrow" + style="fill:#000000;fill-opacity:1"><polygon + points="38.25,0 38.25,357 318.75,178.5 " + id="polygon6" + style="fill:#000000;fill-opacity:1" /></g></g><g + id="g8" + transform="translate(-7.9999995,-339)" /><g + id="g10" + transform="translate(-7.9999995,-339)" /><g + id="g12" + transform="translate(-7.9999995,-339)" /><g + id="g14" + transform="translate(-7.9999995,-339)" /><g + id="g16" + transform="translate(-7.9999995,-339)" /><g + id="g18" + transform="translate(-7.9999995,-339)" /><g + id="g20" + transform="translate(-7.9999995,-339)" /><g + id="g22" + transform="translate(-7.9999995,-339)" /><g + id="g24" + transform="translate(-7.9999995,-339)" /><g + id="g26" + transform="translate(-7.9999995,-339)" /><g + id="g28" + transform="translate(-7.9999995,-339)" /><g + id="g30" + transform="translate(-7.9999995,-339)" /><g + id="g32" + transform="translate(-7.9999995,-339)" /><g + id="g34" + transform="translate(-7.9999995,-339)" /><g + id="g36" + transform="translate(-7.9999995,-339)" /></svg> ADDED freshlib/gui/images/menu/submenugray.png Index: freshlib/gui/images/menu/submenugray.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/submenugray.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/submenugray.svg Index: freshlib/gui/images/menu/submenugray.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/submenugray.svg @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="6" + height="11" + viewBox="0 0 5.9999999 11" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="submenugray.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/submenugray.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata42"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs40" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1061" + id="namedview38" + showgrid="false" + inkscape:zoom="51" + inkscape:cx="3" + inkscape:cy="5.5" + inkscape:window-x="-4" + inkscape:window-y="-4" + inkscape:window-maximized="1" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><g + id="g3" + transform="matrix(0.02139037,0,0,0.03081232,-0.81818182,1.9073486e-6)" + style="fill:#95a5a6;fill-opacity:1"><g + id="play-arrow" + style="fill:#95a5a6;fill-opacity:1"><polygon + points="318.75,178.5 38.25,0 38.25,357 " + id="polygon6" + style="fill:#95a5a6;fill-opacity:1" /></g></g><g + id="g8" + transform="translate(-7.9999994,-339)" /><g + id="g10" + transform="translate(-7.9999994,-339)" /><g + id="g12" + transform="translate(-7.9999994,-339)" /><g + id="g14" + transform="translate(-7.9999994,-339)" /><g + id="g16" + transform="translate(-7.9999994,-339)" /><g + id="g18" + transform="translate(-7.9999994,-339)" /><g + id="g20" + transform="translate(-7.9999994,-339)" /><g + id="g22" + transform="translate(-7.9999994,-339)" /><g + id="g24" + transform="translate(-7.9999994,-339)" /><g + id="g26" + transform="translate(-7.9999994,-339)" /><g + id="g28" + transform="translate(-7.9999994,-339)" /><g + id="g30" + transform="translate(-7.9999994,-339)" /><g + id="g32" + transform="translate(-7.9999994,-339)" /><g + id="g34" + transform="translate(-7.9999994,-339)" /><g + id="g36" + transform="translate(-7.9999994,-339)" /></svg> ADDED freshlib/gui/images/menu/submenusel.png Index: freshlib/gui/images/menu/submenusel.png ================================================================== --- /dev/null +++ freshlib/gui/images/menu/submenusel.png cannot compute difference between binary files ADDED freshlib/gui/images/menu/submenusel.svg Index: freshlib/gui/images/menu/submenusel.svg ================================================================== --- /dev/null +++ freshlib/gui/images/menu/submenusel.svg @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="6" + height="10.999998" + viewBox="0 0 5.9999999 10.999998" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="submenusel.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/menu/submenusel.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><metadata + id="metadata42"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs40" /><sodipodi:namedview + pagecolor="#0000ff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1061" + id="namedview38" + showgrid="false" + inkscape:zoom="51.000009" + inkscape:cx="3" + inkscape:cy="5.499999" + inkscape:window-x="-4" + inkscape:window-y="-4" + inkscape:window-maximized="1" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><g + id="g3" + transform="matrix(0.02139037,0,0,0.03081232,-0.81818182,-1.4734863e-7)" + style="fill:#ffffff;fill-opacity:1"><g + id="play-arrow" + style="fill:#ffffff;fill-opacity:1"><polygon + points="38.25,0 38.25,357 318.75,178.5 " + id="polygon6" + style="fill:#ffffff;fill-opacity:1" /></g></g><g + id="g8" + transform="translate(-7.9999995,-339)" /><g + id="g10" + transform="translate(-7.9999995,-339)" /><g + id="g12" + transform="translate(-7.9999995,-339)" /><g + id="g14" + transform="translate(-7.9999995,-339)" /><g + id="g16" + transform="translate(-7.9999995,-339)" /><g + id="g18" + transform="translate(-7.9999995,-339)" /><g + id="g20" + transform="translate(-7.9999995,-339)" /><g + id="g22" + transform="translate(-7.9999995,-339)" /><g + id="g24" + transform="translate(-7.9999995,-339)" /><g + id="g26" + transform="translate(-7.9999995,-339)" /><g + id="g28" + transform="translate(-7.9999995,-339)" /><g + id="g30" + transform="translate(-7.9999995,-339)" /><g + id="g32" + transform="translate(-7.9999995,-339)" /><g + id="g34" + transform="translate(-7.9999995,-339)" /><g + id="g36" + transform="translate(-7.9999995,-339)" /></svg> ADDED freshlib/gui/images/question.png Index: freshlib/gui/images/question.png ================================================================== --- /dev/null +++ freshlib/gui/images/question.png cannot compute difference between binary files ADDED freshlib/gui/images/svg/error.svg Index: freshlib/gui/images/svg/error.svg ================================================================== --- /dev/null +++ freshlib/gui/images/svg/error.svg @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + viewBox="0 0 310.285 310.285" + style="enable-background:new 0 0 310.285 310.285;" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="error.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/svg/error.png" + inkscape:export-xdpi="13.92" + inkscape:export-ydpi="13.92"><metadata + id="metadata39"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs37" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview35" + showgrid="false" + inkscape:zoom="1.6820764" + inkscape:cx="60.913725" + inkscape:cy="152.51297" + inkscape:current-layer="Capa_1" /><rect + style="fill:#ffffff;fill-opacity:1" + id="rect4167" + width="183.70152" + height="198.56412" + x="67.773376" + y="57.62109" /><path + d="M264.845,45.441C235.542,16.139,196.582,0,155.143,0S74.743,16.139,45.44,45.441C16.138,74.743,0,113.703,0,155.143 c0,41.439,16.138,80.399,45.44,109.701c29.303,29.303,68.262,45.44,109.702,45.44s80.399-16.138,109.702-45.44 c29.302-29.302,45.44-68.262,45.44-109.701C310.285,113.703,294.147,74.743,264.845,45.441z M189.702,157.985l38.669,38.669 c3.12,3.119,3.12,8.194,0,11.313l-22.333,22.333c-1.507,1.507-3.516,2.337-5.657,2.337c-2.141,0-4.15-0.83-5.657-2.337 l-38.669-38.669c-0.748-0.746-2.08-0.746-2.829,0l-38.669,38.669c-1.507,1.507-3.516,2.337-5.657,2.337 c-2.141,0-4.149-0.83-5.657-2.336l-22.333-22.334c-1.507-1.507-2.337-3.516-2.337-5.656c0-2.142,0.83-4.15,2.337-5.657 l38.669-38.669c0.766-0.767,0.766-2.063-0.001-2.829l-40.302-40.302c-1.507-1.507-2.337-3.516-2.337-5.657 c0-2.141,0.83-4.149,2.337-5.656l22.333-22.333c1.507-1.507,3.516-2.337,5.657-2.337c2.141,0,4.149,0.83,5.656,2.337l40.303,40.303 c0.749,0.747,2.081,0.746,2.828,0l40.303-40.303c1.507-1.507,3.516-2.337,5.657-2.337c2.141,0,4.149,0.83,5.656,2.337l22.333,22.333 c1.507,1.507,2.337,3.516,2.337,5.656c0,2.142-0.83,4.15-2.337,5.658l-40.302,40.301 C188.936,155.923,188.936,157.219,189.702,157.985z" + id="path3" + style="fill:#e74c3c;fill-opacity:1" /><g + id="g5" /><g + id="g7" /><g + id="g9" /><g + id="g11" /><g + id="g13" /><g + id="g15" /><g + id="g17" /><g + id="g19" /><g + id="g21" /><g + id="g23" /><g + id="g25" /><g + id="g27" /><g + id="g29" /><g + id="g31" /><g + id="g33" /></svg> ADDED freshlib/gui/images/svg/information.svg Index: freshlib/gui/images/svg/information.svg ================================================================== --- /dev/null +++ freshlib/gui/images/svg/information.svg @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + viewBox="0 0 315.772 315.772" + style="enable-background:new 0 0 315.772 315.772;" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="information.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/svg/information.png" + inkscape:export-xdpi="13.68" + inkscape:export-ydpi="13.68"><metadata + id="metadata39"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs37" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview35" + showgrid="false" + inkscape:zoom="1.6528479" + inkscape:cx="61.990908" + inkscape:cy="155.20997" + inkscape:current-layer="Capa_1" /><rect + style="fill:#ffffff;fill-opacity:1" + id="rect4167" + width="183.70152" + height="222.76477" + x="60.613361" + y="8.9693317" /><path + d="M287.355,0H28.173C17.145,0,8.386,8.472,8.386,19.5v213.822c0,11.028,8.759,19.678,19.787,19.678h67.628 c5.514,0,9.585,4.809,9.585,10.322V302.5c0,9.169,5.476,13.272,10.697,13.272c3.053,0,6.293-1.282,9.423-3.813l62.314-50.482 c5.483-4.431,16.527-8.478,23.576-8.478h75.959c11.028,0,20.031-8.649,20.031-19.678V19.5C307.386,8.472,298.383,0,287.355,0z M182.904,92.834l-26.124,90.563c-1.422,5.357-2.131,8.91-2.131,10.657c0,0.877,0.381,1.75,1.148,2.624 c0.763,0.876,1.583,1.311,2.459,1.311c1.529,0,3.005-0.656,4.427-1.967c3.781-3.067,8.186-8.43,13.213-16.087 c0.347-0.529,1.496-1.585,2.16-0.987l2.682,1.532c0.665,0.574,0.253,1.403-0.021,1.869c-13.096,22.234-26.977,33.347-41.643,33.347 c-5.685,0-10.222-1.614-13.608-4.836c-3.389-3.222-5.083-7.296-5.083-12.215c0-3.279,0.763-7.432,2.295-12.46l18.363-63.123 c1.747-6.009,2.623-10.546,2.623-13.608c0-1.967-0.848-3.714-2.541-5.246c-1.696-1.529-3.963-2.296-6.804-2.296 c-0.579,0-1.185,0.009-1.817,0.028c-0.922,0.026-2.655-0.706-2.359-1.632c0.25-0.779,0.509-1.617,0.618-2.063 c0.507-2.068,5.213-2.185,5.213-2.185l36.527-5.887c0,0,2.912-0.558,4.984-0.558c1.587,0,3.096,0.014,4.127,0 C184.41,89.577,182.904,92.834,182.904,92.834z M189.408,61.987c-3.827,3.771-8.418,5.656-13.772,5.656 c-5.247,0-9.755-1.885-13.526-5.656c-3.771-3.771-5.656-8.333-5.656-13.69c0-5.354,1.857-9.944,5.574-13.772 c3.715-3.825,8.251-5.739,13.608-5.739c5.464,0,10.083,1.914,13.854,5.739c3.771,3.828,5.656,8.419,5.656,13.772 C195.146,53.654,193.232,58.216,189.408,61.987z" + id="path3" + style="fill:#3498db;fill-opacity:1" /><g + id="g5" /><g + id="g7" /><g + id="g9" /><g + id="g11" /><g + id="g13" /><g + id="g15" /><g + id="g17" /><g + id="g19" /><g + id="g21" /><g + id="g23" /><g + id="g25" /><g + id="g27" /><g + id="g29" /><g + id="g31" /><g + id="g33" /></svg> ADDED freshlib/gui/images/svg/question.svg Index: freshlib/gui/images/svg/question.svg ================================================================== --- /dev/null +++ freshlib/gui/images/svg/question.svg @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + viewBox="0 0 45.333 45.333" + style="enable-background:new 0 0 45.333 45.333;" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="question.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/svg/question.png" + inkscape:export-xdpi="95.290001" + inkscape:export-ydpi="95.290001"><metadata + id="metadata41"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs39" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview37" + showgrid="false" + inkscape:zoom="11.513094" + inkscape:cx="8.8995661" + inkscape:cy="22.282322" + inkscape:current-layer="Capa_1" /><g + id="g3" + style="fill:#2ecc71;fill-opacity:1"><path + style="fill:#2ecc71;fill-opacity:1" + d="M38.291,4.927c-1.2-1.142-1.792-1.316-1.3-0.481c0.302,0.513,0.555,1.039,0.757,1.58 c0.543,1.457,0.815,2.814,0.815,4.074c0,2.087-0.272,3.803-0.815,5.15c-0.545,1.347-1.217,2.499-2.021,3.454 c-0.805,0.957-1.694,1.772-2.672,2.445c-0.978,0.675-1.903,1.347-2.771,2.021c-0.87,0.674-1.641,1.445-2.315,2.314 c-0.353,0.455-0.637,0.97-0.853,1.544c-0.344,0.915-0.419,2.27-0.419,2.954s-1.97,1.238-4.399,1.238s-4.399-0.657-4.399-1.467 v-1.467c0.131-1.867,0.488-3.432,1.075-4.693c0.587-1.26,1.271-2.336,2.053-3.227c0.783-0.889,1.607-1.662,2.477-2.314 c0.868-0.652,1.673-1.303,2.412-1.956c0.739-0.652,1.337-1.369,1.793-2.151c0.456-0.782,0.661-1.759,0.619-2.933 c0-1.999-0.488-3.476-1.466-4.433c-0.978-0.956-2.338-1.434-4.074-1.434c-1.174,0-2.184,0.228-3.033,0.684 c-0.847,0.456-1.542,1.065-2.085,1.826c-0.545,0.76-0.946,1.651-1.206,2.672c-0.134,0.525-0.234,1.07-0.299,1.635 c-0.105,0.912-2.237,1.658-4.883,1.658s-4.8-1.489-4.475-3.282c0.201-1.109,0.498-2.166,0.89-3.171 c0.759-1.956,1.825-3.651,3.193-5.085c0.047-0.05,0.098-0.096,0.148-0.142c0.084-0.076-1.022,0.527-2.327,1.548 C3.409,7.636,0,14.09,0,21.344c0,10.014,6.496,18.507,15.503,21.505c1.572,0.523,2.256,0.143,1.852-0.834 c-0.238-0.576-0.37-1.205-0.37-1.866c0-2.772,2.291-5.019,5.116-5.019s5.116,2.247,5.116,5.019c0,0.716-0.155,1.395-0.434,2.009 c-0.472,1.042,0.127,1.51,1.728,1.084c9.685-2.577,16.822-11.402,16.822-21.899C45.336,14.882,42.63,9.055,38.291,4.927z" + id="path5" /></g><g + id="g7" /><g + id="g9" /><g + id="g11" /><g + id="g13" /><g + id="g15" /><g + id="g17" /><g + id="g19" /><g + id="g21" /><g + id="g23" /><g + id="g25" /><g + id="g27" /><g + id="g29" /><g + id="g31" /><g + id="g33" /><g + id="g35" /></svg> ADDED freshlib/gui/images/svg/warning.svg Index: freshlib/gui/images/svg/warning.svg ================================================================== --- /dev/null +++ freshlib/gui/images/svg/warning.svg @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + viewBox="0 0 356.484 356.484" + style="enable-background:new 0 0 356.484 356.484;" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="warning.svg" + inkscape:export-filename="/work/asmwork/FreshFs/FreshLibGUI/freshlib/gui/images/svg/warning.png" + inkscape:export-xdpi="12.12" + inkscape:export-ydpi="12.12"><metadata + id="metadata39"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs37" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview35" + showgrid="false" + inkscape:zoom="1.4640855" + inkscape:cx="15.341685" + inkscape:cy="166.40318" + inkscape:current-layer="Capa_1" /><path + style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 162.55881,58.687198 C 26.637788,317.55186 27.320808,318.9179 27.320808,318.9179 l 299.845872,5.46416 -1.36604,0 -124.9927,-262.962781 2.04906,1.36604" + id="path3367" + inkscape:connector-curvature="0" /><path + d="M354.239,321.64L189.847,22.478c-2.79-5.078-7.01-7.991-11.578-7.991c-4.584,0-8.824,2.931-11.631,8.04L2.245,321.64 c-2.749,5.002-2.984,10.138-0.646,14.09c2.356,3.983,7.023,6.267,12.806,6.267H342.08c5.782,0,10.449-2.284,12.806-6.267 C357.224,331.778,356.988,326.642,354.239,321.64z M154.064,93.621c0.922-0.955,2.166-1.624,3.504-1.624h40.897 c1.338,0,2.581,0.669,3.501,1.624c0.92,0.955,1.4,2.289,1.35,3.627l-5.174,139.618c-0.102,2.735-2.411,5.132-5.147,5.132h-30.298 c-2.738,0-5.043-2.363-5.138-5.099l-4.851-139.584C152.661,95.977,153.143,94.575,154.064,93.621z M178.188,315.435 c-15.386,0-26.988-12.19-26.988-28.355c0-16.36,11.455-28.697,26.646-28.697c15.689,0,26.646,11.801,26.646,28.697 C204.491,303.775,193.675,315.435,178.188,315.435z" + id="path3" + style="fill:#f1c40f;fill-opacity:1" /><g + id="g5" /><g + id="g7" /><g + id="g9" /><g + id="g11" /><g + id="g13" /><g + id="g15" /><g + id="g17" /><g + id="g19" /><g + id="g21" /><g + id="g23" /><g + id="g25" /><g + id="g27" /><g + id="g29" /><g + id="g31" /><g + id="g33" /></svg> ADDED freshlib/gui/images/treeview/down_flat.png Index: freshlib/gui/images/treeview/down_flat.png ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/down_flat.png cannot compute difference between binary files ADDED freshlib/gui/images/treeview/minus_flat.png Index: freshlib/gui/images/treeview/minus_flat.png ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/minus_flat.png cannot compute difference between binary files ADDED freshlib/gui/images/treeview/minus_win.png Index: freshlib/gui/images/treeview/minus_win.png ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/minus_win.png cannot compute difference between binary files ADDED freshlib/gui/images/treeview/plus_flat.png Index: freshlib/gui/images/treeview/plus_flat.png ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/plus_flat.png cannot compute difference between binary files ADDED freshlib/gui/images/treeview/plus_win.png Index: freshlib/gui/images/treeview/plus_win.png ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/plus_win.png cannot compute difference between binary files ADDED freshlib/gui/images/treeview/render Index: freshlib/gui/images/treeview/render ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/render @@ -0,0 +1,19 @@ +#!/bin/bash + +# Not skinned images. + +cd svg/ + +for i in *.svg; do + svgcleaner --indent 2 --convert-shapes no "$i" "$i" + rsvg-convert -o "../${i%.*}.png" "$i" +done + +cd .. + +for i in *.png; do + pngquant -v --ordered -s 1 --strip -f --ext .png 64 -- "$i" + printf "\n" +done + +identify -format "%k colors in %f\n" ./*.png ADDED freshlib/gui/images/treeview/right_flat.png Index: freshlib/gui/images/treeview/right_flat.png ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/right_flat.png cannot compute difference between binary files ADDED freshlib/gui/images/treeview/svg/down_flat.svg Index: freshlib/gui/images/treeview/svg/down_flat.svg ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/svg/down_flat.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg"> + <path d="m10.407477 2h-9.81495431l4.90747731 8.5z" fill="#95a5a6" stroke="#fff" stroke-width="2"/> +</svg> ADDED freshlib/gui/images/treeview/svg/minus_flat.svg Index: freshlib/gui/images/treeview/svg/minus_flat.svg ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/svg/minus_flat.svg @@ -0,0 +1,5 @@ +<svg height="13" viewBox="0 0 13 13" width="13" xmlns="http://www.w3.org/2000/svg"> + <rect fill="#fff" height="13" width="13"/> + <rect fill="#95a5a6" height="1" width="5" x="4" y="6"/> + <circle cx="6.5" cy="6.5" fill="none" r="5" stroke="#95a5a6"/> +</svg> ADDED freshlib/gui/images/treeview/svg/plus_flat.svg Index: freshlib/gui/images/treeview/svg/plus_flat.svg ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/svg/plus_flat.svg @@ -0,0 +1,8 @@ +<svg height="13" viewBox="0 0 13 13" width="13" xmlns="http://www.w3.org/2000/svg"> + <rect fill="#fff" height="13" width="13"/> + <circle cx="6.5" cy="6.5" fill="none" r="5" stroke="#95a5a6"/> + <g fill="#95a5a6"> + <rect height="5" width="1" x="6" y="4"/> + <rect height="1" width="5" x="4" y="6"/> + </g> +</svg> ADDED freshlib/gui/images/treeview/svg/right_flat.svg Index: freshlib/gui/images/treeview/svg/right_flat.svg ================================================================== --- /dev/null +++ freshlib/gui/images/treeview/svg/right_flat.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg"> + <path d="m2 10.407477 8.5-4.907477-8.5-4.90747731z" fill="#95a5a6" stroke="#fff" stroke-linecap="square" stroke-width="2"/> +</svg> ADDED freshlib/gui/images/warning.png Index: freshlib/gui/images/warning.png ================================================================== --- /dev/null +++ freshlib/gui/images/warning.png cannot compute difference between binary files ADDED freshlib/gui/mouse.asm Index: freshlib/gui/mouse.asm ================================================================== --- /dev/null +++ freshlib/gui/mouse.asm @@ -0,0 +1,78 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Provides unified access to standard mouse cursors. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains OS independent part and includes OS dependent files. +;_________________________________________________________________________________________ +module "Mouse library" + +mcArrow = 0 +mcText = 1 +mcCross = 2 +mcSizeH = 3 +mcSizeV = 4 +mcSizeUL_LR = 5 +mcSizeLL_UR = 6 +mcWait = 7 +mcArrowWait = 8 +mcHand = 9 +mcDragHand = 10 +mcPencil = 11 + + +mcCount = 12 + + +; Captures the mouse to the given window. + +interface __MouseCapture, .hwnd + +; Sets a mouse cursor for the given window. + +interface SetMouseCursor, .hWindow, .hCursor + +; Returns a stock cursor defined by mcXXXXX constants. + +interface GetStockCursor, .index + + +; This procedure does not actually moves the mouse pointer, but generates all events the same way it was moved. +; Useful for making automatic repeat of different things controlled by the mouse move. For example dragging +; objects with window area auto-scrolling when the pointer lieves the window area. + +interface ZeroMouseMove + + +proc SetMouseCapture, .window +begin + pushad + + xor edi, edi + + mov esi, [.window] + cmp [.window], edi + je .setit + + get edi, esi, TWindow:OSWindow + mov edi, [edi+TWindow.handle] + +.setit: + mov [__MouseTarget], esi + stdcall __MouseCapture, edi + + popad + return +endp + + + +include '%TargetOS%/mouse.asm' + +endmodule ADDED freshlib/gui/syntax/SyntaxFASM.asm Index: freshlib/gui/syntax/SyntaxFASM.asm ================================================================== --- /dev/null +++ freshlib/gui/syntax/SyntaxFASM.asm @@ -0,0 +1,236 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains procedures and data, that form the appearance of the +; TAsmEdit components. +; +; Target OS: Any +; +; Dependencies: +;_________________________________________________________________________________________ + +module "FASM syntax highlighter for TAsmEdit" + +; syntax contexts. + +ciText = 0 +ciComment = 1 +ciString = 2 +ciNumber = 3 +ciSymbol = 4 + +ciExtended = $80 + + +;_________________________________________________________________________________________ +; +; Arguments: +; .pLineInfo - pointer to TTextLine structure. +; .SynContext - input context of the highligher. +; +; Returns: +; eax - output context of the highligher. +; +proc SyntaxFASM, .pTextLine, .SynContext +.quote_char dd ? +.word_start dd ? +begin + pushad + + mov esi, [.pTextLine] + + mov edi, [esi+TTextLine.syn_array] + test edi, edi + jnz .array_ok + + stdcall CreateArray, sizeof.TTextChunk + mov edi, eax + mov [esi+TTextLine.syn_array], eax + +.array_ok: + + xor ebx, ebx ; the offset inside the line. + xor edx, edx ; the length of the previous character. + xor ecx, ecx ; the current chunk start position. + + mov [.quote_char], ebx + mov [edi+TArray.count], ebx + +.loop: + add ebx, edx + + mov eax, [esi+TTextLine.GapBegin] + cmp ebx, eax + cmovae eax, [esi+TTextLine.GapEnd] + sub eax, [esi+TTextLine.GapBegin] + add eax, ebx + + cmp eax, [esi+TTextLine.Length] + jae .end_of_line + + movzx eax, byte [esi+eax] + mov edx, eax + +; compute the length of the UTF-8 character by its first byte. + not dl ; utf-8 starts with one of: 0xxxxxxx, 110xxxxx, 1110xxxx, 11110xxx, 111110xx, 1111110x + bsr edx, edx ; edx = 7, 5, 4, 3, 2, 1 + sub edx, 7 ; edx = 0, -2, -3, -4, -5, -6 + ; CF = 0, 1, 1, 1, 1, 1 + not edx ; eax = -1, +1, +2, +3, +4, +5 + sbb edx, -2 ; eax = eax + 2 - CF = +1, +2, +3, +4, +5, +6 + + cmp [.SynContext], ciString + jne .ifnotstr + + cmp eax, [.quote_char] + jne .loop + +; end of a quoted string. + add ebx, edx + xor edx, edx + + call .end_chunk + mov [.SynContext], ciText + jmp .loop + +.ifnotstr: + cmp eax, $7f + ja .text + + cmp eax, ';' + jne .not_comment + +; It is a comment. No need to scan anymore. Mark as comment to the end of the line. + call .end_chunk + mov [.SynContext], ciComment + mov ebx, [esi+TTextLine.Length] + add ebx, [esi+TTextLine.GapBegin] + sub ebx, [esi+TTextLine.GapEnd] + jmp .end_of_line + +.not_comment: + cmp eax, '"' + je .string + cmp eax, "'" + jne .not_string + +.string: + call .end_chunk + mov [.SynContext], ciString + mov [.quote_char], eax + jmp .loop + +.not_string: + call .CharInSymbols + jne .notsym + + cmp [.SynContext], ciSymbol + je .loop + + call .end_chunk + mov [.SynContext], ciSymbol + jmp .loop + +.notsym: + cmp [.SynContext], ciNumber + je .loop + + cmp [.SynContext], ciSymbol + jne .text + +; The number begins only after ciSymbol or at the begining of the line. +.maybenum: + cmp al, '$' + je .num_start + + cmp al, '-' + je .num_start + + cmp al, '+' + je .num_start + + cmp al, '0' + jb .text + cmp al, '9' + ja .text + +.num_start: + call .end_chunk + mov [.SynContext], ciNumber + jmp .loop + +.text: + cmp [.SynContext], ciText + je .loop + + call .end_chunk + mov [.SynContext], ciText + jmp .loop + + +.end_of_line: + call .end_chunk + +; mov eax, [.SynContext] + xor eax, eax ; the assembly lines always end with context of 0 ??? + + mov [esi+TTextLine.syn_array], edi + mov [esi+TTextLine.syn_context], eax + mov [esp+4*regEAX], eax + popad + return + + +.end_chunk: + push eax edx + + sub ecx, ebx + jz .chunk_processed + + neg ecx + + stdcall AddArrayItems, edi, 1 + mov edi, edx + + mov edx, [.SynContext] + mov [eax+TTextChunk.color], dl + mov [eax+TTextChunk.bytes], cx + + shr ecx, 16 + jz .chunk_processed + + or [eax+TTextChunk.color], ciExtended + + stdcall AddArrayItems, edi, 1 + mov edi, edx + mov [eax+TTextChunk.bytes], cx ; in the second chunk the .bytes field is important. + +.chunk_processed: + mov ecx, ebx ; start new chunk. + pop edx eax + retn + +; Returns ZF=1 (je) if the char is in the symbols list. +; ZF=0 (jne) otherwise. +.CharInSymbols: + push edi ecx + + mov edi, .symbol_characters + mov ecx, .symbol_characters_len + + repne scasb + pop ecx edi + ret + +.symbol_characters db 20h,'/*=<>()[]{}:,|&~#`;\',09h,0Ah,0Dh,1Ah +.symbol_characters_len = $ - .symbol_characters + +endp + + + + + +endmodule ADDED freshlib/gui/sysevents.asm Index: freshlib/gui/sysevents.asm ================================================================== --- /dev/null +++ freshlib/gui/sysevents.asm @@ -0,0 +1,263 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Defines constants and structures for system events of FreshLib +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ +module "System events library" + + +mbLeft = 1 +mbMiddle = 2 +mbRight = 3 + +mbScrollUp = 4 +mbScrollDn = 5 +mbScrollLeft = 6 +mbScrollRight = 7 + + +maskBtnLeft = $0100 +maskBtnMiddle = $0200 +maskBtnRight = $0400 + +maskShift = $1 +maskCapsLock = $2 +maskCtrl = $4 +maskAlt = $8 +maskNumLock = $10 +maskScrLk = $20 +maskLevel3 = $80 ; Mod5 + +; These are scan codes for the non character keys. They are OS dependent and should be used by +; their names. +include '%TargetOS%/keycodes.inc' + + +scTrack = 1 +scUp = 2 +scDown = 3 +scWheelUp = 4 +scWheelDn = 5 + +scrollX = 0 +scrollY = 1 + +cerFromUser = 0 ; user pressed X button on the window header, pressed alt+F4 from the keyboard, or choose "Close" from the title menu. +cerFromProgram = 1 ; Method Close was executed from the program. + + + +; creates and returns a string with the textual identifier of the pressed/released key. + +proc CreateKeyName, .keycode, .kbdStatus +begin + push ebx + + stdcall StrNew + mov ebx, eax + + test [.kbdStatus], maskCtrl + jz @f + stdcall StrCat, ebx, txt 'Ctrl+' +@@: + test [.kbdStatus], maskAlt + jz @f + stdcall StrCat, ebx, txt 'Alt+' +@@: + test [.kbdStatus], maskShift + jz @f + stdcall StrCat, ebx, txt 'Shift+' +@@: + stdcall KbdCodeToName, [.keycode] + jc .finish + + stdcall StrCat, ebx, eax + stdcall StrDel, eax + mov eax, ebx + clc + +.finish: + pop ebx + return +endp + + +macro keynames lbl, [scancode, name] { +common + label lbl word +forward + local ..pname + dw scancode + dw ..pname - $ + 2 +common + dw 0 +forward + ..pname db name, 0 +} + + +iglobal + if used __FunctionalKeyNames + keynames __FunctionalKeyNames, \ + keyEscape, 'Esc', \ + keyEnter, 'Enter', \ + keyHomeNumpad, 'HomeNum', \ + keyUpNumpad, 'UpNum', \ + keyPgUpNumpad, 'PgUpNum', \ + keyLeftNumpad, 'Left', \ + key5Numpad, 'Num5', \ + keyRightNumpad, 'RightNum', \ + keyEndNumpad, 'EndNum', \ + keyDownNumpad, 'DownNum', \ + keyPgDnNumpad, 'PgDnNum', \ + keyInsNumpad, 'InsNum', \ + keyDelNumpad, 'DelNum', \ + keyEnterNumpad, 'EnterNum', \ + keyNumLock, 'NumLock', \ + keyScrollLock, 'ScrLock', \ + keyPause, 'Pause', \ + keyLeft, 'Left', \ + keyRight, 'Right', \ + keyUp, 'Up', \ + keyDown, 'Down', \ + keyInsert, 'Ins', \ + keyDelete, 'Del', \ + keyHome, 'Home', \ + keyEnd, 'End', \ + keyPgUp, 'PgUp', \ + keyPgDown, 'PgDn', \ + keyF1, 'F1', \ + keyF2, 'F2', \ + keyF3, 'F3', \ + keyF4, 'F4', \ + keyF5, 'F5', \ + keyF6, 'F6', \ + keyF7, 'F7', \ + keyF8, 'F8', \ + keyF9, 'F9', \ + keyF10, 'F10', \ + keyF11, 'F11', \ + keyF12, 'F12', \ + keyCapsLock, 'CapsLock', \ + keyShiftLeft, 'ShiftL', \ + keyCtrlLeft, 'LeftCtrl', \ + keyAltLeft, 'LeftAlt', \ + keyAltRight, 'RightAlt', \ + keyPopupMenu, 'PopupMenu', \ + keyShiftRight, 'RightShift', \ + keyCtrlRight, 'RightCtrl', \ + keyBackSpace, 'BkSp', \ + keyTab, 'Tab', \ + keySpace, 'Space', \ + '1', '1', \ + '2', '2', \ + '3', '3', \ + '4', '4', \ + '5', '5', \ + '6', '6', \ + '7', '7', \ + '8', '8', \ + '9', '9', \ + '0', '0', \ + keyA, 'A', \ + keyB, 'B', \ + keyC, 'C', \ + keyD, 'D', \ + keyE, 'E', \ + keyF, 'F', \ + keyG, 'G', \ + keyH, 'H', \ + keyI, 'I', \ + keyJ, 'J', \ + keyK, 'K', \ + keyL, 'L', \ + keyM, 'M', \ + keyN, 'N', \ + keyO, 'O', \ + keyP, 'P', \ + keyQ, 'Q', \ + keyR, 'R', \ + keyS, 'S', \ + keyT, 'T', \ + keyU, 'U', \ + keyV, 'V', \ + keyW, 'W', \ + keyX, 'X', \ + keyY, 'Y', \ + keyZ, 'Z' + end if +endg + +endmodule + + + + + +proc KbdCodeToName, .keycode +begin + pushad + mov esi, __FunctionalKeyNames + +.loop: + movzx ecx, word [esi] + jecxz .notfound + + cmp ecx, [.keycode] + je .found + add esi, 4 + jmp .loop + +.found: + movsx eax, word [esi+2] + add esi, eax + stdcall StrDupMem, esi + mov [esp+4*regEAX], eax + clc + popad + return + +.notfound: + stc + popad + return +endp + + + + +proc KbdNameToCode, .hKeyname +begin + pushad + mov esi, __FunctionalKeyNames + +.loop: + movzx ecx, word [esi] + jecxz .notfound + + movsx eax, word [esi+2] + lea eax, [esi+eax] + + add esi, 4 + stdcall StrCompNoCase, eax, [.hKeyname] + jnc .loop + +.found: + mov [esp+4*regEAX], ecx + clc + popad + return + +.notfound: + stc + popad + return +endp ADDED freshlib/gui/textcaret.asm Index: freshlib/gui/textcaret.asm ================================================================== --- /dev/null +++ freshlib/gui/textcaret.asm @@ -0,0 +1,301 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Text caret control library. +; +; Target OS: Any +; +; Dependencies: timers.asm; graphics libraries. +; +; Notes: Text caret have always only one instance. +;_________________________________________________________________________________________ +module "Text caret library" + +CARET_MUTEX_WAIT = 2000 ; ms + +; the caret is shared resource and can exists only in one instance +struct TCaret + .pWindow dd ? + + .pTopWindow dd ? + .xOffs dd ? ; the offset between the caret owner window and its top level parent window + .yOffs dd ? ; + + .state dd ? ; 1 if the caret is displayed 0 if not. + .visible dd ? + .next_time dd ? + + .Pos TBounds + .mxLock TMutex +ends + + + +uglobal + if used CaretAttach + Caret TCaret + end if +endg + + +if used CaretAttach +initialize InitTextCaret +begin + stdcall MutexCreate, 0, Caret.mxLock + stdcall MutexRelease, Caret.mxLock + return +endp + +finalize FinalizeTextCaret +begin + stdcall MutexDestroy, Caret.mxLock + return +endp + + +end if + + + + +proc __CaretUpdateTopLevel, .pWindow +begin + pushad + + stdcall WaitForMutex, Caret.mxLock, CARET_MUTEX_WAIT + jc .exit + + mov esi, [.pWindow] + cmp esi, [Caret.pWindow] + jne .finish + + xor ecx, ecx + xor edx, edx + + test esi, esi + jz .found + +.loop: + get ebx, esi, TWindow:Parent + test ebx, ebx + jz .found + + add ecx, [esi+TWindow._x] + add edx, [esi+TWindow._y] + mov esi, ebx + jmp .loop + +.found: + mov [Caret.xOffs], ecx + mov [Caret.yOffs], edx + mov [Caret.pTopWindow], esi + +.finish: + stdcall MutexRelease, Caret.mxLock + clc + +.exit: + popad + return +endp + + + + +; Attaches the caret to the window, if the window needs caret. +proc CaretAttach, .pWindow +begin + push ecx + + mov eax,[.pWindow] + cmp eax, [Caret.pWindow] + je .exit + + stdcall WaitForMutex, Caret.mxLock, CARET_MUTEX_WAIT + jc .exit + + stdcall __ClearCaret + + mov eax, [.pWindow] + xchg [Caret.pWindow], eax + push eax + + xor eax, eax + mov [Caret.Pos.x], eax + mov [Caret.Pos.y], eax + mov [Caret.Pos.height], eax + mov [Caret.Pos.width], eax + + stdcall __CaretUpdateTopLevel, [Caret.pWindow] + + stdcall MutexRelease, Caret.mxLock + pop eax ; the old window. + clc + +.exit: + pop ecx + return +endp + + + + +proc CaretChange, .window, .x, .y, .width, .height, .visible +begin + pushad + + mov eax, [Caret.pWindow] + cmp eax, [.window] + jne .exit + + stdcall WaitForMutex, Caret.mxLock, CARET_MUTEX_WAIT + jc .exit + + stdcall __ClearCaret + + mov ecx, [.x] + mov edx, [.y] + + mov [Caret.Pos.x], ecx + mov [Caret.Pos.y], edx + + xor eax, eax + mov ecx, [.width] + mov edx, [.height] + + inc eax + + test ecx, ecx + cmovz ecx, eax + + test edx, edx + cmovz edx, eax + + mov [Caret.Pos.width], ecx + mov [Caret.Pos.height], edx + + mov eax, [.visible] + mov [Caret.visible], eax + +; restart the visible state from the beginning in order to make the moved +; caret move visible. + + mov [Caret.state], 1 + stdcall GetTimestamp + add eax, [GUI.caretTimes+4] + mov [Caret.next_time], eax + + cmp [Caret.pWindow], 0 + je .release + + exec [Caret.pWindow], TWindow:RectChangedXY2, [Caret.Pos.x], [Caret.Pos.y], [Caret.Pos.width], [Caret.Pos.height] + +.release: + stdcall MutexRelease, Caret.mxLock + clc + +.exit: + popad + return +endp + + + + +proc __CaretTimerProc +begin + pushad + + stdcall WaitForMutex, Caret.mxLock, CARET_MUTEX_WAIT + jc .exit + + stdcall GetTimestamp + mov ebx, eax + + cmp ebx, [Caret.next_time] + jb .release + + cmp [Caret.pWindow], 0 + je .release + + xor [Caret.state], 1 + stdcall __ClearCaret + + mov eax, [Caret.state] + and eax, 1 + add ebx, [GUI.caretTimes+4*eax] + mov [Caret.next_time], ebx + +.release: + stdcall MutexRelease, Caret.mxLock + +.exit: + popad + return +endp + + +; Clears the caret at its present place. + +proc __ClearCaret +begin + stdcall WaitForMutex, Caret.mxLock, CARET_MUTEX_WAIT + jc .exit + + cmp [Caret.pWindow], 0 + je .finish + + exec [Caret.pWindow], TWindow:RectChangedXY2, [Caret.Pos.x], [Caret.Pos.y], [Caret.Pos.width], [Caret.Pos.height] + +.finish: + stdcall MutexRelease, Caret.mxLock +.exit: + return +endp + + +proc __PaintCaret, .topWindow, .screen +begin + stdcall WaitForMutex, Caret.mxLock, CARET_MUTEX_WAIT + jc .exit + + push ebx + + mov ebx, [.topWindow] + cmp ebx, [Caret.pTopWindow] + jne .release + + mov ebx, [.screen] + test ebx, ebx + jz .release + + cmp [Caret.state], 0 + je .release + + cmp [Caret.visible], 0 + je .release + + push ecx edx + mov ecx, [Caret.Pos.x] + mov edx, [Caret.Pos.y] + add ecx, [Caret.xOffs] + add edx, [Caret.yOffs] +; stdcall XorRect, ebx, ecx, edx, [Caret.Pos.width], [Caret.Pos.height], [GUI.clTextCaret] + + stdcall BlendSolidRect, ebx, ecx, edx, [Caret.Pos.width], [Caret.Pos.height], [GUI.clTextCaret] ; ????????? does not look good this way... + pop edx ecx + +.release: + stdcall MutexRelease, Caret.mxLock + pop ebx + +.exit: + return +endp + + +endmodule + + ADDED freshlib/gui/themes.asm Index: freshlib/gui/themes.asm ================================================================== --- /dev/null +++ freshlib/gui/themes.asm @@ -0,0 +1,207 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains procedures and data, that form the appearance of the +; FreshLib GUI application. Colors, control borders, backgrownd drawing etc. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: The user should be able to change these settings and if he uses external +; procedures, then the code from this library should not be compiled. +;_________________________________________________________________________________________ + +module "Runtime GUI themes support" + +match =ThemeGUI, ThemeGUI { + ThemeGUI equ flat_gui +} + +; Box border type +bxNone = 0 +bxRaised = 1 +bxSunken = 2 +bxFlat = 3 +bxFocused = 4 +bxNoFill = $80000000 +bxDisabled = $40000000 + + +iglobal +; drawing functions. + + var DrawBox = DrawBoxDefault + var DrawSlider = DrawSliderDefault + + var DrawSplitter = DrawSplitterDefault +endg + + + +proc DrawBoxDefault, .pImage, .pBounds, .bkground, .border, .brd_width +.bounds TBounds +begin + pushad + + lea esi, [.bounds] + stdcall RectCopy, esi, [.pBounds] + + mov edx, [.border] + and edx, $ff + jz .borderok + + mov eax, [GUI.clBorderLight] + mov ecx, [GUI.clBorderDark] + + test [.border], bxDisabled + jz .enabled_ok + + mov eax, [GUI.clBorderLightGray] + mov ecx, [GUI.clBorderDarkGray] + +.enabled_ok: + cmp edx, bxRaised + je .colorok + + xchg eax, ecx + + cmp edx, bxSunken + je .colorok + + mov eax, [GUI.clBorderNeutralGray] + + test [.border], bxDisabled + jnz .flat_ok + + mov eax, [GUI.clBorderNeutral] + +.flat_ok: + mov ecx, eax + cmp edx, bxFlat + je .colorok + + mov eax, [GUI.clBorderFocused] + mov ecx, eax + +.colorok: + mov ebx, [.brd_width] + +; left border line + stdcall DrawSolidRect, [.pImage], [esi+TBounds.x],[esi+TBounds.y], ebx, [esi+TBounds.height], eax + +; top + add [esi+TBounds.x], ebx + sub [esi+TBounds.width], ebx + + stdcall DrawSolidRect, [.pImage], [esi+TBounds.x], [esi+TBounds.y], [esi+TBounds.width], ebx, eax + +; right + sub [esi+TBounds.width], ebx + add [esi+TBounds.y], ebx + sub [esi+TBounds.height], ebx + + mov edx, [esi+TBounds.width] + add edx, [esi+TBounds.x] + stdcall DrawSolidRect, [.pImage], edx, [esi+TBounds.y], ebx, [esi+TBounds.height], ecx + +; bottom + sub [esi+TBounds.height], ebx + + mov edx, [esi+TBounds.y] + add edx, [esi+TBounds.height] + stdcall DrawSolidRect, [.pImage], [esi+TBounds.x], edx, [esi+TBounds.width], ebx, ecx + +.borderok: + bt [.border], 31 + jc .fillok + + stdcall DrawSolidRect, [.pImage], [esi+TBounds.x], [esi+TBounds.y], [esi+TBounds.width], [esi+TBounds.height], [.bkground] + +.fillok: + + popad + return +endp + + + +sliderHorizontal = 0 +sliderVertical = 1 + +proc DrawSliderDefault, .pImage, .pBounds, .bkground, .type +begin + stdcall DrawBoxDefault, [.pImage], [.pBounds], [.bkground], [scrollBorder], 2 + return +endp + + + + + +proc DrawSplitterDefault, .pImage, .pRect, .type, .pClipRect +.rect RECT +begin + pushad + + lea eax, [.rect] + stdcall RectIntersect, eax, [.pRect], [.pClipRect] + jc .finish + + mov eax, [.rect.right] + mov edx, [.rect.bottom] + sub eax, [.rect.left] + sub edx, [.rect.top] + + stdcall DrawSolidRect, [.pImage], [.rect.left], [.rect.top], eax, edx, [GUI.clSplitter] + +.finish: +; mov esi, [.pRect] +; mov eax, [esi+RECT.right] +; mov ecx, [esi+RECT.bottom] +; sub eax, [esi+RECT.left] +; sub ecx, [esi+RECT.top] +; +; stdcall DrawSolidRect, [.pImage], [esi+RECT.left], [esi+RECT.top], eax, ecx, [GUI.clSplitter] + popad + return +endp + + +proc DrawSplitterDefault2, .pImage, .pRect, .type, .pClipRect +.bounds TBounds +begin + pushad + + mov esi, [.pRect] + mov eax, [esi+RECT.left] + mov ecx, [esi+RECT.top] + mov edx, [esi+RECT.right] + mov ebx, [esi+RECT.bottom] + sub edx, eax + sub ebx, ecx + mov [.bounds.x], eax + mov [.bounds.y], ecx + mov [.bounds.width], edx + mov [.bounds.height], ebx + lea eax, [.bounds] + + stdcall DrawBoxDefault, [.pImage], eax, [GUI.clDialogBk], bxSunken, [GUI.boxBorderWidth] + + popad + return +endp + + + + + + +endmodule + + + + + ADDED freshlib/gui/themes/asmedit.asm Index: freshlib/gui/themes/asmedit.asm ================================================================== --- /dev/null +++ freshlib/gui/themes/asmedit.asm @@ -0,0 +1,63 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains procedures and data, that form the appearance of the +; TAsmEdit components. +; +; Target OS: Any +; +; Dependencies: +;_________________________________________________________________________________________ + +;ciText = 0 +;ciComment = 1 +;ciString = 2 +;ciNumber = 3 +;ciSymbol = 4 +;ciRegister = 5 +;ciInstruction = 6 +;ciDerective = 7 +;ciPreprocessor = 8 +;ciMacro = 9 + +iglobal + NamedArray ASM, \ +\ +\ ; Widgets border colors and width + clBackground, HEX, <$ffffffff, $fff8f8f8, $ffff0000, $ff00a0ff>, \ + clText, HEX, <$ff000000, $ff8E908C, $ff718C00, $ffDE935F, $ff4080a0, $fff5871f, $ffc82829, $ff4271ae, $ff895Fa8, $ff000000, $ff000000, $ff000000, $ff000000, $ff000000, $ff000000, $ff000000, $ff000000>, \ + clProtectedText, HEX, $ffa0a000, \ + clSelection, HEX, $602980b9, \ +\ + clLeftMargin, HEX, $ff404040, \ + clLeftMarginEdge, HEX, $ffffffff, \ + clLeftMarginText, HEX, $ffffffff, \ + clLeftMarginTree, HEX, $ffff0000, \ + xspcLMPadding, NUM, 4, \ +\ + clBookmarkBack, HEX, $ffffd000, \ +\ + clWrapColumn, HEX, $800000ff, \ +\ + MouseWheel, NUM, 3, \ +\ + iconBreakpoints, PNG, <'%lib%/gui/themes/images/asmedit/breakpoint_inactive_light.png', '%lib%/gui/themes/images/asmedit/breakpoint_light.png'>, \ + iconDebugInfo, PNG, '%lib%/gui/themes/images/asmedit/debug_icon.png', \ + iconFoldings, PNG, <'%lib%/gui/themes/images/asmedit/unfold.png', '%lib%/gui/themes/images/asmedit/fold.png'>, \ + iconBookmark, PNG, '%lib%/gui/themes/images/asmedit/bookmark_light.png', \ +\ + xSpcIcons, NUM, 3, \ +\ + Options, HEX, aeoDefault, \ +\ +\ ; Default mono font +\ + Font, FONT, "Liberation Mono": 13 : fwBold : ffMonospaced, \ ; + NumFont, FONT, "Liberation Mono": 12 : fwLight : 0 + + DispSize "ASM theme data", $ - ASM + +endg + ADDED freshlib/gui/themes/flat_gui.asm Index: freshlib/gui/themes/flat_gui.asm ================================================================== --- /dev/null +++ freshlib/gui/themes/flat_gui.asm @@ -0,0 +1,236 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains procedures and data, that form the appearance of the +; FreshLib GUI application. Colors, control borders, backgrownd drawing etc. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: The user should be able to change these settings and if he uses external +; procedures, then the code from this library should not be compiled. +;_________________________________________________________________________________________ +module "GUI theme data and code library" + +; Named theme colors + +; cyan +clTurquoise = $ff1abc9c +clTurquoiseL = $ff31e2bf +clTurquoiseD = $ff138670 + +clGreenSea = $ff16A085 + +; green +clEmerald = $ff2ecc71 +clNephritis = $ff27ae60 + +; blue + +clPetermann = $ff3498db +clBelizeHole = $ff2980b9 + +; purple + +clAmethyst = $ff9b59b6 +clWisteria = $ff8e44ad + +; black +clBlack = $ff000000 +clWetAsphalt = $ff34495e +clMidnight = $ff2c3e50 + +; gray + +clConcrete = $ff95a5a6 +clAsbestos = $ff7f8c8d + +; light gray / white + +clClouds = $ffecf0f1 +clSilver = $ffbdc3c7 +clWhite = $ffffffff + +; Yellow / orange + +clSunflower = $fff1c40f +clOrange = $fff39c12 + +; Brown / orange + +clCarrot = $ffe67e22 +clPumpkin = $ffd35400 + +; Red + +clAlizarin = $ffe74c3c +clPomegranate = $ffc0392b + +clBelizeClouds = $ffc9dce7 ; a blend between clBelizeHole and clClouds + +iglobal + + NamedArray GUI, \ +\ +\ ; Text caret color + clTextCaret, HEX, clAlizarin, \ ;(clAlizarin and $00ffffff) or $e0000000, \ + caretTimes, NUM, <250, 250>, \ +\ ; Widgets border colors and width + clBorderNeutral, HEX, clTurquoise, \ + clBorderLight, HEX, clTurquoiseL, \ + clBorderDark, HEX, clTurquoiseD, \ + clBorderNeutralGray, HEX, $ff606060, \ + clBorderLightGray, HEX, $ff808080, \ + clBorderDarkGray, HEX, $ff404040, \ + clBorderFocused, HEX, clAlizarin, \ +\ + boxBorderWidth, NUM, 2, \ +\ +\ ; TButton colors and styles. The multivalue fields are for Neutral, Hovered and Pressed states. +\ + clBtnBk, HEX, <clTurquoise, $ff48c9b0, clGreenSea, $ff7b7b7b>, \ + clBtnTxt, HEX, <clWhite, clWhite, clSilver, $d0ffffff>, \ + btnBorder, NUM, <bxNone, bxNone, bxNone, bxNone or bxDisabled>, \ + btnPressedOfsX, NUM, 0, \ + btnPressedOfsY, NUM, 2, \ + btnMarginX, NUM, 4, \ + btnMarginY, NUM, 4, \ +\ +\ ; Toolbar buttons colors and styles + clToolBtnBk, HEX, <clClouds, clBelizeClouds, clBelizeClouds, clClouds>, \ + clToolBtnTxt, HEX, <$ff000000, $ff000000, $ff000000, $80000000>, \ + tbBorder, NUM, <bxNone, bxNone, bxNone, bxNone or bxDisabled>, \ + tbBorderWidth, NUM, 1, \ + tbPressedOfsX, NUM, 0, \ + tbPressedOfsY, NUM, 2, \ + tbSeparatorType, HEX, bxFlat or bxDisabled, \ + tbSeparatorWidth, NUM, 10, \ +\ +\ ; TEdit colors and styles. +\ + clEditBk, HEX, clWhite, \ + clEditBkFocused, HEX, clWhite, \ + clEditTxt, HEX, $ff000000, \ + clEditSel, HEX, clBelizeHole and $00ffffff or $60000000, \ + clEditSelTxt, HEX, $ffffffff, \ + editBorder, NUM, bxFlat, \ + editBorderFocused, NUM, bxFlat, \ +\ +\ ; Dialog boxes and TForm color and styles +\ + clDialogBk, HEX, clClouds, \ + clDialogTxt, HEX, $ff000000, \ + clSplitter, HEX, $ff3A7BBB, \ ;clWetAsphalt, \ +\ +\ ; TProgress colors and styles +\ + clProgressBk, HEX, clClouds, \ + clProgressBar, HEX, clAmethyst, \ + progressBorder, NUM, bxFlat, \ +\ +\ ; TScrollbar colors and styles +\ + clScrollBk, HEX, <clSilver and $3fffffff, clSilver and $a0ffffff>, \ + clScrollSlider, HEX, <clAsbestos and $7fffffff, clTurquoise>, \ + clScrollSliderOvf, HEX, <clOrange and $3fffffff, clOrange>, \ + borderScroll, NUM, bxNone, \ + scrollWidth, NUM, 12, \ + minSliderHeight, NUM, 24, \ +\ +\ ; TLabel colors and styles +\ + clLabelBk, HEX, clClouds, \ + clLabelTxt, HEX, $ff000000, \ +\ +\ ; TTreeView colors and styles. +\ + clTreeViewBack, HEX, $ffffffff, \ + clTreeViewText, HEX, clBlack, \ + clTreeSelected, HEX, clBelizeClouds, \ + clTreeSelectedTxt, HEX, clBlack, \ + clTreeFocused, HEX, clBelizeHole, \ + clTreeFocusedTxt, HEX, clWhite, \ + clTreeFocused2, HEX, clWetAsphalt, \ + clTreeFocused2Txt, HEX, clWhite, \ + clTreeViewLines, HEX, clSilver, \ +\ + tvBorder, NUM, bxFlat, \ +\ + tvIcons, PNG, <"%lib%/gui/images/treeview/plus_flat.png", "%lib%/gui/images/treeview/minus_flat.png">, \ +\ +\ ; TMenu colors and styles +\ + clMenuBack, HEX, clClouds, \ + clMenuText, HEX, $ff000000, \ + clMenuTextGray, HEX, $90000000, \ + clMenuSelection, HEX, clBelizeHole, \ + clMenuSelIcon, HEX, clBelizeClouds, \ + borderMenu, NUM, bxFlat, \ + menuIconMargin, NUM, 4, \ + menuSeparatorHeight,NUM, 12, \ + menuMinTextDist, NUM, 32, \ + menuSubIcon, PNG, "%lib%/gui/images/menu/submenu.png", \ + menuSubIconSel, PNG, "%lib%/gui/images/menu/submenusel.png", \ + menuSubIconGray, PNG, "%lib%/gui/images/menu/submenugray.png", \ +\ +\ ; Menu graphics +\ + iconMenuChecked, PNG, "%lib%/gui/images/menu/check_flat.png", \ + iconMenuCheckedGray, PNG, "%lib%/gui/images/menu/check_flat_gray.png", \ +\ +\ ; Checkbox colors +\ + clCheckboxBack, HEX, <$ffffffff, $ffffffff, $ffc0c0c0, $80c0c0c0>, \ + clCheckboxTxt, HEX, $ff000000, \ + clCheckboxTxtGray, HEX, $ff606060, \ + cbIconSize, NUM, 13, \ + cbMargin, NUM, 2, \ + borderCheckbox, NUM, bxFlat, \ + iconChecked, PNG, "%lib%/gui/images/checkbox/check_flat.png", \ + iconCheckedGray, PNG, "%lib%/gui/images/checkbox/check_flat_gray.png", \ +\ +\ ; TabBar control +\ + maxTabWidth, NUM, 180, \ + tabMarginX, NUM, 4, \ + tabMarginY, NUM, 4, \ + clTabBk, HEX, <clClouds, clBelizeClouds, clBelizeClouds>, \ + clTabTxt, HEX, $ff000000, \ +\ +\ ; Grid control + clGridCellBk, HEX, <$ffffffff, clClouds, clBelizeClouds, clBelizeHole, clWetAsphalt>, \ ; <regular, fixed, selected, focused, focused2> background color. + clGridCellTxt, HEX, <$ff000000, $ff000000, $ff000000, $ffffffff, $ffffffff>, \ ; <regular, fixed, selected, focused, focused2> foreground color. + clGridLines, HEX, <$00000000, $ffc0c0c0, $00000000, clTurquoise>, \ ;top-left data, bottom-right data, top-left fixed, bottom-right fixed. +\ +\ ; ListView control + lvIconMargin, NUM, 2, \ +\ +\ ; Dialogs images +\ + iconDialogs, PNG, <"%lib%/gui/themes/images/msgbox/error.png", "%lib%/gui/themes/images/msgbox/information.png", "%lib%/gui/themes/images/msgbox/question.png", "%lib%/gui/themes/images/msgbox/warning.png">, \ + iconDirectory, PNG, <"%lib%/gui/themes/images/files/dir_light.png", "%lib%/gui/themes/images/files/dir_link_light.png">, \ + iconFile, PNG, <"%lib%/gui/themes/images/files/file_light.png", "%lib%/gui/themes/images/files/file_link_light.png">, \ + bgChessboard, PNG, "%lib%/gui/themes/images/chessboard.png", \ +\ +\ ; Default font +\ + DefaultFont, FONT, "Inter": 12 : fwMedium : 0, \ + HintFont, FONT, "Liberation Sans": 12 : fwNormal : 0, \ + DefaultMono, FONT, "Liberation Mono": 11 : fwNormal : ffMonospaced, \ +\ +\ ; Mouse settings +\ + DoubleClickTime, NUM, 600, \ + DoubleClickDistance, NUM, 8 + +endg + + + + + + +endmodule ADDED freshlib/gui/themes/images/asmedit/bookmark_dark.png Index: freshlib/gui/themes/images/asmedit/bookmark_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/bookmark_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/bookmark_light.png Index: freshlib/gui/themes/images/asmedit/bookmark_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/bookmark_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/breakpoint_dark.png Index: freshlib/gui/themes/images/asmedit/breakpoint_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/breakpoint_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/breakpoint_inactive_dark.png Index: freshlib/gui/themes/images/asmedit/breakpoint_inactive_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/breakpoint_inactive_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/breakpoint_inactive_light.png Index: freshlib/gui/themes/images/asmedit/breakpoint_inactive_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/breakpoint_inactive_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/breakpoint_light.png Index: freshlib/gui/themes/images/asmedit/breakpoint_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/breakpoint_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/debug_icon.png Index: freshlib/gui/themes/images/asmedit/debug_icon.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/debug_icon.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/fold.png Index: freshlib/gui/themes/images/asmedit/fold.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/fold.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/asmedit/render Index: freshlib/gui/themes/images/asmedit/render ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/render @@ -0,0 +1,30 @@ +#!/bin/bash + +# Not skinned images. + +cd src/ + +# The dark skin + +ln -s -f ./skin_dark.css ./skin.css + +rsvg-convert -o ../bookmark_dark.png bookmark.svg +rsvg-convert -o ../breakpoint_dark.png breakpoint.svg +rsvg-convert -o ../breakpoint_inactive_dark.png breakpoint_inactive.svg + +# The light skin + +ln -s -f ./skin_light.css ./skin.css + +rsvg-convert -o ../bookmark_light.png bookmark.svg +rsvg-convert -o ../breakpoint_light.png breakpoint.svg +rsvg-convert -o ../breakpoint_inactive_light.png breakpoint_inactive.svg + +rm ./skin.css +cd .. + +for i in *.png; do + optipng -o6 -strip all -- "$i" +# pngquant -v -s 1 --strip -f --ext .png -- "$i" + printf "\n" +done ADDED freshlib/gui/themes/images/asmedit/src/bookmark.svg Index: freshlib/gui/themes/images/asmedit/src/bookmark.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/src/bookmark.svg @@ -0,0 +1,4 @@ +<?xml-stylesheet href="./skin.css" type="text/css"?> +<svg version="1.1" viewBox="0 0 14 8" xmlns="http://www.w3.org/2000/svg"> + <path id="bookmark_toggle" class="primary" d="m0 8v-8h13.5l-4 4 4 4z"/> +</svg> ADDED freshlib/gui/themes/images/asmedit/src/breakpoint.svg Index: freshlib/gui/themes/images/asmedit/src/breakpoint.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/src/breakpoint.svg @@ -0,0 +1,4 @@ +<?xml-stylesheet href="./skin.css" type="text/css"?> +<svg version="1.1" viewBox="0 0 6 6" xmlns="http://www.w3.org/2000/svg"> + <rect class="important" width="6" height="6"/> +</svg> ADDED freshlib/gui/themes/images/asmedit/src/breakpoint_inactive.svg Index: freshlib/gui/themes/images/asmedit/src/breakpoint_inactive.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/src/breakpoint_inactive.svg @@ -0,0 +1,4 @@ +<?xml-stylesheet href="./skin.css" type="text/css"?> +<svg version="1.1" viewBox="0 0 6 6" xmlns="http://www.w3.org/2000/svg"> + <rect class="gray" width="6" height="6"/> +</svg> ADDED freshlib/gui/themes/images/asmedit/src/skin_dark.css Index: freshlib/gui/themes/images/asmedit/src/skin_dark.css ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/src/skin_dark.css @@ -0,0 +1,78 @@ +.fresh { + background-color:#303030; + stroke: none; +} + +/* The main outline/fill color of the skin.*/ + +.primary { + fill: #ffcc00; +} + +.back { + fill: #000000; +} + + +/* The color that need to stay "grayed" (less emphasize) */ + +.gray { + fill: #a0a0a0; +} + +/* The color that need to stay some kind of emphasized. */ + +.emphasize { + fill: #00ccff; +} + +/* Very important color */ + +.important { + fill: #ff0084; +} + + +/* Colors with meaning */ + +.error { + fill: #ff1800; +} + +.warning { + fill: #e3ff00; +} + +.info { + fill: #00ccff; +} + +.always_light { + fill: #ffffff; +} + +/* Categories icons */ + +.cat1 { + fill: #00ffff; +} + +.cat2 { + fill: #cc80ff; +} + +.cat3 { + fill: #00FF00; +} + +.cat4 { + fill: #FFC0C0; +} + +.cat5 { + fill: #FF9000; +} + +.cat6 { + fill: #ffffff; +} ADDED freshlib/gui/themes/images/asmedit/src/skin_light.css Index: freshlib/gui/themes/images/asmedit/src/skin_light.css ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/src/skin_light.css @@ -0,0 +1,79 @@ +.fresh { + background-color:#d4d0c8; + stroke: none; +} + + +/* The main outline/fill color of the light skin.*/ + +.primary { + fill: #3A7BBB; +} + +.back { + fill: #ffffff; +} + +/* The color that need to stay "grayed" (less emphasize) */ + +.gray { + fill: #606060; +} + +/* The color that need to stay some kind of emphasized. */ + +.emphasize { + fill: #5730FF; +} + +/* Very important color */ + +.important { + fill: #ff005d; +} + +/* Colors with meaning */ + +.error { + fill: #ff0000; +} + +.warning { + fill: #009000; +} + +.info { + fill: #0000ff; +} + +.always_light { + fill: #ffffff; +} + + + +/* Categories icons */ + +.cat1 { + fill: #388FA1; +} + +.cat2 { + fill: #8d2ea1; +} + +.cat3 { + fill: #39a139; +} + +.cat4 { + fill: #FF4C26; +} + +.cat5 { + fill: #FFA233; +} + +.cat6 { + fill: #212121; +} ADDED freshlib/gui/themes/images/asmedit/unfold.png Index: freshlib/gui/themes/images/asmedit/unfold.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/asmedit/unfold.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/chessboard.png Index: freshlib/gui/themes/images/chessboard.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/chessboard.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/dir_dark.png Index: freshlib/gui/themes/images/files/dir_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/dir_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/dir_light.png Index: freshlib/gui/themes/images/files/dir_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/dir_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/dir_link_dark.png Index: freshlib/gui/themes/images/files/dir_link_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/dir_link_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/dir_link_light.png Index: freshlib/gui/themes/images/files/dir_link_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/dir_link_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/file_dark.png Index: freshlib/gui/themes/images/files/file_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/file_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/file_light.png Index: freshlib/gui/themes/images/files/file_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/file_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/file_link_dark.png Index: freshlib/gui/themes/images/files/file_link_dark.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/file_link_dark.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/file_link_light.png Index: freshlib/gui/themes/images/files/file_link_light.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/file_link_light.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/files/render Index: freshlib/gui/themes/images/files/render ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/render @@ -0,0 +1,33 @@ +#!/bin/bash + +# Not skinned images. + +cd src/ + +# The dark skin + +ln -s -f ./skin_dark.css ./skin.css + +rsvg-convert -h 16 -o ../dir_dark.png dir.svg +rsvg-convert -h 16 -o ../file_dark.png file.svg +rsvg-convert -h 16 -o ../dir_link_dark.png dir_link.svg +rsvg-convert -h 16 -o ../file_link_dark.png file_link.svg + +# The light skin + +ln -s -f ./skin_light.css ./skin.css + +rsvg-convert -h 16 -o ../dir_light.png dir.svg +rsvg-convert -h 16 -o ../file_light.png file.svg +rsvg-convert -h 16 -o ../dir_link_light.png dir_link.svg +rsvg-convert -h 16 -o ../file_link_light.png file_link.svg + +rm ./skin.css +cd .. + +for i in *.png; do + pngquant -v --ordered -s 1 --strip -f --ext .png 64 -- "$i" + printf "\n" +done + +identify -format "%k colors in %f\n" ./*.png ADDED freshlib/gui/themes/images/files/src/dir.svg Index: freshlib/gui/themes/images/files/src/dir.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/dir.svg @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml-stylesheet href="./skin.css" type="text/css"?><svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + class="fresh" + style="fill:#c0c0c0;stroke:none" + version="1.1" + id="svg6" + sodipodi:docname="directory.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + inkscape:export-filename="/work/asmwork/FreshFs/trunk/source/images/svg/feather/ready/messages.svg.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <metadata + id="metadata12"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#00b764" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="1" + inkscape:pageshadow="2" + inkscape:window-width="2560" + inkscape:window-height="1418" + id="namedview8" + showgrid="true" + inkscape:current-layer="svg6" + inkscape:showpageshadow="false" + showborder="true" + showguides="true" + inkscape:lockguides="true" + inkscape:snap-others="false" + inkscape:object-nodes="false" + inkscape:snap-nodes="true" + inkscape:snap-global="true" + inkscape:snap-to-guides="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:snap-grids="true" + inkscape:snap-page="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-text-baseline="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="false" + inkscape:snap-center="true" + inkscape:guide-bbox="true" + inkscape:zoom="51.208333" + inkscape:cx="7.2965927" + inkscape:cy="8.199566" + inkscape:window-x="1366" + inkscape:window-y="0" + inkscape:window-maximized="1" + fit-margin-top="2" + fit-margin-left="1" + fit-margin-right="1" + fit-margin-bottom="2"> + <inkscape:grid + type="xygrid" + id="grid142" + spacingx="1" + spacingy="1" + dotted="false" + empspacing="16" + snapvisiblegridlinesonly="false" + color="#3f3fff" + opacity="0.25098039" + empcolor="#3f3fff" + empopacity="0.75294118" + originx="-128" + originy="0" /> + </sodipodi:namedview> + <path + id="path166" + d="M 1,2 H 8 V 4 H 1 Z m 0,3 h 14 v 9 H 1 Z" + inkscape:connector-curvature="0" + class="cat5" + sodipodi:nodetypes="cccccccccc" + style="stroke-width:1px" /> + <path + class="back" + d="M 1,4 H 8 V 5 H 1 Z" + id="path168" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> +</svg> ADDED freshlib/gui/themes/images/files/src/dir_link.svg Index: freshlib/gui/themes/images/files/src/dir_link.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/dir_link.svg @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml-stylesheet href="./skin.css" type="text/css"?><svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + class="fresh" + style="fill:#c0c0c0;stroke:none" + version="1.1" + id="svg6" + sodipodi:docname="dir_link.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + inkscape:export-filename="/work/asmwork/FreshFs/trunk/source/images/svg/feather/ready/messages.svg.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <metadata + id="metadata12"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#00b764" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="1" + inkscape:pageshadow="2" + inkscape:window-width="1366" + inkscape:window-height="746" + id="namedview8" + showgrid="true" + inkscape:current-layer="svg6" + inkscape:showpageshadow="false" + showborder="true" + showguides="true" + inkscape:lockguides="true" + inkscape:snap-others="false" + inkscape:object-nodes="false" + inkscape:snap-nodes="true" + inkscape:snap-global="true" + inkscape:snap-to-guides="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:snap-grids="true" + inkscape:snap-page="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-text-baseline="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="false" + inkscape:snap-center="true" + inkscape:guide-bbox="true" + inkscape:zoom="18.10488" + inkscape:cx="0.49269966" + inkscape:cy="7.2331573" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + fit-margin-top="2" + fit-margin-left="1" + fit-margin-right="1" + fit-margin-bottom="2"> + <inkscape:grid + type="xygrid" + id="grid142" + spacingx="1" + spacingy="1" + dotted="false" + empspacing="16" + snapvisiblegridlinesonly="false" + color="#3f3fff" + opacity="0.25098039" + empcolor="#3f3fff" + empopacity="0.75294118" + originx="-128" + originy="0" /> + </sodipodi:namedview> + <path + id="path166" + d="M 1,2 H 8 V 4 H 1 Z m 0,3 h 14 v 9 H 1 Z" + inkscape:connector-curvature="0" + class="cat5" + sodipodi:nodetypes="cccccccccc" + style="stroke-width:1px" /> + <path + class="back" + d="M 1,4 H 8 V 5 H 1 Z" + id="path168" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> + <rect + id="rect11" + width="6" + height="1" + x="6" + y="9" + class="back" + style="stroke-width:0.81649661" /> + <rect + y="14.349242" + x="-2.3786798" + height="1" + width="4" + id="rect22" + transform="rotate(-45)" + class="back" /> + <rect + id="rect24" + width="4" + height="1" + x="11.056349" + y="-1.9142135" + transform="rotate(45)" + class="back" /> +</svg> ADDED freshlib/gui/themes/images/files/src/file.svg Index: freshlib/gui/themes/images/files/src/file.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/file.svg @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml-stylesheet href="./skin.css" type="text/css"?><svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + class="fresh" + style="fill:#c0c0c0;stroke:none" + version="1.1" + id="svg6" + sodipodi:docname="file.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + inkscape:export-filename="/work/asmwork/FreshFs/trunk/source/images/svg/feather/ready/messages.svg.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <metadata + id="metadata12"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#00b764" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="1" + inkscape:pageshadow="2" + inkscape:window-width="2560" + inkscape:window-height="1418" + id="namedview8" + showgrid="true" + inkscape:current-layer="svg6" + inkscape:showpageshadow="false" + showborder="true" + showguides="true" + inkscape:lockguides="true" + inkscape:snap-others="false" + inkscape:object-nodes="false" + inkscape:snap-nodes="true" + inkscape:snap-global="true" + inkscape:snap-to-guides="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:snap-grids="true" + inkscape:snap-page="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-text-baseline="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="false" + inkscape:snap-center="true" + inkscape:guide-bbox="true" + inkscape:zoom="3.925" + inkscape:cx="-12.181479" + inkscape:cy="-0.0067102485" + inkscape:window-x="1366" + inkscape:window-y="0" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid142" + spacingx="1" + spacingy="1" + dotted="false" + empspacing="16" + snapvisiblegridlinesonly="false" + color="#3f3fff" + opacity="0.25098039" + empcolor="#3f3fff" + empopacity="0.75294118" /> + </sodipodi:namedview> + <g + id="new"> + <path + sodipodi:nodetypes="ccccccccccc" + inkscape:connector-curvature="0" + d="m 9,1 4,4 H 9 Z M 3,1 V 15 H 13 V 6 H 8 V 1 Z" + id="new1" + class="primary" /> + <path + class="back" + inkscape:connector-curvature="0" + id="new2" + d="m 8,1 v 5 h 5 V 5 H 9 V 1 Z" + sodipodi:nodetypes="ccccccc" /> + </g> +</svg> ADDED freshlib/gui/themes/images/files/src/file_link.svg Index: freshlib/gui/themes/images/files/src/file_link.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/file_link.svg @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml-stylesheet href="./skin.css" type="text/css"?><svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + class="fresh" + style="fill:#c0c0c0;stroke:none" + version="1.1" + id="svg6" + sodipodi:docname="file_link.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + inkscape:export-filename="/work/asmwork/FreshFs/trunk/source/images/svg/feather/ready/messages.svg.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <metadata + id="metadata12"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#00b764" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="1" + inkscape:pageshadow="2" + inkscape:window-width="1366" + inkscape:window-height="746" + id="namedview8" + showgrid="true" + inkscape:current-layer="svg6" + inkscape:showpageshadow="false" + showborder="true" + showguides="true" + inkscape:lockguides="true" + inkscape:snap-others="false" + inkscape:object-nodes="false" + inkscape:snap-nodes="true" + inkscape:snap-global="true" + inkscape:snap-to-guides="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:snap-grids="true" + inkscape:snap-page="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-text-baseline="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="false" + inkscape:snap-center="true" + inkscape:guide-bbox="true" + inkscape:zoom="31.4" + inkscape:cx="1.6850614" + inkscape:cy="7.4953033" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid142" + spacingx="1" + spacingy="1" + dotted="false" + empspacing="16" + snapvisiblegridlinesonly="false" + color="#3f3fff" + opacity="0.25098039" + empcolor="#3f3fff" + empopacity="0.75294118" /> + </sodipodi:namedview> + <g + id="new"> + <path + sodipodi:nodetypes="ccccccccccc" + inkscape:connector-curvature="0" + d="m 9,1 4,4 H 9 Z M 3,1 V 15 H 13 V 6 H 8 V 1 Z" + id="new1" + class="primary" /> + <path + class="back" + inkscape:connector-curvature="0" + id="new2" + d="m 8,1 v 5 h 5 V 5 H 9 V 1 Z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + id="rect11" + width="6" + height="1" + x="5" + y="10" + class="back" /> + <rect + y="14.349241" + x="-3.7928934" + height="1" + width="4" + id="rect22" + transform="rotate(-45)" + class="back" /> + <rect + id="rect24" + width="4" + height="1" + x="11.056348" + y="-0.5" + transform="rotate(45)" + class="back" /> +</svg> ADDED freshlib/gui/themes/images/files/src/set-dark Index: freshlib/gui/themes/images/files/src/set-dark ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/set-dark @@ -0,0 +1,2 @@ +#!/bin/bash +ln -s -f ./skin_dark.css ./skin.css ADDED freshlib/gui/themes/images/files/src/set-light Index: freshlib/gui/themes/images/files/src/set-light ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/set-light @@ -0,0 +1,2 @@ +#!/bin/bash +ln -s -f ./skin_light.css ./skin.css ADDED freshlib/gui/themes/images/files/src/skin_dark.css Index: freshlib/gui/themes/images/files/src/skin_dark.css ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/skin_dark.css @@ -0,0 +1,78 @@ +.fresh { + background-color:#303030; + stroke: none; +} + +/* The main outline/fill color of the skin.*/ + +.primary { + fill: #ffcc00; +} + +.back { + fill: #000000; +} + + +/* The color that need to stay "grayed" (less emphasize) */ + +.gray { + fill: #a0a0a0; +} + +/* The color that need to stay some kind of emphasized. */ + +.emphasize { + fill: #00ccff; +} + +/* Very important color */ + +.important { + fill: #ff0084; +} + + +/* Colors with meaning */ + +.error { + fill: #ff1800; +} + +.warning { + fill: #e3ff00; +} + +.info { + fill: #00ccff; +} + +.always_light { + fill: #ffffff; +} + +/* Categories icons */ + +.cat1 { + fill: #00ffff; +} + +.cat2 { + fill: #cc80ff; +} + +.cat3 { + fill: #00FF00; +} + +.cat4 { + fill: #FFC0C0; +} + +.cat5 { + fill: #FF9000; +} + +.cat6 { + fill: #ffffff; +} ADDED freshlib/gui/themes/images/files/src/skin_light.css Index: freshlib/gui/themes/images/files/src/skin_light.css ================================================================== --- /dev/null +++ freshlib/gui/themes/images/files/src/skin_light.css @@ -0,0 +1,79 @@ +.fresh { + background-color:#d4d0c8; + stroke: none; +} + + +/* The main outline/fill color of the light skin.*/ + +.primary { + fill: #3A7BBB; +} + +.back { + fill: #ffffff; +} + +/* The color that need to stay "grayed" (less emphasize) */ + +.gray { + fill: #606060; +} + +/* The color that need to stay some kind of emphasized. */ + +.emphasize { + fill: #5730FF; +} + +/* Very important color */ + +.important { + fill: #ff005d; +} + +/* Colors with meaning */ + +.error { + fill: #ff0000; +} + +.warning { + fill: #009000; +} + +.info { + fill: #0000ff; +} + +.always_light { + fill: #ffffff; +} + + + +/* Categories icons */ + +.cat1 { + fill: #388FA1; +} + +.cat2 { + fill: #8d2ea1; +} + +.cat3 { + fill: #39a139; +} + +.cat4 { + fill: #FF4C26; +} + +.cat5 { + fill: #FFA233; +} + +.cat6 { + fill: #212121; +} ADDED freshlib/gui/themes/images/msgbox/error.png Index: freshlib/gui/themes/images/msgbox/error.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/msgbox/error.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/msgbox/information.png Index: freshlib/gui/themes/images/msgbox/information.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/msgbox/information.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/msgbox/question.png Index: freshlib/gui/themes/images/msgbox/question.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/msgbox/question.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/msgbox/warning.png Index: freshlib/gui/themes/images/msgbox/warning.png ================================================================== --- /dev/null +++ freshlib/gui/themes/images/msgbox/warning.png cannot compute difference between binary files ADDED freshlib/gui/themes/images/src/chessboard.svg Index: freshlib/gui/themes/images/src/chessboard.svg ================================================================== --- /dev/null +++ freshlib/gui/themes/images/src/chessboard.svg @@ -0,0 +1,7 @@ +<?xml-stylesheet href="./skin.css" type="text/css"?> +<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" > + <rect x="0" y="0" width="8" height="8" fill="#606060"/> + <rect x="8" y="8" width="8" height="8" fill="#606060"/> + <rect x="8" y="0" width="8" height="8" fill="#b0b0b0"/> + <rect x="0" y="8" width="8" height="8" fill="#b0b0b0"/> +</svg> ADDED freshlib/gui/themes/win_gui.asm Index: freshlib/gui/themes/win_gui.asm ================================================================== --- /dev/null +++ freshlib/gui/themes/win_gui.asm @@ -0,0 +1,180 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This file contains procedures and data, that form the appearance of the +; FreshLib GUI application. Colors, control borders, backgrownd drawing etc. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: The user should be able to change these settings and if he uses external +; procedures, then the code from this library should not be compiled. +;_________________________________________________________________________________________ +module "GUI theme data and code library" + + +; Theme colors and other parameters as margins, offsets, fonts, etc. +iglobal + + + NamedArray GUI, \ +\ +\ ; Text caret color + clTextCaret, HEX, $ffff0000, \ ;$0000ffff, \ + caretTimes, NUM, <250, 250>, \ +\ ; Widgets border colors and width + clBorderNeutral, HEX, $ffa0a0a0, \ + clBorderLight, HEX, $ffffffff, \ + clBorderDark, HEX, $ff404040, \ + clBorderNeutralGray, HEX, $ff909090, \ + clBorderLightGray, HEX, $ffe0e0e0, \ + clBorderDarkGray, HEX, $ff808080, \ + clBorderFocused, HEX, $ffff8000, \ +\ + boxBorderWidth, NUM, 1, \ +\ +\ ; TButton colors and styles. The multivalue fields are for Neutral, Hovered and Pressed states. +\ + clBtnBk, HEX, <$ffd4d0c8, $ffe0e0e0, $ffa0a0a0, $80d4d0c8>, \ + clBtnTxt, HEX, <$ff000000, $ff000000, $ff000000, $ff606060>, \ + btnBorder, NUM, <bxRaised, bxRaised, bxSunken, bxRaised or bxDisabled>, \ + btnPressedOfsX, NUM, 1, \ + btnPressedOfsY, NUM, 1, \ + btnMarginX, NUM, 4, \ + btnMarginY, NUM, 4, \ +\ +\ ; Toolbar buttons colors and styles + clToolBtnBk, HEX, <$ffd4d0c8, $ffe0e0e0, $ffa0a0a0, $80d4d0c8>, \ + clToolBtnTxt, HEX, <$ff000000, $ff000000, $ff000000, $ff606060>, \ + tbBorder, NUM, <bxNone, bxRaised, bxSunken, bxNone or bxDisabled>, \ + tbBorderWidth, NUM, 1, \ + tbPressedOfsX, NUM, 1, \ + tbPressedOfsY, NUM, 1, \ + tbSeparatorType, HEX, bxSunken, \ + tbSeparatorWidth, NUM, 10, \ +\ +\ ; TEdit colors and styles. +\ + clEditBk, HEX, $ffffffff, \ + clEditBkFocused, HEX, $ffffffff, \ + clEditTxt, HEX, $ff000000, \ + clEditSel, HEX, $600a246c, \ + clEditSelTxt, HEX, $ffffffff, \ + editBorder, NUM, bxSunken, \ + editBorderFocused, NUM, bxSunken, \ +\ +\ ; Dialog boxes and TForm color and styles +\ + clDialogBk, HEX, $ffd4d0c8, \ + clDialogTxt, HEX, $ff000000, \ + clSplitter, HEX, $ff606060, \ +\ +\ ; TProgress colors and styles +\ + clProgressBk, HEX, $ffd4d0c8, \ + clProgressBar, HEX, $ff0a246c, \ + progressBorder, NUM, bxSunken, \ +\ +\ ; TScrollbar colors and styles +\ + clScrollBk, HEX, <$c0808080, $ff808080>, \ + clScrollSlider, HEX, <$c0e0e0e0, $ffe0e0e0>, \ + clScrollSliderOvf, HEX, <$c0ff8080, $ffff8080>, \ + borderScroll, NUM, bxRaised, \ + scrollWidth, NUM, 12, \ + minSliderHeight, NUM, 24, \ +\ +\ ; TLabel colors and styles +\ + clLabelBk, HEX, $00ffffff, \ + clLabelTxt, HEX, $ff000000, \ +\ +\ ; TTreeView colors and styles. +\ + clTreeViewBack, HEX, $ffffffff, \ + clTreeViewText, HEX, $ff000000, \ + clTreeSelected, HEX, $ff0a246c, \ + clTreeSelectedTxt, HEX, $ffffffff, \ + clTreeFocused, HEX, $ff0a246c, \ + clTreeFocusedTxt, HEX, $ffffff00, \ + clTreeFocused2, HEX, $ff808080, \ + clTreeFocused2Txt, HEX, $ffffffff, \ + clTreeViewLines, HEX, $ffd0d0d0, \ +\ + tvBorder, NUM, bxSunken, \ +\ + tvIcons, PNG, <"%lib%/gui/images/treeview/plus_win.png", "%lib%/gui/images/treeview/minus_win.png">, \ +\ +\ ; TMenu colors and styles +\ + clMenuBack, HEX, $ffd4d0c8, \ + clMenuText, HEX, $ff000000, \ + clMenuTextGray, HEX, $80000000, \ + clMenuSelection, HEX, $ff000080, \ + clMenuSelIcon, HEX, $ffadaabb, \ + borderMenu, NUM, bxRaised, \ + menuIconMargin, NUM, 4, \ + menuSeparatorHeight,NUM, 10, \ + menuMinTextDist, NUM, 32, \ + menuSubIcon, PNG, "%lib%/gui/images/menu/submenu.png", \ + menuSubIconSel, PNG, "%lib%/gui/images/menu/submenusel.png", \ + menuSubIconGray, PNG, "%lib%/gui/images/menu/submenugray.png", \ +\ +\ ; Menu graphics +\ + iconMenuChecked, PNG, "%lib%/gui/images/menu/check.png", \ + iconMenuCheckedGray,PNG, "%lib%/gui/images/menu/check_gray.png", \ +\ +\ ; Checkbox colors +\ + clCheckboxBack, HEX, <$ffffffff, $ffffffff, $ffffffff, $ffc0c0c0>, \ + clCheckboxTxt, HEX, $ff000000, \ + clCheckboxTxtGray, HEX, $ff808080, \ + cbIconSize, NUM, 13, \ + cbMargin, NUM, 2, \ + borderCheckbox, NUM, bxSunken, \ + iconChecked, PNG, "%lib%/gui/images/checkbox/check.png", \ + iconCheckedGray, PNG, "%lib%/gui/images/checkbox/check_gray.png", \ +\ +\ ; TabBar control +\ + maxTabWidth, NUM, 180, \ + tabMarginX, NUM, 4, \ + tabMarginY, NUM, 4, \ + clTabBk, HEX, <$ffd4d0c8, $ffe0e0e0, $ffe0e0e0>, \ + clTabTxt, HEX, $ff000000, \ +\ +\ ; Grid control + clGridCellBk, HEX, <$ffffffff, $ffd4d0c8, $ff82C8FC, $ff0a246c, $ff808080>, \ ; <regular, fixed, selected, focused> background color. + clGridCellTxt, HEX, <$ff000000, $ff000000, $ff000000, $ffffffff, $ffffffff>, \ ; <regular, fixed, selected, focused> text color. + clGridLines, HEX, <$00000000, $ffd4d0c8, $ffffffff, $ff000000>, \ ;top-left data, bottom-right data, top-left fixed, bottom-right fixed. +\ +\ ; ListView control + lvIconMargin, NUM, 3, \ +\ +\ ; Dialogs images +\ + iconDialogs, PNG, <"%lib%/gui/themes/images/msgbox/error.png", "%lib%/gui/themes/images/msgbox/information.png", "%lib%/gui/themes/images/msgbox/question.png", "%lib%/gui/themes/images/msgbox/warning.png">, \ + iconDirectory, PNG, <"%lib%/gui/themes/images/files/dir_light.png", "%lib%/gui/themes/images/files/dir_link_light.png">, \ + iconFile, PNG, <"%lib%/gui/themes/images/files/file_light.png", "%lib%/gui/themes/images/files/file_link_light.png">, \ + bgChessboard, PNG, "%lib%/gui/themes/images/chessboard.png", \ +\ +\ ; Default font +\ + DefaultFont, FONT, "Tahoma":11:fwNormal:0, \ + HintFont, FONT, "Tahoma": 12 : fwNormal : 0, \ + DefaultMono, FONT, "Courier New": 11 : fwNormal : ffMonospaced, \ +\ +\ ; Mouse settings +\ + DoubleClickTime, NUM, 600, \ + DoubleClickDistance, NUM, 8 + +endg + + + +endmodule DELETED freshlib/imports/Linux/_libX11.inc Index: freshlib/imports/Linux/_libX11.inc ================================================================== --- freshlib/imports/Linux/_libX11.inc +++ /dev/null @@ -1,774 +0,0 @@ - XActivateScreenSaver ,\ - XAddConnectionWatch ,\ - XAddExtension ,\ - XAddHost ,\ - XAddHosts ,\ - XAddPixel ,\ - XAddToExtensionList ,\ - XAddToSaveSet ,\ - XAllPlanes ,\ - XAllocClassHint ,\ - XAllocColor ,\ - XAllocColorCells ,\ - XAllocColorPlanes ,\ - XAllocIconSize ,\ - XAllocNamedColor ,\ - XAllocSizeHints ,\ - XAllocStandardColormap ,\ - XAllocWMHints ,\ - XAllowEvents ,\ - XAutoRepeatOff ,\ - XAutoRepeatOn ,\ - XBaseFontNameListOfFontSet ,\ - XBell ,\ - XBitmapBitOrder ,\ - XBitmapPad ,\ - XBitmapUnit ,\ - XBlackPixel ,\ - XBlackPixelOfScreen ,\ - XCellsOfScreen ,\ - XChangeActivePointerGrab ,\ - XChangeGC ,\ - XChangeKeyboardControl ,\ - XChangeKeyboardMapping ,\ - XChangePointerControl ,\ - XChangeProperty ,\ - XChangeSaveSet ,\ - XChangeWindowAttributes ,\ - XCheckIfEvent ,\ - XCheckMaskEvent ,\ - XCheckTypedEvent ,\ - XCheckTypedWindowEvent ,\ - XCheckWindowEvent ,\ - XCirculateSubwindows ,\ - XCirculateSubwindowsDown ,\ - XCirculateSubwindowsUp ,\ - XClearArea ,\ - XClearWindow ,\ - XClipBox ,\ - XCloseDisplay ,\ - XCloseIM ,\ - XCloseOM ,\ - XConfigureWindow ,\ - XConnectionNumber ,\ - XContextDependentDrawing ,\ - XContextualDrawing ,\ - XConvertCase ,\ - XConvertSelection ,\ - XCopyArea ,\ - XCopyColormapAndFree ,\ - XCopyGC ,\ - XCopyPlane ,\ - XCreateBitmapFromData ,\ - XCreateColormap ,\ - XCreateFontCursor ,\ - XCreateFontSet ,\ - XCreateGC ,\ - XCreateGlyphCursor ,\ - XCreateIC ,\ - XCreateImage ,\ - XCreateOC ,\ - XCreatePixmap ,\ - XCreatePixmapCursor ,\ - XCreatePixmapFromBitmapData ,\ - XCreateRegion ,\ - XCreateSimpleWindow ,\ - XCreateWindow ,\ - XDefaultColormap ,\ - XDefaultColormapOfScreen ,\ - XDefaultDepth ,\ - XDefaultDepthOfScreen ,\ - XDefaultGC ,\ - XDefaultGCOfScreen ,\ - XDefaultRootWindow ,\ - XDefaultScreen ,\ - XDefaultScreenOfDisplay ,\ - XDefaultString ,\ - XDefaultVisual ,\ - XDefaultVisualOfScreen ,\ - XDefineCursor ,\ - XDeleteContext ,\ - XDeleteModifiermapEntry ,\ - XDeleteProperty ,\ - XDestroyIC ,\ - XDestroyImage ,\ - XDestroyOC ,\ - XDestroyRegion ,\ - XDestroySubwindows ,\ - XDestroyWindow ,\ - XDirectionalDependentDrawing ,\ - XDisableAccessControl ,\ - XDisplayCells ,\ - XDisplayHeight ,\ - XDisplayHeightMM ,\ - XDisplayKeycodes ,\ - XDisplayMotionBufferSize ,\ - XDisplayName ,\ - XDisplayOfIM ,\ - XDisplayOfOM ,\ - XDisplayOfScreen ,\ - XDisplayPlanes ,\ - XDisplayString ,\ - XDisplayWidth ,\ - XDisplayWidthMM ,\ - XDoesBackingStore ,\ - XDoesSaveUnders ,\ - XDrawArc ,\ - XDrawArcs ,\ - XDrawImageString ,\ - XDrawImageString16 ,\ - XDrawLine ,\ - XDrawLines ,\ - XDrawPoint ,\ - XDrawPoints ,\ - XDrawRectangle ,\ - XDrawRectangles ,\ - XDrawSegments ,\ - XDrawString ,\ - XDrawString16 ,\ - XDrawText ,\ - XDrawText16 ,\ - XEHeadOfExtensionList ,\ - XESetBeforeFlush ,\ - XESetCloseDisplay ,\ - XESetCopyGC ,\ - XESetCreateFont ,\ - XESetCreateGC ,\ - XESetError ,\ - XESetErrorString ,\ - XESetEventToWire ,\ - XESetFlushGC ,\ - XESetFreeFont ,\ - XESetFreeGC ,\ - XESetPrintErrorValues ,\ - XESetWireToError ,\ - XESetWireToEvent ,\ - XEmptyRegion ,\ - XEnableAccessControl ,\ - XEqualRegion ,\ - XEventMaskOfScreen ,\ - XEventsQueued ,\ - XExtendedMaxRequestSize ,\ - XExtentsOfFontSet ,\ - XFetchBuffer ,\ - XFetchBytes ,\ - XFetchName ,\ - XFillArc ,\ - XFillArcs ,\ - XFillPolygon ,\ - XFillRectangle ,\ - XFillRectangles ,\ - XFilterEvent ,\ - XFindContext ,\ - XFindOnExtensionList ,\ - XFlush ,\ - XFlushGC ,\ - XFontsOfFontSet ,\ - XForceScreenSaver ,\ - XFree ,\ - XFreeColormap ,\ - XFreeColors ,\ - XFreeCursor ,\ - XFreeExtensionList ,\ - XFreeFont ,\ - XFreeFontInfo ,\ - XFreeFontNames ,\ - XFreeFontPath ,\ - XFreeFontSet ,\ - XFreeGC ,\ - XFreeModifiermap ,\ - XFreePixmap ,\ - XFreeStringList ,\ - XGContextFromGC ,\ - XGeometry ,\ - XGetAtomName ,\ - XGetAtomNames ,\ - XGetClassHint ,\ - XGetCommand ,\ - XGetDefault ,\ - XGetErrorDatabaseText ,\ - XGetErrorText ,\ - XGetFontPath ,\ - XGetFontProperty ,\ - XGetGCValues ,\ - XGetGeometry ,\ - XGetICValues ,\ - XGetIMValues ,\ - XGetIconName ,\ - XGetIconSizes ,\ - XGetImage ,\ - XGetInputFocus ,\ - XGetKeyboardControl ,\ - XGetKeyboardMapping ,\ - XGetModifierMapping ,\ - XGetMotionEvents ,\ - XGetNormalHints ,\ - XGetOCValues ,\ - XGetOMValues ,\ - XGetPixel ,\ - XGetPointerControl ,\ - XGetPointerMapping ,\ - XGetRGBColormaps ,\ - XGetScreenSaver ,\ - XGetSelectionOwner ,\ - XGetSizeHints ,\ - XGetStandardColormap ,\ - XGetSubImage ,\ - XGetTextProperty ,\ - XGetTransientForHint ,\ - XGetVisualInfo ,\ - XGetWMClientMachine ,\ - XGetWMColormapWindows ,\ - XGetWMHints ,\ - XGetWMIconName ,\ - XGetWMName ,\ - XGetWMNormalHints ,\ - XGetWMProtocols ,\ - XGetWMSizeHints ,\ - XGetWindowAttributes ,\ - XGetWindowProperty ,\ - XGetZoomHints ,\ - XGrabButton ,\ - XGrabKey ,\ - XGrabKeyboard ,\ - XGrabPointer ,\ - XGrabServer ,\ - XHeightMMOfScreen ,\ - XHeightOfScreen ,\ - XIMOfIC ,\ - XIconifyWindow ,\ - XIfEvent ,\ - XImageByteOrder ,\ - XInitExtension ,\ - XInitImage ,\ - XInitThreads ,\ - XInsertModifiermapEntry ,\ - XInstallColormap ,\ - XInternAtom ,\ - XInternAtoms ,\ - XInternalConnectionNumbers ,\ - XIntersectRegion ,\ - XKeycodeToKeysym ,\ - XKeysymToKeycode ,\ - XKeysymToString ,\ - XKillClient ,\ - XLastKnownRequestProcessed ,\ - XListDepths ,\ - XListExtensions ,\ - XListFonts ,\ - XListFontsWithInfo ,\ - XListHosts ,\ - XListInstalledColormaps ,\ - XListPixmapFormats ,\ - XListProperties ,\ - XLoadFont ,\ - XLoadQueryFont ,\ - XLocaleOfFontSet ,\ - XLocaleOfIM ,\ - XLocaleOfOM ,\ - XLockDisplay ,\ - XLookupColor ,\ - XLookupKeysym ,\ - XLookupString ,\ - XLowerWindow ,\ - XMapRaised ,\ - XMapSubwindows ,\ - XMapWindow ,\ - XMaskEvent ,\ - XMatchVisualInfo ,\ - XMaxCmapsOfScreen ,\ - XMaxRequestSize ,\ - XMinCmapsOfScreen ,\ - XMoveResizeWindow ,\ - XMoveWindow ,\ - XNewModifiermap ,\ - XNextEvent ,\ - XNextRequest ,\ - XNoOp ,\ - XOMOfOC ,\ - XOffsetRegion ,\ - XOpenDisplay ,\ - XOpenIM ,\ - XOpenOM ,\ - XParseColor ,\ - XParseGeometry ,\ - XPeekEvent ,\ - XPeekIfEvent ,\ - XPending ,\ - XPlanesOfScreen ,\ - XPointInRegion ,\ - XPolygonRegion ,\ - XProcessInternalConnection ,\ - XProtocolRevision ,\ - XProtocolVersion ,\ - XPutBackEvent ,\ - XPutImage ,\ - XPutPixel ,\ - XQLength ,\ - XQueryBestCursor ,\ - XQueryBestSize ,\ - XQueryBestStipple ,\ - XQueryBestTile ,\ - XQueryColor ,\ - XQueryColors ,\ - XQueryExtension ,\ - XQueryFont ,\ - XQueryKeymap ,\ - XQueryPointer ,\ - XQueryTextExtents ,\ - XQueryTextExtents16 ,\ - XQueryTree ,\ - XRaiseWindow ,\ - XReadBitmapFile ,\ - XReadBitmapFileData ,\ - XRebindKeysym ,\ - XRecolorCursor ,\ - XReconfigureWMWindow ,\ - XRectInRegion ,\ - XRefreshKeyboardMapping ,\ - XRegisterIMInstantiateCallback ,\ - XRemoveConnectionWatch ,\ - XRemoveFromSaveSet ,\ - XRemoveHost ,\ - XRemoveHosts ,\ - XReparentWindow ,\ - XResetScreenSaver ,\ - XResizeWindow ,\ - XResourceManagerString ,\ - XRestackWindows ,\ - XRootWindow ,\ - XRootWindowOfScreen ,\ - XRotateBuffers ,\ - XRotateWindowProperties ,\ - XSaveContext ,\ - XScreenCount ,\ - XScreenNumberOfScreen ,\ - XScreenOfDisplay ,\ - XScreenResourceString ,\ - XSelectInput ,\ - XSendEvent ,\ - XServerVendor ,\ - XSetAccessControl ,\ - XSetAfterFunction ,\ - XSetArcMode ,\ - XSetAuthorization ,\ - XSetBackground ,\ - XSetClassHint ,\ - XSetClipMask ,\ - XSetClipOrigin ,\ - XSetClipRectangles ,\ - XSetCloseDownMode ,\ - XSetCommand ,\ - XSetDashes ,\ - XSetErrorHandler ,\ - XSetFillRule ,\ - XSetFillStyle ,\ - XSetFont ,\ - XSetFontPath ,\ - XSetForeground ,\ - XSetFunction ,\ - XSetGraphicsExposures ,\ - XSetICFocus ,\ - XSetICValues ,\ - XSetIMValues ,\ - XSetIOErrorHandler ,\ - XSetIconName ,\ - XSetIconSizes ,\ - XSetInputFocus ,\ - XSetLineAttributes ,\ - XSetLocaleModifiers ,\ - XSetModifierMapping ,\ - XSetNormalHints ,\ - XSetOCValues ,\ - XSetOMValues ,\ - XSetPlaneMask ,\ - XSetPointerMapping ,\ - XSetRGBColormaps ,\ - XSetRegion ,\ - XSetScreenSaver ,\ - XSetSelectionOwner ,\ - XSetSizeHints ,\ - XSetStandardColormap ,\ - XSetStandardProperties ,\ - XSetState ,\ - XSetStipple ,\ - XSetSubwindowMode ,\ - XSetTSOrigin ,\ - XSetTextProperty ,\ - XSetTile ,\ - XSetTransientForHint ,\ - XSetWMClientMachine ,\ - XSetWMColormapWindows ,\ - XSetWMHints ,\ - XSetWMIconName ,\ - XSetWMName ,\ - XSetWMNormalHints ,\ - XSetWMProperties ,\ - XSetWMProtocols ,\ - XSetWMSizeHints ,\ - XSetWindowBackground ,\ - XSetWindowBackgroundPixmap ,\ - XSetWindowBorder ,\ - XSetWindowBorderPixmap ,\ - XSetWindowBorderWidth ,\ - XSetWindowColormap ,\ - XSetZoomHints ,\ - XShrinkRegion ,\ - XStoreBuffer ,\ - XStoreBytes ,\ - XStoreColor ,\ - XStoreColors ,\ - XStoreName ,\ - XStoreNamedColor ,\ - XStringListToTextProperty ,\ - XStringToKeysym ,\ - XSubImage ,\ - XSubtractRegion ,\ - XSupportsLocale ,\ - XSync ,\ - XSynchronize ,\ - XTextExtents ,\ - XTextExtents16 ,\ - XTextPropertyToStringList ,\ - XTextWidth ,\ - XTextWidth16 ,\ - XTranslateCoordinates ,\ - XUndefineCursor ,\ - XUngrabButton ,\ - XUngrabKey ,\ - XUngrabKeyboard ,\ - XUngrabPointer ,\ - XUngrabServer ,\ - XUninstallColormap ,\ - XUnionRectWithRegion ,\ - XUnionRegion ,\ - XUnloadFont ,\ - XUnlockDisplay ,\ - XUnmapSubwindows ,\ - XUnmapWindow ,\ - XUnregisterIMInstantiateCallback ,\ - XUnsetICFocus ,\ - XVaCreateNestedList ,\ - XVendorRelease ,\ - XVisualIDFromVisual ,\ - XWMGeometry ,\ - XWarpPointer ,\ - XWhitePixel ,\ - XWhitePixelOfScreen ,\ - XWidthMMOfScreen ,\ - XWidthOfScreen ,\ - XWindowEvent ,\ - XWithdrawWindow ,\ - XWriteBitmapFile ,\ - XXorRegion ,\ - XcmsAddColorSpace ,\ - XcmsAddFunctionSet ,\ - XcmsAllocColor ,\ - XcmsAllocNamedColor ,\ - XcmsCCCOfColormap ,\ - XcmsCIELabClipL ,\ - XcmsCIELabClipLab ,\ - XcmsCIELabClipab ,\ - XcmsCIELabColorSpace ,\ - XcmsCIELabQueryMaxC ,\ - XcmsCIELabQueryMaxL ,\ - XcmsCIELabQueryMaxLC ,\ - XcmsCIELabQueryMinL ,\ - XcmsCIELabToCIEXYZ ,\ - XcmsCIELabWhiteShiftColors ,\ - XcmsCIELuvClipL ,\ - XcmsCIELuvClipLuv ,\ - XcmsCIELuvClipuv ,\ - XcmsCIELuvColorSpace ,\ - XcmsCIELuvQueryMaxC ,\ - XcmsCIELuvQueryMaxL ,\ - XcmsCIELuvQueryMaxLC ,\ - XcmsCIELuvQueryMinL ,\ - XcmsCIELuvToCIEuvY ,\ - XcmsCIELuvWhiteShiftColors ,\ - XcmsCIEXYZColorSpace ,\ - XcmsCIEXYZToCIELab ,\ - XcmsCIEXYZToCIEuvY ,\ - XcmsCIEXYZToCIExyY ,\ - XcmsCIEXYZToRGBi ,\ - XcmsCIEuvYColorSpace ,\ - XcmsCIEuvYToCIELuv ,\ - XcmsCIEuvYToCIEXYZ ,\ - XcmsCIEuvYToTekHVC ,\ - XcmsCIExyYColorSpace ,\ - XcmsCIExyYToCIEXYZ ,\ - XcmsClientWhitePointOfCCC ,\ - XcmsConvertColors ,\ - XcmsCreateCCC ,\ - XcmsDefaultCCC ,\ - XcmsDisplayOfCCC ,\ - XcmsFormatOfPrefix ,\ - XcmsFreeCCC ,\ - XcmsLinearRGBFunctionSet ,\ - XcmsLookupColor ,\ - XcmsPrefixOfFormat ,\ - XcmsQueryBlack ,\ - XcmsQueryBlue ,\ - XcmsQueryColor ,\ - XcmsQueryColors ,\ - XcmsQueryGreen ,\ - XcmsQueryRed ,\ - XcmsQueryWhite ,\ - XcmsRGBColorSpace ,\ - XcmsRGBToRGBi ,\ - XcmsRGBiColorSpace ,\ - XcmsRGBiToCIEXYZ ,\ - XcmsRGBiToRGB ,\ - XcmsScreenNumberOfCCC ,\ - XcmsScreenWhitePointOfCCC ,\ - XcmsSetCCCOfColormap ,\ - XcmsSetCompressionProc ,\ - XcmsSetWhiteAdjustProc ,\ - XcmsSetWhitePoint ,\ - XcmsStoreColor ,\ - XcmsStoreColors ,\ - XcmsTekHVCClipC ,\ - XcmsTekHVCClipV ,\ - XcmsTekHVCClipVC ,\ - XcmsTekHVCColorSpace ,\ - XcmsTekHVCQueryMaxC ,\ - XcmsTekHVCQueryMaxV ,\ - XcmsTekHVCQueryMaxVC ,\ - XcmsTekHVCQueryMaxVSamples ,\ - XcmsTekHVCQueryMinV ,\ - XcmsTekHVCToCIEuvY ,\ - XcmsTekHVCWhiteShiftColors ,\ - XcmsUNDEFINEDColorSpace ,\ - XcmsVisualOfCCC ,\ - XkbAddDeviceLedInfo ,\ - XkbAddGeomColor ,\ - XkbAddGeomDoodad ,\ - XkbAddGeomKey ,\ - XkbAddGeomKeyAlias ,\ - XkbAddGeomOutline ,\ - XkbAddGeomOverlay ,\ - XkbAddGeomOverlayKey ,\ - XkbAddGeomOverlayRow ,\ - XkbAddGeomProperty ,\ - XkbAddGeomRow ,\ - XkbAddGeomSection ,\ - XkbAddGeomShape ,\ - XkbAddKeyType ,\ - XkbAllocClientMap ,\ - XkbAllocCompatMap ,\ - XkbAllocControls ,\ - XkbAllocDeviceInfo ,\ - XkbAllocGeomColors ,\ - XkbAllocGeomDoodads ,\ - XkbAllocGeomKeyAliases ,\ - XkbAllocGeomKeys ,\ - XkbAllocGeomOutlines ,\ - XkbAllocGeomOverlayKeys ,\ - XkbAllocGeomOverlayRows ,\ - XkbAllocGeomOverlays ,\ - XkbAllocGeomPoints ,\ - XkbAllocGeomProps ,\ - XkbAllocGeomRows ,\ - XkbAllocGeomSectionDoodads ,\ - XkbAllocGeomSections ,\ - XkbAllocGeomShapes ,\ - XkbAllocGeometry ,\ - XkbAllocIndicatorMaps ,\ - XkbAllocKeyboard ,\ - XkbAllocNames ,\ - XkbAllocServerMap ,\ - XkbApplyCompatMapToKey ,\ - XkbApplyVirtualModChanges ,\ - XkbBell ,\ - XkbBellEvent ,\ - XkbChangeDeviceInfo ,\ - XkbChangeEnabledControls ,\ - XkbChangeKeycodeRange ,\ - XkbChangeMap ,\ - XkbChangeNames ,\ - XkbChangeTypesOfKey ,\ - XkbComputeEffectiveMap ,\ - XkbComputeRowBounds ,\ - XkbComputeSectionBounds ,\ - XkbComputeShapeBounds ,\ - XkbComputeShapeTop ,\ - XkbCopyKeyType ,\ - XkbCopyKeyTypes ,\ - XkbDeviceBell ,\ - XkbDeviceBellEvent ,\ - XkbFindOverlayForKey ,\ - XkbForceBell ,\ - XkbForceDeviceBell ,\ - XkbFreeClientMap ,\ - XkbFreeCompatMap ,\ - XkbFreeComponentList ,\ - XkbFreeControls ,\ - XkbFreeDeviceInfo ,\ - XkbFreeGeomColors ,\ - XkbFreeGeomDoodads ,\ - XkbFreeGeomKeyAliases ,\ - XkbFreeGeomKeys ,\ - XkbFreeGeomOutlines ,\ - XkbFreeGeomOverlayKeys ,\ - XkbFreeGeomOverlayRows ,\ - XkbFreeGeomOverlays ,\ - XkbFreeGeomPoints ,\ - XkbFreeGeomProperties ,\ - XkbFreeGeomRows ,\ - XkbFreeGeomSections ,\ - XkbFreeGeomShapes ,\ - XkbFreeGeometry ,\ - XkbFreeIndicatorMaps ,\ - XkbFreeKeyboard ,\ - XkbFreeNames ,\ - XkbFreeServerMap ,\ - XkbGetAutoRepeatRate ,\ - XkbGetAutoResetControls ,\ - XkbGetCompatMap ,\ - XkbGetControls ,\ - XkbGetDetectableAutoRepeat ,\ - XkbGetDeviceButtonActions ,\ - XkbGetDeviceInfo ,\ - XkbGetDeviceInfoChanges ,\ - XkbGetDeviceLedInfo ,\ - XkbGetGeometry ,\ - XkbGetIndicatorMap ,\ - XkbGetIndicatorState ,\ - XkbGetKeyActions ,\ - XkbGetKeyBehaviors ,\ - XkbGetKeyExplicitComponents ,\ - XkbGetKeyModifierMap ,\ - XkbGetKeySyms ,\ - XkbGetKeyTypes ,\ - XkbGetKeyVirtualModMap ,\ - XkbGetKeyboard ,\ - XkbGetKeyboardByName ,\ - XkbGetMap ,\ - XkbGetMapChanges ,\ - XkbGetNamedDeviceIndicator ,\ - XkbGetNamedGeometry ,\ - XkbGetNamedIndicator ,\ - XkbGetNames ,\ - XkbGetPerClientControls ,\ - XkbGetState ,\ - XkbGetUpdatedMap ,\ - XkbGetVirtualMods ,\ - XkbGetXlibControls ,\ - XkbIgnoreExtension ,\ - XkbInitCanonicalKeyTypes ,\ - XkbKeyTypesForCoreSymbols ,\ - XkbKeycodeToKeysym ,\ - XkbKeysymToModifiers ,\ - XkbLatchGroup ,\ - XkbLatchModifiers ,\ - XkbLibraryVersion ,\ - XkbListComponents ,\ - XkbLockGroup ,\ - XkbLockModifiers ,\ - XkbLookupKeyBinding ,\ - XkbLookupKeySym ,\ - XkbNoteControlsChanges ,\ - XkbNoteDeviceChanges ,\ - XkbNoteMapChanges ,\ - XkbNoteNameChanges ,\ - XkbOpenDisplay ,\ - XkbQueryExtension ,\ - XkbRefreshKeyboardMapping ,\ - XkbResizeDeviceButtonActions ,\ - XkbResizeKeyActions ,\ - XkbResizeKeySyms ,\ - XkbResizeKeyType ,\ - XkbSelectEventDetails ,\ - XkbSelectEvents ,\ - XkbSetAtomFuncs ,\ - XkbSetAutoRepeatRate ,\ - XkbSetAutoResetControls ,\ - XkbSetCompatMap ,\ - XkbSetControls ,\ - XkbSetDebuggingFlags ,\ - XkbSetDetectableAutoRepeat ,\ - XkbSetDeviceButtonActions ,\ - XkbSetDeviceInfo ,\ - XkbSetDeviceLedInfo ,\ - XkbSetGeometry ,\ - XkbSetIgnoreLockMods ,\ - XkbSetIndicatorMap ,\ - XkbSetMap ,\ - XkbSetNamedDeviceIndicator ,\ - XkbSetNamedIndicator ,\ - XkbSetNames ,\ - XkbSetPerClientControls ,\ - XkbSetServerInternalMods ,\ - XkbSetXlibControls ,\ - XkbToControl ,\ - XkbTranslateKey ,\ - XkbTranslateKeyCode ,\ - XkbTranslateKeySym ,\ - XkbUpdateActionVirtualMods ,\ - XkbUpdateKeyTypeVirtualMods ,\ - XkbUpdateMapFromCore ,\ - XkbUseExtension ,\ - XkbVirtualModsToReal ,\ - XkbXlibControlsImplemented ,\ - XmbDrawImageString ,\ - XmbDrawString ,\ - XmbDrawText ,\ - XmbLookupString ,\ - XmbResetIC ,\ - XmbSetWMProperties ,\ - XmbTextEscapement ,\ - XmbTextExtents ,\ - XmbTextListToTextProperty ,\ - XmbTextPerCharExtents ,\ - XmbTextPropertyToTextList ,\ - Xpermalloc ,\ - XrmCombineDatabase ,\ - XrmCombineFileDatabase ,\ - XrmDestroyDatabase ,\ - XrmEnumerateDatabase ,\ - XrmGetDatabase ,\ - XrmGetFileDatabase ,\ - XrmGetResource ,\ - XrmGetStringDatabase ,\ - XrmInitialize ,\ - XrmLocaleOfDatabase ,\ - XrmMergeDatabases ,\ - XrmParseCommand ,\ - XrmPermStringToQuark ,\ - XrmPutFileDatabase ,\ - XrmPutLineResource ,\ - XrmPutResource ,\ - XrmPutStringResource ,\ - XrmQGetResource ,\ - XrmQGetSearchList ,\ - XrmQGetSearchResource ,\ - XrmQPutResource ,\ - XrmQPutStringResource ,\ - XrmQuarkToString ,\ - XrmSetDatabase ,\ - XrmStringToBindingQuarkList ,\ - XrmStringToQuark ,\ - XrmStringToQuarkList ,\ - XrmUniqueQuark ,\ - Xutf8DrawImageString ,\ - Xutf8DrawString ,\ - Xutf8DrawText ,\ - Xutf8LookupString ,\ - Xutf8ResetIC ,\ - Xutf8SetWMProperties ,\ - Xutf8TextEscapement ,\ - Xutf8TextExtents ,\ - Xutf8TextListToTextProperty ,\ - Xutf8TextPerCharExtents ,\ - Xutf8TextPropertyToTextList ,\ - XwcDrawImageString ,\ - XwcDrawString ,\ - XwcDrawText ,\ - XwcFreeStringList ,\ - XwcLookupString ,\ - XwcResetIC ,\ - XwcTextEscapement ,\ - XwcTextExtents ,\ - XwcTextListToTextProperty ,\ - XwcTextPerCharExtents ,\ - XwcTextPropertyToTextList DELETED freshlib/imports/Linux/_libXft.inc Index: freshlib/imports/Linux/_libXft.inc ================================================================== --- freshlib/imports/Linux/_libXft.inc +++ /dev/null @@ -1,77 +0,0 @@ -XftCharExists -XftCharFontSpecRender -XftCharIndex -XftCharSpecRender -XftColorAllocName -XftColorAllocValue -XftColorFree -XftDefaultHasRender -XftDefaultSet -XftDefaultSubstitute -XftDrawChange -XftDrawCharFontSpec -XftDrawCharSpec -XftDrawColormap -XftDrawCreate -XftDrawCreateAlpha -XftDrawCreateBitmap -XftDrawDestroy -XftDrawDisplay -XftDrawDrawable -XftDrawGlyphFontSpec -XftDrawGlyphSpec -XftDrawGlyphs -XftDrawPicture -XftDrawRect -XftDrawSetClip -XftDrawSetClipRectangles -XftDrawSetSubwindowMode -XftDrawSrcPicture -XftDrawString16 -XftDrawString32 -XftDrawString8 -XftDrawStringUtf16 -XftDrawStringUtf8 -XftDrawVisual -XftFontCheckGlyph -XftFontClose -XftFontCopy -XftFontInfoCreate -XftFontInfoDestroy -XftFontInfoEqual -XftFontInfoHash -XftFontLoadGlyphs -XftFontMatch -XftFontOpen -XftFontOpenInfo -XftFontOpenName -XftFontOpenPattern -XftFontOpenXlfd -XftFontUnloadGlyphs -XftGetVersion -XftGlyphExtents -XftGlyphFontSpecRender -XftGlyphRender -XftGlyphSpecRender -XftInit -XftInitFtLibrary -XftListFonts -XftLockFace -XftNameParse -XftNameUnparse -XftTextExtents16 -XftTextExtents32 -XftTextExtents8 -XftTextExtentsUtf16 -XftTextExtentsUtf8 -XftTextRender16 -XftTextRender16BE -XftTextRender16LE -XftTextRender32 -XftTextRender32BE -XftTextRender32LE -XftTextRender8 -XftTextRenderUtf16 -XftTextRenderUtf8 -XftUnlockFace -XftXlfdParse DELETED freshlib/imports/Linux/allimports.asm Index: freshlib/imports/Linux/allimports.asm ================================================================== --- freshlib/imports/Linux/allimports.asm +++ /dev/null @@ -1,805 +0,0 @@ -_importdata: - -interpreter '/lib/ld-linux.so.2' -needed 'libc.so.6' -needed 'libX11.so.6' -needed 'libXft.so.2' - -import \ -\; libX11 - XActivateScreenSaver ,\ - XAddConnectionWatch ,\ - XAddExtension ,\ - XAddHost ,\ - XAddHosts ,\ - XAddPixel ,\ - XAddToExtensionList ,\ - XAddToSaveSet ,\ - XAllPlanes ,\ - XAllocClassHint ,\ - XAllocColor ,\ - XAllocColorCells ,\ - XAllocColorPlanes ,\ - XAllocIconSize ,\ - XAllocNamedColor ,\ - XAllocSizeHints ,\ - XAllocStandardColormap ,\ - XAllocWMHints ,\ - XAllowEvents ,\ - XAutoRepeatOff ,\ - XAutoRepeatOn ,\ - XBaseFontNameListOfFontSet ,\ - XBell ,\ - XBitmapBitOrder ,\ - XBitmapPad ,\ - XBitmapUnit ,\ - XBlackPixel ,\ - XBlackPixelOfScreen ,\ - XCellsOfScreen ,\ - XChangeActivePointerGrab ,\ - XChangeGC ,\ - XChangeKeyboardControl ,\ - XChangeKeyboardMapping ,\ - XChangePointerControl ,\ - XChangeProperty ,\ - XChangeSaveSet ,\ - XChangeWindowAttributes ,\ - XCheckIfEvent ,\ - XCheckMaskEvent ,\ - XCheckTypedEvent ,\ - XCheckTypedWindowEvent ,\ - XCheckWindowEvent ,\ - XCirculateSubwindows ,\ - XCirculateSubwindowsDown ,\ - XCirculateSubwindowsUp ,\ - XClearArea ,\ - XClearWindow ,\ - XClipBox ,\ - XCloseDisplay ,\ - XCloseIM ,\ - XCloseOM ,\ - XConfigureWindow ,\ - XConnectionNumber ,\ - XContextDependentDrawing ,\ - XContextualDrawing ,\ - XConvertCase ,\ - XConvertSelection ,\ - XCopyArea ,\ - XCopyColormapAndFree ,\ - XCopyGC ,\ - XCopyPlane ,\ - XCreateBitmapFromData ,\ - XCreateColormap ,\ - XCreateFontCursor ,\ - XCreateFontSet ,\ - XCreateGC ,\ - XCreateGlyphCursor ,\ - XCreateIC ,\ - XCreateImage ,\ - XCreateOC ,\ - XCreatePixmap ,\ - XCreatePixmapCursor ,\ - XCreatePixmapFromBitmapData ,\ - XCreateRegion ,\ - XCreateSimpleWindow ,\ - XCreateWindow ,\ - XDefaultColormap ,\ - XDefaultColormapOfScreen ,\ - XDefaultDepth ,\ - XDefaultDepthOfScreen ,\ - XDefaultGC ,\ - XDefaultGCOfScreen ,\ - XDefaultRootWindow ,\ - XDefaultScreen ,\ - XDefaultScreenOfDisplay ,\ - XDefaultString ,\ - XDefaultVisual ,\ - XDefaultVisualOfScreen ,\ - XDefineCursor ,\ - XDeleteContext ,\ - XDeleteModifiermapEntry ,\ - XDeleteProperty ,\ - XDestroyIC ,\ - XDestroyImage ,\ - XDestroyOC ,\ - XDestroyRegion ,\ - XDestroySubwindows ,\ - XDestroyWindow ,\ - XDirectionalDependentDrawing ,\ - XDisableAccessControl ,\ - XDisplayCells ,\ - XDisplayHeight ,\ - XDisplayHeightMM ,\ - XDisplayKeycodes ,\ - XDisplayMotionBufferSize ,\ - XDisplayName ,\ - XDisplayOfIM ,\ - XDisplayOfOM ,\ - XDisplayOfScreen ,\ - XDisplayPlanes ,\ - XDisplayString ,\ - XDisplayWidth ,\ - XDisplayWidthMM ,\ - XDoesBackingStore ,\ - XDoesSaveUnders ,\ - XDrawArc ,\ - XDrawArcs ,\ - XDrawImageString ,\ - XDrawImageString16 ,\ - XDrawLine ,\ - XDrawLines ,\ - XDrawPoint ,\ - XDrawPoints ,\ - XDrawRectangle ,\ - XDrawRectangles ,\ - XDrawSegments ,\ - XDrawString ,\ - XDrawString16 ,\ - XDrawText ,\ - XDrawText16 ,\ - XEHeadOfExtensionList ,\ - XESetBeforeFlush ,\ - XESetCloseDisplay ,\ - XESetCopyGC ,\ - XESetCreateFont ,\ - XESetCreateGC ,\ - XESetError ,\ - XESetErrorString ,\ - XESetEventToWire ,\ - XESetFlushGC ,\ - XESetFreeFont ,\ - XESetFreeGC ,\ - XESetPrintErrorValues ,\ - XESetWireToError ,\ - XESetWireToEvent ,\ - XEmptyRegion ,\ - XEnableAccessControl ,\ - XEqualRegion ,\ - XEventMaskOfScreen ,\ - XEventsQueued ,\ - XExtendedMaxRequestSize ,\ - XExtentsOfFontSet ,\ - XFetchBuffer ,\ - XFetchBytes ,\ - XFetchName ,\ - XFillArc ,\ - XFillArcs ,\ - XFillPolygon ,\ - XFillRectangle ,\ - XFillRectangles ,\ - XFilterEvent ,\ - XFindContext ,\ - XFindOnExtensionList ,\ - XFlush ,\ - XFlushGC ,\ - XFontsOfFontSet ,\ - XForceScreenSaver ,\ - XFree ,\ - XFreeColormap ,\ - XFreeColors ,\ - XFreeCursor ,\ - XFreeExtensionList ,\ - XFreeFont ,\ - XFreeFontInfo ,\ - XFreeFontNames ,\ - XFreeFontPath ,\ - XFreeFontSet ,\ - XFreeGC ,\ - XFreeModifiermap ,\ - XFreePixmap ,\ - XFreeStringList ,\ - XGContextFromGC ,\ - XGeometry ,\ - XGetAtomName ,\ - XGetAtomNames ,\ - XGetClassHint ,\ - XGetCommand ,\ - XGetDefault ,\ - XGetErrorDatabaseText ,\ - XGetErrorText ,\ - XGetFontPath ,\ - XGetFontProperty ,\ - XGetGCValues ,\ - XGetGeometry ,\ - XGetICValues ,\ - XGetIMValues ,\ - XGetIconName ,\ - XGetIconSizes ,\ - XGetImage ,\ - XGetInputFocus ,\ - XGetKeyboardControl ,\ - XGetKeyboardMapping ,\ - XGetModifierMapping ,\ - XGetMotionEvents ,\ - XGetNormalHints ,\ - XGetOCValues ,\ - XGetOMValues ,\ - XGetPixel ,\ - XGetPointerControl ,\ - XGetPointerMapping ,\ - XGetRGBColormaps ,\ - XGetScreenSaver ,\ - XGetSelectionOwner ,\ - XGetSizeHints ,\ - XGetStandardColormap ,\ - XGetSubImage ,\ - XGetTextProperty ,\ - XGetTransientForHint ,\ - XGetVisualInfo ,\ - XGetWMClientMachine ,\ - XGetWMColormapWindows ,\ - XGetWMHints ,\ - XGetWMIconName ,\ - XGetWMName ,\ - XGetWMNormalHints ,\ - XGetWMProtocols ,\ - XGetWMSizeHints ,\ - XGetWindowAttributes ,\ - XGetWindowProperty ,\ - XGetZoomHints ,\ - XGrabButton ,\ - XGrabKey ,\ - XGrabKeyboard ,\ - XGrabPointer ,\ - XGrabServer ,\ - XHeightMMOfScreen ,\ - XHeightOfScreen ,\ - XIMOfIC ,\ - XIconifyWindow ,\ - XIfEvent ,\ - XImageByteOrder ,\ - XInitExtension ,\ - XInitImage ,\ - XInitThreads ,\ - XInsertModifiermapEntry ,\ - XInstallColormap ,\ - XInternAtom ,\ - XInternAtoms ,\ - XInternalConnectionNumbers ,\ - XIntersectRegion ,\ - XKeycodeToKeysym ,\ - XKeysymToKeycode ,\ - XKeysymToString ,\ - XKillClient ,\ - XLastKnownRequestProcessed ,\ - XListDepths ,\ - XListExtensions ,\ - XListFonts ,\ - XListFontsWithInfo ,\ - XListHosts ,\ - XListInstalledColormaps ,\ - XListPixmapFormats ,\ - XListProperties ,\ - XLoadFont ,\ - XLoadQueryFont ,\ - XLocaleOfFontSet ,\ - XLocaleOfIM ,\ - XLocaleOfOM ,\ - XLockDisplay ,\ - XLookupColor ,\ - XLookupKeysym ,\ - XLookupString ,\ - XLowerWindow ,\ - XMapRaised ,\ - XMapSubwindows ,\ - XMapWindow ,\ - XMaskEvent ,\ - XMatchVisualInfo ,\ - XMaxCmapsOfScreen ,\ - XMaxRequestSize ,\ - XMinCmapsOfScreen ,\ - XMoveResizeWindow ,\ - XMoveWindow ,\ - XNewModifiermap ,\ - XNextEvent ,\ - XNextRequest ,\ - XNoOp ,\ - XOMOfOC ,\ - XOffsetRegion ,\ - XOpenDisplay ,\ - XOpenIM ,\ - XOpenOM ,\ - XParseColor ,\ - XParseGeometry ,\ - XPeekEvent ,\ - XPeekIfEvent ,\ - XPending ,\ - XPlanesOfScreen ,\ - XPointInRegion ,\ - XPolygonRegion ,\ - XProcessInternalConnection ,\ - XProtocolRevision ,\ - XProtocolVersion ,\ - XPutBackEvent ,\ - XPutImage ,\ - XPutPixel ,\ - XQLength ,\ - XQueryBestCursor ,\ - XQueryBestSize ,\ - XQueryBestStipple ,\ - XQueryBestTile ,\ - XQueryColor ,\ - XQueryColors ,\ - XQueryExtension ,\ - XQueryFont ,\ - XQueryKeymap ,\ - XQueryPointer ,\ - XQueryTextExtents ,\ - XQueryTextExtents16 ,\ - XQueryTree ,\ - XRaiseWindow ,\ - XReadBitmapFile ,\ - XReadBitmapFileData ,\ - XRebindKeysym ,\ - XRecolorCursor ,\ - XReconfigureWMWindow ,\ - XRectInRegion ,\ - XRefreshKeyboardMapping ,\ - XRegisterIMInstantiateCallback ,\ - XRemoveConnectionWatch ,\ - XRemoveFromSaveSet ,\ - XRemoveHost ,\ - XRemoveHosts ,\ - XReparentWindow ,\ - XResetScreenSaver ,\ - XResizeWindow ,\ - XResourceManagerString ,\ - XRestackWindows ,\ - XRootWindow ,\ - XRootWindowOfScreen ,\ - XRotateBuffers ,\ - XRotateWindowProperties ,\ - XSaveContext ,\ - XScreenCount ,\ - XScreenNumberOfScreen ,\ - XScreenOfDisplay ,\ - XScreenResourceString ,\ - XSelectInput ,\ - XSendEvent ,\ - XServerVendor ,\ - XSetAccessControl ,\ - XSetAfterFunction ,\ - XSetArcMode ,\ - XSetAuthorization ,\ - XSetBackground ,\ - XSetClassHint ,\ - XSetClipMask ,\ - XSetClipOrigin ,\ - XSetClipRectangles ,\ - XSetCloseDownMode ,\ - XSetCommand ,\ - XSetDashes ,\ - XSetErrorHandler ,\ - XSetFillRule ,\ - XSetFillStyle ,\ - XSetFont ,\ - XSetFontPath ,\ - XSetForeground ,\ - XSetFunction ,\ - XSetGraphicsExposures ,\ - XSetICFocus ,\ - XSetICValues ,\ - XSetIMValues ,\ - XSetIOErrorHandler ,\ - XSetIconName ,\ - XSetIconSizes ,\ - XSetInputFocus ,\ - XSetLineAttributes ,\ - XSetLocaleModifiers ,\ - XSetModifierMapping ,\ - XSetNormalHints ,\ - XSetOCValues ,\ - XSetOMValues ,\ - XSetPlaneMask ,\ - XSetPointerMapping ,\ - XSetRGBColormaps ,\ - XSetRegion ,\ - XSetScreenSaver ,\ - XSetSelectionOwner ,\ - XSetSizeHints ,\ - XSetStandardColormap ,\ - XSetStandardProperties ,\ - XSetState ,\ - XSetStipple ,\ - XSetSubwindowMode ,\ - XSetTSOrigin ,\ - XSetTextProperty ,\ - XSetTile ,\ - XSetTransientForHint ,\ - XSetWMClientMachine ,\ - XSetWMColormapWindows ,\ - XSetWMHints ,\ - XSetWMIconName ,\ - XSetWMName ,\ - XSetWMNormalHints ,\ - XSetWMProperties ,\ - XSetWMProtocols ,\ - XSetWMSizeHints ,\ - XSetWindowBackground ,\ - XSetWindowBackgroundPixmap ,\ - XSetWindowBorder ,\ - XSetWindowBorderPixmap ,\ - XSetWindowBorderWidth ,\ - XSetWindowColormap ,\ - XSetZoomHints ,\ - XShrinkRegion ,\ - XStoreBuffer ,\ - XStoreBytes ,\ - XStoreColor ,\ - XStoreColors ,\ - XStoreName ,\ - XStoreNamedColor ,\ - XStringListToTextProperty ,\ - XStringToKeysym ,\ - XSubImage ,\ - XSubtractRegion ,\ - XSupportsLocale ,\ - XSync ,\ - XSynchronize ,\ - XTextExtents ,\ - XTextExtents16 ,\ - XTextPropertyToStringList ,\ - XTextWidth ,\ - XTextWidth16 ,\ - XTranslateCoordinates ,\ - XUndefineCursor ,\ - XUngrabButton ,\ - XUngrabKey ,\ - XUngrabKeyboard ,\ - XUngrabPointer ,\ - XUngrabServer ,\ - XUninstallColormap ,\ - XUnionRectWithRegion ,\ - XUnionRegion ,\ - XUnloadFont ,\ - XUnlockDisplay ,\ - XUnmapSubwindows ,\ - XUnmapWindow ,\ - XUnregisterIMInstantiateCallback ,\ - XUnsetICFocus ,\ - XVaCreateNestedList ,\ - XVendorRelease ,\ - XVisualIDFromVisual ,\ - XWMGeometry ,\ - XWarpPointer ,\ - XWhitePixel ,\ - XWhitePixelOfScreen ,\ - XWidthMMOfScreen ,\ - XWidthOfScreen ,\ - XWindowEvent ,\ - XWithdrawWindow ,\ - XWriteBitmapFile ,\ - XXorRegion ,\ - XcmsAddColorSpace ,\ - XcmsAddFunctionSet ,\ - XcmsAllocColor ,\ - XcmsAllocNamedColor ,\ - XcmsCCCOfColormap ,\ - XcmsCIELabClipL ,\ - XcmsCIELabClipLab ,\ - XcmsCIELabClipab ,\ - XcmsCIELabColorSpace ,\ - XcmsCIELabQueryMaxC ,\ - XcmsCIELabQueryMaxL ,\ - XcmsCIELabQueryMaxLC ,\ - XcmsCIELabQueryMinL ,\ - XcmsCIELabToCIEXYZ ,\ - XcmsCIELabWhiteShiftColors ,\ - XcmsCIELuvClipL ,\ - XcmsCIELuvClipLuv ,\ - XcmsCIELuvClipuv ,\ - XcmsCIELuvColorSpace ,\ - XcmsCIELuvQueryMaxC ,\ - XcmsCIELuvQueryMaxL ,\ - XcmsCIELuvQueryMaxLC ,\ - XcmsCIELuvQueryMinL ,\ - XcmsCIELuvToCIEuvY ,\ - XcmsCIELuvWhiteShiftColors ,\ - XcmsCIEXYZColorSpace ,\ - XcmsCIEXYZToCIELab ,\ - XcmsCIEXYZToCIEuvY ,\ - XcmsCIEXYZToCIExyY ,\ - XcmsCIEXYZToRGBi ,\ - XcmsCIEuvYColorSpace ,\ - XcmsCIEuvYToCIELuv ,\ - XcmsCIEuvYToCIEXYZ ,\ - XcmsCIEuvYToTekHVC ,\ - XcmsCIExyYColorSpace ,\ - XcmsCIExyYToCIEXYZ ,\ - XcmsClientWhitePointOfCCC ,\ - XcmsConvertColors ,\ - XcmsCreateCCC ,\ - XcmsDefaultCCC ,\ - XcmsDisplayOfCCC ,\ - XcmsFormatOfPrefix ,\ - XcmsFreeCCC ,\ - XcmsLinearRGBFunctionSet ,\ - XcmsLookupColor ,\ - XcmsPrefixOfFormat ,\ - XcmsQueryBlack ,\ - XcmsQueryBlue ,\ - XcmsQueryColor ,\ - XcmsQueryColors ,\ - XcmsQueryGreen ,\ - XcmsQueryRed ,\ - XcmsQueryWhite ,\ - XcmsRGBColorSpace ,\ - XcmsRGBToRGBi ,\ - XcmsRGBiColorSpace ,\ - XcmsRGBiToCIEXYZ ,\ - XcmsRGBiToRGB ,\ - XcmsScreenNumberOfCCC ,\ - XcmsScreenWhitePointOfCCC ,\ - XcmsSetCCCOfColormap ,\ - XcmsSetCompressionProc ,\ - XcmsSetWhiteAdjustProc ,\ - XcmsSetWhitePoint ,\ - XcmsStoreColor ,\ - XcmsStoreColors ,\ - XcmsTekHVCClipC ,\ - XcmsTekHVCClipV ,\ - XcmsTekHVCClipVC ,\ - XcmsTekHVCColorSpace ,\ - XcmsTekHVCQueryMaxC ,\ - XcmsTekHVCQueryMaxV ,\ - XcmsTekHVCQueryMaxVC ,\ - XcmsTekHVCQueryMaxVSamples ,\ - XcmsTekHVCQueryMinV ,\ - XcmsTekHVCToCIEuvY ,\ - XcmsTekHVCWhiteShiftColors ,\ - XcmsUNDEFINEDColorSpace ,\ - XcmsVisualOfCCC ,\ - XkbAddDeviceLedInfo ,\ - XkbAddGeomColor ,\ - XkbAddGeomDoodad ,\ - XkbAddGeomKey ,\ - XkbAddGeomKeyAlias ,\ - XkbAddGeomOutline ,\ - XkbAddGeomOverlay ,\ - XkbAddGeomOverlayKey ,\ - XkbAddGeomOverlayRow ,\ - XkbAddGeomProperty ,\ - XkbAddGeomRow ,\ - XkbAddGeomSection ,\ - XkbAddGeomShape ,\ - XkbAddKeyType ,\ - XkbAllocClientMap ,\ - XkbAllocCompatMap ,\ - XkbAllocControls ,\ - XkbAllocDeviceInfo ,\ - XkbAllocGeomColors ,\ - XkbAllocGeomDoodads ,\ - XkbAllocGeomKeyAliases ,\ - XkbAllocGeomKeys ,\ - XkbAllocGeomOutlines ,\ - XkbAllocGeomOverlayKeys ,\ - XkbAllocGeomOverlayRows ,\ - XkbAllocGeomOverlays ,\ - XkbAllocGeomPoints ,\ - XkbAllocGeomProps ,\ - XkbAllocGeomRows ,\ - XkbAllocGeomSectionDoodads ,\ - XkbAllocGeomSections ,\ - XkbAllocGeomShapes ,\ - XkbAllocGeometry ,\ - XkbAllocIndicatorMaps ,\ - XkbAllocKeyboard ,\ - XkbAllocNames ,\ - XkbAllocServerMap ,\ - XkbApplyCompatMapToKey ,\ - XkbApplyVirtualModChanges ,\ - XkbBell ,\ - XkbBellEvent ,\ - XkbChangeDeviceInfo ,\ - XkbChangeEnabledControls ,\ - XkbChangeKeycodeRange ,\ - XkbChangeMap ,\ - XkbChangeNames ,\ - XkbChangeTypesOfKey ,\ - XkbComputeEffectiveMap ,\ - XkbComputeRowBounds ,\ - XkbComputeSectionBounds ,\ - XkbComputeShapeBounds ,\ - XkbComputeShapeTop ,\ - XkbCopyKeyType ,\ - XkbCopyKeyTypes ,\ - XkbDeviceBell ,\ - XkbDeviceBellEvent ,\ - XkbFindOverlayForKey ,\ - XkbForceBell ,\ - XkbForceDeviceBell ,\ - XkbFreeClientMap ,\ - XkbFreeCompatMap ,\ - XkbFreeComponentList ,\ - XkbFreeControls ,\ - XkbFreeDeviceInfo ,\ - XkbFreeGeomColors ,\ - XkbFreeGeomDoodads ,\ - XkbFreeGeomKeyAliases ,\ - XkbFreeGeomKeys ,\ - XkbFreeGeomOutlines ,\ - XkbFreeGeomOverlayKeys ,\ - XkbFreeGeomOverlayRows ,\ - XkbFreeGeomOverlays ,\ - XkbFreeGeomPoints ,\ - XkbFreeGeomProperties ,\ - XkbFreeGeomRows ,\ - XkbFreeGeomSections ,\ - XkbFreeGeomShapes ,\ - XkbFreeGeometry ,\ - XkbFreeIndicatorMaps ,\ - XkbFreeKeyboard ,\ - XkbFreeNames ,\ - XkbFreeServerMap ,\ - XkbGetAutoRepeatRate ,\ - XkbGetAutoResetControls ,\ - XkbGetCompatMap ,\ - XkbGetControls ,\ - XkbGetDetectableAutoRepeat ,\ - XkbGetDeviceButtonActions ,\ - XkbGetDeviceInfo ,\ - XkbGetDeviceInfoChanges ,\ - XkbGetDeviceLedInfo ,\ - XkbGetGeometry ,\ - XkbGetIndicatorMap ,\ - XkbGetIndicatorState ,\ - XkbGetKeyActions ,\ - XkbGetKeyBehaviors ,\ - XkbGetKeyExplicitComponents ,\ - XkbGetKeyModifierMap ,\ - XkbGetKeySyms ,\ - XkbGetKeyTypes ,\ - XkbGetKeyVirtualModMap ,\ - XkbGetKeyboard ,\ - XkbGetKeyboardByName ,\ - XkbGetMap ,\ - XkbGetMapChanges ,\ - XkbGetNamedDeviceIndicator ,\ - XkbGetNamedGeometry ,\ - XkbGetNamedIndicator ,\ - XkbGetNames ,\ - XkbGetPerClientControls ,\ - XkbGetState ,\ - XkbGetUpdatedMap ,\ - XkbGetVirtualMods ,\ - XkbGetXlibControls ,\ - XkbIgnoreExtension ,\ - XkbInitCanonicalKeyTypes ,\ - XkbKeyTypesForCoreSymbols ,\ - XkbKeycodeToKeysym ,\ - XkbKeysymToModifiers ,\ - XkbLatchGroup ,\ - XkbLatchModifiers ,\ - XkbLibraryVersion ,\ - XkbListComponents ,\ - XkbLockGroup ,\ - XkbLockModifiers ,\ - XkbLookupKeyBinding ,\ - XkbLookupKeySym ,\ - XkbNoteControlsChanges ,\ - XkbNoteDeviceChanges ,\ - XkbNoteMapChanges ,\ - XkbNoteNameChanges ,\ - XkbOpenDisplay ,\ - XkbQueryExtension ,\ - XkbRefreshKeyboardMapping ,\ - XkbResizeDeviceButtonActions ,\ - XkbResizeKeyActions ,\ - XkbResizeKeySyms ,\ - XkbResizeKeyType ,\ - XkbSelectEventDetails ,\ - XkbSelectEvents ,\ - XkbSetAtomFuncs ,\ - XkbSetAutoRepeatRate ,\ - XkbSetAutoResetControls ,\ - XkbSetCompatMap ,\ - XkbSetControls ,\ - XkbSetDebuggingFlags ,\ - XkbSetDetectableAutoRepeat ,\ - XkbSetDeviceButtonActions ,\ - XkbSetDeviceInfo ,\ - XkbSetDeviceLedInfo ,\ - XkbSetGeometry ,\ - XkbSetIgnoreLockMods ,\ - XkbSetIndicatorMap ,\ - XkbSetMap ,\ - XkbSetNamedDeviceIndicator ,\ - XkbSetNamedIndicator ,\ - XkbSetNames ,\ - XkbSetPerClientControls ,\ - XkbSetServerInternalMods ,\ - XkbSetXlibControls ,\ - XkbToControl ,\ - XkbTranslateKey ,\ - XkbTranslateKeyCode ,\ - XkbTranslateKeySym ,\ - XkbUpdateActionVirtualMods ,\ - XkbUpdateKeyTypeVirtualMods ,\ - XkbUpdateMapFromCore ,\ - XkbUseExtension ,\ - XkbVirtualModsToReal ,\ - XkbXlibControlsImplemented ,\ - XmbDrawImageString ,\ - XmbDrawString ,\ - XmbDrawText ,\ - XmbLookupString ,\ - XmbResetIC ,\ - XmbSetWMProperties ,\ - XmbTextEscapement ,\ - XmbTextExtents ,\ - XmbTextListToTextProperty ,\ - XmbTextPerCharExtents ,\ - XmbTextPropertyToTextList ,\ - Xpermalloc ,\ - XrmCombineDatabase ,\ - XrmCombineFileDatabase ,\ - XrmDestroyDatabase ,\ - XrmEnumerateDatabase ,\ - XrmGetDatabase ,\ - XrmGetFileDatabase ,\ - XrmGetResource ,\ - XrmGetStringDatabase ,\ - XrmInitialize ,\ - XrmLocaleOfDatabase ,\ - XrmMergeDatabases ,\ - XrmParseCommand ,\ - XrmPermStringToQuark ,\ - XrmPutFileDatabase ,\ - XrmPutLineResource ,\ - XrmPutResource ,\ - XrmPutStringResource ,\ - XrmQGetResource ,\ - XrmQGetSearchList ,\ - XrmQGetSearchResource ,\ - XrmQPutResource ,\ - XrmQPutStringResource ,\ - XrmQuarkToString ,\ - XrmSetDatabase ,\ - XrmStringToBindingQuarkList ,\ - XrmStringToQuark ,\ - XrmStringToQuarkList ,\ - XrmUniqueQuark ,\ - Xutf8DrawImageString ,\ - Xutf8DrawString ,\ - Xutf8DrawText ,\ - Xutf8LookupString ,\ - Xutf8ResetIC ,\ - Xutf8SetWMProperties ,\ - Xutf8TextEscapement ,\ - Xutf8TextExtents ,\ - Xutf8TextListToTextProperty ,\ - Xutf8TextPerCharExtents ,\ - Xutf8TextPropertyToTextList ,\ - XwcDrawImageString ,\ - XwcDrawString ,\ - XwcDrawText ,\ - XwcFreeStringList ,\ - XwcLookupString ,\ - XwcResetIC ,\ - XwcTextEscapement ,\ - XwcTextExtents ,\ - XwcTextListToTextProperty ,\ - XwcTextPerCharExtents ,\ - XwcTextPropertyToTextList ,\ - XUniqueContext ,\ -\; LibC - puts ,\ - exit ,\ - malloc ,\ - free ,\ - realloc ,\ - stime ,\ -\; Xft library - XftDrawString8 ,\ - XftTextExtents8 ,\ - XftFontOpenName ,\ - XftDrawSetClip ,\ - XftDrawDestroy ,\ - XftDrawCreate ,\ - XftFontOpenXlfd ,\ - XftFontOpenPattern - - - - -DispSize 'ELF Import data:', $-_importdata ADDED freshlib/imports/Linux/libFC.inc Index: freshlib/imports/Linux/libFC.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libFC.inc @@ -0,0 +1,33 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: FontConfig import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + +import_proto 'libfontconfig.so.1', \ + FcInit, <VOID>, 'FcInit', \ + FcFini, <VOID>, 'FcFini', \ + FcInitLoadConfigAndFonts, <VOID>, 'FcInitLoadConfigAndFonts', \ + FcPatternCreate, <VOID>, 'FcPatternCreate', \ + FcObjectSetBuild, <.first, ...>, 'FcObjectSetBuild', \ + FcObjectSetDestroy, <.pObjectSet>, 'FcObjectSetDestroy', \ + FcFontList, <.config, .pPattern, .ObjSet>, 'FcFontList', \ + FcPatternGetString, <.pPattern, .obj, .n, .pBuffer>, 'FcPatternGetString', \ + FcPatternGetInteger, <.pPattern, .obj, .n, .pInt>, 'FcPatternGetInteger', \ + FcFontSetDestroy, <.pFontSet>, 'FcFontSetDestroy', \ + FcNameParse, <.name>, 'FcNameParse', \ + FcConfigSubstitute, <.config, .pattern, .matchkind>, 'FcConfigSubstitute', \ + FcDefaultSubstitute, <.pattern>, 'FcDefaultSubstitute', \ + FcFontMatch, <.config, .pattern, .pResult>, 'FcFontMatch', \ + FcPatternDestroy, <.pattern>, 'FcPatternDestroy', \ + FcPatternPrint, <.pattern>, 'FcPatternPrint' ADDED freshlib/imports/Linux/libFT.inc Index: freshlib/imports/Linux/libFT.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libFT.inc @@ -0,0 +1,45 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: MIT_SHM extension import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto 'libfreetype.so.6', \ + FT_Init_FreeType, <.pLibrary>, 'FT_Init_FreeType', \ + FT_New_Face, <.library, .filename, .idxFace, .pFace>, 'FT_New_Face', \ + FT_Set_Char_Size, <.pFace, .width, .height, .hRes, .vRes>, 'FT_Set_Char_Size', \ + FT_Set_Pixel_Sizes, <.pFace, .pxWidth, .pxHeight>, 'FT_Set_Pixel_Sizes', \ + FT_Request_Size, <.pFace, .pReq>, 'FT_Request_Size', \ + FT_Select_Size, <.pFace, .i>, 'FT_Select_Size', \ + FT_Get_Char_Index, <.pFace, .char>, 'FT_Get_Char_Index', \ + FT_Load_Glyph, <.pFace, .idxGlyph, .flags>, 'FT_Load_Glyph', \ + FT_Render_Glyph, <.pSlot, .RenderMode>, 'FT_Render_Glyph', \ + FT_Done_Face, <.pFace>, 'FT_Done_Face', \ + FT_Glyph_To_Bitmap, <.pGlyph, .render_mode, .pOrigin, .destroy>, 'FT_Glyph_To_Bitmap', \ + FT_Get_Kerning, <.face, .left_glyph, .right_glyph, .kern_mode, .pKerning>, 'FT_Get_Kerning', \ + FT_Get_Advance, <.face, .gindex, .load_flags, .pAdvance>, 'FT_Get_Advance', \ + FTC_Manager_New, <.library, .max_faces, .max_sizes, \ + .max_bytes, .requester, .req_data, .pManager>, 'FTC_Manager_New', \ + FTC_Manager_LookupFace, <.manager, .face_id, .pFace>, 'FTC_Manager_LookupFace', \ + FTC_Manager_LookupSize, <.manager, .scaler, .pSize>, 'FTC_Manager_LookupSize', \ + FTC_Manager_RemoveFaceID, <.manager, .face_id>, 'FTC_Manager_RemoveFaceID', \ + FTC_ImageCache_New, <.manager, .pImageCache>, 'FTC_ImageCache_New', \ + FTC_ImageCache_Lookup, <.cache, .type, .glyph_index, \ + .pGlyph, .pNode>, 'FTC_ImageCache_Lookup', \ + FTC_ImageCache_LookupScaler, <.cache, .scaler, .load_flags, \ + .gindex, .pGlyph, .pNode>, 'FTC_ImageCache_LookupScaler', \ + FTC_CMapCache_New, <.manager, .pCMapCache>, 'FTC_CMapCache_New', \ + FTC_CMapCache_Lookup, <.cache, .face_id, .cmap_index, .char_code>, 'FTC_CMapCache_Lookup' + + + + ADDED freshlib/imports/Linux/libX11.inc Index: freshlib/imports/Linux/libX11.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libX11.inc @@ -0,0 +1,795 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: libX11 (XLib) import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Needs editing of the function arguments +;_________________________________________________________________________________________ + + +import_proto 'libX11.so', \ + XActivateScreenSaver ,<NONE>, 'XActivateScreenSaver', \ + XAddConnectionWatch ,<NONE>, 'XAddConnectionWatch', \ + XAddExtension ,<NONE>, 'XAddExtension', \ + XAddHost ,<NONE>, 'XAddHost', \ + XAddHosts ,<NONE>, 'XAddHosts', \ + XAddPixel ,<NONE>, 'XAddPixel', \ + XAddToExtensionList ,<NONE>, 'XAddToExtensionList', \ + XAddToSaveSet ,<NONE>, 'XAddToSaveSet', \ + XAllPlanes ,<NONE>, 'XAllPlanes', \ + XAllocClassHint ,<NONE>, 'XAllocClassHint', \ + XAllocColor ,<NONE>, 'XAllocColor', \ + XAllocColorCells ,<NONE>, 'XAllocColorCells', \ + XAllocColorPlanes ,<NONE>, 'XAllocColorPlanes', \ + XAllocIconSize ,<NONE>, 'XAllocIconSize', \ + XAllocNamedColor ,<NONE>, 'XAllocNamedColor', \ + XAllocSizeHints ,<NONE>, 'XAllocSizeHints', \ + XAllocStandardColormap ,<NONE>, 'XAllocStandardColormap', \ + XAllocWMHints ,<NONE>, 'XAllocWMHints', \ + XAllowEvents ,<NONE>, 'XAllowEvents', \ + XAutoRepeatOff ,<NONE>, 'XAutoRepeatOff', \ + XAutoRepeatOn ,<NONE>, 'XAutoRepeatOn', \ + XBaseFontNameListOfFontSet ,<NONE>, 'XBaseFontNameListOfFontSet', \ + XBell ,<NONE>, 'XBell', \ + XBitmapBitOrder ,<NONE>, 'XBitmapBitOrder', \ + XBitmapPad ,<NONE>, 'XBitmapPad', \ + XBitmapUnit ,<NONE>, 'XBitmapUnit', \ + XBlackPixel ,<NONE>, 'XBlackPixel', \ + XBlackPixelOfScreen ,<NONE>, 'XBlackPixelOfScreen', \ + XCellsOfScreen ,<NONE>, 'XCellsOfScreen', \ + XChangeActivePointerGrab ,<NONE>, 'XChangeActivePointerGrab', \ + XChangeGC ,<NONE>, 'XChangeGC', \ + XChangeKeyboardControl ,<NONE>, 'XChangeKeyboardControl', \ + XChangeKeyboardMapping ,<NONE>, 'XChangeKeyboardMapping', \ + XChangePointerControl ,<NONE>, 'XChangePointerControl', \ + XChangeProperty ,<.display, .wnd, .property, .type, .format, .mode, .pData, .n_elements>, 'XChangeProperty', \ + XChangeSaveSet ,<NONE>, 'XChangeSaveSet', \ + XChangeWindowAttributes ,<.display, .hwnd, .valmask, .pSetWinAttr>, 'XChangeWindowAttributes', \ + XCheckIfEvent ,<.display, .pEvent, .ProcIf, .Param>, 'XCheckIfEvent', \ + XCheckMaskEvent ,<.display, .event_mask, .pEvent>, 'XCheckMaskEvent', \ + XCheckTypedEvent ,<.display, .event_type, .pEvent>, 'XCheckTypedEvent', \ + XCheckTypedWindowEvent ,<NONE>, 'XCheckTypedWindowEvent', \ + XCheckWindowEvent ,<NONE>, 'XCheckWindowEvent', \ + XCirculateSubwindows ,<NONE>, 'XCirculateSubwindows', \ + XCirculateSubwindowsDown ,<NONE>, 'XCirculateSubwindowsDown', \ + XCirculateSubwindowsUp ,<NONE>, 'XCirculateSubwindowsUp', \ + XClearArea ,<.display, .window, .x, .y, .width, .height, .exposures>, 'XClearArea', \ + XClearWindow ,<NONE>, 'XClearWindow', \ + XClipBox ,<NONE>, 'XClipBox', \ + XCloseDisplay ,<NONE>, 'XCloseDisplay', \ + XCloseIM ,<NONE>, 'XCloseIM', \ + XCloseOM ,<NONE>, 'XCloseOM', \ + XConfigureWindow ,<NONE>, 'XConfigureWindow', \ + XConnectionNumber ,<.display>, 'XConnectionNumber', \ + XContextDependentDrawing ,<NONE>, 'XContextDependentDrawing', \ + XContextualDrawing ,<NONE>, 'XContextualDrawing', \ + XConvertCase ,<.keysym, .pLowerRet, .pUpperRet>, 'XConvertCase', \ + XConvertSelection ,<.display, .selection, .target, .property, .requestor, .time>, 'XConvertSelection', \ + XCopyArea ,<.display, .src, .dst, .context, .SrcX, .SrcY, .width, .height, .destX, .destY>, 'XCopyArea', \ + XCopyColormapAndFree ,<NONE>, 'XCopyColormapAndFree', \ + XCopyGC ,<NONE>, 'XCopyGC', \ + XCopyPlane ,<NONE>, 'XCopyPlane', \ + XCreateBitmapFromData ,<NONE>, 'XCreateBitmapFromData', \ + XCreateColormap ,<NONE>, 'XCreateColormap', \ + XCreateFontCursor ,<NONE>, 'XCreateFontCursor', \ + XCreateFontSet ,<NONE>, 'XCreateFontSet', \ + XCreateGC ,<.display, .drawable, .mask, .pValues>, 'XCreateGC', \ + XCreateGlyphCursor ,<NONE>, 'XCreateGlyphCursor', \ + XCreateIC ,<NONE>, 'XCreateIC', \ + XCreateImage ,<NONE>, 'XCreateImage', \ + XCreateOC ,<NONE>, 'XCreateOC', \ + XCreatePixmap ,<.display, .drawable, .width, .height, .depth>, 'XCreatePixmap', \ + XCreatePixmapCursor ,<NONE>, 'XCreatePixmapCursor', \ + XCreatePixmapFromBitmapData ,<NONE>, 'XCreatePixmapFromBitmapData', \ + XCreateRegion ,<NONE>, 'XCreateRegion', \ + XCreateSimpleWindow ,<.display, .parent, .x, .y, .width, .height, .widthBorder, .clBorder, .clBackground>, 'XCreateSimpleWindow', \ + XCreateWindow ,<.display, .parent, .x, .y, .width, .height, .widthBorder, .depth, .class, .visual, .valuemask, .pAttributes>, 'XCreateWindow', \ + XDefaultColormap ,<NONE>, 'XDefaultColormap', \ + XDefaultColormapOfScreen ,<NONE>, 'XDefaultColormapOfScreen', \ + XDefaultDepth ,<NONE>, 'XDefaultDepth', \ + XDefaultDepthOfScreen ,<NONE>, 'XDefaultDepthOfScreen', \ + XDefaultGC ,<NONE>, 'XDefaultGC', \ + XDefaultGCOfScreen ,<NONE>, 'XDefaultGCOfScreen', \ + XDefaultRootWindow ,<NONE>, 'XDefaultRootWindow', \ + XDefaultScreen ,<NONE>, 'XDefaultScreen', \ + XDefaultScreenOfDisplay ,<NONE>, 'XDefaultScreenOfDisplay', \ + XDefaultString ,<NONE>, 'XDefaultString', \ + XDefaultVisual ,<NONE>, 'XDefaultVisual', \ + XDefaultVisualOfScreen ,<NONE>, 'XDefaultVisualOfScreen', \ + XDefineCursor ,<NONE>, 'XDefineCursor', \ + XDeleteContext ,<NONE>, 'XDeleteContext', \ + XDeleteModifiermapEntry ,<NONE>, 'XDeleteModifiermapEntry', \ + XDeleteProperty ,<NONE>, 'XDeleteProperty', \ + XDestroyIC ,<NONE>, 'XDestroyIC', \ + XDestroyImage ,<NONE>, 'XDestroyImage', \ + XDestroyOC ,<NONE>, 'XDestroyOC', \ + XDestroyRegion ,<NONE>, 'XDestroyRegion', \ + XDestroySubwindows ,<NONE>, 'XDestroySubwindows', \ + XDestroyWindow ,<NONE>, 'XDestroyWindow', \ + XDirectionalDependentDrawing ,<NONE>, 'XDirectionalDependentDrawing', \ + XDisableAccessControl ,<NONE>, 'XDisableAccessControl', \ + XDisplayCells ,<NONE>, 'XDisplayCells', \ + XDisplayHeight ,<NONE>, 'XDisplayHeight', \ + XDisplayHeightMM ,<NONE>, 'XDisplayHeightMM', \ + XDisplayKeycodes ,<NONE>, 'XDisplayKeycodes', \ + XDisplayMotionBufferSize ,<NONE>, 'XDisplayMotionBufferSize', \ + XDisplayName ,<NONE>, 'XDisplayName', \ + XDisplayOfIM ,<NONE>, 'XDisplayOfIM', \ + XDisplayOfOM ,<NONE>, 'XDisplayOfOM', \ + XDisplayOfScreen ,<NONE>, 'XDisplayOfScreen', \ + XDisplayPlanes ,<NONE>, 'XDisplayPlanes', \ + XDisplayString ,<NONE>, 'XDisplayString', \ + XDisplayWidth ,<NONE>, 'XDisplayWidth', \ + XDisplayWidthMM ,<NONE>, 'XDisplayWidthMM', \ + XDoesBackingStore ,<NONE>, 'XDoesBackingStore', \ + XDoesSaveUnders ,<NONE>, 'XDoesSaveUnders', \ + XDrawArc ,<NONE>, 'XDrawArc', \ + XDrawArcs ,<NONE>, 'XDrawArcs', \ + XDrawImageString ,<NONE>, 'XDrawImageString', \ + XDrawImageString16 ,<NONE>, 'XDrawImageString16', \ + XDrawLine ,<NONE>, 'XDrawLine', \ + XDrawLines ,<NONE>, 'XDrawLines', \ + XDrawPoint ,<NONE>, 'XDrawPoint', \ + XDrawPoints ,<NONE>, 'XDrawPoints', \ + XDrawRectangle ,<NONE>, 'XDrawRectangle', \ + XDrawRectangles ,<NONE>, 'XDrawRectangles', \ + XDrawSegments ,<NONE>, 'XDrawSegments', \ + XDrawString ,<NONE>, 'XDrawString', \ + XDrawString16 ,<NONE>, 'XDrawString16', \ + XDrawText ,<NONE>, 'XDrawText', \ + XDrawText16 ,<NONE>, 'XDrawText16', \ + XEHeadOfExtensionList ,<NONE>, 'XEHeadOfExtensionList', \ + XESetBeforeFlush ,<NONE>, 'XESetBeforeFlush', \ + XESetCloseDisplay ,<NONE>, 'XESetCloseDisplay', \ + XESetCopyGC ,<NONE>, 'XESetCopyGC', \ + XESetCreateFont ,<NONE>, 'XESetCreateFont', \ + XESetCreateGC ,<NONE>, 'XESetCreateGC', \ + XESetError ,<NONE>, 'XESetError', \ + XESetErrorString ,<NONE>, 'XESetErrorString', \ + XESetEventToWire ,<NONE>, 'XESetEventToWire', \ + XESetFlushGC ,<NONE>, 'XESetFlushGC', \ + XESetFreeFont ,<NONE>, 'XESetFreeFont', \ + XESetFreeGC ,<NONE>, 'XESetFreeGC', \ + XESetPrintErrorValues ,<NONE>, 'XESetPrintErrorValues', \ + XESetWireToError ,<NONE>, 'XESetWireToError', \ + XESetWireToEvent ,<NONE>, 'XESetWireToEvent', \ + XEmptyRegion ,<NONE>, 'XEmptyRegion', \ + XEnableAccessControl ,<NONE>, 'XEnableAccessControl', \ + XEqualRegion ,<NONE>, 'XEqualRegion', \ + XEventMaskOfScreen ,<NONE>, 'XEventMaskOfScreen', \ + XEventsQueued ,<NONE>, 'XEventsQueued', \ + XExtendedMaxRequestSize ,<NONE>, 'XExtendedMaxRequestSize', \ + XExtentsOfFontSet ,<NONE>, 'XExtentsOfFontSet', \ + XFetchBuffer ,<.display, .nbytes_return, .buffer>, 'XFetchBuffer', \ + XFetchBytes ,<.display, .nbytes_return>, 'XFetchBytes', \ + XFetchName ,<.display, .window, .window_name_return>, 'XFetchName', \ + XFillArc ,<NONE>, 'XFillArc', \ + XFillArcs ,<NONE>, 'XFillArcs', \ + XFillPolygon ,<NONE>, 'XFillPolygon', \ + XFillRectangle ,<NONE>, 'XFillRectangle', \ + XFillRectangles ,<NONE>, 'XFillRectangles', \ + XFilterEvent ,<NONE>, 'XFilterEvent', \ + XFindContext ,<NONE>, 'XFindContext', \ + XFindOnExtensionList ,<NONE>, 'XFindOnExtensionList', \ + XFlush ,<.display>, 'XFlush', \ + XFlushGC ,<NONE>, 'XFlushGC', \ + XFontsOfFontSet ,<NONE>, 'XFontsOfFontSet', \ + XForceScreenSaver ,<NONE>, 'XForceScreenSaver', \ + XFree ,<.ptr>, 'XFree', \ + XFreeColormap ,<NONE>, 'XFreeColormap', \ + XFreeColors ,<NONE>, 'XFreeColors', \ + XFreeCursor ,<NONE>, 'XFreeCursor', \ + XFreeExtensionList ,<NONE>, 'XFreeExtensionList', \ + XFreeFont ,<NONE>, 'XFreeFont', \ + XFreeFontInfo ,<NONE>, 'XFreeFontInfo', \ + XFreeFontNames ,<NONE>, 'XFreeFontNames', \ + XFreeFontPath ,<NONE>, 'XFreeFontPath', \ + XFreeFontSet ,<NONE>, 'XFreeFontSet', \ + XFreeGC ,<NONE>, 'XFreeGC', \ + XFreeModifiermap ,<NONE>, 'XFreeModifiermap', \ + XFreePixmap ,<NONE>, 'XFreePixmap', \ + XFreeStringList ,<NONE>, 'XFreeStringList', \ + XGContextFromGC ,<NONE>, 'XGContextFromGC', \ + XGeometry ,<NONE>, 'XGeometry', \ + XGetAtomName ,<NONE>, 'XGetAtomName', \ + XGetAtomNames ,<NONE>, 'XGetAtomNames', \ + XGetClassHint ,<NONE>, 'XGetClassHint', \ + XGetCommand ,<NONE>, 'XGetCommand', \ + XGetDefault ,<NONE>, 'XGetDefault', \ + XGetErrorDatabaseText ,<NONE>, 'XGetErrorDatabaseText', \ + XGetErrorText ,<NONE>, 'XGetErrorText', \ + XGetFontPath ,<NONE>, 'XGetFontPath', \ + XGetFontProperty ,<NONE>, 'XGetFontProperty', \ + XGetGCValues ,<NONE>, 'XGetGCValues', \ + XGetGeometry ,<NONE>, 'XGetGeometry', \ + XGetICValues ,<NONE>, 'XGetICValues', \ + XGetIMValues ,<NONE>, 'XGetIMValues', \ + XGetIconName ,<NONE>, 'XGetIconName', \ + XGetIconSizes ,<NONE>, 'XGetIconSizes', \ + XGetImage ,<NONE>, 'XGetImage', \ + XGetInputFocus ,<NONE>, 'XGetInputFocus', \ + XGetKeyboardControl ,<NONE>, 'XGetKeyboardControl', \ + XGetKeyboardMapping ,<NONE>, 'XGetKeyboardMapping', \ + XGetModifierMapping ,<NONE>, 'XGetModifierMapping', \ + XGetMotionEvents ,<NONE>, 'XGetMotionEvents', \ + XGetNormalHints ,<NONE>, 'XGetNormalHints', \ + XGetOCValues ,<NONE>, 'XGetOCValues', \ + XGetOMValues ,<NONE>, 'XGetOMValues', \ + XGetPixel ,<NONE>, 'XGetPixel', \ + XGetPointerControl ,<NONE>, 'XGetPointerControl', \ + XGetPointerMapping ,<NONE>, 'XGetPointerMapping', \ + XGetRGBColormaps ,<NONE>, 'XGetRGBColormaps', \ + XGetScreenSaver ,<NONE>, 'XGetScreenSaver', \ + XGetSelectionOwner ,<.display, .selection>, 'XGetSelectionOwner', \ + XGetSizeHints ,<NONE>, 'XGetSizeHints', \ + XGetStandardColormap ,<NONE>, 'XGetStandardColormap', \ + XGetSubImage ,<NONE>, 'XGetSubImage', \ + XGetTextProperty ,<NONE>, 'XGetTextProperty', \ + XGetTransientForHint ,<NONE>, 'XGetTransientForHint', \ + XGetVisualInfo ,<NONE>, 'XGetVisualInfo', \ + XGetWMClientMachine ,<NONE>, 'XGetWMClientMachine', \ + XGetWMColormapWindows ,<NONE>, 'XGetWMColormapWindows', \ + XGetWMHints ,<NONE>, 'XGetWMHints', \ + XGetWMIconName ,<NONE>, 'XGetWMIconName', \ + XGetWMName ,<NONE>, 'XGetWMName', \ + XGetWMNormalHints ,<NONE>, 'XGetWMNormalHints', \ + XGetWMProtocols ,<NONE>, 'XGetWMProtocols', \ + XGetWMSizeHints ,<NONE>, 'XGetWMSizeHints', \ + XGetWindowAttributes ,<.display, .hwin, .pWinAttr>, 'XGetWindowAttributes', \ + XGetWindowProperty ,<.display, .hwin, .property, .offset, .length, .delete, .req_type, .pTypeRet, .pFormatRet, .pNItemsRet, .pRemainsRet, .pDataRet>, 'XGetWindowProperty', \ + XGetZoomHints ,<NONE>, 'XGetZoomHints', \ + XGrabButton ,<NONE>, 'XGrabButton', \ + XGrabKey ,<NONE>, 'XGrabKey', \ + XGrabKeyboard ,<NONE>, 'XGrabKeyboard', \ + XGrabPointer ,<NONE>, 'XGrabPointer', \ + XGrabServer ,<NONE>, 'XGrabServer', \ + XHeightMMOfScreen ,<NONE>, 'XHeightMMOfScreen', \ + XHeightOfScreen ,<NONE>, 'XHeightOfScreen', \ + XIMOfIC ,<NONE>, 'XIMOfIC', \ + XIconifyWindow ,<NONE>, 'XIconifyWindow', \ + XIfEvent ,<.display, .pEvent, .IfProc, .user>, 'XIfEvent', \ + XImageByteOrder ,<NONE>, 'XImageByteOrder', \ + XInitExtension ,<NONE>, 'XInitExtension', \ + XInitImage ,<NONE>, 'XInitImage', \ + XInitThreads ,<NONE>, 'XInitThreads', \ + XInsertModifiermapEntry ,<NONE>, 'XInsertModifiermapEntry', \ + XInstallColormap ,<NONE>, 'XInstallColormap', \ + XInternAtom ,<.display, .atom_name, .only_if_exists>, 'XInternAtom', \ + XInternAtoms ,<.display, .names, .count, .only_if_exists, .atoms_return>,'XInternAtoms', \ + XInternalConnectionNumbers ,<NONE>, 'XInternalConnectionNumbers', \ + XIntersectRegion ,<NONE>, 'XIntersectRegion', \ + XKeycodeToKeysym ,<.display, .keycode, .index>, 'XKeycodeToKeysym', \ + XKeysymToKeycode ,<.display, .keysym>, 'XKeysymToKeycode', \ + XKeysymToString ,<.keysym>, 'XKeysymToString', \ + XKillClient ,<NONE>, 'XKillClient', \ + XLastKnownRequestProcessed ,<NONE>, 'XLastKnownRequestProcessed', \ + XListDepths ,<NONE>, 'XListDepths', \ + XListExtensions ,<NONE>, 'XListExtensions', \ + XListFonts ,<NONE>, 'XListFonts', \ + XListFontsWithInfo ,<NONE>, 'XListFontsWithInfo', \ + XListHosts ,<NONE>, 'XListHosts', \ + XListInstalledColormaps ,<NONE>, 'XListInstalledColormaps', \ + XListPixmapFormats ,<NONE>, 'XListPixmapFormats', \ + XListProperties ,<NONE>, 'XListProperties', \ + XLoadFont ,<NONE>, 'XLoadFont', \ + XLoadQueryFont ,<NONE>, 'XLoadQueryFont', \ + XLocaleOfFontSet ,<NONE>, 'XLocaleOfFontSet', \ + XLocaleOfIM ,<NONE>, 'XLocaleOfIM', \ + XLocaleOfOM ,<NONE>, 'XLocaleOfOM', \ + XLockDisplay ,<NONE>, 'XLockDisplay', \ + XLookupColor ,<NONE>, 'XLookupColor', \ + XLookupKeysym ,<NONE>, 'XLookupKeysym', \ + XLookupString ,<NONE>, 'XLookupString', \ + XLowerWindow ,<NONE>, 'XLowerWindow', \ + XMapRaised ,<NONE>, 'XMapRaised', \ + XMapSubwindows ,<NONE>, 'XMapSubwindows', \ + XMapWindow ,<NONE>, 'XMapWindow', \ + XMaskEvent ,<.display, .event_mask, .pEventReturn>, 'XMaskEvent', \ + XMatchVisualInfo ,<NONE>, 'XMatchVisualInfo', \ + XMaxCmapsOfScreen ,<NONE>, 'XMaxCmapsOfScreen', \ + XMaxRequestSize ,<NONE>, 'XMaxRequestSize', \ + XMinCmapsOfScreen ,<NONE>, 'XMinCmapsOfScreen', \ + XMoveResizeWindow ,<NONE>, 'XMoveResizeWindow', \ + XMoveWindow ,<NONE>, 'XMoveWindow', \ + XNewModifiermap ,<NONE>, 'XNewModifiermap', \ + XNextEvent ,<NONE>, 'XNextEvent', \ + XNextRequest ,<NONE>, 'XNextRequest', \ + XNoOp ,<NONE>, 'XNoOp', \ + XOMOfOC ,<NONE>, 'XOMOfOC', \ + XOffsetRegion ,<NONE>, 'XOffsetRegion', \ + XOpenDisplay ,<NONE>, 'XOpenDisplay', \ + XOpenIM ,<NONE>, 'XOpenIM', \ + XOpenOM ,<NONE>, 'XOpenOM', \ + XParseColor ,<NONE>, 'XParseColor', \ + XParseGeometry ,<NONE>, 'XParseGeometry', \ + XPeekEvent ,<NONE>, 'XPeekEvent', \ + XPeekIfEvent ,<NONE>, 'XPeekIfEvent', \ + XPending ,<NONE>, 'XPending', \ + XPlanesOfScreen ,<NONE>, 'XPlanesOfScreen', \ + XPointInRegion ,<NONE>, 'XPointInRegion', \ + XPolygonRegion ,<NONE>, 'XPolygonRegion', \ + XProcessInternalConnection ,<NONE>, 'XProcessInternalConnection', \ + XProtocolRevision ,<NONE>, 'XProtocolRevision', \ + XProtocolVersion ,<NONE>, 'XProtocolVersion', \ + XPutBackEvent ,<.Disp, .pEvent>, 'XPutBackEvent', \ + XPutImage ,<.Disp, .Drawable, .context, .pXImage, .SrcX, .SrcY, .DestX, .DestY, .width, .height>, 'XPutImage', \ + XPutPixel ,<NONE>, 'XPutPixel', \ + XQLength ,<NONE>, 'XQLength', \ + XQueryBestCursor ,<NONE>, 'XQueryBestCursor', \ + XQueryBestSize ,<NONE>, 'XQueryBestSize', \ + XQueryBestStipple ,<NONE>, 'XQueryBestStipple', \ + XQueryBestTile ,<NONE>, 'XQueryBestTile', \ + XQueryColor ,<NONE>, 'XQueryColor', \ + XQueryColors ,<NONE>, 'XQueryColors', \ + XQueryExtension ,<NONE>, 'XQueryExtension', \ + XQueryFont ,<NONE>, 'XQueryFont', \ + XQueryKeymap ,<NONE>, 'XQueryKeymap', \ + XQueryPointer ,<NONE>, 'XQueryPointer', \ + XQueryTextExtents ,<NONE>, 'XQueryTextExtents', \ + XQueryTextExtents16 ,<NONE>, 'XQueryTextExtents16', \ + XQueryTree ,<.display, .window, .root_ret, .parent_ret, .children_ret, .nchildren_ret>, 'XQueryTree', \ + XRaiseWindow ,<NONE>, 'XRaiseWindow', \ + XReadBitmapFile ,<NONE>, 'XReadBitmapFile', \ + XReadBitmapFileData ,<NONE>, 'XReadBitmapFileData', \ + XRebindKeysym ,<NONE>, 'XRebindKeysym', \ + XRecolorCursor ,<NONE>, 'XRecolorCursor', \ + XReconfigureWMWindow ,<NONE>, 'XReconfigureWMWindow', \ + XRectInRegion ,<NONE>, 'XRectInRegion', \ + XRefreshKeyboardMapping ,<NONE>, 'XRefreshKeyboardMapping', \ + XRegisterIMInstantiateCallback ,<NONE>, 'XRegisterIMInstantiateCallback', \ + XRemoveConnectionWatch ,<NONE>, 'XRemoveConnectionWatch', \ + XRemoveFromSaveSet ,<NONE>, 'XRemoveFromSaveSet', \ + XRemoveHost ,<NONE>, 'XRemoveHost', \ + XRemoveHosts ,<NONE>, 'XRemoveHosts', \ + XReparentWindow ,<NONE>, 'XReparentWindow', \ + XResetScreenSaver ,<NONE>, 'XResetScreenSaver', \ + XResizeWindow ,<NONE>, 'XResizeWindow', \ + XResourceManagerString ,<NONE>, 'XResourceManagerString', \ + XRestackWindows ,<NONE>, 'XRestackWindows', \ + XRootWindow ,<.Disp, .ScrNum>, 'XRootWindow', \ + XRootWindowOfScreen ,<.ScrNum>, 'XRootWindowOfScreen', \ + XRotateBuffers ,<NONE>, 'XRotateBuffers', \ + XRotateWindowProperties ,<NONE>, 'XRotateWindowProperties', \ + XSaveContext ,<NONE>, 'XSaveContext', \ + XScreenCount ,<NONE>, 'XScreenCount', \ + XScreenNumberOfScreen ,<NONE>, 'XScreenNumberOfScreen', \ + XScreenOfDisplay ,<NONE>, 'XScreenOfDisplay', \ + XScreenResourceString ,<NONE>, 'XScreenResourceString', \ + XSelectInput ,<NONE>, 'XSelectInput', \ + XSendEvent ,<.display, .window, .propagate, .event_mask, .event_send>, 'XSendEvent', \ + XServerVendor ,<NONE>, 'XServerVendor', \ + XSetAccessControl ,<NONE>, 'XSetAccessControl', \ + XSetAfterFunction ,<NONE>, 'XSetAfterFunction', \ + XSetArcMode ,<NONE>, 'XSetArcMode', \ + XSetAuthorization ,<NONE>, 'XSetAuthorization', \ + XSetBackground ,<NONE>, 'XSetBackground', \ + XSetClassHint ,<NONE>, 'XSetClassHint', \ + XSetClipMask ,<NONE>, 'XSetClipMask', \ + XSetClipOrigin ,<NONE>, 'XSetClipOrigin', \ + XSetClipRectangles ,<NONE>, 'XSetClipRectangles', \ + XSetCloseDownMode ,<NONE>, 'XSetCloseDownMode', \ + XSetCommand ,<NONE>, 'XSetCommand', \ + XSetDashes ,<NONE>, 'XSetDashes', \ + XSetErrorHandler ,<NONE>, 'XSetErrorHandler', \ + XSetFillRule ,<NONE>, 'XSetFillRule', \ + XSetFillStyle ,<NONE>, 'XSetFillStyle', \ + XSetFont ,<NONE>, 'XSetFont', \ + XSetFontPath ,<NONE>, 'XSetFontPath', \ + XSetForeground ,<NONE>, 'XSetForeground', \ + XSetFunction ,<NONE>, 'XSetFunction', \ + XSetGraphicsExposures ,<NONE>, 'XSetGraphicsExposures', \ + XSetICFocus ,<NONE>, 'XSetICFocus', \ + XSetICValues ,<NONE>, 'XSetICValues', \ + XSetIMValues ,<NONE>, 'XSetIMValues', \ + XSetIOErrorHandler ,<NONE>, 'XSetIOErrorHandler', \ + XSetIconName ,<NONE>, 'XSetIconName', \ + XSetIconSizes ,<NONE>, 'XSetIconSizes', \ + XSetInputFocus ,<NONE>, 'XSetInputFocus', \ + XSetLineAttributes ,<NONE>, 'XSetLineAttributes', \ + XSetLocaleModifiers ,<NONE>, 'XSetLocaleModifiers', \ + XSetModifierMapping ,<NONE>, 'XSetModifierMapping', \ + XSetNormalHints ,<NONE>, 'XSetNormalHints', \ + XSetOCValues ,<NONE>, 'XSetOCValues', \ + XSetOMValues ,<NONE>, 'XSetOMValues', \ + XSetPlaneMask ,<NONE>, 'XSetPlaneMask', \ + XSetPointerMapping ,<NONE>, 'XSetPointerMapping', \ + XSetRGBColormaps ,<NONE>, 'XSetRGBColormaps', \ + XSetRegion ,<NONE>, 'XSetRegion', \ + XSetScreenSaver ,<NONE>, 'XSetScreenSaver', \ + XSetSelectionOwner ,<.display, .selection, .owner, .time>, 'XSetSelectionOwner', \ + XSetSizeHints ,<NONE>, 'XSetSizeHints', \ + XSetStandardColormap ,<NONE>, 'XSetStandardColormap', \ + XSetStandardProperties ,<NONE>, 'XSetStandardProperties', \ + XSetState ,<NONE>, 'XSetState', \ + XSetStipple ,<NONE>, 'XSetStipple', \ + XSetSubwindowMode ,<NONE>, 'XSetSubwindowMode', \ + XSetTSOrigin ,<NONE>, 'XSetTSOrigin', \ + XSetTextProperty ,<NONE>, 'XSetTextProperty', \ + XSetTile ,<NONE>, 'XSetTile', \ + XSetTransientForHint ,<NONE>, 'XSetTransientForHint', \ + XSetWMClientMachine ,<NONE>, 'XSetWMClientMachine', \ + XSetWMColormapWindows ,<NONE>, 'XSetWMColormapWindows', \ + XSetWMHints ,<NONE>, 'XSetWMHints', \ + XSetWMIconName ,<NONE>, 'XSetWMIconName', \ + XSetWMName ,<NONE>, 'XSetWMName', \ + XSetWMNormalHints ,<NONE>, 'XSetWMNormalHints', \ + XSetWMProperties ,<NONE>, 'XSetWMProperties', \ + XSetWMProtocols ,<NONE>, 'XSetWMProtocols', \ + XSetWMSizeHints ,<NONE>, 'XSetWMSizeHints', \ + XSetWindowBackground ,<NONE>, 'XSetWindowBackground', \ + XSetWindowBackgroundPixmap ,<NONE>, 'XSetWindowBackgroundPixmap', \ + XSetWindowBorder ,<NONE>, 'XSetWindowBorder', \ + XSetWindowBorderPixmap ,<NONE>, 'XSetWindowBorderPixmap', \ + XSetWindowBorderWidth ,<NONE>, 'XSetWindowBorderWidth', \ + XSetWindowColormap ,<NONE>, 'XSetWindowColormap', \ + XSetZoomHints ,<NONE>, 'XSetZoomHints', \ + XShrinkRegion ,<NONE>, 'XShrinkRegion', \ + XStoreBuffer ,<NONE>, 'XStoreBuffer', \ + XStoreBytes ,<NONE>, 'XStoreBytes', \ + XStoreColor ,<NONE>, 'XStoreColor', \ + XStoreColors ,<NONE>, 'XStoreColors', \ + XStoreName ,<NONE>, 'XStoreName', \ + XStoreNamedColor ,<NONE>, 'XStoreNamedColor', \ + XStringListToTextProperty ,<NONE>, 'XStringListToTextProperty', \ + XStringToKeysym ,<.string>, 'XStringToKeysym', \ + XSubImage ,<NONE>, 'XSubImage', \ + XSubtractRegion ,<NONE>, 'XSubtractRegion', \ + XSupportsLocale ,<NONE>, 'XSupportsLocale', \ + XSync ,<NONE>, 'XSync', \ + XSynchronize ,<NONE>, 'XSynchronize', \ + XTextExtents ,<NONE>, 'XTextExtents', \ + XTextExtents16 ,<NONE>, 'XTextExtents16', \ + XTextPropertyToStringList ,<NONE>, 'XTextPropertyToStringList', \ + XTextWidth ,<NONE>, 'XTextWidth', \ + XTextWidth16 ,<NONE>, 'XTextWidth16', \ + XTranslateCoordinates ,<NONE>, 'XTranslateCoordinates', \ + XUndefineCursor ,<NONE>, 'XUndefineCursor', \ + XUngrabButton ,<NONE>, 'XUngrabButton', \ + XUngrabKey ,<NONE>, 'XUngrabKey', \ + XUngrabKeyboard ,<NONE>, 'XUngrabKeyboard', \ + XUngrabPointer ,<NONE>, 'XUngrabPointer', \ + XUngrabServer ,<NONE>, 'XUngrabServer', \ + XUninstallColormap ,<NONE>, 'XUninstallColormap', \ + XUnionRectWithRegion ,<NONE>, 'XUnionRectWithRegion', \ + XUnionRegion ,<NONE>, 'XUnionRegion', \ + XUnloadFont ,<NONE>, 'XUnloadFont', \ + XUnlockDisplay ,<NONE>, 'XUnlockDisplay', \ + XUnmapSubwindows ,<NONE>, 'XUnmapSubwindows', \ + XUnmapWindow ,<NONE>, 'XUnmapWindow', \ + XUnregisterIMInstantiateCallback ,<NONE>, 'XUnregisterIMInstantiateCallback', \ + XUnsetICFocus ,<NONE>, 'XUnsetICFocus', \ + XVaCreateNestedList ,<NONE>, 'XVaCreateNestedList', \ + XVendorRelease ,<NONE>, 'XVendorRelease', \ + XVisualIDFromVisual ,<NONE>, 'XVisualIDFromVisual', \ + XWMGeometry ,<NONE>, 'XWMGeometry', \ + XWarpPointer ,<.display, .srcWnd, .dstWnd, .srcX, .srcY, .srcW, .srcH, .dstX, .dstY>, 'XWarpPointer', \ + XWhitePixel ,<NONE>, 'XWhitePixel', \ + XWhitePixelOfScreen ,<NONE>, 'XWhitePixelOfScreen', \ + XWidthMMOfScreen ,<NONE>, 'XWidthMMOfScreen', \ + XWidthOfScreen ,<NONE>, 'XWidthOfScreen', \ + XWindowEvent ,<.display, .hwin, .event_mask, .pEvent>, 'XWindowEvent', \ + XWithdrawWindow ,<NONE>, 'XWithdrawWindow', \ + XWriteBitmapFile ,<NONE>, 'XWriteBitmapFile', \ + XXorRegion ,<NONE>, 'XXorRegion', \ + XcmsAddColorSpace ,<NONE>, 'XcmsAddColorSpace', \ + XcmsAddFunctionSet ,<NONE>, 'XcmsAddFunctionSet', \ + XcmsAllocColor ,<NONE>, 'XcmsAllocColor', \ + XcmsAllocNamedColor ,<NONE>, 'XcmsAllocNamedColor', \ + XcmsCCCOfColormap ,<NONE>, 'XcmsCCCOfColormap', \ + XcmsCIELabClipL ,<NONE>, 'XcmsCIELabClipL', \ + XcmsCIELabClipLab ,<NONE>, 'XcmsCIELabClipLab', \ + XcmsCIELabClipab ,<NONE>, 'XcmsCIELabClipab', \ + XcmsCIELabColorSpace ,<NONE>, 'XcmsCIELabColorSpace', \ + XcmsCIELabQueryMaxC ,<NONE>, 'XcmsCIELabQueryMaxC', \ + XcmsCIELabQueryMaxL ,<NONE>, 'XcmsCIELabQueryMaxL', \ + XcmsCIELabQueryMaxLC ,<NONE>, 'XcmsCIELabQueryMaxLC', \ + XcmsCIELabQueryMinL ,<NONE>, 'XcmsCIELabQueryMinL', \ + XcmsCIELabToCIEXYZ ,<NONE>, 'XcmsCIELabToCIEXYZ', \ + XcmsCIELabWhiteShiftColors ,<NONE>, 'XcmsCIELabWhiteShiftColors', \ + XcmsCIELuvClipL ,<NONE>, 'XcmsCIELuvClipL', \ + XcmsCIELuvClipLuv ,<NONE>, 'XcmsCIELuvClipLuv', \ + XcmsCIELuvClipuv ,<NONE>, 'XcmsCIELuvClipuv', \ + XcmsCIELuvColorSpace ,<NONE>, 'XcmsCIELuvColorSpace', \ + XcmsCIELuvQueryMaxC ,<NONE>, 'XcmsCIELuvQueryMaxC', \ + XcmsCIELuvQueryMaxL ,<NONE>, 'XcmsCIELuvQueryMaxL', \ + XcmsCIELuvQueryMaxLC ,<NONE>, 'XcmsCIELuvQueryMaxLC', \ + XcmsCIELuvQueryMinL ,<NONE>, 'XcmsCIELuvQueryMinL', \ + XcmsCIELuvToCIEuvY ,<NONE>, 'XcmsCIELuvToCIEuvY', \ + XcmsCIELuvWhiteShiftColors ,<NONE>, 'XcmsCIELuvWhiteShiftColors', \ + XcmsCIEXYZColorSpace ,<NONE>, 'XcmsCIEXYZColorSpace', \ + XcmsCIEXYZToCIELab ,<NONE>, 'XcmsCIEXYZToCIELab', \ + XcmsCIEXYZToCIEuvY ,<NONE>, 'XcmsCIEXYZToCIEuvY', \ + XcmsCIEXYZToCIExyY ,<NONE>, 'XcmsCIEXYZToCIExyY', \ + XcmsCIEXYZToRGBi ,<NONE>, 'XcmsCIEXYZToRGBi', \ + XcmsCIEuvYColorSpace ,<NONE>, 'XcmsCIEuvYColorSpace', \ + XcmsCIEuvYToCIELuv ,<NONE>, 'XcmsCIEuvYToCIELuv', \ + XcmsCIEuvYToCIEXYZ ,<NONE>, 'XcmsCIEuvYToCIEXYZ', \ + XcmsCIEuvYToTekHVC ,<NONE>, 'XcmsCIEuvYToTekHVC', \ + XcmsCIExyYColorSpace ,<NONE>, 'XcmsCIExyYColorSpace', \ + XcmsCIExyYToCIEXYZ ,<NONE>, 'XcmsCIExyYToCIEXYZ', \ + XcmsClientWhitePointOfCCC ,<NONE>, 'XcmsClientWhitePointOfCCC', \ + XcmsConvertColors ,<NONE>, 'XcmsConvertColors', \ + XcmsCreateCCC ,<NONE>, 'XcmsCreateCCC', \ + XcmsDefaultCCC ,<NONE>, 'XcmsDefaultCCC', \ + XcmsDisplayOfCCC ,<NONE>, 'XcmsDisplayOfCCC', \ + XcmsFormatOfPrefix ,<NONE>, 'XcmsFormatOfPrefix', \ + XcmsFreeCCC ,<NONE>, 'XcmsFreeCCC', \ + XcmsLinearRGBFunctionSet ,<NONE>, 'XcmsLinearRGBFunctionSet', \ + XcmsLookupColor ,<NONE>, 'XcmsLookupColor', \ + XcmsPrefixOfFormat ,<NONE>, 'XcmsPrefixOfFormat', \ + XcmsQueryBlack ,<NONE>, 'XcmsQueryBlack', \ + XcmsQueryBlue ,<NONE>, 'XcmsQueryBlue', \ + XcmsQueryColor ,<NONE>, 'XcmsQueryColor', \ + XcmsQueryColors ,<NONE>, 'XcmsQueryColors', \ + XcmsQueryGreen ,<NONE>, 'XcmsQueryGreen', \ + XcmsQueryRed ,<NONE>, 'XcmsQueryRed', \ + XcmsQueryWhite ,<NONE>, 'XcmsQueryWhite', \ + XcmsRGBColorSpace ,<NONE>, 'XcmsRGBColorSpace', \ + XcmsRGBToRGBi ,<NONE>, 'XcmsRGBToRGBi', \ + XcmsRGBiColorSpace ,<NONE>, 'XcmsRGBiColorSpace', \ + XcmsRGBiToCIEXYZ ,<NONE>, 'XcmsRGBiToCIEXYZ', \ + XcmsRGBiToRGB ,<NONE>, 'XcmsRGBiToRGB', \ + XcmsScreenNumberOfCCC ,<NONE>, 'XcmsScreenNumberOfCCC', \ + XcmsScreenWhitePointOfCCC ,<NONE>, 'XcmsScreenWhitePointOfCCC', \ + XcmsSetCCCOfColormap ,<NONE>, 'XcmsSetCCCOfColormap', \ + XcmsSetCompressionProc ,<NONE>, 'XcmsSetCompressionProc', \ + XcmsSetWhiteAdjustProc ,<NONE>, 'XcmsSetWhiteAdjustProc', \ + XcmsSetWhitePoint ,<NONE>, 'XcmsSetWhitePoint', \ + XcmsStoreColor ,<NONE>, 'XcmsStoreColor', \ + XcmsStoreColors ,<NONE>, 'XcmsStoreColors', \ + XcmsTekHVCClipC ,<NONE>, 'XcmsTekHVCClipC', \ + XcmsTekHVCClipV ,<NONE>, 'XcmsTekHVCClipV', \ + XcmsTekHVCClipVC ,<NONE>, 'XcmsTekHVCClipVC', \ + XcmsTekHVCColorSpace ,<NONE>, 'XcmsTekHVCColorSpace', \ + XcmsTekHVCQueryMaxC ,<NONE>, 'XcmsTekHVCQueryMaxC', \ + XcmsTekHVCQueryMaxV ,<NONE>, 'XcmsTekHVCQueryMaxV', \ + XcmsTekHVCQueryMaxVC ,<NONE>, 'XcmsTekHVCQueryMaxVC', \ + XcmsTekHVCQueryMaxVSamples ,<NONE>, 'XcmsTekHVCQueryMaxVSamples', \ + XcmsTekHVCQueryMinV ,<NONE>, 'XcmsTekHVCQueryMinV', \ + XcmsTekHVCToCIEuvY ,<NONE>, 'XcmsTekHVCToCIEuvY', \ + XcmsTekHVCWhiteShiftColors ,<NONE>, 'XcmsTekHVCWhiteShiftColors', \ + XcmsUNDEFINEDColorSpace ,<NONE>, 'XcmsUNDEFINEDColorSpace', \ + XcmsVisualOfCCC ,<NONE>, 'XcmsVisualOfCCC', \ + XkbAddDeviceLedInfo ,<NONE>, 'XkbAddDeviceLedInfo', \ + XkbAddGeomColor ,<NONE>, 'XkbAddGeomColor', \ + XkbAddGeomDoodad ,<NONE>, 'XkbAddGeomDoodad', \ + XkbAddGeomKey ,<NONE>, 'XkbAddGeomKey', \ + XkbAddGeomKeyAlias ,<NONE>, 'XkbAddGeomKeyAlias', \ + XkbAddGeomOutline ,<NONE>, 'XkbAddGeomOutline', \ + XkbAddGeomOverlay ,<NONE>, 'XkbAddGeomOverlay', \ + XkbAddGeomOverlayKey ,<NONE>, 'XkbAddGeomOverlayKey', \ + XkbAddGeomOverlayRow ,<NONE>, 'XkbAddGeomOverlayRow', \ + XkbAddGeomProperty ,<NONE>, 'XkbAddGeomProperty', \ + XkbAddGeomRow ,<NONE>, 'XkbAddGeomRow', \ + XkbAddGeomSection ,<NONE>, 'XkbAddGeomSection', \ + XkbAddGeomShape ,<NONE>, 'XkbAddGeomShape', \ + XkbAddKeyType ,<NONE>, 'XkbAddKeyType', \ + XkbAllocClientMap ,<NONE>, 'XkbAllocClientMap', \ + XkbAllocCompatMap ,<NONE>, 'XkbAllocCompatMap', \ + XkbAllocControls ,<NONE>, 'XkbAllocControls', \ + XkbAllocDeviceInfo ,<NONE>, 'XkbAllocDeviceInfo', \ + XkbAllocGeomColors ,<NONE>, 'XkbAllocGeomColors', \ + XkbAllocGeomDoodads ,<NONE>, 'XkbAllocGeomDoodads', \ + XkbAllocGeomKeyAliases ,<NONE>, 'XkbAllocGeomKeyAliases', \ + XkbAllocGeomKeys ,<NONE>, 'XkbAllocGeomKeys', \ + XkbAllocGeomOutlines ,<NONE>, 'XkbAllocGeomOutlines', \ + XkbAllocGeomOverlayKeys ,<NONE>, 'XkbAllocGeomOverlayKeys', \ + XkbAllocGeomOverlayRows ,<NONE>, 'XkbAllocGeomOverlayRows', \ + XkbAllocGeomOverlays ,<NONE>, 'XkbAllocGeomOverlays', \ + XkbAllocGeomPoints ,<NONE>, 'XkbAllocGeomPoints', \ + XkbAllocGeomProps ,<NONE>, 'XkbAllocGeomProps', \ + XkbAllocGeomRows ,<NONE>, 'XkbAllocGeomRows', \ + XkbAllocGeomSectionDoodads ,<NONE>, 'XkbAllocGeomSectionDoodads', \ + XkbAllocGeomSections ,<NONE>, 'XkbAllocGeomSections', \ + XkbAllocGeomShapes ,<NONE>, 'XkbAllocGeomShapes', \ + XkbAllocGeometry ,<NONE>, 'XkbAllocGeometry', \ + XkbAllocIndicatorMaps ,<NONE>, 'XkbAllocIndicatorMaps', \ + XkbAllocKeyboard ,<NONE>, 'XkbAllocKeyboard', \ + XkbAllocNames ,<NONE>, 'XkbAllocNames', \ + XkbAllocServerMap ,<NONE>, 'XkbAllocServerMap', \ + XkbApplyCompatMapToKey ,<NONE>, 'XkbApplyCompatMapToKey', \ + XkbApplyVirtualModChanges ,<NONE>, 'XkbApplyVirtualModChanges', \ + XkbBell ,<NONE>, 'XkbBell', \ + XkbBellEvent ,<NONE>, 'XkbBellEvent', \ + XkbChangeDeviceInfo ,<NONE>, 'XkbChangeDeviceInfo', \ + XkbChangeEnabledControls ,<NONE>, 'XkbChangeEnabledControls', \ + XkbChangeKeycodeRange ,<NONE>, 'XkbChangeKeycodeRange', \ + XkbChangeMap ,<NONE>, 'XkbChangeMap', \ + XkbChangeNames ,<NONE>, 'XkbChangeNames', \ + XkbChangeTypesOfKey ,<NONE>, 'XkbChangeTypesOfKey', \ + XkbComputeEffectiveMap ,<NONE>, 'XkbComputeEffectiveMap', \ + XkbComputeRowBounds ,<NONE>, 'XkbComputeRowBounds', \ + XkbComputeSectionBounds ,<NONE>, 'XkbComputeSectionBounds', \ + XkbComputeShapeBounds ,<NONE>, 'XkbComputeShapeBounds', \ + XkbComputeShapeTop ,<NONE>, 'XkbComputeShapeTop', \ + XkbCopyKeyType ,<NONE>, 'XkbCopyKeyType', \ + XkbCopyKeyTypes ,<NONE>, 'XkbCopyKeyTypes', \ + XkbDeviceBell ,<NONE>, 'XkbDeviceBell', \ + XkbDeviceBellEvent ,<NONE>, 'XkbDeviceBellEvent', \ + XkbFindOverlayForKey ,<NONE>, 'XkbFindOverlayForKey', \ + XkbForceBell ,<NONE>, 'XkbForceBell', \ + XkbForceDeviceBell ,<NONE>, 'XkbForceDeviceBell', \ + XkbFreeClientMap ,<NONE>, 'XkbFreeClientMap', \ + XkbFreeCompatMap ,<NONE>, 'XkbFreeCompatMap', \ + XkbFreeComponentList ,<NONE>, 'XkbFreeComponentList', \ + XkbFreeControls ,<NONE>, 'XkbFreeControls', \ + XkbFreeDeviceInfo ,<NONE>, 'XkbFreeDeviceInfo', \ + XkbFreeGeomColors ,<NONE>, 'XkbFreeGeomColors', \ + XkbFreeGeomDoodads ,<NONE>, 'XkbFreeGeomDoodads', \ + XkbFreeGeomKeyAliases ,<NONE>, 'XkbFreeGeomKeyAliases', \ + XkbFreeGeomKeys ,<NONE>, 'XkbFreeGeomKeys', \ + XkbFreeGeomOutlines ,<NONE>, 'XkbFreeGeomOutlines', \ + XkbFreeGeomOverlayKeys ,<NONE>, 'XkbFreeGeomOverlayKeys', \ + XkbFreeGeomOverlayRows ,<NONE>, 'XkbFreeGeomOverlayRows', \ + XkbFreeGeomOverlays ,<NONE>, 'XkbFreeGeomOverlays', \ + XkbFreeGeomPoints ,<NONE>, 'XkbFreeGeomPoints', \ + XkbFreeGeomProperties ,<NONE>, 'XkbFreeGeomProperties', \ + XkbFreeGeomRows ,<NONE>, 'XkbFreeGeomRows', \ + XkbFreeGeomSections ,<NONE>, 'XkbFreeGeomSections', \ + XkbFreeGeomShapes ,<NONE>, 'XkbFreeGeomShapes', \ + XkbFreeGeometry ,<NONE>, 'XkbFreeGeometry', \ + XkbFreeIndicatorMaps ,<NONE>, 'XkbFreeIndicatorMaps', \ + XkbFreeKeyboard ,<NONE>, 'XkbFreeKeyboard', \ + XkbFreeNames ,<NONE>, 'XkbFreeNames', \ + XkbFreeServerMap ,<NONE>, 'XkbFreeServerMap', \ + XkbGetAutoRepeatRate ,<NONE>, 'XkbGetAutoRepeatRate', \ + XkbGetAutoResetControls ,<NONE>, 'XkbGetAutoResetControls', \ + XkbGetCompatMap ,<NONE>, 'XkbGetCompatMap', \ + XkbGetControls ,<NONE>, 'XkbGetControls', \ + XkbGetDetectableAutoRepeat ,<NONE>, 'XkbGetDetectableAutoRepeat', \ + XkbGetDeviceButtonActions ,<NONE>, 'XkbGetDeviceButtonActions', \ + XkbGetDeviceInfo ,<NONE>, 'XkbGetDeviceInfo', \ + XkbGetDeviceInfoChanges ,<NONE>, 'XkbGetDeviceInfoChanges', \ + XkbGetDeviceLedInfo ,<NONE>, 'XkbGetDeviceLedInfo', \ + XkbGetGeometry ,<NONE>, 'XkbGetGeometry', \ + XkbGetIndicatorMap ,<NONE>, 'XkbGetIndicatorMap', \ + XkbGetIndicatorState ,<NONE>, 'XkbGetIndicatorState', \ + XkbGetKeyActions ,<NONE>, 'XkbGetKeyActions', \ + XkbGetKeyBehaviors ,<NONE>, 'XkbGetKeyBehaviors', \ + XkbGetKeyExplicitComponents ,<NONE>, 'XkbGetKeyExplicitComponents', \ + XkbGetKeyModifierMap ,<NONE>, 'XkbGetKeyModifierMap', \ + XkbGetKeySyms ,<NONE>, 'XkbGetKeySyms', \ + XkbGetKeyTypes ,<NONE>, 'XkbGetKeyTypes', \ + XkbGetKeyVirtualModMap ,<NONE>, 'XkbGetKeyVirtualModMap', \ + XkbGetKeyboard ,<NONE>, 'XkbGetKeyboard', \ + XkbGetKeyboardByName ,<NONE>, 'XkbGetKeyboardByName', \ + XkbGetMap ,<NONE>, 'XkbGetMap', \ + XkbGetMapChanges ,<NONE>, 'XkbGetMapChanges', \ + XkbGetNamedDeviceIndicator ,<NONE>, 'XkbGetNamedDeviceIndicator', \ + XkbGetNamedGeometry ,<NONE>, 'XkbGetNamedGeometry', \ + XkbGetNamedIndicator ,<NONE>, 'XkbGetNamedIndicator', \ + XkbGetNames ,<NONE>, 'XkbGetNames', \ + XkbGetPerClientControls ,<NONE>, 'XkbGetPerClientControls', \ + XkbGetState ,<NONE>, 'XkbGetState', \ + XkbGetUpdatedMap ,<NONE>, 'XkbGetUpdatedMap', \ + XkbGetVirtualMods ,<NONE>, 'XkbGetVirtualMods', \ + XkbGetXlibControls ,<NONE>, 'XkbGetXlibControls', \ + XkbIgnoreExtension ,<NONE>, 'XkbIgnoreExtension', \ + XkbInitCanonicalKeyTypes ,<NONE>, 'XkbInitCanonicalKeyTypes', \ + XkbKeyTypesForCoreSymbols ,<NONE>, 'XkbKeyTypesForCoreSymbols', \ + XkbKeycodeToKeysym ,<NONE>, 'XkbKeycodeToKeysym', \ + XkbKeysymToModifiers ,<NONE>, 'XkbKeysymToModifiers', \ + XkbLatchGroup ,<NONE>, 'XkbLatchGroup', \ + XkbLatchModifiers ,<NONE>, 'XkbLatchModifiers', \ + XkbLibraryVersion ,<NONE>, 'XkbLibraryVersion', \ + XkbListComponents ,<NONE>, 'XkbListComponents', \ + XkbLockGroup ,<NONE>, 'XkbLockGroup', \ + XkbLockModifiers ,<NONE>, 'XkbLockModifiers', \ + XkbLookupKeyBinding ,<NONE>, 'XkbLookupKeyBinding', \ + XkbLookupKeySym ,<NONE>, 'XkbLookupKeySym', \ + XkbNoteControlsChanges ,<NONE>, 'XkbNoteControlsChanges', \ + XkbNoteDeviceChanges ,<NONE>, 'XkbNoteDeviceChanges', \ + XkbNoteMapChanges ,<NONE>, 'XkbNoteMapChanges', \ + XkbNoteNameChanges ,<NONE>, 'XkbNoteNameChanges', \ + XkbOpenDisplay ,<NONE>, 'XkbOpenDisplay', \ + XkbQueryExtension ,<NONE>, 'XkbQueryExtension', \ + XkbRefreshKeyboardMapping ,<NONE>, 'XkbRefreshKeyboardMapping', \ + XkbResizeDeviceButtonActions ,<NONE>, 'XkbResizeDeviceButtonActions', \ + XkbResizeKeyActions ,<NONE>, 'XkbResizeKeyActions', \ + XkbResizeKeySyms ,<NONE>, 'XkbResizeKeySyms', \ + XkbResizeKeyType ,<NONE>, 'XkbResizeKeyType', \ + XkbSelectEventDetails ,<NONE>, 'XkbSelectEventDetails', \ + XkbSelectEvents ,<NONE>, 'XkbSelectEvents', \ + XkbSetAtomFuncs ,<NONE>, 'XkbSetAtomFuncs', \ + XkbSetAutoRepeatRate ,<NONE>, 'XkbSetAutoRepeatRate', \ + XkbSetAutoResetControls ,<NONE>, 'XkbSetAutoResetControls', \ + XkbSetCompatMap ,<NONE>, 'XkbSetCompatMap', \ + XkbSetControls ,<NONE>, 'XkbSetControls', \ + XkbSetDebuggingFlags ,<NONE>, 'XkbSetDebuggingFlags', \ + XkbSetDetectableAutoRepeat ,<NONE>, 'XkbSetDetectableAutoRepeat', \ + XkbSetDeviceButtonActions ,<NONE>, 'XkbSetDeviceButtonActions', \ + XkbSetDeviceInfo ,<NONE>, 'XkbSetDeviceInfo', \ + XkbSetDeviceLedInfo ,<NONE>, 'XkbSetDeviceLedInfo', \ + XkbSetGeometry ,<NONE>, 'XkbSetGeometry', \ + XkbSetIgnoreLockMods ,<NONE>, 'XkbSetIgnoreLockMods', \ + XkbSetIndicatorMap ,<NONE>, 'XkbSetIndicatorMap', \ + XkbSetMap ,<NONE>, 'XkbSetMap', \ + XkbSetNamedDeviceIndicator ,<NONE>, 'XkbSetNamedDeviceIndicator', \ + XkbSetNamedIndicator ,<NONE>, 'XkbSetNamedIndicator', \ + XkbSetNames ,<NONE>, 'XkbSetNames', \ + XkbSetPerClientControls ,<NONE>, 'XkbSetPerClientControls', \ + XkbSetServerInternalMods ,<NONE>, 'XkbSetServerInternalMods', \ + XkbSetXlibControls ,<NONE>, 'XkbSetXlibControls', \ + XkbToControl ,<NONE>, 'XkbToControl', \ + XkbTranslateKey ,<NONE>, 'XkbTranslateKey', \ + XkbTranslateKeyCode ,<NONE>, 'XkbTranslateKeyCode', \ + XkbTranslateKeySym ,<NONE>, 'XkbTranslateKeySym', \ + XkbUpdateActionVirtualMods ,<NONE>, 'XkbUpdateActionVirtualMods', \ + XkbUpdateKeyTypeVirtualMods ,<NONE>, 'XkbUpdateKeyTypeVirtualMods', \ + XkbUpdateMapFromCore ,<NONE>, 'XkbUpdateMapFromCore', \ + XkbUseExtension ,<NONE>, 'XkbUseExtension', \ + XkbVirtualModsToReal ,<NONE>, 'XkbVirtualModsToReal', \ + XkbXlibControlsImplemented ,<NONE>, 'XkbXlibControlsImplemented', \ + XmbDrawImageString ,<NONE>, 'XmbDrawImageString', \ + XmbDrawString ,<NONE>, 'XmbDrawString', \ + XmbDrawText ,<NONE>, 'XmbDrawText', \ + XmbLookupString ,<NONE>, 'XmbLookupString', \ + XmbResetIC ,<NONE>, 'XmbResetIC', \ + XmbSetWMProperties ,<NONE>, 'XmbSetWMProperties', \ + XmbTextEscapement ,<NONE>, 'XmbTextEscapement', \ + XmbTextExtents ,<NONE>, 'XmbTextExtents', \ + XmbTextListToTextProperty ,<NONE>, 'XmbTextListToTextProperty', \ + XmbTextPerCharExtents ,<NONE>, 'XmbTextPerCharExtents', \ + XmbTextPropertyToTextList ,<NONE>, 'XmbTextPropertyToTextList', \ + Xpermalloc ,<NONE>, 'Xpermalloc', \ + XrmCombineDatabase ,<NONE>, 'XrmCombineDatabase', \ + XrmCombineFileDatabase ,<NONE>, 'XrmCombineFileDatabase', \ + XrmDestroyDatabase ,<NONE>, 'XrmDestroyDatabase', \ + XrmEnumerateDatabase ,<NONE>, 'XrmEnumerateDatabase', \ + XrmGetDatabase ,<NONE>, 'XrmGetDatabase', \ + XrmGetFileDatabase ,<NONE>, 'XrmGetFileDatabase', \ + XrmGetResource ,<NONE>, 'XrmGetResource', \ + XrmGetStringDatabase ,<NONE>, 'XrmGetStringDatabase', \ + XrmInitialize ,<NONE>, 'XrmInitialize', \ + XrmLocaleOfDatabase ,<NONE>, 'XrmLocaleOfDatabase', \ + XrmMergeDatabases ,<NONE>, 'XrmMergeDatabases', \ + XrmParseCommand ,<NONE>, 'XrmParseCommand', \ + XrmPermStringToQuark ,<NONE>, 'XrmPermStringToQuark', \ + XrmPutFileDatabase ,<NONE>, 'XrmPutFileDatabase', \ + XrmPutLineResource ,<NONE>, 'XrmPutLineResource', \ + XrmPutResource ,<NONE>, 'XrmPutResource', \ + XrmPutStringResource ,<NONE>, 'XrmPutStringResource', \ + XrmQGetResource ,<NONE>, 'XrmQGetResource', \ + XrmQGetSearchList ,<NONE>, 'XrmQGetSearchList', \ + XrmQGetSearchResource ,<NONE>, 'XrmQGetSearchResource', \ + XrmQPutResource ,<NONE>, 'XrmQPutResource', \ + XrmQPutStringResource ,<NONE>, 'XrmQPutStringResource', \ + XrmQuarkToString ,<NONE>, 'XrmQuarkToString', \ + XrmSetDatabase ,<NONE>, 'XrmSetDatabase', \ + XrmStringToBindingQuarkList ,<NONE>, 'XrmStringToBindingQuarkList', \ + XrmStringToQuark ,<NONE>, 'XrmStringToQuark', \ + XrmStringToQuarkList ,<NONE>, 'XrmStringToQuarkList', \ + XrmUniqueQuark ,<NONE>, 'XrmUniqueQuark', \ + Xutf8DrawImageString ,<NONE>, 'Xutf8DrawImageString', \ + Xutf8DrawString ,<NONE>, 'Xutf8DrawString', \ + Xutf8DrawText ,<NONE>, 'Xutf8DrawText', \ + Xutf8LookupString ,<NONE>, 'Xutf8LookupString', \ + Xutf8ResetIC ,<NONE>, 'Xutf8ResetIC', \ + Xutf8SetWMProperties ,<NONE>, 'Xutf8SetWMProperties', \ + Xutf8TextEscapement ,<NONE>, 'Xutf8TextEscapement', \ + Xutf8TextExtents ,<NONE>, 'Xutf8TextExtents', \ + Xutf8TextListToTextProperty ,<NONE>, 'Xutf8TextListToTextProperty', \ + Xutf8TextPerCharExtents ,<NONE>, 'Xutf8TextPerCharExtents', \ + Xutf8TextPropertyToTextList ,<NONE>, 'Xutf8TextPropertyToTextList', \ + XwcDrawImageString ,<NONE>, 'XwcDrawImageString', \ + XwcDrawString ,<NONE>, 'XwcDrawString', \ + XwcDrawText ,<NONE>, 'XwcDrawText', \ + XwcFreeStringList ,<NONE>, 'XwcFreeStringList', \ + XwcLookupString ,<NONE>, 'XwcLookupString', \ + XwcResetIC ,<NONE>, 'XwcResetIC', \ + XwcTextEscapement ,<NONE>, 'XwcTextEscapement', \ + XwcTextExtents ,<NONE>, 'XwcTextExtents', \ + XwcTextListToTextProperty ,<NONE>, 'XwcTextListToTextProperty', \ + XwcTextPerCharExtents ,<NONE>, 'XwcTextPerCharExtents', \ + XwcTextPropertyToTextList ,<NONE>, 'XwcTextPropertyToTextList', \ + XUniqueContext ,<NONE>, 'XUniqueContext' + + + + ADDED freshlib/imports/Linux/libXft.inc Index: freshlib/imports/Linux/libXft.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libXft.inc @@ -0,0 +1,94 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: libXft import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Needs editing of the function arguments +;_________________________________________________________________________________________ + +import_proto 'libXft.so.2', \ + XftCharExists ,<NONE>, 'XftCharExists', \ + XftCharFontSpecRender ,<NONE>, 'XftCharFontSpecRender', \ + XftCharIndex ,<NONE>, 'XftCharIndex', \ + XftCharSpecRender ,<NONE>, 'XftCharSpecRender', \ + XftColorAllocName ,<NONE>, 'XftColorAllocName', \ + XftColorAllocValue ,<NONE>, 'XftColorAllocValue', \ + XftColorFree ,<NONE>, 'XftColorFree', \ + XftDefaultHasRender ,<NONE>, 'XftDefaultHasRender', \ + XftDefaultSet ,<NONE>, 'XftDefaultSet', \ + XftDefaultSubstitute ,<NONE>, 'XftDefaultSubstitute', \ + XftDrawChange ,<NONE>, 'XftDrawChange', \ + XftDrawCharFontSpec ,<NONE>, 'XftDrawCharFontSpec', \ + XftDrawCharSpec ,<NONE>, 'XftDrawCharSpec', \ + XftDrawColormap ,<NONE>, 'XftDrawColormap', \ + XftDrawCreate ,<NONE>, 'XftDrawCreate', \ + XftDrawCreateAlpha ,<NONE>, 'XftDrawCreateAlpha', \ + XftDrawCreateBitmap ,<NONE>, 'XftDrawCreateBitmap', \ + XftDrawDestroy ,<NONE>, 'XftDrawDestroy', \ + XftDrawDisplay ,<NONE>, 'XftDrawDisplay', \ + XftDrawDrawable ,<NONE>, 'XftDrawDrawable', \ + XftDrawGlyphFontSpec ,<NONE>, 'XftDrawGlyphFontSpec', \ + XftDrawGlyphSpec ,<NONE>, 'XftDrawGlyphSpec', \ + XftDrawGlyphs ,<NONE>, 'XftDrawGlyphs', \ + XftDrawPicture ,<NONE>, 'XftDrawPicture', \ + XftDrawRect ,<NONE>, 'XftDrawRect', \ + XftDrawSetClip ,<NONE>, 'XftDrawSetClip', \ + XftDrawSetClipRectangles,<NONE>, 'XftDrawSetClipRectangles',\ + XftDrawSetSubwindowMode ,<NONE>, 'XftDrawSetSubwindowMode', \ + XftDrawSrcPicture ,<NONE>, 'XftDrawSrcPicture', \ + XftDrawString16 ,<NONE>, 'XftDrawString16', \ + XftDrawString32 ,<NONE>, 'XftDrawString32', \ + XftDrawString8 ,<NONE>, 'XftDrawString8', \ + XftDrawStringUtf16 ,<NONE>, 'XftDrawStringUtf16', \ + XftDrawStringUtf8 ,<NONE>, 'XftDrawStringUtf8', \ + XftDrawVisual ,<NONE>, 'XftDrawVisual', \ + XftFontCheckGlyph ,<NONE>, 'XftFontCheckGlyph', \ + XftFontClose ,<NONE>, 'XftFontClose', \ + XftFontCopy ,<NONE>, 'XftFontCopy', \ + XftFontInfoCreate ,<NONE>, 'XftFontInfoCreate', \ + XftFontInfoDestroy ,<NONE>, 'XftFontInfoDestroy', \ + XftFontInfoEqual ,<NONE>, 'XftFontInfoEqual', \ + XftFontInfoHash ,<NONE>, 'XftFontInfoHash', \ + XftFontLoadGlyphs ,<NONE>, 'XftFontLoadGlyphs', \ + XftFontMatch ,<NONE>, 'XftFontMatch', \ + XftFontOpen ,<NONE>, 'XftFontOpen', \ + XftFontOpenInfo ,<NONE>, 'XftFontOpenInfo', \ + XftFontOpenName ,<NONE>, 'XftFontOpenName', \ + XftFontOpenPattern ,<NONE>, 'XftFontOpenPattern', \ + XftFontOpenXlfd ,<NONE>, 'XftFontOpenXlfd', \ + XftFontUnloadGlyphs ,<NONE>, 'XftFontUnloadGlyphs', \ + XftGetVersion ,<NONE>, 'XftGetVersion', \ + XftGlyphExtents ,<NONE>, 'XftGlyphExtents', \ + XftGlyphFontSpecRender ,<NONE>, 'XftGlyphFontSpecRender', \ + XftGlyphRender ,<NONE>, 'XftGlyphRender', \ + XftGlyphSpecRender ,<NONE>, 'XftGlyphSpecRender', \ + XftInit ,<NONE>, 'XftInit', \ + XftInitFtLibrary ,<NONE>, 'XftInitFtLibrary', \ + XftListFonts ,<NONE>, 'XftListFonts', \ + XftLockFace ,<NONE>, 'XftLockFace', \ + XftNameParse ,<NONE>, 'XftNameParse', \ + XftNameUnparse ,<NONE>, 'XftNameUnparse', \ + XftTextExtents16 ,<NONE>, 'XftTextExtents16', \ + XftTextExtents32 ,<NONE>, 'XftTextExtents32', \ + XftTextExtents8 ,<NONE>, 'XftTextExtents8', \ + XftTextExtentsUtf16 ,<NONE>, 'XftTextExtentsUtf16', \ + XftTextExtentsUtf8 ,<NONE>, 'XftTextExtentsUtf8', \ + XftTextRender16 ,<NONE>, 'XftTextRender16', \ + XftTextRender16BE ,<NONE>, 'XftTextRender16BE', \ + XftTextRender16LE ,<NONE>, 'XftTextRender16LE', \ + XftTextRender32 ,<NONE>, 'XftTextRender32', \ + XftTextRender32BE ,<NONE>, 'XftTextRender32BE', \ + XftTextRender32LE ,<NONE>, 'XftTextRender32LE', \ + XftTextRender8 ,<NONE>, 'XftTextRender8', \ + XftTextRenderUtf16 ,<NONE>, 'XftTextRenderUtf16', \ + XftTextRenderUtf8 ,<NONE>, 'XftTextRenderUtf8', \ + XftUnlockFace ,<NONE>, 'XftUnlockFace', \ + XftXlfdParse ,<NONE>, 'XftXlfdParse' + + ADDED freshlib/imports/Linux/libXrender.inc Index: freshlib/imports/Linux/libXrender.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libXrender.inc @@ -0,0 +1,63 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: libXrender import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto 'libXrender.so.1', \ + XRenderAddGlyphs, <.display, .glyphset, .gids, .glyphs, .nglyphs, .images, .nbyte_images>, 'XRenderAddGlyphs', \ + XRenderAddTraps, <.display, .picture, .xOff, .yOff, .pTraps, .nTraps>, 'XRenderAddTraps', + XRenderChangePicture, <.display, .picture, .valuemask, .attributes>, 'XRenderChangePicture', \ + XRenderComposite, <.display, .op, .src, .mask, .dst, .src_x, .src_y, .mask_x, .mask_y, .dst_x, .dst_y, .wodth, .height>, 'XRenderComposite', \ + XRenderCompositeDoublePoly, <.display, .op, .src, .dst, .maskFormat, .xSrc, .ySrc, .xDst, .yDst, .fpoints, .npoints, .winding>, 'XRenderCompositeDoublePoly', \ + XRenderCompositeString16, <.display, .op, .src, .dst, .maskFormat, .glyphset, .xSrc, .ySrc, .xDst, .yDst, .string, .nchar>, 'XRenderCompositeString16', \ + XRenderCompositeString32, <.display, .op, .src, .dst, .maskFormat, .glyphset, .xSrc, .ySrc, .xDst, .yDst, .string, .nchar>, 'XRenderCompositeString32', \ + XRenderCompositeString8, <.display, .op, .src, .dst, .maskFormat, .glyphset, .xSrc, .ySrc, .xDst, .yDst, .string, .nchar>, 'XRenderCompositeString8', \ + XRenderCompositeText16, <.display, .op, .src, .dst, .maskFormat, .glyphset, .xSrc, .ySrc, .xDst, .yDst, .elts, .nelt>, 'XRenderCompositeText16', \ + XRenderCompositeText32, <.display, .op, .src, .dst, .maskFormat, .glyphset, .xSrc, .ySrc, .xDst, .yDst, .elts, .nelt>, 'XRenderCompositeText32', \ + XRenderCompositeText8, <.display, .op, .src, .dst, .maskFormat, .glyphset, .xSrc, .ySrc, .xDst, .yDst, .elts, .nelt>, 'XRenderCompositeText8', \ + XRenderCompositeTrapezoids, <.display, .op, .src, .dsp, .maskFormat, .xSrc, .ySrc, .traps, .ntrap>, 'XRenderCompositeTrapezoids', \ + XRenderCompositeTriFan, <.display, .op, .src, .dsp, .maskFormat, .xSrc, .ySrc, .points, .npoint>, 'XRenderCompositeTriFan', \ + XRenderCompositeTriStrip, <.display, .op, .src, .dsp, .maskFormat, .xSrc, .ySrc, .points, .npoint>, 'XRenderCompositeTriStrip', \ + XRenderCompositeTriangles, <.display, .op, .src, .dsp, .maskFormat, .xSrc, .ySrc, .triangles, .ntriangles>, 'XRenderCompositeTriangles', \ + XRenderCreateAnimCursor, <.display, .ncursor, .cursors>, 'XRenderCreateAnimCursor', \ + XRenderCreateConicalGradient, <.display, .pGradient, .pStops, .pColors, .nStops>, 'XRenderCreateConicalGradient', \ + XRenderCreateCursor, <.display, .source, .x, .y>, 'XRenderCreateCursor', \ + XRenderCreateGlyphSet, <.display, .format>, 'XRenderCreateGlyphSet', \ + XRenderCreateLinearGradient, <.display, .pGradient, .pStops, .pColors, .nStops>, 'XRenderCreateLinearGradient', \ + XRenderCreatePicture, <.display, .Drawable, .format, .valuemask, .attributes>, 'XRenderCreatePicture', \ + XRenderCreateRadialGradient, <.display, .pGradient, .pStops, .pColors, .nStops>, 'XRenderCreateRadialGradient', \ + XRenderCreateSolidFill, <.display, .pColor>, 'XRenderCreateSolidFill', \ + XRenderFillRectangle, <.display, .op, .dst, .pColor, .x, .y, .width, .height>, 'XRenderFillRectangle', \ + XRenderFillRectangles, <.display, .op, .dst, .pColor, .pRectangles, .nRectangles>, 'XRenderFillRectangles', \ + XRenderFindDisplay, <NONE>, 'XRenderFindDisplay', \ + XRenderFindFormat, <.display, .mask, .templ, .count>, 'XRenderFindFormat', \ + XRenderFindStandardFormat, <.display, .format>, 'XRenderFindStandardFormat', \ + XRenderFindVisualFormat, <.display, .visual>, 'XRenderFindVisualFormat', \ + XRenderFreeGlyphSet, <.display, .glyphset>, 'XRenderFreeGlyphSet', \ + XRenderFreeGlyphs, <.display, .glyphset, .pGids, .nGlyphs>, 'XRenderFreeGlyphs', \ + XRenderFreePicture, <.display, .picture>, 'XRenderFreePicture', \ + XRenderParseColor, <.display, .spec, .def>, 'XRenderParseColor', \ + XRenderQueryExtension, <.display, .event_basep, .error_basep>, 'XRenderQueryExtension', \ + XRenderQueryFilters, <.display, .drawable>, 'XRenderQueryFilters', \ + XRenderQueryFormats, <.display>, 'XRenderQueryFormats', \ + XRenderQueryPictIndexValues, <.display, .format, .num>, 'XRenderQueryPictIndexValues', \ + XRenderQuerySubpixelOrder, <.display, .screen>, 'XRenderQuerySubpixelOrder', \ + XRenderQueryVersion, <.display, .major_versionp, .minor_versionp>, 'XRenderQueryVersion', \ + XRenderReferenceGlyphSet, <.display, .existing>, 'XRenderReferenceGlyphSet', \ + XRenderSetPictureClipRectangles, <.display, .picture, .xOrigin, .yOrigin, .rects, .n>, 'XRenderSetPictureClipRectangles', \ + XRenderSetPictureClipRegion, <.display, .picture, .region>, 'XRenderSetPictureClipRegion', \ + XRenderSetPictureFilter, <.display, .picture, .pFilter, .pParams, .nParams>, 'XRenderSetPictureFilter', \ + XRenderSetPictureTransform, <.display, .picture, .pTransform>, 'XRenderSetPictureTransform', \ + XRenderSetSubpixelOrder, <.display, .screen, .subpixel>, 'XRenderSetSubpixelOrder' + + ADDED freshlib/imports/Linux/libc.inc Index: freshlib/imports/Linux/libc.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libc.inc @@ -0,0 +1,29 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: LibC import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Include only small amount of exported functions. +;_________________________________________________________________________________________ + +import_proto 'libc.so.6', \ ; LibC + puts ,<NONE>, 'puts', \ + exit ,<.exit_code>, 'exit', \ + malloc ,<.size>, 'malloc', \ + free ,<.ptr>, 'free', \ + realloc ,<.ptr, .newsize>, 'realloc', \ + stime ,<NONE>, 'stime', \ + strerror_r ,<.errnum, .pBuff, .BufLen>, 'strerror_r', \ + shmget ,<.key, .size, .flags>, 'shmget', \ + shmat ,<.shmid, .addr, .flags>, 'shmat', \ + shmdt ,<.addr>, 'shmdt', \ + shmctl ,<.shmid, .cmd, .shmid_ds>, 'shmctl', \ + getaddrinfo ,<.pHostName, .pService, .pHints, .pVarResult>, 'getaddrinfo', \ + freeaddrinfo ,<.pAddrInfo>, 'freeaddrinfo', \ + crypt ,<.pKey, .pSalt>, 'crypt' ADDED freshlib/imports/Linux/libdl.inc Index: freshlib/imports/Linux/libdl.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libdl.inc @@ -0,0 +1,20 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: LibC import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Include only small amount of exported functions. +;_________________________________________________________________________________________ + +import_proto 'libdl.so', \ + dlopen ,<.pFilename, .flags>, 'dlopen', \ + dlclose ,<.hLib>, 'dlclose', \ + dlsym ,<.hLib, .pObjName>, 'dlsym', \ + dlerror ,<NONE>, 'dlerror' + ADDED freshlib/imports/Linux/libxcb-shm.inc Index: freshlib/imports/Linux/libxcb-shm.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libxcb-shm.inc @@ -0,0 +1,23 @@ +import_proto 'libxcb.so' ,\ + xcb_shm_attach ,<.con, .shmseg. .shmid, .readonly>, 'xcb_shm_attach' ,\ + xcb_shm_attach_checked ,<NONE>, 'xcb_shm_attach_checked' ,\ + xcb_shm_attach_fd ,<NONE>, 'xcb_shm_attach_fd' ,\ + xcb_shm_attach_fd_checked ,<NONE>, 'xcb_shm_attach_fd_checked' ,\ + xcb_shm_create_pixmap ,<NONE>, 'xcb_shm_create_pixmap' ,\ + xcb_shm_create_pixmap_checked ,<NONE>, 'xcb_shm_create_pixmap_checked' ,\ + xcb_shm_create_segment ,<NONE>, 'xcb_shm_create_segment' ,\ + xcb_shm_create_segment_reply ,<NONE>, 'xcb_shm_create_segment_reply' ,\ + xcb_shm_create_segment_reply_fds ,<NONE>, 'xcb_shm_create_segment_reply_fds' ,\ + xcb_shm_create_segment_unchecked ,<NONE>, 'xcb_shm_create_segment_unchecked' ,\ + xcb_shm_detach ,<NONE>, 'xcb_shm_detach' ,\ + xcb_shm_detach_checked ,<NONE>, 'xcb_shm_detach_checked' ,\ + xcb_shm_get_image ,<NONE>, 'xcb_shm_get_image' ,\ + xcb_shm_get_image_reply ,<NONE>, 'xcb_shm_get_image_reply' ,\ + xcb_shm_get_image_unchecked ,<NONE>, 'xcb_shm_get_image_unchecked' ,\ + xcb_shm_put_image ,<NONE>, 'xcb_shm_put_image' ,\ + xcb_shm_put_image_checked ,<NONE>, 'xcb_shm_put_image_checked' ,\ + xcb_shm_query_version ,<NONE>, 'xcb_shm_query_version' ,\ + xcb_shm_query_version_reply ,<NONE>, 'xcb_shm_query_version_reply' ,\ + xcb_shm_query_version_unchecked ,<NONE>, 'xcb_shm_query_version_unchecked' ,\ + xcb_shm_seg_end ,<NONE>, 'xcb_shm_seg_end' ,\ + xcb_shm_seg_next ,<NONE>, 'xcb_shm_seg_next' ADDED freshlib/imports/Linux/libxcb.inc Index: freshlib/imports/Linux/libxcb.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/libxcb.inc @@ -0,0 +1,727 @@ +import_proto 'libxcb.so' ,\ + xcb_alloc_color ,<NONE>, 'xcb_alloc_color' ,\ + xcb_alloc_color_cells ,<NONE>, 'xcb_alloc_color_cells' ,\ + xcb_alloc_color_cells_masks ,<NONE>, 'xcb_alloc_color_cells_masks' ,\ + xcb_alloc_color_cells_masks_end ,<NONE>, 'xcb_alloc_color_cells_masks_end' ,\ + xcb_alloc_color_cells_masks_length ,<NONE>, 'xcb_alloc_color_cells_masks_length' ,\ + xcb_alloc_color_cells_pixels ,<NONE>, 'xcb_alloc_color_cells_pixels' ,\ + xcb_alloc_color_cells_pixels_end ,<NONE>, 'xcb_alloc_color_cells_pixels_end' ,\ + xcb_alloc_color_cells_pixels_length ,<NONE>, 'xcb_alloc_color_cells_pixels_length' ,\ + xcb_alloc_color_cells_reply ,<NONE>, 'xcb_alloc_color_cells_reply' ,\ + xcb_alloc_color_cells_sizeof ,<NONE>, 'xcb_alloc_color_cells_sizeof' ,\ + xcb_alloc_color_cells_unchecked ,<NONE>, 'xcb_alloc_color_cells_unchecked' ,\ + xcb_alloc_color_planes ,<NONE>, 'xcb_alloc_color_planes' ,\ + xcb_alloc_color_planes_pixels ,<NONE>, 'xcb_alloc_color_planes_pixels' ,\ + xcb_alloc_color_planes_pixels_end ,<NONE>, 'xcb_alloc_color_planes_pixels_end' ,\ + xcb_alloc_color_planes_pixels_length ,<NONE>, 'xcb_alloc_color_planes_pixels_length' ,\ + xcb_alloc_color_planes_reply ,<NONE>, 'xcb_alloc_color_planes_reply' ,\ + xcb_alloc_color_planes_sizeof ,<NONE>, 'xcb_alloc_color_planes_sizeof' ,\ + xcb_alloc_color_planes_unchecked ,<NONE>, 'xcb_alloc_color_planes_unchecked' ,\ + xcb_alloc_color_reply ,<NONE>, 'xcb_alloc_color_reply' ,\ + xcb_alloc_color_unchecked ,<NONE>, 'xcb_alloc_color_unchecked' ,\ + xcb_alloc_named_color ,<NONE>, 'xcb_alloc_named_color' ,\ + xcb_alloc_named_color_reply ,<NONE>, 'xcb_alloc_named_color_reply' ,\ + xcb_alloc_named_color_sizeof ,<NONE>, 'xcb_alloc_named_color_sizeof' ,\ + xcb_alloc_named_color_unchecked ,<NONE>, 'xcb_alloc_named_color_unchecked' ,\ + xcb_allow_events ,<NONE>, 'xcb_allow_events' ,\ + xcb_allow_events_checked ,<NONE>, 'xcb_allow_events_checked' ,\ + xcb_arc_end ,<NONE>, 'xcb_arc_end' ,\ + xcb_arc_next ,<NONE>, 'xcb_arc_next' ,\ + xcb_atom_end ,<NONE>, 'xcb_atom_end' ,\ + xcb_atom_next ,<NONE>, 'xcb_atom_next' ,\ + xcb_bell ,<NONE>, 'xcb_bell' ,\ + xcb_bell_checked ,<NONE>, 'xcb_bell_checked' ,\ + xcb_big_requests_enable ,<NONE>, 'xcb_big_requests_enable' ,\ + xcb_big_requests_enable_reply ,<NONE>, 'xcb_big_requests_enable_reply' ,\ + xcb_big_requests_enable_unchecked ,<NONE>, 'xcb_big_requests_enable_unchecked' ,\ + xcb_big_requests_id ,<NONE>, 'xcb_big_requests_id' ,\ + xcb_bool32_end ,<NONE>, 'xcb_bool32_end' ,\ + xcb_bool32_next ,<NONE>, 'xcb_bool32_next' ,\ + xcb_button_end ,<NONE>, 'xcb_button_end' ,\ + xcb_button_next ,<NONE>, 'xcb_button_next' ,\ + xcb_change_active_pointer_grab ,<NONE>, 'xcb_change_active_pointer_grab' ,\ + xcb_change_active_pointer_grab_checked ,<NONE>, 'xcb_change_active_pointer_grab_checked' ,\ + xcb_change_gc ,<NONE>, 'xcb_change_gc' ,\ + xcb_change_gc_aux ,<NONE>, 'xcb_change_gc_aux' ,\ + xcb_change_gc_aux_checked ,<NONE>, 'xcb_change_gc_aux_checked' ,\ + xcb_change_gc_checked ,<NONE>, 'xcb_change_gc_checked' ,\ + xcb_change_gc_sizeof ,<NONE>, 'xcb_change_gc_sizeof' ,\ + xcb_change_gc_value_list ,<NONE>, 'xcb_change_gc_value_list' ,\ + xcb_change_gc_value_list_serialize ,<NONE>, 'xcb_change_gc_value_list_serialize' ,\ + xcb_change_gc_value_list_sizeof ,<NONE>, 'xcb_change_gc_value_list_sizeof' ,\ + xcb_change_gc_value_list_unpack ,<NONE>, 'xcb_change_gc_value_list_unpack' ,\ + xcb_change_hosts ,<NONE>, 'xcb_change_hosts' ,\ + xcb_change_hosts_address ,<NONE>, 'xcb_change_hosts_address' ,\ + xcb_change_hosts_address_end ,<NONE>, 'xcb_change_hosts_address_end' ,\ + xcb_change_hosts_address_length ,<NONE>, 'xcb_change_hosts_address_length' ,\ + xcb_change_hosts_checked ,<NONE>, 'xcb_change_hosts_checked' ,\ + xcb_change_hosts_sizeof ,<NONE>, 'xcb_change_hosts_sizeof' ,\ + xcb_change_keyboard_control ,<NONE>, 'xcb_change_keyboard_control' ,\ + xcb_change_keyboard_control_aux ,<NONE>, 'xcb_change_keyboard_control_aux' ,\ + xcb_change_keyboard_control_aux_checked ,<NONE>, 'xcb_change_keyboard_control_aux_checked' ,\ + xcb_change_keyboard_control_checked ,<NONE>, 'xcb_change_keyboard_control_checked' ,\ + xcb_change_keyboard_control_sizeof ,<NONE>, 'xcb_change_keyboard_control_sizeof' ,\ + xcb_change_keyboard_control_value_list ,<NONE>, 'xcb_change_keyboard_control_value_list' ,\ + xcb_change_keyboard_control_value_list_serialize ,<NONE>, 'xcb_change_keyboard_control_value_list_serialize' ,\ + xcb_change_keyboard_control_value_list_sizeof ,<NONE>, 'xcb_change_keyboard_control_value_list_sizeof' ,\ + xcb_change_keyboard_control_value_list_unpack ,<NONE>, 'xcb_change_keyboard_control_value_list_unpack' ,\ + xcb_change_keyboard_mapping ,<NONE>, 'xcb_change_keyboard_mapping' ,\ + xcb_change_keyboard_mapping_checked ,<NONE>, 'xcb_change_keyboard_mapping_checked' ,\ + xcb_change_keyboard_mapping_keysyms ,<NONE>, 'xcb_change_keyboard_mapping_keysyms' ,\ + xcb_change_keyboard_mapping_keysyms_end ,<NONE>, 'xcb_change_keyboard_mapping_keysyms_end' ,\ + xcb_change_keyboard_mapping_keysyms_length ,<NONE>, 'xcb_change_keyboard_mapping_keysyms_length' ,\ + xcb_change_keyboard_mapping_sizeof ,<NONE>, 'xcb_change_keyboard_mapping_sizeof' ,\ + xcb_change_pointer_control ,<NONE>, 'xcb_change_pointer_control' ,\ + xcb_change_pointer_control_checked ,<NONE>, 'xcb_change_pointer_control_checked' ,\ + xcb_change_property ,<NONE>, 'xcb_change_property' ,\ + xcb_change_property_checked ,<NONE>, 'xcb_change_property_checked' ,\ + xcb_change_property_data ,<NONE>, 'xcb_change_property_data' ,\ + xcb_change_property_data_end ,<NONE>, 'xcb_change_property_data_end' ,\ + xcb_change_property_data_length ,<NONE>, 'xcb_change_property_data_length' ,\ + xcb_change_property_sizeof ,<NONE>, 'xcb_change_property_sizeof' ,\ + xcb_change_save_set ,<NONE>, 'xcb_change_save_set' ,\ + xcb_change_save_set_checked ,<NONE>, 'xcb_change_save_set_checked' ,\ + xcb_change_window_attributes ,<NONE>, 'xcb_change_window_attributes' ,\ + xcb_change_window_attributes_aux ,<NONE>, 'xcb_change_window_attributes_aux' ,\ + xcb_change_window_attributes_aux_checked ,<NONE>, 'xcb_change_window_attributes_aux_checked' ,\ + xcb_change_window_attributes_checked ,<NONE>, 'xcb_change_window_attributes_checked' ,\ + xcb_change_window_attributes_sizeof ,<NONE>, 'xcb_change_window_attributes_sizeof' ,\ + xcb_change_window_attributes_value_list ,<NONE>, 'xcb_change_window_attributes_value_list' ,\ + xcb_change_window_attributes_value_list_serialize ,<NONE>, 'xcb_change_window_attributes_value_list_serialize' ,\ + xcb_change_window_attributes_value_list_sizeof ,<NONE>, 'xcb_change_window_attributes_value_list_sizeof' ,\ + xcb_change_window_attributes_value_list_unpack ,<NONE>, 'xcb_change_window_attributes_value_list_unpack' ,\ + xcb_char2b_end ,<NONE>, 'xcb_char2b_end' ,\ + xcb_char2b_next ,<NONE>, 'xcb_char2b_next' ,\ + xcb_charinfo_end ,<NONE>, 'xcb_charinfo_end' ,\ + xcb_charinfo_next ,<NONE>, 'xcb_charinfo_next' ,\ + xcb_circulate_window ,<NONE>, 'xcb_circulate_window' ,\ + xcb_circulate_window_checked ,<NONE>, 'xcb_circulate_window_checked' ,\ + xcb_clear_area ,<NONE>, 'xcb_clear_area' ,\ + xcb_clear_area_checked ,<NONE>, 'xcb_clear_area_checked' ,\ + xcb_client_message_data_end ,<NONE>, 'xcb_client_message_data_end' ,\ + xcb_client_message_data_next ,<NONE>, 'xcb_client_message_data_next' ,\ + xcb_close_font ,<NONE>, 'xcb_close_font' ,\ + xcb_close_font_checked ,<NONE>, 'xcb_close_font_checked' ,\ + xcb_coloritem_end ,<NONE>, 'xcb_coloritem_end' ,\ + xcb_coloritem_next ,<NONE>, 'xcb_coloritem_next' ,\ + xcb_colormap_end ,<NONE>, 'xcb_colormap_end' ,\ + xcb_colormap_next ,<NONE>, 'xcb_colormap_next' ,\ + xcb_configure_window ,<NONE>, 'xcb_configure_window' ,\ + xcb_configure_window_aux ,<NONE>, 'xcb_configure_window_aux' ,\ + xcb_configure_window_aux_checked ,<NONE>, 'xcb_configure_window_aux_checked' ,\ + xcb_configure_window_checked ,<NONE>, 'xcb_configure_window_checked' ,\ + xcb_configure_window_sizeof ,<NONE>, 'xcb_configure_window_sizeof' ,\ + xcb_configure_window_value_list ,<NONE>, 'xcb_configure_window_value_list' ,\ + xcb_configure_window_value_list_serialize ,<NONE>, 'xcb_configure_window_value_list_serialize' ,\ + xcb_configure_window_value_list_sizeof ,<NONE>, 'xcb_configure_window_value_list_sizeof' ,\ + xcb_configure_window_value_list_unpack ,<NONE>, 'xcb_configure_window_value_list_unpack' ,\ + xcb_connect ,<.pStrDispName, .pIntScreen>, 'xcb_connect' ,\ + xcb_connection_has_error ,<NONE>, 'xcb_connection_has_error' ,\ + xcb_connect_to_display_with_auth_info ,<NONE>, 'xcb_connect_to_display_with_auth_info' ,\ + xcb_connect_to_fd ,<NONE>, 'xcb_connect_to_fd' ,\ + xcb_convert_selection ,<NONE>, 'xcb_convert_selection' ,\ + xcb_convert_selection_checked ,<NONE>, 'xcb_convert_selection_checked' ,\ + xcb_copy_area ,<NONE>, 'xcb_copy_area' ,\ + xcb_copy_area_checked ,<NONE>, 'xcb_copy_area_checked' ,\ + xcb_copy_colormap_and_free ,<NONE>, 'xcb_copy_colormap_and_free' ,\ + xcb_copy_colormap_and_free_checked ,<NONE>, 'xcb_copy_colormap_and_free_checked' ,\ + xcb_copy_gc ,<NONE>, 'xcb_copy_gc' ,\ + xcb_copy_gc_checked ,<NONE>, 'xcb_copy_gc_checked' ,\ + xcb_copy_plane ,<NONE>, 'xcb_copy_plane' ,\ + xcb_copy_plane_checked ,<NONE>, 'xcb_copy_plane_checked' ,\ + xcb_create_colormap ,<.conn, .alloc, .id, .window, .visual>, 'xcb_create_colormap' ,\ + xcb_create_colormap_checked ,<.conn, .alloc, .id, .window, .visual>, 'xcb_create_colormap_checked' ,\ + xcb_create_cursor ,<NONE>, 'xcb_create_cursor' ,\ + xcb_create_cursor_checked ,<NONE>, 'xcb_create_cursor_checked' ,\ + xcb_create_gc ,<NONE>, 'xcb_create_gc' ,\ + xcb_create_gc_aux ,<NONE>, 'xcb_create_gc_aux' ,\ + xcb_create_gc_aux_checked ,<NONE>, 'xcb_create_gc_aux_checked' ,\ + xcb_create_gc_checked ,<NONE>, 'xcb_create_gc_checked' ,\ + xcb_create_gc_sizeof ,<NONE>, 'xcb_create_gc_sizeof' ,\ + xcb_create_gc_value_list ,<NONE>, 'xcb_create_gc_value_list' ,\ + xcb_create_gc_value_list_serialize ,<NONE>, 'xcb_create_gc_value_list_serialize' ,\ + xcb_create_gc_value_list_sizeof ,<NONE>, 'xcb_create_gc_value_list_sizeof' ,\ + xcb_create_gc_value_list_unpack ,<NONE>, 'xcb_create_gc_value_list_unpack' ,\ + xcb_create_glyph_cursor ,<NONE>, 'xcb_create_glyph_cursor' ,\ + xcb_create_glyph_cursor_checked ,<NONE>, 'xcb_create_glyph_cursor_checked' ,\ + xcb_create_pixmap ,<NONE>, 'xcb_create_pixmap' ,\ + xcb_create_pixmap_checked ,<NONE>, 'xcb_create_pixmap_checked' ,\ + xcb_create_window ,<NONE>, 'xcb_create_window' ,\ + xcb_create_window_aux ,<NONE>, 'xcb_create_window_aux' ,\ + xcb_create_window_aux_checked ,<NONE>, 'xcb_create_window_aux_checked' ,\ + xcb_create_window_checked ,<NONE>, 'xcb_create_window_checked' ,\ + xcb_create_window_sizeof ,<NONE>, 'xcb_create_window_sizeof' ,\ + xcb_create_window_value_list ,<NONE>, 'xcb_create_window_value_list' ,\ + xcb_create_window_value_list_serialize ,<NONE>, 'xcb_create_window_value_list_serialize' ,\ + xcb_create_window_value_list_sizeof ,<NONE>, 'xcb_create_window_value_list_sizeof' ,\ + xcb_create_window_value_list_unpack ,<NONE>, 'xcb_create_window_value_list_unpack' ,\ + xcb_cursor_end ,<NONE>, 'xcb_cursor_end' ,\ + xcb_cursor_next ,<NONE>, 'xcb_cursor_next' ,\ + xcb_delete_property ,<NONE>, 'xcb_delete_property' ,\ + xcb_delete_property_checked ,<NONE>, 'xcb_delete_property_checked' ,\ + xcb_depth_end ,<NONE>, 'xcb_depth_end' ,\ + xcb_depth_next ,<NONE>, 'xcb_depth_next' ,\ + xcb_depth_sizeof ,<NONE>, 'xcb_depth_sizeof' ,\ + xcb_depth_visuals ,<NONE>, 'xcb_depth_visuals' ,\ + xcb_depth_visuals_iterator ,<NONE>, 'xcb_depth_visuals_iterator' ,\ + xcb_depth_visuals_length ,<NONE>, 'xcb_depth_visuals_length' ,\ + xcb_destroy_subwindows ,<NONE>, 'xcb_destroy_subwindows' ,\ + xcb_destroy_subwindows_checked ,<NONE>, 'xcb_destroy_subwindows_checked' ,\ + xcb_destroy_window ,<NONE>, 'xcb_destroy_window' ,\ + xcb_destroy_window_checked ,<NONE>, 'xcb_destroy_window_checked' ,\ + xcb_discard_reply ,<NONE>, 'xcb_discard_reply' ,\ + xcb_discard_reply64 ,<NONE>, 'xcb_discard_reply64' ,\ + xcb_disconnect ,<NONE>, 'xcb_disconnect' ,\ + xcb_drawable_end ,<NONE>, 'xcb_drawable_end' ,\ + xcb_drawable_next ,<NONE>, 'xcb_drawable_next' ,\ + xcb_fill_poly ,<NONE>, 'xcb_fill_poly' ,\ + xcb_fill_poly_checked ,<NONE>, 'xcb_fill_poly_checked' ,\ + xcb_fill_poly_points ,<NONE>, 'xcb_fill_poly_points' ,\ + xcb_fill_poly_points_iterator ,<NONE>, 'xcb_fill_poly_points_iterator' ,\ + xcb_fill_poly_points_length ,<NONE>, 'xcb_fill_poly_points_length' ,\ + xcb_fill_poly_sizeof ,<NONE>, 'xcb_fill_poly_sizeof' ,\ + xcb_flush ,<.conn>, 'xcb_flush' ,\ + xcb_fontable_end ,<NONE>, 'xcb_fontable_end' ,\ + xcb_fontable_next ,<NONE>, 'xcb_fontable_next' ,\ + xcb_font_end ,<NONE>, 'xcb_font_end' ,\ + xcb_font_next ,<NONE>, 'xcb_font_next' ,\ + xcb_fontprop_end ,<NONE>, 'xcb_fontprop_end' ,\ + xcb_fontprop_next ,<NONE>, 'xcb_fontprop_next' ,\ + xcb_force_screen_saver ,<NONE>, 'xcb_force_screen_saver' ,\ + xcb_force_screen_saver_checked ,<NONE>, 'xcb_force_screen_saver_checked' ,\ + xcb_format_end ,<NONE>, 'xcb_format_end' ,\ + xcb_format_next ,<NONE>, 'xcb_format_next' ,\ + xcb_free_colormap ,<NONE>, 'xcb_free_colormap' ,\ + xcb_free_colormap_checked ,<NONE>, 'xcb_free_colormap_checked' ,\ + xcb_free_colors ,<NONE>, 'xcb_free_colors' ,\ + xcb_free_colors_checked ,<NONE>, 'xcb_free_colors_checked' ,\ + xcb_free_colors_pixels ,<NONE>, 'xcb_free_colors_pixels' ,\ + xcb_free_colors_pixels_end ,<NONE>, 'xcb_free_colors_pixels_end' ,\ + xcb_free_colors_pixels_length ,<NONE>, 'xcb_free_colors_pixels_length' ,\ + xcb_free_colors_sizeof ,<NONE>, 'xcb_free_colors_sizeof' ,\ + xcb_free_cursor ,<NONE>, 'xcb_free_cursor' ,\ + xcb_free_cursor_checked ,<NONE>, 'xcb_free_cursor_checked' ,\ + xcb_free_gc ,<NONE>, 'xcb_free_gc' ,\ + xcb_free_gc_checked ,<NONE>, 'xcb_free_gc_checked' ,\ + xcb_free_pixmap ,<NONE>, 'xcb_free_pixmap' ,\ + xcb_free_pixmap_checked ,<NONE>, 'xcb_free_pixmap_checked' ,\ + xcb_gcontext_end ,<NONE>, 'xcb_gcontext_end' ,\ + xcb_gcontext_next ,<NONE>, 'xcb_gcontext_next' ,\ + xcb_generate_id ,<.conn>, 'xcb_generate_id' ,\ + xcb_get_atom_name ,<NONE>, 'xcb_get_atom_name' ,\ + xcb_get_atom_name_name ,<NONE>, 'xcb_get_atom_name_name' ,\ + xcb_get_atom_name_name_end ,<NONE>, 'xcb_get_atom_name_name_end' ,\ + xcb_get_atom_name_name_length ,<NONE>, 'xcb_get_atom_name_name_length' ,\ + xcb_get_atom_name_reply ,<NONE>, 'xcb_get_atom_name_reply' ,\ + xcb_get_atom_name_sizeof ,<NONE>, 'xcb_get_atom_name_sizeof' ,\ + xcb_get_atom_name_unchecked ,<NONE>, 'xcb_get_atom_name_unchecked' ,\ + xcb_get_extension_data ,<NONE>, 'xcb_get_extension_data' ,\ + xcb_get_file_descriptor ,<.conn>, 'xcb_get_file_descriptor' ,\ + xcb_get_font_path ,<NONE>, 'xcb_get_font_path' ,\ + xcb_get_font_path_path_iterator ,<NONE>, 'xcb_get_font_path_path_iterator' ,\ + xcb_get_font_path_path_length ,<NONE>, 'xcb_get_font_path_path_length' ,\ + xcb_get_font_path_reply ,<NONE>, 'xcb_get_font_path_reply' ,\ + xcb_get_font_path_sizeof ,<NONE>, 'xcb_get_font_path_sizeof' ,\ + xcb_get_font_path_unchecked ,<NONE>, 'xcb_get_font_path_unchecked' ,\ + xcb_get_geometry ,<NONE>, 'xcb_get_geometry' ,\ + xcb_get_geometry_reply ,<NONE>, 'xcb_get_geometry_reply' ,\ + xcb_get_geometry_unchecked ,<NONE>, 'xcb_get_geometry_unchecked' ,\ + xcb_get_image ,<NONE>, 'xcb_get_image' ,\ + xcb_get_image_data ,<NONE>, 'xcb_get_image_data' ,\ + xcb_get_image_data_end ,<NONE>, 'xcb_get_image_data_end' ,\ + xcb_get_image_data_length ,<NONE>, 'xcb_get_image_data_length' ,\ + xcb_get_image_reply ,<NONE>, 'xcb_get_image_reply' ,\ + xcb_get_image_sizeof ,<NONE>, 'xcb_get_image_sizeof' ,\ + xcb_get_image_unchecked ,<NONE>, 'xcb_get_image_unchecked' ,\ + xcb_get_input_focus ,<NONE>, 'xcb_get_input_focus' ,\ + xcb_get_input_focus_reply ,<NONE>, 'xcb_get_input_focus_reply' ,\ + xcb_get_input_focus_unchecked ,<NONE>, 'xcb_get_input_focus_unchecked' ,\ + xcb_get_keyboard_control ,<NONE>, 'xcb_get_keyboard_control' ,\ + xcb_get_keyboard_control_reply ,<NONE>, 'xcb_get_keyboard_control_reply' ,\ + xcb_get_keyboard_control_unchecked ,<NONE>, 'xcb_get_keyboard_control_unchecked' ,\ + xcb_get_keyboard_mapping ,<NONE>, 'xcb_get_keyboard_mapping' ,\ + xcb_get_keyboard_mapping_keysyms ,<NONE>, 'xcb_get_keyboard_mapping_keysyms' ,\ + xcb_get_keyboard_mapping_keysyms_end ,<NONE>, 'xcb_get_keyboard_mapping_keysyms_end' ,\ + xcb_get_keyboard_mapping_keysyms_length ,<NONE>, 'xcb_get_keyboard_mapping_keysyms_length' ,\ + xcb_get_keyboard_mapping_reply ,<NONE>, 'xcb_get_keyboard_mapping_reply' ,\ + xcb_get_keyboard_mapping_sizeof ,<NONE>, 'xcb_get_keyboard_mapping_sizeof' ,\ + xcb_get_keyboard_mapping_unchecked ,<NONE>, 'xcb_get_keyboard_mapping_unchecked' ,\ + xcb_get_maximum_request_length ,<NONE>, 'xcb_get_maximum_request_length' ,\ + xcb_get_modifier_mapping ,<NONE>, 'xcb_get_modifier_mapping' ,\ + xcb_get_modifier_mapping_keycodes ,<NONE>, 'xcb_get_modifier_mapping_keycodes' ,\ + xcb_get_modifier_mapping_keycodes_end ,<NONE>, 'xcb_get_modifier_mapping_keycodes_end' ,\ + xcb_get_modifier_mapping_keycodes_length ,<NONE>, 'xcb_get_modifier_mapping_keycodes_length' ,\ + xcb_get_modifier_mapping_reply ,<NONE>, 'xcb_get_modifier_mapping_reply' ,\ + xcb_get_modifier_mapping_sizeof ,<NONE>, 'xcb_get_modifier_mapping_sizeof' ,\ + xcb_get_modifier_mapping_unchecked ,<NONE>, 'xcb_get_modifier_mapping_unchecked' ,\ + xcb_get_motion_events ,<NONE>, 'xcb_get_motion_events' ,\ + xcb_get_motion_events_events ,<NONE>, 'xcb_get_motion_events_events' ,\ + xcb_get_motion_events_events_iterator ,<NONE>, 'xcb_get_motion_events_events_iterator' ,\ + xcb_get_motion_events_events_length ,<NONE>, 'xcb_get_motion_events_events_length' ,\ + xcb_get_motion_events_reply ,<NONE>, 'xcb_get_motion_events_reply' ,\ + xcb_get_motion_events_sizeof ,<NONE>, 'xcb_get_motion_events_sizeof' ,\ + xcb_get_motion_events_unchecked ,<NONE>, 'xcb_get_motion_events_unchecked' ,\ + xcb_get_pointer_control ,<NONE>, 'xcb_get_pointer_control' ,\ + xcb_get_pointer_control_reply ,<NONE>, 'xcb_get_pointer_control_reply' ,\ + xcb_get_pointer_control_unchecked ,<NONE>, 'xcb_get_pointer_control_unchecked' ,\ + xcb_get_pointer_mapping ,<NONE>, 'xcb_get_pointer_mapping' ,\ + xcb_get_pointer_mapping_map ,<NONE>, 'xcb_get_pointer_mapping_map' ,\ + xcb_get_pointer_mapping_map_end ,<NONE>, 'xcb_get_pointer_mapping_map_end' ,\ + xcb_get_pointer_mapping_map_length ,<NONE>, 'xcb_get_pointer_mapping_map_length' ,\ + xcb_get_pointer_mapping_reply ,<NONE>, 'xcb_get_pointer_mapping_reply' ,\ + xcb_get_pointer_mapping_sizeof ,<NONE>, 'xcb_get_pointer_mapping_sizeof' ,\ + xcb_get_pointer_mapping_unchecked ,<NONE>, 'xcb_get_pointer_mapping_unchecked' ,\ + xcb_get_property ,<NONE>, 'xcb_get_property' ,\ + xcb_get_property_reply ,<NONE>, 'xcb_get_property_reply' ,\ + xcb_get_property_sizeof ,<NONE>, 'xcb_get_property_sizeof' ,\ + xcb_get_property_unchecked ,<NONE>, 'xcb_get_property_unchecked' ,\ + xcb_get_property_value ,<NONE>, 'xcb_get_property_value' ,\ + xcb_get_property_value_end ,<NONE>, 'xcb_get_property_value_end' ,\ + xcb_get_property_value_length ,<NONE>, 'xcb_get_property_value_length' ,\ + xcb_get_reply_fds ,<NONE>, 'xcb_get_reply_fds' ,\ + xcb_get_screen_saver ,<NONE>, 'xcb_get_screen_saver' ,\ + xcb_get_screen_saver_reply ,<NONE>, 'xcb_get_screen_saver_reply' ,\ + xcb_get_screen_saver_unchecked ,<NONE>, 'xcb_get_screen_saver_unchecked' ,\ + xcb_get_selection_owner ,<NONE>, 'xcb_get_selection_owner' ,\ + xcb_get_selection_owner_reply ,<NONE>, 'xcb_get_selection_owner_reply' ,\ + xcb_get_selection_owner_unchecked ,<NONE>, 'xcb_get_selection_owner_unchecked' ,\ + xcb_get_setup ,<.conn>, 'xcb_get_setup' ,\ + xcb_get_window_attributes ,<NONE>, 'xcb_get_window_attributes' ,\ + xcb_get_window_attributes_reply ,<NONE>, 'xcb_get_window_attributes_reply' ,\ + xcb_get_window_attributes_unchecked ,<NONE>, 'xcb_get_window_attributes_unchecked' ,\ + xcb_grab_button ,<NONE>, 'xcb_grab_button' ,\ + xcb_grab_button_checked ,<NONE>, 'xcb_grab_button_checked' ,\ + xcb_grab_key ,<NONE>, 'xcb_grab_key' ,\ + xcb_grab_keyboard ,<NONE>, 'xcb_grab_keyboard' ,\ + xcb_grab_keyboard_reply ,<NONE>, 'xcb_grab_keyboard_reply' ,\ + xcb_grab_keyboard_unchecked ,<NONE>, 'xcb_grab_keyboard_unchecked' ,\ + xcb_grab_key_checked ,<NONE>, 'xcb_grab_key_checked' ,\ + xcb_grab_pointer ,<NONE>, 'xcb_grab_pointer' ,\ + xcb_grab_pointer_reply ,<NONE>, 'xcb_grab_pointer_reply' ,\ + xcb_grab_pointer_unchecked ,<NONE>, 'xcb_grab_pointer_unchecked' ,\ + xcb_grab_server ,<NONE>, 'xcb_grab_server' ,\ + xcb_grab_server_checked ,<NONE>, 'xcb_grab_server_checked' ,\ + xcb_host_address ,<NONE>, 'xcb_host_address' ,\ + xcb_host_address_end ,<NONE>, 'xcb_host_address_end' ,\ + xcb_host_address_length ,<NONE>, 'xcb_host_address_length' ,\ + xcb_host_end ,<NONE>, 'xcb_host_end' ,\ + xcb_host_next ,<NONE>, 'xcb_host_next' ,\ + xcb_host_sizeof ,<NONE>, 'xcb_host_sizeof' ,\ + xcb_image_text_16 ,<NONE>, 'xcb_image_text_16' ,\ + xcb_image_text_16_checked ,<NONE>, 'xcb_image_text_16_checked' ,\ + xcb_image_text_16_sizeof ,<NONE>, 'xcb_image_text_16_sizeof' ,\ + xcb_image_text_16_string ,<NONE>, 'xcb_image_text_16_string' ,\ + xcb_image_text_16_string_iterator ,<NONE>, 'xcb_image_text_16_string_iterator' ,\ + xcb_image_text_16_string_length ,<NONE>, 'xcb_image_text_16_string_length' ,\ + xcb_image_text_8 ,<NONE>, 'xcb_image_text_8' ,\ + xcb_image_text_8_checked ,<NONE>, 'xcb_image_text_8_checked' ,\ + xcb_image_text_8_sizeof ,<NONE>, 'xcb_image_text_8_sizeof' ,\ + xcb_image_text_8_string ,<NONE>, 'xcb_image_text_8_string' ,\ + xcb_image_text_8_string_end ,<NONE>, 'xcb_image_text_8_string_end' ,\ + xcb_image_text_8_string_length ,<NONE>, 'xcb_image_text_8_string_length' ,\ + xcb_install_colormap ,<NONE>, 'xcb_install_colormap' ,\ + xcb_install_colormap_checked ,<NONE>, 'xcb_install_colormap_checked' ,\ + xcb_intern_atom ,<NONE>, 'xcb_intern_atom' ,\ + xcb_intern_atom_reply ,<NONE>, 'xcb_intern_atom_reply' ,\ + xcb_intern_atom_sizeof ,<NONE>, 'xcb_intern_atom_sizeof' ,\ + xcb_intern_atom_unchecked ,<NONE>, 'xcb_intern_atom_unchecked' ,\ + xcb_keycode32_end ,<NONE>, 'xcb_keycode32_end' ,\ + xcb_keycode32_next ,<NONE>, 'xcb_keycode32_next' ,\ + xcb_keycode_end ,<NONE>, 'xcb_keycode_end' ,\ + xcb_keycode_next ,<NONE>, 'xcb_keycode_next' ,\ + xcb_keysym_end ,<NONE>, 'xcb_keysym_end' ,\ + xcb_keysym_next ,<NONE>, 'xcb_keysym_next' ,\ + xcb_kill_client ,<NONE>, 'xcb_kill_client' ,\ + xcb_kill_client_checked ,<NONE>, 'xcb_kill_client_checked' ,\ + xcb_list_extensions ,<NONE>, 'xcb_list_extensions' ,\ + xcb_list_extensions_names_iterator ,<NONE>, 'xcb_list_extensions_names_iterator' ,\ + xcb_list_extensions_names_length ,<NONE>, 'xcb_list_extensions_names_length' ,\ + xcb_list_extensions_reply ,<NONE>, 'xcb_list_extensions_reply' ,\ + xcb_list_extensions_sizeof ,<NONE>, 'xcb_list_extensions_sizeof' ,\ + xcb_list_extensions_unchecked ,<NONE>, 'xcb_list_extensions_unchecked' ,\ + xcb_list_fonts ,<NONE>, 'xcb_list_fonts' ,\ + xcb_list_fonts_names_iterator ,<NONE>, 'xcb_list_fonts_names_iterator' ,\ + xcb_list_fonts_names_length ,<NONE>, 'xcb_list_fonts_names_length' ,\ + xcb_list_fonts_reply ,<NONE>, 'xcb_list_fonts_reply' ,\ + xcb_list_fonts_sizeof ,<NONE>, 'xcb_list_fonts_sizeof' ,\ + xcb_list_fonts_unchecked ,<NONE>, 'xcb_list_fonts_unchecked' ,\ + xcb_list_fonts_with_info ,<NONE>, 'xcb_list_fonts_with_info' ,\ + xcb_list_fonts_with_info_name ,<NONE>, 'xcb_list_fonts_with_info_name' ,\ + xcb_list_fonts_with_info_name_end ,<NONE>, 'xcb_list_fonts_with_info_name_end' ,\ + xcb_list_fonts_with_info_name_length ,<NONE>, 'xcb_list_fonts_with_info_name_length' ,\ + xcb_list_fonts_with_info_properties ,<NONE>, 'xcb_list_fonts_with_info_properties' ,\ + xcb_list_fonts_with_info_properties_iterator ,<NONE>, 'xcb_list_fonts_with_info_properties_iterator' ,\ + xcb_list_fonts_with_info_properties_length ,<NONE>, 'xcb_list_fonts_with_info_properties_length' ,\ + xcb_list_fonts_with_info_reply ,<NONE>, 'xcb_list_fonts_with_info_reply' ,\ + xcb_list_fonts_with_info_sizeof ,<NONE>, 'xcb_list_fonts_with_info_sizeof' ,\ + xcb_list_fonts_with_info_unchecked ,<NONE>, 'xcb_list_fonts_with_info_unchecked' ,\ + xcb_list_hosts ,<NONE>, 'xcb_list_hosts' ,\ + xcb_list_hosts_hosts_iterator ,<NONE>, 'xcb_list_hosts_hosts_iterator' ,\ + xcb_list_hosts_hosts_length ,<NONE>, 'xcb_list_hosts_hosts_length' ,\ + xcb_list_hosts_reply ,<NONE>, 'xcb_list_hosts_reply' ,\ + xcb_list_hosts_sizeof ,<NONE>, 'xcb_list_hosts_sizeof' ,\ + xcb_list_hosts_unchecked ,<NONE>, 'xcb_list_hosts_unchecked' ,\ + xcb_list_installed_colormaps ,<NONE>, 'xcb_list_installed_colormaps' ,\ + xcb_list_installed_colormaps_cmaps ,<NONE>, 'xcb_list_installed_colormaps_cmaps' ,\ + xcb_list_installed_colormaps_cmaps_end ,<NONE>, 'xcb_list_installed_colormaps_cmaps_end' ,\ + xcb_list_installed_colormaps_cmaps_length ,<NONE>, 'xcb_list_installed_colormaps_cmaps_length' ,\ + xcb_list_installed_colormaps_reply ,<NONE>, 'xcb_list_installed_colormaps_reply' ,\ + xcb_list_installed_colormaps_sizeof ,<NONE>, 'xcb_list_installed_colormaps_sizeof' ,\ + xcb_list_installed_colormaps_unchecked ,<NONE>, 'xcb_list_installed_colormaps_unchecked' ,\ + xcb_list_properties ,<NONE>, 'xcb_list_properties' ,\ + xcb_list_properties_atoms ,<NONE>, 'xcb_list_properties_atoms' ,\ + xcb_list_properties_atoms_end ,<NONE>, 'xcb_list_properties_atoms_end' ,\ + xcb_list_properties_atoms_length ,<NONE>, 'xcb_list_properties_atoms_length' ,\ + xcb_list_properties_reply ,<NONE>, 'xcb_list_properties_reply' ,\ + xcb_list_properties_sizeof ,<NONE>, 'xcb_list_properties_sizeof' ,\ + xcb_list_properties_unchecked ,<NONE>, 'xcb_list_properties_unchecked' ,\ + xcb_lookup_color ,<NONE>, 'xcb_lookup_color' ,\ + xcb_lookup_color_reply ,<NONE>, 'xcb_lookup_color_reply' ,\ + xcb_lookup_color_sizeof ,<NONE>, 'xcb_lookup_color_sizeof' ,\ + xcb_lookup_color_unchecked ,<NONE>, 'xcb_lookup_color_unchecked' ,\ + xcb_map_subwindows ,<NONE>, 'xcb_map_subwindows' ,\ + xcb_map_subwindows_checked ,<NONE>, 'xcb_map_subwindows_checked' ,\ + xcb_map_window ,<NONE>, 'xcb_map_window' ,\ + xcb_map_window_checked ,<NONE>, 'xcb_map_window_checked' ,\ + xcb_no_operation ,<NONE>, 'xcb_no_operation' ,\ + xcb_no_operation_checked ,<NONE>, 'xcb_no_operation_checked' ,\ + xcb_open_font ,<NONE>, 'xcb_open_font' ,\ + xcb_open_font_checked ,<NONE>, 'xcb_open_font_checked' ,\ + xcb_open_font_name ,<NONE>, 'xcb_open_font_name' ,\ + xcb_open_font_name_end ,<NONE>, 'xcb_open_font_name_end' ,\ + xcb_open_font_name_length ,<NONE>, 'xcb_open_font_name_length' ,\ + xcb_open_font_sizeof ,<NONE>, 'xcb_open_font_sizeof' ,\ + xcb_parse_display ,<NONE>, 'xcb_parse_display' ,\ + xcb_pixmap_end ,<NONE>, 'xcb_pixmap_end' ,\ + xcb_pixmap_next ,<NONE>, 'xcb_pixmap_next' ,\ + xcb_point_end ,<NONE>, 'xcb_point_end' ,\ + xcb_point_next ,<NONE>, 'xcb_point_next' ,\ + xcb_poll_for_event ,<NONE>, 'xcb_poll_for_event' ,\ + xcb_poll_for_queued_event ,<NONE>, 'xcb_poll_for_queued_event' ,\ + xcb_poll_for_reply ,<NONE>, 'xcb_poll_for_reply' ,\ + xcb_poll_for_reply64 ,<NONE>, 'xcb_poll_for_reply64' ,\ + xcb_poll_for_special_event ,<NONE>, 'xcb_poll_for_special_event' ,\ + xcb_poly_arc ,<NONE>, 'xcb_poly_arc' ,\ + xcb_poly_arc_arcs ,<NONE>, 'xcb_poly_arc_arcs' ,\ + xcb_poly_arc_arcs_iterator ,<NONE>, 'xcb_poly_arc_arcs_iterator' ,\ + xcb_poly_arc_arcs_length ,<NONE>, 'xcb_poly_arc_arcs_length' ,\ + xcb_poly_arc_checked ,<NONE>, 'xcb_poly_arc_checked' ,\ + xcb_poly_arc_sizeof ,<NONE>, 'xcb_poly_arc_sizeof' ,\ + xcb_poly_fill_arc ,<NONE>, 'xcb_poly_fill_arc' ,\ + xcb_poly_fill_arc_arcs ,<NONE>, 'xcb_poly_fill_arc_arcs' ,\ + xcb_poly_fill_arc_arcs_iterator ,<NONE>, 'xcb_poly_fill_arc_arcs_iterator' ,\ + xcb_poly_fill_arc_arcs_length ,<NONE>, 'xcb_poly_fill_arc_arcs_length' ,\ + xcb_poly_fill_arc_checked ,<NONE>, 'xcb_poly_fill_arc_checked' ,\ + xcb_poly_fill_arc_sizeof ,<NONE>, 'xcb_poly_fill_arc_sizeof' ,\ + xcb_poly_fill_rectangle ,<NONE>, 'xcb_poly_fill_rectangle' ,\ + xcb_poly_fill_rectangle_checked ,<NONE>, 'xcb_poly_fill_rectangle_checked' ,\ + xcb_poly_fill_rectangle_rectangles ,<NONE>, 'xcb_poly_fill_rectangle_rectangles' ,\ + xcb_poly_fill_rectangle_rectangles_iterator ,<NONE>, 'xcb_poly_fill_rectangle_rectangles_iterator' ,\ + xcb_poly_fill_rectangle_rectangles_length ,<NONE>, 'xcb_poly_fill_rectangle_rectangles_length' ,\ + xcb_poly_fill_rectangle_sizeof ,<NONE>, 'xcb_poly_fill_rectangle_sizeof' ,\ + xcb_poly_line ,<NONE>, 'xcb_poly_line' ,\ + xcb_poly_line_checked ,<NONE>, 'xcb_poly_line_checked' ,\ + xcb_poly_line_points ,<NONE>, 'xcb_poly_line_points' ,\ + xcb_poly_line_points_iterator ,<NONE>, 'xcb_poly_line_points_iterator' ,\ + xcb_poly_line_points_length ,<NONE>, 'xcb_poly_line_points_length' ,\ + xcb_poly_line_sizeof ,<NONE>, 'xcb_poly_line_sizeof' ,\ + xcb_poly_point ,<NONE>, 'xcb_poly_point' ,\ + xcb_poly_point_checked ,<NONE>, 'xcb_poly_point_checked' ,\ + xcb_poly_point_points ,<NONE>, 'xcb_poly_point_points' ,\ + xcb_poly_point_points_iterator ,<NONE>, 'xcb_poly_point_points_iterator' ,\ + xcb_poly_point_points_length ,<NONE>, 'xcb_poly_point_points_length' ,\ + xcb_poly_point_sizeof ,<NONE>, 'xcb_poly_point_sizeof' ,\ + xcb_poly_rectangle ,<NONE>, 'xcb_poly_rectangle' ,\ + xcb_poly_rectangle_checked ,<NONE>, 'xcb_poly_rectangle_checked' ,\ + xcb_poly_rectangle_rectangles ,<NONE>, 'xcb_poly_rectangle_rectangles' ,\ + xcb_poly_rectangle_rectangles_iterator ,<NONE>, 'xcb_poly_rectangle_rectangles_iterator' ,\ + xcb_poly_rectangle_rectangles_length ,<NONE>, 'xcb_poly_rectangle_rectangles_length' ,\ + xcb_poly_rectangle_sizeof ,<NONE>, 'xcb_poly_rectangle_sizeof' ,\ + xcb_poly_segment ,<NONE>, 'xcb_poly_segment' ,\ + xcb_poly_segment_checked ,<NONE>, 'xcb_poly_segment_checked' ,\ + xcb_poly_segment_segments ,<NONE>, 'xcb_poly_segment_segments' ,\ + xcb_poly_segment_segments_iterator ,<NONE>, 'xcb_poly_segment_segments_iterator' ,\ + xcb_poly_segment_segments_length ,<NONE>, 'xcb_poly_segment_segments_length' ,\ + xcb_poly_segment_sizeof ,<NONE>, 'xcb_poly_segment_sizeof' ,\ + xcb_poly_text_16 ,<NONE>, 'xcb_poly_text_16' ,\ + xcb_poly_text_16_checked ,<NONE>, 'xcb_poly_text_16_checked' ,\ + xcb_poly_text_16_items ,<NONE>, 'xcb_poly_text_16_items' ,\ + xcb_poly_text_16_items_end ,<NONE>, 'xcb_poly_text_16_items_end' ,\ + xcb_poly_text_16_items_length ,<NONE>, 'xcb_poly_text_16_items_length' ,\ + xcb_poly_text_16_sizeof ,<NONE>, 'xcb_poly_text_16_sizeof' ,\ + xcb_poly_text_8 ,<NONE>, 'xcb_poly_text_8' ,\ + xcb_poly_text_8_checked ,<NONE>, 'xcb_poly_text_8_checked' ,\ + xcb_poly_text_8_items ,<NONE>, 'xcb_poly_text_8_items' ,\ + xcb_poly_text_8_items_end ,<NONE>, 'xcb_poly_text_8_items_end' ,\ + xcb_poly_text_8_items_length ,<NONE>, 'xcb_poly_text_8_items_length' ,\ + xcb_poly_text_8_sizeof ,<NONE>, 'xcb_poly_text_8_sizeof' ,\ + xcb_popcount ,<NONE>, 'xcb_popcount' ,\ + xcb_prefetch_extension_data ,<NONE>, 'xcb_prefetch_extension_data' ,\ + xcb_prefetch_maximum_request_length ,<NONE>, 'xcb_prefetch_maximum_request_length' ,\ + xcb_put_image ,<NONE>, 'xcb_put_image' ,\ + xcb_put_image_checked ,<NONE>, 'xcb_put_image_checked' ,\ + xcb_put_image_data ,<NONE>, 'xcb_put_image_data' ,\ + xcb_put_image_data_end ,<NONE>, 'xcb_put_image_data_end' ,\ + xcb_put_image_data_length ,<NONE>, 'xcb_put_image_data_length' ,\ + xcb_put_image_sizeof ,<NONE>, 'xcb_put_image_sizeof' ,\ + xcb_query_best_size ,<NONE>, 'xcb_query_best_size' ,\ + xcb_query_best_size_reply ,<NONE>, 'xcb_query_best_size_reply' ,\ + xcb_query_best_size_unchecked ,<NONE>, 'xcb_query_best_size_unchecked' ,\ + xcb_query_colors ,<NONE>, 'xcb_query_colors' ,\ + xcb_query_colors_colors ,<NONE>, 'xcb_query_colors_colors' ,\ + xcb_query_colors_colors_iterator ,<NONE>, 'xcb_query_colors_colors_iterator' ,\ + xcb_query_colors_colors_length ,<NONE>, 'xcb_query_colors_colors_length' ,\ + xcb_query_colors_reply ,<NONE>, 'xcb_query_colors_reply' ,\ + xcb_query_colors_sizeof ,<NONE>, 'xcb_query_colors_sizeof' ,\ + xcb_query_colors_unchecked ,<NONE>, 'xcb_query_colors_unchecked' ,\ + xcb_query_extension ,<NONE>, 'xcb_query_extension' ,\ + xcb_query_extension_reply ,<NONE>, 'xcb_query_extension_reply' ,\ + xcb_query_extension_sizeof ,<NONE>, 'xcb_query_extension_sizeof' ,\ + xcb_query_extension_unchecked ,<NONE>, 'xcb_query_extension_unchecked' ,\ + xcb_query_font ,<NONE>, 'xcb_query_font' ,\ + xcb_query_font_char_infos ,<NONE>, 'xcb_query_font_char_infos' ,\ + xcb_query_font_char_infos_iterator ,<NONE>, 'xcb_query_font_char_infos_iterator' ,\ + xcb_query_font_char_infos_length ,<NONE>, 'xcb_query_font_char_infos_length' ,\ + xcb_query_font_properties ,<NONE>, 'xcb_query_font_properties' ,\ + xcb_query_font_properties_iterator ,<NONE>, 'xcb_query_font_properties_iterator' ,\ + xcb_query_font_properties_length ,<NONE>, 'xcb_query_font_properties_length' ,\ + xcb_query_font_reply ,<NONE>, 'xcb_query_font_reply' ,\ + xcb_query_font_sizeof ,<NONE>, 'xcb_query_font_sizeof' ,\ + xcb_query_font_unchecked ,<NONE>, 'xcb_query_font_unchecked' ,\ + xcb_query_keymap ,<NONE>, 'xcb_query_keymap' ,\ + xcb_query_keymap_reply ,<NONE>, 'xcb_query_keymap_reply' ,\ + xcb_query_keymap_unchecked ,<NONE>, 'xcb_query_keymap_unchecked' ,\ + xcb_query_pointer ,<NONE>, 'xcb_query_pointer' ,\ + xcb_query_pointer_reply ,<NONE>, 'xcb_query_pointer_reply' ,\ + xcb_query_pointer_unchecked ,<NONE>, 'xcb_query_pointer_unchecked' ,\ + xcb_query_text_extents ,<NONE>, 'xcb_query_text_extents' ,\ + xcb_query_text_extents_reply ,<NONE>, 'xcb_query_text_extents_reply' ,\ + xcb_query_text_extents_sizeof ,<NONE>, 'xcb_query_text_extents_sizeof' ,\ + xcb_query_text_extents_unchecked ,<NONE>, 'xcb_query_text_extents_unchecked' ,\ + xcb_query_tree ,<NONE>, 'xcb_query_tree' ,\ + xcb_query_tree_children ,<NONE>, 'xcb_query_tree_children' ,\ + xcb_query_tree_children_end ,<NONE>, 'xcb_query_tree_children_end' ,\ + xcb_query_tree_children_length ,<NONE>, 'xcb_query_tree_children_length' ,\ + xcb_query_tree_reply ,<NONE>, 'xcb_query_tree_reply' ,\ + xcb_query_tree_sizeof ,<NONE>, 'xcb_query_tree_sizeof' ,\ + xcb_query_tree_unchecked ,<NONE>, 'xcb_query_tree_unchecked' ,\ + xcb_recolor_cursor ,<NONE>, 'xcb_recolor_cursor' ,\ + xcb_recolor_cursor_checked ,<NONE>, 'xcb_recolor_cursor_checked' ,\ + xcb_rectangle_end ,<NONE>, 'xcb_rectangle_end' ,\ + xcb_rectangle_next ,<NONE>, 'xcb_rectangle_next' ,\ + xcb_register_for_special_xge ,<NONE>, 'xcb_register_for_special_xge' ,\ + xcb_reparent_window ,<NONE>, 'xcb_reparent_window' ,\ + xcb_reparent_window_checked ,<NONE>, 'xcb_reparent_window_checked' ,\ + xcb_request_check ,<NONE>, 'xcb_request_check' ,\ + xcb_rgb_end ,<NONE>, 'xcb_rgb_end' ,\ + xcb_rgb_next ,<NONE>, 'xcb_rgb_next' ,\ + xcb_rotate_properties ,<NONE>, 'xcb_rotate_properties' ,\ + xcb_rotate_properties_atoms ,<NONE>, 'xcb_rotate_properties_atoms' ,\ + xcb_rotate_properties_atoms_end ,<NONE>, 'xcb_rotate_properties_atoms_end' ,\ + xcb_rotate_properties_atoms_length ,<NONE>, 'xcb_rotate_properties_atoms_length' ,\ + xcb_rotate_properties_checked ,<NONE>, 'xcb_rotate_properties_checked' ,\ + xcb_rotate_properties_sizeof ,<NONE>, 'xcb_rotate_properties_sizeof' ,\ + xcb_screen_allowed_depths_iterator ,<NONE>, 'xcb_screen_allowed_depths_iterator' ,\ + xcb_screen_allowed_depths_length ,<NONE>, 'xcb_screen_allowed_depths_length' ,\ + xcb_screen_end ,<NONE>, 'xcb_screen_end' ,\ + xcb_screen_next ,<NONE>, 'xcb_screen_next' ,\ + xcb_screen_sizeof ,<NONE>, 'xcb_screen_sizeof' ,\ + xcb_segment_end ,<NONE>, 'xcb_segment_end' ,\ + xcb_segment_next ,<NONE>, 'xcb_segment_next' ,\ + xcb_send_event ,<NONE>, 'xcb_send_event' ,\ + xcb_send_event_checked ,<NONE>, 'xcb_send_event_checked' ,\ + xcb_send_fd ,<NONE>, 'xcb_send_fd' ,\ + xcb_send_request ,<NONE>, 'xcb_send_request' ,\ + xcb_send_request64 ,<NONE>, 'xcb_send_request64' ,\ + xcb_send_request_with_fds ,<NONE>, 'xcb_send_request_with_fds' ,\ + xcb_send_request_with_fds64 ,<NONE>, 'xcb_send_request_with_fds64' ,\ + xcb_set_access_control ,<NONE>, 'xcb_set_access_control' ,\ + xcb_set_access_control_checked ,<NONE>, 'xcb_set_access_control_checked' ,\ + xcb_set_clip_rectangles ,<NONE>, 'xcb_set_clip_rectangles' ,\ + xcb_set_clip_rectangles_checked ,<NONE>, 'xcb_set_clip_rectangles_checked' ,\ + xcb_set_clip_rectangles_rectangles ,<NONE>, 'xcb_set_clip_rectangles_rectangles' ,\ + xcb_set_clip_rectangles_rectangles_iterator ,<NONE>, 'xcb_set_clip_rectangles_rectangles_iterator' ,\ + xcb_set_clip_rectangles_rectangles_length ,<NONE>, 'xcb_set_clip_rectangles_rectangles_length' ,\ + xcb_set_clip_rectangles_sizeof ,<NONE>, 'xcb_set_clip_rectangles_sizeof' ,\ + xcb_set_close_down_mode ,<NONE>, 'xcb_set_close_down_mode' ,\ + xcb_set_close_down_mode_checked ,<NONE>, 'xcb_set_close_down_mode_checked' ,\ + xcb_set_dashes ,<NONE>, 'xcb_set_dashes' ,\ + xcb_set_dashes_checked ,<NONE>, 'xcb_set_dashes_checked' ,\ + xcb_set_dashes_dashes ,<NONE>, 'xcb_set_dashes_dashes' ,\ + xcb_set_dashes_dashes_end ,<NONE>, 'xcb_set_dashes_dashes_end' ,\ + xcb_set_dashes_dashes_length ,<NONE>, 'xcb_set_dashes_dashes_length' ,\ + xcb_set_dashes_sizeof ,<NONE>, 'xcb_set_dashes_sizeof' ,\ + xcb_set_font_path ,<NONE>, 'xcb_set_font_path' ,\ + xcb_set_font_path_checked ,<NONE>, 'xcb_set_font_path_checked' ,\ + xcb_set_font_path_font_iterator ,<NONE>, 'xcb_set_font_path_font_iterator' ,\ + xcb_set_font_path_font_length ,<NONE>, 'xcb_set_font_path_font_length' ,\ + xcb_set_font_path_sizeof ,<NONE>, 'xcb_set_font_path_sizeof' ,\ + xcb_set_input_focus ,<NONE>, 'xcb_set_input_focus' ,\ + xcb_set_input_focus_checked ,<NONE>, 'xcb_set_input_focus_checked' ,\ + xcb_set_modifier_mapping ,<NONE>, 'xcb_set_modifier_mapping' ,\ + xcb_set_modifier_mapping_reply ,<NONE>, 'xcb_set_modifier_mapping_reply' ,\ + xcb_set_modifier_mapping_sizeof ,<NONE>, 'xcb_set_modifier_mapping_sizeof' ,\ + xcb_set_modifier_mapping_unchecked ,<NONE>, 'xcb_set_modifier_mapping_unchecked' ,\ + xcb_set_pointer_mapping ,<NONE>, 'xcb_set_pointer_mapping' ,\ + xcb_set_pointer_mapping_reply ,<NONE>, 'xcb_set_pointer_mapping_reply' ,\ + xcb_set_pointer_mapping_sizeof ,<NONE>, 'xcb_set_pointer_mapping_sizeof' ,\ + xcb_set_pointer_mapping_unchecked ,<NONE>, 'xcb_set_pointer_mapping_unchecked' ,\ + xcb_set_screen_saver ,<NONE>, 'xcb_set_screen_saver' ,\ + xcb_set_screen_saver_checked ,<NONE>, 'xcb_set_screen_saver_checked' ,\ + xcb_set_selection_owner ,<NONE>, 'xcb_set_selection_owner' ,\ + xcb_set_selection_owner_checked ,<NONE>, 'xcb_set_selection_owner_checked' ,\ + xcb_setup_authenticate_end ,<NONE>, 'xcb_setup_authenticate_end' ,\ + xcb_setup_authenticate_next ,<NONE>, 'xcb_setup_authenticate_next' ,\ + xcb_setup_authenticate_reason ,<NONE>, 'xcb_setup_authenticate_reason' ,\ + xcb_setup_authenticate_reason_end ,<NONE>, 'xcb_setup_authenticate_reason_end' ,\ + xcb_setup_authenticate_reason_length ,<NONE>, 'xcb_setup_authenticate_reason_length' ,\ + xcb_setup_authenticate_sizeof ,<NONE>, 'xcb_setup_authenticate_sizeof' ,\ + xcb_setup_end ,<NONE>, 'xcb_setup_end' ,\ + xcb_setup_failed_end ,<NONE>, 'xcb_setup_failed_end' ,\ + xcb_setup_failed_next ,<NONE>, 'xcb_setup_failed_next' ,\ + xcb_setup_failed_reason ,<NONE>, 'xcb_setup_failed_reason' ,\ + xcb_setup_failed_reason_end ,<NONE>, 'xcb_setup_failed_reason_end' ,\ + xcb_setup_failed_reason_length ,<NONE>, 'xcb_setup_failed_reason_length' ,\ + xcb_setup_failed_sizeof ,<NONE>, 'xcb_setup_failed_sizeof' ,\ + xcb_setup_next ,<NONE>, 'xcb_setup_next' ,\ + xcb_setup_pixmap_formats ,<NONE>, 'xcb_setup_pixmap_formats' ,\ + xcb_setup_pixmap_formats_iterator ,<NONE>, 'xcb_setup_pixmap_formats_iterator' ,\ + xcb_setup_pixmap_formats_length ,<NONE>, 'xcb_setup_pixmap_formats_length' ,\ + xcb_setup_request_authorization_protocol_data ,<NONE>, 'xcb_setup_request_authorization_protocol_data' ,\ + xcb_setup_request_authorization_protocol_data_end ,<NONE>, 'xcb_setup_request_authorization_protocol_data_end' ,\ + xcb_setup_request_authorization_protocol_data_length ,<NONE>, 'xcb_setup_request_authorization_protocol_data_length' ,\ + xcb_setup_request_authorization_protocol_name ,<NONE>, 'xcb_setup_request_authorization_protocol_name' ,\ + xcb_setup_request_authorization_protocol_name_end ,<NONE>, 'xcb_setup_request_authorization_protocol_name_end' ,\ + xcb_setup_request_authorization_protocol_name_length ,<NONE>, 'xcb_setup_request_authorization_protocol_name_length' ,\ + xcb_setup_request_end ,<NONE>, 'xcb_setup_request_end' ,\ + xcb_setup_request_next ,<NONE>, 'xcb_setup_request_next' ,\ + xcb_setup_request_sizeof ,<NONE>, 'xcb_setup_request_sizeof' ,\ + xcb_setup_roots_iterator ,<NONE>, 'xcb_setup_roots_iterator' ,\ + xcb_setup_roots_length ,<NONE>, 'xcb_setup_roots_length' ,\ + xcb_setup_sizeof ,<NONE>, 'xcb_setup_sizeof' ,\ + xcb_setup_vendor ,<NONE>, 'xcb_setup_vendor' ,\ + xcb_setup_vendor_end ,<NONE>, 'xcb_setup_vendor_end' ,\ + xcb_setup_vendor_length ,<NONE>, 'xcb_setup_vendor_length' ,\ + xcb_store_colors ,<NONE>, 'xcb_store_colors' ,\ + xcb_store_colors_checked ,<NONE>, 'xcb_store_colors_checked' ,\ + xcb_store_colors_items ,<NONE>, 'xcb_store_colors_items' ,\ + xcb_store_colors_items_iterator ,<NONE>, 'xcb_store_colors_items_iterator' ,\ + xcb_store_colors_items_length ,<NONE>, 'xcb_store_colors_items_length' ,\ + xcb_store_colors_sizeof ,<NONE>, 'xcb_store_colors_sizeof' ,\ + xcb_store_named_color ,<NONE>, 'xcb_store_named_color' ,\ + xcb_store_named_color_checked ,<NONE>, 'xcb_store_named_color_checked' ,\ + xcb_store_named_color_name ,<NONE>, 'xcb_store_named_color_name' ,\ + xcb_store_named_color_name_end ,<NONE>, 'xcb_store_named_color_name_end' ,\ + xcb_store_named_color_name_length ,<NONE>, 'xcb_store_named_color_name_length' ,\ + xcb_store_named_color_sizeof ,<NONE>, 'xcb_store_named_color_sizeof' ,\ + xcb_str_end ,<NONE>, 'xcb_str_end' ,\ + xcb_str_name ,<NONE>, 'xcb_str_name' ,\ + xcb_str_name_end ,<NONE>, 'xcb_str_name_end' ,\ + xcb_str_name_length ,<NONE>, 'xcb_str_name_length' ,\ + xcb_str_next ,<NONE>, 'xcb_str_next' ,\ + xcb_str_sizeof ,<NONE>, 'xcb_str_sizeof' ,\ + xcb_sumof ,<NONE>, 'xcb_sumof' ,\ + xcb_take_socket ,<NONE>, 'xcb_take_socket' ,\ + xcb_timecoord_end ,<NONE>, 'xcb_timecoord_end' ,\ + xcb_timecoord_next ,<NONE>, 'xcb_timecoord_next' ,\ + xcb_timestamp_end ,<NONE>, 'xcb_timestamp_end' ,\ + xcb_timestamp_next ,<NONE>, 'xcb_timestamp_next' ,\ + xcb_total_read ,<NONE>, 'xcb_total_read' ,\ + xcb_total_written ,<NONE>, 'xcb_total_written' ,\ + xcb_translate_coordinates ,<NONE>, 'xcb_translate_coordinates' ,\ + xcb_translate_coordinates_reply ,<NONE>, 'xcb_translate_coordinates_reply' ,\ + xcb_translate_coordinates_unchecked ,<NONE>, 'xcb_translate_coordinates_unchecked' ,\ + xcb_ungrab_button ,<NONE>, 'xcb_ungrab_button' ,\ + xcb_ungrab_button_checked ,<NONE>, 'xcb_ungrab_button_checked' ,\ + xcb_ungrab_key ,<NONE>, 'xcb_ungrab_key' ,\ + xcb_ungrab_keyboard ,<NONE>, 'xcb_ungrab_keyboard' ,\ + xcb_ungrab_keyboard_checked ,<NONE>, 'xcb_ungrab_keyboard_checked' ,\ + xcb_ungrab_key_checked ,<NONE>, 'xcb_ungrab_key_checked' ,\ + xcb_ungrab_pointer ,<NONE>, 'xcb_ungrab_pointer' ,\ + xcb_ungrab_pointer_checked ,<NONE>, 'xcb_ungrab_pointer_checked' ,\ + xcb_ungrab_server ,<NONE>, 'xcb_ungrab_server' ,\ + xcb_ungrab_server_checked ,<NONE>, 'xcb_ungrab_server_checked' ,\ + xcb_uninstall_colormap ,<NONE>, 'xcb_uninstall_colormap' ,\ + xcb_uninstall_colormap_checked ,<NONE>, 'xcb_uninstall_colormap_checked' ,\ + xcb_unmap_subwindows ,<NONE>, 'xcb_unmap_subwindows' ,\ + xcb_unmap_subwindows_checked ,<NONE>, 'xcb_unmap_subwindows_checked' ,\ + xcb_unmap_window ,<NONE>, 'xcb_unmap_window' ,\ + xcb_unmap_window_checked ,<NONE>, 'xcb_unmap_window_checked' ,\ + xcb_unregister_for_special_event ,<NONE>, 'xcb_unregister_for_special_event' ,\ + xcb_visualid_end ,<NONE>, 'xcb_visualid_end' ,\ + xcb_visualid_next ,<NONE>, 'xcb_visualid_next' ,\ + xcb_visualtype_end ,<NONE>, 'xcb_visualtype_end' ,\ + xcb_visualtype_next ,<NONE>, 'xcb_visualtype_next' ,\ + xcb_wait_for_event ,<NONE>, 'xcb_wait_for_event' ,\ + xcb_wait_for_reply ,<NONE>, 'xcb_wait_for_reply' ,\ + xcb_wait_for_reply64 ,<NONE>, 'xcb_wait_for_reply64' ,\ + xcb_wait_for_special_event ,<NONE>, 'xcb_wait_for_special_event' ,\ + xcb_warp_pointer ,<NONE>, 'xcb_warp_pointer' ,\ + xcb_warp_pointer_checked ,<NONE>, 'xcb_warp_pointer_checked' ,\ + xcb_window_end ,<NONE>, 'xcb_window_end' ,\ + xcb_window_next ,<NONE>, 'xcb_window_next' ,\ + xcb_writev ,<NONE>, 'xcb_writev' ,\ + xcb_xc_misc_get_version ,<NONE>, 'xcb_xc_misc_get_version' ,\ + xcb_xc_misc_get_version_reply ,<NONE>, 'xcb_xc_misc_get_version_reply' ,\ + xcb_xc_misc_get_version_unchecked ,<NONE>, 'xcb_xc_misc_get_version_unchecked' ,\ + xcb_xc_misc_get_xid_list ,<NONE>, 'xcb_xc_misc_get_xid_list' ,\ + xcb_xc_misc_get_xid_list_ids ,<NONE>, 'xcb_xc_misc_get_xid_list_ids' ,\ + xcb_xc_misc_get_xid_list_ids_end ,<NONE>, 'xcb_xc_misc_get_xid_list_ids_end' ,\ + xcb_xc_misc_get_xid_list_ids_length ,<NONE>, 'xcb_xc_misc_get_xid_list_ids_length' ,\ + xcb_xc_misc_get_xid_list_reply ,<NONE>, 'xcb_xc_misc_get_xid_list_reply' ,\ + xcb_xc_misc_get_xid_list_sizeof ,<NONE>, 'xcb_xc_misc_get_xid_list_sizeof' ,\ + xcb_xc_misc_get_xid_list_unchecked ,<NONE>, 'xcb_xc_misc_get_xid_list_unchecked' ,\ + xcb_xc_misc_get_xid_range ,<NONE>, 'xcb_xc_misc_get_xid_range' ,\ + xcb_xc_misc_get_xid_range_reply ,<NONE>, 'xcb_xc_misc_get_xid_range_reply' ,\ + xcb_xc_misc_get_xid_range_unchecked ,<NONE>, 'xcb_xc_misc_get_xid_range_unchecked' ,\ + xcb_xc_misc_id ,<NONE>, 'xcb_xc_misc_id' + + + + +import_proto 'libxcb-shm.so' ,\ + xcb_shm_attach ,<NONE>, 'xcb_shm_attach' ,\ + xcb_shm_attach_checked ,<NONE>, 'xcb_shm_attach_checked' ,\ + xcb_shm_attach_fd ,<NONE>, 'xcb_shm_attach_fd' ,\ + xcb_shm_attach_fd_checked ,<NONE>, 'xcb_shm_attach_fd_checked' ,\ + xcb_shm_create_pixmap ,<NONE>, 'xcb_shm_create_pixmap' ,\ + xcb_shm_create_pixmap_checked ,<NONE>, 'xcb_shm_create_pixmap_checked' ,\ + xcb_shm_create_segment ,<NONE>, 'xcb_shm_create_segment' ,\ + xcb_shm_create_segment_reply ,<NONE>, 'xcb_shm_create_segment_reply' ,\ + xcb_shm_create_segment_reply_fds ,<NONE>, 'xcb_shm_create_segment_reply_fds' ,\ + xcb_shm_create_segment_unchecked ,<NONE>, 'xcb_shm_create_segment_unchecked' ,\ + xcb_shm_detach ,<NONE>, 'xcb_shm_detach' ,\ + xcb_shm_detach_checked ,<NONE>, 'xcb_shm_detach_checked' ,\ + xcb_shm_get_image ,<NONE>, 'xcb_shm_get_image' ,\ + xcb_shm_get_image_reply ,<NONE>, 'xcb_shm_get_image_reply' ,\ + xcb_shm_get_image_unchecked ,<NONE>, 'xcb_shm_get_image_unchecked' ,\ + xcb_shm_put_image ,<NONE>, 'xcb_shm_put_image' ,\ + xcb_shm_put_image_checked ,<NONE>, 'xcb_shm_put_image_checked' ,\ + xcb_shm_query_version ,<NONE>, 'xcb_shm_query_version' ,\ + xcb_shm_query_version_reply ,<NONE>, 'xcb_shm_query_version_reply' ,\ + xcb_shm_query_version_unchecked ,<NONE>, 'xcb_shm_query_version_unchecked' ,\ + xcb_shm_seg_end ,<NONE>, 'xcb_shm_seg_end' ,\ + xcb_shm_seg_next ,<NONE>, 'xcb_shm_seg_next' ,\ + xcb_shm_id ,<NONE>, 'xcb_shm_id' ;<< This is variable! + + + + + + + + + + + + + + + + + + + + + + ADDED freshlib/imports/Linux/pthreads.inc Index: freshlib/imports/Linux/pthreads.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/pthreads.inc @@ -0,0 +1,163 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: libpthread (posix threads) import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Needs editing of the function arguments +;_________________________________________________________________________________________ + +import_proto 'libpthread.so.0', \ +fork ,<NONE>, 'fork', \ +longjmp ,<NONE>, 'longjmp', \ +pthread_atfork ,<NONE>, 'pthread_atfork', \ +pthread_attr_destroy ,<NONE>, 'pthread_attr_destroy', \ +pthread_attr_getaffinity_np ,<NONE>, 'pthread_attr_getaffinity_np', \ +pthread_attr_getdetachstate ,<NONE>, 'pthread_attr_getdetachstate', \ +pthread_attr_getguardsize ,<NONE>, 'pthread_attr_getguardsize', \ +pthread_attr_getinheritsched ,<NONE>, 'pthread_attr_getinheritsched', \ +pthread_attr_getschedparam ,<NONE>, 'pthread_attr_getschedparam', \ +pthread_attr_getschedpolicy ,<NONE>, 'pthread_attr_getschedpolicy', \ +pthread_attr_getscope ,<NONE>, 'pthread_attr_getscope', \ +pthread_attr_getstack ,<NONE>, 'pthread_attr_getstack', \ +pthread_attr_getstackaddr ,<NONE>, 'pthread_attr_getstackaddr', \ +pthread_attr_getstacksize ,<NONE>, 'pthread_attr_getstacksize', \ +pthread_attr_init ,<NONE>, 'pthread_attr_init', \ +pthread_attr_setaffinity_np ,<NONE>, 'pthread_attr_setaffinity_np', \ +pthread_attr_setdetachstate ,<NONE>, 'pthread_attr_setdetachstate', \ +pthread_attr_setguardsize ,<NONE>, 'pthread_attr_setguardsize', \ +pthread_attr_setinheritsched ,<NONE>, 'pthread_attr_setinheritsched', \ +pthread_attr_setschedparam ,<NONE>, 'pthread_attr_setschedparam', \ +pthread_attr_setschedpolicy ,<NONE>, 'pthread_attr_setschedpolicy', \ +pthread_attr_setscope ,<NONE>, 'pthread_attr_setscope', \ +pthread_attr_setstack ,<NONE>, 'pthread_attr_setstack', \ +pthread_attr_setstackaddr ,<NONE>, 'pthread_attr_setstackaddr', \ +pthread_attr_setstacksize ,<NONE>, 'pthread_attr_setstacksize', \ +pthread_barrier_destroy ,<NONE>, 'pthread_barrier_destroy', \ +pthread_barrier_init ,<NONE>, 'pthread_barrier_init', \ +pthread_barrier_wait ,<NONE>, 'pthread_barrier_wait', \ +pthread_barrierattr_destroy ,<NONE>, 'pthread_barrierattr_destroy', \ +pthread_barrierattr_getpshared ,<NONE>, 'pthread_barrierattr_getpshared', \ +pthread_barrierattr_init ,<NONE>, 'pthread_barrierattr_init', \ +pthread_barrierattr_setpshared ,<NONE>, 'pthread_barrierattr_setpshared', \ +pthread_cancel ,<NONE>, 'pthread_cancel', \ +pthread_cond_broadcast ,<NONE>, 'pthread_cond_broadcast', \ +pthread_cond_destroy ,<NONE>, 'pthread_cond_destroy', \ +pthread_cond_init ,<NONE>, 'pthread_cond_init', \ +pthread_cond_signal ,<NONE>, 'pthread_cond_signal', \ +pthread_cond_timedwait ,<NONE>, 'pthread_cond_timedwait', \ +pthread_cond_wait ,<NONE>, 'pthread_cond_wait', \ +pthread_condattr_destroy ,<NONE>, 'pthread_condattr_destroy', \ +pthread_condattr_getclock ,<NONE>, 'pthread_condattr_getclock', \ +pthread_condattr_getpshared ,<NONE>, 'pthread_condattr_getpshared', \ +pthread_condattr_init ,<NONE>, 'pthread_condattr_init', \ +pthread_condattr_setclock ,<NONE>, 'pthread_condattr_setclock', \ +pthread_condattr_setpshared ,<NONE>, 'pthread_condattr_setpshared', \ +pthread_create ,<.pThreadID, .attr, .pThreadProc, .argument>,'pthread_create', \ +pthread_detach ,<NONE>, 'pthread_detach', \ +pthread_equal ,<NONE>, 'pthread_equal', \ +pthread_exit ,<.retval>, 'pthread_exit', \ +pthread_getaffinity_np ,<NONE>, 'pthread_getaffinity_np', \ +pthread_getattr_np ,<NONE>, 'pthread_getattr_np', \ +pthread_getconcurrency ,<NONE>, 'pthread_getconcurrency', \ +pthread_getcpuclockid ,<NONE>, 'pthread_getcpuclockid', \ +pthread_getschedparam ,<NONE>, 'pthread_getschedparam', \ +pthread_getspecific ,<NONE>, 'pthread_getspecific', \ +pthread_join ,<NONE>, 'pthread_join', \ +pthread_key_create ,<NONE>, 'pthread_key_create', \ +pthread_key_delete ,<NONE>, 'pthread_key_delete', \ +pthread_kill ,<.ThreadID, .signal>, 'pthread_kill', \ +pthread_kill_other_threads_np ,<NONE>, 'pthread_kill_other_threads_np', \ +pthread_mutex_consistent_np ,<NONE>, 'pthread_mutex_consistent_np', \ +pthread_mutex_destroy ,<.pMutex>, 'pthread_mutex_destroy', \ +pthread_mutex_getprioceiling ,<NONE>, 'pthread_mutex_getprioceiling', \ +pthread_mutex_init ,<.pMutex, .pAttr>, 'pthread_mutex_init', \ +pthread_mutex_lock ,<.pMutex>, 'pthread_mutex_lock', \ +pthread_mutex_setprioceiling ,<NONE>, 'pthread_mutex_setprioceiling', \ +pthread_mutex_timedlock ,<.pMutex, .pTimeout>, 'pthread_mutex_timedlock', \ +pthread_mutex_trylock ,<.pMutex>, 'pthread_mutex_trylock', \ +pthread_mutex_unlock ,<.pMutex>, 'pthread_mutex_unlock', \ +pthread_mutexattr_destroy ,<.pAttr>, 'pthread_mutexattr_destroy', \ +pthread_mutexattr_getkind_np ,<NONE>, 'pthread_mutexattr_getkind_np', \ +pthread_mutexattr_getprioceiling ,<NONE>, 'pthread_mutexattr_getprioceiling', \ +pthread_mutexattr_getprotocol ,<NONE>, 'pthread_mutexattr_getprotocol', \ +pthread_mutexattr_getpshared ,<NONE>, 'pthread_mutexattr_getpshared', \ +pthread_mutexattr_getrobust_np ,<NONE>, 'pthread_mutexattr_getrobust_np', \ +pthread_mutexattr_gettype ,<NONE>, 'pthread_mutexattr_gettype', \ +pthread_mutexattr_init ,<.pAttr>, 'pthread_mutexattr_init', \ +pthread_mutexattr_setkind_np ,<NONE>, 'pthread_mutexattr_setkind_np', \ +pthread_mutexattr_setprioceiling ,<NONE>, 'pthread_mutexattr_setprioceiling', \ +pthread_mutexattr_setprotocol ,<NONE>, 'pthread_mutexattr_setprotocol', \ +pthread_mutexattr_setpshared ,<NONE>, 'pthread_mutexattr_setpshared', \ +pthread_mutexattr_setrobust_np ,<NONE>, 'pthread_mutexattr_setrobust_np', \ +pthread_mutexattr_settype ,<NONE>, 'pthread_mutexattr_settype', \ +pthread_once ,<NONE>, 'pthread_once', \ +pthread_rwlock_destroy ,<NONE>, 'pthread_rwlock_destroy', \ +pthread_rwlock_init ,<NONE>, 'pthread_rwlock_init', \ +pthread_rwlock_rdlock ,<NONE>, 'pthread_rwlock_rdlock', \ +pthread_rwlock_timedrdlock ,<NONE>, 'pthread_rwlock_timedrdlock', \ +pthread_rwlock_timedwrlock ,<NONE>, 'pthread_rwlock_timedwrlock', \ +pthread_rwlock_tryrdlock ,<NONE>, 'pthread_rwlock_tryrdlock', \ +pthread_rwlock_trywrlock ,<NONE>, 'pthread_rwlock_trywrlock', \ +pthread_rwlock_unlock ,<NONE>, 'pthread_rwlock_unlock', \ +pthread_rwlock_wrlock ,<NONE>, 'pthread_rwlock_wrlock', \ +pthread_rwlockattr_destroy ,<NONE>, 'pthread_rwlockattr_destroy', \ +pthread_rwlockattr_getkind_np ,<NONE>, 'pthread_rwlockattr_getkind_np', \ +pthread_rwlockattr_getpshared ,<NONE>, 'pthread_rwlockattr_getpshared', \ +pthread_rwlockattr_init ,<NONE>, 'pthread_rwlockattr_init', \ +pthread_rwlockattr_setkind_np ,<NONE>, 'pthread_rwlockattr_setkind_np', \ +pthread_rwlockattr_setpshared ,<NONE>, 'pthread_rwlockattr_setpshared', \ +pthread_self ,<NONE>, 'pthread_self', \ +pthread_setaffinity_np ,<NONE>, 'pthread_setaffinity_np', \ +pthread_setcancelstate ,<NONE>, 'pthread_setcancelstate', \ +pthread_setcanceltype ,<NONE>, 'pthread_setcanceltype', \ +pthread_setconcurrency ,<NONE>, 'pthread_setconcurrency', \ +pthread_setschedparam ,<NONE>, 'pthread_setschedparam', \ +pthread_setschedprio ,<NONE>, 'pthread_setschedprio', \ +pthread_setspecific ,<NONE>, 'pthread_setspecific', \ +pthread_sigmask ,<NONE>, 'pthread_sigmask', \ +pthread_spin_destroy ,<NONE>, 'pthread_spin_destroy', \ +pthread_spin_init ,<NONE>, 'pthread_spin_init', \ +pthread_spin_lock ,<NONE>, 'pthread_spin_lock', \ +pthread_spin_trylock ,<NONE>, 'pthread_spin_trylock', \ +pthread_spin_unlock ,<NONE>, 'pthread_spin_unlock', \ +pthread_testcancel ,<NONE>, 'pthread_testcancel', \ +pthread_timedjoin_np ,<NONE>, 'pthread_timedjoin_np', \ +pthread_tryjoin_np ,<NONE>, 'pthread_tryjoin_np', \ +pthread_yield ,<NONE>, 'pthread_yield', \ +pwrite ,<NONE>, 'pwrite', \ +pwrite64 ,<NONE>, 'pwrite64', \ +raise ,<NONE>, 'raise', \ +\;read ,<NONE>, 'read', \ +recv ,<NONE>, 'recv', \ +recvfrom ,<NONE>, 'recvfrom', \ +recvmsg ,<NONE>, 'recvmsg', \ +sem_close ,<NONE>, 'sem_close', \ +sem_destroy ,<NONE>, 'sem_destroy', \ +sem_getvalue ,<NONE>, 'sem_getvalue', \ +sem_init ,<NONE>, 'sem_init', \ +sem_open ,<NONE>, 'sem_open', \ +sem_post ,<NONE>, 'sem_post', \ +sem_timedwait ,<NONE>, 'sem_timedwait', \ +sem_trywait ,<NONE>, 'sem_trywait', \ +sem_unlink ,<NONE>, 'sem_unlink', \ +sem_wait ,<NONE>, 'sem_wait', \ +send ,<NONE>, 'send', \ +sendmsg ,<NONE>, 'sendmsg', \ +sendto ,<NONE>, 'sendto', \ +sigaction ,<NONE>, 'sigaction', \ +siglongjmp ,<NONE>, 'siglongjmp', \ +sigwait ,<NONE>, 'sigwait', \ +system ,<NONE>, 'system', \ +tcdrain ,<NONE>, 'tcdrain', \ +vfork ,<NONE>, 'vfork', \ +waitpid ,<NONE>, 'waitpid';, \ +\;write ,<NONE>, 'write' + + + ADDED freshlib/imports/Linux/sdl.inc Index: freshlib/imports/Linux/sdl.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/sdl.inc @@ -0,0 +1,232 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SDL v1.2.11 API functions. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +; +; SDL 1.2.11 includes written by Raedwulf +; a.k.a. Tai Chi Minh Ralph Eastwood +; +; There's no warranty for the correctness nor completeness of this file +; However, please mail me at tcmreastwood@ntlworld.com if you spot +; any errors in here. +; +; Version Date: 07/11/2006 (dd/mm/yyyy) +;_________________________________________________________________________________________ + +import_proto 'libSDL-1.2.so.0', \ + SDL_AddTimer, <NONE>, 'SDL_AddTimer', \ + SDL_AllocRW, <NONE>, 'SDL_AllocRW', \ + SDL_AudioDriverName, <NONE>, 'SDL_AudioDriverName', \ + SDL_AudioInit, <NONE>, 'SDL_AudioInit', \ + SDL_AudioQuit, <NONE>, 'SDL_AudioQuit', \ + SDL_BuildAudioCVT, <NONE>, 'SDL_BuildAudioCVT', \ + SDL_CDClose, <NONE>, 'SDL_CDClose', \ + SDL_CDEject, <NONE>, 'SDL_CDEject', \ + SDL_CDName, <NONE>, 'SDL_CDName', \ + SDL_CDNumDrives, <NONE>, 'SDL_CDNumDrives', \ + SDL_CDOpen, <NONE>, 'SDL_CDOpen', \ + SDL_CDPause, <NONE>, 'SDL_CDPause', \ + SDL_CDPlay, <NONE>, 'SDL_CDPlay', \ + SDL_CDPlayTracks, <NONE>, 'SDL_CDPlayTracks',\ + SDL_CDResume, <NONE>, 'SDL_CDResume',\ + SDL_CDStatus, <NONE>, 'SDL_CDStatus',\ + SDL_CDStop, <NONE>, 'SDL_CDStop',\ + SDL_ClearError, <NONE>, 'SDL_ClearError',\ + SDL_CloseAudio, <NONE>, 'SDL_CloseAudio',\ + SDL_CondBroadcast, <NONE>, 'SDL_CondBroadcast',\ + SDL_CondSignal, <NONE>, 'SDL_CondSignal',\ + SDL_CondWait, <NONE>, 'SDL_CondWait',\ + SDL_CondWaitTimeout, <NONE>, 'SDL_CondWaitTimeout',\ + SDL_ConvertAudio, <NONE>, 'SDL_ConvertAudio',\ + SDL_ConvertSurface, <NONE>, 'SDL_ConvertSurface',\ + SDL_CreateCond, <NONE>, 'SDL_CreateCond',\ + SDL_CreateCursor, <NONE>, 'SDL_CreateCursor',\ + SDL_CreateMutex, <NONE>, 'SDL_CreateMutex',\ + SDL_CreateRGBSurface, <NONE>, 'SDL_CreateRGBSurface',\ + SDL_CreateRGBSurfaceFrom, <NONE>, 'SDL_CreateRGBSurfaceFrom',\ + SDL_CreateSemaphore, <NONE>, 'SDL_CreateSemaphore',\ + SDL_CreateThread, <NONE>, 'SDL_CreateThread',\ + SDL_CreateYUVOverlay, <NONE>, 'SDL_CreateYUVOverlay',\ + SDL_Delay, <NONE>, 'SDL_Delay',\ + SDL_DestroyCond, <NONE>, 'SDL_DestroyCond',\ + SDL_DestroyMutex, <NONE>, 'SDL_DestroyMutex',\ + SDL_DestroySemaphore, <NONE>, 'SDL_DestroySemaphore',\ + SDL_DisplayFormat, <NONE>, 'SDL_DisplayFormat',\ + SDL_DisplayFormatAlpha, <NONE>, 'SDL_DisplayFormatAlpha',\ + SDL_DisplayYUVOverlay, <NONE>, 'SDL_DisplayYUVOverlay',\ + SDL_EnableKeyRepeat, <NONE>, 'SDL_EnableKeyRepeat',\ + SDL_EnableUNICODE, <NONE>, 'SDL_EnableUNICODE',\ + SDL_Error, <NONE>, 'SDL_Error',\ + SDL_EventState, <NONE>, 'SDL_EventState',\ + SDL_FillRect, <NONE>, 'SDL_FillRect',\ + SDL_Flip, <NONE>, 'SDL_Flip',\ + SDL_FreeCursor, <NONE>, 'SDL_FreeCursor',\ + SDL_FreeRW, <NONE>, 'SDL_FreeRW',\ + SDL_FreeSurface, <NONE>, 'SDL_FreeSurface',\ + SDL_FreeWAV, <NONE>, 'SDL_FreeWAV',\ + SDL_FreeYUVOverlay, <NONE>, 'SDL_FreeYUVOverlay',\ + SDL_GL_GetAttribute, <NONE>, 'SDL_GL_GetAttribute',\ + SDL_GL_GetProcAddress, <NONE>, 'SDL_GL_GetProcAddress',\ + SDL_GL_LoadLibrary, <NONE>, 'SDL_GL_LoadLibrary',\ + SDL_GL_Lock, <NONE>, 'SDL_GL_Lock',\ + SDL_GL_SetAttribute, <NONE>, 'SDL_GL_SetAttribute',\ + SDL_GL_SwapBuffers, <NONE>, 'SDL_GL_SwapBuffers',\ + SDL_GL_Unlock, <NONE>, 'SDL_GL_Unlock',\ + SDL_GL_UpdateRects, <NONE>, 'SDL_GL_UpdateRects',\ + SDL_GetAppState, <NONE>, 'SDL_GetAppState',\ + SDL_GetAudioStatus, <NONE>, 'SDL_GetAudioStatus',\ + SDL_GetClipRect, <NONE>, 'SDL_GetClipRect',\ + SDL_GetCursor, <NONE>, 'SDL_GetCursor',\ + SDL_GetError, <NONE>, 'SDL_GetError',\ + SDL_GetEventFilter, <NONE>, 'SDL_GetEventFilter',\ + SDL_GetGammaRamp, <NONE>, 'SDL_GetGammaRamp',\ + SDL_GetKeyName, <NONE>, 'SDL_GetKeyName',\ + SDL_GetKeyRepeat, <NONE>, 'SDL_GetKeyRepeat',\ + SDL_GetKeyState, <NONE>, 'SDL_GetKeyState',\ + SDL_GetModState, <NONE>, 'SDL_GetModState',\ + SDL_GetMouseState, <NONE>, 'SDL_GetMouseState',\ + SDL_GetRGB, <NONE>, 'SDL_GetRGB',\ + SDL_GetRGBA, <NONE>, 'SDL_GetRGBA',\ + SDL_GetRelativeMouseState, <NONE>, 'SDL_GetRelativeMouseState',\ + SDL_GetThreadID, <NONE>, 'SDL_GetThreadID',\ + SDL_GetTicks, <NONE>, 'SDL_GetTicks',\ + SDL_GetVideoInfo, <NONE>, 'SDL_GetVideoInfo',\ + SDL_GetVideoSurface, <NONE>, 'SDL_GetVideoSurface',\ + SDL_GetWMInfo, <NONE>, 'SDL_GetWMInfo',\ + SDL_Has3DNow, <NONE>, 'SDL_Has3DNow',\ + SDL_Has3DNowExt, <NONE>, 'SDL_Has3DNowExt',\ + SDL_HasAltiVec, <NONE>, 'SDL_HasAltiVec',\ + SDL_HasMMX, <NONE>, 'SDL_HasMMX',\ + SDL_HasMMXExt, <NONE>, 'SDL_HasMMXExt',\ + SDL_HasRDTSC, <NONE>, 'SDL_HasRDTSC',\ + SDL_HasSSE, <NONE>, 'SDL_HasSSE',\ + SDL_HasSSE2, <NONE>, 'SDL_HasSSE2',\ + SDL_Init, <NONE>, 'SDL_Init',\ + SDL_InitSubSystem, <NONE>, 'SDL_InitSubSystem',\ + SDL_JoystickClose, <NONE>, 'SDL_JoystickClose',\ + SDL_JoystickEventState, <NONE>, 'SDL_JoystickEventState',\ + SDL_JoystickGetAxis, <NONE>, 'SDL_JoystickGetAxis',\ + SDL_JoystickGetBall, <NONE>, 'SDL_JoystickGetBall',\ + SDL_JoystickGetButton, <NONE>, 'SDL_JoystickGetButton',\ + SDL_JoystickGetHat, <NONE>, 'SDL_JoystickGetHat',\ + SDL_JoystickIndex, <NONE>, 'SDL_JoystickIndex',\ + SDL_JoystickName, <NONE>, 'SDL_JoystickName',\ + SDL_JoystickNumAxes, <NONE>, 'SDL_JoystickNumAxes',\ + SDL_JoystickNumBalls, <NONE>, 'SDL_JoystickNumBalls',\ + SDL_JoystickNumButtons, <NONE>, 'SDL_JoystickNumButtons',\ + SDL_JoystickNumHats, <NONE>, 'SDL_JoystickNumHats',\ + SDL_JoystickOpen, <NONE>, 'SDL_JoystickOpen',\ + SDL_JoystickOpened, <NONE>, 'SDL_JoystickOpened',\ + SDL_JoystickUpdate, <NONE>, 'SDL_JoystickUpdate',\ + SDL_KillThread, <NONE>, 'SDL_KillThread',\ + SDL_Linked_Version, <NONE>, 'SDL_Linked_Version',\ + SDL_ListModes, <NONE>, 'SDL_ListModes',\ + SDL_LoadBMP_RW, <NONE>, 'SDL_LoadBMP_RW',\ + SDL_LoadFunction, <NONE>, 'SDL_LoadFunction',\ + SDL_LoadObject, <NONE>, 'SDL_LoadObject',\ + SDL_LoadWAV_RW, <NONE>, 'SDL_LoadWAV_RW',\ + SDL_LockAudio, <NONE>, 'SDL_LockAudio',\ + SDL_LockSurface, <NONE>, 'SDL_LockSurface',\ + SDL_LockYUVOverlay, <NONE>, 'SDL_LockYUVOverlay',\ + SDL_LowerBlit, <NONE>, 'SDL_LowerBlit',\ + SDL_MapRGB, <NONE>, 'SDL_MapRGB',\ + SDL_MapRGBA, <NONE>, 'SDL_MapRGBA',\ + SDL_MixAudio, <NONE>, 'SDL_MixAudio',\ + SDL_NumJoysticks, <NONE>, 'SDL_NumJoysticks',\ + SDL_OpenAudio, <NONE>, 'SDL_OpenAudio',\ + SDL_PauseAudio, <NONE>, 'SDL_PauseAudio',\ + SDL_PeepEvents, <NONE>, 'SDL_PeepEvents',\ + SDL_PollEvent, <NONE>, 'SDL_PollEvent',\ + SDL_PumpEvents, <NONE>, 'SDL_PumpEvents',\ + SDL_PushEvent, <NONE>, 'SDL_PushEvent',\ + SDL_Quit, <NONE>, 'SDL_Quit',\ + SDL_QuitSubSystem, <NONE>, 'SDL_QuitSubSystem',\ + SDL_RWFromConstMem, <NONE>, 'SDL_RWFromConstMem',\ + SDL_RWFromFP, <NONE>, 'SDL_RWFromFP',\ + SDL_RWFromFile, <NONE>, 'SDL_RWFromFile',\ + SDL_RWFromMem, <NONE>, 'SDL_RWFromMem',\ + SDL_ReadBE16, <NONE>, 'SDL_ReadBE16',\ + SDL_ReadBE32, <NONE>, 'SDL_ReadBE32',\ + SDL_ReadBE64, <NONE>, 'SDL_ReadBE64',\ + SDL_ReadLE16, <NONE>, 'SDL_ReadLE16',\ + SDL_ReadLE32, <NONE>, 'SDL_ReadLE32',\ + SDL_ReadLE64, <NONE>, 'SDL_ReadLE64',\ + SDL_RegisterApp, <NONE>, 'SDL_RegisterApp',\ + SDL_RemoveTimer, <NONE>, 'SDL_RemoveTimer',\ + SDL_SaveBMP_RW, <NONE>, 'SDL_SaveBMP_RW',\ + SDL_SemPost, <NONE>, 'SDL_SemPost',\ + SDL_SemTryWait, <NONE>, 'SDL_SemTryWait',\ + SDL_SemValue, <NONE>, 'SDL_SemValue',\ + SDL_SemWait, <NONE>, 'SDL_SemWait',\ + SDL_SemWaitTimeout, <NONE>, 'SDL_SemWaitTimeout',\ + SDL_SetAlpha, <NONE>, 'SDL_SetAlpha',\ + SDL_SetClipRect, <NONE>, 'SDL_SetClipRect',\ + SDL_SetColorKey, <NONE>, 'SDL_SetColorKey',\ + SDL_SetColors, <NONE>, 'SDL_SetColors',\ + SDL_SetCursor, <NONE>, 'SDL_SetCursor',\ + SDL_SetError, <NONE>, 'SDL_SetError',\ + SDL_SetEventFilter, <NONE>, 'SDL_SetEventFilter',\ + SDL_SetGamma, <NONE>, 'SDL_SetGamma',\ + SDL_SetGammaRamp, <NONE>, 'SDL_SetGammaRamp',\ + SDL_SetModState, <NONE>, 'SDL_SetModState',\ + SDL_SetModuleHandle, <NONE>, 'SDL_SetModuleHandle',\ + SDL_SetPalette, <NONE>, 'SDL_SetPalette',\ + SDL_SetTimer, <NONE>, 'SDL_SetTimer',\ + SDL_SetVideoMode, <NONE>, 'SDL_SetVideoMode',\ + SDL_ShowCursor, <NONE>, 'SDL_ShowCursor',\ + SDL_SoftStretch, <NONE>, 'SDL_SoftStretch',\ + SDL_ThreadID, <NONE>, 'SDL_ThreadID',\ + SDL_UnloadObject, <NONE>, 'SDL_UnloadObject',\ + SDL_UnlockAudio, <NONE>, 'SDL_UnlockAudio',\ + SDL_UnlockSurface, <NONE>, 'SDL_UnlockSurface',\ + SDL_UnlockYUVOverlay, <NONE>, 'SDL_UnlockYUVOverlay',\ + SDL_UnregisterApp, <NONE>, 'SDL_UnregisterApp',\ + SDL_UpdateRect, <NONE>, 'SDL_UpdateRect',\ + SDL_UpdateRects, <NONE>, 'SDL_UpdateRects',\ + SDL_UpperBlit, <NONE>, 'SDL_UpperBlit',\ + SDL_VideoDriverName, <NONE>, 'SDL_VideoDriverName',\ + SDL_VideoInit, <NONE>, 'SDL_VideoInit',\ + SDL_VideoModeOK, <NONE>, 'SDL_VideoModeOK',\ + SDL_VideoQuit, <NONE>, 'SDL_VideoQuit',\ + SDL_WM_GetCaption, <NONE>, 'SDL_WM_GetCaption',\ + SDL_WM_GrabInput, <NONE>, 'SDL_WM_GrabInput',\ + SDL_WM_IconifyWindow, <NONE>, 'SDL_WM_IconifyWindow',\ + SDL_WM_SetCaption, <NONE>, 'SDL_WM_SetCaption',\ + SDL_WM_SetIcon, <NONE>, 'SDL_WM_SetIcon',\ + SDL_WM_ToggleFullScreen, <NONE>, 'SDL_WM_ToggleFullScreen',\ + SDL_WaitEvent, <NONE>, 'SDL_WaitEvent',\ + SDL_WaitThread, <NONE>, 'SDL_WaitThread',\ + SDL_WarpMouse, <NONE>, 'SDL_WarpMouse',\ + SDL_WasInit, <NONE>, 'SDL_WasInit',\ + SDL_WriteBE16, <NONE>, 'SDL_WriteBE16',\ + SDL_WriteBE32, <NONE>, 'SDL_WriteBE32',\ + SDL_WriteBE64, <NONE>, 'SDL_WriteBE64',\ + SDL_WriteLE16, <NONE>, 'SDL_WriteLE16',\ + SDL_WriteLE32, <NONE>, 'SDL_WriteLE32',\ + SDL_WriteLE64, <NONE>, 'SDL_WriteLE64',\ + SDL_getenv, <NONE>, 'SDL_getenv',\ + SDL_iconv, <NONE>, 'SDL_iconv',\ + SDL_iconv_close, <NONE>, 'SDL_iconv_close',\ + SDL_iconv_open, <NONE>, 'SDL_iconv_open',\ + SDL_iconv_string, <NONE>, 'SDL_iconv_string',\ + SDL_lltoa, <NONE>, 'SDL_lltoa',\ + SDL_mutexP, <NONE>, 'SDL_mutexP',\ + SDL_mutexV, <NONE>, 'SDL_mutexV',\ + SDL_putenv, <NONE>, 'SDL_putenv',\ + SDL_revcpy, <NONE>, 'SDL_revcpy',\ + SDL_snprintf, <NONE>, 'SDL_snprintf',\ + SDL_strdup, <NONE>, 'SDL_strdup',\ + SDL_strlcat, <NONE>, 'SDL_strlcat',\ + SDL_strlcpy, <NONE>, 'SDL_strlcpy',\ + SDL_strtoull, <NONE>, 'SDL_strtoull',\ + SDL_ulltoa, <NONE>, 'SDL_ulltoa',\ + SDL_vsnprintf, <NONE>, 'SDL_vsnprintf' + ADDED freshlib/imports/Linux/sdl_image.inc Index: freshlib/imports/Linux/sdl_image.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/sdl_image.inc @@ -0,0 +1,16 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SDL_image v1.2 API functions. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +; _______________________________________________________________________________________ + +import_proto 'libSDL_image-1.2.so.0', \ + IMG_Load, <NONE>, 'IMG_Load' ADDED freshlib/imports/Linux/sqleet.inc Index: freshlib/imports/Linux/sqleet.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/sqleet.inc @@ -0,0 +1,205 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: sqlite3.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto './libsqleet.so', \ + sqliteAggregateContext, <.context, .nbytes>, 'sqlite3_aggregate_context', \ + sqliteAutoExtension, <.ptrCallback>, 'sqlite3_auto_extension', \ + sqliteBackupFinish, <.ptrBackup>, 'sqlite3_backup_finish', \ + sqliteBackupInit, <.ptrDestDB, .ptrDestName, .ptrSourceDB, .ptrSourceName>, 'sqlite3_backup_init', \ + sqliteBackupPageCount, <.ptrBackup>, 'sqlite3_backup_pagecount', \ + sqliteBackupRemaining, <.ptrBackup>, 'sqlite3_backup_remaining', \ + sqliteBackupStep, <.ptrBackup, .nPage>, 'sqlite3_backup_step', \ + sqliteBindBlob, <.stmt, .index, .ptrData, .nbytes, .destructor>, 'sqlite3_bind_blob', \ + sqliteBindDouble, <.stmt, .index, .value>, 'sqlite3_bind_double', \ + sqliteBindInt, <.stmt, .index, .value>, 'sqlite3_bind_int', \ + sqliteBindInt64, <.stmt, .index, .valueLo, .valueHi>, 'sqlite3_bind_int64', \ + sqliteBindNull, <.stmt, .index>, 'sqlite3_bind_null', \ + sqliteBindParameterCount, <.stmt>, 'sqlite3_bind_parameter_count', \ + sqliteBindParameterIndex, <.stmt, .paramName>, 'sqlite3_bind_parameter_index', \ + sqliteBindParameterName, <.stmt, .paramIndex>, 'sqlite3_bind_parameter_name', \ + sqliteBindText, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text', \ + sqliteBindText16, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text16', \ + sqliteBindValue, <.stmt, .index, .ptrValue>, 'sqlite3_bind_value', \ + sqliteBindZeroblob, <.stmt, .index, .size>, 'sqlite3_bind_zeroblob', \ + sqliteBlobBytes, <.hBlob>, 'sqlite3_blob_bytes', \ + sqliteBlobClose, <.hBlob>, 'sqlite3_blob_close', \ + sqliteBlobOpen, <.ptrDB, .DBname, .Table, .Column, .iRow, .flags, .ptrVarBlob>, 'sqlite3_blob_open', \ + sqliteBlobRead, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_read', \ + sqliteBlobWrite, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_write', \ + sqliteBusyHandler, <.ptrDB, .ptrProc, .lParam>, 'sqlite3_busy_handler', \ + sqliteBusyTimeout, <.ptrDB, .time_ms>, 'sqlite3_busy_timeout', \ + sqliteChanges, <.ptrDB>, 'sqlite3_changes', \ + sqliteClearBindings, <.stmt>, 'sqlite3_clear_bindings', \ + sqliteClose, <.ptrDatabase>, 'sqlite3_close', \ + sqliteCollationNeeded, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed', \ + sqliteCollationNeeded16, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed16', \ + sqliteColumnBlob, <.stmt, .iCol>, 'sqlite3_column_blob', \ + sqliteColumnBytes, <.stmt, .iCol>, 'sqlite3_column_bytes', \ + sqliteColumnBytes16, <.stmt, .iCol>, 'sqlite3_column_bytes16', \ + sqliteColumnCount, <.stmt>, 'sqlite3_column_count', \ + sqliteColumnDatabaseName, <.stmt, .index>, 'sqlite3_column_database_name', \ + sqliteColumnDatabaseName16, <.stmt, .index>, 'sqlite3_column_database_name16', \ + sqliteColumnDeclType, <.stmt, .index>, 'sqlite3_column_decltype', \ + sqliteColumnDeclType16, <.stmt, .index>, 'sqlite3_column_decltype16', \ + sqliteColumnDouble, <.stmt, .iCol>, 'sqlite3_column_double', \ + sqliteColumnInt, <.stmt, .iCol>, 'sqlite3_column_int', \ + sqliteColumnInt64, <.stmt, .iCol>, 'sqlite3_column_int64', \ + sqliteColumnName, <.stmt, .index>, 'sqlite3_column_name', \ + sqliteColumnName16, <.stmt, .index>, 'sqlite3_column_name16', \ + sqliteColumnOriginName, <.stmt, .index>, 'sqlite3_column_origin_name', \ + sqliteColumnOriginName16, <.stmt, .index>, 'sqlite3_column_origin_name16', \ + sqliteColumnTableName, <.stmt, .index>, 'sqlite3_column_table_name', \ + sqliteColumnTableName16, <.stmt, .index>, 'sqlite3_column_table_name16', \ + sqliteColumnText, <.stmt, .iCol>, 'sqlite3_column_text', \ + sqliteColumnText16, <.stmt, .iCol>, 'sqlite3_column_text16', \ + sqliteColumnType, <.stmt, .iCol>, 'sqlite3_column_type', \ + sqliteColumnValue, <.stmt, .iCol>, 'sqlite3_column_value', \ + sqliteCommitHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_commit_hook', \ + sqliteCompileOptionGet, <.N>, 'sqlite3_compileoption_get', \ + sqliteCompileOptionUsed, <.ptrOptName>, 'sqlite3_compileoption_used', \ + sqliteComplete, <.ptrSQL>, 'sqlite3_complete', \ + sqliteComplete16, <.ptrSQL>, 'sqlite3_complete16', \ + sqliteConfig, <.index, ...>, 'sqlite3_config', \ + sqliteContextDBHandle, <.context>, 'sqlite3_context_db_handle', \ + sqliteCreateCollation, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation', \ + sqliteCreateCollation16, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation16', \ + sqliteCreateCollation_v2, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare, .ptrDestroy>, 'sqlite3_create_collation_v2', \ + sqliteCreateFunction, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function', \ + sqliteCreateFunction16, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function16', \ + sqliteCreateFunction_v2, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal, .procDestroy>, 'sqlite3_create_function_v2', \ + sqliteCreateModule, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam>, 'sqlite3_create_module', \ + sqliteCreateModule_v2, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam, .procDestroy>, 'sqlite3_create_module_v2', \ + sqliteDBConfig, <.ptrDB, .index, ...>, 'sqlite3_db_config', \ + sqliteDBHandle, <.stmt>, 'sqlite3_db_handle', \ + sqliteDBMutex, <.ptrDB>, 'sqlite3_db_mutex', \ + sqliteDBStatus, <.ptrDB, .index, .ptrRetCurrent, .ptrRetHighest, .flagReset>, 'sqlite3_db_status', \ + sqliteDataCount, <.stmt>, 'sqlite3_data_count', \ + sqliteDeclareVtab, <.ptrDB, .ptrSQL>, 'sqlite3_declare_vtab', \ + sqliteEnableLoadExtension, <.ptrDB, .flagEnable>, 'sqlite3_enable_load_extension', \ + sqliteEnableSharedCache, <.flagEnable>, 'sqlite3_enable_shared_cache', \ + sqliteErrCode, <.ptrDB>, 'sqlite3_errcode', \ + sqliteErrMsg, <.ptrDB>, 'sqlite3_errmsg', \ + sqliteErrMsg16, <.ptrDB>, 'sqlite3_errmsg16', \ + sqliteErrStr, <.err_code>, 'sqlite3_errstr', \ + sqliteExec, <.ptrDB, .ptrSQL, .procCallback, .lparam, .ptrVarErrMsg>, 'sqlite3_exec', \ + sqliteExtendedErrCode, <.ptrDB>, 'sqlite3_extended_errcode', \ + sqliteExtendedResultCodes, <.ptrDB, .flagEnable>, 'sqlite3_extended_result_codes', \ + sqliteFileControl, <.ptrDB, .ptrDBName, .wparam, .lparam>, 'sqlite3_file_control', \ + _sqliteFinalize, <.stmt>, 'sqlite3_finalize', \ + sqliteFree, <.ptrmem>, 'sqlite3_free', \ + sqliteFreeTable, <.ptrVarResult>, 'sqlite3_free_table', \ + sqliteGetAutocommit, <.ptrDB>, 'sqlite3_get_autocommit', \ + sqliteGetAuxdata, <.context, .N>, 'sqlite3_get_auxdata', \ + sqliteGetTable, <.ptrDB, .ptrSQL, .ptrVarResult, .ptrVarRows, .ptrVarColumns, .ptrVarErrorMsg>, 'sqlite3_get_table', \ + sqliteInitialize, <VOID>, 'sqlite3_initialize', \ + sqliteInterrupt, <.ptrDB>, 'sqlite3_interrupt', \ + sqliteLastInsertRowID, <.ptrDB>, 'sqlite3_last_insert_rowid', \ + sqliteLibVersion, <VOID>, 'sqlite3_libversion', \ + sqliteLibversionNumber, <VOID>, 'sqlite3_libversion_number', \ + sqliteLimit, <.ptrDB, .idLimit, .newVal>, 'sqlite3_limit', \ + sqliteLoadExtension, <.ptrDB, .nameDLL, .entryProc, .ptrVarErrMsg>, 'sqlite3_load_extension', \ + sqliteLog, <.iErrCode, .ptrFormat, ...>, 'sqlite3_log', \ + sqliteKey, <.ptrDB, .pKey, .pKeyLen>, 'sqlite3_key', \ + sqliteKey_v2, <.ptrDB, .pDbName, .pKey, .pKeyLen>, 'sqlite3_key_v2', \ + sqliteMAlloc, <.size>, 'sqlite3_malloc', \ + sqliteMemoryHighWater, <.flagReset>, 'sqlite3_memory_highwater', \ + sqliteMemoryUsed, <VOID>, 'sqlite3_memory_used', \ + sqliteMprintf, <.ptrString, ...>, 'sqlite3_mprintf', \ + sqliteMutexAlloc, <.type>, 'sqlite3_mutex_alloc', \ + sqliteMutexEnter, <.hMutex>, 'sqlite3_mutex_enter', \ + sqliteMutexFree, <.hMutex>, 'sqlite3_mutex_free', \ + sqliteMutexLeave, <.hMutex>, 'sqlite3_mutex_leave', \ + sqliteMutexTry, <.hMutex>, 'sqlite3_mutex_try', \ + sqliteNextStmt, <.ptrDB, .stmt>, 'sqlite3_next_stmt', \ + sqliteOSEnd, <VOID>, 'sqlite3_os_end', \ + sqliteOSInit, <VOID>, 'sqlite3_os_init', \ + sqliteOpen, <.ptrFileName, .ptrVarDB>, 'sqlite3_open', \ + sqliteOpen16, <.ptrFileName, .ptrVarDB>, 'sqlite3_open16', \ + sqliteOpen_v2, <.ptrFileName, .ptrVarDB, .flags, .ptrVFSName>, 'sqlite3_open_v2', \ + sqliteOverloadFunction, <.ptrDB, .ptrFuncName, .lparam>, 'sqlite3_overload_function', \ + sqlitePrepare, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare', \ + sqlitePrepare16, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16', \ + sqlitePrepare16_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16_v2', \ + _sqlitePrepare_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare_v2', \ + sqliteProfile, <.ptrDB, .procProfiler, .lparam>, 'sqlite3_profile', \ + sqliteProgressHandler, <.ptrDB, .N, .procProgress, .lparam>, 'sqlite3_progress_handler', \ + sqliteRandomness, <.bytes, .buffer>, 'sqlite3_randomness', \ + sqliteReAlloc, <.ptrmem, .newsize>, 'sqlite3_realloc', \ + sqliteRekey, <.ptrDB, .pNewKey, .nKeyLen>, 'sqlite3_rekey', \ + sqliteRekey_v2, <.ptrDB, .pDbName, .pNewKey, .nKeyLen>, 'sqlite3_rekey_v2', \ + sqliteReleaseMemory, <.bytes>, 'sqlite3_release_memory', \ + sqliteReset, <.stmt>, 'sqlite3_reset', \ + sqliteResetAutoExtension, <VOID>, 'sqlite3_reset_auto_extension', \ + sqliteResultBlob, <.context, .ptrdata, .size, .procDestroy>, 'sqlite3_result_blob', \ + sqliteResultDouble, <.context, .double>, 'sqlite3_result_double', \ + sqliteResultError, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error', \ + sqliteResultError16, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error16', \ + sqliteResultErrorCode, <.context, .errcode>, 'sqlite3_result_error_code', \ + sqliteResultErrorNoMem, <.context>, 'sqlite3_result_error_nomem', \ + sqliteResultErrorTooBig, <.context>, 'sqlite3_result_error_toobig', \ + sqliteResultInt, <.context, .integer>, 'sqlite3_result_int', \ + sqliteResultInt64, <.context, .int64Lo, .int64Hi>, 'sqlite3_result_int64', \ + sqliteResultNULL, <.context>, 'sqlite3_result_null', \ + sqliteResultText, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text', \ + sqliteResultText16, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16', \ + sqliteResultText16be, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16be', \ + sqliteResultText16le, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16le', \ + sqliteResultValue, <.context, .ptrValue>, 'sqlite3_result_value', \ + sqliteResultZeroBlob, <.context, .size>, 'sqlite3_result_zeroblob', \ + sqliteRollbackHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_rollback_hook', \ + sqliteRtreeGeometryCallback, <NONE>, 'sqlite3_rtree_geometry_callback', \ + sqliteSQL, <.stmt>, 'sqlite3_sql', \ + sqliteSetAuthorizer, <.ptrDB, .procAuthorizer, .lparam>, 'sqlite3_set_authorizer', \ + sqliteSetAuxdata, <.context, .N, .ptrData, .procDestructor>, 'sqlite3_set_auxdata', \ + sqliteShutdown, <VOID>, 'sqlite3_shutdown', \ + sqliteSleep, <.sleep_ms>, 'sqlite3_sleep', \ + sqliteSnprintf, <.size, .ptrBuffer, .ptrString, ...>, 'sqlite3_snprintf', \ + sqliteSoftHeapLimit, <.N>, 'sqlite3_soft_heap_limit', \ + sqliteSoftHeapLimit64, <.sizeLo, .sizeHi>, 'sqlite3_soft_heap_limit64', \ + sqliteSourceID, <VOID>, 'sqlite3_sourceid', \ + sqliteStatus, <.paramIndex, .ptrVarResult, .ptrVarHighwater, .flagReset>, 'sqlite3_status', \ + sqliteStep, <.stmt>, 'sqlite3_step', \ + sqliteStmtStatus, <.stmt, .paramIndex, .flagReset>, 'sqlite3_stmt_status', \ + sqliteStrnicmp, <.ptrStr1, .ptrStr2, .size>, 'sqlite3_strnicmp', \ + sqliteTableColumnMetadata, <.ptrDB, .ptrDBName, .ptrTableName, .ptrColumnName, .ptrVarDataType, .ptrVarCollSeq, .ptrVarNotNull, \ + .ptrVarPrimaryKey, .ptrVarAutoInc>, 'sqlite3_table_column_metadata', \ + sqliteTestControl, <.opCode, ...>, 'sqlite3_test_control', \ + sqliteThreadsafe, <VOID>, 'sqlite3_threadsafe', \ + sqliteTotalChanges, <.ptrDB>, 'sqlite3_total_changes', \ + sqliteTrace, <.ptrDB, .procTrace, .lparam>, 'sqlite3_trace', \ + sqliteUpdateHook, <.ptrDB, .procUpdateHook, .lparam>, 'sqlite3_update_hook', \ + sqliteUserData, <.context>, 'sqlite3_user_data', \ + sqliteValueBlob, <.ptrValue>, 'sqlite3_value_blob', \ + sqliteValueBytes, <.ptrValue>, 'sqlite3_value_bytes', \ + sqliteValueBytes16, <.ptrValue>, 'sqlite3_value_bytes16', \ + sqliteValueDouble, <.ptrValue>, 'sqlite3_value_double', \ + sqliteValueInt, <.ptrValue>, 'sqlite3_value_int', \ + sqliteValueInt64, <.ptrValue>, 'sqlite3_value_int64', \ + sqliteValueNumericType, <.ptrValue>, 'sqlite3_value_numeric_type', \ + sqliteValueText, <.ptrValue>, 'sqlite3_value_text', \ + sqliteValueText16, <.ptrValue>, 'sqlite3_value_text16', \ + sqliteValueText16be, <.ptrValue>, 'sqlite3_value_text16be', \ + sqliteValueText16le, <.ptrValue>, 'sqlite3_value_text16le', \ + sqliteValueType, <.ptrValue>, 'sqlite3_value_type', \ + sqliteVersion, <VOID>, 'sqlite3_version', \ + sqliteVfsFind, <.ptrVFSName>, 'sqlite3_vfs_find', \ + sqliteVfsRegister, <.hVFS, .flagDefault>, 'sqlite3_vfs_register', \ + sqliteVfsUnregister, <.hVFS>, 'sqlite3_vfs_unregister', \ + sqliteVmprintf, <.ptrString, .va_list>, 'sqlite3_vmprintf', \ + sqliteWalAutocheckpoint, <.ptrDB, .N>, 'sqlite3_wal_autocheckpoint', \ + sqliteWalCheckpoint, <.ptrDB, .ptrDBName>, 'sqlite3_wal_checkpoint', \ + sqliteWalCheckpoint_v2, <.ptrDB, .ptrDBName, .eMode, .pvarLog, .pvarCkpt>, 'sqlite3_wal_checkpoint_v2', \ + sqliteWalHook, <.ptrDB, .procCommitHook, .lparam>, 'sqlite3_wal_hook', \ + sqliteWin32_MbcsToUtf8, <NONE>, 'sqlite3_win32_mbcs_to_utf8' ADDED freshlib/imports/Linux/sqlite3.inc Index: freshlib/imports/Linux/sqlite3.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/sqlite3.inc @@ -0,0 +1,206 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: sqlite3.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto 'libsqlite3.so.0', \ + sqliteAggregateContext, <.context, .nbytes>, 'sqlite3_aggregate_context', \ + sqliteAggregateCount_OLD, <VOID>, 'sqlite3_aggregate_count', \ + sqliteAutoExtension, <.ptrCallback>, 'sqlite3_auto_extension', \ + sqliteBackupFinish, <.ptrBackup>, 'sqlite3_backup_finish', \ + sqliteBackupInit, <.ptrDestDB, .ptrDestName, .ptrSourceDB, .ptrSourceName>, 'sqlite3_backup_init', \ + sqliteBackupPageCount, <.ptrBackup>, 'sqlite3_backup_pagecount', \ + sqliteBackupRemaining, <.ptrBackup>, 'sqlite3_backup_remaining', \ + sqliteBackupStep, <.ptrBackup, .nPage>, 'sqlite3_backup_step', \ + sqliteBindBlob, <.stmt, .index, .ptrData, .nbytes, .destructor>, 'sqlite3_bind_blob', \ + sqliteBindDouble, <.stmt, .index, .value>, 'sqlite3_bind_double', \ + sqliteBindInt, <.stmt, .index, .value>, 'sqlite3_bind_int', \ + sqliteBindInt64, <.stmt, .index, .valueLo, .valueHi>, 'sqlite3_bind_int64', \ + sqliteBindNull, <.stmt, .index>, 'sqlite3_bind_null', \ + sqliteBindParameterCount, <.stmt>, 'sqlite3_bind_parameter_count', \ + sqliteBindParameterIndex, <.stmt, .paramName>, 'sqlite3_bind_parameter_index', \ + sqliteBindParameterName, <.stmt, .paramIndex>, 'sqlite3_bind_parameter_name', \ + sqliteBindText, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text', \ + sqliteBindText16, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text16', \ + sqliteBindValue, <.stmt, .index, .ptrValue>, 'sqlite3_bind_value', \ + sqliteBindZeroblob, <.stmt, .index, .size>, 'sqlite3_bind_zeroblob', \ + sqliteBlobBytes, <.hBlob>, 'sqlite3_blob_bytes', \ + sqliteBlobClose, <.hBlob>, 'sqlite3_blob_close', \ + sqliteBlobOpen, <.ptrDB, .DBname, .Table, .Column, .iRow, .flags, .ptrVarBlob>, 'sqlite3_blob_open', \ + sqliteBlobRead, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_read', \ + sqliteBlobWrite, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_write', \ + sqliteBusyHandler, <.ptrDB, .ptrProc, .lParam>, 'sqlite3_busy_handler', \ + sqliteBusyTimeout, <.ptrDB, .time_ms>, 'sqlite3_busy_timeout', \ + sqliteChanges, <.ptrDB>, 'sqlite3_changes', \ + sqliteClearBindings, <.stmt>, 'sqlite3_clear_bindings', \ + sqliteClose, <.ptrDatabase>, 'sqlite3_close', \ + sqliteCollationNeeded, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed', \ + sqliteCollationNeeded16, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed16', \ + sqliteColumnBlob, <.stmt, .iCol>, 'sqlite3_column_blob', \ + sqliteColumnBytes, <.stmt, .iCol>, 'sqlite3_column_bytes', \ + sqliteColumnBytes16, <.stmt, .iCol>, 'sqlite3_column_bytes16', \ + sqliteColumnCount, <.stmt>, 'sqlite3_column_count', \ + sqliteColumnDatabaseName, <.stmt, .index>, 'sqlite3_column_database_name', \ + sqliteColumnDatabaseName16, <.stmt, .index>, 'sqlite3_column_database_name16', \ + sqliteColumnDeclType, <.stmt, .index>, 'sqlite3_column_decltype', \ + sqliteColumnDeclType16, <.stmt, .index>, 'sqlite3_column_decltype16', \ + sqliteColumnDouble, <.stmt, .iCol>, 'sqlite3_column_double', \ + sqliteColumnInt, <.stmt, .iCol>, 'sqlite3_column_int', \ + sqliteColumnInt64, <.stmt, .iCol>, 'sqlite3_column_int64', \ + sqliteColumnName, <.stmt, .index>, 'sqlite3_column_name', \ + sqliteColumnName16, <.stmt, .index>, 'sqlite3_column_name16', \ + sqliteColumnOriginName, <.stmt, .index>, 'sqlite3_column_origin_name', \ + sqliteColumnOriginName16, <.stmt, .index>, 'sqlite3_column_origin_name16', \ + sqliteColumnTableName, <.stmt, .index>, 'sqlite3_column_table_name', \ + sqliteColumnTableName16, <.stmt, .index>, 'sqlite3_column_table_name16', \ + sqliteColumnText, <.stmt, .iCol>, 'sqlite3_column_text', \ + sqliteColumnText16, <.stmt, .iCol>, 'sqlite3_column_text16', \ + sqliteColumnType, <.stmt, .iCol>, 'sqlite3_column_type', \ + sqliteColumnValue, <.stmt, .iCol>, 'sqlite3_column_value', \ + sqliteCommitHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_commit_hook', \ + sqliteCompileOptionGet, <.N>, 'sqlite3_compileoption_get', \ + sqliteCompileOptionUsed, <.ptrOptName>, 'sqlite3_compileoption_used', \ + sqliteComplete, <.ptrSQL>, 'sqlite3_complete', \ + sqliteComplete16, <.ptrSQL>, 'sqlite3_complete16', \ + sqliteConfig, <.index, ...>, 'sqlite3_config', \ + sqliteContextDBHandle, <.context>, 'sqlite3_context_db_handle', \ + sqliteCreateCollation, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation', \ + sqliteCreateCollation16, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation16', \ + sqliteCreateCollation_v2, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare, .ptrDestroy>, 'sqlite3_create_collation_v2', \ + sqliteCreateFunction, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function', \ + sqliteCreateFunction16, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function16', \ + sqliteCreateFunction_v2, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal, .procDestroy>, 'sqlite3_create_function_v2', \ + sqliteCreateModule, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam>, 'sqlite3_create_module', \ + sqliteCreateModule_v2, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam, .procDestroy>, 'sqlite3_create_module_v2', \ + sqliteDBConfig, <.ptrDB, .index, ...>, 'sqlite3_db_config', \ + sqliteDBHandle, <.stmt>, 'sqlite3_db_handle', \ + sqliteDBMutex, <.ptrDB>, 'sqlite3_db_mutex', \ + sqliteDBStatus, <.ptrDB, .index, .ptrRetCurrent, .ptrRetHighest, .flagReset>, 'sqlite3_db_status', \ + sqliteDataCount, <.stmt>, 'sqlite3_data_count', \ + sqliteDeclareVtab, <.ptrDB, .ptrSQL>, 'sqlite3_declare_vtab', \ + sqliteEnableLoadExtension, <.ptrDB, .flagEnable>, 'sqlite3_enable_load_extension', \ + sqliteEnableSharedCache, <.flagEnable>, 'sqlite3_enable_shared_cache', \ + sqliteErrCode, <.ptrDB>, 'sqlite3_errcode', \ + sqliteErrMsg, <.ptrDB>, 'sqlite3_errmsg', \ + sqliteErrMsg16, <.ptrDB>, 'sqlite3_errmsg16', \ + sqliteErrStr, <.err_code>, 'sqlite3_errstr', \ + sqliteExec, <.ptrDB, .ptrSQL, .procCallback, .lparam, .ptrVarErrMsg>, 'sqlite3_exec', \ + sqliteExpired, <VOID>, 'sqlite3_expired', \ + sqliteExtendedErrCode, <.ptrDB>, 'sqlite3_extended_errcode', \ + sqliteExtendedResultCodes, <.ptrDB, .flagEnable>, 'sqlite3_extended_result_codes', \ + sqliteFileControl, <.ptrDB, .ptrDBName, .wparam, .lparam>, 'sqlite3_file_control', \ + sqliteFinalize, <.stmt>, 'sqlite3_finalize', \ + sqliteFree, <.ptrmem>, 'sqlite3_free', \ + sqliteFreeTable, <.ptrVarResult>, 'sqlite3_free_table', \ + sqliteGetAutocommit, <.ptrDB>, 'sqlite3_get_autocommit', \ + sqliteGetAuxdata, <.context, .N>, 'sqlite3_get_auxdata', \ + sqliteGetTable, <.ptrDB, .ptrSQL, .ptrVarResult, .ptrVarRows, .ptrVarColumns, .ptrVarErrorMsg>, 'sqlite3_get_table', \ + sqliteGlobalRecover_OLD, <VOID>, 'sqlite3_global_recover', \ + sqliteInitialize, <VOID>, 'sqlite3_initialize', \ + sqliteInterrupt, <.ptrDB>, 'sqlite3_interrupt', \ + sqliteLastInsertRowID, <.ptrDB>, 'sqlite3_last_insert_rowid', \ + sqliteLibVersion, <VOID>, 'sqlite3_libversion', \ + sqliteLibversionNumber, <VOID>, 'sqlite3_libversion_number', \ + sqliteLimit, <.ptrDB, .idLimit, .newVal>, 'sqlite3_limit', \ + sqliteLoadExtension, <.ptrDB, .nameDLL, .entryProc, .ptrVarErrMsg>, 'sqlite3_load_extension', \ + sqliteLog, <.iErrCode, .ptrFormat, ...>, 'sqlite3_log', \ + sqliteMAlloc, <.size>, 'sqlite3_malloc', \ + sqliteMemoryHighWater, <.flagReset>, 'sqlite3_memory_highwater', \ + sqliteMemoryUsed, <VOID>, 'sqlite3_memory_used', \ + sqliteMprintf, <.ptrString, ...>, 'sqlite3_mprintf', \ + sqliteMutexAlloc, <.type>, 'sqlite3_mutex_alloc', \ + sqliteMutexEnter, <.hMutex>, 'sqlite3_mutex_enter', \ + sqliteMutexFree, <.hMutex>, 'sqlite3_mutex_free', \ + sqliteMutexLeave, <.hMutex>, 'sqlite3_mutex_leave', \ + sqliteMutexTry, <.hMutex>, 'sqlite3_mutex_try', \ + sqliteNextStmt, <.ptrDB, .stmt>, 'sqlite3_next_stmt', \ + sqliteOSEnd, <VOID>, 'sqlite3_os_end', \ + sqliteOSInit, <VOID>, 'sqlite3_os_init', \ + sqliteOpen, <.ptrFileName, .ptrVarDB>, 'sqlite3_open', \ + sqliteOpen16, <.ptrFileName, .ptrVarDB>, 'sqlite3_open16', \ + sqliteOpen_v2, <.ptrFileName, .ptrVarDB, .flags, .ptrVFSName>, 'sqlite3_open_v2', \ + sqliteOverloadFunction, <.ptrDB, .ptrFuncName, .lparam>, 'sqlite3_overload_function', \ + sqlitePrepare, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare', \ + sqlitePrepare16, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16', \ + sqlitePrepare16_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16_v2', \ + _sqlitePrepare_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare_v2', \ + sqliteProfile, <.ptrDB, .procProfiler, .lparam>, 'sqlite3_profile', \ + sqliteProgressHandler, <.ptrDB, .N, .procProgress, .lparam>, 'sqlite3_progress_handler', \ + sqliteRandomness, <.bytes, .buffer>, 'sqlite3_randomness', \ + sqliteReAlloc, <.ptrmem, .newsize>, 'sqlite3_realloc', \ + sqliteReleaseMemory, <.bytes>, 'sqlite3_release_memory', \ + sqliteReset, <.stmt>, 'sqlite3_reset', \ + sqliteResetAutoExtension, <VOID>, 'sqlite3_reset_auto_extension', \ + sqliteResultBlob, <.context, .ptrdata, .size, .procDestroy>, 'sqlite3_result_blob', \ + sqliteResultDouble, <.context, .double>, 'sqlite3_result_double', \ + sqliteResultError, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error', \ + sqliteResultError16, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error16', \ + sqliteResultErrorCode, <.context, .errcode>, 'sqlite3_result_error_code', \ + sqliteResultErrorNoMem, <.context>, 'sqlite3_result_error_nomem', \ + sqliteResultErrorTooBig, <.context>, 'sqlite3_result_error_toobig', \ + sqliteResultInt, <.context, .integer>, 'sqlite3_result_int', \ + sqliteResultInt64, <.context, .int64Lo, .int64Hi>, 'sqlite3_result_int64', \ + sqliteResultNULL, <.context>, 'sqlite3_result_null', \ + sqliteResultText, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text', \ + sqliteResultText16, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16', \ + sqliteResultText16be, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16be', \ + sqliteResultText16le, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16le', \ + sqliteResultValue, <.context, .ptrValue>, 'sqlite3_result_value', \ + sqliteResultZeroBlob, <.context, .size>, 'sqlite3_result_zeroblob', \ + sqliteRollbackHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_rollback_hook', \ + sqliteRtreeGeometryCallback, <NONE>, 'sqlite3_rtree_geometry_callback', \ + sqliteSQL, <.stmt>, 'sqlite3_sql', \ + sqliteSetAuthorizer, <.ptrDB, .procAuthorizer, .lparam>, 'sqlite3_set_authorizer', \ + sqliteSetAuxdata, <.context, .N, .ptrData, .procDestructor>, 'sqlite3_set_auxdata', \ + sqliteShutdown, <VOID>, 'sqlite3_shutdown', \ + sqliteSleep, <.sleep_ms>, 'sqlite3_sleep', \ + sqliteSnprintf, <.size, .ptrBuffer, .ptrString, ...>, 'sqlite3_snprintf', \ + sqliteSoftHeapLimit, <.N>, 'sqlite3_soft_heap_limit', \ + sqliteSoftHeapLimit64, <.sizeLo, .sizeHi>, 'sqlite3_soft_heap_limit64', \ + sqliteSourceID, <VOID>, 'sqlite3_sourceid', \ + sqliteStatus, <.paramIndex, .ptrVarResult, .ptrVarHighwater, .flagReset>, 'sqlite3_status', \ + sqliteStep, <.stmt>, 'sqlite3_step', \ + sqliteStmtStatus, <.stmt, .paramIndex, .flagReset>, 'sqlite3_stmt_status', \ + sqliteStrnicmp, <.ptrStr1, .ptrStr2, .size>, 'sqlite3_strnicmp', \ + sqliteTableColumnMetadata, <.ptrDB, .ptrDBName, .ptrTableName, .ptrColumnName, .ptrVarDataType, .ptrVarCollSeq, .ptrVarNotNull, \ + .ptrVarPrimaryKey, .ptrVarAutoInc>, 'sqlite3_table_column_metadata', \ + sqliteTestControl, <.opCode, ...>, 'sqlite3_test_control', \ + sqliteThreadCleanup, <VOID>, 'sqlite3_thread_cleanup', \ + sqliteThreadsafe, <VOID>, 'sqlite3_threadsafe', \ + sqliteTotalChanges, <.ptrDB>, 'sqlite3_total_changes', \ + sqliteTrace, <.ptrDB, .procTrace, .lparam>, 'sqlite3_trace', \ + sqliteTransferBindings, <VOID>, 'sqlite3_transfer_bindings', \ + sqliteUpdateHook, <.ptrDB, .procUpdateHook, .lparam>, 'sqlite3_update_hook', \ + sqliteUserData, <.context>, 'sqlite3_user_data', \ + sqliteValueBlob, <.ptrValue>, 'sqlite3_value_blob', \ + sqliteValueBytes, <.ptrValue>, 'sqlite3_value_bytes', \ + sqliteValueBytes16, <.ptrValue>, 'sqlite3_value_bytes16', \ + sqliteValueDouble, <.ptrValue>, 'sqlite3_value_double', \ + sqliteValueInt, <.ptrValue>, 'sqlite3_value_int', \ + sqliteValueInt64, <.ptrValue>, 'sqlite3_value_int64', \ + sqliteValueNumericType, <.ptrValue>, 'sqlite3_value_numeric_type', \ + sqliteValueText, <.ptrValue>, 'sqlite3_value_text', \ + sqliteValueText16, <.ptrValue>, 'sqlite3_value_text16', \ + sqliteValueText16be, <.ptrValue>, 'sqlite3_value_text16be', \ + sqliteValueText16le, <.ptrValue>, 'sqlite3_value_text16le', \ + sqliteValueType, <.ptrValue>, 'sqlite3_value_type', \ + sqliteVersion, <VOID>, 'sqlite3_version', \ + sqliteVfsFind, <.ptrVFSName>, 'sqlite3_vfs_find', \ + sqliteVfsRegister, <.hVFS, .flagDefault>, 'sqlite3_vfs_register', \ + sqliteVfsUnregister, <.hVFS>, 'sqlite3_vfs_unregister', \ + sqliteVmprintf, <.ptrString, .va_list>, 'sqlite3_vmprintf', \ + sqliteWalAutocheckpoint, <.ptrDB, .N>, 'sqlite3_wal_autocheckpoint', \ + sqliteWalCheckpoint, <.ptrDB, .ptrDBName>, 'sqlite3_wal_checkpoint', \ + sqliteWalCheckpoint_v2, <.ptrDB, .ptrDBName, .eMode, .pvarLog, .pvarCkpt>, 'sqlite3_wal_checkpoint_v2', \ + sqliteWalHook, <.ptrDB, .procCommitHook, .lparam>, 'sqlite3_wal_hook', \ + sqliteWin32_MbcsToUtf8, <NONE>, 'sqlite3_win32_mbcs_to_utf8' ADDED freshlib/imports/Linux/xcursor.inc Index: freshlib/imports/Linux/xcursor.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/xcursor.inc @@ -0,0 +1,18 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: XCursors import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto 'libXcursor.so', \ + XcursorShapeLoadImage ,<.shape, .theme, .size>, 'XcursorShapeLoadImage', \ + XcursorShapeLoadImages, <.shape, .theme, .size>, 'XcursorShapeLoadImages' ADDED freshlib/imports/Linux/xshm.inc Index: freshlib/imports/Linux/xshm.inc ================================================================== --- /dev/null +++ freshlib/imports/Linux/xshm.inc @@ -0,0 +1,37 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: MIT_SHM extension import library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto 'libXext.so.6', \ + XShmQueryExtension, <.Disp>, 'XShmQueryExtension', \ + XShmQueryVersion, <.Disp, .piMajor, .piMinor, .pfPixmaps>, 'XShmQueryVersion', \ + XShmPixmapFormat, <.Disp>, 'XShmPixmapFormat', \ + XShmAttach, <.Disp, .pSegmentInfo>, 'XShmAttach', \ + XShmDetach, <.Disp, .pSegmentInfo>, 'XShmDetach', \ + XShmCreateImage, <.Disp, .Visual, .depth, .format, \ + .pData, .pShmInfo, .width, .height>, 'XShmCreateImage', \ + XShmPutImage, <.Disp, .Drawable, .context, .pImage, \ + .SrcX, .SrcY, .DestX, .DestY, \ + .width, .height, .fSendEvent >, 'XShmPutImage', \ + XShmGetImage, <.Disp, .Drawable, .pImage, \ + .X, .Y, .PlaneMask>, 'XShmGetImage', \ + XShmCreatePixmap, <.Disp, .Drawable, .pData, .pShmInfo, \ + .width, .height, .depth>, 'XShmCreatePixmap', \ + XShmGetEventBase, <.Disp>, 'XShmGetEventBase', \ + XSyncInitialize, <.Disp, .p_major, .p_minor>, 'XSyncInitialize', \ + XSyncCreateCounter, <.Disp, .valueHi, .valueLo>, 'XSyncCreateCounter', \ + XSyncDestroyCounter, <.Disp, .counter>, 'XSyncDestroyCounter', \ + XSyncSetCounter, <.Disp, .counter, .valueHi, .valueLo>, 'XSyncSetCounter', \ + XSyncQueryCounter, <.Disp, .counter, .p_return>, 'XSyncQueryCounter', \ + XSyncChangeCounter, <.Disp, .counter, .valueHi, .valueLo>, 'XSyncChangeCounter' ADDED freshlib/imports/Win32/advapi32.inc Index: freshlib/imports/Win32/advapi32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/advapi32.inc @@ -0,0 +1,755 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: advapi32.dll API functions. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; advapi32.dll API calls (ASCII) +import_proto advapi32, \ + A_SHAFinal, <NONE>, 'A_SHAFinal', \ + A_SHAInit, <NONE>, 'A_SHAInit', \ + A_SHAUpdate, <NONE>, 'A_SHAUpdate', \ + AbortSystemShutdownA, <.lpMachineName>, 'AbortSystemShutdownA', \ + AbortSystemShutdownW, <.lpMachineName>, 'AbortSystemShutdownW', \ + AccessCheck, <.pSecurityDescriptor, .ClientToken, .DesiredAccess, .GenericMapping, .PrivilegeSet, .PrivilegeSetLength, .GrantedAccess, \ + .Status>, 'AccessCheck', \ + AccessCheckAndAuditAlarmA, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .DesiredAccess, .GenericMapping, \ + .ObjectCreation, .GrantedAccess, .AccessStatus, .pfGenerateOnClose>, 'AccessCheckAndAuditAlarmA', \ + AccessCheckAndAuditAlarmW, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .DesiredAccess, .GenericMapping, \ + .ObjectCreation, .GrantedAccess, .AccessStatus, .pfGenerateOnClose>, 'AccessCheckAndAuditAlarmW', \ + AccessCheckByType, <.pSecurityDescriptor, .PrincipalSelfSid, .ClientToken, .DesiredAccess, .ObjectTypeList, .ObjectTypeListLength, \ + .GenericMapping, .PrivilegeSet, .PrivilegeSetLength, .GrantedAccess, .AccessStatus>, 'AccessCheckByType', \ + AccessCheckByTypeAndAuditAlarmA, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ + .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ + .AccessStatus, .pfGenerateOnClose>, 'AccessCheckByTypeAndAuditAlarmA', \ + AccessCheckByTypeAndAuditAlarmW, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ + .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ + .AccessStatus, .pfGenerateOnClose>, 'AccessCheckByTypeAndAuditAlarmW', \ + AccessCheckByTypeResultList, <.pSecurityDescriptor, .PrincipalSelfSid, .ClientToken, .DesiredAccess, .ObjectTypeList, .ObjectTypeListLength, \ + .GenericMapping, .PrivilegeSet, .PrivilegeSetLength, .GrantedAccessList, .AccessStatusList>, 'AccessCheckByTypeResultList', \ + AccessCheckByTypeResultListAndAuditAlarmA, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ + .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ + .AccessStatusList, .pfG>, 'AccessCheckByTypeResultListAndAuditAlarmA', \ + AccessCheckByTypeResultListAndAuditAlarmByHandleA, <.SubsystemName, .HandleId, .ClientToken, .ObjectTypeName, .ObjectName, .SecurityDescriptor, \ + .PrincipalSelfSid, .DesiredAccess, .AuditType, .flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, \ + .GrantedAccess, .AccessibleChildren, .paccContainer, .iChildStart, .cChildren, .rgvarChildren, .pcObtained>, 'AccessCheckByTypeResultListAndAuditAlarmByHandleA', \ + AccessCheckByTypeResultListAndAuditAlarmByHandleW, <.SubsystemName, .HandleId, .ClientToken, .ObjectTypeName, .ObjectName, .SecurityDescriptor, \ + .PrincipalSelfSid, .DesiredAccess, .AuditType, .flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, \ + .GrantedAccess, .AccessibleChildren, .paccContainer, .iChildStart, .cChildren, .rgvarChildren, .pcObtained>, 'AccessCheckByTypeResultListAndAuditAlarmByHandleW', \ + AccessCheckByTypeResultListAndAuditAlarmW, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ + .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ + .AccessStatusList, .pfG>, 'AccessCheckByTypeResultListAndAuditAlarmW', \ + AddAccessAllowedAce, <.pAcl, .dwAceRevision, .AccessMask, .pSid>, 'AddAccessAllowedAce', \ + AddAccessAllowedAceEx, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .pSid>, 'AddAccessAllowedAceEx', \ + AddAccessAllowedObjectAce, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .ObjectTypeGuid, .ByRefheritedObjectTypeGuid, .pSid, \ + >, 'AddAccessAllowedObjectAce', \ + AddAccessDeniedAce, <.pAcl, .dwAceRevision, .AccessMask, .pSid>, 'AddAccessDeniedAce', \ + AddAccessDeniedAceEx, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .pSid>, 'AddAccessDeniedAceEx', \ + AddAccessDeniedObjectAce, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .ObjectTypeGuid, .ByRefheritedObjectTypeGuid, .pSid, \ + >, 'AddAccessDeniedObjectAce', \ + AddAce, <.pAcl, .dwAceRevision, .dwStartingAceIndex, .pAceList, .nAceListLength>, 'AddAce', \ + AddAuditAccessAce, <.pAcl, .dwAceRevision, .dwAccessMask, .pSid, .bAuditSuccess, .bAuditFailure>, 'AddAuditAccessAce', \ + AddAuditAccessAceEx, <.pAcl, .dwAceRevision, .AceFlags, .dwAccessMask, .pSid, .bAuditSuccess, .bAuditFailure>, 'AddAuditAccessAceEx', \ + AddAuditAccessObjectAce, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .ObjectTypeGuid, .ByRefheritedObjectTypeGuid, .pSid, .bAuditSuccess, \ + .bAuditFailure>, 'AddAuditAccessObjectAce', \ + AddUsersToEncryptedFile, <.lpFileName, .pUsers>, 'AddUsersToEncryptedFile', \ + AdjustTokenGroups, <.TokenHandle, .ResetToDefault, .NewState, .BufferLength, .PreviousState, .ReturnLength>, 'AdjustTokenGroups', \ + AdjustTokenPrivileges, <.TokenHandle, .DisableAllPrivileges, .NewState, .BufferLength, .PreviousState, .ReturnLength>, 'AdjustTokenPrivileges', \ + AllocateAndInitializeSid, <.pIdentifierAuthority, .nSubAuthorityCount, .nSubAuthority0, .nSubAuthority1, .nSubAuthority2, .nSubAuthority3, \ + .nSubAuthority4, .nSubAuthority5, .nSubAuthority6, .nSubAuthority7, .lpPSid>, 'AllocateAndInitializeSid', \ + AllocateLocallyUniqueId, <.Luid>, 'AllocateLocallyUniqueId', \ + AreAllAccessesGranted, <.GrantedAccess, .DesiredAccess>, 'AreAllAccessesGranted', \ + AreAnyAccessesGranted, <.GrantedAccess, .DesiredAccess>, 'AreAnyAccessesGranted', \ + BackupEventLogA, <.hEventLog, .lpBackupFileName>, 'BackupEventLogA', \ + BackupEventLogW, <.hEventLog, .lpBackupFileName>, 'BackupEventLogW', \ + BuildExplicitAccessWithNameA, <.pExplicitAccess, .pTrusteeName, .AccessPermissions, .AccessMode, .Inheritance>, 'BuildExplicitAccessWithNameA', \ + BuildExplicitAccessWithNameW, <.pExplicitAccess, .pTrusteeName, .AccessPermissions, .AccessMode, .Inheritance>, 'BuildExplicitAccessWithNameW', \ + BuildImpersonateExplicitAccessWithNameA, <.pExplicitAccess, .pTrusteeName, .pTrustee, .AccessPermissions, .AccessMode, .Inheritance, \ + >, 'BuildImpersonateExplicitAccessWithNameA', \ + BuildImpersonateExplicitAccessWithNameW, <.pExplicitAccess, .pTrusteeName, .pTrustee, .AccessPermissions, .AccessMode, .Inheritance, \ + >, 'BuildImpersonateExplicitAccessWithNameW', \ + BuildImpersonateTrusteeA, <.pTrustee, .pImpersonateTrustee>, 'BuildImpersonateTrusteeA', \ + BuildImpersonateTrusteeW, <.pTrustee, .pImpersonateTrustee>, 'BuildImpersonateTrusteeW', \ + BuildSecurityDescriptorA, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ + .pOldSD, .pSizeNewSD, .pNewSD>, 'BuildSecurityDescriptorA', \ + BuildSecurityDescriptorW, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ + .pOldSD, .pSizeNewSD, .pNewSD>, 'BuildSecurityDescriptorW', \ + BuildTrusteeWithNameA, <.pTrustee, .pname>, 'BuildTrusteeWithNameA', \ + BuildTrusteeWithNameW, <.pTrustee, .pname>, 'BuildTrusteeWithNameW', \ + BuildTrusteeWithObjectsAndNameA, <.pTrustee, .pObjName, .ObjectType, .ObjectTypeName, .InheritedObjectTypeName, .name>, 'BuildTrusteeWithObjectsAndNameA', \ + BuildTrusteeWithObjectsAndNameW, <.pTrustee, .pObjName, .ObjectType, .ObjectTypeName, .InheritedObjectTypeName, .name>, 'BuildTrusteeWithObjectsAndNameW', \ + BuildTrusteeWithObjectsAndSidA, <.pTrustee, .pObjSid, .pObjectGuid, .pInheritedObjectGuid, .pSid>, 'BuildTrusteeWithObjectsAndSidA', \ + BuildTrusteeWithObjectsAndSidW, <.pTrustee, .pObjSid, .pObjectGuid, .pInheritedObjectGuid, .pSid>, 'BuildTrusteeWithObjectsAndSidW', \ + BuildTrusteeWithSidA, <.pTrustee, .pSid>, 'BuildTrusteeWithSidA', \ + BuildTrusteeWithSidW, <.pTrustee, .pSid>, 'BuildTrusteeWithSidW', \ + CancelOverlappedAccess, <NONE>, 'CancelOverlappedAccess', \ + ChangeServiceConfig2A, <.hService, .dwInfoLevel, .lpInfo>, 'ChangeServiceConfig2A', \ + ChangeServiceConfig2W, <.hService, .dwInfoLevel, .lpInfo>, 'ChangeServiceConfig2W', \ + ChangeServiceConfigA, <.hService, .dwServiceType, .dwStartType, .dwErrorControl, .lpBinaryPathName, .lpLoadOrderGroup, .lpdwTagId, \ + .lpDependencies, .lpServiceStartName, .lpPassword, .lpDisplayName>, 'ChangeServiceConfigA', \ + ChangeServiceConfigW, <.hService, .dwServiceType, .dwStartType, .dwErrorControl, .lpBinaryPathName, .lpLoadOrderGroup, .lpdwTagId, \ + .lpDependencies, .lpServiceStartName, .lpPassword, .lpDisplayName>, 'ChangeServiceConfigW', \ + CheckTokenMembership, <.TokenHandle, .SidToCheck, .IsMember>, 'CheckTokenMembership', \ + ClearEventLogA, <.hEventLog, .lpBackupFileName>, 'ClearEventLogA', \ + ClearEventLogW, <.hEventLog, .lpBackupFileName>, 'ClearEventLogW', \ + CloseCodeAuthzLevel, <NONE>, 'CloseCodeAuthzLevel', \ + CloseEncryptedFileRaw, <.pvContext>, 'CloseEncryptedFileRaw', \ + CloseEventLog, <.hEventLog>, 'CloseEventLog', \ + CloseServiceHandle, <.hSCObject>, 'CloseServiceHandle', \ + CloseTrace, <NONE>, 'CloseTrace', \ + CommandLineFromMsiDescriptor, <NONE>, 'CommandLineFromMsiDescriptor', \ + ComputeAccessTokenFromCodeAuthzLevel, <NONE>, 'ComputeAccessTokenFromCodeAuthzLevel', \ + ControlService, <.hService, .dwControl, .lpServiceStatus>, 'ControlService', \ + ControlTraceA, <NONE>, 'ControlTraceA', \ + ControlTraceW, <NONE>, 'ControlTraceW', \ + ConvertAccessToSecurityDescriptorA, <NONE>, 'ConvertAccessToSecurityDescriptorA', \ + ConvertAccessToSecurityDescriptorW, <NONE>, 'ConvertAccessToSecurityDescriptorW', \ + ConvertSDToStringSDRootDomainA, <NONE>, 'ConvertSDToStringSDRootDomainA', \ + ConvertSDToStringSDRootDomainW, <NONE>, 'ConvertSDToStringSDRootDomainW', \ + ConvertSecurityDescriptorToAccessA, <NONE>, 'ConvertSecurityDescriptorToAccessA', \ + ConvertSecurityDescriptorToAccessNamedA, <NONE>, 'ConvertSecurityDescriptorToAccessNamedA', \ + ConvertSecurityDescriptorToAccessNamedW, <NONE>, 'ConvertSecurityDescriptorToAccessNamedW', \ + ConvertSecurityDescriptorToAccessW, <NONE>, 'ConvertSecurityDescriptorToAccessW', \ + ConvertSecurityDescriptorToStringSecurityDescriptorA, <.SecurityDescriptor, .RequestedStringSDRevision, .SecurityInformation, .StringSecurityDescriptor, \ + .StringSecurityDescriptorLen>, 'ConvertSecurityDescriptorToStringSecurityDescriptorA', \ + ConvertSecurityDescriptorToStringSecurityDescriptorW, <.SecurityDescriptor, .RequestedStringSDRevision, .SecurityInformation, .StringSecurityDescriptor, \ + .StringSecurityDescriptorLen>, 'ConvertSecurityDescriptorToStringSecurityDescriptorW', \ + ConvertSidToStringSidA, <.Sid, .StringSid>, 'ConvertSidToStringSidA', \ + ConvertSidToStringSidW, <.Sid, .StringSid>, 'ConvertSidToStringSidW', \ + ConvertStringSDToSDDomainA, <NONE>, 'ConvertStringSDToSDDomainA', \ + ConvertStringSDToSDDomainW, <NONE>, 'ConvertStringSDToSDDomainW', \ + ConvertStringSDToSDRootDomainA, <NONE>, 'ConvertStringSDToSDRootDomainA', \ + ConvertStringSDToSDRootDomainW, <NONE>, 'ConvertStringSDToSDRootDomainW', \ + ConvertStringSecurityDescriptorToSecurityDescriptorA, <.StringSecurityDescriptor, .StringSDRevision, .SecurityDescriptor, .SecurityDescriptorSize, \ + >, 'ConvertStringSecurityDescriptorToSecurityDescriptorA', \ + ConvertStringSecurityDescriptorToSecurityDescriptorW, <.StringSecurityDescriptor, .StringSDRevision, .SecurityDescriptor, .SecurityDescriptorSize, \ + >, 'ConvertStringSecurityDescriptorToSecurityDescriptorW', \ + ConvertStringSidToSidA, <.StringSid, .Sid>, 'ConvertStringSidToSidA', \ + ConvertStringSidToSidW, <.StringSid, .Sid>, 'ConvertStringSidToSidW', \ + ConvertToAutoInheritPrivateObjectSecurity, <.ParentDescriptor, .CurrentSecurityDescriptor, .NewSecurityDescriptor, .ObjectType, \ + .IsDirectoryObject, .GenericMapping>, 'ConvertToAutoInheritPrivateObjectSecurity', \ + CopySid, <.nDestinationSidLength, .pDestinationSid, .pSourceSid>, 'CopySid', \ + CreateCodeAuthzLevel, <NONE>, 'CreateCodeAuthzLevel', \ + CreatePrivateObjectSecurity, <.ParentDescriptor, .CreatorDescriptor, .NewDescriptor, .IsDirectoryObject, .Token, .GenericMapping, \ + >, 'CreatePrivateObjectSecurity', \ + CreatePrivateObjectSecurityEx, <.ParentDescriptor, .CreatorDescriptor, .NewDescriptor, .ObjectType, .IsContainerObject, .AutoInheritFlags, \ + .Token, .GenericMapping>, 'CreatePrivateObjectSecurityEx', \ + CreatePrivateObjectSecurityWithMultipleInheritance, <NONE>, 'CreatePrivateObjectSecurityWithMultipleInheritance', \ + CreateProcessAsUserA, <.hToken, .lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, \ + .dwCreationFlags, .lpEnvironment, .lpCurrentDirectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessAsUserA', \ + CreateProcessAsUserSecure, <NONE>, 'CreateProcessAsUserSecure', \ + CreateProcessAsUserW, <.hToken, .lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, \ + .dwCreationFlags, .lpEnvironment, .lpCurrentDirectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessAsUserW', \ + CreateProcessWithLogonW, <NONE>, 'CreateProcessWithLogonW', \ + CreateRestrictedToken, <.ExistingTokenHandle, .Flags, .DisableSidCount, .SidsToDisable, .DeletePrivilegeCount, .PrivilegesToDelete, \ + .RestrictedSidCount, .SidsToRestrict, .NewTokenHandle>, 'CreateRestrictedToken', \ + CreateServiceA, <.hSCManager, .lpServiceName, .lpDisplayName, .dwDesiredAccess, .dwServiceType, .dwStartType, .dwErrorControl, \ + .lpBinaryPathName, .lpLoadOrderGroup, .lpdwTagId, .lpDependencies, .lp, .lpPassword>, 'CreateServiceA', \ + CreateServiceW, <.hSCManager, .lpServiceName, .lpDisplayName, .dwDesiredAccess, .dwServiceType, .dwStartType, .dwErrorControl, \ + .lpBinaryPathName, .lpLoadOrderGroup, .lpdwTagId, .lpDependencies, .lp, .lpPassword>, 'CreateServiceW', \ + CreateTraceInstanceId, <NONE>, 'CreateTraceInstanceId', \ + CreateWellKnownSid, <NONE>, 'CreateWellKnownSid', \ + CredDeleteA, <NONE>, 'CredDeleteA', \ + CredDeleteW, <NONE>, 'CredDeleteW', \ + CredEnumerateA, <NONE>, 'CredEnumerateA', \ + CredEnumerateW, <NONE>, 'CredEnumerateW', \ + CredFree, <NONE>, 'CredFree', \ + CredGetSessionTypes, <NONE>, 'CredGetSessionTypes', \ + CredGetTargetInfoA, <NONE>, 'CredGetTargetInfoA', \ + CredGetTargetInfoW, <NONE>, 'CredGetTargetInfoW', \ + CredIsMarshaledCredentialA, <NONE>, 'CredIsMarshaledCredentialA', \ + CredIsMarshaledCredentialW, <NONE>, 'CredIsMarshaledCredentialW', \ + CredMarshalCredentialA, <NONE>, 'CredMarshalCredentialA', \ + CredMarshalCredentialW, <NONE>, 'CredMarshalCredentialW', \ + CredProfileLoaded, <NONE>, 'CredProfileLoaded', \ + CredReadA, <NONE>, 'CredReadA', \ + CredReadDomainCredentialsA, <NONE>, 'CredReadDomainCredentialsA', \ + CredReadDomainCredentialsW, <NONE>, 'CredReadDomainCredentialsW', \ + CredReadW, <NONE>, 'CredReadW', \ + CredRenameA, <NONE>, 'CredRenameA', \ + CredRenameW, <NONE>, 'CredRenameW', \ + CredUnmarshalCredentialA, <NONE>, 'CredUnmarshalCredentialA', \ + CredUnmarshalCredentialW, <NONE>, 'CredUnmarshalCredentialW', \ + CredWriteA, <NONE>, 'CredWriteA', \ + CredWriteDomainCredentialsA, <NONE>, 'CredWriteDomainCredentialsA', \ + CredWriteDomainCredentialsW, <NONE>, 'CredWriteDomainCredentialsW', \ + CredWriteW, <NONE>, 'CredWriteW', \ + CredpConvertCredential, <NONE>, 'CredpConvertCredential', \ + CredpConvertTargetInfo, <NONE>, 'CredpConvertTargetInfo', \ + CredpDecodeCredential, <NONE>, 'CredpDecodeCredential', \ + CredpEncodeCredential, <NONE>, 'CredpEncodeCredential', \ + CryptAcquireContextA, <.phProv, .pszContainer, .pszProvider, .dwProvType, .dwFlags>, 'CryptAcquireContextA', \ + CryptAcquireContextW, <.phProv, .pszContainer, .pszProvider, .dwProvType, .dwFlags>, 'CryptAcquireContextW', \ + CryptContextAddRef, <.hProv, .pdwReserved, .dwFlags>, 'CryptContextAddRef', \ + CryptCreateHash, <.hProv, .Algid, .hKey, .dwFlags, .phHash>, 'CryptCreateHash', \ + CryptDecrypt, <.hKey, .hHash, .Final, .dwFlags, .pbData, .pdwDataLen>, 'CryptDecrypt', \ + CryptDeriveKey, <.hProv, .Algid, .hBaseData, .dwFlags, .phKey>, 'CryptDeriveKey', \ + CryptDestroyHash, <.hHash>, 'CryptDestroyHash', \ + CryptDestroyKey, <.hKey>, 'CryptDestroyKey', \ + CryptDuplicateHash, <.hHash, .pdwReserved, .dwFlags, .phHash>, 'CryptDuplicateHash', \ + CryptDuplicateKey, <.hKey, .pdwReserved, .dwFlags, .phKey>, 'CryptDuplicateKey', \ + CryptEncrypt, <.hKey, .hHash, .Final, .dwFlags, .pbData, .pdwDataLen, .dwBufLen>, 'CryptEncrypt', \ + CryptEnumProviderTypesA, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszTypeName, .pcbTypeName>, 'CryptEnumProviderTypesA', \ + CryptEnumProviderTypesW, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszTypeName, .pcbTypeName>, 'CryptEnumProviderTypesW', \ + CryptEnumProvidersA, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszProvName, .pcbProvName>, 'CryptEnumProvidersA', \ + CryptEnumProvidersW, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszProvName, .pcbProvName>, 'CryptEnumProvidersW', \ + CryptExportKey, <.hKey, .hExpKey, .dwBlobType, .dwFlags, .pbData, .pdwDataLen>, 'CryptExportKey', \ + CryptGenKey, <.hProv, .Algid, .dwFlags, .phKey>, 'CryptGenKey', \ + CryptGenRandom, <.hProv, .dwLen, .pbBuffer>, 'CryptGenRandom', \ + CryptGetDefaultProviderA, <.dwProvType, .pdwReserved, .dwFlags, .pszProvName, .pcbProvName>, 'CryptGetDefaultProviderA', \ + CryptGetDefaultProviderW, <.dwProvType, .pdwReserved, .dwFlags, .pszProvName, .pcbProvName>, 'CryptGetDefaultProviderW', \ + CryptGetHashParam, <.hHash, .dwParam, .pbData, .pdwDataLen, .dwFlags>, 'CryptGetHashParam', \ + CryptGetKeyParam, <.hKey, .dwParam, .pbData, .pdwDataLen, .dwFlags>, 'CryptGetKeyParam', \ + CryptGetProvParam, <.hProv, .dwParam, .pbData, .pdwDataLen, .dwFlags>, 'CryptGetProvParam', \ + CryptGetUserKey, <.hProv, .dwKeySpec, .phUserKey>, 'CryptGetUserKey', \ + CryptHashData, <.hHash, .pbData, .dwDataLen, .dwFlags>, 'CryptHashData', \ + CryptHashSessionKey, <.hHash, .hKey, .dwFlags>, 'CryptHashSessionKey', \ + CryptImportKey, <.hProv, .pbData, .dwDataLen, .hPubKey, .dwFlags, .phKey>, 'CryptImportKey', \ + CryptReleaseContext, <.hProv, .dwFlags>, 'CryptReleaseContext', \ + CryptSetHashParam, <.hHash, .dwParam, .pbData, .dwFlags>, 'CryptSetHashParam', \ + CryptSetKeyParam, <.hKey, .dwParam, .pbData, .dwFlags>, 'CryptSetKeyParam', \ + CryptSetProvParam, <.hProv, .dwParam, .pbData, .dwFlags>, 'CryptSetProvParam', \ + CryptSetProviderA, <.pszProvName, .dwProvType>, 'CryptSetProviderA', \ + CryptSetProviderExA, <.pszProvName, .dwProvType, .pdwReserved, .dwFlags>, 'CryptSetProviderExA', \ + CryptSetProviderExW, <.pszProvName, .dwProvType, .pdwReserved, .dwFlags>, 'CryptSetProviderExW', \ + CryptSetProviderW, <.pszProvName, .dwProvType>, 'CryptSetProviderW', \ + CryptSignHashA, <.hHash, .dwKeySpec, .sDescription, .dwFlags, .pbSignature, .pdwSigLen>, 'CryptSignHashA', \ + CryptSignHashW, <.hHash, .dwKeySpec, .sDescription, .dwFlags, .pbSignature, .pdwSigLen>, 'CryptSignHashW', \ + CryptVerifySignatureA, <.hHash, .pbSignature, .dwSigLen, .hPubKey, .sDescription, .dwFlags>, 'CryptVerifySignatureA', \ + CryptVerifySignatureW, <.hHash, .pbSignature, .dwSigLen, .hPubKey, .sDescription, .dwFlags>, 'CryptVerifySignatureW', \ + DecryptFileA, <.lpFileName, .dwReserved>, 'DecryptFileA', \ + DecryptFileW, <.lpFileName, .dwReserved>, 'DecryptFileW', \ + DeleteAce, <.pAcl, .dwAceIndex>, 'DeleteAce', \ + DeleteService, <.hService>, 'DeleteService', \ + DeregisterEventSource, <.hEventLog>, 'DeregisterEventSource', \ + DestroyPrivateObjectSecurity, <.ObjectDescriptor>, 'DestroyPrivateObjectSecurity', \ + DuplicateEncryptionInfoFile, <NONE>, 'DuplicateEncryptionInfoFile', \ + DuplicateToken, <.ExistingTokenHandle, .ImpersonationLevel, .DuplicateTokenHandle>, 'DuplicateToken', \ + DuplicateTokenEx, <.hExistingToken, .dwDesiredAccess, .lpTokenAttributes, .ImpersonationLevel, .TokenType, .phNewToken>, 'DuplicateTokenEx', \ + ElfBackupEventLogFileA, <NONE>, 'ElfBackupEventLogFileA', \ + ElfBackupEventLogFileW, <NONE>, 'ElfBackupEventLogFileW', \ + ElfChangeNotify, <NONE>, 'ElfChangeNotify', \ + ElfClearEventLogFileA, <NONE>, 'ElfClearEventLogFileA', \ + ElfClearEventLogFileW, <NONE>, 'ElfClearEventLogFileW', \ + ElfCloseEventLog, <NONE>, 'ElfCloseEventLog', \ + ElfDeregisterEventSource, <NONE>, 'ElfDeregisterEventSource', \ + ElfFlushEventLog, <NONE>, 'ElfFlushEventLog', \ + ElfNumberOfRecords, <NONE>, 'ElfNumberOfRecords', \ + ElfOldestRecord, <NONE>, 'ElfOldestRecord', \ + ElfOpenBackupEventLogA, <NONE>, 'ElfOpenBackupEventLogA', \ + ElfOpenBackupEventLogW, <NONE>, 'ElfOpenBackupEventLogW', \ + ElfOpenEventLogA, <NONE>, 'ElfOpenEventLogA', \ + ElfOpenEventLogW, <NONE>, 'ElfOpenEventLogW', \ + ElfReadEventLogA, <NONE>, 'ElfReadEventLogA', \ + ElfReadEventLogW, <NONE>, 'ElfReadEventLogW', \ + ElfRegisterEventSourceA, <NONE>, 'ElfRegisterEventSourceA', \ + ElfRegisterEventSourceW, <NONE>, 'ElfRegisterEventSourceW', \ + ElfReportEventA, <NONE>, 'ElfReportEventA', \ + ElfReportEventW, <NONE>, 'ElfReportEventW', \ + EnableTrace, <NONE>, 'EnableTrace', \ + EncryptFileA, <.lpFileName>, 'EncryptFileA', \ + EncryptFileW, <.lpFileName>, 'EncryptFileW', \ + EncryptedFileKeyInfo, <NONE>, 'EncryptedFileKeyInfo', \ + EncryptionDisable, <.DirPath, .Disable>, 'EncryptionDisable', \ + EnumDependentServicesA, <.hService, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned>, 'EnumDependentServicesA', \ + EnumDependentServicesW, <.hService, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned>, 'EnumDependentServicesW', \ + EnumServiceGroupW, <NONE>, 'EnumServiceGroupW', \ + EnumServicesStatusA, <.hSCManager, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ + .lpResumeHandle>, 'EnumServicesStatusA', \ + EnumServicesStatusExA, <.hSCManager, .InfoLevel, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ + .lpResumeHandle, .pszGroupName>, 'EnumServicesStatusExA', \ + EnumServicesStatusExW, <.hSCManager, .InfoLevel, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ + .lpResumeHandle, .pszGroupName>, 'EnumServicesStatusExW', \ + EnumServicesStatusW, <.hSCManager, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ + .lpResumeHandle>, 'EnumServicesStatusW', \ + EnumerateTraceGuids, <NONE>, 'EnumerateTraceGuids', \ + EqualDomainSid, <NONE>, 'EqualDomainSid', \ + EqualPrefixSid, <.pSid1, .pSid2>, 'EqualPrefixSid', \ + EqualSid, <.pSid1, .pSid2>, 'EqualSid', \ + FileEncryptionStatusA, <.lpFileName, .lpStatus>, 'FileEncryptionStatusA', \ + FileEncryptionStatusW, <.lpFileName, .lpStatus>, 'FileEncryptionStatusW', \ + FindFirstFreeAce, <.pAcl, .pAce>, 'FindFirstFreeAce', \ + FlushTraceA, <NONE>, 'FlushTraceA', \ + FlushTraceW, <NONE>, 'FlushTraceW', \ + FreeEncryptedFileKeyInfo, <NONE>, 'FreeEncryptedFileKeyInfo', \ + FreeEncryptionCertificateHashList, <.pHashes>, 'FreeEncryptionCertificateHashList', \ + FreeInheritedFromArray, <.pInheritArray, .AceCnt, .pfnArray>, 'FreeInheritedFromArray', \ + FreeSid, <.pSid>, 'FreeSid', \ + GetAccessPermissionsForObjectA, <NONE>, 'GetAccessPermissionsForObjectA', \ + GetAccessPermissionsForObjectW, <NONE>, 'GetAccessPermissionsForObjectW', \ + GetAce, <.pAcl, .dwAceIndex, .pAce>, 'GetAce', \ + GetAclInformation, <.pAcl, .pAclInformation, .nAclInformationLength, .dwAclInformationClass>, 'GetAclInformation', \ + GetAuditedPermissionsFromAclA, <.pAcl, .pTrustee, .pSuccessfulAuditedRights, .pFailedAuditRights>, 'GetAuditedPermissionsFromAclA', \ + GetAuditedPermissionsFromAclW, <.pAcl, .pTrustee, .pSuccessfulAuditedRights, .pFailedAuditRights>, 'GetAuditedPermissionsFromAclW', \ + GetCurrentHwProfileA, <.lpHwProfileInfo>, 'GetCurrentHwProfileA', \ + GetCurrentHwProfileW, <.lpHwProfileInfo>, 'GetCurrentHwProfileW', \ + GetEffectiveRightsFromAclA, <.pAcl, .pTrustee, .pAccessRights>, 'GetEffectiveRightsFromAclA', \ + GetEffectiveRightsFromAclW, <.pAcl, .pTrustee, .pAccessRights>, 'GetEffectiveRightsFromAclW', \ + GetEventLogInformation, <.hEventLog, .dwInfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'GetEventLogInformation', \ + GetExplicitEntriesFromAclA, <.pAcl, .pcCountOfExplicitEntries, .pListOfExplicitEntries>, 'GetExplicitEntriesFromAclA', \ + GetExplicitEntriesFromAclW, <.pAcl, .pcCountOfExplicitEntries, .pListOfExplicitEntries>, 'GetExplicitEntriesFromAclW', \ + GetFileSecurityA, <.lpFileName, .RequestedInformation, .pSecurityDescriptor, .nLength, .lpnLengthNeeded>, 'GetFileSecurityA', \ + GetFileSecurityW, <.lpFileName, .RequestedInformation, .pSecurityDescriptor, .nLength, .lpnLengthNeeded>, 'GetFileSecurityW', \ + GetInformationCodeAuthzLevelW, <NONE>, 'GetInformationCodeAuthzLevelW', \ + GetInformationCodeAuthzPolicyW, <NONE>, 'GetInformationCodeAuthzPolicyW', \ + GetInheritanceSourceA, <.pObjectName, .ObjectType, .SecurityInfo, .Container, .ObjectTypeGuid, .pAcl, .pfnArray, .pGenericMapping, \ + .pInheritArray>, 'GetInheritanceSourceA', \ + GetInheritanceSourceW, <.pObjectName, .ObjectType, .SecurityInfo, .Container, .ObjectTypeGuid, .pAcl, .pfnArray, .pGenericMapping, \ + .pInheritArray>, 'GetInheritanceSourceW', \ + GetKernelObjectSecurity, <.Handle, .RequestedInformation, .pSecurityDescriptor, .nLength, .lpnLengthNeeded>, 'GetKernelObjectSecurity', \ + GetLengthSid, <.pSid>, 'GetLengthSid', \ + GetLocalManagedApplicationData, <NONE>, 'GetLocalManagedApplicationData', \ + GetLocalManagedApplications, <NONE>, 'GetLocalManagedApplications', \ + GetManagedApplicationCategories, <NONE>, 'GetManagedApplicationCategories', \ + GetManagedApplications, <NONE>, 'GetManagedApplications', \ + GetMultipleTrusteeA, <.pTrustee>, 'GetMultipleTrusteeA', \ + GetMultipleTrusteeOperationA, <.pTrustee>, 'GetMultipleTrusteeOperationA', \ + GetMultipleTrusteeOperationW, <.pTrustee>, 'GetMultipleTrusteeOperationW', \ + GetMultipleTrusteeW, <.pTrustee>, 'GetMultipleTrusteeW', \ + GetNamedSecurityInfoA, <.pObjectName, .ObjectType, .SecurityInfo, .ppsidOwner, .ppsidGroup, .ppDacl, .ppSacl, .ppSecurityDescriptor, \ + >, 'GetNamedSecurityInfoA', \ + GetNamedSecurityInfoExA, <NONE>, 'GetNamedSecurityInfoExA', \ + GetNamedSecurityInfoExW, <NONE>, 'GetNamedSecurityInfoExW', \ + GetNamedSecurityInfoW, <.pObjectName, .ObjectType, .SecurityInfo, .ppsidOwner, .ppsidGroup, .ppDacl, .ppSacl, .ppSecurityDescriptor, \ + >, 'GetNamedSecurityInfoW', \ + GetNumberOfEventLogRecords, <.hEventLog, .NumberOfRecords>, 'GetNumberOfEventLogRecords', \ + GetOldestEventLogRecord, <.hEventLog, .OldestRecord>, 'GetOldestEventLogRecord', \ + GetOverlappedAccessResults, <NONE>, 'GetOverlappedAccessResults', \ + GetPrivateObjectSecurity, <.ObjectDescriptor, .SecurityInformation, .ResultantDescriptor, .DescriptorLength, .ReturnLength>, 'GetPrivateObjectSecurity', \ + GetSecurityDescriptorControl, <.pSecurityDescriptor, .pControl, .lpdwRevision>, 'GetSecurityDescriptorControl', \ + GetSecurityDescriptorDacl, <.pSecurityDescriptor, .lpbDaclPresent, .pDacl, .lpbDaclDefaulted>, 'GetSecurityDescriptorDacl', \ + GetSecurityDescriptorGroup, <.pSecurityDescriptor, .pGroup, .lpbGroupDefaulted>, 'GetSecurityDescriptorGroup', \ + GetSecurityDescriptorLength, <.pSecurityDescriptor>, 'GetSecurityDescriptorLength', \ + GetSecurityDescriptorOwner, <.pSecurityDescriptor, .pOwner, .lpbOwnerDefaulted>, 'GetSecurityDescriptorOwner', \ + GetSecurityDescriptorRMControl, <.SecurityDescriptor, .RMControl>, 'GetSecurityDescriptorRMControl', \ + GetSecurityDescriptorSacl, <.pSecurityDescriptor, .lpbSaclPresent, .pSacl, .lpbSaclDefaulted>, 'GetSecurityDescriptorSacl', \ + GetSecurityInfo, <.Handle, .ObjectType, .SecurityInfo, .ppsidOwner, .ppsidGroup, .ppDacl, .ppSacl, .ppSecurityDescriptor>, 'GetSecurityInfo', \ + GetSecurityInfoExA, <NONE>, 'GetSecurityInfoExA', \ + GetSecurityInfoExW, <NONE>, 'GetSecurityInfoExW', \ + GetServiceDisplayNameA, <.hSCManager, .lpServiceName, .lpDisplayName, .lpcchBuffer>, 'GetServiceDisplayNameA', \ + GetServiceDisplayNameW, <.hSCManager, .lpServiceName, .lpDisplayName, .lpcchBuffer>, 'GetServiceDisplayNameW', \ + GetServiceKeyNameA, <.hSCManager, .lpDisplayName, .lpServiceName, .lpcchBuffer>, 'GetServiceKeyNameA', \ + GetServiceKeyNameW, <.hSCManager, .lpDisplayName, .lpServiceName, .lpcchBuffer>, 'GetServiceKeyNameW', \ + GetSidIdentifierAuthority, <.pSid>, 'GetSidIdentifierAuthority', \ + GetSidLengthRequired, <.nSubAuthorityCount>, 'GetSidLengthRequired', \ + GetSidSubAuthority, <.pSid, .nSubAuthority>, 'GetSidSubAuthority', \ + GetSidSubAuthorityCount, <.pSid>, 'GetSidSubAuthorityCount', \ + GetTokenInformation, <.TokenHandle, .TokenInformationClass, .TokenInformation, .TokenInformationLength, .ReturnLength>, 'GetTokenInformation', \ + GetTraceEnableFlags, <NONE>, 'GetTraceEnableFlags', \ + GetTraceEnableLevel, <NONE>, 'GetTraceEnableLevel', \ + GetTraceLoggerHandle, <NONE>, 'GetTraceLoggerHandle', \ + GetTrusteeFormA, <.pTrustee>, 'GetTrusteeFormA', \ + GetTrusteeFormW, <.pTrustee>, 'GetTrusteeFormW', \ + GetTrusteeNameA, <.pTrustee>, 'GetTrusteeNameA', \ + GetTrusteeNameW, <.pTrustee>, 'GetTrusteeNameW', \ + GetTrusteeTypeA, <.pTrustee>, 'GetTrusteeTypeA', \ + GetTrusteeTypeW, <.pTrustee>, 'GetTrusteeTypeW', \ + GetUserNameA, <.lpBuffer, .nSize>, 'GetUserNameA', \ + GetUserNameW, <.lpBuffer, .nSize>, 'GetUserNameW', \ + GetWindowsAccountDomainSid, <NONE>, 'GetWindowsAccountDomainSid', \ + I_ScGetCurrentGroupStateW, <NONE>, 'I_ScGetCurrentGroupStateW', \ + I_ScIsSecurityProcess, <NONE>, 'I_ScIsSecurityProcess', \ + I_ScPnPGetServiceName, <NONE>, 'I_ScPnPGetServiceName', \ + I_ScSendTSMessage, <NONE>, 'I_ScSendTSMessage', \ + I_ScSetServiceBitsA, <NONE>, 'I_ScSetServiceBitsA', \ + I_ScSetServiceBitsW, <NONE>, 'I_ScSetServiceBitsW', \ + IdentifyCodeAuthzLevelW, <NONE>, 'IdentifyCodeAuthzLevelW', \ + ImpersonateAnonymousToken, <.ThreadHandle>, 'ImpersonateAnonymousToken', \ + ImpersonateLoggedOnUser, <.hToken>, 'ImpersonateLoggedOnUser', \ + ImpersonateNamedPipeClient, <.hNamedPipe>, 'ImpersonateNamedPipeClient', \ + ImpersonateSelf, <.ImpersonationLevel>, 'ImpersonateSelf', \ + InitializeAcl, <.pAcl, .nAclLength, .dwAclRevision>, 'InitializeAcl', \ + InitializeSecurityDescriptor, <.pSecurityDescriptor, .dwRevision>, 'InitializeSecurityDescriptor', \ + InitializeSid, <.Sid, .pIdentifierAuthority, .nSubAuthorityCount>, 'InitializeSid', \ + InitiateSystemShutdownA, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown>, 'InitiateSystemShutdownA', \ + InitiateSystemShutdownExA, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown, .dwReason>, 'InitiateSystemShutdownExA', \ + InitiateSystemShutdownExW, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown, .dwReason>, 'InitiateSystemShutdownExW', \ + InitiateSystemShutdownW, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown>, 'InitiateSystemShutdownW', \ + InstallApplication, <NONE>, 'InstallApplication', \ + IsTextUnicode, <.lpBuffer, .cb, .lpi>, 'IsTextUnicode', \ + IsTokenRestricted, <.TokenHandle>, 'IsTokenRestricted', \ + IsTokenUntrusted, <NONE>, 'IsTokenUntrusted', \ + IsValidAcl, <.pAcl>, 'IsValidAcl', \ + IsValidSecurityDescriptor, <.pSecurityDescriptor>, 'IsValidSecurityDescriptor', \ + IsValidSid, <.pSid>, 'IsValidSid', \ + IsWellKnownSid, <NONE>, 'IsWellKnownSid', \ + LockServiceDatabase, <.hSCManager>, 'LockServiceDatabase', \ + LogonUserA, <.lpszUsername, .lpszDomain, .lpszPassword, .dwLogonType, .dwLogonProvider, .phToken>, 'LogonUserA', \ + LogonUserExA, <NONE>, 'LogonUserExA', \ + LogonUserExW, <NONE>, 'LogonUserExW', \ + LogonUserW, <.lpszUsername, .lpszDomain, .lpszPassword, .dwLogonType, .dwLogonProvider, .phToken>, 'LogonUserW', \ + LookupAccountNameA, <.lpSystemName, .lpAccountName, .Sid, .cbSid, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountNameA', \ + LookupAccountNameW, <.lpSystemName, .lpAccountName, .Sid, .cbSid, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountNameW', \ + LookupAccountSidA, <.lpSystemName, .Sid, .Name, .cbName, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountSidA', \ + LookupAccountSidW, <.lpSystemName, .Sid, .Name, .cbName, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountSidW', \ + LookupPrivilegeDisplayNameA, <.lpSystemName, .lpName, .lpDisplayName, .cbDisplayName, .lpLanguageID>, 'LookupPrivilegeDisplayNameA', \ + LookupPrivilegeDisplayNameW, <.lpSystemName, .lpName, .lpDisplayName, .cbDisplayName, .lpLanguageID>, 'LookupPrivilegeDisplayNameW', \ + LookupPrivilegeNameA, <.lpSystemName, .lpLuid, .lpName, .cbName>, 'LookupPrivilegeNameA', \ + LookupPrivilegeNameW, <.lpSystemName, .lpLuid, .lpName, .cbName>, 'LookupPrivilegeNameW', \ + LookupPrivilegeValueA, <.lpSystemName, .lpName, .lpLuid>, 'LookupPrivilegeValueA', \ + LookupPrivilegeValueW, <.lpSystemName, .lpName, .lpLuid>, 'LookupPrivilegeValueW', \ + LookupSecurityDescriptorPartsA, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ + .pSD>, 'LookupSecurityDescriptorPartsA', \ + LookupSecurityDescriptorPartsW, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ + .pSD>, 'LookupSecurityDescriptorPartsW', \ + LsaAddAccountRights, <.PolicyHandle, .AccountSid, .UserRights, .CountOfRights>, 'LsaAddAccountRights', \ + LsaAddPrivilegesToAccount, <NONE>, 'LsaAddPrivilegesToAccount', \ + LsaClearAuditLog, <NONE>, 'LsaClearAuditLog', \ + LsaClose, <.ObjectHandle>, 'LsaClose', \ + LsaCreateAccount, <NONE>, 'LsaCreateAccount', \ + LsaCreateSecret, <NONE>, 'LsaCreateSecret', \ + LsaCreateTrustedDomain, <NONE>, 'LsaCreateTrustedDomain', \ + LsaCreateTrustedDomainEx, <.PolicyHandle, .TrustedDomainInformation, .AuthenticationInformation, .DesiredAccess, .TrustedDomainHandle, \ + >, 'LsaCreateTrustedDomainEx', \ + LsaDelete, <NONE>, 'LsaDelete', \ + LsaDeleteTrustedDomain, <.PolicyHandle, .TrustedDomainSid>, 'LsaDeleteTrustedDomain', \ + LsaEnumerateAccountRights, <.PolicyHandle, .AccountSid, .UserRights, .CountOfRights>, 'LsaEnumerateAccountRights', \ + LsaEnumerateAccounts, <NONE>, 'LsaEnumerateAccounts', \ + LsaEnumerateAccountsWithUserRight, <.PolicyHandle, .UserRights, .EnumerationBuffer, .CountReturned>, 'LsaEnumerateAccountsWithUserRight', \ + LsaEnumeratePrivileges, <NONE>, 'LsaEnumeratePrivileges', \ + LsaEnumeratePrivilegesOfAccount, <NONE>, 'LsaEnumeratePrivilegesOfAccount', \ + LsaEnumerateTrustedDomains, <.PolicyHandle, .EnumerationContext, .buffer, .PreferedMaximumLength, .CountReturned>, 'LsaEnumerateTrustedDomains', \ + LsaEnumerateTrustedDomainsEx, <.PolicyHandle, .EnumerationContext, .buffer, .PreferedMaximumLength, .CountReturned>, 'LsaEnumerateTrustedDomainsEx', \ + LsaFreeMemory, <.buffer>, 'LsaFreeMemory', \ + LsaGetQuotasForAccount, <NONE>, 'LsaGetQuotasForAccount', \ + LsaGetRemoteUserName, <NONE>, 'LsaGetRemoteUserName', \ + LsaGetSystemAccessAccount, <NONE>, 'LsaGetSystemAccessAccount', \ + LsaGetUserName, <NONE>, 'LsaGetUserName', \ + LsaICLookupNames, <NONE>, 'LsaICLookupNames', \ + LsaICLookupNamesWithCreds, <NONE>, 'LsaICLookupNamesWithCreds', \ + LsaICLookupSids, <NONE>, 'LsaICLookupSids', \ + LsaICLookupSidsWithCreds, <NONE>, 'LsaICLookupSidsWithCreds', \ + LsaLookupNames, <.PolicyHandle, .count, .Names, .ReferencedDomains, .Sids>, 'LsaLookupNames', \ + LsaLookupNames2, <NONE>, 'LsaLookupNames2', \ + LsaLookupPrivilegeDisplayName, <NONE>, 'LsaLookupPrivilegeDisplayName', \ + LsaLookupPrivilegeName, <NONE>, 'LsaLookupPrivilegeName', \ + LsaLookupPrivilegeValue, <NONE>, 'LsaLookupPrivilegeValue', \ + LsaLookupSids, <.PolicyHandle, .count, .Sids, .ReferencedDomains, .Names>, 'LsaLookupSids', \ + LsaNtStatusToWinError, <.Status>, 'LsaNtStatusToWinError', \ + LsaOpenAccount, <NONE>, 'LsaOpenAccount', \ + LsaOpenPolicy, <.SystemName, .ObjectAttributes, .DesiredAccess, .PolicyHandle>, 'LsaOpenPolicy', \ + LsaOpenPolicySce, <NONE>, 'LsaOpenPolicySce', \ + LsaOpenSecret, <NONE>, 'LsaOpenSecret', \ + LsaOpenTrustedDomain, <NONE>, 'LsaOpenTrustedDomain', \ + LsaOpenTrustedDomainByName, <.PolicyHandle, .TrustedDomainName, .DesiredAccess, .TrustedDomainHandle>, 'LsaOpenTrustedDomainByName', \ + LsaQueryDomainInformationPolicy, <.PolicyHandle, .InformationClass, .buffer>, 'LsaQueryDomainInformationPolicy', \ + LsaQueryForestTrustInformation, <NONE>, 'LsaQueryForestTrustInformation', \ + LsaQueryInfoTrustedDomain, <NONE>, 'LsaQueryInfoTrustedDomain', \ + LsaQueryInformationPolicy, <.PolicyHandle, .InformationClass, .buffer>, 'LsaQueryInformationPolicy', \ + LsaQuerySecret, <NONE>, 'LsaQuerySecret', \ + LsaQuerySecurityObject, <NONE>, 'LsaQuerySecurityObject', \ + LsaQueryTrustedDomainInfo, <.PolicyHandle, .TrustedDomainSid, .InformationClass, .buffer>, 'LsaQueryTrustedDomainInfo', \ + LsaQueryTrustedDomainInfoByName, <.PolicyHandle, .TrustedDomainName, .InformationClass, .buffer>, 'LsaQueryTrustedDomainInfoByName', \ + LsaRemoveAccountRights, <.PolicyHandle, .AccountSid, .AllRights, .UserRights, .CountOfRights>, 'LsaRemoveAccountRights', \ + LsaRemovePrivilegesFromAccount, <NONE>, 'LsaRemovePrivilegesFromAccount', \ + LsaRetrievePrivateData, <.PolicyHandle, .KeyName, .PrivateData>, 'LsaRetrievePrivateData', \ + LsaSetDomainInformationPolicy, <.PolicyHandle, .InformationClass, .buffer>, 'LsaSetDomainInformationPolicy', \ + LsaSetForestTrustInformation, <NONE>, 'LsaSetForestTrustInformation', \ + LsaSetInformationPolicy, <.PolicyHandle, .InformationClass, .buffer>, 'LsaSetInformationPolicy', \ + LsaSetInformationTrustedDomain, <NONE>, 'LsaSetInformationTrustedDomain', \ + LsaSetQuotasForAccount, <NONE>, 'LsaSetQuotasForAccount', \ + LsaSetSecret, <NONE>, 'LsaSetSecret', \ + LsaSetSecurityObject, <NONE>, 'LsaSetSecurityObject', \ + LsaSetSystemAccessAccount, <NONE>, 'LsaSetSystemAccessAccount', \ + LsaSetTrustedDomainInfoByName, <.PolicyHandle, .TrustedDomainName, .InformationClass, .buffer>, 'LsaSetTrustedDomainInfoByName', \ + LsaSetTrustedDomainInformation, <.PolicyHandle, .TrustedDomainSid, .InformationClass, .buffer>, 'LsaSetTrustedDomainInformation', \ + LsaStorePrivateData, <.PolicyHandle, .KeyName, .PrivateData>, 'LsaStorePrivateData', \ + MD4Final, <NONE>, 'MD4Final', \ + MD4Init, <NONE>, 'MD4Init', \ + MD4Update, <NONE>, 'MD4Update', \ + MD5Final, <NONE>, 'MD5Final', \ + MD5Init, <NONE>, 'MD5Init', \ + MD5Update, <NONE>, 'MD5Update', \ + MSChapSrvChangePassword, <NONE>, 'MSChapSrvChangePassword', \ + MSChapSrvChangePassword2, <NONE>, 'MSChapSrvChangePassword2', \ + MakeAbsoluteSD, <.pSelfRelativeSecurityDescriptor, .pAbsoluteSecurityDescriptor, .lpdwAbsoluteSecurityDescriptorSize, .pDacl, .lpdwDaclSize, \ + .pSacl, .lpdwSaclSize, .pOwner, .lpdwOwnerSize, .pPrimaryGroup, .lpdwPrimaryGroupSize>, 'MakeAbsoluteSD', \ + MakeAbsoluteSD2, <.pSelfRelativeSecurityDescriptor, .lpdwBufferSize>, 'MakeAbsoluteSD2', \ + MakeSelfRelativeSD, <.pAbsoluteSecurityDescriptor, .pSelfRelativeSecurityDescriptor, .lpdwBufferLength>, 'MakeSelfRelativeSD', \ + MapGenericMask, <.AccessMask, .GenericMapping>, 'MapGenericMask', \ + NotifyBootConfigStatus, <.BootAcceptable>, 'NotifyBootConfigStatus', \ + NotifyChangeEventLog, <.hEventLog, .hEvent>, 'NotifyChangeEventLog', \ + ObjectCloseAuditAlarmA, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectCloseAuditAlarmA', \ + ObjectCloseAuditAlarmW, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectCloseAuditAlarmW', \ + ObjectDeleteAuditAlarmA, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectDeleteAuditAlarmA', \ + ObjectDeleteAuditAlarmW, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectDeleteAuditAlarmW', \ + ObjectOpenAuditAlarmA, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .pSecurityDescriptor, .ClientToken, .DesiredAccess, \ + .GrantedAccess, .Privileges, .ObjectCreation, .AccessGranted, .GenerateOnClose>, 'ObjectOpenAuditAlarmA', \ + ObjectOpenAuditAlarmW, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .pSecurityDescriptor, .ClientToken, .DesiredAccess, \ + .GrantedAccess, .Privileges, .ObjectCreation, .AccessGranted, .GenerateOnClose>, 'ObjectOpenAuditAlarmW', \ + ObjectPrivilegeAuditAlarmA, <.SubsystemName, .HandleId, .ClientToken, .DesiredAccess, .Privileges, .AccessGranted>, 'ObjectPrivilegeAuditAlarmA', \ + ObjectPrivilegeAuditAlarmW, <.SubsystemName, .HandleId, .ClientToken, .DesiredAccess, .Privileges, .AccessGranted>, 'ObjectPrivilegeAuditAlarmW', \ + OpenBackupEventLogA, <.lpUNCServerName, .lpFileName>, 'OpenBackupEventLogA', \ + OpenBackupEventLogW, <.lpUNCServerName, .lpFileName>, 'OpenBackupEventLogW', \ + OpenEncryptedFileRawA, <.lpFileName, .ulFlags, .pvContext>, 'OpenEncryptedFileRawA', \ + OpenEncryptedFileRawW, <.lpFileName, .ulFlags, .pvContext>, 'OpenEncryptedFileRawW', \ + OpenEventLogA, <.lpUNCServerName, .lpSourceName>, 'OpenEventLogA', \ + OpenEventLogW, <.lpUNCServerName, .lpSourceName>, 'OpenEventLogW', \ + OpenProcessToken, <.ProcessHandle, .DesiredAccess, .TokenHandle>, 'OpenProcessToken', \ + OpenSCManagerA, <.lpMachineName, .lpDatabaseName, .dwDesiredAccess>, 'OpenSCManagerA', \ + OpenSCManagerW, <.lpMachineName, .lpDatabaseName, .dwDesiredAccess>, 'OpenSCManagerW', \ + OpenServiceA, <.hSCManager, .lpServiceName, .dwDesiredAccess>, 'OpenServiceA', \ + OpenServiceW, <.hSCManager, .lpServiceName, .dwDesiredAccess>, 'OpenServiceW', \ + OpenThreadToken, <.ThreadHandle, .DesiredAccess, .OpenAsSelf, .TokenHandle>, 'OpenThreadToken', \ + OpenTraceA, <NONE>, 'OpenTraceA', \ + OpenTraceW, <NONE>, 'OpenTraceW', \ + PrivilegeCheck, <.ClientToken, .RequiredPrivileges, .pfResult>, 'PrivilegeCheck', \ + PrivilegedServiceAuditAlarmA, <.SubsystemName, .ServiceName, .ClientToken, .Privileges, .AccessGranted>, 'PrivilegedServiceAuditAlarmA', \ + PrivilegedServiceAuditAlarmW, <.SubsystemName, .ServiceName, .ClientToken, .Privileges, .AccessGranted>, 'PrivilegedServiceAuditAlarmW', \ + ProcessIdleTasks, <NONE>, 'ProcessIdleTasks', \ + ProcessTrace, <NONE>, 'ProcessTrace', \ + QueryAllTracesA, <NONE>, 'QueryAllTracesA', \ + QueryAllTracesW, <NONE>, 'QueryAllTracesW', \ + QueryRecoveryAgentsOnEncryptedFile, <.lpFileName, .pRecoveryAgents>, 'QueryRecoveryAgentsOnEncryptedFile', \ + QueryServiceConfig2A, <.hService, .dwInfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfig2A', \ + QueryServiceConfig2W, <.hService, .dwInfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfig2W', \ + QueryServiceConfigA, <.hService, .lpServiceConfig, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfigA', \ + QueryServiceConfigW, <.hService, .lpServiceConfig, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfigW', \ + QueryServiceLockStatusA, <.hSCManager, .lpLockStatus, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceLockStatusA', \ + QueryServiceLockStatusW, <.hSCManager, .lpLockStatus, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceLockStatusW', \ + QueryServiceObjectSecurity, <.hService, .dwSecurityInformation, .lpSecurityDescriptor, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceObjectSecurity', \ + QueryServiceStatus, <.hService, .lpServiceStatus>, 'QueryServiceStatus', \ + QueryServiceStatusEx, <.hService, .InfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceStatusEx', \ + QueryTraceA, <NONE>, 'QueryTraceA', \ + QueryTraceW, <NONE>, 'QueryTraceW', \ + QueryUsersOnEncryptedFile, <.lpFileName, .pUsers>, 'QueryUsersOnEncryptedFile', \ + QueryWindows31FilesMigration, <NONE>, 'QueryWindows31FilesMigration', \ + ReadEncryptedFileRaw, <.pfExportCallback, .pvCallbackContext, .pvContext>, 'ReadEncryptedFileRaw', \ + ReadEventLogA, <.hEventLog, .dwReadFlags, .dwRecordOffset, .lpBuffer, .nNumberOfBytesToRead, .pnBytesRead, .pnMinNumberOfBytesNeeded, \ + >, 'ReadEventLogA', \ + ReadEventLogW, <.hEventLog, .dwReadFlags, .dwRecordOffset, .lpBuffer, .nNumberOfBytesToRead, .pnBytesRead, .pnMinNumberOfBytesNeeded, \ + >, 'ReadEventLogW', \ + RegCloseKey, <.hKey>, 'RegCloseKey', \ + RegConnectRegistryA, <.lpMachineName, .hKey, .phkResult>, 'RegConnectRegistryA', \ + RegConnectRegistryW, <.lpMachineName, .hKey, .phkResult>, 'RegConnectRegistryW', \ + RegCreateKeyA, <.hKey, .lpSubKey, .phkResult>, 'RegCreateKeyA', \ + RegCreateKeyExA, <.hKey, .lpSubKey, .Reserved, .lpClass, .dwOptions, .samDesired, .lpSecurityAttributes, .phkResult, .lpdwDisposition, \ + >, 'RegCreateKeyExA', \ + RegCreateKeyExW, <.hKey, .lpSubKey, .Reserved, .lpClass, .dwOptions, .samDesired, .lpSecurityAttributes, .phkResult, .lpdwDisposition, \ + >, 'RegCreateKeyExW', \ + RegCreateKeyW, <.hKey, .lpSubKey, .phkResult>, 'RegCreateKeyW', \ + RegDeleteKeyA, <.hKey, .lpSubKey>, 'RegDeleteKeyA', \ + RegDeleteKeyW, <.hKey, .lpSubKey>, 'RegDeleteKeyW', \ + RegDeleteValueA, <.hKey, .lpValueName>, 'RegDeleteValueA', \ + RegDeleteValueW, <.hKey, .lpValueName>, 'RegDeleteValueW', \ + RegDisablePredefinedCache, <VOID>, 'RegDisablePredefinedCache', \ + RegDisablePredefinedCacheEx, <NONE>, 'RegDisablePredefinedCacheEx', \ + RegEnumKeyA, <.hKey, .dwIndex, .lpName, .cbName>, 'RegEnumKeyA', \ + RegEnumKeyExA, <.hKey, .dwIndex, .lpName, .lpcbName, .lpReserved, .lpClass, .lpcbClass, .lpftLastWriteTime>, 'RegEnumKeyExA', \ + RegEnumKeyExW, <.hKey, .dwIndex, .lpName, .lpcbName, .lpReserved, .lpClass, .lpcbClass, .lpftLastWriteTime>, 'RegEnumKeyExW', \ + RegEnumKeyW, <.hKey, .dwIndex, .lpName, .cbName>, 'RegEnumKeyW', \ + RegEnumValueA, <.hKey, .dwIndex, .lpValueName, .lpcbValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegEnumValueA', \ + RegEnumValueW, <.hKey, .dwIndex, .lpValueName, .lpcbValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegEnumValueW', \ + RegFlushKey, <.hKey>, 'RegFlushKey', \ + RegGetKeySecurity, <.hKey, .SecurityInformation, .pSecurityDescriptor, .lpcbSecurityDescriptor>, 'RegGetKeySecurity', \ + RegLoadKeyA, <.hKey, .lpSubKey, .lpFile>, 'RegLoadKeyA', \ + RegLoadKeyW, <.hKey, .lpSubKey, .lpFile>, 'RegLoadKeyW', \ + RegNotifyChangeKeyValue, <.hKey, .bWatchSubtree, .dwNotifyFilter, .hEvent, .fAsynchronus>, 'RegNotifyChangeKeyValue', \ + RegOpenCurrentUser, <.samDesired, .phkResult>, 'RegOpenCurrentUser', \ + RegOpenKeyA, <.hKey, .lpSubKey, .phkResult>, 'RegOpenKeyA', \ + RegOpenKeyExA, <.hKey, .lpSubKey, .ulOptions, .samDesired, .phkResult>, 'RegOpenKeyExA', \ + RegOpenKeyExW, <.hKey, .lpSubKey, .ulOptions, .samDesired, .phkResult>, 'RegOpenKeyExW', \ + RegOpenKeyW, <.hKey, .lpSubKey, .phkResult>, 'RegOpenKeyW', \ + RegOpenUserClassesRoot, <.hToken, .dwOptions, .samDesired, .phkResult>, 'RegOpenUserClassesRoot', \ + RegOverridePredefKey, <.hKey, .hNewHKey>, 'RegOverridePredefKey', \ + RegQueryInfoKeyA, <.hKey, .lpClass, .lpcbClass, .lpReserved, .lpcSubKeys, .lpcbMaxSubKeyLen, .lpcbMaxClassLen, .lpcValues, .lpcbMaxValueNameLen, \ + .lpcbMaxValueLen, .lpcbSecurityDescriptor, .lpftLastWriteTime>, 'RegQueryInfoKeyA', \ + RegQueryInfoKeyW, <.hKey, .lpClass, .lpcbClass, .lpReserved, .lpcSubKeys, .lpcbMaxSubKeyLen, .lpcbMaxClassLen, .lpcValues, .lpcbMaxValueNameLen, \ + .lpcbMaxValueLen, .lpcbSecurityDescriptor, .lpftLastWriteTime>, 'RegQueryInfoKeyW', \ + RegQueryMultipleValuesA, <.hKey, .val_list, .num_vals, .lpValueBuf, .ldwTotsize>, 'RegQueryMultipleValuesA', \ + RegQueryMultipleValuesW, <.hKey, .val_list, .num_vals, .lpValueBuf, .ldwTotsize>, 'RegQueryMultipleValuesW', \ + RegQueryValueA, <.hKey, .lpSubKey, .lpValue, .lpcbValue>, 'RegQueryValueA', \ + RegQueryValueExA, <.hKey, .lpValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegQueryValueExA', \ + RegQueryValueExW, <.hKey, .lpValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegQueryValueExW', \ + RegQueryValueW, <.hKey, .lpSubKey, .lpValue, .lpcbValue>, 'RegQueryValueW', \ + RegReplaceKeyA, <.hKey, .lpSubKey, .lpNewFile, .lpOldFile>, 'RegReplaceKeyA', \ + RegReplaceKeyW, <.hKey, .lpSubKey, .lpNewFile, .lpOldFile>, 'RegReplaceKeyW', \ + RegRestoreKeyA, <.hKey, .lpFile, .dwFlags>, 'RegRestoreKeyA', \ + RegRestoreKeyW, <.hKey, .lpFile, .dwFlags>, 'RegRestoreKeyW', \ + RegSaveKeyA, <.hKey, .lpFile, .lpSecurityAttributes>, 'RegSaveKeyA', \ + RegSaveKeyExA, <NONE>, 'RegSaveKeyExA', \ + RegSaveKeyExW, <NONE>, 'RegSaveKeyExW', \ + RegSaveKeyW, <.hKey, .lpFile, .lpSecurityAttributes>, 'RegSaveKeyW', \ + RegSetKeySecurity, <.hKey, .SecurityInformation, .pSecurityDescriptor>, 'RegSetKeySecurity', \ + RegSetValueA, <.hKey, .lpSubKey, .dwType, .lpData, .cbData>, 'RegSetValueA', \ + RegSetValueExA, <.hKey, .lpValueName, .Reserved, .dwType, .lpData, .cbData>, 'RegSetValueExA', \ + RegSetValueExW, <.hKey, .lpValueName, .Reserved, .dwType, .lpData, .cbData>, 'RegSetValueExW', \ + RegSetValueW, <.hKey, .lpSubKey, .dwType, .lpData, .cbData>, 'RegSetValueW', \ + RegUnLoadKeyA, <.hKey, .lpSubKey>, 'RegUnLoadKeyA', \ + RegUnLoadKeyW, <.hKey, .lpSubKey>, 'RegUnLoadKeyW', \ + RegisterEventSourceA, <.lpUNCServerName, .lpSourceName>, 'RegisterEventSourceA', \ + RegisterEventSourceW, <.lpUNCServerName, .lpSourceName>, 'RegisterEventSourceW', \ + RegisterIdleTask, <NONE>, 'RegisterIdleTask', \ + RegisterServiceCtrlHandlerA, <.lpServiceName, .lpHandlerProc>, 'RegisterServiceCtrlHandlerA', \ + RegisterServiceCtrlHandlerExA, <.lpServiceName, .lpHandlerProc, .lpContext>, 'RegisterServiceCtrlHandlerExA', \ + RegisterServiceCtrlHandlerExW, <.lpServiceName, .lpHandlerProc, .lpContext>, 'RegisterServiceCtrlHandlerExW', \ + RegisterServiceCtrlHandlerW, <.lpServiceName, .lpHandlerProc>, 'RegisterServiceCtrlHandlerW', \ + RegisterTraceGuidsA, <NONE>, 'RegisterTraceGuidsA', \ + RegisterTraceGuidsW, <NONE>, 'RegisterTraceGuidsW', \ + RemoveTraceCallback, <NONE>, 'RemoveTraceCallback', \ + RemoveUsersFromEncryptedFile, <.lpFileName, .pHashes>, 'RemoveUsersFromEncryptedFile', \ + ReportEventA, <.hEventLog, .wType, .wCategory, .dwEventID, .lpUserSid, .wNumStrings, .dwDataSize, .lpStrings, .lpRawData>, 'ReportEventA', \ + ReportEventW, <.hEventLog, .wType, .wCategory, .dwEventID, .lpUserSid, .wNumStrings, .dwDataSize, .lpStrings, .lpRawData>, 'ReportEventW', \ + RevertToSelf, <VOID>, 'RevertToSelf', \ + SaferCloseLevel, <NONE>, 'SaferCloseLevel', \ + SaferComputeTokenFromLevel, <NONE>, 'SaferComputeTokenFromLevel', \ + SaferCreateLevel, <NONE>, 'SaferCreateLevel', \ + SaferGetLevelInformation, <NONE>, 'SaferGetLevelInformation', \ + SaferGetPolicyInformation, <NONE>, 'SaferGetPolicyInformation', \ + SaferIdentifyLevel, <NONE>, 'SaferIdentifyLevel', \ + SaferRecordEventLogEntry, <NONE>, 'SaferRecordEventLogEntry', \ + SaferSetLevelInformation, <NONE>, 'SaferSetLevelInformation', \ + SaferSetPolicyInformation, <NONE>, 'SaferSetPolicyInformation', \ + SaferiChangeRegistryScope, <NONE>, 'SaferiChangeRegistryScope', \ + SaferiCompareTokenLevels, <NONE>, 'SaferiCompareTokenLevels', \ + SaferiIsExecutableFileType, <NONE>, 'SaferiIsExecutableFileType', \ + SaferiPopulateDefaultsInRegistry, <NONE>, 'SaferiPopulateDefaultsInRegistry', \ + SaferiRecordEventLogEntry, <NONE>, 'SaferiRecordEventLogEntry', \ + SaferiReplaceProcessThreadTokens, <NONE>, 'SaferiReplaceProcessThreadTokens', \ + SaferiSearchMatchingHashRules, <NONE>, 'SaferiSearchMatchingHashRules', \ + SetAclInformation, <.pAcl, .pAclInformation, .nAclInformationLength, .dwAclInformationClass>, 'SetAclInformation', \ + SetEntriesInAccessListA, <NONE>, 'SetEntriesInAccessListA', \ + SetEntriesInAccessListW, <NONE>, 'SetEntriesInAccessListW', \ + SetEntriesInAclA, <.cCountOfExplicitEntries, .pListOfExplicitEntries, .OldAcl, .NewAcl>, 'SetEntriesInAclA', \ + SetEntriesInAclW, <.cCountOfExplicitEntries, .pListOfExplicitEntries, .OldAcl, .NewAcl>, 'SetEntriesInAclW', \ + SetEntriesInAuditListA, <NONE>, 'SetEntriesInAuditListA', \ + SetEntriesInAuditListW, <NONE>, 'SetEntriesInAuditListW', \ + SetFileSecurityA, <.lpFileName, .SecurityInformation, .pSecurityDescriptor>, 'SetFileSecurityA', \ + SetFileSecurityW, <.lpFileName, .SecurityInformation, .pSecurityDescriptor>, 'SetFileSecurityW', \ + SetInformationCodeAuthzLevelW, <NONE>, 'SetInformationCodeAuthzLevelW', \ + SetInformationCodeAuthzPolicyW, <NONE>, 'SetInformationCodeAuthzPolicyW', \ + SetKernelObjectSecurity, <.Handle, .SecurityInformation, .SecurityDescriptor>, 'SetKernelObjectSecurity', \ + SetNamedSecurityInfoA, <.pObjectName, .ObjectType, .SecurityInfo, .psidOwner, .psidGroup, .pDacl, .pSacl>, 'SetNamedSecurityInfoA', \ + SetNamedSecurityInfoExA, <NONE>, 'SetNamedSecurityInfoExA', \ + SetNamedSecurityInfoExW, <NONE>, 'SetNamedSecurityInfoExW', \ + SetNamedSecurityInfoW, <.pObjectName, .ObjectType, .SecurityInfo, .psidOwner, .psidGroup, .pDacl, .pSacl>, 'SetNamedSecurityInfoW', \ + SetPrivateObjectSecurity, <.SecurityInformation, .ModificationDescriptor, .ObjectsSecurityDescriptor, .GenericMapping, .Token, \ + >, 'SetPrivateObjectSecurity', \ + SetPrivateObjectSecurityEx, <.SecurityInformation, .ModificationDescriptor, .ObjectsSecurityDescriptor, .AutoInheritFlags, .GenericMapping, \ + .Token>, 'SetPrivateObjectSecurityEx', \ + SetSecurityDescriptorControl, <.pSecurityDescriptor, .ControlBitsOfInterest, .ControlBitsToSet>, 'SetSecurityDescriptorControl', \ + SetSecurityDescriptorDacl, <.pSecurityDescriptor, .bDaclPresent, .pDacl, .bDaclDefaulted>, 'SetSecurityDescriptorDacl', \ + SetSecurityDescriptorGroup, <.pSecurityDescriptor, .pGroup, .bGroupDefaulted>, 'SetSecurityDescriptorGroup', \ + SetSecurityDescriptorOwner, <.pSecurityDescriptor, .pOwner, .bOwnerDefaulted>, 'SetSecurityDescriptorOwner', \ + SetSecurityDescriptorRMControl, <.SecurityDescriptor, .RMControl>, 'SetSecurityDescriptorRMControl', \ + SetSecurityDescriptorSacl, <.pSecurityDescriptor, .bSaclPresent, .pSacl, .bSaclDefaulted>, 'SetSecurityDescriptorSacl', \ + SetSecurityInfo, <.handle, .ObjectType, .SecurityInfo, .psidOwner, .psidGroup, .pDacl, .pSacl>, 'SetSecurityInfo', \ + SetSecurityInfoExA, <NONE>, 'SetSecurityInfoExA', \ + SetSecurityInfoExW, <NONE>, 'SetSecurityInfoExW', \ + SetServiceBits, <.hServiceStatus, .dwServiceBits, .bSetBitsOn, .bUpdateImmediately>, 'SetServiceBits', \ + SetServiceObjectSecurity, <.hService, .dwSecurityInformation, .lpSecurityDescriptor>, 'SetServiceObjectSecurity', \ + SetServiceStatus, <.hServiceStatus, .lpServiceStatus>, 'SetServiceStatus', \ + SetThreadToken, <.Thread, .Token>, 'SetThreadToken', \ + SetTokenInformation, <.TokenHandle, .TokenInformationClass, .TokenInformation, .TokenInformationLength>, 'SetTokenInformation', \ + SetTraceCallback, <NONE>, 'SetTraceCallback', \ + SetUserFileEncryptionKey, <.pEncryptionCertificate>, 'SetUserFileEncryptionKey', \ + StartServiceA, <.hService, .dwNumServiceArgs, .lpServiceArgVectors>, 'StartServiceA', \ + StartServiceCtrlDispatcherA, <.lpServiceStartTable>, 'StartServiceCtrlDispatcherA', \ + StartServiceCtrlDispatcherW, <.lpServiceStartTable>, 'StartServiceCtrlDispatcherW', \ + StartServiceW, <.hService, .dwNumServiceArgs, .lpServiceArgVectors>, 'StartServiceW', \ + StartTraceA, <NONE>, 'StartTraceA', \ + StartTraceW, <NONE>, 'StartTraceW', \ + StopTraceA, <NONE>, 'StopTraceA', \ + StopTraceW, <NONE>, 'StopTraceW', \ + SynchronizeWindows31FilesAndWindowsNTRegistry, <NONE>, 'SynchronizeWindows31FilesAndWindowsNTRegistry', \ + SystemFunction001, <NONE>, 'SystemFunction001', \ + SystemFunction002, <NONE>, 'SystemFunction002', \ + SystemFunction003, <NONE>, 'SystemFunction003', \ + SystemFunction004, <NONE>, 'SystemFunction004', \ + SystemFunction005, <NONE>, 'SystemFunction005', \ + SystemFunction006, <NONE>, 'SystemFunction006', \ + SystemFunction007, <NONE>, 'SystemFunction007', \ + SystemFunction008, <NONE>, 'SystemFunction008', \ + SystemFunction009, <NONE>, 'SystemFunction009', \ + SystemFunction010, <NONE>, 'SystemFunction010', \ + SystemFunction011, <NONE>, 'SystemFunction011', \ + SystemFunction012, <NONE>, 'SystemFunction012', \ + SystemFunction013, <NONE>, 'SystemFunction013', \ + SystemFunction014, <NONE>, 'SystemFunction014', \ + SystemFunction015, <NONE>, 'SystemFunction015', \ + SystemFunction016, <NONE>, 'SystemFunction016', \ + SystemFunction017, <NONE>, 'SystemFunction017', \ + SystemFunction018, <NONE>, 'SystemFunction018', \ + SystemFunction019, <NONE>, 'SystemFunction019', \ + SystemFunction020, <NONE>, 'SystemFunction020', \ + SystemFunction021, <NONE>, 'SystemFunction021', \ + SystemFunction022, <NONE>, 'SystemFunction022', \ + SystemFunction023, <NONE>, 'SystemFunction023', \ + SystemFunction024, <NONE>, 'SystemFunction024', \ + SystemFunction025, <NONE>, 'SystemFunction025', \ + SystemFunction026, <NONE>, 'SystemFunction026', \ + SystemFunction027, <NONE>, 'SystemFunction027', \ + SystemFunction028, <NONE>, 'SystemFunction028', \ + SystemFunction029, <NONE>, 'SystemFunction029', \ + SystemFunction030, <NONE>, 'SystemFunction030', \ + SystemFunction031, <NONE>, 'SystemFunction031', \ + SystemFunction032, <NONE>, 'SystemFunction032', \ + SystemFunction033, <NONE>, 'SystemFunction033', \ + SystemFunction034, <NONE>, 'SystemFunction034', \ + SystemFunction035, <NONE>, 'SystemFunction035', \ + SystemFunction036, <NONE>, 'SystemFunction036', \ + SystemFunction040, <NONE>, 'SystemFunction040', \ + SystemFunction041, <NONE>, 'SystemFunction041', \ + TraceEvent, <NONE>, 'TraceEvent', \ + TraceEventInstance, <NONE>, 'TraceEventInstance', \ + TraceMessage, <NONE>, 'TraceMessage', \ + TraceMessageVa, <NONE>, 'TraceMessageVa', \ + TreeResetNamedSecurityInfoA, <.pObjectName, .ObjectType, .SecurityInfo, .pOwner, .pGroup, .pDacl, .pSacl, .KeepExplicit, .fnProgress, \ + .ProgressInvokeSetting, .Args>, 'TreeResetNamedSecurityInfoA', \ + TreeResetNamedSecurityInfoW, <.pObjectName, .ObjectType, .SecurityInfo, .pOwner, .pGroup, .pDacl, .pSacl, .KeepExplicit, .fnProgress, \ + .ProgressInvokeSetting, .Args>, 'TreeResetNamedSecurityInfoW', \ + TrusteeAccessToObjectA, <NONE>, 'TrusteeAccessToObjectA', \ + TrusteeAccessToObjectW, <NONE>, 'TrusteeAccessToObjectW', \ + UninstallApplication, <NONE>, 'UninstallApplication', \ + UnlockServiceDatabase, <.ScLock>, 'UnlockServiceDatabase', \ + UnregisterIdleTask, <NONE>, 'UnregisterIdleTask', \ + UnregisterTraceGuids, <NONE>, 'UnregisterTraceGuids', \ + UpdateTraceA, <NONE>, 'UpdateTraceA', \ + UpdateTraceW, <NONE>, 'UpdateTraceW', \ + WdmWmiServiceMain, <NONE>, 'WdmWmiServiceMain', \ + WmiCloseBlock, <NONE>, 'WmiCloseBlock', \ + WmiCloseTraceWithCursor, <NONE>, 'WmiCloseTraceWithCursor', \ + WmiConvertTimestamp, <NONE>, 'WmiConvertTimestamp', \ + WmiDevInstToInstanceNameA, <NONE>, 'WmiDevInstToInstanceNameA', \ + WmiDevInstToInstanceNameW, <NONE>, 'WmiDevInstToInstanceNameW', \ + WmiEnumerateGuids, <NONE>, 'WmiEnumerateGuids', \ + WmiExecuteMethodA, <NONE>, 'WmiExecuteMethodA', \ + WmiExecuteMethodW, <NONE>, 'WmiExecuteMethodW', \ + WmiFileHandleToInstanceNameA, <NONE>, 'WmiFileHandleToInstanceNameA', \ + WmiFileHandleToInstanceNameW, <NONE>, 'WmiFileHandleToInstanceNameW', \ + WmiFreeBuffer, <NONE>, 'WmiFreeBuffer', \ + WmiGetFirstTraceOffset, <NONE>, 'WmiGetFirstTraceOffset', \ + WmiGetNextEvent, <NONE>, 'WmiGetNextEvent', \ + WmiGetTraceHeader, <NONE>, 'WmiGetTraceHeader', \ + WmiMofEnumerateResourcesA, <NONE>, 'WmiMofEnumerateResourcesA', \ + WmiMofEnumerateResourcesW, <NONE>, 'WmiMofEnumerateResourcesW', \ + WmiNotificationRegistrationA, <NONE>, 'WmiNotificationRegistrationA', \ + WmiNotificationRegistrationW, <NONE>, 'WmiNotificationRegistrationW', \ + WmiOpenBlock, <NONE>, 'WmiOpenBlock', \ + WmiOpenTraceWithCursor, <NONE>, 'WmiOpenTraceWithCursor', \ + WmiParseTraceEvent, <NONE>, 'WmiParseTraceEvent', \ + WmiQueryAllDataA, <NONE>, 'WmiQueryAllDataA', \ + WmiQueryAllDataMultipleA, <NONE>, 'WmiQueryAllDataMultipleA', \ + WmiQueryAllDataMultipleW, <NONE>, 'WmiQueryAllDataMultipleW', \ + WmiQueryAllDataW, <NONE>, 'WmiQueryAllDataW', \ + WmiQueryGuidInformation, <NONE>, 'WmiQueryGuidInformation', \ + WmiQuerySingleInstanceA, <NONE>, 'WmiQuerySingleInstanceA', \ + WmiQuerySingleInstanceMultipleA, <NONE>, 'WmiQuerySingleInstanceMultipleA', \ + WmiQuerySingleInstanceMultipleW, <NONE>, 'WmiQuerySingleInstanceMultipleW', \ + WmiQuerySingleInstanceW, <NONE>, 'WmiQuerySingleInstanceW', \ + WmiReceiveNotificationsA, <NONE>, 'WmiReceiveNotificationsA', \ + WmiReceiveNotificationsW, <NONE>, 'WmiReceiveNotificationsW', \ + WmiSetSingleInstanceA, <NONE>, 'WmiSetSingleInstanceA', \ + WmiSetSingleInstanceW, <NONE>, 'WmiSetSingleInstanceW', \ + WmiSetSingleItemA, <NONE>, 'WmiSetSingleItemA', \ + WmiSetSingleItemW, <NONE>, 'WmiSetSingleItemW', \ + Wow64Win32ApiEntry, <NONE>, 'Wow64Win32ApiEntry', \ + WriteEncryptedFileRaw, <.pfImportCallback, .pvCallbackContext, .pvContext>, 'WriteEncryptedFileRaw' DELETED freshlib/imports/Win32/allimports.asm Index: freshlib/imports/Win32/allimports.asm ================================================================== --- freshlib/imports/Win32/allimports.asm +++ /dev/null @@ -1,23 +0,0 @@ - library kernel32, 'KERNEL32.DLL',\ - user32, 'USER32.DLL', \ - gdi32, 'gdi32.dll', \ - comctl32,'comctl32.dll',\ - comdlg32,'comdlg32.dll',\ - shell32, 'shell32.dll', \ - ole32, 'ole32.dll', \ - advapi32,'advapi32.dll',\ - sqlite3, 'sqlite3.dll',\ - wsock32, 'wsock32.dll' - - - include 'api/kernel32.inc' - include 'api/user32.inc' - include 'api/gdi32.inc' - include 'api/ComCtl32.inc' - include 'api/ComDlg32.inc' - include 'api/Shell32.inc' - include 'api/ole32.inc' - include 'api/advapi32.inc' - include 'api/sqlite3.inc' - include 'api/wsock32.inc' - DELETED freshlib/imports/Win32/api/advapi32.inc Index: freshlib/imports/Win32/api/advapi32.inc ================================================================== --- freshlib/imports/Win32/api/advapi32.inc +++ /dev/null @@ -1,741 +0,0 @@ -; advapi32.dll API calls (ASCII) -import_proto advapi32, \ - A_SHAFinal, N, <NONE>, 'A_SHAFinal', \ - A_SHAInit, N, <NONE>, 'A_SHAInit', \ - A_SHAUpdate, N, <NONE>, 'A_SHAUpdate', \ - AbortSystemShutdown, A, <.lpMachineName>, 'AbortSystemShutdownA', \ - AbortSystemShutdown, W, <.lpMachineName>, 'AbortSystemShutdownW', \ - AccessCheck, N, <.pSecurityDescriptor, .ClientToken, .DesiredAccess, .GenericMapping, .PrivilegeSet, .PrivilegeSetLength, .GrantedAccess, \ - .Status>, 'AccessCheck', \ - AccessCheckAndAuditAlarm, A, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .DesiredAccess, .GenericMapping, \ - .ObjectCreation, .GrantedAccess, .AccessStatus, .pfGenerateOnClose>, 'AccessCheckAndAuditAlarmA', \ - AccessCheckAndAuditAlarm, W, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .DesiredAccess, .GenericMapping, \ - .ObjectCreation, .GrantedAccess, .AccessStatus, .pfGenerateOnClose>, 'AccessCheckAndAuditAlarmW', \ - AccessCheckByType, N, <.pSecurityDescriptor, .PrincipalSelfSid, .ClientToken, .DesiredAccess, .ObjectTypeList, .ObjectTypeListLength, \ - .GenericMapping, .PrivilegeSet, .PrivilegeSetLength, .GrantedAccess, .AccessStatus>, 'AccessCheckByType', \ - AccessCheckByTypeAndAuditAlarm, A, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ - .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ - .AccessStatus, .pfGenerateOnClose>, 'AccessCheckByTypeAndAuditAlarmA', \ - AccessCheckByTypeAndAuditAlarm, W, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ - .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ - .AccessStatus, .pfGenerateOnClose>, 'AccessCheckByTypeAndAuditAlarmW', \ - AccessCheckByTypeResultList, N, <.pSecurityDescriptor, .PrincipalSelfSid, .ClientToken, .DesiredAccess, .ObjectTypeList, .ObjectTypeListLength, \ - .GenericMapping, .PrivilegeSet, .PrivilegeSetLength, .GrantedAccessList, .AccessStatusList>, 'AccessCheckByTypeResultList', \ - AccessCheckByTypeResultListAndAuditAlarm, A, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ - .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ - .AccessStatusList, .pfG>, 'AccessCheckByTypeResultListAndAuditAlarmA', \ - AccessCheckByTypeResultListAndAuditAlarmByHandle, A, <.SubsystemName, .HandleId, .ClientToken, .ObjectTypeName, .ObjectName, .SecurityDescriptor, \ - .PrincipalSelfSid, .DesiredAccess, .AuditType, .flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, \ - .GrantedAccess, .AccessibleChildren, .paccContainer, .iChildStart, .cChildren, .rgvarChildren, .pcObtained>, 'AccessCheckByTypeResultListAndAuditAlarmByHandleA', \ - AccessCheckByTypeResultListAndAuditAlarmByHandle, W, <.SubsystemName, .HandleId, .ClientToken, .ObjectTypeName, .ObjectName, .SecurityDescriptor, \ - .PrincipalSelfSid, .DesiredAccess, .AuditType, .flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, \ - .GrantedAccess, .AccessibleChildren, .paccContainer, .iChildStart, .cChildren, .rgvarChildren, .pcObtained>, 'AccessCheckByTypeResultListAndAuditAlarmByHandleW', \ - AccessCheckByTypeResultListAndAuditAlarm, W, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .SecurityDescriptor, .PrincipalSelfSid, \ - .DesiredAccess, .AuditType, .Flags, .ObjectTypeList, .ObjectTypeListLength, .GenericMapping, .ObjectCreation, .GrantedAccess, \ - .AccessStatusList, .pfG>, 'AccessCheckByTypeResultListAndAuditAlarmW', \ - AddAccessAllowedAce, N, <.pAcl, .dwAceRevision, .AccessMask, .pSid>, 'AddAccessAllowedAce', \ - AddAccessAllowedAceEx, N, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .pSid>, 'AddAccessAllowedAceEx', \ - AddAccessAllowedObjectAce, N, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .ObjectTypeGuid, .ByRefheritedObjectTypeGuid, .pSid, \ - >, 'AddAccessAllowedObjectAce', \ - AddAccessDeniedAce, N, <.pAcl, .dwAceRevision, .AccessMask, .pSid>, 'AddAccessDeniedAce', \ - AddAccessDeniedAceEx, N, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .pSid>, 'AddAccessDeniedAceEx', \ - AddAccessDeniedObjectAce, N, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .ObjectTypeGuid, .ByRefheritedObjectTypeGuid, .pSid, \ - >, 'AddAccessDeniedObjectAce', \ - AddAce, N, <.pAcl, .dwAceRevision, .dwStartingAceIndex, .pAceList, .nAceListLength>, 'AddAce', \ - AddAuditAccessAce, N, <.pAcl, .dwAceRevision, .dwAccessMask, .pSid, .bAuditSuccess, .bAuditFailure>, 'AddAuditAccessAce', \ - AddAuditAccessAceEx, N, <.pAcl, .dwAceRevision, .AceFlags, .dwAccessMask, .pSid, .bAuditSuccess, .bAuditFailure>, 'AddAuditAccessAceEx', \ - AddAuditAccessObjectAce, N, <.pAcl, .dwAceRevision, .AceFlags, .AccessMask, .ObjectTypeGuid, .ByRefheritedObjectTypeGuid, .pSid, .bAuditSuccess, \ - .bAuditFailure>, 'AddAuditAccessObjectAce', \ - AddUsersToEncryptedFile, N, <.lpFileName, .pUsers>, 'AddUsersToEncryptedFile', \ - AdjustTokenGroups, N, <.TokenHandle, .ResetToDefault, .NewState, .BufferLength, .PreviousState, .ReturnLength>, 'AdjustTokenGroups', \ - AdjustTokenPrivileges, N, <.TokenHandle, .DisableAllPrivileges, .NewState, .BufferLength, .PreviousState, .ReturnLength>, 'AdjustTokenPrivileges', \ - AllocateAndInitializeSid, N, <.pIdentifierAuthority, .nSubAuthorityCount, .nSubAuthority0, .nSubAuthority1, .nSubAuthority2, .nSubAuthority3, \ - .nSubAuthority4, .nSubAuthority5, .nSubAuthority6, .nSubAuthority7, .lpPSid>, 'AllocateAndInitializeSid', \ - AllocateLocallyUniqueId, N, <.Luid>, 'AllocateLocallyUniqueId', \ - AreAllAccessesGranted, N, <.GrantedAccess, .DesiredAccess>, 'AreAllAccessesGranted', \ - AreAnyAccessesGranted, N, <.GrantedAccess, .DesiredAccess>, 'AreAnyAccessesGranted', \ - BackupEventLog, A, <.hEventLog, .lpBackupFileName>, 'BackupEventLogA', \ - BackupEventLog, W, <.hEventLog, .lpBackupFileName>, 'BackupEventLogW', \ - BuildExplicitAccessWithName, A, <.pExplicitAccess, .pTrusteeName, .AccessPermissions, .AccessMode, .Inheritance>, 'BuildExplicitAccessWithNameA', \ - BuildExplicitAccessWithName, W, <.pExplicitAccess, .pTrusteeName, .AccessPermissions, .AccessMode, .Inheritance>, 'BuildExplicitAccessWithNameW', \ - BuildImpersonateExplicitAccessWithName, A, <.pExplicitAccess, .pTrusteeName, .pTrustee, .AccessPermissions, .AccessMode, .Inheritance, \ - >, 'BuildImpersonateExplicitAccessWithNameA', \ - BuildImpersonateExplicitAccessWithName, W, <.pExplicitAccess, .pTrusteeName, .pTrustee, .AccessPermissions, .AccessMode, .Inheritance, \ - >, 'BuildImpersonateExplicitAccessWithNameW', \ - BuildImpersonateTrustee, A, <.pTrustee, .pImpersonateTrustee>, 'BuildImpersonateTrusteeA', \ - BuildImpersonateTrustee, W, <.pTrustee, .pImpersonateTrustee>, 'BuildImpersonateTrusteeW', \ - BuildSecurityDescriptor, A, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ - .pOldSD, .pSizeNewSD, .pNewSD>, 'BuildSecurityDescriptorA', \ - BuildSecurityDescriptor, W, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ - .pOldSD, .pSizeNewSD, .pNewSD>, 'BuildSecurityDescriptorW', \ - BuildTrusteeWithName, A, <.pTrustee, .pname>, 'BuildTrusteeWithNameA', \ - BuildTrusteeWithName, W, <.pTrustee, .pname>, 'BuildTrusteeWithNameW', \ - BuildTrusteeWithObjectsAndName, A, <.pTrustee, .pObjName, .ObjectType, .ObjectTypeName, .InheritedObjectTypeName, .name>, 'BuildTrusteeWithObjectsAndNameA', \ - BuildTrusteeWithObjectsAndName, W, <.pTrustee, .pObjName, .ObjectType, .ObjectTypeName, .InheritedObjectTypeName, .name>, 'BuildTrusteeWithObjectsAndNameW', \ - BuildTrusteeWithObjectsAndSid, A, <.pTrustee, .pObjSid, .pObjectGuid, .pInheritedObjectGuid, .pSid>, 'BuildTrusteeWithObjectsAndSidA', \ - BuildTrusteeWithObjectsAndSid, W, <.pTrustee, .pObjSid, .pObjectGuid, .pInheritedObjectGuid, .pSid>, 'BuildTrusteeWithObjectsAndSidW', \ - BuildTrusteeWithSid, A, <.pTrustee, .pSid>, 'BuildTrusteeWithSidA', \ - BuildTrusteeWithSid, W, <.pTrustee, .pSid>, 'BuildTrusteeWithSidW', \ - CancelOverlappedAccess, N, <NONE>, 'CancelOverlappedAccess', \ - ChangeServiceConfig2, A, <.hService, .dwInfoLevel, .lpInfo>, 'ChangeServiceConfig2A', \ - ChangeServiceConfig2, W, <.hService, .dwInfoLevel, .lpInfo>, 'ChangeServiceConfig2W', \ - ChangeServiceConfig, A, <.hService, .dwServiceType, .dwStartType, .dwErrorControl, .lpBinaryPathName, .lpLoadOrderGroup, .lpdwTagId, \ - .lpDependencies, .lpServiceStartName, .lpPassword, .lpDisplayName>, 'ChangeServiceConfigA', \ - ChangeServiceConfig, W, <.hService, .dwServiceType, .dwStartType, .dwErrorControl, .lpBinaryPathName, .lpLoadOrderGroup, .lpdwTagId, \ - .lpDependencies, .lpServiceStartName, .lpPassword, .lpDisplayName>, 'ChangeServiceConfigW', \ - CheckTokenMembership, N, <.TokenHandle, .SidToCheck, .IsMember>, 'CheckTokenMembership', \ - ClearEventLog, A, <.hEventLog, .lpBackupFileName>, 'ClearEventLogA', \ - ClearEventLog, W, <.hEventLog, .lpBackupFileName>, 'ClearEventLogW', \ - CloseCodeAuthzLevel, N, <NONE>, 'CloseCodeAuthzLevel', \ - CloseEncryptedFileRaw, N, <.pvContext>, 'CloseEncryptedFileRaw', \ - CloseEventLog, N, <.hEventLog>, 'CloseEventLog', \ - CloseServiceHandle, N, <.hSCObject>, 'CloseServiceHandle', \ - CloseTrace, N, <NONE>, 'CloseTrace', \ - CommandLineFromMsiDescriptor, N, <NONE>, 'CommandLineFromMsiDescriptor', \ - ComputeAccessTokenFromCodeAuthzLevel, N, <NONE>, 'ComputeAccessTokenFromCodeAuthzLevel', \ - ControlService, N, <.hService, .dwControl, .lpServiceStatus>, 'ControlService', \ - ControlTrace, A, <NONE>, 'ControlTraceA', \ - ControlTrace, W, <NONE>, 'ControlTraceW', \ - ConvertAccessToSecurityDescriptor, A, <NONE>, 'ConvertAccessToSecurityDescriptorA', \ - ConvertAccessToSecurityDescriptor, W, <NONE>, 'ConvertAccessToSecurityDescriptorW', \ - ConvertSDToStringSDRootDomain, A, <NONE>, 'ConvertSDToStringSDRootDomainA', \ - ConvertSDToStringSDRootDomain, W, <NONE>, 'ConvertSDToStringSDRootDomainW', \ - ConvertSecurityDescriptorToAccess, A, <NONE>, 'ConvertSecurityDescriptorToAccessA', \ - ConvertSecurityDescriptorToAccessNamed, A, <NONE>, 'ConvertSecurityDescriptorToAccessNamedA', \ - ConvertSecurityDescriptorToAccessNamed, W, <NONE>, 'ConvertSecurityDescriptorToAccessNamedW', \ - ConvertSecurityDescriptorToAccess, W, <NONE>, 'ConvertSecurityDescriptorToAccessW', \ - ConvertSecurityDescriptorToStringSecurityDescriptor, A, <.SecurityDescriptor, .RequestedStringSDRevision, .SecurityInformation, .StringSecurityDescriptor, \ - .StringSecurityDescriptorLen>, 'ConvertSecurityDescriptorToStringSecurityDescriptorA', \ - ConvertSecurityDescriptorToStringSecurityDescriptor, W, <.SecurityDescriptor, .RequestedStringSDRevision, .SecurityInformation, .StringSecurityDescriptor, \ - .StringSecurityDescriptorLen>, 'ConvertSecurityDescriptorToStringSecurityDescriptorW', \ - ConvertSidToStringSid, A, <.Sid, .StringSid>, 'ConvertSidToStringSidA', \ - ConvertSidToStringSid, W, <.Sid, .StringSid>, 'ConvertSidToStringSidW', \ - ConvertStringSDToSDDomain, A, <NONE>, 'ConvertStringSDToSDDomainA', \ - ConvertStringSDToSDDomain, W, <NONE>, 'ConvertStringSDToSDDomainW', \ - ConvertStringSDToSDRootDomain, A, <NONE>, 'ConvertStringSDToSDRootDomainA', \ - ConvertStringSDToSDRootDomain, W, <NONE>, 'ConvertStringSDToSDRootDomainW', \ - ConvertStringSecurityDescriptorToSecurityDescriptor, A, <.StringSecurityDescriptor, .StringSDRevision, .SecurityDescriptor, .SecurityDescriptorSize, \ - >, 'ConvertStringSecurityDescriptorToSecurityDescriptorA', \ - ConvertStringSecurityDescriptorToSecurityDescriptor, W, <.StringSecurityDescriptor, .StringSDRevision, .SecurityDescriptor, .SecurityDescriptorSize, \ - >, 'ConvertStringSecurityDescriptorToSecurityDescriptorW', \ - ConvertStringSidToSid, A, <.StringSid, .Sid>, 'ConvertStringSidToSidA', \ - ConvertStringSidToSid, W, <.StringSid, .Sid>, 'ConvertStringSidToSidW', \ - ConvertToAutoInheritPrivateObjectSecurity, N, <.ParentDescriptor, .CurrentSecurityDescriptor, .NewSecurityDescriptor, .ObjectType, \ - .IsDirectoryObject, .GenericMapping>, 'ConvertToAutoInheritPrivateObjectSecurity', \ - CopySid, N, <.nDestinationSidLength, .pDestinationSid, .pSourceSid>, 'CopySid', \ - CreateCodeAuthzLevel, N, <NONE>, 'CreateCodeAuthzLevel', \ - CreatePrivateObjectSecurity, N, <.ParentDescriptor, .CreatorDescriptor, .NewDescriptor, .IsDirectoryObject, .Token, .GenericMapping, \ - >, 'CreatePrivateObjectSecurity', \ - CreatePrivateObjectSecurityEx, N, <.ParentDescriptor, .CreatorDescriptor, .NewDescriptor, .ObjectType, .IsContainerObject, .AutoInheritFlags, \ - .Token, .GenericMapping>, 'CreatePrivateObjectSecurityEx', \ - CreatePrivateObjectSecurityWithMultipleInheritance, N, <NONE>, 'CreatePrivateObjectSecurityWithMultipleInheritance', \ - CreateProcessAsUser, A, <.hToken, .lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, \ - .dwCreationFlags, .lpEnvironment, .lpCurrentDirectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessAsUserA', \ - CreateProcessAsUserSecure, N, <NONE>, 'CreateProcessAsUserSecure', \ - CreateProcessAsUser, W, <.hToken, .lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, \ - .dwCreationFlags, .lpEnvironment, .lpCurrentDirectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessAsUserW', \ - CreateProcessWithLogon, W, <NONE>, 'CreateProcessWithLogonW', \ - CreateRestrictedToken, N, <.ExistingTokenHandle, .Flags, .DisableSidCount, .SidsToDisable, .DeletePrivilegeCount, .PrivilegesToDelete, \ - .RestrictedSidCount, .SidsToRestrict, .NewTokenHandle>, 'CreateRestrictedToken', \ - CreateService, A, <.hSCManager, .lpServiceName, .lpDisplayName, .dwDesiredAccess, .dwServiceType, .dwStartType, .dwErrorControl, .lpBinaryPathName, \ - .lpLoadOrderGroup, .lpdwTagId, .lpDependencies, .lp, .lpPassword>, 'CreateServiceA', \ - CreateService, W, <.hSCManager, .lpServiceName, .lpDisplayName, .dwDesiredAccess, .dwServiceType, .dwStartType, .dwErrorControl, .lpBinaryPathName, \ - .lpLoadOrderGroup, .lpdwTagId, .lpDependencies, .lp, .lpPassword>, 'CreateServiceW', \ - CreateTraceInstanceId, N, <NONE>, 'CreateTraceInstanceId', \ - CreateWellKnownSid, N, <NONE>, 'CreateWellKnownSid', \ - CredDelete, A, <NONE>, 'CredDeleteA', \ - CredDelete, W, <NONE>, 'CredDeleteW', \ - CredEnumerate, A, <NONE>, 'CredEnumerateA', \ - CredEnumerate, W, <NONE>, 'CredEnumerateW', \ - CredFree, N, <NONE>, 'CredFree', \ - CredGetSessionTypes, N, <NONE>, 'CredGetSessionTypes', \ - CredGetTargetInfo, A, <NONE>, 'CredGetTargetInfoA', \ - CredGetTargetInfo, W, <NONE>, 'CredGetTargetInfoW', \ - CredIsMarshaledCredential, A, <NONE>, 'CredIsMarshaledCredentialA', \ - CredIsMarshaledCredential, W, <NONE>, 'CredIsMarshaledCredentialW', \ - CredMarshalCredential, A, <NONE>, 'CredMarshalCredentialA', \ - CredMarshalCredential, W, <NONE>, 'CredMarshalCredentialW', \ - CredProfileLoaded, N, <NONE>, 'CredProfileLoaded', \ - CredRead, A, <NONE>, 'CredReadA', \ - CredReadDomainCredentials, A, <NONE>, 'CredReadDomainCredentialsA', \ - CredReadDomainCredentials, W, <NONE>, 'CredReadDomainCredentialsW', \ - CredRead, W, <NONE>, 'CredReadW', \ - CredRename, A, <NONE>, 'CredRenameA', \ - CredRename, W, <NONE>, 'CredRenameW', \ - CredUnmarshalCredential, A, <NONE>, 'CredUnmarshalCredentialA', \ - CredUnmarshalCredential, W, <NONE>, 'CredUnmarshalCredentialW', \ - CredWrite, A, <NONE>, 'CredWriteA', \ - CredWriteDomainCredentials, A, <NONE>, 'CredWriteDomainCredentialsA', \ - CredWriteDomainCredentials, W, <NONE>, 'CredWriteDomainCredentialsW', \ - CredWrite, W, <NONE>, 'CredWriteW', \ - CredpConvertCredential, N, <NONE>, 'CredpConvertCredential', \ - CredpConvertTargetInfo, N, <NONE>, 'CredpConvertTargetInfo', \ - CredpDecodeCredential, N, <NONE>, 'CredpDecodeCredential', \ - CredpEncodeCredential, N, <NONE>, 'CredpEncodeCredential', \ - CryptAcquireContext, A, <.phProv, .pszContainer, .pszProvider, .dwProvType, .dwFlags>, 'CryptAcquireContextA', \ - CryptAcquireContext, W, <.phProv, .pszContainer, .pszProvider, .dwProvType, .dwFlags>, 'CryptAcquireContextW', \ - CryptContextAddRef, N, <.hProv, .pdwReserved, .dwFlags>, 'CryptContextAddRef', \ - CryptCreateHash, N, <.hProv, .Algid, .hKey, .dwFlags, .phHash>, 'CryptCreateHash', \ - CryptDecrypt, N, <.hKey, .hHash, .Final, .dwFlags, .pbData, .pdwDataLen>, 'CryptDecrypt', \ - CryptDeriveKey, N, <.hProv, .Algid, .hBaseData, .dwFlags, .phKey>, 'CryptDeriveKey', \ - CryptDestroyHash, N, <.hHash>, 'CryptDestroyHash', \ - CryptDestroyKey, N, <.hKey>, 'CryptDestroyKey', \ - CryptDuplicateHash, N, <.hHash, .pdwReserved, .dwFlags, .phHash>, 'CryptDuplicateHash', \ - CryptDuplicateKey, N, <.hKey, .pdwReserved, .dwFlags, .phKey>, 'CryptDuplicateKey', \ - CryptEncrypt, N, <.hKey, .hHash, .Final, .dwFlags, .pbData, .pdwDataLen, .dwBufLen>, 'CryptEncrypt', \ - CryptEnumProviderTypes, A, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszTypeName, .pcbTypeName>, 'CryptEnumProviderTypesA', \ - CryptEnumProviderTypes, W, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszTypeName, .pcbTypeName>, 'CryptEnumProviderTypesW', \ - CryptEnumProviders, A, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszProvName, .pcbProvName>, 'CryptEnumProvidersA', \ - CryptEnumProviders, W, <.dwIndex, .pdwReserved, .dwFlags, .pdwProvType, .pszProvName, .pcbProvName>, 'CryptEnumProvidersW', \ - CryptExportKey, N, <.hKey, .hExpKey, .dwBlobType, .dwFlags, .pbData, .pdwDataLen>, 'CryptExportKey', \ - CryptGenKey, N, <.hProv, .Algid, .dwFlags, .phKey>, 'CryptGenKey', \ - CryptGenRandom, N, <.hProv, .dwLen, .pbBuffer>, 'CryptGenRandom', \ - CryptGetDefaultProvider, A, <.dwProvType, .pdwReserved, .dwFlags, .pszProvName, .pcbProvName>, 'CryptGetDefaultProviderA', \ - CryptGetDefaultProvider, W, <.dwProvType, .pdwReserved, .dwFlags, .pszProvName, .pcbProvName>, 'CryptGetDefaultProviderW', \ - CryptGetHashParam, N, <.hHash, .dwParam, .pbData, .pdwDataLen, .dwFlags>, 'CryptGetHashParam', \ - CryptGetKeyParam, N, <.hKey, .dwParam, .pbData, .pdwDataLen, .dwFlags>, 'CryptGetKeyParam', \ - CryptGetProvParam, N, <.hProv, .dwParam, .pbData, .pdwDataLen, .dwFlags>, 'CryptGetProvParam', \ - CryptGetUserKey, N, <.hProv, .dwKeySpec, .phUserKey>, 'CryptGetUserKey', \ - CryptHashData, N, <.hHash, .pbData, .dwDataLen, .dwFlags>, 'CryptHashData', \ - CryptHashSessionKey, N, <.hHash, .hKey, .dwFlags>, 'CryptHashSessionKey', \ - CryptImportKey, N, <.hProv, .pbData, .dwDataLen, .hPubKey, .dwFlags, .phKey>, 'CryptImportKey', \ - CryptReleaseContext, N, <.hProv, .dwFlags>, 'CryptReleaseContext', \ - CryptSetHashParam, N, <.hHash, .dwParam, .pbData, .dwFlags>, 'CryptSetHashParam', \ - CryptSetKeyParam, N, <.hKey, .dwParam, .pbData, .dwFlags>, 'CryptSetKeyParam', \ - CryptSetProvParam, N, <.hProv, .dwParam, .pbData, .dwFlags>, 'CryptSetProvParam', \ - CryptSetProvider, A, <.pszProvName, .dwProvType>, 'CryptSetProviderA', \ - CryptSetProviderEx, A, <.pszProvName, .dwProvType, .pdwReserved, .dwFlags>, 'CryptSetProviderExA', \ - CryptSetProviderEx, W, <.pszProvName, .dwProvType, .pdwReserved, .dwFlags>, 'CryptSetProviderExW', \ - CryptSetProvider, W, <.pszProvName, .dwProvType>, 'CryptSetProviderW', \ - CryptSignHash, A, <.hHash, .dwKeySpec, .sDescription, .dwFlags, .pbSignature, .pdwSigLen>, 'CryptSignHashA', \ - CryptSignHash, W, <.hHash, .dwKeySpec, .sDescription, .dwFlags, .pbSignature, .pdwSigLen>, 'CryptSignHashW', \ - CryptVerifySignature, A, <.hHash, .pbSignature, .dwSigLen, .hPubKey, .sDescription, .dwFlags>, 'CryptVerifySignatureA', \ - CryptVerifySignature, W, <.hHash, .pbSignature, .dwSigLen, .hPubKey, .sDescription, .dwFlags>, 'CryptVerifySignatureW', \ - DecryptFile, A, <.lpFileName, .dwReserved>, 'DecryptFileA', \ - DecryptFile, W, <.lpFileName, .dwReserved>, 'DecryptFileW', \ - DeleteAce, N, <.pAcl, .dwAceIndex>, 'DeleteAce', \ - DeleteService, N, <.hService>, 'DeleteService', \ - DeregisterEventSource, N, <.hEventLog>, 'DeregisterEventSource', \ - DestroyPrivateObjectSecurity, N, <.ObjectDescriptor>, 'DestroyPrivateObjectSecurity', \ - DuplicateEncryptionInfoFile, N, <NONE>, 'DuplicateEncryptionInfoFile', \ - DuplicateToken, N, <.ExistingTokenHandle, .ImpersonationLevel, .DuplicateTokenHandle>, 'DuplicateToken', \ - DuplicateTokenEx, N, <.hExistingToken, .dwDesiredAccess, .lpTokenAttributes, .ImpersonationLevel, .TokenType, .phNewToken>, 'DuplicateTokenEx', \ - ElfBackupEventLogFile, A, <NONE>, 'ElfBackupEventLogFileA', \ - ElfBackupEventLogFile, W, <NONE>, 'ElfBackupEventLogFileW', \ - ElfChangeNotify, N, <NONE>, 'ElfChangeNotify', \ - ElfClearEventLogFile, A, <NONE>, 'ElfClearEventLogFileA', \ - ElfClearEventLogFile, W, <NONE>, 'ElfClearEventLogFileW', \ - ElfCloseEventLog, N, <NONE>, 'ElfCloseEventLog', \ - ElfDeregisterEventSource, N, <NONE>, 'ElfDeregisterEventSource', \ - ElfFlushEventLog, N, <NONE>, 'ElfFlushEventLog', \ - ElfNumberOfRecords, N, <NONE>, 'ElfNumberOfRecords', \ - ElfOldestRecord, N, <NONE>, 'ElfOldestRecord', \ - ElfOpenBackupEventLog, A, <NONE>, 'ElfOpenBackupEventLogA', \ - ElfOpenBackupEventLog, W, <NONE>, 'ElfOpenBackupEventLogW', \ - ElfOpenEventLog, A, <NONE>, 'ElfOpenEventLogA', \ - ElfOpenEventLog, W, <NONE>, 'ElfOpenEventLogW', \ - ElfReadEventLog, A, <NONE>, 'ElfReadEventLogA', \ - ElfReadEventLog, W, <NONE>, 'ElfReadEventLogW', \ - ElfRegisterEventSource, A, <NONE>, 'ElfRegisterEventSourceA', \ - ElfRegisterEventSource, W, <NONE>, 'ElfRegisterEventSourceW', \ - ElfReportEvent, A, <NONE>, 'ElfReportEventA', \ - ElfReportEvent, W, <NONE>, 'ElfReportEventW', \ - EnableTrace, N, <NONE>, 'EnableTrace', \ - EncryptFile, A, <.lpFileName>, 'EncryptFileA', \ - EncryptFile, W, <.lpFileName>, 'EncryptFileW', \ - EncryptedFileKeyInfo, N, <NONE>, 'EncryptedFileKeyInfo', \ - EncryptionDisable, N, <.DirPath, .Disable>, 'EncryptionDisable', \ - EnumDependentServices, A, <.hService, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned>, 'EnumDependentServicesA', \ - EnumDependentServices, W, <.hService, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned>, 'EnumDependentServicesW', \ - EnumServiceGroup, W, <NONE>, 'EnumServiceGroupW', \ - EnumServicesStatus, A, <.hSCManager, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ - .lpResumeHandle>, 'EnumServicesStatusA', \ - EnumServicesStatusEx, A, <.hSCManager, .InfoLevel, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ - .lpResumeHandle, .pszGroupName>, 'EnumServicesStatusExA', \ - EnumServicesStatusEx, W, <.hSCManager, .InfoLevel, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ - .lpResumeHandle, .pszGroupName>, 'EnumServicesStatusExW', \ - EnumServicesStatus, W, <.hSCManager, .dwServiceType, .dwServiceState, .lpServices, .cbBufSize, .pcbBytesNeeded, .lpServicesReturned, \ - .lpResumeHandle>, 'EnumServicesStatusW', \ - EnumerateTraceGuids, N, <NONE>, 'EnumerateTraceGuids', \ - EqualDomainSid, N, <NONE>, 'EqualDomainSid', \ - EqualPrefixSid, N, <.pSid1, .pSid2>, 'EqualPrefixSid', \ - EqualSid, N, <.pSid1, .pSid2>, 'EqualSid', \ - FileEncryptionStatus, A, <.lpFileName, .lpStatus>, 'FileEncryptionStatusA', \ - FileEncryptionStatus, W, <.lpFileName, .lpStatus>, 'FileEncryptionStatusW', \ - FindFirstFreeAce, N, <.pAcl, .pAce>, 'FindFirstFreeAce', \ - FlushTrace, A, <NONE>, 'FlushTraceA', \ - FlushTrace, W, <NONE>, 'FlushTraceW', \ - FreeEncryptedFileKeyInfo, N, <NONE>, 'FreeEncryptedFileKeyInfo', \ - FreeEncryptionCertificateHashList, N, <.pHashes>, 'FreeEncryptionCertificateHashList', \ - FreeInheritedFromArray, N, <.pInheritArray, .AceCnt, .pfnArray>, 'FreeInheritedFromArray', \ - FreeSid, N, <.pSid>, 'FreeSid', \ - GetAccessPermissionsForObject, A, <NONE>, 'GetAccessPermissionsForObjectA', \ - GetAccessPermissionsForObject, W, <NONE>, 'GetAccessPermissionsForObjectW', \ - GetAce, N, <.pAcl, .dwAceIndex, .pAce>, 'GetAce', \ - GetAclInformation, N, <.pAcl, .pAclInformation, .nAclInformationLength, .dwAclInformationClass>, 'GetAclInformation', \ - GetAuditedPermissionsFromAcl, A, <.pAcl, .pTrustee, .pSuccessfulAuditedRights, .pFailedAuditRights>, 'GetAuditedPermissionsFromAclA', \ - GetAuditedPermissionsFromAcl, W, <.pAcl, .pTrustee, .pSuccessfulAuditedRights, .pFailedAuditRights>, 'GetAuditedPermissionsFromAclW', \ - GetCurrentHwProfile, A, <.lpHwProfileInfo>, 'GetCurrentHwProfileA', \ - GetCurrentHwProfile, W, <.lpHwProfileInfo>, 'GetCurrentHwProfileW', \ - GetEffectiveRightsFromAcl, A, <.pAcl, .pTrustee, .pAccessRights>, 'GetEffectiveRightsFromAclA', \ - GetEffectiveRightsFromAcl, W, <.pAcl, .pTrustee, .pAccessRights>, 'GetEffectiveRightsFromAclW', \ - GetEventLogInformation, N, <.hEventLog, .dwInfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'GetEventLogInformation', \ - GetExplicitEntriesFromAcl, A, <.pAcl, .pcCountOfExplicitEntries, .pListOfExplicitEntries>, 'GetExplicitEntriesFromAclA', \ - GetExplicitEntriesFromAcl, W, <.pAcl, .pcCountOfExplicitEntries, .pListOfExplicitEntries>, 'GetExplicitEntriesFromAclW', \ - GetFileSecurity, A, <.lpFileName, .RequestedInformation, .pSecurityDescriptor, .nLength, .lpnLengthNeeded>, 'GetFileSecurityA', \ - GetFileSecurity, W, <.lpFileName, .RequestedInformation, .pSecurityDescriptor, .nLength, .lpnLengthNeeded>, 'GetFileSecurityW', \ - GetInformationCodeAuthzLevel, W, <NONE>, 'GetInformationCodeAuthzLevelW', \ - GetInformationCodeAuthzPolicy, W, <NONE>, 'GetInformationCodeAuthzPolicyW', \ - GetInheritanceSource, A, <.pObjectName, .ObjectType, .SecurityInfo, .Container, .ObjectTypeGuid, .pAcl, .pfnArray, .pGenericMapping, \ - .pInheritArray>, 'GetInheritanceSourceA', \ - GetInheritanceSource, W, <.pObjectName, .ObjectType, .SecurityInfo, .Container, .ObjectTypeGuid, .pAcl, .pfnArray, .pGenericMapping, \ - .pInheritArray>, 'GetInheritanceSourceW', \ - GetKernelObjectSecurity, N, <.Handle, .RequestedInformation, .pSecurityDescriptor, .nLength, .lpnLengthNeeded>, 'GetKernelObjectSecurity', \ - GetLengthSid, N, <.pSid>, 'GetLengthSid', \ - GetLocalManagedApplicationData, N, <NONE>, 'GetLocalManagedApplicationData', \ - GetLocalManagedApplications, N, <NONE>, 'GetLocalManagedApplications', \ - GetManagedApplicationCategories, N, <NONE>, 'GetManagedApplicationCategories', \ - GetManagedApplications, N, <NONE>, 'GetManagedApplications', \ - GetMultipleTrustee, A, <.pTrustee>, 'GetMultipleTrusteeA', \ - GetMultipleTrusteeOperation, A, <.pTrustee>, 'GetMultipleTrusteeOperationA', \ - GetMultipleTrusteeOperation, W, <.pTrustee>, 'GetMultipleTrusteeOperationW', \ - GetMultipleTrustee, W, <.pTrustee>, 'GetMultipleTrusteeW', \ - GetNamedSecurityInfo, A, <.pObjectName, .ObjectType, .SecurityInfo, .ppsidOwner, .ppsidGroup, .ppDacl, .ppSacl, .ppSecurityDescriptor, \ - >, 'GetNamedSecurityInfoA', \ - GetNamedSecurityInfoEx, A, <NONE>, 'GetNamedSecurityInfoExA', \ - GetNamedSecurityInfoEx, W, <NONE>, 'GetNamedSecurityInfoExW', \ - GetNamedSecurityInfo, W, <.pObjectName, .ObjectType, .SecurityInfo, .ppsidOwner, .ppsidGroup, .ppDacl, .ppSacl, .ppSecurityDescriptor, \ - >, 'GetNamedSecurityInfoW', \ - GetNumberOfEventLogRecords, N, <.hEventLog, .NumberOfRecords>, 'GetNumberOfEventLogRecords', \ - GetOldestEventLogRecord, N, <.hEventLog, .OldestRecord>, 'GetOldestEventLogRecord', \ - GetOverlappedAccessResults, N, <NONE>, 'GetOverlappedAccessResults', \ - GetPrivateObjectSecurity, N, <.ObjectDescriptor, .SecurityInformation, .ResultantDescriptor, .DescriptorLength, .ReturnLength>, 'GetPrivateObjectSecurity', \ - GetSecurityDescriptorControl, N, <.pSecurityDescriptor, .pControl, .lpdwRevision>, 'GetSecurityDescriptorControl', \ - GetSecurityDescriptorDacl, N, <.pSecurityDescriptor, .lpbDaclPresent, .pDacl, .lpbDaclDefaulted>, 'GetSecurityDescriptorDacl', \ - GetSecurityDescriptorGroup, N, <.pSecurityDescriptor, .pGroup, .lpbGroupDefaulted>, 'GetSecurityDescriptorGroup', \ - GetSecurityDescriptorLength, N, <.pSecurityDescriptor>, 'GetSecurityDescriptorLength', \ - GetSecurityDescriptorOwner, N, <.pSecurityDescriptor, .pOwner, .lpbOwnerDefaulted>, 'GetSecurityDescriptorOwner', \ - GetSecurityDescriptorRMControl, N, <.SecurityDescriptor, .RMControl>, 'GetSecurityDescriptorRMControl', \ - GetSecurityDescriptorSacl, N, <.pSecurityDescriptor, .lpbSaclPresent, .pSacl, .lpbSaclDefaulted>, 'GetSecurityDescriptorSacl', \ - GetSecurityInfo, N, <.Handle, .ObjectType, .SecurityInfo, .ppsidOwner, .ppsidGroup, .ppDacl, .ppSacl, .ppSecurityDescriptor>, 'GetSecurityInfo', \ - GetSecurityInfoEx, A, <NONE>, 'GetSecurityInfoExA', \ - GetSecurityInfoEx, W, <NONE>, 'GetSecurityInfoExW', \ - GetServiceDisplayName, A, <.hSCManager, .lpServiceName, .lpDisplayName, .lpcchBuffer>, 'GetServiceDisplayNameA', \ - GetServiceDisplayName, W, <.hSCManager, .lpServiceName, .lpDisplayName, .lpcchBuffer>, 'GetServiceDisplayNameW', \ - GetServiceKeyName, A, <.hSCManager, .lpDisplayName, .lpServiceName, .lpcchBuffer>, 'GetServiceKeyNameA', \ - GetServiceKeyName, W, <.hSCManager, .lpDisplayName, .lpServiceName, .lpcchBuffer>, 'GetServiceKeyNameW', \ - GetSidIdentifierAuthority, N, <.pSid>, 'GetSidIdentifierAuthority', \ - GetSidLengthRequired, N, <.nSubAuthorityCount>, 'GetSidLengthRequired', \ - GetSidSubAuthority, N, <.pSid, .nSubAuthority>, 'GetSidSubAuthority', \ - GetSidSubAuthorityCount, N, <.pSid>, 'GetSidSubAuthorityCount', \ - GetTokenInformation, N, <.TokenHandle, .TokenInformationClass, .TokenInformation, .TokenInformationLength, .ReturnLength>, 'GetTokenInformation', \ - GetTraceEnableFlags, N, <NONE>, 'GetTraceEnableFlags', \ - GetTraceEnableLevel, N, <NONE>, 'GetTraceEnableLevel', \ - GetTraceLoggerHandle, N, <NONE>, 'GetTraceLoggerHandle', \ - GetTrusteeForm, A, <.pTrustee>, 'GetTrusteeFormA', \ - GetTrusteeForm, W, <.pTrustee>, 'GetTrusteeFormW', \ - GetTrusteeName, A, <.pTrustee>, 'GetTrusteeNameA', \ - GetTrusteeName, W, <.pTrustee>, 'GetTrusteeNameW', \ - GetTrusteeType, A, <.pTrustee>, 'GetTrusteeTypeA', \ - GetTrusteeType, W, <.pTrustee>, 'GetTrusteeTypeW', \ - GetUserName, A, <.lpBuffer, .nSize>, 'GetUserNameA', \ - GetUserName, W, <.lpBuffer, .nSize>, 'GetUserNameW', \ - GetWindowsAccountDomainSid, N, <NONE>, 'GetWindowsAccountDomainSid', \ - I_ScGetCurrentGroupState, W, <NONE>, 'I_ScGetCurrentGroupStateW', \ - I_ScIsSecurityProcess, N, <NONE>, 'I_ScIsSecurityProcess', \ - I_ScPnPGetServiceName, N, <NONE>, 'I_ScPnPGetServiceName', \ - I_ScSendTSMessage, N, <NONE>, 'I_ScSendTSMessage', \ - I_ScSetServiceBits, A, <NONE>, 'I_ScSetServiceBitsA', \ - I_ScSetServiceBits, W, <NONE>, 'I_ScSetServiceBitsW', \ - IdentifyCodeAuthzLevel, W, <NONE>, 'IdentifyCodeAuthzLevelW', \ - ImpersonateAnonymousToken, N, <.ThreadHandle>, 'ImpersonateAnonymousToken', \ - ImpersonateLoggedOnUser, N, <.hToken>, 'ImpersonateLoggedOnUser', \ - ImpersonateNamedPipeClient, N, <.hNamedPipe>, 'ImpersonateNamedPipeClient', \ - ImpersonateSelf, N, <.ImpersonationLevel>, 'ImpersonateSelf', \ - InitializeAcl, N, <.pAcl, .nAclLength, .dwAclRevision>, 'InitializeAcl', \ - InitializeSecurityDescriptor, N, <.pSecurityDescriptor, .dwRevision>, 'InitializeSecurityDescriptor', \ - InitializeSid, N, <.Sid, .pIdentifierAuthority, .nSubAuthorityCount>, 'InitializeSid', \ - InitiateSystemShutdown, A, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown>, 'InitiateSystemShutdownA', \ - InitiateSystemShutdownEx, A, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown, .dwReason>, 'InitiateSystemShutdownExA', \ - InitiateSystemShutdownEx, W, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown, .dwReason>, 'InitiateSystemShutdownExW', \ - InitiateSystemShutdown, W, <.lpMachineName, .lpMessage, .dwTimeout, .bForceAppsClosed, .bRebootAfterShutdown>, 'InitiateSystemShutdownW', \ - InstallApplication, N, <NONE>, 'InstallApplication', \ - IsTextUnicode, N, <.lpBuffer, .cb, .lpi>, 'IsTextUnicode', \ - IsTokenRestricted, N, <.TokenHandle>, 'IsTokenRestricted', \ - IsTokenUntrusted, N, <NONE>, 'IsTokenUntrusted', \ - IsValidAcl, N, <.pAcl>, 'IsValidAcl', \ - IsValidSecurityDescriptor, N, <.pSecurityDescriptor>, 'IsValidSecurityDescriptor', \ - IsValidSid, N, <.pSid>, 'IsValidSid', \ - IsWellKnownSid, N, <NONE>, 'IsWellKnownSid', \ - LockServiceDatabase, N, <.hSCManager>, 'LockServiceDatabase', \ - LogonUser, A, <.lpszUsername, .lpszDomain, .lpszPassword, .dwLogonType, .dwLogonProvider, .phToken>, 'LogonUserA', \ - LogonUserEx, A, <NONE>, 'LogonUserExA', \ - LogonUserEx, W, <NONE>, 'LogonUserExW', \ - LogonUser, W, <.lpszUsername, .lpszDomain, .lpszPassword, .dwLogonType, .dwLogonProvider, .phToken>, 'LogonUserW', \ - LookupAccountName, A, <.lpSystemName, .lpAccountName, .Sid, .cbSid, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountNameA', \ - LookupAccountName, W, <.lpSystemName, .lpAccountName, .Sid, .cbSid, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountNameW', \ - LookupAccountSid, A, <.lpSystemName, .Sid, .Name, .cbName, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountSidA', \ - LookupAccountSid, W, <.lpSystemName, .Sid, .Name, .cbName, .ReferencedDomainName, .cbReferencedDomainName, .peUse>, 'LookupAccountSidW', \ - LookupPrivilegeDisplayName, A, <.lpSystemName, .lpName, .lpDisplayName, .cbDisplayName, .lpLanguageID>, 'LookupPrivilegeDisplayNameA', \ - LookupPrivilegeDisplayName, W, <.lpSystemName, .lpName, .lpDisplayName, .cbDisplayName, .lpLanguageID>, 'LookupPrivilegeDisplayNameW', \ - LookupPrivilegeName, A, <.lpSystemName, .lpLuid, .lpName, .cbName>, 'LookupPrivilegeNameA', \ - LookupPrivilegeName, W, <.lpSystemName, .lpLuid, .lpName, .cbName>, 'LookupPrivilegeNameW', \ - LookupPrivilegeValue, A, <.lpSystemName, .lpName, .lpLuid>, 'LookupPrivilegeValueA', \ - LookupPrivilegeValue, W, <.lpSystemName, .lpName, .lpLuid>, 'LookupPrivilegeValueW', \ - LookupSecurityDescriptorParts, A, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ - .pSD>, 'LookupSecurityDescriptorPartsA', \ - LookupSecurityDescriptorParts, W, <.pOwner, .pGroup, .cCountOfAccessEntries, .pListOfAccessEntries, .cCountOfAuditEntries, .pListOfAuditEntries, \ - .pSD>, 'LookupSecurityDescriptorPartsW', \ - LsaAddAccountRights, N, <.PolicyHandle, .AccountSid, .UserRights, .CountOfRights>, 'LsaAddAccountRights', \ - LsaAddPrivilegesToAccount, N, <NONE>, 'LsaAddPrivilegesToAccount', \ - LsaClearAuditLog, N, <NONE>, 'LsaClearAuditLog', \ - LsaClose, N, <.ObjectHandle>, 'LsaClose', \ - LsaCreateAccount, N, <NONE>, 'LsaCreateAccount', \ - LsaCreateSecret, N, <NONE>, 'LsaCreateSecret', \ - LsaCreateTrustedDomain, N, <NONE>, 'LsaCreateTrustedDomain', \ - LsaCreateTrustedDomainEx, N, <.PolicyHandle, .TrustedDomainInformation, .AuthenticationInformation, .DesiredAccess, .TrustedDomainHandle, \ - >, 'LsaCreateTrustedDomainEx', \ - LsaDelete, N, <NONE>, 'LsaDelete', \ - LsaDeleteTrustedDomain, N, <.PolicyHandle, .TrustedDomainSid>, 'LsaDeleteTrustedDomain', \ - LsaEnumerateAccountRights, N, <.PolicyHandle, .AccountSid, .UserRights, .CountOfRights>, 'LsaEnumerateAccountRights', \ - LsaEnumerateAccounts, N, <NONE>, 'LsaEnumerateAccounts', \ - LsaEnumerateAccountsWithUserRight, N, <.PolicyHandle, .UserRights, .EnumerationBuffer, .CountReturned>, 'LsaEnumerateAccountsWithUserRight', \ - LsaEnumeratePrivileges, N, <NONE>, 'LsaEnumeratePrivileges', \ - LsaEnumeratePrivilegesOfAccount, N, <NONE>, 'LsaEnumeratePrivilegesOfAccount', \ - LsaEnumerateTrustedDomains, N, <.PolicyHandle, .EnumerationContext, .buffer, .PreferedMaximumLength, .CountReturned>, 'LsaEnumerateTrustedDomains', \ - LsaEnumerateTrustedDomainsEx, N, <.PolicyHandle, .EnumerationContext, .buffer, .PreferedMaximumLength, .CountReturned>, 'LsaEnumerateTrustedDomainsEx', \ - LsaFreeMemory, N, <.buffer>, 'LsaFreeMemory', \ - LsaGetQuotasForAccount, N, <NONE>, 'LsaGetQuotasForAccount', \ - LsaGetRemoteUserName, N, <NONE>, 'LsaGetRemoteUserName', \ - LsaGetSystemAccessAccount, N, <NONE>, 'LsaGetSystemAccessAccount', \ - LsaGetUserName, N, <NONE>, 'LsaGetUserName', \ - LsaICLookupNames, N, <NONE>, 'LsaICLookupNames', \ - LsaICLookupNamesWithCreds, N, <NONE>, 'LsaICLookupNamesWithCreds', \ - LsaICLookupSids, N, <NONE>, 'LsaICLookupSids', \ - LsaICLookupSidsWithCreds, N, <NONE>, 'LsaICLookupSidsWithCreds', \ - LsaLookupNames, N, <.PolicyHandle, .count, .Names, .ReferencedDomains, .Sids>, 'LsaLookupNames', \ - LsaLookupNames2, N, <NONE>, 'LsaLookupNames2', \ - LsaLookupPrivilegeDisplayName, N, <NONE>, 'LsaLookupPrivilegeDisplayName', \ - LsaLookupPrivilegeName, N, <NONE>, 'LsaLookupPrivilegeName', \ - LsaLookupPrivilegeValue, N, <NONE>, 'LsaLookupPrivilegeValue', \ - LsaLookupSids, N, <.PolicyHandle, .count, .Sids, .ReferencedDomains, .Names>, 'LsaLookupSids', \ - LsaNtStatusToWinError, N, <.Status>, 'LsaNtStatusToWinError', \ - LsaOpenAccount, N, <NONE>, 'LsaOpenAccount', \ - LsaOpenPolicy, N, <.SystemName, .ObjectAttributes, .DesiredAccess, .PolicyHandle>, 'LsaOpenPolicy', \ - LsaOpenPolicySce, N, <NONE>, 'LsaOpenPolicySce', \ - LsaOpenSecret, N, <NONE>, 'LsaOpenSecret', \ - LsaOpenTrustedDomain, N, <NONE>, 'LsaOpenTrustedDomain', \ - LsaOpenTrustedDomainByName, N, <.PolicyHandle, .TrustedDomainName, .DesiredAccess, .TrustedDomainHandle>, 'LsaOpenTrustedDomainByName', \ - LsaQueryDomainInformationPolicy, N, <.PolicyHandle, .InformationClass, .buffer>, 'LsaQueryDomainInformationPolicy', \ - LsaQueryForestTrustInformation, N, <NONE>, 'LsaQueryForestTrustInformation', \ - LsaQueryInfoTrustedDomain, N, <NONE>, 'LsaQueryInfoTrustedDomain', \ - LsaQueryInformationPolicy, N, <.PolicyHandle, .InformationClass, .buffer>, 'LsaQueryInformationPolicy', \ - LsaQuerySecret, N, <NONE>, 'LsaQuerySecret', \ - LsaQuerySecurityObject, N, <NONE>, 'LsaQuerySecurityObject', \ - LsaQueryTrustedDomainInfo, N, <.PolicyHandle, .TrustedDomainSid, .InformationClass, .buffer>, 'LsaQueryTrustedDomainInfo', \ - LsaQueryTrustedDomainInfoByName, N, <.PolicyHandle, .TrustedDomainName, .InformationClass, .buffer>, 'LsaQueryTrustedDomainInfoByName', \ - LsaRemoveAccountRights, N, <.PolicyHandle, .AccountSid, .AllRights, .UserRights, .CountOfRights>, 'LsaRemoveAccountRights', \ - LsaRemovePrivilegesFromAccount, N, <NONE>, 'LsaRemovePrivilegesFromAccount', \ - LsaRetrievePrivateData, N, <.PolicyHandle, .KeyName, .PrivateData>, 'LsaRetrievePrivateData', \ - LsaSetDomainInformationPolicy, N, <.PolicyHandle, .InformationClass, .buffer>, 'LsaSetDomainInformationPolicy', \ - LsaSetForestTrustInformation, N, <NONE>, 'LsaSetForestTrustInformation', \ - LsaSetInformationPolicy, N, <.PolicyHandle, .InformationClass, .buffer>, 'LsaSetInformationPolicy', \ - LsaSetInformationTrustedDomain, N, <NONE>, 'LsaSetInformationTrustedDomain', \ - LsaSetQuotasForAccount, N, <NONE>, 'LsaSetQuotasForAccount', \ - LsaSetSecret, N, <NONE>, 'LsaSetSecret', \ - LsaSetSecurityObject, N, <NONE>, 'LsaSetSecurityObject', \ - LsaSetSystemAccessAccount, N, <NONE>, 'LsaSetSystemAccessAccount', \ - LsaSetTrustedDomainInfoByName, N, <.PolicyHandle, .TrustedDomainName, .InformationClass, .buffer>, 'LsaSetTrustedDomainInfoByName', \ - LsaSetTrustedDomainInformation, N, <.PolicyHandle, .TrustedDomainSid, .InformationClass, .buffer>, 'LsaSetTrustedDomainInformation', \ - LsaStorePrivateData, N, <.PolicyHandle, .KeyName, .PrivateData>, 'LsaStorePrivateData', \ - MD4Final, N, <NONE>, 'MD4Final', \ - MD4Init, N, <NONE>, 'MD4Init', \ - MD4Update, N, <NONE>, 'MD4Update', \ - MD5Final, N, <NONE>, 'MD5Final', \ - MD5Init, N, <NONE>, 'MD5Init', \ - MD5Update, N, <NONE>, 'MD5Update', \ - MSChapSrvChangePassword, N, <NONE>, 'MSChapSrvChangePassword', \ - MSChapSrvChangePassword2, N, <NONE>, 'MSChapSrvChangePassword2', \ - MakeAbsoluteSD, N, <.pSelfRelativeSecurityDescriptor, .pAbsoluteSecurityDescriptor, .lpdwAbsoluteSecurityDescriptorSize, .pDacl, .lpdwDaclSize, \ - .pSacl, .lpdwSaclSize, .pOwner, .lpdwOwnerSize, .pPrimaryGroup, .lpdwPrimaryGroupSize>, 'MakeAbsoluteSD', \ - MakeAbsoluteSD2, N, <.pSelfRelativeSecurityDescriptor, .lpdwBufferSize>, 'MakeAbsoluteSD2', \ - MakeSelfRelativeSD, N, <.pAbsoluteSecurityDescriptor, .pSelfRelativeSecurityDescriptor, .lpdwBufferLength>, 'MakeSelfRelativeSD', \ - MapGenericMask, N, <.AccessMask, .GenericMapping>, 'MapGenericMask', \ - NotifyBootConfigStatus, N, <.BootAcceptable>, 'NotifyBootConfigStatus', \ - NotifyChangeEventLog, N, <.hEventLog, .hEvent>, 'NotifyChangeEventLog', \ - ObjectCloseAuditAlarm, A, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectCloseAuditAlarmA', \ - ObjectCloseAuditAlarm, W, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectCloseAuditAlarmW', \ - ObjectDeleteAuditAlarm, A, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectDeleteAuditAlarmA', \ - ObjectDeleteAuditAlarm, W, <.SubsystemName, .HandleId, .GenerateOnClose>, 'ObjectDeleteAuditAlarmW', \ - ObjectOpenAuditAlarm, A, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .pSecurityDescriptor, .ClientToken, .DesiredAccess, \ - .GrantedAccess, .Privileges, .ObjectCreation, .AccessGranted, .GenerateOnClose>, 'ObjectOpenAuditAlarmA', \ - ObjectOpenAuditAlarm, W, <.SubsystemName, .HandleId, .ObjectTypeName, .ObjectName, .pSecurityDescriptor, .ClientToken, .DesiredAccess, \ - .GrantedAccess, .Privileges, .ObjectCreation, .AccessGranted, .GenerateOnClose>, 'ObjectOpenAuditAlarmW', \ - ObjectPrivilegeAuditAlarm, A, <.SubsystemName, .HandleId, .ClientToken, .DesiredAccess, .Privileges, .AccessGranted>, 'ObjectPrivilegeAuditAlarmA', \ - ObjectPrivilegeAuditAlarm, W, <.SubsystemName, .HandleId, .ClientToken, .DesiredAccess, .Privileges, .AccessGranted>, 'ObjectPrivilegeAuditAlarmW', \ - OpenBackupEventLog, A, <.lpUNCServerName, .lpFileName>, 'OpenBackupEventLogA', \ - OpenBackupEventLog, W, <.lpUNCServerName, .lpFileName>, 'OpenBackupEventLogW', \ - OpenEncryptedFileRaw, A, <.lpFileName, .ulFlags, .pvContext>, 'OpenEncryptedFileRawA', \ - OpenEncryptedFileRaw, W, <.lpFileName, .ulFlags, .pvContext>, 'OpenEncryptedFileRawW', \ - OpenEventLog, A, <.lpUNCServerName, .lpSourceName>, 'OpenEventLogA', \ - OpenEventLog, W, <.lpUNCServerName, .lpSourceName>, 'OpenEventLogW', \ - OpenProcessToken, N, <.ProcessHandle, .DesiredAccess, .TokenHandle>, 'OpenProcessToken', \ - OpenSCManager, A, <.lpMachineName, .lpDatabaseName, .dwDesiredAccess>, 'OpenSCManagerA', \ - OpenSCManager, W, <.lpMachineName, .lpDatabaseName, .dwDesiredAccess>, 'OpenSCManagerW', \ - OpenService, A, <.hSCManager, .lpServiceName, .dwDesiredAccess>, 'OpenServiceA', \ - OpenService, W, <.hSCManager, .lpServiceName, .dwDesiredAccess>, 'OpenServiceW', \ - OpenThreadToken, N, <.ThreadHandle, .DesiredAccess, .OpenAsSelf, .TokenHandle>, 'OpenThreadToken', \ - OpenTrace, A, <NONE>, 'OpenTraceA', \ - OpenTrace, W, <NONE>, 'OpenTraceW', \ - PrivilegeCheck, N, <.ClientToken, .RequiredPrivileges, .pfResult>, 'PrivilegeCheck', \ - PrivilegedServiceAuditAlarm, A, <.SubsystemName, .ServiceName, .ClientToken, .Privileges, .AccessGranted>, 'PrivilegedServiceAuditAlarmA', \ - PrivilegedServiceAuditAlarm, W, <.SubsystemName, .ServiceName, .ClientToken, .Privileges, .AccessGranted>, 'PrivilegedServiceAuditAlarmW', \ - ProcessIdleTasks, N, <NONE>, 'ProcessIdleTasks', \ - ProcessTrace, N, <NONE>, 'ProcessTrace', \ - QueryAllTraces, A, <NONE>, 'QueryAllTracesA', \ - QueryAllTraces, W, <NONE>, 'QueryAllTracesW', \ - QueryRecoveryAgentsOnEncryptedFile, N, <.lpFileName, .pRecoveryAgents>, 'QueryRecoveryAgentsOnEncryptedFile', \ - QueryServiceConfig2, A, <.hService, .dwInfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfig2A', \ - QueryServiceConfig2, W, <.hService, .dwInfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfig2W', \ - QueryServiceConfig, A, <.hService, .lpServiceConfig, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfigA', \ - QueryServiceConfig, W, <.hService, .lpServiceConfig, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceConfigW', \ - QueryServiceLockStatus, A, <.hSCManager, .lpLockStatus, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceLockStatusA', \ - QueryServiceLockStatus, W, <.hSCManager, .lpLockStatus, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceLockStatusW', \ - QueryServiceObjectSecurity, N, <.hService, .dwSecurityInformation, .lpSecurityDescriptor, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceObjectSecurity', \ - QueryServiceStatus, N, <.hService, .lpServiceStatus>, 'QueryServiceStatus', \ - QueryServiceStatusEx, N, <.hService, .InfoLevel, .lpBuffer, .cbBufSize, .pcbBytesNeeded>, 'QueryServiceStatusEx', \ - QueryTrace, A, <NONE>, 'QueryTraceA', \ - QueryTrace, W, <NONE>, 'QueryTraceW', \ - QueryUsersOnEncryptedFile, N, <.lpFileName, .pUsers>, 'QueryUsersOnEncryptedFile', \ - QueryWindows31FilesMigration, N, <NONE>, 'QueryWindows31FilesMigration', \ - ReadEncryptedFileRaw, N, <.pfExportCallback, .pvCallbackContext, .pvContext>, 'ReadEncryptedFileRaw', \ - ReadEventLog, A, <.hEventLog, .dwReadFlags, .dwRecordOffset, .lpBuffer, .nNumberOfBytesToRead, .pnBytesRead, .pnMinNumberOfBytesNeeded, \ - >, 'ReadEventLogA', \ - ReadEventLog, W, <.hEventLog, .dwReadFlags, .dwRecordOffset, .lpBuffer, .nNumberOfBytesToRead, .pnBytesRead, .pnMinNumberOfBytesNeeded, \ - >, 'ReadEventLogW', \ - RegCloseKey, N, <.hKey>, 'RegCloseKey', \ - RegConnectRegistry, A, <.lpMachineName, .hKey, .phkResult>, 'RegConnectRegistryA', \ - RegConnectRegistry, W, <.lpMachineName, .hKey, .phkResult>, 'RegConnectRegistryW', \ - RegCreateKey, A, <.hKey, .lpSubKey, .phkResult>, 'RegCreateKeyA', \ - RegCreateKeyEx, A, <.hKey, .lpSubKey, .Reserved, .lpClass, .dwOptions, .samDesired, .lpSecurityAttributes, .phkResult, .lpdwDisposition, \ - >, 'RegCreateKeyExA', \ - RegCreateKeyEx, W, <.hKey, .lpSubKey, .Reserved, .lpClass, .dwOptions, .samDesired, .lpSecurityAttributes, .phkResult, .lpdwDisposition, \ - >, 'RegCreateKeyExW', \ - RegCreateKey, W, <.hKey, .lpSubKey, .phkResult>, 'RegCreateKeyW', \ - RegDeleteKey, A, <.hKey, .lpSubKey>, 'RegDeleteKeyA', \ - RegDeleteKey, W, <.hKey, .lpSubKey>, 'RegDeleteKeyW', \ - RegDeleteValue, A, <.hKey, .lpValueName>, 'RegDeleteValueA', \ - RegDeleteValue, W, <.hKey, .lpValueName>, 'RegDeleteValueW', \ - RegDisablePredefinedCache, N, <VOID>, 'RegDisablePredefinedCache', \ - RegDisablePredefinedCacheEx, N, <NONE>, 'RegDisablePredefinedCacheEx', \ - RegEnumKey, A, <.hKey, .dwIndex, .lpName, .cbName>, 'RegEnumKeyA', \ - RegEnumKeyEx, A, <.hKey, .dwIndex, .lpName, .lpcbName, .lpReserved, .lpClass, .lpcbClass, .lpftLastWriteTime>, 'RegEnumKeyExA', \ - RegEnumKeyEx, W, <.hKey, .dwIndex, .lpName, .lpcbName, .lpReserved, .lpClass, .lpcbClass, .lpftLastWriteTime>, 'RegEnumKeyExW', \ - RegEnumKey, W, <.hKey, .dwIndex, .lpName, .cbName>, 'RegEnumKeyW', \ - RegEnumValue, A, <.hKey, .dwIndex, .lpValueName, .lpcbValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegEnumValueA', \ - RegEnumValue, W, <.hKey, .dwIndex, .lpValueName, .lpcbValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegEnumValueW', \ - RegFlushKey, N, <.hKey>, 'RegFlushKey', \ - RegGetKeySecurity, N, <.hKey, .SecurityInformation, .pSecurityDescriptor, .lpcbSecurityDescriptor>, 'RegGetKeySecurity', \ - RegLoadKey, A, <.hKey, .lpSubKey, .lpFile>, 'RegLoadKeyA', \ - RegLoadKey, W, <.hKey, .lpSubKey, .lpFile>, 'RegLoadKeyW', \ - RegNotifyChangeKeyValue, N, <.hKey, .bWatchSubtree, .dwNotifyFilter, .hEvent, .fAsynchronus>, 'RegNotifyChangeKeyValue', \ - RegOpenCurrentUser, N, <.samDesired, .phkResult>, 'RegOpenCurrentUser', \ - RegOpenKey, A, <.hKey, .lpSubKey, .phkResult>, 'RegOpenKeyA', \ - RegOpenKeyEx, A, <.hKey, .lpSubKey, .ulOptions, .samDesired, .phkResult>, 'RegOpenKeyExA', \ - RegOpenKeyEx, W, <.hKey, .lpSubKey, .ulOptions, .samDesired, .phkResult>, 'RegOpenKeyExW', \ - RegOpenKey, W, <.hKey, .lpSubKey, .phkResult>, 'RegOpenKeyW', \ - RegOpenUserClassesRoot, N, <.hToken, .dwOptions, .samDesired, .phkResult>, 'RegOpenUserClassesRoot', \ - RegOverridePredefKey, N, <.hKey, .hNewHKey>, 'RegOverridePredefKey', \ - RegQueryInfoKey, A, <.hKey, .lpClass, .lpcbClass, .lpReserved, .lpcSubKeys, .lpcbMaxSubKeyLen, .lpcbMaxClassLen, .lpcValues, .lpcbMaxValueNameLen, \ - .lpcbMaxValueLen, .lpcbSecurityDescriptor, .lpftLastWriteTime>, 'RegQueryInfoKeyA', \ - RegQueryInfoKey, W, <.hKey, .lpClass, .lpcbClass, .lpReserved, .lpcSubKeys, .lpcbMaxSubKeyLen, .lpcbMaxClassLen, .lpcValues, .lpcbMaxValueNameLen, \ - .lpcbMaxValueLen, .lpcbSecurityDescriptor, .lpftLastWriteTime>, 'RegQueryInfoKeyW', \ - RegQueryMultipleValues, A, <.hKey, .val_list, .num_vals, .lpValueBuf, .ldwTotsize>, 'RegQueryMultipleValuesA', \ - RegQueryMultipleValues, W, <.hKey, .val_list, .num_vals, .lpValueBuf, .ldwTotsize>, 'RegQueryMultipleValuesW', \ - RegQueryValue, A, <.hKey, .lpSubKey, .lpValue, .lpcbValue>, 'RegQueryValueA', \ - RegQueryValueEx, A, <.hKey, .lpValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegQueryValueExA', \ - RegQueryValueEx, W, <.hKey, .lpValueName, .lpReserved, .lpType, .lpData, .lpcbData>, 'RegQueryValueExW', \ - RegQueryValue, W, <.hKey, .lpSubKey, .lpValue, .lpcbValue>, 'RegQueryValueW', \ - RegReplaceKey, A, <.hKey, .lpSubKey, .lpNewFile, .lpOldFile>, 'RegReplaceKeyA', \ - RegReplaceKey, W, <.hKey, .lpSubKey, .lpNewFile, .lpOldFile>, 'RegReplaceKeyW', \ - RegRestoreKey, A, <.hKey, .lpFile, .dwFlags>, 'RegRestoreKeyA', \ - RegRestoreKey, W, <.hKey, .lpFile, .dwFlags>, 'RegRestoreKeyW', \ - RegSaveKey, A, <.hKey, .lpFile, .lpSecurityAttributes>, 'RegSaveKeyA', \ - RegSaveKeyEx, A, <NONE>, 'RegSaveKeyExA', \ - RegSaveKeyEx, W, <NONE>, 'RegSaveKeyExW', \ - RegSaveKey, W, <.hKey, .lpFile, .lpSecurityAttributes>, 'RegSaveKeyW', \ - RegSetKeySecurity, N, <.hKey, .SecurityInformation, .pSecurityDescriptor>, 'RegSetKeySecurity', \ - RegSetValue, A, <.hKey, .lpSubKey, .dwType, .lpData, .cbData>, 'RegSetValueA', \ - RegSetValueEx, A, <.hKey, .lpValueName, .Reserved, .dwType, .lpData, .cbData>, 'RegSetValueExA', \ - RegSetValueEx, W, <.hKey, .lpValueName, .Reserved, .dwType, .lpData, .cbData>, 'RegSetValueExW', \ - RegSetValue, W, <.hKey, .lpSubKey, .dwType, .lpData, .cbData>, 'RegSetValueW', \ - RegUnLoadKey, A, <.hKey, .lpSubKey>, 'RegUnLoadKeyA', \ - RegUnLoadKey, W, <.hKey, .lpSubKey>, 'RegUnLoadKeyW', \ - RegisterEventSource, A, <.lpUNCServerName, .lpSourceName>, 'RegisterEventSourceA', \ - RegisterEventSource, W, <.lpUNCServerName, .lpSourceName>, 'RegisterEventSourceW', \ - RegisterIdleTask, N, <NONE>, 'RegisterIdleTask', \ - RegisterServiceCtrlHandler, A, <.lpServiceName, .lpHandlerProc>, 'RegisterServiceCtrlHandlerA', \ - RegisterServiceCtrlHandlerEx, A, <.lpServiceName, .lpHandlerProc, .lpContext>, 'RegisterServiceCtrlHandlerExA', \ - RegisterServiceCtrlHandlerEx, W, <.lpServiceName, .lpHandlerProc, .lpContext>, 'RegisterServiceCtrlHandlerExW', \ - RegisterServiceCtrlHandler, W, <.lpServiceName, .lpHandlerProc>, 'RegisterServiceCtrlHandlerW', \ - RegisterTraceGuids, A, <NONE>, 'RegisterTraceGuidsA', \ - RegisterTraceGuids, W, <NONE>, 'RegisterTraceGuidsW', \ - RemoveTraceCallback, N, <NONE>, 'RemoveTraceCallback', \ - RemoveUsersFromEncryptedFile, N, <.lpFileName, .pHashes>, 'RemoveUsersFromEncryptedFile', \ - ReportEvent, A, <.hEventLog, .wType, .wCategory, .dwEventID, .lpUserSid, .wNumStrings, .dwDataSize, .lpStrings, .lpRawData>, 'ReportEventA', \ - ReportEvent, W, <.hEventLog, .wType, .wCategory, .dwEventID, .lpUserSid, .wNumStrings, .dwDataSize, .lpStrings, .lpRawData>, 'ReportEventW', \ - RevertToSelf, N, <VOID>, 'RevertToSelf', \ - SaferCloseLevel, N, <NONE>, 'SaferCloseLevel', \ - SaferComputeTokenFromLevel, N, <NONE>, 'SaferComputeTokenFromLevel', \ - SaferCreateLevel, N, <NONE>, 'SaferCreateLevel', \ - SaferGetLevelInformation, N, <NONE>, 'SaferGetLevelInformation', \ - SaferGetPolicyInformation, N, <NONE>, 'SaferGetPolicyInformation', \ - SaferIdentifyLevel, N, <NONE>, 'SaferIdentifyLevel', \ - SaferRecordEventLogEntry, N, <NONE>, 'SaferRecordEventLogEntry', \ - SaferSetLevelInformation, N, <NONE>, 'SaferSetLevelInformation', \ - SaferSetPolicyInformation, N, <NONE>, 'SaferSetPolicyInformation', \ - SaferiChangeRegistryScope, N, <NONE>, 'SaferiChangeRegistryScope', \ - SaferiCompareTokenLevels, N, <NONE>, 'SaferiCompareTokenLevels', \ - SaferiIsExecutableFileType, N, <NONE>, 'SaferiIsExecutableFileType', \ - SaferiPopulateDefaultsInRegistry, N, <NONE>, 'SaferiPopulateDefaultsInRegistry', \ - SaferiRecordEventLogEntry, N, <NONE>, 'SaferiRecordEventLogEntry', \ - SaferiReplaceProcessThreadTokens, N, <NONE>, 'SaferiReplaceProcessThreadTokens', \ - SaferiSearchMatchingHashRules, N, <NONE>, 'SaferiSearchMatchingHashRules', \ - SetAclInformation, N, <.pAcl, .pAclInformation, .nAclInformationLength, .dwAclInformationClass>, 'SetAclInformation', \ - SetEntriesInAccessList, A, <NONE>, 'SetEntriesInAccessListA', \ - SetEntriesInAccessList, W, <NONE>, 'SetEntriesInAccessListW', \ - SetEntriesInAcl, A, <.cCountOfExplicitEntries, .pListOfExplicitEntries, .OldAcl, .NewAcl>, 'SetEntriesInAclA', \ - SetEntriesInAcl, W, <.cCountOfExplicitEntries, .pListOfExplicitEntries, .OldAcl, .NewAcl>, 'SetEntriesInAclW', \ - SetEntriesInAuditList, A, <NONE>, 'SetEntriesInAuditListA', \ - SetEntriesInAuditList, W, <NONE>, 'SetEntriesInAuditListW', \ - SetFileSecurity, A, <.lpFileName, .SecurityInformation, .pSecurityDescriptor>, 'SetFileSecurityA', \ - SetFileSecurity, W, <.lpFileName, .SecurityInformation, .pSecurityDescriptor>, 'SetFileSecurityW', \ - SetInformationCodeAuthzLevel, W, <NONE>, 'SetInformationCodeAuthzLevelW', \ - SetInformationCodeAuthzPolicy, W, <NONE>, 'SetInformationCodeAuthzPolicyW', \ - SetKernelObjectSecurity, N, <.Handle, .SecurityInformation, .SecurityDescriptor>, 'SetKernelObjectSecurity', \ - SetNamedSecurityInfo, A, <.pObjectName, .ObjectType, .SecurityInfo, .psidOwner, .psidGroup, .pDacl, .pSacl>, 'SetNamedSecurityInfoA', \ - SetNamedSecurityInfoEx, A, <NONE>, 'SetNamedSecurityInfoExA', \ - SetNamedSecurityInfoEx, W, <NONE>, 'SetNamedSecurityInfoExW', \ - SetNamedSecurityInfo, W, <.pObjectName, .ObjectType, .SecurityInfo, .psidOwner, .psidGroup, .pDacl, .pSacl>, 'SetNamedSecurityInfoW', \ - SetPrivateObjectSecurity, N, <.SecurityInformation, .ModificationDescriptor, .ObjectsSecurityDescriptor, .GenericMapping, .Token, \ - >, 'SetPrivateObjectSecurity', \ - SetPrivateObjectSecurityEx, N, <.SecurityInformation, .ModificationDescriptor, .ObjectsSecurityDescriptor, .AutoInheritFlags, .GenericMapping, \ - .Token>, 'SetPrivateObjectSecurityEx', \ - SetSecurityDescriptorControl, N, <.pSecurityDescriptor, .ControlBitsOfInterest, .ControlBitsToSet>, 'SetSecurityDescriptorControl', \ - SetSecurityDescriptorDacl, N, <.pSecurityDescriptor, .bDaclPresent, .pDacl, .bDaclDefaulted>, 'SetSecurityDescriptorDacl', \ - SetSecurityDescriptorGroup, N, <.pSecurityDescriptor, .pGroup, .bGroupDefaulted>, 'SetSecurityDescriptorGroup', \ - SetSecurityDescriptorOwner, N, <.pSecurityDescriptor, .pOwner, .bOwnerDefaulted>, 'SetSecurityDescriptorOwner', \ - SetSecurityDescriptorRMControl, N, <.SecurityDescriptor, .RMControl>, 'SetSecurityDescriptorRMControl', \ - SetSecurityDescriptorSacl, N, <.pSecurityDescriptor, .bSaclPresent, .pSacl, .bSaclDefaulted>, 'SetSecurityDescriptorSacl', \ - SetSecurityInfo, N, <.handle, .ObjectType, .SecurityInfo, .psidOwner, .psidGroup, .pDacl, .pSacl>, 'SetSecurityInfo', \ - SetSecurityInfoEx, A, <NONE>, 'SetSecurityInfoExA', \ - SetSecurityInfoEx, W, <NONE>, 'SetSecurityInfoExW', \ - SetServiceBits, N, <.hServiceStatus, .dwServiceBits, .bSetBitsOn, .bUpdateImmediately>, 'SetServiceBits', \ - SetServiceObjectSecurity, N, <.hService, .dwSecurityInformation, .lpSecurityDescriptor>, 'SetServiceObjectSecurity', \ - SetServiceStatus, N, <.hServiceStatus, .lpServiceStatus>, 'SetServiceStatus', \ - SetThreadToken, N, <.Thread, .Token>, 'SetThreadToken', \ - SetTokenInformation, N, <.TokenHandle, .TokenInformationClass, .TokenInformation, .TokenInformationLength>, 'SetTokenInformation', \ - SetTraceCallback, N, <NONE>, 'SetTraceCallback', \ - SetUserFileEncryptionKey, N, <.pEncryptionCertificate>, 'SetUserFileEncryptionKey', \ - StartService, A, <.hService, .dwNumServiceArgs, .lpServiceArgVectors>, 'StartServiceA', \ - StartServiceCtrlDispatcher, A, <.lpServiceStartTable>, 'StartServiceCtrlDispatcherA', \ - StartServiceCtrlDispatcher, W, <.lpServiceStartTable>, 'StartServiceCtrlDispatcherW', \ - StartService, W, <.hService, .dwNumServiceArgs, .lpServiceArgVectors>, 'StartServiceW', \ - StartTrace, A, <NONE>, 'StartTraceA', \ - StartTrace, W, <NONE>, 'StartTraceW', \ - StopTrace, A, <NONE>, 'StopTraceA', \ - StopTrace, W, <NONE>, 'StopTraceW', \ - SynchronizeWindows31FilesAndWindowsNTRegistry, N, <NONE>, 'SynchronizeWindows31FilesAndWindowsNTRegistry', \ - SystemFunction001, N, <NONE>, 'SystemFunction001', \ - SystemFunction002, N, <NONE>, 'SystemFunction002', \ - SystemFunction003, N, <NONE>, 'SystemFunction003', \ - SystemFunction004, N, <NONE>, 'SystemFunction004', \ - SystemFunction005, N, <NONE>, 'SystemFunction005', \ - SystemFunction006, N, <NONE>, 'SystemFunction006', \ - SystemFunction007, N, <NONE>, 'SystemFunction007', \ - SystemFunction008, N, <NONE>, 'SystemFunction008', \ - SystemFunction009, N, <NONE>, 'SystemFunction009', \ - SystemFunction010, N, <NONE>, 'SystemFunction010', \ - SystemFunction011, N, <NONE>, 'SystemFunction011', \ - SystemFunction012, N, <NONE>, 'SystemFunction012', \ - SystemFunction013, N, <NONE>, 'SystemFunction013', \ - SystemFunction014, N, <NONE>, 'SystemFunction014', \ - SystemFunction015, N, <NONE>, 'SystemFunction015', \ - SystemFunction016, N, <NONE>, 'SystemFunction016', \ - SystemFunction017, N, <NONE>, 'SystemFunction017', \ - SystemFunction018, N, <NONE>, 'SystemFunction018', \ - SystemFunction019, N, <NONE>, 'SystemFunction019', \ - SystemFunction020, N, <NONE>, 'SystemFunction020', \ - SystemFunction021, N, <NONE>, 'SystemFunction021', \ - SystemFunction022, N, <NONE>, 'SystemFunction022', \ - SystemFunction023, N, <NONE>, 'SystemFunction023', \ - SystemFunction024, N, <NONE>, 'SystemFunction024', \ - SystemFunction025, N, <NONE>, 'SystemFunction025', \ - SystemFunction026, N, <NONE>, 'SystemFunction026', \ - SystemFunction027, N, <NONE>, 'SystemFunction027', \ - SystemFunction028, N, <NONE>, 'SystemFunction028', \ - SystemFunction029, N, <NONE>, 'SystemFunction029', \ - SystemFunction030, N, <NONE>, 'SystemFunction030', \ - SystemFunction031, N, <NONE>, 'SystemFunction031', \ - SystemFunction032, N, <NONE>, 'SystemFunction032', \ - SystemFunction033, N, <NONE>, 'SystemFunction033', \ - SystemFunction034, N, <NONE>, 'SystemFunction034', \ - SystemFunction035, N, <NONE>, 'SystemFunction035', \ - SystemFunction036, N, <NONE>, 'SystemFunction036', \ - SystemFunction040, N, <NONE>, 'SystemFunction040', \ - SystemFunction041, N, <NONE>, 'SystemFunction041', \ - TraceEvent, N, <NONE>, 'TraceEvent', \ - TraceEventInstance, N, <NONE>, 'TraceEventInstance', \ - TraceMessage, N, <NONE>, 'TraceMessage', \ - TraceMessageVa, N, <NONE>, 'TraceMessageVa', \ - TreeResetNamedSecurityInfo, A, <.pObjectName, .ObjectType, .SecurityInfo, .pOwner, .pGroup, .pDacl, .pSacl, .KeepExplicit, .fnProgress, \ - .ProgressInvokeSetting, .Args>, 'TreeResetNamedSecurityInfoA', \ - TreeResetNamedSecurityInfo, W, <.pObjectName, .ObjectType, .SecurityInfo, .pOwner, .pGroup, .pDacl, .pSacl, .KeepExplicit, .fnProgress, \ - .ProgressInvokeSetting, .Args>, 'TreeResetNamedSecurityInfoW', \ - TrusteeAccessToObject, A, <NONE>, 'TrusteeAccessToObjectA', \ - TrusteeAccessToObject, W, <NONE>, 'TrusteeAccessToObjectW', \ - UninstallApplication, N, <NONE>, 'UninstallApplication', \ - UnlockServiceDatabase, N, <.ScLock>, 'UnlockServiceDatabase', \ - UnregisterIdleTask, N, <NONE>, 'UnregisterIdleTask', \ - UnregisterTraceGuids, N, <NONE>, 'UnregisterTraceGuids', \ - UpdateTrace, A, <NONE>, 'UpdateTraceA', \ - UpdateTrace, W, <NONE>, 'UpdateTraceW', \ - WdmWmiServiceMain, N, <NONE>, 'WdmWmiServiceMain', \ - WmiCloseBlock, N, <NONE>, 'WmiCloseBlock', \ - WmiCloseTraceWithCursor, N, <NONE>, 'WmiCloseTraceWithCursor', \ - WmiConvertTimestamp, N, <NONE>, 'WmiConvertTimestamp', \ - WmiDevInstToInstanceName, A, <NONE>, 'WmiDevInstToInstanceNameA', \ - WmiDevInstToInstanceName, W, <NONE>, 'WmiDevInstToInstanceNameW', \ - WmiEnumerateGuids, N, <NONE>, 'WmiEnumerateGuids', \ - WmiExecuteMethod, A, <NONE>, 'WmiExecuteMethodA', \ - WmiExecuteMethod, W, <NONE>, 'WmiExecuteMethodW', \ - WmiFileHandleToInstanceName, A, <NONE>, 'WmiFileHandleToInstanceNameA', \ - WmiFileHandleToInstanceName, W, <NONE>, 'WmiFileHandleToInstanceNameW', \ - WmiFreeBuffer, N, <NONE>, 'WmiFreeBuffer', \ - WmiGetFirstTraceOffset, N, <NONE>, 'WmiGetFirstTraceOffset', \ - WmiGetNextEvent, N, <NONE>, 'WmiGetNextEvent', \ - WmiGetTraceHeader, N, <NONE>, 'WmiGetTraceHeader', \ - WmiMofEnumerateResources, A, <NONE>, 'WmiMofEnumerateResourcesA', \ - WmiMofEnumerateResources, W, <NONE>, 'WmiMofEnumerateResourcesW', \ - WmiNotificationRegistration, A, <NONE>, 'WmiNotificationRegistrationA', \ - WmiNotificationRegistration, W, <NONE>, 'WmiNotificationRegistrationW', \ - WmiOpenBlock, N, <NONE>, 'WmiOpenBlock', \ - WmiOpenTraceWithCursor, N, <NONE>, 'WmiOpenTraceWithCursor', \ - WmiParseTraceEvent, N, <NONE>, 'WmiParseTraceEvent', \ - WmiQueryAllData, A, <NONE>, 'WmiQueryAllDataA', \ - WmiQueryAllDataMultiple, A, <NONE>, 'WmiQueryAllDataMultipleA', \ - WmiQueryAllDataMultiple, W, <NONE>, 'WmiQueryAllDataMultipleW', \ - WmiQueryAllData, W, <NONE>, 'WmiQueryAllDataW', \ - WmiQueryGuidInformation, N, <NONE>, 'WmiQueryGuidInformation', \ - WmiQuerySingleInstance, A, <NONE>, 'WmiQuerySingleInstanceA', \ - WmiQuerySingleInstanceMultiple, A, <NONE>, 'WmiQuerySingleInstanceMultipleA', \ - WmiQuerySingleInstanceMultiple, W, <NONE>, 'WmiQuerySingleInstanceMultipleW', \ - WmiQuerySingleInstance, W, <NONE>, 'WmiQuerySingleInstanceW', \ - WmiReceiveNotifications, A, <NONE>, 'WmiReceiveNotificationsA', \ - WmiReceiveNotifications, W, <NONE>, 'WmiReceiveNotificationsW', \ - WmiSetSingleInstance, A, <NONE>, 'WmiSetSingleInstanceA', \ - WmiSetSingleInstance, W, <NONE>, 'WmiSetSingleInstanceW', \ - WmiSetSingleItem, A, <NONE>, 'WmiSetSingleItemA', \ - WmiSetSingleItem, W, <NONE>, 'WmiSetSingleItemW', \ - Wow64Win32ApiEntry, N, <NONE>, 'Wow64Win32ApiEntry', \ - WriteEncryptedFileRaw, N, <.pfImportCallback, .pvCallbackContext, .pvContext>, 'WriteEncryptedFileRaw' DELETED freshlib/imports/Win32/api/comctl32.inc Index: freshlib/imports/Win32/api/comctl32.inc ================================================================== --- freshlib/imports/Win32/api/comctl32.inc +++ /dev/null @@ -1,104 +0,0 @@ -; comctl32.dll API calls (ASCII) -import_proto comctl32, \ - AddMRUString, W, <NONE>, 'AddMRUStringW', \ - CreateMRUList, W, <NONE>, 'CreateMRUListW', \ - CreateMappedBitmap, N, <.hInstance, .idBitmap, .wFlags, .lpColorMap, .ByValumMaps>, 'CreateMappedBitmap', \ - CreatePropertySheetPage, A, <.lpcpropsheetpagea>, 'CreatePropertySheetPageA', \ - CreatePropertySheetPage, W, <.lpcpropsheetpagea>, 'CreatePropertySheetPageW', \ - CreateStatusWindow, A, <.dwStyle, .lpszText, .hWndParent, .wID>, 'CreateStatusWindowA', \ - CreateStatusWindow, W, <.dwStyle, .lpszText, .hWndParent, .wID>, 'CreateStatusWindowW', \ - CreateToolbar, N, <NONE>, 'CreateToolbar', \ - CreateToolbarEx, N, <.hWndParent, .dwStyle, .wID, .nBitmaps, .hBMInst, .wBMID, .lpButtons, .iNumButtons, .dxButton, .dyButton, .dxBitmap, .dyBitmap, .uStructSize>, 'CreateToolbarEx', \ - CreateUpDownControl, N, <.dwStyle, .x, .y, .cx, .cy, .hParent, .nID, .hInst, .hBuddy, .nUpper, .nLower, .nPos>, 'CreateUpDownControl', \ - DPA_Create, N, <NONE>, 'DPA_Create', \ - DPA_DeleteAllPtrs, N, <NONE>, 'DPA_DeleteAllPtrs', \ - DPA_DeletePtr, N, <NONE>, 'DPA_DeletePtr', \ - DPA_Destroy, N, <NONE>, 'DPA_Destroy', \ - DPA_DestroyCallback, N, <NONE>, 'DPA_DestroyCallback', \ - DPA_EnumCallback, N, <NONE>, 'DPA_EnumCallback', \ - DPA_GetPtr, N, <NONE>, 'DPA_GetPtr', \ - DPA_InsertPtr, N, <NONE>, 'DPA_InsertPtr', \ - DPA_Search, N, <NONE>, 'DPA_Search', \ - DPA_SetPtr, N, <NONE>, 'DPA_SetPtr', \ - DPA_Sort, N, <NONE>, 'DPA_Sort', \ - DSA_Create, N, <NONE>, 'DSA_Create', \ - DSA_DeleteAllItems, N, <NONE>, 'DSA_DeleteAllItems', \ - DSA_Destroy, N, <NONE>, 'DSA_Destroy', \ - DSA_DestroyCallback, N, <NONE>, 'DSA_DestroyCallback', \ - DSA_GetItemPtr, N, <NONE>, 'DSA_GetItemPtr', \ - DSA_InsertItem, N, <NONE>, 'DSA_InsertItem', \ - DefSubclassProc, N, <NONE>, 'DefSubclassProc', \ - DestroyPropertySheetPage, N, <.hpropsheetpage>, 'DestroyPropertySheetPage', \ - DllGetVersion, N, <NONE>, 'DllGetVersion', \ - DllInstall, N, <.bInstall, .pszCmdLine>, 'DllInstall', \ - DrawInsert, N, <.handParent, .hLB, .nItem>, 'DrawInsert', \ - DrawStatusText, A, <.hDC, .lprc, .pszText, .uFlags>, 'DrawStatusTextA', \ - DrawStatusText, W, <.hDC, .lprc, .pszText, .uFlags>, 'DrawStatusTextW', \ - EnumMRUList, W, <NONE>, 'EnumMRUListW', \ - FlatSB_EnableScrollBar, N, <.hwnd, .ByValt, .uint>, 'FlatSB_EnableScrollBar', \ - FlatSB_GetScrollInfo, N, <.hwnd, .code, .lpscrollinfo>, 'FlatSB_GetScrollInfo', \ - FlatSB_GetScrollPos, N, <.hwnd, .code>, 'FlatSB_GetScrollPos', \ - FlatSB_GetScrollProp, N, <.hwnd, .propIndex, .lpint>, 'FlatSB_GetScrollProp', \ - FlatSB_GetScrollRange, N, <.hwnd, .code, .lpint>, 'FlatSB_GetScrollRange', \ - FlatSB_SetScrollInfo, N, <.hwnd, .code, .lpscrollinfo, .fRedraw>, 'FlatSB_SetScrollInfo', \ - FlatSB_SetScrollPos, N, <.hwnd, .code, .pos, .fRedraw>, 'FlatSB_SetScrollPos', \ - FlatSB_SetScrollProp, N, <.hwnd, .index, .newValue, .bool>, 'FlatSB_SetScrollProp', \ - FlatSB_SetScrollRange, N, <.hwnd, .code, .min, .max, .fRedraw>, 'FlatSB_SetScrollRange', \ - FlatSB_ShowScrollBar, N, <.hwnd, .code, .bool>, 'FlatSB_ShowScrollBar', \ - FreeMRUList, N, <NONE>, 'FreeMRUList', \ - GetEffectiveClientRect, N, <.hWnd, .lprc, .lpInfo>, 'GetEffectiveClientRect', \ - GetMUILanguage, N, <VOID>, 'GetMUILanguage', \ - ImageList_Add, N, <.himl, .hbmImage, .hbmMask>, 'ImageList_Add', \ - ImageList_AddIcon, N, <NONE>, 'ImageList_AddIcon', \ - ImageList_AddMasked, N, <.himl, .hbmImage, .crMask>, 'ImageList_AddMasked', \ - ImageList_BeginDrag, N, <.himlTrack, .iTrack, .dxHotspot, .dyHotspot>, 'ImageList_BeginDrag', \ - ImageList_Copy, N, <.himlDst, .iDst, .himlSrc, .iSrc, .uFlags>, 'ImageList_Copy', \ - ImageList_Create, N, <.cx, .cy, .flags, .cInitial, .cGrow>, 'ImageList_Create', \ - ImageList_Destroy, N, <.himl>, 'ImageList_Destroy', \ - ImageList_DragEnter, N, <.hwndLock, .x, .y>, 'ImageList_DragEnter', \ - ImageList_DragLeave, N, <.hWndOwner>, 'ImageList_DragLeave', \ - ImageList_DragMove, N, <.x, .y>, 'ImageList_DragMove', \ - ImageList_DragShowNolock, N, <.fBoolean>, 'ImageList_DragShowNolock', \ - ImageList_Draw, N, <.himl, .i, .hdcDst, .x, .y, .fStyle>, 'ImageList_Draw', \ - ImageList_DrawEx, N, <.himl, .i, .hdcDst, .x, .y, .dx, .dy, .rgbBk, .rgbFg, .fStyle>, 'ImageList_DrawEx', \ - ImageList_DrawIndirect, N, <.pimldp>, 'ImageList_DrawIndirect', \ - ImageList_Duplicate, N, <.himl>, 'ImageList_Duplicate', \ - ImageList_EndDrag, N, <VOID>, 'ImageList_EndDrag', \ - ImageList_GetBkColor, N, <.himl>, 'ImageList_GetBkColor', \ - ImageList_GetDragImage, N, <.ppt, .pptHotspot>, 'ImageList_GetDragImage', \ - ImageList_GetFlags, N, <NONE>, 'ImageList_GetFlags', \ - ImageList_GetIcon, N, <.himl, .i, .flags>, 'ImageList_GetIcon', \ - ImageList_GetIconSize, N, <.himl, .cx, .cy>, 'ImageList_GetIconSize', \ - ImageList_GetImageCount, N, <.himl>, 'ImageList_GetImageCount', \ - ImageList_GetImageInfo, N, <.himl, .i, .pImageInfo>, 'ImageList_GetImageInfo', \ - ImageList_GetImageRect, N, <NONE>, 'ImageList_GetImageRect', \ - ImageList_LoadImage, A, <.hInst, .lpszbmp, .cx, .cGrow, .crMask, .uType, .uFlags>, 'ImageList_LoadImageA', \ - ImageList_LoadImage, W, <.hInst, .lpszbmp, .cx, .cGrow, .crMask, .uType, .uFlags>, 'ImageList_LoadImageW', \ - ImageList_Merge, N, <.himl1, .i1, .himl2, .i2, .dx, .dy>, 'ImageList_Merge', \ - ImageList_Read, N, <.pstm>, 'ImageList_Read', \ - ImageList_Remove, N, <.himl, .i>, 'ImageList_Remove', \ - ImageList_Replace, N, <.himl, .i, .hbmImage, .hbmMask>, 'ImageList_Replace', \ - ImageList_ReplaceIcon, N, <.himl, .i, .hicon>, 'ImageList_ReplaceIcon', \ - ImageList_SetBkColor, N, <.himl, .clrBk>, 'ImageList_SetBkColor', \ - ImageList_SetDragCursorImage, N, <.himlDrag, .iDrag, .dxHotspot, .dyHotspot>, 'ImageList_SetDragCursorImage', \ - ImageList_SetFilter, N, <NONE>, 'ImageList_SetFilter', \ - ImageList_SetFlags, N, <NONE>, 'ImageList_SetFlags', \ - ImageList_SetIconSize, N, <.himl, .cx, .cy>, 'ImageList_SetIconSize', \ - ImageList_SetImageCount, N, <.himl, .uNewCount>, 'ImageList_SetImageCount', \ - ImageList_SetOverlayImage, N, <.himl, .iImage, .iOverlay>, 'ImageList_SetOverlayImage', \ - ImageList_Write, N, <.himl, .pstm>, 'ImageList_Write', \ - InitCommonControls, N, <VOID>, 'InitCommonControls', \ - InitCommonControlsEx, N, <.pIcce>, 'InitCommonControlsEx', \ - InitMUILanguage, N, <.uiLang>, 'InitMUILanguage', \ - InitializeFlatSB, N, <.hwnd>, 'InitializeFlatSB', \ - LBItemFromPt, N, <.hLB, .pt, .bAutoScroll>, 'LBItemFromPt', \ - MakeDragList, N, <.hLB>, 'MakeDragList', \ - MenuHelp, N, <.uMsg, .wParam, .lParam, .hMainMenu, .hInst, .hwndStatus, .lpwIDs>, 'MenuHelp', \ - PropertySheet, A, <.lpcpropsheetheadera>, 'PropertySheetA', \ - PropertySheet, W, <.lpcpropsheetheadera>, 'PropertySheetW', \ - RemoveWindowSubclass, N, <NONE>, 'RemoveWindowSubclass', \ - SetWindowSubclass, N, <NONE>, 'SetWindowSubclass', \ - ShowHideMenuCtl, N, <.hWnd, .uFlags, .lpInfo>, 'ShowHideMenuCtl', \ - Str_SetPtr, W, <NONE>, 'Str_SetPtrW', \ - UninitializeFlatSB, N, <.hwnd>, 'UninitializeFlatSB', \ - _TrackMouseEvent, N, <NONE>, '_TrackMouseEvent' DELETED freshlib/imports/Win32/api/comdlg32.inc Index: freshlib/imports/Win32/api/comdlg32.inc ================================================================== --- freshlib/imports/Win32/api/comdlg32.inc +++ /dev/null @@ -1,28 +0,0 @@ -; comdlg32.dll API calls (ASCII) -import_proto comdlg32, \ - ChooseColor, A, <.pChoosecolor>, 'ChooseColorA', \ - ChooseColor, W, <.pChoosecolor>, 'ChooseColorW', \ - ChooseFont, A, <.pChoosefont>, 'ChooseFontA', \ - ChooseFont, W, <.pChoosefont>, 'ChooseFontW', \ - CommDlgExtendedError, N, <VOID>, 'CommDlgExtendedError', \ - FindText, A, <.pFindreplace>, 'FindTextA', \ - FindText, W, <.pFindreplace>, 'FindTextW', \ - GetFileTitle, A, <.lpszFile, .lpszTitle, .cbBuf>, 'GetFileTitleA', \ - GetFileTitle, W, <.lpszFile, .lpszTitle, .cbBuf>, 'GetFileTitleW', \ - GetOpenFileName, A, <.pOpenfilename>, 'GetOpenFileNameA', \ - GetOpenFileName, W, <.pOpenfilename>, 'GetOpenFileNameW', \ - GetSaveFileName, A, <.pOpenfilename>, 'GetSaveFileNameA', \ - GetSaveFileName, W, <.pOpenfilename>, 'GetSaveFileNameW', \ - LoadAlterBitmap, N, <NONE>, 'LoadAlterBitmap', \ - PageSetupDlg, A, <.pPagesetupdlg>, 'PageSetupDlgA', \ - PageSetupDlg, W, <.pPagesetupdlg>, 'PageSetupDlgW', \ - PrintDlg, A, <.pPrintdlg>, 'PrintDlgA', \ - PrintDlgEx, A, <.TLPPRINTDLGEXA>, 'PrintDlgExA', \ - PrintDlgEx, W, <.TLPPRINTDLGEXA>, 'PrintDlgExW', \ - PrintDlg, W, <.pPrintdlg>, 'PrintDlgW', \ - ReplaceText, A, <.pFindreplace>, 'ReplaceTextA', \ - ReplaceText, W, <.pFindreplace>, 'ReplaceTextW', \ - Ssync_ANSI_UNICODE_Struct_For_WO, W, <NONE>, 'Ssync_ANSI_UNICODE_Struct_For_WOW', \ - WantArrows, N, <NONE>, 'WantArrows', \ - dwLBSubclass, N, <NONE>, 'dwLBSubclass', \ - dwOKSubclass, N, <NONE>, 'dwOKSubclass' DELETED freshlib/imports/Win32/api/gdi32.inc Index: freshlib/imports/Win32/api/gdi32.inc ================================================================== --- freshlib/imports/Win32/api/gdi32.inc +++ /dev/null @@ -1,610 +0,0 @@ -; gdi32.dll API calls (ASCII) -import_proto gdi32, \ - AbortDoc, N, <.hdc>, 'AbortDoc', \ - AbortPath, N, <.hdc>, 'AbortPath', \ - AddFontMemResourceEx, N, <.pvoid, .dword, .pDword>, 'AddFontMemResourceEx', \ - AddFontResource, A, <.lpFileName>, 'AddFontResourceA', \ - AddFontResourceEx, A, <.lpcstr, .dword>, 'AddFontResourceExA', \ - AddFontResourceEx, W, <.lpcstr, .dword>, 'AddFontResourceExW', \ - AddFontResourceTracking, N, <NONE>, 'AddFontResourceTracking', \ - AddFontResource, W, <.lpFileName>, 'AddFontResourceW', \ - AngleArc, N, <.hdc, .x, .y, .dwRadius, .eStartAngle, .eSweepAngle>, 'AngleArc', \ - AnimatePalette, N, <.hPalette, .wStartIndex, .wNumEntries, .lpPaletteColors>, 'AnimatePalette', \ - AnyLinkedFonts, N, <NONE>, 'AnyLinkedFonts', \ - Arc, N, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'Arc', \ - ArcTo, N, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'ArcTo', \ - BRUSHOBJ_hGetColorTransform, N, <NONE>, 'BRUSHOBJ_hGetColorTransform', \ - BRUSHOBJ_pvAllocRbrush, N, <NONE>, 'BRUSHOBJ_pvAllocRbrush', \ - BRUSHOBJ_pvGetRbrush, N, <NONE>, 'BRUSHOBJ_pvGetRbrush', \ - BRUSHOBJ_ulGetBrushColor, N, <NONE>, 'BRUSHOBJ_ulGetBrushColor', \ - BeginPath, N, <.hdc>, 'BeginPath', \ - BitBlt, N, <.hDestDC, .x, .y, .nWidth, .nHeight, .hSrcDC, .xSrc, .ySrc, .dwRop>, 'BitBlt', \ - CLIPOBJ_bEnum, N, <NONE>, 'CLIPOBJ_bEnum', \ - CLIPOBJ_cEnumStart, N, <NONE>, 'CLIPOBJ_cEnumStart', \ - CLIPOBJ_ppoGetPath, N, <NONE>, 'CLIPOBJ_ppoGetPath', \ - CancelDC, N, <.hdc>, 'CancelDC', \ - CheckColorsInGamut, N, <.hdc, .lpv, .lpv2, .dw>, 'CheckColorsInGamut', \ - ChoosePixelFormat, N, <.hDC, .pPixelFormatDescriptor>, 'ChoosePixelFormat', \ - Chord, N, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'Chord', \ - ClearBitmapAttributes, N, <NONE>, 'ClearBitmapAttributes', \ - ClearBrushAttributes, N, <NONE>, 'ClearBrushAttributes', \ - CloseEnhMetaFile, N, <.hdc>, 'CloseEnhMetaFile', \ - CloseFigure, N, <.hdc>, 'CloseFigure', \ - CloseMetaFile, N, <.hMF>, 'CloseMetaFile', \ - ColorCorrectPalette, N, <.hdc, .hpalette, .dword>, 'ColorCorrectPalette', \ - ColorMatchToTarget, N, <.hdc, .hdc2, .dw>, 'ColorMatchToTarget', \ - CombineRgn, N, <.hDestRgn, .hSrcRgn1, .hSrcRgn2, .nCombineMode>, 'CombineRgn', \ - CombineTransform, N, <.lpxformResult, .lpxform1, .lpxform2>, 'CombineTransform', \ - CopyEnhMetaFile, A, <.hemfSrc, .lpszFile>, 'CopyEnhMetaFileA', \ - CopyEnhMetaFile, W, <.hemfSrc, .lpszFile>, 'CopyEnhMetaFileW', \ - CopyMetaFile, A, <.hMF, .lpFileName>, 'CopyMetaFileA', \ - CopyMetaFile, W, <.hMF, .lpFileName>, 'CopyMetaFileW', \ - CreateBitmap, N, <.nWidth, .nHeight, .nPlanes, .nBitCount, .lpBits>, 'CreateBitmap', \ - CreateBitmapIndirect, N, <.lpBitmap>, 'CreateBitmapIndirect', \ - CreateBrushIndirect, N, <.lpLogBrush>, 'CreateBrushIndirect', \ - CreateColorSpace, A, <.lplogcolorspace>, 'CreateColorSpaceA', \ - CreateColorSpace, W, <.lplogcolorspace>, 'CreateColorSpaceW', \ - CreateCompatibleBitmap, N, <.hdc, .nWidth, .nHeight>, 'CreateCompatibleBitmap', \ - CreateCompatibleDC, N, <.hdc>, 'CreateCompatibleDC', \ - CreateDC, A, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateDCA', \ - CreateDC, W, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateDCW', \ - CreateDIBPatternBrush, N, <.hPackedDIB, .wUsage>, 'CreateDIBPatternBrush', \ - CreateDIBPatternBrushPt, N, <.lpPackedDIB, .iUsage>, 'CreateDIBPatternBrushPt', \ - CreateDIBSection, N, <.hDC, .pBitmapInfo, .iUsage, .pVarBits, .hSection, .dwOffset>, 'CreateDIBSection', \ - CreateDIBitmap, N, <.hdc, .lpInfoHeader, .dwUsage, .lpInitBits, .lpInitInfo, .wUsage>, 'CreateDIBitmap', \ - CreateDiscardableBitmap, N, <.hdc, .nWidth, .nHeight>, 'CreateDiscardableBitmap', \ - CreateEllipticRgn, N, <.X1, .Y1, .X2, .Y2>, 'CreateEllipticRgn', \ - CreateEllipticRgnIndirect, N, <.lpRect>, 'CreateEllipticRgnIndirect', \ - CreateEnhMetaFile, A, <.hdcRef, .lpFileName, .lpRect, .lpDescription>, 'CreateEnhMetaFileA', \ - CreateEnhMetaFile, W, <.hdcRef, .lpFileName, .lpRect, .lpDescription>, 'CreateEnhMetaFileW', \ - CreateFont, A, <.height, .width, .escapement, .orientation, .weight, .italic, .underline, .strikeout, .charset, .OutputPrecision, .ClipPrecision, .quality, .PitchAndFamily, .Face>, 'CreateFontA', \ - CreateFontIndirect, A, <.lpLogFont>, 'CreateFontIndirectA', \ - CreateFontIndirectEx, A, <.ENUMLOGFONTEXDVA>, 'CreateFontIndirectExA', \ - CreateFontIndirectEx, W, <.ENUMLOGFONTEXDVA>, 'CreateFontIndirectExW', \ - CreateFontIndirect, W, <.lpLogFont>, 'CreateFontIndirectW', \ - CreateFont, W, <.height, .width, .escapement, .orientation, .weight, .italic, .underline, .strikeout, .charset, .OutputPrecision, .ClipPrecision, .quality, .PitchAndFamily, .Face>, 'CreateFontW', \ - CreateHalftonePalette, N, <.hdc>, 'CreateHalftonePalette', \ - CreateHatchBrush, N, <.nIndex, .crColor>, 'CreateHatchBrush', \ - CreateIC, A, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateICA', \ - CreateIC, W, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateICW', \ - CreateMetaFile, A, <.lpString>, 'CreateMetaFileA', \ - CreateMetaFile, W, <.lpString>, 'CreateMetaFileW', \ - CreatePalette, N, <.lpLogPalette>, 'CreatePalette', \ - CreatePatternBrush, N, <.hBitmap>, 'CreatePatternBrush', \ - CreatePen, N, <.nPenStyle, .nWidth, .crColor>, 'CreatePen', \ - CreatePenIndirect, N, <.lpLogPen>, 'CreatePenIndirect', \ - CreatePolyPolygonRgn, N, <.lpPoint, .lpPolyCounts, .nCount, .nPolyFillMode>, 'CreatePolyPolygonRgn', \ - CreatePolygonRgn, N, <.lpPoint, .nCount, .nPolyFillMode>, 'CreatePolygonRgn', \ - CreateRectRgn, N, <.X1, .Y1, .X2, .Y2>, 'CreateRectRgn', \ - CreateRectRgnIndirect, N, <.lpRect>, 'CreateRectRgnIndirect', \ - CreateRoundRectRgn, N, <.X1, .Y1, .X2, .Y2, .X3, .Y3>, 'CreateRoundRectRgn', \ - CreateScalableFontResource, A, <.fHidden, .lpszResourceFile, .lpszFontFile, .lpszCurrentPath>, 'CreateScalableFontResourceA', \ - CreateScalableFontResource, W, <.fHidden, .lpszResourceFile, .lpszFontFile, .lpszCurrentPath>, 'CreateScalableFontResourceW', \ - CreateSolidBrush, N, <.crColor>, 'CreateSolidBrush', \ - DPtoLP, N, <.hdc, .lpPoint, .nCount>, 'DPtoLP', \ - DdEntry0, N, <NONE>, 'DdEntry0', \ - DdEntry1, N, <NONE>, 'DdEntry1', \ - DdEntry10, N, <NONE>, 'DdEntry10', \ - DdEntry11, N, <NONE>, 'DdEntry11', \ - DdEntry12, N, <NONE>, 'DdEntry12', \ - DdEntry13, N, <NONE>, 'DdEntry13', \ - DdEntry14, N, <NONE>, 'DdEntry14', \ - DdEntry15, N, <NONE>, 'DdEntry15', \ - DdEntry16, N, <NONE>, 'DdEntry16', \ - DdEntry17, N, <NONE>, 'DdEntry17', \ - DdEntry18, N, <NONE>, 'DdEntry18', \ - DdEntry19, N, <NONE>, 'DdEntry19', \ - DdEntry2, N, <NONE>, 'DdEntry2', \ - DdEntry20, N, <NONE>, 'DdEntry20', \ - DdEntry21, N, <NONE>, 'DdEntry21', \ - DdEntry22, N, <NONE>, 'DdEntry22', \ - DdEntry23, N, <NONE>, 'DdEntry23', \ - DdEntry24, N, <NONE>, 'DdEntry24', \ - DdEntry25, N, <NONE>, 'DdEntry25', \ - DdEntry26, N, <NONE>, 'DdEntry26', \ - DdEntry27, N, <NONE>, 'DdEntry27', \ - DdEntry28, N, <NONE>, 'DdEntry28', \ - DdEntry29, N, <NONE>, 'DdEntry29', \ - DdEntry3, N, <NONE>, 'DdEntry3', \ - DdEntry30, N, <NONE>, 'DdEntry30', \ - DdEntry31, N, <NONE>, 'DdEntry31', \ - DdEntry32, N, <NONE>, 'DdEntry32', \ - DdEntry33, N, <NONE>, 'DdEntry33', \ - DdEntry34, N, <NONE>, 'DdEntry34', \ - DdEntry35, N, <NONE>, 'DdEntry35', \ - DdEntry36, N, <NONE>, 'DdEntry36', \ - DdEntry37, N, <NONE>, 'DdEntry37', \ - DdEntry38, N, <NONE>, 'DdEntry38', \ - DdEntry39, N, <NONE>, 'DdEntry39', \ - DdEntry4, N, <NONE>, 'DdEntry4', \ - DdEntry40, N, <NONE>, 'DdEntry40', \ - DdEntry41, N, <NONE>, 'DdEntry41', \ - DdEntry42, N, <NONE>, 'DdEntry42', \ - DdEntry43, N, <NONE>, 'DdEntry43', \ - DdEntry44, N, <NONE>, 'DdEntry44', \ - DdEntry45, N, <NONE>, 'DdEntry45', \ - DdEntry46, N, <NONE>, 'DdEntry46', \ - DdEntry47, N, <NONE>, 'DdEntry47', \ - DdEntry48, N, <NONE>, 'DdEntry48', \ - DdEntry49, N, <NONE>, 'DdEntry49', \ - DdEntry5, N, <NONE>, 'DdEntry5', \ - DdEntry50, N, <NONE>, 'DdEntry50', \ - DdEntry51, N, <NONE>, 'DdEntry51', \ - DdEntry52, N, <NONE>, 'DdEntry52', \ - DdEntry53, N, <NONE>, 'DdEntry53', \ - DdEntry54, N, <NONE>, 'DdEntry54', \ - DdEntry55, N, <NONE>, 'DdEntry55', \ - DdEntry56, N, <NONE>, 'DdEntry56', \ - DdEntry6, N, <NONE>, 'DdEntry6', \ - DdEntry7, N, <NONE>, 'DdEntry7', \ - DdEntry8, N, <NONE>, 'DdEntry8', \ - DdEntry9, N, <NONE>, 'DdEntry9', \ - DeleteColorSpace, N, <.hcolorspace>, 'DeleteColorSpace', \ - DeleteDC, N, <.hdc>, 'DeleteDC', \ - DeleteEnhMetaFile, N, <.hemf>, 'DeleteEnhMetaFile', \ - DeleteMetaFile, N, <.hMF>, 'DeleteMetaFile', \ - DeleteObject, N, <.hObject>, 'DeleteObject', \ - DescribePixelFormat, N, <.hDC, .n, .un, .lpPixelFormatDescriptor>, 'DescribePixelFormat', \ - DeviceCapabilitiesEx, A, <NONE>, 'DeviceCapabilitiesExA', \ - DeviceCapabilitiesEx, W, <NONE>, 'DeviceCapabilitiesExW', \ - DrawEscape, N, <.hdc, .nEscape, .cbInput, .lpszInData>, 'DrawEscape', \ - Ellipse, N, <.hdc, .X1, .Y1, .X2, .Y2>, 'Ellipse', \ - EnableEUDC, N, <NONE>, 'EnableEUDC', \ - EndDoc, N, <.hDC>, 'EndDoc', \ - EndFormPage, N, <.hdc>, 'EndFormPage', \ - EndPage, N, <.hdc>, 'EndPage', \ - EndPath, N, <.hdc>, 'EndPath', \ - EngAcquireSemaphore, N, <NONE>, 'EngAcquireSemaphore', \ - EngAlphaBlend, N, <NONE>, 'EngAlphaBlend', \ - EngAssociateSurface, N, <NONE>, 'EngAssociateSurface', \ - EngBitBlt, N, <NONE>, 'EngBitBlt', \ - EngCheckAbort, N, <NONE>, 'EngCheckAbort', \ - EngComputeGlyphSet, N, <NONE>, 'EngComputeGlyphSet', \ - EngCopyBits, N, <NONE>, 'EngCopyBits', \ - EngCreateBitmap, N, <NONE>, 'EngCreateBitmap', \ - EngCreateClip, N, <NONE>, 'EngCreateClip', \ - EngCreateDeviceBitmap, N, <NONE>, 'EngCreateDeviceBitmap', \ - EngCreateDeviceSurface, N, <NONE>, 'EngCreateDeviceSurface', \ - EngCreatePalette, N, <NONE>, 'EngCreatePalette', \ - EngCreateSemaphore, N, <NONE>, 'EngCreateSemaphore', \ - EngDeleteClip, N, <NONE>, 'EngDeleteClip', \ - EngDeletePalette, N, <NONE>, 'EngDeletePalette', \ - EngDeletePath, N, <NONE>, 'EngDeletePath', \ - EngDeleteSemaphore, N, <NONE>, 'EngDeleteSemaphore', \ - EngDeleteSurface, N, <NONE>, 'EngDeleteSurface', \ - EngEraseSurface, N, <NONE>, 'EngEraseSurface', \ - EngFillPath, N, <NONE>, 'EngFillPath', \ - EngFindResource, N, <NONE>, 'EngFindResource', \ - EngFreeModule, N, <NONE>, 'EngFreeModule', \ - EngGetCurrentCodePage, N, <NONE>, 'EngGetCurrentCodePage', \ - EngGetDriverName, N, <NONE>, 'EngGetDriverName', \ - EngGetPrinterDataFileName, N, <NONE>, 'EngGetPrinterDataFileName', \ - EngGradientFill, N, <NONE>, 'EngGradientFill', \ - EngLineTo, N, <NONE>, 'EngLineTo', \ - EngLoadModule, N, <NONE>, 'EngLoadModule', \ - EngLockSurface, N, <NONE>, 'EngLockSurface', \ - EngMarkBandingSurface, N, <NONE>, 'EngMarkBandingSurface', \ - EngMultiByteToUnicodeN, N, <NONE>, 'EngMultiByteToUnicodeN', \ - EngMultiByteToWideChar, N, <NONE>, 'EngMultiByteToWideChar', \ - EngPaint, N, <NONE>, 'EngPaint', \ - EngPlgBlt, N, <NONE>, 'EngPlgBlt', \ - EngQueryEMFInfo, N, <NONE>, 'EngQueryEMFInfo', \ - EngQueryLocalTime, N, <NONE>, 'EngQueryLocalTime', \ - EngReleaseSemaphore, N, <NONE>, 'EngReleaseSemaphore', \ - EngStretchBlt, N, <NONE>, 'EngStretchBlt', \ - EngStretchBltROP, N, <NONE>, 'EngStretchBltROP', \ - EngStrokeAndFillPath, N, <NONE>, 'EngStrokeAndFillPath', \ - EngStrokePath, N, <NONE>, 'EngStrokePath', \ - EngTextOut, N, <NONE>, 'EngTextOut', \ - EngTransparentBlt, N, <NONE>, 'EngTransparentBlt', \ - EngUnicodeToMultiByteN, N, <NONE>, 'EngUnicodeToMultiByteN', \ - EngUnlockSurface, N, <NONE>, 'EngUnlockSurface', \ - EngWideCharToMultiByte, N, <NONE>, 'EngWideCharToMultiByte', \ - EnumEnhMetaFile, N, <.hdc, .hemf, .lpEnhMetaFunc, .lpData, .lpRect>, 'EnumEnhMetaFile', \ - EnumFontFamilies, A, <.hdc, .lpszFamily, .lpEnumFontFamProc, .lParam>, 'EnumFontFamiliesA', \ - EnumFontFamiliesEx, A, <.hdc, .lpLogFont, .lpEnumFontProc, .lParam, .dw>, 'EnumFontFamiliesExA', \ - EnumFontFamiliesEx, W, <.hdc, .lpLogFont, .lpEnumFontProc, .lParam, .dw>, 'EnumFontFamiliesExW', \ - EnumFontFamilies, W, <.hdc, .lpszFamily, .lpEnumFontFamProc, .lParam>, 'EnumFontFamiliesW', \ - EnumFonts, A, <.hDC, .lpsz, .lpFontEnumProc, .lParam>, 'EnumFontsA', \ - EnumFonts, W, <.hDC, .lpsz, .lpFontEnumProc, .lParam>, 'EnumFontsW', \ - EnumICMProfiles, A, <.hdc, .icmEnumProc, .lParam>, 'EnumICMProfilesA', \ - EnumICMProfiles, W, <.hdc, .icmEnumProc, .lParam>, 'EnumICMProfilesW', \ - EnumMetaFile, N, <.hDC, .hMetafile, .lpMFEnumProc, .lParam>, 'EnumMetaFile', \ - EnumObjects, N, <.hDC, .n, .lpGOBJEnumProc, .lpVoid>, 'EnumObjects', \ - EqualRgn, N, <.hSrcRgn1, .hSrcRgn2>, 'EqualRgn', \ - Escape, N, <.hdc, .nEscape, .nCount, .lpInData, .lpOutData>, 'Escape', \ - EudcLoadLink, W, <NONE>, 'EudcLoadLinkW', \ - EudcUnloadLink, W, <NONE>, 'EudcUnloadLinkW', \ - ExcludeClipRect, N, <.hdc, .X1, .Y1, .X2, .Y2>, 'ExcludeClipRect', \ - ExtCreatePen, N, <.dwPenStyle, .dwWidth, .lplb, .dwStyleCount, .lpStyle>, 'ExtCreatePen', \ - ExtCreateRegion, N, <.lpXform, .nCount, .lpRgnData>, 'ExtCreateRegion', \ - ExtEscape, N, <.hdc, .nEscape, .cbInput, .lpszInData, .cbOutput, .lpszOutData>, 'ExtEscape', \ - ExtFloodFill, N, <.hdc, .x, .y, .crColor, .wFillType>, 'ExtFloodFill', \ - ExtSelectClipRgn, N, <.hdc, .hRgn, .fnMode>, 'ExtSelectClipRgn', \ - ExtTextOut, A, <.hdc, .x, .y, .wOptions, .lpRect, .lpString, .nCount, .lpDx>, 'ExtTextOutA', \ - ExtTextOut, W, <.hdc, .x, .y, .wOptions, .lpRect, .lpString, .nCount, .lpDx>, 'ExtTextOutW', \ - FONTOBJ_cGetAllGlyphHandles, N, <NONE>, 'FONTOBJ_cGetAllGlyphHandles', \ - FONTOBJ_cGetGlyphs, N, <NONE>, 'FONTOBJ_cGetGlyphs', \ - FONTOBJ_pQueryGlyphAttrs, N, <NONE>, 'FONTOBJ_pQueryGlyphAttrs', \ - FONTOBJ_pfdg, N, <NONE>, 'FONTOBJ_pfdg', \ - FONTOBJ_pifi, N, <NONE>, 'FONTOBJ_pifi', \ - FONTOBJ_pvTrueTypeFontFile, N, <NONE>, 'FONTOBJ_pvTrueTypeFontFile', \ - FONTOBJ_pxoGetXform, N, <NONE>, 'FONTOBJ_pxoGetXform', \ - FONTOBJ_vGetInfo, N, <NONE>, 'FONTOBJ_vGetInfo', \ - FillPath, N, <.hdc>, 'FillPath', \ - FillRgn, N, <.hdc, .hRgn, .hBrush>, 'FillRgn', \ - FixBrushOrgEx, N, <.hDC, .n1, .n2, .lpPoint>, 'FixBrushOrgEx', \ - FlattenPath, N, <.hdc>, 'FlattenPath', \ - FloodFill, N, <.hdc, .x, .y, .crColor>, 'FloodFill', \ - FontIsLinked, N, <NONE>, 'FontIsLinked', \ - FrameRgn, N, <.hdc, .hRgn, .hBrush, .nWidth, .nHeight>, 'FrameRgn', \ - GdiAddFontResource, W, <NONE>, 'GdiAddFontResourceW', \ - GdiAddGlsBounds, N, <NONE>, 'GdiAddGlsBounds', \ - GdiAddGlsRecord, N, <NONE>, 'GdiAddGlsRecord', \ - GdiAlphaBlend, N, <NONE>, 'GdiAlphaBlend', \ - GdiArtificialDecrementDriver, N, <NONE>, 'GdiArtificialDecrementDriver', \ - GdiCleanCacheDC, N, <NONE>, 'GdiCleanCacheDC', \ - GdiComment, N, <.hdc, .cbSize, .lpData>, 'GdiComment', \ - GdiConsoleTextOut, N, <NONE>, 'GdiConsoleTextOut', \ - GdiConvertAndCheckDC, N, <NONE>, 'GdiConvertAndCheckDC', \ - GdiConvertBitmap, N, <NONE>, 'GdiConvertBitmap', \ - GdiConvertBitmapV5, N, <NONE>, 'GdiConvertBitmapV5', \ - GdiConvertBrush, N, <NONE>, 'GdiConvertBrush', \ - GdiConvertDC, N, <NONE>, 'GdiConvertDC', \ - GdiConvertEnhMetaFile, N, <NONE>, 'GdiConvertEnhMetaFile', \ - GdiConvertFont, N, <NONE>, 'GdiConvertFont', \ - GdiConvertMetaFilePict, N, <NONE>, 'GdiConvertMetaFilePict', \ - GdiConvertPalette, N, <NONE>, 'GdiConvertPalette', \ - GdiConvertRegion, N, <NONE>, 'GdiConvertRegion', \ - GdiConvertToDevmode, W, <NONE>, 'GdiConvertToDevmodeW', \ - GdiCreateLocalEnhMetaFile, N, <NONE>, 'GdiCreateLocalEnhMetaFile', \ - GdiCreateLocalMetaFilePict, N, <NONE>, 'GdiCreateLocalMetaFilePict', \ - GdiDeleteLocalDC, N, <NONE>, 'GdiDeleteLocalDC', \ - GdiDeleteSpoolFileHandle, N, <NONE>, 'GdiDeleteSpoolFileHandle', \ - GdiDescribePixelFormat, N, <NONE>, 'GdiDescribePixelFormat', \ - GdiDllInitialize, N, <NONE>, 'GdiDllInitialize', \ - GdiDrawStream, N, <NONE>, 'GdiDrawStream', \ - GdiEndDocEMF, N, <NONE>, 'GdiEndDocEMF', \ - GdiEndPageEMF, N, <NONE>, 'GdiEndPageEMF', \ - GdiEntry1, N, <NONE>, 'GdiEntry1', \ - GdiEntry10, N, <NONE>, 'GdiEntry10', \ - GdiEntry11, N, <NONE>, 'GdiEntry11', \ - GdiEntry12, N, <NONE>, 'GdiEntry12', \ - GdiEntry13, N, <NONE>, 'GdiEntry13', \ - GdiEntry14, N, <NONE>, 'GdiEntry14', \ - GdiEntry15, N, <NONE>, 'GdiEntry15', \ - GdiEntry16, N, <NONE>, 'GdiEntry16', \ - GdiEntry2, N, <NONE>, 'GdiEntry2', \ - GdiEntry3, N, <NONE>, 'GdiEntry3', \ - GdiEntry4, N, <NONE>, 'GdiEntry4', \ - GdiEntry5, N, <NONE>, 'GdiEntry5', \ - GdiEntry6, N, <NONE>, 'GdiEntry6', \ - GdiEntry7, N, <NONE>, 'GdiEntry7', \ - GdiEntry8, N, <NONE>, 'GdiEntry8', \ - GdiEntry9, N, <NONE>, 'GdiEntry9', \ - GdiFixUpHandle, N, <NONE>, 'GdiFixUpHandle', \ - GdiFlush, N, <VOID>, 'GdiFlush', \ - GdiFullscreenControl, N, <NONE>, 'GdiFullscreenControl', \ - GdiGetBatchLimit, N, <VOID>, 'GdiGetBatchLimit', \ - GdiGetBitmapBitsSize, N, <NONE>, 'GdiGetBitmapBitsSize', \ - GdiGetCharDimensions, N, <NONE>, 'GdiGetCharDimensions', \ - GdiGetCodePage, N, <NONE>, 'GdiGetCodePage', \ - GdiGetDC, N, <NONE>, 'GdiGetDC', \ - GdiGetDevmodeForPage, N, <NONE>, 'GdiGetDevmodeForPage', \ - GdiGetLocalBrush, N, <NONE>, 'GdiGetLocalBrush', \ - GdiGetLocalDC, N, <NONE>, 'GdiGetLocalDC', \ - GdiGetLocalFont, N, <NONE>, 'GdiGetLocalFont', \ - GdiGetPageCount, N, <NONE>, 'GdiGetPageCount', \ - GdiGetPageHandle, N, <NONE>, 'GdiGetPageHandle', \ - GdiGetSpoolFileHandle, N, <NONE>, 'GdiGetSpoolFileHandle', \ - GdiGetSpoolMessage, N, <NONE>, 'GdiGetSpoolMessage', \ - GdiGradientFill, N, <NONE>, 'GdiGradientFill', \ - GdiInitSpool, N, <NONE>, 'GdiInitSpool', \ - GdiInitializeLanguagePack, N, <NONE>, 'GdiInitializeLanguagePack', \ - GdiIsMetaFileDC, N, <NONE>, 'GdiIsMetaFileDC', \ - GdiIsMetaPrintDC, N, <NONE>, 'GdiIsMetaPrintDC', \ - GdiIsPlayMetafileDC, N, <NONE>, 'GdiIsPlayMetafileDC', \ - GdiPlayDCScript, N, <NONE>, 'GdiPlayDCScript', \ - GdiPlayEMF, N, <NONE>, 'GdiPlayEMF', \ - GdiPlayJournal, N, <NONE>, 'GdiPlayJournal', \ - GdiPlayPageEMF, N, <NONE>, 'GdiPlayPageEMF', \ - GdiPlayPrivatePageEMF, N, <NONE>, 'GdiPlayPrivatePageEMF', \ - GdiPlayScript, N, <NONE>, 'GdiPlayScript', \ - GdiPrinterThunk, N, <NONE>, 'GdiPrinterThunk', \ - GdiProcessSetup, N, <NONE>, 'GdiProcessSetup', \ - GdiQueryFonts, N, <NONE>, 'GdiQueryFonts', \ - GdiQueryTable, N, <NONE>, 'GdiQueryTable', \ - GdiRealizationInfo, N, <NONE>, 'GdiRealizationInfo', \ - GdiReleaseDC, N, <NONE>, 'GdiReleaseDC', \ - GdiReleaseLocalDC, N, <NONE>, 'GdiReleaseLocalDC', \ - GdiResetDCEMF, N, <NONE>, 'GdiResetDCEMF', \ - GdiSetAttrs, N, <NONE>, 'GdiSetAttrs', \ - GdiSetBatchLimit, N, <.dwLimit>, 'GdiSetBatchLimit', \ - GdiSetLastError, N, <NONE>, 'GdiSetLastError', \ - GdiSetPixelFormat, N, <NONE>, 'GdiSetPixelFormat', \ - GdiSetServerAttr, N, <NONE>, 'GdiSetServerAttr', \ - GdiStartDocEMF, N, <NONE>, 'GdiStartDocEMF', \ - GdiStartPageEMF, N, <NONE>, 'GdiStartPageEMF', \ - GdiSwapBuffers, N, <NONE>, 'GdiSwapBuffers', \ - GdiTransparentBlt, N, <NONE>, 'GdiTransparentBlt', \ - GdiValidateHandle, N, <NONE>, 'GdiValidateHandle', \ - GetArcDirection, N, <.hdc>, 'GetArcDirection', \ - GetAspectRatioFilterEx, N, <.hdc, .lpAspectRatio>, 'GetAspectRatioFilterEx', \ - GetBitmapAttributes, N, <NONE>, 'GetBitmapAttributes', \ - GetBitmapBits, N, <.hBitmap, .dwCount, .lpBits>, 'GetBitmapBits', \ - GetBitmapDimensionEx, N, <.hBitmap, .lpDimension>, 'GetBitmapDimensionEx', \ - GetBkColor, N, <.hdc>, 'GetBkColor', \ - GetBkMode, N, <.hdc>, 'GetBkMode', \ - GetBoundsRect, N, <.hdc, .lprcBounds, .flags>, 'GetBoundsRect', \ - GetBrushAttributes, N, <NONE>, 'GetBrushAttributes', \ - GetBrushOrgEx, N, <.hDC, .lpPoint>, 'GetBrushOrgEx', \ - GetCharABCWidths, A, <.hdc, .uFirstChar, .uLastChar, .lpabc>, 'GetCharABCWidthsA', \ - GetCharABCWidthsFloat, A, <.hdc, .iFirstChar, .iLastChar, .lpABCF>, 'GetCharABCWidthsFloatA', \ - GetCharABCWidthsFloat, W, <.hdc, .iFirstChar, .iLastChar, .lpABCF>, 'GetCharABCWidthsFloatW', \ - GetCharABCWidthsI, N, <.hdc, .uint, .lpword, .lpabc>, 'GetCharABCWidthsI', \ - GetCharABCWidths, W, <.hdc, .uFirstChar, .uLastChar, .lpabc>, 'GetCharABCWidthsW', \ - GetCharWidth32, A, <.hdc, .iFirstChar, .iLastChar, .lpBuffer>, 'GetCharWidth32A', \ - GetCharWidth32, W, <.hdc, .iFirstChar, .iLastChar, .lpBuffer>, 'GetCharWidth32W', \ - GetCharWidth, A, <.hdc, .wFirstChar, .wLastChar, .lpBuffer>, 'GetCharWidthA', \ - GetCharWidthFloat, A, <.hdc, .iFirstChar, .iLastChar, .pxBuffer>, 'GetCharWidthFloatA', \ - GetCharWidthFloat, W, <.hdc, .iFirstChar, .iLastChar, .pxBuffer>, 'GetCharWidthFloatW', \ - GetCharWidthI, N, <.hdc, .uint, .lpword, .lpint>, 'GetCharWidthI', \ - GetCharWidthInfo, N, <NONE>, 'GetCharWidthInfo', \ - GetCharWidth, W, <.hdc, .wFirstChar, .wLastChar, .lpBuffer>, 'GetCharWidthW', \ - GetCharacterPlacement, A, <.hdc, .lpsz, .n1, .n2, .lpGcpResults, .dw>, 'GetCharacterPlacementA', \ - GetCharacterPlacement, W, <.hdc, .lpsz, .n1, .n2, .lpGcpResults, .dw>, 'GetCharacterPlacementW', \ - GetClipBox, N, <.hdc, .lpRect>, 'GetClipBox', \ - GetClipRgn, N, <.hdc, .hRgn>, 'GetClipRgn', \ - GetColorAdjustment, N, <.hdc, .lpca>, 'GetColorAdjustment', \ - GetColorSpace, N, <.hdc>, 'GetColorSpace', \ - GetCurrentObject, N, <.hdc, .uObjectType>, 'GetCurrentObject', \ - GetCurrentPositionEx, N, <.hdc, .lpPoint>, 'GetCurrentPositionEx', \ - GetDCBrushColor, N, <.hdc>, 'GetDCBrushColor', \ - GetDCOrgEx, N, <.hdc, .lpPoint>, 'GetDCOrgEx', \ - GetDCPenColor, N, <.hdc>, 'GetDCPenColor', \ - GetDIBColorTable, N, <.hDC, .un1, .un2, .pRGBQuad>, 'GetDIBColorTable', \ - GetDIBits, N, <.aHDC, .hBitmap, .nStartScan, .nNumScans, .lpBits, .lpBI, .wUsage>, 'GetDIBits', \ - GetDeviceCaps, N, <.hdc, .nIndex>, 'GetDeviceCaps', \ - GetDeviceGammaRamp, N, <.hdc, .lpv>, 'GetDeviceGammaRamp', \ - GetETM, N, <NONE>, 'GetETM', \ - GetEUDCTimeStamp, N, <NONE>, 'GetEUDCTimeStamp', \ - GetEUDCTimeStampEx, W, <NONE>, 'GetEUDCTimeStampExW', \ - GetEnhMetaFile, A, <.lpszMetaFile>, 'GetEnhMetaFileA', \ - GetEnhMetaFileBits, N, <.hemf, .cbBuffer, .lpbBuffer>, 'GetEnhMetaFileBits', \ - GetEnhMetaFileDescription, A, <.hemf, .cchBuffer, .lpszDescription>, 'GetEnhMetaFileDescriptionA', \ - GetEnhMetaFileDescription, W, <.hemf, .cchBuffer, .lpszDescription>, 'GetEnhMetaFileDescriptionW', \ - GetEnhMetaFileHeader, N, <.hemf, .cbBuffer, .lpemh>, 'GetEnhMetaFileHeader', \ - GetEnhMetaFilePaletteEntries, N, <.hemf, .cEntries, .lppe>, 'GetEnhMetaFilePaletteEntries', \ - GetEnhMetaFilePixelFormat, N, <.henhmetafile, .uint, .PIXELFORMATDESCRIPTOR>, 'GetEnhMetaFilePixelFormat', \ - GetEnhMetaFile, W, <.lpszMetaFile>, 'GetEnhMetaFileW', \ - GetFontAssocStatus, N, <NONE>, 'GetFontAssocStatus', \ - GetFontData, N, <.hdc, .dwTable, .dwOffset, .lpvBuffer, .cbData>, 'GetFontData', \ - GetFontLanguageInfo, N, <.hdc>, 'GetFontLanguageInfo', \ - GetFontResourceInfo, W, <NONE>, 'GetFontResourceInfoW', \ - GetFontUnicodeRanges, N, <.hdc, .LPGLYPHSET>, 'GetFontUnicodeRanges', \ - GetGlyphIndices, A, <.hdc, .lpcstr, .ByValt, .lpword, .dword>, 'GetGlyphIndicesA', \ - GetGlyphIndices, W, <.hdc, .lpcstr, .ByValt, .lpword, .dword>, 'GetGlyphIndicesW', \ - GetGlyphOutline, A, <.hdc, .uChar, .fuFormat, .lpgm, .cbBuffer, .lpBuffer, .lpmat2>, 'GetGlyphOutlineA', \ - GetGlyphOutline, W, <.hdc, .uChar, .fuFormat, .lpgm, .cbBuffer, .lpBuffer, .lpmat2>, 'GetGlyphOutlineW', \ - GetGlyphOutlineWow, N, <NONE>, 'GetGlyphOutlineWow', \ - GetGraphicsMode, N, <.hdc>, 'GetGraphicsMode', \ - GetHFONT, N, <NONE>, 'GetHFONT', \ - GetICMProfile, A, <.hdc, .dw, .lpStr>, 'GetICMProfileA', \ - GetICMProfile, W, <.hdc, .dw, .lpStr>, 'GetICMProfileW', \ - GetKerningPairs, A, <.hdc, .cPairs, .lpkrnpair>, 'GetKerningPairsA', \ - GetKerningPairs, W, <.hdc, .cPairs, .lpkrnpair>, 'GetKerningPairsW', \ - GetLayout, N, <.hdc>, 'GetLayout', \ - GetLogColorSpace, A, <.hcolorspace, .lplogcolorspace, .dw>, 'GetLogColorSpaceA', \ - GetLogColorSpace, W, <.hcolorspace, .lplogcolorspace, .dw>, 'GetLogColorSpaceW', \ - GetMapMode, N, <.hdc>, 'GetMapMode', \ - GetMetaFile, A, <.lpFileName>, 'GetMetaFileA', \ - GetMetaFileBitsEx, N, <.hMF, .nSize, .lpvData>, 'GetMetaFileBitsEx', \ - GetMetaFile, W, <.lpFileName>, 'GetMetaFileW', \ - GetMetaRgn, N, <.hdc, .hRgn>, 'GetMetaRgn', \ - GetMiterLimit, N, <.hdc, .peLimit>, 'GetMiterLimit', \ - GetNearestColor, N, <.hdc, .crColor>, 'GetNearestColor', \ - GetNearestPaletteIndex, N, <.hPalette, .crColor>, 'GetNearestPaletteIndex', \ - GetObject, A, <.hObject, .nCount, .lpObject>, 'GetObjectA', \ - GetObjectType, N, <.hgdiobj>, 'GetObjectType', \ - GetObject, W, <.hObject, .nCount, .lpObject>, 'GetObjectW', \ - GetOutlineTextMetrics, A, <.hdc, .cbData, .lpotm>, 'GetOutlineTextMetricsA', \ - GetOutlineTextMetrics, W, <.hdc, .cbData, .lpotm>, 'GetOutlineTextMetricsW', \ - GetPaletteEntries, N, <.hPalette, .wStartIndex, .wNumEntries, .lpPaletteEntries>, 'GetPaletteEntries', \ - GetPath, N, <.hdc, .lpPoint, .lpTypes, .nSize>, 'GetPath', \ - GetPixel, N, <.hdc, .x, .y>, 'GetPixel', \ - GetPixelFormat, N, <.hDC>, 'GetPixelFormat', \ - GetPolyFillMode, N, <.hdc>, 'GetPolyFillMode', \ - GetROP2, N, <.hdc>, 'GetROP2', \ - GetRandomRgn, N, <.hdc, .hrgn, .ByValt>, 'GetRandomRgn', \ - GetRasterizerCaps, N, <.lpraststat, .cb>, 'GetRasterizerCaps', \ - GetRegionData, N, <.hRgn, .dwCount, .lpRgnData>, 'GetRegionData', \ - GetRelAbs, N, <NONE>, 'GetRelAbs', \ - GetRgnBox, N, <.hRgn, .lpRect>, 'GetRgnBox', \ - GetStockObject, N, <.fnObject>, 'GetStockObject', \ - GetStretchBltMode, N, <.hdc>, 'GetStretchBltMode', \ - GetStringBitmap, A, <NONE>, 'GetStringBitmapA', \ - GetStringBitmap, W, <NONE>, 'GetStringBitmapW', \ - GetSystemPaletteEntries, N, <.hdc, .wStartIndex, .wNumEntries, .lpPaletteEntries>, 'GetSystemPaletteEntries', \ - GetSystemPaletteUse, N, <.hdc>, 'GetSystemPaletteUse', \ - GetTextAlign, N, <.hdc>, 'GetTextAlign', \ - GetTextCharacterExtra, N, <.hdc>, 'GetTextCharacterExtra', \ - GetTextCharset, N, <.hdc>, 'GetTextCharset', \ - GetTextCharsetInfo, N, <.hdc, .lpSig, .dwFlags>, 'GetTextCharsetInfo', \ - GetTextColor, N, <.hdc>, 'GetTextColor', \ - GetTextExtentExPoint, A, <.hdc, .lpszStr, .cchString, .nMaxExtent, .lpnFit, .alpDx, .lpSize>, 'GetTextExtentExPointA', \ - GetTextExtentExPointI, N, <.hdc, .lpword, .ByValt, .lpint, .lpsize>, 'GetTextExtentExPointI', \ - GetTextExtentExPoint, W, <.hdc, .lpszStr, .cchString, .nMaxExtent, .lpnFit, .alpDx, .lpSize>, 'GetTextExtentExPointW', \ - GetTextExtentExPointWPri, N, <NONE>, 'GetTextExtentExPointWPri', \ - GetTextExtentPoint32, A, <.hdc, .lpsz, .cbString, .lpSize>, 'GetTextExtentPoint32A', \ - GetTextExtentPoint32, W, <.hdc, .lpsz, .cbString, .lpSize>, 'GetTextExtentPoint32W', \ - GetTextExtentPoint, A, <.hdc, .lpszString, .cbString, .lpSize>, 'GetTextExtentPointA', \ - GetTextExtentPointI, N, <.hdc, .lpword, .ByValt, .lpsize>, 'GetTextExtentPointI', \ - GetTextExtentPoint, W, <.hdc, .lpszString, .cbString, .lpSize>, 'GetTextExtentPointW', \ - GetTextFace, A, <.hdc, .nCount, .lpFacename>, 'GetTextFaceA', \ - GetTextFaceAlias, W, <NONE>, 'GetTextFaceAliasW', \ - GetTextFace, W, <.hdc, .nCount, .lpFacename>, 'GetTextFaceW', \ - GetTextMetrics, A, <.hdc, .lpMetrics>, 'GetTextMetricsA', \ - GetTextMetrics, W, <.hdc, .lpMetrics>, 'GetTextMetricsW', \ - GetTransform, N, <NONE>, 'GetTransform', \ - GetViewportExtEx, N, <.hdc, .lpSize>, 'GetViewportExtEx', \ - GetViewportOrgEx, N, <.hdc, .lpPoint>, 'GetViewportOrgEx', \ - GetWinMetaFileBits, N, <.hemf, .cbBuffer, .lpbBuffer, .fnMapMode, .hdcRef>, 'GetWinMetaFileBits', \ - GetWindowExtEx, N, <.hdc, .lpSize>, 'GetWindowExtEx', \ - GetWindowOrgEx, N, <.hdc, .lpPoint>, 'GetWindowOrgEx', \ - GetWorldTransform, N, <.hdc, .lpXform>, 'GetWorldTransform', \ - HT_Get8BPPFormatPalette, N, <NONE>, 'HT_Get8BPPFormatPalette', \ - HT_Get8BPPMaskPalette, N, <NONE>, 'HT_Get8BPPMaskPalette', \ - IntersectClipRect, N, <.hdc, .X1, .Y1, .X2, .Y2>, 'IntersectClipRect', \ - InvertRgn, N, <.hdc, .hRgn>, 'InvertRgn', \ - IsValidEnhMetaRecord, N, <NONE>, 'IsValidEnhMetaRecord', \ - IsValidEnhMetaRecordOffExt, N, <NONE>, 'IsValidEnhMetaRecordOffExt', \ - LPtoDP, N, <.hdc, .lpPoint, .nCount>, 'LPtoDP', \ - LineDD, A, <.ByValt, .pLineddaproc, .lparam>, 'LineDDA', \ - LineTo, N, <.hdc, .x, .y>, 'LineTo', \ - MaskBlt, N, <.hdcDest, .nXDest, .nYDest, .nWidth, .nHeight, .hdcSrc, .nXSrc, .nYSrc, .hbmMask, .xMask, .yMask, .dwRop>, 'MaskBlt', \ - MirrorRgn, N, <NONE>, 'MirrorRgn', \ - ModifyWorldTransform, N, <.hdc, .lpXform, .iMode>, 'ModifyWorldTransform', \ - MoveToEx, N, <.hdc, .x, .y, .lpPoint>, 'MoveToEx', \ - NamedEscape, N, <NONE>, 'NamedEscape', \ - OffsetClipRgn, N, <.hdc, .x, .y>, 'OffsetClipRgn', \ - OffsetRgn, N, <.hRgn, .x, .y>, 'OffsetRgn', \ - OffsetViewportOrgEx, N, <.hdc, .nX, .nY, .lpPoint>, 'OffsetViewportOrgEx', \ - OffsetWindowOrgEx, N, <.hdc, .nX, .nY, .lpPoint>, 'OffsetWindowOrgEx', \ - PATHOBJ_bEnum, N, <NONE>, 'PATHOBJ_bEnum', \ - PATHOBJ_bEnumClipLines, N, <NONE>, 'PATHOBJ_bEnumClipLines', \ - PATHOBJ_vEnumStart, N, <NONE>, 'PATHOBJ_vEnumStart', \ - PATHOBJ_vEnumStartClipLines, N, <NONE>, 'PATHOBJ_vEnumStartClipLines', \ - PATHOBJ_vGetBounds, N, <NONE>, 'PATHOBJ_vGetBounds', \ - PaintRgn, N, <.hdc, .hRgn>, 'PaintRgn', \ - PatBlt, N, <.hdc, .x, .y, .nWidth, .nHeight, .dwRop>, 'PatBlt', \ - PathToRegion, N, <.hdc>, 'PathToRegion', \ - Pie, N, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'Pie', \ - PlayEnhMetaFile, N, <.hdc, .hemf, .lpRect>, 'PlayEnhMetaFile', \ - PlayEnhMetaFileRecord, N, <.hdc, .lpHandletable, .lpEnhMetaRecord, .nHandles>, 'PlayEnhMetaFileRecord', \ - PlayMetaFile, N, <.hdc, .hMF>, 'PlayMetaFile', \ - PlayMetaFileRecord, N, <.hdc, .lpHandletable, .lpMetaRecord, .nHandles>, 'PlayMetaFileRecord', \ - PlgBlt, N, <.hdcDest, .lpPoint, .hdcSrc, .nXSrc, .nYSrc, .nWidth, .nHeight, .hbmMask, .xMask, .yMask>, 'PlgBlt', \ - PolyBezier, N, <.hdc, .lppt, .cPoints>, 'PolyBezier', \ - PolyBezierTo, N, <.hdc, .lppt, .cCount>, 'PolyBezierTo', \ - PolyDraw, N, <.hdc, .lppt, .lpbTypes, .cCount>, 'PolyDraw', \ - PolyPatBlt, N, <NONE>, 'PolyPatBlt', \ - PolyPolygon, N, <.hdc, .lpPoint, .lpPolyCounts, .nCount>, 'PolyPolygon', \ - PolyPolyline, N, <.hdc, .lppt, .lpdwPolyPoints, .cCount>, 'PolyPolyline', \ - PolyTextOut, A, <.hdc, .pptxt, .cStrings>, 'PolyTextOutA', \ - PolyTextOut, W, <.hdc, .pptxt, .cStrings>, 'PolyTextOutW', \ - Polygon, N, <.hdc, .lpPoint, .nCount>, 'Polygon', \ - Polyline, N, <.hdc, .lpPoint, .nCount>, 'Polyline', \ - PolylineTo, N, <.hdc, .lppt, .cCount>, 'PolylineTo', \ - PtInRegion, N, <.hRgn, .x, .y>, 'PtInRegion', \ - PtVisible, N, <.hdc, .x, .y>, 'PtVisible', \ - QueryFontAssocStatus, N, <NONE>, 'QueryFontAssocStatus', \ - RealizePalette, N, <.hdc>, 'RealizePalette', \ - RectInRegion, N, <.hRgn, .lpRect>, 'RectInRegion', \ - RectVisible, N, <.hdc, .lpRect>, 'RectVisible', \ - Rectangle, N, <.hdc, .X1, .Y1, .X2, .Y2>, 'Rectangle', \ - RemoveFontMemResourceEx, N, <.handle>, 'RemoveFontMemResourceEx', \ - RemoveFontResource, A, <.lpFileName>, 'RemoveFontResourceA', \ - RemoveFontResourceEx, A, <.lpcstr, .dword, .DESIGNVECTOR>, 'RemoveFontResourceExA', \ - RemoveFontResourceEx, W, <.lpcstr, .dword, .DESIGNVECTOR>, 'RemoveFontResourceExW', \ - RemoveFontResourceTracking, N, <NONE>, 'RemoveFontResourceTracking', \ - RemoveFontResource, W, <.lpFileName>, 'RemoveFontResourceW', \ - ResetDC, A, <.hdc, .lpInitData>, 'ResetDCA', \ - ResetDC, W, <.hdc, .lpInitData>, 'ResetDCW', \ - ResizePalette, N, <.hPalette, .nNumEntries>, 'ResizePalette', \ - RestoreDC, N, <.hdc, .nSavedDC>, 'RestoreDC', \ - RoundRect, N, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3>, 'RoundRect', \ - STROBJ_bEnum, N, <NONE>, 'STROBJ_bEnum', \ - STROBJ_bEnumPositionsOnly, N, <NONE>, 'STROBJ_bEnumPositionsOnly', \ - STROBJ_bGetAdvanceWidths, N, <NONE>, 'STROBJ_bGetAdvanceWidths', \ - STROBJ_dwGetCodePage, N, <NONE>, 'STROBJ_dwGetCodePage', \ - STROBJ_vEnumStart, N, <NONE>, 'STROBJ_vEnumStart', \ - SaveDC, N, <.hdc>, 'SaveDC', \ - ScaleViewportExtEx, N, <.hdc, .nXnum, .nXdenom, .nYnum, .nYdenom, .lpSize>, 'ScaleViewportExtEx', \ - ScaleWindowExtEx, N, <.hdc, .nXnum, .nXdenom, .nYnum, .nYdenom, .lpSize>, 'ScaleWindowExtEx', \ - SelectBrushLocal, N, <NONE>, 'SelectBrushLocal', \ - SelectClipPath, N, <.hdc, .iMode>, 'SelectClipPath', \ - SelectClipRgn, N, <.hdc, .hRgn>, 'SelectClipRgn', \ - SelectFontLocal, N, <NONE>, 'SelectFontLocal', \ - SelectObject, N, <.hdc, .hObject>, 'SelectObject', \ - SelectPalette, N, <.hdc, .hPalette, .bForceBackground>, 'SelectPalette', \ - SetAbortProc, N, <.hDC, .lpAbortProc>, 'SetAbortProc', \ - SetArcDirection, N, <.hdc, .ArcDirection>, 'SetArcDirection', \ - SetBitmapAttributes, N, <NONE>, 'SetBitmapAttributes', \ - SetBitmapBits, N, <.hBitmap, .dwCount, .lpBits>, 'SetBitmapBits', \ - SetBitmapDimensionEx, N, <.hbm, .nX, .nY, .lpSize>, 'SetBitmapDimensionEx', \ - SetBkColor, N, <.hdc, .crColor>, 'SetBkColor', \ - SetBkMode, N, <.hdc, .nBkMode>, 'SetBkMode', \ - SetBoundsRect, N, <.hdc, .lprcBounds, .flags>, 'SetBoundsRect', \ - SetBrushAttributes, N, <NONE>, 'SetBrushAttributes', \ - SetBrushOrgEx, N, <.hdc, .nXOrg, .nYOrg, .lppt>, 'SetBrushOrgEx', \ - SetColorAdjustment, N, <.hdc, .lpca>, 'SetColorAdjustment', \ - SetColorSpace, N, <.hdc, .hcolorspace>, 'SetColorSpace', \ - SetDCBrushColor, N, <.hdc, .colorref>, 'SetDCBrushColor', \ - SetDCPenColor, N, <.hdc, .colorref>, 'SetDCPenColor', \ - SetDIBColorTable, N, <.hDC, .un1, .un2, .pcRGBQuad>, 'SetDIBColorTable', \ - SetDIBits, N, <.hdc, .hBitmap, .nStartScan, .nNumScans, .lpBits, .lpBI, .wUsage>, 'SetDIBits', \ - SetDIBitsToDevice, N, <.hdc, .x, .y, .dx, .dy, .SrcX, .SrcY, .Scan, .NumScans, .Bits, .BitsInfo, .wUsage>, 'SetDIBitsToDevice', \ - SetDeviceGammaRamp, N, <.hdc, .lpv>, 'SetDeviceGammaRamp', \ - SetEnhMetaFileBits, N, <.cbBuffer, .lpData>, 'SetEnhMetaFileBits', \ - SetFontEnumeration, N, <NONE>, 'SetFontEnumeration', \ - SetGraphicsMode, N, <.hdc, .iMode>, 'SetGraphicsMode', \ - SetICMMode, N, <.hdc, .n>, 'SetICMMode', \ - SetICMProfile, A, <.hdc, .lpStr>, 'SetICMProfileA', \ - SetICMProfile, W, <.hdc, .lpStr>, 'SetICMProfileW', \ - SetLayout, N, <.hdc, .dword>, 'SetLayout', \ - SetLayoutWidth, N, <NONE>, 'SetLayoutWidth', \ - SetMagicColors, N, <NONE>, 'SetMagicColors', \ - SetMapMode, N, <.hdc, .nMapMode>, 'SetMapMode', \ - SetMapperFlags, N, <.hdc, .dwFlag>, 'SetMapperFlags', \ - SetMetaFileBitsEx, N, <.nSize, .lpData>, 'SetMetaFileBitsEx', \ - SetMetaRgn, N, <.hdc>, 'SetMetaRgn', \ - SetMiterLimit, N, <.hdc, .eNewLimit, .peOldLimit>, 'SetMiterLimit', \ - SetPaletteEntries, N, <.hPalette, .wStartIndex, .wNumEntries, .lpPaletteEntries>, 'SetPaletteEntries', \ - SetPixel, N, <.hdc, .x, .y, .crColor>, 'SetPixel', \ - SetPixelFormat, N, <.hDC, .n, .pcPixelFormatDescriptor>, 'SetPixelFormat', \ - SetPixelV, N, <.hdc, .x, .y, .crColor>, 'SetPixelV', \ - SetPolyFillMode, N, <.hdc, .nPolyFillMode>, 'SetPolyFillMode', \ - SetROP2, N, <.hdc, .nDrawMode>, 'SetROP2', \ - SetRectRgn, N, <.hRgn, .X1, .Y1, .X2, .Y2>, 'SetRectRgn', \ - SetRelAbs, N, <NONE>, 'SetRelAbs', \ - SetStretchBltMode, N, <.hdc, .nStretchMode>, 'SetStretchBltMode', \ - SetSystemPaletteUse, N, <.hdc, .wUsage>, 'SetSystemPaletteUse', \ - SetTextAlign, N, <.hdc, .fMode>, 'SetTextAlign', \ - SetTextCharacterExtra, N, <.hdc, .nCharExtra>, 'SetTextCharacterExtra', \ - SetTextColor, N, <.hdc, .crColor>, 'SetTextColor', \ - SetTextJustification, N, <.hdc, .nBreakExtra, .nBreakCount>, 'SetTextJustification', \ - SetViewportExtEx, N, <.hdc, .nX, .nY, .lpSize>, 'SetViewportExtEx', \ - SetViewportOrgEx, N, <.hdc, .nX, .nY, .lpPoint>, 'SetViewportOrgEx', \ - SetVirtualResolution, N, <NONE>, 'SetVirtualResolution', \ - SetWinMetaFileBits, N, <.cbBuffer, .lpbBuffer, .hdcRef, .lpmfp>, 'SetWinMetaFileBits', \ - SetWindowExtEx, N, <.hdc, .nX, .nY, .lpSize>, 'SetWindowExtEx', \ - SetWindowOrgEx, N, <.hdc, .nX, .nY, .lpPoint>, 'SetWindowOrgEx', \ - SetWorldTransform, N, <.hdc, .lpXform>, 'SetWorldTransform', \ - StartDoc, A, <.hdc, .lpdi>, 'StartDocA', \ - StartDoc, W, <.hdc, .lpdi>, 'StartDocW', \ - StartFormPage, N, <.hdc>, 'StartFormPage', \ - StartPage, N, <.hdc>, 'StartPage', \ - StretchBlt, N, <.hdc, .x, .y, .nWidth, .nHeight, .hSrcDC, .xSrc, .ySrc, .nSrcWidth, .nSrcHeight, .dwRop>, 'StretchBlt', \ - StretchDIBits, N, <.hdc, .x, .y, .dx, .dy, .SrcX, .SrcY, .wSrcWidth, .wSrcHeight, .lpBits, .lpBitsInfo, .wUsage, .dwRop>, 'StretchDIBits', \ - StrokeAndFillPath, N, <.hdc>, 'StrokeAndFillPath', \ - StrokePath, N, <.hdc>, 'StrokePath', \ - SwapBuffers, N, <.hDC>, 'SwapBuffers', \ - TextOut, A, <.hdc, .x, .y, .lpString, .nCount>, 'TextOutA', \ - TextOut, W, <.hdc, .x, .y, .lpString, .nCount>, 'TextOutW', \ - TranslateCharsetInfo, N, <.lpSrc, .lpcs, .dwFlags>, 'TranslateCharsetInfo', \ - UnloadNetworkFonts, N, <NONE>, 'UnloadNetworkFonts', \ - UnrealizeObject, N, <.hObject>, 'UnrealizeObject', \ - UpdateColors, N, <.hdc>, 'UpdateColors', \ - UpdateICMRegKey, A, <.dword, .lpstr, .uint>, 'UpdateICMRegKeyA', \ - UpdateICMRegKey, W, <.dword, .lpstr, .uint>, 'UpdateICMRegKeyW', \ - WidenPath, N, <.hdc>, 'WidenPath', \ - XFORMOBJ_bApplyXform, N, <NONE>, 'XFORMOBJ_bApplyXform', \ - XFORMOBJ_iGetXform, N, <NONE>, 'XFORMOBJ_iGetXform', \ - XLATEOBJ_cGetPalette, N, <NONE>, 'XLATEOBJ_cGetPalette', \ - XLATEOBJ_hGetColorTransform, N, <NONE>, 'XLATEOBJ_hGetColorTransform', \ - XLATEOBJ_iXlate, N, <NONE>, 'XLATEOBJ_iXlate', \ - XLATEOBJ_piVector, N, <NONE>, 'XLATEOBJ_piVector', \ - bInitSystemAndFontsDirectories, W, <NONE>, 'bInitSystemAndFontsDirectoriesW', \ - bMakePathName, W, <NONE>, 'bMakePathNameW', \ - cGetTTFFromFOT, N, <NONE>, 'cGetTTFFromFOT', \ - gdiPlaySpoolStream, N, <NONE>, 'gdiPlaySpoolStream' DELETED freshlib/imports/Win32/api/kernel32.inc Index: freshlib/imports/Win32/api/kernel32.inc ================================================================== --- freshlib/imports/Win32/api/kernel32.inc +++ /dev/null @@ -1,946 +0,0 @@ -; kernel32.dll API calls (ASCII) -import_proto kernel32, \ - ActivateActCtx, N, <NONE>, 'ActivateActCtx', \ - AddAtom, A, <.lpString>, 'AddAtomA', \ - AddAtom, W, <.lpString>, 'AddAtomW', \ - AddConsoleAlias, A, <NONE>, 'AddConsoleAliasA', \ - AddConsoleAlias, W, <NONE>, 'AddConsoleAliasW', \ - AddLocalAlternateComputerName, A, <NONE>, 'AddLocalAlternateComputerNameA', \ - AddLocalAlternateComputerName, W, <NONE>, 'AddLocalAlternateComputerNameW', \ - AddRefActCtx, N, <NONE>, 'AddRefActCtx', \ - AddVectoredExceptionHandler, N, <NONE>, 'AddVectoredExceptionHandler', \ - AllocConsole, N, <VOID>, 'AllocConsole', \ - AllocateUserPhysicalPages, N, <.hProcess, .NumberOfPages, .PageArray>, 'AllocateUserPhysicalPages', \ - AreFileApisANSI, N, <VOID>, 'AreFileApisANSI', \ - AssignProcessToJobObject, N, <.hJob, .hProcess>, 'AssignProcessToJobObject', \ - AttachConsole, N, <NONE>, 'AttachConsole', \ - BackupRead, N, <.hFile, .lpBuffer, .nNumberOfBytesToRead, .lpNumberOfBytesRead, .bAbort, .bProcessSecurity, .lpContext>, 'BackupRead', \ - BackupSeek, N, <.hFile, .dwLowBytesToSeek, .dwHighBytesToSeek, .lpdwLowByteSeeked, .lpdwHighByteSeeked, .lpContext>, 'BackupSeek', \ - BackupWrite, N, <.hFile, .lpBuffer, .nNumberOfBytesToWrite, .lpNumberOfBytesWritten, .bAbort, .bProcessSecurity, .lpContext>, 'BackupWrite', \ - BaseCheckAppcompatCache, N, <NONE>, 'BaseCheckAppcompatCache', \ - BaseCleanupAppcompatCache, N, <NONE>, 'BaseCleanupAppcompatCache', \ - BaseCleanupAppcompatCacheSupport, N, <NONE>, 'BaseCleanupAppcompatCacheSupport', \ - BaseDumpAppcompatCache, N, <NONE>, 'BaseDumpAppcompatCache', \ - BaseFlushAppcompatCache, N, <NONE>, 'BaseFlushAppcompatCache', \ - BaseInitAppcompatCache, N, <NONE>, 'BaseInitAppcompatCache', \ - BaseInitAppcompatCacheSupport, N, <NONE>, 'BaseInitAppcompatCacheSupport', \ - BaseProcessInitPostImport, N, <NONE>, 'BaseProcessInitPostImport', \ - BaseQueryModuleData, N, <NONE>, 'BaseQueryModuleData', \ - BaseUpdateAppcompatCache, N, <NONE>, 'BaseUpdateAppcompatCache', \ - BasepCheckWinSaferRestrictions, N, <NONE>, 'BasepCheckWinSaferRestrictions', \ - Beep, N, <.dwFreq, .dwDuration>, 'Beep', \ - BeginUpdateResource, A, <.pFileName, .bDeleteExistingResources>, 'BeginUpdateResourceA', \ - BeginUpdateResource, W, <.pFileName, .bDeleteExistingResources>, 'BeginUpdateResourceW', \ - BindIoCompletionCallback, N, <.FileHandle, .lFunction, .Flags>, 'BindIoCompletionCallback', \ - BuildCommDCB, A, <.lpDef, .lpDCB>, 'BuildCommDCBA', \ - BuildCommDCBAndTimeouts, A, <.lpDef, .lpDCB, .lpCommTimeouts>, 'BuildCommDCBAndTimeoutsA', \ - BuildCommDCBAndTimeouts, W, <.lpDef, .lpDCB, .lpCommTimeouts>, 'BuildCommDCBAndTimeoutsW', \ - BuildCommDCB, W, <.lpDef, .lpDCB>, 'BuildCommDCBW', \ - CallNamedPipe, A, <.lpNamedPipeName, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesRead, .nTimeOut>, 'CallNamedPipeA', \ - CallNamedPipe, W, <.lpNamedPipeName, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesRead, .nTimeOut>, 'CallNamedPipeW', \ - CancelDeviceWakeupRequest, N, <.hDevice>, 'CancelDeviceWakeupRequest', \ - CancelIo, N, <.hFile>, 'CancelIo', \ - CancelTimerQueueTimer, N, <.TimerQueue, .Timer>, 'CancelTimerQueueTimer', \ - CancelWaitableTimer, N, <.hTimer>, 'CancelWaitableTimer', \ - ChangeTimerQueueTimer, N, <.TimerQueue, .Timer, .DueTime, .Period>, 'ChangeTimerQueueTimer', \ - CheckNameLegalDOS8Dot3, A, <NONE>, 'CheckNameLegalDOS8Dot3A', \ - CheckNameLegalDOS8Dot3, W, <NONE>, 'CheckNameLegalDOS8Dot3W', \ - CheckRemoteDebuggerPresent, N, <NONE>, 'CheckRemoteDebuggerPresent', \ - ClearCommBreak, N, <.nCid>, 'ClearCommBreak', \ - ClearCommError, N, <.hFile, .lpErrors, .lpStat>, 'ClearCommError', \ - CloseConsoleHandle, N, <NONE>, 'CloseConsoleHandle', \ - CloseHandle, N, <.hObject>, 'CloseHandle', \ - CloseProfileUserMapping, N, <NONE>, 'CloseProfileUserMapping', \ - CmdBatNotification, N, <NONE>, 'CmdBatNotification', \ - CommConfigDialog, A, <.lpszName, .hWnd, .lpCC>, 'CommConfigDialogA', \ - CommConfigDialog, W, <.lpszName, .hWnd, .lpCC>, 'CommConfigDialogW', \ - CompareFileTime, N, <.lpFileTime1, .lpFileTime2>, 'CompareFileTime', \ - CompareString, A, <.Locale, .dwCmpFlags, .lpString1, .cchCount1, .lpString2, .cchCount2>, 'CompareStringA', \ - CompareString, W, <.Locale, .dwCmpFlags, .lpString1, .cchCount1, .lpString2, .cchCount2>, 'CompareStringW', \ - ConnectNamedPipe, N, <.hNamedPipe, .lpOverlapped>, 'ConnectNamedPipe', \ - ConsoleMenuControl, N, <NONE>, 'ConsoleMenuControl', \ - ContinueDebugEvent, N, <.dwProcessId, .dwThreadId, .dwContinueStatus>, 'ContinueDebugEvent', \ - ConvertDefaultLocale, N, <.Locale>, 'ConvertDefaultLocale', \ - ConvertFiberToThread, N, <NONE>, 'ConvertFiberToThread', \ - ConvertThreadToFiber, N, <.lpParameter>, 'ConvertThreadToFiber', \ - CopyFile, A, <.lpExistingFileName, .lpNewFileName, .bFailIfExists>, 'CopyFileA', \ - CopyFileEx, A, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .pbCancel, .dwCopyFlags>, 'CopyFileExA', \ - CopyFileEx, W, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .pbCancel, .dwCopyFlags>, 'CopyFileExW', \ - CopyFile, W, <.lpExistingFileName, .lpNewFileName, .bFailIfExists>, 'CopyFileW', \ - CopyLZFile, N, <.n1, .n2>, 'CopyLZFile', \ - CreateActCtx, A, <NONE>, 'CreateActCtxA', \ - CreateActCtx, W, <NONE>, 'CreateActCtxW', \ - CreateConsoleScreenBuffer, N, <.dwDesiredAccess, .dwShareMode, .lpSecurityAttributes, .dwFlags, .lpScreenBufferData>, 'CreateConsoleScreenBuffer', \ - CreateDirectory, A, <.lpPathName, .lpSecurityAttributes>, 'CreateDirectoryA', \ - CreateDirectoryEx, A, <.lpTemplateDirectory, .lpNewDirectory, .lpSecurityAttributes>, 'CreateDirectoryExA', \ - CreateDirectoryEx, W, <.lpTemplateDirectory, .lpNewDirectory, .lpSecurityAttributes>, 'CreateDirectoryExW', \ - CreateDirectory, W, <.lpPathName, .lpSecurityAttributes>, 'CreateDirectoryW', \ - CreateEvent, A, <.lpEventAttributes, .bManualReset, .bInitialState, .lpName>, 'CreateEventA', \ - CreateEvent, W, <.lpEventAttributes, .bManualReset, .bInitialState, .lpName>, 'CreateEventW', \ - CreateFiber, N, <.dwStackSize, .lpStartAddress, .lpParameter>, 'CreateFiber', \ - CreateFiberEx, N, <NONE>, 'CreateFiberEx', \ - CreateFile, A, <.lpFileName, .dwDesiredAccess, .dwShareMode, .lpSecurityAttributes, .dwCreationDisposition, .dwFlagsAndAttributes, .hTemplateFile>, 'CreateFileA', \ - CreateFileMapping, A, <.hFile, .lpFileMappigAttributes, .flProtect, .dwMaximumSizeHigh, .dwMaximumSizeLow, .lpName>, 'CreateFileMappingA', \ - CreateFileMapping, W, <.hFile, .lpFileMappigAttributes, .flProtect, .dwMaximumSizeHigh, .dwMaximumSizeLow, .lpName>, 'CreateFileMappingW', \ - CreateFile, W, <.lpFileName, .dwDesiredAccess, .dwShareMode, .lpSecurityAttributes, .dwCreationDisposition, .dwFlagsAndAttributes, .hTemplateFile>, 'CreateFileW', \ - CreateHardLink, A, <.lpFileName, .lpExistingFileName, .lpSecurityAttributes>, 'CreateHardLinkA', \ - CreateHardLink, W, <.lpFileName, .lpExistingFileName, .lpSecurityAttributes>, 'CreateHardLinkW', \ - CreateIoCompletionPort, N, <.FileHandle, .ExistingCompletionPort, .CompletionKey, .NumberOfConcurrentThreads>, 'CreateIoCompletionPort', \ - CreateJobObject, A, <.lpJobAttributes, .lpName>, 'CreateJobObjectA', \ - CreateJobObject, W, <.lpJobAttributes, .lpName>, 'CreateJobObjectW', \ - CreateJobSet, N, <NONE>, 'CreateJobSet', \ - CreateMailslot, A, <.lpName, .nMaxMessageSize, .lReadTimeout, .lpSecurityAttributes>, 'CreateMailslotA', \ - CreateMailslot, W, <.lpName, .nMaxMessageSize, .lReadTimeout, .lpSecurityAttributes>, 'CreateMailslotW', \ - CreateMemoryResourceNotification, N, <NONE>, 'CreateMemoryResourceNotification', \ - CreateMutex, A, <.lpMutexAttributes, .bInitialOwner, .lpName>, 'CreateMutexA', \ - CreateMutex, W, <.lpMutexAttributes, .bInitialOwner, .lpName>, 'CreateMutexW', \ - CreateNamedPipe, A, <.lpName, .dwOpenMode, .dwPipeMode, .nMaxInstances, .nOutBufferSize, .nInBufferSize, .nDefaultTimeOut, .lpSecurityAttributes>, 'CreateNamedPipeA', \ - CreateNamedPipe, W, <.lpName, .dwOpenMode, .dwPipeMode, .nMaxInstances, .nOutBufferSize, .nInBufferSize, .nDefaultTimeOut, .lpSecurityAttributes>, 'CreateNamedPipeW', \ - CreateNlsSecurityDescriptor, N, <NONE>, 'CreateNlsSecurityDescriptor', \ - CreatePipe, N, <.phReadPipe, .phWritePipe, .lpPipeAttributes, .nSize>, 'CreatePipe', \ - CreateProcess, A, <.lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, .dwCreationFlags, .lpEnvironment, .lpCurrentDriectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessA', \ - CreateProcessInternal, A, <NONE>, 'CreateProcessInternalA', \ - CreateProcessInternal, W, <NONE>, 'CreateProcessInternalW', \ - CreateProcessInternalWSecure, N, <NONE>, 'CreateProcessInternalWSecure', \ - CreateProcess, W, <.lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, .dwCreationFlags, .lpEnvironment, .lpCurrentDriectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessW', \ - CreateRemoteThread, N, <.hProcess, .lpThreadAttributes, .dwStackSize, .lpStartAddress, .lpParameter, .dwCreationFlags, .lpThreadId>, 'CreateRemoteThread', \ - CreateSemaphore, A, <.lpSemaphoreAttributes, .lInitialCount, .lMaximumCount, .lpName>, 'CreateSemaphoreA', \ - CreateSemaphore, W, <.lpSemaphoreAttributes, .lInitialCount, .lMaximumCount, .lpName>, 'CreateSemaphoreW', \ - CreateSocketHandle, N, <NONE>, 'CreateSocketHandle', \ - CreateTapePartition, N, <.hDevice, .dwPartitionMethod, .dwCount, .dwSize>, 'CreateTapePartition', \ - CreateThread, N, <.lpThreadAttributes, .dwStackSize, .lpStartAddress, .lpParameter, .dwCreationFlags, .lpThreadId>, 'CreateThread', \ - CreateTimerQueue, N, <VOID>, 'CreateTimerQueue', \ - CreateTimerQueueTimer, N, <NONE>, 'CreateTimerQueueTimer', \ - CreateToolhelp32Snapshot, N, <.dwFlags, .th32ProcessID>, 'CreateToolhelp32Snapshot', \ - CreateVirtualBuffer, N, <NONE>, 'CreateVirtualBuffer', \ - CreateWaitableTimer, A, <.lpTimerAttributes, .bManualReset, .lpTimerName>, 'CreateWaitableTimerA', \ - CreateWaitableTimer, W, <.lpTimerAttributes, .bManualReset, .lpTimerName>, 'CreateWaitableTimerW', \ - DeactivateActCtx, N, <NONE>, 'DeactivateActCtx', \ - DebugActiveProcess, N, <.dwProcessId>, 'DebugActiveProcess', \ - DebugActiveProcessStop, N, <NONE>, 'DebugActiveProcessStop', \ - DebugBreak, N, <VOID>, 'DebugBreak', \ - DebugBreakProcess, N, <NONE>, 'DebugBreakProcess', \ - DebugSetProcessKillOnExit, N, <NONE>, 'DebugSetProcessKillOnExit', \ - DecodePointer, N, <NONE>, 'DecodePointer', \ - DecodeSystemPointer, N, <NONE>, 'DecodeSystemPointer', \ - DefineDosDevice, A, <.dwFlags, .lpDeviceName, .lpTargetPath>, 'DefineDosDeviceA', \ - DefineDosDevice, W, <.dwFlags, .lpDeviceName, .lpTargetPath>, 'DefineDosDeviceW', \ - DelayLoadFailureHook, N, <NONE>, 'DelayLoadFailureHook', \ - DeleteAtom, N, <.nAtom>, 'DeleteAtom', \ - DeleteCriticalSection, N, <.lpCriticalSection>, 'DeleteCriticalSection', \ - DeleteFiber, N, <.lpFiber>, 'DeleteFiber', \ - DeleteFile, A, <.lpFileName>, 'DeleteFileA', \ - DeleteFile, W, <.lpFileName>, 'DeleteFileW', \ - DeleteTimerQueue, N, <.TimerQueue>, 'DeleteTimerQueue', \ - DeleteTimerQueueEx, N, <.TimerQueue, .CompletionEvent>, 'DeleteTimerQueueEx', \ - DeleteTimerQueueTimer, N, <.TimerQueue, .Timer, .CompletionEvent>, 'DeleteTimerQueueTimer', \ - DeleteVolumeMountPoint, A, <.lpszVolumeMountPoint>, 'DeleteVolumeMountPointA', \ - DeleteVolumeMountPoint, W, <.lpszVolumeMountPoint>, 'DeleteVolumeMountPointW', \ - DeviceIoControl, N, <.hDevice, .dwIoControlCode, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesReturned, .lpOverlapped>, 'DeviceIoControl', \ - DisableThreadLibraryCalls, N, <.hLibModule>, 'DisableThreadLibraryCalls', \ - DisconnectNamedPipe, N, <.hNamedPipe>, 'DisconnectNamedPipe', \ - DnsHostnameToComputerName, A, <.Hostname, .ComputerName, .nSize>, 'DnsHostnameToComputerNameA', \ - DnsHostnameToComputerName, W, <.Hostname, .ComputerName, .nSize>, 'DnsHostnameToComputerNameW', \ - DosDateTimeToFileTime, N, <.wFatDate, .wFatTime, .lpFileTime>, 'DosDateTimeToFileTime', \ - DosPathToSessionPath, A, <.SessionId, .pInPath, .ppOutPath>, 'DosPathToSessionPathA', \ - DosPathToSessionPath, W, <.SessionId, .pInPath, .ppOutPath>, 'DosPathToSessionPathW', \ - DuplicateConsoleHandle, N, <NONE>, 'DuplicateConsoleHandle', \ - DuplicateHandle, N, <.hSourceProcessHandle, .hSourceHandle, .hTargetProcessHandle, .lpTargetHandle, .dwDesiredAccess, .bInheritHandle, .dwOptions>, 'DuplicateHandle', \ - EncodePointer, N, <NONE>, 'EncodePointer', \ - EncodeSystemPointer, N, <NONE>, 'EncodeSystemPointer', \ - EndUpdateResource, A, <.hUpdate, .fDiscard>, 'EndUpdateResourceA', \ - EndUpdateResource, W, <.hUpdate, .fDiscard>, 'EndUpdateResourceW', \ - EnterCriticalSection, N, <.lpCriticalSection>, 'EnterCriticalSection', \ - EnumCalendarInfo, A, <.lpCalInfoEnumProc, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoA', \ - EnumCalendarInfoEx, A, <.lpCalInfoEnumProcEx, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoExA', \ - EnumCalendarInfoEx, W, <.lpCalInfoEnumProcEx, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoExW', \ - EnumCalendarInfo, W, <.lpCalInfoEnumProc, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoW', \ - EnumDateFormats, A, <.lpDateFmtEnumProc, .Locale, .dwFlags>, 'EnumDateFormatsA', \ - EnumDateFormatsEx, A, <.lpDateFmtEnumProcEx, .Locale, .dwFlags>, 'EnumDateFormatsExA', \ - EnumDateFormatsEx, W, <.lpDateFmtEnumProcEx, .Locale, .dwFlags>, 'EnumDateFormatsExW', \ - EnumDateFormats, W, <.lpDateFmtEnumProc, .Locale, .dwFlags>, 'EnumDateFormatsW', \ - EnumLanguageGroupLocales, A, <.lpLangGroupLocaleEnumProc, .LanguageGroup, .dwFlags, .lParam>, 'EnumLanguageGroupLocalesA', \ - EnumLanguageGroupLocales, W, <.lpLangGroupLocaleEnumProc, .LanguageGroup, .dwFlags, .lParam>, 'EnumLanguageGroupLocalesW', \ - EnumResourceLanguages, A, <.hModule, .lpType, .lpName, .lpEnumFunc, .lParam>, 'EnumResourceLanguagesA', \ - EnumResourceLanguages, W, <.hModule, .lpType, .lpName, .lpEnumFunc, .lParam>, 'EnumResourceLanguagesW', \ - EnumResourceNames, A, <.hModule, .lpType, .lpEnumFunc, .lParam>, 'EnumResourceNamesA', \ - EnumResourceNames, W, <.hModule, .lpType, .lpEnumFunc, .lParam>, 'EnumResourceNamesW', \ - EnumResourceTypes, A, <.hModule, .lpEnumFunc, .lParam>, 'EnumResourceTypesA', \ - EnumResourceTypes, W, <.hModule, .lpEnumFunc, .lParam>, 'EnumResourceTypesW', \ - EnumSystemCodePages, A, <.lpCodePageEnumProc, .dwFlags>, 'EnumSystemCodePagesA', \ - EnumSystemCodePages, W, <.lpCodePageEnumProc, .dwFlags>, 'EnumSystemCodePagesW', \ - EnumSystemGeoID, N, <NONE>, 'EnumSystemGeoID', \ - EnumSystemLanguageGroups, A, <.lpLanguageGroupEnumProc, .dwFlags, .lParam>, 'EnumSystemLanguageGroupsA', \ - EnumSystemLanguageGroups, W, <.lpLanguageGroupEnumProc, .dwFlags, .lParam>, 'EnumSystemLanguageGroupsW', \ - EnumSystemLocales, A, <.lpLocaleEnumProc, .dwFlags>, 'EnumSystemLocalesA', \ - EnumSystemLocales, W, <.lpLocaleEnumProc, .dwFlags>, 'EnumSystemLocalesW', \ - EnumTimeFormats, A, <.lpTimeFmtEnumProc, .Locale, .dwFlags>, 'EnumTimeFormatsA', \ - EnumTimeFormats, W, <.lpTimeFmtEnumProc, .Locale, .dwFlags>, 'EnumTimeFormatsW', \ - EnumUILanguages, A, <.lpUILanguageEnumProc, .dwFlags, .lParam>, 'EnumUILanguagesA', \ - EnumUILanguages, W, <.lpUILanguageEnumProc, .dwFlags, .lParam>, 'EnumUILanguagesW', \ - EnumerateLocalComputerNames, A, <NONE>, 'EnumerateLocalComputerNamesA', \ - EnumerateLocalComputerNames, W, <NONE>, 'EnumerateLocalComputerNamesW', \ - EraseTape, N, <.hDevice, .dwEraseType, .bimmediate>, 'EraseTape', \ - EscapeCommFunction, N, <.nCid, .nFunc>, 'EscapeCommFunction', \ - ExitProcess, N, <.uExitCode>, 'ExitProcess', \ - ExitThread, N, <.dwExitCode>, 'ExitThread', \ - ExitVDM, N, <NONE>, 'ExitVDM', \ - ExpandEnvironmentStrings, A, <.lpSrc, .lpDst, .nSize>, 'ExpandEnvironmentStringsA', \ - ExpandEnvironmentStrings, W, <.lpSrc, .lpDst, .nSize>, 'ExpandEnvironmentStringsW', \ - ExpungeConsoleCommandHistory, A, <NONE>, 'ExpungeConsoleCommandHistoryA', \ - ExpungeConsoleCommandHistory, W, <NONE>, 'ExpungeConsoleCommandHistoryW', \ - ExtendVirtualBuffer, N, <NONE>, 'ExtendVirtualBuffer', \ - FatalAppExit, A, <.uAction, .lpMessageText>, 'FatalAppExitA', \ - FatalAppExit, W, <.uAction, .lpMessageText>, 'FatalAppExitW', \ - FatalExit, N, <.code>, 'FatalExit', \ - FileTimeToDosDateTime, N, <.lpFileTime, .lpFatDate, .lpFatTime>, 'FileTimeToDosDateTime', \ - FileTimeToLocalFileTime, N, <.lpFileTime, .lpLocalFileTime>, 'FileTimeToLocalFileTime', \ - FileTimeToSystemTime, N, <.lpFileTime, .lpSystemTime>, 'FileTimeToSystemTime', \ - FillConsoleOutputAttribute, N, <.hConsoleOutput, .wAttribute, .nLength, .dwWriteCoord, .lpNumberOfAttrsWritten>, 'FillConsoleOutputAttribute', \ - FillConsoleOutputCharacter, A, <.hConsoleOutput, .cCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'FillConsoleOutputCharacterA', \ - FillConsoleOutputCharacter, W, <.hConsoleOutput, .cCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'FillConsoleOutputCharacterW', \ - FindActCtxSectionGuid, N, <NONE>, 'FindActCtxSectionGuid', \ - FindActCtxSectionString, A, <NONE>, 'FindActCtxSectionStringA', \ - FindActCtxSectionString, W, <NONE>, 'FindActCtxSectionStringW', \ - FindAtom, A, <.lpString>, 'FindAtomA', \ - FindAtom, W, <.lpString>, 'FindAtomW', \ - FindClose, N, <.hFindFile>, 'FindClose', \ - FindCloseChangeNotification, N, <.hChangeHandle>, 'FindCloseChangeNotification', \ - FindFirstChangeNotification, A, <.lpPathName, .bWatchSubtree, .dwNotifyFilter>, 'FindFirstChangeNotificationA', \ - FindFirstChangeNotification, W, <.lpPathName, .bWatchSubtree, .dwNotifyFilter>, 'FindFirstChangeNotificationW', \ - FindFirstFile, A, <.lpFileName, .lpFindFileData>, 'FindFirstFileA', \ - FindFirstFileEx, A, <.lpFileName, .fInfoLevelId, .lpFindFileData, .fSearchOp, .lpSearchFilter, .dwAdditionalFlags>, 'FindFirstFileExA', \ - FindFirstFileEx, W, <.lpFileName, .fInfoLevelId, .lpFindFileData, .fSearchOp, .lpSearchFilter, .dwAdditionalFlags>, 'FindFirstFileExW', \ - FindFirstFile, W, <.lpFileName, .lpFindFileData>, 'FindFirstFileW', \ - FindFirstVolume, A, <.lpszVolumeName, .cchBufferLength>, 'FindFirstVolumeA', \ - FindFirstVolumeMountPoint, A, <.lpszRootPathName, .lpszVolumeMountPoint, .cchBufferLength>, 'FindFirstVolumeMountPointA', \ - FindFirstVolumeMountPoint, W, <.lpszRootPathName, .lpszVolumeMountPoint, .cchBufferLength>, 'FindFirstVolumeMountPointW', \ - FindFirstVolume, W, <.lpszVolumeName, .cchBufferLength>, 'FindFirstVolumeW', \ - FindNextChangeNotification, N, <.hChangeHandle>, 'FindNextChangeNotification', \ - FindNextFile, A, <.hFindFile, .lpFindFileData>, 'FindNextFileA', \ - FindNextFile, W, <.hFindFile, .lpFindFileData>, 'FindNextFileW', \ - FindNextVolume, A, <.hFindVolume, .lpszVolumeName, .cchBufferLength>, 'FindNextVolumeA', \ - FindNextVolumeMountPoint, A, <.hFindVolumeMountPoint, .lpszVolumeMountPoint, .cchBufferLength>, 'FindNextVolumeMountPointA', \ - FindNextVolumeMountPoint, W, <.hFindVolumeMountPoint, .lpszVolumeMountPoint, .cchBufferLength>, 'FindNextVolumeMountPointW', \ - FindNextVolume, W, <.hFindVolume, .lpszVolumeName, .cchBufferLength>, 'FindNextVolumeW', \ - FindResource, A, <.hInstance, .lpName, .lpType>, 'FindResourceA', \ - FindResourceEx, A, <.hModule, .lpType, .lpName, .wLanguage>, 'FindResourceExA', \ - FindResourceEx, W, <.hModule, .lpType, .lpName, .wLanguage>, 'FindResourceExW', \ - FindResource, W, <.hInstance, .lpName, .lpType>, 'FindResourceW', \ - FindVolumeClose, N, <.hFindVolume>, 'FindVolumeClose', \ - FindVolumeMountPointClose, N, <.hFindVolumeMountPoint>, 'FindVolumeMountPointClose', \ - FlushConsoleInputBuffer, N, <.hConsoleInput>, 'FlushConsoleInputBuffer', \ - FlushFileBuffers, N, <.hFile>, 'FlushFileBuffers', \ - FlushInstructionCache, N, <.hProcess, .lpBaseAddress, .dwSize>, 'FlushInstructionCache', \ - FlushViewOfFile, N, <.lpBaseAddress, .dwNumberOfBytesToFlush>, 'FlushViewOfFile', \ - FoldString, A, <.dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'FoldStringA', \ - FoldString, W, <.dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'FoldStringW', \ - FormatMessage, A, <.dwFlags, .lpSource, .dwMessageId, .dwLanguageId, .lpBuffer, .nSize, .Arguments>, 'FormatMessageA', \ - FormatMessage, W, <.dwFlags, .lpSource, .dwMessageId, .dwLanguageId, .lpBuffer, .nSize, .Arguments>, 'FormatMessageW', \ - FreeConsole, N, <VOID>, 'FreeConsole', \ - FreeEnvironmentStrings, A, <.lpsz>, 'FreeEnvironmentStringsA', \ - FreeEnvironmentStrings, W, <.lpsz>, 'FreeEnvironmentStringsW', \ - FreeLibrary, N, <.hLibModule>, 'FreeLibrary', \ - FreeLibraryAndExitThread, N, <.hLibModule, .dwExitCode>, 'FreeLibraryAndExitThread', \ - FreeResource, N, <.hResData>, 'FreeResource', \ - FreeUserPhysicalPages, N, <.hProcess, .NumberOfPages, .PageArray>, 'FreeUserPhysicalPages', \ - FreeVirtualBuffer, N, <NONE>, 'FreeVirtualBuffer', \ - GenerateConsoleCtrlEvent, N, <.dwCtrlEvent, .dwProcessGroupId>, 'GenerateConsoleCtrlEvent', \ - GetACP, N, <VOID>, 'GetACP', \ - GetAtomName, A, <.nAtom, .lpBuffer, .nSize>, 'GetAtomNameA', \ - GetAtomName, W, <.nAtom, .lpBuffer, .nSize>, 'GetAtomNameW', \ - GetBinaryType, A, <.lpApplicationName, .lpBinaryType>, 'GetBinaryTypeA', \ - GetBinaryType, W, <.lpApplicationName, .lpBinaryType>, 'GetBinaryTypeW', \ - GetCPFileNameFromRegistry, N, <NONE>, 'GetCPFileNameFromRegistry', \ - GetCPInfo, N, <.CodePage, .lpCPInfo>, 'GetCPInfo', \ - GetCPInfoEx, A, <.CodePage, .dwFlags, .lpCPInfoEx>, 'GetCPInfoExA', \ - GetCPInfoEx, W, <.CodePage, .dwFlags, .lpCPInfoEx>, 'GetCPInfoExW', \ - GetCalendarInfo, A, <.Locale, .Calendar, .CalType, .lpCalData, .cchData, .lpValue>, 'GetCalendarInfoA', \ - GetCalendarInfo, W, <.Locale, .Calendar, .CalType, .lpCalData, .cchData, .lpValue>, 'GetCalendarInfoW', \ - GetComPlusPackageInstallStatus, N, <NONE>, 'GetComPlusPackageInstallStatus', \ - GetCommConfig, N, <.hCommDev, .lpCC, .lpdwSize>, 'GetCommConfig', \ - GetCommMask, N, <.hFile, .lpEvtMask>, 'GetCommMask', \ - GetCommModemStatus, N, <.hFile, .lpModemStat>, 'GetCommModemStatus', \ - GetCommProperties, N, <.hFile, .lpCommProp>, 'GetCommProperties', \ - GetCommState, N, <.nCid, .lpDCB>, 'GetCommState', \ - GetCommTimeouts, N, <.hFile, .lpCommTimeouts>, 'GetCommTimeouts', \ - GetCommandLine, A, <VOID>, 'GetCommandLineA', \ - GetCommandLine, W, <VOID>, 'GetCommandLineW', \ - GetCompressedFileSize, A, <.lpFileName, .lpFileSizeHigh>, 'GetCompressedFileSizeA', \ - GetCompressedFileSize, W, <.lpFileName, .lpFileSizeHigh>, 'GetCompressedFileSizeW', \ - GetComputerName, A, <.lpBuffer, .nSize>, 'GetComputerNameA', \ - GetComputerNameEx, A, <.NameType, .lpBuffer, .nSize>, 'GetComputerNameExA', \ - GetComputerNameEx, W, <.NameType, .lpBuffer, .nSize>, 'GetComputerNameExW', \ - GetComputerName, W, <.lpBuffer, .nSize>, 'GetComputerNameW', \ - GetConsoleAlias, A, <NONE>, 'GetConsoleAliasA', \ - GetConsoleAliasExes, A, <NONE>, 'GetConsoleAliasExesA', \ - GetConsoleAliasExesLength, A, <NONE>, 'GetConsoleAliasExesLengthA', \ - GetConsoleAliasExesLength, W, <NONE>, 'GetConsoleAliasExesLengthW', \ - GetConsoleAliasExes, W, <NONE>, 'GetConsoleAliasExesW', \ - GetConsoleAlias, W, <NONE>, 'GetConsoleAliasW', \ - GetConsoleAliases, A, <NONE>, 'GetConsoleAliasesA', \ - GetConsoleAliasesLength, A, <NONE>, 'GetConsoleAliasesLengthA', \ - GetConsoleAliasesLength, W, <NONE>, 'GetConsoleAliasesLengthW', \ - GetConsoleAliases, W, <NONE>, 'GetConsoleAliasesW', \ - GetConsoleCP, N, <VOID>, 'GetConsoleCP', \ - GetConsoleCharType, N, <NONE>, 'GetConsoleCharType', \ - GetConsoleCommandHistory, A, <NONE>, 'GetConsoleCommandHistoryA', \ - GetConsoleCommandHistoryLength, A, <NONE>, 'GetConsoleCommandHistoryLengthA', \ - GetConsoleCommandHistoryLength, W, <NONE>, 'GetConsoleCommandHistoryLengthW', \ - GetConsoleCommandHistory, W, <NONE>, 'GetConsoleCommandHistoryW', \ - GetConsoleCursorInfo, N, <.hConsoleOutput, .lpConsoleCursorInfo>, 'GetConsoleCursorInfo', \ - GetConsoleCursorMode, N, <NONE>, 'GetConsoleCursorMode', \ - GetConsoleDisplayMode, N, <NONE>, 'GetConsoleDisplayMode', \ - GetConsoleFontInfo, N, <NONE>, 'GetConsoleFontInfo', \ - GetConsoleFontSize, N, <NONE>, 'GetConsoleFontSize', \ - GetConsoleHardwareState, N, <NONE>, 'GetConsoleHardwareState', \ - GetConsoleInputExeName, A, <NONE>, 'GetConsoleInputExeNameA', \ - GetConsoleInputExeName, W, <NONE>, 'GetConsoleInputExeNameW', \ - GetConsoleInputWaitHandle, N, <NONE>, 'GetConsoleInputWaitHandle', \ - GetConsoleKeyboardLayoutName, A, <NONE>, 'GetConsoleKeyboardLayoutNameA', \ - GetConsoleKeyboardLayoutName, W, <NONE>, 'GetConsoleKeyboardLayoutNameW', \ - GetConsoleMode, N, <.hConsoleHandle, .lpMode>, 'GetConsoleMode', \ - GetConsoleNlsMode, N, <NONE>, 'GetConsoleNlsMode', \ - GetConsoleOutputCP, N, <VOID>, 'GetConsoleOutputCP', \ - GetConsoleProcessList, N, <NONE>, 'GetConsoleProcessList', \ - GetConsoleScreenBufferInfo, N, <.hConsoleOutput, .lpConsoleScreenBufferInfo>, 'GetConsoleScreenBufferInfo', \ - GetConsoleSelectionInfo, N, <NONE>, 'GetConsoleSelectionInfo', \ - GetConsoleTitle, A, <.lpConsoleTitle, .nSize>, 'GetConsoleTitleA', \ - GetConsoleTitle, W, <.lpConsoleTitle, .nSize>, 'GetConsoleTitleW', \ - GetConsoleWindow, N, <NONE>, 'GetConsoleWindow', \ - GetCurrencyFormat, A, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpCurrencyStr, .cchCurrency>, 'GetCurrencyFormatA', \ - GetCurrencyFormat, W, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpCurrencyStr, .cchCurrency>, 'GetCurrencyFormatW', \ - GetCurrentActCtx, N, <NONE>, 'GetCurrentActCtx', \ - GetCurrentConsoleFont, N, <NONE>, 'GetCurrentConsoleFont', \ - GetCurrentDirectory, A, <.nBufferLength, .lpBuffer>, 'GetCurrentDirectoryA', \ - GetCurrentDirectory, W, <.nBufferLength, .lpBuffer>, 'GetCurrentDirectoryW', \ - GetCurrentProcess, N, <VOID>, 'GetCurrentProcess', \ - GetCurrentProcessId, N, <VOID>, 'GetCurrentProcessId', \ - GetCurrentThread, N, <VOID>, 'GetCurrentThread', \ - GetCurrentThreadId, N, <VOID>, 'GetCurrentThreadId', \ - GetDateFormat, A, <.Locale, .dwFlags, .lpDate, .lpFormat, .lpDateStr, .cchDate>, 'GetDateFormatA', \ - GetDateFormat, W, <.Locale, .dwFlags, .lpDate, .lpFormat, .lpDateStr, .cchDate>, 'GetDateFormatW', \ - GetDefaultCommConfig, A, <.lpszName, .lpCC, .lpdwSize>, 'GetDefaultCommConfigA', \ - GetDefaultCommConfig, W, <.lpszName, .lpCC, .lpdwSize>, 'GetDefaultCommConfigW', \ - GetDefaultSortkeySize, N, <NONE>, 'GetDefaultSortkeySize', \ - GetDevicePowerState, N, <.hDevice, .pfOn>, 'GetDevicePowerState', \ - GetDiskFreeSpace, A, <.lpRootPathName, .lpSectorsPerCluster, .lpBytesPerSector, .lpNumberOfFreeClusters, .lpTotalNumberOfClusters>, 'GetDiskFreeSpaceA', \ - GetDiskFreeSpaceEx, A, <.lpDirectoryName, .lpFreeBytesAvailableToCaller, .lpTotalNumberOfBytes, .lpTotalNumberOfFreeBytes>, 'GetDiskFreeSpaceExA', \ - GetDiskFreeSpaceEx, W, <.lpDirectoryName, .lpFreeBytesAvailableToCaller, .lpTotalNumberOfBytes, .lpTotalNumberOfFreeBytes>, 'GetDiskFreeSpaceExW', \ - GetDiskFreeSpace, W, <.lpRootPathName, .lpSectorsPerCluster, .lpBytesPerSector, .lpNumberOfFreeClusters, .lpTotalNumberOfClusters>, 'GetDiskFreeSpaceW', \ - GetDllDirectory, A, <NONE>, 'GetDllDirectoryA', \ - GetDllDirectory, W, <NONE>, 'GetDllDirectoryW', \ - GetDriveType, A, <.nDrive>, 'GetDriveTypeA', \ - GetDriveType, W, <.nDrive>, 'GetDriveTypeW', \ - GetEnvironmentStrings, A, <VOID>, 'GetEnvironmentStringsA', \ - GetEnvironmentStrings, W, <VOID>, 'GetEnvironmentStringsW', \ - GetEnvironmentVariable, A, <.lpName, .lpBuffer, .nSize>, 'GetEnvironmentVariableA', \ - GetEnvironmentVariable, W, <.lpName, .lpBuffer, .nSize>, 'GetEnvironmentVariableW', \ - GetExitCodeProcess, N, <.hProcess, .lpExitCode>, 'GetExitCodeProcess', \ - GetExitCodeThread, N, <.hThread, .lpExitCode>, 'GetExitCodeThread', \ - GetExpandedName, A, <.lpszSource, .lpszBuffer>, 'GetExpandedNameA', \ - GetExpandedName, W, <.lpszSource, .lpszBuffer>, 'GetExpandedNameW', \ - GetFileAttributes, A, <.lpFileName>, 'GetFileAttributesA', \ - GetFileAttributesEx, A, <.lpFileName, .fInfoLevelId, .lpFileInformation>, 'GetFileAttributesExA', \ - GetFileAttributesEx, W, <.lpFileName, .fInfoLevelId, .lpFileInformation>, 'GetFileAttributesExW', \ - GetFileAttributes, W, <.lpFileName>, 'GetFileAttributesW', \ - GetFileInformationByHandle, N, <.hFile, .lpFileInformation>, 'GetFileInformationByHandle', \ - GetFileSize, N, <.hFile, .lpFileSizeHigh>, 'GetFileSize', \ - GetFileSizeEx, N, <.hFile, .lpFileSize>, 'GetFileSizeEx', \ - GetFileTime, N, <.hFile, .lpCreationTime, .lpLastAccessTime, .lpLastWriteTime>, 'GetFileTime', \ - GetFileType, N, <.hFile>, 'GetFileType', \ - GetFirmwareEnvironmentVariable, A, <NONE>, 'GetFirmwareEnvironmentVariableA', \ - GetFirmwareEnvironmentVariable, W, <NONE>, 'GetFirmwareEnvironmentVariableW', \ - GetFullPathName, A, <.lpFileName, .nBufferLength, .lpBuffer, .lpFilePart>, 'GetFullPathNameA', \ - GetFullPathName, W, <.lpFileName, .nBufferLength, .lpBuffer, .lpFilePart>, 'GetFullPathNameW', \ - GetGeoInfo, A, <NONE>, 'GetGeoInfoA', \ - GetGeoInfo, W, <NONE>, 'GetGeoInfoW', \ - GetHandleContext, N, <NONE>, 'GetHandleContext', \ - GetHandleInformation, N, <.hObject, .lpdwFlags>, 'GetHandleInformation', \ - GetLargestConsoleWindowSize, N, <.hConsoleOutput>, 'GetLargestConsoleWindowSize', \ - GetLastError, N, <VOID>, 'GetLastError', \ - GetLinguistLangSize, N, <NONE>, 'GetLinguistLangSize', \ - GetLocalTime, N, <.lpSystemTime>, 'GetLocalTime', \ - GetLocaleInfo, A, <.Locale, .LCType, .lpLCData, .cchData>, 'GetLocaleInfoA', \ - GetLocaleInfo, W, <.Locale, .LCType, .lpLCData, .cchData>, 'GetLocaleInfoW', \ - GetLogicalDriveStrings, A, <.nBufferLength, .lpBuffer>, 'GetLogicalDriveStringsA', \ - GetLogicalDriveStrings, W, <.nBufferLength, .lpBuffer>, 'GetLogicalDriveStringsW', \ - GetLogicalDrives, N, <VOID>, 'GetLogicalDrives', \ - GetLogicalProcessorInformation, N, <NONE>, 'GetLogicalProcessorInformation', \ - GetLongPathName, A, <.lpszShortPath, .lpszLongPath, .cchBuffer>, 'GetLongPathNameA', \ - GetLongPathName, W, <.lpszShortPath, .lpszLongPath, .cchBuffer>, 'GetLongPathNameW', \ - GetMailslotInfo, N, <.hMailslot, .lpMaxMessageSize, .lpNextSize, .lpMessageCount, .lpReadTimeout>, 'GetMailslotInfo', \ - GetModuleFileName, A, <.hModule, .lpFileName, .nSize>, 'GetModuleFileNameA', \ - GetModuleFileName, W, <.hModule, .lpFileName, .nSize>, 'GetModuleFileNameW', \ - GetModuleHandle, A, <.lpModuleName>, 'GetModuleHandleA', \ - GetModuleHandleEx, A, <NONE>, 'GetModuleHandleExA', \ - GetModuleHandleEx, W, <NONE>, 'GetModuleHandleExW', \ - GetModuleHandle, W, <.lpModuleName>, 'GetModuleHandleW', \ - GetNamedPipeHandleState, A, <.hNamedPipe, .lpState, .lpCurInstances, .lpMaxCollectionCount, .lpCollectDataTimeout, .lpUserName, .nMaxUserNameSize>, 'GetNamedPipeHandleStateA', \ - GetNamedPipeHandleState, W, <.hNamedPipe, .lpState, .lpCurInstances, .lpMaxCollectionCount, .lpCollectDataTimeout, .lpUserName, .nMaxUserNameSize>, 'GetNamedPipeHandleStateW', \ - GetNamedPipeInfo, N, <.hNamedPipe, .lpFlags, .lpOutBufferSize, .lpInBufferSize, .lpMaxInstances>, 'GetNamedPipeInfo', \ - GetNativeSystemInfo, N, <NONE>, 'GetNativeSystemInfo', \ - GetNextVDMCommand, N, <NONE>, 'GetNextVDMCommand', \ - GetNlsSectionName, N, <NONE>, 'GetNlsSectionName', \ - GetNumaAvailableMemory, N, <NONE>, 'GetNumaAvailableMemory', \ - GetNumaAvailableMemoryNode, N, <NONE>, 'GetNumaAvailableMemoryNode', \ - GetNumaHighestNodeNumber, N, <NONE>, 'GetNumaHighestNodeNumber', \ - GetNumaNodeProcessorMask, N, <NONE>, 'GetNumaNodeProcessorMask', \ - GetNumaProcessorMap, N, <NONE>, 'GetNumaProcessorMap', \ - GetNumaProcessorNode, N, <NONE>, 'GetNumaProcessorNode', \ - GetNumberFormat, A, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpNumberStr, .cchNumber>, 'GetNumberFormatA', \ - GetNumberFormat, W, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpNumberStr, .cchNumber>, 'GetNumberFormatW', \ - GetNumberOfConsoleFonts, N, <NONE>, 'GetNumberOfConsoleFonts', \ - GetNumberOfConsoleInputEvents, N, <.hConsoleInput, .lpNumberOfEvents>, 'GetNumberOfConsoleInputEvents', \ - GetNumberOfConsoleMouseButtons, N, <.lpNumberOfMouseButtons>, 'GetNumberOfConsoleMouseButtons', \ - GetOEMCP, N, <VOID>, 'GetOEMCP', \ - GetOverlappedResult, N, <.hFile, .lpOverlapped, .lpNumberOfBytesTransferred, .bWait>, 'GetOverlappedResult', \ - GetPriorityClass, N, <.hProcess>, 'GetPriorityClass', \ - GetPrivateProfileInt, A, <.lpApplicationName, .lpKeyName, .nDefault, .lpFileName>, 'GetPrivateProfileIntA', \ - GetPrivateProfileInt, W, <.lpApplicationName, .lpKeyName, .nDefault, .lpFileName>, 'GetPrivateProfileIntW', \ - GetPrivateProfileSection, A, <.lpAppName, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileSectionA', \ - GetPrivateProfileSectionNames, A, <.lpszReturnBuffer, .nSize, .lpFileName>, 'GetPrivateProfileSectionNamesA', \ - GetPrivateProfileSectionNames, W, <.lpszReturnBuffer, .nSize, .lpFileName>, 'GetPrivateProfileSectionNamesW', \ - GetPrivateProfileSection, W, <.lpAppName, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileSectionW', \ - GetPrivateProfileString, A, <.lpApplicationName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileStringA', \ - GetPrivateProfileString, W, <.lpApplicationName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileStringW', \ - GetPrivateProfileStruct, A, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'GetPrivateProfileStructA', \ - GetPrivateProfileStruct, W, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'GetPrivateProfileStructW', \ - GetProcAddress, N, <.hModule, .lpProcName>, 'GetProcAddress', \ - GetProcessAffinityMask, N, <.hProcess, .lpProcessAffinityMask, .SystemAffinityMask>, 'GetProcessAffinityMask', \ - GetProcessDEPPolicy, N, <NONE>, 'GetProcessDEPPolicy', \ - GetProcessHandleCount, N, <NONE>, 'GetProcessHandleCount', \ - GetProcessHeap, N, <VOID>, 'GetProcessHeap', \ - GetProcessHeaps, N, <.NumberOfHeaps, .ProcessHeaps>, 'GetProcessHeaps', \ - GetProcessId, N, <NONE>, 'GetProcessId', \ - GetProcessIoCounters, N, <.hProcess, .lpIoCounters>, 'GetProcessIoCounters', \ - GetProcessPriorityBoost, N, <.hProcess, .pDisablePriorityBoost>, 'GetProcessPriorityBoost', \ - GetProcessShutdownParameters, N, <.lpdwLevel, .lpdwFlags>, 'GetProcessShutdownParameters', \ - GetProcessTimes, N, <.hProcess, .lpCreationTime, .lpExitTime, .lpKernelTime, .lpUserTime>, 'GetProcessTimes', \ - GetProcessVersion, N, <.ProcessId>, 'GetProcessVersion', \ - GetProcessWorkingSetSize, N, <.hProcess, .lpMinimumWorkingSetSize, .lpMaximumWorkingSetSize>, 'GetProcessWorkingSetSize', \ - GetProfileInt, A, <.lpAppName, .lpKeyName, .nDefault>, 'GetProfileIntA', \ - GetProfileInt, W, <.lpAppName, .lpKeyName, .nDefault>, 'GetProfileIntW', \ - GetProfileSection, A, <.lpAppName, .lpReturnedString, .nSize>, 'GetProfileSectionA', \ - GetProfileSection, W, <.lpAppName, .lpReturnedString, .nSize>, 'GetProfileSectionW', \ - GetProfileString, A, <.lpAppName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize>, 'GetProfileStringA', \ - GetProfileString, W, <.lpAppName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize>, 'GetProfileStringW', \ - GetQueuedCompletionStatus, N, <.CompletionPort, .lpNumberOfBytesTransferred, .lpCompletionKey, .lpOverlapped, .dwMilliseconds>, 'GetQueuedCompletionStatus', \ - GetShortPathName, A, <.lpszLongPath, .lpszShortPath, .cchBuffer>, 'GetShortPathNameA', \ - GetShortPathName, W, <.lpszLongPath, .lpszShortPath, .cchBuffer>, 'GetShortPathNameW', \ - GetStartupInfo, A, <.lpStartupInfo>, 'GetStartupInfoA', \ - GetStartupInfo, W, <.lpStartupInfo>, 'GetStartupInfoW', \ - GetStdHandle, N, <.nStdHandle>, 'GetStdHandle', \ - GetStringType, A, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeA', \ - GetStringTypeEx, A, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeExA', \ - GetStringTypeEx, W, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeExW', \ - GetStringType, W, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeW', \ - GetSystemDEPPolicy, N, <NONE>, 'GetSystemDEPPolicy', \ - GetSystemDefaultLCID, N, <VOID>, 'GetSystemDefaultLCID', \ - GetSystemDefaultLangID, N, <VOID>, 'GetSystemDefaultLangID', \ - GetSystemDefaultUILanguage, N, <VOID>, 'GetSystemDefaultUILanguage', \ - GetSystemDirectory, A, <.lpBuffer, .nSize>, 'GetSystemDirectoryA', \ - GetSystemDirectory, W, <.lpBuffer, .nSize>, 'GetSystemDirectoryW', \ - GetSystemInfo, N, <.lpSystemInfo>, 'GetSystemInfo', \ - GetSystemPowerStatus, N, <.lpSystemPowerStatus>, 'GetSystemPowerStatus', \ - GetSystemRegistryQuota, N, <NONE>, 'GetSystemRegistryQuota', \ - GetSystemTime, N, <.lpSystemTime>, 'GetSystemTime', \ - GetSystemTimeAdjustment, N, <.lpTimeAdjustment, .lpTimeIncrement, .lpTimeAdjustmentDisabled>, 'GetSystemTimeAdjustment', \ - GetSystemTimeAsFileTime, N, <.lpSystemTimeAsFileTime>, 'GetSystemTimeAsFileTime', \ - GetSystemTimes, N, <NONE>, 'GetSystemTimes', \ - GetSystemWindowsDirectory, A, <.lpBuffer, .uSize>, 'GetSystemWindowsDirectoryA', \ - GetSystemWindowsDirectory, W, <.lpBuffer, .uSize>, 'GetSystemWindowsDirectoryW', \ - GetSystemWow64Directory, A, <NONE>, 'GetSystemWow64DirectoryA', \ - GetSystemWow64Directory, W, <NONE>, 'GetSystemWow64DirectoryW', \ - GetTapeParameters, N, <.hDevice, .dwOperation, .lpdwSize, .lpTapeInformation>, 'GetTapeParameters', \ - GetTapePosition, N, <.hDevice, .dwPositionType, .lpdwPartition, .lpdwOffsetLow, .lpdwOffsetHigh>, 'GetTapePosition', \ - GetTapeStatus, N, <.hDevice>, 'GetTapeStatus', \ - GetTempFileName, A, <.lpszPath, .lpPrefixString, .wUnique, .lpTempFileName>, 'GetTempFileNameA', \ - GetTempFileName, W, <.lpszPath, .lpPrefixString, .wUnique, .lpTempFileName>, 'GetTempFileNameW', \ - GetTempPath, A, <.nBufferLength, .lpBuffer>, 'GetTempPathA', \ - GetTempPath, W, <.nBufferLength, .lpBuffer>, 'GetTempPathW', \ - GetThreadContext, N, <.hThread, .lpContext>, 'GetThreadContext', \ - GetThreadIOPendingFlag, N, <NONE>, 'GetThreadIOPendingFlag', \ - GetThreadLocale, N, <VOID>, 'GetThreadLocale', \ - GetThreadPriority, N, <.hThread>, 'GetThreadPriority', \ - GetThreadPriorityBoost, N, <.hThread, .pDisablePriorityBoost>, 'GetThreadPriorityBoost', \ - GetThreadSelectorEntry, N, <.hThread, .dwSelector, .lpSelectorEntry>, 'GetThreadSelectorEntry', \ - GetThreadTimes, N, <.hThread, .lpCreationTime, .lpExitTime, .lpKernelTime, .lpUserTime>, 'GetThreadTimes', \ - GetTickCount, N, <VOID>, 'GetTickCount', \ - GetTimeFormat, A, <.Locale, .dwFlags, .lpTime, .lpFormat, .lpTimeStr, .cchTime>, 'GetTimeFormatA', \ - GetTimeFormat, W, <.Locale, .dwFlags, .lpTime, .lpFormat, .lpTimeStr, .cchTime>, 'GetTimeFormatW', \ - GetTimeZoneInformation, N, <.lpTimeZoneInformation>, 'GetTimeZoneInformation', \ - GetUserDefaultLCID, N, <VOID>, 'GetUserDefaultLCID', \ - GetUserDefaultLangID, N, <VOID>, 'GetUserDefaultLangID', \ - GetUserDefaultUILanguage, N, <VOID>, 'GetUserDefaultUILanguage', \ - GetUserGeoID, N, <NONE>, 'GetUserGeoID', \ - GetVDMCurrentDirectories, N, <NONE>, 'GetVDMCurrentDirectories', \ - GetVersion, N, <VOID>, 'GetVersion', \ - GetVersionEx, A, <.lpVersionInformation>, 'GetVersionExA', \ - GetVersionEx, W, <.lpVersionInformation>, 'GetVersionExW', \ - GetVolumeInformation, A, <.lpRootPathName, .lpVolumeNameBuffer, .nVolumeNameSize, .lpVolumeSerialNumber, .lpMaximumComponentLength, .lpFileSystemFlags, .lpFileSystemNameBuffer, .nFileSystemNameSize>, 'GetVolumeInformationA', \ - GetVolumeInformation, W, <.lpRootPathName, .lpVolumeNameBuffer, .nVolumeNameSize, .lpVolumeSerialNumber, .lpMaximumComponentLength, .lpFileSystemFlags, .lpFileSystemNameBuffer, .nFileSystemNameSize>, 'GetVolumeInformationW', \ - GetVolumeNameForVolumeMountPoint, A, <.lpszVolumeMountPoint, .lpszVolumeName, .cchBufferLength>, 'GetVolumeNameForVolumeMountPointA', \ - GetVolumeNameForVolumeMountPoint, W, <.lpszVolumeMountPoint, .lpszVolumeName, .cchBufferLength>, 'GetVolumeNameForVolumeMountPointW', \ - GetVolumePathName, A, <.lpszFileName, .lpszVolumePathName, .cchBufferLength>, 'GetVolumePathNameA', \ - GetVolumePathName, W, <.lpszFileName, .lpszVolumePathName, .cchBufferLength>, 'GetVolumePathNameW', \ - GetVolumePathNamesForVolumeName, A, <NONE>, 'GetVolumePathNamesForVolumeNameA', \ - GetVolumePathNamesForVolumeName, W, <NONE>, 'GetVolumePathNamesForVolumeNameW', \ - GetWindowsDirectory, A, <.lpBuffer, .nSize>, 'GetWindowsDirectoryA', \ - GetWindowsDirectory, W, <.lpBuffer, .nSize>, 'GetWindowsDirectoryW', \ - GetWriteWatch, N, <.dwFlags, .lpBaseAddress, .dwRegionSize, .lpAddresses, .lpdwCount, .lpdwGranularity>, 'GetWriteWatch', \ - GlobalAddAtom, A, <.lpString>, 'GlobalAddAtomA', \ - GlobalAddAtom, W, <.lpString>, 'GlobalAddAtomW', \ - GlobalAlloc, N, <.uFlags, .dwBytes>, 'GlobalAlloc', \ - GlobalCompact, N, <.dwMinFree>, 'GlobalCompact', \ - GlobalDeleteAtom, N, <.nAtom>, 'GlobalDeleteAtom', \ - GlobalFindAtom, A, <.lpString>, 'GlobalFindAtomA', \ - GlobalFindAtom, W, <.lpString>, 'GlobalFindAtomW', \ - GlobalFix, N, <.hMem>, 'GlobalFix', \ - GlobalFlags, N, <.hMem>, 'GlobalFlags', \ - GlobalFree, N, <.hMem>, 'GlobalFree', \ - GlobalGetAtomName, A, <.nAtom, .lpBuffer, .nSize>, 'GlobalGetAtomNameA', \ - GlobalGetAtomName, W, <.nAtom, .lpBuffer, .nSize>, 'GlobalGetAtomNameW', \ - GlobalHandle, N, <.wMem>, 'GlobalHandle', \ - GlobalLock, N, <.hMem>, 'GlobalLock', \ - GlobalMemoryStatus, N, <.lpBuffer>, 'GlobalMemoryStatus', \ - GlobalMemoryStatusEx, N, <.lpBuffer>, 'GlobalMemoryStatusEx', \ - GlobalReAlloc, N, <.hMem, .dwBytes, .wFlags>, 'GlobalReAlloc', \ - GlobalSize, N, <.hMem>, 'GlobalSize', \ - GlobalUnWire, N, <.hMem>, 'GlobalUnWire', \ - GlobalUnfix, N, <.hMem>, 'GlobalUnfix', \ - GlobalUnlock, N, <.hMem>, 'GlobalUnlock', \ - GlobalWire, N, <.hMem>, 'GlobalWire', \ - Heap32First, N, <.lphe, .th32ProcessID, .th32HeapID>, 'Heap32First', \ - Heap32ListFirst, N, <.hSnapshot, .lphl>, 'Heap32ListFirst', \ - Heap32ListNext, N, <.hSnapshot, .lphl>, 'Heap32ListNext', \ - Heap32Next, N, <.lphe>, 'Heap32Next', \ - HeapAlloc, N, <.hHeap, .dwFlags, .dwBytes>, 'HeapAlloc', \ - HeapCompact, N, <.hHeap, .dwFlags>, 'HeapCompact', \ - HeapCreate, N, <.flOptions, .dwInitialSize, .dwMaximumSize>, 'HeapCreate', \ - HeapCreateTags, W, <NONE>, 'HeapCreateTagsW', \ - HeapDestroy, N, <.hHeap>, 'HeapDestroy', \ - HeapExtend, N, <NONE>, 'HeapExtend', \ - HeapFree, N, <.hHeap, .dwFlags, .lpMem>, 'HeapFree', \ - HeapLock, N, <.hHeap>, 'HeapLock', \ - HeapQueryInformation, N, <NONE>, 'HeapQueryInformation', \ - HeapQueryTag, W, <NONE>, 'HeapQueryTagW', \ - HeapReAlloc, N, <.hHeap, .dwFlags, .lpMem, .dwBytes>, 'HeapReAlloc', \ - HeapSetInformation, N, <NONE>, 'HeapSetInformation', \ - HeapSize, N, <.hHeap, .dwFlags, .lpMem>, 'HeapSize', \ - HeapSummary, N, <NONE>, 'HeapSummary', \ - HeapUnlock, N, <.hHeap>, 'HeapUnlock', \ - HeapUsage, N, <NONE>, 'HeapUsage', \ - HeapValidate, N, <.hHeap, .dwFlags, .lpMem>, 'HeapValidate', \ - HeapWalk, N, <.hHeap, .lpEntry>, 'HeapWalk', \ - InitAtomTable, N, <.nSize>, 'InitAtomTable', \ - InitializeCriticalSection, N, <.lpCriticalSection>, 'InitializeCriticalSection', \ - InitializeCriticalSectionAndSpinCount, N, <.lpCriticalSection, .dwSpinCount>, 'InitializeCriticalSectionAndSpinCount', \ - InitializeSListHead, N, <NONE>, 'InitializeSListHead', \ - InterlockedCompareExchange, N, <.Destination, .Exchange, .Comperand>, 'InterlockedCompareExchange', \ - InterlockedDecrement, N, <.lpAddend>, 'InterlockedDecrement', \ - InterlockedExchange, N, <.Target, .Value>, 'InterlockedExchange', \ - InterlockedExchangeAdd, N, <.Addend, .Value>, 'InterlockedExchangeAdd', \ - InterlockedFlushSList, N, <NONE>, 'InterlockedFlushSList', \ - InterlockedIncrement, N, <.lpAddend>, 'InterlockedIncrement', \ - InterlockedPopEntrySList, N, <NONE>, 'InterlockedPopEntrySList', \ - InterlockedPushEntrySList, N, <NONE>, 'InterlockedPushEntrySList', \ - InvalidateConsoleDIBits, N, <NONE>, 'InvalidateConsoleDIBits', \ - IsBadCodePtr, N, <.lpfn>, 'IsBadCodePtr', \ - IsBadHugeReadPtr, N, <.lp, .ucb>, 'IsBadHugeReadPtr', \ - IsBadHugeWritePtr, N, <.lp, .ucb>, 'IsBadHugeWritePtr', \ - IsBadReadPtr, N, <.lp, .ucb>, 'IsBadReadPtr', \ - IsBadStringPtr, A, <.lpsz, .ucchMax>, 'IsBadStringPtrA', \ - IsBadStringPtr, W, <.lpsz, .ucchMax>, 'IsBadStringPtrW', \ - IsBadWritePtr, N, <.lp, .ucb>, 'IsBadWritePtr', \ - IsDBCSLeadByte, N, <.bTestChar>, 'IsDBCSLeadByte', \ - IsDBCSLeadByteEx, N, <.CodePage, .TestChar>, 'IsDBCSLeadByteEx', \ - IsDebuggerPresent, N, <VOID>, 'IsDebuggerPresent', \ - IsProcessInJob, N, <NONE>, 'IsProcessInJob', \ - IsProcessorFeaturePresent, N, <.ProcessorFeature>, 'IsProcessorFeaturePresent', \ - IsSystemResumeAutomatic, N, <VOID>, 'IsSystemResumeAutomatic', \ - IsValidCodePage, N, <.CodePage>, 'IsValidCodePage', \ - IsValidLanguageGroup, N, <.LanguageGroup, .dwFlags>, 'IsValidLanguageGroup', \ - IsValidLocale, N, <.Locale, .dwFlags>, 'IsValidLocale', \ - IsValidUILanguage, N, <NONE>, 'IsValidUILanguage', \ - IsWow64Process, N, <NONE>, 'IsWow64Process', \ - LCMapString, A, <.Locale, .dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'LCMapStringA', \ - LCMapString, W, <.Locale, .dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'LCMapStringW', \ - LZClose, N, <.hfFile>, 'LZClose', \ - LZCloseFile, N, <NONE>, 'LZCloseFile', \ - LZCopy, N, <.hfSource, .hfDest>, 'LZCopy', \ - LZCreateFile, W, <NONE>, 'LZCreateFileW', \ - LZDone, N, <VOID>, 'LZDone', \ - LZInit, N, <.hfSrc>, 'LZInit', \ - LZOpenFile, A, <.lpszFile, .lpOf, .style>, 'LZOpenFileA', \ - LZOpenFile, W, <.lpszFile, .lpOf, .style>, 'LZOpenFileW', \ - LZRead, N, <.hfFile, .lpvBuf, .cbread>, 'LZRead', \ - LZSeek, N, <.hfFile, .lOffset, .nOrigin>, 'LZSeek', \ - LZStart, N, <VOID>, 'LZStart', \ - LeaveCriticalSection, N, <.lpCriticalSection>, 'LeaveCriticalSection', \ - LoadLibrary, A, <.lpLibFileName>, 'LoadLibraryA', \ - LoadLibraryEx, A, <.lpLibFileName, .hFile, .dwFlags>, 'LoadLibraryExA', \ - LoadLibraryEx, W, <.lpLibFileName, .hFile, .dwFlags>, 'LoadLibraryExW', \ - LoadLibrary, W, <.lpLibFileName>, 'LoadLibraryW', \ - LoadModule, N, <.lpModuleName, .lpParameterBlock>, 'LoadModule', \ - LoadResource, N, <.hInstance, .hResInfo>, 'LoadResource', \ - LocalAlloc, N, <.wFlags, .wBytes>, 'LocalAlloc', \ - LocalCompact, N, <.uMinFree>, 'LocalCompact', \ - LocalFileTimeToFileTime, N, <.lpLocalFileTime, .lpFileTime>, 'LocalFileTimeToFileTime', \ - LocalFlags, N, <.hMem>, 'LocalFlags', \ - LocalFree, N, <.hMem>, 'LocalFree', \ - LocalHandle, N, <.wMem>, 'LocalHandle', \ - LocalLock, N, <.hMem>, 'LocalLock', \ - LocalReAlloc, N, <.hMem, .wBytes, .wFlags>, 'LocalReAlloc', \ - LocalShrink, N, <.hMem, .cbNewSize>, 'LocalShrink', \ - LocalSize, N, <.hMem>, 'LocalSize', \ - LocalUnlock, N, <.hMem>, 'LocalUnlock', \ - LockFile, N, <.hFile, .dwFileOffsetLow, .dwFileOffsetHigh, .nNumberOfBytesToLockLow, .nNumberOfBytesToLockHigh>, 'LockFile', \ - LockFileEx, N, <.hFile, .dwFlags, .dwReserved, .nNumberOfBytesToLockLow, .nNumberOfBytesToLockHigh, .lpOverlapped>, 'LockFileEx', \ - LockResource, N, <.hResData>, 'LockResource', \ - MapUserPhysicalPages, N, <.VirtualAddress, .NumberOfPages, .PageArray>, 'MapUserPhysicalPages', \ - MapUserPhysicalPagesScatter, N, <.VirtualAddresses, .NumberOfPages, .PageArray>, 'MapUserPhysicalPagesScatter', \ - MapViewOfFile, N, <.hFileMappingObject, .dwDesiredAccess, .dwFileOffsetHigh, .dwFileOffsetLow, .dwNumberOfBytesToMap>, 'MapViewOfFile', \ - MapViewOfFileEx, N, <.hFileMappingObject, .dwDesiredAccess, .dwFileOffsetHigh, .dwFileOffsetLow, .dwNumberOfBytesToMap, .lpBaseAddress>, 'MapViewOfFileEx', \ - Module32First, A, <.hSnapshot, .lpme>, 'Module32First', \ - Module32First, W, <.hSnapshot, .lpme>, 'Module32FirstW', \ - Module32Next, A, <.hSnapshot, .lpme>, 'Module32Next', \ - Module32Next, W, <.hSnapshot, .lpme>, 'Module32NextW', \ - MoveFile, A, <.lpExistingFileName, .lpNewFileName>, 'MoveFileA', \ - MoveFileEx, A, <.lpExistingFileName, .lpNewFileName, .dwFlags>, 'MoveFileExA', \ - MoveFileEx, W, <.lpExistingFileName, .lpNewFileName, .dwFlags>, 'MoveFileExW', \ - MoveFile, W, <.lpExistingFileName, .lpNewFileName>, 'MoveFileW', \ - MoveFileWithProgress, A, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .dwFlags>, 'MoveFileWithProgressA', \ - MoveFileWithProgress, W, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .dwFlags>, 'MoveFileWithProgressW', \ - MulDiv, N, <.nNumber, .nNumerator, .nDenominator>, 'MulDiv', \ - MultiByteToWideChar, N, <.CodePage, .dwFlags, .lpMultiByteStr, .cchMultiByte, .lpWideCharStr, .cchWideChar>, 'MultiByteToWideChar', \ - NlsConvertIntegerToString, N, <NONE>, 'NlsConvertIntegerToString', \ - NlsGetCacheUpdateCount, N, <NONE>, 'NlsGetCacheUpdateCount', \ - NlsResetProcessLocale, N, <NONE>, 'NlsResetProcessLocale', \ - NumaVirtualQueryNode, N, <NONE>, 'NumaVirtualQueryNode', \ - OpenConsole, W, <NONE>, 'OpenConsoleW', \ - OpenDataFile, N, <NONE>, 'OpenDataFile', \ - OpenEvent, A, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenEventA', \ - OpenEvent, W, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenEventW', \ - OpenFile, N, <.lpFileName, .lpReOpenBuff, .wStyle>, 'OpenFile', \ - OpenFileMapping, A, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenFileMappingA', \ - OpenFileMapping, W, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenFileMappingW', \ - OpenJobObject, A, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenJobObjectA', \ - OpenJobObject, W, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenJobObjectW', \ - OpenMutex, A, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenMutexA', \ - OpenMutex, W, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenMutexW', \ - OpenProcess, N, <.dwDesiredAccess, .bInheritHandle, .dwProcessId>, 'OpenProcess', \ - OpenProfileUserMapping, N, <NONE>, 'OpenProfileUserMapping', \ - OpenSemaphore, A, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenSemaphoreA', \ - OpenSemaphore, W, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenSemaphoreW', \ - OpenThread, N, <.dwDesiredAccess, .bInheritHandle, .dwThreadId>, 'OpenThread', \ - OpenWaitableTimer, A, <.dwDesiredAccess, .bInheritHandle, .lpTimerName>, 'OpenWaitableTimerA', \ - OpenWaitableTimer, W, <.dwDesiredAccess, .bInheritHandle, .lpTimerName>, 'OpenWaitableTimerW', \ - OutputDebugString, A, <.lpOutputString>, 'OutputDebugStringA', \ - OutputDebugString, W, <.lpOutputString>, 'OutputDebugStringW', \ - PeekConsoleInput, A, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'PeekConsoleInputA', \ - PeekConsoleInput, W, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'PeekConsoleInputW', \ - PeekNamedPipe, N, <.hNamedPipe, .lpBuffer, .nBufferSize, .lpBytesRead, .lpTotalBytesAvail, .lpBytesLeftThisMessage>, 'PeekNamedPipe', \ - PostQueuedCompletionStatus, N, <.CompletionPort, .dwNumberOfBytesTransferred, .dwCompletionKey, .lpOverlapped>, 'PostQueuedCompletionStatus', \ - PrepareTape, N, <.hDevice, .dwOperation, .bimmediate>, 'PrepareTape', \ - PrivCopyFileEx, W, <NONE>, 'PrivCopyFileExW', \ - PrivMoveFileIdentity, W, <NONE>, 'PrivMoveFileIdentityW', \ - Process32First, A, <.hSnapshot, .lppe>, 'Process32First', \ - Process32First, W, <.hSnapshot, .lppe>, 'Process32FirstW', \ - Process32Next, A, <.hSnapshot, .lppe>, 'Process32Next', \ - Process32Next, W, <.hSnapshot, .lppe>, 'Process32NextW', \ - ProcessIdToSessionId, N, <.dwProcessId, .pSessionId>, 'ProcessIdToSessionId', \ - PulseEvent, N, <.hEvent>, 'PulseEvent', \ - PurgeComm, N, <.hFile, .dwFlags>, 'PurgeComm', \ - QueryActCtx, W, <NONE>, 'QueryActCtxW', \ - QueryDepthSList, N, <NONE>, 'QueryDepthSList', \ - QueryDosDevice, A, <.lpDeviceName, .lpTargetPath, .ucchMax>, 'QueryDosDeviceA', \ - QueryDosDevice, W, <.lpDeviceName, .lpTargetPath, .ucchMax>, 'QueryDosDeviceW', \ - QueryInformationJobObject, N, <.hJob, .JobObjectInformationClass, .lpJobObjectInformation, .cbJobObjectInformationLength, .lpReturnLength>, 'QueryInformationJobObject', \ - QueryMemoryResourceNotification, N, <NONE>, 'QueryMemoryResourceNotification', \ - QueryPerformanceCounter, N, <.lpPerformanceCount>, 'QueryPerformanceCounter', \ - QueryPerformanceFrequency, N, <.lpFrequency>, 'QueryPerformanceFrequency', \ - QueryWin31IniFilesMappedToRegistry, N, <NONE>, 'QueryWin31IniFilesMappedToRegistry', \ - QueueUserAPC, N, <.pfnAPC, .hThread, .dwData>, 'QueueUserAPC', \ - QueueUserWorkItem, N, <.lFunction, .Context, .Flags>, 'QueueUserWorkItem', \ - RaiseException, N, <.dwExceptionCode, .dwExceptionFlags, .nNumberOfArguments, .lpArguments>, 'RaiseException', \ - ReadConsole, A, <.hConsoleInput, .lpBuffer, .nNumberOfCharsToRead, .lpNumberOfCharsRead, .lpReserved>, 'ReadConsoleA', \ - ReadConsoleInput, A, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'ReadConsoleInputA', \ - ReadConsoleInputEx, A, <NONE>, 'ReadConsoleInputExA', \ - ReadConsoleInputEx, W, <NONE>, 'ReadConsoleInputExW', \ - ReadConsoleInput, W, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'ReadConsoleInputW', \ - ReadConsoleOutput, A, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpReadRegion>, 'ReadConsoleOutputA', \ - ReadConsoleOutputAttribute, N, <.hConsoleOutput, .lpAttribute, .nLength, .dwReadCoord, .lpNumberOfAttrsRead>, 'ReadConsoleOutputAttribute', \ - ReadConsoleOutputCharacter, A, <.hConsoleOutput, .lpCharacter, .nLength, .dwReadCoord, .lpNumberOfCharsRead>, 'ReadConsoleOutputCharacterA', \ - ReadConsoleOutputCharacter, W, <.hConsoleOutput, .lpCharacter, .nLength, .dwReadCoord, .lpNumberOfCharsRead>, 'ReadConsoleOutputCharacterW', \ - ReadConsoleOutput, W, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpReadRegion>, 'ReadConsoleOutputW', \ - ReadConsole, W, <.hConsoleInput, .lpBuffer, .nNumberOfCharsToRead, .lpNumberOfCharsRead, .lpReserved>, 'ReadConsoleW', \ - ReadDirectoryChanges, W, <NONE>, 'ReadDirectoryChangesW', \ - ReadFile, N, <.hFile, .lpBuffer, .nNumberOfBytesToRead, .lpNumberOfBytesRead, .lpOverlapped>, 'ReadFile', \ - ReadFileEx, N, <.hFile, .lpBuffer, .nNumberOfBytesToRead, .lpOverlapped, .lpCompletionRoutine>, 'ReadFileEx', \ - ReadFileScatter, N, <.hFile, .aSegmentArray, .nNumberOfBytesToRead, .lpReserved, .lpOverlapped>, 'ReadFileScatter', \ - ReadProcessMemory, N, <.hProcess, .lpBaseAddress, .lpBuffer, .nSize, .lpNumberOfBytesWritten>, 'ReadProcessMemory', \ - RegisterConsoleIME, N, <NONE>, 'RegisterConsoleIME', \ - RegisterConsoleOS2, N, <NONE>, 'RegisterConsoleOS2', \ - RegisterConsoleVDM, N, <NONE>, 'RegisterConsoleVDM', \ - RegisterWaitForInputIdle, N, <NONE>, 'RegisterWaitForInputIdle', \ - RegisterWaitForSingleObject, N, <.phNewWaitObject, .hObject, .Callback, .Context, .dwMilliseconds, .dwFlags>, 'RegisterWaitForSingleObject', \ - RegisterWaitForSingleObjectEx, N, <.hObject, .Callback, .Context, .dwMilliseconds, .dwFlags>, 'RegisterWaitForSingleObjectEx', \ - RegisterWowBaseHandlers, N, <NONE>, 'RegisterWowBaseHandlers', \ - RegisterWowExec, N, <NONE>, 'RegisterWowExec', \ - ReleaseActCtx, N, <NONE>, 'ReleaseActCtx', \ - ReleaseMutex, N, <.hMutex>, 'ReleaseMutex', \ - ReleaseSemaphore, N, <.hSemaphore, .lReleaseCount, .lpPreviousCount>, 'ReleaseSemaphore', \ - RemoveDirectory, A, <.lpPathName>, 'RemoveDirectoryA', \ - RemoveDirectory, W, <.lpPathName>, 'RemoveDirectoryW', \ - RemoveLocalAlternateComputerName, A, <NONE>, 'RemoveLocalAlternateComputerNameA', \ - RemoveLocalAlternateComputerName, W, <NONE>, 'RemoveLocalAlternateComputerNameW', \ - RemoveVectoredExceptionHandler, N, <NONE>, 'RemoveVectoredExceptionHandler', \ - ReplaceFile, A, <.lpReplacedFileName, .lpReplacementFileName, .lpBackupFileName, .dwReplaceFlags, .lpExclude, .lpReserved>, 'ReplaceFileA', \ - ReplaceFile, W, <.lpReplacedFileName, .lpReplacementFileName, .lpBackupFileName, .dwReplaceFlags, .lpExclude, .lpReserved>, 'ReplaceFileW', \ - RequestDeviceWakeup, N, <.hDevice>, 'RequestDeviceWakeup', \ - RequestWakeupLatency, N, <.latency>, 'RequestWakeupLatency', \ - ResetEvent, N, <.hEvent>, 'ResetEvent', \ - ResetWriteWatch, N, <.lpBaseAddress, .dwRegionSize>, 'ResetWriteWatch', \ - RestoreLastError, N, <NONE>, 'RestoreLastError', \ - ResumeThread, N, <.hThread>, 'ResumeThread', \ - RtlCaptureContext, N, <NONE>, 'RtlCaptureContext', \ - RtlCaptureStackBackTrace, N, <NONE>, 'RtlCaptureStackBackTrace', \ - RtlFillMemory, N, <.Destination, .Length, .Fill>, 'RtlFillMemory', \ - RtlMoveMemory, N, <.dest, .source, .numBytes>, 'RtlMoveMemory', \ - RtlUnwind, N, <NONE>, 'RtlUnwind', \ - RtlZeroMemory, N, <.dest, .numBytes>, 'RtlZeroMemory', \ - ScrollConsoleScreenBuffer, A, <.hConsoleOutput, .lpScrollRectangle, .lpClipRectangle, .dwDestinationOrigin, .lpFill>, 'ScrollConsoleScreenBufferA', \ - ScrollConsoleScreenBuffer, W, <.hConsoleOutput, .lpScrollRectangle, .lpClipRectangle, .dwDestinationOrigin, .lpFill>, 'ScrollConsoleScreenBufferW', \ - SearchPath, A, <.lpPath, .lpFileName, .lpExtension, .nBufferLength, .lpBuffer, .lpFilePart>, 'SearchPathA', \ - SearchPath, W, <.lpPath, .lpFileName, .lpExtension, .nBufferLength, .lpBuffer, .lpFilePart>, 'SearchPathW', \ - SetCPGlobal, N, <NONE>, 'SetCPGlobal', \ - SetCalendarInfo, A, <.Locale, .Calendar, .CalType, .lpCalData>, 'SetCalendarInfoA', \ - SetCalendarInfo, W, <.Locale, .Calendar, .CalType, .lpCalData>, 'SetCalendarInfoW', \ - SetClientTimeZoneInformation, N, <NONE>, 'SetClientTimeZoneInformation', \ - SetComPlusPackageInstallStatus, N, <NONE>, 'SetComPlusPackageInstallStatus', \ - SetCommBreak, N, <.nCid>, 'SetCommBreak', \ - SetCommConfig, N, <.hCommDev, .lpCC, .dwSize>, 'SetCommConfig', \ - SetCommMask, N, <.hFile, .dwEvtMask>, 'SetCommMask', \ - SetCommState, N, <.hCommDev, .lpDCB>, 'SetCommState', \ - SetCommTimeouts, N, <.hFile, .lpCommTimeouts>, 'SetCommTimeouts', \ - SetComputerName, A, <.lpComputerName>, 'SetComputerNameA', \ - SetComputerNameEx, A, <.NameType, .lpBuffer>, 'SetComputerNameExA', \ - SetComputerNameEx, W, <.NameType, .lpBuffer>, 'SetComputerNameExW', \ - SetComputerName, W, <.lpComputerName>, 'SetComputerNameW', \ - SetConsoleActiveScreenBuffer, N, <.hConsoleOutput>, 'SetConsoleActiveScreenBuffer', \ - SetConsoleCP, N, <.wCodePageID>, 'SetConsoleCP', \ - SetConsoleCommandHistoryMode, N, <NONE>, 'SetConsoleCommandHistoryMode', \ - SetConsoleCtrlHandler, N, <.HandlerRoutine, .Add>, 'SetConsoleCtrlHandler', \ - SetConsoleCursor, N, <NONE>, 'SetConsoleCursor', \ - SetConsoleCursorInfo, N, <.hConsoleOutput, .lpConsoleCursorInfo>, 'SetConsoleCursorInfo', \ - SetConsoleCursorMode, N, <NONE>, 'SetConsoleCursorMode', \ - SetConsoleCursorPosition, N, <.hConsoleOutput, .dwCursorPosition>, 'SetConsoleCursorPosition', \ - SetConsoleDisplayMode, N, <NONE>, 'SetConsoleDisplayMode', \ - SetConsoleFont, N, <NONE>, 'SetConsoleFont', \ - SetConsoleHardwareState, N, <NONE>, 'SetConsoleHardwareState', \ - SetConsoleIcon, N, <NONE>, 'SetConsoleIcon', \ - SetConsoleInputExeName, A, <NONE>, 'SetConsoleInputExeNameA', \ - SetConsoleInputExeName, W, <NONE>, 'SetConsoleInputExeNameW', \ - SetConsoleKeyShortcuts, N, <NONE>, 'SetConsoleKeyShortcuts', \ - SetConsoleLocalEUDC, N, <NONE>, 'SetConsoleLocalEUDC', \ - SetConsoleMaximumWindowSize, N, <NONE>, 'SetConsoleMaximumWindowSize', \ - SetConsoleMenuClose, N, <NONE>, 'SetConsoleMenuClose', \ - SetConsoleMode, N, <.hConsoleHandle, .dwMode>, 'SetConsoleMode', \ - SetConsoleNlsMode, N, <NONE>, 'SetConsoleNlsMode', \ - SetConsoleNumberOfCommands, A, <NONE>, 'SetConsoleNumberOfCommandsA', \ - SetConsoleNumberOfCommands, W, <NONE>, 'SetConsoleNumberOfCommandsW', \ - SetConsoleOS2OemFormat, N, <NONE>, 'SetConsoleOS2OemFormat', \ - SetConsoleOutputCP, N, <.wCodePageID>, 'SetConsoleOutputCP', \ - SetConsolePalette, N, <NONE>, 'SetConsolePalette', \ - SetConsoleScreenBufferSize, N, <.hConsoleOutput, .dwSize>, 'SetConsoleScreenBufferSize', \ - SetConsoleTextAttribute, N, <.hConsoleOutput, .wAttributes>, 'SetConsoleTextAttribute', \ - SetConsoleTitle, A, <.lpConsoleTitle>, 'SetConsoleTitleA', \ - SetConsoleTitle, W, <.lpConsoleTitle>, 'SetConsoleTitleW', \ - SetConsoleWindowInfo, N, <.hConsoleOutput, .bAbsolute, .lpConsoleWindow>, 'SetConsoleWindowInfo', \ - SetCriticalSectionSpinCount, N, <.lpCriticalSection, .dwSpinCount>, 'SetCriticalSectionSpinCount', \ - SetCurrentDirectory, A, <.lpPathName>, 'SetCurrentDirectoryA', \ - SetCurrentDirectory, W, <.lpPathName>, 'SetCurrentDirectoryW', \ - SetDefaultCommConfig, A, <.lpszName, .lpCC, .dwSize>, 'SetDefaultCommConfigA', \ - SetDefaultCommConfig, W, <.lpszName, .lpCC, .dwSize>, 'SetDefaultCommConfigW', \ - SetDllDirectory, A, <NONE>, 'SetDllDirectoryA', \ - SetDllDirectory, W, <NONE>, 'SetDllDirectoryW', \ - SetEndOfFile, N, <.hFile>, 'SetEndOfFile', \ - SetEnvironmentVariable, A, <.lpName, .lpValue>, 'SetEnvironmentVariableA', \ - SetEnvironmentVariable, W, <.lpName, .lpValue>, 'SetEnvironmentVariableW', \ - SetErrorMode, N, <.wMode>, 'SetErrorMode', \ - SetEvent, N, <.hEvent>, 'SetEvent', \ - SetFileApisToANSI, N, <VOID>, 'SetFileApisToANSI', \ - SetFileApisToOEM, N, <VOID>, 'SetFileApisToOEM', \ - SetFileAttributes, A, <.lpFileName, .dwFileAttributes>, 'SetFileAttributesA', \ - SetFileAttributes, W, <.lpFileName, .dwFileAttributes>, 'SetFileAttributesW', \ - SetFilePointer, N, <.hFile, .lDistanceToMove, .lpDistanceToMoveHigh, .dwMoveMethod>, 'SetFilePointer', \ - SetFilePointerEx, N, <.hFile, .liDistanceToMove, .lpNewFilePointer, .dwMoveMethod>, 'SetFilePointerEx', \ - SetFileShortName, A, <NONE>, 'SetFileShortNameA', \ - SetFileShortName, W, <NONE>, 'SetFileShortNameW', \ - SetFileTime, N, <.hFile, .lpCreationTime, .lpLastAccessTime, .lpLastWriteTime>, 'SetFileTime', \ - SetFileValidData, N, <NONE>, 'SetFileValidData', \ - SetFirmwareEnvironmentVariable, A, <NONE>, 'SetFirmwareEnvironmentVariableA', \ - SetFirmwareEnvironmentVariable, W, <NONE>, 'SetFirmwareEnvironmentVariableW', \ - SetHandleContext, N, <NONE>, 'SetHandleContext', \ - SetHandleCount, N, <.wNumber>, 'SetHandleCount', \ - SetHandleInformation, N, <.hObject, .dwMask, .dwFlags>, 'SetHandleInformation', \ - SetInformationJobObject, N, <.hJob, .JobObjectInformationClass, .lpJobObjectInformation, .cbJobObjectInformationLength>, 'SetInformationJobObject', \ - SetLastConsoleEventActive, N, <NONE>, 'SetLastConsoleEventActive', \ - SetLastError, N, <.dwErrCode>, 'SetLastError', \ - SetLocalPrimaryComputerName, A, <NONE>, 'SetLocalPrimaryComputerNameA', \ - SetLocalPrimaryComputerName, W, <NONE>, 'SetLocalPrimaryComputerNameW', \ - SetLocalTime, N, <.lpSystemTime>, 'SetLocalTime', \ - SetLocaleInfo, A, <.Locale, .LCType, .lpLCData>, 'SetLocaleInfoA', \ - SetLocaleInfo, W, <.Locale, .LCType, .lpLCData>, 'SetLocaleInfoW', \ - SetMailslotInfo, N, <.hMailslot, .lReadTimeout>, 'SetMailslotInfo', \ - SetMessageWaitingIndicator, N, <.hMsgIndicator, .ulMsgCount>, 'SetMessageWaitingIndicator', \ - SetNamedPipeHandleState, N, <.hNamedPipe, .lpMode, .lpMaxCollectionCount, .lpCollectDataTimeout>, 'SetNamedPipeHandleState', \ - SetPriorityClass, N, <.hProcess, .dwPriorityClass>, 'SetPriorityClass', \ - SetProcessAffinityMask, N, <.hProcess, .dwProcessAffinityMask>, 'SetProcessAffinityMask', \ - SetProcessDEPPolicy, N, <NONE>, 'SetProcessDEPPolicy', \ - SetProcessPriorityBoost, N, <.hProcess, .bDisablePriorityBoost>, 'SetProcessPriorityBoost', \ - SetProcessShutdownParameters, N, <.dwLevel, .dwFlags>, 'SetProcessShutdownParameters', \ - SetProcessWorkingSetSize, N, <.hProcess, .dwMinimumWorkingSetSize, .dwMaximumWorkingSetSize>, 'SetProcessWorkingSetSize', \ - SetStdHandle, N, <.nStdHandle, .nHandle>, 'SetStdHandle', \ - SetSystemPowerState, N, <.fSuspend, .fForce>, 'SetSystemPowerState', \ - SetSystemTime, N, <.lpSystemTime>, 'SetSystemTime', \ - SetSystemTimeAdjustment, N, <.dwTimeAdjustment, .bTimeAdjustmentDisabled>, 'SetSystemTimeAdjustment', \ - SetTapeParameters, N, <.hDevice, .dwOperation, .lpTapeInformation>, 'SetTapeParameters', \ - SetTapePosition, N, <.hDevice, .dwPositionMethod, .dwPartition, .dwOffsetLow, .dwOffsetHigh, .bimmediate>, 'SetTapePosition', \ - SetTermsrvAppInstallMode, N, <NONE>, 'SetTermsrvAppInstallMode', \ - SetThreadAffinityMask, N, <.hThread, .dwThreadAffinityMask>, 'SetThreadAffinityMask', \ - SetThreadContext, N, <.hThread, .lpContext>, 'SetThreadContext', \ - SetThreadExecutionState, N, <.esFlags>, 'SetThreadExecutionState', \ - SetThreadIdealProcessor, N, <.hThread, .dwIdealProcessor>, 'SetThreadIdealProcessor', \ - SetThreadLocale, N, <.Locale>, 'SetThreadLocale', \ - SetThreadPriority, N, <.hThread, .nPriority>, 'SetThreadPriority', \ - SetThreadPriorityBoost, N, <.hThread, .bDisablePriorityBoost>, 'SetThreadPriorityBoost', \ - SetThreadUILanguage, N, <NONE>, 'SetThreadUILanguage', \ - SetTimeZoneInformation, N, <.lpTimeZoneInformation>, 'SetTimeZoneInformation', \ - SetTimerQueueTimer, N, <.TimerQueue, .Callback, .Parameter, .DueTime, .Period, .PreferIo>, 'SetTimerQueueTimer', \ - SetUnhandledExceptionFilter, N, <.lpTopLevelExceptionFilter>, 'SetUnhandledExceptionFilter', \ - SetUserGeoID, N, <NONE>, 'SetUserGeoID', \ - SetVDMCurrentDirectories, N, <NONE>, 'SetVDMCurrentDirectories', \ - SetVolumeLabel, A, <.lpRootPathName, .lpVolumeName>, 'SetVolumeLabelA', \ - SetVolumeLabel, W, <.lpRootPathName, .lpVolumeName>, 'SetVolumeLabelW', \ - SetVolumeMountPoint, A, <.lpszVolumeMountPoint, .lpszVolumeName>, 'SetVolumeMountPointA', \ - SetVolumeMountPoint, W, <.lpszVolumeMountPoint, .lpszVolumeName>, 'SetVolumeMountPointW', \ - SetWaitableTimer, N, <.hTimer, .lpDueTime, .lPeriod, .pfnCompletionRoutine, .lpArgToCompletionRoutine, .fResume>, 'SetWaitableTimer', \ - SetupComm, N, <.hFile, .dwInQueue, .dwOutQueue>, 'SetupComm', \ - ShowConsoleCursor, N, <NONE>, 'ShowConsoleCursor', \ - SignalObjectAndWait, N, <.hObjectToSignal, .hObjectToWaitOn, .dwMilliseconds, .bAlertable>, 'SignalObjectAndWait', \ - SizeofResource, N, <.hInstance, .hResInfo>, 'SizeofResource', \ - Sleep, N, <.dwMilliseconds>, 'Sleep', \ - SleepEx, N, <.dwMilliseconds, .bAlertable>, 'SleepEx', \ - SuspendThread, N, <.hThread>, 'SuspendThread', \ - SwitchToFiber, N, <.lpFiber>, 'SwitchToFiber', \ - SwitchToThread, N, <VOID>, 'SwitchToThread', \ - SystemTimeToFileTime, N, <.lpSystemTime, .lpFileTime>, 'SystemTimeToFileTime', \ - SystemTimeToTzSpecificLocalTime, N, <.lpTimeZoneInformation, .lpUniversalTime, .lpLocalTime>, 'SystemTimeToTzSpecificLocalTime', \ - TerminateJobObject, N, <.hJob, .uExitCode>, 'TerminateJobObject', \ - TerminateProcess, N, <.hProcess, .uExitCode>, 'TerminateProcess', \ - TerminateThread, N, <.hThread, .dwExitCode>, 'TerminateThread', \ - TermsrvAppInstallMode, N, <NONE>, 'TermsrvAppInstallMode', \ - Thread32First, N, <.hSnapshot, .lpte>, 'Thread32First', \ - Thread32Next, N, <.hSnapshot, .lpte>, 'Thread32Next', \ - TlsAlloc, N, <VOID>, 'TlsAlloc', \ - TlsFree, N, <.dwTlsIndex>, 'TlsFree', \ - TlsGetValue, N, <.dwTlsIndex>, 'TlsGetValue', \ - TlsSetValue, N, <.dwTlsIndex, .lpTlsValue>, 'TlsSetValue', \ - Toolhelp32ReadProcessMemory, N, <.th32ProcessID, .lpBaseAddress, .lpBuffer, .cbRead, .lpNumberOfBytesRead>, 'Toolhelp32ReadProcessMemory', \ - TransactNamedPipe, N, <.hNamedPipe, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesRead, .lpOverlapped>, 'TransactNamedPipe', \ - TransmitCommChar, N, <.nCid, .cChar>, 'TransmitCommChar', \ - TrimVirtualBuffer, N, <NONE>, 'TrimVirtualBuffer', \ - TryEnterCriticalSection, N, <.lpCriticalSection>, 'TryEnterCriticalSection', \ - TzSpecificLocalTimeToSystemTime, N, <NONE>, 'TzSpecificLocalTimeToSystemTime', \ - UTRegister, N, <NONE>, 'UTRegister', \ - UTUnRegister, N, <NONE>, 'UTUnRegister', \ - UnhandledExceptionFilter, N, <.ExceptionInfo>, 'UnhandledExceptionFilter', \ - UnlockFile, N, <.hFile, .dwFileOffsetLow, .dwFileOffsetHigh, .nNumberOfBytesToUnlockLow, .nNumberOfBytesToUnlockHigh>, 'UnlockFile', \ - UnlockFileEx, N, <.hFile, .dwReserved, .nNumberOfBytesToUnlockLow, .nNumberOfBytesToUnlockHigh, .lpOverlapped>, 'UnlockFileEx', \ - UnmapViewOfFile, N, <.lpBaseAddress>, 'UnmapViewOfFile', \ - UnregisterConsoleIME, N, <NONE>, 'UnregisterConsoleIME', \ - UnregisterWait, N, <.WaitHandle>, 'UnregisterWait', \ - UnregisterWaitEx, N, <.WaitHandle, .CompletionEvent>, 'UnregisterWaitEx', \ - UpdateResource, A, <.hUpdate, .lpType, .lpName, .wLanguage, .lpData, .cbData>, 'UpdateResourceA', \ - UpdateResource, W, <.hUpdate, .lpType, .lpName, .wLanguage, .lpData, .cbData>, 'UpdateResourceW', \ - VDMConsoleOperation, N, <NONE>, 'VDMConsoleOperation', \ - VDMOperationStarted, N, <NONE>, 'VDMOperationStarted', \ - ValidateLCType, N, <NONE>, 'ValidateLCType', \ - ValidateLocale, N, <NONE>, 'ValidateLocale', \ - VerLanguageName, A, <.wLang, .szLang, .nSize>, 'VerLanguageNameA', \ - VerLanguageName, W, <.wLang, .szLang, .nSize>, 'VerLanguageNameW', \ - VerSetConditionMask, N, <.ConditionMask, .TypeMask, .Condition>, 'VerSetConditionMask', \ - VerifyConsoleIoHandle, N, <NONE>, 'VerifyConsoleIoHandle', \ - VerifyVersionInfo, A, <.lpVersionInformation, .dwTypeMask, .dwlConditionMask>, 'VerifyVersionInfoA', \ - VerifyVersionInfo, W, <.lpVersionInformation, .dwTypeMask, .dwlConditionMask>, 'VerifyVersionInfoW', \ - VirtualAlloc, N, <.lpAddress, .dwSize, .flAllocationType, .flProtect>, 'VirtualAlloc', \ - VirtualAllocEx, N, <.hProcess, .lpAddress, .dwSize, .flAllocationType, .flProtect>, 'VirtualAllocEx', \ - VirtualBufferExceptionHandler, N, <NONE>, 'VirtualBufferExceptionHandler', \ - VirtualFree, N, <.lpAddress, .dwSize, .dwFreeType>, 'VirtualFree', \ - VirtualFreeEx, N, <.hProcess, .lpAddress, .dwSize, .dwFreeType>, 'VirtualFreeEx', \ - VirtualLock, N, <.lpAddress, .dwSize>, 'VirtualLock', \ - VirtualProtect, N, <.lpAddress, .dwSize, .flNewProtect, .lpflOldProtect>, 'VirtualProtect', \ - VirtualProtectEx, N, <.hProcess, .lpAddress, .dwSize, .flNewProtect, .lpflOldProtect>, 'VirtualProtectEx', \ - VirtualQuery, N, <.lpAddress, .lpBuffer, .dwLength>, 'VirtualQuery', \ - VirtualQueryEx, N, <.hProcess, .lpAddress, .lpBuffer, .dwLength>, 'VirtualQueryEx', \ - VirtualUnlock, N, <.lpAddress, .dwSize>, 'VirtualUnlock', \ - WTSGetActiveConsoleSessionId, N, <NONE>, 'WTSGetActiveConsoleSessionId', \ - WaitCommEvent, N, <.hFile, .lpEvtMask, .lpOverlapped>, 'WaitCommEvent', \ - WaitForDebugEvent, N, <.lpDebugEvent, .dwMilliseconds>, 'WaitForDebugEvent', \ - WaitForMultipleObjects, N, <.nCount, .lpHandles, .bWaitAll, .dwMilliseconds>, 'WaitForMultipleObjects', \ - WaitForMultipleObjectsEx, N, <.nCount, .lpHandles, .bWaitAll, .dwMilliseconds, .bAlertable>, 'WaitForMultipleObjectsEx', \ - WaitForSingleObject, N, <.hHandle, .dwMilliseconds>, 'WaitForSingleObject', \ - WaitForSingleObjectEx, N, <.hHandle, .dwMilliseconds, .bAlertable>, 'WaitForSingleObjectEx', \ - WaitNamedPipe, A, <.lpNamedPipeName, .nTimeOut>, 'WaitNamedPipeA', \ - WaitNamedPipe, W, <.lpNamedPipeName, .nTimeOut>, 'WaitNamedPipeW', \ - WideCharToMultiByte, N, <.CodePage, .dwFlags, .lpWideCharStr, .cchWideChar, .lpMultiByteStr, .cchMultiByte, .lpDefaultChar, .lpUsedDefaultChar>, 'WideCharToMultiByte', \ - WinExec, N, <.lpCmdLine, .nCmdShow>, 'WinExec', \ - WriteConsole, A, <.hConsoleOutput, .lpBuffer, .nNumberOfCharsToWrite, .lpNumberOfCharsWritten, .lpReserved>, 'WriteConsoleA', \ - WriteConsoleInput, A, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsWritten>, 'WriteConsoleInputA', \ - WriteConsoleInputVDM, A, <NONE>, 'WriteConsoleInputVDMA', \ - WriteConsoleInputVDM, W, <NONE>, 'WriteConsoleInputVDMW', \ - WriteConsoleInput, W, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsWritten>, 'WriteConsoleInputW', \ - WriteConsoleOutput, A, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpWriteRegion>, 'WriteConsoleOutputA', \ - WriteConsoleOutputAttribute, N, <.hConsoleOutput, .lpAttribute, .nLength, .dwWriteCoord, .lpNumberOfAttrsWritten>, 'WriteConsoleOutputAttribute', \ - WriteConsoleOutputCharacter, A, <.hConsoleOutput, .lpCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'WriteConsoleOutputCharacterA', \ - WriteConsoleOutputCharacter, W, <.hConsoleOutput, .lpCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'WriteConsoleOutputCharacterW', \ - WriteConsoleOutput, W, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpWriteRegion>, 'WriteConsoleOutputW', \ - WriteConsole, W, <.hConsoleOutput, .lpBuffer, .nNumberOfCharsToWrite, .lpNumberOfCharsWritten, .lpReserved>, 'WriteConsoleW', \ - WriteFile, N, <.hFile, .lpBuffer, .nNumberOfBytesToWrite, .lpNumberOfBytesWritten, .lpOverlapped>, 'WriteFile', \ - WriteFileEx, N, <.hFile, .lpBuffer, .nNumberOfBytesToWrite, .lpOverlapped, .lpCompletionRoutine>, 'WriteFileEx', \ - WriteFileGather, N, <.hFile, .aSegmentArray, .nNumberOfBytesToWrite, .lpReserved, .lpOverlapped>, 'WriteFileGather', \ - WritePrivateProfileSection, A, <.lpAppName, .lpString, .lpFileName>, 'WritePrivateProfileSectionA', \ - WritePrivateProfileSection, W, <.lpAppName, .lpString, .lpFileName>, 'WritePrivateProfileSectionW', \ - WritePrivateProfileString, A, <.lpApplicationName, .lpKeyName, .lpString, .lpFileName>, 'WritePrivateProfileStringA', \ - WritePrivateProfileString, W, <.lpApplicationName, .lpKeyName, .lpString, .lpFileName>, 'WritePrivateProfileStringW', \ - WritePrivateProfileStruct, A, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'WritePrivateProfileStructA', \ - WritePrivateProfileStruct, W, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'WritePrivateProfileStructW', \ - WriteProcessMemory, N, <.hProcess, .lpBaseAddress, .lpBuffer, .nSize, .lpNumberOfBytesWritten>, 'WriteProcessMemory', \ - WriteProfileSection, A, <.lpAppName, .lpString>, 'WriteProfileSectionA', \ - WriteProfileSection, W, <.lpAppName, .lpString>, 'WriteProfileSectionW', \ - WriteProfileString, A, <.lpszSection, .lpszKeyName, .lpszString>, 'WriteProfileStringA', \ - WriteProfileString, W, <.lpszSection, .lpszKeyName, .lpszString>, 'WriteProfileStringW', \ - WriteTapemark, N, <.hDevice, .dwTapemarkType, .dwTapemarkCount, .bimmediate>, 'WriteTapemark', \ - ZombifyActCtx, N, <NONE>, 'ZombifyActCtx', \ - _hread, N, <NONE>, '_hread', \ - _hwrite, N, <NONE>, '_hwrite', \ - _lclose, N, <NONE>, '_lclose', \ - _lcreat, N, <NONE>, '_lcreat', \ - _llseek, N, <NONE>, '_llseek', \ - _lopen, N, <NONE>, '_lopen', \ - _lread, N, <NONE>, '_lread', \ - _lwrite, N, <NONE>, '_lwrite', \ - lstrcat, A, <.lpString1, .lpString2>, 'lstrcatA', \ - lstrcat, W, <.lpString1, .lpString2>, 'lstrcatW', \ - lstrcmp, A, <.lpString1, .lpString2>, 'lstrcmpA', \ - lstrcmp, W, <.lpString1, .lpString2>, 'lstrcmpW', \ - lstrcmpi, A, <.lpString1, .lpString2>, 'lstrcmpiA', \ - lstrcmpi, W, <.lpString1, .lpString2>, 'lstrcmpiW', \ - lstrcpy, A, <.lpString1, .lpString2>, 'lstrcpyA', \ - lstrcpy, W, <.lpString1, .lpString2>, 'lstrcpyW', \ - lstrcpyn, A, <.lpString1, .lpString2, .iMaxLength>, 'lstrcpynA', \ - lstrcpyn, W, <.lpString1, .lpString2, .iMaxLength>, 'lstrcpynW', \ - lstrlen, A, <.lpString>, 'lstrlenA', \ - lstrlen, W, <.lpString>, 'lstrlenW' DELETED freshlib/imports/Win32/api/msimg32.inc Index: freshlib/imports/Win32/api/msimg32.inc ================================================================== --- freshlib/imports/Win32/api/msimg32.inc +++ /dev/null @@ -1,7 +0,0 @@ -; msimg32.dll API calls (ASCII) -import_proto msimg32, \ - AlphaBlend, N, <.hdc, .lInt, .BLENDFUNCT>, 'AlphaBlend', \ - DllInitialize, N, <NONE>, 'DllInitialize', \ - GradientFill, N, <.hdc, .PTRIVERTEX, .ulong, .pvoid>, 'GradientFill', \ - TransparentBlt, N, <.hdc, .t, .uint>, 'TransparentBlt', \ - vSetDdrawflag, N, <NONE>, 'vSetDdrawflag' DELETED freshlib/imports/Win32/api/odbc32.inc Index: freshlib/imports/Win32/api/odbc32.inc ================================================================== --- freshlib/imports/Win32/api/odbc32.inc +++ /dev/null @@ -1,184 +0,0 @@ -; odbc32.dll API calls (ASCII) -import_proto odbc32, \ - CloseODBCPerfData, N, <NONE>, 'CloseODBCPerfData', \ - CollectODBCPerfData, N, <NONE>, 'CollectODBCPerfData', \ - CursorLibLockDbc, N, <NONE>, 'CursorLibLockDbc', \ - CursorLibLockDesc, N, <NONE>, 'CursorLibLockDesc', \ - CursorLibLockStmt, N, <NONE>, 'CursorLibLockStmt', \ - CursorLibTransact, N, <NONE>, 'CursorLibTransact', \ - DllBidEntryPoint, N, <NONE>, 'DllBidEntryPoint', \ - GetODBCSharedData, N, <NONE>, 'GetODBCSharedData', \ - LockHandle, N, <NONE>, 'LockHandle', \ - MpHeapAlloc, N, <NONE>, 'MpHeapAlloc', \ - MpHeapCompact, N, <NONE>, 'MpHeapCompact', \ - MpHeapCreate, N, <NONE>, 'MpHeapCreate', \ - MpHeapDestroy, N, <NONE>, 'MpHeapDestroy', \ - MpHeapFree, N, <NONE>, 'MpHeapFree', \ - MpHeapReAlloc, N, <NONE>, 'MpHeapReAlloc', \ - MpHeapSize, N, <NONE>, 'MpHeapSize', \ - MpHeapValidate, N, <NONE>, 'MpHeapValidate', \ - ODBCGetTryWaitValue, N, <VOID>, 'ODBCGetTryWaitValue', \ - ODBCInternalConnect, W, <NONE>, 'ODBCInternalConnectW', \ - ODBCQualifyFileDSN, W, <NONE>, 'ODBCQualifyFileDSNW', \ - ODBCSetTryWaitValue, N, <.dwValue>, 'ODBCSetTryWaitValue', \ - OpenODBCPerfData, N, <NONE>, 'OpenODBCPerfData', \ - PostComponentError, N, <NONE>, 'PostComponentError', \ - PostODBCComponentError, N, <NONE>, 'PostODBCComponentError', \ - PostODBCError, N, <NONE>, 'PostODBCError', \ - SQLAllocConnect, N, <.henv, .phdbc>, 'SQLAllocConnect', \ - SQLAllocEnv, N, <.phenv>, 'SQLAllocEnv', \ - SQLAllocHandle, N, <.HandleType, .InputHandle, .OutputHandle>, 'SQLAllocHandle', \ - SQLAllocHandleStd, N, <.fHandleType, .hInput, .phOutput>, 'SQLAllocHandleStd', \ - SQLAllocStmt, N, <.hdbc, .phstmt>, 'SQLAllocStmt', \ - SQLBindCol, N, <.hstmt, .icol, .fCType, .rgbValue, .cbValueMax, .pcbValue>, 'SQLBindCol', \ - SQLBindParam, N, <.StatementHandle, .ParameterNumber, .ValueType, .ParameterType, .LengthPrecision, .ParameterScale, .ParameterValue, .StrLen_or_Ind>, 'SQLBindParam', \ - SQLBindParameter, N, <.hstmt, .ipar, .fParamType, .fCType, .fSqlType, .cbColDef, .ibScale, .rgbValue, .cbValueMax, .pcbValue>, 'SQLBindParameter', \ - SQLBrowseConnect, N, <.hdbc, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut>, 'SQLBrowseConnect', \ - SQLBrowseConnect, A, <.hdbc, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut>, 'SQLBrowseConnectA', \ - SQLBrowseConnect, W, <.hdbc, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut>, 'SQLBrowseConnectW', \ - SQLBulkOperations, N, <.StatementHandle, .Operation>, 'SQLBulkOperations', \ - SQLCancel, N, <.hstmt>, 'SQLCancel', \ - SQLCloseCursor, N, <.StatementHandle>, 'SQLCloseCursor', \ - SQLColAttribute, N, <.hstmt, .iCol, .iField, .pCharAttr, .cbCharAttrMax, .pcbCharAttr, .pNumAttr>, 'SQLColAttribute', \ - SQLColAttribute, A, <.hstmt, .iCol, .iField, .pCharAttr, .cbCharAttrMax, .pcbCharAttr, .pNumAttr>, 'SQLColAttributeA', \ - SQLColAttribute, W, <.hstmt, .iCol, .iField, .pCharAttr, .cbCharAttrMax, .pcbCharAttr, .pNumAttr>, 'SQLColAttributeW', \ - SQLColAttributes, N, <.hstmt, .icol, .fDescType, .rgbDesc, .cbDescMax, .pcbDesc, .pfDesc>, 'SQLColAttributes', \ - SQLColAttributes, A, <.hstmt, .icol, .fDescType, .rgbDesc, .cbDescMax, .pcbDesc, .pfDesc>, 'SQLColAttributesA', \ - SQLColAttributes, W, <.hstmt, .icol, .fDescType, .rgbDesc, .cbDescMax, .pcbDesc, .pfDesc>, 'SQLColAttributesW', \ - SQLColumnPrivileges, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName>, 'SQLColumnPrivileges', \ - SQLColumnPrivileges, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName>, 'SQLColumnPrivilegesA', \ - SQLColumnPrivileges, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName>, 'SQLColumnPrivilegesW', \ - SQLColumns, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName>, 'SQLColumns', \ - SQLColumns, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName>, 'SQLColumnsA', \ - SQLColumns, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName>, 'SQLColumnsW', \ - SQLConnect, N, <.hdbc, .szDSN, .cbDSN, .szUID, .cbUID, .szAuthStr, .cbAuthStr>, 'SQLConnect', \ - SQLConnect, A, <.hdbc, .szDSN, .cbDSN, .szUID, .cbUID, .szAuthStr, .cbAuthStr>, 'SQLConnectA', \ - SQLConnect, W, <.hdbc, .szDSN, .cbDSN, .szUID, .cbUID, .szAuthStr, .cbAuthStr>, 'SQLConnectW', \ - SQLCopyDesc, N, <.SourceDescHandle, .TargetDescHandle>, 'SQLCopyDesc', \ - SQLDataSources, N, <.henv, .fDirection, .szDSN, .cbDSNMax, .pcbDSN, .szDescription, .cbDescriptionMax, .pcbDescription>, 'SQLDataSources', \ - SQLDataSources, A, <.henv, .fDirection, .szDSN, .cbDSNMax, .pcbDSN, .szDescription, .cbDescriptionMax, .pcbDescription>, 'SQLDataSourcesA', \ - SQLDataSources, W, <.henv, .fDirection, .szDSN, .cbDSNMax, .pcbDSN, .szDescription, .cbDescriptionMax, .pcbDescription>, 'SQLDataSourcesW', \ - SQLDescribeCol, N, <.hstmt, .icol, .szColName, .cbColNameMax, .pcbColName, .pfSqlType, .pcbColDef, .pibScale, .pfNullable>, 'SQLDescribeCol', \ - SQLDescribeCol, A, <.hstmt, .icol, .szColName, .cbColNameMax, .pcbColName, .pfSqlType, .pcbColDef, .pibScale, .pfNullable>, 'SQLDescribeColA', \ - SQLDescribeCol, W, <.hstmt, .icol, .szColName, .cbColNameMax, .pcbColName, .pfSqlType, .pcbColDef, .pibScale, .pfNullable>, 'SQLDescribeColW', \ - SQLDescribeParam, N, <.hstmt, .ipar, .pfSqlType, .pcbParamDef, .pibScale, .pfNullable>, 'SQLDescribeParam', \ - SQLDisconnect, N, <.hdbc>, 'SQLDisconnect', \ - SQLDriverConnect, N, <.hdbc, .hwnd, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut, .fDriverCompletion>, 'SQLDriverConnect', \ - SQLDriverConnect, A, <.hdbc, .hwnd, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut, .fDriverCompletion>, 'SQLDriverConnectA', \ - SQLDriverConnect, W, <.hdbc, .hwnd, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut, .fDriverCompletion>, 'SQLDriverConnectW', \ - SQLDrivers, N, <.henv, .fDirection, .szDriverDesc, .cbDriverDescMax, .pcbDriverDesc, .szDriverAttributes, .cbDrvrAttrMax, .pcbDrvrAttr>, 'SQLDrivers', \ - SQLDrivers, A, <.henv, .fDirection, .szDriverDesc, .cbDriverDescMax, .pcbDriverDesc, .szDriverAttributes, .cbDrvrAttrMax, .pcbDrvrAttr>, 'SQLDriversA', \ - SQLDrivers, W, <.henv, .fDirection, .szDriverDesc, .cbDriverDescMax, .pcbDriverDesc, .szDriverAttributes, .cbDrvrAttrMax, .pcbDrvrAttr>, 'SQLDriversW', \ - SQLEndTran, N, <.HandleType, .handle, .CompletionType>, 'SQLEndTran', \ - SQLError, N, <.henv, .hdbc, .hstmt, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLError', \ - SQLError, A, <.henv, .hdbc, .hstmt, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLErrorA', \ - SQLError, W, <.henv, .hdbc, .hstmt, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLErrorW', \ - SQLExecDirect, N, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLExecDirect', \ - SQLExecDirect, A, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLExecDirectA', \ - SQLExecDirect, W, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLExecDirectW', \ - SQLExecute, N, <.hstmt>, 'SQLExecute', \ - SQLExtendedFetch, N, <.hstmt, .fFetchType, .irow, .pcrow, .rgfRowStatus>, 'SQLExtendedFetch', \ - SQLFetch, N, <.hstmt>, 'SQLFetch', \ - SQLFetchScroll, N, <.StatementHandle, .FetchOrientation, .FetchOffset>, 'SQLFetchScroll', \ - SQLForeignKeys, N, <.hstmt, .szPkCatalogName, .cbPkCatalogName, .szPkSchemaName, .cbPkSchemaName, .szPkTableName, .cbPkTableName, .szFkCatalogName, .cbFkCatalogName, .szFkSchemaName, .cbFkSchemaName, .szFkTableName, .cbFkTableName>, 'SQLForeignKeys', - SQLForeignKeys, A, <.hstmt, .szPkCatalogName, .cbPkCatalogName, .szPkSchemaName, .cbPkSchemaName, .szPkTableName, .cbPkTableName, .szFkCatalogName, .cbFkCatalogName, .szFkSchemaName, .cbFkSchemaName, .szFkTableName, .cbFkTableName>, 'SQLForeignKeysA', - SQLForeignKeys, W, <.hstmt, .szPkCatalogName, .cbPkCatalogName, .szPkSchemaName, .cbPkSchemaName, .szPkTableName, .cbPkTableName, .szFkCatalogName, .cbFkCatalogName, .szFkSchemaName, .cbFkSchemaName, .szFkTableName, .cbFkTableName>, 'SQLForeignKeysW', - SQLFreeConnect, N, <.hdbc>, 'SQLFreeConnect', \ - SQLFreeEnv, N, <.henv>, 'SQLFreeEnv', \ - SQLFreeHandle, N, <.HandleType, .handle>, 'SQLFreeHandle', \ - SQLFreeStmt, N, <.hstmt, .fOption>, 'SQLFreeStmt', \ - SQLGetConnectAttr, N, <.ConnectionHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetConnectAttr', \ - SQLGetConnectAttr, A, <.ConnectionHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetConnectAttrA', \ - SQLGetConnectAttr, W, <.ConnectionHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetConnectAttrW', \ - SQLGetConnectOption, N, <.hdbc, .fOption, .pvParam>, 'SQLGetConnectOption', \ - SQLGetConnectOption, A, <.hdbc, .fOption, .pvParam>, 'SQLGetConnectOptionA', \ - SQLGetConnectOption, W, <.hdbc, .fOption, .pvParam>, 'SQLGetConnectOptionW', \ - SQLGetCursorName, N, <.hstmt, .szCursor, .cbCursorMax, .pcbCursor>, 'SQLGetCursorName', \ - SQLGetCursorName, A, <.hstmt, .szCursor, .cbCursorMax, .pcbCursor>, 'SQLGetCursorNameA', \ - SQLGetCursorName, W, <.hstmt, .szCursor, .cbCursorMax, .pcbCursor>, 'SQLGetCursorNameW', \ - SQLGetData, N, <.hstmt, .icol, .fCType, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetData', \ - SQLGetDescField, N, <.hdesc, .iRecord, .iField, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetDescField', \ - SQLGetDescField, A, <.hdesc, .iRecord, .iField, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetDescFieldA', \ - SQLGetDescField, W, <.hdesc, .iRecord, .iField, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetDescFieldW', \ - SQLGetDescRec, N, <.hdesc, .iRecord, .szName, .cbNameMax, .pcbName, .pfType, .pfSubType, .pLength, .pPrecision, .pScale, .pNullable>, 'SQLGetDescRec', \ - SQLGetDescRec, A, <.hdesc, .iRecord, .szName, .cbNameMax, .pcbName, .pfType, .pfSubType, .pLength, .pPrecision, .pScale, .pNullable>, 'SQLGetDescRecA', \ - SQLGetDescRec, W, <.hdesc, .iRecord, .szName, .cbNameMax, .pcbName, .pfType, .pfSubType, .pLength, .pPrecision, .pScale, .pNullable>, 'SQLGetDescRecW', \ - SQLGetDiagField, N, <.HandleType, .handle, .RecNumber, .DiagIdentifier, .DiagInfo, .BufferLength, .StringLength>, 'SQLGetDiagField', \ - SQLGetDiagField, A, <.HandleType, .handle, .RecNumber, .DiagIdentifier, .DiagInfo, .BufferLength, .StringLength>, 'SQLGetDiagFieldA', \ - SQLGetDiagField, W, <.HandleType, .handle, .RecNumber, .DiagIdentifier, .DiagInfo, .BufferLength, .StringLength>, 'SQLGetDiagFieldW', \ - SQLGetDiagRec, N, <.fHandleType, .handle, .iRecord, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLGetDiagRec', \ - SQLGetDiagRec, A, <.fHandleType, .handle, .iRecord, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLGetDiagRecA', \ - SQLGetDiagRec, W, <.fHandleType, .handle, .iRecord, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLGetDiagRecW', \ - SQLGetEnvAttr, N, <.EnvironmentHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetEnvAttr', \ - SQLGetFunctions, N, <.hdbc, .fFunction, .pfExists>, 'SQLGetFunctions', \ - SQLGetInfo, N, <.hdbc, .fInfoType, .rgbInfoValue, .cbInfoValueMax, .pcbInfoValue>, 'SQLGetInfo', \ - SQLGetInfo, A, <.hdbc, .fInfoType, .rgbInfoValue, .cbInfoValueMax, .pcbInfoValue>, 'SQLGetInfoA', \ - SQLGetInfo, W, <.hdbc, .fInfoType, .rgbInfoValue, .cbInfoValueMax, .pcbInfoValue>, 'SQLGetInfoW', \ - SQLGetStmtAttr, N, <.hstmt, .fAttribute, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetStmtAttr', \ - SQLGetStmtAttr, A, <.hstmt, .fAttribute, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetStmtAttrA', \ - SQLGetStmtAttr, W, <.hstmt, .fAttribute, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetStmtAttrW', \ - SQLGetStmtOption, N, <.hstmt, .fOption, .pvParam>, 'SQLGetStmtOption', \ - SQLGetTypeInfo, N, <.hstmt, .fSqlType>, 'SQLGetTypeInfo', \ - SQLGetTypeInfo, A, <.hstmt, .fSqlType>, 'SQLGetTypeInfoA', \ - SQLGetTypeInfo, W, <.hstmt, .fSqlType>, 'SQLGetTypeInfoW', \ - SQLMoreResults, N, <.hstmt>, 'SQLMoreResults', \ - SQLNativeSql, N, <.hdbc, .szSqlStrIn, .cbSqlStrIn, .szSqlStr, .cbSqlStrMax, .pcbSqlStr>, 'SQLNativeSql', \ - SQLNativeSql, A, <.hdbc, .szSqlStrIn, .cbSqlStrIn, .szSqlStr, .cbSqlStrMax, .pcbSqlStr>, 'SQLNativeSqlA', \ - SQLNativeSql, W, <.hdbc, .szSqlStrIn, .cbSqlStrIn, .szSqlStr, .cbSqlStrMax, .pcbSqlStr>, 'SQLNativeSqlW', \ - SQLNumParams, N, <.hstmt, .pcpar>, 'SQLNumParams', \ - SQLNumResultCols, N, <.hstmt, .pccol>, 'SQLNumResultCols', \ - SQLParamData, N, <.hstmt, .prgbValue>, 'SQLParamData', \ - SQLParamOptions, N, <.hstmt, .crow, .pirow>, 'SQLParamOptions', \ - SQLPrepare, N, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLPrepare', \ - SQLPrepare, A, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLPrepareA', \ - SQLPrepare, W, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLPrepareW', \ - SQLPrimaryKeys, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLPrimaryKeys', \ - SQLPrimaryKeys, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLPrimaryKeysA', \ - SQLPrimaryKeys, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLPrimaryKeysW', \ - SQLProcedureColumns, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName, .szColumnName, .cbColumnName>, 'SQLProcedureColumns', \ - SQLProcedureColumns, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName, .szColumnName, .cbColumnName>, 'SQLProcedureColumnsA', \ - SQLProcedureColumns, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName, .szColumnName, .cbColumnName>, 'SQLProcedureColumnsW', \ - SQLProcedures, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName>, 'SQLProcedures', \ - SQLProcedures, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName>, 'SQLProceduresA', \ - SQLProcedures, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName>, 'SQLProceduresW', \ - SQLPutData, N, <.hstmt, .rgbValue, .cbValue>, 'SQLPutData', \ - SQLRowCount, N, <.hstmt, .pcrow>, 'SQLRowCount', \ - SQLSetConnectAttr, N, <.hdbc, .fAttribute, .rgbValue, .cbValue>, 'SQLSetConnectAttr', \ - SQLSetConnectAttr, A, <.hdbc, .fAttribute, .rgbValue, .cbValue>, 'SQLSetConnectAttrA', \ - SQLSetConnectAttr, W, <.hdbc, .fAttribute, .rgbValue, .cbValue>, 'SQLSetConnectAttrW', \ - SQLSetConnectOption, N, <.hdbc, .fOption, .vParam>, 'SQLSetConnectOption', \ - SQLSetConnectOption, A, <.hdbc, .fOption, .vParam>, 'SQLSetConnectOptionA', \ - SQLSetConnectOption, W, <.hdbc, .fOption, .vParam>, 'SQLSetConnectOptionW', \ - SQLSetCursorName, N, <.hstmt, .szCursor, .cbCursor>, 'SQLSetCursorName', \ - SQLSetCursorName, A, <.hstmt, .szCursor, .cbCursor>, 'SQLSetCursorNameA', \ - SQLSetCursorName, W, <.hstmt, .szCursor, .cbCursor>, 'SQLSetCursorNameW', \ - SQLSetDescField, N, <.DescriptorHandle, .RecNumber, .FieldIdentifier, .Value, .BufferLength>, 'SQLSetDescField', \ - SQLSetDescField, A, <.DescriptorHandle, .RecNumber, .FieldIdentifier, .Value, .BufferLength>, 'SQLSetDescFieldA', \ - SQLSetDescField, W, <.DescriptorHandle, .RecNumber, .FieldIdentifier, .Value, .BufferLength>, 'SQLSetDescFieldW', \ - SQLSetDescRec, N, <.DescriptorHandle, .RecNumber, .lType, .SubType, .Length, .Precision, .kScale, .Data, .StringLength, .Indicator>, 'SQLSetDescRec', \ - SQLSetEnvAttr, N, <.EnvironmentHandle, .lAttribute, .Value, .StringLength>, 'SQLSetEnvAttr', \ - SQLSetParam, N, <.hstmt, .ipar, .fCType, .fSqlType, .cbParamDef, .ibScale, .rgbValue, .pcbValue>, 'SQLSetParam', \ - SQLSetPos, N, <.hstmt, .irow, .fOption, .fLock>, 'SQLSetPos', \ - SQLSetScrollOptions, N, <.hstmt, .fConcurrency, .crowKeyset, .crowRowset>, 'SQLSetScrollOptions', \ - SQLSetStmtAttr, N, <.StatementHandle, .lAttribute, .Value, .StringLength>, 'SQLSetStmtAttr', \ - SQLSetStmtAttr, A, <.StatementHandle, .lAttribute, .Value, .StringLength>, 'SQLSetStmtAttrA', \ - SQLSetStmtAttr, W, <.StatementHandle, .lAttribute, .Value, .StringLength>, 'SQLSetStmtAttrW', \ - SQLSetStmtOption, N, <.hstmt, .fOption, .vParam>, 'SQLSetStmtOption', \ - SQLSpecialColumns, N, <.hstmt, .fColType, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fScope, .fNullable>, 'SQLSpecialColumns', \ - SQLSpecialColumns, A, <.hstmt, .fColType, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fScope, .fNullable>, 'SQLSpecialColumnsA', \ - SQLSpecialColumns, W, <.hstmt, .fColType, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fScope, .fNullable>, 'SQLSpecialColumnsW', \ - SQLStatistics, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fUnique, .fAccuracy>, 'SQLStatistics', \ - SQLStatistics, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fUnique, .fAccuracy>, 'SQLStatisticsA', \ - SQLStatistics, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fUnique, .fAccuracy>, 'SQLStatisticsW', \ - SQLTablePrivileges, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLTablePrivileges', \ - SQLTablePrivileges, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLTablePrivilegesA', \ - SQLTablePrivileges, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLTablePrivilegesW', \ - SQLTables, N, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szTableType, .cbTableType>, 'SQLTables', \ - SQLTables, A, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szTableType, .cbTableType>, 'SQLTablesA', \ - SQLTables, W, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szTableType, .cbTableType>, 'SQLTablesW', \ - SQLTransact, N, <.henv, .hdbc, .fType>, 'SQLTransact', \ - SearchStatusCode, N, <NONE>, 'SearchStatusCode', \ - VFreeErrors, N, <NONE>, 'VFreeErrors', \ - VRetrieveDriverErrorsRowCol, N, <NONE>, 'VRetrieveDriverErrorsRowCol', \ - ValidateErrorQueue, N, <NONE>, 'ValidateErrorQueue', \ - g_hHeapMalloc, N, <NONE>, 'g_hHeapMalloc' DELETED freshlib/imports/Win32/api/ole32.inc Index: freshlib/imports/Win32/api/ole32.inc ================================================================== --- freshlib/imports/Win32/api/ole32.inc +++ /dev/null @@ -1,340 +0,0 @@ -; ole32.dll API calls (ASCII) -import_proto ole32, \ - BindMoniker, N, <.pmk, .grfOpt, .iidResult, .ppvResult>, 'BindMoniker', \ - CLIPFORMAT_UserFree, N, <.pLong, .pClipformat>, 'CLIPFORMAT_UserFree', \ - CLIPFORMAT_UserMarshal, N, <.pLong, .pChar, .pClipformat>, 'CLIPFORMAT_UserMarshal', \ - CLIPFORMAT_UserSize, N, <.pLong, .lLong, .pClipformat>, 'CLIPFORMAT_UserSize', \ - CLIPFORMAT_UserUnmarshal, N, <.pLong, .pChar, .pClipformat>, 'CLIPFORMAT_UserUnmarshal', \ - CLSIDFromOle1Class, N, <NONE>, 'CLSIDFromOle1Class', \ - CLSIDFromProgID, N, <.TSzProgID, .T>, 'CLSIDFromProgID', \ - CLSIDFromProgIDEx, N, <.lpszProgID, .lpclsid>, 'CLSIDFromProgIDEx', \ - CLSIDFromString, N, <.lpsz, .pclsid>, 'CLSIDFromString', \ - CoAddRefServerProcess, N, <VOID>, 'CoAddRefServerProcess', \ - CoAllowSetForegroundWindow, N, <.pUnk, .lpvReserved>, 'CoAllowSetForegroundWindow', \ - CoBuildVersion, N, <VOID>, 'CoBuildVersion', \ - CoCancelCall, N, <.dwThreadId, .ulTimeout>, 'CoCancelCall', \ - CoCopyProxy, N, <.pProxy, .ppCopy>, 'CoCopyProxy', \ - CoCreateFreeThreadedMarshaler, N, <.punkOuter, .ppunkMarshal>, 'CoCreateFreeThreadedMarshaler', \ - CoCreateGuid, N, <.pguid>, 'CoCreateGuid', \ - CoCreateInstance, N, <.rclsid, .pUnkOuter, .dwClsContext, .riid, .ppv>, 'CoCreateInstance', \ - CoCreateInstanceEx, N, <.Clsid, .punkOuter, .dwClsCtx, .pServerInfo, .dwCount, .pResults>, 'CoCreateInstanceEx', \ - CoCreateObjectInContext, N, <NONE>, 'CoCreateObjectInContext', \ - CoDeactivateObject, N, <NONE>, 'CoDeactivateObject', \ - CoDisableCallCancellation, N, <.pReserved>, 'CoDisableCallCancellation', \ - CoDisconnectObject, N, <.pUnk, .dwReserved>, 'CoDisconnectObject', \ - CoDosDateTimeToFileTime, N, <.nDosDate, .nDosTime, .lpFileTime>, 'CoDosDateTimeToFileTime', \ - CoEnableCallCancellation, N, <.pReserved>, 'CoEnableCallCancellation', \ - CoFileTimeNow, N, <.lpFileTime>, 'CoFileTimeNow', \ - CoFileTimeToDosDateTime, N, <.lpFileTime, .lpDosDate, .lpDosTime>, 'CoFileTimeToDosDateTime', \ - CoFreeAllLibraries, N, <VOID>, 'CoFreeAllLibraries', \ - CoFreeLibrary, N, <.hInst>, 'CoFreeLibrary', \ - CoFreeUnusedLibraries, N, <VOID>, 'CoFreeUnusedLibraries', \ - CoFreeUnusedLibrariesEx, N, <NONE>, 'CoFreeUnusedLibrariesEx', \ - CoGetApartmentID, N, <NONE>, 'CoGetApartmentID', \ - CoGetCallContext, N, <.riid, .ppInterface>, 'CoGetCallContext', \ - CoGetCallerTID, N, <NONE>, 'CoGetCallerTID', \ - CoGetCancelObject, N, <.dwThreadId, .iid, .ppUnk>, 'CoGetCancelObject', \ - CoGetClassObject, N, <.rclsid, .dwClsContext, .pvReserved, .riid, .ppv>, 'CoGetClassObject', \ - CoGetClassVersion, N, <.pClassSpec, .pdwVersionMS, .pdwVersionLS>, 'CoGetClassVersion', \ - CoGetComCatalog, N, <NONE>, 'CoGetComCatalog', \ - CoGetContextToken, N, <NONE>, 'CoGetContextToken', \ - CoGetCurrentLogicalThreadId, N, <NONE>, 'CoGetCurrentLogicalThreadId', \ - CoGetCurrentProcess, N, <VOID>, 'CoGetCurrentProcess', \ - CoGetDefaultContext, N, <NONE>, 'CoGetDefaultContext', \ - CoGetInstanceFromFile, N, <.pServerInfo, .pClsid, .punkOuter, .dwClsCtx, .grfMode, .pwszName, .dwCount, .pResults>, 'CoGetInstanceFromFile', \ - CoGetInstanceFromIStorage, N, <.pServerInfo, .pClsid, .punkOuter, .dwClsCtx, .pstg, .dwCount, .pResults>, 'CoGetInstanceFromIStorage', \ - CoGetInterceptor, N, <NONE>, 'CoGetInterceptor', \ - CoGetInterceptorFromTypeInfo, N, <NONE>, 'CoGetInterceptorFromTypeInfo', \ - CoGetInterfaceAndReleaseStream, N, <.pStm, .iid, .ppv>, 'CoGetInterfaceAndReleaseStream', \ - CoGetMalloc, N, <.dwMemContext, .ppMalloc>, 'CoGetMalloc', \ - CoGetMarshalSizeMax, N, <.pulSize, .riid, .pUnk, .dwDestContext, .pvDestContext, .mshlflags>, 'CoGetMarshalSizeMax', \ - CoGetObject, N, <.pszName, .pBindOptions, .riid, .ppv>, 'CoGetObject', \ - CoGetObjectContext, N, <.riid, .ppv>, 'CoGetObjectContext', \ - CoGetPSClsid, N, <.riid, .pClsid>, 'CoGetPSClsid', \ - CoGetProcessIdentifier, N, <NONE>, 'CoGetProcessIdentifier', \ - CoGetStandardMarshal, N, <.riid, .pUnk, .dwDestContext, .pvDestContext, .mshlflags, .ppMarshal>, 'CoGetStandardMarshal', \ - CoGetState, N, <NONE>, 'CoGetState', \ - CoGetStdMarshalEx, N, <.pUnkOuter, .smexflags, .ppUnkInner>, 'CoGetStdMarshalEx', \ - CoGetSystemSecurityPermissions, N, <NONE>, 'CoGetSystemSecurityPermissions', \ - CoGetTreatAsClass, N, <.clsidOld, .pClsidNew>, 'CoGetTreatAsClass', \ - CoImpersonateClient, N, <VOID>, 'CoImpersonateClient', \ - CoInitialize, N, <.pzReserved>, 'CoInitialize', \ - CoInitializeEx, N, <.pvReserved, .dwCoInit>, 'CoInitializeEx', \ - CoInitializeSecurity, N, <.pSecDesc, .cAuthSvc, .asAuthSvc, .pReserved1, .dwAuthnLevel, .dwImpLevel, .pAuthList, .dwCapabilities, .pReserved3>, 'CoInitializeSecurity', \ - CoInitializeWO, W, <NONE>, 'CoInitializeWOW', \ - CoInstall, N, <.pbc, .dwFlags, .pClassSpec, .pQuery, .pszCodeBase>, 'CoInstall', \ - CoInvalidateRemoteMachineBindings, N, <NONE>, 'CoInvalidateRemoteMachineBindings', \ - CoIsHandlerConnected, N, <.pUnk>, 'CoIsHandlerConnected', \ - CoIsOle1Class, N, <.rclsid>, 'CoIsOle1Class', \ - CoLoadLibrary, N, <.lpszLibName, .bAutoFree>, 'CoLoadLibrary', \ - CoLockObjectExternal, N, <.pUnk, .fLock, .fLastUnlockReleases>, 'CoLockObjectExternal', \ - CoMarshalHresult, N, <.pstm, .hresult>, 'CoMarshalHresult', \ - CoMarshalInterThreadInterfaceInStream, N, <.riid, .pUnk, .ppStm>, 'CoMarshalInterThreadInterfaceInStream', \ - CoMarshalInterface, N, <.pStm, .riid, .pUnk, .dwDestContext, .pvDestContext, .mshlflags>, 'CoMarshalInterface', \ - CoPopServiceDomain, N, <NONE>, 'CoPopServiceDomain', \ - CoPushServiceDomain, N, <NONE>, 'CoPushServiceDomain', \ - CoQueryAuthenticationServices, N, <.pcAuthSvc, .asAuthSvc>, 'CoQueryAuthenticationServices', \ - CoQueryClientBlanket, N, <.pAuthnSvc, .pAuthzSvc, .pServerPrincName, .pAuthnLevel, .pImpLevel, .pPrivs, .pCapabilities>, 'CoQueryClientBlanket', \ - CoQueryProxyBlanket, N, <.pProxy, .pwAuthnSvc, .pAuthzSvc, .pServerPrincName, .pAuthnLevel, .pImpLevel, .pAuthInfo, .pCapabilites>, 'CoQueryProxyBlanket', \ - CoQueryReleaseObject, N, <NONE>, 'CoQueryReleaseObject', \ - CoReactivateObject, N, <NONE>, 'CoReactivateObject', \ - CoRegisterChannelHook, N, <.ExtensionUuid, .pChannelHook>, 'CoRegisterChannelHook', \ - CoRegisterClassObject, N, <.rclsid, .pUnk, .dwClsContext, .flags, .lpdwRegister>, 'CoRegisterClassObject', \ - CoRegisterInitializeSpy, N, <NONE>, 'CoRegisterInitializeSpy', \ - CoRegisterMallocSpy, N, <.pMallocSpy>, 'CoRegisterMallocSpy', \ - CoRegisterMessageFilter, N, <.lpMessageFilter, .lplpMessageFilter>, 'CoRegisterMessageFilter', \ - CoRegisterPSClsid, N, <.riid, .rclsid>, 'CoRegisterPSClsid', \ - CoRegisterSurrogate, N, <.pSurrogate>, 'CoRegisterSurrogate', \ - CoRegisterSurrogateEx, N, <NONE>, 'CoRegisterSurrogateEx', \ - CoReleaseMarshalData, N, <.pStm>, 'CoReleaseMarshalData', \ - CoReleaseServerProcess, N, <VOID>, 'CoReleaseServerProcess', \ - CoResumeClassObjects, N, <VOID>, 'CoResumeClassObjects', \ - CoRetireServer, N, <NONE>, 'CoRetireServer', \ - CoRevertToSelf, N, <VOID>, 'CoRevertToSelf', \ - CoRevokeClassObject, N, <.dwRegister>, 'CoRevokeClassObject', \ - CoRevokeInitializeSpy, N, <NONE>, 'CoRevokeInitializeSpy', \ - CoRevokeMallocSpy, N, <VOID>, 'CoRevokeMallocSpy', \ - CoSetCancelObject, N, <.pUnk>, 'CoSetCancelObject', \ - CoSetProxyBlanket, N, <.pProxy, .dwAuthnSvc, .dwAuthzSvc, .pServerPrincName, .dwAuthnLevel, .dwImpLevel, .pAuthInfo, .dwCapabilities>, 'CoSetProxyBlanket', \ - CoSetState, N, <NONE>, 'CoSetState', \ - CoSuspendClassObjects, N, <VOID>, 'CoSuspendClassObjects', \ - CoSwitchCallContext, N, <.pNewObject, .ppOldObject>, 'CoSwitchCallContext', \ - CoTaskMemAlloc, N, <.cb>, 'CoTaskMemAlloc', \ - CoTaskMemFree, N, <.lpIDList>, 'CoTaskMemFree', \ - CoTaskMemRealloc, N, <.pv, .cb>, 'CoTaskMemRealloc', \ - CoTestCancel, N, <VOID>, 'CoTestCancel', \ - CoTreatAsClass, N, <.clsidOld, .clsidNew>, 'CoTreatAsClass', \ - CoUninitialize, N, <VOID>, 'CoUninitialize', \ - CoUnloadingWO, W, <NONE>, 'CoUnloadingWOW', \ - CoUnmarshalHresult, N, <.pstm, .phresult>, 'CoUnmarshalHresult', \ - CoUnmarshalInterface, N, <.pStm, .riid, .ppv>, 'CoUnmarshalInterface', \ - CoWaitForMultipleHandles, N, <.dwFlags, .dwTimeout, .cHandles, .pHandles, .lpdwindex>, 'CoWaitForMultipleHandles', \ - ComPs_CStdStubBuffer_AddRef, N, <NONE>, 'ComPs_CStdStubBuffer_AddRef', \ - ComPs_CStdStubBuffer_Connect, N, <NONE>, 'ComPs_CStdStubBuffer_Connect', \ - ComPs_CStdStubBuffer_CountRefs, N, <NONE>, 'ComPs_CStdStubBuffer_CountRefs', \ - ComPs_CStdStubBuffer_DebugServerQueryInterface, N, <NONE>, 'ComPs_CStdStubBuffer_DebugServerQueryInterface', \ - ComPs_CStdStubBuffer_DebugServerRelease, N, <NONE>, 'ComPs_CStdStubBuffer_DebugServerRelease', \ - ComPs_CStdStubBuffer_Disconnect, N, <NONE>, 'ComPs_CStdStubBuffer_Disconnect', \ - ComPs_CStdStubBuffer_Invoke, N, <NONE>, 'ComPs_CStdStubBuffer_Invoke', \ - ComPs_CStdStubBuffer_IsIIDSupported, N, <NONE>, 'ComPs_CStdStubBuffer_IsIIDSupported', \ - ComPs_CStdStubBuffer_QueryInterface, N, <NONE>, 'ComPs_CStdStubBuffer_QueryInterface', \ - ComPs_IUnknown_AddRef_Proxy, N, <NONE>, 'ComPs_IUnknown_AddRef_Proxy', \ - ComPs_IUnknown_QueryInterface_Proxy, N, <NONE>, 'ComPs_IUnknown_QueryInterface_Proxy', \ - ComPs_IUnknown_Release_Proxy, N, <NONE>, 'ComPs_IUnknown_Release_Proxy', \ - ComPs_NdrCStdStubBuffer2_Release, N, <NONE>, 'ComPs_NdrCStdStubBuffer2_Release', \ - ComPs_NdrCStdStubBuffer_Release, N, <NONE>, 'ComPs_NdrCStdStubBuffer_Release', \ - ComPs_NdrClientCall2, N, <NONE>, 'ComPs_NdrClientCall2', \ - ComPs_NdrClientCall2_va, N, <NONE>, 'ComPs_NdrClientCall2_va', \ - ComPs_NdrDllCanUnloadNow, N, <NONE>, 'ComPs_NdrDllCanUnloadNow', \ - ComPs_NdrDllGetClassObject, N, <NONE>, 'ComPs_NdrDllGetClassObject', \ - ComPs_NdrDllRegisterProxy, N, <NONE>, 'ComPs_NdrDllRegisterProxy', \ - ComPs_NdrDllUnregisterProxy, N, <NONE>, 'ComPs_NdrDllUnregisterProxy', \ - ComPs_NdrStubCall2, N, <NONE>, 'ComPs_NdrStubCall2', \ - ComPs_NdrStubForwardingFunction, N, <NONE>, 'ComPs_NdrStubForwardingFunction', \ - CreateAntiMoniker, N, <.ppmk>, 'CreateAntiMoniker', \ - CreateBindCtx, N, <.reserved, .ppbc>, 'CreateBindCtx', \ - CreateClassMoniker, N, <.rclsid, .ppmk>, 'CreateClassMoniker', \ - CreateDataAdviseHolder, N, <.ppDAHolder>, 'CreateDataAdviseHolder', \ - CreateDataCache, N, <.pUnkOuter, .rclsid, .iid, .ppv>, 'CreateDataCache', \ - CreateErrorInfo, N, <.pperrinfo>, 'CreateErrorInfo', \ - CreateFileMoniker, N, <.lpszPathName, .ppmk>, 'CreateFileMoniker', \ - CreateGenericComposite, N, <.pmkFirst, .pmkRest, .ppmkComposite>, 'CreateGenericComposite', \ - CreateILockBytesOnHGlobal, N, <.hGlobal, .fDeleteOnRelease, .pplkbyt>, 'CreateILockBytesOnHGlobal', \ - CreateItemMoniker, N, <.lpszDelim, .lpszItem, .ppmk>, 'CreateItemMoniker', \ - CreateObjrefMoniker, N, <.punk, .ppmk>, 'CreateObjrefMoniker', \ - CreateOleAdviseHolder, N, <.ppOAHolder>, 'CreateOleAdviseHolder', \ - CreatePointerMoniker, N, <.punk, .ppmk>, 'CreatePointerMoniker', \ - CreateStdProgressIndicator, N, <.hwndParent, .pszTitle, .pIbscCaller, .ppIbsc>, 'CreateStdProgressIndicator', \ - CreateStreamOnHGlobal, N, <.hGlobal, .fDeleteOnRelease, .ppstm>, 'CreateStreamOnHGlobal', \ - DcomChannelSetHResult, N, <NONE>, 'DcomChannelSetHResult', \ - DllDebugObjectRPCHook, N, <NONE>, 'DllDebugObjectRPCHook', \ - DllGetClassObjectWO, W, <NONE>, 'DllGetClassObjectWOW', \ -\; DllRegisterServer, N, <VOID>, 'DllRegisterServer', \ - DoDragDrop, N, <.pDataObj, .pDropSource, .dwOKEffects, .pdwEffect>, 'DoDragDrop', \ - EnableHookObject, N, <NONE>, 'EnableHookObject', \ - FmtIdToPropStgName, N, <.pfmtid, .oszName>, 'FmtIdToPropStgName', \ - FreePropVariantArray, N, <.cVariants, .rgvars>, 'FreePropVariantArray', \ - GetClassFile, N, <.szFilename, .pclsid>, 'GetClassFile', \ - GetConvertStg, N, <.pStg>, 'GetConvertStg', \ - GetDocumentBitStg, N, <NONE>, 'GetDocumentBitStg', \ - GetErrorInfo, N, <.dwReserved, .pperrinfo>, 'GetErrorInfo', \ - GetHGlobalFromILockBytes, N, <.plkbyt, .phglobal>, 'GetHGlobalFromILockBytes', \ - GetHGlobalFromStream, N, <.pstm, .phglobal>, 'GetHGlobalFromStream', \ - GetHookInterface, N, <NONE>, 'GetHookInterface', \ - GetRunningObjectTable, N, <.reserved, .pprot>, 'GetRunningObjectTable', \ - HACCEL_UserFree, N, <.pLong, .pHaccel>, 'HACCEL_UserFree', \ - HACCEL_UserMarshal, N, <.pLong, .pChar, .pHaccel>, 'HACCEL_UserMarshal', \ - HACCEL_UserSize, N, <.pLong, .lLong, .pHaccel>, 'HACCEL_UserSize', \ - HACCEL_UserUnmarshal, N, <.pLong, .pChar, .pHaccel>, 'HACCEL_UserUnmarshal', \ - HBITMAP_UserFree, N, <.pLong, .pHbitmap>, 'HBITMAP_UserFree', \ - HBITMAP_UserMarshal, N, <.pLong, .pChar, .pHbitmap>, 'HBITMAP_UserMarshal', \ - HBITMAP_UserSize, N, <.pLong, .lLong, .pHbitmap>, 'HBITMAP_UserSize', \ - HBITMAP_UserUnmarshal, N, <.pLong, .pChar, .pHbitmap>, 'HBITMAP_UserUnmarshal', \ - HBRUSH_UserFree, N, <NONE>, 'HBRUSH_UserFree', \ - HBRUSH_UserMarshal, N, <NONE>, 'HBRUSH_UserMarshal', \ - HBRUSH_UserSize, N, <NONE>, 'HBRUSH_UserSize', \ - HBRUSH_UserUnmarshal, N, <NONE>, 'HBRUSH_UserUnmarshal', \ - HDC_UserFree, N, <.pLong, .pHdc>, 'HDC_UserFree', \ - HDC_UserMarshal, N, <.pLong, .pChar, .pHdc>, 'HDC_UserMarshal', \ - HDC_UserSize, N, <.pLong, .lLong, .pHdc>, 'HDC_UserSize', \ - HDC_UserUnmarshal, N, <.pLong, .pChar, .pHdc>, 'HDC_UserUnmarshal', \ - HENHMETAFILE_UserFree, N, <NONE>, 'HENHMETAFILE_UserFree', \ - HENHMETAFILE_UserMarshal, N, <NONE>, 'HENHMETAFILE_UserMarshal', \ - HENHMETAFILE_UserSize, N, <NONE>, 'HENHMETAFILE_UserSize', \ - HENHMETAFILE_UserUnmarshal, N, <NONE>, 'HENHMETAFILE_UserUnmarshal', \ - HGLOBAL_UserFree, N, <.pLong, .pHglobal>, 'HGLOBAL_UserFree', \ - HGLOBAL_UserMarshal, N, <.pLong, .pChar, .pHglobal>, 'HGLOBAL_UserMarshal', \ - HGLOBAL_UserSize, N, <.pLong, .lLong, .pHglobal>, 'HGLOBAL_UserSize', \ - HGLOBAL_UserUnmarshal, N, <.pLong, .pChar, .pHglobal>, 'HGLOBAL_UserUnmarshal', \ - HICON_UserFree, N, <.pLong, .pHicon>, 'HICON_UserFree', \ - HICON_UserMarshal, N, <.pLong, .pChar, .pHicon>, 'HICON_UserMarshal', \ - HICON_UserSize, N, <.pLong, .llong, .pHicon>, 'HICON_UserSize', \ - HICON_UserUnmarshal, N, <.pLong, .pChar, .pHicon>, 'HICON_UserUnmarshal', \ - HMENU_UserFree, N, <.pLong, .pHmenu>, 'HMENU_UserFree', \ - HMENU_UserMarshal, N, <.pLong, .pChar, .pHmenu>, 'HMENU_UserMarshal', \ - HMENU_UserSize, N, <.pLong, .lLong, .pHmenu>, 'HMENU_UserSize', \ - HMENU_UserUnmarshal, N, <.pLong, .pChar, .pHmenu>, 'HMENU_UserUnmarshal', \ - HMETAFILEPICT_UserFree, N, <NONE>, 'HMETAFILEPICT_UserFree', \ - HMETAFILEPICT_UserMarshal, N, <NONE>, 'HMETAFILEPICT_UserMarshal', \ - HMETAFILEPICT_UserSize, N, <NONE>, 'HMETAFILEPICT_UserSize', \ - HMETAFILEPICT_UserUnmarshal, N, <NONE>, 'HMETAFILEPICT_UserUnmarshal', \ - HMETAFILE_UserFree, N, <NONE>, 'HMETAFILE_UserFree', \ - HMETAFILE_UserMarshal, N, <NONE>, 'HMETAFILE_UserMarshal', \ - HMETAFILE_UserSize, N, <NONE>, 'HMETAFILE_UserSize', \ - HMETAFILE_UserUnmarshal, N, <NONE>, 'HMETAFILE_UserUnmarshal', \ - HPALETTE_UserFree, N, <.pLong, .pHpalette>, 'HPALETTE_UserFree', \ - HPALETTE_UserMarshal, N, <.pLong, .pChar, .pHpalette>, 'HPALETTE_UserMarshal', \ - HPALETTE_UserSize, N, <.pLong, .lLong, .pHpalette>, 'HPALETTE_UserSize', \ - HPALETTE_UserUnmarshal, N, <.pLong, .pChar, .pHpalette>, 'HPALETTE_UserUnmarshal', \ - HWND_UserFree, N, <.pLong, .pHwnd>, 'HWND_UserFree', \ - HWND_UserMarshal, N, <.pLong, .pChar, .pHwnd>, 'HWND_UserMarshal', \ - HWND_UserSize, N, <.pLong, .lLong, .pHwnd>, 'HWND_UserSize', \ - HWND_UserUnmarshal, N, <.pLong, .pChar, .pHwnd>, 'HWND_UserUnmarshal', \ - HkOleRegisterObject, N, <NONE>, 'HkOleRegisterObject', \ - IIDFromString, N, <.lpsz, .lpiid>, 'IIDFromString', \ - IsAccelerator, N, <.hAccel, .cAccelEntries, .lpMsg, .lpwCmd>, 'IsAccelerator', \ - IsEqualGUID, N, <NONE>, 'IsEqualGUID', \ - IsValidIid, N, <NONE>, 'IsValidIid', \ - IsValidInterface, N, <NONE>, 'IsValidInterface', \ - IsValidPtrIn, N, <NONE>, 'IsValidPtrIn', \ - IsValidPtrOut, N, <NONE>, 'IsValidPtrOut', \ - MkParseDisplayName, N, <.pbc, .szUserName, .pchEaten, .ppmk>, 'MkParseDisplayName', \ - MonikerCommonPrefixWith, N, <.pmkThis, .pmkOther, .ppmkCommon>, 'MonikerCommonPrefixWith', \ - MonikerRelativePathTo, N, <.pmkSrc, .pmkDest, .ppmkRelPath, .dwReserved>, 'MonikerRelativePathTo', \ - OleBuildVersion, N, <VOID>, 'OleBuildVersion', \ - OleConvertIStorageToOLESTREAM, N, <.pstg, .lpolestream>, 'OleConvertIStorageToOLESTREAM', \ - OleConvertIStorageToOLESTREAMEx, N, <.pstg, .cfFormat, .lWidth, .lHeight, .dwSize, .pmedium, .polestm>, 'OleConvertIStorageToOLESTREAMEx', \ - OleConvertOLESTREAMToIStorage, N, <.lpolestream, .pstg, .ptd>, 'OleConvertOLESTREAMToIStorage', \ - OleConvertOLESTREAMToIStorageEx, N, <.polestm, .pstg, .pcfFormat, .plwWidth, .plHeight, .pdwSize, .pmedium>, 'OleConvertOLESTREAMToIStorageEx', \ - OleCreate, N, <.rclsid, .riid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreate', \ - OleCreateDefaultHandler, N, <.clsid, .pUnkOuter, .riid, .lplpObj>, 'OleCreateDefaultHandler', \ - OleCreateEmbeddingHelper, N, <.clsid, .pUnkOuter, .flags, .pCF, .riid, .lplpObj>, 'OleCreateEmbeddingHelper', \ - OleCreateEx, N, <.rclsid, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, .pStg, .ppvObj>, 'OleCreateEx', \ - OleCreateFromData, N, <.pSrcDataObj, .riid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateFromData', \ - OleCreateFromDataEx, N, <.pSrcDataObj, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, .pStg, .ppvObj>, 'OleCreateFromDataEx', \ - OleCreateFromFile, N, <.rclsid, .lpszFileName, .riid, .renderopt, .lpFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateFromFile', \ - OleCreateFromFileEx, N, <.rclsid, .lpszFileName, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, .pStg, .ppvObj>, 'OleCreateFromFileEx', \ - OleCreateLink, N, <.pmkLinkSrc, .riid, .renderopt, .lpFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateLink', \ - OleCreateLinkEx, N, <.pmkLinkSrc, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkEx', \ - OleCreateLinkFromData, N, <.pSrcDataObj, .riid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkFromData', \ - OleCreateLinkFromDataEx, N, <.pSrcDataObj, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkFromDataEx', \ - OleCreateLinkToFile, N, <.lpszFileName, .riid, .renderopt, .lpFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkToFile', \ - OleCreateLinkToFileEx, N, <.lpszFileName, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkToFileEx', \ - OleCreateMenuDescriptor, N, <.hmenuCombined, .lpMenuWidths>, 'OleCreateMenuDescriptor', \ - OleCreateStaticFromData, N, <.pSrcDataObj, .iid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateStaticFromData', \ - OleDestroyMenuDescriptor, N, <.holemenu>, 'OleDestroyMenuDescriptor', \ - OleDoAutoConvert, N, <.pStg, .pClsidNew>, 'OleDoAutoConvert', \ - OleDraw, N, <.pUnknown, .dwAspect, .hdcDraw, .lprcBounds>, 'OleDraw', \ - OleDuplicateData, N, <.hSrc, .cfFormat, .uiFlags>, 'OleDuplicateData', \ - OleFlushClipboard, N, <VOID>, 'OleFlushClipboard', \ - OleGetAutoConvert, N, <.clsidOld, .pClsidNew>, 'OleGetAutoConvert', \ - OleGetClipboard, N, <.ppDataObj>, 'OleGetClipboard', \ - OleGetIconOfClass, N, <.rclsid, .lpszLabel, .fUseTypeAsLabel>, 'OleGetIconOfClass', \ - OleGetIconOfFile, N, <.lpszPath, .fUseFileAsLabel>, 'OleGetIconOfFile', \ - OleInitialize, N, <.pvReserved>, 'OleInitialize', \ - OleInitializeWO, W, <NONE>, 'OleInitializeWOW', \ - OleIsCurrentClipboard, N, <.pDataObj>, 'OleIsCurrentClipboard', \ - OleIsRunning, N, <.pObject>, 'OleIsRunning', \ - OleLoad, N, <.pStg, .riid, .pClientSite, .ppvObj>, 'OleLoad', \ - OleLoadFromStream, N, <.pStm, .iidInterface, .ppvObj>, 'OleLoadFromStream', \ - OleLockRunning, N, <.pUnknown, .fLock, .fLastUnlockCloses>, 'OleLockRunning', \ - OleMetafilePictFromIconAndLabel, N, <.hIcon, .lpszLabel, .lpszSourceFile, .iIconIndex>, 'OleMetafilePictFromIconAndLabel', \ - OleNoteObjectVisible, N, <.pUnknown, .fVisible>, 'OleNoteObjectVisible', \ - OleQueryCreateFromData, N, <.pSrcDataObject>, 'OleQueryCreateFromData', \ - OleQueryLinkFromData, N, <.pSrcDataObject>, 'OleQueryLinkFromData', \ - OleRegEnumFormatEtc, N, <.clsid, .dwDirection, .ppenum>, 'OleRegEnumFormatEtc', \ - OleRegEnumVerbs, N, <.clsid, .ppenum>, 'OleRegEnumVerbs', \ - OleRegGetMiscStatus, N, <.clsid, .dwAspect, .pdwStatus>, 'OleRegGetMiscStatus', \ - OleRegGetUserType, N, <.clsid, .dwFormOfType, .pszUserType>, 'OleRegGetUserType', \ - OleRun, N, <.pUnknown>, 'OleRun', \ - OleSave, N, <.pPS, .pStg, .fSameAsLoad>, 'OleSave', \ - OleSaveToStream, N, <.pPStm, .pStm>, 'OleSaveToStream', \ - OleSetAutoConvert, N, <.clsidOld, .clsidNew>, 'OleSetAutoConvert', \ - OleSetClipboard, N, <.pDataObj>, 'OleSetClipboard', \ - OleSetContainedObject, N, <.pUnknown, .fContained>, 'OleSetContainedObject', \ - OleSetMenuDescriptor, N, <.holemenu, .hwndFrame, .hwndActiveObject, .lpFrame, .lpActiveObj>, 'OleSetMenuDescriptor', \ - OleTranslateAccelerator, N, <.lpFrame, .lpFrameInfo, .lpmsg>, 'OleTranslateAccelerator', \ - OleUninitialize, N, <VOID>, 'OleUninitialize', \ - OpenOrCreateStream, N, <NONE>, 'OpenOrCreateStream', \ - ProgIDFromCLSID, N, <.clsid, .lplpszProgID>, 'ProgIDFromCLSID', \ - PropStgNameToFmtId, N, <.oszName, .pfmtid>, 'PropStgNameToFmtId', \ - PropSysAllocString, N, <NONE>, 'PropSysAllocString', \ - PropSysFreeString, N, <NONE>, 'PropSysFreeString', \ - PropVariantChangeType, N, <NONE>, 'PropVariantChangeType', \ - PropVariantClear, N, <.pvar>, 'PropVariantClear', \ - PropVariantCopy, N, <.pvarDest, .pvarSrc>, 'PropVariantCopy', \ - ReadClassStg, N, <.pStg, .pclsid>, 'ReadClassStg', \ - ReadClassStm, N, <.pStm, .pclsid>, 'ReadClassStm', \ - ReadFmtUserTypeStg, N, <.pstg, .pcf, .lplpszUserType>, 'ReadFmtUserTypeStg', \ - ReadOleStg, N, <NONE>, 'ReadOleStg', \ - ReadStringStream, N, <NONE>, 'ReadStringStream', \ - RegisterDragDrop, N, <.hwnd, .pDropTarget>, 'RegisterDragDrop', \ - ReleaseStgMedium, N, <.lpstgmedium>, 'ReleaseStgMedium', \ - RevokeDragDrop, N, <.hwnd>, 'RevokeDragDrop', \ - SNB_UserFree, N, <.pLong, .pSnb>, 'SNB_UserFree', \ - SNB_UserMarshal, N, <.pLong, .pChar, .pSnb>, 'SNB_UserMarshal', \ - SNB_UserSize, N, <.pLong, .lLong, .pSnb>, 'SNB_UserSize', \ - SNB_UserUnmarshal, N, <.pLong, .pChar, .pSnb>, 'SNB_UserUnmarshal', \ - STGMEDIUM_UserFree, N, <.pLong, .pStgmedium>, 'STGMEDIUM_UserFree', \ - STGMEDIUM_UserMarshal, N, <.pLong, .pChar, .pStgmedium>, 'STGMEDIUM_UserMarshal', \ - STGMEDIUM_UserSize, N, <.pLong, .long, .pStgmedium>, 'STGMEDIUM_UserSize', \ - STGMEDIUM_UserUnmarshal, N, <.pLong, .pChar, .pStgmedium>, 'STGMEDIUM_UserUnmarshal', \ - SetConvertStg, N, <.pStg, .fConvert>, 'SetConvertStg', \ - SetDocumentBitStg, N, <NONE>, 'SetDocumentBitStg', \ - SetErrorInfo, N, <.dwReserved, .perrinfo>, 'SetErrorInfo', \ - StgConvertPropertyToVariant, N, <NONE>, 'StgConvertPropertyToVariant', \ - StgConvertVariantToProperty, N, <NONE>, 'StgConvertVariantToProperty', \ - StgCreateDocfile, N, <.pwcsName, .grfMode, .reserved, .ppstgOpen>, 'StgCreateDocfile', \ - StgCreateDocfileOnILockBytes, N, <.plkbyt, .grfMode, .reserved, .ppstgOpen>, 'StgCreateDocfileOnILockBytes', \ - StgCreatePropSetStg, N, <.pStorage, .dwReserved, .ppPropSetStg>, 'StgCreatePropSetStg', \ - StgCreatePropStg, N, <.pUnk, .fmtid, .pclsid, .grfFlags, .dwReserved, .ppPropStg>, 'StgCreatePropStg', \ - StgCreateStorageEx, N, <.pwcsName, .grfMode, .stgfmt, .grfAttrs, .pStgOptions, .reserved, .riid, .ppObjectOpen>, 'StgCreateStorageEx', \ - StgGetIFillLockBytesOnFile, N, <.pwcsName, .ppflb>, 'StgGetIFillLockBytesOnFile', \ - StgGetIFillLockBytesOnILockBytes, N, <.pilb, .ppflb>, 'StgGetIFillLockBytesOnILockBytes', \ - StgIsStorageFile, N, <.pwcsName>, 'StgIsStorageFile', \ - StgIsStorageILockBytes, N, <.plkbyt>, 'StgIsStorageILockBytes', \ - StgOpenAsyncDocfileOnIFillLockBytes, N, <.pflb, .grfMode, .asyncFlags, .ppstgOpen>, 'StgOpenAsyncDocfileOnIFillLockBytes', \ - StgOpenPropStg, N, <.pUnk, .fmtid, .grfFlags, .dwReserved, .ppPropStg>, 'StgOpenPropStg', \ - StgOpenStorage, N, <.pwcsName, .pstgPriority, .grfMode, .snbExclude, .reserved, .ppstgOpen>, 'StgOpenStorage', \ - StgOpenStorageEx, N, <.pwcsName, .grfMode, .stgfmt, .grfAttrs, .pStgOptions, .reserved, .riid, .ppObjectOpen>, 'StgOpenStorageEx', \ - StgOpenStorageOnHandle, N, <NONE>, 'StgOpenStorageOnHandle', \ - StgOpenStorageOnILockBytes, N, <.plkbyt, .pstgPriority, .grfMode, .snbExclude, .reserved, .ppstgOpen>, 'StgOpenStorageOnILockBytes', \ - StgPropertyLengthAsVariant, N, <NONE>, 'StgPropertyLengthAsVariant', \ - StgSetTimes, N, <.lpszName, .pctime, .patime, .pmtime>, 'StgSetTimes', \ - StringFromCLSID, N, <.rclsid, .lplpsz>, 'StringFromCLSID', \ - StringFromGUID2, N, <.rguid, .lpsz, .cchMax>, 'StringFromGUID2', \ - StringFromIID, N, <.rclsid, .lplpsz>, 'StringFromIID', \ - UpdateDCOMSettings, N, <NONE>, 'UpdateDCOMSettings', \ - UtConvertDvtd16toDvtd32, N, <NONE>, 'UtConvertDvtd16toDvtd32', \ - UtConvertDvtd32toDvtd16, N, <NONE>, 'UtConvertDvtd32toDvtd16', \ - UtGetDvtd16Info, N, <NONE>, 'UtGetDvtd16Info', \ - UtGetDvtd32Info, N, <NONE>, 'UtGetDvtd32Info', \ - WdtpInterfacePointer_UserFree, N, <NONE>, 'WdtpInterfacePointer_UserFree', \ - WdtpInterfacePointer_UserMarshal, N, <NONE>, 'WdtpInterfacePointer_UserMarshal', \ - WdtpInterfacePointer_UserSize, N, <NONE>, 'WdtpInterfacePointer_UserSize', \ - WdtpInterfacePointer_UserUnmarshal, N, <NONE>, 'WdtpInterfacePointer_UserUnmarshal', \ - WriteClassStg, N, <.pStg, .rclsid>, 'WriteClassStg', \ - WriteClassStm, N, <.pStm, .rclsid>, 'WriteClassStm', \ - WriteFmtUserTypeStg, N, <.pstg, .cf, .lpszUserType>, 'WriteFmtUserTypeStg', \ - WriteOleStg, N, <NONE>, 'WriteOleStg', \ - WriteStringStream, N, <NONE>, 'WriteStringStream' DELETED freshlib/imports/Win32/api/shell32.inc Index: freshlib/imports/Win32/api/shell32.inc ================================================================== --- freshlib/imports/Win32/api/shell32.inc +++ /dev/null @@ -1,293 +0,0 @@ -; shell32.dll API calls (ASCII) -import_proto shell32, \ - Activate_RunDLL, N, <NONE>, 'Activate_RunDLL', \ - AppCompat_RunDLL, W, <NONE>, 'AppCompat_RunDLLW', \ - CDefFolderMenu_Create, N, <NONE>, 'CDefFolderMenu_Create', \ - CDefFolderMenu_Create2, N, <NONE>, 'CDefFolderMenu_Create2', \ - CallCPLEntry16, N, <NONE>, 'CallCPLEntry16', \ - CheckEscapes, A, <NONE>, 'CheckEscapesA', \ - CheckEscapes, W, <NONE>, 'CheckEscapesW', \ - CommandLineToArgv, W, <.lpCmdLine, .pNumArgs>, 'CommandLineToArgvW', \ - Control_FillCache_RunDLL, A, <NONE>, 'Control_FillCache_RunDLLA', \ - Control_FillCache_RunDLL, W, <NONE>, 'Control_FillCache_RunDLLW', \ - Control_RunDLL, A, <NONE>, 'Control_RunDLLA', \ - Control_RunDLLAsUser, W, <NONE>, 'Control_RunDLLAsUserW', \ - Control_RunDLL, W, <NONE>, 'Control_RunDLLW', \ - DAD_AutoScroll, N, <NONE>, 'DAD_AutoScroll', \ - DAD_DragEnterEx, N, <NONE>, 'DAD_DragEnterEx', \ - DAD_DragEnterEx2, N, <NONE>, 'DAD_DragEnterEx2', \ - DAD_DragLeave, N, <NONE>, 'DAD_DragLeave', \ - DAD_DragMove, N, <NONE>, 'DAD_DragMove', \ - DAD_SetDragImage, N, <NONE>, 'DAD_SetDragImage', \ - DAD_ShowDragImage, N, <NONE>, 'DAD_ShowDragImage', \ - DllCanUnloadNow, N, <VOID>, 'DllCanUnloadNow', \ - DllGetClassObject, N, <.rclsid, .riid, .ppv>, 'DllGetClassObject', \ -\; DllGetVersion, N, <NONE>, 'DllGetVersion', \ -\; DllInstall, N, <.bInstall, .pszCmdLine>, 'DllInstall', \ - DllRegisterServer, N, <VOID>, 'DllRegisterServer', \ - DllUnregisterServer, N, <VOID>, 'DllUnregisterServer', \ - DoEnvironmentSubst, A, <.szString, .cbString>, 'DoEnvironmentSubstA', \ - DoEnvironmentSubst, W, <.szString, .cbString>, 'DoEnvironmentSubstW', \ - DragAcceptFiles, N, <.hwnd, .fAccept>, 'DragAcceptFiles', \ - DragFinish, N, <.hDrop>, 'DragFinish', \ - DragQueryFile, A, <.HDROP, .UINT, .lpStr, .ch>, 'DragQueryFileA', \ - DragQueryFile, W, <.HDROP, .UINT, .lpStr, .ch>, 'DragQueryFileW', \ - DragQueryFileAorW, N, <NONE>, 'DragQueryFileAorW', \ - DragQueryPoint, N, <.HDROP, .lpPoint>, 'DragQueryPoint', \ - DriveType, N, <NONE>, 'DriveType', \ - DuplicateIcon, N, <.hInst, .hIcon>, 'DuplicateIcon', \ - ExtractAssociatedIcon, A, <.hInst, .lpIconPath, .lpiIcon>, 'ExtractAssociatedIconA', \ - ExtractAssociatedIconEx, A, <NONE>, 'ExtractAssociatedIconExA', \ - ExtractAssociatedIconEx, W, <NONE>, 'ExtractAssociatedIconExW', \ - ExtractAssociatedIcon, W, <.hInst, .lpIconPath, .lpiIcon>, 'ExtractAssociatedIconW', \ - ExtractIcon, A, <.hInst, .lpszExeFileName, .nIconIndex>, 'ExtractIconA', \ - ExtractIconEx, A, <.lpszFile, .nIconIndex, .phiconLarge, .phiconSmall, .nIcons>, 'ExtractIconExA', \ - ExtractIconEx, W, <.lpszFile, .nIconIndex, .phiconLarge, .phiconSmall, .nIcons>, 'ExtractIconExW', \ - ExtractIconResInfo, A, <NONE>, 'ExtractIconResInfoA', \ - ExtractIconResInfo, W, <NONE>, 'ExtractIconResInfoW', \ - ExtractIcon, W, <.hInst, .lpszExeFileName, .nIconIndex>, 'ExtractIconW', \ - ExtractVersionResource16, W, <NONE>, 'ExtractVersionResource16W', \ - FindExeDlgProc, N, <NONE>, 'FindExeDlgProc', \ - FindExecutable, A, <.lpFile, .lpDirectory, .lpResult>, 'FindExecutableA', \ - FindExecutable, W, <.lpFile, .lpDirectory, .lpResult>, 'FindExecutableW', \ - FreeIconList, N, <NONE>, 'FreeIconList', \ - GetFileNameFromBrowse, N, <NONE>, 'GetFileNameFromBrowse', \ - ILAppendID, N, <NONE>, 'ILAppendID', \ - ILClone, N, <NONE>, 'ILClone', \ - ILCloneFirst, N, <NONE>, 'ILCloneFirst', \ - ILCombine, N, <NONE>, 'ILCombine', \ - ILCreateFromPath, A, <NONE>, 'ILCreateFromPathA', \ - ILCreateFromPath, W, <NONE>, 'ILCreateFromPathW', \ - ILFindChild, N, <NONE>, 'ILFindChild', \ - ILFindLastID, N, <NONE>, 'ILFindLastID', \ - ILFree, N, <NONE>, 'ILFree', \ - ILGetNext, N, <NONE>, 'ILGetNext', \ - ILGetSize, N, <NONE>, 'ILGetSize', \ - ILIsEqual, N, <NONE>, 'ILIsEqual', \ - ILIsParent, N, <NONE>, 'ILIsParent', \ - ILLoadFromStream, N, <NONE>, 'ILLoadFromStream', \ - ILRemoveLastID, N, <NONE>, 'ILRemoveLastID', \ - ILSaveToStream, N, <NONE>, 'ILSaveToStream', \ - InternalExtractIconList, A, <NONE>, 'InternalExtractIconListA', \ - InternalExtractIconList, W, <NONE>, 'InternalExtractIconListW', \ - IsLFNDrive, A, <NONE>, 'IsLFNDriveA', \ - IsLFNDrive, W, <NONE>, 'IsLFNDriveW', \ - IsNetDrive, N, <NONE>, 'IsNetDrive', \ - IsUserAnAdmin, N, <NONE>, 'IsUserAnAdmin', \ - OpenAs_RunDLL, A, <NONE>, 'OpenAs_RunDLLA', \ - OpenAs_RunDLL, W, <NONE>, 'OpenAs_RunDLLW', \ - OpenRegStream, N, <NONE>, 'OpenRegStream', \ - Options_RunDLL, A, <NONE>, 'Options_RunDLLA', \ - Options_RunDLL, W, <NONE>, 'Options_RunDLLW', \ - PathCleanupSpec, N, <NONE>, 'PathCleanupSpec', \ - PathGetShortPath, N, <NONE>, 'PathGetShortPath', \ - PathIsExe, N, <NONE>, 'PathIsExe', \ - PathIsSlow, A, <NONE>, 'PathIsSlowA', \ - PathIsSlow, W, <NONE>, 'PathIsSlowW', \ - PathMakeUniqueName, N, <NONE>, 'PathMakeUniqueName', \ - PathProcessCommand, N, <NONE>, 'PathProcessCommand', \ - PathQualify, N, <NONE>, 'PathQualify', \ - PathResolve, N, <NONE>, 'PathResolve', \ - PathYetAnotherMakeUniqueName, N, <NONE>, 'PathYetAnotherMakeUniqueName', \ - PickIconDlg, N, <NONE>, 'PickIconDlg', \ - PifMgr_CloseProperties, N, <NONE>, 'PifMgr_CloseProperties', \ - PifMgr_GetProperties, N, <NONE>, 'PifMgr_GetProperties', \ - PifMgr_OpenProperties, N, <NONE>, 'PifMgr_OpenProperties', \ - PifMgr_SetProperties, N, <NONE>, 'PifMgr_SetProperties', \ - PrintersGetCommand_RunDLL, A, <NONE>, 'PrintersGetCommand_RunDLLA', \ - PrintersGetCommand_RunDLL, W, <NONE>, 'PrintersGetCommand_RunDLLW', \ - ReadCabinetState, N, <NONE>, 'ReadCabinetState', \ - RealDriveType, N, <NONE>, 'RealDriveType', \ - RealShellExecute, A, <NONE>, 'RealShellExecuteA', \ - RealShellExecuteEx, A, <NONE>, 'RealShellExecuteExA', \ - RealShellExecuteEx, W, <NONE>, 'RealShellExecuteExW', \ - RealShellExecute, W, <NONE>, 'RealShellExecuteW', \ - RegenerateUserEnvironment, N, <NONE>, 'RegenerateUserEnvironment', \ - RestartDialog, N, <NONE>, 'RestartDialog', \ - RestartDialogEx, N, <NONE>, 'RestartDialogEx', \ - SHAddFromPropSheetExtArray, N, <NONE>, 'SHAddFromPropSheetExtArray', \ - SHAddToRecentDocs, N, <.uFlags, .pv>, 'SHAddToRecentDocs', \ - SHAlloc, N, <NONE>, 'SHAlloc', \ - SHAllocShared, N, <NONE>, 'SHAllocShared', \ - SHAppBarMessage, N, <.dwMessage, .pData>, 'SHAppBarMessage', \ - SHBindToParent, N, <.pidl, .riid, .ppv, .ppidlLast>, 'SHBindToParent', \ - SHBrowseForFolder, A, <.lpbi>, 'SHBrowseForFolderA', \ - SHBrowseForFolder, W, <.lpbi>, 'SHBrowseForFolderW', \ - SHCLSIDFromString, N, <NONE>, 'SHCLSIDFromString', \ - SHChangeNotification_Lock, N, <NONE>, 'SHChangeNotification_Lock', \ - SHChangeNotification_Unlock, N, <NONE>, 'SHChangeNotification_Unlock', \ - SHChangeNotify, N, <.wEventId, .uFlags, .dwItem1, .dwItem2>, 'SHChangeNotify', \ - SHChangeNotifyDeregister, N, <NONE>, 'SHChangeNotifyDeregister', \ - SHChangeNotifyRegister, N, <NONE>, 'SHChangeNotifyRegister', \ - SHChangeNotifySuspendResume, N, <NONE>, 'SHChangeNotifySuspendResume', \ - SHCloneSpecialIDList, N, <NONE>, 'SHCloneSpecialIDList', \ - SHCoCreateInstance, N, <NONE>, 'SHCoCreateInstance', \ - SHCreateDirectory, N, <NONE>, 'SHCreateDirectory', \ - SHCreateDirectoryEx, A, <.hwnd, .pszPath, .psa>, 'SHCreateDirectoryExA', \ - SHCreateDirectoryEx, W, <.hwnd, .pszPath, .psa>, 'SHCreateDirectoryExW', \ - SHCreateFileExtractIcon, W, <NONE>, 'SHCreateFileExtractIconW', \ - SHCreateLocalServerRunDll, N, <NONE>, 'SHCreateLocalServerRunDll', \ - SHCreateProcessAsUser, W, <NONE>, 'SHCreateProcessAsUserW', \ - SHCreatePropSheetExtArray, N, <NONE>, 'SHCreatePropSheetExtArray', \ - SHCreateQueryCancelAutoPlayMoniker, N, <NONE>, 'SHCreateQueryCancelAutoPlayMoniker', \ - SHCreateShellFolderView, N, <NONE>, 'SHCreateShellFolderView', \ - SHCreateShellFolderViewEx, N, <NONE>, 'SHCreateShellFolderViewEx', \ - SHCreateShellItem, N, <NONE>, 'SHCreateShellItem', \ - SHCreateStdEnumFmtEtc, N, <NONE>, 'SHCreateStdEnumFmtEtc', \ - SHDefExtractIcon, A, <NONE>, 'SHDefExtractIconA', \ - SHDefExtractIcon, W, <NONE>, 'SHDefExtractIconW', \ - SHDestroyPropSheetExtArray, N, <NONE>, 'SHDestroyPropSheetExtArray', \ - SHDoDragDrop, N, <NONE>, 'SHDoDragDrop', \ - SHEmptyRecycleBin, A, <.hwnd, .pszRootPath, .dwFlags>, 'SHEmptyRecycleBinA', \ - SHEmptyRecycleBin, W, <.hwnd, .pszRootPath, .dwFlags>, 'SHEmptyRecycleBinW', \ - SHEnableServiceObject, N, <NONE>, 'SHEnableServiceObject', \ - SHEnumerateUnreadMailAccounts, W, <NONE>, 'SHEnumerateUnreadMailAccountsW', \ - SHExtractIcons, W, <NONE>, 'SHExtractIconsW', \ - SHFileOperation, A, <.lpFileOp>, 'SHFileOperationA', \ - SHFileOperation, W, <.lpFileOp>, 'SHFileOperationW', \ - SHFindFiles, N, <NONE>, 'SHFindFiles', \ - SHFind_InitMenuPopup, N, <NONE>, 'SHFind_InitMenuPopup', \ - SHFlushClipboard, N, <NONE>, 'SHFlushClipboard', \ - SHFlushSFCache, N, <NONE>, 'SHFlushSFCache', \ - SHFormatDrive, N, <NONE>, 'SHFormatDrive', \ - SHFree, N, <NONE>, 'SHFree', \ - SHFreeNameMappings, N, <.hNameMappings>, 'SHFreeNameMappings', \ - SHFreeShared, N, <NONE>, 'SHFreeShared', \ - SHGetAttributesFromDataObject, N, <NONE>, 'SHGetAttributesFromDataObject', \ - SHGetDataFromIDList, A, <.psf, .pidl, .nFormat, .pv, .cb>, 'SHGetDataFromIDListA', \ - SHGetDataFromIDList, W, <.psf, .pidl, .nFormat, .pv, .cb>, 'SHGetDataFromIDListW', \ - SHGetDesktopFolder, N, <.ppshf>, 'SHGetDesktopFolder', \ - SHGetDiskFreeSpace, A, <NONE>, 'SHGetDiskFreeSpaceA', \ - SHGetDiskFreeSpaceEx, A, <.pszDirectoryName, .pulFreeBytesAvailableToCaller, .pulTotalNumberOfBytes, .pulTotalNumberOfFreeBytes>, 'SHGetDiskFreeSpaceExA', \ - SHGetDiskFreeSpaceEx, W, <.pszDirectoryName, .pulFreeBytesAvailableToCaller, .pulTotalNumberOfBytes, .pulTotalNumberOfFreeBytes>, 'SHGetDiskFreeSpaceExW', \ - SHGetFileInfo, A, <.pszPath, .dwFileAttributes, .psfi, .cbFileInfo, .uFlags>, 'SHGetFileInfoA', \ - SHGetFileInfo, W, <.pszPath, .dwFileAttributes, .psfi, .cbFileInfo, .uFlags>, 'SHGetFileInfoW', \ - SHGetFolderLocation, N, <.hwnd, .csidl, .hToken, .dwFlags, .ppidl>, 'SHGetFolderLocation', \ - SHGetFolderPath, A, <.hwnd, .csidl, .hToken, .dwFlags, .pszPath>, 'SHGetFolderPathA', \ - SHGetFolderPathAndSubDir, A, <NONE>, 'SHGetFolderPathAndSubDirA', \ - SHGetFolderPathAndSubDir, W, <NONE>, 'SHGetFolderPathAndSubDirW', \ - SHGetFolderPath, W, <.hwnd, .csidl, .hToken, .dwFlags, .pszPath>, 'SHGetFolderPathW', \ - SHGetIconOverlayIndex, A, <.pszIconPath, .iIconIndex>, 'SHGetIconOverlayIndexA', \ - SHGetIconOverlayIndex, W, <.pszIconPath, .iIconIndex>, 'SHGetIconOverlayIndexW', \ - SHGetImageList, N, <NONE>, 'SHGetImageList', \ - SHGetInstanceExplorer, N, <.ppunk>, 'SHGetInstanceExplorer', \ - SHGetMalloc, N, <.ppMalloc>, 'SHGetMalloc', \ - SHGetNewLinkInfo, A, <.pszLinkto, .pszDir, .pszName, .pfMustCopy, .uFlags>, 'SHGetNewLinkInfoA', \ - SHGetNewLinkInfo, W, <.pszLinkto, .pszDir, .pszName, .pfMustCopy, .uFlags>, 'SHGetNewLinkInfoW', \ - SHGetPathFromIDList, A, <.pidl, .pszPath>, 'SHGetPathFromIDListA', \ - SHGetPathFromIDList, W, <.pidl, .pszPath>, 'SHGetPathFromIDListW', \ - SHGetRealIDL, N, <NONE>, 'SHGetRealIDL', \ - SHGetSetFolderCustomSettings, W, <NONE>, 'SHGetSetFolderCustomSettingsW', \ - SHGetSetSettings, N, <NONE>, 'SHGetSetSettings', \ - SHGetSettings, N, <.lpsfs, .dwMask>, 'SHGetSettings', \ - SHGetShellStyleHInstance, N, <NONE>, 'SHGetShellStyleHInstance', \ - SHGetSpecialFolderLocation, N, <.hwnd, .csidl, .ppidl>, 'SHGetSpecialFolderLocation', \ - SHGetSpecialFolderPath, A, <.hwnd, .pszPath, .csidl, .fCreate>, 'SHGetSpecialFolderPathA', \ - SHGetSpecialFolderPath, W, <.hwnd, .pszPath, .csidl, .fCreate>, 'SHGetSpecialFolderPathW', \ - SHGetUnreadMailCount, W, <NONE>, 'SHGetUnreadMailCountW', \ - SHHandleUpdateImage, N, <NONE>, 'SHHandleUpdateImage', \ - SHHelpShortcuts_RunDLL, A, <NONE>, 'SHHelpShortcuts_RunDLLA', \ - SHHelpShortcuts_RunDLL, W, <NONE>, 'SHHelpShortcuts_RunDLLW', \ - SHILCreateFromPath, N, <NONE>, 'SHILCreateFromPath', \ - SHInvokePrinterCommand, A, <.hwnd, .uAction, .lpBuf1, .lpBuf2, .fModal>, 'SHInvokePrinterCommandA', \ - SHInvokePrinterCommand, W, <.hwnd, .uAction, .lpBuf1, .lpBuf2, .fModal>, 'SHInvokePrinterCommandW', \ - SHIsFileAvailableOffline, N, <.pwszPath, .pdwStatus>, 'SHIsFileAvailableOffline', \ - SHLimitInputEdit, N, <NONE>, 'SHLimitInputEdit', \ - SHLoadInProc, N, <.rclsid>, 'SHLoadInProc', \ - SHLoadNonloadedIconOverlayIdentifiers, N, <VOID>, 'SHLoadNonloadedIconOverlayIdentifiers', \ - SHLoadOLE, N, <NONE>, 'SHLoadOLE', \ - SHLockShared, N, <NONE>, 'SHLockShared', \ - SHMapIDListToImageListIndexAsync, N, <NONE>, 'SHMapIDListToImageListIndexAsync', \ - SHMapPIDLToSystemImageListIndex, N, <NONE>, 'SHMapPIDLToSystemImageListIndex', \ - SHMultiFileProperties, N, <NONE>, 'SHMultiFileProperties', \ - SHObjectProperties, N, <NONE>, 'SHObjectProperties', \ - SHOpenFolderAndSelectItems, N, <NONE>, 'SHOpenFolderAndSelectItems', \ - SHOpenPropSheet, W, <NONE>, 'SHOpenPropSheetW', \ - SHParseDisplayName, N, <NONE>, 'SHParseDisplayName', \ - SHPathPrepareForWrite, A, <.hwnd, .punkEnableModless, .pszPath, .dwFlags>, 'SHPathPrepareForWriteA', \ - SHPathPrepareForWrite, W, <.hwnd, .punkEnableModless, .pszPath, .dwFlags>, 'SHPathPrepareForWriteW', \ - SHPropStgCreate, N, <NONE>, 'SHPropStgCreate', \ - SHPropStgReadMultiple, N, <NONE>, 'SHPropStgReadMultiple', \ - SHPropStgWriteMultiple, N, <NONE>, 'SHPropStgWriteMultiple', \ - SHQueryRecycleBin, A, <.pszRootPath, .pSHQueryRBInfo>, 'SHQueryRecycleBinA', \ - SHQueryRecycleBin, W, <.pszRootPath, .pSHQueryRBInfo>, 'SHQueryRecycleBinW', \ - SHReplaceFromPropSheetExtArray, N, <NONE>, 'SHReplaceFromPropSheetExtArray', \ - SHRestricted, N, <NONE>, 'SHRestricted', \ - SHRunControlPanel, N, <NONE>, 'SHRunControlPanel', \ - SHSetInstanceExplorer, N, <NONE>, 'SHSetInstanceExplorer', \ - SHSetLocalizedName, N, <NONE>, 'SHSetLocalizedName', \ - SHSetUnreadMailCount, W, <NONE>, 'SHSetUnreadMailCountW', \ - SHShellFolderView_Message, N, <NONE>, 'SHShellFolderView_Message', \ - SHSimpleIDListFromPath, N, <NONE>, 'SHSimpleIDListFromPath', \ - SHStartNetConnectionDialog, W, <NONE>, 'SHStartNetConnectionDialogW', \ - SHTestTokenMembership, N, <NONE>, 'SHTestTokenMembership', \ - SHUnlockShared, N, <NONE>, 'SHUnlockShared', \ - SHUpdateImage, A, <NONE>, 'SHUpdateImageA', \ - SHUpdateImage, W, <NONE>, 'SHUpdateImageW', \ - SHUpdateRecycleBinIcon, N, <NONE>, 'SHUpdateRecycleBinIcon', \ - SHValidateUNC, N, <NONE>, 'SHValidateUNC', \ - SheChangeDir, A, <NONE>, 'SheChangeDirA', \ - SheChangeDirEx, A, <NONE>, 'SheChangeDirExA', \ - SheChangeDirEx, W, <NONE>, 'SheChangeDirExW', \ - SheChangeDir, W, <NONE>, 'SheChangeDirW', \ - SheConvertPath, W, <NONE>, 'SheConvertPathW', \ - SheFullPath, A, <NONE>, 'SheFullPathA', \ - SheFullPath, W, <NONE>, 'SheFullPathW', \ - SheGetCurDrive, N, <NONE>, 'SheGetCurDrive', \ - SheGetDir, A, <NONE>, 'SheGetDirA', \ - SheGetDirEx, W, <NONE>, 'SheGetDirExW', \ - SheGetDir, W, <NONE>, 'SheGetDirW', \ - SheGetPathOffset, W, <NONE>, 'SheGetPathOffsetW', \ - SheRemoveQuotes, A, <NONE>, 'SheRemoveQuotesA', \ - SheRemoveQuotes, W, <NONE>, 'SheRemoveQuotesW', \ - SheSetCurDrive, N, <NONE>, 'SheSetCurDrive', \ - SheShortenPath, A, <NONE>, 'SheShortenPathA', \ - SheShortenPath, W, <NONE>, 'SheShortenPathW', \ - ShellAbout, A, <.hwnd, .szApp, .szOtherStuff, .hIcon>, 'ShellAboutA', \ - ShellAbout, W, <.hwnd, .szApp, .szOtherStuff, .hIcon>, 'ShellAboutW', \ - ShellExec_RunDLL, A, <NONE>, 'ShellExec_RunDLLA', \ - ShellExec_RunDLL, W, <NONE>, 'ShellExec_RunDLLW', \ - ShellExecute, A, <.hwnd, .lpOperation, .lpFile, .lpParameters, .lpDirectory, .nCmdShow>, 'ShellExecuteA', \ - ShellExecuteEx, A, <.lpExecInfo>, 'ShellExecuteExA', \ - ShellExecuteEx, W, <.lpExecInfo>, 'ShellExecuteExW', \ - ShellExecute, W, <.hwnd, .lpOperation, .lpFile, .lpParameters, .lpDirectory, .nCmdShow>, 'ShellExecuteW', \ - ShellHookProc, N, <NONE>, 'ShellHookProc', \ - ShellMessageBox, A, <NONE>, 'ShellMessageBoxA', \ - ShellMessageBox, W, <NONE>, 'ShellMessageBoxW', \ - Shell_GetCachedImageIndex, N, <NONE>, 'Shell_GetCachedImageIndex', \ - Shell_GetImageLists, N, <NONE>, 'Shell_GetImageLists', \ - Shell_MergeMenus, N, <NONE>, 'Shell_MergeMenus', \ - Shell_NotifyIcon, A, <.dwMessage, .lpData>, 'Shell_NotifyIconA', \ - Shell_NotifyIcon, W, <.dwMessage, .lpData>, 'Shell_NotifyIconW', \ - SignalFileOpen, N, <NONE>, 'SignalFileOpen', \ - StrChr, A, <.lpStart, .wMatch>, 'StrChrA', \ - StrChrI, A, <.lpStart, .wMatch>, 'StrChrIA', \ - StrChrI, W, <.lpStart, .wMatch>, 'StrChrIW', \ - StrChr, W, <.lpStart, .wMatch>, 'StrChrW', \ - StrCmpN, A, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNA', \ - StrCmpNI, A, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNIA', \ - StrCmpNI, W, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNIW', \ - StrCmpN, W, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNW', \ - StrCpyN, A, <NONE>, 'StrCpyNA', \ - StrCpyN, W, <NONE>, 'StrCpyNW', \ - StrNCmp, A, <NONE>, 'StrNCmpA', \ - StrNCmpI, A, <NONE>, 'StrNCmpIA', \ - StrNCmpI, W, <NONE>, 'StrNCmpIW', \ - StrNCmp, W, <NONE>, 'StrNCmpW', \ - StrNCpy, A, <NONE>, 'StrNCpyA', \ - StrNCpy, W, <NONE>, 'StrNCpyW', \ - StrRChr, A, <.lpStart, .lpEnd, .wMatch>, 'StrRChrA', \ - StrRChrI, A, <.lpStart, .lpEnd, .wMatch>, 'StrRChrIA', \ - StrRChrI, W, <.lpStart, .lpEnd, .wMatch>, 'StrRChrIW', \ - StrRChr, W, <.lpStart, .lpEnd, .wMatch>, 'StrRChrW', \ - StrRStr, A, <NONE>, 'StrRStrA', \ - StrRStrI, A, <.lpSource, .lpLast, .lpSrch>, 'StrRStrIA', \ - StrRStrI, W, <.lpSource, .lpLast, .lpSrch>, 'StrRStrIW', \ - StrRStr, W, <NONE>, 'StrRStrW', \ - StrStr, A, <.lpFirst, .lpSrch>, 'StrStrA', \ - StrStrI, A, <.lpFirst, .lpSrch>, 'StrStrIA', \ - StrStrI, W, <.lpFirst, .lpSrch>, 'StrStrIW', \ - StrStr, W, <.lpFirst, .lpSrch>, 'StrStrW', \ - WOWShellExecute, N, <NONE>, 'WOWShellExecute', \ - Win32DeleteFile, N, <NONE>, 'Win32DeleteFile', \ - WriteCabinetState, N, <NONE>, 'WriteCabinetState' DELETED freshlib/imports/Win32/api/sqlite3.inc Index: freshlib/imports/Win32/api/sqlite3.inc ================================================================== --- freshlib/imports/Win32/api/sqlite3.inc +++ /dev/null @@ -1,191 +0,0 @@ -; sqlite3.dll API calls (ASCII) -import_proto sqlite3, \ - sqliteAggregateContext, N, <.context, .nbytes>, 'sqlite3_aggregate_context', \ - sqliteAggregateCount_OLD, N, <NONE>, 'sqlite3_aggregate_count', \ - sqliteAutoExtension, N, <.ptrCallback>, 'sqlite3_auto_extension', \ - sqliteBackupFinish, N, <.ptrBackup>, 'sqlite3_backup_finish', \ - sqliteBackupInit, N, <.ptrDestDB, .ptrDestName, .ptrSourceDB, .ptrSourceName>, 'sqlite3_backup_init', \ - sqliteBackupPageCount, N, <.ptrBackup>, 'sqlite3_backup_pagecount', \ - sqliteBackupRemaining, N, <.ptrBackup>, 'sqlite3_backup_remaining', \ - sqliteBackupStep, N, <.ptrBackup, .nPage>, 'sqlite3_backup_step', \ - sqliteBindBlob, N, <.stmt, .index, .ptrData, .nbytes, .destructor>, 'sqlite3_bind_blob', \ - sqliteBindDouble, N, <.stmt, .index, .value>, 'sqlite3_bind_double', \ - sqliteBindInt, N, <.stmt, .index, .value>, 'sqlite3_bind_int', \ - sqliteBindInt64, N, <.stmt, .index, .valueLo, .valueHi>, 'sqlite3_bind_int64', \ - sqliteBindNull, N, <.stmt, .index>, 'sqlite3_bind_null', \ - sqliteBindParameterCount, N, <.stmt>, 'sqlite3_bind_parameter_count', \ - sqliteBindParameterIndex, N, <.stmt, .paramName>, 'sqlite3_bind_parameter_index', \ - sqliteBindParameterName, N, <.stmt, .paramIndex>, 'sqlite3_bind_parameter_name', \ - sqliteBindText, N, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text', \ - sqliteBindText16, N, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text16', \ - sqliteBindValue, N, <.stmt, .index, .ptrValue>, 'sqlite3_bind_value', \ - sqliteBindZeroblob, N, <.stmt, .index, .size>, 'sqlite3_bind_zeroblob', \ - sqliteBlobBytes, N, <.hBlob>, 'sqlite3_blob_bytes', \ - sqliteBlobClose, N, <.hBlob>, 'sqlite3_blob_close', \ - sqliteBlobOpen, N, <.ptrDB, .DBname, .Table, .Column, .iRow, .flags, .ptrVarBlob>, 'sqlite3_blob_open', \ - sqliteBlobRead, N, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_read', \ - sqliteBlobWrite, N, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_write', \ - sqliteBusyHandler, N, <.ptrDB, .ptrProc, .lParam>, 'sqlite3_busy_handler', \ - sqliteBusyTimeout, N, <.ptrDB, .time_ms>, 'sqlite3_busy_timeout', \ - sqliteChanges, N, <.ptrDB>, 'sqlite3_changes', \ - sqliteClearBindings, N, <.stmt>, 'sqlite3_clear_bindings', \ - sqliteClose, N, <.ptrDatabase>, 'sqlite3_close', \ - sqliteCollationNeeded, N, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed', \ - sqliteCollationNeeded16, N, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed16', \ - sqliteColumnBlob, N, <.stmt, .iCol>, 'sqlite3_column_blob', \ - sqliteColumnBytes, N, <.stmt, .iCol>, 'sqlite3_column_bytes', \ - sqliteColumnBytes16, N, <.stmt, .iCol>, 'sqlite3_column_bytes16', \ - sqliteColumnCount, N, <.stmt>, 'sqlite3_column_count', \ - sqliteColumnDatabaseName, N, <.stmt, .index>, 'sqlite3_column_database_name', \ - sqliteColumnDatabaseName16, N, <.stmt, .index>, 'sqlite3_column_database_name16', \ - sqliteColumnDeclType, N, <.stmt, .index>, 'sqlite3_column_decltype', \ - sqliteColumnDeclType16, N, <.stmt, .index>, 'sqlite3_column_decltype16', \ - sqliteColumnDouble, N, <.stmt, .iCol>, 'sqlite3_column_double', \ - sqliteColumnInt, N, <.stmt, .iCol>, 'sqlite3_column_int', \ - sqliteColumnInt64, N, <.stmt, .iCol>, 'sqlite3_column_int64', \ - sqliteColumnName, N, <.stmt, .index>, 'sqlite3_column_name', \ - sqliteColumnName16, N, <.stmt, .index>, 'sqlite3_column_name16', \ - sqliteColumnOriginName, N, <.stmt, .index>, 'sqlite3_column_origin_name', \ - sqliteColumnOriginName16, N, <.stmt, .index>, 'sqlite3_column_origin_name16', \ - sqliteColumnTableName, N, <.stmt, .index>, 'sqlite3_column_table_name', \ - sqliteColumnTableName16, N, <.stmt, .index>, 'sqlite3_column_table_name16', \ - sqliteColumnText, N, <.stmt, .iCol>, 'sqlite3_column_text', \ - sqliteColumnText16, N, <.stmt, .iCol>, 'sqlite3_column_text16', \ - sqliteColumnType, N, <.stmt, .iCol>, 'sqlite3_column_type', \ - sqliteColumnValue, N, <.stmt, .iCol>, 'sqlite3_column_value', \ - sqliteCommitHook, N, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_commit_hook', \ - sqliteCompileOptionGet, N, <.N>, 'sqlite3_compileoption_get', \ - sqliteCompileOptionUsed, N, <.ptrOptName>, 'sqlite3_compileoption_used', \ - sqliteComplete, N, <.ptrSQL>, 'sqlite3_complete', \ - sqliteComplete16, N, <.ptrSQL>, 'sqlite3_complete16', \ - sqliteConfig, N, <.index, .Carguments>, 'sqlite3_config', \ - sqliteContextDBHandle, N, <.context>, 'sqlite3_context_db_handle', \ - sqliteCreateCollation, N, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation', \ - sqliteCreateCollation16, N, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation16', \ - sqliteCreateCollation_v2, N, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare, .ptrDestroy>, 'sqlite3_create_collation_v2', \ - sqliteCreateFunction, N, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function', \ - sqliteCreateFunction16, N, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function16', \ - sqliteCreateFunction_v2, N, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal, .procDestroy>, 'sqlite3_create_function_v2', \ - sqliteCreateModule, N, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam>, 'sqlite3_create_module', \ - sqliteCreateModule_v2, N, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam, .procDestroy>, 'sqlite3_create_module_v2', \ - sqliteDBConfig, N, <.ptrDB, .index, .Carguments>, 'sqlite3_db_config', \ - sqliteDBHandle, N, <.stmt>, 'sqlite3_db_handle', \ - sqliteDBMutex, N, <.ptrDB>, 'sqlite3_db_mutex', \ - sqliteDBStatus, N, <.ptrDB, .index, .ptrRetCurrent, .ptrRetHighest, .flagReset>, 'sqlite3_db_status', \ - sqliteDataCount, N, <.stmt>, 'sqlite3_data_count', \ - sqliteDeclareVtab, N, <.ptrDB, .ptrSQL>, 'sqlite3_declare_vtab', \ - sqliteEnableLoadExtension, N, <.ptrDB, .flagEnable>, 'sqlite3_enable_load_extension', \ - sqliteEnableSharedCache, N, <.flagEnable>, 'sqlite3_enable_shared_cache', \ - sqliteErrCode, N, <.ptrDB>, 'sqlite3_errcode', \ - sqliteErrMsg, N, <.ptrDB>, 'sqlite3_errmsg', \ - sqliteErrMsg16, N, <.ptrDB>, 'sqlite3_errmsg16', \ - sqliteExec, N, <.ptrDB, .ptrSQL, .procCallback, .lparam, .ptrVarErrMsg>, 'sqlite3_exec', \ - sqliteExpired, N, <VOID>, 'sqlite3_expired', \ - sqliteExtendedErrCode, N, <.ptrDB>, 'sqlite3_extended_errcode', \ - sqliteExtendedResultCodes, N, <.ptrDB, .flagEnable>, 'sqlite3_extended_result_codes', \ - sqliteFileControl, N, <.ptrDB, .ptrDBName, .wparam, .lparam>, 'sqlite3_file_control', \ - sqliteFinalize, N, <.stmt>, 'sqlite3_finalize', \ - sqliteFree, N, <.ptrmem>, 'sqlite3_free', \ - sqliteFreeTable, N, <.ptrVarResult>, 'sqlite3_free_table', \ - sqliteGetAutocommit, N, <.ptrDB>, 'sqlite3_get_autocommit', \ - sqliteGetAuxdata, N, <.context, .N>, 'sqlite3_get_auxdata', \ - sqliteGetTable, N, <.ptrDB, .ptrSQL, .ptrVarResult, .ptrVarRows, .ptrVarColumns, .ptrVarErrorMsg>, 'sqlite3_get_table', \ - sqliteGlobalRecover_OLD, N, <NONE>, 'sqlite3_global_recover', \ - sqliteInitialize, N, <VOID>, 'sqlite3_initialize', \ - sqliteInterrupt, N, <.ptrDB>, 'sqlite3_interrupt', \ - sqliteLastInsertRowID, N, <.ptrDB>, 'sqlite3_last_insert_rowid', \ - sqliteLibVersion, N, <VOID>, 'sqlite3_libversion', \ - sqliteLibversionNumber, N, <VOID>, 'sqlite3_libversion_number', \ - sqliteLimit, N, <.ptrDB, .idLimit, .newVal>, 'sqlite3_limit', \ - sqliteLoadExtension, N, <.ptrDB, .nameDLL, .entryProc, .ptrVarErrMsg>, 'sqlite3_load_extension', \ - sqliteLog, N, <.iErrCode, .ptrFormat, .Carguments>, 'sqlite3_log', \ - sqliteMAlloc, N, <.size>, 'sqlite3_malloc', \ - sqliteMemoryAlarm_OLD, N, <NONE>, 'sqlite3_memory_alarm', \ - sqliteMemoryHighWater, N, <.flagReset>, 'sqlite3_memory_highwater', \ - sqliteMemoryUsed, N, <VOID>, 'sqlite3_memory_used', \ - sqliteMprintf, N, <.ptrString, .Carguments>, 'sqlite3_mprintf', \ - sqliteMutexAlloc, N, <.type>, 'sqlite3_mutex_alloc', \ - sqliteMutexEnter, N, <.hMutex>, 'sqlite3_mutex_enter', \ - sqliteMutexFree, N, <.hMutex>, 'sqlite3_mutex_free', \ - sqliteMutexLeave, N, <.hMutex>, 'sqlite3_mutex_leave', \ - sqliteMutexTry, N, <.hMutex>, 'sqlite3_mutex_try', \ - sqliteNextStmt, N, <.ptrDB, .stmt>, 'sqlite3_next_stmt', \ - sqliteOSEnd, N, <VOID>, 'sqlite3_os_end', \ - sqliteOSInit, N, <VOID>, 'sqlite3_os_init', \ - sqliteOpen, N, <.ptrFileName, \ - .ptrVarDB>, 'sqlite3_open', \ - sqliteOpen16, N, <.ptrFileName, .ptrVarDB>, 'sqlite3_open16', \ - sqliteOpen_v2, N, <.ptrFileName, .ptrVarDB, .flags, .ptrVFSName>, 'sqlite3_open_v2', \ - sqliteOverloadFunction, N, <.ptrDB, .ptrFuncName, .lparam>, 'sqlite3_overload_function', \ - sqlitePrepare, N, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare', \ - sqlitePrepare16, N, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16', \ - sqlitePrepare16_v2, N, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16_v2', \ - sqlitePrepare_v2, N, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare_v2', \ - sqliteProfile, N, <.ptrDB, .procProfiler, .lparam>, 'sqlite3_profile', \ - sqliteProgressHandler, N, <.ptrDB, .N, .procProgress, .lparam>, 'sqlite3_progress_handler', \ - sqliteRandomness, N, <.bytes, .buffer>, 'sqlite3_randomness', \ - sqliteReAlloc, N, <.ptrmem, .newsize>, 'sqlite3_realloc', \ - sqliteReleaseMemory, N, <.bytes>, 'sqlite3_release_memory', \ - sqliteReset, N, <.stmt>, 'sqlite3_reset', \ - sqliteResetAutoExtension, N, <VOID>, 'sqlite3_reset_auto_extension', \ - sqliteResultBlob, N, <.context, .ptrdata, .size, .procDestroy>, 'sqlite3_result_blob', \ - sqliteResultDouble, N, <.context, .double>, 'sqlite3_result_double', \ - sqliteResultError, N, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error', \ - sqliteResultError16, N, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error16', \ - sqliteResultErrorCode, N, <.context, .errcode>, 'sqlite3_result_error_code', \ - sqliteResultErrorNoMem, N, <.context>, 'sqlite3_result_error_nomem', \ - sqliteResultErrorTooBig, N, <.context>, 'sqlite3_result_error_toobig', \ - sqliteResultInt, N, <.context, .integer>, 'sqlite3_result_int', \ - sqliteResultInt64, N, <.context, .int64Lo, .int64Hi>, 'sqlite3_result_int64', \ - sqliteResultNULL, N, <.context>, 'sqlite3_result_null', \ - sqliteResultText, N, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text', \ - sqliteResultText16, N, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16', \ - sqliteResultText16be, N, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16be', \ - sqliteResultText16le, N, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16le', \ - sqliteResultValue, N, <.context, .ptrValue>, 'sqlite3_result_value', \ - sqliteResultZeroBlob, N, <.context, .size>, 'sqlite3_result_zeroblob', \ - sqliteRollbackHook, N, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_rollback_hook', \ - sqliteRtreeGeometryCallback, N, <NONE>, 'sqlite3_rtree_geometry_callback', \ - sqliteSQL, N, <.stmt>, 'sqlite3_sql', \ - sqliteSetAuthorizer, N, <.ptrDB, .procAuthorizer, .lparam>, 'sqlite3_set_authorizer', \ - sqliteSetAuxdata, N, <.context, .N, .ptrData, .procDestructor>, 'sqlite3_set_auxdata', \ - sqliteShutdown, N, <VOID>, 'sqlite3_shutdown', \ - sqliteSleep, N, <.sleep_ms>, 'sqlite3_sleep', \ - sqliteSnprintf, N, <.size, .ptrBuffer, .ptrString, .Carguments>, 'sqlite3_snprintf', \ - sqliteSoftHeapLimit, N, <.N>, 'sqlite3_soft_heap_limit', \ - sqliteSoftHeapLimit64, N, <.sizeLo, .sizeHi>, 'sqlite3_soft_heap_limit64', \ - sqliteSourceID, N, <VOID>, 'sqlite3_sourceid', \ - sqliteStatus, N, <.paramIndex, .ptrVarResult, .ptrVarHighwater, .flagReset>, 'sqlite3_status', \ - sqliteStep, N, <.stmt>, 'sqlite3_step', \ - sqliteStmtStatus, N, <.stmt, .paramIndex, .flagReset>, 'sqlite3_stmt_status', \ - sqliteStrnicmp, N, <.ptrStr1, .ptrStr2, .size>, 'sqlite3_strnicmp', \ - sqliteTableColumnMetadata, N, <.ptrDB, .ptrDBName, .ptrTableName, .ptrColumnName, .ptrVarDataType, .ptrVarCollSeq, .ptrVarNotNull, .ptrVarPrimaryKey, .ptrVarAutoInc>, 'sqlite3_table_column_metadata', \ - sqliteTestControl, N, <.opCode, .Carguments>, 'sqlite3_test_control', \ - sqliteThreadCleanup, N, <VOID>, 'sqlite3_thread_cleanup', \ - sqliteThreadsafe, N, <VOID>, 'sqlite3_threadsafe', \ - sqliteTotalChanges, N, <.ptrDB>, 'sqlite3_total_changes', \ - sqliteTrace, N, <.ptrDB, .procTrace, .lparam>, 'sqlite3_trace', \ - sqliteTransferBindings, N, <VOID>, 'sqlite3_transfer_bindings', \ - sqliteUpdateHook, N, <.ptrDB, .procUpdateHook, .lparam>, 'sqlite3_update_hook', \ - sqliteUserData, N, <.context>, 'sqlite3_user_data', \ - sqliteValueBlob, N, <.ptrValue>, 'sqlite3_value_blob', \ - sqliteValueBytes, N, <.ptrValue>, 'sqlite3_value_bytes', \ - sqliteValueBytes16, N, <.ptrValue>, 'sqlite3_value_bytes16', \ - sqliteValueDouble, N, <.ptrValue>, 'sqlite3_value_double', \ - sqliteValueInt, N, <.ptrValue>, 'sqlite3_value_int', \ - sqliteValueInt64, N, <.ptrValue>, 'sqlite3_value_int64', \ - sqliteValueNumericType, N, <.ptrValue>, 'sqlite3_value_numeric_type', \ - sqliteValueText, N, <.ptrValue>, 'sqlite3_value_text', \ - sqliteValueText16, N, <.ptrValue>, 'sqlite3_value_text16', \ - sqliteValueText16be, N, <.ptrValue>, 'sqlite3_value_text16be', \ - sqliteValueText16le, N, <.ptrValue>, 'sqlite3_value_text16le', \ - sqliteValueType, N, <.ptrValue>, 'sqlite3_value_type', \ - sqliteVersion, N, <VOID>, 'sqlite3_version', \ - sqliteVfsFind, N, <.ptrVFSName>, 'sqlite3_vfs_find', \ - sqliteVfsRegister, N, <.hVFS, .flagDefault>, 'sqlite3_vfs_register', \ - sqliteVfsUnregister, N, <.hVFS>, 'sqlite3_vfs_unregister', \ - sqliteVmprintf, N, <.ptrString, .va_list>, 'sqlite3_vmprintf', \ - sqliteWalAutocheckpoint, N, <.ptrDB, .N>, 'sqlite3_wal_autocheckpoint', \ - sqliteWalCheckpoint, N, <.ptrDB, .ptrDBName>, 'sqlite3_wal_checkpoint', \ - sqliteWalHook, N, <.ptrDB, .procCommitHook, .lparam>, 'sqlite3_wal_hook', \ - sqliteWin32_MbcsToUtf8, N, <NONE>, 'sqlite3_win32_mbcs_to_utf8' DELETED freshlib/imports/Win32/api/user32.inc Index: freshlib/imports/Win32/api/user32.inc ================================================================== --- freshlib/imports/Win32/api/user32.inc +++ /dev/null @@ -1,727 +0,0 @@ -; user32.dll API calls (ASCII) -import_proto user32, \ - ActivateKeyboardLayout, N, <.HKL, .flags>, 'ActivateKeyboardLayout', \ - AdjustWindowRect, N, <.lpRect, .dwStyle, .bMenu>, 'AdjustWindowRect', \ - AdjustWindowRectEx, N, <.lpRect, .dwStyle, .bMenu, .dwExStyle>, 'AdjustWindowRectEx', \ - AlignRects, N, <NONE>, 'AlignRects', \ - AllowForegroundActivation, N, <NONE>, 'AllowForegroundActivation', \ - AllowSetForegroundWindow, N, <.dwProcessId>, 'AllowSetForegroundWindow', \ - AnimateWindow, N, <.hwnd, .dwTime, .dwFlags>, 'AnimateWindow', \ - AnyPopup, N, <VOID>, 'AnyPopup', \ - AppendMenu, A, <.hMenu, .wFlags, .wIDNewItem, .lpNewItem>, 'AppendMenuA', \ - AppendMenu, W, <.hMenu, .wFlags, .wIDNewItem, .lpNewItem>, 'AppendMenuW', \ - ArrangeIconicWindows, N, <.hwnd>, 'ArrangeIconicWindows', \ - AttachThreadInput, N, <.idAttach, .idAttachTo, .fAttach>, 'AttachThreadInput', \ - BeginDeferWindowPos, N, <.nNumWindows>, 'BeginDeferWindowPos', \ - BeginPaint, N, <.hwnd, .lpPaint>, 'BeginPaint', \ - BlockInput, N, <.fBlockIt>, 'BlockInput', \ - BringWindowToTop, N, <.hwnd>, 'BringWindowToTop', \ - BroadcastSystemMessage, A, <.dw, .pdw, .un, .wParam, .lParam>, 'BroadcastSystemMessageA', \ - BroadcastSystemMessageEx, A, <NONE>, 'BroadcastSystemMessageExA', \ - BroadcastSystemMessageEx, W, <NONE>, 'BroadcastSystemMessageExW', \ - BroadcastSystemMessage, W, <.dw, .pdw, .un, .wParam, .lParam>, 'BroadcastSystemMessageW', \ - BuildReasonArray, N, <NONE>, 'BuildReasonArray', \ - CalcMenuBar, N, <NONE>, 'CalcMenuBar', \ - CallMsgFilter, A, <.lpMsg, .ncode>, 'CallMsgFilterA', \ - CallMsgFilter, W, <.lpMsg, .ncode>, 'CallMsgFilterW', \ - CallNextHookEx, N, <.hHook, .ncode, .wParam, .lParam>, 'CallNextHookEx', \ - CallWindowProc, A, <.lpPrevWndFunc, .hWnd, .Msg, .wParam, .lParam>, 'CallWindowProcA', \ - CallWindowProc, W, <.lpPrevWndFunc, .hWnd, .Msg, .wParam, .lParam>, 'CallWindowProcW', \ - CascadeChildWindows, N, <NONE>, 'CascadeChildWindows', \ - CascadeWindows, N, <.hwndParent, .wHow, .lpRect, .cKids, .lpkids>, 'CascadeWindows', \ - ChangeClipboardChain, N, <.hwnd, .hWndNext>, 'ChangeClipboardChain', \ - ChangeDisplaySettings, A, <.lpDevMode, .dwFlags>, 'ChangeDisplaySettingsA', \ - ChangeDisplaySettingsEx, A, <.lpszDeviceName, .lpDevMode, .hwnd, .dwflags, .lParam>, 'ChangeDisplaySettingsExA', \ - ChangeDisplaySettingsEx, W, <.lpszDeviceName, .lpDevMode, .hwnd, .dwflags, .lParam>, 'ChangeDisplaySettingsExW', \ - ChangeDisplaySettings, W, <.lpDevMode, .dwFlags>, 'ChangeDisplaySettingsW', \ - ChangeMenu, A, <.hMenu, .cmd, .lpszNewItem, .cmdInsert, .flags>, 'ChangeMenuA', \ - ChangeMenu, W, <.hMenu, .cmd, .lpszNewItem, .cmdInsert, .flags>, 'ChangeMenuW', \ - CharLower, A, <.lpsz>, 'CharLowerA', \ - CharLowerBuff, A, <.lpsz, .cchLength>, 'CharLowerBuffA', \ - CharLowerBuff, W, <.lpsz, .cchLength>, 'CharLowerBuffW', \ - CharLower, W, <.lpsz>, 'CharLowerW', \ - CharNext, A, <.lpsz>, 'CharNextA', \ - CharNextEx, A, <.CodePage, .lpCurrentChar, .dwFlags>, 'CharNextExA', \ - CharNext, W, <.lpsz>, 'CharNextW', \ - CharPrev, A, <.lpszStart, .lpszCurrent>, 'CharPrevA', \ - CharPrevEx, A, <.CodePage, .lpStart, .lpCurrentChar, .dwFlags>, 'CharPrevExA', \ - CharPrev, W, <.lpszStart, .lpszCurrent>, 'CharPrevW', \ - CharToOem, A, <.lpszSrc, .lpszDst>, 'CharToOemA', \ - CharToOemBuff, A, <.lpszSrc, .lpszDst, .cchDstLength>, 'CharToOemBuffA', \ - CharToOemBuff, W, <.lpszSrc, .lpszDst, .cchDstLength>, 'CharToOemBuffW', \ - CharToOem, W, <.lpszSrc, .lpszDst>, 'CharToOemW', \ - CharUpper, A, <.lpsz>, 'CharUpperA', \ - CharUpperBuff, A, <.lpsz, .cchLength>, 'CharUpperBuffA', \ - CharUpperBuff, W, <.lpsz, .cchLength>, 'CharUpperBuffW', \ - CharUpper, W, <.lpsz>, 'CharUpperW', \ - CheckDlgButton, N, <.hDlg, .nIDButton, .uCheck>, 'CheckDlgButton', \ - CheckMenuItem, N, <.hMenu, .wIDCheckItem, .wCheck>, 'CheckMenuItem', \ - CheckMenuRadioItem, N, <.hMenu, .un1, .un2, .un3, .un4>, 'CheckMenuRadioItem', \ - CheckRadioButton, N, <.hDlg, .nIDFirstButton, .nIDLastButton, .nIDCheckButton>, 'CheckRadioButton', \ - ChildWindowFromPoint, N, <.hWnd, .xPoint, .yPoint>, 'ChildWindowFromPoint', \ - ChildWindowFromPointEx, N, <.hWnd, .pt, .un>, 'ChildWindowFromPointEx', \ - CliImmSetHotKey, N, <NONE>, 'CliImmSetHotKey', \ - ClientThreadSetup, N, <NONE>, 'ClientThreadSetup', \ - ClientToScreen, N, <.hwnd, .lpPoint>, 'ClientToScreen', \ - ClipCursor, N, <.lpRect>, 'ClipCursor', \ - CloseClipboard, N, <VOID>, 'CloseClipboard', \ - CloseDesktop, N, <.hDesktop>, 'CloseDesktop', \ - CloseWindow, N, <.hwnd>, 'CloseWindow', \ - CloseWindowStation, N, <.hWinSta>, 'CloseWindowStation', \ - CopyAcceleratorTable, A, <.hAccelSrc, .lpAccelDst, .cAccelEntries>, 'CopyAcceleratorTableA', \ - CopyAcceleratorTable, W, <.hAccelSrc, .lpAccelDst, .cAccelEntries>, 'CopyAcceleratorTableW', \ - CopyIcon, N, <.hIcon>, 'CopyIcon', \ - CopyImage, N, <.handle, .un1, .n1, .n2, .un2>, 'CopyImage', \ - CopyRect, N, <.lpDestRect, .lpSourceRect>, 'CopyRect', \ - CountClipboardFormats, N, <VOID>, 'CountClipboardFormats', \ - CreateAcceleratorTable, A, <.lpaccl, .cEntries>, 'CreateAcceleratorTableA', \ - CreateAcceleratorTable, W, <.lpaccl, .cEntries>, 'CreateAcceleratorTableW', \ - CreateCaret, N, <.hwnd, .hBitmap, .nWidth, .nHeight>, 'CreateCaret', \ - CreateCursor, N, <.hInstance, .nXhotspot, .nYhotspot, .nWidth, .nHeight, .lpANDbitPlane, .lpXORbitPlane>, 'CreateCursor', \ - CreateDesktop, A, <.lpszDesktop, .lpszDevice, .pDevmode, .dwFlags, .dwDesiredAccess, .lpsa>, 'CreateDesktopA', \ - CreateDesktop, W, <.lpszDesktop, .lpszDevice, .pDevmode, .dwFlags, .dwDesiredAccess, .lpsa>, 'CreateDesktopW', \ - CreateDialogIndirectParam, A, <.hInstance, .lpTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'CreateDialogIndirectParamA', \ - CreateDialogIndirectParamAor, W, <NONE>, 'CreateDialogIndirectParamAorW', \ - CreateDialogIndirectParam, W, <.hInstance, .lpTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'CreateDialogIndirectParamW', \ - CreateDialogParam, A, <.hInstance, .lpName, .hWndParent, .lpDialogFunc, .lParamInit>, 'CreateDialogParamA', \ - CreateDialogParam, W, <.hInstance, .lpName, .hWndParent, .lpDialogFunc, .lParamInit>, 'CreateDialogParamW', \ - CreateIcon, N, <.hInstance, .nWidth, .nHeight, .nPlanes, .nBitsPixel, .lpANDbits, .lpXORbits>, 'CreateIcon', \ - CreateIconFromResource, N, <.presbits, .dwResSize, .fIcon, .dwVer>, 'CreateIconFromResource', \ - CreateIconFromResourceEx, N, <.presbits, .dwResSize, .fIcon, .dwVer, .cxDesired, .cyDesired, .Flags>, 'CreateIconFromResourceEx', \ - CreateIconIndirect, N, <.piconinfo>, 'CreateIconIndirect', \ - CreateMDIWindow, A, <.lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hInstance, .lParam>, 'CreateMDIWindowA', \ - CreateMDIWindow, W, <.lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hInstance, .lParam>, 'CreateMDIWindowW', \ - CreateMenu, N, <VOID>, 'CreateMenu', \ - CreatePopupMenu, N, <VOID>, 'CreatePopupMenu', \ - CreateSystemThreads, N, <NONE>, 'CreateSystemThreads', \ - CreateWindowEx, A, <.dwExStyle, .lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hMenu, .hInstance, .lpParam>, 'CreateWindowExA', \ - CreateWindowEx, W, <.dwExStyle, .lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hMenu, .hInstance, .lpParam>, 'CreateWindowExW', \ - CreateWindowStation, A, <.lpwinsta, .dwReserved, .dwDesiredAccess, .lpsa>, 'CreateWindowStationA', \ - CreateWindowStation, W, <.lpwinsta, .dwReserved, .dwDesiredAccess, .lpsa>, 'CreateWindowStationW', \ - CsrBroadcastSystemMessageEx, W, <NONE>, 'CsrBroadcastSystemMessageExW', \ - CtxInitUser32, N, <NONE>, 'CtxInitUser32', \ - DdeAbandonTransaction, N, <.idInst, .hConv, .idTransaction>, 'DdeAbandonTransaction', \ - DdeAccessData, N, <.hData, .pcbDataSize>, 'DdeAccessData', \ - DdeAddData, N, <.hData, .pSrc, .cb, .cbOff>, 'DdeAddData', \ - DdeClientTransaction, N, <.pData, .cbData, .hConv, .hszItem, .wFmt, .wType, .dwTimeout, .pdwResult>, 'DdeClientTransaction', \ - DdeCmpStringHandles, N, <.hsz1, .hsz2>, 'DdeCmpStringHandles', \ - DdeConnect, N, <.idInst, .hszService, .hszTopic, .pCC>, 'DdeConnect', \ - DdeConnectList, N, <.idInst, .hszService, .hszTopic, .hConvList, .pCC>, 'DdeConnectList', \ - DdeCreateDataHandle, N, <.idInst, .pSrc, .cb, .cbOff, .hszItem, .wFmt, .afCmd>, 'DdeCreateDataHandle', \ - DdeCreateStringHandle, A, <.idInst, .psz, .iCodePage>, 'DdeCreateStringHandleA', \ - DdeCreateStringHandle, W, <.idInst, .psz, .iCodePage>, 'DdeCreateStringHandleW', \ - DdeDisconnect, N, <.hConv>, 'DdeDisconnect', \ - DdeDisconnectList, N, <.hConvList>, 'DdeDisconnectList', \ - DdeEnableCallback, N, <.idInst, .hConv, .wCmd>, 'DdeEnableCallback', \ - DdeFreeDataHandle, N, <.hData>, 'DdeFreeDataHandle', \ - DdeFreeStringHandle, N, <.idInst, .hsz>, 'DdeFreeStringHandle', \ - DdeGetData, N, <.hData, .pDst, .cbMax, .cbOff>, 'DdeGetData', \ - DdeGetLastError, N, <.idInst>, 'DdeGetLastError', \ - DdeGetQualityOfService, N, <NONE>, 'DdeGetQualityOfService', \ - DdeImpersonateClient, N, <.hConv>, 'DdeImpersonateClient', \ - DdeInitialize, A, <.pidInst, .pfnCallback, .afCmd, .ulRes>, 'DdeInitializeA', \ - DdeInitialize, W, <.pidInst, .pfnCallback, .afCmd, .ulRes>, 'DdeInitializeW', \ - DdeKeepStringHandle, N, <.idInst, .hsz>, 'DdeKeepStringHandle', \ - DdeNameService, N, <.idInst, .hsz1, .hsz2, .afCmd>, 'DdeNameService', \ - DdePostAdvise, N, <.idInst, .hszTopic, .hszItem>, 'DdePostAdvise', \ - DdeQueryConvInfo, N, <.hConv, .idTransaction, .pConvInfo>, 'DdeQueryConvInfo', \ - DdeQueryNextServer, N, <.hConvList, .hConvPrev>, 'DdeQueryNextServer', \ - DdeQueryString, A, <.idInst, .hsz, .psz, .cchMax, .iCodePage>, 'DdeQueryStringA', \ - DdeQueryString, W, <.idInst, .hsz, .psz, .cchMax, .iCodePage>, 'DdeQueryStringW', \ - DdeReconnect, N, <.hConv>, 'DdeReconnect', \ - DdeSetQualityOfService, N, <.hWndClient, .pqosNew, .pqosPrev>, 'DdeSetQualityOfService', \ - DdeSetUserHandle, N, <.hConv, .id, .hUser>, 'DdeSetUserHandle', \ - DdeUnaccessData, N, <.hData>, 'DdeUnaccessData', \ - DdeUninitialize, N, <.idInst>, 'DdeUninitialize', \ - DefDlgProc, A, <.hDlg, .wMsg, .wParam, .lParam>, 'DefDlgProcA', \ - DefDlgProc, W, <.hDlg, .wMsg, .wParam, .lParam>, 'DefDlgProcW', \ - DefFrameProc, A, <.hwnd, .hWndMDIClient, .wMsg, .wParam, .lParam>, 'DefFrameProcA', \ - DefFrameProc, W, <.hwnd, .hWndMDIClient, .wMsg, .wParam, .lParam>, 'DefFrameProcW', \ - DefMDIChildProc, A, <.hwnd, .wMsg, .wParam, .lParam>, 'DefMDIChildProcA', \ - DefMDIChildProc, W, <.hwnd, .wMsg, .wParam, .lParam>, 'DefMDIChildProcW', \ - DefRawInputProc, N, <NONE>, 'DefRawInputProc', \ - DefWindowProc, A, <.hwnd, .wMsg, .wParam, .lParam>, 'DefWindowProcA', \ - DefWindowProc, W, <.hwnd, .wMsg, .wParam, .lParam>, 'DefWindowProcW', \ - DeferWindowPos, N, <.hWinPosInfo, .hwnd, .hWndInsertAfter, .x, .y, .cx, .cy, .wFlags>, 'DeferWindowPos', \ - DeleteMenu, N, <.hMenu, .nPosition, .wFlags>, 'DeleteMenu', \ - DeregisterShellHookWindow, N, <NONE>, 'DeregisterShellHookWindow', \ - DestroyAcceleratorTable, N, <.haccel>, 'DestroyAcceleratorTable', \ - DestroyCaret, N, <VOID>, 'DestroyCaret', \ - DestroyCursor, N, <.hCursor>, 'DestroyCursor', \ - DestroyIcon, N, <.hIcon>, 'DestroyIcon', \ - DestroyMenu, N, <.hMenu>, 'DestroyMenu', \ - DestroyReasons, N, <NONE>, 'DestroyReasons', \ - DestroyWindow, N, <.hwnd>, 'DestroyWindow', \ - DeviceEventWorker, N, <NONE>, 'DeviceEventWorker', \ - DialogBoxIndirectParam, A, <.hInstance, .hDialogTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxIndirectParamA', \ - DialogBoxIndirectParamAor, W, <NONE>, 'DialogBoxIndirectParamAorW', \ - DialogBoxIndirectParam, W, <.hInstance, .hDialogTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxIndirectParamW', \ - DialogBoxParam, A, <.hInstance, .lpTemplateName, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxParamA', \ - DialogBoxParam, W, <.hInstance, .lpTemplateName, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxParamW', \ - DisableProcessWindowsGhosting, N, <NONE>, 'DisableProcessWindowsGhosting', \ - DispatchMessage, A, <.lpMsg>, 'DispatchMessageA', \ - DispatchMessage, W, <.lpMsg>, 'DispatchMessageW', \ - DisplayExitWindowsWarnings, N, <NONE>, 'DisplayExitWindowsWarnings', \ - DlgDirList, A, <.hDlg, .lpPathSpec, .nIDListBox, .nIDStaticPath, .wFileType>, 'DlgDirListA', \ - DlgDirListComboBox, A, <.hDlg, .lpPathSpec, .nIDComboBox, .nIDStaticPath, .wFileType>, 'DlgDirListComboBoxA', \ - DlgDirListComboBox, W, <.hDlg, .lpPathSpec, .nIDComboBox, .nIDStaticPath, .wFileType>, 'DlgDirListComboBoxW', \ - DlgDirList, W, <.hDlg, .lpPathSpec, .nIDListBox, .nIDStaticPath, .wFileType>, 'DlgDirListW', \ - DlgDirSelectComboBoxEx, A, <.hWndDlg, .lpszPath, .cbPath, .idComboBox>, 'DlgDirSelectComboBoxExA', \ - DlgDirSelectComboBoxEx, W, <.hWndDlg, .lpszPath, .cbPath, .idComboBox>, 'DlgDirSelectComboBoxExW', \ - DlgDirSelectEx, A, <.hWndDlg, .lpszPath, .cbPath, .idListBox>, 'DlgDirSelectExA', \ - DlgDirSelectEx, W, <.hWndDlg, .lpszPath, .cbPath, .idListBox>, 'DlgDirSelectExW', \ - DragDetect, N, <.hWnd, .pt>, 'DragDetect', \ - DragObject, N, <.hWnd1, .hWnd2, .un, .dw, .hCursor>, 'DragObject', \ - DrawAnimatedRects, N, <.hwnd, .idAni, .lprcFrom, .lprcTo>, 'DrawAnimatedRects', \ - DrawCaption, N, <.hWnd, .hDC, .pcRect, .uDCFlags>, 'DrawCaption', \ - DrawCaptionTemp, A, <NONE>, 'DrawCaptionTempA', \ - DrawCaptionTemp, W, <NONE>, 'DrawCaptionTempW', \ - DrawEdge, N, <.hdc, .qrc, .edge, .grfFlags>, 'DrawEdge', \ - DrawFocusRect, N, <.hdc, .lpRect>, 'DrawFocusRect', \ - DrawFrame, N, <NONE>, 'DrawFrame', \ - DrawFrameControl, N, <.hDC, .lpRect, .uFrameType, .uFrameState>, 'DrawFrameControl', \ - DrawIcon, N, <.hdc, .x, .y, .hIcon>, 'DrawIcon', \ - DrawIconEx, N, <.hdc, .xLeft, .yTop, .hIcon, .cxWidth, .cyWidth, .istepIfAniCur, .hbrFlickerFreeDraw, .diFlags>, 'DrawIconEx', \ - DrawMenuBar, N, <.hwnd>, 'DrawMenuBar', \ - DrawMenuBarTemp, N, <NONE>, 'DrawMenuBarTemp', \ - DrawState, A, <.hDC, .hBrush, .lpDrawStateProc, .lParam, .wParam, .n1, .n2, .n3, .n4, .un>, 'DrawStateA', \ - DrawState, W, <.hDC, .hBrush, .lpDrawStateProc, .lParam, .wParam, .n1, .n2, .n3, .n4, .un>, 'DrawStateW', \ - DrawText, A, <.hdc, .lpStr, .nCount, .lpRect, .wFormat>, 'DrawTextA', \ - DrawTextEx, A, <.hDC, .lpsz, .n, .lpRect, .un, .lpDrawTextParams>, 'DrawTextExA', \ - DrawTextEx, W, <.hDC, .lpsz, .n, .lpRect, .un, .lpDrawTextParams>, 'DrawTextExW', \ - DrawText, W, <.hdc, .lpStr, .nCount, .lpRect, .wFormat>, 'DrawTextW', \ - EditWndProc, N, <NONE>, 'EditWndProc', \ - EmptyClipboard, N, <VOID>, 'EmptyClipboard', \ - EnableMenuItem, N, <.hMenu, .wIDEnableItem, .wEnable>, 'EnableMenuItem', \ - EnableScrollBar, N, <.hwnd, .wSBflags, .wArrows>, 'EnableScrollBar', \ - EnableWindow, N, <.hwnd, .fBoolean>, 'EnableWindow', \ - EndDeferWindowPos, N, <.hWinPosInfo>, 'EndDeferWindowPos', \ - EndDialog, N, <.hDlg, .nResult>, 'EndDialog', \ - EndMenu, N, <VOID>, 'EndMenu', \ - EndPaint, N, <.hwnd, .lpPaint>, 'EndPaint', \ - EndTask, N, <NONE>, 'EndTask', \ - EnterReaderModeHelper, N, <NONE>, 'EnterReaderModeHelper', \ - EnumChildWindows, N, <.hWndParent, .lpEnumFunc, .lParam>, 'EnumChildWindows', \ - EnumClipboardFormats, N, <.wFormat>, 'EnumClipboardFormats', \ - EnumDesktopWindows, N, <.hDesktop, .lpfn, .lParam>, 'EnumDesktopWindows', \ - EnumDesktops, A, <.hwinsta, .lpEnumFunc, .lParam>, 'EnumDesktopsA', \ - EnumDesktops, W, <.hwinsta, .lpEnumFunc, .lParam>, 'EnumDesktopsW', \ - EnumDisplayDevices, A, <.lpDevice, .iDevNum, .lpDisplayDevice, .dwFlags>, 'EnumDisplayDevicesA', \ - EnumDisplayDevices, W, <.lpDevice, .iDevNum, .lpDisplayDevice, .dwFlags>, 'EnumDisplayDevicesW', \ - EnumDisplayMonitors, N, <.hdc, .lprcClip, .lpfnEnum, .dwData>, 'EnumDisplayMonitors', \ - EnumDisplaySettings, A, <.lpszDeviceName, .iModeNum, .lpDevMode>, 'EnumDisplaySettingsA', \ - EnumDisplaySettingsEx, A, <.lpszDeviceName, .iModeNum, .lpDevMode, .dwFlags>, 'EnumDisplaySettingsExA', \ - EnumDisplaySettingsEx, W, <.lpszDeviceName, .iModeNum, .lpDevMode, .dwFlags>, 'EnumDisplaySettingsExW', \ - EnumDisplaySettings, W, <.lpszDeviceName, .iModeNum, .lpDevMode>, 'EnumDisplaySettingsW', \ - EnumProps, A, <.hWnd, .lpEnumFunc>, 'EnumPropsA', \ - EnumPropsEx, A, <.hWnd, .lpEnumFunc, .lParam>, 'EnumPropsExA', \ - EnumPropsEx, W, <.hWnd, .lpEnumFunc, .lParam>, 'EnumPropsExW', \ - EnumProps, W, <.hWnd, .lpEnumFunc>, 'EnumPropsW', \ - EnumThreadWindows, N, <.dwThreadId, .lpfn, .lParam>, 'EnumThreadWindows', \ - EnumWindowStations, A, <.lpEnumFunc, .lParam>, 'EnumWindowStationsA', \ - EnumWindowStations, W, <.lpEnumFunc, .lParam>, 'EnumWindowStationsW', \ - EnumWindows, N, <.lpEnumFunc, .lParam>, 'EnumWindows', \ - EqualRect, N, <.lpRect1, .lpRect2>, 'EqualRect', \ - ExcludeUpdateRgn, N, <.hdc, .hwnd>, 'ExcludeUpdateRgn', \ - ExitWindowsEx, N, <.uFlags, .dwReserved>, 'ExitWindowsEx', \ - FillRect, N, <.hdc, .lpRect, .hBrush>, 'FillRect', \ - FindWindow, A, <.lpClassName, .lpWindowName>, 'FindWindowA', \ - FindWindowEx, A, <.hWnd1, .hWnd2, .lpsz1, .lpsz2>, 'FindWindowExA', \ - FindWindowEx, W, <.hWnd1, .hWnd2, .lpsz1, .lpsz2>, 'FindWindowExW', \ - FindWindow, W, <.lpClassName, .lpWindowName>, 'FindWindowW', \ - FlashWindow, N, <.hwnd, .bInvert>, 'FlashWindow', \ - FlashWindowEx, N, <.pfwi>, 'FlashWindowEx', \ - FrameRect, N, <.hdc, .lpRect, .hBrush>, 'FrameRect', \ - FreeDDElParam, N, <.msg, .lParam>, 'FreeDDElParam', \ - GetActiveWindow, N, <VOID>, 'GetActiveWindow', \ - GetAltTabInfo, A, <.hwnd, .iItem, .pati, .pszItemText, .cchItemText>, 'GetAltTabInfoA', \ - GetAltTabInfo, W, <.hwnd, .iItem, .pati, .pszItemText, .cchItemText>, 'GetAltTabInfoW', \ - GetAncestor, N, <.hwnd, .gaFlags>, 'GetAncestor', \ - GetAppCompatFlags, N, <NONE>, 'GetAppCompatFlags', \ - GetAppCompatFlags2, N, <NONE>, 'GetAppCompatFlags2', \ - GetAsyncKeyState, N, <.vKey>, 'GetAsyncKeyState', \ - GetCapture, N, <VOID>, 'GetCapture', \ - GetCaretBlinkTime, N, <VOID>, 'GetCaretBlinkTime', \ - GetCaretPos, N, <.lpPoint>, 'GetCaretPos', \ - GetClassInfo, A, <.hInstance, .lpClassName, .lpWndClass>, 'GetClassInfoA', \ - GetClassInfoEx, A, <.hinstance, .lpcstr, .lpwndclassexa>, 'GetClassInfoExA', \ - GetClassInfoEx, W, <.hinstance, .lpcstr, .lpwndclassexa>, 'GetClassInfoExW', \ - GetClassInfo, W, <.hInstance, .lpClassName, .lpWndClass>, 'GetClassInfoW', \ - GetClassLong, A, <.hwnd, .nIndex>, 'GetClassLongA', \ - GetClassLong, W, <.hwnd, .nIndex>, 'GetClassLongW', \ - GetClassName, A, <.hwnd, .lpClassName, .nMaxCount>, 'GetClassNameA', \ - GetClassName, W, <.hwnd, .lpClassName, .nMaxCount>, 'GetClassNameW', \ - GetClassWord, N, <.hwnd, .nIndex>, 'GetClassWord', \ - GetClientRect, N, <.hwnd, .lpRect>, 'GetClientRect', \ - GetClipCursor, N, <.lprc>, 'GetClipCursor', \ - GetClipboardData, N, <.wFormat>, 'GetClipboardData', \ - GetClipboardFormatName, A, <.wFormat, .lpString, .nMaxCount>, 'GetClipboardFormatNameA', \ - GetClipboardFormatName, W, <.wFormat, .lpString, .nMaxCount>, 'GetClipboardFormatNameW', \ - GetClipboardOwner, N, <VOID>, 'GetClipboardOwner', \ - GetClipboardSequenceNumber, N, <VOID>, 'GetClipboardSequenceNumber', \ - GetClipboardViewer, N, <VOID>, 'GetClipboardViewer', \ - GetComboBoxInfo, N, <.hwndCombo, .pcbi>, 'GetComboBoxInfo', \ - GetCursor, N, <VOID>, 'GetCursor', \ - GetCursorFrameInfo, N, <NONE>, 'GetCursorFrameInfo', \ - GetCursorInfo, N, <.pci>, 'GetCursorInfo', \ - GetCursorPos, N, <.lpPoint>, 'GetCursorPos', \ - GetDC, N, <.hwnd>, 'GetDC', \ - GetDCEx, N, <.hwnd, .hrgnclip, .fdwOptions>, 'GetDCEx', \ - GetDesktopWindow, N, <VOID>, 'GetDesktopWindow', \ - GetDialogBaseUnits, N, <VOID>, 'GetDialogBaseUnits', \ - GetDlgCtrlID, N, <.hwnd>, 'GetDlgCtrlID', \ - GetDlgItem, N, <.hDlg, .nIDDlgItem>, 'GetDlgItem', \ - GetDlgItemInt, N, <.hDlg, .nIDDlgItem, .lpTranslated, .bSigned>, 'GetDlgItemInt', \ - GetDlgItemText, A, <.hDlg, .nIDDlgItem, .lpString, .nMaxCount>, 'GetDlgItemTextA', \ - GetDlgItemText, W, <.hDlg, .nIDDlgItem, .lpString, .nMaxCount>, 'GetDlgItemTextW', \ - GetDoubleClickTime, N, <VOID>, 'GetDoubleClickTime', \ - GetFocus, N, <VOID>, 'GetFocus', \ - GetForegroundWindow, N, <VOID>, 'GetForegroundWindow', \ - GetGUIThreadInfo, N, <.idThread, .pgui>, 'GetGUIThreadInfo', \ - GetGuiResources, N, <.hProcess, .uiFlags>, 'GetGuiResources', \ - GetIconInfo, N, <.hIcon, .piconinfo>, 'GetIconInfo', \ - GetInputDesktop, N, <NONE>, 'GetInputDesktop', \ - GetInputState, N, <VOID>, 'GetInputState', \ - GetInternalWindowPos, N, <NONE>, 'GetInternalWindowPos', \ - GetKBCodePage, N, <VOID>, 'GetKBCodePage', \ - GetKeyNameText, A, <.lParam, .lpBuffer, .nSize>, 'GetKeyNameTextA', \ - GetKeyNameText, W, <.lParam, .lpBuffer, .nSize>, 'GetKeyNameTextW', \ - GetKeyState, N, <.nVirtKey>, 'GetKeyState', \ - GetKeyboardLayout, N, <.dwLayout>, 'GetKeyboardLayout', \ - GetKeyboardLayoutList, N, <.nBuff, .lpList>, 'GetKeyboardLayoutList', \ - GetKeyboardLayoutName, A, <.pwszKLID>, 'GetKeyboardLayoutNameA', \ - GetKeyboardLayoutName, W, <.pwszKLID>, 'GetKeyboardLayoutNameW', \ - GetKeyboardState, N, <.pbKeyState>, 'GetKeyboardState', \ - GetKeyboardType, N, <.nTypeFlag>, 'GetKeyboardType', \ - GetLastActivePopup, N, <.hwndOwnder>, 'GetLastActivePopup', \ - GetLastInputInfo, N, <.plii>, 'GetLastInputInfo', \ - GetLayeredWindowAttributes, N, <NONE>, 'GetLayeredWindowAttributes', \ - GetListBoxInfo, N, <.hwnd>, 'GetListBoxInfo', \ - GetMenu, N, <.hwnd>, 'GetMenu', \ - GetMenuBarInfo, N, <.hwnd, .idObject, .idItem, .pmbi>, 'GetMenuBarInfo', \ - GetMenuCheckMarkDimensions, N, <VOID>, 'GetMenuCheckMarkDimensions', \ - GetMenuContextHelpId, N, <.hMenu>, 'GetMenuContextHelpId', \ - GetMenuDefaultItem, N, <.hMenu, .fByPos, .gmdiFlags>, 'GetMenuDefaultItem', \ - GetMenuInfo, N, <.hmenu, .LPMENUINFO>, 'GetMenuInfo', \ - GetMenuItemCount, N, <.hMenu>, 'GetMenuItemCount', \ - GetMenuItemID, N, <.hMenu, .nPos>, 'GetMenuItemID', \ - GetMenuItemInfo, A, <.hMenu, .un, .fBoolean, .lpMenuItemInfo>, 'GetMenuItemInfoA', \ - GetMenuItemInfo, W, <.hMenu, .un, .fBoolean, .lpMenuItemInfo>, 'GetMenuItemInfoW', \ - GetMenuItemRect, N, <.hWnd, .hMenu, .uItem, .lprcItem>, 'GetMenuItemRect', \ - GetMenuState, N, <.hMenu, .wID, .wFlags>, 'GetMenuState', \ - GetMenuString, A, <.hMenu, .wIDItem, .lpString, .nMaxCount, .wFlags>, 'GetMenuStringA', \ - GetMenuString, W, <.hMenu, .wIDItem, .lpString, .nMaxCount, .wFlags>, 'GetMenuStringW', \ - GetMessage, A, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax>, 'GetMessageA', \ - GetMessageExtraInfo, N, <VOID>, 'GetMessageExtraInfo', \ - GetMessagePos, N, <VOID>, 'GetMessagePos', \ - GetMessageTime, N, <VOID>, 'GetMessageTime', \ - GetMessage, W, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax>, 'GetMessageW', \ - GetMonitorInfo, A, <.hMonitor, .lpmi>, 'GetMonitorInfoA', \ - GetMonitorInfo, W, <.hMonitor, .lpmi>, 'GetMonitorInfoW', \ - GetMouseMovePointsEx, N, <.cbSize, .lppt, .lpptBuf, .nBufPoints, .resolution>, 'GetMouseMovePointsEx', \ - GetNextDlgGroupItem, N, <.hDlg, .hCtl, .bPrevious>, 'GetNextDlgGroupItem', \ - GetNextDlgTabItem, N, <.hDlg, .hCtl, .bPrevious>, 'GetNextDlgTabItem', \ - GetOpenClipboardWindow, N, <VOID>, 'GetOpenClipboardWindow', \ - GetParent, N, <.hwnd>, 'GetParent', \ - GetPriorityClipboardFormat, N, <.lpPriorityList, .nCount>, 'GetPriorityClipboardFormat', \ - GetProcessDefaultLayout, N, <.pdwDefaultLayout>, 'GetProcessDefaultLayout', \ - GetProcessWindowStation, N, <VOID>, 'GetProcessWindowStation', \ - GetProgmanWindow, N, <NONE>, 'GetProgmanWindow', \ - GetProp, A, <.hwnd, .lpString>, 'GetPropA', \ - GetProp, W, <.hwnd, .lpString>, 'GetPropW', \ - GetQueueStatus, N, <.fuFlags>, 'GetQueueStatus', \ - GetRawInputBuffer, N, <NONE>, 'GetRawInputBuffer', \ - GetRawInputData, N, <NONE>, 'GetRawInputData', \ - GetRawInputDeviceInfo, A, <NONE>, 'GetRawInputDeviceInfoA', \ - GetRawInputDeviceInfo, W, <NONE>, 'GetRawInputDeviceInfoW', \ - GetRawInputDeviceList, N, <NONE>, 'GetRawInputDeviceList', \ - GetReasonTitleFromReasonCode, N, <NONE>, 'GetReasonTitleFromReasonCode', \ - GetRegisteredRawInputDevices, N, <NONE>, 'GetRegisteredRawInputDevices', \ - GetScrollBarInfo, N, <.hwnd, .idObject, .psbi>, 'GetScrollBarInfo', \ - GetScrollInfo, N, <.hWnd, .n, .lpScrollInfo>, 'GetScrollInfo', \ - GetScrollPos, N, <.hwnd, .nBar>, 'GetScrollPos', \ - GetScrollRange, N, <.hwnd, .nBar, .lpMinPos, .lpMaxPos>, 'GetScrollRange', \ - GetShellWindow, N, <NONE>, 'GetShellWindow', \ - GetSubMenu, N, <.hMenu, .nPos>, 'GetSubMenu', \ - GetSysColor, N, <.nSysColor>, 'GetSysColor', \ - GetSysColorBrush, N, <.nSysColor>, 'GetSysColorBrush', \ - GetSystemMenu, N, <.hwnd, .fBoolean>, 'GetSystemMenu', \ - GetSystemMetrics, N, <.nIndex>, 'GetSystemMetrics', \ - GetTabbedTextExtent, A, <.hdc, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions>, 'GetTabbedTextExtentA', \ - GetTabbedTextExtent, W, <.hdc, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions>, 'GetTabbedTextExtentW', \ - GetTaskmanWindow, N, <NONE>, 'GetTaskmanWindow', \ - GetThreadDesktop, N, <.dwThread>, 'GetThreadDesktop', \ - GetTitleBarInfo, N, <.hwnd, .pti>, 'GetTitleBarInfo', \ - GetTopWindow, N, <.hwnd>, 'GetTopWindow', \ - GetUpdateRect, N, <.hwnd, .lpRect, .bErase>, 'GetUpdateRect', \ - GetUpdateRgn, N, <.hwnd, .hRgn, .fErase>, 'GetUpdateRgn', \ - GetUserObjectInformation, A, <.hObj, .nIndex, .pvInfo, .nLength, .lpnLengthNeeded>, 'GetUserObjectInformationA', \ - GetUserObjectInformation, W, <.hObj, .nIndex, .pvInfo, .nLength, .lpnLengthNeeded>, 'GetUserObjectInformationW', \ - GetUserObjectSecurity, N, <.hObj, .pSIRequested, .pSd, .nLength, .lpnLengthNeeded>, 'GetUserObjectSecurity', \ - GetWinStationInfo, N, <NONE>, 'GetWinStationInfo', \ - GetWindow, N, <.hwnd, .wCmd>, 'GetWindow', \ - GetWindowContextHelpId, N, <.hWnd>, 'GetWindowContextHelpId', \ - GetWindowDC, N, <.hwnd>, 'GetWindowDC', \ - GetWindowInfo, N, <.hwnd, .pwi>, 'GetWindowInfo', \ - GetWindowLong, A, <.hwnd, .nIndex>, 'GetWindowLongA', \ - GetWindowLong, W, <.hwnd, .nIndex>, 'GetWindowLongW', \ - GetWindowModuleFileName, A, <.hwnd, .pszFileName, .cchFileNameMax>, 'GetWindowModuleFileNameA', \ - GetWindowModuleFileName, W, <.hwnd, .pszFileName, .cchFileNameMax>, 'GetWindowModuleFileNameW', \ - GetWindowPlacement, N, <.hwnd, .lpwndpl>, 'GetWindowPlacement', \ - GetWindowRect, N, <.hwnd, .lpRect>, 'GetWindowRect', \ - GetWindowRgn, N, <.hWnd, .hRgn>, 'GetWindowRgn', \ - GetWindowRgnBox, N, <NONE>, 'GetWindowRgnBox', \ - GetWindowText, A, <.hwnd, .lpString, .cch>, 'GetWindowTextA', \ - GetWindowTextLength, A, <.hwnd>, 'GetWindowTextLengthA', \ - GetWindowTextLength, W, <.hwnd>, 'GetWindowTextLengthW', \ - GetWindowText, W, <.hwnd, .lpString, .cch>, 'GetWindowTextW', \ - GetWindowThreadProcessId, N, <.hwnd, .lpdwProcessId>, 'GetWindowThreadProcessId', \ - GetWindowWord, N, <.hwnd, .nIndex>, 'GetWindowWord', \ - GrayString, A, <.hDC, .hBrush, .lpOutputFunc, .lpData, .nCount, .X, .Y, .nWidth, .nHeight>, 'GrayStringA', \ - GrayString, W, <.hDC, .hBrush, .lpOutputFunc, .lpData, .nCount, .X, .Y, .nWidth, .nHeight>, 'GrayStringW', \ - HideCaret, N, <.hwnd>, 'HideCaret', \ - HiliteMenuItem, N, <.hwnd, .hMenu, .wIDHiliteItem, .wHilite>, 'HiliteMenuItem', \ - IMPGetIME, A, <.hwnd, .LPIMEPROA>, 'IMPGetIMEA', \ - IMPGetIME, W, <.hwnd, .LPIMEPROA>, 'IMPGetIMEW', \ - IMPQueryIME, A, <.LPIMEPROA>, 'IMPQueryIMEA', \ - IMPQueryIME, W, <.LPIMEPROA>, 'IMPQueryIMEW', \ - IMPSetIME, A, <.hwnd, .LPIMEPROA>, 'IMPSetIMEA', \ - IMPSetIME, W, <.hwnd, .LPIMEPROA>, 'IMPSetIMEW', \ - ImpersonateDdeClientWindow, N, <.hWndClient, .hWndServer>, 'ImpersonateDdeClientWindow', \ - InSendMessage, N, <VOID>, 'InSendMessage', \ - InSendMessageEx, N, <.lpReserved>, 'InSendMessageEx', \ - InflateRect, N, <.lpRect, .x, .y>, 'InflateRect', \ - InitializeLpkHooks, N, <NONE>, 'InitializeLpkHooks', \ - InitializeWin32EntryTable, N, <NONE>, 'InitializeWin32EntryTable', \ - InsertMenu, A, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpNewItem>, 'InsertMenuA', \ - InsertMenuItem, A, <.hMenu, .uItem, .bool, .ByRef>, 'InsertMenuItemA', \ - InsertMenuItem, W, <.hMenu, .uItem, .bool, .ByRef>, 'InsertMenuItemW', \ - InsertMenu, W, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpNewItem>, 'InsertMenuW', \ - InternalGetWindowText, N, <NONE>, 'InternalGetWindowText', \ - IntersectRect, N, <.lpDestRect, .lpSrc1Rect, .lpSrc2Rect>, 'IntersectRect', \ - InvalidateRect, N, <.hwnd, .lpRect, .fBoolean>, 'InvalidateRect', \ - InvalidateRgn, N, <.hwnd, .hRgn, .bErase>, 'InvalidateRgn', \ - InvertRect, N, <.hdc, .lpRect>, 'InvertRect', \ - IsCharAlpha, A, <.cChar>, 'IsCharAlphaA', \ - IsCharAlphaNumeric, A, <.cChar>, 'IsCharAlphaNumericA', \ - IsCharAlphaNumeric, W, <.cChar>, 'IsCharAlphaNumericW', \ - IsCharAlpha, W, <.cChar>, 'IsCharAlphaW', \ - IsCharLower, A, <.cChar>, 'IsCharLowerA', \ - IsCharLower, W, <.cChar>, 'IsCharLowerW', \ - IsCharUpper, A, <.cChar>, 'IsCharUpperA', \ - IsCharUpper, W, <.cChar>, 'IsCharUpperW', \ - IsChild, N, <.hWndParent, .hwnd>, 'IsChild', \ - IsClipboardFormatAvailable, N, <.wFormat>, 'IsClipboardFormatAvailable', \ - IsDialogMessage, A, <.hDlg, .lpMsg>, 'IsDialogMessageA', \ - IsDialogMessage, W, <.hDlg, .lpMsg>, 'IsDialogMessageW', \ - IsDlgButtonChecked, N, <.hDlg, .nIDButton>, 'IsDlgButtonChecked', \ - IsGUIThread, N, <NONE>, 'IsGUIThread', \ - IsHungAppWindow, N, <NONE>, 'IsHungAppWindow', \ - IsIconic, N, <.hwnd>, 'IsIconic', \ - IsMenu, N, <.hMenu>, 'IsMenu', \ - IsRectEmpty, N, <.lpRect>, 'IsRectEmpty', \ - IsServerSideWindow, N, <NONE>, 'IsServerSideWindow', \ - IsWinEventHookInstalled, N, <NONE>, 'IsWinEventHookInstalled', \ - IsWindow, N, <.hwnd>, 'IsWindow', \ - IsWindowEnabled, N, <.hwnd>, 'IsWindowEnabled', \ - IsWindowInDestroy, N, <NONE>, 'IsWindowInDestroy', \ - IsWindowUnicode, N, <.hwnd>, 'IsWindowUnicode', \ - IsWindowVisible, N, <.hwnd>, 'IsWindowVisible', \ - IsZoomed, N, <.hwnd>, 'IsZoomed', \ - KillSystemTimer, N, <NONE>, 'KillSystemTimer', \ - KillTimer, N, <.hwnd, .nIDEvent>, 'KillTimer', \ - LoadAccelerators, A, <.hInstance, .lpTableName>, 'LoadAcceleratorsA', \ - LoadAccelerators, W, <.hInstance, .lpTableName>, 'LoadAcceleratorsW', \ - LoadBitmap, A, <.hInstance, .lpBitmapName>, 'LoadBitmapA', \ - LoadBitmap, W, <.hInstance, .lpBitmapName>, 'LoadBitmapW', \ - LoadCursor, A, <.hInstance, .lpCursorName>, 'LoadCursorA', \ - LoadCursorFromFile, A, <.lpFileName>, 'LoadCursorFromFileA', \ - LoadCursorFromFile, W, <.lpFileName>, 'LoadCursorFromFileW', \ - LoadCursor, W, <.hInstance, .lpCursorName>, 'LoadCursorW', \ - LoadIcon, A, <.hInstance, .lpIconName>, 'LoadIconA', \ - LoadIcon, W, <.hInstance, .lpIconName>, 'LoadIconW', \ - LoadImage, A, <.hInst, .lpsz, .uType, .n1, .n2, .uFlags>, 'LoadImageA', \ - LoadImage, W, <.hInst, .lpsz, .uType, .n1, .n2, .uFlags>, 'LoadImageW', \ - LoadKeyboardLayout, A, <.pwszKLID, .flags>, 'LoadKeyboardLayoutA', \ - LoadKeyboardLayoutEx, N, <NONE>, 'LoadKeyboardLayoutEx', \ - LoadKeyboardLayout, W, <.pwszKLID, .flags>, 'LoadKeyboardLayoutW', \ - LoadLocalFonts, N, <NONE>, 'LoadLocalFonts', \ - LoadMenu, A, <.hInstance, .lpString>, 'LoadMenuA', \ - LoadMenuIndirect, A, <.lpMenuTemplate>, 'LoadMenuIndirectA', \ - LoadMenuIndirect, W, <.lpMenuTemplate>, 'LoadMenuIndirectW', \ - LoadMenu, W, <.hInstance, .lpString>, 'LoadMenuW', \ - LoadRemoteFonts, N, <NONE>, 'LoadRemoteFonts', \ - LoadString, A, <.hInstance, .wID, .lpBuffer, .nBufferMax>, 'LoadStringA', \ - LoadString, W, <.hInstance, .wID, .lpBuffer, .nBufferMax>, 'LoadStringW', \ - LockSetForegroundWindow, N, <.uLockCode>, 'LockSetForegroundWindow', \ - LockWindowStation, N, <NONE>, 'LockWindowStation', \ - LockWindowUpdate, N, <.hwndLock>, 'LockWindowUpdate', \ - LockWorkStation, N, <VOID>, 'LockWorkStation', \ - LookupIconIdFromDirectory, N, <.presbits, .fIcon>, 'LookupIconIdFromDirectory', \ - LookupIconIdFromDirectoryEx, N, <.presbits, .fIcon, .cxDesired, .cyDesired, .Flags>, 'LookupIconIdFromDirectoryEx', \ - MBToWCSEx, N, <NONE>, 'MBToWCSEx', \ - MB_GetString, N, <NONE>, 'MB_GetString', \ - MapDialogRect, N, <.hDlg, .lpRect>, 'MapDialogRect', \ - MapVirtualKey, A, <.wCode, .wMapType>, 'MapVirtualKeyA', \ - MapVirtualKeyEx, A, <.uCode, .uMapType, .dwhkl>, 'MapVirtualKeyExA', \ - MapVirtualKeyEx, W, <.uCode, .uMapType, .dwhkl>, 'MapVirtualKeyExW', \ - MapVirtualKey, W, <.wCode, .wMapType>, 'MapVirtualKeyW', \ - MapWindowPoints, N, <.hwndFrom, .hwndTo, .lppt, .cPoints>, 'MapWindowPoints', \ - MenuItemFromPoint, N, <.hWnd, .hMenu, .ptScreen>, 'MenuItemFromPoint', \ - MenuWindowProc, A, <NONE>, 'MenuWindowProcA', \ - MenuWindowProc, W, <NONE>, 'MenuWindowProcW', \ - MessageBeep, N, <.wType>, 'MessageBeep', \ - MessageBox, A, <.hwnd, .lpText, .lpCaption, .wType>, 'MessageBoxA', \ - MessageBoxEx, A, <.hwnd, .lpText, .lpCaption, .wType, .wLanguageId>, 'MessageBoxExA', \ - MessageBoxEx, W, <.hwnd, .lpText, .lpCaption, .wType, .wLanguageId>, 'MessageBoxExW', \ - MessageBoxIndirect, A, <.lpMsgBoxParams>, 'MessageBoxIndirectA', \ - MessageBoxIndirect, W, <.lpMsgBoxParams>, 'MessageBoxIndirectW', \ - MessageBoxTimeout, A, <NONE>, 'MessageBoxTimeoutA', \ - MessageBoxTimeout, W, <NONE>, 'MessageBoxTimeoutW', \ - MessageBox, W, <.hwnd, .lpText, .lpCaption, .wType>, 'MessageBoxW', \ - ModifyMenu, A, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpString>, 'ModifyMenuA', \ - ModifyMenu, W, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpString>, 'ModifyMenuW', \ - MonitorFromPoint, N, <.pt, .dwFlags>, 'MonitorFromPoint', \ - MonitorFromRect, N, <.lprc, .dwFlags>, 'MonitorFromRect', \ - MonitorFromWindow, N, <.hwnd, .dwFlags>, 'MonitorFromWindow', \ - MoveWindow, N, <.hwnd, .x, .y, .nWidth, .nHeight, .fBoolean>, 'MoveWindow', \ - MsgWaitForMultipleObjects, N, <.nCount, .pHandles, .fWaitAll, .dwMilliseconds, .dwWakeMask>, 'MsgWaitForMultipleObjects', \ - MsgWaitForMultipleObjectsEx, N, <.nCount, .pHandles, .dwMilliseconds, .dwWakeMask, .dwFlags>, 'MsgWaitForMultipleObjectsEx', \ - NotifyWinEvent, N, <.lEvent, .hwnd, .idObject, .idChild>, 'NotifyWinEvent', \ - OemKeyScan, N, <.wOemChar>, 'OemKeyScan', \ - OemToChar, A, <.lpszSrc, .lpszDst>, 'OemToCharA', \ - OemToCharBuff, A, <.lpszSrc, .lpszDst, .cchDstLength>, 'OemToCharBuffA', \ - OemToCharBuff, W, <.lpszSrc, .lpszDst, .cchDstLength>, 'OemToCharBuffW', \ - OemToChar, W, <.lpszSrc, .lpszDst>, 'OemToCharW', \ - OffsetRect, N, <.lpRect, .x, .y>, 'OffsetRect', \ - OpenClipboard, N, <.hwnd>, 'OpenClipboard', \ - OpenDesktop, A, <.lpszDesktop, .dwFlags, .fInherit, .dwDesiredAccess>, 'OpenDesktopA', \ - OpenDesktop, W, <.lpszDesktop, .dwFlags, .fInherit, .dwDesiredAccess>, 'OpenDesktopW', \ - OpenIcon, N, <.hwnd>, 'OpenIcon', \ - OpenInputDesktop, N, <.dwFlags, .fInherit, .dwDesiredAccess>, 'OpenInputDesktop', \ - OpenWindowStation, A, <.lpszWinSta, .fInherit, .dwDesiredAccess>, 'OpenWindowStationA', \ - OpenWindowStation, W, <.lpszWinSta, .fInherit, .dwDesiredAccess>, 'OpenWindowStationW', \ - PackDDElParam, N, <.msg, .uiLo, .uiHi>, 'PackDDElParam', \ - PaintDesktop, N, <.hdc>, 'PaintDesktop', \ - PaintMenuBar, N, <NONE>, 'PaintMenuBar', \ - PeekMessage, A, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax, .wRemoveMsg>, 'PeekMessageA', \ - PeekMessage, W, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax, .wRemoveMsg>, 'PeekMessageW', \ - PostMessage, A, <.hwnd, .wMsg, .wParam, .lParam>, 'PostMessageA', \ - PostMessage, W, <.hwnd, .wMsg, .wParam, .lParam>, 'PostMessageW', \ - PostQuitMessage, N, <.nExitCode>, 'PostQuitMessage', \ - PostThreadMessage, A, <.idThread, .msg, .wParam, .lParam>, 'PostThreadMessageA', \ - PostThreadMessage, W, <.idThread, .msg, .wParam, .lParam>, 'PostThreadMessageW', \ - PrintWindow, N, <.hWnd, .hdcBlt, .nFlags>, 'PrintWindow', \ - PrivateExtractIconEx, A, <NONE>, 'PrivateExtractIconExA', \ - PrivateExtractIconEx, W, <NONE>, 'PrivateExtractIconExW', \ - PrivateExtractIcons, A, <NONE>, 'PrivateExtractIconsA', \ - PrivateExtractIcons, W, <NONE>, 'PrivateExtractIconsW', \ - PrivateSetDbgTag, N, <NONE>, 'PrivateSetDbgTag', \ - PrivateSetRipFlags, N, <NONE>, 'PrivateSetRipFlags', \ - PtInRect, N, <.lpRect, .x, .y>, 'PtInRect', \ - QuerySendMessage, N, <NONE>, 'QuerySendMessage', \ - QueryUserCounters, N, <NONE>, 'QueryUserCounters', \ - RealChildWindowFromPoint, N, <.hwndParent, .ptParentClientCoords>, 'RealChildWindowFromPoint', \ - RealGetWindowClass, A, <.hwnd, .pszType, .cchType>, 'RealGetWindowClassA', \ - RealGetWindowClass, W, <.hwnd, .pszType, .cchType>, 'RealGetWindowClassW', \ - ReasonCodeNeedsBugID, N, <NONE>, 'ReasonCodeNeedsBugID', \ - ReasonCodeNeedsComment, N, <NONE>, 'ReasonCodeNeedsComment', \ - RecordShutdownReason, N, <NONE>, 'RecordShutdownReason', \ - RedrawWindow, N, <.hwnd, .lprcUpdate, .hrgnUpdate, .fuRedraw>, 'RedrawWindow', \ - RegisterClass, A, <.Class>, 'RegisterClassA', \ - RegisterClassEx, A, <.pcWndClassEx>, 'RegisterClassExA', \ - RegisterClassEx, W, <.pcWndClassEx>, 'RegisterClassExW', \ - RegisterClass, W, <.Class>, 'RegisterClassW', \ - RegisterClipboardFormat, A, <.lpString>, 'RegisterClipboardFormatA', \ - RegisterClipboardFormat, W, <.lpString>, 'RegisterClipboardFormatW', \ - RegisterDeviceNotification, A, <.hRecipient, .NotificationFilter, .Flags>, 'RegisterDeviceNotificationA', \ - RegisterDeviceNotification, W, <.hRecipient, .NotificationFilter, .Flags>, 'RegisterDeviceNotificationW', \ - RegisterHotKey, N, <.hwnd, .id, .fsModifiers, .vk>, 'RegisterHotKey', \ - RegisterLogonProcess, N, <NONE>, 'RegisterLogonProcess', \ - RegisterMessagePumpHook, N, <NONE>, 'RegisterMessagePumpHook', \ - RegisterRawInputDevices, N, <NONE>, 'RegisterRawInputDevices', \ - RegisterServicesProcess, N, <NONE>, 'RegisterServicesProcess', \ - RegisterShellHookWindow, N, <NONE>, 'RegisterShellHookWindow', \ - RegisterSystemThread, N, <NONE>, 'RegisterSystemThread', \ - RegisterTasklist, N, <NONE>, 'RegisterTasklist', \ - RegisterUserApiHook, N, <NONE>, 'RegisterUserApiHook', \ - RegisterWindowMessage, A, <.lpString>, 'RegisterWindowMessageA', \ - RegisterWindowMessage, W, <.lpString>, 'RegisterWindowMessageW', \ - ReleaseCapture, N, <VOID>, 'ReleaseCapture', \ - ReleaseDC, N, <.hwnd, .hdc>, 'ReleaseDC', \ - RemoveMenu, N, <.hMenu, .nPosition, .wFlags>, 'RemoveMenu', \ - RemoveProp, A, <.hwnd, .lpString>, 'RemovePropA', \ - RemoveProp, W, <.hwnd, .lpString>, 'RemovePropW', \ - ReplyMessage, N, <.lReply>, 'ReplyMessage', \ - ResolveDesktopForWO, W, <NONE>, 'ResolveDesktopForWOW', \ - ReuseDDElParam, N, <.lParam, .msgIn, .msgOut, .uiLo, .uiHi>, 'ReuseDDElParam', \ - ScreenToClient, N, <.hwnd, .lpPoint>, 'ScreenToClient', \ - ScrollChildren, N, <NONE>, 'ScrollChildren', \ - ScrollDC, N, <.hdc, .dx, .dy, .lprcScroll, .lprcClip, .hrgnUpdate, .lprcUpdate>, 'ScrollDC', \ - ScrollWindow, N, <.hWnd, .XAmount, .YAmount, .lpRect, .lpClipRect>, 'ScrollWindow', \ - ScrollWindowEx, N, <.hwnd, .dx, .dy, .lprcScroll, .lprcClip, .hrgnUpdate, .lprcUpdate, .fuScroll>, 'ScrollWindowEx', \ - SendDlgItemMessage, A, <.hDlg, .nIDDlgItem, .wMsg, .wParam, .lParam>, 'SendDlgItemMessageA', \ - SendDlgItemMessage, W, <.hDlg, .nIDDlgItem, .wMsg, .wParam, .lParam>, 'SendDlgItemMessageW', \ - SendIMEMessageEx, A, <.hwnd, .lparam>, 'SendIMEMessageExA', \ - SendIMEMessageEx, W, <.hwnd, .lparam>, 'SendIMEMessageExW', \ - SendInput, N, <.cInputs, .pInputs, .cbSize>, 'SendInput', \ - SendMessage, A, <.hwnd, .wMsg, .wParam, .lParam>, 'SendMessageA', \ - SendMessageCallback, A, <.hwnd, .wMsg, .wParam, .lParam, .lpResultCallBack, .dwData>, 'SendMessageCallbackA', \ - SendMessageCallback, W, <.hwnd, .wMsg, .wParam, .lParam, .lpResultCallBack, .dwData>, 'SendMessageCallbackW', \ - SendMessageTimeout, A, <.hwnd, .msg, .wParam, .lParam, .fuFlags, .uTimeout, .lpdwResult>, 'SendMessageTimeoutA', \ - SendMessageTimeout, W, <.hwnd, .msg, .wParam, .lParam, .fuFlags, .uTimeout, .lpdwResult>, 'SendMessageTimeoutW', \ - SendMessage, W, <.hwnd, .wMsg, .wParam, .lParam>, 'SendMessageW', \ - SendNotifyMessage, A, <.hwnd, .msg, .wParam, .lParam>, 'SendNotifyMessageA', \ - SendNotifyMessage, W, <.hwnd, .msg, .wParam, .lParam>, 'SendNotifyMessageW', \ - SetActiveWindow, N, <.hwnd>, 'SetActiveWindow', \ - SetCapture, N, <.hwnd>, 'SetCapture', \ - SetCaretBlinkTime, N, <.wMSeconds>, 'SetCaretBlinkTime', \ - SetCaretPos, N, <.x, .y>, 'SetCaretPos', \ - SetClassLong, A, <.hwnd, .nIndex, .dwNewLong>, 'SetClassLongA', \ - SetClassLong, W, <.hwnd, .nIndex, .dwNewLong>, 'SetClassLongW', \ - SetClassWord, N, <.hwnd, .nIndex, .wNewWord>, 'SetClassWord', \ - SetClipboardData, N, <.uFormat, .hMem>, 'SetClipboardData', \ - SetClipboardViewer, N, <.hwnd>, 'SetClipboardViewer', \ - SetConsoleReserveKeys, N, <NONE>, 'SetConsoleReserveKeys', \ - SetCursor, N, <.hCursor>, 'SetCursor', \ - SetCursorContents, N, <NONE>, 'SetCursorContents', \ - SetCursorPos, N, <.x, .y>, 'SetCursorPos', \ - SetDebugErrorLevel, N, <.dwLevel>, 'SetDebugErrorLevel', \ - SetDeskWallpaper, N, <NONE>, 'SetDeskWallpaper', \ - SetDlgItemInt, N, <.hDlg, .nIDDlgItem, .wValue, .bSigned>, 'SetDlgItemInt', \ - SetDlgItemText, A, <.hDlg, .nIDDlgItem, .lpString>, 'SetDlgItemTextA', \ - SetDlgItemText, W, <.hDlg, .nIDDlgItem, .lpString>, 'SetDlgItemTextW', \ - SetDoubleClickTime, N, <.wCount>, 'SetDoubleClickTime', \ - SetFocus, N, <.hwnd>, 'SetFocus', \ - SetForegroundWindow, N, <.hwnd>, 'SetForegroundWindow', \ - SetInternalWindowPos, N, <NONE>, 'SetInternalWindowPos', \ - SetKeyboardState, N, <.lppbKeyState>, 'SetKeyboardState', \ - SetLastErrorEx, N, <.dwErrCode, .dwType>, 'SetLastErrorEx', \ - SetLayeredWindowAttributes, N, <.hwnd, .crKey, .bAlpha, .dwFlags>, 'SetLayeredWindowAttributes', \ - SetLogonNotifyWindow, N, <NONE>, 'SetLogonNotifyWindow', \ - SetMenu, N, <.hwnd, .hMenu>, 'SetMenu', \ - SetMenuContextHelpId, N, <.hMenu, .dw>, 'SetMenuContextHelpId', \ - SetMenuDefaultItem, N, <.hMenu, .uItem, .fByPos>, 'SetMenuDefaultItem', \ - SetMenuInfo, N, <.hmenu, .LPCMENUINFO>, 'SetMenuInfo', \ - SetMenuItemBitmaps, N, <.hMenu, .nPosition, .wFlags, .hBitmapUnchecked, .hBitmapChecked>, 'SetMenuItemBitmaps', \ - SetMenuItemInfo, A, <.hMenu, .un, .fBoolean, .lpcMenuItemInfo>, 'SetMenuItemInfoA', \ - SetMenuItemInfo, W, <.hMenu, .un, .fBoolean, .lpcMenuItemInfo>, 'SetMenuItemInfoW', \ - SetMessageExtraInfo, N, <.lParam>, 'SetMessageExtraInfo', \ - SetMessageQueue, N, <.cMessagesMax>, 'SetMessageQueue', \ - SetParent, N, <.hWndChild, .hWndNewParent>, 'SetParent', \ - SetProcessDefaultLayout, N, <.dwDefaultLayout>, 'SetProcessDefaultLayout', \ - SetProcessWindowStation, N, <.hWinSta>, 'SetProcessWindowStation', \ - SetProgmanWindow, N, <NONE>, 'SetProgmanWindow', \ - SetProp, A, <.hwnd, .lpString, .hData>, 'SetPropA', \ - SetProp, W, <.hwnd, .lpString, .hData>, 'SetPropW', \ - SetRect, N, <.lpRect, .X1, .Y1, .X2, .Y2>, 'SetRect', \ - SetRectEmpty, N, <.lpRect>, 'SetRectEmpty', \ - SetScrollInfo, N, <.hWnd, .n, .lpcScrollInfo, .bool>, 'SetScrollInfo', \ - SetScrollPos, N, <.hwnd, .nBar, .nPos, .fBoolean>, 'SetScrollPos', \ - SetScrollRange, N, <.hwnd, .nBar, .nMinPos, .nMaxPos, .bRedraw>, 'SetScrollRange', \ - SetShellWindow, N, <NONE>, 'SetShellWindow', \ - SetShellWindowEx, N, <NONE>, 'SetShellWindowEx', \ - SetSysColors, N, <.nChanges, .lpSysColor, .lpColorValues>, 'SetSysColors', \ - SetSysColorsTemp, N, <NONE>, 'SetSysColorsTemp', \ - SetSystemCursor, N, <.hcur, .id>, 'SetSystemCursor', \ - SetSystemMenu, N, <NONE>, 'SetSystemMenu', \ - SetSystemTimer, N, <NONE>, 'SetSystemTimer', \ - SetTaskmanWindow, N, <NONE>, 'SetTaskmanWindow', \ - SetThreadDesktop, N, <.hDesktop>, 'SetThreadDesktop', \ - SetTimer, N, <.hWnd, .nIDEvent, .uElapse, .lpTimerFunc>, 'SetTimer', \ - SetUserObjectInformation, A, <.hObj, .nIndex, .pvInfo, .nLength>, 'SetUserObjectInformationA', \ - SetUserObjectInformation, W, <.hObj, .nIndex, .pvInfo, .nLength>, 'SetUserObjectInformationW', \ - SetUserObjectSecurity, N, <.hObj, .pSIRequested, .pSd>, 'SetUserObjectSecurity', \ - SetWinEventHook, N, <.eventMin, .eventMax, .hmodWinEventProc, .pfnWinEventProc, .idProcess, .idThread, .dwFlags>, 'SetWinEventHook', \ - SetWindowContextHelpId, N, <.hWnd, .dw>, 'SetWindowContextHelpId', \ - SetWindowLong, A, <.hwnd, .nIndex, .dwNewLong>, 'SetWindowLongA', \ - SetWindowLong, W, <.hwnd, .nIndex, .dwNewLong>, 'SetWindowLongW', \ - SetWindowPlacement, N, <.hwnd, .lpwndpl>, 'SetWindowPlacement', \ - SetWindowPos, N, <.hwnd, .hWndInsertAfter, .x, .y, .cx, .cy, .wFlags>, 'SetWindowPos', \ - SetWindowRgn, N, <.hWnd, .hRgn, .bRedraw>, 'SetWindowRgn', \ - SetWindowStationUser, N, <NONE>, 'SetWindowStationUser', \ - SetWindowText, A, <.hwnd, .lpString>, 'SetWindowTextA', \ - SetWindowText, W, <.hwnd, .lpString>, 'SetWindowTextW', \ - SetWindowWord, N, <.hwnd, .nIndex, .wNewWord>, 'SetWindowWord', \ - SetWindowsHook, A, <.nFilterType, .pfnFilterProc>, 'SetWindowsHookA', \ - SetWindowsHookEx, A, <.idHook, .lpfn, .hmod, .dwThreadId>, 'SetWindowsHookExA', \ - SetWindowsHookEx, W, <.idHook, .lpfn, .hmod, .dwThreadId>, 'SetWindowsHookExW', \ - SetWindowsHook, W, <.nFilterType, .pfnFilterProc>, 'SetWindowsHookW', \ - ShowCaret, N, <.hwnd>, 'ShowCaret', \ - ShowCursor, N, <.bShow>, 'ShowCursor', \ - ShowOwnedPopups, N, <.hwnd, .fBoolean>, 'ShowOwnedPopups', \ - ShowScrollBar, N, <.hwnd, .wBar, .bShow>, 'ShowScrollBar', \ - ShowStartGlass, N, <NONE>, 'ShowStartGlass', \ - ShowWindow, N, <.hwnd, .nCmdShow>, 'ShowWindow', \ - ShowWindowAsync, N, <.hWnd, .nCmdShow>, 'ShowWindowAsync', \ - SoftModalMessageBox, N, <NONE>, 'SoftModalMessageBox', \ - SubtractRect, N, <.lprcDst, .lprcSrc1, .lprcSrc2>, 'SubtractRect', \ - SwapMouseButton, N, <.bSwap>, 'SwapMouseButton', \ - SwitchDesktop, N, <.hDesktop>, 'SwitchDesktop', \ - SwitchToThisWindow, N, <NONE>, 'SwitchToThisWindow', \ - SystemParametersInfo, A, <.uAction, .uParam, .ByRef, .fuWinIni>, 'SystemParametersInfoA', \ - SystemParametersInfo, W, <.uAction, .uParam, .ByRef, .fuWinIni>, 'SystemParametersInfoW', \ - TabbedTextOut, A, <.hdc, .x, .y, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions, .nTabOrigin>, 'TabbedTextOutA', \ - TabbedTextOut, W, <.hdc, .x, .y, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions, .nTabOrigin>, 'TabbedTextOutW', \ - TileChildWindows, N, <NONE>, 'TileChildWindows', \ - TileWindows, N, <.hwndParent, .wHow, .lpRect, .cKids, .lpKids>, 'TileWindows', \ - ToAscii, N, <.uVirtKey, .uScanCode, .lpbKeyState, .lpwTransKey, .fuState>, 'ToAscii', \ - ToAsciiEx, N, <.uVirtKey, .uScanCode, .lpKeyState, .lpChar, .uFlags, .dwhkl>, 'ToAsciiEx', \ - ToUnicode, N, <.wVirtKey, .wScanCode, .lpKeyState, .pwszBuff, .cchBuff, .wFlags>, 'ToUnicode', \ - ToUnicodeEx, N, <.wVirtKey, .wScanCode, .lpKeyState, .pwszBuff, .cchBuff, .wFlags, .dwhkl>, 'ToUnicodeEx', \ - TrackMouseEvent, N, <.lpEventTrack>, 'TrackMouseEvent', \ - TrackPopupMenu, N, <.hMenu, .uFlags, .x, .y, .nReserved, .hwnd, .lprc>, 'TrackPopupMenu', \ - TrackPopupMenuEx, N, <.hMenu, .un, .n1, .n2, .hWnd, .lpTPMParams>, 'TrackPopupMenuEx', \ - TranslateAccelerator, A, <.hwnd, .hAccTable, .lpMsg>, 'TranslateAcceleratorA', \ - TranslateAccelerator, W, <.hwnd, .hAccTable, .lpMsg>, 'TranslateAcceleratorW', \ - TranslateMDISysAccel, N, <.hWndClient, .lpMsg>, 'TranslateMDISysAccel', \ - TranslateMessage, N, <.lpMsg>, 'TranslateMessage', \ - TranslateMessageEx, N, <NONE>, 'TranslateMessageEx', \ - UnhookWinEvent, N, <.hWinEventHook>, 'UnhookWinEvent', \ - UnhookWindowsHook, N, <.nCode, .pfnFilterProc>, 'UnhookWindowsHook', \ - UnhookWindowsHookEx, N, <.hHook>, 'UnhookWindowsHookEx', \ - UnionRect, N, <.lpDestRect, .lpSrc1Rect, .lpSrc2Rect>, 'UnionRect', \ - UnloadKeyboardLayout, N, <.HKL>, 'UnloadKeyboardLayout', \ - UnlockWindowStation, N, <NONE>, 'UnlockWindowStation', \ - UnpackDDElParam, N, <.msg, .lParam, .puiLo, .puiHi>, 'UnpackDDElParam', \ - UnregisterClass, A, <.lpClassName, .hInstance>, 'UnregisterClassA', \ - UnregisterClass, W, <.lpClassName, .hInstance>, 'UnregisterClassW', \ - UnregisterDeviceNotification, N, <.Handle>, 'UnregisterDeviceNotification', \ - UnregisterHotKey, N, <.hwnd, .id>, 'UnregisterHotKey', \ - UnregisterMessagePumpHook, N, <NONE>, 'UnregisterMessagePumpHook', \ - UnregisterUserApiHook, N, <NONE>, 'UnregisterUserApiHook', \ - UpdateLayeredWindow, N, <.hWnd, .hdcDst, .pptDst, .psize, .hdcSrc, .pptSrc, .crKey, .pblend, .dwFlags>, 'UpdateLayeredWindow', \ - UpdatePerUserSystemParameters, N, <NONE>, 'UpdatePerUserSystemParameters', \ - UpdateWindow, N, <.hwnd>, 'UpdateWindow', \ - User32InitializeImmEntryTable, N, <NONE>, 'User32InitializeImmEntryTable', \ - UserClientDllInitialize, N, <NONE>, 'UserClientDllInitialize', \ - UserHandleGrantAccess, N, <.hUserHandle, .hJob, .bGrant>, 'UserHandleGrantAccess', \ - UserLpkPSMTextOut, N, <NONE>, 'UserLpkPSMTextOut', \ - UserLpkTabbedTextOut, N, <NONE>, 'UserLpkTabbedTextOut', \ - UserRealizePalette, N, <NONE>, 'UserRealizePalette', \ - UserRegisterWowHandlers, N, <NONE>, 'UserRegisterWowHandlers', \ - VRipOutput, N, <NONE>, 'VRipOutput', \ - VTagOutput, N, <NONE>, 'VTagOutput', \ - ValidateRect, N, <.hwnd, .lpRect>, 'ValidateRect', \ - ValidateRgn, N, <.hwnd, .hRgn>, 'ValidateRgn', \ - VkKeyScan, A, <.cChar>, 'VkKeyScanA', \ - VkKeyScanEx, A, <.ch, .dwhkl>, 'VkKeyScanExA', \ - VkKeyScanEx, W, <.ch, .dwhkl>, 'VkKeyScanExW', \ - VkKeyScan, W, <.cChar>, 'VkKeyScanW', \ - WCSToMBEx, N, <NONE>, 'WCSToMBEx', \ - WINNLSEnableIME, N, <.hwnd, .bool>, 'WINNLSEnableIME', \ - WINNLSGetEnableStatus, N, <.hwnd>, 'WINNLSGetEnableStatus', \ - WINNLSGetIMEHotkey, N, <.hwnd>, 'WINNLSGetIMEHotkey', \ - WaitForInputIdle, N, <.hProcess, .dwMilliseconds>, 'WaitForInputIdle', \ - WaitMessage, N, <VOID>, 'WaitMessage', \ - Win32PoolAllocationStats, N, <NONE>, 'Win32PoolAllocationStats', \ - WinHelp, A, <.hwnd, .lpHelpFile, .wCommand, .dwData>, 'WinHelpA', \ - WinHelp, W, <.hwnd, .lpHelpFile, .wCommand, .dwData>, 'WinHelpW', \ - WindowFromDC, N, <.hdc>, 'WindowFromDC', \ - WindowFromPoint, N, <.xPoint, .yPoint>, 'WindowFromPoint', \ - keybd_event, N, <.bVk, .bScan, .dwFlags, .dwExtraInfo>, 'keybd_event', \ - mouse_event, N, <.dwFlags, .dx, .dy, .cButtons, .dwExtraInfo>, 'mouse_event', \ - wsprintf, A, <.lpOut, .lpFmt, .etc>, 'wsprintfA', \ - wsprintf, W, <.lpOut, .lpFmt, .etc>, 'wsprintfW', \ - wvsprintf, A, <NONE>, 'wvsprintfA', \ - wvsprintf, W, <NONE>, 'wvsprintfW' DELETED freshlib/imports/Win32/api/wsock32.inc Index: freshlib/imports/Win32/api/wsock32.inc ================================================================== --- freshlib/imports/Win32/api/wsock32.inc +++ /dev/null @@ -1,77 +0,0 @@ -; wsock32.dll API calls (ASCII) -import_proto wsock32, \ - AcceptEx, N, <.sListenSocket, .sAcceptSocket, .lpOutputBuffer, .dwReceiveDataLength, .dwLocalAddressLength, .dwRemoteAddressLength, .lpdwBytesReceived, .lpOverlapped>, 'AcceptEx', \ - EnumProtocols, A, <.lpiProtocols, .lpProtocolBuffer, .lpdwBufferLength>, 'EnumProtocolsA', \ - EnumProtocols, W, <.lpiProtocols, .lpProtocolBuffer, .lpdwBufferLength>, 'EnumProtocolsW', \ - GetAcceptExSockaddrs, N, <.lpOutputBuffer, .dwReceiveDataLength, .dwLocalAddressLength, .dwRemoteAddressLength, .LocalSockaddr, .LocalSockaddrLength, .RemoteSockaddr, .RemoteSockaddrLength>, 'GetAcceptExSockaddrs', \ - GetAddressByName, A, <.dwNameSpace, .lpServiceType, .lpServiceName, .lpiProtocols, .dwResolution, .lpServiceAs, .lpCsaddrBuffer, .lpdwBufferLength, .lpAliasBuffer, .lpdwAliasBufferLength>, 'GetAddressByNameA', \ - GetAddressByName, W, <.dwNameSpace, .lpServiceType, .lpServiceName, .lpiProtocols, .dwResolution, .lpServiceAs, .lpCsaddrBuffer, .lpdwBufferLength, .lpAliasBuffer, .lpdwAliasBufferLength>, 'GetAddressByNameW', \ - GetNameByType, A, <.lpServiceType, .lpServiceName, .dwNameLength>, 'GetNameByTypeA', \ - GetNameByType, W, <.lpServiceType, .lpServiceName, .dwNameLength>, 'GetNameByTypeW', \ - GetService, A, <.dwNameSpace, .lpGuid, .lpServiceName, .dwProperties, .lpBuffer, .lpdwBufferSize, .lpServiceAs>, 'GetServiceA', \ - GetService, W, <.dwNameSpace, .lpGuid, .lpServiceName, .dwProperties, .lpBuffer, .lpdwBufferSize, .lpServiceAs>, 'GetServiceW', \ - GetTypeByName, A, <.lpServiceName, .lpServiceType>, 'GetTypeByNameA', \ - GetTypeByName, W, <.lpServiceName, .lpServiceType>, 'GetTypeByNameW', \ - MigrateWinsockConfiguration, N, <NONE>, 'MigrateWinsockConfiguration', \ - NPLoadNameSpaces, N, <NONE>, 'NPLoadNameSpaces', \ - SetService, A, <.dwNameSpace, .dwOperation, .dwFlags, .lpServiceInfo, .lpServiceAsyncInfo, .lpdwStatusFlags>, 'SetServiceA', \ - SetService, W, <.dwNameSpace, .dwOperation, .dwFlags, .lpServiceInfo, .lpServiceAsyncInfo, .lpdwStatusFlags>, 'SetServiceW', \ - TransmitFile, N, <.hSocket, .hFile, .nNumberOfBytesToWrite, .nNumberOfBytesPerSend, .lpOverlapped, .lpTransmitBuffers, .dwReserved>, 'TransmitFile', \ - WEP, N, <NONE>, 'WEP', \ - WSAAsyncGetHostByAddr, N, <.hWnd, .wMsg, .addr, .lLen, .lType, .buf, .buflen>, 'WSAAsyncGetHostByAddr', \ - WSAAsyncGetHostByName, N, <.hWnd, .wMsg, .name, .buf, .buflen>, 'WSAAsyncGetHostByName', \ - WSAAsyncGetProtoByName, N, <.hWnd, .wMsg, .name, .buf, .buflen>, 'WSAAsyncGetProtoByName', \ - WSAAsyncGetProtoByNumber, N, <.hWnd, .wMsg, .number, .buf, .buflen>, 'WSAAsyncGetProtoByNumber', \ - WSAAsyncGetServByName, N, <.hWnd, .wMsg, .name, .proto, .buf, .buflen>, 'WSAAsyncGetServByName', \ - WSAAsyncGetServByPort, N, <.hWnd, .wMsg, .port, .proto, .buf, .buflen>, 'WSAAsyncGetServByPort', \ - WSAAsyncSelect, N, <.s, .hWnd, .wMsg, .lEvent>, 'WSAAsyncSelect', \ - WSACancelAsyncRequest, N, <.hAsyncTaskHandle>, 'WSACancelAsyncRequest', \ - WSACancelBlockingCall, N, <VOID>, 'WSACancelBlockingCall', \ - WSACleanup, N, <VOID>, 'WSACleanup', \ - WSAGetLastError, N, <VOID>, 'WSAGetLastError', \ - WSAIsBlocking, N, <VOID>, 'WSAIsBlocking', \ - WSARecvEx, N, <.s, .buf, .lLen, .flags>, 'WSARecvEx', \ - WSASetBlockingHook, N, <.lpBlockFunc>, 'WSASetBlockingHook', \ - WSASetLastError, N, <.iError>, 'WSASetLastError', \ - WSAStartup, N, <.wVersionRequired, .lpWSAData>, 'WSAStartup', \ - WSAUnhookBlockingHook, N, <VOID>, 'WSAUnhookBlockingHook', \ - WSApSetPostRoutine, N, <NONE>, 'WSApSetPostRoutine', \ - __WSAFDIsSet, N, <NONE>, '__WSAFDIsSet', \ - accept, N, <.s, .addr, .addrlen>, 'accept', \ - bind, N, <.s, .addr, .namelen>, 'bind', \ - closesocket, N, <.s>, 'closesocket', \ - connect, N, <.s, .name, .namelen>, 'connect', \ - dn_expand, N, <NONE>, 'dn_expand', \ - gethostbyaddr, N, <.addr, .len, .type>, 'gethostbyaddr', \ - gethostbyname, N, <.name>, 'gethostbyname', \ - gethostname, N, <.name, .namelen>, 'gethostname', \ - getnetbyname, N, <NONE>, 'getnetbyname', \ - getpeername, N, <.s, .name, .namelen>, 'getpeername', \ - getprotobyname, N, <.name>, 'getprotobyname', \ - getprotobynumber, N, <.number>, 'getprotobynumber', \ - getservbyname, N, <.name, .proto>, 'getservbyname', \ - getservbyport, N, <.port, .proto>, 'getservbyport', \ - getsockname, N, <.s, .name, .namelen>, 'getsockname', \ - getsockopt, N, <.s, .level, .optname, .optval, .optlen>, 'getsockopt', \ - htonl, N, <.hostlong>, 'htonl', \ - htons, N, <.hostshort>, 'htons', \ - inet_addr, N, <.cp>, 'inet_addr', \ - inet_network, N, <NONE>, 'inet_network', \ - inet_ntoa, N, <.lIn>, 'inet_ntoa', \ - ioctlsocket, N, <.s, .cmd, .argp>, 'ioctlsocket', \ - listen, N, <.s, .backlog>, 'listen', \ - ntohl, N, <.netlong>, 'ntohl', \ - ntohs, N, <.netshort>, 'ntohs', \ - rcmd, N, <NONE>, 'rcmd', \ - recv, N, <.s, .buf, .lLen, .flags>, 'recv', \ - recvfrom, N, <.s, .buf, .lLen, .flags, .from, .fromlen>, 'recvfrom', \ - rexec, N, <NONE>, 'rexec', \ - rresvport, N, <NONE>, 'rresvport', \ - s_perror, N, <NONE>, 's_perror', \ - select, N, <NONE>, 'select', \ - send, N, <.s, .buf, .lLen, .flags>, 'send', \ - sendto, N, <.s, .buf, .lLen, .flags, .to, .tolen>, 'sendto', \ - sethostname, N, <NONE>, 'sethostname', \ - setsockopt, N, <.s, .level, .optname, .optval, .optlen>, 'setsockopt', \ - shutdown, N, <.s, .how>, 'shutdown', \ - socket, N, <.af, .lType, .protocol>, 'socket' ADDED freshlib/imports/Win32/comctl32.inc Index: freshlib/imports/Win32/comctl32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/comctl32.inc @@ -0,0 +1,121 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: comctl32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +import_proto comctl32, \ + AddMRUStringW, <NONE>, 'AddMRUStringW', \ + CreateMRUListW, <NONE>, 'CreateMRUListW', \ + CreateMappedBitmap, <.hInstance, .idBitmap, .wFlags, .lpColorMap, .ByValumMaps>, 'CreateMappedBitmap', \ + CreatePropertySheetPage, <.lpcpropsheetpagea>, 'CreatePropertySheetPage', \ + CreatePropertySheetPageA, <.lpcpropsheetpagea>, 'CreatePropertySheetPageA', \ + CreatePropertySheetPageW, <.lpcpropsheetpagea>, 'CreatePropertySheetPageW', \ + CreateStatusWindow, <.dwStyle, .lpszText, .hWndParent, .wID>, 'CreateStatusWindow', \ + CreateStatusWindowA, <.dwStyle, .lpszText, .hWndParent, .wID>, 'CreateStatusWindowA', \ + CreateStatusWindowW, <.dwStyle, .lpszText, .hWndParent, .wID>, 'CreateStatusWindowW', \ + CreateToolbar, <NONE>, 'CreateToolbar', \ + CreateToolbarEx, <.hWndParent, .dwStyle, .wID, .nBitmaps, .hBMInst, .wBMID, .lpButtons, .iNumButtons, .dxButton, .dyButton, .dxBitmap, \ + .dyBitmap, .uStructSize>, 'CreateToolbarEx', \ + CreateUpDownControl, <.dwStyle, .x, .y, .cx, .cy, .hParent, .nID, .hInst, .hBuddy, .nUpper, .nLower, .nPos>, 'CreateUpDownControl', \ + DPA_Create, <NONE>, 'DPA_Create', \ + DPA_DeleteAllPtrs, <NONE>, 'DPA_DeleteAllPtrs', \ + DPA_DeletePtr, <NONE>, 'DPA_DeletePtr', \ + DPA_Destroy, <NONE>, 'DPA_Destroy', \ + DPA_DestroyCallback, <NONE>, 'DPA_DestroyCallback', \ + DPA_EnumCallback, <NONE>, 'DPA_EnumCallback', \ + DPA_GetPtr, <NONE>, 'DPA_GetPtr', \ + DPA_InsertPtr, <NONE>, 'DPA_InsertPtr', \ + DPA_Search, <NONE>, 'DPA_Search', \ + DPA_SetPtr, <NONE>, 'DPA_SetPtr', \ + DPA_Sort, <NONE>, 'DPA_Sort', \ + DSA_Create, <NONE>, 'DSA_Create', \ + DSA_DeleteAllItems, <NONE>, 'DSA_DeleteAllItems', \ + DSA_Destroy, <NONE>, 'DSA_Destroy', \ + DSA_DestroyCallback, <NONE>, 'DSA_DestroyCallback', \ + DSA_GetItemPtr, <NONE>, 'DSA_GetItemPtr', \ + DSA_InsertItem, <NONE>, 'DSA_InsertItem', \ + DefSubclassProc, <NONE>, 'DefSubclassProc', \ + DestroyPropertySheetPage, <.hpropsheetpage>, 'DestroyPropertySheetPage', \ + DrawInsert, <.handParent, .hLB, .nItem>, 'DrawInsert', \ + DrawStatusText, <.hDC, .lprc, .pszText, .uFlags>, 'DrawStatusText', \ + DrawStatusTextA, <.hDC, .lprc, .pszText, .uFlags>, 'DrawStatusTextA', \ + DrawStatusTextW, <.hDC, .lprc, .pszText, .uFlags>, 'DrawStatusTextW', \ + EnumMRUListW, <NONE>, 'EnumMRUListW', \ + FlatSB_EnableScrollBar, <.hwnd, .ByValt, .uint>, 'FlatSB_EnableScrollBar', \ + FlatSB_GetScrollInfo, <.hwnd, .code, .lpscrollinfo>, 'FlatSB_GetScrollInfo', \ + FlatSB_GetScrollPos, <.hwnd, .code>, 'FlatSB_GetScrollPos', \ + FlatSB_GetScrollProp, <.hwnd, .propIndex, .lpint>, 'FlatSB_GetScrollProp', \ + FlatSB_GetScrollRange, <.hwnd, .code, .lpint>, 'FlatSB_GetScrollRange', \ + FlatSB_SetScrollInfo, <.hwnd, .code, .lpscrollinfo, .fRedraw>, 'FlatSB_SetScrollInfo', \ + FlatSB_SetScrollPos, <.hwnd, .code, .pos, .fRedraw>, 'FlatSB_SetScrollPos', \ + FlatSB_SetScrollProp, <.hwnd, .index, .newValue, .bool>, 'FlatSB_SetScrollProp', \ + FlatSB_SetScrollRange, <.hwnd, .code, .min, .max, .fRedraw>, 'FlatSB_SetScrollRange', \ + FlatSB_ShowScrollBar, <.hwnd, .code, .bool>, 'FlatSB_ShowScrollBar', \ + FreeMRUList, <NONE>, 'FreeMRUList', \ + GetEffectiveClientRect, <.hWnd, .lprc, .lpInfo>, 'GetEffectiveClientRect', \ + GetMUILanguage, <VOID>, 'GetMUILanguage', \ + ImageList_Add, <.himl, .hbmImage, .hbmMask>, 'ImageList_Add', \ + ImageList_AddIcon, <NONE>, 'ImageList_AddIcon', \ + ImageList_AddMasked, <.himl, .hbmImage, .crMask>, 'ImageList_AddMasked', \ + ImageList_BeginDrag, <.himlTrack, .iTrack, .dxHotspot, .dyHotspot>, 'ImageList_BeginDrag', \ + ImageList_Copy, <.himlDst, .iDst, .himlSrc, .iSrc, .uFlags>, 'ImageList_Copy', \ + ImageList_Create, <.cx, .cy, .flags, .cInitial, .cGrow>, 'ImageList_Create', \ + ImageList_Destroy, <.himl>, 'ImageList_Destroy', \ + ImageList_DragEnter, <.hwndLock, .x, .y>, 'ImageList_DragEnter', \ + ImageList_DragLeave, <.hWndOwner>, 'ImageList_DragLeave', \ + ImageList_DragMove, <.x, .y>, 'ImageList_DragMove', \ + ImageList_DragShowNolock, <.fBoolean>, 'ImageList_DragShowNolock', \ + ImageList_Draw, <.himl, .i, .hdcDst, .x, .y, .fStyle>, 'ImageList_Draw', \ + ImageList_DrawEx, <.himl, .i, .hdcDst, .x, .y, .dx, .dy, .rgbBk, .rgbFg, .fStyle>, 'ImageList_DrawEx', \ + ImageList_DrawIndirect, <.pimldp>, 'ImageList_DrawIndirect', \ + ImageList_Duplicate, <.himl>, 'ImageList_Duplicate', \ + ImageList_EndDrag, <VOID>, 'ImageList_EndDrag', \ + ImageList_GetBkColor, <.himl>, 'ImageList_GetBkColor', \ + ImageList_GetDragImage, <.ppt, .pptHotspot>, 'ImageList_GetDragImage', \ + ImageList_GetFlags, <NONE>, 'ImageList_GetFlags', \ + ImageList_GetIcon, <.himl, .i, .flags>, 'ImageList_GetIcon', \ + ImageList_GetIconSize, <.himl, .cx, .cy>, 'ImageList_GetIconSize', \ + ImageList_GetImageCount, <.himl>, 'ImageList_GetImageCount', \ + ImageList_GetImageInfo, <.himl, .i, .pImageInfo>, 'ImageList_GetImageInfo', \ + ImageList_GetImageRect, <NONE>, 'ImageList_GetImageRect', \ + ImageList_LoadImage, <.hInst, .lpszbmp, .cx, .cGrow, .crMask, .uType, .uFlags>, 'ImageList_LoadImage', \ + ImageList_LoadImageA, <.hInst, .lpszbmp, .cx, .cGrow, .crMask, .uType, .uFlags>, 'ImageList_LoadImageA', \ + ImageList_LoadImageW, <.hInst, .lpszbmp, .cx, .cGrow, .crMask, .uType, .uFlags>, 'ImageList_LoadImageW', \ + ImageList_Merge, <.himl1, .i1, .himl2, .i2, .dx, .dy>, 'ImageList_Merge', \ + ImageList_Read, <.pstm>, 'ImageList_Read', \ + ImageList_Remove, <.himl, .i>, 'ImageList_Remove', \ + ImageList_Replace, <.himl, .i, .hbmImage, .hbmMask>, 'ImageList_Replace', \ + ImageList_ReplaceIcon, <.himl, .i, .hicon>, 'ImageList_ReplaceIcon', \ + ImageList_SetBkColor, <.himl, .clrBk>, 'ImageList_SetBkColor', \ + ImageList_SetDragCursorImage, <.himlDrag, .iDrag, .dxHotspot, .dyHotspot>, 'ImageList_SetDragCursorImage', \ + ImageList_SetFilter, <NONE>, 'ImageList_SetFilter', \ + ImageList_SetFlags, <NONE>, 'ImageList_SetFlags', \ + ImageList_SetIconSize, <.himl, .cx, .cy>, 'ImageList_SetIconSize', \ + ImageList_SetImageCount, <.himl, .uNewCount>, 'ImageList_SetImageCount', \ + ImageList_SetOverlayImage, <.himl, .iImage, .iOverlay>, 'ImageList_SetOverlayImage', \ + ImageList_Write, <.himl, .pstm>, 'ImageList_Write', \ + InitCommonControls, <VOID>, 'InitCommonControls', \ + InitCommonControlsEx, <.pIcce>, 'InitCommonControlsEx', \ + InitMUILanguage, <.uiLang>, 'InitMUILanguage', \ + InitializeFlatSB, <.hwnd>, 'InitializeFlatSB', \ + LBItemFromPt, <.hLB, .pt, .bAutoScroll>, 'LBItemFromPt', \ + MakeDragList, <.hLB>, 'MakeDragList', \ + MenuHelp, <.uMsg, .wParam, .lParam, .hMainMenu, .hInst, .hwndStatus, .lpwIDs>, 'MenuHelp', \ + PropertySheet, <.lpcpropsheetheadera>, 'PropertySheet', \ + PropertySheetA, <.lpcpropsheetheadera>, 'PropertySheetA', \ + PropertySheetW, <.lpcpropsheetheadera>, 'PropertySheetW', \ + RemoveWindowSubclass, <NONE>, 'RemoveWindowSubclass', \ + SetWindowSubclass, <NONE>, 'SetWindowSubclass', \ + ShowHideMenuCtl, <.hWnd, .uFlags, .lpInfo>, 'ShowHideMenuCtl', \ + Str_SetPtrW, <NONE>, 'Str_SetPtrW', \ + UninitializeFlatSB, <.hwnd>, 'UninitializeFlatSB', \ + _TrackMouseEvent, <NONE>, '_TrackMouseEvent' ADDED freshlib/imports/Win32/comdlg32.inc Index: freshlib/imports/Win32/comdlg32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/comdlg32.inc @@ -0,0 +1,41 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: comdlg32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +import_proto comdlg32, \ + ChooseColorA, <.pChoosecolor>, 'ChooseColorA', \ + ChooseColorW, <.pChoosecolor>, 'ChooseColorW', \ + ChooseFontA, <.pChoosefont>, 'ChooseFontA', \ + ChooseFontW, <.pChoosefont>, 'ChooseFontW', \ + CommDlgExtendedError, <VOID>, 'CommDlgExtendedError', \ + FindTextA, <.pFindreplace>, 'FindTextA', \ + FindTextW, <.pFindreplace>, 'FindTextW', \ + GetFileTitleA, <.lpszFile, .lpszTitle, .cbBuf>, 'GetFileTitleA', \ + GetFileTitleW, <.lpszFile, .lpszTitle, .cbBuf>, 'GetFileTitleW', \ + GetOpenFileNameA, <.pOpenfilename>, 'GetOpenFileNameA', \ + GetOpenFileNameW, <.pOpenfilename>, 'GetOpenFileNameW', \ + GetSaveFileNameA, <.pOpenfilename>, 'GetSaveFileNameA', \ + GetSaveFileNameW, <.pOpenfilename>, 'GetSaveFileNameW', \ + LoadAlterBitmap, <NONE>, 'LoadAlterBitmap', \ + PageSetupDlgA, <.pPagesetupdlg>, 'PageSetupDlgA', \ + PageSetupDlgW, <.pPagesetupdlg>, 'PageSetupDlgW', \ + PrintDlgA, <.pPrintdlg>, 'PrintDlgA', \ + PrintDlgExA, <.TLPPRINTDLGEXA>, 'PrintDlgExA', \ + PrintDlgExW, <.TLPPRINTDLGEXA>, 'PrintDlgExW', \ + PrintDlgW, <.pPrintdlg>, 'PrintDlgW', \ + ReplaceTextA, <.pFindreplace>, 'ReplaceTextA', \ + ReplaceTextW, <.pFindreplace>, 'ReplaceTextW', \ + Ssync_ANSI_UNICODE_Struct_For_WOW, <NONE>, 'Ssync_ANSI_UNICODE_Struct_For_WOW', \ + WantArrows, <NONE>, 'WantArrows', \ + dwLBSubclass, <NONE>, 'dwLBSubclass', \ + dwOKSubclass, <NONE>, 'dwOKSubclass' ADDED freshlib/imports/Win32/crtdll.inc Index: freshlib/imports/Win32/crtdll.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/crtdll.inc @@ -0,0 +1,539 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: crtdll.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto crtdll, \ + _CIacos, <NONE>, '_CIacos', \ + _CIasin, <NONE>, '_CIasin', \ + _CIatan, <NONE>, '_CIatan', \ + _CIatan2, <NONE>, '_CIatan2', \ + _CIcos, <NONE>, '_CIcos', \ + _CIcosh, <NONE>, '_CIcosh', \ + _CIexp, <NONE>, '_CIexp', \ + _CIfmod, <NONE>, '_CIfmod', \ + _CIlog, <NONE>, '_CIlog', \ + _CIlog10, <NONE>, '_CIlog10', \ + _CIpow, <NONE>, '_CIpow', \ + _CIsin, <NONE>, '_CIsin', \ + _CIsinh, <NONE>, '_CIsinh', \ + _CIsqrt, <NONE>, '_CIsqrt', \ + _CItan, <NONE>, '_CItan', \ + _CItanh, <NONE>, '_CItanh', \ + _HUGE_dll, <NONE>, '_HUGE_dll', \ + _XcptFilter, <NONE>, '_XcptFilter', \ + __GetMainArgs, <NONE>, '__GetMainArgs', \ + __argc_dll, <NONE>, '__argc_dll', \ + __argv_dll, <NONE>, '__argv_dll', \ + __dllonexit, <NONE>, '__dllonexit', \ + __doserrno, <NONE>, '__doserrno', \ + __fpecode, <NONE>, '__fpecode', \ + __isascii, <NONE>, '__isascii', \ + __iscsym, <NONE>, '__iscsym', \ + __iscsymf, <NONE>, '__iscsymf', \ + __mb_cur_max_dll, <NONE>, '__mb_cur_max_dll', \ + __pxcptinfoptrs, <NONE>, '__pxcptinfoptrs', \ + __threadhandle, <NONE>, '__threadhandle', \ + __threadid, <NONE>, '__threadid', \ + __toascii, <NONE>, '__toascii', \ + _abnormal_termination, <NONE>, '_abnormal_termination', \ + _access, <NONE>, '_access', \ + _acmdln_dll, <NONE>, '_acmdln_dll', \ + _aexit_rtn_dll, <NONE>, '_aexit_rtn_dll', \ + _amsg_exit, <NONE>, '_amsg_exit', \ + _assert, <NONE>, '_assert', \ + _basemajor_dll, <NONE>, '_basemajor_dll', \ + _baseminor_dll, <NONE>, '_baseminor_dll', \ + _baseversion_dll, <NONE>, '_baseversion_dll', \ + _beep, <NONE>, '_beep', \ + _beginthread, <NONE>, '_beginthread', \ + _c_exit, <NONE>, '_c_exit', \ + _cabs, <NONE>, '_cabs', \ + _cexit, <NONE>, '_cexit', \ + _cgets, <NONE>, '_cgets', \ + _chdir, <NONE>, '_chdir', \ + _chdrive, <NONE>, '_chdrive', \ + _chgsign, <NONE>, '_chgsign', \ + _chmod, <NONE>, '_chmod', \ + _chsize, <NONE>, '_chsize', \ + _clearfp, <NONE>, '_clearfp', \ + _commit, <NONE>, '_commit', \ + _commode_dll, <NONE>, '_commode_dll', \ + _control87, <NONE>, '_control87', \ + _controlfp, <NONE>, '_controlfp', \ + _copysign, <NONE>, '_copysign', \ + _cprintf, <NONE>, '_cprintf', \ + _cpumode_dll, <NONE>, '_cpumode_dll', \ + _cputs, <NONE>, '_cputs', \ + _cscanf, <NONE>, '_cscanf', \ + _ctype, <NONE>, '_ctype', \ + _cwait, <NONE>, '_cwait', \ + _daylight_dll, <NONE>, '_daylight_dll', \ + _dup, <NONE>, '_dup', \ + _dup2, <NONE>, '_dup2', \ + _ecvt, <NONE>, '_ecvt', \ + _endthread, <NONE>, '_endthread', \ + _environ_dll, <NONE>, '_environ_dll', \ + _eof, <NONE>, '_eof', \ + _errno, <NONE>, '_errno', \ + _except_handler2, <NONE>, '_except_handler2', \ + _execl, <NONE>, '_execl', \ + _execle, <NONE>, '_execle', \ + _execlp, <NONE>, '_execlp', \ + _execlpe, <NONE>, '_execlpe', \ + _execv, <NONE>, '_execv', \ + _execve, <NONE>, '_execve', \ + _execvp, <NONE>, '_execvp', \ + _execvpe, <NONE>, '_execvpe', \ + _exit, <NONE>, '_exit', \ + _expand, <NONE>, '_expand', \ + _fcloseall, <NONE>, '_fcloseall', \ + _fcvt, <NONE>, '_fcvt', \ + _fdopen, <NONE>, '_fdopen', \ + _fgetchar, <NONE>, '_fgetchar', \ + _fgetwchar, <NONE>, '_fgetwchar', \ + _filbuf, <NONE>, '_filbuf', \ + _fileinfo_dll, <NONE>, '_fileinfo_dll', \ + _filelength, <NONE>, '_filelength', \ + _fileno, <NONE>, '_fileno', \ + _findclose, <NONE>, '_findclose', \ + _findfirst, <NONE>, '_findfirst', \ + _findnext, <NONE>, '_findnext', \ + _finite, <NONE>, '_finite', \ + _flsbuf, <NONE>, '_flsbuf', \ + _flushall, <NONE>, '_flushall', \ + _fmode_dll, <NONE>, '_fmode_dll', \ + _fpclass, <NONE>, '_fpclass', \ + _fpieee_flt, <NONE>, '_fpieee_flt', \ + _fpreset, <NONE>, '_fpreset', \ + _fputchar, <NONE>, '_fputchar', \ + _fputwchar, <NONE>, '_fputwchar', \ + _fsopen, <NONE>, '_fsopen', \ + _fstat, <NONE>, '_fstat', \ + _ftime, <NONE>, '_ftime', \ + _ftol, <NONE>, '_ftol', \ + _fullpath, <NONE>, '_fullpath', \ + _futime, <NONE>, '_futime', \ + _gcvt, <NONE>, '_gcvt', \ + _get_osfhandle, <NONE>, '_get_osfhandle', \ + _getch, <NONE>, '_getch', \ + _getche, <NONE>, '_getche', \ + _getcwd, <NONE>, '_getcwd', \ + _getdcwd, <NONE>, '_getdcwd', \ + _getdiskfree, <NONE>, '_getdiskfree', \ + _getdllprocaddr, <NONE>, '_getdllprocaddr', \ + _getdrive, <NONE>, '_getdrive', \ + _getdrives, <NONE>, '_getdrives', \ + _getpid, <NONE>, '_getpid', \ + _getsystime, <NONE>, '_getsystime', \ + _getw, <NONE>, '_getw', \ + _global_unwind2, <NONE>, '_global_unwind2', \ + _heapchk, <NONE>, '_heapchk', \ + _heapmin, <NONE>, '_heapmin', \ + _heapset, <NONE>, '_heapset', \ + _heapwalk, <NONE>, '_heapwalk', \ + _hypot, <NONE>, '_hypot', \ + _initterm, <NONE>, '_initterm', \ + _iob, <NONE>, '_iob', \ + _isatty, <NONE>, '_isatty', \ + _isctype, <NONE>, '_isctype', \ + _ismbbalnum, <NONE>, '_ismbbalnum', \ + _ismbbalpha, <NONE>, '_ismbbalpha', \ + _ismbbgraph, <NONE>, '_ismbbgraph', \ + _ismbbkalnum, <NONE>, '_ismbbkalnum', \ + _ismbbkana, <NONE>, '_ismbbkana', \ + _ismbbkpunct, <NONE>, '_ismbbkpunct', \ + _ismbblead, <NONE>, '_ismbblead', \ + _ismbbprint, <NONE>, '_ismbbprint', \ + _ismbbpunct, <NONE>, '_ismbbpunct', \ + _ismbbtrail, <NONE>, '_ismbbtrail', \ + _ismbcalpha, <NONE>, '_ismbcalpha', \ + _ismbcdigit, <NONE>, '_ismbcdigit', \ + _ismbchira, <NONE>, '_ismbchira', \ + _ismbckata, <NONE>, '_ismbckata', \ + _ismbcl0, <NONE>, '_ismbcl0', \ + _ismbcl1, <NONE>, '_ismbcl1', \ + _ismbcl2, <NONE>, '_ismbcl2', \ + _ismbclegal, <NONE>, '_ismbclegal', \ + _ismbclower, <NONE>, '_ismbclower', \ + _ismbcprint, <NONE>, '_ismbcprint', \ + _ismbcspace, <NONE>, '_ismbcspace', \ + _ismbcsymbol, <NONE>, '_ismbcsymbol', \ + _ismbcupper, <NONE>, '_ismbcupper', \ + _ismbslead, <NONE>, '_ismbslead', \ + _ismbstrail, <NONE>, '_ismbstrail', \ + _isnan, <NONE>, '_isnan', \ + _itoa, <NONE>, '_itoa', \ + _itow, <NONE>, '_itow', \ + _j0, <NONE>, '_j0', \ + _j1, <NONE>, '_j1', \ + _jn, <NONE>, '_jn', \ + _kbhit, <NONE>, '_kbhit', \ + _lfind, <NONE>, '_lfind', \ + _loaddll, <NONE>, '_loaddll', \ + _local_unwind2, <NONE>, '_local_unwind2', \ + _locking, <NONE>, '_locking', \ + _logb, <NONE>, '_logb', \ + _lrotl, <NONE>, '_lrotl', \ + _lrotr, <NONE>, '_lrotr', \ + _lsearch, <NONE>, '_lsearch', \ + _ltoa, <NONE>, '_ltoa', \ + _ltow, <NONE>, '_ltow', \ + _makepath, <NONE>, '_makepath', \ + _matherr, <NONE>, '_matherr', \ + _mbbtombc, <NONE>, '_mbbtombc', \ + _mbbtype, <NONE>, '_mbbtype', \ + _mbccpy, <NONE>, '_mbccpy', \ + _mbcjistojms, <NONE>, '_mbcjistojms', \ + _mbcjmstojis, <NONE>, '_mbcjmstojis', \ + _mbclen, <NONE>, '_mbclen', \ + _mbctohira, <NONE>, '_mbctohira', \ + _mbctokata, <NONE>, '_mbctokata', \ + _mbctolower, <NONE>, '_mbctolower', \ + _mbctombb, <NONE>, '_mbctombb', \ + _mbctoupper, <NONE>, '_mbctoupper', \ + _mbctype, <NONE>, '_mbctype', \ + _mbsbtype, <NONE>, '_mbsbtype', \ + _mbscat, <NONE>, '_mbscat', \ + _mbschr, <NONE>, '_mbschr', \ + _mbscmp, <NONE>, '_mbscmp', \ + _mbscpy, <NONE>, '_mbscpy', \ + _mbscspn, <NONE>, '_mbscspn', \ + _mbsdec, <NONE>, '_mbsdec', \ + _mbsdup, <NONE>, '_mbsdup', \ + _mbsicmp, <NONE>, '_mbsicmp', \ + _mbsinc, <NONE>, '_mbsinc', \ + _mbslen, <NONE>, '_mbslen', \ + _mbslwr, <NONE>, '_mbslwr', \ + _mbsnbcat, <NONE>, '_mbsnbcat', \ + _mbsnbcmp, <NONE>, '_mbsnbcmp', \ + _mbsnbcnt, <NONE>, '_mbsnbcnt', \ + _mbsnbcpy, <NONE>, '_mbsnbcpy', \ + _mbsnbicmp, <NONE>, '_mbsnbicmp', \ + _mbsnbset, <NONE>, '_mbsnbset', \ + _mbsncat, <NONE>, '_mbsncat', \ + _mbsnccnt, <NONE>, '_mbsnccnt', \ + _mbsncmp, <NONE>, '_mbsncmp', \ + _mbsncpy, <NONE>, '_mbsncpy', \ + _mbsnextc, <NONE>, '_mbsnextc', \ + _mbsnicmp, <NONE>, '_mbsnicmp', \ + _mbsninc, <NONE>, '_mbsninc', \ + _mbsnset, <NONE>, '_mbsnset', \ + _mbspbrk, <NONE>, '_mbspbrk', \ + _mbsrchr, <NONE>, '_mbsrchr', \ + _mbsrev, <NONE>, '_mbsrev', \ + _mbsset, <NONE>, '_mbsset', \ + _mbsspn, <NONE>, '_mbsspn', \ + _mbsspnp, <NONE>, '_mbsspnp', \ + _mbsstr, <NONE>, '_mbsstr', \ + _mbstok, <NONE>, '_mbstok', \ + _mbstrlen, <NONE>, '_mbstrlen', \ + _mbsupr, <NONE>, '_mbsupr', \ + _memccpy, <NONE>, '_memccpy', \ + _memicmp, <NONE>, '_memicmp', \ + _mkdir, <NONE>, '_mkdir', \ + _mktemp, <NONE>, '_mktemp', \ + _msize, <NONE>, '_msize', \ + _nextafter, <NONE>, '_nextafter', \ + _onexit, <NONE>, '_onexit', \ + _open_osfhandle, <NONE>, '_open_osfhandle', \ + _osmajor_dll, <NONE>, '_osmajor_dll', \ + _osminor_dll, <NONE>, '_osminor_dll', \ + _osmode_dll, <NONE>, '_osmode_dll', \ + _osver_dll, <NONE>, '_osver_dll', \ + _osversion_dll, <NONE>, '_osversion_dll', \ + _pclose, <NONE>, '_pclose', \ + _pctype_dll, <NONE>, '_pctype_dll', \ + _pgmptr_dll, <NONE>, '_pgmptr_dll', \ + _pipe, <NONE>, '_pipe', \ + _popen, <NONE>, '_popen', \ + _purecall, <NONE>, '_purecall', \ + _putch, <NONE>, '_putch', \ + _putenv, <NONE>, '_putenv', \ + _putw, <NONE>, '_putw', \ + _pwctype_dll, <NONE>, '_pwctype_dll', \ + _rmdir, <NONE>, '_rmdir', \ + _rmtmp, <NONE>, '_rmtmp', \ + _rotl, <NONE>, '_rotl', \ + _rotr, <NONE>, '_rotr', \ + _scalb, <NONE>, '_scalb', \ + _searchenv, <NONE>, '_searchenv', \ + _seterrormode, <NONE>, '_seterrormode', \ + _setjmp, <NONE>, '_setjmp', \ + _setmode, <NONE>, '_setmode', \ + _setsystime, <NONE>, '_setsystime', \ + _sleep, <NONE>, '_sleep', \ + _snprintf, <NONE>, '_snprintf', \ + _snwprintf, <NONE>, '_snwprintf', \ + _sopen, <NONE>, '_sopen', \ + _spawnl, <NONE>, '_spawnl', \ + _spawnle, <NONE>, '_spawnle', \ + _spawnlp, <NONE>, '_spawnlp', \ + _spawnlpe, <NONE>, '_spawnlpe', \ + _spawnv, <NONE>, '_spawnv', \ + _spawnve, <NONE>, '_spawnve', \ + _spawnvp, <NONE>, '_spawnvp', \ + _spawnvpe, <NONE>, '_spawnvpe', \ + _splitpath, <NONE>, '_splitpath', \ + _stat, <NONE>, '_stat', \ + _statusfp, <NONE>, '_statusfp', \ + _strcmpi, <NONE>, '_strcmpi', \ + _strdate, <NONE>, '_strdate', \ + _strdec, <NONE>, '_strdec', \ + _strdup, <NONE>, '_strdup', \ + _strerror, <NONE>, '_strerror', \ + _stricmp, <NONE>, '_stricmp', \ + _stricoll, <NONE>, '_stricoll', \ + _strinc, <NONE>, '_strinc', \ + _strlwr, <NONE>, '_strlwr', \ + _strncnt, <NONE>, '_strncnt', \ + _strnextc, <NONE>, '_strnextc', \ + _strnicmp, <NONE>, '_strnicmp', \ + _strninc, <NONE>, '_strninc', \ + _strnset, <NONE>, '_strnset', \ + _strrev, <NONE>, '_strrev', \ + _strset, <NONE>, '_strset', \ + _strspnp, <NONE>, '_strspnp', \ + _strtime, <NONE>, '_strtime', \ + _strupr, <NONE>, '_strupr', \ + _swab, <NONE>, '_swab', \ + _sys_errlist, <NONE>, '_sys_errlist', \ + _sys_nerr_dll, <NONE>, '_sys_nerr_dll', \ + _tell, <NONE>, '_tell', \ + _tempnam, <NONE>, '_tempnam', \ + _timezone_dll, <NONE>, '_timezone_dll', \ + _tolower, <NONE>, '_tolower', \ + _toupper, <NONE>, '_toupper', \ + _tzname, <NONE>, '_tzname', \ + _tzset, <NONE>, '_tzset', \ + _ultoa, <NONE>, '_ultoa', \ + _ultow, <NONE>, '_ultow', \ + _umask, <NONE>, '_umask', \ + _ungetch, <NONE>, '_ungetch', \ + _unlink, <NONE>, '_unlink', \ + _unloaddll, <NONE>, '_unloaddll', \ + _utime, <NONE>, '_utime', \ + _vsnprintf, <NONE>, '_vsnprintf', \ + _vsnwprintf, <NONE>, '_vsnwprintf', \ + _wcsdup, <NONE>, '_wcsdup', \ + _wcsicmp, <NONE>, '_wcsicmp', \ + _wcsicoll, <NONE>, '_wcsicoll', \ + _wcslwr, <NONE>, '_wcslwr', \ + _wcsnicmp, <NONE>, '_wcsnicmp', \ + _wcsnset, <NONE>, '_wcsnset', \ + _wcsrev, <NONE>, '_wcsrev', \ + _wcsset, <NONE>, '_wcsset', \ + _wcsupr, <NONE>, '_wcsupr', \ + _winmajor_dll, <NONE>, '_winmajor_dll', \ + _winminor_dll, <NONE>, '_winminor_dll', \ + _winver_dll, <NONE>, '_winver_dll', \ + _wtoi, <NONE>, '_wtoi', \ + _wtol, <NONE>, '_wtol', \ + _y0, <NONE>, '_y0', \ + _y1, <NONE>, '_y1', \ + _yn, <NONE>, '_yn', \ + abort, <NONE>, 'abort', \ + abs, <NONE>, 'abs', \ + acos, <NONE>, 'acos', \ + asctime, <NONE>, 'asctime', \ + asin, <NONE>, 'asin', \ + atan, <NONE>, 'atan', \ + atan2, <NONE>, 'atan2', \ + atexit, <NONE>, 'atexit', \ + atof, <NONE>, 'atof', \ + atoi, <NONE>, 'atoi', \ + atol, <NONE>, 'atol', \ + bsearch, <NONE>, 'bsearch', \ + calloc, <NONE>, 'calloc', \ + ceil, <NONE>, 'ceil', \ + clearerr, <NONE>, 'clearerr', \ + clock, <NONE>, 'clock', \ + cos, <NONE>, 'cos', \ + cosh, <NONE>, 'cosh', \ + ctime, <NONE>, 'ctime', \ + difftime, <NONE>, 'difftime', \ + div, <NONE>, 'div', \ + exit, <NONE>, 'exit', \ + exp, <NONE>, 'exp', \ + fabs, <NONE>, 'fabs', \ + fclose, <NONE>, 'fclose', \ + feof, <NONE>, 'feof', \ + ferror, <NONE>, 'ferror', \ + fflush, <NONE>, 'fflush', \ + fgetc, <NONE>, 'fgetc', \ + fgetpos, <NONE>, 'fgetpos', \ + fgets, <NONE>, 'fgets', \ + fgetwc, <NONE>, 'fgetwc', \ + floor, <NONE>, 'floor', \ + fmod, <NONE>, 'fmod', \ + fopen, <NONE>, 'fopen', \ + fprintf, <NONE>, 'fprintf', \ + fputc, <NONE>, 'fputc', \ + fputs, <NONE>, 'fputs', \ + fputwc, <NONE>, 'fputwc', \ + fread, <NONE>, 'fread', \ + free, <.TM_aKey>, 'free', \ + freopen, <NONE>, 'freopen', \ + frexp, <NONE>, 'frexp', \ + fscanf, <NONE>, 'fscanf', \ + fseek, <NONE>, 'fseek', \ + fsetpos, <NONE>, 'fsetpos', \ + ftell, <NONE>, 'ftell', \ + fwprintf, <NONE>, 'fwprintf', \ + fwrite, <NONE>, 'fwrite', \ + fwscanf, <NONE>, 'fwscanf', \ + getc, <NONE>, 'getc', \ + getchar, <NONE>, 'getchar', \ + getenv, <NONE>, 'getenv', \ + gets, <NONE>, 'gets', \ + gmtime, <NONE>, 'gmtime', \ + hread, <.hFile, .lpBuffer, .lBytes>, 'hread', \ + hwrite, <.hFile, .lpBuffer, .lBytes>, 'hwrite', \ + is_wctype, <NONE>, 'is_wctype', \ + isalnum, <NONE>, 'isalnum', \ + isalpha, <NONE>, 'isalpha', \ + iscntrl, <NONE>, 'iscntrl', \ + isdigit, <NONE>, 'isdigit', \ + isgraph, <NONE>, 'isgraph', \ + isleadbyte, <NONE>, 'isleadbyte', \ + islower, <NONE>, 'islower', \ + isprint, <NONE>, 'isprint', \ + ispunct, <NONE>, 'ispunct', \ + isspace, <NONE>, 'isspace', \ + isupper, <NONE>, 'isupper', \ + iswalnum, <NONE>, 'iswalnum', \ + iswalpha, <NONE>, 'iswalpha', \ + iswascii, <NONE>, 'iswascii', \ + iswcntrl, <NONE>, 'iswcntrl', \ + iswctype, <NONE>, 'iswctype', \ + iswdigit, <NONE>, 'iswdigit', \ + iswgraph, <NONE>, 'iswgraph', \ + iswlower, <NONE>, 'iswlower', \ + iswprint, <NONE>, 'iswprint', \ + iswpunct, <NONE>, 'iswpunct', \ + iswspace, <NONE>, 'iswspace', \ + iswupper, <NONE>, 'iswupper', \ + iswxdigit, <NONE>, 'iswxdigit', \ + isxdigit, <NONE>, 'isxdigit', \ + labs, <NONE>, 'labs', \ + lclose, <.hFile>, 'lclose', \ + lcreat, <.lpPathName, .iAttribute>, 'lcreat', \ + ldexp, <NONE>, 'ldexp', \ + ldiv, <NONE>, 'ldiv', \ + llseek, <.hFile, .lOffset, .iOrigin>, 'llseek', \ + localeconv, <NONE>, 'localeconv', \ + localtime, <NONE>, 'localtime', \ + log, <NONE>, 'log', \ + log10, <NONE>, 'log10', \ + longjmp, <NONE>, 'longjmp', \ + lopen, <.lpPathName, .iReadWrite>, 'lopen', \ + malloc, <NONE>, 'malloc', \ + mblen, <NONE>, 'mblen', \ + mbstowcs, <NONE>, 'mbstowcs', \ + mbtowc, <NONE>, 'mbtowc', \ + memchr, <NONE>, 'memchr', \ + memcmp, <NONE>, 'memcmp', \ + memcpy, <NONE>, 'memcpy', \ + memmove, <.pVoid, .FunctionCall>, 'memmove', \ + memset, <NONE>, 'memset', \ + mktime, <NONE>, 'mktime', \ + modf, <NONE>, 'modf', \ + perror, <NONE>, 'perror', \ + pow, <NONE>, 'pow', \ + printf, <NONE>, 'printf', \ + putc, <NONE>, 'putc', \ + putchar, <NONE>, 'putchar', \ + puts, <NONE>, 'puts', \ + qsort, <NONE>, 'qsort', \ + raise, <NONE>, 'raise', \ + rand, <NONE>, 'rand', \ + realloc, <NONE>, 'realloc', \ + remove, <NONE>, 'remove', \ + rename, <NONE>, 'rename', \ + rewind, <NONE>, 'rewind', \ + scanf, <NONE>, 'scanf', \ + setbuf, <NONE>, 'setbuf', \ + setlocale, <NONE>, 'setlocale', \ + setvbuf, <NONE>, 'setvbuf', \ + signal, <NONE>, 'signal', \ + sin, <NONE>, 'sin', \ + sinh, <NONE>, 'sinh', \ + sprintf, <NONE>, 'sprintf', \ + sqrt, <NONE>, 'sqrt', \ + srand, <NONE>, 'srand', \ + sscanf, <NONE>, 'sscanf', \ + strcat, <NONE>, 'strcat', \ + strchr, <.lpStart, .wMatch>, 'strchr', \ + strcmp, <NONE>, 'strcmp', \ + strcoll, <NONE>, 'strcoll', \ + strcpy, <NONE>, 'strcpy', \ + strcspn, <.lpStr, .lpSet>, 'strcspn', \ + strerror, <NONE>, 'strerror', \ + strftime, <NONE>, 'strftime', \ + strlen, <NONE>, 'strlen', \ + strncat, <.psz1, .psz2, .cchMax>, 'strncat', \ + strncmp, <NONE>, 'strncmp', \ + strncpy, <NONE>, 'strncpy', \ + strpbrk, <.psz, .pszSet>, 'strpbrk', \ + strrchr, <.lpStart, .lpEnd, .wMatch>, 'strrchr', \ + strspn, <.psz, .pszSet>, 'strspn', \ + strstr, <.lpFirst, .lpSrch>, 'strstr', \ + strtod, <NONE>, 'strtod', \ + strtok, <NONE>, 'strtok', \ + strtol, <NONE>, 'strtol', \ + strtoul, <NONE>, 'strtoul', \ + strxfrm, <NONE>, 'strxfrm', \ + swprintf, <NONE>, 'swprintf', \ + swscanf, <NONE>, 'swscanf', \ + system, <NONE>, 'system', \ + tan, <NONE>, 'tan', \ + tanh, <NONE>, 'tanh', \ + time, <NONE>, 'time', \ + tmpfile, <NONE>, 'tmpfile', \ + tmpnam, <NONE>, 'tmpnam', \ + tolower, <NONE>, 'tolower', \ + toupper, <NONE>, 'toupper', \ + towlower, <NONE>, 'towlower', \ + towupper, <NONE>, 'towupper', \ + ungetc, <NONE>, 'ungetc', \ + ungetwc, <NONE>, 'ungetwc', \ + vfprintf, <NONE>, 'vfprintf', \ + vfwprintf, <NONE>, 'vfwprintf', \ + vprintf, <NONE>, 'vprintf', \ + vsprintf, <NONE>, 'vsprintf', \ + vswprintf, <NONE>, 'vswprintf', \ + vwprintf, <NONE>, 'vwprintf', \ + wcscat, <NONE>, 'wcscat', \ + wcschr, <NONE>, 'wcschr', \ + wcscmp, <NONE>, 'wcscmp', \ + wcscoll, <NONE>, 'wcscoll', \ + wcscpy, <NONE>, 'wcscpy', \ + wcscspn, <NONE>, 'wcscspn', \ + wcsftime, <NONE>, 'wcsftime', \ + wcslen, <NONE>, 'wcslen', \ + wcsncat, <NONE>, 'wcsncat', \ + wcsncmp, <NONE>, 'wcsncmp', \ + wcsncpy, <NONE>, 'wcsncpy', \ + wcspbrk, <NONE>, 'wcspbrk', \ + wcsrchr, <NONE>, 'wcsrchr', \ + wcsspn, <NONE>, 'wcsspn', \ + wcsstr, <NONE>, 'wcsstr', \ + wcstod, <NONE>, 'wcstod', \ + wcstok, <NONE>, 'wcstok', \ + wcstol, <NONE>, 'wcstol', \ + wcstombs, <NONE>, 'wcstombs', \ + wcstoul, <NONE>, 'wcstoul', \ + wcsxfrm, <NONE>, 'wcsxfrm', \ + wctomb, <NONE>, 'wctomb', \ + wprintf, <NONE>, 'wprintf', \ + wscanf, <NONE>, 'wscanf' ADDED freshlib/imports/Win32/gdi32.inc Index: freshlib/imports/Win32/gdi32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/gdi32.inc @@ -0,0 +1,625 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: gdi32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +import_proto gdi32, \ + AbortDoc, <.hdc>, 'AbortDoc', \ + AbortPath, <.hdc>, 'AbortPath', \ + AddFontMemResourceEx, <.pvoid, .dword, .pDword>, 'AddFontMemResourceEx', \ + AddFontResourceA, <.lpFileName>, 'AddFontResourceA', \ + AddFontResourceExA, <.lpcstr, .flags, .reserved>, 'AddFontResourceExA', \ + AddFontResourceExW, <.lpcstr, .flags, .reserved>, 'AddFontResourceExW', \ + AddFontResourceTracking, <NONE>, 'AddFontResourceTracking', \ + AddFontResourceW, <.lpFileName>, 'AddFontResourceW', \ + AngleArc, <.hdc, .x, .y, .dwRadius, .eStartAngle, .eSweepAngle>, 'AngleArc', \ + AnimatePalette, <.hPalette, .wStartIndex, .wNumEntries, .lpPaletteColors>, 'AnimatePalette', \ + AnyLinkedFonts, <NONE>, 'AnyLinkedFonts', \ + Arc, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'Arc', \ + ArcTo, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'ArcTo', \ + BRUSHOBJ_hGetColorTransform, <NONE>, 'BRUSHOBJ_hGetColorTransform', \ + BRUSHOBJ_pvAllocRbrush, <NONE>, 'BRUSHOBJ_pvAllocRbrush', \ + BRUSHOBJ_pvGetRbrush, <NONE>, 'BRUSHOBJ_pvGetRbrush', \ + BRUSHOBJ_ulGetBrushColor, <NONE>, 'BRUSHOBJ_ulGetBrushColor', \ + BeginPath, <.hdc>, 'BeginPath', \ + BitBlt, <.hDestDC, .x, .y, .nWidth, .nHeight, .hSrcDC, .xSrc, .ySrc, .dwRop>, 'BitBlt', \ + CLIPOBJ_bEnum, <NONE>, 'CLIPOBJ_bEnum', \ + CLIPOBJ_cEnumStart, <NONE>, 'CLIPOBJ_cEnumStart', \ + CLIPOBJ_ppoGetPath, <NONE>, 'CLIPOBJ_ppoGetPath', \ + CancelDC, <.hdc>, 'CancelDC', \ + CheckColorsInGamut, <.hdc, .lpv, .lpv2, .dw>, 'CheckColorsInGamut', \ + ChoosePixelFormat, <.hDC, .pPixelFormatDescriptor>, 'ChoosePixelFormat', \ + Chord, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'Chord', \ + ClearBitmapAttributes, <NONE>, 'ClearBitmapAttributes', \ + ClearBrushAttributes, <NONE>, 'ClearBrushAttributes', \ + CloseEnhMetaFile, <.hdc>, 'CloseEnhMetaFile', \ + CloseFigure, <.hdc>, 'CloseFigure', \ + CloseMetaFile, <.hMF>, 'CloseMetaFile', \ + ColorCorrectPalette, <.hdc, .hpalette, .dword>, 'ColorCorrectPalette', \ + ColorMatchToTarget, <.hdc, .hdc2, .dw>, 'ColorMatchToTarget', \ + CombineRgn, <.hDestRgn, .hSrcRgn1, .hSrcRgn2, .nCombineMode>, 'CombineRgn', \ + CombineTransform, <.lpxformResult, .lpxform1, .lpxform2>, 'CombineTransform', \ + CopyEnhMetaFileA, <.hemfSrc, .lpszFile>, 'CopyEnhMetaFileA', \ + CopyEnhMetaFileW, <.hemfSrc, .lpszFile>, 'CopyEnhMetaFileW', \ + CopyMetaFileA, <.hMF, .lpFileName>, 'CopyMetaFileA', \ + CopyMetaFileW, <.hMF, .lpFileName>, 'CopyMetaFileW', \ + CreateBitmap, <.nWidth, .nHeight, .nPlanes, .nBitCount, .lpBits>, 'CreateBitmap', \ + CreateBitmapIndirect, <.lpBitmap>, 'CreateBitmapIndirect', \ + CreateBrushIndirect, <.lpLogBrush>, 'CreateBrushIndirect', \ + CreateColorSpaceA, <.lplogcolorspace>, 'CreateColorSpaceA', \ + CreateColorSpaceW, <.lplogcolorspace>, 'CreateColorSpaceW', \ + CreateCompatibleBitmap, <.hdc, .nWidth, .nHeight>, 'CreateCompatibleBitmap', \ + CreateCompatibleDC, <.hdc>, 'CreateCompatibleDC', \ + CreateDCA, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateDCA', \ + CreateDCW, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateDCW', \ + CreateDIBPatternBrush, <.hPackedDIB, .wUsage>, 'CreateDIBPatternBrush', \ + CreateDIBPatternBrushPt, <.lpPackedDIB, .iUsage>, 'CreateDIBPatternBrushPt', \ + CreateDIBSection, <.hDC, .pBitmapInfo, .un, .lplpVoid, .handle, .dw>, 'CreateDIBSection', \ + CreateDIBitmap, <.hdc, .lpInfoHeader, .dwUsage, .lpInitBits, .lpInitInfo, .wUsage>, 'CreateDIBitmap', \ + CreateDiscardableBitmap, <.hdc, .nWidth, .nHeight>, 'CreateDiscardableBitmap', \ + CreateEllipticRgn, <.X1, .Y1, .X2, .Y2>, 'CreateEllipticRgn', \ + CreateEllipticRgnIndirect, <.lpRect>, 'CreateEllipticRgnIndirect', \ + CreateEnhMetaFileA, <.hdcRef, .lpFileName, .lpRect, .lpDescription>, 'CreateEnhMetaFileA', \ + CreateEnhMetaFileW, <.hdcRef, .lpFileName, .lpRect, .lpDescription>, 'CreateEnhMetaFileW', \ + CreateFontA, <.iHeight, .iWidth, .iEscapement, .iOriantation, .iWeight, .fItalic, .fUnderline, .fStrikeOut, .fCharSet, .fOutputPrecision, .fClipPrecision, .fQuality, .fPitchAndFamily, .pFace>, 'CreateFontA', \ + CreateFontIndirectA, <.lpLogFont>, 'CreateFontIndirectA', \ + CreateFontIndirectExA, <.ENUMLOGFONTEXDVA>, 'CreateFontIndirectExA', \ + CreateFontIndirectExW, <.ENUMLOGFONTEXDVA>, 'CreateFontIndirectExW', \ + CreateFontIndirectW, <.lpLogFont>, 'CreateFontIndirectW', \ + CreateFontW, <.iHeight, .iWidth, .iEscapement, .iOriantation, .iWeight, .fItalic, .fUnderline, .fStrikeOut, .fCharSet, .fOutputPrecision, .fClipPrecision, .fQuality, .fPitchAndFamily, .pFace>, 'CreateFontW', \ + CreateHalftonePalette, <.hdc>, 'CreateHalftonePalette', \ + CreateHatchBrush, <.nIndex, .crColor>, 'CreateHatchBrush', \ + CreateICA, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateICA', \ + CreateICW, <.lpDriverName, .lpDeviceName, .lpOutput, .lpInitData>, 'CreateICW', \ + CreateMetaFileA, <.lpString>, 'CreateMetaFileA', \ + CreateMetaFileW, <.lpString>, 'CreateMetaFileW', \ + CreatePalette, <.lpLogPalette>, 'CreatePalette', \ + CreatePatternBrush, <.hBitmap>, 'CreatePatternBrush', \ + CreatePen, <.nPenStyle, .nWidth, .crColor>, 'CreatePen', \ + CreatePenIndirect, <.lpLogPen>, 'CreatePenIndirect', \ + CreatePolyPolygonRgn, <.lpPoint, .lpPolyCounts, .nCount, .nPolyFillMode>, 'CreatePolyPolygonRgn', \ + CreatePolygonRgn, <.lpPoint, .nCount, .nPolyFillMode>, 'CreatePolygonRgn', \ + CreateRectRgn, <.X1, .Y1, .X2, .Y2>, 'CreateRectRgn', \ + CreateRectRgnIndirect, <.lpRect>, 'CreateRectRgnIndirect', \ + CreateRoundRectRgn, <.X1, .Y1, .X2, .Y2, .X3, .Y3>, 'CreateRoundRectRgn', \ + CreateScalableFontResourceA, <.fHidden, .lpszResourceFile, .lpszFontFile, .lpszCurrentPath>, 'CreateScalableFontResourceA', \ + CreateScalableFontResourceW, <.fHidden, .lpszResourceFile, .lpszFontFile, .lpszCurrentPath>, 'CreateScalableFontResourceW', \ + CreateSolidBrush, <.crColor>, 'CreateSolidBrush', \ + DPtoLP, <.hdc, .lpPoint, .nCount>, 'DPtoLP', \ + DdEntry0, <NONE>, 'DdEntry0', \ + DdEntry1, <NONE>, 'DdEntry1', \ + DdEntry10, <NONE>, 'DdEntry10', \ + DdEntry11, <NONE>, 'DdEntry11', \ + DdEntry12, <NONE>, 'DdEntry12', \ + DdEntry13, <NONE>, 'DdEntry13', \ + DdEntry14, <NONE>, 'DdEntry14', \ + DdEntry15, <NONE>, 'DdEntry15', \ + DdEntry16, <NONE>, 'DdEntry16', \ + DdEntry17, <NONE>, 'DdEntry17', \ + DdEntry18, <NONE>, 'DdEntry18', \ + DdEntry19, <NONE>, 'DdEntry19', \ + DdEntry2, <NONE>, 'DdEntry2', \ + DdEntry20, <NONE>, 'DdEntry20', \ + DdEntry21, <NONE>, 'DdEntry21', \ + DdEntry22, <NONE>, 'DdEntry22', \ + DdEntry23, <NONE>, 'DdEntry23', \ + DdEntry24, <NONE>, 'DdEntry24', \ + DdEntry25, <NONE>, 'DdEntry25', \ + DdEntry26, <NONE>, 'DdEntry26', \ + DdEntry27, <NONE>, 'DdEntry27', \ + DdEntry28, <NONE>, 'DdEntry28', \ + DdEntry29, <NONE>, 'DdEntry29', \ + DdEntry3, <NONE>, 'DdEntry3', \ + DdEntry30, <NONE>, 'DdEntry30', \ + DdEntry31, <NONE>, 'DdEntry31', \ + DdEntry32, <NONE>, 'DdEntry32', \ + DdEntry33, <NONE>, 'DdEntry33', \ + DdEntry34, <NONE>, 'DdEntry34', \ + DdEntry35, <NONE>, 'DdEntry35', \ + DdEntry36, <NONE>, 'DdEntry36', \ + DdEntry37, <NONE>, 'DdEntry37', \ + DdEntry38, <NONE>, 'DdEntry38', \ + DdEntry39, <NONE>, 'DdEntry39', \ + DdEntry4, <NONE>, 'DdEntry4', \ + DdEntry40, <NONE>, 'DdEntry40', \ + DdEntry41, <NONE>, 'DdEntry41', \ + DdEntry42, <NONE>, 'DdEntry42', \ + DdEntry43, <NONE>, 'DdEntry43', \ + DdEntry44, <NONE>, 'DdEntry44', \ + DdEntry45, <NONE>, 'DdEntry45', \ + DdEntry46, <NONE>, 'DdEntry46', \ + DdEntry47, <NONE>, 'DdEntry47', \ + DdEntry48, <NONE>, 'DdEntry48', \ + DdEntry49, <NONE>, 'DdEntry49', \ + DdEntry5, <NONE>, 'DdEntry5', \ + DdEntry50, <NONE>, 'DdEntry50', \ + DdEntry51, <NONE>, 'DdEntry51', \ + DdEntry52, <NONE>, 'DdEntry52', \ + DdEntry53, <NONE>, 'DdEntry53', \ + DdEntry54, <NONE>, 'DdEntry54', \ + DdEntry55, <NONE>, 'DdEntry55', \ + DdEntry56, <NONE>, 'DdEntry56', \ + DdEntry6, <NONE>, 'DdEntry6', \ + DdEntry7, <NONE>, 'DdEntry7', \ + DdEntry8, <NONE>, 'DdEntry8', \ + DdEntry9, <NONE>, 'DdEntry9', \ + DeleteColorSpace, <.hcolorspace>, 'DeleteColorSpace', \ + DeleteDC, <.hdc>, 'DeleteDC', \ + DeleteEnhMetaFile, <.hemf>, 'DeleteEnhMetaFile', \ + DeleteMetaFile, <.hMF>, 'DeleteMetaFile', \ + DeleteObject, <.hObject>, 'DeleteObject', \ + DescribePixelFormat, <.hDC, .n, .un, .lpPixelFormatDescriptor>, 'DescribePixelFormat', \ + DeviceCapabilitiesExA, <NONE>, 'DeviceCapabilitiesExA', \ + DeviceCapabilitiesExW, <NONE>, 'DeviceCapabilitiesExW', \ + DrawEscape, <.hdc, .nEscape, .cbInput, .lpszInData>, 'DrawEscape', \ + Ellipse, <.hdc, .X1, .Y1, .X2, .Y2>, 'Ellipse', \ + EnableEUDC, <NONE>, 'EnableEUDC', \ + EndDoc, <.hDC>, 'EndDoc', \ + EndFormPage, <.hdc>, 'EndFormPage', \ + EndPage, <.hdc>, 'EndPage', \ + EndPath, <.hdc>, 'EndPath', \ + EngAcquireSemaphore, <NONE>, 'EngAcquireSemaphore', \ + EngAlphaBlend, <NONE>, 'EngAlphaBlend', \ + EngAssociateSurface, <NONE>, 'EngAssociateSurface', \ + EngBitBlt, <NONE>, 'EngBitBlt', \ + EngCheckAbort, <NONE>, 'EngCheckAbort', \ + EngComputeGlyphSet, <NONE>, 'EngComputeGlyphSet', \ + EngCopyBits, <NONE>, 'EngCopyBits', \ + EngCreateBitmap, <NONE>, 'EngCreateBitmap', \ + EngCreateClip, <NONE>, 'EngCreateClip', \ + EngCreateDeviceBitmap, <NONE>, 'EngCreateDeviceBitmap', \ + EngCreateDeviceSurface, <NONE>, 'EngCreateDeviceSurface', \ + EngCreatePalette, <NONE>, 'EngCreatePalette', \ + EngCreateSemaphore, <NONE>, 'EngCreateSemaphore', \ + EngDeleteClip, <NONE>, 'EngDeleteClip', \ + EngDeletePalette, <NONE>, 'EngDeletePalette', \ + EngDeletePath, <NONE>, 'EngDeletePath', \ + EngDeleteSemaphore, <NONE>, 'EngDeleteSemaphore', \ + EngDeleteSurface, <NONE>, 'EngDeleteSurface', \ + EngEraseSurface, <NONE>, 'EngEraseSurface', \ + EngFillPath, <NONE>, 'EngFillPath', \ + EngFindResource, <NONE>, 'EngFindResource', \ + EngFreeModule, <NONE>, 'EngFreeModule', \ + EngGetCurrentCodePage, <NONE>, 'EngGetCurrentCodePage', \ + EngGetDriverName, <NONE>, 'EngGetDriverName', \ + EngGetPrinterDataFileName, <NONE>, 'EngGetPrinterDataFileName', \ + EngGradientFill, <NONE>, 'EngGradientFill', \ + EngLineTo, <NONE>, 'EngLineTo', \ + EngLoadModule, <NONE>, 'EngLoadModule', \ + EngLockSurface, <NONE>, 'EngLockSurface', \ + EngMarkBandingSurface, <NONE>, 'EngMarkBandingSurface', \ + EngMultiByteToUnicodeN, <NONE>, 'EngMultiByteToUnicodeN', \ + EngMultiByteToWideChar, <NONE>, 'EngMultiByteToWideChar', \ + EngPaint, <NONE>, 'EngPaint', \ + EngPlgBlt, <NONE>, 'EngPlgBlt', \ + EngQueryEMFInfo, <NONE>, 'EngQueryEMFInfo', \ + EngQueryLocalTime, <NONE>, 'EngQueryLocalTime', \ + EngReleaseSemaphore, <NONE>, 'EngReleaseSemaphore', \ + EngStretchBlt, <NONE>, 'EngStretchBlt', \ + EngStretchBltROP, <NONE>, 'EngStretchBltROP', \ + EngStrokeAndFillPath, <NONE>, 'EngStrokeAndFillPath', \ + EngStrokePath, <NONE>, 'EngStrokePath', \ + EngTextOut, <NONE>, 'EngTextOut', \ + EngTransparentBlt, <NONE>, 'EngTransparentBlt', \ + EngUnicodeToMultiByteN, <NONE>, 'EngUnicodeToMultiByteN', \ + EngUnlockSurface, <NONE>, 'EngUnlockSurface', \ + EngWideCharToMultiByte, <NONE>, 'EngWideCharToMultiByte', \ + EnumEnhMetaFile, <.hdc, .hemf, .lpEnhMetaFunc, .lpData, .lpRect>, 'EnumEnhMetaFile', \ + EnumFontFamiliesA, <.hdc, .lpszFamily, .lpEnumFontFamProc, .lParam>, 'EnumFontFamiliesA', \ + EnumFontFamiliesExA, <.hdc, .lpLogFont, .lpEnumFontProc, .lParam, .dw>, 'EnumFontFamiliesExA', \ + EnumFontFamiliesExW, <.hdc, .lpLogFont, .lpEnumFontProc, .lParam, .dw>, 'EnumFontFamiliesExW', \ + EnumFontFamiliesW, <.hdc, .lpszFamily, .lpEnumFontFamProc, .lParam>, 'EnumFontFamiliesW', \ + EnumFontsA, <.hDC, .lpsz, .lpFontEnumProc, .lParam>, 'EnumFontsA', \ + EnumFontsW, <.hDC, .lpsz, .lpFontEnumProc, .lParam>, 'EnumFontsW', \ + EnumICMProfilesA, <.hdc, .icmEnumProc, .lParam>, 'EnumICMProfilesA', \ + EnumICMProfilesW, <.hdc, .icmEnumProc, .lParam>, 'EnumICMProfilesW', \ + EnumMetaFile, <.hDC, .hMetafile, .lpMFEnumProc, .lParam>, 'EnumMetaFile', \ + EnumObjects, <.hDC, .n, .lpGOBJEnumProc, .lpVoid>, 'EnumObjects', \ + EqualRgn, <.hSrcRgn1, .hSrcRgn2>, 'EqualRgn', \ + Escape, <.hdc, .nEscape, .nCount, .lpInData, .lpOutData>, 'Escape', \ + EudcLoadLinkW, <NONE>, 'EudcLoadLinkW', \ + EudcUnloadLinkW, <NONE>, 'EudcUnloadLinkW', \ + ExcludeClipRect, <.hdc, .X1, .Y1, .X2, .Y2>, 'ExcludeClipRect', \ + ExtCreatePen, <.dwPenStyle, .dwWidth, .lplb, .dwStyleCount, .lpStyle>, 'ExtCreatePen', \ + ExtCreateRegion, <.lpXform, .nCount, .lpRgnData>, 'ExtCreateRegion', \ + ExtEscape, <.hdc, .nEscape, .cbInput, .lpszInData, .cbOutput, .lpszOutData>, 'ExtEscape', \ + ExtFloodFill, <.hdc, .x, .y, .crColor, .wFillType>, 'ExtFloodFill', \ + ExtSelectClipRgn, <.hdc, .hRgn, .fnMode>, 'ExtSelectClipRgn', \ + ExtTextOutA, <.hdc, .x, .y, .wOptions, .lpRect, .lpString, .nCount, .lpDx>, 'ExtTextOutA', \ + ExtTextOutW, <.hdc, .x, .y, .wOptions, .lpRect, .lpString, .nCount, .lpDx>, 'ExtTextOutW', \ + FONTOBJ_cGetAllGlyphHandles, <NONE>, 'FONTOBJ_cGetAllGlyphHandles', \ + FONTOBJ_cGetGlyphs, <NONE>, 'FONTOBJ_cGetGlyphs', \ + FONTOBJ_pQueryGlyphAttrs, <NONE>, 'FONTOBJ_pQueryGlyphAttrs', \ + FONTOBJ_pfdg, <NONE>, 'FONTOBJ_pfdg', \ + FONTOBJ_pifi, <NONE>, 'FONTOBJ_pifi', \ + FONTOBJ_pvTrueTypeFontFile, <NONE>, 'FONTOBJ_pvTrueTypeFontFile', \ + FONTOBJ_pxoGetXform, <NONE>, 'FONTOBJ_pxoGetXform', \ + FONTOBJ_vGetInfo, <NONE>, 'FONTOBJ_vGetInfo', \ + FillPath, <.hdc>, 'FillPath', \ + FillRgn, <.hdc, .hRgn, .hBrush>, 'FillRgn', \ + FixBrushOrgEx, <.hDC, .n1, .n2, .lpPoint>, 'FixBrushOrgEx', \ + FlattenPath, <.hdc>, 'FlattenPath', \ + FloodFill, <.hdc, .x, .y, .crColor>, 'FloodFill', \ + FontIsLinked, <NONE>, 'FontIsLinked', \ + FrameRgn, <.hdc, .hRgn, .hBrush, .nWidth, .nHeight>, 'FrameRgn', \ + GdiAddFontResourceW, <NONE>, 'GdiAddFontResourceW', \ + GdiAddGlsBounds, <NONE>, 'GdiAddGlsBounds', \ + GdiAddGlsRecord, <NONE>, 'GdiAddGlsRecord', \ + GdiAlphaBlend, <NONE>, 'GdiAlphaBlend', \ + GdiArtificialDecrementDriver, <NONE>, 'GdiArtificialDecrementDriver', \ + GdiCleanCacheDC, <NONE>, 'GdiCleanCacheDC', \ + GdiComment, <.hdc, .cbSize, .lpData>, 'GdiComment', \ + GdiConsoleTextOut, <NONE>, 'GdiConsoleTextOut', \ + GdiConvertAndCheckDC, <NONE>, 'GdiConvertAndCheckDC', \ + GdiConvertBitmap, <NONE>, 'GdiConvertBitmap', \ + GdiConvertBitmapV5, <NONE>, 'GdiConvertBitmapV5', \ + GdiConvertBrush, <NONE>, 'GdiConvertBrush', \ + GdiConvertDC, <NONE>, 'GdiConvertDC', \ + GdiConvertEnhMetaFile, <NONE>, 'GdiConvertEnhMetaFile', \ + GdiConvertFont, <NONE>, 'GdiConvertFont', \ + GdiConvertMetaFilePict, <NONE>, 'GdiConvertMetaFilePict', \ + GdiConvertPalette, <NONE>, 'GdiConvertPalette', \ + GdiConvertRegion, <NONE>, 'GdiConvertRegion', \ + GdiConvertToDevmodeW, <NONE>, 'GdiConvertToDevmodeW', \ + GdiCreateLocalEnhMetaFile, <NONE>, 'GdiCreateLocalEnhMetaFile', \ + GdiCreateLocalMetaFilePict, <NONE>, 'GdiCreateLocalMetaFilePict', \ + GdiDeleteLocalDC, <NONE>, 'GdiDeleteLocalDC', \ + GdiDeleteSpoolFileHandle, <NONE>, 'GdiDeleteSpoolFileHandle', \ + GdiDescribePixelFormat, <NONE>, 'GdiDescribePixelFormat', \ + GdiDllInitialize, <NONE>, 'GdiDllInitialize', \ + GdiDrawStream, <NONE>, 'GdiDrawStream', \ + GdiEndDocEMF, <NONE>, 'GdiEndDocEMF', \ + GdiEndPageEMF, <NONE>, 'GdiEndPageEMF', \ + GdiEntry1, <NONE>, 'GdiEntry1', \ + GdiEntry10, <NONE>, 'GdiEntry10', \ + GdiEntry11, <NONE>, 'GdiEntry11', \ + GdiEntry12, <NONE>, 'GdiEntry12', \ + GdiEntry13, <NONE>, 'GdiEntry13', \ + GdiEntry14, <NONE>, 'GdiEntry14', \ + GdiEntry15, <NONE>, 'GdiEntry15', \ + GdiEntry16, <NONE>, 'GdiEntry16', \ + GdiEntry2, <NONE>, 'GdiEntry2', \ + GdiEntry3, <NONE>, 'GdiEntry3', \ + GdiEntry4, <NONE>, 'GdiEntry4', \ + GdiEntry5, <NONE>, 'GdiEntry5', \ + GdiEntry6, <NONE>, 'GdiEntry6', \ + GdiEntry7, <NONE>, 'GdiEntry7', \ + GdiEntry8, <NONE>, 'GdiEntry8', \ + GdiEntry9, <NONE>, 'GdiEntry9', \ + GdiFixUpHandle, <NONE>, 'GdiFixUpHandle', \ + GdiFlush, <VOID>, 'GdiFlush', \ + GdiFullscreenControl, <NONE>, 'GdiFullscreenControl', \ + GdiGetBatchLimit, <VOID>, 'GdiGetBatchLimit', \ + GdiGetBitmapBitsSize, <NONE>, 'GdiGetBitmapBitsSize', \ + GdiGetCharDimensions, <NONE>, 'GdiGetCharDimensions', \ + GdiGetCodePage, <NONE>, 'GdiGetCodePage', \ + GdiGetDC, <NONE>, 'GdiGetDC', \ + GdiGetDevmodeForPage, <NONE>, 'GdiGetDevmodeForPage', \ + GdiGetLocalBrush, <NONE>, 'GdiGetLocalBrush', \ + GdiGetLocalDC, <NONE>, 'GdiGetLocalDC', \ + GdiGetLocalFont, <NONE>, 'GdiGetLocalFont', \ + GdiGetPageCount, <NONE>, 'GdiGetPageCount', \ + GdiGetPageHandle, <NONE>, 'GdiGetPageHandle', \ + GdiGetSpoolFileHandle, <NONE>, 'GdiGetSpoolFileHandle', \ + GdiGetSpoolMessage, <NONE>, 'GdiGetSpoolMessage', \ + GdiGradientFill, <NONE>, 'GdiGradientFill', \ + GdiInitSpool, <NONE>, 'GdiInitSpool', \ + GdiInitializeLanguagePack, <NONE>, 'GdiInitializeLanguagePack', \ + GdiIsMetaFileDC, <NONE>, 'GdiIsMetaFileDC', \ + GdiIsMetaPrintDC, <NONE>, 'GdiIsMetaPrintDC', \ + GdiIsPlayMetafileDC, <NONE>, 'GdiIsPlayMetafileDC', \ + GdiPlayDCScript, <NONE>, 'GdiPlayDCScript', \ + GdiPlayEMF, <NONE>, 'GdiPlayEMF', \ + GdiPlayJournal, <NONE>, 'GdiPlayJournal', \ + GdiPlayPageEMF, <NONE>, 'GdiPlayPageEMF', \ + GdiPlayPrivatePageEMF, <NONE>, 'GdiPlayPrivatePageEMF', \ + GdiPlayScript, <NONE>, 'GdiPlayScript', \ + GdiPrinterThunk, <NONE>, 'GdiPrinterThunk', \ + GdiProcessSetup, <NONE>, 'GdiProcessSetup', \ + GdiQueryFonts, <NONE>, 'GdiQueryFonts', \ + GdiQueryTable, <NONE>, 'GdiQueryTable', \ + GdiRealizationInfo, <NONE>, 'GdiRealizationInfo', \ + GdiReleaseDC, <NONE>, 'GdiReleaseDC', \ + GdiReleaseLocalDC, <NONE>, 'GdiReleaseLocalDC', \ + GdiResetDCEMF, <NONE>, 'GdiResetDCEMF', \ + GdiSetAttrs, <NONE>, 'GdiSetAttrs', \ + GdiSetBatchLimit, <.dwLimit>, 'GdiSetBatchLimit', \ + GdiSetLastError, <NONE>, 'GdiSetLastError', \ + GdiSetPixelFormat, <NONE>, 'GdiSetPixelFormat', \ + GdiSetServerAttr, <NONE>, 'GdiSetServerAttr', \ + GdiStartDocEMF, <NONE>, 'GdiStartDocEMF', \ + GdiStartPageEMF, <NONE>, 'GdiStartPageEMF', \ + GdiSwapBuffers, <NONE>, 'GdiSwapBuffers', \ + GdiTransparentBlt, <NONE>, 'GdiTransparentBlt', \ + GdiValidateHandle, <NONE>, 'GdiValidateHandle', \ + GetArcDirection, <.hdc>, 'GetArcDirection', \ + GetAspectRatioFilterEx, <.hdc, .lpAspectRatio>, 'GetAspectRatioFilterEx', \ + GetBitmapAttributes, <NONE>, 'GetBitmapAttributes', \ + GetBitmapBits, <.hBitmap, .dwCount, .lpBits>, 'GetBitmapBits', \ + GetBitmapDimensionEx, <.hBitmap, .lpDimension>, 'GetBitmapDimensionEx', \ + GetBkColor, <.hdc>, 'GetBkColor', \ + GetBkMode, <.hdc>, 'GetBkMode', \ + GetBoundsRect, <.hdc, .lprcBounds, .flags>, 'GetBoundsRect', \ + GetBrushAttributes, <NONE>, 'GetBrushAttributes', \ + GetBrushOrgEx, <.hDC, .lpPoint>, 'GetBrushOrgEx', \ + GetCharABCWidthsA, <.hdc, .uFirstChar, .uLastChar, .lpabc>, 'GetCharABCWidthsA', \ + GetCharABCWidthsFloatA, <.hdc, .iFirstChar, .iLastChar, .lpABCF>, 'GetCharABCWidthsFloatA', \ + GetCharABCWidthsFloatW, <.hdc, .iFirstChar, .iLastChar, .lpABCF>, 'GetCharABCWidthsFloatW', \ + GetCharABCWidthsI, <.hdc, .uint, .lpword, .lpabc>, 'GetCharABCWidthsI', \ + GetCharABCWidthsW, <.hdc, .uFirstChar, .uLastChar, .lpabc>, 'GetCharABCWidthsW', \ + GetCharWidth32A, <.hdc, .iFirstChar, .iLastChar, .lpBuffer>, 'GetCharWidth32A', \ + GetCharWidth32W, <.hdc, .iFirstChar, .iLastChar, .lpBuffer>, 'GetCharWidth32W', \ + GetCharWidthA, <.hdc, .wFirstChar, .wLastChar, .lpBuffer>, 'GetCharWidthA', \ + GetCharWidthFloatA, <.hdc, .iFirstChar, .iLastChar, .pxBuffer>, 'GetCharWidthFloatA', \ + GetCharWidthFloatW, <.hdc, .iFirstChar, .iLastChar, .pxBuffer>, 'GetCharWidthFloatW', \ + GetCharWidthI, <.hdc, .uint, .lpword, .lpint>, 'GetCharWidthI', \ + GetCharWidthInfo, <NONE>, 'GetCharWidthInfo', \ + GetCharWidthW, <.hdc, .wFirstChar, .wLastChar, .lpBuffer>, 'GetCharWidthW', \ + GetCharacterPlacementA, <.hdc, .lpsz, .n1, .n2, .lpGcpResults, .dw>, 'GetCharacterPlacementA', \ + GetCharacterPlacementW, <.hdc, .lpsz, .n1, .n2, .lpGcpResults, .dw>, 'GetCharacterPlacementW', \ + GetClipBox, <.hdc, .lpRect>, 'GetClipBox', \ + GetClipRgn, <.hdc, .hRgn>, 'GetClipRgn', \ + GetColorAdjustment, <.hdc, .lpca>, 'GetColorAdjustment', \ + GetColorSpace, <.hdc>, 'GetColorSpace', \ + GetCurrentObject, <.hdc, .uObjectType>, 'GetCurrentObject', \ + GetCurrentPositionEx, <.hdc, .lpPoint>, 'GetCurrentPositionEx', \ + GetDCBrushColor, <.hdc>, 'GetDCBrushColor', \ + GetDCOrgEx, <.hdc, .lpPoint>, 'GetDCOrgEx', \ + GetDCPenColor, <.hdc>, 'GetDCPenColor', \ + GetDIBColorTable, <.hDC, .un1, .un2, .pRGBQuad>, 'GetDIBColorTable', \ + GetDIBits, <.aHDC, .hBitmap, .nStartScan, .nNumScans, .lpBits, .lpBI, .wUsage>, 'GetDIBits', \ + GetDeviceCaps, <.hdc, .nIndex>, 'GetDeviceCaps', \ + GetDeviceGammaRamp, <.hdc, .lpv>, 'GetDeviceGammaRamp', \ + GetETM, <NONE>, 'GetETM', \ + GetEUDCTimeStamp, <NONE>, 'GetEUDCTimeStamp', \ + GetEUDCTimeStampExW, <NONE>, 'GetEUDCTimeStampExW', \ + GetEnhMetaFileA, <.lpszMetaFile>, 'GetEnhMetaFileA', \ + GetEnhMetaFileBits, <.hemf, .cbBuffer, .lpbBuffer>, 'GetEnhMetaFileBits', \ + GetEnhMetaFileDescriptionA, <.hemf, .cchBuffer, .lpszDescription>, 'GetEnhMetaFileDescriptionA', \ + GetEnhMetaFileDescriptionW, <.hemf, .cchBuffer, .lpszDescription>, 'GetEnhMetaFileDescriptionW', \ + GetEnhMetaFileHeader, <.hemf, .cbBuffer, .lpemh>, 'GetEnhMetaFileHeader', \ + GetEnhMetaFilePaletteEntries, <.hemf, .cEntries, .lppe>, 'GetEnhMetaFilePaletteEntries', \ + GetEnhMetaFilePixelFormat, <.henhmetafile, .uint, .PIXELFORMATDESCRIPTOR>, 'GetEnhMetaFilePixelFormat', \ + GetEnhMetaFileW, <.lpszMetaFile>, 'GetEnhMetaFileW', \ + GetFontAssocStatus, <NONE>, 'GetFontAssocStatus', \ + GetFontData, <.hdc, .dwTable, .dwOffset, .lpvBuffer, .cbData>, 'GetFontData', \ + GetFontLanguageInfo, <.hdc>, 'GetFontLanguageInfo', \ + GetFontResourceInfoW, <NONE>, 'GetFontResourceInfoW', \ + GetFontUnicodeRanges, <.hdc, .LPGLYPHSET>, 'GetFontUnicodeRanges', \ + GetGlyphIndicesA, <.hdc, .lpcstr, .ByValt, .lpword, .dword>, 'GetGlyphIndicesA', \ + GetGlyphIndicesW, <.hdc, .lpcstr, .ByValt, .lpword, .dword>, 'GetGlyphIndicesW', \ + GetGlyphOutline, <.hdc, .uChar, .fuFormat, .lpgm, .cbBuffer, .lpBuffer, .lpmat2>, 'GetGlyphOutline', \ + GetGlyphOutlineA, <.hdc, .uChar, .fuFormat, .lpgm, .cbBuffer, .lpBuffer, .lpmat2>, 'GetGlyphOutlineA', \ + GetGlyphOutlineW, <.hdc, .uChar, .fuFormat, .lpgm, .cbBuffer, .lpBuffer, .lpmat2>, 'GetGlyphOutlineW', \ + GetGlyphOutlineWow, <NONE>, 'GetGlyphOutlineWow', \ + GetGraphicsMode, <.hdc>, 'GetGraphicsMode', \ + GetHFONT, <NONE>, 'GetHFONT', \ + GetICMProfileA, <.hdc, .dw, .lpStr>, 'GetICMProfileA', \ + GetICMProfileW, <.hdc, .dw, .lpStr>, 'GetICMProfileW', \ + GetKerningPairs, <.hdc, .cPairs, .lpkrnpair>, 'GetKerningPairs', \ + GetKerningPairsA, <.hdc, .cPairs, .lpkrnpair>, 'GetKerningPairsA', \ + GetKerningPairsW, <.hdc, .cPairs, .lpkrnpair>, 'GetKerningPairsW', \ + GetLayout, <.hdc>, 'GetLayout', \ + GetLogColorSpaceA, <.hcolorspace, .lplogcolorspace, .dw>, 'GetLogColorSpaceA', \ + GetLogColorSpaceW, <.hcolorspace, .lplogcolorspace, .dw>, 'GetLogColorSpaceW', \ + GetMapMode, <.hdc>, 'GetMapMode', \ + GetMetaFileA, <.lpFileName>, 'GetMetaFileA', \ + GetMetaFileBitsEx, <.hMF, .nSize, .lpvData>, 'GetMetaFileBitsEx', \ + GetMetaFileW, <.lpFileName>, 'GetMetaFileW', \ + GetMetaRgn, <.hdc, .hRgn>, 'GetMetaRgn', \ + GetMiterLimit, <.hdc, .peLimit>, 'GetMiterLimit', \ + GetNearestColor, <.hdc, .crColor>, 'GetNearestColor', \ + GetNearestPaletteIndex, <.hPalette, .crColor>, 'GetNearestPaletteIndex', \ + GetObjectA, <.hObject, .nCount, .lpObject>, 'GetObjectA', \ + GetObjectType, <.hgdiobj>, 'GetObjectType', \ + GetObjectW, <.hObject, .nCount, .lpObject>, 'GetObjectW', \ + GetOutlineTextMetricsA, <.hdc, .cbData, .lpotm>, 'GetOutlineTextMetricsA', \ + GetOutlineTextMetricsW, <.hdc, .cbData, .lpotm>, 'GetOutlineTextMetricsW', \ + GetPaletteEntries, <.hPalette, .wStartIndex, .wNumEntries, .lpPaletteEntries>, 'GetPaletteEntries', \ + GetPath, <.hdc, .lpPoint, .lpTypes, .nSize>, 'GetPath', \ + GetPixel, <.hdc, .x, .y>, 'GetPixel', \ + GetPixelFormat, <.hDC>, 'GetPixelFormat', \ + GetPolyFillMode, <.hdc>, 'GetPolyFillMode', \ + GetROP2, <.hdc>, 'GetROP2', \ + GetRandomRgn, <.hdc, .hrgn, .ByValt>, 'GetRandomRgn', \ + GetRasterizerCaps, <.lpraststat, .cb>, 'GetRasterizerCaps', \ + GetRegionData, <.hRgn, .dwCount, .lpRgnData>, 'GetRegionData', \ + GetRelAbs, <NONE>, 'GetRelAbs', \ + GetRgnBox, <.hRgn, .lpRect>, 'GetRgnBox', \ + GetStockObject, <.fnObject>, 'GetStockObject', \ + GetStretchBltMode, <.hdc>, 'GetStretchBltMode', \ + GetStringBitmapA, <NONE>, 'GetStringBitmapA', \ + GetStringBitmapW, <NONE>, 'GetStringBitmapW', \ + GetSystemPaletteEntries, <.hdc, .wStartIndex, .wNumEntries, .lpPaletteEntries>, 'GetSystemPaletteEntries', \ + GetSystemPaletteUse, <.hdc>, 'GetSystemPaletteUse', \ + GetTextAlign, <.hdc>, 'GetTextAlign', \ + GetTextCharacterExtra, <.hdc>, 'GetTextCharacterExtra', \ + GetTextCharset, <.hdc>, 'GetTextCharset', \ + GetTextCharsetInfo, <.hdc, .lpSig, .dwFlags>, 'GetTextCharsetInfo', \ + GetTextColor, <.hdc>, 'GetTextColor', \ + GetTextExtentExPointA, <.hdc, .lpszStr, .cchString, .nMaxExtent, .lpnFit, .alpDx, .lpSize>, 'GetTextExtentExPointA', \ + GetTextExtentExPointI, <.hdc, .lpword, .ByValt, .lpint, .lpsize>, 'GetTextExtentExPointI', \ + GetTextExtentExPointW, <.hdc, .lpszStr, .cchString, .nMaxExtent, .lpnFit, .alpDx, .lpSize>, 'GetTextExtentExPointW', \ + GetTextExtentExPointWPri, <NONE>, 'GetTextExtentExPointWPri', \ + GetTextExtentPoint32A, <.hdc, .lpsz, .cbString, .lpSize>, 'GetTextExtentPoint32A', \ + GetTextExtentPoint32W, <.hdc, .lpsz, .cbString, .lpSize>, 'GetTextExtentPoint32W', \ + GetTextExtentPointA, <.hdc, .lpszString, .cbString, .lpSize>, 'GetTextExtentPointA', \ + GetTextExtentPointI, <.hdc, .lpword, .ByValt, .lpsize>, 'GetTextExtentPointI', \ + GetTextExtentPointW, <.hdc, .lpszString, .cbString, .lpSize>, 'GetTextExtentPointW', \ + GetTextFaceA, <.hdc, .nCount, .lpFacename>, 'GetTextFaceA', \ + GetTextFaceAliasW, <NONE>, 'GetTextFaceAliasW', \ + GetTextFaceW, <.hdc, .nCount, .lpFacename>, 'GetTextFaceW', \ + GetTextMetricsA, <.hdc, .lpMetrics>, 'GetTextMetricsA', \ + GetTextMetricsW, <.hdc, .lpMetrics>, 'GetTextMetricsW', \ + GetTransform, <NONE>, 'GetTransform', \ + GetViewportExtEx, <.hdc, .lpSize>, 'GetViewportExtEx', \ + GetViewportOrgEx, <.hdc, .lpPoint>, 'GetViewportOrgEx', \ + GetWinMetaFileBits, <.hemf, .cbBuffer, .lpbBuffer, .fnMapMode, .hdcRef>, 'GetWinMetaFileBits', \ + GetWindowExtEx, <.hdc, .lpSize>, 'GetWindowExtEx', \ + GetWindowOrgEx, <.hdc, .lpPoint>, 'GetWindowOrgEx', \ + GetWorldTransform, <.hdc, .lpXform>, 'GetWorldTransform', \ + HT_Get8BPPFormatPalette, <NONE>, 'HT_Get8BPPFormatPalette', \ + HT_Get8BPPMaskPalette, <NONE>, 'HT_Get8BPPMaskPalette', \ + IntersectClipRect, <.hdc, .X1, .Y1, .X2, .Y2>, 'IntersectClipRect', \ + InvertRgn, <.hdc, .hRgn>, 'InvertRgn', \ + IsValidEnhMetaRecord, <NONE>, 'IsValidEnhMetaRecord', \ + IsValidEnhMetaRecordOffExt, <NONE>, 'IsValidEnhMetaRecordOffExt', \ + LPtoDP, <.hdc, .lpPoint, .nCount>, 'LPtoDP', \ + LineDDA, <.ByValt, .pLineddaproc, .lparam>, 'LineDDA', \ + LineTo, <.hdc, .x, .y>, 'LineTo', \ + MaskBlt, <.hdcDest, .nXDest, .nYDest, .nWidth, .nHeight, .hdcSrc, .nXSrc, .nYSrc, .hbmMask, .xMask, .yMask, .dwRop>, 'MaskBlt', \ + MirrorRgn, <NONE>, 'MirrorRgn', \ + ModifyWorldTransform, <.hdc, .lpXform, .iMode>, 'ModifyWorldTransform', \ + MoveToEx, <.hdc, .x, .y, .lpPoint>, 'MoveToEx', \ + NamedEscape, <NONE>, 'NamedEscape', \ + OffsetClipRgn, <.hdc, .x, .y>, 'OffsetClipRgn', \ + OffsetRgn, <.hRgn, .x, .y>, 'OffsetRgn', \ + OffsetViewportOrgEx, <.hdc, .nX, .nY, .lpPoint>, 'OffsetViewportOrgEx', \ + OffsetWindowOrgEx, <.hdc, .nX, .nY, .lpPoint>, 'OffsetWindowOrgEx', \ + PATHOBJ_bEnum, <NONE>, 'PATHOBJ_bEnum', \ + PATHOBJ_bEnumClipLines, <NONE>, 'PATHOBJ_bEnumClipLines', \ + PATHOBJ_vEnumStart, <NONE>, 'PATHOBJ_vEnumStart', \ + PATHOBJ_vEnumStartClipLines, <NONE>, 'PATHOBJ_vEnumStartClipLines', \ + PATHOBJ_vGetBounds, <NONE>, 'PATHOBJ_vGetBounds', \ + PaintRgn, <.hdc, .hRgn>, 'PaintRgn', \ + PatBlt, <.hdc, .x, .y, .nWidth, .nHeight, .dwRop>, 'PatBlt', \ + PathToRegion, <.hdc>, 'PathToRegion', \ + Pie, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3, .X4, .Y4>, 'Pie', \ + PlayEnhMetaFile, <.hdc, .hemf, .lpRect>, 'PlayEnhMetaFile', \ + PlayEnhMetaFileRecord, <.hdc, .lpHandletable, .lpEnhMetaRecord, .nHandles>, 'PlayEnhMetaFileRecord', \ + PlayMetaFile, <.hdc, .hMF>, 'PlayMetaFile', \ + PlayMetaFileRecord, <.hdc, .lpHandletable, .lpMetaRecord, .nHandles>, 'PlayMetaFileRecord', \ + PlgBlt, <.hdcDest, .lpPoint, .hdcSrc, .nXSrc, .nYSrc, .nWidth, .nHeight, .hbmMask, .xMask, .yMask>, 'PlgBlt', \ + PolyBezier, <.hdc, .lppt, .cPoints>, 'PolyBezier', \ + PolyBezierTo, <.hdc, .lppt, .cCount>, 'PolyBezierTo', \ + PolyDraw, <.hdc, .lppt, .lpbTypes, .cCount>, 'PolyDraw', \ + PolyPatBlt, <NONE>, 'PolyPatBlt', \ + PolyPolygon, <.hdc, .lpPoint, .lpPolyCounts, .nCount>, 'PolyPolygon', \ + PolyPolyline, <.hdc, .lppt, .lpdwPolyPoints, .cCount>, 'PolyPolyline', \ + PolyTextOutA, <.hdc, .pptxt, .cStrings>, 'PolyTextOutA', \ + PolyTextOutW, <.hdc, .pptxt, .cStrings>, 'PolyTextOutW', \ + Polygon, <.hdc, .lpPoint, .nCount>, 'Polygon', \ + Polyline, <.hdc, .lpPoint, .nCount>, 'Polyline', \ + PolylineTo, <.hdc, .lppt, .cCount>, 'PolylineTo', \ + PtInRegion, <.hRgn, .x, .y>, 'PtInRegion', \ + PtVisible, <.hdc, .x, .y>, 'PtVisible', \ + QueryFontAssocStatus, <NONE>, 'QueryFontAssocStatus', \ + RealizePalette, <.hdc>, 'RealizePalette', \ + RectInRegion, <.hRgn, .lpRect>, 'RectInRegion', \ + RectVisible, <.hdc, .lpRect>, 'RectVisible', \ + Rectangle, <.hdc, .X1, .Y1, .X2, .Y2>, 'Rectangle', \ + RemoveFontMemResourceEx, <.handle>, 'RemoveFontMemResourceEx', \ + RemoveFontResourceA, <.lpFileName>, 'RemoveFontResourceA', \ + RemoveFontResourceExA, <.lpcstr, .dword, .DESIGNVECTOR>, 'RemoveFontResourceExA', \ + RemoveFontResourceExW, <.lpcstr, .dword, .DESIGNVECTOR>, 'RemoveFontResourceExW', \ + RemoveFontResourceTracking, <NONE>, 'RemoveFontResourceTracking', \ + RemoveFontResourceW, <.lpFileName>, 'RemoveFontResourceW', \ + ResetDCA, <.hdc, .lpInitData>, 'ResetDCA', \ + ResetDCW, <.hdc, .lpInitData>, 'ResetDCW', \ + ResizePalette, <.hPalette, .nNumEntries>, 'ResizePalette', \ + RestoreDC, <.hdc, .nSavedDC>, 'RestoreDC', \ + RoundRect, <.hdc, .X1, .Y1, .X2, .Y2, .X3, .Y3>, 'RoundRect', \ + STROBJ_bEnum, <NONE>, 'STROBJ_bEnum', \ + STROBJ_bEnumPositionsOnly, <NONE>, 'STROBJ_bEnumPositionsOnly', \ + STROBJ_bGetAdvanceWidths, <NONE>, 'STROBJ_bGetAdvanceWidths', \ + STROBJ_dwGetCodePage, <NONE>, 'STROBJ_dwGetCodePage', \ + STROBJ_vEnumStart, <NONE>, 'STROBJ_vEnumStart', \ + SaveDC, <.hdc>, 'SaveDC', \ + ScaleViewportExtEx, <.hdc, .nXnum, .nXdenom, .nYnum, .nYdenom, .lpSize>, 'ScaleViewportExtEx', \ + ScaleWindowExtEx, <.hdc, .nXnum, .nXdenom, .nYnum, .nYdenom, .lpSize>, 'ScaleWindowExtEx', \ + SelectBrushLocal, <NONE>, 'SelectBrushLocal', \ + SelectClipPath, <.hdc, .iMode>, 'SelectClipPath', \ + SelectClipRgn, <.hdc, .hRgn>, 'SelectClipRgn', \ + SelectFontLocal, <NONE>, 'SelectFontLocal', \ + SelectObject, <.hdc, .hObject>, 'SelectObject', \ + SelectPalette, <.hdc, .hPalette, .bForceBackground>, 'SelectPalette', \ + SetAbortProc, <.hDC, .lpAbortProc>, 'SetAbortProc', \ + SetArcDirection, <.hdc, .ArcDirection>, 'SetArcDirection', \ + SetBitmapAttributes, <NONE>, 'SetBitmapAttributes', \ + SetBitmapBits, <.hBitmap, .dwCount, .lpBits>, 'SetBitmapBits', \ + SetBitmapDimensionEx, <.hbm, .nX, .nY, .lpSize>, 'SetBitmapDimensionEx', \ + SetBkColor, <.hdc, .crColor>, 'SetBkColor', \ + SetBkMode, <.hdc, .nBkMode>, 'SetBkMode', \ + SetBoundsRect, <.hdc, .lprcBounds, .flags>, 'SetBoundsRect', \ + SetBrushAttributes, <NONE>, 'SetBrushAttributes', \ + SetBrushOrgEx, <.hdc, .nXOrg, .nYOrg, .lppt>, 'SetBrushOrgEx', \ + SetColorAdjustment, <.hdc, .lpca>, 'SetColorAdjustment', \ + SetColorSpace, <.hdc, .hcolorspace>, 'SetColorSpace', \ + SetDCBrushColor, <.hdc, .colorref>, 'SetDCBrushColor', \ + SetDCPenColor, <.hdc, .colorref>, 'SetDCPenColor', \ + SetDIBColorTable, <.hDC, .un1, .un2, .pcRGBQuad>, 'SetDIBColorTable', \ + SetDIBits, <.hdc, .hBitmap, .nStartScan, .nNumScans, .lpBits, .lpBI, .wUsage>, 'SetDIBits', \ + SetDIBitsToDevice, <.hdc, .x, .y, .dx, .dy, .SrcX, .SrcY, .Scan, .NumScans, .Bits, .BitsInfo, .wUsage>, 'SetDIBitsToDevice', \ + SetDeviceGammaRamp, <.hdc, .lpv>, 'SetDeviceGammaRamp', \ + SetEnhMetaFileBits, <.cbBuffer, .lpData>, 'SetEnhMetaFileBits', \ + SetFontEnumeration, <NONE>, 'SetFontEnumeration', \ + SetGraphicsMode, <.hdc, .iMode>, 'SetGraphicsMode', \ + SetICMMode, <.hdc, .n>, 'SetICMMode', \ + SetICMProfileA, <.hdc, .lpStr>, 'SetICMProfileA', \ + SetICMProfileW, <.hdc, .lpStr>, 'SetICMProfileW', \ + SetLayout, <.hdc, .dword>, 'SetLayout', \ + SetLayoutWidth, <NONE>, 'SetLayoutWidth', \ + SetMagicColors, <NONE>, 'SetMagicColors', \ + SetMapMode, <.hdc, .nMapMode>, 'SetMapMode', \ + SetMapperFlags, <.hdc, .dwFlag>, 'SetMapperFlags', \ + SetMetaFileBitsEx, <.nSize, .lpData>, 'SetMetaFileBitsEx', \ + SetMetaRgn, <.hdc>, 'SetMetaRgn', \ + SetMiterLimit, <.hdc, .eNewLimit, .peOldLimit>, 'SetMiterLimit', \ + SetPaletteEntries, <.hPalette, .wStartIndex, .wNumEntries, .lpPaletteEntries>, 'SetPaletteEntries', \ + SetPixel, <.hdc, .x, .y, .crColor>, 'SetPixel', \ + SetPixelFormat, <.hDC, .n, .pcPixelFormatDescriptor>, 'SetPixelFormat', \ + SetPixelV, <.hdc, .x, .y, .crColor>, 'SetPixelV', \ + SetPolyFillMode, <.hdc, .nPolyFillMode>, 'SetPolyFillMode', \ + SetROP2, <.hdc, .nDrawMode>, 'SetROP2', \ + SetRectRgn, <.hRgn, .X1, .Y1, .X2, .Y2>, 'SetRectRgn', \ + SetRelAbs, <NONE>, 'SetRelAbs', \ + SetStretchBltMode, <.hdc, .nStretchMode>, 'SetStretchBltMode', \ + SetSystemPaletteUse, <.hdc, .wUsage>, 'SetSystemPaletteUse', \ + SetTextAlign, <.hdc, .fMode>, 'SetTextAlign', \ + SetTextCharacterExtra, <.hdc, .nCharExtra>, 'SetTextCharacterExtra', \ + SetTextColor, <.hdc, .crColor>, 'SetTextColor', \ + SetTextJustification, <.hdc, .nBreakExtra, .nBreakCount>, 'SetTextJustification', \ + SetViewportExtEx, <.hdc, .nX, .nY, .lpSize>, 'SetViewportExtEx', \ + SetViewportOrgEx, <.hdc, .nX, .nY, .lpPoint>, 'SetViewportOrgEx', \ + SetVirtualResolution, <NONE>, 'SetVirtualResolution', \ + SetWinMetaFileBits, <.cbBuffer, .lpbBuffer, .hdcRef, .lpmfp>, 'SetWinMetaFileBits', \ + SetWindowExtEx, <.hdc, .nX, .nY, .lpSize>, 'SetWindowExtEx', \ + SetWindowOrgEx, <.hdc, .nX, .nY, .lpPoint>, 'SetWindowOrgEx', \ + SetWorldTransform, <.hdc, .lpXform>, 'SetWorldTransform', \ + StartDocA, <.hdc, .lpdi>, 'StartDocA', \ + StartDocW, <.hdc, .lpdi>, 'StartDocW', \ + StartFormPage, <.hdc>, 'StartFormPage', \ + StartPage, <.hdc>, 'StartPage', \ + StretchBlt, <.hdc, .x, .y, .nWidth, .nHeight, .hSrcDC, .xSrc, .ySrc, .nSrcWidth, .nSrcHeight, .dwRop>, 'StretchBlt', \ + StretchDIBits, <.hdc, .x, .y, .dx, .dy, .SrcX, .SrcY, .wSrcWidth, .wSrcHeight, .lpBits, .lpBitsInfo, .wUsage, .dwRop>, 'StretchDIBits', \ + StrokeAndFillPath, <.hdc>, 'StrokeAndFillPath', \ + StrokePath, <.hdc>, 'StrokePath', \ + SwapBuffers, <.hDC>, 'SwapBuffers', \ + TextOutA, <.hdc, .x, .y, .lpString, .nCount>, 'TextOutA', \ + TextOutW, <.hdc, .x, .y, .lpString, .nCount>, 'TextOutW', \ + TranslateCharsetInfo, <.lpSrc, .lpcs, .dwFlags>, 'TranslateCharsetInfo', \ + UnloadNetworkFonts, <NONE>, 'UnloadNetworkFonts', \ + UnrealizeObject, <.hObject>, 'UnrealizeObject', \ + UpdateColors, <.hdc>, 'UpdateColors', \ + UpdateICMRegKeyA, <.dword, .lpstr, .uint>, 'UpdateICMRegKeyA', \ + UpdateICMRegKeyW, <.dword, .lpstr, .uint>, 'UpdateICMRegKeyW', \ + WidenPath, <.hdc>, 'WidenPath', \ + XFORMOBJ_bApplyXform, <NONE>, 'XFORMOBJ_bApplyXform', \ + XFORMOBJ_iGetXform, <NONE>, 'XFORMOBJ_iGetXform', \ + XLATEOBJ_cGetPalette, <NONE>, 'XLATEOBJ_cGetPalette', \ + XLATEOBJ_hGetColorTransform, <NONE>, 'XLATEOBJ_hGetColorTransform', \ + XLATEOBJ_iXlate, <NONE>, 'XLATEOBJ_iXlate', \ + XLATEOBJ_piVector, <NONE>, 'XLATEOBJ_piVector', \ + bInitSystemAndFontsDirectoriesW, <NONE>, 'bInitSystemAndFontsDirectoriesW', \ + bMakePathNameW, <NONE>, 'bMakePathNameW', \ + cGetTTFFromFOT, <NONE>, 'cGetTTFFromFOT', \ + gdiPlaySpoolStream, <NONE>, 'gdiPlaySpoolStream' ADDED freshlib/imports/Win32/gdiplus.inc Index: freshlib/imports/Win32/gdiplus.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/gdiplus.inc @@ -0,0 +1,632 @@ +; gdiplus.dll API calls (ASCII) +import_proto gdiplus, \ + GdipAddPathArc, <NONE>, 'GdipAddPathArc', \ + GdipAddPathArcI, <NONE>, 'GdipAddPathArcI', \ + GdipAddPathBezier, <NONE>, 'GdipAddPathBezier', \ + GdipAddPathBezierI, <NONE>, 'GdipAddPathBezierI', \ + GdipAddPathBeziers, <NONE>, 'GdipAddPathBeziers', \ + GdipAddPathBeziersI, <NONE>, 'GdipAddPathBeziersI', \ + GdipAddPathClosedCurve, <NONE>, 'GdipAddPathClosedCurve', \ + GdipAddPathClosedCurve2, <NONE>, 'GdipAddPathClosedCurve2', \ + GdipAddPathClosedCurve2I, <NONE>, 'GdipAddPathClosedCurve2I', \ + GdipAddPathClosedCurveI, <NONE>, 'GdipAddPathClosedCurveI', \ + GdipAddPathCurve, <NONE>, 'GdipAddPathCurve', \ + GdipAddPathCurve2, <NONE>, 'GdipAddPathCurve2', \ + GdipAddPathCurve2I, <NONE>, 'GdipAddPathCurve2I', \ + GdipAddPathCurve3, <NONE>, 'GdipAddPathCurve3', \ + GdipAddPathCurve3I, <NONE>, 'GdipAddPathCurve3I', \ + GdipAddPathCurveI, <NONE>, 'GdipAddPathCurveI', \ + GdipAddPathEllipse, <NONE>, 'GdipAddPathEllipse', \ + GdipAddPathEllipseI, <NONE>, 'GdipAddPathEllipseI', \ + GdipAddPathLine, <NONE>, 'GdipAddPathLine', \ + GdipAddPathLine2, <NONE>, 'GdipAddPathLine2', \ + GdipAddPathLine2I, <NONE>, 'GdipAddPathLine2I', \ + GdipAddPathLineI, <NONE>, 'GdipAddPathLineI', \ + GdipAddPathPath, <NONE>, 'GdipAddPathPath', \ + GdipAddPathPie, <NONE>, 'GdipAddPathPie', \ + GdipAddPathPieI, <NONE>, 'GdipAddPathPieI', \ + GdipAddPathPolygon, <NONE>, 'GdipAddPathPolygon', \ + GdipAddPathPolygonI, <NONE>, 'GdipAddPathPolygonI', \ + GdipAddPathRectangle, <NONE>, 'GdipAddPathRectangle', \ + GdipAddPathRectangleI, <NONE>, 'GdipAddPathRectangleI', \ + GdipAddPathRectangles, <NONE>, 'GdipAddPathRectangles', \ + GdipAddPathRectanglesI, <NONE>, 'GdipAddPathRectanglesI', \ + GdipAddPathString, <NONE>, 'GdipAddPathString', \ + GdipAddPathStringI, <NONE>, 'GdipAddPathStringI', \ + GdipAlloc, <NONE>, 'GdipAlloc', \ + GdipBeginContainer, <NONE>, 'GdipBeginContainer', \ + GdipBeginContainer2, <NONE>, 'GdipBeginContainer2', \ + GdipBeginContainerI, <NONE>, 'GdipBeginContainerI', \ + GdipBitmapApplyEffect, <NONE>, 'GdipBitmapApplyEffect', \ + GdipBitmapConvertFormat, <NONE>, 'GdipBitmapConvertFormat', \ + GdipBitmapCreateApplyEffect, <NONE>, 'GdipBitmapCreateApplyEffect', \ + GdipBitmapGetHistogram, <NONE>, 'GdipBitmapGetHistogram', \ + GdipBitmapGetHistogramSize, <NONE>, 'GdipBitmapGetHistogramSize', \ + GdipBitmapGetPixel, <NONE>, 'GdipBitmapGetPixel', \ + GdipBitmapLockBits, <NONE>, 'GdipBitmapLockBits', \ + GdipBitmapSetPixel, <NONE>, 'GdipBitmapSetPixel', \ + GdipBitmapSetResolution, <NONE>, 'GdipBitmapSetResolution', \ + GdipBitmapUnlockBits, <NONE>, 'GdipBitmapUnlockBits', \ + GdipClearPathMarkers, <NONE>, 'GdipClearPathMarkers', \ + GdipCloneBitmapArea, <NONE>, 'GdipCloneBitmapArea', \ + GdipCloneBitmapAreaI, <NONE>, 'GdipCloneBitmapAreaI', \ + GdipCloneBrush, <NONE>, 'GdipCloneBrush', \ + GdipCloneCustomLineCap, <NONE>, 'GdipCloneCustomLineCap', \ + GdipCloneFont, <NONE>, 'GdipCloneFont', \ + GdipCloneFontFamily, <NONE>, 'GdipCloneFontFamily', \ + GdipCloneImage, <NONE>, 'GdipCloneImage', \ + GdipCloneImageAttributes, <NONE>, 'GdipCloneImageAttributes', \ + GdipCloneMatrix, <NONE>, 'GdipCloneMatrix', \ + GdipClonePath, <NONE>, 'GdipClonePath', \ + GdipClonePen, <NONE>, 'GdipClonePen', \ + GdipCloneRegion, <NONE>, 'GdipCloneRegion', \ + GdipCloneStringFormat, <NONE>, 'GdipCloneStringFormat', \ + GdipClosePathFigure, <NONE>, 'GdipClosePathFigure', \ + GdipClosePathFigures, <NONE>, 'GdipClosePathFigures', \ + GdipCombineRegionPath, <NONE>, 'GdipCombineRegionPath', \ + GdipCombineRegionRect, <NONE>, 'GdipCombineRegionRect', \ + GdipCombineRegionRectI, <NONE>, 'GdipCombineRegionRectI', \ + GdipCombineRegionRegion, <NONE>, 'GdipCombineRegionRegion', \ + GdipComment, <NONE>, 'GdipComment', \ + GdipConvertToEmfPlus, <NONE>, 'GdipConvertToEmfPlus', \ + GdipConvertToEmfPlusToFile, <NONE>, 'GdipConvertToEmfPlusToFile', \ + GdipConvertToEmfPlusToStream, <NONE>, 'GdipConvertToEmfPlusToStream', \ + GdipCreateAdjustableArrowCap, <NONE>, 'GdipCreateAdjustableArrowCap', \ + GdipCreateBitmapFromDirectDrawSurface, <NONE>, 'GdipCreateBitmapFromDirectDrawSurface', \ + GdipCreateBitmapFromFile, <NONE>, 'GdipCreateBitmapFromFile', \ + GdipCreateBitmapFromFileICM, <NONE>, 'GdipCreateBitmapFromFileICM', \ + GdipCreateBitmapFromGdiDib, <NONE>, 'GdipCreateBitmapFromGdiDib', \ + GdipCreateBitmapFromGraphics, <NONE>, 'GdipCreateBitmapFromGraphics', \ + GdipCreateBitmapFromHBITMAP, <NONE>, 'GdipCreateBitmapFromHBITMAP', \ + GdipCreateBitmapFromHICON, <NONE>, 'GdipCreateBitmapFromHICON', \ + GdipCreateBitmapFromResource, <NONE>, 'GdipCreateBitmapFromResource', \ + GdipCreateBitmapFromScan0, <NONE>, 'GdipCreateBitmapFromScan0', \ + GdipCreateBitmapFromStream, <NONE>, 'GdipCreateBitmapFromStream', \ + GdipCreateBitmapFromStreamICM, <NONE>, 'GdipCreateBitmapFromStreamICM', \ + GdipCreateCachedBitmap, <NONE>, 'GdipCreateCachedBitmap', \ + GdipCreateCustomLineCap, <NONE>, 'GdipCreateCustomLineCap', \ + GdipCreateEffect, <NONE>, 'GdipCreateEffect', \ + GdipCreateFont, <NONE>, 'GdipCreateFont', \ + GdipCreateFontFamilyFromName, <NONE>, 'GdipCreateFontFamilyFromName', \ + GdipCreateFontFromDC, <NONE>, 'GdipCreateFontFromDC', \ + GdipCreateFontFromLogfontA, <NONE>, 'GdipCreateFontFromLogfontA', \ + GdipCreateFontFromLogfontW, <NONE>, 'GdipCreateFontFromLogfontW', \ + GdipCreateFromHDC, <NONE>, 'GdipCreateFromHDC', \ + GdipCreateFromHDC2, <NONE>, 'GdipCreateFromHDC2', \ + GdipCreateFromHWND, <NONE>, 'GdipCreateFromHWND', \ + GdipCreateFromHWNDICM, <NONE>, 'GdipCreateFromHWNDICM', \ + GdipCreateHBITMAPFromBitmap, <NONE>, 'GdipCreateHBITMAPFromBitmap', \ + GdipCreateHICONFromBitmap, <NONE>, 'GdipCreateHICONFromBitmap', \ + GdipCreateHalftonePalette, <NONE>, 'GdipCreateHalftonePalette', \ + GdipCreateHatchBrush, <NONE>, 'GdipCreateHatchBrush', \ + GdipCreateImageAttributes, <NONE>, 'GdipCreateImageAttributes', \ + GdipCreateLineBrush, <NONE>, 'GdipCreateLineBrush', \ + GdipCreateLineBrushFromRect, <NONE>, 'GdipCreateLineBrushFromRect', \ + GdipCreateLineBrushFromRectI, <NONE>, 'GdipCreateLineBrushFromRectI', \ + GdipCreateLineBrushFromRectWithAngle, <NONE>, 'GdipCreateLineBrushFromRectWithAngle', \ + GdipCreateLineBrushFromRectWithAngleI, <NONE>, 'GdipCreateLineBrushFromRectWithAngleI', \ + GdipCreateLineBrushI, <NONE>, 'GdipCreateLineBrushI', \ + GdipCreateMatrix, <NONE>, 'GdipCreateMatrix', \ + GdipCreateMatrix2, <NONE>, 'GdipCreateMatrix2', \ + GdipCreateMatrix3, <NONE>, 'GdipCreateMatrix3', \ + GdipCreateMatrix3I, <NONE>, 'GdipCreateMatrix3I', \ + GdipCreateMetafileFromEmf, <NONE>, 'GdipCreateMetafileFromEmf', \ + GdipCreateMetafileFromFile, <NONE>, 'GdipCreateMetafileFromFile', \ + GdipCreateMetafileFromStream, <NONE>, 'GdipCreateMetafileFromStream', \ + GdipCreateMetafileFromWmf, <NONE>, 'GdipCreateMetafileFromWmf', \ + GdipCreateMetafileFromWmfFile, <NONE>, 'GdipCreateMetafileFromWmfFile', \ + GdipCreatePath, <NONE>, 'GdipCreatePath', \ + GdipCreatePath2, <NONE>, 'GdipCreatePath2', \ + GdipCreatePath2I, <NONE>, 'GdipCreatePath2I', \ + GdipCreatePathGradient, <NONE>, 'GdipCreatePathGradient', \ + GdipCreatePathGradientFromPath, <NONE>, 'GdipCreatePathGradientFromPath', \ + GdipCreatePathGradientI, <NONE>, 'GdipCreatePathGradientI', \ + GdipCreatePathIter, <NONE>, 'GdipCreatePathIter', \ + GdipCreatePen1, <NONE>, 'GdipCreatePen1', \ + GdipCreatePen2, <NONE>, 'GdipCreatePen2', \ + GdipCreateRegion, <NONE>, 'GdipCreateRegion', \ + GdipCreateRegionHrgn, <NONE>, 'GdipCreateRegionHrgn', \ + GdipCreateRegionPath, <NONE>, 'GdipCreateRegionPath', \ + GdipCreateRegionRect, <NONE>, 'GdipCreateRegionRect', \ + GdipCreateRegionRectI, <NONE>, 'GdipCreateRegionRectI', \ + GdipCreateRegionRgnData, <NONE>, 'GdipCreateRegionRgnData', \ + GdipCreateSolidFill, <NONE>, 'GdipCreateSolidFill', \ + GdipCreateStreamOnFile, <NONE>, 'GdipCreateStreamOnFile', \ + GdipCreateStringFormat, <NONE>, 'GdipCreateStringFormat', \ + GdipCreateTexture, <NONE>, 'GdipCreateTexture', \ + GdipCreateTexture2, <NONE>, 'GdipCreateTexture2', \ + GdipCreateTexture2I, <NONE>, 'GdipCreateTexture2I', \ + GdipCreateTextureIA, <NONE>, 'GdipCreateTextureIA', \ + GdipCreateTextureIAI, <NONE>, 'GdipCreateTextureIAI', \ + GdipDeleteBrush, <NONE>, 'GdipDeleteBrush', \ + GdipDeleteCachedBitmap, <NONE>, 'GdipDeleteCachedBitmap', \ + GdipDeleteCustomLineCap, <NONE>, 'GdipDeleteCustomLineCap', \ + GdipDeleteEffect, <NONE>, 'GdipDeleteEffect', \ + GdipDeleteFont, <NONE>, 'GdipDeleteFont', \ + GdipDeleteFontFamily, <NONE>, 'GdipDeleteFontFamily', \ + GdipDeleteGraphics, <NONE>, 'GdipDeleteGraphics', \ + GdipDeleteMatrix, <NONE>, 'GdipDeleteMatrix', \ + GdipDeletePath, <NONE>, 'GdipDeletePath', \ + GdipDeletePathIter, <NONE>, 'GdipDeletePathIter', \ + GdipDeletePen, <NONE>, 'GdipDeletePen', \ + GdipDeletePrivateFontCollection, <NONE>, 'GdipDeletePrivateFontCollection', \ + GdipDeleteRegion, <NONE>, 'GdipDeleteRegion', \ + GdipDeleteStringFormat, <NONE>, 'GdipDeleteStringFormat', \ + GdipDisposeImage, <NONE>, 'GdipDisposeImage', \ + GdipDisposeImageAttributes, <NONE>, 'GdipDisposeImageAttributes', \ + GdipDrawArc, <NONE>, 'GdipDrawArc', \ + GdipDrawArcI, <NONE>, 'GdipDrawArcI', \ + GdipDrawBezier, <NONE>, 'GdipDrawBezier', \ + GdipDrawBezierI, <NONE>, 'GdipDrawBezierI', \ + GdipDrawBeziers, <NONE>, 'GdipDrawBeziers', \ + GdipDrawBeziersI, <NONE>, 'GdipDrawBeziersI', \ + GdipDrawCachedBitmap, <NONE>, 'GdipDrawCachedBitmap', \ + GdipDrawClosedCurve, <NONE>, 'GdipDrawClosedCurve', \ + GdipDrawClosedCurve2, <NONE>, 'GdipDrawClosedCurve2', \ + GdipDrawClosedCurve2I, <NONE>, 'GdipDrawClosedCurve2I', \ + GdipDrawClosedCurveI, <NONE>, 'GdipDrawClosedCurveI', \ + GdipDrawCurve, <NONE>, 'GdipDrawCurve', \ + GdipDrawCurve2, <NONE>, 'GdipDrawCurve2', \ + GdipDrawCurve2I, <NONE>, 'GdipDrawCurve2I', \ + GdipDrawCurve3, <NONE>, 'GdipDrawCurve3', \ + GdipDrawCurve3I, <NONE>, 'GdipDrawCurve3I', \ + GdipDrawCurveI, <NONE>, 'GdipDrawCurveI', \ + GdipDrawDriverString, <NONE>, 'GdipDrawDriverString', \ + GdipDrawEllipse, <NONE>, 'GdipDrawEllipse', \ + GdipDrawEllipseI, <NONE>, 'GdipDrawEllipseI', \ + GdipDrawImage, <NONE>, 'GdipDrawImage', \ + GdipDrawImageFX, <NONE>, 'GdipDrawImageFX', \ + GdipDrawImageI, <NONE>, 'GdipDrawImageI', \ + GdipDrawImagePointRect, <NONE>, 'GdipDrawImagePointRect', \ + GdipDrawImagePointRectI, <NONE>, 'GdipDrawImagePointRectI', \ + GdipDrawImagePoints, <NONE>, 'GdipDrawImagePoints', \ + GdipDrawImagePointsI, <NONE>, 'GdipDrawImagePointsI', \ + GdipDrawImagePointsRect, <NONE>, 'GdipDrawImagePointsRect', \ + GdipDrawImagePointsRectI, <NONE>, 'GdipDrawImagePointsRectI', \ + GdipDrawImageRect, <NONE>, 'GdipDrawImageRect', \ + GdipDrawImageRectI, <NONE>, 'GdipDrawImageRectI', \ + GdipDrawImageRectRect, <NONE>, 'GdipDrawImageRectRect', \ + GdipDrawImageRectRectI, <NONE>, 'GdipDrawImageRectRectI', \ + GdipDrawLine, <NONE>, 'GdipDrawLine', \ + GdipDrawLineI, <NONE>, 'GdipDrawLineI', \ + GdipDrawLines, <NONE>, 'GdipDrawLines', \ + GdipDrawLinesI, <NONE>, 'GdipDrawLinesI', \ + GdipDrawPath, <NONE>, 'GdipDrawPath', \ + GdipDrawPie, <NONE>, 'GdipDrawPie', \ + GdipDrawPieI, <NONE>, 'GdipDrawPieI', \ + GdipDrawPolygon, <NONE>, 'GdipDrawPolygon', \ + GdipDrawPolygonI, <NONE>, 'GdipDrawPolygonI', \ + GdipDrawRectangle, <NONE>, 'GdipDrawRectangle', \ + GdipDrawRectangleI, <NONE>, 'GdipDrawRectangleI', \ + GdipDrawRectangles, <NONE>, 'GdipDrawRectangles', \ + GdipDrawRectanglesI, <NONE>, 'GdipDrawRectanglesI', \ + GdipDrawString, <NONE>, 'GdipDrawString', \ + GdipEmfToWmfBits, <NONE>, 'GdipEmfToWmfBits', \ + GdipEndContainer, <NONE>, 'GdipEndContainer', \ + GdipEnumerateMetafileDestPoint, <NONE>, 'GdipEnumerateMetafileDestPoint', \ + GdipEnumerateMetafileDestPointI, <NONE>, 'GdipEnumerateMetafileDestPointI', \ + GdipEnumerateMetafileDestPoints, <NONE>, 'GdipEnumerateMetafileDestPoints', \ + GdipEnumerateMetafileDestPointsI, <NONE>, 'GdipEnumerateMetafileDestPointsI', \ + GdipEnumerateMetafileDestRect, <NONE>, 'GdipEnumerateMetafileDestRect', \ + GdipEnumerateMetafileDestRectI, <NONE>, 'GdipEnumerateMetafileDestRectI', \ + GdipEnumerateMetafileSrcRectDestPoint, <NONE>, 'GdipEnumerateMetafileSrcRectDestPoint', \ + GdipEnumerateMetafileSrcRectDestPointI, <NONE>, 'GdipEnumerateMetafileSrcRectDestPointI', \ + GdipEnumerateMetafileSrcRectDestPoints, <NONE>, 'GdipEnumerateMetafileSrcRectDestPoints', \ + GdipEnumerateMetafileSrcRectDestPointsI, <NONE>, 'GdipEnumerateMetafileSrcRectDestPointsI', \ + GdipEnumerateMetafileSrcRectDestRect, <NONE>, 'GdipEnumerateMetafileSrcRectDestRect', \ + GdipEnumerateMetafileSrcRectDestRectI, <NONE>, 'GdipEnumerateMetafileSrcRectDestRectI', \ + GdipFillClosedCurve, <NONE>, 'GdipFillClosedCurve', \ + GdipFillClosedCurve2, <NONE>, 'GdipFillClosedCurve2', \ + GdipFillClosedCurve2I, <NONE>, 'GdipFillClosedCurve2I', \ + GdipFillClosedCurveI, <NONE>, 'GdipFillClosedCurveI', \ + GdipFillEllipse, <NONE>, 'GdipFillEllipse', \ + GdipFillEllipseI, <NONE>, 'GdipFillEllipseI', \ + GdipFillPath, <NONE>, 'GdipFillPath', \ + GdipFillPie, <NONE>, 'GdipFillPie', \ + GdipFillPieI, <NONE>, 'GdipFillPieI', \ + GdipFillPolygon, <NONE>, 'GdipFillPolygon', \ + GdipFillPolygon2, <NONE>, 'GdipFillPolygon2', \ + GdipFillPolygon2I, <NONE>, 'GdipFillPolygon2I', \ + GdipFillPolygonI, <NONE>, 'GdipFillPolygonI', \ + GdipFillRectangle, <NONE>, 'GdipFillRectangle', \ + GdipFillRectangleI, <NONE>, 'GdipFillRectangleI', \ + GdipFillRectangles, <NONE>, 'GdipFillRectangles', \ + GdipFillRectanglesI, <NONE>, 'GdipFillRectanglesI', \ + GdipFillRegion, <NONE>, 'GdipFillRegion', \ + GdipFindFirstImageItem, <NONE>, 'GdipFindFirstImageItem', \ + GdipFindNextImageItem, <NONE>, 'GdipFindNextImageItem', \ + GdipFlattenPath, <NONE>, 'GdipFlattenPath', \ + GdipFlush, <NONE>, 'GdipFlush', \ + GdipFree, <NONE>, 'GdipFree', \ + GdipGetAdjustableArrowCapFillState, <NONE>, 'GdipGetAdjustableArrowCapFillState', \ + GdipGetAdjustableArrowCapHeight, <NONE>, 'GdipGetAdjustableArrowCapHeight', \ + GdipGetAdjustableArrowCapMiddleInset, <NONE>, 'GdipGetAdjustableArrowCapMiddleInset', \ + GdipGetAdjustableArrowCapWidth, <NONE>, 'GdipGetAdjustableArrowCapWidth', \ + GdipGetAllPropertyItems, <NONE>, 'GdipGetAllPropertyItems', \ + GdipGetBrushType, <NONE>, 'GdipGetBrushType', \ + GdipGetCellAscent, <NONE>, 'GdipGetCellAscent', \ + GdipGetCellDescent, <NONE>, 'GdipGetCellDescent', \ + GdipGetClip, <NONE>, 'GdipGetClip', \ + GdipGetClipBounds, <NONE>, 'GdipGetClipBounds', \ + GdipGetClipBoundsI, <NONE>, 'GdipGetClipBoundsI', \ + GdipGetCompositingMode, <NONE>, 'GdipGetCompositingMode', \ + GdipGetCompositingQuality, <NONE>, 'GdipGetCompositingQuality', \ + GdipGetCustomLineCapBaseCap, <NONE>, 'GdipGetCustomLineCapBaseCap', \ + GdipGetCustomLineCapBaseInset, <NONE>, 'GdipGetCustomLineCapBaseInset', \ + GdipGetCustomLineCapStrokeCaps, <NONE>, 'GdipGetCustomLineCapStrokeCaps', \ + GdipGetCustomLineCapStrokeJoin, <NONE>, 'GdipGetCustomLineCapStrokeJoin', \ + GdipGetCustomLineCapType, <NONE>, 'GdipGetCustomLineCapType', \ + GdipGetCustomLineCapWidthScale, <NONE>, 'GdipGetCustomLineCapWidthScale', \ + GdipGetDC, <NONE>, 'GdipGetDC', \ + GdipGetDpiX, <NONE>, 'GdipGetDpiX', \ + GdipGetDpiY, <NONE>, 'GdipGetDpiY', \ + GdipGetEffectParameterSize, <NONE>, 'GdipGetEffectParameterSize', \ + GdipGetEffectParameters, <NONE>, 'GdipGetEffectParameters', \ + GdipGetEmHeight, <NONE>, 'GdipGetEmHeight', \ + GdipGetEncoderParameterList, <NONE>, 'GdipGetEncoderParameterList', \ + GdipGetEncoderParameterListSize, <NONE>, 'GdipGetEncoderParameterListSize', \ + GdipGetFamily, <NONE>, 'GdipGetFamily', \ + GdipGetFamilyName, <NONE>, 'GdipGetFamilyName', \ + GdipGetFontCollectionFamilyCount, <NONE>, 'GdipGetFontCollectionFamilyCount', \ + GdipGetFontCollectionFamilyList, <NONE>, 'GdipGetFontCollectionFamilyList', \ + GdipGetFontHeight, <NONE>, 'GdipGetFontHeight', \ + GdipGetFontHeightGivenDPI, <NONE>, 'GdipGetFontHeightGivenDPI', \ + GdipGetFontSize, <NONE>, 'GdipGetFontSize', \ + GdipGetFontStyle, <NONE>, 'GdipGetFontStyle', \ + GdipGetFontUnit, <NONE>, 'GdipGetFontUnit', \ + GdipGetGenericFontFamilyMonospace, <NONE>, 'GdipGetGenericFontFamilyMonospace', \ + GdipGetGenericFontFamilySansSerif, <NONE>, 'GdipGetGenericFontFamilySansSerif', \ + GdipGetGenericFontFamilySerif, <NONE>, 'GdipGetGenericFontFamilySerif', \ + GdipGetHatchBackgroundColor, <NONE>, 'GdipGetHatchBackgroundColor', \ + GdipGetHatchForegroundColor, <NONE>, 'GdipGetHatchForegroundColor', \ + GdipGetHatchStyle, <NONE>, 'GdipGetHatchStyle', \ + GdipGetHemfFromMetafile, <NONE>, 'GdipGetHemfFromMetafile', \ + GdipGetImageAttributesAdjustedPalette, <NONE>, 'GdipGetImageAttributesAdjustedPalette', \ + GdipGetImageBounds, <NONE>, 'GdipGetImageBounds', \ + GdipGetImageDecoders, <NONE>, 'GdipGetImageDecoders', \ + GdipGetImageDecodersSize, <NONE>, 'GdipGetImageDecodersSize', \ + GdipGetImageDimension, <NONE>, 'GdipGetImageDimension', \ + GdipGetImageEncoders, <NONE>, 'GdipGetImageEncoders', \ + GdipGetImageEncodersSize, <NONE>, 'GdipGetImageEncodersSize', \ + GdipGetImageFlags, <NONE>, 'GdipGetImageFlags', \ + GdipGetImageGraphicsContext, <NONE>, 'GdipGetImageGraphicsContext', \ + GdipGetImageHeight, <NONE>, 'GdipGetImageHeight', \ + GdipGetImageHorizontalResolution, <NONE>, 'GdipGetImageHorizontalResolution', \ + GdipGetImageItemData, <NONE>, 'GdipGetImageItemData', \ + GdipGetImagePalette, <NONE>, 'GdipGetImagePalette', \ + GdipGetImagePaletteSize, <NONE>, 'GdipGetImagePaletteSize', \ + GdipGetImagePixelFormat, <NONE>, 'GdipGetImagePixelFormat', \ + GdipGetImageRawFormat, <NONE>, 'GdipGetImageRawFormat', \ + GdipGetImageThumbnail, <NONE>, 'GdipGetImageThumbnail', \ + GdipGetImageType, <NONE>, 'GdipGetImageType', \ + GdipGetImageVerticalResolution, <NONE>, 'GdipGetImageVerticalResolution', \ + GdipGetImageWidth, <NONE>, 'GdipGetImageWidth', \ + GdipGetInterpolationMode, <NONE>, 'GdipGetInterpolationMode', \ + GdipGetLineBlend, <NONE>, 'GdipGetLineBlend', \ + GdipGetLineBlendCount, <NONE>, 'GdipGetLineBlendCount', \ + GdipGetLineColors, <NONE>, 'GdipGetLineColors', \ + GdipGetLineGammaCorrection, <NONE>, 'GdipGetLineGammaCorrection', \ + GdipGetLinePresetBlend, <NONE>, 'GdipGetLinePresetBlend', \ + GdipGetLinePresetBlendCount, <NONE>, 'GdipGetLinePresetBlendCount', \ + GdipGetLineRect, <NONE>, 'GdipGetLineRect', \ + GdipGetLineRectI, <NONE>, 'GdipGetLineRectI', \ + GdipGetLineSpacing, <NONE>, 'GdipGetLineSpacing', \ + GdipGetLineTransform, <NONE>, 'GdipGetLineTransform', \ + GdipGetLineWrapMode, <NONE>, 'GdipGetLineWrapMode', \ + GdipGetLogFontA, <NONE>, 'GdipGetLogFontA', \ + GdipGetLogFontW, <NONE>, 'GdipGetLogFontW', \ + GdipGetMatrixElements, <NONE>, 'GdipGetMatrixElements', \ + GdipGetMetafileDownLevelRasterizationLimit, <NONE>, 'GdipGetMetafileDownLevelRasterizationLimit', \ + GdipGetMetafileHeaderFromEmf, <NONE>, 'GdipGetMetafileHeaderFromEmf', \ + GdipGetMetafileHeaderFromFile, <NONE>, 'GdipGetMetafileHeaderFromFile', \ + GdipGetMetafileHeaderFromMetafile, <NONE>, 'GdipGetMetafileHeaderFromMetafile', \ + GdipGetMetafileHeaderFromStream, <NONE>, 'GdipGetMetafileHeaderFromStream', \ + GdipGetMetafileHeaderFromWmf, <NONE>, 'GdipGetMetafileHeaderFromWmf', \ + GdipGetNearestColor, <NONE>, 'GdipGetNearestColor', \ + GdipGetPageScale, <NONE>, 'GdipGetPageScale', \ + GdipGetPageUnit, <NONE>, 'GdipGetPageUnit', \ + GdipGetPathData, <NONE>, 'GdipGetPathData', \ + GdipGetPathFillMode, <NONE>, 'GdipGetPathFillMode', \ + GdipGetPathGradientBlend, <NONE>, 'GdipGetPathGradientBlend', \ + GdipGetPathGradientBlendCount, <NONE>, 'GdipGetPathGradientBlendCount', \ + GdipGetPathGradientCenterColor, <NONE>, 'GdipGetPathGradientCenterColor', \ + GdipGetPathGradientCenterPoint, <NONE>, 'GdipGetPathGradientCenterPoint', \ + GdipGetPathGradientCenterPointI, <NONE>, 'GdipGetPathGradientCenterPointI', \ + GdipGetPathGradientFocusScales, <NONE>, 'GdipGetPathGradientFocusScales', \ + GdipGetPathGradientGammaCorrection, <NONE>, 'GdipGetPathGradientGammaCorrection', \ + GdipGetPathGradientPath, <NONE>, 'GdipGetPathGradientPath', \ + GdipGetPathGradientPointCount, <NONE>, 'GdipGetPathGradientPointCount', \ + GdipGetPathGradientPresetBlend, <NONE>, 'GdipGetPathGradientPresetBlend', \ + GdipGetPathGradientPresetBlendCount, <NONE>, 'GdipGetPathGradientPresetBlendCount', \ + GdipGetPathGradientRect, <NONE>, 'GdipGetPathGradientRect', \ + GdipGetPathGradientRectI, <NONE>, 'GdipGetPathGradientRectI', \ + GdipGetPathGradientSurroundColorCount, <NONE>, 'GdipGetPathGradientSurroundColorCount', \ + GdipGetPathGradientSurroundColorsWithCount, <NONE>, 'GdipGetPathGradientSurroundColorsWithCount', \ + GdipGetPathGradientTransform, <NONE>, 'GdipGetPathGradientTransform', \ + GdipGetPathGradientWrapMode, <NONE>, 'GdipGetPathGradientWrapMode', \ + GdipGetPathLastPoint, <NONE>, 'GdipGetPathLastPoint', \ + GdipGetPathPoints, <NONE>, 'GdipGetPathPoints', \ + GdipGetPathPointsI, <NONE>, 'GdipGetPathPointsI', \ + GdipGetPathTypes, <NONE>, 'GdipGetPathTypes', \ + GdipGetPathWorldBounds, <NONE>, 'GdipGetPathWorldBounds', \ + GdipGetPathWorldBoundsI, <NONE>, 'GdipGetPathWorldBoundsI', \ + GdipGetPenBrushFill, <NONE>, 'GdipGetPenBrushFill', \ + GdipGetPenColor, <NONE>, 'GdipGetPenColor', \ + GdipGetPenCompoundArray, <NONE>, 'GdipGetPenCompoundArray', \ + GdipGetPenCompoundCount, <NONE>, 'GdipGetPenCompoundCount', \ + GdipGetPenCustomEndCap, <NONE>, 'GdipGetPenCustomEndCap', \ + GdipGetPenCustomStartCap, <NONE>, 'GdipGetPenCustomStartCap', \ + GdipGetPenDashArray, <NONE>, 'GdipGetPenDashArray', \ + GdipGetPenDashCap197819, <NONE>, 'GdipGetPenDashCap197819', \ + GdipGetPenDashCount, <NONE>, 'GdipGetPenDashCount', \ + GdipGetPenDashOffset, <NONE>, 'GdipGetPenDashOffset', \ + GdipGetPenDashStyle, <NONE>, 'GdipGetPenDashStyle', \ + GdipGetPenEndCap, <NONE>, 'GdipGetPenEndCap', \ + GdipGetPenFillType, <NONE>, 'GdipGetPenFillType', \ + GdipGetPenLineJoin, <NONE>, 'GdipGetPenLineJoin', \ + GdipGetPenMiterLimit, <NONE>, 'GdipGetPenMiterLimit', \ + GdipGetPenMode, <NONE>, 'GdipGetPenMode', \ + GdipGetPenStartCap, <NONE>, 'GdipGetPenStartCap', \ + GdipGetPenTransform, <NONE>, 'GdipGetPenTransform', \ + GdipGetPenUnit, <NONE>, 'GdipGetPenUnit', \ + GdipGetPenWidth, <NONE>, 'GdipGetPenWidth', \ + GdipGetPixelOffsetMode, <NONE>, 'GdipGetPixelOffsetMode', \ + GdipGetPointCount, <NONE>, 'GdipGetPointCount', \ + GdipGetPropertyCount, <NONE>, 'GdipGetPropertyCount', \ + GdipGetPropertyIdList, <NONE>, 'GdipGetPropertyIdList', \ + GdipGetPropertyItem, <NONE>, 'GdipGetPropertyItem', \ + GdipGetPropertyItemSize, <NONE>, 'GdipGetPropertyItemSize', \ + GdipGetPropertySize, <NONE>, 'GdipGetPropertySize', \ + GdipGetRegionBounds, <NONE>, 'GdipGetRegionBounds', \ + GdipGetRegionBoundsI, <NONE>, 'GdipGetRegionBoundsI', \ + GdipGetRegionData, <NONE>, 'GdipGetRegionData', \ + GdipGetRegionDataSize, <NONE>, 'GdipGetRegionDataSize', \ + GdipGetRegionHRgn, <NONE>, 'GdipGetRegionHRgn', \ + GdipGetRegionScans, <NONE>, 'GdipGetRegionScans', \ + GdipGetRegionScansCount, <NONE>, 'GdipGetRegionScansCount', \ + GdipGetRegionScansI, <NONE>, 'GdipGetRegionScansI', \ + GdipGetRenderingOrigin, <NONE>, 'GdipGetRenderingOrigin', \ + GdipGetSmoothingMode, <NONE>, 'GdipGetSmoothingMode', \ + GdipGetSolidFillColor, <NONE>, 'GdipGetSolidFillColor', \ + GdipGetStringFormatAlign, <NONE>, 'GdipGetStringFormatAlign', \ + GdipGetStringFormatDigitSubstitution, <NONE>, 'GdipGetStringFormatDigitSubstitution', \ + GdipGetStringFormatFlags, <NONE>, 'GdipGetStringFormatFlags', \ + GdipGetStringFormatHotkeyPrefix, <NONE>, 'GdipGetStringFormatHotkeyPrefix', \ + GdipGetStringFormatLineAlign, <NONE>, 'GdipGetStringFormatLineAlign', \ + GdipGetStringFormatMeasurableCharacterRangeCount, <NONE>, 'GdipGetStringFormatMeasurableCharacterRangeCount', \ + GdipGetStringFormatTabStopCount, <NONE>, 'GdipGetStringFormatTabStopCount', \ + GdipGetStringFormatTabStops, <NONE>, 'GdipGetStringFormatTabStops', \ + GdipGetStringFormatTrimming, <NONE>, 'GdipGetStringFormatTrimming', \ + GdipGetTextContrast, <NONE>, 'GdipGetTextContrast', \ + GdipGetTextRenderingHint, <NONE>, 'GdipGetTextRenderingHint', \ + GdipGetTextureImage, <NONE>, 'GdipGetTextureImage', \ + GdipGetTextureTransform, <NONE>, 'GdipGetTextureTransform', \ + GdipGetTextureWrapMode, <NONE>, 'GdipGetTextureWrapMode', \ + GdipGetVisibleClipBounds, <NONE>, 'GdipGetVisibleClipBounds', \ + GdipGetVisibleClipBoundsI, <NONE>, 'GdipGetVisibleClipBoundsI', \ + GdipGetWorldTransform, <NONE>, 'GdipGetWorldTransform', \ + GdipGraphicsClear, <NONE>, 'GdipGraphicsClear', \ + GdipGraphicsSetAbort, <NONE>, 'GdipGraphicsSetAbort', \ + GdipImageForceValidation, <NONE>, 'GdipImageForceValidation', \ + GdipImageGetFrameCount, <NONE>, 'GdipImageGetFrameCount', \ + GdipImageGetFrameDimensionsCount, <NONE>, 'GdipImageGetFrameDimensionsCount', \ + GdipImageGetFrameDimensionsList, <NONE>, 'GdipImageGetFrameDimensionsList', \ + GdipImageRotateFlip, <NONE>, 'GdipImageRotateFlip', \ + GdipImageSelectActiveFrame, <NONE>, 'GdipImageSelectActiveFrame', \ + GdipImageSetAbort, <NONE>, 'GdipImageSetAbort', \ + GdipInitializePalette, <NONE>, 'GdipInitializePalette', \ + GdipInvertMatrix, <NONE>, 'GdipInvertMatrix', \ + GdipIsClipEmpty, <NONE>, 'GdipIsClipEmpty', \ + GdipIsEmptyRegion, <NONE>, 'GdipIsEmptyRegion', \ + GdipIsEqualRegion, <NONE>, 'GdipIsEqualRegion', \ + GdipIsInfiniteRegion, <NONE>, 'GdipIsInfiniteRegion', \ + GdipIsMatrixEqual, <NONE>, 'GdipIsMatrixEqual', \ + GdipIsMatrixIdentity, <NONE>, 'GdipIsMatrixIdentity', \ + GdipIsMatrixInvertible, <NONE>, 'GdipIsMatrixInvertible', \ + GdipIsOutlineVisiblePathPoint, <NONE>, 'GdipIsOutlineVisiblePathPoint', \ + GdipIsOutlineVisiblePathPointI, <NONE>, 'GdipIsOutlineVisiblePathPointI', \ + GdipIsStyleAvailable, <NONE>, 'GdipIsStyleAvailable', \ + GdipIsVisibleClipEmpty, <NONE>, 'GdipIsVisibleClipEmpty', \ + GdipIsVisiblePathPoint, <NONE>, 'GdipIsVisiblePathPoint', \ + GdipIsVisiblePathPointI, <NONE>, 'GdipIsVisiblePathPointI', \ + GdipIsVisiblePoint, <NONE>, 'GdipIsVisiblePoint', \ + GdipIsVisiblePointI, <NONE>, 'GdipIsVisiblePointI', \ + GdipIsVisibleRect, <NONE>, 'GdipIsVisibleRect', \ + GdipIsVisibleRectI, <NONE>, 'GdipIsVisibleRectI', \ + GdipIsVisibleRegionPoint, <NONE>, 'GdipIsVisibleRegionPoint', \ + GdipIsVisibleRegionPointI, <NONE>, 'GdipIsVisibleRegionPointI', \ + GdipIsVisibleRegionRect, <NONE>, 'GdipIsVisibleRegionRect', \ + GdipIsVisibleRegionRectI, <NONE>, 'GdipIsVisibleRegionRectI', \ + GdipLoadImageFromFile, <NONE>, 'GdipLoadImageFromFile', \ + GdipLoadImageFromFileICM, <NONE>, 'GdipLoadImageFromFileICM', \ + GdipLoadImageFromStream, <NONE>, 'GdipLoadImageFromStream', \ + GdipLoadImageFromStreamICM, <NONE>, 'GdipLoadImageFromStreamICM', \ + GdipMeasureCharacterRanges, <NONE>, 'GdipMeasureCharacterRanges', \ + GdipMeasureDriverString, <NONE>, 'GdipMeasureDriverString', \ + GdipMeasureString, <NONE>, 'GdipMeasureString', \ + GdipMultiplyLineTransform, <NONE>, 'GdipMultiplyLineTransform', \ + GdipMultiplyMatrix, <NONE>, 'GdipMultiplyMatrix', \ + GdipMultiplyPathGradientTransform, <NONE>, 'GdipMultiplyPathGradientTransform', \ + GdipMultiplyPenTransform, <NONE>, 'GdipMultiplyPenTransform', \ + GdipMultiplyTextureTransform, <NONE>, 'GdipMultiplyTextureTransform', \ + GdipMultiplyWorldTransform, <NONE>, 'GdipMultiplyWorldTransform', \ + GdipNewInstalledFontCollection, <NONE>, 'GdipNewInstalledFontCollection', \ + GdipNewPrivateFontCollection, <NONE>, 'GdipNewPrivateFontCollection', \ + GdipPathIterCopyData, <NONE>, 'GdipPathIterCopyData', \ + GdipPathIterEnumerate, <NONE>, 'GdipPathIterEnumerate', \ + GdipPathIterGetCount, <NONE>, 'GdipPathIterGetCount', \ + GdipPathIterGetSubpathCount, <NONE>, 'GdipPathIterGetSubpathCount', \ + GdipPathIterHasCurve, <NONE>, 'GdipPathIterHasCurve', \ + GdipPathIterIsValid, <NONE>, 'GdipPathIterIsValid', \ + GdipPathIterNextMarker, <NONE>, 'GdipPathIterNextMarker', \ + GdipPathIterNextMarkerPath, <NONE>, 'GdipPathIterNextMarkerPath', \ + GdipPathIterNextPathType, <NONE>, 'GdipPathIterNextPathType', \ + GdipPathIterNextSubpath, <NONE>, 'GdipPathIterNextSubpath', \ + GdipPathIterNextSubpathPath, <NONE>, 'GdipPathIterNextSubpathPath', \ + GdipPathIterRewind, <NONE>, 'GdipPathIterRewind', \ + GdipPlayMetafileRecord, <NONE>, 'GdipPlayMetafileRecord', \ + GdipPlayTSClientRecord, <NONE>, 'GdipPlayTSClientRecord', \ + GdipPrivateAddFontFile, <NONE>, 'GdipPrivateAddFontFile', \ + GdipPrivateAddMemoryFont, <NONE>, 'GdipPrivateAddMemoryFont', \ + GdipRecordMetafile, <NONE>, 'GdipRecordMetafile', \ + GdipRecordMetafileFileName, <NONE>, 'GdipRecordMetafileFileName', \ + GdipRecordMetafileFileNameI, <NONE>, 'GdipRecordMetafileFileNameI', \ + GdipRecordMetafileI, <NONE>, 'GdipRecordMetafileI', \ + GdipRecordMetafileStream, <NONE>, 'GdipRecordMetafileStream', \ + GdipRecordMetafileStreamI, <NONE>, 'GdipRecordMetafileStreamI', \ + GdipReleaseDC, <NONE>, 'GdipReleaseDC', \ + GdipRemovePropertyItem, <NONE>, 'GdipRemovePropertyItem', \ + GdipResetClip, <NONE>, 'GdipResetClip', \ + GdipResetImageAttributes, <NONE>, 'GdipResetImageAttributes', \ + GdipResetLineTransform, <NONE>, 'GdipResetLineTransform', \ + GdipResetPageTransform, <NONE>, 'GdipResetPageTransform', \ + GdipResetPath, <NONE>, 'GdipResetPath', \ + GdipResetPathGradientTransform, <NONE>, 'GdipResetPathGradientTransform', \ + GdipResetPenTransform, <NONE>, 'GdipResetPenTransform', \ + GdipResetTextureTransform, <NONE>, 'GdipResetTextureTransform', \ + GdipResetWorldTransform, <NONE>, 'GdipResetWorldTransform', \ + GdipRestoreGraphics, <NONE>, 'GdipRestoreGraphics', \ + GdipReversePath, <NONE>, 'GdipReversePath', \ + GdipRotateLineTransform, <NONE>, 'GdipRotateLineTransform', \ + GdipRotateMatrix, <NONE>, 'GdipRotateMatrix', \ + GdipRotatePathGradientTransform, <NONE>, 'GdipRotatePathGradientTransform', \ + GdipRotatePenTransform, <NONE>, 'GdipRotatePenTransform', \ + GdipRotateTextureTransform, <NONE>, 'GdipRotateTextureTransform', \ + GdipRotateWorldTransform, <NONE>, 'GdipRotateWorldTransform', \ + GdipSaveAdd, <NONE>, 'GdipSaveAdd', \ + GdipSaveAddImage, <NONE>, 'GdipSaveAddImage', \ + GdipSaveGraphics, <NONE>, 'GdipSaveGraphics', \ + GdipSaveImageToFile, <NONE>, 'GdipSaveImageToFile', \ + GdipSaveImageToStream, <NONE>, 'GdipSaveImageToStream', \ + GdipScaleLineTransform, <NONE>, 'GdipScaleLineTransform', \ + GdipScaleMatrix, <NONE>, 'GdipScaleMatrix', \ + GdipScalePathGradientTransform, <NONE>, 'GdipScalePathGradientTransform', \ + GdipScalePenTransform, <NONE>, 'GdipScalePenTransform', \ + GdipScaleTextureTransform, <NONE>, 'GdipScaleTextureTransform', \ + GdipScaleWorldTransform, <NONE>, 'GdipScaleWorldTransform', \ + GdipSetAdjustableArrowCapFillState, <NONE>, 'GdipSetAdjustableArrowCapFillState', \ + GdipSetAdjustableArrowCapHeight, <NONE>, 'GdipSetAdjustableArrowCapHeight', \ + GdipSetAdjustableArrowCapMiddleInset, <NONE>, 'GdipSetAdjustableArrowCapMiddleInset', \ + GdipSetAdjustableArrowCapWidth, <NONE>, 'GdipSetAdjustableArrowCapWidth', \ + GdipSetClipGraphics, <NONE>, 'GdipSetClipGraphics', \ + GdipSetClipHrgn, <NONE>, 'GdipSetClipHrgn', \ + GdipSetClipPath, <NONE>, 'GdipSetClipPath', \ + GdipSetClipRect, <NONE>, 'GdipSetClipRect', \ + GdipSetClipRectI, <NONE>, 'GdipSetClipRectI', \ + GdipSetClipRegion, <NONE>, 'GdipSetClipRegion', \ + GdipSetCompositingMode, <NONE>, 'GdipSetCompositingMode', \ + GdipSetCompositingQuality, <NONE>, 'GdipSetCompositingQuality', \ + GdipSetCustomLineCapBaseCap, <NONE>, 'GdipSetCustomLineCapBaseCap', \ + GdipSetCustomLineCapBaseInset, <NONE>, 'GdipSetCustomLineCapBaseInset', \ + GdipSetCustomLineCapStrokeCaps, <NONE>, 'GdipSetCustomLineCapStrokeCaps', \ + GdipSetCustomLineCapStrokeJoin, <NONE>, 'GdipSetCustomLineCapStrokeJoin', \ + GdipSetCustomLineCapWidthScale, <NONE>, 'GdipSetCustomLineCapWidthScale', \ + GdipSetEffectParameters, <NONE>, 'GdipSetEffectParameters', \ + GdipSetEmpty, <NONE>, 'GdipSetEmpty', \ + GdipSetImageAttributesCachedBackground, <NONE>, 'GdipSetImageAttributesCachedBackground', \ + GdipSetImageAttributesColorKeys, <NONE>, 'GdipSetImageAttributesColorKeys', \ + GdipSetImageAttributesColorMatrix, <NONE>, 'GdipSetImageAttributesColorMatrix', \ + GdipSetImageAttributesGamma, <NONE>, 'GdipSetImageAttributesGamma', \ + GdipSetImageAttributesNoOp, <NONE>, 'GdipSetImageAttributesNoOp', \ + GdipSetImageAttributesOutputChannel, <NONE>, 'GdipSetImageAttributesOutputChannel', \ + GdipSetImageAttributesOutputChannelColorProfile, <NONE>, 'GdipSetImageAttributesOutputChannelColorProfile', \ + GdipSetImageAttributesRemapTable, <NONE>, 'GdipSetImageAttributesRemapTable', \ + GdipSetImageAttributesThreshold, <NONE>, 'GdipSetImageAttributesThreshold', \ + GdipSetImageAttributesToIdentity, <NONE>, 'GdipSetImageAttributesToIdentity', \ + GdipSetImageAttributesWrapMode, <NONE>, 'GdipSetImageAttributesWrapMode', \ + GdipSetImagePalette, <NONE>, 'GdipSetImagePalette', \ + GdipSetInfinite, <NONE>, 'GdipSetInfinite', \ + GdipSetInterpolationMode, <NONE>, 'GdipSetInterpolationMode', \ + GdipSetLineBlend, <NONE>, 'GdipSetLineBlend', \ + GdipSetLineColors, <NONE>, 'GdipSetLineColors', \ + GdipSetLineGammaCorrection, <NONE>, 'GdipSetLineGammaCorrection', \ + GdipSetLineLinearBlend, <NONE>, 'GdipSetLineLinearBlend', \ + GdipSetLinePresetBlend, <NONE>, 'GdipSetLinePresetBlend', \ + GdipSetLineSigmaBlend, <NONE>, 'GdipSetLineSigmaBlend', \ + GdipSetLineTransform, <NONE>, 'GdipSetLineTransform', \ + GdipSetLineWrapMode, <NONE>, 'GdipSetLineWrapMode', \ + GdipSetMatrixElements, <NONE>, 'GdipSetMatrixElements', \ + GdipSetMetafileDownLevelRasterizationLimit, <NONE>, 'GdipSetMetafileDownLevelRasterizationLimit', \ + GdipSetPageScale, <NONE>, 'GdipSetPageScale', \ + GdipSetPageUnit, <NONE>, 'GdipSetPageUnit', \ + GdipSetPathFillMode, <NONE>, 'GdipSetPathFillMode', \ + GdipSetPathGradientBlend, <NONE>, 'GdipSetPathGradientBlend', \ + GdipSetPathGradientCenterColor, <NONE>, 'GdipSetPathGradientCenterColor', \ + GdipSetPathGradientCenterPoint, <NONE>, 'GdipSetPathGradientCenterPoint', \ + GdipSetPathGradientCenterPointI, <NONE>, 'GdipSetPathGradientCenterPointI', \ + GdipSetPathGradientFocusScales, <NONE>, 'GdipSetPathGradientFocusScales', \ + GdipSetPathGradientGammaCorrection, <NONE>, 'GdipSetPathGradientGammaCorrection', \ + GdipSetPathGradientLinearBlend, <NONE>, 'GdipSetPathGradientLinearBlend', \ + GdipSetPathGradientPath, <NONE>, 'GdipSetPathGradientPath', \ + GdipSetPathGradientPresetBlend, <NONE>, 'GdipSetPathGradientPresetBlend', \ + GdipSetPathGradientSigmaBlend, <NONE>, 'GdipSetPathGradientSigmaBlend', \ + GdipSetPathGradientSurroundColorsWithCount, <NONE>, 'GdipSetPathGradientSurroundColorsWithCount', \ + GdipSetPathGradientTransform, <NONE>, 'GdipSetPathGradientTransform', \ + GdipSetPathGradientWrapMode, <NONE>, 'GdipSetPathGradientWrapMode', \ + GdipSetPathMarker, <NONE>, 'GdipSetPathMarker', \ + GdipSetPenBrushFill, <NONE>, 'GdipSetPenBrushFill', \ + GdipSetPenColor, <NONE>, 'GdipSetPenColor', \ + GdipSetPenCompoundArray, <NONE>, 'GdipSetPenCompoundArray', \ + GdipSetPenCustomEndCap, <NONE>, 'GdipSetPenCustomEndCap', \ + GdipSetPenCustomStartCap, <NONE>, 'GdipSetPenCustomStartCap', \ + GdipSetPenDashArray, <NONE>, 'GdipSetPenDashArray', \ + GdipSetPenDashCap197819, <NONE>, 'GdipSetPenDashCap197819', \ + GdipSetPenDashOffset, <NONE>, 'GdipSetPenDashOffset', \ + GdipSetPenDashStyle, <NONE>, 'GdipSetPenDashStyle', \ + GdipSetPenEndCap, <NONE>, 'GdipSetPenEndCap', \ + GdipSetPenLineCap197819, <NONE>, 'GdipSetPenLineCap197819', \ + GdipSetPenLineJoin, <NONE>, 'GdipSetPenLineJoin', \ + GdipSetPenMiterLimit, <NONE>, 'GdipSetPenMiterLimit', \ + GdipSetPenMode, <NONE>, 'GdipSetPenMode', \ + GdipSetPenStartCap, <NONE>, 'GdipSetPenStartCap', \ + GdipSetPenTransform, <NONE>, 'GdipSetPenTransform', \ + GdipSetPenUnit, <NONE>, 'GdipSetPenUnit', \ + GdipSetPenWidth, <NONE>, 'GdipSetPenWidth', \ + GdipSetPixelOffsetMode, <NONE>, 'GdipSetPixelOffsetMode', \ + GdipSetPropertyItem, <NONE>, 'GdipSetPropertyItem', \ + GdipSetRenderingOrigin, <NONE>, 'GdipSetRenderingOrigin', \ + GdipSetSmoothingMode, <NONE>, 'GdipSetSmoothingMode', \ + GdipSetSolidFillColor, <NONE>, 'GdipSetSolidFillColor', \ + GdipSetStringFormatAlign, <NONE>, 'GdipSetStringFormatAlign', \ + GdipSetStringFormatDigitSubstitution, <NONE>, 'GdipSetStringFormatDigitSubstitution', \ + GdipSetStringFormatFlags, <NONE>, 'GdipSetStringFormatFlags', \ + GdipSetStringFormatHotkeyPrefix, <NONE>, 'GdipSetStringFormatHotkeyPrefix', \ + GdipSetStringFormatLineAlign, <NONE>, 'GdipSetStringFormatLineAlign', \ + GdipSetStringFormatMeasurableCharacterRanges, <NONE>, 'GdipSetStringFormatMeasurableCharacterRanges', \ + GdipSetStringFormatTabStops, <NONE>, 'GdipSetStringFormatTabStops', \ + GdipSetStringFormatTrimming, <NONE>, 'GdipSetStringFormatTrimming', \ + GdipSetTextContrast, <NONE>, 'GdipSetTextContrast', \ + GdipSetTextRenderingHint, <NONE>, 'GdipSetTextRenderingHint', \ + GdipSetTextureTransform, <NONE>, 'GdipSetTextureTransform', \ + GdipSetTextureWrapMode, <NONE>, 'GdipSetTextureWrapMode', \ + GdipSetWorldTransform, <NONE>, 'GdipSetWorldTransform', \ + GdipShearMatrix, <NONE>, 'GdipShearMatrix', \ + GdipStartPathFigure, <NONE>, 'GdipStartPathFigure', \ + GdipStringFormatGetGenericDefault, <NONE>, 'GdipStringFormatGetGenericDefault', \ + GdipStringFormatGetGenericTypographic, <NONE>, 'GdipStringFormatGetGenericTypographic', \ + GdipTestControl, <NONE>, 'GdipTestControl', \ + GdipTransformMatrixPoints, <NONE>, 'GdipTransformMatrixPoints', \ + GdipTransformMatrixPointsI, <NONE>, 'GdipTransformMatrixPointsI', \ + GdipTransformPath, <NONE>, 'GdipTransformPath', \ + GdipTransformPoints, <NONE>, 'GdipTransformPoints', \ + GdipTransformPointsI, <NONE>, 'GdipTransformPointsI', \ + GdipTransformRegion, <NONE>, 'GdipTransformRegion', \ + GdipTranslateClip, <NONE>, 'GdipTranslateClip', \ + GdipTranslateClipI, <NONE>, 'GdipTranslateClipI', \ + GdipTranslateLineTransform, <NONE>, 'GdipTranslateLineTransform', \ + GdipTranslateMatrix, <NONE>, 'GdipTranslateMatrix', \ + GdipTranslatePathGradientTransform, <NONE>, 'GdipTranslatePathGradientTransform', \ + GdipTranslatePenTransform, <NONE>, 'GdipTranslatePenTransform', \ + GdipTranslateRegion, <NONE>, 'GdipTranslateRegion', \ + GdipTranslateRegionI, <NONE>, 'GdipTranslateRegionI', \ + GdipTranslateTextureTransform, <NONE>, 'GdipTranslateTextureTransform', \ + GdipTranslateWorldTransform, <NONE>, 'GdipTranslateWorldTransform', \ + GdipVectorTransformMatrixPoints, <NONE>, 'GdipVectorTransformMatrixPoints', \ + GdipVectorTransformMatrixPointsI, <NONE>, 'GdipVectorTransformMatrixPointsI', \ + GdipWarpPath, <NONE>, 'GdipWarpPath', \ + GdipWidenPath, <NONE>, 'GdipWidenPath', \ + GdipWindingModeOutline, <NONE>, 'GdipWindingModeOutline', \ + GdiplusNotificationHook, <NONE>, 'GdiplusNotificationHook', \ + GdiplusNotificationUnhook, <NONE>, 'GdiplusNotificationUnhook', \ + GdiplusShutdown, <NONE>, 'GdiplusShutdown', \ + GdiplusStartup, <NONE>, 'GdiplusStartup' ADDED freshlib/imports/Win32/kernel32.inc Index: freshlib/imports/Win32/kernel32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/kernel32.inc @@ -0,0 +1,987 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: kernel32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto kernel32, \ + ActivateActCtx, <NONE>, 'ActivateActCtx', \ + AddAtomA, <.lpString>, 'AddAtomA', \ + AddAtomW, <.lpString>, 'AddAtomW', \ + AddConsoleAliasA, <NONE>, 'AddConsoleAliasA', \ + AddConsoleAliasW, <NONE>, 'AddConsoleAliasW', \ + AddLocalAlternateComputerNameA, <NONE>, 'AddLocalAlternateComputerNameA', \ + AddLocalAlternateComputerNameW, <NONE>, 'AddLocalAlternateComputerNameW', \ + AddRefActCtx, <NONE>, 'AddRefActCtx', \ + AddVectoredExceptionHandler, <NONE>, 'AddVectoredExceptionHandler', \ + AllocConsole, <VOID>, 'AllocConsole', \ + AllocateUserPhysicalPages, <.hProcess, .NumberOfPages, .PageArray>, 'AllocateUserPhysicalPages', \ + AreFileApisANSI, <VOID>, 'AreFileApisANSI', \ + AssignProcessToJobObject, <.hJob, .hProcess>, 'AssignProcessToJobObject', \ + AttachConsole, <NONE>, 'AttachConsole', \ + BackupRead, <.hFile, .lpBuffer, .nNumberOfBytesToRead, .lpNumberOfBytesRead, .bAbort, .bProcessSecurity, .lpContext>, 'BackupRead', \ + BackupSeek, <.hFile, .dwLowBytesToSeek, .dwHighBytesToSeek, .lpdwLowByteSeeked, .lpdwHighByteSeeked, .lpContext>, 'BackupSeek', \ + BackupWrite, <.hFile, .lpBuffer, .nNumberOfBytesToWrite, .lpNumberOfBytesWritten, .bAbort, .bProcessSecurity, .lpContext>, 'BackupWrite', \ + BaseCheckAppcompatCache, <NONE>, 'BaseCheckAppcompatCache', \ + BaseCleanupAppcompatCache, <NONE>, 'BaseCleanupAppcompatCache', \ + BaseCleanupAppcompatCacheSupport, <NONE>, 'BaseCleanupAppcompatCacheSupport', \ + BaseDumpAppcompatCache, <NONE>, 'BaseDumpAppcompatCache', \ + BaseFlushAppcompatCache, <NONE>, 'BaseFlushAppcompatCache', \ + BaseInitAppcompatCache, <NONE>, 'BaseInitAppcompatCache', \ + BaseInitAppcompatCacheSupport, <NONE>, 'BaseInitAppcompatCacheSupport', \ + BaseProcessInitPostImport, <NONE>, 'BaseProcessInitPostImport', \ + BaseQueryModuleData, <NONE>, 'BaseQueryModuleData', \ + BaseUpdateAppcompatCache, <NONE>, 'BaseUpdateAppcompatCache', \ + BasepCheckWinSaferRestrictions, <NONE>, 'BasepCheckWinSaferRestrictions', \ + Beep, <.dwFreq, .dwDuration>, 'Beep', \ + BeginUpdateResourceA, <.pFileName, .bDeleteExistingResources>, 'BeginUpdateResourceA', \ + BeginUpdateResourceW, <.pFileName, .bDeleteExistingResources>, 'BeginUpdateResourceW', \ + BindIoCompletionCallback, <.FileHandle, .lFunction, .Flags>, 'BindIoCompletionCallback', \ + BuildCommDCBA, <.lpDef, .lpDCB>, 'BuildCommDCBA', \ + BuildCommDCBAndTimeoutsA, <.lpDef, .lpDCB, .lpCommTimeouts>, 'BuildCommDCBAndTimeoutsA', \ + BuildCommDCBAndTimeoutsW, <.lpDef, .lpDCB, .lpCommTimeouts>, 'BuildCommDCBAndTimeoutsW', \ + BuildCommDCBW, <.lpDef, .lpDCB>, 'BuildCommDCBW', \ + CallNamedPipeA, <.lpNamedPipeName, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesRead, .nTimeOut>, 'CallNamedPipeA', \ + CallNamedPipeW, <.lpNamedPipeName, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesRead, .nTimeOut>, 'CallNamedPipeW', \ + CancelDeviceWakeupRequest, <.hDevice>, 'CancelDeviceWakeupRequest', \ + CancelIo, <.hFile>, 'CancelIo', \ + CancelTimerQueueTimer, <.TimerQueue, .Timer>, 'CancelTimerQueueTimer', \ + CancelWaitableTimer, <.hTimer>, 'CancelWaitableTimer', \ + ChangeTimerQueueTimer, <.TimerQueue, .Timer, .DueTime, .Period>, 'ChangeTimerQueueTimer', \ + CheckNameLegalDOS8Dot3A, <NONE>, 'CheckNameLegalDOS8Dot3A', \ + CheckNameLegalDOS8Dot3W, <NONE>, 'CheckNameLegalDOS8Dot3W', \ + CheckRemoteDebuggerPresent, <NONE>, 'CheckRemoteDebuggerPresent', \ + ClearCommBreak, <.nCid>, 'ClearCommBreak', \ + ClearCommError, <.hFile, .lpErrors, .lpStat>, 'ClearCommError', \ + CloseConsoleHandle, <NONE>, 'CloseConsoleHandle', \ + CloseHandle, <.hObject>, 'CloseHandle', \ + CloseProfileUserMapping, <NONE>, 'CloseProfileUserMapping', \ + CmdBatNotification, <NONE>, 'CmdBatNotification', \ + CommConfigDialogA, <.lpszName, .hWnd, .lpCC>, 'CommConfigDialogA', \ + CommConfigDialogW, <.lpszName, .hWnd, .lpCC>, 'CommConfigDialogW', \ + CompareFileTime, <.lpFileTime1, .lpFileTime2>, 'CompareFileTime', \ + CompareStringA, <.Locale, .dwCmpFlags, .lpString1, .cchCount1, .lpString2, .cchCount2>, 'CompareStringA', \ + CompareStringW, <.Locale, .dwCmpFlags, .lpString1, .cchCount1, .lpString2, .cchCount2>, 'CompareStringW', \ + ConnectNamedPipe, <.hNamedPipe, .lpOverlapped>, 'ConnectNamedPipe', \ + ConsoleMenuControl, <NONE>, 'ConsoleMenuControl', \ + ContinueDebugEvent, <.dwProcessId, .dwThreadId, .dwContinueStatus>, 'ContinueDebugEvent', \ + ConvertDefaultLocale, <.Locale>, 'ConvertDefaultLocale', \ + ConvertFiberToThread, <NONE>, 'ConvertFiberToThread', \ + ConvertThreadToFiber, <.lpParameter>, 'ConvertThreadToFiber', \ + CopyFileA, <.lpExistingFileName, .lpNewFileName, .bFailIfExists>, 'CopyFileA', \ + CopyFileExA, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .pbCancel, .dwCopyFlags>, 'CopyFileExA', \ + CopyFileExW, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .pbCancel, .dwCopyFlags>, 'CopyFileExW', \ + CopyFileW, <.lpExistingFileName, .lpNewFileName, .bFailIfExists>, 'CopyFileW', \ + CopyLZFile, <.n1, .n2>, 'CopyLZFile', \ + CreateActCtxA, <NONE>, 'CreateActCtxA', \ + CreateActCtxW, <NONE>, 'CreateActCtxW', \ + CreateConsoleScreenBuffer, <.dwDesiredAccess, .dwShareMode, .lpSecurityAttributes, .dwFlags, .lpScreenBufferData>, 'CreateConsoleScreenBuffer', \ + CreateDirectoryA, <.lpPathName, .lpSecurityAttributes>, 'CreateDirectoryA', \ + CreateDirectoryExA, <.lpTemplateDirectory, .lpNewDirectory, .lpSecurityAttributes>, 'CreateDirectoryExA', \ + CreateDirectoryExW, <.lpTemplateDirectory, .lpNewDirectory, .lpSecurityAttributes>, 'CreateDirectoryExW', \ + CreateDirectoryW, <.lpPathName, .lpSecurityAttributes>, 'CreateDirectoryW', \ + CreateEventA, <.lpEventAttributes, .bManualReset, .bInitialState, .lpName>, 'CreateEventA', \ + CreateEventW, <.lpEventAttributes, .bManualReset, .bInitialState, .lpName>, 'CreateEventW', \ + CreateFiber, <.dwStackSize, .lpStartAddress, .lpParameter>, 'CreateFiber', \ + CreateFiberEx, <NONE>, 'CreateFiberEx', \ + CreateFileA, <.lpFileName, .dwDesiredAccess, .dwShareMode, .lpSecurityAttributes, .dwCreationDisposition, .dwFlagsAndAttributes, \ + .hTemplateFile>, 'CreateFileA', \ + CreateFileMappingA, <.hFile, .lpFileMappigAttributes, .flProtect, .dwMaximumSizeHigh, .dwMaximumSizeLow, .lpName>, 'CreateFileMappingA', \ + CreateFileMappingW, <.hFile, .lpFileMappigAttributes, .flProtect, .dwMaximumSizeHigh, .dwMaximumSizeLow, .lpName>, 'CreateFileMappingW', \ + CreateFileW, <.lpFileName, .dwDesiredAccess, .dwShareMode, .lpSecurityAttributes, .dwCreationDisposition, .dwFlagsAndAttributes, \ + .hTemplateFile>, 'CreateFileW', \ + CreateHardLinkA, <.lpFileName, .lpExistingFileName, .lpSecurityAttributes>, 'CreateHardLinkA', \ + CreateHardLinkW, <.lpFileName, .lpExistingFileName, .lpSecurityAttributes>, 'CreateHardLinkW', \ + CreateIoCompletionPort, <.FileHandle, .ExistingCompletionPort, .CompletionKey, .NumberOfConcurrentThreads>, 'CreateIoCompletionPort', \ + CreateJobObjectA, <.lpJobAttributes, .lpName>, 'CreateJobObjectA', \ + CreateJobObjectW, <.lpJobAttributes, .lpName>, 'CreateJobObjectW', \ + CreateJobSet, <NONE>, 'CreateJobSet', \ + CreateMailslotA, <.lpName, .nMaxMessageSize, .lReadTimeout, .lpSecurityAttributes>, 'CreateMailslotA', \ + CreateMailslotW, <.lpName, .nMaxMessageSize, .lReadTimeout, .lpSecurityAttributes>, 'CreateMailslotW', \ + CreateMemoryResourceNotification, <NONE>, 'CreateMemoryResourceNotification', \ + CreateMutexA, <.lpMutexAttributes, .bInitialOwner, .lpName>, 'CreateMutexA', \ + CreateMutexW, <.lpMutexAttributes, .bInitialOwner, .lpName>, 'CreateMutexW', \ + CreateNamedPipeA, <.lpName, .dwOpenMode, .dwPipeMode, .nMaxInstances, .nOutBufferSize, .nInBufferSize, .nDefaultTimeOut, .lpSecurityAttributes, \ + >, 'CreateNamedPipeA', \ + CreateNamedPipeW, <.lpName, .dwOpenMode, .dwPipeMode, .nMaxInstances, .nOutBufferSize, .nInBufferSize, .nDefaultTimeOut, .lpSecurityAttributes, \ + >, 'CreateNamedPipeW', \ + CreateNlsSecurityDescriptor, <NONE>, 'CreateNlsSecurityDescriptor', \ + CreatePipe, <.phReadPipe, .phWritePipe, .lpPipeAttributes, .nSize>, 'CreatePipe', \ + CreateProcessA, <.lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, .dwCreationFlags, \ + .lpEnvironment, .lpCurrentDriectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessA', \ + CreateProcessInternalA, <NONE>, 'CreateProcessInternalA', \ + CreateProcessInternalW, <NONE>, 'CreateProcessInternalW', \ + CreateProcessInternalWSecure, <NONE>, 'CreateProcessInternalWSecure', \ + CreateProcessW, <.lpApplicationName, .lpCommandLine, .lpProcessAttributes, .lpThreadAttributes, .bInheritHandles, .dwCreationFlags, \ + .lpEnvironment, .lpCurrentDriectory, .lpStartupInfo, .lpProcessInformation>, 'CreateProcessW', \ + CreateRemoteThread, <.hProcess, .lpThreadAttributes, .dwStackSize, .lpStartAddress, .lpParameter, .dwCreationFlags, .lpThreadId, \ + >, 'CreateRemoteThread', \ + CreateSemaphoreA, <.lpSemaphoreAttributes, .lInitialCount, .lMaximumCount, .lpName>, 'CreateSemaphoreA', \ + CreateSemaphoreW, <.lpSemaphoreAttributes, .lInitialCount, .lMaximumCount, .lpName>, 'CreateSemaphoreW', \ + CreateSocketHandle, <NONE>, 'CreateSocketHandle', \ + CreateTapePartition, <.hDevice, .dwPartitionMethod, .dwCount, .dwSize>, 'CreateTapePartition', \ + CreateThread, <.lpThreadAttributes, .dwStackSize, .lpStartAddress, .lpParameter, .dwCreationFlags, .lpThreadId>, 'CreateThread', \ + CreateTimerQueue, <VOID>, 'CreateTimerQueue', \ + CreateTimerQueueTimer, <NONE>, 'CreateTimerQueueTimer', \ + CreateToolhelp32Snapshot, <.dwFlags, .th32ProcessID>, 'CreateToolhelp32Snapshot', \ + CreateVirtualBuffer, <NONE>, 'CreateVirtualBuffer', \ + CreateWaitableTimerA, <.lpTimerAttributes, .bManualReset, .lpTimerName>, 'CreateWaitableTimerA', \ + CreateWaitableTimerW, <.lpTimerAttributes, .bManualReset, .lpTimerName>, 'CreateWaitableTimerW', \ + DeactivateActCtx, <NONE>, 'DeactivateActCtx', \ + DebugActiveProcess, <.dwProcessId>, 'DebugActiveProcess', \ + DebugActiveProcessStop, <NONE>, 'DebugActiveProcessStop', \ + DebugBreak, <VOID>, 'DebugBreak', \ + DebugBreakProcess, <NONE>, 'DebugBreakProcess', \ + DebugSetProcessKillOnExit, <NONE>, 'DebugSetProcessKillOnExit', \ + DecodePointer, <NONE>, 'DecodePointer', \ + DecodeSystemPointer, <NONE>, 'DecodeSystemPointer', \ + DefineDosDeviceA, <.dwFlags, .lpDeviceName, .lpTargetPath>, 'DefineDosDeviceA', \ + DefineDosDeviceW, <.dwFlags, .lpDeviceName, .lpTargetPath>, 'DefineDosDeviceW', \ + DelayLoadFailureHook, <NONE>, 'DelayLoadFailureHook', \ + DeleteAtom, <.nAtom>, 'DeleteAtom', \ + DeleteCriticalSection, <.lpCriticalSection>, 'DeleteCriticalSection', \ + DeleteFiber, <.lpFiber>, 'DeleteFiber', \ + DeleteFileA, <.lpFileName>, 'DeleteFileA', \ + DeleteFileW, <.lpFileName>, 'DeleteFileW', \ + DeleteTimerQueue, <.TimerQueue>, 'DeleteTimerQueue', \ + DeleteTimerQueueEx, <.TimerQueue, .CompletionEvent>, 'DeleteTimerQueueEx', \ + DeleteTimerQueueTimer, <.TimerQueue, .Timer, .CompletionEvent>, 'DeleteTimerQueueTimer', \ + DeleteVolumeMountPointA, <.lpszVolumeMountPoint>, 'DeleteVolumeMountPointA', \ + DeleteVolumeMountPointW, <.lpszVolumeMountPoint>, 'DeleteVolumeMountPointW', \ + DeviceIoControl, <.hDevice, .dwIoControlCode, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesReturned, .lpOverlapped, \ + >, 'DeviceIoControl', \ + DisableThreadLibraryCalls, <.hLibModule>, 'DisableThreadLibraryCalls', \ + DisconnectNamedPipe, <.hNamedPipe>, 'DisconnectNamedPipe', \ + DnsHostnameToComputerNameA, <.Hostname, .ComputerName, .nSize>, 'DnsHostnameToComputerNameA', \ + DnsHostnameToComputerNameW, <.Hostname, .ComputerName, .nSize>, 'DnsHostnameToComputerNameW', \ + DosDateTimeToFileTime, <.wFatDate, .wFatTime, .lpFileTime>, 'DosDateTimeToFileTime', \ + DosPathToSessionPathA, <.SessionId, .pInPath, .ppOutPath>, 'DosPathToSessionPathA', \ + DosPathToSessionPathW, <.SessionId, .pInPath, .ppOutPath>, 'DosPathToSessionPathW', \ + DuplicateConsoleHandle, <NONE>, 'DuplicateConsoleHandle', \ + DuplicateHandle, <.hSourceProcessHandle, .hSourceHandle, .hTargetProcessHandle, .lpTargetHandle, .dwDesiredAccess, .bInheritHandle, \ + .dwOptions>, 'DuplicateHandle', \ + EncodePointer, <NONE>, 'EncodePointer', \ + EncodeSystemPointer, <NONE>, 'EncodeSystemPointer', \ + EndUpdateResourceA, <.hUpdate, .fDiscard>, 'EndUpdateResourceA', \ + EndUpdateResourceW, <.hUpdate, .fDiscard>, 'EndUpdateResourceW', \ + EnterCriticalSection, <.lpCriticalSection>, 'EnterCriticalSection', \ + EnumCalendarInfoA, <.lpCalInfoEnumProc, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoA', \ + EnumCalendarInfoExA, <.lpCalInfoEnumProcEx, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoExA', \ + EnumCalendarInfoExW, <.lpCalInfoEnumProcEx, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoExW', \ + EnumCalendarInfoW, <.lpCalInfoEnumProc, .Locale, .Calendar, .CalType>, 'EnumCalendarInfoW', \ + EnumDateFormatsA, <.lpDateFmtEnumProc, .Locale, .dwFlags>, 'EnumDateFormatsA', \ + EnumDateFormatsExA, <.lpDateFmtEnumProcEx, .Locale, .dwFlags>, 'EnumDateFormatsExA', \ + EnumDateFormatsExW, <.lpDateFmtEnumProcEx, .Locale, .dwFlags>, 'EnumDateFormatsExW', \ + EnumDateFormatsW, <.lpDateFmtEnumProc, .Locale, .dwFlags>, 'EnumDateFormatsW', \ + EnumLanguageGroupLocalesA, <.lpLangGroupLocaleEnumProc, .LanguageGroup, .dwFlags, .lParam>, 'EnumLanguageGroupLocalesA', \ + EnumLanguageGroupLocalesW, <.lpLangGroupLocaleEnumProc, .LanguageGroup, .dwFlags, .lParam>, 'EnumLanguageGroupLocalesW', \ + EnumResourceLanguagesA, <.hModule, .lpType, .lpName, .lpEnumFunc, .lParam>, 'EnumResourceLanguagesA', \ + EnumResourceLanguagesW, <.hModule, .lpType, .lpName, .lpEnumFunc, .lParam>, 'EnumResourceLanguagesW', \ + EnumResourceNamesA, <.hModule, .lpType, .lpEnumFunc, .lParam>, 'EnumResourceNamesA', \ + EnumResourceNamesW, <.hModule, .lpType, .lpEnumFunc, .lParam>, 'EnumResourceNamesW', \ + EnumResourceTypesA, <.hModule, .lpEnumFunc, .lParam>, 'EnumResourceTypesA', \ + EnumResourceTypesW, <.hModule, .lpEnumFunc, .lParam>, 'EnumResourceTypesW', \ + EnumSystemCodePagesA, <.lpCodePageEnumProc, .dwFlags>, 'EnumSystemCodePagesA', \ + EnumSystemCodePagesW, <.lpCodePageEnumProc, .dwFlags>, 'EnumSystemCodePagesW', \ + EnumSystemGeoID, <NONE>, 'EnumSystemGeoID', \ + EnumSystemLanguageGroupsA, <.lpLanguageGroupEnumProc, .dwFlags, .lParam>, 'EnumSystemLanguageGroupsA', \ + EnumSystemLanguageGroupsW, <.lpLanguageGroupEnumProc, .dwFlags, .lParam>, 'EnumSystemLanguageGroupsW', \ + EnumSystemLocalesA, <.lpLocaleEnumProc, .dwFlags>, 'EnumSystemLocalesA', \ + EnumSystemLocalesW, <.lpLocaleEnumProc, .dwFlags>, 'EnumSystemLocalesW', \ + EnumTimeFormatsA, <.lpTimeFmtEnumProc, .Locale, .dwFlags>, 'EnumTimeFormatsA', \ + EnumTimeFormatsW, <.lpTimeFmtEnumProc, .Locale, .dwFlags>, 'EnumTimeFormatsW', \ + EnumUILanguagesA, <.lpUILanguageEnumProc, .dwFlags, .lParam>, 'EnumUILanguagesA', \ + EnumUILanguagesW, <.lpUILanguageEnumProc, .dwFlags, .lParam>, 'EnumUILanguagesW', \ + EnumerateLocalComputerNamesA, <NONE>, 'EnumerateLocalComputerNamesA', \ + EnumerateLocalComputerNamesW, <NONE>, 'EnumerateLocalComputerNamesW', \ + EraseTape, <.hDevice, .dwEraseType, .bimmediate>, 'EraseTape', \ + EscapeCommFunction, <.nCid, .nFunc>, 'EscapeCommFunction', \ + ExitProcess, <.uExitCode>, 'ExitProcess', \ + ExitThread, <.dwExitCode>, 'ExitThread', \ + ExitVDM, <NONE>, 'ExitVDM', \ + ExpandEnvironmentStringsA, <.lpSrc, .lpDst, .nSize>, 'ExpandEnvironmentStringsA', \ + ExpandEnvironmentStringsW, <.lpSrc, .lpDst, .nSize>, 'ExpandEnvironmentStringsW', \ + ExpungeConsoleCommandHistoryA, <NONE>, 'ExpungeConsoleCommandHistoryA', \ + ExpungeConsoleCommandHistoryW, <NONE>, 'ExpungeConsoleCommandHistoryW', \ + ExtendVirtualBuffer, <NONE>, 'ExtendVirtualBuffer', \ + FatalAppExitA, <.uAction, .lpMessageText>, 'FatalAppExitA', \ + FatalAppExitW, <.uAction, .lpMessageText>, 'FatalAppExitW', \ + FatalExit, <.code>, 'FatalExit', \ + FileTimeToDosDateTime, <.lpFileTime, .lpFatDate, .lpFatTime>, 'FileTimeToDosDateTime', \ + FileTimeToLocalFileTime, <.lpFileTime, .lpLocalFileTime>, 'FileTimeToLocalFileTime', \ + FileTimeToSystemTime, <.lpFileTime, .lpSystemTime>, 'FileTimeToSystemTime', \ + FillConsoleOutputAttribute, <.hConsoleOutput, .wAttribute, .nLength, .dwWriteCoord, .lpNumberOfAttrsWritten>, 'FillConsoleOutputAttribute', \ + FillConsoleOutputCharacterA, <.hConsoleOutput, .cCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'FillConsoleOutputCharacterA', \ + FillConsoleOutputCharacterW, <.hConsoleOutput, .cCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'FillConsoleOutputCharacterW', \ + FindActCtxSectionGuid, <NONE>, 'FindActCtxSectionGuid', \ + FindActCtxSectionStringA, <NONE>, 'FindActCtxSectionStringA', \ + FindActCtxSectionStringW, <NONE>, 'FindActCtxSectionStringW', \ + FindAtomA, <.lpString>, 'FindAtomA', \ + FindAtomW, <.lpString>, 'FindAtomW', \ + FindClose, <.hFindFile>, 'FindClose', \ + FindCloseChangeNotification, <.hChangeHandle>, 'FindCloseChangeNotification', \ + FindFirstChangeNotificationA, <.lpPathName, .bWatchSubtree, .dwNotifyFilter>, 'FindFirstChangeNotificationA', \ + FindFirstChangeNotificationW, <.lpPathName, .bWatchSubtree, .dwNotifyFilter>, 'FindFirstChangeNotificationW', \ + FindFirstFileA, <.lpFileName, .lpFindFileData>, 'FindFirstFileA', \ + FindFirstFileExA, <.lpFileName, .fInfoLevelId, .lpFindFileData, .fSearchOp, .lpSearchFilter, .dwAdditionalFlags>, 'FindFirstFileExA', \ + FindFirstFileExW, <.lpFileName, .fInfoLevelId, .lpFindFileData, .fSearchOp, .lpSearchFilter, .dwAdditionalFlags>, 'FindFirstFileExW', \ + FindFirstFileW, <.lpFileName, .lpFindFileData>, 'FindFirstFileW', \ + FindFirstVolumeA, <.lpszVolumeName, .cchBufferLength>, 'FindFirstVolumeA', \ + FindFirstVolumeMountPointA, <.lpszRootPathName, .lpszVolumeMountPoint, .cchBufferLength>, 'FindFirstVolumeMountPointA', \ + FindFirstVolumeMountPointW, <.lpszRootPathName, .lpszVolumeMountPoint, .cchBufferLength>, 'FindFirstVolumeMountPointW', \ + FindFirstVolumeW, <.lpszVolumeName, .cchBufferLength>, 'FindFirstVolumeW', \ + FindNextChangeNotification, <.hChangeHandle>, 'FindNextChangeNotification', \ + FindNextFileA, <.hFindFile, .lpFindFileData>, 'FindNextFileA', \ + FindNextFileW, <.hFindFile, .lpFindFileData>, 'FindNextFileW', \ + FindNextVolumeA, <.hFindVolume, .lpszVolumeName, .cchBufferLength>, 'FindNextVolumeA', \ + FindNextVolumeMountPointA, <.hFindVolumeMountPoint, .lpszVolumeMountPoint, .cchBufferLength>, 'FindNextVolumeMountPointA', \ + FindNextVolumeMountPointW, <.hFindVolumeMountPoint, .lpszVolumeMountPoint, .cchBufferLength>, 'FindNextVolumeMountPointW', \ + FindNextVolumeW, <.hFindVolume, .lpszVolumeName, .cchBufferLength>, 'FindNextVolumeW', \ + FindResourceA, <.hInstance, .lpName, .lpType>, 'FindResourceA', \ + FindResourceExA, <.hModule, .lpType, .lpName, .wLanguage>, 'FindResourceExA', \ + FindResourceExW, <.hModule, .lpType, .lpName, .wLanguage>, 'FindResourceExW', \ + FindResourceW, <.hInstance, .lpName, .lpType>, 'FindResourceW', \ + FindVolumeClose, <.hFindVolume>, 'FindVolumeClose', \ + FindVolumeMountPointClose, <.hFindVolumeMountPoint>, 'FindVolumeMountPointClose', \ + FlushConsoleInputBuffer, <.hConsoleInput>, 'FlushConsoleInputBuffer', \ + FlushFileBuffers, <.hFile>, 'FlushFileBuffers', \ + FlushInstructionCache, <.hProcess, .lpBaseAddress, .dwSize>, 'FlushInstructionCache', \ + FlushViewOfFile, <.lpBaseAddress, .dwNumberOfBytesToFlush>, 'FlushViewOfFile', \ + FoldStringA, <.dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'FoldStringA', \ + FoldStringW, <.dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'FoldStringW', \ + FormatMessageA, <.dwFlags, .lpSource, .dwMessageId, .dwLanguageId, .lpBuffer, .nSize, .Arguments>, 'FormatMessageA', \ + FormatMessageW, <.dwFlags, .lpSource, .dwMessageId, .dwLanguageId, .lpBuffer, .nSize, .Arguments>, 'FormatMessageW', \ + FreeConsole, <VOID>, 'FreeConsole', \ + FreeEnvironmentStringsA, <.lpsz>, 'FreeEnvironmentStringsA', \ + FreeEnvironmentStringsW, <.lpsz>, 'FreeEnvironmentStringsW', \ + FreeLibrary, <.hLibModule>, 'FreeLibrary', \ + FreeLibraryAndExitThread, <.hLibModule, .dwExitCode>, 'FreeLibraryAndExitThread', \ + FreeResource, <.hResData>, 'FreeResource', \ + FreeUserPhysicalPages, <.hProcess, .NumberOfPages, .PageArray>, 'FreeUserPhysicalPages', \ + FreeVirtualBuffer, <NONE>, 'FreeVirtualBuffer', \ + GenerateConsoleCtrlEvent, <.dwCtrlEvent, .dwProcessGroupId>, 'GenerateConsoleCtrlEvent', \ + GetACP, <VOID>, 'GetACP', \ + GetAtomNameA, <.nAtom, .lpBuffer, .nSize>, 'GetAtomNameA', \ + GetAtomNameW, <.nAtom, .lpBuffer, .nSize>, 'GetAtomNameW', \ + GetBinaryType, <.lpApplicationName, .lpBinaryType>, 'GetBinaryType', \ + GetBinaryTypeA, <.lpApplicationName, .lpBinaryType>, 'GetBinaryTypeA', \ + GetBinaryTypeW, <.lpApplicationName, .lpBinaryType>, 'GetBinaryTypeW', \ + GetCPFileNameFromRegistry, <NONE>, 'GetCPFileNameFromRegistry', \ + GetCPInfo, <.CodePage, .lpCPInfo>, 'GetCPInfo', \ + GetCPInfoExA, <.CodePage, .dwFlags, .lpCPInfoEx>, 'GetCPInfoExA', \ + GetCPInfoExW, <.CodePage, .dwFlags, .lpCPInfoEx>, 'GetCPInfoExW', \ + GetCalendarInfoA, <.Locale, .Calendar, .CalType, .lpCalData, .cchData, .lpValue>, 'GetCalendarInfoA', \ + GetCalendarInfoW, <.Locale, .Calendar, .CalType, .lpCalData, .cchData, .lpValue>, 'GetCalendarInfoW', \ + GetComPlusPackageInstallStatus, <NONE>, 'GetComPlusPackageInstallStatus', \ + GetCommConfig, <.hCommDev, .lpCC, .lpdwSize>, 'GetCommConfig', \ + GetCommMask, <.hFile, .lpEvtMask>, 'GetCommMask', \ + GetCommModemStatus, <.hFile, .lpModemStat>, 'GetCommModemStatus', \ + GetCommProperties, <.hFile, .lpCommProp>, 'GetCommProperties', \ + GetCommState, <.nCid, .lpDCB>, 'GetCommState', \ + GetCommTimeouts, <.hFile, .lpCommTimeouts>, 'GetCommTimeouts', \ + GetCommandLineA, <VOID>, 'GetCommandLineA', \ + GetCommandLineW, <VOID>, 'GetCommandLineW', \ + GetCompressedFileSizeA, <.lpFileName, .lpFileSizeHigh>, 'GetCompressedFileSizeA', \ + GetCompressedFileSizeW, <.lpFileName, .lpFileSizeHigh>, 'GetCompressedFileSizeW', \ + GetComputerNameA, <.lpBuffer, .nSize>, 'GetComputerNameA', \ + GetComputerNameExA, <.NameType, .lpBuffer, .nSize>, 'GetComputerNameExA', \ + GetComputerNameExW, <.NameType, .lpBuffer, .nSize>, 'GetComputerNameExW', \ + GetComputerNameW, <.lpBuffer, .nSize>, 'GetComputerNameW', \ + GetConsoleAliasA, <NONE>, 'GetConsoleAliasA', \ + GetConsoleAliasExesA, <NONE>, 'GetConsoleAliasExesA', \ + GetConsoleAliasExesLengthA, <NONE>, 'GetConsoleAliasExesLengthA', \ + GetConsoleAliasExesLengthW, <NONE>, 'GetConsoleAliasExesLengthW', \ + GetConsoleAliasExesW, <NONE>, 'GetConsoleAliasExesW', \ + GetConsoleAliasW, <NONE>, 'GetConsoleAliasW', \ + GetConsoleAliasesA, <NONE>, 'GetConsoleAliasesA', \ + GetConsoleAliasesLengthA, <NONE>, 'GetConsoleAliasesLengthA', \ + GetConsoleAliasesLengthW, <NONE>, 'GetConsoleAliasesLengthW', \ + GetConsoleAliasesW, <NONE>, 'GetConsoleAliasesW', \ + GetConsoleCP, <VOID>, 'GetConsoleCP', \ + GetConsoleCharType, <NONE>, 'GetConsoleCharType', \ + GetConsoleCommandHistoryA, <NONE>, 'GetConsoleCommandHistoryA', \ + GetConsoleCommandHistoryLengthA, <NONE>, 'GetConsoleCommandHistoryLengthA', \ + GetConsoleCommandHistoryLengthW, <NONE>, 'GetConsoleCommandHistoryLengthW', \ + GetConsoleCommandHistoryW, <NONE>, 'GetConsoleCommandHistoryW', \ + GetConsoleCursorInfo, <.hConsoleOutput, .lpConsoleCursorInfo>, 'GetConsoleCursorInfo', \ + GetConsoleCursorMode, <NONE>, 'GetConsoleCursorMode', \ + GetConsoleDisplayMode, <NONE>, 'GetConsoleDisplayMode', \ + GetConsoleFontInfo, <NONE>, 'GetConsoleFontInfo', \ + GetConsoleFontSize, <NONE>, 'GetConsoleFontSize', \ + GetConsoleHardwareState, <NONE>, 'GetConsoleHardwareState', \ + GetConsoleInputExeNameA, <NONE>, 'GetConsoleInputExeNameA', \ + GetConsoleInputExeNameW, <NONE>, 'GetConsoleInputExeNameW', \ + GetConsoleInputWaitHandle, <NONE>, 'GetConsoleInputWaitHandle', \ + GetConsoleKeyboardLayoutNameA, <NONE>, 'GetConsoleKeyboardLayoutNameA', \ + GetConsoleKeyboardLayoutNameW, <NONE>, 'GetConsoleKeyboardLayoutNameW', \ + GetConsoleMode, <.hConsoleHandle, .lpMode>, 'GetConsoleMode', \ + GetConsoleNlsMode, <NONE>, 'GetConsoleNlsMode', \ + GetConsoleOutputCP, <VOID>, 'GetConsoleOutputCP', \ + GetConsoleProcessList, <NONE>, 'GetConsoleProcessList', \ + GetConsoleScreenBufferInfo, <.hConsoleOutput, .lpConsoleScreenBufferInfo>, 'GetConsoleScreenBufferInfo', \ + GetConsoleSelectionInfo, <NONE>, 'GetConsoleSelectionInfo', \ + GetConsoleTitleA, <.lpConsoleTitle, .nSize>, 'GetConsoleTitleA', \ + GetConsoleTitleW, <.lpConsoleTitle, .nSize>, 'GetConsoleTitleW', \ + GetConsoleWindow, <NONE>, 'GetConsoleWindow', \ + GetCurrencyFormatA, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpCurrencyStr, .cchCurrency>, 'GetCurrencyFormatA', \ + GetCurrencyFormatW, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpCurrencyStr, .cchCurrency>, 'GetCurrencyFormatW', \ + GetCurrentActCtx, <NONE>, 'GetCurrentActCtx', \ + GetCurrentConsoleFont, <NONE>, 'GetCurrentConsoleFont', \ + GetCurrentDirectoryA, <.nBufferLength, .lpBuffer>, 'GetCurrentDirectoryA', \ + GetCurrentDirectoryW, <.nBufferLength, .lpBuffer>, 'GetCurrentDirectoryW', \ + GetCurrentProcess, <VOID>, 'GetCurrentProcess', \ + GetCurrentProcessId, <VOID>, 'GetCurrentProcessId', \ + GetCurrentThread, <VOID>, 'GetCurrentThread', \ + GetCurrentThreadId, <VOID>, 'GetCurrentThreadId', \ + GetDateFormatA, <.Locale, .dwFlags, .lpDate, .lpFormat, .lpDateStr, .cchDate>, 'GetDateFormatA', \ + GetDateFormatW, <.Locale, .dwFlags, .lpDate, .lpFormat, .lpDateStr, .cchDate>, 'GetDateFormatW', \ + GetDefaultCommConfigA, <.lpszName, .lpCC, .lpdwSize>, 'GetDefaultCommConfigA', \ + GetDefaultCommConfigW, <.lpszName, .lpCC, .lpdwSize>, 'GetDefaultCommConfigW', \ + GetDefaultSortkeySize, <NONE>, 'GetDefaultSortkeySize', \ + GetDevicePowerState, <.hDevice, .pfOn>, 'GetDevicePowerState', \ + GetDiskFreeSpaceA, <.lpRootPathName, .lpSectorsPerCluster, .lpBytesPerSector, .lpNumberOfFreeClusters, .lpTotalNumberOfClusters, \ + >, 'GetDiskFreeSpaceA', \ + GetDiskFreeSpaceExA, <.lpDirectoryName, .lpFreeBytesAvailableToCaller, .lpTotalNumberOfBytes, .lpTotalNumberOfFreeBytes>, 'GetDiskFreeSpaceExA', \ + GetDiskFreeSpaceExW, <.lpDirectoryName, .lpFreeBytesAvailableToCaller, .lpTotalNumberOfBytes, .lpTotalNumberOfFreeBytes>, 'GetDiskFreeSpaceExW', \ + GetDiskFreeSpaceW, <.lpRootPathName, .lpSectorsPerCluster, .lpBytesPerSector, .lpNumberOfFreeClusters, .lpTotalNumberOfClusters, \ + >, 'GetDiskFreeSpaceW', \ + GetDllDirectoryA, <NONE>, 'GetDllDirectoryA', \ + GetDllDirectoryW, <NONE>, 'GetDllDirectoryW', \ + GetDriveTypeA, <.nDrive>, 'GetDriveTypeA', \ + GetDriveTypeW, <.nDrive>, 'GetDriveTypeW', \ + GetEnvironmentStrings, <VOID>, 'GetEnvironmentStrings', \ + GetEnvironmentStringsA, <VOID>, 'GetEnvironmentStringsA', \ + GetEnvironmentStringsW, <VOID>, 'GetEnvironmentStringsW', \ + GetEnvironmentVariableA, <.lpName, .lpBuffer, .nSize>, 'GetEnvironmentVariableA', \ + GetEnvironmentVariableW, <.lpName, .lpBuffer, .nSize>, 'GetEnvironmentVariableW', \ + GetExitCodeProcess, <.hProcess, .lpExitCode>, 'GetExitCodeProcess', \ + GetExitCodeThread, <.hThread, .lpExitCode>, 'GetExitCodeThread', \ + GetExpandedNameA, <.lpszSource, .lpszBuffer>, 'GetExpandedNameA', \ + GetExpandedNameW, <.lpszSource, .lpszBuffer>, 'GetExpandedNameW', \ + GetFileAttributesA, <.lpFileName>, 'GetFileAttributesA', \ + GetFileAttributesExA, <.lpFileName, .fInfoLevelId, .lpFileInformation>, 'GetFileAttributesExA', \ + GetFileAttributesExW, <.lpFileName, .fInfoLevelId, .lpFileInformation>, 'GetFileAttributesExW', \ + GetFileAttributesW, <.lpFileName>, 'GetFileAttributesW', \ + GetFileInformationByHandle, <.hFile, .lpFileInformation>, 'GetFileInformationByHandle', \ + GetFileSize, <.hFile, .lpFileSizeHigh>, 'GetFileSize', \ + GetFileSizeEx, <.hFile, .lpFileSize>, 'GetFileSizeEx', \ + GetFileTime, <.hFile, .lpCreationTime, .lpLastAccessTime, .lpLastWriteTime>, 'GetFileTime', \ + GetFileType, <.hFile>, 'GetFileType', \ + GetFirmwareEnvironmentVariableA, <NONE>, 'GetFirmwareEnvironmentVariableA', \ + GetFirmwareEnvironmentVariableW, <NONE>, 'GetFirmwareEnvironmentVariableW', \ + GetFullPathNameA, <.lpFileName, .nBufferLength, .lpBuffer, .lpFilePart>, 'GetFullPathNameA', \ + GetFullPathNameW, <.lpFileName, .nBufferLength, .lpBuffer, .lpFilePart>, 'GetFullPathNameW', \ + GetGeoInfoA, <NONE>, 'GetGeoInfoA', \ + GetGeoInfoW, <NONE>, 'GetGeoInfoW', \ + GetHandleContext, <NONE>, 'GetHandleContext', \ + GetHandleInformation, <.hObject, .lpdwFlags>, 'GetHandleInformation', \ + GetLargestConsoleWindowSize, <.hConsoleOutput>, 'GetLargestConsoleWindowSize', \ + GetLastError, <VOID>, 'GetLastError', \ + GetLinguistLangSize, <NONE>, 'GetLinguistLangSize', \ + GetLocalTime, <.lpSystemTime>, 'GetLocalTime', \ + GetLocaleInfoA, <.Locale, .LCType, .lpLCData, .cchData>, 'GetLocaleInfoA', \ + GetLocaleInfoW, <.Locale, .LCType, .lpLCData, .cchData>, 'GetLocaleInfoW', \ + GetLogicalDriveStringsA, <.nBufferLength, .lpBuffer>, 'GetLogicalDriveStringsA', \ + GetLogicalDriveStringsW, <.nBufferLength, .lpBuffer>, 'GetLogicalDriveStringsW', \ + GetLogicalDrives, <VOID>, 'GetLogicalDrives', \ + GetLogicalProcessorInformation, <NONE>, 'GetLogicalProcessorInformation', \ + GetLongPathNameA, <.lpszShortPath, .lpszLongPath, .cchBuffer>, 'GetLongPathNameA', \ + GetLongPathNameW, <.lpszShortPath, .lpszLongPath, .cchBuffer>, 'GetLongPathNameW', \ + GetMailslotInfo, <.hMailslot, .lpMaxMessageSize, .lpNextSize, .lpMessageCount, .lpReadTimeout>, 'GetMailslotInfo', \ + GetModuleFileNameA, <.hModule, .lpFileName, .nSize>, 'GetModuleFileNameA', \ + GetModuleFileNameW, <.hModule, .lpFileName, .nSize>, 'GetModuleFileNameW', \ + GetModuleHandleA, <.lpModuleName>, 'GetModuleHandleA', \ + GetModuleHandleExA, <NONE>, 'GetModuleHandleExA', \ + GetModuleHandleExW, <NONE>, 'GetModuleHandleExW', \ + GetModuleHandleW, <.lpModuleName>, 'GetModuleHandleW', \ + GetNamedPipeHandleStateA, <.hNamedPipe, .lpState, .lpCurInstances, .lpMaxCollectionCount, .lpCollectDataTimeout, .lpUserName, .nMaxUserNameSize, \ + >, 'GetNamedPipeHandleStateA', \ + GetNamedPipeHandleStateW, <.hNamedPipe, .lpState, .lpCurInstances, .lpMaxCollectionCount, .lpCollectDataTimeout, .lpUserName, .nMaxUserNameSize, \ + >, 'GetNamedPipeHandleStateW', \ + GetNamedPipeInfo, <.hNamedPipe, .lpFlags, .lpOutBufferSize, .lpInBufferSize, .lpMaxInstances>, 'GetNamedPipeInfo', \ + GetNativeSystemInfo, <NONE>, 'GetNativeSystemInfo', \ + GetNextVDMCommand, <NONE>, 'GetNextVDMCommand', \ + GetNlsSectionName, <NONE>, 'GetNlsSectionName', \ + GetNumaAvailableMemory, <NONE>, 'GetNumaAvailableMemory', \ + GetNumaAvailableMemoryNode, <NONE>, 'GetNumaAvailableMemoryNode', \ + GetNumaHighestNodeNumber, <NONE>, 'GetNumaHighestNodeNumber', \ + GetNumaNodeProcessorMask, <NONE>, 'GetNumaNodeProcessorMask', \ + GetNumaProcessorMap, <NONE>, 'GetNumaProcessorMap', \ + GetNumaProcessorNode, <NONE>, 'GetNumaProcessorNode', \ + GetNumberFormatA, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpNumberStr, .cchNumber>, 'GetNumberFormatA', \ + GetNumberFormatW, <.Locale, .dwFlags, .lpValue, .lpFormat, .lpNumberStr, .cchNumber>, 'GetNumberFormatW', \ + GetNumberOfConsoleFonts, <NONE>, 'GetNumberOfConsoleFonts', \ + GetNumberOfConsoleInputEvents, <.hConsoleInput, .lpNumberOfEvents>, 'GetNumberOfConsoleInputEvents', \ + GetNumberOfConsoleMouseButtons, <.lpNumberOfMouseButtons>, 'GetNumberOfConsoleMouseButtons', \ + GetOEMCP, <VOID>, 'GetOEMCP', \ + GetOverlappedResult, <.hFile, .lpOverlapped, .lpNumberOfBytesTransferred, .bWait>, 'GetOverlappedResult', \ + GetPriorityClass, <.hProcess>, 'GetPriorityClass', \ + GetPrivateProfileIntA, <.lpApplicationName, .lpKeyName, .nDefault, .lpFileName>, 'GetPrivateProfileIntA', \ + GetPrivateProfileIntW, <.lpApplicationName, .lpKeyName, .nDefault, .lpFileName>, 'GetPrivateProfileIntW', \ + GetPrivateProfileSectionA, <.lpAppName, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileSectionA', \ + GetPrivateProfileSectionNamesA, <.lpszReturnBuffer, .nSize, .lpFileName>, 'GetPrivateProfileSectionNamesA', \ + GetPrivateProfileSectionNamesW, <.lpszReturnBuffer, .nSize, .lpFileName>, 'GetPrivateProfileSectionNamesW', \ + GetPrivateProfileSectionW, <.lpAppName, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileSectionW', \ + GetPrivateProfileStringA, <.lpApplicationName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileStringA', \ + GetPrivateProfileStringW, <.lpApplicationName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize, .lpFileName>, 'GetPrivateProfileStringW', \ + GetPrivateProfileStructA, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'GetPrivateProfileStructA', \ + GetPrivateProfileStructW, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'GetPrivateProfileStructW', \ + GetProcAddress, <.hModule, .lpProcName>, 'GetProcAddress', \ + GetProcessAffinityMask, <.hProcess, .lpProcessAffinityMask, .SystemAffinityMask>, 'GetProcessAffinityMask', \ + GetProcessDEPPolicy, <NONE>, 'GetProcessDEPPolicy', \ + GetProcessHandleCount, <NONE>, 'GetProcessHandleCount', \ + GetProcessHeap, <VOID>, 'GetProcessHeap', \ + GetProcessHeaps, <.NumberOfHeaps, .ProcessHeaps>, 'GetProcessHeaps', \ + GetProcessId, <NONE>, 'GetProcessId', \ + GetProcessIoCounters, <.hProcess, .lpIoCounters>, 'GetProcessIoCounters', \ + GetProcessPriorityBoost, <.hProcess, .pDisablePriorityBoost>, 'GetProcessPriorityBoost', \ + GetProcessShutdownParameters, <.lpdwLevel, .lpdwFlags>, 'GetProcessShutdownParameters', \ + GetProcessTimes, <.hProcess, .lpCreationTime, .lpExitTime, .lpKernelTime, .lpUserTime>, 'GetProcessTimes', \ + GetProcessVersion, <.ProcessId>, 'GetProcessVersion', \ + GetProcessWorkingSetSize, <.hProcess, .lpMinimumWorkingSetSize, .lpMaximumWorkingSetSize>, 'GetProcessWorkingSetSize', \ + GetProfileIntA, <.lpAppName, .lpKeyName, .nDefault>, 'GetProfileIntA', \ + GetProfileIntW, <.lpAppName, .lpKeyName, .nDefault>, 'GetProfileIntW', \ + GetProfileSectionA, <.lpAppName, .lpReturnedString, .nSize>, 'GetProfileSectionA', \ + GetProfileSectionW, <.lpAppName, .lpReturnedString, .nSize>, 'GetProfileSectionW', \ + GetProfileStringA, <.lpAppName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize>, 'GetProfileStringA', \ + GetProfileStringW, <.lpAppName, .lpKeyName, .lpDefault, .lpReturnedString, .nSize>, 'GetProfileStringW', \ + GetQueuedCompletionStatus, <.CompletionPort, .lpNumberOfBytesTransferred, .lpCompletionKey, .lpOverlapped, .dwMilliseconds>, 'GetQueuedCompletionStatus', \ + GetShortPathNameA, <.lpszLongPath, .lpszShortPath, .cchBuffer>, 'GetShortPathNameA', \ + GetShortPathNameW, <.lpszLongPath, .lpszShortPath, .cchBuffer>, 'GetShortPathNameW', \ + GetStartupInfoA, <.lpStartupInfo>, 'GetStartupInfoA', \ + GetStartupInfoW, <.lpStartupInfo>, 'GetStartupInfoW', \ + GetStdHandle, <.nStdHandle>, 'GetStdHandle', \ + GetStringTypeA, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeA', \ + GetStringTypeExA, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeExA', \ + GetStringTypeExW, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeExW', \ + GetStringTypeW, <.Locale, .dwInfoType, .lpSrcStr, .cchSrc, .lpCharType>, 'GetStringTypeW', \ + GetSystemDEPPolicy, <NONE>, 'GetSystemDEPPolicy', \ + GetSystemDefaultLCID, <VOID>, 'GetSystemDefaultLCID', \ + GetSystemDefaultLangID, <VOID>, 'GetSystemDefaultLangID', \ + GetSystemDefaultUILanguage, <VOID>, 'GetSystemDefaultUILanguage', \ + GetSystemDirectoryA, <.lpBuffer, .nSize>, 'GetSystemDirectoryA', \ + GetSystemDirectoryW, <.lpBuffer, .nSize>, 'GetSystemDirectoryW', \ + GetSystemInfo, <.lpSystemInfo>, 'GetSystemInfo', \ + GetSystemPowerStatus, <.lpSystemPowerStatus>, 'GetSystemPowerStatus', \ + GetSystemRegistryQuota, <NONE>, 'GetSystemRegistryQuota', \ + GetSystemTime, <.lpSystemTime>, 'GetSystemTime', \ + GetSystemTimeAdjustment, <.lpTimeAdjustment, .lpTimeIncrement, .lpTimeAdjustmentDisabled>, 'GetSystemTimeAdjustment', \ + GetSystemTimeAsFileTime, <.lpSystemTimeAsFileTime>, 'GetSystemTimeAsFileTime', \ + GetSystemTimes, <NONE>, 'GetSystemTimes', \ + GetSystemWindowsDirectoryA, <.lpBuffer, .uSize>, 'GetSystemWindowsDirectoryA', \ + GetSystemWindowsDirectoryW, <.lpBuffer, .uSize>, 'GetSystemWindowsDirectoryW', \ + GetSystemWow64DirectoryA, <NONE>, 'GetSystemWow64DirectoryA', \ + GetSystemWow64DirectoryW, <NONE>, 'GetSystemWow64DirectoryW', \ + GetTapeParameters, <.hDevice, .dwOperation, .lpdwSize, .lpTapeInformation>, 'GetTapeParameters', \ + GetTapePosition, <.hDevice, .dwPositionType, .lpdwPartition, .lpdwOffsetLow, .lpdwOffsetHigh>, 'GetTapePosition', \ + GetTapeStatus, <.hDevice>, 'GetTapeStatus', \ + GetTempFileNameA, <.lpszPath, .lpPrefixString, .wUnique, .lpTempFileName>, 'GetTempFileNameA', \ + GetTempFileNameW, <.lpszPath, .lpPrefixString, .wUnique, .lpTempFileName>, 'GetTempFileNameW', \ + GetTempPathA, <.nBufferLength, .lpBuffer>, 'GetTempPathA', \ + GetTempPathW, <.nBufferLength, .lpBuffer>, 'GetTempPathW', \ + GetThreadContext, <.hThread, .lpContext>, 'GetThreadContext', \ + GetThreadIOPendingFlag, <NONE>, 'GetThreadIOPendingFlag', \ + GetThreadLocale, <VOID>, 'GetThreadLocale', \ + GetThreadPriority, <.hThread>, 'GetThreadPriority', \ + GetThreadPriorityBoost, <.hThread, .pDisablePriorityBoost>, 'GetThreadPriorityBoost', \ + GetThreadSelectorEntry, <.hThread, .dwSelector, .lpSelectorEntry>, 'GetThreadSelectorEntry', \ + GetThreadTimes, <.hThread, .lpCreationTime, .lpExitTime, .lpKernelTime, .lpUserTime>, 'GetThreadTimes', \ + GetTickCount, <VOID>, 'GetTickCount', \ + GetTimeFormatA, <.Locale, .dwFlags, .lpTime, .lpFormat, .lpTimeStr, .cchTime>, 'GetTimeFormatA', \ + GetTimeFormatW, <.Locale, .dwFlags, .lpTime, .lpFormat, .lpTimeStr, .cchTime>, 'GetTimeFormatW', \ + GetTimeZoneInformation, <.lpTimeZoneInformation>, 'GetTimeZoneInformation', \ + GetUserDefaultLCID, <VOID>, 'GetUserDefaultLCID', \ + GetUserDefaultLangID, <VOID>, 'GetUserDefaultLangID', \ + GetUserDefaultUILanguage, <VOID>, 'GetUserDefaultUILanguage', \ + GetUserGeoID, <NONE>, 'GetUserGeoID', \ + GetVDMCurrentDirectories, <NONE>, 'GetVDMCurrentDirectories', \ + GetVersion, <VOID>, 'GetVersion', \ + GetVersionExA, <.lpVersionInformation>, 'GetVersionExA', \ + GetVersionExW, <.lpVersionInformation>, 'GetVersionExW', \ + GetVolumeInformationA, <.lpRootPathName, .lpVolumeNameBuffer, .nVolumeNameSize, .lpVolumeSerialNumber, .lpMaximumComponentLength, \ + .lpFileSystemFlags, .lpFileSystemNameBuffer, .nFileSystemNameSize>, 'GetVolumeInformationA', \ + GetVolumeInformationW, <.lpRootPathName, .lpVolumeNameBuffer, .nVolumeNameSize, .lpVolumeSerialNumber, .lpMaximumComponentLength, \ + .lpFileSystemFlags, .lpFileSystemNameBuffer, .nFileSystemNameSize>, 'GetVolumeInformationW', \ + GetVolumeNameForVolumeMountPointA, <.lpszVolumeMountPoint, .lpszVolumeName, .cchBufferLength>, 'GetVolumeNameForVolumeMountPointA', \ + GetVolumeNameForVolumeMountPointW, <.lpszVolumeMountPoint, .lpszVolumeName, .cchBufferLength>, 'GetVolumeNameForVolumeMountPointW', \ + GetVolumePathNameA, <.lpszFileName, .lpszVolumePathName, .cchBufferLength>, 'GetVolumePathNameA', \ + GetVolumePathNameW, <.lpszFileName, .lpszVolumePathName, .cchBufferLength>, 'GetVolumePathNameW', \ + GetVolumePathNamesForVolumeNameA, <NONE>, 'GetVolumePathNamesForVolumeNameA', \ + GetVolumePathNamesForVolumeNameW, <NONE>, 'GetVolumePathNamesForVolumeNameW', \ + GetWindowsDirectoryA, <.lpBuffer, .nSize>, 'GetWindowsDirectoryA', \ + GetWindowsDirectoryW, <.lpBuffer, .nSize>, 'GetWindowsDirectoryW', \ + GetWriteWatch, <.dwFlags, .lpBaseAddress, .dwRegionSize, .lpAddresses, .lpdwCount, .lpdwGranularity>, 'GetWriteWatch', \ + GlobalAddAtomA, <.lpString>, 'GlobalAddAtomA', \ + GlobalAddAtomW, <.lpString>, 'GlobalAddAtomW', \ + GlobalAlloc, <.uFlags, .dwBytes>, 'GlobalAlloc', \ + GlobalCompact, <.dwMinFree>, 'GlobalCompact', \ + GlobalDeleteAtom, <.nAtom>, 'GlobalDeleteAtom', \ + GlobalFindAtomA, <.lpString>, 'GlobalFindAtomA', \ + GlobalFindAtomW, <.lpString>, 'GlobalFindAtomW', \ + GlobalFix, <.hMem>, 'GlobalFix', \ + GlobalFlags, <.hMem>, 'GlobalFlags', \ + GlobalFree, <.hMem>, 'GlobalFree', \ + GlobalGetAtomNameA, <.nAtom, .lpBuffer, .nSize>, 'GlobalGetAtomNameA', \ + GlobalGetAtomNameW, <.nAtom, .lpBuffer, .nSize>, 'GlobalGetAtomNameW', \ + GlobalHandle, <.wMem>, 'GlobalHandle', \ + GlobalLock, <.hMem>, 'GlobalLock', \ + GlobalMemoryStatus, <.lpBuffer>, 'GlobalMemoryStatus', \ + GlobalMemoryStatusEx, <.lpBuffer>, 'GlobalMemoryStatusEx', \ + GlobalReAlloc, <.hMem, .dwBytes, .wFlags>, 'GlobalReAlloc', \ + GlobalSize, <.hMem>, 'GlobalSize', \ + GlobalUnWire, <.hMem>, 'GlobalUnWire', \ + GlobalUnfix, <.hMem>, 'GlobalUnfix', \ + GlobalUnlock, <.hMem>, 'GlobalUnlock', \ + GlobalWire, <.hMem>, 'GlobalWire', \ + Heap32First, <.lphe, .th32ProcessID, .th32HeapID>, 'Heap32First', \ + Heap32ListFirst, <.hSnapshot, .lphl>, 'Heap32ListFirst', \ + Heap32ListNext, <.hSnapshot, .lphl>, 'Heap32ListNext', \ + Heap32Next, <.lphe>, 'Heap32Next', \ + HeapAlloc, <.hHeap, .dwFlags, .dwBytes>, 'HeapAlloc', \ + HeapCompact, <.hHeap, .dwFlags>, 'HeapCompact', \ + HeapCreate, <.flOptions, .dwInitialSize, .dwMaximumSize>, 'HeapCreate', \ + HeapCreateTagsW, <NONE>, 'HeapCreateTagsW', \ + HeapDestroy, <.hHeap>, 'HeapDestroy', \ + HeapExtend, <NONE>, 'HeapExtend', \ + HeapFree, <.hHeap, .dwFlags, .lpMem>, 'HeapFree', \ + HeapLock, <.hHeap>, 'HeapLock', \ + HeapQueryInformation, <NONE>, 'HeapQueryInformation', \ + HeapQueryTagW, <NONE>, 'HeapQueryTagW', \ + HeapReAlloc, <.hHeap, .dwFlags, .lpMem, .dwBytes>, 'HeapReAlloc', \ + HeapSetInformation, <NONE>, 'HeapSetInformation', \ + HeapSize, <.hHeap, .dwFlags, .lpMem>, 'HeapSize', \ + HeapSummary, <NONE>, 'HeapSummary', \ + HeapUnlock, <.hHeap>, 'HeapUnlock', \ + HeapUsage, <NONE>, 'HeapUsage', \ + HeapValidate, <.hHeap, .dwFlags, .lpMem>, 'HeapValidate', \ + HeapWalk, <.hHeap, .lpEntry>, 'HeapWalk', \ + InitAtomTable, <.nSize>, 'InitAtomTable', \ + InitializeCriticalSection, <.lpCriticalSection>, 'InitializeCriticalSection', \ + InitializeCriticalSectionAndSpinCount, <.lpCriticalSection, .dwSpinCount>, 'InitializeCriticalSectionAndSpinCount', \ + InitializeSListHead, <NONE>, 'InitializeSListHead', \ + InterlockedCompareExchange, <.Destination, .Exchange, .Comperand>, 'InterlockedCompareExchange', \ + InterlockedDecrement, <.lpAddend>, 'InterlockedDecrement', \ + InterlockedExchange, <.Target, .Value>, 'InterlockedExchange', \ + InterlockedExchangeAdd, <.Addend, .Value>, 'InterlockedExchangeAdd', \ + InterlockedFlushSList, <NONE>, 'InterlockedFlushSList', \ + InterlockedIncrement, <.lpAddend>, 'InterlockedIncrement', \ + InterlockedPopEntrySList, <NONE>, 'InterlockedPopEntrySList', \ + InterlockedPushEntrySList, <NONE>, 'InterlockedPushEntrySList', \ + InvalidateConsoleDIBits, <NONE>, 'InvalidateConsoleDIBits', \ + IsBadCodePtr, <.lpfn>, 'IsBadCodePtr', \ + IsBadHugeReadPtr, <.lp, .ucb>, 'IsBadHugeReadPtr', \ + IsBadHugeWritePtr, <.lp, .ucb>, 'IsBadHugeWritePtr', \ + IsBadReadPtr, <.lp, .ucb>, 'IsBadReadPtr', \ + IsBadStringPtrA, <.lpsz, .ucchMax>, 'IsBadStringPtrA', \ + IsBadStringPtrW, <.lpsz, .ucchMax>, 'IsBadStringPtrW', \ + IsBadWritePtr, <.lp, .ucb>, 'IsBadWritePtr', \ + IsDBCSLeadByte, <.bTestChar>, 'IsDBCSLeadByte', \ + IsDBCSLeadByteEx, <.CodePage, .TestChar>, 'IsDBCSLeadByteEx', \ + IsDebuggerPresent, <VOID>, 'IsDebuggerPresent', \ + IsProcessInJob, <NONE>, 'IsProcessInJob', \ + IsProcessorFeaturePresent, <.ProcessorFeature>, 'IsProcessorFeaturePresent', \ + IsSystemResumeAutomatic, <VOID>, 'IsSystemResumeAutomatic', \ + IsValidCodePage, <.CodePage>, 'IsValidCodePage', \ + IsValidLanguageGroup, <.LanguageGroup, .dwFlags>, 'IsValidLanguageGroup', \ + IsValidLocale, <.Locale, .dwFlags>, 'IsValidLocale', \ + IsValidUILanguage, <NONE>, 'IsValidUILanguage', \ + IsWow64Process, <NONE>, 'IsWow64Process', \ + LCMapStringA, <.Locale, .dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'LCMapStringA', \ + LCMapStringW, <.Locale, .dwMapFlags, .lpSrcStr, .cchSrc, .lpDestStr, .cchDest>, 'LCMapStringW', \ + LZClose, <.hfFile>, 'LZClose', \ + LZCloseFile, <NONE>, 'LZCloseFile', \ + LZCopy, <.hfSource, .hfDest>, 'LZCopy', \ + LZCreateFileW, <NONE>, 'LZCreateFileW', \ + LZDone, <VOID>, 'LZDone', \ + LZInit, <.hfSrc>, 'LZInit', \ + LZOpenFileA, <.lpszFile, .lpOf, .style>, 'LZOpenFileA', \ + LZOpenFileW, <.lpszFile, .lpOf, .style>, 'LZOpenFileW', \ + LZRead, <.hfFile, .lpvBuf, .cbread>, 'LZRead', \ + LZSeek, <.hfFile, .lOffset, .nOrigin>, 'LZSeek', \ + LZStart, <VOID>, 'LZStart', \ + LeaveCriticalSection, <.lpCriticalSection>, 'LeaveCriticalSection', \ + LoadLibraryA, <.lpLibFileName>, 'LoadLibraryA', \ + LoadLibraryExA, <.lpLibFileName, .hFile, .dwFlags>, 'LoadLibraryExA', \ + LoadLibraryExW, <.lpLibFileName, .hFile, .dwFlags>, 'LoadLibraryExW', \ + LoadLibraryW, <.lpLibFileName>, 'LoadLibraryW', \ + LoadModule, <.lpModuleName, .lpParameterBlock>, 'LoadModule', \ + LoadResource, <.hInstance, .hResInfo>, 'LoadResource', \ + LocalAlloc, <.wFlags, .wBytes>, 'LocalAlloc', \ + LocalCompact, <.uMinFree>, 'LocalCompact', \ + LocalFileTimeToFileTime, <.lpLocalFileTime, .lpFileTime>, 'LocalFileTimeToFileTime', \ + LocalFlags, <.hMem>, 'LocalFlags', \ + LocalFree, <.hMem>, 'LocalFree', \ + LocalHandle, <.wMem>, 'LocalHandle', \ + LocalLock, <.hMem>, 'LocalLock', \ + LocalReAlloc, <.hMem, .wBytes, .wFlags>, 'LocalReAlloc', \ + LocalShrink, <.hMem, .cbNewSize>, 'LocalShrink', \ + LocalSize, <.hMem>, 'LocalSize', \ + LocalUnlock, <.hMem>, 'LocalUnlock', \ + LockFile, <.hFile, .dwFileOffsetLow, .dwFileOffsetHigh, .nNumberOfBytesToLockLow, .nNumberOfBytesToLockHigh>, 'LockFile', \ + LockFileEx, <.hFile, .dwFlags, .dwReserved, .nNumberOfBytesToLockLow, .nNumberOfBytesToLockHigh, .lpOverlapped>, 'LockFileEx', \ + LockResource, <.hResData>, 'LockResource', \ + MapUserPhysicalPages, <.VirtualAddress, .NumberOfPages, .PageArray>, 'MapUserPhysicalPages', \ + MapUserPhysicalPagesScatter, <.VirtualAddresses, .NumberOfPages, .PageArray>, 'MapUserPhysicalPagesScatter', \ + MapViewOfFile, <.hFileMappingObject, .dwDesiredAccess, .dwFileOffsetHigh, .dwFileOffsetLow, .dwNumberOfBytesToMap>, 'MapViewOfFile', \ + MapViewOfFileEx, <.hFileMappingObject, .dwDesiredAccess, .dwFileOffsetHigh, .dwFileOffsetLow, .dwNumberOfBytesToMap, .lpBaseAddress, \ + >, 'MapViewOfFileEx', \ + Module32First, <.hSnapshot, .lpme>, 'Module32First', \ + Module32FirstW, <.hSnapshot, .lpme>, 'Module32FirstW', \ + Module32Next, <.hSnapshot, .lpme>, 'Module32Next', \ + Module32NextW, <.hSnapshot, .lpme>, 'Module32NextW', \ + MoveFileA, <.lpExistingFileName, .lpNewFileName>, 'MoveFileA', \ + MoveFileExA, <.lpExistingFileName, .lpNewFileName, .dwFlags>, 'MoveFileExA', \ + MoveFileExW, <.lpExistingFileName, .lpNewFileName, .dwFlags>, 'MoveFileExW', \ + MoveFileW, <.lpExistingFileName, .lpNewFileName>, 'MoveFileW', \ + MoveFileWithProgressA, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .dwFlags>, 'MoveFileWithProgressA', \ + MoveFileWithProgressW, <.lpExistingFileName, .lpNewFileName, .lpProgressRoutine, .lpData, .dwFlags>, 'MoveFileWithProgressW', \ + MulDiv, <.nNumber, .nNumerator, .nDenominator>, 'MulDiv', \ + MultiByteToWideChar, <.CodePage, .dwFlags, .lpMultiByteStr, .cchMultiByte, .lpWideCharStr, .cchWideChar>, 'MultiByteToWideChar', \ + NlsConvertIntegerToString, <NONE>, 'NlsConvertIntegerToString', \ + NlsGetCacheUpdateCount, <NONE>, 'NlsGetCacheUpdateCount', \ + NlsResetProcessLocale, <NONE>, 'NlsResetProcessLocale', \ + NumaVirtualQueryNode, <NONE>, 'NumaVirtualQueryNode', \ + OpenConsoleW, <NONE>, 'OpenConsoleW', \ + OpenDataFile, <NONE>, 'OpenDataFile', \ + OpenEventA, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenEventA', \ + OpenEventW, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenEventW', \ + OpenFile, <.lpFileName, .lpReOpenBuff, .wStyle>, 'OpenFile', \ + OpenFileMappingA, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenFileMappingA', \ + OpenFileMappingW, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenFileMappingW', \ + OpenJobObjectA, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenJobObjectA', \ + OpenJobObjectW, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenJobObjectW', \ + OpenMutexA, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenMutexA', \ + OpenMutexW, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenMutexW', \ + OpenProcess, <.dwDesiredAccess, .bInheritHandle, .dwProcessId>, 'OpenProcess', \ + OpenProfileUserMapping, <NONE>, 'OpenProfileUserMapping', \ + OpenSemaphoreA, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenSemaphoreA', \ + OpenSemaphoreW, <.dwDesiredAccess, .bInheritHandle, .lpName>, 'OpenSemaphoreW', \ + OpenThread, <.dwDesiredAccess, .bInheritHandle, .dwThreadId>, 'OpenThread', \ + OpenWaitableTimerA, <.dwDesiredAccess, .bInheritHandle, .lpTimerName>, 'OpenWaitableTimerA', \ + OpenWaitableTimerW, <.dwDesiredAccess, .bInheritHandle, .lpTimerName>, 'OpenWaitableTimerW', \ + OutputDebugStringA, <.lpOutputString>, 'OutputDebugStringA', \ + OutputDebugStringW, <.lpOutputString>, 'OutputDebugStringW', \ + PeekConsoleInputA, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'PeekConsoleInputA', \ + PeekConsoleInputW, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'PeekConsoleInputW', \ + PeekNamedPipe, <.hNamedPipe, .lpBuffer, .nBufferSize, .lpBytesRead, .lpTotalBytesAvail, .lpBytesLeftThisMessage>, 'PeekNamedPipe', \ + PostQueuedCompletionStatus, <.CompletionPort, .dwNumberOfBytesTransferred, .dwCompletionKey, .lpOverlapped>, 'PostQueuedCompletionStatus', \ + PrepareTape, <.hDevice, .dwOperation, .bimmediate>, 'PrepareTape', \ + PrivCopyFileExW, <NONE>, 'PrivCopyFileExW', \ + PrivMoveFileIdentityW, <NONE>, 'PrivMoveFileIdentityW', \ + Process32First, <.hSnapshot, .lppe>, 'Process32First', \ + Process32FirstW, <.hSnapshot, .lppe>, 'Process32FirstW', \ + Process32Next, <.hSnapshot, .lppe>, 'Process32Next', \ + Process32NextW, <.hSnapshot, .lppe>, 'Process32NextW', \ + ProcessIdToSessionId, <.dwProcessId, .pSessionId>, 'ProcessIdToSessionId', \ + PulseEvent, <.hEvent>, 'PulseEvent', \ + PurgeComm, <.hFile, .dwFlags>, 'PurgeComm', \ + QueryActCtxW, <NONE>, 'QueryActCtxW', \ + QueryDepthSList, <NONE>, 'QueryDepthSList', \ + QueryDosDeviceA, <.lpDeviceName, .lpTargetPath, .ucchMax>, 'QueryDosDeviceA', \ + QueryDosDeviceW, <.lpDeviceName, .lpTargetPath, .ucchMax>, 'QueryDosDeviceW', \ + QueryInformationJobObject, <.hJob, .JobObjectInformationClass, .lpJobObjectInformation, .cbJobObjectInformationLength, .lpReturnLength, \ + >, 'QueryInformationJobObject', \ + QueryMemoryResourceNotification, <NONE>, 'QueryMemoryResourceNotification', \ + QueryPerformanceCounter, <.lpPerformanceCount>, 'QueryPerformanceCounter', \ + QueryPerformanceFrequency, <.lpFrequency>, 'QueryPerformanceFrequency', \ + QueryWin31IniFilesMappedToRegistry, <NONE>, 'QueryWin31IniFilesMappedToRegistry', \ + QueueUserAPC, <.pfnAPC, .hThread, .dwData>, 'QueueUserAPC', \ + QueueUserWorkItem, <.lFunction, .Context, .Flags>, 'QueueUserWorkItem', \ + RaiseException, <.dwExceptionCode, .dwExceptionFlags, .nNumberOfArguments, .lpArguments>, 'RaiseException', \ + ReadConsoleA, <.hConsoleInput, .lpBuffer, .nNumberOfCharsToRead, .lpNumberOfCharsRead, .lpReserved>, 'ReadConsoleA', \ + ReadConsoleInputA, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'ReadConsoleInputA', \ + ReadConsoleInputExA, <NONE>, 'ReadConsoleInputExA', \ + ReadConsoleInputExW, <NONE>, 'ReadConsoleInputExW', \ + ReadConsoleInputW, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsRead>, 'ReadConsoleInputW', \ + ReadConsoleOutputA, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpReadRegion>, 'ReadConsoleOutputA', \ + ReadConsoleOutputAttribute, <.hConsoleOutput, .lpAttribute, .nLength, .dwReadCoord, .lpNumberOfAttrsRead>, 'ReadConsoleOutputAttribute', \ + ReadConsoleOutputCharacterA, <.hConsoleOutput, .lpCharacter, .nLength, .dwReadCoord, .lpNumberOfCharsRead>, 'ReadConsoleOutputCharacterA', \ + ReadConsoleOutputCharacterW, <.hConsoleOutput, .lpCharacter, .nLength, .dwReadCoord, .lpNumberOfCharsRead>, 'ReadConsoleOutputCharacterW', \ + ReadConsoleOutputW, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpReadRegion>, 'ReadConsoleOutputW', \ + ReadConsoleW, <.hConsoleInput, .lpBuffer, .nNumberOfCharsToRead, .lpNumberOfCharsRead, .lpReserved>, 'ReadConsoleW', \ + ReadDirectoryChangesW, <NONE>, 'ReadDirectoryChangesW', \ + ReadFile, <.hFile, .lpBuffer, .nNumberOfBytesToRead, .lpNumberOfBytesRead, .lpOverlapped>, 'ReadFile', \ + ReadFileEx, <.hFile, .lpBuffer, .nNumberOfBytesToRead, .lpOverlapped, .lpCompletionRoutine>, 'ReadFileEx', \ + ReadFileScatter, <.hFile, .aSegmentArray, .nNumberOfBytesToRead, .lpReserved, .lpOverlapped>, 'ReadFileScatter', \ + ReadProcessMemory, <.hProcess, .lpBaseAddress, .lpBuffer, .nSize, .lpNumberOfBytesWritten>, 'ReadProcessMemory', \ + RegisterConsoleIME, <NONE>, 'RegisterConsoleIME', \ + RegisterConsoleOS2, <NONE>, 'RegisterConsoleOS2', \ + RegisterConsoleVDM, <NONE>, 'RegisterConsoleVDM', \ + RegisterWaitForInputIdle, <NONE>, 'RegisterWaitForInputIdle', \ + RegisterWaitForSingleObject, <.phNewWaitObject, .hObject, .Callback, .Context, .dwMilliseconds, .dwFlags>, 'RegisterWaitForSingleObject', \ + RegisterWaitForSingleObjectEx, <.hObject, .Callback, .Context, .dwMilliseconds, .dwFlags>, 'RegisterWaitForSingleObjectEx', \ + RegisterWowBaseHandlers, <NONE>, 'RegisterWowBaseHandlers', \ + RegisterWowExec, <NONE>, 'RegisterWowExec', \ + ReleaseActCtx, <NONE>, 'ReleaseActCtx', \ + ReleaseMutex, <.hMutex>, 'ReleaseMutex', \ + ReleaseSemaphore, <.hSemaphore, .lReleaseCount, .lpPreviousCount>, 'ReleaseSemaphore', \ + RemoveDirectoryA, <.lpPathName>, 'RemoveDirectoryA', \ + RemoveDirectoryW, <.lpPathName>, 'RemoveDirectoryW', \ + RemoveLocalAlternateComputerNameA, <NONE>, 'RemoveLocalAlternateComputerNameA', \ + RemoveLocalAlternateComputerNameW, <NONE>, 'RemoveLocalAlternateComputerNameW', \ + RemoveVectoredExceptionHandler, <NONE>, 'RemoveVectoredExceptionHandler', \ + ReplaceFile, <.lpReplacedFileName, .lpReplacementFileName, .lpBackupFileName, .dwReplaceFlags, .lpExclude, .lpReserved>, 'ReplaceFile', \ + ReplaceFileA, <.lpReplacedFileName, .lpReplacementFileName, .lpBackupFileName, .dwReplaceFlags, .lpExclude, .lpReserved>, 'ReplaceFileA', \ + ReplaceFileW, <.lpReplacedFileName, .lpReplacementFileName, .lpBackupFileName, .dwReplaceFlags, .lpExclude, .lpReserved>, 'ReplaceFileW', \ + RequestDeviceWakeup, <.hDevice>, 'RequestDeviceWakeup', \ + RequestWakeupLatency, <.latency>, 'RequestWakeupLatency', \ + ResetEvent, <.hEvent>, 'ResetEvent', \ + ResetWriteWatch, <.lpBaseAddress, .dwRegionSize>, 'ResetWriteWatch', \ + RestoreLastError, <NONE>, 'RestoreLastError', \ + ResumeThread, <.hThread>, 'ResumeThread', \ + RtlCaptureContext, <NONE>, 'RtlCaptureContext', \ + RtlCaptureStackBackTrace, <NONE>, 'RtlCaptureStackBackTrace', \ + RtlFillMemory, <.Destination, .Length, .Fill>, 'RtlFillMemory', \ + RtlMoveMemory, <.dest, .source, .numBytes>, 'RtlMoveMemory', \ + RtlUnwind, <NONE>, 'RtlUnwind', \ + RtlZeroMemory, <.dest, .numBytes>, 'RtlZeroMemory', \ + ScrollConsoleScreenBufferA, <.hConsoleOutput, .lpScrollRectangle, .lpClipRectangle, .dwDestinationOrigin, .lpFill>, 'ScrollConsoleScreenBufferA', \ + ScrollConsoleScreenBufferW, <.hConsoleOutput, .lpScrollRectangle, .lpClipRectangle, .dwDestinationOrigin, .lpFill>, 'ScrollConsoleScreenBufferW', \ + SearchPathA, <.lpPath, .lpFileName, .lpExtension, .nBufferLength, .lpBuffer, .lpFilePart>, 'SearchPathA', \ + SearchPathW, <.lpPath, .lpFileName, .lpExtension, .nBufferLength, .lpBuffer, .lpFilePart>, 'SearchPathW', \ + SetCPGlobal, <NONE>, 'SetCPGlobal', \ + SetCalendarInfoA, <.Locale, .Calendar, .CalType, .lpCalData>, 'SetCalendarInfoA', \ + SetCalendarInfoW, <.Locale, .Calendar, .CalType, .lpCalData>, 'SetCalendarInfoW', \ + SetClientTimeZoneInformation, <NONE>, 'SetClientTimeZoneInformation', \ + SetComPlusPackageInstallStatus, <NONE>, 'SetComPlusPackageInstallStatus', \ + SetCommBreak, <.nCid>, 'SetCommBreak', \ + SetCommConfig, <.hCommDev, .lpCC, .dwSize>, 'SetCommConfig', \ + SetCommMask, <.hFile, .dwEvtMask>, 'SetCommMask', \ + SetCommState, <.hCommDev, .lpDCB>, 'SetCommState', \ + SetCommTimeouts, <.hFile, .lpCommTimeouts>, 'SetCommTimeouts', \ + SetComputerNameA, <.lpComputerName>, 'SetComputerNameA', \ + SetComputerNameExA, <.NameType, .lpBuffer>, 'SetComputerNameExA', \ + SetComputerNameExW, <.NameType, .lpBuffer>, 'SetComputerNameExW', \ + SetComputerNameW, <.lpComputerName>, 'SetComputerNameW', \ + SetConsoleActiveScreenBuffer, <.hConsoleOutput>, 'SetConsoleActiveScreenBuffer', \ + SetConsoleCP, <.wCodePageID>, 'SetConsoleCP', \ + SetConsoleCommandHistoryMode, <NONE>, 'SetConsoleCommandHistoryMode', \ + SetConsoleCtrlHandler, <.HandlerRoutine, .Add>, 'SetConsoleCtrlHandler', \ + SetConsoleCursor, <NONE>, 'SetConsoleCursor', \ + SetConsoleCursorInfo, <.hConsoleOutput, .lpConsoleCursorInfo>, 'SetConsoleCursorInfo', \ + SetConsoleCursorMode, <NONE>, 'SetConsoleCursorMode', \ + SetConsoleCursorPosition, <.hConsoleOutput, .dwCursorPosition>, 'SetConsoleCursorPosition', \ + SetConsoleDisplayMode, <NONE>, 'SetConsoleDisplayMode', \ + SetConsoleFont, <NONE>, 'SetConsoleFont', \ + SetConsoleHardwareState, <NONE>, 'SetConsoleHardwareState', \ + SetConsoleIcon, <NONE>, 'SetConsoleIcon', \ + SetConsoleInputExeNameA, <NONE>, 'SetConsoleInputExeNameA', \ + SetConsoleInputExeNameW, <NONE>, 'SetConsoleInputExeNameW', \ + SetConsoleKeyShortcuts, <NONE>, 'SetConsoleKeyShortcuts', \ + SetConsoleLocalEUDC, <NONE>, 'SetConsoleLocalEUDC', \ + SetConsoleMaximumWindowSize, <NONE>, 'SetConsoleMaximumWindowSize', \ + SetConsoleMenuClose, <NONE>, 'SetConsoleMenuClose', \ + SetConsoleMode, <.hConsoleHandle, .dwMode>, 'SetConsoleMode', \ + SetConsoleNlsMode, <NONE>, 'SetConsoleNlsMode', \ + SetConsoleNumberOfCommandsA, <NONE>, 'SetConsoleNumberOfCommandsA', \ + SetConsoleNumberOfCommandsW, <NONE>, 'SetConsoleNumberOfCommandsW', \ + SetConsoleOS2OemFormat, <NONE>, 'SetConsoleOS2OemFormat', \ + SetConsoleOutputCP, <.wCodePageID>, 'SetConsoleOutputCP', \ + SetConsolePalette, <NONE>, 'SetConsolePalette', \ + SetConsoleScreenBufferSize, <.hConsoleOutput, .dwSize>, 'SetConsoleScreenBufferSize', \ + SetConsoleTextAttribute, <.hConsoleOutput, .wAttributes>, 'SetConsoleTextAttribute', \ + SetConsoleTitleA, <.lpConsoleTitle>, 'SetConsoleTitleA', \ + SetConsoleTitleW, <.lpConsoleTitle>, 'SetConsoleTitleW', \ + SetConsoleWindowInfo, <.hConsoleOutput, .bAbsolute, .lpConsoleWindow>, 'SetConsoleWindowInfo', \ + SetCriticalSectionSpinCount, <.lpCriticalSection, .dwSpinCount>, 'SetCriticalSectionSpinCount', \ + SetCurrentDirectoryA, <.lpPathName>, 'SetCurrentDirectoryA', \ + SetCurrentDirectoryW, <.lpPathName>, 'SetCurrentDirectoryW', \ + SetDefaultCommConfigA, <.lpszName, .lpCC, .dwSize>, 'SetDefaultCommConfigA', \ + SetDefaultCommConfigW, <.lpszName, .lpCC, .dwSize>, 'SetDefaultCommConfigW', \ + SetDllDirectoryA, <NONE>, 'SetDllDirectoryA', \ + SetDllDirectoryW, <NONE>, 'SetDllDirectoryW', \ + SetEndOfFile, <.hFile>, 'SetEndOfFile', \ + SetEnvironmentVariableA, <.lpName, .lpValue>, 'SetEnvironmentVariableA', \ + SetEnvironmentVariableW, <.lpName, .lpValue>, 'SetEnvironmentVariableW', \ + SetErrorMode, <.wMode>, 'SetErrorMode', \ + SetEvent, <.hEvent>, 'SetEvent', \ + SetFileApisToANSI, <VOID>, 'SetFileApisToANSI', \ + SetFileApisToOEM, <VOID>, 'SetFileApisToOEM', \ + SetFileAttributesA, <.lpFileName, .dwFileAttributes>, 'SetFileAttributesA', \ + SetFileAttributesW, <.lpFileName, .dwFileAttributes>, 'SetFileAttributesW', \ + SetFilePointer, <.hFile, .lDistanceToMove, .lpDistanceToMoveHigh, .dwMoveMethod>, 'SetFilePointer', \ + SetFilePointerEx, <.hFile, .liDistanceToMove, .lpNewFilePointer, .dwMoveMethod>, 'SetFilePointerEx', \ + SetFileShortNameA, <NONE>, 'SetFileShortNameA', \ + SetFileShortNameW, <NONE>, 'SetFileShortNameW', \ + SetFileTime, <.hFile, .lpCreationTime, .lpLastAccessTime, .lpLastWriteTime>, 'SetFileTime', \ + SetFileValidData, <NONE>, 'SetFileValidData', \ + SetFirmwareEnvironmentVariableA, <NONE>, 'SetFirmwareEnvironmentVariableA', \ + SetFirmwareEnvironmentVariableW, <NONE>, 'SetFirmwareEnvironmentVariableW', \ + SetHandleContext, <NONE>, 'SetHandleContext', \ + SetHandleCount, <.wNumber>, 'SetHandleCount', \ + SetHandleInformation, <.hObject, .dwMask, .dwFlags>, 'SetHandleInformation', \ + SetInformationJobObject, <.hJob, .JobObjectInformationClass, .lpJobObjectInformation, .cbJobObjectInformationLength>, 'SetInformationJobObject', \ + SetLastConsoleEventActive, <NONE>, 'SetLastConsoleEventActive', \ + SetLastError, <.dwErrCode>, 'SetLastError', \ + SetLocalPrimaryComputerNameA, <NONE>, 'SetLocalPrimaryComputerNameA', \ + SetLocalPrimaryComputerNameW, <NONE>, 'SetLocalPrimaryComputerNameW', \ + SetLocalTime, <.lpSystemTime>, 'SetLocalTime', \ + SetLocaleInfoA, <.Locale, .LCType, .lpLCData>, 'SetLocaleInfoA', \ + SetLocaleInfoW, <.Locale, .LCType, .lpLCData>, 'SetLocaleInfoW', \ + SetMailslotInfo, <.hMailslot, .lReadTimeout>, 'SetMailslotInfo', \ + SetMessageWaitingIndicator, <.hMsgIndicator, .ulMsgCount>, 'SetMessageWaitingIndicator', \ + SetNamedPipeHandleState, <.hNamedPipe, .lpMode, .lpMaxCollectionCount, .lpCollectDataTimeout>, 'SetNamedPipeHandleState', \ + SetPriorityClass, <.hProcess, .dwPriorityClass>, 'SetPriorityClass', \ + SetProcessAffinityMask, <.hProcess, .dwProcessAffinityMask>, 'SetProcessAffinityMask', \ + SetProcessDEPPolicy, <NONE>, 'SetProcessDEPPolicy', \ + SetProcessPriorityBoost, <.hProcess, .bDisablePriorityBoost>, 'SetProcessPriorityBoost', \ + SetProcessShutdownParameters, <.dwLevel, .dwFlags>, 'SetProcessShutdownParameters', \ + SetProcessWorkingSetSize, <.hProcess, .dwMinimumWorkingSetSize, .dwMaximumWorkingSetSize>, 'SetProcessWorkingSetSize', \ + SetStdHandle, <.nStdHandle, .nHandle>, 'SetStdHandle', \ + SetSystemPowerState, <.fSuspend, .fForce>, 'SetSystemPowerState', \ + SetSystemTime, <.lpSystemTime>, 'SetSystemTime', \ + SetSystemTimeAdjustment, <.dwTimeAdjustment, .bTimeAdjustmentDisabled>, 'SetSystemTimeAdjustment', \ + SetTapeParameters, <.hDevice, .dwOperation, .lpTapeInformation>, 'SetTapeParameters', \ + SetTapePosition, <.hDevice, .dwPositionMethod, .dwPartition, .dwOffsetLow, .dwOffsetHigh, .bimmediate>, 'SetTapePosition', \ + SetTermsrvAppInstallMode, <NONE>, 'SetTermsrvAppInstallMode', \ + SetThreadAffinityMask, <.hThread, .dwThreadAffinityMask>, 'SetThreadAffinityMask', \ + SetThreadContext, <.hThread, .lpContext>, 'SetThreadContext', \ + SetThreadExecutionState, <.esFlags>, 'SetThreadExecutionState', \ + SetThreadIdealProcessor, <.hThread, .dwIdealProcessor>, 'SetThreadIdealProcessor', \ + SetThreadLocale, <.Locale>, 'SetThreadLocale', \ + SetThreadPriority, <.hThread, .nPriority>, 'SetThreadPriority', \ + SetThreadPriorityBoost, <.hThread, .bDisablePriorityBoost>, 'SetThreadPriorityBoost', \ + SetThreadUILanguage, <NONE>, 'SetThreadUILanguage', \ + SetTimeZoneInformation, <.lpTimeZoneInformation>, 'SetTimeZoneInformation', \ + SetTimerQueueTimer, <.TimerQueue, .Callback, .Parameter, .DueTime, .Period, .PreferIo>, 'SetTimerQueueTimer', \ + SetUnhandledExceptionFilter, <.lpTopLevelExceptionFilter>, 'SetUnhandledExceptionFilter', \ + SetUserGeoID, <NONE>, 'SetUserGeoID', \ + SetVDMCurrentDirectories, <NONE>, 'SetVDMCurrentDirectories', \ + SetVolumeLabelA, <.lpRootPathName, .lpVolumeName>, 'SetVolumeLabelA', \ + SetVolumeLabelW, <.lpRootPathName, .lpVolumeName>, 'SetVolumeLabelW', \ + SetVolumeMountPointA, <.lpszVolumeMountPoint, .lpszVolumeName>, 'SetVolumeMountPointA', \ + SetVolumeMountPointW, <.lpszVolumeMountPoint, .lpszVolumeName>, 'SetVolumeMountPointW', \ + SetWaitableTimer, <.hTimer, .lpDueTime, .lPeriod, .pfnCompletionRoutine, .lpArgToCompletionRoutine, .fResume>, 'SetWaitableTimer', \ + SetupComm, <.hFile, .dwInQueue, .dwOutQueue>, 'SetupComm', \ + ShowConsoleCursor, <NONE>, 'ShowConsoleCursor', \ + SignalObjectAndWait, <.hObjectToSignal, .hObjectToWaitOn, .dwMilliseconds, .bAlertable>, 'SignalObjectAndWait', \ + SizeofResource, <.hInstance, .hResInfo>, 'SizeofResource', \ + SleepWin, <.dwMilliseconds>, 'Sleep', \ + SleepEx, <.dwMilliseconds, .bAlertable>, 'SleepEx', \ + SuspendThread, <.hThread>, 'SuspendThread', \ + SwitchToFiber, <.lpFiber>, 'SwitchToFiber', \ + SwitchToThread, <VOID>, 'SwitchToThread', \ + SystemTimeToFileTime, <.lpSystemTime, .lpFileTime>, 'SystemTimeToFileTime', \ + SystemTimeToTzSpecificLocalTime, <.lpTimeZoneInformation, .lpUniversalTime, .lpLocalTime>, 'SystemTimeToTzSpecificLocalTime', \ + TerminateJobObject, <.hJob, .uExitCode>, 'TerminateJobObject', \ + TerminateProcess, <.hProcess, .uExitCode>, 'TerminateProcess', \ + TerminateThread, <.hThread, .dwExitCode>, 'TerminateThread', \ + TermsrvAppInstallMode, <NONE>, 'TermsrvAppInstallMode', \ + Thread32First, <.hSnapshot, .lpte>, 'Thread32First', \ + Thread32Next, <.hSnapshot, .lpte>, 'Thread32Next', \ + TlsAlloc, <VOID>, 'TlsAlloc', \ + TlsFree, <.dwTlsIndex>, 'TlsFree', \ + TlsGetValue, <.dwTlsIndex>, 'TlsGetValue', \ + TlsSetValue, <.dwTlsIndex, .lpTlsValue>, 'TlsSetValue', \ + Toolhelp32ReadProcessMemory, <.th32ProcessID, .lpBaseAddress, .lpBuffer, .cbRead, .lpNumberOfBytesRead>, 'Toolhelp32ReadProcessMemory', \ + TransactNamedPipe, <.hNamedPipe, .lpInBuffer, .nInBufferSize, .lpOutBuffer, .nOutBufferSize, .lpBytesRead, .lpOverlapped>, 'TransactNamedPipe', \ + TransmitCommChar, <.nCid, .cChar>, 'TransmitCommChar', \ + TrimVirtualBuffer, <NONE>, 'TrimVirtualBuffer', \ + TryEnterCriticalSection, <.lpCriticalSection>, 'TryEnterCriticalSection', \ + TzSpecificLocalTimeToSystemTime, <NONE>, 'TzSpecificLocalTimeToSystemTime', \ + UTRegister, <NONE>, 'UTRegister', \ + UTUnRegister, <NONE>, 'UTUnRegister', \ + UnhandledExceptionFilter, <.ExceptionInfo>, 'UnhandledExceptionFilter', \ + UnlockFile, <.hFile, .dwFileOffsetLow, .dwFileOffsetHigh, .nNumberOfBytesToUnlockLow, .nNumberOfBytesToUnlockHigh>, 'UnlockFile', \ + UnlockFileEx, <.hFile, .dwReserved, .nNumberOfBytesToUnlockLow, .nNumberOfBytesToUnlockHigh, .lpOverlapped>, 'UnlockFileEx', \ + UnmapViewOfFile, <.lpBaseAddress>, 'UnmapViewOfFile', \ + UnregisterConsoleIME, <NONE>, 'UnregisterConsoleIME', \ + UnregisterWait, <.WaitHandle>, 'UnregisterWait', \ + UnregisterWaitEx, <.WaitHandle, .CompletionEvent>, 'UnregisterWaitEx', \ + UpdateResourceA, <.hUpdate, .lpType, .lpName, .wLanguage, .lpData, .cbData>, 'UpdateResourceA', \ + UpdateResourceW, <.hUpdate, .lpType, .lpName, .wLanguage, .lpData, .cbData>, 'UpdateResourceW', \ + VDMConsoleOperation, <NONE>, 'VDMConsoleOperation', \ + VDMOperationStarted, <NONE>, 'VDMOperationStarted', \ + ValidateLCType, <NONE>, 'ValidateLCType', \ + ValidateLocale, <NONE>, 'ValidateLocale', \ + VerLanguageNameA, <.wLang, .szLang, .nSize>, 'VerLanguageNameA', \ + VerLanguageNameW, <.wLang, .szLang, .nSize>, 'VerLanguageNameW', \ + VerSetConditionMask, <.ConditionMask, .TypeMask, .Condition>, 'VerSetConditionMask', \ + VerifyConsoleIoHandle, <NONE>, 'VerifyConsoleIoHandle', \ + VerifyVersionInfoA, <.lpVersionInformation, .dwTypeMask, .dwlConditionMask>, 'VerifyVersionInfoA', \ + VerifyVersionInfoW, <.lpVersionInformation, .dwTypeMask, .dwlConditionMask>, 'VerifyVersionInfoW', \ + VirtualAlloc, <.lpAddress, .dwSize, .flAllocationType, .flProtect>, 'VirtualAlloc', \ + VirtualAllocEx, <.hProcess, .lpAddress, .dwSize, .flAllocationType, .flProtect>, 'VirtualAllocEx', \ + VirtualBufferExceptionHandler, <NONE>, 'VirtualBufferExceptionHandler', \ + VirtualFree, <.lpAddress, .dwSize, .dwFreeType>, 'VirtualFree', \ + VirtualFreeEx, <.hProcess, .lpAddress, .dwSize, .dwFreeType>, 'VirtualFreeEx', \ + VirtualLock, <.lpAddress, .dwSize>, 'VirtualLock', \ + VirtualProtect, <.lpAddress, .dwSize, .flNewProtect, .lpflOldProtect>, 'VirtualProtect', \ + VirtualProtectEx, <.hProcess, .lpAddress, .dwSize, .flNewProtect, .lpflOldProtect>, 'VirtualProtectEx', \ + VirtualQuery, <.lpAddress, .lpBuffer, .dwLength>, 'VirtualQuery', \ + VirtualQueryEx, <.hProcess, .lpAddress, .lpBuffer, .dwLength>, 'VirtualQueryEx', \ + VirtualUnlock, <.lpAddress, .dwSize>, 'VirtualUnlock', \ + WTSGetActiveConsoleSessionId, <NONE>, 'WTSGetActiveConsoleSessionId', \ + WaitCommEvent, <.hFile, .lpEvtMask, .lpOverlapped>, 'WaitCommEvent', \ + WaitForDebugEvent, <.lpDebugEvent, .dwMilliseconds>, 'WaitForDebugEvent', \ + WaitForMultipleObjects, <.nCount, .lpHandles, .bWaitAll, .dwMilliseconds>, 'WaitForMultipleObjects', \ + WaitForMultipleObjectsEx, <.nCount, .lpHandles, .bWaitAll, .dwMilliseconds, .bAlertable>, 'WaitForMultipleObjectsEx', \ + WaitForSingleObject, <.hHandle, .dwMilliseconds>, 'WaitForSingleObject', \ + WaitForSingleObjectEx, <.hHandle, .dwMilliseconds, .bAlertable>, 'WaitForSingleObjectEx', \ + WaitNamedPipeA, <.lpNamedPipeName, .nTimeOut>, 'WaitNamedPipeA', \ + WaitNamedPipeW, <.lpNamedPipeName, .nTimeOut>, 'WaitNamedPipeW', \ + WideCharToMultiByte, <.CodePage, .dwFlags, .lpWideCharStr, .cchWideChar, .lpMultiByteStr, .cchMultiByte, .lpDefaultChar, .lpUsedDefaultChar, \ + >, 'WideCharToMultiByte', \ + WinExec, <.lpCmdLine, .nCmdShow>, 'WinExec', \ + WriteConsoleA, <.hConsoleOutput, .lpBuffer, .nNumberOfCharsToWrite, .lpNumberOfCharsWritten, .lpReserved>, 'WriteConsoleA', \ + WriteConsoleInputA, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsWritten>, 'WriteConsoleInputA', \ + WriteConsoleInputVDMA, <NONE>, 'WriteConsoleInputVDMA', \ + WriteConsoleInputVDMW, <NONE>, 'WriteConsoleInputVDMW', \ + WriteConsoleInputW, <.hConsoleInput, .lpBuffer, .nLength, .lpNumberOfEventsWritten>, 'WriteConsoleInputW', \ + WriteConsoleOutputA, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpWriteRegion>, 'WriteConsoleOutputA', \ + WriteConsoleOutputAttribute, <.hConsoleOutput, .lpAttribute, .nLength, .dwWriteCoord, .lpNumberOfAttrsWritten>, 'WriteConsoleOutputAttribute', \ + WriteConsoleOutputCharacterA, <.hConsoleOutput, .lpCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'WriteConsoleOutputCharacterA', \ + WriteConsoleOutputCharacterW, <.hConsoleOutput, .lpCharacter, .nLength, .dwWriteCoord, .lpNumberOfCharsWritten>, 'WriteConsoleOutputCharacterW', \ + WriteConsoleOutputW, <.hConsoleOutput, .lpBuffer, .dwBufferSize, .dwBufferCoord, .lpWriteRegion>, 'WriteConsoleOutputW', \ + WriteConsoleW, <.hConsoleOutput, .lpBuffer, .nNumberOfCharsToWrite, .lpNumberOfCharsWritten, .lpReserved>, 'WriteConsoleW', \ + WriteFile, <.hFile, .lpBuffer, .nNumberOfBytesToWrite, .lpNumberOfBytesWritten, .lpOverlapped>, 'WriteFile', \ + WriteFileEx, <.hFile, .lpBuffer, .nNumberOfBytesToWrite, .lpOverlapped, .lpCompletionRoutine>, 'WriteFileEx', \ + WriteFileGather, <.hFile, .aSegmentArray, .nNumberOfBytesToWrite, .lpReserved, .lpOverlapped>, 'WriteFileGather', \ + WritePrivateProfileSectionA, <.lpAppName, .lpString, .lpFileName>, 'WritePrivateProfileSectionA', \ + WritePrivateProfileSectionW, <.lpAppName, .lpString, .lpFileName>, 'WritePrivateProfileSectionW', \ + WritePrivateProfileStringA, <.lpApplicationName, .lpKeyName, .lpString, .lpFileName>, 'WritePrivateProfileStringA', \ + WritePrivateProfileStringW, <.lpApplicationName, .lpKeyName, .lpString, .lpFileName>, 'WritePrivateProfileStringW', \ + WritePrivateProfileStructA, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'WritePrivateProfileStructA', \ + WritePrivateProfileStructW, <.lpszSection, .lpszKey, .lpStruct, .uSizeStruct, .szFile>, 'WritePrivateProfileStructW', \ + WriteProcessMemory, <.hProcess, .lpBaseAddress, .lpBuffer, .nSize, .lpNumberOfBytesWritten>, 'WriteProcessMemory', \ + WriteProfileSectionA, <.lpAppName, .lpString>, 'WriteProfileSectionA', \ + WriteProfileSectionW, <.lpAppName, .lpString>, 'WriteProfileSectionW', \ + WriteProfileStringA, <.lpszSection, .lpszKeyName, .lpszString>, 'WriteProfileStringA', \ + WriteProfileStringW, <.lpszSection, .lpszKeyName, .lpszString>, 'WriteProfileStringW', \ + WriteTapemark, <.hDevice, .dwTapemarkType, .dwTapemarkCount, .bimmediate>, 'WriteTapemark', \ + ZombifyActCtx, <NONE>, 'ZombifyActCtx', \ + _hread, <NONE>, '_hread', \ + _hwrite, <NONE>, '_hwrite', \ + _lclose, <NONE>, '_lclose', \ + _lcreat, <NONE>, '_lcreat', \ + _llseek, <NONE>, '_llseek', \ + _lopen, <NONE>, '_lopen', \ + _lread, <NONE>, '_lread', \ + _lwrite, <NONE>, '_lwrite', \ + lstrcat, <.lpString1, .lpString2>, 'lstrcat', \ + lstrcatA, <.lpString1, .lpString2>, 'lstrcatA', \ + lstrcatW, <.lpString1, .lpString2>, 'lstrcatW', \ + lstrcmp, <.lpString1, .lpString2>, 'lstrcmp', \ + lstrcmpA, <.lpString1, .lpString2>, 'lstrcmpA', \ + lstrcmpW, <.lpString1, .lpString2>, 'lstrcmpW', \ + lstrcmpi, <.lpString1, .lpString2>, 'lstrcmpi', \ + lstrcmpiA, <.lpString1, .lpString2>, 'lstrcmpiA', \ + lstrcmpiW, <.lpString1, .lpString2>, 'lstrcmpiW', \ + lstrcpy, <.lpString1, .lpString2>, 'lstrcpy', \ + lstrcpyA, <.lpString1, .lpString2>, 'lstrcpyA', \ + lstrcpyW, <.lpString1, .lpString2>, 'lstrcpyW', \ + lstrcpyn, <.lpString1, .lpString2, .iMaxLength>, 'lstrcpyn', \ + lstrcpynA, <.lpString1, .lpString2, .iMaxLength>, 'lstrcpynA', \ + lstrcpynW, <.lpString1, .lpString2, .iMaxLength>, 'lstrcpynW', \ + lstrlen, <.lpString>, 'lstrlen', \ + lstrlenA, <.lpString>, 'lstrlenA', \ + lstrlenW, <.lpString>, 'lstrlenW' ADDED freshlib/imports/Win32/msimg32.inc Index: freshlib/imports/Win32/msimg32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/msimg32.inc @@ -0,0 +1,20 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: msimg32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto msimg32, \ + AlphaBlend, <.hdcDest, .xDest, .yDest, .wDest, .hDest, .hdcSrc, .xSrc, .ySrc, .wSrc, .hSrc, .pBlendFn>, 'AlphaBlend', \ + GradientFill, <.hdc, .PTRIVERTEX, .ulong, .pvoid>, 'GradientFill', \ + TransparentBlt, <.hdc, .t, .uint>, 'TransparentBlt', \ + vSetDdrawflag, <NONE>, 'vSetDdrawflag' ADDED freshlib/imports/Win32/odbc32.inc Index: freshlib/imports/Win32/odbc32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/odbc32.inc @@ -0,0 +1,228 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: odbc32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +import_proto odbc32, \ + CloseODBCPerfData, <NONE>, 'CloseODBCPerfData', \ + CollectODBCPerfData, <NONE>, 'CollectODBCPerfData', \ + CursorLibLockDbc, <NONE>, 'CursorLibLockDbc', \ + CursorLibLockDesc, <NONE>, 'CursorLibLockDesc', \ + CursorLibLockStmt, <NONE>, 'CursorLibLockStmt', \ + CursorLibTransact, <NONE>, 'CursorLibTransact', \ + GetODBCSharedData, <NONE>, 'GetODBCSharedData', \ + LockHandle, <NONE>, 'LockHandle', \ + MpHeapAlloc, <NONE>, 'MpHeapAlloc', \ + MpHeapCompact, <NONE>, 'MpHeapCompact', \ + MpHeapCreate, <NONE>, 'MpHeapCreate', \ + MpHeapDestroy, <NONE>, 'MpHeapDestroy', \ + MpHeapFree, <NONE>, 'MpHeapFree', \ + MpHeapReAlloc, <NONE>, 'MpHeapReAlloc', \ + MpHeapSize, <NONE>, 'MpHeapSize', \ + MpHeapValidate, <NONE>, 'MpHeapValidate', \ + ODBCGetTryWaitValue, <VOID>, 'ODBCGetTryWaitValue', \ + ODBCInternalConnectW, <NONE>, 'ODBCInternalConnectW', \ + ODBCQualifyFileDSNW, <NONE>, 'ODBCQualifyFileDSNW', \ + ODBCSetTryWaitValue, <.dwValue>, 'ODBCSetTryWaitValue', \ + OpenODBCPerfData, <NONE>, 'OpenODBCPerfData', \ + PostComponentError, <NONE>, 'PostComponentError', \ + PostODBCComponentError, <NONE>, 'PostODBCComponentError', \ + PostODBCError, <NONE>, 'PostODBCError', \ + SQLAllocConnect, <.henv, .phdbc>, 'SQLAllocConnect', \ + SQLAllocEnv, <.phenv>, 'SQLAllocEnv', \ + SQLAllocHandle, <.HandleType, .InputHandle, .OutputHandle>, 'SQLAllocHandle', \ + SQLAllocHandleStd, <.fHandleType, .hInput, .phOutput>, 'SQLAllocHandleStd', \ + SQLAllocStmt, <.hdbc, .phstmt>, 'SQLAllocStmt', \ + SQLBindCol, <.hstmt, .icol, .fCType, .rgbValue, .cbValueMax, .pcbValue>, 'SQLBindCol', \ + SQLBindParam, <.StatementHandle, .ParameterNumber, .ValueType, .ParameterType, .LengthPrecision, .ParameterScale, .ParameterValue, \ + .StrLen_or_Ind>, 'SQLBindParam', \ + SQLBindParameter, <.hstmt, .ipar, .fParamType, .fCType, .fSqlType, .cbColDef, .ibScale, .rgbValue, .cbValueMax, .pcbValue>, 'SQLBindParameter', \ + SQLBrowseConnect, <.hdbc, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut>, 'SQLBrowseConnect', \ + SQLBrowseConnectA, <.hdbc, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut>, 'SQLBrowseConnectA', \ + SQLBrowseConnectW, <.hdbc, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut>, 'SQLBrowseConnectW', \ + SQLBulkOperations, <.StatementHandle, .Operation>, 'SQLBulkOperations', \ + SQLCancel, <.hstmt>, 'SQLCancel', \ + SQLCloseCursor, <.StatementHandle>, 'SQLCloseCursor', \ + SQLColAttribute, <.hstmt, .iCol, .iField, .pCharAttr, .cbCharAttrMax, .pcbCharAttr, .pNumAttr>, 'SQLColAttribute', \ + SQLColAttributeA, <.hstmt, .iCol, .iField, .pCharAttr, .cbCharAttrMax, .pcbCharAttr, .pNumAttr>, 'SQLColAttributeA', \ + SQLColAttributeW, <.hstmt, .iCol, .iField, .pCharAttr, .cbCharAttrMax, .pcbCharAttr, .pNumAttr>, 'SQLColAttributeW', \ + SQLColAttributes, <.hstmt, .icol, .fDescType, .rgbDesc, .cbDescMax, .pcbDesc, .pfDesc>, 'SQLColAttributes', \ + SQLColAttributesA, <.hstmt, .icol, .fDescType, .rgbDesc, .cbDescMax, .pcbDesc, .pfDesc>, 'SQLColAttributesA', \ + SQLColAttributesW, <.hstmt, .icol, .fDescType, .rgbDesc, .cbDescMax, .pcbDesc, .pfDesc>, 'SQLColAttributesW', \ + SQLColumnPrivileges, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, \ + .cbColumnName>, 'SQLColumnPrivileges', \ + SQLColumnPrivilegesA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, \ + .cbColumnName>, 'SQLColumnPrivilegesA', \ + SQLColumnPrivilegesW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, \ + .cbColumnName>, 'SQLColumnPrivilegesW', \ + SQLColumns, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, .cbColumnName, \ + >, 'SQLColumns', \ + SQLColumnsA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, \ + .cbColumnName>, 'SQLColumnsA', \ + SQLColumnsW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szColumnName, \ + .cbColumnName>, 'SQLColumnsW', \ + SQLConnect, <.hdbc, .szDSN, .cbDSN, .szUID, .cbUID, .szAuthStr, .cbAuthStr>, 'SQLConnect', \ + SQLConnectA, <.hdbc, .szDSN, .cbDSN, .szUID, .cbUID, .szAuthStr, .cbAuthStr>, 'SQLConnectA', \ + SQLConnectW, <.hdbc, .szDSN, .cbDSN, .szUID, .cbUID, .szAuthStr, .cbAuthStr>, 'SQLConnectW', \ + SQLCopyDesc, <.SourceDescHandle, .TargetDescHandle>, 'SQLCopyDesc', \ + SQLDataSources, <.henv, .fDirection, .szDSN, .cbDSNMax, .pcbDSN, .szDescription, .cbDescriptionMax, .pcbDescription>, 'SQLDataSources', \ + SQLDataSourcesA, <.henv, .fDirection, .szDSN, .cbDSNMax, .pcbDSN, .szDescription, .cbDescriptionMax, .pcbDescription>, 'SQLDataSourcesA', \ + SQLDataSourcesW, <.henv, .fDirection, .szDSN, .cbDSNMax, .pcbDSN, .szDescription, .cbDescriptionMax, .pcbDescription>, 'SQLDataSourcesW', \ + SQLDescribeCol, <.hstmt, .icol, .szColName, .cbColNameMax, .pcbColName, .pfSqlType, .pcbColDef, .pibScale, .pfNullable>, 'SQLDescribeCol', \ + SQLDescribeColA, <.hstmt, .icol, .szColName, .cbColNameMax, .pcbColName, .pfSqlType, .pcbColDef, .pibScale, .pfNullable>, 'SQLDescribeColA', \ + SQLDescribeColW, <.hstmt, .icol, .szColName, .cbColNameMax, .pcbColName, .pfSqlType, .pcbColDef, .pibScale, .pfNullable>, 'SQLDescribeColW', \ + SQLDescribeParam, <.hstmt, .ipar, .pfSqlType, .pcbParamDef, .pibScale, .pfNullable>, 'SQLDescribeParam', \ + SQLDisconnect, <.hdbc>, 'SQLDisconnect', \ + SQLDriverConnect, <.hdbc, .hwnd, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut, .fDriverCompletion, \ + >, 'SQLDriverConnect', \ + SQLDriverConnectA, <.hdbc, .hwnd, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut, .fDriverCompletion, \ + >, 'SQLDriverConnectA', \ + SQLDriverConnectW, <.hdbc, .hwnd, .szConnStrIn, .cbConnStrIn, .szConnStrOut, .cbConnStrOutMax, .pcbConnStrOut, .fDriverCompletion, \ + >, 'SQLDriverConnectW', \ + SQLDrivers, <.henv, .fDirection, .szDriverDesc, .cbDriverDescMax, .pcbDriverDesc, .szDriverAttributes, .cbDrvrAttrMax, .pcbDrvrAttr, \ + >, 'SQLDrivers', \ + SQLDriversA, <.henv, .fDirection, .szDriverDesc, .cbDriverDescMax, .pcbDriverDesc, .szDriverAttributes, .cbDrvrAttrMax, .pcbDrvrAttr, \ + >, 'SQLDriversA', \ + SQLDriversW, <.henv, .fDirection, .szDriverDesc, .cbDriverDescMax, .pcbDriverDesc, .szDriverAttributes, .cbDrvrAttrMax, .pcbDrvrAttr, \ + >, 'SQLDriversW', \ + SQLEndTran, <.HandleType, .handle, .CompletionType>, 'SQLEndTran', \ + SQLError, <.henv, .hdbc, .hstmt, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLError', \ + SQLErrorA, <.henv, .hdbc, .hstmt, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLErrorA', \ + SQLErrorW, <.henv, .hdbc, .hstmt, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLErrorW', \ + SQLExecDirect, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLExecDirect', \ + SQLExecDirectA, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLExecDirectA', \ + SQLExecDirectW, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLExecDirectW', \ + SQLExecute, <.hstmt>, 'SQLExecute', \ + SQLExtendedFetch, <.hstmt, .fFetchType, .irow, .pcrow, .rgfRowStatus>, 'SQLExtendedFetch', \ + SQLFetch, <.hstmt>, 'SQLFetch', \ + SQLFetchScroll, <.StatementHandle, .FetchOrientation, .FetchOffset>, 'SQLFetchScroll', \ + SQLForeignKeys, <.hstmt, .szPkCatalogName, .cbPkCatalogName, .szPkSchemaName, .cbPkSchemaName, .szPkTableName, .cbPkTableName, \ + .szFkCatalogName, .cbFkCatalogName, .szFkSchemaName, .cbFkSchemaName, .szFkTableName, .cbFkTableName>, 'SQLForeignKeys', \ + SQLForeignKeysA, <.hstmt, .szPkCatalogName, .cbPkCatalogName, .szPkSchemaName, .cbPkSchemaName, .szPkTableName, .cbPkTableName, \ + .szFkCatalogName, .cbFkCatalogName, .szFkSchemaName, .cbFkSchemaName, .szFkTableName, .cbFkTableName>, 'SQLForeignKeysA', \ + SQLForeignKeysW, <.hstmt, .szPkCatalogName, .cbPkCatalogName, .szPkSchemaName, .cbPkSchemaName, .szPkTableName, .cbPkTableName, \ + .szFkCatalogName, .cbFkCatalogName, .szFkSchemaName, .cbFkSchemaName, .szFkTableName, .cbFkTableName>, 'SQLForeignKeysW', \ + SQLFreeConnect, <.hdbc>, 'SQLFreeConnect', \ + SQLFreeEnv, <.henv>, 'SQLFreeEnv', \ + SQLFreeHandle, <.HandleType, .handle>, 'SQLFreeHandle', \ + SQLFreeStmt, <.hstmt, .fOption>, 'SQLFreeStmt', \ + SQLGetConnectAttr, <.ConnectionHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetConnectAttr', \ + SQLGetConnectAttrA, <.ConnectionHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetConnectAttrA', \ + SQLGetConnectAttrW, <.ConnectionHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetConnectAttrW', \ + SQLGetConnectOption, <.hdbc, .fOption, .pvParam>, 'SQLGetConnectOption', \ + SQLGetConnectOptionA, <.hdbc, .fOption, .pvParam>, 'SQLGetConnectOptionA', \ + SQLGetConnectOptionW, <.hdbc, .fOption, .pvParam>, 'SQLGetConnectOptionW', \ + SQLGetCursorName, <.hstmt, .szCursor, .cbCursorMax, .pcbCursor>, 'SQLGetCursorName', \ + SQLGetCursorNameA, <.hstmt, .szCursor, .cbCursorMax, .pcbCursor>, 'SQLGetCursorNameA', \ + SQLGetCursorNameW, <.hstmt, .szCursor, .cbCursorMax, .pcbCursor>, 'SQLGetCursorNameW', \ + SQLGetData, <.hstmt, .icol, .fCType, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetData', \ + SQLGetDescField, <.hdesc, .iRecord, .iField, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetDescField', \ + SQLGetDescFieldA, <.hdesc, .iRecord, .iField, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetDescFieldA', \ + SQLGetDescFieldW, <.hdesc, .iRecord, .iField, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetDescFieldW', \ + SQLGetDescRec, <.hdesc, .iRecord, .szName, .cbNameMax, .pcbName, .pfType, .pfSubType, .pLength, .pPrecision, .pScale, .pNullable, \ + >, 'SQLGetDescRec', \ + SQLGetDescRecA, <.hdesc, .iRecord, .szName, .cbNameMax, .pcbName, .pfType, .pfSubType, .pLength, .pPrecision, .pScale, .pNullable, \ + >, 'SQLGetDescRecA', \ + SQLGetDescRecW, <.hdesc, .iRecord, .szName, .cbNameMax, .pcbName, .pfType, .pfSubType, .pLength, .pPrecision, .pScale, .pNullable, \ + >, 'SQLGetDescRecW', \ + SQLGetDiagField, <.HandleType, .handle, .RecNumber, .DiagIdentifier, .DiagInfo, .BufferLength, .StringLength>, 'SQLGetDiagField', \ + SQLGetDiagFieldA, <.HandleType, .handle, .RecNumber, .DiagIdentifier, .DiagInfo, .BufferLength, .StringLength>, 'SQLGetDiagFieldA', \ + SQLGetDiagFieldW, <.HandleType, .handle, .RecNumber, .DiagIdentifier, .DiagInfo, .BufferLength, .StringLength>, 'SQLGetDiagFieldW', \ + SQLGetDiagRec, <.fHandleType, .handle, .iRecord, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLGetDiagRec', \ + SQLGetDiagRecA, <.fHandleType, .handle, .iRecord, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLGetDiagRecA', \ + SQLGetDiagRecW, <.fHandleType, .handle, .iRecord, .szSqlState, .pfNativeError, .szErrorMsg, .cbErrorMsgMax, .pcbErrorMsg>, 'SQLGetDiagRecW', \ + SQLGetEnvAttr, <.EnvironmentHandle, .lAttribute, .lValue, .BufferLength, .StringLength>, 'SQLGetEnvAttr', \ + SQLGetFunctions, <.hdbc, .fFunction, .pfExists>, 'SQLGetFunctions', \ + SQLGetInfo, <.hdbc, .fInfoType, .rgbInfoValue, .cbInfoValueMax, .pcbInfoValue>, 'SQLGetInfo', \ + SQLGetInfoA, <.hdbc, .fInfoType, .rgbInfoValue, .cbInfoValueMax, .pcbInfoValue>, 'SQLGetInfoA', \ + SQLGetInfoW, <.hdbc, .fInfoType, .rgbInfoValue, .cbInfoValueMax, .pcbInfoValue>, 'SQLGetInfoW', \ + SQLGetStmtAttr, <.hstmt, .fAttribute, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetStmtAttr', \ + SQLGetStmtAttrA, <.hstmt, .fAttribute, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetStmtAttrA', \ + SQLGetStmtAttrW, <.hstmt, .fAttribute, .rgbValue, .cbValueMax, .pcbValue>, 'SQLGetStmtAttrW', \ + SQLGetStmtOption, <.hstmt, .fOption, .pvParam>, 'SQLGetStmtOption', \ + SQLGetTypeInfo, <.hstmt, .fSqlType>, 'SQLGetTypeInfo', \ + SQLGetTypeInfoA, <.hstmt, .fSqlType>, 'SQLGetTypeInfoA', \ + SQLGetTypeInfoW, <.hstmt, .fSqlType>, 'SQLGetTypeInfoW', \ + SQLMoreResults, <.hstmt>, 'SQLMoreResults', \ + SQLNativeSql, <.hdbc, .szSqlStrIn, .cbSqlStrIn, .szSqlStr, .cbSqlStrMax, .pcbSqlStr>, 'SQLNativeSql', \ + SQLNativeSqlA, <.hdbc, .szSqlStrIn, .cbSqlStrIn, .szSqlStr, .cbSqlStrMax, .pcbSqlStr>, 'SQLNativeSqlA', \ + SQLNativeSqlW, <.hdbc, .szSqlStrIn, .cbSqlStrIn, .szSqlStr, .cbSqlStrMax, .pcbSqlStr>, 'SQLNativeSqlW', \ + SQLNumParams, <.hstmt, .pcpar>, 'SQLNumParams', \ + SQLNumResultCols, <.hstmt, .pccol>, 'SQLNumResultCols', \ + SQLParamData, <.hstmt, .prgbValue>, 'SQLParamData', \ + SQLParamOptions, <.hstmt, .crow, .pirow>, 'SQLParamOptions', \ + SQLPrepare, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLPrepare', \ + SQLPrepareA, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLPrepareA', \ + SQLPrepareW, <.hstmt, .szSqlStr, .cbSqlStr>, 'SQLPrepareW', \ + SQLPrimaryKeys, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLPrimaryKeys', \ + SQLPrimaryKeysA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLPrimaryKeysA', \ + SQLPrimaryKeysW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLPrimaryKeysW', \ + SQLProcedureColumns, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName, .szColumnName, \ + .cbColumnName>, 'SQLProcedureColumns', \ + SQLProcedureColumnsA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName, .szColumnName, \ + .cbColumnName>, 'SQLProcedureColumnsA', \ + SQLProcedureColumnsW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName, .szColumnName, \ + .cbColumnName>, 'SQLProcedureColumnsW', \ + SQLProcedures, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName>, 'SQLProcedures', \ + SQLProceduresA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName>, 'SQLProceduresA', \ + SQLProceduresW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szProcName, .cbProcName>, 'SQLProceduresW', \ + SQLPutData, <.hstmt, .rgbValue, .cbValue>, 'SQLPutData', \ + SQLRowCount, <.hstmt, .pcrow>, 'SQLRowCount', \ + SQLSetConnectAttr, <.hdbc, .fAttribute, .rgbValue, .cbValue>, 'SQLSetConnectAttr', \ + SQLSetConnectAttrA, <.hdbc, .fAttribute, .rgbValue, .cbValue>, 'SQLSetConnectAttrA', \ + SQLSetConnectAttrW, <.hdbc, .fAttribute, .rgbValue, .cbValue>, 'SQLSetConnectAttrW', \ + SQLSetConnectOption, <.hdbc, .fOption, .vParam>, 'SQLSetConnectOption', \ + SQLSetConnectOptionA, <.hdbc, .fOption, .vParam>, 'SQLSetConnectOptionA', \ + SQLSetConnectOptionW, <.hdbc, .fOption, .vParam>, 'SQLSetConnectOptionW', \ + SQLSetCursorName, <.hstmt, .szCursor, .cbCursor>, 'SQLSetCursorName', \ + SQLSetCursorNameA, <.hstmt, .szCursor, .cbCursor>, 'SQLSetCursorNameA', \ + SQLSetCursorNameW, <.hstmt, .szCursor, .cbCursor>, 'SQLSetCursorNameW', \ + SQLSetDescField, <.DescriptorHandle, .RecNumber, .FieldIdentifier, .Value, .BufferLength>, 'SQLSetDescField', \ + SQLSetDescFieldA, <.DescriptorHandle, .RecNumber, .FieldIdentifier, .Value, .BufferLength>, 'SQLSetDescFieldA', \ + SQLSetDescFieldW, <.DescriptorHandle, .RecNumber, .FieldIdentifier, .Value, .BufferLength>, 'SQLSetDescFieldW', \ + SQLSetDescRec, <.DescriptorHandle, .RecNumber, .lType, .SubType, .Length, .Precision, .kScale, .Data, .StringLength, .Indicator, \ + >, 'SQLSetDescRec', \ + SQLSetEnvAttr, <.EnvironmentHandle, .lAttribute, .Value, .StringLength>, 'SQLSetEnvAttr', \ + SQLSetParam, <.hstmt, .ipar, .fCType, .fSqlType, .cbParamDef, .ibScale, .rgbValue, .pcbValue>, 'SQLSetParam', \ + SQLSetPos, <.hstmt, .irow, .fOption, .fLock>, 'SQLSetPos', \ + SQLSetScrollOptions, <.hstmt, .fConcurrency, .crowKeyset, .crowRowset>, 'SQLSetScrollOptions', \ + SQLSetStmtAttr, <.StatementHandle, .lAttribute, .Value, .StringLength>, 'SQLSetStmtAttr', \ + SQLSetStmtAttrA, <.StatementHandle, .lAttribute, .Value, .StringLength>, 'SQLSetStmtAttrA', \ + SQLSetStmtAttrW, <.StatementHandle, .lAttribute, .Value, .StringLength>, 'SQLSetStmtAttrW', \ + SQLSetStmtOption, <.hstmt, .fOption, .vParam>, 'SQLSetStmtOption', \ + SQLSpecialColumns, <.hstmt, .fColType, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, \ + .fScope, .fNullable>, 'SQLSpecialColumns', \ + SQLSpecialColumnsA, <.hstmt, .fColType, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, \ + .fScope, .fNullable>, 'SQLSpecialColumnsA', \ + SQLSpecialColumnsW, <.hstmt, .fColType, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, \ + .fScope, .fNullable>, 'SQLSpecialColumnsW', \ + SQLStatistics, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fUnique, .fAccuracy, \ + >, 'SQLStatistics', \ + SQLStatisticsA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fUnique, .fAccuracy, \ + >, 'SQLStatisticsA', \ + SQLStatisticsW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .fUnique, .fAccuracy, \ + >, 'SQLStatisticsW', \ + SQLTablePrivileges, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLTablePrivileges', \ + SQLTablePrivilegesA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLTablePrivilegesA', \ + SQLTablePrivilegesW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName>, 'SQLTablePrivilegesW', \ + SQLTables, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szTableType, .cbTableType, \ + >, 'SQLTables', \ + SQLTablesA, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szTableType, .cbTableType, \ + >, 'SQLTablesA', \ + SQLTablesW, <.hstmt, .szCatalogName, .cbCatalogName, .szSchemaName, .cbSchemaName, .szTableName, .cbTableName, .szTableType, .cbTableType, \ + >, 'SQLTablesW', \ + SQLTransact, <.henv, .hdbc, .fType>, 'SQLTransact', \ + SearchStatusCode, <NONE>, 'SearchStatusCode', \ + VFreeErrors, <NONE>, 'VFreeErrors', \ + VRetrieveDriverErrorsRowCol, <NONE>, 'VRetrieveDriverErrorsRowCol', \ + ValidateErrorQueue, <NONE>, 'ValidateErrorQueue', \ + g_hHeapMalloc, <NONE>, 'g_hHeapMalloc' ADDED freshlib/imports/Win32/ole32.inc Index: freshlib/imports/Win32/ole32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/ole32.inc @@ -0,0 +1,360 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: ole32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto ole32, \ + BindMoniker, <.pmk, .grfOpt, .iidResult, .ppvResult>, 'BindMoniker', \ + CLIPFORMAT_UserFree, <.pLong, .pClipformat>, 'CLIPFORMAT_UserFree', \ + CLIPFORMAT_UserMarshal, <.pLong, .pChar, .pClipformat>, 'CLIPFORMAT_UserMarshal', \ + CLIPFORMAT_UserSize, <.pLong, .lLong, .pClipformat>, 'CLIPFORMAT_UserSize', \ + CLIPFORMAT_UserUnmarshal, <.pLong, .pChar, .pClipformat>, 'CLIPFORMAT_UserUnmarshal', \ + CLSIDFromOle1Class, <NONE>, 'CLSIDFromOle1Class', \ + CLSIDFromProgID, <.TSzProgID, .T>, 'CLSIDFromProgID', \ + CLSIDFromProgIDEx, <.lpszProgID, .lpclsid>, 'CLSIDFromProgIDEx', \ + CLSIDFromString, <.lpsz, .pclsid>, 'CLSIDFromString', \ + CoAddRefServerProcess, <VOID>, 'CoAddRefServerProcess', \ + CoAllowSetForegroundWindow, <.pUnk, .lpvReserved>, 'CoAllowSetForegroundWindow', \ + CoBuildVersion, <VOID>, 'CoBuildVersion', \ + CoCancelCall, <.dwThreadId, .ulTimeout>, 'CoCancelCall', \ + CoCopyProxy, <.pProxy, .ppCopy>, 'CoCopyProxy', \ + CoCreateFreeThreadedMarshaler, <.punkOuter, .ppunkMarshal>, 'CoCreateFreeThreadedMarshaler', \ + CoCreateGuid, <.pguid>, 'CoCreateGuid', \ + CoCreateInstance, <.rclsid, .pUnkOuter, .dwClsContext, .riid, .ppv>, 'CoCreateInstance', \ + CoCreateInstanceEx, <.Clsid, .punkOuter, .dwClsCtx, .pServerInfo, .dwCount, .pResults>, 'CoCreateInstanceEx', \ + CoCreateObjectInContext, <NONE>, 'CoCreateObjectInContext', \ + CoDeactivateObject, <NONE>, 'CoDeactivateObject', \ + CoDisableCallCancellation, <.pReserved>, 'CoDisableCallCancellation', \ + CoDisconnectObject, <.pUnk, .dwReserved>, 'CoDisconnectObject', \ + CoDosDateTimeToFileTime, <.nDosDate, .nDosTime, .lpFileTime>, 'CoDosDateTimeToFileTime', \ + CoEnableCallCancellation, <.pReserved>, 'CoEnableCallCancellation', \ + CoFileTimeNow, <.lpFileTime>, 'CoFileTimeNow', \ + CoFileTimeToDosDateTime, <.lpFileTime, .lpDosDate, .lpDosTime>, 'CoFileTimeToDosDateTime', \ + CoFreeAllLibraries, <VOID>, 'CoFreeAllLibraries', \ + CoFreeLibrary, <.hInst>, 'CoFreeLibrary', \ + CoFreeUnusedLibraries, <VOID>, 'CoFreeUnusedLibraries', \ + CoFreeUnusedLibrariesEx, <NONE>, 'CoFreeUnusedLibrariesEx', \ + CoGetApartmentID, <NONE>, 'CoGetApartmentID', \ + CoGetCallContext, <.riid, .ppInterface>, 'CoGetCallContext', \ + CoGetCallerTID, <NONE>, 'CoGetCallerTID', \ + CoGetCancelObject, <.dwThreadId, .iid, .ppUnk>, 'CoGetCancelObject', \ + CoGetClassObject, <.rclsid, .dwClsContext, .pvReserved, .riid, .ppv>, 'CoGetClassObject', \ + CoGetClassVersion, <.pClassSpec, .pdwVersionMS, .pdwVersionLS>, 'CoGetClassVersion', \ + CoGetComCatalog, <NONE>, 'CoGetComCatalog', \ + CoGetContextToken, <NONE>, 'CoGetContextToken', \ + CoGetCurrentLogicalThreadId, <NONE>, 'CoGetCurrentLogicalThreadId', \ + CoGetCurrentProcess, <VOID>, 'CoGetCurrentProcess', \ + CoGetDefaultContext, <NONE>, 'CoGetDefaultContext', \ + CoGetInstanceFromFile, <.pServerInfo, .pClsid, .punkOuter, .dwClsCtx, .grfMode, .pwszName, .dwCount, .pResults>, 'CoGetInstanceFromFile', \ + CoGetInstanceFromIStorage, <.pServerInfo, .pClsid, .punkOuter, .dwClsCtx, .pstg, .dwCount, .pResults>, 'CoGetInstanceFromIStorage', \ + CoGetInterceptor, <NONE>, 'CoGetInterceptor', \ + CoGetInterceptorFromTypeInfo, <NONE>, 'CoGetInterceptorFromTypeInfo', \ + CoGetInterfaceAndReleaseStream, <.pStm, .iid, .ppv>, 'CoGetInterfaceAndReleaseStream', \ + CoGetMalloc, <.dwMemContext, .ppMalloc>, 'CoGetMalloc', \ + CoGetMarshalSizeMax, <.pulSize, .riid, .pUnk, .dwDestContext, .pvDestContext, .mshlflags>, 'CoGetMarshalSizeMax', \ + CoGetObject, <.pszName, .pBindOptions, .riid, .ppv>, 'CoGetObject', \ + CoGetObjectContext, <.riid, .ppv>, 'CoGetObjectContext', \ + CoGetPSClsid, <.riid, .pClsid>, 'CoGetPSClsid', \ + CoGetProcessIdentifier, <NONE>, 'CoGetProcessIdentifier', \ + CoGetStandardMarshal, <.riid, .pUnk, .dwDestContext, .pvDestContext, .mshlflags, .ppMarshal>, 'CoGetStandardMarshal', \ + CoGetState, <NONE>, 'CoGetState', \ + CoGetStdMarshalEx, <.pUnkOuter, .smexflags, .ppUnkInner>, 'CoGetStdMarshalEx', \ + CoGetSystemSecurityPermissions, <NONE>, 'CoGetSystemSecurityPermissions', \ + CoGetTreatAsClass, <.clsidOld, .pClsidNew>, 'CoGetTreatAsClass', \ + CoImpersonateClient, <VOID>, 'CoImpersonateClient', \ + CoInitialize, <.pzReserved>, 'CoInitialize', \ + CoInitializeEx, <.pvReserved, .dwCoInit>, 'CoInitializeEx', \ + CoInitializeSecurity, <.pSecDesc, .cAuthSvc, .asAuthSvc, .pReserved1, .dwAuthnLevel, .dwImpLevel, .pAuthList, .dwCapabilities, \ + .pReserved3>, 'CoInitializeSecurity', \ + CoInitializeWOW, <NONE>, 'CoInitializeWOW', \ + CoInstall, <.pbc, .dwFlags, .pClassSpec, .pQuery, .pszCodeBase>, 'CoInstall', \ + CoInvalidateRemoteMachineBindings, <NONE>, 'CoInvalidateRemoteMachineBindings', \ + CoIsHandlerConnected, <.pUnk>, 'CoIsHandlerConnected', \ + CoIsOle1Class, <.rclsid>, 'CoIsOle1Class', \ + CoLoadLibrary, <.lpszLibName, .bAutoFree>, 'CoLoadLibrary', \ + CoLockObjectExternal, <.pUnk, .fLock, .fLastUnlockReleases>, 'CoLockObjectExternal', \ + CoMarshalHresult, <.pstm, .hresult>, 'CoMarshalHresult', \ + CoMarshalInterThreadInterfaceInStream, <.riid, .pUnk, .ppStm>, 'CoMarshalInterThreadInterfaceInStream', \ + CoMarshalInterface, <.pStm, .riid, .pUnk, .dwDestContext, .pvDestContext, .mshlflags>, 'CoMarshalInterface', \ + CoPopServiceDomain, <NONE>, 'CoPopServiceDomain', \ + CoPushServiceDomain, <NONE>, 'CoPushServiceDomain', \ + CoQueryAuthenticationServices, <.pcAuthSvc, .asAuthSvc>, 'CoQueryAuthenticationServices', \ + CoQueryClientBlanket, <.pAuthnSvc, .pAuthzSvc, .pServerPrincName, .pAuthnLevel, .pImpLevel, .pPrivs, .pCapabilities>, 'CoQueryClientBlanket', \ + CoQueryProxyBlanket, <.pProxy, .pwAuthnSvc, .pAuthzSvc, .pServerPrincName, .pAuthnLevel, .pImpLevel, .pAuthInfo, .pCapabilites, \ + >, 'CoQueryProxyBlanket', \ + CoQueryReleaseObject, <NONE>, 'CoQueryReleaseObject', \ + CoReactivateObject, <NONE>, 'CoReactivateObject', \ + CoRegisterChannelHook, <.ExtensionUuid, .pChannelHook>, 'CoRegisterChannelHook', \ + CoRegisterClassObject, <.rclsid, .pUnk, .dwClsContext, .flags, .lpdwRegister>, 'CoRegisterClassObject', \ + CoRegisterInitializeSpy, <NONE>, 'CoRegisterInitializeSpy', \ + CoRegisterMallocSpy, <.pMallocSpy>, 'CoRegisterMallocSpy', \ + CoRegisterMessageFilter, <.lpMessageFilter, .lplpMessageFilter>, 'CoRegisterMessageFilter', \ + CoRegisterPSClsid, <.riid, .rclsid>, 'CoRegisterPSClsid', \ + CoRegisterSurrogate, <.pSurrogate>, 'CoRegisterSurrogate', \ + CoRegisterSurrogateEx, <NONE>, 'CoRegisterSurrogateEx', \ + CoReleaseMarshalData, <.pStm>, 'CoReleaseMarshalData', \ + CoReleaseServerProcess, <VOID>, 'CoReleaseServerProcess', \ + CoResumeClassObjects, <VOID>, 'CoResumeClassObjects', \ + CoRetireServer, <NONE>, 'CoRetireServer', \ + CoRevertToSelf, <VOID>, 'CoRevertToSelf', \ + CoRevokeClassObject, <.dwRegister>, 'CoRevokeClassObject', \ + CoRevokeInitializeSpy, <NONE>, 'CoRevokeInitializeSpy', \ + CoRevokeMallocSpy, <VOID>, 'CoRevokeMallocSpy', \ + CoSetCancelObject, <.pUnk>, 'CoSetCancelObject', \ + CoSetProxyBlanket, <.pProxy, .dwAuthnSvc, .dwAuthzSvc, .pServerPrincName, .dwAuthnLevel, .dwImpLevel, .pAuthInfo, .dwCapabilities, \ + >, 'CoSetProxyBlanket', \ + CoSetState, <NONE>, 'CoSetState', \ + CoSuspendClassObjects, <VOID>, 'CoSuspendClassObjects', \ + CoSwitchCallContext, <.pNewObject, .ppOldObject>, 'CoSwitchCallContext', \ + CoTaskMemAlloc, <.cb>, 'CoTaskMemAlloc', \ + CoTaskMemFree, <.lpIDList>, 'CoTaskMemFree', \ + CoTaskMemRealloc, <.pv, .cb>, 'CoTaskMemRealloc', \ + CoTestCancel, <VOID>, 'CoTestCancel', \ + CoTreatAsClass, <.clsidOld, .clsidNew>, 'CoTreatAsClass', \ + CoUninitialize, <VOID>, 'CoUninitialize', \ + CoUnloadingWOW, <NONE>, 'CoUnloadingWOW', \ + CoUnmarshalHresult, <.pstm, .phresult>, 'CoUnmarshalHresult', \ + CoUnmarshalInterface, <.pStm, .riid, .ppv>, 'CoUnmarshalInterface', \ + CoWaitForMultipleHandles, <.dwFlags, .dwTimeout, .cHandles, .pHandles, .lpdwindex>, 'CoWaitForMultipleHandles', \ + ComPs_CStdStubBuffer_AddRef, <NONE>, 'ComPs_CStdStubBuffer_AddRef', \ + ComPs_CStdStubBuffer_Connect, <NONE>, 'ComPs_CStdStubBuffer_Connect', \ + ComPs_CStdStubBuffer_CountRefs, <NONE>, 'ComPs_CStdStubBuffer_CountRefs', \ + ComPs_CStdStubBuffer_DebugServerQueryInterface, <NONE>, 'ComPs_CStdStubBuffer_DebugServerQueryInterface', \ + ComPs_CStdStubBuffer_DebugServerRelease, <NONE>, 'ComPs_CStdStubBuffer_DebugServerRelease', \ + ComPs_CStdStubBuffer_Disconnect, <NONE>, 'ComPs_CStdStubBuffer_Disconnect', \ + ComPs_CStdStubBuffer_Invoke, <NONE>, 'ComPs_CStdStubBuffer_Invoke', \ + ComPs_CStdStubBuffer_IsIIDSupported, <NONE>, 'ComPs_CStdStubBuffer_IsIIDSupported', \ + ComPs_CStdStubBuffer_QueryInterface, <NONE>, 'ComPs_CStdStubBuffer_QueryInterface', \ + ComPs_IUnknown_AddRef_Proxy, <NONE>, 'ComPs_IUnknown_AddRef_Proxy', \ + ComPs_IUnknown_QueryInterface_Proxy, <NONE>, 'ComPs_IUnknown_QueryInterface_Proxy', \ + ComPs_IUnknown_Release_Proxy, <NONE>, 'ComPs_IUnknown_Release_Proxy', \ + ComPs_NdrCStdStubBuffer2_Release, <NONE>, 'ComPs_NdrCStdStubBuffer2_Release', \ + ComPs_NdrCStdStubBuffer_Release, <NONE>, 'ComPs_NdrCStdStubBuffer_Release', \ + ComPs_NdrClientCall2, <NONE>, 'ComPs_NdrClientCall2', \ + ComPs_NdrClientCall2_va, <NONE>, 'ComPs_NdrClientCall2_va', \ + ComPs_NdrDllCanUnloadNow, <NONE>, 'ComPs_NdrDllCanUnloadNow', \ + ComPs_NdrDllGetClassObject, <NONE>, 'ComPs_NdrDllGetClassObject', \ + ComPs_NdrDllRegisterProxy, <NONE>, 'ComPs_NdrDllRegisterProxy', \ + ComPs_NdrDllUnregisterProxy, <NONE>, 'ComPs_NdrDllUnregisterProxy', \ + ComPs_NdrStubCall2, <NONE>, 'ComPs_NdrStubCall2', \ + ComPs_NdrStubForwardingFunction, <NONE>, 'ComPs_NdrStubForwardingFunction', \ + CreateAntiMoniker, <.ppmk>, 'CreateAntiMoniker', \ + CreateBindCtx, <.reserved, .ppbc>, 'CreateBindCtx', \ + CreateClassMoniker, <.rclsid, .ppmk>, 'CreateClassMoniker', \ + CreateDataAdviseHolder, <.ppDAHolder>, 'CreateDataAdviseHolder', \ + CreateDataCache, <.pUnkOuter, .rclsid, .iid, .ppv>, 'CreateDataCache', \ + CreateErrorInfo, <.pperrinfo>, 'CreateErrorInfo', \ + CreateFileMoniker, <.lpszPathName, .ppmk>, 'CreateFileMoniker', \ + CreateGenericComposite, <.pmkFirst, .pmkRest, .ppmkComposite>, 'CreateGenericComposite', \ + CreateILockBytesOnHGlobal, <.hGlobal, .fDeleteOnRelease, .pplkbyt>, 'CreateILockBytesOnHGlobal', \ + CreateItemMoniker, <.lpszDelim, .lpszItem, .ppmk>, 'CreateItemMoniker', \ + CreateObjrefMoniker, <.punk, .ppmk>, 'CreateObjrefMoniker', \ + CreateOleAdviseHolder, <.ppOAHolder>, 'CreateOleAdviseHolder', \ + CreatePointerMoniker, <.punk, .ppmk>, 'CreatePointerMoniker', \ + CreateStdProgressIndicator, <.hwndParent, .pszTitle, .pIbscCaller, .ppIbsc>, 'CreateStdProgressIndicator', \ + CreateStreamOnHGlobal, <.hGlobal, .fDeleteOnRelease, .ppstm>, 'CreateStreamOnHGlobal', \ + DcomChannelSetHResult, <NONE>, 'DcomChannelSetHResult', \ + DoDragDrop, <.pDataObj, .pDropSource, .dwOKEffects, .pdwEffect>, 'DoDragDrop', \ + EnableHookObject, <NONE>, 'EnableHookObject', \ + FmtIdToPropStgName, <.pfmtid, .oszName>, 'FmtIdToPropStgName', \ + FreePropVariantArray, <.cVariants, .rgvars>, 'FreePropVariantArray', \ + GetClassFile, <.szFilename, .pclsid>, 'GetClassFile', \ + GetConvertStg, <.pStg>, 'GetConvertStg', \ + GetDocumentBitStg, <NONE>, 'GetDocumentBitStg', \ + GetErrorInfo, <.dwReserved, .pperrinfo>, 'GetErrorInfo', \ + GetHGlobalFromILockBytes, <.plkbyt, .phglobal>, 'GetHGlobalFromILockBytes', \ + GetHGlobalFromStream, <.pstm, .phglobal>, 'GetHGlobalFromStream', \ + GetHookInterface, <NONE>, 'GetHookInterface', \ + GetRunningObjectTable, <.reserved, .pprot>, 'GetRunningObjectTable', \ + HACCEL_UserFree, <.pLong, .pHaccel>, 'HACCEL_UserFree', \ + HACCEL_UserMarshal, <.pLong, .pChar, .pHaccel>, 'HACCEL_UserMarshal', \ + HACCEL_UserSize, <.pLong, .lLong, .pHaccel>, 'HACCEL_UserSize', \ + HACCEL_UserUnmarshal, <.pLong, .pChar, .pHaccel>, 'HACCEL_UserUnmarshal', \ + HBITMAP_UserFree, <.pLong, .pHbitmap>, 'HBITMAP_UserFree', \ + HBITMAP_UserMarshal, <.pLong, .pChar, .pHbitmap>, 'HBITMAP_UserMarshal', \ + HBITMAP_UserSize, <.pLong, .lLong, .pHbitmap>, 'HBITMAP_UserSize', \ + HBITMAP_UserUnmarshal, <.pLong, .pChar, .pHbitmap>, 'HBITMAP_UserUnmarshal', \ + HBRUSH_UserFree, <NONE>, 'HBRUSH_UserFree', \ + HBRUSH_UserMarshal, <NONE>, 'HBRUSH_UserMarshal', \ + HBRUSH_UserSize, <NONE>, 'HBRUSH_UserSize', \ + HBRUSH_UserUnmarshal, <NONE>, 'HBRUSH_UserUnmarshal', \ + HDC_UserFree, <.pLong, .pHdc>, 'HDC_UserFree', \ + HDC_UserMarshal, <.pLong, .pChar, .pHdc>, 'HDC_UserMarshal', \ + HDC_UserSize, <.pLong, .lLong, .pHdc>, 'HDC_UserSize', \ + HDC_UserUnmarshal, <.pLong, .pChar, .pHdc>, 'HDC_UserUnmarshal', \ + HENHMETAFILE_UserFree, <NONE>, 'HENHMETAFILE_UserFree', \ + HENHMETAFILE_UserMarshal, <NONE>, 'HENHMETAFILE_UserMarshal', \ + HENHMETAFILE_UserSize, <NONE>, 'HENHMETAFILE_UserSize', \ + HENHMETAFILE_UserUnmarshal, <NONE>, 'HENHMETAFILE_UserUnmarshal', \ + HGLOBAL_UserFree, <.pLong, .pHglobal>, 'HGLOBAL_UserFree', \ + HGLOBAL_UserMarshal, <.pLong, .pChar, .pHglobal>, 'HGLOBAL_UserMarshal', \ + HGLOBAL_UserSize, <.pLong, .lLong, .pHglobal>, 'HGLOBAL_UserSize', \ + HGLOBAL_UserUnmarshal, <.pLong, .pChar, .pHglobal>, 'HGLOBAL_UserUnmarshal', \ + HICON_UserFree, <.pLong, .pHicon>, 'HICON_UserFree', \ + HICON_UserMarshal, <.pLong, .pChar, .pHicon>, 'HICON_UserMarshal', \ + HICON_UserSize, <.pLong, .llong, .pHicon>, 'HICON_UserSize', \ + HICON_UserUnmarshal, <.pLong, .pChar, .pHicon>, 'HICON_UserUnmarshal', \ + HMENU_UserFree, <.pLong, .pHmenu>, 'HMENU_UserFree', \ + HMENU_UserMarshal, <.pLong, .pChar, .pHmenu>, 'HMENU_UserMarshal', \ + HMENU_UserSize, <.pLong, .lLong, .pHmenu>, 'HMENU_UserSize', \ + HMENU_UserUnmarshal, <.pLong, .pChar, .pHmenu>, 'HMENU_UserUnmarshal', \ + HMETAFILEPICT_UserFree, <NONE>, 'HMETAFILEPICT_UserFree', \ + HMETAFILEPICT_UserMarshal, <NONE>, 'HMETAFILEPICT_UserMarshal', \ + HMETAFILEPICT_UserSize, <NONE>, 'HMETAFILEPICT_UserSize', \ + HMETAFILEPICT_UserUnmarshal, <NONE>, 'HMETAFILEPICT_UserUnmarshal', \ + HMETAFILE_UserFree, <NONE>, 'HMETAFILE_UserFree', \ + HMETAFILE_UserMarshal, <NONE>, 'HMETAFILE_UserMarshal', \ + HMETAFILE_UserSize, <NONE>, 'HMETAFILE_UserSize', \ + HMETAFILE_UserUnmarshal, <NONE>, 'HMETAFILE_UserUnmarshal', \ + HPALETTE_UserFree, <.pLong, .pHpalette>, 'HPALETTE_UserFree', \ + HPALETTE_UserMarshal, <.pLong, .pChar, .pHpalette>, 'HPALETTE_UserMarshal', \ + HPALETTE_UserSize, <.pLong, .lLong, .pHpalette>, 'HPALETTE_UserSize', \ + HPALETTE_UserUnmarshal, <.pLong, .pChar, .pHpalette>, 'HPALETTE_UserUnmarshal', \ + HWND_UserFree, <.pLong, .pHwnd>, 'HWND_UserFree', \ + HWND_UserMarshal, <.pLong, .pChar, .pHwnd>, 'HWND_UserMarshal', \ + HWND_UserSize, <.pLong, .lLong, .pHwnd>, 'HWND_UserSize', \ + HWND_UserUnmarshal, <.pLong, .pChar, .pHwnd>, 'HWND_UserUnmarshal', \ + HkOleRegisterObject, <NONE>, 'HkOleRegisterObject', \ + IIDFromString, <.lpsz, .lpiid>, 'IIDFromString', \ + IsAccelerator, <.hAccel, .cAccelEntries, .lpMsg, .lpwCmd>, 'IsAccelerator', \ + IsEqualGUID, <NONE>, 'IsEqualGUID', \ + IsValidIid, <NONE>, 'IsValidIid', \ + IsValidInterface, <NONE>, 'IsValidInterface', \ + IsValidPtrIn, <NONE>, 'IsValidPtrIn', \ + IsValidPtrOut, <NONE>, 'IsValidPtrOut', \ + MkParseDisplayName, <.pbc, .szUserName, .pchEaten, .ppmk>, 'MkParseDisplayName', \ + MonikerCommonPrefixWith, <.pmkThis, .pmkOther, .ppmkCommon>, 'MonikerCommonPrefixWith', \ + MonikerRelativePathTo, <.pmkSrc, .pmkDest, .ppmkRelPath, .dwReserved>, 'MonikerRelativePathTo', \ + OleBuildVersion, <VOID>, 'OleBuildVersion', \ + OleConvertIStorageToOLESTREAM, <.pstg, .lpolestream>, 'OleConvertIStorageToOLESTREAM', \ + OleConvertIStorageToOLESTREAMEx, <.pstg, .cfFormat, .lWidth, .lHeight, .dwSize, .pmedium, .polestm>, 'OleConvertIStorageToOLESTREAMEx', \ + OleConvertOLESTREAMToIStorage, <.lpolestream, .pstg, .ptd>, 'OleConvertOLESTREAMToIStorage', \ + OleConvertOLESTREAMToIStorageEx, <.polestm, .pstg, .pcfFormat, .plwWidth, .plHeight, .pdwSize, .pmedium>, 'OleConvertOLESTREAMToIStorageEx', \ + OleCreate, <.rclsid, .riid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreate', \ + OleCreateDefaultHandler, <.clsid, .pUnkOuter, .riid, .lplpObj>, 'OleCreateDefaultHandler', \ + OleCreateEmbeddingHelper, <.clsid, .pUnkOuter, .flags, .pCF, .riid, .lplpObj>, 'OleCreateEmbeddingHelper', \ + OleCreateEx, <.rclsid, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, \ + .pStg, .ppvObj>, 'OleCreateEx', \ + OleCreateFromData, <.pSrcDataObj, .riid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateFromData', \ + OleCreateFromDataEx, <.pSrcDataObj, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, \ + .pClientSite, .pStg, .ppvObj>, 'OleCreateFromDataEx', \ + OleCreateFromFile, <.rclsid, .lpszFileName, .riid, .renderopt, .lpFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateFromFile', \ + OleCreateFromFileEx, <.rclsid, .lpszFileName, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, \ + .pClientSite, .pStg, .ppvObj>, 'OleCreateFromFileEx', \ + OleCreateLink, <.pmkLinkSrc, .riid, .renderopt, .lpFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateLink', \ + OleCreateLinkEx, <.pmkLinkSrc, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, .pClientSite, \ + .pStg, .ppvObj>, 'OleCreateLinkEx', \ + OleCreateLinkFromData, <.pSrcDataObj, .riid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkFromData', \ + OleCreateLinkFromDataEx, <.pSrcDataObj, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, \ + .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkFromDataEx', \ + OleCreateLinkToFile, <.lpszFileName, .riid, .renderopt, .lpFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkToFile', \ + OleCreateLinkToFileEx, <.lpszFileName, .riid, .dwFlags, .renderopt, .cFormats, .rgAdvf, .rgFormatEtc, .lpAdviseSink, .rgdwConnection, \ + .pClientSite, .pStg, .ppvObj>, 'OleCreateLinkToFileEx', \ + OleCreateMenuDescriptor, <.hmenuCombined, .lpMenuWidths>, 'OleCreateMenuDescriptor', \ + OleCreateStaticFromData, <.pSrcDataObj, .iid, .renderopt, .pFormatEtc, .pClientSite, .pStg, .ppvObj>, 'OleCreateStaticFromData', \ + OleDestroyMenuDescriptor, <.holemenu>, 'OleDestroyMenuDescriptor', \ + OleDoAutoConvert, <.pStg, .pClsidNew>, 'OleDoAutoConvert', \ + OleDraw, <.pUnknown, .dwAspect, .hdcDraw, .lprcBounds>, 'OleDraw', \ + OleDuplicateData, <.hSrc, .cfFormat, .uiFlags>, 'OleDuplicateData', \ + OleFlushClipboard, <VOID>, 'OleFlushClipboard', \ + OleGetAutoConvert, <.clsidOld, .pClsidNew>, 'OleGetAutoConvert', \ + OleGetClipboard, <.ppDataObj>, 'OleGetClipboard', \ + OleGetIconOfClass, <.rclsid, .lpszLabel, .fUseTypeAsLabel>, 'OleGetIconOfClass', \ + OleGetIconOfFile, <.lpszPath, .fUseFileAsLabel>, 'OleGetIconOfFile', \ + OleInitialize, <.pvReserved>, 'OleInitialize', \ + OleInitializeWOW, <NONE>, 'OleInitializeWOW', \ + OleIsCurrentClipboard, <.pDataObj>, 'OleIsCurrentClipboard', \ + OleIsRunning, <.pObject>, 'OleIsRunning', \ + OleLoad, <.pStg, .riid, .pClientSite, .ppvObj>, 'OleLoad', \ + OleLoadFromStream, <.pStm, .iidInterface, .ppvObj>, 'OleLoadFromStream', \ + OleLockRunning, <.pUnknown, .fLock, .fLastUnlockCloses>, 'OleLockRunning', \ + OleMetafilePictFromIconAndLabel, <.hIcon, .lpszLabel, .lpszSourceFile, .iIconIndex>, 'OleMetafilePictFromIconAndLabel', \ + OleNoteObjectVisible, <.pUnknown, .fVisible>, 'OleNoteObjectVisible', \ + OleQueryCreateFromData, <.pSrcDataObject>, 'OleQueryCreateFromData', \ + OleQueryLinkFromData, <.pSrcDataObject>, 'OleQueryLinkFromData', \ + OleRegEnumFormatEtc, <.clsid, .dwDirection, .ppenum>, 'OleRegEnumFormatEtc', \ + OleRegEnumVerbs, <.clsid, .ppenum>, 'OleRegEnumVerbs', \ + OleRegGetMiscStatus, <.clsid, .dwAspect, .pdwStatus>, 'OleRegGetMiscStatus', \ + OleRegGetUserType, <.clsid, .dwFormOfType, .pszUserType>, 'OleRegGetUserType', \ + OleRun, <.pUnknown>, 'OleRun', \ + OleSave, <.pPS, .pStg, .fSameAsLoad>, 'OleSave', \ + OleSaveToStream, <.pPStm, .pStm>, 'OleSaveToStream', \ + OleSetAutoConvert, <.clsidOld, .clsidNew>, 'OleSetAutoConvert', \ + OleSetClipboard, <.pDataObj>, 'OleSetClipboard', \ + OleSetContainedObject, <.pUnknown, .fContained>, 'OleSetContainedObject', \ + OleSetMenuDescriptor, <.holemenu, .hwndFrame, .hwndActiveObject, .lpFrame, .lpActiveObj>, 'OleSetMenuDescriptor', \ + OleTranslateAccelerator, <.lpFrame, .lpFrameInfo, .lpmsg>, 'OleTranslateAccelerator', \ + OleUninitialize, <VOID>, 'OleUninitialize', \ + OpenOrCreateStream, <NONE>, 'OpenOrCreateStream', \ + ProgIDFromCLSID, <.clsid, .lplpszProgID>, 'ProgIDFromCLSID', \ + PropStgNameToFmtId, <.oszName, .pfmtid>, 'PropStgNameToFmtId', \ + PropSysAllocString, <NONE>, 'PropSysAllocString', \ + PropSysFreeString, <NONE>, 'PropSysFreeString', \ + PropVariantChangeType, <NONE>, 'PropVariantChangeType', \ + PropVariantClear, <.pvar>, 'PropVariantClear', \ + PropVariantCopy, <.pvarDest, .pvarSrc>, 'PropVariantCopy', \ + ReadClassStg, <.pStg, .pclsid>, 'ReadClassStg', \ + ReadClassStm, <.pStm, .pclsid>, 'ReadClassStm', \ + ReadFmtUserTypeStg, <.pstg, .pcf, .lplpszUserType>, 'ReadFmtUserTypeStg', \ + ReadOleStg, <NONE>, 'ReadOleStg', \ + ReadStringStream, <NONE>, 'ReadStringStream', \ + RegisterDragDrop, <.hwnd, .pDropTarget>, 'RegisterDragDrop', \ + ReleaseStgMedium, <.lpstgmedium>, 'ReleaseStgMedium', \ + RevokeDragDrop, <.hwnd>, 'RevokeDragDrop', \ + SNB_UserFree, <.pLong, .pSnb>, 'SNB_UserFree', \ + SNB_UserMarshal, <.pLong, .pChar, .pSnb>, 'SNB_UserMarshal', \ + SNB_UserSize, <.pLong, .lLong, .pSnb>, 'SNB_UserSize', \ + SNB_UserUnmarshal, <.pLong, .pChar, .pSnb>, 'SNB_UserUnmarshal', \ + STGMEDIUM_UserFree, <.pLong, .pStgmedium>, 'STGMEDIUM_UserFree', \ + STGMEDIUM_UserMarshal, <.pLong, .pChar, .pStgmedium>, 'STGMEDIUM_UserMarshal', \ + STGMEDIUM_UserSize, <.pLong, .long, .pStgmedium>, 'STGMEDIUM_UserSize', \ + STGMEDIUM_UserUnmarshal, <.pLong, .pChar, .pStgmedium>, 'STGMEDIUM_UserUnmarshal', \ + SetConvertStg, <.pStg, .fConvert>, 'SetConvertStg', \ + SetDocumentBitStg, <NONE>, 'SetDocumentBitStg', \ + SetErrorInfo, <.dwReserved, .perrinfo>, 'SetErrorInfo', \ + StgConvertPropertyToVariant, <NONE>, 'StgConvertPropertyToVariant', \ + StgConvertVariantToProperty, <NONE>, 'StgConvertVariantToProperty', \ + StgCreateDocfile, <.pwcsName, .grfMode, .reserved, .ppstgOpen>, 'StgCreateDocfile', \ + StgCreateDocfileOnILockBytes, <.plkbyt, .grfMode, .reserved, .ppstgOpen>, 'StgCreateDocfileOnILockBytes', \ + StgCreatePropSetStg, <.pStorage, .dwReserved, .ppPropSetStg>, 'StgCreatePropSetStg', \ + StgCreatePropStg, <.pUnk, .fmtid, .pclsid, .grfFlags, .dwReserved, .ppPropStg>, 'StgCreatePropStg', \ + StgCreateStorageEx, <.pwcsName, .grfMode, .stgfmt, .grfAttrs, .pStgOptions, .reserved, .riid, .ppObjectOpen>, 'StgCreateStorageEx', \ + StgGetIFillLockBytesOnFile, <.pwcsName, .ppflb>, 'StgGetIFillLockBytesOnFile', \ + StgGetIFillLockBytesOnILockBytes, <.pilb, .ppflb>, 'StgGetIFillLockBytesOnILockBytes', \ + StgIsStorageFile, <.pwcsName>, 'StgIsStorageFile', \ + StgIsStorageILockBytes, <.plkbyt>, 'StgIsStorageILockBytes', \ + StgOpenAsyncDocfileOnIFillLockBytes, <.pflb, .grfMode, .asyncFlags, .ppstgOpen>, 'StgOpenAsyncDocfileOnIFillLockBytes', \ + StgOpenPropStg, <.pUnk, .fmtid, .grfFlags, .dwReserved, .ppPropStg>, 'StgOpenPropStg', \ + StgOpenStorage, <.pwcsName, .pstgPriority, .grfMode, .snbExclude, .reserved, .ppstgOpen>, 'StgOpenStorage', \ + StgOpenStorageEx, <.pwcsName, .grfMode, .stgfmt, .grfAttrs, .pStgOptions, .reserved, .riid, .ppObjectOpen>, 'StgOpenStorageEx', \ + StgOpenStorageOnHandle, <NONE>, 'StgOpenStorageOnHandle', \ + StgOpenStorageOnILockBytes, <.plkbyt, .pstgPriority, .grfMode, .snbExclude, .reserved, .ppstgOpen>, 'StgOpenStorageOnILockBytes', \ + StgPropertyLengthAsVariant, <NONE>, 'StgPropertyLengthAsVariant', \ + StgSetTimes, <.lpszName, .pctime, .patime, .pmtime>, 'StgSetTimes', \ + StringFromCLSID, <.rclsid, .lplpsz>, 'StringFromCLSID', \ + StringFromGUID2, <.rguid, .lpsz, .cchMax>, 'StringFromGUID2', \ + StringFromIID, <.rclsid, .lplpsz>, 'StringFromIID', \ + UpdateDCOMSettings, <NONE>, 'UpdateDCOMSettings', \ + UtConvertDvtd16toDvtd32, <NONE>, 'UtConvertDvtd16toDvtd32', \ + UtConvertDvtd32toDvtd16, <NONE>, 'UtConvertDvtd32toDvtd16', \ + UtGetDvtd16Info, <NONE>, 'UtGetDvtd16Info', \ + UtGetDvtd32Info, <NONE>, 'UtGetDvtd32Info', \ + WdtpInterfacePointer_UserFree, <NONE>, 'WdtpInterfacePointer_UserFree', \ + WdtpInterfacePointer_UserMarshal, <NONE>, 'WdtpInterfacePointer_UserMarshal', \ + WdtpInterfacePointer_UserSize, <NONE>, 'WdtpInterfacePointer_UserSize', \ + WdtpInterfacePointer_UserUnmarshal, <NONE>, 'WdtpInterfacePointer_UserUnmarshal', \ + WriteClassStg, <.pStg, .rclsid>, 'WriteClassStg', \ + WriteClassStm, <.pStm, .rclsid>, 'WriteClassStm', \ + WriteFmtUserTypeStg, <.pstg, .cf, .lpszUserType>, 'WriteFmtUserTypeStg', \ + WriteOleStg, <NONE>, 'WriteOleStg', \ + WriteStringStream, <NONE>, 'WriteStringStream' ADDED freshlib/imports/Win32/oleaut32.inc Index: freshlib/imports/Win32/oleaut32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/oleaut32.inc @@ -0,0 +1,401 @@ +; oleaut32.dll API calls (ASCII) +import_proto oleaut32, \ + BSTR_UserFree, <.pLong, .pBstr>, 'BSTR_UserFree', \ + BSTR_UserMarshal, <.pLong, .pChar, .pBstr>, 'BSTR_UserMarshal', \ + BSTR_UserSize, <.pLong, .lLong, .pBstr>, 'BSTR_UserSize', \ + BSTR_UserUnmarshal, <.pLong, .pChar, .pBstr>, 'BSTR_UserUnmarshal', \ + BstrFromVector, <.psa, .pBstr>, 'BstrFromVector', \ + ClearCustData, <.pCustData>, 'ClearCustData', \ + CreateDispTypeInfo, <.pidata, .lcid, .pptinfo>, 'CreateDispTypeInfo', \ + CreateErrorInfo_Aut, <.pperrinfo>, 'CreateErrorInfo', \ + CreateStdDispatch, <.punkOuter, .pvThis, .ptinfo, .ppunkStdDisp>, 'CreateStdDispatch', \ + CreateTypeLib, <.syskind, .szFile, .ppctlib>, 'CreateTypeLib', \ + CreateTypeLib2, <.syskind, .szFile, .ppctlib>, 'CreateTypeLib2', \ + DispCallFunc, <.pvInstance, .oVft, .cc, .vtReturn, .cActuals, .prgvt, .prgpvarg, .pvargResult>, 'DispCallFunc', \ + DispGetIDsOfNames, <.ptinfo, .rgszNames, .cNames, .rgdispid>, 'DispGetIDsOfNames', \ + DispGetParam, <.pdispparams, .position, .vtTarg, .pvarResult, .puArgErr>, 'DispGetParam', \ + DispInvoke, <.this, .ptinfo, .dispidMember, .wFlags, .pparams, .pvarResult, .pexcepinfo, .puArgErr>, 'DispInvoke', \ + DllCanUnloadNow, <VOID>, 'DllCanUnloadNow', \ + DllGetClassObject, <.rclsid, .riid, .ppv>, 'DllGetClassObject', \ + DllRegisterServer, <VOID>, 'DllRegisterServer', \ + DllUnregisterServer, <VOID>, 'DllUnregisterServer', \ + DosDateTimeToVariantTime, <.wDosDate, .wDosTime, .pvtime>, 'DosDateTimeToVariantTime', \ + GetActiveObject, <.rclsid, .pvReserved, .ppunk>, 'GetActiveObject', \ + GetAltMonthNames, <.lcid, .prgp>, 'GetAltMonthNames', \ + GetErrorInfo_Aut, <.dwReserved, .pperrinfo>, 'GetErrorInfo', \ + GetRecordInfoFromGuids, <.rGuidTypeLib, .uVerMajor, .uVerMinor, .lcid, .rGuidTypeInfo, .ppRecInfo>, 'GetRecordInfoFromGuids', \ + GetRecordInfoFromTypeInfo, <.pTypeInfo, .ppRecInfo>, 'GetRecordInfoFromTypeInfo', \ + GetVarConversionLocaleSetting, <NONE>, 'GetVarConversionLocaleSetting', \ + LHashValOfNameSys, <.syskind, .lcid, .szName>, 'LHashValOfNameSys', \ + LHashValOfNameSysA, <.syskind, .lcid, .szName>, 'LHashValOfNameSysA', \ + LPSAFEARRAY_Marshal, <NONE>, 'LPSAFEARRAY_Marshal', \ + LPSAFEARRAY_Size, <NONE>, 'LPSAFEARRAY_Size', \ + LPSAFEARRAY_Unmarshal, <NONE>, 'LPSAFEARRAY_Unmarshal', \ + LPSAFEARRAY_UserFree, <.pLong, .lpsafearray>, 'LPSAFEARRAY_UserFree', \ + LPSAFEARRAY_UserMarshal, <.pLong, .pChar, .lpsafearray>, 'LPSAFEARRAY_UserMarshal', \ + LPSAFEARRAY_UserSize, <.pLong, .lLong, .lpsafearray>, 'LPSAFEARRAY_UserSize', \ + LPSAFEARRAY_UserUnmarshal, <.pLong, .pChar, .lpsafearray>, 'LPSAFEARRAY_UserUnmarshal', \ + LoadRegTypeLib, <.rguid, .wVerMajor, .wVerMinor, .lcid, .pptlib>, 'LoadRegTypeLib', \ + LoadTypeLib, <.TLpszModule, .TPpTypeLib>, 'LoadTypeLib', \ + LoadTypeLibEx, <.szFile, .regkind, .pptlib>, 'LoadTypeLibEx', \ + OACreateTypeLib2, <NONE>, 'OACreateTypeLib2', \ + OaBuildVersion, <VOID>, 'OaBuildVersion', \ + OleCreateFontIndirect, <.lpFontDesc, .riid, .lplpvObj>, 'OleCreateFontIndirect', \ + OleCreatePictureIndirect, <.lpPictDesc, .riid, .fOwn, .lplpvObj>, 'OleCreatePictureIndirect', \ + OleCreatePropertyFrame, <.hwndOwner, .x, .y, .lpszCaption, .cObjects, .ppUnk, .cPages, .pPageClsID, .lcid, .dwReserved, .pvReserved, \ + >, 'OleCreatePropertyFrame', \ + OleCreatePropertyFrameIndirect, <.lpParams>, 'OleCreatePropertyFrameIndirect', \ + OleIconToCursor, <.hinstExe, .hIcon>, 'OleIconToCursor', \ + OleLoadPicture, <.lpstream, .lSize, .fRunmode, .riid, .lplpvObj>, 'OleLoadPicture', \ + OleLoadPictureEx, <.lpstream, .lSize, .fRunmode, .riid, .xSizeDesired, .ySizeDesired, .dwFlags, .lplpvObj>, 'OleLoadPictureEx', \ + OleLoadPictureFile, <.varFileName, .lplpdispPicture>, 'OleLoadPictureFile', \ + OleLoadPictureFileEx, <.varFileName, .xSizeDesired, .ySizeDesired, .dwFlags, .lplpdispPicture>, 'OleLoadPictureFileEx', \ + OleLoadPicturePath, <.szURLorPath, .punkCaller, .dwReserved, .clrReserved, .riid, .ppvRet>, 'OleLoadPicturePath', \ + OleSavePictureFile, <.lpdispPicture, .bstrFileName>, 'OleSavePictureFile', \ + OleTranslateColor, <.lOleColor, .lHPalette, .lColorRef>, 'OleTranslateColor', \ + QueryPathOfRegTypeLib, <.guid, .wMaj, .wMin, .lcid, .lpbstrPathName>, 'QueryPathOfRegTypeLib', \ + RegisterActiveObject, <.punk, .rclsid, .dwFlags, .pdwRegister>, 'RegisterActiveObject', \ + RegisterTypeLib, <.ptlib, .szFullPath, .szHelpDir>, 'RegisterTypeLib', \ + RegisterTypeLibForUser, <NONE>, 'RegisterTypeLibForUser', \ + RevokeActiveObject, <.dwRegister, .pvReserved>, 'RevokeActiveObject', \ + SafeArrayAccessData, <.psa, .ppvData>, 'SafeArrayAccessData', \ + SafeArrayAllocData, <.psa>, 'SafeArrayAllocData', \ + SafeArrayAllocDescriptor, <.cDims, .ppsaOut>, 'SafeArrayAllocDescriptor', \ + SafeArrayAllocDescriptorEx, <.vt, .cDims, .ppsaOut>, 'SafeArrayAllocDescriptorEx', \ + SafeArrayCopy, <.psa, .ppsaOut>, 'SafeArrayCopy', \ + SafeArrayCopyData, <.psaSource, .psaTarget>, 'SafeArrayCopyData', \ + SafeArrayCreate, <.vt, .cDims, .rgsabound>, 'SafeArrayCreate', \ + SafeArrayCreateEx, <.vt, .cDims, .rgsabound, .pvExtra>, 'SafeArrayCreateEx', \ + SafeArrayCreateVector, <.vt, .lLbound, .cElements>, 'SafeArrayCreateVector', \ + SafeArrayCreateVectorEx, <.vt, .lLbound, .cElements, .pvExtra>, 'SafeArrayCreateVectorEx', \ + SafeArrayDestroy, <.psa>, 'SafeArrayDestroy', \ + SafeArrayDestroyData, <.psa>, 'SafeArrayDestroyData', \ + SafeArrayDestroyDescriptor, <.psa>, 'SafeArrayDestroyDescriptor', \ + SafeArrayGetDim, <.psa>, 'SafeArrayGetDim', \ + SafeArrayGetElement, <.psa, .rgIndices, .pv>, 'SafeArrayGetElement', \ + SafeArrayGetElemsize, <.psa>, 'SafeArrayGetElemsize', \ + SafeArrayGetIID, <.psa, .pguid>, 'SafeArrayGetIID', \ + SafeArrayGetLBound, <.psa, .nDim, .plLbound>, 'SafeArrayGetLBound', \ + SafeArrayGetRecordInfo, <.psa, .prinfo>, 'SafeArrayGetRecordInfo', \ + SafeArrayGetUBound, <.psa, .nDim, .plUbound>, 'SafeArrayGetUBound', \ + SafeArrayGetVartype, <.psa, .pvt>, 'SafeArrayGetVartype', \ + SafeArrayLock, <.psa>, 'SafeArrayLock', \ + SafeArrayPtrOfIndex, <.psa, .rgIndices, .ppvData>, 'SafeArrayPtrOfIndex', \ + SafeArrayPutElement, <.psa, .rgIndices, .pv>, 'SafeArrayPutElement', \ + SafeArrayRedim, <.psa, .psaboundNew>, 'SafeArrayRedim', \ + SafeArraySetIID, <.psa, .guid>, 'SafeArraySetIID', \ + SafeArraySetRecordInfo, <.psa, .prinfo>, 'SafeArraySetRecordInfo', \ + SafeArrayUnaccessData, <.psa>, 'SafeArrayUnaccessData', \ + SafeArrayUnlock, <.psa>, 'SafeArrayUnlock', \ + SetErrorInfo_Aut, <.dwReserved, .perrinfo>, 'SetErrorInfo', \ + SetOaNoCache, <NONE>, 'SetOaNoCache', \ + SetVarConversionLocaleSetting, <NONE>, 'SetVarConversionLocaleSetting', \ + SysAllocString, <.pOlechar>, 'SysAllocString', \ + SysAllocStringByteLen, <.m_pBase, .FunctionCall>, 'SysAllocStringByteLen', \ + SysAllocStringLen, <.pOlechar, .uint>, 'SysAllocStringLen', \ + SysFreeString, <.bstr>, 'SysFreeString', \ + SysReAllocString, <.pBstr, .pOlechar>, 'SysReAllocString', \ + SysReAllocStringLen, <.pBstr, .pOlechar, .uint>, 'SysReAllocStringLen', \ + SysStringByteLen, <.bstr>, 'SysStringByteLen', \ + SysStringLen, <.bstr>, 'SysStringLen', \ + SystemTimeToVariantTime, <.lpSystemTime, .pvtime>, 'SystemTimeToVariantTime', \ + UnRegisterTypeLib, <.libID, .wVerMajor, .wVerMinor, .lcid, .syskind>, 'UnRegisterTypeLib', \ + UnRegisterTypeLibForUser, <NONE>, 'UnRegisterTypeLibForUser', \ + VARIANT_UserFree, <.pLong, .pVariant>, 'VARIANT_UserFree', \ + VARIANT_UserMarshal, <.pLong, .pChar, .pVariant>, 'VARIANT_UserMarshal', \ + VARIANT_UserSize, <.pLong, .lLong, .pVariant>, 'VARIANT_UserSize', \ + VARIANT_UserUnmarshal, <.pLong, .pChar, .pVariant>, 'VARIANT_UserUnmarshal', \ + VarAbs, <.pvarIn, .pvarResult>, 'VarAbs', \ + VarAdd, <.pvarLeft, .pvarRight, .pvarResult>, 'VarAdd', \ + VarAnd, <.pvarLeft, .pvarRight, .pvarResult>, 'VarAnd', \ + VarBoolFromCy, <.cyIn, .pboolOut>, 'VarBoolFromCy', \ + VarBoolFromDate, <.dateIn, .pboolOut>, 'VarBoolFromDate', \ + VarBoolFromDec, <.pdecIn, .pboolOut>, 'VarBoolFromDec', \ + VarBoolFromDisp, <.pdispIn, .lcid, .pboolOut>, 'VarBoolFromDisp', \ + VarBoolFromI1, <.cIn, .pboolOut>, 'VarBoolFromI1', \ + VarBoolFromI2, <.sIn, .pboolOut>, 'VarBoolFromI2', \ + VarBoolFromI4, <.lIn, .pboolOut>, 'VarBoolFromI4', \ + VarBoolFromI8, <NONE>, 'VarBoolFromI8', \ + VarBoolFromR4, <.fltIn, .pboolOut>, 'VarBoolFromR4', \ + VarBoolFromR8, <.dblIn, .pboolOut>, 'VarBoolFromR8', \ + VarBoolFromStr, <.strIn, .lcid, .dwFlags, .pboolOut>, 'VarBoolFromStr', \ + VarBoolFromUI1, <.bIn, .pboolOut>, 'VarBoolFromUI1', \ + VarBoolFromUI2, <.uiIn, .pboolOut>, 'VarBoolFromUI2', \ + VarBoolFromUI4, <.ulIn, .pboolOut>, 'VarBoolFromUI4', \ + VarBoolFromUI8, <NONE>, 'VarBoolFromUI8', \ + VarBstrCat, <.bstrLeft, .bstrRight, .pbstrResult>, 'VarBstrCat', \ + VarBstrCmp, <.bstrLeft, .bstrRight, .lcid, .dwFlags>, 'VarBstrCmp', \ + VarBstrFromBool, <.boolIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromBool', \ + VarBstrFromCy, <.cyIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromCy', \ + VarBstrFromDate, <.dateIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromDate', \ + VarBstrFromDec, <.pdecIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromDec', \ + VarBstrFromDisp, <.pdispIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromDisp', \ + VarBstrFromI1, <.cIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromI1', \ + VarBstrFromI2, <.iVal, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromI2', \ + VarBstrFromI4, <.lIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromI4', \ + VarBstrFromI8, <NONE>, 'VarBstrFromI8', \ + VarBstrFromR4, <.fltIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromR4', \ + VarBstrFromR8, <.dblIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromR8', \ + VarBstrFromUI1, <.bVal, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromUI1', \ + VarBstrFromUI2, <.uiIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromUI2', \ + VarBstrFromUI4, <.ulIn, .lcid, .dwFlags, .pbstrOut>, 'VarBstrFromUI4', \ + VarBstrFromUI8, <NONE>, 'VarBstrFromUI8', \ + VarCat, <.pvarLeft, .pvarRight, .pvarResult>, 'VarCat', \ + VarCmp, <.pvarLeft, .pvarRight, .lcid, .dwFlags>, 'VarCmp', \ + VarCyAbs, <.cyIn, .pcyResult>, 'VarCyAbs', \ + VarCyAdd, <.cyLeft, .cyRight, .pcyResult>, 'VarCyAdd', \ + VarCyCmp, <.cyLeft, .cyRight>, 'VarCyCmp', \ + VarCyCmpR8, <.cyLeft, .dblRight>, 'VarCyCmpR8', \ + VarCyFix, <.cyIn, .pcyResult>, 'VarCyFix', \ + VarCyFromBool, <.boolIn, .pcyOut>, 'VarCyFromBool', \ + VarCyFromDate, <.dateIn, .pcyOut>, 'VarCyFromDate', \ + VarCyFromDec, <.pdecIn, .pcyOut>, 'VarCyFromDec', \ + VarCyFromDisp, <.pdispIn, .lcid, .pcyOut>, 'VarCyFromDisp', \ + VarCyFromI1, <.cIn, .pcyOut>, 'VarCyFromI1', \ + VarCyFromI2, <.sIn, .pcyOut>, 'VarCyFromI2', \ + VarCyFromI4, <.lIn, .pcyOut>, 'VarCyFromI4', \ + VarCyFromI8, <NONE>, 'VarCyFromI8', \ + VarCyFromR4, <.fltIn, .pcyOut>, 'VarCyFromR4', \ + VarCyFromR8, <.dblIn, .pcyOut>, 'VarCyFromR8', \ + VarCyFromStr, <.strIn, .lcid, .dwFlags, .pcyOut>, 'VarCyFromStr', \ + VarCyFromUI1, <.bIn, .pcyOut>, 'VarCyFromUI1', \ + VarCyFromUI2, <.uiIn, .pcyOut>, 'VarCyFromUI2', \ + VarCyFromUI4, <.ulIn, .pcyOut>, 'VarCyFromUI4', \ + VarCyFromUI8, <NONE>, 'VarCyFromUI8', \ + VarCyInt, <.cyIn, .pcyResult>, 'VarCyInt', \ + VarCyMul, <.cyLeft, .cyRight, .pcyResult>, 'VarCyMul', \ + VarCyMulI4, <.cyLeft, .lRight, .pcyResult>, 'VarCyMulI4', \ + VarCyMulI8, <NONE>, 'VarCyMulI8', \ + VarCyNeg, <.cyIn, .pcyResult>, 'VarCyNeg', \ + VarCyRound, <.cyIn, .cDecimals, .pcyResult>, 'VarCyRound', \ + VarCySub, <.cyLeft, .cyRight, .pcyResult>, 'VarCySub', \ + VarDateFromBool, <.boolIn, .pdateOut>, 'VarDateFromBool', \ + VarDateFromCy, <.cyIn, .pdateOut>, 'VarDateFromCy', \ + VarDateFromDec, <.pdecIn, .pdateOut>, 'VarDateFromDec', \ + VarDateFromDisp, <.pdispIn, .lcid, .pdateOut>, 'VarDateFromDisp', \ + VarDateFromI1, <.cIn, .pdateOut>, 'VarDateFromI1', \ + VarDateFromI2, <.sIn, .pdateOut>, 'VarDateFromI2', \ + VarDateFromI4, <.lIn, .pdateOut>, 'VarDateFromI4', \ + VarDateFromI8, <NONE>, 'VarDateFromI8', \ + VarDateFromR4, <.fltIn, .pdateOut>, 'VarDateFromR4', \ + VarDateFromR8, <.dblIn, .pdateOut>, 'VarDateFromR8', \ + VarDateFromStr, <.strIn, .lcid, .dwFlags, .pdateOut>, 'VarDateFromStr', \ + VarDateFromUI1, <.bIn, .pdateOut>, 'VarDateFromUI1', \ + VarDateFromUI2, <.uiIn, .pdateOut>, 'VarDateFromUI2', \ + VarDateFromUI4, <.ulIn, .pdateOut>, 'VarDateFromUI4', \ + VarDateFromUI8, <NONE>, 'VarDateFromUI8', \ + VarDateFromUdate, <.pudateIn, .dwFlags, .pdateOut>, 'VarDateFromUdate', \ + VarDateFromUdateEx, <.pudateIn, .lcid, .dwFlags, .pdateOut>, 'VarDateFromUdateEx', \ + VarDecAbs, <.pdecIn, .pdecResult>, 'VarDecAbs', \ + VarDecAdd, <.pdecLeft, .pdecRight, .pdecResult>, 'VarDecAdd', \ + VarDecCmp, <.pdecLeft, .pdecRight>, 'VarDecCmp', \ + VarDecCmpR8, <.pdecLeft, .dblRight>, 'VarDecCmpR8', \ + VarDecDiv, <.pdecLeft, .pdecRight, .pdecResult>, 'VarDecDiv', \ + VarDecFix, <.pdecIn, .pdecResult>, 'VarDecFix', \ + VarDecFromBool, <.boolIn, .pdecOut>, 'VarDecFromBool', \ + VarDecFromCy, <.cyIn, .pdecOut>, 'VarDecFromCy', \ + VarDecFromDate, <.dateIn, .pdecOut>, 'VarDecFromDate', \ + VarDecFromDisp, <.pdispIn, .lcid, .pdecOut>, 'VarDecFromDisp', \ + VarDecFromI1, <.cIn, .pdecOut>, 'VarDecFromI1', \ + VarDecFromI2, <.uiIn, .pdecOut>, 'VarDecFromI2', \ + VarDecFromI4, <.lIn, .pdecOut>, 'VarDecFromI4', \ + VarDecFromI8, <NONE>, 'VarDecFromI8', \ + VarDecFromR4, <.fltIn, .pdecOut>, 'VarDecFromR4', \ + VarDecFromR8, <.dblIn, .pdecOut>, 'VarDecFromR8', \ + VarDecFromStr, <.strIn, .lcid, .dwFlags, .pdecOut>, 'VarDecFromStr', \ + VarDecFromUI1, <.bIn, .pdecOut>, 'VarDecFromUI1', \ + VarDecFromUI2, <.uiIn, .pdecOut>, 'VarDecFromUI2', \ + VarDecFromUI4, <.ulIn, .pdecOut>, 'VarDecFromUI4', \ + VarDecFromUI8, <NONE>, 'VarDecFromUI8', \ + VarDecInt, <.pdecIn, .pdecResult>, 'VarDecInt', \ + VarDecMul, <.pdecLeft, .pdecRight, .pdecResult>, 'VarDecMul', \ + VarDecNeg, <.pdecIn, .pdecResult>, 'VarDecNeg', \ + VarDecRound, <.pdecIn, .cDecimals, .pdecResult>, 'VarDecRound', \ + VarDecSub, <.pdecLeft, .pdecRight, .pdecResult>, 'VarDecSub', \ + VarDiv, <.pvarLeft, .pvarRight, .pvarResult>, 'VarDiv', \ + VarEqv, <.pvarLeft, .pvarRight, .pvarResult>, 'VarEqv', \ + VarFix, <.pvarIn, .pvarResult>, 'VarFix', \ + VarFormat, <.pvarIn, .pstrFormat, .iFirstDay, .iFirstWeek, .dwFlags, .pbstrOut>, 'VarFormat', \ + VarFormatCurrency, <.pvarIn, .ByValumDig, .iIncLead, .iUseParens, .iGroup, .dwFlags, .pbstrOut>, 'VarFormatCurrency', \ + VarFormatDateTime, <.pvarIn, .ByValamedFormat, .dwFlags, .pbstrOut>, 'VarFormatDateTime', \ + VarFormatFromTokens, <.pvarIn, .pstrFormat, .pbTokCur, .dwFlags, .pbstrOut, .lcid>, 'VarFormatFromTokens', \ + VarFormatNumber, <.pvarIn, .ByValumDig, .iIncLead, .iUseParens, .iGroup, .dwFlags, .pbstrOut>, 'VarFormatNumber', \ + VarFormatPercent, <.pvarIn, .ByValumDig, .iIncLead, .iUseParens, .iGroup, .dwFlags, .pbstrOut>, 'VarFormatPercent', \ + VarI1FromBool, <.boolIn, .pcOut>, 'VarI1FromBool', \ + VarI1FromCy, <.cyIn, .pcOut>, 'VarI1FromCy', \ + VarI1FromDate, <.dateIn, .pcOut>, 'VarI1FromDate', \ + VarI1FromDec, <.pdecIn, .pcOut>, 'VarI1FromDec', \ + VarI1FromDisp, <.pdispIn, .lcid, .pcOut>, 'VarI1FromDisp', \ + VarI1FromI2, <.uiIn, .pcOut>, 'VarI1FromI2', \ + VarI1FromI4, <.lIn, .pcOut>, 'VarI1FromI4', \ + VarI1FromI8, <NONE>, 'VarI1FromI8', \ + VarI1FromR4, <.fltIn, .pcOut>, 'VarI1FromR4', \ + VarI1FromR8, <.dblIn, .pcOut>, 'VarI1FromR8', \ + VarI1FromStr, <.strIn, .lcid, .dwFlags, .pcOut>, 'VarI1FromStr', \ + VarI1FromUI1, <.bIn, .pcOut>, 'VarI1FromUI1', \ + VarI1FromUI2, <.uiIn, .pcOut>, 'VarI1FromUI2', \ + VarI1FromUI4, <.ulIn, .pcOut>, 'VarI1FromUI4', \ + VarI1FromUI8, <NONE>, 'VarI1FromUI8', \ + VarI2FromBool, <.boolIn, .psOut>, 'VarI2FromBool', \ + VarI2FromCy, <.cyIn, .psOut>, 'VarI2FromCy', \ + VarI2FromDate, <.dateIn, .psOut>, 'VarI2FromDate', \ + VarI2FromDec, <.pdecIn, .psOut>, 'VarI2FromDec', \ + VarI2FromDisp, <.pdispIn, .lcid, .psOut>, 'VarI2FromDisp', \ + VarI2FromI1, <.cIn, .psOut>, 'VarI2FromI1', \ + VarI2FromI4, <.lIn, .psOut>, 'VarI2FromI4', \ + VarI2FromI8, <NONE>, 'VarI2FromI8', \ + VarI2FromR4, <.fltIn, .psOut>, 'VarI2FromR4', \ + VarI2FromR8, <.dblIn, .psOut>, 'VarI2FromR8', \ + VarI2FromStr, <.strIn, .lcid, .dwFlags, .psOut>, 'VarI2FromStr', \ + VarI2FromUI1, <.bIn, .psOut>, 'VarI2FromUI1', \ + VarI2FromUI2, <.uiIn, .psOut>, 'VarI2FromUI2', \ + VarI2FromUI4, <.ulIn, .psOut>, 'VarI2FromUI4', \ + VarI2FromUI8, <NONE>, 'VarI2FromUI8', \ + VarI4FromBool, <.boolIn, .plOut>, 'VarI4FromBool', \ + VarI4FromCy, <.cyIn, .plOut>, 'VarI4FromCy', \ + VarI4FromDate, <.dateIn, .plOut>, 'VarI4FromDate', \ + VarI4FromDec, <.pdecIn, .plOut>, 'VarI4FromDec', \ + VarI4FromDisp, <.pdispIn, .lcid, .plOut>, 'VarI4FromDisp', \ + VarI4FromI1, <.cIn, .plOut>, 'VarI4FromI1', \ + VarI4FromI2, <.sIn, .plOut>, 'VarI4FromI2', \ + VarI4FromI8, <NONE>, 'VarI4FromI8', \ + VarI4FromR4, <.fltIn, .plOut>, 'VarI4FromR4', \ + VarI4FromR8, <.dblIn, .plOut>, 'VarI4FromR8', \ + VarI4FromStr, <.strIn, .lcid, .dwFlags, .plOut>, 'VarI4FromStr', \ + VarI4FromUI1, <.bIn, .plOut>, 'VarI4FromUI1', \ + VarI4FromUI2, <.uiIn, .plOut>, 'VarI4FromUI2', \ + VarI4FromUI4, <.ulIn, .plOut>, 'VarI4FromUI4', \ + VarI4FromUI8, <NONE>, 'VarI4FromUI8', \ + VarI8FromBool, <NONE>, 'VarI8FromBool', \ + VarI8FromCy, <NONE>, 'VarI8FromCy', \ + VarI8FromDate, <NONE>, 'VarI8FromDate', \ + VarI8FromDec, <NONE>, 'VarI8FromDec', \ + VarI8FromDisp, <NONE>, 'VarI8FromDisp', \ + VarI8FromI1, <NONE>, 'VarI8FromI1', \ + VarI8FromI2, <NONE>, 'VarI8FromI2', \ + VarI8FromR4, <NONE>, 'VarI8FromR4', \ + VarI8FromR8, <NONE>, 'VarI8FromR8', \ + VarI8FromStr, <NONE>, 'VarI8FromStr', \ + VarI8FromUI1, <NONE>, 'VarI8FromUI1', \ + VarI8FromUI2, <NONE>, 'VarI8FromUI2', \ + VarI8FromUI4, <NONE>, 'VarI8FromUI4', \ + VarI8FromUI8, <NONE>, 'VarI8FromUI8', \ + VarIdiv, <.pvarLeft, .pvarRight, .pvarResult>, 'VarIdiv', \ + VarImp, <.pvarLeft, .pvarRight, .pvarResult>, 'VarImp', \ + VarInt, <.pvarIn, .pvarResult>, 'VarInt', \ + VarMod, <.pvarLeft, .pvarRight, .pvarResult>, 'VarMod', \ + VarMonthName, <.iMonth, .fAbbrev, .dwFlags, .pbstrOut>, 'VarMonthName', \ + VarMul, <.pvarLeft, .pvarRight, .pvarResult>, 'VarMul', \ + VarNeg, <.pvarIn, .pvarResult>, 'VarNeg', \ + VarNot, <.pvarIn, .pvarResult>, 'VarNot', \ + VarNumFromParseNum, <.pnumprs, .rgbDig, .dwVtBits, .pvar>, 'VarNumFromParseNum', \ + VarOr, <.pvarLeft, .pvarRight, .pvarResult>, 'VarOr', \ + VarParseNumFromStr, <.strIn, .lcid, .dwFlags, .pnumprs, .rgbDig>, 'VarParseNumFromStr', \ + VarPow, <.pvarLeft, .pvarRight, .pvarResult>, 'VarPow', \ + VarR4CmpR8, <.fltLeft, .dblRight>, 'VarR4CmpR8', \ + VarR4FromBool, <.boolIn, .pfltOut>, 'VarR4FromBool', \ + VarR4FromCy, <.cyIn, .pfltOut>, 'VarR4FromCy', \ + VarR4FromDate, <.dateIn, .pfltOut>, 'VarR4FromDate', \ + VarR4FromDec, <.pdecIn, .pfltOut>, 'VarR4FromDec', \ + VarR4FromDisp, <.pdispIn, .lcid, .pfltOut>, 'VarR4FromDisp', \ + VarR4FromI1, <.cIn, .pfltOut>, 'VarR4FromI1', \ + VarR4FromI2, <.sIn, .pfltOut>, 'VarR4FromI2', \ + VarR4FromI4, <.lIn, .pfltOut>, 'VarR4FromI4', \ + VarR4FromI8, <NONE>, 'VarR4FromI8', \ + VarR4FromR8, <.dblIn, .pfltOut>, 'VarR4FromR8', \ + VarR4FromStr, <.strIn, .lcid, .dwFlags, .pfltOut>, 'VarR4FromStr', \ + VarR4FromUI1, <.bIn, .pfltOut>, 'VarR4FromUI1', \ + VarR4FromUI2, <.uiIn, .pfltOut>, 'VarR4FromUI2', \ + VarR4FromUI4, <.ulIn, .pfltOut>, 'VarR4FromUI4', \ + VarR4FromUI8, <NONE>, 'VarR4FromUI8', \ + VarR8FromBool, <.boolIn, .pdblOut>, 'VarR8FromBool', \ + VarR8FromCy, <.cyIn, .pdblOut>, 'VarR8FromCy', \ + VarR8FromDate, <.dateIn, .pdblOut>, 'VarR8FromDate', \ + VarR8FromDec, <.pdecIn, .pdblOut>, 'VarR8FromDec', \ + VarR8FromDisp, <.pdispIn, .lcid, .pdblOut>, 'VarR8FromDisp', \ + VarR8FromI1, <.cIn, .pdblOut>, 'VarR8FromI1', \ + VarR8FromI2, <.sIn, .pdblOut>, 'VarR8FromI2', \ + VarR8FromI4, <.lIn, .pdblOut>, 'VarR8FromI4', \ + VarR8FromI8, <NONE>, 'VarR8FromI8', \ + VarR8FromR4, <.fltIn, .pdblOut>, 'VarR8FromR4', \ + VarR8FromStr, <.strIn, .lcid, .dwFlags, .pdblOut>, 'VarR8FromStr', \ + VarR8FromUI1, <.bIn, .pdblOut>, 'VarR8FromUI1', \ + VarR8FromUI2, <.uiIn, .pdblOut>, 'VarR8FromUI2', \ + VarR8FromUI4, <.ulIn, .pdblOut>, 'VarR8FromUI4', \ + VarR8FromUI8, <NONE>, 'VarR8FromUI8', \ + VarR8Pow, <.dblLeft, .dblRight, .pdblResult>, 'VarR8Pow', \ + VarR8Round, <.dblIn, .cDecimals, .pdblResult>, 'VarR8Round', \ + VarRound, <.pvarIn, .cDecimals, .pvarResult>, 'VarRound', \ + VarSub, <.pvarLeft, .pvarRight, .pvarResult>, 'VarSub', \ + VarTokenizeFormatString, <.pstrFormat, .rgbTok, .cbTok, .iFirstDay, .iFirstWeek, .lcid, .pcbActual>, 'VarTokenizeFormatString', \ + VarUI1FromBool, <.boolIn, .pbOut>, 'VarUI1FromBool', \ + VarUI1FromCy, <.cyIn, .pbOut>, 'VarUI1FromCy', \ + VarUI1FromDate, <.dateIn, .pbOut>, 'VarUI1FromDate', \ + VarUI1FromDec, <.pdecIn, .pbOut>, 'VarUI1FromDec', \ + VarUI1FromDisp, <.pdispIn, .lcid, .pbOut>, 'VarUI1FromDisp', \ + VarUI1FromI1, <.cIn, .pbOut>, 'VarUI1FromI1', \ + VarUI1FromI2, <.sIn, .pbOut>, 'VarUI1FromI2', \ + VarUI1FromI4, <.lIn, .pbOut>, 'VarUI1FromI4', \ + VarUI1FromI8, <NONE>, 'VarUI1FromI8', \ + VarUI1FromR4, <.fltIn, .pbOut>, 'VarUI1FromR4', \ + VarUI1FromR8, <.dblIn, .pbOut>, 'VarUI1FromR8', \ + VarUI1FromStr, <.strIn, .lcid, .dwFlags, .pbOut>, 'VarUI1FromStr', \ + VarUI1FromUI2, <.uiIn, .pbOut>, 'VarUI1FromUI2', \ + VarUI1FromUI4, <.ulIn, .pbOut>, 'VarUI1FromUI4', \ + VarUI1FromUI8, <NONE>, 'VarUI1FromUI8', \ + VarUI2FromBool, <.boolIn, .puiOut>, 'VarUI2FromBool', \ + VarUI2FromCy, <.cyIn, .puiOut>, 'VarUI2FromCy', \ + VarUI2FromDate, <.dateIn, .puiOut>, 'VarUI2FromDate', \ + VarUI2FromDec, <.pdecIn, .puiOut>, 'VarUI2FromDec', \ + VarUI2FromDisp, <.pdispIn, .lcid, .puiOut>, 'VarUI2FromDisp', \ + VarUI2FromI1, <.cIn, .puiOut>, 'VarUI2FromI1', \ + VarUI2FromI2, <.uiIn, .puiOut>, 'VarUI2FromI2', \ + VarUI2FromI4, <.lIn, .puiOut>, 'VarUI2FromI4', \ + VarUI2FromI8, <NONE>, 'VarUI2FromI8', \ + VarUI2FromR4, <.fltIn, .puiOut>, 'VarUI2FromR4', \ + VarUI2FromR8, <.dblIn, .puiOut>, 'VarUI2FromR8', \ + VarUI2FromStr, <.strIn, .lcid, .dwFlags, .puiOut>, 'VarUI2FromStr', \ + VarUI2FromUI1, <.bIn, .puiOut>, 'VarUI2FromUI1', \ + VarUI2FromUI4, <.ulIn, .puiOut>, 'VarUI2FromUI4', \ + VarUI2FromUI8, <NONE>, 'VarUI2FromUI8', \ + VarUI4FromBool, <.boolIn, .pulOut>, 'VarUI4FromBool', \ + VarUI4FromCy, <.cyIn, .pulOut>, 'VarUI4FromCy', \ + VarUI4FromDate, <.dateIn, .pulOut>, 'VarUI4FromDate', \ + VarUI4FromDec, <.pdecIn, .pulOut>, 'VarUI4FromDec', \ + VarUI4FromDisp, <.pdispIn, .lcid, .pulOut>, 'VarUI4FromDisp', \ + VarUI4FromI1, <.cIn, .pulOut>, 'VarUI4FromI1', \ + VarUI4FromI2, <.uiIn, .pulOut>, 'VarUI4FromI2', \ + VarUI4FromI4, <.lIn, .pulOut>, 'VarUI4FromI4', \ + VarUI4FromI8, <NONE>, 'VarUI4FromI8', \ + VarUI4FromR4, <.fltIn, .pulOut>, 'VarUI4FromR4', \ + VarUI4FromR8, <.dblIn, .pulOut>, 'VarUI4FromR8', \ + VarUI4FromStr, <.strIn, .lcid, .dwFlags, .pulOut>, 'VarUI4FromStr', \ + VarUI4FromUI1, <.bIn, .pulOut>, 'VarUI4FromUI1', \ + VarUI4FromUI2, <.uiIn, .pulOut>, 'VarUI4FromUI2', \ + VarUI4FromUI8, <NONE>, 'VarUI4FromUI8', \ + VarUI8FromBool, <NONE>, 'VarUI8FromBool', \ + VarUI8FromCy, <NONE>, 'VarUI8FromCy', \ + VarUI8FromDate, <NONE>, 'VarUI8FromDate', \ + VarUI8FromDec, <NONE>, 'VarUI8FromDec', \ + VarUI8FromDisp, <NONE>, 'VarUI8FromDisp', \ + VarUI8FromI1, <NONE>, 'VarUI8FromI1', \ + VarUI8FromI2, <NONE>, 'VarUI8FromI2', \ + VarUI8FromI8, <NONE>, 'VarUI8FromI8', \ + VarUI8FromR4, <NONE>, 'VarUI8FromR4', \ + VarUI8FromR8, <NONE>, 'VarUI8FromR8', \ + VarUI8FromStr, <NONE>, 'VarUI8FromStr', \ + VarUI8FromUI1, <NONE>, 'VarUI8FromUI1', \ + VarUI8FromUI2, <NONE>, 'VarUI8FromUI2', \ + VarUI8FromUI4, <NONE>, 'VarUI8FromUI4', \ + VarUdateFromDate, <.dateIn, .dwFlags, .pudateOut>, 'VarUdateFromDate', \ + VarWeekdayName, <.iWeekday, .fAbbrev, .iFirstDay, .dwFlags, .pbstrOut>, 'VarWeekdayName', \ + VarXor, <.pvarLeft, .pvarRight, .pvarResult>, 'VarXor', \ + VariantChangeType, <.pvargDest, .pvarSrc, .wFlags, .vt>, 'VariantChangeType', \ + VariantChangeTypeEx, <.pvargDest, .pvarSrc, .lcid, .wFlags, .vt>, 'VariantChangeTypeEx', \ + VariantClear, <.pvarg>, 'VariantClear', \ + VariantCopy, <.pvargDest, .pvargSrc>, 'VariantCopy', \ + VariantCopyInd, <.pvarDest, .pvargSrc>, 'VariantCopyInd', \ + VariantInit, <.pvarg>, 'VariantInit', \ + VariantTimeToDosDateTime, <.vtime, .pwDosDate, .pwDosTime>, 'VariantTimeToDosDateTime', \ + VariantTimeToSystemTime, <.vtime, .lpSystemTime>, 'VariantTimeToSystemTime', \ + VectorFromBstr, <.bstr, .ppsa>, 'VectorFromBstr' ADDED freshlib/imports/Win32/sdl.inc Index: freshlib/imports/Win32/sdl.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/sdl.inc @@ -0,0 +1,232 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SDL v1.2.11 API functions. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +; +; SDL 1.2.11 includes written by Raedwulf +; a.k.a. Tai Chi Minh Ralph Eastwood +; +; There's no warranty for the correctness nor completeness of this file +; However, please mail me at tcmreastwood@ntlworld.com if you spot +; any errors in here. +; +; Version Date: 07/11/2006 (dd/mm/yyyy) +;_________________________________________________________________________________________ + +import_proto sdl, \ + SDL_AddTimer, <NONE>, 'SDL_AddTimer', \ + SDL_AllocRW, <NONE>, 'SDL_AllocRW', \ + SDL_AudioDriverName, <NONE>, 'SDL_AudioDriverName', \ + SDL_AudioInit, <NONE>, 'SDL_AudioInit', \ + SDL_AudioQuit, <NONE>, 'SDL_AudioQuit', \ + SDL_BuildAudioCVT, <NONE>, 'SDL_BuildAudioCVT', \ + SDL_CDClose, <NONE>, 'SDL_CDClose', \ + SDL_CDEject, <NONE>, 'SDL_CDEject', \ + SDL_CDName, <NONE>, 'SDL_CDName', \ + SDL_CDNumDrives, <NONE>, 'SDL_CDNumDrives', \ + SDL_CDOpen, <NONE>, 'SDL_CDOpen', \ + SDL_CDPause, <NONE>, 'SDL_CDPause', \ + SDL_CDPlay, <NONE>, 'SDL_CDPlay', \ + SDL_CDPlayTracks, <NONE>, 'SDL_CDPlayTracks',\ + SDL_CDResume, <NONE>, 'SDL_CDResume',\ + SDL_CDStatus, <NONE>, 'SDL_CDStatus',\ + SDL_CDStop, <NONE>, 'SDL_CDStop',\ + SDL_ClearError, <NONE>, 'SDL_ClearError',\ + SDL_CloseAudio, <NONE>, 'SDL_CloseAudio',\ + SDL_CondBroadcast, <NONE>, 'SDL_CondBroadcast',\ + SDL_CondSignal, <NONE>, 'SDL_CondSignal',\ + SDL_CondWait, <NONE>, 'SDL_CondWait',\ + SDL_CondWaitTimeout, <NONE>, 'SDL_CondWaitTimeout',\ + SDL_ConvertAudio, <NONE>, 'SDL_ConvertAudio',\ + SDL_ConvertSurface, <NONE>, 'SDL_ConvertSurface',\ + SDL_CreateCond, <NONE>, 'SDL_CreateCond',\ + SDL_CreateCursor, <NONE>, 'SDL_CreateCursor',\ + SDL_CreateMutex, <NONE>, 'SDL_CreateMutex',\ + SDL_CreateRGBSurface, <NONE>, 'SDL_CreateRGBSurface',\ + SDL_CreateRGBSurfaceFrom, <NONE>, 'SDL_CreateRGBSurfaceFrom',\ + SDL_CreateSemaphore, <NONE>, 'SDL_CreateSemaphore',\ + SDL_CreateThread, <NONE>, 'SDL_CreateThread',\ + SDL_CreateYUVOverlay, <NONE>, 'SDL_CreateYUVOverlay',\ + SDL_Delay, <NONE>, 'SDL_Delay',\ + SDL_DestroyCond, <NONE>, 'SDL_DestroyCond',\ + SDL_DestroyMutex, <NONE>, 'SDL_DestroyMutex',\ + SDL_DestroySemaphore, <NONE>, 'SDL_DestroySemaphore',\ + SDL_DisplayFormat, <NONE>, 'SDL_DisplayFormat',\ + SDL_DisplayFormatAlpha, <NONE>, 'SDL_DisplayFormatAlpha',\ + SDL_DisplayYUVOverlay, <NONE>, 'SDL_DisplayYUVOverlay',\ + SDL_EnableKeyRepeat, <NONE>, 'SDL_EnableKeyRepeat',\ + SDL_EnableUNICODE, <NONE>, 'SDL_EnableUNICODE',\ + SDL_Error, <NONE>, 'SDL_Error',\ + SDL_EventState, <NONE>, 'SDL_EventState',\ + SDL_FillRect, <NONE>, 'SDL_FillRect',\ + SDL_Flip, <NONE>, 'SDL_Flip',\ + SDL_FreeCursor, <NONE>, 'SDL_FreeCursor',\ + SDL_FreeRW, <NONE>, 'SDL_FreeRW',\ + SDL_FreeSurface, <NONE>, 'SDL_FreeSurface',\ + SDL_FreeWAV, <NONE>, 'SDL_FreeWAV',\ + SDL_FreeYUVOverlay, <NONE>, 'SDL_FreeYUVOverlay',\ + SDL_GL_GetAttribute, <NONE>, 'SDL_GL_GetAttribute',\ + SDL_GL_GetProcAddress, <NONE>, 'SDL_GL_GetProcAddress',\ + SDL_GL_LoadLibrary, <NONE>, 'SDL_GL_LoadLibrary',\ + SDL_GL_Lock, <NONE>, 'SDL_GL_Lock',\ + SDL_GL_SetAttribute, <NONE>, 'SDL_GL_SetAttribute',\ + SDL_GL_SwapBuffers, <NONE>, 'SDL_GL_SwapBuffers',\ + SDL_GL_Unlock, <NONE>, 'SDL_GL_Unlock',\ + SDL_GL_UpdateRects, <NONE>, 'SDL_GL_UpdateRects',\ + SDL_GetAppState, <NONE>, 'SDL_GetAppState',\ + SDL_GetAudioStatus, <NONE>, 'SDL_GetAudioStatus',\ + SDL_GetClipRect, <NONE>, 'SDL_GetClipRect',\ + SDL_GetCursor, <NONE>, 'SDL_GetCursor',\ + SDL_GetError, <NONE>, 'SDL_GetError',\ + SDL_GetEventFilter, <NONE>, 'SDL_GetEventFilter',\ + SDL_GetGammaRamp, <NONE>, 'SDL_GetGammaRamp',\ + SDL_GetKeyName, <NONE>, 'SDL_GetKeyName',\ + SDL_GetKeyRepeat, <NONE>, 'SDL_GetKeyRepeat',\ + SDL_GetKeyState, <NONE>, 'SDL_GetKeyState',\ + SDL_GetModState, <NONE>, 'SDL_GetModState',\ + SDL_GetMouseState, <NONE>, 'SDL_GetMouseState',\ + SDL_GetRGB, <NONE>, 'SDL_GetRGB',\ + SDL_GetRGBA, <NONE>, 'SDL_GetRGBA',\ + SDL_GetRelativeMouseState, <NONE>, 'SDL_GetRelativeMouseState',\ + SDL_GetThreadID, <NONE>, 'SDL_GetThreadID',\ + SDL_GetTicks, <NONE>, 'SDL_GetTicks',\ + SDL_GetVideoInfo, <NONE>, 'SDL_GetVideoInfo',\ + SDL_GetVideoSurface, <NONE>, 'SDL_GetVideoSurface',\ + SDL_GetWMInfo, <NONE>, 'SDL_GetWMInfo',\ + SDL_Has3DNow, <NONE>, 'SDL_Has3DNow',\ + SDL_Has3DNowExt, <NONE>, 'SDL_Has3DNowExt',\ + SDL_HasAltiVec, <NONE>, 'SDL_HasAltiVec',\ + SDL_HasMMX, <NONE>, 'SDL_HasMMX',\ + SDL_HasMMXExt, <NONE>, 'SDL_HasMMXExt',\ + SDL_HasRDTSC, <NONE>, 'SDL_HasRDTSC',\ + SDL_HasSSE, <NONE>, 'SDL_HasSSE',\ + SDL_HasSSE2, <NONE>, 'SDL_HasSSE2',\ + SDL_Init, <NONE>, 'SDL_Init',\ + SDL_InitSubSystem, <NONE>, 'SDL_InitSubSystem',\ + SDL_JoystickClose, <NONE>, 'SDL_JoystickClose',\ + SDL_JoystickEventState, <NONE>, 'SDL_JoystickEventState',\ + SDL_JoystickGetAxis, <NONE>, 'SDL_JoystickGetAxis',\ + SDL_JoystickGetBall, <NONE>, 'SDL_JoystickGetBall',\ + SDL_JoystickGetButton, <NONE>, 'SDL_JoystickGetButton',\ + SDL_JoystickGetHat, <NONE>, 'SDL_JoystickGetHat',\ + SDL_JoystickIndex, <NONE>, 'SDL_JoystickIndex',\ + SDL_JoystickName, <NONE>, 'SDL_JoystickName',\ + SDL_JoystickNumAxes, <NONE>, 'SDL_JoystickNumAxes',\ + SDL_JoystickNumBalls, <NONE>, 'SDL_JoystickNumBalls',\ + SDL_JoystickNumButtons, <NONE>, 'SDL_JoystickNumButtons',\ + SDL_JoystickNumHats, <NONE>, 'SDL_JoystickNumHats',\ + SDL_JoystickOpen, <NONE>, 'SDL_JoystickOpen',\ + SDL_JoystickOpened, <NONE>, 'SDL_JoystickOpened',\ + SDL_JoystickUpdate, <NONE>, 'SDL_JoystickUpdate',\ + SDL_KillThread, <NONE>, 'SDL_KillThread',\ + SDL_Linked_Version, <NONE>, 'SDL_Linked_Version',\ + SDL_ListModes, <NONE>, 'SDL_ListModes',\ + SDL_LoadBMP_RW, <NONE>, 'SDL_LoadBMP_RW',\ + SDL_LoadFunction, <NONE>, 'SDL_LoadFunction',\ + SDL_LoadObject, <NONE>, 'SDL_LoadObject',\ + SDL_LoadWAV_RW, <NONE>, 'SDL_LoadWAV_RW',\ + SDL_LockAudio, <NONE>, 'SDL_LockAudio',\ + SDL_LockSurface, <NONE>, 'SDL_LockSurface',\ + SDL_LockYUVOverlay, <NONE>, 'SDL_LockYUVOverlay',\ + SDL_LowerBlit, <NONE>, 'SDL_LowerBlit',\ + SDL_MapRGB, <NONE>, 'SDL_MapRGB',\ + SDL_MapRGBA, <NONE>, 'SDL_MapRGBA',\ + SDL_MixAudio, <NONE>, 'SDL_MixAudio',\ + SDL_NumJoysticks, <NONE>, 'SDL_NumJoysticks',\ + SDL_OpenAudio, <NONE>, 'SDL_OpenAudio',\ + SDL_PauseAudio, <NONE>, 'SDL_PauseAudio',\ + SDL_PeepEvents, <NONE>, 'SDL_PeepEvents',\ + SDL_PollEvent, <NONE>, 'SDL_PollEvent',\ + SDL_PumpEvents, <NONE>, 'SDL_PumpEvents',\ + SDL_PushEvent, <NONE>, 'SDL_PushEvent',\ + SDL_Quit, <NONE>, 'SDL_Quit',\ + SDL_QuitSubSystem, <NONE>, 'SDL_QuitSubSystem',\ + SDL_RWFromConstMem, <NONE>, 'SDL_RWFromConstMem',\ + SDL_RWFromFP, <NONE>, 'SDL_RWFromFP',\ + SDL_RWFromFile, <NONE>, 'SDL_RWFromFile',\ + SDL_RWFromMem, <NONE>, 'SDL_RWFromMem',\ + SDL_ReadBE16, <NONE>, 'SDL_ReadBE16',\ + SDL_ReadBE32, <NONE>, 'SDL_ReadBE32',\ + SDL_ReadBE64, <NONE>, 'SDL_ReadBE64',\ + SDL_ReadLE16, <NONE>, 'SDL_ReadLE16',\ + SDL_ReadLE32, <NONE>, 'SDL_ReadLE32',\ + SDL_ReadLE64, <NONE>, 'SDL_ReadLE64',\ + SDL_RegisterApp, <NONE>, 'SDL_RegisterApp',\ + SDL_RemoveTimer, <NONE>, 'SDL_RemoveTimer',\ + SDL_SaveBMP_RW, <NONE>, 'SDL_SaveBMP_RW',\ + SDL_SemPost, <NONE>, 'SDL_SemPost',\ + SDL_SemTryWait, <NONE>, 'SDL_SemTryWait',\ + SDL_SemValue, <NONE>, 'SDL_SemValue',\ + SDL_SemWait, <NONE>, 'SDL_SemWait',\ + SDL_SemWaitTimeout, <NONE>, 'SDL_SemWaitTimeout',\ + SDL_SetAlpha, <NONE>, 'SDL_SetAlpha',\ + SDL_SetClipRect, <NONE>, 'SDL_SetClipRect',\ + SDL_SetColorKey, <NONE>, 'SDL_SetColorKey',\ + SDL_SetColors, <NONE>, 'SDL_SetColors',\ + SDL_SetCursor, <NONE>, 'SDL_SetCursor',\ + SDL_SetError, <NONE>, 'SDL_SetError',\ + SDL_SetEventFilter, <NONE>, 'SDL_SetEventFilter',\ + SDL_SetGamma, <NONE>, 'SDL_SetGamma',\ + SDL_SetGammaRamp, <NONE>, 'SDL_SetGammaRamp',\ + SDL_SetModState, <NONE>, 'SDL_SetModState',\ + SDL_SetModuleHandle, <NONE>, 'SDL_SetModuleHandle',\ + SDL_SetPalette, <NONE>, 'SDL_SetPalette',\ + SDL_SetTimer, <NONE>, 'SDL_SetTimer',\ + SDL_SetVideoMode, <NONE>, 'SDL_SetVideoMode',\ + SDL_ShowCursor, <NONE>, 'SDL_ShowCursor',\ + SDL_SoftStretch, <NONE>, 'SDL_SoftStretch',\ + SDL_ThreadID, <NONE>, 'SDL_ThreadID',\ + SDL_UnloadObject, <NONE>, 'SDL_UnloadObject',\ + SDL_UnlockAudio, <NONE>, 'SDL_UnlockAudio',\ + SDL_UnlockSurface, <NONE>, 'SDL_UnlockSurface',\ + SDL_UnlockYUVOverlay, <NONE>, 'SDL_UnlockYUVOverlay',\ + SDL_UnregisterApp, <NONE>, 'SDL_UnregisterApp',\ + SDL_UpdateRect, <NONE>, 'SDL_UpdateRect',\ + SDL_UpdateRects, <NONE>, 'SDL_UpdateRects',\ + SDL_UpperBlit, <NONE>, 'SDL_UpperBlit',\ + SDL_VideoDriverName, <NONE>, 'SDL_VideoDriverName',\ + SDL_VideoInit, <NONE>, 'SDL_VideoInit',\ + SDL_VideoModeOK, <NONE>, 'SDL_VideoModeOK',\ + SDL_VideoQuit, <NONE>, 'SDL_VideoQuit',\ + SDL_WM_GetCaption, <NONE>, 'SDL_WM_GetCaption',\ + SDL_WM_GrabInput, <NONE>, 'SDL_WM_GrabInput',\ + SDL_WM_IconifyWindow, <NONE>, 'SDL_WM_IconifyWindow',\ + SDL_WM_SetCaption, <NONE>, 'SDL_WM_SetCaption',\ + SDL_WM_SetIcon, <NONE>, 'SDL_WM_SetIcon',\ + SDL_WM_ToggleFullScreen, <NONE>, 'SDL_WM_ToggleFullScreen',\ + SDL_WaitEvent, <NONE>, 'SDL_WaitEvent',\ + SDL_WaitThread, <NONE>, 'SDL_WaitThread',\ + SDL_WarpMouse, <NONE>, 'SDL_WarpMouse',\ + SDL_WasInit, <NONE>, 'SDL_WasInit',\ + SDL_WriteBE16, <NONE>, 'SDL_WriteBE16',\ + SDL_WriteBE32, <NONE>, 'SDL_WriteBE32',\ + SDL_WriteBE64, <NONE>, 'SDL_WriteBE64',\ + SDL_WriteLE16, <NONE>, 'SDL_WriteLE16',\ + SDL_WriteLE32, <NONE>, 'SDL_WriteLE32',\ + SDL_WriteLE64, <NONE>, 'SDL_WriteLE64',\ + SDL_getenv, <NONE>, 'SDL_getenv',\ + SDL_iconv, <NONE>, 'SDL_iconv',\ + SDL_iconv_close, <NONE>, 'SDL_iconv_close',\ + SDL_iconv_open, <NONE>, 'SDL_iconv_open',\ + SDL_iconv_string, <NONE>, 'SDL_iconv_string',\ + SDL_lltoa, <NONE>, 'SDL_lltoa',\ + SDL_mutexP, <NONE>, 'SDL_mutexP',\ + SDL_mutexV, <NONE>, 'SDL_mutexV',\ + SDL_putenv, <NONE>, 'SDL_putenv',\ + SDL_revcpy, <NONE>, 'SDL_revcpy',\ + SDL_snprintf, <NONE>, 'SDL_snprintf',\ + SDL_strdup, <NONE>, 'SDL_strdup',\ + SDL_strlcat, <NONE>, 'SDL_strlcat',\ + SDL_strlcpy, <NONE>, 'SDL_strlcpy',\ + SDL_strtoull, <NONE>, 'SDL_strtoull',\ + SDL_ulltoa, <NONE>, 'SDL_ulltoa',\ + SDL_vsnprintf, <NONE>, 'SDL_vsnprintf' + ADDED freshlib/imports/Win32/sdl_image.inc Index: freshlib/imports/Win32/sdl_image.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/sdl_image.inc @@ -0,0 +1,16 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SDL_image v1.2 API functions. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +; _______________________________________________________________________________________ + +import_proto sdl_image, \ + IMG_Load, <NONE>, 'IMG_Load' ADDED freshlib/imports/Win32/shell32.inc Index: freshlib/imports/Win32/shell32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/shell32.inc @@ -0,0 +1,321 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: shell32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto shell32, \ + Activate_RunDLL, <NONE>, 'Activate_RunDLL', \ + AppCompat_RunDLLW, <NONE>, 'AppCompat_RunDLLW', \ + CDefFolderMenu_Create, <NONE>, 'CDefFolderMenu_Create', \ + CDefFolderMenu_Create2, <NONE>, 'CDefFolderMenu_Create2', \ + CallCPLEntry16, <NONE>, 'CallCPLEntry16', \ + CheckEscapesA, <NONE>, 'CheckEscapesA', \ + CheckEscapesW, <NONE>, 'CheckEscapesW', \ + CommandLineToArgvW, <.lpCmdLine, .pNumArgs>, 'CommandLineToArgvW', \ + Control_FillCache_RunDLL, <NONE>, 'Control_FillCache_RunDLL', \ + Control_FillCache_RunDLLA, <NONE>, 'Control_FillCache_RunDLLA', \ + Control_FillCache_RunDLLW, <NONE>, 'Control_FillCache_RunDLLW', \ + Control_RunDLL, <NONE>, 'Control_RunDLL', \ + Control_RunDLLA, <NONE>, 'Control_RunDLLA', \ + Control_RunDLLAsUserW, <NONE>, 'Control_RunDLLAsUserW', \ + Control_RunDLLW, <NONE>, 'Control_RunDLLW', \ + DAD_AutoScroll, <NONE>, 'DAD_AutoScroll', \ + DAD_DragEnterEx, <NONE>, 'DAD_DragEnterEx', \ + DAD_DragEnterEx2, <NONE>, 'DAD_DragEnterEx2', \ + DAD_DragLeave, <NONE>, 'DAD_DragLeave', \ + DAD_DragMove, <NONE>, 'DAD_DragMove', \ + DAD_SetDragImage, <NONE>, 'DAD_SetDragImage', \ + DAD_ShowDragImage, <NONE>, 'DAD_ShowDragImage', \ + DoEnvironmentSubstA, <.szString, .cbString>, 'DoEnvironmentSubstA', \ + DoEnvironmentSubstW, <.szString, .cbString>, 'DoEnvironmentSubstW', \ + DragAcceptFiles, <.hwnd, .fAccept>, 'DragAcceptFiles', \ + DragFinish, <.hDrop>, 'DragFinish', \ + DragQueryFile, <.HDROP, .UINT, .lpStr, .ch>, 'DragQueryFile', \ + DragQueryFileA, <.HDROP, .UINT, .lpStr, .ch>, 'DragQueryFileA', \ + DragQueryFileAorW, <NONE>, 'DragQueryFileAorW', \ + DragQueryFileW, <.HDROP, .UINT, .lpStr, .ch>, 'DragQueryFileW', \ + DragQueryPoint, <.HDROP, .lpPoint>, 'DragQueryPoint', \ + DriveType, <NONE>, 'DriveType', \ + DuplicateIcon, <.hInst, .hIcon>, 'DuplicateIcon', \ + ExtractAssociatedIconA, <.hInst, .lpIconPath, .lpiIcon>, 'ExtractAssociatedIconA', \ + ExtractAssociatedIconExA, <NONE>, 'ExtractAssociatedIconExA', \ + ExtractAssociatedIconExW, <NONE>, 'ExtractAssociatedIconExW', \ + ExtractAssociatedIconW, <.hInst, .lpIconPath, .lpiIcon>, 'ExtractAssociatedIconW', \ + ExtractIconA, <.hInst, .lpszExeFileName, .nIconIndex>, 'ExtractIconA', \ + ExtractIconEx, <.lpszFile, .nIconIndex, .phiconLarge, .phiconSmall, .nIcons>, 'ExtractIconEx', \ + ExtractIconExA, <.lpszFile, .nIconIndex, .phiconLarge, .phiconSmall, .nIcons>, 'ExtractIconExA', \ + ExtractIconExW, <.lpszFile, .nIconIndex, .phiconLarge, .phiconSmall, .nIcons>, 'ExtractIconExW', \ + ExtractIconResInfoA, <NONE>, 'ExtractIconResInfoA', \ + ExtractIconResInfoW, <NONE>, 'ExtractIconResInfoW', \ + ExtractIconW, <.hInst, .lpszExeFileName, .nIconIndex>, 'ExtractIconW', \ + ExtractVersionResource16W, <NONE>, 'ExtractVersionResource16W', \ + FindExeDlgProc, <NONE>, 'FindExeDlgProc', \ + FindExecutableA, <.lpFile, .lpDirectory, .lpResult>, 'FindExecutableA', \ + FindExecutableW, <.lpFile, .lpDirectory, .lpResult>, 'FindExecutableW', \ + FreeIconList, <NONE>, 'FreeIconList', \ + GetFileNameFromBrowse, <NONE>, 'GetFileNameFromBrowse', \ + ILAppendID, <NONE>, 'ILAppendID', \ + ILClone, <NONE>, 'ILClone', \ + ILCloneFirst, <NONE>, 'ILCloneFirst', \ + ILCombine, <NONE>, 'ILCombine', \ + ILCreateFromPath, <NONE>, 'ILCreateFromPath', \ + ILCreateFromPathA, <NONE>, 'ILCreateFromPathA', \ + ILCreateFromPathW, <NONE>, 'ILCreateFromPathW', \ + ILFindChild, <NONE>, 'ILFindChild', \ + ILFindLastID, <NONE>, 'ILFindLastID', \ + ILFree, <NONE>, 'ILFree', \ + ILGetNext, <NONE>, 'ILGetNext', \ + ILGetSize, <NONE>, 'ILGetSize', \ + ILIsEqual, <NONE>, 'ILIsEqual', \ + ILIsParent, <NONE>, 'ILIsParent', \ + ILLoadFromStream, <NONE>, 'ILLoadFromStream', \ + ILRemoveLastID, <NONE>, 'ILRemoveLastID', \ + ILSaveToStream, <NONE>, 'ILSaveToStream', \ + InternalExtractIconListA, <NONE>, 'InternalExtractIconListA', \ + InternalExtractIconListW, <NONE>, 'InternalExtractIconListW', \ + IsLFNDrive, <NONE>, 'IsLFNDrive', \ + IsLFNDriveA, <NONE>, 'IsLFNDriveA', \ + IsLFNDriveW, <NONE>, 'IsLFNDriveW', \ + IsNetDrive, <NONE>, 'IsNetDrive', \ + IsUserAnAdmin, <NONE>, 'IsUserAnAdmin', \ + OpenAs_RunDLL, <NONE>, 'OpenAs_RunDLL', \ + OpenAs_RunDLLA, <NONE>, 'OpenAs_RunDLLA', \ + OpenAs_RunDLLW, <NONE>, 'OpenAs_RunDLLW', \ + OpenRegStream, <NONE>, 'OpenRegStream', \ + Options_RunDLL, <NONE>, 'Options_RunDLL', \ + Options_RunDLLA, <NONE>, 'Options_RunDLLA', \ + Options_RunDLLW, <NONE>, 'Options_RunDLLW', \ + PathCleanupSpec, <NONE>, 'PathCleanupSpec', \ + PathGetShortPath, <NONE>, 'PathGetShortPath', \ + PathIsExe, <NONE>, 'PathIsExe', \ + PathIsSlowA, <NONE>, 'PathIsSlowA', \ + PathIsSlowW, <NONE>, 'PathIsSlowW', \ + PathMakeUniqueName, <NONE>, 'PathMakeUniqueName', \ + PathProcessCommand, <NONE>, 'PathProcessCommand', \ + PathQualify, <NONE>, 'PathQualify', \ + PathResolve, <NONE>, 'PathResolve', \ + PathYetAnotherMakeUniqueName, <NONE>, 'PathYetAnotherMakeUniqueName', \ + PickIconDlg, <NONE>, 'PickIconDlg', \ + PifMgr_CloseProperties, <NONE>, 'PifMgr_CloseProperties', \ + PifMgr_GetProperties, <NONE>, 'PifMgr_GetProperties', \ + PifMgr_OpenProperties, <NONE>, 'PifMgr_OpenProperties', \ + PifMgr_SetProperties, <NONE>, 'PifMgr_SetProperties', \ + PrintersGetCommand_RunDLL, <NONE>, 'PrintersGetCommand_RunDLL', \ + PrintersGetCommand_RunDLLA, <NONE>, 'PrintersGetCommand_RunDLLA', \ + PrintersGetCommand_RunDLLW, <NONE>, 'PrintersGetCommand_RunDLLW', \ + ReadCabinetState, <NONE>, 'ReadCabinetState', \ + RealDriveType, <NONE>, 'RealDriveType', \ + RealShellExecuteA, <NONE>, 'RealShellExecuteA', \ + RealShellExecuteExA, <NONE>, 'RealShellExecuteExA', \ + RealShellExecuteExW, <NONE>, 'RealShellExecuteExW', \ + RealShellExecuteW, <NONE>, 'RealShellExecuteW', \ + RegenerateUserEnvironment, <NONE>, 'RegenerateUserEnvironment', \ + RestartDialog, <NONE>, 'RestartDialog', \ + RestartDialogEx, <NONE>, 'RestartDialogEx', \ + SHAddFromPropSheetExtArray, <NONE>, 'SHAddFromPropSheetExtArray', \ + SHAddToRecentDocs, <.uFlags, .pv>, 'SHAddToRecentDocs', \ + SHAlloc, <NONE>, 'SHAlloc', \ + SHAllocShared, <NONE>, 'SHAllocShared', \ + SHAppBarMessage, <.dwMessage, .pData>, 'SHAppBarMessage', \ + SHBindToParent, <.pidl, .riid, .ppv, .ppidlLast>, 'SHBindToParent', \ + SHBrowseForFolder, <.lpbi>, 'SHBrowseForFolder', \ + SHBrowseForFolderA, <.lpbi>, 'SHBrowseForFolderA', \ + SHBrowseForFolderW, <.lpbi>, 'SHBrowseForFolderW', \ + SHCLSIDFromString, <NONE>, 'SHCLSIDFromString', \ + SHChangeNotification_Lock, <NONE>, 'SHChangeNotification_Lock', \ + SHChangeNotification_Unlock, <NONE>, 'SHChangeNotification_Unlock', \ + SHChangeNotify, <.wEventId, .uFlags, .dwItem1, .dwItem2>, 'SHChangeNotify', \ + SHChangeNotifyDeregister, <NONE>, 'SHChangeNotifyDeregister', \ + SHChangeNotifyRegister, <NONE>, 'SHChangeNotifyRegister', \ + SHChangeNotifySuspendResume, <NONE>, 'SHChangeNotifySuspendResume', \ + SHCloneSpecialIDList, <NONE>, 'SHCloneSpecialIDList', \ + SHCoCreateInstance, <NONE>, 'SHCoCreateInstance', \ + SHCreateDirectory, <NONE>, 'SHCreateDirectory', \ + SHCreateDirectoryExA, <.hwnd, .pszPath, .psa>, 'SHCreateDirectoryExA', \ + SHCreateDirectoryExW, <.hwnd, .pszPath, .psa>, 'SHCreateDirectoryExW', \ + SHCreateFileExtractIconW, <NONE>, 'SHCreateFileExtractIconW', \ + SHCreateLocalServerRunDll, <NONE>, 'SHCreateLocalServerRunDll', \ + SHCreateProcessAsUserW, <NONE>, 'SHCreateProcessAsUserW', \ + SHCreatePropSheetExtArray, <NONE>, 'SHCreatePropSheetExtArray', \ + SHCreateQueryCancelAutoPlayMoniker, <NONE>, 'SHCreateQueryCancelAutoPlayMoniker', \ + SHCreateShellFolderView, <NONE>, 'SHCreateShellFolderView', \ + SHCreateShellFolderViewEx, <NONE>, 'SHCreateShellFolderViewEx', \ + SHCreateShellItem, <NONE>, 'SHCreateShellItem', \ + SHCreateStdEnumFmtEtc, <NONE>, 'SHCreateStdEnumFmtEtc', \ + SHDefExtractIconA, <NONE>, 'SHDefExtractIconA', \ + SHDefExtractIconW, <NONE>, 'SHDefExtractIconW', \ + SHDestroyPropSheetExtArray, <NONE>, 'SHDestroyPropSheetExtArray', \ + SHDoDragDrop, <NONE>, 'SHDoDragDrop', \ + SHEmptyRecycleBinA, <.hwnd, .pszRootPath, .dwFlags>, 'SHEmptyRecycleBinA', \ + SHEmptyRecycleBinW, <.hwnd, .pszRootPath, .dwFlags>, 'SHEmptyRecycleBinW', \ + SHEnableServiceObject, <NONE>, 'SHEnableServiceObject', \ + SHEnumerateUnreadMailAccountsW, <NONE>, 'SHEnumerateUnreadMailAccountsW', \ + SHExtractIconsW, <NONE>, 'SHExtractIconsW', \ + SHFileOperation, <.lpFileOp>, 'SHFileOperation', \ + SHFileOperationA, <.lpFileOp>, 'SHFileOperationA', \ + SHFileOperationW, <.lpFileOp>, 'SHFileOperationW', \ + SHFindFiles, <NONE>, 'SHFindFiles', \ + SHFind_InitMenuPopup, <NONE>, 'SHFind_InitMenuPopup', \ + SHFlushClipboard, <NONE>, 'SHFlushClipboard', \ + SHFlushSFCache, <NONE>, 'SHFlushSFCache', \ + SHFormatDrive, <NONE>, 'SHFormatDrive', \ + SHFree, <NONE>, 'SHFree', \ + SHFreeNameMappings, <.hNameMappings>, 'SHFreeNameMappings', \ + SHFreeShared, <NONE>, 'SHFreeShared', \ + SHGetAttributesFromDataObject, <NONE>, 'SHGetAttributesFromDataObject', \ + SHGetDataFromIDListA, <.psf, .pidl, .nFormat, .pv, .cb>, 'SHGetDataFromIDListA', \ + SHGetDataFromIDListW, <.psf, .pidl, .nFormat, .pv, .cb>, 'SHGetDataFromIDListW', \ + SHGetDesktopFolder, <.ppshf>, 'SHGetDesktopFolder', \ + SHGetDiskFreeSpaceA, <NONE>, 'SHGetDiskFreeSpaceA', \ + SHGetDiskFreeSpaceExA, <.pszDirectoryName, .pulFreeBytesAvailableToCaller, .pulTotalNumberOfBytes, .pulTotalNumberOfFreeBytes, \ + >, 'SHGetDiskFreeSpaceExA', \ + SHGetDiskFreeSpaceExW, <.pszDirectoryName, .pulFreeBytesAvailableToCaller, .pulTotalNumberOfBytes, .pulTotalNumberOfFreeBytes, \ + >, 'SHGetDiskFreeSpaceExW', \ + SHGetFileInfo, <.pszPath, .dwFileAttributes, .psfi, .cbFileInfo, .uFlags>, 'SHGetFileInfo', \ + SHGetFileInfoA, <.pszPath, .dwFileAttributes, .psfi, .cbFileInfo, .uFlags>, 'SHGetFileInfoA', \ + SHGetFileInfoW, <.pszPath, .dwFileAttributes, .psfi, .cbFileInfo, .uFlags>, 'SHGetFileInfoW', \ + SHGetFolderLocation, <.hwnd, .csidl, .hToken, .dwFlags, .ppidl>, 'SHGetFolderLocation', \ + SHGetFolderPathA, <.hwnd, .csidl, .hToken, .dwFlags, .pszPath>, 'SHGetFolderPathA', \ + SHGetFolderPathAndSubDirA, <NONE>, 'SHGetFolderPathAndSubDirA', \ + SHGetFolderPathAndSubDirW, <NONE>, 'SHGetFolderPathAndSubDirW', \ + SHGetFolderPathW, <.hwnd, .csidl, .hToken, .dwFlags, .pszPath>, 'SHGetFolderPathW', \ + SHGetIconOverlayIndexA, <.pszIconPath, .iIconIndex>, 'SHGetIconOverlayIndexA', \ + SHGetIconOverlayIndexW, <.pszIconPath, .iIconIndex>, 'SHGetIconOverlayIndexW', \ + SHGetImageList, <NONE>, 'SHGetImageList', \ + SHGetInstanceExplorer, <.ppunk>, 'SHGetInstanceExplorer', \ + SHGetMalloc, <.ppMalloc>, 'SHGetMalloc', \ + SHGetNewLinkInfo, <.pszLinkto, .pszDir, .pszName, .pfMustCopy, .uFlags>, 'SHGetNewLinkInfo', \ + SHGetNewLinkInfoA, <.pszLinkto, .pszDir, .pszName, .pfMustCopy, .uFlags>, 'SHGetNewLinkInfoA', \ + SHGetNewLinkInfoW, <.pszLinkto, .pszDir, .pszName, .pfMustCopy, .uFlags>, 'SHGetNewLinkInfoW', \ + SHGetPathFromIDList, <.pidl, .pszPath>, 'SHGetPathFromIDList', \ + SHGetPathFromIDListA, <.pidl, .pszPath>, 'SHGetPathFromIDListA', \ + SHGetPathFromIDListW, <.pidl, .pszPath>, 'SHGetPathFromIDListW', \ + SHGetRealIDL, <NONE>, 'SHGetRealIDL', \ + SHGetSetFolderCustomSettingsW, <NONE>, 'SHGetSetFolderCustomSettingsW', \ + SHGetSetSettings, <NONE>, 'SHGetSetSettings', \ + SHGetSettings, <.lpsfs, .dwMask>, 'SHGetSettings', \ + SHGetShellStyleHInstance, <NONE>, 'SHGetShellStyleHInstance', \ + SHGetSpecialFolderLocation, <.hwnd, .csidl, .ppidl>, 'SHGetSpecialFolderLocation', \ + SHGetSpecialFolderPathA, <.hwnd, .pszPath, .csidl, .fCreate>, 'SHGetSpecialFolderPathA', \ + SHGetSpecialFolderPathW, <.hwnd, .pszPath, .csidl, .fCreate>, 'SHGetSpecialFolderPathW', \ + SHGetUnreadMailCountW, <NONE>, 'SHGetUnreadMailCountW', \ + SHHandleUpdateImage, <NONE>, 'SHHandleUpdateImage', \ + SHHelpShortcuts_RunDLL, <NONE>, 'SHHelpShortcuts_RunDLL', \ + SHHelpShortcuts_RunDLLA, <NONE>, 'SHHelpShortcuts_RunDLLA', \ + SHHelpShortcuts_RunDLLW, <NONE>, 'SHHelpShortcuts_RunDLLW', \ + SHILCreateFromPath, <NONE>, 'SHILCreateFromPath', \ + SHInvokePrinterCommandA, <.hwnd, .uAction, .lpBuf1, .lpBuf2, .fModal>, 'SHInvokePrinterCommandA', \ + SHInvokePrinterCommandW, <.hwnd, .uAction, .lpBuf1, .lpBuf2, .fModal>, 'SHInvokePrinterCommandW', \ + SHIsFileAvailableOffline, <.pwszPath, .pdwStatus>, 'SHIsFileAvailableOffline', \ + SHLimitInputEdit, <NONE>, 'SHLimitInputEdit', \ + SHLoadInProc, <.rclsid>, 'SHLoadInProc', \ + SHLoadNonloadedIconOverlayIdentifiers, <VOID>, 'SHLoadNonloadedIconOverlayIdentifiers', \ + SHLoadOLE, <NONE>, 'SHLoadOLE', \ + SHLockShared, <NONE>, 'SHLockShared', \ + SHMapIDListToImageListIndexAsync, <NONE>, 'SHMapIDListToImageListIndexAsync', \ + SHMapPIDLToSystemImageListIndex, <NONE>, 'SHMapPIDLToSystemImageListIndex', \ + SHMultiFileProperties, <NONE>, 'SHMultiFileProperties', \ + SHObjectProperties, <NONE>, 'SHObjectProperties', \ + SHOpenFolderAndSelectItems, <NONE>, 'SHOpenFolderAndSelectItems', \ + SHOpenPropSheetW, <NONE>, 'SHOpenPropSheetW', \ + SHParseDisplayName, <NONE>, 'SHParseDisplayName', \ + SHPathPrepareForWriteA, <.hwnd, .punkEnableModless, .pszPath, .dwFlags>, 'SHPathPrepareForWriteA', \ + SHPathPrepareForWriteW, <.hwnd, .punkEnableModless, .pszPath, .dwFlags>, 'SHPathPrepareForWriteW', \ + SHPropStgCreate, <NONE>, 'SHPropStgCreate', \ + SHPropStgReadMultiple, <NONE>, 'SHPropStgReadMultiple', \ + SHPropStgWriteMultiple, <NONE>, 'SHPropStgWriteMultiple', \ + SHQueryRecycleBinA, <.pszRootPath, .pSHQueryRBInfo>, 'SHQueryRecycleBinA', \ + SHQueryRecycleBinW, <.pszRootPath, .pSHQueryRBInfo>, 'SHQueryRecycleBinW', \ + SHReplaceFromPropSheetExtArray, <NONE>, 'SHReplaceFromPropSheetExtArray', \ + SHRestricted, <NONE>, 'SHRestricted', \ + SHRunControlPanel, <NONE>, 'SHRunControlPanel', \ + SHSetInstanceExplorer, <NONE>, 'SHSetInstanceExplorer', \ + SHSetLocalizedName, <NONE>, 'SHSetLocalizedName', \ + SHSetUnreadMailCountW, <NONE>, 'SHSetUnreadMailCountW', \ + SHShellFolderView_Message, <NONE>, 'SHShellFolderView_Message', \ + SHSimpleIDListFromPath, <NONE>, 'SHSimpleIDListFromPath', \ + SHStartNetConnectionDialogW, <NONE>, 'SHStartNetConnectionDialogW', \ + SHTestTokenMembership, <NONE>, 'SHTestTokenMembership', \ + SHUnlockShared, <NONE>, 'SHUnlockShared', \ + SHUpdateImageA, <NONE>, 'SHUpdateImageA', \ + SHUpdateImageW, <NONE>, 'SHUpdateImageW', \ + SHUpdateRecycleBinIcon, <NONE>, 'SHUpdateRecycleBinIcon', \ + SHValidateUNC, <NONE>, 'SHValidateUNC', \ + SheChangeDirA, <NONE>, 'SheChangeDirA', \ + SheChangeDirExA, <NONE>, 'SheChangeDirExA', \ + SheChangeDirExW, <NONE>, 'SheChangeDirExW', \ + SheChangeDirW, <NONE>, 'SheChangeDirW', \ + SheConvertPathW, <NONE>, 'SheConvertPathW', \ + SheFullPathA, <NONE>, 'SheFullPathA', \ + SheFullPathW, <NONE>, 'SheFullPathW', \ + SheGetCurDrive, <NONE>, 'SheGetCurDrive', \ + SheGetDirA, <NONE>, 'SheGetDirA', \ + SheGetDirExW, <NONE>, 'SheGetDirExW', \ + SheGetDirW, <NONE>, 'SheGetDirW', \ + SheGetPathOffsetW, <NONE>, 'SheGetPathOffsetW', \ + SheRemoveQuotesA, <NONE>, 'SheRemoveQuotesA', \ + SheRemoveQuotesW, <NONE>, 'SheRemoveQuotesW', \ + SheSetCurDrive, <NONE>, 'SheSetCurDrive', \ + SheShortenPathA, <NONE>, 'SheShortenPathA', \ + SheShortenPathW, <NONE>, 'SheShortenPathW', \ + ShellAboutA, <.hwnd, .szApp, .szOtherStuff, .hIcon>, 'ShellAboutA', \ + ShellAboutW, <.hwnd, .szApp, .szOtherStuff, .hIcon>, 'ShellAboutW', \ + ShellExec_RunDLL, <NONE>, 'ShellExec_RunDLL', \ + ShellExec_RunDLLA, <NONE>, 'ShellExec_RunDLLA', \ + ShellExec_RunDLLW, <NONE>, 'ShellExec_RunDLLW', \ + ShellExecuteA, <.hwnd, .lpOperation, .lpFile, .lpParameters, .lpDirectory, .nCmdShow>, 'ShellExecuteA', \ + ShellExecuteEx, <.lpExecInfo>, 'ShellExecuteEx', \ + ShellExecuteExA, <.lpExecInfo>, 'ShellExecuteExA', \ + ShellExecuteExW, <.lpExecInfo>, 'ShellExecuteExW', \ + ShellExecuteW, <.hwnd, .lpOperation, .lpFile, .lpParameters, .lpDirectory, .nCmdShow>, 'ShellExecuteW', \ + ShellHookProc, <NONE>, 'ShellHookProc', \ + ShellMessageBoxA, <NONE>, 'ShellMessageBoxA', \ + ShellMessageBoxW, <NONE>, 'ShellMessageBoxW', \ + Shell_GetCachedImageIndex, <NONE>, 'Shell_GetCachedImageIndex', \ + Shell_GetImageLists, <NONE>, 'Shell_GetImageLists', \ + Shell_MergeMenus, <NONE>, 'Shell_MergeMenus', \ + Shell_NotifyIcon, <.dwMessage, .lpData>, 'Shell_NotifyIcon', \ + Shell_NotifyIconA, <.dwMessage, .lpData>, 'Shell_NotifyIconA', \ + Shell_NotifyIconW, <.dwMessage, .lpData>, 'Shell_NotifyIconW', \ + SignalFileOpen, <NONE>, 'SignalFileOpen', \ + StrChrA, <.lpStart, .wMatch>, 'StrChrA', \ + StrChrIA, <.lpStart, .wMatch>, 'StrChrIA', \ + StrChrIW, <.lpStart, .wMatch>, 'StrChrIW', \ + StrChrW, <.lpStart, .wMatch>, 'StrChrW', \ + StrCmpNA, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNA', \ + StrCmpNIA, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNIA', \ + StrCmpNIW, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNIW', \ + StrCmpNW, <.lpStr1, .lpStr2, .nChar>, 'StrCmpNW', \ + StrCpyNA, <NONE>, 'StrCpyNA', \ + StrCpyNW, <NONE>, 'StrCpyNW', \ + StrNCmpA, <NONE>, 'StrNCmpA', \ + StrNCmpIA, <NONE>, 'StrNCmpIA', \ + StrNCmpIW, <NONE>, 'StrNCmpIW', \ + StrNCmpW, <NONE>, 'StrNCmpW', \ + StrNCpyA, <NONE>, 'StrNCpyA', \ + StrNCpyW, <NONE>, 'StrNCpyW', \ + StrRChrA, <.lpStart, .lpEnd, .wMatch>, 'StrRChrA', \ + StrRChrIA, <.lpStart, .lpEnd, .wMatch>, 'StrRChrIA', \ + StrRChrIW, <.lpStart, .lpEnd, .wMatch>, 'StrRChrIW', \ + StrRChrW, <.lpStart, .lpEnd, .wMatch>, 'StrRChrW', \ + StrRStrA, <NONE>, 'StrRStrA', \ + StrRStrIA, <.lpSource, .lpLast, .lpSrch>, 'StrRStrIA', \ + StrRStrIW, <.lpSource, .lpLast, .lpSrch>, 'StrRStrIW', \ + StrRStrW, <NONE>, 'StrRStrW', \ + StrStrA, <.lpFirst, .lpSrch>, 'StrStrA', \ + StrStrIA, <.lpFirst, .lpSrch>, 'StrStrIA', \ + StrStrIW, <.lpFirst, .lpSrch>, 'StrStrIW', \ + StrStrW, <.lpFirst, .lpSrch>, 'StrStrW', \ + WOWShellExecute, <NONE>, 'WOWShellExecute', \ + Win32DeleteFile, <NONE>, 'Win32DeleteFile', \ + WriteCabinetState, <NONE>, 'WriteCabinetState' ADDED freshlib/imports/Win32/sqleet.inc Index: freshlib/imports/Win32/sqleet.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/sqleet.inc @@ -0,0 +1,210 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: sqlite3.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto sqleet, \ + sqliteAggregateContext, <.context, .nbytes>, 'sqlite3_aggregate_context', \ + sqliteAggregateCount_OLD, <VOID>, 'sqlite3_aggregate_count', \ + sqliteAutoExtension, <.ptrCallback>, 'sqlite3_auto_extension', \ + sqliteBackupFinish, <.ptrBackup>, 'sqlite3_backup_finish', \ + sqliteBackupInit, <.ptrDestDB, .ptrDestName, .ptrSourceDB, .ptrSourceName>, 'sqlite3_backup_init', \ + sqliteBackupPageCount, <.ptrBackup>, 'sqlite3_backup_pagecount', \ + sqliteBackupRemaining, <.ptrBackup>, 'sqlite3_backup_remaining', \ + sqliteBackupStep, <.ptrBackup, .nPage>, 'sqlite3_backup_step', \ + sqliteBindBlob, <.stmt, .index, .ptrData, .nbytes, .destructor>, 'sqlite3_bind_blob', \ + sqliteBindDouble, <.stmt, .index, .value>, 'sqlite3_bind_double', \ + sqliteBindInt, <.stmt, .index, .value>, 'sqlite3_bind_int', \ + sqliteBindInt64, <.stmt, .index, .valueLo, .valueHi>, 'sqlite3_bind_int64', \ + sqliteBindNull, <.stmt, .index>, 'sqlite3_bind_null', \ + sqliteBindParameterCount, <.stmt>, 'sqlite3_bind_parameter_count', \ + sqliteBindParameterIndex, <.stmt, .paramName>, 'sqlite3_bind_parameter_index', \ + sqliteBindParameterName, <.stmt, .paramIndex>, 'sqlite3_bind_parameter_name', \ + sqliteBindText, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text', \ + sqliteBindText16, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text16', \ + sqliteBindValue, <.stmt, .index, .ptrValue>, 'sqlite3_bind_value', \ + sqliteBindZeroblob, <.stmt, .index, .size>, 'sqlite3_bind_zeroblob', \ + sqliteBlobBytes, <.hBlob>, 'sqlite3_blob_bytes', \ + sqliteBlobClose, <.hBlob>, 'sqlite3_blob_close', \ + sqliteBlobOpen, <.ptrDB, .DBname, .Table, .Column, .iRow, .flags, .ptrVarBlob>, 'sqlite3_blob_open', \ + sqliteBlobRead, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_read', \ + sqliteBlobWrite, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_write', \ + sqliteBusyHandler, <.ptrDB, .ptrProc, .lParam>, 'sqlite3_busy_handler', \ + sqliteBusyTimeout, <.ptrDB, .time_ms>, 'sqlite3_busy_timeout', \ + sqliteChanges, <.ptrDB>, 'sqlite3_changes', \ + sqliteClearBindings, <.stmt>, 'sqlite3_clear_bindings', \ + sqliteClose, <.ptrDatabase>, 'sqlite3_close', \ + sqliteCollationNeeded, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed', \ + sqliteCollationNeeded16, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed16', \ + sqliteColumnBlob, <.stmt, .iCol>, 'sqlite3_column_blob', \ + sqliteColumnBytes, <.stmt, .iCol>, 'sqlite3_column_bytes', \ + sqliteColumnBytes16, <.stmt, .iCol>, 'sqlite3_column_bytes16', \ + sqliteColumnCount, <.stmt>, 'sqlite3_column_count', \ + sqliteColumnDatabaseName, <.stmt, .index>, 'sqlite3_column_database_name', \ + sqliteColumnDatabaseName16, <.stmt, .index>, 'sqlite3_column_database_name16', \ + sqliteColumnDeclType, <.stmt, .index>, 'sqlite3_column_decltype', \ + sqliteColumnDeclType16, <.stmt, .index>, 'sqlite3_column_decltype16', \ + sqliteColumnDouble, <.stmt, .iCol>, 'sqlite3_column_double', \ + sqliteColumnInt, <.stmt, .iCol>, 'sqlite3_column_int', \ + sqliteColumnInt64, <.stmt, .iCol>, 'sqlite3_column_int64', \ + sqliteColumnName, <.stmt, .index>, 'sqlite3_column_name', \ + sqliteColumnName16, <.stmt, .index>, 'sqlite3_column_name16', \ + sqliteColumnOriginName, <.stmt, .index>, 'sqlite3_column_origin_name', \ + sqliteColumnOriginName16, <.stmt, .index>, 'sqlite3_column_origin_name16', \ + sqliteColumnTableName, <.stmt, .index>, 'sqlite3_column_table_name', \ + sqliteColumnTableName16, <.stmt, .index>, 'sqlite3_column_table_name16', \ + sqliteColumnText, <.stmt, .iCol>, 'sqlite3_column_text', \ + sqliteColumnText16, <.stmt, .iCol>, 'sqlite3_column_text16', \ + sqliteColumnType, <.stmt, .iCol>, 'sqlite3_column_type', \ + sqliteColumnValue, <.stmt, .iCol>, 'sqlite3_column_value', \ + sqliteCommitHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_commit_hook', \ + sqliteCompileOptionGet, <.N>, 'sqlite3_compileoption_get', \ + sqliteCompileOptionUsed, <.ptrOptName>, 'sqlite3_compileoption_used', \ + sqliteComplete, <.ptrSQL>, 'sqlite3_complete', \ + sqliteComplete16, <.ptrSQL>, 'sqlite3_complete16', \ + sqliteConfig, <.index, ...>, 'sqlite3_config', \ + sqliteContextDBHandle, <.context>, 'sqlite3_context_db_handle', \ + sqliteCreateCollation, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation', \ + sqliteCreateCollation16, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation16', \ + sqliteCreateCollation_v2, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare, .ptrDestroy>, 'sqlite3_create_collation_v2', \ + sqliteCreateFunction, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function', \ + sqliteCreateFunction16, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function16', \ + sqliteCreateFunction_v2, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal, .procDestroy>, 'sqlite3_create_function_v2', \ + sqliteCreateModule, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam>, 'sqlite3_create_module', \ + sqliteCreateModule_v2, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam, .procDestroy>, 'sqlite3_create_module_v2', \ + sqliteDBConfig, <.ptrDB, .index, ...>, 'sqlite3_db_config', \ + sqliteDBHandle, <.stmt>, 'sqlite3_db_handle', \ + sqliteDBMutex, <.ptrDB>, 'sqlite3_db_mutex', \ + sqliteDBStatus, <.ptrDB, .index, .ptrRetCurrent, .ptrRetHighest, .flagReset>, 'sqlite3_db_status', \ + sqliteDataCount, <.stmt>, 'sqlite3_data_count', \ + sqliteDeclareVtab, <.ptrDB, .ptrSQL>, 'sqlite3_declare_vtab', \ + sqliteEnableLoadExtension, <.ptrDB, .flagEnable>, 'sqlite3_enable_load_extension', \ + sqliteEnableSharedCache, <.flagEnable>, 'sqlite3_enable_shared_cache', \ + sqliteErrCode, <.ptrDB>, 'sqlite3_errcode', \ + sqliteErrMsg, <.ptrDB>, 'sqlite3_errmsg', \ + sqliteErrMsg16, <.ptrDB>, 'sqlite3_errmsg16', \ + sqliteExec, <.ptrDB, .ptrSQL, .procCallback, .lparam, .ptrVarErrMsg>, 'sqlite3_exec', \ + sqliteExpired, <VOID>, 'sqlite3_expired', \ + sqliteExtendedErrCode, <.ptrDB>, 'sqlite3_extended_errcode', \ + sqliteExtendedResultCodes, <.ptrDB, .flagEnable>, 'sqlite3_extended_result_codes', \ + sqliteFileControl, <.ptrDB, .ptrDBName, .wparam, .lparam>, 'sqlite3_file_control', \ + _sqliteFinalize, <.stmt>, 'sqlite3_finalize', \ + sqliteFree, <.ptrmem>, 'sqlite3_free', \ + sqliteFreeTable, <.ptrVarResult>, 'sqlite3_free_table', \ + sqliteGetAutocommit, <.ptrDB>, 'sqlite3_get_autocommit', \ + sqliteGetAuxdata, <.context, .N>, 'sqlite3_get_auxdata', \ + sqliteGetTable, <.ptrDB, .ptrSQL, .ptrVarResult, .ptrVarRows, .ptrVarColumns, .ptrVarErrorMsg>, 'sqlite3_get_table', \ + sqliteGlobalRecover_OLD, <VOID>, 'sqlite3_global_recover', \ + sqliteInitialize, <VOID>, 'sqlite3_initialize', \ + sqliteInterrupt, <.ptrDB>, 'sqlite3_interrupt', \ + sqliteKey, <.ptrDB, .pKey, .pKeyLen>, 'sqlite3_key', \ + sqliteKey_v2, <.ptrDB, .pDbName, .pKey, .pKeyLen>, 'sqlite3_key_v2', \ + sqliteLastInsertRowID, <.ptrDB>, 'sqlite3_last_insert_rowid', \ + sqliteLibVersion, <VOID>, 'sqlite3_libversion', \ + sqliteLibversionNumber, <VOID>, 'sqlite3_libversion_number', \ + sqliteLimit, <.ptrDB, .idLimit, .newVal>, 'sqlite3_limit', \ + sqliteLoadExtension, <.ptrDB, .nameDLL, .entryProc, .ptrVarErrMsg>, 'sqlite3_load_extension', \ + sqliteLog, <.iErrCode, .ptrFormat, ...>, 'sqlite3_log', \ + sqliteMAlloc, <.size>, 'sqlite3_malloc', \ + sqliteMemoryAlarm_OLD, <VOID>, 'sqlite3_memory_alarm', \ + sqliteMemoryHighWater, <.flagReset>, 'sqlite3_memory_highwater', \ + sqliteMemoryUsed, <VOID>, 'sqlite3_memory_used', \ + sqliteMprintf, <.ptrString, ...>, 'sqlite3_mprintf', \ + sqliteMutexAlloc, <.type>, 'sqlite3_mutex_alloc', \ + sqliteMutexEnter, <.hMutex>, 'sqlite3_mutex_enter', \ + sqliteMutexFree, <.hMutex>, 'sqlite3_mutex_free', \ + sqliteMutexLeave, <.hMutex>, 'sqlite3_mutex_leave', \ + sqliteMutexTry, <.hMutex>, 'sqlite3_mutex_try', \ + sqliteNextStmt, <.ptrDB, .stmt>, 'sqlite3_next_stmt', \ + sqliteOSEnd, <VOID>, 'sqlite3_os_end', \ + sqliteOSInit, <VOID>, 'sqlite3_os_init', \ + sqliteOpen, <.ptrFileName, .ptrVarDB>, 'sqlite3_open', \ + sqliteOpen16, <.ptrFileName, .ptrVarDB>, 'sqlite3_open16', \ + sqliteOpen_v2, <.ptrFileName, .ptrVarDB, .flags, .ptrVFSName>, 'sqlite3_open_v2', \ + sqliteOverloadFunction, <.ptrDB, .ptrFuncName, .lparam>, 'sqlite3_overload_function', \ + sqlitePrepare, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare', \ + sqlitePrepare16, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16', \ + sqlitePrepare16_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16_v2', \ + _sqlitePrepare_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare_v2', \ + sqliteProfile, <.ptrDB, .procProfiler, .lparam>, 'sqlite3_profile', \ + sqliteProgressHandler, <.ptrDB, .N, .procProgress, .lparam>, 'sqlite3_progress_handler', \ + sqliteRandomness, <.bytes, .buffer>, 'sqlite3_randomness', \ + sqliteReAlloc, <.ptrmem, .newsize>, 'sqlite3_realloc', \ + sqliteRekey, <.ptrDB, .pNewKey, .nKeyLen>, 'sqlite3_rekey', \ + sqliteRekey_v2, <.ptrDB, .pDbName, .pNewKey, .nKeyLen>, 'sqlite3_rekey_v2', \ + sqliteReleaseMemory, <.bytes>, 'sqlite3_release_memory', \ + sqliteReset, <.stmt>, 'sqlite3_reset', \ + sqliteResetAutoExtension, <VOID>, 'sqlite3_reset_auto_extension', \ + sqliteResultBlob, <.context, .ptrdata, .size, .procDestroy>, 'sqlite3_result_blob', \ + sqliteResultDouble, <.context, .double>, 'sqlite3_result_double', \ + sqliteResultError, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error', \ + sqliteResultError16, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error16', \ + sqliteResultErrorCode, <.context, .errcode>, 'sqlite3_result_error_code', \ + sqliteResultErrorNoMem, <.context>, 'sqlite3_result_error_nomem', \ + sqliteResultErrorTooBig, <.context>, 'sqlite3_result_error_toobig', \ + sqliteResultInt, <.context, .integer>, 'sqlite3_result_int', \ + sqliteResultInt64, <.context, .int64Lo, .int64Hi>, 'sqlite3_result_int64', \ + sqliteResultNULL, <.context>, 'sqlite3_result_null', \ + sqliteResultText, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text', \ + sqliteResultText16, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16', \ + sqliteResultText16be, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16be', \ + sqliteResultText16le, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16le', \ + sqliteResultValue, <.context, .ptrValue>, 'sqlite3_result_value', \ + sqliteResultZeroBlob, <.context, .size>, 'sqlite3_result_zeroblob', \ + sqliteRollbackHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_rollback_hook', \ + sqliteRtreeGeometryCallback, <NONE>, 'sqlite3_rtree_geometry_callback', \ + sqliteSQL, <.stmt>, 'sqlite3_sql', \ + sqliteSetAuthorizer, <.ptrDB, .procAuthorizer, .lparam>, 'sqlite3_set_authorizer', \ + sqliteSetAuxdata, <.context, .N, .ptrData, .procDestructor>, 'sqlite3_set_auxdata', \ + sqliteShutdown, <VOID>, 'sqlite3_shutdown', \ + sqliteSleep, <.sleep_ms>, 'sqlite3_sleep', \ + sqliteSnprintf, <.size, .ptrBuffer, .ptrString, ...>, 'sqlite3_snprintf', \ + sqliteSoftHeapLimit, <.N>, 'sqlite3_soft_heap_limit', \ + sqliteSoftHeapLimit64, <.sizeLo, .sizeHi>, 'sqlite3_soft_heap_limit64', \ + sqliteSourceID, <VOID>, 'sqlite3_sourceid', \ + sqliteStatus, <.paramIndex, .ptrVarResult, .ptrVarHighwater, .flagReset>, 'sqlite3_status', \ + sqliteStep, <.stmt>, 'sqlite3_step', \ + sqliteStmtStatus, <.stmt, .paramIndex, .flagReset>, 'sqlite3_stmt_status', \ + sqliteStrnicmp, <.ptrStr1, .ptrStr2, .size>, 'sqlite3_strnicmp', \ + sqliteTableColumnMetadata, <.ptrDB, .ptrDBName, .ptrTableName, .ptrColumnName, .ptrVarDataType, .ptrVarCollSeq, .ptrVarNotNull, \ + .ptrVarPrimaryKey, .ptrVarAutoInc>, 'sqlite3_table_column_metadata', \ + sqliteTestControl, <.opCode, ...>, 'sqlite3_test_control', \ + sqliteThreadCleanup, <VOID>, 'sqlite3_thread_cleanup', \ + sqliteThreadsafe, <VOID>, 'sqlite3_threadsafe', \ + sqliteTotalChanges, <.ptrDB>, 'sqlite3_total_changes', \ + sqliteTrace, <.ptrDB, .procTrace, .lparam>, 'sqlite3_trace', \ + sqliteTransferBindings, <VOID>, 'sqlite3_transfer_bindings', \ + sqliteUpdateHook, <.ptrDB, .procUpdateHook, .lparam>, 'sqlite3_update_hook', \ + sqliteUserData, <.context>, 'sqlite3_user_data', \ + sqliteValueBlob, <.ptrValue>, 'sqlite3_value_blob', \ + sqliteValueBytes, <.ptrValue>, 'sqlite3_value_bytes', \ + sqliteValueBytes16, <.ptrValue>, 'sqlite3_value_bytes16', \ + sqliteValueDouble, <.ptrValue>, 'sqlite3_value_double', \ + sqliteValueInt, <.ptrValue>, 'sqlite3_value_int', \ + sqliteValueInt64, <.ptrValue>, 'sqlite3_value_int64', \ + sqliteValueNumericType, <.ptrValue>, 'sqlite3_value_numeric_type', \ + sqliteValueText, <.ptrValue>, 'sqlite3_value_text', \ + sqliteValueText16, <.ptrValue>, 'sqlite3_value_text16', \ + sqliteValueText16be, <.ptrValue>, 'sqlite3_value_text16be', \ + sqliteValueText16le, <.ptrValue>, 'sqlite3_value_text16le', \ + sqliteValueType, <.ptrValue>, 'sqlite3_value_type', \ + sqliteVersion, <VOID>, 'sqlite3_version', \ + sqliteVfsFind, <.ptrVFSName>, 'sqlite3_vfs_find', \ + sqliteVfsRegister, <.hVFS, .flagDefault>, 'sqlite3_vfs_register', \ + sqliteVfsUnregister, <.hVFS>, 'sqlite3_vfs_unregister', \ + sqliteVmprintf, <.ptrString, .va_list>, 'sqlite3_vmprintf', \ + sqliteWalAutocheckpoint, <.ptrDB, .N>, 'sqlite3_wal_autocheckpoint', \ + sqliteWalCheckpoint, <.ptrDB, .ptrDBName>, 'sqlite3_wal_checkpoint', \ + sqliteWalCheckpoint_v2, <.ptrDB, .ptrDBName, .eMode, .pvarLog, .pvarCkpt>, 'sqlite3_wal_checkpoint_v2', \ + sqliteWalHook, <.ptrDB, .procCommitHook, .lparam>, 'sqlite3_wal_hook', \ + sqliteWin32_MbcsToUtf8, <NONE>, 'sqlite3_win32_mbcs_to_utf8' ADDED freshlib/imports/Win32/sqlite3.inc Index: freshlib/imports/Win32/sqlite3.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/sqlite3.inc @@ -0,0 +1,207 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: sqlite3.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto sqlite3, \ + sqliteAggregateContext, <.context, .nbytes>, 'sqlite3_aggregate_context', \ + sqliteAggregateCount_OLD, <VOID>, 'sqlite3_aggregate_count', \ + sqliteAutoExtension, <.ptrCallback>, 'sqlite3_auto_extension', \ + sqliteBackupFinish, <.ptrBackup>, 'sqlite3_backup_finish', \ + sqliteBackupInit, <.ptrDestDB, .ptrDestName, .ptrSourceDB, .ptrSourceName>, 'sqlite3_backup_init', \ + sqliteBackupPageCount, <.ptrBackup>, 'sqlite3_backup_pagecount', \ + sqliteBackupRemaining, <.ptrBackup>, 'sqlite3_backup_remaining', \ + sqliteBackupStep, <.ptrBackup, .nPage>, 'sqlite3_backup_step', \ + sqliteBindBlob, <.stmt, .index, .ptrData, .nbytes, .destructor>, 'sqlite3_bind_blob', \ + sqliteBindDouble, <.stmt, .index, .value>, 'sqlite3_bind_double', \ + sqliteBindInt, <.stmt, .index, .value>, 'sqlite3_bind_int', \ + sqliteBindInt64, <.stmt, .index, .valueLo, .valueHi>, 'sqlite3_bind_int64', \ + sqliteBindNull, <.stmt, .index>, 'sqlite3_bind_null', \ + sqliteBindParameterCount, <.stmt>, 'sqlite3_bind_parameter_count', \ + sqliteBindParameterIndex, <.stmt, .paramName>, 'sqlite3_bind_parameter_index', \ + sqliteBindParameterName, <.stmt, .paramIndex>, 'sqlite3_bind_parameter_name', \ + sqliteBindText, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text', \ + sqliteBindText16, <.stmt, .index, .ptrText, .nbytes, .destructor>, 'sqlite3_bind_text16', \ + sqliteBindValue, <.stmt, .index, .ptrValue>, 'sqlite3_bind_value', \ + sqliteBindZeroblob, <.stmt, .index, .size>, 'sqlite3_bind_zeroblob', \ + sqliteBlobBytes, <.hBlob>, 'sqlite3_blob_bytes', \ + sqliteBlobClose, <.hBlob>, 'sqlite3_blob_close', \ + sqliteBlobOpen, <.ptrDB, .DBname, .Table, .Column, .iRow, .flags, .ptrVarBlob>, 'sqlite3_blob_open', \ + sqliteBlobRead, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_read', \ + sqliteBlobWrite, <.hBlob, .ptrBuffer, .bytes, .iOffset>, 'sqlite3_blob_write', \ + sqliteBusyHandler, <.ptrDB, .ptrProc, .lParam>, 'sqlite3_busy_handler', \ + sqliteBusyTimeout, <.ptrDB, .time_ms>, 'sqlite3_busy_timeout', \ + sqliteChanges, <.ptrDB>, 'sqlite3_changes', \ + sqliteClearBindings, <.stmt>, 'sqlite3_clear_bindings', \ + sqliteClose, <.ptrDatabase>, 'sqlite3_close', \ + sqliteCollationNeeded, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed', \ + sqliteCollationNeeded16, <.ptrDB, .lparam, .ptrCallback>, 'sqlite3_collation_needed16', \ + sqliteColumnBlob, <.stmt, .iCol>, 'sqlite3_column_blob', \ + sqliteColumnBytes, <.stmt, .iCol>, 'sqlite3_column_bytes', \ + sqliteColumnBytes16, <.stmt, .iCol>, 'sqlite3_column_bytes16', \ + sqliteColumnCount, <.stmt>, 'sqlite3_column_count', \ + sqliteColumnDatabaseName, <.stmt, .index>, 'sqlite3_column_database_name', \ + sqliteColumnDatabaseName16, <.stmt, .index>, 'sqlite3_column_database_name16', \ + sqliteColumnDeclType, <.stmt, .index>, 'sqlite3_column_decltype', \ + sqliteColumnDeclType16, <.stmt, .index>, 'sqlite3_column_decltype16', \ + sqliteColumnDouble, <.stmt, .iCol>, 'sqlite3_column_double', \ + sqliteColumnInt, <.stmt, .iCol>, 'sqlite3_column_int', \ + sqliteColumnInt64, <.stmt, .iCol>, 'sqlite3_column_int64', \ + sqliteColumnName, <.stmt, .index>, 'sqlite3_column_name', \ + sqliteColumnName16, <.stmt, .index>, 'sqlite3_column_name16', \ + sqliteColumnOriginName, <.stmt, .index>, 'sqlite3_column_origin_name', \ + sqliteColumnOriginName16, <.stmt, .index>, 'sqlite3_column_origin_name16', \ + sqliteColumnTableName, <.stmt, .index>, 'sqlite3_column_table_name', \ + sqliteColumnTableName16, <.stmt, .index>, 'sqlite3_column_table_name16', \ + sqliteColumnText, <.stmt, .iCol>, 'sqlite3_column_text', \ + sqliteColumnText16, <.stmt, .iCol>, 'sqlite3_column_text16', \ + sqliteColumnType, <.stmt, .iCol>, 'sqlite3_column_type', \ + sqliteColumnValue, <.stmt, .iCol>, 'sqlite3_column_value', \ + sqliteCommitHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_commit_hook', \ + sqliteCompileOptionGet, <.N>, 'sqlite3_compileoption_get', \ + sqliteCompileOptionUsed, <.ptrOptName>, 'sqlite3_compileoption_used', \ + sqliteComplete, <.ptrSQL>, 'sqlite3_complete', \ + sqliteComplete16, <.ptrSQL>, 'sqlite3_complete16', \ + sqliteConfig, <.index, ...>, 'sqlite3_config', \ + sqliteContextDBHandle, <.context>, 'sqlite3_context_db_handle', \ + sqliteCreateCollation, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation', \ + sqliteCreateCollation16, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare>, 'sqlite3_create_collation16', \ + sqliteCreateCollation_v2, <.ptrDB, .ptrName, .eTextRep, .lparam, .procCompare, .ptrDestroy>, 'sqlite3_create_collation_v2', \ + sqliteCreateFunction, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function', \ + sqliteCreateFunction16, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal>, 'sqlite3_create_function16', \ + sqliteCreateFunction_v2, <.ptrDB, .ptrFunctionName, .nArg, .eTextRep, .lparam, .procFunc, .procStep, .procFinal, .procDestroy>, 'sqlite3_create_function_v2', \ + sqliteCreateModule, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam>, 'sqlite3_create_module', \ + sqliteCreateModule_v2, <.ptrDB, .ptrModuleName, .ptrVTableModule, .lparam, .procDestroy>, 'sqlite3_create_module_v2', \ + sqliteDBConfig, <.ptrDB, .index, ...>, 'sqlite3_db_config', \ + sqliteDBHandle, <.stmt>, 'sqlite3_db_handle', \ + sqliteDBMutex, <.ptrDB>, 'sqlite3_db_mutex', \ + sqliteDBStatus, <.ptrDB, .index, .ptrRetCurrent, .ptrRetHighest, .flagReset>, 'sqlite3_db_status', \ + sqliteDataCount, <.stmt>, 'sqlite3_data_count', \ + sqliteDeclareVtab, <.ptrDB, .ptrSQL>, 'sqlite3_declare_vtab', \ + sqliteEnableLoadExtension, <.ptrDB, .flagEnable>, 'sqlite3_enable_load_extension', \ + sqliteEnableSharedCache, <.flagEnable>, 'sqlite3_enable_shared_cache', \ + sqliteErrCode, <.ptrDB>, 'sqlite3_errcode', \ + sqliteErrMsg, <.ptrDB>, 'sqlite3_errmsg', \ + sqliteErrMsg16, <.ptrDB>, 'sqlite3_errmsg16', \ + sqliteErrStr, <.err_code>, 'sqlite3_errstr', \ + sqliteExec, <.ptrDB, .ptrSQL, .procCallback, .lparam, .ptrVarErrMsg>, 'sqlite3_exec', \ + sqliteExpired, <VOID>, 'sqlite3_expired', \ + sqliteExtendedErrCode, <.ptrDB>, 'sqlite3_extended_errcode', \ + sqliteExtendedResultCodes, <.ptrDB, .flagEnable>, 'sqlite3_extended_result_codes', \ + sqliteFileControl, <.ptrDB, .ptrDBName, .wparam, .lparam>, 'sqlite3_file_control', \ + sqliteFinalize, <.stmt>, 'sqlite3_finalize', \ + sqliteFree, <.ptrmem>, 'sqlite3_free', \ + sqliteFreeTable, <.ptrVarResult>, 'sqlite3_free_table', \ + sqliteGetAutocommit, <.ptrDB>, 'sqlite3_get_autocommit', \ + sqliteGetAuxdata, <.context, .N>, 'sqlite3_get_auxdata', \ + sqliteGetTable, <.ptrDB, .ptrSQL, .ptrVarResult, .ptrVarRows, .ptrVarColumns, .ptrVarErrorMsg>, 'sqlite3_get_table', \ + sqliteGlobalRecover_OLD, <VOID>, 'sqlite3_global_recover', \ + sqliteInitialize, <VOID>, 'sqlite3_initialize', \ + sqliteInterrupt, <.ptrDB>, 'sqlite3_interrupt', \ + sqliteLastInsertRowID, <.ptrDB>, 'sqlite3_last_insert_rowid', \ + sqliteLibVersion, <VOID>, 'sqlite3_libversion', \ + sqliteLibversionNumber, <VOID>, 'sqlite3_libversion_number', \ + sqliteLimit, <.ptrDB, .idLimit, .newVal>, 'sqlite3_limit', \ + sqliteLoadExtension, <.ptrDB, .nameDLL, .entryProc, .ptrVarErrMsg>, 'sqlite3_load_extension', \ + sqliteLog, <.iErrCode, .ptrFormat, ...>, 'sqlite3_log', \ + sqliteMAlloc, <.size>, 'sqlite3_malloc', \ + sqliteMemoryAlarm_OLD, <VOID>, 'sqlite3_memory_alarm', \ + sqliteMemoryHighWater, <.flagReset>, 'sqlite3_memory_highwater', \ + sqliteMemoryUsed, <VOID>, 'sqlite3_memory_used', \ + sqliteMprintf, <.ptrString, ...>, 'sqlite3_mprintf', \ + sqliteMutexAlloc, <.type>, 'sqlite3_mutex_alloc', \ + sqliteMutexEnter, <.hMutex>, 'sqlite3_mutex_enter', \ + sqliteMutexFree, <.hMutex>, 'sqlite3_mutex_free', \ + sqliteMutexLeave, <.hMutex>, 'sqlite3_mutex_leave', \ + sqliteMutexTry, <.hMutex>, 'sqlite3_mutex_try', \ + sqliteNextStmt, <.ptrDB, .stmt>, 'sqlite3_next_stmt', \ + sqliteOSEnd, <VOID>, 'sqlite3_os_end', \ + sqliteOSInit, <VOID>, 'sqlite3_os_init', \ + sqliteOpen, <.ptrFileName, .ptrVarDB>, 'sqlite3_open', \ + sqliteOpen16, <.ptrFileName, .ptrVarDB>, 'sqlite3_open16', \ + sqliteOpen_v2, <.ptrFileName, .ptrVarDB, .flags, .ptrVFSName>, 'sqlite3_open_v2', \ + sqliteOverloadFunction, <.ptrDB, .ptrFuncName, .lparam>, 'sqlite3_overload_function', \ + sqlitePrepare, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare', \ + sqlitePrepare16, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16', \ + sqlitePrepare16_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare16_v2', \ + sqlitePrepare_v2, <.ptrDB, .ptrSQL, .lenSQL, .ptrVarStmt, .ptrVarNext>, 'sqlite3_prepare_v2', \ + sqliteProfile, <.ptrDB, .procProfiler, .lparam>, 'sqlite3_profile', \ + sqliteProgressHandler, <.ptrDB, .N, .procProgress, .lparam>, 'sqlite3_progress_handler', \ + sqliteRandomness, <.bytes, .buffer>, 'sqlite3_randomness', \ + sqliteReAlloc, <.ptrmem, .newsize>, 'sqlite3_realloc', \ + sqliteReleaseMemory, <.bytes>, 'sqlite3_release_memory', \ + sqliteReset, <.stmt>, 'sqlite3_reset', \ + sqliteResetAutoExtension, <VOID>, 'sqlite3_reset_auto_extension', \ + sqliteResultBlob, <.context, .ptrdata, .size, .procDestroy>, 'sqlite3_result_blob', \ + sqliteResultDouble, <.context, .double>, 'sqlite3_result_double', \ + sqliteResultError, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error', \ + sqliteResultError16, <.context, .ptrErrMsg, .size>, 'sqlite3_result_error16', \ + sqliteResultErrorCode, <.context, .errcode>, 'sqlite3_result_error_code', \ + sqliteResultErrorNoMem, <.context>, 'sqlite3_result_error_nomem', \ + sqliteResultErrorTooBig, <.context>, 'sqlite3_result_error_toobig', \ + sqliteResultInt, <.context, .integer>, 'sqlite3_result_int', \ + sqliteResultInt64, <.context, .int64Lo, .int64Hi>, 'sqlite3_result_int64', \ + sqliteResultNULL, <.context>, 'sqlite3_result_null', \ + sqliteResultText, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text', \ + sqliteResultText16, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16', \ + sqliteResultText16be, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16be', \ + sqliteResultText16le, <.context, .ptrText, .size, .procDestroy>, 'sqlite3_result_text16le', \ + sqliteResultValue, <.context, .ptrValue>, 'sqlite3_result_value', \ + sqliteResultZeroBlob, <.context, .size>, 'sqlite3_result_zeroblob', \ + sqliteRollbackHook, <.ptrDB, .ptrHook, .lparam>, 'sqlite3_rollback_hook', \ + sqliteRtreeGeometryCallback, <NONE>, 'sqlite3_rtree_geometry_callback', \ + sqliteSQL, <.stmt>, 'sqlite3_sql', \ + sqliteSetAuthorizer, <.ptrDB, .procAuthorizer, .lparam>, 'sqlite3_set_authorizer', \ + sqliteSetAuxdata, <.context, .N, .ptrData, .procDestructor>, 'sqlite3_set_auxdata', \ + sqliteShutdown, <VOID>, 'sqlite3_shutdown', \ + sqliteSleep, <.sleep_ms>, 'sqlite3_sleep', \ + sqliteSnprintf, <.size, .ptrBuffer, .ptrString, ...>, 'sqlite3_snprintf', \ + sqliteSoftHeapLimit, <.N>, 'sqlite3_soft_heap_limit', \ + sqliteSoftHeapLimit64, <.sizeLo, .sizeHi>, 'sqlite3_soft_heap_limit64', \ + sqliteSourceID, <VOID>, 'sqlite3_sourceid', \ + sqliteStatus, <.paramIndex, .ptrVarResult, .ptrVarHighwater, .flagReset>, 'sqlite3_status', \ + sqliteStep, <.stmt>, 'sqlite3_step', \ + sqliteStmtStatus, <.stmt, .paramIndex, .flagReset>, 'sqlite3_stmt_status', \ + sqliteStrnicmp, <.ptrStr1, .ptrStr2, .size>, 'sqlite3_strnicmp', \ + sqliteTableColumnMetadata, <.ptrDB, .ptrDBName, .ptrTableName, .ptrColumnName, .ptrVarDataType, .ptrVarCollSeq, .ptrVarNotNull, \ + .ptrVarPrimaryKey, .ptrVarAutoInc>, 'sqlite3_table_column_metadata', \ + sqliteTestControl, <.opCode, ...>, 'sqlite3_test_control', \ + sqliteThreadCleanup, <VOID>, 'sqlite3_thread_cleanup', \ + sqliteThreadsafe, <VOID>, 'sqlite3_threadsafe', \ + sqliteTotalChanges, <.ptrDB>, 'sqlite3_total_changes', \ + sqliteTrace, <.ptrDB, .procTrace, .lparam>, 'sqlite3_trace', \ + sqliteTransferBindings, <VOID>, 'sqlite3_transfer_bindings', \ + sqliteUpdateHook, <.ptrDB, .procUpdateHook, .lparam>, 'sqlite3_update_hook', \ + sqliteUserData, <.context>, 'sqlite3_user_data', \ + sqliteValueBlob, <.ptrValue>, 'sqlite3_value_blob', \ + sqliteValueBytes, <.ptrValue>, 'sqlite3_value_bytes', \ + sqliteValueBytes16, <.ptrValue>, 'sqlite3_value_bytes16', \ + sqliteValueDouble, <.ptrValue>, 'sqlite3_value_double', \ + sqliteValueInt, <.ptrValue>, 'sqlite3_value_int', \ + sqliteValueInt64, <.ptrValue>, 'sqlite3_value_int64', \ + sqliteValueNumericType, <.ptrValue>, 'sqlite3_value_numeric_type', \ + sqliteValueText, <.ptrValue>, 'sqlite3_value_text', \ + sqliteValueText16, <.ptrValue>, 'sqlite3_value_text16', \ + sqliteValueText16be, <.ptrValue>, 'sqlite3_value_text16be', \ + sqliteValueText16le, <.ptrValue>, 'sqlite3_value_text16le', \ + sqliteValueType, <.ptrValue>, 'sqlite3_value_type', \ + sqliteVersion, <VOID>, 'sqlite3_version', \ + sqliteVfsFind, <.ptrVFSName>, 'sqlite3_vfs_find', \ + sqliteVfsRegister, <.hVFS, .flagDefault>, 'sqlite3_vfs_register', \ + sqliteVfsUnregister, <.hVFS>, 'sqlite3_vfs_unregister', \ + sqliteVmprintf, <.ptrString, .va_list>, 'sqlite3_vmprintf', \ + sqliteWalAutocheckpoint, <.ptrDB, .N>, 'sqlite3_wal_autocheckpoint', \ + sqliteWalCheckpoint, <.ptrDB, .ptrDBName>, 'sqlite3_wal_checkpoint', \ + sqliteWalCheckpoint_v2, <.ptrDB, .ptrDBName, .eMode, .pvarLog, .pvarCkpt>, 'sqlite3_wal_checkpoint_v2', \ + sqliteWalHook, <.ptrDB, .procCommitHook, .lparam>, 'sqlite3_wal_hook', \ + sqliteWin32_MbcsToUtf8, <NONE>, 'sqlite3_win32_mbcs_to_utf8' ADDED freshlib/imports/Win32/ucrtbase.inc Index: freshlib/imports/Win32/ucrtbase.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/ucrtbase.inc @@ -0,0 +1,6 @@ +; msvcrt.dll API calls (ASCII) +import_proto ucrtbase, \ + _aligned_free, <.p_mem>, '_aligned_free', \ + _aligned_malloc, <.size, .alignment>, '_aligned_malloc', \ + _aligned_realloc, <.p_mem, .size, .alignment>, '_aligned_realloc', \ + _aligned_msize, <.p_mem, .alignment, .offset>, '_aligned_msize' ADDED freshlib/imports/Win32/user32.inc Index: freshlib/imports/Win32/user32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/user32.inc @@ -0,0 +1,750 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: user32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +; user32.dll API calls +import_proto user32, \ + ActivateKeyboardLayout, <.HKL, .flags>, 'ActivateKeyboardLayout', \ + AdjustWindowRect, <.lpRect, .dwStyle, .bMenu>, 'AdjustWindowRect', \ + AdjustWindowRectEx, <.lpRect, .dwStyle, .bMenu, .dwExStyle>, 'AdjustWindowRectEx', \ + AlignRects, <NONE>, 'AlignRects', \ + AllowForegroundActivation, <NONE>, 'AllowForegroundActivation', \ + AllowSetForegroundWindow, <.dwProcessId>, 'AllowSetForegroundWindow', \ + AnimateWindow, <.hwnd, .dwTime, .dwFlags>, 'AnimateWindow', \ + AnyPopup, <VOID>, 'AnyPopup', \ + AppendMenuA, <.hMenu, .wFlags, .wIDNewItem, .lpNewItem>, 'AppendMenuA', \ + AppendMenuW, <.hMenu, .wFlags, .wIDNewItem, .lpNewItem>, 'AppendMenuW', \ + ArrangeIconicWindows, <.hwnd>, 'ArrangeIconicWindows', \ + AttachThreadInput, <.idAttach, .idAttachTo, .fAttach>, 'AttachThreadInput', \ + BeginDeferWindowPos, <.nNumWindows>, 'BeginDeferWindowPos', \ + BeginPaint, <.hwnd, .lpPaint>, 'BeginPaint', \ + BlockInput, <.fBlockIt>, 'BlockInput', \ + BringWindowToTop, <.hwnd>, 'BringWindowToTop', \ + BroadcastSystemMessage, <.dw, .pdw, .un, .wParam, .lParam>, 'BroadcastSystemMessage', \ + BroadcastSystemMessageA, <.dw, .pdw, .un, .wParam, .lParam>, 'BroadcastSystemMessageA', \ + BroadcastSystemMessageExA, <NONE>, 'BroadcastSystemMessageExA', \ + BroadcastSystemMessageExW, <NONE>, 'BroadcastSystemMessageExW', \ + BroadcastSystemMessageW, <.dw, .pdw, .un, .wParam, .lParam>, 'BroadcastSystemMessageW', \ + BuildReasonArray, <NONE>, 'BuildReasonArray', \ + CalcMenuBar, <NONE>, 'CalcMenuBar', \ + CallMsgFilter, <.lpMsg, .ncode>, 'CallMsgFilter', \ + CallMsgFilterA, <.lpMsg, .ncode>, 'CallMsgFilterA', \ + CallMsgFilterW, <.lpMsg, .ncode>, 'CallMsgFilterW', \ + CallNextHookEx, <.hHook, .ncode, .wParam, .lParam>, 'CallNextHookEx', \ + CallWindowProcA, <.lpPrevWndFunc, .hWnd, .Msg, .wParam, .lParam>, 'CallWindowProcA', \ + CallWindowProcW, <.lpPrevWndFunc, .hWnd, .Msg, .wParam, .lParam>, 'CallWindowProcW', \ + CascadeChildWindows, <NONE>, 'CascadeChildWindows', \ + CascadeWindows, <.hwndParent, .wHow, .lpRect, .cKids, .lpkids>, 'CascadeWindows', \ + ChangeClipboardChain, <.hwnd, .hWndNext>, 'ChangeClipboardChain', \ + ChangeDisplaySettingsA, <.lpDevMode, .dwFlags>, 'ChangeDisplaySettingsA', \ + ChangeDisplaySettingsExA, <.lpszDeviceName, .lpDevMode, .hwnd, .dwflags, .lParam>, 'ChangeDisplaySettingsExA', \ + ChangeDisplaySettingsExW, <.lpszDeviceName, .lpDevMode, .hwnd, .dwflags, .lParam>, 'ChangeDisplaySettingsExW', \ + ChangeDisplaySettingsW, <.lpDevMode, .dwFlags>, 'ChangeDisplaySettingsW', \ + ChangeMenuA, <.hMenu, .cmd, .lpszNewItem, .cmdInsert, .flags>, 'ChangeMenuA', \ + ChangeMenuW, <.hMenu, .cmd, .lpszNewItem, .cmdInsert, .flags>, 'ChangeMenuW', \ + CharLowerA, <.lpsz>, 'CharLowerA', \ + CharLowerBuffA, <.lpsz, .cchLength>, 'CharLowerBuffA', \ + CharLowerBuffW, <.lpsz, .cchLength>, 'CharLowerBuffW', \ + CharLowerW, <.lpsz>, 'CharLowerW', \ + CharNextA, <.lpsz>, 'CharNextA', \ + CharNextExA, <.CodePage, .lpCurrentChar, .dwFlags>, 'CharNextExA', \ + CharNextW, <.lpsz>, 'CharNextW', \ + CharPrevA, <.lpszStart, .lpszCurrent>, 'CharPrevA', \ + CharPrevExA, <.CodePage, .lpStart, .lpCurrentChar, .dwFlags>, 'CharPrevExA', \ + CharPrevW, <.lpszStart, .lpszCurrent>, 'CharPrevW', \ + CharToOemA, <.lpszSrc, .lpszDst>, 'CharToOemA', \ + CharToOemBuffA, <.lpszSrc, .lpszDst, .cchDstLength>, 'CharToOemBuffA', \ + CharToOemBuffW, <.lpszSrc, .lpszDst, .cchDstLength>, 'CharToOemBuffW', \ + CharToOemW, <.lpszSrc, .lpszDst>, 'CharToOemW', \ + CharUpperA, <.lpsz>, 'CharUpperA', \ + CharUpperBuffA, <.lpsz, .cchLength>, 'CharUpperBuffA', \ + CharUpperBuffW, <.lpsz, .cchLength>, 'CharUpperBuffW', \ + CharUpperW, <.lpsz>, 'CharUpperW', \ + CheckDlgButton, <.hDlg, .nIDButton, .uCheck>, 'CheckDlgButton', \ + CheckMenuItem, <.hMenu, .wIDCheckItem, .wCheck>, 'CheckMenuItem', \ + CheckMenuRadioItem, <.hMenu, .un1, .un2, .un3, .un4>, 'CheckMenuRadioItem', \ + CheckRadioButton, <.hDlg, .nIDFirstButton, .nIDLastButton, .nIDCheckButton>, 'CheckRadioButton', \ + ChildWindowFromPoint, <.hWnd, .xPoint, .yPoint>, 'ChildWindowFromPoint', \ + ChildWindowFromPointEx, <.hWnd, .pt, .un>, 'ChildWindowFromPointEx', \ + CliImmSetHotKey, <NONE>, 'CliImmSetHotKey', \ + ClientThreadSetup, <NONE>, 'ClientThreadSetup', \ + ClientToScreen, <.hwnd, .lpPoint>, 'ClientToScreen', \ + ClipCursor, <.lpRect>, 'ClipCursor', \ + CloseClipboard, <VOID>, 'CloseClipboard', \ + CloseDesktop, <.hDesktop>, 'CloseDesktop', \ + CloseWindow, <.hwnd>, 'CloseWindow', \ + CloseWindowStation, <.hWinSta>, 'CloseWindowStation', \ + CopyAcceleratorTableA, <.hAccelSrc, .lpAccelDst, .cAccelEntries>, 'CopyAcceleratorTableA', \ + CopyAcceleratorTableW, <.hAccelSrc, .lpAccelDst, .cAccelEntries>, 'CopyAcceleratorTableW', \ + CopyIcon, <.hIcon>, 'CopyIcon', \ + CopyImage, <.handle, .un1, .n1, .n2, .un2>, 'CopyImage', \ + CopyRect, <.lpDestRect, .lpSourceRect>, 'CopyRect', \ + CountClipboardFormats, <VOID>, 'CountClipboardFormats', \ + CreateAcceleratorTableA, <.lpaccl, .cEntries>, 'CreateAcceleratorTableA', \ + CreateAcceleratorTableW, <.lpaccl, .cEntries>, 'CreateAcceleratorTableW', \ + CreateCaret, <.hwnd, .hBitmap, .nWidth, .nHeight>, 'CreateCaret', \ + CreateCursor, <.hInstance, .nXhotspot, .nYhotspot, .nWidth, .nHeight, .lpANDbitPlane, .lpXORbitPlane>, 'CreateCursor', \ + CreateDesktopA, <.lpszDesktop, .lpszDevice, .pDevmode, .dwFlags, .dwDesiredAccess, .lpsa>, 'CreateDesktopA', \ + CreateDesktopW, <.lpszDesktop, .lpszDevice, .pDevmode, .dwFlags, .dwDesiredAccess, .lpsa>, 'CreateDesktopW', \ + CreateDialogIndirectParamA, <.hInstance, .lpTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'CreateDialogIndirectParamA', \ + CreateDialogIndirectParamAorW, <NONE>, 'CreateDialogIndirectParamAorW', \ + CreateDialogIndirectParamW, <.hInstance, .lpTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'CreateDialogIndirectParamW', \ + CreateDialogParamA, <.hInstance, .lpName, .hWndParent, .lpDialogFunc, .lParamInit>, 'CreateDialogParamA', \ + CreateDialogParamW, <.hInstance, .lpName, .hWndParent, .lpDialogFunc, .lParamInit>, 'CreateDialogParamW', \ + CreateIcon, <.hInstance, .nWidth, .nHeight, .nPlanes, .nBitsPixel, .lpANDbits, .lpXORbits>, 'CreateIcon', \ + CreateIconFromResource, <.presbits, .dwResSize, .fIcon, .dwVer>, 'CreateIconFromResource', \ + CreateIconFromResourceEx, <.presbits, .dwResSize, .fIcon, .dwVer, .cxDesired, .cyDesired, .Flags>, 'CreateIconFromResourceEx', \ + CreateIconIndirect, <.piconinfo>, 'CreateIconIndirect', \ + CreateMDIWindowA, <.lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hInstance, .lParam>, 'CreateMDIWindowA', \ + CreateMDIWindowW, <.lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hInstance, .lParam>, 'CreateMDIWindowW', \ + CreateMenu, <VOID>, 'CreateMenu', \ + CreatePopupMenu, <VOID>, 'CreatePopupMenu', \ + CreateSystemThreads, <NONE>, 'CreateSystemThreads', \ + CreateWindowExA, <.dwExStyle, .lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hMenu, .hInstance, \ + .lpParam>, 'CreateWindowExA', \ + CreateWindowExW, <.dwExStyle, .lpClassName, .lpWindowName, .dwStyle, .x, .y, .nWidth, .nHeight, .hWndParent, .hMenu, .hInstance, \ + .lpParam>, 'CreateWindowExW', \ + CreateWindowStationA, <.lpwinsta, .dwReserved, .dwDesiredAccess, .lpsa>, 'CreateWindowStationA', \ + CreateWindowStationW, <.lpwinsta, .dwReserved, .dwDesiredAccess, .lpsa>, 'CreateWindowStationW', \ + CsrBroadcastSystemMessageExW, <NONE>, 'CsrBroadcastSystemMessageExW', \ + CtxInitUser32, <NONE>, 'CtxInitUser32', \ + DdeAbandonTransaction, <.idInst, .hConv, .idTransaction>, 'DdeAbandonTransaction', \ + DdeAccessData, <.hData, .pcbDataSize>, 'DdeAccessData', \ + DdeAddData, <.hData, .pSrc, .cb, .cbOff>, 'DdeAddData', \ + DdeClientTransaction, <.pData, .cbData, .hConv, .hszItem, .wFmt, .wType, .dwTimeout, .pdwResult>, 'DdeClientTransaction', \ + DdeCmpStringHandles, <.hsz1, .hsz2>, 'DdeCmpStringHandles', \ + DdeConnect, <.idInst, .hszService, .hszTopic, .pCC>, 'DdeConnect', \ + DdeConnectList, <.idInst, .hszService, .hszTopic, .hConvList, .pCC>, 'DdeConnectList', \ + DdeCreateDataHandle, <.idInst, .pSrc, .cb, .cbOff, .hszItem, .wFmt, .afCmd>, 'DdeCreateDataHandle', \ + DdeCreateStringHandleA, <.idInst, .psz, .iCodePage>, 'DdeCreateStringHandleA', \ + DdeCreateStringHandleW, <.idInst, .psz, .iCodePage>, 'DdeCreateStringHandleW', \ + DdeDisconnect, <.hConv>, 'DdeDisconnect', \ + DdeDisconnectList, <.hConvList>, 'DdeDisconnectList', \ + DdeEnableCallback, <.idInst, .hConv, .wCmd>, 'DdeEnableCallback', \ + DdeFreeDataHandle, <.hData>, 'DdeFreeDataHandle', \ + DdeFreeStringHandle, <.idInst, .hsz>, 'DdeFreeStringHandle', \ + DdeGetData, <.hData, .pDst, .cbMax, .cbOff>, 'DdeGetData', \ + DdeGetLastError, <.idInst>, 'DdeGetLastError', \ + DdeGetQualityOfService, <NONE>, 'DdeGetQualityOfService', \ + DdeImpersonateClient, <.hConv>, 'DdeImpersonateClient', \ + DdeInitializeA, <.pidInst, .pfnCallback, .afCmd, .ulRes>, 'DdeInitializeA', \ + DdeInitializeW, <.pidInst, .pfnCallback, .afCmd, .ulRes>, 'DdeInitializeW', \ + DdeKeepStringHandle, <.idInst, .hsz>, 'DdeKeepStringHandle', \ + DdeNameService, <.idInst, .hsz1, .hsz2, .afCmd>, 'DdeNameService', \ + DdePostAdvise, <.idInst, .hszTopic, .hszItem>, 'DdePostAdvise', \ + DdeQueryConvInfo, <.hConv, .idTransaction, .pConvInfo>, 'DdeQueryConvInfo', \ + DdeQueryNextServer, <.hConvList, .hConvPrev>, 'DdeQueryNextServer', \ + DdeQueryStringA, <.idInst, .hsz, .psz, .cchMax, .iCodePage>, 'DdeQueryStringA', \ + DdeQueryStringW, <.idInst, .hsz, .psz, .cchMax, .iCodePage>, 'DdeQueryStringW', \ + DdeReconnect, <.hConv>, 'DdeReconnect', \ + DdeSetQualityOfService, <.hWndClient, .pqosNew, .pqosPrev>, 'DdeSetQualityOfService', \ + DdeSetUserHandle, <.hConv, .id, .hUser>, 'DdeSetUserHandle', \ + DdeUnaccessData, <.hData>, 'DdeUnaccessData', \ + DdeUninitialize, <.idInst>, 'DdeUninitialize', \ + DefDlgProcA, <.hDlg, .wMsg, .wParam, .lParam>, 'DefDlgProcA', \ + DefDlgProcW, <.hDlg, .wMsg, .wParam, .lParam>, 'DefDlgProcW', \ + DefFrameProcA, <.hwnd, .hWndMDIClient, .wMsg, .wParam, .lParam>, 'DefFrameProcA', \ + DefFrameProcW, <.hwnd, .hWndMDIClient, .wMsg, .wParam, .lParam>, 'DefFrameProcW', \ + DefMDIChildProcA, <.hwnd, .wMsg, .wParam, .lParam>, 'DefMDIChildProcA', \ + DefMDIChildProcW, <.hwnd, .wMsg, .wParam, .lParam>, 'DefMDIChildProcW', \ + DefRawInputProc, <NONE>, 'DefRawInputProc', \ + DefWindowProcA, <.hwnd, .wMsg, .wParam, .lParam>, 'DefWindowProcA', \ + DefWindowProcW, <.hwnd, .wMsg, .wParam, .lParam>, 'DefWindowProcW', \ + DeferWindowPos, <.hWinPosInfo, .hwnd, .hWndInsertAfter, .x, .y, .cx, .cy, .wFlags>, 'DeferWindowPos', \ + DeleteMenu, <.hMenu, .nPosition, .wFlags>, 'DeleteMenu', \ + DeregisterShellHookWindow, <NONE>, 'DeregisterShellHookWindow', \ + DestroyAcceleratorTable, <.haccel>, 'DestroyAcceleratorTable', \ + DestroyCaret, <VOID>, 'DestroyCaret', \ + DestroyCursor, <.hCursor>, 'DestroyCursor', \ + DestroyIcon, <.hIcon>, 'DestroyIcon', \ + DestroyMenu, <.hMenu>, 'DestroyMenu', \ + DestroyReasons, <NONE>, 'DestroyReasons', \ + DestroyWindow, <.hwnd>, 'DestroyWindow', \ + DeviceEventWorker, <NONE>, 'DeviceEventWorker', \ + DialogBoxIndirectParamA, <.hInstance, .hDialogTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxIndirectParamA', \ + DialogBoxIndirectParamAorW, <NONE>, 'DialogBoxIndirectParamAorW', \ + DialogBoxIndirectParamW, <.hInstance, .hDialogTemplate, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxIndirectParamW', \ + DialogBoxParamA, <.hInstance, .lpTemplateName, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxParamA', \ + DialogBoxParamW, <.hInstance, .lpTemplateName, .hWndParent, .lpDialogFunc, .dwInitParam>, 'DialogBoxParamW', \ + DisableProcessWindowsGhosting, <NONE>, 'DisableProcessWindowsGhosting', \ + DispatchMessageA, <.lpMsg>, 'DispatchMessageA', \ + DispatchMessageW, <.lpMsg>, 'DispatchMessageW', \ + DisplayExitWindowsWarnings, <NONE>, 'DisplayExitWindowsWarnings', \ + DlgDirListA, <.hDlg, .lpPathSpec, .nIDListBox, .nIDStaticPath, .wFileType>, 'DlgDirListA', \ + DlgDirListComboBoxA, <.hDlg, .lpPathSpec, .nIDComboBox, .nIDStaticPath, .wFileType>, 'DlgDirListComboBoxA', \ + DlgDirListComboBoxW, <.hDlg, .lpPathSpec, .nIDComboBox, .nIDStaticPath, .wFileType>, 'DlgDirListComboBoxW', \ + DlgDirListW, <.hDlg, .lpPathSpec, .nIDListBox, .nIDStaticPath, .wFileType>, 'DlgDirListW', \ + DlgDirSelectComboBoxExA, <.hWndDlg, .lpszPath, .cbPath, .idComboBox>, 'DlgDirSelectComboBoxExA', \ + DlgDirSelectComboBoxExW, <.hWndDlg, .lpszPath, .cbPath, .idComboBox>, 'DlgDirSelectComboBoxExW', \ + DlgDirSelectExA, <.hWndDlg, .lpszPath, .cbPath, .idListBox>, 'DlgDirSelectExA', \ + DlgDirSelectExW, <.hWndDlg, .lpszPath, .cbPath, .idListBox>, 'DlgDirSelectExW', \ + DragDetect, <.hWnd, .pt>, 'DragDetect', \ + DragObject, <.hWnd1, .hWnd2, .un, .dw, .hCursor>, 'DragObject', \ + DrawAnimatedRects, <.hwnd, .idAni, .lprcFrom, .lprcTo>, 'DrawAnimatedRects', \ + DrawCaption, <.hWnd, .hDC, .pcRect, .uDCFlags>, 'DrawCaption', \ + DrawCaptionTempA, <NONE>, 'DrawCaptionTempA', \ + DrawCaptionTempW, <NONE>, 'DrawCaptionTempW', \ + DrawEdge, <.hdc, .qrc, .edge, .grfFlags>, 'DrawEdge', \ + DrawFocusRect, <.hdc, .lpRect>, 'DrawFocusRect', \ + DrawFrame, <NONE>, 'DrawFrame', \ + DrawFrameControl, <.hDC, .lpRect, .uFrameType, .uFrameState>, 'DrawFrameControl', \ + DrawIcon, <.hdc, .x, .y, .hIcon>, 'DrawIcon', \ + DrawIconEx, <.hdc, .xLeft, .yTop, .hIcon, .cxWidth, .cyWidth, .istepIfAniCur, .hbrFlickerFreeDraw, .diFlags>, 'DrawIconEx', \ + DrawMenuBar, <.hwnd>, 'DrawMenuBar', \ + DrawMenuBarTemp, <NONE>, 'DrawMenuBarTemp', \ + DrawStateA, <.hDC, .hBrush, .lpDrawStateProc, .lParam, .wParam, .n1, .n2, .n3, .n4, .un>, 'DrawStateA', \ + DrawStateW, <.hDC, .hBrush, .lpDrawStateProc, .lParam, .wParam, .n1, .n2, .n3, .n4, .un>, 'DrawStateW', \ + DrawTextA, <.hdc, .lpStr, .nCount, .lpRect, .wFormat>, 'DrawTextA', \ + DrawTextExA, <.hDC, .lpsz, .n, .lpRect, .un, .lpDrawTextParams>, 'DrawTextExA', \ + DrawTextExW, <.hDC, .lpsz, .n, .lpRect, .un, .lpDrawTextParams>, 'DrawTextExW', \ + DrawTextW, <.hdc, .lpStr, .nCount, .lpRect, .wFormat>, 'DrawTextW', \ + EditWndProc, <NONE>, 'EditWndProc', \ + EmptyClipboard, <VOID>, 'EmptyClipboard', \ + EnableMenuItem, <.hMenu, .wIDEnableItem, .wEnable>, 'EnableMenuItem', \ + EnableScrollBar, <.hwnd, .wSBflags, .wArrows>, 'EnableScrollBar', \ + EnableWindow, <.hwnd, .fBoolean>, 'EnableWindow', \ + EndDeferWindowPos, <.hWinPosInfo>, 'EndDeferWindowPos', \ + EndDialog, <.hDlg, .nResult>, 'EndDialog', \ + _EndMenu, <VOID>, 'EndMenu', \ + EndPaint, <.hwnd, .lpPaint>, 'EndPaint', \ + EndTask, <NONE>, 'EndTask', \ + EnterReaderModeHelper, <NONE>, 'EnterReaderModeHelper', \ + EnumChildWindows, <.hWndParent, .lpEnumFunc, .lParam>, 'EnumChildWindows', \ + EnumClipboardFormats, <.wFormat>, 'EnumClipboardFormats', \ + EnumDesktopWindows, <.hDesktop, .lpfn, .lParam>, 'EnumDesktopWindows', \ + EnumDesktopsA, <.hwinsta, .lpEnumFunc, .lParam>, 'EnumDesktopsA', \ + EnumDesktopsW, <.hwinsta, .lpEnumFunc, .lParam>, 'EnumDesktopsW', \ + EnumDisplayDevicesA, <.lpDevice, .iDevNum, .lpDisplayDevice, .dwFlags>, 'EnumDisplayDevicesA', \ + EnumDisplayDevicesW, <.lpDevice, .iDevNum, .lpDisplayDevice, .dwFlags>, 'EnumDisplayDevicesW', \ + EnumDisplayMonitors, <.hdc, .lprcClip, .lpfnEnum, .dwData>, 'EnumDisplayMonitors', \ + EnumDisplaySettingsA, <.lpszDeviceName, .iModeNum, .lpDevMode>, 'EnumDisplaySettingsA', \ + EnumDisplaySettingsExA, <.lpszDeviceName, .iModeNum, .lpDevMode, .dwFlags>, 'EnumDisplaySettingsExA', \ + EnumDisplaySettingsExW, <.lpszDeviceName, .iModeNum, .lpDevMode, .dwFlags>, 'EnumDisplaySettingsExW', \ + EnumDisplaySettingsW, <.lpszDeviceName, .iModeNum, .lpDevMode>, 'EnumDisplaySettingsW', \ + EnumPropsA, <.hWnd, .lpEnumFunc>, 'EnumPropsA', \ + EnumPropsExA, <.hWnd, .lpEnumFunc, .lParam>, 'EnumPropsExA', \ + EnumPropsExW, <.hWnd, .lpEnumFunc, .lParam>, 'EnumPropsExW', \ + EnumPropsW, <.hWnd, .lpEnumFunc>, 'EnumPropsW', \ + EnumThreadWindows, <.dwThreadId, .lpfn, .lParam>, 'EnumThreadWindows', \ + EnumWindowStationsA, <.lpEnumFunc, .lParam>, 'EnumWindowStationsA', \ + EnumWindowStationsW, <.lpEnumFunc, .lParam>, 'EnumWindowStationsW', \ + EnumWindows, <.lpEnumFunc, .lParam>, 'EnumWindows', \ + EqualRect, <.lpRect1, .lpRect2>, 'EqualRect', \ + ExcludeUpdateRgn, <.hdc, .hwnd>, 'ExcludeUpdateRgn', \ + ExitWindowsEx, <.uFlags, .dwReserved>, 'ExitWindowsEx', \ + FillRect, <.hdc, .lpRect, .hBrush>, 'FillRect', \ + FindWindowA, <.lpClassName, .lpWindowName>, 'FindWindowA', \ + FindWindowExA, <.hWnd1, .hWnd2, .lpsz1, .lpsz2>, 'FindWindowExA', \ + FindWindowExW, <.hWnd1, .hWnd2, .lpsz1, .lpsz2>, 'FindWindowExW', \ + FindWindowW, <.lpClassName, .lpWindowName>, 'FindWindowW', \ + FlashWindow, <.hwnd, .bInvert>, 'FlashWindow', \ + FlashWindowEx, <.pfwi>, 'FlashWindowEx', \ + FrameRect, <.hdc, .lpRect, .hBrush>, 'FrameRect', \ + FreeDDElParam, <.msg, .lParam>, 'FreeDDElParam', \ + GetActiveWindow, <VOID>, 'GetActiveWindow', \ + GetAltTabInfo, <.hwnd, .iItem, .pati, .pszItemText, .cchItemText>, 'GetAltTabInfo', \ + GetAltTabInfoA, <.hwnd, .iItem, .pati, .pszItemText, .cchItemText>, 'GetAltTabInfoA', \ + GetAltTabInfoW, <.hwnd, .iItem, .pati, .pszItemText, .cchItemText>, 'GetAltTabInfoW', \ + GetAncestor, <.hwnd, .gaFlags>, 'GetAncestor', \ + GetAppCompatFlags, <NONE>, 'GetAppCompatFlags', \ + GetAppCompatFlags2, <NONE>, 'GetAppCompatFlags2', \ + GetAsyncKeyState, <.vKey>, 'GetAsyncKeyState', \ + GetCapture, <VOID>, 'GetCapture', \ + GetCaretBlinkTime, <VOID>, 'GetCaretBlinkTime', \ + GetCaretPos, <.lpPoint>, 'GetCaretPos', \ + GetClassInfoA, <.hInstance, .lpClassName, .lpWndClass>, 'GetClassInfoA', \ + GetClassInfoExA, <.hinstance, .lpcstr, .lpwndclassexa>, 'GetClassInfoExA', \ + GetClassInfoExW, <.hinstance, .lpcstr, .lpwndclassexa>, 'GetClassInfoExW', \ + GetClassInfoW, <.hInstance, .lpClassName, .lpWndClass>, 'GetClassInfoW', \ + GetClassLongA, <.hwnd, .nIndex>, 'GetClassLongA', \ + GetClassLongW, <.hwnd, .nIndex>, 'GetClassLongW', \ + GetClassNameA, <.hwnd, .lpClassName, .nMaxCount>, 'GetClassNameA', \ + GetClassNameW, <.hwnd, .lpClassName, .nMaxCount>, 'GetClassNameW', \ + GetClassWord, <.hwnd, .nIndex>, 'GetClassWord', \ + GetClientRect, <.hwnd, .lpRect>, 'GetClientRect', \ + GetClipCursor, <.lprc>, 'GetClipCursor', \ + GetClipboardData, <.wFormat>, 'GetClipboardData', \ + GetClipboardFormatNameA, <.wFormat, .lpString, .nMaxCount>, 'GetClipboardFormatNameA', \ + GetClipboardFormatNameW, <.wFormat, .lpString, .nMaxCount>, 'GetClipboardFormatNameW', \ + GetClipboardOwner, <VOID>, 'GetClipboardOwner', \ + GetClipboardSequenceNumber, <VOID>, 'GetClipboardSequenceNumber', \ + GetClipboardViewer, <VOID>, 'GetClipboardViewer', \ + GetComboBoxInfo, <.hwndCombo, .pcbi>, 'GetComboBoxInfo', \ + GetCursor, <VOID>, 'GetCursor', \ + GetCursorFrameInfo, <NONE>, 'GetCursorFrameInfo', \ + GetCursorInfo, <.pci>, 'GetCursorInfo', \ + GetCursorPos, <.lpPoint>, 'GetCursorPos', \ + GetDC, <.hwnd>, 'GetDC', \ + GetDCEx, <.hwnd, .hrgnclip, .fdwOptions>, 'GetDCEx', \ + GetDesktopWindow, <VOID>, 'GetDesktopWindow', \ + GetDialogBaseUnits, <VOID>, 'GetDialogBaseUnits', \ + GetDlgCtrlID, <.hwnd>, 'GetDlgCtrlID', \ + GetDlgItem, <.hDlg, .nIDDlgItem>, 'GetDlgItem', \ + GetDlgItemInt, <.hDlg, .nIDDlgItem, .lpTranslated, .bSigned>, 'GetDlgItemInt', \ + GetDlgItemTextA, <.hDlg, .nIDDlgItem, .lpString, .nMaxCount>, 'GetDlgItemTextA', \ + GetDlgItemTextW, <.hDlg, .nIDDlgItem, .lpString, .nMaxCount>, 'GetDlgItemTextW', \ + GetDoubleClickTime, <VOID>, 'GetDoubleClickTime', \ + GetFocus, <VOID>, 'GetFocus', \ + GetForegroundWindow, <VOID>, 'GetForegroundWindow', \ + GetGUIThreadInfo, <.idThread, .pgui>, 'GetGUIThreadInfo', \ + GetGuiResources, <.hProcess, .uiFlags>, 'GetGuiResources', \ + GetIconInfo, <.hIcon, .piconinfo>, 'GetIconInfo', \ + GetInputDesktop, <NONE>, 'GetInputDesktop', \ + GetInputState, <VOID>, 'GetInputState', \ + GetInternalWindowPos, <NONE>, 'GetInternalWindowPos', \ + GetKBCodePage, <VOID>, 'GetKBCodePage', \ + GetKeyNameTextA, <.lParam, .lpBuffer, .nSize>, 'GetKeyNameTextA', \ + GetKeyNameTextW, <.lParam, .lpBuffer, .nSize>, 'GetKeyNameTextW', \ + GetKeyState, <.nVirtKey>, 'GetKeyState', \ + GetKeyboardLayout, <.dwLayout>, 'GetKeyboardLayout', \ + GetKeyboardLayoutList, <.nBuff, .lpList>, 'GetKeyboardLayoutList', \ + GetKeyboardLayoutNameA, <.pwszKLID>, 'GetKeyboardLayoutNameA', \ + GetKeyboardLayoutNameW, <.pwszKLID>, 'GetKeyboardLayoutNameW', \ + GetKeyboardState, <.pbKeyState>, 'GetKeyboardState', \ + GetKeyboardType, <.nTypeFlag>, 'GetKeyboardType', \ + GetLastActivePopup, <.hwndOwnder>, 'GetLastActivePopup', \ + GetLastInputInfo, <.plii>, 'GetLastInputInfo', \ + GetLayeredWindowAttributes, <NONE>, 'GetLayeredWindowAttributes', \ + GetListBoxInfo, <.hwnd>, 'GetListBoxInfo', \ + GetMenu, <.hwnd>, 'GetMenu', \ + GetMenuBarInfo, <.hwnd, .idObject, .idItem, .pmbi>, 'GetMenuBarInfo', \ + GetMenuCheckMarkDimensions, <VOID>, 'GetMenuCheckMarkDimensions', \ + GetMenuContextHelpId, <.hMenu>, 'GetMenuContextHelpId', \ + GetMenuDefaultItem, <.hMenu, .fByPos, .gmdiFlags>, 'GetMenuDefaultItem', \ + GetMenuInfo, <.hmenu, .LPMENUINFO>, 'GetMenuInfo', \ + GetMenuItemCount, <.hMenu>, 'GetMenuItemCount', \ + GetMenuItemID, <.hMenu, .nPos>, 'GetMenuItemID', \ + GetMenuItemInfoA, <.hMenu, .un, .fBoolean, .lpMenuItemInfo>, 'GetMenuItemInfoA', \ + GetMenuItemInfoW, <.hMenu, .un, .fBoolean, .lpMenuItemInfo>, 'GetMenuItemInfoW', \ + GetMenuItemRect, <.hWnd, .hMenu, .uItem, .lprcItem>, 'GetMenuItemRect', \ + GetMenuState, <.hMenu, .wID, .wFlags>, 'GetMenuState', \ + GetMenuStringA, <.hMenu, .wIDItem, .lpString, .nMaxCount, .wFlags>, 'GetMenuStringA', \ + GetMenuStringW, <.hMenu, .wIDItem, .lpString, .nMaxCount, .wFlags>, 'GetMenuStringW', \ + GetMessageA, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax>, 'GetMessageA', \ + GetMessageExtraInfo, <VOID>, 'GetMessageExtraInfo', \ + GetMessagePos, <VOID>, 'GetMessagePos', \ + GetMessageTime, <VOID>, 'GetMessageTime', \ + GetMessageW, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax>, 'GetMessageW', \ + GetMonitorInfoA, <.hMonitor, .lpmi>, 'GetMonitorInfoA', \ + GetMonitorInfoW, <.hMonitor, .lpmi>, 'GetMonitorInfoW', \ + GetMouseMovePointsEx, <.cbSize, .lppt, .lpptBuf, .nBufPoints, .resolution>, 'GetMouseMovePointsEx', \ + GetNextDlgGroupItem, <.hDlg, .hCtl, .bPrevious>, 'GetNextDlgGroupItem', \ + GetNextDlgTabItem, <.hDlg, .hCtl, .bPrevious>, 'GetNextDlgTabItem', \ + GetOpenClipboardWindow, <VOID>, 'GetOpenClipboardWindow', \ + GetParent, <.hwnd>, 'GetParent', \ + GetPriorityClipboardFormat, <.lpPriorityList, .nCount>, 'GetPriorityClipboardFormat', \ + GetProcessDefaultLayout, <.pdwDefaultLayout>, 'GetProcessDefaultLayout', \ + GetProcessWindowStation, <VOID>, 'GetProcessWindowStation', \ + GetProgmanWindow, <NONE>, 'GetProgmanWindow', \ + GetPropA, <.hwnd, .lpString>, 'GetPropA', \ + GetPropW, <.hwnd, .lpString>, 'GetPropW', \ + GetQueueStatus, <.fuFlags>, 'GetQueueStatus', \ + GetRawInputBuffer, <NONE>, 'GetRawInputBuffer', \ + GetRawInputData, <NONE>, 'GetRawInputData', \ + GetRawInputDeviceInfoA, <NONE>, 'GetRawInputDeviceInfoA', \ + GetRawInputDeviceInfoW, <NONE>, 'GetRawInputDeviceInfoW', \ + GetRawInputDeviceList, <NONE>, 'GetRawInputDeviceList', \ + GetReasonTitleFromReasonCode, <NONE>, 'GetReasonTitleFromReasonCode', \ + GetRegisteredRawInputDevices, <NONE>, 'GetRegisteredRawInputDevices', \ + GetScrollBarInfo, <.hwnd, .idObject, .psbi>, 'GetScrollBarInfo', \ + GetScrollInfo, <.hWnd, .n, .lpScrollInfo>, 'GetScrollInfo', \ + GetScrollPos, <.hwnd, .nBar>, 'GetScrollPos', \ + GetScrollRange, <.hwnd, .nBar, .lpMinPos, .lpMaxPos>, 'GetScrollRange', \ + GetShellWindow, <NONE>, 'GetShellWindow', \ + GetSubMenu, <.hMenu, .nPos>, 'GetSubMenu', \ + GetSysColor, <.nSysColor>, 'GetSysColor', \ + GetSysColorBrush, <.nSysColor>, 'GetSysColorBrush', \ + GetSystemMenu, <.hwnd, .fBoolean>, 'GetSystemMenu', \ + GetSystemMetrics, <.nIndex>, 'GetSystemMetrics', \ + GetTabbedTextExtentA, <.hdc, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions>, 'GetTabbedTextExtentA', \ + GetTabbedTextExtentW, <.hdc, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions>, 'GetTabbedTextExtentW', \ + GetTaskmanWindow, <NONE>, 'GetTaskmanWindow', \ + GetThreadDesktop, <.dwThread>, 'GetThreadDesktop', \ + GetTitleBarInfo, <.hwnd, .pti>, 'GetTitleBarInfo', \ + GetTopWindow, <.hwnd>, 'GetTopWindow', \ + GetUpdateRect, <.hwnd, .lpRect, .bErase>, 'GetUpdateRect', \ + GetUpdateRgn, <.hwnd, .hRgn, .fErase>, 'GetUpdateRgn', \ + GetUserObjectInformationA, <.hObj, .nIndex, .pvInfo, .nLength, .lpnLengthNeeded>, 'GetUserObjectInformationA', \ + GetUserObjectInformationW, <.hObj, .nIndex, .pvInfo, .nLength, .lpnLengthNeeded>, 'GetUserObjectInformationW', \ + GetUserObjectSecurity, <.hObj, .pSIRequested, .pSd, .nLength, .lpnLengthNeeded>, 'GetUserObjectSecurity', \ + GetWinStationInfo, <NONE>, 'GetWinStationInfo', \ + GetWindow, <.hwnd, .wCmd>, 'GetWindow', \ + GetWindowContextHelpId, <.hWnd>, 'GetWindowContextHelpId', \ + GetWindowDC, <.hwnd>, 'GetWindowDC', \ + GetWindowInfo, <.hwnd, .pwi>, 'GetWindowInfo', \ + GetWindowLongA, <.hwnd, .nIndex>, 'GetWindowLongA', \ + GetWindowLongW, <.hwnd, .nIndex>, 'GetWindowLongW', \ + GetWindowModuleFileName, <.hwnd, .pszFileName, .cchFileNameMax>, 'GetWindowModuleFileName', \ + GetWindowModuleFileNameA, <.hwnd, .pszFileName, .cchFileNameMax>, 'GetWindowModuleFileNameA', \ + GetWindowModuleFileNameW, <.hwnd, .pszFileName, .cchFileNameMax>, 'GetWindowModuleFileNameW', \ + GetWindowPlacement, <.hwnd, .lpwndpl>, 'GetWindowPlacement', \ + GetWindowRect, <.hwnd, .lpRect>, 'GetWindowRect', \ + GetWindowRgn, <.hWnd, .hRgn>, 'GetWindowRgn', \ + GetWindowRgnBox, <NONE>, 'GetWindowRgnBox', \ + GetWindowTextA, <.hwnd, .lpString, .cch>, 'GetWindowTextA', \ + GetWindowTextLengthA, <.hwnd>, 'GetWindowTextLengthA', \ + GetWindowTextLengthW, <.hwnd>, 'GetWindowTextLengthW', \ + GetWindowTextW, <.hwnd, .lpString, .cch>, 'GetWindowTextW', \ + GetWindowThreadProcessId, <.hwnd, .lpdwProcessId>, 'GetWindowThreadProcessId', \ + GetWindowWord, <.hwnd, .nIndex>, 'GetWindowWord', \ + GrayStringA, <.hDC, .hBrush, .lpOutputFunc, .lpData, .nCount, .X, .Y, .nWidth, .nHeight>, 'GrayStringA', \ + GrayStringW, <.hDC, .hBrush, .lpOutputFunc, .lpData, .nCount, .X, .Y, .nWidth, .nHeight>, 'GrayStringW', \ + HideCaret, <.hwnd>, 'HideCaret', \ + HiliteMenuItem, <.hwnd, .hMenu, .wIDHiliteItem, .wHilite>, 'HiliteMenuItem', \ + IMPGetIMEA, <.hwnd, .LPIMEPROA>, 'IMPGetIMEA', \ + IMPGetIMEW, <.hwnd, .LPIMEPROA>, 'IMPGetIMEW', \ + IMPQueryIMEA, <.LPIMEPROA>, 'IMPQueryIMEA', \ + IMPQueryIMEW, <.LPIMEPROA>, 'IMPQueryIMEW', \ + IMPSetIMEA, <.hwnd, .LPIMEPROA>, 'IMPSetIMEA', \ + IMPSetIMEW, <.hwnd, .LPIMEPROA>, 'IMPSetIMEW', \ + ImpersonateDdeClientWindow, <.hWndClient, .hWndServer>, 'ImpersonateDdeClientWindow', \ + InSendMessage, <VOID>, 'InSendMessage', \ + InSendMessageEx, <.lpReserved>, 'InSendMessageEx', \ + InflateRect, <.lpRect, .x, .y>, 'InflateRect', \ + InitializeLpkHooks, <NONE>, 'InitializeLpkHooks', \ + InitializeWin32EntryTable, <NONE>, 'InitializeWin32EntryTable', \ + InsertMenuA, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpNewItem>, 'InsertMenuA', \ + InsertMenuItemA, <.hMenu, .uItem, .bool, .ByRef>, 'InsertMenuItemA', \ + InsertMenuItemW, <.hMenu, .uItem, .bool, .ByRef>, 'InsertMenuItemW', \ + InsertMenuW, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpNewItem>, 'InsertMenuW', \ + InternalGetWindowText, <NONE>, 'InternalGetWindowText', \ + IntersectRect, <.lpDestRect, .lpSrc1Rect, .lpSrc2Rect>, 'IntersectRect', \ + InvalidateRect, <.hwnd, .lpRect, .fBoolean>, 'InvalidateRect', \ + InvalidateRgn, <.hwnd, .hRgn, .bErase>, 'InvalidateRgn', \ + InvertRect, <.hdc, .lpRect>, 'InvertRect', \ + IsCharAlphaA, <.cChar>, 'IsCharAlphaA', \ + IsCharAlphaNumericA, <.cChar>, 'IsCharAlphaNumericA', \ + IsCharAlphaNumericW, <.cChar>, 'IsCharAlphaNumericW', \ + IsCharAlphaW, <.cChar>, 'IsCharAlphaW', \ + IsCharLowerA, <.cChar>, 'IsCharLowerA', \ + IsCharLowerW, <.cChar>, 'IsCharLowerW', \ + IsCharUpperA, <.cChar>, 'IsCharUpperA', \ + IsCharUpperW, <.cChar>, 'IsCharUpperW', \ + IsChild, <.hWndParent, .hwnd>, 'IsChild', \ + IsClipboardFormatAvailable, <.wFormat>, 'IsClipboardFormatAvailable', \ + IsDialogMessage, <.hDlg, .lpMsg>, 'IsDialogMessage', \ + IsDialogMessageA, <.hDlg, .lpMsg>, 'IsDialogMessageA', \ + IsDialogMessageW, <.hDlg, .lpMsg>, 'IsDialogMessageW', \ + IsDlgButtonChecked, <.hDlg, .nIDButton>, 'IsDlgButtonChecked', \ + IsGUIThread, <NONE>, 'IsGUIThread', \ + IsHungAppWindow, <NONE>, 'IsHungAppWindow', \ + IsIconic, <.hwnd>, 'IsIconic', \ + IsMenu, <.hMenu>, 'IsMenu', \ + IsRectEmpty, <.lpRect>, 'IsRectEmpty', \ + IsServerSideWindow, <NONE>, 'IsServerSideWindow', \ + IsWinEventHookInstalled, <NONE>, 'IsWinEventHookInstalled', \ + IsWindow, <.hwnd>, 'IsWindow', \ + IsWindowEnabled, <.hwnd>, 'IsWindowEnabled', \ + IsWindowInDestroy, <NONE>, 'IsWindowInDestroy', \ + IsWindowUnicode, <.hwnd>, 'IsWindowUnicode', \ + IsWindowVisible, <.hwnd>, 'IsWindowVisible', \ + IsZoomed, <.hwnd>, 'IsZoomed', \ + KillSystemTimer, <NONE>, 'KillSystemTimer', \ + KillTimer, <.hwnd, .nIDEvent>, 'KillTimer', \ + LoadAcceleratorsA, <.hInstance, .lpTableName>, 'LoadAcceleratorsA', \ + LoadAcceleratorsW, <.hInstance, .lpTableName>, 'LoadAcceleratorsW', \ + LoadBitmapA, <.hInstance, .lpBitmapName>, 'LoadBitmapA', \ + LoadBitmapW, <.hInstance, .lpBitmapName>, 'LoadBitmapW', \ + LoadCursorA, <.hInstance, .lpCursorName>, 'LoadCursorA', \ + LoadCursorFromFileA, <.lpFileName>, 'LoadCursorFromFileA', \ + LoadCursorFromFileW, <.lpFileName>, 'LoadCursorFromFileW', \ + LoadCursorW, <.hInstance, .lpCursorName>, 'LoadCursorW', \ + LoadIconA, <.hInstance, .lpIconName>, 'LoadIconA', \ + LoadIconW, <.hInstance, .lpIconName>, 'LoadIconW', \ + LoadImageA, <.hInst, .lpsz, .uType, .n1, .n2, .uFlags>, 'LoadImageA', \ + LoadImageW, <.hInst, .lpsz, .uType, .n1, .n2, .uFlags>, 'LoadImageW', \ + LoadKeyboardLayoutA, <.pwszKLID, .flags>, 'LoadKeyboardLayoutA', \ + LoadKeyboardLayoutEx, <NONE>, 'LoadKeyboardLayoutEx', \ + LoadKeyboardLayoutW, <.pwszKLID, .flags>, 'LoadKeyboardLayoutW', \ + LoadLocalFonts, <NONE>, 'LoadLocalFonts', \ + LoadMenuA, <.hInstance, .lpString>, 'LoadMenuA', \ + LoadMenuIndirectA, <.lpMenuTemplate>, 'LoadMenuIndirectA', \ + LoadMenuIndirectW, <.lpMenuTemplate>, 'LoadMenuIndirectW', \ + LoadMenuW, <.hInstance, .lpString>, 'LoadMenuW', \ + LoadRemoteFonts, <NONE>, 'LoadRemoteFonts', \ + LoadStringA, <.hInstance, .wID, .lpBuffer, .nBufferMax>, 'LoadStringA', \ + LoadStringW, <.hInstance, .wID, .lpBuffer, .nBufferMax>, 'LoadStringW', \ + LockSetForegroundWindow, <.uLockCode>, 'LockSetForegroundWindow', \ + LockWindowStation, <NONE>, 'LockWindowStation', \ + LockWindowUpdate, <.hwndLock>, 'LockWindowUpdate', \ + LockWorkStation, <VOID>, 'LockWorkStation', \ + LookupIconIdFromDirectory, <.presbits, .fIcon>, 'LookupIconIdFromDirectory', \ + LookupIconIdFromDirectoryEx, <.presbits, .fIcon, .cxDesired, .cyDesired, .Flags>, 'LookupIconIdFromDirectoryEx', \ + MBToWCSEx, <NONE>, 'MBToWCSEx', \ + MB_GetString, <NONE>, 'MB_GetString', \ + MapDialogRect, <.hDlg, .lpRect>, 'MapDialogRect', \ + MapVirtualKeyA, <.wCode, .wMapType>, 'MapVirtualKeyA', \ + MapVirtualKeyExA, <.uCode, .uMapType, .dwhkl>, 'MapVirtualKeyExA', \ + MapVirtualKeyExW, <.uCode, .uMapType, .dwhkl>, 'MapVirtualKeyExW', \ + MapVirtualKeyW, <.wCode, .wMapType>, 'MapVirtualKeyW', \ + MapWindowPoints, <.hwndFrom, .hwndTo, .lppt, .cPoints>, 'MapWindowPoints', \ + MenuItemFromPoint, <.hWnd, .hMenu, .ptScreen>, 'MenuItemFromPoint', \ + MenuWindowProcA, <NONE>, 'MenuWindowProcA', \ + MenuWindowProcW, <NONE>, 'MenuWindowProcW', \ + MessageBeep, <.wType>, 'MessageBeep', \ + MessageBoxA, <.hwnd, .lpText, .lpCaption, .wType>, 'MessageBoxA', \ + MessageBoxExA, <.hwnd, .lpText, .lpCaption, .wType, .wLanguageId>, 'MessageBoxExA', \ + MessageBoxExW, <.hwnd, .lpText, .lpCaption, .wType, .wLanguageId>, 'MessageBoxExW', \ + MessageBoxIndirectA, <.lpMsgBoxParams>, 'MessageBoxIndirectA', \ + MessageBoxIndirectW, <.lpMsgBoxParams>, 'MessageBoxIndirectW', \ + MessageBoxTimeoutA, <NONE>, 'MessageBoxTimeoutA', \ + MessageBoxTimeoutW, <NONE>, 'MessageBoxTimeoutW', \ + MessageBoxW, <.hwnd, .lpText, .lpCaption, .wType>, 'MessageBoxW', \ + ModifyMenuA, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpString>, 'ModifyMenuA', \ + ModifyMenuW, <.hMenu, .nPosition, .wFlags, .wIDNewItem, .lpString>, 'ModifyMenuW', \ + MonitorFromPoint, <.pt, .dwFlags>, 'MonitorFromPoint', \ + MonitorFromRect, <.lprc, .dwFlags>, 'MonitorFromRect', \ + MonitorFromWindow, <.hwnd, .dwFlags>, 'MonitorFromWindow', \ + MoveWindow, <.hwnd, .x, .y, .nWidth, .nHeight, .fBoolean>, 'MoveWindow', \ + MsgWaitForMultipleObjects, <.nCount, .pHandles, .fWaitAll, .dwMilliseconds, .dwWakeMask>, 'MsgWaitForMultipleObjects', \ + MsgWaitForMultipleObjectsEx, <.nCount, .pHandles, .dwMilliseconds, .dwWakeMask, .dwFlags>, 'MsgWaitForMultipleObjectsEx', \ + NotifyWinEvent, <.lEvent, .hwnd, .idObject, .idChild>, 'NotifyWinEvent', \ + OemKeyScan, <.wOemChar>, 'OemKeyScan', \ + OemToCharA, <.lpszSrc, .lpszDst>, 'OemToCharA', \ + OemToCharBuffA, <.lpszSrc, .lpszDst, .cchDstLength>, 'OemToCharBuffA', \ + OemToCharBuffW, <.lpszSrc, .lpszDst, .cchDstLength>, 'OemToCharBuffW', \ + OemToCharW, <.lpszSrc, .lpszDst>, 'OemToCharW', \ + OffsetRect, <.lpRect, .x, .y>, 'OffsetRect', \ + OpenClipboard, <.hwnd>, 'OpenClipboard', \ + OpenDesktopA, <.lpszDesktop, .dwFlags, .fInherit, .dwDesiredAccess>, 'OpenDesktopA', \ + OpenDesktopW, <.lpszDesktop, .dwFlags, .fInherit, .dwDesiredAccess>, 'OpenDesktopW', \ + OpenIcon, <.hwnd>, 'OpenIcon', \ + OpenInputDesktop, <.dwFlags, .fInherit, .dwDesiredAccess>, 'OpenInputDesktop', \ + OpenWindowStationA, <.lpszWinSta, .fInherit, .dwDesiredAccess>, 'OpenWindowStationA', \ + OpenWindowStationW, <.lpszWinSta, .fInherit, .dwDesiredAccess>, 'OpenWindowStationW', \ + PackDDElParam, <.msg, .uiLo, .uiHi>, 'PackDDElParam', \ + PaintDesktop, <.hdc>, 'PaintDesktop', \ + PaintMenuBar, <NONE>, 'PaintMenuBar', \ + PeekMessageA, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax, .wRemoveMsg>, 'PeekMessageA', \ + PeekMessageW, <.lpMsg, .hwnd, .wMsgFilterMin, .wMsgFilterMax, .wRemoveMsg>, 'PeekMessageW', \ + PostMessageA, <.hwnd, .wMsg, .wParam, .lParam>, 'PostMessageA', \ + PostMessageW, <.hwnd, .wMsg, .wParam, .lParam>, 'PostMessageW', \ + PostQuitMessage, <.nExitCode>, 'PostQuitMessage', \ + PostThreadMessageA, <.idThread, .msg, .wParam, .lParam>, 'PostThreadMessageA', \ + PostThreadMessageW, <.idThread, .msg, .wParam, .lParam>, 'PostThreadMessageW', \ + PrintWindow, <.hWnd, .hdcBlt, .nFlags>, 'PrintWindow', \ + PrivateExtractIconExA, <NONE>, 'PrivateExtractIconExA', \ + PrivateExtractIconExW, <NONE>, 'PrivateExtractIconExW', \ + PrivateExtractIconsA, <NONE>, 'PrivateExtractIconsA', \ + PrivateExtractIconsW, <NONE>, 'PrivateExtractIconsW', \ + PrivateSetDbgTag, <NONE>, 'PrivateSetDbgTag', \ + PrivateSetRipFlags, <NONE>, 'PrivateSetRipFlags', \ + PtInRect, <.lpRect, .x, .y>, 'PtInRect', \ + QuerySendMessage, <NONE>, 'QuerySendMessage', \ + QueryUserCounters, <NONE>, 'QueryUserCounters', \ + RealChildWindowFromPoint, <.hwndParent, .ptParentClientCoords>, 'RealChildWindowFromPoint', \ + RealGetWindowClass, <.hwnd, .pszType, .cchType>, 'RealGetWindowClass', \ + RealGetWindowClassA, <.hwnd, .pszType, .cchType>, 'RealGetWindowClassA', \ + RealGetWindowClassW, <.hwnd, .pszType, .cchType>, 'RealGetWindowClassW', \ + ReasonCodeNeedsBugID, <NONE>, 'ReasonCodeNeedsBugID', \ + ReasonCodeNeedsComment, <NONE>, 'ReasonCodeNeedsComment', \ + RecordShutdownReason, <NONE>, 'RecordShutdownReason', \ + RedrawWindow, <.hwnd, .lprcUpdate, .hrgnUpdate, .fuRedraw>, 'RedrawWindow', \ + RegisterClassA, <.Class>, 'RegisterClassA', \ + RegisterClassExA, <.pcWndClassEx>, 'RegisterClassExA', \ + RegisterClassExW, <.pcWndClassEx>, 'RegisterClassExW', \ + RegisterClassW, <.Class>, 'RegisterClassW', \ + RegisterClipboardFormatA, <.lpString>, 'RegisterClipboardFormatA', \ + RegisterClipboardFormatW, <.lpString>, 'RegisterClipboardFormatW', \ + RegisterDeviceNotificationA, <.hRecipient, .NotificationFilter, .Flags>, 'RegisterDeviceNotificationA', \ + RegisterDeviceNotificationW, <.hRecipient, .NotificationFilter, .Flags>, 'RegisterDeviceNotificationW', \ + RegisterHotKey, <.hwnd, .id, .fsModifiers, .vk>, 'RegisterHotKey', \ + RegisterLogonProcess, <NONE>, 'RegisterLogonProcess', \ + RegisterMessagePumpHook, <NONE>, 'RegisterMessagePumpHook', \ + RegisterRawInputDevices, <NONE>, 'RegisterRawInputDevices', \ + RegisterServicesProcess, <NONE>, 'RegisterServicesProcess', \ + RegisterShellHookWindow, <NONE>, 'RegisterShellHookWindow', \ + RegisterSystemThread, <NONE>, 'RegisterSystemThread', \ + RegisterTasklist, <NONE>, 'RegisterTasklist', \ + RegisterUserApiHook, <NONE>, 'RegisterUserApiHook', \ + RegisterWindowMessageA, <.lpString>, 'RegisterWindowMessageA', \ + RegisterWindowMessageW, <.lpString>, 'RegisterWindowMessageW', \ + ReleaseCapture, <VOID>, 'ReleaseCapture', \ + ReleaseDC, <.hwnd, .hdc>, 'ReleaseDC', \ + RemoveMenu, <.hMenu, .nPosition, .wFlags>, 'RemoveMenu', \ + RemovePropA, <.hwnd, .lpString>, 'RemovePropA', \ + RemovePropW, <.hwnd, .lpString>, 'RemovePropW', \ + ReplyMessage, <.lReply>, 'ReplyMessage', \ + ResolveDesktopForWOW, <NONE>, 'ResolveDesktopForWOW', \ + ReuseDDElParam, <.lParam, .msgIn, .msgOut, .uiLo, .uiHi>, 'ReuseDDElParam', \ + ScreenToClient, <.hwnd, .lpPoint>, 'ScreenToClient', \ + ScrollChildren, <NONE>, 'ScrollChildren', \ + ScrollDC, <.hdc, .dx, .dy, .lprcScroll, .lprcClip, .hrgnUpdate, .lprcUpdate>, 'ScrollDC', \ + ScrollWindow, <.hWnd, .XAmount, .YAmount, .lpRect, .lpClipRect>, 'ScrollWindow', \ + ScrollWindowEx, <.hwnd, .dx, .dy, .lprcScroll, .lprcClip, .hrgnUpdate, .lprcUpdate, .fuScroll>, 'ScrollWindowEx', \ + SendDlgItemMessageA, <.hDlg, .nIDDlgItem, .wMsg, .wParam, .lParam>, 'SendDlgItemMessageA', \ + SendDlgItemMessageW, <.hDlg, .nIDDlgItem, .wMsg, .wParam, .lParam>, 'SendDlgItemMessageW', \ + SendIMEMessageExA, <.hwnd, .lparam>, 'SendIMEMessageExA', \ + SendIMEMessageExW, <.hwnd, .lparam>, 'SendIMEMessageExW', \ + SendInput, <.cInputs, .pInputs, .cbSize>, 'SendInput', \ + SendMessageA, <.hwnd, .wMsg, .wParam, .lParam>, 'SendMessageA', \ + SendMessageCallbackA, <.hwnd, .wMsg, .wParam, .lParam, .lpResultCallBack, .dwData>, 'SendMessageCallbackA', \ + SendMessageCallbackW, <.hwnd, .wMsg, .wParam, .lParam, .lpResultCallBack, .dwData>, 'SendMessageCallbackW', \ + SendMessageTimeoutA, <.hwnd, .msg, .wParam, .lParam, .fuFlags, .uTimeout, .lpdwResult>, 'SendMessageTimeoutA', \ + SendMessageTimeoutW, <.hwnd, .msg, .wParam, .lParam, .fuFlags, .uTimeout, .lpdwResult>, 'SendMessageTimeoutW', \ + SendMessageW, <.hwnd, .wMsg, .wParam, .lParam>, 'SendMessageW', \ + SendNotifyMessageA, <.hwnd, .msg, .wParam, .lParam>, 'SendNotifyMessageA', \ + SendNotifyMessageW, <.hwnd, .msg, .wParam, .lParam>, 'SendNotifyMessageW', \ + SetActiveWindow, <.hwnd>, 'SetActiveWindow', \ + SetCapture, <.hwnd>, 'SetCapture', \ + SetCaretBlinkTime, <.wMSeconds>, 'SetCaretBlinkTime', \ + SetCaretPos, <.x, .y>, 'SetCaretPos', \ + SetClassLongA, <.hwnd, .nIndex, .dwNewLong>, 'SetClassLongA', \ + SetClassLongW, <.hwnd, .nIndex, .dwNewLong>, 'SetClassLongW', \ + SetClassWord, <.hwnd, .nIndex, .wNewWord>, 'SetClassWord', \ + SetClipboardData, <.uFormat, .hMem>, 'SetClipboardData', \ + SetClipboardViewer, <.hwnd>, 'SetClipboardViewer', \ + SetConsoleReserveKeys, <NONE>, 'SetConsoleReserveKeys', \ + SetCursor, <.hCursor>, 'SetCursor', \ + SetCursorContents, <NONE>, 'SetCursorContents', \ + SetCursorPos, <.x, .y>, 'SetCursorPos', \ + SetDebugErrorLevel, <.dwLevel>, 'SetDebugErrorLevel', \ + SetDeskWallpaper, <NONE>, 'SetDeskWallpaper', \ + SetDlgItemInt, <.hDlg, .nIDDlgItem, .wValue, .bSigned>, 'SetDlgItemInt', \ + SetDlgItemTextA, <.hDlg, .nIDDlgItem, .lpString>, 'SetDlgItemTextA', \ + SetDlgItemTextW, <.hDlg, .nIDDlgItem, .lpString>, 'SetDlgItemTextW', \ + SetDoubleClickTime, <.wCount>, 'SetDoubleClickTime', \ + SetFocus, <.hwnd>, 'SetFocus', \ + SetForegroundWindow, <.hwnd>, 'SetForegroundWindow', \ + SetInternalWindowPos, <NONE>, 'SetInternalWindowPos', \ + SetKeyboardState, <.lppbKeyState>, 'SetKeyboardState', \ + SetLastErrorEx, <.dwErrCode, .dwType>, 'SetLastErrorEx', \ + SetLayeredWindowAttributes, <.hwnd, .crKey, .bAlpha, .dwFlags>, 'SetLayeredWindowAttributes', \ + SetLogonNotifyWindow, <NONE>, 'SetLogonNotifyWindow', \ + SetMenu, <.hwnd, .hMenu>, 'SetMenu', \ + SetMenuContextHelpId, <.hMenu, .dw>, 'SetMenuContextHelpId', \ + SetMenuDefaultItem, <.hMenu, .uItem, .fByPos>, 'SetMenuDefaultItem', \ + SetMenuInfo, <.hmenu, .LPCMENUINFO>, 'SetMenuInfo', \ + SetMenuItemBitmaps, <.hMenu, .nPosition, .wFlags, .hBitmapUnchecked, .hBitmapChecked>, 'SetMenuItemBitmaps', \ + SetMenuItemInfoA, <.hMenu, .un, .fBoolean, .lpcMenuItemInfo>, 'SetMenuItemInfoA', \ + SetMenuItemInfoW, <.hMenu, .un, .fBoolean, .lpcMenuItemInfo>, 'SetMenuItemInfoW', \ + SetMessageExtraInfo, <.lParam>, 'SetMessageExtraInfo', \ + SetMessageQueue, <.cMessagesMax>, 'SetMessageQueue', \ + SetParent, <.hWndChild, .hWndNewParent>, 'SetParent', \ + SetProcessDefaultLayout, <.dwDefaultLayout>, 'SetProcessDefaultLayout', \ + SetProcessWindowStation, <.hWinSta>, 'SetProcessWindowStation', \ + SetProgmanWindow, <NONE>, 'SetProgmanWindow', \ + SetPropA, <.hwnd, .lpString, .hData>, 'SetPropA', \ + SetPropW, <.hwnd, .lpString, .hData>, 'SetPropW', \ + SetRect, <.lpRect, .X1, .Y1, .X2, .Y2>, 'SetRect', \ + SetRectEmpty, <.lpRect>, 'SetRectEmpty', \ + SetScrollInfo, <.hWnd, .n, .lpcScrollInfo, .bool>, 'SetScrollInfo', \ + SetScrollPos, <.hwnd, .nBar, .nPos, .fBoolean>, 'SetScrollPos', \ + SetScrollRange, <.hwnd, .nBar, .nMinPos, .nMaxPos, .bRedraw>, 'SetScrollRange', \ + SetShellWindow, <NONE>, 'SetShellWindow', \ + SetShellWindowEx, <NONE>, 'SetShellWindowEx', \ + SetSysColors, <.nChanges, .lpSysColor, .lpColorValues>, 'SetSysColors', \ + SetSysColorsTemp, <NONE>, 'SetSysColorsTemp', \ + SetSystemCursor, <.hcur, .id>, 'SetSystemCursor', \ + SetSystemMenu, <NONE>, 'SetSystemMenu', \ + SetSystemTimer, <NONE>, 'SetSystemTimer', \ + SetTaskmanWindow, <NONE>, 'SetTaskmanWindow', \ + SetThreadDesktop, <.hDesktop>, 'SetThreadDesktop', \ + SetTimer, <.hWnd, .nIDEvent, .uElapse, .lpTimerFunc>, 'SetTimer', \ + SetUserObjectInformationA, <.hObj, .nIndex, .pvInfo, .nLength>, 'SetUserObjectInformationA', \ + SetUserObjectInformationW, <.hObj, .nIndex, .pvInfo, .nLength>, 'SetUserObjectInformationW', \ + SetUserObjectSecurity, <.hObj, .pSIRequested, .pSd>, 'SetUserObjectSecurity', \ + SetWinEventHook, <.eventMin, .eventMax, .hmodWinEventProc, .pfnWinEventProc, .idProcess, .idThread, .dwFlags>, 'SetWinEventHook', \ + SetWindowContextHelpId, <.hWnd, .dw>, 'SetWindowContextHelpId', \ + SetWindowLongA, <.hwnd, .nIndex, .dwNewLong>, 'SetWindowLongA', \ + SetWindowLongW, <.hwnd, .nIndex, .dwNewLong>, 'SetWindowLongW', \ + SetWindowPlacement, <.hwnd, .lpwndpl>, 'SetWindowPlacement', \ + SetWindowPos, <.hwnd, .hWndInsertAfter, .x, .y, .cx, .cy, .wFlags>, 'SetWindowPos', \ + SetWindowRgn, <.hWnd, .hRgn, .bRedraw>, 'SetWindowRgn', \ + SetWindowStationUser, <NONE>, 'SetWindowStationUser', \ + SetWindowTextA, <.hwnd, .lpString>, 'SetWindowTextA', \ + SetWindowTextW, <.hwnd, .lpString>, 'SetWindowTextW', \ + SetWindowWord, <.hwnd, .nIndex, .wNewWord>, 'SetWindowWord', \ + SetWindowsHookA, <.nFilterType, .pfnFilterProc>, 'SetWindowsHookA', \ + SetWindowsHookExA, <.idHook, .lpfn, .hmod, .dwThreadId>, 'SetWindowsHookExA', \ + SetWindowsHookExW, <.idHook, .lpfn, .hmod, .dwThreadId>, 'SetWindowsHookExW', \ + SetWindowsHookW, <.nFilterType, .pfnFilterProc>, 'SetWindowsHookW', \ + ShowCaret, <.hwnd>, 'ShowCaret', \ + ShowCursor, <.bShow>, 'ShowCursor', \ + ShowOwnedPopups, <.hwnd, .fBoolean>, 'ShowOwnedPopups', \ + ShowScrollBar, <.hwnd, .wBar, .bShow>, 'ShowScrollBar', \ + ShowStartGlass, <NONE>, 'ShowStartGlass', \ + ShowWindow, <.hwnd, .nCmdShow>, 'ShowWindow', \ + ShowWindowAsync, <.hWnd, .nCmdShow>, 'ShowWindowAsync', \ + SoftModalMessageBox, <NONE>, 'SoftModalMessageBox', \ + SubtractRect, <.lprcDst, .lprcSrc1, .lprcSrc2>, 'SubtractRect', \ + SwapMouseButton, <.bSwap>, 'SwapMouseButton', \ + SwitchDesktop, <.hDesktop>, 'SwitchDesktop', \ + SwitchToThisWindow, <NONE>, 'SwitchToThisWindow', \ + SystemParametersInfoA, <.uAction, .uParam, .ByRef, .fuWinIni>, 'SystemParametersInfoA', \ + SystemParametersInfoW, <.uAction, .uParam, .ByRef, .fuWinIni>, 'SystemParametersInfoW', \ + TabbedTextOutA, <.hdc, .x, .y, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions, .nTabOrigin>, 'TabbedTextOutA', \ + TabbedTextOutW, <.hdc, .x, .y, .lpString, .nCount, .nTabPositions, .lpnTabStopPositions, .nTabOrigin>, 'TabbedTextOutW', \ + TileChildWindows, <NONE>, 'TileChildWindows', \ + TileWindows, <.hwndParent, .wHow, .lpRect, .cKids, .lpKids>, 'TileWindows', \ + ToAscii, <.uVirtKey, .uScanCode, .lpbKeyState, .lpwTransKey, .fuState>, 'ToAscii', \ + ToAsciiEx, <.uVirtKey, .uScanCode, .lpKeyState, .lpChar, .uFlags, .dwhkl>, 'ToAsciiEx', \ + ToUnicode, <.wVirtKey, .wScanCode, .lpKeyState, .pwszBuff, .cchBuff, .wFlags>, 'ToUnicode', \ + ToUnicodeEx, <.wVirtKey, .wScanCode, .lpKeyState, .pwszBuff, .cchBuff, .wFlags, .dwhkl>, 'ToUnicodeEx', \ + TrackMouseEvent, <.lpEventTrack>, 'TrackMouseEvent', \ + TrackPopupMenu, <.hMenu, .uFlags, .x, .y, .nReserved, .hwnd, .lprc>, 'TrackPopupMenu', \ + TrackPopupMenuEx, <.hMenu, .un, .n1, .n2, .hWnd, .lpTPMParams>, 'TrackPopupMenuEx', \ + TranslateAccelerator, <.hwnd, .hAccTable, .lpMsg>, 'TranslateAccelerator', \ + TranslateAcceleratorA, <.hwnd, .hAccTable, .lpMsg>, 'TranslateAcceleratorA', \ + TranslateAcceleratorW, <.hwnd, .hAccTable, .lpMsg>, 'TranslateAcceleratorW', \ + TranslateMDISysAccel, <.hWndClient, .lpMsg>, 'TranslateMDISysAccel', \ + TranslateMessage, <.lpMsg>, 'TranslateMessage', \ + TranslateMessageEx, <NONE>, 'TranslateMessageEx', \ + UnhookWinEvent, <.hWinEventHook>, 'UnhookWinEvent', \ + UnhookWindowsHook, <.nCode, .pfnFilterProc>, 'UnhookWindowsHook', \ + UnhookWindowsHookEx, <.hHook>, 'UnhookWindowsHookEx', \ + UnionRect, <.lpDestRect, .lpSrc1Rect, .lpSrc2Rect>, 'UnionRect', \ + UnloadKeyboardLayout, <.HKL>, 'UnloadKeyboardLayout', \ + UnlockWindowStation, <NONE>, 'UnlockWindowStation', \ + UnpackDDElParam, <.msg, .lParam, .puiLo, .puiHi>, 'UnpackDDElParam', \ + UnregisterClassA, <.lpClassName, .hInstance>, 'UnregisterClassA', \ + UnregisterClassW, <.lpClassName, .hInstance>, 'UnregisterClassW', \ + UnregisterDeviceNotification, <.Handle>, 'UnregisterDeviceNotification', \ + UnregisterHotKey, <.hwnd, .id>, 'UnregisterHotKey', \ + UnregisterMessagePumpHook, <NONE>, 'UnregisterMessagePumpHook', \ + UnregisterUserApiHook, <NONE>, 'UnregisterUserApiHook', \ + UpdateLayeredWindow, <.hWnd, .hdcDst, .pptDst, .psize, .hdcSrc, .pptSrc, .crKey, .pblend, .dwFlags>, 'UpdateLayeredWindow', \ + UpdatePerUserSystemParameters, <NONE>, 'UpdatePerUserSystemParameters', \ + UpdateWindow, <.hwnd>, 'UpdateWindow', \ + User32InitializeImmEntryTable, <NONE>, 'User32InitializeImmEntryTable', \ + UserClientDllInitialize, <NONE>, 'UserClientDllInitialize', \ + UserHandleGrantAccess, <.hUserHandle, .hJob, .bGrant>, 'UserHandleGrantAccess', \ + UserLpkPSMTextOut, <NONE>, 'UserLpkPSMTextOut', \ + UserLpkTabbedTextOut, <NONE>, 'UserLpkTabbedTextOut', \ + UserRealizePalette, <NONE>, 'UserRealizePalette', \ + UserRegisterWowHandlers, <NONE>, 'UserRegisterWowHandlers', \ + VRipOutput, <NONE>, 'VRipOutput', \ + VTagOutput, <NONE>, 'VTagOutput', \ + ValidateRect, <.hwnd, .lpRect>, 'ValidateRect', \ + ValidateRgn, <.hwnd, .hRgn>, 'ValidateRgn', \ + VkKeyScanA, <.cChar>, 'VkKeyScanA', \ + VkKeyScanExA, <.ch, .dwhkl>, 'VkKeyScanExA', \ + VkKeyScanExW, <.ch, .dwhkl>, 'VkKeyScanExW', \ + VkKeyScanW, <.cChar>, 'VkKeyScanW', \ + WCSToMBEx, <NONE>, 'WCSToMBEx', \ + WINNLSEnableIME, <.hwnd, .bool>, 'WINNLSEnableIME', \ + WINNLSGetEnableStatus, <.hwnd>, 'WINNLSGetEnableStatus', \ + WINNLSGetIMEHotkey, <.hwnd>, 'WINNLSGetIMEHotkey', \ + WaitForInputIdle, <.hProcess, .dwMilliseconds>, 'WaitForInputIdle', \ + WaitMessage, <VOID>, 'WaitMessage', \ + Win32PoolAllocationStats, <NONE>, 'Win32PoolAllocationStats', \ + WinHelpA, <.hwnd, .lpHelpFile, .wCommand, .dwData>, 'WinHelpA', \ + WinHelpW, <.hwnd, .lpHelpFile, .wCommand, .dwData>, 'WinHelpW', \ + WindowFromDC, <.hdc>, 'WindowFromDC', \ + WindowFromPoint, <.xPoint, .yPoint>, 'WindowFromPoint', \ + keybd_event, <.bVk, .bScan, .dwFlags, .dwExtraInfo>, 'keybd_event', \ + mouse_event, <.dwFlags, .dx, .dy, .cButtons, .dwExtraInfo>, 'mouse_event', \ + wsprintfA, <.lpOut, .lpFmt, .etc>, 'wsprintfA', \ + wsprintfW, <.lpOut, .lpFmt, .etc>, 'wsprintfW', \ + wvsprintfA, <NONE>, 'wvsprintfA', \ + wvsprintfW, <NONE>, 'wvsprintfW' ADDED freshlib/imports/Win32/ws2_32.inc Index: freshlib/imports/Win32/ws2_32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/ws2_32.inc @@ -0,0 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: ws2_32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +import_proto ws2_32, \ + freeaddrinfo, <.pAddrInfo>, 'freeaddrinfo', \ + FreeAddrInfoW, <.pAddrInfo>, 'FreeAddrInfoW', \ + getaddrinfo, <.pNodeName, .pServiceName, .pHints, .ppResult>, 'getaddrinfo', \ + GetAddrInfoW, <.pNodeName, .pServiceName, .pHints, .ppResult>, 'GetAddrInfoW' ADDED freshlib/imports/Win32/wsock32.inc Index: freshlib/imports/Win32/wsock32.inc ================================================================== --- /dev/null +++ freshlib/imports/Win32/wsock32.inc @@ -0,0 +1,97 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: wsock32.dll API calls +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +import_proto wsock32, \ + AcceptEx, <.sListenSocket, .sAcceptSocket, .lpOutputBuffer, .dwReceiveDataLength, .dwLocalAddressLength, .dwRemoteAddressLength, \ + .lpdwBytesReceived, .lpOverlapped>, 'AcceptEx', \ + EnumProtocolsA, <.lpiProtocols, .lpProtocolBuffer, .lpdwBufferLength>, 'EnumProtocolsA', \ + EnumProtocolsW, <.lpiProtocols, .lpProtocolBuffer, .lpdwBufferLength>, 'EnumProtocolsW', \ + GetAcceptExSockaddrs, <.lpOutputBuffer, .dwReceiveDataLength, .dwLocalAddressLength, .dwRemoteAddressLength, .LocalSockaddr, .LocalSockaddrLength, \ + .RemoteSockaddr, .RemoteSockaddrLength>, 'GetAcceptExSockaddrs', \ + GetAddressByNameA, <.dwNameSpace, .lpServiceType, .lpServiceName, .lpiProtocols, .dwResolution, .lpServiceAs, .lpCsaddrBuffer, \ + .lpdwBufferLength, .lpAliasBuffer, .lpdwAliasBufferLength>, 'GetAddressByNameA', \ + GetAddressByNameW, <.dwNameSpace, .lpServiceType, .lpServiceName, .lpiProtocols, .dwResolution, .lpServiceAs, .lpCsaddrBuffer, \ + .lpdwBufferLength, .lpAliasBuffer, .lpdwAliasBufferLength>, 'GetAddressByNameW', \ + GetNameByTypeA, <.lpServiceType, .lpServiceName, .dwNameLength>, 'GetNameByTypeA', \ + GetNameByTypeW, <.lpServiceType, .lpServiceName, .dwNameLength>, 'GetNameByTypeW', \ + GetServiceA, <.dwNameSpace, .lpGuid, .lpServiceName, .dwProperties, .lpBuffer, .lpdwBufferSize, .lpServiceAs>, 'GetServiceA', \ + GetServiceW, <.dwNameSpace, .lpGuid, .lpServiceName, .dwProperties, .lpBuffer, .lpdwBufferSize, .lpServiceAs>, 'GetServiceW', \ + GetTypeByNameA, <.lpServiceName, .lpServiceType>, 'GetTypeByNameA', \ + GetTypeByNameW, <.lpServiceName, .lpServiceType>, 'GetTypeByNameW', \ + MigrateWinsockConfiguration, <NONE>, 'MigrateWinsockConfiguration', \ + NPLoadNameSpaces, <NONE>, 'NPLoadNameSpaces', \ + SetServiceA, <.dwNameSpace, .dwOperation, .dwFlags, .lpServiceInfo, .lpServiceAsyncInfo, .lpdwStatusFlags>, 'SetServiceA', \ + SetServiceW, <.dwNameSpace, .dwOperation, .dwFlags, .lpServiceInfo, .lpServiceAsyncInfo, .lpdwStatusFlags>, 'SetServiceW', \ + TransmitFile, <.hSocket, .hFile, .nNumberOfBytesToWrite, .nNumberOfBytesPerSend, .lpOverlapped, .lpTransmitBuffers, .dwReserved, \ + >, 'TransmitFile', \ + WEP, <NONE>, 'WEP', \ + WSAAsyncGetHostByAddr, <.hWnd, .wMsg, .addr, .lLen, .lType, .buf, .buflen>, 'WSAAsyncGetHostByAddr', \ + WSAAsyncGetHostByName, <.hWnd, .wMsg, .name, .buf, .buflen>, 'WSAAsyncGetHostByName', \ + WSAAsyncGetProtoByName, <.hWnd, .wMsg, .name, .buf, .buflen>, 'WSAAsyncGetProtoByName', \ + WSAAsyncGetProtoByNumber, <.hWnd, .wMsg, .number, .buf, .buflen>, 'WSAAsyncGetProtoByNumber', \ + WSAAsyncGetServByName, <.hWnd, .wMsg, .name, .proto, .buf, .buflen>, 'WSAAsyncGetServByName', \ + WSAAsyncGetServByPort, <.hWnd, .wMsg, .port, .proto, .buf, .buflen>, 'WSAAsyncGetServByPort', \ + WSAAsyncSelect, <.s, .hWnd, .wMsg, .lEvent>, 'WSAAsyncSelect', \ + WSACancelAsyncRequest, <.hAsyncTaskHandle>, 'WSACancelAsyncRequest', \ + WSACancelBlockingCall, <VOID>, 'WSACancelBlockingCall', \ + WSACleanup, <VOID>, 'WSACleanup', \ + WSAGetLastError, <VOID>, 'WSAGetLastError', \ + WSAIsBlocking, <VOID>, 'WSAIsBlocking', \ + WSARecvEx, <.s, .buf, .lLen, .flags>, 'WSARecvEx', \ + WSASetBlockingHook, <.lpBlockFunc>, 'WSASetBlockingHook', \ + WSASetLastError, <.iError>, 'WSASetLastError', \ + WSAStartup, <.wVersionRequired, .lpWSAData>, 'WSAStartup', \ + WSAUnhookBlockingHook, <VOID>, 'WSAUnhookBlockingHook', \ + WSApSetPostRoutine, <NONE>, 'WSApSetPostRoutine', \ + __WSAFDIsSet, <NONE>, '__WSAFDIsSet', \ + accept, <.s, .addr, .addrlen>, 'accept', \ + bind, <.s, .addr, .namelen>, 'bind', \ + closesocket, <.s>, 'closesocket', \ + connect, <.s, .name, .namelen>, 'connect', \ + dn_expand, <NONE>, 'dn_expand', \ + gethostbyaddr, <.addr, .len, .type>, 'gethostbyaddr', \ + gethostbyname, <.name>, 'gethostbyname', \ + gethostname, <.name, .namelen>, 'gethostname', \ + getnetbyname, <NONE>, 'getnetbyname', \ + getpeername, <.s, .name, .namelen>, 'getpeername', \ + getprotobyname, <.name>, 'getprotobyname', \ + getprotobynumber, <.number>, 'getprotobynumber', \ + getservbyname, <.name, .proto>, 'getservbyname', \ + getservbyport, <.port, .proto>, 'getservbyport', \ + getsockname, <.s, .name, .namelen>, 'getsockname', \ + getsockopt, <.s, .level, .optname, .optval, .optlen>, 'getsockopt', \ + htonl, <.hostlong>, 'htonl', \ + htons, <.hostshort>, 'htons', \ + inet_addr, <.cp>, 'inet_addr', \ + inet_network, <NONE>, 'inet_network', \ + inet_ntoa, <.lIn>, 'inet_ntoa', \ + ioctlsocket, <.s, .cmd, .argp>, 'ioctlsocket', \ + listen, <.s, .backlog>, 'listen', \ + ntohl, <.netlong>, 'ntohl', \ + ntohs, <.netshort>, 'ntohs', \ + rcmd, <NONE>, 'rcmd', \ + recv, <.s, .buf, .lLen, .flags>, 'recv', \ + recvfrom, <.s, .buf, .lLen, .flags, .from, .fromlen>, 'recvfrom', \ + rexec, <NONE>, 'rexec', \ + rresvport, <NONE>, 'rresvport', \ + s_perror, <NONE>, 's_perror', \ + select, <NONE>, 'select', \ + send, <.s, .buf, .lLen, .flags>, 'send', \ + sendto, <.s, .buf, .lLen, .flags, .to, .tolen>, 'sendto', \ + sethostname, <NONE>, 'sethostname', \ + setsockopt, <.s, .level, .optname, .optval, .optlen>, 'setsockopt', \ + shutdown, <.s, .how>, 'shutdown', \ + socket, <.af, .lType, .protocol>, 'socket' + DELETED freshlib/imports/allimports.asm Index: freshlib/imports/allimports.asm ================================================================== --- freshlib/imports/allimports.asm +++ /dev/null @@ -1,1 +0,0 @@ -include '%TargetOS%/allimports.asm' ADDED freshlib/macros/Dummy/_executable.inc Index: freshlib/macros/Dummy/_executable.inc ================================================================== --- /dev/null +++ freshlib/macros/Dummy/_executable.inc @@ -0,0 +1,88 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Executable file formating macro library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +TargetOS equ Dummy + +macro @BinaryType type { + if type eq GUI + end if + + if type eq console + end if + + if type eq DLL + end if + +} + + +macro @AllDataSection { + IncludeAllGlobals +} + + +macro @AllDataEmbeded { + @AllDataSection +} + + +macro __create_dll_list { + DynamicLibList equ + rept DynamicLibList@count i:1 \{ + match any, DynamicLibList \\{ + match name:filename, DynamicLibList\\#i \\\{ + DynamicLibList equ DynamicLibList, name, \\\`name\\\#'.dll' + \\\} + \\} + + match , DynamicLibList \\{ + match name:filename, DynamicLibList\\#i \\\{ + DynamicLibList equ name, \\\`name\\\#'.dll' + \\\} + \\} + \} +} + +macro __create_all_imports { + __create_dll_list + + match liblist, DynamicLibList \{ + library liblist + \} + + rept DynamicLibList@count i:1 \{ + match name:filename, DynamicLibList\#i \\{ + \\include filename + \\} + \} +} + + +macro @AllImportSection { +; section '.idata' import readable +; __create_all_imports +} + + +macro @AllImportEmbeded { +; data import +; __create_all_imports +; end data +} + + + + + + ADDED freshlib/macros/Dummy/allmacros.inc Index: freshlib/macros/Dummy/allmacros.inc ================================================================== --- /dev/null +++ freshlib/macros/Dummy/allmacros.inc @@ -0,0 +1,14 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all Win32 specific macros. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + ADDED freshlib/macros/KolibriOS/_executable.inc Index: freshlib/macros/KolibriOS/_executable.inc ================================================================== --- /dev/null +++ freshlib/macros/KolibriOS/_executable.inc @@ -0,0 +1,161 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Executable file formating macro library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +TargetOS equ KolibriOS +strTargetOS equ 'KolibriOS' + +STACK_SIZE = 1024 * 1024 ; 1MB + +hdrVersionConsole = 1 + +macro @BinaryType type, model { + if type eq GUI | type eq console + format binary as 'kex' + use32 + org $0 + + db 'MENUET01' + dd hdrVersionConsole + dd start + dd __end_code + dd __end_data + STACK_SIZE + dd __end_data + STACK_SIZE + dd __bufferArguments + dd __bufferPath + + STDIO dd 0 + STDDBG dd 0 + end if + + addrHeapStart = __end_data + STACK_SIZE + +; ??????????????????????? + if type eq DLL + format PE GUI 4.0 DLL + entry EntryPoint + section '.code' code readable writeable executable + end if + + postpone \{ + ?FAKE_COMPILE = 0 + match =TRUE, ___FAKE_COMPILE \\{ + ?FAKE_COMPILE = 1 + \\} + + if ?FAKE_COMPILE = 0 + + __AllDataSection + __AllImportSection + + end if + \} + + +} + + +macro __AllDataSection { + local begin + + align 4 + begin = $ + disp 3, 'Initialized data address: $', <begin, 16>, 13 + IncludeIGlobals + DispSize 'Initialized data', ($ - begin) + + align 4 + begin = $ + disp 3, 'Strings address: $', <$, 16>, 13 + _IncludeAllStrings + DispSize 'String data', ($ - begin) + + align 4 + begin = $ + disp 3, 'I18n strings data:', <begin, 16>, 13 + __IncludeI18nStrings + DispSize 'I18n strings data', ($ - begin) + + __end_code: + + if used bufferArguments + bufferArguments rb 1024 + __bufferArguments = bufferArguments + else + __bufferArguments = 0 + end if + + if used bufferPath + bufferPath rb 1024 + __bufferPath = bufferPath + else + __bufferPath = 0 + end if + + align 4 + begin = $ + disp 3, 'Uninitialized data address: $', <begin, 16>, 13 + IncludeUGlobals + DispSize 'Uninitialized data', ($ - begin) + + align 4 + begin = $ + disp 3, 'I18n strings placeholders: $', <begin, 16>, 13 + IncludeI18nLabels + DispSize 'I18n strings placeholders', ($ - begin) + + align 4096 + __end_data: +} + + +macro __create_dll_list { + DynamicLibList equ + rept DynamicLibList@count i:1 \{ + match any, DynamicLibList \\{ + match name:filename, DynamicLibList\\#i \\\{ + DynamicLibList equ DynamicLibList, name, \\\`name\\\#'.dll' + \\\} + \\} + + match , DynamicLibList \\{ + match name:filename, DynamicLibList\\#i \\\{ + DynamicLibList equ name, \\\`name\\\#'.dll' + \\\} + \\} + \} +} + +macro __create_all_imports { + __create_dll_list + + match liblist, DynamicLibList \{ + library liblist + \} + + rept DynamicLibList@count i:1 \{ + match name:filename, DynamicLibList\#i \\{ + \\include filename + \\} + \} +} + + +macro __AllImportSection { +; section '.idata' import readable +; __create_all_imports +} + + + + ADDED freshlib/macros/KolibriOS/allmacros.inc Index: freshlib/macros/KolibriOS/allmacros.inc ================================================================== --- /dev/null +++ freshlib/macros/KolibriOS/allmacros.inc @@ -0,0 +1,14 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all Win32 specific macros. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + Index: freshlib/macros/Linux/_elf.inc ================================================================== --- freshlib/macros/Linux/_elf.inc +++ freshlib/macros/Linux/_elf.inc @@ -1,5 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: ELF format macros. Used internally in _import.inc +; +; Target OS: Linux (ELF) +; +; Dependencies: +; +; Notes: The form and use of these macros is somehow unsystematic. +;_________________________________________________________________________________________ + macro Elf32_Sym name,value,size,bind,type,other,shndx { dd name+0 dd value+0 ADDED freshlib/macros/Linux/_executable.inc Index: freshlib/macros/Linux/_executable.inc ================================================================== --- /dev/null +++ freshlib/macros/Linux/_executable.inc @@ -0,0 +1,82 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Executable file formating macro library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +TargetOS equ Linux +strTargetOS equ 'Linux' + +match =LINUX_INTERPRETER, LINUX_INTERPRETER { + LINUX_INTERPRETER equ '/lib/ld-linux.so.2' +} + + +macro @BinaryType type, model { + if type eq GUI + format ELF executable 3 + entry start + end if + + if type eq console + format ELF executable 3 + entry start + end if + + if type eq DLL + format ELF executable ; is it correct??? + end if + + postpone \{ + ?FAKE_COMPILE = 0 + match =TRUE, ___FAKE_COMPILE \\{ + ?FAKE_COMPILE = 1 + \\} + + if ?FAKE_COMPILE = 0 + + ; global data + if (model eq )|(model eq default) + segment readable writeable + end if + + if ~(model eq manual) + \IncludeAllGlobals + end if + + ; imports + \__create_all_imports + end if + \} + + if __imported_count > 0 + segment interpreter readable + interpreter LINUX_INTERPRETER + end if + + segment readable writeable executable +} + + + +macro __create_all_imports { + + rept DynamicLibList@count i:1 \{ + match name:filename, DynamicLibList\#i \\{ + \\include filename + \\} + \} + + __ImportAll +} + + + Index: freshlib/macros/Linux/_import.inc ================================================================== --- freshlib/macros/Linux/_import.inc +++ freshlib/macros/Linux/_import.inc @@ -1,75 +1,209 @@ -; macroinstruction for importing functions in Linux +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Macros for importing functions in Linux +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +options.AlignStackExt = 1 ; SYSTEM V ABI requires stack aligned on 16 bytes on calls. include '_elf.inc' + macro interpreter [library] { db library,0 } -macro needed [library] -{ - local str - match needed,needed@dynamic \{ define needed@dynamic needed,str:library \} - match ,needed@dynamic \{ define needed@dynamic str:library \} -} -define needed@dynamic - -macro import [name] -{ - common - local strtab,strsz,symtab,rel,relsz,hash - segment dynamic readable - match needed,needed@dynamic - \{ irp item,needed \\{ match str:library,item \\\{ dd DT_NEEDED,str-strtab \\\} \\} \} - dd DT_STRTAB,strtab - dd DT_STRSZ,strsz - dd DT_SYMTAB,symtab - dd DT_SYMENT,sizeof.Elf32_Sym - dd DT_REL,rel - dd DT_RELSZ,relsz - dd DT_RELENT,sizeof.Elf32_Rel - dd DT_HASH,hash - dd DT_NULL,0 - segment readable writeable - symtab: Elf32_Sym - forward - if used name - local fstr - Elf32_Sym fstr-strtab,0,0,STB_GLOBAL,STT_FUNC,0,0 - end if - common - rel: - local counter - counter = 1 - forward - if used name - Elf32_Rel name,counter,R_386_32 - counter = counter+1 - end if - common - relsz = $-rel - hash: - dd 1,counter - dd 0 - repeat counter - if %=counter - dd 0 - else - dd % - end if - end repeat - strtab db 0 - forward - if used name - fstr db `name,0 - end if - common - match needed,needed@dynamic - \{ irp item,needed \\{ match str:library,item \\\{ str db library,0 \\\} \\} \} - strsz = $-strtab - forward - if used name - name dd 0 - end if -} + +macro __define_import_arguments [arg] { +common + local ..start + + if arg eq VOID + .__info.argtype=1 + else + if arg eq NONE + .__info.argtype = 0 + else + virtual at ebp+8 + ..start: +forward + if ~arg eq ... + arg dd ? + else + label .more_arguments dword + end if +common + .__info.argsize = $ - ..start + end virtual + .__info.argtype = 2 + end if + end if +} + + + +macro __InitImportMacros { +common + local libs, func + + libs equ 0 + func equ 0 + + ; creates symbols list with needed libraries. + macro import_proto library, [iname, arg, ename] \{ + \common + \local str, cnt, use + rept 1 i:libs+1 \\{ + libs equ i + libs\\#i equ str:cnt:use:library + \\} + + \forward + \local fstr + rept 1 i:func+1 \\{ + func equ i + func\\#i equ fstr:cnt:iname:ename:arg + iname\\#.@here = 1 + \\} + \} + + macro __ImportAll \{ + \common + \local strtab,strsz,symtab,rel,relsz,hash,tcnt, size1, size2 + + tcnt = 0 + + if defined options.ShowImported & options.ShowImported + disp 3, 'Imported functions: ', <__imported_count, 10>, $09 + end if + + rept func i:1 \\{ + match fstr:cnt:iname:ename:arg, func\\#i \\\{ + if used iname + tcnt = tcnt + 1 + if defined options.ShowImported & options.ShowImported + display 3, 'Imported "', \\\`iname, '" function.', $0a + end if + end if + \\\} + \\} + + __imported_count = tcnt; + + size1 = 0 + + if __imported_count>0 + segment dynamic readable + rept libs i:1 \\{ + match str:cnt:use:library, libs\\#i \\\{ + cnt = 0 + if use > 0 + dd DT_NEEDED, str-strtab + end if + \\\} + \\} + + dd DT_STRTAB, strtab + dd DT_STRSZ, strsz + dd DT_SYMTAB, symtab + dd DT_SYMENT, sizeof.Elf32_Sym + dd DT_REL, rel + dd DT_RELSZ, relsz + dd DT_RELENT, sizeof.Elf32_Rel + dd DT_HASH, hash + dd DT_NULL, 0 + + size1 = $ - $$ + + zalign 4, ? + segment readable writeable + symtab: Elf32_Sym + + rept func i:1 \\{ + match fstr:cnt:iname:ename:arg, func\\#i \\\{ + if used iname + Elf32_Sym fstr-strtab,0,0,STB_GLOBAL,STT_FUNC,0,0 + cnt = cnt + 1 + end if + \\\} + \\} + + rel: + \local counter + counter = 1 + + rept func i:1 \\{ + match fstr:cnt:iname:ename:arg, func\\#i \\\{ + if used iname + Elf32_Rel iname, counter, R_386_32 + counter = counter + 1 + end if + \\\} + \\} + + relsz = $-rel + hash: + dd 1, counter + dd 0 + + repeat counter + if % = counter + dd 0 + else + dd % + end if + end repeat + strtab db 0 + + rept func i:1 \\{ + match fstr:cnt:iname:ename:arg, func\\#i \\\{ + if used iname + fstr db ename, 0 + end if + \\\} + \\} + + rept libs i:1 \\{ + match str:cnt:use:library, libs\\#i \\\{ + use = cnt + if use > 0 + str db library, 0 + end if + \\\} + \\} + + strsz = $-strtab + + rept func i:1 \\{ + match fstr:cnt:iname:ename:arg, func\\#i \\\{ + if used iname + iname dd 0 + else + iname = 0 + end if + __define_import_arguments arg + \\\} + \\} + else + size1 = $ - $$ + end if + + size2 = $ - $$ + + DispSize 'ELF Import data1:', size1 + DispSize 'ELF Import data2:', size2 + \} +} + + +__InitImportMacros ADDED freshlib/macros/Linux/_linproc.inc Index: freshlib/macros/Linux/_linproc.inc ================================================================== --- /dev/null +++ freshlib/macros/Linux/_linproc.inc @@ -0,0 +1,21 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Linux variant or return instruction for thread procedures. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +macro thread_return { + cret +} + + + + Index: freshlib/macros/Linux/allmacros.inc ================================================================== --- freshlib/macros/Linux/allmacros.inc +++ freshlib/macros/Linux/allmacros.inc @@ -1,1 +1,16 @@ -include '_import.inc' +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all Linux specific macros. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +include '_import.inc' +include '_linproc.inc' ADDED freshlib/macros/Win32/_com32.inc Index: freshlib/macros/Win32/_com32.inc ================================================================== --- /dev/null +++ freshlib/macros/Win32/_com32.inc @@ -0,0 +1,109 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Win32 COM interface macros. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +macro cominvk ptr_object, method, [arg] { +common + if ~ arg eq +reverse + pushx arg +common + end if + + if ~defined ptr_object#.com.object + ERROR! `ptr_object is not a com object. + end if + + mov eax, [ptr_object] + push eax + mov eax,[eax] + call [eax+ptr_object#.#method] +} + + +macro comcall handle, interface, proc,[arg] { +common + if ~ arg eq +reverse + pushx arg +common + end if + + if ~defined interface#.com.interface + ERROR! `interface is not a com interface. + end if + + if handle eqtype eax | handle eqtype 0 ; ??? + local ..handle + label ..handle at handle + push handle + mov eax, [..handle] + else + mov eax, handle + push eax + mov eax, [eax] + end if + + call [eax+interface#.#proc] +} + + +macro com_interface name, [proc] { +common + struc name \{ + match , @struct \\{ define field@struct .,name, \\} + match no, @struct \\{ + . dd ? + virtual at 0 +forward + .#proc dd ? +common + .\\#\\.com.object = name#.com.interface + end virtual + \\} + \} + + virtual at 0 +forward + name#.#proc dd ? +common + name#.com.interface = $ shr 2 + end virtual +} + + +struc GUID def { + if used . + label . dword + match d1-d2-d3-d4-d5, def \{ + .Data1 dd $\#d1 + .Data2 dw $\#d2 + .Data3 dw $\#d3 + .Data4 db $\#d4 shr 8, $\#d4 and 0FFh + .Data5 db $\#d5 shr 40, $\#d5 shr 32 and 0FFh, $\#d5 shr 24 and 0FFh + db $\#d5 shr 16 and 0FFh, $\#d5 shr 8 and 0FFh, $\#d5 and 0FFh + \} + end if +} + + +; ends with two word zero terminators. + +struc BSTR [txt] { +common + local ..len + .length dd ..len + . du txt + ..len = $ - . + dw 0, 0 +} Index: freshlib/macros/Win32/_exceptions.inc ================================================================== --- freshlib/macros/Win32/_exceptions.inc +++ freshlib/macros/Win32/_exceptions.inc @@ -1,5 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Win32 exception handling macros. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + ..TryLevel = 0 macro beginTry { common ptrExceptionContext equ esp+$0c ADDED freshlib/macros/Win32/_executable.inc Index: freshlib/macros/Win32/_executable.inc ================================================================== --- /dev/null +++ freshlib/macros/Win32/_executable.inc @@ -0,0 +1,134 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Executable file formating macro library. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +TargetOS equ Win32 +strTargetOS equ 'Win32' + +; model can be "compact", "default", "manual" + +macro @BinaryType type, model { + if type eq GUI + format PE GUI 4.0 + entry start + end if + + if type eq console + format PE Console 4.0 + entry start + end if + + if type eq DLL + format PE GUI 4.0 DLL + entry EntryPoint + end if + + + postpone \{ + ?FAKE_COMPILE = 0 + match =TRUE, ___FAKE_COMPILE \\{ + ?FAKE_COMPILE = 1 + \\} + + if ?FAKE_COMPILE = 0 + ; imports + if model eq compact + data import + else + if (model eq )|(model eq default) + section '.idata' import readable + else + end if + end if + + if ~(model eq manual) + \__create_all_imports + end if + + if model eq compact + end data + end if + + ; global data + if (model eq )|(model eq default) + section '.data' data readable writeable + end if + + if ~(model eq manual) + \IncludeAllGlobals + end if + + if type eq DLL + section '.reloc' fixups data readable discardable + DispSize "fixups section", $-$$ + if $=$$ + dd 0,8 ; if there are no fixups, generate dummy entry + end if + end if + end if + \} + + section '.code' code readable writeable executable +} + + + +macro __create_dll_list { + DynamicLibList equ + rept DynamicLibList@count i:1 \{ + match any, DynamicLibList \\{ + match name:filename, DynamicLibList\\#i \\\{ + DynamicLibList equ DynamicLibList, name, \\\`name\\\#'.dll' + \\\} + \\} + + match , DynamicLibList \\{ + match name:filename, DynamicLibList\\#i \\\{ + DynamicLibList equ name, \\\`name\\\#'.dll' + \\\} + \\} + \} +} + +macro __create_all_imports { + __create_dll_list + + match liblist, DynamicLibList \{ + library liblist + \} + + rept DynamicLibList@count i:1 \{ + match name:filename, DynamicLibList\#i \\{ + \\include filename + \\} + \} +} + + +;macro @AllImportSection { +; section '.idata' import readable +; __create_all_imports +;} + + +;macro @AllImportEmbeded { +; data import +; __create_all_imports +; end data +;} + + + + + + Index: freshlib/macros/Win32/_export.inc ================================================================== --- freshlib/macros/Win32/_export.inc +++ freshlib/macros/Win32/_export.inc @@ -1,5 +1,18 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Win32 export sections creating macros. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ ; macroinstruction for making export section macro export dllname,[label,string] ; strings must be sorted { common Index: freshlib/macros/Win32/_import.inc ================================================================== --- freshlib/macros/Win32/_import.inc +++ freshlib/macros/Win32/_import.inc @@ -1,39 +1,57 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Win32 import macros. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: Only import_proto should be used in portable applications. Here we have some +; old macros that needs revision or even removing. +;_________________________________________________________________________________________ + + +options.AlignStackExt = 0 ; Windows needs regular stack alignment on 4. + + ; macroinstruction for making import section macro library [name,string] { forward local _label - if ~ name#.needed + if name#.needed dd 0,0,0,RVA _label,RVA name end if common dd 0,0,0,0,0 forward - if ~ name#.needed + if name#.needed _label db string,0 -; display 'Import from:', string, $0d, $0a end if } -macro import name,[label, string] +macro import name, [lbl, string] { common name: forward - if used label + if used lbl local _label - label dd RVA _label + lbl dd RVA _label end if common if $ > name - name#.needed = FALSE + name#.needed = TRUE dd 0 else - name#.needed = TRUE + name#.needed = FALSE end if forward - if used label + if used lbl _label dw 0 db string,0 end if } @@ -41,58 +59,54 @@ macro define_import_arguments [argument] { common virtual at ebp+8 forward + if ~ argument eq ... argument dd ? + else + label .more… dword + end if common end virtual } -macro import_proto name, [lbl, api, arg, string] { + + +macro import_proto name, [lbl, arg, string] { common name: forward local ..lbl, ..used - match =N, api \{ @label equ lbl\} - match =W, api \{ - match =ascii, GlobalAPI \\{ @label equ lbl#W \\} - match =unicode, GlobalAPI \\{ @label equ lbl \\} - match , GlobalAPI \\{ @label equ lbl#W \\} - \} - match =A, api \{ - match =ascii, GlobalAPI \\{ @label equ lbl \\} - match =unicode, GlobalAPI \\{ @label equ lbl#A \\} - match , GlobalAPI \\{ @label equ lbl#A \\} - \} - - ..used = 0 - if used @label - @label dd RVA ..lbl - ..used = 1 - end if - - if ~(arg eq NONE) - if arg eq VOID - .__info.argtype = 1 - else - define_import_arguments arg - .__info.argtype = 2 - end if - else - .__info.argtype = 0 - end if - - restore @label + @label equ lbl + + ..used = 0 + if used lbl + lbl dd RVA ..lbl + ..used = 1 + else + label lbl dword at 0 + end if + + if ~(arg eq NONE) + if arg eq VOID + .__info.argtype = 1 + else + define_import_arguments arg + .__info.argtype = 2 + end if + else + .__info.argtype = 0 + end if common if $ > name - name#.needed = FALSE + name#.needed = TRUE dd 0 else - name#.needed = TRUE + name#.needed = FALSE end if forward if ..used ..lbl dw 0 @@ -100,51 +114,6 @@ end if } -macro U_library [name,string] - { forward - local _label - dd 0,0,0,RVA _label,RVA name - common - dd 0,0,0,0,0 - forward - _label db string,0 - } - - -macro U_import name,[label,string] -{ common - name: - forward - local _label - label dd RVA _label - common - dd 0 - forward - _label dw 0 - db string,0 -} - - -macro ImportLib [lib] { -forward - local _label - if ~ lib#.needed - dd 0, 0, 0, RVA _label, RVA lib - end if - -common - dd 0, 0, 0, 0, 0 - -forward - if ~ lib#.needed - _label db `lib#'.dll', 0 - end if - -forward - \include "%finc%\win32\api\"#`lib#".inc" -} - - -GlobalAPI equ + DELETED freshlib/macros/Win32/_winproc.inc Index: freshlib/macros/Win32/_winproc.inc ================================================================== --- freshlib/macros/Win32/_winproc.inc +++ /dev/null @@ -1,90 +0,0 @@ -;----------------------------------------- -; This file is part of Fresh standard -; macro library. -;----------------------------------------- - - -macro winproc name, [arg] { -common - - \err@endp - - macro err@endp \{ - end if - Missing 'endwp' before the procedure. - \} - - - if ~ used name - if options.ShowSkipped - display 1,'Message procedure skiped: ',`name, $0d, $0a - end if - else - - name: - .__info.id = 2 - - if arg eq - virtual at ebp+8 - .hwnd dd ? - .wmsg dd ? - .wparam dd ? - .lparam dd ? - .__info.argsize = 16 - end virtual - else - virtual at ebp+8 - forward - arg dd ? - if ~ defined name#arg - ERROR! the argument `arg MUST begin with dot - end if - common - .__info.argsize = $ - ebp - 8 - end virtual - end if - - if .__info.argsize <> 16 - Error! The count of `name arguments MUST be 4 dwords. - end if - - virtual at ebp - .__info.commonframe.size - .__info.commonframe.begin: -} - - - -macro ondefault { ; begins procedure instructions - common - local ..msgcounter, ..msglist - msgcounter equ ..msgcounter - msglist equ ..msglist - - ..msgcounter = 0 - - call JumpTo - ..msglist: - rd .__info.msgcount - dd 0 - - .ondefault: -} - - -macro onmessage message { - .#message: - .#message#.__info.id = 3 - .#message#.__info.number = msgcounter / 4 - store word message at (msglist + msgcounter) - store word ($ - msglist - msgcounter - 4 ) at (msglist + msgcounter + 2) - msgcounter = msgcounter + 4 -} - - -macro endwp { - .__info.msgcount = msgcounter / 4 - .__info.framesize = maxsize + .__info.commonframe.size - end if - restore maxsize, msgcounter, msglist - purge err@endp -} Index: freshlib/macros/Win32/allmacros.inc ================================================================== --- freshlib/macros/Win32/allmacros.inc +++ freshlib/macros/Win32/allmacros.inc @@ -1,4 +1,18 @@ -include '_winproc.inc' +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Combined include of all Win32 specific macros. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + include '_import.inc' include '_export.inc' -include '_exceptions.inc' +include '_exceptions.inc' +include '_com32.inc' Index: freshlib/macros/_datamacros.inc ================================================================== --- freshlib/macros/_datamacros.inc +++ freshlib/macros/_datamacros.inc @@ -1,5 +1,51 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Several data definition/manipulation macros. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +macro zalign number*, fill { + local ..sz + if fill eq + align number + else + virtual + align number + ..sz = $ - $$ + end virtual + db ..sz dup fill + end if +} + + +macro getfile lblname*, filename* { + if used lblname + lblname file filename + .size = $ - lblname + end if +} + +macro StringTable [string] { + forward + local ..lbl + dd ..lbl + common + dd 0 + forward +..lbl db string, 0 +} + + macro IndexedStrings [lparam, string] { forward local ..lbl dd ..lbl, lparam common @@ -18,5 +64,82 @@ if defined seqname#.display & seqname#.display disp iconInfo, `seqname, ' value: ', \`#name, ' = $', <name, 16>, $0d end if \} } + + + + + +struc StripText source_file, syntax { +local ..lbl, source, string, len, rawlen, char, pchar, j, flag, quot + + label . byte + ..lbl: + rb len + .length = len + dd 0 + + virtual at 0 + source:: + string file source_file + rawlen = $ + end virtual + + if rawlen = 0 + err + end if + + j = 0 + pchar = ' ' + flag = 1 + quot = 0 + + repeat rawlen + load char byte from source:(%-1) + + if ~quot & (syntax eq SQL) + if flag + if (char = '*' & pchar = "/") | (char = "-" & pchar = "-") + flag = 0 + char = ' ' + pchar = ' ' + j = j - 1 + end if + else + if (char = "/" & pchar = "*" ) | char = 13 | char = 10 + flag = 1 + char = ' ' + pchar = ' ' + end if + end if + end if + + if flag & (char = "'" | char = '"' | char = "`") & (syntax eq SQL) + if ~quot + quot = char + else + if quot = char + quot = 0 + end if + end if + end if + + if ~quot & ( char < ' ' ) + char = ' ' + end if + + if quot | (flag & ( char > ' ' | (char = ' ' & pchar<>' '))) + if j < len + store byte char at ..lbl + j + end if + j = j + 1 + end if + + pchar = char + + end repeat + + len = j + +} ADDED freshlib/macros/_dispatch.inc Index: freshlib/macros/_dispatch.inc ================================================================== --- /dev/null +++ freshlib/macros/_dispatch.inc @@ -0,0 +1,41 @@ + + +macro dispatch arg { ; begins procedure instructions + common + local ..caselist, ..caseaddr, ..casesize + + case@size equ ..casesize + case@list equ ..caselist + case@addr equ ..caseaddr + + macro oncase idname \{ + \local ..offset + + store byte $3d at ..caseaddr ; cmp eax, dword imm ; 5 bytes + store dword idname at ..caseaddr+1 + ..caseaddr = ..caseaddr + 5 + ..offset = $ - ..caseaddr - 2 + + store word $840f at ..caseaddr ; je dword offset ; 6 bytes + store dword ..offset - 4 at ..caseaddr+2 + ..caseaddr = ..caseaddr + 6 + \} + + + mov eax, arg + + ..caselist: + ..caseaddr = $ + + rb ..casesize +} + + +macro enddispatch { + case@size = case@addr - case@list + restore case@size, case@addr, case@list + purge oncase +} + + + Index: freshlib/macros/_display.inc ================================================================== --- freshlib/macros/_display.inc +++ freshlib/macros/_display.inc @@ -1,5 +1,19 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Macro library for displaying compile time messages. +; +; Target OS: Any (FASM compiler) +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + iconWarning = 1 iconError = 2 iconInfo = 3 iconFind = 4 iconNone = 5 @@ -14,17 +28,23 @@ display 'A'+num-10 end if } -macro __disp arg1,arg2 +macro _disp arg1, arg2 { if arg2 eq display arg1 else - local ..tmp - ..tmp = arg1 + local ..tmp, ..val + + if arg1 relativeto 0 + ..tmp = arg1 + else + ..tmp = rva arg1 + end if + virtual at 0 repeat 32 if ..tmp > 0 db ..tmp mod arg2 ..tmp = ..tmp / arg2 @@ -39,18 +59,28 @@ end if end virtual end if } -macro disp [arg] { __disp arg } +macro disp [arg] { _disp arg } macro DispSize Text, Sz { + local size + size = Sz; if defined options.ShowSizes & options.ShowSizes - disp 3,"Sizeof [", Text, "] is: " - if Sz>10000 - disp <Sz/1024,10>, 'K',$0d,$0a - else - disp <Sz,10>, ' bytes.',$0d,$0a + if ~(defined options.SkipZeroSizes & options.SkipZeroSizes & Sz=0) + if Text eqtype "A" + disp 3,"Sizeof [", Text, "] is: " + else + disp 3,"Sizeof [", `Text, "] is: " + end if + + if Sz>10000 + size = size / 1024 + disp <size,10>, 'K',$0d,$0a + else + disp <size,10>, ' bytes.',$0d,$0a + end if end if end if } ADDED freshlib/macros/_executable.inc Index: freshlib/macros/_executable.inc ================================================================== --- /dev/null +++ freshlib/macros/_executable.inc @@ -0,0 +1,46 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Executable file formating macro library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Includes OS dependent versions of the library. +;_________________________________________________________________________________________ + + +include '%TargetOS%/_executable.inc' + + +macro module name { + ___StartLibAddress = $ + ___LibraryName equ name +} + +macro endmodule { + DispSize ___LibraryName, $-___StartLibAddress + restore ___LibraryName +} + + +macro uses [libname] { +forward + local nm, fn + nm equ libname + fn equ '%lib%/imports/%TargetOS%/'#`libname#'.inc' + match name:filename, libname \{ + nm equ name + fn equ filename + \} + ppAddUniqueList DynamicLibList, nm#:#fn +} + +ppInitList DynamicLibList + + + + Index: freshlib/macros/_globals.inc ================================================================== --- freshlib/macros/_globals.inc +++ freshlib/macros/_globals.inc @@ -1,33 +1,18 @@ -;********************************************** -; Macros for global variables handling. -; This macro library is part of Fresh project. -; -; (C)2003, 2004, 2010 -; -; Authors: -; John Found -; Tomasz Grisztar -; -; usage: -; 1. Include this library in the begining -; of your source file. -; 2. Use it as blocks anywhere in the source. -; iglobal -; somelabel dd 1234h -; otherlabel RECT -; lbl3 db 12h -; endg -; -; 3. Data section must be at the end of the -; source file. Use 'IncludeAllGlobals' to -; really define variables. -; -;********************************************** - - - +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Macto library for global variables handling. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ ;------------------------------------------------------------------ ; use "iglobal" for inserting initialized global data definitions. ;------------------------------------------------------------------ macro iglobal { @@ -79,160 +64,164 @@ U \} } - - -macro InitStringList { - local r,v,c - c equ 0 - - struc text [val] \{ - \common - if ~val eqtype 1 - virtual at 0 - \forward - db val - \common - .length = $ - end virtual - end if - rept 1 x:c+1 \\{ - c equ x - r\\#x equ . - v\\#x equ val - \\} - \} - - macro __IncludeAllStrings \{ - \common - \local ..start, len, i, j, f, ch1, ch2 - label ..start byte - if defined options.ShowSizes and options.ShowSizes - disp 3, 'String data address: $', <..start, 16>, 13 - end if - - rept c x \\{ - if ~v\\#x eqtype 1 - r\\#x db v\\#x, 0 - else - label r\\#x byte at v\\#x - end if - \\} - \} -} - -;macro InitStringList { -; local r,v,c -; c equ 0 -; struc string [val] \{ -; \common -; rept 1 x:c+1 \\{ -; c equ x -; r\\#x equ . -; v\\#x equ val -; \\} -; \} -; -; macro __IncludeAllStrings \{ -; \common -; \local ..start -; label ..start byte -; if defined options.ShowSizes and options.ShowSizes -; disp 3, 'String data address: $', <..start, 16>, 13 -; end if -; rept c x \\{ -; \\common -; \\forward -; \\local len, i, j, f, ch1, ch2, hash, hash2 -; if ~v\\#x eqtype 1 -; virtual at 0 -; db v\\#x, 0 -; len = $ -; -; i = 0 -; hash = 1234 -; while i<len -; load ch1 byte from i -; hash = hash + ch1 -; i=i+1 -; end while -; end virtual -; -; i = ..start -; j = 0 -; f = 0 -; while i<=($-len) -; j = 0 -; f = 0 -; hash2 = 1234 -; while j<len -; load ch1 byte from i+j -; hash2=hash2+ch1 -; if hash2>=hash -; break -; end if -; j=j+1 -; end while -; -; if hash2=hash -; j=0 -; while j<len -; load ch1 byte from i+j -; virtual at 0 -; db v\\#x, 0 -; load ch2 byte from j -; end virtual -; if ch1 <> ch2 -; break -; end if -; j=j+1 -; end while -; if (ch1 =0) & (ch2 = 0) -; f = 1 -; break -; end if -; end if -; i = i + 1 -; end while -; -; if ~f -; r\\#x db v\\#x, 0 -; sizeof.#r\\#x = len -; else -; label r\\#x byte at i -; end if -; else -; label r\\#x byte at v\\#x -; end if -; \\} -; \} -;} - -InitStringList - - -macro IncludeAllGlobals { - local begin - - begin = $ - IncludeIGlobals - DispSize 'Initialized data', ($ - begin) - - begin = $ - __IncludeAllStrings - DispSize 'String data', ($ - begin) - - begin = $ - IncludeUGlobals - DispSize 'Uninitialized data', ($ - begin) -} - - +macro __InitStringEngine { +local ..hashtable, ..strbase, strlist + + virtual at 0 + ..hashtable:: + dd 65536 dup ($ffffffff) + end virtual + + strlist equ 0 + + struc text [arg] \{ + \common + rept 1 x:strlist+1 \\{ + strlist equ x + strlist\\#x equ ., arg + .@here = 0 + \\} + \} + + macro _add_one_str lbl, [dta] \{ + \common + \local ..buff, sz, h, sh, ch1, ch2, i, f + if used lbl + virtual at 0 + ..buff:: + db dta, 0 + sz = $ + end virtual + + h = $811C9DC5 + repeat sz + load ch1 byte from ..buff:(%-1) + h = ((h xor ch1) * $01000193) and $ffffffff + end repeat + + h = ((h shr 16) xor h) and $ffff + sh = h + + while 1 + load i dword from ..hashtable: h*4 + if i = $ffffffff + break + else + f = 1 + repeat sz/8 + load ch1 qword from ..buff:((%-1)*8) + load ch2 qword from $$+i+(%-1)*8 + if ch1<>ch2 + f = 0 + break + end if + end repeat + if f + repeat sz mod 8 + load ch1 byte from ..buff:((sz and $fffffff8)+(%-1)) + load ch2 byte from $$+i+(sz and $fffffff8)+(%-1) + if ch1<>ch2 + f = 0 + break + end if + end repeat + end if + if f + break + end if + end if + h = (h+1) and $ffff + if h = sh + err "Hash table full." + end if + end while + if i = $ffffffff + store dword $-$$ at ..hashtable:4*h + lbl db dta, 0 + align 4 + else + label lbl byte at i+$$ + end if + lbl\#.length = sz-1 + else + if defined options.ShowSkipped & options.ShowSkipped + display 1, 'String <', dta, '> skipped, because not used.', 13 + end if + end if + \} + + macro _IncludeAllStrings \{ + ..strbase: + rept strlist x \\{ + match onestr, _add_one_str strlist\\#x \\\{ onestr \\\} + \\} + \} +} + + +__InitStringEngine + + +macro IncludeAllGlobals { + local ..start + + align 4 + ..start = $ + disp 3, 'Initialized data address: $', <..start, 16>, 13 + IncludeIGlobals + DispSize 'Initialized data', ($ - ..start) + + align 4 + ..start = $ + disp 3, 'Strings address: $', <..start, 16>, 13 + _IncludeAllStrings + DispSize 'String data', ($ - ..start) + + align 4 + ..start = $ + disp 3, 'I18n strings data:', <..start, 16>, 13 + __IncludeI18nStrings + DispSize 'I18n strings data', ($ - ..start) + + align 4 + ..start = $ + disp 3, 'Uninitialized data address: $', <..start, 16>, 13 + IncludeUGlobals + DispSize 'Uninitialized data', ($ - ..start) + + align 4 + ..start = $ + disp 3, 'I18n strings placeholders: $', <..start, 16>, 13 + IncludeI18nLabels + DispSize 'I18n strings placeholders', ($ - ..start) +} + + + +macro var expr { +common + match name==value, expr \{ + if used name + name dd value + else + name = 0 + end if + \} +} + + +macro movx target, txt { +common + local ..txt + ..txt text txt + mov target, ..txt +} iglobal endg uglobal endg ADDED freshlib/macros/_itext.inc Index: freshlib/macros/_itext.inc ================================================================== --- /dev/null +++ freshlib/macros/_itext.inc @@ -0,0 +1,122 @@ + +; r - list with the labels +; v - list with the values +; c - counter for the strings +; lc - counter for the languages +; ll - list with the languages + +macro __InitI18nEngine { + local r, v, c, lc, lf, ll + c equ 0 + lc equ 0 + + macro _max_length lbl, [arg] \{ + \common + \local max + max=0 + \forward + virtual at 0 + match lang:text, arg \\{ + db text + if $ > max + max = $ + end if + \\} + end virtual + \common + lbl\#.maxlen = max + \} + + struc itext [val] \{ + \common + .@here = 0 + \local max + rept 1 x:c+1 \\{ + c equ x + r\\#x equ . + \\} + _max_length ., val + \forward + match lang:text, val \\{ + rept 1 x:c \\\{ + v\\\#lang\\\#x equ text + \\\} + lf equ FALSE + rept lc x:1 \\\{ + match =lang, ll\\\#x \\\\{ + lf equ TRUE + \\\\} + \\\} + match =FALSE, lf \\\{ + rept 1 x:lc+1 \\\\{ + lc equ x + ll\\\\#x equ lang + \\\\} + \\\} + \\} + \} + + macro __IncludeI18nStrings \{ + \common + + label I18nLanguages dword + rept lc y \\{ match lang, ll\\#y \\\{ + dd \\\`lang + dd Language\\\#lang + \\\} \\} + if lc>0 + dd 0 + end if + + rept lc y \\{ match lang, ll\\#y \\\{ + + times (($ + 15) and $fffffff0) - $ db 0 + + label Language\\\#lang byte + + rept c x \\\\{ + \\\\local f + f equ TRUE + match =v\\\\#lang\\\\#x, v\\\\#lang\\\\#x \\\\\{ + f equ FALSE + \\\\\} + + times (($ + 3) and $fffffffc) - $ db 0 + + match lbl1, r\\\\#x \\\\\{ + label lbl1\\\\\#.\\\\\#lang byte + \\\\\} + + match =TRUE, f \\\\\{ + db v\\\\\#lang\\\\\#x + db 0 + \\\\\} + + match lbl1, r\\\\#x \\\\\{ + match lbl2, lbl1\\\\\#.\\\\\#lang \\\\\\{ + times (lbl1\\\\\\#.maxlen - ($ - lbl2)+1) db 0 + \\\\\\} + \\\\\} + + \\\\} + Language\\\#lang\\\#.length = $ - Language\\\#lang + \\\} \\} + \} + + macro IncludeI18nLabels \{ + \common + label I18nStrings byte + + rept c x \\{ + rb (($ + 3) and $fffffffc) - $ + match lbl, r\\#x \\\{ + lbl rb lbl\\\#.maxlen + rb 1 + \\\} + \\} + + I18nStrings.length = $ - I18nStrings + \} +} + +__InitI18nEngine ADDED freshlib/macros/_minihash.inc Index: freshlib/macros/_minihash.inc ================================================================== --- /dev/null +++ freshlib/macros/_minihash.inc @@ -0,0 +1,110 @@ +; Pearsons hash function table: + +struct TPHashItem + .pKeyname dd ? ; pointer to the key name. on [.pKeyname-1] is 1 byte key length. + .Value dd ? ; user defined value of the hash table cell. +ends + +; +; Builds static Pearsons hash table. +; The table contains 256 elements of TPHashItem (in total 2048 bytes) +; +; Arguments: +; table - the lable of the hash table. +; Pfunc - table of 256 random (or not random) bytes - values of the Pearsons hash function. +; key - string that to be hashed. Pointer to this string is placed in the .pKeyname field of +; the respective record of the hash table. The hash of the key is computed case insensitive. +; value - user data. Placed in the .Value field of the respective TPHashItem element. +; +; Notice, that the table does not resolve hash collisions. If collision happens, the compilation ends +; with error. The conflict can be resolved in two ways - changing the hash function in order to +; avoid collisions, or changing the key that causes collision. +; +macro PHashTable table, Pfunc, [key, value] { +common +if used table + local ..error + ..error = 0 + + if defined options.ShowHashes & options.ShowHashes + disp 3, 'Hash table "', `table, '"', 9 + end if + + table dd 256 dup(0,0) + +forward +local ..keynm, ..len, ..hash, ..char, ..prev + + db ..len + ..keynm db key + ..len = $ - ..keynm + db 0 + + if value + ..hash = 0 + repeat ..len + load ..char byte from ..keynm + % - 1 + if ..char and $40 + ..char = ..char or $20 + end if + ..hash = ..hash xor ..char + load ..hash byte from Pfunc + ..hash + store byte ..char at ..keynm + % - 1 + end repeat + + if defined options.ShowHashes & options.ShowHashes + disp 3,'Keyword hash : ', <..hash, 10>, ' on "', key, '"', 10 + end if + + load ..prev dword from table + ..hash * 8 + + if ..prev = 0 + store dword ..keynm at table + ..hash * 8 + store dword value at table + ..hash * 8 + 4 + else + disp 2,'Hash collision: ', <..hash, 10>, ' on "', key, '"', 10 + ..error = 1 + end if + end if + +common + if defined options.ShowHashes & options.ShowHashes + disp 6, '---', 13 + end if + assert ~..error + + end if +} + +; +; Computes the Pearsons hash in the same way as PHashTable macro. +; Useful for defining constants with the hash value of some key. +; +; usage: +; MyHashConst phash PFUNK, "my_string" +; +struc phash Pfunc, key { +local ..keynm, ..len, ..hash, ..char + + virtual at 0 + ..keynm:: + db key + ..len = $ + end virtual + + ..hash = 0 + repeat ..len + load ..char byte from ..keynm:(% - 1) + if ..char and $40 + ..char = ..char or $20 + end if + ..hash = ..hash xor ..char + load ..hash byte from Pfunc + ..hash + end repeat + + if defined options.ShowHashes & options.ShowHashes + disp 3,'Keyword hash : ', <..hash, 10>, ' on "', key, '"', 10 + end if + + . = ..hash +} ADDED freshlib/macros/_realobjects.inc Index: freshlib/macros/_realobjects.inc ================================================================== --- /dev/null +++ freshlib/macros/_realobjects.inc @@ -0,0 +1,490 @@ +cParamMask = $fffe0000 +cMethodMask = $ffff0000 + + +macro __search_method flag, num, count, list, cname, method { + define flag FALSE + rept count i:1 \{ match mname, method \\{ match class | name , list\\#i \\\{ match =mname, name \\\\{ + define flag TRUE + num equ i + \\\\} \\\} \\} \} +} + + +macro object name, parent { + obj@name equ name + obj@parent equ parent + + name#.param?num = 0 + + name#@count equ 0 + + match any, parent \{ + name\#@count equ parent\#@count + rept parent\#@count i:1 \\{ + name\\#@method\\#i equ parent\\#@method\\#i + match class | mname, parent\\#@method\\#i \\\{ + name\\\#mname\\\#.arguments equ parent\\\#mname\\\#.arguments + \\\} + \\} + \} + + macro param paramname*, getval*, setval* \{ + paramname = name#.param?num or cParamMask + name#.param?num = name#.param?num + 1 + + if getval eq NONE + paramname\#.get = -1 + else + paramname\#.get = getval + end if + + if setval eq NONE ; read only + paramname\#.set = -1 + else + if setval eqtype 1 + paramname\#.set = setval + else + match name : arg, setval \\{ + paramname\\#.set = name + paramname\\#.set.arg = arg + \\} + end if + end if + \} + + macro method mname, [marg] \{ + \common + \local f1, n1 + name\#mname\#.arguments equ marg + define f1 FALSE + __search_method f1, n1, name\#@count, name\#@method, parent, mname + match =FALSE, f1 \\{ + rept 1 x:name\\#@count+1 \\\{ + name\\\#@count equ x + name\\\#@method\\\#x equ name | mname +; display 3,'New method:', \\\`name,\\\`mname, ' = ', \\\`x, 13, 10 + methods.\\\#name\\\#mname\\\#.inherited equ NONE + \\\} + \\} + match =TRUE, f1 \\{ + match num, n1 \\\{ + match class | mmname, name\\\#@method\\\#num \\\\{ + methods.\\\\#name\\\\#mname\\\\#.inherited equ methods.\\\\#class\\\\#mmname + \\\\} + name\\\#@method\\\#num equ name | mname +; display 3,'Redefinition:', \\\`name,\\\`mname, ' = ', \\\`num, 13, 10 + \\\} + \\} + \} + + macro abstract mname, [marg] \{ + \common + method mname, marg + methods.\#name\#mname = 0 + \} + + + macro name#@members \{ + macro method mname, [marg] \\{ \\} + macro abstract mname, [marg] \\{ \\} + match any, parent \\{ + parent\\#@members + \\} + purge method, abstract +} + + +endobj fix } obj_helper + +macro stack_arguments method, [arg] { +common + virtual at ebp+8 +forward + method#arg dd ? +; display 1, `method, "::::", `arg, 13 +common + end virtual +} + +macro obj_helper { + local f1 + match name, obj@name \{ + local vtable + + virtual at 0 + name dd ? ; pointer to the methods table. + name\#@members + + sizeof.\#name = $ + end virtual + + rept name\#@count i:1 \\{ + match class | meth, name\\#@method\\#i \\\{ + name\\\#meth = (i-1) or cMethodMask + f1 equ TRUE + match =class\\\#meth\\\#.arguments, class\\\#meth\\\#.arguments \\\\{ f1 equ FALSE \\\\} + match =TRUE, f1 \\\\{ + match args, class\\\\#meth\\\#.arguments \\\\\{ + stack_arguments meth, args + \\\\\} + \\\\} + \\\} + \\} + + label vtable + label vtables.\#name dword + + if used vtables.\#name\#.parent | used vtables.\#name + .parent dd 0 + end if + + match parent, obj@parent \\{ + if defined vtables.\\#parent\\#.parent + store dword vtables.\\#parent\\#.parent at .parent + end if + \\} + + if used vtables.\#name + .mcount dd name\#@count ; methods count + rept name\#@count i:1 \\{ + match class | meth, name\\#@method\\#i \\\{ + dd methods.\\\#class\\\#meth + \\\} + \\} + end if + .size = $ - vtable + \} + purge method, param + restore obj@name, obj@parent +} + + +macro method name { + local f1, f2 + define f1 TRUE + if used methods.#name + match =NONE, methods.#name#.inherited \{ + define f1 FALSE + dd 0 + \} + match =TRUE, f1 \{ + dd methods.\#name\#.inherited + \} + end if + match =name#.arguments, name#.arguments \{ + "Error! Method not defined in any object." + \} + + f2 equ FALSE + match arguments, name#.arguments \{ + f2 equ TRUE + proc methods.\#name, .self, arguments + \} + match =FALSE, f2 \{ + proc methods.\#name, .self + \} + name#.@here = 1 +} + + + +; Object manipulation macros. They all generate some assembly code and its syntax is +; designed to resemble the usual assembly language syntax. These macros are some +; kind of quasiinstructions. + +; These macros uses FreshLib in order to allocate/deallocate dynamic memory. + + + +macro create target, class, [arg] { +common + if ~target eq eax + push eax + end if + + stdcall GetMem, sizeof.#class + mov dword [eax], vtables.#class + + if ~target eq eax + mov target, eax + pop eax + end if + +reverse + if ~arg eq + pushx arg + end if +common + + if defined class#.Create & (class#.Create and $ffff0000) = cMethodMask + exec target, class#:Create + end if +} + + +macro destroy ptrObj { + if defined TObject.Destroy & (TObject.Destroy and $ffff0000) = cMethodMask + push eax + exec ptrObj, TObject:Destroy + pop eax + end if + stdcall FreeMem, ptrObj +} + + +macro exec ptrobj, method, [arg] { +common + local ind + ind equ NONE + match class:meth, method \{ + ind equ class\#.\#meth + \} + + match =NONE, ind \{ + disp 2, "Error! Invalid syntax. Use class:method.", 13, 10 + err + \} + + if defined ind & ~(ind and $ffff0000) = cMethodMask + match meth, ind \{ + disp 2, 'Error! ', \`meth, ' is not a method.', 13, 10 + err + \} + end if + +reverse + if ~arg eq + pushx arg + end if +common + if ptrobj eqtype 1 + pushd [ptrobj] + else + pushd ptrobj ; push .self argument + end if + + if ptrobj eqtype eax + mov eax, [ptrobj] + else + if ptrobj eqtype 1 + mov eax, [ptrobj] + mov eax, [eax] + else + mov eax, ptrobj + mov eax, [eax] + end if + end if + + call dword [eax+8+4*(ind and $ffff)] +} + + +macro getm target, ptrobj, method { + local ind + ind equ NONE + match class:meth, method \{ + ind equ class\#.\#meth + \} + + match =NONE, ind \{ + disp 2, "Error! Invalid syntax. Use class:method.", 13, 10 + err + \} + + if defined ind & ~(ind and $ffff0000) = cMethodMask + match meth, ind \{ + disp 2, 'Error! ', \`meth, ' is not a method.', 13, 10 + err + \} + end if + + if ~target eq eax + push eax + end if + + if ptrobj eqtype eax + mov eax, [ptrobj] + else + if ptrobj eqtype 1 + mov eax, [ptrobj] + mov eax, [eax] + else + mov eax, ptrobj + mov eax, [eax] + end if + end if + + push dword [eax+8+4*(ind and $ffff)] + pop target + + if ~target eq eax + pop eax + end if +} + + +macro inherited [arg] { +common + if ~arg eq +reverse + pushx arg +common + end if + push [.self] + call dword [.__info.start-4] +} + + + +macro get target, obj, param { +local flag + + flag equ FALSE + + match class:par, param \{ + flag equ TRUE + \} + + match =FALSE, flag \{ + disp 2, "Error! Invalid syntax. Use class:method.", 13, 10 + err + \} + + match class:par, param \{ + + if class\#.\#par\#.get < sizeof.\#class ; field + if obj eqtype eax + if target eqtype eax + mov target, [obj+class\#.\#par\#.get] + else + pushd [obj+class\#.\#par\#.get] + popd target + end if + else + if ~target eq eax + push eax + end if + if obj eqtype 1 + mov eax, [obj] + else + mov eax, obj + end if + if target eqtype eax + mov target, [eax+class\#.\#par\#.get] + else + pushd [eax+class\#.\#par\#.get] + popd target + end if + if ~target eq eax + pop eax + end if + end if + else ; by method + if ~target eq eax + push eax + end if + exec obj, class\#:\#par\#.get + if ~target eq eax + mov target, eax + pop eax + end if + end if + \} +} + + +macro set obj, param, value { +local flag + + flag equ FALSE + + match class:par, param \{ + flag equ TRUE + \} + + match =FALSE, flag \{ + disp 2, "Error! Invalid syntax. Use class:method.", 13, 10 + err + \} + + match class:par, param \{ + + if class\#.\#par\#.set < sizeof.\#class ; field + if obj eqtype eax + if value eqtype eax + mov [obj+class\#.\#par\#.set], value + else + pushd value + popd [obj+class\#.\#par\#.set] + end if + else + if value eq eax + push ecx + mov ecx, obj + mov [ecx+class\#.\#par\#.set], value + pop ecx + else + push eax + mov eax, obj + if value eqtype eax + mov [eax+class\#.\#par\#.set], value + else + pushd value + popd [eax+class\#.\#par\#.set] + end if + pop eax + end if + end if + else ; by method + push eax + if defined class\#.\#par\#.set.arg + if class\#.\#par\#.set.arg = 3 + exec obj, class\#:\#par\#.set, class\#.\#par, class\#.\#par\#.get, value + else + if class\#.\#par\#.set.arg = 2 + exec obj, class\#:\#par\#.set, class\#.\#par, value + else + if class\#.\#par\#.set.arg = 1 + exec obj, class\#:\#par\#.set, value + else + disp 2, "Error! The set method can have only 1 or 2 arguments in this implementation.", 13, 10 + err + end if + end if + end if + else + exec obj, class\#:\#par\#.set, value + end if + pop eax + end if + \} +} + + +; returns ZF = 1 if the type matches +; returns ZF = 0 if the type does not matches. + +macro istype ptrobj, class { + local ..itis, ..loop + push ecx + + if ptrobj eqtype eax ; register + if ~ptrobj eq ecx + mov ecx, ptrobj + end if + else + mov ecx, ptrobj + end if + + test ecx, ecx + +..loop: + mov ecx, [ecx] ; get vtable, or the parent vtable + jecxz ..itis ; if jump, ZF=0 + cmp ecx, vtables.#class + jne ..loop +; here ZF = 1 +..itis: + pop ecx +} Index: freshlib/macros/_stdcall.inc ================================================================== --- freshlib/macros/_stdcall.inc +++ freshlib/macros/_stdcall.inc @@ -1,9 +1,19 @@ -;----------------------------------------- -; This file is part of Fresh standard -; macro library. -;----------------------------------------- +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Macros for create and call of high level procedures. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + macro locals { local ..locsize locsize equ ..locsize virtual at ebp - ..locsize - .__info.commonframe.size @@ -23,21 +33,26 @@ macro err@endp { } -macro proc name, [arg] { +macro proc2 name, [arg] { common - \err@endp + err@endp macro err@endp \{ end if - Missing 'endp' or 'endwp' before the procedure. + Missing 'endp' before the procedure. \} - name: + if defined options.AlignCode & options.AlignCode + align 16 + end if + + label name .__info.id = 1 + .__info.start = $ virtual at ebp+8 if ~ arg eq forward arg dd ? @@ -49,18 +64,47 @@ .__info.argsize = $-ebp-8 end virtual if ~ used name if defined options.ShowSkipped & options.ShowSkipped - display 1,'Procedure skiped: ',`name, $0d, $0a + display 1,'Procedure skipped: ',`name, $0d, $0a end if else virtual at ebp - .__info.commonframe.size .__info.commonframe.begin: } + +macro doas name1, name2, [arg] { +common + proc2 name1, arg +} + + +macro proc name, [arg] { +common + local ..norm + + define ..norm TRUE + + match pname =as iface, name \{ + define ..norm FALSE + + if ~defined interfaces.\#iface + ERROR! Not defined \`iface interface. + end if + match interface, interface@\#iface \\{ + doas pname, interface + \\} + \} + + match =TRUE, ..norm \{ + proc2 name, arg + \} +} + macro begin { rb (4 - ($ - .__info.commonframe.begin) and 11b) and 11b .__info.commonframe.size = $ - .__info.commonframe.begin end virtual @@ -118,82 +162,112 @@ macro endp { .__info.framesize = maxsize + .__info.commonframe.size + .__info.codesize = $ - .__info.start end if restore maxsize purge err@endp } - - - - -macro __InitInitializeEngine { - local i,f,ci,cf - ci equ 0 - cf equ 0 - - macro initialize procname \{ - \common - rept 1 x:ci+1 \\{ - ci equ x - i\\#x equ procname - proc procname - \\} - \} - - macro finalize procname \{ - \common - rept 1 x:cf+1 \\{ - cf equ x - f\\#x equ procname - proc procname - \\} - \} - - - macro InitializeAll \{ - \common - rept ci x \\{ - \\forward - call i\\#x - \\} - \} - - macro FinalizeAll \{ - \common - rept cf x \\{ - \\reverse - call f\\#x - \\} - \} -} - -__InitInitializeEngine +; Defines procedure interface, separate from the procedure body. Useful for +; portable libraries, where the body is an OS dependent, but the interface should not. +; Must be defined prior to the "body" definition. + +macro interface name, [arg] { +common + \interface@#name equ name, arg + interfaces.#name = 1 +} + +; Defines procedure body, for already defined interface. + +macro body name { + if ~defined interfaces.#name + ERROR! Not defined interface for `name procedure. + end if + match interface, interface@#name \{ proc interface \} +} + + +macro event name, [arg] { +common + name dd ? + interfaces.#name = 1 + interface@#name equ name +forward + match var, interface@#name \{ \interface@#name equ var, .#arg \} +} + + ;***************************************** ; Call macroses ;***************************************** + + +macro pushx [arg] { +common + local f1, f2, cnt, sz + cnt = 0 + sz = 0 + f1 = 1 + f2 equ FALSE +forward + match any, arg \{ + match `arg, arg \\{ f2 equ TRUE \\} + \} + + cnt = cnt + 1 + if arg eqtype '' + virtual at 0 + db arg + sz = sz + $ + end virtual + end if + +common + local lbl + + match =txt string, arg \{ + f1 = 0 + lbl text string + f2 equ FALSE + \} + + if (sz > 4) | (cnt>1) + f1 = 0 + end if + + if f1 + pushd arg + else + pushd lbl + end if + match =TRUE, f2 \{ lbl text arg \} +} + + + macro stdcall proc, [arg] { ; call procedure common local ..argsize ..argsize = 0 if ~ arg eq reverse - pushd arg + pushx arg ..argsize = ..argsize + 4 common end if if defined options.CheckArguments & options.CheckArguments - if (defined proc#.__info.argsize) & (proc#.__info.argsize <> ..argsize) - ERROR! wrong argument count for procedure call. + if (proc eqtype 1) & (defined proc#.__info.argsize) & (proc#.__info.argsize <> ..argsize) + display 1, 'Warning! Argument count on call of: <<',`proc, '>> ', $0d end if end if call proc } @@ -201,35 +275,78 @@ macro invoke proc,[arg] { ; invoke procedure (indirect) common if ~ arg eq reverse - pushd arg + pushx arg common end if call [proc] } -macro ccall proc,[arg] ; call procedure in C calling convention - { common local ..size +macro ccall proc,[arg] { ; call procedure in C calling convention +common local ..size ..size = 0 - reverse - pushd arg +reverse + pushx arg ..size = ..size+4 - common +common call proc - add esp,..size } - -macro cinvoke proc,[arg] ; invoke procedure (indirect) - { common - if ~ arg eq - ccall [proc],arg - else - call [proc] - end if } - + if defined proc#.__info.argsize + if proc#.__info.argsize > 0 + add esp, proc#.__info.argsize + end if + else + if ..size > 0 + add esp,..size + end if + end if +} + + +macro cinvoke proc, [arg] { ; invoke procedure (indirect) +common local ..size, ..ofs + ..size = 0 + + if ~ arg eq +reverse + ..size = ..size + 4 + +common + end if + + if defined options.AlignStackExt & options.AlignStackExt + mov [esp-$10], esp + mov [esp-$0c], esp + mov [esp-$08], esp + mov [esp-$04], esp + + sub esp, ..size + 4 + and esp, $fffffff0 + + if ..size > 0 + add esp, ..size + end if + end if + + if ..size > 0 +reverse + pushx arg +common + end if + + call [proc] + + if ..size > 0 + add esp, ..size + end if + + if defined options.AlignStackExt & options.AlignStackExt + mov esp, [esp] + end if +} ;**************************************** ; INT3 break point, when first = second. ;**************************************** Index: freshlib/macros/_struct.inc ================================================================== --- freshlib/macros/_struct.inc +++ freshlib/macros/_struct.inc @@ -1,23 +1,47 @@ -; structure definition helper +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Macro to make complex data structures. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ macro struct name { - macro name@struct \{ name name \} - macro size@struct \{ sizeof.#name = $ \} + macro name@struct \{ + virtual at 0 + name name + sizeof.#name = $ + end virtual + \} + struc name \{ +} + + +macro rstruct name { + macro name@struct \{ + \local ..start, ..size + virtual at -..size + ..start: + name name + ..size = $ - ..start + sizeof.#name = ..size + end virtual + \} struc name \{ } ends fix } struct_helper macro struct_helper { - virtual at 0 - name@struct - size@struct - end virtual + name@struct purge name@struc - purge size@struct } - - ADDED freshlib/macros/_uniquelists.inc Index: freshlib/macros/_uniquelists.inc ================================================================== --- /dev/null +++ freshlib/macros/_uniquelists.inc @@ -0,0 +1,91 @@ +; list - name of the list. +; list@count - count of the list items. + +macro __search_list flag, list, item { +forward + flag equ FALSE + rept list#@count i:1 \{ match iitem, item \\{ match =iitem, list\\#i \\\{ define flag TRUE \\\} \\} \} +} + + +macro ppAddUniqueList list, [listitem] { +forward + local fFound + __search_list fFound, list, listitem + match =FALSE, fFound \{ + rept 1 x:list#\@count+1 \\{ + list\\#@count equ x + list\\#x equ listitem + \\} + \} +} + +macro ppInitList list { + list#@count equ 0 +} + + + +macro __InitInitializeEngine { + local i,f,ci,cf + ci equ 0 + cf equ 0 + + macro add_initialize procname \{ + \common + rept 1 x:ci+1 \\{ + ci equ x + i\\#x equ procname + \\} + \} + + macro add_finalize procname \{ + \common + rept 1 x:cf+1 \\{ + cf equ x + f\\#x equ procname + \\} + \} + + macro initialize procname \{ + \common + rept 1 x:ci+1 \\{ + ci equ x + i\\#x equ procname + proc procname + \\} + \} + + macro finalize procname \{ + \common + rept 1 x:cf+1 \\{ + cf equ x + f\\#x equ procname + proc procname + \\} + \} + + + macro InitializeAll \{ + \common + rept ci x \\{ + \\forward + if defined i\\#x + call i\\#x + end if + \\} + \} + + macro FinalizeAll \{ + \common + rept cf x \\{ + \\reverse + if defined f\\#x + call f\\#x + end if + \\} + \} +} + +__InitInitializeEngine + Index: freshlib/macros/allmacros.inc ================================================================== --- freshlib/macros/allmacros.inc +++ freshlib/macros/allmacros.inc @@ -1,7 +1,27 @@ -include '_struct.inc' +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Includes all macro libraries at once. +; +; Target OS: +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +include '_uniquelists.inc' +include '_executable.inc' include '_stdcall.inc' +include '_struct.inc' include '_display.inc' +include '_itext.inc' include '_globals.inc' include '_datamacros.inc' +include '_dispatch.inc' +include '_realobjects.inc' +include '_minihash.inc' include '%TargetOS%/allmacros.inc' DELETED freshlib/mouse/Linux/mouse.asm Index: freshlib/mouse/Linux/mouse.asm ================================================================== --- freshlib/mouse/Linux/mouse.asm +++ /dev/null @@ -1,22 +0,0 @@ -proc SetMouseCursor, .hCursor -begin - push ecx edx - cinvoke XRootWindow, [hApplicationDisplay], 0 - cinvoke XDefineCursor, [hApplicationDisplay], eax, [.hCursor] - pop edx ecx - return -endp - - -proc GetStockCursor, .index -begin - push ecx edx - mov eax, [.index] - and eax, 7 - movzx eax, [_cursors+eax] - cinvoke XCreateFontCursor, [hApplicationDisplay], eax - pop edx ecx - return -endp - -_cursors db 68, 152, 34, 108, 116, 40, 40, 150 ; X standard cursor font DELETED freshlib/mouse/Win32/mouse.asm Index: freshlib/mouse/Win32/mouse.asm ================================================================== --- freshlib/mouse/Win32/mouse.asm +++ /dev/null @@ -1,28 +0,0 @@ -; OS depending part of mouse library. -; It provides needed cursors. -; -; ToDo: Arbitrary mouse cursors, B&W for the begining. - -proc SetMouseCursor, .hCursor -begin - push ecx edx - invoke SetCursor, [.hCursor] - pop edx ecx - return -endp - - -proc GetStockCursor, .index -begin - push ecx edx - mov eax, [.index] - and eax, 7 - movzx eax, [_cursors+2*eax] - invoke LoadCursor, 0, eax - pop edx ecx - return -endp - - -_cursors dw IDC_ARROW, IDC_IBEAM, IDC_CROSS, IDC_SIZEWE, IDC_SIZENS, IDC_SIZENWSE, IDC_SIZENESW, IDC_WAIT - DELETED freshlib/mouse/mouse.asm Index: freshlib/mouse/mouse.asm ================================================================== --- freshlib/mouse/mouse.asm +++ /dev/null @@ -1,10 +0,0 @@ -mcArrow = 0 -mcText = 1 -mcCross = 2 -mcSizeH = 3 -mcSizeV = 4 -mcSizeUL_LR = 5 -mcSizeLL_UR = 6 -mcWait = 7 - -include '%TargetOS%/mouse.asm' Index: freshlib/readme.txt ================================================================== --- freshlib/readme.txt +++ freshlib/readme.txt @@ -1,10 +1,40 @@ -FreshLib is standard Fresh library, containing macros, + _______________________________________________________________________________________ +| | +| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +| | +| (c)2003, 2004, 2005, 2010, 2011, 2012 Fresh developement team | +|_______________________________________________________________________________________| + +FreshLib is standard Fresh IDE library. FreshLib contains macros, equates and code to allow writing of portable applications. -The test project, that uses FreshLib is "TestFreshLib.fpr" -You can compile and run it as Win32, or as Linux application. +FreshLib is free, open source project, distributed under the terms of +"BSD 2-clause license". The text of the license is in the file "License.txt" + +FreshLib is created and maintained by Fresh development team. Every member of the team +have some contribution to the project. Here is the list of people contributed to the +project (in order of appearance; newer first): + +vid +pelaillo +scientica (Fredrik Klasson) +tommy (Tommy Lilehagen) +VeSCeRa (Yunus Sina Gulsen) +roticv (Victor Loh) +decard (Mateusz Tymek) +John Found + +Special thanks to Tomasz Grysztar for creating FASM. +Tomasz also provided some really useful macros. +_________________________________________________________________________________________ + +For additional information about Fresh and FreshLib, look at following locations: + +http://fresh.flatassembler.net - main site of the project Fresh. +http://board.flatassembler.net - Flat assembler message board. +_________________________________________________________________________________________ -In order to use FreshLib in your application you have to define -"lib" directory alias, either in the Fresh global aliases: -"Options|IDE options|Directories", -or project specific one in "Project|Project options". +The test project for FreshLib is "TestFreshLib.fpr" +You can compile and run it as Win32, or as Linux application. +Use Fresh IDE or compile TestLib.asm file with FASM compiler. + ADDED freshlib/simpledebug/Dummy/debug.asm Index: freshlib/simpledebug/Dummy/debug.asm ================================================================== --- /dev/null +++ freshlib/simpledebug/Dummy/debug.asm @@ -0,0 +1,34 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SimpleDebug library. +; +; Target OS: Dummy +; +; Dependencies: Not dependent on other libraries. +; +; Notes: +;_________________________________________________________________________________________ + + +proc Output, .ptrStr +begin + pushad + popad + return +endp + + + +proc GetTimestamp +begin + pushad + popad + return +endp + + + + ADDED freshlib/simpledebug/KolibriOS/debug.asm Index: freshlib/simpledebug/KolibriOS/debug.asm ================================================================== --- /dev/null +++ freshlib/simpledebug/KolibriOS/debug.asm @@ -0,0 +1,471 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license. | +;|_______________________________________________________________________________________| +; +; Description: SimpleDebug library. +; +; Target OS: KolibriOS +; +; Dependencies: Not dependent on other libraries. +; +; Notes: +;_________________________________________________________________________________________ + +DBG_CHAR_NEWLINE equ $0d, $0a + +CONSOLE_X_SIZE = 128 +CONSOLE_X_SHIFT = 7 + +CONSOLE_Y_SIZE = 256 +CONSOLE_Y_SHIFT = 8 + +FONT_HEIGHT = 9 +FONT_WIDTH = 6 + +CONSOLE_TEXT_COLOR = $00000000 +CONSOLE_BG_COLOR = $fffff0 + + +if used CharOut | used STDIN | used STDOUT | used STDERR +initialize InitConsole +begin + mov eax, sys_threads + mov ebx, 1 + mov ecx, ConsoleThread + mov edx, ConsoleSP + int $40 + + mov [hConsoleThread], eax + + return +endp + +end if + + +uglobal + if used ConsoleSP + rd 16383 + ConsoleSP dd ? + end if + + if used DebugBuffer + xDebugBuffer dd ? ; current X position + yDebugBuffer dd ? ; current Y position + rDebugBuffer dd ? ; the top row of the console + sDebugBuffer dd ? ; start of the debug buffer. + fDebugRefresh dd ? ; flag that the console needs refresh. + + hConsoleThread dd ? + + DebugBuffer rb CONSOLE_X_SIZE * CONSOLE_Y_SIZE + + KeyboardHead dd 0 + KeyboardTail dd 0 + KeyboardBuffer rb 1024 + end if +endg + + + +proc Output, .ptrString +begin + push eax esi + + mov esi, [.ptrString] + +.loop: + lodsb + + test al, al + jz .end_output + + stdcall CharOut, eax + jmp .loop + +.end_output: + pop esi eax + return +endp + + +; this one writes to the KolibriOS debug message board. + +;proc Output, .ptrStr +;begin +; pushad +; +; mov esi, [.ptrStr] +; mov eax, sys_msg_board +; mov ebx, 1 +; +;.loop: +; mov cl, [esi] +; test cl,cl +; jz .finish +; lea esi, [esi+1] +; int $40 +; jmp .loop +; +;.finish: +; popad +; return +;endp + + + +proc GetTimestamp +begin + pushad + + mov eax, sys_getsetup + mov ebx, 9 + int $40 + + imul eax, 10 ; in [ms] + mov [esp+4*regEAX], eax + popad + return +endp + + +proc GetFineTimestamp +begin + return +endp + + + +proc ConsoleThread +.info __TThreadInfo +begin + mov eax, sys_process_def + mov ebx, 1 + mov ecx, 0 + int $40 + + stdcall DrawConsole, 1 + + mov eax, sys_set_app_param + mov ebx, emaskRedraw or emaskGUIButton or emaskKeyboard or emaskMouse or emaskNetwork + int $40 + +.event_loop: + cmp [fDebugRefresh], 0 + jne .redraw + + mov eax, sys_wait_event_timeout + mov ebx, 1 + int $40 + + test eax, eax + jz .event_loop + + cmp eax, eventRedraw + je .redraw + + cmp eax, eventKeyboard + je .keyboard + + cmp eax, eventGUIButton + je .button + + cmp eax, eventMouse + je .mouse + + cmp eax, eventNetwork + je .network + + jmp .event_loop + +.network: + jmp .event_loop + + +.redraw: + stdcall DrawConsole, [fDebugRefresh] + mov [fDebugRefresh], 0 + jmp .event_loop + +.keyboard: + mov eax, sys_getkey + int $40 + +; jmp .ascii +; +; cmp eax, 1 +; je .event_loop +; +; test al, al +; jz .ascii +; +; cmp ah, keyUp +; je .up1 +; cmp ah, keyDown +; je .dn1 +; cmp ah, keyPgUp +; je .up2 +; cmp ah, keyPgDown +; je .dn2 +; +; jmp .event_loop +; +;.ascii: + + mov ebx, [KeyboardHead] + mov ecx, ebx + + inc ebx + and ebx, $fff + cmp ebx, [KeyboardTail] ; overflow? Don't store then. + je .event_loop + + mov [KeyboardBuffer+ecx], ah + mov [KeyboardHead], ebx + + movzx eax, ah + stdcall CharOut, eax + + jmp .event_loop + +.up1: + mov eax, -1 + jmp .scroll + +.dn1: + mov eax, 1 + jmp .scroll + +.up2: + call .get_info + neg eax + jmp .scroll + +.dn2: + call .get_info + jmp .scroll + +.mouse: + mov eax, sys_readmousepos + mov ebx, 7 + int $40 + cwde + shl eax, 1 + +.scroll: + mov edx, [rDebugBuffer] + + test eax, eax + jz .event_loop + js .minusloop + +.plusloop: + inc edx + and edx, CONSOLE_Y_SIZE - 1 + cmp edx, [sDebugBuffer] + je .redraw + mov [rDebugBuffer], edx + dec eax + jnz .plusloop + jmp .redraw + +.minusloop: + dec edx + and edx, CONSOLE_Y_SIZE - 1 + mov ecx, [sDebugBuffer] + dec ecx + and ecx, CONSOLE_Y_SIZE - 1 + cmp edx, ecx + je .redraw + mov [rDebugBuffer], edx + inc eax + jnz .minusloop + jmp .redraw + +.button: + mov eax, sys_getbutton + int $40 + + cmp ah, 1 + jne .event_loop + +.finish: + mov eax, sys_end + int $40 + + +.get_info: + mov eax, sys_cpuusage + lea ebx, [.info] + mov ecx, -1 + int $40 + + mov eax, [.info.ClientHeight] + cdq + mov ecx, FONT_HEIGHT + sub eax, ecx + div ecx + retn + + +endp + + + + + + +cDebugWindowHeader text 'FreshLib console' + + +proc DrawConsole, .fScroll +.info __TThreadInfo +begin +; start draw + mov eax, 12 + mov ebx, 1 + int $40 + +; draw standard elements. + mov eax, sys_drawwindow + mov ebx, 480+8 + mov ecx, 320+32 + mov edx, $33000000 or CONSOLE_BG_COLOR + mov edi, cDebugWindowHeader + int $40 + +; draw the text from the buffer + +; get the window size: + mov eax, sys_cpuusage + lea ebx, [.info] + mov ecx, -1 + int $40 + + sub [.info.ClientHeight], FONT_HEIGHT + +; check for scroll + cmp [.fScroll], 0 + je .scrollok + + mov eax, [.info.ClientHeight] + cdq + mov ecx, FONT_HEIGHT + div ecx + + mov edx, [yDebugBuffer] + sub edx, [rDebugBuffer] + and edx, CONSOLE_Y_SIZE - 1 + + cmp edx, eax + jbe .scrollok + + sub edx, eax + add [rDebugBuffer], edx + +.scrollok: + mov eax, sys_writetext + xor ebx, ebx + mov ecx, CONSOLE_TEXT_COLOR ; text color and options. + mov edi, [rDebugBuffer] + mov esi, CONSOLE_X_SIZE + +.text_loop: + mov edx, edi + shl edx, CONSOLE_X_SHIFT + add edx, DebugBuffer + + int $40 + + inc edi + and edi, CONSOLE_Y_SIZE - 1 + cmp edi, [sDebugBuffer] + je .text_ok + + add ebx, FONT_HEIGHT + cmp ebx, [.info.ClientHeight] + jbe .text_loop + +.text_ok: + mov eax, 12 + mov ebx, 2 + int $40 + return +endp + + + + + +proc CharOut, .char +begin + pushad + + mov ecx, [xDebugBuffer] + mov edx, [yDebugBuffer] + + mov eax, [.char] + + cmp al, $20 + jb .control + +.charout: + mov edi, edx + shl edi, CONSOLE_X_SHIFT + add edi, ecx + mov [edi+DebugBuffer], al + + inc ecx + cmp ecx, CONSOLE_X_SIZE + jb .end_output + + xor ecx, ecx +.LF: + inc edx + and edx, CONSOLE_Y_SIZE - 1 + + cmp edx, [sDebugBuffer] + jne @f + inc [sDebugBuffer] + and [sDebugBuffer], CONSOLE_Y_SIZE - 1 +@@: + call .clearEOL + +.end_output: + mov [xDebugBuffer], ecx + mov [yDebugBuffer], edx + mov [fDebugRefresh], 1 + + popad + return + +.control: + cmp al, $0d + je .CR + cmp al, $0a + je .LF + + mov al, '.' ; replace ctrl code with "." + jmp .charout + +.CR: + xor ecx, ecx + jmp .end_output + +; clear the row. +.clearEOL: + xor eax, eax + mov edi, edx + shl edi, CONSOLE_X_SHIFT + add edi, ecx + add edi, DebugBuffer + push ecx + mov ecx, CONSOLE_X_SIZE / 4 + rep stosd + pop ecx + retn +endp + + + Index: freshlib/simpledebug/Linux/debug.asm ================================================================== --- freshlib/simpledebug/Linux/debug.asm +++ freshlib/simpledebug/Linux/debug.asm @@ -1,44 +1,105 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SimpleDebug library. +; +; Target OS: Linux +; +; Dependencies: Not dependent on other libraries. +; +; Notes: +;_________________________________________________________________________________________ + +DBG_CHAR_NEWLINE equ $0a + + + proc Output, .ptrStr begin pushad stdcall __simpStrLength, [.ptrStr] mov edx, ecx mov eax, 4 - mov ebx, 1 + mov ebx, 2 + mov ecx, [.ptrStr] + int $80 + + popad + return +endp + + +proc OutputSz, .ptrStr, .size +begin + pushad + + mov edx, [.size] + mov eax, 4 + mov ebx, 2 mov ecx, [.ptrStr] int $80 popad return endp -proc GetTimestamp +macro OutputEvent event { +if defined options.DebugMode & options.DebugMode + stdcall __OutputEvent, event +end if +} + +proc __OutputEvent, .pEvent begin pushad - mov eax, 78 - mov ebx, _timestamp - xor ecx, ecx - int $80 - - mov eax,dword [_timestamp] - mov ecx,1000 - mul ecx - mov ebx,eax - mov eax,dword [_timestamp+4] - div ecx - add eax,ebx - - mov [esp+4*regEAX], eax + stdcall Output, cEventLabel + mov esi, [.pEvent] + mov eax, [esi+XEvent.type] + cmp eax, 2 + jl .bynumber + cmp eax, 35 + jg .bynumber + + sub eax, 2 + mov eax, [__EventStrings+4*eax] + stdcall Output, eax + stdcall Output, cEventLabel1 + +.window: + mov eax, [esi+XEvent.type] + stdcall OutputNumber, eax, 10, 3 + stdcall Output, cEventLabel2 + stdcall OutputNumber, [esi+XEvent.window], 16, 8 + stdcall Output, cEventLabel3 + popad return +.bynumber: + stdcall OutputNumber, eax, 10, 3 + jmp .window + endp -uglobal - _timestamp dq 0 -endg +if used __OutputEvent + cEventLabel db 'X event: "', 0 + cEventLabel1 db ' (', 0 + cEventLabel2 db ')" for window: $', 0 + cEventLabel3 db 10, 0 + ; From number 2..35 + __EventStrings: + StringTable \ + `KeyPress, `KeyRelease, `ButtonPress, `ButtonRelease, `MotionNotify, `EnterNotify, \ + `LeaveNotify, `FocusIn, `FocusOut, `KeymapNotify, `Expose, `GraphicsExpose, `NoExpose, \ + `VisibilityNotify, `CreateNotify, `DestroyNotify, `UnmapNotify, `MapNotify, `MapRequest, \ + `ReparentNotify, `ConfigureNotify, `ConfigureRequest, `GravityNotify, `ResizeRequest, \ + `CirculateNotify, `CirculateRequest, `PropertyNotify, `SelectionClear, `SelectionRequest, \ + `SelectionNotify, `ColormapNotify, `ClientMessage, `MappingNotify, `LASTEvent +end if Index: freshlib/simpledebug/Win32/debug.asm ================================================================== --- freshlib/simpledebug/Win32/debug.asm +++ freshlib/simpledebug/Win32/debug.asm @@ -1,46 +1,89 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SimpleDebug library. +; +; Target OS: Win32 +; +; Dependencies: Not dependent on other libraries. +; +; Notes: +;_________________________________________________________________________________________ + +DBG_CHAR_NEWLINE equ $0d, $0a + uglobal - debug_con_handle dd ? + if used debug_con_handle + debug_con_handle dd ? + end if endg iglobal - cConsoleTitle text 'Fresh simple debug console.' + if used cConsoleTitle + cConsoleTitle du 'Fresh simple debug console.', 0 + end if endg +if (defined options.DebugMode & options.DebugMode) | used Output | (defined options.DebugMode.ShowFPS & options.DebugMode.ShowFPS) initialize InitDebugConsole begin invoke AllocConsole - invoke GetStdHandle, STD_OUTPUT_HANDLE + invoke GetStdHandle, STD_ERROR_HANDLE mov [debug_con_handle], eax - invoke SetConsoleTitle, cConsoleTitle + invoke SetConsoleTitleW, cConsoleTitle + return +endp +end if + + +if (defined options.DebugMode & options.DebugMode) | used Output | (defined options.DebugMode.ShowFPS & options.DebugMode.ShowFPS) +finalize FinishDebugConsole +.string rb 10 +begin + invoke WriteFile, [STDERR], ___CloseMsg, ___CloseMsg.length, 0, 0 + lea eax, [.string] + invoke ReadFile, [STDIN], eax, 1, 0, 0 return endp +___CloseMsg text "Press ENTER to close." +end if + +maxConsoleWrite = 1024 proc Output, .ptrStr .dummy dd ? begin pushad stdcall __simpStrLength, [.ptrStr] - lea eax, [.dummy] - invoke WriteConsole, [debug_con_handle], [.ptrStr], ecx, eax, 0 - - popad - return -endp - - - -proc GetTimestamp -begin - pushad - invoke GetTickCount - mov [esp+4*regEAX], eax + mov ebx, ecx + +.loop: + mov ecx, ebx + cmp ecx, maxConsoleWrite + jb @f + mov ecx, maxConsoleWrite +@@: + sub ebx, ecx + + push ecx + lea eax, [.dummy] + invoke WriteConsoleA, [debug_con_handle], [.ptrStr], ecx, eax, 0 + pop ecx + add [.ptrStr], ecx + + test ebx, ebx + jnz .loop + +.finish: popad return endp Index: freshlib/simpledebug/debug.asm ================================================================== --- freshlib/simpledebug/debug.asm +++ freshlib/simpledebug/debug.asm @@ -1,16 +1,240 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: SimpleDebug library. Provides simple debugging macros and code. +; +; Target OS: Any +; +; Dependencies: Not dependent on other libraries. +; +; Notes: use options.DebugMode={1|0} to enable/disable debug output of this library. +;_________________________________________________________________________________________ +module "Simple debug library" + +SimpleDebugLoaded = 1 + include "%TargetOS%/debug.asm" + + +match =DBG_CHAR_NEWLINE, DBG_CHAR_NEWLINE { + DBG_CHAR_NEWLINE equ $0d, $0a +} + + +cDbgNewLine text DBG_CHAR_NEWLINE, 0 + + +macro dbrk { +if defined options.DebugBreaks & options.DebugBreaks + int3 + nop +end if +} + macro DebugMsg msg { -local ..msg, ..skip +common +if defined options.DebugMode & options.DebugMode + local ..msg, ..skip - stdcall Output, ..msg - jmp ..skip -..msg db msg, 10, 0 + stdcall DebugLock -label ..skip + stdcall Output, ..msg + jmp ..skip + label ..msg byte + if ~msg eq + db msg + end if + db DBG_CHAR_NEWLINE, 0 + + label ..skip + + stdcall DebugUnlock +end if +} + + +macro Message msg { +common + local ..msg, ..skip + + stdcall Output, ..msg + jmp ..skip + ..msg db msg, DBG_CHAR_NEWLINE, 0 + + label ..skip +} + + + +macro Output string { +if defined options.DebugMode & options.DebugMode = 1 + stdcall Output, string +end if +} + + +macro OutputLn string { +if defined options.DebugMode & options.DebugMode = 1 +if ~string eq + stdcall Output, string +end if + stdcall Output, <txt DBG_CHAR_NEWLINE> +end if +} + + + +proc OutputMemory, .ptr, .size +begin + pushad + + mov esi, [.ptr] + mov edx, [.size] + +.loop: + stdcall OutputNumber, esi, 16, 8 + stdcall Output, .cSimpDbgSep1 + + mov ecx, 4 + +.lineloop: + stdcall OutputNumber, [esi], 16, 8 + stdcall Output, .cSimpDbgSep2 + lea esi, [esi+4] + + sub edx, 4 + cmp edx, 0 + jle .exit + + dec ecx + jnz .lineloop + +.exit: + stdcall Output, .cSimpDbgNewLine + + cmp edx, 0 + jg .loop + + stdcall Output, .cSimpDbgNewLine + + popad + return + +.cSimpDbgSep1 db ': ',0 +.cSimpDbgSep2 db ' ',0 +.cSimpDbgNewLine db DBG_CHAR_NEWLINE,0 + + +endp + +macro OutputMemory pointer, size { +if defined options.DebugMode & options.DebugMode + stdcall OutputMemory, pointer, size +end if +} + + +proc OutputMemoryByte, .ptr, .size +.buffer dd ? +begin + pushad + + mov esi, [.ptr] + mov edx, [.size] + +.loop: + mov eax, esi + sub eax, [.ptr] + stdcall OutputNumber, eax, 16, 8 + stdcall Output, .cSimpDbgSep1 + + mov ecx, 16 + + push esi edx + +.lineloop1: + movzx eax, byte [esi] + + stdcall OutputNumber, eax, 16, 2 + stdcall Output, .cSimpDbgSep2 + + inc esi + dec edx + dec ecx + jz .ascii + + test edx, edx + jnz .lineloop1 + + +.align_loop: + jecxz .ascii + + stdcall Output, .cSimpDbgSep3 + dec ecx + jnz .align_loop + + +.ascii: + stdcall Output, .cSimpDbgSep1 + + mov ecx, 16 + pop edx esi + +.lineloop2: + + xor eax, eax + mov al, [esi] + mov ah, " " + + cmp al, ah + jae @f + mov al, "." +@@: + mov [.buffer], eax + + lea eax, [.buffer] + stdcall Output, eax + + inc esi + dec edx + dec ecx + jz .exit + + test edx, edx + jnz .lineloop2 + + +.exit: + stdcall Output, .cSimpDbgNewLine + + cmp edx, 0 + jne .loop + + stdcall Output, .cSimpDbgNewLine + + popad + return + +.cSimpDbgSep1 db ': ',0 +.cSimpDbgSep2 db ' ',0 +.cSimpDbgSep3 db ' ',0 +.cSimpDbgNewLine db DBG_CHAR_NEWLINE,0 + + +endp + + +macro OutputMemoryByte pointer, size { +if defined options.DebugMode & options.DebugMode + stdcall OutputMemoryByte, pointer, size +end if } proc OutputNumber, .number, .radix, .digits @@ -22,32 +246,41 @@ mov eax, [.number] mov ecx, [.radix] mov esi, [.digits] + test esi, esi + jz .varU + jns .fixed + + call __simpNumToStr + jmp .end + +.varU: + call __simpNumToStrU + jmp .end + +.fixed: call __simpNumToStrUF + +.end: xor eax, eax stosd - stdcall Output, __simpdebugstr + stdcall Output, _simpdebugstr .exit: popad return endp - - -regEDI = 0 -regESI = 1 -regEBP = 2 -regESP = 3 -regEBX = 4 -regEDX = 5 -regECX = 6 -regEAX = 7 +macro OutputNumber number, radix, digits { +if defined options.DebugMode & options.DebugMode + stdcall OutputNumber, number, radix, digits +end if +} proc OutputRegister, .reg, .radix begin @@ -66,18 +299,21 @@ mov eax, [esp+4*ebx] mov ecx, [.radix] mov esi, 8 call __simpNumToStrUF - mov eax, $0a + mov eax, dword [.tempstr] stosd stdcall Output, _simpdebugstr .exit: popad return + .tempstr db DBG_CHAR_NEWLINE + dd 0 + align 4 .regnames: dd 'edi=' dd 'esi=' dd 'ebp=' @@ -86,33 +322,119 @@ dd 'edx=' dd 'ecx=' dd 'eax=' endp + + +macro OutputRegister reg, radix { +if defined options.DebugMode & options.DebugMode + stdcall OutputRegister, reg, radix +end if +} + + +macro OutputRect x, y, width, height { +if defined options.DebugMode & options.DebugMode + local ..crlf, ..skip, ..ss + + stdcall Output, 'Rectangle: x=' + stdcall OutputNumber, x, 10, -1 + stdcall Output, ..ss + stdcall OutputNumber, y, 10, -1 + stdcall Output, ' width=' + stdcall OutputNumber, width, 10, -1 + stdcall Output, ' height=' + stdcall OutputNumber, height, 10, -1 + stdcall Output, ..crlf + jmp ..skip + ..crlf db DBG_CHAR_NEWLINE, 00 + ..ss db ' y=', 0 +label ..skip +end if +} + + +macro OutputValue lbl, val, radix, digits { +if defined options.DebugMode & options.DebugMode + local ..crlf, ..txt, ..skip + + stdcall DebugLock + + stdcall Output, ..txt + stdcall OutputNumber, val, radix, digits + stdcall Output, ..crlf + jmp ..skip + + ..txt db lbl, 0 + ..crlf db DBG_CHAR_NEWLINE, 00 + +label ..skip + stdcall DebugUnlock +end if +} + + + +macro OutputCallStack depth { +if defined options.DebugMode & options.DebugMode + local ..txt, ..skip, ..loop + + pushf + pushad + + stdcall DebugLock + + mov ecx, depth + +..loop: + stdcall OutputNumber, [ebp+4], 16, 8 + stdcall Output, ..txt + + mov ebp, [ebp] + dec ecx + jnz ..loop + jmp ..skip + + ..txt db 'h', DBG_CHAR_NEWLINE, 00 + +..skip: + stdcall DebugUnlock + + + popad + popf +end if +} + + + + + uglobal if used _simpdebugstr _simpdebugstr rb 256 end if endg - - - - proc __simpStrLength;, .pString begin mov ecx, [esp+4] + jecxz .ret + .scan: cmp byte [ecx], 0 lea ecx, [ecx+1] jne .scan stc sbb ecx, [esp+4] + +.ret: retn 4 endp ;***************************************************** @@ -131,11 +453,11 @@ ; Note: Don't use 1 as radix. ;***************************************************** proc __simpNumToStrF begin test eax,eax - jns NumToStrUF + jns __simpNumToStrUF neg eax mov byte [edi],'-' push esi dec esi add edi,esi @@ -165,5 +487,89 @@ pop esi return endp +;***************************************************** +; _simpNumToStr: +; Converts signed integer value to string. +; _simpNumToStrU: +; Converts unsigned integer value to string. +; +; edi - pointer to string buffer +; eax - Number to convert +; ecx - radix from 2 to $ff +; +; returns: edi - pointer to the end of converted num +; +; Note: Don't use 1 as radix. +;***************************************************** +proc __simpNumToStr +begin + test eax,eax + jns __simpNumToStrU + neg eax + mov byte [edi],"-" + inc edi +endp + +proc __simpNumToStrU +begin + cmp eax,ecx + jb .lessA + xor edx,edx + div ecx + push edx + call __simpNumToStrU + pop eax +.lessA: + cmp al, 10 + sbb al, 69h + das + stosb + return +endp + + + +uglobal + DebugBusy dd ? +endg + + +proc DebugLock +begin + pushad + mov ebx, 10 + +.loop: + xor eax, eax + dec eax + + xchg eax, [DebugBusy] + test eax, eax + jz .lock_ok + + stdcall Sleep, 10 + dec ebx + jnz .loop + + and [DebugBusy], 0 + +.lock_ok: + popad + return +endp + + + +proc DebugUnlock +begin + and [DebugBusy], 0 + return +endp + + + + + +endmodule Index: freshlib/sqlite/sqlite.asm ================================================================== --- freshlib/sqlite/sqlite.asm +++ freshlib/sqlite/sqlite.asm @@ -1,60 +1,60 @@ ;------------------------------------------------------------------- -; Procedures for convenient work with SQLite database angine. +; Procedures for convenient work with SQLite database engine. ;------------------------------------------------------------------- + +sqlCheckEmpty text 'select count() from sqlite_master' + ;------------------------------------------------------------------- ; If the file in [.ptrFileName] exists, the function opens it. ; if the file does not exists, new database is created and the ; initialization script from [.ptrInitScript] is executed on it. ; ; Returns: ; CF: 0 - database was open successfully ; eax = 0 - Existing database was open successfuly. -; eax = 1 - New database was created and init script was -; executed successfully. -; eax = 2 - New database was created but init script exits -; with error. +; eax = 1 - New database was created and init script was executed successfully. +; eax = 2 - New database was created but init script exits with error. ; CF: 1 - the database could not be open. (error) ;------------------------------------------------------------------- proc OpenOrCreate, .ptrFileName, .ptrDatabase, .ptrInitScript .hSQL dd ? -.ptrNext dd ? begin - push esi ebx + push edi esi ebx mov esi, [.ptrDatabase] - cinvoke sqliteOpen, [.ptrFileName], esi + cinvoke sqliteOpen_v2, [.ptrFileName], esi, SQLITE_OPEN_READWRITE or SQLITE_OPEN_CREATE or SQLITE_OPEN_FULLMUTEX, 0 test eax, eax jz .openok + +.error: stc - pop esi + pop ebx esi edi return .openok: xor ebx, ebx - cinvoke sqliteExec, [esi], .sqlCheckEmpty, .AbortCallback, ebx, ebx - cmp eax, SQLITE_ABORT - je .finish + lea eax, [.hSQL] + cinvoke sqlitePrepare_v2, [esi], sqlCheckEmpty, sqlCheckEmpty.length, eax, 0 + + cinvoke sqliteStep, [.hSQL] + cinvoke sqliteColumnInt, [.hSQL], 0 + push eax + cinvoke sqliteFinalize, [.hSQL] + pop eax + test eax, eax + jnz .finish - cinvoke sqliteExec, [esi], [.ptrInitScript], -1, ebx, ebx, ebx inc ebx - test eax, eax ; SQLITE_OK + cinvoke sqliteExec, [esi], [.ptrInitScript], NULL, NULL, NULL + test eax, eax jz .finish inc ebx .finish: - cinvoke sqliteFinalize, [.hSQL] mov eax, ebx clc - pop ebx esi + pop ebx esi edi return - -.AbortCallback: - xor eax, eax - inc eax - retn - -.sqlCheckEmpty db 'select * from sqlite_master',0 - endp ADDED freshlib/system/Dummy/clipboard.asm Index: freshlib/system/Dummy/clipboard.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/clipboard.asm @@ -0,0 +1,29 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Clipboard management library. +; +; Target OS: Dummy +; +; Dependencies: +;_________________________________________________________________________________________ + +; returns eax = handle to string with the clipboard data. +proc ClipboardRead +begin + return +endp + + + +; writes the string .hstring to the clipboard. +; returns nothing. + +proc ClipboardWrite, .hstring +begin + return +endp + + ADDED freshlib/system/Dummy/environment.asm Index: freshlib/system/Dummy/environment.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/environment.asm @@ -0,0 +1,25 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Environment management library. OS dependent part. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +proc GetAllEnvironment +begin + return +endp + + + +proc GetEnvVariable, .varname +begin + return +endp ADDED freshlib/system/Dummy/files.asm Index: freshlib/system/Dummy/files.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/files.asm @@ -0,0 +1,159 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Files manipulation library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +DIR_SLASH equ '\' + +fsFromBegin = 0 +fsFromEnd = 0 +fsFromCurrent = 0 + + +;-------------------------------------- +; if CF = 0, eax is handle to the file. +; if CF = 1, eax is error code. +;-------------------------------------- +proc FileOpen, .filename +begin + stc + return +endp + + + +proc FileCreate, .filename +begin + stc + return +endp + + + + +proc FileClose, .handle +begin + stc + return +endp + + +; returns 32bit file size in eax +proc FileSize, .handle +begin + stc + return +endp + + + +proc FileRead, .handle, .buffer, .count +begin + stc + return +endp + + + + +proc FileWrite, .handle, .buffer, .count +begin + stc + return +endp + + + + +;---------------------------------------------------- +; if CF = 0, eax is the new possition in the file +; if CF = 1, eax is error code. +;---------------------------------------------------- +proc FileSeek, .handle, .dist, .direction +begin + stc + return +endp + + + +;---------------------------------------------------- +; if CF = 0 - the file was deleted +; if CF = 1, eax is error code. +;---------------------------------------------------- +proc FileDelete, .filename +begin + stc + return +endp + + + +proc GetCurrentDir +begin + return +endp + + + + +proc SetCurrentDir, .hDirectory +begin + return +endp + + + + +proc GetErrorString, .code +begin + return +endp + + + +proc FreeErrorString, .ptrString +begin + return +endp + + + +ftUnknown = 0 +ftDirectory = 1 +ftFile = 2 + + + +; reads all items of the directory and fills them in the TArray of type TDirItem. +; arguments: +; dir - string with the path to the directory. +; +; returns: +; if not error: CF=0; eax = pointer to TArray of TDirItem; +; if error: CF=1; eax = error code; + +proc DirectoryRead, .dir +begin + stc + return +endp + + + + +proc GetFileInfo, .hFile, .ptrFileInfo +begin + stc + return +endp + ADDED freshlib/system/Dummy/heapmgr.asm Index: freshlib/system/Dummy/heapmgr.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/heapmgr.asm @@ -0,0 +1,38 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. OS dependent part. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +; +;_________________________________________________________________________________________ + + +proc mem.alloc_heap, .size +begin + stc + return +endp + + + + +proc mem.free_heap, .block, .size +begin + stc + return +endp + + + +proc mem.realloc_heap, .heapptr, .newsize, .oldsize +begin + stc + return +endp ADDED freshlib/system/Dummy/memory.asm Index: freshlib/system/Dummy/memory.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/memory.asm @@ -0,0 +1,51 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +; +;_________________________________________________________________________________________ + + +; Allocates memory block with given size. +; Returns: CF=1 if error. +; if CF=0, eax = pointer to the memory block allocated. + +proc GetMem, .size +begin + stc + return +endp + + + +proc FreeMem, .ptr +begin + return +endp + + + + +proc ResizeMem, .ptr, .newsize +begin + stc + return +endp + + + + +proc SpaceAllocate, .size +begin + return +endp + + ADDED freshlib/system/Dummy/network.asm Index: freshlib/system/Dummy/network.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/network.asm @@ -0,0 +1,92 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of the network library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +; +;_________________________________________________________________________________________ + + + +proc SocketCreate, .protocol_family, .socket_type, .protocol +begin + stc + return +endp + + + +proc SocketClose, .hSocket +begin + stc + return +endp + + + +proc SocketConnect, .hSocket, .pAddress +begin + stc + return +endp + + + +proc SocketBind, .hSocket, .pAddressIn +begin + stc + return +endp + + + +proc SocketListen, .hSocket, .maxPending +begin + stc + return +endp + + + +proc SocketAccept, .hSocket, .pAddress +begin + stc + return +endp + + + +proc SocketSend, .hSocket, .pBuffer, .DataLen, .flags +begin + stc + return +endp + + +proc SocketReceive, .hSocket, .pBuffer, .BufferSize, .flags +begin + stc + return +endp + + +proc SocketSendTo, .hSocket, .pBuffer, .DataLen, .flags, .pAddressTo +begin + stc + return +endp + + +proc SocketReceiveFrom, .hSocket, .pBuffer, .BufferSize, .flags, .pAddressFrom +begin + stc + return +endp + ADDED freshlib/system/Dummy/process.asm Index: freshlib/system/Dummy/process.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/process.asm @@ -0,0 +1,97 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Process management library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +struct TMutex +ends + +proc Terminate, .exit_code +begin + return +endp + + +; Terminate current process +; Returns: nothing. + +proc TerminateAll, .exit_code +begin + return +endp + + + +proc GetCmdArguments +begin + stc + return +endp + + + +; Creates a new execution thread +; Returns: CF=1 if error. +; CF=0, eax = pid of the new process being created + +proc ThreadCreate, .ptr_to_function, .ptr_to_args +begin + stc + return +endp + + + +proc FreeThreadID, .ThreadID +begin + return +endp + + + +; MUTEX functions +;_________________________________________________________________________________________ + +proc MutexCreate, .ptrName, .ptrMutex +begin + return +endp + + + + +proc WaitForMutex, .ptrMutex, .timeout +begin + clc + return +endp + + + + +proc MutexRelease, .ptrMutex +begin + pushf + popf + return +endp + + + +proc MutexDestroy, .ptrMutex +begin + pushf + popf + return +endp + ADDED freshlib/system/Dummy/serial.asm Index: freshlib/system/Dummy/serial.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/serial.asm @@ -0,0 +1,22 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Serial IO interface library. Linux part. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +proc SerSetParams, .hSerial, .Baudrate, .Parity, .Flow, .Timeout +begin + + + + return +endp ADDED freshlib/system/Dummy/timers.asm Index: freshlib/system/Dummy/timers.asm ================================================================== --- /dev/null +++ freshlib/system/Dummy/timers.asm @@ -0,0 +1,46 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Asynchronous timer library. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + + +proc GetSysTime +begin + return +endp + + + + + +proc GetTime +begin + return +endp + + + + +proc GetLocalTimeOffset +begin + return +endp + + + + +proc Sleep, .ms +begin + return +endp ADDED freshlib/system/KolibriOS/environment.asm Index: freshlib/system/KolibriOS/environment.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/environment.asm @@ -0,0 +1,25 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Environment management library. OS dependent +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +proc GetAllEnvironment +begin + return +endp + + + +proc GetEnvVariable, .varname +begin + return +endp ADDED freshlib/system/KolibriOS/files.asm Index: freshlib/system/KolibriOS/files.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/files.asm @@ -0,0 +1,1010 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Files manipulation library. KolibriOS part. +; +; Target OS: KolibriOS +; +; Dependencies: Uses system calls for file processing and memory.asm for memory +; allocations. +; +; Notes: +;_________________________________________________________________________________________ + +DIR_SLASH equ '/' +DIR_SEP_PAIR equ '\/' ; for use with StrNormalizePath and StrNormalizePath2 + + +FILE_SEARCH_ONE_ATEMPT = 10 + +fsFromBegin = 0 +fsFromEnd = 2 +fsFromCurrent = 1 + + +faReadOnly = accessRead +faWriteOnly = accessWrite +faReadWrite = accessRead or accessWrite + +faOpenAlways = $100 ; if the file does not exists it will be created. +faCreateAlways = $200 ; Creates new file always. If the file exists, truncates it. +faCreateOnly = $400 ; Creates new file only if not exists, else error. + + + + +fileErrorUndefinedBase = 1 +fileErrorFunctionNotAvailable = 2 +fileErrorUnknownFileSystem = 3 +fileErrorFileNotFound = 5 +fileErrorEOF = 6 +fileErrorBadPointer = 7 +fileErrorDiskFull = 8 +fileErrorBrokenFAT = 9 +fileErrorAccessDenied = 10 +fileErrorDeviceError = 11 +fileErrorOutOfMemory = 30 +fileErrorNotExecutable = 31 +fileErrorTooManyProcesses = 32 + + +if used STDIN | used STDOUT | used STDERR | used pFileList + +initialize InitStdHandles +begin + if used STDIN | used STDOUT + mov eax, [STDIO] + end if + + if used STDIN + mov dword [__std_handle_in], eax + end if + + if used STDOUT + mov dword [__std_handle_out], eax + end if + + if used STDERR + mov eax, [STDDBG] + mov dword [__std_handle_err], eax + end if + + if used ptrFileList + if options.Threads + stdcall MutexCreate, 0, FileMutex + stdcall MutexRelease, FileMutex + end if + + stdcall CreateArray, 4 + mov [__ptr_file_list], eax + end if + + return +endp + +end if + + +fattrReadOnly = 1 +fattrHidden = 2 +fattrSystem = 4 +fattrVolume = 8 +fattrDirectory= 16 +fattrArchive = 32 + + +struct __TFileInfo + .attr dd ? + .encoding db ? + rb 3 + .creation_time dd ? + .creation_date dd ? + .access_time dd ? + .access_date dd ? + .modify_time dd ? + .modify_date dd ? + .file_size dd ? + .file_sizeH dd ? +ends + + +struct __TFileOp + .subfunc dd ? + .offset dd ? + .flags dd ? + .size dd ? + .ptrBuffer dd ? + .filename db 0 + .ptrFilename dd ? +ends + + +struct __TFile + .hFilename dd ? + .pointer dd ? + .access dd ? + + .info __TFileInfo +ends + + + +uglobal + + if used ptrFileList + FileMutex TMutex + + __ptr_file_list: + ptrFileList dd ? + end if + +endg + + +body FileExists +begin + return +endp + + + +body FileOpenAccess +.op __TFileOp +begin + pushad + + stdcall GetMem, sizeof.__TFile + mov esi, eax + + stdcall StrDup, [.filename] + + mov [esi+__TFile.hFilename], eax + mov [esi+__TFile.pointer], 0 + + mov eax, [.access] + mov [esi+__TFile.access], eax + + xor eax, eax + mov [.op.offset], eax + mov [.op.flags], eax + mov [.op.size], eax + mov [.op.filename], al + + lea eax, [esi+__TFile.info] + mov [.op.ptrBuffer], eax + + stdcall StrPtr, [esi+__TFile.hFilename] + mov [.op.ptrFilename], eax + +.read_info: + mov [.op.subfunc], fsfFileInfo + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + cmp eax, errFileNotFound + jne .file_exists + +; file does not exists + + test [.access], faCreateAlways or faOpenAlways or faCreateOnly + jz .error + + mov [.op.subfunc], fsfCreate + + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + test eax, eax + jnz .error + +; read again the info + + mov [.op.subfunc], fsfFileInfo + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + test eax, eax + jnz .error + jmp .exit_ok + + +.file_exists: + + test eax, eax + jnz .error + + mov eax, errFileAlreadyExists + test [.access], faCreateOnly + jnz .error + + test [.access], faCreateAlways + jz .exit_ok + +; trunkate the existing file + + mov [.op.subfunc], fsfCreate + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + test eax, eax + jnz .error + +; read again the info + + mov [.op.subfunc], fsfFileInfo + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + test eax, eax + jnz .error + +.exit_ok: + + stdcall __GetFileHandle, esi + jc .error + + mov [esp+4*regEAX], eax + clc + popad + return + +.error: + stdcall StrDel, [esi+__TFile.hFilename] + stdcall FreeMem, esi + stc + popad + return +endp + + + + + +proc __GetFileHandle, .pFileStruc +begin + pushad + +if options.Threads + stdcall WaitForMutex, FileMutex, 2 + jc .finish +end if + +; Search for first empty place. + + mov edx, [ptrFileList] + + mov ecx, FILE_SEARCH_ONE_ATEMPT ; search only limited count of items + cmp ecx, [edx+TArray.count] + jb @f + mov ecx, [edx+TArray.count] +@@: + mov esi,[edx+TArray.lparam] ; from where to search + xor eax,eax + +.search: + dec ecx + js .notfound + + inc esi + cmp esi, [edx+TArray.count] + jb @f + xor esi,esi +@@: + cmp [edx+TArray.array+4*esi], eax + je .found + jmp .search + +.notfound: + mov [edx+TArray.lparam], esi ; store the place where the search ends this time. + mov esi, [edx+TArray.count] + cmp esi, $7fff + ja .error + + stdcall AddArrayItems, edx, 1 + mov [ptrFileList], edx + jmp .store + +.found: + mov [edx+TArray.lparam], esi + +.store: + mov eax, [.pFileStruc] + mov [edx+TArray.array+4*esi], eax + + or esi, $00008000 + mov [esp+4*regEAX], esi + + clc + +.exit: +if options.Threads + stdcall MutexRelease, FileMutex +end if + + +.finish: + popad + return + +.error: + stc + jmp .exit +endp + + + + +proc __GetFileStruct, .handle +begin + push edx +if options.Threads + stdcall WaitForMutex, FileMutex, 2 + jc .finish +end if + + mov eax, [.handle] + and eax, $7fff + mov edx, [ptrFileList] + + cmp eax, [edx+TArray.count] + ja .error + + mov eax, [edx+TArray.array+4*eax] + test eax, eax + jz .error + +.exit: +if options.Threads + stdcall MutexRelease, FileMutex +end if + +.finish: + pop edx + return + + +.error: + xor eax, eax + stc + jmp .exit +endp + + + + + +;-------------------------------------- +; if CF = 0, the file was closed. +; if CF = 1, eax is error code. +;-------------------------------------- +body FileClose +begin + pushad + +if options.Threads + stdcall WaitForMutex, FileMutex, 2 + jc .finish +end if + + mov eax, [.handle] + cmp eax, $ffff + ja .error + + and eax, $7fff + mov edx, [ptrFileList] + + cmp eax, [edx+TArray.count] + ja .error + + xor ecx, ecx + xchg ecx, [edx+TArray.array+4*eax] + test ecx, ecx + jz .error + + stdcall StrDel, [ecx+__TFile.hFilename] + stdcall FreeMem, ecx + + clc + +.exit: +if options.Threads + stdcall MutexRelease, FileMutex +end if + + +.finish: + popad + return + +.error: + stc + jmp .exit +endp + + +; returns 32bit file size in eax +body FileSize +begin + stdcall __GetFileStruct, [.handle] + jc .finish + + mov eax, [eax+__TFile.info.file_size] + clc + +.finish: + return +endp + + + +body FileRead +.op __TFileOp +begin + push ebx esi + + mov esi, [.handle] + cmp esi, [STDIN] + je .console_read + + cmp esi, [STDOUT] + je .console_read + + cmp esi, [STDERR] + je .console_read + + stdcall __GetFileStruct, esi + jc .error + + mov esi, eax + xor eax, eax + + mov [.op.subfunc], eax + mov [.op.flags], eax + mov [.op.filename], al + + mov eax, [esi+__TFile.pointer] + mov [.op.offset], eax + + mov eax, [.count] + mov [.op.size], eax + + mov eax, [.buffer] + mov [.op.ptrBuffer], eax + + stdcall StrPtr, [esi+__TFile.hFilename] + mov [.op.ptrFilename], eax + + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + test eax, eax + jz .readok + + cmp eax, fileErrorEOF + jne .error + +.readok: + add [esi+__TFile.pointer], ebx + mov eax, ebx + clc + pop esi ebx + return + +.error: + stc + pop esi ebx + return + +.console_read: + cmp [.handle], 0 + je .error + + mov esi, [.buffer] + +.read_loop: + stdcall SocketReceive, [.handle], esi, 1, 0 + jc .finish + + inc esi + + cmp byte [esi-1], $0d + je .return + + dec [.count] + jnz .read_loop + +.return: + sub esi, [.buffer] + mov eax, esi + +.finish: + pop esi ebx + return +endp + + + + +body FileWrite +.op __TFileOp +begin + push ebx esi + + mov esi, [.handle] + + cmp esi, [STDIN] + je .console_write + + cmp esi, [STDOUT] + je .console_write + + cmp esi, [STDERR] + je .console_write + + stdcall __GetFileStruct, esi + jc .finish + + mov esi, eax + xor eax, eax + + mov [.op.subfunc], 3 + mov [.op.flags], eax + mov [.op.filename], al + + mov eax, [esi+__TFile.pointer] + mov [.op.offset], eax + + mov eax, [.count] + mov [.op.size], eax + + mov eax, [.buffer] + mov [.op.ptrBuffer], eax + + stdcall StrPtr, [esi+__TFile.hFilename] + mov [.op.ptrFilename], eax + + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + add ebx, [esi+__TFile.pointer] + + cmp [esi+__TFile.info.file_size], ebx + ja @f + mov [esi+__TFile.info.file_size], ebx +@@: + mov [esi+__TFile.pointer], ebx + + cmp eax, 1 + cmc ; CF = 1 if eax==0; + + mov eax, ebx + +.finish: + pop esi ebx + return + + +.console_write: + test esi, esi + jz .finish + + stdcall SocketSend, esi, [.buffer], [.count], 0 + pop esi ebx + return + +endp + + +;---------------------------------------------------- +; if CF = 0, eax is the new possition in the file +; if CF = 1, eax is error code. +;---------------------------------------------------- +body FileSeek +begin + push esi + + stdcall __GetFileStruct, [.handle] + jc .error + + mov esi, eax + mov eax, [.dist] + + cmp [.direction], fsFromCurrent + je .rel + cmp [.direction], fsFromBegin + je .begin + cmp [.direction], fsFromEnd + je .end + +.error: + stc + mov eax, [esi+__TFile.pointer] + pop esi + return + +.ok: + clc + pop esi + return + +.rel: + add eax, [esi+__TFile.pointer] + +.begin: + cmp [esi+__TFile.info.file_size], eax + jae @f + mov eax, [esi+__TFile.info.file_size] +@@: + mov [esi+__TFile.pointer], eax + jmp .ok + +.end: + add eax, [esi+__TFile.info.file_size] + js .error + jmp .begin +endp + + + +body FileTruncate +.op __TFileOp +begin + mov [.op.subfunc], fsfSetSize + + + return +endp + + + +;-------------------------------------- +; if CF = 0, the file was deleted. +; if CF = 1, eax is error code. +;-------------------------------------- +body FileDelete +.op __TFileOp +begin + push ebx esi + + xor eax, eax + + mov [.op.subfunc], fsfDel + mov [.op.offset], eax + mov [.op.size], eax + mov [.op.ptrBuffer], eax + mov [.op.flags], eax + mov [.op.filename], al + + stdcall StrPtr, [.filename] + mov [.op.ptrFilename], eax + + mov eax, sys_file_system_lfn + lea ebx, [.op] + int $40 + + cmp eax, 1 + cmc + pop esi ebx + return +endp + + + + + +body GetCurrentDir +.buffer rb 1024 +begin + push ebx ecx edx + + mov eax, sys_current_directory + mov ebx, 2 ; get current dir + lea ecx, [.buffer] + mov edx, 1024 + int $40 + + stdcall StrDup, ecx + push eax + + stdcall StrPtr, eax + mov ecx, [eax+string.len] + cmp ecx, 1 + je @f + + cmp byte [eax+ecx-1], '/' + jne @f + dec [eax+string.len] + mov dword [eax+ecx-1], 0 +@@: + pop eax + clc + pop ecx ebx + return +endp + + + + +body SetCurrentDir +begin + push eax ebx ecx + + stdcall StrPtr, [.hDirectory] + mov ecx, eax + mov eax, sys_current_directory + mov ebx, 1 ; set current dir + int $40 + + clc + pop ecx ebx eax + return +endp + + + + + + + +body GetErrorString +begin + mov eax, [.code] + test eax, eax + jz .finish + + cmp eax, 30 + jb .normal + + sub eax, 30 + cmp eax, 2 + ja .unknown + + mov eax, [.error2+4*eax] + jmp .finish + +.normal: + cmp eax, 11 + ja .unknown + + mov eax, [.error+4*eax] + +.finish: + clc + return + +.unknown: + mov eax, cErrorUnknown + jmp .finish + +.error dd cErrorOK, cErrorMissingBase, cErrorFnNotSupported, cErrorUnknownFS, cErrorReserved, cErrorFileNotFound, cErrorEndOfFile, cErrorBadPointer, cErrorDiskFull, cErrorBadFAT, cErrorAccessDenied, cErrorDeviceError +.error2 dd cErrorOutOfMemory, cErrorNotExecutable, cErrorTooManyProcesses +endp + +cErrorOK text 'No error.' +cErrorMissingBase text 'Missing base.' ;??? +cErrorFnNotSupported text 'Function not supported on this FS.' +cErrorUnknownFS text 'Not supported file system.' +cErrorReserved text 'Reserved error code! Kernel bug?' +cErrorFileNotFound text 'File not found.' +cErrorEndOfFile text 'End of file reached.' +cErrorBadPointer text 'Bad buffer pointer.' +cErrorDiskFull text 'Disk full.' +cErrorBadFAT text 'Bad FAT.' +cErrorAccessDenied text 'Access denied.' +cErrorDeviceError text 'Device error.' + +cErrorUnknown text 'Unknown error code.' + +cErrorOutOfMemory text 'Out of memory.' +cErrorNotExecutable text 'File is not executable.' +cErrorTooManyProcesses text 'Too many processes.' + + + +body FreeErrorString +begin + return +endp + + + + +ftDirectory = 1 +ftUnknown = 2 +ftFile = 3 +ftLinkMask = $80000000 + + +; reads all items of the directory and fills them in the TArray of type TDirItem. +; arguments: +; dir - string with the path to the directory. +; +; returns: +; if not error: CF=0; eax = pointer to TArray of TDirItem; +; if error: CF=1; eax = error code; + +body DirectoryRead +.op __TFileOp + rb 256 +.buffer rb 1024 +begin + push ebx ecx edx esi edi + + stdcall StrDup, [.dir] + mov [.dir], eax + + xor esi, esi ; file number + + stdcall CreateArray, sizeof.TDirItem + mov edx, eax + +.loop: + lea ebx, [.op] + mov [.op.subfunc], fsfReadDir + mov [.op.offset], esi + mov [.op.flags], 0 ; ASCII + mov [.op.size], 1 ; read one block + lea edi, [.buffer] + mov [.op.ptrBuffer], edi + + xor eax, eax + mov ecx, 1024/4 + rep stosd + + mov [.op.filename], 0 + stdcall StrPtr, [.dir] + mov [.op.ptrFilename], eax + + mov eax, sys_file_system_lfn + int $40 + + test eax, eax + jnz .end_read + + test dword [.buffer+$20], $08 ; flag volume label + jnz .next + + lea eax, [.buffer+$48] ; filename in widechar (UTF-16) + stdcall StrDup, eax +; stdcall WideCharToUtf8, eax + mov ecx, eax + + stdcall AddArrayItems, edx, 1 + + mov [eax+TDirItem.hFilename], ecx + + mov ecx, ftDirectory + test dword [.buffer+$20], $10 ; flag directory + jnz @f + mov ecx, ftFile +@@: + mov [eax+TDirItem.Type], ecx + +.next: + inc esi + jmp .loop + +.end_read: + stdcall StrDel, [.dir] + + cmp esi, dword [.buffer+8] ; the count of the elements in the directory. + jae .finish_ok + + stdcall FreeDirArray, edx + xor eax, eax + stc + pop esi edx ecx ebx + return + + +.finish_ok: + mov eax, edx ; the TArray + clc + pop edi esi edx ecx ebx + return + +endp + + + + + +body GetFileInfo +begin + stc + return +endp + + + +proc __ConsoleWrite, .ptrData, .count +begin + push eax ecx esi + + mov esi, [.ptrData] + mov ecx, [.count] + +.loop: + test ecx, ecx + jz .end_output + + dec ecx + movzx eax, byte [esi] + lea esi, [esi+1] + + stdcall CharOut, eax + jmp .loop + +.end_output: + pop esi ecx eax + return +endp + + + + +body IsRelativePath ;, .hPath +begin + push eax + stdcall StrLen, [.hPath] + cmp eax, 3 + jb .relative + + stdcall StrPtr, [.hPath] + cmp byte [eax], DIR_SLASH + jne .drive + cmp byte [eax+1], DIR_SLASH + jmp .absolute + +.drive: + cmp byte [eax], 'A' + jb .relative + cmp byte [eax], 'Z' + jbe .maybe_drive + + cmp byte [eax], 'a' + jb .relative + cmp byte [eax], 'Z' + ja .relative + +.maybe_drive: + cmp byte [eax+1], ':' + jne .relative + + cmp byte [eax+2], DIR_SLASH + jne .relative + +.absolute: + clc + pop eax + return + +.relative: + stc + pop eax + return +endp + + + +body GetCurrentPrefix +begin + stdcall GetCurrentDir + push eax + + stdcall StrPtr, eax + and dword [eax+2], 0 + mov [eax+string.len], 2 + + pop eax + return +endp ADDED freshlib/system/KolibriOS/heapmgr.asm Index: freshlib/system/KolibriOS/heapmgr.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/heapmgr.asm @@ -0,0 +1,108 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. OS dependent part. +; +; Target OS: Dummy +; +; Dependencies: +; +; Notes: +; +;_________________________________________________________________________________________ + + +MAX_HEAP_SIZE = $60000000 + +uglobal + var __ptrHeapStart = ? + var __HeapMaxSize = ? +endg + + +if used mem.alloc_heap + +initialize InitMenuetHeap +begin + mov eax, sys_f68 + mov ebx, 11 + int $40 + + OutputValue "The maximal heap memory size: ", eax, 10, -1 + + mov ecx, eax + mov eax, sys_f68 + mov ebx, 12 + int $40 + test eax, eax + jz .error + + mov [__ptrHeapStart], eax + return + +.error: + int3 +endp +end if + + +proc mem.alloc_heap ;, .size +begin + mov eax, [__ptrHeapStart] + test eax, eax + jz .error + clc + retn 4 + +.error: + stc + retn 4 +endp + + + + +proc mem.free_heap, .block, .size +begin + push eax ebx ecx + mov eax, sys_f68 + mov ebx, 13 + mov ecx, [.block] + int $40 + clc + pop ecx ebx eax + return +endp + + + +proc mem.realloc_heap, .heapptr, .newsize, .oldsize +begin + push eax ebx ecx edx + + mov eax, sys_f68 + mov ebx, 20 + mov ecx, [.newsize] + mov edx, [__ptrHeapStart] + int $40 + + cmp eax, [__ptrHeapStart] + jne .error + + mov eax, sys_f68 + mov ebx, 20 + mov ecx, MAX_HEAP_SIZE + mov edx, [__ptrHeapStart] + int $40 + + cmp eax, [__ptrHeapStart] + jne .error + + pop edx ecx ebx eax + return + +.error: + int3 +endp ADDED freshlib/system/KolibriOS/memory.asm Index: freshlib/system/KolibriOS/memory.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/memory.asm @@ -0,0 +1,14 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. KolibriOS part. +; +; Target OS: KolibriOS +; +; Dependencies: +; +;_________________________________________________________________________________________ + +include '../heapmgr.asm' ADDED freshlib/system/KolibriOS/network.asm Index: freshlib/system/KolibriOS/network.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/network.asm @@ -0,0 +1,354 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license. | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of the network library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +; +; Author: hidnplayr, KolibriOS development team. (c)2012 +; +;_________________________________________________________________________________________ + +serrTimeout = EWOULDBLOCK +serrAborted = ECONNABORTED + + +body SocketCreate +;.sock dd ? +;.opt rd 4 +begin + push ebx ecx edx esi + + mov eax, sys_socket + mov ebx, sockOpen + mov ecx, [.protocol_family] + mov edx, [.socket_type] + mov esi, [.protocol] + int $40 + +; mov [.sock], eax + +; cmp eax, -1 +; je .finish + +; mov [.opt], SOL_SOCKET +; mov [.opt+4], SO_BLOCK +; mov [.opt+8], 1 +; +; mov ecx, eax +; mov eax, sys_socket +; mov ebx, sockSetOptions +; lea edx, [.opt] +; int $40 + +; cmp eax, -1 ; if eax is -1, set carry flag +; je .finish + +; mov eax, [.sock] + +.finish: + cmp eax, -1 ; if eax is -1, set carry flag + cmc + + pop esi edx ecx ebx + return +endp + + + +body SocketClose +begin + push ebx ecx + + mov eax, sys_socket + mov ebx, sockClose + mov ecx, [.hSocket] + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + cmovc eax, ebx ; eax = error code. + + pop ecx ebx + return +endp + + + +body SocketConnect +begin + push ebx ecx edx esi + + mov eax, sys_socket + mov ebx, sockConnect + mov ecx, [.hSocket] + mov edx, [.pAddress] + mov esi, sizeof.TSocketAddress + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + cmovc eax, ebx ; eax = error code. + + pop esi edx ecx ebx + return +endp + + + +body SocketBind +begin + push ebx ecx edx esi + +; stdcall __InternetByteOrder, [.pAddressIn] + + mov eax, sys_socket + mov ebx, sockBind + mov ecx, [.hSocket] + mov edx, [.pAddress] + mov esi, sizeof.TSocketAddressIn + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + cmovc eax, ebx ; eax = error code. + + pop esi edx ecx ebx + return +endp + + + +body SocketListen +begin + push ebx ecx edx + + mov eax, sys_socket + mov ebx, sockListen + mov ecx, [.hSocket] + mov edx, [.maxPending] + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + cmovc eax, ebx ; eax = error code. + + pop edx ecx ebx + return +endp + + + +body SocketAccept +.dummy TSocketAddress + rb 256 +begin + push ebx ecx edx esi + + mov edx, [.pAddress] + mov esi, sizeof.TSocketAddress + test edx, edx + cmovz esi, edx + +; test edx, edx +; jnz .targetok +; lea edx, [.dummy] +;.targetok: + mov eax, sys_socket + mov ebx, sockAccept + mov ecx, [.hSocket] + int $40 + + OutputRegister regEAX, 16 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + cmovc eax, ebx ; eax = error code. + + pop esi edx ecx ebx + return +endp + + + +body SocketSend +begin + push ebx ecx edx esi edi + +.send_loop: + mov eax, sys_socket + mov ebx, sockSend + mov ecx, [.hSocket] + mov edx, [.pBuffer] + mov esi, [.DataLen] + mov edi, [.flags] + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + je .error + + add [.pBuffer], eax + sub [.DataLen], eax + jnz .send_loop + + clc + +.finish: + pop edi esi edx ecx ebx + return + +.error: + mov eax, ebx + stc + jmp .finish + +endp + + +body SocketReceive +begin + push ebx ecx edx esi edi + + mov eax, sys_socket + mov ebx, sockReceive + mov ecx, [.hSocket] + mov edx, [.pBuffer] + mov esi, [.BufferSize] + mov edi, [.flags] + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + + pop edi esi edx ecx ebx + return +endp + + +body SocketSendTo +begin + stc + return +endp + + +body SocketReceiveFrom +begin + stc + return +endp + + + + + +body SocketGetOption +begin + stc + return +endp + + + +body SocketSetOption +.opt rd 8 +begin + pushad + + mov eax, [.idOption] + mov ecx, [.Value] + + mov [.opt], SOL_SOCKET + mov [.opt+4], eax + mov [.opt+8], 1 + mov [.opt+12], ecx + + mov eax, sys_socket + mov ebx, sockSetOptions + mov ecx, [.hSocket] + lea edx, [.opt] + int $40 + + cmp eax, -1 ; if eax is -1, set carry flag + cmc + jnc @f + mov [esp+4*regEAX], ebx +@@: + popad + return +endp + + + + + + + + + + + + + + + +; Creates pair of IPC sockets and return them in EAX and EDX +; Returns CF=1 on error. + +proc SocketPair +begin + push ebx + + mov eax, sys_socket + mov ebx, sockPair + int $40 + + cmp eax, -1 + cmc + + mov edx, ebx + + pop ebx + return +endp + + + + + + +proc __WaitForNetworkEvent +begin + pushad + + mov eax, sys_set_app_param + mov ebx, $fffffffe + int $40 + +.loop: + mov eax, sys_wait_event_timeout + mov ebx, 100 + int $40 + + test eax, eax + jz .timeout + + stdcall Output, "Event accepted: " + stdcall OutputNumber, eax, 16, 8 + cmp eax, 8 + jne .loop + + popad + return + +.timeout: + DebugMsg "Timeout waiting event." + jmp .loop + +endp ADDED freshlib/system/KolibriOS/process.asm Index: freshlib/system/KolibriOS/process.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/process.asm @@ -0,0 +1,566 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Process management library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +struct TMutex + .value dd ? + .threadID dd ? + .counter dd ? + .reserved dd ? +ends + + +struct TThreadInfo + .cpu_usage dd ? + .zposWindow dw ? + .nWindowSlot dw ? + .reserve1 dw ? + .ProcessName rb 11 + .reserve2 db ? + .processAddr dd ? + .processSize dd ? + .TID dd ? + .wndPosX dd ? + .wndPosY dd ? + .wndSizeX dd ? + .wndSizeY dd ? + .ThreadState dw ? + .reserve3 dw ? + .ClientPosX dd ? + .ClientPosY dd ? + .ClientWidth dd ? + .ClientHeight dd ? + .WindowState db ? + .EventMask dd ? + .min_size = $$ - $ + rb 1024 - .min_size +ends + + +struct TThreadRecord + .ThreadID dd ? + .ptrStack dd ? +ends + + +uglobal + __ThreadList TThreadRecord + rb 255*sizeof.TThreadRecord + + var __ThreadLock = ? +endg + + +; This procedure should be removed. But only after the file managers and the shell +; of KolibriOS start to set the current directory properly. :) + +initialize InitDefaultPath +begin + mov esi, bufferPath + mov edi, esi +.len: + lodsb + cmp al, '/' + jne @f + mov edi, esi +@@: + test al, al + jnz .len + + push dword [edi] + mov dword [edi], 0 + + mov eax, sys_current_directory + mov ebx, 1 + mov ecx, bufferPath + int $40 + + pop dword [edi] + return +endp + + + +body Terminate +begin +; lock the thread list. + xor eax, eax + inc eax + +.wait_loop: + xchg eax, [__ThreadLock] + test eax, eax + jz .locked + + mov eax, sys_f68 ; switch to another thread. + mov ebx, 1 + int $40 + jmp .wait_loop + +.locked: + DebugMsg "Thread terminate locked." + + mov esi, __ThreadList - sizeof.TThreadRecord + mov ecx, $100 + + call __GetThreadID + +.loop: + dec ecx + jz .error + + add esi, sizeof.TThreadRecord + cmp [esi+TThreadRecord.ThreadID], eax + jne .loop + + xor ecx, ecx + mov [esi+TThreadRecord.ThreadID], ecx + xchg ecx, [esi+TThreadRecord.ptrStack] + + mov [__ThreadLock], 0 ; no need to be locked anymore. + + DebugMsg "Thread will be terminated now." + +; free the stack + + mov eax, sys_f68 + mov ebx, 13 + int $40 + +; terminate the thread + + mov eax,-1 ; Function -1 : close the thread + int $40 + +.error: ; something very wrong. + DebugMsg "Thread terminate error. Stop it with INT3" + int3 +endp + + +; Terminate current process +; Returns: nothing. + +body TerminateAll +begin + +.wait_loop: + mov eax, 1 + xchg eax, [__ThreadLock] + test eax, eax + jz .locked + + mov eax, sys_f68 ; switch to another thread. + mov ebx, 1 + int $40 + + jmp .wait_loop + +.locked: + mov esi, __ThreadList - sizeof.TThreadRecord + mov edx, $100 + +.loop: + dec edx + jz .threads_ok + + lea esi, [esi+sizeof.TThreadRecord] + cmp [esi+TThreadRecord.ThreadID], 0 + je .loop + + mov eax, sys_system + mov ebx, 18 + mov ecx, [esi+TThreadRecord.ThreadID] + int $40 + jmp .loop + +; then terminate the main thread, but what if TerminateAll is called from another thread??? +.threads_ok: + mov [__ThreadLock], 0 + + mov eax,-1 + int $40 + int3 +endp + + + +body GetCmdArguments +begin + push ebx ecx edx esi + stdcall CreateArray, 4 + mov edx, eax + + stdcall StrDup, bufferPath + push eax + stdcall AddArrayItems, edx, 1 + pop dword [eax] + + mov esi, bufferArguments + +.main_loop: + mov al, [esi] + test al, al + jz .end_of_arg + + cmp al, ' ' + ja .nospace + + inc esi + jmp .main_loop + +.nospace: + xor ah, ah + cmp al, '"' + jne .begin + + mov ah, al + inc esi + +.begin: + mov ebx, esi + +.argloop: + mov al, [esi] + test al, al + jz .end_found + + cmp al, ah + je .end_found + + cmp al, ' ' + jbe .end_found + + inc esi + jmp .argloop + +.end_found: + mov ecx, esi + sub ecx, ebx + + test al, al + jz .endok + + test ah,ah + jz .endok + inc esi +.endok: + stdcall StrExtract, ebx, 0, ecx + + push eax + stdcall AddArrayItems, edx, 1 + pop dword [eax] + jmp .main_loop + +.end_of_arg: + mov eax, edx + pop esi edx ecx ebx + clc + return +endp + + + +; Creates a new execution thread +; Returns: CF=1 if error. +; CF=0, eax = pid of the new process being created + +body ThreadCreate +begin + push ebx ecx edx edi + +.wait_loop: + mov ebx, 1 + xchg ebx, [__ThreadLock] + test ebx, ebx + jz .locked + + mov eax, sys_f68 ; switch to another thread. + mov ebx, 1 + int $40 + + jmp .wait_loop + + +; search for free slot: + +.locked: + mov edi, __ThreadList - sizeof.TThreadRecord + mov ecx, $100 + xor eax, eax + +.loop: + dec ecx + jz .error ; no empty slot. + + lea edi, [edi+sizeof.TThreadRecord] + cmp [edi+TThreadRecord.ThreadID], eax + jne .loop + +; edi points to the TThreadRecord structure + + mov eax, sys_f68 + mov ebx, 12 + mov ecx, STACK_SIZE + int $40 + test eax, eax + jz .error + + mov [edi+TThreadRecord.ptrStack], eax + lea edx, [eax + STACK_SIZE - 8] + + mov eax, [.ptrArguments] + mov ebx, [.ptrFunction] + mov [edx+4], eax + mov [edx], ebx + + mov eax, sys_threads + mov ebx, 1 ; create thread + mov ecx, __CommonThreadProc + int $40 + + cmp eax, -1 + je .error + + DebugMsg "Thread created." + + mov [edi+TThreadRecord.ThreadID], eax + clc + +.finish: + mov [__ThreadLock], 0 + pop edi edx ecx ebx + return + +.error: + DebugMsg "ThreadCreate ERROR!" + stc + jmp .finish +endp + + + +proc __CommonThreadProc +begin + DebugMsg "Thread start!" + + pop eax + call eax ; the argument is already in the stack. + + DebugMsg "Thread terminate." + + stdcall Terminate, eax +endp + + + +body FreeThreadID +begin + return +endp + + +; returns the threadID of the current thread. +proc __GetThreadID +.info TThreadInfo +begin + push ebx ecx +; what is TID? + mov eax, sys_cpuusage + lea ebx, [.info] + mov ecx, -1 + int $40 + + mov eax, [.info.TID] + pop ecx ebx + return +endp + + + +; MUTEX functions +;_________________________________________________________________________________________ + +body MutexCreate +begin + push eax ecx + mov ecx, [.ptrMutex] + xor eax, eax + mov dword [ecx+TMutex.value], eax + mov dword [ecx+TMutex.threadID], eax + mov dword [ecx+TMutex.counter], 0 + clc + pop ecx eax + return +endp + + + + +body WaitForMutex +begin + pushad + + mov eax, [.timeout] + test eax, eax + jns .compute_timeout + + mov ecx, -1 + jmp .timeout_ok + + +.compute_timeout: + cdq + mov ebx, 10 + div ebx + mov edx, eax ; wait_to + xor ecx, ecx ; wait_to_carry + + mov eax, sys_getsetup + mov ebx, 9 + int $40 + + add edx, eax + adc ecx, ecx + +.timeout_ok: + call __GetThreadID + mov edi, eax + + mov esi, [.ptrMutex] + +.loop: + xor eax, eax + inc eax + lock xchg eax, [esi+TMutex.value] + test eax, eax + jz .lockok ; now it is locked and it was unlocked + + cmp [esi+TMutex.threadID], edi + je .lockok ; it is locked by the same thread before. + +; check the timeout + test ecx, ecx + js .wait_more ; the timeout is disabled. + + mov eax, sys_getsetup + mov ebx, 9 + int $40 + + cmp eax, edx ; is the current time above the waitto time? + ja .maybetimeout + + xor ecx, ecx ; reset the carry. + jmp .wait_more + +.maybetimeout: + test ecx, ecx ; there is a carry in the counter. + jz .error + +.wait_more: + mov eax, sys_f68 ; switch to another thread. + mov ebx, 1 + int $40 + jmp .loop + +.lockok: + inc [esi+TMutex.counter] + mov [esi+TMutex.threadID], edi + clc + popad + return + +.error: + stc + popad + return +endp + + + + +body MutexRelease +begin + pushf + pushad + + stdcall __GetThreadID + mov edi, eax + mov esi, [.ptrMutex] + + cmp edi, [esi+TMutex.threadID] + jne .unlock_ok + + cmp [esi+TMutex.counter], 0 + je .dec_ok ; it is error actually, but... well... + + dec [esi+TMutex.counter] + jnz .unlock_ok + +.dec_ok: + mov [esi+TMutex.threadID], 0 + mov [esi+TMutex.value], 0 + +.unlock_ok: + popad + popf + return +endp + + + +body MutexDestroy +begin + return +endp + + + +body Exec2 +begin + + + return +endp + + + +body FreeProcessID +begin + return +endp + + + +; DLL procedures. + +body LibLoad +begin + stc + return +endp + + +body LibRelease +begin + stc + return +endp + + +body LibImport +begin + stc + return +endp ADDED freshlib/system/KolibriOS/serial.asm Index: freshlib/system/KolibriOS/serial.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/serial.asm @@ -0,0 +1,22 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Serial IO interface library. Linux part. +; +; Target OS: Kolibri OS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +proc SerSetParams, .hSerial, .Baudrate, .Parity, .Flow, .Timeout +begin + + + stc + return +endp ADDED freshlib/system/KolibriOS/timers.asm Index: freshlib/system/KolibriOS/timers.asm ================================================================== --- /dev/null +++ freshlib/system/KolibriOS/timers.asm @@ -0,0 +1,242 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Asynchronous timer library. +; +; Target OS: KolibriOS +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +__sys_time_slice = 10 ;[ms] + + +if used TimerCreate + +initialize __InitTimers +begin + mov eax, sys_threads + mov ebx, 1 + mov ecx, __TimerProc + mov edx, __timerstack + int $40 + + return +endp + + +finalize __StopTimers +begin + mov [__timer_stop], 1 + +.loop: + mov eax, sys_f68 + mov ebx, 1 + int $40 + + cmp [__timer_stop], 0 + jne .loop + return +endp + + +end if + + +proc GetTime +begin + push ebx ecx edx + + mov eax, sys_clock + int $40 + + mov edx, eax + + mov ah, al + and ah, $0f ; low digit + and al, $f0 + and dl, $f0 + shr al, 1 ; *8 + shr dl, 3 ; *2 + add al, dl + add al, ah + movzx ebx, al + imul ebx, 60*60 ; hours in seconds. + + shr edx, 8 + + mov ah, dl + mov al, dl + + and ah, $0f ; low digit + and al, $f0 + and dl, $f0 + shr al, 1 ; *8 + shr dl, 3 ; *2 + add al, dl + add al, ah + movzx eax, al + imul eax, $60 ; minutes in seconds + + add ebx, eax + + shr edx, 8 + + mov ah, dl + mov al, dl + + and ah, $0f ; low digit + and al, $f0 + and dl, $f0 + shr al, 1 ; *8 + shr dl, 3 ; *2 + add al, dl + add al, ah + movzx eax, al + add ebx, eax ; seconds + +; here ebx contains the time of the day in seconds... +; now, compute the current date in Unix time... + + mov eax, sys_date + int $40 + + + + + mov eax, ebx + pop edx ecx ebx + return +endp + + + + +proc GetLocalTimeOffset +begin + xor eax, eax + return +endp + + + + +proc Sleep, .ms +begin + push eax ebx ecx edx + + mov ecx, 10 + mov eax, [.ms] + cdq + div ecx + mov ebx, eax + + mov eax, sys_delay_hs + int $40 + + pop edx ecx ebx eax + return +endp + + + +uglobal + rd 1024 + label __timerstack dword + + __timer_stop dd ? +endg + + + +proc __TimerProc +begin + + mov eax, sys_getsetup + mov ebx, 9 + int $40 + mov edi, eax + +.main_timer_loop: + cmp [__timer_stop], 0 + jne .end_thread + + mov eax, sys_getsetup + mov ebx, 9 + int $40 + + cmp edi, eax + jne .process_timers + + mov eax, sys_f68 + mov ebx, 1 + int $40 + jmp .main_timer_loop + +.process_timers: + mov ebx, eax + sub ebx, edi + imul ebx, __sys_time_slice + mov edi, eax + + lea eax, [__ptrFirstTimer] + +.loop: + mov eax, [eax+TTimer.next] +.loop2: + test eax, eax + jz .main_timer_loop + + test [eax+TTimer.flags], tmfRunning + jz .loop + + mov ecx, [eax+TTimer.value] + add ecx, ebx + mov [eax+TTimer.value], ecx + + cmp ecx, [eax+TTimer.interval] + jl .loop + +.exploop: + inc [eax+TTimer.Expired] + + mov ecx, [eax+TTimer.interval] + sub [eax+TTimer.value], ecx + cmp [eax+TTimer.value], ecx + jge .exploop + + cmp [eax+TTimer.Callback], 0 + je .end_event + + mov ecx, [eax+TTimer.flags] + and ecx, $0f + cmp ecx, tmfDoNothing + je .end_event + +; call the callback procedure. +.execloop: + pushad + stdcall [eax+TTimer.Callback], eax + popad + + sub [eax+TTimer.Expired], 1 + jg .execloop + +.end_event: + test [eax+TTimer.flags], tmfSyncDestroy + jz .loop + + push eax + mov eax, [eax+TTimer.next] ; after the destruction, this pointer will be lost. + stdcall TimerDestroy ; pointer from the stack. + jmp .loop2 + +.end_thread: + mov [__timer_stop], 0 + mov eax, sys_end + int $40 +endp ADDED freshlib/system/Linux/_process_native.asm Index: freshlib/system/Linux/_process_native.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/_process_native.asm @@ -0,0 +1,288 @@ +__ThreadStackSize = 1024*1024 + + +; Creates a new execution thread +; Returns: CF=1 if error. +; CF=0, eax = pid of the new process being created +body ThreadCreate +begin + push ebx ecx edx esi edi + + push ebp + mov eax, sys_mmap2 + xor ebx, ebx + mov ecx, __ThreadStackSize + mov edx, PROT_READ or PROT_WRITE or PROT_EXEC + mov esi, MAP_ANONYMOUS or MAP_PRIVATE or MAP_STACK + mov edi, -1 + xor ebp, ebp + int $80 + pop ebp + + cmp eax, $ffffff00 + jae .error + +; set the guard page: + push eax + mov ebx, eax + mov eax, sys_mprotect + mov ecx, 4096 ; one page + mov edx, PROT_NONE + pop eax + + lea ecx, [eax+__ThreadStackSize-8-$c00] + +; transfer arguments in the new stack. + mov eax, [.ptrFunction] + mov [ecx], eax + mov eax, [.ptrArguments] + mov [ecx+4], eax + lea esi, [ecx+4] + + mov eax, sys_clone + mov ebx, CLONE_SIGHAND or CLONE_THREAD or CLONE_FILES or \ + CLONE_FS or CLONE_VM or CLONE_PARENT + int 0x80 + + test eax, eax + js .error + jz .is_clone + +; push eax + +;; release the stack. +; mov eax, sys_munmap + +; mov ebx, ecx +; lea ebx, [ecx-__ThreadStackSize+8] + +; mov ecx, __ThreadStackSize +; int $80 + +; pop eax + clc + pop edi esi edx ecx ebx + return + +; The stack is not allocated or sys_clone exits with error. +.error: + stc + pop edi esi edx ecx ebx + return + +; this is the clone process - call the thread. +.is_clone: + + pop eax + call eax ; the argument is already in the stack. + mov ebx, eax ; the thread procedure can return exit code. Save it in esi. + +; and exit the process - the question is - how to free the stack allocated... + mov eax, sys_exit + int 0x80 +endp + + + +; Terminate current thread +; Returns: eax = 0 +body Terminate +begin + mov eax, sys_exit + mov ebx, [.exit_code] + int $80 + return +endp + + + + +body Exec +begin + return +endp + + + +body FreeThreadID +begin + return +endp + + + +; MUTEX functions +;_________________________________________________________________________________________ + + +MUTEX_LOCK_CONTEND = $0101 + +struct TMutex + .value dd ? + .threadID dd ? + .counter dd ? + .reserved dd ? +ends + + +body MutexCreate +begin + push eax ecx + mov ecx, [.ptrMutex] + xor eax, eax + mov dword [ecx+TMutex.value], eax + mov dword [ecx+TMutex.threadID], eax + mov dword [ecx+TMutex.counter], 0 + clc + pop ecx eax + return +endp + + + +body WaitForMutex +.time lnx_timespec +begin + pushad + mov ecx, 100 ; why 100? + mov ebx, [.ptrMutex] + + mov eax, sys_gettid + int $80 + mov edi, eax + + cmp byte [ebx+TMutex.value], 0 ; locked? + je .loop1 ; no, try to get it + +; if locked, check who own it + cmp edi, [ebx+TMutex.threadID] + je .lock_ok + +.loop1: + mov dl, 1 + xchg byte [ebx+TMutex.value], dl + test dl, dl + jz .lock_ok + + pause ; causes performance problems in the newest Intel Skylake CPU + loop .loop1 + +; Set up syscall details + mov edx, MUTEX_LOCK_CONTEND + mov ecx, FUTEX_WAIT or FUTEX_PRIVATE_FLAG + xor esi, esi ; timeout + jmp .check + +; Wait loop +.wait: + mov eax, sys_futex + int $80 + +.check: + mov eax, edx + xchg eax, [ebx+TMutex.value] + test eax, 1 + jnz .wait + +.lock_ok: + inc [ebx+TMutex.counter] + mov [ebx+TMutex.threadID], edi + clc + popad + return + +.err_timeout: + stc + popad + return +endp + + + + +body MutexRelease +begin + pushf + pushad + + mov ebx, [.ptrMutex] + mov eax, sys_gettid + int $80 + mov edi, eax + + cmp edi, [ebx+TMutex.threadID] + jne .unlock_ok + + cmp [ebx+TMutex.counter], 0 + je .dec_ok + dec [ebx+TMutex.counter] + jnz .unlock_ok + +.dec_ok: + cmp dword [ebx+TMutex.value], 1 + jne .unlock + + mov eax, 1 + xor ecx, ecx + lock cmpxchg [ebx+TMutex.value], ecx + jz .unlock_ok + +.unlock: + mov byte [ebx+TMutex.value], 0 + +; Spin, and hope someone takes the lock + mov ecx, 200 + +.wait: + test byte [ebx], 1 + jnz .unlock_ok + + rep nop + loop .wait + +; Wake up someone + mov byte [ebx+1], 0 + mov eax, sys_futex + mov ecx, FUTEX_WAKE or FUTEX_PRIVATE_FLAG + mov edx, 1 + int $80 + +.unlock_ok: + popad + popf + clc + return +endp + + + +body MutexDestroy +begin + return +endp + + + + + +; DLL procedures. + +body LibLoad +begin + stc + return +endp + + +body LibRelease +begin + stc + return +endp + + +body LibImport +begin + stc + return +endp ADDED freshlib/system/Linux/_process_posix.asm Index: freshlib/system/Linux/_process_posix.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/_process_posix.asm @@ -0,0 +1,293 @@ + +uses pthreads, libc, libdl + + +body ThreadCreate +.threadid dd ? +begin + push ecx edx + lea eax, [.threadid] + mov [.threadid], 0 + cinvoke pthread_create, eax, NULL, [.ptrFunction], [.ptrArguments] + test eax, eax + jnz .error + + cinvoke pthread_detach, [.threadid] + mov eax, [.threadid] + clc + pop edx ecx + return + +.error: + stc + pop edx ecx + return +endp + + +; Terminate current thread +; Returns: eax = 0 +body Terminate +begin + cinvoke pthread_exit, [.exit_code] + return +endp + + + + +body FreeThreadID +begin + return +endp + + + + +; MUTEX functions +;_________________________________________________________________________________________ + + +;struct TMutex +; .value dd ? +; .recursion dd ? +; .kind dd ? +; .owner dd ? +; .event dd ? +;ends + +struct TMutex + .array rb 48 +ends + + +;TODO: This implementation ignores the .ptrName argument and this way creates only +;private proces mutexes. + +body MutexCreate +.attr rb 256 +begin + pushad + + lea esi, [.attr] + cinvoke pthread_mutexattr_init, esi + cinvoke pthread_mutexattr_settype, esi, PTHREAD_MUTEX_RECURSIVE + + cinvoke pthread_mutex_init, [.ptrMutex], esi + cinvoke pthread_mutex_lock, [.ptrMutex] + + cinvoke pthread_mutexattr_destroy, esi + + popad + return +endp + + + + +body WaitForMutex +.time lnx_timespec +begin + pushad + + cinvoke pthread_mutex_trylock, [.ptrMutex] + test eax, eax + jz .finish + + mov eax, [.timeout] + test eax, eax + js .no_timeout + + mov eax, sys_clock_gettime + mov ebx, CLOCK_REALTIME + lea ecx, [.time] + int $80 + + mov eax, [.timeout] + mov ecx, 1000 + cdq + div ecx + imul edx, 1000000 + + add [.time.tv_sec], eax + add [.time.tv_nsec], edx + cmp [.time.tv_nsec], 1000000000 + jb @f + sub [.time.tv_nsec], 1000000000 + inc [.time.tv_sec] +@@: + + lea eax, [.time] + cinvoke pthread_mutex_timedlock, [.ptrMutex], eax + test eax, eax + jnz .error + jmp .finish + +.no_timeout: + cinvoke pthread_mutex_lock, [.ptrMutex] + +.finish: + clc + popad + return + +.error: + mov [esp+4*regEAX], eax + + stc + popad + return +endp + + + + +body MutexRelease +begin + pushf + push eax ecx edx + cinvoke pthread_mutex_unlock, [.ptrMutex] + pop edx ecx eax + popf + return +endp + + + +body MutexDestroy +begin + push eax ecx edx + + cinvoke pthread_mutex_destroy, [.ptrMutex] + + pop edx ecx eax + return +endp + + + +proc WaitForFutex, .pFutex, .value, .timeout + .timeout lnx_timespec +begin + pushad + + mov eax, [.timeout] + mov ecx, 1000 + cdq + div ecx + imul edx, 1000000 + + mov [.timeout.tv_sec], eax + mov [.timeout.tv_nsec], edx + cmp [.timeout.tv_nsec], 1000000000 + jb @f + sub [.timeout.tv_nsec], 1000000000 + inc [.timeout.tv_sec] +@@: + + mov eax, sys_futex + mov ebx, [.pFutex] + + mov ecx, FUTEX_WAIT + mov edx, [.value] + lea esi, [.timeout] + + cmp edx, [ebx] ; don't make system call if obvious. + jne .no_wait + + int $80 + test eax, eax + jz .no_wait + + cmp eax, EINTR + je .forced_exit + +.no_wait: + clc + popad + return + +.forced_exit: + stc + popad + return +endp + + + +proc FutexIncValue, .pFutex +begin + pushad + mov ebx, [.pFutex] + + lock inc [ebx] + + mov eax, sys_futex + mov ecx, FUTEX_WAKE + mov edx, $7fffffff + int $80 + + popad + return +endp + + + + + + + +; DLL procedures. + +body LibLoad +begin + pushad + stdcall StrPtr, [.hLibName] + + cinvoke dlopen, eax, RTLD_LAZY + test eax, eax + jnz .finish + + not eax + stc + +.finish: + mov [esp+4*regEAX], eax + popad + return +endp + + + +body LibRelease +begin + pushad + cinvoke dlclose, [.hLibrary] + test eax, eax + jz .finish ; test clears CF! + stc +.finish: + popad + return +endp + + + +body LibImport +begin + pushad + + cinvoke dlerror ; clear the error code. + + stdcall StrPtr, [.hObjectName] + cinvoke dlsym, [.hLibrary], eax + mov [esp+4*regEAX], eax + + cinvoke dlerror + test eax, eax + jz .finish + stc +.finish: + popad + return +endp ADDED freshlib/system/Linux/environment.asm Index: freshlib/system/Linux/environment.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/environment.asm @@ -0,0 +1,129 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Linux environment management library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +uglobal + var _ptrEnvironment = ? +endg + + +if used _ptrEnvironment +initialize LinuxEnvironmentLibrary +begin + lea eax, [esp+4] + mov [_ptrEnvironment], eax + return +endp +end if + + + +proc GetAllEnvironment +.return dd ? +begin + pushad + + mov [.return], 0 + mov eax, [_ptrEnvironment] + test eax, eax + jz .finish + + mov ecx, [eax] ; argument count + + lea eax, [eax+4*ecx+8] ; env table. + + mov esi, [eax] + test esi, esi + jz .finish + + push esi + +.end_loop: + cmp word [esi], 0 + lea esi, [esi+1] + jne .end_loop + + stc + sbb esi, [esp] + lea ecx, [esi+8] + + stdcall GetMem, ecx + mov [.return], eax + mov edi, eax + mov ecx, esi + pop esi + rep movsb + xor eax, eax + stosd + +.finish: + popad + mov eax, [.return] + return +endp + + + +proc GetEnvVariable, .varname +begin + push ebx ecx edx esi edi + + mov esi, [_ptrEnvironment] ; points to argc + mov eax, [esi] ; argc + lea esi, [esi+4*eax+8] ; pointer to the first env pointer. + + stdcall StrPtr, [.varname] + mov ebx, eax + +.outer: + mov edx, [esi] + lea esi, [esi+4] + + test edx, edx ; last env element? + jz .not_found + + mov edi, ebx ; ptr to name. + +.inner: + mov al, [edx] + mov ah, [edi] + lea edx, [edx+1] + lea edi, [edi+1] + + test ah, ah + jnz .check_al + + cmp al, '=' + je .found + +.check_al: + test al, al + jz .outer + + cmp al, ah + je .inner + jmp .outer + +.not_found: + xor eax, eax + stc + pop edi esi edx ecx ebx + return + +.found: + stdcall StrDupMem, edx + pop edi esi edx ecx ebx + clc + return +endp Index: freshlib/system/Linux/files.asm ================================================================== --- freshlib/system/Linux/files.asm +++ freshlib/system/Linux/files.asm @@ -1,89 +1,761 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshGUI::.. - portable, assembler based GUI toolkit. | -;| __________________________________________________________________ | -;| | -;| This file | -;| ~~~~~~~~~ | -;| Author: John Found | -;| | -;| Title: files.asm Files management library. OS dependent | -;| | -;| OS: Linux | -;| | -;| Notes and changes: This library provides unified interface to | -;| access files for Linux OS | -;| | -;|____________________________________________________________________| +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Files manipulation library. Linux part. +; +; Target OS: Linux +; +; Dependencies: Uses system calls for file processing and memory.asm for memory +; allocations. +; +; Notes: +;_________________________________________________________________________________________ + +uses libc + +DIR_SLASH equ '/' +DIR_SEP_PAIR equ '/\' ; for use with StrNormalizePath and StrNormalizePath2 fsFromBegin = 0 -fsFromEnd = 1 -fsFromCurrent = 2 +fsFromCurrent = 1 +fsFromEnd = 2 + + +faReadOnly = O_RDONLY +faWriteOnly = O_WRONLY +faReadWrite = O_RDWR + +faOpenAlways = O_CREAT ; if the file does not exists it will be created. +faCreateAlways = O_CREAT or O_TRUNC ; Creates new file always. If the file exists, truncates it. +faCreateOnly = O_CREAT or O_EXCL ; Creates new file only if not exists, else error. + +faNonBlocking = O_NONBLOCK + +lockExclusive = LOCK_EX +lockShared = LOCK_SH +lockUnlock = LOCK_UN +lockTryOnly = LOCK_NB + + +if used STDIN | used STDOUT | used STDERR + initialize InitStdHandles + begin + if used STDIN + mov dword [__std_handle_in], 0 + end if + + if used STDOUT + mov dword [__std_handle_out], 1 + end if + + if used STDERR + mov dword [__std_handle_err], 2 + end if + return + endp +end if + + + +body FileOpenAccess +begin + push edx ecx ebx + + if defined ptrStrTable + stdcall StrPtr, [.filename] + mov ebx, eax + else + mov ebx, [.filename] + end if + + mov eax, sys_open + mov ecx, [.access] + mov edx, S_IRUSR+S_IWUSR+S_IRGRP+S_IWGRP+S_IROTH + int $80 + cmp eax, -1 + jle .error + clc + pop ebx ecx edx + return + +.error: + neg eax + +if defined options.DebugMode & options.DebugMode + stdcall __FileErrorDisplay, eax, [.filename] +end if + + stc + pop ebx ecx edx + return +endp + + + ;-------------------------------------- -; if CF = 0, eax is handle to the file. +; if CF = 0, the file was closed. ; if CF = 1, eax is error code. ;-------------------------------------- -proc FileOpen, .filename -begin - return -endp - - - -proc FileCreate, .filename -begin - return -endp - - - - -proc FileClose, .handle -begin - return -endp - - - - -proc FileRead, .handle, .buffer, .count -begin - return -endp - - +body FileClose +begin + push ebx + mov eax, sys_close + mov ebx, [.handle] + int $80 + cmp eax, -1 + jle .error + clc + pop ebx + return +.error: + neg eax + stc + pop ebx + return +endp + + + +body FileLock +begin + push eax ebx ecx + + mov ebx, [.handle] + mov eax, sys_flock + mov ecx, [.lock] + int $80 + + shl eax, 1 ; CF = 1 if eax<0 + pop ecx ebx eax + return +endp + + +; returns 32bit file size in eax +body FileSize +.stat STAT +begin + push edx ecx ebx + + mov eax, sys_newfstat + mov ebx, [.handle] + lea ecx, [.stat] + int $80 + + cmp eax, -1 + jle .error + + mov eax, [.stat.st_size] + clc + pop ebx ecx edx + return + +.error: + neg eax + stc + pop ebx ecx edx + return +endp + + + +body FileRead +begin + push edx ecx ebx + mov eax, sys_read + mov ebx, [.handle] + mov ecx, [.buffer] + mov edx, [.count] + int $80 + cmp eax, -1 + jle .error + clc + pop ebx ecx edx + return + +.error: + neg eax + stc + pop ebx ecx edx + return +endp + + +body FileWrite +begin + push edx ecx ebx + mov eax, sys_write + mov ebx, [.handle] + mov ecx, [.buffer] + mov edx, [.count] + int $80 + cmp eax, -1 + jle .error + clc + pop ebx ecx edx + return + +.error: + neg eax + stc + pop ebx ecx edx + return +endp ;---------------------------------------------------- ; if CF = 0, eax is the new possition in the file ; if CF = 1, eax is error code. ;---------------------------------------------------- -proc FileSeek, .handle, .dist, .direction +body FileSeek +begin + push edx ecx ebx + mov eax,sys_lseek + mov ebx,[.handle] + mov ecx,[.dist] + mov edx,[.direction] + int $80 + cmp eax,-1 + jle .error + clc + pop ebx ecx edx + return + +.error: + neg eax + stc + pop ebx ecx edx + return +endp + + + +body FileTruncate +begin + push edx ecx ebx + + mov eax, sys_lseek + mov ebx, [.handle] + xor ecx, ecx + mov edx, fsFromCurrent + int $80 + cmp eax, -1 + jle .error + + mov ecx, eax + mov eax, sys_ftruncate + mov ebx, [.handle] + int $80 + cmp eax,-1 + jle .error + + clc + pop ebx ecx edx + return + +.error: + neg eax + stc + pop ebx ecx edx + return +endp + + +body FileTruncateTo ; , .handle, .length +begin + push edx ecx ebx + + mov eax, sys_ftruncate + mov ecx, [.length] + mov ebx, [.handle] + int $80 + cmp eax,-1 + jle .error + + clc + pop ebx ecx edx + return + +.error: + neg eax + stc + pop ebx ecx edx + return +endp + + + +;-------------------------------------- +; if CF = 0, the file was deleted. +; if CF = 1, eax is error code. +;-------------------------------------- +body FileDelete +begin + push ebx + + if defined ptrStrTable + stdcall StrPtr, [.filename] + mov ebx, eax + else + mov ebx, [.filename] + end if + + mov eax,sys_unlink + int $80 + cmp eax,-1 + jle .error + clc + pop ebx + return + +.error: + neg eax + stc + pop ebx + return +endp + + + + +body GetCurrentDir +.buffer rb 1024 +begin + push ebx ecx + + mov eax, sys_getcwd + lea ebx, [.buffer] + mov ecx, 1024 + int $80 + cmp eax, -1 + jle .error + + stdcall StrDupMem, ebx + clc + pop ecx ebx + return + +.error: + neg eax + stc + pop ecx ebx + return +endp + + + + +body SetCurrentDir +begin + push ebx eax + + stdcall StrPtr, [.hDirectory] + mov ebx, eax + mov eax, sys_chdir + int $80 + + clc + test eax, eax + jns .finish + + neg eax + stc + +.finish: + pop eax ebx + return +endp + + + +body GetErrorString +.buffer rb 1024 +begin + push ecx edx + + lea eax, [.buffer] + cinvoke strerror_r, [.code], eax, 1024 + test eax, eax + jnz @f + lea eax, [.buffer] +@@: + stdcall StrDupMem, eax + + pop edx ecx + clc + return +endp + + + + +body FreeErrorString +begin + stdcall StrDel, [.ptrString] + return +endp + + + + +ftDirectory = DT_DIR +ftUnknown = DT_UNKNOWN +ftFile = DT_REG +ftLinkMask = $80000000 + + +; reads all items of the directory and fills them in the TArray of type TDirItem. +; arguments: +; dir - string with the path to the directory. +; +; returns: +; if not error: CF=0; eax = pointer to TArray of TDirItem; +; if error: CF=1; eax = error code; + +body DirectoryRead +.size dd ? +.stat STAT64 +begin + push ebx ecx edx esi edi + + stdcall GetMem, 1024 + mov esi, eax + + stdcall CreateArray, sizeof.TDirItem + mov edi, eax + +; open the file + if defined ptrStrTable + stdcall StrPtr, [.dir] + mov ebx, eax + else + mov ebx, [.dir] + end if + + mov eax, sys_open + mov ecx, O_RDONLY or O_DIRECTORY + mov edx, S_IWUSR+S_IWGRP+S_IWOTH + int $80 + test eax, eax + js .error + + mov ebx, eax + +.read_loop: + + mov eax, sys_getdents64 + mov ecx, esi + mov edx, 1024 + int $80 + +; process read information + + test eax, eax + jz .end_of_directory + js .error + + mov [.size], eax + + xor ecx, ecx + +.buffer_parse: + lea eax, [esi+ecx+linux_dirent64.d_name] + stdcall StrDup, eax + push eax + + stdcall AddArrayItems, edi, 1 + mov edi, edx + + pop [eax+TDirItem.hFilename] + + movzx edx, byte [esi+ecx+linux_dirent64.d_type] + + call .get_file_details + + movzx edx, word [esi+ecx+linux_dirent64.d_reclen] + add ecx, edx + + cmp ecx, [.size] + jb .buffer_parse + + jmp .read_loop + +.end_of_directory: + + mov eax, sys_close + int $80 + + stdcall FreeMem, esi + mov eax, edi + pop edi esi edx ecx ebx + clc + return + +.error: + stdcall FreeMem, esi + neg eax + pop edi esi edx ecx ebx + stc + return + +.get_file_details: + push ecx edx esi edi + mov edi, eax ; TDirItem + + stdcall StrPtr, [eax+TDirItem.hFilename] + mov ecx, eax + + mov eax, sys_fstatat64 + lea edx, [.stat] + xor esi, esi + int $80 + + test eax, eax + jnz .end_file + + mov eax, [.stat.st_mode] + mov [edi+TDirItem.Perm], eax + + mov edx, [esp+8] + cmp edx, DT_LNK + jne .type_ok + + mov edx, [.stat.st_mode] + shr edx, 12 + or edx, ftLinkMask + +.type_ok: + mov [edi+TDirItem.Type], edx + + mov eax, dword [.stat.st_size] + mov edx, dword [.stat.st_size+4] + + mov dword [edi+TDirItem.Size], eax + mov dword [edi+TDirItem.Size+4], edx + + mov eax, [.stat.st_mtime] + xor edx, edx + mov dword [edi+TDirItem.mTime], eax + mov dword [edi+TDirItem.mTime+4], edx + +.end_file: + pop edi esi edx ecx + retn +endp + + + + + +body CreateDirectory +begin + pushad + + if defined ptrStrTable + stdcall StrPtr, [.DirName] + mov ebx, eax + else + mov ebx, [.DirName] + end if + + mov eax, sys_mkdir + mov ecx, 755o + int $80 + + cmp eax, -1 + jle .error + clc + popad + return + +.error: + neg eax + mov [esp+4*regEAX], eax + stc + popad + return +endp + + + + + + + + +body GetFileInfo +.fstat STAT +begin + push edi ebx ecx eax + + lea edi, [.fstat] + mov ecx, sizeof.STAT / 4 + xor eax, eax + rep stosd + + mov eax, sys_newfstat + mov ebx, [.hFile] + lea ecx, [.fstat] + int $80 + + test eax, eax + jnz .error + + lea ecx, [.fstat] + mov ebx, [.ptrFileInfo] + + mov eax, [ecx+STAT.st_atime] + cdq + mov dword [ebx+TFileInfo.timeAccessed], eax + mov dword [ebx+TFileInfo.timeAccessed+4], edx + + mov eax, [ecx+STAT.st_mtime] + cdq + mov dword [ebx+TFileInfo.timeModified], eax + mov dword [ebx+TFileInfo.timeModified+4], edx + +; linux does not support creation time, so we set it as the modified time. + mov dword [ebx+TFileInfo.timeCreated], eax + mov dword [ebx+TFileInfo.timeCreated+4], edx + + pop eax ecx ebx edi + clc + return + +.error: + neg eax + mov [esp], eax + + pop eax ecx ebx edi + stc + return + +endp + + + +; Returns: +; CF=1 if the file NOT EXISTS +; CF=0 if the file EXISTS +body FileExists +.fstat STAT +begin + pushad + + lea edi, [.fstat] + mov ecx, sizeof.STAT / 4 + xor eax, eax + rep stosd + + if defined ptrStrTable + stdcall StrPtr, [.hFileName] + mov ebx, eax + else + mov ebx, [.hFileName] + end if + + mov eax, sys_newstat + lea ecx, [.fstat] + int 80h + test eax, eax + jz .exists + +; error + stc + popad + return + +.exists: + clc + popad + return +endp + + + + +body CreatePipe +.hRead dd ? +.hWrite dd ? begin + push ebx + + mov eax, sys_pipe + lea ebx, [.hRead] + int $80 + neg eax + jnz .err + + clc + mov eax, [.hRead] + mov edx, [.hWrite] + pop ebx + return + +.err: + stc + pop ebx return endp -proc FileDelete, .filename + + + +flushInput = 0 +flushOutput = 1 +flushInputOutput = 2 + +TCFLSH = $540B ; Linux constant. + + +proc TerminalFlush, .hFile, .flush_what begin + pushad + mov eax, sys_ioctl + mov ebx, [.hFile] + mov ecx, TCFLSH + mov edx, [.flush_what] + int $80 + + mov [esp+4*regEAX], eax + bt eax, 31 ; if negative - error + popad return endp -proc GetErrorString, .code + +body IsRelativePath ;, .hPath begin + push eax + stdcall StrLen, [.hPath] + test eax, eax + jz .relative + + stdcall StrPtr, [.hPath] + cmp byte [eax], DIR_SLASH + clc + je .finish + +.relative: + stc ; relative! + +.finish: + pop eax return endp -proc FreeErrorString, .ptrString +body GetCurrentPrefix begin + stdcall StrNew return endp ADDED freshlib/system/Linux/heapmgr.asm Index: freshlib/system/Linux/heapmgr.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/heapmgr.asm @@ -0,0 +1,223 @@ +;this is internal procedure to be used with heap manager's mem.init. +;Don't call this procedure directly. + +;; @name mem.alloc_heap +;; @desc +;; This is internal procedure of heap manager, that handles +;; platform-dependent aspect of allocating entire heap. +;; Do not call this procedure. +;; @arg size +;; Initial size of heap to allocate. +;; @ret +;; CF set on error, otherwise +;; EAX = pointer to allocated memory block +;; @err ERR_OUT_OF_MEM +;; Not enough memory +;; @err ERR_ZERO_SIZE +;; size = 0 +;; @err ERR_OUT_OF_RANGE +;; size is negative (or larger than 7FFFFFFFh if viewed as unsigned) +;; @err ERR_UNKNOWN +;; System returned error that wasn't translated to FASMLIB error. +;; You can {contact} author about this, and translation can be added. +;; @warn Don't call this procedure! +;; @note Returned pointer is always >= 10000h to make it easily distinguishable from handles. +;; @note This procedure is used only on platforms where FASM heap manager is used. +proc mem.alloc_heap, .size +begin + push ebx ecx + + ;error if size=0 + cmp [.size], 0 + je .error_size_zero + + ;error is size>=80000000h + cmp [.size], 70000000h + ja .error_size_too_big + + ;call brk(0) to find beginning of heap + xor ebx, ebx + mov eax, sys_brk + int 80h + cmp eax, -4096 + ja .error_brk + mov ecx, eax + + ;call brk(ecx+.size) to set up heap size + mov ebx, ecx + add ebx, [.size] + mov eax, sys_brk + int 80h + cmp eax, -4096 + ja .error_brk + + ;return address of heap + mov eax, ecx + +.rnc: clc +.r: pop ecx ebx + return + +.rc: stc + jmp .r + +.error_brk: + + ;catch out-of-memory + cmp eax, -12 ;ENOMEM + jne @f + mov eax, ERR_OUT_OF_MEM + jmp .rc +@@: + mov eax, ERR_UNKNOWN + jmp .rc + +.error_size_zero: + mov eax, ERR_ZERO_SIZE + jmp .rc + +.error_size_too_big: + mov eax, ERR_OUT_OF_RANGE + jmp .rc +endp + + + + +;internal procedure to be used with heap manager's mem.init. +;Don't call this procedure directly. + +;; @name mem.realloc_heap +;; @desc +;; This is internal procedure of heap manager, that handles +;; platform-dependent aspect of resizing entire heap. +;; Do not call this procedure. +;; @arg heapptr +;; Pointer to heap block returned by {mem.alloc_heap} or by this procedure. +;; @arg oldsize +;; Current size of heap. Must be provided by caller. +;; @arg newsize +;; Desired size of heap. +;; @ret +;; CF set on error, otherwise +;; EAX = heapptr +;; @err ERR_INVALID_POINTER +;; Heap pointer is invalid +;; @err ERR_OUT_OF_MEM +;; Not enough memory +;; @err ERR_ZERO_SIZE +;; newsize = 0 +;; @err ERR_OUT_OF_RANGE +;; size is negative (or larger than 7FFFFFFFh if viewed as unsigned) +;; @err ERR_UNKNOWN +;; System returned error that wasn't translated to FASMLIB error. +;; You can {contact} author about this, and translation can be added. +;; @warn Don't call this procedure! +;; @warn Heap cannot be moved during resizing. +;; @note Data in heap must be preserved. +;; @note If block is enlarging, then contents of added memory are unknown +proc mem.realloc_heap, .heapptr, .newsize, .oldsize +begin + push ebx + + ;call sys_brk(blockptr) + mov ebx, [.heapptr] ;pointer to block + add ebx, [.newsize] + mov eax, sys_brk ;sys_brk + int 80h + + ;check error + cmp eax, -4096 + ja .error_brk + +.rnc: clc +.r: pop ebx + return +.rc: stc + jmp .r + +.error_brk: + ;catch invalid block pointer + cmp eax, -22 ;EINVAL + jne @f + mov eax, ERR_INVALID_POINTER + jmp .rc +@@: + + ;catch out-of-memory + cmp eax, -12 ;ENOMEM + jne @f + mov eax, ERR_OUT_OF_MEM + jmp .rc +@@: + + mov eax, ERR_UNKNOWN + jmp .rc + +.error_newsize_zero: + mov eax, ERR_ZERO_SIZE + jmp .rc + +.error_newsize_too_big: + mov eax, ERR_OUT_OF_RANGE + jmp .rc +endp + + + + + + +;internal procedure to be used with heap manager's mem.init. +;Don't call this procedure directly. + + +;; @name mem.free_heap +;; @desc +;; This is internal procedure of heap manager, that handles +;; platform-dependent aspect of deallocating entire heap. +;; Do not call this procedure. +;; @arg heapptr +;; Pointer to heap, returned by {mem.alloc_heap} or {mem.realloc_heap}. +;; @arg heapsize +;; Current size of heap. Must be provided by caller. +;; @err ERR_INVALID_POINTER +;; Heap pointer is invalid +;; @err ERR_UNKNOWN +;; System returned error that wasn't translated to FASMLIB error. +;; You can {contact} author about this, and translation can be added. +proc mem.free_heap, .heapptr, .heapsize +begin + push ebx ecx + + ;call sys_brk(heapptr) + mov ebx, [.heapptr] ;pointer to block + mov eax, sys_brk + int 80h + + ;check error + cmp eax, -4096 + ja .error_brk + + clc + +.r: pop ecx ebx + return + +.error_brk: + + ;catch invalid block pointer + cmp eax, -22 ;EINVAL + jne @f + mov eax, ERR_INVALID_POINTER + stc + jmp .r +@@: + mov eax, ERR_UNKNOWN + stc + jmp .r + +endp + + + Index: freshlib/system/Linux/memory.asm ================================================================== --- freshlib/system/Linux/memory.asm +++ freshlib/system/Linux/memory.asm @@ -1,79 +1,70 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshLib::.. - portable, assembler library and GUI toolkit. | -;|____________________________________________________________________| -;| | -;| This file | -;| _________ | -;| Author: John Found | -;| | -;| Title: memory.asm Memory management library. OS dependent | -;| | -;| OS: Linux | -;| | -;| Notes and changes: This library provides unified interface to | -;| memory manager of the Linux OS | -;| | -;|____________________________________________________________________| - - -initialize InitMemoryManager -begin - return -endp - - -proc GetMem, .size -begin - push ebx ecx edx esi edi +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. Linux part. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Uses libc (malloc etc.) heap management functions. +;_________________________________________________________________________________________ + +uses libc + +body GetMem +begin + pushad mov ebx, [.size] add ebx, 3 and bl, $fc ; align to dword. cinvoke malloc, ebx test eax, eax jz .error - push eax + + mov [esp+4*regEAX], eax cld mov edi, eax mov ecx, ebx shr ecx, 2 xor eax, eax rep stosd - pop eax clc - pop edi esi edx ecx ebx + popad return .error: stc - pop edi esi edx ecx ebx + popad return - endp -proc FreeMem, .ptr +body FreeMem begin + cmp [.ptr], 0 + je @f + pushad cinvoke free, [.ptr] popad - clc +@@: return endp -proc ResizeMem, .ptr, .newsize +body ResizeMem begin push ebx ecx edx esi edi mov ebx, [.newsize] add ebx, 3 @@ -89,6 +80,32 @@ .error: stc pop edi esi edx ecx ebx return -endp +endp + + + + +if used SpaceAllocate & ~ used GetMem +initialize ReserveAddressSpace +begin + mov eax, sys_brk + xor ebx, ebx + int $80 + mov [_MemoryFreeSpace], eax + return +endp +end if + + +body SpaceAllocate +begin + push ebx + mov eax, sys_brk + mov ebx, [_MemoryFreeSpace] + add ebx, [.size] + int $80 + pop ebx + return +endp ADDED freshlib/system/Linux/network.asm Index: freshlib/system/Linux/network.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/network.asm @@ -0,0 +1,652 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of the network library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +uses libc + +serrAccess = EACCES +serrNoMemory = ENOMEM +serrProtocolNotSupported= EPROTONOSUPPORT + +serrAddessInUse = EADDRINUSE +serrNotASocket = ENOTSOCK + +serrWouldBlock = EWOULDBLOCK +serrBadSocket = EBADF +serrConnRefused = ECONNREFUSED +serrConnReset = ECONNRESET +serrDestAddrReq = EDESTADDRREQ +serrInvalidAddress = EFAULT +serrInterrupt = EINTR +serrInvalidArgument = EINVAL +serrIsConnected = EISCONN + +serrTimeout = EWOULDBLOCK +serrAborted = EINVAL + + +proc __SocketError +begin + test eax, eax + jns .no_error + neg eax + stc + return + +.no_error: + clc + return +endp + + +body SocketCreate +begin + push ebx ecx edx + + mov eax, sys_socketcall + mov ebx, SYS_SOCKET + lea ecx, [.protocol_family] + int $80 + + call __SocketError + pop edx ecx ebx + return +endp + + +body SocketShutDown +.sock dd ? +.dir dd ? +begin + push ebx ecx edx + + push [.hSocket] + pop [.sock] + mov [.dir], SHUT_RDWR + + mov eax, sys_socketcall + mov ebx, SYS_SHUTDOWN + lea ecx, [.sock] + int $80 + + call __SocketError + + pop edx ecx ebx + return +endp + + + +body SocketClose +.params rd 2 +.buffer rb 256 +begin + push ebx ecx edx + + push [.hSocket] + pop [.params] + mov [.params+4], SHUT_RDWR + + mov eax, sys_socketcall + mov ebx, SYS_SHUTDOWN + lea ecx, [.params] + int $80 + call __SocketError + jc .finish + +.loop: + lea ecx, [.buffer] + stdcall SocketReceive, [.hSocket], ecx, 256, 0 + jc .finish + test eax, eax + jnz .loop + +.finish: + + mov eax, sys_close + mov ebx, [.hSocket] + int $80 + call __SocketError + + pop edx ecx ebx + return +endp + + + +body SocketConnect +.socket dd ? +.paddr dd ? +.addrsize dd ? +begin + push ebx ecx edx + + mov eax, [.hSocket] + mov ebx, [.pAddress] + mov [.socket], eax + mov [.paddr], ebx + + mov ecx, sizeof.TSocketAddressIn + cmp [ebx+TSocketAddress.saFamily], AF_INET + je .do_connect + + mov ecx, sizeof.TSocketAddressIn6 + cmp [ebx+TSocketAddress.saFamily], AF_INET6 + je .do_connect + + mov eax, -EINVAL + cmp [ebx+TSocketAddress.saFamily], AF_UNIX + jne .finish + + mov ecx, sizeof.TSocketAddressUn + +.do_connect: + mov [.addrsize], ecx + + mov eax, sys_socketcall + mov ebx, SYS_CONNECT + lea ecx, [.socket] + int $80 + +.finish: + call __SocketError + pop edx ecx ebx + return +endp + + + +body SocketBind +.socket dd ? +.paddr dd ? +.addrsize dd ? +begin + push ebx ecx edx + + mov eax, [.hSocket] + mov ebx, [.pAddress] + mov [.socket], eax + mov [.paddr], ebx + + mov ecx, sizeof.TSocketAddressIn + cmp [ebx+TSocketAddress.saFamily], AF_INET + je .do_bind + + mov ecx, sizeof.TSocketAddressIn6 + cmp [ebx+TSocketAddress.saFamily], AF_INET6 + je .do_bind + + mov eax, -EINVAL + cmp [ebx+TSocketAddress.saFamily], AF_UNIX + jne .finish + + mov ecx, sizeof.TSocketAddressUn + +.do_bind: + mov [.addrsize], ecx + + mov eax, sys_socketcall + mov ebx, SYS_BIND + lea ecx, [.socket] + int $80 + +.finish: + call __SocketError + pop edx ecx ebx + return +endp + + + +body SocketListen +begin + push ebx ecx edx + + mov eax, sys_socketcall + mov ebx, SYS_LISTEN + lea ecx, [.hSocket] + int $80 + + call __SocketError + pop edx ecx ebx + return +endp + + + +body SocketAccept +.sock dd ? +.addr dd ? +.plen dd ? + +.addrlen dd ? +begin + push ebx edx + + mov eax, [.hSocket] + lea ebx, [.addrlen] + mov ecx, [.pAddress] + mov edx, sizeof.TSocketAddressIn + + test ecx, ecx + cmovz edx, ecx + + mov [.sock], eax + mov [.plen], ebx + mov [.addr], ecx + mov [.addrlen], edx + + mov eax, sys_socketcall + mov ebx, SYS_ACCEPT + lea ecx, [.sock] + int $80 + + call __SocketError + mov ecx, [.addrlen] + + pop edx ebx + return +endp + + + +body SocketSend +begin + push ebx ecx edx + + or [.flags], MSG_NOSIGNAL + mov eax, sys_socketcall + mov ebx, SYS_SEND + lea ecx, [.hSocket] + int $80 + call __SocketError + pop edx ecx ebx + return +endp + + +body SocketReceive +begin + push ebx ecx edx + mov eax, sys_socketcall + mov ebx, SYS_RECV + lea ecx, [.hSocket] + int $80 + call __SocketError + pop edx ecx ebx + return +endp + + +body SocketSendTo +.sock dd ? +.buff dd ? +.len dd ? +.flgs dd ? +.addr dd ? +.alen dd ? +begin + push ebx ecx edx + + lea ecx, [.sock] + mov edx, 16 + +.copy: + mov eax, [.hSocket+4*edx] + mov [ecx+4*edx], eax + dec edx + jns .copy + mov [.alen], sizeof.TSocketAddress + + mov eax, sys_socketcall + mov ebx, SYS_SENDTO + int $80 + call __SocketError + + pop edx ecx ebx + return +endp + + +body SocketReceiveFrom +.sock dd ? +.buff dd ? +.len dd ? +.flgs dd ? +.addr dd ? +.alen dd ? +begin + push ebx edx + + lea ecx, [.sock] + mov edx, 16 + +.copy: + mov eax, [.hSocket+4*edx] + mov [ecx+4*edx], eax + dec edx + jns .copy + mov [.alen], sizeof.TSocketAddress + + mov eax, sys_socketcall + mov ebx, SYS_RECVFROM + int $80 + call __SocketError + mov ecx, [.alen] + pop edx ebx + return +endp + + + +body SocketGetOption +.socket dd ? +.level dd ? +.option dd ? +.ptr_buffer dd ? +.ptr_size dd ? + +.ret_size dd ? +.buffer rd 4 +begin + push ebx ecx edx + + mov eax, [.hSocket] + mov ebx, [.idOption] + lea ecx, [.buffer] + + mov [.socket], eax + mov [.level], SOL_SOCKET + mov [.option], ebx + mov [.ptr_buffer], ecx + lea eax, [.ret_size] + mov [.ptr_size], eax + mov [.ret_size], 16 + + mov eax, sys_socketcall + mov ebx, SYS_GETSOCKOPT + lea ecx, [.socket] + int $80 + + call __SocketError + jc .finish + + cmp [.idOption], soSendTimeout + je .timeouts + cmp [.idOption], soRecvTimeout + je .timeouts + cmp [.idOption], soLinger + je .linger + + mov eax, [.buffer] + clc + +.finish: + pop edx ecx ebx + return + +.timeouts: + mov eax, [.buffer+lnx_timeval.tv_usec] + cdq + mov ecx, 1000 + idiv ecx + mov edx, [.buffer+lnx_timeval.tv_sec] + imul edx, 1000 + add eax, edx + clc + jmp .finish + +.linger: + mov eax, [.buffer] ; linger flag + test eax, eax + jz .finish + + mov eax, [.buffer+4] + clc + jmp .finish +endp + + + +body SocketSetOption +.socket dd ? +.level dd ? +.option dd ? +.ptr_buffer dd ? +.buf_size dd ? + +.buffer rd 4 +begin + push ebx ecx edx + + mov eax, [.hSocket] + mov ebx, [.idOption] + lea ecx, [.buffer] + + mov [.socket], eax + mov [.level], SOL_SOCKET + mov [.option], ebx + mov [.ptr_buffer], ecx + + cmp ebx, soRecvTimeout + je .timeouts + cmp ebx, soSendTimeout + jne .not_timeout + +.timeouts: + mov eax, [.Value] ; time in [ms] + cdq + mov ecx, 1000 + div ecx + + imul edx, 1000 ; in [us] + + lea ecx, [.buffer] + mov [ecx+lnx_timeval.tv_sec], eax ; the seconds. + mov [ecx+lnx_timeval.tv_usec], edx ; the microseconds. + mov [.buf_size], sizeof.lnx_timeval + jmp .call_socket + +.not_timeout: + cmp ebx, soLinger + jne .not_linger + + mov eax, [.Value] + mov [.buffer], eax + mov [.buffer+4], eax + mov [.buf_size], 8 + jmp .call_socket + +.not_linger: + mov eax, [.Value] + mov [.buffer], eax + mov [.buf_size], 4 + +.call_socket: + mov eax, sys_socketcall + mov ebx, SYS_SETSOCKOPT + lea ecx, [.socket] + int $80 + + call __SocketError + + pop edx ecx ebx + return +endp + + + +struct TAddrInfo + .flags dd ? + .family dd ? + .sock_type dd ? + .protocol dd ? + .addrlen dd ? + .p_sock_addr dd ? + .p_canonname dd ? + .p_next dd ? ; next addrinfo structure. +ends + + + +; returns the IP address of some domain in EAX + +body ResolveDomainIP;, .hDomain +.result dd ? +begin + pushad + + stdcall StrPtr, [.hDomain] + + lea ecx, [.result] + + mov edi, esp + and esp, $fffffff0 + cinvoke getaddrinfo, eax, 0, 0, ecx + mov esp, edi + + test eax, eax + jnz .error + + mov esi, [.result] + +.loop: + test esi, esi + jz .not_found + + cmp [esi+TAddrInfo.family], AF_INET + jne .next + + cmp [esi+TAddrInfo.sock_type], SOCK_STREAM + jne .next + + cmp [esi+TAddrInfo.protocol], IPPROTO_TCP + jne .next + + cmp [esi+TAddrInfo.addrlen], sizeof.TSocketAddressIn + je .found + +.next: + mov esi, [esi+TAddrInfo.p_next] + jmp .loop + +.end_loop: + + +.found: + mov edx, [esi+TAddrInfo.p_sock_addr] + mov eax, [edx+TSocketAddressIn.saAddress] + bswap eax + mov [esp+4*regEAX], eax + + clc + +.finish: + + pushf + cinvoke freeaddrinfo, [.result] + popf + +.exit: +; mov esp, [.stack] + popad + return + +.not_found: + stc + jmp .finish + +.error: + stc + jmp .exit + +endp + + + + +body ResolveDomainIP6;, .hDomain +.result dd ? +begin + pushad + + stdcall StrPtr, [.hDomain] + + lea ecx, [.result] + + mov edi, esp + and esp, $fffffff0 + cinvoke getaddrinfo, eax, 0, 0, ecx + mov esp, edi + + test eax, eax + jnz .error + + mov esi, [.result] + +.loop: + test esi, esi + jz .not_found + + cmp [esi+TAddrInfo.family], AF_INET6 + jne .next + + cmp [esi+TAddrInfo.sock_type], SOCK_STREAM + jne .next + + cmp [esi+TAddrInfo.protocol], IPPROTO_TCP + jne .next + + cmp [esi+TAddrInfo.addrlen], sizeof.TSocketAddressIn6 + je .found + +.next: + mov esi, [esi+TAddrInfo.p_next] + jmp .loop + +.end_loop: + + +.found: + mov edx, [esi+TAddrInfo.p_sock_addr] + mov eax, [edx+TSocketAddressIn6.saAddress.addr32] + mov ebx, [edx+TSocketAddressIn6.saAddress.addr32+4] + mov ecx, [edx+TSocketAddressIn6.saAddress.addr32+8] + mov edx, [edx+TSocketAddressIn6.saAddress.addr32+12] + + mov [esp+4*regEAX], eax + mov [esp+4*regEBX], ebx + mov [esp+4*regECX], ecx + mov [esp+4*regEDX], edx + clc + +.finish: + + pushf + cinvoke freeaddrinfo, [.result] + popf + +.exit: +; mov esp, [.stack] + popad + return + +.not_found: + stc + jmp .finish + +.error: + stc + jmp .exit + +endp ADDED freshlib/system/Linux/process.asm Index: freshlib/system/Linux/process.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/process.asm @@ -0,0 +1,466 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Process management library. Linux part +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + + +; Terminate all process threads +body TerminateAll +begin + mov eax, sys_exit_group + mov ebx, [.exit_code] + int $80 + return +endp + + + + +body SetForcedTerminateHandler + + .action lnx_sigaction + +begin + pushad + + mov eax, [.procHandler] + mov [__UserSignalsProc], eax + + mov [.action.sa_handler], __TerminateSignalsHandler + mov [.action.sa_sigaction], 0 + mov [.action.sa_mask], 0 + mov [.action.sa_flags], 0 + mov [.action.sa_restorer], 0 + + mov eax, sys_sigaction + mov ebx, SIGTERM + lea ecx, [.action] + xor edx, edx + int $80 + + mov eax, sys_sigaction + mov ebx, SIGINT + lea ecx, [.action] + xor edx, edx + int $80 + + mov eax, sys_sigaction + mov ebx, SIGQUIT + lea ecx, [.action] + xor edx, edx + int $80 + + mov eax, sys_sigaction + mov ebx, SIGHUP + lea ecx, [.action] + xor edx, edx + int $80 + + mov eax, sys_sigaction + mov ebx, SIGUSR1 + lea ecx, [.action] + xor edx, edx + int $80 + + popad + return +endp + + +uglobal + __UserSignalsProc dd ? + __MemoryFault dd ? +endg + + +proc __TerminateSignalsHandler, .signal +begin + pushad + DebugMsg "Terminating event received!" + + cmp [__UserSignalsProc], 0 + je .finish + + stdcall [__UserSignalsProc], [.signal] + +.finish: + popad + cret +endp + + + + + + +body GetCmdArguments +begin + push ecx edx esi + + mov esi, [_ptrEnvironment] + + mov ecx, [esi] + add esi, 4 + + stdcall CreateArray, 4 + mov edx, eax + jecxz .array_ok + + stdcall AddArrayItems, eax, ecx + +.array_ok: + push edx + jecxz .arg_ok + + lea edx, [edx+TArray.array] + +.loop: + lodsd + stdcall StrDupMem, eax + mov [edx], eax + add edx, 4 + loop .loop + +.arg_ok: + pop eax + pop esi edx ecx + return +endp + + + + + + + +proc SetSegmentationFaultHandler, .procHandler + + .action lnx_sigaction + +begin + pushad + + mov eax, [.procHandler] + mov [__MemoryFault], eax + + mov [.action.sa_handler], __ExceptionHandler + mov [.action.sa_sigaction], 0 + mov [.action.sa_mask], 0 + mov [.action.sa_flags], 0 + mov [.action.sa_restorer], 0 + + mov eax, sys_sigaction + mov ebx, SIGSEGV + lea ecx, [.action] + xor edx, edx + int $80 + + popad + return +endp + + + +if used __ExceptionHandler + +__reg_names db 'eax', sig_context.eax + db 'ebx', sig_context.ebx + db 'ecx', sig_context.ecx + db 'edx', sig_context.edx + db 'esi', sig_context.esi + db 'edi', sig_context.edi + db 'ebp', sig_context.ebp + db 'esp', sig_context.esp + dd 0 + +__ExceptionHandler: + + lea esi, [esp+8] ; the start of sig_context structure. + + stdcall GetCmdArguments + mov edx, eax + + stdcall StrSplitFilename, [edx+TArray.array] + stdcall StrDel, eax + + stdcall StrCat, [edx+TArray.array], "fault.txt" + + stdcall FileOpenAccess, [edx+TArray.array], faCreateAlways or faWriteOnly + mov ebx, eax + + stdcall ListFree, edx, StrDel + +; Write the registers to the file: + + mov edi, __reg_names + +.reg_loop: + cmp byte [edi], 0 + je .dump_stack + + stdcall FileWrite, ebx, edi, 3 + stdcall FileWrite, ebx, txt " = ", 3 + + movzx eax, byte [edi+3] + stdcall NumToStr, [esi + eax], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall FileWriteString, ebx, eax + stdcall FileWriteString, ebx, <txt 13, 10> + add edi, 4 + jmp .reg_loop + +; Write the stack backtrace to the file: + +.dump_stack: + stdcall FileWriteString, ebx, <txt 13, 10> + mov eax, [esi+sig_context.eip] + + stdcall NumToStr, eax, ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall FileWriteString, ebx, eax + stdcall FileWriteString, ebx, <txt 13, 10, 13, 10> + + lea ebp, [esi+sig_context.ebp] + +.loop: + cmp dword [ebp], 0 + cmove eax, [ebp+8] + cmovne ebp, [ebp] + cmovne eax, [ebp+4] ; return address + cmove ebp, [ebp] + + stdcall NumToStr, eax, ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall FileWriteString, ebx, eax + stdcall FileWriteString, ebx, <txt 13, 10> + + test ebp, ebp + jz .finish + + cmp dword [ebp+4], $b0000000 + jb .loop + +.finish: + stdcall FileClose, ebx + + cmp [__MemoryFault], 0 + je .return + + jmp [__MemoryFault] + +.return: + stdcall TerminateAll, -1 + +end if + + + +body Exec2 +.pArgs dd ? +begin + pushad + + stdcall StrSplitArg, [.hCommand] + mov [.pArgs], eax + + mov eax, sys_fork + int $80 + + test eax, eax + jnz .parent ; this is the parent process + +; here is the child. + + DebugMsg "Child process here!" + + mov eax, sys_dup2 + mov ebx, [.hStdIn] + xor ecx, ecx + int $80 + + mov eax, sys_dup2 + mov ebx, [.hStdOut] + inc ecx + int $80 + + mov eax, sys_dup2 + mov ebx, [.hStdErr] + inc ecx + int $80 + + mov ecx, [.pArgs] + mov ebx, [ecx] ; the first argument is the executable name. + + mov edx, [_ptrEnvironment] + mov eax, [edx] ; argument count + lea edx, [edx + 4*eax + 8] ; +4 for argc and +4 for the termination 0; edx points to the env table here. + + mov eax, sys_execve + int $80 + + OutputValue "Error Exec2: ", eax, 10, -1 + + stdcall TerminateAll, eax ; This is the forked process after sys_execve error. So, terminate it. + + +.parent: + stdcall FreeMem, [.pArgs] + bt eax, 31 + mov [esp+4*regEAX], eax + popad + return +endp + + +body FreeProcessID +begin + return +endp + + + +body WaitProcessExit +begin + pushad + mov eax, sys_waitpid + mov ebx, [.ProcessID] + xor ecx, ecx + xor edx, edx + int $80 + clc + popad + return +endp + + + +; Splits the string on spaces and forms one-memory-block area that contains, zero terminated +; array of pointers to every part of the string. +; The spaces inside double or single quotes are ignored. +; +; The format of the memory block is the same as used in the sys_execve system function. + +proc StrSplitArg, .hCommand +begin + pushad + +if defined StrLib & StrLib + stdcall StrPtr, [.hCommand] + mov esi, eax + mov ebx, eax +else + mov esi, [.hCommand] + mov ebx, esi +end if + xor ecx, ecx + xor edx, edx + +; find the maximal possible count of the arguments (edx) +; and the length of the string. + +.loop1: + lodsb + test al, al + jz .endstr1 + inc ecx + cmp al, ' ' + jne .loop1 + inc edx + jmp .loop1 + +.endstr1: + mov esi, ebx + + add edx, 3 + lea edx, [4*edx + ecx] + add edx, 3 + and edx, $fffffffc + + stdcall GetMem, edx + mov ebx, eax + + sub edx, ecx + sub edx, 4 + and edx, $fffffffc + + lea edi, [ebx+edx] + rep movsb + + mov edi, ebx + lea esi, [ebx+edx] ; start of the string. + +.search_loop: + mov [edi], esi + add edi, 4 + +.loop_to_space: + lodsb + test al, al + jz .end_of_string + + cmp al, '"' + je .skip_quoted + + cmp al, "'" + je .skip_quoted + + cmp al, ' ' + jne .next + + cmp ah, ' ' + je .loop_to_space + + mov byte [esi-1], 0 + jmp .search_loop + +.next: + mov ah, al + jmp .loop_to_space + + +.skip_quoted: + mov ah, al + +.loop_quote: + lodsb + test al, al + jz .end_of_string + + cmp al, ah + jne .loop_quote + jmp .loop_to_space + + +.end_of_string: + mov [esp+4*regEAX], ebx + popad + return +endp + + + + + + +match =LinuxThreads, LinuxThreads { + define LinuxThreads posix +} + +match =native, LinuxThreads { + include '_process_native.asm' +} + +match =posix, LinuxThreads { + include '_process_posix.asm' +} + + + + ADDED freshlib/system/Linux/serial.asm Index: freshlib/system/Linux/serial.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/serial.asm @@ -0,0 +1,127 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Serial IO interface library. Linux part. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +macro brate [baud, mask] { +forward + dd baud + dw mask +} + + + +proc SerSetParams, .hSerial, .Baudrate, .Parity, .Flow, .Timeout +.settings termios +begin + pushad + + mov esi, .speeds + +.speed_loop: + mov eax, [esi] + + test eax, eax + jz .error + + cmp eax, [.Baudrate] + je .found + + add esi, 6 + jmp .speed_loop + +.found: + movzx edx, word [esi+4] + or edx, CS8 or CREAD or CLOCAL + + cmp [.Parity], cParityNo + je @f + or edx, PARENB +@@: + cmp [.Parity], cParityOdd + jne @f + or edx, PARODD +@@: + cmp [.Flow], cFlowHW + jne @f + or edx, CRTSCTS +@@: + + xor eax, eax ; zero + + lea edi, [.settings] + mov ecx, sizeof.termios / 4 + rep stosd + + mov [.settings.c_iflag], IGNBRK + mov [.settings.c_cflag], edx + + mov eax, [.Timeout] ; in [ms] + xor edx, edx + mov ecx, 100 + div ecx + mov [.settings.c_cc+VTIME], al ; in [100ms] units + + mov eax, sys_ioctl + mov ebx, [.hSerial] + mov ecx, TCSETS + lea edx, [.settings] + int $80 + + test eax, eax + jnz .error + + clc + popad + return + + +.error: + stc + popad + return + +.speeds: + brate 50, B50 + brate 75, B75 + brate 110, B110 + brate 134, B134 + brate 150, B150 + brate 200, B200 + brate 300, B300 + brate 600, B600 + brate 1200, B1200 + brate 1800, B1800 + brate 2400, B2400 + brate 4800, B4800 + brate 9600, B9600 + brate 19200, B19200 + brate 38400, B38400 + brate 57600, B57600 + brate 115200, B115200 + brate 230400, B230400 + brate 460800, B460800 + brate 500000, B500000 + brate 576000, B576000 + brate 921600, B921600 + brate 1000000, B1000000 + brate 11520000, B1152000 + brate 15000000, B1500000 + brate 20000000, B2000000 + brate 25000000, B2500000 + brate 30000000, B3000000 + brate 35000000, B3500000 + brate 40000000, B4000000 + brate 0, 0 +endp + + ADDED freshlib/system/Linux/timers.asm Index: freshlib/system/Linux/timers.asm ================================================================== --- /dev/null +++ freshlib/system/Linux/timers.asm @@ -0,0 +1,449 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Asynchronous timer library. +; +; Target OS: Linux +; +; Dependencies: +; +; Notes: Linux port of the library uses independent thread to manage timers. +;_________________________________________________________________________________________ + +__sys_time_slice = 100 ;[ms] + + +uglobal + if used TimerCreate + __InternalTimerID dd ? + __InternalTimerThread dd ? + __FlagTimerTerminate dd ? + end if +endg + + + +if used TimerCreate + if ~(defined options.DebugMode.NoTimers & options.DebugMode.NoTimers) + +initialize InitLinuxTimers + .action lnx_sigaction + .timer lnx_sigevent + .time lnx_itimerspec +begin +; set the signal handler. + mov eax, sys_sigaction + mov ebx, SIGALRM + lea ecx, [.action] + mov [ecx+lnx_sigaction.sa_handler], __TimerProc + mov [ecx+lnx_sigaction.sa_mask], 0 + mov [ecx+lnx_sigaction.sa_flags], 0 + xor edx, edx + + int $80 + + DebugMsg 'Signal hadler set.' + +; create the interval timer + mov [.timer.notify], SIGEV_SIGNAL + mov [.timer.signo], SIGALRM + + mov eax, sys_timer_create + mov ebx, CLOCK_REALTIME + lea ecx, [.timer] + mov edx, __InternalTimerID + + int $80 + + DebugMsg 'Interval timer created.' + +; then start a thread that will process timer expiration events. + + stdcall ThreadCreate, __TimerHandler, 0 + + OutputValue 'Timer thread created. ID=$', eax, 16, 8 + + mov [__InternalTimerThread], eax + +; start the timer + mov ebx, [__InternalTimerID] + mov eax, sys_timer_settime + lea edx, [.time] + mov [edx+lnx_itimerspec.it_interval.tv_sec], 0 + mov [edx+lnx_itimerspec.it_interval.tv_nsec], __sys_time_slice*1000000 + mov [edx+lnx_itimerspec.it_value.tv_sec], 0 + mov [edx+lnx_itimerspec.it_value.tv_nsec], __sys_time_slice*1000000 + xor esi, esi + int $80 + + DebugMsg 'Timer started' + + return +endp + + + + +finalize FreeLinuxTimers +begin + + DebugMsg 'Finalizing timers.' + +; stop the timer + mov eax, sys_timer_delete + mov ebx, [__InternalTimerID] + int $80 + + DebugMsg 'Timer stopped.' + + + mov [__FlagTimerTerminate], 1 + +; signal the thread (because it is probably in waiting state. +match =native, LinuxThreads { + mov eax, sys_tkill + mov ebx, [__InternalTimerThread] + mov ecx, SIGRTMAX + int $80 +} + +match =posix, LinuxThreads { + cinvoke pthread_kill, [__InternalTimerThread], SIGRTMAX +} + + cmp [__InternalTimerThread], 0 + je .finish + +; waiting to timer thread to finish. This is bad implementation, +; here should be timer wait with signal terminate on timeout. + +@@: + stdcall Sleep, 10 + cmp [__InternalTimerThread], 0 + jne @b + + +.finish: + DebugMsg 'Timer thread terminated.' + return +endp + end if +end if + + + + + + +; This procedure is called by the system on every time quantum. +; It is Linux signal handler, so the actions this procedure can +; perform are limited. + +proc __TimerProc, .signal +begin + push ebx edi + + lea eax, [__ptrFirstTimer] + xor edi, edi + +.loop: + mov eax, [eax+TTimer.next] + test eax, eax + jz .end_timers + + test [eax+TTimer.flags], tmfRunning + jz .loop + + mov ecx, [eax+TTimer.value] + add ecx, __sys_time_slice + + mov [eax+TTimer.value], ecx + cmp ecx, [eax+TTimer.interval] + jl .loop + +@@: + inc [eax+TTimer.Expired] + inc edi + + mov ecx, [eax+TTimer.interval] + sub [eax+TTimer.value], ecx + cmp [eax+TTimer.value], ecx + jge @b + jmp .loop + + +.end_timers: + test edi, edi + jz .exit + +; signal the timers thread that some timer is changed. + +match =native, LinuxThreads { + mov eax, sys_tkill + mov ebx, [__InternalTimerThread] + mov ecx, SIGRTMAX + int $80 +} + +match =posix, LinuxThreads { + cinvoke pthread_kill, [__InternalTimerThread], SIGRTMAX +} + +.exit: + pop edi ebx + cret +endp + + + +; This is thread procedure, that checks the timer expiration and then executes the timer callback procedure (if any) + +proc __TimerHandler, .argument +.remain dd ? +.action lnx_sigaction +begin + mov eax, sys_sigaction + mov ebx, SIGRTMAX + lea ecx, [.action] + mov [ecx+lnx_sigaction.sa_handler], __continue_proc + mov [ecx+lnx_sigaction.sa_mask], 0 + mov [ecx+lnx_sigaction.sa_flags], 0;SA_NODEFER + xor edx, edx + int $80 + + mov [__FlagTimerTerminate], 0 + +.from_begin: + + cmp [__FlagTimerTerminate], 0 + jne .quit + + mov [.remain], 0 + lea eax, [__ptrFirstTimer] + +.listloop: + mov eax, [eax+TTimer.next] + +.listloop2: + test eax, eax + jz .end_list + + mov ecx, [eax+TTimer.Expired] + jecxz .listloop + + dec ecx + mov [eax+TTimer.Expired], ecx + add [.remain], ecx + + cmp [eax+TTimer.Callback], 0 + je .listloop + + mov ecx, [eax+TTimer.flags] + and ecx, $0f + cmp ecx, tmfDoNothing + je .end_event + +; call the callback procedure. + pushad + push eax + cinvoke XLockDisplay, [hApplicationDisplay] + pop eax + stdcall [eax+TTimer.Callback], eax + cinvoke XUnlockDisplay, [hApplicationDisplay] + popad + +.end_event: + test [eax+TTimer.flags], tmfSyncDestroy + jz .listloop + + push eax + mov eax, [eax+TTimer.next] ; after the destruction, this pointer will be lost. + stdcall TimerDestroy ; pointer from the stack. + jmp .listloop2 + + +.end_list: + cmp [.remain], 0 + jne .from_begin + +; wait for signal + mov eax, sys_pause + int $80 + jmp .from_begin + +.quit: + mov [__InternalTimerThread], 0 + + stdcall Terminate, 0 +endp + + + +proc __continue_proc, .signal +begin + cret +endp + + +; this procedure provides easy way to make time delays +; it is independent and does not lead to including whole timer library. + +proc Sleep, .msec +.time lnx_timespec +begin + pushad + + mov eax, [.msec] + xor edx, edx + mov ecx, 1000 + div ecx + + mov [.time.tv_sec], eax ; seconds + imul edx, 1000000 + mov [.time.tv_nsec], edx + + mov eax, sys_nanosleep + lea ebx, [.time] + xor ecx, ecx + int $80 + + popad + return +endp + + + + +proc GetTime +begin + push ebx + + mov eax, sys_time + xor ebx, ebx + int $80 + + cdq + pop ebx + return +endp + + + +struct lnx_timeb + .time dd ? + .millitm dd ? + .timezone dd ? + .dstflag dd ? +ends + + +proc GetLocalTimeOffset +;.time lnx_timespec +begin +; stdcall GetTime +; push eax +; +; mov eax, sys_clock_gettime +; mov ebx, CLOCK_REALTIME +; lea ecx, [.time] +; +; int $80 +; +; +; pop edx +; mov eax, [.time.tv_sec] +; +; OutputRegister regEAX, 10 +; OutputRegister regEDX, 10 +; int3 + + xor eax, eax + return +endp + + + +proc GetTimestamp +.time lnx_timeval +begin + pushad + mov eax, sys_gettimeofday + lea ebx, [.time] + xor ecx, ecx + int $80 + + mov eax, [.time.tv_sec] ; seconds + mov ecx, 1000 + mul ecx + mov ebx,eax + + mov eax, [.time.tv_usec] ; us + xor edx, edx + div ecx + add eax, ebx + + mov [esp+4*regEAX], eax + popad + return +endp + + +; returns dword timestamp in uS + +proc GetFineTimestamp +.time lnx_timeval +begin + pushad + + mov eax, sys_gettimeofday + lea ebx, [.time] + xor ecx, ecx + int $80 + + mov eax, [.time.tv_sec] ; seconds + + mov ecx, 1000000 + mul ecx + mov ebx, eax + + mov eax, [.time.tv_usec] + add eax, ebx + + mov [esp+4*regEAX], eax + popad + return +endp + + + +; Alternative implementation! +; +;proc GetFineTimestamp +;.time lnx_timespec +;begin +; pushad +; +; mov eax, sys_clock_gettime +; mov ebx, CLOCK_PROCESS_CPUTIME_ID +; lea ecx, [.time] +; int $80 +; +; mov eax, [.time.tv_sec] ; seconds +; +; mov ecx, 1000000 +; mul ecx +; mov ebx, eax +; +; mov eax, [.time.tv_nsec] +; mov ecx, 1000 +; xor edx, edx +; div ecx +; +; add eax, ebx +; +; mov [esp+4*regEAX], eax +; popad +; return +;endp ADDED freshlib/system/Win32/com32.asm Index: freshlib/system/Win32/com32.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/com32.asm @@ -0,0 +1,46 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: com32 (common object module) procedures. +; +; Target OS: Win32 +; +; Dependencies: +;_________________________________________________________________________________________ +uses ole32 + +; compares two GUID. Returns CF=1 if equal, CF=0 if not. + +proc cmpGUID, .ptrGUID1, .ptrGUID2 +begin + push esi edi ecx + + mov esi, [.ptrGUID1] + mov edi, [.ptrGUID2] + mov ecx, 4 + + repe cmpsd + clc + jne .finish + stc +.finish: + pop ecx edi esi + return +endp + + +iglobal + IID_IUnknown GUID 00000000-0000-0000-C000-000000000046 + IID_IClassFactory GUID 00000001-0000-0000-C000-000000000046 + IID_IOleObject GUID 00000112-0000-0000-C000-000000000046 + IID_IOleInPlaceObject GUID 00000113-0000-0000-C000-000000000046 + IID_IOleInPlaceSite GUID 00000119-0000-0000-C000-000000000046 + IID_IOleClientSite GUID 00000118-0000-0000-C000-000000000046 + + IID_IDocHostUIHandler GUID BD3F23C0-D43E-11CF-893B-00AA00BDCE1A + CLSID_WebBrowser GUID 8856F961-340A-11D0-A96B-00C04FD705A2 + IID_IWebBrowser2 GUID D30C1661-CDAF-11D0-8A3E-00C04FC9E26E + IID_IHTMLDocument2 GUID 332C4425-26CB-11D0-B483-00C04FD90119 +endg ADDED freshlib/system/Win32/environment.asm Index: freshlib/system/Win32/environment.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/environment.asm @@ -0,0 +1,77 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Win32 environment management library. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ +uses kernel32, user32 + +proc GetAllEnvironment +.return dd ? +begin + pushad + + invoke GetEnvironmentStringsA + push eax + mov esi, eax + +.end_loop: + cmp word [esi], 0 + lea esi, [esi+1] + jne .end_loop + + stc + sbb esi, [esp] + lea ecx, [esi+8] + + stdcall GetMem, ecx + mov [.return], eax + mov edi, eax + mov ecx, esi + mov esi, [esp] + rep movsb + xor eax, eax + stosd + + invoke FreeEnvironmentStringsA ; from the stack + popad + mov eax, [.return] + return +endp + + + +proc GetEnvVariable, .varname +.buffer rb 1024 +begin + push ebx ecx edx + + stdcall utf8ToWideChar, [.varname] + mov [.varname], eax + + lea ebx, [.buffer] + invoke GetEnvironmentVariableW, [.varname], ebx, 512 + test eax, eax + jz .missing + + stdcall FreeMem, [.varname] + stdcall WideCharToUtf8, ebx + clc + pop edx ecx ebx + return + +.missing: + stdcall FreeMem, [.varname] + stc + pop edx ecx ebx + return + + +endp Index: freshlib/system/Win32/files.asm ================================================================== --- freshlib/system/Win32/files.asm +++ freshlib/system/Win32/files.asm @@ -1,77 +1,102 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshGUI::.. - portable, assembler based GUI toolkit. | -;| __________________________________________________________________ | -;| | -;| This file | -;| ~~~~~~~~~ | -;| Author: John Found | -;| | -;| Title: files.asm Files management library. OS dependent | -;| | -;| OS: Win32 | -;| | -;| Notes and changes: This library provides unified interface to | -;| access files for Win32 OS | -;| | -;|____________________________________________________________________| +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Files manipulation library. Win32 part. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +uses kernel32 + +DIR_SLASH equ '\' +DIR_SEP_PAIR equ '\/' ; for use with StrNormalizePath and StrNormalizePath2 fsFromBegin = FILE_BEGIN fsFromEnd = FILE_END fsFromCurrent = FILE_CURRENT -;-------------------------------------- -; if CF = 0, eax is handle to the file. -; if CF = 1, eax is error code. -;-------------------------------------- -proc FileOpen, .filename +faReadOnly = GENERIC_READ +faWriteOnly = GENERIC_WRITE +faReadWrite = GENERIC_READ or GENERIC_WRITE + +faOpenAlways = OPEN_ALWAYS ; if the file does not exists it will be created. +faCreateAlways = CREATE_ALWAYS ; Creates new file always. If the file exists, truncates it. +faCreateOnly = CREATE_NEW ; Creates new file only if not exists, else error. + + + +if used STDIN | used STDOUT | used STDERR + + initialize InitStdHandles + begin + if used STDIN + invoke GetStdHandle, STD_INPUT_HANDLE + mov [__std_handle_in], eax + end if + + if used STDOUT + invoke GetStdHandle, STD_OUTPUT_HANDLE + mov [__std_handle_out], eax + end if + + if used STDERR + invoke GetStdHandle, STD_ERROR_HANDLE + mov [__std_handle_err], eax + end if + return + endp + +end if + + +body FileOpenAccess begin push edx ecx - invoke CreateFile, [.filename], GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0 + stdcall utf8ToWideChar, [.filename] + push eax + + mov ecx, [.access] + mov edx, [.access] + and ecx, $ffff0000 + and edx, $0000ffff + jnz @f + mov edx, OPEN_EXISTING +@@: + invoke CreateFileW, eax, ecx, FILE_SHARE_READ, 0, edx, 0, 0 + stdcall FreeMem ; from the stack + cmp eax, INVALID_HANDLE_VALUE je .error clc pop ecx edx return .error: invoke GetLastError - stc - pop ecx edx - return -endp - - - -proc FileCreate, .filename -begin - push edx ecx - - invoke CreateFile, [.filename], GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0 - cmp eax, INVALID_HANDLE_VALUE - je .error - - clc - pop ecx edx - return - -.error: - invoke GetLastError + +if defined options.DebugMode & options.DebugMode + stdcall __FileErrorDisplay, eax, [.filename] +end if + stc pop ecx edx return endp -proc FileClose, .handle +body FileClose begin push edx ecx eax invoke CloseHandle, [.handle] test eax, eax jz .error @@ -80,20 +105,45 @@ pop eax ecx edx return .error: pop eax +if used GetErrorString + invoke GetLastError +end if + stc + pop ecx edx + return +endp + + +; returns 32bit file size in eax +body FileSize +begin + push edx ecx + + xor eax, eax + invoke GetFileSize, [.handle], eax + cmp eax, -1 + je .error + + clc + pop ecx edx + return + +.error: +if used GetErrorString invoke GetLastError +end if stc pop ecx edx return endp - -proc FileRead, .handle, .buffer, .count +body FileRead .read dd ? begin push edx ecx lea eax, [.read] @@ -105,20 +155,22 @@ clc pop ecx edx return .error: +if used GetErrorString invoke GetLastError +end if stc pop ecx edx return endp -proc FileWrite, .handle, .buffer, .count +body FileWrite .bytes dd ? begin push edx ecx lea ecx, [.bytes] @@ -130,11 +182,13 @@ clc pop ecx edx return .error: +if used GetErrorString invoke GetLastError +end if stc pop ecx edx return endp @@ -143,11 +197,11 @@ ;---------------------------------------------------- ; if CF = 0, eax is the new possition in the file ; if CF = 1, eax is error code. ;---------------------------------------------------- -proc FileSeek, .handle, .dist, .direction +body FileSeek begin push edx ecx invoke SetFilePointer, [.handle], [.dist], 0, [.direction] cmp eax, -1 je .error @@ -155,59 +209,435 @@ clc pop ecx edx return .error: +if used GetErrorString + invoke GetLastError +end if + stc + pop ecx edx + return +endp + + + + +body FileTruncate +begin + push ecx edx + invoke SetEndOfFile, [.handle] + test eax, eax + jz .error + + clc + pop edx ecx + return + +.error: +if used GetErrorString + invoke GetLastError +end if + stc + pop ecx edx + return +endp + + +body FileTruncateTo ;, .handle, .length +begin + push ecx edx + + invoke SetFilePointer, [.handle], [.length], 0, fsFromBegin + cmp eax, -1 + je .error + + invoke SetEndOfFile, [.handle] + test eax, eax + jz .error + + clc + pop edx ecx + return + +.error: +if used GetErrorString invoke GetLastError +end if stc pop ecx edx return endp - ;---------------------------------------------------- ; if CF = 0 - the file was deleted ; if CF = 1, eax is error code. ;---------------------------------------------------- -proc FileDelete, .filename +body FileDelete +begin + push ecx edx eax + + stdcall utf8ToWideChar, [.filename] + push eax + invoke DeleteFileW, eax + stdcall FreeMem ; from the stack + + test eax, eax + jz .error + clc + pop eax edx ecx + return + +.error: + pop eax +if used GetErrorString + invoke GetLastError +end if + stc + pop edx ecx + return +endp + + + + + +body GetCurrentDir +.buffer rb 1024 +begin + push ecx edx esi + + lea esi, [.buffer] + invoke GetCurrentDirectoryW, 1024, esi + test eax, eax + jz .error + + stdcall WideCharToUtf8, esi + clc + +.finish: + pop esi edx ecx + return + +.error: +if used GetErrorString + invoke GetLastError +end if + + stc + jmp .finish + +endp + + + +body SetCurrentDir +begin + push ecx edx eax + stdcall utf8ToWideChar, [.hDirectory] + push eax + invoke SetCurrentDirectoryW, eax + stdcall FreeMem ; from the stack + + test eax, eax + jz .error + + pop eax edx ecx + return + +.error: + pop eax +if used GetErrorString + invoke GetLastError +end if + stc + pop edx ecx + return +endp + + + +body GetErrorString +.buff dd ? +begin + push edx ecx + lea eax, [.buff] + invoke FormatMessageW, FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM, 0, [.code], LANG_NEUTRAL or SUBLANG_DEFAULT, eax, 0, 0 + + stdcall WideCharToUtf8, [.buff] + stdcall StrClipSpacesR, eax + stdcall StrClipSpacesL, eax + push eax + + invoke LocalFree, [.buff] + + pop eax + clc + pop ecx edx + return +endp + + + +body FreeErrorString +begin + stdcall StrDel, [.ptrString] + return +endp + + + +ftUnknown = 0 +ftDirectory = 1 +ftFile = 2 +ftLinkMask = $80000000 + + +; reads all items of the directory and fills them in the TArray of type TDirItem. +; arguments: +; dir - string with the path to the directory. +; +; returns: +; if not error: CF=0; eax = pointer to TArray of TDirItem; +; if error: CF=1; eax = error code; + +body DirectoryRead +.finddata FINDDATAW +.size dd ? +begin + push ebx ecx edx edi + +; open the file + stdcall StrDup, [.dir] + push eax + stdcall StrCat, eax, .searchall + + stdcall utf8ToWideChar, eax + stdcall StrDel ; from the stack + + push eax + + lea ecx, [.finddata] + invoke FindFirstFileW, eax, ecx + stdcall FreeMem ; from the stack + + cmp eax, INVALID_HANDLE_VALUE + je .error + + mov ebx, eax + + stdcall CreateArray, sizeof.TDirItem + mov edi, eax + +.addloop: + lea eax, [.finddata.cFileName] + stdcall WideCharToUtf8, eax + push eax + + stdcall AddArrayItems, edi, 1 + mov edi, edx + + pop [eax+TDirItem.hFilename] + + mov ecx, ftDirectory + test [.finddata.dwFileAttributes], FILE_ATTRIBUTE_DIRECTORY + jnz .typeok + mov ecx, ftFile +.typeok: + mov [eax+TDirItem.Type], ecx + + lea eax, [.finddata] + invoke FindNextFileW, ebx, eax + test eax, eax + jnz .addloop + + invoke GetLastError + push eax + +.end_of_directory: + + invoke FindClose, ebx + + pop eax + cmp eax, ERROR_NO_MORE_FILES + jne .finish_error + + mov eax, edi + pop edi edx ecx ebx + clc + return + +.error: + invoke GetLastError + +.finish_error: + pop edi edx ecx ebx + stc + return + +.searchall db '\*.*', 0 +endp + + + + +body CreateDirectory begin push ecx edx eax - invoke DeleteFile, [.filename] + stdcall utf8ToWideChar, [.DirName] + push eax + invoke CreateDirectoryW, eax, 0 + stdcall FreeMem ; from the stack + test eax, eax jz .error - clc + pop eax edx ecx return .error: pop eax +if used GetErrorString invoke GetLastError +end if stc pop edx ecx return endp -proc GetErrorString, .code -.buff dd ? + + +body GetFileInfo +begin + pushad + + mov esi, [.ptrFileInfo] + lea ecx, [esi+TFileInfo.timeAccessed] + lea edx, [esi+TFileInfo.timeModified] + + invoke GetFileTime, [.hFile], esi, ecx, edx + test eax, eax + jz .error + + mov eax, dword [esi+TFileInfo.timeCreated] + mov edx, dword [esi+TFileInfo.timeCreated+4] + call FileTimeToUnixTime + mov dword [esi+TFileInfo.timeCreated], eax + mov dword [esi+TFileInfo.timeCreated+4], edx + + mov eax, dword [esi+TFileInfo.timeAccessed] + mov edx, dword [esi+TFileInfo.timeAccessed+4] + call FileTimeToUnixTime + mov dword [esi+TFileInfo.timeAccessed], eax + mov dword [esi+TFileInfo.timeAccessed+4], edx + + mov eax, dword [esi+TFileInfo.timeModified] + mov edx, dword [esi+TFileInfo.timeModified+4] + call FileTimeToUnixTime + mov dword [esi+TFileInfo.timeModified], eax + mov dword [esi+TFileInfo.timeModified+4], edx + + clc + popad + return + +.error: + stc + popad + return + +endp + + + + + +; Returns: +; CF=1 if the file NOT EXISTS +; CF=0 if the file EXISTS +body FileExists +begin + pushad + + stdcall utf8ToWideChar, [.hFileName] + push eax + + invoke GetFileAttributesW, eax + stdcall FreeMem ; from the stack + cmp eax, -1 + je .notexists + + clc + popad + return + +.notexists: + stc + popad + return +endp + + + + + +body IsRelativePath ;, .hPath begin - push edx ecx - lea eax, [.buff] - invoke FormatMessage, FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM, 0, [.code], LANG_NEUTRAL or SUBLANG_DEFAULT, eax, 0, 0 - mov eax, [.buff] + push eax + stdcall StrLen, [.hPath] + cmp eax, 3 + jb .relative + + stdcall StrPtr, [.hPath] + cmp byte [eax], DIR_SLASH + jne .drive + cmp byte [eax+1], DIR_SLASH + jmp .absolute + +.drive: + cmp byte [eax], 'A' + jb .relative + cmp byte [eax], 'Z' + jbe .maybe_drive + + cmp byte [eax], 'a' + jb .relative + cmp byte [eax], 'Z' + ja .relative + +.maybe_drive: + cmp byte [eax+1], ':' + jne .relative + + cmp byte [eax+2], DIR_SLASH + jne .relative + +.absolute: clc - pop ecx edx + pop eax + return + +.relative: + stc + pop eax return endp -proc FreeErrorString, .ptrString + +body GetCurrentPrefix begin - push edx ecx - invoke LocalFree, [.ptrString] - pop ecx edx + stdcall GetCurrentDir + push eax + + stdcall StrPtr, eax + and dword [eax+2], 0 + mov [eax+string.len], 2 + + pop eax return endp ADDED freshlib/system/Win32/heapmgr.asm Index: freshlib/system/Win32/heapmgr.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/heapmgr.asm @@ -0,0 +1,95 @@ +;FASM STANDARD LIBRARY +;Win32 memory routines for use with FASMLIB heap manager + +;you can replace src/win32/mem.inc with this file, to use FASMLIB heap manager +;instead of Heap*** Win32API functions. Useful to test heap manager on win32, +;but with this way VirtualAlloc often cannot enlarge block enough + +NEED_HEAP_MANAGER equ 1 + +HEAP_MAX_SIZE = 1024 * 1024 * 1024 ; = 1GB address space. + + +uglobal + __heap_start dd ? +endg + + +initialize InitHeapManager +.info SYSTEM_INFO +begin + invoke VirtualAlloc, 0, HEAP_MAX_SIZE, MEM_RESERVE, PAGE_READWRITE + test eax, eax + jz .error + + mov [__heap_start], eax + return + +.error: + int3 + return + +endp + + + +proc mem.alloc_heap, .size +begin + push ecx edx + + invoke VirtualAlloc, [__heap_start], [.size], MEM_COMMIT, PAGE_EXECUTE_READWRITE + test eax, eax + jz .error_VirtualAlloc + + clc + pop edx ecx + return + +.error_VirtualAlloc: + mov eax, ERR_OUT_OF_MEM + stc + pop edx ecx + return +endp + + + + +proc mem.free_heap, .block, .size +begin + push ecx edx eax + + invoke VirtualFree, [.block], [.size], MEM_DECOMMIT + test eax, eax + jz .error + + clc +.r: + pop eax edx ecx + return + +.error: stc + mov dword [esp], ERR_UNKNOWN + jmp .r +endp + + + +proc mem.realloc_heap, .heapptr, .newsize, .oldsize +begin + push ecx edx + + invoke VirtualAlloc, [.heapptr], [.newsize], MEM_COMMIT, PAGE_EXECUTE_READWRITE + test eax,eax + jz .error_GlobalReAlloc + +.rnc: clc + pop edx ecx + return + +.error_GlobalReAlloc: + mov eax, ERR_OUT_OF_MEM + stc + pop edx ecx + return +endp Index: freshlib/system/Win32/memory.asm ================================================================== --- freshlib/system/Win32/memory.asm +++ freshlib/system/Win32/memory.asm @@ -1,247 +1,270 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshLib::.. - portable, assembler library and GUI toolkit. | -;|____________________________________________________________________| -;| | -;| This file | -;| _________ | -;| Author: John Found | -;| | -;| | -;| Title: memory.asm Memory management library. OS dependent | -;| | -;| OS: Win32 | -;| | -;| Notes and changes: This library provides unified interface to | -;| heap memory manager of the Win32 OS | -;| | -;|____________________________________________________________________| +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. Win32 part. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: Uses Heap functions of Win32 API. Also contains some debug and profiling code, +; that needs some revision in order to be either removed, or legalized. +;_________________________________________________________________________________________ + +uses ucrtbase + +MEM_ALIGNMENT_PWR = 4 +MEM_ALIGNMENT = 1 shl MEM_ALIGNMENT_PWR +MEM_ALIGNMENT_OFS = MEM_ALIGNMENT - 1 +MEM_ALIGNMENT_MSK = not MEM_ALIGNMENT_OFS uglobal - _hHeap dd ? + var ptrMemoryList = ? + var MemMutex = ? endg - if DebugMemory struct TMemoryItem - .pointer dd ? + .next dd ? + .pointer dd ? + .resized dd ? .callfrom dd ? ends - - uglobal - ptrMemoryStack dd ? - flagNoDebug dd ? - endg - proc InitAllocStack begin - mov [flagNoDebug], 1 - stdcall CreateArray, sizeof.TMemoryItem - mov [ptrMemoryStack], eax - mov [flagNoDebug], 0 + stdcall MutexCreate, 0, MemMutex + stdcall MutexRelease, MemMutex return endp end if +if used SpaceAllocate & ~ used GetMem +initialize ReserveAddressSpace +begin + invoke VirtualAlloc, 0, 1024*1024*1024, MEM_RESERVE, PAGE_READWRITE + mov [_MemoryFreeSpace], eax + return +endp +end if +if DebugMemory & used GetMem & ~ used SpaceAllocate initialize InitMemoryManager begin - invoke GetProcessHeap - mov [_hHeap], eax - -if DebugMemory call InitAllocStack -end if return endp +end if +if DebugMemory finalize FinalizeMemoryManager begin -if DebugMemory - mov eax, [ptrMemoryStack] + stdcall MutexDestroy, MemMutex + + mov eax, [ptrMemoryList] int3 - xor eax, eax - xchg eax, [ptrMemoryStack] - stdcall FreeMem, eax -end if return endp +end if ; Allocates memory block with given size. ; Returns: CF=1 if error. ; if CF=0, eax = pointer to the memory block allocated. -align 16 -proc GetMem, .size +body GetMem begin - push ecx edx + push ebx ecx edx - invoke HeapAlloc, [_hHeap], HEAP_ZERO_MEMORY, [.size] + mov ebx, [.size] + add ebx, MEM_ALIGNMENT_OFS + and bl, MEM_ALIGNMENT_MSK + cinvoke _aligned_malloc, ebx, MEM_ALIGNMENT test eax, eax jz .error -if DebugMemory - cmp [flagNoDebug], 0 - jne .exit +if ~ defined options.NoZeroMemory | ~ options.NoZeroMemory + push eax edi + mov edi, eax + cinvoke _aligned_msize, edi, MEM_ALIGNMENT, 0 + mov ecx, eax + shr ecx, 2 + xor eax, eax + rep stosd + pop edi eax +end if +if DebugMemory pushad - push [flagNoDebug] - mov [flagNoDebug], 1 - - mov ecx, eax - stdcall AddArrayItem, [ptrMemoryStack] - mov [ptrMemoryStack], edx - jnc @f - - int3 -@@: - mov [eax+TMemoryItem.pointer], ecx - mov ecx, [esp+12*4] + + mov esi, eax ; allocated address + + stdcall WaitForMutex, MemMutex, -1 + cinvoke _alignned_malloc, sizeof.TMemoryItem, 16 + mov edi, eax + + mov [edi+TMemoryItem.pointer], esi + + mov ecx, [esp+11*4] cmp ecx, CreateArray.retaddr jne @f - mov ecx, [esp+12*4+5*4] + mov ecx, [esp+11*4+5*4] @@: - mov [eax+TMemoryItem.callfrom], ecx + mov [edi+TMemoryItem.callfrom], ecx - pop [flagNoDebug] - popad + mov ecx, edi + xchg [ptrMemoryList], ecx + mov [edi+TMemoryItem.next], ecx + and [edi+TMemoryItem.resized], 0 - .exit: + stdcall MutexRelease, MemMutex + popad end if clc - pop edx ecx + pop edx ecx ebx return .error: stc - pop edx ecx + pop edx ecx ebx return endp -align 16 -proc FreeMem, .ptr +body FreeMem begin push eax ecx edx if DebugMemory - cmp [flagNoDebug], 0 - jne .exit - pushad - mov esi, [ptrMemoryStack] - mov ebx, [esi+TArray.count] + stdcall WaitForMutex, MemMutex, -1 + + mov ebx, ptrMemoryList + mov esi, [ptrMemoryList] mov eax, [.ptr] - xor ebx, ebx - .loop: - cmp ebx, [esi+TArray.count] - jae .notfound + test esi, esi + jz .notfound - cmp [esi+TArray.array+8*ebx], eax + cmp [esi+TMemoryItem.pointer], eax je .found - inc ebx + mov ebx, esi + mov esi, [esi+TMemoryItem.next] jmp .loop .notfound: int3 jmp .exit2 .found: - push [flagNoDebug] - mov [flagNoDebug], 1 - - stdcall DeleteArrayItem2, esi, ebx - jnc @f - - int3 -@@: - mov [ptrMemoryStack], edx - - pop [flagNoDebug] + mov eax, [esi+TMemoryItem.next] + mov [ebx+TMemoryItem.next], eax + + cinvoke _aligned_free, esi .exit2: + stdcall MutexRelease, MemMutex popad - .exit: end if - invoke HeapFree, [_hHeap], 0 , [.ptr] + cinvoke _aligned_free, [.ptr] pop edx ecx eax return endp -proc ResizeMem, .ptr, .newsize +body ResizeMem begin - push ecx edx - invoke HeapReAlloc, [_hHeap], HEAP_ZERO_MEMORY, [.ptr], [.newsize] + push ebx ecx edx + +if ~ defined options.NoZeroMemory | ~ options.NoZeroMemory + cinvoke _aligned_msize, [.ptr], MEM_ALIGNMENT, 0 + mov ebx, eax +end if + + mov eax, [.newsize] + add eax, MEM_ALIGNMENT_OFS + and al, MEM_ALIGNMENT_MSK + cinvoke _aligned_realloc, [.ptr], eax, MEM_ALIGNMENT test eax, eax jz .error -if DebugMemory - cmp [flagNoDebug], 0 - jne .exit +if ~ defined options.NoZeroMemory | ~ options.NoZeroMemory + push eax edi + lea edi, [eax+ebx] + cinvoke _aligned_msize, eax, MEM_ALIGNMENT, 0 + mov ecx, eax + sub ecx, ebx + jc @f + shr ecx, 2 + jz @f + xor eax, eax + rep stosd +@@: + pop edi eax +end if + + +if DebugMemory pushad - mov esi, [ptrMemoryStack] - mov ebx, [esi+TArray.count] - mov ecx, [.ptr] + stdcall WaitForMutex, MemMutex, -1 - xor ebx, ebx + mov esi, [ptrMemoryList] + mov ecx, [.ptr] .loop: - cmp ebx, [esi+TArray.count] - jae .notfound + test esi, esi + jz .notfound - cmp [esi+TArray.array+8*ebx], ecx - je .found + cmp [esi+TMemoryItem.pointer], ecx + je .found - inc ebx + mov esi, [esi+TMemoryItem.next] jmp .loop .notfound: int3 jmp .exit2 .found: - mov [esi+TArray.array+8*ebx], eax + mov [esi+TMemoryItem.pointer], eax + inc [esi+TMemoryItem.resized] mov ecx, [esp+11*4] - cmp ecx, AddArrayItem2.retaddr + cmp ecx, AddArrayItems.readdr jne @f - mov ecx, [esp+12*4+5*4] + mov ecx, [esp+11*4+6*4] @@: - mov [esi+TArray.array+8*ebx+4], ecx + mov [esi+TMemoryItem.callfrom], ecx .exit2: + stdcall MutexRelease, MemMutex popad - .exit: end if clc - pop edx ecx + pop edx ecx ebx return .error: mov eax, [.ptr] stc @@ -250,11 +273,11 @@ endp ; -;proc GetMemSize, .ptr +;body GetMemSize, .ptr ;begin ; push ecx edx ; invoke HeapSize, [_hHeap], 0, [.ptr] ; cmp eax, -1 ; je .error @@ -268,9 +291,15 @@ ; return ;endp - - +body SpaceAllocate +begin + push ecx edx + invoke VirtualAlloc, [_MemoryFreeSpace], [.size], MEM_COMMIT, PAGE_READWRITE + test eax, eax + pop edx ecx + return +endp ADDED freshlib/system/Win32/network.asm Index: freshlib/system/Win32/network.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/network.asm @@ -0,0 +1,374 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS dependent part of the network library. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: This library follows the rules of Berkley sockets library with some small +; differences (for example in the return values) +;_________________________________________________________________________________________ + +uses wsock32, ws2_32 + +serrTimeout = WSAETIMEDOUT +serrAborted = WSA_OPERATION_ABORTED + + + +uglobal + __wsaData WSADATA +endg + + +if used SocketCreate + +initialize InitWindowsSockets +begin + invoke WSAStartup, $0101, __wsaData + test eax, eax + jz @f + int3 +@@: + return +endp + + +finalize FinishWindowsSockets +begin + invoke WSACleanup + return +endp + +end if + + +proc __SocketError +begin + cmp eax, SOCKET_ERROR + jne .no_error + + push ecx edx + invoke WSAGetLastError + pop edx ecx + stc + return + +.no_error: + clc + return +endp + + +body SocketCreate +begin + push ecx edx + invoke socket, [.protocol_family], [.socket_type], [.protocol] + call __SocketError + pop edx ecx + return +endp + + +body SocketShutDown +begin + push ecx edx + + invoke shutdown, [.hSocket], SD_BOTH + call __SocketError + + pop edx ecx + return +endp + + + +body SocketClose +.buffer rb 1024 +begin + push ecx edx +; invoke shutdown, [.hSocket], SD_RECEIVE +; call __SocketError +; jc .finish +; +;.loop: +; lea ecx, [.buffer] +; invoke recv, [.hSocket], ecx, 1024, 0 +; +; call __SocketError +; jc .finish +; test eax, eax +; jnz .loop + + invoke closesocket, [.hSocket] + call __SocketError + +.finish: + pop edx ecx + return +endp + + + +body SocketConnect +begin + push ecx edx + invoke connect, [.hSocket], [.pAddress], sizeof.TSocketAddress + call __SocketError + pop edx ecx + return +endp + + + +body SocketBind +begin + push ecx edx + + mov edx, [.pAddress] + + mov ecx, sizeof.TSocketAddressIn + cmp [edx+TSocketAddress.saFamily], AF_INET + je .do_bind + + mov ecx, sizeof.TSocketAddressIn6 + cmp [edx+TSocketAddress.saFamily], AF_INET6 + je .do_bind + + mov ecx, sizeof.TSocketAddressUn + cmp [edx+TSocketAddress.saFamily], AF_UNIX + je .do_bind + + invoke WSASetLastError, WSAEINVAL + jmp .finish + +.do_bind: + invoke bind, [.hSocket], [.pAddress], ecx + +.finish: + call __SocketError + pop edx ecx + return +endp + + + +body SocketListen +begin + push ecx edx + invoke listen, [.hSocket], [.maxPending] + call __SocketError + pop edx ecx + return +endp + + + +body SocketAccept +.addrlen dd ? +begin + push edx + + mov [.addrlen], sizeof.TSocketAddress + lea ecx, [.addrlen] + cmp [.pAddress], 0 + jne @f + xor ecx, ecx + mov [.addrlen], ecx +@@: + invoke accept, [.hSocket], [.pAddress], ecx + mov ecx, [.addrlen] + call __SocketError + pop edx + return +endp + + + +body SocketSend +begin + push ecx edx + invoke send, [.hSocket], [.pBuffer], [.DataLen], [.flags] + call __SocketError + pop edx ecx + return +endp + + +body SocketReceive +begin + push ecx edx + invoke recv, [.hSocket], [.pBuffer], [.BufferSize], [.flags] + call __SocketError + pop edx ecx + return +endp + + +body SocketSendTo +begin + push ecx edx + invoke sendto, [.hSocket], [.pBuffer], [.DataLen], [.flags], [.pAddressTo], sizeof.TSocketAddress + call __SocketError + pop edx ecx + return +endp + + +body SocketReceiveFrom +.addrlen dd ? +begin + push edx + mov [.addrlen], sizeof.SocketAddress + lea ecx, [.addrlen] + invoke recvfrom, [.hSocket], [.pBuffer], [.BufferSize], [.flags], [.pAddressFrom], ecx + call __SocketError + mov ecx, [.addrlen] + pop edx + return +endp + + +;body SetLinger +;begin +; push ecx edx +; lea ecx, [.fLinger] +; invoke setsockopt, [.hSocket], SOL_SOCKET, SO_LINGER, ecx, 8 +; call __SocketError +; pop edx ecx +; return +;endp + + +body SocketGetOption +.len dd ? +.option rd 4 +begin + push ecx edx + + mov [.len], 16 + + lea eax, [.option] + lea ecx, [.len] + invoke getsockopt, [.hSocket], SOL_SOCKET, [.idOption], eax, ecx + call __SocketError + jc .finish + mov eax, [.option] +.finish: + pop edx ecx + return +endp + + + +body SocketSetOption +.option rd 4 +begin + push ecx edx + + mov eax, [.Value] + mov [.option], eax + mov ecx, 4 + + cmp [.idOption], soLinger + jne .callit + + mov [.option+4], eax + mov ecx, 8 + +.callit: + lea eax, [.option] + invoke setsockopt, [.hSocket], SOL_SOCKET, [.idOption], eax, ecx + call __SocketError + pop edx ecx + return +endp + + + + +struct TAddrInfo + .flags dd ? + .family dd ? + .sock_type dd ? + .protocol dd ? + .addrlen dd ? + .p_canonname dd ? + .p_sock_addr dd ? + .p_next dd ? ; next addrinfo structure. +ends + + + +; returns the IP address of some domain in EAX + +body ResolveDomainIP;, .hDomain +.result dd ? +begin + pushad + + stdcall StrPtr, [.hDomain] + + lea ecx, [.result] + + invoke getaddrinfo, eax, 0, 0, ecx + + test eax, eax + jnz .error + + mov esi, [.result] + +.loop: + test esi, esi + jz .not_found + + cmp [esi+TAddrInfo.family], AF_INET + jne .next + + cmp [esi+TAddrInfo.sock_type], SOCK_STREAM + jne .next + + cmp [esi+TAddrInfo.protocol], IPPROTO_TCP + jne .next + + cmp [esi+TAddrInfo.addrlen], sizeof.TSocketAddressIn + je .found + +.next: + mov esi, [esi+TAddrInfo.p_next] + jmp .loop + +.end_loop: + + +.found: + mov edx, [esi+TAddrInfo.p_sock_addr] + mov eax, [edx+TSocketAddressIn.saAddress] + bswap eax + mov [esp+4*regEAX], eax + + clc + +.finish: + + pushf + invoke freeaddrinfo, [.result] + popf + +.exit: + popad + return + +.not_found: + stc + jmp .finish + +.error: + stc + jmp .exit + +endp ADDED freshlib/system/Win32/process.asm Index: freshlib/system/Win32/process.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/process.asm @@ -0,0 +1,430 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Process management library. Win32 part. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +uses kernel32, shell32 + +__mutex_not_initialized = 0 +__mutex_mutex = 1 +__mutex_critical_section = 2 + +struct TMutex + .type dd ? + .handle dd ? + .critical_section CRITICAL_SECTION +ends + + +body Terminate +begin + invoke ExitThread, [.exit_code] + return +endp + + +; Terminate current process +; Returns: nothing. + +body TerminateAll +begin + invoke ExitProcess, [.exit_code] + return +endp + + + +body SetForcedTerminateHandler +begin + pushad + invoke SetConsoleCtrlHandler, [.procHandler], TRUE + popad + return +endp + + +; no-op for compatibility with Linux library, where this debug +; function is implemented in very slopy manner. :) + +proc SetSegmentationFaultHandler, .procHandler +begin + pushad + invoke SetUnhandledExceptionFilter, [.procHandler] + popad + return +endp + + +body GetCmdArguments +.argc dd ? +.array dd ? +begin + pushad + invoke GetCommandLineW + lea ecx, [.argc] + invoke CommandLineToArgvW, eax, ecx + test eax, eax + jz .error + + push eax + mov esi, eax + + stdcall CreateArray, 4 + mov [.array], eax + +.argloop: + cmp [.argc], 0 + je .endarg + + stdcall WideCharToUtf8, [esi] + push eax + stdcall AddArrayItems, [.array], 1 + mov [.array], edx + pop dword [eax] + + add esi, 4 + dec [.argc] + jmp .argloop + +.endarg: + invoke LocalFree ; from the stack... + popad + mov eax, [.array] + clc + return + +.error: + popad + stc + return +endp + + + +; Creates a new execution thread +; Returns: CF=1 if error. +; CF=0, eax = pid of the new process being created + +body ThreadCreate +begin + push ecx edx + + invoke CreateThread, NULL, 0, [.ptrFunction], [.ptrArguments], 0, 0 + test eax, eax + jz .error + + clc + pop edx ecx + return + +.error: + stc + pop edx ecx + return +endp + + + +body FreeThreadID +begin + push eax ecx edx + invoke CloseHandle, [.ThreadID] + pop edx ecx eax + return +endp + + + + +body Exec2 +.startup STARTUPINFO +.process PROCESS_INFORMATION +begin + push ecx esi edi + + stdcall utf8ToWideChar, [.hCommand] + mov esi, eax + + lea edi, [.startup] + mov ecx, (sizeof.STARTUPINFO + sizeof.PROCESS_INFORMATION)/4 + xor eax, eax + rep stosd + + mov [.startup.cb], sizeof.STARTUPINFO + mov [.startup.dwFlags], STARTF_USESTDHANDLES + mov eax, [.hStdIn] + mov ecx, [.hStdOut] + mov edx, [.hStdErr] + mov [.startup.hStdInput], eax + mov [.startup.hStdOutput], ecx + mov [.startup.hStdError], edx + + lea ecx, [.startup] + lea edx, [.process] + invoke CreateProcessW, 0, esi, 0, 0, TRUE, NORMAL_PRIORITY_CLASS, 0, 0, ecx, edx + stdcall FreeMem, esi + test eax, eax + jz .error + + mov eax, [.process.hProcess] + mov edx, [.process.hThread] + + clc + pop edi esi ecx + return + +.error: + xor eax, eax + xor edx, edx + stc + pop edi esi ecx + return +endp + + +body FreeProcessID +begin + push eax ecx edx + invoke CloseHandle, [.ProcessID] + pop edx ecx eax + return +endp + + +; Waits for the process to exit and returns the exit code. +; Returns: +; CF = 0; eax=exit code +; CF = 1; eax=0 - the process is running +; CF = 1; eax=-1 - another error. +; +body WaitProcessExit +.exit_code dd ? +begin + push ecx edx + invoke WaitForSingleObject, [.ProcessID], [.timeout] + cmp eax, WAIT_TIMEOUT + je .err_time + cmp eax, WAIT_FAILED + je .error + + lea eax, [.exit_code] + invoke GetExitCodeProcess, [.ProcessID], eax + test eax, eax + jz .error + + mov eax, [.exit_code] + clc + +.finish: + pop edx ecx + return + +.err_time: + xor eax, eax + stc + jmp .finish + +.error: + or eax, -1 + stc + jmp .finish +endp + + + +; MUTEX functions +;_________________________________________________________________________________________ + +body MutexCreate +begin + push eax ecx edx + + cmp [.ptrName], 0 + je .critical_section + +.mutex: + stdcall utf8ToWideChar, [.ptrName] + push eax + + invoke CreateMutexW, 0, TRUE, eax + mov ecx, [.ptrMutex] + mov [ecx+TMutex.handle], eax + mov [ecx+TMutex.type], __mutex_mutex + + stdcall FreeMem ; from the stack + +.finish: + pop edx ecx eax + return + +.critical_section: + mov eax, [.ptrMutex] + mov [eax+TMutex.type], __mutex_critical_section + lea eax, [eax+TMutex.critical_section] + push eax + invoke InitializeCriticalSectionAndSpinCount, eax, 4000 + invoke EnterCriticalSection ; from the stack + jmp .finish +endp + + + + +body WaitForMutex +begin + push eax ecx edx + + mov ecx, [.ptrMutex] + cmp [ecx+TMutex.type], __mutex_mutex + je .mutex + + lea eax, [ecx+TMutex.critical_section] + invoke EnterCriticalSection, eax + clc + jmp .finish + +.mutex: + invoke WaitForSingleObject, [ecx+TMutex.handle], [.timeout] + cmp eax, WAIT_TIMEOUT + je .error + cmp eax, WAIT_FAILED + je .error + + clc +.finish: + pop edx ecx eax + return + +.error: + stc + jmp .finish +endp + + + + +body MutexRelease +begin + pushf + push eax ecx edx + + mov eax, [.ptrMutex] + cmp [eax+TMutex.type], __mutex_mutex + je .mutex + + lea eax, [eax+TMutex.critical_section] + invoke LeaveCriticalSection, eax + jmp .finish + +.mutex: + invoke ReleaseMutex, [eax+TMutex.handle] + +.finish: + pop edx ecx eax + popf + return +endp + + + +body MutexDestroy +begin + push eax ecx edx + mov eax, [.ptrMutex] + + mov [eax+TMutex.type], __mutex_not_initialized + + cmp [eax+TMutex.type], __mutex_mutex + je .mutex + + lea eax, [eax+TMutex.critical_section] + invoke DeleteCriticalSection, eax + jmp .finish + +.mutex: + pushd [eax+TMutex.handle] + mov dword [eax+TMutex.handle], 0 + invoke CloseHandle ; from the stack + +.finish: + pop edx ecx eax + return +endp + + + + +; DLL procedures. + +body LibLoad +begin + pushad + + stdcall StrDup, [.hLibName] + push eax + stdcall StrNormalizePath2, eax, '\/' + stdcall utf8ToWideChar, eax + stdcall StrDel ; from the stack. + push eax + + invoke LoadLibraryExW, eax, NULL, 0 + stdcall FreeMem ; from the stack + + test eax, eax + jnz .finish + + invoke GetLastError + stc + +.finish: + mov [esp+4*regEAX], eax + popad + return +endp + + + +body LibRelease +begin + pushad + + invoke FreeLibrary, [.hLibrary] + test eax, eax + jnz .finish + + invoke GetLastError + mov [esp+4*regEAX], eax + stc + +.finish: + popad + return +endp + + +body LibImport +begin + pushad + + stdcall StrPtr, [.hObjectName] + invoke GetProcAddress, [.hLibrary], eax + test eax, eax + jnz .finish + + invoke GetLastError + stc + +.finish: + mov [esp+4*regEAX], eax + popad + return +endp ADDED freshlib/system/Win32/serial.asm Index: freshlib/system/Win32/serial.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/serial.asm @@ -0,0 +1,67 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Serial IO interface library. Linux part. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + + +proc SerSetParams, .hSerial, .Baudrate, .Parity, .Flow, .Timeout +.dcb smallDCB +.cto COMMTIMEOUTS +begin + pushad + + lea esi, [.dcb] + mov [esi+DCB.DCBlength], sizeof.DCB + invoke GetCommState, [.hSerial], esi + test eax, eax + jz .error + + mov eax, [.Baudrate] + mov ecx, [.Parity] + mov [.dcb.BaudRate], eax + mov [.dcb.Parity], cl ; the constants are defined to be the same. +; mov [.dcb.StopBits], 0 + mov [.dcb.ByteSize], 8 + +; mov ecx, [.Flow] +; mov [.dcb.fOutxCtsFlow], ecx +; mov [.dcb.fOutxDsrFlow], ecx + +; xor ecx, ecx +; mov [.dcb.fOutX], ecx ; no xon/xoff +; mov [.dcb.fInX], ecx ; +; mov [.dcb.fAbortOnError], ecx ; no abort on error + + invoke SetCommState, [.hSerial], esi + test eax, eax + jz .error + + mov eax, [.Timeout] + mov [.cto.ReadIntervalTimeout], eax + mov [.cto.ReadTotalTimeoutMultiplier], eax + mov [.cto.ReadTotalTimeoutConstant], eax + mov [.cto.WriteTotalTimeoutMultiplier], eax + mov [.cto.WriteTotalTimeoutConstant], eax + lea eax, [.cto] + invoke SetCommTimeouts, [.hSerial], eax + test eax, eax + jz .error + + clc + popad + return + +.error: + stc + popad + return +endp ADDED freshlib/system/Win32/timers.asm Index: freshlib/system/Win32/timers.asm ================================================================== --- /dev/null +++ freshlib/system/Win32/timers.asm @@ -0,0 +1,265 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Asynchronous timer library. +; +; Target OS: Win32 +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +uses user32 + +__sys_time_slice = 10 ;[ms] + + +uglobal + if used TimerCreate + __InternalTimerID dd ? + __InternalTimerThread dd ? + end if +endg + + + +if used TimerCreate & ~ ( defined options.DebugMode.NoTimers & options.DebugMode.NoTimers ) + +initialize InitWin32Timers +begin + invoke SetTimer, 0, 0, __sys_time_slice, __TimerProc + mov [__InternalTimerID], eax + + return +endp + + + +finalize FreeWin32Timers +begin +; stop the timer + invoke KillTimer, 0, [__InternalTimerID] + return +endp + +end if + + +; This procedure is called by the system on every time quantum. +; this procedure is Win32 TimerProc + +proc __TimerProc, .hwnd, .msg, .timerID, .time +begin + lea eax, [__ptrFirstTimer] + +.loop: + mov eax, [eax+TTimer.next] +.loop2: + test eax, eax + jz .end_timers + + test [eax+TTimer.flags], tmfRunning + jz .loop + + mov ecx, [eax+TTimer.value] + add ecx, __sys_time_slice + mov [eax+TTimer.value], ecx + + cmp ecx, [eax+TTimer.interval] + jl .loop + +.exploop: + inc [eax+TTimer.Expired] + + mov ecx, [eax+TTimer.interval] + sub [eax+TTimer.value], ecx + cmp [eax+TTimer.value], ecx + jge .exploop + + cmp [eax+TTimer.Callback], 0 + je .end_event + + mov ecx, [eax+TTimer.flags] + and ecx, $0f + cmp ecx, tmfDoNothing + je .end_event + +; call the callback procedure. +.execloop: + pushad + stdcall [eax+TTimer.Callback], eax + popad + + sub [eax+TTimer.Expired], 1 + jg .execloop + +.end_event: + test [eax+TTimer.flags], tmfSyncDestroy + jz .loop + + push eax + mov eax, [eax+TTimer.next] ; after the destruction, this pointer will be lost. + stdcall TimerDestroy ; pointer from the stack. + jmp .loop2 + +.end_timers: + return +endp + + + + +proc GetSysTime +.time dq ? +begin + pushad + + lea eax, [.time] + invoke GetSystemTimeAsFileTime, eax + + popad + return +endp + + + +__filetimeOffset = $19DB1DED53E8000 + + +proc FileTimeToUnixTime +begin + push ebx ecx + + sub eax, __filetimeOffset and $ffffffff + sbb edx, __filetimeOffset shr 32 + + mov ebx, eax + mov ecx, 10000000 ; 100 ns -> s + + mov eax, edx + cdq + idiv ecx + + xchg eax, ebx + + idiv ecx + mov edx, ebx + + pop ecx ebx + return +endp + + + +proc GetTime +.time dq ? +begin + push ecx + + lea eax, [.time] + invoke GetSystemTimeAsFileTime, eax + + mov eax, dword [.time] + mov edx, dword [.time+4] + + call FileTimeToUnixTime + + pop ecx + return +endp + + + +proc GetLocalTimeOffset +.info TIME_ZONE_INFORMATION +begin + push ecx edx + + lea eax, [.info] + invoke GetTimeZoneInformation, eax + mov ecx, [.info.bias] + + cmp eax, TIME_ZONE_ID_DAYLIGHT + jne @f + add ecx, [.info.DaylightBias] +@@: + + cmp eax, TIME_ZONE_ID_STANDARD + jne @f + add ecx, [.info.StandardBias] +@@: + + imul ecx, 60 + neg ecx + + mov eax, ecx + pop edx ecx + return +endp + + +proc Sleep, .ms +begin + push eax ecx edx + invoke SleepWin, [.ms] + pop edx ecx eax + return +endp + + + + + +proc GetTimestamp +begin + pushad + invoke GetTickCount + mov [esp+4*regEAX], eax + popad + return +endp + +uglobal +if used GetFineTimestamp + __FPerfCnt dd ? +end if +endg + + +if used GetFineTimestamp + initialize InitPerformanceCounter + .freq rd 2 + begin + pushad + lea eax, [.freq] + invoke QueryPerformanceFrequency, eax + mov eax, [.freq] + mov [__FPerfCnt], eax + popad + return + endp +end if + + +; returns dword timestamp in uS + +proc GetFineTimestamp +.time dq ? +begin + push ecx edx + + lea eax, [.time] + invoke QueryPerformanceCounter, eax + + mov eax, dword [.time] + xor edx, edx + mov ecx, 1000000 + mul ecx + div dword [__FPerfCnt] + + pop edx ecx + return +endp ADDED freshlib/system/all.asm Index: freshlib/system/all.asm ================================================================== --- /dev/null +++ freshlib/system/all.asm @@ -0,0 +1,18 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: System amalgamation include file. Includes all system libraries of FreshLib +; +; Target OS: Any +;_________________________________________________________________________________________ + + +include 'process.asm' +include 'memory.asm' +include 'files.asm' +include 'serial.asm' +include 'environment.asm' +include 'timers.asm' +include 'network.asm' ADDED freshlib/system/environment.asm Index: freshlib/system/environment.asm ================================================================== --- /dev/null +++ freshlib/system/environment.asm @@ -0,0 +1,22 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: OS environment functions. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains the OS independent part of the library and includes the +; respective OS dependent file. +;_________________________________________________________________________________________ + +module "Environment library" + + +include '%TargetOS%/environment.asm' + + +endmodule Index: freshlib/system/files.asm ================================================================== --- freshlib/system/files.asm +++ freshlib/system/files.asm @@ -1,52 +1,486 @@ -include '%TargetOS%/files.asm' +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Files manipulation library. +; +; Target OS: Any +; +; Dependencies: Uses memory.asm for memory allocations. +; +; Notes: This file contains OS independent part of the library and also include +; the respective OS dependent part. +;_________________________________________________________________________________________ +module "Files library" + +struct TFileInfo + .timeCreated dq ? + .timeAccessed dq ? + .timeModified dq ? +ends + +iglobal +__std_handle_in: + var STDIN = 0 +__std_handle_out: + var STDOUT = 1 +__std_handle_err: + var STDERR = 2 +endg + + +;---------------------------------------------------- +; Returns: +; CF = 1 if the path is relative. +; +; CF = 0 if the path is absolute. +; In this case ZF=0 indicates that the +; path is relative towards the current root +; prefix (drive letter in Windows) +; ZF=1 indicates that the path is fully absolute. +; +; CF = 1 - the path is fully relative. +; CF = 0, ZF = 1 - the path is fully absolute. +; CF = 0, ZF = 0 - the path is absolute, but needs +; the current root prefix ahead. +; +; This procedure is OS dependent, because the +; paths are different in the different OSes. +;---------------------------------------------------- +interface IsRelativePath, .hPath + +; Returns the current root prefix if any. Can be empty string. +interface GetCurrentPrefix + +interface FileOpenAccess, .filename, .access + +interface FileClose, .handle + +; returns 32bit file size in eax +interface FileSize, .handle + +interface FileRead, .handle, .buffer, .count + +interface FileWrite, .handle, .buffer, .count + +interface FileLock, .handle, .lock + +;---------------------------------------------------- +; if CF = 0, eax is the new possition in the file +; if CF = 1, eax is error code. +;---------------------------------------------------- +interface FileSeek, .handle, .dist, .direction + +interface FileTruncate, .handle + +interface FileTruncateTo, .handle, .length + +;---------------------------------------------------- +; if CF = 0 - the file was deleted +; if CF = 1, eax is error code. +;---------------------------------------------------- +interface FileDelete, .filename + +interface GetCurrentDir + +interface SetCurrentDir, .hDirectory + +interface GetErrorString, .code + +interface FreeErrorString, .ptrString + +; reads all items of the directory and fills them in the TArray of type TDirItem. +; arguments: +; dir - string with the path to the directory. +; +; returns: +; if not error: CF=0; eax = pointer to TArray of TDirItem; +; if error: CF=1; eax = error code; + +interface DirectoryRead, .dir + + +interface GetFileInfo, .hFile, .ptrFileInfo + +interface FileExists, .hFileName + +interface CreateDirectory, .DirName + + +; returns the read handle in eax and write handle in edx + +interface CreatePipe + + +;-------------------------------------- +; if CF = 0, eax is handle to the file. +; if CF = 1, eax is error code. +;-------------------------------------- +proc FileOpen, .filename +begin + stdcall FileOpenAccess, [.filename], faReadOnly + return +endp + + +proc FileCreate, .filename +begin + stdcall FileOpenAccess, [.filename], faReadWrite or faCreateAlways + return +endp + + +;if defined StrLib +; strlib.asm depending procedures. + + +; reads the whole file content in a string and returns its handle. +proc StrLoadFromFile, .ptrFileName +begin + push ecx + + stdcall LoadBinaryFile, [.ptrFileName] + jc .finish + + push eax + stdcall StrDup, eax + stdcall FreeMem ; from the stack + + clc + +.finish: + pop ecx + return +endp + + + +proc StrSaveToFile, .ptrFileName, .hString +begin + stdcall StrLen, [.hString] + push eax + stdcall StrPtr, [.hString] + push eax + stdcall SaveBinaryFile, [.ptrFileName] ; remaining already in the stack. + return +endp + + +; reads a line from the text file and positions the file pointer to the begining of +; the next line. +; returns string handle with the line in EAX +; returns CF=1 and EAX=error code on error. + +FILE_LINE_BUFFER = 64 + +proc FileReadLine, .hfile +.result dd ? +.buffer rb FILE_LINE_BUFFER + dd 0 +begin + pushad + + stdcall StrNew + mov [.result], eax + + xor edi, edi + +.read_loop: + lea esi, [.buffer] + stdcall FileRead, [.hfile], esi, FILE_LINE_BUFFER + jc .error_read + test eax, eax + jz .end_of_file + + mov ebx, eax + mov dword [esi+ebx], 0 + + cmp ebx, 3 + jbe .proceed + + test edi, edi + jz .check_bom ; this is the first chunk. + +.proceed: + mov edi, esi ; start of the line. + +.char_loop: + mov al, [esi] + lea esi, [esi+1] + + cmp al, $0d + je .found + cmp al, $0a + je .found + test al, al + jnz .char_loop + +.found: + mov byte [esi-1], 0 + stdcall StrCat, [.result], edi + + test al, al + jnz .end_of_line + cmp ebx, FILE_LINE_BUFFER + je .read_loop + jmp .file_ok + +.end_of_line: + cmp byte [esi], 0 + jne .check_next + +; when on the end of the buffer CR or LF were found, check one more byte... + + push eax + stdcall FileRead, [.hfile], esi, 1 ; read one more byte. + jc .error_read + test eax, eax + pop eax + jz .end_of_file + + xor al, $0d xor $0a + cmp byte [esi], al + je .file_ok + inc esi + jmp .eol_ok + +.check_next: + xor al, $0d xor $0a + cmp byte [esi], al + jne .eol_ok + inc esi + +.eol_ok: + lea eax, [.buffer] + sub esi, eax + sub esi, ebx + jz .file_ok + + stdcall FileSeek, [.hfile], esi, fsFromCurrent + +.file_ok: + clc + +.finish: + popad + mov eax, [.result] + return + +.error_read: + stdcall StrDel, [.result] + mov [.result], eax + stc + jmp .finish + +.end_of_file: + stdcall StrLen, [.result] + test eax, eax + jnz .file_ok + + stdcall StrDel, [.result] + mov [.result], 0 + jmp .file_ok + +.check_bom: + cmp word [esi], $bbef + jne .proceed + cmp byte [esi+2], $bf + jne .proceed + + add esi, 3 + jmp .proceed +endp + + +STREAM_LINE_BUFFER = 256 + +struct TStreamContext + .buffer rb STREAM_LINE_BUFFER + .size dd ? + .pos dd ? +ends + + +; Reads a line from a file, only reading forward. +; Suitable for reading from streams, sockets, devices and pipes. +; Also, it is faster than the FileReadLine because +; reads bigger chunks from the file and only once. +; +; The disadvantage is that it is context dependent +; +; Arguments: +; .hStream: Handle of a file, socket, pipe, etc. +; .pContext: pointer to the context structure TStreamContext +; if 0 a new structure is allocated and returned without reading +; from the stream. +; Returns: +; CF=0, EAX: string handle of the line read or new created and initialized +; structure TStreamContext +; +; CF=1, EAX: Read error code. + +proc StreamReadLine, .hStream, .pContext +begin + pushad + mov esi, [.pContext] + test esi, esi + jnz .do_read_stream + + stdcall GetMem, sizeof.TStreamContext + xor ecx, ecx + mov [eax+TStreamContext.pos], ecx + mov [eax+TStreamContext.size], ecx + mov [esp+4*regEAX], eax + clc + popad + return + +.do_read_stream: + stdcall StrNew + mov edx, eax + mov [esp+4*regEAX], edx + + mov ebx, [esi+TStreamContext.pos] + cmp ebx, [esi+TStreamContext.size] + jb .start + +.read_chunk: + call .chunk + jc .error + jz .error + +.start: + mov edi, ebx + +.scan: + mov al, [esi+ebx] + + cmp al, $0d + je .eol + cmp al, $0a + je .eol + + inc ebx + cmp ebx, [esi+TStreamContext.size] + jb .scan + + call .append + jmp .read_chunk + +.eol: + call .append + + inc ebx + cmp ebx, [esi+TStreamContext.size] + jb @f + + push eax + call .chunk + pop eax + jc .error + jz .finish + +@@: + xor al, $0d xor $0a + cmp al, [esi+ebx] + jne @f + inc ebx +@@: + mov [esi+TStreamContext.pos], ebx + +.finish: + popad + return + +.error: + mov [esp+4*regEAX], eax + stdcall StrDel, edx + popad + return + +.append: + mov ecx, ebx + sub ecx, edi + jz @f + add edi, esi + stdcall StrCatMem, edx, edi, ecx +@@: + retn + +.chunk: + stdcall FileRead, [.hStream], esi, STREAM_LINE_BUFFER + jc @f + mov [esi+TStreamContext.size], eax + xor ebx, ebx + mov [esi+TStreamContext.pos], ebx + test eax, eax +@@: + retn +endp + + + + +proc FileWriteString, .file, .hString +begin + push ecx + + stdcall StrLen, [.hString] + mov ecx, eax + stdcall StrPtr, [.hString] + stdcall FileWrite, [.file], eax, ecx + + pop ecx + return +endp + + + ;-------------------------------------------------------------------- ; Allocates needed memory and loads the entire file in this memory. -; Returns pointer to memory block or NULL if there is error. -; Returns size in ecx +; Returns pointer to memory block or error code. +; Returns size in ecx or NULL if there is error. ;-------------------------------------------------------------------- proc LoadBinaryFile, .ptrFileName begin push esi edi ebx - stdcall FileOpen, [.ptrFileName] + stdcall FileOpenAccess, [.ptrFileName], faReadOnly jc .error mov edi, eax - stdcall FileSeek, edi, 0, fsFromEnd + stdcall FileSize, edi jc .errorclose + mov ebx, eax - - lea ecx, [ebx+4] ; It is for the case that the file is + lea ecx, [eax+8] ; It is for the case that the file is ; text and we want to use it as null terminated ; string. + stdcall GetMem, ecx jc .errorclose - mov esi, eax - stdcall FileSeek, edi, 0, fsFromBegin - jc .errorclosemem + stdcall FileRead, edi, esi, ebx jc .errorclosemem mov ecx, eax stdcall FileClose, edi - mov eax, esi + mov eax, esi clc pop ebx edi esi return - .errorclosemem: - push eax stdcall FreeMem, esi - pop eax .errorclose: push eax stdcall FileClose, edi pop eax @@ -94,22 +528,207 @@ return endp -; Returns: -; CF=1 if the file NOT EXISTS -; CF=0 if the file EXISTS + +; This structure contains one directory item information. +; + +struct TDirItem + .hFilename dd ? ; handle of string with the filename. + .Type dd ? ; type of the file. Value of type ftXXXXXX (defined in the OS depending library). + .Size dq ? + .mTime dq ? + .Perm dd ? + dd ? +ends + + -proc FileExists, .ptrFileName +proc FreeDirArray, .pDirArray begin - push eax + push eax ecx + + mov eax, [.pDirArray] + mov ecx, [eax+TArray.count] + lea eax, [eax+TArray.array] + +.freelist: + dec ecx + js .exit - push [.ptrFileName] - stdcall FileOpen - jc .exit - stdcall FileClose, eax - clc + stdcall StrDel, [eax+TDirItem.hFilename] + add eax, sizeof.TDirItem + jmp .freelist .exit: - pop eax + stdcall FreeMem, [.pDirArray] + pop ecx eax + return +endp + + +; dsXXXX means "directory sort" + +dsByName = 1 +dsByExt = 2 +dsBySize = 3 +dsByDate = 4 + +fdsDescending = $40000000 +fdsDirsFirst = $80000000 + +; This procedure is to be used for sorting arrays of TDirItem with the +; procedure SortArray. +; +; Use it following way: +; +; stdcall SortArray, [.pDirArray], DirItemCompare, DIR_SORT_FLAGS +; +; DIR_SORT_FLAGS is a set of fdsXXXXX flags, and dsXXXX const defined above. + +proc DirItemCompare, .pElement1, .pElement2, .param +begin + pushad + + mov ebx, [.pElement1] + mov edx, [.pElement2] + + test [.param], fdsDirsFirst + jz .comp_other + + mov eax, [ebx+TDirItem.Type] + mov ecx, [edx+TDirItem.Type] + and eax, not ftLinkMask + and ecx, not ftLinkMask + + cmp eax, ftDirectory + setne al + cmp ecx, ftDirectory + setne cl + + cmp al, cl + je .comp_dir_more + +; flags are ok here! +.finish: + popad + return + +.comp_dir_more: + + test al, al + jnz .comp_other + + cmp byte [.param], dsByDate + je .comp_other + + mov [.param], dsByName + +.comp_other: + cmp byte [.param], dsByName + je .name + + cmp byte [.param], dsBySize + je .size + + cmp byte [.param], dsByDate + jne .name + +; date: + mov eax, dword [ebx+TDirItem.mTime] + mov ecx, dword [ebx+TDirItem.mTime+4] + mov esi, dword [edx+TDirItem.mTime] + mov edi, dword [edx+TDirItem.mTime+4] + jmp .integer + +.size: + mov eax, dword [ebx+TDirItem.Size] + mov ecx, dword [ebx+TDirItem.Size+4] + mov esi, dword [edx+TDirItem.Size] + mov edi, dword [edx+TDirItem.Size+4] + +.integer: + test [.param], fdsDescending + jz @f + xchg eax, esi + xchg ecx, edi + and [.param], not fdsDescending +@@: + cmp ecx, edi + jne .endint + + cmp eax, esi + je .name ; universal fall-down. + +.endint: + popad + return + + +.name: + mov eax, [ebx+TDirItem.hFilename] + mov ecx, [edx+TDirItem.hFilename] + +.comp_strings: + test [.param], fdsDescending + jz @f + xchg eax, ecx +@@: + stdcall StrCompSort2, eax, ecx, FALSE + shl eax, 1 + +; if less -> CF = 1, ZF=0 (JB will be taken) +; if equal -> CF = 0, ZF=1 (JE will be taken) +; if more -> CF=0, ZF=0 (JA will be taken) + popad + return +endp + + + + +proc __FileErrorDisplay, .error_code, .filename +begin + pushad + + stdcall NumToStr, [.error_code], ntsDec or ntsUnsigned + mov ebx, eax + + stdcall StrDupMem, .cErrorOpenString + push eax + stdcall StrCat, eax, ebx + stdcall StrCharCat, eax, $0a0d + stdcall StrDel, ebx + + stdcall StrPtr, eax + stdcall Output, eax + stdcall StrDel ; from the stack. + + stdcall GetErrorString, [.error_code] + push eax + stdcall StrPtr, eax + stdcall Output, eax + stdcall Output, .ccrlf + stdcall FreeErrorString ; from the stack + + cmp [.filename], 0 + je .finish + + stdcall Output, .cErrorFilename + stdcall StrPtr, [.filename] + stdcall Output, eax + stdcall Output, .ccrlf + +.finish: + popad return + + .cErrorOpenString db "Error code:", 0 + .cErrorFilename db "Filename: ", 0 + .ccrlf db 13, 10, 0 endp + + +include '%TargetOS%/files.asm' + +endmodule ADDED freshlib/system/heapmgr.asm Index: freshlib/system/heapmgr.asm ================================================================== --- /dev/null +++ freshlib/system/heapmgr.asm @@ -0,0 +1,1535 @@ + +options.DebugHeap = 0 + + +module "Heap manager" + + +include "%TargetOS%/heapmgr.asm" + + +ERR_FASMLIB = 0 ;Internal FASMLIB assertion failed. This is bug in FASMLIB. Please report +ERR_UNKNOWN = 1 ;Unknown error +ERR_MODULE_NOT_INITIALIZED = 3 ;(internal) Module not initialized +ERR_OUT_OF_MEM = 4 ;Out of memory +ERR_HEAP_CORRUPT = 5 ;(internal) Heap corrupt +ERR_MEMORY_LEAK = 6 ;(internal) Memory leak +ERR_INVALID_POINTER = 7 ;(internal) Invalid pointer +ERR_OUT_OF_RANGE = 12 ;Out of range +ERR_ZERO_SIZE = 14 ;(internal) Zero size + + +;interface of HEAPBLOCK and heap manager constants +struct HEAPBLOCK + .sign dw 'HB' ;signature of block. must be 'HB' (heap block) + .used db ? ;0 = block is unused, 1 = block is used + .last db ? ;0 = block isn't last, 1 = block is last + ;only valid for used blocks + .size dd ? ;real size of this block (not including header) + .prev dd ? ;pointer to previous block. 0=this is first block + .asize dd ? ;allocated size of this block (can be smaller than real size) +ends + + +;heap size alignment (default = 4KB) +;it's value must be power of two!!! +match =HEAP_SIZE_ALIGN, HEAP_SIZE_ALIGN { + HEAP_SIZE_ALIGN equ 4096 +} + +;intial heap size (default = 16KB) +;must be multiple of HEAP_SIZE_ALIGN +match =HEAP_INIT_SIZE, HEAP_INIT_SIZE { + HEAP_INIT_SIZE equ 16384 +} + +;sizes of block will be multiples of this value (default = 8 bytes) +;any smaller free block will be left out as padding +;it's value must be power of two!!! +match =HEAP_BLOCK_ALIGN, HEAP_BLOCK_ALIGN { + HEAP_BLOCK_ALIGN equ 16 +} + +;minimal size of block, when it is split from block whose size shrinked +;must be multiple of HEAP_BLOCK_ALIGN +match =HEAP_MIN_SPLIT_SIZE, HEAP_MIN_SPLIT_SIZE { + HEAP_MIN_SPLIT_SIZE equ HEAP_BLOCK_ALIGN +} + + + +iglobal + var mem.initialized = 0 ;0 = module not initialized, 1=initialized +endg + + +uglobal + var mem.heap.start = ? ;pointer to beginning of heap + var mem.heap.size = ? ;size of heap + var mem.alloc_count = ? ;number of allocations (to discover memory leak) + var mem.heap_corrupt = ? ;0 = okay, 1 = heap corrupt + + if used mem.access_mutex + align 4 + mem.access_mutex TMutex + end if +endg + + + + +if used GetMem +;============================================================================ +; mem.init +; desc: initalizes mem module (and it's heap manager) +; args: none +; ret: CF set on error +; note: initialization is required for allocation +; error: ERR_UNKNOWN - platform-specific error +; +mem.alloc_heap (in platform-dependant part of mem module) +;============================================================================ +initialize mem.init +begin + ;if module is already initialized, just return + cmp [mem.initialized], 0 + jne .rnc + + ; call platform-dependant heap allocation + stdcall mem.alloc_heap, HEAP_INIT_SIZE + jc .rc + + ; save heap info + mov [mem.heap.start], eax + mov [mem.heap.size], HEAP_INIT_SIZE + + ; create first heap block + mov [eax + HEAPBLOCK.sign], 'HB' + mov [eax + HEAPBLOCK.size], HEAP_INIT_SIZE - sizeof.HEAPBLOCK + mov [eax + HEAPBLOCK.prev], 0 + mov [eax + HEAPBLOCK.last], 1 + mov [eax + HEAPBLOCK.used], 0 + + ; initialized + mov [mem.alloc_count], 0 + mov [mem.heap_corrupt], 0 + mov [mem.initialized], 1 + + if options.Threads + stdcall MutexCreate, 0, mem.access_mutex + stdcall MutexRelease, mem.access_mutex + end if + + +.rnc: clc +.r: return + +.rc: stc + return +endp + + + + +;============================================================================ +; mem.uninit +; desc: uninitalizes mem module (and it's heap manager) +; args: none +; ret: CF set on error +; error: ERR_UNKNOWN - platform-specific error +; ERR_MEMORY_LEAK - you didn't free some allocated block +; +mem.free_heap (in platform-dependant part of mem module) +;============================================================================ +finalize mem.uninit +begin + if options.Threads + stdcall WaitForMutex, mem.access_mutex, -1 + stdcall MutexDestroy, mem.access_mutex + end if + + ;is module initialized? + cmp [mem.initialized], 0 + jz .error_not_initialized + + cmp [mem.heap_corrupt],0 + jne .dont_test_heap + + ; check heap + stdcall __mem.test_heap + jc .rc + +.dont_test_heap: + + ; call platform-dependant free heap + stdcall mem.free_heap, [mem.heap.start], [mem.heap.size] + jc .rc + + ; uninitialized + mov [mem.initialized], 0 + + ; return error if there is some memory leak + cmp [mem.alloc_count], 0 + ja .error_memory_leak + + clc + return + +.rc: mov [mem.initialized], 0 + stc + return + +.error_memory_leak: + mov eax, ERR_MEMORY_LEAK + jmp .rc + +.error_not_initialized: + mov eax, ERR_MODULE_NOT_INITIALIZED + jmp .rc +endp + + +end if + + +uglobal + if used LogMemory + align 4 + __LogMemoryMutex TMutex + end if +endg + + +if used LogMemory + +initialize InitLogMemory +begin + stdcall MutexCreate, 0, __LogMemoryMutex + stdcall MutexRelease, __LogMemoryMutex + return +endp + +finalize FreeLogMemory +begin + stdcall MutexDestroy, __LogMemoryMutex + return +endp + +end if + + +proc LogMemory, .pmsg, .address, .argcount +begin + pushad + + mov esi, [ebp] ; caller stack frame. + mov edi, [esi] ; one level back. + + cmp edi, ebp + ja .ediok + + mov edi, esi +.search: + add edi, 4 + cmp [edi], esp + jb .search + +.ediok: + stdcall WaitForMutex, __LogMemoryMutex, -1 + + stdcall Output, [.pmsg] + stdcall OutputNumber, [.address], 16, 8 + stdcall Output, '; Call from: $' + stdcall OutputNumber, [esi+4], 16, 8 + + stdcall Output, <',',' $'> + stdcall OutputNumber, [edi+4], 16, 8 + + xor ecx, ecx + inc ecx +.argloop: + stdcall Output, '; Arg(' + stdcall OutputNumber, ecx, 10, 2 + stdcall Output, ') = $' + stdcall OutputNumber, [esi+4*ecx+4], 16, 8 + inc ecx + cmp ecx, [.argcount] + jbe .argloop + + stdcall Output, .cCRLF + + stdcall MutexRelease, __LogMemoryMutex + popad + return + +.cCRLF db 13, 10, 0 +endp + + + + +body GetMem +begin + if options.Threads + stdcall WaitForMutex, mem.access_mutex, -1 + jc .errmutex + end if + + stdcall mem.alloc0, [.size] + + if options.Threads + stdcall MutexRelease, mem.access_mutex + end if + jc .error + +if options.DebugHeap + stdcall LogMemory, 'Allocate:', eax, 1 + clc +end if + return + +.error: +if options.DebugHeap + stdcall LogMemory, 'Allocate error:', eax, 1 + stc +end if + xor eax, eax + return + +.errmutex: +if options.DebugHeap + stdcall LogMemory, 'Mutex timeout:', eax, 1 + stc +end if + jmp .error + +endp + + +body FreeMem +begin + push eax + + if options.Threads + stdcall WaitForMutex, mem.access_mutex, -1 + jc .finish + end if + + stdcall mem.free, [.ptr] + + if options.Threads + stdcall MutexRelease, mem.access_mutex + end if + +if options.DebugHeap + jnc .ok + stdcall LogMemory, 'Free error:', [.ptr], 1 + stc + jmp .finish + +.ok: + stdcall LogMemory, 'Free:', [.ptr], 1 + clc +end if + +.finish: + pop eax + return +endp + + + + +body ResizeMem +begin +if options.DebugHeap + stdcall LogMemory, 'Reallocate attempt:', [.ptr], 2 +end if + + if options.Threads + stdcall WaitForMutex, mem.access_mutex, -1 + jc .error + end if + + stdcall mem.realloc0, [.ptr], [.newsize] + + if options.Threads + stdcall MutexRelease, mem.access_mutex + end if + jnc .finish + +.error: + mov eax, [.ptr] + +if options.DebugHeap + jnc .ok + stdcall LogMemory, 'Reallocate failed:', eax, 2 + stc + jmp .finish + +.ok: + stdcall LogMemory, 'Reallocate success:', eax, 2 + clc +end if + +.finish: + return +endp + + + + +;; @name mem.alloc0 +;; @desc +;; Allocates block of memory, and fills it with zeroes. +;; @arg size +;; Size of memory to allocate +;; @ret +;; CF set on error, otherwise +;; EAX = pointer to beginning of allocated memory block +;; @err ERR_OUT_OF_MEM +;; Not enough memory +;; @err ERR_ZERO_SIZE +;; size = 0 +;; @err ERR_OUT_OF_RANGE +;; size is negative (or larger than 7FFFFFFFh if viewed as unsigned) +;; @err ERR_HEAP_CORRUPT +;; {heap:Heap is corrupted}. You was writing to memory outside of allocated block. +;; @err ERR_MODULE_NOT_INITIALIZED +;; Module is not initialized. Initialize module with {mem.init} to use this procedure. +;; @err ERR_UNKNOWN +;; System returned error that wasn't translated to FASMLIB error. +;; You can {contact} author about this, and translation can be added. +;; @warn Don't forget to release allocated block with {mem.free}! +;; @note returned pointer must be always >= 10000h +;; @note Returned pointer is always >= 10000h to make it easily distinguishable from handles. +;; @note Maximal allowed size is 7FFFFFFFh, to catch errors with negative values. +;; @note Altough returned block may have bigger size than requested on some implementations, +;; don't use this additional memory. +;; It is not zeroes, an {mem.realloc} doesn't preserve this memory. +;; @note Memory management must be {mem.init:initialized} for this procedure to work. +;; @note This is platform-specific procedure +proc mem.alloc0, .size +begin + push ebx + + ;error if size=0 + cmp [.size], 0 + je .error_size_zero + + ;allocate + stdcall mem.alloc, [.size] + jc .rc + mov ebx, eax + + ;zero memory + stdcall mem.fill, ebx, [.size], 0 + jc .rc + + mov eax, ebx + +.rnc: clc +.r: pop ebx + return + +.rc: stc + int3 + jmp .r + +.error_size_zero: + mov eax, ERR_ZERO_SIZE + jmp .rc +endp + + + + +;============================================================================ +;; @name mem.realloc0 +;; @desc +;; Rellocates (resizes) block of memory. +;; Block can be moved during this process, so you need to update pointer(s) to it. +;; Contents of block are preserved. +;; If block is enlarging, contents of added space are filled with zeroes. +;; @arg blockptr +;; Pointer to block to relocate. +;; This must be same pointer as returned from allocation function, pointer into block is not enough. +;; @arg newsize +;; New size of block, in bytes +;; @ret +;; CF set on error, orherwise +;; EAX = pointer to reallocated memory block +;; @err ERR_INVALID_POINTER +;; Blockptr is not a valid allocated block pointer. +;; This could also mean {heap:heap corruption}, these two cases cannot be properly distinguished. +;; @err ERR_OUT_OF_MEM +;; Not enough memory +;; @err ERR_ZERO_SIZE +;; size = 0 +;; @err ERR_OUT_OF_RANGE +;; size is negative (or larger than 7FFFFFFFh if viewed as unsigned) +;; @err ERR_HEAP_CORRUPT +;; {heap:Heap is corrupted}. You was writing to memory outside of allocated block. +;; @err ERR_MODULE_NOT_INITIALIZED +;; Module is not initialized. Initialize module with {mem.init} to use this procedure. +;; @err ERR_UNKNOWN +;; System returned error that wasn't translated to FASMLIB error. +;; You can {contact} author about this, and translation can be added. +;; @dep mem.realloc_heap +;; Only on platforms where FASMLIB heap manager is used. +;; @warn +;; Block can be moved during realocation! If you had any pointers to block, +;; they become invalid (so rather prefer using indexes to allocated blocks). +;; If you saved block pointer in variable, you need to rewrite it with +;; returned value. +;; @note Returned pointer is always >= 10000h to make it easily distinguishable from handles. +;; @note Maximal allowed newsize is 7FFFFFFFh, to catch errors with negative values. +;; @note Altough returned block may have bigger size than requested on some implementations, +;; don't use this additional memory. {mem.realloc} doesn't preserve this memory. +;; @note Memory management must be {mem.init:initialized} for this procedure to work. +;; @note This is platform-specific procedure +proc mem.realloc0, .blockptr, .newsize +begin + push ebx esi + + ;error if newsize=0 + cmp [.newsize], 0 + je .error_newsize_zero + + ;ESI = save old block size + stdcall GetMemSize, [.blockptr] + mov esi, eax + + ;reallocate + stdcall mem.realloc, [.blockptr], [.newsize] + jc .r + mov ebx, eax + + ;number of bytes to zero = newsize-oldsize + mov eax, [.newsize] + sub eax, esi + + ;zero new memory + pushd 0 + pushd eax + lea eax, [ebx+esi] + pushd eax + call mem.fill + jc .r + + mov eax, ebx + +.rnc: clc +.r: pop esi ebx + return + +.rc: stc + int3 + jmp .r + +.error_newsize_zero: + mov eax, ERR_ZERO_SIZE + jmp .rc + +endp + + + + +;============================================================================ +; mem.alloc +; desc: allocates <size> bytes of memory +; args: size - size of memory to allocate +; ret: CF set on error, otherwise +; eax = pointer to beginning of allocated memory block +; note: - returned pointer must be always >= 10000h +; - contents of allocated memory are unknown +; (use alloc0 to have block zeroed) +; - don't forget to mem.free allocated memory! +; - maximal allowed size if 7FFFFFFFh, to catch errors with negative value +; error: ERR_OUT_OF_MEM - out of memory +; ERR_ZERO_SIZE - size=0 +; ERR_OUT_OF_RANGE - size >= 80000000h +; ERR_HEAP_CORRUPT - you was overwriting memory outside allocated block +; ERR_UNKNOWN +; ERR_MODULE_NOT_INITIALIZED +; mem.heap_alloc +;============================================================================ +proc mem.alloc, .size +begin + push ebx ecx edx esi edi + + ;is module initialized? + cmp [mem.initialized], 0 + je .error_not_initialized + + ;was heap corruption detected? + cmp [mem.heap_corrupt], 0 + jne .error_heap_corrupt + + ;error if size=0 + cmp [.size], 0 + je .error_size_zero + jl .error_size_too_big + + ;ECX = size to allocate, aligned to HEAP_BLOCK_ALIGN + mov ecx, [.size] + add ecx, HEAP_BLOCK_ALIGN-1 + and ecx, not (HEAP_BLOCK_ALIGN-1) + + ;EBX = pointer to first HEAP block + mov ebx, [mem.heap.start] + + ;find unused block with enough space +.find_block: + + ;check if block is okay + cmp [ebx + HEAPBLOCK.sign], 'HB' + jne .error_heap_corrupt + + ;is the block unused? + cmp [ebx + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + je .try_next_block + + ;is the block large enough? + cmp [ebx + HEAPBLOCK.size], ecx + jae .block_found + +.try_next_block: + + ;is there some next block? + cmp [ebx + HEAPBLOCK.last], 1 + ja .error_heap_corrupt + je .no_block_found + + ;go to next block + add ebx, [ebx + HEAPBLOCK.size] + add ebx, sizeof.HEAPBLOCK + jmp .find_block + + ;no suitable block found. we need to enlarge heap + ;EBX = pointer to last block +.no_block_found: +.resize_heap: + + ; increasize heap size by needed size + header size aligned to HEAP_SIZE_ALIGN + mov edx, ecx + add edx, sizeof.HEAPBLOCK + add edx, HEAP_SIZE_ALIGN-1 + and edx, not (HEAP_SIZE_ALIGN-1) + add edx, [mem.heap.size] + stdcall mem.realloc_heap, [mem.heap.start], edx, [mem.heap.size] + mov [mem.heap_corrupt], 1 ;if this call failed, we are screwed + jc .rc + mov [mem.heap_corrupt], 0 + xchg [mem.heap.size], edx + + ;edx = size of added block + mov eax, [mem.heap.size] + sub eax, edx + mov edx, eax + + ;if last block was free, we append new space to it + cmp [ebx + HEAPBLOCK.used], 1 + jne .add_new_space_to_last_block + + ;last block is used, but first we need to check if we can take enough unused space from last block + ;if there is at least sizeof.HEAPBLOCK unused bytes after alignation, we take them + mov esi, [ebx + HEAPBLOCK.asize] + add esi, HEAP_BLOCK_ALIGN-1 + and esi, not (HEAP_BLOCK_ALIGN-1) + mov eax, [ebx + HEAPBLOCK.size] + sub eax, esi + jc .create_block_in_added_space ;if size is not even aligned. shouldn't happen but anyway... + + cmp eax, sizeof.HEAPBLOCK + jb .create_block_in_added_space + + ;EBX = last block, ESI = new size of EBX block +.take_space_from_last_block: + + ;set up EBX + mov [ebx + HEAPBLOCK.last], 0 + mov [ebx + HEAPBLOCK.size], esi + + ;set up ESI + lea esi, [ebx + esi + sizeof.HEAPBLOCK] + mov [esi + HEAPBLOCK.sign], 'HB' + mov [esi + HEAPBLOCK.last], 1 + mov [esi + HEAPBLOCK.prev], ebx + mov eax, [mem.heap.start] + add eax, [mem.heap.size] + sub eax, esi + sub eax, sizeof.HEAPBLOCK + mov [esi + HEAPBLOCK.size], eax ;size = up to end of block + mov [esi + HEAPBLOCK.used], 0 + + mov ebx, esi + jmp .block_found + +.create_block_in_added_space: + + ;esi = new block + lea esi, [ebx + sizeof.HEAPBLOCK] + add esi, [ebx + HEAPBLOCK.size] + + ;set up the block + mov [ebx + HEAPBLOCK.last], 0 + mov [esi + HEAPBLOCK.sign], 'HB' + mov [esi + HEAPBLOCK.last], 1 + mov [esi + HEAPBLOCK.prev], ebx + sub edx, sizeof.HEAPBLOCK + mov [esi + HEAPBLOCK.size], edx + mov [esi + HEAPBLOCK.used], 0 + + mov ebx, esi + jmp .block_found + + +.add_new_space_to_last_block: + add [ebx + HEAPBLOCK.size], edx + + ;suitable block found, we will use it for allocation + ;EBX = pointer to block, ecx=size to allocate +.block_found: + + ;EDI = beginning of new block aligned + lea edi, [ebx + sizeof.HEAPBLOCK + ecx] + + ;EDX = space left in block + mov edx, [ebx + HEAPBLOCK.size] + sub edx, ecx + jz .set_block ;if zero, we can skip it + + ;ESI = next block + cmp [ebx + HEAPBLOCK.last], 1 + ja .error_heap_corrupt + je .is_last_block + lea esi, [ebx + sizeof.HEAPBLOCK] + add esi, [ebx + HEAPBLOCK.size] + + jmp .not_last_block + + +.is_last_block: + sub edx, sizeof.HEAPBLOCK + + ;if following space is not big enough, leave it as padding + cmp edx, HEAP_BLOCK_ALIGN + jb .set_block + + ;there is enough space, create new block (EDI) + mov [ebx + HEAPBLOCK.last], 0 + mov [ebx + HEAPBLOCK.size], ecx + mov [edi + HEAPBLOCK.sign], 'HB' + mov [edi + HEAPBLOCK.used], 0 + mov [edi + HEAPBLOCK.last], 1 + mov [edi + HEAPBLOCK.size], edx + mov [edi + HEAPBLOCK.prev], ebx + + jmp .set_block + +.not_last_block: + + ;if next block is unused, move it to rest of buffer append space + cmp [esi + HEAPBLOCK.used], 0 + jne .next_block_used + +.next_block_unused: + + ;no moving if gained space is <= sizeof.HEAPBLOCK (could case problems) + cmp edx, sizeof.HEAPBLOCK + jbe .set_block + + ;next block is unused, move it to EDI + mov [ebx + HEAPBLOCK.size], ecx + mov [esi + HEAPBLOCK.sign], 0 ;clean sign of the next block, to prevent identifying it as valid block in future + mov [edi + HEAPBLOCK.sign], 'HB' + mov [edi + HEAPBLOCK.used], 0 ;newblock.used = 0 + mov al, [esi + HEAPBLOCK.last] + mov [edi + HEAPBLOCK.last], al + mov eax, [esi + HEAPBLOCK.size] + add eax, [edx - sizeof.HEAPBLOCK] + add [edi + HEAPBLOCK.size], eax ;newblock.size = newblock.size + nextblock.size - nextblock_header_size + mov [edi + HEAPBLOCK.prev], ebx ;newblock.prev = previous block (EBX) + mov [eax + HEAPBLOCK.prev], edi ;nextblock.next.prev = newblock + + jmp .set_block + + ;following block (ESI) is used +.next_block_used: + sub edx, sizeof.HEAPBLOCK + + ;if remaining space is not big enough to create new block, leave it as padding + cmp edx, HEAP_BLOCK_ALIGN + jb .set_block + + ;it's big enough, so create new block + mov [ebx + HEAPBLOCK.size], ecx + mov [edi + HEAPBLOCK.sign], 'HB' + mov [edi + HEAPBLOCK.size], edx + mov [edi + HEAPBLOCK.prev], ebx + mov [edi + HEAPBLOCK.used], 0 + mov [edi + HEAPBLOCK.last], 0 + lea eax, [edi + edx + sizeof.HEAPBLOCK] + mov [eax + HEAPBLOCK.prev], edi ;ebx->next->prev = ebx->next + + ;set current block we are going to allocate +.set_block: + mov eax, [.size] + mov [ebx + HEAPBLOCK.asize], eax + mov [ebx + HEAPBLOCK.used], 1 + + ;another block successfully allocated + inc [mem.alloc_count] + + ;return pointer to block + lea eax, [ebx + sizeof.HEAPBLOCK] + +.rnc: clc +.r: pop edi esi edx ecx ebx + return + +.rc: + DebugMsg "Error mem.alloc" + stc + jmp .r + +.error_not_initialized: + mov eax, ERR_MODULE_NOT_INITIALIZED + jmp .rc + +.error_heap_corrupt: + int3 + mov [mem.heap_corrupt], 1 + mov eax, ERR_HEAP_CORRUPT + jmp .rc + +.error_size_zero: + mov eax, ERR_ZERO_SIZE + jmp .rc + +.error_size_too_big: + mov eax, ERR_OUT_OF_RANGE + jmp .rc + +endp + + + + + + +;============================================================================= +; mem.free +; desc: deallocates memory block +; args: blockptr - pointer to memory block returned by mem.alloc +; ret: CF set on error +; note: after error, consider block as freed, don't use it anymore +; error: ERR_INVALID_POINTER - if blockptr isn't valid block pointer +; ERR_HEAP_CORRUPT - you was overwriting memory outside allocated block +; ERR_UNKNOWN +; ERR_MODULE_NOT_INITIALIZED +; ERR_FASMLIB +;============================================================================= +proc mem.free, .blockptr +begin + push eax ebx edi + + ;is module initialized? + cmp [mem.initialized], 0 + je .error_not_initialized + + ;was heap corruption detected? + cmp [mem.heap_corrupt], 0 + jne .error_heap_corrupt + + ;EBX = pointer to heap block + mov ebx, [.blockptr] + sub ebx, sizeof.HEAPBLOCK + + ;check if pointer lies inside heap + mov eax, ebx + sub eax, [mem.heap.start] + jb .error_bad_pointer + sub eax, [mem.heap.size] + jae .error_bad_pointer + + ;check block + cmp [ebx + HEAPBLOCK.sign], 'HB' + jne .error_bad_pointer + cmp [ebx + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + jb .error_bad_pointer + + ;free block + mov [ebx + HEAPBLOCK.used], 0 + +.check_following_block: + + ;EDI = following block (if any) + cmp [ebx + HEAPBLOCK.last], 1 + ja .error_heap_corrupt + je .check_previous_block + lea edi, [ebx + sizeof.HEAPBLOCK] + add edi, [ebx + HEAPBLOCK.size] + + ;check following block + cmp [edi + HEAPBLOCK.sign], 'HB' + jne .error_heap_corrupt + cmp [edi + HEAPBLOCK.prev], ebx + jne .error_heap_corrupt + + ;if following block is unused, append it + cmp [edi + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + je .check_previous_block + + ;append block + mov [edi + HEAPBLOCK.sign], 0 + mov eax, [edi + HEAPBLOCK.size] + add eax, sizeof.HEAPBLOCK + add [ebx + HEAPBLOCK.size], eax + mov al, [edi + HEAPBLOCK.last] + mov [ebx + HEAPBLOCK.last], al + +.check_previous_block: + + ;EDI = previous block (if any) + mov edi,[ebx + HEAPBLOCK.prev] + test edi, edi + jz .done + + ;check EDI block + cmp [edi + HEAPBLOCK.sign], 'HB' + jne .error_heap_corrupt + cmp [edi + HEAPBLOCK.last], 0 + jne .error_heap_corrupt + lea eax, [edi + sizeof.HEAPBLOCK] + add eax, [edi + HEAPBLOCK.size] + cmp eax, ebx + jne .error_heap_corrupt + + ;if EDI block is unused, append EBX block to to it + cmp [edi + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + je .done + + ;append block + mov [ebx + HEAPBLOCK.sign], 0 + mov eax, [ebx + HEAPBLOCK.size] + add eax, sizeof.HEAPBLOCK + add [edi + HEAPBLOCK.size], eax + mov al, [ebx + HEAPBLOCK.last] + mov [edi + HEAPBLOCK.last], al + + mov ebx, edi + +.done: + + ;if this isn't last block, set prev of next block + cmp [ebx + HEAPBLOCK.last], 1 + je @f + lea eax, [ebx + sizeof.HEAPBLOCK] + add eax, [ebx + HEAPBLOCK.size] + mov [eax + HEAPBLOCK.prev], ebx + @@: + + ;another block successfully released + dec [mem.alloc_count] + jc .error_alloc_count_overflow + + ;TODO - reduce heap size if ebx is last? + +.rnc: clc +.r: pop edi ebx eax + return + +.rc: stc + jmp .r + +.error_not_initialized: + mov eax, ERR_MODULE_NOT_INITIALIZED + jmp .rc + +.error_heap_corrupt: + int3 + mov [mem.heap_corrupt], 1 + mov eax, ERR_HEAP_CORRUPT + jmp .rc + +.error_bad_pointer: + mov eax, ERR_INVALID_POINTER + jmp .rc + +.error_alloc_count_overflow: + mov eax, ERR_FASMLIB + jmp .rc +endp + + + + + +;============================================================================= +; mem.realloc +; desc: reallocates memory block +; args: blockptr - pointer to memory block returned by mem.(re)alloc +; newsize - new size of memory block +; ret: CF set on error, orherwise +; eax = pointer to reallocated memory block +; note: returned pointer must be always >= 10000h +; - data in block are is modified (only data at the end of block is +; lost if newsize < previous size) +; - if block is enlarging, then contents of added memory are unknown +; (use realloc0 to have it zeroed) +; - block can move to other place in memory, so previous pointers into +; block become invalid (so rather use indexes in block than pointers) +; - maximal allowed size if 7FFFFFFFh, to catch errors with negative value +; - if you had pointer stored in variable, don't forget to restore it: +; libcall mem.realloc, [blockptr], [newsize] +; jc error +; mov [blockptr], eax ;without this, it's hard-to-find bug +; error: ERR_INVALID_POINTER - blockptr isn't a valid block pointer +; ERR_HEAP_CORRUPT - you was overwriting memory outside allocated block +; ERR_ZERO_SIZE - newsize = 0 +; ERR_OUT_OF_RANGE - newsize >= 80000000h +; ERR_MODULE_NOT_INITIALIZED +; +mem.alloc +; +mem.free +;============================================================================= +proc mem.realloc, .blockptr, .newsize +begin + push ebx ecx edx esi edi + + ;is module initialized? + cmp [mem.initialized], 0 + je .error_not_initialized + + ;was heap corruption detected? + cmp [mem.heap_corrupt], 0 + jne .error_heap_corrupt + + ;error if newsize=0 + cmp [.newsize], 0 + je .error_newsize_zero + jl .error_newsize_too_big + + ;EBX = pointer to heap block + mov ebx, [.blockptr] + sub ebx, sizeof.HEAPBLOCK + + ;check if pointer lies inside heap + mov eax, ebx + sub eax, [mem.heap.start] + jb .error_bad_pointer + sub eax, [mem.heap.size] + jae .error_bad_pointer + + ;check block + cmp [ebx + HEAPBLOCK.sign], 'HB' + jne .error_bad_pointer + cmp [ebx + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + jb .error_bad_pointer + + ;if newsize fits into real size of block, just reset size + mov ecx, [.newsize] + cmp ecx, [ebx + HEAPBLOCK.size] + ja .current_block_too_small + mov [ebx + HEAPBLOCK.asize], ecx + jmp .done + +.current_block_too_small: + + ;ECX = requested size of block aligned + add ecx, HEAP_BLOCK_ALIGN-1 + and ecx, not (HEAP_BLOCK_ALIGN-1) + + ;EDX = required additional size + mov edx, ecx + sub edx, [ebx + HEAPBLOCK.size] + + ;if there is no following block, we must allocate + cmp [ebx + HEAPBLOCK.last], 1 + je .allocate_new_block + ja .error_heap_corrupt + + ;ESI = following block + lea esi, [ebx + sizeof.HEAPBLOCK] + add esi, [ebx + HEAPBLOCK.size] + + ;check following block + cmp [esi + HEAPBLOCK.sign], 'HB' + jne .error_heap_corrupt + cmp [esi + HEAPBLOCK.prev], ebx + jne .error_heap_corrupt + + ;if following block is used, we must allocate + cmp [esi + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + je .allocate_new_block + + ;if following block is not big enough, we must allocate + mov eax, [esi + HEAPBLOCK.size] + add eax, sizeof.HEAPBLOCK + cmp edx, eax + ja .allocate_new_block + +.append_following_block: + + ;EBX = our block, ESI=following block, EAX=size of new block (header included) + add [ebx + HEAPBLOCK.size], eax + mov eax, [.newsize] + mov [ebx + HEAPBLOCK.asize], eax + mov [esi + HEAPBLOCK.sign], 0 ;delete mark + + ;if next block was last, set this one as last + mov al, [esi + HEAPBLOCK.last] + mov [ebx + HEAPBLOCK.last], al + cmp al, 1 + ja .error_heap_corrupt + je .block_created + + ;otherwise point nextblock.prev to ours block + add esi, [esi + HEAPBLOCK.size] ;move to next block + add esi, sizeof.HEAPBLOCK + mov [esi + HEAPBLOCK.prev], ebx + + jmp .block_created + +.allocate_new_block: + + ;allocate new block + mov ecx, [.newsize] + stdcall mem.alloc, ecx + jc .rc + + ;copy contents of old block into new block + mov edi, eax + lea esi, [ebx+sizeof.HEAPBLOCK] + stdcall mem.copy, edi, esi, [ebx+HEAPBLOCK.asize] + jc .rc + + ;free old block + stdcall mem.free, esi + jc .rc + + ;return new block + mov eax, edi + jmp .rnc + +.block_created: + + ;now check whether to split unused part from created block + + ;ECX = aligned real size of block + mov ecx, [ebx + HEAPBLOCK.asize] + add ecx, HEAP_BLOCK_ALIGN-1 + and ecx, not (HEAP_BLOCK_ALIGN-1) + + ;EDX = gained space + mov edx, [ebx + HEAPBLOCK.size] + sub edx, ecx + + ;if it's at least sizeof.HEAPBLOCK + HEAP_BLOCK_ALIGN, create new block + sub edx, sizeof.HEAPBLOCK + jb .done + cmp edx, HEAP_BLOCK_ALIGN + jb .done + + ;ESI = new block + mov [ebx + HEAPBLOCK.size], ecx + lea esi, [ebx + ecx + sizeof.HEAPBLOCK] + mov [esi + HEAPBLOCK.sign], 'HB' + mov [esi + HEAPBLOCK.used], 0 + mov [esi + HEAPBLOCK.size], edx + mov [esi + HEAPBLOCK.prev], ebx + mov al, [ebx + HEAPBLOCK.last] + mov [ebx + HEAPBLOCK.last], 0 + mov [esi + HEAPBLOCK.last], al + + ;if esi isn't last, set esi->next->prev = esi + cmp al, 1 + ja .error_heap_corrupt + je @f + lea eax, [esi + edx + sizeof.HEAPBLOCK] + mov [eax + HEAPBLOCK.prev], esi + @@: + +.done: + ;return pointer + lea eax, [ebx + sizeof.HEAPBLOCK] + +.rnc: clc +.r: pop edi esi edx ecx ebx + return + +.rc: stc + jmp .r + +.error_not_initialized: + mov eax, ERR_MODULE_NOT_INITIALIZED + jmp .rc + +.error_heap_corrupt: + int3 + mov [mem.heap_corrupt], 1 + mov eax, ERR_HEAP_CORRUPT + jmp .rc + +.error_newsize_zero: + mov eax, ERR_ZERO_SIZE + jmp .rc + +.error_newsize_too_big: + mov eax, ERR_OUT_OF_RANGE + jmp .rc + +.error_bad_pointer: + mov eax, ERR_INVALID_POINTER + jmp .rc +endp + + + + + +;============================================================================= +; mem.size +; desc: returns size of memory block +; args: blockptr - pointer to memory block returned by mem.alloc +; ret: CF set on error, orherwise +; eax = size of memory block +; error: ERR_INVALID_POINTER - blockptr isn't a valid block pointer +; ERR_HEAP_CORRUPT - you was overwriting memory outside allocated block +; ERR_UNKNOWN +; ERR_MODULE_NOT_INITIALIZED +;============================================================================= +proc GetMemSize, .blockptr +begin + push ebx + + ;is module initialized? + cmp [mem.initialized], 0 + je .error_not_initialized + + ;was heap corruption detected? + cmp [mem.heap_corrupt], 0 + jne .error_heap_corrupt + + ;EBX = pointer to heap block + mov ebx, [.blockptr] + sub ebx, sizeof.HEAPBLOCK + + ;check if pointer lies inside heap + mov eax, ebx + sub eax, [mem.heap.start] + jb .error_bad_pointer + sub eax, [mem.heap.size] + jae .error_bad_pointer + + ;check block + cmp [ebx + HEAPBLOCK.sign], 'HB' + jne .error_bad_pointer + cmp [ebx + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + jb .error_bad_pointer + cmp [ebx + HEAPBLOCK.last], 1 + ja .error_heap_corrupt + + ;return size + mov eax, [ebx + HEAPBLOCK.asize] + cmp eax, [ebx + HEAPBLOCK.size] + ja .error_heap_corrupt + +.rnc: clc +.r: pop ebx + return + +.rc: stc + pop ebx + return + +.error_not_initialized: + mov eax, ERR_MODULE_NOT_INITIALIZED + jmp .rc + +.error_heap_corrupt: + int3 + mov [mem.heap_corrupt], 1 + mov eax, ERR_HEAP_CORRUPT + jmp .rc + +.error_bad_pointer: + mov eax, ERR_INVALID_POINTER + jmp .rc +endp + + + +;_______________________________________________________________________________________________ + + +;=================================================================== +; internal - for testing heap +proc __mem.test_heap +begin + push ebx edx + + ;is module initialized? + cmp [mem.initialized], 0 + je .error_not_initialized + + ;was heap corruption detected? + cmp [mem.heap_corrupt], 0 + jne .error_heap_corrupt + + mov ebx, [mem.heap.start] + mov edx, 0 + +.process_block: + + ;check if block lies in heap + mov eax, ebx + sub eax, [mem.heap.start] + jb .error_heap_corrupt + cmp eax, [mem.heap.size] + jae .error_heap_corrupt + + ;check block + cmp [ebx + HEAPBLOCK.sign], 'HB' + jne .error_heap_corrupt + cmp [ebx + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + cmp [ebx + HEAPBLOCK.prev], edx + jne .error_heap_corrupt + + ;if used, check 0 < asize <= size + cmp [ebx + HEAPBLOCK.used], 1 + ja .error_heap_corrupt + jb @f + mov eax, [ebx + HEAPBLOCK.asize] + test eax, eax + je .error_heap_corrupt + cmp eax, [ebx + HEAPBLOCK.size] + ja .error_heap_corrupt + @@: + + ;check if last block fills entire heap + cmp [ebx + HEAPBLOCK.last], 1 + ja .error_heap_corrupt + jb @f + lea eax, [ebx + sizeof.HEAPBLOCK] + add eax, [ebx + HEAPBLOCK.size] + sub eax, [mem.heap.start] + cmp eax, [mem.heap.size] + jne .error_heap_corrupt + @@: + + ;if this was last block, end + cmp [ebx + HEAPBLOCK.last], 1 + je .done + + ;move to next block + mov edx, ebx + add ebx, [ebx + HEAPBLOCK.size] + add ebx, sizeof.HEAPBLOCK + jmp .process_block + +.done: + ;does last block fill entire heap? + lea eax, [ebx + sizeof.HEAPBLOCK] + add eax, [ebx + HEAPBLOCK.size] + sub eax, [mem.heap.start] + cmp eax, [mem.heap.size] + jne .error_heap_corrupt + +.rnc: clc +.r: pop edx ebx + return + +.rc: stc + jmp .r + +.error_not_initialized: + mov eax, ERR_MODULE_NOT_INITIALIZED + jmp .rc + +.error_heap_corrupt: + int3 + mov [mem.heap_corrupt], 1 + mov eax, ERR_HEAP_CORRUPT + jmp .rc +endp + + + + + +;; @name mem.copy +;; @desc +;; Copies contents block of memory of given size to another place. +;; Supports overlapped copy (like "memmove" in C). +;; @arg dest +;; pointer to destination place, to where the block will be copied +;; @arg src +;; pointer to source place, from where the block will be copied +;; @arg size +;; number of bytes to copy +;; @ret +;; CF = 1 on error, otherwise +;; EAX = dest +;; @err ERR_INVALID_POINTER +;; some of pointers point to inaccessible area +;; @note Supports overlapped copy, eg. case when src < dest < src+size. +;; @note Does nothing when size=0 +;; @note Memory management doesn't have to be initalized for this to work +proc mem.copy, .dest, .src, .size +begin + push ecx esi edi + pushf + + mov edi, [.dest] + mov esi, [.src] + mov ecx, [.size] + + ;just return when copying 0 bytes + cmp ecx, 0 + je .done + + ;check if dest area is overlapping src (when src < dest < src+size) + cmp esi, edi + je .done ;if dest=src, we don't need to move + ja .not_overlapping + lea eax, [esi+ecx] + cmp edi, eax + jae .not_overlapping + + + ;if it's overlapping +.overlapping: + ;start moving from end of buffers + add esi, ecx + add edi, ecx + + ;classical unoptimized unalgined move + std + dec esi + dec edi + shr ecx, 1 + jnc @f + movsb +@@: + + dec esi + dec edi + shr ecx, 1 + jnc @f + movsw +@@: jecxz @f + + sub esi, 2 + sub edi, 2 + rep movsd +@@: + + jmp .done + + +.not_overlapping: + + ;classical unoptimized unalgined move + cld + shr ecx, 1 + jnc @f + movsb +@@: shr ecx, 1 + jnc @f + movsw +@@: jecxz @f + rep movsd +@@: + ;everything is okay +.done: and byte [esp],not 1 ;clear CF in stack + mov eax,[.dest] + +.r: popf + pop edi esi ecx + return +endp + + +;============================================================================ +;; @name mem.fill +;; @desc +;; Fills block of memory with given dword pattern. +;; @arg dest +;; Pointer to block which we will fill. +;; @arg size +;; Size of block to fill. +;; If size isn't multiple of 4, remaining bytes will be filled with according +;; bytes of filler (little endian). +;; @arg value +;; Dword value with which the block is filled. +;; @ret +;; CF = 1 on error, otherwise +;; EAX = dest +;; @err ERR_INVALID_POINTER +;; dest points to inaccessible area +;; @note Does nothing when size=0 +;; @note Memory management doesn't have to be initalized for this to work +proc mem.fill, .dest, .size, .value +begin + push ecx edi + pushf + cld + + mov edi, [.dest] + mov ecx, [.size] + mov eax, [.value] + + ;just return if size=0 + cmp ecx,0 + je .done + + ;align filling pointer to dword + test edi, 1b + jz @f + stosb + ror eax, 8 + dec ecx +@@: test edi, 10b + jz @f + stosw + ror eax, 16 + dec ecx + dec ecx +@@: + ;do the main fill + push ecx + shr ecx, 2 + rep stosd + pop ecx + + ;fill rest + shr ecx, 1 + jnc @f + stosb + ror eax, 8 +@@: shr ecx, 1 + jnc @f + stosw +@@: + ;everything is okay +.done: and byte [esp],not 1 ;clear CF in stack + mov eax, [.dest] + +.r: popf + pop edi ecx + return +endp + + + + +endmodule Index: freshlib/system/memory.asm ================================================================== --- freshlib/system/memory.asm +++ freshlib/system/memory.asm @@ -1,44 +1,66 @@ -; ____________________________________________________________________ -;| | -;| This file is part of the project: | -;| | -;| ..::FreshLib::.. - portable, assembler library and GUI toolkit. | -;|____________________________________________________________________| -;| | -;| This file | -;| _________ | -;| Author: John Found | -;| | -;| Title: memory.asm Memory management library. OS independent. | -;| | -;| OS: Any supported | -;|____________________________________________________________________| +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Dynamic memory management library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains the OS independent part of the library and includes the +; respective OS dependent file. +;_________________________________________________________________________________________ + +module "Memory library" DebugMemory = 0 - cInitialCapacity = 10 +; Allocates memory block with given size. +; Returns: CF=1 if error. +; if CF=0, eax = pointer to the memory block allocated. +interface GetMem, .size + +interface FreeMem, .ptr + +interface ResizeMem, .ptr, .newsize + +interface SpaceAllocate, .size + + +match =HeapManager, HeapManager { + define HeapManager OS +} + +match =OS, HeapManager { + include '%TargetOS%/memory.asm' +} -include '%TargetOS%/memory.asm' +match =ASM, HeapManager { + include 'heapmgr.asm' +} -iglobal ;___________________________________________________________________________ ; ; This is a pointer to the active resize strategy procedure. - ; There can be many different strategyes for resizing dynamic memory objects. + ; There can be many different strategies for resizing dynamic memory objects. ; ResizeIt points to a procedure that resizes ecx, according to the particular ; strategy. ; The resize procedure returns CF=1 if the resize can not be provided. ;____________________________________________________________________________ - - ResizeIt dd StrategyGentle -endg + if used ResizeIt + ResizeIt dd StrategyGentle + end if - +uglobal + var _MemoryFreeSpace=? +endg ;____________________________ ; ; NewSize = (OldSize+1)*2 ; Very aggressive strategy. @@ -45,22 +67,28 @@ ;____________________________ proc StrategyAgressive begin add ecx, 1 - jc @f + jc .exit + shl ecx, 1 -@@: + + cmp ecx, cInitialCapacity + jae .exit + mov ecx, cInitialCapacity + clc +.exit: return endp ;____________________________ ; ; NewSize = (OldSize+2)*1.5 -; Very aggressive strategy. +; Normal strategy. ;____________________________ proc StrategyMedium begin push ecx @@ -80,11 +108,11 @@ ;____________________________ ; ; NewSize = (OldSize+2)*1.25 -; Very aggressive strategy. +; Memory spare strategy. ;____________________________ proc StrategyGentle begin push ecx @@ -101,5 +129,6 @@ .exit: return endp +endmodule ADDED freshlib/system/network.asm Index: freshlib/system/network.asm ================================================================== --- /dev/null +++ freshlib/system/network.asm @@ -0,0 +1,485 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Network library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: +;_________________________________________________________________________________________ + +module "Network library" + + +struct TSocketAddress + .saFamily dw ? + .saAddress rb 14 +ends + + +struct TSocketAddressIn + .saFamily dw ? + .saPort dw ? + .saAddress dd ? + .saZero rb 8 +ends + + +struct TAddrIn6 + label .addr8 byte + label .addr16 word + .addr32 rd 4 +ends + + +struct TSocketAddressIn6 + .saFamily dw ? + .saPort dw ? + .saFlowInfo dd ? + .saAddress TAddrIn6 + .saScopeID dd ? +ends + + + +struct TSocketAddressUn + .saFamily dw ? + .saPath rb UNIX_PATH_MAX +ends + + + +soReuseAddr = SO_REUSEADDR +soDontRoute = SO_DONTROUTE +soRecvBuffer = SO_RCVBUF +soSendBuffer = SO_SNDBUF +soRecvTimeout = SO_RCVTIMEO ; timeout in [ms] for all OSes +soSendTimeout = SO_SNDTIMEO ; timeout in [ms] for all OSes +soLinger = SO_LINGER ; timout in [s] + + + +interface SocketCreate, .protocol_family, .socket_type, .protocol + +interface SocketShutDown, .hSocket + +interface SocketClose, .hSocket + +interface SocketConnect, .hSocket, .pAddress + +interface SocketBind, .hSocket, .pAddress + +interface SocketListen, .hSocket, .maxPending + +interface SocketAccept, .hSocket, .pAddress + +interface SocketSend, .hSocket, .pBuffer, .DataLen, .flags + +interface SocketReceive, .hSocket, .pBuffer, .BufferSize, .flags + +interface SocketSendTo, .hSocket, .pBuffer, .DataLen, .flags, .pAddressTo + +interface SocketReceiveFrom, .hSocket, .pBuffer, .BufferSize, .flags, .pAddressFrom + +interface SocketGetOption, .hSocket, .idOption + +interface SocketSetOption, .hSocket, .idOption, .Value + +interface ResolveDomainIP, .hDomain + +interface ResolveDomainIP6, .hDomain + + +include "%TargetOS%/network.asm" + + + +proc SocketSendStr, .hSocket, .hString +begin + pushad + + stdcall StrLen, [.hString] + push eax + + stdcall StrPtr, [.hString] + stdcall SocketSendAll, [.hSocket], eax ; remaining arguments from the stack. + + popad + return +endp + + + + +proc SocketSendAll, .hSocket, .pData, .Size +begin + pushad + +; stdcall GetTimestamp +; mov edi, eax + + mov esi, [.pData] + mov ecx, [.Size] + jecxz .finish_ok + +.loop: + stdcall SocketSend, [.hSocket], esi, ecx, 0 + jc .finish_err + + test eax, eax + jz .finish_err + +; OutputValue "Send bytes:", eax, 10, -1 + + add esi, eax + sub ecx, eax + jnz .loop + +.finish_ok: + +; stdcall GetTimestamp +; sub eax, edi +; +; OutputValue "SendAll time: ", eax, 10, -1 + + clc + popad + return + +.finish_err: + stc + mov [esp+4*regEAX], eax + popad + return +endp + + + + +struct __s_readln + .capacity = 1024 + .buffer rb .capacity + .len dd ? ; the count of valid bytes in the buffer. +ends + + +; Reads a line from the socket and concatenate it to the provided +; string hString. +; +; If there is no data for a whole line, and the timeout expires, +; returns what has been read. +; +; All possible combinations of CR/LF are recognized as a line end. +; After end of line is detected, the remaining data read is returned +; in the buffer and the same pointer should be passed the next time +; the function is call. +; +; Arguments: +; .hSocket - the socket to be read; +; .pBuffer - the buffer, returned from the previous call to the procedure. +; should be NULL on the first call. +; .timeout - timeout in ms for detection of end-of-transmission. +; +; Returns: +; eax - the string with the line. +; edx - pointer to the buffer that to be passed to the procedure next time. +; can be NULL, if there is no more data to be processed. The buffer is +; allocated on the first call to the procedure. Should be free with FreeMem +; when not needed. +; CF = 1 on socket read error. In this case, ECX returns the error code. +; + + +proc SocketReadLine, .hSocket, .pBuffer, .timeout +begin + pushad + + xor edx, edx + mov [esp+4*regEAX], edx + + stdcall SocketSetOption, [.hSocket], soRecvTimeout, [.timeout] + + stdcall StrNew + mov ebx, eax + + mov edi, [.pBuffer] + test edi, edi + jnz .scan_buffer + + stdcall GetMem, sizeof.__s_readln + mov edi, eax + mov [edi+__s_readln.len], eax + +.read_loop: + stdcall SocketReceive, [.hSocket], edi, __s_readln.capacity, 0 + jc .socket_error + + mov [edi+__s_readln.len], eax + test eax, eax + jz .free_buffer ; the socket has been closed from the remote side and the buffer is empty. + + +.scan_buffer: + xor ecx, ecx + + mov eax, edx + test eax, eax + jnz .eol_ok + +.inner_loop: + mov al, [edi+ecx] + inc ecx + + cmp al, $0d + je .end_of_line + cmp al, $0a + je .end_of_line + + cmp ecx, [edi+__s_readln.len] + jne .inner_loop + +;end of buffer + + inc ecx + xor eax, eax + +.end_of_line: + dec ecx + jz .cat_ok + + stdcall StrCatMem, ebx, edi, ecx + +.cat_ok: + mov [esp+4*regEAX], ebx + + inc ecx + cmp ecx, [edi+__s_readln.len] + jb .eol_ok + + mov edx, eax + jmp .read_loop + +.eol_ok: + xor al, $0d xor $0a + cmp [edi+ecx], al + jne .line_ok + + inc ecx + +.line_ok: + +; copy the buffer to the beginning. + + lea esi, [edi+ecx] + + sub ecx, [edi+__s_readln.len] + jnz .copy_buffer + +.free_buffer: + + stdcall FreeMem, edi + xor edi, edi + jmp .finish + + +.copy_buffer: + + neg ecx + mov [edi+__s_readln.len], ecx + + cmp esi, edi + je .finish + + push edi + rep movsb + pop edi + +.finish: + clc + +.err: + pushf + cmp dword [esp+4*regEAX+4], 0 + jne .str_ok + + stdcall StrDel, ebx + +.str_ok: + popf + mov [esp+4*regEDX], edi + popad + return + + +.socket_error: + + cmp eax, serrTimeout + je .free_buffer + + mov [esp+4*regECX], eax + + stc + jmp .err + + +endp + + + + +proc SocketReadAllLines, .hSocket, .timeout +.pbuffer dd ? +.result dd ? +.eol dd ? +begin + pushad + + stdcall SocketSetOption, [.hSocket], soRecvTimeout, [.timeout] + + stdcall CreateArray, 4 + mov edx, eax + + stdcall GetMem, 1028 + mov [.pbuffer], eax + + stdcall StrNew + mov [.result], eax + + xor eax, eax + mov [.eol], eax + +.read_loop: + mov edi, [.pbuffer] + stdcall SocketReceive, [.hSocket], edi, 1024, 0 + jnc .no_error + + cmp eax, EAGAIN + jne .error_receive + jmp .finalize_ok + +.no_error: + OutputValue "Socket receive:", eax, 10, -1 + + test eax, eax + jz .finalize_ok + + mov esi, edi + lea ebx, [edi+eax] ; the end of the buffer. + + mov eax, [.eol] + test eax, eax + jnz .eol_ok + +.inner_loop: + cmp esi, ebx + je .end_of_buffer + + lodsb + + cmp al, $0d + je .end_of_line + cmp al, $0a + je .end_of_line + + jmp .inner_loop + + +.end_of_buffer: + mov eax, esi + sub eax, edi + stdcall StrCatMem, [.result], edi, eax + + jmp .read_loop + + +.end_of_line: + push eax + + lea eax, [esi-1] + sub eax, edi + stdcall StrCatMem, [.result], edi, eax + + stdcall AddArrayItems, edx, 1 + pushd [.result] + popd [eax] + + stdcall StrNew + mov [.result], eax + + pop eax + cmp esi, ebx + jne .eol_ok + + mov [.eol], eax + jmp .read_loop + + +.eol_ok: + xor al, $0d xor $0a + cmp [esi], al + jne .line_ok + + inc esi + +.line_ok: + xor eax, eax + mov [.eol], eax + mov edi, esi ; move the start of the string. + jmp .inner_loop + +.finalize_ok: + + clc + +.finalize: + pushf + + stdcall StrLen, [.result] + test eax, eax + jnz .add_last + + stdcall StrDel, [.result] + jmp .finish + +.add_last: + stdcall AddArrayItems, edx, 1 + pushd [.result] + popd [eax] + +.finish: + stdcall FreeMem, [.pbuffer] + + popf + mov [esp+4*regEAX], edx + + popad + return + + +.error_receive: + + DebugMsg "Error receive" + + stdcall GetErrorString, eax + mov ebx, eax + + stdcall FileWriteString, [STDERR], eax + stdcall StrDel, ebx + + stc + jmp .finalize + +endp + + + + + + + + +endmodule ADDED freshlib/system/process.asm Index: freshlib/system/process.asm ================================================================== --- /dev/null +++ freshlib/system/process.asm @@ -0,0 +1,95 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Process management library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: Includes the proper OS dependent part of the library. +;_________________________________________________________________________________________ +module "Process library" + +; The current process procedures. + +interface Terminate, .exit_code + +interface TerminateAll, .exit_code + +interface SetForcedTerminateHandler, .procHandler + +interface procForcedTerminateHandler, .reason + +interface GetCmdArguments + + +; Thread procedures. + +interface ThreadCreate, .ptrFunction, .ptrArguments + +interface FreeThreadID, .ThreadID + + +; Process procedures. + +; Executes the command .hCommand, gets the STDIN from [.hStdIn] file handle, +; Outputs the STDOUT to [.hStdOut] file handle and STDERR to [.hStdErr] handle. + +interface Exec2, .hCommand, .hStdIn, .hStdOut, .hStdErr + +interface FreeProcessID, .ProcessID + +interface WaitProcessExit, .ProcessID, .timeout + + +; DLL procedures. + +; Loads a DLL in run-time. +; Returns a CF=0 and handle to the loaded library, or CF=1 and error code. +interface LibLoad, .hLibName + +; Decrements the reference count of the library. If 0 removes the library from the memory. +interface LibRelease, .hLibrary + +; Returns CF=0 and the address of the object from the library, or CF=1 and error code. +interface LibImport, .hLibrary, .hObjectName + + +; Mutex procedures. + +interface MutexCreate, .ptrName, .ptrMutex + +interface WaitForMutex, .ptrMutex, .timeout + +interface MutexRelease, .ptrMutex + +interface MutexDestroy, .ptrMutex + + + + +; Simple wrapper on Exec2; +; See Exec2 + +proc Exec, .hCommand +begin + stdcall Exec2, [.hCommand], [STDIN], [STDOUT], [STDERR] + return +endp + + + + +include '%TargetOS%/process.asm' + + +if used ThreadCreate + options.Threads = 1 +else + options.Threads = 0 +end if + +endmodule ADDED freshlib/system/serial.asm Index: freshlib/system/serial.asm ================================================================== --- /dev/null +++ freshlib/system/serial.asm @@ -0,0 +1,27 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Serial IO interface library. +; +; Target OS: Any +; +; Dependencies: +; +; Notes: This file contains OS independent part of the library and also include +; the respective OS dependent part. +;_________________________________________________________________________________________ +module "Serial IO library" + +cParityNo = 0 +cParityOdd = 1 +cParityEven = 2 + +cFlowOFF = 0 +cFlowHW = 1 + + +include '%TargetOS%/serial.asm' + +endmodule ADDED freshlib/system/timers.asm Index: freshlib/system/timers.asm ================================================================== --- /dev/null +++ freshlib/system/timers.asm @@ -0,0 +1,426 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Asynchronous timer library. +; +; Target OS: Any +; +; Dependencies: memory.asm +; +; Notes: This is OS independent part. Includes OS dependent part files as well. +;_________________________________________________________________________________________ +module "Timers library" + +tmfDoNothing = 0 ; when the timer expires no action should be performed. .Expired field of the timer will be incremented. +tmfCallProc = 1 ; [.callback] contains pointer to procedure that to be executed once per timer expiration. + +tmfSyncDestroy = $10 ; If this flag is set, the timer will be destroyed on the next timer expiration. In this case, the configured event is fired and then the timer is destroyed. + ; The flag is checked after the event returns, so the event handler can reset this flag and thus to prevent destruction. + +tmfRunning = $80 ; If this flag is set, the timer runs. If the event handler resets this flag, the timer will fire only once and will be suspended. + + + +struct TTimer +; internal pointers of the linked list. The field .next MUST have offset = 0 + .next dd ? ; don't touch this + +; timers parameters. + .interval dd ? ; in ms + .value dd ? ; current value in ms. When this value becomes higher than [.interval] an event is fired and the value becomes 0. + ; the value is incremented by the system dependent time - probably something like 1..100ms + + .flags dd ? ; set of tmfXXXX values. + .Callback dd ? ; callback - proc Timer, .ptrTimer; TWindow or 0 + .Expired dd ? ; count of the timer expirations. + .tag dd ? ; user value associated with the timer. +ends + + +struct TDateTime + .date dd ? ; [1..31] depending on month + .month dd ? ; [1..12] + .year dd ? ; + .hour dd ? ; [0..23] + .minute dd ? ; [0..59] + .second dd ? ; [0..59] + .day dd ? ; [0..6] == [monday..sanday] +ends + + + +uglobal + if used __ptrFirstTimer + __ptrFirstTimer dd ? + end if +endg + + + + + + + + + + + +; Creates a timer and returns pointer to TTimer structure. +; the timer is created suspended. The user can set or reset tmfRunning in [.flags] in order to start or stop the timer. +; also, the user have to enter proper values in the remaining fields. +proc TimerCreate +begin + push ecx + + stdcall GetMem, sizeof.TTimer + jc .finish + + mov ecx, [__ptrFirstTimer] + mov [eax+TTimer.next], ecx + mov [__ptrFirstTimer], eax + clc + +.finish: + pop ecx + return +endp + + + + + +proc TimerDestroy, .ptrTimer +begin + push eax ecx + + mov eax, [__ptrFirstTimer] + mov ecx, __ptrFirstTimer + + test eax, eax + jz .finish ; if the list is empty - returns no error. + +.loop: + cmp eax, [.ptrTimer] + je .found + + mov ecx, eax + mov eax, [eax+TTimer.next] + test eax, eax + jnz .loop + +;not found + pop ecx eax + stc + return + +.found: + push [eax+TTimer.next] + pop [ecx+TTimer.next] ; if this is the first timer, ecx == __ptrFirstTimer + + stdcall FreeMem, eax + +.finish: + pop ecx eax + clc + return +endp + + + +SECONDS_PER_DAY = 24*60*60 +YEAR_EPOCH_START = 1970 + + +proc TimeToDateTime, .pTime, .pDateTime +.days dd ? +begin + pushad + + mov edi, [.pDateTime] + mov esi, [.pTime] + + mov eax, [esi+4] + cdq + + mov ecx, SECONDS_PER_DAY + + idiv ecx + + mov eax, [esi] + + idiv ecx + + test edx, edx + jns @f + add edx, ecx ;SECONDS_PER_DAY + sub eax, 1 +@@: + mov [.days], eax ; dword [esi] := time div SECONDS_PER_DAY + + mov eax, edx + mov ecx, 60 + cdq ; the time should be positive here... + + idiv ecx + mov [edi+TDateTime.second], edx + + cdq + idiv ecx + mov [edi+TDateTime.minute], edx + mov [edi+TDateTime.hour], eax + +; date processing. I will assume it is 32bit +; some time in the future, it will overflow (around the 5000000 year), so it will needs a fix. ;) + + mov edx, [.days] ; days after YEAR_EPOCH_START + xor ebx, ebx ; years after YEAR_EPOCH_START + +.year_loop: + test edx, edx + jns .positive +; negative days + + dec ebx + lea eax, [ebx+YEAR_EPOCH_START] + stdcall DaysPerYear, eax + add edx, eax + jmp .year_loop + +.positive: + lea eax, [ebx+YEAR_EPOCH_START] + stdcall DaysPerYear, eax + + cmp edx, eax + jb .finish_year + + sub edx, eax + inc ebx + jmp .year_loop + +.finish_year: + add ebx, YEAR_EPOCH_START + mov [edi+TDateTime.year], ebx + +; edx contains the days since the current year. It is positive here. + xor ebx, ebx + +.months_loop: + stdcall DaysPerMonth, ebx, [edi+TDateTime.year] + cmp edx, eax + jb .month_ok + + sub edx, eax + inc ebx + jmp .months_loop + +.month_ok: + inc edx + inc ebx + mov [edi+TDateTime.date], edx + mov [edi+TDateTime.month], ebx + +; day of the week. + + mov eax, [.days] ; days after YEAR_EPOCH_START + add eax, 3 ; it was Thursday on 1.1.1970 + cdq + mov ecx, 7 + idiv ecx + mov [edi+TDateTime.day], edx + + popad + return +endp + + +; returns the days in the given month or CF=1 on invalid month. +; month should be in [0..11] range. + +proc DaysPerMonth, .month, .year +begin + push ecx + + mov ecx, [.month] + cmp ecx, 11 + ja .error + + movzx ecx, byte [.month_list+ecx] + cmp ecx, 28 + jne .finish + + stdcall DaysPerYear, [.year] + cmp eax, 365 + je .finish + + inc ecx + +.finish: + mov eax, ecx + clc + pop ecx + return + +.error: + xor eax, eax + stc + pop ecx + return + +.month_list db 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 +endp + + +proc DaysPerYear, .year +begin + push ebx ecx edx + + mov eax, [.year] + mov ecx, 400 + cdq + idiv ecx + + test edx, edx + jz .leap + + mov eax, edx + mov ecx, 100 + cdq + idiv ecx + test edx, edx + jz .not_leap + + test edx, $03 + jz .leap + +.not_leap: + mov eax, 365 + pop edx ecx ebx + return + +.leap: + mov eax, 366 + pop edx ecx ebx + return +endp + + + + + +proc DateTimeToTime, .pDateTime + +.timeLo dd ? +.timeHi dd ? + +begin + push ecx esi + + mov esi, [.pDateTime] + xor eax, eax + mov [.timeLo], eax + mov [.timeHi], eax + +; year loop: + + mov ecx, 1970 + + cmp [esi+TDateTime.year], ecx + jl .year_loop_negative + je .process_months + +; positive + +.year_loop_plus: + + stdcall DaysPerYear, ecx + + add [.timeLo], eax + adc [.timeHi], 0 + + inc ecx + cmp ecx, [esi+TDateTime.year] + jne .year_loop_plus + jmp .process_months + + +.year_loop_negative: + dec ecx + + stdcall DaysPerYear, ecx + + sub [.timeLo], eax + sbb [.timeHi], 0 + + cmp ecx, [esi+TDateTime.year] + jne .year_loop_negative + +.process_months: + + xor ecx, ecx + mov edx, [esi+TDateTime.month] + dec edx + +.month_loop: + cmp ecx, edx + je .process_date + + stdcall DaysPerMonth, ecx, [esi+TDateTime.year] + + add [.timeLo], eax + adc [.timeHi], 0 + + inc ecx + jmp .month_loop + +.process_date: + + mov eax, [esi+TDateTime.date] + dec eax + + add [.timeLo], eax + adc [.timeHi], 0 + +; process hour + + mov ecx, SECONDS_PER_DAY + mov eax, [.timeLo] + imul ecx + + mov [.timeLo], eax + + mov eax, [.timeHi] + imul eax, ecx + add eax, edx + + mov [.timeHi], eax ; now the time is in seconds + + mov ecx, 60 + mov eax, [esi+TDateTime.hour] + imul eax, ecx + add eax, [esi+TDateTime.minute] + imul eax, ecx + add eax, [esi+TDateTime.second] + + add [.timeLo], eax + adc [.timeHi], 0 + + mov eax, [.timeLo] + mov edx, [.timeHi] + + pop esi ecx + return +endp + + + + + +include '%TargetOS%/timers.asm' + + +endmodule + + + ADDED freshlib/test_code/FileFunctionsTest.asm Index: freshlib/test_code/FileFunctionsTest.asm ================================================================== --- /dev/null +++ freshlib/test_code/FileFunctionsTest.asm @@ -0,0 +1,80 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable GUI application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI + +options.ShowSizes = 1 +options.DebugMode = 1 + +include "%lib%/freshlib.asm" + + +start: + InitializeAll + + + DebugMsg "This is begin of the program." + + xor esi, esi + + stdcall FileOpen, '/hd0/1/filetest/test.txt' + jc .error + + DebugMsg "File is open now." + DebugMsg "So, write to the console..." + + mov esi, eax + +.loop: + stdcall FileReadLine, esi + jc .close + + push eax + stdcall StrCharCat, eax, $0a0d + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack. + jmp .loop + +.close: + stdcall FileClose, esi + +.end: + stdcall Sleep, 30000 + + FinalizeAll + stdcall TerminateAll, 0 + + +.error: + stdcall GetErrorString, eax + push eax eax + stdcall FileWriteString, [STDERR], 'ERROR: ' + stdcall FileWriteString, [STDERR] ; from the stack + stdcall FileWriteString, [STDERR], cCRLF + stdcall FreeErrorString ; from the stack + test esi, esi + jnz .close + jmp .end + +.error_readln: + stdcall FileWriteString, [STDERR], < 'Error reading line!', $0d, $0a > + jmp .close + + +cCRLF text 13, 10 + +@AllImportEmbeded ; or @AllImportSection +@AllDataEmbeded ; or @AllDataSection ADDED freshlib/test_code/FileFunctionsTest.fpr Index: freshlib/test_code/FileFunctionsTest.fpr ================================================================== --- /dev/null +++ freshlib/test_code/FileFunctionsTest.fpr cannot compute difference between binary files ADDED freshlib/test_code/FreshLibHello.asm Index: freshlib/test_code/FreshLibHello.asm ================================================================== --- /dev/null +++ freshlib/test_code/FreshLibHello.asm @@ -0,0 +1,129 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable GUI application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI + +options.ShowSizes = 1 +options.DebugMode = 1 + +include "%lib%/freshlib.asm" + +uglobal + Timer1 dd ? +endg + + +start: + InitializeAll + + + stdcall StrDup, 'This is strlib test.' + push eax + stdcall StrCat, eax, ' This is the second sentence.' + stdcall StrCharCat, eax, $0a0d + + stdcall StrPtr, eax + stdcall Output, eax + stdcall StrDel ; from the stack + + + + stdcall TimerCreate + mov [Timer1], eax + + mov [eax+TTimer.interval], 100 + mov [eax+TTimer.Callback], procTimer1 + mov [eax+TTimer.flags], tmfCallProc or tmfRunning + + +; then do some threads test + +; stdcall ThreadCreate, thread1, 'A' +; stdcall ThreadCreate, thread2, 0 +; stdcall ThreadCreate, thread3, 0 + + stdcall Sleep, 20000 + + FinalizeAll + stdcall TerminateAll, 0 + + + + +proc thread1, .lparam +begin + +.loop: + mov eax, sys_msg_board + mov ebx, 1 + mov ecx, [.lparam] + int $40 + + stdcall Sleep, 1000 + jmp .loop +endp + + +proc thread2, .lparam +begin + +.loop: + mov eax, sys_msg_board + mov ebx, 1 + mov ecx, $0d + int $40 + + mov eax, sys_msg_board + mov ebx, 1 + mov ecx, $0a + int $40 + + stdcall Sleep, 5000 + jmp .loop +endp + + + +proc thread3, .lparam +begin + mov esi, 7 + +.loop: + stdcall Sleep, 1333 + + mov eax, sys_msg_board + mov ebx, 1 + mov ecx, 'Z' + int $40 + + dec esi + jnz .loop + + DebugMsg "Thread 3 ends." + + return +endp + + +proc procTimer1, .ptrTimer +begin + stdcall Output, <'Timer 1 event.', 13, 10> + return +endp + + +@AllImportEmbeded ; or @AllImportSection +@AllDataEmbeded ; or @AllDataSection ADDED freshlib/test_code/FreshLibHello.fpr Index: freshlib/test_code/FreshLibHello.fpr ================================================================== --- /dev/null +++ freshlib/test_code/FreshLibHello.fpr cannot compute difference between binary files ADDED freshlib/test_code/FreshLibUse.fpr Index: freshlib/test_code/FreshLibUse.fpr ================================================================== --- /dev/null +++ freshlib/test_code/FreshLibUse.fpr cannot compute difference between binary files ADDED freshlib/test_code/FreshLibUse2.fpr Index: freshlib/test_code/FreshLibUse2.fpr ================================================================== --- /dev/null +++ freshlib/test_code/FreshLibUse2.fpr cannot compute difference between binary files ADDED freshlib/test_code/FreshLibUse3.fpr Index: freshlib/test_code/FreshLibUse3.fpr ================================================================== --- /dev/null +++ freshlib/test_code/FreshLibUse3.fpr cannot compute difference between binary files ADDED freshlib/test_code/I18nTest.asm Index: freshlib/test_code/I18nTest.asm ================================================================== --- /dev/null +++ freshlib/test_code/I18nTest.asm @@ -0,0 +1,108 @@ +include "../freshlib.inc" + +@BinaryType console + +options.ShowSizes = 1 + +include "../freshlib.asm" + + +proc WriteAllLanguages +.string rd 2 +begin + pushad + mov [.string+4],0 + mov esi, I18nLanguages + +.loop: + lodsd + test eax, eax + jz .finish + + mov [.string], eax + lea eax, [.string] + stdcall WriteLn, eax + + lea esi, [esi+4] + jmp .loop + +.finish: + popad + return +endp + + + +proc WriteLn, .string +begin + stdcall FileWriteString, [STDOUT], [.string] + stdcall FileWriteString, [STDOUT], cCRLF + return +endp + + + +start: + InitializeAll + + stdcall GetCmdArguments + mov esi, eax + + cmp [esi+TArray.count], 2 + jb .unknown + + stdcall StrPtr, [esi+TArray.array+4] ; the second argument. + mov eax, [eax] + +.load: + stdcall SetLanguage, eax + jnc .print + +.unknown: + stdcall WriteLn, 'Unknown language. Use one of the following:' + stdcall WriteAllLanguages + jmp .finish + +.print: + stdcall WriteLn, Istring1 + stdcall WriteLn, Istring2 + stdcall WriteLn, Istring3 + stdcall WriteLn, Istring4 + stdcall WriteLn, Istring5 + +.finish: + stdcall ListFree, esi, StrDel + + FinalizeAll + stdcall TerminateAll, 0 + +cCRLF text 13, 10 + + +Istring1 itext <EN:'Hello there.', 13, 10, 'This is a test program that demonstrates how to make internazionalized programs with FreshLib.'>, \ + <SP:'Hola.', 13, 10, 'Se trata de un programa de prueba que muestra cómo hacer que los programas internazionalized con FreshLib.'>, \ + <DE:'Hallo.', 13, 10, 'Dies ist ein Test-Programm, das wie internazionalized Programme mit FreshLib machen demonstriert.'>, \ + <BG:'Здравейте.', 13, 10, 'Това е тестова програма, която демонстрира как да правим интернационализирани програми с FreshLib.'> + +Istring2 itext <EN:'This approach consists of three parts:'>, \ + <DE:'Dieser Ansatz besteht aus drei Teilen:'>, \ + <SP:'Este enfoque consiste en tres partes:'>, \ + <BG:'Този подход се състои от 3 части:'> + +Istring3 itext <EN:'1. Macro library "_itext.inc" that allows definitions of one string in multiply languages.'>, \ + <DE:'1. Makro-Bibliothek "_itext.inc", die Definitionen von einer Zeichenfolge in mehrfach Sprachen ermöglicht.'>, \ + <SP:'1. Macro biblioteca "_itext.inc" que permite la definición de una cadena en lenguas se multiplican.'>, \ + <BG:'1. Макро библиотека "_itext.inc" която позволява дефиницията на един стринг на много езици.'> + +Istring4 itext <EN:'2. Code library, that to change the i18n strings on the fly in runtime.'>, \ + <DE:'2. Code-Bibliothek, die zu den i18n strings on the fly in Laufzeit andern.'>, \ + <SP:'2. Biblioteca de código, que para cambiar las cuerdas i18n sobre la marcha en tiempo de ejecución.'>, \ + <BG:'2. Библиотека с процедури, които заменят съдържанието на стринговете в движение.'> + + +Istring5 itext <EN:'3. Translation tool (part of Fresh IDE) that allows to edit all such strings from one place.'>, \ + <DE:'3. Translation-Tool (Teil von Fresh IDE), die alle diese Strings von einem Ort bearbeiten konnen.'>, \ + <SP:'3. Herramienta de traducción (parte de Fresh IDE) que permite editar todas esas cadenas de un lugar.'>, \ + <BG:'3. Инструмент за превод (част от Fresh IDE) който позволява да се редактират стринговете за различни езици от едно място.'> + + ADDED freshlib/test_code/I18nTest.fpr Index: freshlib/test_code/I18nTest.fpr ================================================================== --- /dev/null +++ freshlib/test_code/I18nTest.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/angry.gif Index: freshlib/test_code/TestBBCode/angry.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/angry.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/anon.svg Index: freshlib/test_code/TestBBCode/anon.svg ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/anon.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="36" height="36" version="1.1" viewBox="0 0 20.135672 20.135672" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="Anonym__x2F__Guy_Fawkes" transform="scale(.0703)"><path d="m169 34.6c2.69 1.96 8.78 1.77 12.3-2.43 1.98-2.38 19.1-20.3 43.1-20.3 30.8 0 42.3 10.3 42.3 10.3-11-19.8-34.6-22.2-41.5-22.2-33.5 0-52.6 16-57.6 22.7-4.98 6.77-1.02 10.1 1.43 11.9zm94.9 54.9c-4.3 0-4.48 7.02-4.48 8.95-2e-3 12.6-7.11 24.9-13.4 31.3-18.2 18.6-47.9 2.26-47.9 2.26-5.02-2.03 0.445 3 0.445 3 2.86 2.96 11 12.1 27.1 14.1-0.743 0.786-20 20.9-20 20.9h-17.9l-17.9-26.8c-4.76 6.29-8.95 8.95-17.9 8.95-4.91 0-10.5-0.84-14.4-5.17-3.68-4.07-3.5-9.43-3.5-12.7-0.018-13.4 0-47.6 0-53.7v-15.4c0-7.83-8.79-15-8.79-15-10.4-7.16-17.8 8.97-17.8 8.97l-0.114 0.087c-8.58-3.12-17.7-5.02-27.2-5.02-11.7 0-25.4 1.28-35.6 5.8v-6.25c0-64.1 69.2-22.1 78.9-18.6 9.09 3.23 7.25-7.22 5.67-8.96-21.8-24.1-58.9-26.1-58.9-26.1-50.7 0-52.5 49.6-52.5 71.6v46.5c0 56.8 72.4 154 117 162-0.218 0.104 4.78 1.28 6.79 2.74 0.078 0.053 0.209 0 0.28 0.044 2.59 2.16 5.85 3.59 9.51 3.59 3.56 0 6.69-1.38 9.22-3.41 0 0 3.16-1.83 7.81-3.32 5.31-1.41 14.4-6.93 20.1-11.5 22.9-18.4 46.1-46.9 62.2-87.9 0 0 2.16-9.66-0.612-10.2-2.46-0.499-4.1 0.035-10.8 12-25.4 45.7-60.7 76.6-78.7 77.5v-35.8c11.4-1.76 31.7-10.8 45.5-23.3 8.95-8.14-7.11-6.28-9.68-5.24-11 4.42-13.2 10.6-44.7 10.6-30.1 0-48.1-12.7-53.7-17.9h35.8l17.9-17.9 17.9 17.9h35.8l32.6-38.6c27.3-2.42 30.2-34.1 30.2-37.4v-13.4c0-2.11-0.072-8.95-4.48-8.95zm-165 118c24 15.1 36.5 15 44.3 16.2v35.8c-42.4-10.8-44.8-41.5-44.3-52zm14.2-93.9c-6.68 29.5-40.1 29.5-40.1 29.5-19.8 0-28.3-10.2-28.3-37v-39.8c10.2 4.53 23.9 8.38 35.6 8.38 10.3 0 20.2-2.13 29.4-5.76 0.026 0 0.051 9e-3 0.051 9e-3 3.38 0 5.27 2.65 5.27 2.65s5.52 9.08-1.92 42zm63.8-49.2c11.9 6.39 25.1 10.3 39.2 10.3 14.1 0 27.4-3.92 39.3-10.3-11.9-6.39-25.1-10.3-39.3-10.3-14.1 0-27.3 3.92-39.2 10.3z" clip-rule="evenodd" fill="#3f3f3f" fill-rule="evenodd"/></g></svg> ADDED freshlib/test_code/TestBBCode/bbcode.asm Index: freshlib/test_code/TestBBCode/bbcode.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/bbcode.asm @@ -0,0 +1,95 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console, compact + +options.DebugMode = 0 +options.ShowSizes = 1 + +EMOTICONS_PATH equ './' +include "%lib%/freshlib.asm" + +include "hash_function.asm" + + +FILE_READ_CHUNK = 4096 + +rb 237 + +start: + InitializeAll + + or ecx, -1 + shr ecx, 3 +.hot: + dec ecx + jnz .hot + + stdcall TextCreate, sizeof.TText + mov edx, eax + +.read_loop: + stdcall TextMoveGap, edx, -1 + stdcall TextSetGapSize, edx, FILE_READ_CHUNK + mov eax, [edx+TText.GapBegin] + add eax, edx + + stdcall FileRead, [STDIN], eax, FILE_READ_CHUNK + jc .translate + + test eax, eax + jz .translate + + add [edx+TText.GapBegin], eax + jmp .read_loop + +.translate: + + stdcall GetFineTimestamp + push eax + + stdcall TranslateBBCode, edx, 0 + + stdcall GetFineTimestamp + pop ecx + sub eax, ecx + + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax eax + + stdcall FileWriteString, [STDERR], 'TranslateBBCode time: ' + stdcall FileWriteString, [STDERR] ; from the stack + stdcall StrDel ; from the stack + stdcall FileWriteString, [STDERR], <txt ' us', 13, 10> + + + stdcall TextCompact, edx + +; stdcall FileWrite, [STDOUT], cPrefix, cPrefix.length +; stdcall FileWriteString, [STDOUT], edx + +.finish: + push eax + FinalizeAll + stdcall TerminateAll ; from the stack + +iglobal + cPrefix file "prefix.tpl" + .length = $ - cPrefix + dd 0 +endg + + ADDED freshlib/test_code/TestBBCode/bbcode.fpr Index: freshlib/test_code/TestBBCode/bbcode.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/bbcode.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/cry.gif Index: freshlib/test_code/TestBBCode/cry.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/cry.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/hash_function.asm Index: freshlib/test_code/TestBBCode/hash_function.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/hash_function.asm @@ -0,0 +1,21 @@ +iglobal +if used tpl_func +tpl_func: + db 148, 24, 71, 46, 179, 0, 106, 157, 70, 1, 102, 126, 120, 134, 151, 183 + db 47, 103, 92, 201, 62, 156, 13, 10, 254, 218, 248, 28, 85, 185, 245, 112 + db 236, 237, 150, 37, 172, 63, 203, 198, 116, 196, 25, 107, 239, 44, 15, 175 + db 38, 161, 140, 98, 33, 79, 99, 133, 2, 59, 174, 115, 69, 188, 51, 36 + db 229, 143, 231, 84, 22, 78, 89, 166, 104, 145, 34, 225, 180, 12, 230, 205 + db 97, 39, 49, 190, 182, 202, 17, 219, 176, 170, 80, 74, 73, 194, 41, 26 + db 243, 142, 60, 131, 244, 249, 119, 61, 138, 16, 77, 54, 210, 23, 29, 147 + db 204, 110, 130, 93, 213, 223, 146, 216, 123, 247, 90, 124, 75, 135, 57, 128 + db 226, 50, 224, 127, 139, 152, 193, 101, 207, 122, 9, 58, 184, 250, 96, 67 + db 241, 109, 87, 168, 187, 167, 240, 171, 233, 155, 173, 215, 43, 227, 160, 5 + db 246, 129, 20, 14, 100, 209, 137, 169, 68, 40, 42, 165, 121, 113, 200, 95 + db 189, 251, 82, 72, 154, 235, 195, 136, 186, 55, 212, 35, 32, 253, 66, 132 + db 214, 88, 192, 4, 31, 65, 114, 211, 19, 83, 21, 3, 6, 177, 76, 255 + db 252, 199, 141, 56, 105, 11, 117, 163, 220, 27, 222, 234, 178, 52, 64, 221 + db 18, 232, 164, 53, 206, 153, 118, 48, 158, 162, 159, 191, 242, 125, 144, 94 + db 108, 91, 197, 111, 30, 7, 81, 181, 149, 45, 217, 208, 86, 238, 8, 228 +end if +endg ADDED freshlib/test_code/TestBBCode/lol.gif Index: freshlib/test_code/TestBBCode/lol.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/lol.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/prefix.tpl Index: freshlib/test_code/TestBBCode/prefix.tpl ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/prefix.tpl @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>BBCode translator test page. + + + + ADDED freshlib/test_code/TestBBCode/readme.txt Index: freshlib/test_code/TestBBCode/readme.txt ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/readme.txt @@ -0,0 +1,4 @@ +This project is the code of a parser for BBCode and the test cases. +Later this code should be merged in FreshLib and used in AsmBB forum engine +This way, two different markup languages will be allowed simultaneously. + ADDED freshlib/test_code/TestBBCode/rofl.gif Index: freshlib/test_code/TestBBCode/rofl.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/rofl.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/sad.gif Index: freshlib/test_code/TestBBCode/sad.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/sad.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/smile.gif Index: freshlib/test_code/TestBBCode/smile.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/smile.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/test.bbcode Index: freshlib/test_code/TestBBCode/test.bbcode ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/test.bbcode @@ -0,0 +1,201 @@ +[h1]Header 1[/h1] + +[h2]Header 2[/h2] + +[h3]Header 3[/h3] + +[h4]Header 4[/h4] + +[h5]Header 5[/h5] + +[h6]Header 6[/h6] + + << This ""MUST"" be escaped & the tags will be displayed. + +[b]This paragraph should be formatted with tags.[/b] + +[i]This paragraph should be formatted with tags.[/i] + +[u]This paragraph should be formatted with tags.[/u] + +[s]This paragraph should be formatted with tags.[/s] + +[c]This paragraph should be formatted with tags and monospaced font.[/c] + +[url=">]This is a XSS test. It should [b]NOT[/b] be colored in red![/url] + +[url=https://board.asm32.info]This is a link [/url] + +[url]https://board.asm32.info[/url] + +A little bit strange, but valid: + +[img=anon.svg[/img] + +Standard image definition: + +[img]anon.svg[/img] + +An image with alt text: + +[img=Anonymous user picture]anon.svg[/img] + +Missing image alt text displayed and properly encoded: + +[img=>>>>>>Anonymous user picture<<<<<<<]someimage.svg[/img] + + +[quote]Block quote +with paragraphs. + +Another paragraph. +And it is multiline +paragraph actually. + +[/quote] + +[quote=Author name]<>[/quote] + +This is multiline paragraph +and should be formatted as such. +All text should be grouped in one text block. + +[quote=Anonymous] +<> +[quote=johnfound] +Here is my [b]super asm[/b] code! +[code=asm] + stdcall LoadBinaryFile, "prefix.tpl" + jc .prefix_ok + push eax + stdcall FileWrite, [STDOUT], eax, ecx + pop eax +.prefix_ok: +[/code] +[/quote] + +Your [i]code[/i] [b]sucks![/b] + +[/quote] + + + + +[code] +This is a block of code formatted with tags. + + [b]This tag should not be formatted[/b], because in [code] tag. + + stdcall LoadBinaryFile, "prefix.tpl" + jc .prefix_ok + push eax + stdcall FileWrite, [STDOUT], eax, ecx + pop eax +.prefix_ok: +[/code] + +[code=asm] +This is a block of code formatted with tags. + stdcall LoadBinaryFile, "prefix.tpl" + jc .prefix_ok + push eax + stdcall FileWrite, [STDOUT], eax, ecx + pop eax +.prefix_ok: + +[/code] + +[size=48px]Text [color=#ff00ff]with[/color] different size.[/size] + +[color=#ff00ff]Text with different color.[/color] + +Unordered list 1: + +[list] +[*] Item 1 +[*] Item 2 + +[*] Item 3 +[/list] + +Unordered list 2: + +[ul] +[*] Item 1 +[*] Item 2 +[*] Item 3 +Item 3 as well! + +Not an item? + +[/ul] + +Nested ordered lists: + +[ol] +[*] Item 1 +[*] Item 2 has subitems. + [ol=a] + [*] Item 1 + + [*] Item 2 + [*] Item 3 + [*] Item 4 + [/ol] + +[*] Item 3 + +[/ol] + + +[table] + [tr] + [td] 1 [/td] + [td] 2 [/td] + [td] 3 [/td] + [/tr] + [tr] + [td] 4 [/td] + [td] 5 [/td] + [td] 6 [/td] + [/tr] + [tr] + [td] 7 [/td] + [td] 8 [/td] + [td] 9 [/td] + [/tr] +[/table] + +[:)] [:D] [:lol:] [;)] [:P] [:(] [:`(] [>:(] + + +[email]email@email.com[/email] + +[email=email@email.com]My email[/email] + +[spoiler] + Vader is Luke's father! +[/spoiler] + + +[b][i][u]Multi tags[/u][/i][/b] + +[b][i][u]Wrong multi tags[/i][/b][/u] + +[/asdf] + +[/]XSS test for invalid closing tags! + +[=]XSS test for invalid tags! + + +[b=some extra attribute ignore!]<>[/b] + +Not finished tag: + +[[[[[[[[[b= + + +The following is a not finished tag at the end of the file: + +[ ADDED freshlib/test_code/TestBBCode/tongue.gif Index: freshlib/test_code/TestBBCode/tongue.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/tongue.gif cannot compute difference between binary files ADDED freshlib/test_code/TestBBCode/wink.gif Index: freshlib/test_code/TestBBCode/wink.gif ================================================================== --- /dev/null +++ freshlib/test_code/TestBBCode/wink.gif cannot compute difference between binary files ADDED freshlib/test_code/TestConfig.asm Index: freshlib/test_code/TestConfig.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestConfig.asm @@ -0,0 +1,270 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + + +include "%lib%/freshlib.inc" + +@BinaryType console + +options.ShowSizes = 1 +options.SkipZeroSizes = 1 +options.DebugMode = 1 + +LinuxThreads equ native + +include "%lib%/freshlib.asm" + +cCRLF text CRLF + +;rb $07 ; does not work +;rb $08 ; works! +rb $ff + + +struc AETHEME synproc,tfg,tbg,sfg,sbg,mbg,mfg,mw,gw,focusfg,focusbg,[syn] +{ + common + .syntax_proc dd synproc + .text_color dd tfg + .text_background dd tbg + .sel_text dd sfg + .sel_background dd sbg + .margin_background dd mbg + .margin_border dd mfg + .margin_width dd mw + .margin_gap dd gw + .focus_color dd focusfg + .focus_background dd focusbg + .syntax_colors: + forward + if ~ syn eq + dd syn + end if + common + .syntax_colors_count = ($ - .syntax_colors) / 4 + } + + +virtual at 0 + aeTheme AETHEME 0,0,0,0,0,0,1,0,0,0,0 + sizeof.aeTheme = $ +end virtual + +clDefaultText = 0 +clSymbol = 1 +clNumber = 2 +clString = 3 +clComment = 4 +clRegister = 5 +clInstruction = 6 +clDirective = 7 +clPreprocessor = 8 + +iglobal + cSynListboxColors: + IndexedStrings \ + aeTheme.text_color, 'Default text', \ + aeTheme.text_background, 'Default background', \ + aeTheme.sel_text, 'Selected text', \ + aeTheme.sel_background, 'Selected background', \ + aeTheme.focus_color, 'Focused line text', \ + aeTheme.focus_background,'Focused line background', \ + aeTheme.margin_background,'Left margin background', \ + aeTheme.margin_border, 'Left margin border', \ + aeTheme.syntax_colors+4*(clDirective-1), 'Assembler directive', \ + aeTheme.syntax_colors+4*(clPreprocessor-1), 'Preprocessor directive', \ + aeTheme.syntax_colors+4*(clInstruction-1), 'Instruction', \ + aeTheme.syntax_colors+4*(clRegister-1), 'Register', \ + aeTheme.syntax_colors+4*(clSymbol-1), 'Symbol', \ + aeTheme.syntax_colors+4*(clNumber-1), 'Number', \ + aeTheme.syntax_colors+4*(clString-1), 'String', \ + aeTheme.syntax_colors+4*(clComment-1), 'Comment' + +defaultAETHEME dd $00000000, $00400000, $00FFFFFF, $00FFFFFF, $00800000, $00C0C0C0, $00808080, \ + $00000014, $00000004, $00FFFFFF, $00008000, $00000000, $00A000A0, $000080FF, \ + $00808080, $00808000, $00FF0000, $00800000, $00008000 + +endg + +;MutexCreate + +uglobal + StartTime dd ? +endg + +start: + InitializeAll +; test append value + +; stdcall StrDup, 'test.conf2' +; mov ecx, eax + +; stdcall FileOpenAccess, 'test.conf2', faReadWrite or faOpenAlways +; mov ecx, eax + +; stdcall CfgSetStr, ecx, 'Section with space', 'one_key with space', 'And value with space' +; +; stdcall CfgSetStr, ecx, 'dir1.dir2', 'unique1', 'TestString1' +; stdcall CfgSetStr, ecx, 'dir1.dir2', 'unique2', 'TestString2' +; stdcall CfgSetStr, ecx, 'dir1.dir2', 'unique3', 'TestString3' +; +;; read section test +; stdcall CfgGetSection, ecx, 'dir1.dir2' +; jnc .read_ok +; +; stdcall FileWriteString, [STDOUT], <'Error reading section!', 13, 10> +; jmp .end_test_section +; +;.read_ok: +; mov esi, eax +; xor ebx, ebx +; cmp [esi+TArray.count], ebx +; je .end_disp +; +;.disp_loop: +; stdcall FileWriteString, [STDOUT], [esi+TArray.array+8*ebx+TCfgRecord.key] +; stdcall FileWriteString, [STDOUT], ' key has value of: ' +; stdcall FileWriteString, [STDOUT], [esi+TArray.array+8*ebx+TCfgRecord.value] +; stdcall FileWriteString, [STDOUT], cCRLF +; +; inc ebx +; cmp ebx, [esi+TArray.count] +; jne .disp_loop +; +;.end_disp: +; stdcall DeleteArrayItems, esi, 3, 2 +; mov esi, edx +; +; stdcall CfgSaveSection, ecx, 'dir1.dir2', esi +; stdcall CfgFreeSection, esi +; +; +;.end_test_section: +; +; mov edi, 20 +; +; stdcall GetTimestamp +; mov esi, eax +; +;.loop: +; +; stdcall CfgGetStr, ecx, 'Section with space', 'one_key with space' +; push eax +; stdcall FileWriteString, [STDOUT], eax +; stdcall StrDel +; stdcall FileWriteString, [STDOUT], cCRLF +; +;; Time per one loop: +;; +;; Linux: 100uS; Wine: 1ms; +;; stdcall CfgGetInt, ecx, 'SomeDir', 'kokolino', 0 +;; inc eax +;; stdcall CfgSetInt, ecx, 'SomeDir', 'kokolino', eax +; +;; Wine: 1.5ms per loop; +;; invoke GetPrivateProfileIntA, 'dir1.dir2', 'kokolino', 0, './test.conf2' +;; inc eax +;; stdcall NumToStr, eax, ntsDec or ntsUnsigned +;; push eax +;; stdcall StrPtr, eax +;; invoke WritePrivateProfileStringA, 'dir1.dir2', 'kokolino', eax, './test.conf2' +;; stdcall StrDel ; from the stack; +; +; dec edi +; jnz .loop + + stdcall GetTimestamp + mov [StartTime], eax + +; timing of StrNew function. + + mov ecx, 1000 + +.loop: + stdcall StrNew + stdcall StrDel, eax + dec ecx + jnz .loop + + + stdcall GetTimestamp + sub eax, [StartTime] + + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax eax + + stdcall FileWriteString, [STDOUT], 'StrNew/StrDel time:' + stdcall FileWriteString, [STDOUT] ; from the stack + stdcall FileWriteString, [STDOUT], cNewLine + stdcall StrDel ; from the stack + + + + + stdcall FileOpenAccess, 'test.conf2', faReadOnly + mov ebx, eax + + stdcall GetMem, 1024 + mov edi, eax + + mov esi, cSynListboxColors + +; debug + stdcall GetTimestamp + mov [StartTime], eax +; /debug + +.color_loop: + lodsd ; pointer to the key name. + test eax, eax + jz .end_colors + + mov edx, eax + lodsd ; offset in the theme. + mov ecx, eax + + stdcall CfgGetInt, ebx, 'Theme.Colors', edx, 0 + jnc .store_color + + stdcall FileWriteString, [STDOUT], <'Error reading.', 13, 10> + mov eax, [defaultAETHEME+ecx] + +.store_color: + mov [edi+ecx], eax + jmp .color_loop + +.end_colors: + + stdcall GetTimestamp + sub eax, [StartTime] + + stdcall NumToStr, eax, ntsDec or ntsUnsigned + push eax eax + + stdcall FileWriteString, [STDOUT], 'Total time:' + stdcall FileWriteString, [STDOUT] ; from the stack + stdcall FileWriteString, [STDOUT], cNewLine + stdcall StrDel ; from the stack + + stdcall FileReadLine, [STDIN] + + stdcall FileClose, ebx + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + stdcall ThreadCreate + +@EndCode: ADDED freshlib/test_code/TestConfig.fpr Index: freshlib/test_code/TestConfig.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestConfig.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestData/TestHashTree.asm Index: freshlib/test_code/TestData/TestHashTree.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestData/TestHashTree.asm @@ -0,0 +1,60 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console, compact + +options.DebugMode = 1 + +include "%lib%/freshlib.asm" + + +include "%lib%/data/hashtree.asm" + +start: + InitializeAll + + mov [ResizeIt], StrategyAgressive + + stdcall CreateArray, sizeof.THashTreeNode + mov edx, eax + jmp .free_tree + + mov ecx, 10000000 + +.add_loop: + stdcall StrDupMem, "Test string" + mov ebx, eax + + stdcall NumToStr, ecx, ntsDec or ntsUnsigned + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + stdcall SearchHashTree, edx, ebx, TRUE + test eax, eax + jnz @f + + stdcall StrDel, ebx + OutputValue "String add error on ECX=", ecx, 10, -1 +@@: + loop .add_loop + + OutputValue "Hash tree size: ", [edx+TArray.count], 10, -1 + +.free_tree: + stdcall FreeHashTree, edx + + FinalizeAll + stdcall TerminateAll, 0 ADDED freshlib/test_code/TestData/TestHashTree.fpr Index: freshlib/test_code/TestData/TestHashTree.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestData/TestHashTree.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestGapBuffers.asm Index: freshlib/test_code/TestGapBuffers.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestGapBuffers.asm @@ -0,0 +1,78 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console, compact + +include "%lib%/freshlib.asm" + +start: + InitializeAll + + stdcall TextCreate, sizeof.TText + mov edx, eax + + stdcall TextAddString, edx, 0, "This is test" + stdcall TextAddString, edx, 8, "simply a small, simple but reliable " + + stdcall TextMoveGap, edx, -100000 + stdcall TextMoveGap, edx, +100000 + + stdcall TextMoveGap, edx, 4 + sub [edx+TText.GapBegin], 4 + + stdcall TextAddString, edx, 0, txt "Katakana" + + stdcall TextMoveGap, edx, -1 + sub [edx+TText.GapBegin], 4 + + stdcall TextAddString, edx, [edx+TText.GapBegin], "alphabet." + +; int3 + stdcall TextCompact, edx + + push eax + + stdcall FileWrite, [STDERR], edx, eax + stdcall FileWriteString, [STDERR], + + pop eax + stdcall NumToStr, eax, ntsDec or ntsUnsigned + + stdcall FileWriteString, [STDERR], eax + stdcall FileWriteString, [STDERR], + + stdcall NumToStr, [edx+TText.GapEnd], ntsDec + push eax + + stdcall NumToStr, [edx+TText.GapBegin], ntsDec + push eax + + stdcall NumToStr, [edx+TText.Length], ntsDec + push eax + + stdcall FileWriteString, [STDERR], "TText length: " + stdcall FileWriteString, [STDERR] ; from the stack + + stdcall FileWriteString, [STDERR], + stdcall FileWriteString, [STDERR] ; from the stack + + stdcall FileWriteString, [STDERR], + stdcall FileWriteString, [STDERR] ; from the stack + + stdcall FileWriteString, [STDERR], + + FinalizeAll + stdcall TerminateAll, 0 ADDED freshlib/test_code/TestGapBuffers.fpr Index: freshlib/test_code/TestGapBuffers.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestGapBuffers.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestKolibriOS.asm Index: freshlib/test_code/TestKolibriOS.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestKolibriOS.asm @@ -0,0 +1,58 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console + + +include "%lib%/freshlib.asm" + +options.DebugMode = 1 + +; include your includes here. + +start: + InitializeAll + + + stdcall FileWriteString, [STDOUT], <'This is test for the console keyboard read.', 13, 10> + +.read_loop: + stdcall FileReadLine, [STDIN] + jc .read_loop + + test eax, eax + jz .read_loop + + push eax eax + + stdcall StrPtr, eax + cmp dword [eax], 'quit' + je .quit + + stdcall FileWriteString, [STDOUT] ; from the stack + stdcall FileWriteString, [STDOUT], cCRLF + stdcall StrDel ; from the stack + jmp .read_loop + +cCRLF text 13, 10 + +.quit: + pop eax + stdcall StrDel ; from the stack... + + stdcall FileWriteString, [STDOUT], <'Goodbye master!', 13, 10> + FinalizeAll + stdcall TerminateAll, 0 ADDED freshlib/test_code/TestKolibriOS.fpr Index: freshlib/test_code/TestKolibriOS.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestKolibriOS.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestMarkdown/TestMarkdown.asm Index: freshlib/test_code/TestMarkdown/TestMarkdown.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestMarkdown/TestMarkdown.asm @@ -0,0 +1,118 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console + +include "%lib%/freshlib.asm" + + +uglobal + Result TMarkdownResults +endg + +iglobal + cHeader file "../TestBBCode/prefix.tpl" + dd 0 +endg + + + +start: + InitializeAll + +; place your code here. + + stdcall ReadTheInputSlow + + stdcall TranslateMarkdown2, edi, 0, TRUE, Result, 0 + + stdcall FileWriteString, [STDOUT], cHeader + stdcall FileWriteString, [STDOUT], [Result.hIndex] + stdcall FileWriteString, [STDOUT], [Result.hContent] + + + FinalizeAll + stdcall TerminateAll, 0 + + +uglobal + SizeSource dd ? +endg + + + +START_SIZE = 1024 + +proc ReadTheInputSlow +begin + mov [SizeSource], START_SIZE + xor esi, esi + stdcall GetMem, [SizeSource] + mov edi, eax + +.allocloop: + stdcall ResizeMem, edi, [SizeSource] + mov edi, eax + +.readloop: + mov ecx, [SizeSource] + lea eax, [edi+esi] + sub ecx, esi + stdcall FileRead, [STDIN], eax, ecx + jc .endoffile + test eax, eax + jz .endoffile + + add esi, eax + + mov eax, [SizeSource] + sub eax, esi + + cmp eax, START_SIZE + jae .readloop + + mov eax, [SizeSource] + lea eax, [3*eax] + shr eax, 1 + + add eax, $fff + and eax, $fffff000 + mov [SizeSource], eax + jmp .allocloop + +.endoffile: + xor eax, eax + mov [edi+esi], eax ; zero terminated... + mov [SizeSource], esi + + return +endp + + + + + + + + + + + + + + + + ADDED freshlib/test_code/TestMarkdown/TestMarkdown.bat Index: freshlib/test_code/TestMarkdown/TestMarkdown.bat ================================================================== --- /dev/null +++ freshlib/test_code/TestMarkdown/TestMarkdown.bat @@ -0,0 +1,2 @@ +TestMarkdown < test.markdown > TestMarkdown.html +pause ADDED freshlib/test_code/TestMarkdown/TestMarkdown.fpr Index: freshlib/test_code/TestMarkdown/TestMarkdown.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestMarkdown/TestMarkdown.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestMarkdown/test.markdown Index: freshlib/test_code/TestMarkdown/test.markdown ================================================================== --- /dev/null +++ freshlib/test_code/TestMarkdown/test.markdown @@ -0,0 +1,155 @@ +# Test of the MiniMagAsm markup. + +This is a test file for the MiniMagAsm kind of markdown parser. + + +## Header 1 + +Here are some images: + + [!img1][Some alt text] + + [!../TestBBCode/anon.svg] + +;And here, some object: +; +; [$128x48:test.swf][With inline address.] +; +; [$Flash1][This is simple demonstration of Fresh IDE power.] +; +; [$Flash2][Broken link processing] +; +; [$test.swf][There should be no size, but the animation should appear.] +; +; [$x480test.swf][Broken3] + +## Code block without syntax specified + +;begin + stdcall LoadBinaryFile, "prefix.tpl" + jc .prefix_ok + push eax + stdcall FileWrite, [STDOUT], eax, ecx + pop eax +.prefix_ok: + +;end + + +Another paragraph. + +;quote Anonymous +<> +;quote johnfound +Here is my *super asm* code! (Code block with language specified.) + +;begin asm + stdcall LoadBinaryFile, "prefix.tpl" + jc .prefix_ok + push eax + stdcall FileWrite, [STDOUT], eax, ecx + pop eax +.prefix_ok: + +;end + +;end + +Your /code/ *sucks!* + +;end + +Some more text to test the sub-chapters. + +### Bold and italic. + +Another chapter. + + *This is bold* + + /This is italic/ + +#### Level 4 + +;ulist +* List item 1 + +* List item 2 + +* List item 3 +;end + +;olist +* List item 1 + +* List item 2 +;ulist +* Subitem 1 + +* Subitem 2 + +* Subitem 3 +;end + +* List item 3 +;end + +##### Level 5 + +Table formatting: + +;table +1 + +2 + +3 + +;------------------- + +4 + +5 + +6 + +;--------------------- + +7 + +8 + +9 + +;end + +###### Level 6 + + The maximal level of H tags. + +;spoiler Spoiler + Vader is Luke's father! +;end + + +### Underlined and Strikethrough. + + _This is underlined_ + + -Deleted text- + +### One more header. + + This is inline `code formatting`, displayed with monospaced font. + + +[$Flash1] 64x48:test.swf +[$Flash2] 64:test.swf +[!img1] ../TestBBCode/anon.svg + + + + + + + ADDED freshlib/test_code/TestMarkdown/test.swf Index: freshlib/test_code/TestMarkdown/test.swf ================================================================== --- /dev/null +++ freshlib/test_code/TestMarkdown/test.swf cannot compute difference between binary files ADDED freshlib/test_code/TestNetwork.asm Index: freshlib/test_code/TestNetwork.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestNetwork.asm @@ -0,0 +1,98 @@ +include "%lib%/freshlib.inc" + + +@BinaryType console + +options.DebugMode = 1 + +include "%lib%/freshlib.asm" + + + + +start: + InitializeAll + + + + stdcall TestSocketRead + + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + + + + + + + + + +proc TestSocketRead +.address TSocketAddressIn +begin + pushad + + stdcall StrNew + mov edi, eax + + stdcall SocketCreate, PF_INET, SOCK_STREAM, 0 + jc .finish + + mov ebx, eax + + + + mov [.address.saFamily], AF_INET + + stdcall StrIP2Num, '127.0.0.1' + bswap eax + + mov edx, 8080 + xchg dl, dh + + mov [.address.saPort], dx + mov [.address.saAddress], eax + xor eax, eax + mov dword [.address.saZero], eax + mov dword [.address.saZero+4], eax + + lea eax, [.address] + stdcall SocketConnect, ebx, eax + jc .end_lines + + + stdcall SocketSendStr, ebx, <"GET /all.css HTTP/1.1", 13, 10> + stdcall SocketSendStr, ebx, <"Host: board.asm32.info", 13, 10> + stdcall SocketSendStr, ebx, <"Accept: text/html", 13, 10> + stdcall SocketSendStr, ebx, <"Connection: keep-alive", 13, 10, 13, 10> + + xor edx, edx + +.read_loop: + stdcall SocketReadLine, ebx, edx, 25000 + test eax, eax + jz .end_lines + + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall FileWriteString, [STDOUT], + stdcall StrDel ; from the stack + + jmp .read_loop + + +.end_lines: + DebugMsg "Transmission ended!" + + stdcall SocketClose, ebx + +.finish: + popad + return + + +endp ADDED freshlib/test_code/TestNetwork.fpr Index: freshlib/test_code/TestNetwork.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestNetwork.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestPThreads.asm Index: freshlib/test_code/TestPThreads.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestPThreads.asm @@ -0,0 +1,70 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console + +options.DebugMode = 0 + +include "%lib%/freshlib.asm" + + +; include your includes here. + +iglobal + Stop dd 0 +endg + +start: + InitializeAll + + + stdcall FileOpenAccess, "./TestPThreads.asm", faReadOnly + mov ebx, eax + + stdcall FileOpenAccess, "./out.txt", faWriteOnly or faCreateAlways + mov edi, eax + + stdcall Exec2, '/usr/bin/grep "stdcall Exec2"', ebx, edi, edi ; Runs in WINE as well, but will not in the original Windows. + jmp .finish + + stdcall ThreadCreate, TestThread, 0 + +.wait: + stdcall Sleep, 100 + cmp [Stop], 0 + je .wait + + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + +proc TestThread, .arg +begin + mov esi, esp + mov ecx, 8000 + +.touch: + sub esp, 2048 + mov eax, [esp] + loop .touch + + mov [Stop], 1 + mov esp, esi + cret +endp + ADDED freshlib/test_code/TestPThreads.fpr Index: freshlib/test_code/TestPThreads.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestPThreads.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestSplitURL.asm Index: freshlib/test_code/TestSplitURL.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestSplitURL.asm @@ -0,0 +1,62 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console, compact + +include "%lib%/freshlib.asm" + + +uglobal + url TSplitURL +endg + +start: + InitializeAll + + stdcall FileReadLine, [STDIN] + mov esi, eax + + stdcall StrSplitURL, esi, url + + stdcall Print, " Scheme", [url.scheme] + stdcall Print, " Host", [url.host] + stdcall Print, " Port", [url.port] + stdcall Print, " Path", [url.path] + stdcall Print, " Query", [url.query] + stdcall Print, "Fragment", [url.fragment] + + stdcall StrDel, esi + + FinalizeAll + stdcall TerminateAll, 0 + + + +proc Print, .name, .val +begin + stdcall FileWriteString, [STDOUT], [.name] + stdcall FileWriteString, [STDOUT], txt ' = ' + + cmp [.val], 0 + je .skip + + stdcall FileWriteString, [STDOUT], [.val] + +.skip: + stdcall FileWriteString, [STDOUT], + + return +endp ADDED freshlib/test_code/TestSplitURL.fpr Index: freshlib/test_code/TestSplitURL.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestSplitURL.fpr cannot compute difference between binary files ADDED freshlib/test_code/TestStrLib.asm Index: freshlib/test_code/TestStrLib.asm ================================================================== --- /dev/null +++ freshlib/test_code/TestStrLib.asm @@ -0,0 +1,429 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ +include "%lib%/freshlib.inc" + +@BinaryType console + +options.DisableMMX = 0 +options.DebugMode = 1 + +include "%lib%/freshlib.asm" + +; include your includes here. + +MIN_STR_LEN = 1 +MAX_STR_LEN = 1500 +COLUMNS = 4 + +uglobal + align 16 + TestString rb MAX_STR_LEN + 256 + + align 16 + Result rd COLUMNS * (MAX_STR_LEN+1) +endg + + +iglobal + rb 6 + cLowerCase db "THIS is TEST case string. /\" + dd 0 + db $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + cLowerCase2 db "THISISTH" + dd 0 + db $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + + +endg + +TestPosHeap text 'saasoidhjaasdfsijoa;aijdfasi;ojaryiaejnkjfvnarfui;adnv' +TestPosNeedle text 'b' + + +proc TestNP, .pString +begin + stdcall StrDupMem, [.pString] + mov ebx, eax + + stdcall FileWriteString, [STDOUT], txt 'From: ' + stdcall FileWriteString, [STDOUT], ebx + stdcall FileWriteString, [STDOUT], + +; stdcall StrNormalizePath2, ebx, "/\" + + stdcall FileWriteString, [STDOUT], txt ' To: ' + stdcall FileWriteString, [STDOUT], ebx + stdcall FileWriteString, [STDOUT], + + stdcall StrDel ; from the stack. + return +endp + + +start: + InitializeAll + + +; Test StrNormalizePath + + stdcall TestNP, "../../work./asm.work/test.asm" + stdcall TestNP, "/usr/./lib/./../../work./asm.work/test.asm" + stdcall TestNP, "/usr/./././lib/test.asm" + stdcall TestNP, "/usr/../lib/test.asm" + stdcall TestNP, "./usr/../lib/test.asm" + stdcall TestNP, "usr/../lib/test.asm" + stdcall TestNP, "usr/././lib/../test.asm" + stdcall TestNP, "././lib/../test.asm" + stdcall TestNP, "./././lib/test.asm" + stdcall TestNP, "/usr/lib/../../../../work./asm.work/test.asm" + stdcall TestNP, "/usr/lib\../..\../..\work./asm.work\test.asm" + + + stdcall FileReadLine, [STDIN] + jmp .finish + + + +; Test StrPos procedure + + + stdcall StrDupMem, TestPosHeap + mov esi, eax + + stdcall StrDupMem, TestPosNeedle + mov ebx, eax + + stdcall StrPos, esi, txt 'sdaoluhfas;iodfhjas;oidjf;sioajf;oasijf;ioasj;iodjfs;aiojd;ioj;dofija;iojf;oiasjd;fioajs;iojfas;iojf;saoij_' + + OutputValue "Found StrPos: ", eax, 16, 8 + + jmp .finish + + + + + + + + xor ebx, ebx + +.all_loop: + + stdcall NumToStr, ebx, ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall StrCharCat, eax, "h" + push eax + + test ebx, $000fffff + jz .progress + +.back: + stdcall StrToNumEx, eax + + cmp eax, ebx + jne .fail + +.next: + stdcall StrDel ; from the stacks + + inc ebx + jnz .all_loop + jmp .finish + + +.progress: + stdcall FileWriteString, [STDOUT], eax + stdcall FileWriteString, [STDOUT], + mov eax, [esp] + jmp .back + +.fail: + stdcall FileWriteString, [STDOUT], "Test failed on: " + mov eax, [esp] + stdcall FileWriteString, [STDOUT], eax + stdcall FileWriteString, [STDOUT], + jmp .next + + + stdcall StrLCase, cLowerCase + + stdcall StrLCase, cLowerCase2 + + jmp .finish + + +; first create an array of strings with different sizes: + + mov ecx, MAX_STR_LEN+16 + mov al, 'A' + mov edi, TestString + rep stosb + + mov ecx, MAX_STR_LEN + mov edx, 0 ; missalignment + +; stdcall TestLoop, MIN_STR_LEN, MAX_STR_LEN, 0, 4, StrLenMMX2_1 +; stdcall TestLoop, MIN_STR_LEN, MAX_STR_LEN, 1, 8, StrLenMMX2 + stdcall TestLoop, MIN_STR_LEN, MAX_STR_LEN, 1, 12, StrLen + + stdcall FileWriteString, [STDOUT], <'Len: MMX2_1, MMX2, MMX', 13, 10> + + mov ecx, MAX_STR_LEN + +.output_loop: + mov edi, ecx + imul edi, 4*COLUMNS + + stdcall OutputVal, ecx, ': ' + + stdcall OutputVal, [Result+edi+4], ', ' + stdcall OutputVal, [Result+edi+8], ', ' + stdcall OutputVal, [Result+edi+12], $0a0d ;', ' +; stdcall OutputVal, [Result+edi+12], ', ' +; stdcall OutputVal, [Result+edi+16], $0a0d + + dec ecx + cmp ecx, MIN_STR_LEN + jae .output_loop + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + + + +proc TestLoop, .min, .max, .missalignment, .offsResult, .proc +begin + pushad + + mov ecx, [.max] + add ecx, 16 + mov al, 'A' + mov edi, TestString + rep stosb + + mov ecx, [.max] + mov edx, 0 ; missalignment + +.test_loop: + mov byte [TestString+ecx+edx], 0 + mov dword [TestString+ecx+edx+1], 'XXXX' + + mov edi, ecx + imul edi, 4*COLUMNS + add edi, [.offsResult] + + lea eax, [TestString+edx] + stdcall Benchmark2, eax, [.proc], ecx + mov [Result+edi], eax + + dec ecx + cmp ecx, [.min] + jae .test_loop + + popad + return +endp + + + + +proc CreateTestArray, .array, .strlen, .offset +.len dd ? +begin + pushad + + mov edx, [.array] + + mov eax, [.offset] + mov [edx+TArray.lparam], eax + + mov ecx, [.strlen] + add ecx, [.offset] + add ecx, 16 + mov [.len], ecx + + mov esi, [edx+TArray.count] + lea edx, [edx+TArray.array] + +.loop: + stdcall GetMem, [.len] + mov edi, eax + add edi, [.offset] + + mov [edx], edi + add edx, 4 + + mov ecx, [.strlen] + mov al, 'a' + rep stosb + xor al, al + stosb + + dec esi + jnz .loop + + popad + return +endp + + +proc FreeTestArray, .ptrArray +begin + pushad + + mov esi, [.ptrArray] + mov ecx, [esi+TArray.count] + mov edx, [esi+TArray.lparam] + lea esi, [esi+TArray.array] + +.loop: + mov eax, [esi] + sub eax, edx + stdcall FreeMem, eax + add esi, 4 + loop .loop + + popad + return +endp + + + +proc Benchmark, .test_array, .proc, .len +begin + pushad + + mov esi, [.test_array] + mov ecx, [esi+TArray.count] + lea esi, [esi+TArray.array] + + stdcall GetTimestamp + mov ebx, eax + +.loop: + stdcall [.proc], [esi] + add esi, 4 + dec ecx + jnz .loop + + stdcall GetTimestamp + sub eax, ebx + mov [esp+4*regEAX], eax + popad + return +endp + + + + +proc Benchmark2, .String, .proc, .len +begin + pushad + + mov ecx, 100 + + stdcall GetFineTimestamp + mov ebx, eax + +.loop: + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + stdcall [.proc], [.String] + dec ecx + jnz .loop + + mov edx, eax + + stdcall GetFineTimestamp + sub eax, ebx + mov [esp+4*regEAX], eax + + cmp edx, [.len] + je .OK + +; stdcall FileWriteString, [STDOUT], <$0d, $0a, 'ERROR: Wrong length!', $0d, $0a> + mov dword [esp+4*regEAX], edx + +.OK: + popad + return +endp + + + + + + + + + +proc OutputVal, .time, .char +begin + push eax + stdcall NumToStr, [.time], ntsSigned or ntsDec + push eax + stdcall StrCharCat, eax, [.char] + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack + pop eax + return +endp + + +proc StrLenByte, .ptrString +begin + mov eax, [.ptrString] + dec eax + +.loop: + inc eax + cmp byte [eax], 0 + jne .loop + + sub eax, [.ptrString] + return +endp + + +proc StrLenByte2, .ptrString +begin + push edi ecx + + mov edi, [.ptrString] + or ecx, -1 + xor eax, eax + + repne scasb + lea eax, [edi-1] + sub eax, [.ptrString] + + pop ecx edi + return +endp + + + + + + + + ADDED freshlib/test_code/TestStrLib.fpr Index: freshlib/test_code/TestStrLib.fpr ================================================================== --- /dev/null +++ freshlib/test_code/TestStrLib.fpr cannot compute difference between binary files ADDED freshlib/test_code/main.asm Index: freshlib/test_code/main.asm ================================================================== --- /dev/null +++ freshlib/test_code/main.asm @@ -0,0 +1,70 @@ +include '%lib%/freshlib.inc' + +@BinaryType console, compact + +include '%lib%/freshlib.asm' + + + +start: + InitializeAll + +uglobal + ttime dq ? + + file_info TFileInfo +endg + +.loop: + stdcall GetTime + + stdcall NumToStr, eax, ntsDec or ntsSigned + stdcall StrCharCat, eax, $0a + + push eax eax + + stdcall StrLen, eax + mov ecx, eax + + stdcall StrPtr ; from the stack + + stdcall FileWrite, [STDOUT], eax, ecx + stdcall StrDel ; from the stack + + stdcall FileOpen, filename + mov ebx, eax + + stdcall GetFileInfo, ebx, file_info + jc .show_error + + mov eax, dword [file_info.timeModified] + +.show_error: + stdcall NumToStr, eax, ntsDec or ntsSigned + stdcall StrCharCat, eax, $0a0a + + push eax eax + + stdcall StrLen, eax + mov ecx, eax + + stdcall StrPtr ; from the stack + + stdcall FileWrite, [STDOUT], eax, ecx + stdcall StrDel ; from the stack + + stdcall FileClose, ebx + + stdcall Sleep, 1000 + jmp .loop + + FinalizeAll + stdcall Terminate, 0 + +filename text 'eve.asm' + +uglobal + buffer rb 1000 +endg + + ADDED freshlib/test_code/main2.asm Index: freshlib/test_code/main2.asm ================================================================== --- /dev/null +++ freshlib/test_code/main2.asm @@ -0,0 +1,65 @@ +include '%lib%/freshlib.inc' + +@BinaryType console + +include '%lib%/freshlib.asm' + +__filetimeoffset = 116444736000000000 +__filetimescale = 10000000 ; 100ns -> 1s + +start: + + InitializeAll + +.main_loop: + invoke GetSystemTimeAsFileTime, time64 + mov eax, dword [time64] + mov edx, dword [time64+4] + + sub eax, __filetimeoffset and $ffffffff + sbb edx, __filetimeoffset shr 32 + + mov ecx, __filetimescale + + mov ebx, eax + mov eax, edx + cdq + + idiv ecx + xchg eax, ebx ; hi part is in ebx now + idiv ecx + mov edx, ebx + +; here the unix time is in edx:eax + + + stdcall NumToStr, eax, ntsDec or ntsSigned + mov ecx, eax + + stdcall StrLen, ecx + push eax + stdcall StrPtr, ecx + push eax + stdcall FileWrite, [STDOUT] + + stdcall FileWrite, [STDOUT], message, message.length + stdcall FileRead, [STDIN], buffer, 100 + cmp byte [buffer], 'q' + jne .main_loop + + FinalizeAll + stdcall Terminate, 0 + +message text 13, 10 + +uglobal + buffer rb 1000 + + time64 dq ? +endg + + +@AllImportEmbeded + + +@AllDataEmbeded ADDED freshlib/test_code/main3.asm Index: freshlib/test_code/main3.asm ================================================================== --- /dev/null +++ freshlib/test_code/main3.asm @@ -0,0 +1,172 @@ +include '%lib%/freshlib.inc' + +@BinaryType console + +include '%lib%/freshlib.asm' + +options.AlignCode = 0 + +LOOP_COUNT = 1000000000 + +start: + InitializeAll + + stdcall GetTimestamp + mov ebx, eax + + mov ecx, LOOP_COUNT + +.loop1: + stdcall Dispatch1, $02345678, 1, 1 + dec ecx + jnz .loop1 + + stdcall GetTimestamp + sub eax, ebx + + stdcall NumToStr, eax, ntsDec or ntsUnsigned + mov esi, eax + + stdcall FileWriteString, [STDOUT], cMessage1 + stdcall FileWriteString, [STDOUT], esi + stdcall FileWriteString, [STDOUT], cCRLF + +; cmp based dispatch + + stdcall GetTimestamp + mov ebx, eax + + mov ecx, LOOP_COUNT + +.loop2: + stdcall Dispatch2, $02345678, 1, 1 + dec ecx + jnz .loop2 + + stdcall GetTimestamp + sub eax, ebx + + stdcall NumToStr, eax, ntsDec or ntsUnsigned + mov esi, eax + + stdcall FileWriteString, [STDOUT], cMessage2 + stdcall FileWriteString, [STDOUT], esi + stdcall FileWriteString, [STDOUT], cCRLF + + stdcall FileReadLine, [STDIN] + stdcall StrDel, eax + + FinalizeAll + stdcall Terminate, 0 + + +cMessage1 text 'dproc based dispatch time: ' +cMessage2 text 'cmp based dispatch time: ' +cCRLF text 13, 10 + + +dproc Dispatch1, .arg1, .arg2, .arg3 +begin + dispatch [.arg1] + return + +oncase $12345678 + return + rb 256 + +oncase $12345679 + return + rb 256 + +oncase $12345680 + return + rb 256 + +oncase $12345681 + return + rb 256 + +enddp + + +proc Dispatch2, .arg1, .arg2, .arg3 +begin + mov eax, [.arg1] + + cmp eax, $12345678 + je .case1 + + cmp eax, $12345679 + je .case2 + + cmp eax, $12345680 + je .case3 + + cmp eax, $12345681 + je .case4 + + return + +.case1: + return + rb 256 + +.case2: + return + rb 256 + +.case3: + return + rb 256 + +.case4: + return + rb 256 + +endp + + +proc Dispatch3, .arg1, .arg2, .arg3 +begin + cmp [.arg1], $12345678 + je .case1 + + cmp [.arg1], $12345679 + je .case2 + + cmp [.arg1], $12345680 + je .case3 + + cmp [.arg1], $12345681 + je .case4 + + return + +.case1: + return + rb 256 + +.case2: + return + rb 256 + +.case3: + return + rb 256 + +.case4: + return + rb 256 + +endp + +call Dispatch2 +call Dispatch3 + +; Dispatch1.__info.codesize = $442 +; Dispatch2.__info.codesize = $442 +; Dispatch3.__info.codesize = $447 + + +@AllImportEmbeded +@AllDataEmbeded ADDED freshlib/test_code/md5_test/MD5_test.fpr Index: freshlib/test_code/md5_test/MD5_test.fpr ================================================================== --- /dev/null +++ freshlib/test_code/md5_test/MD5_test.fpr cannot compute difference between binary files ADDED freshlib/test_code/md5_test/md5_test.asm Index: freshlib/test_code/md5_test/md5_test.asm ================================================================== --- /dev/null +++ freshlib/test_code/md5_test/md5_test.asm @@ -0,0 +1,37 @@ +include "%lib%/freshlib.inc" +@BinaryType console + +options.DebugMode = 0 + +include "%lib%/freshlib.asm" + +start: + InitializeAll + + stdcall GetCmdArguments + mov esi, eax + + cmp [esi+TArray.count], 2 + jne .finish + + stdcall LoadBinaryFile, [esi+TArray.array+4] + lea edx, [ecx+1024] + stdcall ResizeMem, eax, edx + mov edi, eax + + stdcall DataSHA1, edi, ecx + push eax + + stdcall StrSHA1, eax + stdcall StrLCase, eax + stdcall FreeMem; from the stack + push eax + + stdcall FileWriteString, [STDOUT], eax + stdcall StrDel ; from the stack + + stdcall FileWriteString, [STDOUT], + +.finish: + FinalizeAll + stdcall TerminateAll, 0 ADDED freshlib/test_code/test.conf Index: freshlib/test_code/test.conf ================================================================== --- /dev/null +++ freshlib/test_code/test.conf @@ -0,0 +1,18 @@ +; This is the new hierarchical database format. +dir1: + key1=$1234 + dir2: + key1=4567 + key2='test param' + dir3: + koko='koko' + dir4: + key1='lolo' + lolo='key1' + dir5: + dodo='dodo' + momo='momo' + key3="secret" + dir4= This can be extracted only with GetConfigDir + key1=1025 bottles on the wall + key3=12 ADDED freshlib/test_code/test.txt Index: freshlib/test_code/test.txt ================================================================== --- /dev/null +++ freshlib/test_code/test.txt @@ -0,0 +1,3 @@ +This is test file line 1 +This is the second line of this file. +FreshLib is really portable assembly language library. ADDED freshlib/test_code/test_real_obj.asm Index: freshlib/test_code/test_real_obj.asm ================================================================== --- /dev/null +++ freshlib/test_code/test_real_obj.asm @@ -0,0 +1,65 @@ +include "%lib%/freshlib.inc" + +@BinaryType GUI + +options.DebugMode = 0 + +include "%lib%/freshlib.asm" + +uglobal + MainWindow dd ? +endg + +iglobal + if used TestTemplate + TestTemplate: + ObjTemplate tfParent or tfEnd, TForm, NULL, x, 200, y, 100, width, 480, height, 200, Visible, TRUE + ObjTemplate tfChild, TButton, NULL, x, 10, y, 10, width, 64, height, 24, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'OK', ModalResult, mrOK, Visible, TRUE + ObjTemplate tfEnd, TButton, NULL, x, 84, y, 10, width, 64, height, 24, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Cancel', ModalResult, mrCancel, Visible, TRUE + end if +endg + +;used.TButton = 1 +;used.TForm = 1 + +start: + InitializeAll + create [pApplication], TApplication + +; create [MainWindow], TForm +; mov ebx, [MainWindow] + +; set [pApplication], TApplication:MainWindow, MainWindow + +; set ebx, TWindow:borderKind, borderFull +; set ebx, TWindow:width, 640 +; set ebx, TWindow:height, 480 +; exec ebx, TWindow:UpdateBounds +; +; set ebx, TWindow:Visible, TRUE +; +; create ebx, TButton +; +; set ebx, TButton:Parent, [MainWindow] +; +; set ebx, TButton:Caption, 'Button 1' +; set ebx, TButton:TextAlign, dtfAlignCenter or dtfAlignMiddle +; set ebx, TButton:width, 96 +; set ebx, TButton:height, 48 +; set ebx, TButton:x, 100 +; set ebx, TButton:y, 50 +; exec ebx, TButton:UpdateBounds +; set ebx, TButton:Visible, TRUE + + stdcall CreateFromTemplate, TestTemplate, 0 + mov [MainWindow], ebx + + set [pApplication], TApplication:MainWindow, MainWindow + +; stdcall ShowMessage, [MainWindow], iconInfo, 'Test dialog', 'Assembly programming is easy with the proper tools.', smbOK or smbYes or smbCancel + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + ADDED freshlib/test_code/test_real_obj.fpr Index: freshlib/test_code/test_real_obj.fpr ================================================================== --- /dev/null +++ freshlib/test_code/test_real_obj.fpr cannot compute difference between binary files ADDED freshlib/test_code0/Sample_CP866.txt Index: freshlib/test_code0/Sample_CP866.txt ================================================================== --- /dev/null +++ freshlib/test_code0/Sample_CP866.txt @@ -0,0 +1,4 @@ + ࠧ⮢ ⠭, + ᭮ , + - ⠫, + ⮬ ! ADDED freshlib/test_code0/TestAsmEdit.asm Index: freshlib/test_code0/TestAsmEdit.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestAsmEdit.asm @@ -0,0 +1,328 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 1 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + + options.DebugMode.ComputeFPS = 0 + options.DebugMode.ShowFPS = 0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 1 + +ThemeGUI equ flat_gui +;ThemeGUI equ win_gui + +include "%lib%/freshlib.asm" + +include '%lib%/gui/TAsmEdit.asm' + +iglobal + + TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 640, \ + height = 480, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + SplitGrid = SplitTest, \ + Caption = 'Split grids test form' + + ObjTemplate tfChild, TTabBar, tabEditors, \ + Visible = TRUE, \ + OnCreate = TabCreate, \ + SplitCell = SplitTest.cellTabControl + + ObjTemplate tfChild, TButton, btnZebra, \ + SplitCell = SplitTest.cellZebra, \ + Caption = "Z", \ + Visible = TRUE, \ + OnClick = ToggleZebra + + ObjTemplate tfChild, TButton, btnScrollY, \ + SplitCell = SplitTest.cellMoreY, \ + Caption = "sY", \ + Visible = TRUE, \ + OnClick = ToggleScrollY + + ObjTemplate tfChild, TButton, btnScrollX, \ + SplitCell = SplitTest.cellMoreX, \ + Caption = "sX", \ + Visible = TRUE, \ + OnClick = ToggleScrollX + + ObjTemplate tfChild, TButton, btnUndo, \ + SplitCell = SplitTest.cellUndo, \ + Caption = "U", \ + Visible = TRUE, \ + OnClick = DoUndo + + ObjTemplate tfChild, TButton, btnRedo, \ + SplitCell = SplitTest.cellRedo, \ + Caption = "R", \ + Visible = TRUE, \ + OnClick = DoRedo + + ObjTemplate tfChild, TButton, btnCaretWrap, \ + SplitCell = SplitTest.cellCaretWrap, \ + Caption = "CWr", \ + Visible = TRUE, \ + OnClick = ToggleCaretWrap + + ObjTemplate tfChild, TButton, btnConsoleCaret, \ + SplitCell = SplitTest.cellConsoleCaret, \ + Caption = "Con", \ + Visible = TRUE, \ + OnClick = ToggleConsoleCaret + + ObjTemplate tfChild or tfEnd, TAsmEdit, AsmEdit, \ + x = 10, y = 40, width = 200, height = 200, \ + SplitCell = SplitTest.cellAsmEdit, \ + Visible = TRUE + + +;utf8_long file "unicode_test.txt" +;utf8_long file "test_utf8.asm" + +utf8_long dd 0 ;db " " + dd 0 + + + +if ThemeGUI eq win_gui + getfile imgArrowRight, '_test_images/right2.png' +end if + + +if ThemeGUI eq flat_gui + getfile imgArrowRight, '_test_images/right.png' +end if + + +endg + +SplitStart SplitTest + Split stVert or stJustGap, 2, 24, 16, 48 + Split stHoriz or stJustGap, 2, 32, 32, 32 + Cell cellZebra + Split stHoriz or stJustGap, 2, 32, 32, 32 + Cell cellMoreY + Split stHoriz or stJustGap, 2, 32, 32, 32 + Cell cellMoreX + Split stHoriz or stJustGap, 2, 32, 32, 32 + Cell cellUndo + Split stHoriz or stJustGap, 2, 32, 0, 100 + Cell cellRedo + Split stHoriz or stJustGap, 2, 64, 0, 100 + Cell cellCaretWrap + Split stHoriz or stJustGap, 2, 64, 0, 100 + Cell cellConsoleCaret + Cell cellEmpty + Split stVert or stJustGap or stAutosize, 0, .cellTabControl, 16, 48 + Cell cellTabControl + Split stVert or stJustGap or stOriginBR, 0, 16, 16, 16 + Cell cellAsmEdit + Cell cellStatusBar + +SplitEnd + + + + +uglobal + iconArrowRight dd ? +endg + + +;rb 123 + + +start: + InitializeAll + + create [pApplication], TApplication + + stdcall GUI.Init + stdcall ASM.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + + stdcall CreateImagePNG, imgArrowRight, imgArrowRight.size + mov [iconArrowRight], eax + + return +endp + + +proc TabCreate as TObject.OnCreate +begin + exec [tabEditors], TTabBar:InsertTab, -1, "Tab editor 1", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Tab editor 2", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Tab editor 3", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Tab editor 4", 0, 0 + + exec [tabEditors], TTabBar:InsertTab, -1, "Noname1.asm", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Noname2.asm", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Noname3.asm", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Noname4.asm", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Noname5.asm", 0, 0 + exec [tabEditors], TTabBar:InsertTab, -1, "Noname6.asm", 0, 0 + + return +endp + +proc EditOnCreate as TObject.OnCreate +begin + + return +endp + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + + + +proc OpenFileClick as TButton.OnClick +begin + pushad + + + + + + popad + return + +.error: + stdcall GetErrorString, eax + push eax + + stdcall ShowMessage, [frmMain], smiError, "File error", eax, smbOK + + stdcall FreeErrorString ; from the stack + popad + return +endp + + + + +proc ToggleZebra as TButton.OnClick +begin + get eax, [AsmEdit], TAsmEdit:Options + xor eax, aeoStripedBackground + set [AsmEdit], TAsmEdit:Options, eax + return +endp + + +proc ToggleScrollX as TButton.OnClick +begin + get eax, [AsmEdit], TAsmEdit:Options + xor eax, aeoScrollXMore + set [AsmEdit], TAsmEdit:Options, eax + return +endp + + +proc ToggleScrollY as TButton.OnClick +begin + get eax, [AsmEdit], TAsmEdit:Options + xor eax, aeoScrollYMore + set [AsmEdit], TAsmEdit:Options, eax + return +endp + + +proc ToggleCaretWrap as TButton.OnClick +begin + get eax, [AsmEdit], TAsmEdit:Options + xor eax, aeoNavXCaretWrap + set [AsmEdit], TAsmEdit:Options, eax + return +endp + + +proc ToggleConsoleCaret as TButton.OnClick +begin + get eax, [AsmEdit], TAsmEdit:Options + xor eax, aeoConsoleCaret + set [AsmEdit], TAsmEdit:Options, eax + return +endp + + +proc DoUndo as TButton.OnClick +begin + pushad + + exec [AsmEdit], TAsmEdit:Undo + + popad + return +endp + + +proc DoRedo as TButton.OnClick +begin + pushad + + exec [AsmEdit], TAsmEdit:Redo + + popad + return +endp + ADDED freshlib/test_code0/TestAsmEdit.fpr Index: freshlib/test_code0/TestAsmEdit.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestAsmEdit.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestDeflate.asm Index: freshlib/test_code0/TestDeflate.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestDeflate.asm @@ -0,0 +1,133 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console, compact + +options.DebugMode = 0 +options.ShowSizes = 1 +options.SkipZeroSizes = 1 + +;ThemeGUI equ win_gui + + +include "%lib%/freshlib.asm" + + +struc htlen [length] { +common + local ..start + label ..start byte +forward + local flag + flag equ FALSE + match count =* len, length \{ + rept count \\{ + db len + \\} + flag equ TRUE + \} + + match =FALSE, flag \{ + db length + \} + +common + .count = $ - ..start +} + + +iglobal +; The example from RFC-1951 +; TestArray htlen 5*3, 2, 2*4 + +; TestArray htlen 5*2, 3, 2*4 ; invalid array! +; TestArray htlen 5*3, 3, 2*4 ; invalid array! +; TestArray htlen 27*0, 1*1, 2*2;, 2*2 + + Sum dd ? + +endg + +;rb 273 + +start: + InitializeAll + + stdcall LoadBinaryFile, 'test_inflate.gz' + jc .error + mov esi, eax + + mov edx, [esi+ecx-4] ; the original size + + stdcall GetMem, edx + mov edi, eax + +; stdcall GetTimestamp +; mov ebx, eax + + sub ecx, 10+8 ; the header and the end of the gzip archive. + lea eax, [esi+10] + + mov ebx, 0 + + +.test_loop: + + xor byte [eax+ebx], $ff + + stdcall Inflate, edi, edx, eax, ecx + jnc .false_positive + + xor byte [eax+ebx], $ff + inc ebx + cmp ebx, edx + jb .test_loop + + stdcall FileWriteString, [STDOUT], 'All tests ended with error, as expected.' + jmp .finish + +.false_positive: + stdcall FileWriteString, [STDOUT], 'A test ended WITHOUT error!' + jmp .finish + +; stdcall GetTimestamp +; sub eax, ebx + +; stdcall NumToStr, eax, ntsDec or ntsUnsigned +; push eax + +; stdcall FileWriteString, [STDOUT], 'Inflate time:' +; stdcall FileWriteString, [STDOUT] ; from the stack + +; stdcall SaveBinaryFile, 'test_inflate.txt', edi, edx + +; jmp .finish + +.error: + stdcall FileWrite, [STDOUT], cError, cError.length + + +.finish: + stdcall FreeMem, edi + stdcall FreeMem, esi + + FinalizeAll + stdcall TerminateAll, 0 + + +cError text "Error processing test file.", 13, 10 +cCRLF text 13, 10 + ADDED freshlib/test_code0/TestDeflate.fpr Index: freshlib/test_code0/TestDeflate.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestDeflate.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestEdit.asm Index: freshlib/test_code0/TestEdit.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestEdit.asm @@ -0,0 +1,159 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 0 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 0 + +ThemeGUI equ win_gui + +include "%lib%/freshlib.asm" + + +iglobal +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 200, \ + y = 200, \ + width = 320, \ + height = 240, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + Caption = 'TEdit test' + + ObjTemplate tfChild, TEdit, editTest4, \ + x = 10, y = 110, width = 300, height = 24, \ + Text = "This is test TEdit control.", \ + Visible = TRUE + + ObjTemplate tfChild, TEdit, editTest3, \ + x = 10, y = 140, width = 300, height = 24, \ + Text = "Now you can select with the mouse and with the keyboard.", \ + Visible = TRUE + + ObjTemplate tfChild, TEdit, editTest2, \ + x = 10, y = 170, width = 300, height = 24, \ + Text = "Also to copy and paste.", \ + Visible = TRUE + + ObjTemplate tfChild, TEdit, editTest1, \ + x = 10, y = 200, width = 300, height = 24, \ + Text = "But in the Linux you can only paste, because I didn't wrote the code for copy. :P", \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnSkinWin, \ + x = 60, y = 10, width = 84, height = 24, \ + Caption = "Win skin", \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Visible = TRUE, \ + OnClick = SetWinSkin + + ObjTemplate tfChild or tfEnd, TButton, btnSkinFlat, \ + x = 146, y = 10, width = 84, height = 24, \ + Caption = "Flat skin", \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Visible = TRUE, \ + OnClick = SetFlatSkin + + + getfile cfgFlat, "theme_flat.cfg" + dd 0 + + getfile cfgWin, "theme_win.cfg" + dd 0 + +endg + + + +;rb 423 + + +start: + InitializeAll + + + create [pApplication], TApplication + + call GUI.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + + return +endp + + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + +proc SetWinSkin as TButton.OnClick +begin + stdcall StringToNamedArray, GUI.meta, cfgWin + exec [frmMain], TWindow:ForceRefresh + return +endp + + +proc SetFlatSkin as TButton.OnClick +begin + stdcall StringToNamedArray, GUI.meta, cfgFlat + exec [frmMain], TWindow:ForceRefresh + return +endp + + + + + ADDED freshlib/test_code0/TestEdit.fpr Index: freshlib/test_code0/TestEdit.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestEdit.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestGraphics.asm Index: freshlib/test_code0/TestGraphics.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGraphics.asm @@ -0,0 +1,385 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable GUI application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +options.DebugMode = 0 +options.DebugMode.NoTimers = 0 +options.DebugMode.ComputeFPS = 1 +options.DebugMode.ShowFPS = 0 +options.DebugMode.DisableSHM = 0 + +@BinaryType GUI, compact + +include "%lib%/freshlib.asm" + +iglobal + tplMainForm: + ObjTemplate tfEnd, TForm, frmMain, \ + OnSelfPaint = DemoPaint, \ + border = borderFull, \ + Caption = 'FreshLib graphics and GUI library test .' + + pngBackground file "_test_images/background.png" + .size = $ - pngBackground + +endg + + +uglobal + imgBackground dd ? + Font dd ? + FontHeight dd ? + FontAsc dd ? + PlateW dd ? + PlateH dd ? +endg + + +start: + InitializeAll + + create [pApplication], TApplication + + call GUI.Init + + stdcall FontCreate, txt "Liberation Mono", 20, fwBold, ffMonospaced + mov [Font], eax + + stdcall GetFontMetrics, eax + mov [FontHeight], eax + mov [FontAsc], ebx + + lea eax, [eax*3+16] + mov [PlateH], eax + + stdcall GetTextBounds, "FPS: XXXX", -1, [Font] + add eax, 16 + mov [PlateW], eax + + stdcall CreateFromTemplate, tplMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + + stdcall CreateImagePNG, pngBackground, pngBackground.size + mov [imgBackground], eax + + set [frmMain], TForm:width, [eax+TImage.width] + set [frmMain], TForm:height, [eax+TImage.height] + set [frmMain], TForm:Visible, TRUE + + set [pApplication], TApplication:OnIdle, Scroll + + set [frmMain], TForm:OnKeyPressed, OnKeyPress + mov eax, [frmMain] + mov [eax+TForm.__want_focus], TRUE + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +proc DemoPaint as TWindow.OnSelfPaint +begin + stdcall BlendImageTileWrap, [.pDstImage], [.xDst], [.yDst], [.width], [.height], [imgBackground] + return +endp + + +proc OnKeyPress as TWindow.OnKeyPressed +begin + cmp [.utf8], 's' + je .scroll + + cmp [.utf8], 'a' + je .scrollback + + cmp [.utf8], 'r' + je .refresh + + cmp [.utf8], 't' + je .refresh2 + + return + +.scroll: + stdcall Scroll, 0 + return + +.scrollback: + + mov eax, [incX] + mov ecx, [incY] + neg eax + neg ecx + + mov [incX], eax + mov [incY], ecx + mov [dist], 1000 + jmp .scroll + +.refresh: + exec [.self], TWindow:RectChanged2, 0 + return + +.refresh2: + mov eax, [.self] + stdcall _RefreshWindowRect, [eax+TWindow.handle], 0, 0, [eax+TWindow._width], [eax+TWindow._height] + return + + +endp + + + +proc Scroll, .param +.rect1 dd ? +begin + pushad + + mov esi, [frmMain] + test esi, esi + jz .finish + + cmp [esi+TWindow._rect_list], 0 + jne .finish + + mov ebx, [esi+TWindow._screen] + test ebx, ebx + jz .finish + + stdcall LockImg, ebx + jc .finish + + mov edi, [imgBackground] + stdcall LockImg, edi + +; First restore the text rectangle + + stdcall BlendImageTileWrap, ebx, 32, 32, [PlateW], [PlateH], edi + +; scroll the destination image. + + mov edx, [ebx+TImage.wrapW] + mov ecx, [ebx+TImage.orgX] + add ecx, [incX] + jns @f + add ecx, edx +@@: + cmp ecx, edx + jb @f + sub ecx, edx +@@: + mov [ebx+TImage.orgX], ecx + + mov edx, [ebx+TImage.wrapH] + mov ecx, [ebx+TImage.orgY] + add ecx, [incY] + jns @f + add ecx, edx +@@: + cmp ecx, edx + jb @f + sub ecx, edx +@@: + mov [ebx+TImage.orgY], ecx + +; scroll the source image + + mov edx, [edi+TImage.wrapW] + mov ecx, [edi+TImage.orgX] + add ecx, [incX] + jns @f + add ecx, edx +@@: + cmp ecx, edx + jb @f + sub ecx, edx +@@: + mov [edi+TImage.orgX], ecx + + mov edx, [edi+TImage.wrapH] + mov ecx, [edi+TImage.orgY] + add ecx, [incY] + jns @f + add ecx, edx +@@: + cmp ecx, edx + jb @f + sub ecx, edx +@@: + mov [edi+TImage.orgY], ecx + +; then paint the fixed rectangle again + + stdcall BlendSolidRect, ebx, 32, 32, [PlateW], [PlateH], $a0ffffff + + pushad + + mov edi, 40 + add edi, [FontAsc] + mov esi, ebx + + stdcall StrDupMem, "FPS: " + mov edx, eax + + cmp [fps], 0 + je @f + + stdcall NumToStr, [fps], ntsDec or ntsUnsigned + stdcall StrCat, edx, eax + stdcall StrDel, eax + +@@: + push edx + stdcall StrPtr, edx + stdcall DrawString, esi, eax, [eax+string.len], 40, edi, [Font], $ff000000 + stdcall StrDel ; from the stack + + add edi, [FontHeight] + + stdcall StrDupMem, 'Min: ' + mov edx, eax + + cmp [fps], 0 + je @f + + stdcall NumToStr, [fpsmin], ntsDec or ntsUnsigned + stdcall StrCat, edx, eax + stdcall StrDel, eax + +@@: + push edx + stdcall StrPtr, edx + stdcall DrawString, esi, eax, [eax+string.len], 40, edi, [Font], $ff000000 + stdcall StrDel ; from the stack + + add edi, [FontHeight] + + stdcall StrDupMem, 'Max: ' + mov edx, eax + + cmp [fps], 0 + je @f + + stdcall NumToStr, [fpsmax], ntsDec or ntsUnsigned + stdcall StrCat, edx, eax + stdcall StrDel, eax + +@@: + push edx + stdcall StrPtr, edx + stdcall DrawString, esi, eax, [eax+string.len], 40, edi, [Font], $ff000000 + stdcall StrDel ; from the stack + + + popad + + mov eax, [incX] + mov ecx, [ebx+TImage.wrapW] + sub ecx, eax + test eax, eax + jz .x_ok + jns .ix_ok + neg eax + xor ecx, ecx +.ix_ok: + stdcall BlendImageTileWrap, ebx, ecx, 0, eax, [ebx+TImage.wrapH], edi + +.x_ok: + mov eax, [incY] + mov ecx, [ebx+TImage.wrapH] + sub ecx, eax + test eax, eax + jz .y_ok + jns .iy_ok + neg eax + xor ecx, ecx +.iy_ok: + stdcall BlendImageTileWrap, ebx, 0, ecx, [ebx+TImage.wrapW], eax, edi +.y_ok: + + stdcall UnlockImg, edi + stdcall UnlockImg, ebx + + stdcall _RefreshWindowRect, [esi+TWindow.handle], 0, 0,[esi+TWindow._width], [esi+TWindow._height] + stdcall Randomize + +.finish: + popad + return +endp + + + + + +uglobal + incX dd ? + incY dd ? + dist dd ? +endg + +rndMaxStep = 1 +rndStepMul = 0 + +rndMaxCnt = 100 +rndMinCnt = 5 + +proc Randomize +.random dd ? +begin + dec [dist] + jns .finish + + stdcall GetRandomBytes, 12 + mov esi, eax + + mov ecx, rndMaxCnt - rndMinCnt + + mov eax, [esi] + xor edx, edx + div ecx + + add edx, rndMinCnt + mov [dist], edx + + mov ecx, 2*rndMaxStep+1 + + mov eax, [esi+4] + xor edx, edx + div ecx + sub edx, rndMaxStep + shl edx, rndStepMul + mov [incX], edx + + mov eax, [esi+8] + xor edx, edx + div ecx + sub edx, rndMaxStep + shl edx, rndStepMul + mov [incY], edx + + or edx, [incX] + jnz @f + mov [dist], edx +@@: + stdcall FreeMem, esi + +.finish: +; mov [incX], 1 +; mov [incY], 1 + return +endp ADDED freshlib/test_code0/TestGraphics.fpr Index: freshlib/test_code0/TestGraphics.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestGraphics.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestGrid.fpr Index: freshlib/test_code0/TestGrid.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestGrid.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestGrids.asm Index: freshlib/test_code0/TestGrids.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGrids.asm @@ -0,0 +1,196 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TGrid test application. +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 1 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors = 0 + options.DebugMode.ComputeFPS = 0 + options.DebugMode.ShowFPS = 0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 1 + +ThemeGUI equ flat_gui +;ThemeGUI equ win_gui + +include "%lib%/freshlib.asm" + + +object TTestGrid, TGrid + method .DrawCell, .canvas, .ptrRect, .Col, .Row + method .Create, .Parent +endobj + +iglobal + +tplMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + width = 640, height = 496, \ + SplitGrid = mainSplit + + ObjTemplate tfChild or tfEnd, TTestGrid, TestGrid, \ + Flags = gfResizeColumns or gfResizeRows or gfGridLines or gfGridLinesFixed or gfRowFocus, \ + Visible = TRUE, SplitCell = mainSplit.cellGrid + + SplitStart mainSplit + Cell cellGrid + SplitEnd + +endg + + +start: + InitializeAll + + create [pApplication], TApplication + call GUI.Init + + stdcall CreateFromTemplate, tplMainForm, 0 + + set [pApplication], TApplication:MainWindow, frmMain + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnDestroy, .self +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + + +proc TestGetString, .Col, .Row +begin + stdcall NumToStr, [.Row], ntsDec or ntsUnsigned + mov ecx, eax + + stdcall NumToStr, [.Col], ntsDec or ntsUnsigned + stdcall StrCharCat, eax, ', ' + stdcall StrCat, eax, ecx + + stdcall StrDel, ecx + return +endp + + + + +;----------------------------------------------------------------------- +; TGrid example event handlers. +; +;----------------------------------------------------------------------- + +method TTestGrid.Create ; .Parent +begin + inherited [.Parent] + pushad + + mov esi, [.self] + exec esi, TTestGrid:SetCounts, 16, 160 + + mov [esi+TTestGrid.FixedCols], 1 + mov [esi+TTestGrid.FixedRows], 1 + + popad + return +endp + + +;----------------------------------------------------------------------- +; Simple example handler for TGrid.OnDrawItem +; It uses TGrid.OnGetString to obtain a string handler. +; After printing, the string will be deleted. +;----------------------------------------------------------------------- +method TTestGrid.DrawCell ;, .canvas, .ptrRect, .Col, .Row +.color dd ? +.offsy dd ? +.x dd ? +.y dd ? +.sel RECT +begin + pushad + + mov esi, [.self] + + mov ecx, cellFixed + mov ebx, [.Col] + mov edx, [.Row] + cmp ebx, [esi+TListView.FixedCols] + jl .status_ok + cmp edx, [esi+TListView.FixedRows] + jl .status_ok + + cmp ebx, [esi+TListView._focused.x] + jne .is_selected + cmp edx, [esi+TListView._focused.y] + jne .is_selected + + mov ecx, cellFocused + jmp .status_ok + +.is_selected: + lea ecx, [esi+TListView.selection] + lea eax, [.sel] + stdcall RectCopy, eax, ecx + stdcall RectSort, eax + inc [eax+RECT.right] + inc [eax+RECT.bottom] + + mov ecx, cellSelected + stdcall PointInRect, eax, ebx, edx + jc .status_ok + + mov ecx, cellRegular + +.status_ok: + mov [.color], ecx + + stdcall TestGetString, ebx, edx + test eax, eax + jz .drawok + + mov ebx, eax + + mov edi, [.ptrRect] + + mov eax, [edi+RECT.right] + mov ecx, [edi+RECT.bottom] + sub eax, [edi+RECT.left] + sub ecx, [edi+RECT.top] + + mov edx, [.color] + stdcall DrawTextBox, [.canvas], ebx, [edi+RECT.left], [edi+RECT.top], eax, ecx, 0, dtfAlignCenter or dtfAlignMiddle or dtfSingleLine, [GUI.DefaultFont], [GUI.clGridCellTxt+4*edx] + stdcall StrDel, ebx + +.drawok: + popad + return +endp ADDED freshlib/test_code0/TestGround.asm Index: freshlib/test_code0/TestGround.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGround.asm @@ -0,0 +1,106 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Very simple test application for FreshLib. +; The content may change arbitrary. +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +__TestGround: + +; Global data... +iglobal + +__TestData: + +frmMainForm: + if used frmMainForm + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 300, \ + y = 250, \ + width = 360, \ + height = 240, \ + Visible = FALSE,\ + Caption = 'FreshLib minimal application test.' + + ObjTemplate tfChild or tfEnd, TButton, btnOpenModal, \ + x = 50, \ + y = 50, \ + width = 120, \ + height = 75, \ + Visible = TRUE, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfWordWrap , \ + Caption = 'Click to check your assembly skills.', \ + OnClick = OpenModalForm + end if + +__TestDataSize = $ - __TestData +endg + + +; Prepares the demo + +proc PrepareDemo +begin + + stdcall CreateFromTemplate, frmMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + set [frmMain], TWindow:Visible, TRUE + + return +endp + + + +proc OpenModalForm, .self, .button +begin + push ebx + + stdcall ShowMessage, [frmMain], smiQuestion, \ + 'One question test:', \ + 'Are you agree, that FlatAssembler is the best assembler world-wide?', \ + smbYes or smbNo or smbMaybe ; or smbAbort or smbRetry or smbIgnore or smbYes or smbNo or smbHelp + + mov esi, .msgYes + mov ecx, smiInformation + cmp eax, mrYes + je .finish + + mov esi, .msgNo + mov ecx, smiError + cmp eax, mrNo + je .finish + + mov esi, .msgMaybe + mov ecx, smiQuestion + cmp eax, mrMaybe + je .finish + + mov esi, .msgRefuse + mov ecx, smiWarning +.finish: + stdcall ShowMessage, [frmMain], ecx, 'Test results', esi, smbOK + + pop ebx + return + +OpenModalForm.msgYes text "You really understand the spirit of the assembly!", 13, "Congratulations!" +OpenModalForm.msgNo text "So, go write some C# and don't mess with assembly. It is not for you." +OpenModalForm.msgMaybe text "You should forget about your doubts and reject these HLL temptations, or your soul will be lost forever! Go, write some assembly and feel the power!" +OpenModalForm.msgRefuse text "It is wrong to avoid to answer, only because you are not sure..." + +endp + + + + + + +DispSize 'Test ground dummy code:', ($-__TestGround)+__TestDataSize ADDED freshlib/test_code0/TestGroundComplex.asm Index: freshlib/test_code0/TestGroundComplex.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundComplex.asm @@ -0,0 +1,526 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Complex test application for FreshLib the content may change arbitrary. +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +__TestGround: + +iglobal + +__TestData: +; This is a form template. +; It will be created by the visual editor. +; This template engine can contains any count of properties for every +; component of the template. Also it can contains non visual components +; such as action lists, image lists, etc. + +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 656, \ + height = 496, \ + Visible = FALSE, \ + OnDestroy = FormOnDestroy, \ + Caption = 'Fresh portable Win32/Linux application test.' + + ObjTemplate tfChild, TButton, btnChild1, \ + x = 48, \ + y = 48, \ + width = 100, \ + height = 60, \ + TextAlign = dtfAlignLeft or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Button1', \ + Visible = TRUE, \ + OnClick = Button1Click + + ObjTemplate tfChild, TButton, btnChild3, \ + x = 48, \ + y = 112, \ + width = 100, \ + height = 48, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfWordWrap,\ + Caption = 'Stop/Start timer1', \ + Visible = TRUE, \ + OnClick = Button3Click + + ObjTemplate tfChild, TButton, btnChild4, \ + x = 48, \ + y = 162, \ + width = 100, \ + height = 48, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfWordWrap,\ + Caption = 'Stop/Start timer2', \ + Visible = TRUE, \ + OnClick = Button4Click + + ObjTemplate tfChild, TEdit, editChild1, \ + x = 48, \ + y = 8, \ + width = 294, \ + height = 24, \ + Visible = TRUE, \ + Text = utf8_string + + ObjTemplate tfChild, TProgress, Progress1, \ + x = 48, y = 262, \ + width = 314, height = 21, \ + Max = 1000, Pos = 350, \ + Visible = TRUE + + ObjTemplate tfChild or tfEnd, TButton, btnChild2, \ + x = 160, \ + y = 48, \ + width = 202, \ + height = 202, \ + TextAlign = dtfAlignJustify or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = utf8_long, \ + Visible = TRUE, \ + OnClick = Button2Click + + +include "UTF8_examples.asm" + + + cPngIcon file '_test_images/ball.png' + sizeof.cPngIcon = $ - cPngIcon + + +; example of menu structure - it is typical File menu. +; It should be created with CreateFromTemplate procedure. +; If can be child of some form as well and then it should +; appears as a main menu in the form. + +;menuFile: +; ObjTemplate tfParent or tfEnd, Menu, .PopupMenu1, \ +; caption, 'File' +; ObjTemplate tfChild, MenuItem, .menuItemNew, \ +; kind, mikCommand, \ +; pAction, FileActions.actFileNew +; ObjTemplate tfChild, MenuItem, .menuItemOpen, \ +; kind, mikCommand, \ +; pAction, FileActions.actFileOpen +; ObjTemplate tfChild or tfParent, Menu, .menuReopen, \ +; caption, 'Reopen' +; +; ObjTemplate tfChild, MenuItem, .menuItemCleanup, \ +; kind, mikCommand, \ +; pAction, FileActions.actReopenMenuCleanup +; +; ObjTemplate tfChild or tfEnd, MenuItem, .menuSep1, \ +; kind, mikSeparator +; ObjTemplate tfChild, MenuItem, .menuSep2, \ +; kind, mikSeparator +; ObjTemplate tfChild, MenuItem, .menuItemSave, \ +; kind, mikCommand, \ +; pAction, FileActions.actSave +; ObjTemplate tfChild, MenuItem, .menuItemSaveAs, \ +; kind, mikCommand, \ +; pAction, FileActions.actSaveAs +; ObjTemplate tfChild, MenuItem, .menuItemSaveAll, \ +; kind, mikCommand, \ +; pAction, FileActions.actSaveAll +; ObjTemplate tfChild, MenuItem, .separator2, \ +; kind, mikSeparator +; ObjTemplate tfChild or tfEnd, MenuItem, .menuItemExit, \ +; kind, mikCommand, \ +; pAction, FileActions.actExit +; +; just for test + +;ActionList FileActions, \ +; .actFileNew, '&New', 'Creates new file', 0, , NONE, NONE, \ +; .actFileOpen, '&Open', 'Open file from disk', 0, , NONE, NONE, \ +; .actReopenMenuCleanup, 'Cleanup list', 'Cleans the reopen list.', 0, NONE, NONE, NONE, \ +; .actSave, '&Save', 'Save current file', 0, , NONE, NONE, \ +; .actSaveAs, 'Sa&ve as', 'Save current file with new name.', 0, , NONE, NONE, \ +; .actSaveAll, 'Save &All', 'Save all changed files.', 0, , NONE, NONE, \ +; .actExit, 'E&xit', 'Exit application', 0, , NONE, NONE + + +__TestDataSize = $ - __TestData + +endg + + + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnDestroy, .self +begin + pushad + + DebugMsg "MainForm destroy event handler." + +; mov eax, [test_timer1] +; or [eax+TTimer.flags], tmfSyncDestroy + +; mov eax, [test_timer2] +; or [eax+TTimer.flags], tmfSyncDestroy + + stdcall TimerDestroy, [test_timer1] + stdcall TimerDestroy, [test_timer2] + + DebugMsg "MainForm end of destroy." + + mov [frmMain], 0 + + popad + return +endp + + +proc Button4Click as TButton.OnClick +begin + pushad + + mov ecx, [test_timer2] + xor [ecx+TTimer.flags], tmfRunning + + set [Progress1], TProgress:Pos, 0 + + DebugMsg 'Button4 clicked' + popad + return +endp + + + +proc Button3Click as TButton.OnClick +begin + pushad + + mov eax, [test_timer1] + xor [eax+TTimer.flags], tmfRunning + + DebugMsg 'Button3 clicked' + popad + return + + mov ebx, [frmMain] + + get eax, ebx, TWindow:x + push eax + get eax, ebx, TWindow:y + push eax + + set [.self], TWindow:Caption, [_dual_caption+4*eax] + +iglobal + _dual_caption dd _cCaption1, _cCaption2 + + _cCaption1 text 'Remove the title' + _cCaption2 text 'Restore the title' +endg + +; The old coordinates must be restored, because the window manager moves the window +; when restoring the title bar. + + pop eax + set ebx, TWindow:y, eax + + pop eax + set ebx, TWindow:y, eax + + popad + return +endp + + + + +proc Button1Click as TButton.OnClick +begin + pushad + + DebugMsg 'Button1 clicked' + + get eax, [btnChild2], TButton:TextAlign + mov ecx, eax + and ecx, not $03 + inc eax + and eax, 3 + or eax, ecx + + set [btnChild2], TButton:TextAlign, eax + + ; stdcall Get, [btnChild1], TButton.Caption + ; stdcall Set, [editChild1], TEdit.Text, eax + ; stdcall StrDel, eax + +iglobal + cImgFile file '_test_images/allpng/png7.png' + sizeof.cImgFile = $ - cImgFile +endg + + stdcall CreateImagePNG, cImgFile, sizeof.cImgFile + mov esi, eax + + OutputValue "Image created: ", esi, 16, 8 + OutputValue "width: ", [esi+TImage.width], 10, -1 + OutputValue "height: ", [esi+TImage.height], 10, -1 + + get edi, [frmMain], TWindow:Canvas + + stdcall BlendImage, edi, 394, 0, esi, 0, 0, [esi+TImage.width], [esi+TImage.height] + + exec [frmMain], TWindow:RectChangedXY, 394, 0, 64, 64, FALSE + + stdcall DestroyImage, esi + + DebugMsg "Image has been destroyed." + + popad + return +endp + + + +proc Button2Click as TButton.OnClick +begin + DebugMsg 'Button2 clicked' + + get eax, [btnChild1], TButton:IconPosition + inc eax + and eax, 3 + set [btnChild1], TButton:IconPosition, eax + + mov eax, [_text_align_for_icon+4*eax] + set [btnChild1], TButton:TextAlign, eax + +iglobal + _text_align_for_icon dd dtfAlignLeft or dtfAlignMiddle + dd dtfAlignRight or dtfAlignMiddle + dd dtfAlignCenter or dtfAlignTop + dd dtfAlignCenter or dtfAlignBottom +endg + get eax, [btnChild2], TButton:Caption + set [editChild1], TEdit:Text, eax + stdcall StrDel, eax + + return +endp + + + +uglobal + test_timer1 dd ? + test_timer2 dd ? +endg + + + +proc procTestTimer1, .ptrTimer +begin + get eax, [btnChild1], TButton:IconPosition + and eax, 3 + mov eax, [__align4+4*eax] + set [btnChild1], TButton:IconPosition, eax + + mov eax, [_text_align_for_icon+4*eax] + set [btnChild1], TButton:TextAlign, eax + return +endp + +iglobal + __align4 dd AlignTop, AlignBottom, AlignRight, AlignLeft + +endg + +uglobal + Flag dd ? + .Y dd ? + .X dd ? + .incX dd ? + .incY dd ? +endg + + + + +proc procTestTimer2, .ptrTimer +.width dd ? +.height dd ? +.win dd ? +begin + + cmp [Progress1], 0 + je .progress_ok + + get ecx, [Progress1], TProgress:Pos + get eax, [Progress1], TProgress:Max + + add ecx, 10 + cmp ecx, eax + jle @f + xor ecx, ecx +@@: + set [Progress1], TProgress:Pos, ecx + +; animation + +.progress_ok: + + mov eax, [frmMain] + mov [.win], eax + + + get ebx, [.win], TWindow:Canvas + test ebx, ebx + jz .exit + + stdcall LockImg, ebx + jc .error + + get eax, [.win], TWindow:width + sub eax, 24 + mov [.width], eax + + get eax, [.win], TWindow:height + sub eax, 24 + mov [.height], eax + + stdcall DrawSolidRect, ebx, [Flag.X], [Flag.Y], 24, 24, [GUI.clDialogBk] ;$ffff0000 ;c0c0c0 + + exec [.win], TWindow:RectChangedXY, [Flag.X], [Flag.Y], 24, 24, FALSE + + mov eax, [Flag.X] + add eax, [Flag.incX] + js .backx + cmp eax, [.width] + jg .backx + + mov [Flag.X], eax + jmp .xok + +.backx: + neg [Flag.incX] + +.xok: + mov eax, [Flag.Y] + add eax, [Flag.incY] + js .backy + cmp eax, [.height] + jg .backy + + mov [Flag.Y], eax + jmp .yok + +.backy: + neg [Flag.incY] +.yok: + + stdcall BlendImage, ebx, [Flag.X], [Flag.Y], [Flag], 0, 0, 24, 24 + exec [.win], TWindow:RectChangedXY, [Flag.X], [Flag.Y], 24, 24, FALSE + + stdcall UnlockImg, ebx + +.exit: + return + +.error: +; DebugMsg "Error get canvas." + jmp .exit + + +endp + + + + + + +proc PrepareDemo +begin +; stdcall CaretAttach, 0 + + stdcall CreateFromTemplate, TemplateMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + + stdcall CreateImagePNG, cPngIcon, sizeof.cPngIcon + + set [btnChild1], TButton:Icon, eax + set [btnChild1], TButton:IconPosition, AlignLeft + +; the timers must be created before application start. +; I don't know why. +; Maybe it is safe to create timers in some event handlers... should be checked. +; + stdcall CreateImagePNG, cPngIcon, sizeof.cPngIcon + mov [Flag], eax + + mov [Flag.X], 120 + mov [Flag.Y], 0 + mov [Flag.incX], 1 + mov [Flag.incY], 1 + + + stdcall TimerCreate + mov [test_timer1], eax + mov [eax+TTimer.interval], 500 + mov [eax+TTimer.Callback], procTestTimer1 + mov [eax+TTimer.flags], tmfCallProc + + stdcall TimerCreate + mov [test_timer2], eax + mov [eax+TTimer.interval], 10 + mov [eax+TTimer.value], 0 + mov [eax+TTimer.Callback], procTestTimer2 + mov [eax+TTimer.flags], tmfCallProc + + + mov eax, [test_timer1] + or [eax+TTimer.flags], tmfRunning + mov eax, [test_timer2] + or [eax+TTimer.flags], tmfRunning + + + set [frmMain], TWindow:Visible, TRUE +; stdcall ThreadCreate, TestThread, 0 +; stdcall ThreadCreate, TestThread2, 0 + + return +endp + + + +proc TestThread, .arg +begin + stdcall Sleep, 1000 + +.loop: + stdcall procTestTimer1, 0 + stdcall Sleep, 250 + jmp .loop +endp + + + +proc TestThread2, .arg +.width dd ? +.height dd ? +begin + + stdcall Sleep, 1000 + ; int3 +.loop: + stdcall procTestTimer2, 0 + jmp .loop + +endp + + + + +DispSize 'Test ground dummy code:', ($-__TestGround)+__TestDataSize ADDED freshlib/test_code0/TestGroundConfig.asm Index: freshlib/test_code0/TestGroundConfig.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundConfig.asm @@ -0,0 +1,568 @@ +include "%lib%/FreshEdit/FreshEdit.asm" + +iglobal +frmMainForm: +; The form + ObjTemplate tfParent or tfEnd, Form, frmMain, x, 100, y, 50, width, 640, height, 340, Visible, TRUE, Caption, 'FreshLib uConfig files editor.' + + ; log window + ObjTemplate tfChild, FreshEdit, editLog, x, 330, y, 0, width, 240, height, 200, Visible, TRUE, Align, waClient, _fReadOnly, froReadOnlyNoCaret + + ObjTemplate tfParent or tfEnd, Form, frmToolPanel, borderKind, borderNone, Align, waLeft,x ,0, y, 0, width, 200, height, 340, Visible, TRUE + + ; file buttons + ObjTemplate tfChild, Button, btnNewDB, x, 4, y, 2, width, 64, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'New', OnClick, procOnNewDB + ObjTemplate tfChild, Button, btnOpenDB, x, 67, y, 2, width, 64, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Open', OnClick, procOnOpenDB + ObjTemplate tfChild, Button, btnSaveDB, x, 130, y, 2, width, 64, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Save', OnClick, procOnSaveDB + + ; record buttons + ObjTemplate tfChild, Button, btnReadRecord, x, 4, y, 194, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Read', OnClick, procOnRead + ObjTemplate tfChild, Button, btnWriteRecord, x, 69, y, 194, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Write', OnClick, procOnWrite + ObjTemplate tfChild, Button, btnDeleteRecord, x, 134, y, 194, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Delete', OnClick, procOnDelete + + ; type buttons + ObjTemplate tfChild, Label, lblDataType, x, 69, y, 224, width, 60, height, 60, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'cdtString' + ObjTemplate tfChild, Button, btnTypeString, x, 4, y, 224, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'String', OnClick, procOnType + ObjTemplate tfChild, Button, btnTypeInt, x, 4, y, 244, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Number', OnClick, procOnType + ObjTemplate tfChild, Button, btnTypeNull, x, 4, y, 264, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Null', OnClick, procOnType + + ; log buttons + ObjTemplate tfChild, Button, btnListTree, x, 134, y, 244, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'List >>>', OnClick, procOnListTree + ObjTemplate tfChild, Button, btnClearLog, x, 134, y, 264, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Clear >>>', OnClick, procOnClearLog + + ; edit boxes + ObjTemplate tfChild, Label, lblFilename, x, 4, y, 24, width, 100, height, 19, Visible, TRUE, TextAlign, dtfAlignLeft or dtfAlignBottom, Caption, 'File name:' + ObjTemplate tfChild, Edit, editFilename, x, 4, y, 44, width, 190, height, 19, Visible, TRUE, Text, '../phWeb.conf' + + ObjTemplate tfChild, Label, lblSignature, x, 4, y, 64, width, 100, height, 19, Visible, TRUE, TextAlign, dtfAlignLeft or dtfAlignBottom, Caption, 'Signature:' + ObjTemplate tfChild, Edit, editSignature, x, 4, y, 84, width, 190, height, 19, Visible, TRUE + + ObjTemplate tfChild, Label, lblKey, x, 4, y, 104, width, 100, height, 19, Visible, TRUE, TextAlign, dtfAlignLeft or dtfAlignBottom, Caption, 'Full key name:' + ObjTemplate tfChild, Edit, editKey, x, 4, y, 124, width, 190, height, 19, Visible, TRUE + + ObjTemplate tfChild, Label, lblValue, x, 4, y, 144, width, 100, height, 19, Visible, TRUE, TextAlign, dtfAlignLeft or dtfAlignBottom, Caption, 'Value:' + ObjTemplate tfChild or tfEnd, Edit, editValue, x, 4, y, 164, width, 190, height, 19, Visible, TRUE +endg + + + +proc PrepareDemo +begin + stdcall CreateFromTemplate, frmMainForm, 0 + mov ecx, [pApplication] + mov [ecx+TApplication.MainWindow], frmMain + execute [frmMain], TForm.AlignChildren + return +endp + + + +uglobal + DataBase dd ? +endg + +iglobal + DataType dd cdtString +endg + + +proc procOnType, .self, .button +begin + mov eax, [.self] + cmp eax, [btnTypeString] + je .string + + cmp eax, [btnTypeInt] + je .int + + cmp eax, [btnTypeNull] + je .null + + int3 + +.string: +; mov [DataType], cdtString +; mov eax, .txtString +; jmp .finish +; +.int: +; mov [DataType], cdtInteger +; mov eax, .txtInteger +; jmp .finish + +.null: +; mov [DataType], cdtNULL +; mov eax, .txtNull + +.finish: + stdcall Set, [lblDataType], TLabel.Caption, eax + execute [lblDataType], TLabel.Refresh + return + +.txtString db 'cdtString',0 +.txtInteger db 'cdtInteger', 0 +.txtNull db 'cdtNULL', 0 +endp + + +proc procOnClearLog, .self, .button +begin + execute [editLog], TFreshEdit.Clear + return +endp + + +proc procOnListTree, .self, .button +.prolog dd ? +begin + push esi + + mov esi, [DataBase] + test esi, esi + jz .finish + + execute [editLog], TFreshEdit.Clear + + stdcall StrNew +; stdcall StrCharCat, eax, $9c94e2 +; stdcall StrCharCat, eax, $8094e2 + stdcall __DoListTree, esi, eax + + execute [editLog], TFreshEdit.Refresh + stdcall TFreshEdit.__UpdateScrollBars, [editLog] + +.finish: + pop esi + return +endp + + +proc __DoInsChar, .char +begin + pushad + execute [editLog], TFreshEdit.InsertChar, [.char] + popad + return +endp + + +proc __DoInsString, .str +begin + pushad + execute [editLog], TFreshEdit.InsertString, [.str] + popad + return +endp + + +proc __DoListTree, .array, .prolog +begin + pushad + + mov esi, [.array] + mov ecx, [esi+TArray.count] + lea esi, [esi+TArray.array] + +.main_loop: + test ecx, ecx + jz .finish + + stdcall __DoInsString, [.prolog] + + mov eax, $9c94e2 + cmp ecx, 1 + jne @f + mov eax, $9494e2 +@@: + stdcall __DoInsChar, eax + stdcall __DoInsChar, $8094e2 + + mov ebx, [esi+TConfigRecord.KeyName] + +.keynameloop: + movzx edx, bl + stdcall __DoInsChar, edx + shr ebx, 8 + jnz .keynameloop + + cmp [esi+TConfigRecord.Type], cdtConfig + je .next_row + + stdcall __DoInsChar, '=' + + cmp [esi+TConfigRecord.Type], cdtString + je .handle_string + + cmp [esi+TConfigRecord.Type], cdtInteger + je .handle_integer + + cmp [esi+TConfigRecord.Type], cdtNULL + je .handle_null + + cmp [esi+TConfigRecord.Type], cdtBlob + jne .next_row +; handle blobs + stdcall __DoInsString, cBlobValue + jmp .next_row + +cBlobValue text 'BLOB()' +cNULLValue text 'NULL' + +.handle_null: + stdcall __DoInsString, cNULLValue + jmp .next_row + +.handle_integer: + stdcall NumToStr, [esi+TConfigRecord.Data], ntsHex or ntsUnsigned + push eax + stdcall __DoInsChar, '$' + stdcall __DoInsString, eax + stdcall StrDel ; from the stack + jmp .next_row + +.handle_string: + stdcall __DoInsChar, '"' + stdcall __DoInsString, [esi+TConfigRecord.Data] + stdcall __DoInsChar, '"' + +.next_row: + stdcall __DoInsChar, $0d + + cmp [esi+TConfigRecord.Type], cdtConfig + jne .next + + stdcall StrLen, [.prolog] + push eax + + mov eax, $8294e2 ;'|' + cmp ecx, 1 + jne @f + mov eax, ' ' +@@: + stdcall StrCharCat, [.prolog], eax + stdcall StrCharCat, [.prolog], ' ' + + stdcall __DoListTree, [esi+TConfigRecord.Data], [.prolog] + pop edx + + stdcall StrPtr, [.prolog] + mov [eax+string.len], edx + mov dword [eax+edx], 0 + +.next: + add esi, sizeof.TConfigRecord + dec ecx + jmp .main_loop + +.finish: + mov eax, [editLog] + push [eax+TFreshEdit._xCaret] [eax+TFreshEdit._yCaret] + pop [eax+TFreshEdit._ySelection] [eax+TFreshEdit._xSelection] + popad + return +endp + + + +proc UpdateEdits, .config +.str rd 2 +begin + push esi + mov esi, [.config] + + mov eax, [esi+TArray.lparam] + mov [.str], eax + mov [.str+4], 0 + lea eax, [.str] + stdcall Set, [editSignature], TEdit.Text, eax + + pop esi + return +endp + + +proc procOnNewDB, .self, .button +begin + stdcall FreeConfigDB, [DataBase] + stdcall LoadConfigDB, 0, 'TEST' + mov [DataBase], eax + + stdcall UpdateEdits, eax + + stdcall LogMessage, cNewDatabase + return +endp + +cNewDatabase text 'New database created.', 13 + +proc procOnOpenDB, .self, .button +begin + stdcall Get, [editFilename], TEdit.Text + push eax + stdcall StrPtr, eax + stdcall LoadBinaryFile, eax + jc .error_file + + mov esi, eax + stdcall StrDel ; from the stack + + stdcall FreeConfigDB, [DataBase] + mov [DataBase], 0 + stdcall LoadConfigDB, esi, -1 + jnc .load_ok + + stdcall LogMessage, cErrorLoad + + stdcall FreeMem, esi + return + +.load_ok: + mov [DataBase], eax + stdcall FreeMem, esi + stdcall UpdateEdits, [DataBase] + stdcall LogMessage, cLoadedOK + return + +.error_file: + stdcall LogMessage, cErrorLoadFile + return +endp + +cErrorLoadFile text 'Error loading config database.', 13 +cErrorLoad text 'Error parsing config database.', 13 +cLoadedOK text 'Database loaded successfully.', 13 + +proc LogMessage, .string +begin + push eax + execute [editLog], TFreshEdit.InsertString, [.string] + mov eax, [editLog] + push [eax+TFreshEdit._xCaret] [eax+TFreshEdit._yCaret] + pop [eax+TFreshEdit._ySelection] [eax+TFreshEdit._xSelection] + execute [editLog], TFreshEdit.Refresh + stdcall TFreshEdit.__UpdateScrollBars, [editLog] ; not this + pop eax + return +endp + + +proc procOnSaveDB, .self, .button +.signature dd ? +begin + stdcall Get, [editSignature], TEdit.Text + push eax + stdcall StrPtr, eax + mov eax, [eax] + mov [.signature], eax + stdcall StrDel ; from the stack + + stdcall Get, [editFilename], TEdit.Text + mov ecx, eax + stdcall StrPtr, ecx + mov edx, eax + + stdcall SaveConfigFile, [DataBase], [.signature] + mov esi, eax + lea eax, [eax+TArray.array] + + mov ebx, [esi+TArray.count] + shl ebx, 2 + stdcall SaveBinaryFile, edx, eax, ebx + + stdcall StrDel, ecx + stdcall FreeMem, esi + +.finish: + return +endp + + +; returns edx - array to the directory. +; eax - the key name. + +proc __DecodeDirectory, .hstring +begin + push ebx ecx esi + + stdcall CreateArray, 4 + mov edx, eax + + stdcall StrPtr, [.hstring] + mov esi, eax + +.main_loop: + mov ecx, 4 + xor ebx, ebx + +.byteloop: + lodsb + + cmp al, '|' + je .end_key + cmp al, 0 + je .end_key + + ror ebx, 8 + mov bl, al + + loop .byteloop + +.end_key: + inc ecx + shl ecx, 3 + ror ebx, cl + + test al, al + jz .finish + + cmp al, '|' + je .nameok + +.search: + lodsb + test al, al + jz .finish + cmp al, '|' + jne .search + +.nameok: + stdcall AddArrayItems, edx, 1 + mov [eax], ebx + jmp .main_loop + +.finish: + stdcall AddArrayItems, edx, 1 + mov dword [eax], 0 + mov eax, ebx + + pop esi ecx ebx + return +endp + + + + + +proc procOnWrite, .self, .button +begin + push eax ebx ecx edx + + cmp [DataBase], 0 + je .finish + +; value + stdcall Get, [editValue], TEdit.Text + mov ebx, eax + + cmp [DataType], cdtNULL + je .null_handling + + cmp [DataType], cdtInteger + je .int_handling + + cmp [DataType], cdtString + jne .finish + +; string handling. + xor ecx, ecx + jmp .continue + +.int_handling: + stdcall StrToNumEx, ebx + stdcall StrDel, ebx + mov ebx, eax + mov ecx, 4 + jmp .continue + +.null_handling: + stdcall StrDel, ebx + xor ebx, ebx + xor ecx, ecx + +; key +.continue: + stdcall Get, [editKey], TEdit.Text + push eax + + stdcall __DecodeDirectory, eax + stdcall StrDel ; from the stack + + push edx + lea edx, [edx+TArray.array] + stdcall SetConfigParam, DataBase, edx, eax, [DataType], ebx, ecx + stdcall FreeMem ; from the stack + + cmp [DataType], cdtString + jne @f + stdcall StrDel, ebx +@@: + stdcall Set, [editValue], TEdit.Text, 0 + +.finish: + pop edx ecx ebx eax + return +endp + + +proc procOnRead, .self, .button +begin + push eax + cmp [DataBase], 0 + je .finish + +; key + stdcall Get, [editKey], TEdit.Text + push eax + stdcall __DecodeDirectory, eax + stdcall StrDel ; from the stack + + push edx + lea edx, [edx+TArray.array] + stdcall GetConfigParam.AsString, [DataBase], edx, eax + stdcall FreeMem ; from the stack + + test eax, eax + jz .not_found + + push eax + stdcall Set, [editValue], TEdit.Text, eax + stdcall StrDel ; from the stack. + +.finish: + pop eax + return + +.not_found: + stdcall Set, [editValue], TEdit.Text, cNotAvailable + jmp .finish +endp + +cNotAvailable text 'Not available' + + +proc procOnDelete, .self, .button +begin + push eax ebx ecx edx + + cmp [DataBase], 0 + je .finish + +; key + stdcall Get, [editKey], TEdit.Text + push eax + + stdcall __DecodeDirectory, eax + stdcall StrDel ; from the stack + + push edx + lea edx, [edx+TArray.array] + stdcall DelCongigParam, DataBase, edx, eax + stdcall FreeMem ; from the stack + +.finish: + pop edx ecx ebx eax + return +endp + + + ADDED freshlib/test_code0/TestGroundDirFunctions.asm Index: freshlib/test_code0/TestGroundDirFunctions.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundDirFunctions.asm @@ -0,0 +1,146 @@ +include "%lib%/FreshEdit/FreshEdit.asm" + + +iglobal +frmMainForm: +; The form + ObjTemplate tfParent or tfEnd, Form, frmMain, x, 100, y, 50, width, 640, height, 340, Visible, TRUE, Caption, 'FreshLib directory functions test.' + + ; log window + ObjTemplate tfChild, FreshEdit, editLog, x, 330, y, 0, width, 240, height, 200, Visible, TRUE, Align, waClient, _fReadOnly, froReadOnlyWithCaret + + ObjTemplate tfParent or tfEnd, Form, frmToolPanel, borderKind, borderNone, Align, waLeft,x ,0, y, 0, width, 200, height, 340, Visible, TRUE + + ; file buttons + ObjTemplate tfChild, Button, btnReadFile, x, 4, y, 2, width, 64, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'ReadLine', OnClick, procOnReadFile + ObjTemplate tfChild, Button, btnReadDir, x, 67, y, 2, width, 64, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'ReadDir', OnClick, procOnReadDir + + ; log buttons + ObjTemplate tfChild, Button, btnClearLog, x, 134, y, 264, width, 60, height, 19, Visible, TRUE, TextAlign, dtfAlignCenter or dtfAlignMiddle, Caption, 'Clear >>>', OnClick, procOnClearLog + + ; edit boxes + ObjTemplate tfChild, Label, lblFilename, x, 4, y, 24, width, 100, height, 19, Visible, TRUE, TextAlign, dtfAlignLeft or dtfAlignBottom, Caption, 'File name:' + ObjTemplate tfChild or tfEnd, Edit, editFilename, x, 4, y, 44, width, 190, height, 19, Visible, TRUE, Text, '_doc' + +endg + + + +proc PrepareDemo +begin + + stdcall CreateFromTemplate, frmMainForm, 0 + mov ecx, [pApplication] + mov [ecx+TApplication.MainWindow], frmMain + execute [frmMain], TForm.AlignChildren + + return +endp + + + +proc procOnClearLog, .self, .button +begin + execute [editLog], TFreshEdit.Clear + return +endp + + + +proc procOnReadDir, .self, .button +begin + pushad + + stdcall Get, [editFilename], TEdit.Text + mov esi, eax + + stdcall DirectoryRead, eax + jc .error + + mov esi, eax + + stdcall SortDirArray, esi, fdsByType or fdsByName ;or fdsDescending + + + mov ecx, [esi+TArray.count] + xor ebx, ebx + +.list_loop: + stdcall LogMessage, [esi+TArray.array+8*ebx+TDirItem.hFilename] + stdcall LogMessage, cNewLine + inc ebx + loop .list_loop + + stdcall FreeDirArray, esi + popad + return + +.error: + stdcall LogMessage, cErrorRead + stdcall GetErrorString, eax + stdcall LogMessage, eax + stdcall FreeErrorString, eax + popad + return + +endp + +cNewLine text '',13 +cErrorRead text 'Error read directory: ' +cErrorFile text 'Error read file: ' + + +proc procOnReadFile, .self, .button +begin + pushad + + stdcall Get, [editFilename], TEdit.Text + mov esi, eax + + stdcall FileOpen, esi + jc .error + mov ebx, eax + +.loop: + stdcall FileReadLine, ebx + jc .error + test eax, eax + jz .end_of_file + + stdcall LogMessage, eax + stdcall StrDel, eax + stdcall LogMessage, cNewLine + jmp .loop + +.end_of_file: + stdcall FileClose, ebx + popad + return + +.error: + stdcall LogMessage, cErrorFile + stdcall GetErrorString, eax + stdcall LogMessage, eax + stdcall FreeErrorString, eax + stdcall LogMessage, cNewLine + popad + return + +endp + + + +proc LogMessage, .string +begin + pushad + execute [editLog], TFreshEdit.InsertString, [.string] + mov eax, [editLog] + push [eax+TFreshEdit._xCaret] [eax+TFreshEdit._yCaret] + pop [eax+TFreshEdit._ySelection] [eax+TFreshEdit._xSelection] + execute [editLog], TFreshEdit.Refresh + stdcall TFreshEdit.__UpdateScrollBars, [editLog] ; not this + popad + return +endp + + ADDED freshlib/test_code0/TestGroundFreshEdit.asm Index: freshlib/test_code0/TestGroundFreshEdit.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundFreshEdit.asm @@ -0,0 +1,424 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; | +; Description: Test program for TFreshEdit control. | +; | +; Target OS: All/Linux/Win32 - depending on current test needs. | +; | +; Dependencies: | +; | +; Notes: The main test program calls "PrepareDemo" procedure. | +;________________________________________________________________________________________| + +include "%lib%/FreshEdit/FreshEdit.asm" + +__TestGround: + +; Global data... +iglobal + +__TestData: + +frmMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x, 100, \ + y, 50, \ + width, 640, \ + height, 480, \ + borderKind, borderFull, \ + SplitGrid, MainSplitGrid, \ + Visible, TRUE, \ + Caption, 'FreshEdit test application.' + + ObjTemplate tfChild, TButton, btnOpen, \ + Visible, TRUE, \ + x, 112, y, 2, \ + width, 64, height, 21, \ + SplitCell, MainSplitGrid.cellOpen, \ + Caption, 'Open', \ + TextAlign, dtfAlignCenter or dtfAlignMiddle, \ + OnClick, OnOpenFile + + ObjTemplate tfChild, TButton, btnSave, \ + x, 180, y, 2, \ + width, 64, height, 21, \ + SplitCell, MainSplitGrid.cellSave, \ + Caption, 'Save', \ + TextAlign, dtfAlignCenter or dtfAlignMiddle, \ + OnClick, OnSaveFile, \ + Visible, TRUE + + ObjTemplate tfChild, TButton, btnNumbers, \ + x, 180, y, 2, \ + width, 21, height, 21, \ + SplitCell, MainSplitGrid.cellNumbers, \ + Caption, '#', \ + TextAlign, dtfAlignCenter or dtfAlignMiddle, \ + OnClick, OnNumbers, \ + Visible, TRUE + + ObjTemplate tfChild, TButton, btnZebra, \ + x, 180, y, 2, \ + width, 21, height, 21, \ + SplitCell, MainSplitGrid.cellZebra, \ + Caption, 'Z', \ + TextAlign, dtfAlignCenter or dtfAlignMiddle, \ + OnClick, OnZebra, \ + Visible, TRUE + + ObjTemplate tfChild, TButton, btnTheme, \ + x, 180, y, 2, \ + width, 21, height, 21, \ + SplitCell, MainSplitGrid.cellTheme, \ + Caption, 'T', \ + TextAlign, dtfAlignCenter or dtfAlignMiddle, \ + OnClick, OnTheme, \ + Visible, TRUE + + ObjTemplate tfChild, TEdit, FilenameEdit, \ + x, 2, y, 2, \ + width, 100, height, 21, \ + SplitCell, MainSplitGrid.cellFilename, \ + Visible, TRUE + + ObjTemplate tfEnd, TFreshEdit, Editor, \ + x, 8, y, 8, \ + width, 624, height, 464, \ + SplitCell, MainSplitGrid.cellEditor, \ + Visible, TRUE + + SplitStart MainSplitGrid + Split stVert or stJustGap or stOriginBR, 0, 20, 0, 0 + Cell cellEditor + Split stHoriz or stJustGap, 0, 64, 0, 0 + Cell cellOpen + Split stHoriz or stJustGap, 0, 64, 0, 0 + Cell cellSave + Split stHoriz or stJustGap, 0, 21, 0, 0 + Cell cellNumbers + Split stHoriz or stJustGap, 0, 21, 0, 0 + Cell cellZebra + Split stHoriz or stJustGap, 0, 21, 0, 0 + Cell cellTheme + Cell cellFilename + SplitEnd + + + + SampleText file 'unicode_test.txt' + dd 0 + +__TestDataSize = $ - __TestData +endg + + +uglobal + Timer1 dd ? +endg + +var FreshEditSetTheme = TFETheme.SetDefaultThemeWindows + + +proc OnTheme, .self, .mousebtn +begin + xor [FreshEditSetTheme], TFETheme.SetDefaultThemeWindows xor TFETheme.SetDefaultThemeClassic + stdcall [FreshEditSetTheme], FreshEditTheme + xor [SynTheme], fasm_colors_classic xor fasm_colors_windows + exec [Editor], TFreshEdit:Refresh + return +endp + + +proc OnZebra, .self, .mousebtn +begin + xor [FreshEditTheme.Options], eoStripedBackground + exec [Editor], TFreshEdit:Refresh + return +endp + + +proc OnNumbers, .self, .mousebtn +begin + xor [FreshEditTheme.Options], eoLineNumbers + exec [Editor], TFreshEdit:Refresh + return +endp + + +cErrorTitleOpen text "Error open file." +cErrorTitleSave text "Error save file." + +proc OnSaveFile, .self, .mousebtn +begin + pushad + + get eax, [FilenameEdit], TEdit:Text + push eax + stdcall StrPtr, eax + mov edi, eax + + get eax, [Editor], TFreshEdit:Text + jc .finish + + push eax + stdcall StrPtr, eax + + stdcall SaveBinaryFile, edi, eax, [eax+string.len] + jnc .end_save + + stdcall GetErrorString, eax + mov esi, eax + stdcall ShowMessage, [frmMain], smiError, cErrorTitleSave, esi, smbOK + stdcall FreeErrorString, esi + +.end_save: + stdcall StrDel ; from the stack +.finish: + stdcall StrDel ; from the stack + popad + return +endp + + +proc OnOpenFile, .self, .mousebtn +begin + pushad +; Load test file + + get eax, [FilenameEdit], TEdit:Text + push eax + + stdcall StrPtr, eax + stdcall LoadBinaryFile, eax + jnc .loaded + + stdcall GetErrorString, eax + mov esi, eax + stdcall ShowMessage, [frmMain], smiError, cErrorTitleOpen, esi, smbOK + stdcall FreeErrorString, esi + jmp .exit + +.loaded: + push eax + + set [Editor], TFreshEdit:Text, eax + stdcall FreeMem ; from the stack + +.exit: + stdcall StrDel ; from the stack + + mov eax, [Editor] + mov [eax+TFreshEdit._xCaret], 0 + mov [eax+TFreshEdit._yCaret], 0 + mov [eax+TFreshEdit._xSelection], 0 + mov [eax+TFreshEdit._ySelection], 0 + + stdcall ParseFolding, [eax+TFreshEdit._pLines] + + exec [Editor], TFreshEdit:Refresh + exec [Editor], TFreshEdit:Focus + popad + return +endp + + + +proc PrepareDemo +begin + stdcall CreateFromTemplate, frmMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + + set [Editor], TFreshEdit:SyntaxProc, SyntaxFASM + set [Editor], TFreshEdit:OnControlKey, procKeyPress + set [Editor], TFreshEdit:Text, SampleText + + mov esi, [Editor] +; test - set some flags on line 33 + mov eax, [esi+TFreshEdit._pLines] + or [eax+TArray.array+sizeof.TEditorLine*26+TEditorLine.flags], lfBreakpoint + +; test - set some flags on line 34 + mov eax, [esi+TFreshEdit._pLines] + or [eax+TArray.array+sizeof.TEditorLine*27+TEditorLine.flags], lfBreakpoint + mov [eax+TArray.array+sizeof.TEditorLine*27+TEditorLine.debugdata], $12345 + mov [eax+TArray.array+sizeof.TEditorLine*28+TEditorLine.debugdata], $12345 + mov [eax+TArray.array+sizeof.TEditorLine*29+TEditorLine.debugdata], $12345 + + stdcall ParseFolding, eax +.exit: + return +endp + + + +proc procKeyPress, .self, .keyevent +begin + mov ebx, [.keyevent] + + mov eax, [ebx+TKeyboardEvent.key] + + cmp eax, $03 ; ctrl+C + je .copy + cmp eax, $16 ; ctrl+V + je .paste + cmp eax, 12 ; ctrl+L + je .length_list + cmp eax, 18 ; ctrl+R + je .clipright + cmp eax, 19 ; ctrl+S == save + je .save + cmp eax, 20 ; ctrl+T + je .test_something + + cmp [ebx+TKeyboardEvent.scancode], keyF2 + je .toggle_breakpoint + +.finish: + mov eax, chgfNoClearSelection +.exit: + return + +.copy: + get eax, [.self], TFreshEdit:Selection + test eax, eax + jz .end_copy + stdcall ClipboardWrite, eax + stdcall StrDel, eax +.end_copy: + mov eax, chgfNoClearSelection + return + +.paste: + stdcall ClipboardRead + test eax, eax + jz .end_paste + + set [.self], TFreshEdit:Selection, eax + stdcall StrDel, eax + + mov eax, chgfNeedRefresh +.end_paste: + return + + +.save: + stdcall OnSaveFile, [.self], 0 + xor eax, eax + return + +.length_list: + xor eax, eax + return + +.clipright: + get eax, esi, TFreshEdit:CurrentLine + jc .finish + stdcall StrClipSpacesR, [eax+TEditorLine.Data] + mov eax, chgfNeedRefresh + return + +.test_something: + mov eax, chgfNeedRefresh + return + + +.toggle_breakpoint: + cmp [esi+TFreshEdit._fReadOnly], froReadWrite + jne .finish + + get eax, esi, TFreshEdit:CurrentLine + jc .finish + + xor [eax+TEditorLine.flags], lfBreakpoint + mov eax, chgfNeedRefresh or chgfNoClearSelection + return + + +;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + +endp + + + + +; very primitive! To be rewrited from scratch to allow custom keywords. +proc ParseFolding, .pLines +begin + pushad + + xor ebx, ebx + mov esi, [.pLines] + mov ecx, [esi+TArray.count] + lea esi, [esi+TArray.array] + +.loop: + jecxz .endparse + + stdcall StrPtr, [esi+TEditorLine.Data] + jc .forward + + cmp [eax+string.len], 4 + jb .forward + + cmp dword [eax], 'proc' + je .up + + cmp [eax+string.len], 6 + jb .forward + + cmp dword [eax], 'loca' + jne .forward + cmp word [eax+4], 'ls' + jne .forward + +.up: + inc ebx + or [esi+TEditorLine.flags], lfFoldHeader + +.forward: + mov [esi+TEditorLine.fold_level], ebx + + stdcall StrPtr, [esi+TEditorLine.Data] + jc .forward2 + + cmp [eax+string.len], 4 + jb .forward2 + + cmp dword [eax], 'endp' + je .down + cmp dword [eax], 'endl' + jne .forward2 + +.down: + test ebx, ebx + jz .forward2 + dec ebx + +.forward2: + add esi, sizeof.TEditorLine + dec ecx + jmp .loop + +.endparse: + popad + return +endp + + + + + + + + +DispSize 'Test ground dummy code:', ($-__TestGround)+__TestDataSize + +; without this, the application crashes in Linux with untraceable seg fault. Why??? +; It seems it crashes during the load, before even one instruction executed. +; Maybe it is some kind of bug in the elf formater... +; IT CRASHES ONLY SOMETIMES????? +;rb 64 + +include '%lib%/FreshEdit/fasm_syntax.asm' ADDED freshlib/test_code0/TestGroundKeyboard.asm Index: freshlib/test_code0/TestGroundKeyboard.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundKeyboard.asm @@ -0,0 +1,89 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: This test source provides some testing of the keyboard facilities +; of FreshLib +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +__TestGround: + +; Global data... +iglobal + +__TestData: + +frmMainForm: + ObjTemplate tfEnd, Form, frmMain, \ + x, 100, \ + y, 50, \ + width, 120, \ + height, 80, \ + Visible, TRUE, \ + OnKeyPress, MainKeyPressed, \ + Caption, 'FreshLib minimal application test.' + +__TestDataSize = $ - __TestData +endg + + + + + + +cKeyMessage text 'Key pressed:' +cCRLF db 13, 10, 0 +cSpace db ' ', 0 + + + +proc MainKeyPressed, .self, .keyevent +begin + mov esi, [.self] + mov edi, [.keyevent] + + stdcall Output, cKeyMessage + stdcall OutputNumber, [edi+TKeyboardEvent.key], 16, 8 + stdcall Output, cSpace + stdcall OutputNumber, [edi+TKeyboardEvent.scancode], 16, 8 + stdcall Output, cSpace + stdcall OutputNumber, [edi+TKeyboardEvent.kbdStatus], 16, 8 + stdcall Output, cCRLF + return +endp + + + + + + + + +proc PrepareDemo +begin + stdcall CreateFromTemplate, frmMainForm, 0 + mov ecx, [pApplication] + mov [ecx+TApplication.MainWindow], frmMain + + return +endp + + + + + + + + + + + + +DispSize 'Test ground dummy code', ($-__TestGround)+__TestDataSize ADDED freshlib/test_code0/TestGroundNull.asm Index: freshlib/test_code0/TestGroundNull.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundNull.asm @@ -0,0 +1,4 @@ +proc PrepareDemo +begin + return +endp ADDED freshlib/test_code0/TestGroundSplitGrid.asm Index: freshlib/test_code0/TestGroundSplitGrid.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestGroundSplitGrid.asm @@ -0,0 +1,77 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Very simple test application for FreshLib. +; The content may change arbitrary. +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +__TestGround: + +; Global data... +iglobal + +__TestData: + +frmMainForm: + ObjTemplate tfEnd or tfParent, TForm, frmMain, \ + x = 300, \ + y = 250, \ + width = 640, \ + height = 480, \ + Visible = FALSE, \ + Caption = 'FreshLib SplitGrid editor.',\ + SplitGrid = ExampleTemplate + + ObjTemplate tfEnd, TButton, btn1, \ + x = 100, y = 100, width = 100, height = 50, \ + Visible = TRUE, Caption = 'Button1', \ + TextAlign = dtfAlignCenter or dtfAlignMiddle,\ + OnClick = btn1_OnClick, \ + SplitCell = ExampleTemplate.cellTop + +__TestDataSize = $ - __TestData +endg + + + +proc btn1_OnClick as TButton.OnClick +begin + stdcall ShowMessage, [frmMain], smiInformation, 'It is assembly language!', 'Hello assembly codder!', smbOK + return +endp + + + +proc PrepareDemo +begin + stdcall CreateFromTemplate, frmMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + set [frmMain], TWindow:Visible, TRUE + return +endp + + +iglobal + SplitStart ExampleTemplate + Split stHoriz, 4, 96, 0, 1000 + Cell cellFolders + Split stVert or stRelative, 4, $2000, 0, $8000 + Split stHoriz or stRelative, 4, $2000, 0, $8000 + Cell cellTop + Split stVert or stRelative, 4, $4000, 0, $8000 + Cell NONE + Cell cellPanel1 + Cell cellPanel2 + SplitEnd +endg + + +DispSize 'Test ground dummy code:', ($-__TestGround)+__TestDataSize ADDED freshlib/test_code0/TestLib.asm Index: freshlib/test_code0/TestLib.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestLib.asm @@ -0,0 +1,103 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: The main file of FreshLib test application. Main file. +; +; Target OS: Any +; +; Dependencies: FreshLib - see includes in the source. +; +; Notes: This is the main file of the project. It forms the common frame of the GUI +; program. The real test code is separated in several different files, +; named TestGround(xxxx).asm where (xxxx) is some suffix. +; Include only one of these files. +;_________________________________________________________________________________________ + + +include '%lib%/freshlib.inc' +@BinaryType GUI, compact + +options.AlignCode = 0 +options.FastEnter = 1 ; enter/leave or push ebp/pop ebp approach to the procedures. +options.CheckArguments = 1 +options.ShowSkipped = 0 ; shows the procedures skiped because of no use. +options.ShowSizes = 1 ; enable/disable work of DispSize macro. +options.SkipZeroSizes = 0 +options.ShowImported = 0 ; enable/disable display of imported functions. +options.DebugMode = 1 ; enable/disable macros of simpledebug library. + ; Only used in X server based systems. + options.DebugMode.DisableSHM = 0 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 ; enable/disable syncronized X server communications. + options.DebugMode.XErrors = 0 + +;options.Threads ; READ ONLY option. Automatically set. + +;LinuxThreads equ native ; native or posix +;HeapManager equ OS ; OS or ASM + + +include '%lib%/freshlib.asm' + +; use one and only one of the following files. +; +;include 'TestGroundSplitGrid.asm' +;include 'TestGroundNull.asm' ; in order to check whether for compilation of dead code. +;include 'TestGround.asm' +;include 'TestGroundComplex.asm' +;include 'TestGroundKeyboard.asm' +;include 'TestGroundFreshEdit.asm' +;include 'TestGroundConfig.asm' +;include 'TestGroundDirFunctions.asm' +;include 'TestGrids.asm' +include 'TestTreeView.asm' +;include 'TestResizeEvents.asm' + + + + +if TargetOS eq Linux +; rb 343 ; this bytes simply make ELF file to be loadable. + ; there is a bug somewhere in the ELF generator (FASM or possibly ELF macros) + ; that makes some sizes of the ELF executable not loadable. (the Linux loader crashes with SEGFAULT) +end if + +uglobal +; buffer rb 256 +endg + +iglobal + ; The example from RFC-1951 +; TestArray dw 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 2, 0, 4, 0, 4, 0 +endg + +; Main Program +start: + +DebugMsg 'Before initializing.' + InitializeAll +DebugMsg 'After initializing.' + + create [pApplication], TApplication + + call GUI.Init + + stdcall PrepareDemo + +DebugMsg 'Just before run.' + + stdcall Run + +.terminate: + push eax + FinalizeAll + + DebugMsg 'Just before the end.' + stdcall TerminateAll ; from the stack + +; end + + + ADDED freshlib/test_code0/TestMenu.asm Index: freshlib/test_code0/TestMenu.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestMenu.asm @@ -0,0 +1,405 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 1 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 1 + +ThemeGUI equ flat_gui + +include "%lib%/freshlib.asm" + + +iglobal +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 200, \ + y = 200, \ + width = 320, \ + height = 260, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + Caption = 'Popup menu test' + + ObjTemplate tfChild, TEdit, editTest, \ + x = 10, y = 200, width = 300, height = 24, \ + Text = "This is test TEdit control", \ + Visible = TRUE + + ObjTemplate tfParent or tfChild, TActionList, ActionList1, \ + ImgIcons = imgMenuList + + ObjTemplate tfChild, TAction, actCheck, \ + Caption = "Check it", HintText = "Action that can be checked and unchecked.", \ + Accelerator = "Ctrl+Shift+N", \ + OnExecute = ActionOnCheck, \ + IconIndex = 9 + + ObjTemplate tfChild, TAction, actNew, \ + Caption = "New", HintText = "Create new file.", \ + Accelerator = "Ctrl+N", \ + OnExecute = ActionOnExecute, \ + IconIndex = 0 + + ObjTemplate tfChild, TAction, actOpen, \ + Caption = "Open", HintText = "Open file for editing.", \ + Accelerator = "Ctrl+O", \ + OnExecute = ActionOnExecute, \ + IconIndex = 1 + + ObjTemplate tfChild, TAction, actClean, \ + Caption = "Cleanup list", HintText = "Removes not existing files from the list.", \ + OnExecute = ActionOnExecute, \ + IconIndex = -1 + + ObjTemplate tfChild, TAction, actSave, \ + Caption = "Save", HintText = "Save edited file to the disk.", \ + Accelerator = "Ctrl+S", \ + OnExecute = ActionOnExecute, \ + IconIndex = 2 + + ObjTemplate tfChild, TAction, actSaveAs, \ + Caption = "Save As", HintText = "Save edited file with different name.", \ + OnExecute = ActionOnExecute, \ + IconIndex = 22 + + ObjTemplate tfChild, TAction, actSaveAll, \ + Caption = "Save All", HintText = "Save all edited files to the disk.", \ + Accelerator = "Ctrl+Shift+S", \ + OnExecute = ActionOnExecute, \ + IconIndex = 23 + + ObjTemplate tfChild, TAction, actClose, \ + Caption = "Close", HintText = "Close current edited file.", \ + Accelerator = "Ctrl+F4", \ + OnExecute = ActionOnExecute, \ + IconIndex = 21 + + ObjTemplate tfChild, TAction, actCloseAll, \ + Caption = "Close All", HintText = "Close all edited files and the project.", \ + OnExecute = ActionOnExecute, \ + IconIndex = 24 + + ObjTemplate tfChild or tfEnd, TAction, actExit, \ + Caption = "Exit", HintText = "Exit Fresh IDE.", \ + Accelerator = "Alt+X", \ + OnExecute = ActionOnExecute, \ + IconIndex = -1 + + + ObjTemplate tfChild, TButton, btnSkinWin, \ + x = 60, y = 10, width = 84, height = 24, \ + Caption = "Win skin", \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Visible = TRUE, \ + OnClick = SetWinSkin + + ObjTemplate tfChild, TButton, btnSkinFlat, \ + x = 146, y = 10, width = 84, height = 24, \ + Caption = "Flat skin", \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Visible = TRUE, \ + OnClick = SetFlatSkin + + ObjTemplate tfChild, TButton, btnOpenMenu, \ + x = 10, \ + y = 10, \ + width = 32, \ + height = 32, \ + Icon = imgMenu, \ + IconPosition = iposCenter, \ + Visible = TRUE, \ + OnClick = OpenMenuClick, \ + OnKeyPressed = ButtonKeyPressed + + ObjTemplate tfChild, TButton, btnChangeAction1, \ + x = 146, y = 52, width = 84, height = 24, \ + Caption = "Set act. 1", \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Visible = TRUE, \ + OnClick = SetAction1 + + ObjTemplate tfChild, TButton, btnChangeAction1, \ + x = 146, y = 78, width = 84, height = 24, \ + Caption = "Set act. 2", \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Visible = TRUE, \ + OnClick = SetAction2 + + ObjTemplate tfChild, TButton, btnWithAction2, \ + x = 10, y = 78, width = 100, height = 24, \ + IconPosition = iposLeft, TextAlign = dtfAlignLeft or dtfAlignMiddle, \ + Action = [actExit], \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnWithAction1, \ + x = 10, y = 52, width = 100, height = 24, \ + IconPosition = iposLeft, TextAlign = dtfAlignLeft or dtfAlignMiddle, \ + Action = [actCheck], \ + Visible = TRUE + + ObjTemplate tfChild, TCheckbox, cbEnableDisable3, \ + x = 10, y = 130, width = 130, height = 24, \ + Caption = "Enable action", \ + OnClick = EnableActionClick, \ + Visible = TRUE + + ObjTemplate tfChild, TCheckbox, cbEnableDisable2, \ + x = 146, y = 130, width = 100, height = 24, \ + Action = [actCheck], \ + Visible = TRUE + + ObjTemplate tfChild, TCheckbox, cbEnableDisable, \ + x = 146, y = 104, width = 100, height = 24, \ + Action = [actCheck], \ + Visible = TRUE + + ObjTemplate tfChild or tfEnd, TToolbar, tbTest, \ + x = 0, y = 236, width = 320, height = 24, \ + Visible = TRUE + + +TemplateMainMenu: + ObjTemplate tfEnd, TMenu, mainMenu, \ + Visible = FALSE + +TemplateSubMenu: + ObjTemplate tfEnd, TMenu, subMenu, \ + Enabled = TRUE, \ + Caption = "Reopen", \ + Visible = FALSE + + + + getfile imgMenu, "_test_images/menu.png" + getfile imgMenuList, "_test_images/img_list.png" + + getfile cfgFlat, "theme_flat.cfg" + dd 0 + + getfile cfgWin, "theme_win.cfg" + dd 0 + +endg + + +uglobal + iconMenu dd ? +endg + + +rb 423 + + +start: + InitializeAll + + + create [pApplication], TApplication + + call GUI.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall CreateFromTemplate, TemplateMainMenu, 0 + stdcall CreateFromTemplate, TemplateSubMenu, 0 + + exec [mainMenu], TMenu:AddItem, mitAction, [actCheck], 0 + exec [mainMenu], TMenu:AddItem, mitAction, [actNew], 1 + exec [mainMenu], TMenu:AddItem, mitSubmenu, [subMenu], 2 + exec [mainMenu], TMenu:AddItem, mitAction, [actOpen], 3 + exec [mainMenu], TMenu:AddItem, mitSeparator, 0, 4 + exec [mainMenu], TMenu:AddItem, mitAction, [actSave], 5 + exec [mainMenu], TMenu:AddItem, mitAction, [actSaveAs], 6 + exec [mainMenu], TMenu:AddItem, mitAction, [actSaveAll], 7 + exec [mainMenu], TMenu:AddItem, mitSeparator, 0, 8 + exec [mainMenu], TMenu:AddItem, mitAction, [actClose], 9 + exec [mainMenu], TMenu:AddItem, mitAction, [actCloseAll], 10 + exec [mainMenu], TMenu:AddItem, mitSeparator, 0, 11 + exec [mainMenu], TMenu:AddItem, mitAction, [actExit], 12 + + set [actCheck], TAction:Checked, 1 + set [actCheck], TAction:Enabled, 0 + +; set [cbEnableDisable2], TCheckbox:Enabled, 0 + + + exec [subMenu], TMenu:AddItem, mitAction, [actClean], 0 + exec [subMenu], TMenu:AddItem, mitSeparator, 0, 0 + exec [subMenu], TMenu:AddItem, mitString, "/home/johnfound/Fresh/source/Fresh.fpr", 1 + exec [subMenu], TMenu:AddItem, mitString, "/home/johnfound/Fresh/source/Fresh.asm", 2 + exec [subMenu], TMenu:AddItem, mitString, "/home/johnfound/Fresh/freshlib/freshlib.inc", 3 + + + exec [tbTest], TToolbar:AddButton, [actNew] + exec [tbTest], TToolbar:AddButton, [actOpen] + exec [tbTest], TToolbar:AddButton, [actSave] + exec [tbTest], TToolbar:AddButton, [actSaveAll] + exec [tbTest], TToolbar:AddButton, 0 + exec [tbTest], TToolbar:AddButton, [actClose] + exec [tbTest], TToolbar:AddButton, [actCloseAll] + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + return +endp + + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + + +proc OpenMenuClick as TButton.OnClick +begin + exec [mainMenu], TMenu:Show, [btnOpenMenu], 0, 32 + return +endp + + +proc ButtonKeyPressed as TWindow.OnKeyPressed +begin + stdcall CreateKeyName, [.utf8], [.scancode], [.kbdState] + push eax + + stdcall StrPtr, eax + OutputLn eax + + OutputValue " UTF-8: $", [.utf8], 16, 8 + OutputValue "Scan code: $", [.scancode], 16, 8 + OutputValue " State: $", [.kbdState], 16, 8 + DebugMsg " " + + stdcall StrDel + return +endp + + +proc SetWinSkin as TButton.OnClick +begin + stdcall StringToNamedArray, GUI.meta, cfgWin + exec [frmMain], TWindow:ForceRefresh + return +endp + + +proc SetFlatSkin as TButton.OnClick +begin + stdcall StringToNamedArray, GUI.meta, cfgFlat + exec [frmMain], TWindow:ForceRefresh + return +endp + + + +proc ActionOnExecute as TAction.OnExecute +begin + mov esi, [.Action] + + stdcall StrDupMem, 'Action "' + mov ebx, eax + + get eax, [.Action], TAction:Caption + + stdcall StrCat, ebx, eax + + stdcall StrCat, ebx, '" executed from control $' + + stdcall NumToStr, [.Ctrl], ntsHex or ntsFixedWidth + 8 + stdcall StrCat, ebx, eax + stdcall StrDel, eax + + stdcall ShowMessage, [frmMain], smiInformation, "Action execution", ebx, smbOK + + stdcall StrDel, ebx + return +endp + + + + +proc ActionOnCheck as TAction.OnExecute +begin + get eax, [.Action], TAction:Checked + xor eax, 1 + set [.Action], TAction:Checked, eax + return +endp + + + +proc SetAction1 as TButton.OnClick +begin + set [btnWithAction1], TButton:Action, [actOpen] + set [btnWithAction2], TButton:Action, [actSaveAll] + return +endp + + +proc SetAction2 as TButton.OnClick +begin + set [btnWithAction1], TButton:Action, [actCheck] + set [btnWithAction2], TButton:Action, [actClose] + return +endp + + + +proc EnableActionClick as TButton.OnClick +begin + get eax, [.self], TCheckbox:Checked + + set [actCheck], TAction:Enabled, eax + + return +endp + + ADDED freshlib/test_code0/TestMenu.fpr Index: freshlib/test_code0/TestMenu.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestMenu.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestNewGUI.asm Index: freshlib/test_code0/TestNewGUI.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestNewGUI.asm @@ -0,0 +1,526 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 1 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 0 + +ThemeGUI equ flat_gui +;ThemeGUI equ win_gui + +include "%lib%/freshlib.asm" + + +iglobal +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 600, \ + height = 520, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + Caption = 'The new GUI toolkit test form.' + + + ObjTemplate tfChild, TLabel, NONE, \ + x = 10, y = 10, width = 200, height = 24, \ + Caption = "Progress bar test:", \ + Visible = TRUE + + + ObjTemplate tfChild, TProgress, Progress1, \ + x = 38, y = 32, width = 200, height = 24, \ + Max = 100, Pos = 70, \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnArrowLeft, \ + x = 10, \ + y = 32, \ + width = 24, \ + height = 24, \ + Icon = imgArrowLeft, \ + IconPosition = iposCenter, \ + Visible = TRUE, \ + OnClick = ArrowLeftClick + + ObjTemplate tfChild, TButton, btnArrowRight, \ + x = 242, \ + y = 32, \ + width = 24, \ + height = 24, \ + Icon = imgArrowRight, \ + IconPosition = iposCenter, \ + Visible = TRUE, \ + OnClick = ArrowRightClick + + + ObjTemplate tfChild, TLabel, NONE, \ + x = 10, y = 75, width = 200, height = 24, \ + Caption = "Buttons test:", \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnDisabled, \ + x = 448, \ + y = 100, \ + width = 128, \ + height = 48, \ + TextAlign = dtfAlignJustify or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = "Disabled", \ + Icon = imgTestIcon1, \ + IconPosition = iposLeft, \ + Enabled = FALSE, \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnChild1, \ + x = 10, \ + y = 100, \ + width = 407, \ + height = 242, \ + TextAlign = dtfAlignJustify or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = utf8_long, \ + Icon = imgTestIcon1, \ + IconPosition = iposLeft, \ + Visible = TRUE, \ + OnClick = Button1Click + + ObjTemplate tfChild, TButton, btnChild2, \ + x = 448, \ + y = 160, \ + width = 128, \ + height = 48, \ + TextAlign = dtfAlignJustify or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = utf8_string, \ + Icon = imgTestIcon2, \ + IconPosition = iposRight, \ + Enabled = TRUE, \ + Visible = TRUE, \ + OnClick = Button2Click + + ObjTemplate tfChild, TButton, btnChild3, \ + x = 448, \ + y = 220, \ + width = 128, \ + height = 122, \ + TextAlign = dtfAlignCenter or dtfAlignBottom or dtfCRLF or dtfWordWrap,\ + Caption = "Workers of the world, unite!", \ + Icon = imgTestIcon3, \ + IconPosition = iposCenter, \ + Enabled = TRUE, \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnAlignLeft, \ + x = 10, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Left', \ + Visible = TRUE, \ + OnClick = LeftClick + + ObjTemplate tfChild, TButton, btnAlignRight, \ + x = 84, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Right', \ + Visible = TRUE, \ + OnClick = RightClick + + ObjTemplate tfChild, TButton, btnAlignCenter, \ + x = 158, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Center', \ + Visible = TRUE, \ + OnClick = CenterClick + + ObjTemplate tfChild, TButton, btnAlignJust, \ + x = 232, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Justify', \ + Visible = TRUE, \ + OnClick = JustifyClick + + ObjTemplate tfChild, TButton, btnAlignTop, \ + x = 306, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Top', \ + Visible = TRUE, \ + OnClick = TopClick + + ObjTemplate tfChild, TButton, btnAlignMiddle, \ + x = 380, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Middle', \ + Visible = TRUE, \ + OnClick = MiddleClick + + ObjTemplate tfChild, TButton, btnAlignBottom, \ + x = 454, \ + y = 350, \ + width = 64, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Bottom', \ + Visible = TRUE, \ + OnClick = BottomClick + + ObjTemplate tfChild, TLabel, NONE, \ + x = 10, y = 390, width = 200, height = 24, \ + Caption = "Line editor test:", \ + Visible = TRUE + + ObjTemplate tfChild, TEdit, editTest, \ + Text = "This is simple line editor.", \ + x = 10, y=415, width=306, height=24, \ + MarginLeft= 2, \ + MarginRight= 2, \ + Visible = TRUE + + ObjTemplate tfChild, TLabel, NONE, \ + x = 10, y = 445, width = 200, height = 24, \ + Caption = "Message boxes test:", \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnMsgError, \ + x = 10, \ + y = 470, \ + width = 72, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Error', \ + Visible = TRUE, \ + OnClick = ErrorClick + + ObjTemplate tfChild, TButton, btnMsgWarning, \ + x = 88, \ + y = 470, \ + width = 72, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Warning', \ + Visible = TRUE, \ + OnClick = WarningClick + + ObjTemplate tfChild, TButton, btnMsgQuestion, \ + x = 166, \ + y = 470, \ + width = 72, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Question', \ + Visible = TRUE, \ + OnClick = QuestionClick + + ObjTemplate tfChild or tfEnd, TButton, btnMsgInfo, \ + x = 244, \ + y = 470, \ + width = 72, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Info', \ + Visible = TRUE, \ + OnClick = InfoClick + + + + getfile imgTestIcon1, '_test_images/speech.png' + getfile imgTestIcon2, '_test_images/globe.png' + getfile imgTestIcon3, '_test_images/star.png' + + getfile imgArrowLeft, '_test_images/left.png' + getfile imgArrowRight, '_test_images/right.png' + + getfile imgFolder, "_test_images/folder.png" + getfile imgFile, "_test_images/document.png" + + +include "UTF8_examples.asm" + + +endg + + +rb 423 + + +start: + InitializeAll + + create [pApplication], TApplication + + call GUI.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + + ; needed images in OnCreate event handler. + + stdcall Run + + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + return +endp + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + + +proc LeftClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfHAlignMask + or eax, dtfAlignLeft + + set [btnChild1], TButton:TextAlign, eax + return +endp + + +proc RightClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfHAlignMask + or eax, dtfAlignRight + + set [btnChild1], TButton:TextAlign, eax + return +endp + + +proc CenterClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfHAlignMask + or eax, dtfAlignCenter + + set [btnChild1], TButton:TextAlign, eax + return +endp + +proc JustifyClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfHAlignMask + or eax, dtfAlignJustify + + set [btnChild1], TButton:TextAlign, eax + return +endp + + +proc TopClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfVAlignMask + or eax, dtfAlignTop + + set [btnChild1], TButton:TextAlign, eax + return +endp + +proc MiddleClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfVAlignMask + or eax, dtfAlignMiddle + + set [btnChild1], TButton:TextAlign, eax + return +endp + +proc BottomClick as TButton.OnClick +begin + get eax, [btnChild1], TButton:TextAlign + and eax, not dtfVAlignMask + or eax, dtfAlignBottom + + set [btnChild1], TButton:TextAlign, eax + return +endp + + +proc Button1Click as TButton.OnClick +begin + DebugMsg 'Button1 clicked' + return +endp + + + +proc Button2Click as TButton.OnClick +begin + DebugMsg 'Button2 clicked' + return +endp + + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + +;proc PaintMainFormBG as TWindow.OnPaint +;begin +; +;; tile test background +; mov esi, [.self] +; mov edi, [.canvas] +; mov ebx, [imgTest] +; xor edx, edx +; +; test ebx, ebx +; jz .finish +; +;.yloop: +; +; xor ecx, ecx +; +;.xloop: +; stdcall BlendImage, edi, ecx, edx, ebx, 0, 0, [ebx+TImage.width], [ebx+TImage.height] +; +; add ecx, [ebx+TImage.width] +; cmp ecx, [edi+TImage.width] +; jb .xloop +; +; add edx, [ebx+TImage.height] +; cmp edx, [edi+TImage.height] +; jb .yloop +; +;.finish: +; return +;endp + + + +;proc ButtonPaint as TWindow.OnPaint +;begin +; stdcall DrawSolidRect, [.canvas], 40, 40, 140, 140, 0 +; return +;endp + + +proc ArrowLeftClick as TButton.OnClick +begin + get eax, [Progress1], TProgress:Pos + + dec eax + jns @f + + mov eax, 100 + +@@: + set [Progress1], TProgress:Pos, eax + return +endp + + +proc ArrowRightClick as TButton.OnClick +begin + get eax, [Progress1], TProgress:Pos + + inc eax + cmp eax, 100 + jbe @f + + xor eax, eax + +@@: + set [Progress1], TProgress:Pos, eax + return +endp + + + + +proc ErrorClick as TButton.OnClick +begin + stdcall ShowMessage, [frmMain], smiError, "Dialog box test.", "This is test of common dialog boxes.", smbOK + return +endp + + + +proc WarningClick as TButton.OnClick +begin + stdcall ShowMessage, [frmMain], smiWarning, "Dialog box test.", "This is test of common dialog boxes.", smbOK + return +endp + + + +proc QuestionClick as TButton.OnClick +begin + stdcall ShowMessage, [frmMain], smiQuestion, "Dialog box test.", "This is test of common dialog boxes.", smbYes or smbNo or smbMaybe + return +endp + + + +proc InfoClick as TButton.OnClick +begin + stdcall ShowMessage, [frmMain], smiInformation, "Dialog box test.", "This is test of common dialog boxes.", smbOK or smbCancel + return +endp + + + ADDED freshlib/test_code0/TestNewGUI.fpr Index: freshlib/test_code0/TestNewGUI.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestNewGUI.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestOldTemplates.asm Index: freshlib/test_code0/TestOldTemplates.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestOldTemplates.asm @@ -0,0 +1,47 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable GUI application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" +include "%lib%/gui/OldTemplates.inc" + +@BinaryType GUI, compact + +options.ShowSizes = 0 + +ThemeGUI equ win_gui + +include "%lib%/freshlib.asm" + + +; include your includes here. +include "TestOldTemplates.frm" + +start: + InitializeAll + + create [pApplication], TApplication + + call GUI.Init + + stdcall CreateFromTemplate, frmMain.template, 0 + + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TForm:Visible, TRUE + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + ADDED freshlib/test_code0/TestOldTemplates.fpr Index: freshlib/test_code0/TestOldTemplates.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestOldTemplates.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestOldTemplates.frm Index: freshlib/test_code0/TestOldTemplates.frm ================================================================== --- /dev/null +++ freshlib/test_code0/TestOldTemplates.frm @@ -0,0 +1,229 @@ +; + + +iglobal + +if ThemeGUI eq win_gui + getfile imgArrowRight, '_test_images/right2.png' + getfile imgFolder, "_test_images/folder2.png" + getfile imgFile, "_test_images/document2.png" +end if + + +if ThemeGUI eq flat_gui + getfile imgArrowRight, '_test_images/right.png' + getfile imgFolder, "_test_images/folder.png" + getfile imgFile, "_test_images/document.png" +end if + +endg + + +uglobal + iconArrowRight dd ? + iconFolder dd ? + iconFile dd ? +endg + + +proc FormOnCreate as TObject.OnCreate +begin + + stdcall CreateImagePNG, imgArrowRight, imgArrowRight.size + mov [iconArrowRight], eax + + stdcall CreateImagePNG, imgFolder, imgFolder.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile, imgFile.size + mov [iconFile], eax + + return +endp + + + +; This is the old form file. + +proc Button2Click as TButton.OnClick +begin + pushad + + get ebx, [.self], TButton:Caption + stdcall StrToNumEx, ebx + + inc eax + stdcall NumToStr, eax, ntsDec or ntsUnsigned + mov edi, eax + + set [.self], TButton:Caption, edi + + stdcall StrDel, ebx + stdcall StrDel, edi + + popad + return +endp + + + + +proc EditOnCreate as TObject.OnCreate +begin + + if TargetOS eq Win32 + + set [editDir], TEdit:Text, txt "c:\" + + else + + set [editDir], TEdit:Text, txt "/home" + + end if + + return +endp + + + + + + +proc SetTreeSample as TButton.OnClick +begin + pushad + + get edi, [frmMain], TWindow:Cursor + + stdcall GetStockCursor, mcWait + push eax + + mov eax, [frmMain] + stdcall SetMouseCursor, [eax+TWindow.handle] + + stdcall ProcessSystemEvents + + mov esi, [tvFolders] + get ebx, [editDir], TEdit:Text + mov edx, [esi+TTreeView._items] + + stdcall DeleteArrayItems, edx, 0, [edx+TArray.count] + + stdcall ___DoReadDir, ebx, edx, -1 + mov [esi+TTreeView._items], edx + jc .error + +.finish: + stdcall StrDel, ebx + + OutputValue "Files tree items:", [edx+TArray.count], 10, 8 + + exec esi, TTreeView:__RebuildWidths + exec esi, TTreeView:__RebuildIndex + exec esi, TTreeView:UpdateScrollBar + exec esi, TWindow:Refresh + + set [frmMain], TWindow:Cursor, edi + + popad + return + +.error: + stdcall GetErrorString, eax + push eax + + stdcall ShowMessage, [frmMain], smiError, "File error", eax, smbOK + + stdcall FreeErrorString ; from the stack + jmp .finish + +endp + + + + +proc ___DoReadDir, .hDir, .pArray, .Level +begin + pushad + + mov edx, [.pArray] + mov ebx, [.Level] + inc ebx + + stdcall DirectoryRead, [.hDir] + jc .finish + + mov esi, eax + xor ecx, ecx + + + stdcall SortDirArray, esi, fdsByType + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_loop + + stdcall StrPtr, [esi+TArray.array + 8*ecx + TDirItem.hFilename] + + cmp byte [eax], "." + je .next + + stdcall AddArrayItems, edx, 1 + + push [esi+TArray.array + 8*ecx + TDirItem.hFilename] ; name + pop [eax+TTreeViewItem.caption] + mov [eax+TTreeViewItem.level], ebx + mov [eax+TTreeViewItem.state], tvisExpanded + + push edx + + mov edx, [iconFolder] + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftDirectory + je @f + + mov edx, [iconFile] + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftFile + je @f + + xor edx, edx + +@@: + mov [eax+TTreeViewItem.imgNormal], edx + + pop edx + + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftDirectory + jne .next + + stdcall StrDup, [.hDir] + push eax + + stdcall StrCharCat, eax, "/" + stdcall StrCat, eax, [esi+TArray.array + 8*ecx + TDirItem.hFilename] + + stdcall ___DoReadDir, eax, edx, ebx + + stdcall StrDel ; from the stack + +.next: + inc ecx + jmp .loop + +.end_loop: + stdcall FreeMem, esi + + clc + xor eax, eax + +.finish: + mov [esp+regEAX*4], eax + mov [esp+regEDX*4], edx + popad + return +endp ADDED freshlib/test_code0/TestPNG.asm Index: freshlib/test_code0/TestPNG.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestPNG.asm @@ -0,0 +1,422 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 1 +options.ShowSizes = 1 +options.SkipZeroSizes = 1 +options.DebugMode.XSync = 0 +options.DebugMode.XErrors =0 + +include "%lib%/freshlib.asm" + + +iglobal +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 640, \ + height = 480, \ + Visible = FALSE, \ + OnDestroy = FormOnDestroy, \ + Caption = 'Fresh portable Win32/Linux application test.' + + ObjTemplate tfChild, TButton, btnChild1, \ + x = 48, \ + y = 48, \ + width = 160, \ + height = 48, \ + TextAlign = dtfAlignLeft or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Button 1', \ + Visible = TRUE, \ + Icon = pngIcon, \ + OnClick = Button1Click + + ObjTemplate tfChild or tfEnd, TButton, btnChild2, \ + x = 48, \ + y = 100, \ + width = 160, \ + height = 48, \ + TextAlign = dtfAlignLeft or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Button 2', \ + Visible = TRUE;, \ +; OnClick = Button2Click + +endg + + +rb 1223 + +uglobal + ignore dd ? +endg + + +start: + InitializeAll + + create [pApplication], TApplication + + stdcall GUI.Init + +; stdcall TestBackground + + + stdcall CreateFromTemplate, TemplateMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + set [frmMain], TWindow:Visible, TRUE + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnDestroy, .self +begin + DebugMsg "MainForm destroy event handler." + return +endp + + +proc Button3Click as TButton.OnClick +begin + DebugMsg 'Button3 clicked' + return +endp + + +macro pnglist list, [name] { +common + label list dword +forward +local ..lbl, ..size + dd ..lbl, ..size + +common + dd $0 + +forward + + ..lbl file name + ..size = $ - ..lbl +} + +iglobal + pnglist PngFiles, '_test_images/allpng/0_1.png', '_test_images/allpng/0_2.png', \ + '_test_images/allpng/0_4.png', '_test_images/allpng/0_8.png', \ + '_test_images/allpng/0_16.png', '_test_images/allpng/2_8.png', \ + '_test_images/allpng/2_16.png', '_test_images/allpng/png7.png', \ + '_test_images/allpng/3_1.png', '_test_images/allpng/3_2.png', \ + '_test_images/allpng/3_4.png', '_test_images/allpng/3_8.png', \ + '_test_images/allpng/3_1a.png', '_test_images/allpng/3_2a.png', \ + '_test_images/allpng/3_4a.png', '_test_images/allpng/3_8a.png', \ + '_test_images/allpng/4_8.png', '_test_images/allpng/4_16.png', \ + '_test_images/allpng/6_8.png', '_test_images/allpng/6_16.png' + + pngIcon file '_test_images/ball.png' + pngBackground file '_test_images/allpng/back2.png' + sizeof.pngBackground = $ - pngBackground + +endg + + +xStart = 200 +xMax = 520 +yStart = 10 +xStep = 80 +yStep = 80 + + +proc Button1Click as TButton.OnClick +.img dd ? +begin + pushad + + DebugMsg 'Button1 clicked' + + stdcall CreateImagePNG, pngBackground, sizeof.pngBackground + mov [.img], eax + + mov edi, PngFiles + mov ecx, xStart + mov edx, yStart + +.loop: + cmp dword [edi], 0 + je .finish_demo + + stdcall CreateImagePNG, [edi], [edi+4] + jc .finish_demo + mov esi, eax + + add edi, 8 + + stdcall BlendImage, [.img], ecx, edx, esi, 0, 0, [esi+TImage.width], [esi+TImage.height] + + stdcall DestroyImage, esi + + add ecx, xStep + cmp ecx, xMax + jb .loop + + mov ecx, xStart + add edx, yStep + jmp .loop + +.finish_demo: + + get ebx, [frmMain], TWindow:Screen + mov esi, [.img] + + stdcall BlendImage, ebx, 0, 0, esi, 0, 0, [esi+TImage.width], [esi+TImage.height] + + mov eax, [frmMain] + stdcall _RefreshWindowRect, [eax+TWindow.handle], 0, 0, [eax+TWindow.width], [eax+TWindow.height] + + DebugMsg "Draw on window" +.end: + popad + return +endp + + + +;proc Button2Click as TButton.OnClick +;.context dd ? +;.bkgnd dd ? +;.work dd ? +;.art dd ? +;.frames dd ? +;.fps dd ? +;.font dd ? +;begin +; pushad +; +; DebugMsg 'Button2 clicked' +; +; stdcall FontCreate, 'DejaVu', 20, 1000, 0 +; mov [.font], eax +; +; mov eax, [frmMain] +; stdcall __AllocateContext, [eax+TWindow.handle] +; mov [.context], eax +; +; stdcall __SetDrawMode, eax, cmCopy +; +; stdcall CreateImagePNG, pngBackground, sizeof.pngBackground +; mov [.bkgnd], eax +; +; stdcall CreateImagePNG, pngBackground, sizeof.pngBackground +; mov [.work], eax +; +; stdcall CreateImagePNG, [PngFiles+7*8], [PngFiles+7*8+4] +; mov [.art], eax +; +; stdcall GetTimestamp +; mov edi, eax +; neg edi +; +; xor eax, eax ; x +; xor ebx, ebx ; y +; +; mov ecx, 2 ; dx +; mov edx, 1 ; dy +; +; mov esi, 100000 +; +; mov [.frames], 0 +; +;.loop: +; push eax +; +; stdcall ProcessSystemEvents +; jc .terminate +; +; pop eax +; +; stdcall CopyImageRect, [.work], 0, 0, [.bkgnd], 0, 0, 640, 480 +; +; +; stdcall BlendImage, [.work], eax, ebx, [.art], 0, 0, 200, 200 +; +; neg eax +; add eax, 586 +; +; stdcall BlendImage, [.work], eax, ebx, [.art], 0, 0, 200, 200 +; +; neg ebx +; add ebx, 416 +; +; stdcall BlendImage, [.work], eax, ebx, [.art], 0, 0, 200, 200 +; +; neg eax +; add eax, 586 +; +; stdcall BlendImage, [.work], eax, ebx, [.art], 0, 0, 200, 200 +; +; neg ebx +; add ebx, 416 +; +; add eax, ecx +; +; test ecx, ecx +; js .checkxm +; +; cmp eax, 586 +; jge .changex +; jmp .xok +; +;.checkxm: +; cmp eax, 0 +; jge .xok +; +;.changex: +; neg ecx +; +;.xok: +; add ebx, edx +; +; test edx, edx +; js .checkym +; +; cmp ebx, 416 +; jge .changey +; jmp .yok +; +;.checkym: +; cmp ebx, 0 +; jge .yok +; +;.changey: +; neg edx +; +;.yok: +; push eax ebx ecx edx +; +; stdcall GetTimestamp +; lea ecx, [eax+edi] +; cmp ecx, 300 +; jl .inc_frames +; +; mov edi, eax +; neg edi +; +; mov eax, [.frames] +; cdq +; div ecx +; mov [.fps], eax +; +; test eax, eax +; jnz @f +; int3 +;@@: +; mov [.frames], 0 +; jmp .display_fps +; +;.inc_frames: +; add [.frames], 1000 +; +;.display_fps: +; stdcall NumToStr, [.fps], ntsDec or ntsUnsigned +; mov ecx, eax +; +; stdcall StrDupMem, cTxtLabel +; mov edx, eax +; +; stdcall StrCat, edx, ecx +; stdcall StrDel, ecx +; stdcall StrCharCat, edx, ' fps' +; +; stdcall DrawString2, [.work], edx, 20, 370, [.font], $40ff0000 +; +; stdcall DrawImage, [.context], [.work], 0, 0 +; +; stdcall StrDel, edx +; +; pop edx ecx ebx eax +; +;; change speed +; +; cmp [.frames], 0 +; jne @f +; +; test edi, 1 +; jz @f +; +; inc ecx +; inc edx +; +;@@: +; +; cmp ecx, 4 +; jle @f +; +; mov ecx, 4 +; +;@@: +; cmp ecx, -4 +; jge @f +; +; mov ecx, -4 +; +;@@: +; +; cmp edx, 4 +; jle @f +; +; mov edx, 4 +; +;@@: +; cmp edx, -4 +; jge @f +; +; mov edx, -4 +; +;@@: +; +; +; dec esi ; frame count +; jnz .loop +; +; stdcall DrawImage, [.context], [.bkgnd], 0, 0 +; +; stdcall DestroyImage, [.bkgnd] +; stdcall DestroyImage, [.work] +; stdcall DestroyImage, [.art] +; +; stdcall __ReleaseContext, [.context] +; stdcall FontDestroy2, [.font] +; +; popad +; return +; +;.terminate: +; pop eax +; popad +; stdcall TerminateAll, 0 +; +;endp + + + +cTxtLabel file 'unicode_emo.txt' + dd 0 ADDED freshlib/test_code0/TestPNG.fpr Index: freshlib/test_code0/TestPNG.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestPNG.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestResizeEvents.asm Index: freshlib/test_code0/TestResizeEvents.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestResizeEvents.asm @@ -0,0 +1,97 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: Very simple test application for FreshLib. +; The content may change arbitrary. +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +__TestGround: + +; Global data... +iglobal + +__TestData: + +frmMainForm: + ObjTemplate tfParent or tfEnd, Form, frmMain, \ + x, 300, \ + y, 250, \ + width, 360, \ + height, 240, \ + Visible, TRUE, \ + Caption, 'FreshLib minimal application test.' + + ObjTemplate tfChild or tfEnd, Button, btnOpenModal, \ + x, 50, \ + y, 50, \ + width, 120, \ + height, 75, \ + Visible, TRUE, \ + TextAlign, dtfAlignCenter or dtfAlignMiddle or dtfWordWrap , \ + Caption, 'Click to resize the window.', \ + borderKind, borderFull, \ + OnClick, TestResize + +__TestDataSize = $ - __TestData +endg + + + + +proc PrepareDemo +begin + stdcall CreateFromTemplate, frmMainForm, 0 + mov ecx, [pApplication] + mov [ecx+TApplication.MainWindow], frmMain + + return +endp + + + +proc TestResize, .self, .button +.bounds TBounds +begin + push eax ecx + + mov [.bounds.x], 100 + mov [.bounds.y], 100 + mov [.bounds.width], 640 + mov [.bounds.height], 480 + + + mov eax, [frmMain] + lea ecx, [.bounds] + stdcall _SetWindowBounds, [eax+TWindow.handle], ecx + + +; mov [.bounds.x], 100 +; mov [.bounds.y], 100 +; mov [.bounds.width], 320 +; mov [.bounds.height], 240 +; +; +; mov eax, [frmMain] +; lea ecx, [.bounds] +; stdcall _SetWindowBounds, [eax+TWindow.handle], ecx + + pop ecx eax + return +endp + + + + + + + + +DispSize 'Test ground dummy code:', ($-__TestGround)+__TestDataSize ADDED freshlib/test_code0/TestRuntimeImport.asm Index: freshlib/test_code0/TestRuntimeImport.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestRuntimeImport.asm @@ -0,0 +1,72 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType console, compact + +options.DebugMode = 0 + +include "%lib%/freshlib.asm" + +uglobal + sqliteOpen dd ? +endg + + +start: + InitializeAll + + stdcall LibLoad, "./sqlite3.so" + jc .finish_error_load + + mov ebx, eax + + stdcall LibImport, ebx, "sqlite3_open" + jc .finish_error_import + + mov [sqliteOpen], eax + + stdcall FileWriteString, [STDERR], "Function sqlite3_open address: $" + stdcall NumToStr, [sqliteOpen], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + push eax + stdcall FileWriteString, [STDERR], eax + stdcall StrDel ; from the stack + stdcall FileWriteString, [STDERR], + +.lib_release: + stdcall LibRelease, ebx + +.finish: + FinalizeAll + stdcall TerminateAll, 0 + + +.finish_error_load: + stdcall GetErrorString, eax + mov ebx, eax + + stdcall FileWriteString, [STDERR], "Error loading library: " + + + stdcall FileWriteString, [STDERR], ebx + stdcall FreeErrorString, ebx + + stdcall FileWriteString, [STDERR], + jmp .finish + +.finish_error_import: + + OutputValue "Error importing object: ", eax, 10, -1 + jmp .lib_release ADDED freshlib/test_code0/TestRuntimeImport.fpr Index: freshlib/test_code0/TestRuntimeImport.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestRuntimeImport.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestSplitGrid.asm Index: freshlib/test_code0/TestSplitGrid.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestSplitGrid.asm @@ -0,0 +1,377 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 0 + options.DebugMode.NoTimers = 1 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors = 1 + +options.ShowSizes = 1 +options.SkipZeroSizes = 1 + +ThemeGUI equ flat_gui + +include "%lib%/freshlib.asm" + +iglobal + +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 640, \ + height = 480, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + SplitGrid = SplitTest, \ + Visible = FALSE, \ + Caption = 'Split grids test form' + + ObjTemplate tfChild, TLabel, lblEmpty, \ + SplitCell = SplitTest.cellEmpty, \ + Caption = utf8_long, \ + TextAlign = dtfAlignJustify or dtfAlignTop or dtfCRLF or dtfWordWrap, \ + Visible = TRUE + + ObjTemplate tfChild, TEdit, editDir, \ + Text = "/home", \ + x = 10, y=10, width=370, height=24, \ + MarginLeft= 2, \ + MarginRight= 2, \ + OnCreate = EditOnCreate, \ + SplitCell = SplitTest.cellEdit, \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnArrowRight, \ + x = 384, \ + y = 10, \ + width = 24, \ + height = 24, \ + Icon = imgArrowRight, \ + IconPosition = iposCenter, \ + SplitCell = SplitTest.cellButton, \ + Visible = TRUE, \ + OnClick = ReadFolderClick + + ObjTemplate tfChild or tfEnd, TTreeView, tvFolders, \ + x = 10, y = 40, width = 200, height = 200, \ + SplitCell = SplitTest.cellTree, \ + OnFocusItem = TreeFocusItem, \ + Visible = TRUE + +include "UTF8_examples.asm" + + + +SplitStart SplitTest + + Split stVert, 6, 24, 16, 48 + Split stHoriz or stOriginBR or stJustGap, 6, 64, 48, 200 + Cell cellEdit + Cell cellButton + + Split stHoriz or stRelative, 6, 16384, 3000, 29000 + Cell cellTree + Cell cellEmpty + +SplitEnd + + +if ThemeGUI eq win_gui + getfile imgArrowRight, '_test_images/right2.png' + getfile imgFolder, "_test_images/folder2.png" + getfile imgFile, "_test_images/document2.png" +end if + + +if ThemeGUI eq flat_gui + getfile imgArrowRight, '_test_images/right.png' + + getfile imgFolder, "_test_images/folder.png" + getfile imgFile, "_test_images/document.png" +end if + + +endg + + +uglobal + iconFolder dd ? + iconFile dd ? +endg + + +;rb 423 + + +start: + InitializeAll + + create [pApplication], TApplication + + stdcall GUI.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + + stdcall CreateImagePNG, imgFolder, imgFolder.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile, imgFile.size + mov [iconFile], eax + + return +endp + + +proc EditOnCreate as TObject.OnCreate +begin + + if TargetOS eq Win32 + + set [editDir], TEdit:Text, txt "c:\" + + else + + set [editDir], TEdit:Text, txt "/home" + + end if + + return +endp + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + + + +proc TreeFocusItem as TTreeView.OnFocusItem +begin + jmp .finish + mov ebx, [.pItem] + + stdcall FileWriteString, [STDOUT], [ebx+TTreeViewItem.UserData] + stdcall FileWriteString, [STDOUT], + +; stdcall StrExtractExt, [ebx+TTreeViewItem.UserData] +; jc .finish +; +; stdcall StrCompNoCase, eax, txt ".txt" +; stdcall StrDel, eax +; jnc .finish + + + stdcall LoadBinaryFile, [ebx+TTreeViewItem.UserData] + jc .finish + + push eax + + set [lblEmpty], TLabel:Caption, eax + + stdcall FreeMem ; from the stack + +.finish: + return +endp + + + + + +proc ReadFolderClick as TButton.OnClick +begin + pushad + + get edi, [frmMain], TWindow:Cursor + + stdcall GetStockCursor, mcWait + push eax + + mov eax, [frmMain] + stdcall SetMouseCursor, [eax+TWindow.handle] + + stdcall ProcessSystemEvents + + mov esi, [tvFolders] +; get ebx, [editDir], TEdit:Text + mov edx, [esi+TTreeView._items] + + stdcall DeleteArrayItems, edx, 0, [edx+TArray.count] + + stdcall ___DoReadDir, '/home', edx, -1 ;ebx, edx, -1 + mov [esi+TTreeView._items], edx + pushf + push eax + + stdcall StrDel, ebx + + OutputValue "Files tree items:", [edx+TArray.count], 10, 8 + + exec [tvFolders], TTreeView:__RebuildWidths + exec [tvFolders], TTreeView:__RebuildIndex + exec [tvFolders], TTreeView:UpdateScrollBar + + exec [tvFolders], TWindow:RectChanged2, 0 + + set [frmMain], TWindow:Cursor, edi + + pop eax + popf + jc .error + + popad + return + +.error: + stdcall GetErrorString, eax + push eax + + stdcall ShowMessage, [frmMain], smiError, "File error", eax, smbOK + + stdcall FreeErrorString ; from the stack + popad + return +endp + + + + +proc ___DoReadDir, .hDir, .pArray, .Level +begin + pushad + + mov edx, [.pArray] + mov ebx, [.Level] + inc ebx + + stdcall DirectoryRead, [.hDir] + jc .finish + + mov esi, eax + xor ecx, ecx + + stdcall SortDirArray, esi, fdsByType + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_loop + + stdcall StrPtr, [esi+TArray.array + 8*ecx + TDirItem.hFilename] + + cmp byte [eax], "." + je .next + +; Output eax +; DebugMsg "" + + stdcall StrDup, [.hDir] + stdcall StrCharCat, eax, "/" + stdcall StrCat, eax, [esi+TArray.array+8*ecx+TDirItem.hFilename] + push eax + + stdcall AddArrayItems, edx, 1 + + push [esi+TArray.array + 8*ecx + TDirItem.hFilename] ; name + pop [eax+TTreeViewItem.caption] + pop [eax+TTreeViewItem.UserData] ; the full filename + mov [eax+TTreeViewItem.level], ebx + mov [eax+TTreeViewItem.state], tvisExpanded + + push edx + + mov edx, [iconFolder] + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftDirectory + je @f + + mov edx, [iconFile] + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftFile + je @f + + xor edx, edx + +@@: + mov [eax+TTreeViewItem.imgNormal], edx + + pop edx + + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftDirectory + jne .next + + stdcall StrDup, [.hDir] + push eax + + stdcall StrCharCat, eax, "/" + stdcall StrCat, eax, [esi+TArray.array + 8*ecx + TDirItem.hFilename] + + stdcall ___DoReadDir, eax, edx, ebx + + stdcall StrDel ; from the stack + +.next: + inc ecx + jmp .loop + +.end_loop: + stdcall FreeMem, esi + + clc + xor eax, eax + +.finish: + mov [esp+regEAX*4], eax + mov [esp+regEDX*4], edx + popad + return +endp + + + + + ADDED freshlib/test_code0/TestSplitGrid.fpr Index: freshlib/test_code0/TestSplitGrid.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestSplitGrid.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestStripMacro.asm Index: freshlib/test_code0/TestStripMacro.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestStripMacro.asm @@ -0,0 +1,5 @@ +include "../macros/_datamacros.inc" + +mytext StripText "TestStripMacro.sql", SQL + + ADDED freshlib/test_code0/TestStripMacro.fpr Index: freshlib/test_code0/TestStripMacro.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestStripMacro.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestStripMacro.sql Index: freshlib/test_code0/TestStripMacro.sql ================================================================== --- /dev/null +++ freshlib/test_code0/TestStripMacro.sql @@ -0,0 +1,345 @@ +BEGIN TRANSACTION; + +/* Data tables */ + +create table Params ( + id text primary key, + val text +); + + +insert into Params values ('user_perm', '29'); -- permLogin + permPost + permThreadStart + permEditOwn +insert into Params values ('file_cache', '0'); +insert into Params values ('log_events', '0'); + + +create table Users ( + id integer primary key autoincrement, + nick text unique, + passHash text unique, + salt text unique, + status integer, -- see permXXXXX constants. + user_desc text, -- free text user description. + avatar blob, -- copy of the user avatar. + email text unique, -- user email. + Register integer, -- the time when the user has activated the account. + LastSeen integer -- the time when the user has been last seen by taking some action. +); + + +create view UsersX as select *, (select count(1) from Posts as P where P.UserID = U.id) as PostCount from Users as U; + +create index idxUsers_nick on Users (nick); +create index idxUsers_email on Users (email); + + +create table WaitingActivation( + id integer primary key, + nick text unique, + passHash text unique, + salt text unique, + email text unique, + ip_from text unique, + time_reg integer, + time_email integer, + a_secret text unique +); + + + +create table Threads ( + id integer primary key autoincrement, + Slug text unique, + Caption text, + LastChanged integer, + Pinned integer default 0 +); + + +create index idxThreads_LastChanged on Threads (LastChanged desc); +create index idxThreads_Slug on Threads (Slug); + + + +create table Posts ( + id integer primary key autoincrement, + threadID integer references Threads(id) on delete cascade, + userID integer references Users(id) on delete cascade, + + postTime integer, -- based on postTime the posts are sorted in the thread. + ReadCount integer, + Content text +); + + +create index idxPosts_UserID on Posts (userID); +create index idxPosts_ThreadID on Posts (threadID); +-- create index idxPosts_Time on Posts (postTime, id); + + +create table Tags ( + Tag text primary key, + Importance integer not null default 0, + Description text +); + + +/* Relation tables */ + +create table ThreadTags ( + ThreadID integer references Threads(id) on delete cascade, + Tag text references Tags(Tag) on delete cascade on update cascade +); + + +create unique index idxThreadTagsUnique on ThreadTags ( ThreadID, Tag ); + + +create table UnreadPosts ( + UserID integer references Users(id) on delete cascade, + PostID integer references Posts(id) on delete cascade, + Time integer +); + + +create unique index idxUnreadPosts on UnreadPosts(UserID, PostID); + + +create table Attachements ( + id integer primary key autoincrement, + postID integer references Posts(id) on delete cascade, + filename text, + notes text, + file blob +); + + + +create table Sessions ( + userID integer references Users(id) on delete cascade, + fromIP text, + sid text, + last_seen integer, + ticket text, + unique (userID, fromIP) +); + + + +create table Messages ( + id text primary key, + msg text, + header text, + link text +); + + + +insert into Messages VALUES ('login_bad_password','Login incorrect. +Only perfect spellers may +enter this system.','Incorrect user or password!',NULL); + + +insert into Messages VALUES ('register_passwords_different','Passwords different. +Only perfect spellers may +register this forum.','Not matching passwords!',NULL); + + +insert into Messages VALUES ('register_short_pass','Short password +has been chosen. However, +I disagree !','The password is too short!',NULL); + + +insert into Messages VALUES ('login_missing_data','So many fields, +you have to fill. +Missed some.','Empty field!',NULL); + + +insert into Messages VALUES ('register_user_exists','With this nickname +you will never succeed! +It is taken.','Not available nickname!',NULL); + + +insert into Messages VALUES ('register_short_name','Short nick is not an +advantage, but burden. +Get longer.','The nickname too short!',NULL); + + +insert into Messages VALUES ('register_short_email','Queer email, +never saw alike before. +Don''t like it!','Too short email address!',NULL); + + +insert into Messages VALUES ('register_technical','Foreboding of evil, +quick shadow in very cold day. +A server is dying.','Server problem!',NULL); + + +insert into Messages VALUES ('user_created','Just step remains, +the secret, magic mail +you shall receive.','Yes!','Home'); + + +insert into Messages VALUES ('congratulations','It happened, +the journey ended at the door. +You''re welcome.','Hooray!','Come in'); + + +insert into Messages VALUES ('bad_secret','Defeats and wins +take turns each other. +Now is the first.','Oh, no!','Home'); + + +insert into Messages VALUES ('login_bad_permissions','You are a sinner, +because some man of power +have banned you.','Forbidden!',NULL); + + +insert into Messages VALUES ('error_cant_post','You can''t post here, +still have no privileges. +Or have no longer.','Missing privileges!',NULL); + + +insert into Messages VALUES ('error_cant_create_threads','New thread, +new hurricane of passions, +but not for you.','Can''t start threads!',NULL); + + +insert into Messages VALUES ('register_bad_email','This email +does not looks like real. +It shall not pass!','Invalid email address!',NULL); + + +insert into Messages VALUES ('error_post_not_exists','With searching comes loss +and the presence of absence: +post not exists.','Missing post!',NULL); + + +insert into Messages VALUES ('error_cant_write','Write has failed. +I can''t tell you where or why. +Lazy programmers.','Unknown error!',NULL); + + +insert into Messages VALUES ('error_thread_not_exists','With searching comes loss +and the presence of absence: +thread not exists.','Missing thread!',NULL); + + +insert into Messages VALUES ('error_invalid_caption','The title is +missing, it''s pointless +to post, after all.','Empty title!',NULL); + + +insert into Messages VALUES ('error_invalid_content','Silence is golden. +But try to be silent without +posting void.','Empty post body!',NULL); + + +insert into Messages VALUES ('register_bot','Attempt to cheat +was miserable failure. +So, shame on you!','Cheat attempt detected!',NULL); + + +insert into Messages VALUES ('error_bad_ticket','Simple, deep, and still. +The old masters were patient. +Without desires.','Can''t post right now!',NULL); + + +insert into Messages VALUES ('password_changed','Your worthy password, +successfully has been changed. +You''r on the safe side.','Pasword changed!','Login'); + + +insert into Messages VALUES ('change_different','Passwords different. +Only perfect spellers may +change their password.','Not matching passwords!',NULL); + + +insert into Messages VALUES ('change_password','Your present password, +you must provide as evidence +of your intentions.','Password does not match!',NULL); + + +insert into Messages VALUES ('email_activation_sent','The secret token +was sent to your new email. +To check the channel.','Check your mailbox!',NULL); + + +insert into Messages VALUES ('email_changed','The new address to send +a messages will never change +the old relationship.','E-mail has been changed!','Home'); + + +insert into Messages VALUES ('error_cant_delete','You can''t delete it, +still have no privileges. +Or have no longer.','Missing privileges!',NULL); + + + +create table FileCache ( + filename text primary key, + content blob, + changed integer +); + + +create table Events ( + id integer primary key autoincrement, + name text +); + + + +insert into Events values (1,'ScriptStart'); +insert into Events values (2,'RequestStart'); +insert into Events values (3,'RequestEnd'); +insert into Events values (4,'Error'); +insert into Events values (5,'ScriptEnd'); +insert into Events values (6,'ThreadStart'); +insert into Events values (7,'ThreadEnd'); +insert into Events values (8,'RequestServeStart'); +insert into Events values (9,'RequestServeEnd'); + + + +create table Log ( + process_id integer, -- the unique process id + timestamp integer, + event integer references events(id) on delete cascade on update cascade, -- what event is logged - start process, end process, start request, end request + value text, -- details in variable form. + runtime integer +); + + + +create table ProcessID ( + id integer primary key autoincrement +); + + +create table Templates ( + id text primary key, + template text +); + + +CREATE VIRTUAL TABLE PostFTS using fts5( `Content`, content=Posts, content_rowid=id, tokenize='porter unicode61 remove_diacritics 1'); + + +CREATE TRIGGER PostsAI AFTER INSERT ON Posts BEGIN + INSERT INTO PostFTS(rowid, Content) VALUES (new.id, new.Content); +END; + +CREATE TRIGGER PostsAD AFTER DELETE ON Posts BEGIN + INSERT INTO PostFTS(PostFTS, rowid, Content) VALUES('delete', old.id, old.Content); +END; + +CREATE TRIGGER PostsAU AFTER UPDATE ON Posts BEGIN + INSERT INTO PostFTS(PostFTS, rowid, Content) VALUES('delete', old.id, old.Content); + INSERT INTO PostFTS(rowid, Content) VALUES (new.id, new.Content); +END; + + + + +COMMIT; ADDED freshlib/test_code0/TestTV.fpr Index: freshlib/test_code0/TestTV.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestTV.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestTVmain.asm Index: freshlib/test_code0/TestTVmain.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestTVmain.asm @@ -0,0 +1,321 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 0 + options.DebugMode.NoTimers = 0 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 1 + +ThemeGUI equ flat_gui +;ThemeGUI equ win_gui + +include "%lib%/freshlib.asm" + + +iglobal + +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 418, \ + height = 250, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + SplitGrid = SplitTest, \ + Caption = 'The new GUI toolkit test form.' + + + ObjTemplate tfChild, TEdit, editDir, \ + Text = "/home", \ + MarginLeft= 2, \ + MarginRight= 2, \ + OnCreate = EditOnCreate, \ + SplitCell = SplitTest.cellEdit, \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnArrowRight, \ + Icon = imgArrowRight, \ + IconPosition = iposCenter, \ + SplitCell = SplitTest.cellButton, \ + OnClick = ReadFolderClick, \ + Visible = TRUE + + ObjTemplate tfChild or tfEnd, TTreeView, tvFolders, \ + SplitCell = SplitTest.cellTree, \ + Visible = TRUE + + + + +SplitStart SplitTest + + Split stVert or stJustGap , 4, 24, 16, 48 + Split stHoriz or stOriginBR or stJustGap, 4, 64, 48, 200 + Cell cellEdit + Cell cellButton + + Cell cellTree + +SplitEnd + + +if ThemeGUI eq win_gui + getfile imgArrowRight, '_test_images/right2.png' + getfile imgFolder, "_test_images/folder2.png" + getfile imgFile, "_test_images/document2.png" +end if + + +if ThemeGUI eq flat_gui + getfile imgArrowRight, '_test_images/right.png' + + getfile imgFolder, "_test_images/folder.png" + getfile imgFile, "_test_images/document.png" +end if + + +endg + + +uglobal + iconFolder dd ? + iconFile dd ? +endg + + +;rb 423 + + +start: + InitializeAll + + create [pApplication], TApplication + + stdcall GUI.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + +; stdcall CreateImagePNG, imgArrowRight, imgArrowRight.size +; mov [iconArrowRight], eax + + stdcall CreateImagePNG, imgFolder, imgFolder.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile, imgFile.size + mov [iconFile], eax + + return +endp + + +proc EditOnCreate as TObject.OnCreate +begin + + if TargetOS eq Win32 + + set [editDir], TEdit:Text, txt "c:\" + + else + + set [editDir], TEdit:Text, txt "/home" + + end if + + return +endp + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + + + + + +proc ReadFolderClick as TButton.OnClick +begin + pushad + + get edi, [frmMain], TWindow:Cursor + + stdcall GetStockCursor, mcWait + push eax + + mov eax, [frmMain] + stdcall SetMouseCursor, [eax+TWindow.handle] + + mov esi, [tvFolders] + get ebx, [editDir], TEdit:Text + + stdcall ___DoReadDir, ebx, 0, tvisExpanded + jc .error + + set esi, TTreeView:root, eax + +.finish: + stdcall StrDel, ebx + + set [frmMain], TWindow:Cursor, edi + + mov eax, [frmMain] + stdcall SetMouseCursor, [eax+TWindow.handle], edi + + popad + return + +.error: + stdcall GetErrorString, eax + push eax + + stdcall ShowMessage, [frmMain], smiError, "File error", eax, smbOK + + stdcall FreeErrorString ; from the stack + jmp .finish + +endp + + + +; Returns the first TItemTree element + +proc ___DoReadDir, .hDir, .pParent, .fExpand +.first dd ? +begin + pushad + + xor eax, eax + mov [.first], eax + + stdcall DirectoryRead, [.hDir] + jc .finish + + mov esi, eax + + stdcall SortArray, esi, DirItemCompare, dsByExt or fdsDirsFirst + + xor ecx, ecx + xor ebx, ebx + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_loop + + lea edi, [3*ecx] + stdcall StrPtr, [esi+TArray.array + 8*edi + TDirItem.hFilename] + + cmp byte [eax], "." + je .next + + stdcall GetMem, sizeof.TTVItem + mov [eax + TTVItem.prev], ebx + test ebx, ebx + jnz .not_first + + mov [.first], eax + stdcall TreeAppendChild, eax, [.pParent] + jmp .cont + +.not_first: + stdcall TreeInsAfter, eax, ebx + +.cont: + mov ebx, eax + + push [esi+TArray.array + 8*edi + TDirItem.hFilename] [.fExpand] + pop [ebx+TTVItem.state] [ebx+TTVItem.caption] + + mov edx, [iconFolder] + cmp [esi+TArray.array + 8*edi + TDirItem.Type], ftDirectory + je @f + + mov edx, [iconFile] + cmp [esi+TArray.array + 8*edi + TDirItem.Type], ftFile + je @f + + xor edx, edx + +@@: + mov [ebx+TTVItem.imgNormal], edx + + cmp [esi+TArray.array + 8*edi + TDirItem.Type], ftDirectory + jne .next + + stdcall StrDup, [.hDir] + push eax + + stdcall StrCharCat, eax, "/" + stdcall StrCat, eax, [esi+TArray.array + 8*edi + TDirItem.hFilename] + + stdcall ___DoReadDir, eax, ebx, [.fExpand] + stdcall StrDel ; from the stack + +.next: + inc ecx + jmp .loop + +.end_loop: + stdcall FreeMem, esi + + clc + mov eax, [.first] + +.finish: + mov [esp+regEAX*4], eax + popad + return +endp + + + + ADDED freshlib/test_code0/TestText.asm Index: freshlib/test_code0/TestText.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestText.asm @@ -0,0 +1,200 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 0 +options.ShowSizes = 1 +options.SkipZeroSizes = 1 +options.DebugMode.XSync = 0 +options.DebugMode.XErrors =0 + + +include "%lib%/freshlib.asm" + + +iglobal +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 1024, \ + height = 600, \ + Visible = FALSE, \ + OnDestroy = FormOnDestroy, \ + Caption = 'Fresh portable Win32/Linux application test.' + + ObjTemplate tfChild, TButton, btnChild1, \ + x = 48, \ + y = 48, \ + width = 80, \ + height = 48, \ + TextAlign = dtfAlignLeft or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Button BRAVO', \ + Visible = TRUE, \ + OnClick = Button1Click + + ObjTemplate tfChild or tfEnd, TButton, btnChild2, \ + x = 48, \ + y = 100, \ + width = 80, \ + height = 48, \ + TextAlign = dtfAlignLeft or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Button 2', \ + Visible = TRUE, \ + OnClick = Button2Click +endg + + +rb 423 + + + + +start: + InitializeAll + + call GUI.Init + create [pApplication], TApplication + + stdcall CreateFromTemplate, TemplateMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TForm:Visible, TRUE + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnDestroy, .self +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc Button1Click as TButton.OnClick +begin + pushad + + DebugMsg 'Button1 clicked' + + popad + return +endp + + + +proc Button2Click as TButton.OnClick +.font dd ? +.width dd ? +.height dd ? +.y dd ? +.start dd ? +begin + pushad + +; DebugMsg 'Button2 clicked' +; +; stdcall FontCreate, 'Ubuntu', 16, 900, ffUnderline +; mov [.font], eax +; +; stdcall CreateImage, 1024, 600 +; mov esi, eax +; +; mov edi, [frmMain] +; stdcall AllocateContext, [edi+TWindow.handle] +; mov edi, eax +; +; stdcall DrawSolidRect, esi, 0, 0, 1024, 600, $ffd0d0d8 +; stdcall DrawSolidRect, esi, 320, 0, 320, 480, $ff0000ff +; +; stdcall GetFontMetrics, [.font] +; mov [.height], eax +; +; +; stdcall GetTimestamp +; mov [.start], eax +; +; mov edx, 7 +; mov ecx, -100 +; +; mov ecx, 1000 +; mov [.y], 5 +; +;.loop: +;; 85 characters text +;; stdcall DrawString2, esi, 'uon ravo s s smpe ex, spaye y reeype rary usng reeype cace.', -1, 150, [.y], [.font], $ff000000 +; stdcall DrawString2, esi, 'Button BRAVO This is simple text, displayed by FreeType library using FreeType cache.', -1, 150, [.y], [.font], $ff000000 +; +; mov [.width], eax +; +; mov edx, ebx +; add ebx, [.y] +; neg edx +;; stdcall DrawSolidRect, esi, 150, ebx, eax, 1, $ffff0000 +;; stdcall DrawSolidRect, esi, 150, [.y], eax, 1, $ffff0000 +; +;; stdcall GetTextBounds2, 'Button BRAVO This is simple text, displayed by FreeType library using FreeType cache.', -1, [.font] +; +; mov eax, [.height] +; add [.y], eax +; +; dec ecx +; jnz .loop +; +; stdcall GetTimestamp +; sub eax, [.start] +; +; stdcall NumToStr, eax, ntsUnsigned or ntsDec +; push eax +; +; stdcall StrPtr, eax +; stdcall DrawString2, esi, eax, -1, 40, 500, [.font], $ff000000 +; stdcall StrDel ; from the stack +; +; stdcall NumToStr, [.width], ntsDec or ntsSigned +; push eax +; +; stdcall StrPtr, eax +; stdcall DrawString2, esi, eax, -1, 40, 520, [.font], $ff000000 +; stdcall StrDel ; from the stack +; +; +; stdcall NumToStr, [.height], ntsDec or ntsUnsigned +; push eax +; +; stdcall StrPtr, eax +; stdcall DrawString2, esi, eax, -1, 40, 540, [.font], $ff000000 +; stdcall StrDel ; from the stack +; +; +; +; +; stdcall DrawImage, edi, esi, 0, 0 +; +; stdcall FontDestroy2, [.font] +; + popad + return +endp + ADDED freshlib/test_code0/TestText.fpr Index: freshlib/test_code0/TestText.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestText.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestThemes.asm Index: freshlib/test_code0/TestThemes.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestThemes.asm @@ -0,0 +1,469 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 1 + options.DebugMode.NoTimers = 1 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 0 + +options.WholeTheme = 1 + +ThemeGUI equ flat_gui + +include "%lib%/freshlib.asm" + + +iglobal +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 320, \ + height = 520, \ + OnCreate = FormOnCreate, \ + OnClose = MainFormOnClose, \ + OnDestroy = FormOnDestroy, \ + Caption = 'The new GUI toolkit test form.' + + ObjTemplate tfChild, TLabel, NONE, \ + x = 10, y = 10, width=400, height = 19, \ + Caption = "Load theme from file:", \ + Visible = TRUE + + + ObjTemplate tfChild, TButton, btnTheme1, \ + x = 10, \ + y = 32, \ + width = 128, \ + height = 24, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = "Theme Win", \ + Visible = TRUE, \ + OnClick = LoadTheme1Click + + ObjTemplate tfChild, TButton, btnTheme2, \ + x = 140, \ + y = 32, \ + width = 128, \ + height = 24, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = "Theme Flat", \ + Visible = TRUE, \ + OnClick = LoadTheme2Click + + + ObjTemplate tfChild, TLabel, NONE, \ + x = 10, y = 393, width=400, height = 19, \ + Caption = "Load/Save custom theme:", \ + Visible = TRUE + + + ObjTemplate tfChild, TEdit, editTest, \ + Text = "Theme.cfg", \ + x = 10, y=415, width=168, height=24, \ + MarginLeft= 2, \ + MarginRight= 2, \ + Visible = TRUE + + ObjTemplate tfChild, TButton, btnThemeSave, \ + x = 180, y = 415, width = 64, height = 24, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Save', \ + Visible = TRUE, \ + OnClick = SaveThemeClick + + + ObjTemplate tfChild, TButton, btnThemeLoad, \ + x = 246, y = 415, width = 64, height = 24, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle or dtfCRLF or dtfWordWrap,\ + Caption = 'Load', \ + Visible = TRUE, \ + OnClick = LoadThemeClick + + ObjTemplate tfChild, TProgress, NONE, \ + x = 10, y = 490, width = 300, height = 19, \ + Max = 100, Pos = 30, \ + Visible = TRUE + + + ObjTemplate tfChild or tfEnd, TTreeView, tvPreview, \ + x = 10, y = 64, width = 300, height = 300, \ + OnCreate = TreeOnCreate, \ + Visible = TRUE + + + + + + getfile imgFolder1, "_test_images/folder2.png" + getfile imgFile1, "_test_images/document2.png" + + getfile imgFolder2, "_test_images/folder.png" + getfile imgFile2, "_test_images/document.png" + +endg + + + + +uglobal + iconFolder dd ? + iconFile dd ? +endg + + +;rb 423 + + +start: + InitializeAll + + + create [pApplication], TApplication + + call GUI.Init + + stdcall CreateFromTemplate, TemplateMainForm, 0 + + set [pApplication], TApplication:MainWindow, frmMain + + set [frmMain], TWindow:Visible, TRUE ; must be set visible after creation, because it loads + ; needed images in OnCreate event handler. + + stdcall Run + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + + if ThemeGUI eq win_gui + + stdcall CreateIconSet1 + + else + + stdcall CreateIconSet2 + + end if + + return +endp + + +proc FreeIconSet +begin + xor ecx, ecx + + cmp [iconFolder], ecx + je @f + stdcall DestroyImage, [iconFolder] + mov [iconFolder], ecx +@@: + cmp [iconFile], ecx + je @f + stdcall DestroyImage, [iconFile] + mov [iconFile], ecx +@@: + + return +endp + + +proc CreateIconSet1 +begin + stdcall FreeIconSet + + stdcall CreateImagePNG, imgFolder1, imgFolder1.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile1, imgFile1.size + mov [iconFile], eax + + return +endp + + + +proc CreateIconSet2 +begin + stdcall FreeIconSet + + stdcall CreateImagePNG, imgFolder2, imgFolder2.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile2, imgFile2.size + mov [iconFile], eax + + return +endp + + +proc TreeOnCreate as TObject.OnCreate +begin + stdcall LoadExampleTreeContent, [.self] + + return +endp + + + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + + +proc LoadTheme1Click as TButton.OnClick +begin + pushad + + stdcall LoadBinaryFile, "./theme_win.cfg" + jc .finish + + push eax + + stdcall StringToNamedArray, GUI.meta, eax + + stdcall FreeMem ; from the stack. + + stdcall CreateIconSet1 + stdcall LoadExampleTreeContent, [tvPreview] + + exec [frmMain], TWindow:ForceRefresh + +.finish: + popad + return +endp + + +proc LoadTheme2Click as TButton.OnClick +begin + pushad + + stdcall LoadBinaryFile, "./theme_flat.cfg" + jc .finish + + push eax + + stdcall StringToNamedArray, GUI.meta, eax + + stdcall FreeMem ; from the stack. + + stdcall CreateIconSet2 + stdcall LoadExampleTreeContent, [tvPreview] + + exec [frmMain], TWindow:ForceRefresh + +.finish: + popad + return +endp + + +proc SaveThemeClick as TButton.OnClick +begin + pushad + + get ebx, [editTest], TEdit:Text + + stdcall NamedArrayToString, GUI.meta + mov edi, eax + + stdcall StrPtr, eax + mov esi, eax + + stdcall StrPtr, ebx + + stdcall SaveBinaryFile, eax, esi, [esi+string.len] + + stdcall StrDel, ebx + stdcall StrDel, edi + + popad + return +endp + + + + +proc LoadThemeClick as TButton.OnClick +begin + pushad + + get ebx, [editTest], TEdit:Text + + stdcall LoadBinaryFile, ebx + jc .finish + + push eax + + stdcall StringToNamedArray, GUI.meta, eax + + stdcall FreeMem ; from the stack. + + exec [frmMain], TWindow:ForceRefresh + +.finish: + stdcall StrDel, ebx + popad + return +endp + + + + +proc LoadExampleTreeContent, .pTreeView +begin + pushad + + mov esi, [.pTreeView] + + stdcall ___DoReadDir, txt ".", 0, tvisExpanded + jc .error + + set esi, TTreeView:root, eax + + popad + return + +.error: + stdcall GetErrorString, eax + push eax + + stdcall ShowMessage, [frmMain], smiError, "File error", eax, smbOK + + stdcall FreeErrorString ; from the stack + popad + return + +endp + + + +; Returns the first TItemTree element + +proc ___DoReadDir, .hDir, .pParent, .fExpand +.first dd ? +begin + pushad + + xor eax, eax + mov [.first], eax + + stdcall DirectoryRead, [.hDir] + jc .finish + + mov esi, eax + + stdcall SortArray, esi, DirItemCompare, dsByExt or fdsDirsFirst + + xor ecx, ecx + xor ebx, ebx + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_loop + + lea edi, [3*ecx] + stdcall StrPtr, [esi+TArray.array + 8*edi + TDirItem.hFilename] + + cmp byte [eax], "." + je .next + + stdcall GetMem, sizeof.TTVItem + mov [eax + TTVItem.prev], ebx + test ebx, ebx + jnz .not_first + + mov [.first], eax + stdcall TreeAppendChild, eax, [.pParent] + jmp .cont + +.not_first: + stdcall TreeInsAfter, eax, ebx + +.cont: + mov ebx, eax + + push [esi+TArray.array + 8*edi + TDirItem.hFilename] [.fExpand] + pop [ebx+TTVItem.state] [ebx+TTVItem.caption] + + mov edx, [iconFolder] + cmp [esi+TArray.array + 8*edi + TDirItem.Type], ftDirectory + je @f + + mov edx, [iconFile] + cmp [esi+TArray.array + 8*edi + TDirItem.Type], ftFile + je @f + + xor edx, edx + +@@: + mov [ebx+TTVItem.imgNormal], edx + + cmp [esi+TArray.array + 8*edi + TDirItem.Type], ftDirectory + jne .next + + stdcall StrDup, [.hDir] + push eax + + stdcall StrCharCat, eax, "/" + stdcall StrCat, eax, [esi+TArray.array + 8*edi + TDirItem.hFilename] + + stdcall ___DoReadDir, eax, ebx, [.fExpand] + stdcall StrDel ; from the stack + +.next: + inc ecx + jmp .loop + +.end_loop: + stdcall FreeMem, esi + + clc + mov eax, [.first] + +.finish: + mov [esp+regEAX*4], eax + popad + return +endp ADDED freshlib/test_code0/TestThemes.fpr Index: freshlib/test_code0/TestThemes.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/TestThemes.fpr cannot compute difference between binary files ADDED freshlib/test_code0/TestTreeView.asm Index: freshlib/test_code0/TestTreeView.asm ================================================================== --- /dev/null +++ freshlib/test_code0/TestTreeView.asm @@ -0,0 +1,69 @@ +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license." | +;|_______________________________________________________________________________________| +; +; Description: TTreeView test application. +; +; Target OS: All/Linux/Win32 - depending on current test needs. +; +; Dependencies: +; +; Notes: The main test program calls "PrepareDemo" procedure. +;_________________________________________________________________________________________ + +__TestGround: + +iglobal + +__TestData: +; This is a form template. +; It will be created by the visual editor. +; This template engine can contains any count of properties for every +; component of the template. Also it can contains non visual components +; such as action lists, image lists, etc. + +TemplateMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + x = 100, \ + y = 50, \ + width = 656, \ + height = 496, \ + Visible = TRUE, \ + OnDestroy = FormOnDestroy, \ + Caption = 'Fresh portable Win32/Linux application test.' + + ObjTemplate tfChild or tfEnd, TTreeView, TreeView, \ + x = 0, y = 0, width = 500, height = 400, \ + Visible = TRUE + + +__TestDataSize = $ - __TestData + +endg + + + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnDestroy, .self +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc PrepareDemo +begin + stdcall CreateFromTemplate, TemplateMainForm, 0 + set [pApplication], TApplication:MainWindow, frmMain + return +endp + + + + +DispSize 'Test ground dummy code:', ($-__TestGround)+__TestDataSize ADDED freshlib/test_code0/ThemesConfigBuild.asm Index: freshlib/test_code0/ThemesConfigBuild.asm ================================================================== --- /dev/null +++ freshlib/test_code0/ThemesConfigBuild.asm @@ -0,0 +1,406 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +@BinaryType GUI, compact + +options.DebugMode = 0 + options.DebugMode.NoTimers = 1 + options.DebugMode.XSync = 0 + options.DebugMode.XErrors =0 + +options.ShowSizes = 1 +options.SkipZeroSizes = 0 + +options.WholeTheme = 1 + +ThemeGUI equ + +include "%lib%/freshlib.asm" + + +GUI fix ThemeFlat + +include "%lib%/gui/themes/flat_gui.asm" + +GUI fix ThemeWin + +include "%lib%/gui/themes/win_gui.asm" + + +;rb 423 + + +start: + InitializeAll + + create [pApplication], TApplication, 0 + + call ThemeFlat.Init + call ThemeWin.Init + + +; Save flat theme + + stdcall NamedArrayToString, ThemeFlat.meta + push eax + + stdcall StrPtr, eax + mov esi, eax + + stdcall SaveBinaryFile, "theme_flat.cfg", esi, [esi+string.len] + + stdcall StrDel ; from the stack + + +; Save win theme + + stdcall NamedArrayToString, ThemeWin.meta + push eax + + stdcall StrPtr, eax + mov esi, eax + + stdcall SaveBinaryFile, "theme_win.cfg", esi, [esi+string.len] + + stdcall StrDel ; from the stack + + + destroy [pApplication] + + FinalizeAll + stdcall TerminateAll, 0 + + + +; Sample event handlers. They work with other objects on the form. + +proc FormOnCreate as TObject.OnCreate +begin + DebugMsg "Form OnCreate event handler." + + if ThemeGUI eq win_gui + + stdcall CreateIconSet1 + + else + + stdcall CreateIconSet2 + + end if + + return +endp + + +proc FreeIconSet +begin + xor ecx, ecx + + cmp [iconFolder], ecx + je @f + stdcall DestroyImage, [iconFolder] + mov [iconFolder], ecx +@@: + cmp [iconFile], ecx + je @f + stdcall DestroyImage, [iconFile] + mov [iconFile], ecx +@@: + + return +endp + + +proc CreateIconSet1 +begin + stdcall FreeIconSet + + stdcall CreateImagePNG, imgFolder1, imgFolder1.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile1, imgFile1.size + mov [iconFile], eax + + return +endp + + + +proc CreateIconSet2 +begin + stdcall FreeIconSet + + stdcall CreateImagePNG, imgFolder2, imgFolder2.size + mov [iconFolder], eax + + stdcall CreateImagePNG, imgFile2, imgFile2.size + mov [iconFile], eax + + return +endp + + +proc TreeOnCreate as TObject.OnCreate +begin + stdcall LoadExampleTreeContent, [.self] + + return +endp + + + + +proc FormOnDestroy as TObject.OnDestroy +begin + DebugMsg "MainForm destroy event handler." + return +endp + + + +proc MainFormOnClose as TForm.OnClose +begin + DebugMsg "Main form OnClose event handler" + clc + return +endp + + + + +proc LoadTheme1Click as TButton.OnClick +begin + pushad + + stdcall LoadBinaryFile, "./theme_win.cfg" + jc .finish + + push eax + + stdcall StringToNamedArray, GUI.meta, eax + + stdcall FreeMem ; from the stack. + + stdcall CreateIconSet1 + stdcall LoadExampleTreeContent, [tvPreview] + + exec [frmMain], TWindow:RefreshAll + +.finish: + popad + return +endp + + +proc LoadTheme2Click as TButton.OnClick +begin + pushad + + stdcall LoadBinaryFile, "./theme_flat.cfg" + jc .finish + + push eax + + stdcall StringToNamedArray, GUI.meta, eax + + stdcall FreeMem ; from the stack. + + stdcall CreateIconSet2 + stdcall LoadExampleTreeContent, [tvPreview] + + exec [frmMain], TWindow:RefreshAll + +.finish: + popad + return +endp + + +proc SaveThemeClick as TButton.OnClick +begin + pushad + + get ebx, [editTest], TEdit:Text + + stdcall NamedArrayToString, GUI.meta + mov edi, eax + + stdcall StrPtr, eax + mov esi, eax + + stdcall StrPtr, ebx + + stdcall SaveBinaryFile, eax, esi, [esi+string.len] + + stdcall StrDel, ebx + stdcall StrDel, edi + + popad + return +endp + + + + +proc LoadThemeClick as TButton.OnClick +begin + pushad + + get ebx, [editTest], TEdit:Text + + stdcall LoadBinaryFile, ebx + jc .finish + + push eax + + stdcall StringToNamedArray, GUI.meta, eax + + stdcall FreeMem ; from the stack. + + exec [frmMain], TWindow:RefreshAll + +.finish: + stdcall StrDel, ebx + popad + return +endp + + + + +proc LoadExampleTreeContent, .pTreeView +begin + pushad + + mov esi, [.pTreeView] + mov edx, [esi+TTreeView._items] + + stdcall DeleteArrayItems, edx, 0, [edx+TArray.count] + + stdcall ___DoReadDir, txt ".", edx, -1 + mov [esi+TTreeView._items], edx + jc .error + +.finish: + + OutputValue "Files tree items:", [edx+TArray.count], 10, 8 + + exec [.pTreeView], TTreeView:__RebuildIndex + exec [.pTreeView], TWindow:Refresh + + set [frmMain], TWindow:Cursor, edi + + popad + return + +.error: + stdcall GetErrorString, eax + push eax + + stdcall ShowMessage, [frmMain], smiError, "File error", eax, smbOK + + stdcall FreeErrorString ; from the stack + jmp .finish + +endp + + + + +proc ___DoReadDir, .hDir, .pArray, .Level +begin + pushad + + mov edx, [.pArray] + mov ebx, [.Level] + inc ebx + + stdcall DirectoryRead, [.hDir] + jc .finish + + mov esi, eax + xor ecx, ecx + + + stdcall SortDirArray, esi, fdsByType + +.loop: + cmp ecx, [esi+TArray.count] + jae .end_loop + + stdcall StrPtr, [esi+TArray.array + 8*ecx + TDirItem.hFilename] + + cmp byte [eax], "." + je .next + +; Output eax +; DebugMsg "" + + stdcall AddArrayItems, edx, 1 + + push [esi+TArray.array + 8*ecx + TDirItem.hFilename] ; name + pop [eax+TTreeViewItem.caption] + mov [eax+TTreeViewItem.level], ebx + mov [eax+TTreeViewItem.state], tvisExpanded + + push edx + + mov edx, [iconFolder] + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftDirectory + je @f + + mov edx, [iconFile] + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftFile + je @f + + xor edx, edx + +@@: + mov [eax+TTreeViewItem.imgNormal], edx + + pop edx + + cmp [esi+TArray.array + 8*ecx + TDirItem.Type], ftDirectory + jne .next + + stdcall StrDup, [.hDir] + push eax + + stdcall StrCharCat, eax, "/" + stdcall StrCat, eax, [esi+TArray.array + 8*ecx + TDirItem.hFilename] + + stdcall ___DoReadDir, eax, edx, ebx + + stdcall StrDel ; from the stack + +.next: + inc ecx + jmp .loop + +.end_loop: + stdcall FreeMem, esi + + clc + xor eax, eax + +.finish: + mov [esp+regEAX*4], eax + mov [esp+regEDX*4], edx + popad + return +endp + + ADDED freshlib/test_code0/ThemesConfigBuild.fpr Index: freshlib/test_code0/ThemesConfigBuild.fpr ================================================================== --- /dev/null +++ freshlib/test_code0/ThemesConfigBuild.fpr cannot compute difference between binary files ADDED freshlib/test_code0/UTF8_examples.asm Index: freshlib/test_code0/UTF8_examples.asm ================================================================== --- /dev/null +++ freshlib/test_code0/UTF8_examples.asm @@ -0,0 +1,5 @@ + utf8_string db $49, $C3, $B1, $74, $C3, $AB, $72, $6E, $C3, $A2, $74, $69, $C3, $B4, $6E, $C3, $A0, $6C, $69, $7A, $C3, $A6, $74, $69, $C3, $B8, $6E, $00 ; the word "Internationalization" written with different languages chars + +; greek, cyrillic and latin in one text. + utf8_long file 'UnicodeSample.txt' + dd 0 ADDED freshlib/test_code0/UnicodeSample.txt Index: freshlib/test_code0/UnicodeSample.txt ================================================================== --- /dev/null +++ freshlib/test_code0/UnicodeSample.txt @@ -0,0 +1,8 @@ +Russian: Я могу есть стекло, оно мне не вредит. +Yoruba: Mo lè je̩ dígí, kò ní pa mí lára. +Chinese: 我能吞下玻璃而不伤身体。 +Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. +Québécois: J'peux manger d'la vitre, ça m'fa pas mal. +Ukrainian: Я можу їсти скло, і воно мені не зашкодить. + +Това е един много дълъг параграф, в който се говори за това, че мога да консумирам неорганични силикатни аморфни материали без вреда за здравето или материалното ми положение. ADDED freshlib/test_code0/UnicodeSampleEng.txt Index: freshlib/test_code0/UnicodeSampleEng.txt ================================================================== --- /dev/null +++ freshlib/test_code0/UnicodeSampleEng.txt @@ -0,0 +1,1 @@ +The main goal of Fresh is to make programming in assembly as fast and efficient as in other visual languages, without sacrificing the small application size and the raw power of assembly language. Because Fresh is the logical continuation of the FASM project in the area of visual programming, it is perfectly compatible with FASM and you can use all your knowledge about FASM to program in Fresh. ADDED freshlib/test_code0/_test_images/allpng/0_1.png Index: freshlib/test_code0/_test_images/allpng/0_1.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/0_1.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/0_16.png Index: freshlib/test_code0/_test_images/allpng/0_16.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/0_16.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/0_2.png Index: freshlib/test_code0/_test_images/allpng/0_2.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/0_2.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/0_4.png Index: freshlib/test_code0/_test_images/allpng/0_4.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/0_4.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/0_8.png Index: freshlib/test_code0/_test_images/allpng/0_8.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/0_8.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/2_16.png Index: freshlib/test_code0/_test_images/allpng/2_16.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/2_16.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/2_8.png Index: freshlib/test_code0/_test_images/allpng/2_8.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/2_8.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_1.png Index: freshlib/test_code0/_test_images/allpng/3_1.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_1.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_1a.png Index: freshlib/test_code0/_test_images/allpng/3_1a.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_1a.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_2.png Index: freshlib/test_code0/_test_images/allpng/3_2.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_2.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_2a.png Index: freshlib/test_code0/_test_images/allpng/3_2a.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_2a.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_4.png Index: freshlib/test_code0/_test_images/allpng/3_4.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_4.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_4a.png Index: freshlib/test_code0/_test_images/allpng/3_4a.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_4a.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_8.png Index: freshlib/test_code0/_test_images/allpng/3_8.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_8.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/3_8a.png Index: freshlib/test_code0/_test_images/allpng/3_8a.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/3_8a.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/4_16.png Index: freshlib/test_code0/_test_images/allpng/4_16.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/4_16.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/4_8.png Index: freshlib/test_code0/_test_images/allpng/4_8.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/4_8.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/6_16.png Index: freshlib/test_code0/_test_images/allpng/6_16.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/6_16.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/6_8.png Index: freshlib/test_code0/_test_images/allpng/6_8.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/6_8.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/back2.png Index: freshlib/test_code0/_test_images/allpng/back2.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/back2.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/png5.png Index: freshlib/test_code0/_test_images/allpng/png5.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/png5.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/png6.png Index: freshlib/test_code0/_test_images/allpng/png6.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/png6.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/allpng/png7.png Index: freshlib/test_code0/_test_images/allpng/png7.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/allpng/png7.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/background.png Index: freshlib/test_code0/_test_images/background.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/background.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/ball.png Index: freshlib/test_code0/_test_images/ball.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/ball.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/document.png Index: freshlib/test_code0/_test_images/document.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/document.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/document2.png Index: freshlib/test_code0/_test_images/document2.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/document2.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/folder.png Index: freshlib/test_code0/_test_images/folder.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/folder.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/folder2.png Index: freshlib/test_code0/_test_images/folder2.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/folder2.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/globe.png Index: freshlib/test_code0/_test_images/globe.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/globe.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/img_list.png Index: freshlib/test_code0/_test_images/img_list.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/img_list.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/left.png Index: freshlib/test_code0/_test_images/left.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/left.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/menu.png Index: freshlib/test_code0/_test_images/menu.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/menu.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/right.png Index: freshlib/test_code0/_test_images/right.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/right.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/right2.png Index: freshlib/test_code0/_test_images/right2.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/right2.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/speech.png Index: freshlib/test_code0/_test_images/speech.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/speech.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/star.png Index: freshlib/test_code0/_test_images/star.png ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/star.png cannot compute difference between binary files ADDED freshlib/test_code0/_test_images/svg/Red_sphere.svg Index: freshlib/test_code0/_test_images/svg/Red_sphere.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/Red_sphere.svg @@ -0,0 +1,131 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + ADDED freshlib/test_code0/_test_images/svg/background.svg Index: freshlib/test_code0/_test_images/svg/background.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/background.svg @@ -0,0 +1,1504 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ADDED freshlib/test_code0/_test_images/svg/document.svg Index: freshlib/test_code0/_test_images/svg/document.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/document.svg @@ -0,0 +1,73 @@ + + + +image/svg+xml ADDED freshlib/test_code0/_test_images/svg/folder.svg Index: freshlib/test_code0/_test_images/svg/folder.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/folder.svg @@ -0,0 +1,70 @@ + + + +image/svg+xml ADDED freshlib/test_code0/_test_images/svg/left.svg Index: freshlib/test_code0/_test_images/svg/left.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/left.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ADDED freshlib/test_code0/_test_images/svg/menu.svg Index: freshlib/test_code0/_test_images/svg/menu.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/menu.svg @@ -0,0 +1,68 @@ + + + +image/svg+xml ADDED freshlib/test_code0/_test_images/svg/right.svg Index: freshlib/test_code0/_test_images/svg/right.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/right.svg @@ -0,0 +1,82 @@ + + + +image/svg+xml ADDED freshlib/test_code0/_test_images/svg/star.svg Index: freshlib/test_code0/_test_images/svg/star.svg ================================================================== --- /dev/null +++ freshlib/test_code0/_test_images/svg/star.svg @@ -0,0 +1,67 @@ + + + +image/svg+xml ADDED freshlib/test_code0/test.forth Index: freshlib/test_code0/test.forth ================================================================== --- /dev/null +++ freshlib/test_code0/test.forth @@ -0,0 +1,10 @@ +: TestWord + 1 2 3 4 5 6 7 8 9 10 * * * * * * * * * + " + Test multiline text + Line1 + Line2 + Another line! + This is forthScript. + " . +; ADDED freshlib/test_code0/test_config.udb Index: freshlib/test_code0/test_config.udb ================================================================== --- /dev/null +++ freshlib/test_code0/test_config.udb cannot compute difference between binary files ADDED freshlib/test_code0/test_utf8.asm Index: freshlib/test_code0/test_utf8.asm ================================================================== --- /dev/null +++ freshlib/test_code0/test_utf8.asm @@ -0,0 +1,1781 @@ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111 +00000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233333333334 +12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 +; _______________________________________________________________________________________ +;| | +;| ..::FreshLib::.. Free, open source. Licensed under "BSD 2-clause" license. | +;|_______________________________________________________________________________________| +; Notes: +; This is a test file. It is based on strlib.asm but has been modified and +; should not be used as a library. +;#F:w +; Това е тестов файл. Базиран е на strlib.asm но е модифициран и не бива да се използва като библиотека. В този тестов файл се използват форматиращи команди, които са съвместими с FASM и могат да се компилират без проблеми. +; Αυτό είναι ένα δοκιμαστικό αρχείο. Βασίζεται σε strlib.asm αλλά έχει +;#F:b +; τροποποιηθεί και δεν πρέπει να χρησιμοποιείται ως βιβλιοθήκη. +; ეს არის გამოცდა ფაილი. ის ეფუძნება strlib.asm მაგრამ შეიცვალა და არ უნდა +; იქნას გამოყენებული ბიბლიოთეკაში. 📌 +;_________________________________________________________________________________________ + + mov eax, '1234' + mov ecx, 1234 + +__StringLibrary: + +STR_MINSTRLEN = 15 ; must be N*8-1 + + +struc string { + .capacity dd ? + .len dd ? + label .data byte +} + +virtual at -(sizeof.string) + string string + sizeof.string = $-string +end virtual + + +; NumToStr flags +ntsSigned = $00000 +ntsUnsigned = $10000 +ntsFixedWidth = $20000 + + +ntsBin = $0200 +ntsQuad = $0400 +ntsOct = $0800 +ntsDec = $0a00 +ntsHex = $1000 + + +; Global variable, storing parameters of dynamic strings list. +uglobal + if used InitStrings + ptrStrTable dd ? ; StrLib strings arrray. Contains pointers to the memory allocated for strings. + + flagStringFastAdd dd ? ; Flag: when TRUE, enables "Fast addition mode" where new strings are allocated + ; without searching the ptrStrTable array for empty slots. + ; This can increase allocation speed, but at the expense of more memory allocated + ; in the array and not using possibly free handles. This mode should to be used + ; carefully and set to FALSE after the end of mass allocations. + end if +endg + + + +; < OS independent library functions > + +;************************************************************************************ +; Allocates memory for string table and allocates memory for strings. +; Start it before any work with strings. (Or better use InitializeAll macro) +; Returns 0 if failed to allocate needed memory. +;************************************************************************************ +if used ptrStrTable +initialize InitStrings +begin + StrLib = 1 + + stdcall CreateArray, 4 + jc .finish + + mov [ptrStrTable], eax + or [eax+TArray.lparam], -1 ; lParam is the last allocated handle number + +.finish: + return +endp +end if + +;************************************************************************************** +; Frees all memory used for strings library +; Call it before exit of the program or use FinalizeAll macro. +;************************************************************************************** +if used InitStrings +finalize FreeStrings +begin + mov esi, [ptrStrTable] + mov ecx, [esi+TArray.count] + xor ebx,ebx + +.freeloop: + dec ecx + js .endloop + + cmp [esi+TArray.array+4*ecx], ebx + je .freeloop + + stdcall FreeMem, [esi+TArray.array+4*ecx] + jmp .freeloop + +.endloop: + stdcall FreeMem, esi + mov [ptrStrTable], ebx + + return +endp +end if + + + +;************************************************************************************** +; Returns: +; CF=0 no error; eax = pointer in memory of the hString +; CF=1 on error - hString is handle, but is not in the table.* +;************************************************************************************** +proc StrPtr, .hString +begin + mov eax, [.hString] + + xor eax, $c0000000 + test eax, $c0000000 + jnz .pointer + + push ebx + + mov ebx, [ptrStrTable] + cmp eax, [ebx+TArray.count] + jae .notfound + + mov eax, [ebx+TArray.array+4*eax] + test eax, eax + jz .notfound + + add eax, sizeof.string + pop ebx + clc + return + +.pointer: + xor eax, $c0000000 + clc + return + +.notfound: + stc + pop ebx + return +endp + +;************************************************************************************** +; Creates new empty string and returns handle +; Return: handle of the new created string. +;************************************************************************************** +proc StrNew +begin + push ecx edx esi + +; Search for first empty place. + mov edx, [ptrStrTable] + mov ecx, [edx+TArray.count] + + cmp [flagStringFastAdd], 0 + jne .notfound + + mov esi,[edx+TArray.lparam] + xor eax,eax + +.search: + dec ecx + js .notfound + + inc esi + cmp esi, [edx+TArray.count] + jne @f + xor esi,esi +@@: + cmp [edx+TArray.array+4*esi],eax + je .found + jmp .search + +.notfound: + mov esi, [edx+TArray.count] + stdcall AddArrayItem, edx + mov [ptrStrTable], edx + +.found: + mov [edx+TArray.lparam], esi + stdcall GetMem, STR_MINSTRLEN + sizeof.string + 1 + mov [edx+TArray.array+4*esi], eax + mov [eax+sizeof.string+string.capacity], STR_MINSTRLEN + + mov eax, esi + or eax, $c0000000 + + pop esi edx ecx + return +endp + + +;************************************************************************** +; Deletes the string if it is possible. +;************************************************************************** +proc StrDel, .hString +begin + push eax ecx esi + + mov esi, [ptrStrTable] + mov ecx, [.hString] + jecxz .finish + + xor ecx, $c0000000 + test ecx, $c0000000 + jnz .pointer + + cmp ecx, [esi+TArray.count] + jae .finish + +.free: + stdcall FreeMem, [esi+TArray.array+4*ecx] + mov [esi+TArray.array+4*ecx], 0 + +.finish: + pop esi ecx eax + return + +.pointer: + xor ecx, $c0000000 + +; search the pointer in the table. + lea eax, [ecx-sizeof.string] + mov ecx, [esi+TArray.count] + +.search: + dec ecx + js .finish + cmp [esi+TArray.array+4*ecx], eax + jne .search + jmp .free +endp + + +;************************************************************************** +; Duplicates given string, and returns a handle to new one +;************************************************************************** +proc StrDup, .hSource +begin + stdcall StrNew + stdcall StrCopy, eax, [.hSource] + return +endp + + +;************************************************************************** +; Arguments: +; hString - handle or pointer to the string (static or dynamic) +; Returns: +; CF=0; eax = length of the string in bytes. +; CF=1; eax = 0 in case, the handle of the string can't be found in the +; string table or the pointer is NULL. +; +; If pointer is passed the the procedure, it should be dword aligned and +; all bytes of the string including zero terminator to be accessed on +; qword boundary. Although, the zero terminator can be single byte zero. +; +; The performance of the procedure is high for pointers and +; instant for handles (the StrLib created string doesn't need any +; search, because the length is precomputed) +;************************************************************************** + +proc StrLen, .hString ; proc StrLen [hString] +begin + push esi + + mov esi, [ptrStrTable] + mov eax, [.hString] + + xor eax, $c0000000 + test eax, $c0000000 + jnz .pointer + + cmp eax, [esi+TArray.count] + jae .error + + mov eax, [esi+TArray.array+4*eax] + test eax, eax + jz .error + + mov eax, [eax+sizeof.string+string.len] + clc + pop esi + return + +.error: + xor eax, eax + stc + pop esi + return + +.pointer: + push ecx edx edi + + xor eax, $c0000000 + +; align on dword +.byte1: + test eax, 3 + jz .scan + + cmp byte [eax], 0 + je .found + + inc eax + jmp .byte1 + +.scan: + mov ecx, [eax] + mov edx, [eax+4] + + lea eax, [eax+8] + + lea esi, [ecx-$01010101] + lea edi, [edx-$01010101] + + not ecx + not edx + + and esi, ecx + and edi, edx + + and esi, $80808080 + and edi, $80808080 + + or esi, edi + jz .scan + + sub eax, 9 + +; byte 0 was found: so search by bytes. +.byteloop: + lea eax, [eax+1] + cmp byte [eax], 0 + jne .byteloop + +.found: + sub eax, [.hString] + clc + pop edi edx ecx esi + return +endp + + + + + +; This procedure calculates the length of zero terminated string and "fixes" [string.len] field. +; StrFixLen should be call when the content of the string is created by call to external to StrLib +; procedures - for example Win32 API functions. +; +proc StrFixLen, .hstring +begin + push eax ecx + stdcall StrPtr, [.hstring] + mov ecx, eax + stdcall StrLen, eax + mov [ecx+string.len], eax + pop ecx eax + return +endp + + + + +;*************************************************************************** +; If the hString is larger than length - do nothing +; If the hString is smaller than length -> set the length of string to length +; returns pointer to the new (old) string +; +; Arguments: +; hString - string handle. /not pointer!/ +; length - new string length. +; Returns: +; eax: pointer to the string. +; CF: error flag. If 1 the pointer to the string is returned, but +; the capacity is not changed. +;*************************************************************************** +proc StrSetCapacity, .hString, .capacity +begin + push ebx ecx esi + + mov eax, [.hString] + + xor eax, $c0000000 + test eax, $c0000000 + jnz .pointer + + mov esi, eax + + mov ebx, [ptrStrTable] + cmp esi, [ebx+TArray.count] + jae .pointer + + mov eax, [ebx+TArray.array+4*esi] ; pointer to the string. + mov ecx, [.capacity] + + cmp [eax+sizeof.string+string.capacity], ecx + jae .sizeok + + add ecx, sizeof.string+8 + and cl, $f8 ; align the size to 8 bytes + + stdcall ResizeMem, eax, ecx + jc .error + + lea ecx, [ecx-(sizeof.string+1)] + mov [ebx+TArray.array+4*esi], eax + mov [eax+sizeof.string+string.capacity], ecx + +.sizeok: + add eax, sizeof.string + pop esi ecx ebx + return + +.error: + add eax, sizeof.string + stc + pop esi ecx ebx + return + +.pointer: + xor eax, $c0000000 + stc + pop esi ecx ebx + return +endp + + +;*************************************************************************************** +; Copies source to destination string. +; Arguments: +; dest - destination string (handle only) +; source - source string (handle or pointer) +; Returns: nothing +;*************************************************************************************** +proc StrCopy, .dest, .source +begin + push esi edi eax ecx + + stdcall StrLen, [.source] + mov ecx, eax + stdcall StrSetCapacity, [.dest], ecx + mov edi, eax + stdcall StrPtr, [.source] + mov esi, eax + + mov [edi+string.len], ecx + + inc ecx + mov eax, ecx + shr ecx, 2 + rep movsd + mov ecx, eax + and ecx, 3 + rep movsb + + pop ecx eax edi esi + return +endp + + + +;*************************************************************************************** +; Compares two strings - case sensitive. +; Returns CARRY = 1 if the strings are equal. +; Returns CARRY = 0 if the strings are different. +; +; As long as this function uses StrLen, it will be very fast on handles and relatively +; slow on pointers. +;*************************************************************************************** +proc StrCompCase, .str1, .str2 +begin + push eax ecx esi edi + + mov eax, [.str1] + mov ecx, [.str2] + + cmp eax, ecx + je .equal + + test eax, eax + jz .noteq + + test ecx, ecx + jz .noteq + + stdcall StrLen, eax + push eax + stdcall StrLen, ecx + + pop ecx + cmp eax, ecx + jne .noteq + + stdcall StrPtr, [.str1] + mov esi,eax + stdcall StrPtr, [.str2] + mov edi,eax + + mov eax, ecx + and cl, $fc + repe cmpsd + jne .noteq + mov ecx, eax + and ecx, 3 + repe cmpsb + jne .noteq + +.equal: + stc + pop edi esi ecx eax + return + +.noteq: + clc + pop edi esi ecx eax + return +endp + + +;*************************************************************************************** +; Compares two strings - case NOT sensitive. +; Returns CARRY = 1 if the strings are equal. +; Returns CARRY = 0 if the strings are different. +; +; relatively slow, especially on equal strings, passed as pointers - this is the worst +; case. The nontrivial best case is "strings with different lengths passed as handles." +;*************************************************************************************** +proc StrCompNoCase, .str1, .str2 +begin + push eax ebx ecx edx esi edi + + mov eax, [.str1] + mov ecx, [.str2] + + cmp eax, ecx + je .equal + + test eax, eax + jz .noteq + + test ecx, ecx + jz .noteq + + stdcall StrLen, eax + push eax + stdcall StrLen, ecx + + pop ecx + cmp eax, ecx + jne .noteq + + stdcall StrPtr, [.str1] + mov esi,eax + stdcall StrPtr, [.str2] + mov edi,eax + + + mov ebx, ecx + shr ecx, 2 + and ebx, 3 + +.dword: + dec ecx + js .byte + + mov eax, [esi] + mov edx, [edi] + + and eax, $40404040 + and edx, $40404040 + shr eax, 1 + shr edx, 1 + or eax, [esi] + or edx, [edi] + + lea esi, [esi+4] + lea edi, [edi+4] + + cmp eax, edx + jne .noteq + jmp .dword + +.byte: + dec ebx + js .equal + + mov al, [esi] + mov ah, [edi] + + and eax, $ffff + mov edx, eax + and eax, $4040 + shr eax, 1 + or eax, edx + + inc esi + inc edi + + cmp al, ah + je .byte + +.noteq: + clc + pop edi esi edx ecx ebx eax + return + +.equal: + stc + pop edi esi edx ecx ebx eax + return + +endp + + + +;********************************************************** +; Creates string and assigns it to variable. If variable +; already contains string handle, the old string will be +; used. +; Arguments: +; [ptrHString] - variable containing string handle. +; ptrSource - pointer to the source for string. +;********************************************************** +proc SetString, .ptrHString, .ptrSource +begin + push eax esi + mov esi, [.ptrHString] + + mov eax, [esi] + test eax, eax + jnz @f + stdcall StrNew +@@: + mov [esi], eax + stdcall StrCopy, eax, [.ptrSource] + pop esi eax + return +endp + + +;********************************************************************************** +; StrCat appends one string to another +; Arguments: +; dest - destination string (handle only) +; source - source string +;********************************************************************************** +proc StrCat, .dest, .source +begin + push eax ebx ecx esi edi + + stdcall StrLen, [.dest] + mov ebx,eax ; store dest length in ebx + + stdcall StrLen, [.source] + mov esi, eax + lea ecx, [eax+ebx] + + stdcall StrSetCapacity, [.dest], ecx + + mov [eax+string.len], ecx + lea edi, [eax+ebx] + + stdcall StrPtr, [.source] + lea ecx, [esi+1] + mov esi, eax + + mov ebx, ecx + shr ecx, 2 + rep movsd + mov ecx, ebx + and ecx, 3 + rep movsb + + pop edi esi ecx ebx eax + return +endp + + +;********************************************************************************** +; StrCharPos returns a pointer to the first occurence of a given char +; in specified string +; Arguments: +; Char - char to look for +; hString - string to search +; Returns: a pointer to the char in source, or NULL if char doesn't occur +; in given string +;********************************************************************************** +proc StrCharPos, .hString, .char +begin + push esi + + stdcall StrPtr, [.hString] + mov esi,eax + + mov eax, [.char] + xchg al,ah + +.search: + mov al,[esi] + inc esi + or al,al + je .not_found + cmp al,ah + jne .search + + mov eax, esi + dec eax + pop esi + return + +.not_found: + xor eax,eax + pop esi + return +endp + + +;********************************************************************************** +; StrPos returns a pointer to the first occurence of a pattern string +; in another string +; Arguments: +; hPattern - 'pattern' string +; hString - string to search +; Returns: a pointer to the pattern string in source , or NULL if pattern string +; doesn't occur in the string to search +;********************************************************************************** +proc StrPos, .hString, .hPattern +begin + push ebx ecx edx esi edi ; esp = esp -20 + mov esi,[.hPattern] ; mov esi,[hPattern] + mov edi,[.hString] ; mov edi,[hString] + stdcall StrLen, edi + mov ebx,eax ; now ebx holds lenght of the string to search + stdcall StrLen, esi + mov edx,eax ; now edx holds length of the pattern string + + cmp edx, ebx + ja .not_found ; if the pattern is longer than the string + + stdcall StrPtr, esi + mov esi,eax ; put pointer to the pattern str in esi + stdcall StrPtr,edi + mov edi,eax ; put pointer to the search str in edi + lodsb ; load first character of the pattern + mov ecx,ebx ; + mov ebx,edx ; put str_len(pattern)-1 in ebx + dec ebx ; + sub ecx, ebx ; there is no need to search to the end, but only to len(string)-len(pattern)-1 + +.search: + repne scasb + jne .not_found + cmp ecx,ebx + jb .not_found + push edi esi ecx + or ebx,ebx ; ebx==0 means that we were searching for one + jz .got_it ; character. We found it, so we stop. + mov ecx,ebx + repe cmpsb + jne .not_match + +.got_it: + pop ecx esi edi + dec edi + mov eax,edi + +.ret: + pop edi esi edx ecx ebx + return + +.not_match: + pop ecx esi edi + jmp .search + +.not_found: + xor eax,eax + jmp .ret +endp + + + + + +proc StrCopyPart, .dest, .source, .pos, .len +begin + push eax ecx esi edi + + stdcall StrPtr, [.source] + mov esi, eax + stdcall StrLen, [.source] + mov ecx, eax + + mov eax, [.pos] + cmp eax, ecx + jae .cleardest ; + + sub ecx, [.pos] + mov eax, [.len] + +; ecx = min(ecx, eax) + sub eax, ecx + sbb edi, edi + and edi, eax + add ecx, edi + + add esi, [.pos] + + stdcall StrSetCapacity, [.dest], ecx + jc .finish + + mov edi, eax + mov [edi+string.len], ecx + + push ecx + shr ecx, 2 + rep movsd + pop ecx + and ecx, 3 + rep movsb + + lea ecx, [edi+3] + and cl, $fc + sub ecx, edi + xor eax, eax + rep stosb + +.finish: + pop edi esi ecx eax + return + +.cleardest: + stdcall StrSetCapacity, [.dest], STR_MINSTRLEN + mov [eax+string.len], 0 + mov dword [eax], 0 + jmp .finish +endp + + + + +;********************************************************************************** +; StrExtract copies the part of [string] from [index] with lenght in [len] +; Returns handle to new created string. +;********************************************************************************** +proc StrExtract, .string, .pos, .len +begin + stdcall StrNew + stdcall StrCopyPart, eax, [.string], [.pos], [.len] + return +endp + + + + +;__________________________________________________________________________________ +; Splits the string on two strings, at position [.pos] +; Arguments: +; .pString - pointer to string to be splitted. +; .pos - position where to split the string. +; Returns: +; eax - handle to the new created string with second part of the string. +; the original string does not reallocate memory and it's capacity +; and the pointer will remains the same. +;__________________________________________________________________________________ + +proc StrSplit, .hString, .pos +begin + push ecx edi + + stdcall StrExtract, [.hString], [.pos], -1 + push eax + + stdcall StrLen, eax + mov ecx, eax + stdcall StrPtr, [.hString] + + sub [eax+string.len], ecx ; new length of the source string. + add eax, [eax+string.len] + mov edi, eax + + lea ecx, [eax+3] + and cl, $fc + sub ecx, eax + xor eax, eax + rep stosb + + pop eax + pop edi ecx + return +endp + + + + + +;__________________________________________________________________________________ +; StrInsert inserts one string into another at specified pos +; Arguments: +; dest - destination where the source will be inserted. +; source - string to insert +; pos - where to insert. +; Returns: +; nothing. +;__________________________________________________________________________________ +proc StrInsert, .dest, .source, .pos +begin + push eax + stdcall StrSplit, [.dest], [.pos] + push eax eax + stdcall StrCat, [.dest], [.source] + stdcall StrCat, [.dest] ; source from the stack. + stdcall StrDel; from the stack. + pop eax + return +endp + + +; TODO: +; String case functions are giving weird results in linux, so +; here are two functons I wrote some time ago. +; I have tested the following functions in win32 and worked well +; Perhaps it is time to fully support UTF encoded strings. +; These functions here are faster (20-25%), but the results are +; exactly the same as the strlib ones. +; pelaillo + +; ----------------------------------------------- +; str_ucase: +; Author: pelaillo +; Date: Jan. 16, 2002 +; Converts also accented characters: ÑÚ <--> ñú +; ----------------------------------------------- + +proc StrUCase2, .hString +begin + push eax edx edi + + stdcall StrPtr, [.hString] + mov edi, eax +.str_ucase: + mov eax, [edi] + mov edx, eax + and edx, 40404040h + ror edx, 1 + xor edx, -1 + and eax, edx + mov [edi], eax + add edi, 4 + lea edx, [eax-01010101h] + xor eax, edx + and eax, 80808080h + jz .str_ucase + and eax, edx + jz .str_ucase + + pop edi edx eax + return +endp + +; ----------------------------------------------- +; str_lcase: +; Author: pelaillo +; Date: Jan. 16, 2002 +; Converts also accented characters: ÑÚ <--> ñú +; ----------------------------------------------- + +proc StrLCase2, .hString +begin + push eax edx edi + + stdcall StrPtr, [.hString] + mov edi, eax +.str_lcase: + mov eax, [edi] + mov edx, eax + and edx, 40404040h + ror edx, 1 + or eax, edx + mov [edi], eax + add edi, 4 + lea edx, [eax-01010101h] + xor eax, edx + and eax, 80808080h + jz .str_lcase + and eax, edx + jz .str_lcase + + pop edi edx eax + return +endp + + +;********************************************************************************** +; Converts strings to Lower Case +;********************************************************************************** +proc StrLCase, .hString +begin + push eax ebx ecx edx edi + + stdcall StrPtr, [.hString] + mov edi, eax + + stdcall StrLen, [.hString] + mov ecx, eax + mov ebx, edi + + and ebx, 3 + sub ecx, ebx + jbe .byte2 ; the string is small enough, so process it by bytes. + +.byte1: + test edi, 3 + jz .ddword + + mov al, [edi] + and al, $40 + shr al, 1 + or byte [edi], al + + inc edi + jmp .byte1 + +.ddword: + mov ebx, ecx + and ebx, 3 + shr ecx, 2 + jecxz .byte + +.qword: + mov eax, [edi] + mov edx, [edi+4] + + and eax, $40404040 + and edx, $40404040 + + shr eax, 1 + shr edx, 1 + + or [edi], eax + or [edi+4], edx + + add edi, 8 + dec ecx + jnz .qword + +.byte: + dec ebx + js .finish + + mov al, [edi] + and al, $40 + shr al, 1 + or byte [edi], al + + inc edi + jmp .byte + +.byte2: + mov ebx, ecx + jmp .byte + +.finish: + pop edi edx ecx ebx eax + return +endp + + +;********************************************************************************** +; Converts strings to Upper Case +; First parameter = String to Convert to upper case +;********************************************************************************** +proc StrUCase, .hString +begin + push eax ebx ecx edx edi + + stdcall StrPtr, [.hString] + mov edi, eax + + stdcall StrLen, [.hString] + mov ecx, eax + mov ebx, edi + + and ebx, 3 + sub ecx, ebx + jbe .byte2 ; the string is small enough, so process it by bytes. + +.byte1: + test edi, 3 + jz .ddword + + mov al, [edi] + and al, $40 + shr al, 1 + not al + and byte [edi], al + + inc edi + jmp .byte1 + +.ddword: + mov ebx, ecx + and ebx, 3 + shr ecx, 2 + jecxz .byte + +.qword: + mov eax, [edi] + mov edx, [edi+4] + + and eax, $40404040 + and edx, $40404040 + + shr eax, 1 + shr edx, 1 + + not eax + not edx + + and [edi], eax + and [edi+4], edx + + add edi, 8 + dec ecx + jnz .qword + +.byte: + dec ebx + js .finish + + mov al, [edi] + and al, $40 + shr al, 1 + not al + and byte [edi], al + + inc edi + jmp .byte + +.byte2: + mov ebx, ecx + jmp .byte + +.finish: + pop edi edx ecx ebx eax + return +endp + + + + +;********************************************************************************** +; _NumToStr converts the number in eax to the string in any radix approx. [2..26] +; Arguments: +; [edi] - pointer to the string buffer +; ecx - radix +; eax - number to convert. +; There is no parameter check, so be careful. +; returns: edi points to the end of a converted number +;********************************************************************************** +proc _NumToStr +begin + test eax,eax + jns _NumToStrU + neg eax + mov byte [edi],"-" + inc edi +endp + +proc _NumToStrU +begin + cmp eax,ecx + jb .lessA + xor edx,edx + div ecx + push edx + call _NumToStrU + pop eax +.lessA: + cmp al, 10 + sbb al, 69h + das + stosb + return +endp + + + +;***************************************************** +; NumToStrF: +; Converts signed integer value to string. +; NumToStrUF: +; Converts unsigned integer value to string. +; +; edi - pointer to string buffer +; eax - Number to convert +; ecx - radix from 2 to $ff +; esi - length of the number in chars +; +; returns: edi - pointer to the end of converted num +; +; Note: Don't use 1 as radix. +;***************************************************** +proc _NumToStrF +begin + test eax,eax + jns _NumToStrUF + neg eax + mov byte [edi],'-' + push esi + dec esi + add edi, esi + push edi + jmp _NumToStrUF.loopc +endp + +proc _NumToStrUF +begin + push esi + add edi, esi + push edi + dec edi +.loopc: + xor edx,edx + div ecx + xchg al,dl + cmp al,$0a + sbb al,$69 + das + mov [edi],al + dec edi + xchg al,dl + dec esi + jnz .loopc + pop edi + pop esi + return +endp + + +;*********************************************************** +; NumToStr - converts number to any radix. +; num - number to convert +; str - handle of the string. If NULL - creates new string. +; index - Offset in string where to put converted number. +; flags: +; byte 0 - number of digits if ntsFixedWidth is set. +; byte 1 - contains radix for the convertion. +; byte 2,3 - flags. +; Returns: +; eax - handle of the string. +;*********************************************************** +proc NumToStr, .num, .flags +begin + push ebx ecx edx esi edi + + stdcall StrNew + push eax + + stdcall StrSetCapacity, eax, 40 + mov edi, eax + push eax ; pointer for the length. + +; determine which conversion func to use + movzx eax, byte [.flags+2] ; signed/fixed + and eax, (ntsUnsigned or ntsFixedWidth) shr 16 + mov ebx, [.NumToStrFunc+4*eax] + + movzx ecx, byte [.flags+1] ; load radix into ecx + movzx esi, byte [.flags] + mov eax, [.num] + call ebx ; call low-level convertion routine + mov dword [edi], 0 + + pop eax + sub edi, eax + mov [eax+string.len], edi + + pop eax + pop edi esi edx ecx ebx + return + +.NumToStrFunc dd _NumToStr, _NumToStrU, _NumToStrF, _NumToStrUF + +endp + + + + +;------------------------------------------------------- +; function StrToNum +; Converts specified string into a number +; +; Arguments: +; hString - handle/pointer of the string containing +; number to convert. It doesn't have to be ended by +; NULL, any other character will stop conversion. +; Number to convert must be decimal. +; +; Return: +; eax - converted number +; +; Note: in case of failture (first char of given pointer +; isn't a number) function returns -1. +;------------------------------------------------------- +proc StrToNum, .hString +begin + push ebx edx esi + xor ebx,ebx ; ebx will store our number + + stdcall StrPtr, [.hString] + mov esi,eax + xor eax,eax + mov al,[esi] + cmp al,'0' + jb .error + cmp al,'9' + jbe .digit + jmp .error + .digit: + sub al,'0' + add ebx,eax + inc esi + mov al,[esi] + cmp al,'0' + jb .finish + cmp al,'9' + ja .finish + mov edx,ebx ; multiply ebx by 10 + shl ebx,3 + add ebx,edx + add ebx,edx + jmp .digit + .finish: + mov eax,ebx + pop esi edx ebx + return + + .error: + xor eax,eax + dec eax + pop esi edx ebx + return +endp + +;------------------------------------------------------- +; function StrCharCat +; Appends up to 4 chard at the end of the string. +; +; Arguments: +; hString - string to append +; char - char(s) to add +; Returns: +; nothing +;------------------------------------------------------- +proc StrCharCat, .hString, .char +begin + push eax ecx + + stdcall StrLen, [.hString] + mov ecx, eax + add eax, 8 + + stdcall StrSetCapacity, [.hString], eax + + pushd [.char] + popd [eax+ecx] + mov dword [eax+ecx+4], 0 + dec ecx +.goend: + inc ecx + cmp byte [eax+ecx], 0 + jne .goend + + mov [eax+string.len], ecx + + pop ecx eax + return +endp + + +;------------------------------------------------------------ +; function StrInsertChar +; Inserts up to 4 chars into the given position of the string +; +; Arguments: +; hString - string to append +; char - char to add +; pos - position where to add the char +;------------------------------------------------------------- +proc StrCharInsert, .hString, .char, .pos +.str rd 2 +begin + push eax + push [.char] + pop [.str] + mov [.str+4], 0 + + lea eax, [.str] + stdcall StrInsert, [.hString], eax, [.pos] + pop eax + return +endp + + + + + + +;_______________________________________________________________________ +; +; proc StrHash +; Computes 32 bit hash value from the string. +; This procedure implements the hash algoritm: FNV-1b +; +; Arguments: +; ptrString - pointer to PASCAL string with dword length at [ptr-4] +; +; Return: +; eax - 32bit hash value. +; +; Changes: +; eax +;_______________________________________________________________________ +proc StrHash, .hString +begin + push edx ecx esi + + stdcall StrPtr, [.hString] + mov esi, eax + stdcall StrLen, [.hString] + mov ecx, eax + mov eax, $811C9DC5 ; 2166136261 ; FNV offset basis + + jecxz .exit + +.hashloop: + movzx edx, byte [esi] + xor eax, edx + inc esi + imul eax, $01000193 ; 16777619 ; FNV prime + dec ecx + jnz .hashloop + +.exit: + pop esi ecx edx + return +endp + + + +proc StrURLEncode, .hstr +.res dd ? +begin + push ebx ecx edx esi edi + stdcall StrPtr, [.hstr] + mov esi, eax + + stdcall StrLen, esi + mov ecx, eax + lea edx, [2*eax+eax] ; the encoded string can be max 3x long as original string. + + stdcall StrNew + mov [.res], eax + jecxz .finish + + stdcall StrSetCapacity, eax, edx + mov edi, eax + xor edx, edx + xor ebx, ebx + + push eax +.encode: + lodsb + cmp al, $80 + jae .store ; it is a hack, but I hope save enough. + + mov dl, al + mov bl, al + shr edx, 5 + and ebx, $1f + bt dword [.URLCharTable+4*edx], ebx + jnc .store + + mov ah, al + mov al, '%' + stosb + mov al, ah + shr al, 4 + cmp al, $0a + sbb al, $69 + das + stosb + mov al, ah + and al, $0f + cmp al, $0a + sbb al, $69 + das + +.store: + stosb + loop .encode + + xor al, al + mov [edi], al + + pop eax + sub edi, eax + mov [eax+string.len], edi + +.finish: + mov eax, [.res] + pop edi esi edx ecx ebx + return + +; Contains 1 where the character must be % encoded and 0 where it is save to pass it directly +.URLCharTable db 11111111b ; + db 11111111b ; + db 11111111b ; + db 11111111b ; 0..31 -control chars | encoded + db 11111111b ; $27 - $20: '&%$#"! | encoded + db 11111111b ; $2f - $28: /.-,+*)( | encoded + db 00000000b ; $37 - $30: 76543210 | not encoded + db 11111100b ; $3f - $38: ?>=<;:98 | partially + db 00000001b ; $47 - $40: GFEDCBA@ | partially + db 00000000b ; $4f - $48: ONMLKJIH | not encoded + db 00000000b ; $57 - $50: WVUTSRQP | not encoded + db 11111000b ; $5f - $58: _^]\[ZYX | partially + db 00000001b ; $67 - $60: gfedcba` | partially + db 00000000b ; $6f - $68: onmlkjih | not encoded + db 00000000b ; $77 - $70: wvutsrqp | not encoded + db 11111000b ; $7f - $78: ~}|{zyx | partially + +endp + + + + +; UTF-8 support functions. +; Some of the above functions also need some revision in order to support +; utf-8 strings properly. + + + +proc StrLenUtf8, .hString, .len +.maxptr dd ? +begin + push esi ecx edx + + stdcall StrPtr, [.hString] + mov esi, eax + mov eax, [.len] + cmp eax, -1 + je @f + add eax, esi +@@: + mov [.maxptr], eax + xor ecx, ecx + +.loop: + cmp esi, [.maxptr] + jae .endofstring + + stdcall DecodeUtf8, [esi] + jc .error + + test eax, eax + jz .endofstring + + add esi, edx + inc ecx + jmp .loop + +.endofstring: + mov eax, ecx + pop edx ecx esi + clc + return + +.error: + pop edx ecx esi + return +endp + + + +proc StrOffsUtf8, .hString, .pos +begin + push edx esi + + stdcall StrPtr, [.hString] + mov esi, eax + +.loop: + dec [.pos] + js .finish + + stdcall DecodeUtf8, [esi] + jc .error + + test eax, eax + jz .finish + + add esi, edx + jmp .loop + +.finish: + clc + mov eax, esi + pop esi edx + return + +.error: + xor eax, eax + pop esi edx + return +endp + + + +; decodes 4 bytes in [.chars] to UNICODE dword value. +; returns: +; CF=0 - no error +; eax - unicode value. +; edx - byte count of the char. [1..4] +; CF=1 - invalid utf-8 char; +; eax = edx = 0 the character can not be decoded. +; edx <> 0 -> eax = the overlong encoded character. edx = byte count of the char. +; +; Note: When CF=1 and [.chars] are overlong encoded char. +; eax contains the proper value and edx contains the proper length. +; But it is still invalid character, according to the standards. +proc DecodeUtf8, .chars +begin + push ebx ecx + + xor ecx, ecx + +.loop1: + shl byte [.chars], 1 + jnc .countok + inc ecx + jmp .loop1 + +.countok: + jecxz .ascii + + cmp ecx, 1 + je .error ; internal byte + cmp ecx, 4 + ja .error ; more than 4 bytes + + mov edx, 1 + xor ebx, ebx + movzx eax, byte [.chars] + shr eax, cl + shr eax, 1 + +.loop2: + mov bl, byte [.chars+edx] + and bl, $c0 + cmp bl, $80 + jne .error + mov bl, byte [.chars+edx] + and bl, $3f + shl eax, 6 + or eax, ebx + inc edx + cmp edx, ecx + jne .loop2 + + and eax, $1fffff + cmp eax, $10ffff + ja .error + + cmp eax, [._minimal+4*edx-8] + jb .overlong ; overlong coding. + + clc + pop ecx ebx + return + +.ascii: + movzx eax, byte [.chars] + shr eax, 1 + mov edx, 1 + pop ecx ebx + clc + return + +.error: + xor eax, eax + xor edx, edx +.overlong: + stc + pop ecx ebx + return + +._minimal dd $80, $800, $10000 + +endp + + + +proc ScanForwardUtf8 +begin + push eax + + mov al, [esi] + test al, al + jns .finish + + and al, 11000000b + cmp al, 11000000b + je .finish + +; inc forward +.loopf: + inc esi + mov al, [esi] + and al, 11000000b + cmp al, 10000000b + je .loopf + +.finish: + pop eax + return +endp + + + +proc ScanBackUtf8 +begin + push eax + + mov al, [esi] + test al, al + jns .finish + + and al, 11000000b + cmp al, 11000000b + je .finish + +; inc back +.loopf: + dec esi + mov al, [esi] + and al, 11000000b + cmp al, 10000000b + je .loopf + +.finish: + pop eax + return +endp + + +include '%TargetOS%/utf8.asm' + + + +DispSize "String library", $ - __StringLibrary ADDED freshlib/test_code0/theme_flat.cfg Index: freshlib/test_code0/theme_flat.cfg ================================================================== --- /dev/null +++ freshlib/test_code0/theme_flat.cfg @@ -0,0 +1,92 @@ +clTextCaret = $FFE74C3C +caretTimes = 250, 250 +clBorderNeutral = $FF1ABC9C +clBorderLight = $FF31E2BF +clBorderDark = $FF138670 +clBorderNeutralGray = $FF606060 +clBorderLightGray = $FF808080 +clBorderDarkGray = $FF404040 +clBorderFocused = $FFE74C3C +boxBorderWidth = 2 +clBtnBk = $FF1ABC9C, $FF48C9B0, $FF16A085, $807B7B7B +clBtnTxt = $FFFFFFFF, $FFFFFFFF, $FFBDC3C7, $80FFFFFF +btnBorder = 0, 0, 0, 1073741824 +btnPressedOfsX = 0 +btnPressedOfsY = 0 +btnMarginX = 8 +btnMarginY = 8 +clToolBtnBk = $FFECF0F1, $FFC9DCE7, $FFC9DCE7, $FFECF0F1 +clToolBtnTxt = $FF000000, $FF000000, $FF000000, $80000000 +tbBorder = 0, 0, 0, 1073741824 +tbBorderWidth = 1 +tbPressedOfsX = 0 +tbPressedOfsY = 2 +tbSeparatorType = $40000003 +tbSeparatorWidth = 10 +clEditBk = $FFECF0F1 +clEditBkFocused = $FFFFFFFF +clEditTxt = $FF000000 +clEditSel = $602980B9 +clEditSelTxt = $FFFFFFFF +editBorder = 3 +editBorderFocused = 3 +clDialogBk = $FFECF0F1 +clDialogTxt = $FF000000 +clSplitter = $FF34495E +clProgressBk = $FFECF0F1 +clProgressBar = $FF1ABC9C +progressBorder = 3 +clScrollBk = $3FBDC3C7, $A0BDC3C7 +clScrollSlider = $7F7F8C8D, $FF1ABC9C +clScrollSliderOvf = $3FF39C12, $FFF39C12 +borderScroll = 0 +scrollWidth = 12 +minSliderHeight = 24 +clLabelBk = $FFECF0F1 +clLabelTxt = $FF000000 +clTreeViewBack = $FFFFFFFF +clTreeViewText = $FF000000 +clTreeSelected = $FF2980B9 +clTreeSelectedTxt = $FFFFFFFF +clTreeFocused = $FFD35400 +clTreeFocusedTxt = $FFFFFFFF +clTreeViewLines = $FFBDC3C7 +tvBorder = 3 +tvIcons = 279:iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAAUVBMVEVHcEwVoIUXoIYWoIUWoIUWoIYWoIUAv4AWn4UWoIUWoIUWoIYWoIYVn4YVn4YWnoQWoIUVoIQWoIUWoYUXn4QVooQXoIWL0ML///8WoIXF6OG0ZSUgAAAAF3RSTlMAp5OX+TvjBJXl5KakPag6/j74pTg8qalz8pYAAABeSURBVAjXVY5ZEoAgDEMDson7CvX+B7WV0cH8JG86bQMAw9iaqA6IfENFwTO9wAgs4iknMYuzog4t53TlKzFHGKJcRLT+Zg6q2uuxz/VNhO+fli4vav90s50zbps43TydC9ljC1FvAAAAAElFTkSuQmCC, 269:iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAATlBMVEVHcEw0Sl4zSV40SV80SV40SV40SV9AQEAzSl40SV40SV40SV81SV41S1w0SV4yR1wzSF4zSV01Sl8zSF4ySWA0SV40SV40SV6apK////9UeNVfAAAAF3RSTlMApuSn4+U7BJX5k5elOqg9PKQ+qTj++F14vKgAAABXSURBVAjXVY5ZDoAgEEMLsruv1ftfVJCg+L76MpmmADAO2stmQsK2zDgbrUhUYOGHwVqZgCbPDCnhyStDHr+bQlP9zdj2uhPulZC2FA322WaE8qrrY7oBCC8LRlmSYHsAAAAASUVORK5CYII= +clMenuBack = $FFECF0F1 +clMenuText = $FF000000 +clMenuTextGray = $90000000 +clMenuSelection = $FF2980B9 +clMenuSelIcon = $FFC9DCE7 +borderMenu = 3 +menuIconMargin = 4 +menuSeparatorHeight = 12 +menuMinTextDist = 32 +menuSubIcon = 206:iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAYAAABcUvyWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABLSURBVBiVjc+xDYBADATBeSQCIgqgYzJaoARSInqgH5MQvQ6JzezVyT7YMAgUdoxJFA5MSRQuzEkUbiztHXrOz8SvG/Gr2GNF65cP8X4dCPkfyx8AAAAASUVORK5CYII= +menuSubIconSel = 207:iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAYAAABcUvyWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABMSURBVBiVjc+xDYAwEEPRCxIFFQOwcTpWyAi0VOzAPi8FXTgk3H5Z3w7smGKMJw1zBuDAkgG4sGYAbmwFXuKI87Pxy5GuSn9UlNHeAYWml41HdWNxAAAAAElFTkSuQmCC +menuSubIconGray = 280:iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAYAAABcUvyWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACVSURBVBiVY5i6dOnEhoYGJgY0wMTAwJgnpqq6YObMmaxoEgwM/xkYY//w8K7tW7WKE0UCCnzZf//ZMXPVKn4GBgYGxqlLl/1HM/4q0x8WdwxLGRgYtP+x/JmPTeIq0x+WRHSJQyysLNaZ8WFPkSU2/2Rl8UgPC/sIdxUjw//FLF8+BxeFhX2HK5u2ZFnX////GdEtAgDKqy21io/rDwAAAABJRU5ErkJggg== +iconMenuChecked = 172:iVBORw0KGgoAAAANSUhEUgAAAAcAAAAQCAYAAADagWXwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAApSURBVBiVY2CgP2B87mPTgEuShYGBoR6XJBM+YwdCkoWBgaERnwJ6AwCTrAMDeKqy3AAAAABJRU5ErkJggg== +iconMenuCheckedGray = 172:iVBORw0KGgoAAAANSUhEUgAAAAcAAAAQCAYAAADagWXwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAApSURBVBiVY2CgP2DMy8trwCXJwsDAUI9LkgmfsQMhycLAwNCITwG9AQBg/wLetiFJMAAAAABJRU5ErkJggg== +clCheckboxBack = $FFE0E0E0, $FFFFFFFF, $FFC0C0C0, $80C0C0C0 +clCheckboxTxt = $FF000000 +clCheckboxTxtGray = $FF606060 +cbIconSize = 13 +cbMargin = 2 +borderCheckbox = 3 +iconChecked = 166:iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAjSURBVCiRY2AYfoARXeC5j81/dDHJLUdQ1DGRY9Mg1zQcAQAaUwQKOrN/dgAAAABJRU5ErkJggg== +iconCheckedGray = 166:iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAjSURBVCiRY2AYfoARXSA/P/8/utjEiRNR1DGRY9Mg1zQcAQAXqwQKOqarXQAAAABJRU5ErkJggg== +maxTabWidth = 180 +tabMarginX = 4 +tabMarginY = 4 +clTabBk = $FFECF0F1, $FFC9DCE7, $FFC9DCE7 +clTabTxt = $FF000000 +clGridCellBk = $FFFFFFFF, $FFECF0F1, $FFC9DCE7, $FFD35400 +clGridCellTxt = $FF000000, $FF000000, $FF000000, $FFFFFFFF +clGridLines = $0, $FFC0C0C0, $0, $FF1ABC9C +lvIconMargin = 2 +iconDialogs = 1075:iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAABfVBMVEUAAAD/MzPVVSvbSUnkUTbmTUDpTjfrRz3rTjvjTDnkSUDnUEDqTjnkSjzlTjvnTTvoSzvoTT3mTT3mTDznTTvoTDvoTTznTDznTT3oTT3mSzzmTTvnTDvoSz3oTTzoTDzmSzvnTTvnTD3oTTzoTDvnTDznTDzoSzvoTT3mTDzmTDznTTvnTDznTTzoTD3nTDznTTznTD3nSzznTDznTDvoTDzmTDznTDznTDznTD3nTTznTDznTD3nTDznTDznTDznTDznTDznTDznTDznTTznTDznTDznTDznTDznTz/oUkPoV0fpV0jpWUrqYVPqYlTqZFbraFvraVvral3sb2LscmXsc2btd2vteGvtem7vioDwj4XxlozxmI/xmpHzoprzpJzzpp70q6P0q6T0sKn1sqv2u7X2vrj4zMj4zsn50Mz50s7619P62db62tb63Nn73tv739z85uP85+X86ef86uj97u398O798vH+9PT+9fT+9/b++Pf//v7///9nQat2AAAASHRSTlMABQYHExQXGRobHCAkJicrTk9QUVZXWV5gZGZnbG1ub3B0dnh5gI2Oj5CRkra3ucfIysvNzs/Q1Nnb3N3s7vHy8/T1+fr7/P5navj5AAACHUlEQVRIx62V6V/TQBCGX5CWoqiAUM9axau0UIuKIhpK2tqOoq0X3jd4n5VWRWX+dj7QZGc3aZIf+n6b3WeOzUx2AVOJZC4/Z1Uq1lw+m+xHiGLpM6RpOh0LwLfnSuRRKTvQBe9JF8lXpRPb/PidM9RVF3Z7+T0LFKDiiMnvu0KBqh7U+QMUqkNaPdVwh+qw4gfnw3mihV0O33s+Ck90rrfjcDwaTzTe6a8t1h58fCyRF+9vyaISAICcWLr/h9efKnOZ+ecdsZ0BgJiYn4d/mXn9iWOuMDP/uK327RiAI1p8ZnZzLDMz6zlSANQ8X/u9SXRyrHQsbiqHApBQ1tXvLDxcnt8ppBZHUpyp0XI9nr12+S/XBTKmfSPhwf48TSCvtaa+avJfb2jAJC7pzTRz6PGJLsIy2q/nMOITXUaFAjw8PJVRNpforXJ4Tl4HsyR6JSqSc+WUZBxa9Ev1XDt0vnt8vxyTeuOM+D45JrTREPy3tr/HKPqF9dLlPy+KuXqkiFocmFbmJ8XLnr9RRAFAWplLa4pXHq26IlLGL3pvTfGOR6uh9u0+AMiKU9z9Jeehvsrcvim2TwIABuQ1s9T+sKisRrMp4lNx85rBMYqoo85VORONP9uz1csYGIly3Q/JB2JvLYyv7f+3JwsYLgbx80PwaEch4PsM/o+HHUAiY3tx+1QC3RU7bBR2OtWHEMXHMlOzVqVszU5lRuOe7Q3ZakQDPbBoTgAAAABJRU5ErkJggg==, 810:iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAABYlBMVEUAAAAA//9Vqv8zmcwrqtUzmeYrldUzmd04l9c3mN02mNkzmdwzmds1mNw0mN01mNszmdo1l9o1l9w1mNwzmNs0l9wzmdo1l9s0mNo0mNs0mds0mdo0mNs0mNs1mNs1mNs1mds0mNs0mdo0mNs0mNs0l9s0mNs1mNs0mNs0mNs0mNs0mNs0mNs0mNs0mNs1mNs2mds3mtw4mtw5mtw6m9w+nd0/nt1Cn91Cn95DoN5God5Iot9Jot9MpN9QpuBSp+BVqeFZq+Fhr+Nir+NjsONmseRosuRxt+ZzuOZ0uOZ1ued4uud8vOh/vuiAv+mBv+mCwOmFwemGwuqTyOyYy+2bzO2cze2fzu6gz+6hz+6i0O6o0/Ct1fCu1vGw1/G12fK73fO83fO/3vTB3/TD4fTO5vbW6vjX6/jb7fnd7vni8Prj8frm8vvs9fzu9/zx+Pzy+f30+f37/f79/v/+//////9FPg/YAAAALnRSTlMAAQMFBgoMHiAlL0FGSEpNWmBldHd7fYeZoaKnsrm9x8zP0dfZ5evu8fr7/P3+LMHCbgAAAUlJREFUSMe11FVTXFEQhdGNQyBAYAjuLrm4uwwW3CW4uwzf/+cpRQEFdD+wX+9eVaf7nLqSflU0BKY0lKdLUmpgz58USXkOEORKKvSAwk/A1PZypwesAddddtAZAVixgyEAdu2g9QZg1jHD+C3sNHq21D7S71ur+x68oG14etoKWmY3ji4jcGQF3auXACzZjzQGgGNLfwHOHUOvA2w6wClA2A56IsBDix3MARw4Lm4fYMEOmu+Bpz47CAOcOd7SJsCaA1wAjNpBP8BdUzAzaQQLAMfB4EWHEWwD/Bu4GrceaQ/g6XHRPMMEwMO8Y0uThydbvd//E/gYFHhAgaTfHpAlKb7E3i+Ok6SYtMzQ/2SVvWlkh16SmRqtd0l4Vf+hr1P70s+JlQfUhSQPqEqWC5QmygXy4+QB9aEoc1+VQVD9U45k1BQlffb9GZxKanlvO0DPAAAAAElFTkSuQmCC, 1301:iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAB7FBMVEUAAAAA/wAA/4BVqlVAv4AzzGYr1YAk220gv4A5xnEzzGYu0XQr1Wo3yG0zzHcrxnEoyWszzHMsyG8rynUzzHAxznYv0HErzG8xznMwz3ArzXEvyXIuy28tzHMszXAxznMtzHEszW8rznIwynAvy3IuzHAtzXMsznEwym8vy3EuzG8uzXItznAsynIwy3AvzHIuzXAuznIty3EwzHAvzXIuzXEty3EtzHAuy3Iuy3AtzXAvzXIvy3AuzHEtzXItzXEvy3AtzXEvzHEuzHEtzXAuzHIuzHEuzXIvzHEuzXEuzHIuy3IvzHAuy3IvzHEuzXAuy3EvzHEuy3EtzHAuzHEtzHIvy3IuzHAuzHEtzXAuzHEuzHEtzXIty3EvzHAuzHEuzXEty3EvzHIuzHIuzXEuzHEuzXEtzHEvzHIuzHEuzXAuzHEuzXEuzHItzHEvzHAuzXEuzHEuzXEuzHEuzHEvzXEuy3EuzHEuzHEtzXIuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEvzHEuzHAuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHAtzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHHh23O3AAAAo3RSTlMAAQIDBAUGBwgJCgsMDg8SExQXGBkaGx4fICQmJygpKi0uLzAxMjM0NTY3ODk6QEFCQ0RLTE1PUFNZW1xdX2BhYmZoamtub3BzdXl7fYCDhIWIio2QkpSWl5ianJ2en6Cio6Smp6usrq+wsbW2uLm6u73AwsTFxsjJyszOz9HS1NbX2tvc3d7f4OHi4+Tl5ufo6evt7/Dy8/T19vf4+fr7/P3+J/aI2QAAAjVJREFUGBm9wftfS2EAB+Dvumyim9RKbqGEKIqI5LaE3ErKZSWxUIRMJrknKUQ0lVpr33/UOZ3zvufsnK1P/dLzYCXtzMNyJFz0YDlSfD0OLOKcE1FS/aGNMGRUX7jiKYDJ2edrYOJ8wtuQXI0zVD3KgpQ69XQVDO1kEYTkx9S9SYHUzTZIJ8gPkC5T8kCqJU9Clz9JNkLI+kfpGaQKcnI9NF0kKyF4aPgFqYhkNxbsp6IEgo+GWUh7qSiDqpeKaxA+0/Ab0gEqeqHYxgUtbqhyb9HkFaTjVG0HcJ2a2ZcdrQ8/MkotpBtUNQGOb4yrPxnSJ6rGHChiXINuSMXUbEUd4+nLhqGLmjp4GYfXBUN5hBovAowpfAYmGaPU9eErYwkdgklagMII/jCGSBVMcgKUJhBmDE0wKf1BQxjTtBtyQUq6FKbJFMZpVwUp288oPzFAm7FECBuGGa0fnbRphpA1RAsf6mlzEIKPVuexjzaboCuO0KoUziAtwi7o6mk14QQ6aPEXwj1a3QVQQosZF3Q9tCqHop8WAzX5yUBmWfMcLd47oKhmDMEIYzgCVcILLtHrRCwoCHFJ5vdA18AlaYCQ1MMowasVuw+3zzGa3wkp/R1NAtlQ7fhOs8G1MMkbpjSaCU1hiIYveYiyLkDhFAQvpbe5sFjdSZ0bQiWFB2mwcdSMUxVJhLCLmuBpxJTZOk+FG0IlVfN3chDPlrZp8iiEFpJT3s1YTHpNUyGEmyP3j6Vjpf0HT8HklxcxkYwAAAAASUVORK5CYII=, 1091:iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAABxVBMVEUAAAD//wD//wD/vwD/zAD/vwDmzBrqvxXtyBLwww/yyQ3yvw30yAv1wgr1xBTtwRLwwQ/www/xxg7xwQ7zxwzzwgzzxBLvxRDxxg7ywg3vwxDvxBDwxA/yxRDywhDywxDxww7yxBDwxA/xww7xww7xxBDyxQ/wxA/xxBDxxRDxww/xxA7xxQ7xwxDwxA/wxQ/xxA/xxA/yww/xxBDxxA/xxA/yxA/wxA/xxA7xxBDxxA/xxA/yxA/xww/xxA/xxA/xxA/xxA/yww/wxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/wxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxBDxxBHxxRXyxxnyyB7yyCDyySLyyifzyyrzyyvzzC7zzDDzzTLzzTPzzjfzzjjzzjn0zzr00ED00EL00UP000r100v100z11VP11VT111v111z22GD22WX22mf222z222333G/33HL33XP33XX33nf44YX55pv5553555/77bb777788cf8887889D99dX99df99tj99tz99+D9+OL9+OP++ej++ur+/PH+/PT+/fb//ff//fj//vn//vr//vz////4//v2AAAAVXRSTlMAAQIEBQgKDA4RExQXGRodISIkJSkqKzA2O0BBRU9QUV1faGprcXZ4gYOEj5CRm52oqau0tre+wcPEzM/Q1tfZ4OHj5Ofp6uzt7/Dy9Pb4+fr7/P3+E1pkvgAAAdhJREFUGBmtwYlbTFEcBuCvO9qQ3RgSFS2WiqIsqUGIGSHzSZYo2ddkl7Lv2f3+XueeuTNz75nt3ufxvvhfSkoQyPJoNIwArN1ktwX/6qjUwbfSvVT2l8GvJmpN8GneEWqx+fCnhY4W+LJ4gI7jS+FHO9Pa4UMkwYyVKG4HOTY9o7wYIXeiqDUkn4k2SXItigjtIflItAmSvXNQ2Hoqk6LdobIOBZX3UZkQ7SaVgxUoZCNtd0W7TtsGFLAgTtst0S7TdnQh8mujdkO0UWptyGvZCWpXRTtP7eQK5LOdSWOinWHSNuSxio4R0U7TsRo5WbvoOCe2v0zptpBLLVOGxfadabXIoTTKlCGxzTJtXxmyNTLjtyifmdGILJX9zPgmygdmHJ4L02a6fBXlLV02wbBogC6fRHlNl2NL4LWVbu9FeUW3LfCIJOj2RpSXdEtE4NZFj3szym16dMGlhj7UIC3UQ8PQ+KVTNPSEkFJPw7WPIu+u0FAPR3kfvc7OivJlmF4HKpDUTMNz0e7T0AytKk7DtGhTNMSrYGulaUq0hzS1QgkP0jT+R5QfF2gaDAPoYLbHv0R+PmC2DqCauYw+fXKRuVSjk4F0op+BHEJDjAHEGgCrMgALgf0D+/WonFYwCuwAAAAASUVORK5CYII= +iconDirectory = 115:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAACVBMVEVHcEz/ojP///8aaB/0AAAAAXRSTlMAQObYZgAAABhJREFUCNdjYIAD0VAYobUKzAoNIZqAAwCd3AtUoiCniwAAAABJRU5ErkJggg==, 158:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEVHcEz/ojP/////9+3/tmD/uWb/qEH/umj/uGNoGOEVAAAAAXRSTlMAQObYZgAAADFJREFUCNdjYMAAjIKCgqgMJiUlJbgIEAiAGSkwhnMglCFhDmEAlaOJINTAdYHNwQAAxsIHF+bypqkAAAAASUVORK5CYII= +iconFile = 130:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEVHcEw6fLw6e7v///9NrS3vAAAAAnRSTlMAiJXwxioAAAAjSURBVAjXY2AAAaZVF0DEExDxEkS8cgAS/w8AiVUNRBMgAADeqxlpte03XQAAAABJRU5ErkJggg==, 176:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAHlBMVEVHcEw6fLw6e7v////u9PllmMptnc1omstrnMxHhMD2vtcUAAAAAnRSTlMAiJXwxioAAAA/SURBVAjXY2CAAyYlJUMYw0gAxlCEMZQEIAxjYwMIQ0lJAczQDIIyVD2gDKWSJDBD2djYCFUEoQauC2oOFAAA4coLMJ+cy/EAAAAASUVORK5CYII= +DefaultFont = 'Liberation Sans' : 12 : 4 : $0 +DoubleClickTime = 600 +DoubleClickDistance = 8 ADDED freshlib/test_code0/theme_win.cfg Index: freshlib/test_code0/theme_win.cfg ================================================================== --- /dev/null +++ freshlib/test_code0/theme_win.cfg @@ -0,0 +1,77 @@ +clTextCaret = $FFFF0000 +caretTimes = 250, 250 +clBorderNeutral = $FFA0A0A0 +clBorderLight = $FFFFFFFF +clBorderDark = $FF404040 +clBorderNeutralGray = $FF909090 +clBorderLightGray = $FFE0E0E0 +clBorderDarkGray = $FF808080 +clBorderFocused = $FFFF8000 +boxBorderWidth = 1 +clBtnBk = $FFD4D0C8, $FFE0E0E0, $FFA0A0A0, $80D4D0C8 +clBtnTxt = $FF000000, $FF000000, $FF000000, $FF606060 +btnBorder = 1, 1, 2, 1073741825 +btnPressedOfsX = 1 +btnPressedOfsY = 1 +btnMarginX = 8 +btnMarginY = 8 +clToolBtnBk = $FFD4D0C8, $FFE0E0E0, $FFA0A0A0, $80D4D0C8 +clToolBtnTxt = $FF000000, $FF000000, $FF000000, $FF606060 +tbBorder = 0, 1, 2, 1073741824 +tbBorderWidth = 1 +tbPressedOfsX = 1 +tbPressedOfsY = 1 +tbSeparatorType = $2 +tbSeparatorWidth = 10 +clEditBk = $FFFFFFFF +clEditBkFocused = $FFFFFFFF +clEditTxt = $FF000000 +clEditSel = $600A246C +clEditSelTxt = $FFFFFFFF +editBorder = 2 +editBorderFocused = 2 +clDialogBk = $FFD4D0C8 +clDialogTxt = $FF000000 +clSplitter = $FF606060 +clProgressBk = $FFD4D0C8 +clProgressBar = $FF0A246C +progressBorder = 2 +clScrollBk = $80D4D0C8, $D0D4D0C8 +clScrollSlider = $C0808080, $FF808080 +clScrollSliderOvf = $C0FF8080, $FFFF8080 +borderScroll = 1 +scrollWidth = 12 +minSliderHeight = 24 +clLabelBk = $FFFFFF +clLabelTxt = $FF000000 +clTreeViewBack = $FFFFFFFF +clTreeViewText = $FF000000 +clTreeSelected = $FF0A246C +clTreeSelectedTxt = $FFFFFFFF +clTreeFocused = $FF0A246C +clTreeFocusedTxt = $FFFFFF00 +tvBorder = 2 +tvIcons = 117:iVBORw0KGgoAAAANSUhEUgAAAAsAAAALAQMAAACTYuVlAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAB1JREFUCNdjYGBgqD/A4ODA4AJG8TAGUAQozsAAAGXeBi6dny4xAAAAAElFTkSuQmCC, 114:iVBORw0KGgoAAAANSUhEUgAAAAsAAAALAQMAAACTYuVlAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjYGBgqD/A4OAARfEOCDZQnIEBAGTOBh7FK7i2AAAAAElFTkSuQmCC +clMenuBack = $FFD4D0C8 +clMenuText = $FF000000 +clMenuTextGray = $80000000 +clMenuSelection = $FF000080 +clMenuSelIcon = $FFADAABB +borderMenu = 1 +menuIconMargin = 4 +menuSeparatorHeight = 10 +menuMinTextDist = 32 +menuSubIcon = 206:iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAYAAABcUvyWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABLSURBVBiVjc+xDYBADATBeSQCIgqgYzJaoARSInqgH5MQvQ6JzezVyT7YMAgUdoxJFA5MSRQuzEkUbiztHXrOz8SvG/Gr2GNF65cP8X4dCPkfyx8AAAAASUVORK5CYII- +menuSubIconSel = 207:iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAYAAABcUvyWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABMSURBVBiVjc+xDYAwEEPRCxIFFQOwcTpWyAi0VOzAPi8FXTgk3H5Z3w7smGKMJw1zBuDAkgG4sGYAbmwFXuKI87Pxy5GuSn9UlNHeAYWml41HdWNxAAAAAElFTkSuQmCC +menuSubIconGray = 280:iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAYAAABcUvyWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACVSURBVBiVY5i6dOnEhoYGJgY0wMTAwJgnpqq6YObMmaxoEgwM/xkYY//w8K7tW7WKE0UCCnzZf//ZMXPVKn4GBgYGxqlLl/1HM/4q0x8WdwxLGRgYtP+x/JmPTeIq0x+WRHSJQyysLNaZ8WFPkSU2/2Rl8UgPC/sIdxUjw//FLF8+BxeFhX2HK5u2ZFnX////GdEtAgDKqy21io/rDwAAAABJRU5ErkJggg-- +iconMenuChecked = 246:iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAYAAAArij59AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABzSURBVCiRzc6xDUEBFIXhjxhAp6UUjSEkbwSjmIDEBFaxgNIYKEWhlKO5LxJ5r+aU9z85/+X3GfSjLDDug1NyJ5cuOCInErJBDmRHSpd9wSMZIuc6bElDXuRGJu3kjFyr9KzC6tu7JI/PUvfnc7Iu71/lDbA1NqOlVrCQAAAAAElFTkSuQmCC +iconMenuCheckedGray = 299:iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAYAAAArij59AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACoSURBVCiRxY4hjgJBFAXrd2YMiiOsJTgEAvF7xqJJUGQvsQoPIcFhOAEWT7KTTPoCHAEJa1es7LcKNYOmbL3kFbwfeyXquh4Dw95BVVUfkq7AX+iRhaQTMJR0CO5+jDFun3eSNsBM0iWltC/MbApMYowKIaSc8xfwKMvyE8hB0gK4A+uc8xnAzFZN0/wAhJTSzczmwC8wAHZt2353yt195O5LoBP+bv4BnNI5/xB5g9MAAAAASUVORK5CYII- +clCheckboxBack = $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFC0C0C0 +clCheckboxTxt = $FF000000 +clCheckboxTxtGray = $FF808080 +cbIconSize = 13 +cbMargin = 2 +borderCheckbox = 2 +iconChecked = 282:iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACXSURBVCiRzc89DgFhEIDhVy/Z0gEUolFIuIBCotNKFC6goHQdV9BxD41Cp1gVBRF5NRPZbMh+jcR08/NMZuDPwgm4A1upoAveQMF5CqiD+wAHMCs2M3AFdkpoHeAO9ssbF9E8g+2ozaImuPx0RhPMY+AIDsFr5Buw9u3+HngpbBc8gY2qx0fgI8ATHFSANxyDW3CaCH4YL0VGUkYKfrkaAAAAAElFTkSuQmCC +iconCheckedGray = 404:iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAERSURBVCiRvdAhS0NhFIfx57zvhYUJBs0uGMTqB9h2LwMR7KJLbmAQP4FN8EOYBItNEAQx7N67G9UmliHKxbYomOS955iUaZgW/bcD51ce+K/Jb57iON5S1b5zbjfP81H0E0iSZEVVj0WkBqwCIzcNtNvtGVU9BWpm9uS9PwGIADqdzmwIYc97f5Gm6d2EOwKWzOzNe785GAxeABxAVVV94DCEkDebzWWAVqu1DXQBRGQ/y7KbLyGSJFlU1WtgzsyenXM7ZnYG1M3ssiiKdcA+kAPIsuzRzNaAVxFZMLMroA6MoyjqTYJPBFAUxa2IbAABwMxURLppmo6/B/KTR1mWD41G415E5oGD4XB4Pq3u3+8d34hqDI8BY9gAAAAASUVORK5CYII- +DefaultFont = 'Liberation Sans' : 13 : 2 : $0 ADDED freshlib/test_code0/unicode_emo.txt Index: freshlib/test_code0/unicode_emo.txt ================================================================== --- /dev/null +++ freshlib/test_code0/unicode_emo.txt @@ -0,0 +1,1 @@ +😀😱: ADDED freshlib/test_code0/unicode_test.txt Index: freshlib/test_code0/unicode_test.txt ================================================================== --- /dev/null +++ freshlib/test_code0/unicode_test.txt @@ -0,0 +1,55 @@ +00000000011111111112222222222333333333344444444445555555555666666666677777777778 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +;This is example text, aimed simply to show the features of the FreshEdit control. + +;1. Word-wrap feature. It works only for the lines formated with word-wrap format. You can set/remove word-wrap format by Ctrl+W key. + +;2. FreshEdit can save the format into the source file. The formating is transparent for FASM compiler, so you can compile the files without removing formating. + +;3. FreshEdit uses UTF-8 encoding - see following samples: + +;Russian: Я могу есть стекло, оно мне не вредит. +;Yoruba: Mo lè je̩ dígí, kò ní pa mí lára. +;Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. +;Québécois: J'peux manger d'la vitre, ça m'fa pas mal. +;Ukrainian: Я можу їсти скло, і воно мені не зашкодить. +;English: I can eat glass and it doesn't hurt me. + +;5. The bookmarks are saved with the text as well. Use Ctrl+B to set/remove a bookmark. + +;6. Also FreshEdit, has code folding feature. +proc SomeTestProcedure +begin + nop + mov eax, 1234 + return +endp + +;7. also, there are line numbers and breakpoint icons on the left margin of the editor. You can set/remove breakpoint with F2 key. + + nop + nop + int3 + +; 8. Color themes: Click on "T" button to switch the color theme for the editor. + +; 9. Zebra background - if you like such eye-candy things. Click on "Z" button in order to switch it on/off. + +proc AnotherTestProcedure +begin + xor eax, eax + +locals ; We have of course several folding levels. + .x dd ? + .y dd ? + .rect TBounds +endl + + mov ecx, 'ABCD' + return +endp + +; 10. Click "#" to turn on/off the line numbers. +; 11. Ctrl-T will switch ON/OFF the whole left margin field. +; 12. Alt+Ins will switch the type of selection - line, char and block are supported for now. + ADDED freshlib/testx/xprotocol.asm Index: freshlib/testx/xprotocol.asm ================================================================== --- /dev/null +++ freshlib/testx/xprotocol.asm @@ -0,0 +1,275 @@ +; _______________________________________________________________________________________ +;| | +;| ..:: Fresh IDE ::.. template project. | +;|_______________________________________________________________________________________| +; +; Description: FreshLib portable console application. +; +; Target OS: Any, supported by FreshLib +; +; Dependencies: FreshLib +; +; Notes: +;_________________________________________________________________________________________ + +include "%lib%/freshlib.inc" + +LIB_MODE equ GUI + +@BinaryType GUI, compact + +options.DebugMode = 1 +options.DebugMode.DisableSHM = 0 + +options.ShowSizes = 1 + + +include "%lib%/freshlib.asm" + + +iglobal + tplMainForm: + ObjTemplate tfParent or tfEnd, TForm, frmMain, \ + width = 800, \ + height = 600, \ + border = borderFull, \ + Caption = 'Test form.', \ + OnClose = MainFormBeforeCLose, \ + OnDestroy = MainFormClosed, \ + Visible = FALSE + ObjTemplate tfChild, TEdit, edtOne, \ + x=100, y = 200, \ + width = 200, height = 32, \ + Text = 'Example text', \ + Visible = TRUE + ObjTemplate tfChild or tfEnd, TButton, btnOne, \ + x = 100, y = 100, \ + width = 96, \ + height = 32, \ + TextAlign = dtfAlignCenter or dtfAlignMiddle, \ + Caption = 'Button', \ + OnClick = btnOneClick, \ + Visible = TRUE +endg + + + + +start: + InitializeAll + + call InitGUIApplication + call GUI.Init + +; create window: + + stdcall CreateFromTemplate, tplMainForm, 0 + set ebx, TForm:Visible, TRUE + + call Run + + DebugMsg "Out of Run procedure." + + call TerminateGUI + FinalizeAll + stdcall TerminateAll, 0 + + +proc MainFormClosed as TObject.OnDestroy +begin + DebugMsg "Application terminate!" + call CloseGUIApplication + return +endp + + +proc MainFormBeforeCLose as TForm.OnClose +begin + stdcall ShowMessage, [.self], smiQuestion, 'Close?', 'Do you really want to close this window?', smbYes or smbNo + cmp eax, mrNo + je .dont + + clc + return + +.dont: + stc + return +endp + + + +proc btnOneClick as TButton.OnClick +begin + get ecx, [edtOne], TEdit:Text + set [frmMain], TForm:Caption, ecx + stdcall StrDel, ecx + return +endp + + +proc OutputVal, .ttl, .number, .format +begin + push eax + + stdcall FileWriteString, [STDOUT], [.ttl] + stdcall NumToStr, [.number], [.format] + push eax + stdcall FileWriteString, [STDOUT], eax + stdcall FileWriteString, [STDOUT], + stdcall StrDel ; from the stack + + pop eax + return +endp + + +proc OutputList, .ttl, .list, .index +begin + push eax edx + + stdcall FileWriteString, [STDOUT], [.ttl] + + mov eax, [.index] + mov edx, [.list] + cmp eax, [edx] + cmova eax, [edx] + + stdcall FileWriteString, [STDOUT], [edx+4*eax+4] + stdcall FileWriteString, [STDOUT], + pop edx eax + return +endp + + + +proc OutputFormat +begin + movzx eax, [edi+xformat.depth] + stdcall OutputVal, "Depth: ", eax, ntsDec or ntsUnsigned + + movzx eax, [edi+xformat.bpp] + stdcall OutputVal, "Bits per pixel: ", eax, ntsDec or ntsUnsigned + + movzx eax, [edi+xformat.pad] + stdcall OutputVal, "Scanline pad: ", eax, ntsDec or ntsUnsigned + + stdcall FileWriteString, [STDOUT], + + add edi, sizeof.xformat + return +endp + + + + +proc OutputVisual +begin + push ecx edx + + stdcall OutputVal, "Visual ID: ", [edi+xvisualtype.id], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + + movzx eax, [edi+xvisualtype.class] + stdcall OutputList, "Visual class: ", listVisClass, eax + + movzx eax, [edi+xvisualtype.bits_per_rgb] + stdcall OutputVal, "Bits per RGB value: ", eax, ntsDec or ntsUnsigned + + movzx eax, [edi+xvisualtype.map_entries] + stdcall OutputVal, "Colormap entries: ", eax, ntsDec or ntsUnsigned + + stdcall OutputVal, " Red mask: ", [edi+xvisualtype.red_mask], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall OutputVal, "Green mask: ", [edi+xvisualtype.green_mask], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall OutputVal, " Blue mask: ", [edi+xvisualtype.blue_mask], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + + stdcall FileWriteString, [STDOUT], + + add edi, sizeof.xvisualtype + pop edx ecx + return +endp + + + +proc OutputDepth +begin + push ecx edx + + movzx eax, [edi+xdepth.depth] + stdcall OutputVal, "Depth: ", eax, ntsDec or ntsUnsigned + + movzx edx, [edi+xdepth.num_visual] + stdcall OutputVal, "Visual types: ", edx, ntsDec or ntsUnsigned + + stdcall FileWriteString, [STDOUT], + + movzx edx, [edi+xdepth.num_visual] + add edi, sizeof.xdepth + + xor ecx, ecx + test edx, edx + jz .finish + +.vis_loop: + call OutputVisual + inc ecx + cmp ecx, edx + jne .vis_loop + +.finish: + pop edx ecx + return +endp + + +proc OutputScreen +begin + push ecx edx + + stdcall OutputVal, "Root window: ", [edi+xscreen.root_window], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall OutputVal, "Default colormap: ", [edi+xscreen.colormap], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall OutputVal, "White pixel: ", [edi+xscreen.white_pixel], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall OutputVal, "Black pixel: ", [edi+xscreen.black_pixel], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + stdcall OutputVal, "Current input mask: ", [edi+xscreen.event_mask], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + + movzx eax, [edi+xscreen.width_px] + stdcall OutputVal, "Width [px]: ", eax, ntsDec or ntsUnsigned + movzx eax, [edi+xscreen.height_px] + stdcall OutputVal, "Height [px]: ", eax, ntsDec or ntsUnsigned + + movzx eax, [edi+xscreen.width_mm] + stdcall OutputVal, "Width [mm]: ", eax, ntsDec or ntsUnsigned + movzx eax, [edi+xscreen.height_mm] + stdcall OutputVal, "Height [mm]: ", eax, ntsDec or ntsUnsigned + + stdcall OutputVal, "Root visual: ", [edi+xscreen.root_visual], ntsHex or ntsUnsigned or ntsFixedWidth + 8 + + movzx eax, [edi+xscreen.back_store] + stdcall OutputVal, "Backing stores: ", eax, ntsDec or ntsUnsigned + movzx eax, [edi+xscreen.save_under] + stdcall OutputVal, "Save unders: ", eax, ntsDec or ntsUnsigned + + movzx eax, [edi+xscreen.root_depth] + stdcall OutputVal, "Root depth: ", eax, ntsDec or ntsUnsigned + + movzx edx, [edi+xscreen.num_depths] + stdcall OutputVal, "Allowed depths: ", edx, ntsDec or ntsUnsigned + + stdcall FileWriteString, [STDOUT], + + movzx edx, [edi+xscreen.num_depths] + add edi, sizeof.xscreen + xor ecx, ecx + test edx, edx + jz .finish + +.depth_loop: + call OutputDepth + inc ecx + cmp ecx, edx + jne .depth_loop + +.finish: + pop edx ecx + return +endp ADDED freshlib/testx/xprotocol.fpr Index: freshlib/testx/xprotocol.fpr ================================================================== --- /dev/null +++ freshlib/testx/xprotocol.fpr cannot compute difference between binary files